very-happy-cli 0.2.188 → 0.2.190
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AcpBackend-2loP7MpF.mjs → AcpBackend-Dd1h-Rgt.mjs} +3 -3
- package/dist/{AcpBackend-B8AYkp5n.cjs → AcpBackend-dkRv9QHm.cjs} +3 -3
- package/dist/{AcpSessionManager-CLqo9R9Y.cjs → AcpSessionManager-AqWAqahm.cjs} +3 -3
- package/dist/{AcpSessionManager-C17doAoR.mjs → AcpSessionManager-QBZ-CIf7.mjs} +4 -4
- package/dist/{BasePermissionHandler-CrfyUmqO.mjs → BasePermissionHandler-CLp1ge-4.mjs} +1 -1
- package/dist/{BasePermissionHandler-C8UEcFz0.cjs → BasePermissionHandler-CpSugp7Z.cjs} +1 -1
- package/dist/{acpSessionResume-OuYlLGxL.cjs → acpSessionResume-CZao6QEd.cjs} +1 -1
- package/dist/{acpSessionResume-F705a1cF.mjs → acpSessionResume-CcpDuIO5.mjs} +1 -1
- package/dist/{agentHome-Dc7LYF3d.mjs → agentHome-BJGRA2Kx.mjs} +4 -4
- package/dist/{agentHome-DsKHJ_Sf.cjs → agentHome-fIUqT-pn.cjs} +4 -4
- package/dist/{api-BOqjYd5r.cjs → api-CXL6jp-p.cjs} +18 -9
- package/dist/{api-DNKa7kVy.mjs → api-Dw8gFsQi.mjs} +19 -10
- package/dist/{apiMachine-Di1G9ECW.mjs → apiMachine-BBNEtjf7.mjs} +56 -15
- package/dist/{apiMachine--rcPpMmt.cjs → apiMachine-C6UqHoPF.cjs} +55 -14
- package/dist/{attachmentContent-C9S4ekAz.mjs → attachmentContent-CC4yIrSm.mjs} +2 -2
- package/dist/{attachmentContent-BFRMLong.cjs → attachmentContent-NmVfKp-B.cjs} +2 -2
- package/dist/{auth-CXmI92aj.cjs → auth-Bb_SL2os.cjs} +5 -5
- package/dist/{auth-Bzwo_vOM.mjs → auth-Bh6SUoGi.mjs} +8 -8
- package/dist/{auth-BNhhk2Fr.mjs → auth-Bj0psrD2.mjs} +5 -5
- package/dist/{auth-CQtfznF0.cjs → auth-DKa4MsAi.cjs} +8 -8
- package/dist/{auto-DXLdaX5O.cjs → auto-C9Qohh0P.cjs} +17 -16
- package/dist/{auto-DHYOLnXB.mjs → auto-DK7pbCnV.mjs} +19 -18
- package/dist/{bootstrap-Di38SnpN.mjs → bootstrap-Ct9Nb4sv.mjs} +2 -2
- package/dist/{bootstrap-eJ1l7VYl.cjs → bootstrap-DBJB0y-H.cjs} +2 -2
- package/dist/{browser-6Cg7G6bb.mjs → browser-BGxDRhHy.mjs} +1 -1
- package/dist/{browser-D3uBFRQu.cjs → browser-CLJWcodR.cjs} +1 -1
- package/dist/{claudeLocal-BBaE4QF_.cjs → claudeLocal-B6YDYlnY.cjs} +4 -4
- package/dist/{claudeLocal-CqaEs-81.mjs → claudeLocal-Ux31hZyC.mjs} +5 -5
- package/dist/{claudeLocalLauncher-BDUPxtsI.mjs → claudeLocalLauncher-D06QijMw.mjs} +10 -10
- package/dist/{claudeLocalLauncher-wPxKtH_P.cjs → claudeLocalLauncher-DFvmF8rC.cjs} +9 -9
- package/dist/{claudeSessionFork-DzWFzj9m.mjs → claudeSessionFork-D2GI7P59.mjs} +1 -1
- package/dist/{claudeSessionFork-CmY25Fl3.cjs → claudeSessionFork-DTLZ2rek.cjs} +1 -1
- package/dist/{client-DmY03OZZ.cjs → client-Bffkrs5p.cjs} +2 -2
- package/dist/{client-C2HcMqRF.cjs → client-CARZ_lNS.cjs} +3 -3
- package/dist/{client-agH03Irm.cjs → client-CMKGrnmT.cjs} +2 -2
- package/dist/{client-DWws_aQK.mjs → client-CnGNYidN.mjs} +2 -2
- package/dist/{client-qJ0y8fus.mjs → client-CtL0Vtww.mjs} +4 -4
- package/dist/{client-DcDE6Ifk.mjs → client-DZkBUoh9.mjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +16 -15
- package/dist/codex/happyMcpStdioBridge.mjs +17 -16
- package/dist/{codexAppServerClient-DgE99i7X.mjs → codexAppServerClient-CLc5nhLT.mjs} +37 -6
- package/dist/{codexAppServerClient-DwzC8LR0.cjs → codexAppServerClient-CpT9F6EM.cjs} +37 -6
- package/dist/{codexCommand-1vFEA1KT.cjs → codexCommand-39kH99SJ.cjs} +148 -61
- package/dist/{codexCommand-DUSVzbKh.mjs → codexCommand-Dliq3EBv.mjs} +143 -56
- package/dist/{codexTermination-DuDPyBRR.cjs → codexTermination-ByW7tRjr.cjs} +1 -1
- package/dist/{codexTermination-Bybovr2z.mjs → codexTermination-ORIw0gpU.mjs} +1 -1
- package/dist/{codexThreadFork-DNekT4nQ.cjs → codexThreadFork-5kwoKjMu.cjs} +11 -17
- package/dist/{codexThreadFork-R76RU5H0.mjs → codexThreadFork-DobPd19R.mjs} +11 -17
- package/dist/{config-C4xOL5bH.cjs → config-CeIzCsfj.cjs} +3 -3
- package/dist/{config-BrzZ0O-6.mjs → config-CxSsGO1Z.mjs} +3 -3
- package/dist/{configuration-BZHpFD7K.mjs → configuration-Dechcvd-.mjs} +1 -1
- package/dist/{configuration-DyPW9mVa.cjs → configuration-Dt5lKW3P.cjs} +1 -1
- package/dist/{connect-DurKwMEo.cjs → connect-NPDzIVC6.cjs} +12 -12
- package/dist/{connect-Cw_INlj8.mjs → connect-UwQHvCpR.mjs} +13 -13
- package/dist/{context-2xDvjkQp.cjs → context-BdZssgF0.cjs} +1 -1
- package/dist/{context-t7YV0aZc.mjs → context-C9JbJoNe.mjs} +1 -1
- package/dist/{controlClient-DvFaPsg6.cjs → controlClient-BRk65BRO.cjs} +3 -3
- package/dist/{controlClient-Bw56NIrj.mjs → controlClient-D7NGfmtq.mjs} +3 -3
- package/dist/{createSessionMetadata-Dpg6bV6f.cjs → createSessionMetadata-B_HZCDj_.cjs} +2 -2
- package/dist/{createSessionMetadata-Dn5BkLfU.mjs → createSessionMetadata-DyhFKAby.mjs} +2 -2
- package/dist/defaultPermissionMode-BnxJPVHT.mjs +4 -0
- package/dist/defaultPermissionMode-CxmTXUQR.cjs +7 -0
- package/dist/{deterministicJson-D0BrV1FD.cjs → deterministicJson-BEygolBQ.cjs} +12 -12
- package/dist/{deterministicJson-CsRckxVq.mjs → deterministicJson-DNmMVhFu.mjs} +13 -13
- package/dist/{doctor-CYe4d9kU.cjs → doctor-B9lW1WlG.cjs} +7 -7
- package/dist/{doctor-B4HQiW6j.mjs → doctor-BdBi7TFZ.mjs} +7 -7
- package/dist/{downloadTarget-tYMV_VHo.mjs → downloadTarget-CGojGjaN.mjs} +6 -6
- package/dist/{downloadTarget-CuhBVvuC.cjs → downloadTarget-DS0zT2AU.cjs} +6 -6
- package/dist/{ensureDaemonRunning-DVtIG9z7.mjs → ensureDaemonRunning-BOdbryDM.mjs} +5 -5
- package/dist/{ensureDaemonRunning-Ce3BlWiR.cjs → ensureDaemonRunning-Bibp6vhe.cjs} +5 -5
- package/dist/exitAfterFlush-AbKNZM0N.mjs +23 -0
- package/dist/exitAfterFlush-DIT_sIxR.cjs +25 -0
- package/dist/{handleResumeCommand-BU1uMNyv.mjs → handleResumeCommand-CgLzBYne.mjs} +5 -5
- package/dist/{handleResumeCommand-CLxsmAW0.cjs → handleResumeCommand-DXOuWr4p.cjs} +5 -5
- package/dist/{agentAttachments-Dbw8iMCZ.cjs → heldInput-BOtqFO2r.cjs} +27 -0
- package/dist/heldInput-C69lA2dH.mjs +44 -0
- package/dist/{index-KwuXqLwe.cjs → index-Bs5FD8JF.cjs} +4 -4
- package/dist/{index-ChX0eVXw.mjs → index-CBHfkQNY.mjs} +142 -60
- package/dist/{index-DoXbGEAi.cjs → index-CwRW11hT.cjs} +3 -3
- package/dist/{index-CVHRt3SS.mjs → index-DUByZsKe.mjs} +4 -4
- package/dist/{index-wWJJAQRk.cjs → index-DXSIi6j_.cjs} +4 -4
- package/dist/{index-DDz0Ftoy.mjs → index-Db0HIC-k.mjs} +4 -4
- package/dist/{index-WKyN-bNy.mjs → index-DmqsRnV7.mjs} +1 -1
- package/dist/{index-DG1kGjkF.cjs → index-f8oDidjV.cjs} +142 -60
- package/dist/{index-B1OxWiNG.mjs → index-rNTX33in.mjs} +3 -3
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-cAYvHxXR.cjs → install-CXIL_FYx.cjs} +3 -3
- package/dist/{install-CMa_FOWu.mjs → install-DfPrEWGG.mjs} +3 -3
- package/dist/lib.cjs +11 -11
- package/dist/lib.d.cts +61 -1
- package/dist/lib.d.mts +61 -1
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-D-lsD1FS.mjs → lidState-D0DF20oG.mjs} +1 -1
- package/dist/{lidState-d1vgQ3n7.cjs → lidState-q_XFYg33.cjs} +1 -1
- package/dist/{localHappyAgentAuth-wvDp-nGj.mjs → localHappyAgentAuth-BBhM4Qk1.mjs} +1 -1
- package/dist/{localHappyAgentAuth-DucSnCg3.cjs → localHappyAgentAuth-CKNW-MXw.cjs} +1 -1
- package/dist/{logger-C3vZG6Q0.cjs → logger-BBRTTVsQ.cjs} +2 -2
- package/dist/{logger-RpzJ4d8V.mjs → logger-CL7pin9b.mjs} +2 -2
- package/dist/{machineMetadata-CiQ2_1Mq.mjs → machineMetadata-DP06qdBk.mjs} +3 -3
- package/dist/{machineMetadata-CAvFq1Jg.cjs → machineMetadata-DnFNlrVK.cjs} +3 -3
- package/dist/{main-ChpYcFZi.cjs → main-DLOXykOR.cjs} +49 -48
- package/dist/{main-IPhaImjm.mjs → main-DO7nRvhf.mjs} +49 -48
- package/dist/{mcp-CWnMvju6.mjs → mcp-C-4sPTae.mjs} +16 -15
- package/dist/{mcp-2xF232hL.cjs → mcp-Du0MgR7e.cjs} +15 -14
- package/dist/{mirrorProtocol-CVzPObON.cjs → mirrorProtocol-GuWMxLkh.cjs} +2 -2
- package/dist/{mirrorProtocol-Dr7fNq8V.mjs → mirrorProtocol-dkq2ZENA.mjs} +3 -3
- package/dist/{package-CwB8rFJt.mjs → package-C6uiXULx.mjs} +7 -7
- package/dist/{package-Gnf_935w.cjs → package-DrY090nZ.cjs} +7 -7
- package/dist/{panels-DTlTsndU.cjs → panels-4DRBKHZP.cjs} +5 -5
- package/dist/{panels-L1mSkC-y.mjs → panels-DXYdJA6n.mjs} +5 -5
- package/dist/{peerTools-C1E5cQ86.cjs → peerTools-5ZM4spcZ.cjs} +5 -5
- package/dist/{peerTools-2_8Bw9PU.mjs → peerTools-dY1aJez4.mjs} +5 -5
- package/dist/{persistence-CqtjFiD1.cjs → persistence-Bl5S3TLB.cjs} +6 -2
- package/dist/{persistence-Bn4qEbDg.mjs → persistence-Dogj7JIp.mjs} +6 -3
- package/dist/{piRunnerArgs-BI8yQRBZ.cjs → piRunnerArgs-C3jZ1M6b.cjs} +1 -1
- package/dist/{piRunnerArgs-DWBb63W9.mjs → piRunnerArgs-D8nN_Iit.mjs} +1 -1
- package/dist/{piRuntime--mQ43MSM.cjs → piRuntime-Bd9-eq6M.cjs} +1 -1
- package/dist/{piRuntime-Do8oqbm3.mjs → piRuntime-BoeMsAXK.mjs} +1 -1
- package/dist/{piTerminal-BzcvLFsP.cjs → piTerminal-C3j1ca3x.cjs} +17 -16
- package/dist/{piTerminal-GC1KHTYQ.mjs → piTerminal-GEPkIGD4.mjs} +18 -17
- package/dist/{pushNotifications-Bb-QSqXw.cjs → pushNotifications-CfspRcl-.cjs} +20 -2
- package/dist/{pushNotifications-BThg4nVd.mjs → pushNotifications-dUceOIni.mjs} +21 -3
- package/dist/{query-Bz3pocKH.cjs → query-DjsVgG3E.cjs} +1 -1
- package/dist/{query-CkgIJ_Dy.mjs → query-iYH-tm7L.mjs} +1 -1
- package/dist/{rateLimitReporter-BkHyvLru.cjs → rateLimitReporter-DUu2KydZ.cjs} +3 -3
- package/dist/{rateLimitReporter-Iw4k3Bbr.mjs → rateLimitReporter-jeVi-fym.mjs} +3 -3
- package/dist/{rateLimitWindows-Bm_dcQGW.cjs → rateLimitWindows-Bx3ROBP5.cjs} +1 -1
- package/dist/{rateLimitWindows-CQ4tIQnx.mjs → rateLimitWindows-CEn0DXaX.mjs} +1 -1
- package/dist/{registerCommonHandlers-CIs6H2DV.cjs → registerCommonHandlers-Beun-cQv.cjs} +2 -2
- package/dist/{registerCommonHandlers-CaWl9ll1.mjs → registerCommonHandlers-DWZ7mfdt.mjs} +2 -2
- package/dist/{specialCommands-BsvSoDhC.cjs → registerKillSessionHandler-CA1FFr_F.cjs} +15 -62
- package/dist/{specialCommands-DHU7TNeK.mjs → registerKillSessionHandler-CzgklwLG.mjs} +17 -60
- package/dist/{remoteSessionClient-uPj7omsw.mjs → remoteSessionClient-BiC2KDew.mjs} +5 -5
- package/dist/{remoteSessionClient-DgUMfPW4.cjs → remoteSessionClient-DGFI__5Z.cjs} +5 -5
- package/dist/{reportProgressTool-DUEq3xAL.mjs → reportProgressTool-CgPy6n_7.mjs} +3 -3
- package/dist/{reportProgressTool-CaJ8EwLq.cjs → reportProgressTool-CvPGov1F.cjs} +2 -2
- package/dist/{run-DTUJBD6p.mjs → run-B_gFgJVB.mjs} +393 -42
- package/dist/{run-DyyGMqND.cjs → run-rPqQwDi_.cjs} +391 -40
- package/dist/{runClaude-DTNvIz2J.mjs → runClaude-CykqeXK7.mjs} +26 -23
- package/dist/{runClaude-8JDaPoGQ.cjs → runClaude-DM8gm8iu.cjs} +27 -24
- package/dist/{runClaudeDeps-CgGkgg7e.mjs → runClaudeDeps-D2phXGut.mjs} +106 -46
- package/dist/{runClaudeDeps-BeLo5zss.cjs → runClaudeDeps-DGAomimZ.cjs} +101 -40
- package/dist/{runGemini-BSOdU563.cjs → runGemini-CXTeSOZp.cjs} +50 -49
- package/dist/{runGemini-eU8UOzfc.mjs → runGemini-CtWCVkj5.mjs} +49 -48
- package/dist/{runOpenClaw-D8RZiA1e.mjs → runOpenClaw-BBdjlViJ.mjs} +25 -24
- package/dist/{runOpenClaw-CYyFoGRZ.cjs → runOpenClaw-CH_9_RyZ.cjs} +26 -25
- package/dist/{sandbox-C8zfNX-4.cjs → sandbox-Bb5IMun3.cjs} +4 -4
- package/dist/{sandbox-DlPahdhl.mjs → sandbox-DGmXZ6Zz.mjs} +4 -4
- package/dist/selfCheck-BfK945YQ.mjs +86 -0
- package/dist/{selfCheck-D28nvuPJ.cjs → selfCheck-CccwNTTK.cjs} +37 -37
- package/dist/{send-DBpv-1eh.mjs → send-B6rHg8GT.mjs} +9 -8
- package/dist/{send-C58kX4qz.cjs → send-BpiXPkDo.cjs} +9 -8
- package/dist/{server-J5K6pOox.mjs → server-BkdAyHhC.mjs} +4 -4
- package/dist/{server-I_CETZzn.cjs → server-DHUzjApC.cjs} +6 -6
- package/dist/{sessionLock-DjE7O0LS.cjs → sessionLock-BFBReiKq.cjs} +134 -3
- package/dist/{sessionLock-C7Wg1RVd.mjs → sessionLock-Ca_bIo50.mjs} +121 -4
- package/dist/{sessionOps-CYjMT7Ad.mjs → sessionOps-CA2kpm66.mjs} +36 -5
- package/dist/{sessionOps-DGMpl9NB.cjs → sessionOps-DeWVqpe4.cjs} +36 -4
- package/dist/{sessionProvider-DVtxrOuM.cjs → sessionProvider-VFbtUmMR.cjs} +5 -5
- package/dist/{sessionProvider-TLiFn9kD.mjs → sessionProvider-g18IiK74.mjs} +5 -5
- package/dist/{sessionScanner-BZ1ZSn6I.cjs → sessionScanner-CGzsN8V6.cjs} +3 -3
- package/dist/{sessionScanner-CknV1IlN.mjs → sessionScanner-DDDud5re.mjs} +3 -3
- package/dist/{sessions-DU4bxkap.mjs → sessions-B4d50sCI.mjs} +36 -26
- package/dist/{sessions-CTkBKs5U.cjs → sessions-CKJPWFgu.cjs} +37 -25
- package/dist/{setupOfflineReconnection-DaOXnGuH.mjs → setupOfflineReconnection-CyPNgyCe.mjs} +2 -2
- package/dist/{setupOfflineReconnection-CQHNuP_0.cjs → setupOfflineReconnection-DPXRo_zf.cjs} +2 -2
- package/dist/{spawn-C0wZc03S.cjs → spawn-CgSJzzWS.cjs} +17 -16
- package/dist/{spawn-DdnYTtQe.mjs → spawn-CrYN_OOT.mjs} +18 -17
- package/dist/{spawnAgents-BjyU78Ue.cjs → spawnAgents-C1-4m7aN.cjs} +3 -1
- package/dist/{spawnAgents-D-7wMw-a.mjs → spawnAgents-DWCDYCQ1.mjs} +4 -2
- package/dist/{spawnHappyCLI-BJUd974I.cjs → spawnHappyCLI-CTy3p6V_.cjs} +1 -1
- package/dist/{spawnHappyCLI-CnyyJk74.mjs → spawnHappyCLI-DjbkiSH1.mjs} +1 -1
- package/dist/specialCommands-J3JFOq0J.cjs +60 -0
- package/dist/specialCommands-MXUN0wfI.mjs +54 -0
- package/dist/{startFileWatcher-DBboREco.cjs → startFileWatcher-BQs0cJA-.cjs} +1 -1
- package/dist/{startFileWatcher-CpO5Mwbr.mjs → startFileWatcher-Dedtu1vq.mjs} +1 -1
- package/dist/{defaultPermissionMode-DMTnlccv.mjs → startupSessionCreate-BKFU4v_h.mjs} +25 -6
- package/dist/{defaultPermissionMode-Dlm0q1m0.cjs → startupSessionCreate-Dxy3X4DG.cjs} +25 -7
- package/dist/{streamRelay-CqBynIon.mjs → streamRelay-P9e7Sohm.mjs} +1 -1
- package/dist/{sync-6HFRJP1h.cjs → sync-DtWB7RzA.cjs} +1 -1
- package/dist/{sync-I8NYmycF.mjs → sync-eZkXnsW_.mjs} +1 -1
- package/dist/{systemPrompt-BDWj5QSL.cjs → systemPrompt-2XOpZ1j6.cjs} +1 -1
- package/dist/{systemPrompt-C1RSY_60.mjs → systemPrompt-Bn6g6aCH.mjs} +2 -2
- package/dist/{teams-eUD7ymif.cjs → teams-ecFay4Gn.cjs} +6 -6
- package/dist/{teams-GpLFbXXE.mjs → teams-nadkqrbW.mjs} +7 -7
- package/dist/{template-CEK8MEjo.mjs → template-BiTD-jI9.mjs} +1 -1
- package/dist/{time-umG7yHkb.mjs → time-CN3TuSVG.mjs} +1 -1
- package/dist/{time-BAJRbB6U.cjs → time-gPD_EmA-.cjs} +1 -1
- package/dist/{titleGenerator-dmFlxkRs.mjs → titleGenerator-DgzTQdn2.mjs} +1 -1
- package/dist/{titleGenerator-iqb2jOF1.cjs → titleGenerator-lT5ldPuN.cjs} +2 -2
- package/dist/{todo-DsR7WnQS.cjs → todo-B1VeMk5A.cjs} +5 -5
- package/dist/{todo-CT4AJ3sH.mjs → todo-BIxd7l2Q.mjs} +6 -6
- package/dist/{tools-30E66QL_.cjs → tools-DvqbLsCF.cjs} +1 -1
- package/dist/{tools-BOWazSD6.mjs → tools-zXJpxiG_.mjs} +1 -1
- package/dist/{uninstall-DImXs6VZ.mjs → uninstall-9htK6mb7.mjs} +3 -3
- package/dist/{uninstall-BtTc9hHa.cjs → uninstall-CvIOpwB5.cjs} +3 -3
- package/package.json +7 -7
- package/dist/agentAttachments-M_B5qEF2.mjs +0 -18
- package/dist/selfCheck-4bcdHPFQ.mjs +0 -86
- package/dist/startupSessionCreate-BgaVuvQp.mjs +0 -24
- package/dist/startupSessionCreate-C1u2dtz8.cjs +0 -26
|
@@ -1,107 +1,109 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var auth = require('./auth-
|
|
3
|
+
var auth = require('./auth-Bb_SL2os.cjs');
|
|
4
4
|
var index = require('./index-BOe6dKnL.cjs');
|
|
5
|
-
var deterministicJson = require('./deterministicJson-
|
|
6
|
-
var client = require('./client-
|
|
5
|
+
var deterministicJson = require('./deterministicJson-BEygolBQ.cjs');
|
|
6
|
+
var client = require('./client-CMKGrnmT.cjs');
|
|
7
7
|
var promises = require('node:fs/promises');
|
|
8
8
|
var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
|
|
9
9
|
var node_crypto = require('node:crypto');
|
|
10
10
|
var cuid2 = require('@paralleldrive/cuid2');
|
|
11
|
-
var api = require('./api-
|
|
12
|
-
var
|
|
13
|
-
var attachmentContent = require('./attachmentContent-
|
|
11
|
+
var api = require('./api-CXL6jp-p.cjs');
|
|
12
|
+
var heldInput = require('./heldInput-BOtqFO2r.cjs');
|
|
13
|
+
var attachmentContent = require('./attachmentContent-NmVfKp-B.cjs');
|
|
14
14
|
var ink = require('ink');
|
|
15
|
-
var sessionLock = require('./sessionLock-
|
|
15
|
+
var sessionLock = require('./sessionLock-BFBReiKq.cjs');
|
|
16
16
|
var React = require('react');
|
|
17
|
-
var codexAppServerClient = require('./codexAppServerClient-
|
|
18
|
-
var rateLimitReporter = require('./rateLimitReporter-
|
|
19
|
-
var logger = require('./logger-
|
|
20
|
-
var BasePermissionHandler = require('./BasePermissionHandler-
|
|
21
|
-
var codexTermination = require('./codexTermination-
|
|
17
|
+
var codexAppServerClient = require('./codexAppServerClient-CpT9F6EM.cjs');
|
|
18
|
+
var rateLimitReporter = require('./rateLimitReporter-DUu2KydZ.cjs');
|
|
19
|
+
var logger = require('./logger-BBRTTVsQ.cjs');
|
|
20
|
+
var BasePermissionHandler = require('./BasePermissionHandler-CpSugp7Z.cjs');
|
|
21
|
+
var codexTermination = require('./codexTermination-ByW7tRjr.cjs');
|
|
22
22
|
var node_child_process = require('node:child_process');
|
|
23
|
-
var persistence = require('./persistence-
|
|
24
|
-
var machineMetadata = require('./machineMetadata-
|
|
25
|
-
var configuration = require('./configuration-
|
|
26
|
-
var
|
|
23
|
+
var persistence = require('./persistence-Bl5S3TLB.cjs');
|
|
24
|
+
var machineMetadata = require('./machineMetadata-DnFNlrVK.cjs');
|
|
25
|
+
var configuration = require('./configuration-Dt5lKW3P.cjs');
|
|
26
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-CA1FFr_F.cjs');
|
|
27
27
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
28
28
|
var path = require('node:path');
|
|
29
|
-
var createSessionMetadata = require('./createSessionMetadata-
|
|
29
|
+
var createSessionMetadata = require('./createSessionMetadata-B_HZCDj_.cjs');
|
|
30
30
|
var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
|
|
31
|
-
var controlClient = require('./controlClient-
|
|
32
|
-
var
|
|
31
|
+
var controlClient = require('./controlClient-BRk65BRO.cjs');
|
|
32
|
+
var startupSessionCreate = require('./startupSessionCreate-Dxy3X4DG.cjs');
|
|
33
33
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
34
|
-
var setupOfflineReconnection = require('./setupOfflineReconnection-
|
|
35
|
-
var startupSessionCreate = require('./startupSessionCreate-C1u2dtz8.cjs');
|
|
34
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-DPXRo_zf.cjs');
|
|
36
35
|
var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
|
|
36
|
+
var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
|
|
37
37
|
var constants = require('./constants-VJ0N6WuG.cjs');
|
|
38
|
+
var defaultPermissionMode = require('./defaultPermissionMode-CxmTXUQR.cjs');
|
|
38
39
|
var editPaths = require('./editPaths-Bqp4OFPw.cjs');
|
|
39
|
-
var ensureDaemonRunning = require('./ensureDaemonRunning-
|
|
40
|
+
var ensureDaemonRunning = require('./ensureDaemonRunning-Bibp6vhe.cjs');
|
|
40
41
|
require('tweetnacl');
|
|
41
42
|
require('axios');
|
|
42
|
-
require('./time-
|
|
43
|
-
require('./browser-
|
|
43
|
+
require('./time-gPD_EmA-.cjs');
|
|
44
|
+
require('./browser-CLJWcodR.cjs');
|
|
44
45
|
require('open');
|
|
45
46
|
require('zod');
|
|
46
47
|
require('./prompt-Bof2aQkI.cjs');
|
|
47
|
-
require('./reportProgressTool-
|
|
48
|
-
require('./client-
|
|
48
|
+
require('./reportProgressTool-CvPGov1F.cjs');
|
|
49
|
+
require('./client-Bffkrs5p.cjs');
|
|
49
50
|
require('./precheckCompat-CWOi5c9L.cjs');
|
|
50
51
|
require('./agentGuidance-BtBx2xxE.cjs');
|
|
51
52
|
require('node:fs');
|
|
52
53
|
require('node:os');
|
|
53
54
|
require('./pi-DlsrPCTa.cjs');
|
|
54
55
|
require('./fileStore-7qhnbs6N.cjs');
|
|
55
|
-
require('./client-
|
|
56
|
+
require('./client-CARZ_lNS.cjs');
|
|
56
57
|
require('node:util');
|
|
57
|
-
require('./context-
|
|
58
|
-
require('./sessionOps-
|
|
58
|
+
require('./context-BdZssgF0.cjs');
|
|
59
|
+
require('./sessionOps-DeWVqpe4.cjs');
|
|
59
60
|
require('socket.io-client');
|
|
60
61
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
61
62
|
require('./resources-BZ_Be0qM.cjs');
|
|
62
|
-
require('./tools-
|
|
63
|
-
require('./peerTools-
|
|
63
|
+
require('./tools-DvqbLsCF.cjs');
|
|
64
|
+
require('./peerTools-5ZM4spcZ.cjs');
|
|
64
65
|
require('./ids-B6ZC0HGt.cjs');
|
|
65
|
-
require('./remoteSessionClient-
|
|
66
|
+
require('./remoteSessionClient-DGFI__5Z.cjs');
|
|
66
67
|
require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
67
68
|
require('node:http');
|
|
68
69
|
require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
69
70
|
require('./limits-C-a7gr04.cjs');
|
|
70
|
-
require('./downloadTarget-
|
|
71
|
+
require('./downloadTarget-DS0zT2AU.cjs');
|
|
71
72
|
require('./terminals-B_bfC9c2.cjs');
|
|
72
73
|
require('./terminalTitleSuggest-DhvRFX3H.cjs');
|
|
73
74
|
require('./tmuxSocket-D-Xt6Vn-.cjs');
|
|
74
|
-
require('./bootstrap-
|
|
75
|
-
require('./package-
|
|
75
|
+
require('./bootstrap-DBJB0y-H.cjs');
|
|
76
|
+
require('./package-DrY090nZ.cjs');
|
|
76
77
|
require('./webPanels-FCgFKvVe.cjs');
|
|
77
|
-
require('./pushNotifications-
|
|
78
|
+
require('./pushNotifications-CfspRcl-.cjs');
|
|
78
79
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
79
80
|
require('./previewPath-B0rBdhy1.cjs');
|
|
80
81
|
require('crypto');
|
|
81
|
-
require('./lidState-
|
|
82
|
+
require('./lidState-q_XFYg33.cjs');
|
|
82
83
|
require('os');
|
|
83
84
|
require('child_process');
|
|
84
85
|
require('node:events');
|
|
85
|
-
require('./registerCommonHandlers-
|
|
86
|
+
require('./registerCommonHandlers-Beun-cQv.cjs');
|
|
86
87
|
require('util');
|
|
87
88
|
require('fs/promises');
|
|
88
89
|
require('path');
|
|
89
90
|
require('cross-spawn');
|
|
90
|
-
require('./sync-
|
|
91
|
+
require('./sync-DtWB7RzA.cjs');
|
|
91
92
|
require('chalk');
|
|
93
|
+
require('./cliUpdate-DsKXPFYp.cjs');
|
|
92
94
|
require('./processTreeSnapshot-mDbnuojn.cjs');
|
|
93
95
|
require('node:readline');
|
|
94
96
|
require('./manager-HrEj442o.cjs');
|
|
95
97
|
require('@anthropic-ai/sandbox-runtime');
|
|
96
|
-
require('./rateLimitWindows-
|
|
98
|
+
require('./rateLimitWindows-Bx3ROBP5.cjs');
|
|
97
99
|
require('./processTree-CMHWlVse.cjs');
|
|
98
100
|
require('./detectCLI-BuYR_Qxe.cjs');
|
|
99
101
|
require('fs');
|
|
100
|
-
require('./localHappyAgentAuth-
|
|
102
|
+
require('./localHappyAgentAuth-CKNW-MXw.cjs');
|
|
101
103
|
require('./fsMkdir-0K3yENml.cjs');
|
|
102
104
|
require('./types-CRS-srZK.cjs');
|
|
103
105
|
require('url');
|
|
104
|
-
require('./spawnHappyCLI-
|
|
106
|
+
require('./spawnHappyCLI-CTy3p6V_.cjs');
|
|
105
107
|
require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
106
108
|
|
|
107
109
|
function getStartedSubagents(state) {
|
|
@@ -1096,6 +1098,19 @@ function unsupportedEffortReason(catalog, model, effort) {
|
|
|
1096
1098
|
return `Reasoning effort "${effort}" is not supported by ${model ?? "the default model"}. Choose a supported level.`;
|
|
1097
1099
|
}
|
|
1098
1100
|
|
|
1101
|
+
function resolveCodexTurnModel(mode, machineDefault) {
|
|
1102
|
+
if (mode.model) return mode.model;
|
|
1103
|
+
return mode.modelReset ? machineDefault || void 0 : void 0;
|
|
1104
|
+
}
|
|
1105
|
+
function codexModelFacts(input) {
|
|
1106
|
+
const { threadModel, pendingModel, machineDefault } = input;
|
|
1107
|
+
if (!threadModel) return { stickyModel: pendingModel ?? null };
|
|
1108
|
+
return {
|
|
1109
|
+
stickyModel: threadModel !== machineDefault ? threadModel : null,
|
|
1110
|
+
currentModelCode: threadModel
|
|
1111
|
+
};
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1099
1114
|
const UNEXPECTED_STATUS = /^unexpected status (\d{3}) ([^:]*?):\s*([\s\S]*?)(?:,\s*url:\s*(\S+))?$/;
|
|
1100
1115
|
function readableCodexErrorText(text) {
|
|
1101
1116
|
const trimmed = text.trim();
|
|
@@ -1377,6 +1392,7 @@ function hashCodexEnhancedMode(mode) {
|
|
|
1377
1392
|
return deterministicJson.hashObject({
|
|
1378
1393
|
permissionMode: mode.permissionMode,
|
|
1379
1394
|
model: mode.model,
|
|
1395
|
+
modelReset: mode.modelReset,
|
|
1380
1396
|
appendSystemPrompt: mode.appendSystemPrompt,
|
|
1381
1397
|
effort: mode.effort
|
|
1382
1398
|
});
|
|
@@ -1430,6 +1446,16 @@ function safeCodexErrorMetadata(value) {
|
|
|
1430
1446
|
};
|
|
1431
1447
|
}
|
|
1432
1448
|
|
|
1449
|
+
const CODEX_REMOTE_PERMISSION_MODES = [
|
|
1450
|
+
"default",
|
|
1451
|
+
"read-only",
|
|
1452
|
+
"safe-yolo",
|
|
1453
|
+
"yolo"
|
|
1454
|
+
];
|
|
1455
|
+
function codexPublishablePermissionMode(mode) {
|
|
1456
|
+
return typeof mode === "string" && CODEX_REMOTE_PERMISSION_MODES.includes(mode) ? mode : null;
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1433
1459
|
const DEFAULT_CODEX_MODEL = void 0;
|
|
1434
1460
|
const DEFAULT_CODEX_EFFORT = "medium";
|
|
1435
1461
|
async function runCodex(opts) {
|
|
@@ -1474,9 +1500,11 @@ async function runCodex(opts) {
|
|
|
1474
1500
|
dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
|
|
1475
1501
|
...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
|
|
1476
1502
|
...forkedFromMessageId ? { forkedFromMessageId } : {},
|
|
1477
|
-
capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, index.CODEX_STEER_CAPABILITY, index.PROJECT_SESSION_CAPABILITY, index.CODEX_COMPACT_CAPABILITY]
|
|
1503
|
+
capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, sessionLock.AUTO_RESTART_CAPABILITY, index.CODEX_STEER_CAPABILITY, index.PROJECT_SESSION_CAPABILITY, index.CODEX_COMPACT_CAPABILITY]
|
|
1478
1504
|
});
|
|
1479
1505
|
metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
|
|
1506
|
+
metadata.stickyModel = null;
|
|
1507
|
+
metadata.currentThoughtLevelCode = DEFAULT_CODEX_EFFORT;
|
|
1480
1508
|
const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
|
|
1481
1509
|
if (importCodexThreadId) {
|
|
1482
1510
|
metadata.importedFromCodexThreadId = importCodexThreadId;
|
|
@@ -1577,7 +1605,7 @@ async function runCodex(opts) {
|
|
|
1577
1605
|
logger.logger.debug("[START] Failed to report to daemon (may not be running)", safeCodexErrorMetadata(error));
|
|
1578
1606
|
}
|
|
1579
1607
|
}
|
|
1580
|
-
const messageQueue = new
|
|
1608
|
+
const messageQueue = new registerKillSessionHandler.MessageQueue2(hashCodexEnhancedMode);
|
|
1581
1609
|
function attachPromptQueueDrain(client2) {
|
|
1582
1610
|
const drain = client2.attachPromptQueueDrain({
|
|
1583
1611
|
isIdle: () => messageQueue.size() === 0 && messageQueue.isWaiting()
|
|
@@ -1589,25 +1617,50 @@ async function runCodex(opts) {
|
|
|
1589
1617
|
const keys = entries.map((entry) => entry.sourceId).filter((key) => typeof key === "string");
|
|
1590
1618
|
if (keys.length > 0) session.sendQueueCancelReason(keys, entries[0].reason);
|
|
1591
1619
|
});
|
|
1620
|
+
const heldInput$1 = new heldInput.HeldInput((keys, reason) => session.sendQueueCancelReason(keys, reason));
|
|
1592
1621
|
let currentPermissionMode = initialPermissionMode;
|
|
1593
1622
|
let currentModel = DEFAULT_CODEX_MODEL;
|
|
1594
1623
|
let currentEffort = DEFAULT_CODEX_EFFORT;
|
|
1595
1624
|
let currentAppendSystemPrompt = void 0;
|
|
1625
|
+
let reportedStickyModel = null;
|
|
1626
|
+
let reportedCurrentModel;
|
|
1627
|
+
let reportedEffort = DEFAULT_CODEX_EFFORT;
|
|
1628
|
+
const reportModeFacts = () => {
|
|
1629
|
+
const facts = codexModelFacts({ threadModel: client$1.threadModel, pendingModel: currentModel, machineDefault: machineDefaultModel });
|
|
1630
|
+
const effort = currentEffort;
|
|
1631
|
+
if (facts.stickyModel === reportedStickyModel && facts.currentModelCode === reportedCurrentModel && effort === reportedEffort) return;
|
|
1632
|
+
reportedStickyModel = facts.stickyModel;
|
|
1633
|
+
reportedCurrentModel = facts.currentModelCode;
|
|
1634
|
+
reportedEffort = effort;
|
|
1635
|
+
session.updateMetadata((metadata2) => {
|
|
1636
|
+
const { currentThoughtLevelCode: _previous, currentModelCode: _model, ...rest } = metadata2;
|
|
1637
|
+
return {
|
|
1638
|
+
...rest,
|
|
1639
|
+
stickyModel: facts.stickyModel,
|
|
1640
|
+
...facts.currentModelCode ? { currentModelCode: facts.currentModelCode } : {},
|
|
1641
|
+
...effort ? { currentThoughtLevelCode: effort } : {}
|
|
1642
|
+
};
|
|
1643
|
+
});
|
|
1644
|
+
};
|
|
1596
1645
|
const resetCurrentModeDefaults = () => {
|
|
1597
|
-
currentPermissionMode = defaultPermissionMode.DEFAULT_CODEX_PERMISSION_MODE;
|
|
1598
|
-
currentModel = DEFAULT_CODEX_MODEL;
|
|
1599
1646
|
currentEffort = DEFAULT_CODEX_EFFORT;
|
|
1647
|
+
reportModeFacts();
|
|
1600
1648
|
currentAppendSystemPrompt = void 0;
|
|
1601
1649
|
logger.logger.debug("[Codex] Reset current mode defaults after abort");
|
|
1602
1650
|
};
|
|
1603
|
-
const VALID_REMOTE_PERMISSION_MODES =
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1651
|
+
const VALID_REMOTE_PERMISSION_MODES = CODEX_REMOTE_PERMISSION_MODES;
|
|
1652
|
+
let publishedPermissionMode = null;
|
|
1653
|
+
const publishPermissionMode = (mode) => {
|
|
1654
|
+
const publishable = codexPublishablePermissionMode(mode);
|
|
1655
|
+
if (!publishable || publishable === publishedPermissionMode) return;
|
|
1656
|
+
publishedPermissionMode = publishable;
|
|
1657
|
+
session.updateMetadata((currentMetadata) => ({ ...currentMetadata, permissionMode: publishable }));
|
|
1658
|
+
};
|
|
1659
|
+
publishPermissionMode(opts.permissionMode);
|
|
1609
1660
|
let discoveredModels = [];
|
|
1610
|
-
|
|
1661
|
+
let codexAgentVersion = null;
|
|
1662
|
+
let machineDefaultModel;
|
|
1663
|
+
heldInput.registerAgentAttachmentDownloads(session);
|
|
1611
1664
|
const CODEX_IMAGE_MIME_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
|
|
1612
1665
|
const steerDeps = {
|
|
1613
1666
|
ownsTurn: () => turnActive && !abortInProgress && !shouldExit,
|
|
@@ -1633,6 +1686,7 @@ async function runCodex(opts) {
|
|
|
1633
1686
|
if (VALID_REMOTE_PERMISSION_MODES.includes(incoming)) {
|
|
1634
1687
|
messagePermissionMode = incoming;
|
|
1635
1688
|
currentPermissionMode = messagePermissionMode;
|
|
1689
|
+
publishPermissionMode(incoming);
|
|
1636
1690
|
logger.logger.debug("[Codex] Valid permission mode override applied");
|
|
1637
1691
|
} else {
|
|
1638
1692
|
logger.logger.debug("[Codex] Ignoring invalid permission mode override", logValueMetadata(message.meta.permissionMode));
|
|
@@ -1641,9 +1695,12 @@ async function runCodex(opts) {
|
|
|
1641
1695
|
logger.logger.debug("[Codex] User message received without a permission mode override");
|
|
1642
1696
|
}
|
|
1643
1697
|
let messageModel = currentModel;
|
|
1698
|
+
let messageModelReset = false;
|
|
1644
1699
|
if (message.meta?.hasOwnProperty("model")) {
|
|
1645
1700
|
messageModel = message.meta.model || void 0;
|
|
1701
|
+
messageModelReset = !messageModel;
|
|
1646
1702
|
currentModel = messageModel;
|
|
1703
|
+
reportModeFacts();
|
|
1647
1704
|
logger.logger.debug("[Codex] Model override updated", logValueMetadata(message.meta.model));
|
|
1648
1705
|
} else {
|
|
1649
1706
|
logger.logger.debug("[Codex] User message received without a model override");
|
|
@@ -1654,10 +1711,12 @@ async function runCodex(opts) {
|
|
|
1654
1711
|
if (incoming === null || incoming === void 0) {
|
|
1655
1712
|
messageEffort = void 0;
|
|
1656
1713
|
currentEffort = void 0;
|
|
1714
|
+
reportModeFacts();
|
|
1657
1715
|
logger.logger.debug(`[Codex] Effort reset to default`);
|
|
1658
1716
|
} else if (typeof incoming === "string") {
|
|
1659
1717
|
messageEffort = incoming;
|
|
1660
1718
|
currentEffort = messageEffort;
|
|
1719
|
+
reportModeFacts();
|
|
1661
1720
|
logger.logger.debug("[Codex] Valid effort override applied");
|
|
1662
1721
|
} else {
|
|
1663
1722
|
logger.logger.debug("[Codex] Ignoring invalid effort override", logValueMetadata(incoming));
|
|
@@ -1676,6 +1735,7 @@ async function runCodex(opts) {
|
|
|
1676
1735
|
const enhancedMode = {
|
|
1677
1736
|
permissionMode: messagePermissionMode || "default",
|
|
1678
1737
|
model: messageModel,
|
|
1738
|
+
...messageModelReset ? { modelReset: true } : {},
|
|
1679
1739
|
appendSystemPrompt: messageAppendSystemPrompt,
|
|
1680
1740
|
effort: messageEffort
|
|
1681
1741
|
};
|
|
@@ -1698,6 +1758,7 @@ async function runCodex(opts) {
|
|
|
1698
1758
|
}).catch((error) => {
|
|
1699
1759
|
logger.logger.warn("[Codex] Failed to prepare user attachments", safeCodexErrorMetadata(error));
|
|
1700
1760
|
session.sendSessionEvent({ type: "message", message: "Could not prepare this message. Please send it again." });
|
|
1761
|
+
if (message.localKey) session.sendQueueCancelReason([message.localKey], "failed");
|
|
1701
1762
|
});
|
|
1702
1763
|
});
|
|
1703
1764
|
let thinking = false;
|
|
@@ -1740,7 +1801,8 @@ async function runCodex(opts) {
|
|
|
1740
1801
|
}
|
|
1741
1802
|
let abortController = new AbortController();
|
|
1742
1803
|
let shouldExit = false;
|
|
1743
|
-
|
|
1804
|
+
let terminating = false;
|
|
1805
|
+
const hibernationExit = new startupSessionCreate.HibernationExitLatch((a, b) => a === "archive" && b !== "archive");
|
|
1744
1806
|
let hibernationStamp = null;
|
|
1745
1807
|
let hibernationProbe = null;
|
|
1746
1808
|
async function handleAbort(source) {
|
|
@@ -1793,6 +1855,10 @@ async function runCodex(opts) {
|
|
|
1793
1855
|
logger.logger.debug("[Codex] Kill session requested - terminating process");
|
|
1794
1856
|
const exitCursor = intent === "offline" && session ? sessionLock.exitCursorStamp(session.messageCursor, Date.now()) : void 0;
|
|
1795
1857
|
if (exitCursor) session.freezeInbound();
|
|
1858
|
+
const exitReason = intent === "archive" ? "aborted" : "restarted";
|
|
1859
|
+
terminating = true;
|
|
1860
|
+
heldInput$1.drop(exitReason);
|
|
1861
|
+
messageQueue.discardAll(exitReason);
|
|
1796
1862
|
await handleAbort("kill");
|
|
1797
1863
|
logger.logger.debug("[Codex] Abort completed, proceeding with termination");
|
|
1798
1864
|
try {
|
|
@@ -1818,7 +1884,7 @@ async function runCodex(opts) {
|
|
|
1818
1884
|
}
|
|
1819
1885
|
});
|
|
1820
1886
|
session.rpcHandlerManager.registerHandler("abort", () => handleAbort("user"));
|
|
1821
|
-
const disposeTermination =
|
|
1887
|
+
const disposeTermination = registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, () => handleKillSession("archive"), session, { processSignals: true, onSignal: () => handleKillSession("offline") });
|
|
1822
1888
|
const messageBuffer = new sessionExitLifecycle.MessageBuffer();
|
|
1823
1889
|
const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
|
|
1824
1890
|
let inkInstance = null;
|
|
@@ -2018,6 +2084,7 @@ async function runCodex(opts) {
|
|
|
2018
2084
|
logger.logger.debug("[codex]: client.connect begin");
|
|
2019
2085
|
await client$1.connect();
|
|
2020
2086
|
logger.logger.debug("[codex]: client.connect done");
|
|
2087
|
+
codexAgentVersion = client$1.serverVersion;
|
|
2021
2088
|
try {
|
|
2022
2089
|
discoveredModels = await client$1.listModels();
|
|
2023
2090
|
let configured = null;
|
|
@@ -2026,6 +2093,7 @@ async function runCodex(opts) {
|
|
|
2026
2093
|
} catch (error) {
|
|
2027
2094
|
logger.logger.debug("[Codex] config/read unavailable", safeCodexErrorMetadata(error));
|
|
2028
2095
|
}
|
|
2096
|
+
machineDefaultModel = configured?.model ?? discoveredModels.find((model) => model.isDefault)?.model;
|
|
2029
2097
|
if (discoveredModels.length > 0 || configured) {
|
|
2030
2098
|
session.updateMetadata((metadata2) => ({
|
|
2031
2099
|
...metadata2,
|
|
@@ -2069,6 +2137,7 @@ async function runCodex(opts) {
|
|
|
2069
2137
|
first = false;
|
|
2070
2138
|
appendSystemPromptInjected = true;
|
|
2071
2139
|
}
|
|
2140
|
+
reportModeFacts();
|
|
2072
2141
|
const forkCodexThreadId = process.env.HAPPY_FORK_CODEX_THREAD_ID;
|
|
2073
2142
|
if (!reconnectSessionId && forkCodexThreadId) {
|
|
2074
2143
|
try {
|
|
@@ -2110,17 +2179,18 @@ async function runCodex(opts) {
|
|
|
2110
2179
|
pendingRequests: Object.keys(session.getAgentState()?.requests ?? {}).length,
|
|
2111
2180
|
backgroundTasks: codexActiveSubagents.size,
|
|
2112
2181
|
lastActivityAt: session.lastActivityAt,
|
|
2182
|
+
...codexAgentVersion ? { agentVersion: codexAgentVersion } : {},
|
|
2113
2183
|
...shouldExit && !hibernationExit.hibernating ? { exiting: true } : {}
|
|
2114
2184
|
};
|
|
2115
2185
|
};
|
|
2116
|
-
hibernationProbe = new
|
|
2186
|
+
hibernationProbe = new startupSessionCreate.HibernationProbe({
|
|
2117
2187
|
onKeepAwakeLatched: () => {
|
|
2118
2188
|
if (session.getMetadata()?.keepAwake === void 0) session.updateMetadata((m) => m.keepAwake === void 0 ? { ...m, keepAwake: true } : m);
|
|
2119
2189
|
},
|
|
2120
2190
|
checkMs: persistence.resolveCheckMs(),
|
|
2121
2191
|
snapshot: hibernationSnapshot,
|
|
2122
2192
|
ask: (report) => controlClient.checkDaemonHibernation({ sessionId: session.sessionId, pid: process.pid, report }),
|
|
2123
|
-
commit: (idleMs) =>
|
|
2193
|
+
commit: (idleMs) => startupSessionCreate.commitHibernation({
|
|
2124
2194
|
client: session,
|
|
2125
2195
|
claimExit: () => !shouldExit && hibernationExit.begin(),
|
|
2126
2196
|
exitRequested: () => hibernationExit.exitRequested,
|
|
@@ -2140,6 +2210,8 @@ async function runCodex(opts) {
|
|
|
2140
2210
|
});
|
|
2141
2211
|
hibernationProbe.start();
|
|
2142
2212
|
}
|
|
2213
|
+
const autoUpdated = sessionLock.takeAutoRestartedEvent(process.env, "Codex");
|
|
2214
|
+
if (autoUpdated) session.sendSessionEvent(autoUpdated);
|
|
2143
2215
|
idleRelease.arm();
|
|
2144
2216
|
while (!shouldExit) {
|
|
2145
2217
|
logActiveHandles("loop-top");
|
|
@@ -2157,6 +2229,7 @@ async function runCodex(opts) {
|
|
|
2157
2229
|
break;
|
|
2158
2230
|
}
|
|
2159
2231
|
message = batch;
|
|
2232
|
+
heldInput$1.hold(batch.sourceIds);
|
|
2160
2233
|
}
|
|
2161
2234
|
if (!message) {
|
|
2162
2235
|
break;
|
|
@@ -2169,6 +2242,7 @@ async function runCodex(opts) {
|
|
|
2169
2242
|
turnActive = true;
|
|
2170
2243
|
if (isCodexClearText(message.message)) {
|
|
2171
2244
|
logger.logger.debug("[Codex] Handling /clear command - resetting Codex thread state");
|
|
2245
|
+
heldInput$1.delivered();
|
|
2172
2246
|
client$1.clearThreadState();
|
|
2173
2247
|
currentTurnId = null;
|
|
2174
2248
|
codexStartedSubagents = /* @__PURE__ */ new Set();
|
|
@@ -2179,6 +2253,7 @@ async function runCodex(opts) {
|
|
|
2179
2253
|
reasoningProcessor.abort();
|
|
2180
2254
|
diffProcessor.reset();
|
|
2181
2255
|
appendSystemPromptInjected = false;
|
|
2256
|
+
projectInjector.reset();
|
|
2182
2257
|
thinking = false;
|
|
2183
2258
|
session.keepAlive(thinking, "remote");
|
|
2184
2259
|
messageBuffer.addMessage("Context was reset", "status");
|
|
@@ -2204,6 +2279,7 @@ async function runCodex(opts) {
|
|
|
2204
2279
|
try {
|
|
2205
2280
|
if (compactCommand !== null) {
|
|
2206
2281
|
await client$1.ensureConnected();
|
|
2282
|
+
heldInput$1.delivered();
|
|
2207
2283
|
const outcome = await runCodexCompact(compactCommand, {
|
|
2208
2284
|
client: client$1,
|
|
2209
2285
|
notify: (text) => {
|
|
@@ -2220,13 +2296,14 @@ async function runCodex(opts) {
|
|
|
2220
2296
|
message.mode.permissionMode,
|
|
2221
2297
|
sandboxManagedByHappy
|
|
2222
2298
|
);
|
|
2223
|
-
const
|
|
2299
|
+
const turnModel = resolveCodexTurnModel(message.mode, machineDefaultModel);
|
|
2300
|
+
const effortRefusal = unsupportedEffortReason(discoveredModels, turnModel ?? client$1.threadModel ?? machineDefaultModel, message.mode.effort);
|
|
2224
2301
|
if (effortRefusal) {
|
|
2225
2302
|
throw new Error(effortRefusal);
|
|
2226
2303
|
}
|
|
2227
2304
|
if (!client$1.hasActiveThread()) {
|
|
2228
2305
|
const startedThread = await client$1.startThread({
|
|
2229
|
-
model:
|
|
2306
|
+
model: turnModel,
|
|
2230
2307
|
cwd: process.cwd(),
|
|
2231
2308
|
approvalPolicy: executionPolicy.approvalPolicy,
|
|
2232
2309
|
sandbox: executionPolicy.sandbox,
|
|
@@ -2236,6 +2313,7 @@ async function runCodex(opts) {
|
|
|
2236
2313
|
...currentMetadata,
|
|
2237
2314
|
codexThreadId: startedThread.threadId
|
|
2238
2315
|
}));
|
|
2316
|
+
reportModeFacts();
|
|
2239
2317
|
}
|
|
2240
2318
|
const includeAppendSystemPrompt = Boolean(
|
|
2241
2319
|
message.mode.appendSystemPrompt && !appendSystemPromptInjected
|
|
@@ -2250,13 +2328,19 @@ async function runCodex(opts) {
|
|
|
2250
2328
|
happyHomeDir: configuration.configuration.happyHomeDir,
|
|
2251
2329
|
sessionId: session.sessionId
|
|
2252
2330
|
}) : [];
|
|
2331
|
+
if (terminating) {
|
|
2332
|
+
logger.logger.debug("[Codex] Session is ending; not starting the turn");
|
|
2333
|
+
continue;
|
|
2334
|
+
}
|
|
2253
2335
|
const result = await client$1.sendTurnAndWait(attachmentContent.appendStagedAttachmentsToPrompt(turnPrompt, staged), {
|
|
2254
2336
|
images: staged.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => file.path),
|
|
2255
|
-
model:
|
|
2337
|
+
model: turnModel,
|
|
2256
2338
|
approvalPolicy: executionPolicy.approvalPolicy,
|
|
2257
2339
|
sandbox: executionPolicy.sandbox,
|
|
2258
|
-
effort: message.mode.effort
|
|
2340
|
+
effort: message.mode.effort,
|
|
2341
|
+
onTurnStarted: () => heldInput$1.delivered()
|
|
2259
2342
|
});
|
|
2343
|
+
reportModeFacts();
|
|
2260
2344
|
first = false;
|
|
2261
2345
|
if (includeAppendSystemPrompt) {
|
|
2262
2346
|
appendSystemPromptInjected = true;
|
|
@@ -2266,6 +2350,7 @@ async function runCodex(opts) {
|
|
|
2266
2350
|
}
|
|
2267
2351
|
} catch (error) {
|
|
2268
2352
|
logger.logger.warn("Error in codex session", safeCodexErrorMetadata(error));
|
|
2353
|
+
if (heldInput$1.drop("failed")) logger.logger.debug("[Codex] Message failed before its turn started; tombstoned");
|
|
2269
2354
|
const reason = describeThrownTurnError(error);
|
|
2270
2355
|
if (reason) {
|
|
2271
2356
|
messageBuffer.addMessage(`Task failed: ${reason}`, "status");
|
|
@@ -2297,6 +2382,8 @@ async function runCodex(opts) {
|
|
|
2297
2382
|
disposeTermination?.();
|
|
2298
2383
|
hibernationProbe?.stop();
|
|
2299
2384
|
session.closePromptQueueDrain();
|
|
2385
|
+
heldInput$1.drop("aborted");
|
|
2386
|
+
messageQueue.discardAll("aborted");
|
|
2300
2387
|
logger.logger.debug("[codex]: Final cleanup start");
|
|
2301
2388
|
logActiveHandles("cleanup-start");
|
|
2302
2389
|
if (reconnectionHandle) {
|