@rryando/arcs 5.2.0 → 5.2.1

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 (195) hide show
  1. package/README.md +29 -16
  2. package/dist/cli/commands/bundle.js +39 -0
  3. package/dist/cli/commands/bundle.js.map +1 -1
  4. package/dist/cli/commands/web.js +2 -2
  5. package/dist/cli/commands/web.js.map +1 -1
  6. package/dist/cli/config.d.ts +18 -0
  7. package/dist/cli/config.d.ts.map +1 -1
  8. package/dist/cli/config.js +46 -0
  9. package/dist/cli/config.js.map +1 -1
  10. package/dist/cli/setup.d.ts.map +1 -1
  11. package/dist/cli/setup.js +218 -35
  12. package/dist/cli/setup.js.map +1 -1
  13. package/dist/utils/json-schemas.d.ts +9 -9
  14. package/dist/utils/json-schemas.d.ts.map +1 -1
  15. package/dist/utils/json-schemas.js +1 -1
  16. package/dist/utils/json-schemas.js.map +1 -1
  17. package/dist/utils/run-transcript.d.ts +138 -0
  18. package/dist/utils/run-transcript.d.ts.map +1 -0
  19. package/dist/utils/run-transcript.js +146 -0
  20. package/dist/utils/run-transcript.js.map +1 -0
  21. package/dist/utils/storage-utils.d.ts +1 -1
  22. package/dist/utils/storage-utils.d.ts.map +1 -1
  23. package/dist/utils/storage-utils.js +1 -1
  24. package/dist/utils/storage-utils.js.map +1 -1
  25. package/dist/web-client/assets/{GraphCanvas-DvTmx2os.js → GraphCanvas-BgWF1rB_.js} +1 -1
  26. package/dist/web-client/assets/{MarkdownEditor-B8j_5lK7.js → MarkdownEditor-5buYPQ1d.js} +1 -1
  27. package/dist/web-client/assets/{abnfDiagram-VRR7QNED-DZ5c8NM5.js → abnfDiagram-VRR7QNED-AjQ08-zY.js} +1 -1
  28. package/dist/web-client/assets/architecture-TIHT7OUA-a3lTAuFS.js +1 -0
  29. package/dist/web-client/assets/{architectureDiagram-ZJ3FMSHR-DeNroB33.js → architectureDiagram-ZJ3FMSHR-CtW2pYEp.js} +1 -1
  30. package/dist/web-client/assets/{blockDiagram-677ZJIJ3-C92i1GHh.js → blockDiagram-677ZJIJ3-DE6HRcpA.js} +1 -1
  31. package/dist/web-client/assets/{c4Diagram-LMCZKHZV-BniYzyYJ.js → c4Diagram-LMCZKHZV-Rn6iQdUl.js} +1 -1
  32. package/dist/web-client/assets/channel-Rxk7gzWl.js +1 -0
  33. package/dist/web-client/assets/{chunk-32BRIVSS-DXA4fMwe.js → chunk-32BRIVSS-C4-ay_Qd.js} +1 -1
  34. package/dist/web-client/assets/{chunk-52WLFC77-DxLpDT5g.js → chunk-52WLFC77-Bib0DU0H.js} +1 -1
  35. package/dist/web-client/assets/{chunk-C7G6YPKG-DC22BvA6.js → chunk-C7G6YPKG-BLphnESE.js} +1 -1
  36. package/dist/web-client/assets/{chunk-EX3LRPZG-CP5bMsNz.js → chunk-EX3LRPZG-CzvkrPNM.js} +1 -1
  37. package/dist/web-client/assets/{chunk-FWX5IMBZ-CRhTkdyH.js → chunk-FWX5IMBZ-BFTR_OLz.js} +2 -2
  38. package/dist/web-client/assets/{chunk-HOUHSVGY-BL8xdKlN.js → chunk-HOUHSVGY-CZS3ExUR.js} +1 -1
  39. package/dist/web-client/assets/{chunk-ICXQ74PX-B7Ur00R9.js → chunk-ICXQ74PX-iWFpNZgv.js} +1 -1
  40. package/dist/web-client/assets/{chunk-MOJQB5TN-D9EnTuIj.js → chunk-MOJQB5TN-opEQCwVq.js} +1 -1
  41. package/dist/web-client/assets/{chunk-OGEWGWER-Dr-xsHrU.js → chunk-OGEWGWER-NCfmjyhi.js} +1 -1
  42. package/dist/web-client/assets/{chunk-PUDLZKDR-BIrspPOB.js → chunk-PUDLZKDR-D3_A--Z2.js} +1 -1
  43. package/dist/web-client/assets/{chunk-Q4XR5HBZ-Dfip_4XA.js → chunk-Q4XR5HBZ-D6s-qZLi.js} +1 -1
  44. package/dist/web-client/assets/{chunk-V7JOEXUC-CWqwzV_g.js → chunk-V7JOEXUC-DTqLR-bZ.js} +1 -1
  45. package/dist/web-client/assets/{chunk-VAUOI2AC-EosDVEFn.js → chunk-VAUOI2AC-Gsd0Itap.js} +1 -1
  46. package/dist/web-client/assets/{chunk-VR4S4FIN-DnMox7F5.js → chunk-VR4S4FIN-Cdo_MeDQ.js} +1 -1
  47. package/dist/web-client/assets/{chunk-WYO6CB5R-B3xja0Q5.js → chunk-WYO6CB5R-n7FhYrli.js} +1 -1
  48. package/dist/web-client/assets/{chunk-ZGVPDNZ5-BGoIOVsc.js → chunk-ZGVPDNZ5-DU1Jcue0.js} +1 -1
  49. package/dist/web-client/assets/classDiagram-OUVF2IWQ-BG5uYDvC.js +1 -0
  50. package/dist/web-client/assets/classDiagram-v2-EOCWNBFH-BG5uYDvC.js +1 -0
  51. package/dist/web-client/assets/{cynefin-VYW2F7L2-BlBnSViH.js → cynefin-VYW2F7L2-D-gD9LCO.js} +1 -1
  52. package/dist/web-client/assets/{cynefinDiagram-TSTJHNR4-jRcAddSh.js → cynefinDiagram-TSTJHNR4-BFGkcrNl.js} +1 -1
  53. package/dist/web-client/assets/{dagre-VKFMJZFB-D4elj7jV.js → dagre-VKFMJZFB-BUaC6fks.js} +1 -1
  54. package/dist/web-client/assets/{diagram-FQU43EPY-D7OKzbLh.js → diagram-FQU43EPY-Ckgu02XC.js} +1 -1
  55. package/dist/web-client/assets/{diagram-G47NLZAW-DBF9p-RV.js → diagram-G47NLZAW-BickHhmE.js} +1 -1
  56. package/dist/web-client/assets/{diagram-NH7WQ7WH-CpE02PRM.js → diagram-NH7WQ7WH-CoqgJpcU.js} +1 -1
  57. package/dist/web-client/assets/{diagram-OA4YK3LP-BdJ1lOcZ.js → diagram-OA4YK3LP-CTSZWqCe.js} +1 -1
  58. package/dist/web-client/assets/{diagram-WEI45ONY-BpPxpOcu.js → diagram-WEI45ONY-D7xd1naU.js} +1 -1
  59. package/dist/web-client/assets/{ebnfDiagram-CCIWWBDH-DLKdgImF.js → ebnfDiagram-CCIWWBDH-FESKYpKQ.js} +1 -1
  60. package/dist/web-client/assets/{erDiagram-Q63AITRT-c0bbf0vk.js → erDiagram-Q63AITRT-C-879ftU.js} +1 -1
  61. package/dist/web-client/assets/eventmodeling-45OFAUF4-C3kRZCei.js +1 -0
  62. package/dist/web-client/assets/flowDiagram-23GEKE2U-QKWFycdH.js +1 -0
  63. package/dist/web-client/assets/{ganttDiagram-NO4QXBWP-Ynj8Qkax.js → ganttDiagram-NO4QXBWP-mIX5nPpv.js} +1 -1
  64. package/dist/web-client/assets/{gitGraph-TEB2WS4Q-j-MdxZrn.js → gitGraph-TEB2WS4Q-DlEDJ1IK.js} +1 -1
  65. package/dist/web-client/assets/{gitGraphDiagram-IHSO6WYX-SaPe2Npn.js → gitGraphDiagram-IHSO6WYX-D2fXD4AO.js} +1 -1
  66. package/dist/web-client/assets/index-BsYR-C8u.js +61 -0
  67. package/dist/web-client/assets/index-Cc5DCTOr.css +2 -0
  68. package/dist/web-client/assets/{info-DKCQHKI2-DzsnPugh.js → info-DKCQHKI2-jinbCROt.js} +1 -1
  69. package/dist/web-client/assets/{infoDiagram-FWYZ7A6U-e6BJvSRj.js → infoDiagram-FWYZ7A6U-CM-A4TL8.js} +1 -1
  70. package/dist/web-client/assets/{ishikawaDiagram-FXEZZL3T-DI1KDN2v.js → ishikawaDiagram-FXEZZL3T-BdFpHwp4.js} +1 -1
  71. package/dist/web-client/assets/{journeyDiagram-5HDEW3XC-BQbFOIm6.js → journeyDiagram-5HDEW3XC-BwDWz25z.js} +1 -1
  72. package/dist/web-client/assets/{kanban-definition-HUTT4EX6-D5DV7Dh0.js → kanban-definition-HUTT4EX6-_2QXjSvx.js} +1 -1
  73. package/dist/web-client/assets/{line-D_qHyqs1.js → line-HCziev87.js} +1 -1
  74. package/dist/web-client/assets/{mermaid-parser.core-VzGX5B89.js → mermaid-parser.core-C4139mkz.js} +3 -3
  75. package/dist/web-client/assets/{mermaid.core-BqWcehVs.js → mermaid.core-ocHwkZiF.js} +3 -3
  76. package/dist/web-client/assets/{mindmap-definition-LN4V7U3C-CcZZrFcy.js → mindmap-definition-LN4V7U3C-DHyCmflp.js} +1 -1
  77. package/dist/web-client/assets/{packet-7NZHBO7P-DWMuocpD.js → packet-7NZHBO7P-Bk0w_irl.js} +1 -1
  78. package/dist/web-client/assets/{pegDiagram-2B236MQR-CQfp4S-y.js → pegDiagram-2B236MQR-D_GrmL93.js} +1 -1
  79. package/dist/web-client/assets/{pie-RZYD4A2V-BlI6y28n.js → pie-RZYD4A2V-B6VIAbyj.js} +1 -1
  80. package/dist/web-client/assets/{pieDiagram-ENE6RG2P-DEsRhIVS.js → pieDiagram-ENE6RG2P-CiR2Y8y2.js} +1 -1
  81. package/dist/web-client/assets/{quadrantDiagram-ABIIQ3AL-BZCSbtlm.js → quadrantDiagram-ABIIQ3AL-CLlicKmV.js} +1 -1
  82. package/dist/web-client/assets/{radar-I7S5WNFK-DlwfjSpa.js → radar-I7S5WNFK-B53XVRSZ.js} +1 -1
  83. package/dist/web-client/assets/{railroad-3IZDKUUU-Be-bZpf0.js → railroad-3IZDKUUU-Dn8TN2M-.js} +1 -1
  84. package/dist/web-client/assets/railroad-abnf-AHOZXSZD-UrOKy6yx.js +1 -0
  85. package/dist/web-client/assets/railroad-ebnf-EBAXGLYW-Bx73sfMZ.js +1 -0
  86. package/dist/web-client/assets/railroad-peg-LSFZ7HO6-C4QEje-y.js +1 -0
  87. package/dist/web-client/assets/{railroadDiagram-RFXS5EU6-ClVubHv1.js → railroadDiagram-RFXS5EU6-C6kZwOio.js} +1 -1
  88. package/dist/web-client/assets/{requirementDiagram-TGXJPOKE-swYyFYJk.js → requirementDiagram-TGXJPOKE-D2b1MeP8.js} +1 -1
  89. package/dist/web-client/assets/{sankeyDiagram-HTMAVEWB-LAu1XR2n.js → sankeyDiagram-HTMAVEWB-pS_Ufq1E.js} +1 -1
  90. package/dist/web-client/assets/{sequenceDiagram-DBY2YBRQ-XvIU8hX9.js → sequenceDiagram-DBY2YBRQ-BrsKXNzu.js} +1 -1
  91. package/dist/web-client/assets/{stateDiagram-2N3HPSRC-C3nbJ1dX.js → stateDiagram-2N3HPSRC-BuQKu3i0.js} +1 -1
  92. package/dist/web-client/assets/stateDiagram-v2-6OUMAXLB-BhqgaxDu.js +1 -0
  93. package/dist/web-client/assets/{swimlanes-5IMT3BWC-BF5fFeNe.js → swimlanes-5IMT3BWC-CzoImfTA.js} +1 -1
  94. package/dist/web-client/assets/swimlanesDiagram-G3AALYLV-CHOEI9hI.js +8 -0
  95. package/dist/web-client/assets/{timeline-definition-FHXFAJF6-CjK82kFp.js → timeline-definition-FHXFAJF6-DvezW7Fr.js} +1 -1
  96. package/dist/web-client/assets/{treeView-QDETBFTQ-DBRGCYnY.js → treeView-QDETBFTQ-xu58R4kS.js} +1 -1
  97. package/dist/web-client/assets/{treemap-6X3UGDF4-BIexMw3j.js → treemap-6X3UGDF4-DMYBAOW1.js} +1 -1
  98. package/dist/web-client/assets/{vennDiagram-L72KCM5P-DOjvh0XG.js → vennDiagram-L72KCM5P-l1CbC7Ig.js} +1 -1
  99. package/dist/web-client/assets/{wardley-OPB4EBWU-Dxw6mW95.js → wardley-OPB4EBWU-G3zmnnM0.js} +1 -1
  100. package/dist/web-client/assets/{wardleyDiagram-EHGQE667-D1A7JTB_.js → wardleyDiagram-EHGQE667-Dl2I79Vx.js} +1 -1
  101. package/dist/web-client/assets/{xychartDiagram-FW5EYKEG-CxvobQJD.js → xychartDiagram-FW5EYKEG-BWfge21N.js} +1 -1
  102. package/dist/web-client/index.html +2 -2
  103. package/dist/web-server/app.d.ts.map +1 -1
  104. package/dist/web-server/app.js +11 -7
  105. package/dist/web-server/app.js.map +1 -1
  106. package/dist/web-server/ask-prompt.d.ts +70 -0
  107. package/dist/web-server/ask-prompt.d.ts.map +1 -0
  108. package/dist/web-server/ask-prompt.js +238 -0
  109. package/dist/web-server/ask-prompt.js.map +1 -0
  110. package/dist/web-server/index.d.ts.map +1 -1
  111. package/dist/web-server/index.js +56 -3
  112. package/dist/web-server/index.js.map +1 -1
  113. package/dist/web-server/respond.d.ts.map +1 -1
  114. package/dist/web-server/respond.js +2 -1
  115. package/dist/web-server/respond.js.map +1 -1
  116. package/dist/web-server/routes/ask.d.ts +29 -0
  117. package/dist/web-server/routes/ask.d.ts.map +1 -0
  118. package/dist/web-server/routes/ask.js +698 -0
  119. package/dist/web-server/routes/ask.js.map +1 -0
  120. package/dist/web-server/routes/changes.d.ts +35 -0
  121. package/dist/web-server/routes/changes.d.ts.map +1 -0
  122. package/dist/web-server/routes/changes.js +93 -0
  123. package/dist/web-server/routes/changes.js.map +1 -0
  124. package/dist/web-server/routes/runners.d.ts +15 -0
  125. package/dist/web-server/routes/runners.d.ts.map +1 -0
  126. package/dist/web-server/routes/runners.js +66 -0
  127. package/dist/web-server/routes/runners.js.map +1 -0
  128. package/dist/web-server/routes/workspace.d.ts +2 -2
  129. package/dist/web-server/routes/workspace.js +4 -4
  130. package/dist/web-server/run-diff.d.ts +188 -0
  131. package/dist/web-server/run-diff.d.ts.map +1 -0
  132. package/dist/web-server/run-diff.js +739 -0
  133. package/dist/web-server/run-diff.js.map +1 -0
  134. package/dist/web-server/run-driver.d.ts +102 -2
  135. package/dist/web-server/run-driver.d.ts.map +1 -1
  136. package/dist/web-server/run-driver.js +495 -1
  137. package/dist/web-server/run-driver.js.map +1 -1
  138. package/dist/web-server/run-event-log.d.ts +13 -6
  139. package/dist/web-server/run-event-log.d.ts.map +1 -1
  140. package/dist/web-server/run-event-log.js +70 -25
  141. package/dist/web-server/run-event-log.js.map +1 -1
  142. package/dist/web-server/run-store.d.ts +201 -0
  143. package/dist/web-server/run-store.d.ts.map +1 -0
  144. package/dist/web-server/run-store.js +304 -0
  145. package/dist/web-server/run-store.js.map +1 -0
  146. package/dist/web-server/watcher.d.ts.map +1 -1
  147. package/dist/web-server/watcher.js +4 -0
  148. package/dist/web-server/watcher.js.map +1 -1
  149. package/opencode/arcs/manifest.json +8 -8
  150. package/package.json +1 -1
  151. package/scripts/deploy-claudecode-bundle.mjs +1 -1
  152. package/scripts/deploy-opencode-bundle.mjs +1 -1
  153. package/scripts/deploy-pi-bundle.mjs +468 -0
  154. package/scripts/lint-bundle.mjs +1 -1
  155. package/dist/shared/session-vocabulary.d.ts +0 -88
  156. package/dist/shared/session-vocabulary.d.ts.map +0 -1
  157. package/dist/shared/session-vocabulary.js +0 -114
  158. package/dist/shared/session-vocabulary.js.map +0 -1
  159. package/dist/utils/claude-transcript.d.ts +0 -206
  160. package/dist/utils/claude-transcript.d.ts.map +0 -1
  161. package/dist/utils/claude-transcript.js +0 -384
  162. package/dist/utils/claude-transcript.js.map +0 -1
  163. package/dist/utils/session-store.d.ts +0 -313
  164. package/dist/utils/session-store.d.ts.map +0 -1
  165. package/dist/utils/session-store.js +0 -513
  166. package/dist/utils/session-store.js.map +0 -1
  167. package/dist/web-client/assets/architecture-TIHT7OUA-B6H7ClR9.js +0 -1
  168. package/dist/web-client/assets/channel-CinHQ6_V.js +0 -1
  169. package/dist/web-client/assets/classDiagram-OUVF2IWQ-D_fljwRI.js +0 -1
  170. package/dist/web-client/assets/classDiagram-v2-EOCWNBFH-D_fljwRI.js +0 -1
  171. package/dist/web-client/assets/eventmodeling-45OFAUF4-DT6B-Tvn.js +0 -1
  172. package/dist/web-client/assets/flowDiagram-23GEKE2U-fbZofWHf.js +0 -1
  173. package/dist/web-client/assets/index-C1WQ25Ow.js +0 -60
  174. package/dist/web-client/assets/index-CHdOvANQ.css +0 -2
  175. package/dist/web-client/assets/railroad-abnf-AHOZXSZD-C5-D4PxJ.js +0 -1
  176. package/dist/web-client/assets/railroad-ebnf-EBAXGLYW-pJcCXE74.js +0 -1
  177. package/dist/web-client/assets/railroad-peg-LSFZ7HO6-B33ruY8f.js +0 -1
  178. package/dist/web-client/assets/stateDiagram-v2-6OUMAXLB-Da0ex-S_.js +0 -1
  179. package/dist/web-client/assets/swimlanesDiagram-G3AALYLV-cc5MstHU.js +0 -8
  180. package/dist/web-server/permission-policy.d.ts +0 -46
  181. package/dist/web-server/permission-policy.d.ts.map +0 -1
  182. package/dist/web-server/permission-policy.js +0 -96
  183. package/dist/web-server/permission-policy.js.map +0 -1
  184. package/dist/web-server/prompt-assembly.d.ts +0 -454
  185. package/dist/web-server/prompt-assembly.d.ts.map +0 -1
  186. package/dist/web-server/prompt-assembly.js +0 -1121
  187. package/dist/web-server/prompt-assembly.js.map +0 -1
  188. package/dist/web-server/routes/sessions.d.ts +0 -19
  189. package/dist/web-server/routes/sessions.d.ts.map +0 -1
  190. package/dist/web-server/routes/sessions.js +0 -1296
  191. package/dist/web-server/routes/sessions.js.map +0 -1
  192. package/dist/web-server/session-reconciler.d.ts +0 -162
  193. package/dist/web-server/session-reconciler.d.ts.map +0 -1
  194. package/dist/web-server/session-reconciler.js +0 -363
  195. package/dist/web-server/session-reconciler.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/web-server/routes/sessions.ts"],"names":[],"mappings":"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"}
