char-slop/berry
multipurpose self-modifiable agentic harness
git clone https://git.t4t.associates/char-slop/berry
c5dd844
main
1import { defineRenderers , type HeaderContext } from "@berry/api/web.ts" ; 2import { recoverClosed } from "./drafts.ts" ; 3import type { Event } from "./edit-types.ts" ; 4import { diffView } from "./view.tsx" ; 5import "./web.css" ; 6 7export default defineRenderers < Event >({ 8view :{ label :"diff" , create :diffView }, 9header () { 10const element = document . createElement ( "span" ); 11let context :HeaderContext ; 12let tid :string | null = null ; 13let disposed = false ; 14async function retry () { 15element . replaceChildren (); 16try { 17await recoverClosed ( context ); 18} catch { 19if ( disposed ) return ; 20element . append ( 21< button type = "button" _onclick = {() => void retry ()}> retry edit report </ button >, 22); 23} 24} 25return { 26 element, 27update ( next ) { 28context = next ; 29if ( tid !== next . tid ) { 30tid = next . tid ; 31void retry (); 32} 33}, 34dispose () { 35disposed = true ; 36}, 37}; 38}, 39event ( event ) { 40if ( event . type === "saved" || ! event . paths . length ) return null ; 41return ( 42< p class = "diff-edit-report" > 43Human edits saved :{ event . paths . join ( ", " )}. Available as context for the next turn . 44< / p > 45); 46}, 47});