very-happy-cli 0.2.175 → 0.2.177

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 (185) hide show
  1. package/dist/{AcpBackend-Sb6N_HcB.cjs → AcpBackend-B-ny68XM.cjs} +188 -37
  2. package/dist/{AcpBackend-BZrLVcHb.mjs → AcpBackend-B0K0WrtW.mjs} +187 -38
  3. package/dist/{AcpSessionManager-C2MqOirs.cjs → AcpSessionManager-CjdJLofq.cjs} +1 -1
  4. package/dist/{AcpSessionManager-y1Iy1mzc.mjs → AcpSessionManager-DykjzBM4.mjs} +1 -1
  5. package/dist/{BasePermissionHandler-BbLYwd13.cjs → BasePermissionHandler-DR6nxuEn.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-DriZLITp.mjs → BasePermissionHandler-hdY7kTqX.mjs} +1 -1
  7. package/dist/{agentHome-BoYfpemd.cjs → agentHome-BdTXEUPe.cjs} +4 -4
  8. package/dist/{agentHome-BtuRubHG.mjs → agentHome-GRN2VfHv.mjs} +4 -4
  9. package/dist/{api-KZmVqSKO.cjs → api-BWX10o97.cjs} +17 -10
  10. package/dist/{api-D08IEaWa.mjs → api-CKBViqI3.mjs} +18 -11
  11. package/dist/{apiMachine-Dct2GDAq.cjs → apiMachine-BYYFGgFs.cjs} +15 -14
  12. package/dist/{apiMachine-Cx9Zn-78.mjs → apiMachine-DttO4UFj.mjs} +15 -14
  13. package/dist/{attachmentContent-PrNJg8gG.mjs → attachmentContent-cPVF463_.mjs} +2 -2
  14. package/dist/{attachmentContent-4L9dO8E3.cjs → attachmentContent-kJKXpkMX.cjs} +2 -2
  15. package/dist/{attachmentLimits-BLbji11b.mjs → attachmentLimits-Di1Z93lN.mjs} +1 -1
  16. package/dist/{attachmentLimits-D6bT2jU1.cjs → attachmentLimits-DtFqqiwR.cjs} +1 -1
  17. package/dist/{auth-D1qHU-i_.mjs → auth-BmESeKuM.mjs} +5 -5
  18. package/dist/{auth-PY_HGlzz.mjs → auth-CKdXb9zp.mjs} +8 -8
  19. package/dist/{auth-BGmM3Vlm.cjs → auth-CTECt2Oz.cjs} +5 -5
  20. package/dist/{auth-BI0CsMcy.cjs → auth-DNxVmVbn.cjs} +8 -8
  21. package/dist/{auto-COMphIfD.mjs → auto-Ch3203qd.mjs} +17 -16
  22. package/dist/{auto-DM4_FeKb.cjs → auto-D1ypjjfx.cjs} +16 -15
  23. package/dist/{backgroundTaskActivity-8PdPxrvy.mjs → backgroundTaskActivity-BVwJBl02.mjs} +1 -1
  24. package/dist/{bootstrap-DTJ6-vYT.cjs → bootstrap-6OI698q9.cjs} +2 -2
  25. package/dist/{bootstrap-CWjpC5-J.mjs → bootstrap-C0s2bPFQ.mjs} +2 -2
  26. package/dist/{browser-xuW4fiHo.mjs → browser-BlLWZUMx.mjs} +1 -1
  27. package/dist/{browser-DmgVoopB.cjs → browser-DG6Uof5O.cjs} +1 -1
  28. package/dist/{claudeLocal-B0P-wVJJ.mjs → claudeLocal-CcWcKnoo.mjs} +5 -5
  29. package/dist/{claudeLocal-CtZVz3ee.cjs → claudeLocal-CemsIArT.cjs} +5 -5
  30. package/dist/{claudeLocalLauncher-D4vmjI3c.mjs → claudeLocalLauncher-7p6y88nj.mjs} +15 -18
  31. package/dist/{claudeLocalLauncher-Dnv4CH8r.cjs → claudeLocalLauncher-A4VuevIi.cjs} +15 -18
  32. package/dist/{claudeSessionFork-CxjOBoBh.mjs → claudeSessionFork-BtROOjqf.mjs} +1 -1
  33. package/dist/{claudeSessionFork-DQk5-dzR.cjs → claudeSessionFork-CbDfm8Fz.cjs} +1 -1
  34. package/dist/{client-eQjOvC55.mjs → client-BPMWutfs.mjs} +3 -3
  35. package/dist/{client-BhLhjj_x.cjs → client-COmgDDy0.cjs} +2 -2
  36. package/dist/{client-C4ddTzrD.mjs → client-DG5ndWLw.mjs} +2 -2
  37. package/dist/{client-BHZVyQwi.cjs → client-DyvBTYee.cjs} +3 -3
  38. package/dist/codex/happyMcpStdioBridge.cjs +15 -15
  39. package/dist/codex/happyMcpStdioBridge.mjs +16 -16
  40. package/dist/{codexAppServerClient-CppPl_R6.mjs → codexAppServerClient-D-Z8qSfI.mjs} +233 -24
  41. package/dist/{codexAppServerClient-D-9z-lWP.cjs → codexAppServerClient-R24WZZfg.cjs} +233 -24
  42. package/dist/{codexCommand-AgVJYnFU.cjs → codexCommand-6hW19gsq.cjs} +159 -84
  43. package/dist/{codexCommand-BdrBNbZu.mjs → codexCommand-CVTkZJ1o.mjs} +158 -83
  44. package/dist/{BaseReasoningProcessor-_S1PbSvH.cjs → codexTermination-BBU7e92y.cjs} +25 -1
  45. package/dist/{BaseReasoningProcessor-DnykPlPo.mjs → codexTermination-CCIfwzcx.mjs} +25 -2
  46. package/dist/{config-Cr3VUzbE.mjs → config-CvsNChKX.mjs} +3 -3
  47. package/dist/{config-D89sE3wK.cjs → config-DhdrvOLV.cjs} +3 -3
  48. package/dist/{configuration-BNGPXg07.mjs → configuration-D55F0t16.mjs} +1 -1
  49. package/dist/{configuration-UV4EE5ui.cjs → configuration-DZPy0T9Z.cjs} +1 -1
  50. package/dist/{connect-C0iLkCiY.mjs → connect-CwCXMRmD.mjs} +14 -14
  51. package/dist/{connect-B35YXbdZ.cjs → connect-Wz-XZYXW.cjs} +13 -13
  52. package/dist/{context-BmH2BKip.cjs → context-BKbrZ55r.cjs} +1 -1
  53. package/dist/{context-Ptdnlcv6.mjs → context-CCRpVXFo.mjs} +1 -1
  54. package/dist/{controlClient-DqtC0pq1.mjs → controlClient-C4xB5J6O.mjs} +4 -4
  55. package/dist/{controlClient-CtsQMw--.cjs → controlClient-SX8gSza2.cjs} +3 -3
  56. package/dist/{createSessionMetadata-2IuH5nlA.cjs → createSessionMetadata-BCFmYlBo.cjs} +2 -2
  57. package/dist/{createSessionMetadata-CtNMvfth.mjs → createSessionMetadata-Bi-m0Y_O.mjs} +2 -2
  58. package/dist/{defaultPermissionMode-Bn4HcU8S.cjs → defaultPermissionMode-DMBEnXll.cjs} +2 -2
  59. package/dist/{defaultPermissionMode-DYihjV2g.mjs → defaultPermissionMode-wBcbBezm.mjs} +2 -2
  60. package/dist/{deterministicJson-DF4xv6MH.mjs → deterministicJson-BkQETt8_.mjs} +9 -9
  61. package/dist/{deterministicJson-je21npNx.cjs → deterministicJson-ChGfQEF6.cjs} +9 -9
  62. package/dist/{doctor-Ba92L7-b.mjs → doctor-B9c2C9dF.mjs} +8 -8
  63. package/dist/{doctor-BXKcYVGU.cjs → doctor-BsN3JZJn.cjs} +7 -7
  64. package/dist/{downloadTarget-CUJg8iJV.mjs → downloadTarget-ByXzbDK4.mjs} +6 -6
  65. package/dist/{downloadTarget-JC7FZl7W.cjs → downloadTarget-Dj3WoVJa.cjs} +6 -6
  66. package/dist/{ensureDaemonRunning-JPA9tHNE.mjs → ensureDaemonRunning--HYzs5Ce.mjs} +5 -5
  67. package/dist/{ensureDaemonRunning-bIp6-vgi.cjs → ensureDaemonRunning-7Wb8M7Lv.cjs} +5 -5
  68. package/dist/{handleResumeCommand-B6lE5DtU.mjs → handleResumeCommand-DHddBkNJ.mjs} +5 -5
  69. package/dist/{handleResumeCommand-B6b9kIYf.cjs → handleResumeCommand-OmuUGYjQ.cjs} +5 -5
  70. package/dist/{index-B2KL0aPc.cjs → index-BRJzH4sc.cjs} +141 -87
  71. package/dist/{index-CjE4kBKx.mjs → index-BzJNDsJq.mjs} +143 -89
  72. package/dist/{index-B6UGRQ7h.mjs → index-CEjJnq05.mjs} +3 -0
  73. package/dist/{index-CZLwo1FS.mjs → index-CEm0MYiS.mjs} +3 -3
  74. package/dist/{index-B1ABQRrB.cjs → index-CrR4JISa.cjs} +4 -4
  75. package/dist/{index-D759ViMU.cjs → index-D9NoYc5I.cjs} +3 -3
  76. package/dist/{index-D3kI0hDR.cjs → index-DFPT4HOO.cjs} +3 -0
  77. package/dist/{index-boE-d8CM.mjs → index-DMy3OCBe.mjs} +8 -1
  78. package/dist/{index-BZdhwBKa.cjs → index-De8L5lFK.cjs} +8 -0
  79. package/dist/{index-DW1ONaGc.mjs → index-Dhl6_bw7.mjs} +4 -4
  80. package/dist/index.cjs +2 -2
  81. package/dist/index.mjs +2 -2
  82. package/dist/{install-KjIsK_EA.cjs → install-1qn-D9FS.cjs} +3 -3
  83. package/dist/{install-CmojqnLK.mjs → install-BDIUtPXi.mjs} +3 -3
  84. package/dist/lib.cjs +12 -12
  85. package/dist/lib.d.cts +7 -1
  86. package/dist/lib.d.mts +7 -1
  87. package/dist/lib.mjs +13 -13
  88. package/dist/{lidState-CL1NdKfQ.mjs → lidState-BqVsw7H1.mjs} +1 -1
  89. package/dist/{lidState-BmJp2pLt.cjs → lidState-DxbK0qfu.cjs} +1 -1
  90. package/dist/{localHappyAgentAuth-B7f4Ysn0.mjs → localHappyAgentAuth-Ce8kO2yc.mjs} +1 -1
  91. package/dist/{localHappyAgentAuth-9SP7hdiw.cjs → localHappyAgentAuth-D5tANdRD.cjs} +1 -1
  92. package/dist/{logger-D5EzMy30.mjs → logger-13cBr_ew.mjs} +2 -2
  93. package/dist/{logger-C7dRaCkE.cjs → logger-LvwVeATU.cjs} +2 -2
  94. package/dist/{machineMetadata-DYYuK_0c.cjs → machineMetadata-29h7vgf4.cjs} +3 -3
  95. package/dist/{machineMetadata-DqplCWue.mjs → machineMetadata-dMida2qq.mjs} +3 -3
  96. package/dist/{main-kgCQgknK.cjs → main-DpM5jaFH.cjs} +44 -44
  97. package/dist/{main-CnV62agu.mjs → main-x4nAhdH5.mjs} +44 -44
  98. package/dist/{mcp-bDPaj-tM.mjs → mcp-DMiFGYMT.mjs} +15 -15
  99. package/dist/{mcp-BV0vxHtz.cjs → mcp-DQv3caXs.cjs} +14 -14
  100. package/dist/{mirrorProtocol-BSHVZ8Nf.cjs → mirrorProtocol-BfrERW7Z.cjs} +3 -3
  101. package/dist/{mirrorProtocol-ClKhNXYe.mjs → mirrorProtocol-Bz8tEabR.mjs} +3 -3
  102. package/dist/{package-VqWv7EI5.cjs → package-Ch9WGDV_.cjs} +7 -7
  103. package/dist/{package-D0dxZ-W8.mjs → package-CjlsAaRe.mjs} +7 -7
  104. package/dist/{peerTools-B_eiNB3P.mjs → peerTools-CxmrKnfV.mjs} +4 -4
  105. package/dist/{peerTools-BktGmlpd.cjs → peerTools-DtGKWli5.cjs} +4 -4
  106. package/dist/{persistence-CIIhP0Uw.mjs → persistence-C_tYtOqK.mjs} +2 -2
  107. package/dist/{persistence-DweHi8xa.cjs → persistence-DXbKOHxl.cjs} +2 -2
  108. package/dist/{piRunnerArgs-BNzWTNRV.cjs → piRunnerArgs-BVRZe2AR.cjs} +1 -1
  109. package/dist/{piRunnerArgs-cQafsadv.mjs → piRunnerArgs-BpHc-JZl.mjs} +1 -1
  110. package/dist/{piRuntime-VZLSwW-4.cjs → piRuntime-D7eio8Ix.cjs} +1 -1
  111. package/dist/{piRuntime-Bel5lOLb.mjs → piRuntime-DOdGF395.mjs} +1 -1
  112. package/dist/{piTerminal-CS5SDi_H.mjs → piTerminal-dpxz4Q8D.mjs} +17 -17
  113. package/dist/{piTerminal-DkR8sPv-.cjs → piTerminal-y_PRo2NY.cjs} +16 -16
  114. package/dist/processTree-CMHWlVse.cjs +66 -0
  115. package/dist/processTree-CP5IvQ2Z.mjs +61 -0
  116. package/dist/{rateLimitWindows-Bp4T21RI.cjs → rateLimitWindows-DFnMU2Vt.cjs} +1 -1
  117. package/dist/{rateLimitWindows-Bo6XVnie.mjs → rateLimitWindows-DYHDGuzQ.mjs} +1 -1
  118. package/dist/{registerCommonHandlers-B7QZxkCL.cjs → registerCommonHandlers-60VuTkdg.cjs} +2 -2
  119. package/dist/{registerCommonHandlers-CR5jpiSx.mjs → registerCommonHandlers-D8OMpBbQ.mjs} +2 -2
  120. package/dist/{registerKillSessionHandler-DLiu24CQ.mjs → registerKillSessionHandler-Drhf7-Vz.mjs} +6 -6
  121. package/dist/{registerKillSessionHandler-CcX84g-T.cjs → registerKillSessionHandler-pqChBKwO.cjs} +6 -6
  122. package/dist/{remoteSessionClient-CL3akj0K.cjs → remoteSessionClient-B7NvjHD3.cjs} +5 -5
  123. package/dist/{remoteSessionClient-CUjw1COc.mjs → remoteSessionClient-D01Hso2-.mjs} +5 -5
  124. package/dist/{reportProgressTool-BLLwMQrN.mjs → reportProgressTool-B203EZCR.mjs} +2 -2
  125. package/dist/{reportProgressTool-DzMi4mvH.cjs → reportProgressTool-Du_zAK4h.cjs} +2 -2
  126. package/dist/{run-DGokR_6q.mjs → run-DX4Zs3Ug.mjs} +34 -34
  127. package/dist/{run-5pmOElaW.cjs → run-DZ5jU53c.cjs} +34 -34
  128. package/dist/{runClaude-BFlpZQds.mjs → runClaude-CgPHXP0L.mjs} +27 -23
  129. package/dist/{runClaude-EnYNvkV0.cjs → runClaude-ClRhHpwR.cjs} +26 -22
  130. package/dist/{runClaudeDeps-CUDebE9e.cjs → runClaudeDeps-D2v_WDSL.cjs} +387 -89
  131. package/dist/{runClaudeDeps-D1M1dzlZ.mjs → runClaudeDeps-Dz2iydq4.mjs} +393 -95
  132. package/dist/{runGemini-Bu69Zu1u.cjs → runGemini-BtZqGFkp.cjs} +208 -193
  133. package/dist/{runGemini-Bub8T5cM.mjs → runGemini-DBXxpoY8.mjs} +208 -193
  134. package/dist/{runOpenClaw-DVu73F_i.mjs → runOpenClaw-BOHpzCEU.mjs} +19 -19
  135. package/dist/{runOpenClaw-Cob5F3FC.cjs → runOpenClaw-D8q8G57u.cjs} +18 -18
  136. package/dist/{sandbox-9EKOFyQF.mjs → sandbox-C452Vrsc.mjs} +4 -4
  137. package/dist/{sandbox-GDqMagSF.cjs → sandbox-Cu9mMzjx.cjs} +4 -4
  138. package/dist/selfCheck-BAvqBwBR.mjs +84 -0
  139. package/dist/{selfCheck-DiNo34da.cjs → selfCheck-gKa3uVr1.cjs} +35 -35
  140. package/dist/{send-ThC80164.cjs → send-2Vb5eppI.cjs} +8 -8
  141. package/dist/{send-wgtHphq8.mjs → send-B8HARi7x.mjs} +9 -9
  142. package/dist/{server-Bb8v2fOj.mjs → server-BBWCIZyS.mjs} +4 -4
  143. package/dist/{server-bidHnstE.cjs → server-Db9Wuam3.cjs} +6 -6
  144. package/dist/{sessionLock-BWBcBZKh.cjs → sessionLock-6qL_N6Rn.cjs} +3 -3
  145. package/dist/{sessionLock-gb32sVPR.mjs → sessionLock-ZfvFVdUi.mjs} +3 -3
  146. package/dist/{sessionModeFile-C-fr1M1h.mjs → sessionModeFile-CWVq8AT9.mjs} +1 -1
  147. package/dist/{sessionModeFile-DhuTNcJr.cjs → sessionModeFile-CsLtn_PL.cjs} +1 -1
  148. package/dist/{sessionOps-ByZJbkMq.mjs → sessionOps-CdgbEJgf.mjs} +5 -5
  149. package/dist/{sessionOps-9MChM9Op.cjs → sessionOps-Dmt7WUUs.cjs} +4 -4
  150. package/dist/{sessionScanner-CxXPAVyS.mjs → sessionScanner-CNVaSNOn.mjs} +34 -4
  151. package/dist/{sessionScanner-BpegdnXK.cjs → sessionScanner-CQL_WSaC.cjs} +34 -3
  152. package/dist/{sessions-C1X4z_Lm.cjs → sessions-BJblG_Hx.cjs} +9 -9
  153. package/dist/{sessions-l-UgJGjV.mjs → sessions-DTomHfFg.mjs} +10 -10
  154. package/dist/{setupOfflineReconnection-CgtXlV74.mjs → setupOfflineReconnection-C5trsV-j.mjs} +2 -2
  155. package/dist/{setupOfflineReconnection-CS_8Da8R.cjs → setupOfflineReconnection-DVA0VpQL.cjs} +2 -2
  156. package/dist/{spawn-FyoHqYWo.mjs → spawn-CQJFgoOq.mjs} +15 -14
  157. package/dist/{spawn-D2BlNdZu.cjs → spawn-DRyNAqD8.cjs} +14 -13
  158. package/dist/{spawnAgents-BhsbJ253.mjs → spawnAgents-BjtmjBvP.mjs} +1 -1
  159. package/dist/{spawnAgents-CgMKuOhZ.cjs → spawnAgents-CCjJifAW.cjs} +1 -1
  160. package/dist/{spawnHappyCLI-DsC256j_.mjs → spawnHappyCLI-B_0RWxD4.mjs} +1 -1
  161. package/dist/{spawnHappyCLI-DByQcqEN.cjs → spawnHappyCLI-ChniczJ5.cjs} +1 -1
  162. package/dist/{specialCommands-DGUeZqdm.cjs → specialCommands-DbntVs0d.cjs} +3 -3
  163. package/dist/{specialCommands-DUUBqzvd.mjs → specialCommands-DkdFJi4N.mjs} +3 -3
  164. package/dist/{startFileWatcher-BtBaahTn.cjs → startFileWatcher-C292fhra.cjs} +1 -1
  165. package/dist/{startFileWatcher-CaYRObJu.mjs → startFileWatcher-UQyTSRAP.mjs} +1 -1
  166. package/dist/{streamRelay-DqPFsCgx.cjs → streamRelay-Cx01enfe.cjs} +1 -1
  167. package/dist/{streamRelay-C8zI7OnR.mjs → streamRelay-_qCd873P.mjs} +1 -1
  168. package/dist/{sync-D5YqUVjS.mjs → sync-C3p7-KLn.mjs} +1 -1
  169. package/dist/{sync-BK-IBkuB.cjs → sync-C7sxoUYG.cjs} +1 -1
  170. package/dist/{systemPrompt-e-qeag_h.mjs → systemPrompt-CdHOlyVW.mjs} +2 -2
  171. package/dist/{systemPrompt-DaTKLEb-.cjs → systemPrompt-DtibzbRU.cjs} +2 -2
  172. package/dist/{teams-D9xwa_d3.cjs → teams-D7O7TpVU.cjs} +6 -6
  173. package/dist/{teams-ClrppvKu.mjs → teams-ujXr3AFn.mjs} +6 -6
  174. package/dist/{time-0szhiPo4.cjs → time-Dg5tVB8S.cjs} +1 -1
  175. package/dist/{time-CvrpeD3S.mjs → time-yEL6wHUF.mjs} +1 -1
  176. package/dist/{titleGenerator-Dz5P7sE1.cjs → titleGenerator-BMEaDTwU.cjs} +2 -2
  177. package/dist/{titleGenerator-BZ5770wq.mjs → titleGenerator-Dr-BtjzO.mjs} +1 -1
  178. package/dist/{todo-CkmNJQey.cjs → todo-CUcFamGs.cjs} +6 -6
  179. package/dist/{todo-o-miKcN2.mjs → todo-CvJe4M2C.mjs} +6 -6
  180. package/dist/{tools-Cp0qJeBq.mjs → tools-BrM3bZW5.mjs} +1 -1
  181. package/dist/{tools-C77-Ssan.cjs → tools-DDKTB5aQ.cjs} +1 -1
  182. package/dist/{uninstall-DGUPERDX.cjs → uninstall-7oLuhYIu.cjs} +3 -3
  183. package/dist/{uninstall-jNJDCLD_.mjs → uninstall-CEcMMQGz.mjs} +3 -3
  184. package/package.json +7 -7
  185. package/dist/selfCheck-CNo4uzGB.mjs +0 -84