@@ -1,162 +0,0 @@
1
- /**
2
- * Session liveness reconciliation — the world's opinion on top of the store's.
3
- *
4
- * `deriveSessionPhase` (session-store) answers "what does this record claim" from
5
- * persisted evidence alone. This module answers "is that still true", using the
6
- * two liveness sources that exist outside the DAG:
7
- *
8
- * - a run claim's pid, probed with signal 0. ARCS-driven runs are headless
9
- * `claude -p` children ARCS spawned itself, so their liveness is a local
10
- * process fact — and the persisted pid is what makes it readable from a
11
- * server process that did not spawn them.
12
- * - `claude agents --json`, which lists the live interactive/background
13
- * sessions a terminal is driving. That is the only way to tell a session ARCS
14
- * merely observes from one whose terminal has since been closed.
15
- *
16
- * Two shapes of work, deliberately separated:
17
- *
18
- * - `settleOrphanedRuns` WRITES: a claim whose process is gone settles as
19
- * outcome `interrupted`, the claim is cleared and the session's run event
20
- * logs are pruned. Runs once at startup (see app.ts), because a claim
21
- * persisted by a previous process can never be live in this one unless its
22
- * child outlived the restart.
23
- * - `reconcileSessionPhases` READS: it returns demoted phases and never writes.
24
- * On-demand only — there is no timer here, and no poller.
25
- *
26
- * Everything that touches the outside world is tolerant by construction: the
27
- * probe is a subprocess of a binary that may not exist, running a command whose
28
- * output shape is claude's to change. A missing binary, a non-zero exit, an
29
- * empty stdout or unparsable JSON all degrade to the store-derived phase and
30
- * NEVER throw — a reconciler that can fail would take the sessions UI down with
31
- * every claude release.
32
- */
33
- import { type SessionMeta, type SessionPhase } from "../utils/session-store.js";
34
- /**
35
- * One live agent as reported by `claude agents --json` (verified on claude
36
- * 2.1.223: live interactive and background sessions, `{pid, cwd, sessionId,
37
- * name, state|status}`). Every field is optional because the wire shape belongs
38
- * to claude — a release that renames one must degrade this module, not break it.
39
- */
40
- export interface LiveAgent {
41
- pid?: number;
42
- cwd?: string;
43
- sessionId?: string;
44
- name?: string;
45
- /** `status`, falling back to `state` — reported, never branched on. */
46
- status?: string;
47
- }
48
- /** Raw probe result: `ok:false` covers missing binary, non-zero exit, timeout. */
49
- export type AgentsProbeResult = {
50
- ok: true;
51
- stdout: string;
52
- } | {
53
- ok: false;
54
- };
55
- export type AgentsProbe = () => Promise<AgentsProbeResult>;
56
- /**
57
- * Parses `claude agents --json` stdout into live agents.
58
- *
59
- * `null` means "the probe answered nothing usable" (empty output, non-JSON, a
60
- * JSON shape carrying no array) and is NOT the same as `[]`, which means "the
61
- * probe worked and no agent is live". Only the second may demote a session:
62
- * conflating them would mark every observed session idle the day claude changes
63
- * its output.
64
- */
65
- export declare function parseLiveAgents(stdout: string): LiveAgent[] | null;
66
- /**
67
- * Runs the probe and parses it. `null` on every degraded path — missing binary,
68
- * non-zero exit, timeout, unparsable output, or a probe that threw.
69
- */
70
- export declare function listLiveClaudeAgents(options?: {
71
- probe?: AgentsProbe;
72
- }): Promise<LiveAgent[] | null>;
73
- /**
74
- * Whether a pid is a live process, via signal 0 (no signal delivered).
75
- *
76
- * SHORTCUT: pids are reused, so a recycled pid reads alive and keeps an orphan
77
- * claim standing; upgrade to a start-time check (`/proc/<pid>/stat` field 22 or
78
- * `ps -o lstart`) when a stuck claim is ever actually observed.
79
- */
80
- export declare function isProcessAlive(pid: number): boolean;
81
- export interface ReconcileOptions {
82
- /** Injectable `claude agents --json` probe (tests). */
83
- probe?: AgentsProbe;
84
- /** Injectable pid liveness (tests). */
85
- isAlive?: (pid: number) => boolean;
86
- /** Clock in epoch ms; defaults to `Date.now()`. */
87
- now?: number;
88
- }
89
- export interface SessionPhaseView {
90
- sessionId: string;
91
- phase: SessionPhase;
92
- }
93
- /**
94
- * The store-derived phase, demoted when the world disagrees.
95
- *
96
- * Demotion is one-way: this can turn `running` into `idle`, never the reverse.
97
- * Nothing outside the record may promote a session — the DAG stays the source
98
- * of truth and the probe is only ever allowed to take evidence away.
99
- *
100
- * Which evidence applies depends on what the record claims, not on its origin:
101
- * - a run claim is checked against its pid. `claude agents` never lists a
102
- * headless `claude -p` child, so asking it about an ARCS run would demote
103
- * every healthy run.
104
- * - everything else is checked against the agent list. `agents === null` (the
105
- * probe degraded) leaves the `lastCheckpointAt`-derived phase untouched.
106
- */
107
- export declare function reconcilePhase(session: SessionMeta, agents: LiveAgent[] | null, options?: ReconcileOptions): SessionPhase;
108
- /**
109
- * Reconciled phase for every session in a project. Read-only: no writes, no
110
- * timer, and at most ONE `claude agents --json` for the whole index — never one
111
- * per session.
112
- *
113
- * The probe is LAZY: `claude agents --json` costs ~0.35s of wall clock and a
114
- * whole subprocess, and its answer is read at a single branch of
115
- * `reconcilePhase`. Every terminal record, every idle one and every ARCS run
116
- * holding a claim decides without it, so a probe fired before the phases are
117
- * derived is a subprocess whose result is thrown away — on EVERY sessions
118
- * request, list and detail alike, at whatever rate the watcher invalidates the
119
- * query. So the derivation runs first and the probe only follows when some
120
- * record actually reaches that branch.
121
- *
122
- * Skipping it passes `null` — the same value a degraded probe yields, and the
123
- * value no session left in this pass can read: reaching the `agents` branch is
124
- * precisely the condition that would have run the probe.
125
- */
126
- export declare function reconcileSessionPhases(projectDir: string, options?: ReconcileOptions): Promise<SessionPhaseView[]>;
127
- export interface SettledOrphan {
128
- sessionId: string;
129
- runId: string;
130
- pid?: number;
131
- }
132
- /**
133
- * Settles every run claim in a project whose process is gone.
134
- *
135
- * A claim only survives when its pid is still alive — a run spawned by a
136
- * previous server process either outlived the restart (leave it be; it still
137
- * holds the write-target) or died with it, and a dead claim that is never
138
- * cleared is a session stuck on `running` for good. The settled run keeps
139
- * whatever `metadata.run` already held and gains `outcome: "interrupted"`,
140
- * which no live run can ever produce.
141
- *
142
- * A settle here also prunes the session's run event logs, exactly as the route's
143
- * own write-back does — this is the ONLY settle an interrupted run ever gets, so
144
- * it is the only place that can bound the logs of a session whose runs never
145
- * settle normally.
146
- *
147
- * Never throws: a project whose index cannot be read is skipped, and a record
148
- * deleted mid-sweep is simply not settled.
149
- */
150
- export declare function settleOrphanedRuns(projectDir: string, options?: ReconcileOptions): Promise<SettledOrphan[]>;
151
- /**
152
- * Startup sweep across every registered project.
153
- *
154
- * Composition-time work (app.ts calls it once, fire-and-forget) but the logic
155
- * lives here. One pass, no timer: liveness questions after startup are answered
156
- * on demand by `reconcileSessionPhases`.
157
- *
158
- * Never throws — a data dir without a readable meta.json settles nothing and
159
- * reports it, rather than taking the server down at boot.
160
- */
161
- export declare function settleOrphanedRunsOnStartup(dataDir?: string, options?: ReconcileOptions): Promise<SettledOrphan[]>;
162
- //# sourceMappingURL=session-reconciler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-reconciler.d.ts","sourceRoot":"","sources":["../../src/web-server/session-reconciler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAMH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,YAAY,EAGlB,MAAM,2BAA2B,CAAC;AAQnC;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAoF3D;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,IAAI,CAiBlE;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,WAAW,CAAA;CAAO,GACpC,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAU7B;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CASnD;AAMD,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;CACrB;AAcD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAC1B,OAAO,GAAE,gBAAqB,GAC7B,YAAY,CAad;AAeD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAa7B;AAMD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAQD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,aAAa,EAAE,CAAC,CAqC1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,GAAE,MAAqB,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,aAAa,EAAE,CAAC,CAa1B"}
@@ -1,363 +0,0 @@
1
- /**
2
- * Session liveness reconciliation — the world's opinion on top of the store's.
3
- *
4
- * `deriveSessionPhase` (session-store) answers "what does this record claim" from
5
- * persisted evidence alone. This module answers "is that still true", using the
6
- * two liveness sources that exist outside the DAG:
7
- *
8
- * - a run claim's pid, probed with signal 0. ARCS-driven runs are headless
9
- * `claude -p` children ARCS spawned itself, so their liveness is a local
10
- * process fact — and the persisted pid is what makes it readable from a
11
- * server process that did not spawn them.
12
- * - `claude agents --json`, which lists the live interactive/background
13
- * sessions a terminal is driving. That is the only way to tell a session ARCS
14
- * merely observes from one whose terminal has since been closed.
15
- *
16
- * Two shapes of work, deliberately separated:
17
- *
18
- * - `settleOrphanedRuns` WRITES: a claim whose process is gone settles as
19
- * outcome `interrupted`, the claim is cleared and the session's run event
20
- * logs are pruned. Runs once at startup (see app.ts), because a claim
21
- * persisted by a previous process can never be live in this one unless its
22
- * child outlived the restart.
23
- * - `reconcileSessionPhases` READS: it returns demoted phases and never writes.
24
- * On-demand only — there is no timer here, and no poller.
25
- *
26
- * Everything that touches the outside world is tolerant by construction: the
27
- * probe is a subprocess of a binary that may not exist, running a command whose
28
- * output shape is claude's to change. A missing binary, a non-zero exit, an
29
- * empty stdout or unparsable JSON all degrade to the store-derived phase and
30
- * NEVER throw — a reconciler that can fail would take the sessions UI down with
31
- * every claude release.
32
- */
33
- import { execFile } from "node:child_process";
34
- import { resolve } from "node:path";
35
- import { readRootMeta } from "../utils/dag.js";
36
- import { getDataDir } from "../utils/paths.js";
37
- import { deriveSessionPhase, listSessions, sessionRunClaim, settleSessionRun, } from "../utils/session-store.js";
38
- import { normalizeIdentifier } from "../utils/slug.js";
39
- import { pruneRunEventLogs } from "./run-event-log.js";
40
- const AGENTS_PROBE_TIMEOUT_MS = 5_000;
41
- const AGENTS_PROBE_MAX_BUFFER = 4 * 1024 * 1024;
42
- /** Keys an `agents --json` payload might wrap its array in. */
43
- const AGENT_LIST_KEYS = ["agents", "sessions", "data", "items"];
44
- function defaultAgentsProbe() {
45
- return new Promise((resolveProbe) => {
46
- try {
47
- execFile("claude", ["agents", "--json"], {
48
- timeout: AGENTS_PROBE_TIMEOUT_MS,
49
- maxBuffer: AGENTS_PROBE_MAX_BUFFER,
50
- encoding: "utf-8",
51
- }, (error, stdout) => {
52
- // ENOENT (no binary), a non-zero exit and the timeout kill all arrive
53
- // here as an error — none of them is a usable answer, and none of
54
- // them is fatal.
55
- if (error)
56
- resolveProbe({ ok: false });
57
- else
58
- resolveProbe({ ok: true, stdout: String(stdout) });
59
- });
60
- }
61
- catch {
62
- // Some spawn failures surface synchronously depending on platform.
63
- resolveProbe({ ok: false });
64
- }
65
- });
66
- }
67
- function readString(node, ...keys) {
68
- for (const key of keys) {
69
- const value = node[key];
70
- if (typeof value === "string" && value !== "")
71
- return value;
72
- }
73
- return undefined;
74
- }
75
- function readPid(node) {
76
- const value = node.pid;
77
- if (typeof value === "number" && Number.isInteger(value) && value > 0)
78
- return value;
79
- // Tolerated: some CLIs stringify pids.
80
- if (typeof value === "string") {
81
- const parsed = Number.parseInt(value, 10);
82
- if (Number.isInteger(parsed) && parsed > 0)
83
- return parsed;
84
- }
85
- return undefined;
86
- }
87
- /** The array of rows inside a payload, or `null` when there is no usable one. */
88
- function agentRows(value) {
89
- if (Array.isArray(value))
90
- return value;
91
- if (typeof value !== "object" || value === null)
92
- return null;
93
- const node = value;
94
- for (const key of AGENT_LIST_KEYS) {
95
- if (Array.isArray(node[key]))
96
- return node[key];
97
- }
98
- return null;
99
- }
100
- function toLiveAgent(row) {
101
- if (typeof row !== "object" || row === null || Array.isArray(row))
102
- return undefined;
103
- const node = row;
104
- const pid = readPid(node);
105
- const sessionId = readString(node, "sessionId", "session_id");
106
- // A row that identifies neither a process nor a session cannot answer a
107
- // liveness question, so it is dropped rather than counted as an agent.
108
- if (pid === undefined && sessionId === undefined)
109
- return undefined;
110
- const cwd = readString(node, "cwd", "directory");
111
- const name = readString(node, "name");
112
- const status = readString(node, "status", "state");
113
- return {
114
- ...(pid !== undefined && { pid }),
115
- ...(cwd !== undefined && { cwd }),
116
- ...(sessionId !== undefined && { sessionId }),
117
- ...(name !== undefined && { name }),
118
- ...(status !== undefined && { status }),
119
- };
120
- }
121
- /**
122
- * Parses `claude agents --json` stdout into live agents.
123
- *
124
- * `null` means "the probe answered nothing usable" (empty output, non-JSON, a
125
- * JSON shape carrying no array) and is NOT the same as `[]`, which means "the
126
- * probe worked and no agent is live". Only the second may demote a session:
127
- * conflating them would mark every observed session idle the day claude changes
128
- * its output.
129
- */
130
- export function parseLiveAgents(stdout) {
131
- const text = stdout.trim();
132
- if (text === "")
133
- return null;
134
- let value;
135
- try {
136
- value = JSON.parse(text);
137
- }
138
- catch {
139
- return null;
140
- }
141
- const rows = agentRows(value);
142
- if (rows === null)
143
- return null;
144
- const agents = [];
145
- for (const row of rows) {
146
- const agent = toLiveAgent(row);
147
- if (agent !== undefined)
148
- agents.push(agent);
149
- }
150
- return agents;
151
- }
152
- /**
153
- * Runs the probe and parses it. `null` on every degraded path — missing binary,
154
- * non-zero exit, timeout, unparsable output, or a probe that threw.
155
- */
156
- export async function listLiveClaudeAgents(options = {}) {
157
- const probe = options.probe ?? defaultAgentsProbe;
158
- let result;
159
- try {
160
- result = await probe();
161
- }
162
- catch {
163
- return null;
164
- }
165
- if (!result.ok)
166
- return null;
167
- return parseLiveAgents(result.stdout);
168
- }
169
- // ---------------------------------------------------------------------------
170
- // Process liveness
171
- // ---------------------------------------------------------------------------
172
- /**
173
- * Whether a pid is a live process, via signal 0 (no signal delivered).
174
- *
175
- * SHORTCUT: pids are reused, so a recycled pid reads alive and keeps an orphan
176
- * claim standing; upgrade to a start-time check (`/proc/<pid>/stat` field 22 or
177
- * `ps -o lstart`) when a stuck claim is ever actually observed.
178
- */
179
- export function isProcessAlive(pid) {
180
- if (!Number.isInteger(pid) || pid <= 0)
181
- return false;
182
- try {
183
- process.kill(pid, 0);
184
- return true;
185
- }
186
- catch (err) {
187
- // EPERM means the process exists but belongs to another user — alive.
188
- return err?.code === "EPERM";
189
- }
190
- }
191
- /** Does this agent report the session behind this record? */
192
- function agentMatchesSession(session, agent) {
193
- const reported = agent.sessionId;
194
- if (reported === undefined)
195
- return false;
196
- if (reported === session.runtimeSessionId)
197
- return true;
198
- if (normalizeIdentifier(reported) === session.normalizedId)
199
- return true;
200
- // An ARCS thread runs under its own claude-facing uuid, which is what the
201
- // agent list reports — the ARCS thread id never reaches claude.
202
- const claudeSessionId = session.metadata?.claudeSessionId;
203
- return typeof claudeSessionId === "string" && reported === claudeSessionId;
204
- }
205
- /**
206
- * The store-derived phase, demoted when the world disagrees.
207
- *
208
- * Demotion is one-way: this can turn `running` into `idle`, never the reverse.
209
- * Nothing outside the record may promote a session — the DAG stays the source
210
- * of truth and the probe is only ever allowed to take evidence away.
211
- *
212
- * Which evidence applies depends on what the record claims, not on its origin:
213
- * - a run claim is checked against its pid. `claude agents` never lists a
214
- * headless `claude -p` child, so asking it about an ARCS run would demote
215
- * every healthy run.
216
- * - everything else is checked against the agent list. `agents === null` (the
217
- * probe degraded) leaves the `lastCheckpointAt`-derived phase untouched.
218
- */
219
- export function reconcilePhase(session, agents, options = {}) {
220
- const derived = deriveSessionPhase(session, { now: options.now });
221
- if (derived !== "running")
222
- return derived;
223
- if (sessionRunClaim(session) !== undefined) {
224
- const pid = session.currentRunPid;
225
- // No pid to probe (the spawn produced none) — the heartbeat stands alone.
226
- if (typeof pid !== "number")
227
- return derived;
228
- return (options.isAlive ?? isProcessAlive)(pid) ? "running" : "idle";
229
- }
230
- if (agents === null)
231
- return derived;
232
- return agents.some((agent) => agentMatchesSession(session, agent)) ? "running" : "idle";
233
- }
234
- /**
235
- * Whether this record's phase can depend on the agent list at all.
236
- *
237
- * Exactly the one branch of `reconcilePhase` that reads `agents`: a derived
238
- * `running` with no run claim. Everything else — terminal, idle, or claimed —
239
- * answers from the record alone and never looks at the list.
240
- */
241
- function needsAgentList(session, now) {
242
- return (deriveSessionPhase(session, { now }) === "running" && sessionRunClaim(session) === undefined);
243
- }
244
- /**
245
- * Reconciled phase for every session in a project. Read-only: no writes, no
246
- * timer, and at most ONE `claude agents --json` for the whole index — never one
247
- * per session.
248
- *
249
- * The probe is LAZY: `claude agents --json` costs ~0.35s of wall clock and a
250
- * whole subprocess, and its answer is read at a single branch of
251
- * `reconcilePhase`. Every terminal record, every idle one and every ARCS run
252
- * holding a claim decides without it, so a probe fired before the phases are
253
- * derived is a subprocess whose result is thrown away — on EVERY sessions
254
- * request, list and detail alike, at whatever rate the watcher invalidates the
255
- * query. So the derivation runs first and the probe only follows when some
256
- * record actually reaches that branch.
257
- *
258
- * Skipping it passes `null` — the same value a degraded probe yields, and the
259
- * value no session left in this pass can read: reaching the `agents` branch is
260
- * precisely the condition that would have run the probe.
261
- */
262
- export async function reconcileSessionPhases(projectDir, options = {}) {
263
- const sessions = await listSessions(projectDir);
264
- // One clock for both passes, so the derivation that decides whether to probe
265
- // is the same one reconcilePhase answers from.
266
- const now = options.now ?? Date.now();
267
- const scoped = { ...options, now };
268
- const agents = sessions.some((session) => needsAgentList(session, now))
269
- ? await listLiveClaudeAgents({ probe: options.probe })
270
- : null;
271
- return sessions.map((session) => ({
272
- sessionId: session.normalizedId,
273
- phase: reconcilePhase(session, agents, scoped),
274
- }));
275
- }
276
- function orphanError(pid) {
277
- return pid === undefined
278
- ? "run was interrupted: no pid was recorded for it, so nothing could report how it ended"
279
- : `run was interrupted: its process (pid ${pid}) is gone and never reported an outcome`;
280
- }
281
- /**
282
- * Settles every run claim in a project whose process is gone.
283
- *
284
- * A claim only survives when its pid is still alive — a run spawned by a
285
- * previous server process either outlived the restart (leave it be; it still
286
- * holds the write-target) or died with it, and a dead claim that is never
287
- * cleared is a session stuck on `running` for good. The settled run keeps
288
- * whatever `metadata.run` already held and gains `outcome: "interrupted"`,
289
- * which no live run can ever produce.
290
- *
291
- * A settle here also prunes the session's run event logs, exactly as the route's
292
- * own write-back does — this is the ONLY settle an interrupted run ever gets, so
293
- * it is the only place that can bound the logs of a session whose runs never
294
- * settle normally.
295
- *
296
- * Never throws: a project whose index cannot be read is skipped, and a record
297
- * deleted mid-sweep is simply not settled.
298
- */
299
- export async function settleOrphanedRuns(projectDir, options = {}) {
300
- const alive = options.isAlive ?? isProcessAlive;
301
- let sessions;
302
- try {
303
- sessions = await listSessions(projectDir);
304
- }
305
- catch {
306
- return [];
307
- }
308
- const settled = [];
309
- for (const session of sessions) {
310
- const runId = sessionRunClaim(session);
311
- if (runId === undefined)
312
- continue;
313
- const pid = typeof session.currentRunPid === "number" ? session.currentRunPid : undefined;
314
- if (pid !== undefined && alive(pid))
315
- continue;
316
- try {
317
- await settleSessionRun(projectDir, session.normalizedId, {
318
- runId,
319
- outcome: "interrupted",
320
- error: orphanError(pid),
321
- endedAt: options.now,
322
- });
323
- settled.push({ sessionId: session.normalizedId, runId, ...(pid !== undefined && { pid }) });
324
- // Retention belongs to every settle, and this is the one settle path that
325
- // is not a run's own write-back. A server that dies mid-run never reaches
326
- // `writeBackRun`'s prune, so a session whose runs are always interrupted
327
- // would otherwise accumulate one RUN_EVENT_LOG_MAX_BYTES log per run
328
- // forever — this sweep is the only thing that ever visits those runs
329
- // again. Never throws and its failure is not the sweep's business: the
330
- // claim is already released above whatever retention manages to delete.
331
- await pruneRunEventLogs(projectDir, session.normalizedId);
332
- }
333
- catch {
334
- // Record vanished between the read and the settle — nothing to settle.
335
- }
336
- }
337
- return settled;
338
- }
339
- /**
340
- * Startup sweep across every registered project.
341
- *
342
- * Composition-time work (app.ts calls it once, fire-and-forget) but the logic
343
- * lives here. One pass, no timer: liveness questions after startup are answered
344
- * on demand by `reconcileSessionPhases`.
345
- *
346
- * Never throws — a data dir without a readable meta.json settles nothing and
347
- * reports it, rather than taking the server down at boot.
348
- */
349
- export async function settleOrphanedRunsOnStartup(dataDir = getDataDir(), options = {}) {
350
- let slugs;
351
- try {
352
- slugs = (await readRootMeta(dataDir)).projects.map((project) => project.id);
353
- }
354
- catch {
355
- return [];
356
- }
357
- const settled = [];
358
- for (const slug of slugs) {
359
- settled.push(...(await settleOrphanedRuns(resolve(dataDir, "projects", slug), options)));
360
- }
361
- return settled;
362
- }
363
- //# sourceMappingURL=session-reconciler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-reconciler.js","sourceRoot":"","sources":["../../src/web-server/session-reconciler.ts"],"names":[],"mappings":"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"}