@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
@@ -0,0 +1,385 @@
1
+ /**
2
+ * Overview endpoint for Tower dashboard Work view.
3
+ * Spec 0126: Project Management Rework — Phase 4
4
+ *
5
+ * Aggregates builder state, cached PR list, and cached issue backlog
6
+ * into a single JSON response for the dashboard. Supports degraded
7
+ * mode when the `gh` CLI is unavailable.
8
+ */
9
+ import fs from 'node:fs';
10
+ import path from 'node:path';
11
+ import { fetchPRList, fetchIssueList, parseLinkedIssue, parseLabelDefaults, } from '../../lib/github.js';
12
+ /**
13
+ * Parse a porch status.yaml file into structured data.
14
+ * Uses line-based parsing (same pattern as gate-status.ts).
15
+ */
16
+ export function parseStatusYaml(content) {
17
+ const result = {
18
+ id: '',
19
+ title: '',
20
+ protocol: '',
21
+ phase: '',
22
+ currentPlanPhase: '',
23
+ gates: {},
24
+ };
25
+ const lines = content.split('\n');
26
+ let inGates = false;
27
+ let currentGate = '';
28
+ for (const line of lines) {
29
+ // Top-level scalar fields
30
+ const idMatch = line.match(/^id:\s*'?(\S+?)'?\s*$/);
31
+ if (idMatch) {
32
+ result.id = idMatch[1];
33
+ continue;
34
+ }
35
+ const titleMatch = line.match(/^title:\s*(\S.*?)\s*$/);
36
+ if (titleMatch) {
37
+ result.title = titleMatch[1];
38
+ continue;
39
+ }
40
+ const protocolMatch = line.match(/^protocol:\s*(\S+)/);
41
+ if (protocolMatch) {
42
+ result.protocol = protocolMatch[1];
43
+ continue;
44
+ }
45
+ const phaseMatch = line.match(/^phase:\s*(\S+)/);
46
+ if (phaseMatch) {
47
+ result.phase = phaseMatch[1];
48
+ continue;
49
+ }
50
+ const planPhaseMatch = line.match(/^current_plan_phase:\s*(\S+)/);
51
+ if (planPhaseMatch) {
52
+ result.currentPlanPhase = planPhaseMatch[1];
53
+ continue;
54
+ }
55
+ // Gates section
56
+ if (/^gates:\s*$/.test(line)) {
57
+ inGates = true;
58
+ continue;
59
+ }
60
+ // Stop gates section at next top-level key
61
+ if (inGates && /^\S/.test(line) && line.trim() !== '') {
62
+ inGates = false;
63
+ }
64
+ if (inGates) {
65
+ const gateNameMatch = line.match(/^\s{2}(\S+):\s*$/);
66
+ if (gateNameMatch) {
67
+ currentGate = gateNameMatch[1];
68
+ continue;
69
+ }
70
+ const statusMatch = line.match(/^\s{4}status:\s*(\S+)/);
71
+ if (statusMatch && currentGate) {
72
+ result.gates[currentGate] = statusMatch[1];
73
+ }
74
+ }
75
+ }
76
+ return result;
77
+ }
78
+ // =============================================================================
79
+ // Builder discovery
80
+ // =============================================================================
81
+ /**
82
+ * Map a worktree directory name to its expected terminal role_id.
83
+ * Must match what buildAgentName() produces during spawn so we can
84
+ * cross-reference worktrees against active terminal sessions.
85
+ *
86
+ * All values are lowercased to match buildAgentName() convention.
87
+ *
88
+ * Examples:
89
+ * spir-126-slug → "builder-spir-126"
90
+ * tick-130-slug → "builder-tick-130"
91
+ * bugfix-296-slug → "builder-bugfix-296"
92
+ * task-NAvW → "builder-task-navw"
93
+ * worktree-foIg → "worktree-foig"
94
+ * 0110-legacy → "builder-spir-110"
95
+ * experiment-AbCd → "builder-experiment-abcd"
96
+ */
97
+ export function worktreeNameToRoleId(dirName) {
98
+ const lower = dirName.toLowerCase();
99
+ // SPIR: spir-126-slug → builder-spir-126
100
+ const spirMatch = lower.match(/^spir-(\d+)/);
101
+ if (spirMatch)
102
+ return `builder-spir-${Number(spirMatch[1])}`;
103
+ // TICK: tick-130-slug → builder-tick-130
104
+ const tickMatch = lower.match(/^tick-(\d+)/);
105
+ if (tickMatch)
106
+ return `builder-tick-${Number(tickMatch[1])}`;
107
+ // Bugfix: bugfix-296-slug → builder-bugfix-296
108
+ const bugfixMatch = lower.match(/^bugfix-(\d+)/);
109
+ if (bugfixMatch)
110
+ return `builder-bugfix-${Number(bugfixMatch[1])}`;
111
+ // Task: task-NAvW → builder-task-navw
112
+ const taskMatch = lower.match(/^task-([a-z0-9]+)/);
113
+ if (taskMatch)
114
+ return `builder-task-${taskMatch[1]}`;
115
+ // Worktree: worktree-foIg → worktree-foig (no builder- prefix)
116
+ const worktreeMatch = lower.match(/^worktree-([a-z0-9]+)/);
117
+ if (worktreeMatch)
118
+ return `worktree-${worktreeMatch[1]}`;
119
+ // Legacy numeric: 0110-slug → builder-spir-110 (assume spir)
120
+ const numericMatch = lower.match(/^(\d+)(?:-|$)/);
121
+ if (numericMatch)
122
+ return `builder-spir-${Number(numericMatch[1])}`;
123
+ // Generic protocol: experiment-AbCd → builder-experiment-abcd
124
+ const genericMatch = lower.match(/^([a-z]+)-([a-z0-9]+)/);
125
+ if (genericMatch)
126
+ return `builder-${genericMatch[1]}-${genericMatch[2]}`;
127
+ return null;
128
+ }
129
+ /**
130
+ * Extract project ID from a worktree directory name.
131
+ * Used to match worktrees to their correct codev/projects/{ID}-* directory.
132
+ *
133
+ * Returns the project dir prefix (to match `{ID}-*`) or null for soft-mode builders.
134
+ */
135
+ export function extractProjectIdFromWorktreeName(dirName) {
136
+ // SPIR: spir-126-slug → "0126" (zero-padded)
137
+ const spirMatch = dirName.match(/^spir-(\d+)/);
138
+ if (spirMatch)
139
+ return spirMatch[1].padStart(4, '0');
140
+ // TICK: tick-130-slug → "0130" (zero-padded)
141
+ const tickMatch = dirName.match(/^tick-(\d+)/);
142
+ if (tickMatch)
143
+ return tickMatch[1].padStart(4, '0');
144
+ // Bugfix: bugfix-296-slug → "builder-bugfix-296"
145
+ // Porch project dirs are created via buildAgentName('bugfix', N) → "builder-bugfix-N"
146
+ const bugfixMatch = dirName.match(/^bugfix-(\d+)/);
147
+ if (bugfixMatch)
148
+ return `builder-bugfix-${bugfixMatch[1]}`;
149
+ // Legacy numeric: 0110 or 0110-slug → "0110"
150
+ const numericMatch = dirName.match(/^(\d+)(?:-|$)/);
151
+ if (numericMatch)
152
+ return numericMatch[1].padStart(4, '0');
153
+ // task-NAvW, worktree-foIg → null (soft mode)
154
+ return null;
155
+ }
156
+ /**
157
+ * Discover builders by scanning .builders/ directory and reading status.yaml.
158
+ */
159
+ export function discoverBuilders(workspaceRoot) {
160
+ const buildersDir = path.join(workspaceRoot, '.builders');
161
+ if (!fs.existsSync(buildersDir))
162
+ return [];
163
+ const builders = [];
164
+ let entries;
165
+ try {
166
+ entries = fs.readdirSync(buildersDir, { withFileTypes: true });
167
+ }
168
+ catch {
169
+ return [];
170
+ }
171
+ for (const entry of entries) {
172
+ if (!entry.isDirectory())
173
+ continue;
174
+ const worktreePath = path.join(buildersDir, entry.name);
175
+ const projectId = extractProjectIdFromWorktreeName(entry.name);
176
+ if (!projectId) {
177
+ // No ID extracted (task-*, worktree-*) → soft mode
178
+ builders.push({
179
+ id: entry.name,
180
+ issueNumber: null,
181
+ issueTitle: null,
182
+ phase: '',
183
+ mode: 'soft',
184
+ gates: {},
185
+ worktreePath,
186
+ });
187
+ continue;
188
+ }
189
+ const projectsDir = path.join(worktreePath, 'codev', 'projects');
190
+ // Try to find matching status.yaml by project ID prefix
191
+ let found = false;
192
+ if (fs.existsSync(projectsDir)) {
193
+ try {
194
+ const projectEntries = fs.readdirSync(projectsDir, { withFileTypes: true });
195
+ for (const projEntry of projectEntries) {
196
+ if (!projEntry.isDirectory())
197
+ continue;
198
+ if (!projEntry.name.startsWith(`${projectId}-`))
199
+ continue;
200
+ const statusFile = path.join(projectsDir, projEntry.name, 'status.yaml');
201
+ if (!fs.existsSync(statusFile))
202
+ continue;
203
+ const content = fs.readFileSync(statusFile, 'utf-8');
204
+ const parsed = parseStatusYaml(content);
205
+ let issueNumber = parsed.id ? parseInt(parsed.id, 10) : null;
206
+ if (issueNumber !== null && Number.isNaN(issueNumber)) {
207
+ // Bugfix-style IDs like "builder-bugfix-315" — extract trailing number
208
+ const trailingNum = parsed.id.match(/(\d+)$/);
209
+ issueNumber = trailingNum ? parseInt(trailingNum[1], 10) : null;
210
+ }
211
+ builders.push({
212
+ id: parsed.id || entry.name,
213
+ issueNumber: Number.isNaN(issueNumber) ? null : issueNumber,
214
+ issueTitle: parsed.title || null,
215
+ phase: parsed.currentPlanPhase || parsed.phase,
216
+ mode: 'strict',
217
+ gates: parsed.gates,
218
+ worktreePath,
219
+ });
220
+ found = true;
221
+ break;
222
+ }
223
+ }
224
+ catch {
225
+ // Skip unreadable project dirs
226
+ }
227
+ }
228
+ if (!found) {
229
+ // No matching project dir → soft mode, but extract issue number from dir name
230
+ const numMatch = projectId.match(/(\d+)$/);
231
+ const issueNumber = numMatch ? parseInt(numMatch[1], 10) : null;
232
+ builders.push({
233
+ id: entry.name,
234
+ issueNumber: Number.isNaN(issueNumber) ? null : issueNumber,
235
+ issueTitle: null,
236
+ phase: '',
237
+ mode: 'soft',
238
+ gates: {},
239
+ worktreePath,
240
+ });
241
+ }
242
+ }
243
+ return builders;
244
+ }
245
+ // =============================================================================
246
+ // Backlog derivation
247
+ // =============================================================================
248
+ /**
249
+ * Derive backlog from open GitHub issues cross-referenced with specs and builders.
250
+ */
251
+ export function deriveBacklog(issues, workspaceRoot, activeBuilderIssues, prLinkedIssues) {
252
+ const specsDir = path.join(workspaceRoot, 'codev', 'specs');
253
+ const specNumbers = new Set();
254
+ if (fs.existsSync(specsDir)) {
255
+ try {
256
+ const files = fs.readdirSync(specsDir);
257
+ for (const file of files) {
258
+ if (!file.endsWith('.md'))
259
+ continue;
260
+ const numStr = file.split('-')[0];
261
+ const num = parseInt(numStr, 10);
262
+ if (!Number.isNaN(num))
263
+ specNumbers.add(num);
264
+ }
265
+ }
266
+ catch {
267
+ // Silently continue
268
+ }
269
+ }
270
+ return issues
271
+ .filter(issue => !prLinkedIssues.has(issue.number))
272
+ .map(issue => {
273
+ const { type, priority } = parseLabelDefaults(issue.labels);
274
+ return {
275
+ number: issue.number,
276
+ title: issue.title,
277
+ type,
278
+ priority,
279
+ hasSpec: specNumbers.has(issue.number),
280
+ hasBuilder: activeBuilderIssues.has(issue.number),
281
+ createdAt: issue.createdAt,
282
+ };
283
+ });
284
+ }
285
+ // =============================================================================
286
+ // OverviewCache
287
+ // =============================================================================
288
+ export class OverviewCache {
289
+ prCache = null;
290
+ issueCache = null;
291
+ lastWorkspaceRoot = null;
292
+ TTL = 60_000;
293
+ /**
294
+ * Build the overview response. Aggregates builder state, PRs, and backlog.
295
+ *
296
+ * @param activeBuilderRoleIds - Set of lowercased role_ids for builders with
297
+ * live terminal sessions. When provided, only worktrees matching an active
298
+ * session are included. When omitted, all discovered worktrees are returned
299
+ * (backward-compatible / unit-test friendly).
300
+ */
301
+ async getOverview(workspaceRoot, activeBuilderRoleIds) {
302
+ // Invalidate cache when workspace changes (prevents cross-workspace stale data)
303
+ if (this.lastWorkspaceRoot !== null && this.lastWorkspaceRoot !== workspaceRoot) {
304
+ this.invalidate();
305
+ }
306
+ this.lastWorkspaceRoot = workspaceRoot;
307
+ const errors = {};
308
+ // 1. Discover builders from .builders/ directory, then filter to live sessions
309
+ let builders = discoverBuilders(workspaceRoot);
310
+ if (activeBuilderRoleIds) {
311
+ builders = builders.filter(b => {
312
+ const roleId = worktreeNameToRoleId(path.basename(b.worktreePath));
313
+ return roleId !== null && activeBuilderRoleIds.has(roleId);
314
+ });
315
+ }
316
+ const activeBuilderIssues = new Set(builders
317
+ .map(b => b.issueNumber)
318
+ .filter((n) => n !== null));
319
+ // 2. Fetch PRs (cached, scoped to workspace)
320
+ let pendingPRs = [];
321
+ const prs = await this.fetchPRsCached(workspaceRoot);
322
+ if (prs === null) {
323
+ errors.prs = 'GitHub CLI unavailable — could not fetch PRs';
324
+ }
325
+ else {
326
+ pendingPRs = prs.map(pr => ({
327
+ number: pr.number,
328
+ title: pr.title,
329
+ reviewStatus: pr.reviewDecision || 'REVIEW_REQUIRED',
330
+ linkedIssue: parseLinkedIssue(pr.body || '', pr.title),
331
+ createdAt: pr.createdAt,
332
+ }));
333
+ }
334
+ const prLinkedIssues = new Set(pendingPRs
335
+ .map(pr => pr.linkedIssue)
336
+ .filter((n) => n !== null));
337
+ // 3. Fetch issues and derive backlog (cached, scoped to workspace)
338
+ let backlog = [];
339
+ const issues = await this.fetchIssuesCached(workspaceRoot);
340
+ if (issues === null) {
341
+ errors.issues = 'GitHub CLI unavailable — could not fetch issues';
342
+ }
343
+ else {
344
+ backlog = deriveBacklog(issues, workspaceRoot, activeBuilderIssues, prLinkedIssues);
345
+ }
346
+ const result = { builders, pendingPRs, backlog };
347
+ if (Object.keys(errors).length > 0) {
348
+ result.errors = errors;
349
+ }
350
+ return result;
351
+ }
352
+ /**
353
+ * Invalidate all cached data.
354
+ */
355
+ invalidate() {
356
+ this.prCache = null;
357
+ this.issueCache = null;
358
+ }
359
+ // ===========================================================================
360
+ // Private cache helpers
361
+ // ===========================================================================
362
+ async fetchPRsCached(cwd) {
363
+ const now = Date.now();
364
+ if (this.prCache && (now - this.prCache.fetchedAt) < this.TTL) {
365
+ return this.prCache.data;
366
+ }
367
+ const data = await fetchPRList(cwd);
368
+ if (data !== null) {
369
+ this.prCache = { data, fetchedAt: now };
370
+ }
371
+ return data;
372
+ }
373
+ async fetchIssuesCached(cwd) {
374
+ const now = Date.now();
375
+ if (this.issueCache && (now - this.issueCache.fetchedAt) < this.TTL) {
376
+ return this.issueCache.data;
377
+ }
378
+ const data = await fetchIssueList(cwd);
379
+ if (data !== null) {
380
+ this.issueCache = { data, fetchedAt: now };
381
+ }
382
+ return data;
383
+ }
384
+ }
385
+ //# sourceMappingURL=overview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/overview.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@
5
5
  * Contains: instance discovery (getInstances), launch/stop lifecycle,
