@rulemetric/cli 0.15.0 → 0.16.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-3WCX2SLU.js +1 -0
- package/dist/{chunk-LLXC5SRC.js → chunk-5A6TMSRO.js} +1 -1
- package/dist/{chunk-RDL4HXFL.js → chunk-5CVP5NFH.js} +1 -1
- package/dist/{chunk-74KE4VOX.js → chunk-65LFPUDB.js} +1 -1
- package/dist/{chunk-QFTAU33Y.js → chunk-7LE2W3WP.js} +1 -1
- package/dist/{chunk-W6MMJRFZ.js → chunk-7YZURVZD.js} +1 -1
- package/dist/{chunk-AFEJYDUK.js → chunk-BU3ZGLQG.js} +1 -1
- package/dist/{chunk-CYCH2EQC.js → chunk-D4FP5M2B.js} +1 -1
- package/dist/{chunk-XCH4HPEZ.js → chunk-DHIEGG4T.js} +1 -1
- package/dist/{chunk-5Z6XXOJL.js → chunk-E4CIJ67Z.js} +1 -1
- package/dist/{chunk-CIKQXFQ2.js → chunk-EFEPD4AZ.js} +1 -1
- package/dist/chunk-EHW2KS6R.js +1 -0
- package/dist/chunk-GGUXEZC3.js +1 -0
- package/dist/{chunk-IFIWDL7G.js → chunk-GIQ2HK3W.js} +1 -1
- package/dist/{chunk-TWPD3ICV.js → chunk-GYKYJJNF.js} +1 -1
- package/dist/{chunk-HXOQUYG3.js → chunk-HBDKOU2N.js} +1 -1
- package/dist/chunk-HTAHNQZJ.js +1 -0
- package/dist/chunk-HYQ5YKBC.js +1 -0
- package/dist/chunk-I6W2KC6W.js +1 -0
- package/dist/{chunk-ISFPPDDB.js → chunk-IG4JMWFK.js} +1 -1
- package/dist/{chunk-CMDOLJ23.js → chunk-ISEUEYSC.js} +1 -1
- package/dist/{chunk-HT6R6KR3.js → chunk-KFNFLMUR.js} +1 -1
- package/dist/{chunk-DYET4EYU.js → chunk-KGU2IW54.js} +1 -1
- package/dist/{chunk-WQFR2LOY.js → chunk-KOORMTZO.js} +1 -1
- package/dist/chunk-MMMT34KO.js +28 -0
- package/dist/chunk-OCCJEWOF.js +1 -0
- package/dist/{chunk-RE7RAZQ5.js → chunk-RIYVZDOQ.js} +5 -5
- package/dist/{chunk-JSGXFD42.js → chunk-TQM7MF5C.js} +1 -1
- package/dist/{chunk-EJY5GK6A.js → chunk-TSLBCZ5P.js} +1 -1
- package/dist/chunk-TTZWVZIW.js +1 -0
- package/dist/chunk-U3YPVLM3.js +1 -0
- package/dist/{chunk-JUBXWTJA.js → chunk-USKRCVX3.js} +1 -1
- package/dist/{chunk-JOXTWLLK.js → chunk-WL34G6IR.js} +1 -1
- package/dist/{chunk-5PMTNNA6.js → chunk-WOANSBMJ.js} +1 -1
- package/dist/{chunk-RYCVPQYK.js → chunk-XQCGAPLN.js} +1 -1
- package/dist/{chunk-7LFCZI64.js → chunk-ZKPURXUS.js} +1 -1
- package/dist/commands/diagnostics.js +1 -1
- package/dist/commands/evals/agent.js +1 -1
- package/dist/commands/evals/benchmark.js +1 -1
- package/dist/commands/evals/optimize.js +1 -1
- package/dist/commands/evals/refine-cases.js +1 -1
- 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/{dist-GSHUC7UU.js → dist-UAAG2IWQ.js} +1 -1
- package/dist/lib/agent-loop.js +1 -1
- package/dist/lib/eval-benchmark.js +1 -1
- package/dist/lib/eval-case-generator.js +1 -1
- package/dist/lib/eval-conversation-handler.js +1 -1
- package/dist/lib/evolution-cost.js +1 -1
- package/dist/lib/evolution-enrolment.js +1 -1
- package/dist/lib/instruction-proposer.js +1 -1
- package/dist/lib/instruction-restoration.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-instruction-evolution.js +1 -1
- package/dist/lib/jobs/handlers/cron-instruction-training.js +1 -1
- package/dist/lib/jobs/handlers/cron-refine-cases.js +1 -1
- package/dist/lib/jobs/handlers/cron-refresh-pricing.js +1 -1
- package/dist/lib/jobs/handlers/cron-suggest-instructions.js +1 -1
- package/dist/lib/jobs/handlers/distill-memories.js +1 -1
- package/dist/lib/jobs/handlers/finalize-scoped-launch.js +1 -0
- package/dist/lib/jobs/handlers/prepare-suggestion-live.js +1 -0
- package/dist/lib/jobs/handlers/process-changelog.js +1 -1
- package/dist/lib/jobs/handlers/process-conversation.js +1 -1
- package/dist/lib/jobs/handlers/process-eval.js +1 -1
- package/dist/lib/jobs/handlers/process-insights.js +1 -1
- package/dist/lib/jobs/handlers/process-launch.js +1 -1
- package/dist/lib/jobs/handlers/process-memory-ab.js +1 -1
- package/dist/lib/jobs/handlers/process-run-cleanup.js +1 -1
- package/dist/lib/jobs/handlers/process-session-goal.js +1 -1
- package/dist/lib/jobs/handlers/process-suggestion-eval.js +1 -0
- package/dist/lib/llm-client.js +1 -1
- package/dist/lib/manual-tasks.js +1 -1
- package/dist/lib/optimize-compare.js +1 -1
- package/dist/lib/projects/workspace/worktree.js +1 -1
- package/dist/lib/refine-cases.js +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +6 -6
- package/dist/chunk-4DA6L7KL.js +0 -1
- package/dist/chunk-L562Y4RN.js +0 -1
- package/dist/chunk-N2PP2A7M.js +0 -1
- package/dist/chunk-T75KAEJO.js +0 -25
- package/dist/chunk-V576KKH6.js +0 -1
- package/dist/chunk-XIOYV5A7.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as P,c as C}from"../../chunk-
|
|
1
|
+
import{b as P,c as C}from"../../chunk-BU3ZGLQG.js";import{a as V}from"../../chunk-PDXHRF4E.js";import{a as N}from"../../chunk-FG343JM3.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-KFNFLMUR.js";import{f as F}from"../../chunk-4GOXEEXZ.js";import"../../chunk-JP6ULOEX.js";import"../../chunk-JNLDISBA.js";import"../../chunk-GPBN4ROE.js";import"../../chunk-6XTLP2G7.js";import"../../chunk-PJ3WHQ67.js";import{a as 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 w,f as m,g as S}from"../../chunk-GIXHG5FK.js";import"../../chunk-X6CF5KTW.js";import"../../chunk-XQYAVSUQ.js";import"../../chunk-PZNWH4VQ.js";import{a as k}from"../../chunk-ZLLER3HP.js";import{createInterface as _}from"node:readline/promises";import{Args as q,Flags as g}from"@oclif/core";var $=class O extends A{static{k(this,"EvalOptimizeCommand")}static description="Iteratively optimize eval target content using eval results as feedback";static examples=["<%= config.bin %> evals optimize <target-id>","<%= config.bin %> evals optimize <target-id> --auto --max-iterations 3"];static args={targetId:q.string({description:"Eval target ID",required:!0})};static flags={auto:g.boolean({description:"Skip interactive review, apply suggestions automatically",default:!1}),"max-iterations":g.integer({description:"Maximum optimization iterations",default:5}),threshold:g.string({description:"Stop if pass rate reaches this threshold (0-1)",default:"0.95"}),model:g.string({description:"Model for eval execution"}),"analyzer-model":g.string({description:"Model for analysis/suggestions"}),timeout:g.integer({description:"Timeout per eval in ms",default:12e4})};async run(){let{args:n,flags:e}=await this.parse(O);this.requireAuth();let t=await w(`/api/eval-targets/${n.targetId}`),i=await w(`/api/eval-targets/${n.targetId}/evals`);i.length===0&&this.error("No evals found. Create some first with `rulemetric evals create`.");let s=[...i].sort(()=>Math.random()-.5),c=Math.ceil(s.length*.6),u=s.slice(0,c),d=s.slice(c);this.log(`Optimizing "${t.name}" v${t.version}`),this.log(`Evals: ${u.length} train, ${d.length} test`);let h=parseFloat(e.threshold);this.log(`Config: max ${e["max-iterations"]} iterations, threshold ${(h*100).toFixed(0)}%`),e.auto&&this.log("Mode: auto (no interactive review)"),this.log("");let T=t.version,f=0,x=0;for(let l=1;l<=e["max-iterations"];l++){this.log(`
|
|
2
2
|
=== Iteration ${l} ===`),this.log("Running train evals...");let b=await this.runEvalsOnTarget(t,u,e),p=this.computePassRate(b);if(this.log(`Train pass rate: ${(p*100).toFixed(1)}%`),p>=h){this.log(`Train score ${(p*100).toFixed(1)}% >= threshold ${(h*100).toFixed(0)}%. Stopping.`);let o=await this.runEvalsOnTarget(t,d,e),z=this.computePassRate(o);this.log(`Final test score: ${(z*100).toFixed(1)}%`),await m("/api/optimization-runs",{evalTargetId:t.id,type:"content",iteration:l,inputVersion:t.version,trainScore:p,testScore:z,analysis:{reason:"threshold_reached"},status:"completed"});break}this.log("Analyzing results...");let M=b.map(o=>({evalName:o.evalName,prompt:o.prompt,expectations:o.expectations,grading:o.grading})),a=await V({content:t.content,evalResults:M,model:e["analyzer-model"]??e.model,timeout:e.timeout});this.log(`
|
|
3
3
|
Assessment: ${a.overallAssessment}`),this.log(`Suggestions: ${a.suggestions.length}`);for(let o of a.suggestions)this.log(` - [${o.section}] ${o.reasoning}`);if(a.proposedContent===t.content){this.log("No changes proposed. Stopping."),await m("/api/optimization-runs",{evalTargetId:t.id,type:"content",iteration:l,inputVersion:t.version,trainScore:p,analysis:{reason:"no_changes"},status:"completed"});break}if(!e.auto&&!await this.confirm(`
|
|
4
4
|
Apply the proposed changes as a new version? [y/N] `)){this.log("Changes not applied. Stopping."),await m("/api/optimization-runs",{evalTargetId:t.id,type:"content",iteration:l,inputVersion:t.version,trainScore:p,analysis:{reason:"user_declined",suggestions:a.suggestions},status:"completed"});break}let r=await S(`/api/eval-targets/${t.id}`,{content:a.proposedContent});this.log(`Created v${r.version}`),this.log(`Running test evals on v${t.version} (baseline) and v${r.version}...`);let E=await this.runEvalsOnTarget(t,d,e),R=await this.runEvalsOnTarget(r,d,e),v=this.computePassRate(R),I=this.computePassRate(E);this.log(`Test pass rate: v${t.version} ${(I*100).toFixed(1)}% \u2192 v${r.version} ${(v*100).toFixed(1)}%`);let y=P(E,R);if(y&&this.log(C(y,t.version,r.version)),await m("/api/optimization-runs",{evalTargetId:t.id,type:"content",iteration:l,inputVersion:t.version,outputVersion:r.version,trainScore:p,testScore:v,analysis:{suggestions:a.suggestions,overallAssessment:a.overallAssessment,priorTestScore:I,verdict:y},status:"completed"}),v>f)f=v,T=r.version,x=0;else if(x++,x>=2){this.log("No improvement for 2 consecutive iterations. Stopping.");break}t=r}this.log(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as w,c as $}from"../../chunk-
|
|
1
|
+
import{b as w,c as $}from"../../chunk-TSLBCZ5P.js";import"../../chunk-65LFPUDB.js";import{b as v}from"../../chunk-HBDKOU2N.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-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{a as f}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 d,f as p,h}from"../../chunk-GIXHG5FK.js";import"../../chunk-X6CF5KTW.js";import"../../chunk-XQYAVSUQ.js";import"../../chunk-PZNWH4VQ.js";import{a}from"../../chunk-ZLLER3HP.js";import{Args as P,Flags as y}from"@oclif/core";var c=a(s=>s==null?"n/a":`${Math.round(s*100)}%`,"pct"),g=class s extends f{static{a(this,"EvalRefineCases")}static description="Retire non-discriminating eval cases and regenerate discriminating replacements (\xA76e)";static examples=["<%= config.bin %> evals refine-cases <target-id> # preview","<%= config.bin %> evals refine-cases <target-id> --yes # apply: retire + regenerate","<%= config.bin %> evals refine-cases <target-id> --yes --no-generate"];static args={targetId:P.string({description:"Eval target ID",required:!0})};static flags={yes:y.boolean({char:"y",description:"Apply (retire + regenerate). Without this, only previews."}),"no-generate":y.boolean({description:"Retire dead cases but do not regenerate replacements."})};async run(){let{args:b,flags:l}=await this.parse(s);this.requireAuth();let n=b.targetId,o=await d(`/api/eval-targets/${n}`),m=await d(`/api/eval-targets/${n}/judge-calibration`),i=m.caseDiscrimination,t=w(i);if(this.log(`Target "${o.name}" v${o.version} \u2014 judge ${m.judge.currentModel??"(unstamped)"}`),t.refused==="no-discrimination-data"){this.log("No case-discrimination data yet \u2014 run some evals with AND without the target first (`evals run` / the web Run Evals button), then refine.");return}if(this.log(`${i.total} diagnosable case(s): ${i.discriminating} discriminate, ${i.nonDiscriminating} flat/wrong-sign, ${i.unpaired} unpaired.`),t.refused==="all-discriminating"){this.log("Every case discriminates \u2014 nothing to retire. \u{1F389}");return}let C=i.cases.filter(e=>!e.discriminating),u=new Set(t.retire.map(e=>e.evalId));this.log(`
|
|
2
2
|
Would retire ${t.retire.length} non-discriminating case(s):`);for(let e of C)u.has(e.evalId)&&this.log(` \u2717 ${e.name} \u2014 ${c(e.withPassRate)} with vs ${c(e.withoutPassRate)} without (\u0394${(e.separation*100).toFixed(0)}pp) \u2014 ${e.note}`);for(let e of i.unpairedCases)u.has(e.evalId)&&this.log(` \u2717 ${e.name} \u2014 ${c(e.withPassRate)} with vs ${c(e.withoutPassRate)} without \u2014 unpaired`);if(t.replacementsRequired&&this.log(`
|
|
3
3
|
${t.summary}. Replacements are generated and created BEFORE anything is retired \u2014 a target left under the floor drops out of the nightly evolution rotation with no error anywhere.`),!l.yes){this.log(`
|
|
4
4
|
Preview only. Re-run with --yes to retire ${t.retire.length} case(s)${l["no-generate"]?"":" and generate replacements"}.`);return}let r=await $(t,{generate:a(e=>l["no-generate"]?Promise.resolve([]):v({content:o.content,name:o.name,feedback:e}),"generate"),createCase:a(e=>p(`/api/eval-targets/${n}/evals`,{name:e.name,prompt:e.prompt,expectations:e.expectations}),"createCase"),retireCase:a(async(e,R)=>{await h(`/api/eval-targets/${n}/evals/${e}`,{retire:!0,retiredReason:R})},"retireCase"),log:a(e=>this.log(e),"log")});if(r.skipped==="no-llm-backend"){this.warn(r.summary+" Install the `claude` CLI (or set ANTHROPIC_API_KEY), then run `evals refine-cases` again.");return}if(r.skipped==="no-replacements-generated"){this.warn(r.summary);return}this.log(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l}from"../../chunk-
|
|
1
|
+
import{a as l}from"../../chunk-MMMT34KO.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-RIYVZDOQ.js";import"../../chunk-6T6YFPBW.js";import"../../chunk-ISYU5BMU.js";import"../../chunk-DANMUHNW.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-RIYVZDOQ.js";import"../../chunk-6T6YFPBW.js";import"../../chunk-ISYU5BMU.js";import"../../chunk-DANMUHNW.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 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{a as R}from"../chunk-4Z5ECCJE.js";import"../chunk-ARNZQBMX.js";import{a as B,b as S,c as F}from"../chunk-
|
|
1
|
+
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{a as R}from"../chunk-4Z5ECCJE.js";import"../chunk-ARNZQBMX.js";import{a as B,b as S,c as F}from"../chunk-XQCGAPLN.js";import{a as z}from"../chunk-GDLQNY4V.js";import"../chunk-PJ4RIUI3.js";import"../chunk-NBTC5FNV.js";import"../chunk-TU2AR6XO.js";import{a as u,b as T,d as a,e as v}from"../chunk-NJ5UED3H.js";import"../chunk-NWV66NMA.js";import"../chunk-ZXF5NE54.js";import"../chunk-MMMT34KO.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-UAAG2IWQ.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-XQCGAPLN.js";import"../chunk-MMMT34KO.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,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-MMMT34KO.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-OCCJEWOF.js";import"../chunk-XXPWPKTD.js";import"../chunk-5TM7AOH2.js";import"../chunk-IEQDLURA.js";import"../chunk-KINIFUZQ.js";import"../chunk-U3YPVLM3.js";import"../chunk-TQM7MF5C.js";import"../chunk-WOANSBMJ.js";import"../chunk-IG4JMWFK.js";import"../chunk-ZYGBABMZ.js";import"../chunk-GIQ2HK3W.js";import"../chunk-TTZWVZIW.js";import"../chunk-FZMO7XSN.js";import"../chunk-MOJY6S5J.js";import"../chunk-I6W2KC6W.js";import"../chunk-5A6TMSRO.js";import"../chunk-HYQ5YKBC.js";import"../chunk-JU5ZNXPK.js";import"../chunk-3WCX2SLU.js";import"../chunk-KOORMTZO.js";import"../chunk-5RBLIVBF.js";import"../chunk-Q7IDLOSP.js";import"../chunk-CZBO3A6B.js";import"../chunk-USKRCVX3.js";import"../chunk-7YZURVZD.js";import"../chunk-PZS55PW2.js";import"../chunk-QPAOX7P2.js";import"../chunk-3ZHVP3KE.js";import"../chunk-EFEPD4AZ.js";import"../chunk-HOQPVOMF.js";import"../chunk-E4CIJ67Z.js";import"../chunk-EHW2KS6R.js";import"../chunk-D4FP5M2B.js";import"../chunk-CVPAKEEZ.js";import"../chunk-VUNJGZPP.js";import"../chunk-GGUXEZC3.js";import"../chunk-GLBWNB2N.js";import"../chunk-CQD2R3BA.js";import"../chunk-3UKZJAFS.js";import"../chunk-77FH6UZP.js";import"../chunk-KE5K3F7J.js";import"../chunk-PIVEJTNF.js";import"../chunk-KR36ZDGN.js";import"../chunk-WL34G6IR.js";import"../chunk-GIRPEMTW.js";import"../chunk-SIGZEQ3K.js";import"../chunk-DQYYHX6K.js";import"../chunk-RIYVZDOQ.js";import"../chunk-6T6YFPBW.js";import"../chunk-ISYU5BMU.js";import"../chunk-DANMUHNW.js";import"../chunk-MMMT34KO.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c}from"../chunk-
|
|
1
|
+
import{a,b,c}from"../chunk-7LE2W3WP.js";import"../chunk-KFNFLMUR.js";import"../chunk-GIXHG5FK.js";import"../chunk-X6CF5KTW.js";import"../chunk-XQYAVSUQ.js";import"../chunk-PZNWH4VQ.js";import"../chunk-ZLLER3HP.js";export{b as aggregateBenchmark,c as postBenchmark,a as summarizeRuns};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../chunk-
|
|
1
|
+
import{a,b}from"../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-4GOXEEXZ.js";import"../chunk-JP6ULOEX.js";import"../chunk-JNLDISBA.js";import"../chunk-GPBN4ROE.js";import"../chunk-6XTLP2G7.js";import"../chunk-PJ3WHQ67.js";import"../chunk-XQYAVSUQ.js";import"../chunk-ZLLER3HP.js";export{a as buildFeedbackBlock,b as generateEvalCases};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-WL34G6IR.js";import"../chunk-HBDKOU2N.js";import"../chunk-PDXHRF4E.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-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 processConversationJob};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n}from"../chunk-GYKYJJNF.js";import"../chunk-KFNFLMUR.js";import"../chunk-ZLLER3HP.js";export{g as DEFAULT_AUTO_EVOLVE_PAIRS,h as MAX_AUTO_EVOLVE_PAIRS,c as MAX_GRADER_ATTEMPTS,a as MODEL_CALLS_PER_PAIR,d as OBSERVED_PAIRED_DELTA_VARIANCE,b as PROPOSAL_CALLS,n as describeEvolutionCost,k as estimateEvolutionCost,j as isEvolutionPaused,e as mdeForPairs,l as observedEvolutionCost,f as pairsForMde,m as pp,i as readPairBudget};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c}from"../chunk-
|
|
1
|
+
import{a,b,c}from"../chunk-65LFPUDB.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-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 MIN_LIVE_CASES,c as RULE_ENROLMENT_CAP_PER_USER,a as minFeasibleLiveCases};
|
|
@@ -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}from"../chunk-ZKPURXUS.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-ZLLER3HP.js";export{a as FILE_CONTENT_BEGIN,b as FILE_CONTENT_END,d as MAX_GROWTH_FACTOR,c as MIN_RETAINED_FRACTION,g as buildProposerData,e as buildProposerSystemPrompt,f as describePriorDecision,h as parseProposalResponse,i as proposeInstructionEdit};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-ISEUEYSC.js";import"../chunk-KFNFLMUR.js";import"../chunk-GIXHG5FK.js";import"../chunk-X6CF5KTW.js";import"../chunk-XQYAVSUQ.js";import"../chunk-PZNWH4VQ.js";import"../chunk-ZLLER3HP.js";export{a as restoreInstruction};
|
|
@@ -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-RIYVZDOQ.js";import"../../../chunk-6T6YFPBW.js";import"../../../chunk-ISYU5BMU.js";import"../../../chunk-DANMUHNW.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-D4FP5M2B.js";import"../../../chunk-CVPAKEEZ.js";import"../../../chunk-RIYVZDOQ.js";import"../../../chunk-6T6YFPBW.js";import"../../../chunk-ISYU5BMU.js";import"../../../chunk-DANMUHNW.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 as b,b as c,c as d,d as e,e as f,f as g,g as h,h as i,i as j,j as k,k as l,l as m}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,h as i,i as j,j as k,k as l,l as m}from"../../../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{a}from"../../../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-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{g as DEFAULT_ACCUMULATE_TARGET_PAIRS,c as MAX_PASSES,d as MAX_PASSES_CEILING,h as MAX_PRIOR_DECISIONS,b as PAIR_HEADROOM,l as cronInstructionEvolution,a as findOpenAccumulation,e as passCapFor,f as planPasses,j as readAccumulateConfig,m as readImmutableSections,k as resolveApply,i as summarisePriorDecisions};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-GGUXEZC3.js";import"../../../chunk-GIXHG5FK.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{a as cronInstructionTraining};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-USKRCVX3.js";import"../../../chunk-TSLBCZ5P.js";import"../../../chunk-65LFPUDB.js";import"../../../chunk-HBDKOU2N.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-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{a as cronRefineCases};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-7YZURVZD.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"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{a as cronRefreshPricing};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"../../../chunk-
|
|
1
|
+
import{a,b,c,d,e}from"../../../chunk-EFEPD4AZ.js";import"../../../chunk-HOQPVOMF.js";import"../../../chunk-GIRPEMTW.js";import"../../../chunk-MODXEGCU.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"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{d as buildRemovalProposals,b as buildTrimProposals,e as cronSuggestInstructions,a as isScorableProjectPath,c as nominateRemovals};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunk-
|
|
1
|
+
import{a,b}from"../../../chunk-E4CIJ67Z.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"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{b as distillMemories,a as selectNewMemories};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"../../../chunk-EHW2KS6R.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 finalizeScopedLaunch};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"../../../chunk-I6W2KC6W.js";import"../../../chunk-3WCX2SLU.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-5CVP5NFH.js";import"../../../chunk-HTAHNQZJ.js";import"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-ZLLER3HP.js";export{a as processChangelog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-5A6TMSRO.js";import"../../../chunk-WL34G6IR.js";import"../../../chunk-HBDKOU2N.js";import"../../../chunk-PDXHRF4E.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-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 processConversation};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-HYQ5YKBC.js";import"../../../chunk-JU5ZNXPK.js";import"../../../chunk-3WCX2SLU.js";import"../../../chunk-5RBLIVBF.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-KOORMTZO.js";import"../../../chunk-5RBLIVBF.js";import"../../../chunk-GLBWNB2N.js";import"../../../chunk-CQD2R3BA.js";import"../../../chunk-3UKZJAFS.js";import"../../../chunk-77FH6UZP.js";import"../../../chunk-KE5K3F7J.js";import"../../../chunk-LJRE3LZ2.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"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{b as fetchGeneratorMemory,a as processInsights};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunk-
|
|
1
|
+
import{a,b}from"../../../chunk-U3YPVLM3.js";import"../../../chunk-IG4JMWFK.js";import"../../../chunk-5RBLIVBF.js";import"../../../chunk-EHW2KS6R.js";import"../../../chunk-SIGZEQ3K.js";import"../../../chunk-MMMT34KO.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-TQM7MF5C.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{a as processMemoryAb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-WOANSBMJ.js";import"../../../chunk-IG4JMWFK.js";import"../../../chunk-5RBLIVBF.js";import"../../../chunk-MMMT34KO.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-GIQ2HK3W.js";import"../../../chunk-CVPAKEEZ.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"../../../chunk-X6CF5KTW.js";import"../../../chunk-XQYAVSUQ.js";import"../../../chunk-PZNWH4VQ.js";import"../../../chunk-ZLLER3HP.js";export{a as processSessionGoal};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"../../../chunk-TTZWVZIW.js";import"../../../chunk-I6W2KC6W.js";import"../../../chunk-HYQ5YKBC.js";import"../../../chunk-JU5ZNXPK.js";import"../../../chunk-3WCX2SLU.js";import"../../../chunk-5RBLIVBF.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/llm-client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as f,b as g,c as h,d as i,e as j,f as k,g as l,h as m}from"../chunk-
|
|
1
|
+
import{a as f,b as g,c as h,d as i,e as j,f as k,g as l,h as m}from"../chunk-DHIEGG4T.js";import{b}from"../chunk-PPAHIVG5.js";import"../chunk-5MXZJWQS.js";import{a as c,b as d,c as e}from"../chunk-CT7FWSIU.js";import"../chunk-N7ODX6PO.js";import"../chunk-JNLDISBA.js";import"../chunk-GPBN4ROE.js";import{a}from"../chunk-6XTLP2G7.js";import"../chunk-PJ3WHQ67.js";import"../chunk-ZLLER3HP.js";export{j as detectLlmBackend,i as detectedCodexModel,b as getToolCli,d as parseCopilotReply,e as parsePiReply,f as planToolExecution,k as resetLlmBackendCache,a as resolveToolBin,l as runLlmPrompt,m as runLlmPromptText,g as runToolPrompt,h as unrunnableBackendReason,c as versionProbeSucceeded};
|
package/dist/lib/manual-tasks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as m}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-CZBO3A6B.js";import{a as k}from"../chunk-PZS55PW2.js";import{e as p}from"../chunk-EFEPD4AZ.js";import"../chunk-HOQPVOMF.js";import"../chunk-CVPAKEEZ.js";import"../chunk-PIVEJTNF.js";import"../chunk-GIRPEMTW.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,b,c}from"../chunk-
|
|
1
|
+
import{a,b,c}from"../chunk-BU3ZGLQG.js";import"../chunk-KFNFLMUR.js";import"../chunk-ZLLER3HP.js";export{b as buildVersionVerdict,c as formatVersionVerdict,a as pairVersionResults};
|
|
@@ -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-IG4JMWFK.js";import{w as a}from"../../../chunk-MMMT34KO.js";import"../../../chunk-N7ODX6PO.js";import"../../../chunk-ZLLER3HP.js";export{c as ensureWorktree,d as removeWorktree,b as runGit,a as sanitizeBranch};
|
package/dist/lib/refine-cases.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c}from"../chunk-
|
|
1
|
+
import{a,b,c}from"../chunk-TSLBCZ5P.js";import"../chunk-65LFPUDB.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-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{a as MAX_RETIREMENTS_PER_REFINEMENT,c as executeCaseRefinement,b as planCaseRefinement};
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rulemetric/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.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/hooks": "0.
|
|
84
|
-
"@rulemetric/proxy": "0.
|
|
85
|
-
"@rulemetric/skills-registry": "0.
|
|
83
|
+
"@rulemetric/hooks": "0.16.0",
|
|
84
|
+
"@rulemetric/proxy": "0.16.0",
|
|
85
|
+
"@rulemetric/skills-registry": "0.16.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": {
|
|
@@ -109,8 +109,8 @@
|
|
|
109
109
|
"@rulemetric/effectiveness": "0.0.1",
|
|
110
110
|
"@rulemetric/email": "0.0.1",
|
|
111
111
|
"@rulemetric/session": "0.2.1",
|
|
112
|
-
"@rulemetric/
|
|
113
|
-
"@rulemetric/
|
|
112
|
+
"@rulemetric/telemetry": "0.0.1",
|
|
113
|
+
"@rulemetric/typescript-config": "0.0.0"
|
|
114
114
|
},
|
|
115
115
|
"scripts": {
|
|
116
116
|
"build": "node scripts/build.mjs",
|
package/dist/chunk-4DA6L7KL.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as Y,b as F,c as T,d as Z,e as ee}from"./chunk-JU5ZNXPK.js";import{a as E}from"./chunk-5RBLIVBF.js";import{a as te}from"./chunk-KR36ZDGN.js";import{b as ne}from"./chunk-HXOQUYG3.js";import{a as z,c as X}from"./chunk-FADINV4H.js";import{f as N}from"./chunk-SWSOEYC7.js";import{a as K}from"./chunk-FG343JM3.js";import{a as B,f as Q}from"./chunk-4GOXEEXZ.js";import{e as R,f as I,h as $}from"./chunk-GIXHG5FK.js";import{a as w}from"./chunk-ZLLER3HP.js";import{execFileSync as ce}from"node:child_process";import{tmpdir as oe}from"node:os";import{z as e}from"zod";var C=e.string().regex(/^[a-f0-9]{64}$/),c=e.string().min(1).max(2e4),re=e.string().min(1).max(240).refine(r=>!r.startsWith("/")&&!r.includes("\\")&&r.split("/").every(p=>p!==".."&&p!=="."&&p!==""&&!p.startsWith(".")),"fixture paths must be relative, without traversal or hidden configuration"),P=e.object({path:re,content:e.string().max(1e5)}).strict(),se=e.object({name:c,path:re,kind:e.enum(["text_equals","json_equals","file_absent"]),expected:e.string().max(1e5),primary:e.boolean()}).strict(),le=e.object({evalId:e.string().uuid(),taskId:c,family:c,lineage:c,split:e.enum(["exploration","validation"]),incidentSessionIds:e.array(e.string().uuid()).min(1),opportunity:e.enum(["failure","success","costly_success","should_not_trigger"]),prompt:c,fixtureVersion:c,verifierVersion:c,files:e.array(P).max(100),checks:e.array(se).min(1).max(30),oracleFiles:e.array(P).max(100)}).strict(),ue=e.object({version:e.literal(1),revision:e.number().int().positive(),question:c,hypotheses:e.array(c).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:c,harnessVersion:c,deliveryMode:e.literal("explicit-system-and-fixture-file"),engine:e.enum(["claude","codex"]),model:c,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(c).min(1),expiresAt:e.string().datetime()}).strict(),sampling:e.object({rationale:c,exclusions:e.array(c),eligibleOpportunities:e.number().int().positive(),sampledOpportunities:e.number().int().positive()}).strict(),analysis:e.object({role:e.enum(["diagnostic","exploration","frozen_validation"]),primaryOutcome:c,safeguards:e.array(c).min(1),eligibility:c,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:c}).strict(),tasks:e.array(le).min(1).max(50),supersedes:e.string().uuid().nullable()}).strict().superRefine((r,p)=>{let s=w(i=>p.addIssue({code:"custom",message:i}),"fail");(new Set(r.tasks.map(i=>i.evalId)).size!==r.tasks.length||new Set(r.tasks.map(i=>i.taskId)).size!==r.tasks.length)&&s("task identity must be unique, not repetition"),r.scope.engine==="claude"!=(r.scope.provider==="anthropic")&&s("engine/provider mismatch"),r.scope.engine==="claude"&&[...r.scope.tools].sort().join(",")!=="Bash,Edit,Read,Write"&&s("Claude fixture execution supports exactly Read, Write, Edit and Bash");for(let i of[r.baseline,r.treatment])Array.from(i.content).reduce((n,g)=>{let d=g.codePointAt(0);return n+(d<128?1:d<2048?2:d<65536?3:4)},0)>16e3&&s("Instruction delivery exceeds the UTF-8 byte budget");let f=new Map;for(let i of r.tasks){for(let n of[i.lineage,i.family])f.has(n)&&f.get(n)!==i.split&&s("family or incident lineage leaks across splits"),f.set(n,i.split);[...i.files,...r.baseline.files,...r.treatment.files].some(n=>["CLAUDE.md","CLAUDE.local.md","AGENTS.md"].includes(n.path.split("/").at(-1)))&&s("Fixture files cannot introduce ambient instruction files"),new Set(i.checks.map(n=>n.name)).size!==i.checks.length&&s("Check names must be unique"),i.checks.some(n=>n.primary)||s("each task needs an independent primary artifact check"),new Set(i.files.map(n=>n.path)).size!==i.files.length&&s("duplicate fixture file path");for(let n of[r.baseline,r.treatment])new Set(n.files.map(g=>g.path)).size!==n.files.length&&s("duplicate intervention file path"),n.files.some(g=>i.files.some(d=>d.path===g.path))&&s("intervention must not overwrite common fixture files")}let l=r.tasks.filter(i=>i.split===(r.analysis.role==="frozen_validation"?"validation":"exploration"));l.length||s("no tasks in the selected split"),l.length*2*r.analysis.repetitions>r.analysis.maxCalls&&s("planned calls exceed resource ceiling"),r.sampling.sampledOpportunities>r.sampling.eligibleOpportunities&&s("sampled opportunities exceed eligible opportunities")}),ie=e.object({version:e.literal(1),id:e.string().uuid(),protocolHash:C,protocol:ue}).strict(),de=e.object({studyId:e.string().uuid(),protocolHash:C,taskId:c,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:c,passed:e.boolean(),actual:e.string().nullable()})),deliveryHash:C,fixtureHash:C,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();async function _e(r,p){let{mirrorId:s,evalTargetId:f}=r,l=r.measurement?{...r.config,...X({...r.config,measurement:r.measurement})}:r.config,i=w(t=>p.logger.info(t),"log"),n=r.study?ie.parse(r.study):null;if(n&&n.protocol.scope.engine!=="claude")throw new E("Frozen study isolation is currently verified only for Claude");if(n&&Y(n.protocol)!==n.protocolHash)throw new E("Study snapshot hash mismatch");let g=await R(`/api/eval-targets/${f}`),d=await R(`/api/eval-targets/${f}/evals`);if(n&&(d=n.protocol.tasks.filter(t=>t.split===(n.protocol.analysis.role==="frozen_validation"?"validation":"exploration")).map(t=>({id:t.evalId,name:t.taskId,prompt:t.prompt,expectedOutput:"",expectations:[]}))),d.length===0&&l.generateIfEmpty){i("No eval cases on target \u2014 generating from content via local LLM...");let t=await ne({content:g.content,name:g.name,...r.measurement?{measurement:r.measurement}:{}});if(t===null)throw new Error("Case generation requires a local LLM backend (Claude or Codex CLI) \u2014 none available on this worker.");let a=[];for(let o of t)a.push(await I(`/api/eval-targets/${f}/evals`,o));d=a,i(`Generated ${a.length} eval case(s)`)}if(d.length===0)throw new E("No evals defined for target");let M=null;if(n&&(M=ce(n.protocol.scope.engine,["--version"],{encoding:"utf8",timeout:1e4}).trim(),M!==n.protocol.scope.harnessVersion))throw new E("Observed harness version differs from frozen protocol");if(n){if(l.engine!==n.protocol.scope.engine||l.model!==n.protocol.scope.model||l.runsPerEval!==n.protocol.analysis.repetitions||l.timeout!==n.protocol.analysis.maxSecondsPerCall*1e3||l.skipBaseline||new Date(n.protocol.scope.expiresAt)<=new Date)throw new E("Study execution configuration differs from frozen protocol or scope expired");for(let t of n.protocol.tasks.filter(a=>d.some(o=>o.id===a.evalId))){let a=N({baseDir:oe(),engine:n.protocol.scope.engine});try{F(a.workDir,[...t.files,...t.oracleFiles]);let o=T(a.workDir,t);if(!o.primaryPassed||!o.safeguardsPassed)throw new E(`Oracle failed for ${t.taskId}; no actor calls started`)}finally{a.cleanup()}}}let ae=l.runsPerEval??1,D=l.timeout??12e4,H=n?1:l.iteration??1,_=new Set;if(p.job.attempts>1)for(let a=0;;a+=100){let o=await R(`/api/eval-targets/${f}/runs?jobId=${s}&limit=100&offset=${a}`);for(let m of o)_.add(`${m.evalId}|${m.configuration}|${m.runNumber}|${m.iteration}`);if(o.length<100)break}let O=[{name:"with_target",content:n?.protocol.treatment.content??g.content}];l.skipBaseline||O.push({name:"without_target",...n?{content:n.protocol.baseline.content}:{}});let b=[];for(let t of d)for(let a of O)for(let o=1;o<=ae;o++)_.has(`${t.id}|${a.name}|${o}|${H}`)||b.push({eval_:t,configuration:a.name,targetContent:a.content,runNumber:o});n&&b.sort((t,a)=>t.eval_.id.localeCompare(a.eval_.id)||t.runNumber-a.runNumber||((d.findIndex(o=>o.id===t.eval_.id)+t.runNumber)%2?t.configuration.localeCompare(a.configuration):a.configuration.localeCompare(t.configuration))),_.size>0&&i(`Resuming attempt ${p.job.attempts}: ${_.size} run(s) already persisted, ${b.length} remaining`);let h=b.length,y=0,x=B(l.engine),k=Math.min(l.parallel??1,4);await $(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:h,completed:0,current:null,message:`Starting ${h} eval runs (concurrency: ${k})...`}});let S=[];async function A(t){let a=`${t.configuration} \xB7 ${t.eval_.name} \xB7 run#${t.runNumber}`;i(`[${y+1}/${h}] ${a}`);let o=N({...n?{baseDir:oe()}:{},targetType:n?"instruction":g.type,targetContent:t.targetContent,targetName:g.name,engine:x});o.leakedFiles.length&&i(`\u26A0 CONTAMINATED ${a}: ${o.leakedFiles.join(", ")} survived the strip`);try{let m=n?.protocol.tasks.find(W=>W.evalId===t.eval_.id),v=t.configuration==="with_target"?"treatment":"baseline";n&&m&&F(o.workDir,[...m.files,...n.protocol[v].files]);let q=n&&m?ee(o.workDir,m,n.protocol[v],x):null;n&&m&&await I(`/api/studies/${n.id}/calls`,{jobId:s,taskId:m.taskId,arm:v,repetition:t.runNumber});let u=await Q({prompt:t.eval_.prompt,targetContent:n?t.targetContent:o.systemPrompt,...n?{appendTarget:!0}:{},workDir:o.workDir,timeout:D,model:l.model,engine:x,...n?{writableFixture:!0}:{}}),G={};!l.skipGrading&&t.eval_.expectations.length>0&&!u.error&&(G=await K({...z({engine:x,model:l.model},{engine:l.graderEngine,model:l.graderModel}),prompt:t.eval_.prompt,output:u.output,expectations:t.eval_.expectations,timeout:D}));let L=n?Z(n.protocol,u):null,V=n&&m?{studyId:n.id,protocolHash:n.protocolHash,taskId:m.taskId,arm:v,repetition:t.runNumber,eligible:L===null,exclusion:L,...T(o.workDir,m),deliveryHash:q.deliveryHash,fixtureHash:q.fixtureHash,harnessVersion:M,engine:u.engine??null,model:u.model??null,provider:u.engine==="claude"?"anthropic":u.provider??null,durationMs:u.durationMs,tokens:u.totalTokens||null,costUsd:u.costUsd??null}:null;return{jobId:s,evalId:t.eval_.id,evalTargetId:g.id,evalTargetVersion:g.version,configuration:t.configuration,runNumber:t.runNumber,iteration:H,status:u.error?"failed":"completed",outputs:{...V?{study:V}:{},...u.usage?{usage:u.usage}:{},...u.error?{error:u.error}:{transcript:u.output,...u.model?{model:u.model}:{}},methodology:o.methodology,delivery:o.delivery,isolated:o.isWorktree,engine:u.engine??x,model:u.model??null,deliveryRegime:`${g.type}:${x}:${o.methodology}`,...r.measurement?{measurement:r.measurement}:{},...u.provider?{provider:u.provider}:{},...u.costUsd!=null?{costUsd:u.costUsd}:{},...o.leakedFiles.length?{leakedFiles:o.leakedFiles}:{}},timing:{duration_ms:u.durationMs,total_tokens:u.totalTokens},grading:G,worktree:o.isWorktree?!0:void 0}}finally{o.cleanup()}}if(w(A,"processItem"),k<=1)for(let t of b){let a=`${t.configuration} \xB7 ${t.eval_.name} \xB7 run#${t.runNumber}`;await $(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:h,completed:y,current:a,message:`Executing ${a}...`}});let o=await A(t);await I("/api/eval-runs",o),S.push(o),y++,await $(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:h,completed:y,current:a,message:`Completed ${a}`}})}else{i(`Running ${h} evals with concurrency=${k} (worktree isolation)`);for(let t=0;t<b.length;t+=k){let a=b.slice(t,t+k),o=`batch ${Math.floor(t/k)+1}/${Math.ceil(b.length/k)}`;await $(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:h,completed:y,current:o,message:`Executing ${o} (${a.length} parallel)...`}});let m=await Promise.all(a.map(A));for(let v of m)await I("/api/eval-runs",v),S.push(v),y++;await $(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:h,completed:y,current:o,message:`Completed ${o}`}})}}let J=me(S),j;if(!l.skipGrading&&S.some(t=>t.grading&&Object.keys(t.grading).length>0))try{i(`Running meta-judge for job ${s}...`);let t=d.map(a=>{let m=S.filter(v=>v.evalId===a.id&&v.configuration==="with_target")[0];return{evalName:a.name,prompt:a.prompt,expectations:a.expectations,grading:m?.grading?m.grading:null,output:m?.outputs?.transcript?.slice(0,500)}});j=await te({...z({engine:x,model:l.model},{engine:l.graderEngine,model:l.graderModel}),targetName:g.name,evalResults:t,timeout:6e4}),i(`Meta-judge: quality=${j.quality_score}/5, issues=${j.issues.length}`)}catch(t){i(`Meta-judge failed (non-fatal): ${t instanceof Error?t.message:String(t)}`)}let U=j?{...J,meta_judgement:j}:J;return i(`Job ${s} completed: ${y}/${h} runs`),await $(`/api/eval-jobs/${s}/state`,{result:U}).catch(t=>{i(`result persist failed: ${t instanceof Error?t.message:String(t)}`)}),U}w(_e,"processEval");function me(r){let p=r.filter(i=>i.status==="completed"),s=r.filter(i=>i.status==="failed"),f=p.filter(i=>{let n=i.grading;return n&&Object.keys(n).length>0}),l=f.length>0?f.reduce((i,n)=>i+(n.grading?.summary?.pass_rate??0),0)/f.length:null;return{total:r.length,completed:p.length,failed:s.length,avgPassRate:l}}w(me,"buildSummary");export{_e as a};
|
package/dist/chunk-L562Y4RN.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as c,f as d}from"./chunk-GIXHG5FK.js";import{a as m}from"./chunk-ZLLER3HP.js";async function f(g,p){let r=m(e=>p?.logger?.info?.(e)??console.log(e),"log"),{projectPath:s}=g,i=`[cron_instruction_training] ${s}`;if(!s)return{skipped:"no-project-path"};let n=await d("/api/instruction-experiments/settle",{projectPath:s}),o=n.settled.map(e=>e.outcome),a=o.filter(e=>e==="graduated").length;for(let e of n.settled)r(`${i}: experiment ${e.experimentId} \u2192 ${e.outcome}`);n.examined>0&&r(`${i}: examined ${n.examined} running experiment(s) \u2014 ${n.settled.length} settled (${a} graduated), ${n.stillRunning} still gathering`);let t=await c(`/api/instruction-suggestions/trialable?projectPath=${encodeURIComponent(s)}`);for(let e of t.refused)r(`${i}: not trialling "${e.name}" \u2014 ${e.reason}`);if(t.candidates.length===0)return r(`${i}: no new trial started (${t.running}/${t.limits.maxConcurrent} running, ${t.slots} slot(s) free)`),{examined:n.examined,settled:n.settled.length,graduated:a,nominated:0,running:t.running,outcomes:o};let u=0;for(let e of t.candidates)try{await d("/api/instruction-experiments",{instructionId:e.instructionId,projectPath:s,source:"trial"}),u+=1,r(`${i}: now measuring "${e.name}" (score ${e.score.toFixed(2)})`)}catch(l){r(`${i}: could not measure "${e.name}" \u2014 ${l instanceof Error?l.message:String(l)}`)}return{examined:n.examined,settled:n.settled.length,graduated:a,nominated:u,running:t.running+u,outcomes:o}}m(f,"cronInstructionTraining");export{f as a};
|
package/dist/chunk-N2PP2A7M.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as R,c as L,f as s,g as I,i as h}from"./chunk-XXPWPKTD.js";import{c as ne}from"./chunk-5TM7AOH2.js";import{b as re}from"./chunk-IEQDLURA.js";import{d as te,e as oe,f as se}from"./chunk-KINIFUZQ.js";import{a as Y}from"./chunk-5PMTNNA6.js";import{a as O}from"./chunk-ZYGBABMZ.js";import{a as U}from"./chunk-IFIWDL7G.js";import{c as N}from"./chunk-FZMO7XSN.js";import{a as F}from"./chunk-LLXC5SRC.js";import{a as W}from"./chunk-4DA6L7KL.js";import{a as $}from"./chunk-WQFR2LOY.js";import{a as q}from"./chunk-Q7IDLOSP.js";import{b as J}from"./chunk-XIOYV5A7.js";import{b as V}from"./chunk-5RBLIVBF.js";import{a as K}from"./chunk-JSGXFD42.js";import{a as x}from"./chunk-CZBO3A6B.js";import{a as j}from"./chunk-JUBXWTJA.js";import{a as Q}from"./chunk-W6MMJRFZ.js";import{a as D}from"./chunk-PZS55PW2.js";import{a as ee}from"./chunk-QPAOX7P2.js";import{e as P}from"./chunk-CIKQXFQ2.js";import{b as G}from"./chunk-5Z6XXOJL.js";import{a as z}from"./chunk-CYCH2EQC.js";import{a as X}from"./chunk-VUNJGZPP.js";import{a as Z}from"./chunk-L562Y4RN.js";import{b as C}from"./chunk-PIVEJTNF.js";import{k as B}from"./chunk-DYET4EYU.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,w=null,ce={process_eval:W,process_insights:$,process_launch:J,process_send_message:O,process_conversation:F,process_session_goal:U,distill_memories:G,memory_ab:K,process_run_cleanup:Y,cron_refine_cases:j,cron_retire_unused_skills:ee,cron_reconcile_attribution:x,cron_suggest_instructions:P,cron_refresh_skills:D,cron_refresh_pricing:Q,cron_eval_autorun:X,cron_auto_accept_suggestions:z,cron_instruction_training:Z,cron_instruction_evolution:B,process_judge_review:q,harbor_ab:N},ae=Object.keys(ce),me=new Set([]);function pe(e=process.env){return e.DATABASE_URL?ae:ae.filter(t=>!me.has(t))}l(pe,"availableCapabilities");var ge=3e4,_e=3e4,fe=3e4,ie=500,le=1e4,ve=`thin-agent-${process.pid}`,A=null;function ke(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:ve,clientVersion:p,workerVersion:"0.1.0",currentJobId:null,inFlightCount:0,lastError:null,status:i,metadata:{capabilities:e,mode:"thin-agent",measurementProtocol:1,studyProtocol:1,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"),fe),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(ke,"startPresenceHeartbeat");async function be(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&memorySnapshots=1&boundedAutorun=1&measurementEngines=${encodeURIComponent(p.join(","))}`,m=await T(`/api/work/next?${d}`);return m==null||typeof m=="string"?null:m}l(be,"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 we(e,t,r,p){let d=ce[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}),h(`/api/work/${e.id}/heartbeat`,{leaseToken:e.leaseToken},{budgetMs:Math.min(L,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);w={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=se(i),u=n instanceof Error?n.message:String(n),v=V(n),o=!v&&oe(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 h(`/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 h(`/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),w=null}}l(we,"runOne");var de=new Set(["process_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 Ze(e){let t=e.log??(()=>{}),r=e.pollWaitMs??ge,p=e.heartbeatIntervalMs??_e,d=e.capabilities??pe();s(t,{event:"agent_start",capabilities:d,pollWaitMs:r,heartbeatIntervalMs:p});try{let o=re();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=te({signal:e.signal,onPause:l(o=>{s(t,{event:"machine_pause",...o,jobId:w?.jobId??null}),w?.beat()},"onPause")});let m=ke(d,e.signal,t,e.version);ne({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 _=ie;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 be([...b],r)}catch(k){let ue=k instanceof M?k.statusCode:void 0;if(s(t,{event:"poll_error",lane:o,status:ue,error:k instanceof Error?k.message:String(k)}),!await I(_,i))break;_=Math.min(_*2,le);continue}if(!y){if(s(t,{event:"poll_204",lane:o}),!await I(_,i))break;_=Math.min(_*2,le);continue}_=ie,await we(y,p,t,i)}},"runLane"),u=d.filter(o=>de.has(o)),v=d.filter(o=>!de.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(Ze,"runAgentLoop");export{ce as a,ae as b,pe as c,be as d,Ze as e};
|