very-happy-cli 0.2.189 → 0.2.191
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-fj16v_cf.mjs → AcpBackend-CCy_9AfR.mjs} +3 -3
- package/dist/{AcpBackend-DRPJ2g9G.cjs → AcpBackend-DgrIc1vH.cjs} +3 -3
- package/dist/{AcpSessionManager-BZPmUDL5.mjs → AcpSessionManager-CQnxx7gD.mjs} +2 -2
- package/dist/{AcpSessionManager-DM-KKg6v.cjs → AcpSessionManager-DVOzCD3P.cjs} +2 -2
- package/dist/{BasePermissionHandler-DjM16uJz.cjs → BasePermissionHandler-C9Ag7yvs.cjs} +1 -1
- package/dist/{BasePermissionHandler-CVtH-snr.mjs → BasePermissionHandler-DYLN6Ec9.mjs} +1 -1
- package/dist/{acpSessionResume-Dxl1LRAT.mjs → acpSessionResume-Bi7pA1n_.mjs} +1 -1
- package/dist/{acpSessionResume-2BTMsB7_.cjs → acpSessionResume-TvP_4Zq2.cjs} +1 -1
- package/dist/{agentHome-CHctmMzZ.mjs → agentHome-DGv105SR.mjs} +4 -4
- package/dist/{agentHome-W17n1gnH.cjs → agentHome-DNUKJWOY.cjs} +4 -4
- package/dist/{api-BDuuyys8.cjs → api-BBxZ7y2z.cjs} +19 -10
- package/dist/{api-B0yN68XH.mjs → api-jfeMRg5R.mjs} +19 -10
- package/dist/{apiMachine-mc9CsKuS.mjs → apiMachine-DRJ7y-BB.mjs} +56 -15
- package/dist/{apiMachine-iddD-F19.cjs → apiMachine-DqyjKBZG.cjs} +56 -15
- package/dist/{attachmentContent-Cc5b7TPr.cjs → attachmentContent-BO2njyza.cjs} +2 -2
- package/dist/{attachmentContent-CcIdMfAx.mjs → attachmentContent-Dm_RIs5L.mjs} +2 -2
- package/dist/{auth-DNAgkUkB.mjs → auth-BYDtjVNb.mjs} +8 -8
- package/dist/{auth-CyrVvWHF.mjs → auth-DC6rg8lJ.mjs} +5 -5
- package/dist/{auth-B7tVmyfX.cjs → auth-DLR3ksCF.cjs} +8 -8
- package/dist/{auth-DQKSpaEf.cjs → auth-DnxoVkkf.cjs} +5 -5
- package/dist/{auto-CetlumDo.cjs → auto-CwO0u8hB.cjs} +18 -18
- package/dist/{auto-BklCipw1.mjs → auto-D5Jhukq1.mjs} +18 -18
- package/dist/{bootstrap-DfXwkUQb.mjs → bootstrap-rLaL3kTa.mjs} +2 -2
- package/dist/{bootstrap-CDY-Vz8q.cjs → bootstrap-sly4qPPY.cjs} +2 -2
- package/dist/{browser-D1yzC0Tu.cjs → browser-BTgZ9d4i.cjs} +1 -1
- package/dist/{browser-vb0k1zfI.mjs → browser-CHpVgyni.mjs} +1 -1
- package/dist/{claudeLocal-2dJIiTIq.cjs → claudeLocal-1vuTFcL8.cjs} +5 -5
- package/dist/{claudeLocal-Bid_rC_v.mjs → claudeLocal-Bgb5GGsq.mjs} +5 -5
- package/dist/{claudeLocalLauncher-Jm5oQX5Z.cjs → claudeLocalLauncher-DOsL6HFY.cjs} +10 -10
- package/dist/{claudeLocalLauncher-5pzpETxd.mjs → claudeLocalLauncher-T7EfT68h.mjs} +10 -10
- package/dist/{claudeSessionFork-DzecSBO4.mjs → claudeSessionFork-CPvi6yDX.mjs} +1 -1
- package/dist/{claudeSessionFork-DsbcuDEJ.cjs → claudeSessionFork-Cko4SaVi.cjs} +1 -1
- package/dist/{client-CvjjadIE.mjs → client-BXD66ZF5.mjs} +2 -2
- package/dist/{client-C9Ecbtko.mjs → client-Bh1aUPh-.mjs} +4 -4
- package/dist/{client-B161HwAk.mjs → client-Bi20Ka0h.mjs} +2 -2
- package/dist/{client-D0aYWt53.cjs → client-BscskEBk.cjs} +2 -2
- package/dist/{client-BNmFaRXZ.cjs → client-C-OdTbrU.cjs} +4 -4
- package/dist/{client-DIfxYk7B.cjs → client-C5-C0t2a.cjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +16 -16
- package/dist/codex/happyMcpStdioBridge.mjs +16 -16
- package/dist/{codexAppServerClient-CO9f4Jr8.cjs → codexAppServerClient-DKXeikEe.cjs} +13 -6
- package/dist/{codexAppServerClient-BlVmpjR-.mjs → codexAppServerClient-DXhAf6i-.mjs} +13 -6
- package/dist/{codexCommand-CAMR4g5o.mjs → codexCommand-CIaOiiOj.mjs} +137 -55
- package/dist/{codexCommand-BfoRP6E9.cjs → codexCommand-DvbbpYBS.cjs} +141 -59
- package/dist/{codexTermination-BvGlN02_.mjs → codexTermination-BcQdEDaw.mjs} +1 -1
- package/dist/{codexTermination-IrLZQzKC.cjs → codexTermination-BszWfyk5.cjs} +1 -1
- package/dist/{codexThreadFork-DNekT4nQ.cjs → codexThreadFork-5kwoKjMu.cjs} +11 -17
- package/dist/{codexThreadFork-R76RU5H0.mjs → codexThreadFork-DobPd19R.mjs} +11 -17
- package/dist/{config-BGFqQGvh.cjs → config-Di3Cf6js.cjs} +3 -3
- package/dist/{config-CtMgGPvf.mjs → config-OCEcVVK1.mjs} +3 -3
- package/dist/{configuration-C0ctLGW2.cjs → configuration-DfPBa-9d.cjs} +1 -1
- package/dist/{configuration-1FabKklB.mjs → configuration-ECqXu34R.mjs} +1 -1
- package/dist/{connect-DSw-2f52.cjs → connect-BPQRuOw5.cjs} +13 -13
- package/dist/{connect-0lSugpjf.mjs → connect-BTfAUhk8.mjs} +13 -13
- package/dist/{context-BgxbXWKS.mjs → context-CfgTFpCB.mjs} +1 -1
- package/dist/{context-D-hEk5pC.cjs → context-Co7hUaW-.cjs} +1 -1
- package/dist/{controlClient-F7hAEEy2.cjs → controlClient-C13_pSKG.cjs} +3 -3
- package/dist/{controlClient-DwNnNAUx.mjs → controlClient-ClI7A0qE.mjs} +3 -3
- package/dist/{createSessionMetadata-CG6Klinp.mjs → createSessionMetadata-B0eT_Kfj.mjs} +2 -2
- package/dist/{createSessionMetadata-DezS33OM.cjs → createSessionMetadata-Cf78KHtt.cjs} +2 -2
- package/dist/defaultPermissionMode-m6z2QVyP.mjs +43 -0
- package/dist/defaultPermissionMode-oqTupStc.cjs +49 -0
- package/dist/{deterministicJson-BMwgK21e.mjs → deterministicJson-BtSwbsok.mjs} +13 -13
- package/dist/{deterministicJson-D0LU_XbO.cjs → deterministicJson-CpFFgUL_.cjs} +13 -13
- package/dist/{doctor-wVNvRarN.cjs → doctor-BEU0_1Xv.cjs} +7 -7
- package/dist/{doctor-D16hySse.mjs → doctor-lsxmAK4o.mjs} +7 -7
- package/dist/{downloadTarget-C6tqaXGm.mjs → downloadTarget-BXqXhNF7.mjs} +6 -6
- package/dist/{downloadTarget-aNcCxVRL.cjs → downloadTarget-CikzJv1h.cjs} +6 -6
- package/dist/{ensureDaemonRunning-CIghxgDR.cjs → ensureDaemonRunning-BUuH-pbE.cjs} +5 -5
- package/dist/{ensureDaemonRunning-DZq8bvsp.mjs → ensureDaemonRunning-B_9WAlbU.mjs} +5 -5
- package/dist/exitAfterFlush-AbKNZM0N.mjs +23 -0
- package/dist/exitAfterFlush-DIT_sIxR.cjs +25 -0
- package/dist/{handleResumeCommand-BNnD7EuD.mjs → handleResumeCommand-BK9XKH_l.mjs} +5 -5
- package/dist/{handleResumeCommand-CMUTygsm.cjs → handleResumeCommand-Dj7oi2KO.cjs} +5 -5
- package/dist/{agentAttachments-Dbw8iMCZ.cjs → heldInput-BOtqFO2r.cjs} +27 -0
- package/dist/heldInput-C69lA2dH.mjs +44 -0
- package/dist/{index-BCQr-5Ei.mjs → index-BdOJOZ6J.mjs} +4 -4
- package/dist/{index-CKd20r1W.mjs → index-BjZnpGWX.mjs} +3 -3
- package/dist/{index-WKyN-bNy.mjs → index-Bq8NKSCF.mjs} +65 -1
- package/dist/{index-BOe6dKnL.cjs → index-CLUHaPU8.cjs} +76 -0
- package/dist/{index-CnzsOD19.cjs → index-CauRYQKr.cjs} +133 -54
- package/dist/{index-4TpmBb2Q.cjs → index-CmZusg8Q.cjs} +3 -3
- package/dist/{index-BuiG8hmg.mjs → index-Cxso1rg4.mjs} +133 -54
- package/dist/{index-De02DNu5.cjs → index-D3c7CLot.cjs} +4 -4
- package/dist/{index-B81qV_F_.cjs → index-Dg2NAF_-.cjs} +4 -4
- package/dist/{index-Df0bc_et.mjs → index-DuK9XYbZ.mjs} +4 -4
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-23ehAdTD.mjs → install-DTIveLOS.mjs} +3 -3
- package/dist/{install-DNbIEJUk.cjs → install-DXllkuy0.cjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +63 -1
- package/dist/lib.d.mts +63 -1
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-B4dHJCeS.cjs → lidState-C9_DoF9i.cjs} +1 -1
- package/dist/{lidState-q5Its2Hm.mjs → lidState-CD81ryTy.mjs} +1 -1
- package/dist/{localHappyAgentAuth-CG2nPD_H.cjs → localHappyAgentAuth-CCjUvOfi.cjs} +1 -1
- package/dist/{localHappyAgentAuth-C_G5u5lY.mjs → localHappyAgentAuth-Cg-m1lwm.mjs} +1 -1
- package/dist/{logger-BP1SW7Cs.cjs → logger-Ct2zvaq0.cjs} +2 -2
- package/dist/{logger-DOKH3Zbh.mjs → logger-GcbI0eg2.mjs} +2 -2
- package/dist/{machineMetadata-D-5qeIqd.mjs → machineMetadata-CXRmFNOV.mjs} +3 -3
- package/dist/{machineMetadata-BKX3ov9g.cjs → machineMetadata-DDCVWb_x.cjs} +3 -3
- package/dist/{main-ndpVIaSG.cjs → main-BHC-WIcM.cjs} +49 -48
- package/dist/{main-DODz8DQE.mjs → main-omGr_ONk.mjs} +49 -48
- package/dist/{mcp-BBwbSODp.mjs → mcp-D5hxmRAq.mjs} +15 -15
- package/dist/{mcp-Bc4U4exu.cjs → mcp-xUzii0m8.cjs} +15 -15
- package/dist/{mirrorProtocol-CiA3hO2y.cjs → mirrorProtocol-Dfl8Ahyf.cjs} +3 -3
- package/dist/{mirrorProtocol-D2vTWteS.mjs → mirrorProtocol-Lcx20Oby.mjs} +3 -3
- package/dist/{package-CYDdLA6R.cjs → package-9n7wd2dT.cjs} +7 -7
- package/dist/{package-DTcaIhjW.mjs → package-BsUHyqWe.mjs} +7 -7
- package/dist/{panels-C2xZ8rqU.cjs → panels-BfknEmt7.cjs} +5 -5
- package/dist/{panels-DCaLxlSL.mjs → panels-CpEKWWbI.mjs} +5 -5
- package/dist/{peerTools-B4315xjX.cjs → peerTools-CElYh-5u.cjs} +5 -5
- package/dist/{peerTools-BtrUnSwz.mjs → peerTools-CwCe6tmJ.mjs} +5 -5
- package/dist/{persistence-CrzC7yr_.cjs → persistence-A2NeERZJ.cjs} +6 -2
- package/dist/{persistence-0INrP3aB.mjs → persistence-Cpw4yJs8.mjs} +6 -3
- package/dist/{piRunnerArgs-BtzW_kfh.cjs → piRunnerArgs-BnFU0K73.cjs} +1 -1
- package/dist/{piRunnerArgs-DRuxMlX1.mjs → piRunnerArgs-Bqmu16He.mjs} +1 -1
- package/dist/{piRuntime-BMAFpIBV.mjs → piRuntime-Cgn1b0OX.mjs} +1 -1
- package/dist/{piRuntime-DEbPE_kW.cjs → piRuntime-DpS9TAIs.cjs} +1 -1
- package/dist/{piTerminal-DQXV8_we.mjs → piTerminal-BGdps8f3.mjs} +17 -17
- package/dist/{piTerminal-MtxDtBE2.cjs → piTerminal-rmve-VlI.cjs} +17 -17
- package/dist/{pushNotifications-CalIS9sq.cjs → pushNotifications-23YSd-0l.cjs} +28 -3
- package/dist/{pushNotifications-Cq1s8YVK.mjs → pushNotifications-XAM8__Pg.mjs} +28 -3
- package/dist/{query-BYiPBHPC.mjs → query-SZcYnJoW.mjs} +1 -1
- package/dist/{query-CE2XDhhw.cjs → query-u2GX-I0C.cjs} +1 -1
- package/dist/{rateLimitReporter-DR5LXuiQ.mjs → rateLimitReporter-COUkf446.mjs} +3 -3
- package/dist/{rateLimitReporter-BKmoOZQi.cjs → rateLimitReporter-CaTzBe3x.cjs} +3 -3
- package/dist/{rateLimitWindows-Cs56YJCH.cjs → rateLimitWindows-B2Kx6L0S.cjs} +1 -1
- package/dist/{rateLimitWindows-5vIuNjko.mjs → rateLimitWindows-j_qQk0KY.mjs} +1 -1
- package/dist/{registerCommonHandlers-DZPozYxc.cjs → registerCommonHandlers-D1MiSfcB.cjs} +2 -2
- package/dist/{registerCommonHandlers-DWkTysjD.mjs → registerCommonHandlers-DRRfinzK.mjs} +2 -2
- package/dist/{registerKillSessionHandler-CSCTRIbI.mjs → registerKillSessionHandler-Cpug_r5C.mjs} +16 -6
- package/dist/{registerKillSessionHandler-DhCjrs44.cjs → registerKillSessionHandler-hvCsEn7b.cjs} +16 -6
- package/dist/{remoteSessionClient-Dq8XTLQP.cjs → remoteSessionClient-6ymeMVa4.cjs} +5 -5
- package/dist/{remoteSessionClient-Vfj_5g2-.mjs → remoteSessionClient-BdnJ_n8C.mjs} +5 -5
- package/dist/{reportProgressTool-B7zmX7NJ.mjs → reportProgressTool-XgQBzxoD.mjs} +3 -3
- package/dist/{reportProgressTool-DznxPKES.cjs → reportProgressTool-tzQLCLIw.cjs} +3 -3
- package/dist/{run-DSfNcR62.mjs → run-Bt0AklUU.mjs} +396 -43
- package/dist/{run-Ca8BiNCp.cjs → run-DYL_wuj7.cjs} +396 -43
- package/dist/{runClaude-hoepv-0X.mjs → runClaude-C3rii_S6.mjs} +47 -27
- package/dist/{runClaude-ClQQcgoO.cjs → runClaude-CBEpYO4S.cjs} +49 -29
- package/dist/{runClaudeDeps-ck5_GYlP.cjs → runClaudeDeps-CYuozSC6.cjs} +187 -61
- package/dist/{runClaudeDeps-D_v8t2SK.mjs → runClaudeDeps-DlVfMG4F.mjs} +192 -66
- package/dist/{runGemini-Cj0XsMiM.cjs → runGemini-CEI3b90u.cjs} +33 -33
- package/dist/{runGemini-CTr2-cYG.mjs → runGemini-DkYhRk9S.mjs} +33 -33
- package/dist/{runOpenClaw-BoN1e3lP.cjs → runOpenClaw-BgjD6E4d.cjs} +18 -18
- package/dist/{runOpenClaw-CdDMntiV.mjs → runOpenClaw-DpprWCoz.mjs} +18 -18
- package/dist/{sandbox-DcaWB-Ou.mjs → sandbox-DJ7A7lsy.mjs} +4 -4
- package/dist/{sandbox-BY2h19gc.cjs → sandbox-XCDUbH72.cjs} +4 -4
- package/dist/{selfCheck-DFS_GUaQ.cjs → selfCheck-BYUDB1Uq.cjs} +37 -37
- package/dist/selfCheck-C-rNljKV.mjs +86 -0
- package/dist/{send-UBTHHNvZ.mjs → send-Ba63huxv.mjs} +8 -8
- package/dist/{send-BMsUYU6g.cjs → send-CASDBCyJ.cjs} +8 -8
- package/dist/{server-YrHMHNz1.cjs → server-cZoV9XRt.cjs} +6 -6
- package/dist/{server-Dt3mCtfQ.mjs → server-w3W0toNd.mjs} +4 -4
- package/dist/{sessionLock-DSqiP2lH.cjs → sessionLock-BmLA2S8K.cjs} +134 -3
- package/dist/{sessionLock-tEFvFXLD.mjs → sessionLock-G2PMqvsh.mjs} +121 -4
- package/dist/{sessionOps-CljctDs5.mjs → sessionOps-DPw5k8vV.mjs} +15 -5
- package/dist/{sessionOps-BzeOKIEF.cjs → sessionOps-DXlTmS7J.cjs} +15 -4
- package/dist/{sessionProvider-BnUFSJXM.mjs → sessionProvider-DUn91LhJ.mjs} +5 -5
- package/dist/{sessionProvider-ORgzmkXy.cjs → sessionProvider-Dg691XQ4.cjs} +5 -5
- package/dist/{sessionScanner-Cr6PJ3PT.cjs → sessionScanner-AHjnicxi.cjs} +3 -3
- package/dist/{sessionScanner-DZUlkdF6.mjs → sessionScanner-BCXpdZJN.mjs} +3 -3
- package/dist/{sessions-aIo_HjmY.cjs → sessions-BiBXOBx0.cjs} +36 -25
- package/dist/{sessions-15cag-su.mjs → sessions-Clk8MR5Y.mjs} +35 -26
- package/dist/{setupOfflineReconnection-tV0Q1dgR.cjs → setupOfflineReconnection-BKLfOd-i.cjs} +2 -2
- package/dist/{setupOfflineReconnection-B7I8R2Ex.mjs → setupOfflineReconnection-DI-QZGYz.mjs} +2 -2
- package/dist/{spawn-ByrQgruJ.mjs → spawn-4tsp1uhh.mjs} +15 -15
- package/dist/{spawn-VG-HjJiR.cjs → spawn-D5omsx1Q.cjs} +15 -15
- package/dist/{spawnAgents-Bh1RPShN.mjs → spawnAgents-CjoU6ZOS.mjs} +8 -2
- package/dist/{spawnAgents-C1-4m7aN.cjs → spawnAgents-CtkkIFHd.cjs} +8 -2
- package/dist/{spawnHappyCLI-CxiR2Qoy.cjs → spawnHappyCLI-CF_gLi92.cjs} +1 -1
- package/dist/{spawnHappyCLI-CEsXwz5V.mjs → spawnHappyCLI-CIA9Sc_5.mjs} +1 -1
- package/dist/{startFileWatcher-C-XCZ5t2.cjs → startFileWatcher-9Stpxe7p.cjs} +1 -1
- package/dist/{startFileWatcher-DkEeeAtL.mjs → startFileWatcher-CDO6fb2m.mjs} +1 -1
- package/dist/{defaultPermissionMode-e2bIIJG4.mjs → startupSessionCreate-BtR4iYEC.mjs} +25 -6
- package/dist/{defaultPermissionMode-5EvgRq38.cjs → startupSessionCreate-CcF7rGGB.cjs} +25 -7
- package/dist/{streamRelay-D9a4cBEa.cjs → streamRelay-BhI6jqF-.cjs} +1 -1
- package/dist/{streamRelay-CqBynIon.mjs → streamRelay-DMwOMTKf.mjs} +1 -1
- package/dist/{sync-CoChLEIg.cjs → sync-Ba8N6xba.cjs} +1 -1
- package/dist/{sync-BvDMkKAN.mjs → sync-C0PRuTMj.mjs} +1 -1
- package/dist/{systemPrompt-CgDaPigN.mjs → systemPrompt-D0q8eyjy.mjs} +2 -2
- package/dist/{systemPrompt-Dy_Rf-0Z.cjs → systemPrompt-DV5IReD4.cjs} +2 -2
- package/dist/{teams-BC4_e5hR.mjs → teams-BO3_arwM.mjs} +7 -7
- package/dist/{teams-DPvfLAk8.cjs → teams-z3Gp-KlV.cjs} +7 -7
- package/dist/{template-17HATY_Y.cjs → template-B_5l6pkc.cjs} +1 -1
- package/dist/{template-CEK8MEjo.mjs → template-DLR_0hfj.mjs} +1 -1
- package/dist/{time-XwEZxKGc.cjs → time-Cy0a-7YX.cjs} +1 -1
- package/dist/{time-CUK37wiV.mjs → time-D0jvDRhn.mjs} +1 -1
- package/dist/{titleGenerator-DWRVdqMU.mjs → titleGenerator-AGQsXskb.mjs} +1 -1
- package/dist/{titleGenerator-DVX0NZUn.cjs → titleGenerator-RGHWP2YL.cjs} +2 -2
- package/dist/{todo-BNMGXneA.mjs → todo-BZ954vsz.mjs} +6 -6
- package/dist/{todo-CKGrSrRE.cjs → todo-CzIDPLFy.cjs} +6 -6
- package/dist/{tools-CjMafO_D.cjs → tools-B1x1j6tz.cjs} +1 -1
- package/dist/{tools-CCIEAVbB.mjs → tools-Bei5i03L.mjs} +1 -1
- package/dist/{uninstall-CJvJ7gjr.mjs → uninstall-B4T_e3Mr.mjs} +3 -3
- package/dist/{uninstall-BdFbTXnL.cjs → uninstall-C3cnIvz1.cjs} +3 -3
- package/package.json +7 -7
- package/dist/agentAttachments-M_B5qEF2.mjs +0 -18
- package/dist/selfCheck-BQ_H2Sns.mjs +0 -86
- package/dist/startupSessionCreate-CYc8mra-.cjs +0 -26
- package/dist/startupSessionCreate-npXe2TdN.mjs +0 -24
|
@@ -1,77 +1,77 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
4
|
-
var controlClient = require('./controlClient-
|
|
3
|
+
var logger = require('./logger-Ct2zvaq0.cjs');
|
|
4
|
+
var controlClient = require('./controlClient-C13_pSKG.cjs');
|
|
5
5
|
var backgroundTaskActivity = require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
6
|
-
var deterministicJson = require('./deterministicJson-
|
|
7
|
-
var client = require('./client-
|
|
6
|
+
var deterministicJson = require('./deterministicJson-CpFFgUL_.cjs');
|
|
7
|
+
var client = require('./client-C5-C0t2a.cjs');
|
|
8
8
|
var node_crypto = require('node:crypto');
|
|
9
9
|
var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
|
|
10
10
|
var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
|
|
11
|
-
var query = require('./query-
|
|
11
|
+
var query = require('./query-u2GX-I0C.cjs');
|
|
12
12
|
var claudeAgentSdk = require('@anthropic-ai/claude-agent-sdk');
|
|
13
13
|
var permissionMode = require('./permissionMode-CrV-XuMs.cjs');
|
|
14
|
-
var systemPrompt = require('./systemPrompt-
|
|
14
|
+
var systemPrompt = require('./systemPrompt-DV5IReD4.cjs');
|
|
15
15
|
var path$1 = require('node:path');
|
|
16
16
|
require('axios');
|
|
17
17
|
require('node:events');
|
|
18
18
|
require('socket.io-client');
|
|
19
|
-
var pushNotifications = require('./pushNotifications-
|
|
19
|
+
var pushNotifications = require('./pushNotifications-23YSd-0l.cjs');
|
|
20
20
|
require('tweetnacl');
|
|
21
|
-
var configuration = require('./configuration-
|
|
22
|
-
require('./index-
|
|
23
|
-
require('./registerCommonHandlers-
|
|
21
|
+
var configuration = require('./configuration-DfPBa-9d.cjs');
|
|
22
|
+
require('./index-CLUHaPU8.cjs');
|
|
23
|
+
require('./registerCommonHandlers-D1MiSfcB.cjs');
|
|
24
24
|
require('os');
|
|
25
25
|
require('child_process');
|
|
26
26
|
require('@paralleldrive/cuid2');
|
|
27
|
-
require('./persistence-
|
|
27
|
+
require('./persistence-A2NeERZJ.cjs');
|
|
28
28
|
var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
29
29
|
require('chalk');
|
|
30
30
|
var types = require('./types-CRS-srZK.cjs');
|
|
31
31
|
var path = require('./path-B7zW-WwE.cjs');
|
|
32
32
|
var fs = require('fs/promises');
|
|
33
|
-
var time = require('./time-
|
|
33
|
+
var time = require('./time-Cy0a-7YX.cjs');
|
|
34
34
|
var node_fs = require('node:fs');
|
|
35
|
-
var sessionScanner = require('./sessionScanner-
|
|
35
|
+
var sessionScanner = require('./sessionScanner-AHjnicxi.cjs');
|
|
36
36
|
var node_child_process = require('node:child_process');
|
|
37
|
-
var streamRelay = require('./streamRelay-
|
|
38
|
-
var attachmentContent = require('./attachmentContent-
|
|
37
|
+
var streamRelay = require('./streamRelay-BhI6jqF-.cjs');
|
|
38
|
+
var attachmentContent = require('./attachmentContent-BO2njyza.cjs');
|
|
39
39
|
var promises = require('node:fs/promises');
|
|
40
|
-
var claudeSessionFork = require('./claudeSessionFork-
|
|
41
|
-
var rateLimitReporter = require('./rateLimitReporter-
|
|
42
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
43
|
-
var doctor = require('./doctor-
|
|
40
|
+
var claudeSessionFork = require('./claudeSessionFork-Cko4SaVi.cjs');
|
|
41
|
+
var rateLimitReporter = require('./rateLimitReporter-CaTzBe3x.cjs');
|
|
42
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-hvCsEn7b.cjs');
|
|
43
|
+
var doctor = require('./doctor-BEU0_1Xv.cjs');
|
|
44
44
|
var node_http = require('node:http');
|
|
45
45
|
var editPaths = require('./editPaths-Bqp4OFPw.cjs');
|
|
46
46
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
47
47
|
var processTreeSnapshot = require('./processTreeSnapshot-mDbnuojn.cjs');
|
|
48
|
-
var titleGenerator = require('./titleGenerator-
|
|
48
|
+
var titleGenerator = require('./titleGenerator-RGHWP2YL.cjs');
|
|
49
49
|
var oneShotPrompts = require('./oneShotPrompts-CL0dip9C.cjs');
|
|
50
|
-
var reportProgressTool = require('./reportProgressTool-
|
|
50
|
+
var reportProgressTool = require('./reportProgressTool-tzQLCLIw.cjs');
|
|
51
51
|
require('node:util');
|
|
52
52
|
require('./prompt-Bof2aQkI.cjs');
|
|
53
53
|
require('node:os');
|
|
54
54
|
require('zod');
|
|
55
55
|
require('./pi-DlsrPCTa.cjs');
|
|
56
56
|
require('./fileStore-7qhnbs6N.cjs');
|
|
57
|
-
require('./client-
|
|
58
|
-
require('./context-
|
|
59
|
-
require('./sessionOps-
|
|
57
|
+
require('./client-C-OdTbrU.cjs');
|
|
58
|
+
require('./context-Co7hUaW-.cjs');
|
|
59
|
+
require('./sessionOps-DXlTmS7J.cjs');
|
|
60
60
|
require('./authRelay-Dy1qU9td.cjs');
|
|
61
61
|
require('./resources-BZ_Be0qM.cjs');
|
|
62
|
-
require('./tools-
|
|
63
|
-
require('./peerTools-
|
|
62
|
+
require('./tools-B1x1j6tz.cjs');
|
|
63
|
+
require('./peerTools-CElYh-5u.cjs');
|
|
64
64
|
require('./ids-B6ZC0HGt.cjs');
|
|
65
|
-
require('./remoteSessionClient-
|
|
65
|
+
require('./remoteSessionClient-6ymeMVa4.cjs');
|
|
66
66
|
require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
67
67
|
require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
68
68
|
require('./limits-C-a7gr04.cjs');
|
|
69
|
-
require('./downloadTarget-
|
|
69
|
+
require('./downloadTarget-CikzJv1h.cjs');
|
|
70
70
|
require('./terminals-B_bfC9c2.cjs');
|
|
71
71
|
require('./terminalTitleSuggest-DhvRFX3H.cjs');
|
|
72
72
|
require('./tmuxSocket-D-Xt6Vn-.cjs');
|
|
73
|
-
require('./bootstrap-
|
|
74
|
-
require('./package-
|
|
73
|
+
require('./bootstrap-sly4qPPY.cjs');
|
|
74
|
+
require('./package-9n7wd2dT.cjs');
|
|
75
75
|
require('./agentGuidance-BtBx2xxE.cjs');
|
|
76
76
|
require('./trimIdent-4gvk9Wk6.cjs');
|
|
77
77
|
require('./webPanels-FCgFKvVe.cjs');
|
|
@@ -81,22 +81,22 @@ require('./promptCacheTtl-B8PCzE6k.cjs');
|
|
|
81
81
|
require('util');
|
|
82
82
|
require('path');
|
|
83
83
|
require('cross-spawn');
|
|
84
|
-
require('./sync-
|
|
84
|
+
require('./sync-Ba8N6xba.cjs');
|
|
85
85
|
require('./transcriptCursor-DcXGLeSc.cjs');
|
|
86
|
-
require('./startFileWatcher-
|
|
86
|
+
require('./startFileWatcher-9Stpxe7p.cjs');
|
|
87
87
|
require('node:readline');
|
|
88
|
-
require('./rateLimitWindows-
|
|
88
|
+
require('./rateLimitWindows-B2Kx6L0S.cjs');
|
|
89
89
|
require('./doctor-u46qYYKX.cjs');
|
|
90
90
|
require('ps-list');
|
|
91
91
|
require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
92
92
|
require('./detectCLI-BuYR_Qxe.cjs');
|
|
93
93
|
require('fs');
|
|
94
94
|
require('./cliUpdate-DsKXPFYp.cjs');
|
|
95
|
-
require('./piRunnerArgs-
|
|
96
|
-
require('./acpSessionResume-
|
|
95
|
+
require('./piRunnerArgs-BnFU0K73.cjs');
|
|
96
|
+
require('./acpSessionResume-TvP_4Zq2.cjs');
|
|
97
97
|
require('url');
|
|
98
98
|
require('node:module');
|
|
99
|
-
require('./client-
|
|
99
|
+
require('./client-BscskEBk.cjs');
|
|
100
100
|
require('./precheckCompat-CWOi5c9L.cjs');
|
|
101
101
|
|
|
102
102
|
const SCHEDULE_WAKEUP_GRACE_MS = 6e4;
|
|
@@ -768,6 +768,10 @@ function planUnconfirmedCommands(commands, context) {
|
|
|
768
768
|
tombstone: commands.filter((_, i) => i !== index).map((c) => c.uuid)
|
|
769
769
|
};
|
|
770
770
|
}
|
|
771
|
+
function planUndeliveredMessage(message, context) {
|
|
772
|
+
if (context.exiting || !context.parkFree) return null;
|
|
773
|
+
return { ...message, finalized: true };
|
|
774
|
+
}
|
|
771
775
|
|
|
772
776
|
const AUTH_FAILURE_RESULT_TEXT = /Failed to authenticate|OAuth session expired/i;
|
|
773
777
|
const QUERY_RECYCLE_NOTICE = {
|
|
@@ -934,6 +938,56 @@ function compactOutcomeEvent(result, status) {
|
|
|
934
938
|
return "Compaction completed";
|
|
935
939
|
}
|
|
936
940
|
|
|
941
|
+
class TimeoutError extends Error {
|
|
942
|
+
constructor(message) {
|
|
943
|
+
super(message);
|
|
944
|
+
this.name = "TimeoutError";
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
function withTimeout(promise, ms, label) {
|
|
948
|
+
promise.catch(() => {
|
|
949
|
+
});
|
|
950
|
+
let timer;
|
|
951
|
+
const timeout = new Promise((_, reject) => {
|
|
952
|
+
timer = setTimeout(() => reject(new TimeoutError(`${label ? `${label} ` : ""}timed out after ${ms}ms`)), ms);
|
|
953
|
+
});
|
|
954
|
+
return Promise.race([promise, timeout]).finally(() => {
|
|
955
|
+
if (timer) clearTimeout(timer);
|
|
956
|
+
});
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
const GET_SETTINGS_TIMEOUT_MS = 3e3;
|
|
960
|
+
const EFFORTS = /* @__PURE__ */ new Set(["low", "medium", "high", "xhigh", "max"]);
|
|
961
|
+
function parseClaudeRunFacts(raw) {
|
|
962
|
+
const facts = {};
|
|
963
|
+
if (!raw || typeof raw !== "object") return facts;
|
|
964
|
+
const { applied, effective } = raw;
|
|
965
|
+
if (applied && typeof applied === "object" && "effort" in applied) {
|
|
966
|
+
const effort = applied.effort;
|
|
967
|
+
if (effort === null) facts.effort = null;
|
|
968
|
+
else if (typeof effort === "string" && EFFORTS.has(effort)) facts.effort = effort;
|
|
969
|
+
}
|
|
970
|
+
if (effective && typeof effective === "object") {
|
|
971
|
+
const model = effective.model;
|
|
972
|
+
facts.configuredModel = typeof model === "string" && model.trim() ? model.trim() : null;
|
|
973
|
+
}
|
|
974
|
+
return facts;
|
|
975
|
+
}
|
|
976
|
+
async function readClaudeRunFacts(query, timeoutMs = GET_SETTINGS_TIMEOUT_MS) {
|
|
977
|
+
const reader = query;
|
|
978
|
+
if (typeof reader?.getSettings !== "function") return null;
|
|
979
|
+
try {
|
|
980
|
+
return parseClaudeRunFacts(await withTimeout(reader.getSettings(), timeoutMs, "get_settings"));
|
|
981
|
+
} catch {
|
|
982
|
+
return null;
|
|
983
|
+
}
|
|
984
|
+
}
|
|
985
|
+
async function liveModelTarget(query, model, timeoutMs = GET_SETTINGS_TIMEOUT_MS) {
|
|
986
|
+
if (model) return model;
|
|
987
|
+
const facts = await readClaudeRunFacts(query, timeoutMs);
|
|
988
|
+
return facts?.configuredModel ?? void 0;
|
|
989
|
+
}
|
|
990
|
+
|
|
937
991
|
const SDK_TIMING_FIELDS = ["ttft_ms", "time_to_request_ms", "time_to_request_from_spawn_ms"];
|
|
938
992
|
function delta(from, to) {
|
|
939
993
|
if (typeof from !== "number" || typeof to !== "number" || to < from) return "-";
|
|
@@ -1198,24 +1252,6 @@ function createClaudePrewarmLease(input) {
|
|
|
1198
1252
|
return lease;
|
|
1199
1253
|
}
|
|
1200
1254
|
|
|
1201
|
-
class TimeoutError extends Error {
|
|
1202
|
-
constructor(message) {
|
|
1203
|
-
super(message);
|
|
1204
|
-
this.name = "TimeoutError";
|
|
1205
|
-
}
|
|
1206
|
-
}
|
|
1207
|
-
function withTimeout(promise, ms, label) {
|
|
1208
|
-
promise.catch(() => {
|
|
1209
|
-
});
|
|
1210
|
-
let timer;
|
|
1211
|
-
const timeout = new Promise((_, reject) => {
|
|
1212
|
-
timer = setTimeout(() => reject(new TimeoutError(`${label ? `${label} ` : ""}timed out after ${ms}ms`)), ms);
|
|
1213
|
-
});
|
|
1214
|
-
return Promise.race([promise, timeout]).finally(() => {
|
|
1215
|
-
if (timer) clearTimeout(timer);
|
|
1216
|
-
});
|
|
1217
|
-
}
|
|
1218
|
-
|
|
1219
1255
|
function readClaudeSessionState(message) {
|
|
1220
1256
|
const m = message;
|
|
1221
1257
|
if (!m || m.type !== "system" || m.subtype !== "session_state_changed") return null;
|
|
@@ -1506,7 +1542,7 @@ async function claudeRemote(opts) {
|
|
|
1506
1542
|
}
|
|
1507
1543
|
if (!reason && decision.switchModel) {
|
|
1508
1544
|
try {
|
|
1509
|
-
await withTimeout(w.response.setModel(modelTarget(initial.mode.model)), w.lease.adoptTimeoutMs);
|
|
1545
|
+
await withTimeout(w.response.setModel(await liveModelTarget(w.response, modelTarget(initial.mode.model), w.lease.adoptTimeoutMs)), w.lease.adoptTimeoutMs);
|
|
1510
1546
|
} catch {
|
|
1511
1547
|
reason = "set-model-failed";
|
|
1512
1548
|
}
|
|
@@ -1558,7 +1594,8 @@ async function claudeRemote(opts) {
|
|
|
1558
1594
|
messages.push(initialUserMessage);
|
|
1559
1595
|
} else {
|
|
1560
1596
|
messages = new PushableAsyncIterable();
|
|
1561
|
-
|
|
1597
|
+
const resumeOnConfigModel = !!startFrom && modelTarget(initial.mode.model) === void 0;
|
|
1598
|
+
if (!resumeOnConfigModel) messages.push(initialUserMessage);
|
|
1562
1599
|
timingMarks.spawnAt = Date.now();
|
|
1563
1600
|
opts.onStartArgsUsed?.();
|
|
1564
1601
|
response = query.query({
|
|
@@ -1570,6 +1607,13 @@ async function claudeRemote(opts) {
|
|
|
1570
1607
|
} catch (error) {
|
|
1571
1608
|
logger.logger.debug("[claudeRemote] Model capability discovery unavailable");
|
|
1572
1609
|
}
|
|
1610
|
+
if (resumeOnConfigModel) {
|
|
1611
|
+
const target = await liveModelTarget(response, void 0);
|
|
1612
|
+
if (target) {
|
|
1613
|
+
await withTimeout(response.setModel(target), SET_MODEL_TIMEOUT_MS, "set_model").then(() => logger.logger.debug(`[claudeRemote] Resumed on the settings model ${target}`)).catch((e) => logger.logger.debug(`[claudeRemote] setModel(settings model) on resume failed: ${e instanceof Error ? e.message : String(e)}`));
|
|
1614
|
+
}
|
|
1615
|
+
messages.push(initialUserMessage);
|
|
1616
|
+
}
|
|
1573
1617
|
timingMarks.handshakeAt = Date.now();
|
|
1574
1618
|
}
|
|
1575
1619
|
const prewarmTiming = adopted ? "adopted" : void 0;
|
|
@@ -1629,11 +1673,17 @@ async function claudeRemote(opts) {
|
|
|
1629
1673
|
if (initialUserMessage.uuid) commandTracker.track(initialUserMessage.uuid, { message: initial.message, mode: initial.mode });
|
|
1630
1674
|
let modelUnconfirmed = false;
|
|
1631
1675
|
let pullingNext = false;
|
|
1676
|
+
let queryClosed = false;
|
|
1677
|
+
const inputClosed = () => queryClosed || messages.done;
|
|
1632
1678
|
const pullNextMessage = () => {
|
|
1633
1679
|
if (pullingNext) {
|
|
1634
1680
|
logger.logger.debug("[claudeRemote] Already waiting for the next message");
|
|
1635
1681
|
return;
|
|
1636
1682
|
}
|
|
1683
|
+
if (inputClosed()) {
|
|
1684
|
+
logger.logger.debug("[claudeRemote] Input closed; the next message belongs to the next launch");
|
|
1685
|
+
return;
|
|
1686
|
+
}
|
|
1637
1687
|
pullingNext = true;
|
|
1638
1688
|
opts.nextMessage().then(async (pulled) => {
|
|
1639
1689
|
let next = withoutRetiredModel(pulled);
|
|
@@ -1642,18 +1692,37 @@ async function claudeRemote(opts) {
|
|
|
1642
1692
|
messages.end();
|
|
1643
1693
|
return;
|
|
1644
1694
|
}
|
|
1695
|
+
const handBack = (message) => {
|
|
1696
|
+
pullingNext = false;
|
|
1697
|
+
logger.logger.debug("[claudeRemote] Query input closed before the pulled message was sent; handing it back to the launcher");
|
|
1698
|
+
if (opts.onUndeliveredMessage) opts.onUndeliveredMessage(message);
|
|
1699
|
+
else logger.logger.warn("[claudeRemote] Pulled message could not be delivered and no owner took it back");
|
|
1700
|
+
};
|
|
1701
|
+
if (inputClosed()) {
|
|
1702
|
+
handBack(next);
|
|
1703
|
+
return;
|
|
1704
|
+
}
|
|
1645
1705
|
if (modelUnconfirmed || needsModelSwitch(mode.model, next.mode.model)) {
|
|
1646
1706
|
try {
|
|
1647
|
-
await
|
|
1707
|
+
const target = await liveModelTarget(response, modelTarget(next.mode.model));
|
|
1708
|
+
await withTimeout(response.setModel(target), SET_MODEL_TIMEOUT_MS, "set_model");
|
|
1648
1709
|
modelUnconfirmed = false;
|
|
1649
|
-
logger.logger.debug(`[claudeRemote] Model switched to ${
|
|
1710
|
+
logger.logger.debug(`[claudeRemote] Model switched to ${target ?? "default"}`);
|
|
1650
1711
|
} catch (e) {
|
|
1651
1712
|
logger.logger.debug(`[claudeRemote] setModel failed: ${e instanceof Error ? e.message : String(e)}`);
|
|
1713
|
+
if (inputClosed()) {
|
|
1714
|
+
handBack(next);
|
|
1715
|
+
return;
|
|
1716
|
+
}
|
|
1652
1717
|
opts.onCompletionEvent?.(modelSwitchFailureNotice(next.mode.model, e));
|
|
1653
1718
|
if (e instanceof TimeoutError) modelUnconfirmed = true;
|
|
1654
1719
|
next = { ...next, mode: { ...next.mode, model: mode.model } };
|
|
1655
1720
|
}
|
|
1656
1721
|
}
|
|
1722
|
+
if (inputClosed()) {
|
|
1723
|
+
handBack(next);
|
|
1724
|
+
return;
|
|
1725
|
+
}
|
|
1657
1726
|
mode = next.mode;
|
|
1658
1727
|
updateThinking(true);
|
|
1659
1728
|
turn.pushed();
|
|
@@ -1773,6 +1842,12 @@ async function claudeRemote(opts) {
|
|
|
1773
1842
|
permissionMode: systemInit.permissionMode
|
|
1774
1843
|
});
|
|
1775
1844
|
}
|
|
1845
|
+
if (opts.onRunFacts) {
|
|
1846
|
+
const onRunFacts = opts.onRunFacts;
|
|
1847
|
+
void readClaudeRunFacts(response).then((facts) => {
|
|
1848
|
+
if (facts) onRunFacts(facts);
|
|
1849
|
+
});
|
|
1850
|
+
}
|
|
1776
1851
|
if (systemInit.session_id) {
|
|
1777
1852
|
logger.logger.debug(`[claudeRemote] Waiting for session file to be written to disk: ${systemInit.session_id}`);
|
|
1778
1853
|
const projectDir = path.getProjectPath(opts.path);
|
|
@@ -1833,6 +1908,7 @@ async function claudeRemote(opts) {
|
|
|
1833
1908
|
}
|
|
1834
1909
|
} finally {
|
|
1835
1910
|
updateThinking(false);
|
|
1911
|
+
queryClosed = true;
|
|
1836
1912
|
if (cliCapabilities.has(MSG_LIFECYCLE_CAPABILITY)) {
|
|
1837
1913
|
const unconfirmed = commandTracker.takeUnconfirmed();
|
|
1838
1914
|
if (unconfirmed.length > 0) {
|
|
@@ -3045,6 +3121,23 @@ function applyClaudeSdkMetadata(current, update) {
|
|
|
3045
3121
|
...update.modelIsDefault && update.model ? { defaultModelCode: update.model } : {}
|
|
3046
3122
|
};
|
|
3047
3123
|
}
|
|
3124
|
+
function applyClaudeRunFacts(current, facts) {
|
|
3125
|
+
let next = current;
|
|
3126
|
+
if (facts.configuredModel !== void 0 && current.configuredModel !== facts.configuredModel) {
|
|
3127
|
+
next = { ...next, configuredModel: facts.configuredModel };
|
|
3128
|
+
}
|
|
3129
|
+
if (facts.effort !== void 0) {
|
|
3130
|
+
if (facts.effort === null) {
|
|
3131
|
+
if (next.currentThoughtLevelCode !== void 0) {
|
|
3132
|
+
const { currentThoughtLevelCode: _dropped, ...rest } = next;
|
|
3133
|
+
next = rest;
|
|
3134
|
+
}
|
|
3135
|
+
} else if (next.currentThoughtLevelCode !== facts.effort) {
|
|
3136
|
+
next = { ...next, currentThoughtLevelCode: facts.effort };
|
|
3137
|
+
}
|
|
3138
|
+
}
|
|
3139
|
+
return next;
|
|
3140
|
+
}
|
|
3048
3141
|
|
|
3049
3142
|
const INTERRUPT_TIMEOUT_MS = 8e3;
|
|
3050
3143
|
function createTurnSteeringController(opts = {}) {
|
|
@@ -4141,6 +4234,10 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
|
|
|
4141
4234
|
const parked = modeGate.takeParked();
|
|
4142
4235
|
if (parked) {
|
|
4143
4236
|
permissionHandler.handleModeChange(parked.mode.permissionMode);
|
|
4237
|
+
if (parked.finalized) {
|
|
4238
|
+
if (typeof parked.message === "string") onPromptFinalized?.(parked.message);
|
|
4239
|
+
return parked;
|
|
4240
|
+
}
|
|
4144
4241
|
if (typeof parked.message === "string") return { ...parked, message: await finalize(parked.message) };
|
|
4145
4242
|
return parked;
|
|
4146
4243
|
}
|
|
@@ -4203,6 +4300,11 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
|
|
|
4203
4300
|
session.client.updateMetadata((currentMetadata) => applyClaudeSdkMetadata(currentMetadata, metadata));
|
|
4204
4301
|
if (metadata.permissionMode) onEffectivePermissionMode?.(metadata.permissionMode);
|
|
4205
4302
|
},
|
|
4303
|
+
onRunFacts: (facts) => {
|
|
4304
|
+
const current = session.client.getMetadata();
|
|
4305
|
+
if (current && applyClaudeRunFacts(current, facts) === current) return;
|
|
4306
|
+
session.client.updateMetadata((currentMetadata) => applyClaudeRunFacts(currentMetadata, facts));
|
|
4307
|
+
},
|
|
4206
4308
|
onQueryReady: (q) => {
|
|
4207
4309
|
runtimeControls.setQuery(q);
|
|
4208
4310
|
backgroundTasks.reset();
|
|
@@ -4267,13 +4369,32 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
|
|
|
4267
4369
|
if (plan.redeliver) {
|
|
4268
4370
|
redeliveredCommands.add(plan.redeliver.uuid);
|
|
4269
4371
|
logger.logger.debug(`[remote]: re-sending unconfirmed user message ${plan.redeliver.uuid} into the next launch`);
|
|
4270
|
-
modeGate.park({ message: plan.redeliver.payload.message, mode: plan.redeliver.payload.mode, uuid: plan.redeliver.uuid });
|
|
4372
|
+
modeGate.park({ message: plan.redeliver.payload.message, mode: plan.redeliver.payload.mode, uuid: plan.redeliver.uuid, finalized: true });
|
|
4271
4373
|
}
|
|
4272
4374
|
if (plan.tombstone.length > 0) {
|
|
4273
4375
|
logger.logger.debug(`[remote]: ${plan.tombstone.length} user message(s) never started before the query ended`);
|
|
4274
4376
|
session.client.sendQueueCancelReason(plan.tombstone, "aborted");
|
|
4275
4377
|
}
|
|
4276
4378
|
},
|
|
4379
|
+
// B-853: the Query's input closed while this message was in
|
|
4380
|
+
// hand — it never reached Claude Code. Run it first in the
|
|
4381
|
+
// next launch (it was pulled before anything still queued);
|
|
4382
|
+
// only when that slot is taken does the web get a tombstone
|
|
4383
|
+
// it can put back and resend, never silence. Leaving remote
|
|
4384
|
+
// mode is the user's stop (`aborted`); otherwise the Query
|
|
4385
|
+
// was replaced before it took the message (`restarted`).
|
|
4386
|
+
onUndeliveredMessage: (message) => {
|
|
4387
|
+
const parked = planUndeliveredMessage(message, { parkFree: !modeGate.hasParked, exiting: exitReason !== null });
|
|
4388
|
+
if (parked) {
|
|
4389
|
+
logger.logger.debug("[remote]: pulled message missed its Query; replaying it in the next launch");
|
|
4390
|
+
modeGate.park(parked);
|
|
4391
|
+
} else if (message.uuid) {
|
|
4392
|
+
logger.logger.debug(`[remote]: pulled message ${message.uuid} missed its Query and cannot be replayed`);
|
|
4393
|
+
session.client.sendQueueCancelReason([message.uuid], exitReason !== null ? "aborted" : "restarted");
|
|
4394
|
+
} else {
|
|
4395
|
+
logger.logger.warn("[remote]: pulled message missed its Query and carries no uuid to tombstone");
|
|
4396
|
+
}
|
|
4397
|
+
},
|
|
4277
4398
|
onCommandsDropped: (uuids) => {
|
|
4278
4399
|
logger.logger.debug(`[remote]: ${uuids.length} user message(s) never read before the turn ended`);
|
|
4279
4400
|
session.client.sendQueueCancelReason(uuids, "aborted");
|
|
@@ -4367,6 +4488,11 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
|
|
|
4367
4488
|
modeGate.reset();
|
|
4368
4489
|
}
|
|
4369
4490
|
}
|
|
4491
|
+
const stranded = modeGate.takeParked();
|
|
4492
|
+
if (stranded?.uuid) {
|
|
4493
|
+
logger.logger.debug(`[remote]: leaving remote mode with parked message ${stranded.uuid}; tombstoning it`);
|
|
4494
|
+
session.client.sendQueueCancelReason([stranded.uuid], "aborted");
|
|
4495
|
+
}
|
|
4370
4496
|
} finally {
|
|
4371
4497
|
session.client.off("message", observeSessionRecord);
|
|
4372
4498
|
rewindReconciler.dispose();
|
|
@@ -4419,7 +4545,7 @@ async function loop(opts) {
|
|
|
4419
4545
|
logger.logger.debug(`[loop] Iteration with mode: ${mode}`);
|
|
4420
4546
|
switch (mode) {
|
|
4421
4547
|
case "local": {
|
|
4422
|
-
const { claudeLocalLauncher } = await Promise.resolve().then(function () { return require('./claudeLocalLauncher-
|
|
4548
|
+
const { claudeLocalLauncher } = await Promise.resolve().then(function () { return require('./claudeLocalLauncher-DOsL6HFY.cjs'); });
|
|
4423
4549
|
const result = await claudeLocalLauncher(session);
|
|
4424
4550
|
switch (result.type) {
|
|
4425
4551
|
case "switch":
|
|
@@ -4760,7 +4886,7 @@ function registerSideQuestionHandler(rpc, deps) {
|
|
|
4760
4886
|
const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
|
|
4761
4887
|
const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
|
|
4762
4888
|
const fork = deps.run ?? (async (input) => {
|
|
4763
|
-
const { query } = await Promise.resolve().then(function () { return require('./index-
|
|
4889
|
+
const { query } = await Promise.resolve().then(function () { return require('./index-Dg2NAF_-.cjs'); });
|
|
4764
4890
|
return runSideQuestion(query, input);
|
|
4765
4891
|
});
|
|
4766
4892
|
const run = async (input, live) => {
|