@rryando/arcs 3.11.0 → 4.1.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.
- package/README.md +1 -1
- package/dist/cli/commands/hooks.d.ts +46 -6
- package/dist/cli/commands/hooks.d.ts.map +1 -1
- package/dist/cli/commands/hooks.js +190 -52
- package/dist/cli/commands/hooks.js.map +1 -1
- package/dist/cli/commands/web.js +14 -4
- package/dist/cli/commands/web.js.map +1 -1
- package/dist/cli/config.d.ts +14 -3
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +39 -38
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/instructions.d.ts +13 -1
- package/dist/cli/instructions.d.ts.map +1 -1
- package/dist/cli/instructions.js +38 -3
- package/dist/cli/instructions.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +76 -11
- package/dist/cli/setup.js.map +1 -1
- package/dist/shared/session-vocabulary.d.ts +88 -0
- package/dist/shared/session-vocabulary.d.ts.map +1 -0
- package/dist/shared/session-vocabulary.js +114 -0
- package/dist/shared/session-vocabulary.js.map +1 -0
- package/dist/utils/claude-code-hook-install.d.ts +1 -1
- package/dist/utils/claude-code-hook-install.d.ts.map +1 -1
- package/dist/utils/claude-code-hook-install.js +71 -5
- package/dist/utils/claude-code-hook-install.js.map +1 -1
- package/dist/utils/claude-transcript.d.ts +81 -2
- package/dist/utils/claude-transcript.d.ts.map +1 -1
- package/dist/utils/claude-transcript.js +33 -2
- package/dist/utils/claude-transcript.js.map +1 -1
- package/dist/utils/git.d.ts +21 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +65 -1
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/hook-contract.d.ts +36 -0
- package/dist/utils/hook-contract.d.ts.map +1 -0
- package/dist/utils/hook-contract.js +35 -0
- package/dist/utils/hook-contract.js.map +1 -0
- package/dist/utils/hook-token-store.d.ts +44 -3
- package/dist/utils/hook-token-store.d.ts.map +1 -1
- package/dist/utils/hook-token-store.js +51 -6
- package/dist/utils/hook-token-store.js.map +1 -1
- package/dist/utils/session-store.d.ts +207 -29
- package/dist/utils/session-store.d.ts.map +1 -1
- package/dist/utils/session-store.js +236 -44
- package/dist/utils/session-store.js.map +1 -1
- package/dist/utils/storage-utils.d.ts +1 -1
- package/dist/utils/storage-utils.d.ts.map +1 -1
- package/dist/utils/storage-utils.js +1 -1
- package/dist/utils/storage-utils.js.map +1 -1
- package/dist/web-client/assets/{GraphCanvas-dNyZ458L.js → GraphCanvas-BPDgvsyT.js} +1 -1
- package/dist/web-client/assets/{MarkdownEditor-BmU9mdkN.js → MarkdownEditor-D7TLp78z.js} +1 -1
- package/dist/web-client/assets/{abnfDiagram-VRR7QNED-D1BFBoeF.js → abnfDiagram-VRR7QNED-CyuP2N9t.js} +1 -1
- package/dist/web-client/assets/architecture-TIHT7OUA-Bdo2Yvm9.js +1 -0
- package/dist/web-client/assets/{architectureDiagram-ZJ3FMSHR-CA8hTWUK.js → architectureDiagram-ZJ3FMSHR-DZ0ul9QX.js} +1 -1
- package/dist/web-client/assets/{blockDiagram-677ZJIJ3-CQpb_KwX.js → blockDiagram-677ZJIJ3-LLGzlc9l.js} +1 -1
- package/dist/web-client/assets/{c4Diagram-LMCZKHZV-BhpHX84V.js → c4Diagram-LMCZKHZV-CViu3CTc.js} +1 -1
- package/dist/web-client/assets/channel-DBNmizpo.js +1 -0
- package/dist/web-client/assets/{chunk-32BRIVSS-BUusQQa_.js → chunk-32BRIVSS-Bw_IuJCM.js} +1 -1
- package/dist/web-client/assets/{chunk-52WLFC77-nNYwlftl.js → chunk-52WLFC77-C29h440W.js} +1 -1
- package/dist/web-client/assets/{chunk-C7G6YPKG-D0a-yqnK.js → chunk-C7G6YPKG-hhOrvw5w.js} +1 -1
- package/dist/web-client/assets/{chunk-EX3LRPZG-IDuRMN-4.js → chunk-EX3LRPZG-COMzol-M.js} +1 -1
- package/dist/web-client/assets/{chunk-FWX5IMBZ-D_spTcqi.js → chunk-FWX5IMBZ-6vdX9EUn.js} +2 -2
- package/dist/web-client/assets/{chunk-HOUHSVGY-C-bcxwZS.js → chunk-HOUHSVGY-DWDW6sxp.js} +1 -1
- package/dist/web-client/assets/{chunk-ICXQ74PX-CjmK2bAM.js → chunk-ICXQ74PX-BdMYglo2.js} +1 -1
- package/dist/web-client/assets/{chunk-MOJQB5TN-Bkc08KWY.js → chunk-MOJQB5TN-C0LAX_dC.js} +1 -1
- package/dist/web-client/assets/{chunk-OGEWGWER-BAAYYvG9.js → chunk-OGEWGWER-CBx8MB7f.js} +1 -1
- package/dist/web-client/assets/{chunk-PUDLZKDR-WXbPY7NM.js → chunk-PUDLZKDR-DKssR1nf.js} +1 -1
- package/dist/web-client/assets/{chunk-Q4XR5HBZ-DcbnjxQE.js → chunk-Q4XR5HBZ-B3kcxFE-.js} +1 -1
- package/dist/web-client/assets/{chunk-V7JOEXUC-C6t75PAp.js → chunk-V7JOEXUC-CAlymndy.js} +1 -1
- package/dist/web-client/assets/{chunk-VAUOI2AC-DVrJ0Ic7.js → chunk-VAUOI2AC-BowfsmTW.js} +1 -1
- package/dist/web-client/assets/{chunk-VR4S4FIN-MOOFvGS0.js → chunk-VR4S4FIN-BBOydgvt.js} +1 -1
- package/dist/web-client/assets/{chunk-WYO6CB5R-sK7Y2NZD.js → chunk-WYO6CB5R-DcymFbES.js} +1 -1
- package/dist/web-client/assets/{chunk-ZGVPDNZ5-a13RQsku.js → chunk-ZGVPDNZ5--uKFP-Lr.js} +1 -1
- package/dist/web-client/assets/classDiagram-OUVF2IWQ-CB3HiA1_.js +1 -0
- package/dist/web-client/assets/classDiagram-v2-EOCWNBFH-CB3HiA1_.js +1 -0
- package/dist/web-client/assets/{cynefin-VYW2F7L2-D8xaH-wO.js → cynefin-VYW2F7L2-CjboUOMA.js} +1 -1
- package/dist/web-client/assets/{cynefinDiagram-TSTJHNR4-Bt__EqJW.js → cynefinDiagram-TSTJHNR4-BcxygBP7.js} +1 -1
- package/dist/web-client/assets/{dagre-VKFMJZFB-Bwgjwflz.js → dagre-VKFMJZFB-D-tiERQE.js} +1 -1
- package/dist/web-client/assets/{diagram-FQU43EPY-CaPDVUq2.js → diagram-FQU43EPY-ChPXczaS.js} +1 -1
- package/dist/web-client/assets/{diagram-G47NLZAW-BQLB9YYA.js → diagram-G47NLZAW-CVL3Y91h.js} +1 -1
- package/dist/web-client/assets/{diagram-NH7WQ7WH-BWo84w8Y.js → diagram-NH7WQ7WH-DsaNA9Lh.js} +1 -1
- package/dist/web-client/assets/{diagram-OA4YK3LP-bKn6Pz5s.js → diagram-OA4YK3LP-CXhrhdhU.js} +1 -1
- package/dist/web-client/assets/{diagram-WEI45ONY-BRqV5Oy6.js → diagram-WEI45ONY-BTVPnk4E.js} +1 -1
- package/dist/web-client/assets/{ebnfDiagram-CCIWWBDH-DhUXL1-7.js → ebnfDiagram-CCIWWBDH-BAyrRBtM.js} +1 -1
- package/dist/web-client/assets/{erDiagram-Q63AITRT-HXAQQ-_F.js → erDiagram-Q63AITRT-Qm24Wepm.js} +1 -1
- package/dist/web-client/assets/eventmodeling-45OFAUF4-DoTBIvl5.js +1 -0
- package/dist/web-client/assets/flowDiagram-23GEKE2U-BEH23L1A.js +1 -0
- package/dist/web-client/assets/{ganttDiagram-NO4QXBWP-D-Ddf_Ii.js → ganttDiagram-NO4QXBWP-D8h7l3XJ.js} +1 -1
- package/dist/web-client/assets/{gitGraph-TEB2WS4Q-BmHzs0uF.js → gitGraph-TEB2WS4Q-DIBml1SB.js} +1 -1
- package/dist/web-client/assets/{gitGraphDiagram-IHSO6WYX-YnQWrlh_.js → gitGraphDiagram-IHSO6WYX-CtkYoXjn.js} +1 -1
- package/dist/web-client/assets/{index-DCWxuIeQ.js → index-DOSH4Q9H.js} +38 -36
- package/dist/web-client/assets/index-wSzUPvml.css +2 -0
- package/dist/web-client/assets/{info-DKCQHKI2-DCT_B7RN.js → info-DKCQHKI2-DLEUtV5Q.js} +1 -1
- package/dist/web-client/assets/{infoDiagram-FWYZ7A6U-D-le1Zhq.js → infoDiagram-FWYZ7A6U-BJQ7aQux.js} +1 -1
- package/dist/web-client/assets/{ishikawaDiagram-FXEZZL3T-Jr1x2VJB.js → ishikawaDiagram-FXEZZL3T-BPM11FvG.js} +1 -1
- package/dist/web-client/assets/{journeyDiagram-5HDEW3XC-BF9ELxj-.js → journeyDiagram-5HDEW3XC-C0aX2z3c.js} +1 -1
- package/dist/web-client/assets/{kanban-definition-HUTT4EX6-C4fJqAxu.js → kanban-definition-HUTT4EX6-C56F29Ib.js} +1 -1
- package/dist/web-client/assets/{line-7N7ikFxa.js → line-BLFHLF2N.js} +1 -1
- package/dist/web-client/assets/{mermaid-parser.core-QbC1icPt.js → mermaid-parser.core-BLC8FhgU.js} +3 -3
- package/dist/web-client/assets/{mermaid.core-C26d_UJm.js → mermaid.core-BBqkKuXt.js} +3 -3
- package/dist/web-client/assets/{mindmap-definition-LN4V7U3C-D6TV1JDf.js → mindmap-definition-LN4V7U3C-aVZbsoPc.js} +1 -1
- package/dist/web-client/assets/{packet-7NZHBO7P-CR1vrGj3.js → packet-7NZHBO7P-D4aqSQfB.js} +1 -1
- package/dist/web-client/assets/{pegDiagram-2B236MQR-xOMBBtfV.js → pegDiagram-2B236MQR-DjfyNI0U.js} +1 -1
- package/dist/web-client/assets/{pie-RZYD4A2V-BbWuhjwy.js → pie-RZYD4A2V-ChCwYsYj.js} +1 -1
- package/dist/web-client/assets/{pieDiagram-ENE6RG2P-MsfnsqgW.js → pieDiagram-ENE6RG2P-BeHLKkXC.js} +1 -1
- package/dist/web-client/assets/{quadrantDiagram-ABIIQ3AL-BoI7zKXF.js → quadrantDiagram-ABIIQ3AL-stga3gvq.js} +1 -1
- package/dist/web-client/assets/{radar-I7S5WNFK-CbYXKToJ.js → radar-I7S5WNFK-DOGheiwT.js} +1 -1
- package/dist/web-client/assets/{railroad-3IZDKUUU-6LxHDkLe.js → railroad-3IZDKUUU-_JnU7M6L.js} +1 -1
- package/dist/web-client/assets/railroad-abnf-AHOZXSZD-nhNub7LE.js +1 -0
- package/dist/web-client/assets/railroad-ebnf-EBAXGLYW-BlQYe7Yf.js +1 -0
- package/dist/web-client/assets/railroad-peg-LSFZ7HO6-B3E8pRVN.js +1 -0
- package/dist/web-client/assets/{railroadDiagram-RFXS5EU6-D6RUoUki.js → railroadDiagram-RFXS5EU6-C0CkMsOd.js} +1 -1
- package/dist/web-client/assets/{requirementDiagram-TGXJPOKE-B6k4BDpE.js → requirementDiagram-TGXJPOKE-DuImwoRD.js} +1 -1
- package/dist/web-client/assets/{sankeyDiagram-HTMAVEWB-BUDF-UFr.js → sankeyDiagram-HTMAVEWB-kprq0XF9.js} +1 -1
- package/dist/web-client/assets/{sequenceDiagram-DBY2YBRQ-D6GqcsUi.js → sequenceDiagram-DBY2YBRQ-DiXKJMF6.js} +1 -1
- package/dist/web-client/assets/{stateDiagram-2N3HPSRC-WfJCQAK5.js → stateDiagram-2N3HPSRC-D5qbVStE.js} +1 -1
- package/dist/web-client/assets/stateDiagram-v2-6OUMAXLB-DWwTAG1r.js +1 -0
- package/dist/web-client/assets/{swimlanes-5IMT3BWC-BtMo82mC.js → swimlanes-5IMT3BWC-DCbw389c.js} +1 -1
- package/dist/web-client/assets/swimlanesDiagram-G3AALYLV-DabrCsjZ.js +8 -0
- package/dist/web-client/assets/{timeline-definition-FHXFAJF6-CoAmv2Sn.js → timeline-definition-FHXFAJF6-CQeaYN_9.js} +1 -1
- package/dist/web-client/assets/{treeView-QDETBFTQ-BWsKzE1s.js → treeView-QDETBFTQ-Cf7Sq3qo.js} +1 -1
- package/dist/web-client/assets/{treemap-6X3UGDF4-i_qGtB3o.js → treemap-6X3UGDF4-BovzvoTU.js} +1 -1
- package/dist/web-client/assets/{vennDiagram-L72KCM5P-DYkiLe-P.js → vennDiagram-L72KCM5P-CZsJy139.js} +1 -1
- package/dist/web-client/assets/{wardley-OPB4EBWU-Daaqr1Vp.js → wardley-OPB4EBWU-DJ7MS6XZ.js} +1 -1
- package/dist/web-client/assets/{wardleyDiagram-EHGQE667-Bofbsg3J.js → wardleyDiagram-EHGQE667-rqhcmsbM.js} +1 -1
- package/dist/web-client/assets/{xychartDiagram-FW5EYKEG-KNF4VTfL.js → xychartDiagram-FW5EYKEG-HuK4Seps.js} +1 -1
- package/dist/web-client/index.html +2 -2
- package/dist/web-server/app.d.ts +4 -1
- package/dist/web-server/app.d.ts.map +1 -1
- package/dist/web-server/app.js +19 -3
- package/dist/web-server/app.js.map +1 -1
- package/dist/web-server/claude-runner.d.ts +109 -7
- package/dist/web-server/claude-runner.d.ts.map +1 -1
- package/dist/web-server/claude-runner.js +329 -50
- package/dist/web-server/claude-runner.js.map +1 -1
- package/dist/web-server/index.d.ts +2 -2
- package/dist/web-server/index.d.ts.map +1 -1
- package/dist/web-server/index.js +3 -2
- package/dist/web-server/index.js.map +1 -1
- package/dist/web-server/permission-policy.d.ts +46 -0
- package/dist/web-server/permission-policy.d.ts.map +1 -0
- package/dist/web-server/permission-policy.js +96 -0
- package/dist/web-server/permission-policy.js.map +1 -0
- package/dist/web-server/prompt-assembly.d.ts +454 -0
- package/dist/web-server/prompt-assembly.d.ts.map +1 -0
- package/dist/web-server/prompt-assembly.js +1122 -0
- package/dist/web-server/prompt-assembly.js.map +1 -0
- package/dist/web-server/routes/hook-events.d.ts +28 -4
- package/dist/web-server/routes/hook-events.d.ts.map +1 -1
- package/dist/web-server/routes/hook-events.js +218 -37
- package/dist/web-server/routes/hook-events.js.map +1 -1
- package/dist/web-server/routes/sessions.d.ts +8 -8
- package/dist/web-server/routes/sessions.d.ts.map +1 -1
- package/dist/web-server/routes/sessions.js +1007 -261
- package/dist/web-server/routes/sessions.js.map +1 -1
- package/dist/web-server/routes/workspace.d.ts +27 -0
- package/dist/web-server/routes/workspace.d.ts.map +1 -0
- package/dist/web-server/routes/workspace.js +280 -0
- package/dist/web-server/routes/workspace.js.map +1 -0
- package/dist/web-server/run-event-log.d.ts +167 -0
- package/dist/web-server/run-event-log.d.ts.map +1 -0
- package/dist/web-server/run-event-log.js +468 -0
- package/dist/web-server/run-event-log.js.map +1 -0
- package/dist/web-server/session-reconciler.d.ts +162 -0
- package/dist/web-server/session-reconciler.d.ts.map +1 -0
- package/dist/web-server/session-reconciler.js +363 -0
- package/dist/web-server/session-reconciler.js.map +1 -0
- package/dist/web-server/static.d.ts +7 -0
- package/dist/web-server/static.d.ts.map +1 -1
- package/dist/web-server/static.js +46 -3
- package/dist/web-server/static.js.map +1 -1
- package/dist/web-server/web-auth.d.ts +17 -0
- package/dist/web-server/web-auth.d.ts.map +1 -0
- package/dist/web-server/web-auth.js +33 -0
- package/dist/web-server/web-auth.js.map +1 -0
- package/dist/web-server/web-token.d.ts +39 -0
- package/dist/web-server/web-token.d.ts.map +1 -0
- package/dist/web-server/web-token.js +71 -0
- package/dist/web-server/web-token.js.map +1 -0
- package/opencode/arcs/manifest.json +8 -8
- package/package.json +1 -1
- package/scripts/claude-code-session-hook.mjs +37 -16
- package/scripts/deploy-claudecode-bundle.mjs +24 -3
- package/dist/web-client/assets/architecture-TIHT7OUA-CJqI5wNI.js +0 -1
- package/dist/web-client/assets/channel-C8DlmyVe.js +0 -1
- package/dist/web-client/assets/classDiagram-OUVF2IWQ-p32N1P_G.js +0 -1
- package/dist/web-client/assets/classDiagram-v2-EOCWNBFH-p32N1P_G.js +0 -1
- package/dist/web-client/assets/eventmodeling-45OFAUF4-Bj5P8mZJ.js +0 -1
- package/dist/web-client/assets/flowDiagram-23GEKE2U-37BztFri.js +0 -1
- package/dist/web-client/assets/index-3mNPVkix.css +0 -2
- package/dist/web-client/assets/railroad-abnf-AHOZXSZD-2Dg9wu0J.js +0 -1
- package/dist/web-client/assets/railroad-ebnf-EBAXGLYW-C_E2ot0R.js +0 -1
- package/dist/web-client/assets/railroad-peg-LSFZ7HO6-Bs9UQR1b.js +0 -1
- package/dist/web-client/assets/stateDiagram-v2-6OUMAXLB-BCMWGnsJ.js +0 -1
- package/dist/web-client/assets/swimlanesDiagram-G3AALYLV-DmudmLcK.js +0 -8
- package/dist/web-server/opencode-client.d.ts +0 -123
- package/dist/web-server/opencode-client.d.ts.map +0 -1
- package/dist/web-server/opencode-client.js +0 -514
- package/dist/web-server/opencode-client.js.map +0 -1
package/README.md
CHANGED
|
@@ -362,7 +362,7 @@ The web UI's session panel delivers a prompt through one of four modes (the "del
|
|
|
362
362
|
|
|
363
363
|
| Mode | Runtime target | Memory |
|
|
364
364
|
|------|----------------|--------|
|
|
365
|
-
| **
|
|
365
|
+
| **fork via turns** | A new ARCS-owned thread forked from the referenced Claude Code session (`POST /sessions/:id/turns` + `--fork-session`) — ARCS never injects into the live session itself | The fork inherits the session's context; later turns accumulate on the fork's own sidecar |
|
|
366
366
|
| **headless resume** | The referenced Claude Code session's runtime thread, resumed headlessly (`--resume`) | The session's thread; **idle sessions only** |
|
|
367
367
|
| **headless one-shot** | A fresh `claude -p` against an ARCS-owned `arcs-oneshot-<slug>` record | None — a fresh Claude every call |
|
|
368
368
|
| **headless thread** | A persistent ARCS-owned thread (`arcs-thread-<slug>-<uuid4>`), minted once then reused | Accumulates in one sidecar |
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const DEFAULT_SERVER_URL = "http://127.0.0.1:4173";
|
|
1
|
+
import { DEFAULT_SERVER_URL, HOOK_EVENTS, type HookEventName } from "../../utils/hook-contract.js";
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Re-exported from the bridge contract, which is where the event list and the
|
|
4
|
+
* default URL are defined once for the server, this installer, and the parity
|
|
5
|
+
* test that pins the standalone hook script to them. Kept exported here because
|
|
6
|
+
* `utils/claude-code-hook-install.ts` sources them from this module.
|
|
6
7
|
*/
|
|
7
|
-
export
|
|
8
|
-
export type HookEvent =
|
|
8
|
+
export { DEFAULT_SERVER_URL, HOOK_EVENTS };
|
|
9
|
+
export type HookEvent = HookEventName;
|
|
9
10
|
export interface ProvisionedHook {
|
|
10
11
|
token: string;
|
|
11
12
|
hookScriptPath: string;
|
|
@@ -31,6 +32,45 @@ export interface HookStatus {
|
|
|
31
32
|
installed: boolean;
|
|
32
33
|
matchesCurrentSlug: boolean;
|
|
33
34
|
matchedSlugs: string[];
|
|
35
|
+
/**
|
|
36
|
+
* The `ARCS_HOOK_URL` values baked into the installed hook commands, in the
|
|
37
|
+
* order first seen. Additive to the pre-existing shape and always an array:
|
|
38
|
+
* an absent, unreadable or unparsable install reports `[]` rather than
|
|
39
|
+
* failing, and a workspace whose entries disagree reports each distinct URL
|
|
40
|
+
* instead of picking a winner.
|
|
41
|
+
*
|
|
42
|
+
* This is the field that makes the bridge's worst failure mode visible — the
|
|
43
|
+
* URL is written into settings.json at install time, so it keeps pointing at
|
|
44
|
+
* whatever port `arcs web` used *then*, no matter what it binds now.
|
|
45
|
+
*/
|
|
46
|
+
hookUrls: string[];
|
|
34
47
|
hookScriptPath: string;
|
|
35
48
|
}
|
|
49
|
+
export interface BoundAddress {
|
|
50
|
+
host: string;
|
|
51
|
+
port: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The single warning block `arcs web` prints when the address it actually bound
|
|
55
|
+
* disagrees with the URL baked into an installed hook — or `null` when there is
|
|
56
|
+
* nothing to say. Plain text: the caller owns the colouring.
|
|
57
|
+
*
|
|
58
|
+
* Why this exists: `ARCS_HOOK_URL` is written into settings.json at install
|
|
59
|
+
* time, so `arcs web --port N` leaves every already-installed hook posting to
|
|
60
|
+
* the old port. The hook exits 0 on a failed POST by design (a broken bridge
|
|
61
|
+
* must be inert, never fatal to the user's Claude Code session), so the bridge
|
|
62
|
+
* dies with no output anywhere and looks exactly like an idle session. This is
|
|
63
|
+
* the only place that difference becomes visible.
|
|
64
|
+
*
|
|
65
|
+
* Compares PORTS, not full origins: `arcs web` refuses anything but loopback,
|
|
66
|
+
* and 127.0.0.1 / localhost / ::1 are the same listener often enough that
|
|
67
|
+
* warning on a host spelling difference would be noise that trains the warning
|
|
68
|
+
* away. The port is the difference that reliably breaks the bridge.
|
|
69
|
+
*
|
|
70
|
+
* Never throws and never blocks — it runs after the server is already
|
|
71
|
+
* listening, and every read inside it degrades to silence: no data dir, no
|
|
72
|
+
* root meta, no project, no workspace, no settings file, malformed settings,
|
|
73
|
+
* or an `ARCS_HOOK_URL` that is not a parsable URL all produce `null`.
|
|
74
|
+
*/
|
|
75
|
+
export declare function hookUrlMismatchWarning(bound: BoundAddress): Promise<string | null>;
|
|
36
76
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAanG;;;;;GAKG;AACH,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,eAAe,CAAC,CAc3B;AAuLD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAyKD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAmCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxF"}
|
|
@@ -6,18 +6,20 @@ import { readFile } from "node:fs/promises";
|
|
|
6
6
|
import { homedir } from "node:os";
|
|
7
7
|
import { resolve } from "node:path";
|
|
8
8
|
import { claudeSettingsLocalPath, installClaudeCodeHook, } from "../../utils/claude-code-hook-install.js";
|
|
9
|
+
import { readRootMeta } from "../../utils/dag.js";
|
|
10
|
+
import { DEFAULT_SERVER_URL, HOOK_EVENTS } from "../../utils/hook-contract.js";
|
|
9
11
|
import { writeHookToken } from "../../utils/hook-token-store.js";
|
|
10
|
-
import { PACKAGE_ROOT } from "../../utils/paths.js";
|
|
12
|
+
import { getDataDir, PACKAGE_ROOT } from "../../utils/paths.js";
|
|
11
13
|
import { resolveProject } from "../../utils/project-resolver.js";
|
|
12
14
|
import { defineCommand, } from "../command-registry.js";
|
|
13
15
|
import { failure, success } from "../output-envelope.js";
|
|
14
|
-
/** Matches `arcs web`'s own default — override when that port is taken. */
|
|
15
|
-
export const DEFAULT_SERVER_URL = "http://127.0.0.1:4173";
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* Re-exported from the bridge contract, which is where the event list and the
|
|
18
|
+
* default URL are defined once for the server, this installer, and the parity
|
|
19
|
+
* test that pins the standalone hook script to them. Kept exported here because
|
|
20
|
+
* `utils/claude-code-hook-install.ts` sources them from this module.
|
|
19
21
|
*/
|
|
20
|
-
export
|
|
22
|
+
export { DEFAULT_SERVER_URL, HOOK_EVENTS };
|
|
21
23
|
/**
|
|
22
24
|
* Rotates the project's hook token and builds the `command` string a
|
|
23
25
|
* settings.json hook entry must run.
|
|
@@ -32,9 +34,14 @@ export async function provisionHookCommand(options) {
|
|
|
32
34
|
const serverUrl = (options.serverUrl ?? DEFAULT_SERVER_URL).replace(/\/+$/, "");
|
|
33
35
|
const token = randomUUID();
|
|
34
36
|
await writeHookToken(options.projectDir, token);
|
|
35
|
-
const
|
|
36
|
-
const command = buildHookCommand({
|
|
37
|
-
|
|
37
|
+
const scriptPath = hookScriptPath();
|
|
38
|
+
const command = buildHookCommand({
|
|
39
|
+
token,
|
|
40
|
+
slug: options.slug,
|
|
41
|
+
serverUrl,
|
|
42
|
+
hookScriptPath: scriptPath,
|
|
43
|
+
});
|
|
44
|
+
return { token, hookScriptPath: scriptPath, serverUrl, command };
|
|
38
45
|
}
|
|
39
46
|
/**
|
|
40
47
|
* The literal `command` string a settings.json hook entry runs.
|
|
@@ -183,26 +190,35 @@ defineCommand({
|
|
|
183
190
|
});
|
|
184
191
|
/** `ARCS_HOOK_SLUG=<slug>` as prefixed onto a settings.json hook `command`. */
|
|
185
192
|
const HOOK_SLUG_PATTERN = /ARCS_HOOK_SLUG=(\S+)/;
|
|
193
|
+
/** `ARCS_HOOK_URL=<url>` as prefixed onto a settings.json hook `command`. */
|
|
194
|
+
const HOOK_URL_PATTERN = /ARCS_HOOK_URL=(\S+)/;
|
|
195
|
+
/** Fresh (never shared) empty result — every degradation path returns this. */
|
|
196
|
+
function noHooks() {
|
|
197
|
+
return { installed: false, matchedSlugs: [], hookUrls: [] };
|
|
198
|
+
}
|
|
186
199
|
/**
|
|
187
|
-
*
|
|
188
|
-
* `resolveProject()` sources
|
|
189
|
-
*
|
|
190
|
-
*
|
|
200
|
+
* Configured workspace paths for a project, in order, mirroring how
|
|
201
|
+
* `resolveProject()` sources them. Returns `[]` when the project has none (or
|
|
202
|
+
* its meta is unreadable) — a status check reports "not installed" rather than
|
|
203
|
+
* guessing at `process.cwd()`, since inspecting whatever directory the CLI
|
|
191
204
|
* happens to run from would be a lie about the project.
|
|
192
205
|
*/
|
|
193
|
-
async function
|
|
206
|
+
async function workspacePathsFor(projectDir) {
|
|
194
207
|
let meta;
|
|
195
208
|
try {
|
|
196
209
|
meta = JSON.parse(await readFile(resolve(projectDir, "meta.json"), "utf-8"));
|
|
197
210
|
}
|
|
198
211
|
catch {
|
|
199
|
-
return
|
|
212
|
+
return [];
|
|
200
213
|
}
|
|
201
|
-
const
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
214
|
+
const configured = Array.isArray(meta.workspacePaths) ? meta.workspacePaths : [];
|
|
215
|
+
const paths = [];
|
|
216
|
+
for (const entry of configured) {
|
|
217
|
+
if (typeof entry !== "string" || entry.length === 0)
|
|
218
|
+
continue;
|
|
219
|
+
paths.push(entry.startsWith("~") ? resolve(homedir(), entry.slice(2)) : resolve(entry));
|
|
220
|
+
}
|
|
221
|
+
return paths;
|
|
206
222
|
}
|
|
207
223
|
/**
|
|
208
224
|
* Read-only inspection of a workspace's `.claude/settings.local.json`.
|
|
@@ -213,12 +229,14 @@ async function firstWorkspacePath(projectDir) {
|
|
|
213
229
|
*
|
|
214
230
|
* `installed` requires every hook event to be registered: a partial
|
|
215
231
|
* registration is a broken bridge that should be repaired, so reporting it as
|
|
216
|
-
* installed would suppress the fix. `matchedSlugs`
|
|
217
|
-
* case, which is also how a caller sees a hook wired to a
|
|
232
|
+
* installed would suppress the fix. `matchedSlugs`/`hookUrls` are still
|
|
233
|
+
* populated in that case, which is also how a caller sees a hook wired to a
|
|
234
|
+
* *different* project or a *different* port.
|
|
218
235
|
*/
|
|
219
236
|
function inspectSettings(settings, hookScriptPath) {
|
|
220
237
|
const hooks = settings.hooks ?? {};
|
|
221
238
|
const matchedSlugs = [];
|
|
239
|
+
const hookUrls = [];
|
|
222
240
|
let eventsWithHook = 0;
|
|
223
241
|
for (const event of HOOK_EVENTS) {
|
|
224
242
|
const entries = Array.isArray(hooks[event]) ? hooks[event] : [];
|
|
@@ -233,12 +251,53 @@ function inspectSettings(settings, hookScriptPath) {
|
|
|
233
251
|
const slug = HOOK_SLUG_PATTERN.exec(h.command)?.[1];
|
|
234
252
|
if (slug && !matchedSlugs.includes(slug))
|
|
235
253
|
matchedSlugs.push(slug);
|
|
254
|
+
const url = HOOK_URL_PATTERN.exec(h.command)?.[1];
|
|
255
|
+
if (url && !hookUrls.includes(url))
|
|
256
|
+
hookUrls.push(url);
|
|
236
257
|
}
|
|
237
258
|
}
|
|
238
259
|
if (found)
|
|
239
260
|
eventsWithHook++;
|
|
240
261
|
}
|
|
241
|
-
return { installed: eventsWithHook === HOOK_EVENTS.length, matchedSlugs };
|
|
262
|
+
return { installed: eventsWithHook === HOOK_EVENTS.length, matchedSlugs, hookUrls };
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* The one read path for an installed hook: locate the workspace's
|
|
266
|
+
* `.claude/settings.local.json`, parse it, and hand it to `inspectSettings()`.
|
|
267
|
+
*
|
|
268
|
+
* Every failure — missing file, empty file, invalid JSON, a JSON array or
|
|
269
|
+
* scalar where an object belongs — degrades to `noHooks()` instead of throwing.
|
|
270
|
+
* That is deliberately the mirror image of `installClaudeCodeHook()`, which
|
|
271
|
+
* aborts on the same malformed input: the writer must never clobber a
|
|
272
|
+
* hand-edited settings file, but a reader risks nothing, and callers here
|
|
273
|
+
* include a server startup path that must not be killable by a stray comma in
|
|
274
|
+
* someone else's config.
|
|
275
|
+
*/
|
|
276
|
+
async function inspectWorkspaceHooks(workspacePath, hookScriptPath) {
|
|
277
|
+
let raw;
|
|
278
|
+
try {
|
|
279
|
+
raw = await readFile(claudeSettingsLocalPath(workspacePath), "utf-8");
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
return noHooks();
|
|
283
|
+
}
|
|
284
|
+
if (raw.trim().length === 0)
|
|
285
|
+
return noHooks();
|
|
286
|
+
let parsed;
|
|
287
|
+
try {
|
|
288
|
+
parsed = JSON.parse(raw);
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
return noHooks();
|
|
292
|
+
}
|
|
293
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
294
|
+
return noHooks();
|
|
295
|
+
}
|
|
296
|
+
return inspectSettings(parsed, hookScriptPath);
|
|
297
|
+
}
|
|
298
|
+
/** Absolute path of the standalone hook script a settings entry must run. */
|
|
299
|
+
function hookScriptPath() {
|
|
300
|
+
return resolve(PACKAGE_ROOT, "scripts", "claude-code-session-hook.mjs");
|
|
242
301
|
}
|
|
243
302
|
/**
|
|
244
303
|
* Reports whether the session-bridge hook is registered in the project's
|
|
@@ -246,8 +305,7 @@ function inspectSettings(settings, hookScriptPath) {
|
|
|
246
305
|
*
|
|
247
306
|
* Deliberately does not call `provisionHookCommand()`: that rotates the hook
|
|
248
307
|
* token, so a status check built on it would break the very hook it was asked
|
|
249
|
-
* to inspect.
|
|
250
|
-
* with the install path.
|
|
308
|
+
* to inspect. Only `hookScriptPath()` is shared with the install path.
|
|
251
309
|
*
|
|
252
310
|
* A malformed or non-object settings file reports `installed: false` rather
|
|
253
311
|
* than throwing: unlike the install path (which must abort before writing so a
|
|
@@ -258,41 +316,121 @@ async function handleHooksStatus(params, _flags) {
|
|
|
258
316
|
if (!resolved.ok)
|
|
259
317
|
return resolved.result;
|
|
260
318
|
const { slug, projectDir } = resolved;
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
319
|
+
const scriptPath = hookScriptPath();
|
|
320
|
+
// First workspace only, matching `resolveProject()` — status answers for the
|
|
321
|
+
// workspace a hook install would have targeted.
|
|
322
|
+
const workspacePath = (await workspacePathsFor(projectDir))[0];
|
|
323
|
+
const { installed, matchedSlugs, hookUrls } = workspacePath
|
|
324
|
+
? await inspectWorkspaceHooks(workspacePath, scriptPath)
|
|
325
|
+
: noHooks();
|
|
326
|
+
return success({
|
|
327
|
+
installed,
|
|
328
|
+
matchesCurrentSlug: matchedSlugs.includes(slug),
|
|
329
|
+
matchedSlugs,
|
|
330
|
+
hookUrls,
|
|
331
|
+
hookScriptPath: scriptPath,
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
/** `http://host:port`, bracketing an IPv6 host so the printed URL is valid. */
|
|
335
|
+
function boundUrlOf(bound) {
|
|
336
|
+
const host = bound.host.includes(":") && !bound.host.startsWith("[") ? `[${bound.host}]` : bound.host;
|
|
337
|
+
return `http://${host}:${bound.port}`;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Port a baked `ARCS_HOOK_URL` actually posts to, or undefined when the value
|
|
341
|
+
* is not a URL we can read. Undefined means "unknown", and unknown must stay
|
|
342
|
+
* silent — a warning we cannot substantiate is worse than none.
|
|
343
|
+
*/
|
|
344
|
+
function portOfUrl(url) {
|
|
345
|
+
let parsed;
|
|
272
346
|
try {
|
|
273
|
-
|
|
347
|
+
parsed = new URL(url);
|
|
274
348
|
}
|
|
275
349
|
catch {
|
|
276
|
-
return
|
|
350
|
+
return undefined;
|
|
277
351
|
}
|
|
278
|
-
if (
|
|
279
|
-
|
|
280
|
-
|
|
352
|
+
if (parsed.port.length > 0) {
|
|
353
|
+
const port = Number(parsed.port);
|
|
354
|
+
return Number.isInteger(port) ? port : undefined;
|
|
355
|
+
}
|
|
356
|
+
if (parsed.protocol === "https:")
|
|
357
|
+
return 443;
|
|
358
|
+
if (parsed.protocol === "http:")
|
|
359
|
+
return 80;
|
|
360
|
+
return undefined;
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* The single warning block `arcs web` prints when the address it actually bound
|
|
364
|
+
* disagrees with the URL baked into an installed hook — or `null` when there is
|
|
365
|
+
* nothing to say. Plain text: the caller owns the colouring.
|
|
366
|
+
*
|
|
367
|
+
* Why this exists: `ARCS_HOOK_URL` is written into settings.json at install
|
|
368
|
+
* time, so `arcs web --port N` leaves every already-installed hook posting to
|
|
369
|
+
* the old port. The hook exits 0 on a failed POST by design (a broken bridge
|
|
370
|
+
* must be inert, never fatal to the user's Claude Code session), so the bridge
|
|
371
|
+
* dies with no output anywhere and looks exactly like an idle session. This is
|
|
372
|
+
* the only place that difference becomes visible.
|
|
373
|
+
*
|
|
374
|
+
* Compares PORTS, not full origins: `arcs web` refuses anything but loopback,
|
|
375
|
+
* and 127.0.0.1 / localhost / ::1 are the same listener often enough that
|
|
376
|
+
* warning on a host spelling difference would be noise that trains the warning
|
|
377
|
+
* away. The port is the difference that reliably breaks the bridge.
|
|
378
|
+
*
|
|
379
|
+
* Never throws and never blocks — it runs after the server is already
|
|
380
|
+
* listening, and every read inside it degrades to silence: no data dir, no
|
|
381
|
+
* root meta, no project, no workspace, no settings file, malformed settings,
|
|
382
|
+
* or an `ARCS_HOOK_URL` that is not a parsable URL all produce `null`.
|
|
383
|
+
*/
|
|
384
|
+
export async function hookUrlMismatchWarning(bound) {
|
|
281
385
|
try {
|
|
282
|
-
|
|
386
|
+
return await buildHookUrlMismatchWarning(bound);
|
|
283
387
|
}
|
|
284
388
|
catch {
|
|
285
|
-
return
|
|
389
|
+
return null;
|
|
286
390
|
}
|
|
287
|
-
|
|
288
|
-
|
|
391
|
+
}
|
|
392
|
+
async function buildHookUrlMismatchWarning(bound) {
|
|
393
|
+
const dataDir = getDataDir();
|
|
394
|
+
let projects;
|
|
395
|
+
try {
|
|
396
|
+
projects = (await readRootMeta(dataDir)).projects;
|
|
289
397
|
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
398
|
+
catch {
|
|
399
|
+
return null;
|
|
400
|
+
}
|
|
401
|
+
const scriptPath = hookScriptPath();
|
|
402
|
+
const mismatches = [];
|
|
403
|
+
const seen = new Set();
|
|
404
|
+
// Every project is scanned: `arcs web` serves all of them from one listener,
|
|
405
|
+
// so any project's hook can be the one pointing somewhere else. Workspaces
|
|
406
|
+
// that disagree with each other are all reported rather than reconciled.
|
|
407
|
+
for (const project of projects) {
|
|
408
|
+
const projectDir = resolve(dataDir, "projects", project.id);
|
|
409
|
+
for (const workspacePath of await workspacePathsFor(projectDir)) {
|
|
410
|
+
const { hookUrls } = await inspectWorkspaceHooks(workspacePath, scriptPath);
|
|
411
|
+
for (const url of hookUrls) {
|
|
412
|
+
const port = portOfUrl(url);
|
|
413
|
+
if (port === undefined || port === bound.port)
|
|
414
|
+
continue;
|
|
415
|
+
const key = `${project.id}\x00${url}`;
|
|
416
|
+
if (seen.has(key))
|
|
417
|
+
continue;
|
|
418
|
+
seen.add(key);
|
|
419
|
+
mismatches.push({ slug: project.id, url });
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
if (mismatches.length === 0)
|
|
424
|
+
return null;
|
|
425
|
+
const boundUrl = boundUrlOf(bound);
|
|
426
|
+
return [
|
|
427
|
+
"⚠ Claude Code session bridge: the installed hook posts to a different port.",
|
|
428
|
+
` arcs web is listening on ${boundUrl}`,
|
|
429
|
+
...mismatches.map((m) => ` installed hook posts to ${m.url} (project ${m.slug})`),
|
|
430
|
+
" Every hook POST will be refused, and the hook exits 0 by design — the",
|
|
431
|
+
" session bridge will stay silent instead of failing loudly.",
|
|
432
|
+
" Fix: restart on the hook's port, or re-point the hook:",
|
|
433
|
+
` arcs hooks install-claude-code ${mismatches[0].slug} --url ${boundUrl} --write`,
|
|
434
|
+
].join("\n");
|
|
297
435
|
}
|
|
298
436
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/commands/web.js
CHANGED
|
@@ -2,18 +2,21 @@
|
|
|
2
2
|
// web — Start the ARCS web UI (knowledge base visualizer and manager)
|
|
3
3
|
// ---------------------------------------------------------------------------
|
|
4
4
|
import pc from "picocolors";
|
|
5
|
+
import { DEFAULT_WEB_HOST, DEFAULT_WEB_PORT } from "../../utils/hook-contract.js";
|
|
5
6
|
import { defineCommand, } from "../command-registry.js";
|
|
6
7
|
import { failure, success } from "../output-envelope.js";
|
|
7
8
|
const webParams = {
|
|
8
9
|
port: {
|
|
9
10
|
type: "number",
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
// Shared with the hook contract: an installed hook posts to this port, so
|
|
12
|
+
// the two defaults must move together or every hook silently misses.
|
|
13
|
+
default: DEFAULT_WEB_PORT,
|
|
14
|
+
description: `Port to listen on (default ${DEFAULT_WEB_PORT})`,
|
|
12
15
|
},
|
|
13
16
|
host: {
|
|
14
17
|
type: "string",
|
|
15
|
-
default:
|
|
16
|
-
description:
|
|
18
|
+
default: DEFAULT_WEB_HOST,
|
|
19
|
+
description: `Interface to bind (default ${DEFAULT_WEB_HOST})`,
|
|
17
20
|
},
|
|
18
21
|
"no-open": {
|
|
19
22
|
type: "boolean",
|
|
@@ -47,6 +50,13 @@ async function handleWeb(params, _flags) {
|
|
|
47
50
|
];
|
|
48
51
|
// Banner on stderr keeps --json stdout clean.
|
|
49
52
|
console.error(banner.join("\n"));
|
|
53
|
+
// Checked against the address actually bound, not `params.port`: the two
|
|
54
|
+
// differ whenever port 0 was requested. Runs after listen, so it can only
|
|
55
|
+
// add output — it never delays or fails the server coming up.
|
|
56
|
+
const { hookUrlMismatchWarning } = await import("./hooks.js");
|
|
57
|
+
const mismatch = await hookUrlMismatchWarning({ host: handle.host, port: handle.port });
|
|
58
|
+
if (mismatch)
|
|
59
|
+
console.error(`${pc.yellow(mismatch)}\n`);
|
|
50
60
|
return success({ url: handle.url, port: handle.port, host: handle.host });
|
|
51
61
|
}
|
|
52
62
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/cli/commands/web.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAE9E,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAGL,aAAa,GAGd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/cli/commands/web.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/config.d.ts
CHANGED
|
@@ -90,10 +90,21 @@ export interface ProviderModels {
|
|
|
90
90
|
*/
|
|
91
91
|
export declare function readClaudeCodeCurrentModel(): Promise<string>;
|
|
92
92
|
/**
|
|
93
|
-
*
|
|
94
|
-
*
|
|
93
|
+
* Reads ~/.claude/settings.json and returns the registry id of the primary
|
|
94
|
+
* agent the last deploy made the default (or empty string if unset / file
|
|
95
|
+
* missing). scripts/deploy-claudecode-bundle.mjs writes this key on every
|
|
96
|
+
* deploy, so a re-run of the wizard can pre-select what is actually installed
|
|
97
|
+
* instead of silently resetting the default back to the built-in fallback.
|
|
95
98
|
*/
|
|
96
|
-
export declare function
|
|
99
|
+
export declare function readClaudeCodeCurrentPrimaryAgent(): Promise<string>;
|
|
100
|
+
/**
|
|
101
|
+
* Returns the curated Claude Code model list.
|
|
102
|
+
*
|
|
103
|
+
* The list is a single alias group, so there is nothing to order by the
|
|
104
|
+
* currently configured model — the "current" model only drives the per-tier
|
|
105
|
+
* pre-fill at the prompt, not the shape of this list.
|
|
106
|
+
*/
|
|
107
|
+
export declare function getClaudeCodeModels(): ProviderModels[];
|
|
97
108
|
/**
|
|
98
109
|
* Reads ~/.local/share/opencode/auth.json to get authenticated provider names,
|
|
99
110
|
* then runs `opencode models <provider>` for each to get available models.
|
package/dist/cli/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAMD,wBAAgB,aAAa,IAAI,UAAU,CAK1C;AAUD;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAOtC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,UAAU,CAYvC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAGpD;AAMD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQlE;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CACnD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACrD,CAaA;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CACrD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/F;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACrD,CAyCA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,eAAe,CAYrE;AAMD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAMD,wBAAgB,aAAa,IAAI,UAAU,CAK1C;AAUD;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAOtC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,UAAU,CAYvC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAGpD;AAMD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQlE;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CACnD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACrD,CAaA;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CACrD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/F;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACrD,CAyCA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,eAAe,CAYrE;AAMD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AA4BD;;;GAGG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC,CASlE;AAED;;;;;;GAMG;AACH,wBAAsB,iCAAiC,IAAI,OAAO,CAAC,MAAM,CAAC,CASzE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAEtD;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA8CxF"}
|
package/dist/cli/config.js
CHANGED
|
@@ -168,32 +168,24 @@ export function extractModelPreFills(config) {
|
|
|
168
168
|
// Claude Code model list
|
|
169
169
|
// ---------------------------------------------------------------------------
|
|
170
170
|
/**
|
|
171
|
-
* Curated list of Claude models supported by Claude Code
|
|
172
|
-
*
|
|
173
|
-
* Aliases (opus
|
|
171
|
+
* Curated list of Claude models supported by Claude Code.
|
|
172
|
+
*
|
|
173
|
+
* Aliases only — pinned version identifiers (`claude-opus-4-7`, …) are
|
|
174
|
+
* deliberately absent so a deployed bundle tracks whatever the alias resolves
|
|
175
|
+
* to instead of freezing on a snapshot that ages out. `fable` is a heavy-class
|
|
176
|
+
* model offered in the list but not wired as any tier default.
|
|
177
|
+
*
|
|
178
|
+
* `inherit` is not a model but the pseudo-value Claude Code agent frontmatter
|
|
179
|
+
* accepts to defer to the host session's model — the same value
|
|
180
|
+
* scripts/deploy-claudecode-bundle.mjs falls back to when a tier is unset. It is
|
|
181
|
+
* listed explicitly because the tier note already tells users to reach for it,
|
|
182
|
+
* and requiring them to discover it behind "Enter custom model ID" made a
|
|
183
|
+
* documented choice effectively unreachable.
|
|
174
184
|
*/
|
|
175
185
|
const CLAUDE_CODE_MODELS = [
|
|
176
186
|
{
|
|
177
187
|
provider: "claude (aliases)",
|
|
178
|
-
models: ["opus", "sonnet", "haiku"],
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
provider: "claude-opus",
|
|
182
|
-
models: [
|
|
183
|
-
"claude-opus-4-7",
|
|
184
|
-
"claude-opus-4-6",
|
|
185
|
-
"claude-opus-4-5",
|
|
186
|
-
"claude-opus-4-1",
|
|
187
|
-
"claude-opus-4-0",
|
|
188
|
-
],
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
provider: "claude-sonnet",
|
|
192
|
-
models: ["claude-sonnet-4-6", "claude-sonnet-4-5", "claude-sonnet-4-0", "claude-sonnet-3-7"],
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
provider: "claude-haiku",
|
|
196
|
-
models: ["claude-haiku-4-5", "claude-haiku-3-5"],
|
|
188
|
+
models: ["opus", "sonnet", "haiku", "fable", "inherit"],
|
|
197
189
|
},
|
|
198
190
|
];
|
|
199
191
|
/**
|
|
@@ -212,23 +204,32 @@ export async function readClaudeCodeCurrentModel() {
|
|
|
212
204
|
}
|
|
213
205
|
}
|
|
214
206
|
/**
|
|
215
|
-
*
|
|
216
|
-
*
|
|
207
|
+
* Reads ~/.claude/settings.json and returns the registry id of the primary
|
|
208
|
+
* agent the last deploy made the default (or empty string if unset / file
|
|
209
|
+
* missing). scripts/deploy-claudecode-bundle.mjs writes this key on every
|
|
210
|
+
* deploy, so a re-run of the wizard can pre-select what is actually installed
|
|
211
|
+
* instead of silently resetting the default back to the built-in fallback.
|
|
212
|
+
*/
|
|
213
|
+
export async function readClaudeCodeCurrentPrimaryAgent() {
|
|
214
|
+
try {
|
|
215
|
+
const settingsPath = join(homedir(), ".claude", "settings.json");
|
|
216
|
+
const content = await readFile(settingsPath, "utf-8");
|
|
217
|
+
const parsed = JSON.parse(content);
|
|
218
|
+
return typeof parsed.agent === "string" ? parsed.agent : "";
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
return "";
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Returns the curated Claude Code model list.
|
|
226
|
+
*
|
|
227
|
+
* The list is a single alias group, so there is nothing to order by the
|
|
228
|
+
* currently configured model — the "current" model only drives the per-tier
|
|
229
|
+
* pre-fill at the prompt, not the shape of this list.
|
|
217
230
|
*/
|
|
218
|
-
export function getClaudeCodeModels(
|
|
219
|
-
|
|
220
|
-
? "claude-opus"
|
|
221
|
-
: currentModel.includes("sonnet")
|
|
222
|
-
? "claude-sonnet"
|
|
223
|
-
: currentModel.includes("haiku")
|
|
224
|
-
? "claude-haiku"
|
|
225
|
-
: "";
|
|
226
|
-
if (!family)
|
|
227
|
-
return CLAUDE_CODE_MODELS;
|
|
228
|
-
return [
|
|
229
|
-
...CLAUDE_CODE_MODELS.filter((g) => g.provider === family),
|
|
230
|
-
...CLAUDE_CODE_MODELS.filter((g) => g.provider !== family),
|
|
231
|
-
];
|
|
231
|
+
export function getClaudeCodeModels() {
|
|
232
|
+
return CLAUDE_CODE_MODELS;
|
|
232
233
|
}
|
|
233
234
|
/**
|
|
234
235
|
* Reads ~/.local/share/opencode/auth.json to get authenticated provider names,
|