@djolex999/vir-cli 0.25.2 → 0.26.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.
Files changed (76) hide show
  1. package/README.md +90 -17
  2. package/dist/audit/run.js +2 -2
  3. package/dist/audit/run.js.map +1 -1
  4. package/dist/claude/updater.js +23 -12
  5. package/dist/claude/updater.js.map +1 -1
  6. package/dist/cli/connect.js +6 -5
  7. package/dist/cli/connect.js.map +1 -1
  8. package/dist/cli/costLabel.js +2 -1
  9. package/dist/cli/costLabel.js.map +1 -1
  10. package/dist/cli/dedupe.js +2 -1
  11. package/dist/cli/dedupe.js.map +1 -1
  12. package/dist/cli/init.js +69 -31
  13. package/dist/cli/init.js.map +1 -1
  14. package/dist/cli/initConfig.js +31 -5
  15. package/dist/cli/initConfig.js.map +1 -1
  16. package/dist/cli/projectSelect.js +1 -1
  17. package/dist/cli/projectSelect.js.map +1 -1
  18. package/dist/cli/projects.js +3 -2
  19. package/dist/cli/projects.js.map +1 -1
  20. package/dist/cli/reconcile.js +12 -9
  21. package/dist/cli/reconcile.js.map +1 -1
  22. package/dist/cli/reviewInsights.js +1 -1
  23. package/dist/cli/reviewInsights.js.map +1 -1
  24. package/dist/cli/syncClaude.js +38 -5
  25. package/dist/cli/syncClaude.js.map +1 -1
  26. package/dist/cli.js +40 -12
  27. package/dist/cli.js.map +1 -1
  28. package/dist/config.js +22 -4
  29. package/dist/config.js.map +1 -1
  30. package/dist/connect/embed.js +6 -2
  31. package/dist/connect/embed.js.map +1 -1
  32. package/dist/connect/insightFile.js +3 -1
  33. package/dist/connect/insightFile.js.map +1 -1
  34. package/dist/connect/run.js +7 -4
  35. package/dist/connect/run.js.map +1 -1
  36. package/dist/cost/pricing.js.map +1 -1
  37. package/dist/cost/report.js +2 -1
  38. package/dist/cost/report.js.map +1 -1
  39. package/dist/daemon/systemd.js +1 -1
  40. package/dist/diagnostics/distillFailures.js +1 -1
  41. package/dist/diagnostics/distillFailures.js.map +1 -1
  42. package/dist/diagnostics/doctor.js +63 -16
  43. package/dist/diagnostics/doctor.js.map +1 -1
  44. package/dist/diagnostics/preflightFailure.js +14 -12
  45. package/dist/diagnostics/preflightFailure.js.map +1 -1
  46. package/dist/mcp/install.js +18 -0
  47. package/dist/mcp/install.js.map +1 -1
  48. package/dist/mcp/server.js +5 -5
  49. package/dist/mcp/server.js.map +1 -1
  50. package/dist/pipeline/claudeCli.js +22 -83
  51. package/dist/pipeline/claudeCli.js.map +1 -1
  52. package/dist/pipeline/codexCli.js +167 -0
  53. package/dist/pipeline/codexCli.js.map +1 -0
  54. package/dist/pipeline/distiller.js +16 -9
  55. package/dist/pipeline/distiller.js.map +1 -1
  56. package/dist/pipeline/projects.js +2 -1
  57. package/dist/pipeline/projects.js.map +1 -1
  58. package/dist/pipeline/run.js +16 -15
  59. package/dist/pipeline/run.js.map +1 -1
  60. package/dist/pipeline/slug.js +7 -2
  61. package/dist/pipeline/slug.js.map +1 -1
  62. package/dist/pipeline/subscription.js +91 -0
  63. package/dist/pipeline/subscription.js.map +1 -0
  64. package/dist/prune/classify.js +2 -1
  65. package/dist/prune/classify.js.map +1 -1
  66. package/dist/sources/codex/inject.js +84 -0
  67. package/dist/sources/codex/inject.js.map +1 -0
  68. package/dist/sources/codex/parser.js +141 -0
  69. package/dist/sources/codex/parser.js.map +1 -0
  70. package/dist/sources/codex/source.js +107 -0
  71. package/dist/sources/codex/source.js.map +1 -0
  72. package/dist/sources/registry.js +7 -0
  73. package/dist/sources/registry.js.map +1 -1
  74. package/dist/state/db.js +3 -3
  75. package/dist/state/db.js.map +1 -1
  76. package/package.json +2 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * vir MCP server — exposes the distilled knowledge vault to MCP clients
