@cluesmith/codev 3.3.5 → 3.3.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 (231) hide show
  1. package/dashboard-dist/assets/{index-r3bZzLmX.css → index-BjcqV9Vv.css} +1 -1
  2. package/dashboard-dist/assets/{index-BuflRUi6.js → index-b7GnZV2i.js} +55 -55
  3. package/dashboard-dist/assets/index-b7GnZV2i.js.map +1 -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 +50 -17
  7. package/dist/agent-farm/cli.js.map +1 -1
  8. package/dist/agent-farm/commands/architect.d.ts.map +1 -1
  9. package/dist/agent-farm/commands/architect.js +5 -1
  10. package/dist/agent-farm/commands/architect.js.map +1 -1
  11. package/dist/agent-farm/commands/attach.d.ts +1 -1
  12. package/dist/agent-farm/commands/attach.d.ts.map +1 -1
  13. package/dist/agent-farm/commands/cleanup.d.ts +1 -1
  14. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
  15. package/dist/agent-farm/commands/cleanup.js +2 -1
  16. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  17. package/dist/agent-farm/commands/decisions.d.ts +25 -0
  18. package/dist/agent-farm/commands/decisions.d.ts.map +1 -0
  19. package/dist/agent-farm/commands/decisions.js +54 -0
  20. package/dist/agent-farm/commands/decisions.js.map +1 -0
  21. package/dist/agent-farm/commands/ide.d.ts +32 -3
  22. package/dist/agent-farm/commands/ide.d.ts.map +1 -1
  23. package/dist/agent-farm/commands/ide.js +180 -19
  24. package/dist/agent-farm/commands/ide.js.map +1 -1
  25. package/dist/agent-farm/commands/reset/context.d.ts +4 -2
  26. package/dist/agent-farm/commands/reset/context.d.ts.map +1 -1
  27. package/dist/agent-farm/commands/reset/context.js +12 -4
  28. package/dist/agent-farm/commands/reset/context.js.map +1 -1
  29. package/dist/agent-farm/commands/send.d.ts.map +1 -1
  30. package/dist/agent-farm/commands/send.js +13 -18
  31. package/dist/agent-farm/commands/send.js.map +1 -1
  32. package/dist/agent-farm/commands/spawn-worktree.d.ts +7 -0
  33. package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
  34. package/dist/agent-farm/commands/spawn-worktree.js +51 -18
  35. package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
  36. package/dist/agent-farm/commands/spawn.d.ts +17 -0
  37. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  38. package/dist/agent-farm/commands/spawn.js +41 -19
  39. package/dist/agent-farm/commands/spawn.js.map +1 -1
  40. package/dist/agent-farm/lib/builder-lookup.d.ts +3 -2
  41. package/dist/agent-farm/lib/builder-lookup.d.ts.map +1 -1
  42. package/dist/agent-farm/lib/builder-lookup.js +24 -9
  43. package/dist/agent-farm/lib/builder-lookup.js.map +1 -1
  44. package/dist/agent-farm/lib/ide-extensions.d.ts +82 -0
  45. package/dist/agent-farm/lib/ide-extensions.d.ts.map +1 -0
  46. package/dist/agent-farm/lib/ide-extensions.js +179 -0
  47. package/dist/agent-farm/lib/ide-extensions.js.map +1 -0
  48. package/dist/agent-farm/lib/ide-record.d.ts +6 -1
  49. package/dist/agent-farm/lib/ide-record.d.ts.map +1 -1
  50. package/dist/agent-farm/lib/ide-record.js +8 -1
  51. package/dist/agent-farm/lib/ide-record.js.map +1 -1
  52. package/dist/agent-farm/lib/ide-version.d.ts +97 -0
  53. package/dist/agent-farm/lib/ide-version.d.ts.map +1 -0
  54. package/dist/agent-farm/lib/ide-version.js +224 -0
  55. package/dist/agent-farm/lib/ide-version.js.map +1 -0
  56. package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
  57. package/dist/agent-farm/lib/tunnel-client.js +7 -3
  58. package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
  59. package/dist/agent-farm/servers/agent-state/broadcast.d.ts +19 -0
  60. package/dist/agent-farm/servers/agent-state/broadcast.d.ts.map +1 -0
  61. package/dist/agent-farm/servers/agent-state/broadcast.js +30 -0
  62. package/dist/agent-farm/servers/agent-state/broadcast.js.map +1 -0
  63. package/dist/agent-farm/servers/agent-state/identity.d.ts +50 -0
  64. package/dist/agent-farm/servers/agent-state/identity.d.ts.map +1 -0
  65. package/dist/agent-farm/servers/agent-state/identity.js +120 -0
  66. package/dist/agent-farm/servers/agent-state/identity.js.map +1 -0
  67. package/dist/agent-farm/servers/agent-state/liveness.d.ts +107 -0
  68. package/dist/agent-farm/servers/agent-state/liveness.d.ts.map +1 -0
  69. package/dist/agent-farm/servers/agent-state/liveness.js +224 -0
  70. package/dist/agent-farm/servers/agent-state/liveness.js.map +1 -0
  71. package/dist/agent-farm/servers/agent-state/route.d.ts +38 -0
  72. package/dist/agent-farm/servers/agent-state/route.d.ts.map +1 -0
  73. package/dist/agent-farm/servers/agent-state/route.js +170 -0
  74. package/dist/agent-farm/servers/agent-state/route.js.map +1 -0
  75. package/dist/agent-farm/servers/agent-state/serve.d.ts +31 -0
  76. package/dist/agent-farm/servers/agent-state/serve.d.ts.map +1 -0
  77. package/dist/agent-farm/servers/agent-state/serve.js +49 -0
  78. package/dist/agent-farm/servers/agent-state/serve.js.map +1 -0
  79. package/dist/agent-farm/servers/agent-state/store.d.ts +76 -0
  80. package/dist/agent-farm/servers/agent-state/store.d.ts.map +1 -0
  81. package/dist/agent-farm/servers/agent-state/store.js +157 -0
  82. package/dist/agent-farm/servers/agent-state/store.js.map +1 -0
  83. package/dist/agent-farm/servers/decisions/parse.d.ts.map +1 -1
  84. package/dist/agent-farm/servers/decisions/parse.js +45 -15
  85. package/dist/agent-farm/servers/decisions/parse.js.map +1 -1
  86. package/dist/agent-farm/servers/decisions/stamp.d.ts +6 -2
  87. package/dist/agent-farm/servers/decisions/stamp.d.ts.map +1 -1
  88. package/dist/agent-farm/servers/decisions/stamp.js +53 -29
  89. package/dist/agent-farm/servers/decisions/stamp.js.map +1 -1
  90. package/dist/agent-farm/servers/decisions/template.d.ts +2 -0
  91. package/dist/agent-farm/servers/decisions/template.d.ts.map +1 -0
  92. package/dist/agent-farm/servers/decisions/template.js +15 -0
  93. package/dist/agent-farm/servers/decisions/template.js.map +1 -0
  94. package/dist/agent-farm/servers/ide-server.d.ts +28 -8
  95. package/dist/agent-farm/servers/ide-server.d.ts.map +1 -1
  96. package/dist/agent-farm/servers/ide-server.js +147 -50
  97. package/dist/agent-farm/servers/ide-server.js.map +1 -1
  98. package/dist/agent-farm/servers/overview.d.ts +27 -1
  99. package/dist/agent-farm/servers/overview.d.ts.map +1 -1
  100. package/dist/agent-farm/servers/overview.js +184 -31
  101. package/dist/agent-farm/servers/overview.js.map +1 -1
  102. package/dist/agent-farm/servers/tower-instances.d.ts +14 -1
  103. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
  104. package/dist/agent-farm/servers/tower-instances.js +51 -9
  105. package/dist/agent-farm/servers/tower-instances.js.map +1 -1
  106. package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
  107. package/dist/agent-farm/servers/tower-routes.js +50 -9
  108. package/dist/agent-farm/servers/tower-routes.js.map +1 -1
  109. package/dist/agent-farm/servers/tower-server.js +35 -1
  110. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  111. package/dist/agent-farm/servers/tower-terminals.d.ts +25 -0
  112. package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
  113. package/dist/agent-farm/servers/tower-terminals.js +128 -4
  114. package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
  115. package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
  116. package/dist/agent-farm/servers/tower-utils.js +18 -5
  117. package/dist/agent-farm/servers/tower-utils.js.map +1 -1
  118. package/dist/agent-farm/utils/builder-worktree-identity.d.ts +39 -0
  119. package/dist/agent-farm/utils/builder-worktree-identity.d.ts.map +1 -0
  120. package/dist/agent-farm/utils/builder-worktree-identity.js +42 -0
  121. package/dist/agent-farm/utils/builder-worktree-identity.js.map +1 -0
  122. package/dist/agent-farm/utils/harness.d.ts +71 -0
  123. package/dist/agent-farm/utils/harness.d.ts.map +1 -1
  124. package/dist/agent-farm/utils/harness.js +153 -0
  125. package/dist/agent-farm/utils/harness.js.map +1 -1
  126. package/dist/agent-farm/utils/lifecycle-reporter.d.ts +79 -0
  127. package/dist/agent-farm/utils/lifecycle-reporter.d.ts.map +1 -0
  128. package/dist/agent-farm/utils/lifecycle-reporter.js +347 -0
  129. package/dist/agent-farm/utils/lifecycle-reporter.js.map +1 -0
  130. package/dist/cli.d.ts.map +1 -1
  131. package/dist/cli.js +17 -0
  132. package/dist/cli.js.map +1 -1
  133. package/dist/commands/adopt.d.ts +16 -2
  134. package/dist/commands/adopt.d.ts.map +1 -1
  135. package/dist/commands/adopt.js +67 -23
  136. package/dist/commands/adopt.js.map +1 -1
  137. package/dist/commands/bootstrap-docs.d.ts +132 -0
  138. package/dist/commands/bootstrap-docs.d.ts.map +1 -0
  139. package/dist/commands/bootstrap-docs.js +725 -0
  140. package/dist/commands/bootstrap-docs.js.map +1 -0
  141. package/dist/commands/consult/index.d.ts.map +1 -1
  142. package/dist/commands/consult/index.js +14 -1
  143. package/dist/commands/consult/index.js.map +1 -1
  144. package/dist/commands/consult/tree-tripwire.d.ts +2 -75
  145. package/dist/commands/consult/tree-tripwire.d.ts.map +1 -1
  146. package/dist/commands/consult/tree-tripwire.js +7 -184
  147. package/dist/commands/consult/tree-tripwire.js.map +1 -1
  148. package/dist/commands/doctor.d.ts.map +1 -1
  149. package/dist/commands/doctor.js +36 -4
  150. package/dist/commands/doctor.js.map +1 -1
  151. package/dist/commands/porch/state.d.ts +0 -4
  152. package/dist/commands/porch/state.d.ts.map +1 -1
  153. package/dist/commands/porch/state.js +23 -10
  154. package/dist/commands/porch/state.js.map +1 -1
  155. package/dist/commands/update.d.ts +5 -1
  156. package/dist/commands/update.d.ts.map +1 -1
  157. package/dist/commands/update.js +73 -18
  158. package/dist/commands/update.js.map +1 -1
  159. package/dist/lib/agent-env.d.ts +22 -1
  160. package/dist/lib/agent-env.d.ts.map +1 -1
  161. package/dist/lib/agent-env.js +27 -1
  162. package/dist/lib/agent-env.js.map +1 -1
  163. package/dist/lib/agent-process.d.ts +23 -0
  164. package/dist/lib/agent-process.d.ts.map +1 -0
  165. package/dist/lib/agent-process.js +24 -0
  166. package/dist/lib/agent-process.js.map +1 -0
  167. package/dist/lib/forge-contracts.d.ts +9 -3
  168. package/dist/lib/forge-contracts.d.ts.map +1 -1
  169. package/dist/lib/forge-contracts.js.map +1 -1
  170. package/dist/lib/forge.d.ts +8 -5
  171. package/dist/lib/forge.d.ts.map +1 -1
  172. package/dist/lib/forge.js +57 -1
  173. package/dist/lib/forge.js.map +1 -1
  174. package/dist/lib/github.d.ts.map +1 -1
  175. package/dist/lib/github.js +38 -0
  176. package/dist/lib/github.js.map +1 -1
  177. package/dist/lib/governance-bootstrap.d.ts +155 -0
  178. package/dist/lib/governance-bootstrap.d.ts.map +1 -0
  179. package/dist/lib/governance-bootstrap.js +469 -0
  180. package/dist/lib/governance-bootstrap.js.map +1 -0
  181. package/dist/lib/issue-id.d.ts +34 -0
  182. package/dist/lib/issue-id.d.ts.map +1 -0
  183. package/dist/lib/issue-id.js +61 -0
  184. package/dist/lib/issue-id.js.map +1 -0
  185. package/dist/lib/scaffold.d.ts +4 -0
  186. package/dist/lib/scaffold.d.ts.map +1 -1
  187. package/dist/lib/scaffold.js +29 -5
  188. package/dist/lib/scaffold.js.map +1 -1
  189. package/dist/lib/shipped-skill-hashes.d.ts +10 -0
  190. package/dist/lib/shipped-skill-hashes.d.ts.map +1 -0
  191. package/dist/lib/shipped-skill-hashes.js +197 -0
  192. package/dist/lib/shipped-skill-hashes.js.map +1 -0
  193. package/dist/lib/skill-refresh.d.ts +90 -0
  194. package/dist/lib/skill-refresh.d.ts.map +1 -0
  195. package/dist/lib/skill-refresh.js +267 -0
  196. package/dist/lib/skill-refresh.js.map +1 -0
  197. package/dist/lib/tree-snapshot.d.ts +172 -0
  198. package/dist/lib/tree-snapshot.d.ts.map +1 -0
  199. package/dist/lib/tree-snapshot.js +393 -0
  200. package/dist/lib/tree-snapshot.js.map +1 -0
  201. package/dist/terminal/pty-session.d.ts +5 -0
  202. package/dist/terminal/pty-session.d.ts.map +1 -1
  203. package/dist/terminal/pty-session.js +7 -0
  204. package/dist/terminal/pty-session.js.map +1 -1
  205. package/ide-extension/codev-vscode.vsix +0 -0
  206. package/ide-extension/manifest.json +7 -0
  207. package/package.json +8 -6
  208. package/scripts/forge/jira/_lib.sh +113 -0
  209. package/scripts/forge/jira/auth-status.sh +29 -0
  210. package/scripts/forge/jira/issue-comment.sh +23 -0
  211. package/scripts/forge/jira/issue-list.sh +32 -0
  212. package/scripts/forge/jira/issue-search.sh +40 -0
  213. package/scripts/forge/jira/issue-view.sh +41 -0
  214. package/scripts/forge/jira/recently-closed.sh +81 -0
  215. package/scripts/forge/jira/user-identity.sh +18 -0
  216. package/skeleton/.claude/skills/afx/SKILL.md +36 -0
  217. package/skeleton/.claude/skills/codev/SKILL.md +18 -2
  218. package/skeleton/.claude/skills/update-arch-docs/SKILL.md +28 -2
  219. package/skeleton/.codex/skills/afx/SKILL.md +36 -0
  220. package/skeleton/.codex/skills/codev/SKILL.md +18 -2
  221. package/skeleton/.codex/skills/update-arch-docs/SKILL.md +28 -2
  222. package/skeleton/resources/commands/agent-farm.md +112 -0
  223. package/skeleton/resources/commands/codev.md +47 -0
  224. package/skeleton/resources/commands/overview.md +1 -0
  225. package/skeleton/resources/decision-protocol.md +215 -0
  226. package/skeleton/resources/workflow-reference.md +12 -0
  227. package/skeleton/roles/architect.md +6 -0
  228. package/skeleton/templates/bootstrap-docs-prompt.md +16 -0
  229. package/skeleton/templates/bootstrap-docs-review-prompt.md +19 -0
  230. package/skeleton/templates/cheatsheet.md +1 -0
  231. package/dashboard-dist/assets/index-BuflRUi6.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ // The decisions file a workspace starts from (Issue #1840). `afx decisions init` writes
