@rryando/arcs 4.2.0 → 4.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 (185) hide show
  1. package/README.md +2 -2
  2. package/dist/cli/arcs-flash.d.ts +1 -1
  3. package/dist/cli/arcs-flash.d.ts.map +1 -1
  4. package/dist/cli/arcs-flash.js +3 -5
  5. package/dist/cli/arcs-flash.js.map +1 -1
  6. package/dist/cli/arcs-orchestrate.d.ts +1 -1
  7. package/dist/cli/arcs-orchestrate.d.ts.map +1 -1
  8. package/dist/cli/commands/index.d.ts +0 -1
  9. package/dist/cli/commands/index.d.ts.map +1 -1
  10. package/dist/cli/commands/index.js +0 -1
  11. package/dist/cli/commands/index.js.map +1 -1
  12. package/dist/cli/commands/project.js +1 -30
  13. package/dist/cli/commands/project.js.map +1 -1
  14. package/dist/cli/commands/proposal-doc.d.ts +2 -0
  15. package/dist/cli/commands/proposal-doc.d.ts.map +1 -0
  16. package/dist/cli/commands/proposal-doc.js +381 -0
  17. package/dist/cli/commands/proposal-doc.js.map +1 -0
  18. package/dist/cli/commands/web.js +4 -10
  19. package/dist/cli/commands/web.js.map +1 -1
  20. package/dist/cli/orchestrator-shared-blocks.d.ts +11 -10
  21. package/dist/cli/orchestrator-shared-blocks.d.ts.map +1 -1
  22. package/dist/cli/orchestrator-shared-blocks.js +21 -16
  23. package/dist/cli/orchestrator-shared-blocks.js.map +1 -1
  24. package/dist/utils/graphify-knowledge.d.ts +22 -0
  25. package/dist/utils/graphify-knowledge.d.ts.map +1 -0
  26. package/dist/utils/graphify-knowledge.js +47 -0
  27. package/dist/utils/graphify-knowledge.js.map +1 -0
  28. package/dist/utils/graphify.d.ts +104 -0
  29. package/dist/utils/graphify.d.ts.map +1 -0
  30. package/dist/utils/graphify.js +439 -0
  31. package/dist/utils/graphify.js.map +1 -0
  32. package/dist/utils/session-store.d.ts +24 -2
  33. package/dist/utils/session-store.d.ts.map +1 -1
  34. package/dist/utils/session-store.js +16 -7
  35. package/dist/utils/session-store.js.map +1 -1
  36. package/dist/utils/storage-utils.d.ts +1 -1
  37. package/dist/utils/storage-utils.d.ts.map +1 -1
  38. package/dist/utils/storage-utils.js +1 -1
  39. package/dist/utils/storage-utils.js.map +1 -1
  40. package/dist/web-client/assets/{GraphCanvas-BPDgvsyT.js → GraphCanvas-Dw6EcoDb.js} +1 -1
  41. package/dist/web-client/assets/{MarkdownEditor-D7TLp78z.js → MarkdownEditor-Cz5_44Ej.js} +1 -1
  42. package/dist/web-client/assets/{abnfDiagram-VRR7QNED-CyuP2N9t.js → abnfDiagram-VRR7QNED-CFJzLuew.js} +1 -1
  43. package/dist/web-client/assets/architecture-TIHT7OUA-CoHvhex9.js +1 -0
  44. package/dist/web-client/assets/{architectureDiagram-ZJ3FMSHR-DZ0ul9QX.js → architectureDiagram-ZJ3FMSHR-FRlSgnnW.js} +1 -1
  45. package/dist/web-client/assets/{blockDiagram-677ZJIJ3-LLGzlc9l.js → blockDiagram-677ZJIJ3-WUkkunPZ.js} +1 -1
  46. package/dist/web-client/assets/{c4Diagram-LMCZKHZV-CViu3CTc.js → c4Diagram-LMCZKHZV-BKeAsL6F.js} +1 -1
  47. package/dist/web-client/assets/channel-D8xMXC5_.js +1 -0
  48. package/dist/web-client/assets/{chunk-32BRIVSS-Bw_IuJCM.js → chunk-32BRIVSS-B0b9kUcF.js} +1 -1
  49. package/dist/web-client/assets/{chunk-52WLFC77-C29h440W.js → chunk-52WLFC77-i6Y-vfL3.js} +1 -1
  50. package/dist/web-client/assets/{chunk-C7G6YPKG-hhOrvw5w.js → chunk-C7G6YPKG-atYWm6iP.js} +1 -1
  51. package/dist/web-client/assets/{chunk-EX3LRPZG-COMzol-M.js → chunk-EX3LRPZG-CZD6y0UU.js} +1 -1
  52. package/dist/web-client/assets/{chunk-FWX5IMBZ-6vdX9EUn.js → chunk-FWX5IMBZ-CVErR-UZ.js} +2 -2
  53. package/dist/web-client/assets/{chunk-HOUHSVGY-DWDW6sxp.js → chunk-HOUHSVGY-BlHO2iQ3.js} +1 -1
  54. package/dist/web-client/assets/{chunk-ICXQ74PX-BdMYglo2.js → chunk-ICXQ74PX-Ar8kfXfa.js} +1 -1
  55. package/dist/web-client/assets/{chunk-MOJQB5TN-C0LAX_dC.js → chunk-MOJQB5TN-DKrK867P.js} +1 -1
  56. package/dist/web-client/assets/{chunk-OGEWGWER-CBx8MB7f.js → chunk-OGEWGWER-BmGykUeg.js} +1 -1
  57. package/dist/web-client/assets/{chunk-PUDLZKDR-DKssR1nf.js → chunk-PUDLZKDR-Bq23pnso.js} +1 -1
  58. package/dist/web-client/assets/{chunk-Q4XR5HBZ-B3kcxFE-.js → chunk-Q4XR5HBZ-g15qvFAN.js} +1 -1
  59. package/dist/web-client/assets/{chunk-V7JOEXUC-CAlymndy.js → chunk-V7JOEXUC-uyXA7S9r.js} +1 -1
  60. package/dist/web-client/assets/{chunk-VAUOI2AC-BowfsmTW.js → chunk-VAUOI2AC-WofZ-2M0.js} +1 -1
  61. package/dist/web-client/assets/{chunk-VR4S4FIN-BBOydgvt.js → chunk-VR4S4FIN-DtTkK86v.js} +1 -1
  62. package/dist/web-client/assets/{chunk-WYO6CB5R-DcymFbES.js → chunk-WYO6CB5R-zVyUwJq3.js} +1 -1
  63. package/dist/web-client/assets/{chunk-ZGVPDNZ5--uKFP-Lr.js → chunk-ZGVPDNZ5-CA1Oe3TK.js} +1 -1
  64. package/dist/web-client/assets/classDiagram-OUVF2IWQ-Doj1_hvZ.js +1 -0
  65. package/dist/web-client/assets/classDiagram-v2-EOCWNBFH-Doj1_hvZ.js +1 -0
  66. package/dist/web-client/assets/{cynefin-VYW2F7L2-CjboUOMA.js → cynefin-VYW2F7L2-ivJY1h_9.js} +1 -1
  67. package/dist/web-client/assets/{cynefinDiagram-TSTJHNR4-BcxygBP7.js → cynefinDiagram-TSTJHNR4-D2DstShq.js} +1 -1
  68. package/dist/web-client/assets/{dagre-VKFMJZFB-D-tiERQE.js → dagre-VKFMJZFB-CwnMRy0K.js} +1 -1
  69. package/dist/web-client/assets/{diagram-FQU43EPY-ChPXczaS.js → diagram-FQU43EPY-BKJv6Cvw.js} +1 -1
  70. package/dist/web-client/assets/{diagram-G47NLZAW-CVL3Y91h.js → diagram-G47NLZAW-CwCXcgU5.js} +1 -1
  71. package/dist/web-client/assets/{diagram-NH7WQ7WH-DsaNA9Lh.js → diagram-NH7WQ7WH-CkghU1-6.js} +1 -1
  72. package/dist/web-client/assets/{diagram-OA4YK3LP-CXhrhdhU.js → diagram-OA4YK3LP-D3siQIGu.js} +1 -1
  73. package/dist/web-client/assets/{diagram-WEI45ONY-BTVPnk4E.js → diagram-WEI45ONY-CSs9xTBn.js} +1 -1
  74. package/dist/web-client/assets/{ebnfDiagram-CCIWWBDH-BAyrRBtM.js → ebnfDiagram-CCIWWBDH--i52vMiv.js} +1 -1
  75. package/dist/web-client/assets/{erDiagram-Q63AITRT-Qm24Wepm.js → erDiagram-Q63AITRT-q2hgOBY1.js} +1 -1
  76. package/dist/web-client/assets/eventmodeling-45OFAUF4-ESVuFkJJ.js +1 -0
  77. package/dist/web-client/assets/flowDiagram-23GEKE2U-DN9SdR9f.js +1 -0
  78. package/dist/web-client/assets/{ganttDiagram-NO4QXBWP-D8h7l3XJ.js → ganttDiagram-NO4QXBWP-BZ2rBbTe.js} +1 -1
  79. package/dist/web-client/assets/{gitGraph-TEB2WS4Q-DIBml1SB.js → gitGraph-TEB2WS4Q-OnJ8tHgt.js} +1 -1
  80. package/dist/web-client/assets/{gitGraphDiagram-IHSO6WYX-CtkYoXjn.js → gitGraphDiagram-IHSO6WYX-CPNExFAr.js} +1 -1
  81. package/dist/web-client/assets/{index-DOSH4Q9H.js → index-DCBn-YrR.js} +38 -38
  82. package/dist/web-client/assets/{info-DKCQHKI2-DLEUtV5Q.js → info-DKCQHKI2-DGuJbmdY.js} +1 -1
  83. package/dist/web-client/assets/{infoDiagram-FWYZ7A6U-BJQ7aQux.js → infoDiagram-FWYZ7A6U-ADIAn-P5.js} +1 -1
  84. package/dist/web-client/assets/{ishikawaDiagram-FXEZZL3T-BPM11FvG.js → ishikawaDiagram-FXEZZL3T-CUx-RGfg.js} +1 -1
  85. package/dist/web-client/assets/{journeyDiagram-5HDEW3XC-C0aX2z3c.js → journeyDiagram-5HDEW3XC-BH7-tBBy.js} +1 -1
  86. package/dist/web-client/assets/{kanban-definition-HUTT4EX6-C56F29Ib.js → kanban-definition-HUTT4EX6-BGEXBnI2.js} +1 -1
  87. package/dist/web-client/assets/{line-BLFHLF2N.js → line-CC-5ezU8.js} +1 -1
  88. package/dist/web-client/assets/{mermaid-parser.core-BLC8FhgU.js → mermaid-parser.core-Dw18Fjbq.js} +3 -3
  89. package/dist/web-client/assets/{mermaid.core-BBqkKuXt.js → mermaid.core-CMQBgE43.js} +3 -3
  90. package/dist/web-client/assets/{mindmap-definition-LN4V7U3C-aVZbsoPc.js → mindmap-definition-LN4V7U3C-CGtjw8tB.js} +1 -1
  91. package/dist/web-client/assets/{packet-7NZHBO7P-D4aqSQfB.js → packet-7NZHBO7P-w71Y4Hzd.js} +1 -1
  92. package/dist/web-client/assets/{pegDiagram-2B236MQR-DjfyNI0U.js → pegDiagram-2B236MQR-DWtfEm4T.js} +1 -1
  93. package/dist/web-client/assets/{pie-RZYD4A2V-ChCwYsYj.js → pie-RZYD4A2V-S9ztgnWs.js} +1 -1
  94. package/dist/web-client/assets/{pieDiagram-ENE6RG2P-BeHLKkXC.js → pieDiagram-ENE6RG2P-BWZQPN4m.js} +1 -1
  95. package/dist/web-client/assets/{quadrantDiagram-ABIIQ3AL-stga3gvq.js → quadrantDiagram-ABIIQ3AL-DINDwblH.js} +1 -1
  96. package/dist/web-client/assets/{radar-I7S5WNFK-DOGheiwT.js → radar-I7S5WNFK-BOGl9krB.js} +1 -1
  97. package/dist/web-client/assets/{railroad-3IZDKUUU-_JnU7M6L.js → railroad-3IZDKUUU-CR9kuYSZ.js} +1 -1
  98. package/dist/web-client/assets/railroad-abnf-AHOZXSZD-BvbCHrlR.js +1 -0
  99. package/dist/web-client/assets/railroad-ebnf-EBAXGLYW-D869lbCL.js +1 -0
  100. package/dist/web-client/assets/railroad-peg-LSFZ7HO6-r4TXaJPI.js +1 -0
  101. package/dist/web-client/assets/{railroadDiagram-RFXS5EU6-C0CkMsOd.js → railroadDiagram-RFXS5EU6-byLCs9hp.js} +1 -1
  102. package/dist/web-client/assets/{requirementDiagram-TGXJPOKE-DuImwoRD.js → requirementDiagram-TGXJPOKE-Dn_FtbqW.js} +1 -1
  103. package/dist/web-client/assets/{sankeyDiagram-HTMAVEWB-kprq0XF9.js → sankeyDiagram-HTMAVEWB-DUjRrCeC.js} +1 -1
  104. package/dist/web-client/assets/{sequenceDiagram-DBY2YBRQ-DiXKJMF6.js → sequenceDiagram-DBY2YBRQ-BmBz8Wpq.js} +1 -1
  105. package/dist/web-client/assets/{stateDiagram-2N3HPSRC-D5qbVStE.js → stateDiagram-2N3HPSRC-BAYHjmqB.js} +1 -1
  106. package/dist/web-client/assets/stateDiagram-v2-6OUMAXLB-Bl-1K1zV.js +1 -0
  107. package/dist/web-client/assets/{swimlanes-5IMT3BWC-DCbw389c.js → swimlanes-5IMT3BWC-Bm942AR-.js} +1 -1
  108. package/dist/web-client/assets/swimlanesDiagram-G3AALYLV-DHU7bsfA.js +8 -0
  109. package/dist/web-client/assets/{timeline-definition-FHXFAJF6-CQeaYN_9.js → timeline-definition-FHXFAJF6-CHAZHhQk.js} +1 -1
  110. package/dist/web-client/assets/{treeView-QDETBFTQ-Cf7Sq3qo.js → treeView-QDETBFTQ-DHHkLsSy.js} +1 -1
  111. package/dist/web-client/assets/{treemap-6X3UGDF4-BovzvoTU.js → treemap-6X3UGDF4-BUxZ8fhY.js} +1 -1
  112. package/dist/web-client/assets/{vennDiagram-L72KCM5P-CZsJy139.js → vennDiagram-L72KCM5P-BL9TRcUU.js} +1 -1
  113. package/dist/web-client/assets/{wardley-OPB4EBWU-DJ7MS6XZ.js → wardley-OPB4EBWU-CfJ5mO-y.js} +1 -1
  114. package/dist/web-client/assets/{wardleyDiagram-EHGQE667-rqhcmsbM.js → wardleyDiagram-EHGQE667-BlH1TSjy.js} +1 -1
  115. package/dist/web-client/assets/{xychartDiagram-FW5EYKEG-HuK4Seps.js → xychartDiagram-FW5EYKEG-BJN6wtrV.js} +1 -1
  116. package/dist/web-client/index.html +1 -1
  117. package/dist/web-server/app.d.ts.map +1 -1
  118. package/dist/web-server/app.js +1 -7
  119. package/dist/web-server/app.js.map +1 -1
  120. package/dist/web-server/claude-runner.d.ts +11 -4
  121. package/dist/web-server/claude-runner.d.ts.map +1 -1
  122. package/dist/web-server/claude-runner.js +10 -14
  123. package/dist/web-server/claude-runner.js.map +1 -1
  124. package/dist/web-server/index.d.ts.map +1 -1
  125. package/dist/web-server/index.js +4 -1
  126. package/dist/web-server/index.js.map +1 -1
  127. package/dist/web-server/opencode-client.d.ts +123 -0
  128. package/dist/web-server/opencode-client.d.ts.map +1 -0
  129. package/dist/web-server/opencode-client.js +514 -0
  130. package/dist/web-server/opencode-client.js.map +1 -0
  131. package/dist/web-server/prompt-assembly.d.ts.map +1 -1
  132. package/dist/web-server/prompt-assembly.js +1 -2
  133. package/dist/web-server/prompt-assembly.js.map +1 -1
  134. package/dist/web-server/routes/sessions.d.ts +9 -6
  135. package/dist/web-server/routes/sessions.d.ts.map +1 -1
  136. package/dist/web-server/routes/sessions.js +272 -205
  137. package/dist/web-server/routes/sessions.js.map +1 -1
  138. package/dist/web-server/run-driver.d.ts +113 -0
  139. package/dist/web-server/run-driver.d.ts.map +1 -0
  140. package/dist/web-server/run-driver.js +214 -0
  141. package/dist/web-server/run-driver.js.map +1 -0
  142. package/dist/web-server/run-event-log.d.ts +23 -1
  143. package/dist/web-server/run-event-log.d.ts.map +1 -1
  144. package/dist/web-server/run-event-log.js +29 -5
  145. package/dist/web-server/run-event-log.js.map +1 -1
  146. package/dist/web-server/web-auth.d.ts +3 -5
  147. package/dist/web-server/web-auth.d.ts.map +1 -1
  148. package/dist/web-server/web-auth.js +6 -11
  149. package/dist/web-server/web-auth.js.map +1 -1
  150. package/dist/web-server/web-token.d.ts +1 -2
  151. package/dist/web-server/web-token.d.ts.map +1 -1
  152. package/dist/web-server/web-token.js +1 -2
  153. package/dist/web-server/web-token.js.map +1 -1
  154. package/opencode/arcs/bundle-runtime.json +0 -3
  155. package/opencode/arcs/prompts/arcs-docs.txt +4 -4
  156. package/opencode/arcs/prompts/arcs-flash.txt +15 -21
  157. package/opencode/arcs/prompts/arcs-orchestrate-caveman.txt +17 -15
  158. package/opencode/arcs/prompts/arcs-orchestrate.txt +17 -15
  159. package/opencode/arcs/prompts/code-reviewer.txt +4 -4
  160. package/opencode/arcs/prompts/graph-explorer.txt +4 -4
  161. package/opencode/arcs/prompts/software-engineer.txt +2 -2
  162. package/opencode/arcs/prompts/tech-architect.txt +4 -4
  163. package/opencode/arcs/skills/brainstorming/SKILL.md +4 -4
  164. package/opencode/arcs/skills/enriching-codegraph-proposals/SKILL.md +1 -1
  165. package/opencode/arcs/skills/implementation/SKILL.md +6 -6
  166. package/opencode/arcs/skills/init-project/SKILL.md +4 -4
  167. package/opencode/arcs/skills/systematic-debugging/SKILL.md +2 -2
  168. package/opencode/arcs/skills/test-driven-development/SKILL.md +3 -3
  169. package/opencode/arcs/skills/to-diagram/SKILL.md +2 -2
  170. package/opencode/arcs/skills/writing-knowledge/SKILL.md +2 -2
  171. package/opencode/arcs/skills/writing-plans/SKILL.md +2 -2
  172. package/package.json +1 -1
  173. package/dist/web-client/assets/architecture-TIHT7OUA-Bdo2Yvm9.js +0 -1
  174. package/dist/web-client/assets/channel-DBNmizpo.js +0 -1
  175. package/dist/web-client/assets/classDiagram-OUVF2IWQ-CB3HiA1_.js +0 -1
  176. package/dist/web-client/assets/classDiagram-v2-EOCWNBFH-CB3HiA1_.js +0 -1
  177. package/dist/web-client/assets/eventmodeling-45OFAUF4-DoTBIvl5.js +0 -1
  178. package/dist/web-client/assets/flowDiagram-23GEKE2U-BEH23L1A.js +0 -1
  179. package/dist/web-client/assets/railroad-abnf-AHOZXSZD-nhNub7LE.js +0 -1
  180. package/dist/web-client/assets/railroad-ebnf-EBAXGLYW-BlQYe7Yf.js +0 -1
  181. package/dist/web-client/assets/railroad-peg-LSFZ7HO6-B3E8pRVN.js +0 -1
  182. package/dist/web-client/assets/stateDiagram-v2-6OUMAXLB-DWwTAG1r.js +0 -1
  183. package/dist/web-client/assets/swimlanesDiagram-G3AALYLV-DabrCsjZ.js +0 -8
  184. package/opencode/arcs/skills/install-claude-code-hook/SKILL.md +0 -23
  185. package/scripts/claude-code-session-hook.mjs +0 -146