3
- * (Claude Code) as queryable tools over stdio.
3
+ * (Claude Code, Codex) as queryable tools over stdio.
4
4
  *
5
5
  * Register with Claude Code by adding to ~/.claude/claude_desktop_config.json:
6
6
  *
@@ -131,7 +131,7 @@ export function hitMeta(hit) {
131
131
  return {
132
132
  topic: hit.content.match(/^\*\*Rule:\*\*[ \t]*(.+)$/m)?.[1]?.trim() ?? base,
133
133
  category: "insight",
134
- project: "",
134
+ project: fm.scope?.startsWith("project:") ? fm.scope.slice("project:".length) : "",
135
135
  type: "insight",
136
136
  };
137
137
  }
@@ -196,7 +196,7 @@ function noteIsVerified(vaultRoot, dir, fileBase) {
196
196
  }
197
197
  }
198
198
  export const VIR_QUERY_DESCRIPTION = "Search the knowledge vault for patterns, gotchas, decisions, and " +
199
- "tool insights from past Claude Code sessions, concepts, techniques, " +
199
+ "tool insights from past coding-agent sessions (Claude Code, Codex), concepts, techniques, " +
200
200
  "references, and opinions distilled from web articles, and notes " +
201
201
  "distilled from PDFs/papers. " +
202
202
  "Use this before working on a task to consult prior learnings. " +
@@ -252,7 +252,7 @@ export async function runMcpServer(cfg) {
252
252
  type: z
253
253
  .enum(QUERY_TYPES)
254
254
  .optional()
255
- .describe("Restrict to 'session' notes (Claude Code), 'article' notes " +
255
+ .describe("Restrict to 'session' notes (coding-agent sessions), 'article' notes " +
256
256
  "(web articles), 'topic' pages (synthesized via `vir compose`), " +
257
257
  "'pdf' notes (distilled papers/PDFs), or 'all' (default)."),
258
258
  category: z
@@ -370,7 +370,7 @@ export async function runMcpServer(cfg) {
370
370
  }
371
371
  });
