very-happy-cli 0.2.178 → 0.2.180
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-DCQXHRzT.mjs → AcpBackend-B8Zi30Zh.mjs} +135 -16
- package/dist/{AcpBackend-CDkAQXYf.cjs → AcpBackend-DfRDtMcG.cjs} +135 -16
- package/dist/{AcpSessionManager-DckmUZza.cjs → AcpSessionManager-CASKOnOj.cjs} +38 -4
- package/dist/{AcpSessionManager-BXrQcqwC.mjs → AcpSessionManager-i8Rab0xT.mjs} +38 -4
- package/dist/{BasePermissionHandler-BVlrEhIi.mjs → BasePermissionHandler-26fKbRCm.mjs} +5 -2
- package/dist/{BasePermissionHandler-DyLmKKtO.cjs → BasePermissionHandler-BlM_tfej.cjs} +5 -2
- package/dist/acpSessionResume-B9l54P-X.mjs +67 -0
- package/dist/acpSessionResume-CR5pmgVo.cjs +74 -0
- package/dist/{agentHome-CEp9RMyK.cjs → agentHome-C7Sb7-Tz.cjs} +4 -4
- package/dist/{agentHome-C1xi37as.mjs → agentHome-CmGy0NWv.mjs} +4 -4
- package/dist/{api-JANhFdZV.cjs → api-DM7b1OKj.cjs} +38 -262
- package/dist/{api-Dib0dmqC.mjs → api-Hov8p7CA.mjs} +32 -256
- package/dist/{apiMachine-DNTJidYH.mjs → apiMachine-CwGEhQDT.mjs} +62 -15
- package/dist/{apiMachine-QhK-sKcr.cjs → apiMachine-DkGRj-Ai.cjs} +64 -17
- package/dist/{attachmentContent-bpQTBJ0y.cjs → attachmentContent-CEm13_gF.cjs} +4 -4
- package/dist/{attachmentContent-DkkdpSSJ.mjs → attachmentContent-CIn4iPEk.mjs} +2 -2
- package/dist/{auth-BRjd2esb.mjs → auth-BG1DY0gj.mjs} +5 -5
- package/dist/{auth-DgIV0Cvt.cjs → auth-CBXnm-Mj.cjs} +5 -5
- package/dist/{auth-omWDtgR8.cjs → auth-Dawj7pP5.cjs} +8 -8
- package/dist/{auth-DNct7VUi.mjs → auth-rggxMpEE.mjs} +8 -8
- package/dist/{auto-DKGFOJBo.mjs → auto-CXXLXGeL.mjs} +19 -18
- package/dist/{auto-CI16FZmX.cjs → auto-CbYOfoPS.cjs} +19 -18
- package/dist/{backgroundTaskActivity-BVwJBl02.mjs → backgroundTaskActivity-8PdPxrvy.mjs} +1 -1
- package/dist/{bootstrap-DCQ87Aan.cjs → bootstrap-DoA7okld.cjs} +2 -2
- package/dist/{bootstrap-BUagGC_-.mjs → bootstrap-Dt5I1SOl.mjs} +2 -2
- package/dist/{browser-Dj_DYQEh.mjs → browser-DUNetFT4.mjs} +1 -1
- package/dist/{browser-CSKhc0Bl.cjs → browser-DZ6qRtfH.cjs} +1 -1
- package/dist/{claudeCliPath-U4HHmV4r.cjs → claudeCliPath-GaP3UUz1.cjs} +1 -1
- package/dist/{claudeLocal-CdIVnOZp.cjs → claudeLocal--DNyMOSv.cjs} +8 -7
- package/dist/{claudeLocal-CCCvAeMd.mjs → claudeLocal-OHWQigCl.mjs} +6 -5
- package/dist/{claudeLocalLauncher-BmrpaRYJ.mjs → claudeLocalLauncher-BStvfa7M.mjs} +11 -10
- package/dist/{claudeLocalLauncher-21-xh5gc.cjs → claudeLocalLauncher-BhvPbcyH.cjs} +13 -12
- package/dist/{claudeSessionFork-kYCP1IJB.cjs → claudeSessionFork-Be16vzGc.cjs} +1 -1
- package/dist/{claudeSessionFork-DvxMKAmY.mjs → claudeSessionFork-GAVWhiKG.mjs} +1 -1
- package/dist/{client-C4zKGjiJ.cjs → client-BWjaHKtj.cjs} +2 -2
- package/dist/client-Ca5Pcgy_.mjs +71 -0
- package/dist/{client-CnlkkrZO.mjs → client-CnB7kRCT.mjs} +2 -2
- package/dist/{client-BTX9hsbr.mjs → client-D4uPb1uu.mjs} +3 -3
- package/dist/client-DJplzPjD.cjs +76 -0
- package/dist/{client-Dnza1hgN.cjs → client-D_loZ9IK.cjs} +3 -3
- package/dist/codex/happyMcpStdioBridge.cjs +24 -15
- package/dist/codex/happyMcpStdioBridge.mjs +25 -16
- package/dist/{codexAppServerClient-DvkpQgyv.mjs → codexAppServerClient-CO4G6OS4.mjs} +3 -3
- package/dist/{codexAppServerClient-CRlBWGn3.cjs → codexAppServerClient-PE-12AsW.cjs} +3 -3
- package/dist/{codexCommand-DzxIWXIT.cjs → codexCommand-BNoD1t1C.cjs} +127 -116
- package/dist/{codexCommand-BxjogBzU.mjs → codexCommand-B_xUH79E.mjs} +77 -66
- package/dist/{codexTermination-C28FzlLb.cjs → codexTermination-BmBbizFK.cjs} +7 -2
- package/dist/{codexTermination-ySDNMEhd.mjs → codexTermination-Dx48ma6e.mjs} +7 -2
- package/dist/{config-BFB5uJ4t.cjs → config-CtwEUxUP.cjs} +26 -26
- package/dist/{config-DwfEpFr3.mjs → config-DSu0Blos.mjs} +3 -3
- package/dist/{configuration-4TGMrjul.cjs → configuration-CYO-kPOS.cjs} +1 -1
- package/dist/{configuration-DVrb61aY.mjs → configuration-PxzEJumr.mjs} +1 -1
- package/dist/{connect-C7FPY0PI.mjs → connect-BQrg3TB6.mjs} +15 -15
- package/dist/{connect-QH2VJGBG.cjs → connect-Dq7wndzR.cjs} +28 -28
- package/dist/{context-JoKu0V54.cjs → context-6TP-iz_c.cjs} +1 -1
- package/dist/{context-B3XPVJlj.mjs → context-CJGRRGWW.mjs} +1 -1
- package/dist/{controlClient-BTaZlbC6.cjs → controlClient-Bqv5v5OM.cjs} +3 -3
- package/dist/{controlClient-BYKyGyxj.mjs → controlClient-DoeYovwP.mjs} +4 -4
- package/dist/{createSessionMetadata-8Fuj2-IV.mjs → createSessionMetadata-DDIChCx8.mjs} +2 -2
- package/dist/{createSessionMetadata-B2NynaWZ.cjs → createSessionMetadata-xz767pcG.cjs} +3 -3
- package/dist/{defaultPermissionMode-BEWCqJU-.cjs → defaultPermissionMode-PkZGsQDk.cjs} +2 -2
- package/dist/{defaultPermissionMode-B8kJG9uI.mjs → defaultPermissionMode-i5KzdK09.mjs} +2 -2
- package/dist/{detectCLI-DR9ZaN6B.cjs → detectCLI-BuYR_Qxe.cjs} +4 -4
- package/dist/{deterministicJson-C5ZwZ7hu.mjs → deterministicJson-CTEJDqtS.mjs} +217 -12
- package/dist/{deterministicJson-BjNQsAjO.cjs → deterministicJson-xqA6DaOm.cjs} +222 -16
- package/dist/{doctor-BshRnjLi.cjs → doctor-BrgSlfXn.cjs} +9 -9
- package/dist/{doctor-0BiGwJXk.mjs → doctor-IctjVh9T.mjs} +8 -8
- package/dist/{doctorReadiness-BCZGcN0a.cjs → doctorReadiness-Dl6yRQCy.cjs} +1 -1
- package/dist/{downloadTarget-BN5vZt3K.cjs → downloadTarget-CEb9che-.cjs} +6 -6
- package/dist/{downloadTarget-DJPwAZlu.mjs → downloadTarget-jbOz1egC.mjs} +6 -6
- package/dist/{ensureDaemonRunning-C5QfToCe.cjs → ensureDaemonRunning-D-HyjGIX.cjs} +6 -6
- package/dist/{ensureDaemonRunning-CSmb_mqt.mjs → ensureDaemonRunning-b1e8LCSM.mjs} +5 -5
- package/dist/{handleResumeCommand-BwnUZmbo.cjs → handleResumeCommand-BvWVuRwH.cjs} +23 -7
- package/dist/{handleResumeCommand-CgjpsdDe.mjs → handleResumeCommand-DpaZvm2c.mjs} +22 -6
- package/dist/{index-piJPsTsm.cjs → index-B2p2Mut7.cjs} +259 -53
- package/dist/{index-BehVbAsA.mjs → index-BUNnpGFF.mjs} +256 -50
- package/dist/{index-Bvldtdny.mjs → index-Bsvbgh9e.mjs} +4 -4
- package/dist/{index-BYOZ_8WZ.cjs → index-C64Ufj4D.cjs} +4 -4
- package/dist/{index-Clqlu17M.mjs → index-C6Vn5Eac.mjs} +155 -34
- package/dist/index-CMf5VbzG.mjs +18 -0
- package/dist/index-DmTlDRSL.cjs +24 -0
- package/dist/{index-_l1Sdmbi.cjs → index-Dv0Q48P3.cjs} +156 -33
- package/dist/{index-BRClDe07.cjs → index-F2UejqYs.cjs} +3 -3
- package/dist/{index-BYgfern_.mjs → index-wCbtF4BK.mjs} +3 -3
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-BdvKiOQw.mjs → install-BX3lv3NO.mjs} +1 -1
- package/dist/{install-Cf6AFSWC.cjs → install-BXvf2E3o.cjs} +1 -1
- package/dist/{install-TO4taKW7.cjs → install-C0ANcEAW.cjs} +7 -7
- package/dist/{install-fYWHrPcC.mjs → install-CdzSV7qO.mjs} +3 -3
- package/dist/{installPiTools-BKnXjrVu.cjs → installPiTools-CL_axh_6.cjs} +1 -1
- package/dist/{installTerminalHooks-BQZbvxsZ.cjs → installTerminalHooks-BETLKAtd.cjs} +3 -3
- package/dist/lib.cjs +14 -14
- package/dist/lib.d.cts +239 -2
- package/dist/lib.d.mts +239 -2
- package/dist/lib.mjs +14 -14
- package/dist/{lidState-BeOwj6eW.cjs → lidState-DWGnm2H4.cjs} +1 -1
- package/dist/{lidState-DNMlIhX0.mjs → lidState-bBrmaQd2.mjs} +1 -1
- package/dist/{localHappyAgentAuth-Br-mgogg.cjs → localHappyAgentAuth-DZHQnIW9.cjs} +1 -1
- package/dist/{localHappyAgentAuth-BezKSFDi.mjs → localHappyAgentAuth-Dn1jYDpt.mjs} +1 -1
- package/dist/{logger--vAVtXB_.mjs → logger-BUngm5Xg.mjs} +2 -2
- package/dist/{logger-DXTWlPzP.cjs → logger-CphW5nUE.cjs} +2 -2
- package/dist/machineMetadata-BQm9YTcI.cjs +79 -0
- package/dist/machineMetadata-BXN_bKU3.mjs +68 -0
- package/dist/{main-DoMFJ2Cl.cjs → main-B2UV51nK.cjs} +112 -132
- package/dist/{main-CshDb5-1.mjs → main-DGkdYfEq.mjs} +106 -126
- package/dist/{mcp-pNc1EbQf.cjs → mcp-BFvAEIRz.cjs} +15 -15
- package/dist/{mcp-DKT_lrvQ.mjs → mcp-CbTtbs0f.mjs} +15 -15
- package/dist/{mirrorProtocol-6IFGPpjJ.mjs → mirrorProtocol-BR4luBC0.mjs} +148 -7
- package/dist/{mirrorProtocol-qKflWTX_.cjs → mirrorProtocol-HKPivs5o.cjs} +150 -4
- package/dist/{package-B7B03ejW.mjs → package-7Ld1YMhh.mjs} +8 -7
- package/dist/{package-DY4zTbKS.cjs → package-KhLqBDX9.cjs} +8 -7
- package/dist/panels-C7IVqpJk.mjs +137 -0
- package/dist/panels-Njf6GelF.cjs +142 -0
- package/dist/{peerTools-3R9RUARX.mjs → peerTools-BOlDRyhi.mjs} +60 -10
- package/dist/{peerTools-iy3_6Yc5.cjs → peerTools-DQNlrcqM.cjs} +60 -9
- package/dist/{persistence-BfX72dne.cjs → persistence-9BMYspxG.cjs} +2 -2
- package/dist/{persistence-DTk4sNpd.mjs → persistence-BFUOHW5h.mjs} +3 -3
- package/dist/{piRunnerArgs-CRQVR9o-.cjs → piRunnerArgs-DGaq6VYM.cjs} +8 -2
- package/dist/{piRunnerArgs-AT8QJY7x.mjs → piRunnerArgs-H2pgpA5z.mjs} +7 -1
- package/dist/{piRuntime-BHRT5MKO.cjs → piRuntime-CT5xv_3h.cjs} +2 -2
- package/dist/{piRuntime-E44qTVQ4.mjs → piRuntime-CdN0JAsa.mjs} +2 -2
- package/dist/{piTerminal-hI4WFdWm.cjs → piTerminal-0FBtXTHK.cjs} +18 -18
- package/dist/{piTerminal-De8nbciM.mjs → piTerminal-C4m9YXAV.mjs} +18 -18
- package/dist/processTreeSnapshot-CuLJDNC-.mjs +101 -0
- package/dist/processTreeSnapshot-mDbnuojn.cjs +105 -0
- package/dist/projectPath-C3ioB4Bu.cjs +13 -0
- package/dist/prompt-BOouDaTM.mjs +99 -0
- package/dist/prompt-lgF9IE82.cjs +105 -0
- package/dist/{attachmentLimits-UyFn8fkQ.mjs → pushNotifications-DCiBEVeC.mjs} +307 -3
- package/dist/{attachmentLimits-SqeAHrVC.cjs → pushNotifications-DI92havG.cjs} +308 -2
- package/dist/{index-DFPT4HOO.cjs → query-BETKBrnz.cjs} +25 -5
- package/dist/{index-CEjJnq05.mjs → query-ywZbQUzR.mjs} +26 -3
- package/dist/{rateLimitWindows-XrJiiBpU.mjs → rateLimitWindows-BkfuUB1a.mjs} +1 -1
- package/dist/{rateLimitWindows-Czb7_7cK.cjs → rateLimitWindows-YRIYVdo4.cjs} +1 -1
- package/dist/{registerCommonHandlers-C0_fyBQ0.cjs → registerCommonHandlers-C7a_dUWs.cjs} +30 -30
- package/dist/{registerCommonHandlers-CvIedVRf.mjs → registerCommonHandlers-CTkCvjxt.mjs} +2 -2
- package/dist/{registerKillSessionHandler-DYl7l4Ts.cjs → registerKillSessionHandler-CIsvBrVe.cjs} +6 -6
- package/dist/{registerKillSessionHandler-gwJ5lTf0.mjs → registerKillSessionHandler-CaqqRYq6.mjs} +6 -6
- package/dist/{remoteSessionClient-BRTIOX5b.cjs → remoteSessionClient-D843fkzL.cjs} +5 -5
- package/dist/{remoteSessionClient-DRb2Jr5s.mjs → remoteSessionClient-PP-mOKmw.mjs} +5 -5
- package/dist/{reportProgressTool-B9nCzbkL.cjs → reportProgressTool-14AXr959.cjs} +84 -2
- package/dist/{reportProgressTool-D5tEoXMW.mjs → reportProgressTool-ZOCNjWHr.mjs} +82 -3
- package/dist/{resources-JDPugcDq.cjs → resources-CvIlkzpP.cjs} +30 -0
- package/dist/{resources-BdFBQi8r.mjs → resources-y9jfyO-_.mjs} +30 -0
- package/dist/{run-CKe_WeLW.cjs → run-CAOCYYfT.cjs} +2806 -110
- package/dist/{run-BQ_FGaOL.mjs → run-Dajw2E5j.mjs} +2787 -91
- package/dist/{runClaude-zrrNcQC_.mjs → runClaude-C6oxWYbp.mjs} +49 -47
- package/dist/{runClaude-MHI5IKM-.cjs → runClaude-CRRKt-tm.cjs} +50 -48
- package/dist/{runClaudeDeps-RRw-Nusc.cjs → runClaudeDeps-B1ysqTvx.cjs} +310 -237
- package/dist/{runClaudeDeps-CVBCokOS.mjs → runClaudeDeps-BcZ68cX3.mjs} +297 -226
- package/dist/{runGemini-kipag2ag.mjs → runGemini-D7yKc4wD.mjs} +61 -55
- package/dist/{runGemini-D7Lg9yCr.cjs → runGemini-DtKFXqf-.cjs} +89 -83
- package/dist/{runOpenClaw-C_lRY3Do.mjs → runOpenClaw-C8ilyLP9.mjs} +19 -19
- package/dist/{runOpenClaw-DCcQ0L2N.cjs → runOpenClaw-Cq29mryb.cjs} +20 -20
- package/dist/{sandbox-BSyXFVFp.mjs → sandbox-CbCutma4.mjs} +4 -4
- package/dist/{sandbox-dMwPTmjm.cjs → sandbox-gIj-EuF4.cjs} +4 -4
- package/dist/{selfCheck-DkzDDUsE.cjs → selfCheck-BTGBVthv.cjs} +39 -38
- package/dist/selfCheck-Smt-5Xiq.mjs +85 -0
- package/dist/{send-dxC0miIA.cjs → send-CZf5lLw_.cjs} +8 -8
- package/dist/{send-C-k9nsd3.mjs → send-YZRMQvMJ.mjs} +9 -9
- package/dist/{server-DxoTYNlw.mjs → server-BqwXRzFZ.mjs} +4 -4
- package/dist/{server-B-W6P7Qr.cjs → server-CknFq6xG.cjs} +6 -6
- package/dist/sessionExitLifecycle-CzkLIgNZ.mjs +142 -0
- package/dist/sessionExitLifecycle-DFltxXU8.cjs +148 -0
- package/dist/{sessionLock-DWX6BbiU.cjs → sessionLock-DRZUcKHT.cjs} +38 -5
- package/dist/{sessionLock-DBdtZGOL.mjs → sessionLock-nBXdJxJm.mjs} +36 -5
- package/dist/{sessionOps-BAnr7n8t.cjs → sessionOps-BrGiU9-s.cjs} +10 -5
- package/dist/{sessionOps-BVoXe12O.mjs → sessionOps-C58iDeD5.mjs} +11 -6
- package/dist/{sessionScanner-BtxoeluY.mjs → sessionScanner-Bm57LEXe.mjs} +3 -3
- package/dist/{sessionScanner-CDOYsEUD.cjs → sessionScanner-CaO8bLaG.cjs} +3 -3
- package/dist/{sessions-C3sZJkzI.mjs → sessions-BXyBHo8n.mjs} +40 -18
- package/dist/{sessions-hAitoN-m.cjs → sessions-uzqPCc37.cjs} +39 -16
- package/dist/{setupOfflineReconnection-_eD4cuUT.mjs → setupOfflineReconnection-1Qlek3wl.mjs} +2 -2
- package/dist/{setupOfflineReconnection-C2EeYTFH.cjs → setupOfflineReconnection-DvvVX3TB.cjs} +2 -2
- package/dist/{spawn-Bc9v7pIf.cjs → spawn-DBkodJEO.cjs} +49 -18
- package/dist/{spawn-qNrB2CD_.mjs → spawn-vn93PhYL.mjs} +49 -18
- package/dist/spawnAgents-CgPMWexP.mjs +79 -0
- package/dist/{spawnAgents-BVEaz35W.cjs → spawnAgents-DLNMlhWJ.cjs} +37 -1
- package/dist/{spawnHappyCLI-C2stUioM.mjs → spawnHappyCLI-BjFZc_7V.mjs} +1 -1
- package/dist/{spawnHappyCLI-fzUagkKV.cjs → spawnHappyCLI-DnUZv0X2.cjs} +2 -2
- package/dist/{specialCommands-BJ-nqY4s.cjs → specialCommands-BRufxlqe.cjs} +3 -3
- package/dist/{specialCommands-C6W-rVyh.mjs → specialCommands-D3ND9bdg.mjs} +3 -3
- package/dist/{startFileWatcher-Bqlqjt93.cjs → startFileWatcher-D9cYzZOq.cjs} +1 -1
- package/dist/{startFileWatcher-CR09Snmz.mjs → startFileWatcher-DXJ7yB5v.mjs} +1 -1
- package/dist/startupSessionCreate-kdr3m1uX.cjs +26 -0
- package/dist/startupSessionCreate-uZ6BM0ty.mjs +24 -0
- package/dist/{streamRelay-CJoMk_d2.mjs → streamRelay-DnMCMMfV.mjs} +1 -1
- package/dist/{streamRelay-9kBPpbvU.cjs → streamRelay-Dy6amlzx.cjs} +1 -1
- package/dist/{sync-Dhmtk66S.cjs → sync-Bn-idAoy.cjs} +1 -1
- package/dist/{sync-DbW07iQS.mjs → sync-BvVhDO40.mjs} +1 -1
- package/dist/{systemPrompt-CQcuUmVp.mjs → systemPrompt-CIZcJuJF.mjs} +4 -3
- package/dist/{systemPrompt-3PYi3EUY.cjs → systemPrompt-DlyEk35T.cjs} +4 -3
- package/dist/{teams-DpxLcUU_.cjs → teams-BLeRpDxv.cjs} +8 -8
- package/dist/{teams-CwF4Z2fA.mjs → teams-DLY3B5yi.mjs} +8 -8
- package/dist/{time-A6zR3Iy6.cjs → time-Cjv0zxQO.cjs} +1 -1
- package/dist/{time-BuGWTVP6.mjs → time-D3ETL7Jb.mjs} +1 -1
- package/dist/{titleGenerator-D26gvNaS.cjs → titleGenerator-Cgp5ihFb.cjs} +10 -9
- package/dist/{titleGenerator-BGEzNWC9.mjs → titleGenerator-Uzbd4utr.mjs} +9 -8
- package/dist/{todo-DrZc76H5.mjs → todo-C9Ga-oEM.mjs} +6 -6
- package/dist/{todo-73g3NCIO.cjs → todo-pOMcEECE.cjs} +6 -6
- package/dist/{tools-CxJp4T1T.cjs → tools-BL7Byl_x.cjs} +1 -1
- package/dist/{tools-BtsrQnNS.mjs → tools-Cho7iIWf.mjs} +1 -1
- package/dist/{uninstall-DWNYvewQ.cjs → uninstall-CbayEVoV.cjs} +6 -6
- package/dist/{uninstall-DOb2mTwV.mjs → uninstall-CvZHVY9C.mjs} +3 -3
- package/dist/webPanels-B2_C2-3g.mjs +49 -0
- package/dist/webPanels-FCgFKvVe.cjs +53 -0
- package/package.json +8 -7
- package/dist/machineMetadata-B1H9gNbN.mjs +0 -39
- package/dist/machineMetadata-DcUupMje.cjs +0 -42
- package/dist/messageBuffer-BWlGgR3A.mjs +0 -71
- package/dist/messageBuffer-fJMH6uY8.cjs +0 -73
- package/dist/projectPath-ChLhdOyt.cjs +0 -13
- package/dist/selfCheck-CF7XGJPb.mjs +0 -84
- package/dist/sessionModeFile-ByLbXTbg.mjs +0 -32
- package/dist/sessionModeFile-CLLdidiJ.cjs +0 -36
- package/dist/spawnAgents-Bw6j4tqz.mjs +0 -45
|
@@ -1,80 +1,83 @@
|
|
|
1
1
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
2
2
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { a as PROJECT_SESSION_CAPABILITY } from './index-C6Vn5Eac.mjs';
|
|
5
|
+
import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-CTEJDqtS.mjs';
|
|
6
|
+
import { s as sharedProjectsClient } from './client-Ca5Pcgy_.mjs';
|
|
4
7
|
import { join } from 'node:path';
|
|
5
|
-
import { c as connectionState, A as ApiClient } from './api-
|
|
6
|
-
import { l as logger } from './logger
|
|
7
|
-
import { r as readSettings } from './persistence-
|
|
8
|
-
import { c as createSessionMetadata } from './createSessionMetadata-
|
|
8
|
+
import { c as connectionState, A as ApiClient } from './api-Hov8p7CA.mjs';
|
|
9
|
+
import { l as logger } from './logger-BUngm5Xg.mjs';
|
|
10
|
+
import { r as readSettings } from './persistence-BFUOHW5h.mjs';
|
|
11
|
+
import { c as createSessionMetadata } from './createSessionMetadata-DDIChCx8.mjs';
|
|
9
12
|
import { e as errorLogMetadata, c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
|
|
10
|
-
import { g as getInitialMachineMetadata } from './machineMetadata-
|
|
11
|
-
import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-
|
|
12
|
-
import { h as hashObject, s as startHappyServer } from './deterministicJson-C5ZwZ7hu.mjs';
|
|
13
|
+
import { g as getInitialMachineMetadata } from './machineMetadata-BXN_bKU3.mjs';
|
|
14
|
+
import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-CaqqRYq6.mjs';
|
|
13
15
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
14
|
-
import { M as MessageBuffer } from './
|
|
15
|
-
import { n as notifyDaemonSessionStarted } from './controlClient-
|
|
16
|
+
import { M as MessageBuffer } from './sessionExitLifecycle-CzkLIgNZ.mjs';
|
|
17
|
+
import { n as notifyDaemonSessionStarted } from './controlClient-DoeYovwP.mjs';
|
|
16
18
|
import { e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
|
|
17
|
-
import { s as setupOfflineReconnection } from './setupOfflineReconnection-
|
|
18
|
-
import { A as AcpBackend, i as isAgentExitError } from './AcpBackend-
|
|
19
|
+
import { s as setupOfflineReconnection } from './setupOfflineReconnection-1Qlek3wl.mjs';
|
|
20
|
+
import { A as AcpBackend, i as isAgentExitError } from './AcpBackend-B8Zi30Zh.mjs';
|
|
19
21
|
import { a as GEMINI_API_KEY_ENV, b as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, C as CHANGE_TITLE_INSTRUCTION } from './constants-BC4St0xd.mjs';
|
|
20
|
-
import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-
|
|
21
|
-
import { B as BasePermissionHandler } from './BasePermissionHandler-
|
|
22
|
-
import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-
|
|
23
|
-
import 'axios';
|
|
24
|
-
import './lidState-DNMlIhX0.mjs';
|
|
25
|
-
import 'os';
|
|
26
|
-
import 'child_process';
|
|
27
|
-
import 'node:events';
|
|
28
|
-
import 'socket.io-client';
|
|
29
|
-
import './attachmentLimits-UyFn8fkQ.mjs';
|
|
22
|
+
import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-DSu0Blos.mjs';
|
|
23
|
+
import { B as BasePermissionHandler } from './BasePermissionHandler-26fKbRCm.mjs';
|
|
24
|
+
import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-Dx48ma6e.mjs';
|
|
30
25
|
import 'zod';
|
|
31
|
-
import './index-Clqlu17M.mjs';
|
|
32
26
|
import '@paralleldrive/cuid2';
|
|
33
|
-
import './
|
|
34
|
-
import './
|
|
35
|
-
import './
|
|
27
|
+
import './prompt-BOouDaTM.mjs';
|
|
28
|
+
import './reportProgressTool-ZOCNjWHr.mjs';
|
|
29
|
+
import './client-CnB7kRCT.mjs';
|
|
30
|
+
import './configuration-PxzEJumr.mjs';
|
|
36
31
|
import 'node:fs';
|
|
37
32
|
import 'node:os';
|
|
38
|
-
import './package-
|
|
33
|
+
import './package-7Ld1YMhh.mjs';
|
|
39
34
|
import 'node:fs/promises';
|
|
40
|
-
import './registerCommonHandlers-CvIedVRf.mjs';
|
|
41
|
-
import 'util';
|
|
42
|
-
import 'fs/promises';
|
|
43
|
-
import 'crypto';
|
|
44
|
-
import 'path';
|
|
45
|
-
import 'cross-spawn';
|
|
46
|
-
import './sync-DbW07iQS.mjs';
|
|
47
|
-
import './backgroundTaskActivity-BVwJBl02.mjs';
|
|
48
|
-
import 'chalk';
|
|
49
|
-
import 'node:util';
|
|
50
|
-
import './detectCLI-CSGMlV51.mjs';
|
|
51
|
-
import 'fs';
|
|
52
|
-
import './localHappyAgentAuth-BezKSFDi.mjs';
|
|
53
|
-
import 'tweetnacl';
|
|
54
|
-
import './types-CkqAACXx.mjs';
|
|
55
|
-
import './client-BTX9hsbr.mjs';
|
|
56
|
-
import './context-B3XPVJlj.mjs';
|
|
57
|
-
import './sessionOps-BVoXe12O.mjs';
|
|
58
|
-
import './resources-BdFBQi8r.mjs';
|
|
59
|
-
import './tools-BtsrQnNS.mjs';
|
|
60
|
-
import './reportProgressTool-D5tEoXMW.mjs';
|
|
61
|
-
import './client-CnlkkrZO.mjs';
|
|
62
35
|
import './precheckCompat-DeEbilbr.mjs';
|
|
63
36
|
import './agentGuidance-BDYt2Qy2.mjs';
|
|
64
37
|
import './trimIdent-BAjmv_TG.mjs';
|
|
65
|
-
import './
|
|
38
|
+
import './client-D4uPb1uu.mjs';
|
|
39
|
+
import './context-CJGRRGWW.mjs';
|
|
40
|
+
import './sessionOps-C58iDeD5.mjs';
|
|
41
|
+
import 'axios';
|
|
42
|
+
import './time-D3ETL7Jb.mjs';
|
|
43
|
+
import 'socket.io-client';
|
|
44
|
+
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
45
|
+
import './resources-y9jfyO-_.mjs';
|
|
46
|
+
import './tools-Cho7iIWf.mjs';
|
|
47
|
+
import './peerTools-BOlDRyhi.mjs';
|
|
66
48
|
import './ids-DU6sLx4C.mjs';
|
|
67
|
-
import './remoteSessionClient-
|
|
49
|
+
import './remoteSessionClient-PP-mOKmw.mjs';
|
|
68
50
|
import '@modelcontextprotocol/sdk/server/mcp.js';
|
|
69
51
|
import 'node:http';
|
|
70
52
|
import '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
71
|
-
import './
|
|
53
|
+
import './limits-DIo7rEBR.mjs';
|
|
54
|
+
import './downloadTarget-jbOz1egC.mjs';
|
|
72
55
|
import './terminals-Dlg0x3nY.mjs';
|
|
73
56
|
import 'node:child_process';
|
|
74
57
|
import './terminalTitleSuggest-CeKsX_V6.mjs';
|
|
75
58
|
import './tmuxSocket-B8Yx20sT.mjs';
|
|
76
|
-
import './bootstrap-
|
|
59
|
+
import './bootstrap-Dt5I1SOl.mjs';
|
|
60
|
+
import './webPanels-B2_C2-3g.mjs';
|
|
61
|
+
import './pushNotifications-DCiBEVeC.mjs';
|
|
77
62
|
import './previewPath-CXN4Vag0.mjs';
|
|
63
|
+
import 'crypto';
|
|
64
|
+
import './lidState-bBrmaQd2.mjs';
|
|
65
|
+
import 'os';
|
|
66
|
+
import 'child_process';
|
|
67
|
+
import 'node:events';
|
|
68
|
+
import './registerCommonHandlers-CTkCvjxt.mjs';
|
|
69
|
+
import 'util';
|
|
70
|
+
import 'fs/promises';
|
|
71
|
+
import 'path';
|
|
72
|
+
import 'cross-spawn';
|
|
73
|
+
import './sync-BvVhDO40.mjs';
|
|
74
|
+
import 'chalk';
|
|
75
|
+
import 'node:util';
|
|
76
|
+
import './detectCLI-CSGMlV51.mjs';
|
|
77
|
+
import 'fs';
|
|
78
|
+
import './localHappyAgentAuth-Dn1jYDpt.mjs';
|
|
79
|
+
import 'tweetnacl';
|
|
80
|
+
import './types-CkqAACXx.mjs';
|
|
78
81
|
import 'url';
|
|
79
82
|
import '@agentclientprotocol/sdk';
|
|
80
83
|
import './processTree-CP5IvQ2Z.mjs';
|
|
@@ -1005,7 +1008,8 @@ async function runGemini(opts) {
|
|
|
1005
1008
|
flavor: "gemini",
|
|
1006
1009
|
machineId,
|
|
1007
1010
|
startedBy: opts.startedBy,
|
|
1008
|
-
sandbox: sandboxConfig
|
|
1011
|
+
sandbox: sandboxConfig,
|
|
1012
|
+
capabilities: [PROJECT_SESSION_CAPABILITY]
|
|
1009
1013
|
});
|
|
1010
1014
|
const response = await api.getOrCreateSession({ tag: sessionTag, metadata, state });
|
|
1011
1015
|
let session;
|
|
@@ -1265,7 +1269,7 @@ async function runGemini(opts) {
|
|
|
1265
1269
|
}
|
|
1266
1270
|
process.stdin.setEncoding("utf8");
|
|
1267
1271
|
}
|
|
1268
|
-
const happyServer = await startHappyServer(session);
|
|
1272
|
+
const happyServer = await startHappyServer(session, { push: { sendAttention: (input) => api.push().sendAttention(input) } });
|
|
1269
1273
|
const bridgeCommand = join(projectPath(), "bin", "very-happy-mcp.mjs");
|
|
1270
1274
|
const mcpServers = {
|
|
1271
1275
|
happy: {
|
|
@@ -1498,6 +1502,7 @@ async function runGemini(opts) {
|
|
|
1498
1502
|
});
|
|
1499
1503
|
}
|
|
1500
1504
|
let first = true;
|
|
1505
|
+
const projectInjector = createProjectInjector({ client: sharedProjectsClient(), sessionId: () => session?.sessionId, metadata: () => session?.getMetadata?.() ?? null, agent: "gemini" });
|
|
1501
1506
|
try {
|
|
1502
1507
|
let currentModeHash = null;
|
|
1503
1508
|
let pending = null;
|
|
@@ -1628,7 +1633,8 @@ async function runGemini(opts) {
|
|
|
1628
1633
|
if (!geminiBackend || !acpSessionId) {
|
|
1629
1634
|
throw new Error("Gemini backend or session not initialized");
|
|
1630
1635
|
}
|
|
1631
|
-
|
|
1636
|
+
if (injectHistoryContext) projectInjector.reset();
|
|
1637
|
+
let promptToSend = await projectInjector.decorate(message.message);
|
|
1632
1638
|
if (injectHistoryContext && conversationHistory.hasHistory()) {
|
|
1633
1639
|
const historyContext = conversationHistory.getContextForNewSession();
|
|
1634
1640
|
promptToSend = historyContext + promptToSend;
|
|
@@ -3,80 +3,83 @@
|
|
|
3
3
|
var ink = require('ink');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
|
+
var index = require('./index-Dv0Q48P3.cjs');
|
|
7
|
+
var deterministicJson = require('./deterministicJson-xqA6DaOm.cjs');
|
|
8
|
+
var client = require('./client-DJplzPjD.cjs');
|
|
6
9
|
var path = require('node:path');
|
|
7
|
-
var api = require('./api-
|
|
8
|
-
var logger = require('./logger-
|
|
9
|
-
var persistence = require('./persistence-
|
|
10
|
-
var createSessionMetadata = require('./createSessionMetadata-
|
|
10
|
+
var api = require('./api-DM7b1OKj.cjs');
|
|
11
|
+
var logger = require('./logger-CphW5nUE.cjs');
|
|
12
|
+
var persistence = require('./persistence-9BMYspxG.cjs');
|
|
13
|
+
var createSessionMetadata = require('./createSessionMetadata-xz767pcG.cjs');
|
|
11
14
|
var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
12
|
-
var machineMetadata = require('./machineMetadata-
|
|
13
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var controlClient = require('./controlClient-BTaZlbC6.cjs');
|
|
15
|
+
var machineMetadata = require('./machineMetadata-BQm9YTcI.cjs');
|
|
16
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-CIsvBrVe.cjs');
|
|
17
|
+
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
18
|
+
var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
|
|
19
|
+
var controlClient = require('./controlClient-Bqv5v5OM.cjs');
|
|
18
20
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
19
|
-
var setupOfflineReconnection = require('./setupOfflineReconnection-
|
|
20
|
-
var AcpBackend = require('./AcpBackend-
|
|
21
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-DvvVX3TB.cjs');
|
|
22
|
+
var AcpBackend = require('./AcpBackend-DfRDtMcG.cjs');
|
|
21
23
|
var constants = require('./constants-VJ0N6WuG.cjs');
|
|
22
|
-
var config = require('./config-
|
|
23
|
-
var BasePermissionHandler = require('./BasePermissionHandler-
|
|
24
|
-
var codexTermination = require('./codexTermination-
|
|
25
|
-
require('axios');
|
|
26
|
-
require('./lidState-BeOwj6eW.cjs');
|
|
27
|
-
require('os');
|
|
28
|
-
require('child_process');
|
|
29
|
-
require('node:events');
|
|
30
|
-
require('socket.io-client');
|
|
31
|
-
require('./attachmentLimits-SqeAHrVC.cjs');
|
|
24
|
+
var config = require('./config-CtwEUxUP.cjs');
|
|
25
|
+
var BasePermissionHandler = require('./BasePermissionHandler-BlM_tfej.cjs');
|
|
26
|
+
var codexTermination = require('./codexTermination-BmBbizFK.cjs');
|
|
32
27
|
require('zod');
|
|
33
|
-
require('./index-_l1Sdmbi.cjs');
|
|
34
28
|
require('@paralleldrive/cuid2');
|
|
35
|
-
require('./
|
|
36
|
-
require('./
|
|
37
|
-
require('./
|
|
29
|
+
require('./prompt-lgF9IE82.cjs');
|
|
30
|
+
require('./reportProgressTool-14AXr959.cjs');
|
|
31
|
+
require('./client-BWjaHKtj.cjs');
|
|
32
|
+
require('./configuration-CYO-kPOS.cjs');
|
|
38
33
|
require('node:fs');
|
|
39
34
|
require('node:os');
|
|
40
|
-
require('./package-
|
|
35
|
+
require('./package-KhLqBDX9.cjs');
|
|
41
36
|
require('node:fs/promises');
|
|
42
|
-
require('./registerCommonHandlers-C0_fyBQ0.cjs');
|
|
43
|
-
require('util');
|
|
44
|
-
require('fs/promises');
|
|
45
|
-
require('crypto');
|
|
46
|
-
require('path');
|
|
47
|
-
require('cross-spawn');
|
|
48
|
-
require('./sync-Dhmtk66S.cjs');
|
|
49
|
-
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
50
|
-
require('chalk');
|
|
51
|
-
require('node:util');
|
|
52
|
-
require('./detectCLI-DR9ZaN6B.cjs');
|
|
53
|
-
require('fs');
|
|
54
|
-
require('./localHappyAgentAuth-Br-mgogg.cjs');
|
|
55
|
-
require('tweetnacl');
|
|
56
|
-
require('./types-CRS-srZK.cjs');
|
|
57
|
-
require('./client-Dnza1hgN.cjs');
|
|
58
|
-
require('./context-JoKu0V54.cjs');
|
|
59
|
-
require('./sessionOps-BAnr7n8t.cjs');
|
|
60
|
-
require('./resources-JDPugcDq.cjs');
|
|
61
|
-
require('./tools-CxJp4T1T.cjs');
|
|
62
|
-
require('./reportProgressTool-B9nCzbkL.cjs');
|
|
63
|
-
require('./client-C4zKGjiJ.cjs');
|
|
64
37
|
require('./precheckCompat-CWOi5c9L.cjs');
|
|
65
38
|
require('./agentGuidance-BtBx2xxE.cjs');
|
|
66
39
|
require('./trimIdent-4gvk9Wk6.cjs');
|
|
67
|
-
require('./
|
|
40
|
+
require('./client-D_loZ9IK.cjs');
|
|
41
|
+
require('./context-6TP-iz_c.cjs');
|
|
42
|
+
require('./sessionOps-BrGiU9-s.cjs');
|
|
43
|
+
require('axios');
|
|
44
|
+
require('./time-Cjv0zxQO.cjs');
|
|
45
|
+
require('socket.io-client');
|
|
46
|
+
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
47
|
+
require('./resources-CvIlkzpP.cjs');
|
|
48
|
+
require('./tools-BL7Byl_x.cjs');
|
|
49
|
+
require('./peerTools-DQNlrcqM.cjs');
|
|
68
50
|
require('./ids-B6ZC0HGt.cjs');
|
|
69
|
-
require('./remoteSessionClient-
|
|
51
|
+
require('./remoteSessionClient-D843fkzL.cjs');
|
|
70
52
|
require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
71
53
|
require('node:http');
|
|
72
54
|
require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
73
|
-
require('./
|
|
55
|
+
require('./limits-C-a7gr04.cjs');
|
|
56
|
+
require('./downloadTarget-CEb9che-.cjs');
|
|
74
57
|
require('./terminals-B_bfC9c2.cjs');
|
|
75
58
|
require('node:child_process');
|
|
76
59
|
require('./terminalTitleSuggest-DhvRFX3H.cjs');
|
|
77
60
|
require('./tmuxSocket-D-Xt6Vn-.cjs');
|
|
78
|
-
require('./bootstrap-
|
|
61
|
+
require('./bootstrap-DoA7okld.cjs');
|
|
62
|
+
require('./webPanels-FCgFKvVe.cjs');
|
|
63
|
+
require('./pushNotifications-DI92havG.cjs');
|
|
79
64
|
require('./previewPath-B0rBdhy1.cjs');
|
|
65
|
+
require('crypto');
|
|
66
|
+
require('./lidState-DWGnm2H4.cjs');
|
|
67
|
+
require('os');
|
|
68
|
+
require('child_process');
|
|
69
|
+
require('node:events');
|
|
70
|
+
require('./registerCommonHandlers-C7a_dUWs.cjs');
|
|
71
|
+
require('util');
|
|
72
|
+
require('fs/promises');
|
|
73
|
+
require('path');
|
|
74
|
+
require('cross-spawn');
|
|
75
|
+
require('./sync-Bn-idAoy.cjs');
|
|
76
|
+
require('chalk');
|
|
77
|
+
require('node:util');
|
|
78
|
+
require('./detectCLI-BuYR_Qxe.cjs');
|
|
79
|
+
require('fs');
|
|
80
|
+
require('./localHappyAgentAuth-DZHQnIW9.cjs');
|
|
81
|
+
require('tweetnacl');
|
|
82
|
+
require('./types-CRS-srZK.cjs');
|
|
80
83
|
require('url');
|
|
81
84
|
require('@agentclientprotocol/sdk');
|
|
82
85
|
require('./processTree-CMHWlVse.cjs');
|
|
@@ -1007,7 +1010,8 @@ async function runGemini(opts) {
|
|
|
1007
1010
|
flavor: "gemini",
|
|
1008
1011
|
machineId,
|
|
1009
1012
|
startedBy: opts.startedBy,
|
|
1010
|
-
sandbox: sandboxConfig
|
|
1013
|
+
sandbox: sandboxConfig,
|
|
1014
|
+
capabilities: [index.PROJECT_SESSION_CAPABILITY]
|
|
1011
1015
|
});
|
|
1012
1016
|
const response = await api$1.getOrCreateSession({ tag: sessionTag, metadata, state });
|
|
1013
1017
|
let session;
|
|
@@ -1103,7 +1107,7 @@ async function runGemini(opts) {
|
|
|
1103
1107
|
currentModel = messageModel;
|
|
1104
1108
|
if (previousModel !== messageModel) {
|
|
1105
1109
|
updateDisplayedModel(messageModel, true);
|
|
1106
|
-
messageBuffer
|
|
1110
|
+
messageBuffer.addMessage(`Model changed to: ${messageModel}`, "system");
|
|
1107
1111
|
logger.logger.debug(`[Gemini] Model changed from ${previousModel} to ${messageModel}`);
|
|
1108
1112
|
}
|
|
1109
1113
|
}
|
|
@@ -1213,7 +1217,7 @@ async function runGemini(opts) {
|
|
|
1213
1217
|
};
|
|
1214
1218
|
session.rpcHandlerManager.registerHandler("abort", handleAbort);
|
|
1215
1219
|
registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, () => handleKillSession("archive"), session, { processSignals: true, onSignal: () => handleKillSession("offline") });
|
|
1216
|
-
const messageBuffer
|
|
1220
|
+
const messageBuffer = new sessionExitLifecycle.MessageBuffer();
|
|
1217
1221
|
const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
|
|
1218
1222
|
let inkInstance = null;
|
|
1219
1223
|
let displayedModel = config.getInitialGeminiModel();
|
|
@@ -1232,7 +1236,7 @@ async function runGemini(opts) {
|
|
|
1232
1236
|
}
|
|
1233
1237
|
if (hasTTY && oldModel !== model) {
|
|
1234
1238
|
logger.logger.debug(`[gemini] Adding model update message to buffer: [MODEL:${model}]`);
|
|
1235
|
-
messageBuffer
|
|
1239
|
+
messageBuffer.addMessage(`[MODEL:${model}]`, "system");
|
|
1236
1240
|
} else if (hasTTY) {
|
|
1237
1241
|
logger.logger.debug(`[gemini] Model unchanged, skipping update message`);
|
|
1238
1242
|
}
|
|
@@ -1242,7 +1246,7 @@ async function runGemini(opts) {
|
|
|
1242
1246
|
const DisplayComponent = () => {
|
|
1243
1247
|
const currentModelValue = displayedModel || "gemini-2.5-pro";
|
|
1244
1248
|
return React.createElement(GeminiDisplay, {
|
|
1245
|
-
messageBuffer
|
|
1249
|
+
messageBuffer,
|
|
1246
1250
|
logPath: process.env.DEBUG ? logger.logger.getLogPath() : void 0,
|
|
1247
1251
|
currentModel: currentModelValue,
|
|
1248
1252
|
onExit: async () => {
|
|
@@ -1258,7 +1262,7 @@ async function runGemini(opts) {
|
|
|
1258
1262
|
});
|
|
1259
1263
|
const initialModelName = displayedModel || "gemini-2.5-pro";
|
|
1260
1264
|
logger.logger.debug(`[gemini] Sending initial model to UI: ${initialModelName}`);
|
|
1261
|
-
messageBuffer
|
|
1265
|
+
messageBuffer.addMessage(`[MODEL:${initialModelName}]`, "system");
|
|
1262
1266
|
}
|
|
1263
1267
|
if (hasTTY) {
|
|
1264
1268
|
process.stdin.resume();
|
|
@@ -1267,7 +1271,7 @@ async function runGemini(opts) {
|
|
|
1267
1271
|
}
|
|
1268
1272
|
process.stdin.setEncoding("utf8");
|
|
1269
1273
|
}
|
|
1270
|
-
const happyServer = await deterministicJson.startHappyServer(session);
|
|
1274
|
+
const happyServer = await deterministicJson.startHappyServer(session, { push: { sendAttention: (input) => api$1.push().sendAttention(input) } });
|
|
1271
1275
|
const bridgeCommand = path.join(projectPath.projectPath(), "bin", "very-happy-mcp.mjs");
|
|
1272
1276
|
const mcpServers = {
|
|
1273
1277
|
happy: {
|
|
@@ -1297,12 +1301,12 @@ async function runGemini(opts) {
|
|
|
1297
1301
|
case "model-output":
|
|
1298
1302
|
if (msg.textDelta) {
|
|
1299
1303
|
if (!isResponseInProgress) {
|
|
1300
|
-
messageBuffer
|
|
1301
|
-
messageBuffer
|
|
1304
|
+
messageBuffer.removeLastMessage("system");
|
|
1305
|
+
messageBuffer.addMessage(msg.textDelta, "assistant");
|
|
1302
1306
|
isResponseInProgress = true;
|
|
1303
1307
|
logger.logger.debug(`[gemini] Started new response, first chunk length: ${msg.textDelta.length}`);
|
|
1304
1308
|
} else {
|
|
1305
|
-
messageBuffer
|
|
1309
|
+
messageBuffer.updateLastMessage(msg.textDelta, "assistant");
|
|
1306
1310
|
logger.logger.debug(`[gemini] Updated response, chunk length: ${msg.textDelta.length}, total accumulated: ${accumulatedResponse.length + msg.textDelta.length}`);
|
|
1307
1311
|
}
|
|
1308
1312
|
accumulatedResponse += msg.textDelta;
|
|
@@ -1329,7 +1333,7 @@ async function runGemini(opts) {
|
|
|
1329
1333
|
});
|
|
1330
1334
|
taskStartedSent = true;
|
|
1331
1335
|
}
|
|
1332
|
-
messageBuffer
|
|
1336
|
+
messageBuffer.addMessage("Thinking...", "system");
|
|
1333
1337
|
} else if (msg.status === "idle" || msg.status === "stopped") {
|
|
1334
1338
|
reasoningProcessor.complete();
|
|
1335
1339
|
}
|
|
@@ -1342,7 +1346,7 @@ async function runGemini(opts) {
|
|
|
1342
1346
|
if (isInvestigationTool && msg.args && typeof msg.args === "object" && "objective" in msg.args) {
|
|
1343
1347
|
logger.logger.debug("[gemini] Investigation objective received:", contentLogMetadata.contentLogMetadata(msg.args.objective));
|
|
1344
1348
|
}
|
|
1345
|
-
messageBuffer
|
|
1349
|
+
messageBuffer.addMessage(`Executing: ${msg.toolName}${toolArgs ? ` ${toolArgs}${toolArgs.length >= 100 ? "..." : ""}` : ""}`, "tool");
|
|
1346
1350
|
session.sendAgentMessage("gemini", {
|
|
1347
1351
|
type: "tool-call",
|
|
1348
1352
|
name: msg.toolName,
|
|
@@ -1367,12 +1371,12 @@ async function runGemini(opts) {
|
|
|
1367
1371
|
if (isError) {
|
|
1368
1372
|
const errorMsg = msg.result.error || "Tool call failed";
|
|
1369
1373
|
logger.logger.debug("[gemini] Tool call error received:", contentLogMetadata.contentLogMetadata(errorMsg));
|
|
1370
|
-
messageBuffer
|
|
1374
|
+
messageBuffer.addMessage(`Error: ${errorMsg}`, "status");
|
|
1371
1375
|
} else {
|
|
1372
1376
|
if (resultSize > 1e3) {
|
|
1373
1377
|
logger.logger.debug(`[gemini] Large tool result received (${resultSize} bytes)`);
|
|
1374
1378
|
}
|
|
1375
|
-
messageBuffer
|
|
1379
|
+
messageBuffer.addMessage(`Result: ${truncatedResult}`, "result");
|
|
1376
1380
|
}
|
|
1377
1381
|
session.sendAgentMessage("gemini", {
|
|
1378
1382
|
type: "tool-result",
|
|
@@ -1382,7 +1386,7 @@ async function runGemini(opts) {
|
|
|
1382
1386
|
});
|
|
1383
1387
|
break;
|
|
1384
1388
|
case "fs-edit":
|
|
1385
|
-
messageBuffer
|
|
1389
|
+
messageBuffer.addMessage(`File edit: ${msg.description}`, "tool");
|
|
1386
1390
|
diffProcessor.processFsEdit(msg.path || "", msg.description, msg.diff);
|
|
1387
1391
|
session.sendAgentMessage("gemini", {
|
|
1388
1392
|
type: "file-edit",
|
|
@@ -1403,7 +1407,7 @@ async function runGemini(opts) {
|
|
|
1403
1407
|
}
|
|
1404
1408
|
break;
|
|
1405
1409
|
case "terminal-output":
|
|
1406
|
-
messageBuffer
|
|
1410
|
+
messageBuffer.addMessage(msg.data, "result");
|
|
1407
1411
|
session.sendAgentMessage("gemini", {
|
|
1408
1412
|
type: "terminal-output",
|
|
1409
1413
|
data: msg.data,
|
|
@@ -1425,7 +1429,7 @@ async function runGemini(opts) {
|
|
|
1425
1429
|
const callId = execApprovalMsg.call_id || execApprovalMsg.callId || node_crypto.randomUUID();
|
|
1426
1430
|
const { call_id, type, ...inputs } = execApprovalMsg;
|
|
1427
1431
|
logger.logger.debug(`[gemini] Exec approval request received: ${callId}`);
|
|
1428
|
-
messageBuffer
|
|
1432
|
+
messageBuffer.addMessage(`Exec approval requested: ${callId}`, "tool");
|
|
1429
1433
|
session.sendAgentMessage("gemini", {
|
|
1430
1434
|
type: "tool-call",
|
|
1431
1435
|
name: "GeminiBash",
|
|
@@ -1441,7 +1445,7 @@ async function runGemini(opts) {
|
|
|
1441
1445
|
const { call_id: patchCallIdVar, type: patchType, auto_approved, changes } = patchBeginMsg;
|
|
1442
1446
|
const changeCount = changes ? Object.keys(changes).length : 0;
|
|
1443
1447
|
const filesMsg = changeCount === 1 ? "1 file" : `${changeCount} files`;
|
|
1444
|
-
messageBuffer
|
|
1448
|
+
messageBuffer.addMessage(`Modifying ${filesMsg}...`, "tool");
|
|
1445
1449
|
logger.logger.debug(`[gemini] Patch apply begin: ${patchCallId}, files: ${changeCount}`);
|
|
1446
1450
|
session.sendAgentMessage("gemini", {
|
|
1447
1451
|
type: "tool-call",
|
|
@@ -1461,10 +1465,10 @@ async function runGemini(opts) {
|
|
|
1461
1465
|
const { call_id: patchEndCallIdVar, type: patchEndType, stdout, stderr, success } = patchEndMsg;
|
|
1462
1466
|
if (success) {
|
|
1463
1467
|
const message = stdout || "Files modified successfully";
|
|
1464
|
-
messageBuffer
|
|
1468
|
+
messageBuffer.addMessage(message.substring(0, 200), "result");
|
|
1465
1469
|
} else {
|
|
1466
1470
|
const errorMsg = stderr || "Failed to modify files";
|
|
1467
|
-
messageBuffer
|
|
1471
|
+
messageBuffer.addMessage(`Error: ${errorMsg.substring(0, 200)}`, "result");
|
|
1468
1472
|
}
|
|
1469
1473
|
logger.logger.debug(`[gemini] Patch apply end: ${patchEndCallId}, success: ${success}`);
|
|
1470
1474
|
session.sendAgentMessage("gemini", {
|
|
@@ -1487,7 +1491,7 @@ async function runGemini(opts) {
|
|
|
1487
1491
|
logger.logger.debug("[gemini] Thinking chunk received:", contentLogMetadata.contentLogMetadata(thinkingText));
|
|
1488
1492
|
if (!thinkingText.startsWith("**")) {
|
|
1489
1493
|
const thinkingPreview = thinkingText.substring(0, 100);
|
|
1490
|
-
messageBuffer
|
|
1494
|
+
messageBuffer.updateLastMessage(`[Thinking] ${thinkingPreview}...`, "system");
|
|
1491
1495
|
}
|
|
1492
1496
|
}
|
|
1493
1497
|
session.sendAgentMessage("gemini", {
|
|
@@ -1500,6 +1504,7 @@ async function runGemini(opts) {
|
|
|
1500
1504
|
});
|
|
1501
1505
|
}
|
|
1502
1506
|
let first = true;
|
|
1507
|
+
const projectInjector = deterministicJson.createProjectInjector({ client: client.sharedProjectsClient(), sessionId: () => session?.sessionId, metadata: () => session?.getMetadata?.() ?? null, agent: "gemini" });
|
|
1503
1508
|
try {
|
|
1504
1509
|
let currentModeHash = null;
|
|
1505
1510
|
let pending = null;
|
|
@@ -1533,7 +1538,7 @@ async function runGemini(opts) {
|
|
|
1533
1538
|
let restartAfterExit = false;
|
|
1534
1539
|
currentModeHash = message.hash;
|
|
1535
1540
|
const userMessageToShow = message.mode?.originalUserMessage || message.message;
|
|
1536
|
-
messageBuffer
|
|
1541
|
+
messageBuffer.addMessage(userMessageToShow, "user");
|
|
1537
1542
|
isProcessingMessage = true;
|
|
1538
1543
|
try {
|
|
1539
1544
|
restartAfterExit = backendGone !== null;
|
|
@@ -1544,13 +1549,13 @@ async function runGemini(opts) {
|
|
|
1544
1549
|
}
|
|
1545
1550
|
if (restartAfterExit || wasSessionCreated && currentModeHash && message.hash !== currentModeHash) {
|
|
1546
1551
|
logger.logger.debug("[Gemini] Mode changed or process gone \u2013 restarting Gemini session");
|
|
1547
|
-
messageBuffer
|
|
1552
|
+
messageBuffer.addMessage("\u2550".repeat(40), "status");
|
|
1548
1553
|
if (conversationHistory.hasHistory()) {
|
|
1549
|
-
messageBuffer
|
|
1554
|
+
messageBuffer.addMessage(`${restartAfterExit ? "Restarting Gemini" : "Switching model"} (preserving ${conversationHistory.size()} messages of context)...`, "status");
|
|
1550
1555
|
injectHistoryContext = true;
|
|
1551
1556
|
logger.logger.debug("[Gemini] Will inject conversation history");
|
|
1552
1557
|
} else {
|
|
1553
|
-
messageBuffer
|
|
1558
|
+
messageBuffer.addMessage(restartAfterExit ? "Restarting Gemini..." : "Starting new Gemini session (mode changed)...", "status");
|
|
1554
1559
|
}
|
|
1555
1560
|
permissionHandler.reset();
|
|
1556
1561
|
reasoningProcessor.abort();
|
|
@@ -1630,7 +1635,8 @@ async function runGemini(opts) {
|
|
|
1630
1635
|
if (!geminiBackend || !acpSessionId) {
|
|
1631
1636
|
throw new Error("Gemini backend or session not initialized");
|
|
1632
1637
|
}
|
|
1633
|
-
|
|
1638
|
+
if (injectHistoryContext) projectInjector.reset();
|
|
1639
|
+
let promptToSend = await projectInjector.decorate(message.message);
|
|
1634
1640
|
if (injectHistoryContext && conversationHistory.hasHistory()) {
|
|
1635
1641
|
const historyContext = conversationHistory.getContextForNewSession();
|
|
1636
1642
|
promptToSend = historyContext + promptToSend;
|
|
@@ -1661,7 +1667,7 @@ async function runGemini(opts) {
|
|
|
1661
1667
|
if (isRetryableGeminiError(promptError) && attempt < MAX_RETRIES) {
|
|
1662
1668
|
const notice = describeGeminiRetry(attempt, MAX_RETRIES, promptError);
|
|
1663
1669
|
logger.logger.debug(`[gemini] Retryable error on attempt ${attempt}/${MAX_RETRIES}:`, contentLogMetadata.errorLogMetadata(promptError));
|
|
1664
|
-
messageBuffer
|
|
1670
|
+
messageBuffer.addMessage(notice, "status");
|
|
1665
1671
|
session.sendSessionEvent({ type: "message", message: notice });
|
|
1666
1672
|
await new Promise((resolve2) => setTimeout(resolve2, RETRY_DELAY_MS * attempt));
|
|
1667
1673
|
if (turnAborted()) throw promptError;
|
|
@@ -1678,7 +1684,7 @@ async function runGemini(opts) {
|
|
|
1678
1684
|
const isAbortError = error instanceof Error && error.name === "AbortError";
|
|
1679
1685
|
if (isAbortError) {
|
|
1680
1686
|
turnEnding = "aborted";
|
|
1681
|
-
messageBuffer
|
|
1687
|
+
messageBuffer.addMessage("Aborted by user", "status");
|
|
1682
1688
|
session.sendSessionEvent({ type: "message", message: "Aborted by user" });
|
|
1683
1689
|
} else {
|
|
1684
1690
|
const failure = describeGeminiFailure(error, { model: displayedModel || "gemini-2.5-pro" });
|
|
@@ -1687,7 +1693,7 @@ async function runGemini(opts) {
|
|
|
1687
1693
|
} else if (restartAfterExit && !acpSessionId && error instanceof Error) {
|
|
1688
1694
|
backendGone = error;
|
|
1689
1695
|
}
|
|
1690
|
-
messageBuffer
|
|
1696
|
+
messageBuffer.addMessage(failure.message, "status");
|
|
1691
1697
|
session.sendSessionEvent({ type: "message", message: failure.message });
|
|
1692
1698
|
if (!turnAborted()) {
|
|
1693
1699
|
turnEnding = "failed";
|
|
@@ -1771,7 +1777,7 @@ async function runGemini(opts) {
|
|
|
1771
1777
|
if (inkInstance) {
|
|
1772
1778
|
inkInstance.unmount();
|
|
1773
1779
|
}
|
|
1774
|
-
messageBuffer
|
|
1780
|
+
messageBuffer.clear();
|
|
1775
1781
|
logger.logger.debug("[gemini]: Final cleanup completed");
|
|
1776
1782
|
}
|
|
1777
1783
|
}
|
|
@@ -3,34 +3,34 @@ import { execFileSync } from 'node:child_process';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import { existsSync, readFileSync } from 'node:fs';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
|
-
import { c as connectionState, A as ApiClient } from './api-
|
|
7
|
-
import { A as AcpSessionManager } from './AcpSessionManager-
|
|
8
|
-
import { l as logger } from './logger
|
|
9
|
-
import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-
|
|
10
|
-
import { r as readSettings } from './persistence-
|
|
11
|
-
import { g as getInitialMachineMetadata } from './machineMetadata-
|
|
12
|
-
import { c as createSessionMetadata } from './createSessionMetadata-
|
|
13
|
-
import { s as setupOfflineReconnection } from './setupOfflineReconnection-
|
|
14
|
-
import { n as notifyDaemonSessionStarted } from './controlClient-
|
|
6
|
+
import { c as connectionState, A as ApiClient } from './api-Hov8p7CA.mjs';
|
|
7
|
+
import { A as AcpSessionManager } from './AcpSessionManager-i8Rab0xT.mjs';
|
|
8
|
+
import { l as logger } from './logger-BUngm5Xg.mjs';
|
|
9
|
+
import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-CaqqRYq6.mjs';
|
|
10
|
+
import { r as readSettings } from './persistence-BFUOHW5h.mjs';
|
|
11
|
+
import { g as getInitialMachineMetadata } from './machineMetadata-BXN_bKU3.mjs';
|
|
12
|
+
import { c as createSessionMetadata } from './createSessionMetadata-DDIChCx8.mjs';
|
|
13
|
+
import { s as setupOfflineReconnection } from './setupOfflineReconnection-1Qlek3wl.mjs';
|
|
14
|
+
import { n as notifyDaemonSessionStarted } from './controlClient-DoeYovwP.mjs';
|
|
15
15
|
import { e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
|
|
16
16
|
import WebSocket from 'ws';
|
|
17
17
|
import * as ed from '@noble/ed25519';
|
|
18
18
|
import { sha512 } from '@noble/hashes/sha2.js';
|
|
19
|
-
import { f as ensurePrivateDirectorySync, a as hardenPrivateFileSync, w as writePrivateFileSync, c as configuration } from './configuration-
|
|
19
|
+
import { f as ensurePrivateDirectorySync, a as hardenPrivateFileSync, w as writePrivateFileSync, c as configuration } from './configuration-PxzEJumr.mjs';
|
|
20
20
|
import { e as errorLogMetadata, c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
|
|
21
21
|
import 'axios';
|
|
22
|
-
import './lidState-
|
|
22
|
+
import './lidState-bBrmaQd2.mjs';
|
|
23
23
|
import 'os';
|
|
24
24
|
import 'child_process';
|
|
25
25
|
import 'node:events';
|
|
26
26
|
import 'socket.io-client';
|
|
27
|
-
import './
|
|
27
|
+
import './pushNotifications-DCiBEVeC.mjs';
|
|
28
28
|
import 'zod';
|
|
29
|
-
import './index-
|
|
29
|
+
import './index-C6Vn5Eac.mjs';
|
|
30
30
|
import '@paralleldrive/cuid2';
|
|
31
31
|
import './limits-DIo7rEBR.mjs';
|
|
32
|
-
import './time-
|
|
33
|
-
import './registerCommonHandlers-
|
|
32
|
+
import './time-D3ETL7Jb.mjs';
|
|
33
|
+
import './registerCommonHandlers-CTkCvjxt.mjs';
|
|
34
34
|
import 'util';
|
|
35
35
|
import 'fs/promises';
|
|
36
36
|
import 'crypto';
|
|
@@ -38,17 +38,17 @@ import 'path';
|
|
|
38
38
|
import 'cross-spawn';
|
|
39
39
|
import './projectPath-BTBIMB57.mjs';
|
|
40
40
|
import 'url';
|
|
41
|
-
import './sync-
|
|
42
|
-
import './backgroundTaskActivity-
|
|
41
|
+
import './sync-BvVhDO40.mjs';
|
|
42
|
+
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
43
43
|
import 'chalk';
|
|
44
44
|
import 'node:util';
|
|
45
45
|
import 'tweetnacl';
|
|
46
46
|
import './types-CkqAACXx.mjs';
|
|
47
47
|
import 'node:fs/promises';
|
|
48
|
-
import './package-
|
|
48
|
+
import './package-7Ld1YMhh.mjs';
|
|
49
49
|
import './detectCLI-CSGMlV51.mjs';
|
|
50
50
|
import 'fs';
|
|
51
|
-
import './localHappyAgentAuth-
|
|
51
|
+
import './localHappyAgentAuth-Dn1jYDpt.mjs';
|
|
52
52
|
|
|
53
53
|
ed.hashes.sha512 = (message) => sha512(message);
|
|
54
54
|
const { getPublicKeyAsync, signAsync, utils } = ed;
|