very-happy-cli 0.2.193 → 0.2.195

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 (210) hide show
  1. package/dist/{AcpBackend-B4PwjqHt.mjs → AcpBackend-BTIF87yb.mjs} +3 -3
  2. package/dist/{AcpBackend-DtJCgftG.cjs → AcpBackend-CXSV6FF5.cjs} +3 -3
  3. package/dist/{AcpSessionManager-D4qshX_H.cjs → AcpSessionManager-BbWODxSp.cjs} +2 -2
  4. package/dist/{AcpSessionManager-BzKWgkdP.mjs → AcpSessionManager-CEpU_GVk.mjs} +2 -2
  5. package/dist/{BasePermissionHandler-DV6UM6e9.mjs → BasePermissionHandler-B5ka7Aaf.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-5iG-cvA2.cjs → BasePermissionHandler-C6iF28Ct.cjs} +1 -1
  7. package/dist/{account-DvpA60oU.cjs → account-Bvcdk9CH.cjs} +11 -11
  8. package/dist/{account-Dco_nGT4.mjs → account-WSJcdMGl.mjs} +11 -11
  9. package/dist/{accountService-Cd7bnkfd.mjs → accountService-BtEgv0fC.mjs} +4 -4
  10. package/dist/{accountService-CuUSJDhP.cjs → accountService-DL6xhVUa.cjs} +4 -4
  11. package/dist/{acpSessionResume-Bk9mjXZ9.cjs → acpSessionResume-B2hd1Wub.cjs} +1 -1
  12. package/dist/{acpSessionResume-TQwN9ZZE.mjs → acpSessionResume-BYMm4w8Q.mjs} +1 -1
  13. package/dist/{agentHome-c2dlgcw1.cjs → agentHome-CVM15_3U.cjs} +4 -4
  14. package/dist/{agentHome-Bep8semY.mjs → agentHome-Jl8yWAjF.mjs} +4 -4
  15. package/dist/{api-DUfunY3x.mjs → api-DOzNOoVJ.mjs} +10 -10
  16. package/dist/{api-CBE_a88I.cjs → api-TpjZJXV-.cjs} +10 -10
  17. package/dist/{apiMachine-BqtG0IWm.cjs → apiMachine-COkvJAmd.cjs} +35 -19
  18. package/dist/{apiMachine-CU_bw5nV.mjs → apiMachine-M-Fs9g5Y.mjs} +35 -19
  19. package/dist/{attachmentContent-B3AzuYqk.cjs → attachmentContent-BiBOjTXX.cjs} +2 -2
  20. package/dist/{attachmentContent-KNIZxwlu.mjs → attachmentContent-D6PjMVDq.mjs} +2 -2
  21. package/dist/{auth-SJ_dPw7H.cjs → auth-BOceB8cL.cjs} +8 -8
  22. package/dist/{auth-CZ7pKS-j.mjs → auth-BfHLe1gU.mjs} +8 -8
  23. package/dist/{auth-jN5dNqTO.mjs → auth-Bfe3Ue_B.mjs} +5 -5
  24. package/dist/{auth-DCjxpI6Z.cjs → auth-DfcdjMUp.cjs} +5 -5
  25. package/dist/{auto-DC0Sq-qB.mjs → auto-CDeivd5V.mjs} +18 -18
  26. package/dist/{auto-B_59RYH1.cjs → auto-CnTitokD.cjs} +18 -18
  27. package/dist/{bootstrap-B3gMpU9e.mjs → bootstrap-BxcKrgR9.mjs} +2 -2
  28. package/dist/{bootstrap-CoJu9VnB.cjs → bootstrap-DpyP22Wx.cjs} +2 -2
  29. package/dist/{browser-LHW2hBH8.mjs → browser-Bb0Gqffc.mjs} +1 -1
  30. package/dist/{browser-v1pdPP1E.cjs → browser-ac0aPrVE.cjs} +1 -1
  31. package/dist/{claudeAccountEnv-BL1pR_37.mjs → claudeAccountEnv-NyoxjLuJ.mjs} +1 -1
  32. package/dist/{claudeAccountEnv-CEX_EMZr.cjs → claudeAccountEnv-_O3x5AJ1.cjs} +1 -1
  33. package/dist/{claudeLocal-BrzM2RBI.cjs → claudeLocal-RGWhplSr.cjs} +5 -5
  34. package/dist/{claudeLocal-BZUgA5G2.mjs → claudeLocal-otwxWF6e.mjs} +5 -5
  35. package/dist/{claudeLocalLauncher-A0AQyHFi.mjs → claudeLocalLauncher-CTibA4cU.mjs} +10 -10
  36. package/dist/{claudeLocalLauncher-XAMpXUM7.cjs → claudeLocalLauncher-yG-MBhY7.cjs} +10 -10
  37. package/dist/{claudeSessionFork-Mhn2fYe_.cjs → claudeSessionFork-DH_Su4uO.cjs} +104 -38
  38. package/dist/{claudeSessionFork-_GwIlmMB.mjs → claudeSessionFork-HFFwivGY.mjs} +105 -40
  39. package/dist/{client-DwbhrX6D.mjs → client-BhAjEv8Z.mjs} +4 -4
  40. package/dist/{client-D2GWkd-T.cjs → client-BlV73Gbw.cjs} +2 -2
  41. package/dist/{client-Bde4QVIn.mjs → client-CydHzidF.mjs} +2 -2
  42. package/dist/{client-CJr8Pjwm.cjs → client-DcXLNaF2.cjs} +2 -2
  43. package/dist/{client-7RnI9J0W.mjs → client-DpTk1S7C.mjs} +2 -2
  44. package/dist/{client-DLlnmAPL.cjs → client-DxjYsJ8d.cjs} +4 -4
  45. package/dist/codex/happyMcpStdioBridge.cjs +16 -16
  46. package/dist/codex/happyMcpStdioBridge.mjs +16 -16
  47. package/dist/{codexAccount-NOX5pmQf.mjs → codexAccount-CKXpXq0B.mjs} +1 -1
  48. package/dist/{codexAccount-BDQjRbtI.cjs → codexAccount-CYhQir50.cjs} +1 -1
  49. package/dist/{codexAppServerClient-DWEsZUC4.cjs → codexAppServerClient-C1xBSuVk.cjs} +60 -3
  50. package/dist/{codexAppServerClient-B3QJV6Ey.mjs → codexAppServerClient-mln0W8vT.mjs} +60 -3
  51. package/dist/{codexCommand-D1xlj4sT.mjs → codexCommand-CmWhYduF.mjs} +136 -47
  52. package/dist/{codexCommand-Bg8AmxVm.cjs → codexCommand-Plm-_aRy.cjs} +137 -48
  53. package/dist/{codexTermination-ByX9GcEJ.cjs → codexTermination-C9c80lIF.cjs} +1 -1
  54. package/dist/{codexTermination-CaWAVQjZ.mjs → codexTermination-QltAvFpq.mjs} +1 -1
  55. package/dist/{codexThreadFork-5kwoKjMu.cjs → codexThreadFork-C6ZmcT2z.cjs} +22 -1
  56. package/dist/{codexThreadFork-DobPd19R.mjs → codexThreadFork-CVzAqELg.mjs} +22 -2
  57. package/dist/{config-B2GGbiTv.cjs → config-BH75enfT.cjs} +3 -3
  58. package/dist/{config-C2XYEwXz.mjs → config-DK27kWTT.mjs} +3 -3
  59. package/dist/{configuration-BBK0rmmj.cjs → configuration-CKaq0tNe.cjs} +1 -1
  60. package/dist/{configuration-ThKBP_zY.mjs → configuration-CwfgJZKs.mjs} +1 -1
  61. package/dist/{connect-C3tZs_NC.cjs → connect-_QkCFMxO.cjs} +13 -13
  62. package/dist/{connect-BirnCl9q.mjs → connect-h3_VMJst.mjs} +13 -13
  63. package/dist/{context-wDp0aZBK.cjs → context-DbENnaVc.cjs} +1 -1
  64. package/dist/{context-C0EFLnOg.mjs → context-DcOpvIiR.mjs} +1 -1
  65. package/dist/{controlClient-DwWTns3A.cjs → controlClient-D_HIbnnS.cjs} +3 -3
  66. package/dist/{controlClient-Ckl8N1MS.mjs → controlClient-Dv6IvvUq.mjs} +4 -4
  67. package/dist/{createSessionMetadata-DqZ6h02H.cjs → createSessionMetadata-CusO22Am.cjs} +2 -2
  68. package/dist/{createSessionMetadata-vug4Cv8z.mjs → createSessionMetadata-DimBsfVG.mjs} +2 -2
  69. package/dist/{daemonAccounts-CpGDY_4k.cjs → daemonAccounts-CxMJw7x2.cjs} +2 -2
  70. package/dist/{daemonAccounts-DwPwKxvv.mjs → daemonAccounts-QT-RDDEp.mjs} +3 -3
  71. package/dist/{defaultPermissionMode-DF5AfeBb.mjs → defaultPermissionMode-B-Vt8ECY.mjs} +1 -1
  72. package/dist/{defaultPermissionMode-BakXiqRr.cjs → defaultPermissionMode-BCWCMONI.cjs} +1 -1
  73. package/dist/{deterministicJson-t33SsuRC.cjs → deterministicJson-BYqRKTmL.cjs} +13 -13
  74. package/dist/{deterministicJson-BzX94gi3.mjs → deterministicJson-CMApF2Rl.mjs} +13 -13
  75. package/dist/{doctor-C1zyOSXw.mjs → doctor-BkyoZ0Uw.mjs} +7 -7
  76. package/dist/{doctor-B9ug1LZb.cjs → doctor-Czbl7gk2.cjs} +7 -7
  77. package/dist/{downloadTarget-T1id2Gh6.cjs → downloadTarget-C5BzZ_bz.cjs} +6 -6
  78. package/dist/{downloadTarget-Baslc6jW.mjs → downloadTarget-CM0BZNSY.mjs} +6 -6
  79. package/dist/{ensureDaemonRunning-CoAg11Zi.cjs → ensureDaemonRunning-D508DmcP.cjs} +5 -5
  80. package/dist/{ensureDaemonRunning-C6ERYK-O.mjs → ensureDaemonRunning-P399ot_C.mjs} +5 -5
  81. package/dist/{handleResumeCommand-CrlqDuz7.mjs → handleResumeCommand-BK_2ShBf.mjs} +5 -5
  82. package/dist/{handleResumeCommand-DPi-sPm7.cjs → handleResumeCommand-CCgK7-0v.cjs} +5 -5
  83. package/dist/{index-Cn73rdtQ.mjs → index-BENDk1i9.mjs} +4 -4
  84. package/dist/{index-rocrvOYG.cjs → index-BalJgriQ.cjs} +4 -4
  85. package/dist/{index-D1YnIih6.mjs → index-BlWyEpMw.mjs} +2 -1
  86. package/dist/{index-B2dJA8VG.cjs → index-Bz9Bj7l1.cjs} +3 -3
  87. package/dist/{index-B1swQJUS.cjs → index-CGKn-GTK.cjs} +4 -4
  88. package/dist/{index-Bkslzin5.cjs → index-CSO1-mZ9.cjs} +42 -42
  89. package/dist/{index-BUFrKZeQ.cjs → index-D9Hidq-g.cjs} +2 -0
  90. package/dist/{index-BcSPg3c5.mjs → index-DR3NJLVk.mjs} +4 -4
  91. package/dist/{index-BbdV2mzy.mjs → index-QSAckvNv.mjs} +3 -3
  92. package/dist/{index-fZO4nF6e.mjs → index-_DRVKtSd.mjs} +43 -43
  93. package/dist/index.cjs +2 -2
  94. package/dist/index.mjs +2 -2
  95. package/dist/{install-CArXjPfW.cjs → install-CqXaN7_C.cjs} +3 -3
  96. package/dist/{install-CChhyV2G.mjs → install-DMTvEPrB.mjs} +3 -3
  97. package/dist/lib.cjs +12 -12
  98. package/dist/lib.mjs +12 -12
  99. package/dist/{lidState-B_v6qgfE.cjs → lidState-Btv4N_B8.cjs} +1 -1
  100. package/dist/{lidState-B6yYKjNK.mjs → lidState-Cb3TbhPb.mjs} +1 -1
  101. package/dist/{localHappyAgentAuth-jJH0n67S.cjs → localHappyAgentAuth-B3Q5DNLR.cjs} +1 -1
  102. package/dist/{localHappyAgentAuth-KRlg_aI0.mjs → localHappyAgentAuth-CAAIUJyY.mjs} +1 -1
  103. package/dist/{logger-CX3x2eI4.cjs → logger-BZ5TcbEh.cjs} +2 -2
  104. package/dist/{logger-JV7-4Q_6.mjs → logger-UgDpJA2u.mjs} +2 -2
  105. package/dist/{machineMetadata-D5-SW9kv.mjs → machineMetadata-BYHC-3Vx.mjs} +3 -3
  106. package/dist/{machineMetadata-DhZuM0iB.cjs → machineMetadata-DLb-m4fL.cjs} +3 -3
  107. package/dist/{main-CFOdXbPD.mjs → main-CwW6lHIw.mjs} +47 -47
  108. package/dist/{main-1x1HGQEy.cjs → main-LavPb80B.cjs} +47 -47
  109. package/dist/{mcp-BnKBSEh7.cjs → mcp-BQbWhqUh.cjs} +18 -18
  110. package/dist/{mcp-R6lMcFLO.mjs → mcp-BjYz5Ymf.mjs} +18 -18
  111. package/dist/{mirrorProtocol-CD4ntuZJ.mjs → mirrorProtocol-BH5eT99U.mjs} +3 -3
  112. package/dist/{mirrorProtocol-DO-KtvAL.cjs → mirrorProtocol-Ci9YmCEV.cjs} +3 -3
  113. package/dist/{package-uzlvxa5S.cjs → package-B61-BBlh.cjs} +7 -7
  114. package/dist/{package-Bw3H6VLn.mjs → package-C4OfB2YF.mjs} +7 -7
  115. package/dist/{panels-C46FxjmH.cjs → panels-ByprLJag.cjs} +5 -5
  116. package/dist/{panels-BamhZCoZ.mjs → panels-cBJT5Up1.mjs} +5 -5
  117. package/dist/{peerTools-D-VNNFw-.cjs → peerTools-BXSjS8lB.cjs} +5 -5
  118. package/dist/{peerTools-WtRgTSqG.mjs → peerTools-DS6GqJcn.mjs} +5 -5
  119. package/dist/{persistence-Cg4sfjQV.mjs → persistence-CQhmtobL.mjs} +2 -2
  120. package/dist/{persistence-CsmAgN-C.cjs → persistence-DBmeYlwT.cjs} +2 -2
  121. package/dist/{piRunnerArgs-vnFygygF.cjs → piRunnerArgs-CmEE058l.cjs} +1 -1
  122. package/dist/{piRunnerArgs-BbaAQvb4.mjs → piRunnerArgs-Dy-3vN_Q.mjs} +1 -1
  123. package/dist/{piRuntime-C2uj5Ucx.cjs → piRuntime-BCXjC4__.cjs} +1 -1
  124. package/dist/{piRuntime-Bid7TBf5.mjs → piRuntime-Rq9v4M4e.mjs} +1 -1
  125. package/dist/{piTerminal-CqxgrI13.mjs → piTerminal-CRhDUqX7.mjs} +20 -20
  126. package/dist/{piTerminal-Ckpjfoqa.cjs → piTerminal-ehNQOvLL.cjs} +20 -20
  127. package/dist/{pushNotifications-BbE-qV9I.mjs → pushNotifications-67GmbVfE.mjs} +3 -3
  128. package/dist/{pushNotifications-BCg7YAiu.cjs → pushNotifications-qCS7_tDF.cjs} +3 -3
  129. package/dist/{query-vQ-HG394.cjs → query-B4QIiI7e.cjs} +1 -1
  130. package/dist/{query-Bfr9O_62.mjs → query-CIDBGnv6.mjs} +1 -1
  131. package/dist/{rateLimitWindows-CRARnKaI.mjs → rateLimitWindows-8-khalzj.mjs} +1 -1
  132. package/dist/{rateLimitWindows-BZl6GMwQ.cjs → rateLimitWindows-BIfLMxOk.cjs} +1 -1
  133. package/dist/{registerCommonHandlers-Cj3Nl9y-.mjs → registerCommonHandlers-C7hlztAO.mjs} +2 -2
  134. package/dist/{registerCommonHandlers-CZGmrPbT.cjs → registerCommonHandlers-G2p0MJu4.cjs} +2 -2
  135. package/dist/{registerKillSessionHandler-C3EDnW4F.cjs → registerKillSessionHandler-BWvl6wro.cjs} +6 -6
  136. package/dist/{registerKillSessionHandler-Bg9t45Ub.mjs → registerKillSessionHandler-rwXdO0t0.mjs} +6 -6
  137. package/dist/registerSideQuestionHandler-CsyPnjce.cjs +366 -0
  138. package/dist/registerSideQuestionHandler-Xg46gSVh.mjs +358 -0
  139. package/dist/{remoteSessionClient-CcSP24Zq.cjs → remoteSessionClient-D6_7vNKc.cjs} +5 -5
  140. package/dist/{remoteSessionClient--0vfA7I5.mjs → remoteSessionClient-DQSnC7ox.mjs} +5 -5
  141. package/dist/{reportProgressTool-Ddg1yVq2.cjs → reportProgressTool-CIHGKraF.cjs} +3 -3
  142. package/dist/{reportProgressTool-DVru7jc_.mjs → reportProgressTool-HjzV5y_2.mjs} +3 -3
  143. package/dist/{run-HtvH6BLi.mjs → run-M06F1958.mjs} +40 -40
  144. package/dist/{run-BTrIT_jU.cjs → run-tQ4bFkHu.cjs} +40 -40
  145. package/dist/{runClaude-ipjwAHPI.cjs → runClaude-Ct0_mShC.cjs} +28 -26
  146. package/dist/{runClaude-DsHTk5Bu.mjs → runClaude-Dm9kQZ-w.mjs} +28 -26
  147. package/dist/{runClaudeDeps-BKpwL6ln.cjs → runClaudeDeps-BT2kWCrQ.cjs} +44 -333
  148. package/dist/{runClaudeDeps-BV3vpeyY.mjs → runClaudeDeps-DNOzXjc3.mjs} +47 -336
  149. package/dist/{runGemini-DhjK6_Fp.mjs → runGemini-BvN-yeQR.mjs} +33 -33
  150. package/dist/{runGemini-B-G0_7Ab.cjs → runGemini-cua7_iuR.cjs} +33 -33
  151. package/dist/{runOpenClaw-B6lawk8n.mjs → runOpenClaw-C9E2XzmX.mjs} +18 -18
  152. package/dist/{runOpenClaw-BHIo8tkn.cjs → runOpenClaw-NpYFRhKm.cjs} +18 -18
  153. package/dist/{sandbox-CKb7pCXg.mjs → sandbox-C-BXZbt9.mjs} +4 -4
  154. package/dist/{sandbox-BAsO0ILe.cjs → sandbox-hImfD0-T.cjs} +4 -4
  155. package/dist/{selfCheck-D4VvVZNi.cjs → selfCheck-B3ulijQM.cjs} +39 -39
  156. package/dist/selfCheck-D-e9kVhc.mjs +88 -0
  157. package/dist/{send-Cz5m39QR.cjs → send-BCVQkTOl.cjs} +8 -8
  158. package/dist/{send-D8ipLKMY.mjs → send-Dv2L8IRW.mjs} +8 -8
  159. package/dist/{server-CjvgT3N9.mjs → server-BBBfuSB-.mjs} +4 -4
  160. package/dist/{server-CySyJKPH.cjs → server-DYxyCyYF.cjs} +6 -6
  161. package/dist/{sessionLock-DdDCuNUs.cjs → sessionLock-B8fsnpZD.cjs} +3 -3
  162. package/dist/{sessionLock-B73fhgQN.mjs → sessionLock-BexUoWhZ.mjs} +3 -3
  163. package/dist/{sessionOps-XSEjIqNq.cjs → sessionOps-74pSDXoS.cjs} +4 -4
  164. package/dist/{sessionOps-C65Iej_C.mjs → sessionOps-BkEgNA2O.mjs} +5 -5
  165. package/dist/{sessionProvider-Dgsty8z_.cjs → sessionProvider-CWgHsZUA.cjs} +10 -10
  166. package/dist/{sessionProvider-CLVNkfji.mjs → sessionProvider-DXkhlJE6.mjs} +10 -10
  167. package/dist/{sessionScanner-D8IVXMMH.cjs → sessionScanner-D56EkcIj.cjs} +3 -3
  168. package/dist/{sessionScanner-MW1P9Pm9.mjs → sessionScanner-Dhh1wREW.mjs} +3 -3
  169. package/dist/{sessions-BKz7gZqg.cjs → sessions-C1zRTjUe.cjs} +10 -10
  170. package/dist/{sessions-Dtk_agUL.mjs → sessions-dJR6k3JY.mjs} +10 -10
  171. package/dist/{setupOfflineReconnection-DxMiW7OV.cjs → setupOfflineReconnection-CMUdHtFT.cjs} +2 -2
  172. package/dist/{setupOfflineReconnection-Bvdy-2xd.mjs → setupOfflineReconnection-Dp1rC-eP.mjs} +2 -2
  173. package/dist/{spawn-Dm4xsZBX.mjs → spawn-D3-Weoiq.mjs} +54 -20
  174. package/dist/{spawn-DiPkJcrQ.cjs → spawn-kMKI09Kh.cjs} +54 -20
  175. package/dist/{spawnAgents-B9olJ8xn.cjs → spawnAgents-Cm23BW-D.cjs} +1 -1
  176. package/dist/{spawnAgents-I29H9nO8.mjs → spawnAgents-hKFGQaSJ.mjs} +1 -1
  177. package/dist/{spawnHappyCLI-CnMwzjWX.mjs → spawnHappyCLI-CgjpjSTT.mjs} +1 -1
  178. package/dist/{spawnHappyCLI-BYGOUda1.cjs → spawnHappyCLI-Du1IgJGA.cjs} +1 -1
  179. package/dist/{startFileWatcher-D14W6gn-.cjs → startFileWatcher-DGOnF95-.cjs} +1 -1
  180. package/dist/{startFileWatcher-DePAY1T5.mjs → startFileWatcher-DapvIGxp.mjs} +1 -1
  181. package/dist/{startupSessionCreate-DoK0IvJG.mjs → startupSessionCreate-CSi60oo_.mjs} +3 -3
  182. package/dist/{startupSessionCreate-rBHd4tc1.cjs → startupSessionCreate-rkIMVGJW.cjs} +3 -3
  183. package/dist/{store-Vej_738f.mjs → store-Tf-r1ouq.mjs} +1 -1
  184. package/dist/{store-CkNa6oj4.cjs → store-aa3CVNwS.cjs} +1 -1
  185. package/dist/{streamRelay-C0G1HOOd.cjs → streamRelay-C2Lb2z39.cjs} +1 -1
  186. package/dist/{streamRelay-C5U-C4GS.mjs → streamRelay-C9lzMo0V.mjs} +1 -1
  187. package/dist/{sync-WYBwkJvG.cjs → sync-Cj8Vhltg.cjs} +1 -1
  188. package/dist/{sync-BP6vnxVP.mjs → sync-GJkf-HGu.mjs} +1 -1
  189. package/dist/{systemPrompt-aRqBmkpw.mjs → systemPrompt-BEagRbDZ.mjs} +2 -2
  190. package/dist/{systemPrompt-BkQlCk5_.cjs → systemPrompt-Cne9i1SE.cjs} +2 -2
  191. package/dist/{teams-CGmC4ygu.mjs → teams-C_18IMNM.mjs} +7 -7
  192. package/dist/{teams-phbpwAGD.cjs → teams-ClTg6hQ1.cjs} +7 -7
  193. package/dist/{template-B9pLEP8v.cjs → template-B1AORlgU.cjs} +1 -1
  194. package/dist/{template-CL9EvQLQ.mjs → template-Ci-cyigF.mjs} +1 -1
  195. package/dist/{time-BTLcO8jp.cjs → time-BPPTQ_sE.cjs} +1 -1
  196. package/dist/{time-Cw0liIqB.mjs → time-CIkdLyza.mjs} +1 -1
  197. package/dist/{titleGenerator-Y1_7ceJC.cjs → titleGenerator-B_OgL9Pd.cjs} +3 -3
  198. package/dist/{titleGenerator-h6TmFe-c.mjs → titleGenerator-DnwTdTB_.mjs} +2 -2
  199. package/dist/{todo-BxiPiCvB.cjs → todo-DPQHtZVM.cjs} +6 -6
  200. package/dist/{todo-OKcTC_VC.mjs → todo-DmHolFRy.mjs} +6 -6
  201. package/dist/{tools-CcebYtLj.cjs → tools-B3KGMSU5.cjs} +1 -1
  202. package/dist/{tools-BR-drXZ8.mjs → tools-DqjPHq9I.mjs} +1 -1
  203. package/dist/{uninstall-D3stWKD2.mjs → uninstall-Cm97eybp.mjs} +3 -3
  204. package/dist/{uninstall-CnDeCC-M.cjs → uninstall-CrK5dgx8.cjs} +3 -3
  205. package/dist/{wrapperAccount-D2A4DuZy.cjs → wrapperAccount-BubTurHU.cjs} +2 -2
  206. package/dist/{wrapperAccount-BkufO_9g.mjs → wrapperAccount-Cq7eZRMx.mjs} +2 -2
  207. package/package.json +7 -7
  208. package/dist/rateLimitReporter-BZ8x0-6-.cjs +0 -44
  209. package/dist/rateLimitReporter-CAz7VMw4.mjs +0 -42
  210. package/dist/selfCheck-CZ-t1Xzq.mjs +0 -88
