@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask.js","sourceRoot":"","sources":["../../../src/web-server/routes/ask.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Workspace review surface — the approve/revert half of the allow-all gate.
3
+ *
4
+ * Two routes, one concern: exposing what a settled ask run changed in the
5
+ * workspace and letting the user REJECT it.
6
+ *
7
+ * - `GET /api/p/:slug/runs/:runId/changes` — the run's settle-time diff
8
+ * against the spawn-time snapshot: `{ runId, settled, changes }`. Unknown
9
+ * runs answer 404 RUN_NOT_FOUND (the ask route's code); live runs answer
10
+ * `settled: false` with no changes; settled runs read the changes manifest
11
+ * the write-back wrote beside the run's event log. An absent manifest (a
12
+ * failed/absent snapshot, a run that changed nothing) reads as an empty
13
+ * list — the panel shows no card.
14
+ *
15
+ * A client should POLL this route rather than read it once on the end
16
+ * frame: the settle stamps `settled: true` first and the diff sidecar
17
+ * lands a beat later (the write-back diffs AFTER the settle, best-effort),
18
+ * so the first settled read may still be `changes: []` — empty is also
19
+ * what a no-change run settles to, which is why polling until the list is
20
+ * non-empty is the readiness signal, and an empty list that stays empty is
21
+ * the "nothing changed" answer.
22
+ * - `POST /api/p/:slug/runs/:runId/revert` — restores the workspace to the
23
+ * snapshot for THIS run's changes and marks the run record reverted so a
24
+ * second revert is refused (409 RUN_ALREADY_REVERTED). Refuses while the
25
+ * run is still live (400 RUN_NOT_SETTLED — a claim in flight may still be
26
+ * writing) and for unknown runs (404 RUN_NOT_FOUND).
27
+ *
28
+ * Revert is strictly scoped: only the paths in this run's own changes
29
+ * manifest, resolved through the snapshot's root — never a bare `git clean`,
30
+ * never a walk, and never a path the snapshot predates. The diff/revert
31
+ * machinery itself lives in run-diff.ts; this module only frames it as HTTP.
32
+ */
33
+ import { Hono } from "hono";
34
+ export declare const changesRoute: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
35
+ //# sourceMappingURL=changes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,eAAO,MAAM,YAAY,4EAAa,CAAC"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Workspace review surface — the approve/revert half of the allow-all gate.
3
+ *
4
+ * Two routes, one concern: exposing what a settled ask run changed in the
5
+ * workspace and letting the user REJECT it.
6
+ *
7
+ * - `GET /api/p/:slug/runs/:runId/changes` — the run's settle-time diff
8
+ * against the spawn-time snapshot: `{ runId, settled, changes }`. Unknown
9
+ * runs answer 404 RUN_NOT_FOUND (the ask route's code); live runs answer
10
+ * `settled: false` with no changes; settled runs read the changes manifest
11
+ * the write-back wrote beside the run's event log. An absent manifest (a
12
+ * failed/absent snapshot, a run that changed nothing) reads as an empty
13
+ * list — the panel shows no card.
14
+ *
15
+ * A client should POLL this route rather than read it once on the end
16
+ * frame: the settle stamps `settled: true` first and the diff sidecar
17
+ * lands a beat later (the write-back diffs AFTER the settle, best-effort),
18
+ * so the first settled read may still be `changes: []` — empty is also
19
+ * what a no-change run settles to, which is why polling until the list is
20
+ * non-empty is the readiness signal, and an empty list that stays empty is
21
+ * the "nothing changed" answer.
22
+ * - `POST /api/p/:slug/runs/:runId/revert` — restores the workspace to the
23
+ * snapshot for THIS run's changes and marks the run record reverted so a
24
+ * second revert is refused (409 RUN_ALREADY_REVERTED). Refuses while the
25
+ * run is still live (400 RUN_NOT_SETTLED — a claim in flight may still be
26
+ * writing) and for unknown runs (404 RUN_NOT_FOUND).
27
+ *
28
+ * Revert is strictly scoped: only the paths in this run's own changes
29
+ * manifest, resolved through the snapshot's root — never a bare `git clean`,
30
+ * never a walk, and never a path the snapshot predates. The diff/revert
31
+ * machinery itself lives in run-diff.ts; this module only frames it as HTTP.
32
+ */
33
+ import { Hono } from "hono";
34
+ import { DagError } from "../../utils/errors.js";
35
+ import { requireProjectDir, respond } from "../respond.js";
36
+ import { readRunChanges, readRunSnapshot, revertWorkspaceChanges } from "../run-diff.js";
37
+ import { getRun, markRunReverted } from "../run-store.js";
38
+ export const changesRoute = new Hono();
39
+ /**
40
+ * The run's changes, or an empty list. An absent/settled-unreadable manifest
41
+ * IS the empty list: it is what a snapshot that failed, or a run that changed
42
+ * nothing, leaves behind — the panel renders no card either way.
43
+ */
44
+ changesRoute.get("/api/p/:slug/runs/:runId/changes", async (c) => respond(c, async () => {
45
+ const slug = c.req.param("slug");
46
+ const projectDir = requireProjectDir(slug);
47
+ const runId = c.req.param("runId");
48
+ const run = await getRun(projectDir, runId);
49
+ if (run === undefined) {
50
+ throw new DagError("RUN_NOT_FOUND", `no run "${runId}" on project "${slug}"`);
51
+ }
52
+ const settled = run.outcome !== undefined;
53
+ const file = settled ? await readRunChanges(projectDir, slug, runId) : undefined;
54
+ return { runId, settled, changes: file?.changes ?? [] };
55
+ }));
56
+ /**
57
+ * Rejects the run's changes: restores the workspace to the snapshot baseline
58
+ * and stamps the record so one revert is the whole story. `restored` lists
59
+ * the paths actually put back — a modified/deleted file whose baseline bytes
60
+ * were never captured (the non-git blob cap) cannot be rebuilt, so it is
61
+ * skipped rather than reported as restored.
62
+ */
63
+ changesRoute.post("/api/p/:slug/runs/:runId/revert", async (c) => respond(c, async () => {
64
+ const slug = c.req.param("slug");
65
+ const projectDir = requireProjectDir(slug);
66
+ const runId = c.req.param("runId");
67
+ const run = await getRun(projectDir, runId);
68
+ if (run === undefined) {
69
+ throw new DagError("RUN_NOT_FOUND", `no run "${runId}" on project "${slug}"`);
70
+ }
71
+ if (run.outcome === undefined) {
72
+ throw new DagError("RUN_NOT_SETTLED", `run "${runId}" is still live — only a settled run's changes can be reverted`);
73
+ }
74
+ if (run.revertedAt !== undefined) {
75
+ throw new DagError("RUN_ALREADY_REVERTED", `the changes of run "${runId}" were already reverted`);
76
+ }
77
+ // Revert works from the snapshot's OWN root (never re-derived from the
78
+ // meta), so the paths acted on are exactly the ones the run saw — and
79
+ // every one of them passes the snapshot-root containment guard inside
80
+ // revertWorkspaceChanges. A missing/errored snapshot means there was no
81
+ // review surface: nothing to restore, still marked reverted (one revert
82
+ // per run, whatever it found).
83
+ const snapshot = await readRunSnapshot(projectDir, slug, runId);
84
+ const file = await readRunChanges(projectDir, slug, runId);
85
+ const changes = file?.changes ?? [];
86
+ let restored = [];
87
+ if (snapshot !== undefined && snapshot.error === undefined && changes.length > 0) {
88
+ restored = await revertWorkspaceChanges(snapshot, changes);
89
+ }
90
+ await markRunReverted(projectDir, runId);
91
+ return { reverted: true, restored };
92
+ }));
93
+ //# sourceMappingURL=changes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changes.js","sourceRoot":"","sources":["../../../src/web-server/routes/changes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Runners route: the drivable one-shot runtime surface, for the web UI's
3
+ * Ask-AI runtime picker.
4
+ *
5
+ * Lives in its own file ON PURPOSE — the sessions routes file is deleted by
6
+ * another task soon, and this read-only surface must not ride along with it.
7
+ * It enumerates the run-driver registry (run-driver.ts) rather than a
8
+ * maintained list, so a driver registered later shows up automatically, and
9
+ * probes each driver's binary on PATH at request time so the UI can show
10
+ * what is actually installed on this machine. Never throws: a missing binary
11
+ * answers `available: false`.
12
+ */
13
+ import { Hono } from "hono";
14
+ export declare const runnersRoute: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
15
+ //# sourceMappingURL=runners.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runners.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/runners.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAuC5B,eAAO,MAAM,YAAY,4EAAa,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Runners route: the drivable one-shot runtime surface, for the web UI's
3
+ * Ask-AI runtime picker.
4
+ *
5
+ * Lives in its own file ON PURPOSE — the sessions routes file is deleted by
6
+ * another task soon, and this read-only surface must not ride along with it.
7
+ * It enumerates the run-driver registry (run-driver.ts) rather than a
8
+ * maintained list, so a driver registered later shows up automatically, and
9
+ * probes each driver's binary on PATH at request time so the UI can show
10
+ * what is actually installed on this machine. Never throws: a missing binary
11
+ * answers `available: false`.
12
+ */
13
+ import { statSync } from "node:fs";
14
+ import { delimiter, resolve } from "node:path";
15
+ import { Hono } from "hono";
16
+ import { ok } from "../respond.js";
17
+ import { getRunDriver, getRunDriverRuntimeTypes } from "../run-driver.js";
18
+ /**
19
+ * Display labels for the drivable runtimes. Unknown types fall back to their
20
+ * registry id — a future driver still renders rather than erroring.
21
+ */
22
+ const RUNNER_LABELS = {
23
+ pi: "pi",
24
+ opencode: "opencode",
25
+ "claude-code": "claude code",
26
+ codex: "codex",
27
+ };
28
+ /**
29
+ * Whether a binary is resolvable on PATH.
30
+ *
31
+ * A PATH scan in pure Node (no `which` subprocess): each PATH entry is checked
32
+ * for an executable file of that name, `statSync`-guarded so a missing or
33
+ * unreadable entry skips silently. `stat.mode & 0o111` mirrors `which`'s
34
+ * executability rule on POSIX; on win32 any existing file counts (spawn would
35
+ * resolve it), which keeps the probe total across platforms. Never throws.
36
+ */
37
+ function binaryAvailable(binary) {
38
+ for (const entry of (process.env.PATH ?? "").split(delimiter)) {
39
+ if (entry.trim() === "")
40
+ continue;
41
+ try {
42
+ const stat = statSync(resolve(entry, binary));
43
+ if (stat.isFile()) {
44
+ return process.platform === "win32" || (stat.mode & 0o111) !== 0;
45
+ }
46
+ }
47
+ catch {
48
+ // Not a file here — keep scanning PATH.
49
+ }
50
+ }
51
+ return false;
52
+ }
53
+ export const runnersRoute = new Hono();
54
+ runnersRoute.get("/api/runners", (c) => c.json(ok({
55
+ runners: getRunDriverRuntimeTypes().map((runtimeType) => {
56
+ const driver = getRunDriver(runtimeType);
57
+ const binary = driver?.binary ?? runtimeType;
58
+ return {
59
+ id: runtimeType,
60
+ label: RUNNER_LABELS[runtimeType] ?? runtimeType,
61
+ binary,
62
+ available: binaryAvailable(binary),
63
+ };
64
+ }),
65
+ })));
66
+ //# sourceMappingURL=runners.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runners.js","sourceRoot":"","sources":["../../../src/web-server/routes/runners.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE1E;;;GAGG;AACH,MAAM,aAAa,GAA2B;IAC5C,EAAE,EAAE,IAAI;IACR,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,OAAO;CACf,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,MAAc;IACrC,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;AAEvC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CACrC,CAAC,CAAC,IAAI,CACJ,EAAE,CAAC;IACD,OAAO,EAAE,wBAAwB,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QACtD,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC;QAC7C,OAAO;YACL,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,IAAI,WAAW;YAChD,MAAM;YACN,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC;SACnC,CAAC;IACJ,CAAC,CAAC;CACH,CAAC,CACH,CACF,CAAC"}
@@ -4,8 +4,8 @@
4
4
  * Two GETs and nothing else: `tree` lists a directory under the project's
