@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
@@ -28,13 +28,14 @@
28
28
  * log and a capped one look identical to every consumer downstream.
29
29
  *
30
30
  * At settle the log folds down into the transcript sidecar (assistant text plus
31
- * one turn per `tool_use`) through `appendSessionTurn`, and older logs for the
32
- * same session are pruned so the sessions dir cannot grow without limit.
31
+ * one turn per `tool_use`) through `appendSessionTurn` (run-transcript.ts), and
32
+ * older logs for the same segment are pruned so the sessions dir cannot grow
33
+ * without limit.
33
34
  */
34
35
  import { closeSync, mkdirSync, openSync, writeSync } from "node:fs";
35
36
  import { readdir, readFile, stat, unlink } from "node:fs/promises";
36
37
  import { dirname, join } from "node:path";
37
- import { appendSessionTurn, readSessionTurns } from "../utils/claude-transcript.js";
38
+ import { appendSessionTurn, readSessionTurns } from "../utils/run-transcript.js";
38
39
  import { normalizeIdentifier } from "../utils/slug.js";
39
40
  import { getRunDriver } from "./run-driver.js";
40
41
  /**
@@ -61,6 +62,11 @@ export const RUN_EVENT_LOG_MAX_BYTES = 32 * 1024 * 1024;
61
62
  */
62
63
  export const RUN_EVENT_LOG_RETENTION = 5;
63
64
  const LOG_SUFFIX = ".events.jsonl";
65
+ /** Sidecars a run keeps beside its log — the diff snapshot and the settle-time
66
+ * changes manifest (run-diff.ts). Pruned with the log, never independently:
67
+ * a pruned changes file would strand a revertable diff forever, and a stale
68
+ * snapshot is exactly the baseline a later run must never inherit. */
69
+ const RUN_SIDECAR_SUFFIXES = [".snapshot.json", ".changes.json"];
64
70
  const NEWLINE = 0x0a;
65
71
  /** The only byte the log ever adds of its own: a line terminator. */
66
72
  const TERMINATOR = Buffer.from("\n", "utf-8");
@@ -353,7 +359,7 @@ function foldTurns(raw) {
353
359
  return turns;
354
360
  }
355
361
  /**
356
- * Folds a run's event log down into the session's transcript sidecar: assistant
362
+ * Folds a run's event log down into the segment's transcript sidecar: assistant
357
363
  * text plus one turn per `tool_use`, appended through `appendSessionTurn` in
358
364
  * stream order, each tagged with the run id.
359
365
  *
@@ -440,47 +446,79 @@ export async function foldRunEventLog(projectDir, sessionId, runId, options = {}
440
446
  // Retention
441
447
  // ---------------------------------------------------------------------------
442
448
  /**
443
- * Keeps the newest `keep` event logs for one session and deletes the rest.
449
+ * Keeps the newest `keep` RUNS for one session and deletes all their files —
450
+ * event log AND the snapshot/changes sidecars that live beside it.
444
451
  *
445
- * Called at EVERY settle (after the fold), so the log that just settled is
446
- * always among the survivors and the sessions dir is bounded at `keep` logs per
452
+ * Called at EVERY settle (after the fold), so the run that just settled is
453
+ * always among the survivors and the sessions dir is bounded at `keep` runs per
447
454
  * session no matter how many runs a session accumulates. "Every settle" means
448
455
  * the startup orphan sweep too (`settleOrphanedRuns`): a server that dies
449
456
  * mid-run never reaches the route's write-back, so without that call site a
450
457
  * session whose runs are always interrupted grows one capped log per run
451
458
  * forever. `keep: 0` drops them all — what session deletion uses.
452
459
  *
460
+ * Preservation unit is the RUN, not the file: one run's log + snapshot +
461
+ * changes manifest are born, age and die together (grouped by the run segment
462
+ * in the filename), so the review surface for a retained run always has its
463
+ * baseline and its diff, and a pruned run takes all three with it.
464
+ *
453
465
  * Never throws; returns how many files it removed.
454
466
  */