@@ -7,16 +7,16 @@ description: Initialize a repository as an ARCS project with useful minimal meta
7
7
 
8
8
  ## Method
9
9
 
10
- An explicit request to init or track a project authorizes the local ARCS initialization. Ask only for missing user-owned identity such as name, description, workspace path, or dependency choice.
10
+ An explicit request to init or track a project authorizes local ARCS initialization. Ask only for missing user-owned identity such as name, description, workspace path, or dependency choice.
11
11
 
12
12
  1. Check slug conflicts with `arcs project list`.
13
13
  2. Verify named dependency projects exist.
14
14
  3. Run `arcs project init` with the requested metadata.
15
15
  4. Add only requested or clearly useful overview/dependency documentation.
16
- 5. Validate the new project and report its slug and paths.
16
+ 5. Validate the new project and report slug and paths.
17
17
 
18
- Codegraph is optional. When available, initialization may index the workspace and emit structural proposals. When absent, continue without it. If `pending_enrichment` is true, process useful proposals with `enriching-codegraph-proposals`; do not require a broad agent fan-out.
18
+ Codegraph is optional. When available, initialization may index the workspace and emit structural proposals. When absent, continue without it. If `pending_enrichment` is true, process useful proposals with `enriching-codegraph-proposals`; no broad agent fan-out required.
19
19
 
