@cluesmith/codev 3.0.0-rc.0 → 3.0.0-rc.2

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 (124) hide show
  1. package/bin/team.js +7 -0
  2. package/dashboard/dist/assets/{index-CiIBsixF.js → index-CndFKfXA.js} +41 -41
  3. package/dashboard/dist/assets/index-CndFKfXA.js.map +1 -0
  4. package/dashboard/dist/index.html +1 -1
  5. package/dist/agent-farm/cli.d.ts.map +1 -1
  6. package/dist/agent-farm/cli.js +11 -2
  7. package/dist/agent-farm/cli.js.map +1 -1
  8. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
  9. package/dist/agent-farm/commands/cleanup.js +10 -5
  10. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  11. package/dist/agent-farm/commands/spawn-roles.d.ts +1 -0
  12. package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -1
  13. package/dist/agent-farm/commands/spawn-roles.js.map +1 -1
  14. package/dist/agent-farm/commands/spawn-worktree.d.ts +48 -9
  15. package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
  16. package/dist/agent-farm/commands/spawn-worktree.js +262 -37
  17. package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
  18. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  19. package/dist/agent-farm/commands/spawn.js +98 -27
  20. package/dist/agent-farm/commands/spawn.js.map +1 -1
  21. package/dist/agent-farm/commands/team-update.d.ts.map +1 -1
  22. package/dist/agent-farm/commands/team-update.js +7 -4
  23. package/dist/agent-farm/commands/team-update.js.map +1 -1
  24. package/dist/agent-farm/commands/team.d.ts +6 -0
  25. package/dist/agent-farm/commands/team.d.ts.map +1 -1
  26. package/dist/agent-farm/commands/team.js +35 -3
  27. package/dist/agent-farm/commands/team.js.map +1 -1
  28. package/dist/agent-farm/commands/tower.d.ts +1 -0
  29. package/dist/agent-farm/commands/tower.d.ts.map +1 -1
  30. package/dist/agent-farm/commands/tower.js +52 -1
  31. package/dist/agent-farm/commands/tower.js.map +1 -1
  32. package/dist/agent-farm/servers/overview.d.ts +7 -7
  33. package/dist/agent-farm/servers/overview.d.ts.map +1 -1
  34. package/dist/agent-farm/servers/overview.js +35 -33
  35. package/dist/agent-farm/servers/overview.js.map +1 -1
  36. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
  37. package/dist/agent-farm/servers/tower-instances.js +9 -2
  38. package/dist/agent-farm/servers/tower-instances.js.map +1 -1
  39. package/dist/agent-farm/servers/tower-server.js +14 -0
  40. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  41. package/dist/agent-farm/types.d.ts +4 -0
  42. package/dist/agent-farm/types.d.ts.map +1 -1
  43. package/dist/cli.d.ts.map +1 -1
  44. package/dist/cli.js +78 -0
  45. package/dist/cli.js.map +1 -1
  46. package/dist/commands/consult/index.d.ts.map +1 -1
  47. package/dist/commands/consult/index.js +86 -69
  48. package/dist/commands/consult/index.js.map +1 -1
  49. package/dist/commands/doctor.d.ts.map +1 -1
  50. package/dist/commands/doctor.js +67 -23
  51. package/dist/commands/doctor.js.map +1 -1
  52. package/dist/commands/porch/checks.d.ts +6 -2
  53. package/dist/commands/porch/checks.d.ts.map +1 -1
  54. package/dist/commands/porch/checks.js +52 -3
  55. package/dist/commands/porch/checks.js.map +1 -1
  56. package/dist/commands/porch/next.d.ts.map +1 -1
  57. package/dist/commands/porch/next.js +8 -1
  58. package/dist/commands/porch/next.js.map +1 -1
  59. package/dist/commands/porch/prompts.js +2 -2
  60. package/dist/commands/porch/prompts.js.map +1 -1
  61. package/dist/commands/porch/state.d.ts.map +1 -1
  62. package/dist/commands/porch/state.js +7 -3
  63. package/dist/commands/porch/state.js.map +1 -1
  64. package/dist/lib/forge-contracts.d.ts +94 -0
  65. package/dist/lib/forge-contracts.d.ts.map +1 -0
  66. package/dist/lib/forge-contracts.js +35 -0
  67. package/dist/lib/forge-contracts.js.map +1 -0
  68. package/dist/lib/forge.d.ts +102 -0
  69. package/dist/lib/forge.d.ts.map +1 -0
  70. package/dist/lib/forge.js +384 -0
  71. package/dist/lib/forge.js.map +1 -0
  72. package/dist/lib/github.d.ts +68 -60
  73. package/dist/lib/github.d.ts.map +1 -1
  74. package/dist/lib/github.js +160 -169
  75. package/dist/lib/github.js.map +1 -1
  76. package/dist/lib/team-github.d.ts +5 -3
  77. package/dist/lib/team-github.d.ts.map +1 -1
  78. package/dist/lib/team-github.js +25 -15
  79. package/dist/lib/team-github.js.map +1 -1
  80. package/dist/lib/team.d.ts.map +1 -1
  81. package/dist/lib/team.js +4 -1
  82. package/dist/lib/team.js.map +1 -1
  83. package/package.json +4 -2
  84. package/scripts/forge/gitea/auth-status.sh +3 -0
  85. package/scripts/forge/gitea/issue-comment.sh +3 -0
  86. package/scripts/forge/gitea/issue-list.sh +3 -0
  87. package/scripts/forge/gitea/issue-view.sh +3 -0
  88. package/scripts/forge/gitea/pr-exists.sh +3 -0
  89. package/scripts/forge/gitea/pr-list.sh +3 -0
  90. package/scripts/forge/gitea/pr-merge.sh +3 -0
  91. package/scripts/forge/gitea/pr-view.sh +3 -0
  92. package/scripts/forge/gitea/recently-closed.sh +3 -0
  93. package/scripts/forge/gitea/recently-merged.sh +3 -0
  94. package/scripts/forge/gitea/user-identity.sh +3 -0
  95. package/scripts/forge/github/auth-status.sh +4 -0
  96. package/scripts/forge/github/issue-comment.sh +5 -0
  97. package/scripts/forge/github/issue-list.sh +4 -0
  98. package/scripts/forge/github/issue-view.sh +5 -0
  99. package/scripts/forge/github/on-it-timestamps.sh +8 -0
  100. package/scripts/forge/github/pr-diff.sh +10 -0
  101. package/scripts/forge/github/pr-exists.sh +5 -0
  102. package/scripts/forge/github/pr-list.sh +4 -0
  103. package/scripts/forge/github/pr-merge.sh +5 -0
  104. package/scripts/forge/github/pr-search.sh +5 -0
  105. package/scripts/forge/github/pr-view.sh +11 -0
  106. package/scripts/forge/github/recently-closed.sh +15 -0
  107. package/scripts/forge/github/recently-merged.sh +15 -0
  108. package/scripts/forge/github/team-activity.sh +5 -0
  109. package/scripts/forge/github/user-identity.sh +4 -0
  110. package/scripts/forge/gitlab/auth-status.sh +3 -0
  111. package/scripts/forge/gitlab/issue-comment.sh +3 -0
  112. package/scripts/forge/gitlab/issue-list.sh +3 -0
  113. package/scripts/forge/gitlab/issue-view.sh +3 -0
  114. package/scripts/forge/gitlab/pr-diff.sh +3 -0
  115. package/scripts/forge/gitlab/pr-exists.sh +3 -0
  116. package/scripts/forge/gitlab/pr-list.sh +3 -0
  117. package/scripts/forge/gitlab/pr-merge.sh +3 -0
  118. package/scripts/forge/gitlab/pr-search.sh +3 -0
  119. package/scripts/forge/gitlab/pr-view.sh +3 -0
  120. package/scripts/forge/gitlab/recently-closed.sh +3 -0
  121. package/scripts/forge/gitlab/recently-merged.sh +3 -0
  122. package/scripts/forge/gitlab/user-identity.sh +3 -0
  123. package/skeleton/roles/architect.md +18 -6
  124. package/dashboard/dist/assets/index-CiIBsixF.js.map +0 -1
