very-happy-cli 0.2.188 → 0.2.190
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-2loP7MpF.mjs → AcpBackend-Dd1h-Rgt.mjs} +3 -3
- package/dist/{AcpBackend-B8AYkp5n.cjs → AcpBackend-dkRv9QHm.cjs} +3 -3
- package/dist/{AcpSessionManager-CLqo9R9Y.cjs → AcpSessionManager-AqWAqahm.cjs} +3 -3
- package/dist/{AcpSessionManager-C17doAoR.mjs → AcpSessionManager-QBZ-CIf7.mjs} +4 -4
- package/dist/{BasePermissionHandler-CrfyUmqO.mjs → BasePermissionHandler-CLp1ge-4.mjs} +1 -1
- package/dist/{BasePermissionHandler-C8UEcFz0.cjs → BasePermissionHandler-CpSugp7Z.cjs} +1 -1
- package/dist/{acpSessionResume-OuYlLGxL.cjs → acpSessionResume-CZao6QEd.cjs} +1 -1
- package/dist/{acpSessionResume-F705a1cF.mjs → acpSessionResume-CcpDuIO5.mjs} +1 -1
- package/dist/{agentHome-Dc7LYF3d.mjs → agentHome-BJGRA2Kx.mjs} +4 -4
- package/dist/{agentHome-DsKHJ_Sf.cjs → agentHome-fIUqT-pn.cjs} +4 -4
- package/dist/{api-BOqjYd5r.cjs → api-CXL6jp-p.cjs} +18 -9
- package/dist/{api-DNKa7kVy.mjs → api-Dw8gFsQi.mjs} +19 -10
- package/dist/{apiMachine-Di1G9ECW.mjs → apiMachine-BBNEtjf7.mjs} +56 -15
- package/dist/{apiMachine--rcPpMmt.cjs → apiMachine-C6UqHoPF.cjs} +55 -14
- package/dist/{attachmentContent-C9S4ekAz.mjs → attachmentContent-CC4yIrSm.mjs} +2 -2
- package/dist/{attachmentContent-BFRMLong.cjs → attachmentContent-NmVfKp-B.cjs} +2 -2
- package/dist/{auth-CXmI92aj.cjs → auth-Bb_SL2os.cjs} +5 -5
- package/dist/{auth-Bzwo_vOM.mjs → auth-Bh6SUoGi.mjs} +8 -8
- package/dist/{auth-BNhhk2Fr.mjs → auth-Bj0psrD2.mjs} +5 -5
- package/dist/{auth-CQtfznF0.cjs → auth-DKa4MsAi.cjs} +8 -8
- package/dist/{auto-DXLdaX5O.cjs → auto-C9Qohh0P.cjs} +17 -16
- package/dist/{auto-DHYOLnXB.mjs → auto-DK7pbCnV.mjs} +19 -18
- package/dist/{bootstrap-Di38SnpN.mjs → bootstrap-Ct9Nb4sv.mjs} +2 -2
- package/dist/{bootstrap-eJ1l7VYl.cjs → bootstrap-DBJB0y-H.cjs} +2 -2
- package/dist/{browser-6Cg7G6bb.mjs → browser-BGxDRhHy.mjs} +1 -1
- package/dist/{browser-D3uBFRQu.cjs → browser-CLJWcodR.cjs} +1 -1
- package/dist/{claudeLocal-BBaE4QF_.cjs → claudeLocal-B6YDYlnY.cjs} +4 -4
- package/dist/{claudeLocal-CqaEs-81.mjs → claudeLocal-Ux31hZyC.mjs} +5 -5
- package/dist/{claudeLocalLauncher-BDUPxtsI.mjs → claudeLocalLauncher-D06QijMw.mjs} +10 -10
- package/dist/{claudeLocalLauncher-wPxKtH_P.cjs → claudeLocalLauncher-DFvmF8rC.cjs} +9 -9
- package/dist/{claudeSessionFork-DzWFzj9m.mjs → claudeSessionFork-D2GI7P59.mjs} +1 -1
- package/dist/{claudeSessionFork-CmY25Fl3.cjs → claudeSessionFork-DTLZ2rek.cjs} +1 -1
- package/dist/{client-DmY03OZZ.cjs → client-Bffkrs5p.cjs} +2 -2
- package/dist/{client-C2HcMqRF.cjs → client-CARZ_lNS.cjs} +3 -3
- package/dist/{client-agH03Irm.cjs → client-CMKGrnmT.cjs} +2 -2
- package/dist/{client-DWws_aQK.mjs → client-CnGNYidN.mjs} +2 -2
- package/dist/{client-qJ0y8fus.mjs → client-CtL0Vtww.mjs} +4 -4
- package/dist/{client-DcDE6Ifk.mjs → client-DZkBUoh9.mjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +16 -15
- package/dist/codex/happyMcpStdioBridge.mjs +17 -16
- package/dist/{codexAppServerClient-DgE99i7X.mjs → codexAppServerClient-CLc5nhLT.mjs} +37 -6
- package/dist/{codexAppServerClient-DwzC8LR0.cjs → codexAppServerClient-CpT9F6EM.cjs} +37 -6
- package/dist/{codexCommand-1vFEA1KT.cjs → codexCommand-39kH99SJ.cjs} +148 -61
- package/dist/{codexCommand-DUSVzbKh.mjs → codexCommand-Dliq3EBv.mjs} +143 -56
- package/dist/{codexTermination-DuDPyBRR.cjs → codexTermination-ByW7tRjr.cjs} +1 -1
- package/dist/{codexTermination-Bybovr2z.mjs → codexTermination-ORIw0gpU.mjs} +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-C4xOL5bH.cjs → config-CeIzCsfj.cjs} +3 -3
- package/dist/{config-BrzZ0O-6.mjs → config-CxSsGO1Z.mjs} +3 -3
- package/dist/{configuration-BZHpFD7K.mjs → configuration-Dechcvd-.mjs} +1 -1
- package/dist/{configuration-DyPW9mVa.cjs → configuration-Dt5lKW3P.cjs} +1 -1
- package/dist/{connect-DurKwMEo.cjs → connect-NPDzIVC6.cjs} +12 -12
- package/dist/{connect-Cw_INlj8.mjs → connect-UwQHvCpR.mjs} +13 -13
- package/dist/{context-2xDvjkQp.cjs → context-BdZssgF0.cjs} +1 -1
- package/dist/{context-t7YV0aZc.mjs → context-C9JbJoNe.mjs} +1 -1
- package/dist/{controlClient-DvFaPsg6.cjs → controlClient-BRk65BRO.cjs} +3 -3
- package/dist/{controlClient-Bw56NIrj.mjs → controlClient-D7NGfmtq.mjs} +3 -3
- package/dist/{createSessionMetadata-Dpg6bV6f.cjs → createSessionMetadata-B_HZCDj_.cjs} +2 -2
- package/dist/{createSessionMetadata-Dn5BkLfU.mjs → createSessionMetadata-DyhFKAby.mjs} +2 -2
- package/dist/defaultPermissionMode-BnxJPVHT.mjs +4 -0
- package/dist/defaultPermissionMode-CxmTXUQR.cjs +7 -0
- package/dist/{deterministicJson-D0BrV1FD.cjs → deterministicJson-BEygolBQ.cjs} +12 -12
- package/dist/{deterministicJson-CsRckxVq.mjs → deterministicJson-DNmMVhFu.mjs} +13 -13
- package/dist/{doctor-CYe4d9kU.cjs → doctor-B9lW1WlG.cjs} +7 -7
- package/dist/{doctor-B4HQiW6j.mjs → doctor-BdBi7TFZ.mjs} +7 -7
- package/dist/{downloadTarget-tYMV_VHo.mjs → downloadTarget-CGojGjaN.mjs} +6 -6
- package/dist/{downloadTarget-CuhBVvuC.cjs → downloadTarget-DS0zT2AU.cjs} +6 -6
- package/dist/{ensureDaemonRunning-DVtIG9z7.mjs → ensureDaemonRunning-BOdbryDM.mjs} +5 -5
- package/dist/{ensureDaemonRunning-Ce3BlWiR.cjs → ensureDaemonRunning-Bibp6vhe.cjs} +5 -5
- package/dist/exitAfterFlush-AbKNZM0N.mjs +23 -0
- package/dist/exitAfterFlush-DIT_sIxR.cjs +25 -0
- package/dist/{handleResumeCommand-BU1uMNyv.mjs → handleResumeCommand-CgLzBYne.mjs} +5 -5
- package/dist/{handleResumeCommand-CLxsmAW0.cjs → handleResumeCommand-DXOuWr4p.cjs} +5 -5
- package/dist/{agentAttachments-Dbw8iMCZ.cjs → heldInput-BOtqFO2r.cjs} +27 -0
- package/dist/heldInput-C69lA2dH.mjs +44 -0
- package/dist/{index-KwuXqLwe.cjs → index-Bs5FD8JF.cjs} +4 -4
- package/dist/{index-ChX0eVXw.mjs → index-CBHfkQNY.mjs} +142 -60
- package/dist/{index-DoXbGEAi.cjs → index-CwRW11hT.cjs} +3 -3
- package/dist/{index-CVHRt3SS.mjs → index-DUByZsKe.mjs} +4 -4
- package/dist/{index-wWJJAQRk.cjs → index-DXSIi6j_.cjs} +4 -4
- package/dist/{index-DDz0Ftoy.mjs → index-Db0HIC-k.mjs} +4 -4
- package/dist/{index-WKyN-bNy.mjs → index-DmqsRnV7.mjs} +1 -1
- package/dist/{index-DG1kGjkF.cjs → index-f8oDidjV.cjs} +142 -60
- package/dist/{index-B1OxWiNG.mjs → index-rNTX33in.mjs} +3 -3
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-cAYvHxXR.cjs → install-CXIL_FYx.cjs} +3 -3
- package/dist/{install-CMa_FOWu.mjs → install-DfPrEWGG.mjs} +3 -3
- package/dist/lib.cjs +11 -11
- package/dist/lib.d.cts +61 -1
- package/dist/lib.d.mts +61 -1
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-D-lsD1FS.mjs → lidState-D0DF20oG.mjs} +1 -1
- package/dist/{lidState-d1vgQ3n7.cjs → lidState-q_XFYg33.cjs} +1 -1
- package/dist/{localHappyAgentAuth-wvDp-nGj.mjs → localHappyAgentAuth-BBhM4Qk1.mjs} +1 -1
- package/dist/{localHappyAgentAuth-DucSnCg3.cjs → localHappyAgentAuth-CKNW-MXw.cjs} +1 -1
- package/dist/{logger-C3vZG6Q0.cjs → logger-BBRTTVsQ.cjs} +2 -2
- package/dist/{logger-RpzJ4d8V.mjs → logger-CL7pin9b.mjs} +2 -2
- package/dist/{machineMetadata-CiQ2_1Mq.mjs → machineMetadata-DP06qdBk.mjs} +3 -3
- package/dist/{machineMetadata-CAvFq1Jg.cjs → machineMetadata-DnFNlrVK.cjs} +3 -3
- package/dist/{main-ChpYcFZi.cjs → main-DLOXykOR.cjs} +49 -48
- package/dist/{main-IPhaImjm.mjs → main-DO7nRvhf.mjs} +49 -48
- package/dist/{mcp-CWnMvju6.mjs → mcp-C-4sPTae.mjs} +16 -15
- package/dist/{mcp-2xF232hL.cjs → mcp-Du0MgR7e.cjs} +15 -14
- package/dist/{mirrorProtocol-CVzPObON.cjs → mirrorProtocol-GuWMxLkh.cjs} +2 -2
- package/dist/{mirrorProtocol-Dr7fNq8V.mjs → mirrorProtocol-dkq2ZENA.mjs} +3 -3
- package/dist/{package-CwB8rFJt.mjs → package-C6uiXULx.mjs} +7 -7
- package/dist/{package-Gnf_935w.cjs → package-DrY090nZ.cjs} +7 -7
- package/dist/{panels-DTlTsndU.cjs → panels-4DRBKHZP.cjs} +5 -5
- package/dist/{panels-L1mSkC-y.mjs → panels-DXYdJA6n.mjs} +5 -5
- package/dist/{peerTools-C1E5cQ86.cjs → peerTools-5ZM4spcZ.cjs} +5 -5
- package/dist/{peerTools-2_8Bw9PU.mjs → peerTools-dY1aJez4.mjs} +5 -5
- package/dist/{persistence-CqtjFiD1.cjs → persistence-Bl5S3TLB.cjs} +6 -2
- package/dist/{persistence-Bn4qEbDg.mjs → persistence-Dogj7JIp.mjs} +6 -3
- package/dist/{piRunnerArgs-BI8yQRBZ.cjs → piRunnerArgs-C3jZ1M6b.cjs} +1 -1
- package/dist/{piRunnerArgs-DWBb63W9.mjs → piRunnerArgs-D8nN_Iit.mjs} +1 -1
- package/dist/{piRuntime--mQ43MSM.cjs → piRuntime-Bd9-eq6M.cjs} +1 -1
- package/dist/{piRuntime-Do8oqbm3.mjs → piRuntime-BoeMsAXK.mjs} +1 -1
- package/dist/{piTerminal-BzcvLFsP.cjs → piTerminal-C3j1ca3x.cjs} +17 -16
- package/dist/{piTerminal-GC1KHTYQ.mjs → piTerminal-GEPkIGD4.mjs} +18 -17
- package/dist/{pushNotifications-Bb-QSqXw.cjs → pushNotifications-CfspRcl-.cjs} +20 -2
- package/dist/{pushNotifications-BThg4nVd.mjs → pushNotifications-dUceOIni.mjs} +21 -3
- package/dist/{query-Bz3pocKH.cjs → query-DjsVgG3E.cjs} +1 -1
- package/dist/{query-CkgIJ_Dy.mjs → query-iYH-tm7L.mjs} +1 -1
- package/dist/{rateLimitReporter-BkHyvLru.cjs → rateLimitReporter-DUu2KydZ.cjs} +3 -3
- package/dist/{rateLimitReporter-Iw4k3Bbr.mjs → rateLimitReporter-jeVi-fym.mjs} +3 -3
- package/dist/{rateLimitWindows-Bm_dcQGW.cjs → rateLimitWindows-Bx3ROBP5.cjs} +1 -1
- package/dist/{rateLimitWindows-CQ4tIQnx.mjs → rateLimitWindows-CEn0DXaX.mjs} +1 -1
- package/dist/{registerCommonHandlers-CIs6H2DV.cjs → registerCommonHandlers-Beun-cQv.cjs} +2 -2
- package/dist/{registerCommonHandlers-CaWl9ll1.mjs → registerCommonHandlers-DWZ7mfdt.mjs} +2 -2
- package/dist/{specialCommands-BsvSoDhC.cjs → registerKillSessionHandler-CA1FFr_F.cjs} +15 -62
- package/dist/{specialCommands-DHU7TNeK.mjs → registerKillSessionHandler-CzgklwLG.mjs} +17 -60
- package/dist/{remoteSessionClient-uPj7omsw.mjs → remoteSessionClient-BiC2KDew.mjs} +5 -5
- package/dist/{remoteSessionClient-DgUMfPW4.cjs → remoteSessionClient-DGFI__5Z.cjs} +5 -5
- package/dist/{reportProgressTool-DUEq3xAL.mjs → reportProgressTool-CgPy6n_7.mjs} +3 -3
- package/dist/{reportProgressTool-CaJ8EwLq.cjs → reportProgressTool-CvPGov1F.cjs} +2 -2
- package/dist/{run-DTUJBD6p.mjs → run-B_gFgJVB.mjs} +393 -42
- package/dist/{run-DyyGMqND.cjs → run-rPqQwDi_.cjs} +391 -40
- package/dist/{runClaude-DTNvIz2J.mjs → runClaude-CykqeXK7.mjs} +26 -23
- package/dist/{runClaude-8JDaPoGQ.cjs → runClaude-DM8gm8iu.cjs} +27 -24
- package/dist/{runClaudeDeps-CgGkgg7e.mjs → runClaudeDeps-D2phXGut.mjs} +106 -46
- package/dist/{runClaudeDeps-BeLo5zss.cjs → runClaudeDeps-DGAomimZ.cjs} +101 -40
- package/dist/{runGemini-BSOdU563.cjs → runGemini-CXTeSOZp.cjs} +50 -49
- package/dist/{runGemini-eU8UOzfc.mjs → runGemini-CtWCVkj5.mjs} +49 -48
- package/dist/{runOpenClaw-D8RZiA1e.mjs → runOpenClaw-BBdjlViJ.mjs} +25 -24
- package/dist/{runOpenClaw-CYyFoGRZ.cjs → runOpenClaw-CH_9_RyZ.cjs} +26 -25
- package/dist/{sandbox-C8zfNX-4.cjs → sandbox-Bb5IMun3.cjs} +4 -4
- package/dist/{sandbox-DlPahdhl.mjs → sandbox-DGmXZ6Zz.mjs} +4 -4
- package/dist/selfCheck-BfK945YQ.mjs +86 -0
- package/dist/{selfCheck-D28nvuPJ.cjs → selfCheck-CccwNTTK.cjs} +37 -37
- package/dist/{send-DBpv-1eh.mjs → send-B6rHg8GT.mjs} +9 -8
- package/dist/{send-C58kX4qz.cjs → send-BpiXPkDo.cjs} +9 -8
- package/dist/{server-J5K6pOox.mjs → server-BkdAyHhC.mjs} +4 -4
- package/dist/{server-I_CETZzn.cjs → server-DHUzjApC.cjs} +6 -6
- package/dist/{sessionLock-DjE7O0LS.cjs → sessionLock-BFBReiKq.cjs} +134 -3
- package/dist/{sessionLock-C7Wg1RVd.mjs → sessionLock-Ca_bIo50.mjs} +121 -4
- package/dist/{sessionOps-CYjMT7Ad.mjs → sessionOps-CA2kpm66.mjs} +36 -5
- package/dist/{sessionOps-DGMpl9NB.cjs → sessionOps-DeWVqpe4.cjs} +36 -4
- package/dist/{sessionProvider-DVtxrOuM.cjs → sessionProvider-VFbtUmMR.cjs} +5 -5
- package/dist/{sessionProvider-TLiFn9kD.mjs → sessionProvider-g18IiK74.mjs} +5 -5
- package/dist/{sessionScanner-BZ1ZSn6I.cjs → sessionScanner-CGzsN8V6.cjs} +3 -3
- package/dist/{sessionScanner-CknV1IlN.mjs → sessionScanner-DDDud5re.mjs} +3 -3
- package/dist/{sessions-DU4bxkap.mjs → sessions-B4d50sCI.mjs} +36 -26
- package/dist/{sessions-CTkBKs5U.cjs → sessions-CKJPWFgu.cjs} +37 -25
- package/dist/{setupOfflineReconnection-DaOXnGuH.mjs → setupOfflineReconnection-CyPNgyCe.mjs} +2 -2
- package/dist/{setupOfflineReconnection-CQHNuP_0.cjs → setupOfflineReconnection-DPXRo_zf.cjs} +2 -2
- package/dist/{spawn-C0wZc03S.cjs → spawn-CgSJzzWS.cjs} +17 -16
- package/dist/{spawn-DdnYTtQe.mjs → spawn-CrYN_OOT.mjs} +18 -17
- package/dist/{spawnAgents-BjyU78Ue.cjs → spawnAgents-C1-4m7aN.cjs} +3 -1
- package/dist/{spawnAgents-D-7wMw-a.mjs → spawnAgents-DWCDYCQ1.mjs} +4 -2
- package/dist/{spawnHappyCLI-BJUd974I.cjs → spawnHappyCLI-CTy3p6V_.cjs} +1 -1
- package/dist/{spawnHappyCLI-CnyyJk74.mjs → spawnHappyCLI-DjbkiSH1.mjs} +1 -1
- package/dist/specialCommands-J3JFOq0J.cjs +60 -0
- package/dist/specialCommands-MXUN0wfI.mjs +54 -0
- package/dist/{startFileWatcher-DBboREco.cjs → startFileWatcher-BQs0cJA-.cjs} +1 -1
- package/dist/{startFileWatcher-CpO5Mwbr.mjs → startFileWatcher-Dedtu1vq.mjs} +1 -1
- package/dist/{defaultPermissionMode-DMTnlccv.mjs → startupSessionCreate-BKFU4v_h.mjs} +25 -6
- package/dist/{defaultPermissionMode-Dlm0q1m0.cjs → startupSessionCreate-Dxy3X4DG.cjs} +25 -7
- package/dist/{streamRelay-CqBynIon.mjs → streamRelay-P9e7Sohm.mjs} +1 -1
- package/dist/{sync-6HFRJP1h.cjs → sync-DtWB7RzA.cjs} +1 -1
- package/dist/{sync-I8NYmycF.mjs → sync-eZkXnsW_.mjs} +1 -1
- package/dist/{systemPrompt-BDWj5QSL.cjs → systemPrompt-2XOpZ1j6.cjs} +1 -1
- package/dist/{systemPrompt-C1RSY_60.mjs → systemPrompt-Bn6g6aCH.mjs} +2 -2
- package/dist/{teams-eUD7ymif.cjs → teams-ecFay4Gn.cjs} +6 -6
- package/dist/{teams-GpLFbXXE.mjs → teams-nadkqrbW.mjs} +7 -7
- package/dist/{template-CEK8MEjo.mjs → template-BiTD-jI9.mjs} +1 -1
- package/dist/{time-umG7yHkb.mjs → time-CN3TuSVG.mjs} +1 -1
- package/dist/{time-BAJRbB6U.cjs → time-gPD_EmA-.cjs} +1 -1
- package/dist/{titleGenerator-dmFlxkRs.mjs → titleGenerator-DgzTQdn2.mjs} +1 -1
- package/dist/{titleGenerator-iqb2jOF1.cjs → titleGenerator-lT5ldPuN.cjs} +2 -2
- package/dist/{todo-DsR7WnQS.cjs → todo-B1VeMk5A.cjs} +5 -5
- package/dist/{todo-CT4AJ3sH.mjs → todo-BIxd7l2Q.mjs} +6 -6
- package/dist/{tools-30E66QL_.cjs → tools-DvqbLsCF.cjs} +1 -1
- package/dist/{tools-BOWazSD6.mjs → tools-zXJpxiG_.mjs} +1 -1
- package/dist/{uninstall-DImXs6VZ.mjs → uninstall-9htK6mb7.mjs} +3 -3
- package/dist/{uninstall-BtTc9hHa.cjs → uninstall-CvIOpwB5.cjs} +3 -3
- package/package.json +7 -7
- package/dist/agentAttachments-M_B5qEF2.mjs +0 -18
- package/dist/selfCheck-4bcdHPFQ.mjs +0 -86
- package/dist/startupSessionCreate-BgaVuvQp.mjs +0 -24
- package/dist/startupSessionCreate-C1u2dtz8.cjs +0 -26
|
@@ -1,94 +1,96 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var AcpBackend = require('./AcpBackend-
|
|
4
|
-
var logger = require('./logger-
|
|
5
|
-
var AcpSessionManager = require('./AcpSessionManager-
|
|
3
|
+
var AcpBackend = require('./AcpBackend-dkRv9QHm.cjs');
|
|
4
|
+
var logger = require('./logger-BBRTTVsQ.cjs');
|
|
5
|
+
var AcpSessionManager = require('./AcpSessionManager-AqWAqahm.cjs');
|
|
6
6
|
var index = require('./index-BOe6dKnL.cjs');
|
|
7
|
-
var deterministicJson = require('./deterministicJson-
|
|
8
|
-
var specialCommands = require('./specialCommands-
|
|
9
|
-
var
|
|
10
|
-
var configuration = require('./configuration-
|
|
11
|
-
var attachmentContent = require('./attachmentContent-
|
|
12
|
-
var piRuntime = require('./piRuntime
|
|
7
|
+
var deterministicJson = require('./deterministicJson-BEygolBQ.cjs');
|
|
8
|
+
var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
|
|
9
|
+
var heldInput = require('./heldInput-BOtqFO2r.cjs');
|
|
10
|
+
var configuration = require('./configuration-Dt5lKW3P.cjs');
|
|
11
|
+
var attachmentContent = require('./attachmentContent-NmVfKp-B.cjs');
|
|
12
|
+
var piRuntime = require('./piRuntime-Bd9-eq6M.cjs');
|
|
13
13
|
var node_crypto = require('node:crypto');
|
|
14
14
|
var path = require('node:path');
|
|
15
|
-
var api = require('./api-
|
|
16
|
-
var client = require('./client-
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
var
|
|
22
|
-
var
|
|
15
|
+
var api = require('./api-CXL6jp-p.cjs');
|
|
16
|
+
var client = require('./client-CMKGrnmT.cjs');
|
|
17
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-CA1FFr_F.cjs');
|
|
18
|
+
var persistence = require('./persistence-Bl5S3TLB.cjs');
|
|
19
|
+
var machineMetadata = require('./machineMetadata-DnFNlrVK.cjs');
|
|
20
|
+
var createSessionMetadata = require('./createSessionMetadata-B_HZCDj_.cjs');
|
|
21
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-DPXRo_zf.cjs');
|
|
22
|
+
var startupSessionCreate = require('./startupSessionCreate-Dxy3X4DG.cjs');
|
|
23
|
+
var controlClient = require('./controlClient-BRk65BRO.cjs');
|
|
23
24
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
24
|
-
var sessionLock = require('./sessionLock-
|
|
25
|
-
var acpSessionResume = require('./acpSessionResume-
|
|
25
|
+
var sessionLock = require('./sessionLock-BFBReiKq.cjs');
|
|
26
|
+
var acpSessionResume = require('./acpSessionResume-CZao6QEd.cjs');
|
|
26
27
|
var streamRelay = require('./streamRelay-D9a4cBEa.cjs');
|
|
27
28
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
28
|
-
var BasePermissionHandler = require('./BasePermissionHandler-
|
|
29
|
-
var titleGenerator = require('./titleGenerator-
|
|
29
|
+
var BasePermissionHandler = require('./BasePermissionHandler-CpSugp7Z.cjs');
|
|
30
|
+
var titleGenerator = require('./titleGenerator-lT5ldPuN.cjs');
|
|
30
31
|
var editPaths = require('./editPaths-Bqp4OFPw.cjs');
|
|
31
32
|
var node_fs = require('node:fs');
|
|
32
33
|
var os = require('node:os');
|
|
33
34
|
require('node:child_process');
|
|
34
35
|
require('@agentclientprotocol/sdk');
|
|
35
|
-
require('./time-
|
|
36
|
+
require('./time-gPD_EmA-.cjs');
|
|
36
37
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
37
38
|
require('./processTree-CMHWlVse.cjs');
|
|
38
|
-
require('./package-
|
|
39
|
+
require('./package-DrY090nZ.cjs');
|
|
39
40
|
require('chalk');
|
|
40
41
|
require('node:util');
|
|
41
42
|
require('@paralleldrive/cuid2');
|
|
42
43
|
require('zod');
|
|
43
44
|
require('./prompt-Bof2aQkI.cjs');
|
|
44
|
-
require('./reportProgressTool-
|
|
45
|
-
require('./client-
|
|
45
|
+
require('./reportProgressTool-CvPGov1F.cjs');
|
|
46
|
+
require('./client-Bffkrs5p.cjs');
|
|
46
47
|
require('./precheckCompat-CWOi5c9L.cjs');
|
|
47
48
|
require('./agentGuidance-BtBx2xxE.cjs');
|
|
48
49
|
require('./trimIdent-4gvk9Wk6.cjs');
|
|
49
50
|
require('./pi-DlsrPCTa.cjs');
|
|
50
51
|
require('./fileStore-7qhnbs6N.cjs');
|
|
51
52
|
require('node:fs/promises');
|
|
52
|
-
require('./client-
|
|
53
|
-
require('./context-
|
|
54
|
-
require('./sessionOps-
|
|
53
|
+
require('./client-CARZ_lNS.cjs');
|
|
54
|
+
require('./context-BdZssgF0.cjs');
|
|
55
|
+
require('./sessionOps-DeWVqpe4.cjs');
|
|
55
56
|
require('axios');
|
|
56
57
|
require('socket.io-client');
|
|
57
58
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
58
59
|
require('./resources-BZ_Be0qM.cjs');
|
|
59
|
-
require('./tools-
|
|
60
|
-
require('./peerTools-
|
|
60
|
+
require('./tools-DvqbLsCF.cjs');
|
|
61
|
+
require('./peerTools-5ZM4spcZ.cjs');
|
|
61
62
|
require('./ids-B6ZC0HGt.cjs');
|
|
62
|
-
require('./remoteSessionClient-
|
|
63
|
+
require('./remoteSessionClient-DGFI__5Z.cjs');
|
|
63
64
|
require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
64
65
|
require('node:http');
|
|
65
66
|
require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
66
67
|
require('./limits-C-a7gr04.cjs');
|
|
67
|
-
require('./downloadTarget-
|
|
68
|
+
require('./downloadTarget-DS0zT2AU.cjs');
|
|
68
69
|
require('./terminals-B_bfC9c2.cjs');
|
|
69
70
|
require('./terminalTitleSuggest-DhvRFX3H.cjs');
|
|
70
71
|
require('./tmuxSocket-D-Xt6Vn-.cjs');
|
|
71
|
-
require('./bootstrap-
|
|
72
|
+
require('./bootstrap-DBJB0y-H.cjs');
|
|
72
73
|
require('./webPanels-FCgFKvVe.cjs');
|
|
73
|
-
require('./pushNotifications-
|
|
74
|
+
require('./pushNotifications-CfspRcl-.cjs');
|
|
74
75
|
require('./previewPath-B0rBdhy1.cjs');
|
|
75
76
|
require('crypto');
|
|
76
|
-
require('
|
|
77
|
-
require('
|
|
78
|
-
require('./registerCommonHandlers-CIs6H2DV.cjs');
|
|
77
|
+
require('./lidState-q_XFYg33.cjs');
|
|
78
|
+
require('os');
|
|
79
79
|
require('child_process');
|
|
80
|
+
require('node:events');
|
|
81
|
+
require('./registerCommonHandlers-Beun-cQv.cjs');
|
|
80
82
|
require('util');
|
|
81
83
|
require('fs/promises');
|
|
82
84
|
require('path');
|
|
83
85
|
require('cross-spawn');
|
|
84
|
-
require('
|
|
86
|
+
require('./sync-DtWB7RzA.cjs');
|
|
87
|
+
require('tweetnacl');
|
|
85
88
|
require('./types-CRS-srZK.cjs');
|
|
86
|
-
require('./lidState-d1vgQ3n7.cjs');
|
|
87
|
-
require('./sync-6HFRJP1h.cjs');
|
|
88
89
|
require('./detectCLI-BuYR_Qxe.cjs');
|
|
89
90
|
require('fs');
|
|
90
|
-
require('./localHappyAgentAuth-
|
|
91
|
+
require('./localHappyAgentAuth-CKNW-MXw.cjs');
|
|
91
92
|
require('./fsMkdir-0K3yENml.cjs');
|
|
93
|
+
require('./cliUpdate-DsKXPFYp.cjs');
|
|
92
94
|
require('./processTreeSnapshot-mDbnuojn.cjs');
|
|
93
95
|
require('url');
|
|
94
96
|
require('node:module');
|
|
@@ -154,9 +156,15 @@ function oneLine(text) {
|
|
|
154
156
|
}
|
|
155
157
|
function describeAcpTurnFailure(agentName, error) {
|
|
156
158
|
if (AcpBackend.isAgentExitError(error)) {
|
|
157
|
-
|
|
159
|
+
const detail2 = oneLine(error.message);
|
|
160
|
+
return { message: `Process exited unexpectedly: ${detail2}`, error: detail2, exited: true };
|
|
158
161
|
}
|
|
159
|
-
|
|
162
|
+
const detail = oneLine(detailOf(error));
|
|
163
|
+
return { message: `${agentName} error: ${detail}`, error: detail, exited: false };
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function acpExitIntent(exit) {
|
|
167
|
+
return exit?.intent ?? "offline";
|
|
160
168
|
}
|
|
161
169
|
|
|
162
170
|
const OUT_OF_TURN_QUIET_MS = 6e4;
|
|
@@ -824,7 +832,9 @@ async function runAcp(opts) {
|
|
|
824
832
|
machineId: settings.machineId,
|
|
825
833
|
startedBy: opts.startedBy,
|
|
826
834
|
sandbox: settings.sandboxConfig,
|
|
827
|
-
|
|
835
|
+
// B-852: a daemon-spawned pi session reports when it is quiescent, so the
|
|
836
|
+
// daemon can restart it onto new code after an upgrade.
|
|
837
|
+
capabilities: [index.PROMPT_QUEUE_CAPABILITY, index.PROJECT_SESSION_CAPABILITY, ...opts.agentName === "pi" && opts.startedBy === "daemon" ? [sessionLock.AUTO_RESTART_CAPABILITY] : []]
|
|
828
838
|
});
|
|
829
839
|
metadata.attachmentKinds = [];
|
|
830
840
|
if (opts.agentName === "gemini") metadata.configuredModel = readGeminiConfiguredModel();
|
|
@@ -909,7 +919,7 @@ async function runAcp(opts) {
|
|
|
909
919
|
send: (frame) => session.sendStreamFrame(frame)
|
|
910
920
|
});
|
|
911
921
|
const sessionManager = new AcpSessionManager.AcpSessionManager(streamingEnabled ? { stream: streamRelay$1 } : {});
|
|
912
|
-
const messageQueue = new
|
|
922
|
+
const messageQueue = new registerKillSessionHandler.MessageQueue2((mode) => deterministicJson.hashObject(mode));
|
|
913
923
|
function attachPromptQueueDrain(client) {
|
|
914
924
|
const drain = client.attachPromptQueueDrain({
|
|
915
925
|
isIdle: () => messageQueue.size() === 0 && messageQueue.isWaiting()
|
|
@@ -917,6 +927,11 @@ async function runAcp(opts) {
|
|
|
917
927
|
messageQueue.setOnWait(() => drain.onIdle());
|
|
918
928
|
}
|
|
919
929
|
attachPromptQueueDrain(session);
|
|
930
|
+
messageQueue.setOnDiscard((entries) => {
|
|
931
|
+
const keys = entries.map((entry) => entry.sourceId).filter((key) => typeof key === "string");
|
|
932
|
+
if (keys.length > 0) session.sendQueueCancelReason(keys, entries[0].reason);
|
|
933
|
+
});
|
|
934
|
+
const heldInput$1 = new heldInput.HeldInput((keys, reason) => session.sendQueueCancelReason(keys, reason));
|
|
920
935
|
let currentPermissionMode;
|
|
921
936
|
let currentModel;
|
|
922
937
|
let modeSelector = null;
|
|
@@ -1011,7 +1026,16 @@ async function runAcp(opts) {
|
|
|
1011
1026
|
session.keepAlive(thinking, "remote");
|
|
1012
1027
|
};
|
|
1013
1028
|
let acpSessionId = null;
|
|
1029
|
+
let piProbe = null;
|
|
1014
1030
|
let shouldExit = false;
|
|
1031
|
+
let exit = null;
|
|
1032
|
+
const beginExit = (intent, reason) => {
|
|
1033
|
+
if (!exit) exit = { intent, reason };
|
|
1034
|
+
shouldExit = true;
|
|
1035
|
+
heldInput$1.drop(exit.reason);
|
|
1036
|
+
messageQueue.discardAll(exit.reason);
|
|
1037
|
+
messageQueue.close();
|
|
1038
|
+
};
|
|
1015
1039
|
let abortController = new AbortController();
|
|
1016
1040
|
let turnCancelled = false;
|
|
1017
1041
|
let backendStarted = false;
|
|
@@ -1021,8 +1045,8 @@ async function runAcp(opts) {
|
|
|
1021
1045
|
const stopRunnerFromBackendStatus = (status, detail) => {
|
|
1022
1046
|
const reason = detail ? `${opts.agentName} backend ${status}: ${detail}` : `${opts.agentName} backend ${status}`;
|
|
1023
1047
|
logger.logger.debug(`[${opts.agentName}] ${reason}; stopping ACP runner`);
|
|
1024
|
-
|
|
1025
|
-
|
|
1048
|
+
session.sendSessionEvent({ type: "message", message: reason });
|
|
1049
|
+
beginExit("offline", "failed");
|
|
1026
1050
|
};
|
|
1027
1051
|
const sendEnvelopes = (envelopes) => {
|
|
1028
1052
|
for (const envelope of envelopes) {
|
|
@@ -1331,7 +1355,7 @@ async function runAcp(opts) {
|
|
|
1331
1355
|
};
|
|
1332
1356
|
backend.onMessage(onBackendMessage);
|
|
1333
1357
|
const titleGenerator$1 = new titleGenerator.TitleGenerator(session);
|
|
1334
|
-
|
|
1358
|
+
heldInput.registerAgentAttachmentDownloads(session);
|
|
1335
1359
|
let userMessageDelivery = Promise.resolve();
|
|
1336
1360
|
session.onUserMessage((message) => {
|
|
1337
1361
|
const downloads = session.drainAttachmentsForUserMessage();
|
|
@@ -1380,6 +1404,7 @@ async function runAcp(opts) {
|
|
|
1380
1404
|
}).catch(() => {
|
|
1381
1405
|
logger.logger.warn("[ACP] Failed to prepare user attachments");
|
|
1382
1406
|
session.sendSessionEvent({ type: "message", message: "Could not prepare this message. Please send it again." });
|
|
1407
|
+
if (message.localKey) session.sendQueueCancelReason([message.localKey], exit?.reason ?? "failed");
|
|
1383
1408
|
});
|
|
1384
1409
|
});
|
|
1385
1410
|
session.keepAlive(thinking, "remote");
|
|
@@ -1418,11 +1443,16 @@ async function runAcp(opts) {
|
|
|
1418
1443
|
return { mode };
|
|
1419
1444
|
}
|
|
1420
1445
|
);
|
|
1421
|
-
const disposeTermination =
|
|
1422
|
-
|
|
1423
|
-
messageQueue.close();
|
|
1446
|
+
const disposeTermination = registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, async () => {
|
|
1447
|
+
beginExit("archive", "aborted");
|
|
1424
1448
|
await handleAbort();
|
|
1425
|
-
}, session, {
|
|
1449
|
+
}, session, {
|
|
1450
|
+
processSignals: true,
|
|
1451
|
+
onSignal: async () => {
|
|
1452
|
+
beginExit("offline", "restarted");
|
|
1453
|
+
await handleAbort();
|
|
1454
|
+
}
|
|
1455
|
+
});
|
|
1426
1456
|
const afterSessionStarted = async (requestedModel) => {
|
|
1427
1457
|
if (requestedModel) {
|
|
1428
1458
|
await switchModelIfRequested(requestedModel);
|
|
@@ -1476,6 +1506,36 @@ async function runAcp(opts) {
|
|
|
1476
1506
|
logger.logger.debug(`[${opts.agentName}] Resume of agent session ${resumeId}: ${started.resumed ?? "new"}${started.loadFailure ? ` (${started.loadFailure})` : ""}`);
|
|
1477
1507
|
if (started.resumed !== "loaded") session.sendSessionEvent({ type: "message", message: acpSessionResume.piRestartNotice(opts.agentName, "resume", started) });
|
|
1478
1508
|
}
|
|
1509
|
+
if (opts.agentName === "pi" && opts.startedBy === "daemon") {
|
|
1510
|
+
const piSnapshot = () => {
|
|
1511
|
+
const meta = session.getMetadata();
|
|
1512
|
+
return {
|
|
1513
|
+
flavor: "acp",
|
|
1514
|
+
resumable: typeof meta?.piSessionId === "string" && meta.piSessionId.length > 0,
|
|
1515
|
+
uiSession: true,
|
|
1516
|
+
...isAssistantVariant ? { variant: "assistant" } : {},
|
|
1517
|
+
...process.env.HAPPY_SPAWNED_BY ? { spawnedBy: process.env.HAPPY_SPAWNED_BY } : {},
|
|
1518
|
+
...meta?.tags ? { tags: meta.tags } : {},
|
|
1519
|
+
keepAwake: false,
|
|
1520
|
+
thinking,
|
|
1521
|
+
queuedInputs: messageQueue.size() + (session.promptQueueHasPending() ? 1 : 0),
|
|
1522
|
+
waitingForInput: messageQueue.isWaiting(),
|
|
1523
|
+
pendingRequests: Object.keys(session.getAgentState()?.requests ?? {}).length,
|
|
1524
|
+
backgroundTasks: 0,
|
|
1525
|
+
lastActivityAt: session.lastActivityAt,
|
|
1526
|
+
...shouldExit ? { exiting: true } : {}
|
|
1527
|
+
};
|
|
1528
|
+
};
|
|
1529
|
+
piProbe = new startupSessionCreate.HibernationProbe({
|
|
1530
|
+
checkMs: persistence.resolveCheckMs(),
|
|
1531
|
+
snapshot: piSnapshot,
|
|
1532
|
+
ask: (report) => controlClient.checkDaemonHibernation({ sessionId: session.sessionId, pid: process.pid, report }),
|
|
1533
|
+
commit: async () => false
|
|
1534
|
+
});
|
|
1535
|
+
piProbe.start();
|
|
1536
|
+
}
|
|
1537
|
+
const autoUpdated = sessionLock.takeAutoRestartedEvent(process.env);
|
|
1538
|
+
if (autoUpdated) session.sendSessionEvent(autoUpdated);
|
|
1479
1539
|
if (verbose) {
|
|
1480
1540
|
if (!sawSlashCommands) {
|
|
1481
1541
|
logAcp("muted", `Outgoing slash commands from ${opts.agentName}: not reported yet`);
|
|
@@ -1499,6 +1559,7 @@ async function runAcp(opts) {
|
|
|
1499
1559
|
}
|
|
1500
1560
|
break;
|
|
1501
1561
|
}
|
|
1562
|
+
heldInput$1.hold(batch.sourceIds);
|
|
1502
1563
|
logAcp("incoming", `Incoming prompt: ${formatUnknownForConsole(batch.message, ACP_EVENT_PREVIEW_CHARS)}`);
|
|
1503
1564
|
endOutOfTurn("prompt");
|
|
1504
1565
|
sendEnvelopes(sessionManager.startTurn());
|
|
@@ -1528,6 +1589,13 @@ async function runAcp(opts) {
|
|
|
1528
1589
|
happyHomeDir: configuration.configuration.happyHomeDir,
|
|
1529
1590
|
sessionId: session.sessionId
|
|
1530
1591
|
}) : [];
|
|
1592
|
+
if (shouldExit) {
|
|
1593
|
+
sendEnvelopes(sessionManager.endTurn("cancelled"));
|
|
1594
|
+
streamRelay$1.endTurn();
|
|
1595
|
+
setThinking(false);
|
|
1596
|
+
break;
|
|
1597
|
+
}
|
|
1598
|
+
heldInput$1.delivered();
|
|
1531
1599
|
promptInFlight = true;
|
|
1532
1600
|
let outcome;
|
|
1533
1601
|
try {
|
|
@@ -1554,7 +1622,8 @@ async function runAcp(opts) {
|
|
|
1554
1622
|
} catch (error) {
|
|
1555
1623
|
const failure = describeAcpTurnFailure(opts.agentName, error);
|
|
1556
1624
|
session.sendSessionEvent({ type: "message", message: failure.message });
|
|
1557
|
-
|
|
1625
|
+
heldInput$1.drop("failed");
|
|
1626
|
+
sendEnvelopes(sessionManager.endTurn("failed", failure.error));
|
|
1558
1627
|
streamRelay$1.endTurn();
|
|
1559
1628
|
setThinking(false);
|
|
1560
1629
|
session.sendSessionEvent({ type: "ready" });
|
|
@@ -1566,6 +1635,7 @@ async function runAcp(opts) {
|
|
|
1566
1635
|
}
|
|
1567
1636
|
} finally {
|
|
1568
1637
|
disposeTermination?.();
|
|
1638
|
+
piProbe?.stop();
|
|
1569
1639
|
setThinking(false);
|
|
1570
1640
|
clearInterval(keepAliveInterval);
|
|
1571
1641
|
streamRelay$1.endTurn();
|
|
@@ -1592,15 +1662,27 @@ async function runAcp(opts) {
|
|
|
1592
1662
|
}
|
|
1593
1663
|
try {
|
|
1594
1664
|
session.closePromptQueueDrain();
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1665
|
+
heldInput$1.drop(exit?.reason ?? "failed");
|
|
1666
|
+
messageQueue.discardAll(exit?.reason ?? "failed");
|
|
1667
|
+
const intent = acpExitIntent(exit);
|
|
1668
|
+
if (intent === "archive") {
|
|
1669
|
+
session.updateMetadata((currentMetadata) => ({
|
|
1670
|
+
...currentMetadata,
|
|
1671
|
+
lifecycleState: "archived",
|
|
1672
|
+
lifecycleStateSince: Date.now(),
|
|
1673
|
+
archivedBy: "cli",
|
|
1674
|
+
archiveReason: "Session ended"
|
|
1675
|
+
}));
|
|
1676
|
+
}
|
|
1602
1677
|
session.sendSessionDeath();
|
|
1603
1678
|
await session.flush();
|
|
1679
|
+
if (intent === "offline") {
|
|
1680
|
+
try {
|
|
1681
|
+
await api$1.deactivateSession(session.sessionId);
|
|
1682
|
+
} catch (error) {
|
|
1683
|
+
logger.logger.debug(`[${opts.agentName}] deactivate on exit failed:`, error);
|
|
1684
|
+
}
|
|
1685
|
+
}
|
|
1604
1686
|
await session.close();
|
|
1605
1687
|
} catch (error) {
|
|
1606
1688
|
logger.logger.debug(`[${opts.agentName}] Session close failed:`, error);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as packageJson } from './package-
|
|
1
|
+
import { p as packageJson } from './package-C6uiXULx.mjs';
|
|
2
2
|
import module$1 from 'node:module';
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
4
|
import { readdir, rm } from 'node:fs/promises';
|
|
@@ -57,10 +57,10 @@ async function pruneStaleCompileCaches(happyHomeDir, cliVersion) {
|
|
|
57
57
|
async function run(args) {
|
|
58
58
|
enableCompileCacheIfPossible(packageJson.version);
|
|
59
59
|
if (isStandaloneVersionRequest(args) || isSelfCheckRequest(args)) {
|
|
60
|
-
const { selfCheckMain } = await import('./selfCheck-
|
|
60
|
+
const { selfCheckMain } = await import('./selfCheck-BfK945YQ.mjs');
|
|
61
61
|
process.exit(await selfCheckMain({ verbose: isSelfCheckRequest(args) }));
|
|
62
62
|
}
|
|
63
|
-
const { main } = await import('./main-
|
|
63
|
+
const { main } = await import('./main-DO7nRvhf.mjs');
|
|
64
64
|
await main();
|
|
65
65
|
}
|
|
66
66
|
void run(process.argv.slice(2));
|
package/dist/index.cjs
CHANGED
package/dist/index.mjs
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
3
|
+
var logger = require('./logger-BBRTTVsQ.cjs');
|
|
4
4
|
var require$$0 = require('fs');
|
|
5
5
|
var child_process = require('child_process');
|
|
6
6
|
var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
|
|
7
7
|
var os = require('os');
|
|
8
8
|
require('chalk');
|
|
9
9
|
require('node:util');
|
|
10
|
-
require('./configuration-
|
|
10
|
+
require('./configuration-Dt5lKW3P.cjs');
|
|
11
11
|
require('node:fs');
|
|
12
12
|
require('node:os');
|
|
13
13
|
require('node:path');
|
|
14
|
-
require('./package-
|
|
14
|
+
require('./package-DrY090nZ.cjs');
|
|
15
15
|
require('node:fs/promises');
|
|
16
16
|
|
|
17
17
|
const PLIST_LABEL = "com.happy-cli.daemon";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
1
|
+
import { l as logger } from './logger-CL7pin9b.mjs';
|
|
2
2
|
import { existsSync, writeFileSync, chmodSync } from 'fs';
|
|
3
3
|
import { execSync } from 'child_process';
|
|
4
4
|
import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
|
|
5
5
|
import os from 'os';
|
|
6
6
|
import 'chalk';
|
|
7
7
|
import 'node:util';
|
|
8
|
-
import './configuration-
|
|
8
|
+
import './configuration-Dechcvd-.mjs';
|
|
9
9
|
import 'node:fs';
|
|
10
10
|
import 'node:os';
|
|
11
11
|
import 'node:path';
|
|
12
|
-
import './package-
|
|
12
|
+
import './package-C6uiXULx.mjs';
|
|
13
13
|
import 'node:fs/promises';
|
|
14
14
|
|
|
15
15
|
const PLIST_LABEL = "com.happy-cli.daemon";
|
package/dist/lib.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var api = require('./api-
|
|
4
|
-
var logger = require('./logger-
|
|
5
|
-
var configuration = require('./configuration-
|
|
3
|
+
var api = require('./api-CXL6jp-p.cjs');
|
|
4
|
+
var logger = require('./logger-BBRTTVsQ.cjs');
|
|
5
|
+
var configuration = require('./configuration-Dt5lKW3P.cjs');
|
|
6
6
|
var types = require('./types-CRS-srZK.cjs');
|
|
7
7
|
require('axios');
|
|
8
|
-
require('./lidState-
|
|
8
|
+
require('./lidState-q_XFYg33.cjs');
|
|
9
9
|
require('./authRelay-Dy1qU9td.cjs');
|
|
10
10
|
require('node:crypto');
|
|
11
11
|
require('tweetnacl');
|
|
@@ -13,14 +13,14 @@ require('os');
|
|
|
13
13
|
require('child_process');
|
|
14
14
|
require('node:events');
|
|
15
15
|
require('socket.io-client');
|
|
16
|
-
require('./pushNotifications-
|
|
16
|
+
require('./pushNotifications-CfspRcl-.cjs');
|
|
17
17
|
require('zod');
|
|
18
18
|
require('./index-BOe6dKnL.cjs');
|
|
19
19
|
require('@paralleldrive/cuid2');
|
|
20
20
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
21
21
|
require('./limits-C-a7gr04.cjs');
|
|
22
|
-
require('./time-
|
|
23
|
-
require('./registerCommonHandlers-
|
|
22
|
+
require('./time-gPD_EmA-.cjs');
|
|
23
|
+
require('./registerCommonHandlers-Beun-cQv.cjs');
|
|
24
24
|
require('util');
|
|
25
25
|
require('fs/promises');
|
|
26
26
|
require('crypto');
|
|
@@ -28,17 +28,17 @@ require('path');
|
|
|
28
28
|
require('cross-spawn');
|
|
29
29
|
require('./projectPath-C3ioB4Bu.cjs');
|
|
30
30
|
require('url');
|
|
31
|
-
require('./sync-
|
|
31
|
+
require('./sync-DtWB7RzA.cjs');
|
|
32
32
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
33
|
-
require('./controlClient-
|
|
34
|
-
require('./persistence-
|
|
33
|
+
require('./controlClient-BRk65BRO.cjs');
|
|
34
|
+
require('./persistence-Bl5S3TLB.cjs');
|
|
35
35
|
require('node:fs/promises');
|
|
36
36
|
require('node:fs');
|
|
37
37
|
require('chalk');
|
|
38
38
|
require('node:util');
|
|
39
39
|
require('node:path');
|
|
40
40
|
require('node:os');
|
|
41
|
-
require('./package-
|
|
41
|
+
require('./package-DrY090nZ.cjs');
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
|
package/dist/lib.d.cts
CHANGED
|
@@ -616,6 +616,19 @@ declare const DaemonStateSchema: z$1.ZodObject<{
|
|
|
616
616
|
rpcAvailable: z$1.ZodBoolean;
|
|
617
617
|
detectedAt: z$1.ZodNumber;
|
|
618
618
|
}, z$1.core.$loose>>;
|
|
619
|
+
autoRestart: z$1.ZodOptional<z$1.ZodObject<{
|
|
620
|
+
enabled: z$1.ZodBoolean;
|
|
621
|
+
rpcAvailable: z$1.ZodBoolean;
|
|
622
|
+
detectedAt: z$1.ZodNumber;
|
|
623
|
+
sessions: z$1.ZodRecord<z$1.ZodString, z$1.ZodObject<{
|
|
624
|
+
state: z$1.ZodString;
|
|
625
|
+
reason: z$1.ZodOptional<z$1.ZodString>;
|
|
626
|
+
since: z$1.ZodNumber;
|
|
627
|
+
target: z$1.ZodString;
|
|
628
|
+
offline: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
629
|
+
retryAt: z$1.ZodOptional<z$1.ZodNumber>;
|
|
630
|
+
}, z$1.core.$strip>>;
|
|
631
|
+
}, z$1.core.$loose>>;
|
|
619
632
|
webPanels: z$1.ZodOptional<z$1.ZodObject<{
|
|
620
633
|
panels: z$1.ZodArray<z$1.ZodObject<{
|
|
621
634
|
id: z$1.ZodString;
|
|
@@ -720,6 +733,14 @@ type Metadata = {
|
|
|
720
733
|
* absent = this wrapper cannot tell. "Follow latest" never overrides it.
|
|
721
734
|
*/
|
|
722
735
|
configuredModel?: string | null;
|
|
736
|
+
/**
|
|
737
|
+
* B-844c: the explicit model this wrapper keeps applying to turns that carry
|
|
738
|
+
* no `model` (sticky per-session override, e.g. an earlier pick). null =
|
|
739
|
+
* none, turns run the machine default; absent = this wrapper cannot tell.
|
|
740
|
+
* The web sends `model: null` to clear it when its picker follows the
|
|
741
|
+
* machine config.
|
|
742
|
+
*/
|
|
743
|
+
stickyModel?: string | null;
|
|
723
744
|
operatingModes?: Array<{
|
|
724
745
|
code: string;
|
|
725
746
|
value: string;
|
|
@@ -1024,6 +1045,13 @@ declare class RpcHandlerManager {
|
|
|
1024
1045
|
private getPrefixedMethod;
|
|
1025
1046
|
}
|
|
1026
1047
|
|
|
1048
|
+
/**
|
|
1049
|
+
* Why the CLI dropped a user message it never ran — the `queue-cancel` reason
|
|
1050
|
+
* (B-332). `failed` (B-854): taken off the queue, but the runner could not hand
|
|
1051
|
+
* it to the agent (a pre-flight check or the agent's start failed).
|
|
1052
|
+
*/
|
|
1053
|
+
type QueueDiscardReason = 'cleared' | 'aborted' | 'restarted' | 'failed';
|
|
1054
|
+
|
|
1027
1055
|
/**
|
|
1028
1056
|
* B-509 —— server-side prompt queue drain (pure state machine, no I/O).
|
|
1029
1057
|
*
|
|
@@ -1326,7 +1354,7 @@ declare class ApiSessionClient extends EventEmitter {
|
|
|
1326
1354
|
private pushCommittedMessagesToRelay;
|
|
1327
1355
|
private enqueueMessage;
|
|
1328
1356
|
/** B-332: emit a queue-cancel tombstone, mirroring the web's own signal. */
|
|
1329
|
-
sendQueueCancelReason(localKeys: string[], reason:
|
|
1357
|
+
sendQueueCancelReason(localKeys: string[], reason: QueueDiscardReason): void;
|
|
1330
1358
|
/**
|
|
1331
1359
|
* B-332 site ③: find queued user input this wrapper destroyed (it was still
|
|
1332
1360
|
* in the previous wrapper's in-memory queue when it died) and tell the web.
|
|
@@ -1524,9 +1552,29 @@ declare class ApiSessionClient extends EventEmitter {
|
|
|
1524
1552
|
*/
|
|
1525
1553
|
flush(): Promise<void>;
|
|
1526
1554
|
close(): Promise<void>;
|
|
1555
|
+
/**
|
|
1556
|
+
* B-854: set by close(). The socket's own `disconnect` ("io client
|
|
1557
|
+
* disconnect") must not reconnect a client its owner closed: a runner that
|
|
1558
|
+
* ends without `process.exit` (ACP) stayed alive on that socket — still
|
|
1559
|
+
* "active" for the daemon and the web, with no loop to run anything.
|
|
1560
|
+
*/
|
|
1561
|
+
private closedByClient;
|
|
1527
1562
|
private startSmartReconnect;
|
|
1528
1563
|
}
|
|
1529
1564
|
|
|
1565
|
+
/** What the daemon publishes per behind session (spec §4). */
|
|
1566
|
+
type AutoRestartSessionState = 'waiting' | 'restarting' | 'failed' | 'manual';
|
|
1567
|
+
interface AutoRestartSessionStatus {
|
|
1568
|
+
state: AutoRestartSessionState;
|
|
1569
|
+
reason?: string;
|
|
1570
|
+
since: number;
|
|
1571
|
+
target: string;
|
|
1572
|
+
/** `failed` only: the old wrapper is stopped and no new one came up, so the session is offline (spec §3). */
|
|
1573
|
+
offline?: boolean;
|
|
1574
|
+
/** `failed` + `offline` only: the daemon retries once by itself at this time; absent = left to Restore. */
|
|
1575
|
+
retryAt?: number;
|
|
1576
|
+
}
|
|
1577
|
+
|
|
1530
1578
|
/**
|
|
1531
1579
|
* B-510: machine web panels — local web pages a person may need to look at
|
|
1532
1580
|
* (noVNC, an agent-browser dashboard, Grafana, a dev server), declared ONLY in
|
|
@@ -1945,6 +1993,8 @@ declare class ApiMachineClient {
|
|
|
1945
1993
|
private claudeAuthState;
|
|
1946
1994
|
/** B-587: the machine's hibernation threshold, published as a capability. */
|
|
1947
1995
|
private agentHibernationIdleMs;
|
|
1996
|
+
/** B-852: auto-restart setting + per-session status (null until the daemon installs it). */
|
|
1997
|
+
private autoRestart;
|
|
1948
1998
|
/** B-510: last normalized `webPanels` (null = never set → field not written). */
|
|
1949
1999
|
private webPanels;
|
|
1950
2000
|
private webPanelsSignatureSent;
|
|
@@ -2036,6 +2086,16 @@ declare class ApiMachineClient {
|
|
|
2036
2086
|
*/
|
|
2037
2087
|
setWebPanels(panels: WebPanel[]): Promise<void>;
|
|
2038
2088
|
private publishAgentHibernation;
|
|
2089
|
+
/**
|
|
2090
|
+
* B-852: the machine page's「会话自动更新」switch (`auto-restart-set`) and
|
|
2091
|
+
* the `daemonState.autoRestart` capability + per-session status. Call
|
|
2092
|
+
* before connect().
|
|
2093
|
+
*/
|
|
2094
|
+
setAutoRestartHandlers(initialEnabled: boolean, set: (enabled: boolean) => Promise<boolean>): void;
|
|
2095
|
+
/** B-852: the scheduler's per-session status changed (already signature-deduped). */
|
|
2096
|
+
setAutoRestartSessions(sessions: Record<string, AutoRestartSessionStatus>): Promise<void>;
|
|
2097
|
+
private autoRestartState;
|
|
2098
|
+
private publishAutoRestart;
|
|
2039
2099
|
/** B-276 machine RPCs. Responses always carry `claudeAuth` so the web can refresh in place. */
|
|
2040
2100
|
setClaudeAuthHandlers(handlers: {
|
|
2041
2101
|
probe: () => Promise<ClaudeAuthState>;
|