20
- Raw proposals are not knowledge. Inspect them before keep, merge, drop, or promote decisions. Never infer destructive cleanup, deployment, publication, or Git permission from initialization.
20
+ Raw proposals are not knowledge. Inspect before keep, merge, drop, or promote decisions. Never infer destructive cleanup, deployment, publication, or Git permission from initialization.
21
21
 
22
22
  If a write fails, stop and report partial state instead of layering more mutations on an uncertain project.
@@ -16,8 +16,8 @@ Observe → reproduce → isolate → regression test → fix → verify.
16
16
  5. **Fix:** change the root cause with the smallest targeted patch.
17
17
  6. **Verify:** show the reproduction and relevant checks pass.
18
18
 
19
- If three failed fixes do not improve the evidence, stop and question the architecture or assumptions instead of stacking another guess.
19
+ If three failed fixes do not improve evidence, stop and question architecture or assumptions instead of stacking another guess.
20
20
 
21
- Use ARCS knowledge only when a prior gotcha may save time. Capturing a durable discovery is optional, not part of the success condition.
21
+ Use ARCS knowledge only when a prior gotcha may save time. Capturing durable discovery is optional, not part of success.
22
22
 
23
23
  Optional references provide concise techniques for tracing, waiting, and defense in depth. Do not run destructive Git operations unless the user requests them.
