@reddb-io/red-skills 3.0.2 → 3.0.4

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.
@@ -31,7 +31,7 @@ var Hy=Object.defineProperty;var h=(e,t)=>()=>(e&&(t=e(e=0)),t);var F=(e,t)=>{fo
31
31
  `;return y+=R,a+=1,c+=1,u+=R.length,y},declareLane(_,g){if(p)throw A(0,"TOONL encoder is closed");let y=Jb(g),b=Ii(N,y),R=w(_);return Sl(R.fields,y)?"":(R.fields=y,kl(_,b))},pushTagged(_,g){if(p)throw A(0,"TOONL encoder is closed");let y=w(_),b=vl(xl(g),y.fieldsByShape),R=Ii(N,b),T=b.map(_e=>Me(g[_e],N)),B="";return Sl(y.fields,b)||(y.fields=b,B+=kl(_,R)),`${B}${_}:${T.join(N)}
32
32
  `},end(){return p?"":(p=!0,f())}}}var Cl,Tl,Ol,kP,SP,Al=h(()=>{Xr();tn();wi();Cl=[N,"|"," "],Tl=8,Ol=/^[A-Za-z0-9_-]+$/,kP=new TextEncoder,SP=new TextDecoder});var M=h(()=>{Xr();tn();tn();wl();Al()});function zb(e){return e==="no-op"?0:e==="usage"?2:1}function $(e){return Buffer.from(`${C(Li(e))}
33
33
  `)}function Li(e){let t={command:e.command,category:e.category,exit_code:e.exitCode??zb(e.category),error:e.error,help:[e.help]};return e.validFlags&&e.validFlags.length>0&&(t.valid_flags=[...e.validFlags]),e.diagnostics&&(t.diagnostics=Yb(e.diagnostics,3)),t}function Ee(e,t,r){let s=([r,t].find(i=>i.trim())??"").trim(),o=s.toLowerCase();return/\bgh\b/.test(e)&&al(s)?{command:e,category:"transient",error:rn(s)||"GitHub API rate limit exceeded",help:il,diagnostics:s}:/\bgh\b/.test(e)&&(o.includes("gh_token")||o.includes("not logged in")||o.includes("authentication"))?{command:e,category:"real-error",error:rn(s)||"GitHub authentication failed",help:"gh auth login",diagnostics:s}:o.includes("not a git repository")?{command:e,category:"real-error",error:rn(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:rn(s)||"repository is unavailable",help:e.startsWith("gh ")?"gh repo view":"git remote -v",diagnostics:s}:{command:e,category:"real-error",error:rn(s)||"command failed",help:`${e} --help`,diagnostics:s}}function Il(e,t,r,n){return $({command:e,category:"usage",error:`unknown flag: ${t}`,help:n,validFlags:r})}function rn(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function Yb(e,t){return e.split(/\r?\n/).slice(0,t).join(`
34
- `).trim()}var Be=h(()=>{"use strict";cl();M()});function hs(e){let t={app:e,version:aw(fr("__RED_BUILD_VERSION__",()=>"3.0.2")??"0.0.0-dev"),gitSha:fr("__RED_BUILD_GIT_SHA__",()=>"77f6a6e5ac33113a7417bd6d761515ec213cd0dd")??"unknown",buildTime:fr("__RED_BUILD_TIME__",()=>"2026-07-30T22:31:19-03:00")??"unknown",bundleAsset:fr("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},r=fr("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=fr("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function aw(e){return e.startsWith("v")?e.slice(1):e}function Hl(e){return`${e.app} ${e.version} ${e.gitSha}`}function fr(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Di=h(()=>{});import{isAbsolute as cw,join as Ze,resolve as Ni}from"node:path";function dw(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function Ul(e){return Ze(dw(e),Gl)}function Wl(e){return Ze(Ul(e),"state")}function Jl(e){return Ze(Ul(e),"tmp")}function U(e){return Ze(Wl(e),"rsp")}function pw(e){return Ze(Wl(e),"red-skills.rdb")}function fw(e){return Ze(Jl(e),"red-skills.rdb")}function Kl(e,t){let r=pw(e);if(t(r))return r;let n=fw(e);if(t(n))throw mw();return r}function mw(){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 zl(e){return Ze(Jl(e),"waits")}function Yl(e){let t=e.overrideEnvVars??Mi;for(let n of t){let s=e.env[n];if(s)return cw(s)?s:Ni(e.startDir,s)}let r=Ni(e.startDir);for(;;){if(e.exists(Ze(r,Gl)))return r;let n=Ze(r,".."),s=Ni(n);if(s===r)break;r=s}return e.startDir}var Gl,uw,lw,Mi,ql,Vl,fe=h(()=>{Gl=".red",uw="MEMORY_ROOT",lw="RED_BRAIN_ROOT",Mi=[uw,lw];ql=".red/state/red-skills.rdb";Vl=".red/tmp/red-skills.rdb"});function W(e){return C(e,{keyedMapCollapse:!0})}var gw,hw,sA,Qe=h(()=>{M();fe();gw=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],hw=[{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"}],sA=[...gw,...hw]});function nn(e){let{values:t,rest:r}=It(e,{query:Xl.query},Zl);return{argv:r,query:t.query?.trim()||void 0}}function Ql(e){let{values:t,rest:r}=It(e,Xl,Zl);return{argv:r,query:t.query?.trim()||void 0,full:t.full===!0}}function yw(e,t){if(!t)return!0;let r=Bi(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(n=>r.includes(n))}function te(e,t){return t?e.filter(r=>yw(r,t)):[...e]}function et(e,t){return Fi(e,t,{includeLegacyHelp:!0})}function Fi(e,t,r={}){let n=t.filter(Boolean);return n.length===0?e:{...e,...r.includeLegacyHelp?{help:n}:{},next_steps:n}}function Bi(e){return Array.isArray(e)?e.map(Bi).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(Bi).join(" "):String(e??"")}var Xl,Zl,sn=h(()=>{"use strict";bi();Xl={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},Zl={stopAtSeparator:!1}});var Es={};F(Es,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>ys,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>bs,DEFAULT_RSP_OVERHEAD_CEILING:()=>xe,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>_s,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>Rs,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>ws,RSP_OVERHEAD_FAMILIES:()=>Ew,RSP_OVERHEAD_LEDGER_FILE:()=>rd,RSP_OVERHEAD_SCHEMA_VERSION:()=>nd,classifyOverheadSample:()=>Gi,noteChildProcessMs:()=>od,noteSelfStateBytesRead:()=>cn,overheadCounters:()=>un,overheadFamilyDisabled:()=>Wi,overheadHealth:()=>ft,overheadLedgerPath:()=>Ui,overheadMsOf:()=>sd,overheadTelemetryFields:()=>ks,readOverheadLedger:()=>on,readSelfStateFile:()=>Ss,readSelfStateFileSync:()=>Cw,recordOverheadSample:()=>an,resetOverheadCounters:()=>vw,resetOverheadLedger:()=>xw,startChildProcessTimer:()=>re});import{existsSync as bw,mkdirSync as ww,readFileSync as ed,renameSync as _w,writeFileSync as Rw}from"node:fs";import{readFile as kw}from"node:fs/promises";import{dirname as Sw,join as td}from"node:path";function sd(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,Hi(t)):0}function Gi(e,t=xe){let r=sd(e),n=[];return r>t.maxOverheadMs&&n.push("wall-clock-ceiling"),e.selfStateBytesRead>t.maxSelfStateBytes&&n.push("self-state-byte-ceiling"),e.selfStateBytesRead>t.netLossFloorBytes&&e.selfStateBytesRead>e.bytesSaved&&n.push("overhead-exceeds-savings"),{overhead_ms:r,breached:n.length>0,reasons:n}}function ks(e,t=xe){let r=Gi(e,t);return{wrapper_ms:Hi(e.wrapperMs),overhead_ms:r.overhead_ms,child_ms:Hi(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:r.breached,overhead_breach_reasons:r.reasons.join(",")}}function Ui(e){return td(U(e),rd)}function on(e){try{let t=ed(Ui(e),"utf8"),r=Aw(t);if(Iw(r))return r}catch{}return{version:1,families:{}}}function an(e,t,r=xe,n=Date.now()){let s=on(e),o=Gi(t,r),i=s.families[t.family]??Pw(t.family,n),a=Vi(i,n)?id(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(n).toISOString()};return o.breached?c>=r.consecutiveBreaches&&(u.disabled=!0,u.disabled_at=new Date(n).toISOString(),u.disabled_until=new Date(n+r.cooldownMs).toISOString(),u.disabled_reason=Tw(t.family,c,o,r)):(u.disabled=!1,u.disabled_at=null,u.disabled_until=null,u.disabled_reason=null),s.families[t.family]=u,ad(e,s),u}function Wi(e,t,r=Date.now()){let n=on(e).families[t];return!n?.disabled||Vi(n,r)?null:n}function xw(e,t){let r=on(e);return t?delete r.families[t]:r.families={},ad(e,r),r}function ft(e,t=xe,r=Date.now()){let n=Object.values(on(e).families).map(a=>Vi(a,r)?id(a):a).sort((a,c)=>a.family.localeCompare(c.family)),s=n.filter(a=>a.disabled),o=n.filter(a=>a.consecutive_breaches>0),i=s.length>0||o.length>0?"red":"green";return{schema_version:nd,verdict:i,summary:Ow(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:n}}function cn(e){Number.isFinite(e)&&e>0&&(Ji+=e)}function od(e){Number.isFinite(e)&&e>0&&(qi+=e)}function un(){return{selfStateBytesRead:Ji,childMs:qi}}function vw(){Ji=0,qi=0}function re(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,od(Number(process.hrtime.bigint()-e)/1e6))}}async function Ss(e){let t=await kw(e,"utf8");return cn(Buffer.byteLength(t)),t}function Cw(e){let t=ed(e,"utf8");return cn(Buffer.byteLength(t)),t}function Tw(e,t,r,n){let s=r.reasons.map(o=>o==="wall-clock-ceiling"?`added ${r.overhead_ms}ms > ${n.maxOverheadMs}ms`:o==="self-state-byte-ceiling"?`self-state read > ${n.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 Ow(e,t,r){if(e==="green")return"every wrapper family is inside its overhead ceiling";let n=[];return t.length>0&&n.push(`self-disabled: ${t.map(s=>`${s.family} (${s.reasons.join(",")||"ceiling"})`).join(", ")}`),r.length>0&&n.push(`breaching: ${r.map(s=>`${s.family} x${s.consecutive_breaches}`).join(", ")}`),n.join("; ")}function Vi(e,t){if(!e.disabled||!e.disabled_until)return!1;let r=Date.parse(e.disabled_until);return Number.isFinite(r)&&r<=t}function id(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function Pw(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 ad(e,t){try{let r=Ui(e);if(!bw(td(e,".red")))return;ww(Sw(r),{recursive:!0});let n=`${r}.${process.pid}.tmp`;Rw(n,`${C(t)}
34
+ `).trim()}var Be=h(()=>{"use strict";cl();M()});function hs(e){let t={app:e,version:aw(fr("__RED_BUILD_VERSION__",()=>"3.0.4")??"0.0.0-dev"),gitSha:fr("__RED_BUILD_GIT_SHA__",()=>"93051f3eda65f6e0cd40c92339034c3e119295e4")??"unknown",buildTime:fr("__RED_BUILD_TIME__",()=>"2026-07-31T00:19:51-03:00")??"unknown",bundleAsset:fr("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},r=fr("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=fr("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function aw(e){return e.startsWith("v")?e.slice(1):e}function Hl(e){return`${e.app} ${e.version} ${e.gitSha}`}function fr(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Di=h(()=>{});import{isAbsolute as cw,join as Ze,resolve as Ni}from"node:path";function dw(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function Ul(e){return Ze(dw(e),Gl)}function Wl(e){return Ze(Ul(e),"state")}function Jl(e){return Ze(Ul(e),"tmp")}function U(e){return Ze(Wl(e),"rsp")}function pw(e){return Ze(Wl(e),"red-skills.rdb")}function fw(e){return Ze(Jl(e),"red-skills.rdb")}function Kl(e,t){let r=pw(e);if(t(r))return r;let n=fw(e);if(t(n))throw mw();return r}function mw(){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 zl(e){return Ze(Jl(e),"waits")}function Yl(e){let t=e.overrideEnvVars??Mi;for(let n of t){let s=e.env[n];if(s)return cw(s)?s:Ni(e.startDir,s)}let r=Ni(e.startDir);for(;;){if(e.exists(Ze(r,Gl)))return r;let n=Ze(r,".."),s=Ni(n);if(s===r)break;r=s}return e.startDir}var Gl,uw,lw,Mi,ql,Vl,fe=h(()=>{Gl=".red",uw="MEMORY_ROOT",lw="RED_BRAIN_ROOT",Mi=[uw,lw];ql=".red/state/red-skills.rdb";Vl=".red/tmp/red-skills.rdb"});function W(e){return C(e,{keyedMapCollapse:!0})}var gw,hw,sA,Qe=h(()=>{M();fe();gw=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],hw=[{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"}],sA=[...gw,...hw]});function nn(e){let{values:t,rest:r}=It(e,{query:Xl.query},Zl);return{argv:r,query:t.query?.trim()||void 0}}function Ql(e){let{values:t,rest:r}=It(e,Xl,Zl);return{argv:r,query:t.query?.trim()||void 0,full:t.full===!0}}function yw(e,t){if(!t)return!0;let r=Bi(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(n=>r.includes(n))}function te(e,t){return t?e.filter(r=>yw(r,t)):[...e]}function et(e,t){return Fi(e,t,{includeLegacyHelp:!0})}function Fi(e,t,r={}){let n=t.filter(Boolean);return n.length===0?e:{...e,...r.includeLegacyHelp?{help:n}:{},next_steps:n}}function Bi(e){return Array.isArray(e)?e.map(Bi).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(Bi).join(" "):String(e??"")}var Xl,Zl,sn=h(()=>{"use strict";bi();Xl={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},Zl={stopAtSeparator:!1}});var Es={};F(Es,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>ys,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>bs,DEFAULT_RSP_OVERHEAD_CEILING:()=>xe,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>_s,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>Rs,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>ws,RSP_OVERHEAD_FAMILIES:()=>Ew,RSP_OVERHEAD_LEDGER_FILE:()=>rd,RSP_OVERHEAD_SCHEMA_VERSION:()=>nd,classifyOverheadSample:()=>Gi,noteChildProcessMs:()=>od,noteSelfStateBytesRead:()=>cn,overheadCounters:()=>un,overheadFamilyDisabled:()=>Wi,overheadHealth:()=>ft,overheadLedgerPath:()=>Ui,overheadMsOf:()=>sd,overheadTelemetryFields:()=>ks,readOverheadLedger:()=>on,readSelfStateFile:()=>Ss,readSelfStateFileSync:()=>Cw,recordOverheadSample:()=>an,resetOverheadCounters:()=>vw,resetOverheadLedger:()=>xw,startChildProcessTimer:()=>re});import{existsSync as bw,mkdirSync as ww,readFileSync as ed,renameSync as _w,writeFileSync as Rw}from"node:fs";import{readFile as kw}from"node:fs/promises";import{dirname as Sw,join as td}from"node:path";function sd(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,Hi(t)):0}function Gi(e,t=xe){let r=sd(e),n=[];return r>t.maxOverheadMs&&n.push("wall-clock-ceiling"),e.selfStateBytesRead>t.maxSelfStateBytes&&n.push("self-state-byte-ceiling"),e.selfStateBytesRead>t.netLossFloorBytes&&e.selfStateBytesRead>e.bytesSaved&&n.push("overhead-exceeds-savings"),{overhead_ms:r,breached:n.length>0,reasons:n}}function ks(e,t=xe){let r=Gi(e,t);return{wrapper_ms:Hi(e.wrapperMs),overhead_ms:r.overhead_ms,child_ms:Hi(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:r.breached,overhead_breach_reasons:r.reasons.join(",")}}function Ui(e){return td(U(e),rd)}function on(e){try{let t=ed(Ui(e),"utf8"),r=Aw(t);if(Iw(r))return r}catch{}return{version:1,families:{}}}function an(e,t,r=xe,n=Date.now()){let s=on(e),o=Gi(t,r),i=s.families[t.family]??Pw(t.family,n),a=Vi(i,n)?id(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(n).toISOString()};return o.breached?c>=r.consecutiveBreaches&&(u.disabled=!0,u.disabled_at=new Date(n).toISOString(),u.disabled_until=new Date(n+r.cooldownMs).toISOString(),u.disabled_reason=Tw(t.family,c,o,r)):(u.disabled=!1,u.disabled_at=null,u.disabled_until=null,u.disabled_reason=null),s.families[t.family]=u,ad(e,s),u}function Wi(e,t,r=Date.now()){let n=on(e).families[t];return!n?.disabled||Vi(n,r)?null:n}function xw(e,t){let r=on(e);return t?delete r.families[t]:r.families={},ad(e,r),r}function ft(e,t=xe,r=Date.now()){let n=Object.values(on(e).families).map(a=>Vi(a,r)?id(a):a).sort((a,c)=>a.family.localeCompare(c.family)),s=n.filter(a=>a.disabled),o=n.filter(a=>a.consecutive_breaches>0),i=s.length>0||o.length>0?"red":"green";return{schema_version:nd,verdict:i,summary:Ow(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:n}}function cn(e){Number.isFinite(e)&&e>0&&(Ji+=e)}function od(e){Number.isFinite(e)&&e>0&&(qi+=e)}function un(){return{selfStateBytesRead:Ji,childMs:qi}}function vw(){Ji=0,qi=0}function re(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,od(Number(process.hrtime.bigint()-e)/1e6))}}async function Ss(e){let t=await kw(e,"utf8");return cn(Buffer.byteLength(t)),t}function Cw(e){let t=ed(e,"utf8");return cn(Buffer.byteLength(t)),t}function Tw(e,t,r,n){let s=r.reasons.map(o=>o==="wall-clock-ceiling"?`added ${r.overhead_ms}ms > ${n.maxOverheadMs}ms`:o==="self-state-byte-ceiling"?`self-state read > ${n.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 Ow(e,t,r){if(e==="green")return"every wrapper family is inside its overhead ceiling";let n=[];return t.length>0&&n.push(`self-disabled: ${t.map(s=>`${s.family} (${s.reasons.join(",")||"ceiling"})`).join(", ")}`),r.length>0&&n.push(`breaching: ${r.map(s=>`${s.family} x${s.consecutive_breaches}`).join(", ")}`),n.join("; ")}function Vi(e,t){if(!e.disabled||!e.disabled_until)return!1;let r=Date.parse(e.disabled_until);return Number.isFinite(r)&&r<=t}function id(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function Pw(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 ad(e,t){try{let r=Ui(e);if(!bw(td(e,".red")))return;ww(Sw(r),{recursive:!0});let n=`${r}.${process.pid}.tmp`;Rw(n,`${C(t)}
35
35
  `,{encoding:"utf8",mode:384}),_w(n,r)}catch{}}function Aw(e){try{return JSON.parse(e)}catch{return D(e)}}function Iw(e){return!ji(e)||e.version!==1||!ji(e.families)?!1:Object.values(e.families).every(Lw)}function Lw(e){return ji(e)&&typeof e.family=="string"&&typeof e.consecutive_breaches=="number"&&typeof e.disabled=="boolean"}function ji(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Hi(e){return Number.isFinite(e)?Math.round(e*1e3)/1e3:0}var rd,nd,ys,bs,ws,_s,Rs,Ew,xe,Ji,qi,J=h(()=>{"use strict";fe();M();rd="overhead-budget.toon",nd="red.rsp.overhead.v1",ys=250,bs=1024*1024,ws=64*1024,_s=3,Rs=6*60*60*1e3,Ew=["git","gh","gh-api-json","vitest","cargo","cat","exec","proxy"],xe={maxOverheadMs:ys,maxSelfStateBytes:bs,netLossFloorBytes:ws,consecutiveBreaches:_s,cooldownMs:Rs};Ji=0,qi=0});import{createHash as $w}from"node:crypto";import{constants as Ki}from"node:fs";import{mkdir as Dw,open as Nw}from"node:fs/promises";import{createConnection as Mw}from"node:net";import{tmpdir as Bw}from"node:os";import{dirname as Fw,join as zi}from"node:path";async function cd(e,t,r="resident server"){let n=e.timeoutMs??1e3;return await new Promise((s,o)=>{let i=Mw(e.socketPath),a=!1,c="",u=setTimeout(()=>{l(()=>o(new Error(`${r} timed out`))),i.destroy()},n);function l(p){a||(a=!0,clearTimeout(u),p())}i.on("connect",()=>{i.write(`${JSON.stringify(t)}
36
36
  `)}),i.on("data",p=>{c+=p.toString("utf8");let d=c.indexOf(`
37
37
  `);if(d<0)return;let f=c.slice(0,d);l(()=>{try{s(JSON.parse(f))}catch(m){o(m)}}),i.end()}),i.on("error",p=>l(()=>o(p))),i.on("close",()=>{a||l(()=>o(new Error(`${r} closed without response`)))})})}async function ud(e){await Dw(Fw(e),{recursive:!0,mode:448});try{return await Nw(e,Ki.O_CREAT|Ki.O_EXCL|Ki.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}function Mt(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function Yi(e,t=1e3){if(!Mt(e))return;try{process.kill(e,"SIGTERM")}catch{return}let r=Date.now()+t;for(;Date.now()<r;){if(!Mt(e))return;await new Promise(n=>setTimeout(n,50))}try{process.kill(e,"SIGKILL")}catch{}}function ld(e){let t=e.env??process.env,r=$w("sha256").update(e.key).digest("hex").slice(0,20),n=t.XDG_RUNTIME_DIR;if(n){let o=zi(n,"red-skills",r);if(zi(o,e.socketFileName).length<jw)return o}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid");return zi(Bw(),`red-skills-${s}`,r)}var jw,Xi=h(()=>{jw=108});async function mr(e,t){return await cd(e,t,"resident rsp server")}var Zi=h(()=>{Xi()});var dd=h(()=>{"use strict";Zi()});import{existsSync as Hw,readdirSync as Gw}from"node:fs";import{homedir as Uw}from"node:os";import{basename as ea,dirname as Qi,join as me,resolve as xs}from"node:path";function Ww(e){return"command"in e}function vs(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??Hw,s=t.execPath??process.execPath,o=t.execArgv??process.execArgv,i=t.callerEntry===void 0?process.argv[1]:t.callerEntry,a=(u,l)=>({command:s,args:[...o,u],source:l});if(r.RSP_BIN)return{command:r.RSP_BIN,args:[],source:"env-rsp-bin"};if(i&&Vw(i))return a(xs(i),"caller-entry");let c=[];for(let[u,l]of zw(i,t.rootDir,r,t.listDir??Qw))if(c.push(u),n(u))return a(u,l);return{diagnostic:tt,searched:c,...i?{callerEntry:xs(i)}:{}}}function fd(e={},t={}){let r=vs(e,t);if(Ww(r))return r;throw new gr(r)}function Vw(e){let t=ea(e);return t===Bt||ta.test(t)||t==="rsp"||t==="rsp.mjs"||t==="rsp.js"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:Kw(xs(e))}function Kw(e){let t=Qi(e);for(let r=0;r<4;r++){if(ea(t)==="rsp")return!0;let n=Qi(t);if(n===t)return!1;t=n}return!1}function*zw(e,t,r,n){if(e){let o=Qi(xs(e));yield[me(o,Bt),"caller-sibling-bundle"];let i=Jw.exec(ea(e));i&&(yield[me(o,`rsp-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[me(o,"..","dist",Bt),"caller-sibling-bundle"]}for(let o of qw){let i=r[o];i&&(yield[me(i,"dist",Bt),"plugin-root-bundle"],yield[me(i,"..","..","dist",Bt),"plugin-root-bundle"])}t&&(yield[me(t,"dist",Bt),"repo-bundle"],yield[me(t,"apps","rsp","dist","cli.js"),"workspace-entry"],yield[me(t,"node_modules","@reddb-io","rsp","dist","cli.js"),"node-modules-entry"]);let s=Yw(r);yield[me(s,Bt),"bundle-cache"];for(let o of Xw(s,n))yield[me(s,o),"bundle-cache"]}function Yw(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||me(e.HOME||Uw(),".cache");return me(t,"red-skills","bundles")}function Xw(e,t){return t(e).filter(r=>ta.test(r)).sort((r,n)=>Zw(pd(n),pd(r)))}function pd(e){return ta.exec(e)?.[1]??""}function Zw(e,t){let r=o=>o.split(".").map(i=>Number.parseInt(i,10)),[n,s]=[r(e),r(t)];for(let o=0;o<Math.max(n.length,s.length);o++){let[i,a]=[n[o],s[o]];if(Number.isNaN(i)||i===void 0)return Number.isNaN(a)||a===void 0?e.localeCompare(t):-1;if(Number.isNaN(a)||a===void 0)return 1;if(i!==a)return i-a}return 0}function Qw(e){try{return Gw(e)}catch{return[]}}var tt,gr,Bt,Jw,ta,qw,ra=h(()=>{tt="rsp-resident-entry-unresolved";gr=class extends Error{code=tt;searched;callerEntry;constructor(t){super(`${tt}: no rsp entrypoint found for the resident auto-spawn${t.callerEntry?` (caller entry: ${t.callerEntry})`:""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reddb-io/red-skills",
3
- "version": "3.0.2",
3
+ "version": "3.0.4",
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",