very-happy-cli 0.2.174 → 0.2.176

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 (179) hide show
  1. package/dist/{AcpBackend-MMfGUkmp.cjs → AcpBackend-9_ZI1Bv3.cjs} +3 -3
  2. package/dist/{AcpBackend-CS8TSaaH.mjs → AcpBackend-COp6D8gl.mjs} +3 -3
  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-BiWdGyL1.mjs → BasePermissionHandler-ChMkmsGD.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-CJQPjMEa.cjs → BasePermissionHandler-DPvLN7aR.cjs} +1 -1
  7. package/dist/{BaseReasoningProcessor-BY9a3RTU.cjs → BaseReasoningProcessor-Dnf16mtJ.cjs} +1 -1
  8. package/dist/{BaseReasoningProcessor-2sLuoRYw.mjs → BaseReasoningProcessor-pjvLSTQF.mjs} +1 -1
  9. package/dist/{agentHome-BeAq0X3o.cjs → agentHome-BKi7tsE9.cjs} +4 -4
  10. package/dist/{agentHome-CK6SbAVu.mjs → agentHome-D61ZMLXM.mjs} +4 -4
  11. package/dist/{api-Cy_Mbe8W.cjs → api-Buc_ejoA.cjs} +10 -10
  12. package/dist/{api-rOLB1-sV.mjs → api-CbwDDXJt.mjs} +10 -10
  13. package/dist/{apiMachine-A9n14NN1.cjs → apiMachine--PXoXwKq.cjs} +14 -14
  14. package/dist/{apiMachine-VBkOChth.mjs → apiMachine-CS7t3Rg-.mjs} +15 -15
  15. package/dist/{attachmentContent-CSGb8uDJ.mjs → attachmentContent-BQYc8KpE.mjs} +2 -2
  16. package/dist/{attachmentContent-ULnsMsIL.cjs → attachmentContent-CFzzTeV9.cjs} +2 -2
  17. package/dist/{attachmentLimits-BLbji11b.mjs → attachmentLimits-Di1Z93lN.mjs} +1 -1
  18. package/dist/{attachmentLimits-D6bT2jU1.cjs → attachmentLimits-DtFqqiwR.cjs} +1 -1
  19. package/dist/{auth-CiZfkTkd.mjs → auth-B3xMoveE.mjs} +5 -5
  20. package/dist/{auth-EnJQu_vf.mjs → auth-CBkmRIGw.mjs} +8 -8
  21. package/dist/{auth-BD2z4MCH.cjs → auth-CpO3ZUMz.cjs} +5 -5
  22. package/dist/{auth--YSQ1-dG.cjs → auth-LPvsVriN.cjs} +8 -8
  23. package/dist/{auto-D_hKBFAY.mjs → auto-DHGch_zK.mjs} +16 -16
  24. package/dist/{auto-CobMGmFM.cjs → auto-Dm3EIKT7.cjs} +15 -15
  25. package/dist/{bootstrap-BYrt5zUv.cjs → bootstrap-BboDz_w2.cjs} +2 -2
  26. package/dist/{bootstrap-D1RRCJdQ.mjs → bootstrap-CxuBAkJU.mjs} +2 -2
  27. package/dist/{browser-IVfX6PQT.mjs → browser-BvARP-YR.mjs} +1 -1
  28. package/dist/{browser-i45hmvWw.cjs → browser-GQZJxD2n.cjs} +1 -1
  29. package/dist/{claudeLocal-DnPoeXP2.mjs → claudeLocal-B9EhFmD7.mjs} +6 -6
  30. package/dist/{claudeLocal-Cg8Qn4tF.cjs → claudeLocal-D-mujSX1.cjs} +5 -5
  31. package/dist/{claudeLocalLauncher-BAavVhU8.mjs → claudeLocalLauncher-Bdl-9aU_.mjs} +11 -11
  32. package/dist/{claudeLocalLauncher-CFlsscqX.cjs → claudeLocalLauncher-Tbrx6TXF.cjs} +10 -10
  33. package/dist/{claudeSessionFork-bp8LeRZ9.mjs → claudeSessionFork-D_DKvDKE.mjs} +1 -1
  34. package/dist/{claudeSessionFork-DmwPXMmz.cjs → claudeSessionFork-sOz97qqW.cjs} +1 -1
  35. package/dist/{client-DbqP92Fy.mjs → client-Cg6ABRe-.mjs} +3 -3
  36. package/dist/{client-QtWC3yii.cjs → client-D7sSU04O.cjs} +3 -3
  37. package/dist/{client-B6H6ZROd.cjs → client-D9pEOhn4.cjs} +2 -2
  38. package/dist/{client-Bi1DOVy9.mjs → client-Ryu9fllj.mjs} +2 -2
  39. package/dist/codex/happyMcpStdioBridge.cjs +15 -15
  40. package/dist/codex/happyMcpStdioBridge.mjs +15 -15
  41. package/dist/{codexAppServerClient-pnCpJlD8.mjs → codexAppServerClient-C70pJ-BB.mjs} +432 -48
  42. package/dist/{codexAppServerClient-BWB1267F.cjs → codexAppServerClient-DsIUkVnX.cjs} +428 -44
  43. package/dist/{codexCommand-u4m_X8VA.cjs → codexCommand-Aycux-B7.cjs} +162 -60
  44. package/dist/{codexCommand-BmtdCu-D.mjs → codexCommand-DWbA3pJN.mjs} +163 -61
  45. package/dist/{config-BaJCpLzN.cjs → config-BcL0bxO5.cjs} +3 -3
  46. package/dist/{config-Czc1tQDn.mjs → config-Bztmzu8z.mjs} +3 -3
  47. package/dist/{configuration-zOfO2qdB.mjs → configuration-BAwOtWFY.mjs} +1 -1
  48. package/dist/{configuration-Btwt68O2.cjs → configuration-CpBrilxV.cjs} +1 -1
  49. package/dist/{connect-DQaDa6i7.cjs → connect-BBNCMTi8.cjs} +13 -13
  50. package/dist/{connect-D21OhdsD.mjs → connect-BeWQ4MMA.mjs} +13 -13
  51. package/dist/{context-BknomZTq.cjs → context-Hk0j2Y9-.cjs} +1 -1
  52. package/dist/{context-BTX3YYdt.mjs → context-j114QJre.mjs} +1 -1
  53. package/dist/{controlClient-CbmWgWJW.mjs → controlClient-00KYAjsI.mjs} +3 -3
  54. package/dist/{controlClient-CEpaptre.cjs → controlClient-bs_YqwDl.cjs} +3 -3
  55. package/dist/{createSessionMetadata-Cgfcg0WZ.cjs → createSessionMetadata-D4Sj6H95.cjs} +2 -2
  56. package/dist/{createSessionMetadata-CM7ErnPh.mjs → createSessionMetadata-xlycGog5.mjs} +2 -2
  57. package/dist/{defaultPermissionMode-CmgCDVpL.mjs → defaultPermissionMode-B97ox9p1.mjs} +2 -2
  58. package/dist/{defaultPermissionMode-DqdkzYUY.cjs → defaultPermissionMode-CMsiaRzr.cjs} +2 -2
  59. package/dist/{deterministicJson-B3V5Ss2l.cjs → deterministicJson-aHxtYLha.cjs} +9 -9
  60. package/dist/{deterministicJson-DVvfcibH.mjs → deterministicJson-ucyv8j6b.mjs} +9 -9
  61. package/dist/{doctor-C_Xfs8Bs.cjs → doctor-BXkNXcok.cjs} +7 -7
  62. package/dist/{doctor-CidhGBde.mjs → doctor-D554c6Bg.mjs} +7 -7
  63. package/dist/{downloadTarget-C-18yOBz.mjs → downloadTarget-2_zMvt2N.mjs} +6 -6
  64. package/dist/{downloadTarget-DJKG6wVj.cjs → downloadTarget-CmdlljZW.cjs} +6 -6
  65. package/dist/{ensureDaemonRunning-Dk1yo6aK.cjs → ensureDaemonRunning-CY7iC--U.cjs} +5 -5
  66. package/dist/{ensureDaemonRunning-CWo9yDAC.mjs → ensureDaemonRunning-DJlziY-m.mjs} +5 -5
  67. package/dist/{handleResumeCommand-ApqydtLf.mjs → handleResumeCommand-CNTnXBXA.mjs} +5 -5
  68. package/dist/{handleResumeCommand-DvFAI68O.cjs → handleResumeCommand-lSVnvTNC.cjs} +5 -5
  69. package/dist/{index-D0IWz-WE.mjs → index-59hR7nVz.mjs} +3 -3
  70. package/dist/{index-CMeZ7WcS.mjs → index-CxSLrTPA.mjs} +4 -4
  71. package/dist/{index-boE-d8CM.mjs → index-DMy3OCBe.mjs} +8 -1
  72. package/dist/{index-BVC5vBcc.mjs → index-DY3I8j0W.mjs} +37 -37
  73. package/dist/{index-BZdhwBKa.cjs → index-De8L5lFK.cjs} +8 -0
  74. package/dist/{index-azi2eHdp.cjs → index-DhARRePz.cjs} +4 -4
  75. package/dist/{index-CjFzrcin.cjs → index-MwTVbeGW.cjs} +3 -3
  76. package/dist/{index-CXCoTvVd.cjs → index-jeD70GGH.cjs} +36 -36
  77. package/dist/index.cjs +2 -2
  78. package/dist/index.mjs +2 -2
  79. package/dist/{install-DayuanHz.cjs → install-DXUEtGfU.cjs} +3 -3
  80. package/dist/{install-BOPmEeSo.mjs → install-DytIJ_Ia.mjs} +3 -3
  81. package/dist/lib.cjs +12 -12
  82. package/dist/lib.mjs +12 -12
  83. package/dist/{lidState-Bv862v_R.mjs → lidState-CduPmrM0.mjs} +1 -1
  84. package/dist/{lidState-7uLoa43a.cjs → lidState-UasMvPzw.cjs} +1 -1
  85. package/dist/{localHappyAgentAuth-CfILduPd.cjs → localHappyAgentAuth-CA02WOny.cjs} +1 -1
  86. package/dist/{localHappyAgentAuth-CLP3CBMK.mjs → localHappyAgentAuth-DL8JjHTV.mjs} +1 -1
  87. package/dist/{logger-CUxbqfrp.mjs → logger-CihCDWDw.mjs} +2 -2
  88. package/dist/{logger-XjIS0lU7.cjs → logger-zoO54Zsy.cjs} +2 -2
  89. package/dist/{machineMetadata-DTxYqMdE.cjs → machineMetadata-BAKVtr-k.cjs} +3 -3
  90. package/dist/{machineMetadata-QfdvKIrL.mjs → machineMetadata-DEZcQ_CQ.mjs} +3 -3
  91. package/dist/{main-BpC52KlL.cjs → main-BIvxyX71.cjs} +44 -44
  92. package/dist/{main-DcfU9Axf.mjs → main-DyJfNlL_.mjs} +44 -44
  93. package/dist/{manager-BEsI4qt3.mjs → manager-2Il8XJVq.mjs} +1 -1
  94. package/dist/{mcp-EEwHzYYU.cjs → mcp-Dd11vHij.cjs} +14 -14
  95. package/dist/{mcp-BhUNcpoX.mjs → mcp-yoIdGe6C.mjs} +14 -14
  96. package/dist/{mirrorProtocol-BoBu65cj.mjs → mirrorProtocol-BukXB5s3.mjs} +3 -3
  97. package/dist/{mirrorProtocol-WfE5yd3v.cjs → mirrorProtocol-D-hF_SE5.cjs} +3 -3
  98. package/dist/{package-DFQUF2in.cjs → package-A7zOGx8B.cjs} +7 -7
  99. package/dist/{package-DkI3yDe0.mjs → package-ayqGDKSp.mjs} +7 -7
  100. package/dist/{peerTools-zfe59JAw.mjs → peerTools-DDMSViPu.mjs} +4 -4
  101. package/dist/{peerTools-DbI6tEk1.cjs → peerTools-dPc9hRC5.cjs} +4 -4
  102. package/dist/{persistence-BO7AS2NK.cjs → persistence-Cih2AWml.cjs} +2 -2
  103. package/dist/{persistence-CBToZ0R6.mjs → persistence-Dy3lmall.mjs} +2 -2
  104. package/dist/{piRunnerArgs-CICVlVem.cjs → piRunnerArgs-BuJgnUI5.cjs} +1 -1
  105. package/dist/{piRunnerArgs-C2us7__q.mjs → piRunnerArgs-D3z3-1VJ.mjs} +1 -1
  106. package/dist/{piRuntime-CTezrTNw.cjs → piRuntime-B-SPcWIr.cjs} +1 -1
  107. package/dist/{piRuntime-BYHZYbw6.mjs → piRuntime-kVGue-_5.mjs} +1 -1
  108. package/dist/{piTerminal-CeiWEB-T.cjs → piTerminal-DSxK5aAm.cjs} +16 -16
  109. package/dist/{piTerminal-YCRkoVWF.mjs → piTerminal-aEtVdCJ2.mjs} +16 -16
  110. package/dist/{rateLimitWindows-U7NsRvIa.cjs → rateLimitWindows-82izLQy8.cjs} +1 -1
  111. package/dist/{rateLimitWindows-i2-530Zt.mjs → rateLimitWindows-E5DRjfE6.mjs} +1 -1
  112. package/dist/{registerCommonHandlers-C_KbP5Mq.mjs → registerCommonHandlers-Bm7CMqMv.mjs} +2 -2
  113. package/dist/{registerCommonHandlers-DTeuk3Hw.cjs → registerCommonHandlers-CqO075-X.cjs} +2 -2
  114. package/dist/{registerKillSessionHandler-B7zpuzvS.mjs → registerKillSessionHandler-D02OY4vi.mjs} +6 -6
  115. package/dist/{registerKillSessionHandler-B_FqygY4.cjs → registerKillSessionHandler-WQra3T9B.cjs} +6 -6
  116. package/dist/{remoteSessionClient-Bk1Qzb5I.mjs → remoteSessionClient-Buh6NejV.mjs} +5 -5
  117. package/dist/{remoteSessionClient-D79ci1L8.cjs → remoteSessionClient-f3DYorl8.cjs} +5 -5
  118. package/dist/{reportProgressTool-oJMMqzKb.cjs → reportProgressTool-C2gn_HWD.cjs} +2 -2
  119. package/dist/{reportProgressTool-DujvMncK.mjs → reportProgressTool-C5aSoKYX.mjs} +2 -2
  120. package/dist/{run-CyiUjBZK.cjs → run-CDEmq6Zs.cjs} +34 -34
  121. package/dist/{run-DVE2Gq-E.mjs → run-Drxogp0j.mjs} +33 -33
  122. package/dist/{runClaude-BcpBew2h.mjs → runClaude-BF6U2Js7.mjs} +21 -21
  123. package/dist/{runClaude-CmAHAR3N.cjs → runClaude-yEcZTCt_.cjs} +21 -21
  124. package/dist/{runClaudeDeps-C2fTmXoo.mjs → runClaudeDeps-Bl4ndq7N.mjs} +40 -40
  125. package/dist/{runClaudeDeps-Z_RVvcuG.cjs → runClaudeDeps-CnNNFjlI.cjs} +35 -35
  126. package/dist/{runGemini-BYmVfC3b.mjs → runGemini-C3wt7iv7.mjs} +32 -32
  127. package/dist/{runGemini-Bv4nVBfj.cjs → runGemini-DDVDRNg4.cjs} +32 -32
  128. package/dist/{runOpenClaw-D5suaSgY.cjs → runOpenClaw-BzlVA_9Q.cjs} +18 -18
  129. package/dist/{runOpenClaw-msp2nzW8.mjs → runOpenClaw-CY6YHAvj.mjs} +18 -18
  130. package/dist/{sandbox-CSnsdXId.cjs → sandbox-0UNHR3hP.cjs} +4 -4
  131. package/dist/{sandbox-CH7xLX1-.mjs → sandbox-CX_wLwpq.mjs} +4 -4
  132. package/dist/selfCheck-ClVv8NK3.mjs +84 -0
  133. package/dist/{selfCheck-B4mCW5Em.cjs → selfCheck-FNwMFY8p.cjs} +34 -34
  134. package/dist/{send-DzRwXl8a.cjs → send-BQkl25g0.cjs} +8 -8
  135. package/dist/{send-lrV7t7dr.mjs → send-CpEGYict.mjs} +8 -8
  136. package/dist/{server-BAwRC79P.cjs → server-BodFZ5sW.cjs} +6 -6
  137. package/dist/{server-DBHPW2gs.mjs → server-DnINX_Lm.mjs} +4 -4
  138. package/dist/{sessionLock-ClIuWFru.cjs → sessionLock-DOj6mMXn.cjs} +3 -3
  139. package/dist/{sessionLock-D_-T15Y-.mjs → sessionLock-Ddn-fhZ0.mjs} +3 -3
  140. package/dist/{sessionModeFile-BP1s4On2.mjs → sessionModeFile-DDbonFR_.mjs} +1 -1
  141. package/dist/{sessionModeFile-BFejyKn5.cjs → sessionModeFile-DVukoSp7.cjs} +1 -1
  142. package/dist/{sessionOps-DfAtoDD5.mjs → sessionOps-B1vQ25GS.mjs} +4 -4
  143. package/dist/{sessionOps-C7wI8Ll6.cjs → sessionOps-Nryt1DZt.cjs} +4 -4
  144. package/dist/{sessionScanner-BJFPUwar.cjs → sessionScanner-D1h-cdte.cjs} +3 -3
  145. package/dist/{sessionScanner-1-ANJdrm.mjs → sessionScanner-DCr3ofhR.mjs} +3 -3
  146. package/dist/{sessions-Bi13Rn0K.cjs → sessions-D2HsTbLf.cjs} +9 -9
  147. package/dist/{sessions-Dp_X8vP2.mjs → sessions-DpAN6Ft9.mjs} +9 -9
  148. package/dist/{setupOfflineReconnection-BJCXuFad.cjs → setupOfflineReconnection-B9Tw1Ouj.cjs} +2 -2
  149. package/dist/{setupOfflineReconnection-D51KXWAP.mjs → setupOfflineReconnection-DQHEp330.mjs} +2 -2
  150. package/dist/{spawn-DeXPOMMC.mjs → spawn-CNjm1yOi.mjs} +14 -14
  151. package/dist/{spawn-BiYYv0J7.cjs → spawn-CvDZ38hi.cjs} +13 -13
  152. package/dist/{spawnAgents-BhsbJ253.mjs → spawnAgents-BjtmjBvP.mjs} +1 -1
  153. package/dist/{spawnAgents-CgMKuOhZ.cjs → spawnAgents-CCjJifAW.cjs} +1 -1
  154. package/dist/{spawnHappyCLI-CYS23qZY.mjs → spawnHappyCLI-C8Vl56wB.mjs} +1 -1
  155. package/dist/{spawnHappyCLI-CrKdy_rv.cjs → spawnHappyCLI-ahi4j6Mh.cjs} +1 -1
  156. package/dist/{specialCommands-Dkg5wrXd.cjs → specialCommands-BpqnGrOP.cjs} +3 -3
  157. package/dist/{specialCommands-BbNlcS3G.mjs → specialCommands-DfVMGXTl.mjs} +3 -3
  158. package/dist/{startFileWatcher-CgH0PknF.mjs → startFileWatcher-DXJXY4AE.mjs} +1 -1
  159. package/dist/{startFileWatcher-BJ4vTfRp.cjs → startFileWatcher-Ddn3L0u3.cjs} +1 -1
  160. package/dist/{streamRelay-DqPFsCgx.cjs → streamRelay-Cx01enfe.cjs} +1 -1
  161. package/dist/{streamRelay-C8zI7OnR.mjs → streamRelay-_qCd873P.mjs} +1 -1
  162. package/dist/{sync-MTpgBfV2.mjs → sync-BKvgkhPs.mjs} +1 -1
  163. package/dist/{sync-CGVTRg-R.cjs → sync-BgZuthoS.cjs} +1 -1
  164. package/dist/{systemPrompt-DRCJdhNo.cjs → systemPrompt-C6O1cHUg.cjs} +2 -2
  165. package/dist/{systemPrompt-BMGFnaRU.mjs → systemPrompt-DuPem6c9.mjs} +2 -2
  166. package/dist/{teams-H_F3UZkh.mjs → teams-CffMBBfU.mjs} +6 -6
  167. package/dist/{teams-0d4XG2_h.cjs → teams-DifEhhmk.cjs} +6 -6
  168. package/dist/{time-7iVn8KLQ.mjs → time-DxCTiteK.mjs} +1 -1
  169. package/dist/{time-ChuhR6SU.cjs → time-s8CaneqW.cjs} +1 -1
  170. package/dist/{titleGenerator-CLdAiwN1.mjs → titleGenerator-B5T7QSzu.mjs} +1 -1
  171. package/dist/{titleGenerator-CozWnU-t.cjs → titleGenerator-CXr7t6cf.cjs} +2 -2
  172. package/dist/{todo-BeIYBXws.cjs → todo-B41GKMcI.cjs} +6 -6
  173. package/dist/{todo-7mtNKrxn.mjs → todo-DNO7s8td.mjs} +6 -6
  174. package/dist/{tools-BSlqfWAq.mjs → tools-697R1uqn.mjs} +1 -1
  175. package/dist/{tools-9hPR5-u8.cjs → tools-lotMyxIE.cjs} +1 -1
  176. package/dist/{uninstall-Bf5MardO.cjs → uninstall-CRu96len.cjs} +3 -3
  177. package/dist/{uninstall-Uei9RnVT.mjs → uninstall-CYO7EDjO.mjs} +3 -3
  178. package/package.json +7 -7
  179. package/dist/selfCheck-WbfDqlfQ.mjs +0 -84
