very-happy-cli 0.2.188 → 0.2.189

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 (190) hide show
  1. package/dist/{AcpBackend-B8AYkp5n.cjs → AcpBackend-DRPJ2g9G.cjs} +3 -3
  2. package/dist/{AcpBackend-2loP7MpF.mjs → AcpBackend-fj16v_cf.mjs} +3 -3
  3. package/dist/{AcpSessionManager-C17doAoR.mjs → AcpSessionManager-BZPmUDL5.mjs} +3 -3
  4. package/dist/{AcpSessionManager-CLqo9R9Y.cjs → AcpSessionManager-DM-KKg6v.cjs} +3 -3
  5. package/dist/{BasePermissionHandler-CrfyUmqO.mjs → BasePermissionHandler-CVtH-snr.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-C8UEcFz0.cjs → BasePermissionHandler-DjM16uJz.cjs} +1 -1
  7. package/dist/{acpSessionResume-OuYlLGxL.cjs → acpSessionResume-2BTMsB7_.cjs} +1 -1
  8. package/dist/{acpSessionResume-F705a1cF.mjs → acpSessionResume-Dxl1LRAT.mjs} +1 -1
  9. package/dist/{agentHome-Dc7LYF3d.mjs → agentHome-CHctmMzZ.mjs} +4 -4
  10. package/dist/{agentHome-DsKHJ_Sf.cjs → agentHome-W17n1gnH.cjs} +4 -4
  11. package/dist/{api-DNKa7kVy.mjs → api-B0yN68XH.mjs} +9 -9
  12. package/dist/{api-BOqjYd5r.cjs → api-BDuuyys8.cjs} +9 -9
  13. package/dist/{apiMachine--rcPpMmt.cjs → apiMachine-iddD-F19.cjs} +13 -13
  14. package/dist/{apiMachine-Di1G9ECW.mjs → apiMachine-mc9CsKuS.mjs} +13 -13
  15. package/dist/{attachmentContent-BFRMLong.cjs → attachmentContent-Cc5b7TPr.cjs} +2 -2
  16. package/dist/{attachmentContent-C9S4ekAz.mjs → attachmentContent-CcIdMfAx.mjs} +2 -2
  17. package/dist/{auth-CQtfznF0.cjs → auth-B7tVmyfX.cjs} +8 -8
  18. package/dist/{auth-BNhhk2Fr.mjs → auth-CyrVvWHF.mjs} +5 -5
  19. package/dist/{auth-Bzwo_vOM.mjs → auth-DNAgkUkB.mjs} +8 -8
  20. package/dist/{auth-CXmI92aj.cjs → auth-DQKSpaEf.cjs} +5 -5
  21. package/dist/{auto-DHYOLnXB.mjs → auto-BklCipw1.mjs} +16 -15
  22. package/dist/{auto-DXLdaX5O.cjs → auto-CetlumDo.cjs} +16 -15
  23. package/dist/{bootstrap-eJ1l7VYl.cjs → bootstrap-CDY-Vz8q.cjs} +2 -2
  24. package/dist/{bootstrap-Di38SnpN.mjs → bootstrap-DfXwkUQb.mjs} +2 -2
  25. package/dist/{browser-D3uBFRQu.cjs → browser-D1yzC0Tu.cjs} +1 -1
  26. package/dist/{browser-6Cg7G6bb.mjs → browser-vb0k1zfI.mjs} +1 -1
  27. package/dist/{claudeLocal-BBaE4QF_.cjs → claudeLocal-2dJIiTIq.cjs} +4 -4
  28. package/dist/{claudeLocal-CqaEs-81.mjs → claudeLocal-Bid_rC_v.mjs} +4 -4
  29. package/dist/{claudeLocalLauncher-BDUPxtsI.mjs → claudeLocalLauncher-5pzpETxd.mjs} +9 -9
  30. package/dist/{claudeLocalLauncher-wPxKtH_P.cjs → claudeLocalLauncher-Jm5oQX5Z.cjs} +9 -9
  31. package/dist/{claudeSessionFork-CmY25Fl3.cjs → claudeSessionFork-DsbcuDEJ.cjs} +1 -1
  32. package/dist/{claudeSessionFork-DzWFzj9m.mjs → claudeSessionFork-DzecSBO4.mjs} +1 -1
  33. package/dist/{client-DWws_aQK.mjs → client-B161HwAk.mjs} +2 -2
  34. package/dist/{client-C2HcMqRF.cjs → client-BNmFaRXZ.cjs} +3 -3
  35. package/dist/{client-qJ0y8fus.mjs → client-C9Ecbtko.mjs} +3 -3
  36. package/dist/{client-DcDE6Ifk.mjs → client-CvjjadIE.mjs} +2 -2
  37. package/dist/{client-DmY03OZZ.cjs → client-D0aYWt53.cjs} +2 -2
  38. package/dist/{client-agH03Irm.cjs → client-DIfxYk7B.cjs} +2 -2
  39. package/dist/codex/happyMcpStdioBridge.cjs +16 -15
  40. package/dist/codex/happyMcpStdioBridge.mjs +16 -15
  41. package/dist/{codexAppServerClient-DgE99i7X.mjs → codexAppServerClient-BlVmpjR-.mjs} +27 -3
  42. package/dist/{codexAppServerClient-DwzC8LR0.cjs → codexAppServerClient-CO9f4Jr8.cjs} +27 -3
  43. package/dist/{codexCommand-1vFEA1KT.cjs → codexCommand-BfoRP6E9.cjs} +117 -54
  44. package/dist/{codexCommand-DUSVzbKh.mjs → codexCommand-CAMR4g5o.mjs} +115 -52
  45. package/dist/{codexTermination-Bybovr2z.mjs → codexTermination-BvGlN02_.mjs} +1 -1
  46. package/dist/{codexTermination-DuDPyBRR.cjs → codexTermination-IrLZQzKC.cjs} +1 -1
  47. package/dist/{config-C4xOL5bH.cjs → config-BGFqQGvh.cjs} +3 -3
  48. package/dist/{config-BrzZ0O-6.mjs → config-CtMgGPvf.mjs} +3 -3
  49. package/dist/{configuration-BZHpFD7K.mjs → configuration-1FabKklB.mjs} +1 -1
  50. package/dist/{configuration-DyPW9mVa.cjs → configuration-C0ctLGW2.cjs} +1 -1
  51. package/dist/{connect-Cw_INlj8.mjs → connect-0lSugpjf.mjs} +12 -12
  52. package/dist/{connect-DurKwMEo.cjs → connect-DSw-2f52.cjs} +12 -12
  53. package/dist/{context-t7YV0aZc.mjs → context-BgxbXWKS.mjs} +1 -1
  54. package/dist/{context-2xDvjkQp.cjs → context-D-hEk5pC.cjs} +1 -1
  55. package/dist/{controlClient-Bw56NIrj.mjs → controlClient-DwNnNAUx.mjs} +3 -3
  56. package/dist/{controlClient-DvFaPsg6.cjs → controlClient-F7hAEEy2.cjs} +3 -3
  57. package/dist/{createSessionMetadata-Dn5BkLfU.mjs → createSessionMetadata-CG6Klinp.mjs} +2 -2
  58. package/dist/{createSessionMetadata-Dpg6bV6f.cjs → createSessionMetadata-DezS33OM.cjs} +2 -2
  59. package/dist/{defaultPermissionMode-Dlm0q1m0.cjs → defaultPermissionMode-5EvgRq38.cjs} +2 -2
  60. package/dist/{defaultPermissionMode-DMTnlccv.mjs → defaultPermissionMode-e2bIIJG4.mjs} +2 -2
  61. package/dist/{deterministicJson-CsRckxVq.mjs → deterministicJson-BMwgK21e.mjs} +12 -12
  62. package/dist/{deterministicJson-D0BrV1FD.cjs → deterministicJson-D0LU_XbO.cjs} +12 -12
  63. package/dist/{doctor-B4HQiW6j.mjs → doctor-D16hySse.mjs} +7 -7
  64. package/dist/{doctor-CYe4d9kU.cjs → doctor-wVNvRarN.cjs} +7 -7
  65. package/dist/{downloadTarget-tYMV_VHo.mjs → downloadTarget-C6tqaXGm.mjs} +6 -6
  66. package/dist/{downloadTarget-CuhBVvuC.cjs → downloadTarget-aNcCxVRL.cjs} +6 -6
  67. package/dist/{ensureDaemonRunning-Ce3BlWiR.cjs → ensureDaemonRunning-CIghxgDR.cjs} +5 -5
  68. package/dist/{ensureDaemonRunning-DVtIG9z7.mjs → ensureDaemonRunning-DZq8bvsp.mjs} +5 -5
  69. package/dist/{handleResumeCommand-BU1uMNyv.mjs → handleResumeCommand-BNnD7EuD.mjs} +5 -5
  70. package/dist/{handleResumeCommand-CLxsmAW0.cjs → handleResumeCommand-CMUTygsm.cjs} +5 -5
  71. package/dist/{index-DoXbGEAi.cjs → index-4TpmBb2Q.cjs} +3 -3
  72. package/dist/{index-wWJJAQRk.cjs → index-B81qV_F_.cjs} +4 -4
  73. package/dist/{index-DDz0Ftoy.mjs → index-BCQr-5Ei.mjs} +4 -4
  74. package/dist/{index-ChX0eVXw.mjs → index-BuiG8hmg.mjs} +47 -44
  75. package/dist/{index-B1OxWiNG.mjs → index-CKd20r1W.mjs} +3 -3
  76. package/dist/{index-DG1kGjkF.cjs → index-CnzsOD19.cjs} +48 -45
  77. package/dist/{index-KwuXqLwe.cjs → index-De02DNu5.cjs} +4 -4
  78. package/dist/{index-CVHRt3SS.mjs → index-Df0bc_et.mjs} +4 -4
  79. package/dist/index.cjs +2 -2
  80. package/dist/index.mjs +2 -2
  81. package/dist/{install-CMa_FOWu.mjs → install-23ehAdTD.mjs} +3 -3
  82. package/dist/{install-cAYvHxXR.cjs → install-DNbIEJUk.cjs} +3 -3
  83. package/dist/lib.cjs +11 -11
  84. package/dist/lib.d.cts +8 -0
  85. package/dist/lib.d.mts +8 -0
  86. package/dist/lib.mjs +11 -11
  87. package/dist/{lidState-d1vgQ3n7.cjs → lidState-B4dHJCeS.cjs} +1 -1
  88. package/dist/{lidState-D-lsD1FS.mjs → lidState-q5Its2Hm.mjs} +1 -1
  89. package/dist/{localHappyAgentAuth-DucSnCg3.cjs → localHappyAgentAuth-CG2nPD_H.cjs} +1 -1
  90. package/dist/{localHappyAgentAuth-wvDp-nGj.mjs → localHappyAgentAuth-C_G5u5lY.mjs} +1 -1
  91. package/dist/{logger-C3vZG6Q0.cjs → logger-BP1SW7Cs.cjs} +2 -2
  92. package/dist/{logger-RpzJ4d8V.mjs → logger-DOKH3Zbh.mjs} +2 -2
  93. package/dist/{machineMetadata-CAvFq1Jg.cjs → machineMetadata-BKX3ov9g.cjs} +3 -3
  94. package/dist/{machineMetadata-CiQ2_1Mq.mjs → machineMetadata-D-5qeIqd.mjs} +3 -3
  95. package/dist/{main-IPhaImjm.mjs → main-DODz8DQE.mjs} +46 -46
  96. package/dist/{main-ChpYcFZi.cjs → main-ndpVIaSG.cjs} +46 -46
  97. package/dist/{mcp-CWnMvju6.mjs → mcp-BBwbSODp.mjs} +15 -14
  98. package/dist/{mcp-2xF232hL.cjs → mcp-Bc4U4exu.cjs} +15 -14
  99. package/dist/{mirrorProtocol-CVzPObON.cjs → mirrorProtocol-CiA3hO2y.cjs} +2 -2
  100. package/dist/{mirrorProtocol-Dr7fNq8V.mjs → mirrorProtocol-D2vTWteS.mjs} +2 -2
  101. package/dist/{package-Gnf_935w.cjs → package-CYDdLA6R.cjs} +7 -7
  102. package/dist/{package-CwB8rFJt.mjs → package-DTcaIhjW.mjs} +7 -7
  103. package/dist/{panels-DTlTsndU.cjs → panels-C2xZ8rqU.cjs} +5 -5
  104. package/dist/{panels-L1mSkC-y.mjs → panels-DCaLxlSL.mjs} +5 -5
  105. package/dist/{peerTools-C1E5cQ86.cjs → peerTools-B4315xjX.cjs} +5 -5
  106. package/dist/{peerTools-2_8Bw9PU.mjs → peerTools-BtrUnSwz.mjs} +5 -5
  107. package/dist/{persistence-Bn4qEbDg.mjs → persistence-0INrP3aB.mjs} +2 -2
  108. package/dist/{persistence-CqtjFiD1.cjs → persistence-CrzC7yr_.cjs} +2 -2
  109. package/dist/{piRunnerArgs-BI8yQRBZ.cjs → piRunnerArgs-BtzW_kfh.cjs} +1 -1
  110. package/dist/{piRunnerArgs-DWBb63W9.mjs → piRunnerArgs-DRuxMlX1.mjs} +1 -1
  111. package/dist/{piRuntime-Do8oqbm3.mjs → piRuntime-BMAFpIBV.mjs} +1 -1
  112. package/dist/{piRuntime--mQ43MSM.cjs → piRuntime-DEbPE_kW.cjs} +1 -1
  113. package/dist/{piTerminal-GC1KHTYQ.mjs → piTerminal-DQXV8_we.mjs} +17 -16
  114. package/dist/{piTerminal-BzcvLFsP.cjs → piTerminal-MtxDtBE2.cjs} +17 -16
  115. package/dist/{pushNotifications-Bb-QSqXw.cjs → pushNotifications-CalIS9sq.cjs} +2 -2
  116. package/dist/{pushNotifications-BThg4nVd.mjs → pushNotifications-Cq1s8YVK.mjs} +2 -2
  117. package/dist/{query-CkgIJ_Dy.mjs → query-BYiPBHPC.mjs} +1 -1
  118. package/dist/{query-Bz3pocKH.cjs → query-CE2XDhhw.cjs} +1 -1
  119. package/dist/{rateLimitReporter-BkHyvLru.cjs → rateLimitReporter-BKmoOZQi.cjs} +3 -3
  120. package/dist/{rateLimitReporter-Iw4k3Bbr.mjs → rateLimitReporter-DR5LXuiQ.mjs} +3 -3
  121. package/dist/{rateLimitWindows-CQ4tIQnx.mjs → rateLimitWindows-5vIuNjko.mjs} +1 -1
  122. package/dist/{rateLimitWindows-Bm_dcQGW.cjs → rateLimitWindows-Cs56YJCH.cjs} +1 -1
  123. package/dist/{registerCommonHandlers-CaWl9ll1.mjs → registerCommonHandlers-DWkTysjD.mjs} +2 -2
  124. package/dist/{registerCommonHandlers-CIs6H2DV.cjs → registerCommonHandlers-DZPozYxc.cjs} +2 -2
  125. package/dist/{specialCommands-DHU7TNeK.mjs → registerKillSessionHandler-CSCTRIbI.mjs} +6 -59
  126. package/dist/{specialCommands-BsvSoDhC.cjs → registerKillSessionHandler-DhCjrs44.cjs} +5 -62
  127. package/dist/{remoteSessionClient-DgUMfPW4.cjs → remoteSessionClient-Dq8XTLQP.cjs} +5 -5
  128. package/dist/{remoteSessionClient-uPj7omsw.mjs → remoteSessionClient-Vfj_5g2-.mjs} +5 -5
  129. package/dist/{reportProgressTool-DUEq3xAL.mjs → reportProgressTool-B7zmX7NJ.mjs} +2 -2
  130. package/dist/{reportProgressTool-CaJ8EwLq.cjs → reportProgressTool-DznxPKES.cjs} +2 -2
  131. package/dist/{run-DyyGMqND.cjs → run-Ca8BiNCp.cjs} +34 -33
  132. package/dist/{run-DTUJBD6p.mjs → run-DSfNcR62.mjs} +34 -33
  133. package/dist/{runClaude-8JDaPoGQ.cjs → runClaude-ClQQcgoO.cjs} +21 -21
  134. package/dist/{runClaude-DTNvIz2J.mjs → runClaude-hoepv-0X.mjs} +21 -21
  135. package/dist/{runClaudeDeps-CgGkgg7e.mjs → runClaudeDeps-D_v8t2SK.mjs} +46 -43
  136. package/dist/{runClaudeDeps-BeLo5zss.cjs → runClaudeDeps-ck5_GYlP.cjs} +43 -39
  137. package/dist/{runGemini-eU8UOzfc.mjs → runGemini-CTr2-cYG.mjs} +48 -47
  138. package/dist/{runGemini-BSOdU563.cjs → runGemini-Cj0XsMiM.cjs} +50 -49
  139. package/dist/{runOpenClaw-CYyFoGRZ.cjs → runOpenClaw-BoN1e3lP.cjs} +26 -25
  140. package/dist/{runOpenClaw-D8RZiA1e.mjs → runOpenClaw-CdDMntiV.mjs} +24 -23
  141. package/dist/{sandbox-C8zfNX-4.cjs → sandbox-BY2h19gc.cjs} +4 -4
  142. package/dist/{sandbox-DlPahdhl.mjs → sandbox-DcaWB-Ou.mjs} +4 -4
  143. package/dist/selfCheck-BQ_H2Sns.mjs +86 -0
  144. package/dist/{selfCheck-D28nvuPJ.cjs → selfCheck-DFS_GUaQ.cjs} +37 -37
  145. package/dist/{send-C58kX4qz.cjs → send-BMsUYU6g.cjs} +9 -8
  146. package/dist/{send-DBpv-1eh.mjs → send-UBTHHNvZ.mjs} +9 -8
  147. package/dist/{server-J5K6pOox.mjs → server-Dt3mCtfQ.mjs} +4 -4
  148. package/dist/{server-I_CETZzn.cjs → server-YrHMHNz1.cjs} +6 -6
  149. package/dist/{sessionLock-DjE7O0LS.cjs → sessionLock-DSqiP2lH.cjs} +3 -3
  150. package/dist/{sessionLock-C7Wg1RVd.mjs → sessionLock-tEFvFXLD.mjs} +3 -3
  151. package/dist/{sessionOps-DGMpl9NB.cjs → sessionOps-BzeOKIEF.cjs} +27 -4
  152. package/dist/{sessionOps-CYjMT7Ad.mjs → sessionOps-CljctDs5.mjs} +27 -4
  153. package/dist/{sessionProvider-TLiFn9kD.mjs → sessionProvider-BnUFSJXM.mjs} +5 -5
  154. package/dist/{sessionProvider-DVtxrOuM.cjs → sessionProvider-ORgzmkXy.cjs} +5 -5
  155. package/dist/{sessionScanner-BZ1ZSn6I.cjs → sessionScanner-Cr6PJ3PT.cjs} +3 -3
  156. package/dist/{sessionScanner-CknV1IlN.mjs → sessionScanner-DZUlkdF6.mjs} +3 -3
  157. package/dist/{sessions-DU4bxkap.mjs → sessions-15cag-su.mjs} +11 -10
  158. package/dist/{sessions-CTkBKs5U.cjs → sessions-aIo_HjmY.cjs} +11 -10
  159. package/dist/{setupOfflineReconnection-DaOXnGuH.mjs → setupOfflineReconnection-B7I8R2Ex.mjs} +2 -2
  160. package/dist/{setupOfflineReconnection-CQHNuP_0.cjs → setupOfflineReconnection-tV0Q1dgR.cjs} +2 -2
  161. package/dist/{spawn-DdnYTtQe.mjs → spawn-ByrQgruJ.mjs} +16 -15
  162. package/dist/{spawn-C0wZc03S.cjs → spawn-VG-HjJiR.cjs} +16 -15
  163. package/dist/{spawnAgents-D-7wMw-a.mjs → spawnAgents-Bh1RPShN.mjs} +3 -1
  164. package/dist/{spawnAgents-BjyU78Ue.cjs → spawnAgents-C1-4m7aN.cjs} +3 -1
  165. package/dist/{spawnHappyCLI-CnyyJk74.mjs → spawnHappyCLI-CEsXwz5V.mjs} +1 -1
  166. package/dist/{spawnHappyCLI-BJUd974I.cjs → spawnHappyCLI-CxiR2Qoy.cjs} +1 -1
  167. package/dist/specialCommands-J3JFOq0J.cjs +60 -0
  168. package/dist/specialCommands-MXUN0wfI.mjs +54 -0
  169. package/dist/{startFileWatcher-DBboREco.cjs → startFileWatcher-C-XCZ5t2.cjs} +1 -1
  170. package/dist/{startFileWatcher-CpO5Mwbr.mjs → startFileWatcher-DkEeeAtL.mjs} +1 -1
  171. package/dist/{startupSessionCreate-C1u2dtz8.cjs → startupSessionCreate-CYc8mra-.cjs} +1 -1
  172. package/dist/{startupSessionCreate-BgaVuvQp.mjs → startupSessionCreate-npXe2TdN.mjs} +1 -1
  173. package/dist/{sync-I8NYmycF.mjs → sync-BvDMkKAN.mjs} +1 -1
  174. package/dist/{sync-6HFRJP1h.cjs → sync-CoChLEIg.cjs} +1 -1
  175. package/dist/{systemPrompt-C1RSY_60.mjs → systemPrompt-CgDaPigN.mjs} +1 -1
  176. package/dist/{systemPrompt-BDWj5QSL.cjs → systemPrompt-Dy_Rf-0Z.cjs} +1 -1
  177. package/dist/{teams-GpLFbXXE.mjs → teams-BC4_e5hR.mjs} +6 -6
  178. package/dist/{teams-eUD7ymif.cjs → teams-DPvfLAk8.cjs} +6 -6
  179. package/dist/{time-umG7yHkb.mjs → time-CUK37wiV.mjs} +1 -1
  180. package/dist/{time-BAJRbB6U.cjs → time-XwEZxKGc.cjs} +1 -1
  181. package/dist/{titleGenerator-iqb2jOF1.cjs → titleGenerator-DVX0NZUn.cjs} +2 -2
  182. package/dist/{titleGenerator-dmFlxkRs.mjs → titleGenerator-DWRVdqMU.mjs} +1 -1
  183. package/dist/{todo-CT4AJ3sH.mjs → todo-BNMGXneA.mjs} +5 -5
  184. package/dist/{todo-DsR7WnQS.cjs → todo-CKGrSrRE.cjs} +5 -5
  185. package/dist/{tools-BOWazSD6.mjs → tools-CCIEAVbB.mjs} +1 -1
  186. package/dist/{tools-30E66QL_.cjs → tools-CjMafO_D.cjs} +1 -1
  187. package/dist/{uninstall-BtTc9hHa.cjs → uninstall-BdFbTXnL.cjs} +3 -3
  188. package/dist/{uninstall-DImXs6VZ.mjs → uninstall-CJvJ7gjr.mjs} +3 -3
  189. package/package.json +7 -7
  190. package/dist/selfCheck-4bcdHPFQ.mjs +0 -86