package/dist/cli.js CHANGED
@@ -2,6 +2,8 @@
2
2
  /**
3
3
  * Codev CLI - Unified entry point for codev framework
4
4
  */
5
+ import { existsSync } from 'node:fs';
6
+ import { join } from 'node:path';
5
7
  import { Command } from 'commander';
6
8
  import { doctor } from './commands/doctor.js';
7
9
  import { init } from './commands/init.js';
@@ -14,6 +16,19 @@ import { importCommand } from './commands/import.js';
14
16
  import { generateImage } from './commands/generate-image.js';
15
17
  import { runAgentFarm } from './agent-farm/cli.js';
16
18
  import { version } from './version.js';
19
+ import { findWorkspaceRoot } from './agent-farm/utils/index.js';
20
+ /**
21
+ * Validate that we're inside a Codev workspace.
22
+ * Uses the worktree-aware findWorkspaceRoot from agent-farm (issue #407).
23
+ */
24
+ function requireWorkspace() {
25
+ const root = findWorkspaceRoot();
26
+ if (!existsSync(join(root, 'codev'))) {
27
+ console.error('Error: Not inside a Codev workspace. Run from a project that has a codev/ directory.');
28
+ process.exit(1);
29
+ }
30
+ return root;
31
+ }
17
32
  const program = new Command();