@@ -1,112 +1,112 @@
1
- import { a as authAndSetupMachineIfNeeded } from './auth-jN5dNqTO.mjs';
2
- import { k as createEnvelope, w as BUILTIN_TODO_DISCOVERY, r as restoredEffort, o as readEffortIntent, Q as EFFORT_INTENT_AUTO, P as PROMPT_QUEUE_CAPABILITY, a5 as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, a6 as CODEX_COMPACT_CAPABILITY, R as RUN_INTENT_CAPABILITY, A as AGENT_PROFILE_SESSION_CAPABILITY } from './index-D1YnIih6.mjs';
3
- import { a as recordRunIntents, w as withoutEffort, r as registerRunIntentRpc, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-DF5AfeBb.mjs';
4
- import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-BzX94gi3.mjs';
5
- import { s as sharedProjectsClient } from './client-Bde4QVIn.mjs';
1
+ import { a as authAndSetupMachineIfNeeded } from './auth-Bfe3Ue_B.mjs';
2
+ import { k as createEnvelope, w as BUILTIN_TODO_DISCOVERY, r as restoredEffort, o as readEffortIntent, Q as EFFORT_INTENT_AUTO, P as PROMPT_QUEUE_CAPABILITY, a5 as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, a6 as CODEX_COMPACT_CAPABILITY, R as RUN_INTENT_CAPABILITY, A as AGENT_PROFILE_SESSION_CAPABILITY, a7 as CODEX_BTW_CAPABILITY } from './index-BlWyEpMw.mjs';
3
+ import { a as recordRunIntents, w as withoutEffort, r as registerRunIntentRpc, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-B-Vt8ECY.mjs';
4
+ import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-CMApF2Rl.mjs';
5
+ import { s as sharedProjectsClient } from './client-CydHzidF.mjs';
6
6
  import { unlink } from 'node:fs/promises';
7
7
  import { p as publishForkBackfillWhenCommitted, F as FORK_BACKFILL_CAPABILITY } from './forkBackfill-DYIjlN1Z.mjs';
8
8
  import { randomUUID } from 'node:crypto';
9
9
  import { createId } from '@paralleldrive/cuid2';
10
- import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-DUfunY3x.mjs';
10
+ import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-DOzNOoVJ.mjs';
11
11
  import { r as registerAgentAttachmentDownloads, H as HeldInput } from './heldInput-C69lA2dH.mjs';
12
- import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-KNIZxwlu.mjs';
12
+ import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-D6PjMVDq.mjs';
13
13
  import { useStdout, useInput, Box, Text, render } from 'ink';
14
- import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, t as takeAutoRestartedEvent, A as AUTO_RESTART_CAPABILITY, e as exitCursorStamp } from './sessionLock-B73fhgQN.mjs';
14
+ import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, t as takeAutoRestartedEvent, A as AUTO_RESTART_CAPABILITY, e as exitCursorStamp } from './sessionLock-BexUoWhZ.mjs';
15
15
  import React, { useState, useRef, useEffect, useCallback } from 'react';