@@ -3,9 +3,9 @@
3
3
  var node_fs = require('node:fs');
4
4
  var promises = require('node:fs/promises');
5
5
  var path = require('node:path');
6
- var configuration = require('./configuration-DyPW9mVa.cjs');
6
+ var configuration = require('./configuration-C0ctLGW2.cjs');
7
7
  require('node:os');
8
- require('./package-Gnf_935w.cjs');
8
+ require('./package-CYDdLA6R.cjs');
9
9
 
10
10
  const ASSISTANT_CLAUDE_MD = `# very-happy \u8C03\u5EA6\u4E2D\u5FC3\uFF08\u8BED\u97F3\u52A9\u624B\uFF09
11
11
 
@@ -1,9 +1,9 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { mkdir, writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
4
+ import { c as configuration } from './configuration-1FabKklB.mjs';
5
5
  import 'node:os';
6
- import './package-CwB8rFJt.mjs';
6
+ import './package-DTcaIhjW.mjs';
7
7
 
8
8
  const ASSISTANT_CLAUDE_MD = `# very-happy \u8C03\u5EA6\u4E2D\u5FC3\uFF08\u8BED\u97F3\u52A9\u624B\uFF09
9
9
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var open = require('open');
4
- var logger = require('./logger-C3vZG6Q0.cjs');
4
+ var logger = require('./logger-BP1SW7Cs.cjs');
5
5
 
