@rulemetric/cli 0.7.30 → 0.7.32

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.
Files changed (95) hide show
  1. package/dist/chunk-3DLVY7LD.js +1 -0
  2. package/dist/{chunk-CS2OQ3GC.js → chunk-3FJT6LL4.js} +1 -1
  3. package/dist/{chunk-UUMW6X2W.js → chunk-3VYV6ZYB.js} +1 -1
  4. package/dist/{chunk-DUP232AH.js → chunk-5W55CRBJ.js} +1 -1
  5. package/dist/{chunk-MDPN46EY.js → chunk-6QKI756T.js} +1 -1
  6. package/dist/{chunk-KAWNGQS2.js → chunk-7AZKPX2J.js} +1 -1
  7. package/dist/{chunk-35ZDT2VL.js → chunk-7W6KET2A.js} +8 -8
  8. package/dist/{chunk-ULRVMH7O.js → chunk-AIEM6VXO.js} +1 -1
  9. package/dist/{chunk-ZW5TAV3L.js → chunk-BSJBNOJT.js} +1 -1
  10. package/dist/{chunk-PRDYXO6Z.js → chunk-BZUIMHHT.js} +2 -2
  11. package/dist/{chunk-JAPCCEKF.js → chunk-CYKELSHS.js} +1 -1
  12. package/dist/{chunk-M4YF7YO7.js → chunk-DAGDGAPU.js} +1 -1
  13. package/dist/chunk-DTMLVFNM.js +1 -0
  14. package/dist/{chunk-XA4KSQEC.js → chunk-G6XGDHGC.js} +1 -1
  15. package/dist/chunk-JEBHSV2M.js +5 -0
  16. package/dist/chunk-JGYCLDYF.js +1 -0
  17. package/dist/chunk-JR4CWY3J.js +1 -0
  18. package/dist/{chunk-MSTF7A7D.js → chunk-L5ORQB25.js} +1 -1
  19. package/dist/{chunk-4O7MJUPH.js → chunk-LETTPEG4.js} +1 -1
  20. package/dist/{chunk-T4P2NV3P.js → chunk-LEXVC7VH.js} +1 -1
  21. package/dist/chunk-MODFTCZY.js +6 -0
  22. package/dist/{chunk-3BVHPQZW.js → chunk-OPUI7CM2.js} +1 -1
  23. package/dist/{chunk-CBP7QZAN.js → chunk-OVZZUI33.js} +1 -1
  24. package/dist/{chunk-HL755A5U.js → chunk-OZQV5CDT.js} +1 -1
  25. package/dist/chunk-Q76LGSIU.js +24 -0
  26. package/dist/{chunk-WYF5BIQW.js → chunk-QH7PCQHM.js} +1 -1
  27. package/dist/{chunk-DO3KHK2X.js → chunk-UR6GZGFK.js} +1 -1
  28. package/dist/{chunk-K25S2MGU.js → chunk-V5MJ4ICC.js} +1 -1
  29. package/dist/chunk-VLXCQ2DC.js +31 -0
  30. package/dist/{chunk-BUWWFHGO.js → chunk-W2MOTOQE.js} +1 -1
  31. package/dist/{chunk-6UTJGOBA.js → chunk-WEF5LPGS.js} +1 -1
  32. package/dist/chunk-WKXTY5AM.js +1 -0
  33. package/dist/{chunk-OSIP6FUD.js → chunk-ZAWAPLIE.js} +1 -1
  34. package/dist/chunk-ZERPMWRT.js +8 -0
  35. package/dist/{chunk-QQ2UPNBC.js → chunk-ZWKKFAIX.js} +1 -1
  36. package/dist/commands/auth/login.js +4 -1
  37. package/dist/commands/diagnostics.js +1 -1
  38. package/dist/commands/evals/agent.js +1 -1
  39. package/dist/commands/evals/auto-run.js +1 -1
  40. package/dist/commands/evals/benchmark.js +1 -1
  41. package/dist/commands/evals/optimize.js +1 -1
  42. package/dist/commands/evals/refine-cases.js +1 -1
  43. package/dist/commands/evals/run.js +1 -1
  44. package/dist/commands/evals/validate-judge.js +1 -1
  45. package/dist/commands/gateway/ensure.js +1 -1
  46. package/dist/commands/hooks/install.js +1 -1
  47. package/dist/commands/hooks/uninstall.js +1 -1
  48. package/dist/commands/sessions/list.js +1 -1
  49. package/dist/commands/setup.js +1 -1
  50. package/dist/dashboard/Dashboard.js +1 -1
  51. package/dist/dashboard/data.js +1 -1
  52. package/dist/{dist-BC6GMBXV.js → dist-FAVALJ5C.js} +1 -1
  53. package/dist/lib/agent-loop.js +1 -1
  54. package/dist/lib/codex-exec.js +1 -1
  55. package/dist/lib/editor-proxy-pins.js +1 -1
  56. package/dist/lib/eval-benchmark.js +1 -1
  57. package/dist/lib/eval-candidate-run.js +1 -0
  58. package/dist/lib/eval-case-generator.js +1 -1
  59. package/dist/lib/eval-conversation-handler.js +1 -1
  60. package/dist/lib/eval-grader.js +1 -1
  61. package/dist/lib/eval-run-batch.js +1 -1
  62. package/dist/lib/handlers/cron-eval-autorun.js +1 -1
  63. package/dist/lib/handlers/cron-instruction-evolution.js +1 -0
  64. package/dist/lib/handlers/cron-refresh-pricing.js +1 -1
  65. package/dist/lib/handlers/cron-suggest-instructions.js +1 -1
  66. package/dist/lib/handlers/distill-memories.js +1 -1
  67. package/dist/lib/handlers/process-announcement.js +1 -1
  68. package/dist/lib/handlers/process-changelog.js +1 -1
  69. package/dist/lib/handlers/process-conversation.js +1 -1
  70. package/dist/lib/handlers/process-eval.js +1 -1
  71. package/dist/lib/handlers/process-insights.js +1 -1
  72. package/dist/lib/handlers/process-judge-review.js +1 -1
  73. package/dist/lib/handlers/process-launch.js +1 -1
  74. package/dist/lib/handlers/process-memory-ab.js +1 -1
  75. package/dist/lib/handlers/process-run-cleanup.js +1 -1
  76. package/dist/lib/handlers/process-session-goal.js +1 -1
  77. package/dist/lib/hooks-config.js +1 -1
  78. package/dist/lib/instruction-proposer.js +1 -0
  79. package/dist/lib/judge-review-runner.js +1 -1
  80. package/dist/lib/llm-client.js +1 -1
  81. package/dist/lib/manual-tasks.js +1 -1
  82. package/dist/lib/optimize-compare.js +1 -1
  83. package/dist/lib/reviewer-detect.js +1 -1
  84. package/dist/lib/setup-steps.js +1 -1
  85. package/dist/lib/worktree.js +1 -1
  86. package/oclif.manifest.json +14 -3
  87. package/package.json +7 -7
  88. package/dist/chunk-2JRDG4LJ.js +0 -31
  89. package/dist/chunk-35ST2BX7.js +0 -5
  90. package/dist/chunk-4HZWSFSY.js +0 -24
  91. package/dist/chunk-6N6NTMOR.js +0 -1
  92. package/dist/chunk-KZ65LEUH.js +0 -1
  93. package/dist/chunk-SMGSLY5N.js +0 -7
  94. package/dist/chunk-X2ILN3KP.js +0 -1
  95. /package/dist/{chunk-5DIOZDDZ.js → chunk-7DFNBRLY.js} +0 -0