@@ -1,61 +1,61 @@
1
1
  'use strict';
2
2
 
3
- var auth = require('./auth-BGmM3Vlm.cjs');
4
- var index = require('./index-BZdhwBKa.cjs');
3
+ var auth = require('./auth-CTECt2Oz.cjs');
4
+ var index = require('./index-De8L5lFK.cjs');
5
+ var promises = require('node:fs/promises');
5
6
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
6
7
  var node_crypto = require('node:crypto');
7
8
  var cuid2 = require('@paralleldrive/cuid2');
8
9
  var agentAttachments = require('./agentAttachments-Dbw8iMCZ.cjs');
9
- var attachmentContent = require('./attachmentContent-4L9dO8E3.cjs');
10
+ var attachmentContent = require('./attachmentContent-kJKXpkMX.cjs');
10
11
  var ink = require('ink');
11
- var sessionLock = require('./sessionLock-BWBcBZKh.cjs');
12
+ var sessionLock = require('./sessionLock-6qL_N6Rn.cjs');
12
13
  var React = require('react');
13
- var api = require('./api-KZmVqSKO.cjs');
14
- var codexAppServerClient = require('./codexAppServerClient-D-9z-lWP.cjs');
15
- var specialCommands = require('./specialCommands-DGUeZqdm.cjs');
16
- var logger = require('./logger-C7dRaCkE.cjs');
17
- var BasePermissionHandler = require('./BasePermissionHandler-BbLYwd13.cjs');
18
- var BaseReasoningProcessor = require('./BaseReasoningProcessor-_S1PbSvH.cjs');
14
+ var api = require('./api-BWX10o97.cjs');
15
+ var codexAppServerClient = require('./codexAppServerClient-R24WZZfg.cjs');
16
+ var specialCommands = require('./specialCommands-DbntVs0d.cjs');
17
+ var logger = require('./logger-LvwVeATU.cjs');
18
+ var BasePermissionHandler = require('./BasePermissionHandler-DR6nxuEn.cjs');
19
+ var codexTermination = require('./codexTermination-BBU7e92y.cjs');
19
20
  var node_child_process = require('node:child_process');
