@cluesmith/codev 2.0.3 → 2.0.6

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 (184) hide show
  1. package/dashboard/dist/assets/index-B-s8BA2l.js +135 -0
  2. package/dashboard/dist/assets/index-B-s8BA2l.js.map +1 -0
  3. package/dashboard/dist/assets/index-DB2AxRP7.css +32 -0
  4. package/dashboard/dist/index.html +2 -2
  5. package/dist/agent-farm/cli.d.ts.map +1 -1
  6. package/dist/agent-farm/cli.js +31 -13
  7. package/dist/agent-farm/cli.js.map +1 -1
  8. package/dist/agent-farm/commands/attach.d.ts +19 -0
  9. package/dist/agent-farm/commands/attach.d.ts.map +1 -1
  10. package/dist/agent-farm/commands/attach.js +172 -12
  11. package/dist/agent-farm/commands/attach.js.map +1 -1
  12. package/dist/agent-farm/commands/send.d.ts +22 -2
  13. package/dist/agent-farm/commands/send.d.ts.map +1 -1
  14. package/dist/agent-farm/commands/send.js +97 -178
  15. package/dist/agent-farm/commands/send.js.map +1 -1
  16. package/dist/agent-farm/commands/spawn-roles.d.ts +3 -9
  17. package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -1
  18. package/dist/agent-farm/commands/spawn-roles.js +14 -53
  19. package/dist/agent-farm/commands/spawn-roles.js.map +1 -1
  20. package/dist/agent-farm/commands/spawn-worktree.d.ts +10 -16
  21. package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
  22. package/dist/agent-farm/commands/spawn-worktree.js +24 -5
  23. package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
  24. package/dist/agent-farm/commands/spawn.d.ts +8 -6
  25. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  26. package/dist/agent-farm/commands/spawn.js +180 -66
  27. package/dist/agent-farm/commands/spawn.js.map +1 -1
  28. package/dist/agent-farm/commands/status.d.ts.map +1 -1
  29. package/dist/agent-farm/commands/status.js +1 -12
  30. package/dist/agent-farm/commands/status.js.map +1 -1
  31. package/dist/agent-farm/lib/tower-client.d.ts +16 -6
  32. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
  33. package/dist/agent-farm/lib/tower-client.js +25 -0
  34. package/dist/agent-farm/lib/tower-client.js.map +1 -1
  35. package/dist/agent-farm/servers/overview.d.ts +111 -0
  36. package/dist/agent-farm/servers/overview.d.ts.map +1 -0
  37. package/dist/agent-farm/servers/overview.js +385 -0
  38. package/dist/agent-farm/servers/overview.js.map +1 -0
  39. package/dist/agent-farm/servers/tower-instances.d.ts +1 -3
  40. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
  41. package/dist/agent-farm/servers/tower-instances.js +10 -13
  42. package/dist/agent-farm/servers/tower-instances.js.map +1 -1
  43. package/dist/agent-farm/servers/tower-messages.d.ts +87 -0
  44. package/dist/agent-farm/servers/tower-messages.d.ts.map +1 -0
  45. package/dist/agent-farm/servers/tower-messages.js +202 -0
  46. package/dist/agent-farm/servers/tower-messages.js.map +1 -0
  47. package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
  48. package/dist/agent-farm/servers/tower-routes.js +164 -17
  49. package/dist/agent-farm/servers/tower-routes.js.map +1 -1
  50. package/dist/agent-farm/servers/tower-server.js +27 -2
  51. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  52. package/dist/agent-farm/servers/tower-terminals.d.ts +8 -2
  53. package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
  54. package/dist/agent-farm/servers/tower-terminals.js +125 -80
  55. package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
  56. package/dist/agent-farm/servers/tower-types.d.ts +0 -2
  57. package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
  58. package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -1
  59. package/dist/agent-farm/servers/tower-websocket.js +25 -4
  60. package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
  61. package/dist/agent-farm/types.d.ts +3 -4
  62. package/dist/agent-farm/types.d.ts.map +1 -1
  63. package/dist/agent-farm/utils/agent-names.d.ts +85 -0
  64. package/dist/agent-farm/utils/agent-names.d.ts.map +1 -0
  65. package/dist/agent-farm/utils/agent-names.js +140 -0
  66. package/dist/agent-farm/utils/agent-names.js.map +1 -0
  67. package/dist/agent-farm/utils/message-format.d.ts +17 -0
  68. package/dist/agent-farm/utils/message-format.d.ts.map +1 -0
  69. package/dist/agent-farm/utils/message-format.js +41 -0
  70. package/dist/agent-farm/utils/message-format.js.map +1 -0
  71. package/dist/cli.d.ts.map +1 -1
  72. package/dist/cli.js +26 -1
  73. package/dist/cli.js.map +1 -1
  74. package/dist/commands/adopt.d.ts.map +1 -1
  75. package/dist/commands/adopt.js +1 -13
  76. package/dist/commands/adopt.js.map +1 -1
  77. package/dist/commands/consult/index.d.ts +25 -1
  78. package/dist/commands/consult/index.d.ts.map +1 -1
  79. package/dist/commands/consult/index.js +251 -39
  80. package/dist/commands/consult/index.js.map +1 -1
  81. package/dist/commands/consult/metrics.d.ts +90 -0
  82. package/dist/commands/consult/metrics.d.ts.map +1 -0
  83. package/dist/commands/consult/metrics.js +203 -0
  84. package/dist/commands/consult/metrics.js.map +1 -0
  85. package/dist/commands/consult/stats.d.ts +18 -0
  86. package/dist/commands/consult/stats.d.ts.map +1 -0
  87. package/dist/commands/consult/stats.js +150 -0
  88. package/dist/commands/consult/stats.js.map +1 -0
  89. package/dist/commands/consult/usage-extractor.d.ts +38 -0
  90. package/dist/commands/consult/usage-extractor.d.ts.map +1 -0
  91. package/dist/commands/consult/usage-extractor.js +99 -0
  92. package/dist/commands/consult/usage-extractor.js.map +1 -0
  93. package/dist/commands/doctor.d.ts.map +1 -1
  94. package/dist/commands/doctor.js +5 -3
  95. package/dist/commands/doctor.js.map +1 -1
  96. package/dist/commands/init.d.ts.map +1 -1
  97. package/dist/commands/init.js +1 -13
  98. package/dist/commands/init.js.map +1 -1
  99. package/dist/commands/porch/next.d.ts.map +1 -1
  100. package/dist/commands/porch/next.js +53 -62
  101. package/dist/commands/porch/next.js.map +1 -1
  102. package/dist/commands/porch/prompts.d.ts +10 -1
  103. package/dist/commands/porch/prompts.d.ts.map +1 -1
  104. package/dist/commands/porch/prompts.js +50 -26
  105. package/dist/commands/porch/prompts.js.map +1 -1
  106. package/dist/commands/porch/protocol.js +2 -2
  107. package/dist/commands/porch/state.d.ts.map +1 -1
  108. package/dist/commands/porch/state.js +3 -1
  109. package/dist/commands/porch/state.js.map +1 -1
  110. package/dist/commands/update.d.ts.map +1 -1
  111. package/dist/commands/update.js +0 -10
  112. package/dist/commands/update.js.map +1 -1
  113. package/dist/lib/github.d.ts +81 -0
  114. package/dist/lib/github.d.ts.map +1 -0
  115. package/dist/lib/github.js +141 -0
  116. package/dist/lib/github.js.map +1 -0
  117. package/dist/lib/scaffold.d.ts +0 -21
  118. package/dist/lib/scaffold.d.ts.map +1 -1
  119. package/dist/lib/scaffold.js +0 -57
  120. package/dist/lib/scaffold.js.map +1 -1
  121. package/dist/terminal/index.d.ts +14 -0
  122. package/dist/terminal/index.d.ts.map +1 -1
  123. package/dist/terminal/index.js +12 -0
  124. package/dist/terminal/index.js.map +1 -1
  125. package/dist/terminal/pty-manager.d.ts.map +1 -1
  126. package/dist/terminal/pty-manager.js +7 -4
  127. package/dist/terminal/pty-manager.js.map +1 -1
  128. package/dist/terminal/pty-session.js +3 -3
  129. package/dist/terminal/pty-session.js.map +1 -1
  130. package/dist/terminal/session-manager.d.ts +64 -0
  131. package/dist/terminal/session-manager.d.ts.map +1 -1
  132. package/dist/terminal/session-manager.js +299 -10
  133. package/dist/terminal/session-manager.js.map +1 -1
  134. package/dist/terminal/shellper-client.d.ts +2 -1
  135. package/dist/terminal/shellper-client.d.ts.map +1 -1
  136. package/dist/terminal/shellper-client.js +4 -2
  137. package/dist/terminal/shellper-client.js.map +1 -1
  138. package/dist/terminal/shellper-main.js +33 -4
  139. package/dist/terminal/shellper-main.js.map +1 -1
  140. package/dist/terminal/shellper-process.d.ts +24 -7
  141. package/dist/terminal/shellper-process.d.ts.map +1 -1
  142. package/dist/terminal/shellper-process.js +139 -36
  143. package/dist/terminal/shellper-process.js.map +1 -1
  144. package/dist/terminal/shellper-protocol.d.ts +1 -0
  145. package/dist/terminal/shellper-protocol.d.ts.map +1 -1
  146. package/dist/terminal/shellper-protocol.js.map +1 -1
  147. package/package.json +4 -1
  148. package/skeleton/.claude/skills/af/SKILL.md +7 -7
  149. package/skeleton/.claude/skills/consult/SKILL.md +1 -1
  150. package/skeleton/builders.md +2 -2
  151. package/skeleton/maintain/.gitkeep +1 -1
  152. package/skeleton/porch/prompts/specify.md +1 -1
  153. package/skeleton/protocols/bugfix/prompts/pr.md +15 -4
  154. package/skeleton/protocols/experiment/protocol.md +17 -17
  155. package/skeleton/protocols/maintain/prompts/audit.md +2 -2
  156. package/skeleton/protocols/maintain/prompts/sync.md +1 -1
  157. package/skeleton/protocols/maintain/prompts/verify.md +1 -1
  158. package/skeleton/protocols/maintain/protocol.md +8 -9
  159. package/skeleton/protocols/maintain/templates/maintenance-run.md +2 -2
  160. package/skeleton/protocols/spir/protocol.json +5 -5
  161. package/skeleton/protocols/spir/protocol.md +8 -8
  162. package/skeleton/protocols/tick/protocol.md +31 -31
  163. package/skeleton/resources/commands/agent-farm.md +14 -14
  164. package/skeleton/resources/commands/codev.md +0 -1
  165. package/skeleton/resources/commands/consult.md +3 -3
  166. package/skeleton/resources/spikes.md +3 -3
  167. package/skeleton/resources/workflow-reference.md +14 -14
  168. package/skeleton/roles/architect.md +25 -25
  169. package/skeleton/roles/builder.md +1 -1
  170. package/skeleton/roles/consultant.md +6 -0
  171. package/skeleton/templates/AGENTS.md +5 -5
  172. package/skeleton/templates/CLAUDE.md +5 -5
  173. package/skeleton/templates/lifecycle.md +9 -9
  174. package/templates/open.html +6 -3
  175. package/templates/tower.html +1 -41
  176. package/dashboard/dist/assets/index-4n9zpWLY.css +0 -32
  177. package/dashboard/dist/assets/index-UsH9ixz1.js +0 -136
  178. package/dashboard/dist/assets/index-UsH9ixz1.js.map +0 -1
  179. package/dist/agent-farm/utils/gate-status.d.ts +0 -16
  180. package/dist/agent-farm/utils/gate-status.d.ts.map +0 -1
  181. package/dist/agent-farm/utils/gate-status.js +0 -79
  182. package/dist/agent-farm/utils/gate-status.js.map +0 -1
  183. package/skeleton/templates/projectlist-archive.md +0 -21
  184. package/skeleton/templates/projectlist.md +0 -147