@@ -1,2 +1,2 @@
1
- import{C as x,F as k,J as C,K as S,o as h,s as p,t as g,w as v,x as y,z as R}from"../../chunk-2JRDG4LJ.js";import"../../chunk-I2DZGJRR.js";import{c as f,l as d}from"../../chunk-MVM6OGAF.js";import"../../chunk-KKDHD4XA.js";import"../../chunk-SZ62CP55.js";import{a}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as i}from"../../chunk-ZLLER3HP.js";import{existsSync as n,readFileSync as A,writeFileSync as j}from"node:fs";import{spawnSync as t}from"node:child_process";import{homedir as O}from"node:os";import{join as c}from"node:path";var r=c(O(),".mitmproxy","mitmproxy-ca-cert.pem");function N(){return n(r)?process.platform==="darwin"?t("sudo",["security","remove-trusted-cert","-d",r],{stdio:"inherit"}).status===0:process.platform==="linux"?t("sudo",["rm","-f","/usr/local/share/ca-certificates/mitmproxy-ca.crt"],{stdio:"inherit"}).status!==0?!1:t("sudo",["update-ca-certificates","--fresh"],{stdio:"inherit"}).status===0:process.platform==="win32"?t("certutil",["-delstore","Root","mitmproxy"],{stdio:"inherit"}).status===0:!1:!1}i(N,"untrustCACert");var u=class extends a{static{i(this,"HooksUninstall")}static description="Remove session tracking hooks from the current project";static examples=["<%= config.bin %> hooks uninstall"];async run(){let w=c(process.cwd(),".claude"),l=h(w,f);if(l.length===0){this.log("No .claude/settings.json or .claude/settings.local.json found \u2014 nothing to uninstall.");return}let e=!1,m=!1;for(let o of l)o.recoveredBackup&&this.log(`[!!] ${o.configPath} was not valid JSON \u2014 backed up to ${o.recoveredBackup}; continuing.`),o.removedHooks&&this.log(`Removed RuleMetric hooks from .claude/${o.fileName}`),o.removedProxyEnv&&(this.log(`Removed HTTPS_PROXY, NO_PROXY and NODE_EXTRA_CA_CERTS from .claude/${o.fileName}`),m=!0),o.removedStatusline&&this.log(`Removed RuleMetric statusline shim from .claude/${o.fileName}`),e=e||o.changed;e||this.log("No hooks or proxy config found \u2014 nothing to uninstall."),p(process.cwd())&&(this.log("Removed RuleMetric hooks from .cursor/hooks.json"),e=!0),g()&&(this.log("Removed RuleMetric hooks from ~/.cursor/hooks.json"),e=!0);let s=c(process.cwd(),".cursor","settings.json");if(n(s))try{let o=JSON.parse(A(s,"utf-8"));o["http.proxy"]?.includes("localhost")&&(delete o["http.proxy"],delete o["http.proxyStrictSSL"],j(s,JSON.stringify(o,null,2)+`
1
+ import{C as x,F as k,J as C,K as S,o as h,s as p,t as g,w as v,x as y,z as R}from"../../chunk-VLXCQ2DC.js";import"../../chunk-I2DZGJRR.js";import{c as f,l as d}from"../../chunk-MVM6OGAF.js";import"../../chunk-KKDHD4XA.js";import"../../chunk-SZ62CP55.js";import{a}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as i}from"../../chunk-ZLLER3HP.js";import{existsSync as n,readFileSync as A,writeFileSync as j}from"node:fs";import{spawnSync as t}from"node:child_process";import{homedir as O}from"node:os";import{join as c}from"node:path";var r=c(O(),".mitmproxy","mitmproxy-ca-cert.pem");function N(){return n(r)?process.platform==="darwin"?t("sudo",["security","remove-trusted-cert","-d",r],{stdio:"inherit"}).status===0:process.platform==="linux"?t("sudo",["rm","-f","/usr/local/share/ca-certificates/mitmproxy-ca.crt"],{stdio:"inherit"}).status!==0?!1:t("sudo",["update-ca-certificates","--fresh"],{stdio:"inherit"}).status===0:process.platform==="win32"?t("certutil",["-delstore","Root","mitmproxy"],{stdio:"inherit"}).status===0:!1:!1}i(N,"untrustCACert");var u=class extends a{static{i(this,"HooksUninstall")}static description="Remove session tracking hooks from the current project";static examples=["<%= config.bin %> hooks uninstall"];async run(){let w=c(process.cwd(),".claude"),l=h(w,f);if(l.length===0){this.log("No .claude/settings.json or .claude/settings.local.json found \u2014 nothing to uninstall.");return}let e=!1,m=!1;for(let o of l)o.recoveredBackup&&this.log(`[!!] ${o.configPath} was not valid JSON \u2014 backed up to ${o.recoveredBackup}; continuing.`),o.removedHooks&&this.log(`Removed RuleMetric hooks from .claude/${o.fileName}`),o.removedProxyEnv&&(this.log(`Removed HTTPS_PROXY, NO_PROXY and NODE_EXTRA_CA_CERTS from .claude/${o.fileName}`),m=!0),o.removedStatusline&&this.log(`Removed RuleMetric statusline shim from .claude/${o.fileName}`),e=e||o.changed;e||this.log("No hooks or proxy config found \u2014 nothing to uninstall."),p(process.cwd())&&(this.log("Removed RuleMetric hooks from .cursor/hooks.json"),e=!0),g()&&(this.log("Removed RuleMetric hooks from ~/.cursor/hooks.json"),e=!0);let s=c(process.cwd(),".cursor","settings.json");if(n(s))try{let o=JSON.parse(A(s,"utf-8"));o["http.proxy"]?.includes("localhost")&&(delete o["http.proxy"],delete o["http.proxyStrictSSL"],j(s,JSON.stringify(o,null,2)+`
2
2
  `),this.log("Removed proxy config from .cursor/settings.json"),e=!0)}catch{}y(process.cwd())&&(this.log("Removed RuleMetric hooks from .github/hooks/"),e=!0),C(process.cwd())&&(this.log("Removed RuleMetric block from .agents/hooks.json"),e=!0),S()&&(this.log("Removed RuleMetric block from ~/.gemini/config/hooks.json"),e=!0),v(process.cwd())&&(this.log("Removed proxy config from .vscode/settings.json"),e=!0),x()&&(this.log("Removed proxy config from VS Code user settings"),e=!0),k()&&(this.log("Removed proxy config from Cursor user settings"),e=!0),R()&&(this.log("Removed HTTPS_PROXY LaunchAgent"),e=!0),m&&n(r)&&(this.log("Removing the mitmproxy CA from the system trust store (requires sudo)..."),N()?this.log("[OK] mitmproxy CA untrusted."):(this.log("[!!] Could not untrust the CA automatically. Remove it manually:"),process.platform==="darwin"?this.log(` sudo security remove-trusted-cert -d ${r}`):process.platform==="linux"&&this.log(" sudo rm -f /usr/local/share/ca-certificates/mitmproxy-ca.crt && sudo update-ca-certificates --fresh"))),d()&&this.log("Gateway stopped.")}};export{u as default};
@@ -1 +1 @@
1
- import{a}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as n}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as r}from"../../chunk-ZLLER3HP.js";import{Flags as c}from"@oclif/core";var o=class l extends a{static{r(this,"SessionsList")}static description="List captured sessions";static examples=["<%= config.bin %> sessions list","<%= config.bin %> sessions list --tool claude_code"];static flags={tool:c.string({description:"Filter by tool (claude_code, cursor, vscode_copilot)"}),limit:c.integer({description:"Max results",default:20})};async run(){let{flags:e}=await this.parse(l);this.requireAuth();let s=new URLSearchParams;e.tool&&s.set("tool",e.tool),s.set("limit",String(e.limit));let i=await n(`/api/sessions?${s}`);if(i.length===0){this.log("No sessions found.");return}for(let t of i){let d=t.projectPath?.split("/").pop()??"\u2014",p=t.analysis?.adherenceScore!=null?`${t.analysis.adherenceScore}%`:"\u2014",m=new Date(t.startedAt).toLocaleDateString();this.log(`${t.id.slice(0,8)} ${t.tool.padEnd(15)} ${d.padEnd(20)} ${String(t.eventCount).padStart(5)} events ${p.padStart(4)} adherence ${m}`)}}};export{o as default};
1
+ import{a as l}from"../../chunk-7DFNBRLY.js";import{a}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as r}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.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,3 +1,3 @@
1
- import{c as l,d as h,f as m,g as p,h as f,i as y,j as r}from"../chunk-35ZDT2VL.js";import"../chunk-2JRDG4LJ.js";import"../chunk-I2DZGJRR.js";import"../chunk-MVM6OGAF.js";import"../chunk-KKDHD4XA.js";import"../chunk-SZ62CP55.js";import"../chunk-3BVHPQZW.js";import"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import{a as g}from"../chunk-PPKPCXJD.js";import"../chunk-IZTIYR5Q.js";import"../chunk-V44SRRYR.js";import"../chunk-U6XEU573.js";import"../chunk-VLOX6KOM.js";import"../chunk-3AV3GTMP.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import{a as u}from"../chunk-ZLLER3HP.js";import{Args as b,Flags as c}from"@oclif/core";import*as w from"node:readline/promises";var d=class v extends g{static{u(this,"Setup")}static description="Agentic, transparent setup: plan / show diffs / apply the four core onboarding steps";static examples=["<%= config.bin %> setup # interactive walk (TTY)","<%= config.bin %> setup plan # read-only: every remaining artifact + diff","<%= config.bin %> setup hooks --show # print one step's diff","<%= config.bin %> setup hooks --apply # apply one step","<%= config.bin %> setup --json # machine-readable status (exit 0 iff complete)"];static args={target:b.string({description:`"plan" or a step id (${l.join(", ")})`,required:!1})};static flags={json:c.boolean({description:"Machine-readable output",default:!1}),show:c.boolean({description:"Print the step diff (read-only)",default:!1}),apply:c.boolean({description:"Apply the step",default:!1})};async run(){let{args:t,flags:e}=await this.parse(v),i=h();if(t.target==="plan"){await this.runPlan(i,e.json);return}if(t.target&&y(t.target)){if(e.apply){await f(t.target).apply(i);return}let n=await f(t.target).plan(i);this.printPlan(n);return}if(t.target&&this.error(`Unknown target "${t.target}". Use "plan" or one of: ${l.join(", ")}.`),e.json){let n=await r(i);this.log(JSON.stringify(n,null,2)),n.coreComplete||this.exit(1);return}await this.runInteractive(i)}async runPlan(t,e){let i=await r(t),n=p.filter(s=>!i.steps.find(a=>a.id===s.id)?.done),o=[];for(let s of n)o.push(await s.plan(t));if(e){this.log(JSON.stringify({...i,plans:o},null,2));return}if(o.length===0){this.log("[OK] All core steps complete \u2014 nothing to install.");return}this.log(`The following steps would be applied:
1
+ import{c as l,d as h,f as m,g as p,h as f,i as y,j as r}from"../chunk-7W6KET2A.js";import"../chunk-VLXCQ2DC.js";import"../chunk-I2DZGJRR.js";import"../chunk-MVM6OGAF.js";import"../chunk-KKDHD4XA.js";import"../chunk-SZ62CP55.js";import"../chunk-OPUI7CM2.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import{a as g}from"../chunk-PPKPCXJD.js";import"../chunk-IZTIYR5Q.js";import"../chunk-V44SRRYR.js";import"../chunk-U6XEU573.js";import"../chunk-VLOX6KOM.js";import"../chunk-3AV3GTMP.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import{a as u}from"../chunk-ZLLER3HP.js";import{Args as b,Flags as c}from"@oclif/core";import*as w from"node:readline/promises";var d=class v extends g{static{u(this,"Setup")}static description="Agentic, transparent setup: plan / show diffs / apply the four core onboarding steps";static examples=["<%= config.bin %> setup # interactive walk (TTY)","<%= config.bin %> setup plan # read-only: every remaining artifact + diff","<%= config.bin %> setup hooks --show # print one step's diff","<%= config.bin %> setup hooks --apply # apply one step","<%= config.bin %> setup --json # machine-readable status (exit 0 iff complete)"];static args={target:b.string({description:`"plan" or a step id (${l.join(", ")})`,required:!1})};static flags={json:c.boolean({description:"Machine-readable output",default:!1}),show:c.boolean({description:"Print the step diff (read-only)",default:!1}),apply:c.boolean({description:"Apply the step",default:!1})};async run(){let{args:t,flags:e}=await this.parse(v),i=h();if(t.target==="plan"){await this.runPlan(i,e.json);return}if(t.target&&y(t.target)){if(e.apply){await f(t.target).apply(i);return}let n=await f(t.target).plan(i);this.printPlan(n);return}if(t.target&&this.error(`Unknown target "${t.target}". Use "plan" or one of: ${l.join(", ")}.`),e.json){let n=await r(i);this.log(JSON.stringify(n,null,2)),n.coreComplete||this.exit(1);return}await this.runInteractive(i)}async runPlan(t,e){let i=await r(t),n=p.filter(s=>!i.steps.find(a=>a.id===s.id)?.done),o=[];for(let s of n)o.push(await s.plan(t));if(e){this.log(JSON.stringify({...i,plans:o},null,2));return}if(o.length===0){this.log("[OK] All core steps complete \u2014 nothing to install.");return}this.log(`The following steps would be applied:
2
2
  `);for(let s of o)this.printPlan(s),this.log("")}printPlan(t){this.log(`[..] ${t.title} (${t.id})`),t.command&&this.log(` command: ${t.command}`);for(let e of t.artifacts){this.log(` ${e.kind}: ${e.path}${e.masked?" (secret masked)":""}`);let i=m(e.before,e.after);for(let n of i.split(`
3
3
  `))this.log(` ${n}`)}}async runInteractive(t){if(!process.stdin.isTTY){this.log("Not a TTY \u2014 interactive walk needs a terminal."),this.log("Use one of:"),this.log(" rulemetric setup plan \u2014 see every remaining artifact + diff"),this.log(" rulemetric setup <step> --show \u2014 print one step diff"),this.log(" rulemetric setup <step> --apply \u2014 apply one step"),this.log(" rulemetric setup --json \u2014 machine-readable status");return}let e=await r(t),i=p.filter(o=>!e.steps.find(s=>s.id===o.id)?.done);if(i.length===0){this.log("[OK] All core steps complete.");return}let n=w.createInterface({input:process.stdin,output:process.stdout});try{for(let o of i){let s=await o.plan(t);this.printPlan(s);let a=(await n.question(`Apply "${s.title}"? [y/N] `)).trim().toLowerCase();a==="y"||a==="yes"?(await o.apply(t),this.log(`[OK] Applied ${s.title}.`)):this.log(`[..] Skipped ${s.title}.`),this.log("")}}finally{n.close()}}};export{d as default};
@@ -1 +1 @@
1
- import{a as F}from"../chunk-DVN7GFJG.js";import{a as M}from"../chunk-O2SDD2WW.js";import{a as E}from"../chunk-GBMF3TP6.js";import{a as O}from"../chunk-WSCK4WNK.js";import{a as D}from"../chunk-4Z5ECCJE.js";import"../chunk-ARNZQBMX.js";import{a as B,b as S,c as R}from"../chunk-XA4KSQEC.js";import{a as $}from"../chunk-BMGQFKG6.js";import"../chunk-RDET7CKR.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-ZR3MUNLS.js";import"../chunk-5DIOZDDZ.js";import{a as X}from"../chunk-3AV3GTMP.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import{a as m}from"../chunk-ZLLER3HP.js";import{useState as w,useEffect as nt,useCallback as G,useRef as st}from"react";import{render as U,Box as c,Text as o,useInput as at,useApp as lt}from"ink";import{Fragment as ht,jsx as t,jsxs as h}from"react/jsx-runtime";var dt=90;function J(){let s=process.stdout.columns||80,n=Math.min(160,s),i=n>=dt,d=i?Math.floor(n/2):n,b=Math.max(6,Math.min(10,d-34));return{dashWidth:n,wide:i,halfWidth:d,barWidth:b}}m(J,"getLayout");function z({active:s,providerName:n}){return h(c,{justifyContent:"space-between",paddingX:1,children:[t(c,{gap:1,children:u.map(i=>t(o,{bold:s===i,color:s===i?a:v,children:s===i?`[ ${T[i]} ]`:` ${T[i]} `},i))}),n&&t(o,{color:a,bold:!0,children:n})]})}m(z,"PeriodTabs");function H({width:s,insightsFocused:n=!1}){return t(c,{borderStyle:"round",borderColor:v,width:s,justifyContent:"center",paddingX:1,children:h(o,{children:[t(o,{color:a,bold:!0,children:"<"}),t(o,{color:a,children:">"}),t(o,{dimColor:!0,children:" switch "}),t(o,{color:a,bold:!0,children:"q"}),t(o,{dimColor:!0,children:" quit "}),t(o,{color:a,bold:!0,children:"s"}),h(o,{dimColor:!0,children:[" ",n?"back":"suggestions"," "]}),t(o,{color:a,bold:!0,children:"1"}),t(o,{dimColor:!0,children:"-"}),t(o,{color:a,bold:!0,children:"5"}),t(o,{dimColor:!0,children:" period "}),t(o,{color:a,bold:!0,children:"r"}),t(o,{dimColor:!0,children:" refresh "}),t(o,{color:a,bold:!0,children:"n"}),t(o,{dimColor:!0,children:" new session "}),t(o,{color:a,bold:!0,children:"l"}),t(o,{dimColor:!0,children:" launcher"})]})})}m(H,"StatusBar");function ct({wide:s,width:n,children:i}){return s?t(c,{width:n,children:i}):t(ht,{children:i})}m(ct,"Row");function ut({initialLocal:s,initialApi:n,initialInstructions:i,initialPeriod:d,initialLauncherFocused:b=!1}){let{exit:j}=lt(),[e,L]=w(d),[K,Q]=w(s),[W,V]=w(n),[Z,tt]=w(i),[ot,k]=w(!1),[p,I]=w(!1),[Y,_]=w(b),et=X()?.orgSlug??null,y=st(null),it=J(),g=G(async()=>{k(!0);let[r,x,P]=await Promise.all([B(),S(),R()]);Q(r),V(x),tt(P),k(!1)},[]);nt(()=>{let r=setInterval(g,3e4);return()=>clearInterval(r)},[g]);let f=G(r=>{r!==e&&(L(r),y.current&&clearTimeout(y.current),y.current=setTimeout(g,300))},[e,g]);at((r,x)=>{if(Y)return;if(r==="q"){if(p){I(!1);return}j();return}if(r==="s"){I(A=>!A);return}if(x.escape&&p){I(!1);return}if(r==="l"&&!p){_(!0);return}if(p)return;if(r==="r"){g();return}if(r==="n"){import("../dist-BC6GMBXV.js").then(({getLauncher:A})=>{A("claude_code").launch({projectPath:process.cwd(),mode:"interactive"})});return}let P=u.indexOf(e);x.leftArrow?f(u[(P-1+u.length)%u.length]):x.rightArrow||x.tab?f(u[(P+1)%u.length]):r==="1"?f("today"):r==="2"?f("week"):r==="3"?f("30days"):r==="4"?f("month"):r==="5"&&f("all")});let{dashWidth:l,wide:q,halfWidth:rt,barWidth:C}=it,N=q?rt:l;return ot?h(c,{flexDirection:"column",width:l,children:[t(z,{active:e}),t(c,{borderStyle:"round",borderColor:a,paddingX:1,width:l,children:h(o,{dimColor:!0,children:["Loading ",T[e],"..."]})}),t(H,{width:l})]}):Y?t(c,{flexDirection:"column",width:l,children:t($,{onClose:()=>_(!1),activeOrg:et,defaultProjectPath:process.cwd(),width:l})}):h(c,{flexDirection:"column",width:l,children:[t(z,{active:e}),t(D,{local:K,api:W,label:T[e],width:l}),h(ct,{wide:q,width:l,children:[t(O,{api:W,width:N,barWidth:C}),t(F,{api:W,width:N,barWidth:C})]}),t(E,{instructions:Z,width:l,barWidth:C}),t(M,{api:W,width:l,focused:p}),t(H,{width:l,insightsFocused:p})]})}m(ut,"InteractiveDashboard");async function yt(s="week",n={}){let[i,d,b]=await Promise.all([B(),S(),R()]);if(process.stdin.isTTY&&process.stdout.isTTY){let{waitUntilExit:e}=U(t(ut,{initialLocal:i,initialApi:d,initialInstructions:b,initialPeriod:s,initialLauncherFocused:n.openLauncher??!1}));await e()}else{let e=J(),{unmount:L}=U(h(c,{flexDirection:"column",width:e.dashWidth,children:[t(D,{local:i,api:d,label:T[s],width:e.dashWidth}),t(O,{api:d,width:e.dashWidth,barWidth:e.barWidth}),t(F,{api:d,width:e.dashWidth,barWidth:e.barWidth}),t(E,{instructions:b,width:e.dashWidth,barWidth:e.barWidth}),t(M,{api:d,width:e.dashWidth})]}),{patchConsole:!1});L()}}m(yt,"renderDashboard");export{yt as renderDashboard};
1
+ import{a as F}from"../chunk-DVN7GFJG.js";import{a as M}from"../chunk-O2SDD2WW.js";import{a as E}from"../chunk-GBMF3TP6.js";import{a as O}from"../chunk-WSCK4WNK.js";import{a as D}from"../chunk-4Z5ECCJE.js";import"../chunk-ARNZQBMX.js";import{a as B,b as S,c as R}from"../chunk-G6XGDHGC.js";import{a as $}from"../chunk-BMGQFKG6.js";import"../chunk-RDET7CKR.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-ZR3MUNLS.js";import"../chunk-7DFNBRLY.js";import{a as X}from"../chunk-3AV3GTMP.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import{a as m}from"../chunk-ZLLER3HP.js";import{useState as w,useEffect as nt,useCallback as G,useRef as st}from"react";import{render as U,Box as c,Text as o,useInput as at,useApp as lt}from"ink";import{Fragment as ht,jsx as t,jsxs as h}from"react/jsx-runtime";var dt=90;function J(){let s=process.stdout.columns||80,n=Math.min(160,s),i=n>=dt,d=i?Math.floor(n/2):n,b=Math.max(6,Math.min(10,d-34));return{dashWidth:n,wide:i,halfWidth:d,barWidth:b}}m(J,"getLayout");function z({active:s,providerName:n}){return h(c,{justifyContent:"space-between",paddingX:1,children:[t(c,{gap:1,children:u.map(i=>t(o,{bold:s===i,color:s===i?a:v,children:s===i?`[ ${T[i]} ]`:` ${T[i]} `},i))}),n&&t(o,{color:a,bold:!0,children:n})]})}m(z,"PeriodTabs");function H({width:s,insightsFocused:n=!1}){return t(c,{borderStyle:"round",borderColor:v,width:s,justifyContent:"center",paddingX:1,children:h(o,{children:[t(o,{color:a,bold:!0,children:"<"}),t(o,{color:a,children:">"}),t(o,{dimColor:!0,children:" switch "}),t(o,{color:a,bold:!0,children:"q"}),t(o,{dimColor:!0,children:" quit "}),t(o,{color:a,bold:!0,children:"s"}),h(o,{dimColor:!0,children:[" ",n?"back":"suggestions"," "]}),t(o,{color:a,bold:!0,children:"1"}),t(o,{dimColor:!0,children:"-"}),t(o,{color:a,bold:!0,children:"5"}),t(o,{dimColor:!0,children:" period "}),t(o,{color:a,bold:!0,children:"r"}),t(o,{dimColor:!0,children:" refresh "}),t(o,{color:a,bold:!0,children:"n"}),t(o,{dimColor:!0,children:" new session "}),t(o,{color:a,bold:!0,children:"l"}),t(o,{dimColor:!0,children:" launcher"})]})})}m(H,"StatusBar");function ct({wide:s,width:n,children:i}){return s?t(c,{width:n,children:i}):t(ht,{children:i})}m(ct,"Row");function ut({initialLocal:s,initialApi:n,initialInstructions:i,initialPeriod:d,initialLauncherFocused:b=!1}){let{exit:j}=lt(),[e,L]=w(d),[K,Q]=w(s),[W,V]=w(n),[Z,tt]=w(i),[ot,k]=w(!1),[p,I]=w(!1),[Y,_]=w(b),et=X()?.orgSlug??null,y=st(null),it=J(),g=G(async()=>{k(!0);let[r,x,P]=await Promise.all([B(),S(),R()]);Q(r),V(x),tt(P),k(!1)},[]);nt(()=>{let r=setInterval(g,3e4);return()=>clearInterval(r)},[g]);let f=G(r=>{r!==e&&(L(r),y.current&&clearTimeout(y.current),y.current=setTimeout(g,300))},[e,g]);at((r,x)=>{if(Y)return;if(r==="q"){if(p){I(!1);return}j();return}if(r==="s"){I(A=>!A);return}if(x.escape&&p){I(!1);return}if(r==="l"&&!p){_(!0);return}if(p)return;if(r==="r"){g();return}if(r==="n"){import("../dist-FAVALJ5C.js").then(({getLauncher:A})=>{A("claude_code").launch({projectPath:process.cwd(),mode:"interactive"})});return}let P=u.indexOf(e);x.leftArrow?f(u[(P-1+u.length)%u.length]):x.rightArrow||x.tab?f(u[(P+1)%u.length]):r==="1"?f("today"):r==="2"?f("week"):r==="3"?f("30days"):r==="4"?f("month"):r==="5"&&f("all")});let{dashWidth:l,wide:q,halfWidth:rt,barWidth:C}=it,N=q?rt:l;return ot?h(c,{flexDirection:"column",width:l,children:[t(z,{active:e}),t(c,{borderStyle:"round",borderColor:a,paddingX:1,width:l,children:h(o,{dimColor:!0,children:["Loading ",T[e],"..."]})}),t(H,{width:l})]}):Y?t(c,{flexDirection:"column",width:l,children:t($,{onClose:()=>_(!1),activeOrg:et,defaultProjectPath:process.cwd(),width:l})}):h(c,{flexDirection:"column",width:l,children:[t(z,{active:e}),t(D,{local:K,api:W,label:T[e],width:l}),h(ct,{wide:q,width:l,children:[t(O,{api:W,width:N,barWidth:C}),t(F,{api:W,width:N,barWidth:C})]}),t(E,{instructions:Z,width:l,barWidth:C}),t(M,{api:W,width:l,focused:p}),t(H,{width:l,insightsFocused:p})]})}m(ut,"InteractiveDashboard");async function yt(s="week",n={}){let[i,d,b]=await Promise.all([B(),S(),R()]);if(process.stdin.isTTY&&process.stdout.isTTY){let{waitUntilExit:e}=U(t(ut,{initialLocal:i,initialApi:d,initialInstructions:b,initialPeriod:s,initialLauncherFocused:n.openLauncher??!1}));await e()}else{let e=J(),{unmount:L}=U(h(c,{flexDirection:"column",width:e.dashWidth,children:[t(D,{local:i,api:d,label:T[s],width:e.dashWidth}),t(O,{api:d,width:e.dashWidth,barWidth:e.barWidth}),t(F,{api:d,width:e.dashWidth,barWidth:e.barWidth}),t(E,{instructions:b,width:e.dashWidth,barWidth:e.barWidth}),t(M,{api:d,width:e.dashWidth})]}),{patchConsole:!1});L()}}m(yt,"renderDashboard");export{yt as renderDashboard};
@@ -1 +1 @@
1
- import{a,b,c}from"../chunk-XA4KSQEC.js";import"../chunk-5DIOZDDZ.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{b as loadApiInsights,c as loadLinkedInstructions,a as loadLocalStats};
1
+ import{a,b,c}from"../chunk-G6XGDHGC.js";import"../chunk-7DFNBRLY.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.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,y}from"./chunk-5DIOZDDZ.js";import"./chunk-ZLLER3HP.js";export{c as ClaudeCodeAdapter,i as CodexAdapter,f as CopilotAgentAdapter,d as CursorAdapter,g as RuleMetricMcpAdapter,b as SESSION_EVENT_TYPES,a as SESSION_TOOLS,e as VSCodeCopilotAdapter,l as buildAnalysisPrompt,u as buildTmuxAttachCommand,t as buildTmuxHasSessionArgs,r as buildTmuxLaunchArgs,s as buildTmuxSendKeysArgs,k as detectTool,o as discoverAllSessions,h as freshCodexState,j as getAdapter,n as getAllProviders,w as getAvailableLaunchers,v as getLauncher,p as getProvider,m as parseAnalysisResponse,x as sanitizeBranch,q as sanitizeTmuxName,y as worktreePathFor};
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,y}from"./chunk-7DFNBRLY.js";import"./chunk-ZLLER3HP.js";export{c as ClaudeCodeAdapter,i as CodexAdapter,f as CopilotAgentAdapter,d as CursorAdapter,g as RuleMetricMcpAdapter,b as SESSION_EVENT_TYPES,a as SESSION_TOOLS,e as VSCodeCopilotAdapter,l as buildAnalysisPrompt,u as buildTmuxAttachCommand,t as buildTmuxHasSessionArgs,r as buildTmuxLaunchArgs,s as buildTmuxSendKeysArgs,k as detectTool,o as discoverAllSessions,h as freshCodexState,j as getAdapter,n as getAllProviders,w as getAvailableLaunchers,v as getLauncher,p as getProvider,m as parseAnalysisResponse,x as sanitizeBranch,q as sanitizeTmuxName,y as worktreePathFor};
@@ -1 +1 @@
1
- import{a,b,c,d,e}from"../chunk-6N6NTMOR.js";import"../chunk-TIOKY2IA.js";import"../chunk-M4YF7YO7.js";import"../chunk-RSKQRVPJ.js";import"../chunk-35ST2BX7.js";import"../chunk-6UTJGOBA.js";import"../chunk-N7TGRFVZ.js";import"../chunk-OSIP6FUD.js";import"../chunk-ULRVMH7O.js";import"../chunk-PRDYXO6Z.js";import"../chunk-QFVGUZDO.js";import"../chunk-T4P2NV3P.js";import"../chunk-BUWWFHGO.js";import"../chunk-MDPN46EY.js";import"../chunk-5RBLIVBF.js";import"../chunk-CS2OQ3GC.js";import"../chunk-DUP232AH.js";import"../chunk-DO3KHK2X.js";import"../chunk-UF6US7VU.js";import"../chunk-MSTF7A7D.js";import"../chunk-ZL4MZMUK.js";import"../chunk-4HZWSFSY.js";import"../chunk-KZ65LEUH.js";import"../chunk-YQ56FQEO.js";import"../chunk-QQ2UPNBC.js";import"../chunk-TDD7IOV2.js";import"../chunk-5DIOZDDZ.js";import"../chunk-MODXEGCU.js";import"../chunk-4VZLIGMS.js";import"../chunk-UUMW6X2W.js";import"../chunk-HL755A5U.js";import"../chunk-6UEFCMR2.js";import"../chunk-CJRYYV76.js";import"../chunk-ZW5TAV3L.js";import"../chunk-L2CFSMBC.js";import"../chunk-Z72VHGV7.js";import"../chunk-KAWNGQS2.js";import"../chunk-CDY7TQFZ.js";import"../chunk-K25S2MGU.js";import"../chunk-X2ILN3KP.js";import"../chunk-HMMO27U4.js";import"../chunk-3BVHPQZW.js";import"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{b as CAPABILITIES,a as HANDLERS,c as availableCapabilities,d as pollForWork,e as runAgentLoop};
1
+ import{a,b,c,d,e}from"../chunk-DTMLVFNM.js";import"../chunk-TIOKY2IA.js";import"../chunk-W2MOTOQE.js";import"../chunk-3FJT6LL4.js";import"../chunk-DAGDGAPU.js";import"../chunk-6QKI756T.js";import"../chunk-RSKQRVPJ.js";import"../chunk-JEBHSV2M.js";import"../chunk-L5ORQB25.js";import"../chunk-Q76LGSIU.js";import"../chunk-WEF5LPGS.js";import"../chunk-N7TGRFVZ.js";import"../chunk-3DLVY7LD.js";import"../chunk-ZAWAPLIE.js";import"../chunk-AIEM6VXO.js";import"../chunk-BZUIMHHT.js";import"../chunk-QFVGUZDO.js";import"../chunk-ZL4MZMUK.js";import"../chunk-5RBLIVBF.js";import"../chunk-LEXVC7VH.js";import"../chunk-5W55CRBJ.js";import"../chunk-JR4CWY3J.js";import"../chunk-ZERPMWRT.js";import"../chunk-UR6GZGFK.js";import"../chunk-UF6US7VU.js";import"../chunk-YQ56FQEO.js";import"../chunk-JGYCLDYF.js";import"../chunk-ZWKKFAIX.js";import"../chunk-TDD7IOV2.js";import"../chunk-MODXEGCU.js";import"../chunk-7DFNBRLY.js";import"../chunk-4VZLIGMS.js";import"../chunk-3VYV6ZYB.js";import"../chunk-OZQV5CDT.js";import"../chunk-6UEFCMR2.js";import"../chunk-CJRYYV76.js";import"../chunk-BSJBNOJT.js";import"../chunk-L2CFSMBC.js";import"../chunk-Z72VHGV7.js";import"../chunk-7AZKPX2J.js";import"../chunk-CDY7TQFZ.js";import"../chunk-V5MJ4ICC.js";import"../chunk-WKXTY5AM.js";import"../chunk-HMMO27U4.js";import"../chunk-OPUI7CM2.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.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-K25S2MGU.js";import"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{b as buildCodexArgs,a as codexModelId,c as executeCodexEval};
1
+ import{a,b,c}from"../chunk-V5MJ4ICC.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{b as buildCodexArgs,a as codexModelId,c as executeCodexEval};
@@ -1 +1 @@
1
- import{a,b,c}from"../chunk-JAPCCEKF.js";import"../chunk-2JRDG4LJ.js";import"../chunk-I2DZGJRR.js";import"../chunk-ZLLER3HP.js";export{a as defaultEditorPinPaths,c as repinEditorProxies,b as unpinEditorProxies};
1
+ import{a,b,c}from"../chunk-CYKELSHS.js";import"../chunk-VLXCQ2DC.js";import"../chunk-I2DZGJRR.js";import"../chunk-ZLLER3HP.js";export{a as defaultEditorPinPaths,c as repinEditorProxies,b as unpinEditorProxies};
@@ -1 +1 @@
1
- import{a,b,c}from"../chunk-4O7MJUPH.js";import"../chunk-X2ILN3KP.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{b as aggregateBenchmark,c as postBenchmark,a as summarizeRuns};
1
+ import{a,b,c}from"../chunk-LETTPEG4.js";import"../chunk-WKXTY5AM.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{b as aggregateBenchmark,c as postBenchmark,a as summarizeRuns};
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e}from"../chunk-JGYCLDYF.js";import"../chunk-BSJBNOJT.js";import"../chunk-L2CFSMBC.js";import"../chunk-Z72VHGV7.js";import"../chunk-7AZKPX2J.js";import"../chunk-CDY7TQFZ.js";import"../chunk-V5MJ4ICC.js";import"../chunk-HMMO27U4.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{a as CANDIDATE_ARM,b as PRIOR_VERSION_ARM,d as buildCandidateQueue,c as pairCandidateRuns,e as runCandidateBatchAndPost};
@@ -1 +1 @@
1
- import{a,b}from"../chunk-UUMW6X2W.js";import"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{a as buildFeedbackBlock,b as generateEvalCases};
1
+ import{a,b}from"../chunk-3VYV6ZYB.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{a as buildFeedbackBlock,b as generateEvalCases};
@@ -1 +1 @@
1
- import{a}from"../chunk-QQ2UPNBC.js";import"../chunk-4VZLIGMS.js";import"../chunk-UUMW6X2W.js";import"../chunk-KAWNGQS2.js";import"../chunk-CDY7TQFZ.js";import"../chunk-K25S2MGU.js";import"../chunk-HMMO27U4.js";import"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{a as processConversationJob};
1
+ import{a}from"../chunk-ZWKKFAIX.js";import"../chunk-4VZLIGMS.js";import"../chunk-3VYV6ZYB.js";import"../chunk-7AZKPX2J.js";import"../chunk-CDY7TQFZ.js";import"../chunk-V5MJ4ICC.js";import"../chunk-HMMO27U4.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{a as processConversationJob};
@@ -1 +1 @@
1
- import{a}from"../chunk-KAWNGQS2.js";import"../chunk-CDY7TQFZ.js";import"../chunk-K25S2MGU.js";import"../chunk-HMMO27U4.js";import"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{a as gradeEvalOutput};
1
+ import{a}from"../chunk-7AZKPX2J.js";import"../chunk-CDY7TQFZ.js";import"../chunk-V5MJ4ICC.js";import"../chunk-HMMO27U4.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{a as gradeEvalOutput};
@@ -1 +1 @@
1
- import{a,b}from"../chunk-ZW5TAV3L.js";import"../chunk-L2CFSMBC.js";import"../chunk-Z72VHGV7.js";import"../chunk-KAWNGQS2.js";import"../chunk-CDY7TQFZ.js";import"../chunk-K25S2MGU.js";import"../chunk-HMMO27U4.js";import"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{a as executeAndGradeCase,b as runBatchAndPost};
1
+ import{a,b}from"../chunk-BSJBNOJT.js";import"../chunk-L2CFSMBC.js";import"../chunk-Z72VHGV7.js";import"../chunk-7AZKPX2J.js";import"../chunk-CDY7TQFZ.js";import"../chunk-V5MJ4ICC.js";import"../chunk-HMMO27U4.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{a as executeAndGradeCase,b as runBatchAndPost};
@@ -1 +1 @@
1
- import{a}from"../../chunk-DUP232AH.js";import"../../chunk-CJRYYV76.js";import"../../chunk-ZW5TAV3L.js";import"../../chunk-L2CFSMBC.js";import"../../chunk-Z72VHGV7.js";import"../../chunk-KAWNGQS2.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-K25S2MGU.js";import"../../chunk-HMMO27U4.js";import"../../chunk-SMGSLY5N.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as cronEvalAutorun};
1
+ import{a}from"../../chunk-5W55CRBJ.js";import"../../chunk-CJRYYV76.js";import"../../chunk-BSJBNOJT.js";import"../../chunk-L2CFSMBC.js";import"../../chunk-Z72VHGV7.js";import"../../chunk-7AZKPX2J.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-V5MJ4ICC.js";import"../../chunk-HMMO27U4.js";import"../../chunk-MODFTCZY.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as cronEvalAutorun};
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e}from"../../chunk-JR4CWY3J.js";import"../../chunk-ZERPMWRT.js";import"../../chunk-JGYCLDYF.js";import"../../chunk-BSJBNOJT.js";import"../../chunk-L2CFSMBC.js";import"../../chunk-Z72VHGV7.js";import"../../chunk-7AZKPX2J.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-V5MJ4ICC.js";import"../../chunk-WKXTY5AM.js";import"../../chunk-HMMO27U4.js";import"../../chunk-MODFTCZY.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{b as MAX_PASSES,a as PAIR_HEADROOM,d as cronInstructionEvolution,c as planPasses,e as readImmutableSections};
@@ -1 +1 @@
1
- import{a}from"../../chunk-DO3KHK2X.js";import"../../chunk-SMGSLY5N.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as cronRefreshPricing};
1
+ import{a}from"../../chunk-UR6GZGFK.js";import"../../chunk-MODFTCZY.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as cronRefreshPricing};
@@ -1 +1 @@
1
- import{a}from"../../chunk-MSTF7A7D.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-TDD7IOV2.js";import"../../chunk-MODXEGCU.js";import"../../chunk-SMGSLY5N.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as cronSuggestInstructions};
1
+ import{a}from"../../chunk-L5ORQB25.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-TDD7IOV2.js";import"../../chunk-MODXEGCU.js";import"../../chunk-MODFTCZY.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as cronSuggestInstructions};
@@ -1 +1 @@
1
- import{a,b}from"../../chunk-4HZWSFSY.js";import"../../chunk-KZ65LEUH.js";import"../../chunk-SMGSLY5N.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-ZLLER3HP.js";export{b as distillMemories,a as selectNewMemories};
1
+ import{a,b}from"../../chunk-Q76LGSIU.js";import"../../chunk-MODFTCZY.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{b as distillMemories,a as selectNewMemories};
@@ -1 +1 @@
1
- import{a}from"../../chunk-6UTJGOBA.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-KZ65LEUH.js";import"../../chunk-ZLLER3HP.js";export{a as processAnnouncement};
1
+ import{a}from"../../chunk-WEF5LPGS.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-3DLVY7LD.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-ZLLER3HP.js";export{a as processAnnouncement};
@@ -1 +1 @@
1
- import{a}from"../../chunk-CBP7QZAN.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-KZ65LEUH.js";import"../../chunk-ZLLER3HP.js";export{a as processChangelog};
1
+ import{a}from"../../chunk-OVZZUI33.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-3DLVY7LD.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-ZLLER3HP.js";export{a as processChangelog};
@@ -1 +1 @@
1
- import{a}from"../../chunk-OSIP6FUD.js";import"../../chunk-QQ2UPNBC.js";import"../../chunk-4VZLIGMS.js";import"../../chunk-UUMW6X2W.js";import"../../chunk-KAWNGQS2.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-K25S2MGU.js";import"../../chunk-HMMO27U4.js";import"../../chunk-SMGSLY5N.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processConversation};
1
+ import{a}from"../../chunk-ZAWAPLIE.js";import"../../chunk-ZWKKFAIX.js";import"../../chunk-4VZLIGMS.js";import"../../chunk-3VYV6ZYB.js";import"../../chunk-7AZKPX2J.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-V5MJ4ICC.js";import"../../chunk-HMMO27U4.js";import"../../chunk-MODFTCZY.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processConversation};
@@ -1 +1 @@
1
- import{a}from"../../chunk-ULRVMH7O.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-YQ56FQEO.js";import"../../chunk-UUMW6X2W.js";import"../../chunk-L2CFSMBC.js";import"../../chunk-Z72VHGV7.js";import"../../chunk-KAWNGQS2.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-K25S2MGU.js";import"../../chunk-HMMO27U4.js";import"../../chunk-SMGSLY5N.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processEval};
1
+ import{a}from"../../chunk-AIEM6VXO.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-YQ56FQEO.js";import"../../chunk-3VYV6ZYB.js";import"../../chunk-L2CFSMBC.js";import"../../chunk-Z72VHGV7.js";import"../../chunk-7AZKPX2J.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-V5MJ4ICC.js";import"../../chunk-HMMO27U4.js";import"../../chunk-MODFTCZY.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processEval};
@@ -1 +1 @@
1
- import{a}from"../../chunk-PRDYXO6Z.js";import"../../chunk-QFVGUZDO.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-SMGSLY5N.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processInsights};
1
+ import{a}from"../../chunk-BZUIMHHT.js";import"../../chunk-QFVGUZDO.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-MODFTCZY.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processInsights};
@@ -1 +1 @@
1
- import{a}from"../../chunk-T4P2NV3P.js";import"../../chunk-HL755A5U.js";import"../../chunk-6UEFCMR2.js";import"../../chunk-KAWNGQS2.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-K25S2MGU.js";import"../../chunk-HMMO27U4.js";import"../../chunk-3BVHPQZW.js";import"../../chunk-SMGSLY5N.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processJudgeReview};
1
+ import{a}from"../../chunk-LEXVC7VH.js";import"../../chunk-OZQV5CDT.js";import"../../chunk-6UEFCMR2.js";import"../../chunk-7AZKPX2J.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-V5MJ4ICC.js";import"../../chunk-HMMO27U4.js";import"../../chunk-OPUI7CM2.js";import"../../chunk-MODFTCZY.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processJudgeReview};
@@ -1 +1 @@
1
- import{a,b}from"../../chunk-BUWWFHGO.js";import"../../chunk-MDPN46EY.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-5DIOZDDZ.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{b as processLaunch,a as resolveWorktreeForLaunch};
1
+ import{a,b}from"../../chunk-W2MOTOQE.js";import"../../chunk-6QKI756T.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-7DFNBRLY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{b as processLaunch,a as resolveWorktreeForLaunch};
@@ -1 +1 @@
1
- import{a}from"../../chunk-CS2OQ3GC.js";import"../../chunk-KZ65LEUH.js";import"../../chunk-KAWNGQS2.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-K25S2MGU.js";import"../../chunk-X2ILN3KP.js";import"../../chunk-HMMO27U4.js";import"../../chunk-SMGSLY5N.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-ZLLER3HP.js";export{a as processMemoryAb};
1
+ import{a}from"../../chunk-3FJT6LL4.js";import"../../chunk-3DLVY7LD.js";import"../../chunk-7AZKPX2J.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-V5MJ4ICC.js";import"../../chunk-WKXTY5AM.js";import"../../chunk-HMMO27U4.js";import"../../chunk-MODFTCZY.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-ZLLER3HP.js";export{a as processMemoryAb};
@@ -1 +1 @@
1
- import{a}from"../../chunk-M4YF7YO7.js";import"../../chunk-MDPN46EY.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-KZ65LEUH.js";import"../../chunk-5DIOZDDZ.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-ZLLER3HP.js";export{a as processRunCleanup};
1
+ import{a}from"../../chunk-DAGDGAPU.js";import"../../chunk-6QKI756T.js";import"../../chunk-3DLVY7LD.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-7DFNBRLY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-ZLLER3HP.js";export{a as processRunCleanup};
@@ -1 +1 @@
1
- import{a}from"../../chunk-35ST2BX7.js";import"../../chunk-KZ65LEUH.js";import"../../chunk-SMGSLY5N.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-ZLLER3HP.js";export{a as processSessionGoal};
1
+ import{a}from"../../chunk-JEBHSV2M.js";import"../../chunk-MODFTCZY.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processSessionGoal};
@@ -1 +1 @@
1
- import{A,B,C,D,E,F,G,H,I,J,K,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../chunk-2JRDG4LJ.js";import"../chunk-I2DZGJRR.js";import"../chunk-ZLLER3HP.js";export{j as RULEMETRIC_NO_PROXY,k as claudeSettingsInstallPath,o as cleanClaudeSettingsFiles,a as detectInstalledTools,G as generateAntigravityHooksConfig,d as generateClaudeCodeHooksConfig,c as generateCopilotHooksConfig,b as generateCursorHooksConfig,D as getCursorUserSettingsPath,A as getVSCodeUserSettingsPath,h as hasRulemetricClaudeHooks,y as installMacOSProxyEnv,g as mergeClaudeCodeHooks,n as migrateSharedClaudeSettings,e as readClaudeSettings,J as removeAntigravityHooks,K as removeAntigravityUserHooks,i as removeClaudeCodeHooks,x as removeCopilotHooks,s as removeCursorHooks,t as removeCursorUserHooks,F as removeCursorUserProxyConfig,m as removeRulemetricMachineState,l as removeRulemetricProxyEnv,w as removeVSCodeProxyConfig,C as removeVSCodeUserProxyConfig,z as uninstallMacOSProxyEnv,H as writeAntigravityHooks,I as writeAntigravityUserHooks,f as writeClaudeSettingsWithBackup,r as writeCopilotHooks,p as writeCursorHooks,u as writeCursorProxyConfig,q as writeCursorUserHooks,E as writeCursorUserProxyConfig,v as writeVSCodeProxyConfig,B as writeVSCodeUserProxyConfig};
1
+ import{A,B,C,D,E,F,G,H,I,J,K,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../chunk-VLXCQ2DC.js";import"../chunk-I2DZGJRR.js";import"../chunk-ZLLER3HP.js";export{j as RULEMETRIC_NO_PROXY,k as claudeSettingsInstallPath,o as cleanClaudeSettingsFiles,a as detectInstalledTools,G as generateAntigravityHooksConfig,d as generateClaudeCodeHooksConfig,c as generateCopilotHooksConfig,b as generateCursorHooksConfig,D as getCursorUserSettingsPath,A as getVSCodeUserSettingsPath,h as hasRulemetricClaudeHooks,y as installMacOSProxyEnv,g as mergeClaudeCodeHooks,n as migrateSharedClaudeSettings,e as readClaudeSettings,J as removeAntigravityHooks,K as removeAntigravityUserHooks,i as removeClaudeCodeHooks,x as removeCopilotHooks,s as removeCursorHooks,t as removeCursorUserHooks,F as removeCursorUserProxyConfig,m as removeRulemetricMachineState,l as removeRulemetricProxyEnv,w as removeVSCodeProxyConfig,C as removeVSCodeUserProxyConfig,z as uninstallMacOSProxyEnv,H as writeAntigravityHooks,I as writeAntigravityUserHooks,f as writeClaudeSettingsWithBackup,r as writeCopilotHooks,p as writeCursorHooks,u as writeCursorProxyConfig,q as writeCursorUserHooks,E as writeCursorUserProxyConfig,v as writeVSCodeProxyConfig,B as writeVSCodeUserProxyConfig};
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e,f}from"../chunk-ZERPMWRT.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{b as MAX_GROWTH_FACTOR,a as MIN_RETAINED_FRACTION,d as buildProposerData,c as buildProposerSystemPrompt,e as parseProposalResponse,f as proposeInstructionEdit};
@@ -1 +1 @@
1
- import{a,b,c,d}from"../chunk-HL755A5U.js";import"../chunk-6UEFCMR2.js";import"../chunk-KAWNGQS2.js";import"../chunk-CDY7TQFZ.js";import"../chunk-K25S2MGU.js";import"../chunk-HMMO27U4.js";import"../chunk-3BVHPQZW.js";import"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{c as JudgeReviewSkip,b as llmExpectationIndexes,a as reviewMatchesReviewer,d as runJudgeReviewPass};
1
+ import{a,b,c,d}from"../chunk-OZQV5CDT.js";import"../chunk-6UEFCMR2.js";import"../chunk-7AZKPX2J.js";import"../chunk-CDY7TQFZ.js";import"../chunk-V5MJ4ICC.js";import"../chunk-HMMO27U4.js";import"../chunk-OPUI7CM2.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{c as JudgeReviewSkip,b as llmExpectationIndexes,a as reviewMatchesReviewer,d as runJudgeReviewPass};
@@ -1 +1 @@
1
- import{a,b,c,d,e,f}from"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{d as detectLlmBackend,b as getToolCli,e as resetLlmBackendCache,a as resolveToolBin,f as runLlmPrompt,c as runToolPrompt};
1
+ import{a,b,c,d,e,f,g}from"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{d as detectLlmBackend,b as getToolCli,e as resetLlmBackendCache,a as resolveToolBin,f as runLlmPrompt,g as runLlmPromptText,c as runToolPrompt};
@@ -1 +1 @@
1
- import{a as l}from"../chunk-CBP7QZAN.js";import"../chunk-N7TGRFVZ.js";import{a as u}from"../chunk-UF6US7VU.js";import{a as g}from"../chunk-MSTF7A7D.js";import"../chunk-ZL4MZMUK.js";import"../chunk-KZ65LEUH.js";import"../chunk-TDD7IOV2.js";import"../chunk-MODXEGCU.js";import{a as i}from"../chunk-GY5IJ4RS.js";import"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import{a as o}from"../chunk-ZLLER3HP.js";var c={cron_check_changelog:o(async(r,e)=>{let s=await l({logger:{info:o(t=>e.logger.info(t),"info"),warn:o(t=>e.logger.warn(t),"warn")}});e.logger.info(`[cron_check_changelog] result: created=${s.createdCount} skipped=${s.skippedCount}`)},"cron_check_changelog"),cron_suggest_instructions:o((r,e)=>g(r,e),"cron_suggest_instructions"),cron_refresh_skills:o((r,e)=>u(r,e),"cron_refresh_skills")},p=i.map(r=>{let e=c[r.name];if(!e)throw new Error(`manual-tasks: no handler registered for "${r.name}"`);return{...r,handler:e}});async function m(r){let e=p.find(n=>n.name===r);if(!e)return{name:r,durationMs:0,ok:!1,error:`Unknown task: ${r}`,logs:[]};let s=[],t={logger:{info:o(n=>s.push({level:"info",message:n}),"info"),warn:o(n=>s.push({level:"warn",message:n}),"warn"),error:o(n=>s.push({level:"error",message:n}),"error")},job:{attempts:0}},a=Date.now();try{return await e.handler({},t),{name:r,durationMs:Date.now()-a,ok:!0,logs:s}}catch(n){return{name:r,durationMs:Date.now()-a,ok:!1,error:n instanceof Error?n.message:String(n),logs:s}}}o(m,"runManualTask");export{p as MANUAL_TASKS,m as runManualTask};
1
+ import{a as l}from"../chunk-OVZZUI33.js";import{a as g}from"../chunk-L5ORQB25.js";import"../chunk-N7TGRFVZ.js";import"../chunk-3DLVY7LD.js";import"../chunk-ZL4MZMUK.js";import{a as u}from"../chunk-UF6US7VU.js";import"../chunk-TDD7IOV2.js";import"../chunk-MODXEGCU.js";import{a as i}from"../chunk-GY5IJ4RS.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import{a as o}from"../chunk-ZLLER3HP.js";var c={cron_check_changelog:o(async(r,e)=>{let s=await l({logger:{info:o(t=>e.logger.info(t),"info"),warn:o(t=>e.logger.warn(t),"warn")}});e.logger.info(`[cron_check_changelog] result: created=${s.createdCount} skipped=${s.skippedCount}`)},"cron_check_changelog"),cron_suggest_instructions:o((r,e)=>g(r,e),"cron_suggest_instructions"),cron_refresh_skills:o((r,e)=>u(r,e),"cron_refresh_skills")},p=i.map(r=>{let e=c[r.name];if(!e)throw new Error(`manual-tasks: no handler registered for "${r.name}"`);return{...r,handler:e}});async function m(r){let e=p.find(n=>n.name===r);if(!e)return{name:r,durationMs:0,ok:!1,error:`Unknown task: ${r}`,logs:[]};let s=[],t={logger:{info:o(n=>s.push({level:"info",message:n}),"info"),warn:o(n=>s.push({level:"warn",message:n}),"warn"),error:o(n=>s.push({level:"error",message:n}),"error")},job:{attempts:0}},a=Date.now();try{return await e.handler({},t),{name:r,durationMs:Date.now()-a,ok:!0,logs:s}}catch(n){return{name:r,durationMs:Date.now()-a,ok:!1,error:n instanceof Error?n.message:String(n),logs:s}}}o(m,"runManualTask");export{p as MANUAL_TASKS,m as runManualTask};
@@ -1 +1 @@
1
- import{a,b,c}from"../chunk-WYF5BIQW.js";import"../chunk-X2ILN3KP.js";import"../chunk-ZLLER3HP.js";export{b as buildVersionVerdict,c as formatVersionVerdict,a as pairVersionResults};
1
+ import{a,b,c}from"../chunk-QH7PCQHM.js";import"../chunk-WKXTY5AM.js";import"../chunk-ZLLER3HP.js";export{b as buildVersionVerdict,c as formatVersionVerdict,a as pairVersionResults};
@@ -1 +1 @@
1
- import{a,b,c,d,e}from"../chunk-3BVHPQZW.js";import"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{c as CODEX_FALLBACK_MODEL,e as chooseReviewer,d as detectEngines,b as isCodexModelUnsupported,a as parseCodexConfigModel};
1
+ import{a,b,c,d,e}from"../chunk-OPUI7CM2.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{c as CODEX_FALLBACK_MODEL,e as chooseReviewer,d as detectEngines,b as isCodexModelUnsupported,a as parseCodexConfigModel};
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i,j}from"../chunk-35ZDT2VL.js";import"../chunk-2JRDG4LJ.js";import"../chunk-I2DZGJRR.js";import"../chunk-MVM6OGAF.js";import"../chunk-KKDHD4XA.js";import"../chunk-SZ62CP55.js";import"../chunk-3BVHPQZW.js";import"../chunk-SMGSLY5N.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{c as ALL_STEP_IDS,a as CORE_STEP_IDS,b as OPTIONAL_STEP_IDS,g as STEPS,j as computeStatus,d as defaultContext,h as getStep,i as isStepId,e as maskToken,f as renderDiff};
1
+ import{a,b,c,d,e,f,g,h,i,j}from"../chunk-7W6KET2A.js";import"../chunk-VLXCQ2DC.js";import"../chunk-I2DZGJRR.js";import"../chunk-MVM6OGAF.js";import"../chunk-KKDHD4XA.js";import"../chunk-SZ62CP55.js";import"../chunk-OPUI7CM2.js";import"../chunk-MODFTCZY.js";import"../chunk-PJ3WHQ67.js";import"../chunk-N7ODX6PO.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{c as ALL_STEP_IDS,a as CORE_STEP_IDS,b as OPTIONAL_STEP_IDS,g as STEPS,j as computeStatus,d as defaultContext,h as getStep,i as isStepId,e as maskToken,f as renderDiff};
@@ -1 +1 @@
1
- import{a as b,b as c,c as d}from"../chunk-MDPN46EY.js";import{x as a}from"../chunk-5DIOZDDZ.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{c as ensureWorktree,d as removeWorktree,b as runGit,a as sanitizeBranch};
1
+ import{a as b,b as c,c as d}from"../chunk-6QKI756T.js";import{x as a}from"../chunk-7DFNBRLY.js";import"../chunk-N7ODX6PO.js";import"../chunk-ZLLER3HP.js";export{c as ensureWorktree,d as removeWorktree,b as runGit,a as sanitizeBranch};
@@ -571,6 +571,16 @@
571
571
  "hasDynamicHelp": false,
572
572
  "multiple": false,
573
573
  "type": "option"
574
+ },
575
+ "api-key": {
576
+ "description": "Authenticate with an API key from https://rulemetric.com/connect (required for Google/GitHub sign-ins, which have no password)",
577
+ "exclusive": [
578
+ "password"
579
+ ],
580
+ "name": "api-key",
581
+ "hasDynamicHelp": false,
582
+ "multiple": false,
583
+ "type": "option"
574
584
  }
575
585
  },