20
- var persistence = require('./persistence-DweHi8xa.cjs');
21
- var machineMetadata = require('./machineMetadata-DYYuK_0c.cjs');
22
- var configuration = require('./configuration-UV4EE5ui.cjs');
23
- var registerKillSessionHandler = require('./registerKillSessionHandler-CcX84g-T.cjs');
21
+ var persistence = require('./persistence-DXbKOHxl.cjs');
22
+ var machineMetadata = require('./machineMetadata-29h7vgf4.cjs');
23
+ var configuration = require('./configuration-DZPy0T9Z.cjs');
24
+ var registerKillSessionHandler = require('./registerKillSessionHandler-pqChBKwO.cjs');
24
25
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
25
26
  var path = require('node:path');
26
- var createSessionMetadata = require('./createSessionMetadata-2IuH5nlA.cjs');
27
- var deterministicJson = require('./deterministicJson-je21npNx.cjs');
27
+ var createSessionMetadata = require('./createSessionMetadata-BCFmYlBo.cjs');
28
+ var deterministicJson = require('./deterministicJson-ChGfQEF6.cjs');
28
29
  var messageBuffer = require('./messageBuffer-fJMH6uY8.cjs');
29
- var controlClient = require('./controlClient-CtsQMw--.cjs');
30
- var defaultPermissionMode = require('./defaultPermissionMode-Bn4HcU8S.cjs');
30
+ var controlClient = require('./controlClient-SX8gSza2.cjs');
31
+ var defaultPermissionMode = require('./defaultPermissionMode-DMBEnXll.cjs');
31
32
  var authRelay = require('./authRelay-BdYkC1Po.cjs');
