very-happy-cli 0.2.191 → 0.2.193
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/dist/{AcpBackend-CCy_9AfR.mjs → AcpBackend-B4PwjqHt.mjs} +3 -3
- package/dist/{AcpBackend-DgrIc1vH.cjs → AcpBackend-DtJCgftG.cjs} +3 -3
- package/dist/{AcpSessionManager-CQnxx7gD.mjs → AcpSessionManager-BzKWgkdP.mjs} +2 -2
- package/dist/{AcpSessionManager-DVOzCD3P.cjs → AcpSessionManager-D4qshX_H.cjs} +2 -2
- package/dist/{BasePermissionHandler-C9Ag7yvs.cjs → BasePermissionHandler-5iG-cvA2.cjs} +1 -1
- package/dist/{BasePermissionHandler-DYLN6Ec9.mjs → BasePermissionHandler-DV6UM6e9.mjs} +1 -1
- package/dist/account-Dco_nGT4.mjs +297 -0
- package/dist/account-DvpA60oU.cjs +302 -0
- package/dist/accountService-Cd7bnkfd.mjs +916 -0
- package/dist/accountService-CuUSJDhP.cjs +921 -0
- package/dist/{acpSessionResume-TvP_4Zq2.cjs → acpSessionResume-Bk9mjXZ9.cjs} +1 -1
- package/dist/{acpSessionResume-Bi7pA1n_.mjs → acpSessionResume-TQwN9ZZE.mjs} +1 -1
- package/dist/{agentHome-DGv105SR.mjs → agentHome-Bep8semY.mjs} +4 -4
- package/dist/{agentHome-DNUKJWOY.cjs → agentHome-c2dlgcw1.cjs} +4 -4
- package/dist/{api-BBxZ7y2z.cjs → api-CBE_a88I.cjs} +10 -10
- package/dist/{api-jfeMRg5R.mjs → api-DUfunY3x.mjs} +10 -10
- package/dist/{apiMachine-DqyjKBZG.cjs → apiMachine-BqtG0IWm.cjs} +83 -27
- package/dist/{apiMachine-DRJ7y-BB.mjs → apiMachine-CU_bw5nV.mjs} +78 -22
- package/dist/{attachmentContent-BO2njyza.cjs → attachmentContent-B3AzuYqk.cjs} +2 -2
- package/dist/{attachmentContent-Dm_RIs5L.mjs → attachmentContent-KNIZxwlu.mjs} +2 -2
- package/dist/{auth-BYDtjVNb.mjs → auth-CZ7pKS-j.mjs} +8 -8
- package/dist/{auth-DnxoVkkf.cjs → auth-DCjxpI6Z.cjs} +5 -5
- package/dist/{auth-DLR3ksCF.cjs → auth-SJ_dPw7H.cjs} +8 -8
- package/dist/{auth-DC6rg8lJ.mjs → auth-jN5dNqTO.mjs} +5 -5
- package/dist/{auto-CwO0u8hB.cjs → auto-B_59RYH1.cjs} +23 -21
- package/dist/{auto-D5Jhukq1.mjs → auto-DC0Sq-qB.mjs} +23 -21
- package/dist/{bootstrap-rLaL3kTa.mjs → bootstrap-B3gMpU9e.mjs} +2 -2
- package/dist/{bootstrap-sly4qPPY.cjs → bootstrap-CoJu9VnB.cjs} +2 -2
- package/dist/{browser-CHpVgyni.mjs → browser-LHW2hBH8.mjs} +1 -1
- package/dist/{browser-BTgZ9d4i.cjs → browser-v1pdPP1E.cjs} +1 -1
- package/dist/claudeAccountEnv-BL1pR_37.mjs +133 -0
- package/dist/claudeAccountEnv-CEX_EMZr.cjs +138 -0
- package/dist/{claudeLocal-Bgb5GGsq.mjs → claudeLocal-BZUgA5G2.mjs} +5 -5
- package/dist/{claudeLocal-1vuTFcL8.cjs → claudeLocal-BrzM2RBI.cjs} +5 -5
- package/dist/{claudeLocalLauncher-T7EfT68h.mjs → claudeLocalLauncher-A0AQyHFi.mjs} +10 -10
- package/dist/{claudeLocalLauncher-DOsL6HFY.cjs → claudeLocalLauncher-XAMpXUM7.cjs} +10 -10
- package/dist/{claudeSessionFork-Cko4SaVi.cjs → claudeSessionFork-Mhn2fYe_.cjs} +1 -1
- package/dist/{claudeSessionFork-CPvi6yDX.mjs → claudeSessionFork-_GwIlmMB.mjs} +1 -1
- package/dist/{client-BXD66ZF5.mjs → client-7RnI9J0W.mjs} +2 -2
- package/dist/{client-Bi20Ka0h.mjs → client-Bde4QVIn.mjs} +4 -2
- package/dist/{client-C5-C0t2a.cjs → client-CJr8Pjwm.cjs} +4 -2
- package/dist/{client-BscskEBk.cjs → client-D2GWkd-T.cjs} +2 -2
- package/dist/{client-C-OdTbrU.cjs → client-DLlnmAPL.cjs} +4 -4
- package/dist/{client-Bh1aUPh-.mjs → client-DwbhrX6D.mjs} +4 -4
- package/dist/codex/happyMcpStdioBridge.cjs +16 -16
- package/dist/codex/happyMcpStdioBridge.mjs +16 -16
- package/dist/codexAccount-BDQjRbtI.cjs +1028 -0
- package/dist/codexAccount-NOX5pmQf.mjs +1015 -0
- package/dist/{codexAppServerClient-DXhAf6i-.mjs → codexAppServerClient-B3QJV6Ey.mjs} +18 -7
- package/dist/{codexAppServerClient-DKXeikEe.cjs → codexAppServerClient-DWEsZUC4.cjs} +18 -7
- package/dist/{codexCommand-DvbbpYBS.cjs → codexCommand-Bg8AmxVm.cjs} +195 -63
- package/dist/{codexCommand-CIaOiiOj.mjs → codexCommand-D1xlj4sT.mjs} +196 -64
- package/dist/{codexTermination-BszWfyk5.cjs → codexTermination-ByX9GcEJ.cjs} +1 -1
- package/dist/{codexTermination-BcQdEDaw.mjs → codexTermination-CaWAVQjZ.mjs} +1 -1
- package/dist/{config-Di3Cf6js.cjs → config-B2GGbiTv.cjs} +3 -3
- package/dist/{config-OCEcVVK1.mjs → config-C2XYEwXz.mjs} +3 -3
- package/dist/{configuration-DfPBa-9d.cjs → configuration-BBK0rmmj.cjs} +1 -1
- package/dist/{configuration-ECqXu34R.mjs → configuration-ThKBP_zY.mjs} +1 -1
- package/dist/{connect-BTfAUhk8.mjs → connect-BirnCl9q.mjs} +13 -13
- package/dist/{connect-BPQRuOw5.cjs → connect-C3tZs_NC.cjs} +13 -13
- package/dist/{context-CfgTFpCB.mjs → context-C0EFLnOg.mjs} +1 -1
- package/dist/{context-Co7hUaW-.cjs → context-wDp0aZBK.cjs} +1 -1
- package/dist/{controlClient-ClI7A0qE.mjs → controlClient-Ckl8N1MS.mjs} +14 -5
- package/dist/{controlClient-C13_pSKG.cjs → controlClient-DwWTns3A.cjs} +15 -4
- package/dist/{createSessionMetadata-Cf78KHtt.cjs → createSessionMetadata-DqZ6h02H.cjs} +2 -2
- package/dist/{createSessionMetadata-B0eT_Kfj.mjs → createSessionMetadata-vug4Cv8z.mjs} +2 -2
- package/dist/daemonAccounts-CpGDY_4k.cjs +54 -0
- package/dist/daemonAccounts-DwPwKxvv.mjs +30 -0
- package/dist/{defaultPermissionMode-oqTupStc.cjs → defaultPermissionMode-BakXiqRr.cjs} +1 -1
- package/dist/{defaultPermissionMode-m6z2QVyP.mjs → defaultPermissionMode-DF5AfeBb.mjs} +1 -1
- package/dist/{deterministicJson-BtSwbsok.mjs → deterministicJson-BzX94gi3.mjs} +13 -13
- package/dist/{deterministicJson-CpFFgUL_.cjs → deterministicJson-t33SsuRC.cjs} +13 -13
- package/dist/{doctor-BEU0_1Xv.cjs → doctor-B9ug1LZb.cjs} +7 -7
- package/dist/{doctor-lsxmAK4o.mjs → doctor-C1zyOSXw.mjs} +7 -7
- package/dist/{downloadTarget-BXqXhNF7.mjs → downloadTarget-Baslc6jW.mjs} +6 -6
- package/dist/{downloadTarget-CikzJv1h.cjs → downloadTarget-T1id2Gh6.cjs} +6 -6
- package/dist/{ensureDaemonRunning-B_9WAlbU.mjs → ensureDaemonRunning-C6ERYK-O.mjs} +5 -5
- package/dist/{ensureDaemonRunning-BUuH-pbE.cjs → ensureDaemonRunning-CoAg11Zi.cjs} +5 -5
- package/dist/{handleResumeCommand-BK9XKH_l.mjs → handleResumeCommand-CrlqDuz7.mjs} +5 -5
- package/dist/{handleResumeCommand-Dj7oi2KO.cjs → handleResumeCommand-DPi-sPm7.cjs} +5 -5
- package/dist/{index-D3c7CLot.cjs → index-B1swQJUS.cjs} +4 -4
- package/dist/{index-CmZusg8Q.cjs → index-B2dJA8VG.cjs} +3 -3
- package/dist/{index-CLUHaPU8.cjs → index-BUFrKZeQ.cjs} +205 -5
- package/dist/{index-BjZnpGWX.mjs → index-BbdV2mzy.mjs} +3 -3
- package/dist/{index-BdOJOZ6J.mjs → index-BcSPg3c5.mjs} +4 -4
- package/dist/{index-CauRYQKr.cjs → index-Bkslzin5.cjs} +44 -40
- package/dist/{index-DuK9XYbZ.mjs → index-Cn73rdtQ.mjs} +4 -4
- package/dist/{index-Bq8NKSCF.mjs → index-D1YnIih6.mjs} +195 -6
- package/dist/{index-Cxso1rg4.mjs → index-fZO4nF6e.mjs} +45 -41
- package/dist/{index-Dg2NAF_-.cjs → index-rocrvOYG.cjs} +4 -4
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-DXllkuy0.cjs → install-CArXjPfW.cjs} +3 -3
- package/dist/{install-DTIveLOS.mjs → install-CChhyV2G.mjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +354 -0
- package/dist/lib.d.mts +354 -0
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-CD81ryTy.mjs → lidState-B6yYKjNK.mjs} +1 -1
- package/dist/{lidState-C9_DoF9i.cjs → lidState-B_v6qgfE.cjs} +1 -1
- package/dist/{localHappyAgentAuth-Cg-m1lwm.mjs → localHappyAgentAuth-KRlg_aI0.mjs} +1 -1
- package/dist/{localHappyAgentAuth-CCjUvOfi.cjs → localHappyAgentAuth-jJH0n67S.cjs} +1 -1
- package/dist/{logger-Ct2zvaq0.cjs → logger-CX3x2eI4.cjs} +2 -2
- package/dist/{logger-GcbI0eg2.mjs → logger-JV7-4Q_6.mjs} +2 -2
- package/dist/{machineMetadata-CXRmFNOV.mjs → machineMetadata-D5-SW9kv.mjs} +3 -3
- package/dist/{machineMetadata-DDCVWb_x.cjs → machineMetadata-DhZuM0iB.cjs} +3 -3
- package/dist/{main-BHC-WIcM.cjs → main-1x1HGQEy.cjs} +92 -48
- package/dist/{main-omGr_ONk.mjs → main-CFOdXbPD.mjs} +92 -48
- package/dist/{mcp-xUzii0m8.cjs → mcp-BnKBSEh7.cjs} +18 -15
- package/dist/{mcp-D5hxmRAq.mjs → mcp-R6lMcFLO.mjs} +18 -15
- package/dist/{mirrorProtocol-Lcx20Oby.mjs → mirrorProtocol-CD4ntuZJ.mjs} +3 -3
- package/dist/{mirrorProtocol-Dfl8Ahyf.cjs → mirrorProtocol-DO-KtvAL.cjs} +3 -3
- package/dist/{package-BsUHyqWe.mjs → package-Bw3H6VLn.mjs} +7 -7
- package/dist/{package-9n7wd2dT.cjs → package-uzlvxa5S.cjs} +7 -7
- package/dist/{panels-CpEKWWbI.mjs → panels-BamhZCoZ.mjs} +5 -5
- package/dist/{panels-BfknEmt7.cjs → panels-C46FxjmH.cjs} +5 -5
- package/dist/{peerTools-CElYh-5u.cjs → peerTools-D-VNNFw-.cjs} +5 -5
- package/dist/{peerTools-CwCe6tmJ.mjs → peerTools-WtRgTSqG.mjs} +5 -5
- package/dist/{persistence-Cpw4yJs8.mjs → persistence-Cg4sfjQV.mjs} +2 -2
- package/dist/{persistence-A2NeERZJ.cjs → persistence-CsmAgN-C.cjs} +2 -2
- package/dist/{piRunnerArgs-Bqmu16He.mjs → piRunnerArgs-BbaAQvb4.mjs} +2 -2
- package/dist/{piRunnerArgs-BnFU0K73.cjs → piRunnerArgs-vnFygygF.cjs} +1 -1
- package/dist/{piRuntime-Cgn1b0OX.mjs → piRuntime-Bid7TBf5.mjs} +1 -1
- package/dist/{piRuntime-DpS9TAIs.cjs → piRuntime-C2uj5Ucx.cjs} +1 -1
- package/dist/{piTerminal-rmve-VlI.cjs → piTerminal-Ckpjfoqa.cjs} +20 -17
- package/dist/{piTerminal-BGdps8f3.mjs → piTerminal-CqxgrI13.mjs} +20 -17
- package/dist/{pushNotifications-23YSd-0l.cjs → pushNotifications-BCg7YAiu.cjs} +5 -3
- package/dist/{pushNotifications-XAM8__Pg.mjs → pushNotifications-BbE-qV9I.mjs} +5 -3
- package/dist/{query-SZcYnJoW.mjs → query-Bfr9O_62.mjs} +1 -1
- package/dist/{query-u2GX-I0C.cjs → query-vQ-HG394.cjs} +1 -1
- package/dist/{rateLimitReporter-CaTzBe3x.cjs → rateLimitReporter-BZ8x0-6-.cjs} +3 -3
- package/dist/{rateLimitReporter-COUkf446.mjs → rateLimitReporter-CAz7VMw4.mjs} +3 -3
- package/dist/{rateLimitWindows-B2Kx6L0S.cjs → rateLimitWindows-BZl6GMwQ.cjs} +1 -1
- package/dist/{rateLimitWindows-j_qQk0KY.mjs → rateLimitWindows-CRARnKaI.mjs} +1 -1
- package/dist/reconnectEnv-B31lY4nR.cjs +27 -0
- package/dist/reconnectEnv-DeSvHl3q.mjs +24 -0
- package/dist/{registerCommonHandlers-D1MiSfcB.cjs → registerCommonHandlers-CZGmrPbT.cjs} +2 -2
- package/dist/{registerCommonHandlers-DRRfinzK.mjs → registerCommonHandlers-Cj3Nl9y-.mjs} +2 -2
- package/dist/{registerKillSessionHandler-Cpug_r5C.mjs → registerKillSessionHandler-Bg9t45Ub.mjs} +6 -6
- package/dist/{registerKillSessionHandler-hvCsEn7b.cjs → registerKillSessionHandler-C3EDnW4F.cjs} +6 -6
- package/dist/{remoteSessionClient-BdnJ_n8C.mjs → remoteSessionClient--0vfA7I5.mjs} +5 -5
- package/dist/{remoteSessionClient-6ymeMVa4.cjs → remoteSessionClient-CcSP24Zq.cjs} +5 -5
- package/dist/{reportProgressTool-XgQBzxoD.mjs → reportProgressTool-DVru7jc_.mjs} +3 -3
- package/dist/{reportProgressTool-tzQLCLIw.cjs → reportProgressTool-Ddg1yVq2.cjs} +3 -3
- package/dist/{run-DYL_wuj7.cjs → run-BTrIT_jU.cjs} +347 -856
- package/dist/{run-Bt0AklUU.mjs → run-HtvH6BLi.mjs} +346 -855
- package/dist/{runClaude-C3rii_S6.mjs → runClaude-DsHTk5Bu.mjs} +62 -44
- package/dist/{runClaude-CBEpYO4S.cjs → runClaude-ipjwAHPI.cjs} +62 -44
- package/dist/{runClaudeDeps-CYuozSC6.cjs → runClaudeDeps-BKpwL6ln.cjs} +51 -42
- package/dist/{runClaudeDeps-DlVfMG4F.mjs → runClaudeDeps-BV3vpeyY.mjs} +56 -47
- package/dist/{runGemini-CEI3b90u.cjs → runGemini-B-G0_7Ab.cjs} +33 -33
- package/dist/{runGemini-DkYhRk9S.mjs → runGemini-DhjK6_Fp.mjs} +33 -33
- package/dist/{runOpenClaw-DpprWCoz.mjs → runOpenClaw-B6lawk8n.mjs} +18 -18
- package/dist/{runOpenClaw-BgjD6E4d.cjs → runOpenClaw-BHIo8tkn.cjs} +18 -18
- package/dist/{sandbox-XCDUbH72.cjs → sandbox-BAsO0ILe.cjs} +4 -4
- package/dist/{sandbox-DJ7A7lsy.mjs → sandbox-CKb7pCXg.mjs} +4 -4
- package/dist/selfCheck-CZ-t1Xzq.mjs +88 -0
- package/dist/{selfCheck-BYUDB1Uq.cjs → selfCheck-D4VvVZNi.cjs} +39 -37
- package/dist/{send-CASDBCyJ.cjs → send-Cz5m39QR.cjs} +8 -8
- package/dist/{send-Ba63huxv.mjs → send-D8ipLKMY.mjs} +8 -8
- package/dist/{server-w3W0toNd.mjs → server-CjvgT3N9.mjs} +4 -4
- package/dist/{server-cZoV9XRt.cjs → server-CySyJKPH.cjs} +6 -6
- package/dist/{sessionLock-G2PMqvsh.mjs → sessionLock-B73fhgQN.mjs} +10 -4
- package/dist/{sessionLock-BmLA2S8K.cjs → sessionLock-DdDCuNUs.cjs} +10 -3
- package/dist/{sessionOps-DPw5k8vV.mjs → sessionOps-C65Iej_C.mjs} +50 -8
- package/dist/{sessionOps-DXlTmS7J.cjs → sessionOps-XSEjIqNq.cjs} +50 -8
- package/dist/sessionProvider-CLVNkfji.mjs +110 -0
- package/dist/sessionProvider-Dgsty8z_.cjs +115 -0
- package/dist/{sessionScanner-AHjnicxi.cjs → sessionScanner-D8IVXMMH.cjs} +3 -3
- package/dist/{sessionScanner-BCXpdZJN.mjs → sessionScanner-MW1P9Pm9.mjs} +3 -3
- package/dist/{sessions-BiBXOBx0.cjs → sessions-BKz7gZqg.cjs} +10 -10
- package/dist/{sessions-Clk8MR5Y.mjs → sessions-Dtk_agUL.mjs} +10 -10
- package/dist/{setupOfflineReconnection-DI-QZGYz.mjs → setupOfflineReconnection-Bvdy-2xd.mjs} +2 -2
- package/dist/{setupOfflineReconnection-BKLfOd-i.cjs → setupOfflineReconnection-DxMiW7OV.cjs} +2 -2
- package/dist/{spawn-D5omsx1Q.cjs → spawn-DiPkJcrQ.cjs} +36 -17
- package/dist/{spawn-4tsp1uhh.mjs → spawn-Dm4xsZBX.mjs} +36 -17
- package/dist/{spawnAgents-CtkkIFHd.cjs → spawnAgents-B9olJ8xn.cjs} +1 -1
- package/dist/{spawnAgents-CjoU6ZOS.mjs → spawnAgents-I29H9nO8.mjs} +1 -1
- package/dist/{spawnHappyCLI-CF_gLi92.cjs → spawnHappyCLI-BYGOUda1.cjs} +1 -1
- package/dist/{spawnHappyCLI-CIA9Sc_5.mjs → spawnHappyCLI-CnMwzjWX.mjs} +1 -1
- package/dist/{startFileWatcher-9Stpxe7p.cjs → startFileWatcher-D14W6gn-.cjs} +1 -1
- package/dist/{startFileWatcher-CDO6fb2m.mjs → startFileWatcher-DePAY1T5.mjs} +1 -1
- package/dist/{startupSessionCreate-BtR4iYEC.mjs → startupSessionCreate-DoK0IvJG.mjs} +3 -3
- package/dist/{startupSessionCreate-CcF7rGGB.cjs → startupSessionCreate-rBHd4tc1.cjs} +3 -3
- package/dist/store-CkNa6oj4.cjs +326 -0
- package/dist/store-Vej_738f.mjs +305 -0
- package/dist/{streamRelay-BhI6jqF-.cjs → streamRelay-C0G1HOOd.cjs} +1 -1
- package/dist/{streamRelay-DMwOMTKf.mjs → streamRelay-C5U-C4GS.mjs} +1 -1
- package/dist/{sync-C0PRuTMj.mjs → sync-BP6vnxVP.mjs} +1 -1
- package/dist/{sync-Ba8N6xba.cjs → sync-WYBwkJvG.cjs} +1 -1
- package/dist/{systemPrompt-DV5IReD4.cjs → systemPrompt-BkQlCk5_.cjs} +2 -2
- package/dist/{systemPrompt-D0q8eyjy.mjs → systemPrompt-aRqBmkpw.mjs} +2 -2
- package/dist/{teams-BO3_arwM.mjs → teams-CGmC4ygu.mjs} +7 -7
- package/dist/{teams-z3Gp-KlV.cjs → teams-phbpwAGD.cjs} +7 -7
- package/dist/{template-B_5l6pkc.cjs → template-B9pLEP8v.cjs} +2 -2
- package/dist/{template-DLR_0hfj.mjs → template-CL9EvQLQ.mjs} +2 -2
- package/dist/{time-Cy0a-7YX.cjs → time-BTLcO8jp.cjs} +1 -1
- package/dist/{time-D0jvDRhn.mjs → time-Cw0liIqB.mjs} +1 -1
- package/dist/{titleGenerator-RGHWP2YL.cjs → titleGenerator-Y1_7ceJC.cjs} +17 -13
- package/dist/{titleGenerator-AGQsXskb.mjs → titleGenerator-h6TmFe-c.mjs} +16 -12
- package/dist/{todo-CzIDPLFy.cjs → todo-BxiPiCvB.cjs} +6 -6
- package/dist/{todo-BZ954vsz.mjs → todo-OKcTC_VC.mjs} +6 -6
- package/dist/{tools-Bei5i03L.mjs → tools-BR-drXZ8.mjs} +3 -2
- package/dist/{tools-B1x1j6tz.cjs → tools-CcebYtLj.cjs} +3 -2
- package/dist/{uninstall-C3cnIvz1.cjs → uninstall-CnDeCC-M.cjs} +3 -3
- package/dist/{uninstall-B4T_e3Mr.mjs → uninstall-D3stWKD2.mjs} +3 -3
- package/dist/wrapperAccount-BkufO_9g.mjs +107 -0
- package/dist/wrapperAccount-D2A4DuZy.cjs +113 -0
- package/package.json +7 -7
- package/dist/providerBinding-B-Qbx9W2.cjs +0 -140
- package/dist/providerBinding-CYubGg-Z.mjs +0 -132
- package/dist/selfCheck-C-rNljKV.mjs +0 -86
- package/dist/sessionProvider-DUn91LhJ.mjs +0 -109
- package/dist/sessionProvider-Dg691XQ4.cjs +0 -114
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
4
|
-
var configuration = require('./configuration-
|
|
4
|
+
var configuration = require('./configuration-BBK0rmmj.cjs');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
6
|
var tweetnacl = require('tweetnacl');
|
|
7
7
|
var axios = require('axios');
|
|
8
|
-
var time = require('./time-
|
|
9
|
-
var persistence = require('./persistence-
|
|
10
|
-
var browser = require('./browser-
|
|
11
|
-
var logger = require('./logger-
|
|
8
|
+
var time = require('./time-BTLcO8jp.cjs');
|
|
9
|
+
var persistence = require('./persistence-CsmAgN-C.cjs');
|
|
10
|
+
var browser = require('./browser-v1pdPP1E.cjs');
|
|
11
|
+
var logger = require('./logger-CX3x2eI4.cjs');
|
|
12
12
|
|
|
13
13
|
function generateWebAuthUrl(publicKey) {
|
|
14
14
|
const publicKeyBase64 = authRelay.encodeBase64(publicKey, "base64url");
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
|
-
var persistence = require('./persistence-
|
|
5
|
-
var auth = require('./auth-
|
|
6
|
-
var configuration = require('./configuration-
|
|
4
|
+
var persistence = require('./persistence-CsmAgN-C.cjs');
|
|
5
|
+
var auth = require('./auth-DCjxpI6Z.cjs');
|
|
6
|
+
var configuration = require('./configuration-BBK0rmmj.cjs');
|
|
7
7
|
var node_fs = require('node:fs');
|
|
8
8
|
var node_readline = require('node:readline');
|
|
9
|
-
var controlClient = require('./controlClient-
|
|
10
|
-
var logger = require('./logger-
|
|
9
|
+
var controlClient = require('./controlClient-DwWTns3A.cjs');
|
|
10
|
+
var logger = require('./logger-CX3x2eI4.cjs');
|
|
11
11
|
var os = require('node:os');
|
|
12
12
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
13
13
|
require('node:fs/promises');
|
|
@@ -15,11 +15,11 @@ require('zod');
|
|
|
15
15
|
require('node:crypto');
|
|
16
16
|
require('tweetnacl');
|
|
17
17
|
require('axios');
|
|
18
|
-
require('./time-
|
|
19
|
-
require('./browser-
|
|
18
|
+
require('./time-BTLcO8jp.cjs');
|
|
19
|
+
require('./browser-v1pdPP1E.cjs');
|
|
20
20
|
require('open');
|
|
21
21
|
require('node:path');
|
|
22
|
-
require('./package-
|
|
22
|
+
require('./package-uzlvxa5S.cjs');
|
|
23
23
|
require('node:util');
|
|
24
24
|
|
|
25
25
|
function localMachineIdentityStatus(machineId) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { e as encodeBase64, c as credentialRelayProblem, f as encodeBase64Url, d as decodeBase64 } from './authRelay-DhQhkBvX.mjs';
|
|
2
|
-
import { c as configuration } from './configuration-
|
|
2
|
+
import { c as configuration } from './configuration-ThKBP_zY.mjs';
|
|
3
3
|
import { randomUUID, randomBytes } from 'node:crypto';
|
|
4
4
|
import tweetnacl from 'tweetnacl';
|
|
5
5
|
import axios from 'axios';
|
|
6
|
-
import { d as delay } from './time-
|
|
7
|
-
import { g as readCredentials, m as readSettingsOutcome, u as updateSettings, w as writeCredentialsLegacy, n as writeCredentialsDataKey } from './persistence-
|
|
8
|
-
import { o as openBrowser } from './browser-
|
|
9
|
-
import { l as logger } from './logger-
|
|
6
|
+
import { d as delay } from './time-Cw0liIqB.mjs';
|
|
7
|
+
import { g as readCredentials, m as readSettingsOutcome, u as updateSettings, w as writeCredentialsLegacy, n as writeCredentialsDataKey } from './persistence-Cg4sfjQV.mjs';
|
|
8
|
+
import { o as openBrowser } from './browser-LHW2hBH8.mjs';
|
|
9
|
+
import { l as logger } from './logger-JV7-4Q_6.mjs';
|
|
10
10
|
|
|
11
11
|
function generateWebAuthUrl(publicKey) {
|
|
12
12
|
const publicKeyBase64 = encodeBase64(publicKey, "base64url");
|
|
@@ -4,53 +4,53 @@ var chalk = require('chalk');
|
|
|
4
4
|
var os = require('node:os');
|
|
5
5
|
var node_fs = require('node:fs');
|
|
6
6
|
var path = require('node:path');
|
|
7
|
-
var index = require('./index-
|
|
8
|
-
var configuration = require('./configuration-
|
|
9
|
-
var client = require('./client-
|
|
10
|
-
var template = require('./template-
|
|
7
|
+
var index = require('./index-BUFrKZeQ.cjs');
|
|
8
|
+
var configuration = require('./configuration-BBK0rmmj.cjs');
|
|
9
|
+
var client = require('./client-D2GWkd-T.cjs');
|
|
10
|
+
var template = require('./template-B9pLEP8v.cjs');
|
|
11
11
|
var install = require('./install-BOHlqewf.cjs');
|
|
12
12
|
var precheckCompat = require('./precheckCompat-CWOi5c9L.cjs');
|
|
13
|
-
var sessionOps = require('./sessionOps-
|
|
14
|
-
var spawn = require('./spawn-
|
|
15
|
-
var spawnAgents = require('./spawnAgents-
|
|
16
|
-
var time = require('./time-
|
|
13
|
+
var sessionOps = require('./sessionOps-XSEjIqNq.cjs');
|
|
14
|
+
var spawn = require('./spawn-DiPkJcrQ.cjs');
|
|
15
|
+
var spawnAgents = require('./spawnAgents-B9olJ8xn.cjs');
|
|
16
|
+
var time = require('./time-BTLcO8jp.cjs');
|
|
17
17
|
require('zod');
|
|
18
18
|
require('@paralleldrive/cuid2');
|
|
19
|
-
require('./package-
|
|
19
|
+
require('./package-uzlvxa5S.cjs');
|
|
20
20
|
require('node:fs/promises');
|
|
21
|
-
require('./persistence-
|
|
21
|
+
require('./persistence-CsmAgN-C.cjs');
|
|
22
22
|
require('./authRelay-Dy1qU9td.cjs');
|
|
23
23
|
require('node:crypto');
|
|
24
24
|
require('tweetnacl');
|
|
25
|
-
require('./logger-
|
|
25
|
+
require('./logger-CX3x2eI4.cjs');
|
|
26
26
|
require('node:util');
|
|
27
27
|
require('./resources-BZ_Be0qM.cjs');
|
|
28
28
|
require('axios');
|
|
29
|
-
require('./controlClient-
|
|
29
|
+
require('./controlClient-DwWTns3A.cjs');
|
|
30
30
|
require('./specialCommands-J3JFOq0J.cjs');
|
|
31
31
|
require('socket.io-client');
|
|
32
32
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
33
|
-
require('./client-
|
|
33
|
+
require('./client-CJr8Pjwm.cjs');
|
|
34
34
|
require('./path-B7zW-WwE.cjs');
|
|
35
|
-
require('./claudeSessionFork-
|
|
35
|
+
require('./claudeSessionFork-Mhn2fYe_.cjs');
|
|
36
36
|
require('node:readline');
|
|
37
|
-
require('./codexAppServerClient-
|
|
37
|
+
require('./codexAppServerClient-DWEsZUC4.cjs');
|
|
38
38
|
require('node:child_process');
|
|
39
39
|
require('cross-spawn');
|
|
40
40
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
41
41
|
require('./manager-HrEj442o.cjs');
|
|
42
42
|
require('@anthropic-ai/sandbox-runtime');
|
|
43
|
-
require('./rateLimitWindows-
|
|
43
|
+
require('./rateLimitWindows-BZl6GMwQ.cjs');
|
|
44
44
|
require('./processTree-CMHWlVse.cjs');
|
|
45
45
|
require('./codexThreadFork-5kwoKjMu.cjs');
|
|
46
|
-
require('./createSessionMetadata-
|
|
46
|
+
require('./createSessionMetadata-DqZ6h02H.cjs');
|
|
47
47
|
require('./projectPath-C3ioB4Bu.cjs');
|
|
48
48
|
require('path');
|
|
49
49
|
require('url');
|
|
50
50
|
require('./forkBackfill-8eLDeS73.cjs');
|
|
51
51
|
|
|
52
52
|
const AUTO_ACTIONS = ["list", "show", "create", "edit", "pause", "resume", "rm", "run", "fire", "runs", "cancel", "ack", "report", "skill", "install", "uninstall", "help"];
|
|
53
|
-
const VALUE_FLAGS = ["--name", "--rename", "--description", "--machine", "--cron", "--tz", "--every", "--at", "--spawn-dir", "--prompt", "--prompt-file", "--agent", "--model", "--permission-mode", "--sticky-key", "--send-session", "--cwd", "--env", "--timeout", "--concurrency", "--max-runtime", "--payload", "--payload-json", "--payload-file", "--dedupe-key", "--status", "--limit", "--run", "--summary", "--error", "--attention", "--host", "--home", "--precheck-shell", "--precheck-argv", "--precheck-cwd", "--precheck-timeout"];
|
|
53
|
+
const VALUE_FLAGS = ["--name", "--rename", "--description", "--machine", "--cron", "--tz", "--every", "--at", "--spawn-dir", "--prompt", "--prompt-file", "--agent", "--model", "--permission-mode", "--sticky-key", "--account", "--send-session", "--cwd", "--env", "--timeout", "--concurrency", "--max-runtime", "--payload", "--payload-json", "--payload-file", "--dedupe-key", "--status", "--limit", "--run", "--summary", "--error", "--attention", "--host", "--home", "--precheck-shell", "--precheck-argv", "--precheck-cwd", "--precheck-timeout"];
|
|
54
54
|
const BOOL_FLAGS = ["--manual", "--script", "--worktree", "--paused", "--wait", "--json", "--apply", "--all-machines", "--all", "--attention", "--precheck-output", "--no-precheck", "--help", "-h"];
|
|
55
55
|
function parseAutoArgs(args) {
|
|
56
56
|
const command = { action: "help", flags: {}, env: [], bools: /* @__PURE__ */ new Set(), argv: [] };
|
|
@@ -113,7 +113,7 @@ function actionFromCommand(command, current) {
|
|
|
113
113
|
const kinds = [flags["--spawn-dir"] !== void 0, flags["--send-session"] !== void 0, bools.has("--script")].filter(Boolean).length;
|
|
114
114
|
if (kinds > 1) throw new Error("Use only one of --spawn-dir, --send-session, --script");
|
|
115
115
|
const prompt = readPrompt(flags);
|
|
116
|
-
const spawnOnly = ["--agent", "--model", "--permission-mode", "--sticky-key"].filter((flag) => flags[flag] !== void 0).concat(bools.has("--worktree") ? ["--worktree"] : []);
|
|
116
|
+
const spawnOnly = ["--agent", "--model", "--permission-mode", "--sticky-key", "--account"].filter((flag) => flags[flag] !== void 0).concat(bools.has("--worktree") ? ["--worktree"] : []);
|
|
117
117
|
const scriptOnly = ["--cwd", "--timeout"].filter((flag) => flags[flag] !== void 0).concat(command.env.length ? ["--env"] : []);
|
|
118
118
|
if (kinds === 0) {
|
|
119
119
|
if (!current) {
|
|
@@ -201,7 +201,9 @@ function spawnDetails(command) {
|
|
|
201
201
|
...flags["--model"] !== void 0 ? { model: flags["--model"] } : {},
|
|
202
202
|
...flags["--permission-mode"] !== void 0 ? { permissionMode: flags["--permission-mode"] } : {},
|
|
203
203
|
...bools.has("--worktree") ? { worktree: true } : {},
|
|
204
|
-
...flags["--sticky-key"] !== void 0 ? { sticky: { key: flags["--sticky-key"] } } : {}
|
|
204
|
+
...flags["--sticky-key"] !== void 0 ? { sticky: { key: flags["--sticky-key"] } } : {},
|
|
205
|
+
// B-850d: an account of the automation's machine (`very-happy account list`), or `machine` = machine login.
|
|
206
|
+
...flags["--account"] !== void 0 ? { agentProfile: flags["--account"] === "machine" ? null : { id: flags["--account"] } } : {}
|
|
205
207
|
};
|
|
206
208
|
}
|
|
207
209
|
const AUTO_HELP = `${chalk.bold("very-happy auto")} - account-level automations: cron / interval / one-shot / manual triggers that spawn a session, continue a sticky session, or run a script on a machine
|
|
@@ -229,7 +231,7 @@ ${chalk.bold("Trigger (one):")}
|
|
|
229
231
|
${chalk.bold("Action (one):")}
|
|
230
232
|
--spawn-dir <dir> --prompt <text>|--prompt-file <file>
|
|
231
233
|
[--agent claude|codex|pi|gemini|openclaw] [--model <id>] [--permission-mode <m>]
|
|
232
|
-
[--worktree] [--sticky-key <template>]
|
|
234
|
+
[--worktree] [--sticky-key <template>] [--account <id>|machine]
|
|
233
235
|
--send-session <id> --prompt <text>|--prompt-file <file>
|
|
234
236
|
--script -- <argv\u2026> [--cwd <dir>] [--env K=V]... [--timeout <dur>]
|
|
235
237
|
|
|
@@ -2,53 +2,53 @@ import chalk from 'chalk';
|
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { readFileSync } from 'node:fs';
|
|
4
4
|
import { resolve } from 'node:path';
|
|
5
|
-
import {
|
|
6
|
-
import { c as configuration } from './configuration-
|
|
7
|
-
import { a as authenticatedAutomationsClient, b as automationRunIdFromEnv, i as isAutomationsUnavailable, A as AUTOMATIONS_UNAVAILABLE_MESSAGE } from './client-
|
|
8
|
-
import { p as parseDuration, c as clipAutomationReport, A as AUTOMATION_REPORT_TEXT_LIMITS, t as triggerFromFlags, d as describeTrigger, a as describeAction } from './template-
|
|
5
|
+
import { c as AUTOMATION_NAME_PATTERN, i as isAutomationRunTerminal, d as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, e as AutomationPrecheckSchema } from './index-D1YnIih6.mjs';
|
|
6
|
+
import { c as configuration } from './configuration-ThKBP_zY.mjs';
|
|
7
|
+
import { a as authenticatedAutomationsClient, b as automationRunIdFromEnv, i as isAutomationsUnavailable, A as AUTOMATIONS_UNAVAILABLE_MESSAGE } from './client-7RnI9J0W.mjs';
|
|
8
|
+
import { p as parseDuration, c as clipAutomationReport, A as AUTOMATION_REPORT_TEXT_LIMITS, t as triggerFromFlags, d as describeTrigger, a as describeAction } from './template-CL9EvQLQ.mjs';
|
|
9
9
|
import { A as AUTOMATION_SKILL, i as installAutomationSkill } from './install-B8O1JpJH.mjs';
|
|
10
10
|
import { u as updateAutomationChecked, c as createAutomationChecked } from './precheckCompat-DeEbilbr.mjs';
|
|
11
|
-
import { s as sessionWebUrl } from './sessionOps-
|
|
12
|
-
import { parseEnvAssignment } from './spawn-
|
|
13
|
-
import { S as SPAWN_AGENTS, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES } from './spawnAgents-
|
|
14
|
-
import { d as delay } from './time-
|
|
11
|
+
import { s as sessionWebUrl } from './sessionOps-C65Iej_C.mjs';
|
|
12
|
+
import { parseEnvAssignment } from './spawn-Dm4xsZBX.mjs';
|
|
13
|
+
import { S as SPAWN_AGENTS, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES } from './spawnAgents-I29H9nO8.mjs';
|
|
14
|
+
import { d as delay } from './time-Cw0liIqB.mjs';
|
|
15
15
|
import 'zod';
|
|
16
16
|
import '@paralleldrive/cuid2';
|
|
17
|
-
import './package-
|
|
17
|
+
import './package-Bw3H6VLn.mjs';
|
|
18
18
|
import 'node:fs/promises';
|
|
19
|
-
import './persistence-
|
|
19
|
+
import './persistence-Cg4sfjQV.mjs';
|
|
20
20
|
import './authRelay-DhQhkBvX.mjs';
|
|
21
21
|
import 'node:crypto';
|
|
22
22
|
import 'tweetnacl';
|
|
23
|
-
import './logger-
|
|
23
|
+
import './logger-JV7-4Q_6.mjs';
|
|
24
24
|
import 'node:util';
|
|
25
25
|
import './resources-CLP_MpK4.mjs';
|
|
26
26
|
import 'axios';
|
|
27
|
-
import './controlClient-
|
|
27
|
+
import './controlClient-Ckl8N1MS.mjs';
|
|
28
28
|
import './specialCommands-MXUN0wfI.mjs';
|
|
29
29
|
import 'socket.io-client';
|
|
30
30
|
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
31
|
-
import './client-
|
|
31
|
+
import './client-Bde4QVIn.mjs';
|
|
32
32
|
import './path-D2wdaNSk.mjs';
|
|
33
|
-
import './claudeSessionFork-
|
|
33
|
+
import './claudeSessionFork-_GwIlmMB.mjs';
|
|
34
34
|
import 'node:readline';
|
|
35
|
-
import './codexAppServerClient-
|
|
35
|
+
import './codexAppServerClient-B3QJV6Ey.mjs';
|
|
36
36
|
import 'node:child_process';
|
|
37
37
|
import 'cross-spawn';
|
|
38
38
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
39
39
|
import './manager-BEsI4qt3.mjs';
|
|
40
40
|
import '@anthropic-ai/sandbox-runtime';
|
|
41
|
-
import './rateLimitWindows-
|
|
41
|
+
import './rateLimitWindows-CRARnKaI.mjs';
|
|
42
42
|
import './processTree-CP5IvQ2Z.mjs';
|
|
43
43
|
import './codexThreadFork-DobPd19R.mjs';
|
|
44
|
-
import './createSessionMetadata-
|
|
44
|
+
import './createSessionMetadata-vug4Cv8z.mjs';
|
|
45
45
|
import './projectPath-BTBIMB57.mjs';
|
|
46
46
|
import 'path';
|
|
47
47
|
import 'url';
|
|
48
48
|
import './forkBackfill-DYIjlN1Z.mjs';
|
|
49
49
|
|
|
50
50
|
const AUTO_ACTIONS = ["list", "show", "create", "edit", "pause", "resume", "rm", "run", "fire", "runs", "cancel", "ack", "report", "skill", "install", "uninstall", "help"];
|
|
51
|
-
const VALUE_FLAGS = ["--name", "--rename", "--description", "--machine", "--cron", "--tz", "--every", "--at", "--spawn-dir", "--prompt", "--prompt-file", "--agent", "--model", "--permission-mode", "--sticky-key", "--send-session", "--cwd", "--env", "--timeout", "--concurrency", "--max-runtime", "--payload", "--payload-json", "--payload-file", "--dedupe-key", "--status", "--limit", "--run", "--summary", "--error", "--attention", "--host", "--home", "--precheck-shell", "--precheck-argv", "--precheck-cwd", "--precheck-timeout"];
|
|
51
|
+
const VALUE_FLAGS = ["--name", "--rename", "--description", "--machine", "--cron", "--tz", "--every", "--at", "--spawn-dir", "--prompt", "--prompt-file", "--agent", "--model", "--permission-mode", "--sticky-key", "--account", "--send-session", "--cwd", "--env", "--timeout", "--concurrency", "--max-runtime", "--payload", "--payload-json", "--payload-file", "--dedupe-key", "--status", "--limit", "--run", "--summary", "--error", "--attention", "--host", "--home", "--precheck-shell", "--precheck-argv", "--precheck-cwd", "--precheck-timeout"];
|
|
52
52
|
const BOOL_FLAGS = ["--manual", "--script", "--worktree", "--paused", "--wait", "--json", "--apply", "--all-machines", "--all", "--attention", "--precheck-output", "--no-precheck", "--help", "-h"];
|
|
53
53
|
function parseAutoArgs(args) {
|
|
54
54
|
const command = { action: "help", flags: {}, env: [], bools: /* @__PURE__ */ new Set(), argv: [] };
|
|
@@ -111,7 +111,7 @@ function actionFromCommand(command, current) {
|
|
|
111
111
|
const kinds = [flags["--spawn-dir"] !== void 0, flags["--send-session"] !== void 0, bools.has("--script")].filter(Boolean).length;
|
|
112
112
|
if (kinds > 1) throw new Error("Use only one of --spawn-dir, --send-session, --script");
|
|
113
113
|
const prompt = readPrompt(flags);
|
|
114
|
-
const spawnOnly = ["--agent", "--model", "--permission-mode", "--sticky-key"].filter((flag) => flags[flag] !== void 0).concat(bools.has("--worktree") ? ["--worktree"] : []);
|
|
114
|
+
const spawnOnly = ["--agent", "--model", "--permission-mode", "--sticky-key", "--account"].filter((flag) => flags[flag] !== void 0).concat(bools.has("--worktree") ? ["--worktree"] : []);
|
|
115
115
|
const scriptOnly = ["--cwd", "--timeout"].filter((flag) => flags[flag] !== void 0).concat(command.env.length ? ["--env"] : []);
|
|
116
116
|
if (kinds === 0) {
|
|
117
117
|
if (!current) {
|
|
@@ -199,7 +199,9 @@ function spawnDetails(command) {
|
|
|
199
199
|
...flags["--model"] !== void 0 ? { model: flags["--model"] } : {},
|
|
200
200
|
...flags["--permission-mode"] !== void 0 ? { permissionMode: flags["--permission-mode"] } : {},
|
|
201
201
|
...bools.has("--worktree") ? { worktree: true } : {},
|
|
202
|
-
...flags["--sticky-key"] !== void 0 ? { sticky: { key: flags["--sticky-key"] } } : {}
|
|
202
|
+
...flags["--sticky-key"] !== void 0 ? { sticky: { key: flags["--sticky-key"] } } : {},
|
|
203
|
+
// B-850d: an account of the automation's machine (`very-happy account list`), or `machine` = machine login.
|
|
204
|
+
...flags["--account"] !== void 0 ? { agentProfile: flags["--account"] === "machine" ? null : { id: flags["--account"] } } : {}
|
|
203
205
|
};
|
|
204
206
|
}
|
|
205
207
|
const AUTO_HELP = `${chalk.bold("very-happy auto")} - account-level automations: cron / interval / one-shot / manual triggers that spawn a session, continue a sticky session, or run a script on a machine
|
|
@@ -227,7 +229,7 @@ ${chalk.bold("Trigger (one):")}
|
|
|
227
229
|
${chalk.bold("Action (one):")}
|
|
228
230
|
--spawn-dir <dir> --prompt <text>|--prompt-file <file>
|
|
229
231
|
[--agent claude|codex|pi|gemini|openclaw] [--model <id>] [--permission-mode <m>]
|
|
230
|
-
[--worktree] [--sticky-key <template>]
|
|
232
|
+
[--worktree] [--sticky-key <template>] [--account <id>|machine]
|
|
231
233
|
--send-session <id> --prompt <text>|--prompt-file <file>
|
|
232
234
|
--script -- <argv\u2026> [--cwd <dir>] [--env K=V]... [--timeout <dur>]
|
|
233
235
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { c as configuration } from './configuration-
|
|
4
|
+
import { c as configuration } from './configuration-ThKBP_zY.mjs';
|
|
5
5
|
import 'node:os';
|
|
6
|
-
import './package-
|
|
6
|
+
import './package-Bw3H6VLn.mjs';
|
|
7
7
|
|
|
8
8
|
const ASSISTANT_CLAUDE_MD = `# very-happy \u8C03\u5EA6\u4E2D\u5FC3\uFF08\u8BED\u97F3\u52A9\u624B\uFF09
|
|
9
9
|
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
var node_fs = require('node:fs');
|
|
4
4
|
var promises = require('node:fs/promises');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var configuration = require('./configuration-
|
|
6
|
+
var configuration = require('./configuration-BBK0rmmj.cjs');
|
|
7
7
|
require('node:os');
|
|
8
|
-
require('./package-
|
|
8
|
+
require('./package-uzlvxa5S.cjs');
|
|
9
9
|
|
|
10
10
|
const ASSISTANT_CLAUDE_MD = `# very-happy \u8C03\u5EA6\u4E2D\u5FC3\uFF08\u8BED\u97F3\u52A9\u624B\uFF09
|
|
11
11
|
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { b as accountSecretPath, e as expandHome } from './store-Vej_738f.mjs';
|
|
2
|
+
|
|
3
|
+
const ACCOUNT_STRIPPED_ENV_KEYS = [
|
|
4
|
+
"ANTHROPIC_API_KEY",
|
|
5
|
+
"ANTHROPIC_AUTH_TOKEN",
|
|
6
|
+
"ANTHROPIC_BASE_URL",
|
|
7
|
+
"ANTHROPIC_CUSTOM_HEADERS",
|
|
8
|
+
"ANTHROPIC_MODEL",
|
|
9
|
+
"ANTHROPIC_DEFAULT_OPUS_MODEL",
|
|
10
|
+
"ANTHROPIC_DEFAULT_SONNET_MODEL",
|
|
11
|
+
"ANTHROPIC_DEFAULT_HAIKU_MODEL",
|
|
12
|
+
"ANTHROPIC_SMALL_FAST_MODEL",
|
|
13
|
+
"CLAUDE_CODE_SUBAGENT_MODEL",
|
|
14
|
+
"CLAUDE_CODE_NO_MODEL_FALLBACK",
|
|
15
|
+
"CLAUDE_CODE_MAX_CONTEXT_TOKENS",
|
|
16
|
+
"CLAUDE_CODE_OAUTH_TOKEN",
|
|
17
|
+
"CLAUDE_CODE_OAUTH_REFRESH_TOKEN",
|
|
18
|
+
"CLAUDE_CODE_OAUTH_SCOPES",
|
|
19
|
+
"CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR",
|
|
20
|
+
"CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR",
|
|
21
|
+
"CLAUDE_CODE_USE_BEDROCK",
|
|
22
|
+
"CLAUDE_CODE_USE_VERTEX",
|
|
23
|
+
"CLAUDE_CODE_USE_FOUNDRY"
|
|
24
|
+
];
|
|
25
|
+
const UNAVAILABLE_PLACEHOLDER_TOKEN = "vh-account-unavailable";
|
|
26
|
+
function helperSafePath(path) {
|
|
27
|
+
return path.length > 0 && !/["$`\\\n\r%!]/.test(path.replace(/^[A-Za-z]:\\/, "").replace(/\\/g, "/"));
|
|
28
|
+
}
|
|
29
|
+
function buildApiKeyHelper(nodePath, keyPath) {
|
|
30
|
+
if (!helperSafePath(keyPath) || !helperSafePath(nodePath)) throw new Error("unsupported characters in key path");
|
|
31
|
+
return `"${nodePath}" -e "process.stdout.write(require('fs').readFileSync(process.argv[1],'utf8').trim())" "${keyPath}"`;
|
|
32
|
+
}
|
|
33
|
+
function buildApiModelEnv(record, model) {
|
|
34
|
+
const env = { ANTHROPIC_BASE_URL: record.baseUrl ?? "", CLAUDE_CODE_OAUTH_TOKEN: UNAVAILABLE_PLACEHOLDER_TOKEN };
|
|
35
|
+
if (!model) return env;
|
|
36
|
+
const contextWindow = record.contextWindows?.[model];
|
|
37
|
+
return {
|
|
38
|
+
...env,
|
|
39
|
+
ANTHROPIC_MODEL: model,
|
|
40
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: model,
|
|
41
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: model,
|
|
42
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: model,
|
|
43
|
+
ANTHROPIC_SMALL_FAST_MODEL: model,
|
|
44
|
+
CLAUDE_CODE_SUBAGENT_MODEL: model,
|
|
45
|
+
CLAUDE_CODE_NO_MODEL_FALLBACK: "1",
|
|
46
|
+
...contextWindow ? { CLAUDE_CODE_MAX_CONTEXT_TOKENS: String(contextWindow) } : {}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function unavailable(id, label, kind, reason) {
|
|
50
|
+
return {
|
|
51
|
+
kind: "unavailable",
|
|
52
|
+
id,
|
|
53
|
+
profile: { id, label, kind, status: "unavailable", reason },
|
|
54
|
+
env: { CLAUDE_CODE_OAUTH_TOKEN: UNAVAILABLE_PLACEHOLDER_TOKEN },
|
|
55
|
+
unset: ACCOUNT_STRIPPED_ENV_KEYS
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function rejectedByLastCheck(record) {
|
|
59
|
+
return record.check?.status === "expired" || record.check?.status === "invalid";
|
|
60
|
+
}
|
|
61
|
+
function resolveClaudeAccount(sessionId, deps) {
|
|
62
|
+
const binding = deps.bindings[sessionId];
|
|
63
|
+
if (!binding || binding.account === null) return { kind: "machine" };
|
|
64
|
+
const id = binding.account;
|
|
65
|
+
const record = deps.accounts.accounts[id];
|
|
66
|
+
if (!record) return unavailable(id, id, "unknown", "missing");
|
|
67
|
+
const { label, kind } = record;
|
|
68
|
+
if (record.agent !== "claude") return unavailable(id, label, kind, "agent-mismatch");
|
|
69
|
+
if (kind === "claude-subscription") {
|
|
70
|
+
const path = accountSecretPath(deps.home, id);
|
|
71
|
+
if (!deps.fileReadable(path)) return unavailable(id, label, kind, "missing-secret");
|
|
72
|
+
if (record.expiresAt !== void 0 && record.expiresAt <= deps.now) return unavailable(id, label, kind, "expired");
|
|
73
|
+
if (rejectedByLastCheck(record)) return unavailable(id, label, kind, record.check.status);
|
|
74
|
+
const token = deps.readSecret(path).trim();
|
|
75
|
+
if (!token) return unavailable(id, label, kind, "missing-secret");
|
|
76
|
+
return {
|
|
77
|
+
kind: "active",
|
|
78
|
+
id,
|
|
79
|
+
profile: { id, label, kind, status: "active" },
|
|
80
|
+
env: { CLAUDE_CODE_OAUTH_TOKEN: token },
|
|
81
|
+
unset: ACCOUNT_STRIPPED_ENV_KEYS,
|
|
82
|
+
settings: {}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const key = record.key;
|
|
86
|
+
let keyPath;
|
|
87
|
+
let envKeyCopy;
|
|
88
|
+
if (!key) return unavailable(id, label, kind, "missing-secret");
|
|
89
|
+
if (key.source === "env") {
|
|
90
|
+
if (!deps.env[key.name]?.trim()) return unavailable(id, label, kind, "missing-secret");
|
|
91
|
+
keyPath = deps.envKeyCopyPath(id);
|
|
92
|
+
envKeyCopy = { name: key.name, path: keyPath };
|
|
93
|
+
} else {
|
|
94
|
+
keyPath = key.source === "stored" ? accountSecretPath(deps.home, id) : expandHome(key.path);
|
|
95
|
+
if (!deps.fileReadable(keyPath)) return unavailable(id, label, kind, "missing-secret");
|
|
96
|
+
}
|
|
97
|
+
if (rejectedByLastCheck(record)) return unavailable(id, label, kind, record.check.status);
|
|
98
|
+
let helper;
|
|
99
|
+
try {
|
|
100
|
+
helper = buildApiKeyHelper(deps.nodePath, keyPath);
|
|
101
|
+
} catch {
|
|
102
|
+
return unavailable(id, label, kind, "missing-secret");
|
|
103
|
+
}
|
|
104
|
+
const model = binding.model ?? record.models?.[0];
|
|
105
|
+
return {
|
|
106
|
+
kind: "active",
|
|
107
|
+
id,
|
|
108
|
+
profile: { id, label, kind, status: "active", ...model ? { model } : {} },
|
|
109
|
+
env: buildApiModelEnv(record, model),
|
|
110
|
+
unset: ACCOUNT_STRIPPED_ENV_KEYS,
|
|
111
|
+
settings: { apiKeyHelper: helper },
|
|
112
|
+
...model ? { pinnedModel: model } : {},
|
|
113
|
+
...envKeyCopy ? { envKeyCopy } : {}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function applyAccountEnv(env, r) {
|
|
117
|
+
for (const key of r.unset) delete env[key];
|
|
118
|
+
Object.assign(env, r.env);
|
|
119
|
+
}
|
|
120
|
+
function overridingUserSettings(userSettings, kind) {
|
|
121
|
+
if (!userSettings || typeof userSettings !== "object") return [];
|
|
122
|
+
const s = userSettings;
|
|
123
|
+
const hits = [];
|
|
124
|
+
if (kind === "claude-subscription" && typeof s.apiKeyHelper === "string" && s.apiKeyHelper) hits.push("apiKeyHelper");
|
|
125
|
+
if (s.env && typeof s.env === "object") {
|
|
126
|
+
for (const key of ["ANTHROPIC_API_KEY", "ANTHROPIC_AUTH_TOKEN", "ANTHROPIC_BASE_URL", "CLAUDE_CODE_USE_BEDROCK", "CLAUDE_CODE_USE_VERTEX"]) {
|
|
127
|
+
if (typeof s.env[key] === "string") hits.push(`env.${key}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return hits;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export { ACCOUNT_STRIPPED_ENV_KEYS as A, applyAccountEnv as a, overridingUserSettings as o, resolveClaudeAccount as r };
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var store = require('./store-CkNa6oj4.cjs');
|
|
4
|
+
|
|
5
|
+
const ACCOUNT_STRIPPED_ENV_KEYS = [
|
|
6
|
+
"ANTHROPIC_API_KEY",
|
|
7
|
+
"ANTHROPIC_AUTH_TOKEN",
|
|
8
|
+
"ANTHROPIC_BASE_URL",
|
|
9
|
+
"ANTHROPIC_CUSTOM_HEADERS",
|
|
10
|
+
"ANTHROPIC_MODEL",
|
|
11
|
+
"ANTHROPIC_DEFAULT_OPUS_MODEL",
|
|
12
|
+
"ANTHROPIC_DEFAULT_SONNET_MODEL",
|
|
13
|
+
"ANTHROPIC_DEFAULT_HAIKU_MODEL",
|
|
14
|
+
"ANTHROPIC_SMALL_FAST_MODEL",
|
|
15
|
+
"CLAUDE_CODE_SUBAGENT_MODEL",
|
|
16
|
+
"CLAUDE_CODE_NO_MODEL_FALLBACK",
|
|
17
|
+
"CLAUDE_CODE_MAX_CONTEXT_TOKENS",
|
|
18
|
+
"CLAUDE_CODE_OAUTH_TOKEN",
|
|
19
|
+
"CLAUDE_CODE_OAUTH_REFRESH_TOKEN",
|
|
20
|
+
"CLAUDE_CODE_OAUTH_SCOPES",
|
|
21
|
+
"CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR",
|
|
22
|
+
"CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR",
|
|
23
|
+
"CLAUDE_CODE_USE_BEDROCK",
|
|
24
|
+
"CLAUDE_CODE_USE_VERTEX",
|
|
25
|
+
"CLAUDE_CODE_USE_FOUNDRY"
|
|
26
|
+
];
|
|
27
|
+
const UNAVAILABLE_PLACEHOLDER_TOKEN = "vh-account-unavailable";
|
|
28
|
+
function helperSafePath(path) {
|
|
29
|
+
return path.length > 0 && !/["$`\\\n\r%!]/.test(path.replace(/^[A-Za-z]:\\/, "").replace(/\\/g, "/"));
|
|
30
|
+
}
|
|
31
|
+
function buildApiKeyHelper(nodePath, keyPath) {
|
|
32
|
+
if (!helperSafePath(keyPath) || !helperSafePath(nodePath)) throw new Error("unsupported characters in key path");
|
|
33
|
+
return `"${nodePath}" -e "process.stdout.write(require('fs').readFileSync(process.argv[1],'utf8').trim())" "${keyPath}"`;
|
|
34
|
+
}
|
|
35
|
+
function buildApiModelEnv(record, model) {
|
|
36
|
+
const env = { ANTHROPIC_BASE_URL: record.baseUrl ?? "", CLAUDE_CODE_OAUTH_TOKEN: UNAVAILABLE_PLACEHOLDER_TOKEN };
|
|
37
|
+
if (!model) return env;
|
|
38
|
+
const contextWindow = record.contextWindows?.[model];
|
|
39
|
+
return {
|
|
40
|
+
...env,
|
|
41
|
+
ANTHROPIC_MODEL: model,
|
|
42
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: model,
|
|
43
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: model,
|
|
44
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: model,
|
|
45
|
+
ANTHROPIC_SMALL_FAST_MODEL: model,
|
|
46
|
+
CLAUDE_CODE_SUBAGENT_MODEL: model,
|
|
47
|
+
CLAUDE_CODE_NO_MODEL_FALLBACK: "1",
|
|
48
|
+
...contextWindow ? { CLAUDE_CODE_MAX_CONTEXT_TOKENS: String(contextWindow) } : {}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function unavailable(id, label, kind, reason) {
|
|
52
|
+
return {
|
|
53
|
+
kind: "unavailable",
|
|
54
|
+
id,
|
|
55
|
+
profile: { id, label, kind, status: "unavailable", reason },
|
|
56
|
+
env: { CLAUDE_CODE_OAUTH_TOKEN: UNAVAILABLE_PLACEHOLDER_TOKEN },
|
|
57
|
+
unset: ACCOUNT_STRIPPED_ENV_KEYS
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function rejectedByLastCheck(record) {
|
|
61
|
+
return record.check?.status === "expired" || record.check?.status === "invalid";
|
|
62
|
+
}
|
|
63
|
+
function resolveClaudeAccount(sessionId, deps) {
|
|
64
|
+
const binding = deps.bindings[sessionId];
|
|
65
|
+
if (!binding || binding.account === null) return { kind: "machine" };
|
|
66
|
+
const id = binding.account;
|
|
67
|
+
const record = deps.accounts.accounts[id];
|
|
68
|
+
if (!record) return unavailable(id, id, "unknown", "missing");
|
|
69
|
+
const { label, kind } = record;
|
|
70
|
+
if (record.agent !== "claude") return unavailable(id, label, kind, "agent-mismatch");
|
|
71
|
+
if (kind === "claude-subscription") {
|
|
72
|
+
const path = store.accountSecretPath(deps.home, id);
|
|
73
|
+
if (!deps.fileReadable(path)) return unavailable(id, label, kind, "missing-secret");
|
|
74
|
+
if (record.expiresAt !== void 0 && record.expiresAt <= deps.now) return unavailable(id, label, kind, "expired");
|
|
75
|
+
if (rejectedByLastCheck(record)) return unavailable(id, label, kind, record.check.status);
|
|
76
|
+
const token = deps.readSecret(path).trim();
|
|
77
|
+
if (!token) return unavailable(id, label, kind, "missing-secret");
|
|
78
|
+
return {
|
|
79
|
+
kind: "active",
|
|
80
|
+
id,
|
|
81
|
+
profile: { id, label, kind, status: "active" },
|
|
82
|
+
env: { CLAUDE_CODE_OAUTH_TOKEN: token },
|
|
83
|
+
unset: ACCOUNT_STRIPPED_ENV_KEYS,
|
|
84
|
+
settings: {}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const key = record.key;
|
|
88
|
+
let keyPath;
|
|
89
|
+
let envKeyCopy;
|
|
90
|
+
if (!key) return unavailable(id, label, kind, "missing-secret");
|
|
91
|
+
if (key.source === "env") {
|
|
92
|
+
if (!deps.env[key.name]?.trim()) return unavailable(id, label, kind, "missing-secret");
|
|
93
|
+
keyPath = deps.envKeyCopyPath(id);
|
|
94
|
+
envKeyCopy = { name: key.name, path: keyPath };
|
|
95
|
+
} else {
|
|
96
|
+
keyPath = key.source === "stored" ? store.accountSecretPath(deps.home, id) : store.expandHome(key.path);
|
|
97
|
+
if (!deps.fileReadable(keyPath)) return unavailable(id, label, kind, "missing-secret");
|
|
98
|
+
}
|
|
99
|
+
if (rejectedByLastCheck(record)) return unavailable(id, label, kind, record.check.status);
|
|
100
|
+
let helper;
|
|
101
|
+
try {
|
|
102
|
+
helper = buildApiKeyHelper(deps.nodePath, keyPath);
|
|
103
|
+
} catch {
|
|
104
|
+
return unavailable(id, label, kind, "missing-secret");
|
|
105
|
+
}
|
|
106
|
+
const model = binding.model ?? record.models?.[0];
|
|
107
|
+
return {
|
|
108
|
+
kind: "active",
|
|
109
|
+
id,
|
|
110
|
+
profile: { id, label, kind, status: "active", ...model ? { model } : {} },
|
|
111
|
+
env: buildApiModelEnv(record, model),
|
|
112
|
+
unset: ACCOUNT_STRIPPED_ENV_KEYS,
|
|
113
|
+
settings: { apiKeyHelper: helper },
|
|
114
|
+
...model ? { pinnedModel: model } : {},
|
|
115
|
+
...envKeyCopy ? { envKeyCopy } : {}
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function applyAccountEnv(env, r) {
|
|
119
|
+
for (const key of r.unset) delete env[key];
|
|
120
|
+
Object.assign(env, r.env);
|
|
121
|
+
}
|
|
122
|
+
function overridingUserSettings(userSettings, kind) {
|
|
123
|
+
if (!userSettings || typeof userSettings !== "object") return [];
|
|
124
|
+
const s = userSettings;
|
|
125
|
+
const hits = [];
|
|
126
|
+
if (kind === "claude-subscription" && typeof s.apiKeyHelper === "string" && s.apiKeyHelper) hits.push("apiKeyHelper");
|
|
127
|
+
if (s.env && typeof s.env === "object") {
|
|
128
|
+
for (const key of ["ANTHROPIC_API_KEY", "ANTHROPIC_AUTH_TOKEN", "ANTHROPIC_BASE_URL", "CLAUDE_CODE_USE_BEDROCK", "CLAUDE_CODE_USE_VERTEX"]) {
|
|
129
|
+
if (typeof s.env[key] === "string") hits.push(`env.${key}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return hits;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
exports.ACCOUNT_STRIPPED_ENV_KEYS = ACCOUNT_STRIPPED_ENV_KEYS;
|
|
136
|
+
exports.applyAccountEnv = applyAccountEnv;
|
|
137
|
+
exports.overridingUserSettings = overridingUserSettings;
|
|
138
|
+
exports.resolveClaudeAccount = resolveClaudeAccount;
|
|
@@ -2,21 +2,21 @@ import { spawn } from 'cross-spawn';
|
|
|
2
2
|
import { createInterface } from 'node:readline';
|
|
3
3
|
import { readdirSync, statSync, mkdirSync, existsSync } from 'node:fs';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
|
-
import { l as logger } from './logger-
|
|
5
|
+
import { l as logger } from './logger-JV7-4Q_6.mjs';
|
|
6
6
|
import { p as pinSmallFastModel, a as applyPromptCacheTtlDefault, e as ensureLocalProxyBypass } from './promptCacheTtl-Ce0TVbrx.mjs';
|
|
7
7
|
import { join } from 'node:path';
|
|
8
8
|
import { g as getProjectPath } from './path-D2wdaNSk.mjs';
|
|
9
|
-
import { c as claudeCheckSession, s as systemPrompt } from './systemPrompt-
|
|
9
|
+
import { c as claudeCheckSession, s as systemPrompt } from './systemPrompt-aRqBmkpw.mjs';
|
|
10
10
|
import { i as initializeSandbox, a as wrapCommand } from './manager-BEsI4qt3.mjs';
|
|
11
11
|
import { c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
|
|
12
12
|
import { claudeCliPath } from './claudeCliPath-BqkaH2oR.mjs';
|
|
13
13
|
import 'chalk';
|
|
14
14
|
import 'node:util';
|
|
15
|
-
import './configuration-
|
|
15
|
+
import './configuration-ThKBP_zY.mjs';
|
|
16
16
|
import 'node:os';
|
|
17
|
-
import './package-
|
|
17
|
+
import './package-Bw3H6VLn.mjs';
|
|
18
18
|
import 'node:fs/promises';
|
|
19
|
-
import './index-
|
|
19
|
+
import './index-D1YnIih6.mjs';
|
|
20
20
|
import 'zod';
|
|
21
21
|
import '@paralleldrive/cuid2';
|
|
22
22
|
import './trimIdent-BAjmv_TG.mjs';
|