@@ -7,15 +7,15 @@ description: Use a focused red-green-refactor loop for observable behavior chang
7
7
 
8
8
  ## When
9
9
 
10
- Use when a feature, bug fix, or behavior change benefits from executable proof. Pure prose, metadata, generated output, or mechanical refactors may rely on existing contracts instead of adding a new test.
10
+ Use when a feature, bug fix, or behavior change benefits from executable proof. Prose, metadata, generated output, or mechanical refactors may rely on existing contracts instead of adding a new test.
11
11
 
12
12
  ## Loop
13
13
 
14
- For a behavior change, write one failing test that demonstrates the requirement, run it to confirm the expected failure, add the minimal implementation, rerun until green, then refactor while preserving behavior.
14
+ For a behavior change, write one failing test demonstrating the requirement, run to confirm expected failure, add minimal implementation, rerun until green, then refactor while preserving behavior.
15
15
 
16
16
  1. **Failing test:** one behavior, clear name, real boundary.
17
17
  2. **Minimal code:** only what makes the test pass.
18
18
  3. **Refactor:** remove duplication and improve names without adding behavior.
19
19
  4. **Verify:** run the relevant test and any proportionate integration check.
20
20
 
21
- If a test passes immediately, verify that it actually covers the new behavior. Avoid mocks that merely confirm implementation details. Use `testing-anti-patterns.md` or `tdd-rationalizations-and-examples.md` only when those details help.
21
+ If a test passes immediately, verify it actually covers the new behavior. Avoid mocks that merely confirm implementation details. Use `testing-anti-patterns.md` or `tdd-rationalizations-and-examples.md` only when those details help.
@@ -9,7 +9,7 @@ description: Create or update a helper-managed Mermaid execution diagram
9
9
 