32
- var setupOfflineReconnection = require('./setupOfflineReconnection-CS_8Da8R.cjs');
33
+ var setupOfflineReconnection = require('./setupOfflineReconnection-DVA0VpQL.cjs');
33
34
  var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
34
35
  var constants = require('./constants-VJ0N6WuG.cjs');
35
36
  var editPaths = require('./editPaths-Bqp4OFPw.cjs');
36
- var ensureDaemonRunning = require('./ensureDaemonRunning-bIp6-vgi.cjs');
37
+ var ensureDaemonRunning = require('./ensureDaemonRunning-7Wb8M7Lv.cjs');
37
38
  require('tweetnacl');
38
39
  require('axios');
39
- require('./time-0szhiPo4.cjs');
40
- require('./browser-DmgVoopB.cjs');
40
+ require('./time-Dg5tVB8S.cjs');
41
+ require('./browser-DG6Uof5O.cjs');
41
42
  require('open');
42
43
  require('zod');
43
- require('node:fs/promises');
44
- require('./attachmentLimits-D6bT2jU1.cjs');
44
+ require('./attachmentLimits-DtFqqiwR.cjs');
45
45
  require('node:fs');
46
- require('./lidState-BmJp2pLt.cjs');
46
+ require('./lidState-DxbK0qfu.cjs');
47
47
  require('os');