18
33
  program
19
34
  .name('codev')
@@ -238,6 +253,69 @@ program
238
253
  process.exit(1);
239
254
  }
240
255
  });
256
+ // Team command group (standalone CLI, Spec 599)
257
+ const teamCmd = program
258
+ .command('team')
259
+ .description('Team coordination — manage members and messages');
260
+ teamCmd
261
+ .command('list')
262
+ .description('List team members from codev/team/people/')
263
+ .action(async () => {
264
+ try {
265
+ requireWorkspace();
266
+ const { teamList } = await import('./agent-farm/commands/team.js');
267
+ await teamList({ cwd: process.cwd() });
268
+ }
269
+ catch (error) {
270
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
271
+ process.exit(1);
272
+ }
273
+ });
274
+ teamCmd
275
+ .command('message <text>')
276
+ .description('Post a message to the team message log')
277
+ .option('-a, --author <name>', 'Override author (default: auto-detect from gh/git)')
278
+ .action(async (text, options) => {
279
+ try {
280
+ requireWorkspace();
281
+ const { teamMessage } = await import('./agent-farm/commands/team.js');
282
+ await teamMessage({ text, author: options.author, cwd: process.cwd() });
283
+ }
284
+ catch (error) {
285
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
286
+ process.exit(1);
287
+ }
288
+ });
289
+ teamCmd
290
+ .command('update')
291
+ .description('Post hourly activity summary (used by cron, can run manually)')
292
+ .action(async () => {
293
+ try {
294
+ requireWorkspace();
295
+ const { teamUpdate } = await import('./agent-farm/commands/team-update.js');
296
+ await teamUpdate({ cwd: process.cwd() });
297
+ }
298
+ catch (error) {
299
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
300
+ process.exit(1);
301
+ }
302
+ });
303
+ teamCmd
304
+ .command('add <github-handle>')
305
+ .description('Scaffold a new team member file')
306
+ .option('-n, --name <name>', 'Full name (default: github handle)')
307
+ .option('-r, --role <role>', 'Role (default: Team Member)')
308
+ .action(async (handle, options) => {
309
+ try {
310
+ requireWorkspace();
311
+ const { teamAdd } = await import('./agent-farm/commands/team.js');
312
+ await teamAdd({ handle, name: options.name, role: options.role, cwd: process.cwd() });
313
+ }
314
+ catch (error) {
315
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
316
+ process.exit(1);
317
+ }
318
+ });
241
319
  // Agent-farm command (delegates to existing agent-farm CLI)