5
5
  * registered workspace roots, `file` returns one file's text plus the head
6
6
  * revision it was read at, so the browser can build the `file` variant of
7
- * `sessionReferenceSchema` (path + line range + headRev) and hand it to a
8
- * session. There is deliberately NO write route here: an edit is something the
7
+ * the ask reference schema (path + line range + headRev) and hand it to a
8
+ * turn. There is deliberately NO write route here: an edit is something the
9
9
  * agent does in the workspace, never something this plane does on its behalf.
10
10
  *
11
11
  * Every path the caller supplies goes through `resolveInsideWorkspace` — the
@@ -4,8 +4,8 @@
4
4
  * Two GETs and nothing else: `tree` lists a directory under the project's
5
5
  * registered workspace roots, `file` returns one file's text plus the head
6
6
  * revision it was read at, so the browser can build the `file` variant of
7
- * `sessionReferenceSchema` (path + line range + headRev) and hand it to a
8
- * session. There is deliberately NO write route here: an edit is something the
7
+ * the ask reference schema (path + line range + headRev) and hand it to a
8
+ * turn. There is deliberately NO write route here: an edit is something the
9
9
  * agent does in the workspace, never something this plane does on its behalf.
10
10
  *
11
11
  * Every path the caller supplies goes through `resolveInsideWorkspace` — the