48
48
  require('child_process');
49
49
  require('node:events');
50
50
  require('socket.io-client');
51
51
  require('./limits-C-a7gr04.cjs');
52
- require('./registerCommonHandlers-B7QZxkCL.cjs');
52
+ require('./registerCommonHandlers-60VuTkdg.cjs');
53
53
  require('util');
54
54
  require('fs/promises');
55
55
  require('crypto');
56
56
  require('path');
57
57
  require('cross-spawn');
58
- require('./sync-BK-IBkuB.cjs');
58
+ require('./sync-C7sxoUYG.cjs');
59
59
  require('./backgroundTaskActivity-CBvUdj39.cjs');
60
60
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
61
61
  require('chalk');
@@ -63,36 +63,37 @@ require('node:readline');
63
63
  require('./manager-HrEj442o.cjs');
64
64
  require('@anthropic-ai/sandbox-runtime');
65
65
  require('node:os');
66
- require('./package-VqWv7EI5.cjs');
67
- require('./rateLimitWindows-Bp4T21RI.cjs');
66
+ require('./package-Ch9WGDV_.cjs');
67
+ require('./rateLimitWindows-DFnMU2Vt.cjs');
68
+ require('./processTree-CMHWlVse.cjs');
68
69
  require('node:util');
69
70
  require('./detectCLI-DR9ZaN6B.cjs');
70
71
  require('fs');
71
- require('./localHappyAgentAuth-9SP7hdiw.cjs');
72
+ require('./localHappyAgentAuth-D5tANdRD.cjs');
72
73
  require('./types-CRS-srZK.cjs');
73
74
  require('url');
74
- require('./client-BHZVyQwi.cjs');
75
- require('./context-BmH2BKip.cjs');
76
- require('./sessionOps-9MChM9Op.cjs');
75
+ require('./client-DyvBTYee.cjs');
76
+ require('./context-BKbrZ55r.cjs');
77
+ require('./sessionOps-Dmt7WUUs.cjs');
77
78
  require('./resources-JDPugcDq.cjs');
78
- require('./tools-C77-Ssan.cjs');
79
- require('./reportProgressTool-DzMi4mvH.cjs');
80
- require('./client-BhLhjj_x.cjs');
79
+ require('./tools-DDKTB5aQ.cjs');
80
+ require('./reportProgressTool-Du_zAK4h.cjs');
81
+ require('./client-COmgDDy0.cjs');
81
82
  require('./precheckCompat-CWOi5c9L.cjs');
82
83
  require('./agentGuidance-BtBx2xxE.cjs');
83
- require('./peerTools-BktGmlpd.cjs');
84
+ require('./peerTools-DtGKWli5.cjs');
84
85
  require('./ids-B6ZC0HGt.cjs');
85
- require('./remoteSessionClient-CL3akj0K.cjs');
86
+ require('./remoteSessionClient-B7NvjHD3.cjs');
86
87
  require('@modelcontextprotocol/sdk/server/mcp.js');
87
88
  require('node:http');
88
89
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
89
- require('./downloadTarget-JC7FZl7W.cjs');
90
+ require('./downloadTarget-Dj3WoVJa.cjs');
90
91
  require('./terminals-B_bfC9c2.cjs');
91
92
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
92
93
  require('./tmuxSocket-D-Xt6Vn-.cjs');
93
- require('./bootstrap-DTJ6-vYT.cjs');
94
+ require('./bootstrap-6OI698q9.cjs');
94
95
  require('./previewPath-B0rBdhy1.cjs');
95
- require('./spawnHappyCLI-DByQcqEN.cjs');
96
+ require('./spawnHappyCLI-ChniczJ5.cjs');
96
97
  require('./doctorReadiness-BCZGcN0a.cjs');
