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.
Files changed (196) hide show
  1. package/dist/{AcpBackend-B2-ReWTo.cjs → AcpBackend-DRPJ2g9G.cjs} +3 -3
  2. package/dist/{AcpBackend-C4Emg-H3.mjs → AcpBackend-fj16v_cf.mjs} +3 -3
  3. package/dist/{AcpSessionManager-Nard_zFS.mjs → AcpSessionManager-BZPmUDL5.mjs} +4 -4
  4. package/dist/{AcpSessionManager-DR4-oZCz.cjs → AcpSessionManager-DM-KKg6v.cjs} +4 -4
  5. package/dist/{BasePermissionHandler-Bk9DmVZH.mjs → BasePermissionHandler-CVtH-snr.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-CZ19WzsP.cjs → BasePermissionHandler-DjM16uJz.cjs} +1 -1
  7. package/dist/{acpSessionResume-Hto_b8MK.cjs → acpSessionResume-2BTMsB7_.cjs} +1 -1
  8. package/dist/{acpSessionResume-DPSfMe7r.mjs → acpSessionResume-Dxl1LRAT.mjs} +1 -1
  9. package/dist/{agentHome-4-odnrAk.mjs → agentHome-CHctmMzZ.mjs} +4 -4
  10. package/dist/{agentHome-Mveyfa24.cjs → agentHome-W17n1gnH.cjs} +4 -4
  11. package/dist/{api-cVvbFZVK.mjs → api-B0yN68XH.mjs} +10 -10
  12. package/dist/{api-DVEzYcoy.cjs → api-BDuuyys8.cjs} +10 -10
  13. package/dist/{apiMachine-Bd1C_JN6.cjs → apiMachine-iddD-F19.cjs} +14 -14
  14. package/dist/{apiMachine-M7qY1izH.mjs → apiMachine-mc9CsKuS.mjs} +14 -14
  15. package/dist/{attachmentContent-D8hViGiA.cjs → attachmentContent-Cc5b7TPr.cjs} +2 -2
  16. package/dist/{attachmentContent-NNF-Eo4O.mjs → attachmentContent-CcIdMfAx.mjs} +2 -2
  17. package/dist/{auth-BHw8be0X.cjs → auth-B7tVmyfX.cjs} +8 -8
  18. package/dist/{auth-BCHL8Fx5.mjs → auth-CyrVvWHF.mjs} +5 -5
  19. package/dist/{auth-CKNEKwEV.mjs → auth-DNAgkUkB.mjs} +8 -8
  20. package/dist/{auth-b_1h0677.cjs → auth-DQKSpaEf.cjs} +5 -5
  21. package/dist/{auto-D716QYa3.mjs → auto-BklCipw1.mjs} +18 -17
  22. package/dist/{auto-Da4rCLal.cjs → auto-CetlumDo.cjs} +18 -17
  23. package/dist/{bootstrap-j2RuoHVy.cjs → bootstrap-CDY-Vz8q.cjs} +2 -2
  24. package/dist/{bootstrap-CndcegDb.mjs → bootstrap-DfXwkUQb.mjs} +2 -2
  25. package/dist/{browser-DIYTnD_T.cjs → browser-D1yzC0Tu.cjs} +1 -1
  26. package/dist/{browser-CLsM513o.mjs → browser-vb0k1zfI.mjs} +1 -1
  27. package/dist/{claudeLocal-C_uUbEO_.cjs → claudeLocal-2dJIiTIq.cjs} +5 -5
  28. package/dist/{claudeLocal-3HbTx7K-.mjs → claudeLocal-Bid_rC_v.mjs} +5 -5
  29. package/dist/{claudeLocalLauncher-DXh2chq3.mjs → claudeLocalLauncher-5pzpETxd.mjs} +10 -10
  30. package/dist/{claudeLocalLauncher-BxWouVYk.cjs → claudeLocalLauncher-Jm5oQX5Z.cjs} +10 -10
  31. package/dist/{claudeSessionFork-CsU96yXX.cjs → claudeSessionFork-DsbcuDEJ.cjs} +1 -1
  32. package/dist/{claudeSessionFork-B4olbwfj.mjs → claudeSessionFork-DzecSBO4.mjs} +1 -1
  33. package/dist/{client-C8w9aQYe.mjs → client-B161HwAk.mjs} +2 -2
  34. package/dist/{client-CCy72Phz.cjs → client-BNmFaRXZ.cjs} +4 -4
  35. package/dist/{client-D8p1YjVt.mjs → client-C9Ecbtko.mjs} +4 -4
  36. package/dist/{client-Zqg7DXHl.mjs → client-CvjjadIE.mjs} +2 -2
  37. package/dist/{client-CWSfPlGD.cjs → client-D0aYWt53.cjs} +2 -2
  38. package/dist/{client-q1aNOKgy.cjs → client-DIfxYk7B.cjs} +2 -2
  39. package/dist/codex/happyMcpStdioBridge.cjs +17 -16
  40. package/dist/codex/happyMcpStdioBridge.mjs +17 -16
  41. package/dist/{codexAppServerClient-Csc-XsRV.mjs → codexAppServerClient-BlVmpjR-.mjs} +63 -5
  42. package/dist/{codexAppServerClient-g8npaIU9.cjs → codexAppServerClient-CO9f4Jr8.cjs} +63 -5
  43. package/dist/{codexCommand-BV8pTAtv.cjs → codexCommand-BfoRP6E9.cjs} +189 -68
  44. package/dist/{codexCommand-BS-foS_R.mjs → codexCommand-CAMR4g5o.mjs} +188 -67
  45. package/dist/{codexTermination-lOO15mt2.mjs → codexTermination-BvGlN02_.mjs} +1 -1
  46. package/dist/{codexTermination-B5WgZAWO.cjs → codexTermination-IrLZQzKC.cjs} +1 -1
  47. package/dist/{config-BOnZRJIG.cjs → config-BGFqQGvh.cjs} +3 -3
  48. package/dist/{config-Ba5ufl-D.mjs → config-CtMgGPvf.mjs} +3 -3
  49. package/dist/{configuration-8EAa2X9P.mjs → configuration-1FabKklB.mjs} +1 -1
  50. package/dist/{configuration-CAfdO4IC.cjs → configuration-C0ctLGW2.cjs} +1 -1
  51. package/dist/{connect-BHWHNe54.mjs → connect-0lSugpjf.mjs} +13 -13
  52. package/dist/{connect-2hWuvxRM.cjs → connect-DSw-2f52.cjs} +13 -13
  53. package/dist/{context-B-jybQhf.mjs → context-BgxbXWKS.mjs} +1 -1
  54. package/dist/{context-BtCz06PX.cjs → context-D-hEk5pC.cjs} +1 -1
  55. package/dist/{controlClient-O-vf2MkJ.mjs → controlClient-DwNnNAUx.mjs} +4 -4
  56. package/dist/{controlClient-mH9AxBwT.cjs → controlClient-F7hAEEy2.cjs} +3 -3
  57. package/dist/{createSessionMetadata-HlzlfP0U.mjs → createSessionMetadata-CG6Klinp.mjs} +2 -2
  58. package/dist/{createSessionMetadata-Bcn7b8QB.cjs → createSessionMetadata-DezS33OM.cjs} +2 -2
  59. package/dist/{defaultPermissionMode-BN3PdltF.cjs → defaultPermissionMode-5EvgRq38.cjs} +2 -2
  60. package/dist/{defaultPermissionMode-BPDeX4S8.mjs → defaultPermissionMode-e2bIIJG4.mjs} +2 -2
  61. package/dist/{deterministicJson-CruOxFA6.mjs → deterministicJson-BMwgK21e.mjs} +13 -13
  62. package/dist/{deterministicJson-D9pZQhU9.cjs → deterministicJson-D0LU_XbO.cjs} +13 -13
  63. package/dist/{doctor-BNhLBBTK.mjs → doctor-D16hySse.mjs} +7 -7
  64. package/dist/{doctor-lHD1YZH6.cjs → doctor-wVNvRarN.cjs} +7 -7
  65. package/dist/{downloadTarget-ByTxs_N5.mjs → downloadTarget-C6tqaXGm.mjs} +6 -6
  66. package/dist/{downloadTarget-BhkQxTa8.cjs → downloadTarget-aNcCxVRL.cjs} +6 -6
  67. package/dist/{ensureDaemonRunning-BiCK6RiS.cjs → ensureDaemonRunning-CIghxgDR.cjs} +5 -5
  68. package/dist/{ensureDaemonRunning-Cv0AMaHK.mjs → ensureDaemonRunning-DZq8bvsp.mjs} +5 -5
  69. package/dist/{handleResumeCommand-Cy_KW0LN.mjs → handleResumeCommand-BNnD7EuD.mjs} +5 -5
  70. package/dist/{handleResumeCommand-WB4VDeKk.cjs → handleResumeCommand-CMUTygsm.cjs} +5 -5
  71. package/dist/{index-BpWESchl.cjs → index-4TpmBb2Q.cjs} +3 -3
  72. package/dist/{index-Vtcax4oD.cjs → index-B81qV_F_.cjs} +4 -4
  73. package/dist/{index-CVMbboXv.mjs → index-BCQr-5Ei.mjs} +4 -4
  74. package/dist/{index-BumVulwx.cjs → index-BOe6dKnL.cjs} +215 -18
  75. package/dist/{index-CdOz1uDl.mjs → index-BuiG8hmg.mjs} +94 -45
  76. package/dist/{index-BpSpw6jG.mjs → index-CKd20r1W.mjs} +3 -3
  77. package/dist/{index-B44ft-m4.cjs → index-CnzsOD19.cjs} +93 -44
  78. package/dist/{index-Bcp-PEGc.cjs → index-De02DNu5.cjs} +4 -4
  79. package/dist/{index-lWXWV0H2.mjs → index-Df0bc_et.mjs} +4 -4
  80. package/dist/{index-B9f1vKcC.mjs → index-WKyN-bNy.mjs} +212 -17
  81. package/dist/index.cjs +2 -2
  82. package/dist/index.mjs +2 -2
  83. package/dist/{install-mK93DJ6L.mjs → install-23ehAdTD.mjs} +3 -3
  84. package/dist/{install-DdRVv9IS.cjs → install-DNbIEJUk.cjs} +3 -3
  85. package/dist/lib.cjs +12 -12
  86. package/dist/lib.d.cts +14 -0
  87. package/dist/lib.d.mts +14 -0
  88. package/dist/lib.mjs +12 -12
  89. package/dist/{lidState-XyjQaZtU.cjs → lidState-B4dHJCeS.cjs} +1 -1
  90. package/dist/{lidState-LtdUCXi-.mjs → lidState-q5Its2Hm.mjs} +1 -1
  91. package/dist/{localHappyAgentAuth-C9Aj_wGD.cjs → localHappyAgentAuth-CG2nPD_H.cjs} +1 -1
  92. package/dist/{localHappyAgentAuth-DqFE0Adr.mjs → localHappyAgentAuth-C_G5u5lY.mjs} +1 -1
  93. package/dist/{logger-BILSzq2s.cjs → logger-BP1SW7Cs.cjs} +2 -2
  94. package/dist/{logger-SAU4uSs4.mjs → logger-DOKH3Zbh.mjs} +2 -2
  95. package/dist/{machineMetadata-C5TgUTpD.cjs → machineMetadata-BKX3ov9g.cjs} +3 -3
  96. package/dist/{machineMetadata-ZVnihOuL.mjs → machineMetadata-D-5qeIqd.mjs} +3 -3
  97. package/dist/{main-BjOHtX8u.mjs → main-DODz8DQE.mjs} +46 -46
  98. package/dist/{main-CVfx_-l7.cjs → main-ndpVIaSG.cjs} +46 -46
  99. package/dist/{mcp-CWVr7KbQ.mjs → mcp-BBwbSODp.mjs} +16 -15
  100. package/dist/{mcp-By9XK193.cjs → mcp-Bc4U4exu.cjs} +16 -15
  101. package/dist/{mirrorProtocol-C0wyaesn.cjs → mirrorProtocol-CiA3hO2y.cjs} +3 -3
  102. package/dist/{mirrorProtocol-BI6XbokT.mjs → mirrorProtocol-D2vTWteS.mjs} +3 -3
  103. package/dist/{package-Bbfq2KR7.cjs → package-CYDdLA6R.cjs} +7 -7
  104. package/dist/{package-BMBwnCn3.mjs → package-DTcaIhjW.mjs} +7 -7
  105. package/dist/{panels-rQmysHlY.cjs → panels-C2xZ8rqU.cjs} +5 -5
  106. package/dist/{panels-CbIUwV6q.mjs → panels-DCaLxlSL.mjs} +5 -5
  107. package/dist/{peerTools-CZfiq_Dx.cjs → peerTools-B4315xjX.cjs} +5 -5
  108. package/dist/{peerTools-CyruQrOo.mjs → peerTools-BtrUnSwz.mjs} +5 -5
  109. package/dist/{persistence-C7T3HYjq.mjs → persistence-0INrP3aB.mjs} +2 -2
  110. package/dist/{persistence-DPeSC0SK.cjs → persistence-CrzC7yr_.cjs} +2 -2
  111. package/dist/{piRunnerArgs-DAq8vIpP.cjs → piRunnerArgs-BtzW_kfh.cjs} +1 -1
  112. package/dist/{piRunnerArgs-CsWompo8.mjs → piRunnerArgs-DRuxMlX1.mjs} +1 -1
  113. package/dist/{piRuntime-Dxd8Gfun.mjs → piRuntime-BMAFpIBV.mjs} +1 -1
  114. package/dist/{piRuntime-CFqlQFoz.cjs → piRuntime-DEbPE_kW.cjs} +1 -1
  115. package/dist/{piTerminal-BssuKDtJ.mjs → piTerminal-DQXV8_we.mjs} +18 -17
  116. package/dist/{piTerminal-DHG3Kzve.cjs → piTerminal-MtxDtBE2.cjs} +18 -17
  117. package/dist/{pushNotifications-CsSyhnHu.cjs → pushNotifications-CalIS9sq.cjs} +3 -3
  118. package/dist/{pushNotifications-Bi72c41d.mjs → pushNotifications-Cq1s8YVK.mjs} +3 -3
  119. package/dist/{query-BQOwsKS1.mjs → query-BYiPBHPC.mjs} +1 -1
  120. package/dist/{query-Cuef299f.cjs → query-CE2XDhhw.cjs} +1 -1
  121. package/dist/{specialCommands-35KxDNE8.cjs → rateLimitReporter-BKmoOZQi.cjs} +3 -55
  122. package/dist/{specialCommands-CTtmGCCf.mjs → rateLimitReporter-DR5LXuiQ.mjs} +4 -55
  123. package/dist/{rateLimitWindows-B6IAWYN5.mjs → rateLimitWindows-5vIuNjko.mjs} +1 -1
  124. package/dist/{rateLimitWindows-bfwC81Z-.cjs → rateLimitWindows-Cs56YJCH.cjs} +1 -1
  125. package/dist/{registerCommonHandlers-qzb6TQqo.mjs → registerCommonHandlers-DWkTysjD.mjs} +2 -2
  126. package/dist/{registerCommonHandlers-CQC04iF3.cjs → registerCommonHandlers-DZPozYxc.cjs} +2 -2
  127. package/dist/{registerKillSessionHandler-DMPrrNKX.mjs → registerKillSessionHandler-CSCTRIbI.mjs} +34 -6
  128. package/dist/{registerKillSessionHandler-BraKB5Ks.cjs → registerKillSessionHandler-DhCjrs44.cjs} +34 -6
  129. package/dist/{remoteSessionClient-DffolBcQ.cjs → remoteSessionClient-Dq8XTLQP.cjs} +5 -5
  130. package/dist/{remoteSessionClient-D3XhN_sd.mjs → remoteSessionClient-Vfj_5g2-.mjs} +5 -5
  131. package/dist/{reportProgressTool-irHR-XEW.mjs → reportProgressTool-B7zmX7NJ.mjs} +3 -3
  132. package/dist/{reportProgressTool-BieTXE_R.cjs → reportProgressTool-DznxPKES.cjs} +3 -3
  133. package/dist/{run-Ck_WA6Nj.cjs → run-Ca8BiNCp.cjs} +36 -35
  134. package/dist/{run-DCUaxe2S.mjs → run-DSfNcR62.mjs} +36 -35
  135. package/dist/{runClaude-BUGku2Qp.cjs → runClaude-ClQQcgoO.cjs} +22 -22
  136. package/dist/{runClaude-BryAvfNV.mjs → runClaude-hoepv-0X.mjs} +22 -22
  137. package/dist/{runClaudeDeps-BZkWM9_u.mjs → runClaudeDeps-D_v8t2SK.mjs} +88 -55
  138. package/dist/{runClaudeDeps-Dbk1VrOW.cjs → runClaudeDeps-ck5_GYlP.cjs} +85 -52
  139. package/dist/{runGemini-DT379gpi.mjs → runGemini-CTr2-cYG.mjs} +38 -33
  140. package/dist/{runGemini-B6AZ2bv0.cjs → runGemini-Cj0XsMiM.cjs} +38 -33
  141. package/dist/{runOpenClaw-eBUYlIVJ.cjs → runOpenClaw-BoN1e3lP.cjs} +23 -18
  142. package/dist/{runOpenClaw-Bpp9mkyO.mjs → runOpenClaw-CdDMntiV.mjs} +23 -18
  143. package/dist/{sandbox-Bv4H1P6u.cjs → sandbox-BY2h19gc.cjs} +4 -4
  144. package/dist/{sandbox-Z8TM9eUg.mjs → sandbox-DcaWB-Ou.mjs} +4 -4
  145. package/dist/selfCheck-BQ_H2Sns.mjs +86 -0
  146. package/dist/{selfCheck--1k2Ptf6.cjs → selfCheck-DFS_GUaQ.cjs} +37 -37
  147. package/dist/{send-BG4KYe6f.cjs → send-BMsUYU6g.cjs} +9 -8
  148. package/dist/{send-CKTovWuQ.mjs → send-UBTHHNvZ.mjs} +9 -8
  149. package/dist/{server-DLpXtoiZ.mjs → server-Dt3mCtfQ.mjs} +4 -4
  150. package/dist/{server-BTNwH-sA.cjs → server-YrHMHNz1.cjs} +6 -6
  151. package/dist/{sessionLock-Cf6RlgfF.cjs → sessionLock-DSqiP2lH.cjs} +3 -3
  152. package/dist/{sessionLock-DhzB5ZI9.mjs → sessionLock-tEFvFXLD.mjs} +3 -3
  153. package/dist/{sessionOps-R52JWMnX.cjs → sessionOps-BzeOKIEF.cjs} +27 -4
  154. package/dist/{sessionOps-CiFjBCMa.mjs → sessionOps-CljctDs5.mjs} +27 -4
  155. package/dist/{sessionProvider-f2tUhwBc.mjs → sessionProvider-BnUFSJXM.mjs} +5 -5
  156. package/dist/{sessionProvider-LATn-lZL.cjs → sessionProvider-ORgzmkXy.cjs} +5 -5
  157. package/dist/{sessionScanner-DRzZtGtu.cjs → sessionScanner-Cr6PJ3PT.cjs} +3 -3
  158. package/dist/{sessionScanner-lS1puA5H.mjs → sessionScanner-DZUlkdF6.mjs} +3 -3
  159. package/dist/{sessions-D01nnjOE.mjs → sessions-15cag-su.mjs} +11 -10
  160. package/dist/{sessions-DGd8Fin6.cjs → sessions-aIo_HjmY.cjs} +11 -10
  161. package/dist/{setupOfflineReconnection-UApZjcU5.mjs → setupOfflineReconnection-B7I8R2Ex.mjs} +2 -2
  162. package/dist/{setupOfflineReconnection-Ds7ywGwR.cjs → setupOfflineReconnection-tV0Q1dgR.cjs} +2 -2
  163. package/dist/{spawn-ct8aSMA8.mjs → spawn-ByrQgruJ.mjs} +70 -28
  164. package/dist/{spawn-CT3g4p8A.cjs → spawn-VG-HjJiR.cjs} +70 -27
  165. package/dist/{spawnAgents-f2q31uUV.mjs → spawnAgents-Bh1RPShN.mjs} +24 -11
  166. package/dist/{spawnAgents-DsJSyLDl.cjs → spawnAgents-C1-4m7aN.cjs} +24 -10
  167. package/dist/{spawnHappyCLI-Dp05fHcp.mjs → spawnHappyCLI-CEsXwz5V.mjs} +1 -1
  168. package/dist/{spawnHappyCLI-DedrWByd.cjs → spawnHappyCLI-CxiR2Qoy.cjs} +1 -1
  169. package/dist/specialCommands-J3JFOq0J.cjs +60 -0
  170. package/dist/specialCommands-MXUN0wfI.mjs +54 -0
  171. package/dist/{startFileWatcher-72w11DP_.cjs → startFileWatcher-C-XCZ5t2.cjs} +1 -1
  172. package/dist/{startFileWatcher-BLdxJdgu.mjs → startFileWatcher-DkEeeAtL.mjs} +1 -1
  173. package/dist/{startupSessionCreate-Cy4J4-Ep.cjs → startupSessionCreate-CYc8mra-.cjs} +1 -1
  174. package/dist/{startupSessionCreate-CJFR_Zom.mjs → startupSessionCreate-npXe2TdN.mjs} +1 -1
  175. package/dist/{streamRelay-B3FloUTT.mjs → streamRelay-CqBynIon.mjs} +1 -1
  176. package/dist/{streamRelay-Cn_uGG6m.cjs → streamRelay-D9a4cBEa.cjs} +1 -1
  177. package/dist/{sync-BWX1OVQi.mjs → sync-BvDMkKAN.mjs} +1 -1
  178. package/dist/{sync-lxDpbIh3.cjs → sync-CoChLEIg.cjs} +1 -1
  179. package/dist/{systemPrompt-BIilbjt_.mjs → systemPrompt-CgDaPigN.mjs} +2 -2
  180. package/dist/{systemPrompt-0DqWPGY6.cjs → systemPrompt-Dy_Rf-0Z.cjs} +2 -2
  181. package/dist/{teams-CvpB8Rdm.mjs → teams-BC4_e5hR.mjs} +7 -7
  182. package/dist/{teams-CImmJLlM.cjs → teams-DPvfLAk8.cjs} +7 -7
  183. package/dist/{template-DPsqlHJQ.cjs → template-17HATY_Y.cjs} +1 -1
  184. package/dist/{template-DuKZw-Sz.mjs → template-CEK8MEjo.mjs} +1 -1
  185. package/dist/{time-DjS5me2q.mjs → time-CUK37wiV.mjs} +1 -1
  186. package/dist/{time-BbQJi3Eh.cjs → time-XwEZxKGc.cjs} +1 -1
  187. package/dist/{titleGenerator-CfJme6ep.cjs → titleGenerator-DVX0NZUn.cjs} +2 -2
  188. package/dist/{titleGenerator-CGdBp5lQ.mjs → titleGenerator-DWRVdqMU.mjs} +1 -1
  189. package/dist/{todo-BxfUKwTM.mjs → todo-BNMGXneA.mjs} +6 -6
  190. package/dist/{todo-rN20m9lT.cjs → todo-CKGrSrRE.cjs} +6 -6
  191. package/dist/{tools-B_W7xJNh.mjs → tools-CCIEAVbB.mjs} +1 -1
  192. package/dist/{tools-kGtSjG8h.cjs → tools-CjMafO_D.cjs} +1 -1
  193. package/dist/{uninstall-CBQsxEmD.cjs → uninstall-BdFbTXnL.cjs} +3 -3
  194. package/dist/{uninstall-DUjvgLlg.mjs → uninstall-CJvJ7gjr.mjs} +3 -3
  195. package/package.json +7 -7
  196. package/dist/selfCheck-DIGghfQz.mjs +0 -86