@@ -1,61 +1,61 @@
1
1
  'use strict';
2
2
 
3
- var auth = require('./auth-BD2z4MCH.cjs');
4
- var index = require('./index-BZdhwBKa.cjs');
3
+ var auth = require('./auth-CpO3ZUMz.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-ULnsMsIL.cjs');
10
+ var attachmentContent = require('./attachmentContent-CFzzTeV9.cjs');
10
11
  var ink = require('ink');
11
- var sessionLock = require('./sessionLock-ClIuWFru.cjs');
12
+ var sessionLock = require('./sessionLock-DOj6mMXn.cjs');
12
13
  var React = require('react');
13
- var api = require('./api-Cy_Mbe8W.cjs');
14
- var codexAppServerClient = require('./codexAppServerClient-BWB1267F.cjs');
15
- var specialCommands = require('./specialCommands-Dkg5wrXd.cjs');
16
- var logger = require('./logger-XjIS0lU7.cjs');
17
- var BasePermissionHandler = require('./BasePermissionHandler-CJQPjMEa.cjs');
18
- var BaseReasoningProcessor = require('./BaseReasoningProcessor-BY9a3RTU.cjs');
14
+ var api = require('./api-Buc_ejoA.cjs');
15
+ var codexAppServerClient = require('./codexAppServerClient-DsIUkVnX.cjs');
16
+ var specialCommands = require('./specialCommands-BpqnGrOP.cjs');
17
+ var logger = require('./logger-zoO54Zsy.cjs');
18
+ var BasePermissionHandler = require('./BasePermissionHandler-DPvLN7aR.cjs');
19
+ var BaseReasoningProcessor = require('./BaseReasoningProcessor-Dnf16mtJ.cjs');
19
20
  var node_child_process = require('node:child_process');