16
- import { C as CodexAppServerClient } from './codexAppServerClient-B3QJV6Ey.mjs';
17
- import { w as wrapperRateLimitReporter } from './rateLimitReporter-CAz7VMw4.mjs';
18
- import { l as logger } from './logger-JV7-4Q_6.mjs';
19
- import { B as BasePermissionHandler } from './BasePermissionHandler-DV6UM6e9.mjs';
20
- import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-CaWAVQjZ.mjs';
16
+ import { C as CodexAppServerClient } from './codexAppServerClient-mln0W8vT.mjs';
17
+ import { S as SIDE_QUESTION_SYSTEM_PROMPT, b as buildSideQuestionPrompt, t as toolAttemptNotice, r as registerSideQuestionHandler, d as describePendingApprovals, w as wrapperRateLimitReporter } from './registerSideQuestionHandler-Xg46gSVh.mjs';
18
+ import { l as logger } from './logger-UgDpJA2u.mjs';
19
+ import { B as BasePermissionHandler } from './BasePermissionHandler-B5ka7Aaf.mjs';
20
+ import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-QltAvFpq.mjs';
21
21
  import { execSync } from 'node:child_process';
22
- import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-Cg4sfjQV.mjs';
23
- import { g as getInitialMachineMetadata } from './machineMetadata-D5-SW9kv.mjs';
24
- import { c as configuration } from './configuration-ThKBP_zY.mjs';
25
- import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-Bg9t45Ub.mjs';
22
+ import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-CQhmtobL.mjs';
23
+ import { g as getInitialMachineMetadata } from './machineMetadata-BYHC-3Vx.mjs';
24
+ import { c as configuration } from './configuration-CwfgJZKs.mjs';
25
+ import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-rwXdO0t0.mjs';
26
26
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
27
27
  import { dirname, join } from 'node:path';
