@rulemetric/cli 0.16.0 → 0.17.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/chunk-2PO5I3XR.js +1 -0
- package/dist/chunk-3MYCWZ63.js +1 -0
- package/dist/chunk-4ZDE63UG.js +1 -0
- package/dist/{chunk-D4FP5M2B.js → chunk-AKCCNLHL.js} +1 -1
- package/dist/{chunk-TU2AR6XO.js → chunk-B22HYCBV.js} +1 -1
- package/dist/chunk-CDSSOOIG.js +1 -0
- package/dist/{chunk-MMMT34KO.js → chunk-CPDW7WW2.js} +10 -10
- package/dist/{chunk-GDLQNY4V.js → chunk-EMZFZCS4.js} +1 -1
- package/dist/chunk-F5GSKVF2.js +1 -0
- package/dist/{chunk-HYQ5YKBC.js → chunk-FCALFMZV.js} +1 -1
- package/dist/{chunk-RIYVZDOQ.js → chunk-FHRBW4AQ.js} +1 -1
- package/dist/{chunk-XQCGAPLN.js → chunk-IMN4BWAR.js} +1 -1
- package/dist/chunk-KUW6AVSI.js +1 -0
- package/dist/{chunk-IG4JMWFK.js → chunk-QXPGTEMO.js} +1 -1
- package/dist/{chunk-WOANSBMJ.js → chunk-RDQXK5LG.js} +1 -1
- package/dist/chunk-STUNT4N3.js +1 -0
- package/dist/chunk-SW24KZ5C.js +1 -0
- package/dist/chunk-VBGHPAUT.js +2 -0
- package/dist/{chunk-NBTC5FNV.js → chunk-X23L2MF6.js} +1 -1
- package/dist/chunk-XFOG2PDJ.js +1 -0
- package/dist/{chunk-6T6YFPBW.js → chunk-ZBTJ5R7C.js} +1 -1
- package/dist/chunk-ZLBYYLJZ.js +3 -0
- package/dist/commands/evals/agent.js +1 -1
- package/dist/commands/research/resume-scoped-outcomes.js +1 -0
- package/dist/commands/sessions/list.js +1 -1
- package/dist/commands/suggestions/accept.js +1 -1
- package/dist/commands/suggestions/undo.js +1 -1
- package/dist/dashboard/Dashboard.js +1 -1
- package/dist/dashboard/data.js +1 -1
- package/dist/dashboard/launcher/ActiveJobsList.js +1 -1
- package/dist/dashboard/launcher/LauncherOverlay.js +1 -1
- package/dist/dashboard/launcher/NewLaunchForm.js +1 -1
- package/dist/{dist-UAAG2IWQ.js → dist-5647V2E7.js} +1 -1
- package/dist/lib/agent-loop.js +1 -1
- package/dist/lib/agent-presence.js +1 -0
- package/dist/lib/instructions/acceptance/accept-hook.js +1 -1
- package/dist/lib/instructions/acceptance/suggestion-accept.js +1 -1
- package/dist/lib/jobs/handlers/cron-auto-accept-suggestions.js +1 -1
- package/dist/lib/jobs/handlers/cron-reconcile-attribution.js +1 -1
- package/dist/lib/jobs/handlers/cron-refresh-skills.js +1 -1
- package/dist/lib/jobs/handlers/finalize-scoped-launch.js +1 -1
- package/dist/lib/jobs/handlers/prepare-suggestion-live.js +1 -1
- package/dist/lib/jobs/handlers/process-eval.js +1 -1
- package/dist/lib/jobs/handlers/process-launch.js +1 -1
- package/dist/lib/jobs/handlers/process-run-cleanup.js +1 -1
- package/dist/lib/jobs/handlers/process-suggestion-eval.js +1 -1
- package/dist/lib/manual-tasks.js +1 -1
- package/dist/lib/projects/workspace/worktree.js +1 -1
- package/dist/lib/scoped-outcome-store.js +1 -0
- package/dist/lib/work-report.js +1 -1
- package/oclif.manifest.json +43 -1
- package/package.json +6 -6
- package/dist/chunk-3WCX2SLU.js +0 -1
- package/dist/chunk-CZBO3A6B.js +0 -3
- package/dist/chunk-EHW2KS6R.js +0 -1
- package/dist/chunk-I6W2KC6W.js +0 -1
- package/dist/chunk-OCCJEWOF.js +0 -1
- package/dist/chunk-PZS55PW2.js +0 -1
- package/dist/chunk-TTZWVZIW.js +0 -1
- package/dist/chunk-U3YPVLM3.js +0 -1
- package/dist/chunk-XXPWPKTD.js +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as G,b as V,c as j,d as q}from"../../chunk-J4W6GNCF.js";import{b as M}from"../../chunk-GH4EZK2O.js";import{c as g}from"../../chunk-HTAHNQZJ.js";import{e as D}from"../../chunk-
|
|
1
|
+
import{a as G,b as V,c as j,d as q}from"../../chunk-J4W6GNCF.js";import{b as M}from"../../chunk-GH4EZK2O.js";import{c as g}from"../../chunk-HTAHNQZJ.js";import{e as D}from"../../chunk-3MYCWZ63.js";import"../../chunk-5TM7AOH2.js";import"../../chunk-IEQDLURA.js";import"../../chunk-KINIFUZQ.js";import"../../chunk-KOORMTZO.js";import"../../chunk-Q7IDLOSP.js";import"../../chunk-2PO5I3XR.js";import"../../chunk-TQM7MF5C.js";import"../../chunk-RDQXK5LG.js";import"../../chunk-QXPGTEMO.js";import"../../chunk-ZYGBABMZ.js";import"../../chunk-GIQ2HK3W.js";import"../../chunk-STUNT4N3.js";import"../../chunk-E4CIJ67Z.js";import"../../chunk-FZMO7XSN.js";import"../../chunk-MOJY6S5J.js";import"../../chunk-KUW6AVSI.js";import"../../chunk-5A6TMSRO.js";import"../../chunk-FCALFMZV.js";import"../../chunk-JU5ZNXPK.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-VBGHPAUT.js";import"../../chunk-GGUXEZC3.js";import"../../chunk-ZLBYYLJZ.js";import"../../chunk-USKRCVX3.js";import"../../chunk-7YZURVZD.js";import"../../chunk-SW24KZ5C.js";import"../../chunk-QPAOX7P2.js";import"../../chunk-3ZHVP3KE.js";import"../../chunk-EFEPD4AZ.js";import"../../chunk-HOQPVOMF.js";import"../../chunk-AKCCNLHL.js";import"../../chunk-CVPAKEEZ.js";import"../../chunk-VUNJGZPP.js";import"../../chunk-GLBWNB2N.js";import"../../chunk-CQD2R3BA.js";import"../../chunk-3UKZJAFS.js";import"../../chunk-77FH6UZP.js";import"../../chunk-KE5K3F7J.js";import"../../chunk-WL34G6IR.js";import"../../chunk-KR36ZDGN.js";import"../../chunk-GIRPEMTW.js";import"../../chunk-DQYYHX6K.js";import"../../chunk-4ZDE63UG.js";import"../../chunk-F5GSKVF2.js";import"../../chunk-PIVEJTNF.js";import"../../chunk-FHRBW4AQ.js";import"../../chunk-ZBTJ5R7C.js";import"../../chunk-DANMUHNW.js";import"../../chunk-ISYU5BMU.js";import"../../chunk-CPDW7WW2.js";import"../../chunk-CDSSOOIG.js";import"../../chunk-XFOG2PDJ.js";import"../../chunk-SIGZEQ3K.js";import"../../chunk-FXQS7AEZ.js";import"../../chunk-LJRE3LZ2.js";import"../../chunk-TSLBCZ5P.js";import"../../chunk-65LFPUDB.js";import"../../chunk-HBDKOU2N.js";import"../../chunk-3H44B6PB.js";import"../../chunk-6UEFCMR2.js";import"../../chunk-MODXEGCU.js";import"../../chunk-MHVHGKDK.js";import"../../chunk-RBSEE2Z6.js";import"../../chunk-PDXHRF4E.js";import"../../chunk-KGU2IW54.js";import"../../chunk-M7QSC64D.js";import"../../chunk-ZKPURXUS.js";import"../../chunk-ISEUEYSC.js";import"../../chunk-GYKYJJNF.js";import"../../chunk-G7V4ZZZ3.js";import"../../chunk-LJE5J3EW.js";import"../../chunk-AHLVY52I.js";import"../../chunk-YXMAGC53.js";import"../../chunk-T7HZZ4DJ.js";import"../../chunk-DHIEGG4T.js";import"../../chunk-PPAHIVG5.js";import"../../chunk-5MXZJWQS.js";import"../../chunk-CT7FWSIU.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-OZQNSELV.js";import"../../chunk-HFGO5762.js";import"../../chunk-VS5ROGDP.js";import"../../chunk-FADINV4H.js";import"../../chunk-SWSOEYC7.js";import"../../chunk-U2NT5OSQ.js";import"../../chunk-KGURGIZ2.js";import"../../chunk-GYNZ3OZF.js";import"../../chunk-UPFH72PF.js";import"../../chunk-FG343JM3.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-KFNFLMUR.js";import"../../chunk-4GOXEEXZ.js";import"../../chunk-JP6ULOEX.js";import"../../chunk-JNLDISBA.js";import"../../chunk-GPBN4ROE.js";import"../../chunk-6XTLP2G7.js";import"../../chunk-PJ3WHQ67.js";import{b as A,d as C,g as S,i as E,j as L,k as $}from"../../chunk-QI3FJKGK.js";import{a as O}from"../../chunk-WUCACPGC.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-WL5ZWQAS.js";import"../../chunk-KEVDLLHT.js";import"../../chunk-DX6IPDED.js";import"../../chunk-3AV3GTMP.js";import{f as m}from"../../chunk-GIXHG5FK.js";import"../../chunk-X6CF5KTW.js";import"../../chunk-XQYAVSUQ.js";import{e as I,l as p}from"../../chunk-PZNWH4VQ.js";import{a as e}from"../../chunk-ZLLER3HP.js";import{trace as de,context as me}from"@opentelemetry/api";import{NodeSDK as W}from"@opentelemetry/sdk-node";import{OTLPTraceExporter as Y}from"@opentelemetry/exporter-trace-otlp-http";import{BatchSpanProcessor as J,ConsoleSpanExporter as z,SimpleSpanProcessor as Q}from"@opentelemetry/sdk-trace-node";import{Resource as Z}from"@opentelemetry/resources";import{ATTR_SERVICE_NAME as ee,ATTR_SERVICE_VERSION as te}from"@opentelemetry/semantic-conventions";function F(r){if(!r)return{};let n={};for(let o of r.split(",")){let s=o.indexOf("=");if(s===-1)continue;let i=o.slice(0,s).trim(),c=o.slice(s+1).trim();i&&(n[i]=c)}return n}e(F,"parseOtlpHeaders");var u=null;function T(){return process.env.TELEMETRY_ENABLED!=="false"}e(T,"isTelemetryEnabled");function x(r){if(!T()||u!==null)return"off";let n=new Z({[ee]:r.serviceName,[te]:r.serviceVersion??"0.1.0"}),o=process.env.OTEL_EXPORTER_OTLP_ENDPOINT,s,i;if(o){let c=F(process.env.OTEL_EXPORTER_OTLP_HEADERS),l=new Y({url:`${o}/v1/traces`,headers:c});i=new J(l),s="otlp"}else if(process.env.OTEL_SPAN_EXPORT==="none")i=void 0,s="silent";else{let c=new z;i=new Q(c),s="console"}return u=new W({resource:n,spanProcessors:i?[i]:[]}),u.start(),s}e(x,"initTelemetry");async function h(){u&&(await u.shutdown(),u=null)}e(h,"shutdownTelemetry");import{SpanKind as Pe,SpanStatusCode as Re}from"@opentelemetry/api";import{trace as Ie,context as Oe}from"@opentelemetry/api";import*as f from"@sentry/node";var v=!1;function w(r){if(v)return!1;let n=process.env.SENTRY_DSN;return n?(f.init({dsn:n,serverName:r.serviceName,environment:process.env.NODE_ENV??"development",tracesSampleRate:0}),v=!0,!0):!1}e(w,"initSentry");async function y(r){v&&await f.flush(r)}e(y,"flushSentry");import{existsSync as ne,mkdirSync as oe,readFileSync as k,unlinkSync as X,writeFileSync as U}from"node:fs";import{dirname as se,join as R}from"node:path";import{execFileSync as ie}from"node:child_process";var a=R(p(),"evals-agent.lock");function ce(r){try{return process.kill(r,0),!0}catch(n){return n.code==="EPERM"}}e(ce,"pidAlive");function ae(r){if(!ce(r))return!1;try{let n=ie("ps",["-p",String(r),"-o","command="],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]});return/run\.js\s+evals\s+agent|evals\s+agent/.test(n)}catch{return!0}}e(ae,"isLiveAgent");function le(){try{oe(se(a),{recursive:!0})}catch{}for(let r=0;r<2;r++)try{return U(a,String(process.pid),{flag:"wx"}),{ok:!0}}catch(n){if(n.code!=="EEXIST")throw n;let o=0;try{o=Number(k(a,"utf-8").trim())}catch{}if(o&&o!==process.pid&&ae(o))return{ok:!1,holder:o};try{X(a)}catch{}}try{U(a,String(process.pid))}catch{}return{ok:!0}}e(le,"acquireAgentLock");function P(){try{ne(a)&&Number(k(a,"utf-8").trim())===process.pid&&X(a)}catch{}}e(P,"releaseAgentLock");var N=class r extends O{static{e(this,"EvalAgentCommand")}static description="The worker daemon: long-polls /api/work/next, claims jobs, and runs them locally. Installed as a launchd service by `rulemetric service install`.";static examples=["<%= config.bin %> evals agent"];async run(){await this.parse(r),this.requireAuth();let n=le();if(!n.ok){this.log(`Another rulemetric evals agent is already running (pid ${n.holder}). Refusing to start a second instance.`);return}process.env.PG_APPLICATION_NAME||="rulemetric-agent",w({serviceName:"rulemetric-agent"})&&this.log("[sentry] error capture enabled");let s=x({serviceName:"rulemetric-agent"});s==="otlp"?this.log(`[otel] traces exporting to ${process.env.OTEL_EXPORTER_OTLP_ENDPOINT}`):s==="console"?this.log("[otel] cron spans printing to stdout (set OTEL_EXPORTER_OTLP_ENDPOINT to ship to a backend)"):this.log("[otel] disabled (TELEMETRY_ENABLED=false)"),!I()&&!process.env.RULEMETRIC_API_KEY&&this.error("No auth token found. Run `rulemetric auth login` first."),this.log("Starting thin agent (Phase 4b parallel-run)..."),this.log(`Long-polling /api/work/next. Press Ctrl+C to stop.
|
|
2
2
|
`);let c=new AbortController,l=await A({configDir:p()});if(this.log(`[transcript-sync] Codex capture: ${S(l)}`),l.error)this.log(`[transcript-sync] WARNING: ${l.error}`);else if(l.mode==="allowlist")for(let t of l.roots)this.log(`[transcript-sync] \u2022 ${t}`);let d=await C({configDir:p()});if(this.log(`[transcript-sync] Pi capture: ${E(d)}`),d.error)this.log(`[transcript-sync] WARNING: ${d.error}`);else if(d.mode==="allowlist")for(let t of d.roots)this.log(`[transcript-sync] \u2022 ${t}`);let B=new M({postSnapshot:e((t,K)=>m(`/api/sessions/${t}/context-snapshots`,K),"postSnapshot"),linkInstructions:e(t=>m("/api/sessions/link-instructions",{sessionId:t}),"linkInstructions"),log:e(t=>this.log(`[transcript-sync] ${t}`),"log")}),H=new G({providers:[V(void 0,void 0,L({configDir:p(),onChange:e(t=>this.log(`[transcript-sync] Codex capture changed: ${S(t)}`),"onChange")})),j(void 0,void 0,$({configDir:p(),onChange:e(t=>this.log(`[transcript-sync] Pi capture changed: ${E(t)}`),"onChange")}))],statePath:R(p(),"transcript-sync-state.json"),importTranscript:e(t=>m("/api/sessions/import",t),"importTranscript"),emitInstructions:e(t=>B.emit(t),"emitInstructions"),log:e(t=>this.log(`[transcript-sync] ${t}`),"log")});q(H,{signal:c.signal,log:e(t=>this.log(`[transcript-sync] ${t}`),"log")});let _=e(async t=>{this.log(`
|
|
3
3
|
[${t}] shutting down agent...`),c.abort(),await Promise.allSettled([y(2e3),h(),g()]),P(),process.exit(0)},"shutdown");process.on("SIGINT",()=>{_("SIGINT")}),process.on("SIGTERM",()=>{_("SIGTERM")});let b=!1;try{await D({signal:c.signal,log:e(t=>this.log(t),"log"),version:this.config.version,readInstalledVersion:e(()=>{try{return JSON.parse(k(R(this.config.root,"package.json"),"utf-8")).version??null}catch{return null}},"readInstalledVersion"),onVersionDrift:e(()=>{b=!0},"onVersionDrift")}),b&&(this.log("[upgrade] Installed CLI version changed \u2014 restarting worker onto the new code."),await Promise.allSettled([y(2e3),h(),g()]),P(),process.exit(1))}finally{P(),await g()}}};export{N as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as d}from"../../chunk-CDSSOOIG.js";import{c as i,s as a}from"../../chunk-XFOG2PDJ.js";import"../../chunk-SIGZEQ3K.js";import{a as s}from"../../chunk-WUCACPGC.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-WL5ZWQAS.js";import"../../chunk-KEVDLLHT.js";import"../../chunk-DX6IPDED.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-GIXHG5FK.js";import"../../chunk-X6CF5KTW.js";import"../../chunk-XQYAVSUQ.js";import"../../chunk-PZNWH4VQ.js";import{a as o}from"../../chunk-ZLLER3HP.js";import{Flags as p}from"@oclif/core";var r=class n extends s{static{o(this,"ResearchResumeScopedOutcomes")}static description="Finish uploading scoped headless outcomes whose receipt was preserved locally after the actor exited but whose capture or verification upload failed. Never re-runs the actor or re-measures the repository; ships the stored receipt and exact transcript only.";static hidden=!0;static examples=["<%= config.bin %> research resume-scoped-outcomes","<%= config.bin %> research resume-scoped-outcomes --list"];static flags={list:p.boolean({description:"Show the outcome store without uploading anything",default:!1})};async run(){let{flags:l}=await this.parse(n);if(this.log(`Outcome store: ${i()}`),l.list){for(let e of a()){let c=e.ledger?.completedAt?"delivered":e.receipt?`pending (${e.ledger?.completed.join(",")||"nothing"} done${e.ledger?.lastError?`; last error at ${e.ledger.lastError.step}: ${e.ledger.lastError.message}`:""})`:"unmeasured (no receipt)";this.log(`${e.confirmationId}/${e.externalSessionId}: ${c}`)}return}this.requireAuth();let t=await d(e=>this.log(e));this.log(`scanned=${t.scanned} delivered=${t.delivered} failed=${t.failed} unmeasured=${t.unmeasured}`),t.failed>0&&this.exit(1)}};export{r as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l}from"../../chunk-
|
|
1
|
+
import{a as l}from"../../chunk-CPDW7WW2.js";import{a}from"../../chunk-WUCACPGC.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-WL5ZWQAS.js";import"../../chunk-KEVDLLHT.js";import"../../chunk-DX6IPDED.js";import"../../chunk-3AV3GTMP.js";import{e as r}from"../../chunk-GIXHG5FK.js";import"../../chunk-X6CF5KTW.js";import"../../chunk-XQYAVSUQ.js";import"../../chunk-PZNWH4VQ.js";import{a as n}from"../../chunk-ZLLER3HP.js";import{Flags as c}from"@oclif/core";var o=class d extends a{static{n(this,"SessionsList")}static description="List captured sessions";static examples=["<%= config.bin %> sessions list","<%= config.bin %> sessions list --tool claude_code","<%= config.bin %> sessions list --tool codex"];static flags={tool:c.string({description:`Filter by tool (${l.join(", ")})`}),limit:c.integer({description:"Max results",default:20})};async run(){let{flags:e}=await this.parse(d);this.requireAuth();let s=new URLSearchParams;e.tool&&s.set("tool",e.tool),s.set("limit",String(e.limit));let i=await r(`/api/sessions?${s}`);if(i.length===0){this.log("No sessions found.");return}for(let t of i){let p=t.projectPath?.split("/").pop()??"\u2014",m=t.analysis?.adherenceScore!=null?`${t.analysis.adherenceScore}%`:"\u2014",u=new Date(t.startedAt).toLocaleDateString();this.log(`${t.id.slice(0,8)} ${t.tool.padEnd(15)} ${p.padEnd(20)} ${String(t.eventCount).padStart(5)} events ${m.padStart(4)} adherence ${u}`)}}};export{o as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-WLVQJH4E.js";import{h as r}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-WLVQJH4E.js";import{h as r}from"../../chunk-FHRBW4AQ.js";import"../../chunk-ZBTJ5R7C.js";import"../../chunk-DANMUHNW.js";import"../../chunk-ISYU5BMU.js";import"../../chunk-LJRE3LZ2.js";import{a as o}from"../../chunk-MODXEGCU.js";import"../../chunk-OZQNSELV.js";import"../../chunk-HFGO5762.js";import"../../chunk-VS5ROGDP.js";import"../../chunk-GYNZ3OZF.js";import"../../chunk-UPFH72PF.js";import{a as i}from"../../chunk-WUCACPGC.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-WL5ZWQAS.js";import"../../chunk-KEVDLLHT.js";import"../../chunk-DX6IPDED.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-GIXHG5FK.js";import"../../chunk-X6CF5KTW.js";import"../../chunk-XQYAVSUQ.js";import"../../chunk-PZNWH4VQ.js";import{a as s}from"../../chunk-ZLLER3HP.js";import{Args as m,Flags as p}from"@oclif/core";var e=class c extends i{static{s(this,"SuggestionsAccept")}static description="Accept a suggestion and append the instruction to CLAUDE.md";static examples=["<%= config.bin %> suggestions accept <id>"];static args={id:m.string({description:"Suggestion UUID from `suggestions list`",required:!0})};static flags={force:p.boolean({description:"Add the rule even if this project already says the same thing in other words",default:!1})};async run(){let{args:t,flags:d}=await this.parse(c);this.requireAuth(),a(t.id,"suggestion ID");let n=await r({suggestionId:t.id,dir:process.cwd(),projectPath:o(process.cwd()),actor:"human",force:d.force});for(let g of n.messages)this.log(g)}};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as f,c as g}from"../../chunk-SFZPFNC6.js";import{a as l}from"../../chunk-WLVQJH4E.js";import{d as p}from"../../chunk-
|
|
1
|
+
import{a as f,c as g}from"../../chunk-SFZPFNC6.js";import{a as l}from"../../chunk-WLVQJH4E.js";import{d as p}from"../../chunk-FHRBW4AQ.js";import"../../chunk-ZBTJ5R7C.js";import"../../chunk-DANMUHNW.js";import"../../chunk-ISYU5BMU.js";import"../../chunk-LJRE3LZ2.js";import{a as m}from"../../chunk-MODXEGCU.js";import"../../chunk-OZQNSELV.js";import"../../chunk-HFGO5762.js";import"../../chunk-VS5ROGDP.js";import{d as u}from"../../chunk-GYNZ3OZF.js";import"../../chunk-UPFH72PF.js";import{a as d}from"../../chunk-WUCACPGC.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-WL5ZWQAS.js";import"../../chunk-KEVDLLHT.js";import"../../chunk-DX6IPDED.js";import"../../chunk-3AV3GTMP.js";import{f as a}from"../../chunk-GIXHG5FK.js";import"../../chunk-X6CF5KTW.js";import"../../chunk-XQYAVSUQ.js";import"../../chunk-PZNWH4VQ.js";import{a as c}from"../../chunk-ZLLER3HP.js";import{relative as h}from"node:path";import{Args as P}from"@oclif/core";var o=class I extends d{static{c(this,"SuggestionsUndo")}static description="Remove an adopted instruction from this project's agent instruction files and stop it being re-proposed";static examples=["<%= config.bin %> suggestions undo <instruction-id>"];static args={instructionId:P.string({description:"Instruction ID from the rulemetric:start marker in the instruction file",required:!0})};async run(){let{args:r}=await this.parse(I);this.requireAuth(),l(r.instructionId,"instruction ID");let e=m(process.cwd()),i=process.cwd(),v=u(i).map(t=>h(i,t.path)),w=p(i,r.instructionId).map(t=>h(i,t.path)),A=await f({dir:process.cwd(),instructionId:r.instructionId,projectPath:e}),n=null,s=null;try{n=(await a("/api/instruction-suggestions/undo",{projectPath:e,instructionId:r.instructionId})).name}catch(t){s=t instanceof Error?t.message:String(t)}for(let t of g({stripped:w,searched:v,reversals:A,name:n,instructionId:r.instructionId,dismissalError:s}))this.log(t);s&&this.exit(1)}};export{o as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as R}from"../chunk-4Z5ECCJE.js";import{a as O}from"../chunk-DVN7GFJG.js";import{a as E}from"../chunk-O2SDD2WW.js";import{a as M}from"../chunk-GBMF3TP6.js";import{a as U}from"../chunk-MYGVN6X4.js";import{a as D}from"../chunk-WSCK4WNK.js";import"../chunk-ARNZQBMX.js";import{a as B,b as S,c as F}from"../chunk-IMN4BWAR.js";import{a as z}from"../chunk-EMZFZCS4.js";import"../chunk-PJ4RIUI3.js";import"../chunk-X23L2MF6.js";import"../chunk-B22HYCBV.js";import"../chunk-ZXF5NE54.js";import{a as u,b as T,d as a,e as v}from"../chunk-NJ5UED3H.js";import"../chunk-NWV66NMA.js";import"../chunk-CPDW7WW2.js";import{a as G}from"../chunk-3AV3GTMP.js";import"../chunk-GIXHG5FK.js";import"../chunk-X6CF5KTW.js";import"../chunk-XQYAVSUQ.js";import"../chunk-PZNWH4VQ.js";import{a as b}from"../chunk-ZLLER3HP.js";import{useState as h,useEffect as lt,useCallback as H,useRef as dt}from"react";import{render as J,Box as c,Text as e,useInput as ct,useApp as ut}from"ink";import{Fragment as wt,jsx as t,jsxs as f}from"react/jsx-runtime";var ht=90;function V(){let s=process.stdout.columns||80,n=Math.min(160,s),r=n>=ht,d=r?Math.floor(n/2):n,x=Math.max(6,Math.min(10,d-34));return{dashWidth:n,wide:r,halfWidth:d,barWidth:x}}b(V,"getLayout");function K({active:s,providerName:n}){return f(c,{justifyContent:"space-between",paddingX:1,children:[t(c,{gap:1,children:u.map(r=>t(e,{bold:s===r,color:s===r?a:v,children:s===r?`[ ${T[r]} ]`:` ${T[r]} `},r))}),n&&t(e,{color:a,bold:!0,children:n})]})}b(K,"PeriodTabs");function Q({width:s,insightsFocused:n=!1}){return t(c,{borderStyle:"round",borderColor:v,width:s,justifyContent:"center",paddingX:1,children:f(e,{children:[t(e,{color:a,bold:!0,children:"<"}),t(e,{color:a,children:">"}),t(e,{dimColor:!0,children:" switch "}),t(e,{color:a,bold:!0,children:"q"}),t(e,{dimColor:!0,children:" quit "}),t(e,{color:a,bold:!0,children:"s"}),f(e,{dimColor:!0,children:[" ",n?"back":"suggestions"," "]}),t(e,{color:a,bold:!0,children:"1"}),t(e,{dimColor:!0,children:"-"}),t(e,{color:a,bold:!0,children:"5"}),t(e,{dimColor:!0,children:" period "}),t(e,{color:a,bold:!0,children:"r"}),t(e,{dimColor:!0,children:" refresh "}),t(e,{color:a,bold:!0,children:"n"}),t(e,{dimColor:!0,children:" new session "}),t(e,{color:a,bold:!0,children:"m"}),t(e,{dimColor:!0,children:" measurement "}),t(e,{color:a,bold:!0,children:"l"}),t(e,{dimColor:!0,children:" launcher"})]})})}b(Q,"StatusBar");function ft({wide:s,width:n,children:r}){return s?t(c,{width:n,children:r}):t(wt,{children:r})}b(ft,"Row");function mt({initialLocal:s,initialApi:n,initialInstructions:r,initialPeriod:d,initialLauncherFocused:x=!1}){let{exit:j}=ut(),[o,L]=h(d),[Z,tt]=h(s),[W,et]=h(n),[ot,it]=h(r),[rt,k]=h(!1),[Y,_]=h(!1),[m,I]=h(!1),[q,N]=h(x),nt=G()?.orgSlug??null,y=dt(null),st=V(),g=H(async()=>{k(!0);let[i,p,P]=await Promise.all([B(),S(),F()]);tt(i),et(p),it(P),k(!1)},[]);lt(()=>{let i=setInterval(g,3e4);return()=>clearInterval(i)},[g]);let w=H(i=>{i!==o&&(L(i),y.current&&clearTimeout(y.current),y.current=setTimeout(g,300))},[o,g]);ct((i,p)=>{if(q||Y)return;if(i==="q"){if(m){I(!1);return}j();return}if(i==="s"){I(A=>!A);return}if(p.escape&&m){I(!1);return}if(i==="m"&&!m){_(!0);return}if(i==="l"&&!m){N(!0);return}if(m)return;if(i==="r"){g();return}if(i==="n"){import("../dist-5647V2E7.js").then(({getLauncher:A})=>{A("claude_code").launch({projectPath:process.cwd(),mode:"interactive"})});return}let P=u.indexOf(o);p.leftArrow?w(u[(P-1+u.length)%u.length]):p.rightArrow||p.tab?w(u[(P+1)%u.length]):i==="1"?w("today"):i==="2"?w("week"):i==="3"?w("30days"):i==="4"?w("month"):i==="5"&&w("all")});let{dashWidth:l,wide:X,halfWidth:at,barWidth:C}=st,$=X?at:l;return Y?t(U,{width:l,onClose:()=>_(!1)}):rt?f(c,{flexDirection:"column",width:l,children:[t(K,{active:o}),t(c,{borderStyle:"round",borderColor:a,paddingX:1,width:l,children:f(e,{dimColor:!0,children:["Loading ",T[o],"..."]})}),t(Q,{width:l})]}):q?t(c,{flexDirection:"column",width:l,children:t(z,{onClose:()=>N(!1),activeOrg:nt,defaultProjectPath:process.cwd(),width:l})}):f(c,{flexDirection:"column",width:l,children:[t(K,{active:o}),t(R,{local:Z,api:W,label:T[o],width:l}),f(ft,{wide:X,width:l,children:[t(D,{api:W,width:$,barWidth:C}),t(O,{api:W,width:$,barWidth:C})]}),t(M,{instructions:ot,width:l,barWidth:C}),t(E,{api:W,width:l,focused:m}),t(Q,{width:l,insightsFocused:m})]})}b(mt,"InteractiveDashboard");async function Bt(s="week",n={}){let[r,d,x]=await Promise.all([B(),S(),F()]);if(process.stdin.isTTY&&process.stdout.isTTY){let{waitUntilExit:o}=J(t(mt,{initialLocal:r,initialApi:d,initialInstructions:x,initialPeriod:s,initialLauncherFocused:n.openLauncher??!1}));await o()}else{let o=V(),{unmount:L}=J(f(c,{flexDirection:"column",width:o.dashWidth,children:[t(R,{local:r,api:d,label:T[s],width:o.dashWidth}),t(D,{api:d,width:o.dashWidth,barWidth:o.barWidth}),t(O,{api:d,width:o.dashWidth,barWidth:o.barWidth}),t(M,{instructions:x,width:o.dashWidth,barWidth:o.barWidth}),t(E,{api:d,width:o.dashWidth})]}),{patchConsole:!1});L()}}b(Bt,"renderDashboard");export{Bt as renderDashboard};
|
package/dist/dashboard/data.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c}from"../chunk-
|
|
1
|
+
import{a,b,c}from"../chunk-IMN4BWAR.js";import"../chunk-CPDW7WW2.js";import"../chunk-GIXHG5FK.js";import"../chunk-X6CF5KTW.js";import"../chunk-XQYAVSUQ.js";import"../chunk-PZNWH4VQ.js";import"../chunk-ZLLER3HP.js";export{b as loadApiInsights,c as loadLinkedInstructions,a as loadLocalStats};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-X23L2MF6.js";import"../../chunk-ZXF5NE54.js";import"../../chunk-NJ5UED3H.js";import"../../chunk-ZLLER3HP.js";export{a as ActiveJobsList};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-EMZFZCS4.js";import"../../chunk-PJ4RIUI3.js";import"../../chunk-X23L2MF6.js";import"../../chunk-B22HYCBV.js";import"../../chunk-ZXF5NE54.js";import"../../chunk-NJ5UED3H.js";import"../../chunk-NWV66NMA.js";import"../../chunk-GIXHG5FK.js";import"../../chunk-X6CF5KTW.js";import"../../chunk-XQYAVSUQ.js";import"../../chunk-PZNWH4VQ.js";import"../../chunk-ZLLER3HP.js";export{a as LauncherOverlay};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-B22HYCBV.js";import"../../chunk-ZXF5NE54.js";import"../../chunk-NJ5UED3H.js";import"../../chunk-ZLLER3HP.js";export{a as NewLaunchForm};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x}from"./chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x}from"./chunk-CPDW7WW2.js";import"./chunk-ZLLER3HP.js";export{c as ClaudeCodeAdapter,i as CodexAdapter,f as CopilotAgentAdapter,d as CursorAdapter,j as PiAdapter,g as RuleMetricMcpAdapter,b as SESSION_EVENT_TYPES,a as SESSION_TOOLS,e as VSCodeCopilotAdapter,t as buildTmuxAttachCommand,s as buildTmuxHasSessionArgs,q as buildTmuxLaunchArgs,r as buildTmuxSendKeysArgs,l as detectTool,n as discoverAllSessions,h as freshCodexState,k as getAdapter,m as getAllProviders,v as getAvailableLaunchers,u as getLauncher,o as getProvider,w as sanitizeBranch,p as sanitizeTmuxName,x as worktreePathFor};
|
package/dist/lib/agent-loop.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e}from"../chunk-3MYCWZ63.js";import"../chunk-5TM7AOH2.js";import"../chunk-IEQDLURA.js";import"../chunk-KINIFUZQ.js";import"../chunk-KOORMTZO.js";import"../chunk-Q7IDLOSP.js";import"../chunk-2PO5I3XR.js";import"../chunk-TQM7MF5C.js";import"../chunk-RDQXK5LG.js";import"../chunk-QXPGTEMO.js";import"../chunk-ZYGBABMZ.js";import"../chunk-GIQ2HK3W.js";import"../chunk-STUNT4N3.js";import"../chunk-E4CIJ67Z.js";import"../chunk-FZMO7XSN.js";import"../chunk-MOJY6S5J.js";import"../chunk-KUW6AVSI.js";import"../chunk-5A6TMSRO.js";import"../chunk-FCALFMZV.js";import"../chunk-JU5ZNXPK.js";import"../chunk-5RBLIVBF.js";import"../chunk-VBGHPAUT.js";import"../chunk-GGUXEZC3.js";import"../chunk-ZLBYYLJZ.js";import"../chunk-USKRCVX3.js";import"../chunk-7YZURVZD.js";import"../chunk-SW24KZ5C.js";import"../chunk-QPAOX7P2.js";import"../chunk-3ZHVP3KE.js";import"../chunk-EFEPD4AZ.js";import"../chunk-HOQPVOMF.js";import"../chunk-AKCCNLHL.js";import"../chunk-CVPAKEEZ.js";import"../chunk-VUNJGZPP.js";import"../chunk-GLBWNB2N.js";import"../chunk-CQD2R3BA.js";import"../chunk-3UKZJAFS.js";import"../chunk-77FH6UZP.js";import"../chunk-KE5K3F7J.js";import"../chunk-WL34G6IR.js";import"../chunk-KR36ZDGN.js";import"../chunk-GIRPEMTW.js";import"../chunk-DQYYHX6K.js";import"../chunk-4ZDE63UG.js";import"../chunk-F5GSKVF2.js";import"../chunk-PIVEJTNF.js";import"../chunk-FHRBW4AQ.js";import"../chunk-ZBTJ5R7C.js";import"../chunk-DANMUHNW.js";import"../chunk-ISYU5BMU.js";import"../chunk-CPDW7WW2.js";import"../chunk-CDSSOOIG.js";import"../chunk-XFOG2PDJ.js";import"../chunk-SIGZEQ3K.js";import"../chunk-FXQS7AEZ.js";import"../chunk-LJRE3LZ2.js";import"../chunk-TSLBCZ5P.js";import"../chunk-65LFPUDB.js";import"../chunk-HBDKOU2N.js";import"../chunk-3H44B6PB.js";import"../chunk-6UEFCMR2.js";import"../chunk-MODXEGCU.js";import"../chunk-RBSEE2Z6.js";import"../chunk-PDXHRF4E.js";import"../chunk-KGU2IW54.js";import"../chunk-M7QSC64D.js";import"../chunk-ZKPURXUS.js";import"../chunk-ISEUEYSC.js";import"../chunk-GYKYJJNF.js";import"../chunk-G7V4ZZZ3.js";import"../chunk-LJE5J3EW.js";import"../chunk-AHLVY52I.js";import"../chunk-YXMAGC53.js";import"../chunk-T7HZZ4DJ.js";import"../chunk-DHIEGG4T.js";import"../chunk-PPAHIVG5.js";import"../chunk-5MXZJWQS.js";import"../chunk-CT7FWSIU.js";import"../chunk-N7ODX6PO.js";import"../chunk-OZQNSELV.js";import"../chunk-HFGO5762.js";import"../chunk-VS5ROGDP.js";import"../chunk-FADINV4H.js";import"../chunk-SWSOEYC7.js";import"../chunk-U2NT5OSQ.js";import"../chunk-KGURGIZ2.js";import"../chunk-GYNZ3OZF.js";import"../chunk-UPFH72PF.js";import"../chunk-FG343JM3.js";import"../chunk-CDY7TQFZ.js";import"../chunk-KFNFLMUR.js";import"../chunk-4GOXEEXZ.js";import"../chunk-JP6ULOEX.js";import"../chunk-JNLDISBA.js";import"../chunk-GPBN4ROE.js";import"../chunk-6XTLP2G7.js";import"../chunk-PJ3WHQ67.js";import"../chunk-GIXHG5FK.js";import"../chunk-X6CF5KTW.js";import"../chunk-XQYAVSUQ.js";import"../chunk-PZNWH4VQ.js";import"../chunk-ZLLER3HP.js";export{b as CAPABILITIES,a as HANDLERS,c as availableCapabilities,d as pollForWork,e as runAgentLoop};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"../chunk-4ZDE63UG.js";import"../chunk-F5GSKVF2.js";import"../chunk-PIVEJTNF.js";import"../chunk-GPBN4ROE.js";import"../chunk-6XTLP2G7.js";import"../chunk-PJ3WHQ67.js";import"../chunk-GIXHG5FK.js";import"../chunk-X6CF5KTW.js";import"../chunk-XQYAVSUQ.js";import"../chunk-PZNWH4VQ.js";import"../chunk-ZLLER3HP.js";export{a as startPresenceHeartbeat};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunk-
|
|
1
|
+
import{a,b}from"../../../chunk-ZBTJ5R7C.js";import"../../../chunk-DANMUHNW.js";import"../../../chunk-ISYU5BMU.js";import"../../../chunk-OZQNSELV.js";import"../../../chunk-HFGO5762.js";import"../../../chunk-VS5ROGDP.js";import"../../../chunk-GIXHG5FK.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{b as acceptHook,a as recordApplication};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h}from"../../../chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h}from"../../../chunk-FHRBW4AQ.js";import"../../../chunk-ZBTJ5R7C.js";import"../../../chunk-DANMUHNW.js";import"../../../chunk-ISYU5BMU.js";import"../../../chunk-LJRE3LZ2.js";import"../../../chunk-OZQNSELV.js";import"../../../chunk-HFGO5762.js";import"../../../chunk-VS5ROGDP.js";import"../../../chunk-GYNZ3OZF.js";import"../../../chunk-UPFH72PF.js";import"../../../chunk-GIXHG5FK.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{h as acceptSuggestion,b as appendBlockToFile,c as appendToAgentInstructionFiles,a as appendToCLAUDEmd,g as fetchSuggestion,f as removeBlockFromFile,d as removeFromAgentInstructionFiles,e as removeFromCLAUDEmd};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-AKCCNLHL.js";import"../../../chunk-CVPAKEEZ.js";import"../../../chunk-FHRBW4AQ.js";import"../../../chunk-ZBTJ5R7C.js";import"../../../chunk-DANMUHNW.js";import"../../../chunk-ISYU5BMU.js";import"../../../chunk-LJRE3LZ2.js";import"../../../chunk-OZQNSELV.js";import"../../../chunk-HFGO5762.js";import"../../../chunk-VS5ROGDP.js";import"../../../chunk-GYNZ3OZF.js";import"../../../chunk-UPFH72PF.js";import"../../../chunk-GIXHG5FK.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{a as cronAutoAcceptSuggestions};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-ZLBYYLJZ.js";import"../../../chunk-CVPAKEEZ.js";import"../../../chunk-CDSSOOIG.js";import"../../../chunk-XFOG2PDJ.js";import"../../../chunk-SIGZEQ3K.js";import"../../../chunk-GIXHG5FK.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{a as cronReconcileAttribution};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a,b,c,d}from"../../../chunk-SW24KZ5C.js";import"../../../chunk-ZLLER3HP.js";export{a as DEFAULT_REGISTRY_REFRESH_BUDGET_MS,b as SYNC_BATCH_TIMEOUT_MS,d as cronRefreshSkills,c as registryRefreshBudgetMs};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a as b,b as c,c as d,d as e,e as f,f as g,g as h}from"../../../chunk-CDSSOOIG.js";import{b as a}from"../../../chunk-XFOG2PDJ.js";import"../../../chunk-SIGZEQ3K.js";import"../../../chunk-GIXHG5FK.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{a as DELIVERY_STEPS,b as ScopedOutcomeError,e as collectScopedReceipt,f as deliverScopedReceipt,g as finalizeScopedLaunch,h as resumePendingScopedOutcomes,c as scopedOutcomeFailure,d as stageScopedProtocol};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-KUW6AVSI.js";import"../../../chunk-VBGHPAUT.js";import"../../../chunk-GIXHG5FK.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{a as prepareSuggestionLive};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-FCALFMZV.js";import"../../../chunk-JU5ZNXPK.js";import"../../../chunk-5RBLIVBF.js";import"../../../chunk-VBGHPAUT.js";import"../../../chunk-KR36ZDGN.js";import"../../../chunk-HBDKOU2N.js";import"../../../chunk-T7HZZ4DJ.js";import"../../../chunk-DHIEGG4T.js";import"../../../chunk-PPAHIVG5.js";import"../../../chunk-5MXZJWQS.js";import"../../../chunk-CT7FWSIU.js";import"../../../chunk-N7ODX6PO.js";import"../../../chunk-FADINV4H.js";import"../../../chunk-SWSOEYC7.js";import"../../../chunk-U2NT5OSQ.js";import"../../../chunk-KGURGIZ2.js";import"../../../chunk-GYNZ3OZF.js";import"../../../chunk-UPFH72PF.js";import"../../../chunk-FG343JM3.js";import"../../../chunk-CDY7TQFZ.js";import"../../../chunk-4GOXEEXZ.js";import"../../../chunk-JP6ULOEX.js";import"../../../chunk-JNLDISBA.js";import"../../../chunk-GPBN4ROE.js";import"../../../chunk-6XTLP2G7.js";import"../../../chunk-PJ3WHQ67.js";import"../../../chunk-GIXHG5FK.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{a as processEval};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunk-
|
|
1
|
+
import{a,b}from"../../../chunk-2PO5I3XR.js";import"../../../chunk-QXPGTEMO.js";import"../../../chunk-5RBLIVBF.js";import"../../../chunk-CPDW7WW2.js";import"../../../chunk-CDSSOOIG.js";import"../../../chunk-XFOG2PDJ.js";import"../../../chunk-SIGZEQ3K.js";import"../../../chunk-N7ODX6PO.js";import"../../../chunk-GIXHG5FK.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{b as processLaunch,a as resolveWorktreeForLaunch};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-RDQXK5LG.js";import"../../../chunk-QXPGTEMO.js";import"../../../chunk-5RBLIVBF.js";import"../../../chunk-CPDW7WW2.js";import"../../../chunk-N7ODX6PO.js";import"../../../chunk-GIXHG5FK.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{a as processRunCleanup};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-STUNT4N3.js";import"../../../chunk-KUW6AVSI.js";import"../../../chunk-FCALFMZV.js";import"../../../chunk-JU5ZNXPK.js";import"../../../chunk-5RBLIVBF.js";import"../../../chunk-VBGHPAUT.js";import"../../../chunk-KR36ZDGN.js";import"../../../chunk-HBDKOU2N.js";import"../../../chunk-T7HZZ4DJ.js";import"../../../chunk-DHIEGG4T.js";import"../../../chunk-PPAHIVG5.js";import"../../../chunk-5MXZJWQS.js";import"../../../chunk-CT7FWSIU.js";import"../../../chunk-N7ODX6PO.js";import"../../../chunk-FADINV4H.js";import"../../../chunk-SWSOEYC7.js";import"../../../chunk-U2NT5OSQ.js";import"../../../chunk-KGURGIZ2.js";import"../../../chunk-GYNZ3OZF.js";import"../../../chunk-UPFH72PF.js";import"../../../chunk-FG343JM3.js";import"../../../chunk-CDY7TQFZ.js";import"../../../chunk-4GOXEEXZ.js";import"../../../chunk-JP6ULOEX.js";import"../../../chunk-JNLDISBA.js";import"../../../chunk-GPBN4ROE.js";import"../../../chunk-6XTLP2G7.js";import"../../../chunk-PJ3WHQ67.js";import"../../../chunk-GIXHG5FK.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{a as processSuggestionEval};
|
package/dist/lib/manual-tasks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as m}from"../chunk-5CVP5NFH.js";import"../chunk-HTAHNQZJ.js";import{c as h}from"../chunk-FZMO7XSN.js";import"../chunk-MOJY6S5J.js";import{a as d}from"../chunk-
|
|
1
|
+
import{a as m}from"../chunk-5CVP5NFH.js";import"../chunk-HTAHNQZJ.js";import{c as h}from"../chunk-FZMO7XSN.js";import"../chunk-MOJY6S5J.js";import{a as d}from"../chunk-ZLBYYLJZ.js";import{d as k}from"../chunk-SW24KZ5C.js";import{e as p}from"../chunk-EFEPD4AZ.js";import"../chunk-HOQPVOMF.js";import"../chunk-CVPAKEEZ.js";import"../chunk-GIRPEMTW.js";import"../chunk-PIVEJTNF.js";import"../chunk-CDSSOOIG.js";import"../chunk-XFOG2PDJ.js";import"../chunk-SIGZEQ3K.js";import"../chunk-MODXEGCU.js";import{a as f}from"../chunk-4VN5PG2S.js";import"../chunk-DHIEGG4T.js";import"../chunk-PPAHIVG5.js";import"../chunk-5MXZJWQS.js";import"../chunk-CT7FWSIU.js";import"../chunk-N7ODX6PO.js";import"../chunk-JNLDISBA.js";import"../chunk-GPBN4ROE.js";import"../chunk-6XTLP2G7.js";import"../chunk-PJ3WHQ67.js";import"../chunk-GIXHG5FK.js";import{A as c,B as g,z as u}from"../chunk-X6CF5KTW.js";import{f as l}from"../chunk-XQYAVSUQ.js";import"../chunk-PZNWH4VQ.js";import{a}from"../chunk-ZLLER3HP.js";var b={cron_check_changelog:a(async(r,n)=>{let t=await m({logger:{info:a(e=>n.logger.info(e),"info"),warn:a(e=>n.logger.warn(e),"warn")}});n.logger.info(`[cron_check_changelog] result: created=${t.createdCount} skipped=${t.skippedCount}`)},"cron_check_changelog"),cron_suggest_instructions:a((r,n)=>p(r,n),"cron_suggest_instructions"),cron_reconcile_attribution:a((r,n)=>d(r,n).then(()=>{}),"cron_reconcile_attribution"),cron_refresh_skills:a((r,n)=>k(r,n),"cron_refresh_skills"),harbor_ab:a(async(r,n)=>{let t=r.measurement,e=t?l.parse(t):null;for(let s of u("proven")){let i=c(s,e);if(i){n.logger.warn(i);continue}let o=await h(g(s,"manual",e),n);n.logger.info(`[harbor_ab] ${s.task}: ${o.decision} \u2014 ${o.reason}`)}},"harbor_ab")},w=f.map(r=>{let n=b[r.name];if(!n)throw new Error(`manual-tasks: no handler registered for "${r.name}"`);return{...r,handler:n}});async function v(r,n={}){let t=w.find(o=>o.name===r);if(!t)return{name:r,durationMs:0,ok:!1,error:`Unknown task: ${r}`,logs:[]};let e=[],s={logger:{info:a(o=>e.push({level:"info",message:o}),"info"),warn:a(o=>e.push({level:"warn",message:o}),"warn"),error:a(o=>e.push({level:"error",message:o}),"error")},job:{attempts:0}},i=Date.now();try{return await t.handler(n,s),{name:r,durationMs:Date.now()-i,ok:!0,logs:e}}catch(o){return{name:r,durationMs:Date.now()-i,ok:!1,error:o instanceof Error?o.message:String(o),logs:e}}}a(v,"runManualTask");export{w as MANUAL_TASKS,v as runManualTask};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as b,b as c,c as d}from"../../../chunk-
|
|
1
|
+
import{a as b,b as c,c as d}from"../../../chunk-QXPGTEMO.js";import{w as a}from"../../../chunk-CPDW7WW2.js";import"../../../chunk-N7ODX6PO.js";import"../../../chunk-ZLLER3HP.js";export{c as ensureWorktree,d as removeWorktree,b as runGit,a as sanitizeBranch};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u}from"../chunk-XFOG2PDJ.js";import"../chunk-ZLLER3HP.js";export{b as DELIVERY_STEPS,a as SCOPED_OUTCOME_STORE_VERSION,d as confirmationDir,t as isDelivered,i as ledgerPath,s as listScopedOutcomeEntries,e as outcomeDir,l as preserveTranscript,f as protocolPath,o as readLedger,n as readReceipt,k as readStagedProtocol,h as receiptPath,u as removeScopedOutcomeEntry,c as scopedOutcomeStoreRoot,j as stageProtocol,q as transcriptBytes,g as transcriptPath,r as transcriptSize,p as writeLedger,m as writeReceiptOnce};
|
package/dist/lib/work-report.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j}from"../chunk-F5GSKVF2.js";import"../chunk-GIXHG5FK.js";import"../chunk-X6CF5KTW.js";import"../chunk-XQYAVSUQ.js";import"../chunk-PZNWH4VQ.js";import"../chunk-ZLLER3HP.js";export{c as HEARTBEAT_RETRY_BUDGET_MS,b as REPORT_RETRY_BUDGET_MS,d as REPORT_RETRY_INITIAL_MS,e as REPORT_RETRY_MAX_MS,a as RETRYABLE_REPORT_STATUSES,g as abortableSleep,i as isDefinitiveLeaseLoss,h as isRetryableReportError,j as postReportWithRetry,f as structuredLog};
|
package/oclif.manifest.json
CHANGED
|
@@ -3636,6 +3636,48 @@
|
|
|
3636
3636
|
"backfill.js"
|
|
3637
3637
|
]
|
|
3638
3638
|
},
|
|
3639
|
+
"research:resume-scoped-outcomes": {
|
|
3640
|
+
"aliases": [],
|
|
3641
|
+
"args": {},
|
|
3642
|
+
"description": "Finish uploading scoped headless outcomes whose receipt was preserved locally after the actor exited but whose capture or verification upload failed. Never re-runs the actor or re-measures the repository; ships the stored receipt and exact transcript only.",
|
|
3643
|
+
"examples": [
|
|
3644
|
+
"<%= config.bin %> research resume-scoped-outcomes",
|
|
3645
|
+
"<%= config.bin %> research resume-scoped-outcomes --list"
|
|
3646
|
+
],
|
|
3647
|
+
"flags": {
|
|
3648
|
+
"api-url": {
|
|
3649
|
+
"description": "Override API base URL",
|
|
3650
|
+
"env": "RULEMETRIC_API_URL",
|
|
3651
|
+
"hidden": true,
|
|
3652
|
+
"name": "api-url",
|
|
3653
|
+
"hasDynamicHelp": false,
|
|
3654
|
+
"multiple": false,
|
|
3655
|
+
"type": "option"
|
|
3656
|
+
},
|
|
3657
|
+
"list": {
|
|
3658
|
+
"description": "Show the outcome store without uploading anything",
|
|
3659
|
+
"name": "list",
|
|
3660
|
+
"allowNo": false,
|
|
3661
|
+
"type": "boolean"
|
|
3662
|
+
}
|
|
3663
|
+
},
|
|
3664
|
+
"hasDynamicHelp": false,
|
|
3665
|
+
"hidden": true,
|
|
3666
|
+
"hiddenAliases": [],
|
|
3667
|
+
"id": "research:resume-scoped-outcomes",
|
|
3668
|
+
"pluginAlias": "@rulemetric/cli",
|
|
3669
|
+
"pluginName": "@rulemetric/cli",
|
|
3670
|
+
"pluginType": "core",
|
|
3671
|
+
"strict": true,
|
|
3672
|
+
"enableJsonFlag": false,
|
|
3673
|
+
"isESM": true,
|
|
3674
|
+
"relativePath": [
|
|
3675
|
+
"dist",
|
|
3676
|
+
"commands",
|
|
3677
|
+
"research",
|
|
3678
|
+
"resume-scoped-outcomes.js"
|
|
3679
|
+
]
|
|
3680
|
+
},
|
|
3639
3681
|
"research:tail-transcript": {
|
|
3640
3682
|
"aliases": [],
|
|
3641
3683
|
"args": {
|
|
@@ -4800,5 +4842,5 @@
|
|
|
4800
4842
|
]
|
|
4801
4843
|
}
|
|
4802
4844
|
},
|
|
4803
|
-
"version": "0.
|
|
4845
|
+
"version": "0.17.0"
|
|
4804
4846
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rulemetric/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -80,9 +80,9 @@
|
|
|
80
80
|
"postgres": "^3.4.0",
|
|
81
81
|
"react": "^19.0.0",
|
|
82
82
|
"zod": "^3.24.0",
|
|
83
|
-
"@rulemetric/
|
|
84
|
-
"@rulemetric/
|
|
85
|
-
"@rulemetric/
|
|
83
|
+
"@rulemetric/proxy": "0.17.0",
|
|
84
|
+
"@rulemetric/skills-registry": "0.17.0",
|
|
85
|
+
"@rulemetric/hooks": "0.17.0"
|
|
86
86
|
},
|
|
87
87
|
"//deps": "Worker (`evals agent`) runtime deps: the @opentelemetry/* set, @sentry/node, and postgres are STATIC top-level imports loaded at worker startup (via bundled @rulemetric/{telemetry,db}) — they MUST be runtime deps or a clean `npm i -g` crashes with ModuleLoadError. `better-sqlite3` is optionalDependencies (below): it's a native module, lazy `require()`'d inside a try/catch (packages/session providers cursor/opencode) so a missing binary degrades gracefully — making it a hard dep would break `npm i -g` on platforms without prebuilt binaries. `resend` stays a devDep: lazy `await import('resend')` guarded by RESEND_API_KEY, which end-user workers never set (provider falls back to noop). Classification verified via import-graph scan of dist/commands/evals/agent.js + per-importer static/lazy check.",
|
|
88
88
|
"optionalDependencies": {
|
|
@@ -103,14 +103,14 @@
|
|
|
103
103
|
"typescript": "^5.9.0",
|
|
104
104
|
"vitest": "^3.2.0",
|
|
105
105
|
"@rulemetric/contracts": "0.0.1",
|
|
106
|
-
"@rulemetric/api": "0.0.1",
|
|
107
106
|
"@rulemetric/core": "0.0.1",
|
|
108
107
|
"@rulemetric/db": "0.0.1",
|
|
109
108
|
"@rulemetric/effectiveness": "0.0.1",
|
|
110
109
|
"@rulemetric/email": "0.0.1",
|
|
110
|
+
"@rulemetric/typescript-config": "0.0.0",
|
|
111
111
|
"@rulemetric/session": "0.2.1",
|
|
112
112
|
"@rulemetric/telemetry": "0.0.1",
|
|
113
|
-
"@rulemetric/
|
|
113
|
+
"@rulemetric/api": "0.0.1"
|
|
114
114
|
},
|
|
115
115
|
"scripts": {
|
|
116
116
|
"build": "node scripts/build.mjs",
|
package/dist/chunk-3WCX2SLU.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as f}from"./chunk-ZLLER3HP.js";import{z as e}from"zod";var m=e.string().regex(/^[a-f0-9]{64}$/),t=e.string().min(1).max(2e4),d=e.string().min(1).max(240).refine(i=>!i.startsWith("/")&&!i.includes("\\")&&i.split("/").every(r=>r!==".."&&r!=="."&&r!==""&&!r.startsWith(".")),"fixture paths must be relative, without traversal or hidden configuration"),p=e.object({path:d,content:e.string().max(1e5)}).strict(),h=e.object({name:t,path:d,kind:e.enum(["text_equals","json_equals","file_absent"]),expected:e.string().max(1e5),primary:e.boolean()}).strict(),g=e.object({evalId:e.string().uuid(),taskId:t,family:t,lineage:t,split:e.enum(["exploration","validation"]),incidentSessionIds:e.array(e.string().uuid()).min(1),opportunity:e.enum(["failure","success","costly_success","should_not_trigger"]),prompt:t,fixtureVersion:t,verifierVersion:t,files:e.array(p).max(100),checks:e.array(h).min(1).max(30),oracleFiles:e.array(p).max(100)}).strict(),b=e.object({version:e.literal(1),revision:e.number().int().positive(),question:t,hypotheses:e.array(t).min(2),interventionType:e.enum(["instruction","retrieval","tool","executable_check","workflow","removal","none"]),baseline:e.object({content:e.string().max(16e3),files:e.array(p).max(30)}).strict(),treatment:e.object({content:e.string().max(16e3),files:e.array(p).max(30)}).strict(),scope:e.object({projectPath:t,harnessVersion:t,deliveryMode:e.literal("explicit-system-and-fixture-file"),engine:e.enum(["claude","codex"]),model:t,provider:e.enum(["anthropic","openai"]),repositoryRevision:e.string().regex(/^[a-f0-9]{40}$/),ambientContext:e.literal("frozen-fixture"),permissions:e.literal("isolated-fixture-write"),tools:e.array(t).min(1),expiresAt:e.string().datetime()}).strict(),sampling:e.object({rationale:t,exclusions:e.array(t),eligibleOpportunities:e.number().int().positive(),sampledOpportunities:e.number().int().positive()}).strict(),analysis:e.object({role:e.enum(["diagnostic","exploration","frozen_validation"]),primaryOutcome:t,safeguards:e.array(t).min(1),eligibility:t,assignmentUnit:e.literal("task"),weighting:e.literal("equal-task"),method:e.literal("paired-task-bootstrap"),stopping:e.literal("fixed-final"),primaryComparison:e.literal("treatment-minus-baseline"),repetitions:e.number().int().min(1).max(10),usefulEffect:e.number().positive().max(1),reliabilityMargin:e.number().min(0).max(1),maxCalls:e.number().int().min(2).max(200),maxSecondsPerCall:e.number().int().min(10).max(600),humanReviewMinutes:e.number().nonnegative().nullable(),reviewNote:t}).strict(),tasks:e.array(g).min(1).max(50),supersedes:e.string().uuid().nullable()}).strict().superRefine((i,r)=>{let a=f(s=>r.addIssue({code:"custom",message:s}),"fail");(new Set(i.tasks.map(s=>s.evalId)).size!==i.tasks.length||new Set(i.tasks.map(s=>s.taskId)).size!==i.tasks.length)&&a("task identity must be unique, not repetition"),i.scope.engine==="claude"!=(i.scope.provider==="anthropic")&&a("engine/provider mismatch"),i.scope.engine==="claude"&&[...i.scope.tools].sort().join(",")!=="Bash,Edit,Read,Write"&&a("Claude fixture execution supports exactly Read, Write, Edit and Bash");for(let s of[i.baseline,i.treatment])Array.from(s.content).reduce((n,c)=>{let u=c.codePointAt(0);return n+(u<128?1:u<2048?2:u<65536?3:4)},0)>16e3&&a("Instruction delivery exceeds the UTF-8 byte budget");let o=new Map;for(let s of i.tasks){for(let n of[s.lineage,s.family])o.has(n)&&o.get(n)!==s.split&&a("family or incident lineage leaks across splits"),o.set(n,s.split);[...s.files,...i.baseline.files,...i.treatment.files].some(n=>["CLAUDE.md","CLAUDE.local.md","AGENTS.md"].includes(n.path.split("/").at(-1)))&&a("Fixture files cannot introduce ambient instruction files"),new Set(s.checks.map(n=>n.name)).size!==s.checks.length&&a("Check names must be unique"),s.checks.some(n=>n.primary)||a("each task needs an independent primary artifact check"),new Set(s.files.map(n=>n.path)).size!==s.files.length&&a("duplicate fixture file path");for(let n of[i.baseline,i.treatment])new Set(n.files.map(c=>c.path)).size!==n.files.length&&a("duplicate intervention file path"),n.files.some(c=>s.files.some(u=>u.path===c.path))&&a("intervention must not overwrite common fixture files")}let l=i.tasks.filter(s=>s.split===(i.analysis.role==="frozen_validation"?"validation":"exploration"));l.length||a("no tasks in the selected split"),l.length*2*i.analysis.repetitions>i.analysis.maxCalls&&a("planned calls exceed resource ceiling"),i.sampling.sampledOpportunities>i.sampling.eligibleOpportunities&&a("sampled opportunities exceed eligible opportunities")}),I=e.object({version:e.literal(1),id:e.string().uuid(),protocolHash:m,protocol:b}).strict(),j=e.object({studyId:e.string().uuid(),protocolHash:m,taskId:t,arm:e.enum(["baseline","treatment"]),repetition:e.number().int().positive(),eligible:e.boolean(),exclusion:e.string().nullable(),primaryPassed:e.boolean(),safeguardsPassed:e.boolean(),checks:e.array(e.object({name:t,passed:e.boolean(),actual:e.string().nullable()})),deliveryHash:m,fixtureHash:m,harnessVersion:e.string().nullable(),engine:e.string().nullable(),model:e.string().nullable(),provider:e.string().nullable(),durationMs:e.number().nonnegative(),tokens:e.number().nonnegative().nullable(),costUsd:e.number().nonnegative().nullable()}).strict(),x=e.object({harnessVersion:t,repositoryRevision:e.string().regex(/^[a-f0-9]{40}$/),contextHashes:e.record(m.nullable())}).strict(),y=e.object({name:t,path:d,kind:e.literal("command_exit"),expected:e.literal("0"),primary:e.boolean(),command:e.array(e.string().min(1).max(2e3)).min(1).max(30),timeoutMs:e.number().int().min(100).max(12e4),fileHashes:e.record(d,m).refine(i=>Object.keys(i).length>0&&Object.keys(i).length<=300,"Freeze verifier files")}).strict().refine(i=>Object.hasOwn(i.fileHashes,i.path),"The verifier entry point must be frozen"),v=e.union([h,y]),k=e.object({version:e.literal(1),kind:e.literal("artifact-checks"),environment:x,tasks:e.array(e.object({taskId:e.string().min(1).max(500),checks:e.array(v).min(1).max(30)}).strict()).min(4).max(200)}).strict(),w=e.object({version:e.literal(1),mode:e.enum(["confirmation","exploration"]).optional(),research:e.object({question:t,rationale:t,eligibility:t,riskReview:t,enrollment:e.literal("prospective-launches").optional(),suggestionId:e.string().uuid().optional(),evalTargetId:e.string().uuid().optional(),carryoverPolicy:e.literal("fresh-session-per-task"),adoptionPolicy:e.literal("no-adoption")}).strict().optional(),projectPath:t,taskFamily:t,harness:e.literal("claude_code"),model:t,configurationHash:m,baselineDeliveryHash:m,treatmentDeliveryHash:m,primaryOutcome:t,verification:k.optional(),outcomeRule:e.object({source:e.literal("session_analysis"),completedValues:e.array(e.string().min(1)).min(1),failedValues:e.array(e.string().min(1)).min(1)}).strict(),eligibleTaskIds:e.array(e.string().min(1).max(500)).min(4).max(200),maxAssignments:e.number().int().min(4).max(200),decisionRule:e.object({method:e.literal("fisher-exact-two-sided-v1").default("fisher-exact-two-sided-v1"),alpha:e.literal(.05).default(.05),minCompletedPerArm:e.number().int().min(2).max(100),minimumAbsoluteEffect:e.number().min(.01).max(1)}).strict(),expiresAt:e.string().datetime()}).strict().superRefine((i,r)=>{if(i.mode==="exploration"&&(!i.research||!i.verification||i.eligibleTaskIds.length<=i.maxAssignments)&&r.addIssue({code:"custom",message:"Exploration requires a research justification, independent verification and reserved follow-up tasks"}),i.mode!=="exploration"&&i.verification?.tasks.some(o=>o.checks.some(l=>l.kind==="command_exit"))&&r.addIssue({code:"custom",message:"Repository checks currently support exploration only"}),i.mode!=="exploration"&&i.research&&r.addIssue({code:"custom",message:"Research enrollment is only available in explicit exploration mode"}),new Set(i.eligibleTaskIds).size!==i.eligibleTaskIds.length&&r.addIssue({code:"custom",path:["eligibleTaskIds"],message:"Eligible task IDs must be unique"}),i.maxAssignments>i.eligibleTaskIds.length&&r.addIssue({code:"custom",path:["maxAssignments"],message:"Assignment ceiling exceeds the pre-registered eligible task set"}),i.verification){let o=i.verification.tasks;(new Set(o.map(l=>l.taskId)).size!==o.length||o.length!==i.eligibleTaskIds.length||o.some(l=>!i.eligibleTaskIds.includes(l.taskId)||!l.checks.some(s=>s.primary)||new Set(l.checks.map(s=>s.name)).size!==l.checks.length))&&r.addIssue({code:"custom",path:["verification"],message:"Every eligible task needs one frozen verifier with unique checks and a primary outcome"})}i.outcomeRule.completedValues.some(o=>i.outcomeRule.failedValues.includes(o))&&r.addIssue({code:"custom",path:["outcomeRule"],message:"Outcome values must map to exactly one result"})});export{I as a,w as b};
|
package/dist/chunk-CZBO3A6B.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{h as R}from"./chunk-CVPAKEEZ.js";import{a as S,b as v,c as $,f as w,g as A}from"./chunk-SIGZEQ3K.js";import{e as y,f}from"./chunk-GIXHG5FK.js";import{a as c}from"./chunk-ZLLER3HP.js";import{execFileSync as x}from"node:child_process";import{openSync as P,readSync as C,closeSync as j,readFileSync as E}from"node:fs";function I(l){let t;try{t=P(l,"r");let o=Buffer.alloc(64*1024),s=C(t,o,0,o.length,0),i=o.subarray(0,s).toString("utf-8");for(let r of i.split(`
|
|
2
|
-
`))if(r.startsWith("{"))try{let a=JSON.parse(r).cwd;if(typeof a=="string"&&a.startsWith("/"))return a}catch{}return null}catch{return null}finally{t!==void 0&&j(t)}}c(I,"readTranscriptCwd");function W(l){let t=c(r=>{try{return x("git",["-C",l,...r],{encoding:"utf-8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()||null}catch{return null}},"git");if(!t(["rev-parse","--show-toplevel"]))return null;let s=t(["rev-parse","--git-dir"]),i=t(["rev-parse","--git-common-dir"]);return{gitRemote:t(["remote","get-url","origin"]),gitRootCommit:t(["rev-list","--max-parents=0","HEAD"])?.split(`
|
|
3
|
-
`).pop()?.trim()??null,gitBranch:t(["branch","--show-current"]),isWorktree:!!s&&!!i&&s!==i}}c(W,"gitAnchors");async function O(l,t,o=v(W,I)){let s=Math.min(l.limit??200,1e3),i=await R(()=>y(`/api/sessions/unattributed?limit=${s}`),{log:c(e=>t.logger.info(e),"log"),label:"sessions/unattributed",idempotent:!0}),r=i.sessions??[],a=i.total??r.length;if(r.length===0)return t.logger.info("no unattributed sessions"),{scanned:0,repaired:0,reimported:0,unrepairable:0,remaining:0};let m=0,g=0,u=0;for(let e of r){if(!e.externalSessionId){u++;continue}let n=A(e,o);if(!n){u++;continue}try{await f("/api/sessions",{tool:e.tool,externalSessionId:e.externalSessionId,projectPath:n.projectPath,...n.gitBranch?{gitBranch:n.gitBranch}:{},metadata:{...n.gitRemote?{gitRemote:n.gitRemote}:{},...n.gitRootCommit?{gitRootCommit:n.gitRootCommit}:{},isWorktree:n.isWorktree,reconciledAttribution:!0}}),m++}catch(d){u++,t.logger.info(`reconcile failed for ${e.externalSessionId}: ${d.message}`);continue}let p=e.tool==="claude_code"?$(e.externalSessionId,o):null,b=w({tool:e.tool,pathWasJunk:!!e.projectPath&&S(e.projectPath),endedAt:e.endedAt??null,transcript:p?o.stat(p):null});if(b.reimport&&p)try{let d=E(p,"utf-8");await f(`/api/sessions/${e.id}/reimport`,{content:d,tool:"claude_code"}),g++}catch(d){t.logger.info(`reimport failed for ${e.externalSessionId} (${b.reason}): ${d.message}`)}}let h=a-m;return t.logger.info(`reconciled attribution: scanned=${r.length} repaired=${m} reimported=${g} unrepairable=${u} remaining=${h} (of ${a} total)`),{scanned:r.length,repaired:m,reimported:g,unrepairable:u,remaining:h}}c(O,"cronReconcileAttribution");export{O as a};
|
package/dist/chunk-EHW2KS6R.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as p,c as s}from"./chunk-SIGZEQ3K.js";import{e as n,f as i}from"./chunk-GIXHG5FK.js";import{a}from"./chunk-ZLLER3HP.js";import{readFileSync as u,statSync as f}from"node:fs";import{join as h}from"node:path";import{pathToFileURL as w}from"node:url";import{scriptsDir as j}from"@rulemetric/hooks/scripts-dir";async function L(r,t){let e=r.scopedConfirmation,o=s(t,p(()=>null,()=>null));if(!o||f(o).size>2e7)throw new Error("Completed actor transcript is missing or exceeds the capture bound");let c=await import(w(h(j,"scoped-live.mjs")).href);c.transcriptEvidence(o,t);let d=await i("/api/sessions",{tool:"claude_code",externalSessionId:t,projectPath:r.projectPath});await i(`/api/sessions/${d.id}/reimport`,{tool:"claude_code",content:u(o,"utf8")});let{confirmation:m}=await n(`/api/scoped-live-confirmations/${e.id}/contract`),l=c.collectScopedOutcome(m.protocol,e.taskId,t,r.projectPath,o);return await i(`/api/scoped-live-confirmations/${e.id}/verify`,l),await i("/api/instruction-experiments/settle",{projectPath:r.projectPath}),{status:"recorded",sessionId:t,studyId:e.id}}a(L,"finalizeScopedLaunch");export{L as a};
|
package/dist/chunk-I6W2KC6W.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as I}from"./chunk-3WCX2SLU.js";import{e as a,f as u}from"./chunk-GIXHG5FK.js";import{a as d}from"./chunk-ZLLER3HP.js";import{createHash as P,randomUUID as R}from"node:crypto";import{readFileSync as m,existsSync as g}from"node:fs";import{join as r}from"node:path";import{pathToFileURL as $}from"node:url";import{execFileSync as H}from"node:child_process";import{scriptsDir as C}from"@rulemetric/hooks/scripts-dir";var h=d(t=>P("sha256").update(t).digest("hex"),"hash");async function N(t){let k=await a(`/api/instruction-suggestions/${t.suggestionId}/test`);if(k.liveStudies?.length)return{status:"existing",studyId:k.liveStudies[0].id};let o=await a(`/api/eval-targets/${t.evalTargetId}`);if(!o.projectPath||!o.instructionId)return{status:"blocked",reason:"The suggestion has no project and instruction link."};let s=o.projectPath;if(!g(r(s,"package.json")))return{status:"blocked",reason:"Automatic repository checks currently require a package.json type-check or typecheck script."};let c=JSON.parse(m(r(s,"package.json"),"utf8")),f=["type-check","typecheck"].find(e=>typeof c.scripts?.[e]=="string");if(!f)return{status:"blocked",reason:"Add a type-check or typecheck script to prepare independently checked code tasks."};let y=await a(`/api/eval-targets/${t.evalTargetId}/runs?jobId=${t.evalJobId}&limit=100`),v=y.flatMap(e=>e.outputs?.engine==="claude"&&e.outputs.model?[e.outputs.model]:[]),p=[...new Set(v)];if(p.length!==1||v.length!==y.length)return{status:"blocked",reason:"Live delivery needs one observed Claude model across the comparison runs."};let l=await import($(r(C,"scoped-live.mjs")).href);if(typeof l.runRepositoryCheck!="function")return{status:"blocked",reason:"Upgrade the installed hooks to support repository checks."};let n=l.observeEnvironment(s);for(let e of Object.keys(n.contextHashes))if(n.contextHashes[e]&&/(?:CLAUDE(?:\.local)?|AGENTS)\.md$/.test(e)&&m(e,"utf8").includes(t.content.trim()))return{status:"blocked",reason:"The candidate already exists in background instructions; it cannot be withheld from baseline tasks."};let S=H("git",["ls-files","-z"],{cwd:s,encoding:"utf8",timeout:5e3}).split("\0"),b=[...new Set(["package.json",...S.filter(e=>/(^|\/)(package\.json|tsconfig[^/]*\.json|turbo\.json|pnpm-workspace\.yaml|pnpm-lock\.yaml|package-lock\.json|yarn\.lock)$/.test(e))])];if(b.length>300)return{status:"blocked",reason:"Repository verifier configuration exceeds the 300-file preparation bound."};let T=Object.fromEntries(b.sort().map(e=>[e,h(m(r(s,e),"utf8"))])),x={name:"Repository type checking passes",path:"package.json",kind:"command_exit",expected:"0",primary:!0,command:[c.packageManager?.startsWith("pnpm@")||g(r(s,"pnpm-lock.yaml"))?"pnpm":c.packageManager?.startsWith("yarn@")||g(r(s,"yarn.lock"))?"yarn":"npm","run",f],timeoutMs:12e4,fileHashes:T},i=l.runRepositoryCheck(s,x);if(i.error||i.exitCode===null)return{status:"blocked",reason:`The verifier could not execute: ${i.error??"no exit status"}`};let j=Array.from({length:21},()=>`work-${R()}`),w=I.parse({version:1,mode:"exploration",research:{question:`Does ${o.name} increase the fraction of fresh launched tasks leaving repository type checks passing?`,rationale:o.description||"Test the exact suggested instruction on prospective project work.",eligibility:"Fresh work requests supplied before launch in this project, using the pinned Claude model. One request per task; resumed and repeated work excluded.",riskReview:"Twenty task assignments, one baseline follow-up, seven-day expiry. Frozen repository checks; changes to checker configuration invalidate outcomes. Shared-checkout carryover is recorded; final causal interpretation remains inconclusive. No automatic adoption.",enrollment:"prospective-launches",suggestionId:t.suggestionId,evalTargetId:t.evalTargetId,carryoverPolicy:"fresh-session-per-task",adoptionPolicy:"no-adoption"},projectPath:s,taskFamily:"fresh-project-work",harness:"claude_code",model:p[0],configurationHash:h(JSON.stringify(n)),baselineDeliveryHash:h(""),treatmentDeliveryHash:t.contentHash,primaryOutcome:"Repository type checking passes after the task; this is not a claim of full task correctness.",outcomeRule:{source:"session_analysis",completedValues:["achieved"],failedValues:["failed"]},eligibleTaskIds:j,maxAssignments:20,decisionRule:{minCompletedPerArm:2,minimumAbsoluteEffect:.1},expiresAt:new Date(Date.now()+7*864e5).toISOString(),verification:{version:1,kind:"artifact-checks",environment:n,tasks:j.map(e=>({taskId:e,checks:[x]}))}}),A=await u("/api/instruction-experiments",{instructionId:o.instructionId,projectPath:s,source:"trial",mode:"scoped"});return{status:"waiting_for_work",studyId:(await u(`/api/instruction-experiments/${A.experimentId}/scoped-live-confirmations`,{protocol:w})).confirmation.id,verifierReadiness:i,taskLimit:20,outcome:w.primaryOutcome,model:p[0]}}d(N,"prepareSuggestionLive");export{N as a};
|
package/dist/chunk-OCCJEWOF.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as R,c as $,f as s,g as I,i as w}from"./chunk-XXPWPKTD.js";import{c as re}from"./chunk-5TM7AOH2.js";import{b as te}from"./chunk-IEQDLURA.js";import{d as oe,e as se,f as ae}from"./chunk-KINIFUZQ.js";import{b as F}from"./chunk-U3YPVLM3.js";import{a as Y}from"./chunk-TQM7MF5C.js";import{a as q}from"./chunk-WOANSBMJ.js";import{a as U}from"./chunk-ZYGBABMZ.js";import{a as G}from"./chunk-GIQ2HK3W.js";import{a as W}from"./chunk-TTZWVZIW.js";import{c as N}from"./chunk-FZMO7XSN.js";import{a as O}from"./chunk-5A6TMSRO.js";import{a as V}from"./chunk-HYQ5YKBC.js";import{a as J}from"./chunk-KOORMTZO.js";import{b as L}from"./chunk-5RBLIVBF.js";import{a as Q}from"./chunk-Q7IDLOSP.js";import{a as x}from"./chunk-CZBO3A6B.js";import{a as ee}from"./chunk-USKRCVX3.js";import{a as X}from"./chunk-7YZURVZD.js";import{a as D}from"./chunk-PZS55PW2.js";import{a as ne}from"./chunk-QPAOX7P2.js";import{e as P}from"./chunk-EFEPD4AZ.js";import{b as K}from"./chunk-E4CIJ67Z.js";import{a as Z}from"./chunk-D4FP5M2B.js";import{a as z}from"./chunk-VUNJGZPP.js";import{a as j}from"./chunk-GGUXEZC3.js";import{b as C}from"./chunk-PIVEJTNF.js";import{k as B}from"./chunk-KGU2IW54.js";import{d as S}from"./chunk-GPBN4ROE.js";import{b as M,e as T,f as E}from"./chunk-GIXHG5FK.js";import{a as l}from"./chunk-ZLLER3HP.js";var H=null,h=null,ue={process_eval:V,process_suggestion_eval:W,process_insights:J,process_launch:F,process_send_message:U,process_conversation:O,process_session_goal:G,distill_memories:K,memory_ab:Y,process_run_cleanup:q,cron_refine_cases:ee,cron_retire_unused_skills:ne,cron_reconcile_attribution:x,cron_suggest_instructions:P,cron_refresh_skills:D,cron_refresh_pricing:X,cron_eval_autorun:z,cron_auto_accept_suggestions:Z,cron_instruction_training:j,cron_instruction_evolution:B,process_judge_review:Q,harbor_ab:N},ie=Object.keys(ue),pe=new Set([]);function ge(e=process.env){return e.DATABASE_URL?ie:ie.filter(t=>!pe.has(t))}l(ge,"availableCapabilities");var _e=3e4,fe=3e4,ve=3e4,le=500,de=1e4,ke=`thin-agent-${process.pid}`,A=null;function be(e,t,r,p){let d;try{let i=S();d={claude:i.claudeBin!=null,codex:i.codexBin!=null,pi:i.piBin!=null,codexModel:i.codexConfiguredModel}}catch{}let m;try{m=C()}catch{}let g=l(i=>E("/api/workers/heartbeat",{workerType:"cli-worker",clientName:ke,clientVersion:p,workerVersion:"0.1.0",currentJobId:null,inFlightCount:0,lastError:null,status:i,metadata:{capabilities:e,mode:"thin-agent",measurementProtocol:1,studyProtocol:1,scopedCollector:2,memorySnapshots:1,boundedAutorun:1,llmEngines:d,harborReady:m,machine:H?.summary()}}).then(c=>{let u=c?.advisory;u&&u.message!==A?(A=u.message,s(r,{event:"worker_advisory",code:u.code,message:u.message})):u||(A=null)}).catch(c=>{s(r,{event:"presence_heartbeat_error",error:c instanceof Error?c.message:String(c)})}),"send");g("alive");let f=setInterval(()=>g("alive"),ve),a=null,n=l(()=>a||(clearInterval(f),a=Promise.race([g("shutting_down"),new Promise(i=>setTimeout(i,2e3).unref())]),a),"sayGoodbye");return t.addEventListener("abort",()=>{n()},{once:!0}),{shutdown:n}}l(be,"startPresenceHeartbeat");async function we(e,t,r=S()){let p=[...r.claudeBin?["claude"]:[],...r.codexBin?["codex"]:[],...r.piBin?["pi"]:[]],d=`capabilities=${encodeURIComponent(e.join(","))}&waitMs=${t}&measurementProtocol=1&studyProtocol=1&scopedCollector=2&memorySnapshots=1&boundedAutorun=1&measurementEngines=${encodeURIComponent(p.join(","))}`,m=await T(`/api/work/next?${d}`);return m==null||typeof m=="string"?null:m}l(we,"pollForWork");function he(e,t){return{logger:{info:l(r=>t(r),"info"),warn:l(r=>t(r),"warn"),error:l(r=>t(r),"error")},job:{attempts:e}}}l(he,"makeHelpers");async function ye(e,t,r,p){let d=ue[e.kind],m=Date.now();if(s(r,{event:"claim",jobId:e.id,kind:e.kind,attempts:e.attempts}),!d){let n=`unknown kind: ${e.kind}`;s(r,{event:"fail",jobId:e.id,kind:e.kind,terminal:!0,error:n}),await E(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:n,terminal:!0}).catch(()=>{});return}let g=l(()=>{s(r,{event:"heartbeat",jobId:e.id}),w(`/api/work/${e.id}/heartbeat`,{leaseToken:e.leaseToken},{budgetMs:Math.min($,Math.max(0,t-1e3)),signal:p,log:r,event:"heartbeat",jobId:e.id}).then(n=>{n.ok||s(r,{event:"heartbeat_error",jobId:e.id,attempts:n.attempts,error:n.error instanceof Error?n.error.message:String(n.error)})})},"beat"),f=setInterval(g,t);h={jobId:e.id,beat:g};let a;try{let n=he(e.attempts,r);a={kind:"complete",result:await d(e.payload,n)??{}}}catch(n){let i=H?.pausesSince(m)??[],c=ae(i),u=n instanceof Error?n.message:String(n),v=L(n),o=!v&&se(i);a={kind:"fail",message:c?`${c}; ${u}`:u,pausedDuringJob:!!c,terminal:v,hostSuspended:o}}try{if(a.kind==="complete"){s(r,{event:"complete",jobId:e.id,kind:e.kind,durationMs:Date.now()-m});let n=await w(`/api/work/${e.id}/complete`,{leaseToken:e.leaseToken,result:a.result},{budgetMs:R,signal:p,log:r,event:"complete_post",jobId:e.id});n.ok||s(r,{event:"complete_post_error",jobId:e.id,kind:e.kind,attempts:n.attempts,error:n.error instanceof Error?n.error.message:String(n.error)})}else{s(r,{event:"fail",jobId:e.id,kind:e.kind,durationMs:Date.now()-m,terminal:a.terminal,error:a.message,...a.pausedDuringJob?{pausedDuringJob:!0}:{},...a.hostSuspended?{hostSuspended:!0}:{}});let n=await w(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:a.message,terminal:a.terminal,hostSuspended:a.hostSuspended},{budgetMs:R,signal:p,log:r,event:"fail_post",jobId:e.id});n.ok||s(r,{event:"fail_post_error",jobId:e.id,attempts:n.attempts,error:n.error instanceof Error?n.error.message:String(n.error)})}}finally{clearInterval(f),h=null}}l(ye,"runOne");var ce=new Set(["process_eval","process_suggestion_eval","process_conversation","process_insights","process_session_goal","distill_memories","memory_ab","cron_suggest_instructions","cron_eval_autorun","cron_instruction_evolution","process_judge_review","harbor_ab"]);async function en(e){let t=e.log??(()=>{}),r=e.pollWaitMs??_e,p=e.heartbeatIntervalMs??fe,d=e.capabilities??ge();s(t,{event:"agent_start",capabilities:d,pollWaitMs:r,heartbeatIntervalMs:p});try{let o=te();o.removed.length>0&&s(t,{event:"eval_worktrees_swept",removed:o.removed.length})}catch(o){s(t,{event:"eval_worktree_sweep_failed",error:o instanceof Error?o.message:String(o)})}H=oe({signal:e.signal,onPause:l(o=>{s(t,{event:"machine_pause",...o,jobId:h?.jobId??null}),h?.beat()},"onPause")});let m=be(d,e.signal,t,e.version);re({signal:e.signal,log:t}).catch(o=>{s(t,{event:"tt_heartbeat_fatal",error:o instanceof Error?o.message:String(o)})});let g=5*6e4,f=0,a=l(()=>{if(!e.readInstalledVersion||!e.version)return!1;let o=Date.now();if(o-f<g)return!1;f=o;let b=e.readInstalledVersion();return!!(b&&b!==e.version)},"versionDrifted"),n=new AbortController,i=n.signal;e.signal.aborted?n.abort():e.signal.addEventListener("abort",()=>n.abort(),{once:!0});let c=l(async(o,b)=>{let _=le;for(;!i.aborted;){if(a()){s(t,{event:"agent_version_drift",bootVersion:e.version,installedVersion:e.readInstalledVersion?.()??null}),n.abort(),e.onVersionDrift?.();break}let y=null;try{y=await we([...b],r)}catch(k){let me=k instanceof M?k.statusCode:void 0;if(s(t,{event:"poll_error",lane:o,status:me,error:k instanceof Error?k.message:String(k)}),!await I(_,i))break;_=Math.min(_*2,de);continue}if(!y){if(s(t,{event:"poll_204",lane:o}),!await I(_,i))break;_=Math.min(_*2,de);continue}_=le,await ye(y,p,t,i)}},"runLane"),u=d.filter(o=>ce.has(o)),v=d.filter(o=>!ce.has(o));u.length>0&&v.length>0?(s(t,{event:"agent_lanes",heavy:u.length,fast:v.length}),await Promise.all([c("heavy",u),c("fast",v)])):await c("single",d),await m.shutdown(),s(t,{event:"agent_stop"})}l(en,"runAgentLoop");export{ue as a,ie as b,ge as c,we as d,en as e};
|
package/dist/chunk-PZS55PW2.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as c}from"./chunk-ZLLER3HP.js";import{fetchAllSources as _,TIER_1_SOURCES as b,TIER_2_SOURCES as w,loadDiscoveredSources as $}from"@rulemetric/skills-registry";import{writeFile as U,mkdir as I}from"node:fs/promises";import O from"node:os";import E from"node:path";var l=200;async function v(m,e){let u=e.failed>0?16096779:2278750,d={title:e.failed>0?"\u26A0\uFE0F Skills registry refresh (partial failures)":"\u2705 Skills registry refreshed",color:u,fields:[{name:"Total skills",value:String(e.total),inline:!0},{name:"Sources",value:String(e.sources),inline:!0},{name:"Duration",value:`${Math.round(e.durationMs/1e3)}s`,inline:!0},{name:"Inserted",value:String(e.inserted),inline:!0},{name:"Updated",value:String(e.updated),inline:!0},{name:"Unchanged",value:String(e.unchanged),inline:!0},...e.failed>0?[{name:"Failed",value:String(e.failed),inline:!0}]:[]],timestamp:new Date().toISOString()};try{let n=await fetch(m,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({embeds:[d]})});n.ok||console.error("[cron-refresh-skills] Discord alert failed",n.status)}catch(n){console.error("[cron-refresh-skills] Discord alert threw",n)}}c(v,"postDiscordAlert");var C=c(async(m,e)=>{if(!process.env.GITHUB_TOKEN){e.logger.warn("GITHUB_TOKEN unset \u2014 skipping skills registry refresh. Without a token the unauthenticated 60 req/hr cap is too tight for ~351 sources; set GITHUB_TOKEN (5000 req/hr) and re-run.");return}let u=Date.now(),g=$(),d=new Set,n=[...b,...w,...g].filter(r=>d.has(r.repo)?!1:(d.add(r.repo),!0));e.logger.info(`Fetching from ${n.length} sources (T1=${b.length}, T2=${w.length}, discovered=${g.length})`);let o=await _(n,{onProgress:c((r,a)=>e.logger.info(`fetched ${a} from ${r}`),"onProgress")}),S=E.join(O.homedir(),".config","rulemetric");await I(S,{recursive:!0});let R=E.join(S,"skills-registry.json");await U(R,JSON.stringify({generatedAt:new Date().toISOString(),skills:o.entries},null,2)),e.logger.info(`Refreshed disk registry: ${o.entries.length} skills`);let k=process.env.RULEMETRIC_API_URL,T=process.env.RULEMETRIC_REGISTRY_BOT_TOKEN;if(!k||!T){e.logger.warn("RULEMETRIC_API_URL or RULEMETRIC_REGISTRY_BOT_TOKEN unset; skipping DB sync");return}let f=0,h=0,p=0,s=0;for(let r=0;r<o.entries.length;r+=l){let a=o.entries.slice(r,r+l).map(t=>({id:t.id,name:t.name,description:t.description,content:t.content,source:t.source,tags:t.tags,category:t.category,updatedAt:t.updatedAt,sourceUpdatedAt:t.sourceUpdatedAt,popularity:t.popularity}));try{let t=await fetch(`${k}/api/skills/sync-public`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${T}`},body:JSON.stringify({skills:a})});if(!t.ok){e.logger.warn(`Batch ${r/l} failed: ${t.status} ${await t.text()}`),s+=a.length;continue}let i=await t.json();f+=i.inserted,h+=i.updated,p+=i.unchanged,i.skipped&&(e.logger.warn(`Batch ${r/l}: ${i.skipped} skills skipped (invalid)`),s+=i.skipped)}catch(t){e.logger.warn(`Batch ${r/l} threw: ${t instanceof Error?t.message:String(t)}`),s+=a.length}}e.logger.info(`DB sync: inserted=${f} updated=${h} unchanged=${p} failed=${s}`);let y=process.env.DISCORD_WEBHOOK_URL;y&&await v(y,{total:o.entries.length,inserted:f,updated:h,unchanged:p,failed:s,sources:n.length,durationMs:Date.now()-u})},"cronRefreshSkills");export{C as a};
|
package/dist/chunk-TTZWVZIW.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as d}from"./chunk-I6W2KC6W.js";import{a as g}from"./chunk-HYQ5YKBC.js";import{e as c,h as p}from"./chunk-GIXHG5FK.js";import{a as i}from"./chunk-ZLLER3HP.js";import{createHash as l}from"node:crypto";import{z as r}from"zod";var m=r.object({content:r.string().min(1),name:r.string().min(1),type:r.enum(["instruction","skill"]),contentHash:r.string().regex(/^[a-f0-9]{64}$/),suggestionId:r.string().uuid()}).strict();async function w(e,u){let t=m.parse(e.candidateSnapshot);if(l("sha256").update(t.content).digest("hex")!==t.contentHash)throw new Error("Candidate snapshot hash mismatch");let o=e.preparationSourceJobId?{preparationSourceJobId:e.preparationSourceJobId}:await g({...e,candidateSnapshot:t,config:{...e.config,parallel:1,runsPerEval:1,iteration:1,skipBaseline:!1,skipGrading:!1,generateIfEmpty:!0,timeout:12e4}},u);if((await c(`/api/eval-targets/${e.evalTargetId}/jobs`)).find(s=>s.id===e.mirrorId)?.status==="cancelled")return{...o,cancelled:!0,adoptionAllowed:!1};let a;try{a=await d({evalTargetId:e.evalTargetId,evalJobId:e.preparationSourceJobId??e.mirrorId,...t})}catch(s){a={status:"blocked",reason:s instanceof Error?s.message:String(s)}}let n={...o,livePreparation:a,evidenceKind:"constructed_evaluation",candidateHash:t.contentHash,suggestionId:t.suggestionId,adoptionAllowed:!1};return await p(`/api/eval-jobs/${e.mirrorId}/state`,{result:n}),n}i(w,"processSuggestionEval");export{w as a};
|
package/dist/chunk-U3YPVLM3.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as l}from"./chunk-IG4JMWFK.js";import{a as f}from"./chunk-5RBLIVBF.js";import{a as p}from"./chunk-EHW2KS6R.js";import{h as m}from"./chunk-GIXHG5FK.js";import{a as c}from"./chunk-ZLLER3HP.js";async function d(t){if(!t.worktree?.create)return t;let{branch:n,baseRef:i}=t.worktree,o=await l({repoRoot:t.projectPath,branch:n,baseRef:i});return{...t,projectPath:o.path,gitBranch:o.branch}}c(d,"resolveWorktreeForLaunch");async function j(t,n){let{mirrorId:i,tool:o}=t,{config:r}=t,a=c(e=>n.logger.info(e),"log");if(n.job.attempts>1)throw new f(`process_launch is not safe to retry (attempt ${n.job.attempts}). Re-launch manually.`);r=await d(r),r.worktree?.create&&a(`Worktree resolved: ${r.projectPath} (branch ${r.gitBranch})`),a(`Launching ${o}...`);let{getLauncher:g}=await import("./dist-UAAG2IWQ.js"),u=await g(o).launch(r);a(`Launch completed: sessionId=${u.sessionId}`);let s;if(r.scopedConfirmation&&r.mode==="headless")try{s=await p(r,u.sessionId)}catch(e){s={status:"unmeasured",reason:e instanceof Error?e.message:String(e)}}let h={...u,...s?{studyOutcome:s}:{},worktreePath:r.worktree?.create?r.projectPath:void 0,runId:r.runId};return await m(`/api/launch-jobs/${i}/state`,{result:h}).catch(e=>{a(`result persist failed: ${e instanceof Error?e.message:String(e)}`)}),h}c(j,"processLaunch");export{d as a,j as b};
|
package/dist/chunk-XXPWPKTD.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as c,f as m}from"./chunk-GIXHG5FK.js";import{a as s}from"./chunk-ZLLER3HP.js";var R=new Set([408,429,502,503,504]),_=12e4,T=2e4,b=1e3,l=15e3;function p(t,e){try{t(JSON.stringify({ts:new Date().toISOString(),...e}))}catch{t(`[agent-loop] log_error event=${e.event}`)}}s(p,"structuredLog");function f(t,e){return e.aborted?Promise.resolve(!1):t<=0?Promise.resolve(!0):new Promise(r=>{let a=setTimeout(()=>{e.removeEventListener("abort",o),r(!0)},t),o=s(()=>{clearTimeout(a),e.removeEventListener("abort",o),r(!1)},"onAbort");e.addEventListener("abort",o,{once:!0})})}s(f,"abortableSleep");function g(t){return t instanceof c?R.has(t.statusCode):!0}s(g,"isRetryableReportError");async function S(t,e,r){let a=Date.now()+r.budgetMs,o=b;for(let i=1;;i++)try{return await m(t,e),{ok:!0,attempts:i}}catch(n){let u=a-Date.now();if(!g(n)||u<=0||r.signal.aborted)return{ok:!1,attempts:i,error:n};if(p(r.log,{event:`${r.event}_retry`,jobId:r.jobId,attempt:i,status:n instanceof c?n.statusCode:void 0,error:n instanceof Error?n.message:String(n),retryInMs:Math.min(o,u)}),!await f(Math.min(o,u),r.signal))return{ok:!1,attempts:i,error:n};o=Math.min(o*2,l)}}s(S,"postReportWithRetry");export{R as a,_ as b,T as c,b as d,l as e,p as f,f as g,g as h,S as i};
|