@rryando/arcs 3.10.0 → 3.11.0

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 (326) hide show
  1. package/README.md +172 -146
  2. package/dist/cli/agent-registry.d.ts +12 -0
  3. package/dist/cli/agent-registry.d.ts.map +1 -0
  4. package/dist/cli/agent-registry.js +67 -0
  5. package/dist/cli/agent-registry.js.map +1 -0
  6. package/dist/cli/arcs-flash.d.ts +2 -0
  7. package/dist/cli/arcs-flash.d.ts.map +1 -0
  8. package/dist/cli/arcs-flash.js +68 -0
  9. package/dist/cli/arcs-flash.js.map +1 -0
  10. package/dist/cli/arcs-orchestrate-caveman.d.ts +2 -14
  11. package/dist/cli/arcs-orchestrate-caveman.d.ts.map +1 -1
  12. package/dist/cli/arcs-orchestrate-caveman.js +6 -97
  13. package/dist/cli/arcs-orchestrate-caveman.js.map +1 -1
  14. package/dist/cli/arcs-orchestrate.d.ts +1 -1
  15. package/dist/cli/arcs-orchestrate.d.ts.map +1 -1
  16. package/dist/cli/arcs-orchestrate.js +40 -383
  17. package/dist/cli/arcs-orchestrate.js.map +1 -1
  18. package/dist/cli/bundle-installer.d.ts +10 -4
  19. package/dist/cli/bundle-installer.d.ts.map +1 -1
  20. package/dist/cli/bundle-installer.js +99 -6
  21. package/dist/cli/bundle-installer.js.map +1 -1
  22. package/dist/cli/commands/batch.js +4 -0
  23. package/dist/cli/commands/batch.js.map +1 -1
  24. package/dist/cli/commands/hooks.d.ts +36 -0
  25. package/dist/cli/commands/hooks.d.ts.map +1 -0
  26. package/dist/cli/commands/hooks.js +298 -0
  27. package/dist/cli/commands/hooks.js.map +1 -0
  28. package/dist/cli/commands/index.d.ts +2 -0
  29. package/dist/cli/commands/index.d.ts.map +1 -1
  30. package/dist/cli/commands/index.js +2 -0
  31. package/dist/cli/commands/index.js.map +1 -1
  32. package/dist/cli/commands/project.js +27 -0
  33. package/dist/cli/commands/project.js.map +1 -1
  34. package/dist/cli/commands/task.js +16 -1
  35. package/dist/cli/commands/task.js.map +1 -1
  36. package/dist/cli/commands/web.d.ts +2 -0
  37. package/dist/cli/commands/web.d.ts.map +1 -0
  38. package/dist/cli/commands/web.js +56 -0
  39. package/dist/cli/commands/web.js.map +1 -0
  40. package/dist/cli/config.d.ts +32 -0
  41. package/dist/cli/config.d.ts.map +1 -1
  42. package/dist/cli/config.js +56 -0
  43. package/dist/cli/config.js.map +1 -1
  44. package/dist/cli/instructions.d.ts +19 -6
  45. package/dist/cli/instructions.d.ts.map +1 -1
  46. package/dist/cli/instructions.js +62 -32
  47. package/dist/cli/instructions.js.map +1 -1
  48. package/dist/cli/orchestrator-shared-blocks.d.ts +31 -0
  49. package/dist/cli/orchestrator-shared-blocks.d.ts.map +1 -0
  50. package/dist/cli/orchestrator-shared-blocks.js +148 -0
  51. package/dist/cli/orchestrator-shared-blocks.js.map +1 -0
  52. package/dist/cli/setup.d.ts.map +1 -1
  53. package/dist/cli/setup.js +159 -85
  54. package/dist/cli/setup.js.map +1 -1
  55. package/dist/retrieval/index-builder.d.ts.map +1 -1
  56. package/dist/retrieval/index-builder.js +29 -1
  57. package/dist/retrieval/index-builder.js.map +1 -1
  58. package/dist/utils/claude-code-hook-install.d.ts +80 -0
  59. package/dist/utils/claude-code-hook-install.d.ts.map +1 -0
  60. package/dist/utils/claude-code-hook-install.js +146 -0
  61. package/dist/utils/claude-code-hook-install.js.map +1 -0
  62. package/dist/utils/claude-transcript.d.ts +127 -0
  63. package/dist/utils/claude-transcript.d.ts.map +1 -0
  64. package/dist/utils/claude-transcript.js +353 -0
  65. package/dist/utils/claude-transcript.js.map +1 -0
  66. package/dist/utils/diagram-generator.d.ts +1 -1
  67. package/dist/utils/diagram-generator.d.ts.map +1 -1
  68. package/dist/utils/diagram-generator.js +3 -2
  69. package/dist/utils/diagram-generator.js.map +1 -1
  70. package/dist/utils/errors.d.ts +6 -2
  71. package/dist/utils/errors.d.ts.map +1 -1
  72. package/dist/utils/errors.js +12 -0
  73. package/dist/utils/errors.js.map +1 -1
  74. package/dist/utils/hook-token-store.d.ts +22 -0
  75. package/dist/utils/hook-token-store.d.ts.map +1 -0
  76. package/dist/utils/hook-token-store.js +43 -0
  77. package/dist/utils/hook-token-store.js.map +1 -0
  78. package/dist/utils/json-schemas.d.ts +186 -2
  79. package/dist/utils/json-schemas.d.ts.map +1 -1
  80. package/dist/utils/json-schemas.js +48 -4
  81. package/dist/utils/json-schemas.js.map +1 -1
  82. package/dist/utils/knowledge-store.d.ts +7 -1
  83. package/dist/utils/knowledge-store.d.ts.map +1 -1
  84. package/dist/utils/knowledge-store.js +97 -65
  85. package/dist/utils/knowledge-store.js.map +1 -1
  86. package/dist/utils/plan-store.d.ts +8 -0
  87. package/dist/utils/plan-store.d.ts.map +1 -1
  88. package/dist/utils/plan-store.js +98 -59
  89. package/dist/utils/plan-store.js.map +1 -1
  90. package/dist/utils/project-resolver.d.ts +8 -0
  91. package/dist/utils/project-resolver.d.ts.map +1 -1
  92. package/dist/utils/project-resolver.js +7 -2
  93. package/dist/utils/project-resolver.js.map +1 -1
  94. package/dist/utils/session-store.d.ts +113 -0
  95. package/dist/utils/session-store.d.ts.map +1 -0
  96. package/dist/utils/session-store.js +312 -0
  97. package/dist/utils/session-store.js.map +1 -0
  98. package/dist/utils/storage-utils.d.ts +31 -0
  99. package/dist/utils/storage-utils.d.ts.map +1 -1
  100. package/dist/utils/storage-utils.js +116 -5
  101. package/dist/utils/storage-utils.js.map +1 -1
  102. package/dist/utils/task-store.d.ts +7 -0
  103. package/dist/utils/task-store.d.ts.map +1 -1
  104. package/dist/utils/task-store.js +73 -23
  105. package/dist/utils/task-store.js.map +1 -1
  106. package/dist/web-client/assets/GraphCanvas-dNyZ458L.js +1 -0
  107. package/dist/web-client/assets/MarkdownEditor-BmU9mdkN.js +77 -0
  108. package/dist/web-client/assets/abnfDiagram-VRR7QNED-D1BFBoeF.js +1 -0
  109. package/dist/web-client/assets/arc-Bfaogrm1.js +1 -0
  110. package/dist/web-client/assets/architecture-TIHT7OUA-CJqI5wNI.js +1 -0
  111. package/dist/web-client/assets/architectureDiagram-ZJ3FMSHR-CA8hTWUK.js +36 -0
  112. package/dist/web-client/assets/array-BifhSqXX.js +1 -0
  113. package/dist/web-client/assets/blockDiagram-677ZJIJ3-CQpb_KwX.js +132 -0
  114. package/dist/web-client/assets/c4Diagram-LMCZKHZV-BhpHX84V.js +10 -0
  115. package/dist/web-client/assets/channel-C8DlmyVe.js +1 -0
  116. package/dist/web-client/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  117. package/dist/web-client/assets/chunk-32BRIVSS-BUusQQa_.js +1 -0
  118. package/dist/web-client/assets/chunk-52WLFC77-nNYwlftl.js +10 -0
  119. package/dist/web-client/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  120. package/dist/web-client/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
  121. package/dist/web-client/assets/chunk-C7G6YPKG-D0a-yqnK.js +1 -0
  122. package/dist/web-client/assets/chunk-EX3LRPZG-IDuRMN-4.js +231 -0
  123. package/dist/web-client/assets/chunk-FWX5IMBZ-D_spTcqi.js +2 -0
  124. package/dist/web-client/assets/chunk-HOUHSVGY-C-bcxwZS.js +1 -0
  125. package/dist/web-client/assets/chunk-ICXQ74PX-CjmK2bAM.js +2 -0
  126. package/dist/web-client/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  127. package/dist/web-client/assets/chunk-KEIR6QF5-DEvma7oi.js +161 -0
  128. package/dist/web-client/assets/chunk-MOJQB5TN-Bkc08KWY.js +88 -0
  129. package/dist/web-client/assets/chunk-OGEWGWER-BAAYYvG9.js +1 -0
  130. package/dist/web-client/assets/chunk-PUDLZKDR-WXbPY7NM.js +156 -0
  131. package/dist/web-client/assets/chunk-Q4XR5HBZ-DcbnjxQE.js +70 -0
  132. package/dist/web-client/assets/chunk-RYQCIY6F-np2RyIY1.js +1 -0
  133. package/dist/web-client/assets/chunk-V7JOEXUC-C6t75PAp.js +206 -0
  134. package/dist/web-client/assets/chunk-VAUOI2AC-DVrJ0Ic7.js +1 -0
  135. package/dist/web-client/assets/chunk-VR4S4FIN-MOOFvGS0.js +1 -0
  136. package/dist/web-client/assets/chunk-WYO6CB5R-sK7Y2NZD.js +125 -0
  137. package/dist/web-client/assets/chunk-XXDRQBXY-BvKO0v-W.js +1 -0
  138. package/dist/web-client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  139. package/dist/web-client/assets/chunk-ZGVPDNZ5-a13RQsku.js +62 -0
  140. package/dist/web-client/assets/chunk-ZIRB5QZD-BpeS1aZ7.js +32 -0
  141. package/dist/web-client/assets/classDiagram-OUVF2IWQ-p32N1P_G.js +1 -0
  142. package/dist/web-client/assets/classDiagram-v2-EOCWNBFH-p32N1P_G.js +1 -0
  143. package/dist/web-client/assets/cose-bilkent-JH36ORCC-BebHqzgp.js +1 -0
  144. package/dist/web-client/assets/cynefin-VYW2F7L2-D8xaH-wO.js +1 -0
  145. package/dist/web-client/assets/cynefinDiagram-TSTJHNR4-Bt__EqJW.js +62 -0
  146. package/dist/web-client/assets/cytoscape-fcose-peAzqedC.js +1 -0
  147. package/dist/web-client/assets/cytoscape.esm-C3UvhD5t.js +321 -0
  148. package/dist/web-client/assets/dagre-Buvkdvvj.js +1 -0
  149. package/dist/web-client/assets/dagre-VKFMJZFB-Bwgjwflz.js +4 -0
  150. package/dist/web-client/assets/defaultLocale-BFoDCU3G.js +1 -0
  151. package/dist/web-client/assets/diagram-FQU43EPY-CaPDVUq2.js +3 -0
  152. package/dist/web-client/assets/diagram-G47NLZAW-BQLB9YYA.js +24 -0
  153. package/dist/web-client/assets/diagram-NH7WQ7WH-BWo84w8Y.js +24 -0
  154. package/dist/web-client/assets/diagram-OA4YK3LP-bKn6Pz5s.js +30 -0
  155. package/dist/web-client/assets/diagram-WEI45ONY-BRqV5Oy6.js +41 -0
  156. package/dist/web-client/assets/dist-B_J_HbC0.js +1 -0
  157. package/dist/web-client/assets/ebnfDiagram-CCIWWBDH-DhUXL1-7.js +1 -0
  158. package/dist/web-client/assets/erDiagram-Q63AITRT-HXAQQ-_F.js +85 -0
  159. package/dist/web-client/assets/eventmodeling-45OFAUF4-Bj5P8mZJ.js +1 -0
  160. package/dist/web-client/assets/flowDiagram-23GEKE2U-37BztFri.js +1 -0
  161. package/dist/web-client/assets/ganttDiagram-NO4QXBWP-D-Ddf_Ii.js +292 -0
  162. package/dist/web-client/assets/gitGraph-TEB2WS4Q-BmHzs0uF.js +1 -0
  163. package/dist/web-client/assets/gitGraphDiagram-IHSO6WYX-YnQWrlh_.js +106 -0
  164. package/dist/web-client/assets/graphlib-DS17s2tU.js +1 -0
  165. package/dist/web-client/assets/index-3mNPVkix.css +2 -0
  166. package/dist/web-client/assets/index-DCWxuIeQ.js +58 -0
  167. package/dist/web-client/assets/info-DKCQHKI2-DCT_B7RN.js +1 -0
  168. package/dist/web-client/assets/infoDiagram-FWYZ7A6U-D-le1Zhq.js +2 -0
  169. package/dist/web-client/assets/init-C-OQMol4.js +1 -0
  170. package/dist/web-client/assets/ishikawaDiagram-FXEZZL3T-Jr1x2VJB.js +70 -0
  171. package/dist/web-client/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  172. package/dist/web-client/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  173. package/dist/web-client/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  174. package/dist/web-client/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  175. package/dist/web-client/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  176. package/dist/web-client/assets/journeyDiagram-5HDEW3XC-BF9ELxj-.js +139 -0
  177. package/dist/web-client/assets/kanban-definition-HUTT4EX6-C4fJqAxu.js +89 -0
  178. package/dist/web-client/assets/katex-DolUETbr.js +257 -0
  179. package/dist/web-client/assets/line-7N7ikFxa.js +1 -0
  180. package/dist/web-client/assets/linear-DeUiD2wj.js +1 -0
  181. package/dist/web-client/assets/map-BaFkSB1l.js +1 -0
  182. package/dist/web-client/assets/mermaid-parser.core-QbC1icPt.js +7 -0
  183. package/dist/web-client/assets/mermaid.core-C26d_UJm.js +11 -0
  184. package/dist/web-client/assets/mindmap-definition-LN4V7U3C-D6TV1JDf.js +96 -0
  185. package/dist/web-client/assets/ordinal-BDEzSJ7C.js +1 -0
  186. package/dist/web-client/assets/packet-7NZHBO7P-CR1vrGj3.js +1 -0
  187. package/dist/web-client/assets/path-COt_16Va.js +1 -0
  188. package/dist/web-client/assets/pegDiagram-2B236MQR-xOMBBtfV.js +1 -0
  189. package/dist/web-client/assets/pie-RZYD4A2V-BbWuhjwy.js +1 -0
  190. package/dist/web-client/assets/pieDiagram-ENE6RG2P-MsfnsqgW.js +39 -0
  191. package/dist/web-client/assets/quadrantDiagram-ABIIQ3AL-BoI7zKXF.js +7 -0
  192. package/dist/web-client/assets/radar-I7S5WNFK-CbYXKToJ.js +1 -0
  193. package/dist/web-client/assets/railroad-3IZDKUUU-6LxHDkLe.js +1 -0
  194. package/dist/web-client/assets/railroad-abnf-AHOZXSZD-2Dg9wu0J.js +1 -0
  195. package/dist/web-client/assets/railroad-ebnf-EBAXGLYW-C_E2ot0R.js +1 -0
  196. package/dist/web-client/assets/railroad-peg-LSFZ7HO6-Bs9UQR1b.js +1 -0
  197. package/dist/web-client/assets/railroadDiagram-RFXS5EU6-D6RUoUki.js +1 -0
  198. package/dist/web-client/assets/requirementDiagram-TGXJPOKE-B6k4BDpE.js +84 -0
  199. package/dist/web-client/assets/rolldown-runtime-Dd_uD5pT.js +1 -0
  200. package/dist/web-client/assets/rough.esm-By172zw-.js +1 -0
  201. package/dist/web-client/assets/sankeyDiagram-HTMAVEWB-BUDF-UFr.js +40 -0
  202. package/dist/web-client/assets/sequenceDiagram-DBY2YBRQ-D6GqcsUi.js +162 -0
  203. package/dist/web-client/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
  204. package/dist/web-client/assets/src-oBChb5qS.js +1 -0
  205. package/dist/web-client/assets/stateDiagram-2N3HPSRC-WfJCQAK5.js +1 -0
  206. package/dist/web-client/assets/stateDiagram-v2-6OUMAXLB-BCMWGnsJ.js +1 -0
  207. package/dist/web-client/assets/swimlanes-5IMT3BWC-BtMo82mC.js +2 -0
  208. package/dist/web-client/assets/swimlanesDiagram-G3AALYLV-DmudmLcK.js +8 -0
  209. package/dist/web-client/assets/timeline-definition-FHXFAJF6-CoAmv2Sn.js +120 -0
  210. package/dist/web-client/assets/treeView-QDETBFTQ-BWsKzE1s.js +1 -0
  211. package/dist/web-client/assets/treemap-6X3UGDF4-i_qGtB3o.js +1 -0
  212. package/dist/web-client/assets/vennDiagram-L72KCM5P-DYkiLe-P.js +34 -0
  213. package/dist/web-client/assets/wardley-OPB4EBWU-Daaqr1Vp.js +1 -0
  214. package/dist/web-client/assets/wardleyDiagram-EHGQE667-Bofbsg3J.js +78 -0
  215. package/dist/web-client/assets/xychartDiagram-FW5EYKEG-KNF4VTfL.js +7 -0
  216. package/dist/web-client/index.html +15 -0
  217. package/dist/web-server/app.d.ts +13 -0
  218. package/dist/web-server/app.d.ts.map +1 -0
  219. package/dist/web-server/app.js +58 -0
  220. package/dist/web-server/app.js.map +1 -0
  221. package/dist/web-server/claude-runner.d.ts +86 -0
  222. package/dist/web-server/claude-runner.d.ts.map +1 -0
  223. package/dist/web-server/claude-runner.js +320 -0
  224. package/dist/web-server/claude-runner.js.map +1 -0
  225. package/dist/web-server/hook-auth.d.ts +12 -0
  226. package/dist/web-server/hook-auth.d.ts.map +1 -0
  227. package/dist/web-server/hook-auth.js +36 -0
  228. package/dist/web-server/hook-auth.js.map +1 -0
  229. package/dist/web-server/index.d.ts +23 -0
  230. package/dist/web-server/index.d.ts.map +1 -0
  231. package/dist/web-server/index.js +49 -0
  232. package/dist/web-server/index.js.map +1 -0
  233. package/dist/web-server/opencode-client.d.ts +123 -0
  234. package/dist/web-server/opencode-client.d.ts.map +1 -0
  235. package/dist/web-server/opencode-client.js +514 -0
  236. package/dist/web-server/opencode-client.js.map +1 -0
  237. package/dist/web-server/respond.d.ts +33 -0
  238. package/dist/web-server/respond.d.ts.map +1 -0
  239. package/dist/web-server/respond.js +79 -0
  240. package/dist/web-server/respond.js.map +1 -0
  241. package/dist/web-server/routes/collections.d.ts +11 -0
  242. package/dist/web-server/routes/collections.d.ts.map +1 -0
  243. package/dist/web-server/routes/collections.js +217 -0
  244. package/dist/web-server/routes/collections.js.map +1 -0
  245. package/dist/web-server/routes/discovery.d.ts +7 -0
  246. package/dist/web-server/routes/discovery.d.ts.map +1 -0
  247. package/dist/web-server/routes/discovery.js +159 -0
  248. package/dist/web-server/routes/discovery.js.map +1 -0
  249. package/dist/web-server/routes/events.d.ts +6 -0
  250. package/dist/web-server/routes/events.d.ts.map +1 -0
  251. package/dist/web-server/routes/events.js +25 -0
  252. package/dist/web-server/routes/events.js.map +1 -0
  253. package/dist/web-server/routes/hook-events.d.ts +19 -0
  254. package/dist/web-server/routes/hook-events.d.ts.map +1 -0
  255. package/dist/web-server/routes/hook-events.js +135 -0
  256. package/dist/web-server/routes/hook-events.js.map +1 -0
  257. package/dist/web-server/routes/projects.d.ts +7 -0
  258. package/dist/web-server/routes/projects.d.ts.map +1 -0
  259. package/dist/web-server/routes/projects.js +272 -0
  260. package/dist/web-server/routes/projects.js.map +1 -0
  261. package/dist/web-server/routes/sessions.d.ts +16 -0
  262. package/dist/web-server/routes/sessions.d.ts.map +1 -0
  263. package/dist/web-server/routes/sessions.js +442 -0
  264. package/dist/web-server/routes/sessions.js.map +1 -0
  265. package/dist/web-server/security.d.ts +7 -0
  266. package/dist/web-server/security.d.ts.map +1 -0
  267. package/dist/web-server/security.js +41 -0
  268. package/dist/web-server/security.js.map +1 -0
  269. package/dist/web-server/static.d.ts +10 -0
  270. package/dist/web-server/static.d.ts.map +1 -0
  271. package/dist/web-server/static.js +36 -0
  272. package/dist/web-server/static.js.map +1 -0
  273. package/dist/web-server/storage.d.ts +17 -0
  274. package/dist/web-server/storage.d.ts.map +1 -0
  275. package/dist/web-server/storage.js +42 -0
  276. package/dist/web-server/storage.js.map +1 -0
  277. package/dist/web-server/watcher.d.ts +37 -0
  278. package/dist/web-server/watcher.d.ts.map +1 -0
  279. package/dist/web-server/watcher.js +181 -0
  280. package/dist/web-server/watcher.js.map +1 -0
  281. package/opencode/arcs/bundle-runtime.json +5 -13
  282. package/opencode/arcs/manifest.json +213 -149
  283. package/opencode/arcs/prompts/arcs-docs.txt +53 -47
  284. package/opencode/arcs/prompts/arcs-flash.txt +190 -0
  285. package/opencode/arcs/prompts/arcs-orchestrate-caveman.txt +116 -422
  286. package/opencode/arcs/prompts/arcs-orchestrate.txt +114 -341
  287. package/opencode/arcs/prompts/code-reviewer.txt +37 -98
  288. package/opencode/arcs/prompts/devil-advocate.txt +44 -115
  289. package/opencode/arcs/prompts/graph-explorer.txt +31 -179
  290. package/opencode/arcs/prompts/software-engineer.txt +24 -6
  291. package/opencode/arcs/prompts/tech-architect.txt +25 -9
  292. package/opencode/arcs/skills/brainstorming/SKILL.md +65 -105
  293. package/opencode/arcs/skills/deep-pr-review/SKILL.md +5 -5
  294. package/opencode/arcs/skills/deep-pr-review/review-template.md +1 -1
  295. package/opencode/arcs/skills/enriching-codegraph-proposals/SKILL.md +17 -18
  296. package/opencode/arcs/skills/executing-plans/SKILL.md +26 -234
  297. package/opencode/arcs/skills/implementation/SKILL.md +61 -0
  298. package/opencode/arcs/skills/init-project/SKILL.md +16 -15
  299. package/opencode/arcs/skills/install-claude-code-hook/SKILL.md +143 -0
  300. package/opencode/arcs/skills/systematic-debugging/SKILL.md +7 -7
  301. package/opencode/arcs/skills/test-driven-development/SKILL.md +1 -1
  302. package/opencode/arcs/skills/to-diagram/SKILL.md +8 -3
  303. package/opencode/arcs/skills/writing-knowledge/SKILL.md +7 -6
  304. package/opencode/arcs/skills/writing-plans/SKILL.md +80 -130
  305. package/opencode/arcs/skills/writing-plans/plan-document-reviewer-prompt.md +38 -30
  306. package/package.json +14 -6
  307. package/scripts/build-opencode-bundle.mjs +22 -7
  308. package/scripts/claude-code-session-hook.mjs +125 -0
  309. package/scripts/deploy-claudecode-bundle.mjs +185 -132
  310. package/scripts/deploy-opencode-bundle.mjs +181 -5
  311. package/scripts/lib/bundle-helpers.mjs +26 -0
  312. package/scripts/lint-bundle.mjs +123 -3
  313. package/skills/explore-dag.md +5 -3
  314. package/skills/init-project.md +27 -26
  315. package/skills/orchestrate.md +29 -13
  316. package/skills/update-docs.md +8 -13
  317. package/opencode/arcs/prompts/docs-researcher.txt +0 -79
  318. package/opencode/arcs/prompts/oncall-ops.txt +0 -85
  319. package/opencode/arcs/skills/code-agent/SKILL.md +0 -63
  320. package/opencode/arcs/skills/executing-plans/code-quality-reviewer-prompt.md +0 -57
  321. package/opencode/arcs/skills/executing-plans/implementer-prompt.md +0 -152
  322. package/opencode/arcs/skills/executing-plans/spec-reviewer-prompt.md +0 -91
  323. package/opencode/arcs/skills/quick-dev/SKILL.md +0 -52
  324. package/opencode/arcs/skills/requesting-code-review/SKILL.md +0 -59
  325. package/opencode/arcs/skills/requesting-code-review/code-reviewer.md +0 -139
  326. package/opencode/arcs/skills/the-ladder/SKILL.md +0 -54