372
372
  server.registerTool("vir_recent_notes", {
373
- description: "Get the most recently distilled knowledge from Claude Code " +
373
+ description: "Get the most recently distilled knowledge from coding-agent " +
374
374
  "sessions. Use this to see what the user has been working on lately.",
375
375
  inputSchema: {
376
376
  limit: z
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
1
  import { spawn } from "node:child_process";
2
- import { accessSync, appendFileSync, constants, writeFileSync } from "node:fs";
2
+ import { appendFileSync, writeFileSync } from "node:fs";
3
3
  import { homedir } from "node:os";
4
- import { delimiter, dirname, join } from "node:path";
5
- // Neutral spawn cwd is a CORRECTNESS requirement, not a preference: `claude -p`
6
- // run from a project directory loads that project's CLAUDE.md into context,
7
- // silently injecting the user's project instructions into every distill prompt.
8
- // ~/.vir is guaranteed to exist (config lives there) and carries no CLAUDE.md.
9
- // Deliberately not injectable — no config or call-site path may change it.
10
- const CLAUDE_CLI_CWD = join(homedir(), ".vir");
4
+ import { join } from "node:path";
5
+ import { resolveBin, runProcess, SubscriptionLimitError, } from "./subscription.js";
6
+ // The spawn cwd is pinned to ~/.vir by runProcess (SUBSCRIPTION_CLI_CWD) — a
7
+ // CORRECTNESS requirement: `claude -p` run from a project directory loads that
8
+ // project's CLAUDE.md into every distill prompt. Deliberately not injectable.
11
9
  // Generous by design: the API path's slowest observed distill was 437s, and a
12
10
  // stalled subprocess would otherwise hang the daemon forever (the callKie
13
11
  // AbortController lesson).
@@ -16,18 +14,13 @@ export const CLAUDE_CLI_TIMEOUT_MS = 600_000;
16
14
  // envelope. `vir doctor` reports it so the user learns when the (unverified)
17
15
  // pattern has been confirmed against reality.
18
16
  export const CLAUDE_CLI_LIMIT_MARKER_PATH = join(homedir(), ".vir", "claude-cli-limit.confirmed");
19
- // A subscription limit is a WALL that persists for hours — the polar opposite
20
- // of a transient 429. isRetryable must treat it as non-retryable, and the run
21
- // loop halts on it without burning the per-session attempt counter.
22
- export class ClaudeCliLimitError extends Error {
17
+ export class ClaudeCliLimitError extends SubscriptionLimitError {
23
18
  kind;
24
- resetsAt;
25
19
  constructor(kind, resetsAt) {
26
20
  super(`Claude Code ${kind} limit reached` +
27
21
  (resetsAt ? ` — resets ${resetsAt}` : "") +
28
- ". Distillation halted; unprocessed sessions will be picked up next run.");
22
+ ". Distillation halted; unprocessed sessions will be picked up next run.", resetsAt);
29
23
  this.kind = kind;
30
- this.resetsAt = resetsAt;
31
24
  this.name = "ClaudeCliLimitError";
32
25
  }
33
26
  }
@@ -48,6 +41,14 @@ export class ClaudeCliError extends Error {
48
41
  // transcripts into ~/.claude/projects — no self-scanning, no disk bloat,
49
42
  // regardless of the user's agentTranscripts setting. Signature takes ONLY the
50
43
  // model: there is deliberately no options path that could omit a flag.
44
+ //
45
+ // The prompt carries untrusted transcript text, and `claude -p` otherwise loads
46
+ // the user's tools, MCP servers and permission allowlist: a live probe got 277
47
+ // tools (Bash ran an allowlisted command; Gmail, Drive, Linear connected).
48
+ // `--tools ""` empties the built-in set; `--strict-mcp-config` with no
49
+ // --mcp-config drops every MCP server, claude.ai connectors included. Each
50
+ // alone left the other half open. Both are empty allowlists, so tools a future
51
+ // CLI adds stay off; an older CLI that lacks a flag errors out (fails closed).
51
52
  export function buildClaudeCliArgs(model) {
52
53
  return [
53
54
  "-p",
@@ -56,6 +57,9 @@ export function buildClaudeCliArgs(model) {
56
57
  "--output-format",
57
58
  "json",
58
59
  "--no-session-persistence",
60
+ "--tools",
61
+ "",
62
+ "--strict-mcp-config",
59
63
  ];
60
64
  }
61
65
  // DOCS-SOURCED AND UNVERIFIED against a real limit hit (documented shapes:
@@ -114,39 +118,9 @@ function defaultWriteMarker(line) {
114
118
  // marker is best-effort; the thrown ClaudeCliLimitError is the primary signal
115
119
  }
116
120
  }
117
- function isExecutable(path) {
118
- try {
119
- accessSync(path, constants.X_OK);
120
- return true;
121
- }
122
- catch {
123
- return false;
124
- }
125
- }
126
- // Scheduled runs get a minimal PATH (launchd pins a few system dirs, systemd and
127
- // cron set little or none), so a bare `claude` that resolves in your shell can
128
- // fail every daemon run. Look on PATH first, then where Claude Code is commonly
129
- // installed: next to the node running vir (an nvm/npm global install), the
130
- // native installer's dirs, then Homebrew and /usr/local. Falls back to bare
131
- // `claude`, which keeps the existing not-installed error.
121
+ // The daemon's PATH is minimal; see resolveBin.
132
122
  export function resolveClaudeBin(opts = {}) {
133
- const exists = opts.exists ?? isExecutable;
134
- const home = opts.home ?? homedir();
135
- const dirs = [
136
- ...(opts.path ?? process.env.PATH ?? "").split(delimiter),
137
- opts.execDir ?? dirname(process.execPath),
138
- join(home, ".claude", "local"),
139
- join(home, ".local", "bin"),
140
- join(home, ".npm-global", "bin"),
141
- "/opt/homebrew/bin",
142
- "/usr/local/bin",
143
- ].filter((d) => d.length > 0);
144
- for (const dir of dirs) {
145
- const candidate = join(dir, "claude");
146
- if (exists(candidate))
147
- return candidate;
148
- }
149
- return "claude";
123
+ return resolveBin("claude", opts);
150
124
  }
151
125
  let resolvedClaudeBin = null;
152
126
  export async function callClaudeCli(opts, test = {}) {
@@ -155,7 +129,7 @@ export async function callClaudeCli(opts, test = {}) {
155
129
  const logRaw = test.logRaw ?? defaultLogRaw;
156
130
  const writeMarker = test.writeMarker ?? defaultWriteMarker;
157
131
  const bin = test.claudeBin ?? (resolvedClaudeBin ??= resolveClaudeBin());
158
- const { stdout, stderr, code } = await runProcess(spawnImpl, bin, buildClaudeCliArgs(opts.model), opts.prompt, timeoutMs);
132
+ const { stdout, stderr, code } = await runProcess(spawnImpl, bin, buildClaudeCliArgs(opts.model), opts.prompt, timeoutMs, (m) => new ClaudeCliError(m.startsWith("timed out") ? `claude -p ${m}` : m, null));
159
133
  const envelope = parseCliEnvelope(stdout);
160
134
  if (envelope === null) {
161
135
  throw new ClaudeCliError(`claude -p produced no parseable JSON envelope (exit ${code})` +
@@ -184,39 +158,4 @@ export async function callClaudeCli(opts, test = {}) {
184
158
  : null;
185
159
  return { text: envelope.result, usage };
186
160
  }
187
- function runProcess(spawnImpl, bin, args, stdin, timeoutMs) {
188
- return new Promise((resolve, reject) => {
189
- // Arg array + no shell, same discipline as mcp/install.ts. cwd pinned.
190
- const child = spawnImpl(bin, args, { cwd: CLAUDE_CLI_CWD });
191
- let stdout = "";
192
- let stderr = "";
193
- let settled = false;
194
- const timer = setTimeout(() => {
195
- if (settled)
196
- return;
197
- settled = true;
198
- child.kill();
199
- reject(new ClaudeCliError(`claude -p timed out after ${timeoutMs / 1000}s`, null));
200
- }, timeoutMs);
201
- child.stdout?.on("data", (d) => (stdout += d.toString()));
202
- child.stderr?.on("data", (d) => (stderr += d.toString()));
203
- child.on("error", (err) => {
204
- if (settled)
205
- return;
206
- settled = true;
207
- clearTimeout(timer);
208
- // ENOENT (claude not installed) arrives here, not on close.
209
- reject(new ClaudeCliError(`could not spawn claude: ${err.message}`, null));
210
- });
211
- child.on("close", (code) => {
212
- if (settled)
213
- return;
214
- settled = true;
215
- clearTimeout(timer);
216
- resolve({ stdout, stderr, code });
217
- });
218
- child.stdin?.write(stdin);
219
- child.stdin?.end();
220
- });
221
- }
222
161
  //# sourceMappingURL=claudeCli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claudeCli.js","sourceRoot":"","sources":["../../src/pipeline/claudeCli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claudeCli.js","sourceRoot":"","sources":["../../src/pipeline/claudeCli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ import { spawn } from "node:child_process";
2
+ import { appendFileSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { resolveBin, runProcess, SubscriptionLimitError, } from "./subscription.js";
6
+ // Distill through `codex exec` on the user's ChatGPT login: no credential, quota
7
+ // not dollars. Experimental. Flag set verified on codex-cli 0.160.1
8
+ // (2026-10-07). runProcess pins cwd to ~/.vir so no project AGENTS.md loads; the
9
+ // global ~/.codex/AGENTS.md still does (no flag turns it off), the same way
10
+ // `claude -p` loads ~/.claude/CLAUDE.md.
11
+ export const CODEX_CLI_TIMEOUT_MS = 600_000;
12
+ export class CodexCliLimitError extends SubscriptionLimitError {
13
+ constructor(resetsAt) {
14
+ super("Codex usage limit reached" +
15
+ (resetsAt ? ` — try again ${resetsAt}` : "") +
16
+ ". Distillation halted; unprocessed sessions will be picked up next run.", resetsAt);
17
+ this.name = "CodexCliLimitError";
18
+ }
19
+ }
20
+ export class CodexCliError extends Error {
21
+ exitCode;
22
+ constructor(message, exitCode) {
23
+ super(message);
24
+ this.exitCode = exitCode;
25
+ this.name = "CodexCliError";
26
+ }
27
+ }
28
+ // The prompt carries untrusted transcript text, and codex exec is a tool-using
29
+ // agent. Probed 2026-10-07 (0.160.1): with default features it had a shell, web
30
+ // search and the user's ChatGPT-connected apps (GitHub writes, site deploys).
31
+ // With these off it is left with code-mode exec (fails closed: host disabled),
32
+ // apply_patch (blocked by the read-only sandbox) and spawn_agent (fails: an
33
+ // ephemeral thread has no rollout to fork). An unknown flag makes codex exit,
34
+ // so a Codex version vir hasn't checked fails closed instead of running with
35
+ // tools nobody probed.
36
+ export const CODEX_DISABLED_FEATURES = [
37
+ "apps",
38
+ "plugins",
39
+ "remote_plugin",
40
+ "shell_tool",
41
+ "unified_exec",
42
+ "browser_use",
43
+ "browser_use_external",
44
+ "computer_use",
45
+ "in_app_browser",
46
+ "in_app_local_automation",
47
+ "image_generation",
48
+ "multi_agent",
49
+ "code_mode_host",
50
+ "goals",
51
+ "hooks",
52
+ "tool_suggest",
53
+ "view_image",
54
+ "skill_mcp_dependency_install",
55
+ "skill_search",
56
+ "sleep_tool",
57
+ "workspace_dependencies",
58
+ ];
59
+ // --ephemeral is load-bearing twice: without it every distill call writes a
60
+ // rollout into ~/.codex/sessions (vir's Codex source would ingest it), and
61
+ // spawn_agent could fork a subagent. "default" leaves the model to Codex.
62
+ // Signature takes ONLY the model: no options path can drop a flag.
63
+ export function buildCodexCliArgs(model) {
64
+ return [
65
+ "exec",
66
+ "--ephemeral",
67
+ "--json",
68
+ "--skip-git-repo-check",
69
+ "-s",
70
+ "read-only",
71
+ "--ignore-user-config",
72
+ ...CODEX_DISABLED_FEATURES.flatMap((f) => ["--disable", f]),
73
+ "-c",
74
+ 'web_search="disabled"',
75
+ // --ignore-user-config already skips ~/.codex/config.toml's MCP servers
76
+ // (probed); pinned anyway, as claude-cli pins --strict-mcp-config.
77
+ "-c",
78
+ "mcp_servers={}",
79
+ ...(model === "default" ? [] : ["-m", model]),
80
+ "-",
81
+ ];
82
+ }
83
+ export function parseCodexJsonl(stdout) {
84
+ let text = "";
85
+ let usage = null;
86
+ let error = null;
87
+ for (const line of stdout.split("\n")) {
88
+ if (line.trim().length === 0)
89
+ continue;
90
+ let evt;
91
+ try {
92
+ evt = JSON.parse(line);
93
+ }
94
+ catch {
95
+ continue;
96
+ }
97
+ if (evt.type === "item.completed") {
98
+ const item = evt.item;
99
+ if (item?.type === "agent_message" && typeof item.text === "string")
100
+ text = item.text;
101
+ }
102
+ else if (evt.type === "turn.completed") {
103
+ const u = evt.usage;
104
+ if (u && typeof u.input_tokens === "number" && typeof u.output_tokens === "number") {
105
+ const reasoning = typeof u.reasoning_output_tokens === "number" ? u.reasoning_output_tokens : 0;
106
+ usage = { input_tokens: u.input_tokens, output_tokens: u.output_tokens + reasoning };
107
+ }
108
+ }
109
+ else if (evt.type === "turn.failed") {
110
+ const m = evt.error?.message;
111
+ if (typeof m === "string")
112
+ error = m;
113
+ }
114
+ else if (evt.type === "error" && error === null && typeof evt.message === "string") {
115
+ error = evt.message;
116
+ }
117
+ }
118
+ return { text, usage, error };
119
+ }
120
+ // UNVERIFIED against a real limit hit (ChatGPT plan usage limit). A miss falls
121
+ // through to CodexCliError, and the raw output is logged once per run so the
122
+ // first real hit leaves evidence to check this against.
123
+ const LIMIT_RE = /You've hit your usage limit(?:[^\n]*?[Tt]ry again ((?:in|at) [^.\n"]+))?/;
124
+ export function parseCodexLimit(text) {
125
+ const m = LIMIT_RE.exec(text);
126
+ if (!m)
127
+ return null;
128
+ return { resetsAt: m[1]?.trim() ?? null };
129
+ }
130
+ let rawLogged = false;
131
+ export function resetCodexRawLogGate() {
132
+ rawLogged = false;
133
+ }
134
+ const DAEMON_LOG = join(homedir(), ".vir", "daemon.log");
135
+ function defaultLogRaw(line) {
136
+ try {
137
+ appendFileSync(DAEMON_LOG, `[${new Date().toISOString()}] ${line}\n`);
138
+ }
139
+ catch {
140
+ // evidence logging is best-effort
141
+ }
142
+ }
143
+ let resolvedCodexBin = null;
144
+ export async function callCodexCli(opts, test = {}) {
145
+ const spawnImpl = test.spawnImpl ?? spawn;
146
+ const logRaw = test.logRaw ?? defaultLogRaw;
147
+ const bin = test.codexBin ?? (resolvedCodexBin ??= resolveBin("codex"));
148
+ const { stdout, stderr, code } = await runProcess(spawnImpl, bin, buildCodexCliArgs(opts.model), opts.prompt, test.timeoutMs ?? CODEX_CLI_TIMEOUT_MS, (m) => new CodexCliError(m.startsWith("timed out") ? `codex exec ${m}` : m, null));
149
+ const r = parseCodexJsonl(stdout);
150
+ if (r.error !== null || code !== 0 || r.text.length === 0) {
151
+ const detail = r.error ?? stderr.trim();
152
+ const limit = parseCodexLimit(detail) ?? parseCodexLimit(stderr);
153
+ if (limit)
154
+ throw new CodexCliLimitError(limit.resetsAt);
155
+ const unknown = /Unknown feature flag: (\S+)/.exec(stderr);
156
+ if (unknown) {
157
+ throw new CodexCliError(`this Codex version doesn't know the "${unknown[1]}" feature vir switches off (checked on codex-cli 0.160.1). Run \`codex update\` or switch provider.`, code);
158
+ }
159
+ if (!rawLogged) {
160
+ rawLogged = true;
161
+ logRaw(`codex-cli unrecognized failure (exit ${code}): ${stdout.trim().slice(0, 2000)}`);
162
+ }
163
+ throw new CodexCliError(`codex exec failed (exit ${code}): ${detail.slice(0, 300) || "no agent message"}`, code);
164
+ }
165
+ return { text: r.text, usage: r.usage };
166
+ }
167
+ //# sourceMappingURL=codexCli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codexCli.js","sourceRoot":"","sources":["../../src/pipeline/codexCli.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import Anthropic from "@anthropic-ai/sdk";
2
- import { ClaudeCliError, ClaudeCliLimitError, callClaudeCli, } from "./claudeCli.js";
2
+ import { ClaudeCliError, callClaudeCli, } from "./claudeCli.js";
3
3
  import { computeCost, resolvePricing } from "../cost/pricing.js";
4
4
  import { appendCostRecord } from "../cost/log.js";
5
+ import { callCodexCli, CodexCliError } from "./codexCli.js";
6
+ import { isSubscriptionProvider, SubscriptionLimitError } from "./subscription.js";
5
7
  const CATEGORIES = ["pattern", "gotcha", "decision", "tool"];
6
8
  export class HttpError extends Error {
7
9
  status;
@@ -35,9 +37,9 @@ export class KieTimeoutError extends Error {
35
37
  export function buildAnthropicClient(config) {
36
38
  return new Anthropic({ apiKey: config.anthropicApiKey ?? "" });
37
39
  }
38
- // Returns null on the Kie and claude-cli paths — Kie uses native fetch
39
- // (callKie) and claude-cli spawns the `claude` binary; neither touches the
40
- // Anthropic SDK, so don't allocate a client (claude-cli has no key at all).
40
+ // Returns null on the Kie and CLI paths — Kie uses native fetch
41
+ // (callKie) and claude-cli/codex-cli spawn a binary; none touches the
42
+ // Anthropic SDK, so don't allocate a client (the CLIs have no key at all).
41
43
  export function maybeAnthropicClient(config) {
42
44
  return config.provider === "anthropic" ? buildAnthropicClient(config) : null;
43
45
  }
@@ -187,7 +189,7 @@ function estimateTokens(s) {
187
189
  // unpriced model's cost is unknown — both are recorded as null, never $0.00,
188
190
  // so dollar aggregates in `vir cost` stay honest. Exported for tests.
189
191
  export function costForRecord(provider, model, inputTokens, outputTokens, overrides, tier) {
190
- if (provider === "claude-cli")
192
+ if (isSubscriptionProvider(provider))
191
193
  return null;
192
194
  // No price for this model on this provider (e.g. claude-sonnet-5 on Kie):
193
195
  // unknown, never $0, or `vir cost` silently under-reports real spend.
@@ -229,6 +231,9 @@ export async function callLLM(config, client, opts) {
229
231
  const cli = await callClaudeCli({ prompt: opts.prompt, model: opts.model });
230
232
  result = { text: cli.text, usage: cli.usage };
231
233
  }
234
+ else if (config.provider === "codex-cli") {
235
+ result = await callCodexCli({ prompt: opts.prompt, model: opts.model });
236
+ }
232
237
  else if (config.provider === "kie") {
233
238
  result = await callKie({
234
239
  apiKey: config.kieApiKey ?? "",
@@ -292,7 +297,7 @@ export function buildDistillPrompt(session, cls, scrubbedContent) {
292
297
  // is for a retrieving session, which wants state and specifics first. The
293
298
  // "not replying" line exists because a longer prompt once made Haiku echo
294
299
  // the session's closing chat message instead of writing a note.
295
- return `Extract durable knowledge from this Claude Code session.
300
+ return `Extract durable knowledge from this ${session.agentLabel ?? "Claude Code"} session.
296
301
 
297
302
  Output a markdown page with these sections (no preamble, start with '## Summary'):
298
303
  - ## Summary (2-3 sentences)
@@ -386,7 +391,7 @@ export class Distiller {
386
391
  return normalizeModelName(resolveModelShorthand(selected), this.cfg.provider);
387
392
  }
388
393
  async classify(session, scrubbedSummary) {
389
- const prompt = `Given this Claude Code session summary, output JSON only:
394
+ const prompt = `Given this ${session.agentLabel ?? "Claude Code"} session summary, output JSON only:
390
395
  { "category": "pattern" | "gotcha" | "decision" | "tool",
391
396
  "topic": string (2-5 words, kebab-friendly: name the SINGLE most durable or
392
397
  surprising lesson, NOT a summary of everything the session touched),
@@ -453,7 +458,7 @@ ${scrubbedSummary}`;
453
458
  return (await this.retitle(session, markdown, cls)) ?? cls.topic;
454
459
  }
455
460
  catch (err) {
456
- if (err instanceof ClaudeCliLimitError)
461
+ if (err instanceof SubscriptionLimitError)
457
462
  throw err;
458
463
  console.warn(`[vir] retitle failed for ${session.sessionId.slice(0, 8)}, keeping classify topic: ${err.message}`);
459
464
  return cls.topic;
@@ -490,10 +495,12 @@ export function isRetryable(err) {
490
495
  // halts on it instead. Ordinary claude-cli failures also stay non-retryable
491
496
  // (fail safe: a limit the docs-sourced regex misclassified must never enter
492
497
  // a retry chain).
493
- if (err instanceof ClaudeCliLimitError)
498
+ if (err instanceof SubscriptionLimitError)
494
499
  return false;
495
500
  if (err instanceof ClaudeCliError)
496
501
  return false;
502
+ if (err instanceof CodexCliError)
503
+ return false;
497
504
  // A client-side timeout is a transient stall, same family as a 5xx.
498
505
  if (err instanceof KieTimeoutError)
499
506
  return true;