@@ -1,107 +1,108 @@
1
1
  'use strict';
2
2
 
3
- var auth = require('./auth-b_1h0677.cjs');
4
- var index = require('./index-BumVulwx.cjs');
5
- var deterministicJson = require('./deterministicJson-D9pZQhU9.cjs');
6
- var client = require('./client-q1aNOKgy.cjs');
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-DVEzYcoy.cjs');
11
+ var api = require('./api-BDuuyys8.cjs');
12
12
  var agentAttachments = require('./agentAttachments-Dbw8iMCZ.cjs');
13
- var attachmentContent = require('./attachmentContent-D8hViGiA.cjs');
13
+ var attachmentContent = require('./attachmentContent-Cc5b7TPr.cjs');
14
14
  var ink = require('ink');
15
- var sessionLock = require('./sessionLock-Cf6RlgfF.cjs');
15
+ var sessionLock = require('./sessionLock-DSqiP2lH.cjs');
16
16
  var React = require('react');
17
- var codexAppServerClient = require('./codexAppServerClient-g8npaIU9.cjs');
18
- var specialCommands = require('./specialCommands-35KxDNE8.cjs');
19
- var logger = require('./logger-BILSzq2s.cjs');
20
- var BasePermissionHandler = require('./BasePermissionHandler-CZ19WzsP.cjs');
21
- var codexTermination = require('./codexTermination-B5WgZAWO.cjs');
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-DPeSC0SK.cjs');
24
- var machineMetadata = require('./machineMetadata-C5TgUTpD.cjs');
25
- var configuration = require('./configuration-CAfdO4IC.cjs');
26
- var registerKillSessionHandler = require('./registerKillSessionHandler-BraKB5Ks.cjs');
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-Bcn7b8QB.cjs');
29
+ var createSessionMetadata = require('./createSessionMetadata-DezS33OM.cjs');
30
30
  var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