20
- var persistence = require('./persistence-BO7AS2NK.cjs');
21
- var machineMetadata = require('./machineMetadata-DTxYqMdE.cjs');
22
- var configuration = require('./configuration-Btwt68O2.cjs');
23
- var registerKillSessionHandler = require('./registerKillSessionHandler-B_FqygY4.cjs');
21
+ var persistence = require('./persistence-Cih2AWml.cjs');
22
+ var machineMetadata = require('./machineMetadata-BAKVtr-k.cjs');
23
+ var configuration = require('./configuration-CpBrilxV.cjs');
24
+ var registerKillSessionHandler = require('./registerKillSessionHandler-WQra3T9B.cjs');
24
25
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
25
26
  var path = require('node:path');
26
- var createSessionMetadata = require('./createSessionMetadata-Cgfcg0WZ.cjs');
27
- var deterministicJson = require('./deterministicJson-B3V5Ss2l.cjs');
27
+ var createSessionMetadata = require('./createSessionMetadata-D4Sj6H95.cjs');
28
+ var deterministicJson = require('./deterministicJson-aHxtYLha.cjs');
28
29
  var messageBuffer = require('./messageBuffer-fJMH6uY8.cjs');
29
- var controlClient = require('./controlClient-CEpaptre.cjs');
30
- var defaultPermissionMode = require('./defaultPermissionMode-DqdkzYUY.cjs');
30
+ var controlClient = require('./controlClient-bs_YqwDl.cjs');
31
+ var defaultPermissionMode = require('./defaultPermissionMode-CMsiaRzr.cjs');
31
32
  var authRelay = require('./authRelay-BdYkC1Po.cjs');