10
10
  Task metadata is the source of truth. The `.diagram.mmd` file is derived data for execution order and status.
11
11
 
12
- Use `manage-diagram.mjs` with the supported `flowchart TD` format. Prefer ARCS CLI wrappers:
12
+ Use `manage-diagram.mjs` with supported `flowchart TD` format. Prefer ARCS CLI wrappers:
13
13
 
14
14
  - `arcs diagram init <slug> <planId>`
15
15
  - `arcs diagram inspect <slug> <planId>`
@@ -21,7 +21,7 @@ Use `manage-diagram.mjs` with the supported `flowchart TD` format. Prefer ARCS C
21
21
 
22
22
  Each node uses stable `T001`-style IDs and records title, status, skill, work mode, scope, acceptance, verify command, and dependencies. Implementation tasks use `skill: implementation` with `work-mode: bounded|inspect`.
23
23
 
24
- Dependencies come from task `dependsOn`; do not hand-maintain conflicting arrows. New plans begin in backlog. Use the standard `done`, `inProgress`, `blocked`, and `backlog` classes.
24
+ Dependencies come from task `dependsOn`; do not hand-maintain conflicting arrows. New plans begin in backlog. Use standard `done`, `inProgress`, `blocked`, and `backlog` classes.
25
25
 
26
26
  ## Update
27
27
 
@@ -16,8 +16,8 @@ Capture a non-obvious fact that will save future work. Skip mechanical or instan
16
16
  3. Write a specific title, useful summary, substantive body, keywords, and source files.
17
17
  4. Search for an existing entry when duplication is plausible; prefer idempotent `upsert`.
18
18
 
19
- Summary is the headline; body is the reasoning and operational detail; source files anchor the entry to current code. A file-specific entry should include all three.
19
+ Summary is the headline; body is the reasoning and operational detail; source files anchor to current code.
20
20
 
21
- When the user requested the knowledge write, execute it directly with `arcs knowledge upsert` and report the resulting ID. Otherwise return the proposed entry for confirmation only when the write would be surprising.
21
+ When the user requested the knowledge write, execute directly with `arcs knowledge upsert` and report the resulting ID. Otherwise return the proposed entry for confirmation only when the write would be surprising.
22
22
 
