very-happy-cli 0.2.189 → 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-fj16v_cf.mjs → AcpBackend-Dd1h-Rgt.mjs} +3 -3
- package/dist/{AcpBackend-DRPJ2g9G.cjs → AcpBackend-dkRv9QHm.cjs} +3 -3
- package/dist/{AcpSessionManager-DM-KKg6v.cjs → AcpSessionManager-AqWAqahm.cjs} +1 -1
- package/dist/{AcpSessionManager-BZPmUDL5.mjs → AcpSessionManager-QBZ-CIf7.mjs} +2 -2
- package/dist/{BasePermissionHandler-CVtH-snr.mjs → BasePermissionHandler-CLp1ge-4.mjs} +1 -1
- package/dist/{BasePermissionHandler-DjM16uJz.cjs → BasePermissionHandler-CpSugp7Z.cjs} +1 -1
- package/dist/{acpSessionResume-2BTMsB7_.cjs → acpSessionResume-CZao6QEd.cjs} +1 -1
- package/dist/{acpSessionResume-Dxl1LRAT.mjs → acpSessionResume-CcpDuIO5.mjs} +1 -1
- package/dist/{agentHome-CHctmMzZ.mjs → agentHome-BJGRA2Kx.mjs} +4 -4
- package/dist/{agentHome-W17n1gnH.cjs → agentHome-fIUqT-pn.cjs} +4 -4
- package/dist/{api-BDuuyys8.cjs → api-CXL6jp-p.cjs} +18 -9
- package/dist/{api-B0yN68XH.mjs → api-Dw8gFsQi.mjs} +19 -10
- package/dist/{apiMachine-mc9CsKuS.mjs → apiMachine-BBNEtjf7.mjs} +56 -15
- package/dist/{apiMachine-iddD-F19.cjs → apiMachine-C6UqHoPF.cjs} +55 -14
- package/dist/{attachmentContent-CcIdMfAx.mjs → attachmentContent-CC4yIrSm.mjs} +2 -2
- package/dist/{attachmentContent-Cc5b7TPr.cjs → attachmentContent-NmVfKp-B.cjs} +2 -2
- package/dist/{auth-DQKSpaEf.cjs → auth-Bb_SL2os.cjs} +5 -5
- package/dist/{auth-DNAgkUkB.mjs → auth-Bh6SUoGi.mjs} +8 -8
- package/dist/{auth-CyrVvWHF.mjs → auth-Bj0psrD2.mjs} +5 -5
- package/dist/{auth-B7tVmyfX.cjs → auth-DKa4MsAi.cjs} +8 -8
- package/dist/{auto-CetlumDo.cjs → auto-C9Qohh0P.cjs} +15 -15
- package/dist/{auto-BklCipw1.mjs → auto-DK7pbCnV.mjs} +18 -18
- package/dist/{bootstrap-DfXwkUQb.mjs → bootstrap-Ct9Nb4sv.mjs} +2 -2
- package/dist/{bootstrap-CDY-Vz8q.cjs → bootstrap-DBJB0y-H.cjs} +2 -2
- package/dist/{browser-vb0k1zfI.mjs → browser-BGxDRhHy.mjs} +1 -1
- package/dist/{browser-D1yzC0Tu.cjs → browser-CLJWcodR.cjs} +1 -1
- package/dist/{claudeLocal-2dJIiTIq.cjs → claudeLocal-B6YDYlnY.cjs} +4 -4
- package/dist/{claudeLocal-Bid_rC_v.mjs → claudeLocal-Ux31hZyC.mjs} +5 -5
- package/dist/{claudeLocalLauncher-5pzpETxd.mjs → claudeLocalLauncher-D06QijMw.mjs} +10 -10
- package/dist/{claudeLocalLauncher-Jm5oQX5Z.cjs → claudeLocalLauncher-DFvmF8rC.cjs} +9 -9
- package/dist/{claudeSessionFork-DzecSBO4.mjs → claudeSessionFork-D2GI7P59.mjs} +1 -1
- package/dist/{claudeSessionFork-DsbcuDEJ.cjs → claudeSessionFork-DTLZ2rek.cjs} +1 -1
- package/dist/{client-D0aYWt53.cjs → client-Bffkrs5p.cjs} +2 -2
- package/dist/{client-BNmFaRXZ.cjs → client-CARZ_lNS.cjs} +3 -3
- package/dist/{client-DIfxYk7B.cjs → client-CMKGrnmT.cjs} +2 -2
- package/dist/{client-B161HwAk.mjs → client-CnGNYidN.mjs} +2 -2
- package/dist/{client-C9Ecbtko.mjs → client-CtL0Vtww.mjs} +4 -4
- package/dist/{client-CvjjadIE.mjs → client-DZkBUoh9.mjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +15 -15
- package/dist/codex/happyMcpStdioBridge.mjs +16 -16
- package/dist/{codexAppServerClient-BlVmpjR-.mjs → codexAppServerClient-CLc5nhLT.mjs} +13 -6
- package/dist/{codexAppServerClient-CO9f4Jr8.cjs → codexAppServerClient-CpT9F6EM.cjs} +13 -6
- package/dist/{codexCommand-BfoRP6E9.cjs → codexCommand-39kH99SJ.cjs} +72 -48
- package/dist/{codexCommand-CAMR4g5o.mjs → codexCommand-Dliq3EBv.mjs} +69 -45
- package/dist/{codexTermination-IrLZQzKC.cjs → codexTermination-ByW7tRjr.cjs} +1 -1
- package/dist/{codexTermination-BvGlN02_.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-BGFqQGvh.cjs → config-CeIzCsfj.cjs} +3 -3
- package/dist/{config-CtMgGPvf.mjs → config-CxSsGO1Z.mjs} +3 -3
- package/dist/{configuration-1FabKklB.mjs → configuration-Dechcvd-.mjs} +1 -1
- package/dist/{configuration-C0ctLGW2.cjs → configuration-Dt5lKW3P.cjs} +1 -1
- package/dist/{connect-DSw-2f52.cjs → connect-NPDzIVC6.cjs} +12 -12
- package/dist/{connect-0lSugpjf.mjs → connect-UwQHvCpR.mjs} +13 -13
- package/dist/{context-D-hEk5pC.cjs → context-BdZssgF0.cjs} +1 -1
- package/dist/{context-BgxbXWKS.mjs → context-C9JbJoNe.mjs} +1 -1
- package/dist/{controlClient-F7hAEEy2.cjs → controlClient-BRk65BRO.cjs} +3 -3
- package/dist/{controlClient-DwNnNAUx.mjs → controlClient-D7NGfmtq.mjs} +3 -3
- package/dist/{createSessionMetadata-DezS33OM.cjs → createSessionMetadata-B_HZCDj_.cjs} +2 -2
- package/dist/{createSessionMetadata-CG6Klinp.mjs → createSessionMetadata-DyhFKAby.mjs} +2 -2
- package/dist/defaultPermissionMode-BnxJPVHT.mjs +4 -0
- package/dist/defaultPermissionMode-CxmTXUQR.cjs +7 -0
- package/dist/{deterministicJson-D0LU_XbO.cjs → deterministicJson-BEygolBQ.cjs} +12 -12
- package/dist/{deterministicJson-BMwgK21e.mjs → deterministicJson-DNmMVhFu.mjs} +13 -13
- package/dist/{doctor-wVNvRarN.cjs → doctor-B9lW1WlG.cjs} +7 -7
- package/dist/{doctor-D16hySse.mjs → doctor-BdBi7TFZ.mjs} +7 -7
- package/dist/{downloadTarget-C6tqaXGm.mjs → downloadTarget-CGojGjaN.mjs} +6 -6
- package/dist/{downloadTarget-aNcCxVRL.cjs → downloadTarget-DS0zT2AU.cjs} +6 -6
- package/dist/{ensureDaemonRunning-DZq8bvsp.mjs → ensureDaemonRunning-BOdbryDM.mjs} +5 -5
- package/dist/{ensureDaemonRunning-CIghxgDR.cjs → ensureDaemonRunning-Bibp6vhe.cjs} +5 -5
- package/dist/exitAfterFlush-AbKNZM0N.mjs +23 -0
- package/dist/exitAfterFlush-DIT_sIxR.cjs +25 -0
- package/dist/{handleResumeCommand-BNnD7EuD.mjs → handleResumeCommand-CgLzBYne.mjs} +5 -5
- package/dist/{handleResumeCommand-CMUTygsm.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-De02DNu5.cjs → index-Bs5FD8JF.cjs} +4 -4
- package/dist/{index-BuiG8hmg.mjs → index-CBHfkQNY.mjs} +133 -54
- package/dist/{index-4TpmBb2Q.cjs → index-CwRW11hT.cjs} +3 -3
- package/dist/{index-Df0bc_et.mjs → index-DUByZsKe.mjs} +4 -4
- package/dist/{index-B81qV_F_.cjs → index-DXSIi6j_.cjs} +4 -4
- package/dist/{index-BCQr-5Ei.mjs → index-Db0HIC-k.mjs} +4 -4
- package/dist/{index-WKyN-bNy.mjs → index-DmqsRnV7.mjs} +1 -1
- package/dist/{index-CnzsOD19.cjs → index-f8oDidjV.cjs} +131 -52
- package/dist/{index-CKd20r1W.mjs → index-rNTX33in.mjs} +3 -3
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-DNbIEJUk.cjs → install-CXIL_FYx.cjs} +3 -3
- package/dist/{install-23ehAdTD.mjs → install-DfPrEWGG.mjs} +3 -3
- package/dist/lib.cjs +11 -11
- package/dist/lib.d.cts +53 -1
- package/dist/lib.d.mts +53 -1
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-q5Its2Hm.mjs → lidState-D0DF20oG.mjs} +1 -1
- package/dist/{lidState-B4dHJCeS.cjs → lidState-q_XFYg33.cjs} +1 -1
- package/dist/{localHappyAgentAuth-C_G5u5lY.mjs → localHappyAgentAuth-BBhM4Qk1.mjs} +1 -1
- package/dist/{localHappyAgentAuth-CG2nPD_H.cjs → localHappyAgentAuth-CKNW-MXw.cjs} +1 -1
- package/dist/{logger-BP1SW7Cs.cjs → logger-BBRTTVsQ.cjs} +2 -2
- package/dist/{logger-DOKH3Zbh.mjs → logger-CL7pin9b.mjs} +2 -2
- package/dist/{machineMetadata-D-5qeIqd.mjs → machineMetadata-DP06qdBk.mjs} +3 -3
- package/dist/{machineMetadata-BKX3ov9g.cjs → machineMetadata-DnFNlrVK.cjs} +3 -3
- package/dist/{main-ndpVIaSG.cjs → main-DLOXykOR.cjs} +49 -48
- package/dist/{main-DODz8DQE.mjs → main-DO7nRvhf.mjs} +49 -48
- package/dist/{mcp-BBwbSODp.mjs → mcp-C-4sPTae.mjs} +15 -15
- package/dist/{mcp-Bc4U4exu.cjs → mcp-Du0MgR7e.cjs} +14 -14
- package/dist/{mirrorProtocol-CiA3hO2y.cjs → mirrorProtocol-GuWMxLkh.cjs} +2 -2
- package/dist/{mirrorProtocol-D2vTWteS.mjs → mirrorProtocol-dkq2ZENA.mjs} +3 -3
- package/dist/{package-DTcaIhjW.mjs → package-C6uiXULx.mjs} +7 -7
- package/dist/{package-CYDdLA6R.cjs → package-DrY090nZ.cjs} +7 -7
- package/dist/{panels-C2xZ8rqU.cjs → panels-4DRBKHZP.cjs} +5 -5
- package/dist/{panels-DCaLxlSL.mjs → panels-DXYdJA6n.mjs} +5 -5
- package/dist/{peerTools-B4315xjX.cjs → peerTools-5ZM4spcZ.cjs} +5 -5
- package/dist/{peerTools-BtrUnSwz.mjs → peerTools-dY1aJez4.mjs} +5 -5
- package/dist/{persistence-CrzC7yr_.cjs → persistence-Bl5S3TLB.cjs} +6 -2
- package/dist/{persistence-0INrP3aB.mjs → persistence-Dogj7JIp.mjs} +6 -3
- package/dist/{piRunnerArgs-BtzW_kfh.cjs → piRunnerArgs-C3jZ1M6b.cjs} +1 -1
- package/dist/{piRunnerArgs-DRuxMlX1.mjs → piRunnerArgs-D8nN_Iit.mjs} +1 -1
- package/dist/{piRuntime-DEbPE_kW.cjs → piRuntime-Bd9-eq6M.cjs} +1 -1
- package/dist/{piRuntime-BMAFpIBV.mjs → piRuntime-BoeMsAXK.mjs} +1 -1
- package/dist/{piTerminal-MtxDtBE2.cjs → piTerminal-C3j1ca3x.cjs} +16 -16
- package/dist/{piTerminal-DQXV8_we.mjs → piTerminal-GEPkIGD4.mjs} +17 -17
- package/dist/{pushNotifications-CalIS9sq.cjs → pushNotifications-CfspRcl-.cjs} +20 -2
- package/dist/{pushNotifications-Cq1s8YVK.mjs → pushNotifications-dUceOIni.mjs} +21 -3
- package/dist/{query-CE2XDhhw.cjs → query-DjsVgG3E.cjs} +1 -1
- package/dist/{query-BYiPBHPC.mjs → query-iYH-tm7L.mjs} +1 -1
- package/dist/{rateLimitReporter-BKmoOZQi.cjs → rateLimitReporter-DUu2KydZ.cjs} +3 -3
- package/dist/{rateLimitReporter-DR5LXuiQ.mjs → rateLimitReporter-jeVi-fym.mjs} +3 -3
- package/dist/{rateLimitWindows-Cs56YJCH.cjs → rateLimitWindows-Bx3ROBP5.cjs} +1 -1
- package/dist/{rateLimitWindows-5vIuNjko.mjs → rateLimitWindows-CEn0DXaX.mjs} +1 -1
- package/dist/{registerCommonHandlers-DZPozYxc.cjs → registerCommonHandlers-Beun-cQv.cjs} +2 -2
- package/dist/{registerCommonHandlers-DWkTysjD.mjs → registerCommonHandlers-DWZ7mfdt.mjs} +2 -2
- package/dist/{registerKillSessionHandler-DhCjrs44.cjs → registerKillSessionHandler-CA1FFr_F.cjs} +15 -5
- package/dist/{registerKillSessionHandler-CSCTRIbI.mjs → registerKillSessionHandler-CzgklwLG.mjs} +16 -6
- package/dist/{remoteSessionClient-Vfj_5g2-.mjs → remoteSessionClient-BiC2KDew.mjs} +5 -5
- package/dist/{remoteSessionClient-Dq8XTLQP.cjs → remoteSessionClient-DGFI__5Z.cjs} +5 -5
- package/dist/{reportProgressTool-B7zmX7NJ.mjs → reportProgressTool-CgPy6n_7.mjs} +3 -3
- package/dist/{reportProgressTool-DznxPKES.cjs → reportProgressTool-CvPGov1F.cjs} +2 -2
- package/dist/{run-DSfNcR62.mjs → run-B_gFgJVB.mjs} +392 -42
- package/dist/{run-Ca8BiNCp.cjs → run-rPqQwDi_.cjs} +389 -39
- package/dist/{runClaude-hoepv-0X.mjs → runClaude-CykqeXK7.mjs} +26 -23
- package/dist/{runClaude-ClQQcgoO.cjs → runClaude-DM8gm8iu.cjs} +27 -24
- package/dist/{runClaudeDeps-D_v8t2SK.mjs → runClaudeDeps-D2phXGut.mjs} +101 -44
- package/dist/{runClaudeDeps-ck5_GYlP.cjs → runClaudeDeps-DGAomimZ.cjs} +94 -37
- package/dist/{runGemini-Cj0XsMiM.cjs → runGemini-CXTeSOZp.cjs} +32 -32
- package/dist/{runGemini-CTr2-cYG.mjs → runGemini-CtWCVkj5.mjs} +33 -33
- package/dist/{runOpenClaw-CdDMntiV.mjs → runOpenClaw-BBdjlViJ.mjs} +18 -18
- package/dist/{runOpenClaw-BoN1e3lP.cjs → runOpenClaw-CH_9_RyZ.cjs} +17 -17
- package/dist/{sandbox-BY2h19gc.cjs → sandbox-Bb5IMun3.cjs} +4 -4
- package/dist/{sandbox-DcaWB-Ou.mjs → sandbox-DGmXZ6Zz.mjs} +4 -4
- package/dist/selfCheck-BfK945YQ.mjs +86 -0
- package/dist/{selfCheck-DFS_GUaQ.cjs → selfCheck-CccwNTTK.cjs} +37 -37
- package/dist/{send-UBTHHNvZ.mjs → send-B6rHg8GT.mjs} +8 -8
- package/dist/{send-BMsUYU6g.cjs → send-BpiXPkDo.cjs} +8 -8
- package/dist/{server-Dt3mCtfQ.mjs → server-BkdAyHhC.mjs} +4 -4
- package/dist/{server-YrHMHNz1.cjs → server-DHUzjApC.cjs} +6 -6
- package/dist/{sessionLock-DSqiP2lH.cjs → sessionLock-BFBReiKq.cjs} +134 -3
- package/dist/{sessionLock-tEFvFXLD.mjs → sessionLock-Ca_bIo50.mjs} +121 -4
- package/dist/{sessionOps-CljctDs5.mjs → sessionOps-CA2kpm66.mjs} +13 -5
- package/dist/{sessionOps-BzeOKIEF.cjs → sessionOps-DeWVqpe4.cjs} +13 -4
- package/dist/{sessionProvider-ORgzmkXy.cjs → sessionProvider-VFbtUmMR.cjs} +5 -5
- package/dist/{sessionProvider-BnUFSJXM.mjs → sessionProvider-g18IiK74.mjs} +5 -5
- package/dist/{sessionScanner-Cr6PJ3PT.cjs → sessionScanner-CGzsN8V6.cjs} +3 -3
- package/dist/{sessionScanner-DZUlkdF6.mjs → sessionScanner-DDDud5re.mjs} +3 -3
- package/dist/{sessions-15cag-su.mjs → sessions-B4d50sCI.mjs} +35 -26
- package/dist/{sessions-aIo_HjmY.cjs → sessions-CKJPWFgu.cjs} +36 -25
- package/dist/{setupOfflineReconnection-B7I8R2Ex.mjs → setupOfflineReconnection-CyPNgyCe.mjs} +2 -2
- package/dist/{setupOfflineReconnection-tV0Q1dgR.cjs → setupOfflineReconnection-DPXRo_zf.cjs} +2 -2
- package/dist/{spawn-VG-HjJiR.cjs → spawn-CgSJzzWS.cjs} +13 -13
- package/dist/{spawn-ByrQgruJ.mjs → spawn-CrYN_OOT.mjs} +15 -15
- package/dist/{spawnAgents-Bh1RPShN.mjs → spawnAgents-DWCDYCQ1.mjs} +1 -1
- package/dist/{spawnHappyCLI-CxiR2Qoy.cjs → spawnHappyCLI-CTy3p6V_.cjs} +1 -1
- package/dist/{spawnHappyCLI-CEsXwz5V.mjs → spawnHappyCLI-DjbkiSH1.mjs} +1 -1
- package/dist/{startFileWatcher-C-XCZ5t2.cjs → startFileWatcher-BQs0cJA-.cjs} +1 -1
- package/dist/{startFileWatcher-DkEeeAtL.mjs → startFileWatcher-Dedtu1vq.mjs} +1 -1
- package/dist/{defaultPermissionMode-e2bIIJG4.mjs → startupSessionCreate-BKFU4v_h.mjs} +25 -6
- package/dist/{defaultPermissionMode-5EvgRq38.cjs → startupSessionCreate-Dxy3X4DG.cjs} +25 -7
- package/dist/{streamRelay-CqBynIon.mjs → streamRelay-P9e7Sohm.mjs} +1 -1
- package/dist/{sync-CoChLEIg.cjs → sync-DtWB7RzA.cjs} +1 -1
- package/dist/{sync-BvDMkKAN.mjs → sync-eZkXnsW_.mjs} +1 -1
- package/dist/{systemPrompt-Dy_Rf-0Z.cjs → systemPrompt-2XOpZ1j6.cjs} +1 -1
- package/dist/{systemPrompt-CgDaPigN.mjs → systemPrompt-Bn6g6aCH.mjs} +2 -2
- package/dist/{teams-DPvfLAk8.cjs → teams-ecFay4Gn.cjs} +6 -6
- package/dist/{teams-BC4_e5hR.mjs → teams-nadkqrbW.mjs} +7 -7
- package/dist/{template-CEK8MEjo.mjs → template-BiTD-jI9.mjs} +1 -1
- package/dist/{time-CUK37wiV.mjs → time-CN3TuSVG.mjs} +1 -1
- package/dist/{time-XwEZxKGc.cjs → time-gPD_EmA-.cjs} +1 -1
- package/dist/{titleGenerator-DWRVdqMU.mjs → titleGenerator-DgzTQdn2.mjs} +1 -1
- package/dist/{titleGenerator-DVX0NZUn.cjs → titleGenerator-lT5ldPuN.cjs} +2 -2
- package/dist/{todo-CKGrSrRE.cjs → todo-B1VeMk5A.cjs} +5 -5
- package/dist/{todo-BNMGXneA.mjs → todo-BIxd7l2Q.mjs} +6 -6
- package/dist/{tools-CjMafO_D.cjs → tools-DvqbLsCF.cjs} +1 -1
- package/dist/{tools-CCIEAVbB.mjs → tools-zXJpxiG_.mjs} +1 -1
- package/dist/{uninstall-CJvJ7gjr.mjs → uninstall-9htK6mb7.mjs} +3 -3
- package/dist/{uninstall-BdFbTXnL.cjs → uninstall-CvIOpwB5.cjs} +3 -3
- package/package.json +7 -7
- package/dist/agentAttachments-M_B5qEF2.mjs +0 -18
- package/dist/selfCheck-BQ_H2Sns.mjs +0 -86
- package/dist/startupSessionCreate-CYc8mra-.cjs +0 -26
- package/dist/startupSessionCreate-npXe2TdN.mjs +0 -24
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
var node_child_process = require('node:child_process');
|
|
4
4
|
var spawn = require('cross-spawn');
|
|
5
5
|
var node_readline = require('node:readline');
|
|
6
|
-
var logger = require('./logger-
|
|
6
|
+
var logger = require('./logger-BBRTTVsQ.cjs');
|
|
7
7
|
var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
8
8
|
var manager = require('./manager-HrEj442o.cjs');
|
|
9
|
-
var _package = require('./package-
|
|
10
|
-
var rateLimitWindows = require('./rateLimitWindows-
|
|
9
|
+
var _package = require('./package-DrY090nZ.cjs');
|
|
10
|
+
var rateLimitWindows = require('./rateLimitWindows-Bx3ROBP5.cjs');
|
|
11
11
|
var processTree = require('./processTree-CMHWlVse.cjs');
|
|
12
12
|
|
|
13
13
|
const CODEX_HELPER_LABEL_MAX_CHARS = 80;
|
|
@@ -127,6 +127,8 @@ class CodexAppServerClient {
|
|
|
127
127
|
pending = /* @__PURE__ */ new Map();
|
|
128
128
|
processEpoch = 0;
|
|
129
129
|
connected = false;
|
|
130
|
+
/** B-852: agent version from the last `initialize` (null = unknown). */
|
|
131
|
+
serverVersion = null;
|
|
130
132
|
sandboxConfig;
|
|
131
133
|
sandboxCleanup = null;
|
|
132
134
|
sandboxEnabled = false;
|
|
@@ -627,7 +629,8 @@ ${text}`.slice(-400);
|
|
|
627
629
|
experimentalApi: true
|
|
628
630
|
}
|
|
629
631
|
};
|
|
630
|
-
await this.request("initialize", initParams);
|
|
632
|
+
const initialized = await this.request("initialize", initParams);
|
|
633
|
+
this.serverVersion = typeof initialized?.userAgent === "string" ? initialized.userAgent.match(/\/(\d+\.\d+\.\d+)\b/)?.[1] ?? null : null;
|
|
631
634
|
this.notify("initialized");
|
|
632
635
|
this.connected = true;
|
|
633
636
|
logger.logger.debug("[CodexAppServer] Connected and initialized");
|
|
@@ -813,7 +816,8 @@ ${text}`.slice(-400);
|
|
|
813
816
|
baseInstructions: null,
|
|
814
817
|
developerInstructions: null,
|
|
815
818
|
ephemeral: false,
|
|
816
|
-
threadSource: null
|
|
819
|
+
threadSource: null,
|
|
820
|
+
...opts.lastTurnId ? { lastTurnId: opts.lastTurnId } : {}
|
|
817
821
|
};
|
|
818
822
|
const result = await this.request("thread/fork", params);
|
|
819
823
|
this._threadId = result.thread.id;
|
|
@@ -1120,7 +1124,10 @@ ${text}`.slice(-400);
|
|
|
1120
1124
|
* Returns { aborted: true } if the turn was aborted (user cancel, permission reject, etc.).
|
|
1121
1125
|
*/
|
|
1122
1126
|
async sendTurnAndWait(prompt, opts) {
|
|
1123
|
-
const { aborted } = await this.runTurnAndWait(() =>
|
|
1127
|
+
const { aborted } = await this.runTurnAndWait(async () => {
|
|
1128
|
+
await this.sendTurn(prompt, opts);
|
|
1129
|
+
opts?.onTurnStarted?.();
|
|
1130
|
+
}, opts);
|
|
1124
1131
|
return { aborted };
|
|
1125
1132
|
}
|
|
1126
1133
|
/**
|
|
@@ -1,108 +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 registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
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-CYc8mra-.cjs');
|
|
34
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-DPXRo_zf.cjs');
|
|
36
35
|
var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
|
|
37
36
|
var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
|
|
38
37
|
var constants = require('./constants-VJ0N6WuG.cjs');
|
|
38
|
+
var defaultPermissionMode = require('./defaultPermissionMode-CxmTXUQR.cjs');
|
|
39
39
|
var editPaths = require('./editPaths-Bqp4OFPw.cjs');
|
|
40
|
-
var ensureDaemonRunning = require('./ensureDaemonRunning-
|
|
40
|
+
var ensureDaemonRunning = require('./ensureDaemonRunning-Bibp6vhe.cjs');
|
|
41
41
|
require('tweetnacl');
|
|
42
42
|
require('axios');
|
|
43
|
-
require('./time-
|
|
44
|
-
require('./browser-
|
|
43
|
+
require('./time-gPD_EmA-.cjs');
|
|
44
|
+
require('./browser-CLJWcodR.cjs');
|
|
45
45
|
require('open');
|
|
46
46
|
require('zod');
|
|
47
47
|
require('./prompt-Bof2aQkI.cjs');
|
|
48
|
-
require('./reportProgressTool-
|
|
49
|
-
require('./client-
|
|
48
|
+
require('./reportProgressTool-CvPGov1F.cjs');
|
|
49
|
+
require('./client-Bffkrs5p.cjs');
|
|
50
50
|
require('./precheckCompat-CWOi5c9L.cjs');
|
|
51
51
|
require('./agentGuidance-BtBx2xxE.cjs');
|
|
52
52
|
require('node:fs');
|
|
53
53
|
require('node:os');
|
|
54
54
|
require('./pi-DlsrPCTa.cjs');
|
|
55
55
|
require('./fileStore-7qhnbs6N.cjs');
|
|
56
|
-
require('./client-
|
|
56
|
+
require('./client-CARZ_lNS.cjs');
|
|
57
57
|
require('node:util');
|
|
58
|
-
require('./context-
|
|
59
|
-
require('./sessionOps-
|
|
58
|
+
require('./context-BdZssgF0.cjs');
|
|
59
|
+
require('./sessionOps-DeWVqpe4.cjs');
|
|
60
60
|
require('socket.io-client');
|
|
61
61
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
62
62
|
require('./resources-BZ_Be0qM.cjs');
|
|
63
|
-
require('./tools-
|
|
64
|
-
require('./peerTools-
|
|
63
|
+
require('./tools-DvqbLsCF.cjs');
|
|
64
|
+
require('./peerTools-5ZM4spcZ.cjs');
|
|
65
65
|
require('./ids-B6ZC0HGt.cjs');
|
|
66
|
-
require('./remoteSessionClient-
|
|
66
|
+
require('./remoteSessionClient-DGFI__5Z.cjs');
|
|
67
67
|
require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
68
68
|
require('node:http');
|
|
69
69
|
require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
70
70
|
require('./limits-C-a7gr04.cjs');
|
|
71
|
-
require('./downloadTarget-
|
|
71
|
+
require('./downloadTarget-DS0zT2AU.cjs');
|
|
72
72
|
require('./terminals-B_bfC9c2.cjs');
|
|
73
73
|
require('./terminalTitleSuggest-DhvRFX3H.cjs');
|
|
74
74
|
require('./tmuxSocket-D-Xt6Vn-.cjs');
|
|
75
|
-
require('./bootstrap-
|
|
76
|
-
require('./package-
|
|
75
|
+
require('./bootstrap-DBJB0y-H.cjs');
|
|
76
|
+
require('./package-DrY090nZ.cjs');
|
|
77
77
|
require('./webPanels-FCgFKvVe.cjs');
|
|
78
|
-
require('./pushNotifications-
|
|
78
|
+
require('./pushNotifications-CfspRcl-.cjs');
|
|
79
79
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
80
80
|
require('./previewPath-B0rBdhy1.cjs');
|
|
81
81
|
require('crypto');
|
|
82
|
-
require('./lidState-
|
|
82
|
+
require('./lidState-q_XFYg33.cjs');
|
|
83
83
|
require('os');
|
|
84
84
|
require('child_process');
|
|
85
85
|
require('node:events');
|
|
86
|
-
require('./registerCommonHandlers-
|
|
86
|
+
require('./registerCommonHandlers-Beun-cQv.cjs');
|
|
87
87
|
require('util');
|
|
88
88
|
require('fs/promises');
|
|
89
89
|
require('path');
|
|
90
90
|
require('cross-spawn');
|
|
91
|
-
require('./sync-
|
|
91
|
+
require('./sync-DtWB7RzA.cjs');
|
|
92
92
|
require('chalk');
|
|
93
|
+
require('./cliUpdate-DsKXPFYp.cjs');
|
|
93
94
|
require('./processTreeSnapshot-mDbnuojn.cjs');
|
|
94
95
|
require('node:readline');
|
|
95
96
|
require('./manager-HrEj442o.cjs');
|
|
96
97
|
require('@anthropic-ai/sandbox-runtime');
|
|
97
|
-
require('./rateLimitWindows-
|
|
98
|
+
require('./rateLimitWindows-Bx3ROBP5.cjs');
|
|
98
99
|
require('./processTree-CMHWlVse.cjs');
|
|
99
100
|
require('./detectCLI-BuYR_Qxe.cjs');
|
|
100
101
|
require('fs');
|
|
101
|
-
require('./localHappyAgentAuth-
|
|
102
|
+
require('./localHappyAgentAuth-CKNW-MXw.cjs');
|
|
102
103
|
require('./fsMkdir-0K3yENml.cjs');
|
|
103
104
|
require('./types-CRS-srZK.cjs');
|
|
104
105
|
require('url');
|
|
105
|
-
require('./spawnHappyCLI-
|
|
106
|
+
require('./spawnHappyCLI-CTy3p6V_.cjs');
|
|
106
107
|
require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
107
108
|
|
|
108
109
|
function getStartedSubagents(state) {
|
|
@@ -1499,7 +1500,7 @@ async function runCodex(opts) {
|
|
|
1499
1500
|
dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
|
|
1500
1501
|
...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
|
|
1501
1502
|
...forkedFromMessageId ? { forkedFromMessageId } : {},
|
|
1502
|
-
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]
|
|
1503
1504
|
});
|
|
1504
1505
|
metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
|
|
1505
1506
|
metadata.stickyModel = null;
|
|
@@ -1616,6 +1617,7 @@ async function runCodex(opts) {
|
|
|
1616
1617
|
const keys = entries.map((entry) => entry.sourceId).filter((key) => typeof key === "string");
|
|
1617
1618
|
if (keys.length > 0) session.sendQueueCancelReason(keys, entries[0].reason);
|
|
1618
1619
|
});
|
|
1620
|
+
const heldInput$1 = new heldInput.HeldInput((keys, reason) => session.sendQueueCancelReason(keys, reason));
|
|
1619
1621
|
let currentPermissionMode = initialPermissionMode;
|
|
1620
1622
|
let currentModel = DEFAULT_CODEX_MODEL;
|
|
1621
1623
|
let currentEffort = DEFAULT_CODEX_EFFORT;
|
|
@@ -1656,8 +1658,9 @@ async function runCodex(opts) {
|
|
|
1656
1658
|
};
|
|
1657
1659
|
publishPermissionMode(opts.permissionMode);
|
|
1658
1660
|
let discoveredModels = [];
|
|
1661
|
+
let codexAgentVersion = null;
|
|
1659
1662
|
let machineDefaultModel;
|
|
1660
|
-
|
|
1663
|
+
heldInput.registerAgentAttachmentDownloads(session);
|
|
1661
1664
|
const CODEX_IMAGE_MIME_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
|
|
1662
1665
|
const steerDeps = {
|
|
1663
1666
|
ownsTurn: () => turnActive && !abortInProgress && !shouldExit,
|
|
@@ -1755,6 +1758,7 @@ async function runCodex(opts) {
|
|
|
1755
1758
|
}).catch((error) => {
|
|
1756
1759
|
logger.logger.warn("[Codex] Failed to prepare user attachments", safeCodexErrorMetadata(error));
|
|
1757
1760
|
session.sendSessionEvent({ type: "message", message: "Could not prepare this message. Please send it again." });
|
|
1761
|
+
if (message.localKey) session.sendQueueCancelReason([message.localKey], "failed");
|
|
1758
1762
|
});
|
|
1759
1763
|
});
|
|
1760
1764
|
let thinking = false;
|
|
@@ -1797,7 +1801,8 @@ async function runCodex(opts) {
|
|
|
1797
1801
|
}
|
|
1798
1802
|
let abortController = new AbortController();
|
|
1799
1803
|
let shouldExit = false;
|
|
1800
|
-
|
|
1804
|
+
let terminating = false;
|
|
1805
|
+
const hibernationExit = new startupSessionCreate.HibernationExitLatch((a, b) => a === "archive" && b !== "archive");
|
|
1801
1806
|
let hibernationStamp = null;
|
|
1802
1807
|
let hibernationProbe = null;
|
|
1803
1808
|
async function handleAbort(source) {
|
|
@@ -1850,6 +1855,10 @@ async function runCodex(opts) {
|
|
|
1850
1855
|
logger.logger.debug("[Codex] Kill session requested - terminating process");
|
|
1851
1856
|
const exitCursor = intent === "offline" && session ? sessionLock.exitCursorStamp(session.messageCursor, Date.now()) : void 0;
|
|
1852
1857
|
if (exitCursor) session.freezeInbound();
|
|
1858
|
+
const exitReason = intent === "archive" ? "aborted" : "restarted";
|
|
1859
|
+
terminating = true;
|
|
1860
|
+
heldInput$1.drop(exitReason);
|
|
1861
|
+
messageQueue.discardAll(exitReason);
|
|
1853
1862
|
await handleAbort("kill");
|
|
1854
1863
|
logger.logger.debug("[Codex] Abort completed, proceeding with termination");
|
|
1855
1864
|
try {
|
|
@@ -2075,6 +2084,7 @@ async function runCodex(opts) {
|
|
|
2075
2084
|
logger.logger.debug("[codex]: client.connect begin");
|
|
2076
2085
|
await client$1.connect();
|
|
2077
2086
|
logger.logger.debug("[codex]: client.connect done");
|
|
2087
|
+
codexAgentVersion = client$1.serverVersion;
|
|
2078
2088
|
try {
|
|
2079
2089
|
discoveredModels = await client$1.listModels();
|
|
2080
2090
|
let configured = null;
|
|
@@ -2169,17 +2179,18 @@ async function runCodex(opts) {
|
|
|
2169
2179
|
pendingRequests: Object.keys(session.getAgentState()?.requests ?? {}).length,
|
|
2170
2180
|
backgroundTasks: codexActiveSubagents.size,
|
|
2171
2181
|
lastActivityAt: session.lastActivityAt,
|
|
2182
|
+
...codexAgentVersion ? { agentVersion: codexAgentVersion } : {},
|
|
2172
2183
|
...shouldExit && !hibernationExit.hibernating ? { exiting: true } : {}
|
|
2173
2184
|
};
|
|
2174
2185
|
};
|
|
2175
|
-
hibernationProbe = new
|
|
2186
|
+
hibernationProbe = new startupSessionCreate.HibernationProbe({
|
|
2176
2187
|
onKeepAwakeLatched: () => {
|
|
2177
2188
|
if (session.getMetadata()?.keepAwake === void 0) session.updateMetadata((m) => m.keepAwake === void 0 ? { ...m, keepAwake: true } : m);
|
|
2178
2189
|
},
|
|
2179
2190
|
checkMs: persistence.resolveCheckMs(),
|
|
2180
2191
|
snapshot: hibernationSnapshot,
|
|
2181
2192
|
ask: (report) => controlClient.checkDaemonHibernation({ sessionId: session.sessionId, pid: process.pid, report }),
|
|
2182
|
-
commit: (idleMs) =>
|
|
2193
|
+
commit: (idleMs) => startupSessionCreate.commitHibernation({
|
|
2183
2194
|
client: session,
|
|
2184
2195
|
claimExit: () => !shouldExit && hibernationExit.begin(),
|
|
2185
2196
|
exitRequested: () => hibernationExit.exitRequested,
|
|
@@ -2199,6 +2210,8 @@ async function runCodex(opts) {
|
|
|
2199
2210
|
});
|
|
2200
2211
|
hibernationProbe.start();
|
|
2201
2212
|
}
|
|
2213
|
+
const autoUpdated = sessionLock.takeAutoRestartedEvent(process.env, "Codex");
|
|
2214
|
+
if (autoUpdated) session.sendSessionEvent(autoUpdated);
|
|
2202
2215
|
idleRelease.arm();
|
|
2203
2216
|
while (!shouldExit) {
|
|
2204
2217
|
logActiveHandles("loop-top");
|
|
@@ -2216,6 +2229,7 @@ async function runCodex(opts) {
|
|
|
2216
2229
|
break;
|
|
2217
2230
|
}
|
|
2218
2231
|
message = batch;
|
|
2232
|
+
heldInput$1.hold(batch.sourceIds);
|
|
2219
2233
|
}
|
|
2220
2234
|
if (!message) {
|
|
2221
2235
|
break;
|
|
@@ -2228,6 +2242,7 @@ async function runCodex(opts) {
|
|
|
2228
2242
|
turnActive = true;
|
|
2229
2243
|
if (isCodexClearText(message.message)) {
|
|
2230
2244
|
logger.logger.debug("[Codex] Handling /clear command - resetting Codex thread state");
|
|
2245
|
+
heldInput$1.delivered();
|
|
2231
2246
|
client$1.clearThreadState();
|
|
2232
2247
|
currentTurnId = null;
|
|
2233
2248
|
codexStartedSubagents = /* @__PURE__ */ new Set();
|
|
@@ -2264,6 +2279,7 @@ async function runCodex(opts) {
|
|
|
2264
2279
|
try {
|
|
2265
2280
|
if (compactCommand !== null) {
|
|
2266
2281
|
await client$1.ensureConnected();
|
|
2282
|
+
heldInput$1.delivered();
|
|
2267
2283
|
const outcome = await runCodexCompact(compactCommand, {
|
|
2268
2284
|
client: client$1,
|
|
2269
2285
|
notify: (text) => {
|
|
@@ -2312,12 +2328,17 @@ async function runCodex(opts) {
|
|
|
2312
2328
|
happyHomeDir: configuration.configuration.happyHomeDir,
|
|
2313
2329
|
sessionId: session.sessionId
|
|
2314
2330
|
}) : [];
|
|
2331
|
+
if (terminating) {
|
|
2332
|
+
logger.logger.debug("[Codex] Session is ending; not starting the turn");
|
|
2333
|
+
continue;
|
|
2334
|
+
}
|
|
2315
2335
|
const result = await client$1.sendTurnAndWait(attachmentContent.appendStagedAttachmentsToPrompt(turnPrompt, staged), {
|
|
2316
2336
|
images: staged.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => file.path),
|
|
2317
2337
|
model: turnModel,
|
|
2318
2338
|
approvalPolicy: executionPolicy.approvalPolicy,
|
|
2319
2339
|
sandbox: executionPolicy.sandbox,
|
|
2320
|
-
effort: message.mode.effort
|
|
2340
|
+
effort: message.mode.effort,
|
|
2341
|
+
onTurnStarted: () => heldInput$1.delivered()
|
|
2321
2342
|
});
|
|
2322
2343
|
reportModeFacts();
|
|
2323
2344
|
first = false;
|
|
@@ -2329,6 +2350,7 @@ async function runCodex(opts) {
|
|
|
2329
2350
|
}
|
|
2330
2351
|
} catch (error) {
|
|
2331
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");
|
|
2332
2354
|
const reason = describeThrownTurnError(error);
|
|
2333
2355
|
if (reason) {
|
|
2334
2356
|
messageBuffer.addMessage(`Task failed: ${reason}`, "status");
|
|
@@ -2360,6 +2382,8 @@ async function runCodex(opts) {
|
|
|
2360
2382
|
disposeTermination?.();
|
|
2361
2383
|
hibernationProbe?.stop();
|
|
2362
2384
|
session.closePromptQueueDrain();
|
|
2385
|
+
heldInput$1.drop("aborted");
|
|
2386
|
+
messageQueue.discardAll("aborted");
|
|
2363
2387
|
logger.logger.debug("[codex]: Final cleanup start");
|
|
2364
2388
|
logActiveHandles("cleanup-start");
|
|
2365
2389
|
if (reconnectionHandle) {
|
|
@@ -1,106 +1,107 @@
|
|
|
1
|
-
import { a as authAndSetupMachineIfNeeded } from './auth-
|
|
2
|
-
import { g as createEnvelope, j as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY, J as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, K as CODEX_COMPACT_CAPABILITY } from './index-
|
|
3
|
-
import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-
|
|
4
|
-
import { s as sharedProjectsClient } from './client-
|
|
1
|
+
import { a as authAndSetupMachineIfNeeded } from './auth-Bj0psrD2.mjs';
|
|
2
|
+
import { g as createEnvelope, j as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY, J as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, K as CODEX_COMPACT_CAPABILITY } from './index-DmqsRnV7.mjs';
|
|
3
|
+
import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-DNmMVhFu.mjs';
|
|
4
|
+
import { s as sharedProjectsClient } from './client-CnGNYidN.mjs';
|
|
5
5
|
import { unlink } from 'node:fs/promises';
|
|
6
6
|
import { p as publishForkBackfillWhenCommitted, F as FORK_BACKFILL_CAPABILITY } from './forkBackfill-DYIjlN1Z.mjs';
|
|
7
7
|
import { randomUUID } from 'node:crypto';
|
|
8
8
|
import { createId } from '@paralleldrive/cuid2';
|
|
9
|
-
import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-
|
|
10
|
-
import { r as registerAgentAttachmentDownloads } from './
|
|
11
|
-
import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-
|
|
9
|
+
import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-Dw8gFsQi.mjs';
|
|
10
|
+
import { r as registerAgentAttachmentDownloads, H as HeldInput } from './heldInput-C69lA2dH.mjs';
|
|
11
|
+
import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-CC4yIrSm.mjs';
|
|
12
12
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
13
|
-
import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, e as exitCursorStamp } from './sessionLock-
|
|
13
|
+
import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, t as takeAutoRestartedEvent, A as AUTO_RESTART_CAPABILITY, e as exitCursorStamp } from './sessionLock-Ca_bIo50.mjs';
|
|
14
14
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
15
|
-
import { C as CodexAppServerClient } from './codexAppServerClient-
|
|
16
|
-
import { w as wrapperRateLimitReporter } from './rateLimitReporter-
|
|
17
|
-
import { l as logger } from './logger-
|
|
18
|
-
import { B as BasePermissionHandler } from './BasePermissionHandler-
|
|
19
|
-
import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-
|
|
15
|
+
import { C as CodexAppServerClient } from './codexAppServerClient-CLc5nhLT.mjs';
|
|
16
|
+
import { w as wrapperRateLimitReporter } from './rateLimitReporter-jeVi-fym.mjs';
|
|
17
|
+
import { l as logger } from './logger-CL7pin9b.mjs';
|
|
18
|
+
import { B as BasePermissionHandler } from './BasePermissionHandler-CLp1ge-4.mjs';
|
|
19
|
+
import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-ORIw0gpU.mjs';
|
|
20
20
|
import { execSync } from 'node:child_process';
|
|
21
|
-
import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-
|
|
22
|
-
import { g as getInitialMachineMetadata } from './machineMetadata-
|
|
23
|
-
import { c as configuration } from './configuration-
|
|
24
|
-
import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-
|
|
21
|
+
import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-Dogj7JIp.mjs';
|
|
22
|
+
import { g as getInitialMachineMetadata } from './machineMetadata-DP06qdBk.mjs';
|
|
23
|
+
import { c as configuration } from './configuration-Dechcvd-.mjs';
|
|
24
|
+
import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-CzgklwLG.mjs';
|
|
25
25
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
26
26
|
import { join } from 'node:path';
|
|
27
|
-
import { c as createSessionMetadata } from './createSessionMetadata-
|
|
27
|
+
import { c as createSessionMetadata } from './createSessionMetadata-DyhFKAby.mjs';
|
|
28
28
|
import { M as MessageBuffer } from './sessionExitLifecycle-CzkLIgNZ.mjs';
|
|
29
|
-
import { n as notifyDaemonSessionStarted, k as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-
|
|
30
|
-
import {
|
|
29
|
+
import { n as notifyDaemonSessionStarted, k as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-D7NGfmtq.mjs';
|
|
30
|
+
import { c as createSessionForStartup, b as HibernationExitLatch, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-BKFU4v_h.mjs';
|
|
31
31
|
import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
|
|
32
|
-
import { s as setupOfflineReconnection } from './setupOfflineReconnection-
|
|
33
|
-
import { c as createSessionForStartup } from './startupSessionCreate-npXe2TdN.mjs';
|
|
32
|
+
import { s as setupOfflineReconnection } from './setupOfflineReconnection-CyPNgyCe.mjs';
|
|
34
33
|
import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
|
|
35
34
|
import { a as parseSpecialCommand, c as compactCommandText, b as parseCompact } from './specialCommands-MXUN0wfI.mjs';
|
|
36
35
|
import { C as CHANGE_TITLE_INSTRUCTION } from './constants-BC4St0xd.mjs';
|
|
36
|
+
import { a as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-BnxJPVHT.mjs';
|
|
37
37
|
import { E as EditReportThrottle, a as extractCodexPatchPaths } from './editPaths-BVfS_FFL.mjs';
|
|
38
|
-
import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-
|
|
38
|
+
import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-BOdbryDM.mjs';
|
|
39
39
|
import 'tweetnacl';
|
|
40
40
|
import 'axios';
|
|
41
|
-
import './time-
|
|
42
|
-
import './browser-
|
|
41
|
+
import './time-CN3TuSVG.mjs';
|
|
42
|
+
import './browser-BGxDRhHy.mjs';
|
|
43
43
|
import 'open';
|
|
44
44
|
import 'zod';
|
|
45
45
|
import './prompt-QHuFx9j6.mjs';
|
|
46
|
-
import './reportProgressTool-
|
|
47
|
-
import './client-
|
|
46
|
+
import './reportProgressTool-CgPy6n_7.mjs';
|
|
47
|
+
import './client-DZkBUoh9.mjs';
|
|
48
48
|
import './precheckCompat-DeEbilbr.mjs';
|
|
49
49
|
import './agentGuidance-BDYt2Qy2.mjs';
|
|
50
50
|
import 'node:fs';
|
|
51
51
|
import 'node:os';
|
|
52
52
|
import './pi-CqyoZMjI.mjs';
|
|
53
53
|
import './fileStore-5qpetZS0.mjs';
|
|
54
|
-
import './client-
|
|
54
|
+
import './client-CtL0Vtww.mjs';
|
|
55
55
|
import 'node:util';
|
|
56
|
-
import './context-
|
|
57
|
-
import './sessionOps-
|
|
56
|
+
import './context-C9JbJoNe.mjs';
|
|
57
|
+
import './sessionOps-CA2kpm66.mjs';
|
|
58
58
|
import 'socket.io-client';
|
|
59
59
|
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
60
60
|
import './resources-CLP_MpK4.mjs';
|
|
61
|
-
import './tools-
|
|
62
|
-
import './peerTools-
|
|
61
|
+
import './tools-zXJpxiG_.mjs';
|
|
62
|
+
import './peerTools-dY1aJez4.mjs';
|
|
63
63
|
import './ids-DU6sLx4C.mjs';
|
|
64
|
-
import './remoteSessionClient-
|
|
64
|
+
import './remoteSessionClient-BiC2KDew.mjs';
|
|
65
65
|
import '@modelcontextprotocol/sdk/server/mcp.js';
|
|
66
66
|
import 'node:http';
|
|
67
67
|
import '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
68
68
|
import './limits-DIo7rEBR.mjs';
|
|
69
|
-
import './downloadTarget-
|
|
69
|
+
import './downloadTarget-CGojGjaN.mjs';
|
|
70
70
|
import './terminals-Dlg0x3nY.mjs';
|
|
71
71
|
import './terminalTitleSuggest-CeKsX_V6.mjs';
|
|
72
72
|
import './tmuxSocket-B8Yx20sT.mjs';
|
|
73
|
-
import './bootstrap-
|
|
74
|
-
import './package-
|
|
73
|
+
import './bootstrap-Ct9Nb4sv.mjs';
|
|
74
|
+
import './package-C6uiXULx.mjs';
|
|
75
75
|
import './webPanels-B2_C2-3g.mjs';
|
|
76
|
-
import './pushNotifications-
|
|
76
|
+
import './pushNotifications-dUceOIni.mjs';
|
|
77
77
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
78
78
|
import './previewPath-CXN4Vag0.mjs';
|
|
79
79
|
import 'crypto';
|
|
80
|
-
import './lidState-
|
|
80
|
+
import './lidState-D0DF20oG.mjs';
|
|
81
81
|
import 'os';
|
|
82
82
|
import 'child_process';
|
|
83
83
|
import 'node:events';
|
|
84
|
-
import './registerCommonHandlers-
|
|
84
|
+
import './registerCommonHandlers-DWZ7mfdt.mjs';
|
|
85
85
|
import 'util';
|
|
86
86
|
import 'fs/promises';
|
|
87
87
|
import 'path';
|
|
88
88
|
import 'cross-spawn';
|
|
89
|
-
import './sync-
|
|
89
|
+
import './sync-eZkXnsW_.mjs';
|
|
90
90
|
import 'chalk';
|
|
91
|
+
import './cliUpdate-Y34VGe9Y.mjs';
|
|
91
92
|
import './processTreeSnapshot-CuLJDNC-.mjs';
|
|
92
93
|
import 'node:readline';
|
|
93
94
|
import './manager-BEsI4qt3.mjs';
|
|
94
95
|
import '@anthropic-ai/sandbox-runtime';
|
|
95
|
-
import './rateLimitWindows-
|
|
96
|
+
import './rateLimitWindows-CEn0DXaX.mjs';
|
|
96
97
|
import './processTree-CP5IvQ2Z.mjs';
|
|
97
98
|
import './detectCLI-CSGMlV51.mjs';
|
|
98
99
|
import 'fs';
|
|
99
|
-
import './localHappyAgentAuth-
|
|
100
|
+
import './localHappyAgentAuth-BBhM4Qk1.mjs';
|
|
100
101
|
import './fsMkdir-DumgLTzR.mjs';
|
|
101
102
|
import './types-CkqAACXx.mjs';
|
|
102
103
|
import 'url';
|
|
103
|
-
import './spawnHappyCLI-
|
|
104
|
+
import './spawnHappyCLI-DjbkiSH1.mjs';
|
|
104
105
|
import './doctorReadiness-C208SMN9.mjs';
|
|
105
106
|
|
|
106
107
|
function getStartedSubagents(state) {
|
|
@@ -1497,7 +1498,7 @@ async function runCodex(opts) {
|
|
|
1497
1498
|
dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
|
|
1498
1499
|
...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
|
|
1499
1500
|
...forkedFromMessageId ? { forkedFromMessageId } : {},
|
|
1500
|
-
capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, CODEX_STEER_CAPABILITY, PROJECT_SESSION_CAPABILITY, CODEX_COMPACT_CAPABILITY]
|
|
1501
|
+
capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, AUTO_RESTART_CAPABILITY, CODEX_STEER_CAPABILITY, PROJECT_SESSION_CAPABILITY, CODEX_COMPACT_CAPABILITY]
|
|
1501
1502
|
});
|
|
1502
1503
|
metadata.attachmentKinds = [...CLAUDE_ATTACHMENT_KINDS];
|
|
1503
1504
|
metadata.stickyModel = null;
|
|
@@ -1614,6 +1615,7 @@ async function runCodex(opts) {
|
|
|
1614
1615
|
const keys = entries.map((entry) => entry.sourceId).filter((key) => typeof key === "string");
|
|
1615
1616
|
if (keys.length > 0) session.sendQueueCancelReason(keys, entries[0].reason);
|
|
1616
1617
|
});
|
|
1618
|
+
const heldInput = new HeldInput((keys, reason) => session.sendQueueCancelReason(keys, reason));
|
|
1617
1619
|
let currentPermissionMode = initialPermissionMode;
|
|
1618
1620
|
let currentModel = DEFAULT_CODEX_MODEL;
|
|
1619
1621
|
let currentEffort = DEFAULT_CODEX_EFFORT;
|
|
@@ -1654,6 +1656,7 @@ async function runCodex(opts) {
|
|
|
1654
1656
|
};
|
|
1655
1657
|
publishPermissionMode(opts.permissionMode);
|
|
1656
1658
|
let discoveredModels = [];
|
|
1659
|
+
let codexAgentVersion = null;
|
|
1657
1660
|
let machineDefaultModel;
|
|
1658
1661
|
registerAgentAttachmentDownloads(session);
|
|
1659
1662
|
const CODEX_IMAGE_MIME_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
|
|
@@ -1753,6 +1756,7 @@ async function runCodex(opts) {
|
|
|
1753
1756
|
}).catch((error) => {
|
|
1754
1757
|
logger.warn("[Codex] Failed to prepare user attachments", safeCodexErrorMetadata(error));
|
|
1755
1758
|
session.sendSessionEvent({ type: "message", message: "Could not prepare this message. Please send it again." });
|
|
1759
|
+
if (message.localKey) session.sendQueueCancelReason([message.localKey], "failed");
|
|
1756
1760
|
});
|
|
1757
1761
|
});
|
|
1758
1762
|
let thinking = false;
|
|
@@ -1795,6 +1799,7 @@ async function runCodex(opts) {
|
|
|
1795
1799
|
}
|
|
1796
1800
|
let abortController = new AbortController();
|
|
1797
1801
|
let shouldExit = false;
|
|
1802
|
+
let terminating = false;
|
|
1798
1803
|
const hibernationExit = new HibernationExitLatch((a, b) => a === "archive" && b !== "archive");
|
|
1799
1804
|
let hibernationStamp = null;
|
|
1800
1805
|
let hibernationProbe = null;
|
|
@@ -1848,6 +1853,10 @@ async function runCodex(opts) {
|
|
|
1848
1853
|
logger.debug("[Codex] Kill session requested - terminating process");
|
|
1849
1854
|
const exitCursor = intent === "offline" && session ? exitCursorStamp(session.messageCursor, Date.now()) : void 0;
|
|
1850
1855
|
if (exitCursor) session.freezeInbound();
|
|
1856
|
+
const exitReason = intent === "archive" ? "aborted" : "restarted";
|
|
1857
|
+
terminating = true;
|
|
1858
|
+
heldInput.drop(exitReason);
|
|
1859
|
+
messageQueue.discardAll(exitReason);
|
|
1851
1860
|
await handleAbort("kill");
|
|
1852
1861
|
logger.debug("[Codex] Abort completed, proceeding with termination");
|
|
1853
1862
|
try {
|
|
@@ -2073,6 +2082,7 @@ async function runCodex(opts) {
|
|
|
2073
2082
|
logger.debug("[codex]: client.connect begin");
|
|
2074
2083
|
await client.connect();
|
|
2075
2084
|
logger.debug("[codex]: client.connect done");
|
|
2085
|
+
codexAgentVersion = client.serverVersion;
|
|
2076
2086
|
try {
|
|
2077
2087
|
discoveredModels = await client.listModels();
|
|
2078
2088
|
let configured = null;
|
|
@@ -2167,6 +2177,7 @@ async function runCodex(opts) {
|
|
|
2167
2177
|
pendingRequests: Object.keys(session.getAgentState()?.requests ?? {}).length,
|
|
2168
2178
|
backgroundTasks: codexActiveSubagents.size,
|
|
2169
2179
|
lastActivityAt: session.lastActivityAt,
|
|
2180
|
+
...codexAgentVersion ? { agentVersion: codexAgentVersion } : {},
|
|
2170
2181
|
...shouldExit && !hibernationExit.hibernating ? { exiting: true } : {}
|
|
2171
2182
|
};
|
|
2172
2183
|
};
|
|
@@ -2197,6 +2208,8 @@ async function runCodex(opts) {
|
|
|
2197
2208
|
});
|
|
2198
2209
|
hibernationProbe.start();
|
|
2199
2210
|
}
|
|
2211
|
+
const autoUpdated = takeAutoRestartedEvent(process.env, "Codex");
|
|
2212
|
+
if (autoUpdated) session.sendSessionEvent(autoUpdated);
|
|
2200
2213
|
idleRelease.arm();
|
|
2201
2214
|
while (!shouldExit) {
|
|
2202
2215
|
logActiveHandles("loop-top");
|
|
@@ -2214,6 +2227,7 @@ async function runCodex(opts) {
|
|
|
2214
2227
|
break;
|
|
2215
2228
|
}
|
|
2216
2229
|
message = batch;
|
|
2230
|
+
heldInput.hold(batch.sourceIds);
|
|
2217
2231
|
}
|
|
2218
2232
|
if (!message) {
|
|
2219
2233
|
break;
|
|
@@ -2226,6 +2240,7 @@ async function runCodex(opts) {
|
|
|
2226
2240
|
turnActive = true;
|
|
2227
2241
|
if (isCodexClearText(message.message)) {
|
|
2228
2242
|
logger.debug("[Codex] Handling /clear command - resetting Codex thread state");
|
|
2243
|
+
heldInput.delivered();
|
|
2229
2244
|
client.clearThreadState();
|
|
2230
2245
|
currentTurnId = null;
|
|
2231
2246
|
codexStartedSubagents = /* @__PURE__ */ new Set();
|
|
@@ -2262,6 +2277,7 @@ async function runCodex(opts) {
|
|
|
2262
2277
|
try {
|
|
2263
2278
|
if (compactCommand !== null) {
|
|
2264
2279
|
await client.ensureConnected();
|
|
2280
|
+
heldInput.delivered();
|
|
2265
2281
|
const outcome = await runCodexCompact(compactCommand, {
|
|
2266
2282
|
client,
|
|
2267
2283
|
notify: (text) => {
|
|
@@ -2310,12 +2326,17 @@ async function runCodex(opts) {
|
|
|
2310
2326
|
happyHomeDir: configuration.happyHomeDir,
|
|
2311
2327
|
sessionId: session.sessionId
|
|
2312
2328
|
}) : [];
|
|
2329
|
+
if (terminating) {
|
|
2330
|
+
logger.debug("[Codex] Session is ending; not starting the turn");
|
|
2331
|
+
continue;
|
|
2332
|
+
}
|
|
2313
2333
|
const result = await client.sendTurnAndWait(appendStagedAttachmentsToPrompt(turnPrompt, staged), {
|
|
2314
2334
|
images: staged.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => file.path),
|
|
2315
2335
|
model: turnModel,
|
|
2316
2336
|
approvalPolicy: executionPolicy.approvalPolicy,
|
|
2317
2337
|
sandbox: executionPolicy.sandbox,
|
|
2318
|
-
effort: message.mode.effort
|
|
2338
|
+
effort: message.mode.effort,
|
|
2339
|
+
onTurnStarted: () => heldInput.delivered()
|
|
2319
2340
|
});
|
|
2320
2341
|
reportModeFacts();
|
|
2321
2342
|
first = false;
|
|
@@ -2327,6 +2348,7 @@ async function runCodex(opts) {
|
|
|
2327
2348
|
}
|
|
2328
2349
|
} catch (error) {
|
|
2329
2350
|
logger.warn("Error in codex session", safeCodexErrorMetadata(error));
|
|
2351
|
+
if (heldInput.drop("failed")) logger.debug("[Codex] Message failed before its turn started; tombstoned");
|
|
2330
2352
|
const reason = describeThrownTurnError(error);
|
|
2331
2353
|
if (reason) {
|
|
2332
2354
|
messageBuffer.addMessage(`Task failed: ${reason}`, "status");
|
|
@@ -2358,6 +2380,8 @@ async function runCodex(opts) {
|
|
|
2358
2380
|
disposeTermination?.();
|
|
2359
2381
|
hibernationProbe?.stop();
|
|
2360
2382
|
session.closePromptQueueDrain();
|
|
2383
|
+
heldInput.drop("aborted");
|
|
2384
|
+
messageQueue.discardAll("aborted");
|
|
2361
2385
|
logger.debug("[codex]: Final cleanup start");
|
|
2362
2386
|
logActiveHandles("cleanup-start");
|
|
2363
2387
|
if (reconnectionHandle) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var node_crypto = require('node:crypto');
|
|
4
|
-
var logger = require('./logger-
|
|
4
|
+
var logger = require('./logger-BBRTTVsQ.cjs');
|
|
5
5
|
var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
|
|
6
6
|
|
|
7
7
|
class BaseReasoningProcessor {
|