@@ -9,15 +9,15 @@ import { spawn, execSync } from 'node:child_process';
9
9
  import { tmpdir } from 'node:os';
10
10
  import chalk from 'chalk';
11
11
  import { query as claudeQuery } from '@anthropic-ai/claude-agent-sdk';
12
+ import { Codex } from '@openai/codex-sdk';
12
13
  import { readCodevFile, findWorkspaceRoot, hasLocalOverride } from '../../lib/skeleton.js';
14
+ import { MetricsDB } from './metrics.js';
15
+ import { extractUsage, extractReviewText } from './usage-extractor.js';
13
16
  const MODEL_CONFIGS = {
14
17
  gemini: { cli: 'gemini', args: ['--yolo'], envVar: 'GEMINI_SYSTEM_MD' },
15
- // Codex uses experimental_instructions_file config flag (not env var)
16
- // See: https://github.com/openai/codex/discussions/3896
17
- codex: { cli: 'codex', args: ['exec', '-m', 'gpt-5.2-codex', '--full-auto'], envVar: null },
18
18
  };
19
- // Models that use the Agent SDK instead of CLI subprocess
20
- const SDK_MODELS = ['claude'];
19
+ // Models that use an Agent SDK instead of CLI subprocess
20
+ const SDK_MODELS = ['claude', 'codex'];
21
21
  // Claude Agent SDK turn limit. Claude explores the codebase with Read/Glob/Grep
