very-happy-cli 0.2.186 → 0.2.188
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-ConXUH67.mjs → AcpBackend-2loP7MpF.mjs} +3 -3
- package/dist/{AcpBackend-aVv-_nH_.cjs → AcpBackend-B8AYkp5n.cjs} +3 -3
- package/dist/{AcpSessionManager-BxD1AQ8L.mjs → AcpSessionManager-C17doAoR.mjs} +2 -2
- package/dist/{AcpSessionManager-aRdzf_6R.cjs → AcpSessionManager-CLqo9R9Y.cjs} +2 -2
- package/dist/{BasePermissionHandler-BsOLZCNB.cjs → BasePermissionHandler-C8UEcFz0.cjs} +1 -1
- package/dist/{BasePermissionHandler-Hj7Qregq.mjs → BasePermissionHandler-CrfyUmqO.mjs} +1 -1
- package/dist/{acpSessionResume-CKacrrHV.mjs → acpSessionResume-F705a1cF.mjs} +1 -1
- package/dist/{acpSessionResume-CpPNoxaW.cjs → acpSessionResume-OuYlLGxL.cjs} +1 -1
- package/dist/{agentHome-CawmLuWV.mjs → agentHome-Dc7LYF3d.mjs} +4 -4
- package/dist/{agentHome-VS7FrFQZ.cjs → agentHome-DsKHJ_Sf.cjs} +4 -4
- package/dist/{api-DjqQTT16.cjs → api-BOqjYd5r.cjs} +10 -10
- package/dist/{api-DUFy21Nf.mjs → api-DNKa7kVy.mjs} +10 -10
- package/dist/{apiMachine-D2BrVBYu.cjs → apiMachine--rcPpMmt.cjs} +14 -14
- package/dist/{apiMachine-B0sBCHNZ.mjs → apiMachine-Di1G9ECW.mjs} +14 -14
- package/dist/{attachmentContent-2kInPZrP.cjs → attachmentContent-BFRMLong.cjs} +2 -2
- package/dist/{attachmentContent-D01-pLOB.mjs → attachmentContent-C9S4ekAz.mjs} +2 -2
- package/dist/{auth-DP3eN2Fv.mjs → auth-BNhhk2Fr.mjs} +5 -5
- package/dist/{auth-B-CqTcVh.mjs → auth-Bzwo_vOM.mjs} +8 -8
- package/dist/{auth-CujfCIv-.cjs → auth-CQtfznF0.cjs} +8 -8
- package/dist/{auth-CImUXAjH.cjs → auth-CXmI92aj.cjs} +5 -5
- package/dist/{auto-D4KRQIBu.mjs → auto-DHYOLnXB.mjs} +19 -19
- package/dist/{auto-oWgZl7mM.cjs → auto-DXLdaX5O.cjs} +19 -19
- package/dist/{bootstrap-MFmMruyB.mjs → bootstrap-Di38SnpN.mjs} +2 -2
- package/dist/{bootstrap-B7YvJcVK.cjs → bootstrap-eJ1l7VYl.cjs} +2 -2
- package/dist/{browser-CfFbN1Us.mjs → browser-6Cg7G6bb.mjs} +1 -1
- package/dist/{browser-C19iD31j.cjs → browser-D3uBFRQu.cjs} +1 -1
- package/dist/{claudeLocal-C4A7-BmS.cjs → claudeLocal-BBaE4QF_.cjs} +9 -8
- package/dist/{claudeLocal-C6wNx9qH.mjs → claudeLocal-CqaEs-81.mjs} +7 -6
- package/dist/{claudeLocalLauncher-DdPfufcS.mjs → claudeLocalLauncher-BDUPxtsI.mjs} +11 -11
- package/dist/{claudeLocalLauncher-BfCKs7Le.cjs → claudeLocalLauncher-wPxKtH_P.cjs} +11 -11
- package/dist/{claudeSessionFork-B8NjdHYD.cjs → claudeSessionFork-CmY25Fl3.cjs} +1 -1
- package/dist/{claudeSessionFork-D8XT48Lf.mjs → claudeSessionFork-DzWFzj9m.mjs} +1 -1
- package/dist/{client-jAdkYZRf.cjs → client-C2HcMqRF.cjs} +14 -5
- package/dist/{client-DAnQqPmc.mjs → client-DWws_aQK.mjs} +2 -2
- package/dist/{client-BfGuTBMO.mjs → client-DcDE6Ifk.mjs} +2 -2
- package/dist/{client-CMIhQ32m.cjs → client-DmY03OZZ.cjs} +2 -2
- package/dist/{client-CTNxuHVc.cjs → client-agH03Irm.cjs} +2 -2
- package/dist/{client-CKM07bJH.mjs → client-qJ0y8fus.mjs} +14 -5
- package/dist/codex/happyMcpStdioBridge.cjs +18 -17
- package/dist/codex/happyMcpStdioBridge.mjs +18 -17
- package/dist/{codexAppServerClient-DhOC61k9.mjs → codexAppServerClient-DgE99i7X.mjs} +39 -5
- package/dist/{codexAppServerClient-Dv1Mh3MS.cjs → codexAppServerClient-DwzC8LR0.cjs} +39 -5
- package/dist/{codexCommand-CWrFt3Ne.cjs → codexCommand-1vFEA1KT.cjs} +118 -60
- package/dist/{codexCommand-D3_i93Rm.mjs → codexCommand-DUSVzbKh.mjs} +115 -57
- package/dist/{codexTermination-B08GgahL.mjs → codexTermination-Bybovr2z.mjs} +1 -1
- package/dist/{codexTermination-DErS0cGt.cjs → codexTermination-DuDPyBRR.cjs} +1 -1
- package/dist/{config-D3OBduhj.mjs → config-BrzZ0O-6.mjs} +3 -3
- package/dist/{config-D_aj3xgw.cjs → config-C4xOL5bH.cjs} +3 -3
- package/dist/{configuration-DbCHeEeP.mjs → configuration-BZHpFD7K.mjs} +1 -1
- package/dist/{configuration-CI0GWwaT.cjs → configuration-DyPW9mVa.cjs} +1 -1
- package/dist/{connect-BuwVpjkZ.mjs → connect-Cw_INlj8.mjs} +13 -13
- package/dist/{connect-839tEkPN.cjs → connect-DurKwMEo.cjs} +13 -13
- package/dist/{context-zhirgqSw.cjs → context-2xDvjkQp.cjs} +1 -1
- package/dist/{context-D2Y_qLs0.mjs → context-t7YV0aZc.mjs} +1 -1
- package/dist/{controlClient-Dv80mB_j.mjs → controlClient-Bw56NIrj.mjs} +4 -4
- package/dist/{controlClient-BIi1tzEo.cjs → controlClient-DvFaPsg6.cjs} +3 -3
- package/dist/{createSessionMetadata-Dqy_DfoF.mjs → createSessionMetadata-Dn5BkLfU.mjs} +2 -2
- package/dist/{createSessionMetadata-DT24NjY2.cjs → createSessionMetadata-Dpg6bV6f.cjs} +2 -2
- package/dist/{defaultPermissionMode-yR27mevc.mjs → defaultPermissionMode-DMTnlccv.mjs} +2 -2
- package/dist/{defaultPermissionMode-BYqJbPhc.cjs → defaultPermissionMode-Dlm0q1m0.cjs} +2 -2
- package/dist/{deterministicJson-COiJcmUR.mjs → deterministicJson-CsRckxVq.mjs} +14 -14
- package/dist/{deterministicJson-CoWlyn_X.cjs → deterministicJson-D0BrV1FD.cjs} +14 -14
- package/dist/{doctor-Ymj096qP.mjs → doctor-B4HQiW6j.mjs} +7 -7
- package/dist/{doctor-DI6aIOne.cjs → doctor-CYe4d9kU.cjs} +7 -7
- package/dist/{downloadTarget-BOXHrxbm.cjs → downloadTarget-CuhBVvuC.cjs} +6 -6
- package/dist/{downloadTarget-DRXCRDub.mjs → downloadTarget-tYMV_VHo.mjs} +6 -6
- package/dist/{ensureDaemonRunning-BqNjYnar.cjs → ensureDaemonRunning-Ce3BlWiR.cjs} +5 -5
- package/dist/{ensureDaemonRunning-DTrrXAdz.mjs → ensureDaemonRunning-DVtIG9z7.mjs} +5 -5
- package/dist/{handleResumeCommand-DW_MRgtz.mjs → handleResumeCommand-BU1uMNyv.mjs} +5 -5
- package/dist/{handleResumeCommand-BBKUGhCv.cjs → handleResumeCommand-CLxsmAW0.cjs} +5 -5
- package/dist/{index-Cyu_8WAd.mjs → index-B1OxWiNG.mjs} +3 -3
- package/dist/{index-BumVulwx.cjs → index-BOe6dKnL.cjs} +215 -18
- package/dist/{index-04pYyzsJ.mjs → index-CVHRt3SS.mjs} +4 -4
- package/dist/{index-WW17yjQO.mjs → index-ChX0eVXw.mjs} +92 -46
- package/dist/{index-CmlAXizv.mjs → index-DDz0Ftoy.mjs} +7 -7
- package/dist/{index-D9lJhXUk.cjs → index-DG1kGjkF.cjs} +93 -47
- package/dist/{index-W8wlfp57.cjs → index-DoXbGEAi.cjs} +3 -3
- package/dist/{index-Bq6VHNdk.cjs → index-KwuXqLwe.cjs} +4 -4
- package/dist/{index-B9f1vKcC.mjs → index-WKyN-bNy.mjs} +212 -17
- package/dist/{index-CY573fnz.cjs → index-wWJJAQRk.cjs} +7 -7
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-F3rP8tBU.mjs → install-B8O1JpJH.mjs} +1 -1
- package/dist/{install-BATFlr_l.cjs → install-BOHlqewf.cjs} +1 -1
- package/dist/{install-C5XCDwgD.mjs → install-CMa_FOWu.mjs} +3 -3
- package/dist/{install-C1y_g7kj.cjs → install-cAYvHxXR.cjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +6 -0
- package/dist/lib.d.mts +6 -0
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-CZ1ggYiB.mjs → lidState-D-lsD1FS.mjs} +1 -1
- package/dist/{lidState-BxHu6dus.cjs → lidState-d1vgQ3n7.cjs} +1 -1
- package/dist/{localHappyAgentAuth-BHklNDKQ.cjs → localHappyAgentAuth-DucSnCg3.cjs} +1 -1
- package/dist/{localHappyAgentAuth-OJk4xDwg.mjs → localHappyAgentAuth-wvDp-nGj.mjs} +1 -1
- package/dist/{logger-L0pLBOLK.cjs → logger-C3vZG6Q0.cjs} +2 -2
- package/dist/{logger-CpaeM90D.mjs → logger-RpzJ4d8V.mjs} +2 -2
- package/dist/{machineMetadata-YeHF4gSY.cjs → machineMetadata-CAvFq1Jg.cjs} +3 -3
- package/dist/{machineMetadata-ukaYmmlK.mjs → machineMetadata-CiQ2_1Mq.mjs} +3 -3
- package/dist/{main-VyiAJXfb.cjs → main-ChpYcFZi.cjs} +46 -46
- package/dist/{main-pkH_VRP-.mjs → main-IPhaImjm.mjs} +46 -46
- package/dist/{mcp-Y8Xsr2Xh.cjs → mcp-2xF232hL.cjs} +15 -15
- package/dist/{mcp-BwoAhEnN.mjs → mcp-CWnMvju6.mjs} +15 -15
- package/dist/{mirrorProtocol-Did0-1jn.cjs → mirrorProtocol-CVzPObON.cjs} +3 -3
- package/dist/{mirrorProtocol-DukUp2Bj.mjs → mirrorProtocol-Dr7fNq8V.mjs} +3 -3
- package/dist/{package-DagIeOhi.mjs → package-CwB8rFJt.mjs} +10 -10
- package/dist/{package-BuATIMpK.cjs → package-Gnf_935w.cjs} +10 -10
- package/dist/{panels-CZ_CRUbM.cjs → panels-DTlTsndU.cjs} +5 -5
- package/dist/{panels-C3dUoUbA.mjs → panels-L1mSkC-y.mjs} +5 -5
- package/dist/{peerTools-CUCqJ83-.mjs → peerTools-2_8Bw9PU.mjs} +5 -5
- package/dist/{peerTools-Cs3Ln6d0.cjs → peerTools-C1E5cQ86.cjs} +5 -5
- package/dist/{persistence-FgtDuVAP.mjs → persistence-Bn4qEbDg.mjs} +2 -2
- package/dist/{persistence-CIzOAWK6.cjs → persistence-CqtjFiD1.cjs} +2 -2
- package/dist/{piRunnerArgs-CJhXFPM9.cjs → piRunnerArgs-BI8yQRBZ.cjs} +1 -1
- package/dist/{piRunnerArgs-YbYkfixz.mjs → piRunnerArgs-DWBb63W9.mjs} +1 -1
- package/dist/{piRuntime-CEzoAYHe.cjs → piRuntime--mQ43MSM.cjs} +2 -2
- package/dist/{piRuntime-CShuw-1A.mjs → piRuntime-Do8oqbm3.mjs} +2 -2
- package/dist/{piTerminal-DVr2W6bI.cjs → piTerminal-BzcvLFsP.cjs} +18 -18
- package/dist/{piTerminal-BvvcgVoW.mjs → piTerminal-GC1KHTYQ.mjs} +18 -18
- package/dist/promptCacheTtl-B8PCzE6k.cjs +76 -0
- package/dist/promptCacheTtl-Ce0TVbrx.mjs +72 -0
- package/dist/{pushNotifications-2CyhYAte.mjs → pushNotifications-BThg4nVd.mjs} +3 -3
- package/dist/{pushNotifications-OtQY-Mfa.cjs → pushNotifications-Bb-QSqXw.cjs} +3 -3
- package/dist/{query-DimRl61I.cjs → query-Bz3pocKH.cjs} +5 -4
- package/dist/{query-B7DvMlYM.mjs → query-CkgIJ_Dy.mjs} +3 -2
- package/dist/{specialCommands-ByrcSYSh.cjs → rateLimitReporter-BkHyvLru.cjs} +3 -55
- package/dist/{specialCommands-B-DAeFrU.mjs → rateLimitReporter-Iw4k3Bbr.mjs} +4 -55
- package/dist/{rateLimitWindows-DwhrA5wy.cjs → rateLimitWindows-Bm_dcQGW.cjs} +1 -1
- package/dist/{rateLimitWindows-C0zbGT7K.mjs → rateLimitWindows-CQ4tIQnx.mjs} +1 -1
- package/dist/{registerCommonHandlers-De54jKz8.cjs → registerCommonHandlers-CIs6H2DV.cjs} +2 -2
- package/dist/{registerCommonHandlers-X9lnO2TF.mjs → registerCommonHandlers-CaWl9ll1.mjs} +2 -2
- package/dist/{remoteSessionClient-9j3N_bzV.cjs → remoteSessionClient-DgUMfPW4.cjs} +5 -5
- package/dist/{remoteSessionClient-BApor-c2.mjs → remoteSessionClient-uPj7omsw.mjs} +5 -5
- package/dist/{reportProgressTool-RR5VkbDf.cjs → reportProgressTool-CaJ8EwLq.cjs} +3 -3
- package/dist/{reportProgressTool-6mDoxKuq.mjs → reportProgressTool-DUEq3xAL.mjs} +3 -3
- package/dist/{resources-CqwHPhdK.cjs → resources-BZ_Be0qM.cjs} +1 -1
- package/dist/{resources-CLdQfe3b.mjs → resources-CLP_MpK4.mjs} +1 -1
- package/dist/{run-CmA3cPD_.mjs → run-DTUJBD6p.mjs} +37 -37
- package/dist/{run-B2ZorDI7.cjs → run-DyyGMqND.cjs} +37 -37
- package/dist/{runClaude-Dk73bQ0n.cjs → runClaude-8JDaPoGQ.cjs} +22 -22
- package/dist/{runClaude-bxwea9mX.mjs → runClaude-DTNvIz2J.mjs} +22 -22
- package/dist/{runClaudeDeps-dVfReVd4.cjs → runClaudeDeps-BeLo5zss.cjs} +84 -55
- package/dist/{runClaudeDeps-DoaYM017.mjs → runClaudeDeps-CgGkgg7e.mjs} +86 -56
- package/dist/{runGemini-BD-wQe5q.cjs → runGemini-BSOdU563.cjs} +55 -51
- package/dist/{runGemini-Dq2iv4UF.mjs → runGemini-eU8UOzfc.mjs} +53 -49
- package/dist/{runOpenClaw-BXLv_bvU.cjs → runOpenClaw-CYyFoGRZ.cjs} +30 -26
- package/dist/{runOpenClaw-C1NB1aLx.mjs → runOpenClaw-D8RZiA1e.mjs} +28 -24
- package/dist/{sandbox-9MIBf8kS.cjs → sandbox-C8zfNX-4.cjs} +4 -4
- package/dist/{sandbox-Dqs_T8Jw.mjs → sandbox-DlPahdhl.mjs} +4 -4
- package/dist/selfCheck-4bcdHPFQ.mjs +86 -0
- package/dist/{selfCheck-CkUezhrg.cjs → selfCheck-D28nvuPJ.cjs} +37 -37
- package/dist/{send-rdhpycNB.cjs → send-C58kX4qz.cjs} +8 -8
- package/dist/{send-4q066vij.mjs → send-DBpv-1eh.mjs} +8 -8
- package/dist/{server-DxTjt1mK.cjs → server-I_CETZzn.cjs} +6 -6
- package/dist/{server-DN6TvjhP.mjs → server-J5K6pOox.mjs} +4 -4
- package/dist/{sessionLock-DOsE5UUf.mjs → sessionLock-C7Wg1RVd.mjs} +3 -3
- package/dist/{sessionLock-h4162Jrf.cjs → sessionLock-DjE7O0LS.cjs} +3 -3
- package/dist/{sessionOps--9p2IzVA.mjs → sessionOps-CYjMT7Ad.mjs} +4 -4
- package/dist/{sessionOps-tmBKG5qg.cjs → sessionOps-DGMpl9NB.cjs} +4 -4
- package/dist/{sessionProvider-B9w7rFDR.cjs → sessionProvider-DVtxrOuM.cjs} +5 -5
- package/dist/{sessionProvider-C6MHJZ9Z.mjs → sessionProvider-TLiFn9kD.mjs} +5 -5
- package/dist/{sessionScanner-Bgvz8Uiy.cjs → sessionScanner-BZ1ZSn6I.cjs} +3 -3
- package/dist/{sessionScanner-B6hzp5R9.mjs → sessionScanner-CknV1IlN.mjs} +3 -3
- package/dist/{sessions-DJMVXKRz.cjs → sessions-CTkBKs5U.cjs} +10 -10
- package/dist/{sessions-iItaUQAF.mjs → sessions-DU4bxkap.mjs} +10 -10
- package/dist/{setupOfflineReconnection-DL4HUMDJ.cjs → setupOfflineReconnection-CQHNuP_0.cjs} +2 -2
- package/dist/{setupOfflineReconnection-DF78nz1N.mjs → setupOfflineReconnection-DaOXnGuH.mjs} +2 -2
- package/dist/{spawn-CL9A8dBJ.cjs → spawn-C0wZc03S.cjs} +67 -25
- package/dist/{spawn-CoYfACsc.mjs → spawn-DdnYTtQe.mjs} +67 -26
- package/dist/{spawnAgents-DsJSyLDl.cjs → spawnAgents-BjyU78Ue.cjs} +21 -9
- package/dist/{spawnAgents-f2q31uUV.mjs → spawnAgents-D-7wMw-a.mjs} +21 -10
- package/dist/{spawnHappyCLI-BWOub_Uf.cjs → spawnHappyCLI-BJUd974I.cjs} +1 -1
- package/dist/{spawnHappyCLI-BcSO1rF6.mjs → spawnHappyCLI-CnyyJk74.mjs} +1 -1
- package/dist/{registerKillSessionHandler-CAif4Uz4.cjs → specialCommands-BsvSoDhC.cjs} +91 -6
- package/dist/{registerKillSessionHandler-CrLsN5m3.mjs → specialCommands-DHU7TNeK.mjs} +88 -7
- package/dist/{startFileWatcher-DVia64Vg.mjs → startFileWatcher-CpO5Mwbr.mjs} +1 -1
- package/dist/{startFileWatcher-BZrpUz7_.cjs → startFileWatcher-DBboREco.cjs} +1 -1
- package/dist/{startupSessionCreate-CY4tPjlZ.mjs → startupSessionCreate-BgaVuvQp.mjs} +1 -1
- package/dist/{startupSessionCreate-63ABDnfJ.cjs → startupSessionCreate-C1u2dtz8.cjs} +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-CKSmwxec.cjs → sync-6HFRJP1h.cjs} +1 -1
- package/dist/{sync-CZjyTC4v.mjs → sync-I8NYmycF.mjs} +1 -1
- package/dist/{systemPrompt-BPzhf5d5.cjs → systemPrompt-BDWj5QSL.cjs} +2 -2
- package/dist/{systemPrompt-BKUVX-fd.mjs → systemPrompt-C1RSY_60.mjs} +2 -2
- package/dist/{teams-B2-KPjRg.mjs → teams-GpLFbXXE.mjs} +9 -9
- package/dist/{teams-CHBszdmc.cjs → teams-eUD7ymif.cjs} +9 -9
- 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-DcICfW0N.cjs → time-BAJRbB6U.cjs} +1 -1
- package/dist/{time-BsNUVcKH.mjs → time-umG7yHkb.mjs} +1 -1
- package/dist/{titleGenerator-B4b4ah--.mjs → titleGenerator-dmFlxkRs.mjs} +1 -1
- package/dist/{titleGenerator-Bvk1mx7G.cjs → titleGenerator-iqb2jOF1.cjs} +2 -2
- package/dist/{todo-C7--CBge.mjs → todo-CT4AJ3sH.mjs} +6 -6
- package/dist/{todo-BN4hhun6.cjs → todo-DsR7WnQS.cjs} +6 -6
- package/dist/tools-30E66QL_.cjs +140 -0
- package/dist/tools-BOWazSD6.mjs +137 -0
- package/dist/{uninstall-_qDbgdxh.cjs → uninstall-BtTc9hHa.cjs} +3 -3
- package/dist/{uninstall-Bjwl9bqK.mjs → uninstall-DImXs6VZ.mjs} +3 -3
- package/package.json +10 -10
- package/dist/selfCheck-Dz_Sm7w8.mjs +0 -86
- package/dist/smallFastModel-BLNgMrwR.mjs +0 -18
- package/dist/smallFastModel-D_uxGMo3.cjs +0 -21
- package/dist/tools-BILbS8Hh.mjs +0 -60
- package/dist/tools-Bl5Q_6Nr.cjs +0 -63
|
@@ -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-C3vZG6Q0.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-Gnf_935w.cjs');
|
|
10
|
+
var rateLimitWindows = require('./rateLimitWindows-Bm_dcQGW.cjs');
|
|
11
11
|
var processTree = require('./processTree-CMHWlVse.cjs');
|
|
12
12
|
|
|
13
13
|
const CODEX_HELPER_LABEL_MAX_CHARS = 80;
|
|
@@ -142,6 +142,8 @@ class CodexAppServerClient {
|
|
|
142
142
|
completedTurnIds = /* @__PURE__ */ new Set();
|
|
143
143
|
/** B-625: turns whose failure has already been forwarded, so a second failed frame is not. */
|
|
144
144
|
failedTurnIds = /* @__PURE__ */ new Set();
|
|
145
|
+
/** The turn the last pending completion was resolved for (runTurnAndWait reads its verdict). */
|
|
146
|
+
lastResolvedTurnId = null;
|
|
145
147
|
// B-625: the app-server speaks for every thread it hosts — the session's own and the
|
|
146
148
|
// children `spawn_agent` opens — so a lifecycle frame (turn/started, turn/completed,
|
|
147
149
|
// thread/status/changed, error, thread/closed) is the session's only when its `threadId`
|
|
@@ -860,6 +862,7 @@ ${text}`.slice(-400);
|
|
|
860
862
|
}
|
|
861
863
|
resolvePendingTurn(aborted) {
|
|
862
864
|
if (!this.pendingTurnCompletion) return;
|
|
865
|
+
this.lastResolvedTurnId = this.pendingTurnCompletion.turnId;
|
|
863
866
|
this.clearTurnWatchdog();
|
|
864
867
|
this.clearThreadStopGrace();
|
|
865
868
|
this.pendingTurnCompletion.resolve(aborted);
|
|
@@ -994,6 +997,7 @@ ${text}`.slice(-400);
|
|
|
994
997
|
);
|
|
995
998
|
return;
|
|
996
999
|
}
|
|
1000
|
+
if (!pending.turnId && turnId) pending.turnId = turnId;
|
|
997
1001
|
this.resolvePendingTurn(aborted);
|
|
998
1002
|
}
|
|
999
1003
|
async waitForTurnCompletion(timeoutMs) {
|
|
@@ -1093,6 +1097,24 @@ ${text}`.slice(-400);
|
|
|
1093
1097
|
* Returns { aborted: true } if the turn was aborted (user cancel, permission reject, etc.).
|
|
1094
1098
|
*/
|
|
1095
1099
|
async sendTurnAndWait(prompt, opts) {
|
|
1100
|
+
const { aborted } = await this.runTurnAndWait(() => this.sendTurn(prompt, opts), opts);
|
|
1101
|
+
return { aborted };
|
|
1102
|
+
}
|
|
1103
|
+
/**
|
|
1104
|
+
* `/compact`: Codex compacts the thread in a turn of its own
|
|
1105
|
+
* (`thread/compact/start` answers `{}`, then `turn/started` →
|
|
1106
|
+
* `contextCompaction` item → `turn/completed`, probed on codex-cli 0.154).
|
|
1107
|
+
* Waits for that turn like any other; `failed` is the turn's own verdict.
|
|
1108
|
+
*/
|
|
1109
|
+
async compactThreadAndWait(opts) {
|
|
1110
|
+
return this.runTurnAndWait(async () => {
|
|
1111
|
+
if (!this._threadId) {
|
|
1112
|
+
throw new Error("No active thread. Call startThread first.");
|
|
1113
|
+
}
|
|
1114
|
+
await this.request("thread/compact/start", { threadId: this._threadId });
|
|
1115
|
+
}, opts);
|
|
1116
|
+
}
|
|
1117
|
+
async runTurnAndWait(start, opts) {
|
|
1096
1118
|
if (this.pendingInterrupt) {
|
|
1097
1119
|
await this.pendingInterrupt;
|
|
1098
1120
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
@@ -1110,7 +1132,7 @@ ${text}`.slice(-400);
|
|
|
1110
1132
|
this.armTurnWatchdog(timeoutMs);
|
|
1111
1133
|
});
|
|
1112
1134
|
try {
|
|
1113
|
-
await
|
|
1135
|
+
await start();
|
|
1114
1136
|
} catch (err) {
|
|
1115
1137
|
this.clearTurnWatchdog();
|
|
1116
1138
|
this.pendingTurnCompletion = null;
|
|
@@ -1119,7 +1141,8 @@ ${text}`.slice(-400);
|
|
|
1119
1141
|
}
|
|
1120
1142
|
const aborted = await completion;
|
|
1121
1143
|
this.clearTurnWatchdog();
|
|
1122
|
-
|
|
1144
|
+
const turnId = this.lastResolvedTurnId;
|
|
1145
|
+
return { aborted, failed: turnId !== null && this.failedTurnIds.has(turnId) };
|
|
1123
1146
|
}
|
|
1124
1147
|
armTurnWatchdog(timeoutMs) {
|
|
1125
1148
|
this.clearTurnWatchdog();
|
|
@@ -1210,6 +1233,17 @@ ${text}`.slice(-400);
|
|
|
1210
1233
|
} while (cursor);
|
|
1211
1234
|
return models;
|
|
1212
1235
|
}
|
|
1236
|
+
/**
|
|
1237
|
+
* B-844: the model Codex's effective configuration pins (config.toml,
|
|
1238
|
+
* profile, CLI overrides) via `config/read`; null = nothing pinned.
|
|
1239
|
+
* Throws when this Codex has no `config/read` — the caller then reports
|
|
1240
|
+
* nothing (unknown) and the web sends no model.
|
|
1241
|
+
*/
|
|
1242
|
+
async readConfiguredModel(cwd) {
|
|
1243
|
+
const response = await this.request("config/read", { cwd }, 1e4);
|
|
1244
|
+
const model = response?.config?.model;
|
|
1245
|
+
return typeof model === "string" && model.trim() ? model.trim() : null;
|
|
1246
|
+
}
|
|
1213
1247
|
request(method, params, timeoutMs) {
|
|
1214
1248
|
const timeout = timeoutMs ?? CodexAppServerClient.REQUEST_TIMEOUT_MS;
|
|
1215
1249
|
return new Promise((resolve, reject) => {
|
|
@@ -1,107 +1,107 @@
|
|
|
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-CXmI92aj.cjs');
|
|
4
|
+
var index = require('./index-BOe6dKnL.cjs');
|
|
5
|
+
var deterministicJson = require('./deterministicJson-D0BrV1FD.cjs');
|
|
6
|
+
var client = require('./client-agH03Irm.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-BOqjYd5r.cjs');
|
|
12
12
|
var agentAttachments = require('./agentAttachments-Dbw8iMCZ.cjs');
|
|
13
|
-
var attachmentContent = require('./attachmentContent-
|
|
13
|
+
var attachmentContent = require('./attachmentContent-BFRMLong.cjs');
|
|
14
14
|
var ink = require('ink');
|
|
15
|
-
var sessionLock = require('./sessionLock-
|
|
15
|
+
var sessionLock = require('./sessionLock-DjE7O0LS.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-DwzC8LR0.cjs');
|
|
18
|
+
var rateLimitReporter = require('./rateLimitReporter-BkHyvLru.cjs');
|
|
19
|
+
var logger = require('./logger-C3vZG6Q0.cjs');
|
|
20
|
+
var BasePermissionHandler = require('./BasePermissionHandler-C8UEcFz0.cjs');
|
|
21
|
+
var codexTermination = require('./codexTermination-DuDPyBRR.cjs');
|
|
22
22
|
var node_child_process = require('node:child_process');
|
|
23
|
-
var persistence = require('./persistence-
|
|
24
|
-
var machineMetadata = require('./machineMetadata-
|
|
25
|
-
var configuration = require('./configuration-
|
|
26
|
-
var
|
|
23
|
+
var persistence = require('./persistence-CqtjFiD1.cjs');
|
|
24
|
+
var machineMetadata = require('./machineMetadata-CAvFq1Jg.cjs');
|
|
25
|
+
var configuration = require('./configuration-DyPW9mVa.cjs');
|
|
26
|
+
var specialCommands = require('./specialCommands-BsvSoDhC.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-Dpg6bV6f.cjs');
|
|
30
30
|
var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
|
|
31
|
-
var controlClient = require('./controlClient-
|
|
32
|
-
var defaultPermissionMode = require('./defaultPermissionMode-
|
|
31
|
+
var controlClient = require('./controlClient-DvFaPsg6.cjs');
|
|
32
|
+
var defaultPermissionMode = require('./defaultPermissionMode-Dlm0q1m0.cjs');
|
|
33
33
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
34
|
-
var setupOfflineReconnection = require('./setupOfflineReconnection-
|
|
35
|
-
var startupSessionCreate = require('./startupSessionCreate-
|
|
34
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-CQHNuP_0.cjs');
|
|
35
|
+
var startupSessionCreate = require('./startupSessionCreate-C1u2dtz8.cjs');
|
|
36
36
|
var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
|
|
37
37
|
var constants = require('./constants-VJ0N6WuG.cjs');
|
|
38
38
|
var editPaths = require('./editPaths-Bqp4OFPw.cjs');
|
|
39
|
-
var ensureDaemonRunning = require('./ensureDaemonRunning-
|
|
39
|
+
var ensureDaemonRunning = require('./ensureDaemonRunning-Ce3BlWiR.cjs');
|
|
40
40
|
require('tweetnacl');
|
|
41
41
|
require('axios');
|
|
42
|
-
require('./time-
|
|
43
|
-
require('./browser-
|
|
42
|
+
require('./time-BAJRbB6U.cjs');
|
|
43
|
+
require('./browser-D3uBFRQu.cjs');
|
|
44
44
|
require('open');
|
|
45
45
|
require('zod');
|
|
46
46
|
require('./prompt-Bof2aQkI.cjs');
|
|
47
|
-
require('./reportProgressTool-
|
|
48
|
-
require('./client-
|
|
47
|
+
require('./reportProgressTool-CaJ8EwLq.cjs');
|
|
48
|
+
require('./client-DmY03OZZ.cjs');
|
|
49
49
|
require('./precheckCompat-CWOi5c9L.cjs');
|
|
50
50
|
require('./agentGuidance-BtBx2xxE.cjs');
|
|
51
51
|
require('node:fs');
|
|
52
52
|
require('node:os');
|
|
53
53
|
require('./pi-DlsrPCTa.cjs');
|
|
54
54
|
require('./fileStore-7qhnbs6N.cjs');
|
|
55
|
-
require('./client-
|
|
55
|
+
require('./client-C2HcMqRF.cjs');
|
|
56
56
|
require('node:util');
|
|
57
|
-
require('./context-
|
|
58
|
-
require('./sessionOps-
|
|
57
|
+
require('./context-2xDvjkQp.cjs');
|
|
58
|
+
require('./sessionOps-DGMpl9NB.cjs');
|
|
59
59
|
require('socket.io-client');
|
|
60
60
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
61
|
-
require('./resources-
|
|
62
|
-
require('./tools-
|
|
63
|
-
require('./peerTools-
|
|
61
|
+
require('./resources-BZ_Be0qM.cjs');
|
|
62
|
+
require('./tools-30E66QL_.cjs');
|
|
63
|
+
require('./peerTools-C1E5cQ86.cjs');
|
|
64
64
|
require('./ids-B6ZC0HGt.cjs');
|
|
65
|
-
require('./remoteSessionClient-
|
|
65
|
+
require('./remoteSessionClient-DgUMfPW4.cjs');
|
|
66
66
|
require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
67
67
|
require('node:http');
|
|
68
68
|
require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
69
69
|
require('./limits-C-a7gr04.cjs');
|
|
70
|
-
require('./downloadTarget-
|
|
70
|
+
require('./downloadTarget-CuhBVvuC.cjs');
|
|
71
71
|
require('./terminals-B_bfC9c2.cjs');
|
|
72
72
|
require('./terminalTitleSuggest-DhvRFX3H.cjs');
|
|
73
73
|
require('./tmuxSocket-D-Xt6Vn-.cjs');
|
|
74
|
-
require('./bootstrap-
|
|
75
|
-
require('./package-
|
|
74
|
+
require('./bootstrap-eJ1l7VYl.cjs');
|
|
75
|
+
require('./package-Gnf_935w.cjs');
|
|
76
76
|
require('./webPanels-FCgFKvVe.cjs');
|
|
77
|
-
require('./pushNotifications-
|
|
77
|
+
require('./pushNotifications-Bb-QSqXw.cjs');
|
|
78
78
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
79
79
|
require('./previewPath-B0rBdhy1.cjs');
|
|
80
80
|
require('crypto');
|
|
81
|
-
require('./lidState-
|
|
81
|
+
require('./lidState-d1vgQ3n7.cjs');
|
|
82
82
|
require('os');
|
|
83
83
|
require('child_process');
|
|
84
84
|
require('node:events');
|
|
85
|
-
require('./registerCommonHandlers-
|
|
85
|
+
require('./registerCommonHandlers-CIs6H2DV.cjs');
|
|
86
86
|
require('util');
|
|
87
87
|
require('fs/promises');
|
|
88
88
|
require('path');
|
|
89
89
|
require('cross-spawn');
|
|
90
|
-
require('./sync-
|
|
90
|
+
require('./sync-6HFRJP1h.cjs');
|
|
91
91
|
require('chalk');
|
|
92
92
|
require('./processTreeSnapshot-mDbnuojn.cjs');
|
|
93
93
|
require('node:readline');
|
|
94
94
|
require('./manager-HrEj442o.cjs');
|
|
95
95
|
require('@anthropic-ai/sandbox-runtime');
|
|
96
|
-
require('./rateLimitWindows-
|
|
96
|
+
require('./rateLimitWindows-Bm_dcQGW.cjs');
|
|
97
97
|
require('./processTree-CMHWlVse.cjs');
|
|
98
98
|
require('./detectCLI-BuYR_Qxe.cjs');
|
|
99
99
|
require('fs');
|
|
100
|
-
require('./localHappyAgentAuth-
|
|
100
|
+
require('./localHappyAgentAuth-DucSnCg3.cjs');
|
|
101
101
|
require('./fsMkdir-0K3yENml.cjs');
|
|
102
102
|
require('./types-CRS-srZK.cjs');
|
|
103
103
|
require('url');
|
|
104
|
-
require('./spawnHappyCLI-
|
|
104
|
+
require('./spawnHappyCLI-BJUd974I.cjs');
|
|
105
105
|
require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
106
106
|
|
|
107
107
|
function getStartedSubagents(state) {
|
|
@@ -1307,15 +1307,51 @@ class CodexIdleReleaseTimer {
|
|
|
1307
1307
|
function isCodexClearText(text) {
|
|
1308
1308
|
return specialCommands.parseSpecialCommand(text).type === "clear";
|
|
1309
1309
|
}
|
|
1310
|
+
function codexCompactCommand(text) {
|
|
1311
|
+
return specialCommands.compactCommandText(text);
|
|
1312
|
+
}
|
|
1313
|
+
function isCodexControlText(text) {
|
|
1314
|
+
return isCodexClearText(text) || codexCompactCommand(text) !== null;
|
|
1315
|
+
}
|
|
1310
1316
|
function enqueueCodexUserText(opts) {
|
|
1311
1317
|
if (isCodexClearText(opts.text)) {
|
|
1312
1318
|
opts.queue.pushIsolateAndClear(opts.text, opts.mode, opts.attachments, opts.sourceId);
|
|
1313
1319
|
return "clear";
|
|
1314
1320
|
}
|
|
1321
|
+
const compact = codexCompactCommand(opts.text);
|
|
1322
|
+
if (compact !== null) {
|
|
1323
|
+
opts.queue.pushIsolate(compact, opts.mode, opts.attachments, opts.sourceId);
|
|
1324
|
+
return "compact";
|
|
1325
|
+
}
|
|
1315
1326
|
opts.queue.push(opts.text, opts.mode, opts.attachments, opts.sourceId);
|
|
1316
1327
|
return "queued";
|
|
1317
1328
|
}
|
|
1318
1329
|
|
|
1330
|
+
async function runCodexCompact(command, deps) {
|
|
1331
|
+
if (!deps.client.hasActiveThread()) {
|
|
1332
|
+
deps.notify("Compaction failed: there is no conversation to compact yet");
|
|
1333
|
+
return "no-thread";
|
|
1334
|
+
}
|
|
1335
|
+
const instructions = specialCommands.parseCompact(command).originalMessage.slice("/compact".length).trim();
|
|
1336
|
+
if (instructions) {
|
|
1337
|
+
deps.notify("Codex does not take compaction instructions; compacting the whole conversation");
|
|
1338
|
+
}
|
|
1339
|
+
deps.notify("Compaction started");
|
|
1340
|
+
try {
|
|
1341
|
+
const result = await deps.client.compactThreadAndWait();
|
|
1342
|
+
if (result.aborted) return "aborted";
|
|
1343
|
+
if (result.failed) {
|
|
1344
|
+
deps.notify("Compaction failed: Codex could not compact the conversation");
|
|
1345
|
+
return "failed";
|
|
1346
|
+
}
|
|
1347
|
+
deps.notify("Compaction completed");
|
|
1348
|
+
return "completed";
|
|
1349
|
+
} catch (error) {
|
|
1350
|
+
deps.notify(`Compaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
1351
|
+
return "failed";
|
|
1352
|
+
}
|
|
1353
|
+
}
|
|
1354
|
+
|
|
1319
1355
|
async function steerIntoRunningTurn(deps, text, attachments, localKey) {
|
|
1320
1356
|
if (!deps.ownsTurn()) return false;
|
|
1321
1357
|
const staged = attachments?.length ? await deps.stage(attachments) : [];
|
|
@@ -1394,7 +1430,7 @@ function safeCodexErrorMetadata(value) {
|
|
|
1394
1430
|
};
|
|
1395
1431
|
}
|
|
1396
1432
|
|
|
1397
|
-
const DEFAULT_CODEX_MODEL =
|
|
1433
|
+
const DEFAULT_CODEX_MODEL = void 0;
|
|
1398
1434
|
const DEFAULT_CODEX_EFFORT = "medium";
|
|
1399
1435
|
async function runCodex(opts) {
|
|
1400
1436
|
try {
|
|
@@ -1438,7 +1474,7 @@ async function runCodex(opts) {
|
|
|
1438
1474
|
dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
|
|
1439
1475
|
...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
|
|
1440
1476
|
...forkedFromMessageId ? { forkedFromMessageId } : {},
|
|
1441
|
-
capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, index.CODEX_STEER_CAPABILITY, index.PROJECT_SESSION_CAPABILITY]
|
|
1477
|
+
capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, index.CODEX_STEER_CAPABILITY, index.PROJECT_SESSION_CAPABILITY, index.CODEX_COMPACT_CAPABILITY]
|
|
1442
1478
|
});
|
|
1443
1479
|
metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
|
|
1444
1480
|
const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
|
|
@@ -1541,7 +1577,7 @@ async function runCodex(opts) {
|
|
|
1541
1577
|
logger.logger.debug("[START] Failed to report to daemon (may not be running)", safeCodexErrorMetadata(error));
|
|
1542
1578
|
}
|
|
1543
1579
|
}
|
|
1544
|
-
const messageQueue = new
|
|
1580
|
+
const messageQueue = new specialCommands.MessageQueue2(hashCodexEnhancedMode);
|
|
1545
1581
|
function attachPromptQueueDrain(client2) {
|
|
1546
1582
|
const drain = client2.attachPromptQueueDrain({
|
|
1547
1583
|
isIdle: () => messageQueue.size() === 0 && messageQueue.isWaiting()
|
|
@@ -1643,7 +1679,7 @@ async function runCodex(opts) {
|
|
|
1643
1679
|
appendSystemPrompt: messageAppendSystemPrompt,
|
|
1644
1680
|
effort: messageEffort
|
|
1645
1681
|
};
|
|
1646
|
-
if (message.meta?.delivery === "steer" && !
|
|
1682
|
+
if (message.meta?.delivery === "steer" && !isCodexControlText(message.content.text)) {
|
|
1647
1683
|
if (await steerIntoRunningTurn(steerDeps, message.content.text, attachments, message.localKey)) {
|
|
1648
1684
|
logger.logger.debug("[Codex] User message steered into the current turn");
|
|
1649
1685
|
return;
|
|
@@ -1656,8 +1692,8 @@ async function runCodex(opts) {
|
|
|
1656
1692
|
attachments,
|
|
1657
1693
|
sourceId: message.localKey
|
|
1658
1694
|
});
|
|
1659
|
-
if (enqueueResult === "clear") {
|
|
1660
|
-
logger.logger.debug(
|
|
1695
|
+
if (enqueueResult === "clear" || enqueueResult === "compact") {
|
|
1696
|
+
logger.logger.debug(`[Codex] /${enqueueResult} command pushed to isolated queue`);
|
|
1661
1697
|
}
|
|
1662
1698
|
}).catch((error) => {
|
|
1663
1699
|
logger.logger.warn("[Codex] Failed to prepare user attachments", safeCodexErrorMetadata(error));
|
|
@@ -1782,7 +1818,7 @@ async function runCodex(opts) {
|
|
|
1782
1818
|
}
|
|
1783
1819
|
});
|
|
1784
1820
|
session.rpcHandlerManager.registerHandler("abort", () => handleAbort("user"));
|
|
1785
|
-
const disposeTermination =
|
|
1821
|
+
const disposeTermination = specialCommands.registerKillSessionHandler(session.rpcHandlerManager, () => handleKillSession("archive"), session, { processSignals: true, onSignal: () => handleKillSession("offline") });
|
|
1786
1822
|
const messageBuffer = new sessionExitLifecycle.MessageBuffer();
|
|
1787
1823
|
const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
|
|
1788
1824
|
let inkInstance = null;
|
|
@@ -1852,7 +1888,7 @@ async function runCodex(opts) {
|
|
|
1852
1888
|
}
|
|
1853
1889
|
});
|
|
1854
1890
|
const editThrottle = new editPaths.EditReportThrottle();
|
|
1855
|
-
client$1.setRateLimitHandler((snapshot) =>
|
|
1891
|
+
client$1.setRateLimitHandler((snapshot) => rateLimitReporter.wrapperRateLimitReporter().observeCodex(snapshot));
|
|
1856
1892
|
client$1.setEventHandler((msg) => {
|
|
1857
1893
|
if (msg.type === "token_count") {
|
|
1858
1894
|
session.sendAgentUsageSnapshot("codex", msg);
|
|
@@ -1984,17 +2020,26 @@ async function runCodex(opts) {
|
|
|
1984
2020
|
logger.logger.debug("[codex]: client.connect done");
|
|
1985
2021
|
try {
|
|
1986
2022
|
discoveredModels = await client$1.listModels();
|
|
1987
|
-
|
|
2023
|
+
let configured = null;
|
|
2024
|
+
try {
|
|
2025
|
+
configured = { model: await client$1.readConfiguredModel(process.cwd()) };
|
|
2026
|
+
} catch (error) {
|
|
2027
|
+
logger.logger.debug("[Codex] config/read unavailable", safeCodexErrorMetadata(error));
|
|
2028
|
+
}
|
|
2029
|
+
if (discoveredModels.length > 0 || configured) {
|
|
1988
2030
|
session.updateMetadata((metadata2) => ({
|
|
1989
2031
|
...metadata2,
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
2032
|
+
...discoveredModels.length > 0 ? {
|
|
2033
|
+
models: discoveredModels.map((model) => ({
|
|
2034
|
+
code: model.model,
|
|
2035
|
+
value: model.displayName,
|
|
2036
|
+
description: model.description,
|
|
2037
|
+
reasoningEfforts: model.supportedReasoningEfforts.map((option) => option.reasoningEffort),
|
|
2038
|
+
defaultReasoningEffort: model.defaultReasoningEffort
|
|
2039
|
+
}))
|
|
2040
|
+
} : {},
|
|
2041
|
+
defaultModelCode: configured?.model ?? discoveredModels.find((model) => model.isDefault)?.model,
|
|
2042
|
+
...configured ? { configuredModel: configured.model } : {}
|
|
1998
2043
|
}));
|
|
1999
2044
|
}
|
|
2000
2045
|
} catch (error) {
|
|
@@ -2155,7 +2200,20 @@ async function runCodex(opts) {
|
|
|
2155
2200
|
continue;
|
|
2156
2201
|
}
|
|
2157
2202
|
messageBuffer.addMessage(message.message, "user");
|
|
2203
|
+
const compactCommand = codexCompactCommand(message.message);
|
|
2158
2204
|
try {
|
|
2205
|
+
if (compactCommand !== null) {
|
|
2206
|
+
await client$1.ensureConnected();
|
|
2207
|
+
const outcome = await runCodexCompact(compactCommand, {
|
|
2208
|
+
client: client$1,
|
|
2209
|
+
notify: (text) => {
|
|
2210
|
+
messageBuffer.addMessage(text, "status");
|
|
2211
|
+
session.sendSessionEvent({ type: "message", message: text });
|
|
2212
|
+
}
|
|
2213
|
+
});
|
|
2214
|
+
logger.logger.debug(`[Codex] /compact ${outcome}`);
|
|
2215
|
+
continue;
|
|
2216
|
+
}
|
|
2159
2217
|
await client$1.ensureConnected();
|
|
2160
2218
|
const sandboxManagedByHappy = client$1.sandboxEnabled;
|
|
2161
2219
|
const executionPolicy = resolveCodexExecutionPolicy(
|