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,96 +1,96 @@
1
- import { a as authAndSetupMachineIfNeeded } from './auth-CiZfkTkd.mjs';
2
- import { c as createEnvelope, o as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY } from './index-boE-d8CM.mjs';
1
+ import { a as authAndSetupMachineIfNeeded } from './auth-B3xMoveE.mjs';
2
+ import { c as createEnvelope, o as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY, r as CODEX_STEER_CAPABILITY } from './index-DMy3OCBe.mjs';
3
+ import { unlink } from 'node:fs/promises';
3
4
  import { p as publishForkBackfillWhenCommitted, F as FORK_BACKFILL_CAPABILITY } from './forkBackfill-DYIjlN1Z.mjs';
4
5
  import { randomUUID } from 'node:crypto';
5
6
  import { createId } from '@paralleldrive/cuid2';
6
7
  import { r as registerAgentAttachmentDownloads } from './agentAttachments-M_B5qEF2.mjs';
7
- import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-CSGb8uDJ.mjs';
8
+ import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-BQYc8KpE.mjs';
8
9
  import { useStdout, useInput, Box, Text, render } from 'ink';
9
- import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyHibernationReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata } from './sessionLock-D_-T15Y-.mjs';
10
+ import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyHibernationReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata } from './sessionLock-Ddn-fhZ0.mjs';
10
11
  import React, { useState, useRef, useEffect, useCallback } from 'react';
11
- import { c as connectionState, A as ApiClient } from './api-rOLB1-sV.mjs';
12
- import { C as CodexAppServerClient } from './codexAppServerClient-pnCpJlD8.mjs';
13
- import { p as parseSpecialCommand, w as wrapperRateLimitReporter } from './specialCommands-BbNlcS3G.mjs';
14
- import { l as logger } from './logger-CUxbqfrp.mjs';
15
- import { B as BasePermissionHandler } from './BasePermissionHandler-BiWdGyL1.mjs';
16
- import { B as BaseReasoningProcessor } from './BaseReasoningProcessor-2sLuoRYw.mjs';
12
+ import { c as connectionState, A as ApiClient } from './api-CbwDDXJt.mjs';
13
+ import { C as CodexAppServerClient } from './codexAppServerClient-C70pJ-BB.mjs';
14
+ import { p as parseSpecialCommand, w as wrapperRateLimitReporter } from './specialCommands-DfVMGXTl.mjs';
15
+ import { l as logger } from './logger-CihCDWDw.mjs';
16
+ import { B as BasePermissionHandler } from './BasePermissionHandler-ChMkmsGD.mjs';
17
+ import { B as BaseReasoningProcessor } from './BaseReasoningProcessor-pjvLSTQF.mjs';
17
18
  import { execSync } from 'node:child_process';
18
- import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-CBToZ0R6.mjs';
19
- import { g as getInitialMachineMetadata } from './machineMetadata-QfdvKIrL.mjs';
20
- import { c as configuration } from './configuration-zOfO2qdB.mjs';
21
- import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-B7zpuzvS.mjs';
19
+ import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-Dy3lmall.mjs';
20
+ import { g as getInitialMachineMetadata } from './machineMetadata-DEZcQ_CQ.mjs';
21
+ import { c as configuration } from './configuration-BAwOtWFY.mjs';
22
+ import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-D02OY4vi.mjs';
22
23
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
23
24
  import { join } from 'node:path';
24
- import { c as createSessionMetadata } from './createSessionMetadata-CM7ErnPh.mjs';
25
- import { h as hashObject, s as startHappyServer } from './deterministicJson-DVvfcibH.mjs';
25
+ import { c as createSessionMetadata } from './createSessionMetadata-xlycGog5.mjs';
26
+ import { h as hashObject, s as startHappyServer } from './deterministicJson-ucyv8j6b.mjs';
26
27
  import { M as MessageBuffer } from './messageBuffer-BWlGgR3A.mjs';
