@reddb-io/red-skills 3.3.20 → 3.3.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6605,7 +6605,7 @@ Usage:
6605
6605
  ${n} archive --candidate <json> [--root <dir>] [--archive-dir <rel>]
6606
6606
  ${n} restore <name> [--root <dir>] [--archive-dir <rel>]`}function d9(n){return dRn(typeof n.root=="string"?n.root:process.cwd())}function rpt(n){return typeof n["archive-dir"]=="string"?n["archive-dir"]:void 0}async function VK(n){let r=await xs(n);return r?r.mode!=="graph"?{ok:!1,message:`curate: skill telemetry needs graph mode (this project is "${r.mode}") \u2014 run \`${p_e}\``}:Ku(r)?{ok:!0}:{ok:!1,message:`curate: skill telemetry is not enabled here \u2014 run \`${p_e}\``}:{ok:!1,message:`curate: memory is not initialized here \u2014 run \`${p_e}\``}}function mRn(){let n=oRn(GRn(import.meta.url));return n.includes("dist/curate-skill")||n.endsWith("dist/curate-skill")?Ipt(n,"..","cli.js"):Ipt(n,"..","cli.ts")}async function uRn(n,r){let i=["curate","skills","--json"];r!==void 0&&i.push("--stale-days",String(r));let d=mRn(),h=d.endsWith(".ts")?npt(process.execPath,["--import","tsx",d,...i,"--root",n],{encoding:"utf8"}):npt(process.execPath,[d,...i,"--root",n],{encoding:"utf8"}),V=h.status??1;if(V!==0)throw new Error(`memory curate skills exited ${V}`);return $bt(h.stdout??"")}function bRn(n){return typeof n.flags["stale-days"]=="string"?Number(n.flags["stale-days"]):void 0}async function apt(n,r){return(r.loadCuratorReport??uRn)(d9(n.flags),bRn(n))}async function pRn(n){let r=d9(n.flags),i=await VK(r);return i.ok?(console.log("curate: skill telemetry is enabled \u2014 ready to curate"),0):(console.error(i.message),2)}async function ZRn(n,r){let i=d9(n.flags),d=await VK(i);if(!d.ok)return console.error(d.message),2;let m;try{m=await apt(n,r)}catch(_){return console.error(`curate: ${_.message}`),1}let{candidates:h,byCategory:V,filtered:v}=u_e(m);return console.log(JSON.stringify({candidates:h,byCategory:V,filtered:v,totals:{totalSkills:m.totalSkills,curatableSkills:m.curatableSkills,readOnlySkills:m.readOnlySkills}},null,2)),0}async function hRn(n,r){let i=d9(n.flags),d=await VK(i);if(!d.ok)return console.error(d.message),2;let m;try{m=await apt(n,r)}catch(_){return console.error(`curate: ${_.message}`),1}let{byCategory:h}=u_e(m);if(b_e(h)===0)return console.error("curate: no candidates \u2014 no issue filed"),0;let V=typeof n.flags.label=="string"?n.flags.label:void 0,v=await tpt({byCategory:h,totals:{totalSkills:m.totalSkills,curatableSkills:m.curatableSkills,readOnlySkills:m.readOnlySkills},generatedAt:m.generatedAt},{cwd:i,label:V});return console.log(`curate: filed background issue \u2014 ${v.output||v.title}`),0}async function WRn(n){let r=d9(n.flags),i=await VK(r);if(!i.ok)return console.error(i.message),2;let d=n.flags.candidate;if(typeof d!="string")return console.error("curate archive: --candidate <json> is required"),2;let m;try{m=JSON.parse(d)}catch(V){return console.error(`curate archive: invalid --candidate JSON: ${V.message}`),2}let h=await Pbt(m,{rootDir:r,archiveDir:rpt(n.flags)});return h.ok?(console.log(`curate: archived "${h.receipt.name}" \u2192 ${h.receipt.archiveRoot} (${h.receipt.files.length} file(s), manifest at ${h.receipt.manifestPath})`),0):(console.error(`curate archive: refused \u2014 ${h.rejection.reason}: ${h.rejection.detail}`),3)}async function NRn(n){let r=d9(n.flags),i=await VK(r);if(!i.ok)return console.error(i.message),2;let d=n.positional[0];if(!d)return console.error("curate restore: skill name is required"),2;let m=await qbt(d,{rootDir:r,archiveDir:rpt(n.flags)});return console.log(`curate: restored "${m.name}" \u2192 ${m.restoredRoot} (${m.files.length} file(s) hash-verified)`),0}async function Z_e(n,r={}){switch(n.command){case"check":return pRn(n);case"list":return ZRn(n,r);case"background":return hRn(n,r);case"archive":return WRn(n);case"restore":return NRn(n);case void 0:case"--help":case"-h":return console.log(lpt(r.usageCommand)),0;default:return console.error(`unknown curate subcommand: ${n.command}
6607
6607
 
6608
- ${lpt(r.usageCommand)}`),2}}function h_e(n){let r={app:n,version:YRn(G9("__RED_BUILD_VERSION__",()=>"3.3.20")??"0.0.0-dev"),gitSha:G9("__RED_BUILD_GIT_SHA__",()=>"73185e7174f0cc3395ef0209acc09735ba80306b")??"unknown",buildTime:G9("__RED_BUILD_TIME__",()=>"2026-08-03T15:32:25Z")??"unknown",bundleAsset:G9("__RED_BUNDLE_ASSET__",()=>"memory.bundle.min.mjs")??"unknown"},i=G9("__REDDB_SDK_VERSION__",()=>"1.23.1"),d=G9("__REDDB_BINARY_TAG__",()=>"v1.23.1");return i&&(r.reddbSdkVersion=i),d&&(r.reddbBinaryTag=d),r}function YRn(n){return n.startsWith("v")?n.slice(1):n}function W_e(n){return`${n.app} ${n.version} ${n.gitSha}`}function G9(n,r){try{let i=r();return typeof i=="string"&&i.length>0?i:void 0}catch{return process.env[n.replace(/^__|__$/g,"")]}}async function Gpt(n){let{store:r}=await gr(n);try{let i=await r.stats();console.log(`memory: ${i.nodes} node(s), ${i.edges} edge(s)`)}finally{await r.close()}}async function mpt(n){let r=n.positional[0];if(r!=="status"&&r!=="status-viewer"&&r!=="maintain"&&r!=="search")throw new Error("vector needs an action \u2014 supported: memory vector status|status-viewer|maintain|search");let i=process.env.RED_MEMORY_VECTOR_PROVIDER;n.flags.local===!0&&(process.env.RED_MEMORY_VECTOR_PROVIDER="local");let{store:d}=await gr(n);try{if(r==="search"){let h=n.positional.slice(1).join(" ").trim();if(!h)throw new Error("nothing to search \u2014 pass a query: memory vector search <query>");let V=await R5(d,h,{limit:la(n.flags,"limit")});if(n.flags.json===!0){console.log(JSON.stringify(V,null,2));return}if(V.status==="unavailable"){let v=V.error?` \u2014 ${V.error}`:"";console.log(`memory: vector search unavailable${v}`);return}console.log(`memory: vector search ${V.hits.length}/${V.limit} hit(s) for "${h}"`);for(let v of V.hits){let _=v.source?` source=${v.source}`:"";console.log(` ${v.score.toFixed(3)} memory_nodes:${v.rid} (${v.node_type}) ${v.title}${_}`),v.excerpt&&console.log(` ${v.excerpt}`)}return}if(r==="status-viewer"){let h=Wr(n.flags),V=Vl(n.flags,"out")??qa(h,".red/memory/vector-status-viewer.html"),v=mK(await d.vectorStatus());await hs(Ps(V),{recursive:!0}),await Xi(V,v.html,"utf8"),console.log(`memory: vector status viewer written ${V}`),console.log(` status: ${v.report.overall}`),console.log(` contract: ${v.contract.consumes}`);return}let m=r==="maintain"?await d.maintainVectorProjection({strict:n.flags.strict===!0}):await d.vectorStatus();if(n.flags.json===!0){console.log(JSON.stringify(m,null,2));return}console.log(`memory: vector projection ${m.overall} \u2014 ${m.ready}/${m.total} ready`),m.stale>0&&console.log(` stale: ${m.stale}`),m.unavailable>0&&console.log(` unavailable: ${m.unavailable}`),m.failed>0&&console.log(` failed: ${m.failed}`);for(let h of m.nodes.filter(V=>V.status!=="ready")){let V=h.error?` \u2014 ${h.error}`:"";console.log(` ${h.rid} (${h.node_type}) ${h.label}: ${h.status}${V}`)}for(let h of m.docs.filter(V=>V.status!=="ready")){let V=h.error?` \u2014 ${h.error}`:"";console.log(` doc:${h.rid} ${h.path}: ${h.status}${V}`)}}finally{await d.close(),n.flags.local===!0&&(i==null?delete process.env.RED_MEMORY_VECTOR_PROVIDER:process.env.RED_MEMORY_VECTOR_PROVIDER=i)}}async function upt(n){let{store:r}=await gr(n);try{let i=la(n.flags,"stale-days")??90,d=await hy(r,{staleDays:i});if(d.stale.length===0){console.log(`memory: healthy \u2014 0 of ${d.totalNodes} node(s) stale (unaccessed ${i}+ days, never recalled)`);return}console.log(`memory: ${d.stale.length} of ${d.totalNodes} node(s) stale (unaccessed ${i}+ days, never recalled):`);for(let V of d.stale)console.log(` ${V.rid} (${V.node_type}) ${V.title} \u2014 ${V.ageDays}d idle`);if(n.flags.prune!==!0){console.log(`
6608
+ ${lpt(r.usageCommand)}`),2}}function h_e(n){let r={app:n,version:YRn(G9("__RED_BUILD_VERSION__",()=>"3.3.21")??"0.0.0-dev"),gitSha:G9("__RED_BUILD_GIT_SHA__",()=>"bae98be31c9aa17a4bd850e053045c2ffb276781")??"unknown",buildTime:G9("__RED_BUILD_TIME__",()=>"2026-08-03T15:53:12Z")??"unknown",bundleAsset:G9("__RED_BUNDLE_ASSET__",()=>"memory.bundle.min.mjs")??"unknown"},i=G9("__REDDB_SDK_VERSION__",()=>"1.23.1"),d=G9("__REDDB_BINARY_TAG__",()=>"v1.23.1");return i&&(r.reddbSdkVersion=i),d&&(r.reddbBinaryTag=d),r}function YRn(n){return n.startsWith("v")?n.slice(1):n}function W_e(n){return`${n.app} ${n.version} ${n.gitSha}`}function G9(n,r){try{let i=r();return typeof i=="string"&&i.length>0?i:void 0}catch{return process.env[n.replace(/^__|__$/g,"")]}}async function Gpt(n){let{store:r}=await gr(n);try{let i=await r.stats();console.log(`memory: ${i.nodes} node(s), ${i.edges} edge(s)`)}finally{await r.close()}}async function mpt(n){let r=n.positional[0];if(r!=="status"&&r!=="status-viewer"&&r!=="maintain"&&r!=="search")throw new Error("vector needs an action \u2014 supported: memory vector status|status-viewer|maintain|search");let i=process.env.RED_MEMORY_VECTOR_PROVIDER;n.flags.local===!0&&(process.env.RED_MEMORY_VECTOR_PROVIDER="local");let{store:d}=await gr(n);try{if(r==="search"){let h=n.positional.slice(1).join(" ").trim();if(!h)throw new Error("nothing to search \u2014 pass a query: memory vector search <query>");let V=await R5(d,h,{limit:la(n.flags,"limit")});if(n.flags.json===!0){console.log(JSON.stringify(V,null,2));return}if(V.status==="unavailable"){let v=V.error?` \u2014 ${V.error}`:"";console.log(`memory: vector search unavailable${v}`);return}console.log(`memory: vector search ${V.hits.length}/${V.limit} hit(s) for "${h}"`);for(let v of V.hits){let _=v.source?` source=${v.source}`:"";console.log(` ${v.score.toFixed(3)} memory_nodes:${v.rid} (${v.node_type}) ${v.title}${_}`),v.excerpt&&console.log(` ${v.excerpt}`)}return}if(r==="status-viewer"){let h=Wr(n.flags),V=Vl(n.flags,"out")??qa(h,".red/memory/vector-status-viewer.html"),v=mK(await d.vectorStatus());await hs(Ps(V),{recursive:!0}),await Xi(V,v.html,"utf8"),console.log(`memory: vector status viewer written ${V}`),console.log(` status: ${v.report.overall}`),console.log(` contract: ${v.contract.consumes}`);return}let m=r==="maintain"?await d.maintainVectorProjection({strict:n.flags.strict===!0}):await d.vectorStatus();if(n.flags.json===!0){console.log(JSON.stringify(m,null,2));return}console.log(`memory: vector projection ${m.overall} \u2014 ${m.ready}/${m.total} ready`),m.stale>0&&console.log(` stale: ${m.stale}`),m.unavailable>0&&console.log(` unavailable: ${m.unavailable}`),m.failed>0&&console.log(` failed: ${m.failed}`);for(let h of m.nodes.filter(V=>V.status!=="ready")){let V=h.error?` \u2014 ${h.error}`:"";console.log(` ${h.rid} (${h.node_type}) ${h.label}: ${h.status}${V}`)}for(let h of m.docs.filter(V=>V.status!=="ready")){let V=h.error?` \u2014 ${h.error}`:"";console.log(` doc:${h.rid} ${h.path}: ${h.status}${V}`)}}finally{await d.close(),n.flags.local===!0&&(i==null?delete process.env.RED_MEMORY_VECTOR_PROVIDER:process.env.RED_MEMORY_VECTOR_PROVIDER=i)}}async function upt(n){let{store:r}=await gr(n);try{let i=la(n.flags,"stale-days")??90,d=await hy(r,{staleDays:i});if(d.stale.length===0){console.log(`memory: healthy \u2014 0 of ${d.totalNodes} node(s) stale (unaccessed ${i}+ days, never recalled)`);return}console.log(`memory: ${d.stale.length} of ${d.totalNodes} node(s) stale (unaccessed ${i}+ days, never recalled):`);for(let V of d.stale)console.log(` ${V.rid} (${V.node_type}) ${V.title} \u2014 ${V.ageDays}d idle`);if(n.flags.prune!==!0){console.log(`
6609
6609
  Re-run with --prune to delete these (asks for confirmation first).`);return}let m=n.flags.yes===!0;if(!m){if(!process.stdin.isTTY){console.log(`
6610
6610
  refusing to prune without confirmation \u2014 re-run with --yes in a non-interactive shell`);return}let V=ise({input:process.stdin,output:process.stdout}),v=(await V.question(`
6611
6611
  Delete ${d.stale.length} stale node(s)? Type "yes" to confirm: `)).trim();V.close(),m=v==="yes"}if(!m){console.log("memory: aborted \u2014 nothing deleted");return}let{pruned:h}=await Xfe(r,d.stale);console.log(`memory: pruned ${h} stale node(s)`)}finally{await r.close()}}async function bpt(n){let r=Wr(n.flags),i=n.positional[0]??".red/memory/export",d=Lm(i)?i:za(r,i),m=n.flags.communities===!0,h=n.flags.interop===!0,{store:V}=await gr(n);try{let v=await dQ(V,d,{communities:m,interop:h});console.log(`memory: exported ${v.nodes} node(s), ${v.edges} edge(s)`),m&&console.log(" communities: coloured via native Louvain"),console.log(` graph: ${v.htmlPath}`),console.log(` json: ${v.jsonPath}`),console.log(` audit: ${v.auditPath}`),v.interop&&(console.log(` nodes: ${v.interop.nodesJsonlPath}`),console.log(` edges: ${v.interop.edgesJsonlPath}`),console.log(` graphml:${v.interop.graphmlPath}`),console.log(` cypher: ${v.interop.cypherPath}`))}finally{await V.close()}}async function ppt(n){let r=n.positional.join(" ").trim();if(!r)throw new Error("nothing to search \u2014 pass a query: memory global-search <query>");let i=typeof n.flags.limit=="string"?Number(n.flags.limit):void 0,{store:d,config:m}=await gr(n);try{let h=await tF("memory.global-search",{store:d,providerConfig:m.provider},{query:r,limit:i,cache:n.flags["no-cache"]===!0?"off":"read-only"});if(n.flags.json===!0){console.log(JSON.stringify(h,null,2));return}console.log(`memory: ${h.total_hits} global-search hit(s) for "${h.query}"`),console.log(` source: ${h.generated_from.operation_id}`),console.log(` graph hash: ${h.generated_from.graph_hash}`),console.log(` provider: ${h.generated_from.provider.status}${h.generated_from.provider.error?` (${h.generated_from.provider.error})`:""}`);for(let V of h.evidence)console.log(` ${V.community_id}: score ${V.score}, ${V.size} node(s)`),console.log(` matched: ${V.matched_terms.join(", ")}`),console.log(` top label: ${V.top_label}`),console.log(` top type: ${V.top_node_type}`),V.narrative_summary&&console.log(` summary: ${V.narrative_summary}`)}finally{await d.close()}}async function yRn(n,r){let i=Vl(n.flags,"from");if(i){let m=Lm(i)?i:za(r,i),h=JSON.parse(await Bb(m,"utf8")),V=h.contract??h,v=Zfe(V);if(!v.valid)throw new Error(`architecture-overview: ${m} is not a valid graph contract \u2014 ${v.errors.join("; ")}`);return V}let{store:d}=await gr(n);try{let[m,h,V]=await Promise.all([d.listNodes(),d.listEdges(),d.communities()]);return AX({nodes:m,edges:h.map(qX),communities:V})}finally{await d.close()}}async function Zpt(n){let r=Wr(n.flags),i=await yRn(n,r),d=qXe(i);if(n.flags.json===!0){console.log(JSON.stringify(d,null,2));return}if(n.flags.stdout===!0){process.stdout.write(d.markdown);return}let m=Vl(n.flags,"out")??".red/memory/architecture-overview.md",h=Lm(m)?m:za(r,m);await hs(Ps(h),{recursive:!0}),await Xi(h,d.markdown,"utf8"),console.log(`memory: architecture overview written ${h}`),console.log(` contract: ${d.generated_from.contract_version}`),console.log(` ${d.totals.nodes} node(s), ${d.layers.length} layer(s), ${d.communities.length} community(ies)`)}async function _5(){if(process.stdin.isTTY)return"";let n=[];for await(let r of process.stdin)n.push(r);return Buffer.concat(n).toString("utf8")}var RRn=["SessionStart","PostToolUse","Stop","PreCompact"];async function hpt(n){let r=n.positional[0],i=n.flags.runner==="codex"?"codex":"claude";if(!r||!RRn.includes(r)){process.stdout.write("{}");return}try{let d=await _5(),m=d.trim()?JSON.parse(d):{},h=Wr(n.flags)!==process.cwd()?Wr(n.flags):typeof m.cwd=="string"?m.cwd:process.cwd(),V=await I1e(i,r,m);try{r==="SessionStart"?await vy(h,V.sessionId?{id:V.sessionId}:{}):await rN(h)||(V.sessionId?await vy(h,{id:V.sessionId}):await VHe(h))}catch{}let v=await vHe(V,h);process.stdout.write(l1e(i,r,v))}catch{process.stdout.write("{}")}}var vRn=["post-commit","post-checkout"];async function Wpt(n){switch(n.positional[0]){case"refresh":return FRn(n);case"install-hooks":return XRn(n);case"uninstall-hooks":return wRn(n);default:throw new Error("vcs needs a subcommand \u2014 memory vcs refresh|install-hooks|uninstall-hooks")}}async function FRn(n){let r=Wr(n.flags),i=Vl(n.flags,"event"),d=n.flags.json===!0;if(!i||!vRn.includes(i)){d&&console.log(JSON.stringify({noop:!0,reason:"unknown vcs event"}));return}try{let m=await FHe(r,{event:i,prevHead:Vl(n.flags,"prev"),newHead:Vl(n.flags,"new"),flag:Vl(n.flags,"flag"),export:n.flags["no-export"]!==!0});if(d){console.log(JSON.stringify(m,null,2));return}if(m.noop){console.log(`memory: ${i} \u2014 no-op (${m.reason})`);return}let h=m.refresh;console.log(`memory: ${i} refreshed ${h?.files??0} changed file(s) \u2014 ${h?.added??0} added, ${h?.updated??0} updated, ${h?.stale??0} stale`),m.exported&&console.log(` exported ${m.exported.nodes} node(s) \u2192 ${m.exported.jsonPath}`)}catch(m){let h=`error: ${m instanceof Error?m.message:String(m)}`;console.log(d?JSON.stringify({noop:!0,reason:h}):`memory: ${i} \u2014 no-op (${h})`)}}async function Npt(n){try{let{stdout:r}=await wy("git",["-C",n,"rev-parse","--git-path","hooks"],{encoding:"utf8"}),i=r.trim();return i?Lm(i)?i:za(n,i):za(n,".git/hooks")}catch{return za(n,".git/hooks")}}function fRn(){let n=process.env.CLAUDE_PLUGIN_ROOT??process.env.CODEX_PLUGIN_ROOT,r=opt(new URL("../cli.ts",import.meta.url)),i=[n?qa(n,"scripts","bootstrap.mjs"):void 0,qa(Ps(Ps(r)),"scripts","bootstrap.mjs")];for(let d of i)if(d&&gK(d))return d}async function XRn(n){let r=Wr(n.flags),i=await xs(r);if(!i){console.log("memory: not initialized here \u2014 run `memory init --mode graph` before installing git hooks");return}if(i.mode!=="graph"){console.log(`memory: git hooks need graph mode \u2014 this project is "${i.mode}". Re-run \`memory init --mode graph\` first`);return}let d=await Npt(r),m=await XHe({hooksDir:d,bootstrapPath:fRn(),force:n.flags.force===!0});if(n.flags.json===!0){console.log(JSON.stringify({hooksDir:d,...m},null,2));return}m.installed.length>0&&console.log(`memory: installed ${m.installed.join(", ")} into ${d}`);for(let h of m.backedUp)console.log(` backed up existing hook \u2192 ${h}`);for(let h of m.skipped)console.log(` skipped ${h.hook}: ${h.reason}`)}async function wRn(n){let r=Wr(n.flags),i=await Npt(r),d=await wHe(i);if(n.flags.json===!0){console.log(JSON.stringify({hooksDir:i,...d},null,2));return}d.removed.length>0?console.log(`memory: removed ${d.removed.join(", ")} from ${i}`):console.log(`memory: no managed hooks found in ${i}`);for(let m of d.restored)console.log(` restored backed-up hook \u2192 ${m}`);for(let m of d.skipped)console.log(` ${m.reason}`)}async function Ypt(n){let r=n.positional[0];if(r==="learn")return HRn(n);if(r!=="record")throw new Error("unknown worker command \u2014 expected: memory worker record|learn");let i=await _5();if(!i.trim())throw new Error("worker record needs a JSON payload on stdin");let d=JSON.parse(i),{store:m}=await gr(n);try{let h=await I_e(m,d);console.log(`memory: recorded worker ${d.repository}#${d.issueNumber}/${d.attemptNumber} (rid ${h.workerRid})`)}finally{await m.close()}}async function HRn(n){let r=n.positional[1];if(r==="apply")return QRn(n);if(r!=null)throw new Error("memory worker learn supports: apply");let i=Wr(n.flags),d=n.flags.json===!0,m=n.flags["write-proposal"]===!0,{store:h}=await gr(n);try{let V=await l_e(h),v=m?await r_e(i,V):null,_=V.proposals.length===0?"no-candidates":m?"proposal-written":"proposal-ready";if(d){console.log(JSON.stringify({state:_,proposalFile:v,...V},null,2));return}console.log(`memory: worker learning - ${_}`);for(let M of V.proposals)console.log(` [${M.kind}] ${M.title}`),console.log(` evidence: ${M.evidenceSummary}`);for(let M of V.rejected)console.log(` ${M.action}: ${M.kind} - ${M.reason}`);v&&console.log(` proposal: ${v}`),console.log(`
@@ -30,7 +30,7 @@ ${n.searched.map(t=>` ${t}`).join(`
30
30
  `}function Vr(e,n){return n.map(N).join(e)}function lf(e){if(!Array.isArray(e)||e.length===0)throw S(0,"TOONL header requires fields");return e.map(n=>{let t;try{[t]=X(String(n),0)}catch(r){throw ze(r)}if(t==="")throw S(0,"TOONL header requires fields");return t})}function Xi(e,n){return e!==null&&e.length===n.length&&e.every((t,r)=>t===n[r])}function Zi(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw S(0,"TOONL continuation cadence must be positive")}function af(e,n,t){return e.continuationEveryRows!==void 0&&n>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&t>=e.continuationEveryBytes}function el(e){if(e===null||typeof e!="object"||Array.isArray(e))throw S(0,"TOONL output requires object rows");let n=Object.keys(e);if(n.length===0)throw S(0,"TOONL output requires object rows");if(n.some(t=>!se(e[t])))throw S(0,"TOONL rows must be flat objects");return n}function df(e){return JSON.stringify([...e].sort())}function nl(e,n){let t=df(e),r=n.get(t);return r!==void 0?r:(n.set(t,e),e)}function ge({delimiter:e=O,trailer:n=!0,continuationEveryRows:t,continuationEveryBytes:r}={}){sf(e),Zi(t),Zi(r);let o=null,s="",i=new Map,l=0,a=0,d=0,c=new Map,u=!1,f={continuationEveryRows:t,continuationEveryBytes:r},m=()=>o===null||!n?"":`[=${l}]
31
31
  `,h=()=>af(f,a,d)?(a=0,d=0,zi(e,s,!0)):"",b=k=>{sl(k,0);let w=c.get(k);if(w===void 0){if(c.size>=rl)throw S(0,"too many tagged lanes");w={fields:null,fieldsByShape:new Map},c.set(k,w)}return w};return{push(k){if(u)throw S(0,"TOONL encoder is closed");let w=nl(el(k),i),j="";(o===null||o.length!==w.length||o.some((fe,Ue)=>fe!==w[Ue]))&&(j+=m(),o=w,s=Vr(e,o),l=0,a=0,d=0,j+=zi(e,s));let Y=o.map(fe=>B(k[fe],e));j+=h();let pe=`${Y.join(e)}
32
32
  `;return j+=pe,l+=1,a+=1,d+=pe.length,j},declareLane(k,w){if(u)throw S(0,"TOONL encoder is closed");let j=lf(w),Y=Vr(O,j),pe=b(k);return Xi(pe.fields,j)?"":(pe.fields=j,Yi(k,Y))},pushTagged(k,w){if(u)throw S(0,"TOONL encoder is closed");let j=b(k),Y=nl(el(w),j.fieldsByShape),pe=Vr(O,Y),fe=Y.map(dr=>B(w[dr],O)),Ue="";return Xi(j.fields,Y)||(j.fields=Y,Ue+=Yi(k,pe)),`${Ue}${k}:${fe.join(O)}
33
- `},end(){return u?"":(u=!0,m())}}}function qr(e){let n={app:e,version:cf(nn("__RED_BUILD_VERSION__",()=>"3.3.20")??"0.0.0-dev"),gitSha:nn("__RED_BUILD_GIT_SHA__",()=>"73185e7174f0cc3395ef0209acc09735ba80306b")??"unknown",buildTime:nn("__RED_BUILD_TIME__",()=>"2026-08-03T15:32:25Z")??"unknown",bundleAsset:nn("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},t=nn("__REDDB_SDK_VERSION__",()=>""),r=nn("__REDDB_BINARY_TAG__",()=>"");return t&&(n.reddbSdkVersion=t),r&&(n.reddbBinaryTag=r),n}function cf(e){return e.startsWith("v")?e.slice(1):e}function il(e){return`${e.app} ${e.version} ${e.gitSha}`}function nn(e,n){try{let t=n();return typeof t=="string"&&t.length>0?t:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var ll={"=":"data",":=":{to:"data",typed:!0},":":"meta"},uf=/^[a-z][a-z0-9+.-]*:\/\//i;function pf(e,n){return typeof n=="string"?{separator:e,to:n,typed:!1,prefix:!1}:{separator:e,to:n.to,typed:n.typed??!1,prefix:n.prefix??!1}}function ff(e=ll){return Object.entries(e).map(([n,t])=>pf(n,t)).sort((n,t)=>t.separator.length-n.separator.length)}function mf(e){return/^-\d+(\.\d+)?$/.test(e)}function An(e){return!(!e||e.startsWith("-")&&!mf(e))}function St(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let n=Number(e);return!Number.isNaN(n)&&Number.isFinite(n)&&e.trim()!==""?n:e}function al(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}"))try{return JSON.parse(e)}catch{}let n=Number(e);return!Number.isNaN(n)&&Number.isFinite(n)&&e.trim()!==""?n:e.includes(",")?e.split(",").map(t=>al(t.trim())):e}function Ae(e,n){switch(n){case"boolean":return hf(e);case"number":return gf(e);case"array":return e.split(",").map(t=>St(t.trim()));case"string":default:return e}}function hf(e){let n=e.toLowerCase().trim();return n==="true"||n==="yes"||n==="1"||n==="on"}function gf(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let n=Number(e);if(Number.isNaN(n))throw new TypeError(`Cannot convert "${e}" to number`);return n}function xe(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function yf(e,n={}){return e.map(t=>{let r=n[t.type];return r?r(t.value):t.value}).join("")}function E(e,n){return{type:e,value:n}}function kf(e){let n=[],t=bf(e);if(n.push(E("section-header","Usage:"),E("text"," "),E("usage-text",t),E("newline",`
33
+ `},end(){return u?"":(u=!0,m())}}}function qr(e){let n={app:e,version:cf(nn("__RED_BUILD_VERSION__",()=>"3.3.21")??"0.0.0-dev"),gitSha:nn("__RED_BUILD_GIT_SHA__",()=>"bae98be31c9aa17a4bd850e053045c2ffb276781")??"unknown",buildTime:nn("__RED_BUILD_TIME__",()=>"2026-08-03T15:53:12Z")??"unknown",bundleAsset:nn("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},t=nn("__REDDB_SDK_VERSION__",()=>""),r=nn("__REDDB_BINARY_TAG__",()=>"");return t&&(n.reddbSdkVersion=t),r&&(n.reddbBinaryTag=r),n}function cf(e){return e.startsWith("v")?e.slice(1):e}function il(e){return`${e.app} ${e.version} ${e.gitSha}`}function nn(e,n){try{let t=n();return typeof t=="string"&&t.length>0?t:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var ll={"=":"data",":=":{to:"data",typed:!0},":":"meta"},uf=/^[a-z][a-z0-9+.-]*:\/\//i;function pf(e,n){return typeof n=="string"?{separator:e,to:n,typed:!1,prefix:!1}:{separator:e,to:n.to,typed:n.typed??!1,prefix:n.prefix??!1}}function ff(e=ll){return Object.entries(e).map(([n,t])=>pf(n,t)).sort((n,t)=>t.separator.length-n.separator.length)}function mf(e){return/^-\d+(\.\d+)?$/.test(e)}function An(e){return!(!e||e.startsWith("-")&&!mf(e))}function St(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let n=Number(e);return!Number.isNaN(n)&&Number.isFinite(n)&&e.trim()!==""?n:e}function al(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}"))try{return JSON.parse(e)}catch{}let n=Number(e);return!Number.isNaN(n)&&Number.isFinite(n)&&e.trim()!==""?n:e.includes(",")?e.split(",").map(t=>al(t.trim())):e}function Ae(e,n){switch(n){case"boolean":return hf(e);case"number":return gf(e);case"array":return e.split(",").map(t=>St(t.trim()));case"string":default:return e}}function hf(e){let n=e.toLowerCase().trim();return n==="true"||n==="yes"||n==="1"||n==="on"}function gf(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let n=Number(e);if(Number.isNaN(n))throw new TypeError(`Cannot convert "${e}" to number`);return n}function xe(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function yf(e,n={}){return e.map(t=>{let r=n[t.type];return r?r(t.value):t.value}).join("")}function E(e,n){return{type:e,value:n}}function kf(e){let n=[],t=bf(e);if(n.push(E("section-header","Usage:"),E("text"," "),E("usage-text",t),E("newline",`
34
34
  `),E("newline",`
35
35
  `)),e.positional&&e.positional.length>0){n.push(E("section-header","Arguments:"),E("newline",`
36
36
  `));for(let r of e.positional)if(r.description){let o=r.variadic?`${r.name}...`:r.name;n.push(E("indent"," "),E("positional-name",`<${o}>`)),r.required||n.push(E("positional-optional"," (optional)")),n.push(E("newline",`
@@ -37,7 +37,7 @@ var iw=Object.defineProperty;var g=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{fo
37
37
  `;return y+=k,a+=1,c+=1,u+=k.length,y},declareLane(_,h){if(f)throw P(0,"TOONL encoder is closed");let y=D_(h),w=aa(G,y),k=b(_);return Rd(k.fields,y)?"":(k.fields=y,_d(_,w))},pushTagged(_,h){if(f)throw P(0,"TOONL encoder is closed");let y=b(_),w=Ed(Sd(h),y.fieldsByShape),k=aa(G,w),T=w.map(Te=>ie(h[Te],G)),M="";return Rd(y.fields,w)||(y.fields=w,M+=_d(_,k)),`${M}${_}:${T.join(G)}
38
38
  `},end(){return f?"":(f=!0,m())}}}var xd,vd,Cd,cL,uL,Od=g(()=>{ot();hr();qt();xd=[G,"|"," "],vd=8,Cd=/^[A-Za-z0-9_-]+$/,cL=new TextEncoder,uL=new TextDecoder});var N=g(()=>{Gl();ot();hr();hr();yd();Od()});function F_(e){return e==="no-op"?0:e==="usage"?2:1}function D(e){return Buffer.from(`${C(ca(e))}
39
39
  `)}function ca(e){let t={command:e.command,category:e.category,exit_code:e.exitCode??F_(e.category),error:e.error,help:[e.help]};return e.validFlags&&e.validFlags.length>0&&(t.valid_flags=[...e.validFlags]),e.diagnostics&&(t.diagnostics=j_(e.diagnostics,3)),t}function $e(e,t,n){let s=([n,t].find(i=>i.trim())??"").trim(),o=s.toLowerCase();return/\bgh\b/.test(e)&&Fl(s)?{command:e,category:"transient",error:yr(s)||"GitHub API rate limit exceeded",help:Bl,diagnostics:s}:/\bgh\b/.test(e)&&(o.includes("gh_token")||o.includes("not logged in")||o.includes("authentication"))?{command:e,category:"real-error",error:yr(s)||"GitHub authentication failed",help:"gh auth login",diagnostics:s}:o.includes("not a git repository")?{command:e,category:"real-error",error:yr(s)||"not a git repository",help:"git status",diagnostics:s}:o.includes("repository not found")||o.includes("could not resolve host")?{command:e,category:"real-error",error:yr(s)||"repository is unavailable",help:e.startsWith("gh ")?"gh repo view":"git remote -v",diagnostics:s}:{command:e,category:"real-error",error:yr(s)||"command failed",help:`${e} --help`,diagnostics:s}}function Ad(e,t,n,r){return D({command:e,category:"usage",error:`unknown flag: ${t}`,help:r,validFlags:n})}function yr(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function j_(e,t){return e.split(/\r?\n/).slice(0,t).join(`
40
- `).trim()}var Ve=g(()=>{"use strict";jl();N()});function Ms(e){let t={app:e,version:X_(Tn("__RED_BUILD_VERSION__",()=>"3.3.20")??"0.0.0-dev"),gitSha:Tn("__RED_BUILD_GIT_SHA__",()=>"73185e7174f0cc3395ef0209acc09735ba80306b")??"unknown",buildTime:Tn("__RED_BUILD_TIME__",()=>"2026-08-03T15:32:25Z")??"unknown",bundleAsset:Tn("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},n=Tn("__REDDB_SDK_VERSION__",()=>"1.23.1"),r=Tn("__REDDB_BINARY_TAG__",()=>"v1.23.1");return n&&(t.reddbSdkVersion=n),r&&(t.reddbBinaryTag=r),t}function X_(e){return e.startsWith("v")?e.slice(1):e}function Fd(e){return`${e.app} ${e.version} ${e.gitSha}`}function Tn(e,t){try{let n=t();return typeof n=="string"&&n.length>0?n:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var la=g(()=>{});import{isAbsolute as Q_,join as it,resolve as da}from"node:path";function tR(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function Gd(e){return it(tR(e),jd)}function Hd(e){return it(Gd(e),"state")}function Ud(e){return it(Gd(e),"tmp")}function q(e){return it(Hd(e),"rsp")}function nR(e){return it(Hd(e),"red-skills.rdb")}function rR(e){return it(Ud(e),"red-skills.rdb")}function Jd(e,t){let n=nR(e);if(t(n))return n;let r=rR(e);if(t(r))throw sR();return n}function sR(){return new Error("Legacy shared store found at .red/tmp/red-skills.rdb. Run `rsp setup` to migrate it to .red/state/red-skills.rdb before using rsp, memory, or brain.")}function Vd(e){return it(Ud(e),"waits")}function Kd(e){let t=e.overrideEnvVars??fa;for(let r of t){let s=e.env[r];if(s)return Q_(s)?s:da(e.startDir,s)}let n=da(e.startDir);for(;;){if(e.exists(it(n,jd)))return n;let r=it(n,".."),s=da(r);if(s===n)break;n=s}return e.startDir}var jd,Z_,eR,fa,Wd,qd,Re=g(()=>{jd=".red",Z_="MEMORY_ROOT",eR="RED_BRAIN_ROOT",fa=[Z_,eR];Wd=".red/state/red-skills.rdb";qd=".red/tmp/red-skills.rdb"});function J(e){return C(e,{keyedMapCollapse:!0})}var oR,iR,qL,at=g(()=>{N();Re();oR=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],iR=[{id:"dev.afk-history",plugin:"dev",legacyPath:".red/state/afk-history.jsonl",toonPath:".red/state/castle/history.toonl",kind:"toonl"},{id:"dev.agent-log",plugin:"dev",legacyPath:".red/tmp/agent.log.toonl",toonPath:".red/tmp/agent.log.toonl",kind:"toonl"},{id:"dev.supervisor-firehose",plugin:"dev",legacyPath:".red/tmp/afk-supervisor.log.toonl",toonPath:".red/tmp/supervisors/default/supervisor.log.toonl",kind:"toonl",migration:"sniff-read"},{id:"dev.code-understanding-bench-runs",plugin:"dev",legacyPath:".red/tmp/bench/code-understanding/runs.jsonl",toonPath:".red/tmp/bench/code-understanding/runs.toonl",kind:"toonl"},{id:"dev.attempt-state",plugin:"dev",legacyPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",toonPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",kind:"toon"},{id:"dev.statusline-count-cache",plugin:"dev",legacyPath:".red/tmp/statusline-cache.json",toonPath:".red/state/statusline/statusline-cache.toon",kind:"toon"},{id:"dev.statusline-repo-cache",plugin:"dev",legacyPath:".red/tmp/statusline-repo-cache.json",toonPath:".red/state/statusline/statusline-repo-cache.toon",kind:"toon"},{id:"dev.rsp-resident-registry",plugin:"dev",legacyPath:".red/state/rsp/rsp-resident.pid.json",toonPath:".red/state/rsp/rsp-resident.pid.json",kind:"toon"},{id:"dev.rsp-status-summary",plugin:"dev",legacyPath:".red/state/rsp/rsp-status-summary.json",toonPath:".red/state/rsp/rsp-status-summary.json",kind:"toon"},{id:"dev.rsp-wait-registry",plugin:"dev",legacyPath:".red/tmp/waits/*.json",toonPath:".red/tmp/waits/*.json",kind:"toon"}],qL=[...oR,...iR]});function br(e){let{values:t,rest:n}=Ht(e,{query:zd.query},Yd);return{argv:n,query:t.query?.trim()||void 0}}function Xd(e){let{values:t,rest:n}=Ht(e,zd,Yd);return{argv:n,query:t.query?.trim()||void 0,full:t.full===!0}}function aR(e,t){if(!t)return!0;let n=pa(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(r=>n.includes(r))}function ae(e,t){return t?e.filter(n=>aR(n,t)):[...e]}function ct(e,t){return ma(e,t,{includeLegacyHelp:!0})}function ma(e,t,n={}){let r=t.filter(Boolean);return r.length===0?e:{...e,...n.includeLegacyHelp?{help:r}:{},next_steps:r}}function pa(e){return Array.isArray(e)?e.map(pa).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(pa).join(" "):String(e??"")}var zd,Yd,wr=g(()=>{"use strict";ji();zd={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},Yd={stopAtSeparator:!1}});var qs={};B(qs,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>Bs,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>Fs,DEFAULT_RSP_OVERHEAD_CEILING:()=>De,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>Gs,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>Hs,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>js,RSP_OVERHEAD_FAMILIES:()=>mR,RSP_OVERHEAD_LEDGER_FILE:()=>ef,RSP_OVERHEAD_SCHEMA_VERSION:()=>tf,classifyOverheadSample:()=>ya,noteChildProcessMs:()=>rf,noteSelfStateBytesRead:()=>kr,overheadCounters:()=>Sr,overheadFamilyDisabled:()=>wa,overheadHealth:()=>kt,overheadLedgerPath:()=>ba,overheadMsOf:()=>nf,overheadTelemetryFields:()=>Us,readOverheadLedger:()=>_r,readSelfStateFile:()=>Ws,readSelfStateFileSync:()=>yR,recordOverheadSample:()=>Rr,resetOverheadCounters:()=>hR,resetOverheadLedger:()=>gR,startChildProcessTimer:()=>ce});import{existsSync as cR,mkdirSync as uR,readFileSync as Qd,renameSync as lR,writeFileSync as dR}from"node:fs";import{readFile as fR}from"node:fs/promises";import{dirname as pR,join as Zd}from"node:path";function nf(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,ha(t)):0}function ya(e,t=De){let n=nf(e),r=[];return n>t.maxOverheadMs&&r.push("wall-clock-ceiling"),e.selfStateBytesRead>t.maxSelfStateBytes&&r.push("self-state-byte-ceiling"),e.selfStateBytesRead>t.netLossFloorBytes&&e.selfStateBytesRead>e.bytesSaved&&r.push("overhead-exceeds-savings"),{overhead_ms:n,breached:r.length>0,reasons:r}}function Us(e,t=De){let n=ya(e,t);return{wrapper_ms:ha(e.wrapperMs),overhead_ms:n.overhead_ms,child_ms:ha(Math.max(0,e.childMs)),self_state_bytes_read:Math.max(0,Math.trunc(e.selfStateBytesRead)),bytes_saved:Math.max(0,Math.trunc(e.bytesSaved)),overhead_breached:n.breached,overhead_breach_reasons:n.reasons.join(",")}}function ba(e){return Zd(q(e),ef)}function _r(e){try{let t=Qd(ba(e),"utf8"),n=RR(t);if(kR(n))return n}catch{}return{version:1,families:{}}}function Rr(e,t,n=De,r=Date.now()){let s=_r(e),o=ya(t,n),i=s.families[t.family]??_R(t.family,r),a=ka(i,r)?sf(i):i,c=o.breached?a.consecutive_breaches+1:0,u={...a,family:t.family,invocations:a.invocations+1,breaches:a.breaches+(o.breached?1:0),consecutive_breaches:c,breached:o.breached,reasons:o.reasons,last_overhead_ms:o.overhead_ms,last_self_state_bytes_read:Math.max(0,Math.trunc(t.selfStateBytesRead)),last_bytes_saved:Math.max(0,Math.trunc(t.bytesSaved)),updated_at:new Date(r).toISOString()};return o.breached?c>=n.consecutiveBreaches&&(u.disabled=!0,u.disabled_at=new Date(r).toISOString(),u.disabled_until=new Date(r+n.cooldownMs).toISOString(),u.disabled_reason=bR(t.family,c,o,n)):(u.disabled=!1,u.disabled_at=null,u.disabled_until=null,u.disabled_reason=null),s.families[t.family]=u,of(e,s),u}function wa(e,t,n=Date.now()){let r=_r(e).families[t];return!r?.disabled||ka(r,n)?null:r}function gR(e,t){let n=_r(e);return t?delete n.families[t]:n.families={},of(e,n),n}function kt(e,t=De,n=Date.now()){let r=Object.values(_r(e).families).map(a=>ka(a,n)?sf(a):a).sort((a,c)=>a.family.localeCompare(c.family)),s=r.filter(a=>a.disabled),o=r.filter(a=>a.consecutive_breaches>0),i=s.length>0||o.length>0?"red":"green";return{schema_version:tf,verdict:i,summary:wR(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:r}}function kr(e){Number.isFinite(e)&&e>0&&(_a+=e)}function rf(e){Number.isFinite(e)&&e>0&&(Ra+=e)}function Sr(){return{selfStateBytesRead:_a,childMs:Ra}}function hR(){_a=0,Ra=0}function ce(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,rf(Number(process.hrtime.bigint()-e)/1e6))}}async function Ws(e){let t=await fR(e,"utf8");return kr(Buffer.byteLength(t)),t}function yR(e){let t=Qd(e,"utf8");return kr(Buffer.byteLength(t)),t}function bR(e,t,n,r){let s=n.reasons.map(o=>o==="wall-clock-ceiling"?`added ${n.overhead_ms}ms > ${r.maxOverheadMs}ms`:o==="self-state-byte-ceiling"?`self-state read > ${r.maxSelfStateBytes}B`:"self-state read exceeded bytes saved").join("; ");return`rsp ${e} exceeded its overhead ceiling on ${t} consecutive invocations (${s}); wrapper self-disabled, commands pass through raw`}function wR(e,t,n){if(e==="green")return"every wrapper family is inside its overhead ceiling";let r=[];return t.length>0&&r.push(`self-disabled: ${t.map(s=>`${s.family} (${s.reasons.join(",")||"ceiling"})`).join(", ")}`),n.length>0&&r.push(`breaching: ${n.map(s=>`${s.family} x${s.consecutive_breaches}`).join(", ")}`),r.join("; ")}function ka(e,t){if(!e.disabled||!e.disabled_until)return!1;let n=Date.parse(e.disabled_until);return Number.isFinite(n)&&n<=t}function sf(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function _R(e,t){return{family:e,invocations:0,breaches:0,consecutive_breaches:0,breached:!1,reasons:[],disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,last_overhead_ms:0,last_self_state_bytes_read:0,last_bytes_saved:0,updated_at:new Date(t).toISOString()}}function of(e,t){try{let n=ba(e);if(!cR(Zd(e,".red")))return;uR(pR(n),{recursive:!0});let r=`${n}.${process.pid}.tmp`;dR(r,`${C(t)}
40
+ `).trim()}var Ve=g(()=>{"use strict";jl();N()});function Ms(e){let t={app:e,version:X_(Tn("__RED_BUILD_VERSION__",()=>"3.3.21")??"0.0.0-dev"),gitSha:Tn("__RED_BUILD_GIT_SHA__",()=>"bae98be31c9aa17a4bd850e053045c2ffb276781")??"unknown",buildTime:Tn("__RED_BUILD_TIME__",()=>"2026-08-03T15:53:12Z")??"unknown",bundleAsset:Tn("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},n=Tn("__REDDB_SDK_VERSION__",()=>"1.23.1"),r=Tn("__REDDB_BINARY_TAG__",()=>"v1.23.1");return n&&(t.reddbSdkVersion=n),r&&(t.reddbBinaryTag=r),t}function X_(e){return e.startsWith("v")?e.slice(1):e}function Fd(e){return`${e.app} ${e.version} ${e.gitSha}`}function Tn(e,t){try{let n=t();return typeof n=="string"&&n.length>0?n:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var la=g(()=>{});import{isAbsolute as Q_,join as it,resolve as da}from"node:path";function tR(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function Gd(e){return it(tR(e),jd)}function Hd(e){return it(Gd(e),"state")}function Ud(e){return it(Gd(e),"tmp")}function q(e){return it(Hd(e),"rsp")}function nR(e){return it(Hd(e),"red-skills.rdb")}function rR(e){return it(Ud(e),"red-skills.rdb")}function Jd(e,t){let n=nR(e);if(t(n))return n;let r=rR(e);if(t(r))throw sR();return n}function sR(){return new Error("Legacy shared store found at .red/tmp/red-skills.rdb. Run `rsp setup` to migrate it to .red/state/red-skills.rdb before using rsp, memory, or brain.")}function Vd(e){return it(Ud(e),"waits")}function Kd(e){let t=e.overrideEnvVars??fa;for(let r of t){let s=e.env[r];if(s)return Q_(s)?s:da(e.startDir,s)}let n=da(e.startDir);for(;;){if(e.exists(it(n,jd)))return n;let r=it(n,".."),s=da(r);if(s===n)break;n=s}return e.startDir}var jd,Z_,eR,fa,Wd,qd,Re=g(()=>{jd=".red",Z_="MEMORY_ROOT",eR="RED_BRAIN_ROOT",fa=[Z_,eR];Wd=".red/state/red-skills.rdb";qd=".red/tmp/red-skills.rdb"});function J(e){return C(e,{keyedMapCollapse:!0})}var oR,iR,qL,at=g(()=>{N();Re();oR=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],iR=[{id:"dev.afk-history",plugin:"dev",legacyPath:".red/state/afk-history.jsonl",toonPath:".red/state/castle/history.toonl",kind:"toonl"},{id:"dev.agent-log",plugin:"dev",legacyPath:".red/tmp/agent.log.toonl",toonPath:".red/tmp/agent.log.toonl",kind:"toonl"},{id:"dev.supervisor-firehose",plugin:"dev",legacyPath:".red/tmp/afk-supervisor.log.toonl",toonPath:".red/tmp/supervisors/default/supervisor.log.toonl",kind:"toonl",migration:"sniff-read"},{id:"dev.code-understanding-bench-runs",plugin:"dev",legacyPath:".red/tmp/bench/code-understanding/runs.jsonl",toonPath:".red/tmp/bench/code-understanding/runs.toonl",kind:"toonl"},{id:"dev.attempt-state",plugin:"dev",legacyPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",toonPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",kind:"toon"},{id:"dev.statusline-count-cache",plugin:"dev",legacyPath:".red/tmp/statusline-cache.json",toonPath:".red/state/statusline/statusline-cache.toon",kind:"toon"},{id:"dev.statusline-repo-cache",plugin:"dev",legacyPath:".red/tmp/statusline-repo-cache.json",toonPath:".red/state/statusline/statusline-repo-cache.toon",kind:"toon"},{id:"dev.rsp-resident-registry",plugin:"dev",legacyPath:".red/state/rsp/rsp-resident.pid.json",toonPath:".red/state/rsp/rsp-resident.pid.json",kind:"toon"},{id:"dev.rsp-status-summary",plugin:"dev",legacyPath:".red/state/rsp/rsp-status-summary.json",toonPath:".red/state/rsp/rsp-status-summary.json",kind:"toon"},{id:"dev.rsp-wait-registry",plugin:"dev",legacyPath:".red/tmp/waits/*.json",toonPath:".red/tmp/waits/*.json",kind:"toon"}],qL=[...oR,...iR]});function br(e){let{values:t,rest:n}=Ht(e,{query:zd.query},Yd);return{argv:n,query:t.query?.trim()||void 0}}function Xd(e){let{values:t,rest:n}=Ht(e,zd,Yd);return{argv:n,query:t.query?.trim()||void 0,full:t.full===!0}}function aR(e,t){if(!t)return!0;let n=pa(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(r=>n.includes(r))}function ae(e,t){return t?e.filter(n=>aR(n,t)):[...e]}function ct(e,t){return ma(e,t,{includeLegacyHelp:!0})}function ma(e,t,n={}){let r=t.filter(Boolean);return r.length===0?e:{...e,...n.includeLegacyHelp?{help:r}:{},next_steps:r}}function pa(e){return Array.isArray(e)?e.map(pa).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(pa).join(" "):String(e??"")}var zd,Yd,wr=g(()=>{"use strict";ji();zd={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},Yd={stopAtSeparator:!1}});var qs={};B(qs,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>Bs,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>Fs,DEFAULT_RSP_OVERHEAD_CEILING:()=>De,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>Gs,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>Hs,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>js,RSP_OVERHEAD_FAMILIES:()=>mR,RSP_OVERHEAD_LEDGER_FILE:()=>ef,RSP_OVERHEAD_SCHEMA_VERSION:()=>tf,classifyOverheadSample:()=>ya,noteChildProcessMs:()=>rf,noteSelfStateBytesRead:()=>kr,overheadCounters:()=>Sr,overheadFamilyDisabled:()=>wa,overheadHealth:()=>kt,overheadLedgerPath:()=>ba,overheadMsOf:()=>nf,overheadTelemetryFields:()=>Us,readOverheadLedger:()=>_r,readSelfStateFile:()=>Ws,readSelfStateFileSync:()=>yR,recordOverheadSample:()=>Rr,resetOverheadCounters:()=>hR,resetOverheadLedger:()=>gR,startChildProcessTimer:()=>ce});import{existsSync as cR,mkdirSync as uR,readFileSync as Qd,renameSync as lR,writeFileSync as dR}from"node:fs";import{readFile as fR}from"node:fs/promises";import{dirname as pR,join as Zd}from"node:path";function nf(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,ha(t)):0}function ya(e,t=De){let n=nf(e),r=[];return n>t.maxOverheadMs&&r.push("wall-clock-ceiling"),e.selfStateBytesRead>t.maxSelfStateBytes&&r.push("self-state-byte-ceiling"),e.selfStateBytesRead>t.netLossFloorBytes&&e.selfStateBytesRead>e.bytesSaved&&r.push("overhead-exceeds-savings"),{overhead_ms:n,breached:r.length>0,reasons:r}}function Us(e,t=De){let n=ya(e,t);return{wrapper_ms:ha(e.wrapperMs),overhead_ms:n.overhead_ms,child_ms:ha(Math.max(0,e.childMs)),self_state_bytes_read:Math.max(0,Math.trunc(e.selfStateBytesRead)),bytes_saved:Math.max(0,Math.trunc(e.bytesSaved)),overhead_breached:n.breached,overhead_breach_reasons:n.reasons.join(",")}}function ba(e){return Zd(q(e),ef)}function _r(e){try{let t=Qd(ba(e),"utf8"),n=RR(t);if(kR(n))return n}catch{}return{version:1,families:{}}}function Rr(e,t,n=De,r=Date.now()){let s=_r(e),o=ya(t,n),i=s.families[t.family]??_R(t.family,r),a=ka(i,r)?sf(i):i,c=o.breached?a.consecutive_breaches+1:0,u={...a,family:t.family,invocations:a.invocations+1,breaches:a.breaches+(o.breached?1:0),consecutive_breaches:c,breached:o.breached,reasons:o.reasons,last_overhead_ms:o.overhead_ms,last_self_state_bytes_read:Math.max(0,Math.trunc(t.selfStateBytesRead)),last_bytes_saved:Math.max(0,Math.trunc(t.bytesSaved)),updated_at:new Date(r).toISOString()};return o.breached?c>=n.consecutiveBreaches&&(u.disabled=!0,u.disabled_at=new Date(r).toISOString(),u.disabled_until=new Date(r+n.cooldownMs).toISOString(),u.disabled_reason=bR(t.family,c,o,n)):(u.disabled=!1,u.disabled_at=null,u.disabled_until=null,u.disabled_reason=null),s.families[t.family]=u,of(e,s),u}function wa(e,t,n=Date.now()){let r=_r(e).families[t];return!r?.disabled||ka(r,n)?null:r}function gR(e,t){let n=_r(e);return t?delete n.families[t]:n.families={},of(e,n),n}function kt(e,t=De,n=Date.now()){let r=Object.values(_r(e).families).map(a=>ka(a,n)?sf(a):a).sort((a,c)=>a.family.localeCompare(c.family)),s=r.filter(a=>a.disabled),o=r.filter(a=>a.consecutive_breaches>0),i=s.length>0||o.length>0?"red":"green";return{schema_version:tf,verdict:i,summary:wR(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:r}}function kr(e){Number.isFinite(e)&&e>0&&(_a+=e)}function rf(e){Number.isFinite(e)&&e>0&&(Ra+=e)}function Sr(){return{selfStateBytesRead:_a,childMs:Ra}}function hR(){_a=0,Ra=0}function ce(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,rf(Number(process.hrtime.bigint()-e)/1e6))}}async function Ws(e){let t=await fR(e,"utf8");return kr(Buffer.byteLength(t)),t}function yR(e){let t=Qd(e,"utf8");return kr(Buffer.byteLength(t)),t}function bR(e,t,n,r){let s=n.reasons.map(o=>o==="wall-clock-ceiling"?`added ${n.overhead_ms}ms > ${r.maxOverheadMs}ms`:o==="self-state-byte-ceiling"?`self-state read > ${r.maxSelfStateBytes}B`:"self-state read exceeded bytes saved").join("; ");return`rsp ${e} exceeded its overhead ceiling on ${t} consecutive invocations (${s}); wrapper self-disabled, commands pass through raw`}function wR(e,t,n){if(e==="green")return"every wrapper family is inside its overhead ceiling";let r=[];return t.length>0&&r.push(`self-disabled: ${t.map(s=>`${s.family} (${s.reasons.join(",")||"ceiling"})`).join(", ")}`),n.length>0&&r.push(`breaching: ${n.map(s=>`${s.family} x${s.consecutive_breaches}`).join(", ")}`),r.join("; ")}function ka(e,t){if(!e.disabled||!e.disabled_until)return!1;let n=Date.parse(e.disabled_until);return Number.isFinite(n)&&n<=t}function sf(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function _R(e,t){return{family:e,invocations:0,breaches:0,consecutive_breaches:0,breached:!1,reasons:[],disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,last_overhead_ms:0,last_self_state_bytes_read:0,last_bytes_saved:0,updated_at:new Date(t).toISOString()}}function of(e,t){try{let n=ba(e);if(!cR(Zd(e,".red")))return;uR(pR(n),{recursive:!0});let r=`${n}.${process.pid}.tmp`;dR(r,`${C(t)}
41
41
  `,{encoding:"utf8",mode:384}),lR(r,n)}catch{}}function RR(e){try{return JSON.parse(e)}catch{return L(e)}}function kR(e){return!ga(e)||e.version!==1||!ga(e.families)?!1:Object.values(e.families).every(SR)}function SR(e){return ga(e)&&typeof e.family=="string"&&typeof e.consecutive_breaches=="number"&&typeof e.disabled=="boolean"}function ga(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ha(e){return Number.isFinite(e)?Math.round(e*1e3)/1e3:0}var ef,tf,Bs,Fs,js,Gs,Hs,mR,De,_a,Ra,V=g(()=>{"use strict";Re();N();ef="overhead-budget.toon",tf="red.rsp.overhead.v1",Bs=250,Fs=1024*1024,js=64*1024,Gs=3,Hs=6*60*60*1e3,mR=["git","gh","gh-api-json","vitest","cargo","cat","exec","proxy"],De={maxOverheadMs:Bs,maxSelfStateBytes:Fs,netLossFloorBytes:js,consecutiveBreaches:Gs,cooldownMs:Hs};_a=0,Ra=0});function uf(e){return e.trimStart().startsWith("{")?"json":"toon"}function Ea(e){let t=0;for(;e[t]===`
42
42
  `||e[t]==="\r";)t+=1;let n=e.slice(t);if(n==="")return null;let r=uf(n);if(r==="json"){let o=n.indexOf(`
43
43
  `);return o<0?null:{frame:n.slice(0,o),dialect:r,rest:n.slice(o+1)}}let s=n.indexOf(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reddb-io/red-skills",
3
- "version": "3.3.20",
3
+ "version": "3.3.21",
4
4
  "description": "RedSkills plugin runtime bundles (dev, code-nav, memory, brain) distributed over npm — the v2 client transport (ADR 0091). Carries the platform-independent JS bundles inside the tarball plus thin bin shims; no postinstall download.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",