32
- var setupOfflineReconnection = require('./setupOfflineReconnection-BJCXuFad.cjs');
33
+ var setupOfflineReconnection = require('./setupOfflineReconnection-B9Tw1Ouj.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-Dk1yo6aK.cjs');
37
+ var ensureDaemonRunning = require('./ensureDaemonRunning-CY7iC--U.cjs');
37
38
  require('tweetnacl');
38
39
  require('axios');
39
- require('./time-ChuhR6SU.cjs');
40
- require('./browser-i45hmvWw.cjs');
40
+ require('./time-s8CaneqW.cjs');
41
+ require('./browser-GQZJxD2n.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-7uLoa43a.cjs');
46
+ require('./lidState-UasMvPzw.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-DTeuk3Hw.cjs');
52
+ require('./registerCommonHandlers-CqO075-X.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-CGVTRg-R.cjs');
58
+ require('./sync-BgZuthoS.cjs');
59
59
  require('./backgroundTaskActivity-CBvUdj39.cjs');
60
60
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
61
61
  require('chalk');
@@ -63,36 +63,36 @@ require('node:readline');
63
63
  require('./manager-HrEj442o.cjs');
64
64
  require('@anthropic-ai/sandbox-runtime');
65
65
  require('node:os');
66
- require('./package-DFQUF2in.cjs');
67
- require('./rateLimitWindows-U7NsRvIa.cjs');
66
+ require('./package-A7zOGx8B.cjs');
67
+ require('./rateLimitWindows-82izLQy8.cjs');
68
68
  require('node:util');