2
+ // it; section 4 of resources/decision-protocol.md shows it, and a test pins the two equal.
3
+ export const DECISIONS_FILE_TEMPLATE = `# Pending owner decisions — all architects (hub: main)
4
+
5
+ Rule inline: one word on the line under an item's **Your word:** line, or in the Decisions tab.
6
+ Newest first. Only main edits this file; architects send items with \`afx send architect:main 'DECISION …'\`.
7
+
8
+ _Status: 0 open._
9
+ _Zone: UTC_
10
+
11
+ ## Open
12
+
13
+ ## Ruled
14
+ `;
15
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/agent-farm/servers/decisions/template.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,2FAA2F;AAE3F,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;CAWtC,CAAC"}
@@ -7,10 +7,18 @@
7
7
  * Runtime state lives in the `~/.agent-farm/ide-server.json` record (Issue
8
8
  * #1668 §D3) — no config file, no `global.db` change. Liveness is discovered by
9
9
  * port (`getProcessesOnPort`), the same way Tower finds its own process.
10
+ *
11
+ * Every spawn runs a preflight first (Spec 1789): the server version floor and
12
+ * the embedded sidebar install into the Tower-owned extensions directory. The
13
+ * preflight throws before anything is stopped, replaced or recorded, so a
14
+ * refused start leaves a live server and its record untouched. Lifecycle
15
+ * operations are serialized by `withIdeLock`, taken only at the entry points
16
+ * (`spawnIdeServer`, `stopIdeServer`, the respawn in `ensureIdeServerLive`);
17
+ * the unlocked bodies call each other freely, so the nesting cannot deadlock.
10
18
  */
11
19
  import http from 'node:http';
12
20
  import { type IdeServerRecord } from '../lib/ide-record.js';
13
- type LogFn = (level: 'INFO' | 'ERROR' | 'WARN', message: string) => void;
21
+ import { type LogFn } from '../lib/ide-version.js';
14
22
  /**
15
23
  * The recorded IDE server port, or null if none — the forward's hot-path target
16
24
  * resolution. A plain record read, no port scan (Issue #1668): a dead server
@@ -21,18 +29,31 @@ export declare function getRecordedIdePort(): number | null;
21
29
  export interface SpawnIdeOptions {
22
30
  serverPath: string;
23
31
  port?: number;
24
- defaultFolder?: string;
32
+ }
33
+ export interface SpawnIdeResult {
34
+ record: IdeServerRecord;
35
+ /**
36
+ * True when an already-live server was adopted that is not running what
37
+ * this start asked for: the sidebar just changed, the recorded server path,
38
+ * sidebar version or extensions directory differs from the current one
39
+ * (including a legacy record with neither), or its launch arguments are
40
+ * unknown (no prior record). The live server is never killed; the user
41
+ * restarts it.
42
+ */
43
+ restartRequired: boolean;
25
44
  }