22
22
  // tools before producing its verdict, so it needs a generous turn budget.
23
23
  const CLAUDE_MAX_TURNS = 200;
@@ -27,6 +27,36 @@ const MODEL_ALIASES = {
27
27
  gpt: 'codex',
28
28
  opus: 'claude',
29
29
  };
30
+ // Helper to record a metrics entry, opening and closing the DB
31
+ function recordMetrics(ctx, extra) {
32
+ try {
33
+ const db = new MetricsDB();
34
+ try {
35
+ db.record({
36
+ timestamp: ctx.timestamp,
37
+ model: ctx.model,
38
+ reviewType: ctx.reviewType,
39
+ subcommand: ctx.subcommand,
40
+ protocol: ctx.protocol,
41
+ projectId: ctx.projectId,
42
+ durationSeconds: extra.durationSeconds,
43
+ inputTokens: extra.inputTokens,
44
+ cachedInputTokens: extra.cachedInputTokens,
45
+ outputTokens: extra.outputTokens,
46
+ costUsd: extra.costUsd,
47
+ exitCode: extra.exitCode,
48
+ workspacePath: ctx.workspacePath,
49
+ errorMessage: extra.errorMessage,
50
+ });
51
+ }
52
+ finally {
53
+ db.close();
54
+ }
55
+ }
56
+ catch (err) {
57
+ console.error(`[warn] Failed to record metrics: ${err instanceof Error ? err.message : String(err)}`);
58
+ }
59
+ }
30
60
  // Valid review types