69
69
  require('./detectCLI-DR9ZaN6B.cjs');
70
70
  require('fs');
71
- require('./localHappyAgentAuth-CfILduPd.cjs');
71
+ require('./localHappyAgentAuth-CA02WOny.cjs');
72
72
  require('./types-CRS-srZK.cjs');
73
73
  require('url');
74
- require('./client-QtWC3yii.cjs');
75
- require('./context-BknomZTq.cjs');
76
- require('./sessionOps-C7wI8Ll6.cjs');
74
+ require('./client-D7sSU04O.cjs');
75
+ require('./context-Hk0j2Y9-.cjs');
76
+ require('./sessionOps-Nryt1DZt.cjs');
77
77
  require('./resources-JDPugcDq.cjs');
78
- require('./tools-9hPR5-u8.cjs');
79
- require('./reportProgressTool-oJMMqzKb.cjs');
80
- require('./client-B6H6ZROd.cjs');
78
+ require('./tools-lotMyxIE.cjs');
79
+ require('./reportProgressTool-C2gn_HWD.cjs');
80
+ require('./client-D9pEOhn4.cjs');
81
81
  require('./precheckCompat-CWOi5c9L.cjs');
82
82
  require('./agentGuidance-BtBx2xxE.cjs');
83
- require('./peerTools-DbI6tEk1.cjs');
83
+ require('./peerTools-dPc9hRC5.cjs');
84
84
  require('./ids-B6ZC0HGt.cjs');
85
- require('./remoteSessionClient-D79ci1L8.cjs');
85
+ require('./remoteSessionClient-f3DYorl8.cjs');
86
86
  require('@modelcontextprotocol/sdk/server/mcp.js');
87
87
  require('node:http');
88
88
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
89
- require('./downloadTarget-DJKG6wVj.cjs');
89
+ require('./downloadTarget-CmdlljZW.cjs');
90
90
  require('./terminals-B_bfC9c2.cjs');
91
91
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
92
92
  require('./tmuxSocket-D-Xt6Vn-.cjs');
93
- require('./bootstrap-BYrt5zUv.cjs');
93
+ require('./bootstrap-BboDz_w2.cjs');
94
94
  require('./previewPath-B0rBdhy1.cjs');
95
- require('./spawnHappyCLI-CrKdy_rv.cjs');
95
+ require('./spawnHappyCLI-ahi4j6Mh.cjs');
96
96
  require('./doctorReadiness-BCZGcN0a.cjs');
97
97
 
