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,71 +0,0 @@
|
|
|
1
|
-
class MessageBuffer {
|
|
2
|
-
messages = [];
|
|
3
|
-
listeners = [];
|
|
4
|
-
nextId = 1;
|
|
5
|
-
addMessage(content, type = "assistant") {
|
|
6
|
-
const message = {
|
|
7
|
-
id: `msg-${this.nextId++}`,
|
|
8
|
-
timestamp: /* @__PURE__ */ new Date(),
|
|
9
|
-
content,
|
|
10
|
-
type
|
|
11
|
-
};
|
|
12
|
-
this.messages.push(message);
|
|
13
|
-
this.notifyListeners();
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Update the last message of a specific type by appending content to it
|
|
17
|
-
* Useful for streaming responses where deltas should accumulate in one message
|
|
18
|
-
*/
|
|
19
|
-
updateLastMessage(contentDelta, type = "assistant") {
|
|
20
|
-
for (let i = this.messages.length - 1; i >= 0; i--) {
|
|
21
|
-
if (this.messages[i].type === type) {
|
|
22
|
-
const oldMessage = this.messages[i];
|
|
23
|
-
const updatedMessage = {
|
|
24
|
-
...oldMessage,
|
|
25
|
-
content: oldMessage.content + contentDelta
|
|
26
|
-
};
|
|
27
|
-
this.messages[i] = updatedMessage;
|
|
28
|
-
this.notifyListeners();
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
this.addMessage(contentDelta, type);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Remove the last message of a specific type
|
|
36
|
-
* Useful for removing placeholder messages like "Thinking..." when actual response starts
|
|
37
|
-
*/
|
|
38
|
-
removeLastMessage(type) {
|
|
39
|
-
for (let i = this.messages.length - 1; i >= 0; i--) {
|
|
40
|
-
if (this.messages[i].type === type) {
|
|
41
|
-
this.messages.splice(i, 1);
|
|
42
|
-
this.notifyListeners();
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
getMessages() {
|
|
49
|
-
return [...this.messages];
|
|
50
|
-
}
|
|
51
|
-
clear() {
|
|
52
|
-
this.messages = [];
|
|
53
|
-
this.nextId = 1;
|
|
54
|
-
this.notifyListeners();
|
|
55
|
-
}
|
|
56
|
-
onUpdate(listener) {
|
|
57
|
-
this.listeners.push(listener);
|
|
58
|
-
return () => {
|
|
59
|
-
const index = this.listeners.indexOf(listener);
|
|
60
|
-
if (index > -1) {
|
|
61
|
-
this.listeners.splice(index, 1);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
notifyListeners() {
|
|
66
|
-
const messages = this.getMessages();
|
|
67
|
-
this.listeners.forEach((listener) => listener(messages));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export { MessageBuffer as M };
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
class MessageBuffer {
|
|
4
|
-
messages = [];
|
|
5
|
-
listeners = [];
|
|
6
|
-
nextId = 1;
|
|
7
|
-
addMessage(content, type = "assistant") {
|
|
8
|
-
const message = {
|
|
9
|
-
id: `msg-${this.nextId++}`,
|
|
10
|
-
timestamp: /* @__PURE__ */ new Date(),
|
|
11
|
-
content,
|
|
12
|
-
type
|
|
13
|
-
};
|
|
14
|
-
this.messages.push(message);
|
|
15
|
-
this.notifyListeners();
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Update the last message of a specific type by appending content to it
|
|
19
|
-
* Useful for streaming responses where deltas should accumulate in one message
|
|
20
|
-
*/
|
|
21
|
-
updateLastMessage(contentDelta, type = "assistant") {
|
|
22
|
-
for (let i = this.messages.length - 1; i >= 0; i--) {
|
|
23
|
-
if (this.messages[i].type === type) {
|
|
24
|
-
const oldMessage = this.messages[i];
|
|
25
|
-
const updatedMessage = {
|
|
26
|
-
...oldMessage,
|
|
27
|
-
content: oldMessage.content + contentDelta
|
|
28
|
-
};
|
|
29
|
-
this.messages[i] = updatedMessage;
|
|
30
|
-
this.notifyListeners();
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
this.addMessage(contentDelta, type);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Remove the last message of a specific type
|
|
38
|
-
* Useful for removing placeholder messages like "Thinking..." when actual response starts
|
|
39
|
-
*/
|
|
40
|
-
removeLastMessage(type) {
|
|
41
|
-
for (let i = this.messages.length - 1; i >= 0; i--) {
|
|
42
|
-
if (this.messages[i].type === type) {
|
|
43
|
-
this.messages.splice(i, 1);
|
|
44
|
-
this.notifyListeners();
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
getMessages() {
|
|
51
|
-
return [...this.messages];
|
|
52
|
-
}
|
|
53
|
-
clear() {
|
|
54
|
-
this.messages = [];
|
|
55
|
-
this.nextId = 1;
|
|
56
|
-
this.notifyListeners();
|
|
57
|
-
}
|
|
58
|
-
onUpdate(listener) {
|
|
59
|
-
this.listeners.push(listener);
|
|
60
|
-
return () => {
|
|
61
|
-
const index = this.listeners.indexOf(listener);
|
|
62
|
-
if (index > -1) {
|
|
63
|
-
this.listeners.splice(index, 1);
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
notifyListeners() {
|
|
68
|
-
const messages = this.getMessages();
|
|
69
|
-
this.listeners.forEach((listener) => listener(messages));
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
exports.MessageBuffer = MessageBuffer;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var path = require('path');
|
|
4
|
-
var url = require('url');
|
|
5
|
-
|
|
6
|
-
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
7
|
-
const __dirname$1 = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('projectPath-ChLhdOyt.cjs', document.baseURI).href))));
|
|
8
|
-
function projectPath() {
|
|
9
|
-
const path$1 = path.resolve(__dirname$1, "..");
|
|
10
|
-
return path$1;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
exports.projectPath = projectPath;
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { p as packageJson } from './package-B7B03ejW.mjs';
|
|
2
|
-
|
|
3
|
-
const LAZY_MODULES = [
|
|
4
|
-
// Entry
|
|
5
|
-
["main", () => import('./main-CshDb5-1.mjs')],
|
|
6
|
-
["selfCheck", () => Promise.resolve().then(function () { return selfCheck; })],
|
|
7
|
-
// Subcommands (main.ts)
|
|
8
|
-
["api/api", () => import('./api-Dib0dmqC.mjs').then(function (n) { return n.b; })],
|
|
9
|
-
["claude/claudeCliPath", () => import('./claudeCliPath-BqkaH2oR.mjs')],
|
|
10
|
-
["claude/runClaude", () => import('./runClaude-zrrNcQC_.mjs')],
|
|
11
|
-
["commands/agentHome", () => import('./agentHome-C1xi37as.mjs')],
|
|
12
|
-
["commands/auth", () => import('./auth-DNct7VUi.mjs')],
|
|
13
|
-
["commands/auto", () => import('./auto-DKGFOJBo.mjs')],
|
|
14
|
-
["commands/codexCommand", () => import('./codexCommand-BxjogBzU.mjs')],
|
|
15
|
-
["commands/connect", () => import('./connect-C7FPY0PI.mjs')],
|
|
16
|
-
["commands/installPiTools", () => import('./installPiTools-B_CdM5_2.mjs')],
|
|
17
|
-
["commands/installTerminalHooks", () => import('./installTerminalHooks-By7gBMEF.mjs')],
|
|
18
|
-
["commands/mcp", () => import('./mcp-DKT_lrvQ.mjs')],
|
|
19
|
-
["commands/piTerminal", () => import('./piTerminal-De8nbciM.mjs')],
|
|
20
|
-
["commands/sandbox", () => import('./sandbox-BSyXFVFp.mjs')],
|
|
21
|
-
["commands/send", () => import('./send-C-k9nsd3.mjs')],
|
|
22
|
-
["commands/server", () => import('./server-DxoTYNlw.mjs')],
|
|
23
|
-
["commands/sessions", () => import('./sessions-C3sZJkzI.mjs')],
|
|
24
|
-
["commands/spawn", () => import('./spawn-qNrB2CD_.mjs')],
|
|
25
|
-
["commands/teams", () => import('./teams-CwF4Z2fA.mjs')],
|
|
26
|
-
["commands/todo", () => import('./todo-DrZc76H5.mjs')],
|
|
27
|
-
["daemon/doctor", () => import('./doctor-BPkYWSuq.mjs')],
|
|
28
|
-
["daemon/install", () => import('./install-fYWHrPcC.mjs')],
|
|
29
|
-
["daemon/run", () => import('./run-BQ_FGaOL.mjs')],
|
|
30
|
-
["daemon/uninstall", () => import('./uninstall-DOb2mTwV.mjs')],
|
|
31
|
-
["resume/handleResumeCommand", () => import('./handleResumeCommand-CgjpsdDe.mjs')],
|
|
32
|
-
["ui/doctor", () => import('./doctor-0BiGwJXk.mjs').then(function (n) { return n.d; })],
|
|
33
|
-
["agent/acp", () => import('./index-BehVbAsA.mjs')],
|
|
34
|
-
["gemini/runGemini", () => import('./runGemini-kipag2ag.mjs')],
|
|
35
|
-
["gemini/utils/config", () => import('./config-DwfEpFr3.mjs')],
|
|
36
|
-
["openclaw/runOpenClaw", () => import('./runOpenClaw-C_lRY3Do.mjs')],
|
|
37
|
-
["persistence", () => import('./persistence-DTk4sNpd.mjs').then(function (n) { return n.F; })],
|
|
38
|
-
// Deferred halves of the runners and clients
|
|
39
|
-
["api/apiMachine", () => import('./apiMachine-DNTJidYH.mjs')],
|
|
40
|
-
["claude/runClaudeDeps", () => import('./runClaudeDeps-CVBCokOS.mjs')],
|
|
41
|
-
["claude/claudeLocal", () => import('./claudeLocal-CCCvAeMd.mjs')],
|
|
42
|
-
["claude/claudeLocalLauncher", () => import('./claudeLocalLauncher-BmrpaRYJ.mjs')],
|
|
43
|
-
["claude/sdk", () => import('./index-CEjJnq05.mjs')],
|
|
44
|
-
["assistant/bootstrap", () => import('./bootstrap-BUagGC_-.mjs')],
|
|
45
|
-
["agentHome", () => import('./index-Bvldtdny.mjs')],
|
|
46
|
-
["ui/ink/RemoteModeDisplay", () => import('./RemoteModeDisplay-D-HewyXg.mjs')],
|
|
47
|
-
// External packages imported on demand
|
|
48
|
-
["expo-server-sdk", () => import('expo-server-sdk')],
|
|
49
|
-
["ink", () => import('ink')],
|
|
50
|
-
["react", () => import('react')]
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
async function runSelfCheck(modules = LAZY_MODULES) {
|
|
54
|
-
const failures = [];
|
|
55
|
-
for (const [name, load] of modules) {
|
|
56
|
-
try {
|
|
57
|
-
await load();
|
|
58
|
-
} catch (error) {
|
|
59
|
-
failures.push({ name, error: error instanceof Error ? error.message : String(error) });
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return failures;
|
|
63
|
-
}
|
|
64
|
-
async function selfCheckMain(opts = {}) {
|
|
65
|
-
const started = Date.now();
|
|
66
|
-
const failures = await runSelfCheck();
|
|
67
|
-
if (failures.length > 0) {
|
|
68
|
-
for (const failure of failures) {
|
|
69
|
-
console.error(`very-happy: failed to load ${failure.name}: ${failure.error}`);
|
|
70
|
-
}
|
|
71
|
-
return 1;
|
|
72
|
-
}
|
|
73
|
-
if (opts.verbose) console.log(`self-check: ${LAZY_MODULES.length} modules loaded in ${Date.now() - started}ms`);
|
|
74
|
-
console.log(`very-happy version: ${packageJson.version}`);
|
|
75
|
-
return 0;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
var selfCheck = /*#__PURE__*/Object.freeze({
|
|
79
|
-
__proto__: null,
|
|
80
|
-
runSelfCheck: runSelfCheck,
|
|
81
|
-
selfCheckMain: selfCheckMain
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
export { runSelfCheck, selfCheckMain };
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, renameSync, existsSync, unlinkSync } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { w as writePrivateFileSync, c as configuration } from './configuration-DVrb61aY.mjs';
|
|
4
|
-
|
|
5
|
-
const SESSION_MODE_DIR = "session-modes";
|
|
6
|
-
const ACP_PERMISSION_MODES = ["default", "acceptEdits", "plan", "bypassPermissions"];
|
|
7
|
-
function normalizeAcpPermissionMode(value) {
|
|
8
|
-
if (typeof value !== "string") return null;
|
|
9
|
-
if (value === "yolo") return "bypassPermissions";
|
|
10
|
-
return ACP_PERMISSION_MODES.includes(value) ? value : null;
|
|
11
|
-
}
|
|
12
|
-
function sessionModeFilePath(happySessionId, dir = join(configuration.happyHomeDir, SESSION_MODE_DIR)) {
|
|
13
|
-
return join(dir, `${happySessionId}.json`);
|
|
14
|
-
}
|
|
15
|
-
function sessionModeFilePayload(permissionMode, now = Date.now()) {
|
|
16
|
-
return { permissionMode, updatedAt: now };
|
|
17
|
-
}
|
|
18
|
-
function writeSessionModeFile(happySessionId, permissionMode, opts = {}) {
|
|
19
|
-
const path = sessionModeFilePath(happySessionId, opts.dir);
|
|
20
|
-
mkdirSync(join(path, ".."), { recursive: true, mode: 448 });
|
|
21
|
-
const payload = sessionModeFilePayload(permissionMode, opts.now);
|
|
22
|
-
const tmp = `${path}.${process.pid}.tmp`;
|
|
23
|
-
writePrivateFileSync(tmp, JSON.stringify(payload));
|
|
24
|
-
renameSync(tmp, path);
|
|
25
|
-
return payload;
|
|
26
|
-
}
|
|
27
|
-
function removeSessionModeFile(happySessionId, dir) {
|
|
28
|
-
const path = sessionModeFilePath(happySessionId, dir);
|
|
29
|
-
if (existsSync(path)) unlinkSync(path);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export { normalizeAcpPermissionMode as n, removeSessionModeFile as r, writeSessionModeFile as w };
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var node_fs = require('node:fs');
|
|
4
|
-
var path = require('node:path');
|
|
5
|
-
var configuration = require('./configuration-4TGMrjul.cjs');
|
|
6
|
-
|
|
7
|
-
const SESSION_MODE_DIR = "session-modes";
|
|
8
|
-
const ACP_PERMISSION_MODES = ["default", "acceptEdits", "plan", "bypassPermissions"];
|
|
9
|
-
function normalizeAcpPermissionMode(value) {
|
|
10
|
-
if (typeof value !== "string") return null;
|
|
11
|
-
if (value === "yolo") return "bypassPermissions";
|
|
12
|
-
return ACP_PERMISSION_MODES.includes(value) ? value : null;
|
|
13
|
-
}
|
|
14
|
-
function sessionModeFilePath(happySessionId, dir = path.join(configuration.configuration.happyHomeDir, SESSION_MODE_DIR)) {
|
|
15
|
-
return path.join(dir, `${happySessionId}.json`);
|
|
16
|
-
}
|
|
17
|
-
function sessionModeFilePayload(permissionMode, now = Date.now()) {
|
|
18
|
-
return { permissionMode, updatedAt: now };
|
|
19
|
-
}
|
|
20
|
-
function writeSessionModeFile(happySessionId, permissionMode, opts = {}) {
|
|
21
|
-
const path$1 = sessionModeFilePath(happySessionId, opts.dir);
|
|
22
|
-
node_fs.mkdirSync(path.join(path$1, ".."), { recursive: true, mode: 448 });
|
|
23
|
-
const payload = sessionModeFilePayload(permissionMode, opts.now);
|
|
24
|
-
const tmp = `${path$1}.${process.pid}.tmp`;
|
|
25
|
-
configuration.writePrivateFileSync(tmp, JSON.stringify(payload));
|
|
26
|
-
node_fs.renameSync(tmp, path$1);
|
|
27
|
-
return payload;
|
|
28
|
-
}
|
|
29
|
-
function removeSessionModeFile(happySessionId, dir) {
|
|
30
|
-
const path = sessionModeFilePath(happySessionId, dir);
|
|
31
|
-
if (node_fs.existsSync(path)) node_fs.unlinkSync(path);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
exports.normalizeAcpPermissionMode = normalizeAcpPermissionMode;
|
|
35
|
-
exports.removeSessionModeFile = removeSessionModeFile;
|
|
36
|
-
exports.writeSessionModeFile = writeSessionModeFile;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { g as getAgentCodeDefaults, n as normalizeAgentKey, e as isClaudeOpus55Model, f as supportsClaudeOpus55 } from './index-Clqlu17M.mjs';
|
|
2
|
-
|
|
3
|
-
function resolveSpawnPermissionMode(agent, explicit) {
|
|
4
|
-
return explicit ?? getAgentCodeDefaults(agent ?? "claude").permissionMode;
|
|
5
|
-
}
|
|
6
|
-
function outboundPermissionMode(agent, mode) {
|
|
7
|
-
const key = normalizeAgentKey(agent ?? "claude");
|
|
8
|
-
if ((key === "claude" || key === "pi") && mode === "yolo") return "bypassPermissions";
|
|
9
|
-
return mode;
|
|
10
|
-
}
|
|
11
|
-
function resolveFirstMessageMeta(input) {
|
|
12
|
-
const meta = {
|
|
13
|
-
permissionMode: outboundPermissionMode(input.agent, input.permissionMode)
|
|
14
|
-
};
|
|
15
|
-
if (input.explicitModel !== void 0) {
|
|
16
|
-
meta.model = input.explicitModel === "default" ? null : input.explicitModel;
|
|
17
|
-
}
|
|
18
|
-
if (normalizeAgentKey(input.agent ?? "claude") !== "claude") return meta;
|
|
19
|
-
if (meta.model === void 0) {
|
|
20
|
-
const model = getAgentCodeDefaults("claude").modelMode;
|
|
21
|
-
const runnable = !isClaudeOpus55Model(model) || supportsClaudeOpus55({ capabilities: input.capabilities ?? null });
|
|
22
|
-
meta.model = runnable && model !== "default" ? model : null;
|
|
23
|
-
}
|
|
24
|
-
meta.effort = null;
|
|
25
|
-
return meta;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const ALLOWED_SPAWN_PERMISSION_MODES = [
|
|
29
|
-
"default",
|
|
30
|
-
"acceptEdits",
|
|
31
|
-
"plan",
|
|
32
|
-
"yolo",
|
|
33
|
-
"bypassPermissions"
|
|
34
|
-
];
|
|
35
|
-
function sanitizeSpawnPermissionMode(value) {
|
|
36
|
-
if (typeof value !== "string") return null;
|
|
37
|
-
return ALLOWED_SPAWN_PERMISSION_MODES.includes(value) ? value : null;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const SPAWN_AGENTS = ["claude", "codex", "gemini", "openclaw", "pi"];
|
|
41
|
-
function isSpawnAgent(value) {
|
|
42
|
-
return typeof value === "string" && SPAWN_AGENTS.includes(value);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export { ALLOWED_SPAWN_PERMISSION_MODES as A, SPAWN_AGENTS as S, resolveFirstMessageMeta as a, isSpawnAgent as i, resolveSpawnPermissionMode as r, sanitizeSpawnPermissionMode as s };
|