@@ -69,8 +69,8 @@ function toPosix(path) {
69
69
  /**
70
70
  * The project's workspace roots, resolved and deduplicated.
71
71
  *
72
- * Read from `meta.workspacePaths` exactly as `primaryWorkspacePath` in
73
- * routes/sessions.ts reads it, including its rule: an unset workspace is an
72
+ * Read from `meta.workspacePaths` exactly as the ask route's
73
+ * `primaryWorkspacePath` reads it, including its rule: an unset workspace is an
74
74
  * ERROR, never a default. `resolveProject().workspacePath` returns `""` rather
75
75
  * than `process.cwd()` for the same reason — an empty root here would otherwise
76
76
  * quietly mean "contain everything", i.e. the whole filesystem.
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Workspace diff snapshot + approve/revert review surface for Ask-AI runs.
3
+ *
4
+ * The allow-all gate: a run may change the workspace, the panel shows the
5
+ * diff, and the user approves (keeps) or rejects (reverts). Three layers:
6
+ *
7
+ * - SNAPSHOT — captured in the ask route's spawn path, before the claim is
8
+ * taken and before the child can write. This is the baseline every later
9
+ * diff and revert computes against.
10
+ * - DIFF — computed in the settle write-back, comparing the workspace to the
11
+ * snapshot, and persisted as `changes.json` beside the run's event log.
12
+ * - REVERT — restores the workspace to the snapshot baseline, scoped to this
13
+ * run's own changes list, and marks the run record so a second revert is
14
+ * refused.
15
+ *
16
+ * Two workspace modes:
17
+ *
18
+ * - GIT — the snapshot records `{ mode, head, cwd, untracked[] }` and
19
+ * NOTHING else. Diffs and reverts compute against git at review time
20
+ * (`git diff HEAD`, `git restore`), because git already holds the exact
21
+ * baseline — copying file contents would be redundant with the object DB.
22
+ * `untracked` lists the paths that were already untracked at snapshot time:
23
+ * the run is never credited with (and revert never deletes) a file that
24
+ * merely remained untracked across the run. State the degradation plainly:
25
+ * an untracked file that EXISTED before the run and was then edited by it
26
+ * is invisible to this surface — git has no baseline for it, by design.
27
+ * - TREE (non-git) — the snapshot walks the tree and records a hash+size
28
+ * manifest. A pure manifest can answer modified/added/deleted but cannot
29
+ * render a modified file's old bytes, so the snapshot ALSO stores each
30
+ * file's bytes up to a total blob cap (RUN_SNAPSHOT_BLOB_MAX_BYTES). A
31
+ * file whose baseline bytes were refused by the cap reports `diff: null`
32
+ * with `capped: true` and cannot be reverted.
33
+ *
34
+ * Every failure here DEGRADES the review surface rather than failing the turn
35
+ * or the settle: an unreadable workspace, a wedged git, a refused blob — all
36
+ * record on the snapshot/change file and the client sees an empty changes
37
+ * list. The turn itself already happened.
38
+ *
39
+ * File keying follows run-event-log.ts exactly: `sessions/{slug}.run-{seg}`
40
+ * plus a `.snapshot.json` / `.changes.json` suffix, pruned together by
41
+ * `pruneRunEventLogs` under the same retention.
42
+ */
43
+ /** Ceiling on files a non-git snapshot walk records. Past it the walk stops
44
+ * (sorted order) and the rest of the tree is NOT in the manifest — a
45
+ * documented truncation: files that sort after the cap compare as phantom
46
+ * adds/deletes. */
47
+ export declare const RUN_SNAPSHOT_MAX_FILES = 10000;
48
+ /** Ceiling on levels below the workspace root a walk descends. */
49
+ export declare const RUN_SNAPSHOT_MAX_DEPTH = 12;
50
+ /** Ceiling on total baseline bytes a snapshot may keep for later diffs. A
51
+ * modified/deleted file whose bytes were refused CANNOT render a diff or be
52
+ * reverted — it reports `capped: true` instead. */
53
+ export declare const RUN_SNAPSHOT_BLOB_MAX_BYTES: number;
54
+ /** Ceiling on one change's diff text — the first N lines AND the first N
55
+ * bytes, whichever lands first. Line counts are always parsed from the FULL
56
+ * diff before the cap is applied. */
57
+ export declare const RUN_DIFF_MAX_LINES = 300;
58
+ export declare const RUN_DIFF_MAX_BYTES: number;
59
+ /** Ceiling on one spawnSync git call. A wedged git (stalled mount, held
60
+ * index.lock) must degrade the surface, never hang the request. */
61
+ export declare const RUN_GIT_TIMEOUT_MS = 5000;
62
+ export interface WorkspaceSnapshotFile {
63
+ /** Bytes at snapshot time. */
64
+ size: number;
65
+ /** Hex sha256 of the file's bytes at snapshot time. */
66
+ sha256: string;
67
+ }
68
+ /** Git-mode snapshot: diffs and reverts compute AGAINST GIT at review time —
69
+ * no file bytes are copied, which is the point: an exact diff needs git's
70
+ * whole object database, not our copy of HEAD. */
71
+ export interface GitWorkspaceSnapshot {
72
+ mode: "git";
73
+ /** HEAD sha at snapshot time — what the run saw as "current". */
74
+ head: string;
75
+ /** Realpath'd workspace root the snapshot covers — what the run ran in. */
76
+ cwd: string;
77
+ /**
78
+ * Untracked paths at snapshot time. The settle-time diff never credits the
79
+ * run with a file that was ALREADY untracked (git has no baseline for it),
80
+ * and revert never deletes one. This list IS the git mode's "snapshot path
81
+ * list" that revert scopes itself to.
82
+ */
83
+ untracked: string[];
84
+ /** Non-fatal capture failure — the review surface is skipped for the run
85
+ * (GET changes answers an empty list) rather than failing the turn. */
86
+ error?: string;
87
+ }
88
+ /** Tree-mode snapshot (non-git): a manifest walk plus baseline bytes. */
89
+ export interface TreeWorkspaceSnapshot {
90
+ mode: "tree";
91
+ cwd: string;
92
+ /** Relative posix path → size + sha256, for every walked file. */
93
+ files: Record<string, WorkspaceSnapshotFile>;
94
+ /**
95
+ * Baseline bytes (base64) up to RUN_SNAPSHOT_BLOB_MAX_BYTES total, in
96
+ * sorted walk order — the only way a non-git modified/deleted file can
97
+ * render a diff or be reverted.
98
+ */
99
+ blobs: Record<string, string>;
100
+ /** The walk's caps, so the settle-time diff re-walks identically. */
101
+ walk: {
102
+ maxFiles: number;
103
+ maxDepth: number;
104
+ };
105
+ /** True when the walk hit the file cap — later files were not walked, so
106
+ * they compare as phantom adds/removes. Documented degradation. */
107
+ truncated?: boolean;
108
+ /** True when at least one file was refused baseline bytes past the blob cap. */
109
+ blobCapped?: boolean;
110
+ /** Non-fatal capture failure — same degradation as the git-mode `error`. */
111
+ error?: string;
112
+ }
113
+ export type WorkspaceSnapshot = GitWorkspaceSnapshot | TreeWorkspaceSnapshot;
114
+ export type WorkspaceChangeStatus = "modified" | "added" | "deleted";
115
+ export interface WorkspaceChange {
116
+ /** Posix path relative to the workspace root. */
117
+ path: string;
118
+ status: WorkspaceChangeStatus;
119
+ /** `+` lines in the FULL diff (before capping). */
120
+ linesAdded: number;
121
+ /** `-` lines in the FULL diff (before capping). */
122
+ linesRemoved: number;
123
+ /** Capped diff text (RUN_DIFF_MAX_LINES × RUN_DIFF_MAX_BYTES), or `null`
124
+ * when the bytes to render it were never captured (blob cap) or a git
125
+ * call failed. */
126
+ diff: string | null;
127
+ /** True when `diff` is null because the file's baseline bytes were beyond
128
+ * the snapshot's blob cap — the non-git degradation flag. Revert cannot
129
+ * rebuild such a file either. */
130
+ capped?: boolean;
131
+ }
132
+ /** The persisted `changes.json` manifest beside a run's event log. */
133
+ export interface RunChangesFile {
134
+ runId: string;
135
+ /** Epoch ms the settle-time diff was computed. */
136
+ computedAt: number;
137
+ changes: WorkspaceChange[];
138
+ /** Non-fatal diff failure — the client sees changes: []. */
139
+ error?: string;
140
+ }
141
+ export interface SnapshotOptions {
142
+ maxFiles?: number;
143
+ maxDepth?: number;
144
+ blobMaxBytes?: number;
145
+ }
146
+ /**
147
+ * Total by contract: NEVER throws. Every failure mode records `error` on the
148
+ * snapshot, and an errored snapshot skips the review surface for its run
149
+ * (changes: [], revert no-ops) — a baseline that cannot be computed must not
150
+ * fail the accepted turn.
151
+ */
152
+ export declare function captureWorkspaceSnapshot(root: string, options?: SnapshotOptions): Promise<WorkspaceSnapshot>;
153
+ /** The run's baseline snapshot path — a sibling of its event log. */
154
+ export declare function runSnapshotPath(projectDir: string, sessionId: string, runId: string): string;
155
+ /** The run's settle-time changes manifest path — a sibling of its event log. */
156
+ export declare function runChangesPath(projectDir: string, sessionId: string, runId: string): string;
157
+ /** Persists the baseline snapshot. Callers wrap this — a failed persist is a
158
+ * degraded review surface, never a failed turn. */
159
+ export declare function persistRunSnapshot(projectDir: string, sessionId: string, runId: string, snapshot: WorkspaceSnapshot): Promise<void>;
160
+ export declare function readRunSnapshot(projectDir: string, sessionId: string, runId: string): Promise<WorkspaceSnapshot | undefined>;
161
+ export declare function readRunChanges(projectDir: string, sessionId: string, runId: string): Promise<RunChangesFile | undefined>;
162
+ /**
163
+ * What the workspace changed since the snapshot.
164
+ *
165
+ * Total by contract (never throws): the git-status failure path returns an
166
+ * empty list — a workspace whose git broke mid-run degrades to "no changes"
167
+ * rather than failing the settle. Every path it returns is root-relative, so
168
+ * downstream reads, diffs and reverts all go through `resolveInside`.
169
+ */
170
+ export declare function computeWorkspaceChanges(snapshot: WorkspaceSnapshot): Promise<WorkspaceChange[]>;
171
+ /**
172
+ * Computes the run's workspace diff and persists it as changes.json beside
173
+ * the run's event log. Never throws: a missing/errored snapshot leaves the
174
+ * changes file absent (GET answers `changes: []`), and a diff failure writes
175
+ * `{ changes: [], error }` so the run still reads as "no changes".
176
+ */
177
+ export declare function writeSettledRunChanges(projectDir: string, sessionId: string, runId: string): Promise<void>;
178
+ /**
179
+ * Restores the workspace to the snapshot baseline for THIS run's changes.
180
+ *
181
+ * Scoped strictly: every path goes through `resolveInside` against the
182
+ * snapshot root, and the paths acted on are exactly those in `changes` (never
183
+ * a bare `git clean`, never a walk). Returns the paths actually restored;
184
+ * un-restorable entries (a modified/deleted file whose baseline bytes were
185
+ * beyond the blob cap) are skipped and NOT reported as restored.
186
+ */
187
+ export declare function revertWorkspaceChanges(snapshot: WorkspaceSnapshot, changes: WorkspaceChange[]): Promise<string[]>;
188
+ //# sourceMappingURL=run-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-diff.d.ts","sourceRoot":"","sources":["../../src/web-server/run-diff.ts"],"names":[],"mappings":"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"}