242
320
  program
243
321
  .command('agent-farm', { hidden: false })
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/consult/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsCH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AA4KD,UAAU,mBAAmB;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAwED;;;;;;;;;;GAUG;AACH,iBAAS,2BAA2B,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAItF;AAsCD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAAC,IAAI,CAAC,CAwFf;AAiQD;;GAEG;AACH,iBAAS,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAK1F;AAyFD;;GAEG;AACH,iBAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAoCzE;AAkFD;;GAEG;AACH,iBAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAoCzE;AA8OD;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsJpE;AAGD,OAAO,EACL,WAAW,IAAI,YAAY,EAC3B,cAAc,IAAI,eAAe,EACjC,cAAc,IAAI,eAAe,EACjC,2BAA2B,IAAI,4BAA4B,GAC5D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/consult/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuCH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AA4KD,UAAU,mBAAmB;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAwED;;;;;;;;;;GAUG;AACH,iBAAS,2BAA2B,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAItF;AAsCD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAAC,IAAI,CAAC,CAwFf;AAiQD;;GAEG;AACH,iBAAS,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAK1F;AA2GD;;GAEG;AACH,iBAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAoCzE;AAkFD;;GAEG;AACH,iBAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAoCzE;AAsOD;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsJpE;AAGD,OAAO,EACL,WAAW,IAAI,YAAY,EAC3B,cAAc,IAAI,eAAe,EACjC,cAAc,IAAI,eAAe,EACjC,2BAA2B,IAAI,4BAA4B,GAC5D,CAAC"}
@@ -16,6 +16,7 @@ import { Codex } from '@openai/codex-sdk';
16
16
  import { readCodevFile, findWorkspaceRoot } from '../../lib/skeleton.js';
17
17
  import { MetricsDB } from './metrics.js';
18
18
  import { extractUsage, extractReviewText } from './usage-extractor.js';
19
+ import { executeForgeCommandSync } from '../../lib/forge.js';
19
20
  const MODEL_CONFIGS = {
20
21
  gemini: { cli: 'gemini', args: ['--model', 'gemini-3-pro-preview'], envVar: 'GEMINI_SYSTEM_MD' },
21
22
  };
