@reddb-io/red-skills 2.0.0 → 2.0.1
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/dev.bundle.min.mjs
CHANGED
|
@@ -787,7 +787,7 @@ requeued to ready-for-agent${e.activeBlocker?` (cleared active blocker: ${e.acti
|
|
|
787
787
|
`);let n;try{let i=await Vt("git",["branch","--show-current"],{cwd:t});n=i.code===0&&i.stdout.trim()||void 0}catch{}let o=Hfr(e)??(n?i4(n):void 0);return!o||!n?(process.stderr.write(`[afk] /ship alias: could not infer issue or branch.
|
|
788
788
|
Run manually: red-skills-dev requeue #ISSUE --adopt-branch BRANCH --guidance 'reason'
|
|
789
789
|
`),1):(process.stderr.write(`[afk] /ship alias: routing to requeue #${o} --adopt-branch ${n}
|
|
790
|
-
`),o4([String(o),"--adopt-branch",n,"--guidance","Adopted via deprecated /ship alias (ADR 0081). Update guidance if needed."],t,r))}import{existsSync as mdr,statSync as hdr}from"node:fs";import{join as gdr,basename as Adr}from"node:path";function l4(e){let t={app:e,version:Wfr(Hv("__RED_BUILD_VERSION__",()=>"2.0.
|
|
790
|
+
`),o4([String(o),"--adopt-branch",n,"--guidance","Adopted via deprecated /ship alias (ADR 0081). Update guidance if needed."],t,r))}import{existsSync as mdr,statSync as hdr}from"node:fs";import{join as gdr,basename as Adr}from"node:path";function l4(e){let t={app:e,version:Wfr(Hv("__RED_BUILD_VERSION__",()=>"2.0.1")??"0.0.0-dev"),gitSha:Hv("__RED_BUILD_GIT_SHA__",()=>"e404b2df1ec1b11645e443d3ff187f4f9cc7d325")??"unknown",buildTime:Hv("__RED_BUILD_TIME__",()=>"2026-07-06T11:16:33-03:00")??"unknown",bundleAsset:Hv("__RED_BUNDLE_ASSET__",()=>"dev.bundle.min.mjs")??"unknown"},r=Hv("__REDDB_SDK_VERSION__",()=>""),n=Hv("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function Wfr(e){return e.startsWith("v")?e.slice(1):e}function eut(e){return`${e.app} ${e.version} ${e.gitSha}`}function Hv(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}function f4(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.floor(e/1e3)}k`:String(e)}function tut(e){let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(e>0?e:0)}function rut(e){let t=e.toLowerCase();for(let r of["opus","sonnet","haiku","fable"])if(t.includes(r))return r;return e}function jfr(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return n<24?`${n}h${r%60}m`:`${Math.floor(n/24)}d${n%24}h`}function d4(e){if(e<60)return`${e}s`;let t=Math.floor(e/60);if(t<60)return`${t}m`;let r=Math.floor(t/60),n=t%60;return n>0?`${r}h${n}m`:`${r}h`}function qfr(e){let t=e.basename;if(e.branch){let r=e.branch;return r.length>28&&(r=`${r.slice(0,27)}\u2026`),`${t} (${r})`}return e.detachedSha?`${t} (detached ${e.detachedSha})`:t}function Gfr(e){return!e||!e.model?null:e.effort?`${e.model}\xB7${e.effort}`:e.model}function zfr(e){if(!e)return null;let t=e.contextTokens;if(t===void 0||t===0)return null;let r=f4(t);return e.contextPercent===void 0?r:`${r} ${Math.round(e.contextPercent)}%`}function Vfr(e){if(!e||e.workers<=0)return[];let t=[],r=(i,s)=>{t.push({label:i,value:s,suffix:""})};if(e.workers>0&&r("wrk=",String(e.workers)),e.sourceCounts&&e.sourceCounts.length>0)for(let{origin:i,count:s}of e.sourceCounts)r(`${i}=`,String(s));let n=e.cacheAgeS!==void 0?` (${d4(e.cacheAgeS)})`:"";if(e.queue>0&&t.push({label:"rdy=",value:String(e.queue),suffix:n}),e.human>0){let i=n&&e.queue===0?n:"";t.push({label:"hmn=",value:String(e.human),suffix:i})}e.blocked>0&&r("blk=",String(e.blocked));let o=[];return e.added>0&&o.push(`+${e.added}`),e.removed>0&&o.push(`-${e.removed}`),o.length&&r("loc=",e.locIsPeak?`~${o.join(" ")}`:o.join(" ")),e.waiting!==void 0&&e.waiting>0&&r("wai=",String(e.waiting)),e.tokens!==void 0&&e.tokens>0&&r("tok=",f4(e.tokens)),e.costUsd!==void 0&&e.costUsd>0&&r("usd=",e.costUsd.toFixed(2)),e.issues.forEach((i,s)=>{let a=e.stages?.[s],c=e.aliveMs?.[s],u=a?`\xB7${a}`:"";c!==void 0&&c>0&&(u+=`\xB7${jfr(c)}`),t.push({label:"#",value:String(i),suffix:u})}),t}function Yfr(e){if(!e)return null;let t=[];return e.usage5h!==void 0&&t.push(`5h=${Math.round(e.usage5h)}%`),e.usage7d!==void 0&&t.push(`7d=${Math.round(e.usage7d)}%`),t.length?t.join(" "):null}function Jfr(e){if(!e)return null;let t=[],r=e.cacheAgeS!==void 0?` (${d4(e.cacheAgeS)})`:"";if(e.openPrs&&e.openPrs>0&&t.push(`prs=${e.openPrs}${r}`),e.openIssues&&e.openIssues>0){let o=r&&(!e.openPrs||e.openPrs===0)?r:"";t.push(`iss=${e.openIssues}${o}`)}let n=[];return e.localAdded&&e.localAdded>0&&n.push(`+${e.localAdded}`),e.localRemoved&&e.localRemoved>0&&n.push(`-${e.localRemoved}`),n.length&&t.push(`loc=${n.join(" ")}`),t.length?t.join(" "):null}function Kfr(e){let t=Vfr(e);return t.length===0?null:t.map(r=>`${r.label}${r.value}${r.suffix}`).join(" ")}function nut(e){let t=[qfr(e.project)],r=Gfr(e.claude);r!==null&&t.push(r);let n=zfr(e.claude);n!==null&&t.push(n);let o=Yfr(e.claude);o!==null&&t.push(o);let i=Jfr(e.repo);i!==null&&t.push(i);let s=Kfr(e.afk);return s!==null&&t.push(s),t.join(" \xB7 ")}var Zfr="\x1B[48;2;114;47;55m",Xfr="\x1B[48;2;88;36;42m",out="\x1B[49m",aC="\x1B[38;2;255;255;255m",edr="\x1B[38;2;255;214;214m",tdr="\x1B[39m",Ige="\x1B[38;2;224;138;148m",p4="\x1B[38;2;201;150;158m",rdr="\x1B[38;2;240;200;120m",iut="\x1B[1m",sut="\x1B[22m",aut="\x1B[0m",ndr=28,Gc=(e,t)=>`${edr}${e}=${tdr}${t}${Ige}`;function odr(e,t){let r=[];return e&&e>0&&r.push(`+${e}`),t&&t>0&&r.push(`-${t}`),r.length?r.join(" "):null}function idr(e){let t="";if(e.branch){let n=e.branch.length>ndr?`${e.branch.slice(0,27)}\u2026`:e.branch;t=` ${p4}(${n})${aC}`}else e.detachedSha&&(t=` ${p4}(detached ${e.detachedSha})${aC}`);let r=e.version?` ${p4}v${e.version}${aC}`:"";return`${rdr}\xBB${aC} ${iut}${e.basename}${sut}${t}${r}`}function sdr(e){return!e||!e.model?null:e.effort?`${e.model}${p4}\xB7${aC}${e.effort}`:e.model}function adr(e){if(!e||!e.contextTokens)return null;let t=f4(e.contextTokens),r=e.contextPercent===void 0?t:`${t} ${Math.round(e.contextPercent)}%`;return Gc("ctx",r)}function cdr(e){if(!e)return[];let t=[];return e.usage5h!==void 0&&t.push(Gc("5h",`${Math.round(e.usage5h)}%`)),e.usage7d!==void 0&&t.push(Gc("7d",`${Math.round(e.usage7d)}%`)),t}function udr(e){if(!e)return[];let t=[],r=e.cacheAgeS!==void 0?` (${d4(e.cacheAgeS)})`:"";if(e.openPrs&&e.openPrs>0&&t.push(Gc("prs",String(e.openPrs))+r),e.openIssues&&e.openIssues>0){let n=r&&(!e.openPrs||e.openPrs===0)?r:"";t.push(Gc("iss",String(e.openIssues))+n)}return t}function ldr(e){if(!e)return[];let t=odr(e.localAdded,e.localRemoved);return t?[Gc("loc",t)]:[]}function fdr(e,t,r){let n=`${Xfr}${aC} ${idr(e)} `,o=sdr(t);o!==null&&(n+=`${Zfr}${aC} ${o} `),n+=`${out}${Ige}`;let i=[adr(t),...cdr(t),...udr(r),...ldr(r)].filter(s=>s!==null);return i.length&&(n+=` ${i.join(" ")}`),`${n}${aut}`}function ddr(e,t){let r=hct(e,t),n=[r.runner,r.model?rut(r.model):void 0,r.effort].filter(i=>!!i).join(" "),o=[];return o.push(`${iut}${r.workerId}${sut}`),o.push(Gc("run",n)),r.issue!==null&&(o.push(Gc("iss",String(r.issue))),r.stage&&o.push(r.stage)),o.push(r.elapsed),o.push(Gc("loc",t4(r.added,r.removed))),o.push(Gc("tks",tut(r.tokens))),o.push(`${Gc("tls",String(r.tools))} ${Gc("rsn",String(r.reasoning))} ${Gc("txt",String(r.text))}`),`${out}${Ige}${o.join(" ")}${aut}`}function pdr(e,t={}){let r=[fdr(e.project,e.claude,e.repo)],n=t.now??0;for(let o of t.workers??[])r.push(ddr(o,n));return r.join(`
|
|
791
791
|
`)}function cut(e,t,r={}){return t?pdr(e,r):nut(e)}Yo();function ydr(e){return new Promise(t=>{if(e.isTTY){t("");return}let r="",n=!1,o=()=>{n||(n=!0,t(r))};e.setEncoding("utf8"),e.on("data",i=>{r+=i}),e.on("end",o),e.on("error",o),e.on("close",o)})}function xdr(e){if(!e.trim())return{};try{let t=JSON.parse(e);return typeof t=="object"&&t!==null?t:{}}catch{return{}}}function Edr(e){try{return hdr(e).isDirectory()}catch{return!1}}function bdr(e,t,r){if(e&&Edr(e))return e;let n=t.workspace?.project_dir||t.workspace?.current_dir||t.cwd;return n||r}function Sdr(e){let t=gdr(e,".red","config.yaml");if(!mdr(t))return!0;let r=nn(t,{warn:()=>{}});return!(ut(r,"statusline")==="false"||ut(r,"afk.statusline")==="false")}async function Cdr(e){let t={cwd:e},r=l4("dev").version,n={basename:Adr(e),version:r},o=await dN(t);if(o)return{...n,branch:o};let i=await Wh(t);return i?{...n,detachedSha:i}:n}function Idr(e){let t=e.model?.display_name,r=e.effort?.level,n=e.context_window?.total_input_tokens,o=e.context_window?.used_percentage,i=e.rate_limits?.five_hour?.used_percentage,s=e.rate_limits?.seven_day?.used_percentage;if(!(t===void 0&&n===void 0&&i===void 0&&s===void 0))return{model:t||void 0,effort:r||void 0,contextTokens:n,contextPercent:o,usage5h:i,usage7d:s}}async function uut(e,t=process.cwd(),r=process.stdout,n=process.stdin){let o=e[0],i=await ydr(n),s=xdr(i),a=bdr(o,s,t);if(!Sdr(a))return 0;let c=await Cdr(a),u=Idr(s),l={root:a,repo:"",remote:"origin"},[f,d,p]=await Promise.all([Not(l),Qot(l).then(E=>E??void 0),Oot(l)]),m=!process.env.NO_COLOR,g=Number.parseInt(process.env.COLUMNS??"",10),x=Math.floor(Date.now()/1e3),A=cut({project:c,claude:u,repo:f,afk:d},m,{columns:Number.isFinite(g)&&g>0?g:void 0,workers:p,now:x});return r.write(`${A}
|
|
792
792
|
`),0}AC();import{spawn as Cut}from"node:child_process";import{existsSync as vge,openSync as wut,closeSync as Qdr,writeFileSync as kut,writeSync as Odr,rmSync as Rge,renameSync as Ndr}from"node:fs";import{join as cC}from"node:path";import{existsSync as wdr,readdirSync as wge,readFileSync as m4,statSync as put}from"node:fs";import{join as Ya}from"node:path";kp();function kdr(e,t){return Ya(e,`afk-supervisor-slot-${t}.log`)}function vdr(e){let t;try{t=m4(e,"utf8")}catch{return[]}let r=[],n=new Set;for(let o of t.split(`
|
|
793
793
|
`)){let i=o.match(/^\[afk\] worker: (w[A-Z0-9]+)$/);if(!i)continue;let s=i[1];n.has(s)||(n.add(s),r.push(s))}return r}function lut(e,t){let r=EN(e,t),n;try{n=wge(r)}catch{return[]}let o=[];for(let i of n){let s=Ya(r,i);try{put(s).isDirectory()&&o.push(s)}catch{}}return o}function fut(e){let r=WS(Ya(e,"afk.state.json"))?.state.current.number;return typeof r=="number"&&Number.isInteger(r)?r:null}function kge(e,t){if(t===null||!Number.isInteger(t)||t<=0)return null;let r=Ya(e,"workers"),n;try{n=wge(r)}catch{return null}for(let o of n){let i=Ya(r,o),s;try{s=m4(Ya(i,"worker.pid"),"utf8").trim()}catch{continue}if(Number(s)!==t)continue;let a;try{a=wge(i)}catch{return null}let c=null,u=-1;for(let l of a){let f=Ya(i,l);try{let d=put(f);if(!d.isDirectory())continue;let p=d.mtimeMs;p>u&&(u=p,c=f)}catch{}}return c}return null}function mut(e,t,r){let n=kge(e,t);if(n===null)return null;let o;try{let c=m4(Ya(n,Ky),"utf-8"),u=Uh(c);u.length>0&&(o=u.reduce((l,f)=>f.at>l?f.at:l,u[0].at))}catch{}let{crossCheckArmed:i}=Zy({sandboxTag:"none"}),s=0;try{let c=WS(Ya(n,"afk.state.json"));c!==null&&(s=c.state.pid)}catch{}let a=i&&s>0?ex({agentPid:s}):void 0;try{return Xy({laneRecencyMs:o,now:Date.now(),laneIdleMs:r,crossCheckArmed:i,hasLiveDescendants:a})}catch{return null}}function dut(e,t){let r;try{r=m4(e,"utf8")}catch{return""}let n=r.split(`
|
|
@@ -6508,7 +6508,7 @@ Usage:
|
|
|
6508
6508
|
${r} archive --candidate <json> [--root <dir>] [--archive-dir <rel>]
|
|
6509
6509
|
${r} restore <name> [--root <dir>] [--archive-dir <rel>]`}function rL(r){return Imr(typeof r.root=="string"?r.root:process.cwd())}function pct(r){return typeof r["archive-dir"]=="string"?r["archive-dir"]:void 0}async function KW(r){let s=await Mu(r);return s?s.mode!=="graph"?{ok:!1,message:`curate: skill telemetry needs graph mode (this project is "${s.mode}") \u2014 run \`${oDe}\``}:lh(s)?{ok:!0}:{ok:!1,message:`curate: skill telemetry is not enabled here \u2014 run \`${oDe}\``}:{ok:!1,message:`curate: memory is not initialized here \u2014 run \`${oDe}\``}}function Omr(){let r=Nmr(Rmr(import.meta.url));return r.includes("dist/curate-skill")||r.endsWith("dist/curate-skill")?dct(r,"..","cli.js"):dct(r,"..","cli.ts")}async function Mmr(r,s){let l=["curate","skills","--json"];s!==void 0&&l.push("--stale-days",String(s));let f=Omr(),v=f.endsWith(".ts")?uct(process.execPath,["--import","tsx",f,...l,"--root",r],{encoding:"utf8"}):uct(process.execPath,[f,...l,"--root",r],{encoding:"utf8"}),T=v.status??1;if(T!==0)throw new Error(`memory curate skills exited ${T}`);return act(v.stdout??"")}function Fmr(r){return typeof r.flags["stale-days"]=="string"?Number(r.flags["stale-days"]):void 0}async function _ct(r,s){return(s.loadCuratorReport??Mmr)(rL(r.flags),Fmr(r))}async function Lmr(r){let s=rL(r.flags),l=await KW(s);return l.ok?(console.log("curate: skill telemetry is enabled \u2014 ready to curate"),0):(console.error(l.message),2)}async function jmr(r,s){let l=rL(r.flags),f=await KW(l);if(!f.ok)return console.error(f.message),2;let _;try{_=await _ct(r,s)}catch(B){return console.error(`curate: ${B.message}`),1}let{candidates:v,byCategory:T,filtered:N}=nDe(_);return console.log(JSON.stringify({candidates:v,byCategory:T,filtered:N,totals:{totalSkills:_.totalSkills,curatableSkills:_.curatableSkills,readOnlySkills:_.readOnlySkills}},null,2)),0}async function $mr(r,s){let l=rL(r.flags),f=await KW(l);if(!f.ok)return console.error(f.message),2;let _;try{_=await _ct(r,s)}catch(B){return console.error(`curate: ${B.message}`),1}let{byCategory:v}=nDe(_);if(iDe(v)===0)return console.error("curate: no candidates \u2014 no issue filed"),0;let T=typeof r.flags.label=="string"?r.flags.label:void 0,N=await lct({byCategory:v,totals:{totalSkills:_.totalSkills,curatableSkills:_.curatableSkills,readOnlySkills:_.readOnlySkills},generatedAt:_.generatedAt},{cwd:l,label:T});return console.log(`curate: filed background issue \u2014 ${N.output||N.title}`),0}async function Bmr(r){let s=rL(r.flags),l=await KW(s);if(!l.ok)return console.error(l.message),2;let f=r.flags.candidate;if(typeof f!="string")return console.error("curate archive: --candidate <json> is required"),2;let _;try{_=JSON.parse(f)}catch(T){return console.error(`curate archive: invalid --candidate JSON: ${T.message}`),2}let v=await oct(_,{rootDir:s,archiveDir:pct(r.flags)});return v.ok?(console.log(`curate: archived "${v.receipt.name}" \u2192 ${v.receipt.archiveRoot} (${v.receipt.files.length} file(s), manifest at ${v.receipt.manifestPath})`),0):(console.error(`curate archive: refused \u2014 ${v.rejection.reason}: ${v.rejection.detail}`),3)}async function Jmr(r){let s=rL(r.flags),l=await KW(s);if(!l.ok)return console.error(l.message),2;let f=r.positional[0];if(!f)return console.error("curate restore: skill name is required"),2;let _=await sct(f,{rootDir:s,archiveDir:pct(r.flags)});return console.log(`curate: restored "${_.name}" \u2192 ${_.restoredRoot} (${_.files.length} file(s) hash-verified)`),0}async function mct(r,s={}){switch(r.command){case"check":return Lmr(r);case"list":return jmr(r,s);case"background":return $mr(r,s);case"archive":return Bmr(r);case"restore":return Jmr(r);case void 0:case"--help":case"-h":return console.log(fct(s.usageCommand)),0;default:return console.error(`unknown curate subcommand: ${r.command}
|
|
6510
6510
|
|
|
6511
|
-
${fct(s.usageCommand)}`),2}}function gct(r){let s={app:r,version:zmr(nL("__RED_BUILD_VERSION__",()=>"2.0.
|
|
6511
|
+
${fct(s.usageCommand)}`),2}}function gct(r){let s={app:r,version:zmr(nL("__RED_BUILD_VERSION__",()=>"2.0.1")??"0.0.0-dev"),gitSha:nL("__RED_BUILD_GIT_SHA__",()=>"e404b2df1ec1b11645e443d3ff187f4f9cc7d325")??"unknown",buildTime:nL("__RED_BUILD_TIME__",()=>"2026-07-06T11:16:33-03:00")??"unknown",bundleAsset:nL("__RED_BUNDLE_ASSET__",()=>"memory.bundle.min.mjs")??"unknown"},l=nL("__REDDB_SDK_VERSION__",()=>"1.7.0"),f=nL("__REDDB_BINARY_TAG__",()=>"v1.7.0");return l&&(s.reddbSdkVersion=l),f&&(s.reddbBinaryTag=f),s}function zmr(r){return r.startsWith("v")?r.slice(1):r}function hct(r){return`${r.app} ${r.version} ${r.gitSha}`}function nL(r,s){try{let l=s();return typeof l=="string"&&l.length>0?l:void 0}catch{return process.env[r.replace(/^__|__$/g,"")]}}var yct=`memory \u2014 governed operational memory for code agents
|
|
6512
6512
|
|
|
6513
6513
|
Common workflows:
|
|
6514
6514
|
remember one fact memory store "Decision: ..."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reddb-io/red-skills",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "RedSkills plugin runtime bundles (dev, 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",
|