very-happy-cli 0.2.189 → 0.2.191
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-CCy_9AfR.mjs} +3 -3
- package/dist/{AcpBackend-DRPJ2g9G.cjs → AcpBackend-DgrIc1vH.cjs} +3 -3
- package/dist/{AcpSessionManager-BZPmUDL5.mjs → AcpSessionManager-CQnxx7gD.mjs} +2 -2
- package/dist/{AcpSessionManager-DM-KKg6v.cjs → AcpSessionManager-DVOzCD3P.cjs} +2 -2
- package/dist/{BasePermissionHandler-DjM16uJz.cjs → BasePermissionHandler-C9Ag7yvs.cjs} +1 -1
- package/dist/{BasePermissionHandler-CVtH-snr.mjs → BasePermissionHandler-DYLN6Ec9.mjs} +1 -1
- package/dist/{acpSessionResume-Dxl1LRAT.mjs → acpSessionResume-Bi7pA1n_.mjs} +1 -1
- package/dist/{acpSessionResume-2BTMsB7_.cjs → acpSessionResume-TvP_4Zq2.cjs} +1 -1
- package/dist/{agentHome-CHctmMzZ.mjs → agentHome-DGv105SR.mjs} +4 -4
- package/dist/{agentHome-W17n1gnH.cjs → agentHome-DNUKJWOY.cjs} +4 -4
- package/dist/{api-BDuuyys8.cjs → api-BBxZ7y2z.cjs} +19 -10
- package/dist/{api-B0yN68XH.mjs → api-jfeMRg5R.mjs} +19 -10
- package/dist/{apiMachine-mc9CsKuS.mjs → apiMachine-DRJ7y-BB.mjs} +56 -15
- package/dist/{apiMachine-iddD-F19.cjs → apiMachine-DqyjKBZG.cjs} +56 -15
- package/dist/{attachmentContent-Cc5b7TPr.cjs → attachmentContent-BO2njyza.cjs} +2 -2
- package/dist/{attachmentContent-CcIdMfAx.mjs → attachmentContent-Dm_RIs5L.mjs} +2 -2
- package/dist/{auth-DNAgkUkB.mjs → auth-BYDtjVNb.mjs} +8 -8
- package/dist/{auth-CyrVvWHF.mjs → auth-DC6rg8lJ.mjs} +5 -5
- package/dist/{auth-B7tVmyfX.cjs → auth-DLR3ksCF.cjs} +8 -8
- package/dist/{auth-DQKSpaEf.cjs → auth-DnxoVkkf.cjs} +5 -5
- package/dist/{auto-CetlumDo.cjs → auto-CwO0u8hB.cjs} +18 -18
- package/dist/{auto-BklCipw1.mjs → auto-D5Jhukq1.mjs} +18 -18
- package/dist/{bootstrap-DfXwkUQb.mjs → bootstrap-rLaL3kTa.mjs} +2 -2
- package/dist/{bootstrap-CDY-Vz8q.cjs → bootstrap-sly4qPPY.cjs} +2 -2
- package/dist/{browser-D1yzC0Tu.cjs → browser-BTgZ9d4i.cjs} +1 -1
- package/dist/{browser-vb0k1zfI.mjs → browser-CHpVgyni.mjs} +1 -1
- package/dist/{claudeLocal-2dJIiTIq.cjs → claudeLocal-1vuTFcL8.cjs} +5 -5
- package/dist/{claudeLocal-Bid_rC_v.mjs → claudeLocal-Bgb5GGsq.mjs} +5 -5
- package/dist/{claudeLocalLauncher-Jm5oQX5Z.cjs → claudeLocalLauncher-DOsL6HFY.cjs} +10 -10
- package/dist/{claudeLocalLauncher-5pzpETxd.mjs → claudeLocalLauncher-T7EfT68h.mjs} +10 -10
- package/dist/{claudeSessionFork-DzecSBO4.mjs → claudeSessionFork-CPvi6yDX.mjs} +1 -1
- package/dist/{claudeSessionFork-DsbcuDEJ.cjs → claudeSessionFork-Cko4SaVi.cjs} +1 -1
- package/dist/{client-CvjjadIE.mjs → client-BXD66ZF5.mjs} +2 -2
- package/dist/{client-C9Ecbtko.mjs → client-Bh1aUPh-.mjs} +4 -4
- package/dist/{client-B161HwAk.mjs → client-Bi20Ka0h.mjs} +2 -2
- package/dist/{client-D0aYWt53.cjs → client-BscskEBk.cjs} +2 -2
- package/dist/{client-BNmFaRXZ.cjs → client-C-OdTbrU.cjs} +4 -4
- package/dist/{client-DIfxYk7B.cjs → client-C5-C0t2a.cjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +16 -16
- package/dist/codex/happyMcpStdioBridge.mjs +16 -16
- package/dist/{codexAppServerClient-CO9f4Jr8.cjs → codexAppServerClient-DKXeikEe.cjs} +13 -6
- package/dist/{codexAppServerClient-BlVmpjR-.mjs → codexAppServerClient-DXhAf6i-.mjs} +13 -6
- package/dist/{codexCommand-CAMR4g5o.mjs → codexCommand-CIaOiiOj.mjs} +137 -55
- package/dist/{codexCommand-BfoRP6E9.cjs → codexCommand-DvbbpYBS.cjs} +141 -59
- package/dist/{codexTermination-BvGlN02_.mjs → codexTermination-BcQdEDaw.mjs} +1 -1
- package/dist/{codexTermination-IrLZQzKC.cjs → codexTermination-BszWfyk5.cjs} +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-Di3Cf6js.cjs} +3 -3
- package/dist/{config-CtMgGPvf.mjs → config-OCEcVVK1.mjs} +3 -3
- package/dist/{configuration-C0ctLGW2.cjs → configuration-DfPBa-9d.cjs} +1 -1
- package/dist/{configuration-1FabKklB.mjs → configuration-ECqXu34R.mjs} +1 -1
- package/dist/{connect-DSw-2f52.cjs → connect-BPQRuOw5.cjs} +13 -13
- package/dist/{connect-0lSugpjf.mjs → connect-BTfAUhk8.mjs} +13 -13
- package/dist/{context-BgxbXWKS.mjs → context-CfgTFpCB.mjs} +1 -1
- package/dist/{context-D-hEk5pC.cjs → context-Co7hUaW-.cjs} +1 -1
- package/dist/{controlClient-F7hAEEy2.cjs → controlClient-C13_pSKG.cjs} +3 -3
- package/dist/{controlClient-DwNnNAUx.mjs → controlClient-ClI7A0qE.mjs} +3 -3
- package/dist/{createSessionMetadata-CG6Klinp.mjs → createSessionMetadata-B0eT_Kfj.mjs} +2 -2
- package/dist/{createSessionMetadata-DezS33OM.cjs → createSessionMetadata-Cf78KHtt.cjs} +2 -2
- package/dist/defaultPermissionMode-m6z2QVyP.mjs +43 -0
- package/dist/defaultPermissionMode-oqTupStc.cjs +49 -0
- package/dist/{deterministicJson-BMwgK21e.mjs → deterministicJson-BtSwbsok.mjs} +13 -13
- package/dist/{deterministicJson-D0LU_XbO.cjs → deterministicJson-CpFFgUL_.cjs} +13 -13
- package/dist/{doctor-wVNvRarN.cjs → doctor-BEU0_1Xv.cjs} +7 -7
- package/dist/{doctor-D16hySse.mjs → doctor-lsxmAK4o.mjs} +7 -7
- package/dist/{downloadTarget-C6tqaXGm.mjs → downloadTarget-BXqXhNF7.mjs} +6 -6
- package/dist/{downloadTarget-aNcCxVRL.cjs → downloadTarget-CikzJv1h.cjs} +6 -6
- package/dist/{ensureDaemonRunning-CIghxgDR.cjs → ensureDaemonRunning-BUuH-pbE.cjs} +5 -5
- package/dist/{ensureDaemonRunning-DZq8bvsp.mjs → ensureDaemonRunning-B_9WAlbU.mjs} +5 -5
- package/dist/exitAfterFlush-AbKNZM0N.mjs +23 -0
- package/dist/exitAfterFlush-DIT_sIxR.cjs +25 -0
- package/dist/{handleResumeCommand-BNnD7EuD.mjs → handleResumeCommand-BK9XKH_l.mjs} +5 -5
- package/dist/{handleResumeCommand-CMUTygsm.cjs → handleResumeCommand-Dj7oi2KO.cjs} +5 -5
- package/dist/{agentAttachments-Dbw8iMCZ.cjs → heldInput-BOtqFO2r.cjs} +27 -0
- package/dist/heldInput-C69lA2dH.mjs +44 -0
- package/dist/{index-BCQr-5Ei.mjs → index-BdOJOZ6J.mjs} +4 -4
- package/dist/{index-CKd20r1W.mjs → index-BjZnpGWX.mjs} +3 -3
- package/dist/{index-WKyN-bNy.mjs → index-Bq8NKSCF.mjs} +65 -1
- package/dist/{index-BOe6dKnL.cjs → index-CLUHaPU8.cjs} +76 -0
- package/dist/{index-CnzsOD19.cjs → index-CauRYQKr.cjs} +133 -54
- package/dist/{index-4TpmBb2Q.cjs → index-CmZusg8Q.cjs} +3 -3
- package/dist/{index-BuiG8hmg.mjs → index-Cxso1rg4.mjs} +133 -54
- package/dist/{index-De02DNu5.cjs → index-D3c7CLot.cjs} +4 -4
- package/dist/{index-B81qV_F_.cjs → index-Dg2NAF_-.cjs} +4 -4
- package/dist/{index-Df0bc_et.mjs → index-DuK9XYbZ.mjs} +4 -4
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-23ehAdTD.mjs → install-DTIveLOS.mjs} +3 -3
- package/dist/{install-DNbIEJUk.cjs → install-DXllkuy0.cjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +63 -1
- package/dist/lib.d.mts +63 -1
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-B4dHJCeS.cjs → lidState-C9_DoF9i.cjs} +1 -1
- package/dist/{lidState-q5Its2Hm.mjs → lidState-CD81ryTy.mjs} +1 -1
- package/dist/{localHappyAgentAuth-CG2nPD_H.cjs → localHappyAgentAuth-CCjUvOfi.cjs} +1 -1
- package/dist/{localHappyAgentAuth-C_G5u5lY.mjs → localHappyAgentAuth-Cg-m1lwm.mjs} +1 -1
- package/dist/{logger-BP1SW7Cs.cjs → logger-Ct2zvaq0.cjs} +2 -2
- package/dist/{logger-DOKH3Zbh.mjs → logger-GcbI0eg2.mjs} +2 -2
- package/dist/{machineMetadata-D-5qeIqd.mjs → machineMetadata-CXRmFNOV.mjs} +3 -3
- package/dist/{machineMetadata-BKX3ov9g.cjs → machineMetadata-DDCVWb_x.cjs} +3 -3
- package/dist/{main-ndpVIaSG.cjs → main-BHC-WIcM.cjs} +49 -48
- package/dist/{main-DODz8DQE.mjs → main-omGr_ONk.mjs} +49 -48
- package/dist/{mcp-BBwbSODp.mjs → mcp-D5hxmRAq.mjs} +15 -15
- package/dist/{mcp-Bc4U4exu.cjs → mcp-xUzii0m8.cjs} +15 -15
- package/dist/{mirrorProtocol-CiA3hO2y.cjs → mirrorProtocol-Dfl8Ahyf.cjs} +3 -3
- package/dist/{mirrorProtocol-D2vTWteS.mjs → mirrorProtocol-Lcx20Oby.mjs} +3 -3
- package/dist/{package-CYDdLA6R.cjs → package-9n7wd2dT.cjs} +7 -7
- package/dist/{package-DTcaIhjW.mjs → package-BsUHyqWe.mjs} +7 -7
- package/dist/{panels-C2xZ8rqU.cjs → panels-BfknEmt7.cjs} +5 -5
- package/dist/{panels-DCaLxlSL.mjs → panels-CpEKWWbI.mjs} +5 -5
- package/dist/{peerTools-B4315xjX.cjs → peerTools-CElYh-5u.cjs} +5 -5
- package/dist/{peerTools-BtrUnSwz.mjs → peerTools-CwCe6tmJ.mjs} +5 -5
- package/dist/{persistence-CrzC7yr_.cjs → persistence-A2NeERZJ.cjs} +6 -2
- package/dist/{persistence-0INrP3aB.mjs → persistence-Cpw4yJs8.mjs} +6 -3
- package/dist/{piRunnerArgs-BtzW_kfh.cjs → piRunnerArgs-BnFU0K73.cjs} +1 -1
- package/dist/{piRunnerArgs-DRuxMlX1.mjs → piRunnerArgs-Bqmu16He.mjs} +1 -1
- package/dist/{piRuntime-BMAFpIBV.mjs → piRuntime-Cgn1b0OX.mjs} +1 -1
- package/dist/{piRuntime-DEbPE_kW.cjs → piRuntime-DpS9TAIs.cjs} +1 -1
- package/dist/{piTerminal-DQXV8_we.mjs → piTerminal-BGdps8f3.mjs} +17 -17
- package/dist/{piTerminal-MtxDtBE2.cjs → piTerminal-rmve-VlI.cjs} +17 -17
- package/dist/{pushNotifications-CalIS9sq.cjs → pushNotifications-23YSd-0l.cjs} +28 -3
- package/dist/{pushNotifications-Cq1s8YVK.mjs → pushNotifications-XAM8__Pg.mjs} +28 -3
- package/dist/{query-BYiPBHPC.mjs → query-SZcYnJoW.mjs} +1 -1
- package/dist/{query-CE2XDhhw.cjs → query-u2GX-I0C.cjs} +1 -1
- package/dist/{rateLimitReporter-DR5LXuiQ.mjs → rateLimitReporter-COUkf446.mjs} +3 -3
- package/dist/{rateLimitReporter-BKmoOZQi.cjs → rateLimitReporter-CaTzBe3x.cjs} +3 -3
- package/dist/{rateLimitWindows-Cs56YJCH.cjs → rateLimitWindows-B2Kx6L0S.cjs} +1 -1
- package/dist/{rateLimitWindows-5vIuNjko.mjs → rateLimitWindows-j_qQk0KY.mjs} +1 -1
- package/dist/{registerCommonHandlers-DZPozYxc.cjs → registerCommonHandlers-D1MiSfcB.cjs} +2 -2
- package/dist/{registerCommonHandlers-DWkTysjD.mjs → registerCommonHandlers-DRRfinzK.mjs} +2 -2
- package/dist/{registerKillSessionHandler-CSCTRIbI.mjs → registerKillSessionHandler-Cpug_r5C.mjs} +16 -6
- package/dist/{registerKillSessionHandler-DhCjrs44.cjs → registerKillSessionHandler-hvCsEn7b.cjs} +16 -6
- package/dist/{remoteSessionClient-Dq8XTLQP.cjs → remoteSessionClient-6ymeMVa4.cjs} +5 -5
- package/dist/{remoteSessionClient-Vfj_5g2-.mjs → remoteSessionClient-BdnJ_n8C.mjs} +5 -5
- package/dist/{reportProgressTool-B7zmX7NJ.mjs → reportProgressTool-XgQBzxoD.mjs} +3 -3
- package/dist/{reportProgressTool-DznxPKES.cjs → reportProgressTool-tzQLCLIw.cjs} +3 -3
- package/dist/{run-DSfNcR62.mjs → run-Bt0AklUU.mjs} +396 -43
- package/dist/{run-Ca8BiNCp.cjs → run-DYL_wuj7.cjs} +396 -43
- package/dist/{runClaude-hoepv-0X.mjs → runClaude-C3rii_S6.mjs} +47 -27
- package/dist/{runClaude-ClQQcgoO.cjs → runClaude-CBEpYO4S.cjs} +49 -29
- package/dist/{runClaudeDeps-ck5_GYlP.cjs → runClaudeDeps-CYuozSC6.cjs} +187 -61
- package/dist/{runClaudeDeps-D_v8t2SK.mjs → runClaudeDeps-DlVfMG4F.mjs} +192 -66
- package/dist/{runGemini-Cj0XsMiM.cjs → runGemini-CEI3b90u.cjs} +33 -33
- package/dist/{runGemini-CTr2-cYG.mjs → runGemini-DkYhRk9S.mjs} +33 -33
- package/dist/{runOpenClaw-BoN1e3lP.cjs → runOpenClaw-BgjD6E4d.cjs} +18 -18
- package/dist/{runOpenClaw-CdDMntiV.mjs → runOpenClaw-DpprWCoz.mjs} +18 -18
- package/dist/{sandbox-DcaWB-Ou.mjs → sandbox-DJ7A7lsy.mjs} +4 -4
- package/dist/{sandbox-BY2h19gc.cjs → sandbox-XCDUbH72.cjs} +4 -4
- package/dist/{selfCheck-DFS_GUaQ.cjs → selfCheck-BYUDB1Uq.cjs} +37 -37
- package/dist/selfCheck-C-rNljKV.mjs +86 -0
- package/dist/{send-UBTHHNvZ.mjs → send-Ba63huxv.mjs} +8 -8
- package/dist/{send-BMsUYU6g.cjs → send-CASDBCyJ.cjs} +8 -8
- package/dist/{server-YrHMHNz1.cjs → server-cZoV9XRt.cjs} +6 -6
- package/dist/{server-Dt3mCtfQ.mjs → server-w3W0toNd.mjs} +4 -4
- package/dist/{sessionLock-DSqiP2lH.cjs → sessionLock-BmLA2S8K.cjs} +134 -3
- package/dist/{sessionLock-tEFvFXLD.mjs → sessionLock-G2PMqvsh.mjs} +121 -4
- package/dist/{sessionOps-CljctDs5.mjs → sessionOps-DPw5k8vV.mjs} +15 -5
- package/dist/{sessionOps-BzeOKIEF.cjs → sessionOps-DXlTmS7J.cjs} +15 -4
- package/dist/{sessionProvider-BnUFSJXM.mjs → sessionProvider-DUn91LhJ.mjs} +5 -5
- package/dist/{sessionProvider-ORgzmkXy.cjs → sessionProvider-Dg691XQ4.cjs} +5 -5
- package/dist/{sessionScanner-Cr6PJ3PT.cjs → sessionScanner-AHjnicxi.cjs} +3 -3
- package/dist/{sessionScanner-DZUlkdF6.mjs → sessionScanner-BCXpdZJN.mjs} +3 -3
- package/dist/{sessions-aIo_HjmY.cjs → sessions-BiBXOBx0.cjs} +36 -25
- package/dist/{sessions-15cag-su.mjs → sessions-Clk8MR5Y.mjs} +35 -26
- package/dist/{setupOfflineReconnection-tV0Q1dgR.cjs → setupOfflineReconnection-BKLfOd-i.cjs} +2 -2
- package/dist/{setupOfflineReconnection-B7I8R2Ex.mjs → setupOfflineReconnection-DI-QZGYz.mjs} +2 -2
- package/dist/{spawn-ByrQgruJ.mjs → spawn-4tsp1uhh.mjs} +15 -15
- package/dist/{spawn-VG-HjJiR.cjs → spawn-D5omsx1Q.cjs} +15 -15
- package/dist/{spawnAgents-Bh1RPShN.mjs → spawnAgents-CjoU6ZOS.mjs} +8 -2
- package/dist/{spawnAgents-C1-4m7aN.cjs → spawnAgents-CtkkIFHd.cjs} +8 -2
- package/dist/{spawnHappyCLI-CxiR2Qoy.cjs → spawnHappyCLI-CF_gLi92.cjs} +1 -1
- package/dist/{spawnHappyCLI-CEsXwz5V.mjs → spawnHappyCLI-CIA9Sc_5.mjs} +1 -1
- package/dist/{startFileWatcher-C-XCZ5t2.cjs → startFileWatcher-9Stpxe7p.cjs} +1 -1
- package/dist/{startFileWatcher-DkEeeAtL.mjs → startFileWatcher-CDO6fb2m.mjs} +1 -1
- package/dist/{defaultPermissionMode-e2bIIJG4.mjs → startupSessionCreate-BtR4iYEC.mjs} +25 -6
- package/dist/{defaultPermissionMode-5EvgRq38.cjs → startupSessionCreate-CcF7rGGB.cjs} +25 -7
- package/dist/{streamRelay-D9a4cBEa.cjs → streamRelay-BhI6jqF-.cjs} +1 -1
- package/dist/{streamRelay-CqBynIon.mjs → streamRelay-DMwOMTKf.mjs} +1 -1
- package/dist/{sync-CoChLEIg.cjs → sync-Ba8N6xba.cjs} +1 -1
- package/dist/{sync-BvDMkKAN.mjs → sync-C0PRuTMj.mjs} +1 -1
- package/dist/{systemPrompt-CgDaPigN.mjs → systemPrompt-D0q8eyjy.mjs} +2 -2
- package/dist/{systemPrompt-Dy_Rf-0Z.cjs → systemPrompt-DV5IReD4.cjs} +2 -2
- package/dist/{teams-BC4_e5hR.mjs → teams-BO3_arwM.mjs} +7 -7
- package/dist/{teams-DPvfLAk8.cjs → teams-z3Gp-KlV.cjs} +7 -7
- package/dist/{template-17HATY_Y.cjs → template-B_5l6pkc.cjs} +1 -1
- package/dist/{template-CEK8MEjo.mjs → template-DLR_0hfj.mjs} +1 -1
- package/dist/{time-XwEZxKGc.cjs → time-Cy0a-7YX.cjs} +1 -1
- package/dist/{time-CUK37wiV.mjs → time-D0jvDRhn.mjs} +1 -1
- package/dist/{titleGenerator-DWRVdqMU.mjs → titleGenerator-AGQsXskb.mjs} +1 -1
- package/dist/{titleGenerator-DVX0NZUn.cjs → titleGenerator-RGHWP2YL.cjs} +2 -2
- package/dist/{todo-BNMGXneA.mjs → todo-BZ954vsz.mjs} +6 -6
- package/dist/{todo-CKGrSrRE.cjs → todo-CzIDPLFy.cjs} +6 -6
- package/dist/{tools-CjMafO_D.cjs → tools-B1x1j6tz.cjs} +1 -1
- package/dist/{tools-CCIEAVbB.mjs → tools-Bei5i03L.mjs} +1 -1
- package/dist/{uninstall-CJvJ7gjr.mjs → uninstall-B4T_e3Mr.mjs} +3 -3
- package/dist/{uninstall-BdFbTXnL.cjs → uninstall-C3cnIvz1.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
|
@@ -1,108 +1,109 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var auth = require('./auth-
|
|
4
|
-
var index = require('./index-
|
|
5
|
-
var
|
|
6
|
-
var
|
|
3
|
+
var auth = require('./auth-DnxoVkkf.cjs');
|
|
4
|
+
var index = require('./index-CLUHaPU8.cjs');
|
|
5
|
+
var defaultPermissionMode = require('./defaultPermissionMode-oqTupStc.cjs');
|
|
6
|
+
var deterministicJson = require('./deterministicJson-CpFFgUL_.cjs');
|
|
7
|
+
var client = require('./client-C5-C0t2a.cjs');
|
|
7
8
|
var promises = require('node:fs/promises');
|
|
8
9
|
var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
|
|
9
10
|
var node_crypto = require('node:crypto');
|
|
10
11
|
var cuid2 = require('@paralleldrive/cuid2');
|
|
11
|
-
var api = require('./api-
|
|
12
|
-
var
|
|
13
|
-
var attachmentContent = require('./attachmentContent-
|
|
12
|
+
var api = require('./api-BBxZ7y2z.cjs');
|
|
13
|
+
var heldInput = require('./heldInput-BOtqFO2r.cjs');
|
|
14
|
+
var attachmentContent = require('./attachmentContent-BO2njyza.cjs');
|
|
14
15
|
var ink = require('ink');
|
|
15
|
-
var sessionLock = require('./sessionLock-
|
|
16
|
+
var sessionLock = require('./sessionLock-BmLA2S8K.cjs');
|
|
16
17
|
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-
|
|
18
|
+
var codexAppServerClient = require('./codexAppServerClient-DKXeikEe.cjs');
|
|
19
|
+
var rateLimitReporter = require('./rateLimitReporter-CaTzBe3x.cjs');
|
|
20
|
+
var logger = require('./logger-Ct2zvaq0.cjs');
|
|
21
|
+
var BasePermissionHandler = require('./BasePermissionHandler-C9Ag7yvs.cjs');
|
|
22
|
+
var codexTermination = require('./codexTermination-BszWfyk5.cjs');
|
|
22
23
|
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-
|
|
24
|
+
var persistence = require('./persistence-A2NeERZJ.cjs');
|
|
25
|
+
var machineMetadata = require('./machineMetadata-DDCVWb_x.cjs');
|
|
26
|
+
var configuration = require('./configuration-DfPBa-9d.cjs');
|
|
27
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-hvCsEn7b.cjs');
|
|
27
28
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
28
29
|
var path = require('node:path');
|
|
29
|
-
var createSessionMetadata = require('./createSessionMetadata-
|
|
30
|
+
var createSessionMetadata = require('./createSessionMetadata-Cf78KHtt.cjs');
|
|
30
31
|
var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
|
|
31
|
-
var controlClient = require('./controlClient-
|
|
32
|
-
var
|
|
32
|
+
var controlClient = require('./controlClient-C13_pSKG.cjs');
|
|
33
|
+
var startupSessionCreate = require('./startupSessionCreate-CcF7rGGB.cjs');
|
|
33
34
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
34
|
-
var setupOfflineReconnection = require('./setupOfflineReconnection-
|
|
35
|
-
var startupSessionCreate = require('./startupSessionCreate-CYc8mra-.cjs');
|
|
35
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-BKLfOd-i.cjs');
|
|
36
36
|
var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
|
|
37
37
|
var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
|
|
38
38
|
var constants = require('./constants-VJ0N6WuG.cjs');
|
|
39
39
|
var editPaths = require('./editPaths-Bqp4OFPw.cjs');
|
|
40
|
-
var ensureDaemonRunning = require('./ensureDaemonRunning-
|
|
40
|
+
var ensureDaemonRunning = require('./ensureDaemonRunning-BUuH-pbE.cjs');
|
|
41
41
|
require('tweetnacl');
|
|
42
42
|
require('axios');
|
|
43
|
-
require('./time-
|
|
44
|
-
require('./browser-
|
|
43
|
+
require('./time-Cy0a-7YX.cjs');
|
|
44
|
+
require('./browser-BTgZ9d4i.cjs');
|
|
45
45
|
require('open');
|
|
46
46
|
require('zod');
|
|
47
47
|
require('./prompt-Bof2aQkI.cjs');
|
|
48
|
-
require('./reportProgressTool-
|
|
49
|
-
require('./client-
|
|
48
|
+
require('./reportProgressTool-tzQLCLIw.cjs');
|
|
49
|
+
require('./client-BscskEBk.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-C-OdTbrU.cjs');
|
|
57
57
|
require('node:util');
|
|
58
|
-
require('./context-
|
|
59
|
-
require('./sessionOps-
|
|
58
|
+
require('./context-Co7hUaW-.cjs');
|
|
59
|
+
require('./sessionOps-DXlTmS7J.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-B1x1j6tz.cjs');
|
|
64
|
+
require('./peerTools-CElYh-5u.cjs');
|
|
65
65
|
require('./ids-B6ZC0HGt.cjs');
|
|
66
|
-
require('./remoteSessionClient-
|
|
66
|
+
require('./remoteSessionClient-6ymeMVa4.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-CikzJv1h.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-sly4qPPY.cjs');
|
|
76
|
+
require('./package-9n7wd2dT.cjs');
|
|
77
77
|
require('./webPanels-FCgFKvVe.cjs');
|
|
78
|
-
require('./pushNotifications-
|
|
78
|
+
require('./pushNotifications-23YSd-0l.cjs');
|
|
79
79
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
80
80
|
require('./previewPath-B0rBdhy1.cjs');
|
|
81
81
|
require('crypto');
|
|
82
|
-
require('./lidState-
|
|
82
|
+
require('./lidState-C9_DoF9i.cjs');
|
|
83
83
|
require('os');
|
|
84
84
|
require('child_process');
|
|
85
85
|
require('node:events');
|
|
86
|
-
require('./registerCommonHandlers-
|
|
86
|
+
require('./registerCommonHandlers-D1MiSfcB.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-Ba8N6xba.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-B2Kx6L0S.cjs');
|
|
98
99
|
require('./processTree-CMHWlVse.cjs');
|
|
99
100
|
require('./detectCLI-BuYR_Qxe.cjs');
|
|
100
101
|
require('fs');
|
|
101
|
-
require('./localHappyAgentAuth-
|
|
102
|
+
require('./localHappyAgentAuth-CCjUvOfi.cjs');
|
|
102
103
|
require('./fsMkdir-0K3yENml.cjs');
|
|
103
104
|
require('./types-CRS-srZK.cjs');
|
|
104
105
|
require('url');
|
|
105
|
-
require('./spawnHappyCLI-
|
|
106
|
+
require('./spawnHappyCLI-CF_gLi92.cjs');
|
|
106
107
|
require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
107
108
|
|
|
108
109
|
function getStartedSubagents(state) {
|
|
@@ -1096,6 +1097,13 @@ function unsupportedEffortReason(catalog, model, effort) {
|
|
|
1096
1097
|
if (selected.supportedReasoningEfforts.some((option) => option.reasoningEffort === effort)) return null;
|
|
1097
1098
|
return `Reasoning effort "${effort}" is not supported by ${model ?? "the default model"}. Choose a supported level.`;
|
|
1098
1099
|
}
|
|
1100
|
+
function settleTurnEffort(catalog, model, effort, opts) {
|
|
1101
|
+
const refusal = unsupportedEffortReason(catalog, model, effort);
|
|
1102
|
+
if (!refusal) return { refusal: null, effort, changed: false };
|
|
1103
|
+
const catalogDefault = catalog.find((entry) => model ? entry.model === model : entry.isDefault)?.defaultReasoningEffort ?? void 0;
|
|
1104
|
+
const settled = !unsupportedEffortReason(catalog, model, opts.fallback) ? opts.fallback : catalogDefault && !unsupportedEffortReason(catalog, model, catalogDefault) ? catalogDefault : void 0;
|
|
1105
|
+
return { refusal: opts.explicit ? refusal : null, effort: settled, changed: true };
|
|
1106
|
+
}
|
|
1099
1107
|
|
|
1100
1108
|
function resolveCodexTurnModel(mode, machineDefault) {
|
|
1101
1109
|
if (mode.model) return mode.model;
|
|
@@ -1499,11 +1507,13 @@ async function runCodex(opts) {
|
|
|
1499
1507
|
dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
|
|
1500
1508
|
...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
|
|
1501
1509
|
...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]
|
|
1510
|
+
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, index.RUN_INTENT_CAPABILITY]
|
|
1503
1511
|
});
|
|
1504
1512
|
metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
|
|
1505
1513
|
metadata.stickyModel = null;
|
|
1506
1514
|
metadata.currentThoughtLevelCode = DEFAULT_CODEX_EFFORT;
|
|
1515
|
+
metadata.modelIntent = null;
|
|
1516
|
+
metadata.effortIntent = null;
|
|
1507
1517
|
const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
|
|
1508
1518
|
if (importCodexThreadId) {
|
|
1509
1519
|
metadata.importedFromCodexThreadId = importCodexThreadId;
|
|
@@ -1557,6 +1567,7 @@ async function runCodex(opts) {
|
|
|
1557
1567
|
logger.logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
|
|
1558
1568
|
}
|
|
1559
1569
|
}
|
|
1570
|
+
const resumedEffort = reconnectSeeded && response ? index.restoredEffort(response.metadata, { useReportedLevel: true }) : void 0;
|
|
1560
1571
|
let session;
|
|
1561
1572
|
let permissionHandler;
|
|
1562
1573
|
let client$1;
|
|
@@ -1616,9 +1627,13 @@ async function runCodex(opts) {
|
|
|
1616
1627
|
const keys = entries.map((entry) => entry.sourceId).filter((key) => typeof key === "string");
|
|
1617
1628
|
if (keys.length > 0) session.sendQueueCancelReason(keys, entries[0].reason);
|
|
1618
1629
|
});
|
|
1630
|
+
const heldInput$1 = new heldInput.HeldInput((keys, reason) => session.sendQueueCancelReason(keys, reason));
|
|
1619
1631
|
let currentPermissionMode = initialPermissionMode;
|
|
1620
1632
|
let currentModel = DEFAULT_CODEX_MODEL;
|
|
1621
|
-
let currentEffort = DEFAULT_CODEX_EFFORT;
|
|
1633
|
+
let currentEffort = resumedEffort !== void 0 ? resumedEffort ?? void 0 : DEFAULT_CODEX_EFFORT;
|
|
1634
|
+
let pendingModelReset = false;
|
|
1635
|
+
let lastStartedEffort = currentEffort;
|
|
1636
|
+
const effortJudgeModel = (model, modelReset) => resolveCodexTurnModel({ model, modelReset }, machineDefaultModel) ?? client$1?.threadModel ?? machineDefaultModel;
|
|
1622
1637
|
let currentAppendSystemPrompt = void 0;
|
|
1623
1638
|
let reportedStickyModel = null;
|
|
1624
1639
|
let reportedCurrentModel;
|
|
@@ -1641,8 +1656,6 @@ async function runCodex(opts) {
|
|
|
1641
1656
|
});
|
|
1642
1657
|
};
|
|
1643
1658
|
const resetCurrentModeDefaults = () => {
|
|
1644
|
-
currentEffort = DEFAULT_CODEX_EFFORT;
|
|
1645
|
-
reportModeFacts();
|
|
1646
1659
|
currentAppendSystemPrompt = void 0;
|
|
1647
1660
|
logger.logger.debug("[Codex] Reset current mode defaults after abort");
|
|
1648
1661
|
};
|
|
@@ -1656,8 +1669,9 @@ async function runCodex(opts) {
|
|
|
1656
1669
|
};
|
|
1657
1670
|
publishPermissionMode(opts.permissionMode);
|
|
1658
1671
|
let discoveredModels = [];
|
|
1672
|
+
let codexAgentVersion = null;
|
|
1659
1673
|
let machineDefaultModel;
|
|
1660
|
-
|
|
1674
|
+
heldInput.registerAgentAttachmentDownloads(session);
|
|
1661
1675
|
const CODEX_IMAGE_MIME_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
|
|
1662
1676
|
const steerDeps = {
|
|
1663
1677
|
ownsTurn: () => turnActive && !abortInProgress && !shouldExit,
|
|
@@ -1700,9 +1714,13 @@ async function runCodex(opts) {
|
|
|
1700
1714
|
reportModeFacts();
|
|
1701
1715
|
logger.logger.debug("[Codex] Model override updated", logValueMetadata(message.meta.model));
|
|
1702
1716
|
} else {
|
|
1717
|
+
messageModelReset = pendingModelReset && !messageModel;
|
|
1703
1718
|
logger.logger.debug("[Codex] User message received without a model override");
|
|
1704
1719
|
}
|
|
1720
|
+
pendingModelReset = false;
|
|
1705
1721
|
let messageEffort = currentEffort;
|
|
1722
|
+
let effortExplicit = false;
|
|
1723
|
+
let effortRefused = false;
|
|
1706
1724
|
if (message.meta?.hasOwnProperty("effort")) {
|
|
1707
1725
|
const incoming = message.meta.effort;
|
|
1708
1726
|
if (incoming === null || incoming === void 0) {
|
|
@@ -1712,15 +1730,22 @@ async function runCodex(opts) {
|
|
|
1712
1730
|
logger.logger.debug(`[Codex] Effort reset to default`);
|
|
1713
1731
|
} else if (typeof incoming === "string") {
|
|
1714
1732
|
messageEffort = incoming;
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1733
|
+
effortExplicit = true;
|
|
1734
|
+
effortRefused = unsupportedEffortReason(discoveredModels, effortJudgeModel(messageModel, messageModelReset), messageEffort) !== null;
|
|
1735
|
+
if (effortRefused) {
|
|
1736
|
+
logger.logger.debug("[Codex] Effort override refused by the model catalog; sticky level kept", logValueMetadata(incoming));
|
|
1737
|
+
} else {
|
|
1738
|
+
currentEffort = messageEffort;
|
|
1739
|
+
reportModeFacts();
|
|
1740
|
+
logger.logger.debug("[Codex] Valid effort override applied");
|
|
1741
|
+
}
|
|
1718
1742
|
} else {
|
|
1719
1743
|
logger.logger.debug("[Codex] Ignoring invalid effort override", logValueMetadata(incoming));
|
|
1720
1744
|
}
|
|
1721
1745
|
} else {
|
|
1722
1746
|
logger.logger.debug("[Codex] User message received without an effort override");
|
|
1723
1747
|
}
|
|
1748
|
+
defaultPermissionMode.recordRunIntents(session, effortRefused ? defaultPermissionMode.withoutEffort(message.meta) : message.meta);
|
|
1724
1749
|
let messageAppendSystemPrompt = currentAppendSystemPrompt;
|
|
1725
1750
|
if (message.meta?.hasOwnProperty("appendSystemPrompt")) {
|
|
1726
1751
|
messageAppendSystemPrompt = message.meta.appendSystemPrompt || void 0;
|
|
@@ -1734,7 +1759,8 @@ async function runCodex(opts) {
|
|
|
1734
1759
|
model: messageModel,
|
|
1735
1760
|
...messageModelReset ? { modelReset: true } : {},
|
|
1736
1761
|
appendSystemPrompt: messageAppendSystemPrompt,
|
|
1737
|
-
effort: messageEffort
|
|
1762
|
+
effort: messageEffort,
|
|
1763
|
+
...effortExplicit ? { effortExplicit: true } : {}
|
|
1738
1764
|
};
|
|
1739
1765
|
if (message.meta?.delivery === "steer" && !isCodexControlText(message.content.text)) {
|
|
1740
1766
|
if (await steerIntoRunningTurn(steerDeps, message.content.text, attachments, message.localKey)) {
|
|
@@ -1755,6 +1781,7 @@ async function runCodex(opts) {
|
|
|
1755
1781
|
}).catch((error) => {
|
|
1756
1782
|
logger.logger.warn("[Codex] Failed to prepare user attachments", safeCodexErrorMetadata(error));
|
|
1757
1783
|
session.sendSessionEvent({ type: "message", message: "Could not prepare this message. Please send it again." });
|
|
1784
|
+
if (message.localKey) session.sendQueueCancelReason([message.localKey], "failed");
|
|
1758
1785
|
});
|
|
1759
1786
|
});
|
|
1760
1787
|
let thinking = false;
|
|
@@ -1797,7 +1824,8 @@ async function runCodex(opts) {
|
|
|
1797
1824
|
}
|
|
1798
1825
|
let abortController = new AbortController();
|
|
1799
1826
|
let shouldExit = false;
|
|
1800
|
-
|
|
1827
|
+
let terminating = false;
|
|
1828
|
+
const hibernationExit = new startupSessionCreate.HibernationExitLatch((a, b) => a === "archive" && b !== "archive");
|
|
1801
1829
|
let hibernationStamp = null;
|
|
1802
1830
|
let hibernationProbe = null;
|
|
1803
1831
|
async function handleAbort(source) {
|
|
@@ -1850,6 +1878,10 @@ async function runCodex(opts) {
|
|
|
1850
1878
|
logger.logger.debug("[Codex] Kill session requested - terminating process");
|
|
1851
1879
|
const exitCursor = intent === "offline" && session ? sessionLock.exitCursorStamp(session.messageCursor, Date.now()) : void 0;
|
|
1852
1880
|
if (exitCursor) session.freezeInbound();
|
|
1881
|
+
const exitReason = intent === "archive" ? "aborted" : "restarted";
|
|
1882
|
+
terminating = true;
|
|
1883
|
+
heldInput$1.drop(exitReason);
|
|
1884
|
+
messageQueue.discardAll(exitReason);
|
|
1853
1885
|
await handleAbort("kill");
|
|
1854
1886
|
logger.logger.debug("[Codex] Abort completed, proceeding with termination");
|
|
1855
1887
|
try {
|
|
@@ -1875,6 +1907,24 @@ async function runCodex(opts) {
|
|
|
1875
1907
|
}
|
|
1876
1908
|
});
|
|
1877
1909
|
session.rpcHandlerManager.registerHandler("abort", () => handleAbort("user"));
|
|
1910
|
+
defaultPermissionMode.registerRunIntentRpc(session.rpcHandlerManager, {
|
|
1911
|
+
getMetadata: () => session.getMetadata(),
|
|
1912
|
+
updateMetadata: (handler) => session.updateMetadata(handler)
|
|
1913
|
+
}, (request) => {
|
|
1914
|
+
if (Object.prototype.hasOwnProperty.call(request, "model")) {
|
|
1915
|
+
currentModel = request.model || void 0;
|
|
1916
|
+
pendingModelReset = !currentModel;
|
|
1917
|
+
}
|
|
1918
|
+
let effortRefused = false;
|
|
1919
|
+
if (Object.prototype.hasOwnProperty.call(request, "effort")) {
|
|
1920
|
+
const effort = request.effort || void 0;
|
|
1921
|
+
effortRefused = unsupportedEffortReason(discoveredModels, effortJudgeModel(currentModel, pendingModelReset), effort) !== null;
|
|
1922
|
+
if (!effortRefused) currentEffort = effort;
|
|
1923
|
+
}
|
|
1924
|
+
if (client$1) reportModeFacts();
|
|
1925
|
+
logger.logger.debug("[Codex] Run intent set", logValueMetadata(request.model ?? null));
|
|
1926
|
+
return { effortRefused };
|
|
1927
|
+
});
|
|
1878
1928
|
const disposeTermination = registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, () => handleKillSession("archive"), session, { processSignals: true, onSignal: () => handleKillSession("offline") });
|
|
1879
1929
|
const messageBuffer = new sessionExitLifecycle.MessageBuffer();
|
|
1880
1930
|
const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
|
|
@@ -2075,6 +2125,7 @@ async function runCodex(opts) {
|
|
|
2075
2125
|
logger.logger.debug("[codex]: client.connect begin");
|
|
2076
2126
|
await client$1.connect();
|
|
2077
2127
|
logger.logger.debug("[codex]: client.connect done");
|
|
2128
|
+
codexAgentVersion = client$1.serverVersion;
|
|
2078
2129
|
try {
|
|
2079
2130
|
discoveredModels = await client$1.listModels();
|
|
2080
2131
|
let configured = null;
|
|
@@ -2169,17 +2220,18 @@ async function runCodex(opts) {
|
|
|
2169
2220
|
pendingRequests: Object.keys(session.getAgentState()?.requests ?? {}).length,
|
|
2170
2221
|
backgroundTasks: codexActiveSubagents.size,
|
|
2171
2222
|
lastActivityAt: session.lastActivityAt,
|
|
2223
|
+
...codexAgentVersion ? { agentVersion: codexAgentVersion } : {},
|
|
2172
2224
|
...shouldExit && !hibernationExit.hibernating ? { exiting: true } : {}
|
|
2173
2225
|
};
|
|
2174
2226
|
};
|
|
2175
|
-
hibernationProbe = new
|
|
2227
|
+
hibernationProbe = new startupSessionCreate.HibernationProbe({
|
|
2176
2228
|
onKeepAwakeLatched: () => {
|
|
2177
2229
|
if (session.getMetadata()?.keepAwake === void 0) session.updateMetadata((m) => m.keepAwake === void 0 ? { ...m, keepAwake: true } : m);
|
|
2178
2230
|
},
|
|
2179
2231
|
checkMs: persistence.resolveCheckMs(),
|
|
2180
2232
|
snapshot: hibernationSnapshot,
|
|
2181
2233
|
ask: (report) => controlClient.checkDaemonHibernation({ sessionId: session.sessionId, pid: process.pid, report }),
|
|
2182
|
-
commit: (idleMs) =>
|
|
2234
|
+
commit: (idleMs) => startupSessionCreate.commitHibernation({
|
|
2183
2235
|
client: session,
|
|
2184
2236
|
claimExit: () => !shouldExit && hibernationExit.begin(),
|
|
2185
2237
|
exitRequested: () => hibernationExit.exitRequested,
|
|
@@ -2199,6 +2251,8 @@ async function runCodex(opts) {
|
|
|
2199
2251
|
});
|
|
2200
2252
|
hibernationProbe.start();
|
|
2201
2253
|
}
|
|
2254
|
+
const autoUpdated = sessionLock.takeAutoRestartedEvent(process.env, "Codex");
|
|
2255
|
+
if (autoUpdated) session.sendSessionEvent(autoUpdated);
|
|
2202
2256
|
idleRelease.arm();
|
|
2203
2257
|
while (!shouldExit) {
|
|
2204
2258
|
logActiveHandles("loop-top");
|
|
@@ -2216,6 +2270,7 @@ async function runCodex(opts) {
|
|
|
2216
2270
|
break;
|
|
2217
2271
|
}
|
|
2218
2272
|
message = batch;
|
|
2273
|
+
heldInput$1.hold(batch.sourceIds);
|
|
2219
2274
|
}
|
|
2220
2275
|
if (!message) {
|
|
2221
2276
|
break;
|
|
@@ -2228,6 +2283,7 @@ async function runCodex(opts) {
|
|
|
2228
2283
|
turnActive = true;
|
|
2229
2284
|
if (isCodexClearText(message.message)) {
|
|
2230
2285
|
logger.logger.debug("[Codex] Handling /clear command - resetting Codex thread state");
|
|
2286
|
+
heldInput$1.delivered();
|
|
2231
2287
|
client$1.clearThreadState();
|
|
2232
2288
|
currentTurnId = null;
|
|
2233
2289
|
codexStartedSubagents = /* @__PURE__ */ new Set();
|
|
@@ -2264,6 +2320,7 @@ async function runCodex(opts) {
|
|
|
2264
2320
|
try {
|
|
2265
2321
|
if (compactCommand !== null) {
|
|
2266
2322
|
await client$1.ensureConnected();
|
|
2323
|
+
heldInput$1.delivered();
|
|
2267
2324
|
const outcome = await runCodexCompact(compactCommand, {
|
|
2268
2325
|
client: client$1,
|
|
2269
2326
|
notify: (text) => {
|
|
@@ -2281,9 +2338,23 @@ async function runCodex(opts) {
|
|
|
2281
2338
|
sandboxManagedByHappy
|
|
2282
2339
|
);
|
|
2283
2340
|
const turnModel = resolveCodexTurnModel(message.mode, machineDefaultModel);
|
|
2284
|
-
const
|
|
2285
|
-
|
|
2286
|
-
|
|
2341
|
+
const turnEffort = settleTurnEffort(discoveredModels, turnModel ?? client$1.threadModel ?? machineDefaultModel, message.mode.effort, {
|
|
2342
|
+
explicit: message.mode.effortExplicit === true,
|
|
2343
|
+
fallback: lastStartedEffort
|
|
2344
|
+
});
|
|
2345
|
+
if (turnEffort.changed) {
|
|
2346
|
+
const refused = message.mode.effort;
|
|
2347
|
+
if (currentEffort === refused) {
|
|
2348
|
+
currentEffort = turnEffort.effort;
|
|
2349
|
+
reportModeFacts();
|
|
2350
|
+
}
|
|
2351
|
+
if (index.readEffortIntent(session.getMetadata()?.effortIntent) === refused) {
|
|
2352
|
+
defaultPermissionMode.recordRunIntents(session, { effort: turnEffort.effort ?? null, effortIntent: turnEffort.effort ?? index.EFFORT_INTENT_AUTO });
|
|
2353
|
+
}
|
|
2354
|
+
logger.logger.debug("[Codex] Refused effort settled", logValueMetadata(turnEffort.effort ?? null));
|
|
2355
|
+
}
|
|
2356
|
+
if (turnEffort.refusal) {
|
|
2357
|
+
throw new Error(turnEffort.refusal);
|
|
2287
2358
|
}
|
|
2288
2359
|
if (!client$1.hasActiveThread()) {
|
|
2289
2360
|
const startedThread = await client$1.startThread({
|
|
@@ -2312,12 +2383,20 @@ async function runCodex(opts) {
|
|
|
2312
2383
|
happyHomeDir: configuration.configuration.happyHomeDir,
|
|
2313
2384
|
sessionId: session.sessionId
|
|
2314
2385
|
}) : [];
|
|
2386
|
+
if (terminating) {
|
|
2387
|
+
logger.logger.debug("[Codex] Session is ending; not starting the turn");
|
|
2388
|
+
continue;
|
|
2389
|
+
}
|
|
2315
2390
|
const result = await client$1.sendTurnAndWait(attachmentContent.appendStagedAttachmentsToPrompt(turnPrompt, staged), {
|
|
2316
2391
|
images: staged.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => file.path),
|
|
2317
2392
|
model: turnModel,
|
|
2318
2393
|
approvalPolicy: executionPolicy.approvalPolicy,
|
|
2319
2394
|
sandbox: executionPolicy.sandbox,
|
|
2320
|
-
effort:
|
|
2395
|
+
effort: turnEffort.effort,
|
|
2396
|
+
onTurnStarted: () => {
|
|
2397
|
+
lastStartedEffort = turnEffort.effort;
|
|
2398
|
+
heldInput$1.delivered();
|
|
2399
|
+
}
|
|
2321
2400
|
});
|
|
2322
2401
|
reportModeFacts();
|
|
2323
2402
|
first = false;
|
|
@@ -2329,6 +2408,7 @@ async function runCodex(opts) {
|
|
|
2329
2408
|
}
|
|
2330
2409
|
} catch (error) {
|
|
2331
2410
|
logger.logger.warn("Error in codex session", safeCodexErrorMetadata(error));
|
|
2411
|
+
if (heldInput$1.drop("failed")) logger.logger.debug("[Codex] Message failed before its turn started; tombstoned");
|
|
2332
2412
|
const reason = describeThrownTurnError(error);
|
|
2333
2413
|
if (reason) {
|
|
2334
2414
|
messageBuffer.addMessage(`Task failed: ${reason}`, "status");
|
|
@@ -2360,6 +2440,8 @@ async function runCodex(opts) {
|
|
|
2360
2440
|
disposeTermination?.();
|
|
2361
2441
|
hibernationProbe?.stop();
|
|
2362
2442
|
session.closePromptQueueDrain();
|
|
2443
|
+
heldInput$1.drop("aborted");
|
|
2444
|
+
messageQueue.discardAll("aborted");
|
|
2363
2445
|
logger.logger.debug("[codex]: Final cleanup start");
|
|
2364
2446
|
logActiveHandles("cleanup-start");
|
|
2365
2447
|
if (reconnectionHandle) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { l as logger } from './logger-
|
|
2
|
+
import { l as logger } from './logger-GcbI0eg2.mjs';
|
|
3
3
|
import { O as OFFLINE_EXIT_STAMP_TIMEOUT_MS } from './sessionExitLifecycle-CzkLIgNZ.mjs';
|
|
4
4
|
|
|
5
5
|
class BaseReasoningProcessor {
|
|
@@ -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-Ct2zvaq0.cjs');
|
|
5
5
|
var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
|
|
6
6
|
|
|
7
7
|
class BaseReasoningProcessor {
|
|
@@ -100,6 +100,9 @@ async function forkCodexThread(client, opts) {
|
|
|
100
100
|
newCodexThreadId: forked.threadId
|
|
101
101
|
};
|
|
102
102
|
}
|
|
103
|
+
function firstItemId(turn) {
|
|
104
|
+
return turn.items?.[0]?.id;
|
|
105
|
+
}
|
|
103
106
|
async function forkCodexBeforeUserMessage(client, opts) {
|
|
104
107
|
const { thread: source } = await client.readThread({ threadId: opts.threadId, includeTurns: true });
|
|
105
108
|
rejectAttachedTarget(source, opts.cutBeforeItemId);
|
|
@@ -109,24 +112,15 @@ async function forkCodexBeforeUserMessage(client, opts) {
|
|
|
109
112
|
throw new Error("Cannot safely rewind a user message inside an existing turn");
|
|
110
113
|
}
|
|
111
114
|
if (sourceCut.index === 0) return { type: "success", startFresh: true };
|
|
112
|
-
const
|
|
115
|
+
const kept = (source.turns ?? []).slice(0, sourceCut.index);
|
|
116
|
+
const expected = kept.map(firstItemId);
|
|
117
|
+
const forked = await client.forkThread({ threadId: opts.threadId, cwd: opts.cwd, lastTurnId: kept[kept.length - 1].id });
|
|
113
118
|
if (forked.threadId === opts.threadId) throw new Error("Codex did not create an independent fork");
|
|
114
|
-
|
|
115
|
-
const
|
|
116
|
-
if (
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
if (items.findIndex((item) => item.id === opts.cutBeforeItemId) !== 0) {
|
|
120
|
-
throw new Error("Cannot safely rewind a user message inside an existing turn");
|
|
121
|
-
}
|
|
122
|
-
if (cut.index === 0) return { type: "success", startFresh: true };
|
|
123
|
-
const expectedTurnIds = turns.slice(0, cut.index).map((turn) => turn.id);
|
|
124
|
-
const { thread } = await client.rollbackThread({
|
|
125
|
-
threadId: forked.threadId,
|
|
126
|
-
numTurns: turns.length - cut.index
|
|
127
|
-
});
|
|
128
|
-
const remaining = thread.turns ?? [];
|
|
129
|
-
if (remaining.length !== cut.index || remaining.some((turn, index) => turn.id !== expectedTurnIds[index])) {
|
|
119
|
+
let { thread } = await client.readThread({ threadId: forked.threadId, includeTurns: true });
|
|
120
|
+
const extra = (thread.turns ?? []).length - expected.length;
|
|
121
|
+
if (extra > 0) ({ thread } = await client.rollbackThread({ threadId: forked.threadId, numTurns: extra }));
|
|
122
|
+
const remaining = (thread.turns ?? []).map(firstItemId);
|
|
123
|
+
if (remaining.length !== expected.length || remaining.some((id, index) => id !== expected[index])) {
|
|
130
124
|
throw new Error("Codex rollback did not preserve the expected history");
|
|
131
125
|
}
|
|
132
126
|
return { type: "success", newCodexThreadId: forked.threadId };
|
|
@@ -98,6 +98,9 @@ async function forkCodexThread(client, opts) {
|
|
|
98
98
|
newCodexThreadId: forked.threadId
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
|
+
function firstItemId(turn) {
|
|
102
|
+
return turn.items?.[0]?.id;
|
|
103
|
+
}
|
|
101
104
|
async function forkCodexBeforeUserMessage(client, opts) {
|
|
102
105
|
const { thread: source } = await client.readThread({ threadId: opts.threadId, includeTurns: true });
|
|
103
106
|
rejectAttachedTarget(source, opts.cutBeforeItemId);
|
|
@@ -107,24 +110,15 @@ async function forkCodexBeforeUserMessage(client, opts) {
|
|
|
107
110
|
throw new Error("Cannot safely rewind a user message inside an existing turn");
|
|
108
111
|
}
|
|
109
112
|
if (sourceCut.index === 0) return { type: "success", startFresh: true };
|
|
110
|
-
const
|
|
113
|
+
const kept = (source.turns ?? []).slice(0, sourceCut.index);
|
|
114
|
+
const expected = kept.map(firstItemId);
|
|
115
|
+
const forked = await client.forkThread({ threadId: opts.threadId, cwd: opts.cwd, lastTurnId: kept[kept.length - 1].id });
|
|
111
116
|
if (forked.threadId === opts.threadId) throw new Error("Codex did not create an independent fork");
|
|
112
|
-
|
|
113
|
-
const
|
|
114
|
-
if (
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
if (items.findIndex((item) => item.id === opts.cutBeforeItemId) !== 0) {
|
|
118
|
-
throw new Error("Cannot safely rewind a user message inside an existing turn");
|
|
119
|
-
}
|
|
120
|
-
if (cut.index === 0) return { type: "success", startFresh: true };
|
|
121
|
-
const expectedTurnIds = turns.slice(0, cut.index).map((turn) => turn.id);
|
|
122
|
-
const { thread } = await client.rollbackThread({
|
|
123
|
-
threadId: forked.threadId,
|
|
124
|
-
numTurns: turns.length - cut.index
|
|
125
|
-
});
|
|
126
|
-
const remaining = thread.turns ?? [];
|
|
127
|
-
if (remaining.length !== cut.index || remaining.some((turn, index) => turn.id !== expectedTurnIds[index])) {
|
|
117
|
+
let { thread } = await client.readThread({ threadId: forked.threadId, includeTurns: true });
|
|
118
|
+
const extra = (thread.turns ?? []).length - expected.length;
|
|
119
|
+
if (extra > 0) ({ thread } = await client.rollbackThread({ threadId: forked.threadId, numTurns: extra }));
|
|
120
|
+
const remaining = (thread.turns ?? []).map(firstItemId);
|
|
121
|
+
if (remaining.length !== expected.length || remaining.some((id, index) => id !== expected[index])) {
|
|
128
122
|
throw new Error("Codex rollback did not preserve the expected history");
|
|
129
123
|
}
|
|
130
124
|
return { type: "success", newCodexThreadId: forked.threadId };
|
|
@@ -4,15 +4,15 @@ var require$$0 = require('fs');
|
|
|
4
4
|
var require$$1 = require('path');
|
|
5
5
|
var os = require('os');
|
|
6
6
|
var child_process = require('child_process');
|
|
7
|
-
var logger = require('./logger-
|
|
7
|
+
var logger = require('./logger-Ct2zvaq0.cjs');
|
|
8
8
|
var constants = require('./constants-VJ0N6WuG.cjs');
|
|
9
9
|
require('chalk');
|
|
10
10
|
require('node:util');
|
|
11
|
-
require('./configuration-
|
|
11
|
+
require('./configuration-DfPBa-9d.cjs');
|
|
12
12
|
require('node:fs');
|
|
13
13
|
require('node:os');
|
|
14
14
|
require('node:path');
|
|
15
|
-
require('./package-
|
|
15
|
+
require('./package-9n7wd2dT.cjs');
|
|
16
16
|
require('node:fs/promises');
|
|
17
17
|
require('./trimIdent-4gvk9Wk6.cjs');
|
|
18
18
|
|
|
@@ -2,15 +2,15 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
|
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { homedir } from 'os';
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
|
-
import { l as logger } from './logger-
|
|
5
|
+
import { l as logger } from './logger-GcbI0eg2.mjs';
|
|
6
6
|
import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './constants-BC4St0xd.mjs';
|
|
7
7
|
import 'chalk';
|
|
8
8
|
import 'node:util';
|
|
9
|
-
import './configuration-
|
|
9
|
+
import './configuration-ECqXu34R.mjs';
|
|
10
10
|
import 'node:fs';
|
|
11
11
|
import 'node:os';
|
|
12
12
|
import 'node:path';
|
|
13
|
-
import './package-
|
|
13
|
+
import './package-BsUHyqWe.mjs';
|
|
14
14
|
import 'node:fs/promises';
|
|
15
15
|
import './trimIdent-BAjmv_TG.mjs';
|
|
16
16
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var node_fs = require('node:fs');
|
|
4
4
|
var os = require('node:os');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var _package = require('./package-
|
|
6
|
+
var _package = require('./package-9n7wd2dT.cjs');
|
|
7
7
|
var promises = require('node:fs/promises');
|
|
8
8
|
|
|
9
9
|
const PRIVATE_DIRECTORY_MODE = 448;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mkdirSync, chmodSync, readdirSync, statSync, appendFileSync, writeFileSync, existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { p as packageJson } from './package-
|
|
4
|
+
import { p as packageJson } from './package-BsUHyqWe.mjs';
|
|
5
5
|
import { mkdir, chmod, writeFile } from 'node:fs/promises';
|
|
6
6
|
|
|
7
7
|
const PRIVATE_DIRECTORY_MODE = 448;
|