576
586
  "hasDynamicHelp": false,
@@ -3670,7 +3680,8 @@
3670
3680
  "description": "List captured sessions",
3671
3681
  "examples": [
3672
3682
  "<%= config.bin %> sessions list",
3673
- "<%= config.bin %> sessions list --tool claude_code"
3683
+ "<%= config.bin %> sessions list --tool claude_code",
3684
+ "<%= config.bin %> sessions list --tool codex"
3674
3685
  ],
3675
3686
  "flags": {
3676
3687
  "api-url": {
@@ -3683,7 +3694,7 @@
3683
3694
  "type": "option"
3684
3695
  },
3685
3696
  "tool": {
3686
- "description": "Filter by tool (claude_code, cursor, vscode_copilot)",
3697
+ "description": "Filter by tool (claude_code, cursor, vscode_copilot, copilot_agent, rulemetric_mcp, codex, pi, opencode, antigravity)",
3687
3698
  "name": "tool",
3688
3699
  "hasDynamicHelp": false,
3689
3700
  "multiple": false,
@@ -4323,5 +4334,5 @@
4323
4334
  ]
4324
4335
  }
4325
4336
  },
4326
- "version": "0.7.30"
4337
+ "version": "0.7.32"
4327
4338
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rulemetric/cli",
3
- "version": "0.7.30",
3
+ "version": "0.7.32",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -74,9 +74,9 @@
74
74
  "postgres": "^3.4.0",