27
- import { n as notifyDaemonSessionStarted, j as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-CbmWgWJW.mjs';
28
- import { a as HibernationExitLatch, H as HibernationProbe, c as commitHibernation, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-CmgCDVpL.mjs';
28
+ import { n as notifyDaemonSessionStarted, j as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-00KYAjsI.mjs';
29
+ import { a as HibernationExitLatch, H as HibernationProbe, c as commitHibernation, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-B97ox9p1.mjs';
29
30
  import { d as decodeBase64, e as encodeBase64 } from './authRelay-DSAvg1uv.mjs';
30
- import { s as setupOfflineReconnection } from './setupOfflineReconnection-D51KXWAP.mjs';
31
+ import { s as setupOfflineReconnection } from './setupOfflineReconnection-DQHEp330.mjs';
31
32
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
32
33
  import { C as CHANGE_TITLE_INSTRUCTION } from './constants-BC4St0xd.mjs';
33
34
  import { E as EditReportThrottle, a as extractCodexPatchPaths } from './editPaths-BVfS_FFL.mjs';
34
- import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-CWo9yDAC.mjs';
35
+ import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-DJlziY-m.mjs';
35
36
  import 'tweetnacl';
36
37
  import 'axios';
37
- import './time-7iVn8KLQ.mjs';
38
- import './browser-IVfX6PQT.mjs';
38
+ import './time-DxCTiteK.mjs';
39
+ import './browser-BvARP-YR.mjs';
39
40
  import 'open';
40
41
  import 'zod';
41
- import 'node:fs/promises';
42
- import './attachmentLimits-BLbji11b.mjs';
42
+ import './attachmentLimits-Di1Z93lN.mjs';
43
43
  import 'node:fs';
44
- import './lidState-Bv862v_R.mjs';
44
+ import './lidState-CduPmrM0.mjs';
45
45
  import 'os';
46
46
  import 'child_process';
47
47
  import 'node:events';
48
48
  import 'socket.io-client';
49
49
  import './limits-DIo7rEBR.mjs';
50
- import './registerCommonHandlers-C_KbP5Mq.mjs';
50
+ import './registerCommonHandlers-Bm7CMqMv.mjs';
51
51
  import 'util';
52
52
  import 'fs/promises';
53
53
  import 'crypto';
54
54
  import 'path';
55
55
  import 'cross-spawn';
56
- import './sync-MTpgBfV2.mjs';
56
+ import './sync-BKvgkhPs.mjs';
57
57
  import './backgroundTaskActivity-8PdPxrvy.mjs';
58
58
  import './contentLogMetadata-BlWI0egu.mjs';
59
59
  import 'chalk';
60
60
  import 'node:readline';
61
- import './manager-BEsI4qt3.mjs';
61
+ import './manager-2Il8XJVq.mjs';
62
62
  import '@anthropic-ai/sandbox-runtime';
63
63
  import 'node:os';
64
- import './package-DkI3yDe0.mjs';
65
- import './rateLimitWindows-i2-530Zt.mjs';
64
+ import './package-ayqGDKSp.mjs';
65
+ import './rateLimitWindows-E5DRjfE6.mjs';
66
66
  import 'node:util';
67
67
  import './detectCLI-CSGMlV51.mjs';
68
68
  import 'fs';
69
- import './localHappyAgentAuth-CLP3CBMK.mjs';
69
+ import './localHappyAgentAuth-DL8JjHTV.mjs';
70
70
  import './types-CkqAACXx.mjs';
71
71
  import 'url';
72
- import './client-DbqP92Fy.mjs';
73
- import './context-BTX3YYdt.mjs';
74
- import './sessionOps-DfAtoDD5.mjs';
72
+ import './client-Cg6ABRe-.mjs';
73
+ import './context-j114QJre.mjs';
74
+ import './sessionOps-B1vQ25GS.mjs';
75
75
  import './resources-BdFBQi8r.mjs';
76
- import './tools-BSlqfWAq.mjs';
77
- import './reportProgressTool-DujvMncK.mjs';
78
- import './client-Bi1DOVy9.mjs';
76
+ import './tools-697R1uqn.mjs';
77
+ import './reportProgressTool-C5aSoKYX.mjs';
78
+ import './client-Ryu9fllj.mjs';
79
79
  import './precheckCompat-DeEbilbr.mjs';
80
80
  import './agentGuidance-BDYt2Qy2.mjs';
81
- import './peerTools-zfe59JAw.mjs';
81
+ import './peerTools-DDMSViPu.mjs';
82
82
  import './ids-DU6sLx4C.mjs';
83
- import './remoteSessionClient-Bk1Qzb5I.mjs';
83
+ import './remoteSessionClient-Buh6NejV.mjs';
84
84
  import '@modelcontextprotocol/sdk/server/mcp.js';
85
85
  import 'node:http';
86
86
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
87
- import './downloadTarget-C-18yOBz.mjs';
87
+ import './downloadTarget-2_zMvt2N.mjs';
88
88
  import './terminals-Dlg0x3nY.mjs';
89
89
  import './terminalTitleSuggest-CeKsX_V6.mjs';
90
90
  import './tmuxSocket-B8Yx20sT.mjs';
91
- import './bootstrap-D1RRCJdQ.mjs';
91
+ import './bootstrap-CxuBAkJU.mjs';
92
92
  import './previewPath-CXN4Vag0.mjs';
93
- import './spawnHappyCLI-CYS23qZY.mjs';
93
+ import './spawnHappyCLI-C8Vl56wB.mjs';
94
94
  import './doctorReadiness-C208SMN9.mjs';
95
95
 
96
96
  function getStartedSubagents(state) {
@@ -102,13 +102,29 @@ function getActiveSubagents(state) {
102
102
  function getProviderSubagentToSessionSubagent(state) {
103
103
  return state.providerSubagentToSessionSubagent ?? /* @__PURE__ */ new Map();
104
104
  }
105
- function maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes) {
106
- if (!subagent || startedSubagents.has(subagent)) {
105
+ function getLabeledSubagents(state) {
106
+ return state.labeledSubagents ?? /* @__PURE__ */ new Set();
107
+ }
108
+ function maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, label, labeledSubagents = /* @__PURE__ */ new Set()) {
109
+ if (!subagent) {
110
+ return;
111
+ }
112
+ if (startedSubagents.has(subagent)) {
113
+ if (label && !labeledSubagents.has(subagent)) {
114
+ envelopes.push(createEnvelope("agent", { t: "start", description: label }, { ...opts, subagent }));
115
+ labeledSubagents.add(subagent);
116
+ }
107
117
  return;
108
118
  }
109
- envelopes.push(createEnvelope("agent", { t: "start" }, { ...opts, subagent }));
119
+ envelopes.push(createEnvelope("agent", { t: "start", ...label ? { description: label } : {} }, { ...opts, subagent }));
110
120
  startedSubagents.add(subagent);
111
121
  activeSubagents.add(subagent);
122
+ if (label) labeledSubagents.add(subagent);
123
+ }
124
+ function subagentStopStatus(status) {
125
+ if (status === "failed") return "failed";
126
+ if (status === "interrupted" || status === "cancelled" || status === "canceled" || status === "aborted") return "stopped";
127
+ return "completed";
112
128
  }
113
129
  function emitSubagentStops(opts, startedSubagents, activeSubagents) {
114
130
  const envelopes = [];
@@ -134,6 +150,10 @@ function pickProviderSubagent(message) {
134
150
  }
135
151
  return void 0;
136
152
  }
153
+ function pickSubagentLabel(message) {
154
+ const label = message.subagent_label;
155
+ return typeof label === "string" && label.length > 0 ? label : void 0;
156
+ }
137
157
  function resolveSessionSubagent(message, providerSubagentToSessionSubagent) {
138
158
  const providerSubagent = pickProviderSubagent(message);
139
159
  if (!providerSubagent) {
@@ -412,14 +432,25 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
412
432
  const startedSubagents = getStartedSubagents(state);
413
433
  const activeSubagents = getActiveSubagents(state);
414
434
  const providerSubagentToSessionSubagent = getProviderSubagentToSessionSubagent(state);
435
+ const labeledSubagents = getLabeledSubagents(state);
415
436
  if (type === "collab_agent_item") {
416
- return {
417
- currentTurnId: state.currentTurnId,
418
- startedSubagents,
419
- activeSubagents,
420
- providerSubagentToSessionSubagent,
421
- envelopes: mapCodexCollaborationItem(message.item, buildEnvelopeOptions(state.currentTurnId), "live")
422
- };
437
+ const subagent2 = resolveSessionSubagent(message, providerSubagentToSessionSubagent);
438
+ const opts2 = buildEnvelopeOptions(state.currentTurnId, subagent2);
439
+ const envelopes = [];
440
+ maybeEmitSubagentStart(subagent2, opts2, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
441
+ envelopes.push(...mapCodexCollaborationItem(message.item, opts2, "live"));
442
+ return { currentTurnId: state.currentTurnId, startedSubagents, activeSubagents, providerSubagentToSessionSubagent, labeledSubagents, envelopes };
443
+ }
444
+ if (type === "subagent_turn_end") {
445
+ const providerSubagent = pickProviderSubagent(message);
446
+ const sessionSubagent = providerSubagent ? providerSubagentToSessionSubagent.get(providerSubagent) : void 0;
447
+ const envelopes = [];
448
+ if (sessionSubagent && activeSubagents.has(sessionSubagent)) {
449
+ envelopes.push(createEnvelope("agent", { t: "stop", status: subagentStopStatus(message.status) }, buildEnvelopeOptions(state.currentTurnId, sessionSubagent)));
450
+ activeSubagents.delete(sessionSubagent);
451
+ startedSubagents.delete(sessionSubagent);
452
+ }
453
+ return { currentTurnId: state.currentTurnId, startedSubagents, activeSubagents, providerSubagentToSessionSubagent, labeledSubagents, envelopes };
423
454
  }
424
455
  if (type === "task_started") {
425
456
  const turnId = createId();
@@ -427,11 +458,13 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
427
458
  startedSubagents.clear();
428
459
  activeSubagents.clear();
429
460
  providerSubagentToSessionSubagent.clear();
461
+ labeledSubagents.clear();
430
462
  return {
431
463
  currentTurnId: turnId,
432
464
  startedSubagents,
433
465
  activeSubagents,
434
466
  providerSubagentToSessionSubagent,
467
+ labeledSubagents,
435
468
  envelopes: [turnStart]
436
469
  };
437
470
  }
@@ -442,16 +475,19 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
442
475
  startedSubagents,
443
476
  activeSubagents,
444
477
  providerSubagentToSessionSubagent,
478
+ labeledSubagents,
445
479
  envelopes: []
446
480
  };
447
481
  }
448
482
  const lifecycleOpts = { turn: state.currentTurnId };
449
483
  providerSubagentToSessionSubagent.clear();
484
+ labeledSubagents.clear();
450
485
  return {
451
486
  currentTurnId: null,
452
487
  startedSubagents,
453
488
  activeSubagents,
454
489
  providerSubagentToSessionSubagent,
490
+ labeledSubagents,
455
491
  envelopes: [
456
492
  ...emitSubagentStops(lifecycleOpts, startedSubagents, activeSubagents),
457
493
  createEnvelope("agent", {
@@ -467,6 +503,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
467
503
  startedSubagents,
468
504
  activeSubagents,
469
505
  providerSubagentToSessionSubagent,
506
+ labeledSubagents,
470
507
  envelopes: []
471
508
  };
472
509
  }
@@ -479,17 +516,19 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
479
516
  startedSubagents,
480
517
  activeSubagents,
481
518
  providerSubagentToSessionSubagent,
519
+ labeledSubagents,
482
520
  envelopes: []
483
521
  };
484
522
  }
485
523
  const envelopes = [];
486
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
524
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
487
525
  envelopes.push(createEnvelope("agent", { t: "text", text: message.message }, opts));
488
526
  return {
489
527
  currentTurnId: state.currentTurnId,
490
528
  startedSubagents,
491
529
  activeSubagents,
492
530
  providerSubagentToSessionSubagent,
531
+ labeledSubagents,
493
532
  envelopes
494
533
  };
495
534
  }
@@ -501,17 +540,19 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
501
540
  startedSubagents,
502
541
  activeSubagents,
503
542
  providerSubagentToSessionSubagent,
543
+ labeledSubagents,
504
544
  envelopes: []
505
545
  };
506
546
  }
507
547
  const envelopes = [];
508
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
548
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
509
549
  envelopes.push(createEnvelope("agent", { t: "text", text, thinking: true }, opts));
510
550
  return {
511
551
  currentTurnId: state.currentTurnId,
512
552
  startedSubagents,
513
553
  activeSubagents,
514
554
  providerSubagentToSessionSubagent,
555
+ labeledSubagents,
515
556
  envelopes
516
557
  };
517
558
  }
@@ -521,7 +562,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
521
562
  const command = summarizeCommand(args.command);
522
563
  const description = typeof args.description === "string" ? args.description : command ?? "Execute command";
523
564
  const envelopes = [];
524
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
565
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
525
566
  envelopes.push(
526
567
  createEnvelope("agent", {
527
568
  t: "tool-call-start",
@@ -537,19 +578,21 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
537
578
  startedSubagents,
538
579
  activeSubagents,
539
580
  providerSubagentToSessionSubagent,
581
+ labeledSubagents,
540
582
  envelopes
541
583
  };
542
584
  }
543
585
  if (type === "exec_command_end") {
544
586
  const call = pickCallId(message);
545
587
  const envelopes = [];
546
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
588
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
547
589
  envelopes.push(createEnvelope("agent", { t: "tool-call-end", call }, opts));
548
590
  return {
549
591
  currentTurnId: state.currentTurnId,
550
592
  startedSubagents,
551
593
  activeSubagents,
552
594
  providerSubagentToSessionSubagent,
595
+ labeledSubagents,
553
596
  envelopes
554
597
  };
555
598
  }
@@ -558,7 +601,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
558
601
  const autoApproved = message.auto_approved;
559
602
  const changes = message.changes;
560
603
  const envelopes = [];
561
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
604
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
562
605
  envelopes.push(
563
606
  createEnvelope("agent", {
564
607
  t: "tool-call-start",
@@ -577,19 +620,21 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
577
620
  startedSubagents,
578
621
  activeSubagents,
579
622
  providerSubagentToSessionSubagent,
623
+ labeledSubagents,
580
624
  envelopes
581
625
  };
582
626
  }
583
627
  if (type === "patch_apply_end") {
584
628
  const call = pickCallId(message);
585
629
  const envelopes = [];
586
- maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes);
630
+ maybeEmitSubagentStart(subagent, opts, startedSubagents, activeSubagents, envelopes, pickSubagentLabel(message), labeledSubagents);
587
631
  envelopes.push(createEnvelope("agent", { t: "tool-call-end", call }, opts));
588
632
  return {
589
633
  currentTurnId: state.currentTurnId,
590
634
  startedSubagents,
591
635
  activeSubagents,
592
636
  providerSubagentToSessionSubagent,
637
+ labeledSubagents,
593
638
  envelopes
594
639
  };
595
640
  }
@@ -598,6 +643,7 @@ function mapCodexMcpMessageToSessionEnvelopes(message, state) {
598
643
  startedSubagents,
599
644
  activeSubagents,
600
645
  providerSubagentToSessionSubagent,
646
+ labeledSubagents,
601
647
  envelopes: []
602
648
  };
603
649
  }
@@ -1079,6 +1125,10 @@ function describeCodexRetry(msg) {
1079
1125
  const cause = status ? `HTTP ${status} from the model API` : "a model API error";
1080
1126
  return message ? `Codex is retrying after ${cause} (${message})` : `Codex is retrying after ${cause}`;
1081
1127
  }
1128
+ function codexStderrTailOf(error) {
1129
+ const tail = error?.codexStderrTail;
1130
+ return typeof tail === "string" && tail.trim() ? tail.trim() : null;
1131
+ }
1082
1132
  const TRANSPORT_LOSS = /^Codex process (exited|disconnected)\b|stdin not writable| timed out after \d+ms/;
1083
1133
  function describeThrownTurnError(error) {
1084
1134
  const message = error instanceof Error ? error.message : typeof error === "string" ? error : "";
@@ -1244,6 +1294,27 @@ function enqueueCodexUserText(opts) {
1244
1294
  return "queued";
1245
1295
  }
1246
1296
 
1297
+ async function steerIntoRunningTurn(deps, text, attachments, localKey) {
1298
+ if (!deps.ownsTurn()) return false;
1299
+ const staged = attachments?.length ? await deps.stage(attachments) : [];
1300
+ try {
1301
+ const outcome = await deps.steer({
1302
+ text: deps.withAttachments(text, staged),
1303
+ images: staged.filter((file) => deps.isImage(file)).map((file) => file.path),
1304
+ clientId: localKey
1305
+ });
1306
+ if (outcome === "steered") {
1307
+ deps.onSteered(text);
1308
+ return true;
1309
+ }
1310
+ deps.log(`[Codex] Steer not taken (${outcome}); queuing the message for the next turn`);
1311
+ } catch (error) {
1312
+ deps.log(`[Codex] Steer failed; queuing the message for the next turn: ${error instanceof Error ? error.message : String(error)}`);
1313
+ }
1314
+ await Promise.all(staged.map((file) => deps.unlink(file.path).catch(() => void 0)));
1315
+ return false;
1316
+ }
1317
+
1247
1318
  function hashCodexEnhancedMode(mode) {
1248
1319
  return hashObject({
1249
1320
  permissionMode: mode.permissionMode,
@@ -1345,7 +1416,7 @@ async function runCodex(opts) {
1345
1416
  dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
1346
1417
  ...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
1347
1418
  ...forkedFromMessageId ? { forkedFromMessageId } : {},
1348
- capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY]
1419
+ capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, CODEX_STEER_CAPABILITY]
1349
1420
  });
1350
1421
  metadata.attachmentKinds = [...CLAUDE_ATTACHMENT_KINDS];
1351
1422
  const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
@@ -1476,6 +1547,20 @@ async function runCodex(opts) {
1476
1547
  ];
1477
1548
  let discoveredModels = [];
1478
1549
  registerAgentAttachmentDownloads(session);
1550
+ const CODEX_IMAGE_MIME_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
1551
+ const steerDeps = {
1552
+ ownsTurn: () => turnActive && !abortInProgress && !shouldExit,
1553
+ steer: (input) => client.steerTurn(input),
1554
+ stage: (attachments) => stageClaudeAttachments(attachments, {
1555
+ happyHomeDir: configuration.happyHomeDir,
1556
+ sessionId: session.sessionId
1557
+ }),
1558
+ withAttachments: appendStagedAttachmentsToPrompt,
1559
+ unlink: (path) => unlink(path),
1560
+ isImage: (file) => CODEX_IMAGE_MIME_TYPES.includes(file.mimeType),
1561
+ onSteered: (text) => messageBuffer.addMessage(text, "user"),
1562
+ log: (message) => logger.debug(message)
1563
+ };
1479
1564
  let userMessageDelivery = Promise.resolve();
1480
1565
  session.onUserMessage((message) => {
1481
1566
  const downloads = session.drainAttachmentsForUserMessage();
@@ -1533,6 +1618,12 @@ async function runCodex(opts) {
1533
1618
  appendSystemPrompt: messageAppendSystemPrompt,
1534
1619
  effort: messageEffort
1535
1620
  };
1621
+ if (message.meta?.delivery === "steer" && !isCodexClearText(message.content.text)) {
1622
+ if (await steerIntoRunningTurn(steerDeps, message.content.text, attachments, message.localKey)) {
1623
+ logger.debug("[Codex] User message steered into the current turn");
1624
+ return;
1625
+ }
1626
+ }
1536
1627
  const enqueueResult = enqueueCodexUserText({
1537
1628
  text: message.content.text,
1538
1629
  mode: enhancedMode,
@@ -1553,6 +1644,7 @@ async function runCodex(opts) {
1553
1644
  let codexStartedSubagents = /* @__PURE__ */ new Set();
1554
1645
  let codexActiveSubagents = /* @__PURE__ */ new Set();
1555
1646
  let codexProviderSubagentToSessionSubagent = /* @__PURE__ */ new Map();
1647
+ let codexLabeledSubagents = /* @__PURE__ */ new Set();
1556
1648
  session.keepAlive(thinking, "remote");
1557
1649
  const keepAliveInterval = setInterval(() => {
1558
1650
  session.keepAlive(thinking, "remote");
@@ -1774,6 +1866,12 @@ async function runCodex(opts) {
1774
1866
  const notice = describeCodexRetry(msg);
1775
1867
  messageBuffer.addMessage(notice, "status");
1776
1868
  session.sendSessionEvent({ type: "message", message: notice });
1869
+ } else if (msg.type === "steer_dropped") {
1870
+ const clientIds = Array.isArray(msg.client_ids) ? msg.client_ids.filter((id) => typeof id === "string" && id.length > 0) : [];
1871
+ if (clientIds.length > 0) {
1872
+ session.sendQueueCancelReason(clientIds, "aborted");
1873
+ messageBuffer.addMessage("A steered message was not read before the turn ended", "status");
1874
+ }
1777
1875
  }
1778
1876
  if (msg.type === "task_started") {
1779
1877
  if (!thinking) {
@@ -1828,12 +1926,14 @@ async function runCodex(opts) {
1828
1926
  currentTurnId,
1829
1927
  startedSubagents: codexStartedSubagents,
1830
1928
  activeSubagents: codexActiveSubagents,
1831
- providerSubagentToSessionSubagent: codexProviderSubagentToSessionSubagent
1929
+ providerSubagentToSessionSubagent: codexProviderSubagentToSessionSubagent,
1930
+ labeledSubagents: codexLabeledSubagents
1832
1931
  });
1833
1932
  currentTurnId = mapped.currentTurnId;
1834
1933
  codexStartedSubagents = mapped.startedSubagents;
1835
1934
  codexActiveSubagents = mapped.activeSubagents;
1836
1935
  codexProviderSubagentToSessionSubagent = mapped.providerSubagentToSessionSubagent;
1936
+ codexLabeledSubagents = mapped.labeledSubagents;
1837
1937
  for (const envelope of mapped.envelopes) {
1838
1938
  session.sendSessionProtocolMessage(envelope);
1839
1939
  }
@@ -2001,6 +2101,7 @@ async function runCodex(opts) {
2001
2101
  codexStartedSubagents = /* @__PURE__ */ new Set();
2002
2102
  codexActiveSubagents = /* @__PURE__ */ new Set();
2003
2103
  codexProviderSubagentToSessionSubagent = /* @__PURE__ */ new Map();
2104
+ codexLabeledSubagents = /* @__PURE__ */ new Set();
2004
2105
  permissionHandler.reset();
2005
2106
  reasoningProcessor.abort();
2006
2107
  diffProcessor.reset();
@@ -2084,8 +2185,9 @@ async function runCodex(opts) {
2084
2185
  messageBuffer.addMessage(`Task failed: ${reason}`, "status");
2085
2186
  session.sendSessionEvent({ type: "message", message: `Codex error: ${reason}` });
2086
2187
  } else {
2188
+ const tail = codexStderrTailOf(error);
2087
2189
  messageBuffer.addMessage("Process exited unexpectedly", "status");
2088
- session.sendSessionEvent({ type: "message", message: "Process exited unexpectedly" });
2190
+ session.sendSessionEvent({ type: "message", message: tail ? `Process exited unexpectedly: ${tail}` : "Process exited unexpectedly" });
2089
2191
  }
2090
2192
  } finally {
2091
2193
  permissionHandler.reset();
@@ -4,15 +4,15 @@ var fs = require('fs');
4
4
  var path = require('path');
5
5
  var os = require('os');
6
6
  var child_process = require('child_process');
7
- var logger = require('./logger-XjIS0lU7.cjs');
7
+ var logger = require('./logger-zoO54Zsy.cjs');
8
8
  var constants = require('./constants-VJ0N6WuG.cjs');
9
9
  require('chalk');
10
10
  require('node:util');
11
- require('./configuration-Btwt68O2.cjs');
11
+ require('./configuration-CpBrilxV.cjs');
12
12
  require('node:fs');
13
13
  require('node:os');
14
14
  require('node:path');
15
- require('./package-DFQUF2in.cjs');
15
+ require('./package-A7zOGx8B.cjs');
16
16
  require('node:fs/promises');
17
17
  require('./trimIdent-4gvk9Wk6.cjs');
18
18
 
@@ -2,15 +2,15 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
2
2
  import { join } from 'path';
3
3
  import { homedir } from 'os';
4
4
  import { execSync } from 'child_process';
5
- import { l as logger } from './logger-CUxbqfrp.mjs';
5
+ import { l as logger } from './logger-CihCDWDw.mjs';
6
6
  import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './constants-BC4St0xd.mjs';
7
7
  import 'chalk';
8
8
  import 'node:util';
9
- import './configuration-zOfO2qdB.mjs';
9
+ import './configuration-BAwOtWFY.mjs';
10
10
  import 'node:fs';
11
11
  import 'node:os';
12
12
  import 'node:path';
13
- import './package-DkI3yDe0.mjs';
13
+ import './package-ayqGDKSp.mjs';
14
14
  import 'node:fs/promises';
15
15
  import './trimIdent-BAjmv_TG.mjs';
16
16
 
@@ -1,7 +1,7 @@
1
1
  import { mkdirSync, chmodSync, readdirSync, statSync, appendFileSync, writeFileSync, existsSync, readFileSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
3
  import { join } from 'node:path';
4
- import { p as packageJson } from './package-DkI3yDe0.mjs';
4
+ import { p as packageJson } from './package-ayqGDKSp.mjs';
5
5
  import { mkdir, chmod, writeFile } from 'node:fs/promises';
6
6
 
7
7
  const PRIVATE_DIRECTORY_MODE = 448;
@@ -3,7 +3,7 @@
3
3
  var node_fs = require('node:fs');
4
4
  var os = require('node:os');
5
5
  var path = require('node:path');
6
- var _package = require('./package-DFQUF2in.cjs');
6
+ var _package = require('./package-A7zOGx8B.cjs');
7
7
  var promises = require('node:fs/promises');
8
8
 
9
9
  const PRIVATE_DIRECTORY_MODE = 448;
@@ -3,12 +3,12 @@
3
3
  var chalk = require('chalk');
4
4
  var os = require('os');
5
5
  var path = require('path');
6
- var persistence = require('./persistence-BO7AS2NK.cjs');
7
- var api = require('./api-Cy_Mbe8W.cjs');
8
- var configuration = require('./configuration-Btwt68O2.cjs');
6
+ var persistence = require('./persistence-Cih2AWml.cjs');
7
+ var api = require('./api-Buc_ejoA.cjs');
8
+ var configuration = require('./configuration-CpBrilxV.cjs');
9
9
  var http = require('http');
10
10
  var crypto = require('crypto');
11
- var browser = require('./browser-i45hmvWw.cjs');
11
+ var browser = require('./browser-GQZJxD2n.cjs');
12
12
  var child_process = require('child_process');
13
13
  var util = require('util');
14
14
  require('node:fs/promises');
@@ -17,29 +17,29 @@ require('zod');
17
17
  require('./authRelay-BdYkC1Po.cjs');
18
18
  require('node:crypto');
19
19
  require('tweetnacl');
20
- require('./logger-XjIS0lU7.cjs');
20
+ require('./logger-zoO54Zsy.cjs');
21
21
  require('node:util');
22
22
  require('node:path');
23
23
  require('axios');
24
- require('./lidState-7uLoa43a.cjs');
24
+ require('./lidState-UasMvPzw.cjs');
25
25
  require('node:events');
26
26
  require('socket.io-client');
27
- require('./attachmentLimits-D6bT2jU1.cjs');
28
- require('./index-BZdhwBKa.cjs');
27
+ require('./attachmentLimits-DtFqqiwR.cjs');
28
+ require('./index-De8L5lFK.cjs');
29
29
  require('@paralleldrive/cuid2');
30
30
  require('./limits-C-a7gr04.cjs');
31
- require('./time-ChuhR6SU.cjs');
32
- require('./registerCommonHandlers-DTeuk3Hw.cjs');
31
+ require('./time-s8CaneqW.cjs');
32
+ require('./registerCommonHandlers-CqO075-X.cjs');
33
33
  require('fs/promises');
34
34
  require('cross-spawn');
35
35
  require('./projectPath-ChLhdOyt.cjs');
36
36
  require('url');
37
- require('./sync-CGVTRg-R.cjs');
37
+ require('./sync-BgZuthoS.cjs');
38
38
  require('./backgroundTaskActivity-CBvUdj39.cjs');
39
- require('./controlClient-CEpaptre.cjs');
39
+ require('./controlClient-bs_YqwDl.cjs');
40
40
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
41
41
  require('node:os');
42
- require('./package-DFQUF2in.cjs');
42
+ require('./package-A7zOGx8B.cjs');
43
43
  require('open');
44
44
 
45
45
  const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";