23
23
  Validate that a future agent could act on the entry without re-deriving it.
@@ -7,7 +7,7 @@ description: Create and maintain concise ARCS plans, tasks, and execution diagra
7
7
 
8
8
  ## When
9
9
 
10
- Use for broad, multi-step, architectural, or explicitly requested plans. A clear explicit plan request authorizes drafting and persisting the plan; do not ask for the same approval twice.
10
+ Use for broad, multi-step, architectural, or explicitly requested plans. A clear explicit request authorizes drafting and persisting the plan; do not ask for the same approval twice.
11
11
 
12
12
  ## Plan Shape
13
13
 
@@ -31,7 +31,7 @@ Use current CLI syntax from `arcs --commands --json`:
31
31
 
32
32
  The diagram is derived from task metadata, which remains authoritative. Use `to-diagram` when diagram tooling details matter.
33
33
 
34
- During execution, keep tasks and diagrams aligned without reopening approval. Ask only when the goal, material scope, dependency strategy, or destructive/external effect changes.
34
+ During execution, keep tasks and diagrams aligned without reopening approval. Ask only when goal, material scope, dependency strategy, or destructive/external effect changes.
35
35
 
36
36
  An optional reviewer may check a risky or complex plan using `plan-document-reviewer-prompt.md`; ordinary plans do not require it.
37
37
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rryando/arcs",
3
- "version": "4.2.0",
3
+ "version": "4.2.1",
4
4
  "description": "ARCS — DAG-based task orchestration for AI agents. Persistent workflow continuity via graph-structured context.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1 +0,0 @@