75
75
  "react": "^19.0.0",
76
76
  "zod": "^3.24.0",
77
- "@rulemetric/hooks": "0.7.30",
78
- "@rulemetric/skills-registry": "0.7.30",
79
- "@rulemetric/proxy": "0.7.30"
77
+ "@rulemetric/hooks": "0.7.32",
78
+ "@rulemetric/proxy": "0.7.32",
79
+ "@rulemetric/skills-registry": "0.7.32"
80
80
  },
81
81
  "//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.",
82
82
  "optionalDependencies": {
@@ -97,11 +97,11 @@
97
97
  "@rulemetric/api": "0.0.1",
98
98
  "@rulemetric/core": "0.0.1",
99
99
  "@rulemetric/db": "0.0.1",
100
- "@rulemetric/email": "0.0.1",
101
100
  "@rulemetric/effectiveness": "0.0.1",
101
+ "@rulemetric/email": "0.0.1",
102
102
  "@rulemetric/session": "0.2.1",
103
- "@rulemetric/telemetry": "0.0.1",
104
- "@rulemetric/typescript-config": "0.0.0"
103
+ "@rulemetric/typescript-config": "0.0.0",
104
+ "@rulemetric/telemetry": "0.0.1"
105
105
  },
106
106
  "scripts": {
107
107
  "build": "node scripts/build.mjs",
@@ -1,31 +0,0 @@
1
- import{f as x}from"./chunk-I2DZGJRR.js";import{a as r}from"./chunk-ZLLER3HP.js";import{execSync as h}from"node:child_process";import{existsSync as c,mkdirSync as y,readFileSync as p,writeFileSync as a,unlinkSync as S,copyFileSync as $}from"node:fs";import{homedir as d}from"node:os";import{join as i,dirname as N}from"node:path";function q(e){let t=["claude_code"];return c(i(e,".cursor"))&&t.push("cursor"),c(i(e,".github"))&&t.push("copilot_agent"),c(i(e,".agents"))&&t.push("antigravity"),t}r(q,"detectInstalledTools");function U(e){let t=e?`PATH="${e}:$PATH" `:"",o=r(n=>({command:`${t}rulemetric hooks run ${n}`}),"cmd");return{version:1,hooks:{sessionStart:[o("session-start")],beforeSubmitPrompt:[o("user-prompt")],afterFileEdit:[o("post-tool-use")],beforeShellExecution:[o("post-tool-use")],afterShellExecution:[o("post-tool-use")],beforeMCPExecution:[o("post-tool-use")],afterMCPExecution:[o("post-tool-use")],afterAgentResponse:[o("assistant-response")],stop:[o("post-tool-use")],sessionEnd:[o("session-end")]}}}r(U,"generateCursorHooksConfig");function L(e){let t=e?`PATH="${e}:$PATH" `:"",o=r(n=>({type:"command",bash:`${t}rulemetric hooks run ${n}`}),"cmd");return{version:1,hooks:{sessionStart:[o("session-start")],userPromptSubmitted:[o("user-prompt")],postToolUse:[o("post-tool-use")],sessionEnd:[o("session-end")]}}}r(L,"generateCopilotHooksConfig");function B(e){let t=e?`PATH="${e}:$PATH" `:"",o=r(n=>({type:"command",command:`${t}rulemetric hooks run ${n}`}),"mk");return{SessionStart:[{hooks:[o("session-start")]}],UserPromptSubmit:[{hooks:[o("user-prompt")]}],PostToolUse:[{matcher:".*",hooks:[o("post-tool-use")]}],SessionEnd:[{hooks:[o("session-end")]}]}}r(B,"generateClaudeCodeHooksConfig");function J(e){if(!c(e))return{settings:{},recoveredBackup:null};let t=p(e,"utf-8");try{return{settings:JSON.parse(t),recoveredBackup:null}}catch{let o=`${e}.corrupt.bak`;return a(o,t),{settings:{},recoveredBackup:o}}}r(J,"readClaudeSettings");function b(e,t){y(N(e),{recursive:!0});let o=null;return c(e)&&(o=`${e}.bak`,$(e,o)),a(e,JSON.stringify(t,null,2)+`
2
- `),{backupPath:o}}r(b,"writeClaudeSettingsWithBackup");function k(e){if(!c(e))return{};let t=p(e,"utf-8");try{return JSON.parse(t)}catch{try{a(`${e}.corrupt.bak`,t)}catch{}return null}}r(k,"readMergeableJson");function Q(e,t){let o=B(t),n=e.hooks??{};for(let[s,u]of Object.entries(o)){let l=n[s]??[];l.some(m=>m?.hooks?.some(f=>typeof f?.command=="string"&&f.command.includes("rulemetric")))||(n[s]=[...l,...u])}e.hooks=n}r(Q,"mergeClaudeCodeHooks");function Z(e){if(!e.hooks||typeof e.hooks!="object")return!1;let t=e.hooks;return Object.values(t).some(o=>Array.isArray(o)&&o.some(n=>n?.hooks?.some(s=>typeof s?.command=="string"&&s.command.includes("rulemetric"))))}r(Z,"hasRulemetricClaudeHooks");function D(e){if(!e.hooks||typeof e.hooks!="object")return!1;let t=e.hooks,o=0;for(let n of Object.keys(t)){let s=t[n];if(!Array.isArray(s))continue;let u=s.filter(l=>{let g=l?.hooks?.some(m=>typeof m?.command=="string"&&m.command.includes("rulemetric"));return g&&(o+=1),!g});u.length===0?delete t[n]:t[n]=u}return Object.keys(t).length===0&&delete e.hooks,o>0}r(D,"removeClaudeCodeHooks");var X="localhost,127.0.0.1,*.supabase.co,*.supabase.in";function tt(e,t){return i(e,t?"settings.json":"settings.local.json")}r(tt,"claudeSettingsInstallPath");function M(e,t){let o=e.env;if(!o||typeof o!="object")return!1;let n=!1,s=o.HTTPS_PROXY;(s===`http://localhost:${t}`||s===`http://127.0.0.1:${t}`)&&(delete o.HTTPS_PROXY,n=!0),o.NO_PROXY===X&&(delete o.NO_PROXY,n=!0);let u=o.NODE_EXTRA_CA_CERTS;return typeof u=="string"&&u.includes(".mitmproxy")&&u.endsWith("mitmproxy-ca-cert.pem")&&(delete o.NODE_EXTRA_CA_CERTS,n=!0),n&&Object.keys(o).length===0&&delete e.env,n}r(M,"removeRulemetricProxyEnv");function C(e,t){let o=D(e),n=M(e,t),s=x(e);return{removedHooks:o,removedProxyEnv:n,removedStatusline:s,removed:o||n||s}}r(C,"removeRulemetricMachineState");function et(e,t){let o={migrated:!1,backupPath:null,removedHooks:!1,removedProxyEnv:!1,removedStatusline:!1,removed:!1};if(!c(e))return o;let n;try{n=JSON.parse(p(e,"utf-8"))}catch{return o}let s=C(n,t);if(!s.removed)return o;let{backupPath:u}=b(e,n);return{...s,migrated:!0,backupPath:u}}r(et,"migrateSharedClaudeSettings");function ot(e,t){let o=[];for(let n of["settings.json","settings.local.json"]){let s=i(e,n);if(!c(s))continue;let{settings:u,recoveredBackup:l}=J(s),g=C(u,t);g.removed&&b(s,u),o.push({...g,configPath:s,fileName:n,recoveredBackup:l,changed:g.removed})}return o}r(ot,"cleanClaudeSettingsFiles");function R(e,t){if(!c(e))return null;let o=i(e,"hooks.json"),n=U(t),s=k(o);if(s===null)return null;let u=s,l={...u.hooks??{}},g=r(f=>typeof f=="object"&&f!==null&&"command"in f&&typeof f.command=="string"&&f.command.includes("rulemetric"),"isRulemetricHook");for(let[f,w]of Object.entries(n.hooks)){let j=(l[f]??[]).filter(_=>!g(_));l[f]=[...j,...w]}let m={version:u.version??n.version,hooks:l};return a(o,JSON.stringify(m,null,2)+`
3
- `),o}r(R,"writeCursorHooksToDir");function nt(e,t){return R(i(e,".cursor"),t)}r(nt,"writeCursorHooks");function rt(e,t=d()){let o=i(t,".cursor");return c(o)?R(o,e):null}r(rt,"writeCursorUserHooks");function st(e,t){let o=i(e,".github");if(!c(o))return null;let n=i(o,"hooks");y(n,{recursive:!0});let s=i(n,"rulemetric.json"),u=L(t);return a(s,JSON.stringify(u,null,2)+`
4
- `),s}r(st,"writeCopilotHooks");function A(e){if(!c(e))return!1;let t;try{t=JSON.parse(p(e,"utf-8"))}catch{return!1}if(!t.hooks)return!1;let o=!1;for(let[n,s]of Object.entries(t.hooks)){let u=s.filter(l=>{if(typeof l!="object"||l===null||!("command"in l))return!0;let g=l.command;return typeof g=="string"&&g.includes("rulemetric")?(o=!0,!1):!0});u.length===0?delete t.hooks[n]:t.hooks[n]=u}return o&&a(e,JSON.stringify(t,null,2)+`
5
- `),o}r(A,"removeCursorHooksFromFile");function it(e){return A(i(e,".cursor","hooks.json"))}r(it,"removeCursorHooks");function ut(){return A(i(d(),".cursor","hooks.json"))}r(ut,"removeCursorUserHooks");function ct(e,t,o){let n=i(e,".cursor");if(!c(n))return!1;let s=i(n,"settings.json"),u=k(s);return u===null?!1:(u["http.proxy"]=`http://localhost:${t}`,u["http.proxyStrictSSL"]=c(o),a(s,JSON.stringify(u,null,2)+`
6
- `),!0)}r(ct,"writeCursorProxyConfig");function lt(e,t,o){let n=i(e,".vscode");if(!c(n))return!1;let s=i(n,"settings.json"),u=k(s);if(u===null)return!1;u["http.proxy"]=`http://localhost:${t}`,u["http.proxyStrictSSL"]=c(o);let l=u["github.copilot.advanced"]??{};return l["debug.overrideProxyUrl"]=`http://localhost:${t}`,u["github.copilot.advanced"]=l,a(s,JSON.stringify(u,null,2)+`
7
- `),!0}r(lt,"writeVSCodeProxyConfig");function at(e){let t=i(e,".vscode","settings.json");if(!c(t))return!1;let o;try{o=JSON.parse(p(t,"utf-8"))}catch{return!1}let n=!1;o["http.proxy"]&&(delete o["http.proxy"],delete o["http.proxyStrictSSL"],n=!0);let s=o["github.copilot.advanced"];return s?.["debug.overrideProxyUrl"]&&(delete s["debug.overrideProxyUrl"],Object.keys(s).length===0&&delete o["github.copilot.advanced"],n=!0),n&&a(t,JSON.stringify(o,null,2)+`
8
- `),n}r(at,"removeVSCodeProxyConfig");function gt(e){let t=i(e,".github","hooks","rulemetric.json");return c(t)?(S(t),!0):!1}r(gt,"removeCopilotHooks");var H="com.rulemetric.env";function P(){return i(d(),"Library","LaunchAgents",`${H}.plist`)}r(P,"getLaunchAgentPath");function ft(e,t){if(process.platform!=="darwin")return!1;let o=`http://localhost:${e}`;try{h(`launchctl setenv HTTPS_PROXY ${o}`,{stdio:"pipe"}),c(t)&&h(`launchctl setenv NODE_EXTRA_CA_CERTS ${t}`,{stdio:"pipe"})}catch{return!1}let n=P(),s=i(d(),"Library","LaunchAgents");y(s,{recursive:!0});let u=c(t)?`launchctl setenv NODE_EXTRA_CA_CERTS ${t};`:"",l=`if nc -z -w 1 127.0.0.1 ${e} 2>/dev/null; then launchctl setenv HTTPS_PROXY ${o};${u} else launchctl unsetenv HTTPS_PROXY; launchctl unsetenv NODE_EXTRA_CA_CERTS; fi`,g=`<?xml version="1.0" encoding="UTF-8"?>
9
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
10
- "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
11
- <plist version="1.0">
12
- <dict>
13
- <key>Label</key>
14
- <string>${H}</string>
15
- <key>ProgramArguments</key>
16
- <array>
17
- <string>/bin/sh</string>
18
- <string>-c</string>
19
- <string>${l}</string>
20
- </array>
21
- <key>RunAtLoad</key>
22
- <true/>
23
- </dict>
24
- </plist>
25
- `;return a(n,g),!0}r(ft,"installMacOSProxyEnv");function dt(){if(process.platform!=="darwin")return!1;let e=!1;try{h("launchctl unsetenv HTTPS_PROXY",{stdio:"pipe"}),h("launchctl unsetenv NODE_EXTRA_CA_CERTS",{stdio:"pipe"})}catch{}let t=P();return c(t)&&(S(t),e=!0),e}r(dt,"uninstallMacOSProxyEnv");function O(){return process.platform==="darwin"?i(d(),"Library","Application Support","Code","User","settings.json"):process.platform==="win32"?i(process.env.APPDATA??"","Code","User","settings.json"):i(d(),".config","Code","User","settings.json")}r(O,"getVSCodeUserSettingsPath");function pt(e){let t=O();if(!c(i(t,"..")))return!1;let o=k(t);return o===null||o["http.proxy"]&&!o["http.proxy"].includes("localhost")?!1:(o["http.proxy"]=`http://localhost:${e}`,o["http.proxyStrictSSL"]=!1,a(t,JSON.stringify(o,null,2)+`
26
- `),!0)}r(pt,"writeVSCodeUserProxyConfig");function mt(){let e=O();if(!c(e))return!1;let t;try{t=JSON.parse(p(e,"utf-8"))}catch{return!1}return t["http.proxy"]?.includes("localhost")?(delete t["http.proxy"],delete t["http.proxyStrictSSL"],a(e,JSON.stringify(t,null,2)+`
27
- `),!0):!1}r(mt,"removeVSCodeUserProxyConfig");function T(){return process.platform==="darwin"?i(d(),"Library","Application Support","Cursor","User","settings.json"):process.platform==="win32"?i(process.env.APPDATA??"","Cursor","User","settings.json"):i(d(),".config","Cursor","User","settings.json")}r(T,"getCursorUserSettingsPath");function kt(e){let t=T();if(!c(i(t,"..")))return!1;let o=k(t);return o===null||o["http.proxy"]&&!o["http.proxy"].includes("localhost")?!1:(o["http.proxy"]=`http://localhost:${e}`,o["http.proxyStrictSSL"]=!1,a(t,JSON.stringify(o,null,2)+`
28
- `),!0)}r(kt,"writeCursorUserProxyConfig");function ht(){let e=T();if(!c(e))return!1;let t;try{t=JSON.parse(p(e,"utf-8"))}catch{return!1}return t["http.proxy"]?.includes("localhost")?(delete t["http.proxy"],delete t["http.proxyStrictSSL"],a(e,JSON.stringify(t,null,2)+`
29
- `),!0):!1}r(ht,"removeCursorUserProxyConfig");function F(){let e=process.execPath,t=process.argv[1];return t&&t.endsWith("run.js")?`${e} ${t}`:"rulemetric"}r(F,"getRulemetricCommand");function Y(){let e=F(),t=r(o=>({type:"command",command:`RULEMETRIC_HOOK_TOOL=antigravity ${e} hooks run ${o}`,timeout:30}),"mk");return{rulemetric:{enabled:!0,SessionStart:[{hooks:[t("session-start")]}],PostToolUse:[{matcher:".*",hooks:[t("post-tool-use")]}],SessionEnd:[{hooks:[t("session-end")]}]}}}r(Y,"generateAntigravityHooksConfig");function E(e){let t=i(e,"hooks.json"),o=k(t);if(o===null)return null;let n=Y(),s={...o,rulemetric:n.rulemetric};return y(e,{recursive:!0}),a(t,JSON.stringify(s,null,2)+`
30
- `),t}r(E,"writeAntigravityHooksToDir");function yt(e){return E(i(e,".agents"))}r(yt,"writeAntigravityHooks");function vt(e=d()){let t=i(e,".gemini");return c(t)?E(i(t,"config")):null}r(vt,"writeAntigravityUserHooks");function v(e){if(!c(e))return!1;let t;try{t=JSON.parse(p(e,"utf-8"))}catch{return!1}if(!("rulemetric"in t))return!1;if(delete t.rulemetric,Object.keys(t).length===0)try{S(e)}catch{}else a(e,JSON.stringify(t,null,2)+`
31
- `);return!0}r(v,"removeAntigravityHooksFromFile");function St(e){return v(i(e,".agents","hooks.json"))}r(St,"removeAntigravityHooks");function xt(){let e=v(i(d(),".gemini","config","hooks.json")),t=v(i(d(),".gemini","hooks.json"));return e||t}r(xt,"removeAntigravityUserHooks");export{q as a,U as b,L as c,B as d,J as e,b as f,Q as g,Z as h,D as i,X as j,tt as k,M as l,C as m,et as n,ot as o,nt as p,rt as q,st as r,it as s,ut as t,ct as u,lt as v,at as w,gt as x,ft as y,dt as z,O as A,pt as B,mt as C,T as D,kt as E,ht as F,Y as G,yt as H,vt as I,St as J,xt as K};
@@ -1,5 +0,0 @@
1
- import{c as e,d as o,j as y}from"./chunk-KZ65LEUH.js";import{f as d}from"./chunk-SMGSLY5N.js";import{a as g}from"./chunk-ZLLER3HP.js";import{eq as c,asc as P,sql as R}from"drizzle-orm";var T=1800*1e3,I=300*1e3,h=10,D=`Given these messages from an AI coding session, write a 1-2 sentence summary of what the user is trying to accomplish. Focus on the goal, not the steps. No preamble.
2
-
3
- Return strict JSON in the form: {"goalSummary": "..."}`;async function b(t,a={}){let n=a.db??y(),f=a.llm??d,r=a.now??Date.now,[i]=await n.select().from(e).where(c(e.id,t.sessionId)).limit(1);if(!i)return{skipped:"not_found"};let w=(await n.execute(R`SELECT MAX(timestamp) AS last_at FROM session_events WHERE session_id = ${t.sessionId}`))?.[0]?.last_at??i.startedAt,_=new Date(w).getTime();if(r()-_>T)return{skipped:"stale"};let m=i.analysis??{},p=m.goalSummaryAt?new Date(m.goalSummaryAt).getTime():0;if(p&&r()-p<I)return{skipped:"recent"};let u=(await n.select().from(o).where(c(o.sessionId,t.sessionId)).orderBy(P(o.timestamp)).limit(h*2)).filter(s=>s.content&&(s.eventType==="user_message"||s.eventType==="assistant_response")).map(s=>`${s.eventType==="user_message"?"USER":"ASSISTANT"}: ${s.content}`).join(`
4
-
5
- `);if(!u)return{skipped:"no_content"};let S=await f(D,u,200),l=typeof S?.goalSummary=="string"?S.goalSummary.trim():"";if(!l)return{skipped:"llm_empty"};let A=new Date(r()).toISOString();return await n.update(e).set({analysis:{...m,goalSummary:l,goalSummaryAt:A}}).where(c(e.id,t.sessionId)),{goalSummary:l}}g(b,"processSessionGoal");export{b as a};
@@ -1,24 +0,0 @@
1
- import{a as I,c as i,d as r,e as a,j as M}from"./chunk-KZ65LEUH.js";import{f as v}from"./chunk-SMGSLY5N.js";import{a as y}from"./chunk-ZLLER3HP.js";import{eq as u,and as A,desc as E,inArray as j,isNotNull as D,sql as R}from"drizzle-orm";var x=50,k=24e3,C=3,L=3,O=40,P=4e3,X=new Set(["fact","decision","correction","convention"]),$=`You are distilling DURABLE, PROJECT-SPECIFIC knowledge from an AI coding session so a future agent working on the SAME project starts smarter.
2
-
3
- Extract ONLY facts / decisions / corrections / conventions that will STILL be true and useful in FUTURE sessions \u2014 architecture facts, deliberate design decisions, corrections of a wrong approach, or project conventions.
4
-
5
- Do NOT extract:
6
- - what the user asked for in THIS session, or the step-by-step actions taken
7
- - anything specific to this one task that will not recur
8
- - anything already covered by the existing memories listed below
9
-
10
- Existing memories for this project (do NOT duplicate these):
11
- {{EXISTING}}
12
-
13
- Prefer FEWER, higher-quality memories \u2014 most sessions yield 0-2, many yield 0. A weak or redundant memory is worse than none.
14
-
15
- Each memory has: "kind" (one of: fact, decision, correction, convention), a short "title" (<= 120 chars), and a 1-3 sentence "body".
16
-
17
- Return STRICT JSON: {"memories": [{"kind": "...", "title": "...", "body": "..."}]} \u2014 use an empty array if nothing durable was learned.`;function _(o){return o.toLowerCase().replace(/[^a-z0-9]+/g," ").trim()}y(_,"normalizeTitle");function U(o,d,t=L){let b=Array.isArray(o?.memories)?o.memories:[],p=new Set(d.map(_)),e=[];for(let f of b){if(e.length>=t)break;if(!f||typeof f!="object")continue;let l=f,g=typeof l.kind=="string"?l.kind.trim().toLowerCase():"",s=typeof l.title=="string"?l.title.trim():"",h=typeof l.body=="string"?l.body.trim():"";if(!X.has(g)||!s||!h||s.length>300||h.length>P)continue;let c=_(s);!c||p.has(c)||(p.add(c),e.push({kind:g,title:s,body:h}))}return e}y(U,"selectNewMemories");async function T(o,d,t){await o.update(i).set({analysis:R`COALESCE(${i.analysis}, '{}'::jsonb) || ${JSON.stringify({distilledAt:new Date(t()).toISOString()})}::jsonb`}).where(u(i.id,d))}y(T,"stampDistilled");async function G(o,d={}){let t=d.db??M(),b=d.llm??v,p=d.now??Date.now,[e]=await t.select({id:i.id,userId:i.userId,orgId:i.orgId,projectId:i.projectId,analysis:i.analysis}).from(i).where(u(i.id,o.sessionId)).limit(1);if(!e)return{skipped:"not_found"};if((e.analysis??{}).distilledAt)return{skipped:"already_distilled"};if(!e.projectId)return await T(t,e.id,p),{skipped:"no_project"};let g=(await t.select({eventType:r.eventType,content:r.content}).from(r).where(A(u(r.sessionId,o.sessionId),j(r.eventType,["user_message","assistant_response"]),D(r.content))).orderBy(E(r.timestamp)).limit(x)).reverse().map(n=>`${n.eventType==="user_message"?"USER":"ASSISTANT"}: ${n.content}`);if(g.length<C)return await T(t,e.id,p),{skipped:"too_short"};let s=g.join(`
18
-
19
- `);if(s.length>k){let n=s.slice(0,Math.floor(k*.45)),m=s.slice(s.length-Math.floor(k*.45));s=`${n}
20
-
21
- [... middle of session omitted ...]
22
-
23
- ${m}`}let c=(await t.select({title:a.title}).from(a).where(A(u(a.userId,e.userId),u(a.projectId,e.projectId),u(a.status,"active"))).orderBy(E(a.updatedAt)).limit(O)).map(n=>n.title),N=$.replace("{{EXISTING}}",c.length?c.map(n=>`- ${n}`).join(`
24
- `):"(none yet)"),S=await b(N,s,700);if(S===null)throw new Error("distill_memories: LLM backend unavailable or returned unparseable output");let w=U(S,c);if(w.length>0){let n=e.orgId??null;if(!n){let[m]=await t.select({orgId:I.activeOrgId}).from(I).where(u(I.id,e.userId)).limit(1);n=m?.orgId??null}await t.insert(a).values(w.map(m=>({userId:e.userId,orgId:n,projectId:e.projectId,kind:m.kind,title:m.title,body:m.body,source:"distilled",status:"active"})))}return await T(t,e.id,p),{created:w.length,candidates:w.length}}y(G,"distillMemories");export{U as a,G as b};
@@ -1 +0,0 @@
1
- import{c as P}from"./chunk-TIOKY2IA.js";import{a as T}from"./chunk-M4YF7YO7.js";import{a as A}from"./chunk-RSKQRVPJ.js";import{a as y}from"./chunk-35ST2BX7.js";import{a as M}from"./chunk-6UTJGOBA.js";import{a as S}from"./chunk-OSIP6FUD.js";import{a as h}from"./chunk-ULRVMH7O.js";import{a as E}from"./chunk-PRDYXO6Z.js";import{a as L}from"./chunk-T4P2NV3P.js";import{b as I}from"./chunk-BUWWFHGO.js";import{b}from"./chunk-5RBLIVBF.js";import{a as H}from"./chunk-CS2OQ3GC.js";import{a as N}from"./chunk-DUP232AH.js";import{a as x}from"./chunk-DO3KHK2X.js";import{a as k}from"./chunk-UF6US7VU.js";import{a as v}from"./chunk-MSTF7A7D.js";import{b as R}from"./chunk-4HZWSFSY.js";import{d as w}from"./chunk-3BVHPQZW.js";import{b as f,e as _,f as p}from"./chunk-H2ORWIEY.js";import{a as s}from"./chunk-ZLLER3HP.js";var O={process_eval:h,process_insights:E,process_launch:I,process_send_message:A,process_conversation:S,process_session_goal:y,distill_memories:R,memory_ab:H,process_announcement:M,process_run_cleanup:T,cron_suggest_instructions:v,cron_refresh_skills:k,cron_refresh_pricing:x,cron_eval_autorun:N,process_judge_review:L},C=Object.keys(O),$=new Set(["process_session_goal","process_announcement","process_run_cleanup","distill_memories","memory_ab"]);function F(e=process.env){return e.DATABASE_URL?C:C.filter(n=>!$.has(n))}s(F,"availableCapabilities");var J=3e4,U=3e4,K=3e4,D=250,V=5e3,G=`thin-agent-${process.pid}`,g=null;function q(e,n,r,l){let c;try{let d=w();c={claude:d.claudeBin!=null,codex:d.codexBin!=null,codexModel:d.codexConfiguredModel}}catch{}let i=s(d=>{p("/api/workers/heartbeat",{workerType:"cli-worker",clientName:G,clientVersion:l,workerVersion:"0.1.0",currentJobId:null,inFlightCount:0,lastError:null,status:d,metadata:{capabilities:e,mode:"thin-agent",llmEngines:c}}).then(u=>{let t=u?.advisory;t&&t.message!==g?(g=t.message,a(r,{event:"worker_advisory",code:t.code,message:t.message})):t||(g=null)}).catch(u=>{a(r,{event:"presence_heartbeat_error",error:u instanceof Error?u.message:String(u)})})},"send");i("alive");let o=setInterval(()=>i("alive"),K);n.addEventListener("abort",()=>{clearInterval(o),i("shutting_down")},{once:!0})}s(q,"startPresenceHeartbeat");function a(e,n){try{e(JSON.stringify({ts:new Date().toISOString(),...n}))}catch{e(`[agent-loop] log_error event=${n.event}`)}}s(a,"structuredLog");function B(e,n){return n.aborted?Promise.resolve(!1):e<=0?Promise.resolve(!0):new Promise(r=>{let l=setTimeout(()=>{n.removeEventListener("abort",c),r(!0)},e),c=s(()=>{clearTimeout(l),n.removeEventListener("abort",c),r(!1)},"onAbort");n.addEventListener("abort",c,{once:!0})})}s(B,"abortableSleep");async function Q(e,n){let r=`capabilities=${encodeURIComponent(e.join(","))}&waitMs=${n}`,l=await _(`/api/work/next?${r}`);return l==null||typeof l=="string"?null:l}s(Q,"pollForWork");function X(e,n){return{logger:{info:s(r=>n(r),"info"),warn:s(r=>n(r),"warn"),error:s(r=>n(r),"error")},job:{attempts:e}}}s(X,"makeHelpers");async function z(e,n,r){let l=O[e.kind],c=Date.now();if(a(r,{event:"claim",jobId:e.id,kind:e.kind,attempts:e.attempts}),!l){let o=`unknown kind: ${e.kind}`;a(r,{event:"fail",jobId:e.id,kind:e.kind,terminal:!0,error:o}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:o,terminal:!0}).catch(()=>{});return}let i=setInterval(()=>{a(r,{event:"heartbeat",jobId:e.id}),p(`/api/work/${e.id}/heartbeat`,{leaseToken:e.leaseToken}).catch(o=>{a(r,{event:"heartbeat_error",jobId:e.id,error:o instanceof Error?o.message:String(o)})})},n);try{let o=X(e.attempts,r),d=await l(e.payload,o)??{};clearInterval(i),a(r,{event:"complete",jobId:e.id,kind:e.kind,durationMs:Date.now()-c}),await p(`/api/work/${e.id}/complete`,{leaseToken:e.leaseToken,result:d})}catch(o){clearInterval(i);let d=b(o),u=o instanceof Error?o.message:String(o);a(r,{event:"fail",jobId:e.id,kind:e.kind,durationMs:Date.now()-c,terminal:d,error:u}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:u,terminal:d}).catch(t=>{a(r,{event:"fail_post_error",jobId:e.id,error:t instanceof Error?t.message:String(t)})})}}s(z,"runOne");async function ve(e){let n=e.log??(()=>{}),r=e.pollWaitMs??J,l=e.heartbeatIntervalMs??U,c=e.capabilities??F(),i=D;a(n,{event:"agent_start",capabilities:c,pollWaitMs:r,heartbeatIntervalMs:l}),q(c,e.signal,n,e.version),P({signal:e.signal,log:n}).catch(t=>{a(n,{event:"tt_heartbeat_fatal",error:t instanceof Error?t.message:String(t)})});let o=5*6e4,d=0,u=s(()=>{if(!e.readInstalledVersion||!e.version)return!1;let t=Date.now();if(t-d<o)return!1;d=t;let m=e.readInstalledVersion();return!!(m&&m!==e.version)},"versionDrifted");for(;!e.signal.aborted;){if(u()){a(n,{event:"agent_version_drift",bootVersion:e.version,installedVersion:e.readInstalledVersion?.()??null}),e.onVersionDrift?.();break}let t=null;try{t=await Q(c,r)}catch(m){let W=m instanceof f?m.statusCode:void 0;if(a(n,{event:"poll_error",status:W,error:m instanceof Error?m.message:String(m)}),!await B(i,e.signal))break;i=Math.min(i*2,V);continue}if(!t){if(a(n,{event:"poll_204"}),!await B(i,e.signal))break;i=Math.min(i*2,V);continue}i=D,await z(t,l,n)}a(n,{event:"agent_stop"})}s(ve,"runAgentLoop");export{O as a,C as b,F as c,Q as d,ve as e};