97
98
 
98
99
  function getStartedSubagents(state) {
@@ -104,13 +105,29 @@ function getActiveSubagents(state) {
104
105
  function getProviderSubagentToSessionSubagent(state) {
105
106
  return state.providerSubagentToSessionSubagent ?? /* @__PURE__ */ new Map();
106
107
  }
107
- function maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes) {
108
- if (!subagent || startedSubagents.has(subagent)) {
108
+ function getLabeledSubagents(state) {
109
+ return state.labeledSubagents ?? /* @__PURE__ */ new Set();
110
+ }
111
+ function maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, label, labeledSubagents = /* @__PURE__ */ new Set()) {
112
+ if (!subagent) {
109
113
  return;
110
114
  }
111
- envelopes.push(index.createEnvelope("agent", { t: "start" }, { ...opts, subagent }));
115
+ if (startedSubagents.has(subagent)) {
116
+ if (label && !labeledSubagents.has(subagent)) {
117
+ envelopes.push(index.createEnvelope("agent", { t: "start", description: label }, { ...opts, subagent }));
118
+ labeledSubagents.add(subagent);
119
+ }
120
+ return;
121
+ }
122
+ envelopes.push(index.createEnvelope("agent", { t: "start", ...label ? { description: label } : {} }, { ...opts, subagent }));
112
123
  startedSubagents.add(subagent);
113
124
  activeSubagents.add(subagent);
125
+ if (label) labeledSubagents.add(subagent);
126
+ }
127
+ function subagentStopStatus(status) {
128
+ if (status === "failed") return "failed";
129
+ if (status === "interrupted" || status === "cancelled" || status === "canceled" || status === "aborted") return "stopped";
130
+ return "completed";
114
131
  }
115
132
  function emitSubagentStops(opts, startedSubagents, activeSubagents) {
116
133
  const envelopes = [];
@@ -136,6 +153,10 @@ function pickProviderSubagent(message) {
136
153
  }
137
154
  return void 0;
138
155
  }
156
+ function pickSubagentLabel(message) {
157
+ const label = message.subagent_label;
158
+ return typeof label === "string" && label.length > 0 ? label : void 0;
159
+ }
139
160
  function resolveSessionSubagent(message, providerSubagentToSessionSubagent) {
140
161
  const providerSubagent = pickProviderSubagent(message);
141
162
  if (!providerSubagent) {
@@ -414,14 +435,25 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
414
435
  const startedSubagents = getStartedSubagents(state);
415
436
  const activeSubagents = getActiveSubagents(state);
416
437
  const providerSubagentToSessionSubagent = getProviderSubagentToSessionSubagent(state);
438
+ const labeledSubagents = getLabeledSubagents(state);
417
439
  if (type === "collab_agent_item") {
418
- return {
419
- currentTurnId: state.currentTurnId,
420
- startedSubagents,
421
- activeSubagents,
422
- providerSubagentToSessionSubagent,
423
- envelopes: mapCodexCollaborationItem(message.item, buildEnvelopeOptions(state.currentTurnId), "live")
424
- };
440
+ const subagent2 = resolveSessionSubagent(message, providerSubagentToSessionSubagent);
441
+ const opts2 = buildEnvelopeOptions(state.currentTurnId, subagent2);
442
+ const envelopes = [];
443
+ maybeEmitSubagentStart(subagent2, opts2, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
444
+ envelopes.push(...mapCodexCollaborationItem(message.item, opts2, "live"));
445
+ return { currentTurnId: state.currentTurnId, startedSubagents, activeSubagents, providerSubagentToSessionSubagent, labeledSubagents, envelopes };
446
+ }
447
+ if (type === "subagent_turn_end") {
448
+ const providerSubagent = pickProviderSubagent(message);
449
+ const sessionSubagent = providerSubagent ? providerSubagentToSessionSubagent.get(providerSubagent) : void 0;
450
+ const envelopes = [];
451
+ if (sessionSubagent && activeSubagents.has(sessionSubagent)) {
452
+ envelopes.push(index.createEnvelope("agent", { t: "stop", status: subagentStopStatus(message.status) }, buildEnvelopeOptions(state.currentTurnId, sessionSubagent)));
453
+ activeSubagents.delete(sessionSubagent);
454
+ startedSubagents.delete(sessionSubagent);
455
+ }
456
+ return { currentTurnId: state.currentTurnId, startedSubagents, activeSubagents, providerSubagentToSessionSubagent, labeledSubagents, envelopes };
425
457
  }
426
458
  if (type === "task_started") {
427
459
  const turnId = cuid2.createId();
@@ -429,11 +461,13 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
429
461
  startedSubagents.clear();
430
462
  activeSubagents.clear();
431
463
  providerSubagentToSessionSubagent.clear();
464
+ labeledSubagents.clear();
432
465
  return {
433
466
  currentTurnId: turnId,
434
467
  startedSubagents,
435
468
  activeSubagents,
436
469
  providerSubagentToSessionSubagent,
470
+ labeledSubagents,
437
471
  envelopes: [turnStart]
438
472
  };
439
473
  }
@@ -444,16 +478,19 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
444
478
  startedSubagents,
445
479
  activeSubagents,
446
480
  providerSubagentToSessionSubagent,
481
+ labeledSubagents,
447
482
  envelopes: []
448
483
  };
449
484
  }
450
485
  const lifecycleOpts = { turn: state.currentTurnId };
451
486
  providerSubagentToSessionSubagent.clear();
487
+ labeledSubagents.clear();
452
488
  return {
453
489
  currentTurnId: null,
454
490
  startedSubagents,
455
491
  activeSubagents,
456
492
  providerSubagentToSessionSubagent,
493
+ labeledSubagents,
457
494
  envelopes: [
458
495
  ...emitSubagentStops(lifecycleOpts, startedSubagents, activeSubagents),
459
496
  index.createEnvelope("agent", {
@@ -469,6 +506,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
469
506
  startedSubagents,
470
507
  activeSubagents,
471
508
  providerSubagentToSessionSubagent,
509
+ labeledSubagents,
472
510
  envelopes: []
473
511
  };
474
512
  }
@@ -481,17 +519,19 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
481
519
  startedSubagents,
482
520
  activeSubagents,
483
521
  providerSubagentToSessionSubagent,
522
+ labeledSubagents,
484
523
  envelopes: []
485
524
  };
486
525
  }
487
526
  const envelopes = [];
488
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
527
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
489
528
  envelopes.push(index.createEnvelope("agent", { t: "text", text: message.message }, opts));
490
529
  return {
491
530
  currentTurnId: state.currentTurnId,
492
531
  startedSubagents,
493
532
  activeSubagents,
494
533
  providerSubagentToSessionSubagent,
534
+ labeledSubagents,
495
535
  envelopes
496
536
  };
497
537
  }
@@ -503,17 +543,19 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
503
543
  startedSubagents,
504
544
  activeSubagents,
505
545
  providerSubagentToSessionSubagent,
546
+ labeledSubagents,
506
547
  envelopes: []
507
548
  };
508
549
  }