1
- import"./chunk-KEIR6QF5-DEvma7oi.js";import{M as e}from"./mermaid-parser.core-BLC8FhgU.js";export{e as createArchitectureServices};
@@ -1 +0,0 @@
1
- import{at as e,it as t}from"./chunk-WYO6CB5R-DcymFbES.js";var n=(n,r)=>e.lang.round(t.parse(n)[r]);export{n as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-oBChb5qS.js";import"./chunk-WYO6CB5R-DcymFbES.js";import"./chunk-ICXQ74PX-BdMYglo2.js";import"./chunk-HOUHSVGY-DWDW6sxp.js";import"./chunk-Q4XR5HBZ-B3kcxFE-.js";import"./chunk-7BUUIJ7U-Bb538aSH.js";import"./chunk-OGEWGWER-CBx8MB7f.js";import"./chunk-32BRIVSS-Bw_IuJCM.js";import"./chunk-XXDRQBXY-BvKO0v-W.js";import"./chunk-VR4S4FIN-BBOydgvt.js";import"./chunk-C7G6YPKG-hhOrvw5w.js";import"./chunk-ZGVPDNZ5--uKFP-Lr.js";import"./chunk-52WLFC77-C29h440W.js";import"./chunk-FWX5IMBZ-6vdX9EUn.js";import{i as t,n,r,t as i}from"./chunk-V7JOEXUC-CAlymndy.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-oBChb5qS.js";import"./chunk-WYO6CB5R-DcymFbES.js";import"./chunk-ICXQ74PX-BdMYglo2.js";import"./chunk-HOUHSVGY-DWDW6sxp.js";import"./chunk-Q4XR5HBZ-B3kcxFE-.js";import"./chunk-7BUUIJ7U-Bb538aSH.js";import"./chunk-OGEWGWER-CBx8MB7f.js";import"./chunk-32BRIVSS-Bw_IuJCM.js";import"./chunk-XXDRQBXY-BvKO0v-W.js";import"./chunk-VR4S4FIN-BBOydgvt.js";import"./chunk-C7G6YPKG-hhOrvw5w.js";import"./chunk-ZGVPDNZ5--uKFP-Lr.js";import"./chunk-52WLFC77-C29h440W.js";import"./chunk-FWX5IMBZ-6vdX9EUn.js";import{i as t,n,r,t as i}from"./chunk-V7JOEXUC-CAlymndy.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import"./chunk-KEIR6QF5-DEvma7oi.js";import{O as e}from"./mermaid-parser.core-BLC8FhgU.js";export{e as createEventModelingServices};
@@ -1 +0,0 @@
1
- import"./src-oBChb5qS.js";import"./chunk-WYO6CB5R-DcymFbES.js";import"./chunk-ICXQ74PX-BdMYglo2.js";import"./chunk-HOUHSVGY-DWDW6sxp.js";import"./chunk-Q4XR5HBZ-B3kcxFE-.js";import"./chunk-7BUUIJ7U-Bb538aSH.js";import"./chunk-OGEWGWER-CBx8MB7f.js";import"./chunk-32BRIVSS-Bw_IuJCM.js";import"./chunk-XXDRQBXY-BvKO0v-W.js";import"./chunk-VR4S4FIN-BBOydgvt.js";import"./chunk-C7G6YPKG-hhOrvw5w.js";import"./chunk-ZGVPDNZ5--uKFP-Lr.js";import"./chunk-52WLFC77-C29h440W.js";import"./chunk-FWX5IMBZ-6vdX9EUn.js";import"./chunk-ZIRB5QZD-BpeS1aZ7.js";import{n as e}from"./chunk-PUDLZKDR-DKssR1nf.js";export{e as diagram};
@@ -1 +0,0 @@
1
- import"./chunk-KEIR6QF5-DEvma7oi.js";import{m as e}from"./mermaid-parser.core-BLC8FhgU.js";export{e as createRailroadAbnfServices};
@@ -1 +0,0 @@
1
- import"./chunk-KEIR6QF5-DEvma7oi.js";import{f as e}from"./mermaid-parser.core-BLC8FhgU.js";export{e as createRailroadEbnfServices};
@@ -1 +0,0 @@
1
- import"./chunk-KEIR6QF5-DEvma7oi.js";import{u as e}from"./mermaid-parser.core-BLC8FhgU.js";export{e as createRailroadPegServices};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-oBChb5qS.js";import"./chunk-WYO6CB5R-DcymFbES.js";import"./chunk-ICXQ74PX-BdMYglo2.js";import"./chunk-HOUHSVGY-DWDW6sxp.js";import"./chunk-Q4XR5HBZ-B3kcxFE-.js";import"./chunk-7BUUIJ7U-Bb538aSH.js";import"./chunk-OGEWGWER-CBx8MB7f.js";import"./chunk-32BRIVSS-Bw_IuJCM.js";import"./chunk-XXDRQBXY-BvKO0v-W.js";import"./chunk-VR4S4FIN-BBOydgvt.js";import"./chunk-C7G6YPKG-hhOrvw5w.js";import"./chunk-ZGVPDNZ5--uKFP-Lr.js";import"./chunk-52WLFC77-C29h440W.js";import"./chunk-FWX5IMBZ-6vdX9EUn.js";import{i as t,n,r,t as i}from"./chunk-EX3LRPZG-COMzol-M.js";var a={parser:n,get db(){return new i(2)},renderer:r,styles:t,init:e(e=>{e.state||={},e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1,8 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-oBChb5qS.js";import"./chunk-WYO6CB5R-DcymFbES.js";import"./chunk-ICXQ74PX-BdMYglo2.js";import"./chunk-HOUHSVGY-DWDW6sxp.js";import"./chunk-Q4XR5HBZ-B3kcxFE-.js";import"./chunk-7BUUIJ7U-Bb538aSH.js";import"./chunk-OGEWGWER-CBx8MB7f.js";import"./chunk-32BRIVSS-Bw_IuJCM.js";import"./chunk-XXDRQBXY-BvKO0v-W.js";import"./chunk-VR4S4FIN-BBOydgvt.js";import"./chunk-C7G6YPKG-hhOrvw5w.js";import"./chunk-ZGVPDNZ5--uKFP-Lr.js";import"./chunk-52WLFC77-C29h440W.js";import"./chunk-FWX5IMBZ-6vdX9EUn.js";import"./chunk-ZIRB5QZD-BpeS1aZ7.js";import{r as t,t as n}from"./chunk-PUDLZKDR-DKssR1nf.js";var r=n({defaultLayout:`swimlane`,styles:e(e=>`${t(e)}
2
- .swimlane.cluster rect {
3
- stroke: ${e.clusterBorder} !important;
4
- }
5
- [data-look="neo"].cluster rect {
6
- filter: none;
7
- }
8
- `,`getStyles`)});export{r as diagram};
@@ -1,23 +0,0 @@
1
- ---
2
- name: install-claude-code-hook
3
- description: Install the ARCS session-bridge hook into an existing Claude Code workspace
4
- ---
5
-
6
- # Install Claude Code Hook
7
-
8
- ## Boundary
9
-
10
- Claude Code only. If the current harness is not Claude Code, stop. The hook changes `.claude/settings.local.json`, so obtain explicit confirmation before using `--write`.
11
-
12
- ## Method
13
-
14
- 1. Run `arcs hooks status <slug> --json`.
15
- 2. If already installed for this slug, report a no-op.
16
- 3. Explain the file written, registered events, local token, and that a new Claude Code session is required.
17
- 4. If the hook points at another slug, warn that installation will repoint it and confirm that effect.
18
- 5. After explicit confirmation, run `arcs hooks install-claude-code <slug> --write --json` once.
19
- 6. Report `settingsPath`, events, and next-session requirement.
20
-
21
- Do not hand-edit Claude settings. A malformed settings file is a stop condition: surface the CLI error and do not repair, reformat, or delete it. Do not rerun installation for reassurance because it may rotate the token.
22
-
23
- Without confirmation, offer the snippet-only command without `--write`.
@@ -1,146 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * ARCS ↔ Claude Code session-bridge hook.
4
- *
5
- * Registered four times in settings.json (SessionStart, UserPromptSubmit,
6
- * SessionEnd, Stop) and dispatches internally on the `hook_event_name` field
7
- * Claude Code writes to stdin. Install with `arcs hooks install-claude-code
8
- * <slug>`, which generates the token and prints the snippet to paste.
9
- *
10
- * One of the four can put text in front of the model: SessionStart mirrors
11
- * ARCS's staged environment (project, workspace, DAG position) into the new
12
- * session, emitting Claude Code's `hookSpecificOutput` envelope on stdout; the
13
- * other three print nothing.
14
- *
15
- * HARD RULE: this script never blocks the session. Any failure — ARCS not
16
- * running, token rejected, timeout, malformed JSON — is swallowed, nothing is
17
- * printed, and the exit code stays 0. Exit code 2 (the "block" signal) is never
18
- * produced. A broken bridge must be invisible, never an obstacle to the user's
19
- * actual Claude Code session.
20
- *
21
- * Config comes from the environment, assigned inline in the settings.json
22
- * command string:
23
- * ARCS_HOOK_TOKEN per-project token (required)
24
- * ARCS_HOOK_SLUG ARCS project slug (required)
25
- * ARCS_HOOK_URL ARCS web server URL (default http://127.0.0.1:4173)
26
- */
27
-
28
- // DEFAULT_URL and EVENTS are literals on purpose: this file runs standalone out
29
- // of the user's settings.json and importing ARCS would give the HARD RULE above
30
- // a way to fail. `src/utils/hook-contract.ts` owns the same two values for the
31
- // TypeScript side, and `test/hook-contract-parity.test.ts` parses THIS source
32
- // and fails if the two ever diverge — so keep the shapes greppable: a
33
- // double-quoted DEFAULT_URL, and a flat `new Set([...])` of string literals.
34
- const DEFAULT_URL = "http://127.0.0.1:4173";
35
- /** Short by design: a hung ARCS server must not stall prompt submission. */
36
- const TIMEOUT_MS = 1500;
37
- const EVENTS = new Set(["SessionStart", "UserPromptSubmit", "SessionEnd", "Stop"]);
38
- /**
39
- * Refusal bound on a context block the server sends, in characters.
40
- *
41
- * The server caps the SessionStart block at 2500 (`SESSION_START_STAGE_CAP` in
42
- * `src/web-server/routes/hook-events.ts`); this is the CLIENT's own limit, so a
43
- * misbehaving, mismatched or hostile ARCS cannot shove an unbounded body into
44
- * the head of the user's live session. Over the bound the block is dropped
45
- * whole rather than clipped — a clip would sever a wrapper's closing delimiter.
46
- * `test/claude-code-hook-script.test.ts` parses this literal and fails if the
47
- * server's cap ever climbs above it, so the two cannot silently cross.
48
- */
49
- const MAX_CONTEXT_CHARS = 4000;
50
-
51
- /** Never rejects: an unreadable stdin yields "" and the run turns into a no-op. */
52
- function readStdin() {
53
- return new Promise((resolveStdin) => {
54
- let raw = "";
55
- let settled = false;
56
- const finish = () => {
57
- if (settled) return;
58
- settled = true;
59
- clearTimeout(timer);
60
- process.stdin.destroy();
61
- resolveStdin(raw);
62
- };
63
- const timer = setTimeout(finish, TIMEOUT_MS);
64
-
65
- process.stdin.setEncoding("utf-8");
66
- process.stdin.on("data", (chunk) => {
67
- raw += chunk;
68
- });
69
- process.stdin.on("end", finish);
70
- process.stdin.on("error", finish);
71
- });
72
- }
73
-
74
- async function main() {
75
- const raw = await readStdin();
76
- if (!raw.trim()) return;
77
-
78
- const event = JSON.parse(raw);
79
- const eventName = event?.hook_event_name;
80
- const sessionId = event?.session_id;
81
- if (!EVENTS.has(eventName) || typeof sessionId !== "string" || !sessionId) return;
82
-
83
- const token = process.env.ARCS_HOOK_TOKEN;
84
- const slug = process.env.ARCS_HOOK_SLUG;
85
- if (!token || !slug) return;
86
- const baseUrl = (process.env.ARCS_HOOK_URL || DEFAULT_URL).replace(/\/+$/, "");
87
-
88
- const response = await fetch(`${baseUrl}/api/hook/${encodeURIComponent(slug)}/event`, {
89
- method: "POST",
90
- headers: {
91
- "content-type": "application/json",
92
- authorization: `Bearer ${token}`,
93
- },
94
- body: JSON.stringify({
95
- hook_event_name: eventName,
96
- session_id: sessionId,
97
- ...(typeof event.cwd === "string" && { cwd: event.cwd }),
98
- ...(typeof event.source === "string" && { source: event.source }),
99
- ...(typeof event.reason === "string" && { reason: event.reason }),
100
- ...(typeof event.transcript_path === "string" && { transcript_path: event.transcript_path }),
101
- }),
102
- signal: AbortSignal.timeout(TIMEOUT_MS),
103
- });
104
- if (!response.ok) return;
105
-
106
- // Only SessionStart can inject context: it mirrors ARCS's staged environment
107
- // into the fresh session. UserPromptSubmit, SessionEnd and Stop are pure
108
- // notifications and answer with empty stdout, so only SessionStart reads the
109
- // response body at all.
110
- if (eventName !== "SessionStart") return;
111
-
112
- const envelope = await response.json();
113
-
114
- const staged = envelope?.data?.stagedContext;
115
- // Every rejection here is a silent no-op, never a repair: an absent field,
116
- // a non-string, an empty string and an oversized body all mean "ARCS has
117
- // nothing usable to stage", and the session proceeds exactly as if the
118
- // bridge were not installed.
119
- if (typeof staged !== "string" || staged === "" || staged.length > MAX_CONTEXT_CHARS) return;
120
-
121
- process.stdout.write(
122
- JSON.stringify({
123
- hookSpecificOutput: {
124
- hookEventName: "SessionStart",
125
- additionalContext: staged,
126
- },
127
- }),
128
- );
129
- }
130
-
131
- // Belt and braces around the hard rule: even a bug in this file (or a stray
132
- // async rejection) must not surface as a non-zero exit for the user.
133
- process.on("uncaughtException", () => {
134
- process.exitCode = 0;
135
- });
136
- process.on("unhandledRejection", () => {
137
- process.exitCode = 0;
138
- });
139
-
140
- // No process.exit(): letting the event loop drain guarantees stdout is flushed
141
- // before the process ends, and the default exit code is already 0.
142
- main()
143
- .catch(() => {})
144
- .finally(() => {
145
- process.exitCode = 0;
146
- });