very-happy-cli 0.2.187 → 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.
Files changed (194) hide show
  1. package/dist/{AcpBackend-C4Emg-H3.mjs → AcpBackend-2loP7MpF.mjs} +3 -3
  2. package/dist/{AcpBackend-B2-ReWTo.cjs → AcpBackend-B8AYkp5n.cjs} +3 -3
  3. package/dist/{AcpSessionManager-Nard_zFS.mjs → AcpSessionManager-C17doAoR.mjs} +2 -2
  4. package/dist/{AcpSessionManager-DR4-oZCz.cjs → AcpSessionManager-CLqo9R9Y.cjs} +2 -2
  5. package/dist/{BasePermissionHandler-CZ19WzsP.cjs → BasePermissionHandler-C8UEcFz0.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-Bk9DmVZH.mjs → BasePermissionHandler-CrfyUmqO.mjs} +1 -1
  7. package/dist/{acpSessionResume-DPSfMe7r.mjs → acpSessionResume-F705a1cF.mjs} +1 -1
  8. package/dist/{acpSessionResume-Hto_b8MK.cjs → acpSessionResume-OuYlLGxL.cjs} +1 -1
  9. package/dist/{agentHome-4-odnrAk.mjs → agentHome-Dc7LYF3d.mjs} +4 -4
  10. package/dist/{agentHome-Mveyfa24.cjs → agentHome-DsKHJ_Sf.cjs} +4 -4
  11. package/dist/{api-DVEzYcoy.cjs → api-BOqjYd5r.cjs} +10 -10
  12. package/dist/{api-cVvbFZVK.mjs → api-DNKa7kVy.mjs} +10 -10
  13. package/dist/{apiMachine-Bd1C_JN6.cjs → apiMachine--rcPpMmt.cjs} +14 -14
  14. package/dist/{apiMachine-M7qY1izH.mjs → apiMachine-Di1G9ECW.mjs} +14 -14
  15. package/dist/{attachmentContent-D8hViGiA.cjs → attachmentContent-BFRMLong.cjs} +2 -2
  16. package/dist/{attachmentContent-NNF-Eo4O.mjs → attachmentContent-C9S4ekAz.mjs} +2 -2
  17. package/dist/{auth-BCHL8Fx5.mjs → auth-BNhhk2Fr.mjs} +5 -5
  18. package/dist/{auth-CKNEKwEV.mjs → auth-Bzwo_vOM.mjs} +8 -8
  19. package/dist/{auth-BHw8be0X.cjs → auth-CQtfznF0.cjs} +8 -8
  20. package/dist/{auth-b_1h0677.cjs → auth-CXmI92aj.cjs} +5 -5
  21. package/dist/{auto-D716QYa3.mjs → auto-DHYOLnXB.mjs} +17 -17
  22. package/dist/{auto-Da4rCLal.cjs → auto-DXLdaX5O.cjs} +17 -17
  23. package/dist/{bootstrap-CndcegDb.mjs → bootstrap-Di38SnpN.mjs} +2 -2
  24. package/dist/{bootstrap-j2RuoHVy.cjs → bootstrap-eJ1l7VYl.cjs} +2 -2
  25. package/dist/{browser-CLsM513o.mjs → browser-6Cg7G6bb.mjs} +1 -1
  26. package/dist/{browser-DIYTnD_T.cjs → browser-D3uBFRQu.cjs} +1 -1
  27. package/dist/{claudeLocal-C_uUbEO_.cjs → claudeLocal-BBaE4QF_.cjs} +5 -5
  28. package/dist/{claudeLocal-3HbTx7K-.mjs → claudeLocal-CqaEs-81.mjs} +5 -5
  29. package/dist/{claudeLocalLauncher-DXh2chq3.mjs → claudeLocalLauncher-BDUPxtsI.mjs} +10 -10
  30. package/dist/{claudeLocalLauncher-BxWouVYk.cjs → claudeLocalLauncher-wPxKtH_P.cjs} +10 -10
  31. package/dist/{claudeSessionFork-CsU96yXX.cjs → claudeSessionFork-CmY25Fl3.cjs} +1 -1
  32. package/dist/{claudeSessionFork-B4olbwfj.mjs → claudeSessionFork-DzWFzj9m.mjs} +1 -1
  33. package/dist/{client-CCy72Phz.cjs → client-C2HcMqRF.cjs} +4 -4
  34. package/dist/{client-C8w9aQYe.mjs → client-DWws_aQK.mjs} +2 -2
  35. package/dist/{client-Zqg7DXHl.mjs → client-DcDE6Ifk.mjs} +2 -2
  36. package/dist/{client-CWSfPlGD.cjs → client-DmY03OZZ.cjs} +2 -2
  37. package/dist/{client-q1aNOKgy.cjs → client-agH03Irm.cjs} +2 -2
  38. package/dist/{client-D8p1YjVt.mjs → client-qJ0y8fus.mjs} +4 -4
  39. package/dist/codex/happyMcpStdioBridge.cjs +16 -16
  40. package/dist/codex/happyMcpStdioBridge.mjs +16 -16
  41. package/dist/{codexAppServerClient-Csc-XsRV.mjs → codexAppServerClient-DgE99i7X.mjs} +39 -5
  42. package/dist/{codexAppServerClient-g8npaIU9.cjs → codexAppServerClient-DwzC8LR0.cjs} +39 -5
  43. package/dist/{codexCommand-BV8pTAtv.cjs → codexCommand-1vFEA1KT.cjs} +117 -59
  44. package/dist/{codexCommand-BS-foS_R.mjs → codexCommand-DUSVzbKh.mjs} +114 -56
  45. package/dist/{codexTermination-lOO15mt2.mjs → codexTermination-Bybovr2z.mjs} +1 -1
  46. package/dist/{codexTermination-B5WgZAWO.cjs → codexTermination-DuDPyBRR.cjs} +1 -1
  47. package/dist/{config-Ba5ufl-D.mjs → config-BrzZ0O-6.mjs} +3 -3
  48. package/dist/{config-BOnZRJIG.cjs → config-C4xOL5bH.cjs} +3 -3
  49. package/dist/{configuration-8EAa2X9P.mjs → configuration-BZHpFD7K.mjs} +1 -1
  50. package/dist/{configuration-CAfdO4IC.cjs → configuration-DyPW9mVa.cjs} +1 -1
  51. package/dist/{connect-BHWHNe54.mjs → connect-Cw_INlj8.mjs} +13 -13
  52. package/dist/{connect-2hWuvxRM.cjs → connect-DurKwMEo.cjs} +13 -13
  53. package/dist/{context-BtCz06PX.cjs → context-2xDvjkQp.cjs} +1 -1
  54. package/dist/{context-B-jybQhf.mjs → context-t7YV0aZc.mjs} +1 -1
  55. package/dist/{controlClient-O-vf2MkJ.mjs → controlClient-Bw56NIrj.mjs} +4 -4
  56. package/dist/{controlClient-mH9AxBwT.cjs → controlClient-DvFaPsg6.cjs} +3 -3
  57. package/dist/{createSessionMetadata-HlzlfP0U.mjs → createSessionMetadata-Dn5BkLfU.mjs} +2 -2
  58. package/dist/{createSessionMetadata-Bcn7b8QB.cjs → createSessionMetadata-Dpg6bV6f.cjs} +2 -2
  59. package/dist/{defaultPermissionMode-BPDeX4S8.mjs → defaultPermissionMode-DMTnlccv.mjs} +2 -2
  60. package/dist/{defaultPermissionMode-BN3PdltF.cjs → defaultPermissionMode-Dlm0q1m0.cjs} +2 -2
  61. package/dist/{deterministicJson-CruOxFA6.mjs → deterministicJson-CsRckxVq.mjs} +13 -13
  62. package/dist/{deterministicJson-D9pZQhU9.cjs → deterministicJson-D0BrV1FD.cjs} +13 -13
  63. package/dist/{doctor-BNhLBBTK.mjs → doctor-B4HQiW6j.mjs} +7 -7
  64. package/dist/{doctor-lHD1YZH6.cjs → doctor-CYe4d9kU.cjs} +7 -7
  65. package/dist/{downloadTarget-BhkQxTa8.cjs → downloadTarget-CuhBVvuC.cjs} +6 -6
  66. package/dist/{downloadTarget-ByTxs_N5.mjs → downloadTarget-tYMV_VHo.mjs} +6 -6
  67. package/dist/{ensureDaemonRunning-BiCK6RiS.cjs → ensureDaemonRunning-Ce3BlWiR.cjs} +5 -5
  68. package/dist/{ensureDaemonRunning-Cv0AMaHK.mjs → ensureDaemonRunning-DVtIG9z7.mjs} +5 -5
  69. package/dist/{handleResumeCommand-Cy_KW0LN.mjs → handleResumeCommand-BU1uMNyv.mjs} +5 -5
  70. package/dist/{handleResumeCommand-WB4VDeKk.cjs → handleResumeCommand-CLxsmAW0.cjs} +5 -5
  71. package/dist/{index-BpSpw6jG.mjs → index-B1OxWiNG.mjs} +3 -3
  72. package/dist/{index-BumVulwx.cjs → index-BOe6dKnL.cjs} +215 -18
  73. package/dist/{index-lWXWV0H2.mjs → index-CVHRt3SS.mjs} +4 -4
  74. package/dist/{index-CdOz1uDl.mjs → index-ChX0eVXw.mjs} +91 -45
  75. package/dist/{index-CVMbboXv.mjs → index-DDz0Ftoy.mjs} +4 -4
  76. package/dist/{index-B44ft-m4.cjs → index-DG1kGjkF.cjs} +92 -46
  77. package/dist/{index-BpWESchl.cjs → index-DoXbGEAi.cjs} +3 -3
  78. package/dist/{index-Bcp-PEGc.cjs → index-KwuXqLwe.cjs} +4 -4
  79. package/dist/{index-B9f1vKcC.mjs → index-WKyN-bNy.mjs} +212 -17
  80. package/dist/{index-Vtcax4oD.cjs → index-wWJJAQRk.cjs} +4 -4
  81. package/dist/index.cjs +2 -2
  82. package/dist/index.mjs +2 -2
  83. package/dist/{install-mK93DJ6L.mjs → install-CMa_FOWu.mjs} +3 -3
  84. package/dist/{install-DdRVv9IS.cjs → install-cAYvHxXR.cjs} +3 -3
  85. package/dist/lib.cjs +12 -12
  86. package/dist/lib.d.cts +6 -0
  87. package/dist/lib.d.mts +6 -0
  88. package/dist/lib.mjs +12 -12
  89. package/dist/{lidState-LtdUCXi-.mjs → lidState-D-lsD1FS.mjs} +1 -1
  90. package/dist/{lidState-XyjQaZtU.cjs → lidState-d1vgQ3n7.cjs} +1 -1
  91. package/dist/{localHappyAgentAuth-C9Aj_wGD.cjs → localHappyAgentAuth-DucSnCg3.cjs} +1 -1
  92. package/dist/{localHappyAgentAuth-DqFE0Adr.mjs → localHappyAgentAuth-wvDp-nGj.mjs} +1 -1
  93. package/dist/{logger-BILSzq2s.cjs → logger-C3vZG6Q0.cjs} +2 -2
  94. package/dist/{logger-SAU4uSs4.mjs → logger-RpzJ4d8V.mjs} +2 -2
  95. package/dist/{machineMetadata-C5TgUTpD.cjs → machineMetadata-CAvFq1Jg.cjs} +3 -3
  96. package/dist/{machineMetadata-ZVnihOuL.mjs → machineMetadata-CiQ2_1Mq.mjs} +3 -3
  97. package/dist/{main-CVfx_-l7.cjs → main-ChpYcFZi.cjs} +46 -46
  98. package/dist/{main-BjOHtX8u.mjs → main-IPhaImjm.mjs} +46 -46
  99. package/dist/{mcp-By9XK193.cjs → mcp-2xF232hL.cjs} +15 -15
  100. package/dist/{mcp-CWVr7KbQ.mjs → mcp-CWnMvju6.mjs} +15 -15
  101. package/dist/{mirrorProtocol-C0wyaesn.cjs → mirrorProtocol-CVzPObON.cjs} +3 -3
  102. package/dist/{mirrorProtocol-BI6XbokT.mjs → mirrorProtocol-Dr7fNq8V.mjs} +3 -3
  103. package/dist/{package-BMBwnCn3.mjs → package-CwB8rFJt.mjs} +7 -7
  104. package/dist/{package-Bbfq2KR7.cjs → package-Gnf_935w.cjs} +7 -7
  105. package/dist/{panels-rQmysHlY.cjs → panels-DTlTsndU.cjs} +5 -5
  106. package/dist/{panels-CbIUwV6q.mjs → panels-L1mSkC-y.mjs} +5 -5
  107. package/dist/{peerTools-CyruQrOo.mjs → peerTools-2_8Bw9PU.mjs} +5 -5
  108. package/dist/{peerTools-CZfiq_Dx.cjs → peerTools-C1E5cQ86.cjs} +5 -5
  109. package/dist/{persistence-C7T3HYjq.mjs → persistence-Bn4qEbDg.mjs} +2 -2
  110. package/dist/{persistence-DPeSC0SK.cjs → persistence-CqtjFiD1.cjs} +2 -2
  111. package/dist/{piRunnerArgs-DAq8vIpP.cjs → piRunnerArgs-BI8yQRBZ.cjs} +1 -1
  112. package/dist/{piRunnerArgs-CsWompo8.mjs → piRunnerArgs-DWBb63W9.mjs} +1 -1
  113. package/dist/{piRuntime-CFqlQFoz.cjs → piRuntime--mQ43MSM.cjs} +1 -1
  114. package/dist/{piRuntime-Dxd8Gfun.mjs → piRuntime-Do8oqbm3.mjs} +1 -1
  115. package/dist/{piTerminal-DHG3Kzve.cjs → piTerminal-BzcvLFsP.cjs} +17 -17
  116. package/dist/{piTerminal-BssuKDtJ.mjs → piTerminal-GC1KHTYQ.mjs} +17 -17
  117. package/dist/{pushNotifications-Bi72c41d.mjs → pushNotifications-BThg4nVd.mjs} +3 -3
  118. package/dist/{pushNotifications-CsSyhnHu.cjs → pushNotifications-Bb-QSqXw.cjs} +3 -3
  119. package/dist/{query-Cuef299f.cjs → query-Bz3pocKH.cjs} +1 -1
  120. package/dist/{query-BQOwsKS1.mjs → query-CkgIJ_Dy.mjs} +1 -1
  121. package/dist/{specialCommands-35KxDNE8.cjs → rateLimitReporter-BkHyvLru.cjs} +3 -55
  122. package/dist/{specialCommands-CTtmGCCf.mjs → rateLimitReporter-Iw4k3Bbr.mjs} +4 -55
  123. package/dist/{rateLimitWindows-bfwC81Z-.cjs → rateLimitWindows-Bm_dcQGW.cjs} +1 -1
  124. package/dist/{rateLimitWindows-B6IAWYN5.mjs → rateLimitWindows-CQ4tIQnx.mjs} +1 -1
  125. package/dist/{registerCommonHandlers-CQC04iF3.cjs → registerCommonHandlers-CIs6H2DV.cjs} +2 -2
  126. package/dist/{registerCommonHandlers-qzb6TQqo.mjs → registerCommonHandlers-CaWl9ll1.mjs} +2 -2
  127. package/dist/{remoteSessionClient-DffolBcQ.cjs → remoteSessionClient-DgUMfPW4.cjs} +5 -5
  128. package/dist/{remoteSessionClient-D3XhN_sd.mjs → remoteSessionClient-uPj7omsw.mjs} +5 -5
  129. package/dist/{reportProgressTool-BieTXE_R.cjs → reportProgressTool-CaJ8EwLq.cjs} +3 -3
  130. package/dist/{reportProgressTool-irHR-XEW.mjs → reportProgressTool-DUEq3xAL.mjs} +3 -3
  131. package/dist/{run-DCUaxe2S.mjs → run-DTUJBD6p.mjs} +35 -35
  132. package/dist/{run-Ck_WA6Nj.cjs → run-DyyGMqND.cjs} +35 -35
  133. package/dist/{runClaude-BUGku2Qp.cjs → runClaude-8JDaPoGQ.cjs} +22 -22
  134. package/dist/{runClaude-BryAvfNV.mjs → runClaude-DTNvIz2J.mjs} +22 -22
  135. package/dist/{runClaudeDeps-Dbk1VrOW.cjs → runClaudeDeps-BeLo5zss.cjs} +82 -53
  136. package/dist/{runClaudeDeps-BZkWM9_u.mjs → runClaudeDeps-CgGkgg7e.mjs} +84 -54
  137. package/dist/{runGemini-B6AZ2bv0.cjs → runGemini-BSOdU563.cjs} +54 -50
  138. package/dist/{runGemini-DT379gpi.mjs → runGemini-eU8UOzfc.mjs} +52 -48
  139. package/dist/{runOpenClaw-eBUYlIVJ.cjs → runOpenClaw-CYyFoGRZ.cjs} +30 -26
  140. package/dist/{runOpenClaw-Bpp9mkyO.mjs → runOpenClaw-D8RZiA1e.mjs} +28 -24
  141. package/dist/{sandbox-Bv4H1P6u.cjs → sandbox-C8zfNX-4.cjs} +4 -4
  142. package/dist/{sandbox-Z8TM9eUg.mjs → sandbox-DlPahdhl.mjs} +4 -4
  143. package/dist/selfCheck-4bcdHPFQ.mjs +86 -0
  144. package/dist/{selfCheck--1k2Ptf6.cjs → selfCheck-D28nvuPJ.cjs} +37 -37
  145. package/dist/{send-BG4KYe6f.cjs → send-C58kX4qz.cjs} +8 -8
  146. package/dist/{send-CKTovWuQ.mjs → send-DBpv-1eh.mjs} +8 -8
  147. package/dist/{server-BTNwH-sA.cjs → server-I_CETZzn.cjs} +6 -6
  148. package/dist/{server-DLpXtoiZ.mjs → server-J5K6pOox.mjs} +4 -4
  149. package/dist/{sessionLock-DhzB5ZI9.mjs → sessionLock-C7Wg1RVd.mjs} +3 -3
  150. package/dist/{sessionLock-Cf6RlgfF.cjs → sessionLock-DjE7O0LS.cjs} +3 -3
  151. package/dist/{sessionOps-CiFjBCMa.mjs → sessionOps-CYjMT7Ad.mjs} +4 -4
  152. package/dist/{sessionOps-R52JWMnX.cjs → sessionOps-DGMpl9NB.cjs} +4 -4
  153. package/dist/{sessionProvider-LATn-lZL.cjs → sessionProvider-DVtxrOuM.cjs} +5 -5
  154. package/dist/{sessionProvider-f2tUhwBc.mjs → sessionProvider-TLiFn9kD.mjs} +5 -5
  155. package/dist/{sessionScanner-DRzZtGtu.cjs → sessionScanner-BZ1ZSn6I.cjs} +3 -3
  156. package/dist/{sessionScanner-lS1puA5H.mjs → sessionScanner-CknV1IlN.mjs} +3 -3
  157. package/dist/{sessions-DGd8Fin6.cjs → sessions-CTkBKs5U.cjs} +10 -10
  158. package/dist/{sessions-D01nnjOE.mjs → sessions-DU4bxkap.mjs} +10 -10
  159. package/dist/{setupOfflineReconnection-Ds7ywGwR.cjs → setupOfflineReconnection-CQHNuP_0.cjs} +2 -2
  160. package/dist/{setupOfflineReconnection-UApZjcU5.mjs → setupOfflineReconnection-DaOXnGuH.mjs} +2 -2
  161. package/dist/{spawn-CT3g4p8A.cjs → spawn-C0wZc03S.cjs} +67 -25
  162. package/dist/{spawn-ct8aSMA8.mjs → spawn-DdnYTtQe.mjs} +67 -26
  163. package/dist/{spawnAgents-DsJSyLDl.cjs → spawnAgents-BjyU78Ue.cjs} +21 -9
  164. package/dist/{spawnAgents-f2q31uUV.mjs → spawnAgents-D-7wMw-a.mjs} +21 -10
  165. package/dist/{spawnHappyCLI-DedrWByd.cjs → spawnHappyCLI-BJUd974I.cjs} +1 -1
  166. package/dist/{spawnHappyCLI-Dp05fHcp.mjs → spawnHappyCLI-CnyyJk74.mjs} +1 -1
  167. package/dist/{registerKillSessionHandler-BraKB5Ks.cjs → specialCommands-BsvSoDhC.cjs} +91 -6
  168. package/dist/{registerKillSessionHandler-DMPrrNKX.mjs → specialCommands-DHU7TNeK.mjs} +88 -7
  169. package/dist/{startFileWatcher-BLdxJdgu.mjs → startFileWatcher-CpO5Mwbr.mjs} +1 -1
  170. package/dist/{startFileWatcher-72w11DP_.cjs → startFileWatcher-DBboREco.cjs} +1 -1
  171. package/dist/{startupSessionCreate-CJFR_Zom.mjs → startupSessionCreate-BgaVuvQp.mjs} +1 -1
  172. package/dist/{startupSessionCreate-Cy4J4-Ep.cjs → startupSessionCreate-C1u2dtz8.cjs} +1 -1
  173. package/dist/{streamRelay-B3FloUTT.mjs → streamRelay-CqBynIon.mjs} +1 -1
  174. package/dist/{streamRelay-Cn_uGG6m.cjs → streamRelay-D9a4cBEa.cjs} +1 -1
  175. package/dist/{sync-lxDpbIh3.cjs → sync-6HFRJP1h.cjs} +1 -1
  176. package/dist/{sync-BWX1OVQi.mjs → sync-I8NYmycF.mjs} +1 -1
  177. package/dist/{systemPrompt-0DqWPGY6.cjs → systemPrompt-BDWj5QSL.cjs} +2 -2
  178. package/dist/{systemPrompt-BIilbjt_.mjs → systemPrompt-C1RSY_60.mjs} +2 -2
  179. package/dist/{teams-CvpB8Rdm.mjs → teams-GpLFbXXE.mjs} +7 -7
  180. package/dist/{teams-CImmJLlM.cjs → teams-eUD7ymif.cjs} +7 -7
  181. package/dist/{template-DPsqlHJQ.cjs → template-17HATY_Y.cjs} +1 -1
  182. package/dist/{template-DuKZw-Sz.mjs → template-CEK8MEjo.mjs} +1 -1
  183. package/dist/{time-BbQJi3Eh.cjs → time-BAJRbB6U.cjs} +1 -1
  184. package/dist/{time-DjS5me2q.mjs → time-umG7yHkb.mjs} +1 -1
  185. package/dist/{titleGenerator-CGdBp5lQ.mjs → titleGenerator-dmFlxkRs.mjs} +1 -1
  186. package/dist/{titleGenerator-CfJme6ep.cjs → titleGenerator-iqb2jOF1.cjs} +2 -2
  187. package/dist/{todo-BxfUKwTM.mjs → todo-CT4AJ3sH.mjs} +6 -6
  188. package/dist/{todo-rN20m9lT.cjs → todo-DsR7WnQS.cjs} +6 -6
  189. package/dist/{tools-kGtSjG8h.cjs → tools-30E66QL_.cjs} +1 -1
  190. package/dist/{tools-B_W7xJNh.mjs → tools-BOWazSD6.mjs} +1 -1
  191. package/dist/{uninstall-CBQsxEmD.cjs → uninstall-BtTc9hHa.cjs} +3 -3
  192. package/dist/{uninstall-DUjvgLlg.mjs → uninstall-DImXs6VZ.mjs} +3 -3
  193. package/package.json +7 -7
  194. package/dist/selfCheck-DIGghfQz.mjs +0 -86