31
61
  const VALID_REVIEW_TYPES = [
32
62
  'spec-review',
@@ -211,13 +241,109 @@ function commandExists(cmd) {
211
241
  return false;
212
242
  }
213
243
  }
244
+ // Codex pricing for cost computation (matches values from old SUBPROCESS_MODEL_PRICING)
245
+ const CODEX_PRICING = { inputPer1M: 2.00, cachedInputPer1M: 1.00, outputPer1M: 8.00 };
246
+ /**
247
+ * Run Codex consultation via @openai/codex-sdk.
248
+ * Mirrors runClaudeConsultation() — streams events, captures usage, records metrics.
249
+ */
250
+ export async function runCodexConsultation(queryText, role, workspaceRoot, outputPath, metricsCtx) {
251
+ const chunks = [];
252
+ const startTime = Date.now();
253
+ let usageData = null;
254
+ let errorMessage = null;
255
+ let exitCode = 0;
256
+ // Write role to temp file — SDK requires file path for instructions
257
+ const tempFile = path.join(tmpdir(), `codev-role-${Date.now()}.md`);
258
+ fs.writeFileSync(tempFile, role);
259
+ try {
260
+ const codex = new Codex({
261
+ config: {
262
+ experimental_instructions_file: tempFile,
263
+ },
264
+ });
265
+ const thread = codex.startThread({
266
+ model: 'gpt-5.2-codex',
267
+ sandboxMode: 'read-only',
268
+ modelReasoningEffort: 'medium',
269
+ workingDirectory: workspaceRoot,
270
+ });
271
+ const { events } = await thread.runStreamed(queryText);
272
+ for await (const event of events) {
273
+ if (event.type === 'item.completed') {
274
+ const item = event.item;
275
+ if (item.type === 'agent_message') {
276
+ process.stdout.write(item.text);
277
+ chunks.push(item.text);
278
+ }
279
+ }
280
+ if (event.type === 'turn.completed') {
281
+ const input = event.usage.input_tokens;
282
+ const cached = event.usage.cached_input_tokens;
283
+ const output = event.usage.output_tokens;
284
+ const uncached = input - cached;
285
+ const cost = (uncached / 1_000_000) * CODEX_PRICING.inputPer1M
286
+ + (cached / 1_000_000) * CODEX_PRICING.cachedInputPer1M
287
+ + (output / 1_000_000) * CODEX_PRICING.outputPer1M;
288
+ usageData = { inputTokens: input, cachedInputTokens: cached, outputTokens: output, costUsd: cost };
289
+ }
290
+ if (event.type === 'turn.failed') {
291
+ errorMessage = event.error.message ?? 'Codex turn failed';
292
+ exitCode = 1;
293
+ throw new Error(errorMessage);
294
+ }
295
+ if (event.type === 'error') {
296
+ errorMessage = event.message ?? 'Codex stream error';
297
+ exitCode = 1;
298
+ throw new Error(errorMessage);
299
+ }
300
+ }
301
+ // Write output file
302
+ if (outputPath) {
303
+ const outputDir = path.dirname(outputPath);
304
+ if (!fs.existsSync(outputDir))
305
+ fs.mkdirSync(outputDir, { recursive: true });
306
+ fs.writeFileSync(outputPath, chunks.join(''));
307
+ console.error(`\nOutput written to: ${outputPath}`);
308
+ }
309
+ }
310
+ catch (err) {
311
+ if (!errorMessage) {
312
+ errorMessage = (err instanceof Error ? err.message : String(err)).substring(0, 500);
313
+ exitCode = 1;
314
+ }
315
+ throw err;
316
+ }
317
+ finally {
318
+ // Clean up temp file
319
+ if (fs.existsSync(tempFile))
320
+ fs.unlinkSync(tempFile);
321
+ // Record metrics (always, even on error)
322
+ if (metricsCtx) {
323
+ const duration = (Date.now() - startTime) / 1000;
324
+ recordMetrics(metricsCtx, {
325
+ durationSeconds: duration,
326
+ inputTokens: usageData?.inputTokens ?? null,
327
+ cachedInputTokens: usageData?.cachedInputTokens ?? null,
328
+ outputTokens: usageData?.outputTokens ?? null,
329
+ costUsd: usageData?.costUsd ?? null,
330
+ exitCode,
331
+ errorMessage,
332
+ });
333
+ }
334
+ }
335
+ }
214
336
  /**
215
337
  * Run Claude consultation via Agent SDK.
216
338
  * Uses the SDK's query() function instead of CLI subprocess.
217
339
  * This avoids the CLAUDECODE nesting guard and enables tool use during reviews.
218
340
  */
