@reddb-io/red-skills 2.87.4 → 2.87.5
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.
- package/dist/castle-mcp.bundle.min.mjs +352 -351
- package/dist/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +555 -553
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/rsp.bundle.min.mjs +1 -1
- package/package.json +1 -1
|
@@ -6578,7 +6578,7 @@ Usage:
|
|
|
6578
6578
|
${n} archive --candidate <json> [--root <dir>] [--archive-dir <rel>]
|
|
6579
6579
|
${n} restore <name> [--root <dir>] [--archive-dir <rel>]`}function Ux(n){return mVn(typeof n.root=="string"?n.root:process.cwd())}function hut(n){return typeof n["archive-dir"]=="string"?n["archive-dir"]:void 0}async function eK(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 \`${VEe}\``}:ju(r)?{ok:!0}:{ok:!1,message:`curate: skill telemetry is not enabled here \u2014 run \`${VEe}\``}:{ok:!1,message:`curate: memory is not initialized here \u2014 run \`${VEe}\``}}function bVn(){let n=GVn(uVn(import.meta.url));return n.includes("dist/curate-skill")||n.endsWith("dist/curate-skill")?put(n,"..","cli.js"):put(n,"..","cli.ts")}async function pVn(n,r){let i=["curate","skills","--json"];r!==void 0&&i.push("--stale-days",String(r));let d=bVn(),h=d.endsWith(".ts")?but(process.execPath,["--import","tsx",d,...i,"--root",n],{encoding:"utf8"}):but(process.execPath,[d,...i,"--root",n],{encoding:"utf8"}),y=h.status??1;if(y!==0)throw new Error(`memory curate skills exited ${y}`);return Gut(h.stdout??"")}function ZVn(n){return typeof n.flags["stale-days"]=="string"?Number(n.flags["stale-days"]):void 0}async function Wut(n,r){return(r.loadCuratorReport??pVn)(Ux(n.flags),ZVn(n))}async function hVn(n){let r=Ux(n.flags),i=await eK(r);return i.ok?(console.log("curate: skill telemetry is enabled \u2014 ready to curate"),0):(console.error(i.message),2)}async function WVn(n,r){let i=Ux(n.flags),d=await eK(i);if(!d.ok)return console.error(d.message),2;let u;try{u=await Wut(n,r)}catch(J){return console.error(`curate: ${J.message}`),1}let{candidates:h,byCategory:y,filtered:f}=NEe(u);return console.log(JSON.stringify({candidates:h,byCategory:y,filtered:f,totals:{totalSkills:u.totalSkills,curatableSkills:u.curatableSkills,readOnlySkills:u.readOnlySkills}},null,2)),0}async function NVn(n,r){let i=Ux(n.flags),d=await eK(i);if(!d.ok)return console.error(d.message),2;let u;try{u=await Wut(n,r)}catch(J){return console.error(`curate: ${J.message}`),1}let{byCategory:h}=NEe(u);if(YEe(h)===0)return console.error("curate: no candidates \u2014 no issue filed"),0;let y=typeof n.flags.label=="string"?n.flags.label:void 0,f=await uut({byCategory:h,totals:{totalSkills:u.totalSkills,curatableSkills:u.curatableSkills,readOnlySkills:u.readOnlySkills},generatedAt:u.generatedAt},{cwd:i,label:y});return console.log(`curate: filed background issue \u2014 ${f.output||f.title}`),0}async function YVn(n){let r=Ux(n.flags),i=await eK(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 u;try{u=JSON.parse(d)}catch(y){return console.error(`curate archive: invalid --candidate JSON: ${y.message}`),2}let h=await out(u,{rootDir:r,archiveDir:hut(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 VVn(n){let r=Ux(n.flags),i=await eK(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 u=await dut(d,{rootDir:r,archiveDir:hut(n.flags)});return console.log(`curate: restored "${u.name}" \u2192 ${u.restoredRoot} (${u.files.length} file(s) hash-verified)`),0}async function gEe(n,r={}){switch(n.command){case"check":return hVn(n);case"list":return WVn(n,r);case"background":return NVn(n,r);case"archive":return YVn(n);case"restore":return VVn(n);case void 0:case"--help":case"-h":return console.log(Zut(r.usageCommand)),0;default:return console.error(`unknown curate subcommand: ${n.command}
|
|
6580
6580
|
|
|
6581
|
-
${Zut(r.usageCommand)}`),2}}function yEe(n){let r={app:n,version:gVn(Bx("__RED_BUILD_VERSION__",()=>"2.87.
|
|
6581
|
+
${Zut(r.usageCommand)}`),2}}function yEe(n){let r={app:n,version:gVn(Bx("__RED_BUILD_VERSION__",()=>"2.87.5")??"0.0.0-dev"),gitSha:Bx("__RED_BUILD_GIT_SHA__",()=>"390cdd82ca6d02bf46e67ddbdc0f1280733d0a18")??"unknown",buildTime:Bx("__RED_BUILD_TIME__",()=>"2026-07-28T12:58:27-03:00")??"unknown",bundleAsset:Bx("__RED_BUNDLE_ASSET__",()=>"memory.bundle.min.mjs")??"unknown"},i=Bx("__REDDB_SDK_VERSION__",()=>"1.23.1"),d=Bx("__REDDB_BINARY_TAG__",()=>"v1.23.1");return i&&(r.reddbSdkVersion=i),d&&(r.reddbBinaryTag=d),r}function gVn(n){return n.startsWith("v")?n.slice(1):n}function REe(n){return`${n.app} ${n.version} ${n.gitSha}`}function Bx(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 Rut(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 vut(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 y=await G5(d,h,{limit:Ia(n.flags,"limit")});if(n.flags.json===!0){console.log(JSON.stringify(y,null,2));return}if(y.status==="unavailable"){let f=y.error?` \u2014 ${y.error}`:"";console.log(`memory: vector search unavailable${f}`);return}console.log(`memory: vector search ${y.hits.length}/${y.limit} hit(s) for "${h}"`);for(let f of y.hits){let J=f.source?` source=${f.source}`:"";console.log(` ${f.score.toFixed(3)} memory_nodes:${f.rid} (${f.node_type}) ${f.title}${J}`),f.excerpt&&console.log(` ${f.excerpt}`)}return}if(r==="status-viewer"){let h=Wr(n.flags),y=Vl(n.flags,"out")??Pa(h,".red/memory/vector-status-viewer.html"),f=BD(await d.vectorStatus());await hs(Ps(y),{recursive:!0}),await fi(y,f.html,"utf8"),console.log(`memory: vector status viewer written ${y}`),console.log(` status: ${f.report.overall}`),console.log(` contract: ${f.contract.consumes}`);return}let u=r==="maintain"?await d.maintainVectorProjection({strict:n.flags.strict===!0}):await d.vectorStatus();if(n.flags.json===!0){console.log(JSON.stringify(u,null,2));return}console.log(`memory: vector projection ${u.overall} \u2014 ${u.ready}/${u.total} ready`),u.stale>0&&console.log(` stale: ${u.stale}`),u.unavailable>0&&console.log(` unavailable: ${u.unavailable}`),u.failed>0&&console.log(` failed: ${u.failed}`);for(let h of u.nodes.filter(y=>y.status!=="ready")){let y=h.error?` \u2014 ${h.error}`:"";console.log(` ${h.rid} (${h.node_type}) ${h.label}: ${h.status}${y}`)}for(let h of u.docs.filter(y=>y.status!=="ready")){let y=h.error?` \u2014 ${h.error}`:"";console.log(` doc:${h.rid} ${h.path}: ${h.status}${y}`)}}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 Fut(n){let{store:r}=await gr(n);try{let i=Ia(n.flags,"stale-days")??90,d=await Gy(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 y of d.stale)console.log(` ${y.rid} (${y.node_type}) ${y.title} \u2014 ${y.ageDays}d idle`);if(n.flags.prune!==!0){console.log(`
|
|
6582
6582
|
Re-run with --prune to delete these (asks for confirmation first).`);return}let u=n.flags.yes===!0;if(!u){if(!process.stdin.isTTY){console.log(`
|
|
6583
6583
|
refusing to prune without confirmation \u2014 re-run with --yes in a non-interactive shell`);return}let y=Qie({input:process.stdin,output:process.stdout}),f=(await y.question(`
|
|
6584
6584
|
Delete ${d.stale.length} stale node(s)? Type "yes" to confirm: `)).trim();y.close(),u=f==="yes"}if(!u){console.log("memory: aborted \u2014 nothing deleted");return}let{pruned:h}=await UFe(r,d.stale);console.log(`memory: pruned ${h} stale node(s)`)}finally{await r.close()}}async function Xut(n){let r=Wr(n.flags),i=n.positional[0]??".red/memory/export",d=km(i)?i:xa(r,i),u=n.flags.communities===!0,h=n.flags.interop===!0,{store:y}=await gr(n);try{let f=await tQ(y,d,{communities:u,interop:h});console.log(`memory: exported ${f.nodes} node(s), ${f.edges} edge(s)`),u&&console.log(" communities: coloured via native Louvain"),console.log(` graph: ${f.htmlPath}`),console.log(` json: ${f.jsonPath}`),console.log(` audit: ${f.auditPath}`),f.interop&&(console.log(` nodes: ${f.interop.nodesJsonlPath}`),console.log(` edges: ${f.interop.edgesJsonlPath}`),console.log(` graphml:${f.interop.graphmlPath}`),console.log(` cypher: ${f.interop.cypherPath}`))}finally{await y.close()}}async function fut(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:u}=await gr(n);try{let h=await jv("memory.global-search",{store:d,providerConfig:u.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 y of h.evidence)console.log(` ${y.community_id}: score ${y.score}, ${y.size} node(s)`),console.log(` matched: ${y.matched_terms.join(", ")}`),console.log(` top label: ${y.top_label}`),console.log(` top type: ${y.top_node_type}`),y.narrative_summary&&console.log(` summary: ${y.narrative_summary}`)}finally{await d.close()}}async function vVn(n,r){let i=Vl(n.flags,"from");if(i){let u=km(i)?i:xa(r,i),h=JSON.parse(await Sb(u,"utf8")),y=h.contract??h,f=EFe(y);if(!f.valid)throw new Error(`architecture-overview: ${u} is not a valid graph contract \u2014 ${f.errors.join("; ")}`);return y}let{store:d}=await gr(n);try{let[u,h,y]=await Promise.all([d.listNodes(),d.listEdges(),d.communities()]);return Ff({nodes:u,edges:h.map(zf),communities:y})}finally{await d.close()}}async function wut(n){let r=Wr(n.flags),i=await vVn(n,r),d=ufe(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 u=Vl(n.flags,"out")??".red/memory/architecture-overview.md",h=km(u)?u:xa(r,u);await hs(Ps(h),{recursive:!0}),await fi(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 h5(){if(process.stdin.isTTY)return"";let n=[];for await(let r of process.stdin)n.push(r);return Buffer.concat(n).toString("utf8")}var FVn=["SessionStart","PostToolUse","Stop","PreCompact"];async function Hut(n){let r=n.positional[0],i=n.flags.runner==="codex"?"codex":"claude";if(!r||!FVn.includes(r)){process.stdout.write("{}");return}try{let d=await h5(),u=d.trim()?JSON.parse(d):{},h=Wr(n.flags)!==process.cwd()?Wr(n.flags):typeof u.cwd=="string"?u.cwd:process.cwd(),y=await Wfe(i,r,u);try{r==="SessionStart"?await Ny(h,y.sessionId?{id:y.sessionId}:{}):await eN(h)||(y.sessionId?await Ny(h,{id:y.sessionId}):await Awe(h))}catch{}let f=await Owe(y,h);process.stdout.write(Nfe(i,r,f))}catch{process.stdout.write("{}")}}var XVn=["post-commit","post-checkout"];async function Qut(n){switch(n.positional[0]){case"refresh":return fVn(n);case"install-hooks":return HVn(n);case"uninstall-hooks":return QVn(n);default:throw new Error("vcs needs a subcommand \u2014 memory vcs refresh|install-hooks|uninstall-hooks")}}async function fVn(n){let r=Wr(n.flags),i=Vl(n.flags,"event"),d=n.flags.json===!0;if(!i||!XVn.includes(i)){d&&console.log(JSON.stringify({noop:!0,reason:"unknown vcs event"}));return}try{let u=await Mwe(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(u,null,2));return}if(u.noop){console.log(`memory: ${i} \u2014 no-op (${u.reason})`);return}let h=u.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`),u.exported&&console.log(` exported ${u.exported.nodes} node(s) \u2192 ${u.exported.jsonPath}`)}catch(u){let h=`error: ${u instanceof Error?u.message:String(u)}`;console.log(d?JSON.stringify({noop:!0,reason:h}):`memory: ${i} \u2014 no-op (${h})`)}}async function Eut(n){try{let{stdout:r}=await yy("git",["-C",n,"rev-parse","--git-path","hooks"],{encoding:"utf8"}),i=r.trim();return i?km(i)?i:xa(n,i):xa(n,".git/hooks")}catch{return xa(n,".git/hooks")}}function wVn(){let n=process.env.CLAUDE_PLUGIN_ROOT??process.env.CODEX_PLUGIN_ROOT,r=gut(new URL("../cli.ts",import.meta.url)),i=[n?Pa(n,"scripts","bootstrap.mjs"):void 0,Pa(Ps(Ps(r)),"scripts","bootstrap.mjs")];for(let d of i)if(d&&tK(d))return d}async function HVn(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 Eut(r),u=await Uwe({hooksDir:d,bootstrapPath:wVn(),force:n.flags.force===!0});if(n.flags.json===!0){console.log(JSON.stringify({hooksDir:d,...u},null,2));return}u.installed.length>0&&console.log(`memory: installed ${u.installed.join(", ")} into ${d}`);for(let h of u.backedUp)console.log(` backed up existing hook \u2192 ${h}`);for(let h of u.skipped)console.log(` skipped ${h.hook}: ${h.reason}`)}async function QVn(n){let r=Wr(n.flags),i=await Eut(r),d=await Bwe(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 u of d.restored)console.log(` restored backed-up hook \u2192 ${u}`);for(let u of d.skipped)console.log(` ${u.reason}`)}async function _ut(n){let r=n.positional[0];if(r==="learn")return EVn(n);if(r!=="record")throw new Error("unknown worker command \u2014 expected: memory worker record|learn");let i=await h5();if(!i.trim())throw new Error("worker record needs a JSON payload on stdin");let d=JSON.parse(i),{store:u}=await gr(n);try{let h=await uEe(u,d);console.log(`memory: recorded worker ${d.repository}#${d.issueNumber}/${d.attemptNumber} (rid ${h.workerRid})`)}finally{await u.close()}}async function EVn(n){let r=n.positional[1];if(r==="apply")return _Vn(n);if(r!=null)throw new Error("memory worker learn supports: apply");let i=Wr(n.flags),d=n.flags.json===!0,u=n.flags["write-proposal"]===!0,{store:h}=await gr(n);try{let y=await bEe(h),f=u?await pEe(i,y):null,J=y.proposals.length===0?"no-candidates":u?"proposal-written":"proposal-ready";if(d){console.log(JSON.stringify({state:J,proposalFile:f,...y},null,2));return}console.log(`memory: worker learning - ${J}`);for(let S of y.proposals)console.log(` [${S.kind}] ${S.title}`),console.log(` evidence: ${S.evidenceSummary}`);for(let S of y.rejected)console.log(` ${S.action}: ${S.kind} - ${S.reason}`);f&&console.log(` proposal: ${f}`),console.log(`
|
package/dist/rsp.bundle.min.mjs
CHANGED
|
@@ -168,7 +168,7 @@ const timer = setInterval(() => {
|
|
|
168
168
|
}, 500);
|
|
169
169
|
`,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function Eo(){for(let e of x0())try{process.kill(e,"SIGTERM")}catch{}}function x0(){if(process.platform==="win32")return[];let e="";try{e=s0("ps",["-eo","pid=,ppid=,args="],{encoding:"utf8"})}catch{return[]}let t=[];for(let r of e.split(/\n/)){let n=/^\s*(\d+)\s+(\d+)\s+([\s\S]*)$/.exec(r);if(!n)continue;let s=Number(n[1]),o=Number(n[2]),i=n[3]??"";o===process.pid&&/(^|\s)\S*red(?:\.exe)?\s+rpc\s+--stdio(\s|$)/.test(i)&&t.push(s)}return t}async function v0(e){if(e.collection!==me)return e;let t=await Eg(e.raw_text,vg(e.raw_bytes)),r=await Eg(e.emitted_text,vg(e.emitted_bytes)),{raw_text:n,emitted_text:s,...o}=e;return{...o,tokens_raw:t.tokens,tokens_emitted:r.tokens,estimated:t.estimated||r.estimated}}async function Eg(e,t){if(typeof e=="string"){let r=Buffer.byteLength(e,"utf8");if(r<=m0)try{return await Ig((async()=>({tokens:(await C0())("cl100k_base").encode(e).length,estimated:!1}))(),f0,"telemetry tokenization timed out")}catch{return{tokens:Math.ceil(r/4),estimated:!0}}return{tokens:Math.ceil(r/4),estimated:!0}}return t!=null?{tokens:Math.ceil(t/4),estimated:!0}:{tokens:0,estimated:!1}}async function C0(){return xg??=import(l0(T0()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await xg}function T0(){let e=jc(u0(import.meta.url)),r=[So(e,"..","node_modules","js-tiktoken","dist","index.js"),So(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(n=>i0(n));if(!r)throw new Error("js-tiktoken dependency not found");return r}function vg(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function Y(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function Bc(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function Ig(e,t,r){let n;try{return await Promise.race([e,new Promise((s,o)=>{n=setTimeout(()=>o(new Error(r)),t),n.unref()})])}finally{n&&clearTimeout(n)}}function P0(e){try{return JSON.parse(e)}catch{return e}}function O0(e){return Cg(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>Cg(t)&&(t.collection===se||t.collection===q||t.collection===me||t.collection===Be)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function Cg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function A0(e,t){let r="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",n=>{r+=n;let s=r.indexOf(`
|
|
170
170
|
`);if(s<0)return;let o=r.slice(0,s);e.pause(),(async()=>{let i;try{i=JSON.parse(o),await t(i)}catch(a){let u={id:i?.id??Nr(),ok:!1,error:a instanceof Error?a.message:String(a)};Lg(e,u)}finally{e.end()}})()})}function Lg(e,t){if(!(e.destroyed||!e.writable))try{e.write(`${JSON.stringify(t)}
|
|
171
|
-
`)}catch{}}async function I0(e,t,r,n){if(t.op==="handover")return{handover:!0,version:n,clientVersion:t.clientVersion};if(e.kind==="opening")throw new Error("rsp resident store is not ready");if(e.kind==="failed")throw new Error(`rsp resident store failed to open: ${e.error.message}`);let s=e.store;if(t.op==="ping")return{pong:!0,version:n};if(t.op==="stats")return await s.stats();if(t.op==="accounting-stats"){let o=s.redDb();if(!o)throw new Error("rsp accounting stats require the shared RedDB store");return await Ki(o,t.byteBudget)}if(t.op==="telemetry-stats"){let o=s.redDb();if(!o)throw new Error("rsp telemetry stats require the shared RedDB store");return await Ss(o,t.sinceDays)}if(t.op==="telemetry-gains"){let o=s.redDb();if(!o)throw new Error("rsp telemetry gains require the shared RedDB store");return await zi(o,t.sinceDays)}if(t.op==="mint")return{handle:await s.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return D0(await s.get(t.handle));if(t.op==="memory")return await s.memory(t.action,t.payload);if(t.op==="brain")return await L0(s,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}async function L0(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await hg(s,t).request(r,n)}function D0(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var m0,f0,Og,p0,g0,h0,Fc,Sg,xg,Ng=y(()=>{"use strict";ke();ss();$e();Ze();kg();Te();Ce();m0=256*1024,f0=500,Og=2e3,p0=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),g0="rsp-status-summary.json",h0=[se,q,me,Be,dn],Fc=class{constructor(t,r){this.store=t;this.opts=r;this.pendingHeals=[...r.bootHeals??[]]}running;pending=!1;pendingHeals;async drainAndSweep(){if(this.running){this.pending=!0,await this.running;return}this.running=(async()=>{do this.pending=!1,await this.drainAndSweepOnce();while(this.pending)})().finally(()=>{this.running=void 0}),await this.running}async drainAndSweepOnce(){let t=this.store.redDb();if(!t)return;let r=await b0(t);r.unshift(...this.pendingHeals),this.pendingHeals=[];let n=await this.readIndex(t),s=n.records.length,o=[...n.records];for(let a of r)o.push(await this.writeDrainDegradation(t,{reason:"telemetry collection model mismatch",command:"rsp resident telemetry drain",source_collection:a.collection,error:`expected kv, got ${a.previousModel}`,bytes:0}));await Vi(this.opts.rootDir,async a=>{let c=mr(a);if(!c){let u=await this.writeDrainDegradation(t,{reason:"telemetry parse failed",command:"unknown",bytes:Buffer.byteLength(a,"utf8")});return o.push(u),!0}try{let u=await this.writeEvent(t,c);o.push(u);let l=await this.writeAccountingMirror(t,c);return l&&o.push(l),!0}catch(u){let l=await this.writeDrainDegradation(t,{reason:"telemetry event dropped",command:Y(c.command)||"unknown",source_id:Y(c.id),source_collection:Y(c.collection),error:u instanceof Error?u.message:String(u),bytes:Buffer.byteLength(a,"utf8")});return o.push(l),!0}});let i=o.length>s;await this.prune(t,{version:1,records:o},i),await y0(t,this.opts.rootDir)}async writeEvent(t,r){let n=new Date,s=typeof r.created_at=="string"?r.created_at:n.toISOString(),o=new Date(Date.parse(s)+this.opts.ttlDays*24*60*60*1e3).toISOString(),i=typeof r.id=="string"&&r.id.trim()!==""?r.id:Nr(),a={...await v0(r),id:i,created_at:s,expires_at:o};return await t.kv(r.collection).put(i,a),{collection:r.collection,key:i,created_at:s,expires_at:o,bytes:r.collection===se?0:typeof r.bytes=="number"&&Number.isFinite(r.bytes)?Math.max(0,r.bytes):Buffer.byteLength(JSON.stringify(a),"utf8")}}async writeAccountingMirror(t,r){return r.collection===se||r.accounting_recorded===!0?null:r.collection===me?await this.writeEvent(t,{collection:se,id:`mirror:${Y(r.id)||Nr()}`,created_at:Y(r.created_at)||Y(r.ts)||new Date().toISOString(),event_type:"invocation",command:Y(r.command)||"unknown",command_class:Bc(Y(r.command)||"unknown"),wrapper:r.wrapper,loss:r.loss,elided:r.elided,raw_bytes:r.raw_bytes,emitted_bytes:r.emitted_bytes,tokens_raw:r.tokens_raw,tokens_emitted:r.tokens_emitted,estimated:r.estimated,wrapper_ms:r.wrapper_ms,store_open_count:r.store_open_count,store_elapsed_ms:r.store_elapsed_ms}):r.collection===Be?await this.writeEvent(t,{collection:se,id:`mirror:${Y(r.id)||Nr()}`,created_at:Y(r.created_at)||Y(r.ts)||new Date().toISOString(),event_type:"invocation",command:Y(r.command)||"unknown",command_class:Bc(Y(r.command)||"unknown"),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:Y(r.reason)||"unknown",wrapper_family:Y(r.wrapper_family),wrapper_exit_code:r.wrapper_exit_code,stderr_head:Y(r.stderr_head)}):null}async writeDrainDegradation(t,r){let n=await this.writeEvent(t,{collection:Be,id:Nr(),created_at:new Date().toISOString(),reason:r.reason,command:r.command,bytes:r.bytes,source_id:r.source_id,source_collection:r.source_collection,error:r.error});return await this.writeEvent(t,{collection:se,id:`mirror:${Nr()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:Bc(r.command),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:r.reason,source_id:r.source_id,source_collection:r.source_collection,error:r.error}),n}async readIndex(t){let r=await t.kv(dn).get("index:v1"),n=typeof r=="string"?P0(r):r;return O0(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(dn).put("index:v1",r)}async prune(t,r,n=!1){let s=Date.now(),o=[];for(let a of r.records)Date.parse(a.expires_at)<=s?await t.kv(a.collection).delete(a.key):o.push(a);let i=o.reduce((a,c)=>a+c.bytes,0);for(o.sort((a,c)=>a.created_at.localeCompare(c.created_at));i>this.opts.byteBudget&&o.length>0;){let a=o.shift();i-=a.bytes,await t.kv(a.collection).delete(a.key)}(n||o.length<r.records.length)&&await this.writeIndex(t,{version:1,records:o})}};Sg=!1});Ne();function _e(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}function W(e,t){let r=_e(e,t);if(r==null)return;let n=Number(r);return Number.isFinite(n)&&n>0?n:void 0}function du(e){return e[0]==="--help"||e[0]==="-h"||e.includes("--help")||e.includes("-h")}function mu(e){let t={level:"lossless",positional:[]},r=[];for(let n=0;n<e.length;n++){let s=e[n];if(s==="--store-uri")t.storeUri=e[++n];else if(s==="--brief")t.level="brief";else if(s==="--terse")t.level="terse";else if(s==="--query")t.query=e[++n];else if(s.startsWith("--query="))t.query=s.slice(8);else{if(r.length===0&&s.startsWith("--"))throw new Wo(s);r.push(s)}}return t.query&&r[0]!=="show"&&!r.some(n=>n==="--query"||n.startsWith("--query="))&&r.push("--query",t.query),t.command=r[0],t.handle=r[1],t.positional=r,t}var Wo=class extends Error{constructor(r){super(`unknown flag: ${r}`);this.flag=r}render(){return Jn("rsp",this.flag,["--store-uri","--brief","--terse","--query"],"rsp --help")}};function Zt(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}function fu(e){let t=e[1];if(!t)return null;let r={};for(let n=2;n<e.length;n++){let s=e[n];if(s!=="-f"&&s!=="-F")continue;let o=e[++n]??"",i=o.indexOf("=");i<=0||(r[o.slice(0,i)]=o.slice(i+1))}return{path:t,params:r}}function qn(e,t){let r=_e(e,"--since")??e.find(o=>o.startsWith("--since="))?.slice(8);if(!r)return t;let n=/^(\d+)(d)?$/.exec(r);if(!n)return t;let s=Number(n[1]);return Number.isFinite(s)&&s>0?s:t}function pu(e){return e.includes("--full")}$e();import{existsSync as N0}from"node:fs";import{fileURLToPath as $0}from"node:url";function Eu(e){let t={app:e,version:Ch(er("__RED_BUILD_VERSION__",()=>"2.87.
|
|
171
|
+
`)}catch{}}async function I0(e,t,r,n){if(t.op==="handover")return{handover:!0,version:n,clientVersion:t.clientVersion};if(e.kind==="opening")throw new Error("rsp resident store is not ready");if(e.kind==="failed")throw new Error(`rsp resident store failed to open: ${e.error.message}`);let s=e.store;if(t.op==="ping")return{pong:!0,version:n};if(t.op==="stats")return await s.stats();if(t.op==="accounting-stats"){let o=s.redDb();if(!o)throw new Error("rsp accounting stats require the shared RedDB store");return await Ki(o,t.byteBudget)}if(t.op==="telemetry-stats"){let o=s.redDb();if(!o)throw new Error("rsp telemetry stats require the shared RedDB store");return await Ss(o,t.sinceDays)}if(t.op==="telemetry-gains"){let o=s.redDb();if(!o)throw new Error("rsp telemetry gains require the shared RedDB store");return await zi(o,t.sinceDays)}if(t.op==="mint")return{handle:await s.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return D0(await s.get(t.handle));if(t.op==="memory")return await s.memory(t.action,t.payload);if(t.op==="brain")return await L0(s,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}async function L0(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await hg(s,t).request(r,n)}function D0(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var m0,f0,Og,p0,g0,h0,Fc,Sg,xg,Ng=y(()=>{"use strict";ke();ss();$e();Ze();kg();Te();Ce();m0=256*1024,f0=500,Og=2e3,p0=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),g0="rsp-status-summary.json",h0=[se,q,me,Be,dn],Fc=class{constructor(t,r){this.store=t;this.opts=r;this.pendingHeals=[...r.bootHeals??[]]}running;pending=!1;pendingHeals;async drainAndSweep(){if(this.running){this.pending=!0,await this.running;return}this.running=(async()=>{do this.pending=!1,await this.drainAndSweepOnce();while(this.pending)})().finally(()=>{this.running=void 0}),await this.running}async drainAndSweepOnce(){let t=this.store.redDb();if(!t)return;let r=await b0(t);r.unshift(...this.pendingHeals),this.pendingHeals=[];let n=await this.readIndex(t),s=n.records.length,o=[...n.records];for(let a of r)o.push(await this.writeDrainDegradation(t,{reason:"telemetry collection model mismatch",command:"rsp resident telemetry drain",source_collection:a.collection,error:`expected kv, got ${a.previousModel}`,bytes:0}));await Vi(this.opts.rootDir,async a=>{let c=mr(a);if(!c){let u=await this.writeDrainDegradation(t,{reason:"telemetry parse failed",command:"unknown",bytes:Buffer.byteLength(a,"utf8")});return o.push(u),!0}try{let u=await this.writeEvent(t,c);o.push(u);let l=await this.writeAccountingMirror(t,c);return l&&o.push(l),!0}catch(u){let l=await this.writeDrainDegradation(t,{reason:"telemetry event dropped",command:Y(c.command)||"unknown",source_id:Y(c.id),source_collection:Y(c.collection),error:u instanceof Error?u.message:String(u),bytes:Buffer.byteLength(a,"utf8")});return o.push(l),!0}});let i=o.length>s;await this.prune(t,{version:1,records:o},i),await y0(t,this.opts.rootDir)}async writeEvent(t,r){let n=new Date,s=typeof r.created_at=="string"?r.created_at:n.toISOString(),o=new Date(Date.parse(s)+this.opts.ttlDays*24*60*60*1e3).toISOString(),i=typeof r.id=="string"&&r.id.trim()!==""?r.id:Nr(),a={...await v0(r),id:i,created_at:s,expires_at:o};return await t.kv(r.collection).put(i,a),{collection:r.collection,key:i,created_at:s,expires_at:o,bytes:r.collection===se?0:typeof r.bytes=="number"&&Number.isFinite(r.bytes)?Math.max(0,r.bytes):Buffer.byteLength(JSON.stringify(a),"utf8")}}async writeAccountingMirror(t,r){return r.collection===se||r.accounting_recorded===!0?null:r.collection===me?await this.writeEvent(t,{collection:se,id:`mirror:${Y(r.id)||Nr()}`,created_at:Y(r.created_at)||Y(r.ts)||new Date().toISOString(),event_type:"invocation",command:Y(r.command)||"unknown",command_class:Bc(Y(r.command)||"unknown"),wrapper:r.wrapper,loss:r.loss,elided:r.elided,raw_bytes:r.raw_bytes,emitted_bytes:r.emitted_bytes,tokens_raw:r.tokens_raw,tokens_emitted:r.tokens_emitted,estimated:r.estimated,wrapper_ms:r.wrapper_ms,store_open_count:r.store_open_count,store_elapsed_ms:r.store_elapsed_ms}):r.collection===Be?await this.writeEvent(t,{collection:se,id:`mirror:${Y(r.id)||Nr()}`,created_at:Y(r.created_at)||Y(r.ts)||new Date().toISOString(),event_type:"invocation",command:Y(r.command)||"unknown",command_class:Bc(Y(r.command)||"unknown"),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:Y(r.reason)||"unknown",wrapper_family:Y(r.wrapper_family),wrapper_exit_code:r.wrapper_exit_code,stderr_head:Y(r.stderr_head)}):null}async writeDrainDegradation(t,r){let n=await this.writeEvent(t,{collection:Be,id:Nr(),created_at:new Date().toISOString(),reason:r.reason,command:r.command,bytes:r.bytes,source_id:r.source_id,source_collection:r.source_collection,error:r.error});return await this.writeEvent(t,{collection:se,id:`mirror:${Nr()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:Bc(r.command),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:r.reason,source_id:r.source_id,source_collection:r.source_collection,error:r.error}),n}async readIndex(t){let r=await t.kv(dn).get("index:v1"),n=typeof r=="string"?P0(r):r;return O0(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(dn).put("index:v1",r)}async prune(t,r,n=!1){let s=Date.now(),o=[];for(let a of r.records)Date.parse(a.expires_at)<=s?await t.kv(a.collection).delete(a.key):o.push(a);let i=o.reduce((a,c)=>a+c.bytes,0);for(o.sort((a,c)=>a.created_at.localeCompare(c.created_at));i>this.opts.byteBudget&&o.length>0;){let a=o.shift();i-=a.bytes,await t.kv(a.collection).delete(a.key)}(n||o.length<r.records.length)&&await this.writeIndex(t,{version:1,records:o})}};Sg=!1});Ne();function _e(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}function W(e,t){let r=_e(e,t);if(r==null)return;let n=Number(r);return Number.isFinite(n)&&n>0?n:void 0}function du(e){return e[0]==="--help"||e[0]==="-h"||e.includes("--help")||e.includes("-h")}function mu(e){let t={level:"lossless",positional:[]},r=[];for(let n=0;n<e.length;n++){let s=e[n];if(s==="--store-uri")t.storeUri=e[++n];else if(s==="--brief")t.level="brief";else if(s==="--terse")t.level="terse";else if(s==="--query")t.query=e[++n];else if(s.startsWith("--query="))t.query=s.slice(8);else{if(r.length===0&&s.startsWith("--"))throw new Wo(s);r.push(s)}}return t.query&&r[0]!=="show"&&!r.some(n=>n==="--query"||n.startsWith("--query="))&&r.push("--query",t.query),t.command=r[0],t.handle=r[1],t.positional=r,t}var Wo=class extends Error{constructor(r){super(`unknown flag: ${r}`);this.flag=r}render(){return Jn("rsp",this.flag,["--store-uri","--brief","--terse","--query"],"rsp --help")}};function Zt(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}function fu(e){let t=e[1];if(!t)return null;let r={};for(let n=2;n<e.length;n++){let s=e[n];if(s!=="-f"&&s!=="-F")continue;let o=e[++n]??"",i=o.indexOf("=");i<=0||(r[o.slice(0,i)]=o.slice(i+1))}return{path:t,params:r}}function qn(e,t){let r=_e(e,"--since")??e.find(o=>o.startsWith("--since="))?.slice(8);if(!r)return t;let n=/^(\d+)(d)?$/.exec(r);if(!n)return t;let s=Number(n[1]);return Number.isFinite(s)&&s>0?s:t}function pu(e){return e.includes("--full")}$e();import{existsSync as N0}from"node:fs";import{fileURLToPath as $0}from"node:url";function Eu(e){let t={app:e,version:Ch(er("__RED_BUILD_VERSION__",()=>"2.87.5")??"0.0.0-dev"),gitSha:er("__RED_BUILD_GIT_SHA__",()=>"390cdd82ca6d02bf46e67ddbdc0f1280733d0a18")??"unknown",buildTime:er("__RED_BUILD_TIME__",()=>"2026-07-28T12:58:27-03:00")??"unknown",bundleAsset:er("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},r=er("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=er("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function Ch(e){return e.startsWith("v")?e.slice(1):e}function er(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}Ne();$e();Ur();import{existsSync as Vk}from"node:fs";import{fileURLToPath as Kk}from"node:url";mi();$e();gi();import{existsSync as bw}from"node:fs";import{fileURLToPath as ww}from"node:url";async function hr(e,t){let r={stats:_w(e.telemetryByteBudget),telemetry:Qi(t)};if(!e.storeUri.startsWith("file://"))return r;let n=ww(e.storeUri);if(!bw(n))return r;if(!n.endsWith("red-skills.rdb")){let{RspElisionStore:c}=await Promise.resolve().then(()=>(Ze(),ur)),u=await c.open({uri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget});try{return{stats:await u.stats(),telemetry:Qi(t)}}finally{await u.close()}}let{ensureReddbBinaryFromWarmCache:s}=await Promise.resolve().then(()=>(Ze(),ur));await s();let{readAccountingLaneStats:o,readTelemetryStats:i}=await Promise.resolve().then(()=>(Te(),pn)),a=await nr(e.storeUri);try{return{stats:await o(a,e.telemetryByteBudget),telemetry:await i(a,t)}}finally{await a.close()}}function Zi(e,t=Qi(30),r=!1){return`${H(ea(e,t,r))}
|
|
172
172
|
`}function ea(e,t,r){let n=t.savings.top_commands.slice(0,r?10:3),s=r?t.savings.daily_tokens_saved:t.savings.daily_tokens_saved.slice(-7),o=e.storage_classes??Es(),i=t.health.recent_failures.slice(0,r?20:5),a=t.decisions.top_pass_reasons.slice(0,r?10:3);return{records:e.records,bytes:e.bytes,oldest:e.oldest,budget:e.budget,storage_classes:o,savings:{window_days:t.window_days,empty:t.empty,...t.savings,tokens_saved_display:kw(t.savings),dollars_saved_estimate_usd_display:Rw(t.savings),daily_tokens_saved:s,daily_tokens_saved_elided:r?0:Math.max(0,t.savings.daily_tokens_saved.length-s.length),top_commands:n,top_commands_elided:r?0:Math.max(0,t.savings.top_commands.length-n.length)},health:{...t.health,degradation_rate_display:Xi(t.health.degradation_rate),show_hit_rate_display:Xi(t.health.show_hit_rate),by_reason:t.health.by_reason,by_family:t.health.by_family,recent_failures:i,recent_failures_elided:r?0:Math.max(0,t.health.recent_failures.length-i.length),most_recent_degradation_at:t.health.most_recent?.timestamp??null,most_recent_degradation_reason:t.health.most_recent?.reason??null},decisions:{...t.decisions,contribution_rate_display:Xi(t.decisions.contribution_rate),top_pass_reasons:a,top_pass_reasons_elided:r?0:Math.max(0,t.decisions.top_pass_reasons.length-a.length),by_command_family:r?t.decisions.by_command_family:t.decisions.by_command_family.slice(0,5),by_command_family_elided:r?0:Math.max(0,t.decisions.by_command_family.length-5)},latency:{...t.latency,wrapper_ms_p50_display:Yi(t.latency.wrapper_ms_p50),wrapper_ms_p95_display:Yi(t.latency.wrapper_ms_p95),store_elapsed_ms_avg_display:Yi(t.latency.store_elapsed_ms_avg)}}}function td(e){return`${H(e)}
|
|
173
173
|
`}function Qi(e){return{window_days:e,empty:!0,savings:{invocations:0,elided:0,raw_bytes:0,emitted_bytes:0,bytes_saved:0,tokens_saved:0,tokens_saved_estimated:!1,token_estimate_range_pct:null,tokens_saved_low:null,tokens_saved_high:null,dollars_saved_estimate_usd:0,dollars_saved_low_usd:null,dollars_saved_high_usd:null,pricing_model_family:"gpt-5",pricing_input_usd_per_million_tokens:1.25,pricing_note:"estimate derived from byte-based token estimate when token counts are estimated",daily_tokens_saved:[],top_commands:[]},health:{degradations:0,degradation_rate:0,show_total:0,show_hits:0,show_misses:0,show_hit_rate:0,by_reason:[],by_family:[],recent_failures:[],most_recent:null},latency:{wrapper_ms_p50:null,wrapper_ms_p95:null,store_open_count_sum:0,store_elapsed_ms_sum:0,store_elapsed_ms_avg:null},decisions:{seen:0,contributed:0,passed:0,failed_open:0,quota_free_saved_units:0,contribution_rate:0,top_pass_reasons:[],by_command_family:[]}}}function _w(e){return{records:0,bytes:0,oldest:null,budget:e,storage_classes:Es()}}function Es(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}function ta(e){let t=e.legacyStoreMigrated?"migrated":e.storeCreated?"created":"existing";return[`config: ${e.configChanged?"updated":"unchanged"}`,`store: ${t}`,""].join(`
|
|
174
174
|
`)}function kw(e){return e.tokens_saved_estimated?`${e.tokens_saved_low}-${e.tokens_saved_high} (estimate_midpoint: ${e.tokens_saved}, range_pct: ${e.token_estimate_range_pct})`:String(e.tokens_saved)}function Rw(e){return e.dollars_saved_low_usd==null||e.dollars_saved_high_usd==null?Xr(e.dollars_saved_estimate_usd):`${Xr(e.dollars_saved_low_usd)}-${Xr(e.dollars_saved_high_usd)} (estimate_midpoint: ${Xr(e.dollars_saved_estimate_usd)})`}function Yi(e){return e==null?"none":String(e)}function Xi(e){return e.toFixed(4).replace(/0+$/,"").replace(/\.$/,".0")}async function Om(e){let{stats:t,telemetry:r}=await hr(e,30),[n,s]=await Promise.all([zk(e),Promise.resolve().then(()=>(Ia(),Aa)).then(o=>o.listWaits(process.cwd()),()=>[])]);return{stats:t,telemetry:r,recoveryHandles:n,waits:s}}function Am(e){let t=ea(e.stats,e.telemetry,!1),r=Vo({executable:{name:"rsp",command:"rsp"},recovery:{pending:e.recoveryHandles.length,handles:e.recoveryHandles},waits:{active:e.waits.length,entries:e.waits},store:{records:e.stats.records,bytes:e.stats.bytes,oldest:e.stats.oldest,budget:e.stats.budget,storage_classes:e.stats.storage_classes??Es()},savings:t.savings,health:t.health,decisions:t.decisions,latency:t.latency},Yk(e));return`${H(r)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reddb-io/red-skills",
|
|
3
|
-
"version": "2.87.
|
|
3
|
+
"version": "2.87.5",
|
|
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",
|