455
467
  export async function pruneRunEventLogs(projectDir, sessionId, keep = RUN_EVENT_LOG_RETENTION) {
456
468
  try {
457
469
  const sessionsDir = join(projectDir, "sessions");
458
470
  const prefix = `${normalizeIdentifier(sessionId)}.run-`;
471
+ const suffixes = [LOG_SUFFIX, ...RUN_SIDECAR_SUFFIXES];
459
472
  const names = (await readdir(sessionsDir)).filter((name) => name.startsWith(prefix) &&
460
- name.endsWith(LOG_SUFFIX) &&
461
- name.length > prefix.length + LOG_SUFFIX.length);
462
- if (names.length <= keep)
473
+ suffixes.some((suffix) => name.endsWith(suffix)) &&
474
+ name.length > prefix.length + suffixLen(name));
475
+ if (names.length === 0)
463
476
  return 0;
464
- const dated = await Promise.all(names.map(async (name) => {
477
+ // Group by run segment (the filename between the prefix and the first
478
+ // suffix dot — segments never contain dots, they are sanitized run ids).
479
+ const segmentOf = (name) => {
480
+ const rest = name.slice(prefix.length);
481
+ const dot = rest.indexOf(".");
482
+ return dot === -1 ? rest : rest.slice(0, dot);
483
+ };
484
+ const bySegment = new Map();
485
+ for (const name of names) {
486
+ const segment = segmentOf(name);
487
+ if (segment === "")
488
+ continue;
489
+ let info;
465
490
  try {
466
- return { name, mtimeMs: (await stat(join(sessionsDir, name))).mtimeMs };
491
+ info = await stat(join(sessionsDir, name));
467
492
  }
468
493
  catch {
469
- // Vanished under us — sort it to the front so it is dropped first.
470
- return { name, mtimeMs: 0 };
494
+ continue; // vanished under us
471
495
  }
472
- }));
473
- // Newest first; the name breaks mtime ties (same-millisecond runs) so the
474
- // ordering is total and the prune is deterministic.
475
- dated.sort((a, b) => b.mtimeMs - a.mtimeMs || (a.name < b.name ? 1 : -1));
496
+ const files = bySegment.get(segment) ?? [];
497
+ files.push({ name, mtimeMs: info.mtimeMs });
498
+ bySegment.set(segment, files);
499
+ }
500
+ if (bySegment.size <= keep)
501
+ return 0;
502
+ // A run ages by its NEWEST file's mtime; the name breaks mtime ties
503
+ // (same-millisecond runs) so the ordering is total and the prune is
504
+ // deterministic.
505
+ const aged = [...bySegment.entries()]
506
+ .map(([segment, files]) => ({
507
+ segment,
508
+ files,
509
+ newest: Math.max(...files.map((file) => file.mtimeMs)),
510
+ }))
511
+ .sort((a, b) => b.newest - a.newest || (a.segment < b.segment ? 1 : -1));
476
512
  let pruned = 0;
477
- for (const entry of dated.slice(Math.max(keep, 0))) {
478
- try {
479
- await unlink(join(sessionsDir, entry.name));
480
- pruned += 1;
481
- }
482
- catch {
483
- // Already gone or locked — retention is best-effort.
513
+ for (const entry of aged.slice(Math.max(keep, 0))) {
514
+ for (const file of entry.files) {
515
+ try {
516
+ await unlink(join(sessionsDir, file.name));
517
+ pruned += 1;
518
+ }
519
+ catch {
520
+ // Already gone or locked — retention is best-effort.
521
+ }
484
522
  }
485
523
  }
486
524
  return pruned;
@@ -489,4 +527,11 @@ export async function pruneRunEventLogs(projectDir, sessionId, keep = RUN_EVENT_
489
527
  return 0;
490
528
  }
491
529
  }
530
+ function suffixLen(name) {
531
+ for (const suffix of [LOG_SUFFIX, ...RUN_SIDECAR_SUFFIXES]) {
532
+ if (name.endsWith(suffix))
533
+ return suffix.length;
534
+ }
535
+ return 0;
536
+ }
492
537
  //# sourceMappingURL=run-event-log.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-event-log.js","sourceRoot":"","sources":["../../src/web-server/run-event-log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-event-log.js","sourceRoot":"","sources":["../../src/web-server/run-event-log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Per-run claims — the durable spine of the stateless Ask-AI turn surface.
3
+ *
4
+ * Replaces the sessions-entity run claims (session-store's `currentRunId` +
5
+ * `metadata.run`) with a store keyed by RUN, not by session: per-project
6
+ * `runs/index.json` records every run a project spawned, and a record with no
7
+ * `outcome` IS the live claim. There is no thread record anywhere — a run is
8
+ * the only unit of persistence, and everything a client needs to continue a
9
+ * conversation (the end frame's `runtimeSessionId`, harvested by the fold)
10
+ * reaches it out of band.
11
+ *
12
+ * Concurrency: ONE live run per project. `beginRun` refuses (DagError
13
+ * `RUN_IN_PROGRESS`, mapped to HTTP 409 by respond.ts) while an unsettled
14
+ * claim holds the index — the same single overlap signal the sessions route
15
+ * used, renamed.
16
+ *
17
+ * Liveness survives a restart the same way it always did: the claim persists
18
+ * the child's pid, and `settleOrphanedRuns` (the startup sweep) probes it.
19
+ * Deliberately narrowed from the old reconciler: a dead pid alone no longer
20
+ * settles — the run's own deadline must also have passed, so a claim written
21
+ * by a previous server process whose child outlived the restart is left alone,
22
+ * and a claim whose child died mid-run settles `interrupted` exactly once.
23
+ */
24
+ /** How a run ended. A superset of the runner's own `RunOutcome`: `interrupted`
25
+ * is never produced BY a run, it is written FOR a run whose process vanished
26
+ * without settling — a restart's orphan, or a cancel. */
27
+ export type RunOutcome = "success" | "error" | "timeout" | "interrupted";
28
+ /**
29
+ * One run record. `outcome` absent ⇢ the record IS the live claim; present ⇢
30
+ * the run has settled and `endedAt` is stamped.
31
+ *
32
+ * All timestamps are epoch ms (`Date.now()`), matching the runner's own record
33
+ * unit. Fields are validated on read — a hand-edited index can carry anything.
34
+ */
35
+ export interface RunRecord {
36
+ /** UUID the route minted — the claim's identity and the log's filename key. */
37
+ runId: string;
38
+ /** OS pid of the spawned child; absent when the spawn produced none. */
39
+ pid?: number;
40
+ /** Epoch ms of the claim. */
41
+ startedAt: number;
42
+ /** Epoch ms the runner's kill timer is armed for (resolveTimeoutMs + now). */
43
+ deadlineAt: number;
44
+ /** The driver's runtime type ("pi" | "opencode" | "claude-code" | "codex"). */
45
+ runtimeType: string;
46
+ /** The binary the runner spawned. */
47
+ runner: string;
48
+ /** The runtime session id this run continued, when it was a continuation. */
49
+ continueSessionId?: string;
50
+ /**
51
+ * Directory segment the run's event log is keyed under (`sessions/`
52
+ * filename prefix) — the project slug for the ask route. Retention and the
53
+ * startup sweep prune logs by this segment, so it rides the claim rather
54
+ * than being re-derived by a process that was not the spawner.
55
+ */
56
+ logSegment: string;
57
+ outcome?: RunOutcome;
58
+ error?: string;
59
+ /**
60
+ * Epoch ms the CHILD exited — stamped from the runner's record, so a settle
61
+ * that runs after a restart (the sweep) stamps its own now.
62
+ */
63
+ endedAt?: number;
64
+ /** Length of the run's reply text, as the runner measured it. */
65
+ replyChars?: number;
66
+ /** The runtime-native session id the fold harvested from the run log — the
67
+ * continuation handle the end frame carries to the client. */
68
+ runtimeSessionId?: string;
69
+ /** Typed failure the client can act on (e.g. "CONTINUATION_LOST"). */
70
+ errorCode?: string;
71
+ /** The run's event log hit its cap or lost bytes — the end frame reports it
72
+ * so a consumer knows it reached a hole, never a silent end. */
73
+ eventLogTruncated?: boolean;
74
+ /** Epoch ms the run's workspace changes were reverted (POST /revert). Once
75
+ * stamped, a second revert is refused — one revert per run, whatever it
76
+ * found to revert. Lives on the record (not the sidecars) so it survives
77
+ * their retention pruning. */
78
+ revertedAt?: number;
79
+ }
80
+ export interface RunIndex {
81
+ runs: RunRecord[];
82
+ }
83
+ /** Index path — the pattern session-store used for `sessions/index.json`. */
84
+ export declare function runsIndexPath(projectDir: string): string;
85
+ export interface BeginRunInput {
86
+ /** Caller-minted id for this run — the claim's identity. */
87
+ runId: string;
88
+ /** OS pid of the spawned child; absent/`null` when the spawn produced none. */
89
+ pid?: number | null;
90
+ /** Epoch ms the runner will kill the child at — persisted WITH the claim so
91
+ * the startup sweep can tell "still within its window" from "orphaned". */
92
+ deadlineAt: number;
93
+ /** Driver runtime type that shaped the run's argv. */
94
+ runtimeType: string;
95
+ /** Binary the runner spawns. */
96
+ runner: string;
97
+ /** The runtime session id this run continues, when it is a continuation. */
98
+ continueSessionId?: string;
99
+ /** Directory segment the run's event log is keyed under (see RunRecord). */
100
+ logSegment: string;
101
+ }
102
+ /**
103
+ * Claims the project's one live-run slot for `runId`.
104
+ *
105
+ * Refuses with `RUN_IN_PROGRESS` (409 on the wire) while ANY unsettled claim
106
+ * holds the index — the atomic single-live-run gate, checked under the same
107
+ * lock the settle releases it under, so two overlapping POSTs cannot both win.
108
+ * The claim lands BEFORE the child exists: from here on, a server that dies
109
+ * mid-run leaves a claim behind rather than an invisible orphan, and the
110
+ * startup sweep is what settles it.
111
+ */
112
+ export declare function beginRun(projectDir: string, input: BeginRunInput): Promise<RunRecord>;
113
+ /** Records the child's pid on the claim AFTER the spawn produced one. No-op
114
+ * when the claim is already gone (the run settled in the gap) — a pid write
115
+ * must never resurrect a settled run. */
116
+ export declare function updateRunPid(projectDir: string, input: {
117
+ runId: string;
118
+ pid: number;
119
+ }): Promise<void>;
120
+ export interface SettleRunInput {
121
+ /** Settles only when it matches the persisted claim — a run that has already
122
+ * settled (or was superseded) is never settled twice. */
123
+ runId: string;
124
+ outcome: RunOutcome;
125
+ error?: string;
126
+ /** Epoch ms the run ended — defaults to now. */
127
+ endedAt?: number;
128
+ replyChars?: number;
129
+ /** The runtime-native session id the fold harvested — the continuation handle. */
130
+ runtimeSessionId?: string;
131
+ /** Typed failure code the client can act on (CONTINUATION_LOST, …). */
132
+ errorCode?: string;
133
+ eventLogTruncated?: boolean;
134
+ }
135
+ /**
136
+ * Stamps the outcome onto the run's claim in ONE lock acquisition — the same
137
+ * write that releases the claim, so "claim gone" and "outcome readable" can
138
+ * never disagree (the stream's end frame depends on that).
139
+ *
140
+ * Keyed on the run id: a settle whose run has already settled (a cancel that
141
+ * won the race, or a newer claim) is a byte-identical no-op.
142
+ */
143
+ export declare function settleRun(projectDir: string, input: SettleRunInput): Promise<RunRecord | undefined>;
144
+ /** One run record, or `undefined` when the index does not list the run id. */
145
+ export declare function getRun(projectDir: string, runId: string): Promise<RunRecord | undefined>;
146
+ /**
147
+ * Stamps the run's workspace changes as reverted (POST /revert), once.
148
+ *
149
+ * Refuses with `RUN_ALREADY_REVERTED` (409 on the wire) when the run has
150
+ * already been reverted, `RUN_NOT_FOUND` when the run is not in the index, and
151
+ * `RUN_NOT_SETTLED` while the run is still live — a claim in flight may still
152
+ * be writing, so its changes are not final and must not be reverted.
153
+ * Under the same lock every other mutation uses, so a second revert racing
154
+ * the first can never both win.
155
+ */
156
+ export declare function markRunReverted(projectDir: string, runId: string): Promise<RunRecord>;
157
+ /** The project's current in-flight run claim, or `undefined`. */
158
+ export declare function liveRun(projectDir: string): Promise<RunRecord | undefined>;
159
+ /**
160
+ * Whether a pid is a live process, via signal 0 (no signal delivered).
161
+ *
162
+ * SHORTCUT: pids are reused, so a recycled pid reads alive and keeps an orphan
163
+ * claim standing; upgrade to a start-time check (`/proc/<pid>/stat` field 22 or
164
+ * `ps -o lstart`) when a stuck claim is ever actually observed.
165
+ */
166
+ export declare function isProcessAlive(pid: number): boolean;
167
+ export interface SweepOptions {
168
+ /** Injectable pid liveness (tests). */
169
+ isAlive?: (pid: number) => boolean;
170
+ /** Clock in epoch ms; defaults to `Date.now()`. */
171
+ now?: number;
172
+ }
173
+ /**
174
+ * Settles every run claim in a project whose process is gone AND whose
175
+ * deadline has passed, as `interrupted`.
176
+ *
177
+ * A claim only stands while its pid is still alive within its own deadline — a
178
+ * run spawned by a previous server process either outlived the restart (leave
179
+ * it be; it still holds the project's slot) or died with it, and a dead claim
180
+ * that is never cleared is a project stuck on "a run is in progress" forever.
181
+ * The deadline condition is what keeps a claim whose child merely outlived a
182
+ * crash from being settled out from under a live process.
183
+ *
184
+ * A settle here also prunes the project's run event logs, exactly as the
185
+ * route's own write-back does — this is the ONLY settle an interrupted run
186
+ * ever gets, so it is the only place that can bound the logs of a project
187
+ * whose runs never settle normally.
188
+ *
189
+ * Never throws: a project whose index cannot be read is skipped, and a record
190
+ * deleted mid-sweep is simply not settled.
191
+ */
192
+ export declare function settleOrphanedRuns(projectDir: string, options?: SweepOptions): Promise<RunRecord[]>;
193
+ /**
194
+ * Startup sweep across every registered project, keyed by RUN. Composition-time
195
+ * work (app.ts calls it once, fire-and-forget) — one pass, never a poller.
196
+ *
197
+ * Never throws — a data dir without a readable meta.json settles nothing,
198
+ * rather than taking the server down at boot.
199
+ */
200
+ export declare function settleOrphanedRunsOnStartup(dataDir?: string, options?: SweepOptions): Promise<RunRecord[]>;
201
+ //# sourceMappingURL=run-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-store.d.ts","sourceRoot":"","sources":["../../src/web-server/run-store.ts"],"names":[],"mappings":"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"}