@reddb-io/red-skills 2.56.0 → 2.56.2
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/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +409 -409
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/rsp.bundle.min.mjs +1 -1
- package/package.json +1 -1
|
@@ -6565,7 +6565,7 @@ Usage:
|
|
|
6565
6565
|
${n} archive --candidate <json> [--root <dir>] [--archive-dir <rel>]
|
|
6566
6566
|
${n} restore <name> [--root <dir>] [--archive-dir <rel>]`}function fx(n){return UNn(typeof n.root=="string"?n.root:process.cwd())}function fot(n){return typeof n["archive-dir"]=="string"?n["archive-dir"]:void 0}async function vj(n){let a=await Co(n);return a?a.mode!=="graph"?{ok:!1,message:`curate: skill telemetry needs graph mode (this project is "${a.mode}") \u2014 run \`${Rwe}\``}:sZ(a)?{ok:!0}:{ok:!1,message:`curate: skill telemetry is not enabled here \u2014 run \`${Rwe}\``}:{ok:!1,message:`curate: memory is not initialized here \u2014 run \`${Rwe}\``}}function BNn(){let n=ONn(MNn(import.meta.url));return n.includes("dist/curate-skill")||n.endsWith("dist/curate-skill")?Fot(n,"..","cli.js"):Fot(n,"..","cli.ts")}async function SNn(n,a){let i=["curate","skills","--json"];a!==void 0&&i.push("--stale-days",String(a));let d=BNn(),h=d.endsWith(".ts")?vot(process.execPath,["--import","tsx",d,...i,"--root",n],{encoding:"utf8"}):vot(process.execPath,[d,...i,"--root",n],{encoding:"utf8"}),y=h.status??1;if(y!==0)throw new Error(`memory curate skills exited ${y}`);return got(h.stdout??"")}function TNn(n){return typeof n.flags["stale-days"]=="string"?Number(n.flags["stale-days"]):void 0}async function wot(n,a){return(a.loadCuratorReport??SNn)(fx(n.flags),TNn(n))}async function jNn(n){let a=fx(n.flags),i=await vj(a);return i.ok?(console.log("curate: skill telemetry is enabled \u2014 ready to curate"),0):(console.error(i.message),2)}async function DNn(n,a){let i=fx(n.flags),d=await vj(i);if(!d.ok)return console.error(d.message),2;let b;try{b=await wot(n,a)}catch(J){return console.error(`curate: ${J.message}`),1}let{candidates:h,byCategory:y,filtered:w}=gwe(b);return console.log(JSON.stringify({candidates:h,byCategory:y,filtered:w,totals:{totalSkills:b.totalSkills,curatableSkills:b.curatableSkills,readOnlySkills:b.readOnlySkills}},null,2)),0}async function KNn(n,a){let i=fx(n.flags),d=await vj(i);if(!d.ok)return console.error(d.message),2;let b;try{b=await wot(n,a)}catch(J){return console.error(`curate: ${J.message}`),1}let{byCategory:h}=gwe(b);if(ywe(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,w=await Rot({byCategory:h,totals:{totalSkills:b.totalSkills,curatableSkills:b.curatableSkills,readOnlySkills:b.readOnlySkills},generatedAt:b.generatedAt},{cwd:i,label:y});return console.log(`curate: filed background issue \u2014 ${w.output||w.title}`),0}async function PNn(n){let a=fx(n.flags),i=await vj(a);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 b;try{b=JSON.parse(d)}catch(y){return console.error(`curate archive: invalid --candidate JSON: ${y.message}`),2}let h=await Yot(b,{rootDir:a,archiveDir:fot(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 qNn(n){let a=fx(n.flags),i=await vj(a);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 b=await Vot(d,{rootDir:a,archiveDir:fot(n.flags)});return console.log(`curate: restored "${b.name}" \u2192 ${b.restoredRoot} (${b.files.length} file(s) hash-verified)`),0}async function Hot(n,a={}){switch(n.command){case"check":return jNn(n);case"list":return DNn(n,a);case"background":return KNn(n,a);case"archive":return PNn(n);case"restore":return qNn(n);case void 0:case"--help":case"-h":return console.log(Xot(a.usageCommand)),0;default:return console.error(`unknown curate subcommand: ${n.command}
|
|
6567
6567
|
|
|
6568
|
-
${Xot(a.usageCommand)}`),2}}function Qot(n){let a={app:n,version:$Nn(wx("__RED_BUILD_VERSION__",()=>"2.56.
|
|
6568
|
+
${Xot(a.usageCommand)}`),2}}function Qot(n){let a={app:n,version:$Nn(wx("__RED_BUILD_VERSION__",()=>"2.56.2")??"0.0.0-dev"),gitSha:wx("__RED_BUILD_GIT_SHA__",()=>"1cd369ac8d4c8eedf4218fa6e8e82e3943239ac2")??"unknown",buildTime:wx("__RED_BUILD_TIME__",()=>"2026-07-14T17:20:53-03:00")??"unknown",bundleAsset:wx("__RED_BUNDLE_ASSET__",()=>"memory.bundle.min.mjs")??"unknown"},i=wx("__REDDB_SDK_VERSION__",()=>"1.23.1"),d=wx("__REDDB_BINARY_TAG__",()=>"v1.23.1");return i&&(a.reddbSdkVersion=i),d&&(a.reddbBinaryTag=d),a}function $Nn(n){return n.startsWith("v")?n.slice(1):n}function Eot(n){return`${n.app} ${n.version} ${n.gitSha}`}function wx(n,a){try{let i=a();return typeof i=="string"&&i.length>0?i:void 0}catch{return process.env[n.replace(/^__|__$/g,"")]}}var _ot=`memory \u2014 governed operational memory for code agents
|
|
6569
6569
|
|
|
6570
6570
|
Common workflows:
|
|
6571
6571
|
remember one fact memory store "Decision: ..."
|
package/dist/rsp.bundle.min.mjs
CHANGED
|
@@ -132,7 +132,7 @@ ${n[n.length-1]}`,s=Buffer.from(r);return s.length<=t?r:s.subarray(0,t).toString
|
|
|
132
132
|
`:""}`,truncated:o.length<s.length}}function hy(e){let t=[];for(let n=0;n<e.length;n++){let s=e[n].trim(),i=/^(?:export\s+)?(?:default\s+)?(?:abstract\s+)?(class|interface|type)\s+([A-Za-z_$][\w$]*)/.exec(s);if(i){t.push({kind:i[1],name:i[2],line:n+1,signature:s});continue}let o=/^(?:export\s+)?(?:default\s+)?(?:async\s+)?function\s+([A-Za-z_$][\w$]*)\s*\([^)]*\)\s*(?::[^{]+)?/.exec(s);if(o){t.push({kind:"function",name:o[1],line:n+1,signature:s});continue}let a=/^(?:public\s+|private\s+|protected\s+|static\s+|async\s+)*([A-Za-z_$][\w$]*)\s*\([^)]*\)\s*(?::[^{]+)?\s*\{/.exec(s);a&&!wy(a[1])&&t.push({kind:"method",name:a[1],line:n+1,signature:s})}return t}function rr(e){let t=e.split(`
|
|
133
133
|
`);return t.at(-1)===""?t.slice(0,-1):t}function zc(e){return e.includes(0)||!oy(e)}function Hc(e){return dy.has(cy(e).toLowerCase())}function wy(e){return["for","if","switch","while"].includes(e)}function Vc(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function Wc(e,t){let n=Number(e);return Number.isInteger(n)&&n>0?n:t}var qc,Js,uy,ly,dy,Vs=E(()=>{"use strict";Se();ze();qc=8*1024,Js=10,uy=8,ly=2,dy=new Set([".c",".cc",".cpp",".cs",".go",".java",".js",".jsx",".mjs",".py",".rs",".ts",".tsx"])});var sr={};A(sr,{parseExecCommandLine:()=>Xc,renderExecContract:()=>Qc,runExecWrapper:()=>ky});import{isUtf8 as by}from"node:buffer";import{spawn as _y}from"node:child_process";async function ky(e,t){let n=Xc(e),r=await Ty(n);return await Qc(n,r,t)}async function Qc(e,t,n){let r=Buffer.from(t.stdout,"binary"),s=Buffer.from(t.stderr,"binary");if(r.length===0)return{stdout:r,stderr:s,status:t.status,signal:t.signal,rawOutput:r};let i=vy(r);if(i.kind==="text"){let d=await Xt(i.text,{level:n.level,command:e,store:n.store?{mint:async(...g)=>await n.store.mint(...g)}:void 0});if(d.detected)return{stdout:Buffer.from(d.output),stderr:s,status:t.status,signal:t.signal,mintedHandle:d.handle,bytesElided:d.lossy?r.length:void 0,rawOutput:r}}let o=i.kind==="text"?Buffer.from(i.text):r,a=Py(n.heavyByteThreshold,Ry);if(o.length<=a&&n.level!=="terse")return{stdout:o,stderr:s,status:t.status,signal:t.signal,rawOutput:r};let c=r.length,u=n.level==="lossless"?"terse":n.level,l=await n.store?.mint(r,{command:e,loss:{level:u,bytes_elided:c}});if(!l)throw new Error("rsp exec output elision requires an elision store");return{stdout:Buffer.from(xy(o,r.length,l,n.level)),stderr:s,status:t.status,signal:t.signal,mintedHandle:l,bytesElided:c,rawOutput:r}}function Xc(e){if(e[0]!=="exec")throw new Error("expected rsp exec -- <command line>");let t=e.indexOf("--"),n=t>=0?e.slice(t+1):e.slice(1),r=n.length===1?n[0]:n.join(" ");if(!r.trim())throw new Error("usage: rsp exec -- <command line>");return r}async function Ty(e){let t=_y(e,{shell:!0,stdio:["inherit","pipe","pipe"]}),n=[],r=[];return t.stdout.on("data",s=>n.push(s)),t.stderr.on("data",s=>r.push(s)),await new Promise((s,i)=>{t.on("error",i),t.on("close",(o,a)=>{s({stdout:Buffer.concat(n).toString("binary"),stderr:Buffer.concat(r).toString("binary"),status:o,signal:a})})})}function vy(e){return by(e)?{kind:"text",text:wt(e.toString("utf8"))}:{kind:"bytes"}}function xy(e,t,n,r){let i=Math.max(1,Math.floor((r==="terse"?Sy:Ey)/2)),o=Yc(e.subarray(0,i)),a=Yc(e.subarray(Math.max(0,e.length-i))),c=Oy(e),u=["stdout summary",`bytes: ${t}`,`lines: ${c}`,"head:",o];return a&&a!==o&&u.push("tail:",a),u.push(`\u2026 elided stdout (+${t}) \u2014 ${X(n)}`),`${u.join(`
|
|
134
134
|
`)}
|
|
135
|
-
`}function Yc(e){return e.toString("utf8").replace(/�$/g,"")}function Oy(e){if(e.length===0)return 0;let t=0;for(let n of e)n===10&&t++;return e[e.length-1]===10?t:t+1}function Py(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}var Ry,Ey,Sy,ir=E(()=>{"use strict";ze();Zt();Ry=8*1024,Ey=2*1024,Sy=1024});Tr();Se();import{spawn as Dy}from"node:child_process";import{createHash as Iy}from"node:crypto";import{appendFileSync as Zc,existsSync as sn,mkdirSync as $y,readFileSync as Ay,readdirSync as Ny,statSync as By}from"node:fs";import{tmpdir as Cy}from"node:os";import{dirname as nu,join as ce}from"node:path";import{fileURLToPath as ru}from"node:url";function qi(e){let t={app:e,version:rd(ct("__RED_BUILD_VERSION__",()=>"2.56.
|
|
135
|
+
`}function Yc(e){return e.toString("utf8").replace(/�$/g,"")}function Oy(e){if(e.length===0)return 0;let t=0;for(let n of e)n===10&&t++;return e[e.length-1]===10?t:t+1}function Py(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}var Ry,Ey,Sy,ir=E(()=>{"use strict";ze();Zt();Ry=8*1024,Ey=2*1024,Sy=1024});Tr();Se();import{spawn as Dy}from"node:child_process";import{createHash as Iy}from"node:crypto";import{appendFileSync as Zc,existsSync as sn,mkdirSync as $y,readFileSync as Ay,readdirSync as Ny,statSync as By}from"node:fs";import{tmpdir as Cy}from"node:os";import{dirname as nu,join as ce}from"node:path";import{fileURLToPath as ru}from"node:url";function qi(e){let t={app:e,version:rd(ct("__RED_BUILD_VERSION__",()=>"2.56.2")??"0.0.0-dev"),gitSha:ct("__RED_BUILD_GIT_SHA__",()=>"1cd369ac8d4c8eedf4218fa6e8e82e3943239ac2")??"unknown",buildTime:ct("__RED_BUILD_TIME__",()=>"2026-07-14T17:20:53-03:00")??"unknown",bundleAsset:ct("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},n=ct("__REDDB_SDK_VERSION__",()=>"1.23.1"),r=ct("__REDDB_BINARY_TAG__",()=>"v1.23.1");return n&&(t.reddbSdkVersion=n),r&&(t.reddbBinaryTag=r),t}function rd(e){return e.startsWith("v")?e.slice(1):e}function ct(e,t){try{let n=t();return typeof n=="string"&&n.length>0?n:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}Cr();async function Ly(e=process.argv.slice(2)){let t=qi("rsp"),n=Xy(e);if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:f}=await Promise.resolve().then(()=>(qn(),ds));return await f()}if(n.command==="hook"&&n.positional[1]==="codex-pre-exec"){let{runCodexPreExecHook:f}=await Promise.resolve().then(()=>(qn(),ds));return await f()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:f}=await Promise.resolve().then(()=>(Zt(),ms));return await f()}if(n.command==="hook"&&n.positional[1]==="codex-post-exec"){let{runCodexPostExecHook:f}=await Promise.resolve().then(()=>(Zt(),ms));return await f()}if(n.command==="setup"){let{provisionRspRepoStore:f}=await Promise.resolve().then(()=>(Oa(),xa)),p=await f(process.cwd());return process.stdout.write(ch(p)),0}if(n.command==="mcp"){let{runRspMcpServer:f}=await Promise.resolve().then(()=>(Ba(),Na));return await f(),0}if(n.command==="wait"){let{runWait:f}=await Promise.resolve().then(()=>(Ga(),Fa));return await f(n.positional)}if(n.command==="shell-init"){let f=n.positional[1];if(f!=="fish"&&f!=="bash"&&f!=="zsh")return process.stdout.write(`error: usage rsp shell-init fish|bash|zsh
|
|
136
136
|
`),2;let{renderShellInit:p}=await Promise.resolve().then(()=>(Ha(),qa));return process.stdout.write(p(f)),0}let{resolveRspConfig:r}=await Promise.resolve().then(()=>(re(),wo)),s=r(process.cwd(),process.env,n.storeUri),i=Yy(n.command);if(!s.enabled)return i?await zy(n.positional):(process.stdout.write(`${ei()}
|
|
137
137
|
`),0);if(n.command==="git"&&Ys(n.positional)){let f=process.hrtime.bigint();return await G(n,await Qs(),f,void 0,await My(process.cwd()))}let{resolveResidentPaths:o,ResidentRspElisionStore:a,ensureResidentServer:c}=await Promise.resolve().then(()=>(Fe(),jt));if(n.command==="server"){let{runResidentServer:f}=await Promise.resolve().then(()=>(Sc(),Ec)),p=o(process.cwd()),S=ae(n.positional,"--socket")??p.socketPath,m=r(process.cwd(),process.env,n.storeUri??ae(n.positional,"--store-uri"));return m.enabled?(await f({socketPath:S,pidPath:ae(n.positional,"--pid-file")??o(process.cwd()).pidPath,rootDir:p.rootDir,storeUri:m.storeUri,ttlDays:N(n.positional,"--ttl-days")??m.ttlDays,ephemeralTtlHours:N(n.positional,"--ephemeral-ttl-hours")??m.ephemeralTtlHours,byteBudget:N(n.positional,"--byte-budget")??m.byteBudget,telemetryTtlDays:N(n.positional,"--telemetry-ttl-days")??m.telemetryTtlDays,telemetryByteBudget:N(n.positional,"--telemetry-byte-budget")??m.telemetryByteBudget,telemetryDrainIntervalMs:N(n.positional,"--telemetry-drain-interval-ms")??m.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:N(n.positional,"--telemetry-drain-timeout-ms")??m.telemetryDrainTimeoutMs,idleMs:N(n.positional,"--idle-ms")??m.idleMs,residentVersion:ae(n.positional,"--resident-version")??t.version,registryPath:ae(n.positional,"--registry")??p.registryPath}),0):(process.stdout.write(`${ei()}
|
|
138
138
|
`),0)}if(n.command==="warm-resident"){let f=o(process.cwd()),p=ae(n.positional,"--socket")??f.socketPath,S=ae(n.positional,"--wake-lock")??f.wakeLockPath,m=r(process.cwd(),process.env,n.storeUri??ae(n.positional,"--store-uri"));if(!m.enabled)return 0;let{warmResidentServer:k}=await Promise.resolve().then(()=>(Fe(),jt));return await k({...f,socketPath:p,wakeLockPath:S},{storeUri:m.storeUri,ttlDays:N(n.positional,"--ttl-days")??m.ttlDays,ephemeralTtlHours:N(n.positional,"--ephemeral-ttl-hours")??m.ephemeralTtlHours,byteBudget:N(n.positional,"--byte-budget")??m.byteBudget,telemetryTtlDays:N(n.positional,"--telemetry-ttl-days")??m.telemetryTtlDays,telemetryByteBudget:N(n.positional,"--telemetry-byte-budget")??m.telemetryByteBudget,telemetryDrainIntervalMs:N(n.positional,"--telemetry-drain-interval-ms")??m.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:N(n.positional,"--telemetry-drain-timeout-ms")??m.telemetryDrainTimeoutMs,idleMs:N(n.positional,"--idle-ms")??m.idleMs,clientVersion:t.version}),0}let u=o(process.cwd());if(n.command==="status"||n.command==="sweep"){let{residentRegistryStatus:f,sweepResidentRegistry:p}=await Promise.resolve().then(()=>(Fe(),jt)),S=n.command==="sweep"?await p(u):await f(u);return process.stdout.write(`${O(S)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reddb-io/red-skills",
|
|
3
|
-
"version": "2.56.
|
|
3
|
+
"version": "2.56.2",
|
|
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",
|