6
6
  * known workspace registration, and directory suggestion autocomplete.
7
7
  */
8
- import type { GateStatus } from '../utils/gate-status.js';
9
8
  import type { TerminalManager } from '../../terminal/pty-manager.js';
10
9
  import type { SessionManager } from '../../terminal/session-manager.js';
11
10
  import type { WorkspaceTerminals, TerminalEntry, InstanceStatus } from './tower-types.js';
@@ -23,10 +22,9 @@ export interface InstanceDeps {
23
22
  deleteTerminalSession: (id: string) => void;
24
23
  /** Delete all terminal session rows for a workspace */
25
24
  deleteWorkspaceTerminalSessions: (workspacePath: string) => void;
26
- /** Get terminal list + gate status for a workspace (stays in tower-server.ts until Phase 4) */
25
+ /** Get terminal list for a workspace */
27
26
  getTerminalsForWorkspace: (workspacePath: string, proxyUrl: string) => Promise<{
28
27
  terminals: TerminalEntry[];
29
- gateStatus: GateStatus;
30
28
  }>;
31
29
  }
32
30
  /** Initialize the instances module with dependencies. */
@@ -1 +1 @@
1
- {"version":3,"file":"tower-instances.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-instances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tower-instances.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-instances.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAY1F,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACpD,kBAAkB,EAAE,MAAM,eAAe,CAAC;IAC1C,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,0DAA0D;IAC1D,0BAA0B,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,kBAAkB,CAAC;IAC1E,+CAA+C;IAC/C,mBAAmB,EAAE,CACnB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,EAC1E,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EACzC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,KAC3F,IAAI,CAAC;IACV,gDAAgD;IAChD,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,uDAAuD;IACvD,+BAA+B,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,wCAAwC;IACxC,wBAAwB,EAAE,CACxB,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KACpC,OAAO,CAAC;QAAE,SAAS,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC,CAAC;CAC9C;AAYD,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAEtD;AAED,sCAAsC;AACtC,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAWlE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAiCjD;AAMD;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAiE9D;AAMD;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,EAAE,CAAC,CAqElH;AAMD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAmK5H;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY7G;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA+D1H"}
@@ -8,9 +8,12 @@
8
8
  import fs from 'node:fs';