31
- var controlClient = require('./controlClient-mH9AxBwT.cjs');
32
- var defaultPermissionMode = require('./defaultPermissionMode-BN3PdltF.cjs');
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-Ds7ywGwR.cjs');
35
- var startupSessionCreate = require('./startupSessionCreate-Cy4J4-Ep.cjs');
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-BiCK6RiS.cjs');
40
+ var ensureDaemonRunning = require('./ensureDaemonRunning-CIghxgDR.cjs');
40
41
  require('tweetnacl');
41
42
  require('axios');
42
- require('./time-BbQJi3Eh.cjs');
43
- require('./browser-DIYTnD_T.cjs');
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-BieTXE_R.cjs');
48
- require('./client-CWSfPlGD.cjs');
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-CCy72Phz.cjs');
56
+ require('./client-BNmFaRXZ.cjs');
56
57
  require('node:util');
57
- require('./context-BtCz06PX.cjs');
58
- require('./sessionOps-R52JWMnX.cjs');
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-kGtSjG8h.cjs');
63
- require('./peerTools-CZfiq_Dx.cjs');
63
+ require('./tools-CjMafO_D.cjs');
64
+ require('./peerTools-B4315xjX.cjs');
64
65
  require('./ids-B6ZC0HGt.cjs');
65
- require('./remoteSessionClient-DffolBcQ.cjs');
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-BhkQxTa8.cjs');
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-j2RuoHVy.cjs');
75
- require('./package-Bbfq2KR7.cjs');
75
+ require('./bootstrap-CDY-Vz8q.cjs');
76
+ require('./package-CYDdLA6R.cjs');
76
77
  require('./webPanels-FCgFKvVe.cjs');