98
98
  function getStartedSubagents(state) {
@@ -104,13 +104,29 @@ function getActiveSubagents(state) {
104
104
  function getProviderSubagentToSessionSubagent(state) {
105
105
  return state.providerSubagentToSessionSubagent ?? /* @__PURE__ */ new Map();
106
106
  }
107
- function maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes) {
108
- if (!subagent || startedSubagents.has(subagent)) {
107
+ function getLabeledSubagents(state) {
108
+ return state.labeledSubagents ?? /* @__PURE__ */ new Set();
109
+ }
110
+ function maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, label, labeledSubagents = /* @__PURE__ */ new Set()) {
111
+ if (!subagent) {
112
+ return;
113
+ }
114
+ if (startedSubagents.has(subagent)) {
115
+ if (label && !labeledSubagents.has(subagent)) {
116
+ envelopes.push(index.createEnvelope("agent", { t: "start", description: label }, { ...opts, subagent }));
117
+ labeledSubagents.add(subagent);
118
+ }
109
119
  return;
110
120
  }
111
- envelopes.push(index.createEnvelope("agent", { t: "start" }, { ...opts, subagent }));
121
+ envelopes.push(index.createEnvelope("agent", { t: "start", ...label ? { description: label } : {} }, { ...opts, subagent }));
112
122
  startedSubagents.add(subagent);
113
123
  activeSubagents.add(subagent);
124
+ if (label) labeledSubagents.add(subagent);
125
+ }
126
+ function subagentStopStatus(status) {
127
+ if (status === "failed") return "failed";
128
+ if (status === "interrupted" || status === "cancelled" || status === "canceled" || status === "aborted") return "stopped";
129
+ return "completed";
114
130
  }
115
131
  function emitSubagentStops(opts, startedSubagents, activeSubagents) {
116
132
  const envelopes = [];
@@ -136,6 +152,10 @@ function pickProviderSubagent(message) {
136
152
  }
137
153
  return void 0;
138
154
  }
155
+ function pickSubagentLabel(message) {
156
+ const label = message.subagent_label;
157
+ return typeof label === "string" && label.length > 0 ? label : void 0;
158
+ }
139
159
  function resolveSessionSubagent(message, providerSubagentToSessionSubagent) {
140
160
  const providerSubagent = pickProviderSubagent(message);
141
161
  if (!providerSubagent) {
@@ -414,14 +434,25 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
414
434
  const startedSubagents = getStartedSubagents(state);
415
435
  const activeSubagents = getActiveSubagents(state);
416
436
  const providerSubagentToSessionSubagent = getProviderSubagentToSessionSubagent(state);
437
+ const labeledSubagents = getLabeledSubagents(state);
417
438
  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
- };
439
+ const subagent2 = resolveSessionSubagent(message, providerSubagentToSessionSubagent);
440
+ const opts2 = buildEnvelopeOptions(state.currentTurnId, subagent2);
441
+ const envelopes = [];
442
+ maybeEmitSubagentStart(subagent2, opts2, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
443
+ envelopes.push(...mapCodexCollaborationItem(message.item, opts2, "live"));
444
+ return { currentTurnId: state.currentTurnId, startedSubagents, activeSubagents, providerSubagentToSessionSubagent, labeledSubagents, envelopes };
445
+ }
446
+ if (type === "subagent_turn_end") {
447
+ const providerSubagent = pickProviderSubagent(message);
448
+ const sessionSubagent = providerSubagent ? providerSubagentToSessionSubagent.get(providerSubagent) : void 0;
449
+ const envelopes = [];
450
+ if (sessionSubagent && activeSubagents.has(sessionSubagent)) {
451
+ envelopes.push(index.createEnvelope("agent", { t: "stop", status: subagentStopStatus(message.status) }, buildEnvelopeOptions(state.currentTurnId, sessionSubagent)));
452
+ activeSubagents.delete(sessionSubagent);
453
+ startedSubagents.delete(sessionSubagent);
454
+ }
455
+ return { currentTurnId: state.currentTurnId, startedSubagents, activeSubagents, providerSubagentToSessionSubagent, labeledSubagents, envelopes };
425
456
  }
426
457
  if (type === "task_started") {
427
458
  const turnId = cuid2.createId();
@@ -429,11 +460,13 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
429
460
  startedSubagents.clear();
430
461
  activeSubagents.clear();
431
462
  providerSubagentToSessionSubagent.clear();
463
+ labeledSubagents.clear();
432
464
  return {
433
465
  currentTurnId: turnId,
434
466
  startedSubagents,
435
467
  activeSubagents,
436
468
  providerSubagentToSessionSubagent,
469
+ labeledSubagents,
437
470
  envelopes: [turnStart]
438
471
  };
439
472
  }
@@ -444,16 +477,19 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
444
477
  startedSubagents,
445
478
  activeSubagents,
446
479
  providerSubagentToSessionSubagent,
480
+ labeledSubagents,
447
481
  envelopes: []
448
482
  };
449
483
  }
450
484
  const lifecycleOpts = { turn: state.currentTurnId };
451
485
  providerSubagentToSessionSubagent.clear();
486
+ labeledSubagents.clear();
452
487
  return {
453
488
  currentTurnId: null,
454
489
  startedSubagents,
455
490
  activeSubagents,
456
491
  providerSubagentToSessionSubagent,
492
+ labeledSubagents,
457
493
  envelopes: [
458
494
  ...emitSubagentStops(lifecycleOpts, startedSubagents, activeSubagents),
459
495
  index.createEnvelope("agent", {
@@ -469,6 +505,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
469
505
  startedSubagents,
470
506
  activeSubagents,
471
507
  providerSubagentToSessionSubagent,
508
+ labeledSubagents,
472
509
  envelopes: []
473
510
  };
474
511
  }
@@ -481,17 +518,19 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
481
518
  startedSubagents,
482
519
  activeSubagents,
483
520
  providerSubagentToSessionSubagent,
521
+ labeledSubagents,
484
522
  envelopes: []
485
523
  };
486
524
  }
487
525
  const envelopes = [];
488
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
526
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
489
527
  envelopes.push(index.createEnvelope("agent", { t: "text", text: message.message }, opts));
490
528
  return {
491
529
  currentTurnId: state.currentTurnId,
492
530
  startedSubagents,
493
531
  activeSubagents,
494
532
  providerSubagentToSessionSubagent,
533
+ labeledSubagents,
495
534
  envelopes
496
535
  };
497
536
  }
