very-happy-cli 0.2.165 → 0.2.167
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/README.md +1 -1
- package/dist/{AcpBackend-DCfNt9bD.cjs → AcpBackend-D1IKJGz_.cjs} +3 -3
- package/dist/{AcpBackend-C11FnVw5.mjs → AcpBackend-kFZlee5E.mjs} +3 -3
- package/dist/{AcpSessionManager-BQnDJvct.mjs → AcpSessionManager-B7FIrsys.mjs} +1 -1
- package/dist/{AcpSessionManager-9yN2iH4b.cjs → AcpSessionManager-Zf00QnlL.cjs} +1 -1
- package/dist/{BasePermissionHandler-BwQHxl6M.cjs → BasePermissionHandler-DHxYAK5L.cjs} +1 -1
- package/dist/{BasePermissionHandler-CwJ48yiB.mjs → BasePermissionHandler-DS0kRTNI.mjs} +1 -1
- package/dist/{BaseReasoningProcessor-ClF2g1qz.mjs → BaseReasoningProcessor-BRtCCt7q.mjs} +1 -1
- package/dist/{BaseReasoningProcessor-81lf_M8G.cjs → BaseReasoningProcessor-CsjVdt_H.cjs} +1 -1
- package/dist/{agentGuidance-CQuNlNx8.mjs → agentGuidance-BDYt2Qy2.mjs} +4 -2
- package/dist/{agentGuidance-B5NATuFa.cjs → agentGuidance-BtBx2xxE.cjs} +4 -1
- package/dist/{agentHome-DvR176E5.mjs → agentHome-Ct-VXFeG.mjs} +4 -4
- package/dist/{agentHome-D3Nn82kI.cjs → agentHome-DeAWzhSe.cjs} +4 -4
- package/dist/{api-AzdzTKFs.cjs → api-BZYLRDM9.cjs} +93 -13
- package/dist/{api-DTVPUE7g.mjs → api-CReZazeT.mjs} +93 -13
- package/dist/{apiMachine-B_cJldfa.cjs → apiMachine-BgMxGPsR.cjs} +2173 -66
- package/dist/{apiMachine-BQ-b4Lu3.mjs → apiMachine-CWndf1Vn.mjs} +2176 -69
- package/dist/{attachmentContent-muDCe4Gy.cjs → attachmentContent-HcJqFQW8.cjs} +2 -2
- package/dist/{attachmentContent-dzIs-wis.mjs → attachmentContent-j875mwU7.mjs} +2 -2
- package/dist/{attachmentLimits-eJZ4ZBjF.cjs → attachmentLimits-BEYEEBm8.cjs} +40 -2
- package/dist/{attachmentLimits-B8nzhw-i.mjs → attachmentLimits-CxG3T18E.mjs} +40 -2
- package/dist/{auth-Jtmvh1w4.mjs → auth-BIHuc7vY.mjs} +10 -10
- package/dist/{auth-BY5ujhGn.mjs → auth-CFS9Lfgv.mjs} +5 -5
- package/dist/{auth-DtP-B4gf.cjs → auth-Myr2Q42x.cjs} +10 -10
- package/dist/{auth-CfLd3phE.cjs → auth-VzWpbo5P.cjs} +5 -5
- package/dist/{auto-ClNnbSoF.cjs → auto-Bf6Dr7_o.cjs} +85 -21
- package/dist/{auto-DjWfR1UB.mjs → auto-Df9-zmuN.mjs} +84 -22
- package/dist/{bootstrap-D_ExGrY2.mjs → bootstrap-BSOxYpaP.mjs} +2 -2
- package/dist/{bootstrap-B1dMZA-u.cjs → bootstrap-Dj8WBiR2.cjs} +2 -2
- package/dist/{browser-mwzpOmcw.mjs → browser-BCFIHOvo.mjs} +1 -1
- package/dist/{browser-_gV7tcPs.cjs → browser-BoCV40yC.cjs} +1 -1
- package/dist/{claudeLocal-G5UmJ81F.cjs → claudeLocal-CGsq7Kul.cjs} +7 -7
- package/dist/{claudeLocal-BeHToEK5.mjs → claudeLocal-D5-eA9SC.mjs} +7 -7
- package/dist/{claudeLocalLauncher-Cq6bqAT4.mjs → claudeLocalLauncher-C9Cc438l.mjs} +15 -12
- package/dist/{claudeLocalLauncher-B4y2BsmO.cjs → claudeLocalLauncher-Cf9QeYDT.cjs} +15 -12
- package/dist/{claudeSessionFork-CDJq_b9r.cjs → claudeSessionFork-Byd8zD1U.cjs} +1 -1
- package/dist/{claudeSessionFork-CokUhS4r.mjs → claudeSessionFork-CMzAva8G.mjs} +1 -1
- package/dist/{client-Do7cGPEq.cjs → client-BKnKRLSt.cjs} +3 -3
- package/dist/{client-CJZKBZCE.mjs → client-C7FYMer0.mjs} +2 -2
- package/dist/{client-uN9d6Git.cjs → client-D0T5-6Ds.cjs} +2 -2
- package/dist/{client-BwaWdlCm.mjs → client-Dsfy_SAb.mjs} +3 -3
- package/dist/codex/happyMcpStdioBridge.cjs +23 -18
- package/dist/codex/happyMcpStdioBridge.mjs +22 -17
- package/dist/{codexAppServerClient-B0QaMQsC.mjs → codexAppServerClient-Dd_4TxHv.mjs} +48 -4
- package/dist/{codexAppServerClient-BuSdeUxT.cjs → codexAppServerClient-TiW9OBk4.cjs} +47 -3
- package/dist/{codexCommand-C3gdjMAw.mjs → codexCommand-BZSr4MKI.mjs} +170 -69
- package/dist/{codexCommand-YdYmykAR.cjs → codexCommand-Bxryqh90.cjs} +170 -69
- package/dist/{config-CGCIFRCN.mjs → config-C_Pj7yxV.mjs} +3 -3
- package/dist/{config-ChoHFnfO.cjs → config-DXPash-r.cjs} +3 -3
- package/dist/{configuration-BE61XNsg.cjs → configuration-C3piBtxY.cjs} +1 -1
- package/dist/{configuration-L1qcGTFM.mjs → configuration-WspKd2C2.mjs} +2 -2
- package/dist/{connect-D5IKfcfd.cjs → connect-BN-IBElA.cjs} +14 -14
- package/dist/{connect-CFD0Em6a.mjs → connect-DGPZs5px.mjs} +14 -14
- package/dist/{context-DaCCB4cm.mjs → context-Cr6a3NTg.mjs} +1 -1
- package/dist/{context-3WVw8qPz.cjs → context-Jrq4-eCZ.cjs} +1 -1
- package/dist/{controlClient-RWTlQA4_.cjs → controlClient-BI6Fw3fQ.cjs} +28 -5
- package/dist/{controlClient-Ci7HTMII.mjs → controlClient-DTheOlvC.mjs} +27 -6
- package/dist/{createSessionMetadata-CWR-AB2A.mjs → createSessionMetadata-BEZ4DIDA.mjs} +57 -5
- package/dist/{createSessionMetadata-CPGTztXP.cjs → createSessionMetadata-zQSz3hgk.cjs} +56 -3
- package/dist/defaultPermissionMode-Cif_RHGb.mjs +191 -0
- package/dist/defaultPermissionMode-DNKNzk7l.cjs +197 -0
- package/dist/{deterministicJson-BBwG-Ase.mjs → deterministicJson-BMMifViN.mjs} +36 -52
- package/dist/{deterministicJson-C4Jo2RWy.cjs → deterministicJson-C7O2ulKY.cjs} +41 -59
- package/dist/{doctor-ZOQLE5AH.cjs → doctor-BykBaMTr.cjs} +6 -6
- package/dist/{doctor-CAC6qY9Z.mjs → doctor-D1KKyPzB.mjs} +6 -6
- package/dist/{assistantTools-BsrG3PD-.cjs → downloadTarget-CWTb2-EM.cjs} +44 -6
- package/dist/{assistantTools-DPGga5lM.mjs → downloadTarget-Cp48jrIP.mjs} +45 -8
- package/dist/{ensureDaemonRunning-b1pvEFcS.mjs → ensureDaemonRunning-Ba5fYoxb.mjs} +5 -5
- package/dist/{ensureDaemonRunning-mIgX2vnc.cjs → ensureDaemonRunning-CCxX7MoP.cjs} +5 -5
- package/dist/{handleResumeCommand-CTGbZkCL.mjs → handleResumeCommand-BTUGlNjB.mjs} +5 -5
- package/dist/{handleResumeCommand-DGNhbv-3.cjs → handleResumeCommand-yPdDQHqz.cjs} +5 -5
- package/dist/{index-vVWpCoTr.mjs → index-B0HEEYGh.mjs} +22 -5
- package/dist/{index-BzIxE0Eu.cjs → index-BjhKqDa0.cjs} +3 -3
- package/dist/{index-BgzjPv07.mjs → index-C3_83bqS.mjs} +3 -3
- package/dist/{index-DqlyNgt4.cjs → index-C9hI8a10.cjs} +26 -4
- package/dist/{index-DjtBengz.mjs → index-CE2GgPbr.mjs} +40 -39
- package/dist/{index-Diu6HdWH.mjs → index-D8m8Ripb.mjs} +4 -4
- package/dist/{index-DrSPR59N.cjs → index-DifM62wX.cjs} +39 -38
- package/dist/{index-DIodyAqF.cjs → index-PNMQPKhz.cjs} +4 -4
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-BO_W7VhL.mjs → install-BdvKiOQw.mjs} +2 -0
- package/dist/{install-Cp_aB-NQ.mjs → install-C0-QFn9s.mjs} +3 -3
- package/dist/{install-Cs5qAPrB.cjs → install-Cf6AFSWC.cjs} +2 -0
- package/dist/{install-DrUQk2DJ.cjs → install-CqZVeze8.cjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +116 -2
- package/dist/lib.d.mts +116 -2
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-BLHLmhwd.mjs → lidState-B2ZxdREe.mjs} +1 -1
- package/dist/{lidState-z9ekRpZu.cjs → lidState-Bc2K9H9l.cjs} +1 -1
- package/dist/{localHappyAgentAuth-BWvmc_Hg.mjs → localHappyAgentAuth-B5XPEMwk.mjs} +1 -1
- package/dist/{localHappyAgentAuth-BCx0y1qW.cjs → localHappyAgentAuth-T5GOvRha.cjs} +1 -1
- package/dist/{logger-D0hkk7Vo.cjs → logger-B_MWPbZz.cjs} +2 -2
- package/dist/{logger-CknSVkIe.mjs → logger-CbBv3q_b.mjs} +2 -2
- package/dist/{machineMetadata-BDCYOXQg.cjs → machineMetadata-BafS4JY8.cjs} +4 -3
- package/dist/{machineMetadata-Cj1DoFot.mjs → machineMetadata-DHg238U4.mjs} +4 -3
- package/dist/{main-COAPGIso.cjs → main-DNrA0qBy.cjs} +45 -45
- package/dist/{main-CKUfkVG_.mjs → main-DXAK0n7x.mjs} +45 -45
- package/dist/{manager-BQ4flvQZ.mjs → manager-BEsI4qt3.mjs} +9 -3
- package/dist/{manager-Cly8xVIR.cjs → manager-HrEj442o.cjs} +8 -2
- package/dist/{mcp-BILnw4si.cjs → mcp-AvPOhDXy.cjs} +24 -19
- package/dist/{mcp-DeYUfpo8.mjs → mcp-BotAjCdD.mjs} +23 -18
- package/dist/mirrorProtocol-BdcN6QlN.cjs +1270 -0
- package/dist/mirrorProtocol-BwHm8odn.mjs +1247 -0
- package/dist/{package-UkmvSFsg.cjs → package-C9ZP9bpX.cjs} +7 -7
- package/dist/{package-VIUXrYZ1.mjs → package-DU1DxhH9.mjs} +7 -7
- package/dist/{peerTools-CttfOxti.cjs → peerTools-Dkbu7gag.cjs} +4 -4
- package/dist/{peerTools-SWITnkqz.mjs → peerTools-os2DVjA0.mjs} +4 -4
- package/dist/{persistence-C6ztVW1W.cjs → persistence-BYGl0QYw.cjs} +147 -25
- package/dist/{persistence-DujtUH94.mjs → persistence-ON0zpHfb.mjs} +123 -12
- package/dist/{piRunnerArgs-BVJHIjlk.mjs → piRunnerArgs-CYsnT9sV.mjs} +1 -1
- package/dist/{piRunnerArgs-tBQg6xDw.cjs → piRunnerArgs-DpbvstUX.cjs} +1 -1
- package/dist/{piRuntime-DZzjF9It.cjs → piRuntime-CDnILlCd.cjs} +1 -1
- package/dist/{piRuntime-DKFA8u8t.mjs → piRuntime-CmEid-wu.mjs} +1 -1
- package/dist/{piTerminal-BTSaFlpV.mjs → piTerminal-0eNlXSlL.mjs} +17 -17
- package/dist/{piTerminal-t5pQHCPT.cjs → piTerminal-B57TgMON.cjs} +17 -17
- package/dist/precheckCompat-CWOi5c9L.cjs +29 -0
- package/dist/precheckCompat-DeEbilbr.mjs +26 -0
- package/dist/rateLimitWindows-CusGIqlq.cjs +258 -0
- package/dist/rateLimitWindows-vZ9Bo7aT.mjs +248 -0
- package/dist/{registerCommonHandlers-BR0J4g64.mjs → registerCommonHandlers-B0PVff2U.mjs} +2 -2
- package/dist/{registerCommonHandlers--8ds2auE.cjs → registerCommonHandlers-DVYB3iVn.cjs} +2 -2
- package/dist/{registerKillSessionHandler-Czz0tdki.mjs → registerKillSessionHandler-BJMHJHXe.mjs} +15 -10
- package/dist/{registerKillSessionHandler-CI23l8aJ.cjs → registerKillSessionHandler-BwXGKtg_.cjs} +15 -10
- package/dist/{remoteSessionClient-DCAUHgPz.mjs → remoteSessionClient-BzPXSC21.mjs} +5 -5
- package/dist/{remoteSessionClient-BAkIwM2S.cjs → remoteSessionClient-PyUAIhwK.cjs} +5 -5
- package/dist/{tools-BVRoGcQH.mjs → reportProgressTool-BvB13EwC.mjs} +67 -10
- package/dist/{tools-mWqsE6ji.cjs → reportProgressTool-D4KB_4cP.cjs} +73 -9
- package/dist/{run-CkKujjn8.cjs → run-BC8jzq_h.cjs} +558 -122
- package/dist/{run-B75qm2I6.mjs → run-O2M8LsWf.mjs} +556 -120
- package/dist/{runClaude-B1T9DLLi.cjs → runClaude-C7jPa8VP.cjs} +93 -26
- package/dist/{runClaude-aBfBweec.mjs → runClaude-DGkr5E7s.mjs} +93 -26
- package/dist/{runClaudeDeps-BGjNGfuZ.cjs → runClaudeDeps-5kzncqME.cjs} +113 -35
- package/dist/{runClaudeDeps-BOrPP4J1.mjs → runClaudeDeps-CX_TxS78.mjs} +116 -37
- package/dist/{runGemini-BuAA_OQb.cjs → runGemini-BfYA4Uqc.cjs} +43 -36
- package/dist/{runGemini-a-V7JE-J.mjs → runGemini-CwmGBH3L.mjs} +43 -36
- package/dist/{runOpenClaw-DUSwXg1A.mjs → runOpenClaw-BYAPYFyL.mjs} +18 -18
- package/dist/{runOpenClaw-BBVffIh9.cjs → runOpenClaw-C72jut7v.cjs} +18 -18
- package/dist/{sandbox-Fd2G5yaq.cjs → sandbox-Bqkp8IT7.cjs} +4 -4
- package/dist/{sandbox-Brb_5wzc.mjs → sandbox-DlVnK1Vi.mjs} +4 -4
- package/dist/{selfCheck-NuJKMInJ.cjs → selfCheck-B4lLZplk.cjs} +34 -34
- package/dist/selfCheck-DYTGBdIO.mjs +84 -0
- package/dist/{send-DEQJiq_x.mjs → send-B5bWW9Tl.mjs} +8 -8
- package/dist/{send-4dgHKC3u.cjs → send-BCwS6n_s.cjs} +8 -8
- package/dist/{server-C6AlUFkw.mjs → server-CEJfRQfj.mjs} +4 -4
- package/dist/{server-DWGcDmHG.cjs → server-CFWZehnC.cjs} +6 -6
- package/dist/{sessionLock-Dm8QyGo4.mjs → sessionLock-AwOYsKT7.mjs} +12 -4
- package/dist/{sessionLock-B1GgaO1q.cjs → sessionLock-LBWNjpHf.cjs} +12 -3
- package/dist/{sessionModeFile-BvOEJ4Fl.cjs → sessionModeFile-CyPuZRIU.cjs} +1 -1
- package/dist/{sessionModeFile-CuNAWCKL.mjs → sessionModeFile-fvFn1JVG.mjs} +1 -1
- package/dist/{sessionOps-DG5MMEp_.mjs → sessionOps-DZRH4-hV.mjs} +4 -4
- package/dist/{sessionOps-JP64uJmc.cjs → sessionOps-DzbZI3Eq.cjs} +4 -4
- package/dist/{sessionScanner-DqSk5Ol_.mjs → sessionScanner-Q_Ei2flB.mjs} +75 -19
- package/dist/{sessionScanner-BBPEgJ5S.cjs → sessionScanner-i-cgwFVw.cjs} +75 -19
- package/dist/{sessions-4isbBAWi.mjs → sessions-DAmjMAZN.mjs} +9 -9
- package/dist/{sessions-DgJuw_i0.cjs → sessions-DYK5hD4T.cjs} +9 -9
- package/dist/{setupOfflineReconnection-_MoZtsro.mjs → setupOfflineReconnection-BfDBxNdo.mjs} +2 -2
- package/dist/{setupOfflineReconnection-CKJKVIUS.cjs → setupOfflineReconnection-C2LO3hSP.cjs} +2 -2
- package/dist/{spawn-BTOG4tTm.mjs → spawn-BmjG5j5Y.mjs} +15 -14
- package/dist/{spawn-CshERWbY.cjs → spawn-GK_sXE8h.cjs} +15 -14
- package/dist/{spawnAgents-Czi2VDzj.mjs → spawnAgents-HDaE3C0-.mjs} +1 -1
- package/dist/{spawnAgents-McixdtV1.cjs → spawnAgents-vglexX9N.cjs} +1 -1
- package/dist/{spawnHappyCLI-Dc4xYm8P.mjs → spawnHappyCLI-B2h0P4b5.mjs} +1 -1
- package/dist/{spawnHappyCLI-Dd5_8Vex.cjs → spawnHappyCLI-J4iEhfyZ.cjs} +1 -1
- package/dist/specialCommands-DisVxagO.mjs +93 -0
- package/dist/specialCommands-DmJMKspE.cjs +96 -0
- package/dist/{startFileWatcher-B0VlG-Fn.mjs → startFileWatcher-CeK1k5gt.mjs} +1 -1
- package/dist/{startFileWatcher-1LedLBY-.cjs → startFileWatcher-xKo8AoYl.cjs} +1 -1
- package/dist/{streamRelay-C0AffuX6.cjs → streamRelay-Ce9sgcOV.cjs} +1 -1
- package/dist/{streamRelay-BzMEEvJU.mjs → streamRelay-Iogsh51a.mjs} +1 -1
- package/dist/{sync-DwUUGGFz.cjs → sync-Bvc-vh6C.cjs} +1 -1
- package/dist/{sync-Dfm6K2te.mjs → sync-CCwYpJMS.mjs} +1 -1
- package/dist/{systemPrompt-D41Zw1a3.mjs → systemPrompt-BNIkP3tR.mjs} +3 -3
- package/dist/{systemPrompt-CB1Ls0AE.cjs → systemPrompt-DwOddbuG.cjs} +3 -3
- package/dist/{teams-D8Ly3i6u.mjs → teams-DRrLBcys.mjs} +7 -7
- package/dist/{teams-NWv2ji16.cjs → teams-GHMCRZOw.cjs} +7 -7
- package/dist/{time-BbzJ7PJQ.cjs → time-BXvtjhe9.cjs} +1 -1
- package/dist/{time-v1Y_qEJp.mjs → time-PG5Dfwdv.mjs} +1 -1
- package/dist/{titleGenerator-cH6IkPRi.cjs → titleGenerator-B07bZA0V.cjs} +2 -2
- package/dist/{titleGenerator-BhoblAQY.mjs → titleGenerator-CIzfpfZW.mjs} +1 -1
- package/dist/{todo-D1hgWV6d.cjs → todo-B0aeoNu3.cjs} +6 -6
- package/dist/{todo-CuNct-fw.mjs → todo-CfL7SBFc.mjs} +6 -6
- package/dist/{tools-jof0Bu54.mjs → tools-D91mq5Ib.mjs} +1 -1
- package/dist/{tools-c2fb0CF5.cjs → tools-DJIANHSh.cjs} +1 -1
- package/dist/transcriptCursor-B7T_gkQ0.mjs +102 -0
- package/dist/transcriptCursor-DcXGLeSc.cjs +106 -0
- package/dist/{uninstall-BB7WYYAk.mjs → uninstall-5xz3Xvhf.mjs} +3 -3
- package/dist/{uninstall-VPH5GfrA.cjs → uninstall-AtzOfdrj.cjs} +3 -3
- package/package.json +7 -7
- package/scripts/terminal_status_forwarder.cjs +89 -0
- package/dist/defaultPermissionMode-BnxJPVHT.mjs +0 -4
- package/dist/defaultPermissionMode-CxmTXUQR.cjs +0 -7
- package/dist/mirrorProtocol-BNLtoWjO.mjs +0 -170
- package/dist/mirrorProtocol-BUtmg1ws.cjs +0 -186
- package/dist/selfCheck-BgwJ3NGS.mjs +0 -84
- package/dist/specialCommands-BSqhYg5X.mjs +0 -52
- package/dist/specialCommands-DSsTeRej.cjs +0 -54
|
@@ -1,96 +1,98 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var auth = require('./auth-
|
|
4
|
-
var index = require('./index-
|
|
3
|
+
var auth = require('./auth-VzWpbo5P.cjs');
|
|
4
|
+
var index = require('./index-C9hI8a10.cjs');
|
|
5
5
|
var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
|
|
6
6
|
var node_crypto = require('node:crypto');
|
|
7
7
|
var cuid2 = require('@paralleldrive/cuid2');
|
|
8
8
|
var agentAttachments = require('./agentAttachments-Dbw8iMCZ.cjs');
|
|
9
|
-
var attachmentContent = require('./attachmentContent-
|
|
9
|
+
var attachmentContent = require('./attachmentContent-HcJqFQW8.cjs');
|
|
10
10
|
var ink = require('ink');
|
|
11
|
-
var sessionLock = require('./sessionLock-
|
|
11
|
+
var sessionLock = require('./sessionLock-LBWNjpHf.cjs');
|
|
12
12
|
var React = require('react');
|
|
13
|
-
var api = require('./api-
|
|
14
|
-
var codexAppServerClient = require('./codexAppServerClient-
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
13
|
+
var api = require('./api-BZYLRDM9.cjs');
|
|
14
|
+
var codexAppServerClient = require('./codexAppServerClient-TiW9OBk4.cjs');
|
|
15
|
+
var specialCommands = require('./specialCommands-DmJMKspE.cjs');
|
|
16
|
+
var logger = require('./logger-B_MWPbZz.cjs');
|
|
17
|
+
var BasePermissionHandler = require('./BasePermissionHandler-DHxYAK5L.cjs');
|
|
18
|
+
var BaseReasoningProcessor = require('./BaseReasoningProcessor-CsjVdt_H.cjs');
|
|
18
19
|
var node_child_process = require('node:child_process');
|
|
19
|
-
var persistence = require('./persistence-
|
|
20
|
-
var machineMetadata = require('./machineMetadata-
|
|
21
|
-
var configuration = require('./configuration-
|
|
22
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
20
|
+
var persistence = require('./persistence-BYGl0QYw.cjs');
|
|
21
|
+
var machineMetadata = require('./machineMetadata-BafS4JY8.cjs');
|
|
22
|
+
var configuration = require('./configuration-C3piBtxY.cjs');
|
|
23
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-BwXGKtg_.cjs');
|
|
23
24
|
var projectPath = require('./projectPath-ChLhdOyt.cjs');
|
|
24
25
|
var path = require('node:path');
|
|
25
|
-
var createSessionMetadata = require('./createSessionMetadata-
|
|
26
|
-
var deterministicJson = require('./deterministicJson-
|
|
26
|
+
var createSessionMetadata = require('./createSessionMetadata-zQSz3hgk.cjs');
|
|
27
|
+
var deterministicJson = require('./deterministicJson-C7O2ulKY.cjs');
|
|
27
28
|
var messageBuffer = require('./messageBuffer-fJMH6uY8.cjs');
|
|
28
|
-
var controlClient = require('./controlClient-
|
|
29
|
+
var controlClient = require('./controlClient-BI6Fw3fQ.cjs');
|
|
30
|
+
var defaultPermissionMode = require('./defaultPermissionMode-DNKNzk7l.cjs');
|
|
29
31
|
var authRelay = require('./authRelay-BdYkC1Po.cjs');
|
|
30
|
-
var setupOfflineReconnection = require('./setupOfflineReconnection-
|
|
32
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-C2LO3hSP.cjs');
|
|
31
33
|
var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
|
|
32
|
-
var specialCommands = require('./specialCommands-DSsTeRej.cjs');
|
|
33
34
|
var constants = require('./constants-VJ0N6WuG.cjs');
|
|
34
|
-
var defaultPermissionMode = require('./defaultPermissionMode-CxmTXUQR.cjs');
|
|
35
35
|
var editPaths = require('./editPaths-Bqp4OFPw.cjs');
|
|
36
|
-
var ensureDaemonRunning = require('./ensureDaemonRunning-
|
|
36
|
+
var ensureDaemonRunning = require('./ensureDaemonRunning-CCxX7MoP.cjs');
|
|
37
37
|
require('tweetnacl');
|
|
38
38
|
require('axios');
|
|
39
|
-
require('./time-
|
|
40
|
-
require('./browser-
|
|
39
|
+
require('./time-BXvtjhe9.cjs');
|
|
40
|
+
require('./browser-BoCV40yC.cjs');
|
|
41
41
|
require('open');
|
|
42
42
|
require('zod');
|
|
43
43
|
require('node:fs/promises');
|
|
44
|
-
require('./attachmentLimits-
|
|
44
|
+
require('./attachmentLimits-BEYEEBm8.cjs');
|
|
45
45
|
require('node:fs');
|
|
46
|
-
require('./lidState-
|
|
46
|
+
require('./lidState-Bc2K9H9l.cjs');
|
|
47
47
|
require('os');
|
|
48
48
|
require('child_process');
|
|
49
49
|
require('node:events');
|
|
50
50
|
require('socket.io-client');
|
|
51
51
|
require('./limits-C-a7gr04.cjs');
|
|
52
|
-
require('./registerCommonHandlers
|
|
52
|
+
require('./registerCommonHandlers-DVYB3iVn.cjs');
|
|
53
53
|
require('util');
|
|
54
54
|
require('fs/promises');
|
|
55
55
|
require('crypto');
|
|
56
56
|
require('path');
|
|
57
57
|
require('cross-spawn');
|
|
58
|
-
require('./sync-
|
|
58
|
+
require('./sync-Bvc-vh6C.cjs');
|
|
59
59
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
60
60
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
61
61
|
require('chalk');
|
|
62
62
|
require('node:readline');
|
|
63
|
-
require('./manager-
|
|
63
|
+
require('./manager-HrEj442o.cjs');
|
|
64
64
|
require('@anthropic-ai/sandbox-runtime');
|
|
65
65
|
require('node:os');
|
|
66
|
-
require('./package-
|
|
66
|
+
require('./package-C9ZP9bpX.cjs');
|
|
67
|
+
require('./rateLimitWindows-CusGIqlq.cjs');
|
|
67
68
|
require('node:util');
|
|
68
69
|
require('./detectCLI-DR9ZaN6B.cjs');
|
|
69
70
|
require('fs');
|
|
70
|
-
require('./localHappyAgentAuth-
|
|
71
|
+
require('./localHappyAgentAuth-T5GOvRha.cjs');
|
|
71
72
|
require('./types-CRS-srZK.cjs');
|
|
72
73
|
require('url');
|
|
73
|
-
require('./client-
|
|
74
|
-
require('./context-
|
|
75
|
-
require('./sessionOps-
|
|
74
|
+
require('./client-BKnKRLSt.cjs');
|
|
75
|
+
require('./context-Jrq4-eCZ.cjs');
|
|
76
|
+
require('./sessionOps-DzbZI3Eq.cjs');
|
|
76
77
|
require('./resources-JDPugcDq.cjs');
|
|
77
|
-
require('./tools-
|
|
78
|
-
require('./
|
|
79
|
-
require('./client-
|
|
80
|
-
require('./
|
|
78
|
+
require('./tools-DJIANHSh.cjs');
|
|
79
|
+
require('./reportProgressTool-D4KB_4cP.cjs');
|
|
80
|
+
require('./client-D0T5-6Ds.cjs');
|
|
81
|
+
require('./precheckCompat-CWOi5c9L.cjs');
|
|
82
|
+
require('./agentGuidance-BtBx2xxE.cjs');
|
|
83
|
+
require('./peerTools-Dkbu7gag.cjs');
|
|
81
84
|
require('./ids-B6ZC0HGt.cjs');
|
|
82
|
-
require('./remoteSessionClient-
|
|
85
|
+
require('./remoteSessionClient-PyUAIhwK.cjs');
|
|
83
86
|
require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
84
87
|
require('node:http');
|
|
85
88
|
require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
86
|
-
require('./
|
|
89
|
+
require('./downloadTarget-CWTb2-EM.cjs');
|
|
87
90
|
require('./terminals-B_bfC9c2.cjs');
|
|
88
91
|
require('./terminalTitleSuggest-DhvRFX3H.cjs');
|
|
89
92
|
require('./tmuxSocket-D-Xt6Vn-.cjs');
|
|
90
|
-
require('./bootstrap-
|
|
91
|
-
require('./agentGuidance-B5NATuFa.cjs');
|
|
93
|
+
require('./bootstrap-Dj8WBiR2.cjs');
|
|
92
94
|
require('./previewPath-B0rBdhy1.cjs');
|
|
93
|
-
require('./spawnHappyCLI-
|
|
95
|
+
require('./spawnHappyCLI-J4iEhfyZ.cjs');
|
|
94
96
|
require('./doctorReadiness-BCZGcN0a.cjs');
|
|
95
97
|
|
|
96
98
|
function getStartedSubagents(state) {
|
|
@@ -652,20 +654,29 @@ async function readChildThread(client, childId) {
|
|
|
652
654
|
return { envelopes: mapCodexThreadToSessionEnvelopes(thread) };
|
|
653
655
|
}
|
|
654
656
|
|
|
657
|
+
const HAPPY_MCP_SERVER_NAME = "happy";
|
|
655
658
|
class CodexPermissionHandler extends BasePermissionHandler.BasePermissionHandler {
|
|
656
659
|
// Exact tool names that should always be auto-approved. Include the bare
|
|
657
660
|
// form (used by Codex elicitation messages like `tool "change_title"`)
|
|
658
|
-
// and the MCP-qualified form for defense in depth.
|
|
661
|
+
// and the MCP-qualified form for defense in depth. A BARE name (and an ID
|
|
662
|
+
// prefix) only counts when the request comes from our own server: any
|
|
663
|
+
// other MCP server may expose a tool with the same name.
|
|
664
|
+
// B-556: report_progress only writes this session's own board line (same
|
|
665
|
+
// trust as change_title); an approval prompt per report would park the
|
|
666
|
+
// session in "waiting for you" at every milestone.
|
|
659
667
|
static ALWAYS_AUTO_APPROVE_NAMES = /* @__PURE__ */ new Set([
|
|
660
668
|
"change_title",
|
|
661
|
-
"mcp__happy__change_title"
|
|
669
|
+
"mcp__happy__change_title",
|
|
670
|
+
"report_progress",
|
|
671
|
+
"mcp__happy__report_progress"
|
|
662
672
|
]);
|
|
663
673
|
// Tool-call IDs that should auto-approve when they exactly match one of
|
|
664
674
|
// these values or start with `<name>-` (e.g. `change_title-1765385846663`).
|
|
665
675
|
// Substring matching was a bypass vector — any tool whose ID happened to
|
|
666
676
|
// contain `change_title` as a substring would be silently approved.
|
|
667
677
|
static ALWAYS_AUTO_APPROVE_ID_PREFIXES = [
|
|
668
|
-
"change_title"
|
|
678
|
+
"change_title",
|
|
679
|
+
"report_progress"
|
|
669
680
|
];
|
|
670
681
|
constructor(session) {
|
|
671
682
|
super(session);
|
|
@@ -673,7 +684,11 @@ class CodexPermissionHandler extends BasePermissionHandler.BasePermissionHandler
|
|
|
673
684
|
getLogPrefix() {
|
|
674
685
|
return "[Codex]";
|
|
675
686
|
}
|
|
676
|
-
shouldAutoApprove(toolName, toolCallId) {
|
|
687
|
+
shouldAutoApprove(toolName, toolCallId, serverName) {
|
|
688
|
+
if (toolName.startsWith(`mcp__${HAPPY_MCP_SERVER_NAME}__`)) {
|
|
689
|
+
return CodexPermissionHandler.ALWAYS_AUTO_APPROVE_NAMES.has(toolName);
|
|
690
|
+
}
|
|
691
|
+
if (serverName !== HAPPY_MCP_SERVER_NAME) return false;
|
|
677
692
|
if (CodexPermissionHandler.ALWAYS_AUTO_APPROVE_NAMES.has(toolName)) {
|
|
678
693
|
return true;
|
|
679
694
|
}
|
|
@@ -689,10 +704,11 @@ class CodexPermissionHandler extends BasePermissionHandler.BasePermissionHandler
|
|
|
689
704
|
* @param toolCallId - The unique ID of the tool call
|
|
690
705
|
* @param toolName - The name of the tool being called
|
|
691
706
|
* @param input - The input parameters for the tool
|
|
707
|
+
* @param serverName - MCP server of an elicitation (`mcpServer/elicitation/request`); undefined for exec/patch
|
|
692
708
|
* @returns Promise resolving to permission result
|
|
693
709
|
*/
|
|
694
|
-
async handleToolCall(toolCallId, toolName, input) {
|
|
695
|
-
if (this.shouldAutoApprove(toolName, toolCallId)) {
|
|
710
|
+
async handleToolCall(toolCallId, toolName, input, serverName) {
|
|
711
|
+
if (this.shouldAutoApprove(toolName, toolCallId, serverName)) {
|
|
696
712
|
logger.logger.debug(`${this.getLogPrefix()} Auto-approving tool ${toolName} (${toolCallId})`);
|
|
697
713
|
this.session.updateAgentState((currentState) => ({
|
|
698
714
|
...currentState,
|
|
@@ -915,6 +931,29 @@ const CodexDisplay = ({ messageBuffer, logPath, onExit }) => {
|
|
|
915
931
|
));
|
|
916
932
|
};
|
|
917
933
|
|
|
934
|
+
async function settleCodexSession(session, intent, deactivate, log = () => {
|
|
935
|
+
}) {
|
|
936
|
+
if (intent === "archive") {
|
|
937
|
+
session.updateMetadata((currentMetadata) => ({
|
|
938
|
+
...currentMetadata,
|
|
939
|
+
lifecycleState: "archived",
|
|
940
|
+
lifecycleStateSince: Date.now(),
|
|
941
|
+
archivedBy: "cli",
|
|
942
|
+
archiveReason: "User terminated"
|
|
943
|
+
}));
|
|
944
|
+
}
|
|
945
|
+
session.sendSessionDeath();
|
|
946
|
+
await session.flush();
|
|
947
|
+
if (intent === "offline") {
|
|
948
|
+
try {
|
|
949
|
+
await deactivate(session.sessionId);
|
|
950
|
+
} catch (error) {
|
|
951
|
+
log("[Codex] deactivate on signal failed", error);
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
await session.close();
|
|
955
|
+
}
|
|
956
|
+
|
|
918
957
|
function resolveCodexExecutionPolicy(permissionMode, sandboxManagedByHappy) {
|
|
919
958
|
if (sandboxManagedByHappy) {
|
|
920
959
|
return {
|
|
@@ -1279,7 +1318,7 @@ async function runCodex(opts) {
|
|
|
1279
1318
|
dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
|
|
1280
1319
|
...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
|
|
1281
1320
|
...forkedFromMessageId ? { forkedFromMessageId } : {},
|
|
1282
|
-
capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY]
|
|
1321
|
+
capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY]
|
|
1283
1322
|
});
|
|
1284
1323
|
metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
|
|
1285
1324
|
const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
|
|
@@ -1317,12 +1356,16 @@ async function runCodex(opts) {
|
|
|
1317
1356
|
throw new Error(`Failed to reactivate archived session ${response.id}`);
|
|
1318
1357
|
}
|
|
1319
1358
|
let reconnectSeeded = false;
|
|
1359
|
+
let wakingFromHibernation = false;
|
|
1320
1360
|
if (reconnectSessionId && response) {
|
|
1321
1361
|
const snapshot = await api$1.getSession(response.id, response.encryptionKey, response.encryptionVariant);
|
|
1322
1362
|
if (snapshot.ok) {
|
|
1323
1363
|
response = sessionLock.applyServerSnapshot(response, snapshot.session);
|
|
1324
1364
|
reconnectSeeded = true;
|
|
1325
1365
|
logger.logger.debug(`[START] Reconnect seeded from server: seq=${snapshot.session.seq} metadataVersion=${snapshot.session.metadataVersion}`);
|
|
1366
|
+
const wake = sessionLock.applyHibernationReplay(response);
|
|
1367
|
+
response = wake.response;
|
|
1368
|
+
wakingFromHibernation = wake.replaying;
|
|
1326
1369
|
} else {
|
|
1327
1370
|
response = sessionLock.withoutServerSnapshot(response);
|
|
1328
1371
|
logger.logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
|
|
@@ -1353,7 +1396,7 @@ async function runCodex(opts) {
|
|
|
1353
1396
|
if (reconnectSessionId) {
|
|
1354
1397
|
session.suppressNextArchiveSignal();
|
|
1355
1398
|
if (!reconnectSeeded) session.skipExistingMessages();
|
|
1356
|
-
void session.cancelUndeliveredQueuedInputs();
|
|
1399
|
+
if (!wakingFromHibernation) void session.cancelUndeliveredQueuedInputs();
|
|
1357
1400
|
session.updateMetadata((meta) => sessionLock.mergeReconnectMetadata(meta, metadata, Date.now()));
|
|
1358
1401
|
}
|
|
1359
1402
|
if (response) {
|
|
@@ -1517,7 +1560,10 @@ async function runCodex(opts) {
|
|
|
1517
1560
|
}
|
|
1518
1561
|
let abortController = new AbortController();
|
|
1519
1562
|
let shouldExit = false;
|
|
1520
|
-
|
|
1563
|
+
const hibernationExit = new defaultPermissionMode.HibernationExitLatch((a, b) => a === "archive" && b !== "archive");
|
|
1564
|
+
let hibernationStamp = null;
|
|
1565
|
+
let hibernationProbe = null;
|
|
1566
|
+
async function handleAbort(source) {
|
|
1521
1567
|
if (abortInProgress) {
|
|
1522
1568
|
await abortInProgress;
|
|
1523
1569
|
return;
|
|
@@ -1533,6 +1579,9 @@ async function runCodex(opts) {
|
|
|
1533
1579
|
gracePeriodMs: 3e3,
|
|
1534
1580
|
forceRestartOnTimeout: true
|
|
1535
1581
|
});
|
|
1582
|
+
if (source === "user" && abortResult.hadActiveTurn && abortResult.aborted) {
|
|
1583
|
+
session.sendSessionEvent({ type: "message", message: "Aborted by user" });
|
|
1584
|
+
}
|
|
1536
1585
|
if (abortResult.forcedRestart) {
|
|
1537
1586
|
logger.logger.warn("[Codex] Forced app-server restart after interrupt timeout");
|
|
1538
1587
|
session.sendSessionEvent({
|
|
@@ -1556,23 +1605,16 @@ async function runCodex(opts) {
|
|
|
1556
1605
|
await abortInProgress;
|
|
1557
1606
|
abortInProgress = null;
|
|
1558
1607
|
}
|
|
1559
|
-
const handleKillSession = async () => {
|
|
1608
|
+
const handleKillSession = async (intent = "archive") => {
|
|
1609
|
+
if (hibernationExit.intercept(intent)) {
|
|
1610
|
+
logger.logger.debug(`[Codex] ${intent} exit deferred: hibernation in progress`);
|
|
1611
|
+
return;
|
|
1612
|
+
}
|
|
1560
1613
|
logger.logger.debug("[Codex] Kill session requested - terminating process");
|
|
1561
|
-
await handleAbort();
|
|
1614
|
+
await handleAbort("kill");
|
|
1562
1615
|
logger.logger.debug("[Codex] Abort completed, proceeding with termination");
|
|
1563
1616
|
try {
|
|
1564
|
-
if (session)
|
|
1565
|
-
session.updateMetadata((currentMetadata) => ({
|
|
1566
|
-
...currentMetadata,
|
|
1567
|
-
lifecycleState: "archived",
|
|
1568
|
-
lifecycleStateSince: Date.now(),
|
|
1569
|
-
archivedBy: "cli",
|
|
1570
|
-
archiveReason: "User terminated"
|
|
1571
|
-
}));
|
|
1572
|
-
session.sendSessionDeath();
|
|
1573
|
-
await session.flush();
|
|
1574
|
-
await session.close();
|
|
1575
|
-
}
|
|
1617
|
+
if (session) await settleCodexSession(session, intent, (id) => api$1.deactivateSession(id), (m, e) => logger.logger.debug(m, safeCodexErrorMetadata(e)));
|
|
1576
1618
|
try {
|
|
1577
1619
|
await client.disconnect();
|
|
1578
1620
|
} catch (e) {
|
|
@@ -1593,8 +1635,8 @@ async function runCodex(opts) {
|
|
|
1593
1635
|
return { error: error instanceof Error ? error.message : "Child read failed" };
|
|
1594
1636
|
}
|
|
1595
1637
|
});
|
|
1596
|
-
session.rpcHandlerManager.registerHandler("abort", handleAbort);
|
|
1597
|
-
const disposeTermination = registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, handleKillSession, session, { processSignals: true });
|
|
1638
|
+
session.rpcHandlerManager.registerHandler("abort", () => handleAbort("user"));
|
|
1639
|
+
const disposeTermination = registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, () => handleKillSession("archive"), session, { processSignals: true, onSignal: () => handleKillSession("offline") });
|
|
1598
1640
|
const messageBuffer$1 = new messageBuffer.MessageBuffer();
|
|
1599
1641
|
const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
|
|
1600
1642
|
let inkInstance = null;
|
|
@@ -1606,7 +1648,7 @@ async function runCodex(opts) {
|
|
|
1606
1648
|
onExit: async () => {
|
|
1607
1649
|
logger.logger.debug("[codex]: Exiting agent via Ctrl-C");
|
|
1608
1650
|
shouldExit = true;
|
|
1609
|
-
await handleAbort();
|
|
1651
|
+
await handleAbort("exit");
|
|
1610
1652
|
}
|
|
1611
1653
|
}), {
|
|
1612
1654
|
exitOnCtrlC: false,
|
|
@@ -1655,7 +1697,7 @@ async function runCodex(opts) {
|
|
|
1655
1697
|
const toolName = params.type === "exec" ? "CodexBash" : params.type === "patch" ? "CodexPatch" : params.toolName ?? "McpTool";
|
|
1656
1698
|
const input = params.type === "exec" ? { command: params.command, cwd: params.cwd } : params.type === "patch" ? { changes: params.fileChanges } : params.input ?? {};
|
|
1657
1699
|
try {
|
|
1658
|
-
const result = await permissionHandler.handleToolCall(params.callId, toolName, input);
|
|
1700
|
+
const result = await permissionHandler.handleToolCall(params.callId, toolName, input, params.type === "mcp" ? params.serverName : void 0);
|
|
1659
1701
|
logger.logger.debug("[Codex] Permission request resolved");
|
|
1660
1702
|
return result.decision;
|
|
1661
1703
|
} catch (error) {
|
|
@@ -1664,6 +1706,7 @@ async function runCodex(opts) {
|
|
|
1664
1706
|
}
|
|
1665
1707
|
});
|
|
1666
1708
|
const editThrottle = new editPaths.EditReportThrottle();
|
|
1709
|
+
client.setRateLimitHandler((snapshot) => specialCommands.wrapperRateLimitReporter().observeCodex(snapshot));
|
|
1667
1710
|
client.setEventHandler((msg) => {
|
|
1668
1711
|
if (msg.type === "token_count") {
|
|
1669
1712
|
session.sendAgentUsageSnapshot("codex", msg);
|
|
@@ -1768,7 +1811,7 @@ async function runCodex(opts) {
|
|
|
1768
1811
|
const happyServer = await deterministicJson.startHappyServer(session);
|
|
1769
1812
|
const bridgeEntrypoint = path.join(projectPath.projectPath(), "bin", "very-happy-mcp.mjs");
|
|
1770
1813
|
const mcpServers = {
|
|
1771
|
-
|
|
1814
|
+
[HAPPY_MCP_SERVER_NAME]: {
|
|
1772
1815
|
command: process.execPath,
|
|
1773
1816
|
args: ["--no-warnings", "--no-deprecation", bridgeEntrypoint, "--url", happyServer.url]
|
|
1774
1817
|
}
|
|
@@ -1845,6 +1888,54 @@ async function runCodex(opts) {
|
|
|
1845
1888
|
}
|
|
1846
1889
|
}
|
|
1847
1890
|
let pending = null;
|
|
1891
|
+
if (opts.startedBy === "daemon" && !hasTTY && process.env.HAPPY_SESSION_VARIANT !== "assistant") {
|
|
1892
|
+
let keepAwakeLatch = false;
|
|
1893
|
+
const hibernationSnapshot = () => {
|
|
1894
|
+
const meta = session.getMetadata();
|
|
1895
|
+
return {
|
|
1896
|
+
flavor: "codex",
|
|
1897
|
+
resumable: typeof meta?.codexThreadId === "string" && meta.codexThreadId.length > 0,
|
|
1898
|
+
uiSession: true,
|
|
1899
|
+
...process.env.HAPPY_SPAWNED_BY ? { spawnedBy: process.env.HAPPY_SPAWNED_BY } : {},
|
|
1900
|
+
...meta?.tags ? { tags: meta.tags } : {},
|
|
1901
|
+
keepAwake: keepAwakeLatch = persistence.latchKeepAwake(meta?.keepAwake, keepAwakeLatch),
|
|
1902
|
+
...typeof meta?.keepAwake === "boolean" ? { keepAwakeSetting: meta.keepAwake } : {},
|
|
1903
|
+
thinking: thinking || turnActive,
|
|
1904
|
+
queuedInputs: messageQueue.size() + (session.promptQueueHasPending() ? 1 : 0),
|
|
1905
|
+
waitingForInput: messageQueue.isWaiting(),
|
|
1906
|
+
pendingRequests: Object.keys(session.getAgentState()?.requests ?? {}).length,
|
|
1907
|
+
backgroundTasks: codexActiveSubagents.size,
|
|
1908
|
+
lastActivityAt: session.lastActivityAt,
|
|
1909
|
+
...shouldExit && !hibernationExit.hibernating ? { exiting: true } : {}
|
|
1910
|
+
};
|
|
1911
|
+
};
|
|
1912
|
+
hibernationProbe = new defaultPermissionMode.HibernationProbe({
|
|
1913
|
+
onKeepAwakeLatched: () => {
|
|
1914
|
+
if (session.getMetadata()?.keepAwake === void 0) session.updateMetadata((m) => m.keepAwake === void 0 ? { ...m, keepAwake: true } : m);
|
|
1915
|
+
},
|
|
1916
|
+
checkMs: persistence.resolveCheckMs(),
|
|
1917
|
+
snapshot: hibernationSnapshot,
|
|
1918
|
+
ask: (report) => controlClient.checkDaemonHibernation({ sessionId: session.sessionId, pid: process.pid, report }),
|
|
1919
|
+
commit: (idleMs) => defaultPermissionMode.commitHibernation({
|
|
1920
|
+
client: session,
|
|
1921
|
+
claimExit: () => !shouldExit && hibernationExit.begin(),
|
|
1922
|
+
exitRequested: () => hibernationExit.exitRequested,
|
|
1923
|
+
markCommitted: () => hibernationExit.commit(),
|
|
1924
|
+
releaseExit: () => {
|
|
1925
|
+
const deferred = hibernationExit.release();
|
|
1926
|
+
if (deferred) void handleKillSession(deferred);
|
|
1927
|
+
},
|
|
1928
|
+
recheck: () => persistence.evaluateWrapperIdle(hibernationSnapshot(), idleMs, Date.now()),
|
|
1929
|
+
idleMs,
|
|
1930
|
+
finish: async (stamp) => {
|
|
1931
|
+
hibernationStamp = stamp;
|
|
1932
|
+
shouldExit = true;
|
|
1933
|
+
abortController.abort();
|
|
1934
|
+
}
|
|
1935
|
+
})
|
|
1936
|
+
});
|
|
1937
|
+
hibernationProbe.start();
|
|
1938
|
+
}
|
|
1848
1939
|
idleRelease.arm();
|
|
1849
1940
|
while (!shouldExit) {
|
|
1850
1941
|
logActiveHandles("loop-top");
|
|
@@ -1981,6 +2072,7 @@ async function runCodex(opts) {
|
|
|
1981
2072
|
}
|
|
1982
2073
|
} finally {
|
|
1983
2074
|
disposeTermination?.();
|
|
2075
|
+
hibernationProbe?.stop();
|
|
1984
2076
|
session.closePromptQueueDrain();
|
|
1985
2077
|
logger.logger.debug("[codex]: Final cleanup start");
|
|
1986
2078
|
logActiveHandles("cleanup-start");
|
|
@@ -2029,6 +2121,15 @@ async function runCodex(opts) {
|
|
|
2029
2121
|
messageBuffer$1.clear();
|
|
2030
2122
|
logActiveHandles("cleanup-end");
|
|
2031
2123
|
logger.logger.debug("[codex]: Final cleanup completed");
|
|
2124
|
+
if (hibernationExit.hibernating && hibernationStamp) {
|
|
2125
|
+
try {
|
|
2126
|
+
await api$1.deactivateSession(session.sessionId);
|
|
2127
|
+
} catch (error) {
|
|
2128
|
+
logger.logger.debug("[codex]: deactivate after hibernation failed", safeCodexErrorMetadata(error));
|
|
2129
|
+
}
|
|
2130
|
+
logger.logger.debug("[codex]: hibernated; exiting");
|
|
2131
|
+
process.exit(0);
|
|
2132
|
+
}
|
|
2032
2133
|
}
|
|
2033
2134
|
}
|
|
2034
2135
|
|
|
@@ -2,15 +2,15 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
|
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { homedir } from 'os';
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
|
-
import { l as logger } from './logger-
|
|
5
|
+
import { l as logger } from './logger-CbBv3q_b.mjs';
|
|
6
6
|
import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './constants-BC4St0xd.mjs';
|
|
7
7
|
import 'chalk';
|
|
8
8
|
import 'node:util';
|
|
9
|
-
import './configuration-
|
|
9
|
+
import './configuration-WspKd2C2.mjs';
|
|
10
10
|
import 'node:fs';
|
|
11
11
|
import 'node:os';
|
|
12
12
|
import 'node:path';
|
|
13
|
-
import './package-
|
|
13
|
+
import './package-DU1DxhH9.mjs';
|
|
14
14
|
import 'node:fs/promises';
|
|
15
15
|
import './trimIdent-BAjmv_TG.mjs';
|
|
16
16
|
|
|
@@ -4,15 +4,15 @@ var fs = require('fs');
|
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var os = require('os');
|
|
6
6
|
var child_process = require('child_process');
|
|
7
|
-
var logger = require('./logger-
|
|
7
|
+
var logger = require('./logger-B_MWPbZz.cjs');
|
|
8
8
|
var constants = require('./constants-VJ0N6WuG.cjs');
|
|
9
9
|
require('chalk');
|
|
10
10
|
require('node:util');
|
|
11
|
-
require('./configuration-
|
|
11
|
+
require('./configuration-C3piBtxY.cjs');
|
|
12
12
|
require('node:fs');
|
|
13
13
|
require('node:os');
|
|
14
14
|
require('node:path');
|
|
15
|
-
require('./package-
|
|
15
|
+
require('./package-C9ZP9bpX.cjs');
|
|
16
16
|
require('node:fs/promises');
|
|
17
17
|
require('./trimIdent-4gvk9Wk6.cjs');
|
|
18
18
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var node_fs = require('node:fs');
|
|
4
4
|
var os = require('node:os');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var _package = require('./package-
|
|
6
|
+
var _package = require('./package-C9ZP9bpX.cjs');
|
|
7
7
|
var promises = require('node:fs/promises');
|
|
8
8
|
|
|
9
9
|
const PRIVATE_DIRECTORY_MODE = 448;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mkdirSync, chmodSync, readdirSync, statSync, appendFileSync, writeFileSync, existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { p as packageJson } from './package-
|
|
4
|
+
import { p as packageJson } from './package-DU1DxhH9.mjs';
|
|
5
5
|
import { mkdir, chmod, writeFile } from 'node:fs/promises';
|
|
6
6
|
|
|
7
7
|
const PRIVATE_DIRECTORY_MODE = 448;
|
|
@@ -167,4 +167,4 @@ function readSettingsStringSync(settingsFile, key) {
|
|
|
167
167
|
}
|
|
168
168
|
const configuration = new Configuration();
|
|
169
169
|
|
|
170
|
-
export { PRIVATE_FILE_MODE as P,
|
|
170
|
+
export { PRIVATE_FILE_MODE as P, hardenPrivateFileSync as a, writePrivateFile as b, configuration as c, appendPrivateFileSync as d, ensurePrivateDirectory as e, ensurePrivateDirectorySync as f, hardenPrivateFile as h, normalizeHttpEndpoint as n, writePrivateFileSync as w };
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var os = require('os');
|
|
5
5
|
var path = require('path');
|
|
6
|
-
var persistence = require('./persistence-
|
|
7
|
-
var api = require('./api-
|
|
8
|
-
var configuration = require('./configuration-
|
|
6
|
+
var persistence = require('./persistence-BYGl0QYw.cjs');
|
|
7
|
+
var api = require('./api-BZYLRDM9.cjs');
|
|
8
|
+
var configuration = require('./configuration-C3piBtxY.cjs');
|
|
9
9
|
var http = require('http');
|
|
10
10
|
var crypto = require('crypto');
|
|
11
|
-
var browser = require('./browser-
|
|
11
|
+
var browser = require('./browser-BoCV40yC.cjs');
|
|
12
12
|
var child_process = require('child_process');
|
|
13
13
|
var util = require('util');
|
|
14
14
|
require('node:fs/promises');
|
|
@@ -17,29 +17,29 @@ require('zod');
|
|
|
17
17
|
require('./authRelay-BdYkC1Po.cjs');
|
|
18
18
|
require('node:crypto');
|
|
19
19
|
require('tweetnacl');
|
|
20
|
-
require('./logger-
|
|
20
|
+
require('./logger-B_MWPbZz.cjs');
|
|
21
21
|
require('node:util');
|
|
22
22
|
require('node:path');
|
|
23
|
-
require('node:os');
|
|
24
|
-
require('./package-UkmvSFsg.cjs');
|
|
25
23
|
require('axios');
|
|
26
|
-
require('./lidState-
|
|
24
|
+
require('./lidState-Bc2K9H9l.cjs');
|
|
27
25
|
require('node:events');
|
|
28
26
|
require('socket.io-client');
|
|
29
|
-
require('./attachmentLimits-
|
|
30
|
-
require('./index-
|
|
27
|
+
require('./attachmentLimits-BEYEEBm8.cjs');
|
|
28
|
+
require('./index-C9hI8a10.cjs');
|
|
31
29
|
require('@paralleldrive/cuid2');
|
|
32
30
|
require('./limits-C-a7gr04.cjs');
|
|
33
|
-
require('./time-
|
|
34
|
-
require('./registerCommonHandlers
|
|
31
|
+
require('./time-BXvtjhe9.cjs');
|
|
32
|
+
require('./registerCommonHandlers-DVYB3iVn.cjs');
|
|
35
33
|
require('fs/promises');
|
|
36
34
|
require('cross-spawn');
|
|
37
35
|
require('./projectPath-ChLhdOyt.cjs');
|
|
38
36
|
require('url');
|
|
39
|
-
require('./sync-
|
|
37
|
+
require('./sync-Bvc-vh6C.cjs');
|
|
40
38
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
41
|
-
require('./controlClient-
|
|
39
|
+
require('./controlClient-BI6Fw3fQ.cjs');
|
|
42
40
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
41
|
+
require('node:os');
|
|
42
|
+
require('./package-C9ZP9bpX.cjs');
|
|
43
43
|
require('open');
|
|
44
44
|
|
|
45
45
|
const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { homedir } from 'os';
|
|
3
3
|
import { join } from 'path';
|
|
4
|
-
import { readCredentialsForConfiguredRelay } from './persistence-
|
|
5
|
-
import { A as ApiClient } from './api-
|
|
6
|
-
import { f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-
|
|
4
|
+
import { c as readCredentialsForConfiguredRelay } from './persistence-ON0zpHfb.mjs';
|
|
5
|
+
import { A as ApiClient } from './api-CReZazeT.mjs';
|
|
6
|
+
import { f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-WspKd2C2.mjs';
|
|
7
7
|
import { createServer } from 'http';
|
|
8
8
|
import { randomBytes, createHash } from 'crypto';
|
|
9
|
-
import { o as openBrowser } from './browser-
|
|
9
|
+
import { o as openBrowser } from './browser-BCFIHOvo.mjs';
|
|
10
10
|
import { exec } from 'child_process';
|
|
11
11
|
import { promisify } from 'util';
|
|
12
12
|
import 'node:fs/promises';
|
|
@@ -15,29 +15,29 @@ import 'zod';
|
|
|
15
15
|
import './authRelay-DSAvg1uv.mjs';
|
|
16
16
|
import 'node:crypto';
|
|
17
17
|
import 'tweetnacl';
|
|
18
|
-
import './logger-
|
|
18
|
+
import './logger-CbBv3q_b.mjs';
|
|
19
19
|
import 'node:util';
|
|
20
20
|
import 'node:path';
|
|
21
|
-
import 'node:os';
|
|
22
|
-
import './package-VIUXrYZ1.mjs';
|
|
23
21
|
import 'axios';
|
|
24
|
-
import './lidState-
|
|
22
|
+
import './lidState-B2ZxdREe.mjs';
|
|
25
23
|
import 'node:events';
|
|
26
24
|
import 'socket.io-client';
|
|
27
|
-
import './attachmentLimits-
|
|
28
|
-
import './index-
|
|
25
|
+
import './attachmentLimits-CxG3T18E.mjs';
|
|
26
|
+
import './index-B0HEEYGh.mjs';
|
|
29
27
|
import '@paralleldrive/cuid2';
|
|
30
28
|
import './limits-DIo7rEBR.mjs';
|
|
31
|
-
import './time-
|
|
32
|
-
import './registerCommonHandlers-
|
|
29
|
+
import './time-PG5Dfwdv.mjs';
|
|
30
|
+
import './registerCommonHandlers-B0PVff2U.mjs';
|
|
33
31
|
import 'fs/promises';
|
|
34
32
|
import 'cross-spawn';
|
|
35
33
|
import './projectPath-BTBIMB57.mjs';
|
|
36
34
|
import 'url';
|
|
37
|
-
import './sync-
|
|
35
|
+
import './sync-CCwYpJMS.mjs';
|
|
38
36
|
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
39
|
-
import './controlClient-
|
|
37
|
+
import './controlClient-DTheOlvC.mjs';
|
|
40
38
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
39
|
+
import 'node:os';
|
|
40
|
+
import './package-DU1DxhH9.mjs';
|
|
41
41
|
import 'open';
|
|
42
42
|
|
|
43
43
|
const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
|
|
@@ -3,7 +3,7 @@ import { constants } from 'node:fs';
|
|
|
3
3
|
import { isAbsolute, join, dirname } from 'node:path';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
import { n as normalizeHttpEndpoint, c as configuration } from './configuration-
|
|
6
|
+
import { n as normalizeHttpEndpoint, c as configuration } from './configuration-WspKd2C2.mjs';
|
|
7
7
|
|
|
8
8
|
const TeamScopeSchema = z.object({
|
|
9
9
|
serverUrl: z.string(),
|
|
@@ -5,7 +5,7 @@ var node_fs = require('node:fs');
|
|
|
5
5
|
var path = require('node:path');
|
|
6
6
|
var node_crypto = require('node:crypto');
|
|
7
7
|
var z = require('zod');
|
|
8
|
-
var configuration = require('./configuration-
|
|
8
|
+
var configuration = require('./configuration-C3piBtxY.cjs');
|
|
9
9
|
|
|
10
10
|
const TeamScopeSchema = z.z.object({
|
|
11
11
|
serverUrl: z.z.string(),
|