@@ -1,107 +1,107 @@
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-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-DVEzYcoy.cjs');
11
+ var api = require('./api-BOqjYd5r.cjs');
12
12
  var agentAttachments = require('./agentAttachments-Dbw8iMCZ.cjs');
13
- var attachmentContent = require('./attachmentContent-D8hViGiA.cjs');
13
+ var attachmentContent = require('./attachmentContent-BFRMLong.cjs');
14
14
  var ink = require('ink');
15
- var sessionLock = require('./sessionLock-Cf6RlgfF.cjs');
15
+ var sessionLock = require('./sessionLock-DjE7O0LS.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-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-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-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-Bcn7b8QB.cjs');
29
+ var createSessionMetadata = require('./createSessionMetadata-Dpg6bV6f.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-DvFaPsg6.cjs');
32
+ var defaultPermissionMode = require('./defaultPermissionMode-Dlm0q1m0.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-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-BiCK6RiS.cjs');
39
+ var ensureDaemonRunning = require('./ensureDaemonRunning-Ce3BlWiR.cjs');
40
40
  require('tweetnacl');
41
41
  require('axios');
42
- require('./time-BbQJi3Eh.cjs');
43
- require('./browser-DIYTnD_T.cjs');
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-BieTXE_R.cjs');
48
- require('./client-CWSfPlGD.cjs');
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-CCy72Phz.cjs');
55
+ require('./client-C2HcMqRF.cjs');
56
56
  require('node:util');