6
6
  async function openBrowser(url) {
7
7
  try {
@@ -1,5 +1,5 @@
1
1
  import open from 'open';
2
- import { l as logger } from './logger-RpzJ4d8V.mjs';
2
+ import { l as logger } from './logger-DOKH3Zbh.mjs';
3
3
 
4
4
  async function openBrowser(url) {
5
5
  try {
@@ -4,19 +4,19 @@ var spawn = require('cross-spawn');
4
4
  var node_readline = require('node:readline');
5
5
  var node_fs = require('node:fs');
6
6
  var node_crypto = require('node:crypto');
7
- var logger = require('./logger-C3vZG6Q0.cjs');
7
+ var logger = require('./logger-BP1SW7Cs.cjs');
8
8
  var promptCacheTtl = require('./promptCacheTtl-B8PCzE6k.cjs');
9
9
  var path$1 = require('node:path');
10
10
  var path = require('./path-B7zW-WwE.cjs');
11
- var systemPrompt = require('./systemPrompt-BDWj5QSL.cjs');
11
+ var systemPrompt = require('./systemPrompt-Dy_Rf-0Z.cjs');
12
12
  var manager = require('./manager-HrEj442o.cjs');
13
13
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
14
14
  var claudeCliPath = require('./claudeCliPath-GaP3UUz1.cjs');
15
15
  require('chalk');
16
16
  require('node:util');
17
- require('./configuration-DyPW9mVa.cjs');
17
+ require('./configuration-C0ctLGW2.cjs');
18
18
  require('node:os');
19
- require('./package-Gnf_935w.cjs');
19
+ require('./package-CYDdLA6R.cjs');
20
20
  require('node:fs/promises');
21
21
  require('./index-BOe6dKnL.cjs');
22
22
  require('zod');
@@ -2,19 +2,19 @@ import { spawn } from 'cross-spawn';
2
2
  import { createInterface } from 'node:readline';
3
3
  import { readdirSync, statSync, mkdirSync, existsSync } from 'node:fs';
4
4
  import { randomUUID } from 'node:crypto';
5
- import { l as logger } from './logger-RpzJ4d8V.mjs';
5
+ import { l as logger } from './logger-DOKH3Zbh.mjs';
6
6
  import { p as pinSmallFastModel, a as applyPromptCacheTtlDefault, e as ensureLocalProxyBypass } from './promptCacheTtl-Ce0TVbrx.mjs';
7
7
  import { join } from 'node:path';
8
8
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
9
- import { c as claudeCheckSession, s as systemPrompt } from './systemPrompt-C1RSY_60.mjs';
9
+ import { c as claudeCheckSession, s as systemPrompt } from './systemPrompt-CgDaPigN.mjs';
10
10
  import { i as initializeSandbox, a as wrapCommand } from './manager-BEsI4qt3.mjs';
11
11
  import { c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
12
12
  import { claudeCliPath } from './claudeCliPath-BqkaH2oR.mjs';
13
13
  import 'chalk';
14
14
  import 'node:util';
15
- import './configuration-BZHpFD7K.mjs';
15
+ import './configuration-1FabKklB.mjs';
16
16
  import 'node:os';
17
- import './package-CwB8rFJt.mjs';
17
+ import './package-DTcaIhjW.mjs';
18
18
  import 'node:fs/promises';
19
19
  import './index-WKyN-bNy.mjs';
20
20
  import 'zod';
@@ -1,20 +1,20 @@
1
- import { l as logger } from './logger-RpzJ4d8V.mjs';
2
- import { claudeLocal, ExitCodeError } from './claudeLocal-CqaEs-81.mjs';
3
- import { c as createSessionScanner, F as Future, d as describeClaudeProcessExit } from './sessionScanner-CknV1IlN.mjs';
1
+ import { l as logger } from './logger-DOKH3Zbh.mjs';
2
+ import { claudeLocal, ExitCodeError } from './claudeLocal-Bid_rC_v.mjs';
3
+ import { c as createSessionScanner, F as Future, d as describeClaudeProcessExit } from './sessionScanner-DZUlkdF6.mjs';
4
4
  import 'chalk';
5
5
  import 'node:util';
6
- import './configuration-BZHpFD7K.mjs';
6
+ import './configuration-1FabKklB.mjs';
7
7
  import 'node:fs';
8
8
  import 'node:os';
9
9
  import 'node:path';
10
- import './package-CwB8rFJt.mjs';
10
+ import './package-DTcaIhjW.mjs';
11
11
  import 'node:fs/promises';
12
12
  import 'cross-spawn';
13
13
  import 'node:readline';
14
14
  import 'node:crypto';
15
15
  import './promptCacheTtl-Ce0TVbrx.mjs';
16
16
  import './path-D2wdaNSk.mjs';
17
- import './systemPrompt-C1RSY_60.mjs';
17
+ import './systemPrompt-CgDaPigN.mjs';
18
18
  import './index-WKyN-bNy.mjs';
19
19
  import 'zod';
20
20
  import '@paralleldrive/cuid2';
@@ -28,11 +28,11 @@ import './claudeCliPath-BqkaH2oR.mjs';
28
28
  import './projectPath-BTBIMB57.mjs';
29
29
  import 'path';
30
30
  import 'url';
31
- import './sync-I8NYmycF.mjs';
32
- import './time-umG7yHkb.mjs';
31
+ import './sync-BvDMkKAN.mjs';
32
+ import './time-CUK37wiV.mjs';
33
33
  import './types-CkqAACXx.mjs';
34
34
  import './transcriptCursor-B7T_gkQ0.mjs';
35
- import './startFileWatcher-CpO5Mwbr.mjs';
35
+ import './startFileWatcher-DkEeeAtL.mjs';
36
36
  import 'fs/promises';
37
37
 
38
38
  async function claudeLocalLauncher(session) {
@@ -1,22 +1,22 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-C3vZG6Q0.cjs');
4
- var claudeLocal = require('./claudeLocal-BBaE4QF_.cjs');
5
- var sessionScanner = require('./sessionScanner-BZ1ZSn6I.cjs');
3
+ var logger = require('./logger-BP1SW7Cs.cjs');
4
+ var claudeLocal = require('./claudeLocal-2dJIiTIq.cjs');
5
+ var sessionScanner = require('./sessionScanner-Cr6PJ3PT.cjs');
6
6
  require('chalk');
7
7
  require('node:util');
8
- require('./configuration-DyPW9mVa.cjs');
8
+ require('./configuration-C0ctLGW2.cjs');
9
9
  require('node:fs');
10
10
  require('node:os');
11
11
  require('node:path');
12
- require('./package-Gnf_935w.cjs');
12
+ require('./package-CYDdLA6R.cjs');
13
13
  require('node:fs/promises');
14
14
  require('cross-spawn');
15
15
  require('node:readline');
16
16
  require('node:crypto');
17
17
  require('./promptCacheTtl-B8PCzE6k.cjs');
18
18
  require('./path-B7zW-WwE.cjs');
19
- require('./systemPrompt-BDWj5QSL.cjs');
19
+ require('./systemPrompt-Dy_Rf-0Z.cjs');
20
20
  require('./index-BOe6dKnL.cjs');
21
21
  require('zod');
22
22
  require('@paralleldrive/cuid2');
@@ -30,11 +30,11 @@ require('./claudeCliPath-GaP3UUz1.cjs');
30
30
  require('./projectPath-C3ioB4Bu.cjs');
31
31
  require('path');
32
32
  require('url');
33
- require('./sync-6HFRJP1h.cjs');
34
- require('./time-BAJRbB6U.cjs');
33
+ require('./sync-CoChLEIg.cjs');
34
+ require('./time-XwEZxKGc.cjs');
35
35
  require('./types-CRS-srZK.cjs');
36
36
  require('./transcriptCursor-DcXGLeSc.cjs');
37
- require('./startFileWatcher-DBboREco.cjs');
37
+ require('./startFileWatcher-C-XCZ5t2.cjs');
38
38
  require('fs/promises');
39
39
 
40
40
  async function claudeLocalLauncher(session) {
@@ -5,7 +5,7 @@ var promises = require('node:fs/promises');
5
5
  var node_fs = require('node:fs');
6
6
  var path = require('node:path');
7
7
  var node_readline = require('node:readline');
8
- var logger = require('./logger-C3vZG6Q0.cjs');
8
+ var logger = require('./logger-BP1SW7Cs.cjs');
9
9
 
10
10
  class ForkTruncateUuidNotFoundError extends Error {
11
11
  constructor(cutAfterUuid, sourcePath) {
@@ -3,7 +3,7 @@ import { copyFile, unlink, readFile, rename, writeFile } from 'node:fs/promises'
3
3
  import { createReadStream, createWriteStream } from 'node:fs';
4
4
  import { join } from 'node:path';
5
5
  import { createInterface } from 'node:readline';
6
- import { l as logger } from './logger-RpzJ4d8V.mjs';
6
+ import { l as logger } from './logger-DOKH3Zbh.mjs';
7
7
 
8
8
  class ForkTruncateUuidNotFoundError extends Error {
9
9
  constructor(cutAfterUuid, sourcePath) {
@@ -1,5 +1,5 @@
1
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
2
- import { b as readCredentialsForConfiguredRelay } from './persistence-Bn4qEbDg.mjs';
1
+ import { c as configuration } from './configuration-1FabKklB.mjs';
2
+ import { b as readCredentialsForConfiguredRelay } from './persistence-0INrP3aB.mjs';
3
3
 
4
4
  const UNSUPPORTED_BACKOFF_MS = 10 * 6e4;
5
5
  class ProjectsUnsupportedError extends Error {
@@ -5,9 +5,9 @@ var node_child_process = require('node:child_process');
5
5
  var node_util = require('node:util');
6
6
  var path = require('node:path');
7
7
  var index = require('./index-BOe6dKnL.cjs');
8
- var configuration = require('./configuration-DyPW9mVa.cjs');
9
- var persistence = require('./persistence-CqtjFiD1.cjs');
10
- var context = require('./context-2xDvjkQp.cjs');
8
+ var configuration = require('./configuration-C0ctLGW2.cjs');
9
+ var persistence = require('./persistence-CrzC7yr_.cjs');
10
+ var context = require('./context-D-hEk5pC.cjs');
11
11
 
12
12
  async function teamRequest(path, method, token, scoped, body) {
13
13
  const response = await fetch(`${configuration.configuration.serverUrl}${path}`, {
@@ -3,9 +3,9 @@ import { execFile } from 'node:child_process';
3
3
  import { promisify } from 'node:util';
4
4
  import { basename, dirname } from 'node:path';
5
5
  import { f as isInsideTeamWorktree, r as rebaseTeamWorktreePath } from './index-WKyN-bNy.mjs';
6
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
7
- import { r as readSettings, c as readPersistedSessions, b as readCredentialsForConfiguredRelay } from './persistence-Bn4qEbDg.mjs';
8
- import { r as readTeamScope, t as teamScopePath, w as writeTeamScope } from './context-t7YV0aZc.mjs';
6
+ import { c as configuration } from './configuration-1FabKklB.mjs';
7
+ import { r as readSettings, c as readPersistedSessions, b as readCredentialsForConfiguredRelay } from './persistence-0INrP3aB.mjs';
8
+ import { r as readTeamScope, t as teamScopePath, w as writeTeamScope } from './context-BgxbXWKS.mjs';
9
9
 
10
10
  async function teamRequest(path, method, token, scoped, body) {
11
11
  const response = await fetch(`${configuration.serverUrl}${path}`, {
@@ -1,5 +1,5 @@
1
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
2
- import { b as readCredentialsForConfiguredRelay, r as readSettings } from './persistence-Bn4qEbDg.mjs';
1
+ import { c as configuration } from './configuration-1FabKklB.mjs';
2
+ import { b as readCredentialsForConfiguredRelay, r as readSettings } from './persistence-0INrP3aB.mjs';
3
3
 
4
4
  class AutomationsRequestError extends Error {
5
5
  constructor(status, code, runStatus, invalidFields = []) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var configuration = require('./configuration-DyPW9mVa.cjs');
4
- var persistence = require('./persistence-CqtjFiD1.cjs');
3
+ var configuration = require('./configuration-C0ctLGW2.cjs');
4
+ var persistence = require('./persistence-CrzC7yr_.cjs');
5
5
 
6
6
  class AutomationsRequestError extends Error {
7
7
  constructor(status, code, runStatus, invalidFields = []) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var configuration = require('./configuration-DyPW9mVa.cjs');
4
- var persistence = require('./persistence-CqtjFiD1.cjs');
3
+ var configuration = require('./configuration-C0ctLGW2.cjs');
4
+ var persistence = require('./persistence-CrzC7yr_.cjs');
5
5
 
6
6
  const UNSUPPORTED_BACKOFF_MS = 10 * 6e4;
7
7
  class ProjectsUnsupportedError extends Error {
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var tools = require('../tools-30E66QL_.cjs');
4
- var reportProgressTool = require('../reportProgressTool-CaJ8EwLq.cjs');
5
- var peerTools = require('../peerTools-C1E5cQ86.cjs');
3
+ var tools = require('../tools-CjMafO_D.cjs');
4
+ var reportProgressTool = require('../reportProgressTool-DznxPKES.cjs');
5
+ var peerTools = require('../peerTools-B4315xjX.cjs');
6
6
  var agentGuidance = require('../agentGuidance-BtBx2xxE.cjs');
7
7
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
8
8
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
@@ -10,36 +10,37 @@ var index_js = require('@modelcontextprotocol/sdk/client/index.js');
10
10
  var streamableHttp_js = require('@modelcontextprotocol/sdk/client/streamableHttp.js');
11
11
  var z = require('zod');
12
12
  var limits = require('../limits-C-a7gr04.cjs');
13
- require('../client-C2HcMqRF.cjs');
13
+ require('../client-BNmFaRXZ.cjs');
14
14
  require('node:crypto');
15
15
  require('node:child_process');
16
16
  require('node:util');
17
17
  require('node:path');
18
18
  require('../index-BOe6dKnL.cjs');
19
19
  require('@paralleldrive/cuid2');
20
- require('../configuration-DyPW9mVa.cjs');
20
+ require('../configuration-C0ctLGW2.cjs');
21
21
  require('node:fs');
22
22
  require('node:os');
23
- require('../package-Gnf_935w.cjs');
23
+ require('../package-CYDdLA6R.cjs');
24
24
  require('node:fs/promises');
25
- require('../persistence-CqtjFiD1.cjs');
25
+ require('../persistence-CrzC7yr_.cjs');
26
26
  require('../authRelay-Dy1qU9td.cjs');
27
27
  require('tweetnacl');
28
- require('../logger-C3vZG6Q0.cjs');
28
+ require('../logger-BP1SW7Cs.cjs');
29
29
  require('chalk');
30
- require('../context-2xDvjkQp.cjs');
31
- require('../client-DmY03OZZ.cjs');
30
+ require('../context-D-hEk5pC.cjs');
31
+ require('../client-D0aYWt53.cjs');
32
32
  require('../precheckCompat-CWOi5c9L.cjs');
33
- require('../client-agH03Irm.cjs');
33
+ require('../client-DIfxYk7B.cjs');
34
34
  require('../prompt-Bof2aQkI.cjs');
35
35
  require('../ids-B6ZC0HGt.cjs');
36
- require('../controlClient-DvFaPsg6.cjs');
37
- require('../sessionOps-DGMpl9NB.cjs');
36
+ require('../controlClient-F7hAEEy2.cjs');
37
+ require('../sessionOps-BzeOKIEF.cjs');
38
38
  require('axios');
39
- require('../time-BAJRbB6U.cjs');
39
+ require('../time-XwEZxKGc.cjs');
40
+ require('../specialCommands-J3JFOq0J.cjs');
40
41
  require('socket.io-client');
41
42
  require('../backgroundTaskActivity-CBvUdj39.cjs');
42
- require('../remoteSessionClient-DgUMfPW4.cjs');
43
+ require('../remoteSessionClient-Dq8XTLQP.cjs');
43
44
  require('../trimIdent-4gvk9Wk6.cjs');
44
45
 
45
46
  function parseArgs(argv) {
@@ -1,6 +1,6 @@
1
- import { r as registerTeamsTools } from '../tools-BOWazSD6.mjs';
2
- import { r as registerAutomationTools, a as registerProjectTools, b as registerReportProgressTool } from '../reportProgressTool-DUEq3xAL.mjs';
3
- import { r as registerSessionPeerTools } from '../peerTools-2_8Bw9PU.mjs';
1
+ import { r as registerTeamsTools } from '../tools-CCIEAVbB.mjs';
2
+ import { r as registerAutomationTools, a as registerProjectTools, b as registerReportProgressTool } from '../reportProgressTool-B7zmX7NJ.mjs';
3
+ import { r as registerSessionPeerTools } from '../peerTools-BtrUnSwz.mjs';
4
4
  import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, c as PREVIEW_DOWNLOAD_PARAM_DESCRIPTION, R as REPORT_PROGRESS_TOOL_NAME } from '../agentGuidance-BDYt2Qy2.mjs';
5
5
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
6
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
@@ -8,36 +8,37 @@ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
8
8
  import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
9
9
  import { z } from 'zod';
10
10
  import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-DIo7rEBR.mjs';
11
- import '../client-qJ0y8fus.mjs';
11
+ import '../client-C9Ecbtko.mjs';
12
12
  import 'node:crypto';
13
13
  import 'node:child_process';
14
14
  import 'node:util';
15
15
  import 'node:path';
16
16
  import '../index-WKyN-bNy.mjs';
17
17
  import '@paralleldrive/cuid2';
18
- import '../configuration-BZHpFD7K.mjs';
18
+ import '../configuration-1FabKklB.mjs';
19
19
  import 'node:fs';
20
20
  import 'node:os';
21
- import '../package-CwB8rFJt.mjs';
21
+ import '../package-DTcaIhjW.mjs';
22
22
  import 'node:fs/promises';
23
- import '../persistence-Bn4qEbDg.mjs';
23
+ import '../persistence-0INrP3aB.mjs';
24
24
  import '../authRelay-DhQhkBvX.mjs';
25
25
  import 'tweetnacl';
26
- import '../logger-RpzJ4d8V.mjs';
26
+ import '../logger-DOKH3Zbh.mjs';
27
27
  import 'chalk';
28
- import '../context-t7YV0aZc.mjs';
29
- import '../client-DcDE6Ifk.mjs';
28
+ import '../context-BgxbXWKS.mjs';
29
+ import '../client-CvjjadIE.mjs';
30
30
  import '../precheckCompat-DeEbilbr.mjs';
31
- import '../client-DWws_aQK.mjs';
31
+ import '../client-B161HwAk.mjs';
32
32
  import '../prompt-QHuFx9j6.mjs';
33
33
  import '../ids-DU6sLx4C.mjs';
34
- import '../controlClient-Bw56NIrj.mjs';
35
- import '../sessionOps-CYjMT7Ad.mjs';
34
+ import '../controlClient-DwNnNAUx.mjs';
35
+ import '../sessionOps-CljctDs5.mjs';
36
36
  import 'axios';
37
- import '../time-umG7yHkb.mjs';
37
+ import '../time-CUK37wiV.mjs';
38
+ import '../specialCommands-MXUN0wfI.mjs';
38
39
  import 'socket.io-client';
39
40
  import '../backgroundTaskActivity-8PdPxrvy.mjs';
40
- import '../remoteSessionClient-uPj7omsw.mjs';
41
+ import '../remoteSessionClient-Vfj_5g2-.mjs';
41
42
  import '../trimIdent-BAjmv_TG.mjs';
42
43
 
43
44
  function parseArgs(argv) {
@@ -1,11 +1,11 @@
1
1
  import { execSync } from 'node:child_process';
2
2
  import { spawn } from 'cross-spawn';
3
3
  import { createInterface } from 'node:readline';
4
- import { l as logger } from './logger-RpzJ4d8V.mjs';
4
+ import { l as logger } from './logger-DOKH3Zbh.mjs';
5
5
  import { e as errorLogMetadata, c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
6
6
  import { i as initializeSandbox, w as wrapForMcpTransport } from './manager-BEsI4qt3.mjs';
7
- import { p as packageJson } from './package-CwB8rFJt.mjs';
8
- import { s as shouldReadCodexRateLimits, i as isUnsupportedCodexMethodError } from './rateLimitWindows-CQ4tIQnx.mjs';
7
+ import { p as packageJson } from './package-DTcaIhjW.mjs';
8
+ import { s as shouldReadCodexRateLimits, i as isUnsupportedCodexMethodError } from './rateLimitWindows-5vIuNjko.mjs';
9
9
  import { s as stopProcessGracefully, k as killProcessTree } from './processTree-CP5IvQ2Z.mjs';
10
10
 
11
11
  const CODEX_HELPER_LABEL_MAX_CHARS = 80;
@@ -47,6 +47,10 @@ function jsonRpcErrorCodeOf(error) {
47
47
  const code = error?.jsonRpcCode;
48
48
  return typeof code === "number" ? code : null;
49
49
  }
50
+ function threadModelOf(result) {
51
+ const model = result?.model ?? result?.thread?.model;
52
+ return typeof model === "string" && model.trim() ? model.trim() : null;
53
+ }
50
54
  function isAppServerAvailable() {
51
55
  try {
52
56
  const version = execSync("codex --version", { encoding: "utf8", windowsHide: true }).trim();
@@ -127,6 +131,12 @@ class CodexAppServerClient {
127
131
  // Session state
128
132
  _threadId = null;
129
133
  _turnId = null;
134
+ /**
135
+ * B-844d: the model the thread really runs. Codex keeps a thread's model
136
+ * (thread/start, thread/resume, a turn/start that named one) for every
137
+ * later turn that omits it, and reports it on start/resume/fork.
138
+ */
139
+ _threadModel = null;
130
140
  threadDefaults = null;
131
141
  // Turn completion tracking for the currently active sendTurnAndWait call.
132
142
  pendingTurnCompletion = null;
@@ -192,6 +202,10 @@ class CodexAppServerClient {
192
202
  get turnId() {
193
203
  return this._turnId;
194
204
  }
205
+ /** B-844d: the model the current thread runs for turns that name none (null = unknown). */
206
+ get threadModel() {
207
+ return this._threadModel;
208
+ }
195
209
  setEventHandler(handler) {
196
210
  this.eventHandler = handler;
197
211
  }
@@ -642,6 +656,7 @@ ${text}`.slice(-400);
642
656
  this.clearThreadStopGrace();
643
657
  if (!opts?.preserveThreadState) {
644
658
  this._threadId = null;
659
+ this._threadModel = null;
645
660
  this.threadDefaults = null;
646
661
  }
647
662
  for (const [id, req] of this.pending) {
@@ -744,6 +759,7 @@ ${text}`.slice(-400);
744
759
  const result = await this.request("thread/start", params);
745
760
  this._threadId = result.thread.id;
746
761
  this._turnId = null;
762
+ this._threadModel = threadModelOf(result);
747
763
  this.rememberThreadDefaults(opts);
748
764
  logger.debug("[CodexAppServer] Thread started:", this._threadId);
749
765
  return { threadId: result.thread.id, model: result.model };
@@ -770,6 +786,7 @@ ${text}`.slice(-400);
770
786
  const result = await this.request("thread/resume", params);
771
787
  this._threadId = result.thread.id;
772
788
  this._turnId = null;
789
+ this._threadModel = threadModelOf(result);
773
790
  this.rememberThreadDefaults({
774
791
  model: opts?.model ?? defaults.model,
775
792
  cwd: opts?.cwd ?? defaults.cwd,
@@ -799,6 +816,7 @@ ${text}`.slice(-400);
799
816
  const result = await this.request("thread/fork", params);
800
817
  this._threadId = result.thread.id;
801
818
  this._turnId = null;
819
+ this._threadModel = threadModelOf(result);
802
820
  this.rememberThreadDefaults({
803
821
  model: opts.model ?? defaults.model,
804
822
  cwd: opts.cwd ?? defaults.cwd,
@@ -846,6 +864,7 @@ ${text}`.slice(-400);
846
864
  } catch (error) {
847
865
  logger.warn("[CodexAppServer] Failed to resume thread after reconnect", error);
848
866
  this._threadId = null;
867
+ this._threadModel = null;
849
868
  this.threadDefaults = null;
850
869
  return false;
851
870
  }
@@ -1078,6 +1097,10 @@ ${text}`.slice(-400);
1078
1097
  }
1079
1098
  }
1080
1099
  const result = await this.request("turn/start", params);
1100
+ if (opts?.model) {
1101
+ this._threadModel = opts.model;
1102
+ if (this.threadDefaults) this.threadDefaults.model = opts.model;
1103
+ }
1081
1104
  const turnId = result?.turn?.id;
1082
1105
  if (typeof turnId === "string" && turnId.length > 0) {
1083
1106
  this._turnId = turnId;
@@ -1208,6 +1231,7 @@ ${text}`.slice(-400);
1208
1231
  this.resolvePendingTurn(true);
1209
1232
  this._threadId = null;
1210
1233
  this._turnId = null;
1234
+ this._threadModel = null;
1211
1235
  this.threadDefaults = null;
1212
1236
  this.completedTurnIds.clear();
1213
1237
  this.failedTurnIds.clear();
@@ -3,11 +3,11 @@
3
3
  var node_child_process = require('node:child_process');
4
4
  var spawn = require('cross-spawn');
5
5
  var node_readline = require('node:readline');
6
- var logger = require('./logger-C3vZG6Q0.cjs');
6
+ var logger = require('./logger-BP1SW7Cs.cjs');
7
7
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
8
8
  var manager = require('./manager-HrEj442o.cjs');
9
- var _package = require('./package-Gnf_935w.cjs');
10
- var rateLimitWindows = require('./rateLimitWindows-Bm_dcQGW.cjs');
9
+ var _package = require('./package-CYDdLA6R.cjs');
10
+ var rateLimitWindows = require('./rateLimitWindows-Cs56YJCH.cjs');
11
11
  var processTree = require('./processTree-CMHWlVse.cjs');
12
12
 
13
13
  const CODEX_HELPER_LABEL_MAX_CHARS = 80;
@@ -49,6 +49,10 @@ function jsonRpcErrorCodeOf(error) {
49
49
  const code = error?.jsonRpcCode;
50
50
  return typeof code === "number" ? code : null;
51
51
  }
52
+ function threadModelOf(result) {
53
+ const model = result?.model ?? result?.thread?.model;
54
+ return typeof model === "string" && model.trim() ? model.trim() : null;
55
+ }
52
56
  function isAppServerAvailable() {
53
57
  try {
54
58
  const version = node_child_process.execSync("codex --version", { encoding: "utf8", windowsHide: true }).trim();
@@ -129,6 +133,12 @@ class CodexAppServerClient {
129
133
  // Session state
130
134
  _threadId = null;
131
135
  _turnId = null;
136
+ /**
137
+ * B-844d: the model the thread really runs. Codex keeps a thread's model
138
+ * (thread/start, thread/resume, a turn/start that named one) for every
139
+ * later turn that omits it, and reports it on start/resume/fork.
140
+ */
141
+ _threadModel = null;
132
142
  threadDefaults = null;
133
143
  // Turn completion tracking for the currently active sendTurnAndWait call.
134
144
  pendingTurnCompletion = null;
@@ -194,6 +204,10 @@ class CodexAppServerClient {
194
204
  get turnId() {
195
205
  return this._turnId;
196
206
  }
207
+ /** B-844d: the model the current thread runs for turns that name none (null = unknown). */
208
+ get threadModel() {
209
+ return this._threadModel;
210
+ }
197
211
  setEventHandler(handler) {
198
212
  this.eventHandler = handler;
199
213
  }
@@ -644,6 +658,7 @@ ${text}`.slice(-400);
644
658
  this.clearThreadStopGrace();
645
659
  if (!opts?.preserveThreadState) {
646
660
  this._threadId = null;
661
+ this._threadModel = null;
647
662
  this.threadDefaults = null;
648
663
  }
649
664
  for (const [id, req] of this.pending) {
@@ -746,6 +761,7 @@ ${text}`.slice(-400);
746
761
  const result = await this.request("thread/start", params);
747
762
  this._threadId = result.thread.id;
748
763
  this._turnId = null;
764
+ this._threadModel = threadModelOf(result);
749
765
  this.rememberThreadDefaults(opts);
750
766
  logger.logger.debug("[CodexAppServer] Thread started:", this._threadId);
751
767
  return { threadId: result.thread.id, model: result.model };
@@ -772,6 +788,7 @@ ${text}`.slice(-400);
772
788
  const result = await this.request("thread/resume", params);
773
789
  this._threadId = result.thread.id;
774
790
  this._turnId = null;
791
+ this._threadModel = threadModelOf(result);
775
792
  this.rememberThreadDefaults({
776
793
  model: opts?.model ?? defaults.model,
777
794
  cwd: opts?.cwd ?? defaults.cwd,
@@ -801,6 +818,7 @@ ${text}`.slice(-400);
801
818
  const result = await this.request("thread/fork", params);
802
819
  this._threadId = result.thread.id;
803
820
  this._turnId = null;
821
+ this._threadModel = threadModelOf(result);
804
822
  this.rememberThreadDefaults({
805
823
  model: opts.model ?? defaults.model,
806
824
  cwd: opts.cwd ?? defaults.cwd,
@@ -848,6 +866,7 @@ ${text}`.slice(-400);
848
866
  } catch (error) {
849
867
  logger.logger.warn("[CodexAppServer] Failed to resume thread after reconnect", error);
850
868
  this._threadId = null;
869
+ this._threadModel = null;
851
870
  this.threadDefaults = null;
852
871
  return false;
853
872
  }
@@ -1080,6 +1099,10 @@ ${text}`.slice(-400);
1080
1099
  }
1081
1100
  }
1082
1101
  const result = await this.request("turn/start", params);
1102
+ if (opts?.model) {
1103
+ this._threadModel = opts.model;
1104
+ if (this.threadDefaults) this.threadDefaults.model = opts.model;
1105
+ }
1083
1106
  const turnId = result?.turn?.id;
1084
1107
  if (typeof turnId === "string" && turnId.length > 0) {
1085
1108
  this._turnId = turnId;
@@ -1210,6 +1233,7 @@ ${text}`.slice(-400);
1210
1233
  this.resolvePendingTurn(true);
1211
1234
  this._threadId = null;
1212
1235
  this._turnId = null;
1236
+ this._threadModel = null;
1213
1237
  this.threadDefaults = null;
1214
1238
  this.completedTurnIds.clear();
1215
1239
  this.failedTurnIds.clear();