@@ -0,0 +1,353 @@
1
+ /**
2
+ * Claude Code transcript mirroring for the session bridge.
3
+ *
4
+ * Owns a per-session sidecar at `sessions/{normalizedId}.transcript.jsonl`
5
+ * that mirrors a Claude Code JSONL transcript (the runtime's single source of
6
+ * truth) into a derived read-model for the web UI. The sidecar is append-only
7
+ * and keyed by transcript line offsets so re-mirroring is idempotent; when the
8
+ * transcript is compacted/rewritten below the mirrored offset, the sidecar is
9
+ * rebuilt from line 0 while preserving ARCS-authored turns (any record with a
10
+ * negative id — references and web-sent user/assistant turns).
11
+ *
12
+ * Never throws: missing/unreadable/oversized/malformed inputs are silent
13
+ * no-ops, and the sidecar never touches `sessions/index.json`.
14
+ */
15
+ import { appendFile, readFile, stat } from "node:fs/promises";
16
+ import { join } from "node:path";
17
+ import { withLock } from "./file-lock.js";
18
+ import { normalizeIdentifier } from "./slug.js";
19
+ import { ensureDir, nowISO, writeTextAtomic } from "./storage-utils.js";
20
+ /** Single-read cap for transcript files; anything larger mirrors as a no-op. */
21
+ export const TRANSCRIPT_MAX_BYTES = 20 * 1024 * 1024;
22
+ // ---------------------------------------------------------------------------
23
+ // Paths & locking
24
+ // ---------------------------------------------------------------------------
25
+ /**
26
+ * Sidecar path. The filename keys on the normalized id so it matches the
27
+ * session index record exactly (normalizeIdentifier round-trips UUIDs
28
+ * unchanged, so Claude Code session uuids survive verbatim).
29
+ */
30
+ export function sessionTranscriptPath(projectDir, normalizedId) {
31
+ return join(projectDir, "sessions", `${normalizeIdentifier(normalizedId)}.transcript.jsonl`);
32
+ }
33
+ /**
34
+ * The same advisory lock the session store uses for index mutations. Kept
35
+ * local (not imported) because session-store's helper is private and that
36
+ * module is out of scope; the path mirrors its `sessions/.store` so appends
37
+ * here serialize with createSession/updateSession/etc.
38
+ */
39
+ function sessionStoreLockPath(projectDir) {
40
+ return join(projectDir, "sessions", ".store");
41
+ }
42
+ // ---------------------------------------------------------------------------
43
+ // Transcript parser — verified against the real Claude Code JSONL shape
44
+ // ---------------------------------------------------------------------------
45
+ function isBlock(value) {
46
+ return typeof value === "object" && value !== null && !Array.isArray(value);
47
+ }
48
+ /** Concatenates non-empty text blocks; thinking/tool_use blocks are dropped. */
49
+ function extractTextBlocks(blocks) {
50
+ return blocks
51
+ .filter((block) => isBlock(block) &&
52
+ block.type === "text" &&
53
+ typeof block.text === "string" &&
54
+ block.text !== "")
55
+ .map((block) => block.text)
56
+ .join("\n");
57
+ }
58
+ /**
59
+ * Parses one transcript line into a normalized turn, or null when the line is
60
+ * noise/malformed. Malformed JSON is skipped, never thrown.
61
+ *
62
+ * Noise rules (verified against real ~/.claude/projects JSONL transcripts):
63
+ * - types other than "user"/"assistant" (mode, agent-setting, permission-mode,
64
+ * file-history-snapshot, last-prompt, queue-operation, system, attachment…)
65
+ * - user entries with isMeta:true (the <local-command-caveat> wrapper)
66
+ * - user local-command payloads (<command-name>/<local-command-stdout>), which
67
+ * in practice carry NO isMeta flag at all — filtered by content marker
68
+ * - user entries whose content is a tool_result array (tool output echoes)
69
+ * - thinking blocks inside assistant content
70
+ * - assistant lines with neither text nor tool_use (thinking-only lines)
71
+ */
72
+ function parseTranscriptLine(rawLine, lineIndex) {
73
+ if (rawLine.trim() === "")
74
+ return null;
75
+ let entry;
76
+ try {
77
+ entry = JSON.parse(rawLine);
78
+ }
79
+ catch {
80
+ return null;
81
+ }
82
+ if (!isBlock(entry))
83
+ return null;
84
+ if (entry.type !== "user" && entry.type !== "assistant")
85
+ return null;
86
+ const message = entry.message;
87
+ if (!isBlock(message))
88
+ return null;
89
+ const ts = typeof entry.timestamp === "string" ? entry.timestamp : undefined;
90
+ if (entry.type === "user") {
91
+ if (entry.isMeta === true)
92
+ return null;
93
+ const content = message.content;
94
+ if (typeof content === "string") {
95
+ const text = content.trim();
96
+ if (text.startsWith("<command-name>") ||
97
+ text.startsWith("<local-command-stdout>") ||
98
+ text.startsWith("<local-command-caveat>")) {
99
+ return null;
100
+ }
101
+ return { id: lineIndex, type: "user", text, ...(ts !== undefined ? { ts } : {}) };
102
+ }
103
+ if (Array.isArray(content)) {
104
+ // Claude Code user arrays are tool_result blocks — echoed tool output,
105
+ // never a real prompt. (The rare text-only array, e.g. an interruption
106
+ // notice, is kept.)
107
+ if (content.some((block) => isBlock(block) && block.type === "tool_result"))
108
+ return null;
109
+ const text = extractTextBlocks(content);
110
+ if (text === "")
111
+ return null;
112
+ return { id: lineIndex, type: "user", text, ...(ts !== undefined ? { ts } : {}) };
113
+ }
114
+ return null;
115
+ }
116
+ // assistant — content is a block array: keep text, dim tool_use, drop thinking.
117
+ if (!Array.isArray(message.content))
118
+ return null;
119
+ const text = extractTextBlocks(message.content);
120
+ const toolUse = message.content.find((block) => isBlock(block) && block.type === "tool_use" && typeof block.name === "string");
121
+ if (text === "" && toolUse === undefined)
122
+ return null;
123
+ const turn = {
124
+ id: lineIndex,
125
+ type: "assistant",
126
+ text,
127
+ ...(ts !== undefined ? { ts } : {}),
128
+ };
129
+ if (toolUse !== undefined)
130
+ turn.tool = { name: toolUse.name };
131
+ return turn;
132
+ }
133
+ /**
134
+ * Reads a Claude Code JSONL transcript and parses only lines >= fromLine.
135
+ * Returns the kept turns (absolute line indices) plus the transcript's total
136
+ * record-line count. Never throws — unreadable files yield empty results.
137
+ */
138
+ export async function readTranscriptTurns(filePath, fromLine) {
139
+ let raw;
140
+ try {
141
+ raw = await readFile(filePath, "utf-8");
142
+ }
143
+ catch {
144
+ return { turns: [], totalLines: 0 };
145
+ }
146
+ const lines = raw.split("\n");
147
+ // A trailing newline produces one empty split element — not a record line.
148
+ while (lines.length > 0 && lines[lines.length - 1] === "")
149
+ lines.pop();
150
+ const totalLines = lines.length;
151
+ const turns = [];
152
+ for (let lineIndex = fromLine; lineIndex < totalLines; lineIndex++) {
153
+ const turn = parseTranscriptLine(lines[lineIndex] ?? "", lineIndex);
154
+ if (turn !== null)
155
+ turns.push(turn);
156
+ }
157
+ return { turns, totalLines };
158
+ }
159
+ // ---------------------------------------------------------------------------
160
+ // Sidecar read/write
161
+ // ---------------------------------------------------------------------------
162
+ function parseSidecarLine(rawLine) {
163
+ if (rawLine.trim() === "")
164
+ return null;
165
+ try {
166
+ const parsed = JSON.parse(rawLine);
167
+ if (isBlock(parsed) &&
168
+ (parsed.type === "user" || parsed.type === "assistant" || parsed.type === "reference")) {
169
+ return parsed;
170
+ }
171
+ return null;
172
+ }
173
+ catch {
174
+ return null;
175
+ }
176
+ }
177
+ /** Reads the sidecar, skipping malformed lines. Never throws. */
178
+ async function readSidecarRecords(filePath) {
179
+ try {
180
+ const raw = await readFile(filePath, "utf-8");
181
+ return raw.split("\n").flatMap((line) => {
182
+ const record = parseSidecarLine(line);
183
+ return record !== null ? [record] : [];
184
+ });
185
+ }
186
+ catch {
187
+ return [];
188
+ }
189
+ }
190
+ /**
191
+ * Resume offset = the next unmirrored transcript line. ARCS-authored turns are
192
+ * excluded (they are not transcript lines, and their negative ids never exceed
193
+ * the -1 sentinel, so they cannot push the offset), and the id of the last
194
+ * mirrored turn is the transcript line index it came from, so
195
+ * `last id + 1` is the count of transcript lines consumed. Equivalent to the
196
+ * sidecar line count in the noise-free case, and correct under interleaved
197
+ * noise and ARCS-authored turns where a raw line count would drift.
198
+ */
199
+ function mirrorOffset(records) {
200
+ let lastMirroredId = -1;
201
+ for (const record of records) {
202
+ if (record.type !== "reference" &&
203
+ typeof record.id === "number" &&
204
+ record.id > lastMirroredId) {
205
+ lastMirroredId = record.id;
206
+ }
207
+ }
208
+ return lastMirroredId + 1;
209
+ }
210
+ function serializeRecords(records) {
211
+ if (records.length === 0)
212
+ return "";
213
+ return `${records.map((record) => JSON.stringify(record)).join("\n")}\n`;
214
+ }
215
+ /**
216
+ * Next id in the shared ARCS-authored negative space: min(existing id < 0) − 1.
217
+ * All ARCS-authored records — session user/assistant turns and references —
218
+ * draw from this one monotonic sequence, so a user turn and a reference can
219
+ * never collide on the same id (the panel renders <TurnRow key={t.id}>).
220
+ * No negative ids yet: first id is −1 (0 − 1).
221
+ */
222
+ function nextNegativeTurnId(records) {
223
+ let minNegative = 0;
224
+ for (const record of records) {
225
+ if (typeof record.id === "number" && record.id < 0 && record.id < minNegative) {
226
+ minNegative = record.id;
227
+ }
228
+ }
229
+ return minNegative - 1;
230
+ }
231
+ async function appendRecords(filePath, records) {
232
+ if (records.length === 0)
233
+ return;
234
+ await appendFile(filePath, serializeRecords(records), "utf-8");
235
+ }
236
+ // ---------------------------------------------------------------------------
237
+ // Public API
238
+ // ---------------------------------------------------------------------------
239
+ /**
240
+ * Mirrors the transcript into the per-session sidecar (append-only, offset
241
+ * idempotent). When the transcript has fewer lines than the mirrored offset —
242
+ * Claude Code compacts/rewrites its JSONL — the sidecar is rebuilt from line 0
243
+ * with existing ARCS-authored turns (id < 0) preserved.
244
+ *
245
+ * Never throws: missing/unreadable/oversized/malformed inputs are silent
246
+ * no-ops and the sidecar stays untouched. Never writes sessions/index.json.
247
+ */
248
+ export async function mirrorSessionTranscript(projectDir, normalizedId, transcriptPath) {
249
+ try {
250
+ // Cap the single read: oversized transcripts are silently skipped.
251
+ const transcriptStat = await stat(transcriptPath);
252
+ if (!transcriptStat.isFile() || transcriptStat.size > TRANSCRIPT_MAX_BYTES)
253
+ return;
254
+ await withLock(sessionStoreLockPath(projectDir), async () => {
255
+ const sidecarPath = sessionTranscriptPath(projectDir, normalizedId);
256
+ const existing = await readSidecarRecords(sidecarPath);
257
+ const offset = mirrorOffset(existing);
258
+ const { turns, totalLines } = await readTranscriptTurns(transcriptPath, offset);
259
+ if (totalLines < offset) {
260
+ // Compaction/rewrite: rebuild from line 0, preserving every
261
+ // ARCS-authored turn (id < 0) — references and web-sent user/assistant
262
+ // turns both live in the negative space.
263
+ // SHORTCUT: compaction detection is line-count-only — a corrupted or
264
+ // truncated transcript that happens to shrink below the mirrored
265
+ // offset is treated as compaction and mirrored turns are dropped
266
+ // (ARCS-authored turns always survive). Upgrade when Claude Code's
267
+ // JSONL rewrite signals are identifiable, e.g. a marker record.
268
+ const arsAuthored = existing.filter((record) => typeof record.id === "number" && record.id < 0);
269
+ const { turns: allTurns } = await readTranscriptTurns(transcriptPath, 0);
270
+ await ensureDir(join(projectDir, "sessions"));
271
+ await writeTextAtomic(sidecarPath, serializeRecords([...arsAuthored, ...allTurns]));
272
+ return;
273
+ }
274
+ if (turns.length === 0)
275
+ return;
276
+ await ensureDir(join(projectDir, "sessions"));
277
+ await appendRecords(sidecarPath, turns);
278
+ });
279
+ }
280
+ catch {
281
+ // Never throws — every mirror failure is a swallowed no-op.
282
+ }
283
+ }
284
+ /**
285
+ * Appends an ARCS-authored reference turn (document section sent to the
286
+ * session) to the sidecar under the same sessions/.store lock the session
287
+ * store uses, so appends serialize with index mutations. A failed append is a
288
+ * swallowed no-op — the caller has already delivered the message. The id is
289
+ * minted from the shared ARCS-authored negative space so it can never collide
290
+ * with a web-sent user/assistant turn.
291
+ */
292
+ export async function appendReferenceTurn(projectDir, normalizedId, turn) {
293
+ try {
294
+ await ensureDir(join(projectDir, "sessions"));
295
+ await withLock(sessionStoreLockPath(projectDir), async () => {
296
+ const sidecarPath = sessionTranscriptPath(projectDir, normalizedId);
297
+ const existing = await readSidecarRecords(sidecarPath);
298
+ const record = {
299
+ id: nextNegativeTurnId(existing),
300
+ type: "reference",
301
+ text: turn.text ?? "",
302
+ ts: turn.ts ?? nowISO(),
303
+ ...(turn.tool !== undefined ? { tool: turn.tool } : {}),
304
+ ...(turn.section !== undefined ? { section: turn.section } : {}),
305
+ ...(turn.source !== undefined ? { source: turn.source } : {}),
306
+ };
307
+ await appendRecords(sidecarPath, [record]);
308
+ });
309
+ }
310
+ catch {
311
+ // Failed append is a swallowed no-op.
312
+ }
313
+ }
314
+ /**
315
+ * Appends an ARCS-authored user/assistant turn (sent to the session from the
316
+ * web UI) to the sidecar under the same sessions/.store lock the session store
317
+ * and the other sidecar writers use, so appends serialize with index mutations
318
+ * and reference appends. A failed append is a swallowed no-op. The id is
319
+ * minted from the shared ARCS-authored negative space so it can never collide
320
+ * with a reference turn — both render through <TurnRow key={t.id}>.
321
+ */
322
+ export async function appendSessionTurn(projectDir, normalizedId, turn) {
323
+ try {
324
+ await ensureDir(join(projectDir, "sessions"));
325
+ await withLock(sessionStoreLockPath(projectDir), async () => {
326
+ const sidecarPath = sessionTranscriptPath(projectDir, normalizedId);
327
+ const existing = await readSidecarRecords(sidecarPath);
328
+ const record = {
329
+ id: nextNegativeTurnId(existing),
330
+ type: turn.type,
331
+ text: turn.text,
332
+ ...(turn.ts !== undefined ? { ts: turn.ts } : {}),
333
+ };
334
+ await appendRecords(sidecarPath, [record]);
335
+ });
336
+ }
337
+ catch {
338
+ // Failed append is a swallowed no-op.
339
+ }
340
+ }
341
+ /**
342
+ * Reads the sidecar for the GET route, skipping malformed lines. Returns an
343
+ * empty array when the sidecar is missing. Never throws.
344
+ */
345
+ export async function readSessionTurns(projectDir, normalizedId) {
346
+ try {
347
+ return await readSidecarRecords(sessionTranscriptPath(projectDir, normalizedId));
348
+ }
349
+ catch {
350
+ return [];
351
+ }
352
+ }
353
+ //# sourceMappingURL=claude-transcript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-transcript.js","sourceRoot":"","sources":["../../src/utils/claude-transcript.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { TaskMeta } from "./project-memory.js";
1
+ import { type TaskMeta } from "./task-store.js";
2
2
  export interface DiagramNode {
3
3
  nodeId: string;
4
4
  taskId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-generator.d.ts","sourceRoot":"","sources":["../../src/utils/diagram-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,qBAAqB,CAwHjG"}
1
+ {"version":3,"file":"diagram-generator.d.ts","sourceRoot":"","sources":["../../src/utils/diagram-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3E,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,qBAAqB,CAyHjG"}
@@ -1,3 +1,4 @@
1
+ import { normalizeTaskWorkMetadata } from "./task-store.js";
1
2
  /**
2
3
  * Generates a Mermaid .mmd diagram from plan tasks.
3
4
  * Node IDs assigned T001+ in stable task.id order (a.id.localeCompare(b.id)).
@@ -55,12 +56,12 @@ export function generateDiagramFromTasks(planId, tasks) {
55
56
  lines.push(`%% next-action: Start first backlog task`, "");
56
57
  for (let i = 0; i < nodes.length; i++) {
57
58
  const node = nodes[i];
58
- const t = sorted[i];
59
+ const t = normalizeTaskWorkMetadata(sorted[i]);
59
60
  const deps = t.dependsOn ?? [];
60
61
  const blockedBy = deps
61
62
  .map((depId) => taskIdToNodeId.get(depId))
62
63
  .filter((n) => n !== undefined);
63
- lines.push(`%% node: ${node.nodeId}`, `%% title: ${t.title}`, `%% status: ${t.status}`, `%% skill: ${t.skill ?? "quick-dev"}`, `%% scope: ${t.scope ?? "(TBD)"}`);
64
+ lines.push(`%% node: ${node.nodeId}`, `%% title: ${t.title}`, `%% status: ${t.status}`, `%% skill: ${t.skill ?? "implementation"}`, `%% work-mode: ${t.workMode ?? "bounded"}`, `%% scope: ${t.scope ?? "(TBD)"}`);
64
65
  if (t.sourceFiles && t.sourceFiles.length > 0) {
65
66
  const filesStr = t.sourceFiles
66
67
  .map((f) => (f.anchor ? `${f.path}:${f.anchor}` : f.path))
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-generator.js","sourceRoot":"","sources":["../../src/utils/diagram-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagram-generator.js","sourceRoot":"","sources":["../../src/utils/diagram-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAiB,MAAM,iBAAiB,CAAC;AAa3E;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,KAAiB;IACxE,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,KAAK,GAAkB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;QAC5C,MAAM,EAAE,CAAC,CAAC,EAAE;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC,CAAC;IAEJ,uDAAuD;IACvD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,2DAA2D;IAC3D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,iCAAiC;IACjC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC;YAC5E,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErF,MAAM,KAAK,GAAa;QACtB,YAAY,MAAM,EAAE;QACpB,cAAc,UAAU,EAAE;QAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,6BAA6B;KACrG,CAAC;IACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,eAAe,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,0CAA0C,EAAE,EAAE,CAAC,CAAC;IAE3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI;aACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QAE/C,KAAK,CAAC,IAAI,CACR,YAAY,IAAI,CAAC,MAAM,EAAE,EACzB,aAAa,CAAC,CAAC,KAAK,EAAE,EACtB,cAAc,CAAC,CAAC,MAAM,EAAE,EACxB,aAAa,CAAC,CAAC,KAAK,IAAI,gBAAgB,EAAE,EAC1C,iBAAiB,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAE,EAC1C,aAAa,CAAC,CAAC,KAAK,IAAI,OAAO,EAAE,CAClC,CAAC;QACF,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW;iBAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACzD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,UAAU,IAAI,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;QAChG,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,kBAAkB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,cAAc,EACd,2CAA2C,EAC3C,iDAAiD,EACjD,8CAA8C,EAC9C,8CAA8C,EAC9C,EAAE,CACH,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,GAAG,GACP,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9F,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,qEAAqE;IACrE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,YAAY,EAAE,CAAC;gBACjB,SAAS,CAAC,IAAI,CAAC,OAAO,YAAY,QAAQ,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IACD,SAAS,CAAC,IAAI,EAAE,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACjD,CAAC"}
@@ -15,11 +15,15 @@ export declare function dependencyNotFound(ids: string[]): DagError;
15
15
  export declare function invalidPlanStatus(status: string): DagError;
16
16
  export declare function invalidTaskStatus(status: string): DagError;
17
17
  export declare function invalidTaskPriority(priority: string): DagError;
18
+ export declare function invalidSessionStatus(status: string): DagError;
19
+ export declare function invalidSessionRuntimeType(runtimeType: string): DagError;
20
+ export declare function invalidSessionId(runtimeSessionId: string): DagError;
21
+ export declare function invalidSessionLink(detail: string): DagError;
18
22
  export declare function invalidKnowledgeKind(kind: string): DagError;
19
23
  export declare function invalidKeyword(keyword: string): DagError;
20
24
  export declare function invalidFileRef(detail: string): DagError;
21
- export declare function normalizedIdCollision(kind: "plan" | "knowledge entry" | "task", requestedId: string, normalizedId: string): DagError;
22
- export declare function itemNotFound(kind: "plan" | "knowledge entry" | "task", id: string): DagError;
25
+ export declare function normalizedIdCollision(kind: "plan" | "knowledge entry" | "task" | "session", requestedId: string, normalizedId: string): DagError;
26
+ export declare function itemNotFound(kind: "plan" | "knowledge entry" | "task" | "session", id: string): DagError;
23
27
  export declare function planNotFound(slug: string, planId: string): DagError;
24
28
  export declare function invalidFileFormat(filePath: string, details: string): DagError;
25
29
  export declare function indexRebuildFailed(kind: "plans" | "knowledge", reason: string): DagError;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qBAAa,QAAS,SAAQ,KAAK;aAEf,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM;CAKlB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAEtD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAE3D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAKpD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAKxE;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,QAAQ,CAKzE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAE9D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAE9D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAE3D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAExD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAEvD;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,MAAM,EACzC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,QAAQ,CAKV;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,CAE5F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAEnE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAE7E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAExF;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAM9D;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAMtF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAK3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAKvD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ;;;;;;EAExC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qBAAa,QAAS,SAAQ,KAAK;aAEf,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM;CAKlB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAEtD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAE3D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAKpD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAKxE;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,QAAQ,CAKzE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAE9D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAE9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAE7D;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAKvE;AAED,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,CAKnE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAE3D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAE3D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAExD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAEvD;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,MAAM,GAAG,SAAS,EACrD,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,QAAQ,CAKV;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,MAAM,GAAG,SAAS,EACrD,EAAE,EAAE,MAAM,GACT,QAAQ,CAEV;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAEnE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAE7E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAExF;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAM9D;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAMtF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAK3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAKvD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ;;;;;;EAExC"}
@@ -40,6 +40,18 @@ export function invalidTaskStatus(status) {
40
40
  export function invalidTaskPriority(priority) {
41
41
  return new DagError("INVALID_TASK_PRIORITY", `Invalid task priority "${priority}".`);
42
42
  }
43
+ export function invalidSessionStatus(status) {
44
+ return new DagError("INVALID_SESSION_STATUS", `Invalid session status "${status}".`);
45
+ }
46
+ export function invalidSessionRuntimeType(runtimeType) {
47
+ return new DagError("INVALID_SESSION_RUNTIME_TYPE", `Invalid session runtime type "${runtimeType}".`);
48
+ }
49
+ export function invalidSessionId(runtimeSessionId) {
50
+ return new DagError("INVALID_SESSION_ID", `Invalid runtime session id "${runtimeSessionId}". Must contain at least one alphanumeric character.`);
51
+ }
52
+ export function invalidSessionLink(detail) {
53
+ return new DagError("INVALID_SESSION_LINK", `Invalid session link: ${detail}`);
54
+ }
43
55
  export function invalidKnowledgeKind(kind) {
44
56
  return new DagError("INVALID_KNOWLEDGE_KIND", `Invalid knowledge kind "${kind}".`);
45
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Per-project auth token for the Claude Code session-bridge hook endpoint.
3
+ *
4
+ * Loopback-only is not enough on its own: every process on the machine shares
5
+ * localhost, so any local program could otherwise register sessions or drain a
6
+ * project's message queue. The token proves the caller is the hook script that
7
+ * `arcs hooks install-claude-code` provisioned for this project.
8
+ *
9
+ * Intentionally not a CRUD store — one token per project, rotated by rerunning
10
+ * the install command. No index, no markdown mirror, no lock (a rotation races
11
+ * only with itself, and the loser simply has to rerun install).
12
+ */
13
+ export declare function hookTokenPath(projectDir: string): string;
14
+ export declare function readHookToken(projectDir: string): Promise<string | undefined>;
15
+ export declare function writeHookToken(projectDir: string, token: string): Promise<void>;
16
+ /**
17
+ * Constant-time token comparison. Returns false when the project has no token
18
+ * provisioned yet, so an uninstalled project cannot be driven by an empty
19
+ * `Authorization` header.
20
+ */
21
+ export declare function verifyHookToken(projectDir: string, candidate: string): Promise<boolean>;
22
+ //# sourceMappingURL=hook-token-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-token-store.d.ts","sourceRoot":"","sources":["../../src/utils/hook-token-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAGnF;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ7F"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Per-project auth token for the Claude Code session-bridge hook endpoint.
3
+ *
4
+ * Loopback-only is not enough on its own: every process on the machine shares
5
+ * localhost, so any local program could otherwise register sessions or drain a
6
+ * project's message queue. The token proves the caller is the hook script that
7
+ * `arcs hooks install-claude-code` provisioned for this project.
8
+ *
9
+ * Intentionally not a CRUD store — one token per project, rotated by rerunning
10
+ * the install command. No index, no markdown mirror, no lock (a rotation races
11
+ * only with itself, and the loser simply has to rerun install).
12
+ */
13
+ import { timingSafeEqual } from "node:crypto";
14
+ import { join } from "node:path";
15
+ import { readJsonSafe } from "./json.js";
16
+ import { ensureDir, nowISO, writeJson } from "./storage-utils.js";
17
+ export function hookTokenPath(projectDir) {
18
+ return join(projectDir, "hooks", "claude-code-token.json");
19
+ }
20
+ export async function readHookToken(projectDir) {
21
+ const file = await readJsonSafe(hookTokenPath(projectDir));
22
+ return typeof file?.token === "string" && file.token ? file.token : undefined;
23
+ }
24
+ export async function writeHookToken(projectDir, token) {
25
+ await ensureDir(join(projectDir, "hooks"));
26
+ await writeJson(hookTokenPath(projectDir), { token, createdAt: nowISO() });
27
+ }
28
+ /**
29
+ * Constant-time token comparison. Returns false when the project has no token
30
+ * provisioned yet, so an uninstalled project cannot be driven by an empty
31
+ * `Authorization` header.
32
+ */
33
+ export async function verifyHookToken(projectDir, candidate) {
34
+ const token = await readHookToken(projectDir);
35
+ if (!token || !candidate)
36
+ return false;
37
+ const expected = Buffer.from(token, "utf-8");
38
+ const actual = Buffer.from(candidate, "utf-8");
39
+ if (expected.length !== actual.length)
40
+ return false;
41
+ return timingSafeEqual(expected, actual);
42
+ }
43
+ //# sourceMappingURL=hook-token-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-token-store.js","sourceRoot":"","sources":["../../src/utils/hook-token-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAOlE,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,OAAO,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAkB;IACpD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAgB,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1E,OAAO,OAAO,IAAI,EAAE,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB,EAAE,KAAa;IACpE,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3C,MAAM,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,SAAiB;IACzE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAEvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACpD,OAAO,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC"}