very-happy-cli 0.2.187 → 0.2.189
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-B2-ReWTo.cjs → AcpBackend-DRPJ2g9G.cjs} +3 -3
- package/dist/{AcpBackend-C4Emg-H3.mjs → AcpBackend-fj16v_cf.mjs} +3 -3
- package/dist/{AcpSessionManager-Nard_zFS.mjs → AcpSessionManager-BZPmUDL5.mjs} +4 -4
- package/dist/{AcpSessionManager-DR4-oZCz.cjs → AcpSessionManager-DM-KKg6v.cjs} +4 -4
- package/dist/{BasePermissionHandler-Bk9DmVZH.mjs → BasePermissionHandler-CVtH-snr.mjs} +1 -1
- package/dist/{BasePermissionHandler-CZ19WzsP.cjs → BasePermissionHandler-DjM16uJz.cjs} +1 -1
- package/dist/{acpSessionResume-Hto_b8MK.cjs → acpSessionResume-2BTMsB7_.cjs} +1 -1
- package/dist/{acpSessionResume-DPSfMe7r.mjs → acpSessionResume-Dxl1LRAT.mjs} +1 -1
- package/dist/{agentHome-4-odnrAk.mjs → agentHome-CHctmMzZ.mjs} +4 -4
- package/dist/{agentHome-Mveyfa24.cjs → agentHome-W17n1gnH.cjs} +4 -4
- package/dist/{api-cVvbFZVK.mjs → api-B0yN68XH.mjs} +10 -10
- package/dist/{api-DVEzYcoy.cjs → api-BDuuyys8.cjs} +10 -10
- package/dist/{apiMachine-Bd1C_JN6.cjs → apiMachine-iddD-F19.cjs} +14 -14
- package/dist/{apiMachine-M7qY1izH.mjs → apiMachine-mc9CsKuS.mjs} +14 -14
- package/dist/{attachmentContent-D8hViGiA.cjs → attachmentContent-Cc5b7TPr.cjs} +2 -2
- package/dist/{attachmentContent-NNF-Eo4O.mjs → attachmentContent-CcIdMfAx.mjs} +2 -2
- package/dist/{auth-BHw8be0X.cjs → auth-B7tVmyfX.cjs} +8 -8
- package/dist/{auth-BCHL8Fx5.mjs → auth-CyrVvWHF.mjs} +5 -5
- package/dist/{auth-CKNEKwEV.mjs → auth-DNAgkUkB.mjs} +8 -8
- package/dist/{auth-b_1h0677.cjs → auth-DQKSpaEf.cjs} +5 -5
- package/dist/{auto-D716QYa3.mjs → auto-BklCipw1.mjs} +18 -17
- package/dist/{auto-Da4rCLal.cjs → auto-CetlumDo.cjs} +18 -17
- package/dist/{bootstrap-j2RuoHVy.cjs → bootstrap-CDY-Vz8q.cjs} +2 -2
- package/dist/{bootstrap-CndcegDb.mjs → bootstrap-DfXwkUQb.mjs} +2 -2
- package/dist/{browser-DIYTnD_T.cjs → browser-D1yzC0Tu.cjs} +1 -1
- package/dist/{browser-CLsM513o.mjs → browser-vb0k1zfI.mjs} +1 -1
- package/dist/{claudeLocal-C_uUbEO_.cjs → claudeLocal-2dJIiTIq.cjs} +5 -5
- package/dist/{claudeLocal-3HbTx7K-.mjs → claudeLocal-Bid_rC_v.mjs} +5 -5
- package/dist/{claudeLocalLauncher-DXh2chq3.mjs → claudeLocalLauncher-5pzpETxd.mjs} +10 -10
- package/dist/{claudeLocalLauncher-BxWouVYk.cjs → claudeLocalLauncher-Jm5oQX5Z.cjs} +10 -10
- package/dist/{claudeSessionFork-CsU96yXX.cjs → claudeSessionFork-DsbcuDEJ.cjs} +1 -1
- package/dist/{claudeSessionFork-B4olbwfj.mjs → claudeSessionFork-DzecSBO4.mjs} +1 -1
- package/dist/{client-C8w9aQYe.mjs → client-B161HwAk.mjs} +2 -2
- package/dist/{client-CCy72Phz.cjs → client-BNmFaRXZ.cjs} +4 -4
- package/dist/{client-D8p1YjVt.mjs → client-C9Ecbtko.mjs} +4 -4
- package/dist/{client-Zqg7DXHl.mjs → client-CvjjadIE.mjs} +2 -2
- package/dist/{client-CWSfPlGD.cjs → client-D0aYWt53.cjs} +2 -2
- package/dist/{client-q1aNOKgy.cjs → client-DIfxYk7B.cjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +17 -16
- package/dist/codex/happyMcpStdioBridge.mjs +17 -16
- package/dist/{codexAppServerClient-Csc-XsRV.mjs → codexAppServerClient-BlVmpjR-.mjs} +63 -5
- package/dist/{codexAppServerClient-g8npaIU9.cjs → codexAppServerClient-CO9f4Jr8.cjs} +63 -5
- package/dist/{codexCommand-BV8pTAtv.cjs → codexCommand-BfoRP6E9.cjs} +189 -68
- package/dist/{codexCommand-BS-foS_R.mjs → codexCommand-CAMR4g5o.mjs} +188 -67
- package/dist/{codexTermination-lOO15mt2.mjs → codexTermination-BvGlN02_.mjs} +1 -1
- package/dist/{codexTermination-B5WgZAWO.cjs → codexTermination-IrLZQzKC.cjs} +1 -1
- package/dist/{config-BOnZRJIG.cjs → config-BGFqQGvh.cjs} +3 -3
- package/dist/{config-Ba5ufl-D.mjs → config-CtMgGPvf.mjs} +3 -3
- package/dist/{configuration-8EAa2X9P.mjs → configuration-1FabKklB.mjs} +1 -1
- package/dist/{configuration-CAfdO4IC.cjs → configuration-C0ctLGW2.cjs} +1 -1
- package/dist/{connect-BHWHNe54.mjs → connect-0lSugpjf.mjs} +13 -13
- package/dist/{connect-2hWuvxRM.cjs → connect-DSw-2f52.cjs} +13 -13
- package/dist/{context-B-jybQhf.mjs → context-BgxbXWKS.mjs} +1 -1
- package/dist/{context-BtCz06PX.cjs → context-D-hEk5pC.cjs} +1 -1
- package/dist/{controlClient-O-vf2MkJ.mjs → controlClient-DwNnNAUx.mjs} +4 -4
- package/dist/{controlClient-mH9AxBwT.cjs → controlClient-F7hAEEy2.cjs} +3 -3
- package/dist/{createSessionMetadata-HlzlfP0U.mjs → createSessionMetadata-CG6Klinp.mjs} +2 -2
- package/dist/{createSessionMetadata-Bcn7b8QB.cjs → createSessionMetadata-DezS33OM.cjs} +2 -2
- package/dist/{defaultPermissionMode-BN3PdltF.cjs → defaultPermissionMode-5EvgRq38.cjs} +2 -2
- package/dist/{defaultPermissionMode-BPDeX4S8.mjs → defaultPermissionMode-e2bIIJG4.mjs} +2 -2
- package/dist/{deterministicJson-CruOxFA6.mjs → deterministicJson-BMwgK21e.mjs} +13 -13
- package/dist/{deterministicJson-D9pZQhU9.cjs → deterministicJson-D0LU_XbO.cjs} +13 -13
- package/dist/{doctor-BNhLBBTK.mjs → doctor-D16hySse.mjs} +7 -7
- package/dist/{doctor-lHD1YZH6.cjs → doctor-wVNvRarN.cjs} +7 -7
- package/dist/{downloadTarget-ByTxs_N5.mjs → downloadTarget-C6tqaXGm.mjs} +6 -6
- package/dist/{downloadTarget-BhkQxTa8.cjs → downloadTarget-aNcCxVRL.cjs} +6 -6
- package/dist/{ensureDaemonRunning-BiCK6RiS.cjs → ensureDaemonRunning-CIghxgDR.cjs} +5 -5
- package/dist/{ensureDaemonRunning-Cv0AMaHK.mjs → ensureDaemonRunning-DZq8bvsp.mjs} +5 -5
- package/dist/{handleResumeCommand-Cy_KW0LN.mjs → handleResumeCommand-BNnD7EuD.mjs} +5 -5
- package/dist/{handleResumeCommand-WB4VDeKk.cjs → handleResumeCommand-CMUTygsm.cjs} +5 -5
- package/dist/{index-BpWESchl.cjs → index-4TpmBb2Q.cjs} +3 -3
- package/dist/{index-Vtcax4oD.cjs → index-B81qV_F_.cjs} +4 -4
- package/dist/{index-CVMbboXv.mjs → index-BCQr-5Ei.mjs} +4 -4
- package/dist/{index-BumVulwx.cjs → index-BOe6dKnL.cjs} +215 -18
- package/dist/{index-CdOz1uDl.mjs → index-BuiG8hmg.mjs} +94 -45
- package/dist/{index-BpSpw6jG.mjs → index-CKd20r1W.mjs} +3 -3
- package/dist/{index-B44ft-m4.cjs → index-CnzsOD19.cjs} +93 -44
- package/dist/{index-Bcp-PEGc.cjs → index-De02DNu5.cjs} +4 -4
- package/dist/{index-lWXWV0H2.mjs → index-Df0bc_et.mjs} +4 -4
- package/dist/{index-B9f1vKcC.mjs → index-WKyN-bNy.mjs} +212 -17
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-mK93DJ6L.mjs → install-23ehAdTD.mjs} +3 -3
- package/dist/{install-DdRVv9IS.cjs → install-DNbIEJUk.cjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +14 -0
- package/dist/lib.d.mts +14 -0
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-XyjQaZtU.cjs → lidState-B4dHJCeS.cjs} +1 -1
- package/dist/{lidState-LtdUCXi-.mjs → lidState-q5Its2Hm.mjs} +1 -1
- package/dist/{localHappyAgentAuth-C9Aj_wGD.cjs → localHappyAgentAuth-CG2nPD_H.cjs} +1 -1
- package/dist/{localHappyAgentAuth-DqFE0Adr.mjs → localHappyAgentAuth-C_G5u5lY.mjs} +1 -1
- package/dist/{logger-BILSzq2s.cjs → logger-BP1SW7Cs.cjs} +2 -2
- package/dist/{logger-SAU4uSs4.mjs → logger-DOKH3Zbh.mjs} +2 -2
- package/dist/{machineMetadata-C5TgUTpD.cjs → machineMetadata-BKX3ov9g.cjs} +3 -3
- package/dist/{machineMetadata-ZVnihOuL.mjs → machineMetadata-D-5qeIqd.mjs} +3 -3
- package/dist/{main-BjOHtX8u.mjs → main-DODz8DQE.mjs} +46 -46
- package/dist/{main-CVfx_-l7.cjs → main-ndpVIaSG.cjs} +46 -46
- package/dist/{mcp-CWVr7KbQ.mjs → mcp-BBwbSODp.mjs} +16 -15
- package/dist/{mcp-By9XK193.cjs → mcp-Bc4U4exu.cjs} +16 -15
- package/dist/{mirrorProtocol-C0wyaesn.cjs → mirrorProtocol-CiA3hO2y.cjs} +3 -3
- package/dist/{mirrorProtocol-BI6XbokT.mjs → mirrorProtocol-D2vTWteS.mjs} +3 -3
- package/dist/{package-Bbfq2KR7.cjs → package-CYDdLA6R.cjs} +7 -7
- package/dist/{package-BMBwnCn3.mjs → package-DTcaIhjW.mjs} +7 -7
- package/dist/{panels-rQmysHlY.cjs → panels-C2xZ8rqU.cjs} +5 -5
- package/dist/{panels-CbIUwV6q.mjs → panels-DCaLxlSL.mjs} +5 -5
- package/dist/{peerTools-CZfiq_Dx.cjs → peerTools-B4315xjX.cjs} +5 -5
- package/dist/{peerTools-CyruQrOo.mjs → peerTools-BtrUnSwz.mjs} +5 -5
- package/dist/{persistence-C7T3HYjq.mjs → persistence-0INrP3aB.mjs} +2 -2
- package/dist/{persistence-DPeSC0SK.cjs → persistence-CrzC7yr_.cjs} +2 -2
- package/dist/{piRunnerArgs-DAq8vIpP.cjs → piRunnerArgs-BtzW_kfh.cjs} +1 -1
- package/dist/{piRunnerArgs-CsWompo8.mjs → piRunnerArgs-DRuxMlX1.mjs} +1 -1
- package/dist/{piRuntime-Dxd8Gfun.mjs → piRuntime-BMAFpIBV.mjs} +1 -1
- package/dist/{piRuntime-CFqlQFoz.cjs → piRuntime-DEbPE_kW.cjs} +1 -1
- package/dist/{piTerminal-BssuKDtJ.mjs → piTerminal-DQXV8_we.mjs} +18 -17
- package/dist/{piTerminal-DHG3Kzve.cjs → piTerminal-MtxDtBE2.cjs} +18 -17
- package/dist/{pushNotifications-CsSyhnHu.cjs → pushNotifications-CalIS9sq.cjs} +3 -3
- package/dist/{pushNotifications-Bi72c41d.mjs → pushNotifications-Cq1s8YVK.mjs} +3 -3
- package/dist/{query-BQOwsKS1.mjs → query-BYiPBHPC.mjs} +1 -1
- package/dist/{query-Cuef299f.cjs → query-CE2XDhhw.cjs} +1 -1
- package/dist/{specialCommands-35KxDNE8.cjs → rateLimitReporter-BKmoOZQi.cjs} +3 -55
- package/dist/{specialCommands-CTtmGCCf.mjs → rateLimitReporter-DR5LXuiQ.mjs} +4 -55
- package/dist/{rateLimitWindows-B6IAWYN5.mjs → rateLimitWindows-5vIuNjko.mjs} +1 -1
- package/dist/{rateLimitWindows-bfwC81Z-.cjs → rateLimitWindows-Cs56YJCH.cjs} +1 -1
- package/dist/{registerCommonHandlers-qzb6TQqo.mjs → registerCommonHandlers-DWkTysjD.mjs} +2 -2
- package/dist/{registerCommonHandlers-CQC04iF3.cjs → registerCommonHandlers-DZPozYxc.cjs} +2 -2
- package/dist/{registerKillSessionHandler-DMPrrNKX.mjs → registerKillSessionHandler-CSCTRIbI.mjs} +34 -6
- package/dist/{registerKillSessionHandler-BraKB5Ks.cjs → registerKillSessionHandler-DhCjrs44.cjs} +34 -6
- package/dist/{remoteSessionClient-DffolBcQ.cjs → remoteSessionClient-Dq8XTLQP.cjs} +5 -5
- package/dist/{remoteSessionClient-D3XhN_sd.mjs → remoteSessionClient-Vfj_5g2-.mjs} +5 -5
- package/dist/{reportProgressTool-irHR-XEW.mjs → reportProgressTool-B7zmX7NJ.mjs} +3 -3
- package/dist/{reportProgressTool-BieTXE_R.cjs → reportProgressTool-DznxPKES.cjs} +3 -3
- package/dist/{run-Ck_WA6Nj.cjs → run-Ca8BiNCp.cjs} +36 -35
- package/dist/{run-DCUaxe2S.mjs → run-DSfNcR62.mjs} +36 -35
- package/dist/{runClaude-BUGku2Qp.cjs → runClaude-ClQQcgoO.cjs} +22 -22
- package/dist/{runClaude-BryAvfNV.mjs → runClaude-hoepv-0X.mjs} +22 -22
- package/dist/{runClaudeDeps-BZkWM9_u.mjs → runClaudeDeps-D_v8t2SK.mjs} +88 -55
- package/dist/{runClaudeDeps-Dbk1VrOW.cjs → runClaudeDeps-ck5_GYlP.cjs} +85 -52
- package/dist/{runGemini-DT379gpi.mjs → runGemini-CTr2-cYG.mjs} +38 -33
- package/dist/{runGemini-B6AZ2bv0.cjs → runGemini-Cj0XsMiM.cjs} +38 -33
- package/dist/{runOpenClaw-eBUYlIVJ.cjs → runOpenClaw-BoN1e3lP.cjs} +23 -18
- package/dist/{runOpenClaw-Bpp9mkyO.mjs → runOpenClaw-CdDMntiV.mjs} +23 -18
- package/dist/{sandbox-Bv4H1P6u.cjs → sandbox-BY2h19gc.cjs} +4 -4
- package/dist/{sandbox-Z8TM9eUg.mjs → sandbox-DcaWB-Ou.mjs} +4 -4
- package/dist/selfCheck-BQ_H2Sns.mjs +86 -0
- package/dist/{selfCheck--1k2Ptf6.cjs → selfCheck-DFS_GUaQ.cjs} +37 -37
- package/dist/{send-BG4KYe6f.cjs → send-BMsUYU6g.cjs} +9 -8
- package/dist/{send-CKTovWuQ.mjs → send-UBTHHNvZ.mjs} +9 -8
- package/dist/{server-DLpXtoiZ.mjs → server-Dt3mCtfQ.mjs} +4 -4
- package/dist/{server-BTNwH-sA.cjs → server-YrHMHNz1.cjs} +6 -6
- package/dist/{sessionLock-Cf6RlgfF.cjs → sessionLock-DSqiP2lH.cjs} +3 -3
- package/dist/{sessionLock-DhzB5ZI9.mjs → sessionLock-tEFvFXLD.mjs} +3 -3
- package/dist/{sessionOps-R52JWMnX.cjs → sessionOps-BzeOKIEF.cjs} +27 -4
- package/dist/{sessionOps-CiFjBCMa.mjs → sessionOps-CljctDs5.mjs} +27 -4
- package/dist/{sessionProvider-f2tUhwBc.mjs → sessionProvider-BnUFSJXM.mjs} +5 -5
- package/dist/{sessionProvider-LATn-lZL.cjs → sessionProvider-ORgzmkXy.cjs} +5 -5
- package/dist/{sessionScanner-DRzZtGtu.cjs → sessionScanner-Cr6PJ3PT.cjs} +3 -3
- package/dist/{sessionScanner-lS1puA5H.mjs → sessionScanner-DZUlkdF6.mjs} +3 -3
- package/dist/{sessions-D01nnjOE.mjs → sessions-15cag-su.mjs} +11 -10
- package/dist/{sessions-DGd8Fin6.cjs → sessions-aIo_HjmY.cjs} +11 -10
- package/dist/{setupOfflineReconnection-UApZjcU5.mjs → setupOfflineReconnection-B7I8R2Ex.mjs} +2 -2
- package/dist/{setupOfflineReconnection-Ds7ywGwR.cjs → setupOfflineReconnection-tV0Q1dgR.cjs} +2 -2
- package/dist/{spawn-ct8aSMA8.mjs → spawn-ByrQgruJ.mjs} +70 -28
- package/dist/{spawn-CT3g4p8A.cjs → spawn-VG-HjJiR.cjs} +70 -27
- package/dist/{spawnAgents-f2q31uUV.mjs → spawnAgents-Bh1RPShN.mjs} +24 -11
- package/dist/{spawnAgents-DsJSyLDl.cjs → spawnAgents-C1-4m7aN.cjs} +24 -10
- package/dist/{spawnHappyCLI-Dp05fHcp.mjs → spawnHappyCLI-CEsXwz5V.mjs} +1 -1
- package/dist/{spawnHappyCLI-DedrWByd.cjs → spawnHappyCLI-CxiR2Qoy.cjs} +1 -1
- package/dist/specialCommands-J3JFOq0J.cjs +60 -0
- package/dist/specialCommands-MXUN0wfI.mjs +54 -0
- package/dist/{startFileWatcher-72w11DP_.cjs → startFileWatcher-C-XCZ5t2.cjs} +1 -1
- package/dist/{startFileWatcher-BLdxJdgu.mjs → startFileWatcher-DkEeeAtL.mjs} +1 -1
- package/dist/{startupSessionCreate-Cy4J4-Ep.cjs → startupSessionCreate-CYc8mra-.cjs} +1 -1
- package/dist/{startupSessionCreate-CJFR_Zom.mjs → startupSessionCreate-npXe2TdN.mjs} +1 -1
- package/dist/{streamRelay-B3FloUTT.mjs → streamRelay-CqBynIon.mjs} +1 -1
- package/dist/{streamRelay-Cn_uGG6m.cjs → streamRelay-D9a4cBEa.cjs} +1 -1
- package/dist/{sync-BWX1OVQi.mjs → sync-BvDMkKAN.mjs} +1 -1
- package/dist/{sync-lxDpbIh3.cjs → sync-CoChLEIg.cjs} +1 -1
- package/dist/{systemPrompt-BIilbjt_.mjs → systemPrompt-CgDaPigN.mjs} +2 -2
- package/dist/{systemPrompt-0DqWPGY6.cjs → systemPrompt-Dy_Rf-0Z.cjs} +2 -2
- package/dist/{teams-CvpB8Rdm.mjs → teams-BC4_e5hR.mjs} +7 -7
- package/dist/{teams-CImmJLlM.cjs → teams-DPvfLAk8.cjs} +7 -7
- package/dist/{template-DPsqlHJQ.cjs → template-17HATY_Y.cjs} +1 -1
- package/dist/{template-DuKZw-Sz.mjs → template-CEK8MEjo.mjs} +1 -1
- package/dist/{time-DjS5me2q.mjs → time-CUK37wiV.mjs} +1 -1
- package/dist/{time-BbQJi3Eh.cjs → time-XwEZxKGc.cjs} +1 -1
- package/dist/{titleGenerator-CfJme6ep.cjs → titleGenerator-DVX0NZUn.cjs} +2 -2
- package/dist/{titleGenerator-CGdBp5lQ.mjs → titleGenerator-DWRVdqMU.mjs} +1 -1
- package/dist/{todo-BxfUKwTM.mjs → todo-BNMGXneA.mjs} +6 -6
- package/dist/{todo-rN20m9lT.cjs → todo-CKGrSrRE.cjs} +6 -6
- package/dist/{tools-B_W7xJNh.mjs → tools-CCIEAVbB.mjs} +1 -1
- package/dist/{tools-kGtSjG8h.cjs → tools-CjMafO_D.cjs} +1 -1
- package/dist/{uninstall-CBQsxEmD.cjs → uninstall-BdFbTXnL.cjs} +3 -3
- package/dist/{uninstall-DUjvgLlg.mjs → uninstall-CJvJ7gjr.mjs} +3 -3
- package/package.json +7 -7
- package/dist/selfCheck-DIGghfQz.mjs +0 -86
|
@@ -1,107 +1,108 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var auth = require('./auth-
|
|
4
|
-
var index = require('./index-
|
|
5
|
-
var deterministicJson = require('./deterministicJson-
|
|
6
|
-
var client = require('./client-
|
|
3
|
+
var auth = require('./auth-DQKSpaEf.cjs');
|
|
4
|
+
var index = require('./index-BOe6dKnL.cjs');
|
|
5
|
+
var deterministicJson = require('./deterministicJson-D0LU_XbO.cjs');
|
|
6
|
+
var client = require('./client-DIfxYk7B.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-
|
|
11
|
+
var api = require('./api-BDuuyys8.cjs');
|
|
12
12
|
var agentAttachments = require('./agentAttachments-Dbw8iMCZ.cjs');
|
|
13
|
-
var attachmentContent = require('./attachmentContent-
|
|
13
|
+
var attachmentContent = require('./attachmentContent-Cc5b7TPr.cjs');
|
|
14
14
|
var ink = require('ink');
|
|
15
|
-
var sessionLock = require('./sessionLock-
|
|
15
|
+
var sessionLock = require('./sessionLock-DSqiP2lH.cjs');
|
|
16
16
|
var React = require('react');
|
|
17
|
-
var codexAppServerClient = require('./codexAppServerClient-
|
|
18
|
-
var
|
|
19
|
-
var logger = require('./logger-
|
|
20
|
-
var BasePermissionHandler = require('./BasePermissionHandler-
|
|
21
|
-
var codexTermination = require('./codexTermination-
|
|
17
|
+
var codexAppServerClient = require('./codexAppServerClient-CO9f4Jr8.cjs');
|
|
18
|
+
var rateLimitReporter = require('./rateLimitReporter-BKmoOZQi.cjs');
|
|
19
|
+
var logger = require('./logger-BP1SW7Cs.cjs');
|
|
20
|
+
var BasePermissionHandler = require('./BasePermissionHandler-DjM16uJz.cjs');
|
|
21
|
+
var codexTermination = require('./codexTermination-IrLZQzKC.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-CrzC7yr_.cjs');
|
|
24
|
+
var machineMetadata = require('./machineMetadata-BKX3ov9g.cjs');
|
|
25
|
+
var configuration = require('./configuration-C0ctLGW2.cjs');
|
|
26
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-DhCjrs44.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-DezS33OM.cjs');
|
|
30
30
|
var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
|
|
31
|
-
var controlClient = require('./controlClient-
|
|
32
|
-
var defaultPermissionMode = require('./defaultPermissionMode-
|
|
31
|
+
var controlClient = require('./controlClient-F7hAEEy2.cjs');
|
|
32
|
+
var defaultPermissionMode = require('./defaultPermissionMode-5EvgRq38.cjs');
|
|
33
33
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
34
|
-
var setupOfflineReconnection = require('./setupOfflineReconnection-
|
|
35
|
-
var startupSessionCreate = require('./startupSessionCreate-
|
|
34
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-tV0Q1dgR.cjs');
|
|
35
|
+
var startupSessionCreate = require('./startupSessionCreate-CYc8mra-.cjs');
|
|
36
36
|
var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
|
|
37
|
+
var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
|
|
37
38
|
var constants = require('./constants-VJ0N6WuG.cjs');
|
|
38
39
|
var editPaths = require('./editPaths-Bqp4OFPw.cjs');
|
|
39
|
-
var ensureDaemonRunning = require('./ensureDaemonRunning-
|
|
40
|
+
var ensureDaemonRunning = require('./ensureDaemonRunning-CIghxgDR.cjs');
|
|
40
41
|
require('tweetnacl');
|
|
41
42
|
require('axios');
|
|
42
|
-
require('./time-
|
|
43
|
-
require('./browser-
|
|
43
|
+
require('./time-XwEZxKGc.cjs');
|
|
44
|
+
require('./browser-D1yzC0Tu.cjs');
|
|
44
45
|
require('open');
|
|
45
46
|
require('zod');
|
|
46
47
|
require('./prompt-Bof2aQkI.cjs');
|
|
47
|
-
require('./reportProgressTool-
|
|
48
|
-
require('./client-
|
|
48
|
+
require('./reportProgressTool-DznxPKES.cjs');
|
|
49
|
+
require('./client-D0aYWt53.cjs');
|
|
49
50
|
require('./precheckCompat-CWOi5c9L.cjs');
|
|
50
51
|
require('./agentGuidance-BtBx2xxE.cjs');
|
|
51
52
|
require('node:fs');
|
|
52
53
|
require('node:os');
|
|
53
54
|
require('./pi-DlsrPCTa.cjs');
|
|
54
55
|
require('./fileStore-7qhnbs6N.cjs');
|
|
55
|
-
require('./client-
|
|
56
|
+
require('./client-BNmFaRXZ.cjs');
|
|
56
57
|
require('node:util');
|
|
57
|
-
require('./context-
|
|
58
|
-
require('./sessionOps-
|
|
58
|
+
require('./context-D-hEk5pC.cjs');
|
|
59
|
+
require('./sessionOps-BzeOKIEF.cjs');
|
|
59
60
|
require('socket.io-client');
|
|
60
61
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
61
62
|
require('./resources-BZ_Be0qM.cjs');
|
|
62
|
-
require('./tools-
|
|
63
|
-
require('./peerTools-
|
|
63
|
+
require('./tools-CjMafO_D.cjs');
|
|
64
|
+
require('./peerTools-B4315xjX.cjs');
|
|
64
65
|
require('./ids-B6ZC0HGt.cjs');
|
|
65
|
-
require('./remoteSessionClient-
|
|
66
|
+
require('./remoteSessionClient-Dq8XTLQP.cjs');
|
|
66
67
|
require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
67
68
|
require('node:http');
|
|
68
69
|
require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
69
70
|
require('./limits-C-a7gr04.cjs');
|
|
70
|
-
require('./downloadTarget-
|
|
71
|
+
require('./downloadTarget-aNcCxVRL.cjs');
|
|
71
72
|
require('./terminals-B_bfC9c2.cjs');
|
|
72
73
|
require('./terminalTitleSuggest-DhvRFX3H.cjs');
|
|
73
74
|
require('./tmuxSocket-D-Xt6Vn-.cjs');
|
|
74
|
-
require('./bootstrap-
|
|
75
|
-
require('./package-
|
|
75
|
+
require('./bootstrap-CDY-Vz8q.cjs');
|
|
76
|
+
require('./package-CYDdLA6R.cjs');
|
|
76
77
|
require('./webPanels-FCgFKvVe.cjs');
|
|
77
|
-
require('./pushNotifications-
|
|
78
|
+
require('./pushNotifications-CalIS9sq.cjs');
|
|
78
79
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
79
80
|
require('./previewPath-B0rBdhy1.cjs');
|
|
80
81
|
require('crypto');
|
|
81
|
-
require('./lidState-
|
|
82
|
+
require('./lidState-B4dHJCeS.cjs');
|
|
82
83
|
require('os');
|
|
83
84
|
require('child_process');
|
|
84
85
|
require('node:events');
|
|
85
|
-
require('./registerCommonHandlers-
|
|
86
|
+
require('./registerCommonHandlers-DZPozYxc.cjs');
|
|
86
87
|
require('util');
|
|
87
88
|
require('fs/promises');
|
|
88
89
|
require('path');
|
|
89
90
|
require('cross-spawn');
|
|
90
|
-
require('./sync-
|
|
91
|
+
require('./sync-CoChLEIg.cjs');
|
|
91
92
|
require('chalk');
|
|
92
93
|
require('./processTreeSnapshot-mDbnuojn.cjs');
|
|
93
94
|
require('node:readline');
|
|
94
95
|
require('./manager-HrEj442o.cjs');
|
|
95
96
|
require('@anthropic-ai/sandbox-runtime');
|
|
96
|
-
require('./rateLimitWindows-
|
|
97
|
+
require('./rateLimitWindows-Cs56YJCH.cjs');
|
|
97
98
|
require('./processTree-CMHWlVse.cjs');
|
|
98
99
|
require('./detectCLI-BuYR_Qxe.cjs');
|
|
99
100
|
require('fs');
|
|
100
|
-
require('./localHappyAgentAuth-
|
|
101
|
+
require('./localHappyAgentAuth-CG2nPD_H.cjs');
|
|
101
102
|
require('./fsMkdir-0K3yENml.cjs');
|
|
102
103
|
require('./types-CRS-srZK.cjs');
|
|
103
104
|
require('url');
|
|
104
|
-
require('./spawnHappyCLI-
|
|
105
|
+
require('./spawnHappyCLI-CxiR2Qoy.cjs');
|
|
105
106
|
require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
106
107
|
|
|
107
108
|
function getStartedSubagents(state) {
|
|
@@ -1096,6 +1097,19 @@ function unsupportedEffortReason(catalog, model, effort) {
|
|
|
1096
1097
|
return `Reasoning effort "${effort}" is not supported by ${model ?? "the default model"}. Choose a supported level.`;
|
|
1097
1098
|
}
|
|
1098
1099
|
|
|
1100
|
+
function resolveCodexTurnModel(mode, machineDefault) {
|
|
1101
|
+
if (mode.model) return mode.model;
|
|
1102
|
+
return mode.modelReset ? machineDefault || void 0 : void 0;
|
|
1103
|
+
}
|
|
1104
|
+
function codexModelFacts(input) {
|
|
1105
|
+
const { threadModel, pendingModel, machineDefault } = input;
|
|
1106
|
+
if (!threadModel) return { stickyModel: pendingModel ?? null };
|
|
1107
|
+
return {
|
|
1108
|
+
stickyModel: threadModel !== machineDefault ? threadModel : null,
|
|
1109
|
+
currentModelCode: threadModel
|
|
1110
|
+
};
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1099
1113
|
const UNEXPECTED_STATUS = /^unexpected status (\d{3}) ([^:]*?):\s*([\s\S]*?)(?:,\s*url:\s*(\S+))?$/;
|
|
1100
1114
|
function readableCodexErrorText(text) {
|
|
1101
1115
|
const trimmed = text.trim();
|
|
@@ -1307,15 +1321,51 @@ class CodexIdleReleaseTimer {
|
|
|
1307
1321
|
function isCodexClearText(text) {
|
|
1308
1322
|
return specialCommands.parseSpecialCommand(text).type === "clear";
|
|
1309
1323
|
}
|
|
1324
|
+
function codexCompactCommand(text) {
|
|
1325
|
+
return specialCommands.compactCommandText(text);
|
|
1326
|
+
}
|
|
1327
|
+
function isCodexControlText(text) {
|
|
1328
|
+
return isCodexClearText(text) || codexCompactCommand(text) !== null;
|
|
1329
|
+
}
|
|
1310
1330
|
function enqueueCodexUserText(opts) {
|
|
1311
1331
|
if (isCodexClearText(opts.text)) {
|
|
1312
1332
|
opts.queue.pushIsolateAndClear(opts.text, opts.mode, opts.attachments, opts.sourceId);
|
|
1313
1333
|
return "clear";
|
|
1314
1334
|
}
|
|
1335
|
+
const compact = codexCompactCommand(opts.text);
|
|
1336
|
+
if (compact !== null) {
|
|
1337
|
+
opts.queue.pushIsolate(compact, opts.mode, opts.attachments, opts.sourceId);
|
|
1338
|
+
return "compact";
|
|
1339
|
+
}
|
|
1315
1340
|
opts.queue.push(opts.text, opts.mode, opts.attachments, opts.sourceId);
|
|
1316
1341
|
return "queued";
|
|
1317
1342
|
}
|
|
1318
1343
|
|
|
1344
|
+
async function runCodexCompact(command, deps) {
|
|
1345
|
+
if (!deps.client.hasActiveThread()) {
|
|
1346
|
+
deps.notify("Compaction failed: there is no conversation to compact yet");
|
|
1347
|
+
return "no-thread";
|
|
1348
|
+
}
|
|
1349
|
+
const instructions = specialCommands.parseCompact(command).originalMessage.slice("/compact".length).trim();
|
|
1350
|
+
if (instructions) {
|
|
1351
|
+
deps.notify("Codex does not take compaction instructions; compacting the whole conversation");
|
|
1352
|
+
}
|
|
1353
|
+
deps.notify("Compaction started");
|
|
1354
|
+
try {
|
|
1355
|
+
const result = await deps.client.compactThreadAndWait();
|
|
1356
|
+
if (result.aborted) return "aborted";
|
|
1357
|
+
if (result.failed) {
|
|
1358
|
+
deps.notify("Compaction failed: Codex could not compact the conversation");
|
|
1359
|
+
return "failed";
|
|
1360
|
+
}
|
|
1361
|
+
deps.notify("Compaction completed");
|
|
1362
|
+
return "completed";
|
|
1363
|
+
} catch (error) {
|
|
1364
|
+
deps.notify(`Compaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
1365
|
+
return "failed";
|
|
1366
|
+
}
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1319
1369
|
async function steerIntoRunningTurn(deps, text, attachments, localKey) {
|
|
1320
1370
|
if (!deps.ownsTurn()) return false;
|
|
1321
1371
|
const staged = attachments?.length ? await deps.stage(attachments) : [];
|
|
@@ -1341,6 +1391,7 @@ function hashCodexEnhancedMode(mode) {
|
|
|
1341
1391
|
return deterministicJson.hashObject({
|
|
1342
1392
|
permissionMode: mode.permissionMode,
|
|
1343
1393
|
model: mode.model,
|
|
1394
|
+
modelReset: mode.modelReset,
|
|
1344
1395
|
appendSystemPrompt: mode.appendSystemPrompt,
|
|
1345
1396
|
effort: mode.effort
|
|
1346
1397
|
});
|
|
@@ -1394,7 +1445,17 @@ function safeCodexErrorMetadata(value) {
|
|
|
1394
1445
|
};
|
|
1395
1446
|
}
|
|
1396
1447
|
|
|
1397
|
-
const
|
|
1448
|
+
const CODEX_REMOTE_PERMISSION_MODES = [
|
|
1449
|
+
"default",
|
|
1450
|
+
"read-only",
|
|
1451
|
+
"safe-yolo",
|
|
1452
|
+
"yolo"
|
|
1453
|
+
];
|
|
1454
|
+
function codexPublishablePermissionMode(mode) {
|
|
1455
|
+
return typeof mode === "string" && CODEX_REMOTE_PERMISSION_MODES.includes(mode) ? mode : null;
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
const DEFAULT_CODEX_MODEL = void 0;
|
|
1398
1459
|
const DEFAULT_CODEX_EFFORT = "medium";
|
|
1399
1460
|
async function runCodex(opts) {
|
|
1400
1461
|
try {
|
|
@@ -1438,9 +1499,11 @@ async function runCodex(opts) {
|
|
|
1438
1499
|
dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
|
|
1439
1500
|
...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
|
|
1440
1501
|
...forkedFromMessageId ? { forkedFromMessageId } : {},
|
|
1441
|
-
capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, index.CODEX_STEER_CAPABILITY, index.PROJECT_SESSION_CAPABILITY]
|
|
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]
|
|
1442
1503
|
});
|
|
1443
1504
|
metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
|
|
1505
|
+
metadata.stickyModel = null;
|
|
1506
|
+
metadata.currentThoughtLevelCode = DEFAULT_CODEX_EFFORT;
|
|
1444
1507
|
const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
|
|
1445
1508
|
if (importCodexThreadId) {
|
|
1446
1509
|
metadata.importedFromCodexThreadId = importCodexThreadId;
|
|
@@ -1557,20 +1620,43 @@ async function runCodex(opts) {
|
|
|
1557
1620
|
let currentModel = DEFAULT_CODEX_MODEL;
|
|
1558
1621
|
let currentEffort = DEFAULT_CODEX_EFFORT;
|
|
1559
1622
|
let currentAppendSystemPrompt = void 0;
|
|
1623
|
+
let reportedStickyModel = null;
|
|
1624
|
+
let reportedCurrentModel;
|
|
1625
|
+
let reportedEffort = DEFAULT_CODEX_EFFORT;
|
|
1626
|
+
const reportModeFacts = () => {
|
|
1627
|
+
const facts = codexModelFacts({ threadModel: client$1.threadModel, pendingModel: currentModel, machineDefault: machineDefaultModel });
|
|
1628
|
+
const effort = currentEffort;
|
|
1629
|
+
if (facts.stickyModel === reportedStickyModel && facts.currentModelCode === reportedCurrentModel && effort === reportedEffort) return;
|
|
1630
|
+
reportedStickyModel = facts.stickyModel;
|
|
1631
|
+
reportedCurrentModel = facts.currentModelCode;
|
|
1632
|
+
reportedEffort = effort;
|
|
1633
|
+
session.updateMetadata((metadata2) => {
|
|
1634
|
+
const { currentThoughtLevelCode: _previous, currentModelCode: _model, ...rest } = metadata2;
|
|
1635
|
+
return {
|
|
1636
|
+
...rest,
|
|
1637
|
+
stickyModel: facts.stickyModel,
|
|
1638
|
+
...facts.currentModelCode ? { currentModelCode: facts.currentModelCode } : {},
|
|
1639
|
+
...effort ? { currentThoughtLevelCode: effort } : {}
|
|
1640
|
+
};
|
|
1641
|
+
});
|
|
1642
|
+
};
|
|
1560
1643
|
const resetCurrentModeDefaults = () => {
|
|
1561
|
-
currentPermissionMode = defaultPermissionMode.DEFAULT_CODEX_PERMISSION_MODE;
|
|
1562
|
-
currentModel = DEFAULT_CODEX_MODEL;
|
|
1563
1644
|
currentEffort = DEFAULT_CODEX_EFFORT;
|
|
1645
|
+
reportModeFacts();
|
|
1564
1646
|
currentAppendSystemPrompt = void 0;
|
|
1565
1647
|
logger.logger.debug("[Codex] Reset current mode defaults after abort");
|
|
1566
1648
|
};
|
|
1567
|
-
const VALID_REMOTE_PERMISSION_MODES =
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1649
|
+
const VALID_REMOTE_PERMISSION_MODES = CODEX_REMOTE_PERMISSION_MODES;
|
|
1650
|
+
let publishedPermissionMode = null;
|
|
1651
|
+
const publishPermissionMode = (mode) => {
|
|
1652
|
+
const publishable = codexPublishablePermissionMode(mode);
|
|
1653
|
+
if (!publishable || publishable === publishedPermissionMode) return;
|
|
1654
|
+
publishedPermissionMode = publishable;
|
|
1655
|
+
session.updateMetadata((currentMetadata) => ({ ...currentMetadata, permissionMode: publishable }));
|
|
1656
|
+
};
|
|
1657
|
+
publishPermissionMode(opts.permissionMode);
|
|
1573
1658
|
let discoveredModels = [];
|
|
1659
|
+
let machineDefaultModel;
|
|
1574
1660
|
agentAttachments.registerAgentAttachmentDownloads(session);
|
|
1575
1661
|
const CODEX_IMAGE_MIME_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
|
|
1576
1662
|
const steerDeps = {
|
|
@@ -1597,6 +1683,7 @@ async function runCodex(opts) {
|
|
|
1597
1683
|
if (VALID_REMOTE_PERMISSION_MODES.includes(incoming)) {
|
|
1598
1684
|
messagePermissionMode = incoming;
|
|
1599
1685
|
currentPermissionMode = messagePermissionMode;
|
|
1686
|
+
publishPermissionMode(incoming);
|
|
1600
1687
|
logger.logger.debug("[Codex] Valid permission mode override applied");
|
|
1601
1688
|
} else {
|
|
1602
1689
|
logger.logger.debug("[Codex] Ignoring invalid permission mode override", logValueMetadata(message.meta.permissionMode));
|
|
@@ -1605,9 +1692,12 @@ async function runCodex(opts) {
|
|
|
1605
1692
|
logger.logger.debug("[Codex] User message received without a permission mode override");
|
|
1606
1693
|
}
|
|
1607
1694
|
let messageModel = currentModel;
|
|
1695
|
+
let messageModelReset = false;
|
|
1608
1696
|
if (message.meta?.hasOwnProperty("model")) {
|
|
1609
1697
|
messageModel = message.meta.model || void 0;
|
|
1698
|
+
messageModelReset = !messageModel;
|
|
1610
1699
|
currentModel = messageModel;
|
|
1700
|
+
reportModeFacts();
|
|
1611
1701
|
logger.logger.debug("[Codex] Model override updated", logValueMetadata(message.meta.model));
|
|
1612
1702
|
} else {
|
|
1613
1703
|
logger.logger.debug("[Codex] User message received without a model override");
|
|
@@ -1618,10 +1708,12 @@ async function runCodex(opts) {
|
|
|
1618
1708
|
if (incoming === null || incoming === void 0) {
|
|
1619
1709
|
messageEffort = void 0;
|
|
1620
1710
|
currentEffort = void 0;
|
|
1711
|
+
reportModeFacts();
|
|
1621
1712
|
logger.logger.debug(`[Codex] Effort reset to default`);
|
|
1622
1713
|
} else if (typeof incoming === "string") {
|
|
1623
1714
|
messageEffort = incoming;
|
|
1624
1715
|
currentEffort = messageEffort;
|
|
1716
|
+
reportModeFacts();
|
|
1625
1717
|
logger.logger.debug("[Codex] Valid effort override applied");
|
|
1626
1718
|
} else {
|
|
1627
1719
|
logger.logger.debug("[Codex] Ignoring invalid effort override", logValueMetadata(incoming));
|
|
@@ -1640,10 +1732,11 @@ async function runCodex(opts) {
|
|
|
1640
1732
|
const enhancedMode = {
|
|
1641
1733
|
permissionMode: messagePermissionMode || "default",
|
|
1642
1734
|
model: messageModel,
|
|
1735
|
+
...messageModelReset ? { modelReset: true } : {},
|
|
1643
1736
|
appendSystemPrompt: messageAppendSystemPrompt,
|
|
1644
1737
|
effort: messageEffort
|
|
1645
1738
|
};
|
|
1646
|
-
if (message.meta?.delivery === "steer" && !
|
|
1739
|
+
if (message.meta?.delivery === "steer" && !isCodexControlText(message.content.text)) {
|
|
1647
1740
|
if (await steerIntoRunningTurn(steerDeps, message.content.text, attachments, message.localKey)) {
|
|
1648
1741
|
logger.logger.debug("[Codex] User message steered into the current turn");
|
|
1649
1742
|
return;
|
|
@@ -1656,8 +1749,8 @@ async function runCodex(opts) {
|
|
|
1656
1749
|
attachments,
|
|
1657
1750
|
sourceId: message.localKey
|
|
1658
1751
|
});
|
|
1659
|
-
if (enqueueResult === "clear") {
|
|
1660
|
-
logger.logger.debug(
|
|
1752
|
+
if (enqueueResult === "clear" || enqueueResult === "compact") {
|
|
1753
|
+
logger.logger.debug(`[Codex] /${enqueueResult} command pushed to isolated queue`);
|
|
1661
1754
|
}
|
|
1662
1755
|
}).catch((error) => {
|
|
1663
1756
|
logger.logger.warn("[Codex] Failed to prepare user attachments", safeCodexErrorMetadata(error));
|
|
@@ -1852,7 +1945,7 @@ async function runCodex(opts) {
|
|
|
1852
1945
|
}
|
|
1853
1946
|
});
|
|
1854
1947
|
const editThrottle = new editPaths.EditReportThrottle();
|
|
1855
|
-
client$1.setRateLimitHandler((snapshot) =>
|
|
1948
|
+
client$1.setRateLimitHandler((snapshot) => rateLimitReporter.wrapperRateLimitReporter().observeCodex(snapshot));
|
|
1856
1949
|
client$1.setEventHandler((msg) => {
|
|
1857
1950
|
if (msg.type === "token_count") {
|
|
1858
1951
|
session.sendAgentUsageSnapshot("codex", msg);
|
|
@@ -1984,17 +2077,27 @@ async function runCodex(opts) {
|
|
|
1984
2077
|
logger.logger.debug("[codex]: client.connect done");
|
|
1985
2078
|
try {
|
|
1986
2079
|
discoveredModels = await client$1.listModels();
|
|
1987
|
-
|
|
2080
|
+
let configured = null;
|
|
2081
|
+
try {
|
|
2082
|
+
configured = { model: await client$1.readConfiguredModel(process.cwd()) };
|
|
2083
|
+
} catch (error) {
|
|
2084
|
+
logger.logger.debug("[Codex] config/read unavailable", safeCodexErrorMetadata(error));
|
|
2085
|
+
}
|
|
2086
|
+
machineDefaultModel = configured?.model ?? discoveredModels.find((model) => model.isDefault)?.model;
|
|
2087
|
+
if (discoveredModels.length > 0 || configured) {
|
|
1988
2088
|
session.updateMetadata((metadata2) => ({
|
|
1989
2089
|
...metadata2,
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
2090
|
+
...discoveredModels.length > 0 ? {
|
|
2091
|
+
models: discoveredModels.map((model) => ({
|
|
2092
|
+
code: model.model,
|
|
2093
|
+
value: model.displayName,
|
|
2094
|
+
description: model.description,
|
|
2095
|
+
reasoningEfforts: model.supportedReasoningEfforts.map((option) => option.reasoningEffort),
|
|
2096
|
+
defaultReasoningEffort: model.defaultReasoningEffort
|
|
2097
|
+
}))
|
|
2098
|
+
} : {},
|
|
2099
|
+
defaultModelCode: configured?.model ?? discoveredModels.find((model) => model.isDefault)?.model,
|
|
2100
|
+
...configured ? { configuredModel: configured.model } : {}
|
|
1998
2101
|
}));
|
|
1999
2102
|
}
|
|
2000
2103
|
} catch (error) {
|
|
@@ -2024,6 +2127,7 @@ async function runCodex(opts) {
|
|
|
2024
2127
|
first = false;
|
|
2025
2128
|
appendSystemPromptInjected = true;
|
|
2026
2129
|
}
|
|
2130
|
+
reportModeFacts();
|
|
2027
2131
|
const forkCodexThreadId = process.env.HAPPY_FORK_CODEX_THREAD_ID;
|
|
2028
2132
|
if (!reconnectSessionId && forkCodexThreadId) {
|
|
2029
2133
|
try {
|
|
@@ -2134,6 +2238,7 @@ async function runCodex(opts) {
|
|
|
2134
2238
|
reasoningProcessor.abort();
|
|
2135
2239
|
diffProcessor.reset();
|
|
2136
2240
|
appendSystemPromptInjected = false;
|
|
2241
|
+
projectInjector.reset();
|
|
2137
2242
|
thinking = false;
|
|
2138
2243
|
session.keepAlive(thinking, "remote");
|
|
2139
2244
|
messageBuffer.addMessage("Context was reset", "status");
|
|
@@ -2155,20 +2260,34 @@ async function runCodex(opts) {
|
|
|
2155
2260
|
continue;
|
|
2156
2261
|
}
|
|
2157
2262
|
messageBuffer.addMessage(message.message, "user");
|
|
2263
|
+
const compactCommand = codexCompactCommand(message.message);
|
|
2158
2264
|
try {
|
|
2265
|
+
if (compactCommand !== null) {
|
|
2266
|
+
await client$1.ensureConnected();
|
|
2267
|
+
const outcome = await runCodexCompact(compactCommand, {
|
|
2268
|
+
client: client$1,
|
|
2269
|
+
notify: (text) => {
|
|
2270
|
+
messageBuffer.addMessage(text, "status");
|
|
2271
|
+
session.sendSessionEvent({ type: "message", message: text });
|
|
2272
|
+
}
|
|
2273
|
+
});
|
|
2274
|
+
logger.logger.debug(`[Codex] /compact ${outcome}`);
|
|
2275
|
+
continue;
|
|
2276
|
+
}
|
|
2159
2277
|
await client$1.ensureConnected();
|
|
2160
2278
|
const sandboxManagedByHappy = client$1.sandboxEnabled;
|
|
2161
2279
|
const executionPolicy = resolveCodexExecutionPolicy(
|
|
2162
2280
|
message.mode.permissionMode,
|
|
2163
2281
|
sandboxManagedByHappy
|
|
2164
2282
|
);
|
|
2165
|
-
const
|
|
2283
|
+
const turnModel = resolveCodexTurnModel(message.mode, machineDefaultModel);
|
|
2284
|
+
const effortRefusal = unsupportedEffortReason(discoveredModels, turnModel ?? client$1.threadModel ?? machineDefaultModel, message.mode.effort);
|
|
2166
2285
|
if (effortRefusal) {
|
|
2167
2286
|
throw new Error(effortRefusal);
|
|
2168
2287
|
}
|
|
2169
2288
|
if (!client$1.hasActiveThread()) {
|
|
2170
2289
|
const startedThread = await client$1.startThread({
|
|
2171
|
-
model:
|
|
2290
|
+
model: turnModel,
|
|
2172
2291
|
cwd: process.cwd(),
|
|
2173
2292
|
approvalPolicy: executionPolicy.approvalPolicy,
|
|
2174
2293
|
sandbox: executionPolicy.sandbox,
|
|
@@ -2178,6 +2297,7 @@ async function runCodex(opts) {
|
|
|
2178
2297
|
...currentMetadata,
|
|
2179
2298
|
codexThreadId: startedThread.threadId
|
|
2180
2299
|
}));
|
|
2300
|
+
reportModeFacts();
|
|
2181
2301
|
}
|
|
2182
2302
|
const includeAppendSystemPrompt = Boolean(
|
|
2183
2303
|
message.mode.appendSystemPrompt && !appendSystemPromptInjected
|
|
@@ -2194,11 +2314,12 @@ async function runCodex(opts) {
|
|
|
2194
2314
|
}) : [];
|
|
2195
2315
|
const result = await client$1.sendTurnAndWait(attachmentContent.appendStagedAttachmentsToPrompt(turnPrompt, staged), {
|
|
2196
2316
|
images: staged.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => file.path),
|
|
2197
|
-
model:
|
|
2317
|
+
model: turnModel,
|
|
2198
2318
|
approvalPolicy: executionPolicy.approvalPolicy,
|
|
2199
2319
|
sandbox: executionPolicy.sandbox,
|
|
2200
2320
|
effort: message.mode.effort
|
|
2201
2321
|
});
|
|
2322
|
+
reportModeFacts();
|
|
2202
2323
|
first = false;
|
|
2203
2324
|
if (includeAppendSystemPrompt) {
|
|
2204
2325
|
appendSystemPromptInjected = true;
|