@reddb-io/red-skills 2.9.0 → 2.11.0
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
|
@@ -810,7 +810,7 @@ requeued to ready-for-agent${e.activeBlocker?` (cleared active blocker: ${e.acti
|
|
|
810
810
|
`);let n;try{let i=await $t("git",["branch","--show-current"],{cwd:t});n=i.code===0&&i.stdout.trim()||void 0}catch{}let o=ihr(e)??(n?W4(n):void 0);return!o||!n?(process.stderr.write(`[afk] /ship alias: could not infer issue or branch.
|
|
811
811
|
Run manually: red-skills-dev requeue #ISSUE --adopt-branch BRANCH --guidance 'reason'
|
|
812
812
|
`),1):(process.stderr.write(`[afk] /ship alias: routing to requeue #${o} --adopt-branch ${n}
|
|
813
|
-
`),H4([String(o),"--adopt-branch",n,"--guidance","Adopted via deprecated /ship alias (ADR 0081). Update guidance if needed."],t,r))}import{existsSync as Mhr,statSync as Fhr}from"node:fs";import{join as cdt,basename as Phr}from"node:path";function V4(e){let t={app:e,version:shr(lR("__RED_BUILD_VERSION__",()=>"2.
|
|
813
|
+
`),H4([String(o),"--adopt-branch",n,"--guidance","Adopted via deprecated /ship alias (ADR 0081). Update guidance if needed."],t,r))}import{existsSync as Mhr,statSync as Fhr}from"node:fs";import{join as cdt,basename as Phr}from"node:path";function V4(e){let t={app:e,version:shr(lR("__RED_BUILD_VERSION__",()=>"2.11.0")??"0.0.0-dev"),gitSha:lR("__RED_BUILD_GIT_SHA__",()=>"81c4b00928917f4b5c50c13dd758cca18ccd234f")??"unknown",buildTime:lR("__RED_BUILD_TIME__",()=>"2026-07-08T17:26:13-03:00")??"unknown",bundleAsset:lR("__RED_BUNDLE_ASSET__",()=>"dev.bundle.min.mjs")??"unknown"},r=lR("__REDDB_SDK_VERSION__",()=>""),n=lR("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function shr(e){return e.startsWith("v")?e.slice(1):e}function Jlt(e){return`${e.app} ${e.version} ${e.gitSha}`}function lR(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}function Y4(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.floor(e/1e3)}k`:String(e)}function Klt(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 Zlt(e){let t=e.toLowerCase();for(let r of["opus","sonnet","haiku","fable"])if(t.includes(r))return r;return e}function ahr(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 J4(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 chr(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 uhr(e){return!e||!e.model?null:e.effort?`${e.model}\xB7${e.effort}`:e.model}function lhr(e){if(!e)return null;let t=e.contextTokens;if(t===void 0||t===0)return null;let r=Y4(t);return e.contextPercent===void 0?r:`${r} ${Math.round(e.contextPercent)}%`}function dhr(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?` (${J4(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=",Y4(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${ahr(c)}`),t.push({label:"#",value:String(i),suffix:u})}),t}function fhr(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 phr(e){if(!e)return null;let t=[],r=e.cacheAgeS!==void 0?` (${J4(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 mhr(e){let t=dhr(e);return t.length===0?null:t.map(r=>`${r.label}${r.value}${r.suffix}`).join(" ")}function Xlt(e){let t=[chr(e.project)],r=uhr(e.claude);r!==null&&t.push(r);let n=lhr(e.claude);n!==null&&t.push(n);let o=fhr(e.claude);o!==null&&t.push(o);let i=phr(e.repo);i!==null&&t.push(i);let s=mhr(e.afk);return s!==null&&t.push(s),t.join(" \xB7 ")}var hhr="\x1B[48;2;114;47;55m",ghr="\x1B[48;2;88;36;42m",edt="\x1B[49m",xC="\x1B[38;2;255;255;255m",tdt="\x1B[38;2;255;214;214m",rdt="\x1B[39m",Z4="\x1B[38;2;224;138;148m",K4="\x1B[38;2;201;150;158m",Ahr="\x1B[38;2;240;200;120m",ndt="\x1B[1m",odt="\x1B[22m",idt="\x1B[0m",yhr=28,xhr=" ",IAe=["workerId","run","org","iss","stage","elapsed","loc","tks","tls","rsn","txt"],Ehr=e=>e.replace(/\x1b\[[0-9;]*m/g,"");function sdt(e){return Ehr(e).length}function bhr(e,t){return e+" ".repeat(Math.max(0,t-sdt(e)))}var dR=(e,t)=>`${tdt}${e}=${rdt}${t}${Z4}`;function Shr(e,t){let r=[];return e&&e>0&&r.push(`+${e}`),t&&t>0&&r.push(`-${t}`),r.length?r.join(" "):null}function Chr(e){let t="";if(e.branch){let n=e.branch.length>yhr?`${e.branch.slice(0,27)}\u2026`:e.branch;t=` ${K4}(${n})${xC}`}else e.detachedSha&&(t=` ${K4}(detached ${e.detachedSha})${xC}`);let r=e.version?` ${K4}v${e.version}${xC}`:"";return`${Ahr}\xBB${xC} ${ndt}${e.basename}${odt}${t}${r}`}function Ihr(e){return!e||!e.model?null:e.effort?`${e.model}${K4}\xB7${xC}${e.effort}`:e.model}function whr(e){if(!e||!e.contextTokens)return null;let t=Y4(e.contextTokens),r=e.contextPercent===void 0?t:`${t} ${Math.round(e.contextPercent)}%`;return dR("ctx",r)}function khr(e){if(!e)return[];let t=[];return e.usage5h!==void 0&&t.push(dR("5h",`${Math.round(e.usage5h)}%`)),e.usage7d!==void 0&&t.push(dR("7d",`${Math.round(e.usage7d)}%`)),t}function vhr(e){if(!e)return[];let t=[],r=e.cacheAgeS!==void 0?` (${J4(e.cacheAgeS)})`:"";if(e.openPrs&&e.openPrs>0&&t.push(dR("prs",String(e.openPrs))+r),e.openIssues&&e.openIssues>0){let n=r&&(!e.openPrs||e.openPrs===0)?r:"";t.push(dR("iss",String(e.openIssues))+n)}return t}function Rhr(e){if(!e)return[];let t=Shr(e.localAdded,e.localRemoved);return t?[dR("loc",t)]:[]}function Bhr(e,t,r){let n=`${ghr}${xC} ${Chr(e)} `,o=Ihr(t);o!==null&&(n+=`${hhr}${xC} ${o} `),n+=`${edt}${Z4}`;let i=[whr(t),...khr(t),...vhr(r),...Rhr(r)].filter(s=>s!==null);return i.length&&(n+=` ${i.join(" ")}`),`${n}${idt}`}function _hr(e,t){let r=ilt(e,t),n=[r.runner,r.model?Zlt(r.model):void 0,r.effort].filter(o=>!!o).join(" ");return{workerId:r.workerId,run:`run=${n}`,org:`org=${r.origin||"afk"}`,iss:r.issue===null?"":`iss=${String(r.issue)}`,stage:r.issue===null?"":r.stage,elapsed:r.elapsed,loc:`loc=${L4(r.added,r.removed)}`,tks:`tks=${Klt(r.tokens)}`,tls:`tls=${String(r.tools)}`,rsn:`rsn=${String(r.reasoning)}`,txt:`txt=${String(r.text)}`}}function Thr(e){let t=Object.fromEntries(IAe.map(r=>[r,0]));for(let r of e)for(let n of IAe)t[n]=Math.max(t[n],sdt(r[n]));return t}function Dhr(e,t){if(e==="workerId")return`${ndt}${t}${odt}`;let r=t.indexOf("=");return r>0?`${tdt}${t.slice(0,r+1)}${rdt}${t.slice(r+1)}${Z4}`:t}function Qhr(e,t){let r=IAe.map(n=>Dhr(n,bhr(e[n],t[n])));return`${edt}${Z4}${r.join(xhr)}${idt}`}function Ohr(e,t){let r=e.map(o=>_hr(o,t)),n=Thr(r);return r.map(o=>Qhr(o,n))}function Nhr(e,t={}){let r=[Bhr(e.project,e.claude,e.repo)],n=t.now??0;return r.push(...Ohr(t.workers??[],n)),r.join(`
|
|
814
814
|
`)}function adt(e,t,r={}){return t?Nhr(e,r):Xlt(e)}Qo();function Lhr(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 Uhr(e){if(!e.trim())return{};try{let t=JSON.parse(e);return typeof t=="object"&&t!==null?t:{}}catch{return{}}}function $hr(e){try{return Fhr(e).isDirectory()}catch{return!1}}function Hhr(e,t,r){if(e&&$hr(e))return e;let n=t.workspace?.project_dir||t.workspace?.current_dir||t.cwd;return n||r}function Whr(e){let t=cdt(e,".red","config.yaml");if(!Mhr(t))return!0;let r=br(t,{warn:()=>{}});return!(rt(r,"statusline")==="false"||rt(r,"afk.statusline")==="false")}async function jhr(e){let t={cwd:e},r=V4("dev").version,n={basename:Phr(e),version:r},o=await HN(t);if(o)return{...n,branch:o};let i=await eg(t);return i?{...n,detachedSha:i}:n}function qhr(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 udt(e,t=process.cwd(),r=process.stdout,n=process.stdin){if(e.includes("--legend"))return r.write(`${U4()}
|
|
815
815
|
`),0;let o=e[0],i=await Lhr(n),s=Uhr(i),a=Hhr(o,s,t);if(!Whr(a))return 0;let c=await jhr(a),u=qhr(s),l={root:a,repo:qv(a),remote:"origin"},d=br(cdt(a,".red","config.yaml"),{warn:()=>{}}),f=YV(process.env,I=>rt(d,I)),[p,m,g]=await Promise.all([pst(l,f),dst(l,f).then(I=>I??void 0),fst(l)]),A=!process.env.NO_COLOR,E=Number.parseInt(process.env.COLUMNS??"",10),y=Math.floor(Date.now()/1e3),b=adt({project:c,claude:u,repo:p,afk:m},A,{columns:Number.isFinite(E)&&E>0?E:void 0,workers:g,now:y});return r.write(`${b}
|
|
816
816
|
`),0}async function ldt(e,t=process.cwd()){let r=e[0]??t,n="",o="";for(let i=1;i<e.length;i+=1){let s=e[i];s==="--repo"?n=e[++i]??"":s==="--lock"&&(o=e[++i]??"")}return await lst(r,n||qv(r),o||void 0),0}RC();import{spawn as wdt}from"node:child_process";import{existsSync as kAe,openSync as vdt,closeSync as egr,writeFileSync as Rdt,writeSync as tgr,rmSync as vAe,renameSync as rgr}from"node:fs";import{join as EC}from"node:path";import{existsSync as Ghr,readdirSync as IM,readFileSync as X4,statSync as mdt}from"node:fs";import{join as is}from"node:path";$d();function zhr(e,t){return is(e,`afk-supervisor-slot-${t}.log`)}function Vhr(e){let t;try{t=X4(e,"utf8")}catch{return[]}let r=[],n=new Set;for(let o of t.split(`
|
|
@@ -6515,7 +6515,7 @@ Usage:
|
|
|
6515
6515
|
${r} archive --candidate <json> [--root <dir>] [--archive-dir <rel>]
|
|
6516
6516
|
${r} restore <name> [--root <dir>] [--archive-dir <rel>]`}function nL(r){return ygr(typeof r.root=="string"?r.root:process.cwd())}function Dct(r){return typeof r["archive-dir"]=="string"?r["archive-dir"]:void 0}async function YW(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 \`${_De}\``}:uh(s)?{ok:!0}:{ok:!1,message:`curate: skill telemetry is not enabled here \u2014 run \`${_De}\``}:{ok:!1,message:`curate: memory is not initialized here \u2014 run \`${_De}\``}}function bgr(){let r=hgr(vgr(import.meta.url));return r.includes("dist/curate-skill")||r.endsWith("dist/curate-skill")?Ect(r,"..","cli.js"):Ect(r,"..","cli.ts")}async function Sgr(r,s){let l=["curate","skills","--json"];s!==void 0&&l.push("--stale-days",String(s));let f=bgr(),v=f.endsWith(".ts")?Cct(process.execPath,["--import","tsx",f,...l,"--root",r],{encoding:"utf8"}):Cct(process.execPath,[f,...l,"--root",r],{encoding:"utf8"}),T=v.status??1;if(T!==0)throw new Error(`memory curate skills exited ${T}`);return kct(v.stdout??"")}function xgr(r){return typeof r.flags["stale-days"]=="string"?Number(r.flags["stale-days"]):void 0}async function Act(r,s){return(s.loadCuratorReport??Sgr)(nL(r.flags),xgr(r))}async function kgr(r){let s=nL(r.flags),l=await YW(s);return l.ok?(console.log("curate: skill telemetry is enabled \u2014 ready to curate"),0):(console.error(l.message),2)}async function wgr(r,s){let l=nL(r.flags),f=await YW(l);if(!f.ok)return console.error(f.message),2;let _;try{_=await Act(r,s)}catch(B){return console.error(`curate: ${B.message}`),1}let{candidates:v,byCategory:T,filtered:N}=fDe(_);return console.log(JSON.stringify({candidates:v,byCategory:T,filtered:N,totals:{totalSkills:_.totalSkills,curatableSkills:_.curatableSkills,readOnlySkills:_.readOnlySkills}},null,2)),0}async function Tgr(r,s){let l=nL(r.flags),f=await YW(l);if(!f.ok)return console.error(f.message),2;let _;try{_=await Act(r,s)}catch(B){return console.error(`curate: ${B.message}`),1}let{byCategory:v}=fDe(_);if(pDe(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 Tct({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 Cgr(r){let s=nL(r.flags),l=await YW(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 Sct(_,{rootDir:s,archiveDir:Dct(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 Egr(r){let s=nL(r.flags),l=await YW(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 xct(f,{rootDir:s,archiveDir:Dct(r.flags)});return console.log(`curate: restored "${_.name}" \u2192 ${_.restoredRoot} (${_.files.length} file(s) hash-verified)`),0}async function Nct(r,s={}){switch(r.command){case"check":return kgr(r);case"list":return wgr(r,s);case"background":return Tgr(r,s);case"archive":return Cgr(r);case"restore":return Egr(r);case void 0:case"--help":case"-h":return console.log(Pct(s.usageCommand)),0;default:return console.error(`unknown curate subcommand: ${r.command}
|
|
6517
6517
|
|
|
6518
|
-
${Pct(s.usageCommand)}`),2}}function Ict(r){let s={app:r,version:Pgr(iL("__RED_BUILD_VERSION__",()=>"2.
|
|
6518
|
+
${Pct(s.usageCommand)}`),2}}function Ict(r){let s={app:r,version:Pgr(iL("__RED_BUILD_VERSION__",()=>"2.11.0")??"0.0.0-dev"),gitSha:iL("__RED_BUILD_GIT_SHA__",()=>"81c4b00928917f4b5c50c13dd758cca18ccd234f")??"unknown",buildTime:iL("__RED_BUILD_TIME__",()=>"2026-07-08T17:26:13-03:00")??"unknown",bundleAsset:iL("__RED_BUNDLE_ASSET__",()=>"memory.bundle.min.mjs")??"unknown"},l=iL("__REDDB_SDK_VERSION__",()=>"1.7.0"),f=iL("__REDDB_BINARY_TAG__",()=>"v1.7.0");return l&&(s.reddbSdkVersion=l),f&&(s.reddbBinaryTag=f),s}function Pgr(r){return r.startsWith("v")?r.slice(1):r}function Rct(r){return`${r.app} ${r.version} ${r.gitSha}`}function iL(r,s){try{let l=s();return typeof l=="string"&&l.length>0?l:void 0}catch{return process.env[r.replace(/^__|__$/g,"")]}}var Oct=`memory \u2014 governed operational memory for code agents
|
|
6519
6519
|
|
|
6520
6520
|
Common workflows:
|
|
6521
6521
|
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.
|
|
3
|
+
"version": "2.11.0",
|
|
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",
|