219
- async function runClaudeConsultation(queryText, role, workspaceRoot, outputPath) {
341
+ async function runClaudeConsultation(queryText, role, workspaceRoot, outputPath, metricsCtx) {
220
342
  const chunks = [];
343
+ const startTime = Date.now();
344
+ let sdkResult;
345
+ let errorMessage = null;
346
+ let exitCode = 0;
221
347
  // The SDK spawns a Claude Code subprocess that checks process.env.CLAUDECODE.
222
348
  // We must remove it from process.env (not just the options env) to avoid
223
349
  // the nesting guard. Restore it after the SDK call.
@@ -254,9 +380,14 @@ async function runClaudeConsultation(queryText, role, workspaceRoot, outputPath)
254
380
  }
255
381
  }
256
382
  if (message.type === 'result') {
257
- if (message.subtype !== 'success') {
383
+ if (message.subtype === 'success') {
384
+ sdkResult = message;
385
+ }
386
+ else {
258
387
  const errors = 'errors' in message ? message.errors : [];
259
- throw new Error(`Claude SDK error (${message.subtype}): ${errors.join(', ')}`);
388
+ errorMessage = `Claude SDK error (${message.subtype}): ${errors.join(', ')}`.substring(0, 500);
389
+ exitCode = 1;
390
+ throw new Error(errorMessage);
260
391
  }
261
392
  }
262
393
  }
@@ -268,16 +399,37 @@ async function runClaudeConsultation(queryText, role, workspaceRoot, outputPath)
268
399
  console.error(`\nOutput written to: ${outputPath}`);
269
400
  }
270
401
  }
402
+ catch (err) {
403
+ if (!errorMessage) {
404
+ errorMessage = (err instanceof Error ? err.message : String(err)).substring(0, 500);
405
+ exitCode = 1;
406
+ }
407
+ throw err;
408
+ }
271
409
  finally {
272
410
  if (savedClaudeCode !== undefined) {
273
411
  process.env.CLAUDECODE = savedClaudeCode;
274
412
  }
413
+ // Record metrics (always, even on error)
414
+ if (metricsCtx) {
415
+ const duration = (Date.now() - startTime) / 1000;
416
+ const usage = sdkResult ? extractUsage('claude', '', sdkResult) : null;
417
+ recordMetrics(metricsCtx, {
418
+ durationSeconds: duration,
419
+ inputTokens: usage?.inputTokens ?? null,
420
+ cachedInputTokens: usage?.cachedInputTokens ?? null,
421
+ outputTokens: usage?.outputTokens ?? null,
422
+ costUsd: usage?.costUsd ?? null,
423
+ exitCode,
424
+ errorMessage,
425
+ });
426
+ }
275
427
  }
276
428
  }
277
429
  /**
278
430
  * Run the consultation
279
431
  */