509
550
  const envelopes = [];
510
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
551
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
511
552
  envelopes.push(index.createEnvelope("agent", { t: "text", text, thinking: true }, opts));
512
553
  return {
513
554
  currentTurnId: state.currentTurnId,
514
555
  startedSubagents,
515
556
  activeSubagents,
516
557
  providerSubagentToSessionSubagent,
558
+ labeledSubagents,
517
559
  envelopes
518
560
  };
519
561
  }
@@ -523,7 +565,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
523
565
  const command = summarizeCommand(args.command);
524
566
  const description = typeof args.description === "string" ? args.description : command ?? "Execute command";
525
567
  const envelopes = [];
526
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
568
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
527
569
  envelopes.push(
528
570
  index.createEnvelope("agent", {
529
571
  t: "tool-call-start",
@@ -539,19 +581,21 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
539
581
  startedSubagents,
540
582
  activeSubagents,
541
583
  providerSubagentToSessionSubagent,
584
+ labeledSubagents,
542
585
  envelopes
543
586
  };
544
587
  }
545
588
  if (type === "exec_command_end") {
546
589
  const call = pickCallId(message);
547
590
  const envelopes = [];
548
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
591
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
549
592
  envelopes.push(index.createEnvelope("agent", { t: "tool-call-end", call }, opts));
550
593
  return {
551
594
  currentTurnId: state.currentTurnId,
552
595
  startedSubagents,
553
596
  activeSubagents,
554
597
  providerSubagentToSessionSubagent,
598
+ labeledSubagents,
555
599
  envelopes
556
600
  };
557
601
  }
@@ -560,7 +604,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
560
604
  const autoApproved = message.auto_approved;
561
605
  const changes = message.changes;
562
606
  const envelopes = [];
563
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
607
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
564
608
  envelopes.push(
565
609
  index.createEnvelope("agent", {
566
610
  t: "tool-call-start",
@@ -579,19 +623,21 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
579
623
  startedSubagents,
580
624
  activeSubagents,
581
625
  providerSubagentToSessionSubagent,
626
+ labeledSubagents,
582
627
  envelopes
583
628
  };
584
629
  }
585
630
  if (type === "patch_apply_end") {
586
631
  const call = pickCallId(message);
587
632
  const envelopes = [];
588
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
633
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
589
634
  envelopes.push(index.createEnvelope("agent", { t: "tool-call-end", call }, opts));
590
635
  return {
591
636
  currentTurnId: state.currentTurnId,
592
637
  startedSubagents,
593
638
  activeSubagents,
594
639
  providerSubagentToSessionSubagent,
640
+ labeledSubagents,
595
641
  envelopes
596
642
  };
597
643
  }
@@ -600,6 +646,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
600
646
  startedSubagents,
601
647
  activeSubagents,
602
648
  providerSubagentToSessionSubagent,
649
+ labeledSubagents,
603
650
  envelopes: []
604
651
  };
605
652
  }
@@ -739,7 +786,7 @@ class CodexPermissionHandler extends BasePermissionHandler.BasePermissionHandler
739
786
  }
740
787
  }
741
788
 
742
- class ReasoningProcessor extends BaseReasoningProcessor.BaseReasoningProcessor {
789
+ class ReasoningProcessor extends codexTermination.BaseReasoningProcessor {
743
790
  getToolName() {
744
791
  return "CodexReasoning";
745
792
  }
@@ -931,29 +978,6 @@ const CodexDisplay = ({ messageBuffer, logPath, onExit }) => {
931
978
  ));
932
979
  };
933
980
 