57
- require('./context-BtCz06PX.cjs');
58
- require('./sessionOps-R52JWMnX.cjs');
57
+ require('./context-2xDvjkQp.cjs');
58
+ require('./sessionOps-DGMpl9NB.cjs');
59
59
  require('socket.io-client');
60
60
  require('./backgroundTaskActivity-CBvUdj39.cjs');
61
61
  require('./resources-BZ_Be0qM.cjs');
62
- require('./tools-kGtSjG8h.cjs');
63
- require('./peerTools-CZfiq_Dx.cjs');
62
+ require('./tools-30E66QL_.cjs');
63
+ require('./peerTools-C1E5cQ86.cjs');
64
64
  require('./ids-B6ZC0HGt.cjs');
65
- require('./remoteSessionClient-DffolBcQ.cjs');
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-BhkQxTa8.cjs');
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-j2RuoHVy.cjs');
75
- require('./package-Bbfq2KR7.cjs');
74
+ require('./bootstrap-eJ1l7VYl.cjs');
75
+ require('./package-Gnf_935w.cjs');
76
76
  require('./webPanels-FCgFKvVe.cjs');
77
- require('./pushNotifications-CsSyhnHu.cjs');
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-XyjQaZtU.cjs');
81
+ require('./lidState-d1vgQ3n7.cjs');
82
82
  require('os');
