@reddb-io/red-skills 2.69.0 → 2.69.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.
@@ -6581,7 +6581,7 @@ Usage:
6581
6581
  ${n} archive --candidate <json> [--root <dir>] [--archive-dir <rel>]
6582
6582
  ${n} restore <name> [--root <dir>] [--archive-dir <rel>]`}function Hx(n){return uYn(typeof n.root=="string"?n.root:process.cwd())}function $ot(n){return typeof n["archive-dir"]=="string"?n["archive-dir"]:void 0}async function fj(n){let a=await Jo(n);return a?a.mode!=="graph"?{ok:!1,message:`curate: skill telemetry needs graph mode (this project is "${a.mode}") \u2014 run \`${Owe}\``}:oZ(a)?{ok:!0}:{ok:!1,message:`curate: skill telemetry is not enabled here \u2014 run \`${Owe}\``}:{ok:!1,message:`curate: memory is not initialized here \u2014 run \`${Owe}\``}}function pYn(){let n=mYn(bYn(import.meta.url));return n.includes("dist/curate-skill")||n.endsWith("dist/curate-skill")?Pot(n,"..","cli.js"):Pot(n,"..","cli.ts")}async function ZYn(n,a){let i=["curate","skills","--json"];a!==void 0&&i.push("--stale-days",String(a));let d=pYn(),h=d.endsWith(".ts")?Kot(process.execPath,["--import","tsx",d,...i,"--root",n],{encoding:"utf8"}):Kot(process.execPath,[d,...i,"--root",n],{encoding:"utf8"}),g=h.status??1;if(g!==0)throw new Error(`memory curate skills exited ${g}`);return Tot(h.stdout??"")}function hYn(n){return typeof n.flags["stale-days"]=="string"?Number(n.flags["stale-days"]):void 0}async function edt(n,a){return(a.loadCuratorReport??ZYn)(Hx(n.flags),hYn(n))}async function WYn(n){let a=Hx(n.flags),i=await fj(a);return i.ok?(console.log("curate: skill telemetry is enabled \u2014 ready to curate"),0):(console.error(i.message),2)}async function NYn(n,a){let i=Hx(n.flags),d=await fj(i);if(!d.ok)return console.error(d.message),2;let u;try{u=await edt(n,a)}catch(J){return console.error(`curate: ${J.message}`),1}let{candidates:h,byCategory:g,filtered:f}=xwe(u);return console.log(JSON.stringify({candidates:h,byCategory:g,filtered:f,totals:{totalSkills:u.totalSkills,curatableSkills:u.curatableSkills,readOnlySkills:u.readOnlySkills}},null,2)),0}async function YYn(n,a){let i=Hx(n.flags),d=await fj(i);if(!d.ok)return console.error(d.message),2;let u;try{u=await edt(n,a)}catch(J){return console.error(`curate: ${J.message}`),1}let{byCategory:h}=xwe(u);if(zwe(h)===0)return console.error("curate: no candidates \u2014 no issue filed"),0;let g=typeof n.flags.label=="string"?n.flags.label:void 0,f=await Dot({byCategory:h,totals:{totalSkills:u.totalSkills,curatableSkills:u.curatableSkills,readOnlySkills:u.readOnlySkills},generatedAt:u.generatedAt},{cwd:i,label:g});return console.log(`curate: filed background issue \u2014 ${f.output||f.title}`),0}async function VYn(n){let a=Hx(n.flags),i=await fj(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 u;try{u=JSON.parse(d)}catch(g){return console.error(`curate archive: invalid --candidate JSON: ${g.message}`),2}let h=await Bot(u,{rootDir:a,archiveDir:$ot(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 gYn(n){let a=Hx(n.flags),i=await fj(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 u=await Sot(d,{rootDir:a,archiveDir:$ot(n.flags)});return console.log(`curate: restored "${u.name}" \u2192 ${u.restoredRoot} (${u.files.length} file(s) hash-verified)`),0}async function tdt(n,a={}){switch(n.command){case"check":return WYn(n);case"list":return NYn(n,a);case"background":return YYn(n,a);case"archive":return VYn(n);case"restore":return gYn(n);case void 0:case"--help":case"-h":return console.log(qot(a.usageCommand)),0;default:return console.error(`unknown curate subcommand: ${n.command}
6583
6583
 
6584
- ${qot(a.usageCommand)}`),2}}function ndt(n){let a={app:n,version:yYn(Qx("__RED_BUILD_VERSION__",()=>"2.69.0")??"0.0.0-dev"),gitSha:Qx("__RED_BUILD_GIT_SHA__",()=>"d81a9183d69566843fbe2c4549786ed7ffd1eff7")??"unknown",buildTime:Qx("__RED_BUILD_TIME__",()=>"2026-07-18T00:07:37.060Z")??"unknown",bundleAsset:Qx("__RED_BUNDLE_ASSET__",()=>"memory.bundle.min.mjs")??"unknown"},i=Qx("__REDDB_SDK_VERSION__",()=>"1.23.1"),d=Qx("__REDDB_BINARY_TAG__",()=>"v1.23.1");return i&&(a.reddbSdkVersion=i),d&&(a.reddbBinaryTag=d),a}function yYn(n){return n.startsWith("v")?n.slice(1):n}function Idt(n){return`${n.app} ${n.version} ${n.gitSha}`}function Qx(n,a){try{let i=a();return typeof i=="string"&&i.length>0?i:void 0}catch{return process.env[n.replace(/^__|__$/g,"")]}}var ldt=`memory \u2014 governed operational memory for code agents
6584
+ ${qot(a.usageCommand)}`),2}}function ndt(n){let a={app:n,version:yYn(Qx("__RED_BUILD_VERSION__",()=>"2.69.2")??"0.0.0-dev"),gitSha:Qx("__RED_BUILD_GIT_SHA__",()=>"02ec5c40fc1fd5d70a61779467b4e8ae2a0d4d90")??"unknown",buildTime:Qx("__RED_BUILD_TIME__",()=>"2026-07-17T22:53:26-03:00")??"unknown",bundleAsset:Qx("__RED_BUNDLE_ASSET__",()=>"memory.bundle.min.mjs")??"unknown"},i=Qx("__REDDB_SDK_VERSION__",()=>"1.23.1"),d=Qx("__REDDB_BINARY_TAG__",()=>"v1.23.1");return i&&(a.reddbSdkVersion=i),d&&(a.reddbBinaryTag=d),a}function yYn(n){return n.startsWith("v")?n.slice(1):n}function Idt(n){return`${n.app} ${n.version} ${n.gitSha}`}function Qx(n,a){try{let i=a();return typeof i=="string"&&i.length>0?i:void 0}catch{return process.env[n.replace(/^__|__$/g,"")]}}var ldt=`memory \u2014 governed operational memory for code agents
6585
6585
 
6586
6586
  Common workflows:
6587
6587
  remember one fact memory store "Decision: ..."
@@ -154,7 +154,7 @@ ${n[n.length-1]}`,s=Buffer.from(r);return s.length<=t?r:s.subarray(0,t).toString
154
154
  `)}${r&&o.length>0?`
155
155
  `:""}`,truncated:o.length<s.length}}function zb(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&&!Kb(a[1])&&t.push({kind:"method",name:a[1],line:n+1,signature:s})}return t}function rs(e){let t=e.split(`
156
156
  `);return t.at(-1)===""?t.slice(0,-1):t}function ld(e){return e.includes(0)||!Lb(e)}function od(e){return Fb.has(jb(e).toLowerCase())}function Kb(e){return["for","if","switch","while"].includes(e)}function ad(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function cd(e,t){let n=Number(e);return Number.isInteger(n)&&n>0?n:t}var id,lo,Ub,Jb,Fb,po=E(()=>{"use strict";ne();St();ut();id=8*1024,lo=10,Ub=8,Jb=2,Fb=new Set([".c",".cc",".cpp",".cs",".go",".java",".js",".jsx",".mjs",".py",".rs",".ts",".tsx"])});function md(e,t={}){let n=Yb(e);if(n.length<12)return[];let r=new Map,s=new Map;for(let d of n){s.set(d.signature,(s.get(d.signature)??0)+1);for(let p of new Set(d.tokens))r.set(p,(r.get(p)??0)+1)}let i=n.map(d=>d.length),o=n.map(d=>d.tokens.length),a=n.map(d=>d.numbers.length===0?0:Math.max(...d.numbers.map(Math.abs))),c=go(i),u=go(o),l=go(a),f=t.excludedByteRanges??[];return n.filter(d=>d.text.trim().length>0).filter(d=>!f.some(p=>n_(d.start,d.end,p.start,p.end))).map(d=>({line:d,score:ho(d.length,c)+ho(d.tokens.length,u)+ho(d.numbers.length===0?0:Math.max(...d.numbers.map(Math.abs)),l)+e_(d.tokens,r,n.length)+t_(d.signature,s,n.length)})).filter(d=>d.score>=(t.minScore??7)).sort((d,p)=>p.score-d.score||d.line.index-p.line.index).slice(0,t.maxOutliers??3).sort((d,p)=>d.line.index-p.line.index).map(d=>({lineNumber:d.line.index+1,score:Math.round(d.score*100)/100,text:d.line.text}))}function Yb(e){let t=[],n=0,r=0;for(let s of e.matchAll(/\n/g)){let i=s.index??e.length;t.push(dd(r++,n,i,e.slice(n,i).replace(/\r$/,""))),n=i+1}return(n<e.length||e.length===0)&&t.push(dd(r,n,e.length,e.slice(n).replace(/\r$/,""))),t}function dd(e,t,n,r){return{index:e,start:t,end:n,text:r,signature:Qb(r),tokens:Zb(r),numbers:Xb(r),length:r.length}}function Qb(e){return e.replace(/[A-Z]+/g,"A").replace(/[a-z]+/g,"a").replace(/\d+(?:\.\d+)?/g,"0").replace(/\s+/g," ").slice(0,160)}function Zb(e){return e.toLowerCase().match(/[a-z0-9_.:/-]{3,}/g)??[]}function Xb(e){return[...e.matchAll(/[-+]?\d+(?:\.\d+)?/g)].map(t=>Number(t[0])).filter(t=>Number.isFinite(t))}function e_(e,t,n){let r=[...new Set(e)];if(r.length===0)return 0;let s=r.map(i=>Math.log2(n/Math.max(1,t.get(i)??n))).sort((i,o)=>o-i).slice(0,6);return s.reduce((i,o)=>i+o,0)/Math.max(1,s.length)}function t_(e,t,n){return Math.log2(n/Math.max(1,t.get(e)??n))}function go(e){let t=fd(e),n=fd(e.map(r=>Math.abs(r-t)))||1;return{median:t,mad:n}}function ho(e,t){return Math.abs(e-t.median)/t.mad}function fd(e){let t=[...e].sort((r,s)=>r-s),n=Math.floor(t.length/2);return t.length===0?0:t.length%2===1?t[n]:((t[n-1]??0)+(t[n]??0))/2}function n_(e,t,n,r){return e<r&&n<t}var pd=E(()=>{"use strict"});var qn={};M(qn,{parseExecCommandLine:()=>_d,renderExecContract:()=>bd,runExecWrapper:()=>a_});import{isUtf8 as r_}from"node:buffer";import{spawn as s_}from"node:child_process";async function a_(e,t){let n=_d(e),r=await c_(n);return await bd(n,r,t)}async function bd(e,t,n){let r=Buffer.from(t.stdout,"binary"),s=Buffer.from(t.stderr,"binary");if((t.status??0)!==0||t.signal){let d=fe(e,t.stdout,t.stderr);return{stdout:N(d),stderr:s,status:d.exitCode??1,signal:t.signal,rawOutput:r}}if(r.length===0)return{stdout:r,stderr:s,status:t.status,signal:t.signal,rawOutput:r};let i=u_(r),o=i.kind==="text"?Buffer.from(i.text):r,a=P_(n.heavyByteThreshold,i_);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");let f=i.kind==="text"?d_(i.text,r.length,l,n.level,e,n.anomalyScorer,n.jsonArrayCrusher):f_(r,r.length,l,e);return{stdout:Buffer.from(f.text),stderr:s,status:t.status,signal:t.signal,mintedHandle:l,bytesElided:c,rawOutput:r,degradation:f.degradation}}function _d(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 c_(e){let t=s_(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 u_(e){return r_(e)?{kind:"text",text:l_(e.toString("utf8"))}:{kind:"bytes"}}function l_(e){let t=e;for(let n of[Lr,Mr,jr,Ur])t=n.apply(t);return t}function d_(e,t,n,r,s,i=S_,o=Nn){let c=Math.max(1,Math.floor((r==="terse"?wd:o_)/2)),u=Buffer.from(e),l=Math.max(0,u.length-c),f=R_(e,c,l,i),d=m_(e),p=p_(d,e,u,c,l,f.kind==="ok"?f.lines:[],o),h=Rd(s,d,t,O_(u),n,p.summary),m=f.kind==="failed"?{reason:"exec-anomaly-scorer-failed",family:"exec",stderrHead:Td(f.error)}:p.degradation;return{text:vd(h),degradation:m}}function f_(e,t,n,r){let s=Math.max(1,Math.floor(wd/2)),i={head_hex:e.subarray(0,s).toString("hex"),tail_hex:e.subarray(Math.max(0,e.length-s)).toString("hex")};return{text:vd(Rd(r,"bytes",t,0,n,i))}}function Rd(e,t,n,r,s,i){return{family:"exec",command:e,content:t,bytes:n,lines:r,summary:i,recovery:{original:ge(s)}}}function m_(e){let t=e.trim();return t?kd(t)?"json":Ed(e)?"jsonl":k_(e)?"unified-diff":xd(e)?"tabular":E_(e)?"log-like":x_(e)?"prose":"untyped":"untyped"}function p_(e,t,n,r,s,i,o=Nn){switch(e){case"json":return g_(t,o);case"jsonl":return{summary:h_(t)};case"unified-diff":return{summary:y_(t)};case"tabular":return{summary:w_(t)};case"log-like":return{summary:b_(t,i)};case"prose":return{summary:__(t)};case"bytes":return{summary:{}};case"untyped":return{summary:Sd(n,r,s,i)}}}function g_(e,t){let n=kd(e);if(Array.isArray(n)){if(n.length>15)try{let r=t(n,15);return{summary:{root_type:"array",total:r.total,kept:r.kept,dropped:r.dropped,shape_outliers:r.shapeOutliers,value_outliers:r.valueOutliers,items:r.items.map(Xe),item_keys:wo(n)}}}catch(r){return{summary:hd(n),degradation:{reason:"exec-json-array-crusher-failed",family:"exec",stderrHead:Td(r)}}}return{summary:hd(n)}}if(Hn(n)){let r=Object.entries(n);return{summary:{root_type:"object",keys:r.map(([s])=>s).slice(0,20),key_count:r.length,sample:Object.fromEntries(r.slice(0,8).map(([s,i])=>[s,Xe(i)]))}}}return{summary:{root_type:typeof n,value:Xe(n)}}}function hd(e){return{root_type:"array",items:e.length,sample:e.slice(0,5).map(Xe),item_keys:wo(e)}}function h_(e){let t=Ed(e)??[],n=v_(t,"level");return{records:t.length,keys:wo(t),levels:n,first:Xe(t[0]),last:Xe(t.at(-1))}}function y_(e){let t=new Map,n="",r=0,s=0,i=0;for(let o of e.split(/\r?\n/)){let a=/^diff --git a\/(.+?) b\/(.+)$/.exec(o);if(a){n=a[2]??a[1]??"unknown",t.has(n)||t.set(n,{path:n,added:0,deleted:0,hunks:0});continue}if(!n){let c=/^\+\+\+ b\/(.+)$/.exec(o);c&&(n=c[1]??"unknown",t.has(n)||t.set(n,{path:n,added:0,deleted:0,hunks:0}))}o.startsWith("@@")?(i++,n&&t.get(n).hunks++):o.startsWith("+")&&!o.startsWith("+++")?(r++,n&&t.get(n).added++):o.startsWith("-")&&!o.startsWith("---")&&(s++,n&&t.get(n).deleted++)}return{files:[...t.values()].slice(0,12),file_count:t.size,hunks:i,added_lines:r,deleted_lines:s}}function w_(e){let t=xd(e);return t?{columns:t.columns,rows:t.rows.length,sample:t.rows.slice(0,5)}:Sd(Buffer.from(e),512,Math.max(0,Buffer.byteLength(e)-512),[])}function b_(e,t){let n=Gn(e);return{entries:n.length,levels:T_(n),first:Et(n[0]??""),last:Et(n.at(-1)??""),outliers:t.map(r=>({line:r.lineNumber,score:Number(r.score.toFixed(2)),text:Et(r.text)}))}}function __(e){let t=e.trim().split(/\n\s*\n/).filter(r=>r.trim()),n=e.trim().split(/\s+/).filter(Boolean);return{paragraphs:t.length,words:n.length,opening:Et(t[0]??""),closing:Et(t.at(-1)??"")}}function Sd(e,t,n,r){let s=yd(e.subarray(0,t)),i=yd(e.subarray(n));return{head:s,tail:i,outliers:r.map(o=>({line:o.lineNumber,score:Number(o.score.toFixed(2)),text:Et(o.text)}))}}function R_(e,t,n,r){try{return{kind:"ok",lines:r(e,{headBytes:t,tailStart:n})}}catch(s){return{kind:"failed",error:s}}}function S_(e,t){return md(e,{excludedByteRanges:[{start:0,end:t.headBytes},{start:t.tailStart,end:Buffer.byteLength(e,"utf8")}]})}function kd(e){let t=e.trim();if(!t||!/^[\[{]/.test(t))return null;try{let n=JSON.parse(t);return Hn(n)||Array.isArray(n)?n:null}catch{return null}}function Ed(e){let t=Gn(e);if(t.length<2||!t.every(r=>/^[\[{]/.test(r.trim())))return null;let n=[];for(let r of t)try{n.push(JSON.parse(r))}catch{return null}return n}function k_(e){let t=Gn(e),n=t[0]??"";if(!/^diff --git a\/.+ b\/.+/.test(n)&&!/^--- /.test(n))return!1;let r=t.some(o=>/^diff --git a\/.+ b\/.+/.test(o))||t.some(o=>/^--- /.test(o))&&t.some(o=>/^\+\+\+ /.test(o)),s=t.some(o=>/^@@ /.test(o)),i=t.some(o=>/^[+-]/.test(o)&&!/^(---|\+\+\+) /.test(o));return r&&s&&i}function xd(e){let t=Gn(e);if(t.length<3)return null;let n=t[0]??"";if(/[=:{}/]/.test(n)||/^\d{4}-\d{2}-\d{2}/.test(n))return null;let r=n.includes(" ")?/\t+/:/\s{2,}/,s=n.split(r).map(o=>o.trim()).filter(Boolean);if(s.length<2||s.some(o=>!/^[A-Za-z0-9_.-]+$/.test(o)))return null;let i=[];for(let o of t.slice(1)){let a=o.split(r).map(c=>c.trim());if(a.length!==s.length||a.some(c=>c===""))return null;i.push(Object.fromEntries(s.map((c,u)=>[c,a[u]??""])))}return i.length>0?{columns:s,rows:i}:null}function E_(e){let t=Gn(e);return t.length<3?!1:t.filter(r=>/^\d{4}-\d{2}-\d{2}[T\s]/.test(r)||/\b(?:TRACE|DEBUG|INFO|WARN|WARNING|ERROR|FATAL|PANIC)\b/i.test(r)||(r.match(/\b[A-Za-z0-9_.+:-]+=/g)?.length??0)>=2||/^\[[^\]]+\]\s+/.test(r)).length/t.length>=.6}function x_(e){let t=e.trim();if(!t)return!1;let n=t.split(/\s+/).filter(Boolean),r=t.match(/[.!?](?:\s|$)/g)?.length??0;return n.length>=20&&r>=2}function Gn(e){return e.split(/\r?\n/).filter(t=>t.trim()!=="")}function wo(e){let t=new Map;for(let n of e)if(Hn(n))for(let r of Object.keys(n))t.set(r,(t.get(r)??0)+1);return[...t.entries()].sort((n,r)=>r[1]-n[1]||n[0].localeCompare(r[0])).slice(0,20).map(([n])=>n)}function v_(e,t){let n=new Map;for(let r of e){if(!Hn(r))continue;let s=r[t];if(typeof s=="string"||typeof s=="number"||typeof s=="boolean"){let i=String(s).toLowerCase();n.set(i,(n.get(i)??0)+1)}}return Object.fromEntries([...n.entries()].sort((r,s)=>r[0].localeCompare(s[0])))}function T_(e){let t=new Map;for(let n of e){let r=/\blevel=([A-Za-z]+)\b/.exec(n)??/\b(TRACE|DEBUG|INFO|WARN|WARNING|ERROR|FATAL|PANIC)\b/i.exec(n);if(!r)continue;let s=(r[1]??r[0]).toLowerCase();t.set(s,(t.get(s)??0)+1)}return Object.fromEntries([...t.entries()].sort((n,r)=>n[0].localeCompare(r[0])))}function Xe(e){return typeof e=="string"?Et(e):typeof e=="number"||typeof e=="boolean"||e===null?e:Array.isArray(e)?e.slice(0,5).map(Xe):Hn(e)?Object.fromEntries(Object.entries(e).slice(0,8).map(([t,n])=>[t,Xe(n)])):String(e)}function Et(e){let t=e.replace(/\s+/g," ").trim();return t.length<=gd?t:`${t.slice(0,gd-1)}\u2026`}function vd(e){let t=D(e).trimEnd(),n=Y(t);if(!yo(e,n))throw new Error("exec TOON round-trip guard failed");return`${t}
157
- `}function yo(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){let o=t;return e.length!==o.length?!1:e.every((a,c)=>yo(a,o[c]))}let n=e,r=t,s=Object.keys(n),i=Object.keys(r);return s.length!==i.length?!1:s.every(o=>Object.prototype.hasOwnProperty.call(r,o)&&yo(n[o],r[o]))}function Hn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Td(e){let n=(e instanceof Error?e.message:String(e??"unknown scorer failure")).split(/\r?\n/,1)[0]?.replace(/\s+/g," ").trim()||"unknown scorer failure";return n.length<=240?n:`${n.slice(0,239)}\u2026`}function yd(e){return e.toString("utf8").replace(/�$/g,"")}function O_(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 P_(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}var i_,o_,wd,gd,Wn=E(()=>{"use strict";ne();pd();St();Bn();ut();i_=8*1024,o_=2*1024,wd=1024,gd=240});Ts();Ce();pn();import{spawn as Eo}from"node:child_process";import{createHash as D_}from"node:crypto";import{existsSync as vt,readFileSync as C_,readdirSync as $_,statSync as I_}from"node:fs";import{tmpdir as A_}from"node:os";import{dirname as N_,join as tt}from"node:path";import{fileURLToPath as is}from"node:url";function Ca(e){let t={app:e,version:bm(Bt("__RED_BUILD_VERSION__",()=>"2.69.0")??"0.0.0-dev"),gitSha:Bt("__RED_BUILD_GIT_SHA__",()=>"d81a9183d69566843fbe2c4549786ed7ffd1eff7")??"unknown",buildTime:Bt("__RED_BUILD_TIME__",()=>"2026-07-18T00:08:03.858Z")??"unknown",bundleAsset:Bt("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},n=Bt("__REDDB_SDK_VERSION__",()=>"1.23.1"),r=Bt("__REDDB_BINARY_TAG__",()=>"v1.23.1");return n&&(t.reddbSdkVersion=n),r&&(t.reddbBinaryTag=r),t}function bm(e){return e.startsWith("v")?e.slice(1):e}function Bt(e,t){try{let n=t();return typeof n=="string"&&n.length>0?n:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}gn();Ws();ut();Ee();async function B_(e=process.argv.slice(2)){let t=Ca("rsp");if(gR(e))return process.stdout.write(hR(e)),0;let n=wR(e);if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:m}=await Promise.resolve().then(()=>(An(),Nr));return await m()}if(n.command==="hook"&&n.positional[1]==="codex-pre-exec"){let{runCodexPreExecHook:m}=await Promise.resolve().then(()=>(An(),Nr));return await m()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:m}=await Promise.resolve().then(()=>(Bn(),Si));return await m()}if(n.command==="hook"&&n.positional[1]==="codex-post-exec"){let{runCodexPostExecHook:m}=await Promise.resolve().then(()=>(Bn(),Si));return await m()}if(n.command==="setup"){let{provisionRspRepoStore:m}=await Promise.resolve().then(()=>(Du(),Pu)),g=await m(process.cwd());return process.stdout.write(vR(g)),0}if(n.command==="mcp"){let{runRspMcpServer:m}=await Promise.resolve().then(()=>(Bu(),Nu));return await m(),0}if(n.command==="wait"){let{runWait:m}=await Promise.resolve().then(()=>(ji(),Mi));return await m(n.positional)}if(n.command==="shell-init"){let m=n.positional[1];if(m!=="fish"&&m!=="bash"&&m!=="zsh")return process.stdout.write(N({command:n.positional.join(" ")||"shell-init",category:"usage",error:"usage rsp shell-init fish|bash|zsh",help:"rsp shell-init bash"})),2;let{renderShellInit:g}=await Promise.resolve().then(()=>(Qu(),Yu));return process.stdout.write(g(m)),0}let{resolveRspConfig:r}=await Promise.resolve().then(()=>(Re(),sc)),s=r(process.cwd(),process.env,n.storeUri);if(n.command==="doctor"){let{resolveResidentPaths:m}=await Promise.resolve().then(()=>(Fe(),ht)),g=m(process.cwd()),w=await q_(s,g,Ro(n.positional,1));return process.stdout.write(Q_(w)),w.exitCode}let i=mR(n.command);if(!s.enabled)return i?await fR(n.positional):(process.stdout.write(`${Po()}
157
+ `}function yo(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){let o=t;return e.length!==o.length?!1:e.every((a,c)=>yo(a,o[c]))}let n=e,r=t,s=Object.keys(n),i=Object.keys(r);return s.length!==i.length?!1:s.every(o=>Object.prototype.hasOwnProperty.call(r,o)&&yo(n[o],r[o]))}function Hn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Td(e){let n=(e instanceof Error?e.message:String(e??"unknown scorer failure")).split(/\r?\n/,1)[0]?.replace(/\s+/g," ").trim()||"unknown scorer failure";return n.length<=240?n:`${n.slice(0,239)}\u2026`}function yd(e){return e.toString("utf8").replace(/�$/g,"")}function O_(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 P_(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}var i_,o_,wd,gd,Wn=E(()=>{"use strict";ne();pd();St();Bn();ut();i_=8*1024,o_=2*1024,wd=1024,gd=240});Ts();Ce();pn();import{spawn as Eo}from"node:child_process";import{createHash as D_}from"node:crypto";import{existsSync as vt,readFileSync as C_,readdirSync as $_,statSync as I_}from"node:fs";import{tmpdir as A_}from"node:os";import{dirname as N_,join as tt}from"node:path";import{fileURLToPath as is}from"node:url";function Ca(e){let t={app:e,version:bm(Bt("__RED_BUILD_VERSION__",()=>"2.69.2")??"0.0.0-dev"),gitSha:Bt("__RED_BUILD_GIT_SHA__",()=>"02ec5c40fc1fd5d70a61779467b4e8ae2a0d4d90")??"unknown",buildTime:Bt("__RED_BUILD_TIME__",()=>"2026-07-17T22:53:26-03:00")??"unknown",bundleAsset:Bt("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},n=Bt("__REDDB_SDK_VERSION__",()=>"1.23.1"),r=Bt("__REDDB_BINARY_TAG__",()=>"v1.23.1");return n&&(t.reddbSdkVersion=n),r&&(t.reddbBinaryTag=r),t}function bm(e){return e.startsWith("v")?e.slice(1):e}function Bt(e,t){try{let n=t();return typeof n=="string"&&n.length>0?n:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}gn();Ws();ut();Ee();async function B_(e=process.argv.slice(2)){let t=Ca("rsp");if(gR(e))return process.stdout.write(hR(e)),0;let n=wR(e);if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:m}=await Promise.resolve().then(()=>(An(),Nr));return await m()}if(n.command==="hook"&&n.positional[1]==="codex-pre-exec"){let{runCodexPreExecHook:m}=await Promise.resolve().then(()=>(An(),Nr));return await m()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:m}=await Promise.resolve().then(()=>(Bn(),Si));return await m()}if(n.command==="hook"&&n.positional[1]==="codex-post-exec"){let{runCodexPostExecHook:m}=await Promise.resolve().then(()=>(Bn(),Si));return await m()}if(n.command==="setup"){let{provisionRspRepoStore:m}=await Promise.resolve().then(()=>(Du(),Pu)),g=await m(process.cwd());return process.stdout.write(vR(g)),0}if(n.command==="mcp"){let{runRspMcpServer:m}=await Promise.resolve().then(()=>(Bu(),Nu));return await m(),0}if(n.command==="wait"){let{runWait:m}=await Promise.resolve().then(()=>(ji(),Mi));return await m(n.positional)}if(n.command==="shell-init"){let m=n.positional[1];if(m!=="fish"&&m!=="bash"&&m!=="zsh")return process.stdout.write(N({command:n.positional.join(" ")||"shell-init",category:"usage",error:"usage rsp shell-init fish|bash|zsh",help:"rsp shell-init bash"})),2;let{renderShellInit:g}=await Promise.resolve().then(()=>(Qu(),Yu));return process.stdout.write(g(m)),0}let{resolveRspConfig:r}=await Promise.resolve().then(()=>(Re(),sc)),s=r(process.cwd(),process.env,n.storeUri);if(n.command==="doctor"){let{resolveResidentPaths:m}=await Promise.resolve().then(()=>(Fe(),ht)),g=m(process.cwd()),w=await q_(s,g,Ro(n.positional,1));return process.stdout.write(Q_(w)),w.exitCode}let i=mR(n.command);if(!s.enabled)return i?await fR(n.positional):(process.stdout.write(`${Po()}
158
158
  `),0);if(n.command==="git"&&xo(n.positional)){let m=process.hrtime.bigint();return await se(n,await vo(),m,void 0,await J_(process.cwd()))}let{resolveResidentPaths:o,ResidentRspElisionStore:a,ensureResidentServer:c}=await Promise.resolve().then(()=>(Fe(),ht)),u=o(process.cwd());if(i&&j_(s.measurementHoldoutShare))return await L_(n,u.rootDir,s.measurementHoldoutShare);if(n.command==="server"){let{runResidentServer:m}=await Promise.resolve().then(()=>(Pl(),Ol)),g=o(process.cwd()),w=Oe(n.positional,"--socket")??g.socketPath,y=r(process.cwd(),process.env,n.storeUri??Oe(n.positional,"--store-uri"));return y.enabled?(await m({socketPath:w,pidPath:Oe(n.positional,"--pid-file")??o(process.cwd()).pidPath,rootDir:g.rootDir,storeUri:y.storeUri,ttlDays:U(n.positional,"--ttl-days")??y.ttlDays,ephemeralTtlHours:U(n.positional,"--ephemeral-ttl-hours")??y.ephemeralTtlHours,byteBudget:U(n.positional,"--byte-budget")??y.byteBudget,telemetryTtlDays:U(n.positional,"--telemetry-ttl-days")??y.telemetryTtlDays,telemetryByteBudget:U(n.positional,"--telemetry-byte-budget")??y.telemetryByteBudget,telemetryDrainIntervalMs:U(n.positional,"--telemetry-drain-interval-ms")??y.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:U(n.positional,"--telemetry-drain-timeout-ms")??y.telemetryDrainTimeoutMs,idleMs:U(n.positional,"--idle-ms")??y.idleMs,residentVersion:Oe(n.positional,"--resident-version")??t.version,registryPath:Oe(n.positional,"--registry")??g.registryPath}),0):(process.stdout.write(`${Po()}
159
159
  `),0)}if(n.command==="warm-resident"){let m=o(process.cwd()),g=Oe(n.positional,"--socket")??m.socketPath,w=Oe(n.positional,"--wake-lock")??m.wakeLockPath,y=r(process.cwd(),process.env,n.storeUri??Oe(n.positional,"--store-uri"));if(!y.enabled)return 0;let{warmResidentServer:T}=await Promise.resolve().then(()=>(Fe(),ht));return await T({...m,socketPath:g,wakeLockPath:w},{storeUri:y.storeUri,ttlDays:U(n.positional,"--ttl-days")??y.ttlDays,ephemeralTtlHours:U(n.positional,"--ephemeral-ttl-hours")??y.ephemeralTtlHours,byteBudget:U(n.positional,"--byte-budget")??y.byteBudget,telemetryTtlDays:U(n.positional,"--telemetry-ttl-days")??y.telemetryTtlDays,telemetryByteBudget:U(n.positional,"--telemetry-byte-budget")??y.telemetryByteBudget,telemetryDrainIntervalMs:U(n.positional,"--telemetry-drain-interval-ms")??y.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:U(n.positional,"--telemetry-drain-timeout-ms")??y.telemetryDrainTimeoutMs,idleMs:U(n.positional,"--idle-ms")??y.idleMs,clientVersion:t.version}),0}if(n.command==="proxy"){let{runProxy:m}=await Promise.resolve().then(()=>(Xr(),Zr));return await m(n.positional,{telemetryRoot:u.rootDir,level:n.level})}if(n.command==="status"||n.command==="sweep"){let{residentRegistryStatus:m,sweepResidentRegistry:g}=await Promise.resolve().then(()=>(Fe(),ht)),w=n.command==="sweep"?await g(u):await m(u);return process.stdout.write(`${F(w)}
160
160
  `),0}if(n.command==="gh-api-json"){let{readGhConditionalJson:m}=await Promise.resolve().then(()=>(Gr(),Uu)),g=bR(n.positional);if(!g)return process.stdout.write(N({command:n.positional.join(" "),category:"usage",error:"usage rsp gh-api-json <path> [-f name=value ...]",help:"rsp gh-api-json repos/{owner}/{repo}",validFlags:["-f","-F"]})),2;let w=await m({path:g.path,params:g.params,cwd:process.cwd(),telemetryRoot:u.rootDir,command:`rsp ${n.positional.join(" ")}`});return process.stdout.write(w.stdout),w.stderr&&process.stderr.write(`${w.stderr}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reddb-io/red-skills",
3
- "version": "2.69.0",
3
+ "version": "2.69.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",