@@ -503,17 +542,19 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
503
542
  startedSubagents,
504
543
  activeSubagents,
505
544
  providerSubagentToSessionSubagent,
545
+ labeledSubagents,
506
546
  envelopes: []
507
547
  };
508
548
  }
509
549
  const envelopes = [];
510
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
550
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
511
551
  envelopes.push(index.createEnvelope("agent", { t: "text", text, thinking: true }, opts));
512
552
  return {
513
553
  currentTurnId: state.currentTurnId,
514
554
  startedSubagents,
515
555
  activeSubagents,
516
556
  providerSubagentToSessionSubagent,
557
+ labeledSubagents,
517
558
  envelopes
518
559
  };
519
560
  }
@@ -523,7 +564,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
523
564
  const command = summarizeCommand(args.command);
524
565
  const description = typeof args.description === "string" ? args.description : command ?? "Execute command";
525
566
  const envelopes = [];
526
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
567
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
527
568
  envelopes.push(
528
569
  index.createEnvelope("agent", {
529
570
  t: "tool-call-start",
@@ -539,19 +580,21 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
539
580
  startedSubagents,
540
581
  activeSubagents,
541
582
  providerSubagentToSessionSubagent,
583
+ labeledSubagents,
542
584
  envelopes
543
585
  };
544
586
  }
545
587
  if (type === "exec_command_end") {
546
588
  const call = pickCallId(message);
547
589
  const envelopes = [];
548
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
590
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
549
591
  envelopes.push(index.createEnvelope("agent", { t: "tool-call-end", call }, opts));
550
592
  return {
551
593
  currentTurnId: state.currentTurnId,
552
594
  startedSubagents,
553
595
  activeSubagents,
554
596
  providerSubagentToSessionSubagent,
597
+ labeledSubagents,
555
598
  envelopes
556
599
  };
557
600
  }
@@ -560,7 +603,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
560
603
  const autoApproved = message.auto_approved;
561
604
  const changes = message.changes;
562
605
  const envelopes = [];
563
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
606
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
564
607
  envelopes.push(
565
608
  index.createEnvelope("agent", {
566
609
  t: "tool-call-start",
@@ -579,19 +622,21 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
579
622
  startedSubagents,
580
623
  activeSubagents,
581
624
  providerSubagentToSessionSubagent,
625
+ labeledSubagents,
582
626
  envelopes
583
627
  };
584
628
  }
585
629
  if (type === "patch_apply_end") {
586
630
  const call = pickCallId(message);
587
631
  const envelopes = [];
588
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
632
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
589
633
  envelopes.push(index.createEnvelope("agent", { t: "tool-call-end", call }, opts));
590
634
  return {
591
635
  currentTurnId: state.currentTurnId,
592
636
  startedSubagents,
593
637
  activeSubagents,
594
638
  providerSubagentToSessionSubagent,
639
+ labeledSubagents,
595
640
  envelopes
596
641
  };
597
642
  }
@@ -600,6 +645,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
600
645
  startedSubagents,
601
646
  activeSubagents,
602
647
  providerSubagentToSessionSubagent,
648
+ labeledSubagents,
603
649
  envelopes: []
604
650
  };
605
651
  }
@@ -1081,6 +1127,10 @@ function describeCodexRetry(msg) {
1081
1127
  const cause = status ? `HTTP ${status} from the model API` : "a model API error";
1082
1128
  return message ? `Codex is retrying after ${cause} (${message})` : `Codex is retrying after ${cause}`;
1083
1129
  }
1130
+ function codexStderrTailOf(error) {
1131
+ const tail = error?.codexStderrTail;
1132
+ return typeof tail === "string" && tail.trim() ? tail.trim() : null;
1133
+ }
1084
1134
  const TRANSPORT_LOSS = /^Codex process (exited|disconnected)\b|stdin not writable| timed out after \d+ms/;