83
83
  require('child_process');
84
84
  require('node:events');
85
- require('./registerCommonHandlers-CQC04iF3.cjs');
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-lxDpbIh3.cjs');
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-bfwC81Z-.cjs');
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-C9Aj_wGD.cjs');
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-DedrWByd.cjs');
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 = "gpt-5.5";
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 registerKillSessionHandler.MessageQueue2(hashCodexEnhancedMode);
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" && !isCodexClearText(message.content.text)) {
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("[Codex] /clear command pushed to isolated queue");
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 = registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, () => handleKillSession("archive"), session, { processSignals: true, onSignal: () => handleKillSession("offline") });
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) => specialCommands.wrapperRateLimitReporter().observeCodex(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
- if (discoveredModels.length > 0) {
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
- 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
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(
@@ -1,105 +1,105 @@
1
- import { a as authAndSetupMachineIfNeeded } from './auth-BCHL8Fx5.mjs';
2
- import { g as createEnvelope, j as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY, I as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY } from './index-B9f1vKcC.mjs';
3
- import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-CruOxFA6.mjs';
4
- import { s as sharedProjectsClient } from './client-C8w9aQYe.mjs';
1
+ import { a as authAndSetupMachineIfNeeded } from './auth-BNhhk2Fr.mjs';
2
+ import { g as createEnvelope, j as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY, J as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, K as CODEX_COMPACT_CAPABILITY } from './index-WKyN-bNy.mjs';
3
+ import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-CsRckxVq.mjs';
4
+ import { s as sharedProjectsClient } from './client-DWws_aQK.mjs';
5
5
  import { unlink } from 'node:fs/promises';
6
6
  import { p as publishForkBackfillWhenCommitted, F as FORK_BACKFILL_CAPABILITY } from './forkBackfill-DYIjlN1Z.mjs';
7
7
  import { randomUUID } from 'node:crypto';
8
8
  import { createId } from '@paralleldrive/cuid2';
9
- import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-cVvbFZVK.mjs';
9
+ import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-DNKa7kVy.mjs';
10
10
  import { r as registerAgentAttachmentDownloads } from './agentAttachments-M_B5qEF2.mjs';
11
- import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-NNF-Eo4O.mjs';
11
+ import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-C9S4ekAz.mjs';
12
12
  import { useStdout, useInput, Box, Text, render } from 'ink';
13
- import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, e as exitCursorStamp } from './sessionLock-DhzB5ZI9.mjs';
13
+ import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, e as exitCursorStamp } from './sessionLock-C7Wg1RVd.mjs';
14
14
  import React, { useState, useRef, useEffect, useCallback } from 'react';
15
- import { C as CodexAppServerClient } from './codexAppServerClient-Csc-XsRV.mjs';
16
- import { p as parseSpecialCommand, w as wrapperRateLimitReporter } from './specialCommands-CTtmGCCf.mjs';
17
- import { l as logger } from './logger-SAU4uSs4.mjs';
18
- import { B as BasePermissionHandler } from './BasePermissionHandler-Bk9DmVZH.mjs';
19
- import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-lOO15mt2.mjs';
15
+ import { C as CodexAppServerClient } from './codexAppServerClient-DgE99i7X.mjs';
16
+ import { w as wrapperRateLimitReporter } from './rateLimitReporter-Iw4k3Bbr.mjs';
17
+ import { l as logger } from './logger-RpzJ4d8V.mjs';
18
+ import { B as BasePermissionHandler } from './BasePermissionHandler-CrfyUmqO.mjs';
19
+ import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-Bybovr2z.mjs';
20
20
  import { execSync } from 'node:child_process';
21
- import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-C7T3HYjq.mjs';
22
- import { g as getInitialMachineMetadata } from './machineMetadata-ZVnihOuL.mjs';
23
- import { c as configuration } from './configuration-8EAa2X9P.mjs';
24
- import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-DMPrrNKX.mjs';
21
+ import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-Bn4qEbDg.mjs';
22
+ import { g as getInitialMachineMetadata } from './machineMetadata-CiQ2_1Mq.mjs';
23
+ import { c as configuration } from './configuration-BZHpFD7K.mjs';
24
+ import { p as parseSpecialCommand, c as compactCommandText, a as parseCompact, M as MessageQueue2, r as registerKillSessionHandler } from './specialCommands-DHU7TNeK.mjs';
25
25
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
26
26
  import { join } from 'node:path';
27
- import { c as createSessionMetadata } from './createSessionMetadata-HlzlfP0U.mjs';
27
+ import { c as createSessionMetadata } from './createSessionMetadata-Dn5BkLfU.mjs';
28
28
  import { M as MessageBuffer } from './sessionExitLifecycle-CzkLIgNZ.mjs';
29
- import { n as notifyDaemonSessionStarted, k as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-O-vf2MkJ.mjs';
30
- import { a as HibernationExitLatch, H as HibernationProbe, c as commitHibernation, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-BPDeX4S8.mjs';
29
+ import { n as notifyDaemonSessionStarted, k as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-Bw56NIrj.mjs';
30
+ import { a as HibernationExitLatch, H as HibernationProbe, c as commitHibernation, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-DMTnlccv.mjs';
31
31
  import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
32
- import { s as setupOfflineReconnection } from './setupOfflineReconnection-UApZjcU5.mjs';
33
- import { c as createSessionForStartup } from './startupSessionCreate-CJFR_Zom.mjs';
32
+ import { s as setupOfflineReconnection } from './setupOfflineReconnection-DaOXnGuH.mjs';
33
+ import { c as createSessionForStartup } from './startupSessionCreate-BgaVuvQp.mjs';
34
34
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
35
35
  import { C as CHANGE_TITLE_INSTRUCTION } from './constants-BC4St0xd.mjs';
36
36
  import { E as EditReportThrottle, a as extractCodexPatchPaths } from './editPaths-BVfS_FFL.mjs';
37
- import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-Cv0AMaHK.mjs';
37
+ import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-DVtIG9z7.mjs';
38
38
  import 'tweetnacl';
39
39
  import 'axios';
40
- import './time-DjS5me2q.mjs';
41
- import './browser-CLsM513o.mjs';
40
+ import './time-umG7yHkb.mjs';
41
+ import './browser-6Cg7G6bb.mjs';
42
42
  import 'open';
43
43
  import 'zod';
44
44
  import './prompt-QHuFx9j6.mjs';
45
- import './reportProgressTool-irHR-XEW.mjs';
46
- import './client-Zqg7DXHl.mjs';
45
+ import './reportProgressTool-DUEq3xAL.mjs';
46
+ import './client-DcDE6Ifk.mjs';
47
47
  import './precheckCompat-DeEbilbr.mjs';
48
48
  import './agentGuidance-BDYt2Qy2.mjs';
49
49
  import 'node:fs';
50
50
  import 'node:os';
51
51
  import './pi-CqyoZMjI.mjs';
52
52
  import './fileStore-5qpetZS0.mjs';
53
- import './client-D8p1YjVt.mjs';
53
+ import './client-qJ0y8fus.mjs';
54
54
  import 'node:util';
55
- import './context-B-jybQhf.mjs';
56
- import './sessionOps-CiFjBCMa.mjs';
55
+ import './context-t7YV0aZc.mjs';
56
+ import './sessionOps-CYjMT7Ad.mjs';
57
57
  import 'socket.io-client';
58
58
  import './backgroundTaskActivity-8PdPxrvy.mjs';
59
59
  import './resources-CLP_MpK4.mjs';
60
- import './tools-B_W7xJNh.mjs';
61
- import './peerTools-CyruQrOo.mjs';
60
+ import './tools-BOWazSD6.mjs';
61
+ import './peerTools-2_8Bw9PU.mjs';
62
62
  import './ids-DU6sLx4C.mjs';
63
- import './remoteSessionClient-D3XhN_sd.mjs';
63
+ import './remoteSessionClient-uPj7omsw.mjs';
64
64
  import '@modelcontextprotocol/sdk/server/mcp.js';
65
65
  import 'node:http';
66
66
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
67
67
  import './limits-DIo7rEBR.mjs';
68
- import './downloadTarget-ByTxs_N5.mjs';
68
+ import './downloadTarget-tYMV_VHo.mjs';
69
69
  import './terminals-Dlg0x3nY.mjs';
70
70
  import './terminalTitleSuggest-CeKsX_V6.mjs';
71
71
  import './tmuxSocket-B8Yx20sT.mjs';
72
- import './bootstrap-CndcegDb.mjs';
73
- import './package-BMBwnCn3.mjs';
72
+ import './bootstrap-Di38SnpN.mjs';
73
+ import './package-CwB8rFJt.mjs';
74
74
  import './webPanels-B2_C2-3g.mjs';
75
- import './pushNotifications-Bi72c41d.mjs';
75
+ import './pushNotifications-BThg4nVd.mjs';
76
76
  import './contentLogMetadata-BlWI0egu.mjs';
77
77
  import './previewPath-CXN4Vag0.mjs';
78
78
  import 'crypto';
79
- import './lidState-LtdUCXi-.mjs';
79
+ import './lidState-D-lsD1FS.mjs';
80
80
  import 'os';
81
81
  import 'child_process';
82
82
  import 'node:events';
83
- import './registerCommonHandlers-qzb6TQqo.mjs';
83
+ import './registerCommonHandlers-CaWl9ll1.mjs';
84
84
  import 'util';
85
85
  import 'fs/promises';
86
86
  import 'path';
87
87
  import 'cross-spawn';
88
- import './sync-BWX1OVQi.mjs';
88
+ import './sync-I8NYmycF.mjs';
89
89
  import 'chalk';
90
90
  import './processTreeSnapshot-CuLJDNC-.mjs';
91
91
  import 'node:readline';
92
92
  import './manager-BEsI4qt3.mjs';
93
93
  import '@anthropic-ai/sandbox-runtime';
94
- import './rateLimitWindows-B6IAWYN5.mjs';
94
+ import './rateLimitWindows-CQ4tIQnx.mjs';
95
95
  import './processTree-CP5IvQ2Z.mjs';
96
96
  import './detectCLI-CSGMlV51.mjs';
97
97
  import 'fs';
98
- import './localHappyAgentAuth-DqFE0Adr.mjs';
98
+ import './localHappyAgentAuth-wvDp-nGj.mjs';
99
99
  import './fsMkdir-DumgLTzR.mjs';
100
100
  import './types-CkqAACXx.mjs';
101
101
  import 'url';
102
- import './spawnHappyCLI-Dp05fHcp.mjs';
102
+ import './spawnHappyCLI-CnyyJk74.mjs';
103
103
  import './doctorReadiness-C208SMN9.mjs';
104
104
 
105
105
  function getStartedSubagents(state) {
@@ -1305,15 +1305,51 @@ class CodexIdleReleaseTimer {
1305
1305
  function isCodexClearText(text) {
1306
1306
  return parseSpecialCommand(text).type === "clear";
1307
1307
  }
1308
+ function codexCompactCommand(text) {
1309
+ return compactCommandText(text);
1310
+ }
1311
+ function isCodexControlText(text) {
1312
+ return isCodexClearText(text) || codexCompactCommand(text) !== null;
1313
+ }
1308
1314
  function enqueueCodexUserText(opts) {
1309
1315
  if (isCodexClearText(opts.text)) {
1310
1316
  opts.queue.pushIsolateAndClear(opts.text, opts.mode, opts.attachments, opts.sourceId);
1311
1317
  return "clear";
1312
1318
  }
1319
+ const compact = codexCompactCommand(opts.text);
1320
+ if (compact !== null) {
1321
+ opts.queue.pushIsolate(compact, opts.mode, opts.attachments, opts.sourceId);
1322
+ return "compact";
1323
+ }
1313
1324
  opts.queue.push(opts.text, opts.mode, opts.attachments, opts.sourceId);
1314
1325
  return "queued";
1315
1326
  }
1316
1327
 
1328
+ async function runCodexCompact(command, deps) {
1329
+ if (!deps.client.hasActiveThread()) {
1330
+ deps.notify("Compaction failed: there is no conversation to compact yet");
1331
+ return "no-thread";
1332
+ }
1333
+ const instructions = parseCompact(command).originalMessage.slice("/compact".length).trim();
1334
+ if (instructions) {
1335
+ deps.notify("Codex does not take compaction instructions; compacting the whole conversation");
1336
+ }
1337
+ deps.notify("Compaction started");
1338
+ try {
1339
+ const result = await deps.client.compactThreadAndWait();
1340
+ if (result.aborted) return "aborted";
1341
+ if (result.failed) {
1342
+ deps.notify("Compaction failed: Codex could not compact the conversation");
1343
+ return "failed";
1344
+ }
1345
+ deps.notify("Compaction completed");
1346
+ return "completed";
1347
+ } catch (error) {
1348
+ deps.notify(`Compaction failed: ${error instanceof Error ? error.message : String(error)}`);
1349
+ return "failed";
1350
+ }
1351
+ }
1352
+
1317
1353
  async function steerIntoRunningTurn(deps, text, attachments, localKey) {
1318
1354
  if (!deps.ownsTurn()) return false;
1319
1355
  const staged = attachments?.length ? await deps.stage(attachments) : [];
@@ -1392,7 +1428,7 @@ function safeCodexErrorMetadata(value) {
1392
1428
  };
1393
1429
  }
1394
1430
 
1395
- const DEFAULT_CODEX_MODEL = "gpt-5.5";
1431
+ const DEFAULT_CODEX_MODEL = void 0;
1396
1432
  const DEFAULT_CODEX_EFFORT = "medium";
1397
1433
  async function runCodex(opts) {
1398
1434
  try {
@@ -1436,7 +1472,7 @@ async function runCodex(opts) {
1436
1472
  dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
1437
1473
  ...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
1438
1474
  ...forkedFromMessageId ? { forkedFromMessageId } : {},
1439
- capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, CODEX_STEER_CAPABILITY, PROJECT_SESSION_CAPABILITY]
1475
+ capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, CODEX_STEER_CAPABILITY, PROJECT_SESSION_CAPABILITY, CODEX_COMPACT_CAPABILITY]
1440
1476
  });
1441
1477
  metadata.attachmentKinds = [...CLAUDE_ATTACHMENT_KINDS];
1442
1478
  const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
@@ -1641,7 +1677,7 @@ async function runCodex(opts) {
1641
1677
  appendSystemPrompt: messageAppendSystemPrompt,
1642
1678
  effort: messageEffort
1643
1679
  };
1644
- if (message.meta?.delivery === "steer" && !isCodexClearText(message.content.text)) {
1680
+ if (message.meta?.delivery === "steer" && !isCodexControlText(message.content.text)) {
1645
1681
  if (await steerIntoRunningTurn(steerDeps, message.content.text, attachments, message.localKey)) {
1646
1682
  logger.debug("[Codex] User message steered into the current turn");
1647
1683
  return;
@@ -1654,8 +1690,8 @@ async function runCodex(opts) {
1654
1690
  attachments,
1655
1691
  sourceId: message.localKey
1656
1692
  });
1657
- if (enqueueResult === "clear") {
1658
- logger.debug("[Codex] /clear command pushed to isolated queue");
1693
+ if (enqueueResult === "clear" || enqueueResult === "compact") {
1694
+ logger.debug(`[Codex] /${enqueueResult} command pushed to isolated queue`);
1659
1695
  }
1660
1696
  }).catch((error) => {
1661
1697
  logger.warn("[Codex] Failed to prepare user attachments", safeCodexErrorMetadata(error));
@@ -1982,17 +2018,26 @@ async function runCodex(opts) {
1982
2018
  logger.debug("[codex]: client.connect done");
1983
2019
  try {
1984
2020
  discoveredModels = await client.listModels();
1985
- if (discoveredModels.length > 0) {
2021
+ let configured = null;
2022
+ try {
2023
+ configured = { model: await client.readConfiguredModel(process.cwd()) };
2024
+ } catch (error) {
2025
+ logger.debug("[Codex] config/read unavailable", safeCodexErrorMetadata(error));
2026
+ }
2027
+ if (discoveredModels.length > 0 || configured) {
1986
2028
  session.updateMetadata((metadata2) => ({
1987
2029
  ...metadata2,
1988
- models: discoveredModels.map((model) => ({
1989
- code: model.model,
1990
- value: model.displayName,
1991
- description: model.description,
1992
- reasoningEfforts: model.supportedReasoningEfforts.map((option) => option.reasoningEffort),
1993
- defaultReasoningEffort: model.defaultReasoningEffort
1994
- })),
1995
- defaultModelCode: discoveredModels.find((model) => model.isDefault)?.model
2030
+ ...discoveredModels.length > 0 ? {
2031
+ models: discoveredModels.map((model) => ({
2032
+ code: model.model,
2033
+ value: model.displayName,
2034
+ description: model.description,
2035
+ reasoningEfforts: model.supportedReasoningEfforts.map((option) => option.reasoningEffort),
2036
+ defaultReasoningEffort: model.defaultReasoningEffort
2037
+ }))
2038
+ } : {},
2039
+ defaultModelCode: configured?.model ?? discoveredModels.find((model) => model.isDefault)?.model,
2040
+ ...configured ? { configuredModel: configured.model } : {}
1996
2041
  }));
1997
2042
  }
1998
2043
  } catch (error) {
@@ -2153,7 +2198,20 @@ async function runCodex(opts) {
2153
2198
  continue;
2154
2199
  }
2155
2200
  messageBuffer.addMessage(message.message, "user");
2201
+ const compactCommand = codexCompactCommand(message.message);
2156
2202
  try {
2203
+ if (compactCommand !== null) {
2204
+ await client.ensureConnected();
2205
+ const outcome = await runCodexCompact(compactCommand, {
2206
+ client,
2207
+ notify: (text) => {
2208
+ messageBuffer.addMessage(text, "status");
2209
+ session.sendSessionEvent({ type: "message", message: text });
2210
+ }
2211
+ });
2212
+ logger.debug(`[Codex] /compact ${outcome}`);
2213
+ continue;
2214
+ }
2157
2215
  await client.ensureConnected();
2158
2216
  const sandboxManagedByHappy = client.sandboxEnabled;
2159
2217
  const executionPolicy = resolveCodexExecutionPolicy(
@@ -1,5 +1,5 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { l as logger } from './logger-SAU4uSs4.mjs';
2
+ import { l as logger } from './logger-RpzJ4d8V.mjs';
3
3
  import { O as OFFLINE_EXIT_STAMP_TIMEOUT_MS } from './sessionExitLifecycle-CzkLIgNZ.mjs';
4
4
 
5
5
  class BaseReasoningProcessor {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
- var logger = require('./logger-BILSzq2s.cjs');
4
+ var logger = require('./logger-C3vZG6Q0.cjs');
5
5
  var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
6
6
 
7
7
  class BaseReasoningProcessor {