26
45
  /**
27
46
  * Spawn the IDE server detached (so it survives a Tower restart, like a
28
- * shellper) and write the runtime record. Resolves to the record once the
29
- * server is listening, or throws if the binary is missing or never binds.
47
+ * shellper) and write the runtime record. Resolves once the server is
48
+ * listening, or throws if the binary is missing, fails the preflight, or never
49
+ * binds. Serialized with every other lifecycle operation.
30
50
  */
31
- export declare function spawnIdeServer(opts: SpawnIdeOptions, log: LogFn): Promise<IdeServerRecord>;
51
+ export declare function spawnIdeServer(opts: SpawnIdeOptions, log: LogFn): Promise<SpawnIdeResult>;
32
52
  /**
33
53
  * Stop the IDE server on the recorded port: SIGTERM, wait for exit, escalate to
34
54
  * SIGKILL for survivors (mirrors `towerStop`, #1668 plan §4), then delete the
35
- * record. Cold path — `getProcessesOnPort` is fine here.
55
+ * record. Cold path — `getProcessesOnPort` is fine here. Serialized with every
56
+ * other lifecycle operation.
36
57
  */
37
58
  export declare function stopIdeServer(log: LogFn): Promise<{
38
59
  stopped: boolean;
@@ -59,10 +80,9 @@ export declare function ensureIdeServerLive(log?: LogFn): Promise<number | null>
59
80
  export declare function reconcileIdeServer(log: LogFn): Promise<void>;
60
81
  /**
61
82
  * Local-only `/api/ide` management endpoint driving the lifecycle above:
62
- * `POST` starts (body `{ serverPath, port?, defaultFolder? }`), `DELETE` stops,
83
+ * `POST` starts (body `{ serverPath, port? }`), `DELETE` stops,
63
84
  * `GET` reports status. Reached only post-`isRequestAllowed` (key required) and
64
85
  * blocked from the tunnel like `/api/tunnel/*` — it spawns/kills a process.
65
86
  */
66
87
  export declare function handleIdeApi(req: http.IncomingMessage, res: http.ServerResponse, log: LogFn): Promise<void>;
67
- export {};
68
88
  //# sourceMappingURL=ide-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ide-server.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/ide-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAM7B,OAAO,EAGL,KAAK,eAAe,EAMrB,MAAM,sBAAsB,CAAC;AAE9B,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AA4BzE;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAElD;AAYD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,CA6EhG;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAkClG;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,IAAI,SAAS,CAK3C;AAKD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,GAAE,KAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsBvF;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlE;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
1
+ {"version":3,"file":"ide-server.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/ide-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,OAAO,EAGL,KAAK,eAAe,EAMrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,KAAK,EAGX,MAAM,uBAAuB,CAAC;AA2B/B;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAElD;AAwBD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB;;;;;;;OAOG;IACH,eAAe,EAAE,OAAO,CAAC;CAC1B;AA4BD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAEzF;AAoID;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAE5F;AAsCD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,IAAI,SAAS,CAK3C;AAKD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,GAAE,KAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUvF;AAwBD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlE;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
@@ -7,16 +7,23 @@
7
7
  * Runtime state lives in the `~/.agent-farm/ide-server.json` record (Issue
8
8
  * #1668 §D3) — no config file, no `global.db` change. Liveness is discovered by
9
9
  * port (`getProcessesOnPort`), the same way Tower finds its own process.
10
+ *
11
+ * Every spawn runs a preflight first (Spec 1789): the server version floor and
12
+ * the embedded sidebar install into the Tower-owned extensions directory. The
13
+ * preflight throws before anything is stopped, replaced or recorded, so a
14
+ * refused start leaves a live server and its record untouched. Lifecycle
15
+ * operations are serialized by `withIdeLock`, taken only at the entry points
16
+ * (`spawnIdeServer`, `stopIdeServer`, the respawn in `ensureIdeServerLive`);
17
+ * the unlocked bodies call each other freely, so the nesting cannot deadlock.
10
18
  */
11
19
  import { spawn } from 'node:child_process';
12
20
  import { existsSync } from 'node:fs';
13
21
  import { getProcessesOnPort } from '../utils/port.js';
14
- import { sanitizeAgentEnv } from '../../lib/agent-env.js';
15
22
  import { parseJsonBody } from '../utils/server-utils.js';
16
23
  import { IDE_DEFAULT_PREFIX, IDE_DEFAULT_PORT, readIdeRecord, writeIdeRecord, deleteIdeRecord, ensureIdeConnectionToken, getIdeConnectionTokenPath, } from '../lib/ide-record.js';
17
- const READY_TIMEOUT_MS = 15_000;
24
+ import { IDE_READY_TIMEOUT_MS, IDE_STOP_EXIT_TIMEOUT_MS, buildIdeServerEnv, checkIdeServerVersion, } from '../lib/ide-version.js';
25
+ import { ensureSidebarInstalled, getIdeExtensionsDir } from '../lib/ide-extensions.js';
18
26
  const READY_POLL_MS = 200;
19
- const STOP_EXIT_TIMEOUT_MS = 5_000;
20
27
  const STOP_POLL_MS = 200;
21
28
  /**
22
29
  * True if some process is listening on the port. Uses `lsof` (`getProcessesOnPort`),
@@ -57,12 +64,43 @@ async function waitForPort(port, timeoutMs) {
57
64
  }
58
65
  return isPortLive(port);
59
66
  }
67
+ /**
68
+ * Tail of the lifecycle lock: a non-reentrant promise chain. Taken only at the
69
+ * entry points, never inside the unlocked bodies.
70
+ */
71
+ let ideLockTail = Promise.resolve();
72
+ function withIdeLock(fn) {
73
+ const run = ideLockTail.then(fn);
74
+ ideLockTail = run.catch(() => { });
75
+ return run;
76
+ }
77
+ /**
78
+ * Version floor, then the sidebar install (which validates or creates the
79
+ * extensions directory first). Throws before any side effect on the server or
80
+ * the record. A missing embedded sidebar only warns: the server still gets
81
+ * `--extensions-dir`.
82
+ */
83
+ async function runIdePreflight(serverPath, log) {
84
+ const { version } = await checkIdeServerVersion(serverPath);
85
+ const extensionsDir = getIdeExtensionsDir();
86
+ const sidebar = await ensureSidebarInstalled(serverPath, { extensionsDir, log });
87
+ return {
88
+ serverVersion: version,
89
+ extensionsDir,
90
+ sidebarVersion: sidebar.version,
91
+ sidebarChanged: sidebar.outcome === 'installed',
92
+ };
93
+ }
60
94
  /**
61
95
  * Spawn the IDE server detached (so it survives a Tower restart, like a
62
- * shellper) and write the runtime record. Resolves to the record once the
63
- * server is listening, or throws if the binary is missing or never binds.
96
+ * shellper) and write the runtime record. Resolves once the server is
97
+ * listening, or throws if the binary is missing, fails the preflight, or never
98
+ * binds. Serialized with every other lifecycle operation.
64
99
  */
65
- export async function spawnIdeServer(opts, log) {
100
+ export function spawnIdeServer(opts, log) {
101
+ return withIdeLock(() => spawnIdeServerUnlocked(opts, log));
102
+ }
103
+ async function spawnIdeServerUnlocked(opts, log) {
66
104
  const port = opts.port ?? IDE_DEFAULT_PORT;
67
105
  if (!opts.serverPath) {
68
106
  throw new Error('IDE server path is required (no default — set --server-path)');
@@ -70,28 +108,20 @@ export async function spawnIdeServer(opts, log) {
70
108
  if (!existsSync(opts.serverPath)) {
71
109
  throw new Error(`IDE server binary not found at ${opts.serverPath}`);
72
110
  }
111
+ // Before anything is stopped or replaced: a refused server or a failed
112
+ // install must leave the current server and its record exactly as they are.
113
+ const preflight = await runIdePreflight(opts.serverPath, log);
73
114
  // Start-collision: a prior server recorded on a DIFFERENT port would be orphaned
74
115
  // (still running, no longer tracked) if we just overwrote the singleton record.
75
116
  // Stop it first so "start on a new port" never leaves a detached stray (#1668).
76
117
  const existing = readIdeRecord();
77
118
  if (existing && existing.port !== port && isPortLive(existing.port)) {
78
119
  log('WARN', `IDE server already recorded on port ${existing.port}; stopping it before starting on ${port}`);
79
- await stopIdeServer(log);
120
+ await stopIdeServerUnlocked(log);
80
121
  }
81
- // Already live on the port — idempotent: adopt and record, don't double-spawn.
122
+ // Already live on the port: idempotent, adopt and record, never kill or double-spawn.
82
123
  if (isPortLive(port)) {
83
- log('INFO', `IDE server already listening on port ${port}; adopting`);
84
- const pid = getProcessesOnPort(port)[0] ?? 0;
85
- const record = {
86
- prefix: IDE_DEFAULT_PREFIX,
87
- port,
88
- serverPath: opts.serverPath,
89
- pid,
90
- defaultFolder: opts.defaultFolder,
91
- startedAt: new Date().toISOString(),
92
- };
93
- writeIdeRecord(record);
94
- return record;
124
+ return adoptLiveIdeServer(opts, port, existing, preflight, log);
95
125
  }
96
126
  const basePath = IDE_DEFAULT_PREFIX.replace(/\/$/, ''); // "/ide"
97
127
  const tokenFile = getIdeConnectionTokenPath();
@@ -101,15 +131,13 @@ export async function spawnIdeServer(opts, log) {
101
131
  '--port', String(port),
102
132
  '--server-base-path', basePath,
103
133
  '--connection-token-file', tokenFile,
134
+ '--extensions-dir', preflight.extensionsDir,
104
135
  '--accept-server-license-terms',
105
136
  ];
106
- if (opts.defaultFolder) {
107
- args.push('--default-folder', opts.defaultFolder);
108
- }
109
- log('INFO', `Spawning IDE server: ${opts.serverPath} ${args.join(' ')}`);
137
+ log('INFO', `Spawning IDE server ${preflight.serverVersion}: ${opts.serverPath} ${args.join(' ')}`);
110
138
  const child = spawn(opts.serverPath, args, {
111
139
  cwd: process.cwd(),
112
- env: sanitizeAgentEnv(process.env),
140
+ env: buildIdeServerEnv(),
113
141
  detached: true,
114
142
  stdio: 'ignore',
115
143
  });
@@ -117,28 +145,88 @@ export async function spawnIdeServer(opts, log) {
117
145
  throw new Error('Failed to spawn IDE server process');
118
146
  }
119
147
  child.unref();
120
- const ready = await waitForPort(port, READY_TIMEOUT_MS);
148
+ const ready = await waitForPort(port, IDE_READY_TIMEOUT_MS);
121
149
  if (!ready) {
122
- throw new Error(`IDE server did not start listening on port ${port} within ${READY_TIMEOUT_MS / 1000}s`);
150
+ throw new Error(`IDE server did not start listening on port ${port} within ${IDE_READY_TIMEOUT_MS / 1000}s`);
123
151
  }
124
152
  const record = {
125
153
  prefix: IDE_DEFAULT_PREFIX,
126
154
  port,
127
155
  serverPath: opts.serverPath,
128
156
  pid: child.pid,
129
- defaultFolder: opts.defaultFolder,
130
157
  startedAt: new Date().toISOString(),
158
+ serverVersion: preflight.serverVersion,
159
+ extensionsDir: preflight.extensionsDir,
160
+ sidebarVersion: preflight.sidebarVersion ?? undefined,
131
161
  };
132
162
  writeIdeRecord(record);
133
163
  log('INFO', `IDE server listening on port ${port} (pid ${child.pid})`);
134
- return record;
164
+ return { record, restartRequired: false };
165
+ }
166
+ /**
167
+ * Record a server already listening on `port` without touching it. The record
168
+ * keeps what the live process was actually spawned with (the prior record's
169
+ * server path, version, extensions directory and sidebar; absent stays absent):
170
+ * the version just checked describes `opts.serverPath`, which need not be the
171
+ * binary the live process came from. With no prior record on that port the live
172
+ * binary is unknown, so the requested path is recorded and a restart is flagged.
173
+ */
174
+ function adoptLiveIdeServer(opts, port, existing, preflight, log) {
175
+ let prior = null;
176
+ if (existing && existing.port === port) {
177
+ prior = existing;
178
+ }
179
+ const restartRequired = prior === null || !liveServerIsCurrent(prior, opts.serverPath, preflight);
180
+ const record = {
181
+ prefix: IDE_DEFAULT_PREFIX,
182
+ port,
183
+ serverPath: prior?.serverPath ?? opts.serverPath,
184
+ pid: getProcessesOnPort(port)[0] ?? 0,
185
+ startedAt: prior?.startedAt ?? new Date().toISOString(),
186
+ serverVersion: prior?.serverVersion,
187
+ extensionsDir: prior?.extensionsDir,
188
+ sidebarVersion: prior?.sidebarVersion,
189
+ };
190
+ writeIdeRecord(record);
191
+ let note = '';
192
+ if (restartRequired) {
193
+ note = '; restart it to load the current Codev sidebar';
194
+ }
195
+ log('INFO', `IDE server already listening on port ${port}; adopted${note}`);
196
+ return { record, restartRequired };
197
+ }
198
+ /**
199
+ * True when the live server recorded in `prior` already runs what this start
200
+ * prepared: the same server binary at the same version, the same extensions
201
+ * directory and, when a sidebar is embedded, the same sidebar version. Compared
202
+ * against the record rather than this preflight's outcome, so a server left
203
+ * running after an earlier start upgraded the server (in place, as `npm i -g`
204
+ * does, or at a new path) or the sidebar is still reported stale on every later
205
+ * start. An unknown recorded version is not treated as stale on its own.
206
+ */
207
+ function liveServerIsCurrent(prior, serverPath, preflight) {
208
+ if (prior.serverPath !== serverPath)
209
+ return false;
210
+ if (prior.serverVersion !== undefined && prior.serverVersion !== preflight.serverVersion)
211
+ return false;
212
+ if (preflight.sidebarChanged)
213
+ return false;
214
+ if (prior.extensionsDir !== preflight.extensionsDir)
215
+ return false;
216
+ if (preflight.sidebarVersion === null)
217
+ return true;
218
+ return prior.sidebarVersion === preflight.sidebarVersion;
135
219
  }
136
220
  /**
137
221
  * Stop the IDE server on the recorded port: SIGTERM, wait for exit, escalate to
138
222
  * SIGKILL for survivors (mirrors `towerStop`, #1668 plan §4), then delete the
139
- * record. Cold path — `getProcessesOnPort` is fine here.
223
+ * record. Cold path — `getProcessesOnPort` is fine here. Serialized with every
224
+ * other lifecycle operation.
140
225
  */
141
- export async function stopIdeServer(log) {
226
+ export function stopIdeServer(log) {
227
+ return withIdeLock(() => stopIdeServerUnlocked(log));
228
+ }
229
+ async function stopIdeServerUnlocked(log) {
142
230
  const record = readIdeRecord();
143
231
  if (!record) {
144
232
  return { stopped: false, port: null };
@@ -154,7 +242,7 @@ export async function stopIdeServer(log) {
154
242
  }
155
243
  // Wait for the SIGTERMed processes to actually exit before deleting the record;
156
244
  // escalate any survivors to SIGKILL, so a lingering process can't be re-adopted.
157
- const deadline = Date.now() + STOP_EXIT_TIMEOUT_MS;
245
+ const deadline = Date.now() + IDE_STOP_EXIT_TIMEOUT_MS;
158
246
  let survivors = pids.filter(isPidAlive);
159
247
  while (survivors.length > 0 && Date.now() < deadline) {
160
248
  await new Promise((r) => setTimeout(r, STOP_POLL_MS));
@@ -197,22 +285,32 @@ export async function ensureIdeServerLive(log = () => { }) {
197
285
  return record.port;
198
286
  if (respawnInFlight)
199
287
  return respawnInFlight;
200
- respawnInFlight = (async () => {
201
- try {
202
- log('INFO', `IDE server on port ${record.port} is down; respawning from ${record.serverPath}`);
203
- const fresh = await spawnIdeServer({ serverPath: record.serverPath, port: record.port, defaultFolder: record.defaultFolder }, log);
204
- return fresh.port;
205
- }
206
- catch (err) {
207
- log('WARN', `IDE server respawn failed: ${err.message}`);
208
- return null;
209
- }
210
- finally {
211
- respawnInFlight = null;
212
- }
213
- })();
288
+ respawnInFlight = withIdeLock(() => respawnRecordedIdeServer(log)).finally(() => {
289
+ respawnInFlight = null;
290
+ });
214
291
  return respawnInFlight;
215
292
  }
293
+ /**
294
+ * The respawn body, run under the lock. It re-reads the record first: a start
295
+ * or stop queued ahead of it may have changed or removed the record, or
296
+ * already brought the server up.
297
+ */
298
+ async function respawnRecordedIdeServer(log) {
299
+ try {
300
+ const current = readIdeRecord();
301
+ if (!current)
302
+ return null;
303
+ if (isPortLive(current.port))
304
+ return current.port;
305
+ log('INFO', `IDE server on port ${current.port} is down; respawning from ${current.serverPath}`);
306
+ const fresh = await spawnIdeServerUnlocked({ serverPath: current.serverPath, port: current.port }, log);
307
+ return fresh.record.port;
308
+ }
309
+ catch (err) {
310
+ log('WARN', `IDE server respawn failed: ${err.message}`);
311
+ return null;
312
+ }
313
+ }
216
314
  /**
217
315
  * Boot-time reconcile: adopt a live server (no orphan) or respawn a recorded
218
316
  * but dead one. Best-effort — never throws into Tower boot.
@@ -229,7 +327,7 @@ export async function reconcileIdeServer(log) {
229
327
  }
230
328
  /**
231
329
  * Local-only `/api/ide` management endpoint driving the lifecycle above:
232
- * `POST` starts (body `{ serverPath, port?, defaultFolder? }`), `DELETE` stops,
330
+ * `POST` starts (body `{ serverPath, port? }`), `DELETE` stops,
233
331
  * `GET` reports status. Reached only post-`isRequestAllowed` (key required) and
234
332
  * blocked from the tunnel like `/api/tunnel/*` — it spawns/kills a process.
235
333
  */
@@ -258,16 +356,15 @@ export async function handleIdeApi(req, res, log) {
258
356
  }
259
357
  const serverPath = typeof body.serverPath === 'string' ? body.serverPath : '';
260
358
  const port = typeof body.port === 'number' ? body.port : undefined;
261
- const defaultFolder = typeof body.defaultFolder === 'string' ? body.defaultFolder : undefined;
262
359
  if (!serverPath) {
263
360
  res.writeHead(400, { 'Content-Type': 'application/json' });
264
361
  res.end(JSON.stringify({ error: 'serverPath is required' }));
265
362
  return;
266
363
  }
267
364
  try {
268
- const record = await spawnIdeServer({ serverPath, port, defaultFolder }, log);
365
+ const { record, restartRequired } = await spawnIdeServer({ serverPath, port }, log);
269
366
  res.writeHead(200, { 'Content-Type': 'application/json' });
270
- res.end(JSON.stringify({ ok: true, ...record }));
367
+ res.end(JSON.stringify({ ok: true, ...record, restartRequired }));
271
368
  }
272
369
  catch (err) {
273
370
  res.writeHead(500, { 'Content-Type': 'application/json' });
@@ -1 +1 @@
1
- {"version":3,"file":"ide-server.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/ide-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ide-server.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/ide-server.ts"],"names":[],"mappings":"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"}
@@ -112,6 +112,15 @@ export declare function derivePrReady(parsed: ParsedStatus): boolean;
112
112
  * any currently-pending gate wait (requested_at → now).
113
113
  */
114
114
  export declare function computeIdleMs(parsed: ParsedStatus): number;
115
+ /** What global.db records for a builder, by worktree path (#1740). */
116
+ export interface StoredBuilderIdentity {
117
+ /** The builder id, which is its terminal role id. */
118
+ roleId: string;
119
+ /** The issue it was spawned for, or null for task/protocol/worktree builders. */
120
+ issueNumber: string | null;
121
+ /** The architect that spawned it (Spec 823), or null. */
122
+ spawnedByArchitect: string | null;
123
+ }
115
124
  /**
116
125
  * Map a worktree directory name to its expected terminal role_id.
117
126
  * Must match what buildAgentName() produces during spawn so we can
@@ -126,7 +135,11 @@ export declare function computeIdleMs(parsed: ParsedStatus): number;
126
135
  * task-NAvW → "builder-task-navw"
127
136
  * worktree-foIg → "worktree-foig"
128
137
  * 0110-legacy → "builder-spir-110"
138
+ * pir-ENG-123-slug → "builder-pir-eng-123" (tracker key, #1740)
129
139
  * experiment-AbCd → "builder-experiment-abcd"
140
+ *
141
+ * This is the fallback: discoverBuilders prefers the builder id stored in
142
+ * global.db, which is the role id itself.
130
143
  */
131
144
  export declare function worktreeNameToRoleId(dirName: string): string | null;
132
145
  /**
@@ -136,10 +149,23 @@ export declare function worktreeNameToRoleId(dirName: string): string | null;
136
149
  * Returns the project dir prefix (to match `{ID}-*`) or null for soft-mode builders.
137
150
  */
138
151
  export declare function extractProjectIdFromWorktreeName(dirName: string): string | null;
152
+ /**
153
+ * A builder's lowercased role id: the stored builder id when it has the role-id
154
+ * shape, else the id derived from its worktree directory name; `null` when
155
+ * neither yields one. The one derivation shared by overview discovery and
156
+ * Tower's agent-state key (Spec 1595), so the two cannot diverge.
157
+ */
158
+ export declare function builderRoleId(storedId: string | undefined, worktreeDirName: string): string | null;
159
+ /**
160
+ * Read each builder's stored identity (builder id, issue) from global.db for
161
+ * this workspace, keyed by worktree path. Empty when the DB is missing or
162
+ * unreadable, so discovery falls back to parsing directory names.
163
+ */
164
+ export declare function loadStoredBuilderIdentities(workspaceRoot: string): Map<string, StoredBuilderIdentity>;
139
165
  /**
140
166
  * Discover builders by scanning .builders/ directory and reading status.yaml.
141
167
  */
142
- export declare function discoverBuilders(workspaceRoot: string): OverviewBuilder[];
168
+ export declare function discoverBuilders(workspaceRoot: string, stored?: ReadonlyMap<string, StoredBuilderIdentity>): OverviewBuilder[];
143
169
  /**
144
170
  * Count a builder's pending review-comments by reading its queue file
145
171
  * (`<worktree>/.codev/pending-comments.json`, the single source of truth the
@@ -1 +1 @@
1
- {"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/overview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/overview.ts"],"names":[],"mappings":"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"}