28
- import { c as createSessionMetadata } from './createSessionMetadata-vug4Cv8z.mjs';
28
+ import { c as createSessionMetadata } from './createSessionMetadata-DimBsfVG.mjs';
29
29
  import { M as MessageBuffer } from './sessionExitLifecycle-CzkLIgNZ.mjs';
30
- import { n as notifyDaemonSessionStarted, o as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-Ckl8N1MS.mjs';
31
- import { c as createSessionForStartup, b as HibernationExitLatch, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-DoK0IvJG.mjs';
30
+ import { n as notifyDaemonSessionStarted, o as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-Dv6IvvUq.mjs';
31
+ import { c as createSessionForStartup, b as HibernationExitLatch, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-CSi60oo_.mjs';
32
32
  import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
33
- import { s as setupOfflineReconnection } from './setupOfflineReconnection-Bvdy-2xd.mjs';
33
+ import { s as setupOfflineReconnection } from './setupOfflineReconnection-Dp1rC-eP.mjs';
34
34
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
35
35
  import { a as parseSpecialCommand, c as compactCommandText, b as parseCompact } from './specialCommands-MXUN0wfI.mjs';
36
36
  import { C as CHANGE_TITLE_INSTRUCTION } from './constants-BC4St0xd.mjs';
37
37
  import { E as EditReportThrottle, a as extractCodexPatchPaths } from './editPaths-BVfS_FFL.mjs';
38
38
  import { t as takeReconnectEnv } from './reconnectEnv-DeSvHl3q.mjs';
39
- import { r as readSessionBindings, w as writeSessionBinding, d as defaultSecretProbe, a as readAccounts, c as readAccountsFileV2, f as writeAccountsFile, S as SPAWN_ACCOUNT_ENV } from './store-Vej_738f.mjs';
39
+ import { r as readSessionBindings, w as writeSessionBinding, d as defaultSecretProbe, a as readAccounts, c as readAccountsFileV2, f as writeAccountsFile, S as SPAWN_ACCOUNT_ENV } from './store-Tf-r1ouq.mjs';
40
40
  import { mkdirSync, writeFileSync, chmodSync, rmSync } from 'node:fs';
41
- import { a as resolveCodexAccount, r as readCodexProviders, s as syncCodexOverlay, b as baseCodexHome, c as codexAccountSwitched, d as readCodexDefaultProvider, e as codexAccountDefaultModel, f as accountModelsAsCatalog, i as isHistoryRejectedError, g as isCodexAuthRejection } from './codexAccount-NOX5pmQf.mjs';
42
- import { s as shouldRecordSpawnAccount, u as unavailableNotice } from './wrapperAccount-BkufO_9g.mjs';
43
- import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-C6ERYK-O.mjs';
41
+ import { a as resolveCodexAccount, r as readCodexProviders, s as syncCodexOverlay, b as baseCodexHome, c as codexAccountSwitched, d as readCodexDefaultProvider, e as codexAccountDefaultModel, f as accountModelsAsCatalog, i as isHistoryRejectedError, g as isCodexAuthRejection } from './codexAccount-CKXpXq0B.mjs';
42
+ import { s as shouldRecordSpawnAccount, u as unavailableNotice } from './wrapperAccount-Cq7eZRMx.mjs';
43
+ import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-P399ot_C.mjs';
44
44
  import 'tweetnacl';
45
45
  import 'axios';
46
- import './time-Cw0liIqB.mjs';
47
- import './browser-LHW2hBH8.mjs';
46
+ import './time-CIkdLyza.mjs';
47
+ import './browser-Bb0Gqffc.mjs';
48
48
  import 'open';
49
49
  import 'zod';
50
50
  import './prompt-QHuFx9j6.mjs';
51
- import './reportProgressTool-DVru7jc_.mjs';
52
- import './client-7RnI9J0W.mjs';
51
+ import './reportProgressTool-HjzV5y_2.mjs';
52
+ import './client-DpTk1S7C.mjs';
53
53
  import './precheckCompat-DeEbilbr.mjs';
54
54
  import './agentGuidance-BDYt2Qy2.mjs';
55
55
  import 'node:os';
56
56
  import './pi-CqyoZMjI.mjs';
57
57
  import './fileStore-5qpetZS0.mjs';
58
- import './client-DwbhrX6D.mjs';
58
+ import './client-BhAjEv8Z.mjs';
59
59
  import 'node:util';
60
- import './context-C0EFLnOg.mjs';
61
- import './sessionOps-C65Iej_C.mjs';
60
+ import './context-DcOpvIiR.mjs';
61
+ import './sessionOps-BkEgNA2O.mjs';
62
62
  import 'socket.io-client';
63
63
  import './backgroundTaskActivity-8PdPxrvy.mjs';
64
64
  import './resources-CLP_MpK4.mjs';
65
- import './tools-BR-drXZ8.mjs';
66
- import './peerTools-WtRgTSqG.mjs';
65
+ import './tools-DqjPHq9I.mjs';
66
+ import './peerTools-DS6GqJcn.mjs';
67
67
  import './ids-DU6sLx4C.mjs';
68
- import './remoteSessionClient--0vfA7I5.mjs';
68
+ import './remoteSessionClient-DQSnC7ox.mjs';
69
69
  import '@modelcontextprotocol/sdk/server/mcp.js';
70
70
  import 'node:http';
71
71
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
72
72
  import './limits-DIo7rEBR.mjs';
73
- import './downloadTarget-Baslc6jW.mjs';
73
+ import './downloadTarget-CM0BZNSY.mjs';
74
74
  import './terminals-Dlg0x3nY.mjs';
75
75
  import './terminalTitleSuggest-CeKsX_V6.mjs';
76
76
  import './tmuxSocket-B8Yx20sT.mjs';
77
- import './bootstrap-B3gMpU9e.mjs';
78
- import './package-Bw3H6VLn.mjs';
77
+ import './bootstrap-BxcKrgR9.mjs';
78
+ import './package-C4OfB2YF.mjs';
79
79
  import './webPanels-B2_C2-3g.mjs';
80
- import './pushNotifications-BbE-qV9I.mjs';
80
+ import './pushNotifications-67GmbVfE.mjs';
81
81
  import './contentLogMetadata-BlWI0egu.mjs';
82
82
  import './previewPath-CXN4Vag0.mjs';
83
83
  import 'crypto';
84
- import './lidState-B6yYKjNK.mjs';
84
+ import './lidState-Cb3TbhPb.mjs';
85
85
  import 'os';
86
86
  import 'child_process';
87
87
  import 'node:events';
88
- import './registerCommonHandlers-Cj3Nl9y-.mjs';
88
+ import './registerCommonHandlers-C7hlztAO.mjs';
89
89
  import 'util';
90
90
  import 'fs/promises';
91
91
  import 'path';
92
92
  import 'cross-spawn';
93
- import './sync-BP6vnxVP.mjs';
93
+ import './sync-GJkf-HGu.mjs';
94
94
  import 'chalk';
95
95
  import './cliUpdate-Y34VGe9Y.mjs';
96
96
  import './processTreeSnapshot-CuLJDNC-.mjs';
97
97
  import 'node:readline';
98
98
  import './manager-BEsI4qt3.mjs';
99
99
  import '@anthropic-ai/sandbox-runtime';
100
- import './rateLimitWindows-CRARnKaI.mjs';
100
+ import './rateLimitWindows-8-khalzj.mjs';
101
101
  import './processTree-CP5IvQ2Z.mjs';
102
102
  import './detectCLI-CSGMlV51.mjs';
103
103
  import 'fs';
104
- import './localHappyAgentAuth-KRlg_aI0.mjs';
104
+ import './localHappyAgentAuth-CAAIUJyY.mjs';
105
105
  import './fsMkdir-DumgLTzR.mjs';
106
106
  import './types-CkqAACXx.mjs';
107
107
  import 'url';
108
- import './claudeAccountEnv-BL1pR_37.mjs';
109
- import './spawnHappyCLI-CnMwzjWX.mjs';
108
+ import './claudeAccountEnv-NyoxjLuJ.mjs';
109
+ import './spawnHappyCLI-CgjpjSTT.mjs';
110
110
  import './doctorReadiness-C208SMN9.mjs';
111
111
 
112
112
  function getStartedSubagents(state) {
@@ -1399,6 +1399,84 @@ async function steerIntoRunningTurn(deps, text, attachments, localKey) {
1399
1399
  return false;
1400
1400
  }
1401
1401
 
1402
+ const CODEX_SIDE_QUESTION_INSTRUCTIONS = `${SIDE_QUESTION_SYSTEM_PROMPT} Do not run commands or call tools.`;
1403
+ const ANSWER_ITEMS = /* @__PURE__ */ new Set(["userMessage", "agentMessage", "reasoning"]);
1404
+ function toolName(item) {
1405
+ if (item.type === "commandExecution") return "a shell command";
1406
+ if (item.type === "mcpToolCall" && typeof item.tool === "string") return typeof item.server === "string" ? `${item.server}.${item.tool}` : item.tool;
1407
+ return typeof item.type === "string" ? item.type : "a tool";
1408
+ }
1409
+ function turnError(turn) {
1410
+ if (!turn || turn.status === "completed") return null;
1411
+ const message = turn.error && typeof turn.error.message === "string" ? turn.error.message : "";
1412
+ return message || `Side question ended (${String(turn.status ?? "unknown")})`;
1413
+ }
1414
+ async function runCodexSideQuestion(createClient, input) {
1415
+ const client = createClient();
1416
+ const signal = input.signal;
1417
+ if (signal?.aborted) throw new Error("Side question cancelled");
1418
+ let threadId = null;
1419
+ let turnId = null;
1420
+ let streamed = "";
1421
+ const messages = /* @__PURE__ */ new Map();
1422
+ let toolAttempt = null;
1423
+ let settle;
1424
+ const done = new Promise((resolve) => {
1425
+ settle = resolve;
1426
+ });
1427
+ const interrupt = () => {
1428
+ if (threadId && turnId) void client.interruptSideTurn(threadId, turnId).catch(() => {
1429
+ });
1430
+ };
1431
+ const off = client.onRawNotification((method, params) => {
1432
+ if (!threadId || params?.threadId !== threadId) return;
1433
+ if (!turnId && typeof params.turnId === "string") turnId = params.turnId;
1434
+ if (method === "item/agentMessage/delta" && typeof params.delta === "string") {
1435
+ streamed += params.delta;
1436
+ input.onText?.(streamed);
1437
+ } else if (method === "item/started" && params.item && !ANSWER_ITEMS.has(params.item.type)) {
1438
+ toolAttempt ??= toolName(params.item);
1439
+ interrupt();
1440
+ } else if (method === "item/completed" && params.item?.type === "agentMessage" && typeof params.item.text === "string") {
1441
+ messages.set(params.item.id ?? String(messages.size), params.item.text);
1442
+ } else if (method === "turn/completed") {
1443
+ settle({ error: toolAttempt ? void 0 : turnError(params.turn) ?? void 0 });
1444
+ }
1445
+ });
1446
+ const onAbort = () => {
1447
+ interrupt();
1448
+ settle({ error: "Side question cancelled" });
1449
+ };
1450
+ signal?.addEventListener("abort", onAbort, { once: true });
1451
+ try {
1452
+ await client.connect();
1453
+ let hadContext = Boolean(input.resumeSessionId);
1454
+ try {
1455
+ ({ threadId } = await client.openSideThread({ sourceThreadId: input.resumeSessionId, cwd: input.cwd, model: input.model, developerInstructions: CODEX_SIDE_QUESTION_INSTRUCTIONS }));
1456
+ } catch (error) {
1457
+ if (!input.resumeSessionId || signal?.aborted) throw error;
1458
+ hadContext = false;
1459
+ ({ threadId } = await client.openSideThread({ sourceThreadId: null, cwd: input.cwd, model: input.model, developerInstructions: CODEX_SIDE_QUESTION_INSTRUCTIONS }));
1460
+ }
1461
+ if (signal?.aborted) throw new Error("Side question cancelled");
1462
+ turnId = await client.startSideTurn(threadId, buildSideQuestionPrompt(input.question, input.history, input.mainStatus)) ?? turnId;
1463
+ if (signal?.aborted || toolAttempt) interrupt();
1464
+ const outcome = await done;
1465
+ if (signal?.aborted) throw new Error("Side question cancelled");
1466
+ if (outcome.error) throw new Error(outcome.error);
1467
+ const final = [...messages.values()].filter((text) => text.trim()).join("\n\n") || streamed;
1468
+ const answer = toolAttempt ? [final.trim(), toolAttemptNotice(toolAttempt)].filter(Boolean).join("\n\n") : final;
1469
+ if (!answer.trim()) throw new Error("Side question ended without a result");
1470
+ input.onText?.(answer);
1471
+ return { answer, hadContext, mode: "fork" };
1472
+ } finally {
1473
+ off();
1474
+ signal?.removeEventListener("abort", onAbort);
1475
+ await client.disconnect().catch(() => {
1476
+ });
1477
+ }
1478
+ }
1479
+
1402
1480
  function hashCodexEnhancedMode(mode) {
1403
1481
  return hashObject({
1404
1482
  permissionMode: mode.permissionMode,
@@ -1577,7 +1655,7 @@ async function runCodex(opts) {
1577
1655
  dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
1578
1656
  ...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
1579
1657
  ...forkedFromMessageId ? { forkedFromMessageId } : {},
1580
- capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, AUTO_RESTART_CAPABILITY, CODEX_STEER_CAPABILITY, PROJECT_SESSION_CAPABILITY, CODEX_COMPACT_CAPABILITY, RUN_INTENT_CAPABILITY, AGENT_PROFILE_SESSION_CAPABILITY]
1658
+ capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, AUTO_RESTART_CAPABILITY, CODEX_STEER_CAPABILITY, PROJECT_SESSION_CAPABILITY, CODEX_COMPACT_CAPABILITY, RUN_INTENT_CAPABILITY, AGENT_PROFILE_SESSION_CAPABILITY, CODEX_BTW_CAPABILITY]
1581
1659
  });
1582
1660
  metadata.attachmentKinds = [...CLAUDE_ATTACHMENT_KINDS];
1583
1661
  metadata.stickyModel = null;
@@ -2063,6 +2141,17 @@ async function runCodex(opts) {
2063
2141
  }
2064
2142
  client = new CodexAppServerClient(sandboxConfig);
2065
2143
  client.setAccountOverrides(codexAccount.overrides);
2144
+ registerSideQuestionHandler(session.rpcHandlerManager, {
2145
+ getClaudeSessionId: () => client?.threadId ?? null,
2146
+ getModel: () => currentModel ?? client?.threadModel ?? void 0,
2147
+ cwd: process.cwd(),
2148
+ getMainStatus: () => describePendingApprovals(session.getAgentState()?.requests),
2149
+ run: (input) => runCodexSideQuestion(() => {
2150
+ const side = new CodexAppServerClient(sandboxConfig);
2151
+ side.setAccountOverrides(codexAccount.overrides);
2152
+ return side;
2153
+ }, input)
2154
+ });
2066
2155
  const idleRelease = new CodexIdleReleaseTimer({
2067
2156
  delayMs: resolveCodexIdleReleaseMs(process.env[CODEX_IDLE_RELEASE_ENV]),
2068
2157
  isIdle: () => shouldReleaseIdleCodex({
@@ -1,114 +1,114 @@
1
1
  'use strict';
2
2
 
3
- var auth = require('./auth-DCjxpI6Z.cjs');
4
- var index = require('./index-BUFrKZeQ.cjs');
5
- var defaultPermissionMode = require('./defaultPermissionMode-BakXiqRr.cjs');
6
- var deterministicJson = require('./deterministicJson-t33SsuRC.cjs');
7
- var client = require('./client-CJr8Pjwm.cjs');
3
+ var auth = require('./auth-DfcdjMUp.cjs');
4
+ var index = require('./index-D9Hidq-g.cjs');
5
+ var defaultPermissionMode = require('./defaultPermissionMode-BCWCMONI.cjs');
6
+ var deterministicJson = require('./deterministicJson-BYqRKTmL.cjs');
7
+ var client = require('./client-DcXLNaF2.cjs');
8
8
  var promises = require('node:fs/promises');
9
9
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
10
10
  var node_crypto = require('node:crypto');
11
11
  var cuid2 = require('@paralleldrive/cuid2');
12
- var api = require('./api-CBE_a88I.cjs');
12
+ var api = require('./api-TpjZJXV-.cjs');
13
13
  var heldInput = require('./heldInput-BOtqFO2r.cjs');
14
- var attachmentContent = require('./attachmentContent-B3AzuYqk.cjs');
14
+ var attachmentContent = require('./attachmentContent-BiBOjTXX.cjs');
15
15
  var ink = require('ink');
16
- var sessionLock = require('./sessionLock-DdDCuNUs.cjs');
16
+ var sessionLock = require('./sessionLock-B8fsnpZD.cjs');
17
17
  var React = require('react');
18
- var codexAppServerClient = require('./codexAppServerClient-DWEsZUC4.cjs');
19
- var rateLimitReporter = require('./rateLimitReporter-BZ8x0-6-.cjs');
20
- var logger = require('./logger-CX3x2eI4.cjs');
21
- var BasePermissionHandler = require('./BasePermissionHandler-5iG-cvA2.cjs');
22
- var codexTermination = require('./codexTermination-ByX9GcEJ.cjs');
18
+ var codexAppServerClient = require('./codexAppServerClient-C1xBSuVk.cjs');
19
+ var registerSideQuestionHandler = require('./registerSideQuestionHandler-CsyPnjce.cjs');
20
+ var logger = require('./logger-BZ5TcbEh.cjs');
21
+ var BasePermissionHandler = require('./BasePermissionHandler-C6iF28Ct.cjs');
22
+ var codexTermination = require('./codexTermination-C9c80lIF.cjs');
23
23
  var node_child_process = require('node:child_process');
24
- var persistence = require('./persistence-CsmAgN-C.cjs');
25
- var machineMetadata = require('./machineMetadata-DhZuM0iB.cjs');
26
- var configuration = require('./configuration-BBK0rmmj.cjs');
27
- var registerKillSessionHandler = require('./registerKillSessionHandler-C3EDnW4F.cjs');
24
+ var persistence = require('./persistence-DBmeYlwT.cjs');
25
+ var machineMetadata = require('./machineMetadata-DLb-m4fL.cjs');
26
+ var configuration = require('./configuration-CKaq0tNe.cjs');
27
+ var registerKillSessionHandler = require('./registerKillSessionHandler-BWvl6wro.cjs');
28
28
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
29
29
  var path = require('node:path');
30
- var createSessionMetadata = require('./createSessionMetadata-DqZ6h02H.cjs');
30
+ var createSessionMetadata = require('./createSessionMetadata-CusO22Am.cjs');
31
31
  var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
32
- var controlClient = require('./controlClient-DwWTns3A.cjs');
33
- var startupSessionCreate = require('./startupSessionCreate-rBHd4tc1.cjs');
32
+ var controlClient = require('./controlClient-D_HIbnnS.cjs');
33
+ var startupSessionCreate = require('./startupSessionCreate-rkIMVGJW.cjs');
34
34
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
35
- var setupOfflineReconnection = require('./setupOfflineReconnection-DxMiW7OV.cjs');
35
+ var setupOfflineReconnection = require('./setupOfflineReconnection-CMUdHtFT.cjs');
36
36
  var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
37
37
  var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
38
38
  var constants = require('./constants-VJ0N6WuG.cjs');
39
39
  var editPaths = require('./editPaths-Bqp4OFPw.cjs');
40
40
  var reconnectEnv = require('./reconnectEnv-B31lY4nR.cjs');
41
- var store = require('./store-CkNa6oj4.cjs');
41
+ var store = require('./store-aa3CVNwS.cjs');
42
42
  var node_fs = require('node:fs');
43
- var codexAccount = require('./codexAccount-BDQjRbtI.cjs');
44
- var wrapperAccount = require('./wrapperAccount-D2A4DuZy.cjs');
45
- var ensureDaemonRunning = require('./ensureDaemonRunning-CoAg11Zi.cjs');
43
+ var codexAccount = require('./codexAccount-CYhQir50.cjs');
44
+ var wrapperAccount = require('./wrapperAccount-BubTurHU.cjs');
45
+ var ensureDaemonRunning = require('./ensureDaemonRunning-D508DmcP.cjs');
46
46
  require('tweetnacl');
47
47
  require('axios');
48
- require('./time-BTLcO8jp.cjs');
49
- require('./browser-v1pdPP1E.cjs');
48
+ require('./time-BPPTQ_sE.cjs');
49
+ require('./browser-ac0aPrVE.cjs');
50
50
  require('open');
51
51
  require('zod');
52
52
  require('./prompt-Bof2aQkI.cjs');
53
- require('./reportProgressTool-Ddg1yVq2.cjs');
54
- require('./client-D2GWkd-T.cjs');
53
+ require('./reportProgressTool-CIHGKraF.cjs');
54
+ require('./client-BlV73Gbw.cjs');
55
55
  require('./precheckCompat-CWOi5c9L.cjs');
56
56
  require('./agentGuidance-BtBx2xxE.cjs');
57
57
  require('node:os');
58
58
  require('./pi-DlsrPCTa.cjs');
59
59
  require('./fileStore-7qhnbs6N.cjs');
60
- require('./client-DLlnmAPL.cjs');
60
+ require('./client-DxjYsJ8d.cjs');
61
61
  require('node:util');
62
- require('./context-wDp0aZBK.cjs');
63
- require('./sessionOps-XSEjIqNq.cjs');
62
+ require('./context-DbENnaVc.cjs');
63
+ require('./sessionOps-74pSDXoS.cjs');
64
64
  require('socket.io-client');
65
65
  require('./backgroundTaskActivity-CBvUdj39.cjs');
66
66
  require('./resources-BZ_Be0qM.cjs');
67
- require('./tools-CcebYtLj.cjs');
68
- require('./peerTools-D-VNNFw-.cjs');
67
+ require('./tools-B3KGMSU5.cjs');
68
+ require('./peerTools-BXSjS8lB.cjs');
69
69
  require('./ids-B6ZC0HGt.cjs');
70
- require('./remoteSessionClient-CcSP24Zq.cjs');
70
+ require('./remoteSessionClient-D6_7vNKc.cjs');
71
71
  require('@modelcontextprotocol/sdk/server/mcp.js');
72
72
  require('node:http');
73
73
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
74
74
  require('./limits-C-a7gr04.cjs');
75
- require('./downloadTarget-T1id2Gh6.cjs');
75
+ require('./downloadTarget-C5BzZ_bz.cjs');
76
76
  require('./terminals-B_bfC9c2.cjs');
77
77
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
78
78
  require('./tmuxSocket-D-Xt6Vn-.cjs');
79
- require('./bootstrap-CoJu9VnB.cjs');
80
- require('./package-uzlvxa5S.cjs');
79
+ require('./bootstrap-DpyP22Wx.cjs');
80
+ require('./package-B61-BBlh.cjs');
81
81
  require('./webPanels-FCgFKvVe.cjs');
82
- require('./pushNotifications-BCg7YAiu.cjs');
82
+ require('./pushNotifications-qCS7_tDF.cjs');
83
83
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
84
84
  require('./previewPath-B0rBdhy1.cjs');
85
85
  require('crypto');
86
- require('./lidState-B_v6qgfE.cjs');
86
+ require('./lidState-Btv4N_B8.cjs');
87
87
  require('os');
88
88
  require('child_process');
89
89
  require('node:events');
90
- require('./registerCommonHandlers-CZGmrPbT.cjs');
90
+ require('./registerCommonHandlers-G2p0MJu4.cjs');
91
91
  require('util');
92
92
  require('fs/promises');
93
93
  require('path');
94
94
  require('cross-spawn');
95
- require('./sync-WYBwkJvG.cjs');
95
+ require('./sync-Cj8Vhltg.cjs');
96
96
  require('chalk');
97
97
  require('./cliUpdate-DsKXPFYp.cjs');
98
98
  require('./processTreeSnapshot-mDbnuojn.cjs');
99
99
  require('node:readline');
100
100
  require('./manager-HrEj442o.cjs');
101
101
  require('@anthropic-ai/sandbox-runtime');
102
- require('./rateLimitWindows-BZl6GMwQ.cjs');
102
+ require('./rateLimitWindows-BIfLMxOk.cjs');
103
103
  require('./processTree-CMHWlVse.cjs');
104
104
  require('./detectCLI-BuYR_Qxe.cjs');
105
105
  require('fs');
106
- require('./localHappyAgentAuth-jJH0n67S.cjs');
106
+ require('./localHappyAgentAuth-B3Q5DNLR.cjs');
107
107
  require('./fsMkdir-0K3yENml.cjs');
108
108
  require('./types-CRS-srZK.cjs');
109
109
  require('url');
110
- require('./claudeAccountEnv-CEX_EMZr.cjs');
111
- require('./spawnHappyCLI-BYGOUda1.cjs');
110
+ require('./claudeAccountEnv-_O3x5AJ1.cjs');
111
+ require('./spawnHappyCLI-Du1IgJGA.cjs');
112
112
  require('./doctorReadiness-Dl6yRQCy.cjs');
113
113
 
114
114
  function getStartedSubagents(state) {
@@ -1401,6 +1401,84 @@ async function steerIntoRunningTurn(deps, text, attachments, localKey) {
1401
1401
  return false;
1402
1402
  }
1403
1403
 
1404
+ const CODEX_SIDE_QUESTION_INSTRUCTIONS = `${registerSideQuestionHandler.SIDE_QUESTION_SYSTEM_PROMPT} Do not run commands or call tools.`;
1405
+ const ANSWER_ITEMS = /* @__PURE__ */ new Set(["userMessage", "agentMessage", "reasoning"]);
1406
+ function toolName(item) {
1407
+ if (item.type === "commandExecution") return "a shell command";
1408
+ if (item.type === "mcpToolCall" && typeof item.tool === "string") return typeof item.server === "string" ? `${item.server}.${item.tool}` : item.tool;
1409
+ return typeof item.type === "string" ? item.type : "a tool";
1410
+ }
1411
+ function turnError(turn) {
1412
+ if (!turn || turn.status === "completed") return null;
1413
+ const message = turn.error && typeof turn.error.message === "string" ? turn.error.message : "";
1414
+ return message || `Side question ended (${String(turn.status ?? "unknown")})`;
1415
+ }
1416
+ async function runCodexSideQuestion(createClient, input) {
1417
+ const client = createClient();
1418
+ const signal = input.signal;
1419
+ if (signal?.aborted) throw new Error("Side question cancelled");
1420
+ let threadId = null;
1421
+ let turnId = null;
1422
+ let streamed = "";
1423
+ const messages = /* @__PURE__ */ new Map();
1424
+ let toolAttempt = null;
1425
+ let settle;
1426
+ const done = new Promise((resolve) => {
1427
+ settle = resolve;
1428
+ });
1429
+ const interrupt = () => {
1430
+ if (threadId && turnId) void client.interruptSideTurn(threadId, turnId).catch(() => {
1431
+ });
1432
+ };
1433
+ const off = client.onRawNotification((method, params) => {
1434
+ if (!threadId || params?.threadId !== threadId) return;
1435
+ if (!turnId && typeof params.turnId === "string") turnId = params.turnId;
1436
+ if (method === "item/agentMessage/delta" && typeof params.delta === "string") {
1437
+ streamed += params.delta;
1438
+ input.onText?.(streamed);
1439
+ } else if (method === "item/started" && params.item && !ANSWER_ITEMS.has(params.item.type)) {
1440
+ toolAttempt ??= toolName(params.item);
1441
+ interrupt();
1442
+ } else if (method === "item/completed" && params.item?.type === "agentMessage" && typeof params.item.text === "string") {
1443
+ messages.set(params.item.id ?? String(messages.size), params.item.text);
1444
+ } else if (method === "turn/completed") {
1445
+ settle({ error: toolAttempt ? void 0 : turnError(params.turn) ?? void 0 });
1446
+ }
1447
+ });
1448
+ const onAbort = () => {
1449
+ interrupt();
1450
+ settle({ error: "Side question cancelled" });
1451
+ };
1452
+ signal?.addEventListener("abort", onAbort, { once: true });
1453
+ try {
1454
+ await client.connect();
1455
+ let hadContext = Boolean(input.resumeSessionId);
1456
+ try {
1457
+ ({ threadId } = await client.openSideThread({ sourceThreadId: input.resumeSessionId, cwd: input.cwd, model: input.model, developerInstructions: CODEX_SIDE_QUESTION_INSTRUCTIONS }));
1458
+ } catch (error) {
1459
+ if (!input.resumeSessionId || signal?.aborted) throw error;
1460
+ hadContext = false;
1461
+ ({ threadId } = await client.openSideThread({ sourceThreadId: null, cwd: input.cwd, model: input.model, developerInstructions: CODEX_SIDE_QUESTION_INSTRUCTIONS }));
1462
+ }
1463
+ if (signal?.aborted) throw new Error("Side question cancelled");
1464
+ turnId = await client.startSideTurn(threadId, registerSideQuestionHandler.buildSideQuestionPrompt(input.question, input.history, input.mainStatus)) ?? turnId;
1465
+ if (signal?.aborted || toolAttempt) interrupt();
1466
+ const outcome = await done;
1467
+ if (signal?.aborted) throw new Error("Side question cancelled");
1468
+ if (outcome.error) throw new Error(outcome.error);
1469
+ const final = [...messages.values()].filter((text) => text.trim()).join("\n\n") || streamed;
1470
+ const answer = toolAttempt ? [final.trim(), registerSideQuestionHandler.toolAttemptNotice(toolAttempt)].filter(Boolean).join("\n\n") : final;
1471
+ if (!answer.trim()) throw new Error("Side question ended without a result");
1472
+ input.onText?.(answer);
1473
+ return { answer, hadContext, mode: "fork" };
1474
+ } finally {
1475
+ off();
1476
+ signal?.removeEventListener("abort", onAbort);
1477
+ await client.disconnect().catch(() => {
1478
+ });
1479
+ }
1480
+ }
1481
+
1404
1482
  function hashCodexEnhancedMode(mode) {
1405
1483
  return deterministicJson.hashObject({
1406
1484
  permissionMode: mode.permissionMode,
@@ -1579,7 +1657,7 @@ async function runCodex(opts) {
1579
1657
  dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
1580
1658
  ...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
1581
1659
  ...forkedFromMessageId ? { forkedFromMessageId } : {},
1582
- capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, sessionLock.AUTO_RESTART_CAPABILITY, index.CODEX_STEER_CAPABILITY, index.PROJECT_SESSION_CAPABILITY, index.CODEX_COMPACT_CAPABILITY, index.RUN_INTENT_CAPABILITY, index.AGENT_PROFILE_SESSION_CAPABILITY]
1660
+ capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, sessionLock.AUTO_RESTART_CAPABILITY, index.CODEX_STEER_CAPABILITY, index.PROJECT_SESSION_CAPABILITY, index.CODEX_COMPACT_CAPABILITY, index.RUN_INTENT_CAPABILITY, index.AGENT_PROFILE_SESSION_CAPABILITY, index.CODEX_BTW_CAPABILITY]
1583
1661
  });
1584
1662
  metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
1585
1663
  metadata.stickyModel = null;
@@ -2065,6 +2143,17 @@ async function runCodex(opts) {
2065
2143
  }
2066
2144
  client$1 = new codexAppServerClient.CodexAppServerClient(sandboxConfig);
2067
2145
  client$1.setAccountOverrides(codexAccount$1.overrides);
2146
+ registerSideQuestionHandler.registerSideQuestionHandler(session.rpcHandlerManager, {
2147
+ getClaudeSessionId: () => client$1?.threadId ?? null,
2148
+ getModel: () => currentModel ?? client$1?.threadModel ?? void 0,
2149
+ cwd: process.cwd(),
2150
+ getMainStatus: () => registerSideQuestionHandler.describePendingApprovals(session.getAgentState()?.requests),
2151
+ run: (input) => runCodexSideQuestion(() => {
2152
+ const side = new codexAppServerClient.CodexAppServerClient(sandboxConfig);
2153
+ side.setAccountOverrides(codexAccount$1.overrides);
2154
+ return side;
2155
+ }, input)
2156
+ });
2068
2157
  const idleRelease = new CodexIdleReleaseTimer({
2069
2158
  delayMs: resolveCodexIdleReleaseMs(process.env[CODEX_IDLE_RELEASE_ENV]),
2070
2159
  isIdle: () => shouldReleaseIdleCodex({
@@ -2108,7 +2197,7 @@ async function runCodex(opts) {
2108
2197
  }
2109
2198
  });
2110
2199
  const editThrottle = new editPaths.EditReportThrottle();
2111
- client$1.setRateLimitHandler((snapshot) => rateLimitReporter.wrapperRateLimitReporter().observeCodex(snapshot));
2200
+ client$1.setRateLimitHandler((snapshot) => registerSideQuestionHandler.wrapperRateLimitReporter().observeCodex(snapshot));
2112
2201
  client$1.setEventHandler((msg) => {
2113
2202
  if (msg.type === "token_count") {
2114
2203
  session.sendAgentUsageSnapshot("codex", msg);
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
- var logger = require('./logger-CX3x2eI4.cjs');
4
+ var logger = require('./logger-BZ5TcbEh.cjs');
5
5
  var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
6
6
 
7
7
  class BaseReasoningProcessor {
@@ -1,5 +1,5 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { l as logger } from './logger-JV7-4Q_6.mjs';
2
+ import { l as logger } from './logger-UgDpJA2u.mjs';
3
3
  import { O as OFFLINE_EXIT_STAMP_TIMEOUT_MS } from './sessionExitLifecycle-CzkLIgNZ.mjs';
4
4
 
5
5
  class BaseReasoningProcessor {
@@ -112,7 +112,9 @@ async function forkCodexBeforeUserMessage(client, opts) {
112
112
  throw new Error("Cannot safely rewind a user message inside an existing turn");
113
113
  }
114
114
  if (sourceCut.index === 0) return { type: "success", startFresh: true };
115
- const kept = (source.turns ?? []).slice(0, sourceCut.index);
115
+ return forkThroughTurns(client, opts, (source.turns ?? []).slice(0, sourceCut.index));
116
+ }
117
+ async function forkThroughTurns(client, opts, kept) {
116
118
  const expected = kept.map(firstItemId);
117
119
  const forked = await client.forkThread({ threadId: opts.threadId, cwd: opts.cwd, lastTurnId: kept[kept.length - 1].id });
118
120
  if (forked.threadId === opts.threadId) throw new Error("Codex did not create an independent fork");
@@ -125,8 +127,27 @@ async function forkCodexBeforeUserMessage(client, opts) {
125
127
  }
126
128
  return { type: "success", newCodexThreadId: forked.threadId };
127
129
  }
130
+ function isUnfinishedTurn(turn) {
131
+ return turn?.status === "inProgress" || turn?.status === "interrupted";
132
+ }
133
+ async function forkCodexCompletedTurns(client, opts) {
134
+ const { thread: source } = await client.readThread({ threadId: opts.threadId, includeTurns: true });
135
+ const turns = source.turns ?? [];
136
+ const last = turns[turns.length - 1];
137
+ if (!isUnfinishedTurn(last)) {
138
+ return { ...await forkCodexThread(client, opts), excludedPrompts: [] };
139
+ }
140
+ const excludedPrompts = (last.items ?? []).flatMap((item) => {
141
+ const text = textFromUserItem(item);
142
+ return text ? [text] : [];
143
+ });
144
+ const kept = turns.slice(0, -1);
145
+ if (kept.length === 0) return { type: "success", startFresh: true, excludedPrompts };
146
+ return { ...await forkThroughTurns(client, opts, kept), excludedPrompts };
147
+ }
128
148
 
129
149
  exports.CodexForkRewindPointNotFoundError = CodexForkRewindPointNotFoundError;
130
150
  exports.forkCodexBeforeUserMessage = forkCodexBeforeUserMessage;
151
+ exports.forkCodexCompletedTurns = forkCodexCompletedTurns;
131
152
  exports.forkCodexThread = forkCodexThread;
132
153
  exports.listCodexRewindPoints = listCodexRewindPoints;