934
- async function settleCodexSession(session, intent, deactivate, log = () => {
935
- }) {
936
- if (intent === "archive") {
937
- session.updateMetadata((currentMetadata) => ({
938
- ...currentMetadata,
939
- lifecycleState: "archived",
940
- lifecycleStateSince: Date.now(),
941
- archivedBy: "cli",
942
- archiveReason: "User terminated"
943
- }));
944
- }
945
- session.sendSessionDeath();
946
- await session.flush();
947
- if (intent === "offline") {
948
- try {
949
- await deactivate(session.sessionId);
950
- } catch (error) {
951
- log("[Codex] deactivate on signal failed", error);
952
- }
953
- }
954
- await session.close();
955
- }
956
-
957
981
  function resolveCodexExecutionPolicy(permissionMode, sandboxManagedByHappy) {
958
982
  if (sandboxManagedByHappy) {
959
983
  return {
@@ -1250,6 +1274,27 @@ function enqueueCodexUserText(opts) {
1250
1274
  return "queued";
1251
1275
  }
1252
1276
 
1277
+ async function steerIntoRunningTurn(deps, text, attachments, localKey) {
1278
+ if (!deps.ownsTurn()) return false;
1279
+ const staged = attachments?.length ? await deps.stage(attachments) : [];
1280
+ try {
1281
+ const outcome = await deps.steer({
1282
+ text: deps.withAttachments(text, staged),
1283
+ images: staged.filter((file) => deps.isImage(file)).map((file) => file.path),
1284
+ clientId: localKey
1285
+ });
1286
+ if (outcome === "steered") {
1287
+ deps.onSteered(text);
1288
+ return true;
1289
+ }
1290
+ deps.log(`[Codex] Steer not taken (${outcome}); queuing the message for the next turn`);
1291
+ } catch (error) {
1292
+ deps.log(`[Codex] Steer failed; queuing the message for the next turn: ${error instanceof Error ? error.message : String(error)}`);
1293
+ }
1294
+ await Promise.all(staged.map((file) => deps.unlink(file.path).catch(() => void 0)));
1295
+ return false;
1296
+ }
1297
+
1253
1298
  function hashCodexEnhancedMode(mode) {
1254
1299
  return deterministicJson.hashObject({
1255
1300
  permissionMode: mode.permissionMode,
@@ -1351,7 +1396,7 @@ async function runCodex(opts) {
1351
1396
  dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
1352
1397
  ...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
1353
1398
  ...forkedFromMessageId ? { forkedFromMessageId } : {},
1354
- capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY]
1399
+ capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, index.CODEX_STEER_CAPABILITY]
1355
1400
  });
1356
1401
  metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
1357
1402
  const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
@@ -1482,6 +1527,20 @@ async function runCodex(opts) {
1482
1527
  ];
1483
1528
  let discoveredModels = [];
1484
1529
  agentAttachments.registerAgentAttachmentDownloads(session);
1530
+ const CODEX_IMAGE_MIME_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
1531
+ const steerDeps = {
1532
+ ownsTurn: () => turnActive && !abortInProgress && !shouldExit,
1533
+ steer: (input) => client.steerTurn(input),
1534
+ stage: (attachments) => attachmentContent.stageClaudeAttachments(attachments, {
1535
+ happyHomeDir: configuration.configuration.happyHomeDir,
1536
+ sessionId: session.sessionId
1537
+ }),
1538
+ withAttachments: attachmentContent.appendStagedAttachmentsToPrompt,
1539
+ unlink: (path) => promises.unlink(path),
1540
+ isImage: (file) => CODEX_IMAGE_MIME_TYPES.includes(file.mimeType),
1541
+ onSteered: (text) => messageBuffer$1.addMessage(text, "user"),
1542
+ log: (message) => logger.logger.debug(message)
1543
+ };
1485
1544
  let userMessageDelivery = Promise.resolve();
1486
1545
  session.onUserMessage((message) => {
1487
1546
  const downloads = session.drainAttachmentsForUserMessage();
@@ -1539,6 +1598,12 @@ async function runCodex(opts) {
1539
1598
  appendSystemPrompt: messageAppendSystemPrompt,
1540
1599
  effort: messageEffort
1541
1600
  };
1601
+ if (message.meta?.delivery === "steer" && !isCodexClearText(message.content.text)) {
1602
+ if (await steerIntoRunningTurn(steerDeps, message.content.text, attachments, message.localKey)) {
1603
+ logger.logger.debug("[Codex] User message steered into the current turn");
1604
+ return;
1605
+ }
1606
+ }
1542
1607
  const enqueueResult = enqueueCodexUserText({
1543
1608
  text: message.content.text,
1544
1609
  mode: enhancedMode,
@@ -1559,6 +1624,7 @@ async function runCodex(opts) {
1559
1624
  let codexStartedSubagents = /* @__PURE__ */ new Set();
1560
1625
  let codexActiveSubagents = /* @__PURE__ */ new Set();
1561
1626
  let codexProviderSubagentToSessionSubagent = /* @__PURE__ */ new Map();
1627
+ let codexLabeledSubagents = /* @__PURE__ */ new Set();
1562
1628
  session.keepAlive(thinking, "remote");
1563
1629
  const keepAliveInterval = setInterval(() => {
1564
1630
  session.keepAlive(thinking, "remote");
@@ -1647,7 +1713,7 @@ async function runCodex(opts) {
1647
1713
  await handleAbort("kill");
1648
1714
  logger.logger.debug("[Codex] Abort completed, proceeding with termination");
1649
1715
  try {
1650
- if (session) await settleCodexSession(session, intent, (id) => api$1.deactivateSession(id), (m, e) => logger.logger.debug(m, safeCodexErrorMetadata(e)));
1716
+ if (session) await codexTermination.settleCodexSession(session, intent, (id) => api$1.deactivateSession(id), (m, e) => logger.logger.debug(m, safeCodexErrorMetadata(e)));
1651
1717
  try {
1652
1718
  await client.disconnect();
1653
1719
  } catch (e) {
@@ -1780,6 +1846,12 @@ async function runCodex(opts) {
1780
1846
  const notice = describeCodexRetry(msg);
1781
1847
  messageBuffer$1.addMessage(notice, "status");
1782
1848
  session.sendSessionEvent({ type: "message", message: notice });
1849
+ } else if (msg.type === "steer_dropped") {
1850
+ const clientIds = Array.isArray(msg.client_ids) ? msg.client_ids.filter((id) => typeof id === "string" && id.length > 0) : [];
1851
+ if (clientIds.length > 0) {
1852
+ session.sendQueueCancelReason(clientIds, "aborted");
1853
+ messageBuffer$1.addMessage("A steered message was not read before the turn ended", "status");
1854
+ }
1783
1855
  }
1784
1856
  if (msg.type === "task_started") {
1785
1857
  if (!thinking) {
@@ -1834,12 +1906,14 @@ async function runCodex(opts) {
1834
1906
  currentTurnId,
1835
1907
  startedSubagents: codexStartedSubagents,
1836
1908
  activeSubagents: codexActiveSubagents,
1837
- providerSubagentToSessionSubagent: codexProviderSubagentToSessionSubagent
1909
+ providerSubagentToSessionSubagent: codexProviderSubagentToSessionSubagent,
1910
+ labeledSubagents: codexLabeledSubagents
1838
1911
  });
1839
1912
  currentTurnId = mapped.currentTurnId;
1840
1913
  codexStartedSubagents = mapped.startedSubagents;
1841
1914
  codexActiveSubagents = mapped.activeSubagents;
1842
1915
  codexProviderSubagentToSessionSubagent = mapped.providerSubagentToSessionSubagent;
1916
+ codexLabeledSubagents = mapped.labeledSubagents;
1843
1917
  for (const envelope of mapped.envelopes) {
1844
1918
  session.sendSessionProtocolMessage(envelope);
1845
1919
  }
@@ -2007,6 +2081,7 @@ async function runCodex(opts) {
2007
2081
  codexStartedSubagents = /* @__PURE__ */ new Set();
2008
2082
  codexActiveSubagents = /* @__PURE__ */ new Set();
2009
2083
  codexProviderSubagentToSessionSubagent = /* @__PURE__ */ new Map();
2084
+ codexLabeledSubagents = /* @__PURE__ */ new Set();
2010
2085
  permissionHandler.reset();
2011
2086
  reasoningProcessor.abort();
2012
2087
  diffProcessor.reset();