280
- async function runConsultation(model, query, workspaceRoot, dryRun, reviewType, customRole, outputPath) {
432
+ async function runConsultation(model, query, workspaceRoot, dryRun, reviewType, customRole, outputPath, metricsCtx) {
281
433
  // Use custom role if specified, otherwise use default consultant role
282
434
  let role = customRole ? loadCustomRole(workspaceRoot, customRole) : loadRole(workspaceRoot);
283
435
  // Append review type prompt if specified
@@ -291,7 +443,7 @@ async function runConsultation(model, query, workspaceRoot, dryRun, reviewType,
291
443
  console.error(chalk.yellow(`Warning: Review type prompt not found: ${reviewType}`));
292
444
  }
293
445
  }
294
- // Claude uses the Agent SDK — handle separately from CLI-based models
446
+ // SDK-based models — handle separately from CLI subprocess models
295
447
  if (model === 'claude') {
296
448
  if (dryRun) {
297
449
  console.log(chalk.yellow(`[claude] Would invoke Agent SDK:`));
@@ -304,7 +456,24 @@ async function runConsultation(model, query, workspaceRoot, dryRun, reviewType,
304
456
  return;
305
457
  }
306
458
  const startTime = Date.now();
307
- await runClaudeConsultation(query, role, workspaceRoot, outputPath);
459
+ await runClaudeConsultation(query, role, workspaceRoot, outputPath, metricsCtx);
460
+ const duration = (Date.now() - startTime) / 1000;
461
+ logQuery(workspaceRoot, model, query, duration);
462
+ console.error(`\n[${model} completed in ${duration.toFixed(1)}s]`);
463
+ return;
464
+ }
465
+ if (model === 'codex') {
466
+ if (dryRun) {
467
+ console.log(chalk.yellow(`[codex] Would invoke Codex SDK:`));
468
+ console.log(` Model: gpt-5.2-codex`);
469
+ console.log(` Sandbox: read-only`);
470
+ console.log(` Reasoning effort: medium`);
471
+ const promptPreview = query.substring(0, 200) + (query.length > 200 ? '...' : '');
472
+ console.log(` Prompt: ${promptPreview}`);
473
+ return;
474
+ }
475
+ const startTime = Date.now();
476
+ await runCodexConsultation(query, role, workspaceRoot, outputPath, metricsCtx);
308
477
  const duration = (Date.now() - startTime) / 1000;
309
478
  logQuery(workspaceRoot, model, query, duration);
310
479
  console.error(`\n[${model} completed in ${duration.toFixed(1)}s]`);
@@ -327,22 +496,7 @@ async function runConsultation(model, query, workspaceRoot, dryRun, reviewType,
327
496
  tempFile = path.join(tmpdir(), `codev-role-${Date.now()}.md`);
328
497
  fs.writeFileSync(tempFile, role);
329
498
  env['GEMINI_SYSTEM_MD'] = tempFile;
330
- cmd = [config.cli, ...config.args, query];
331
- }
332
- else if (model === 'codex') {
333
- // Codex uses experimental_instructions_file config flag (not env var)
334
- // This is the official approach per https://github.com/openai/codex/discussions/3896
335
- tempFile = path.join(tmpdir(), `codev-role-${Date.now()}.md`);
336
- fs.writeFileSync(tempFile, role);
337
- cmd = [
338
- config.cli,
339
- 'exec',
340
- '-c', `experimental_instructions_file=${tempFile}`,
341
- '-c', 'model_reasoning_effort=medium', // Balance speed vs review quality
342
- '-c', 'sandbox=read-only', // Consult is read-only — no test execution
343
- '--full-auto',
344
- query,
345
- ];
499
+ cmd = [config.cli, ...config.args, '--output-format', 'json', query];
346
500
  }
347
501
  else {
348
502
  throw new Error(`Unknown model: ${model}`);
@@ -370,18 +524,18 @@ async function runConsultation(model, query, workspaceRoot, dryRun, reviewType,
370
524
  // When outputPath is set, capture stdout to write to file (used by porch)
371
525
  const fullEnv = { ...process.env, ...env };
372
526
  const startTime = Date.now();
373
- const stdoutMode = outputPath ? 'pipe' : 'inherit';
527
+ const stdoutMode = 'pipe'; // Always pipe to capture structured output for metrics
374
528
  return new Promise((resolve, reject) => {
375
529
  const proc = spawn(cmd[0], cmd.slice(1), {
530
+ cwd: workspaceRoot,
376
531
  env: fullEnv,
377
532
  stdio: ['ignore', stdoutMode, 'inherit'],
378
533
  });
379
534
  const chunks = [];
380
- if (outputPath && proc.stdout) {
535
+ if (proc.stdout) {
381
536
  proc.stdout.on('data', (chunk) => {
382
537
  chunks.push(chunk);
383
- // Also write to stdout so the user can still see output
384
- process.stdout.write(chunk);
538
+ // Gemini: buffer only (JSON is one blob, text emitted on close)
385
539
  });
386
540
  }
387
541
  proc.on('close', (code) => {
@@ -390,15 +544,36 @@ async function runConsultation(model, query, workspaceRoot, dryRun, reviewType,
390
544
  if (tempFile && fs.existsSync(tempFile)) {
391
545
  fs.unlinkSync(tempFile);
392
546
  }
393
- // Write captured output to file
394
- if (outputPath && chunks.length > 0) {
547
+ const rawOutput = Buffer.concat(chunks).toString('utf-8');
548
+ // Extract review text from structured output (JSON/JSONL plain text)
549
+ const reviewText = extractReviewText(model, rawOutput);
550
+ const outputContent = reviewText ?? rawOutput; // Fallback to raw on parse failure
551
+ // Write extracted text to stdout for Gemini (was fully buffered)
552
+ if (model === 'gemini') {
553
+ process.stdout.write(outputContent);
554
+ }
555
+ // Write to output file
556
+ if (outputPath && outputContent.length > 0) {
395
557
  const outputDir = path.dirname(outputPath);
396
558
  if (!fs.existsSync(outputDir)) {
397
559
  fs.mkdirSync(outputDir, { recursive: true });
398
560
  }
399
- fs.writeFileSync(outputPath, Buffer.concat(chunks).toString('utf-8'));
561
+ fs.writeFileSync(outputPath, outputContent);
400
562
  console.error(`\nOutput written to: ${outputPath}`);
401
563
  }
564
+ // Record metrics
565
+ if (metricsCtx) {
566
+ const usage = extractUsage(model, rawOutput);
567
+ recordMetrics(metricsCtx, {
568
+ durationSeconds: duration,
569
+ inputTokens: usage?.inputTokens ?? null,
570
+ cachedInputTokens: usage?.cachedInputTokens ?? null,
571
+ outputTokens: usage?.outputTokens ?? null,
572
+ costUsd: usage?.costUsd ?? null,
573
+ exitCode: code ?? 1,
574
+ errorMessage: code !== 0 ? `Process exited with code ${code}` : null,
575
+ });
576
+ }
402
577
  console.error(`\n[${model} completed in ${duration.toFixed(1)}s]`);
403
578
  if (code !== 0) {
404
579
  reject(new Error(`Process exited with code ${code}`));
@@ -411,6 +586,19 @@ async function runConsultation(model, query, workspaceRoot, dryRun, reviewType,
411
586
  if (tempFile && fs.existsSync(tempFile)) {
412
587
  fs.unlinkSync(tempFile);
413
588
  }
589
+ // Record metrics for spawn failures
590
+ if (metricsCtx) {
591
+ const duration = (Date.now() - startTime) / 1000;
592
+ recordMetrics(metricsCtx, {
593
+ durationSeconds: duration,
594
+ inputTokens: null,
595
+ cachedInputTokens: null,
596
+ outputTokens: null,
597
+ costUsd: null,
598
+ exitCode: 1,
599
+ errorMessage: (error.message || String(error)).substring(0, 500),
600
+ });
601
+ }
414
602
  reject(error);
415
603
  });
416
604
  });
@@ -467,7 +655,7 @@ ${fileList}
467
655
  ## How to Review
468
656
  **Read the changed files from disk** to review their current content. You have full filesystem access.
469
657
  For each changed file listed above, read it and evaluate the code quality, correctness, and test coverage.
470
- Use \`git diff HEAD~1 -- <file>\` or \`git log -p -- <file>\` if you need to see what specifically changed.
658
+ Do NOT rely on git diffs to determine the current state of code diffs miss uncommitted changes in worktrees.
471
659
 
472
660
  ## Comments
473
661
  ${prData.comments}
@@ -505,6 +693,11 @@ Please read and review this specification:
505
693
  query += `- Plan file: ${planPath}\n`;
506
694
  }
507
695
  query += `
696
+ ## How to Review
697
+ **Read the files listed above directly from disk.** You have full filesystem access.
698
+ Do NOT rely on \`git diff\` or \`git log\` to review content — diffs may be truncated or miss uncommitted work.
699
+ Open the spec file, read it in full, and evaluate it directly.
700
+
508
701
  Please review:
509
702
  1. Clarity and completeness of requirements
510
703
  2. Technical feasibility
@@ -536,7 +729,9 @@ function buildImplQuery(projectNumber, workspaceRoot, planPhase) {
536
729
  let changedFiles = [];
537
730
  try {
538
731
  const mergeBase = execSync('git merge-base HEAD main', { cwd: workspaceRoot, encoding: 'utf-8' }).trim();
539
- const result = getDiffStat(workspaceRoot, `${mergeBase}..HEAD`);
732
+ // Use mergeBase (not mergeBase..HEAD) to include uncommitted working tree changes.
733
+ // The ..HEAD syntax is commit-to-commit and misses uncommitted work in builder worktrees.
734
+ const result = getDiffStat(workspaceRoot, mergeBase);
540
735
  diffStat = result.stat;
541
736
  changedFiles = result.files;
542
737
  }
@@ -570,7 +765,7 @@ function buildImplQuery(projectNumber, workspaceRoot, planPhase) {
570
765
  query += `\n\n## How to Review\n`;
571
766
  query += `**Read the changed files from disk** to review their actual content. You have full filesystem access.\n`;
572
767
  query += `For each file listed above, read it and evaluate the implementation against the spec/plan.\n`;
573
- query += `Use \`git diff main -- <file>\` if you need to see what specifically changed in a file.\n`;
768
+ query += `Do NOT rely on git diffs to determine the current state of code diffs miss uncommitted changes in worktrees.\n`;
574
769
  }
575
770
  else {
576
771
  query += `\n## Instructions\n\nRead the spec and plan files above, then explore the filesystem to find and review the implementation changes.\n`;
@@ -607,6 +802,11 @@ Please read and review this implementation plan:
607
802
  query += `- Spec file: ${specPath} (for context)\n`;
608
803
  }
609
804
  query += `
805
+ ## How to Review
806
+ **Read the files listed above directly from disk.** You have full filesystem access.
807
+ Do NOT rely on \`git diff\` or \`git log\` to review content — diffs may be truncated or miss uncommitted work.
808
+ Open the plan file (and spec if provided), read them in full, and evaluate the plan directly.
809
+
610
810
  Please review:
611
811
  1. Alignment with specification requirements
612
812
  2. Implementation approach and architecture
@@ -644,6 +844,18 @@ export async function consult(options) {
644
844
  }
645
845
  const workspaceRoot = findWorkspaceRoot();
646
846
  loadDotenv(workspaceRoot);
847
+ // Capture timestamp at invocation start (before subprocess/SDK)
848
+ const timestamp = new Date().toISOString();
849
+ // Build metrics context with protocol/project defaults
850
+ const metricsCtx = {
851
+ timestamp,
852
+ model,
853
+ reviewType: reviewType ?? null,
854
+ subcommand,
855
+ protocol: options.protocol ?? 'manual',
856
+ projectId: options.projectId ?? null,
857
+ workspacePath: workspaceRoot,
858
+ };
647
859
  console.error(`[${subcommand} review]`);
648
860
  console.error(`Model: ${model}`);
649
861
  // Log custom role if specified
@@ -753,8 +965,8 @@ export async function consult(options) {
753
965
  console.error(`[${model.toUpperCase()}] Starting consultation...`);
754
966
  console.error('='.repeat(60));
755
967
  console.error('');
756
- await runConsultation(model, query, workspaceRoot, dryRun, reviewType, customRole, outputPath);
968
+ await runConsultation(model, query, workspaceRoot, dryRun, reviewType, customRole, outputPath, metricsCtx);
757
969
  }
758
970
  // Exported for testing
759
- export { getDiffStat as _getDiffStat };
971
+ export { getDiffStat as _getDiffStat, buildSpecQuery as _buildSpecQuery, buildPlanQuery as _buildPlanQuery };
760
972
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/consult/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/consult/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Consultation metrics database
3
+ *
4
+ * Stores per-invocation metrics (duration, tokens, cost) in a global
5
+ * SQLite database at ~/.codev/metrics.db. Uses WAL mode and busy_timeout
6
+ * for safe concurrent writes from 3-way parallel consultations.
7
+ */
8
+ export interface MetricsRecord {
9
+ timestamp: string;
10
+ model: string;
11
+ reviewType: string | null;
12
+ subcommand: string;
13
+ protocol: string;
14
+ projectId: string | null;
15
+ durationSeconds: number;
16
+ inputTokens: number | null;
17
+ cachedInputTokens: number | null;
18
+ outputTokens: number | null;
19
+ costUsd: number | null;
20
+ exitCode: number;
21
+ workspacePath: string;
22
+ errorMessage: string | null;
23
+ }
24
+ export interface StatsFilters {
25
+ days?: number;
26
+ model?: string;
27
+ type?: string;
28
+ protocol?: string;
29
+ project?: string;
30
+ last?: number;
31
+ }
32
+ export interface MetricsRow {
33
+ id: number;
34
+ timestamp: string;
35
+ model: string;
36
+ review_type: string | null;
37
+ subcommand: string;
38
+ protocol: string | null;
39
+ project_id: string | null;
40
+ duration_seconds: number;
41
+ input_tokens: number | null;
42
+ cached_input_tokens: number | null;
43
+ output_tokens: number | null;
44
+ cost_usd: number | null;
45
+ exit_code: number;
46
+ workspace_path: string;
47
+ error_message: string | null;
48
+ }
49
+ export interface ModelStats {
50
+ model: string;
51
+ count: number;
52
+ avgDuration: number;
53
+ totalCost: number | null;
54
+ costCount: number;
55
+ successRate: number;
56
+ successCount: number;
57
+ }
58
+ export interface TypeStats {
59
+ reviewType: string;
60
+ count: number;
61
+ avgDuration: number;
62
+ totalCost: number | null;
63
+ costCount: number;
64
+ }
65
+ export interface ProtocolStats {
66
+ protocol: string;
67
+ count: number;
68
+ totalCost: number | null;
69
+ costCount: number;
70
+ }
71
+ export interface StatsSummary {
72
+ totalCount: number;
73
+ totalDuration: number;
74
+ totalCost: number | null;
75
+ costCount: number;
76
+ successCount: number;
77
+ byModel: ModelStats[];
78
+ byType: TypeStats[];
79
+ byProtocol: ProtocolStats[];
80
+ }
81
+ export declare class MetricsDB {
82
+ private db;
83
+ constructor(dbPath?: string);
84
+ record(entry: MetricsRecord): void;
85
+ query(filters: StatsFilters): MetricsRow[];
86
+ summary(filters: StatsFilters): StatsSummary;
87
+ close(): void;
88
+ static get defaultPath(): string;
89
+ }
90
+ //# sourceMappingURL=metrics.d.ts.map