1085
1135
  function describeThrownTurnError(error) {
1086
1136
  const message = error instanceof Error ? error.message : typeof error === "string" ? error : "";
@@ -1246,6 +1296,27 @@ function enqueueCodexUserText(opts) {
1246
1296
  return "queued";
1247
1297
  }
1248
1298
 
1299
+ async function steerIntoRunningTurn(deps, text, attachments, localKey) {
1300
+ if (!deps.ownsTurn()) return false;
1301
+ const staged = attachments?.length ? await deps.stage(attachments) : [];
1302
+ try {
1303
+ const outcome = await deps.steer({
1304
+ text: deps.withAttachments(text, staged),
1305
+ images: staged.filter((file) => deps.isImage(file)).map((file) => file.path),
1306
+ clientId: localKey
1307
+ });
1308
+ if (outcome === "steered") {
1309
+ deps.onSteered(text);
1310
+ return true;
1311
+ }
1312
+ deps.log(`[Codex] Steer not taken (${outcome}); queuing the message for the next turn`);
1313
+ } catch (error) {
1314
+ deps.log(`[Codex] Steer failed; queuing the message for the next turn: ${error instanceof Error ? error.message : String(error)}`);
1315
+ }
1316
+ await Promise.all(staged.map((file) => deps.unlink(file.path).catch(() => void 0)));
1317
+ return false;
1318
+ }
1319
+
1249
1320
  function hashCodexEnhancedMode(mode) {
1250
1321
  return deterministicJson.hashObject({
1251
1322
  permissionMode: mode.permissionMode,
@@ -1347,7 +1418,7 @@ async function runCodex(opts) {
1347
1418
  dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
1348
1419
  ...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
1349
1420
  ...forkedFromMessageId ? { forkedFromMessageId } : {},
1350
- capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY]
1421
+ capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, index.CODEX_STEER_CAPABILITY]
1351
1422
  });
1352
1423
  metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
1353
1424
  const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
@@ -1478,6 +1549,20 @@ async function runCodex(opts) {
1478
1549
  ];
1479
1550
  let discoveredModels = [];
1480
1551
  agentAttachments.registerAgentAttachmentDownloads(session);
1552
+ const CODEX_IMAGE_MIME_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
1553
+ const steerDeps = {
1554
+ ownsTurn: () => turnActive && !abortInProgress && !shouldExit,
1555
+ steer: (input) => client.steerTurn(input),
1556
+ stage: (attachments) => attachmentContent.stageClaudeAttachments(attachments, {
1557
+ happyHomeDir: configuration.configuration.happyHomeDir,
1558
+ sessionId: session.sessionId
1559
+ }),
1560
+ withAttachments: attachmentContent.appendStagedAttachmentsToPrompt,
1561
+ unlink: (path) => promises.unlink(path),
1562
+ isImage: (file) => CODEX_IMAGE_MIME_TYPES.includes(file.mimeType),
1563
+ onSteered: (text) => messageBuffer$1.addMessage(text, "user"),
1564
+ log: (message) => logger.logger.debug(message)
1565
+ };
1481
1566
  let userMessageDelivery = Promise.resolve();
1482
1567
  session.onUserMessage((message) => {
1483
1568
  const downloads = session.drainAttachmentsForUserMessage();
@@ -1535,6 +1620,12 @@ async function runCodex(opts) {
1535
1620
  appendSystemPrompt: messageAppendSystemPrompt,
1536
1621
  effort: messageEffort
1537
1622
  };
1623
+ if (message.meta?.delivery === "steer" && !isCodexClearText(message.content.text)) {
1624
+ if (await steerIntoRunningTurn(steerDeps, message.content.text, attachments, message.localKey)) {
1625
+ logger.logger.debug("[Codex] User message steered into the current turn");
1626
+ return;
1627
+ }
1628
+ }
1538
1629
  const enqueueResult = enqueueCodexUserText({
1539
1630
  text: message.content.text,
1540
1631
  mode: enhancedMode,
@@ -1555,6 +1646,7 @@ async function runCodex(opts) {
1555
1646
  let codexStartedSubagents = /* @__PURE__ */ new Set();
1556
1647
  let codexActiveSubagents = /* @__PURE__ */ new Set();
1557
1648
  let codexProviderSubagentToSessionSubagent = /* @__PURE__ */ new Map();
1649
+ let codexLabeledSubagents = /* @__PURE__ */ new Set();
1558
1650
  session.keepAlive(thinking, "remote");
1559
1651
  const keepAliveInterval = setInterval(() => {
1560
1652
  session.keepAlive(thinking, "remote");
@@ -1776,6 +1868,12 @@ async function runCodex(opts) {
1776
1868
  const notice = describeCodexRetry(msg);
1777
1869
  messageBuffer$1.addMessage(notice, "status");
1778
1870
  session.sendSessionEvent({ type: "message", message: notice });
1871
+ } else if (msg.type === "steer_dropped") {
1872
+ const clientIds = Array.isArray(msg.client_ids) ? msg.client_ids.filter((id) => typeof id === "string" && id.length > 0) : [];
1873
+ if (clientIds.length > 0) {
1874
+ session.sendQueueCancelReason(clientIds, "aborted");
1875
+ messageBuffer$1.addMessage("A steered message was not read before the turn ended", "status");
1876
+ }
1779
1877
  }
1780
1878
  if (msg.type === "task_started") {
1781
1879
  if (!thinking) {
@@ -1830,12 +1928,14 @@ async function runCodex(opts) {
1830
1928
  currentTurnId,
1831
1929
  startedSubagents: codexStartedSubagents,
1832
1930
  activeSubagents: codexActiveSubagents,
1833
- providerSubagentToSessionSubagent: codexProviderSubagentToSessionSubagent
1931
+ providerSubagentToSessionSubagent: codexProviderSubagentToSessionSubagent,
1932
+ labeledSubagents: codexLabeledSubagents
1834
1933
  });
1835
1934
  currentTurnId = mapped.currentTurnId;
1836
1935
  codexStartedSubagents = mapped.startedSubagents;
1837
1936
  codexActiveSubagents = mapped.activeSubagents;
1838
1937
  codexProviderSubagentToSessionSubagent = mapped.providerSubagentToSessionSubagent;
1938
+ codexLabeledSubagents = mapped.labeledSubagents;
1839
1939
  for (const envelope of mapped.envelopes) {
1840
1940
  session.sendSessionProtocolMessage(envelope);
1841
1941
  }
@@ -2003,6 +2103,7 @@ async function runCodex(opts) {
2003
2103
  codexStartedSubagents = /* @__PURE__ */ new Set();
2004
2104
  codexActiveSubagents = /* @__PURE__ */ new Set();
2005
2105
  codexProviderSubagentToSessionSubagent = /* @__PURE__ */ new Map();
2106
+ codexLabeledSubagents = /* @__PURE__ */ new Set();
2006
2107
  permissionHandler.reset();
2007
2108
  reasoningProcessor.abort();
2008
2109
  diffProcessor.reset();
@@ -2086,8 +2187,9 @@ async function runCodex(opts) {
2086
2187
  messageBuffer$1.addMessage(`Task failed: ${reason}`, "status");
2087
2188
  session.sendSessionEvent({ type: "message", message: `Codex error: ${reason}` });
2088
2189
  } else {
2190
+ const tail = codexStderrTailOf(error);
2089
2191
  messageBuffer$1.addMessage("Process exited unexpectedly", "status");
2090
- session.sendSessionEvent({ type: "message", message: "Process exited unexpectedly" });
2192
+ session.sendSessionEvent({ type: "message", message: tail ? `Process exited unexpectedly: ${tail}` : "Process exited unexpectedly" });
2091
2193
  }
2092
2194
  } finally {
2093
2195
  permissionHandler.reset();