9
9
  import path from 'node:path';
10
10
  import crypto from 'node:crypto';
11
- import { execSync } from 'node:child_process';
11
+ import { exec } from 'node:child_process';
12
+ import { promisify } from 'node:util';
12
13
  import { homedir } from 'node:os';
14
+ const execAsync = promisify(exec);
13
15
  import { getGlobalDb } from '../db/index.js';
16
+ import { defaultSessionOptions } from '../../terminal/index.js';
14
17
  import { getWorkspaceName, isTempDirectory, buildArchitectArgs, } from './tower-utils.js';
15
18
  // ============================================================================
16
19
  // Module-private state
@@ -122,9 +125,9 @@ export async function getInstances() {
122
125
  // Encode workspace path for proxy URL
123
126
  const encodedPath = Buffer.from(workspacePath).toString('base64url');
124
127
  const proxyUrl = `/workspace/${encodedPath}/`;
125
- // Get terminals and gate status from tower's registry
128
+ // Get terminals from tower's registry
126
129
  // Phase 4 (Spec 0090): Tower manages terminals directly - no separate dashboard server
127
- const { terminals, gateStatus } = await _deps.getTerminalsForWorkspace(workspacePath, proxyUrl);
130
+ const { terminals } = await _deps.getTerminalsForWorkspace(workspacePath, proxyUrl);
128
131
  // Workspace is active if it has any terminals (Phase 4: no port check needed)
129
132
  const isActive = terminals.length > 0;
130
133
  instances.push({
@@ -134,7 +137,6 @@ export async function getInstances() {
134
137
  proxyUrl,
135
138
  architectUrl: `${proxyUrl}?tab=architect`,
136
139
  terminals,
137
- gateStatus,
138
140
  lastUsed: lastLaunchedMap.get(workspacePath),
139
141
  });
140
142
  }
@@ -239,9 +241,8 @@ export async function launchInstance(workspacePath) {
239
241
  if (!fs.existsSync(codevDir)) {
240
242
  try {
241
243
  // Run codev adopt --yes to set up the workspace
242
- execSync('npx codev adopt --yes', {
244
+ await execAsync('npx codev adopt --yes', {
243
245
  cwd: workspacePath,
244
- stdio: 'pipe',
245
246
  timeout: 30000,
246
247
  });
247
248
  adopted = true;
@@ -297,11 +298,7 @@ export async function launchInstance(workspacePath) {
297
298
  args: cmdArgs,
298
299
  cwd: workspacePath,
299
300
  env: cleanEnv,
300
- cols: 200,
301
- rows: 50,
302
- restartOnExit: true,
303
- restartDelay: 2000,
304
- maxRestarts: 50,
301
+ ...defaultSessionOptions({ restartOnExit: true, restartDelay: 2000, maxRestarts: 50 }),
305
302
  });
306
303
  // Get replay data and shellper info
307
304
  const replayData = client.getReplayData() ?? Buffer.alloc(0);
@@ -319,13 +316,13 @@ export async function launchInstance(workspacePath) {
319
316
  _deps.saveTerminalSession(session.id, resolvedPath, 'architect', null, shellperInfo.pid, shellperInfo.socketPath, shellperInfo.pid, shellperInfo.startTime);
320
317
  // Clean up cache/SQLite when the shellper session exits
321
318
  if (ptySession) {
322
- ptySession.on('exit', () => {
319
+ ptySession.on('exit', (exitCode, signal) => {
323
320
  const currentEntry = _deps.getWorkspaceTerminalsEntry(resolvedPath);
324
321
  if (currentEntry.architect === session.id) {
325
322
  currentEntry.architect = undefined;
326
323
  }
327
324
  _deps.deleteTerminalSession(session.id);
328
- _deps.log('INFO', `Architect shellper session exited for ${workspacePath}`);
325
+ _deps.log('INFO', `Architect shellper session exited for ${workspacePath} (code=${exitCode ?? null}, signal=${signal ?? null})`);
329
326
  });
330
327
  }
331
328
  shellperCreated = true;
@@ -1 +1 @@
1
- {"version":3,"file":"tower-instances.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-instances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tower-instances.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-instances.ts"],"names":[],"mappings":"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"}