@@ -132,9 +133,9 @@ function loadDotenv(workspaceRoot) {
132
133
  * Find a spec file by number. Returns null if not found.
133
134
  * Errors if multiple matches found.
134
135
  */
135
- function findSpec(workspaceRoot, number) {
136
+ function findSpec(workspaceRoot, id) {
136
137
  const specsDir = path.join(workspaceRoot, 'codev', 'specs');
137
- const unpadded = String(number);
138
+ const unpadded = id.replace(/^0+/, '') || '0';
138
139
  const padded = unpadded.padStart(4, '0');
139
140
  if (fs.existsSync(specsDir)) {
140
141
  const files = fs.readdirSync(specsDir).filter(f => f.endsWith('.md'));
@@ -153,9 +154,9 @@ function findSpec(workspaceRoot, number) {
153
154
  * Find a plan file by number. Returns null if not found.
154
155
  * Errors if multiple matches found.
155
156
  */
156
- function findPlan(workspaceRoot, number) {
157
+ function findPlan(workspaceRoot, id) {
157
158
  const plansDir = path.join(workspaceRoot, 'codev', 'plans');
158
- const unpadded = String(number);
159
+ const unpadded = id.replace(/^0+/, '') || '0';
159
160
  const padded = unpadded.padStart(4, '0');
160
161
  if (fs.existsSync(plansDir)) {
161
162
  const files = fs.readdirSync(plansDir).filter(f => f.endsWith('.md'));
@@ -609,17 +610,31 @@ function getDiffStat(workspaceRoot, ref) {
609
610
  return { stat, files };
610
611
  }
611
612
  /**
612
- * Fetch PR metadata (no diff — that's fetched separately)
613
+ * Fetch PR metadata via forge concept commands (no diff — that's fetched separately).
613
614
  */
614
- function fetchPRData(prNumber) {
615
- console.error(`Fetching PR #${prNumber} data...`);
615
+ function fetchPRData(prId) {
616
+ console.error(`Fetching PR #${prId} data...`);
616
617
  try {
617
- const info = execSync(`gh pr view ${prNumber} --json title,body,state,author,baseRefName,headRefName,additions,deletions`, { encoding: 'utf-8' });
618
- const nameOnly = execSync(`gh pr diff ${prNumber} --name-only`, { encoding: 'utf-8' });
618
+ const prView = executeForgeCommandSync('pr-view', {
619
+ CODEV_PR_NUMBER: prId,
620
+ });
621
+ const info = typeof prView === 'string' ? prView : JSON.stringify(prView);
622
+ const diffResult = executeForgeCommandSync('pr-diff', {
623
+ CODEV_PR_NUMBER: prId,
624
+ CODEV_DIFF_NAME_ONLY: '1',
625
+ }, { raw: true });
626
+ const nameOnly = typeof diffResult === 'string' ? diffResult : '';
619
627
  const changedFiles = nameOnly.trim().split('\n').filter(Boolean);
620
628
  let comments = '(No comments)';
621
629
  try {
622
- comments = execSync(`gh pr view ${prNumber} --comments`, { encoding: 'utf-8' });
630
+ // Fetch PR comments via pr-view concept with CODEV_INCLUDE_COMMENTS flag
631
+ const commentsResult = executeForgeCommandSync('pr-view', {
632
+ CODEV_PR_NUMBER: prId,
633
+ CODEV_INCLUDE_COMMENTS: '1',
634
+ }, { raw: true });
635
+ if (commentsResult && typeof commentsResult === 'string' && commentsResult.trim()) {
636
+ comments = commentsResult;
637
+ }
623
638
  }
624
639
  catch {
625
640
  // No comments or error fetching
@@ -631,25 +646,28 @@ function fetchPRData(prNumber) {
631
646
  }
632
647
  }
633
648
  /**
634
- * Fetch the full PR diff via gh pr diff
649
+ * Fetch the full PR diff via the pr-diff forge concept command.
635
650
  */
636
- function fetchPRDiff(prNumber) {
651
+ function fetchPRDiff(prId) {
637
652
  try {
638
- return execSync(`gh pr diff ${prNumber}`, { encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });
653
+ const result = executeForgeCommandSync('pr-diff', {
654
+ CODEV_PR_NUMBER: prId,
655
+ }, { raw: true });
656
+ return typeof result === 'string' ? result : '';
639
657
  }
640
658
  catch (err) {
641
- throw new Error(`Failed to fetch PR diff for #${prNumber}: ${err}`);
659
+ throw new Error(`Failed to fetch PR diff for #${prId}: ${err}`);
642
660
  }
643
661
  }
644
662
  /**
645
663
  * Build query for PR review.
646
664
  * Includes full PR diff + file list; model reads surrounding context from disk.
647
665
  */
648
- function buildPRQuery(prNumber) {
649
- const prData = fetchPRData(prNumber);
650
- const diff = fetchPRDiff(prNumber);
666
+ function buildPRQuery(prId) {
667
+ const prData = fetchPRData(prId);
668
+ const diff = fetchPRDiff(prId);
651
669
  const fileList = prData.changedFiles.map(f => `- ${f}`).join('\n');
652
- return `Review Pull Request #${prNumber}
670
+ return `Review Pull Request #${prId}
653
671
 
654
672
  ## PR Info
655
673
  \`\`\`json
@@ -885,61 +903,63 @@ KEY_ISSUES: [List of critical issues if any, or "None"]`;
885
903
  return query;
886
904
  }
887
905
  /**
888
- * Find PR number for the current branch
906
+ * Find PR number for the current branch via pr-search forge concept.
889
907
  */
890
908
  function findPRForCurrentBranch(workspaceRoot) {
891
909
  const branchName = execSync('git branch --show-current', { cwd: workspaceRoot, encoding: 'utf-8' }).trim();
892
- const prJson = execSync(`gh pr list --head "${branchName}" --json number --jq '.[0].number'`, { cwd: workspaceRoot, encoding: 'utf-8' }).trim();
893
- if (!prJson) {
894
- throw new Error(`No PR found for branch: ${branchName}`);
895
- }
896
- const prNumber = parseInt(prJson, 10);
897
- if (isNaN(prNumber)) {
910
+ const result = executeForgeCommandSync('pr-search', {
911
+ CODEV_SEARCH_QUERY: `head:${branchName}`,
912
+ }, { cwd: workspaceRoot });
913
+ const prs = Array.isArray(result) ? result : [];
914
+ if (prs.length === 0 || !prs[0]?.number) {
898
915
  throw new Error(`No PR found for branch: ${branchName}`);
899
916
  }
900
- return prNumber;
917
+ return String(prs[0].number);
901
918
  }
902
919
  /**
903
- * Find PR number for a given issue number (architect mode)
920
+ * Find PR number for a given issue number (architect mode) via pr-search forge concept.
904
921
  */
905
- function findPRForIssue(workspaceRoot, issueNumber) {
906
- const prJson = execSync(`gh pr list --search "${issueNumber}" --json number,headRefName --jq '.[0]'`, { cwd: workspaceRoot, encoding: 'utf-8' }).trim();
907
- if (!prJson || prJson === 'null') {
908
- throw new Error(`No PR found for issue #${issueNumber}`);
909
- }
910
- return JSON.parse(prJson);
922
+ function findPRForIssue(workspaceRoot, issueId) {
923
+ const result = executeForgeCommandSync('pr-search', {
924
+ CODEV_SEARCH_QUERY: issueId,
925
+ }, { cwd: workspaceRoot });
926
+ const prs = Array.isArray(result) ? result : [];
927
+ if (prs.length === 0 || !prs[0]?.number) {
928
+ throw new Error(`No PR found for issue #${issueId}`);
929
+ }
930
+ return prs[0];
911
931
  }
912
932
  /**
913
933
  * Resolve query for builder context (auto-detected from porch state)
914
934
  */
915
935
  function resolveBuilderQuery(workspaceRoot, type, options) {
916
936
  const projectState = getBuilderProjectState(workspaceRoot, options.projectId);
917
- const projectNumber = parseInt(projectState.id, 10);
937
+ const projectId = projectState.id;
918
938
  switch (type) {
919
939
  case 'spec': {
920
- const specPath = findSpec(workspaceRoot, projectNumber);
940
+ const specPath = findSpec(workspaceRoot, projectId);
921
941
  if (!specPath)
922
- throw new Error(`Spec ${projectState.id} not found in codev/specs/`);
923
- const planPath = findPlan(workspaceRoot, projectNumber);
942
+ throw new Error(`Spec ${projectId} not found in codev/specs/`);
943
+ const planPath = findPlan(workspaceRoot, projectId);
924
944
  console.error(`Spec: ${specPath}`);
925
945
  if (planPath)
926
946
  console.error(`Plan: ${planPath}`);
927
947
  return buildSpecQuery(specPath, planPath);
928
948
  }
929
949
  case 'plan': {
930
- const planPath = findPlan(workspaceRoot, projectNumber);
950
+ const planPath = findPlan(workspaceRoot, projectId);
931
951
  if (!planPath)
932
- throw new Error(`Plan ${projectState.id} not found in codev/plans/`);
933
- const specPath = findSpec(workspaceRoot, projectNumber);
952
+ throw new Error(`Plan ${projectId} not found in codev/plans/`);
953
+ const specPath = findSpec(workspaceRoot, projectId);
934
954
  console.error(`Plan: ${planPath}`);
935
955
  if (specPath)
936
956
  console.error(`Spec: ${specPath}`);
937
957
  return buildPlanQuery(planPath, specPath);
938
958
  }
939
959
  case 'impl': {
940
- const specPath = findSpec(workspaceRoot, projectNumber);
941
- const planPath = findPlan(workspaceRoot, projectNumber);
942
- console.error(`Project: ${projectState.id}`);
960
+ const specPath = findSpec(workspaceRoot, projectId);
961
+ const planPath = findPlan(workspaceRoot, projectId);
962
+ console.error(`Project: ${projectId}`);
943
963
  if (specPath)
944
964
  console.error(`Spec: ${specPath}`);
945
965
  if (planPath)
@@ -949,17 +969,17 @@ function resolveBuilderQuery(workspaceRoot, type, options) {
949
969
  return buildImplQuery(workspaceRoot, specPath, planPath, options.planPhase);
950
970
  }
951
971
  case 'pr': {
952
- const prNumber = findPRForCurrentBranch(workspaceRoot);
953
- console.error(`PR: #${prNumber}`);
954
- return buildPRQuery(prNumber);
972
+ const prId = findPRForCurrentBranch(workspaceRoot);
973
+ console.error(`PR: #${prId}`);
974
+ return buildPRQuery(prId);
955
975
  }
956
976
  case 'phase': {
957
977
  const currentPhase = options.planPhase ?? projectState.currentPlanPhase;
958
978
  if (!currentPhase) {
959
979
  throw new Error('No current plan phase detected. Use --plan-phase to specify.');
960
980
  }
961
- const specPath = findSpec(workspaceRoot, projectNumber);
962
- const planPath = findPlan(workspaceRoot, projectNumber);
981
+ const specPath = findSpec(workspaceRoot, projectId);
982
+ const planPath = findPlan(workspaceRoot, projectId);
963
983
  console.error(`Phase: ${currentPhase}`);
964
984
  if (specPath)
965
985
  console.error(`Spec: ${specPath}`);
@@ -968,9 +988,9 @@ function resolveBuilderQuery(workspaceRoot, type, options) {
968
988
  return buildPhaseQuery(workspaceRoot, currentPhase, specPath, planPath);
969
989
  }
970
990
  case 'integration': {
971
- const prNumber = findPRForCurrentBranch(workspaceRoot);
972
- console.error(`PR: #${prNumber} (integration review)`);
973
- return buildPRQuery(prNumber);
991
+ const prId = findPRForCurrentBranch(workspaceRoot);
992
+ console.error(`PR: #${prId} (integration review)`);
993
+ return buildPRQuery(prId);
974
994
  }
975
995
  default:
976
996
  throw new Error(`Unknown review type: ${type}\nValid types: spec, plan, impl, pr, phase, integration`);
@@ -987,33 +1007,30 @@ function resolveArchitectQuery(workspaceRoot, type, options) {
987
1007
  throw new Error(`--issue is required from architect context for --type ${type}.\n` +
988
1008
  `Example: consult -m gemini --protocol spir --type ${type} --issue 42`);
989
1009
  }
990
- const issueNumber = parseInt(options.issue, 10);
991
- if (isNaN(issueNumber)) {
992
- throw new Error(`Invalid issue number: ${options.issue}`);
993
- }
1010
+ const issueId = options.issue;
994
1011
  switch (type) {
995
1012
  case 'spec': {
996
- const specPath = findSpec(workspaceRoot, issueNumber);
1013
+ const specPath = findSpec(workspaceRoot, issueId);
997
1014
  if (!specPath)
998
- throw new Error(`Spec ${issueNumber} not found in codev/specs/`);
999
- const planPath = findPlan(workspaceRoot, issueNumber);
1015
+ throw new Error(`Spec ${issueId} not found in codev/specs/`);
1016
+ const planPath = findPlan(workspaceRoot, issueId);
1000
1017
  console.error(`Spec: ${specPath}`);
1001
1018
  if (planPath)
1002
1019
  console.error(`Plan: ${planPath}`);
1003
1020
  return buildSpecQuery(specPath, planPath);
1004
1021
  }
1005
1022
  case 'plan': {
1006
- const planPath = findPlan(workspaceRoot, issueNumber);
1023
+ const planPath = findPlan(workspaceRoot, issueId);
1007
1024
  if (!planPath)
1008
- throw new Error(`Plan ${issueNumber} not found in codev/plans/`);
1009
- const specPath = findSpec(workspaceRoot, issueNumber);
1025
+ throw new Error(`Plan ${issueId} not found in codev/plans/`);
1026
+ const specPath = findSpec(workspaceRoot, issueId);
1010
1027
  console.error(`Plan: ${planPath}`);
1011
1028
  if (specPath)
1012
1029
  console.error(`Spec: ${specPath}`);
1013
1030
  return buildPlanQuery(planPath, specPath);
1014
1031
  }
1015
1032
  case 'impl': {
1016
- const pr = findPRForIssue(workspaceRoot, issueNumber);
1033
+ const pr = findPRForIssue(workspaceRoot, issueId);
1017
1034
  // Fetch the branch and diff from merge-base
1018
1035
  try {
1019
1036
  execSync(`git fetch origin ${pr.headRefName}`, { cwd: workspaceRoot, stdio: 'pipe' });
@@ -1022,9 +1039,9 @@ function resolveArchitectQuery(workspaceRoot, type, options) {
1022
1039
  // May already be fetched
1023
1040
  }
1024
1041
  const mergeBase = execSync(`git merge-base main origin/${pr.headRefName}`, { cwd: workspaceRoot, encoding: 'utf-8' }).trim();
1025
- const specPath = findSpec(workspaceRoot, issueNumber);
1026
- const planPath = findPlan(workspaceRoot, issueNumber);
1027
- console.error(`Project: ${issueNumber} (PR #${pr.number}, branch: ${pr.headRefName})`);
1042
+ const specPath = findSpec(workspaceRoot, issueId);
1043
+ const planPath = findPlan(workspaceRoot, issueId);
1044
+ console.error(`Project: ${issueId} (PR #${pr.number}, branch: ${pr.headRefName})`);
1028
1045
  if (specPath)
1029
1046
  console.error(`Spec: ${specPath}`);
1030
1047
  if (planPath)
@@ -1032,14 +1049,14 @@ function resolveArchitectQuery(workspaceRoot, type, options) {
1032
1049
  return buildImplQuery(workspaceRoot, specPath, planPath, options.planPhase, `${mergeBase}..origin/${pr.headRefName}`);
1033
1050
  }
1034
1051
  case 'pr': {
1035
- const pr = findPRForIssue(workspaceRoot, issueNumber);
1052
+ const pr = findPRForIssue(workspaceRoot, issueId);
1036
1053
  console.error(`PR: #${pr.number}`);
1037
- return buildPRQuery(pr.number);
1054
+ return buildPRQuery(String(pr.number));
1038
1055
  }
1039
1056
  case 'integration': {
1040
- const pr = findPRForIssue(workspaceRoot, issueNumber);
1057
+ const pr = findPRForIssue(workspaceRoot, issueId);
1041
1058
  console.error(`PR: #${pr.number} (integration review)`);
1042
- return buildPRQuery(pr.number);
1059
+ return buildPRQuery(String(pr.number));
1043
1060
  }
1044
1061
  default:
1045
1062
  throw new Error(`Unknown review type: ${type}\nValid types: spec, plan, impl, pr, phase, integration`);