77
- require('./pushNotifications-CsSyhnHu.cjs');
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-XyjQaZtU.cjs');
82
+ require('./lidState-B4dHJCeS.cjs');
82
83
  require('os');
83
84
  require('child_process');
84
85
  require('node:events');
85
- require('./registerCommonHandlers-CQC04iF3.cjs');
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-lxDpbIh3.cjs');
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-bfwC81Z-.cjs');
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-C9Aj_wGD.cjs');
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-DedrWByd.cjs');
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 DEFAULT_CODEX_MODEL = "gpt-5.5";
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
- "default",
1569
- "read-only",
1570
- "safe-yolo",
1571
- "yolo"
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" && !isCodexClearText(message.content.text)) {
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("[Codex] /clear command pushed to isolated queue");
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) => specialCommands.wrapperRateLimitReporter().observeCodex(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
- if (discoveredModels.length > 0) {
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
- models: discoveredModels.map((model) => ({
1991
- code: model.model,
1992
- value: model.displayName,
1993
- description: model.description,
1994
- reasoningEfforts: model.supportedReasoningEfforts.map((option) => option.reasoningEffort),
1995
- defaultReasoningEffort: model.defaultReasoningEffort
1996
- })),
1997
- defaultModelCode: discoveredModels.find((model) => model.isDefault)?.model
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 effortRefusal = unsupportedEffortReason(discoveredModels, message.mode.model, message.mode.effort);
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: message.mode.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: message.mode.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;