very-happy-cli 0.2.190 → 0.2.191

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 (196) hide show
  1. package/dist/{AcpBackend-Dd1h-Rgt.mjs → AcpBackend-CCy_9AfR.mjs} +3 -3
  2. package/dist/{AcpBackend-dkRv9QHm.cjs → AcpBackend-DgrIc1vH.cjs} +3 -3
  3. package/dist/{AcpSessionManager-QBZ-CIf7.mjs → AcpSessionManager-CQnxx7gD.mjs} +2 -2
  4. package/dist/{AcpSessionManager-AqWAqahm.cjs → AcpSessionManager-DVOzCD3P.cjs} +2 -2
  5. package/dist/{BasePermissionHandler-CpSugp7Z.cjs → BasePermissionHandler-C9Ag7yvs.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-CLp1ge-4.mjs → BasePermissionHandler-DYLN6Ec9.mjs} +1 -1
  7. package/dist/{acpSessionResume-CcpDuIO5.mjs → acpSessionResume-Bi7pA1n_.mjs} +1 -1
  8. package/dist/{acpSessionResume-CZao6QEd.cjs → acpSessionResume-TvP_4Zq2.cjs} +1 -1
  9. package/dist/{agentHome-BJGRA2Kx.mjs → agentHome-DGv105SR.mjs} +4 -4
  10. package/dist/{agentHome-fIUqT-pn.cjs → agentHome-DNUKJWOY.cjs} +4 -4
  11. package/dist/{api-CXL6jp-p.cjs → api-BBxZ7y2z.cjs} +10 -10
  12. package/dist/{api-Dw8gFsQi.mjs → api-jfeMRg5R.mjs} +10 -10
  13. package/dist/{apiMachine-BBNEtjf7.mjs → apiMachine-DRJ7y-BB.mjs} +14 -14
  14. package/dist/{apiMachine-C6UqHoPF.cjs → apiMachine-DqyjKBZG.cjs} +14 -14
  15. package/dist/{attachmentContent-NmVfKp-B.cjs → attachmentContent-BO2njyza.cjs} +2 -2
  16. package/dist/{attachmentContent-CC4yIrSm.mjs → attachmentContent-Dm_RIs5L.mjs} +2 -2
  17. package/dist/{auth-Bh6SUoGi.mjs → auth-BYDtjVNb.mjs} +8 -8
  18. package/dist/{auth-Bj0psrD2.mjs → auth-DC6rg8lJ.mjs} +5 -5
  19. package/dist/{auth-DKa4MsAi.cjs → auth-DLR3ksCF.cjs} +8 -8
  20. package/dist/{auth-Bb_SL2os.cjs → auth-DnxoVkkf.cjs} +5 -5
  21. package/dist/{auto-C9Qohh0P.cjs → auto-CwO0u8hB.cjs} +17 -17
  22. package/dist/{auto-DK7pbCnV.mjs → auto-D5Jhukq1.mjs} +17 -17
  23. package/dist/{bootstrap-Ct9Nb4sv.mjs → bootstrap-rLaL3kTa.mjs} +2 -2
  24. package/dist/{bootstrap-DBJB0y-H.cjs → bootstrap-sly4qPPY.cjs} +2 -2
  25. package/dist/{browser-CLJWcodR.cjs → browser-BTgZ9d4i.cjs} +1 -1
  26. package/dist/{browser-BGxDRhHy.mjs → browser-CHpVgyni.mjs} +1 -1
  27. package/dist/{claudeLocal-B6YDYlnY.cjs → claudeLocal-1vuTFcL8.cjs} +5 -5
  28. package/dist/{claudeLocal-Ux31hZyC.mjs → claudeLocal-Bgb5GGsq.mjs} +5 -5
  29. package/dist/{claudeLocalLauncher-DFvmF8rC.cjs → claudeLocalLauncher-DOsL6HFY.cjs} +10 -10
  30. package/dist/{claudeLocalLauncher-D06QijMw.mjs → claudeLocalLauncher-T7EfT68h.mjs} +10 -10
  31. package/dist/{claudeSessionFork-D2GI7P59.mjs → claudeSessionFork-CPvi6yDX.mjs} +1 -1
  32. package/dist/{claudeSessionFork-DTLZ2rek.cjs → claudeSessionFork-Cko4SaVi.cjs} +1 -1
  33. package/dist/{client-DZkBUoh9.mjs → client-BXD66ZF5.mjs} +2 -2
  34. package/dist/{client-CtL0Vtww.mjs → client-Bh1aUPh-.mjs} +4 -4
  35. package/dist/{client-CnGNYidN.mjs → client-Bi20Ka0h.mjs} +2 -2
  36. package/dist/{client-Bffkrs5p.cjs → client-BscskEBk.cjs} +2 -2
  37. package/dist/{client-CARZ_lNS.cjs → client-C-OdTbrU.cjs} +4 -4
  38. package/dist/{client-CMKGrnmT.cjs → client-C5-C0t2a.cjs} +2 -2
  39. package/dist/codex/happyMcpStdioBridge.cjs +16 -16
  40. package/dist/codex/happyMcpStdioBridge.mjs +16 -16
  41. package/dist/{codexAppServerClient-CpT9F6EM.cjs → codexAppServerClient-DKXeikEe.cjs} +3 -3
  42. package/dist/{codexAppServerClient-CLc5nhLT.mjs → codexAppServerClient-DXhAf6i-.mjs} +3 -3
  43. package/dist/{codexCommand-Dliq3EBv.mjs → codexCommand-CIaOiiOj.mjs} +113 -55
  44. package/dist/{codexCommand-39kH99SJ.cjs → codexCommand-DvbbpYBS.cjs} +113 -55
  45. package/dist/{codexTermination-ORIw0gpU.mjs → codexTermination-BcQdEDaw.mjs} +1 -1
  46. package/dist/{codexTermination-ByW7tRjr.cjs → codexTermination-BszWfyk5.cjs} +1 -1
  47. package/dist/{config-CeIzCsfj.cjs → config-Di3Cf6js.cjs} +3 -3
  48. package/dist/{config-CxSsGO1Z.mjs → config-OCEcVVK1.mjs} +3 -3
  49. package/dist/{configuration-Dt5lKW3P.cjs → configuration-DfPBa-9d.cjs} +1 -1
  50. package/dist/{configuration-Dechcvd-.mjs → configuration-ECqXu34R.mjs} +1 -1
  51. package/dist/{connect-NPDzIVC6.cjs → connect-BPQRuOw5.cjs} +13 -13
  52. package/dist/{connect-UwQHvCpR.mjs → connect-BTfAUhk8.mjs} +13 -13
  53. package/dist/{context-C9JbJoNe.mjs → context-CfgTFpCB.mjs} +1 -1
  54. package/dist/{context-BdZssgF0.cjs → context-Co7hUaW-.cjs} +1 -1
  55. package/dist/{controlClient-BRk65BRO.cjs → controlClient-C13_pSKG.cjs} +3 -3
  56. package/dist/{controlClient-D7NGfmtq.mjs → controlClient-ClI7A0qE.mjs} +3 -3
  57. package/dist/{createSessionMetadata-DyhFKAby.mjs → createSessionMetadata-B0eT_Kfj.mjs} +2 -2
  58. package/dist/{createSessionMetadata-B_HZCDj_.cjs → createSessionMetadata-Cf78KHtt.cjs} +2 -2
  59. package/dist/defaultPermissionMode-m6z2QVyP.mjs +43 -0
  60. package/dist/defaultPermissionMode-oqTupStc.cjs +49 -0
  61. package/dist/{deterministicJson-DNmMVhFu.mjs → deterministicJson-BtSwbsok.mjs} +13 -13
  62. package/dist/{deterministicJson-BEygolBQ.cjs → deterministicJson-CpFFgUL_.cjs} +13 -13
  63. package/dist/{doctor-B9lW1WlG.cjs → doctor-BEU0_1Xv.cjs} +7 -7
  64. package/dist/{doctor-BdBi7TFZ.mjs → doctor-lsxmAK4o.mjs} +7 -7
  65. package/dist/{downloadTarget-CGojGjaN.mjs → downloadTarget-BXqXhNF7.mjs} +6 -6
  66. package/dist/{downloadTarget-DS0zT2AU.cjs → downloadTarget-CikzJv1h.cjs} +6 -6
  67. package/dist/{ensureDaemonRunning-Bibp6vhe.cjs → ensureDaemonRunning-BUuH-pbE.cjs} +5 -5
  68. package/dist/{ensureDaemonRunning-BOdbryDM.mjs → ensureDaemonRunning-B_9WAlbU.mjs} +5 -5
  69. package/dist/{handleResumeCommand-CgLzBYne.mjs → handleResumeCommand-BK9XKH_l.mjs} +5 -5
  70. package/dist/{handleResumeCommand-DXOuWr4p.cjs → handleResumeCommand-Dj7oi2KO.cjs} +5 -5
  71. package/dist/{index-Db0HIC-k.mjs → index-BdOJOZ6J.mjs} +4 -4
  72. package/dist/{index-rNTX33in.mjs → index-BjZnpGWX.mjs} +3 -3
  73. package/dist/{index-DmqsRnV7.mjs → index-Bq8NKSCF.mjs} +65 -1
  74. package/dist/{index-BOe6dKnL.cjs → index-CLUHaPU8.cjs} +76 -0
  75. package/dist/{index-f8oDidjV.cjs → index-CauRYQKr.cjs} +39 -39
  76. package/dist/{index-CwRW11hT.cjs → index-CmZusg8Q.cjs} +3 -3
  77. package/dist/{index-CBHfkQNY.mjs → index-Cxso1rg4.mjs} +40 -40
  78. package/dist/{index-Bs5FD8JF.cjs → index-D3c7CLot.cjs} +4 -4
  79. package/dist/{index-DXSIi6j_.cjs → index-Dg2NAF_-.cjs} +4 -4
  80. package/dist/{index-DUByZsKe.mjs → index-DuK9XYbZ.mjs} +4 -4
  81. package/dist/index.cjs +2 -2
  82. package/dist/index.mjs +2 -2
  83. package/dist/{install-DfPrEWGG.mjs → install-DTIveLOS.mjs} +3 -3
  84. package/dist/{install-CXIL_FYx.cjs → install-DXllkuy0.cjs} +3 -3
  85. package/dist/lib.cjs +12 -12
  86. package/dist/lib.d.cts +10 -0
  87. package/dist/lib.d.mts +10 -0
  88. package/dist/lib.mjs +12 -12
  89. package/dist/{lidState-q_XFYg33.cjs → lidState-C9_DoF9i.cjs} +1 -1
  90. package/dist/{lidState-D0DF20oG.mjs → lidState-CD81ryTy.mjs} +1 -1
  91. package/dist/{localHappyAgentAuth-CKNW-MXw.cjs → localHappyAgentAuth-CCjUvOfi.cjs} +1 -1
  92. package/dist/{localHappyAgentAuth-BBhM4Qk1.mjs → localHappyAgentAuth-Cg-m1lwm.mjs} +1 -1
  93. package/dist/{logger-BBRTTVsQ.cjs → logger-Ct2zvaq0.cjs} +2 -2
  94. package/dist/{logger-CL7pin9b.mjs → logger-GcbI0eg2.mjs} +2 -2
  95. package/dist/{machineMetadata-DP06qdBk.mjs → machineMetadata-CXRmFNOV.mjs} +3 -3
  96. package/dist/{machineMetadata-DnFNlrVK.cjs → machineMetadata-DDCVWb_x.cjs} +3 -3
  97. package/dist/{main-DLOXykOR.cjs → main-BHC-WIcM.cjs} +46 -46
  98. package/dist/{main-DO7nRvhf.mjs → main-omGr_ONk.mjs} +46 -46
  99. package/dist/{mcp-C-4sPTae.mjs → mcp-D5hxmRAq.mjs} +15 -15
  100. package/dist/{mcp-Du0MgR7e.cjs → mcp-xUzii0m8.cjs} +15 -15
  101. package/dist/{mirrorProtocol-GuWMxLkh.cjs → mirrorProtocol-Dfl8Ahyf.cjs} +3 -3
  102. package/dist/{mirrorProtocol-dkq2ZENA.mjs → mirrorProtocol-Lcx20Oby.mjs} +3 -3
  103. package/dist/{package-DrY090nZ.cjs → package-9n7wd2dT.cjs} +7 -7
  104. package/dist/{package-C6uiXULx.mjs → package-BsUHyqWe.mjs} +7 -7
  105. package/dist/{panels-4DRBKHZP.cjs → panels-BfknEmt7.cjs} +5 -5
  106. package/dist/{panels-DXYdJA6n.mjs → panels-CpEKWWbI.mjs} +5 -5
  107. package/dist/{peerTools-5ZM4spcZ.cjs → peerTools-CElYh-5u.cjs} +5 -5
  108. package/dist/{peerTools-dY1aJez4.mjs → peerTools-CwCe6tmJ.mjs} +5 -5
  109. package/dist/{persistence-Bl5S3TLB.cjs → persistence-A2NeERZJ.cjs} +2 -2
  110. package/dist/{persistence-Dogj7JIp.mjs → persistence-Cpw4yJs8.mjs} +2 -2
  111. package/dist/{piRunnerArgs-C3jZ1M6b.cjs → piRunnerArgs-BnFU0K73.cjs} +1 -1
  112. package/dist/{piRunnerArgs-D8nN_Iit.mjs → piRunnerArgs-Bqmu16He.mjs} +1 -1
  113. package/dist/{piRuntime-BoeMsAXK.mjs → piRuntime-Cgn1b0OX.mjs} +1 -1
  114. package/dist/{piRuntime-Bd9-eq6M.cjs → piRuntime-DpS9TAIs.cjs} +1 -1
  115. package/dist/{piTerminal-GEPkIGD4.mjs → piTerminal-BGdps8f3.mjs} +17 -17
  116. package/dist/{piTerminal-C3j1ca3x.cjs → piTerminal-rmve-VlI.cjs} +17 -17
  117. package/dist/{pushNotifications-CfspRcl-.cjs → pushNotifications-23YSd-0l.cjs} +10 -3
  118. package/dist/{pushNotifications-dUceOIni.mjs → pushNotifications-XAM8__Pg.mjs} +10 -3
  119. package/dist/{query-iYH-tm7L.mjs → query-SZcYnJoW.mjs} +1 -1
  120. package/dist/{query-DjsVgG3E.cjs → query-u2GX-I0C.cjs} +1 -1
  121. package/dist/{rateLimitReporter-jeVi-fym.mjs → rateLimitReporter-COUkf446.mjs} +3 -3
  122. package/dist/{rateLimitReporter-DUu2KydZ.cjs → rateLimitReporter-CaTzBe3x.cjs} +3 -3
  123. package/dist/{rateLimitWindows-Bx3ROBP5.cjs → rateLimitWindows-B2Kx6L0S.cjs} +1 -1
  124. package/dist/{rateLimitWindows-CEn0DXaX.mjs → rateLimitWindows-j_qQk0KY.mjs} +1 -1
  125. package/dist/{registerCommonHandlers-Beun-cQv.cjs → registerCommonHandlers-D1MiSfcB.cjs} +2 -2
  126. package/dist/{registerCommonHandlers-DWZ7mfdt.mjs → registerCommonHandlers-DRRfinzK.mjs} +2 -2
  127. package/dist/{registerKillSessionHandler-CzgklwLG.mjs → registerKillSessionHandler-Cpug_r5C.mjs} +6 -6
  128. package/dist/{registerKillSessionHandler-CA1FFr_F.cjs → registerKillSessionHandler-hvCsEn7b.cjs} +6 -6
  129. package/dist/{remoteSessionClient-DGFI__5Z.cjs → remoteSessionClient-6ymeMVa4.cjs} +5 -5
  130. package/dist/{remoteSessionClient-BiC2KDew.mjs → remoteSessionClient-BdnJ_n8C.mjs} +5 -5
  131. package/dist/{reportProgressTool-CgPy6n_7.mjs → reportProgressTool-XgQBzxoD.mjs} +3 -3
  132. package/dist/{reportProgressTool-CvPGov1F.cjs → reportProgressTool-tzQLCLIw.cjs} +3 -3
  133. package/dist/{run-B_gFgJVB.mjs → run-Bt0AklUU.mjs} +39 -36
  134. package/dist/{run-rPqQwDi_.cjs → run-DYL_wuj7.cjs} +39 -36
  135. package/dist/{runClaude-CykqeXK7.mjs → runClaude-C3rii_S6.mjs} +44 -27
  136. package/dist/{runClaude-DM8gm8iu.cjs → runClaude-CBEpYO4S.cjs} +44 -27
  137. package/dist/{runClaudeDeps-DGAomimZ.cjs → runClaudeDeps-CYuozSC6.cjs} +129 -60
  138. package/dist/{runClaudeDeps-D2phXGut.mjs → runClaudeDeps-DlVfMG4F.mjs} +134 -65
  139. package/dist/{runGemini-CXTeSOZp.cjs → runGemini-CEI3b90u.cjs} +33 -33
  140. package/dist/{runGemini-CtWCVkj5.mjs → runGemini-DkYhRk9S.mjs} +33 -33
  141. package/dist/{runOpenClaw-CH_9_RyZ.cjs → runOpenClaw-BgjD6E4d.cjs} +18 -18
  142. package/dist/{runOpenClaw-BBdjlViJ.mjs → runOpenClaw-DpprWCoz.mjs} +18 -18
  143. package/dist/{sandbox-DGmXZ6Zz.mjs → sandbox-DJ7A7lsy.mjs} +4 -4
  144. package/dist/{sandbox-Bb5IMun3.cjs → sandbox-XCDUbH72.cjs} +4 -4
  145. package/dist/{selfCheck-CccwNTTK.cjs → selfCheck-BYUDB1Uq.cjs} +37 -37
  146. package/dist/selfCheck-C-rNljKV.mjs +86 -0
  147. package/dist/{send-B6rHg8GT.mjs → send-Ba63huxv.mjs} +8 -8
  148. package/dist/{send-BpiXPkDo.cjs → send-CASDBCyJ.cjs} +8 -8
  149. package/dist/{server-DHUzjApC.cjs → server-cZoV9XRt.cjs} +6 -6
  150. package/dist/{server-BkdAyHhC.mjs → server-w3W0toNd.mjs} +4 -4
  151. package/dist/{sessionLock-BFBReiKq.cjs → sessionLock-BmLA2S8K.cjs} +3 -3
  152. package/dist/{sessionLock-Ca_bIo50.mjs → sessionLock-G2PMqvsh.mjs} +3 -3
  153. package/dist/{sessionOps-CA2kpm66.mjs → sessionOps-DPw5k8vV.mjs} +6 -4
  154. package/dist/{sessionOps-DeWVqpe4.cjs → sessionOps-DXlTmS7J.cjs} +6 -4
  155. package/dist/{sessionProvider-g18IiK74.mjs → sessionProvider-DUn91LhJ.mjs} +5 -5
  156. package/dist/{sessionProvider-VFbtUmMR.cjs → sessionProvider-Dg691XQ4.cjs} +5 -5
  157. package/dist/{sessionScanner-CGzsN8V6.cjs → sessionScanner-AHjnicxi.cjs} +3 -3
  158. package/dist/{sessionScanner-DDDud5re.mjs → sessionScanner-BCXpdZJN.mjs} +3 -3
  159. package/dist/{sessions-CKJPWFgu.cjs → sessions-BiBXOBx0.cjs} +10 -10
  160. package/dist/{sessions-B4d50sCI.mjs → sessions-Clk8MR5Y.mjs} +10 -10
  161. package/dist/{setupOfflineReconnection-DPXRo_zf.cjs → setupOfflineReconnection-BKLfOd-i.cjs} +2 -2
  162. package/dist/{setupOfflineReconnection-CyPNgyCe.mjs → setupOfflineReconnection-DI-QZGYz.mjs} +2 -2
  163. package/dist/{spawn-CrYN_OOT.mjs → spawn-4tsp1uhh.mjs} +14 -14
  164. package/dist/{spawn-CgSJzzWS.cjs → spawn-D5omsx1Q.cjs} +14 -14
  165. package/dist/{spawnAgents-DWCDYCQ1.mjs → spawnAgents-CjoU6ZOS.mjs} +8 -2
  166. package/dist/{spawnAgents-C1-4m7aN.cjs → spawnAgents-CtkkIFHd.cjs} +8 -2
  167. package/dist/{spawnHappyCLI-CTy3p6V_.cjs → spawnHappyCLI-CF_gLi92.cjs} +1 -1
  168. package/dist/{spawnHappyCLI-DjbkiSH1.mjs → spawnHappyCLI-CIA9Sc_5.mjs} +1 -1
  169. package/dist/{startFileWatcher-BQs0cJA-.cjs → startFileWatcher-9Stpxe7p.cjs} +1 -1
  170. package/dist/{startFileWatcher-Dedtu1vq.mjs → startFileWatcher-CDO6fb2m.mjs} +1 -1
  171. package/dist/{startupSessionCreate-BKFU4v_h.mjs → startupSessionCreate-BtR4iYEC.mjs} +3 -3
  172. package/dist/{startupSessionCreate-Dxy3X4DG.cjs → startupSessionCreate-CcF7rGGB.cjs} +3 -3
  173. package/dist/{streamRelay-D9a4cBEa.cjs → streamRelay-BhI6jqF-.cjs} +1 -1
  174. package/dist/{streamRelay-P9e7Sohm.mjs → streamRelay-DMwOMTKf.mjs} +1 -1
  175. package/dist/{sync-DtWB7RzA.cjs → sync-Ba8N6xba.cjs} +1 -1
  176. package/dist/{sync-eZkXnsW_.mjs → sync-C0PRuTMj.mjs} +1 -1
  177. package/dist/{systemPrompt-Bn6g6aCH.mjs → systemPrompt-D0q8eyjy.mjs} +2 -2
  178. package/dist/{systemPrompt-2XOpZ1j6.cjs → systemPrompt-DV5IReD4.cjs} +2 -2
  179. package/dist/{teams-nadkqrbW.mjs → teams-BO3_arwM.mjs} +7 -7
  180. package/dist/{teams-ecFay4Gn.cjs → teams-z3Gp-KlV.cjs} +7 -7
  181. package/dist/{template-17HATY_Y.cjs → template-B_5l6pkc.cjs} +1 -1
  182. package/dist/{template-BiTD-jI9.mjs → template-DLR_0hfj.mjs} +1 -1
  183. package/dist/{time-gPD_EmA-.cjs → time-Cy0a-7YX.cjs} +1 -1
  184. package/dist/{time-CN3TuSVG.mjs → time-D0jvDRhn.mjs} +1 -1
  185. package/dist/{titleGenerator-DgzTQdn2.mjs → titleGenerator-AGQsXskb.mjs} +1 -1
  186. package/dist/{titleGenerator-lT5ldPuN.cjs → titleGenerator-RGHWP2YL.cjs} +2 -2
  187. package/dist/{todo-BIxd7l2Q.mjs → todo-BZ954vsz.mjs} +6 -6
  188. package/dist/{todo-B1VeMk5A.cjs → todo-CzIDPLFy.cjs} +6 -6
  189. package/dist/{tools-DvqbLsCF.cjs → tools-B1x1j6tz.cjs} +1 -1
  190. package/dist/{tools-zXJpxiG_.mjs → tools-Bei5i03L.mjs} +1 -1
  191. package/dist/{uninstall-9htK6mb7.mjs → uninstall-B4T_e3Mr.mjs} +3 -3
  192. package/dist/{uninstall-CvIOpwB5.cjs → uninstall-C3cnIvz1.cjs} +3 -3
  193. package/package.json +7 -7
  194. package/dist/defaultPermissionMode-BnxJPVHT.mjs +0 -4
  195. package/dist/defaultPermissionMode-CxmTXUQR.cjs +0 -7
  196. package/dist/selfCheck-BfK945YQ.mjs +0 -86
@@ -1,107 +1,107 @@
1
- import { a as authAndSetupMachineIfNeeded } from './auth-Bj0psrD2.mjs';
2
- import { g as createEnvelope, j as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY, J as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, K as CODEX_COMPACT_CAPABILITY } from './index-DmqsRnV7.mjs';
3
- import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-DNmMVhFu.mjs';
4
- import { s as sharedProjectsClient } from './client-CnGNYidN.mjs';
1
+ import { a as authAndSetupMachineIfNeeded } from './auth-DC6rg8lJ.mjs';
2
+ import { j as createEnvelope, t as BUILTIN_TODO_DISCOVERY, r as restoredEffort, m as readEffortIntent, E as EFFORT_INTENT_AUTO, P as PROMPT_QUEUE_CAPABILITY, Y as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, Z as CODEX_COMPACT_CAPABILITY, R as RUN_INTENT_CAPABILITY } from './index-Bq8NKSCF.mjs';
3
+ import { a as recordRunIntents, w as withoutEffort, r as registerRunIntentRpc, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-m6z2QVyP.mjs';
4
+ import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-BtSwbsok.mjs';
5
+ import { s as sharedProjectsClient } from './client-Bi20Ka0h.mjs';
5
6
  import { unlink } from 'node:fs/promises';
6
7
  import { p as publishForkBackfillWhenCommitted, F as FORK_BACKFILL_CAPABILITY } from './forkBackfill-DYIjlN1Z.mjs';
7
8
  import { randomUUID } from 'node:crypto';
8
9
  import { createId } from '@paralleldrive/cuid2';
9
- import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-Dw8gFsQi.mjs';
10
+ import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-jfeMRg5R.mjs';
10
11
  import { r as registerAgentAttachmentDownloads, H as HeldInput } from './heldInput-C69lA2dH.mjs';
11
- import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-CC4yIrSm.mjs';
12
+ import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-Dm_RIs5L.mjs';
12
13
  import { useStdout, useInput, Box, Text, render } from 'ink';
13
- 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-Ca_bIo50.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-G2PMqvsh.mjs';
14
15
  import React, { useState, useRef, useEffect, useCallback } from 'react';
15
- import { C as CodexAppServerClient } from './codexAppServerClient-CLc5nhLT.mjs';
16
- import { w as wrapperRateLimitReporter } from './rateLimitReporter-jeVi-fym.mjs';
17
- import { l as logger } from './logger-CL7pin9b.mjs';
18
- import { B as BasePermissionHandler } from './BasePermissionHandler-CLp1ge-4.mjs';
19
- import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-ORIw0gpU.mjs';
16
+ import { C as CodexAppServerClient } from './codexAppServerClient-DXhAf6i-.mjs';
17
+ import { w as wrapperRateLimitReporter } from './rateLimitReporter-COUkf446.mjs';
18
+ import { l as logger } from './logger-GcbI0eg2.mjs';
19
+ import { B as BasePermissionHandler } from './BasePermissionHandler-DYLN6Ec9.mjs';
20
+ import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-BcQdEDaw.mjs';
20
21
  import { execSync } from 'node:child_process';
21
- import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-Dogj7JIp.mjs';
22
- import { g as getInitialMachineMetadata } from './machineMetadata-DP06qdBk.mjs';
23
- import { c as configuration } from './configuration-Dechcvd-.mjs';
24
- import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-CzgklwLG.mjs';
22
+ import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-Cpw4yJs8.mjs';
23
+ import { g as getInitialMachineMetadata } from './machineMetadata-CXRmFNOV.mjs';
24
+ import { c as configuration } from './configuration-ECqXu34R.mjs';
25
+ import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-Cpug_r5C.mjs';
25
26
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
26
27
  import { join } from 'node:path';
27
- import { c as createSessionMetadata } from './createSessionMetadata-DyhFKAby.mjs';
28
+ import { c as createSessionMetadata } from './createSessionMetadata-B0eT_Kfj.mjs';
28
29
  import { M as MessageBuffer } from './sessionExitLifecycle-CzkLIgNZ.mjs';
29
- import { n as notifyDaemonSessionStarted, k as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-D7NGfmtq.mjs';
30
- import { c as createSessionForStartup, b as HibernationExitLatch, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-BKFU4v_h.mjs';
30
+ import { n as notifyDaemonSessionStarted, k as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-ClI7A0qE.mjs';
31
+ import { c as createSessionForStartup, b as HibernationExitLatch, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-BtR4iYEC.mjs';
31
32
  import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
32
- import { s as setupOfflineReconnection } from './setupOfflineReconnection-CyPNgyCe.mjs';
33
+ import { s as setupOfflineReconnection } from './setupOfflineReconnection-DI-QZGYz.mjs';
33
34
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
34
35
  import { a as parseSpecialCommand, c as compactCommandText, b as parseCompact } from './specialCommands-MXUN0wfI.mjs';
35
36
  import { C as CHANGE_TITLE_INSTRUCTION } from './constants-BC4St0xd.mjs';
36
- import { a as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-BnxJPVHT.mjs';
37
37
  import { E as EditReportThrottle, a as extractCodexPatchPaths } from './editPaths-BVfS_FFL.mjs';
38
- import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-BOdbryDM.mjs';
38
+ import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-B_9WAlbU.mjs';
39
39
  import 'tweetnacl';
40
40
  import 'axios';
41
- import './time-CN3TuSVG.mjs';
42
- import './browser-BGxDRhHy.mjs';
41
+ import './time-D0jvDRhn.mjs';
42
+ import './browser-CHpVgyni.mjs';
43
43
  import 'open';
44
44
  import 'zod';
45
45
  import './prompt-QHuFx9j6.mjs';
46
- import './reportProgressTool-CgPy6n_7.mjs';
47
- import './client-DZkBUoh9.mjs';
46
+ import './reportProgressTool-XgQBzxoD.mjs';
47
+ import './client-BXD66ZF5.mjs';
48
48
  import './precheckCompat-DeEbilbr.mjs';
49
49
  import './agentGuidance-BDYt2Qy2.mjs';
50
50
  import 'node:fs';
51
51
  import 'node:os';
52
52
  import './pi-CqyoZMjI.mjs';
53
53
  import './fileStore-5qpetZS0.mjs';
54
- import './client-CtL0Vtww.mjs';
54
+ import './client-Bh1aUPh-.mjs';
55
55
  import 'node:util';
56
- import './context-C9JbJoNe.mjs';
57
- import './sessionOps-CA2kpm66.mjs';
56
+ import './context-CfgTFpCB.mjs';
57
+ import './sessionOps-DPw5k8vV.mjs';
58
58
  import 'socket.io-client';
59
59
  import './backgroundTaskActivity-8PdPxrvy.mjs';
60
60
  import './resources-CLP_MpK4.mjs';
61
- import './tools-zXJpxiG_.mjs';
62
- import './peerTools-dY1aJez4.mjs';
61
+ import './tools-Bei5i03L.mjs';
62
+ import './peerTools-CwCe6tmJ.mjs';
63
63
  import './ids-DU6sLx4C.mjs';
64
- import './remoteSessionClient-BiC2KDew.mjs';
64
+ import './remoteSessionClient-BdnJ_n8C.mjs';
65
65
  import '@modelcontextprotocol/sdk/server/mcp.js';
66
66
  import 'node:http';
67
67
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
68
68
  import './limits-DIo7rEBR.mjs';
69
- import './downloadTarget-CGojGjaN.mjs';
69
+ import './downloadTarget-BXqXhNF7.mjs';
70
70
  import './terminals-Dlg0x3nY.mjs';
71
71
  import './terminalTitleSuggest-CeKsX_V6.mjs';
72
72
  import './tmuxSocket-B8Yx20sT.mjs';
73
- import './bootstrap-Ct9Nb4sv.mjs';
74
- import './package-C6uiXULx.mjs';
73
+ import './bootstrap-rLaL3kTa.mjs';
74
+ import './package-BsUHyqWe.mjs';
75
75
  import './webPanels-B2_C2-3g.mjs';
76
- import './pushNotifications-dUceOIni.mjs';
76
+ import './pushNotifications-XAM8__Pg.mjs';
77
77
  import './contentLogMetadata-BlWI0egu.mjs';
78
78
  import './previewPath-CXN4Vag0.mjs';
79
79
  import 'crypto';
80
- import './lidState-D0DF20oG.mjs';
80
+ import './lidState-CD81ryTy.mjs';
81
81
  import 'os';
82
82
  import 'child_process';
83
83
  import 'node:events';
84
- import './registerCommonHandlers-DWZ7mfdt.mjs';
84
+ import './registerCommonHandlers-DRRfinzK.mjs';
85
85
  import 'util';
86
86
  import 'fs/promises';
87
87
  import 'path';
88
88
  import 'cross-spawn';
89
- import './sync-eZkXnsW_.mjs';
89
+ import './sync-C0PRuTMj.mjs';
90
90
  import 'chalk';
91
91
  import './cliUpdate-Y34VGe9Y.mjs';
92
92
  import './processTreeSnapshot-CuLJDNC-.mjs';
93
93
  import 'node:readline';
94
94
  import './manager-BEsI4qt3.mjs';
95
95
  import '@anthropic-ai/sandbox-runtime';
96
- import './rateLimitWindows-CEn0DXaX.mjs';
96
+ import './rateLimitWindows-j_qQk0KY.mjs';
97
97
  import './processTree-CP5IvQ2Z.mjs';
98
98
  import './detectCLI-CSGMlV51.mjs';
99
99
  import 'fs';
100
- import './localHappyAgentAuth-BBhM4Qk1.mjs';
100
+ import './localHappyAgentAuth-Cg-m1lwm.mjs';
101
101
  import './fsMkdir-DumgLTzR.mjs';
102
102
  import './types-CkqAACXx.mjs';
103
103
  import 'url';
104
- import './spawnHappyCLI-DjbkiSH1.mjs';
104
+ import './spawnHappyCLI-CIA9Sc_5.mjs';
105
105
  import './doctorReadiness-C208SMN9.mjs';
106
106
 
107
107
  function getStartedSubagents(state) {
@@ -1095,6 +1095,13 @@ function unsupportedEffortReason(catalog, model, effort) {
1095
1095
  if (selected.supportedReasoningEfforts.some((option) => option.reasoningEffort === effort)) return null;
1096
1096
  return `Reasoning effort "${effort}" is not supported by ${model ?? "the default model"}. Choose a supported level.`;
1097
1097
  }
1098
+ function settleTurnEffort(catalog, model, effort, opts) {
1099
+ const refusal = unsupportedEffortReason(catalog, model, effort);
1100
+ if (!refusal) return { refusal: null, effort, changed: false };
1101
+ const catalogDefault = catalog.find((entry) => model ? entry.model === model : entry.isDefault)?.defaultReasoningEffort ?? void 0;
1102
+ const settled = !unsupportedEffortReason(catalog, model, opts.fallback) ? opts.fallback : catalogDefault && !unsupportedEffortReason(catalog, model, catalogDefault) ? catalogDefault : void 0;
1103
+ return { refusal: opts.explicit ? refusal : null, effort: settled, changed: true };
1104
+ }
1098
1105
 
1099
1106
  function resolveCodexTurnModel(mode, machineDefault) {
1100
1107
  if (mode.model) return mode.model;
@@ -1498,11 +1505,13 @@ async function runCodex(opts) {
1498
1505
  dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
1499
1506
  ...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
1500
1507
  ...forkedFromMessageId ? { forkedFromMessageId } : {},
1501
- capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, AUTO_RESTART_CAPABILITY, CODEX_STEER_CAPABILITY, PROJECT_SESSION_CAPABILITY, CODEX_COMPACT_CAPABILITY]
1508
+ capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, AUTO_RESTART_CAPABILITY, CODEX_STEER_CAPABILITY, PROJECT_SESSION_CAPABILITY, CODEX_COMPACT_CAPABILITY, RUN_INTENT_CAPABILITY]
1502
1509
  });
1503
1510
  metadata.attachmentKinds = [...CLAUDE_ATTACHMENT_KINDS];
1504
1511
  metadata.stickyModel = null;
1505
1512
  metadata.currentThoughtLevelCode = DEFAULT_CODEX_EFFORT;
1513
+ metadata.modelIntent = null;
1514
+ metadata.effortIntent = null;
1506
1515
  const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
1507
1516
  if (importCodexThreadId) {
1508
1517
  metadata.importedFromCodexThreadId = importCodexThreadId;
@@ -1556,6 +1565,7 @@ async function runCodex(opts) {
1556
1565
  logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
1557
1566
  }
1558
1567
  }
1568
+ const resumedEffort = reconnectSeeded && response ? restoredEffort(response.metadata, { useReportedLevel: true }) : void 0;
1559
1569
  let session;
1560
1570
  let permissionHandler;
1561
1571
  let client;
@@ -1618,7 +1628,10 @@ async function runCodex(opts) {
1618
1628
  const heldInput = new HeldInput((keys, reason) => session.sendQueueCancelReason(keys, reason));
1619
1629
  let currentPermissionMode = initialPermissionMode;
1620
1630
  let currentModel = DEFAULT_CODEX_MODEL;
1621
- let currentEffort = DEFAULT_CODEX_EFFORT;
1631
+ let currentEffort = resumedEffort !== void 0 ? resumedEffort ?? void 0 : DEFAULT_CODEX_EFFORT;
1632
+ let pendingModelReset = false;
1633
+ let lastStartedEffort = currentEffort;
1634
+ const effortJudgeModel = (model, modelReset) => resolveCodexTurnModel({ model, modelReset }, machineDefaultModel) ?? client?.threadModel ?? machineDefaultModel;
1622
1635
  let currentAppendSystemPrompt = void 0;
1623
1636
  let reportedStickyModel = null;
1624
1637
  let reportedCurrentModel;
@@ -1641,8 +1654,6 @@ async function runCodex(opts) {
1641
1654
  });
1642
1655
  };
1643
1656
  const resetCurrentModeDefaults = () => {
1644
- currentEffort = DEFAULT_CODEX_EFFORT;
1645
- reportModeFacts();
1646
1657
  currentAppendSystemPrompt = void 0;
1647
1658
  logger.debug("[Codex] Reset current mode defaults after abort");
1648
1659
  };
@@ -1701,9 +1712,13 @@ async function runCodex(opts) {
1701
1712
  reportModeFacts();
1702
1713
  logger.debug("[Codex] Model override updated", logValueMetadata(message.meta.model));
1703
1714
  } else {
1715
+ messageModelReset = pendingModelReset && !messageModel;
1704
1716
  logger.debug("[Codex] User message received without a model override");
1705
1717
  }
1718
+ pendingModelReset = false;
1706
1719
  let messageEffort = currentEffort;
1720
+ let effortExplicit = false;
1721
+ let effortRefused = false;
1707
1722
  if (message.meta?.hasOwnProperty("effort")) {
1708
1723
  const incoming = message.meta.effort;
1709
1724
  if (incoming === null || incoming === void 0) {
@@ -1713,15 +1728,22 @@ async function runCodex(opts) {
1713
1728
  logger.debug(`[Codex] Effort reset to default`);
1714
1729
  } else if (typeof incoming === "string") {
1715
1730
  messageEffort = incoming;
1716
- currentEffort = messageEffort;
1717
- reportModeFacts();
1718
- logger.debug("[Codex] Valid effort override applied");
1731
+ effortExplicit = true;
1732
+ effortRefused = unsupportedEffortReason(discoveredModels, effortJudgeModel(messageModel, messageModelReset), messageEffort) !== null;
1733
+ if (effortRefused) {
1734
+ logger.debug("[Codex] Effort override refused by the model catalog; sticky level kept", logValueMetadata(incoming));
1735
+ } else {
1736
+ currentEffort = messageEffort;
1737
+ reportModeFacts();
1738
+ logger.debug("[Codex] Valid effort override applied");
1739
+ }
1719
1740
  } else {
1720
1741
  logger.debug("[Codex] Ignoring invalid effort override", logValueMetadata(incoming));
1721
1742
  }
1722
1743
  } else {
1723
1744
  logger.debug("[Codex] User message received without an effort override");
1724
1745
  }
1746
+ recordRunIntents(session, effortRefused ? withoutEffort(message.meta) : message.meta);
1725
1747
  let messageAppendSystemPrompt = currentAppendSystemPrompt;
1726
1748
  if (message.meta?.hasOwnProperty("appendSystemPrompt")) {
1727
1749
  messageAppendSystemPrompt = message.meta.appendSystemPrompt || void 0;
@@ -1735,7 +1757,8 @@ async function runCodex(opts) {
1735
1757
  model: messageModel,
1736
1758
  ...messageModelReset ? { modelReset: true } : {},
1737
1759
  appendSystemPrompt: messageAppendSystemPrompt,
1738
- effort: messageEffort
1760
+ effort: messageEffort,
1761
+ ...effortExplicit ? { effortExplicit: true } : {}
1739
1762
  };
1740
1763
  if (message.meta?.delivery === "steer" && !isCodexControlText(message.content.text)) {
1741
1764
  if (await steerIntoRunningTurn(steerDeps, message.content.text, attachments, message.localKey)) {
@@ -1882,6 +1905,24 @@ async function runCodex(opts) {
1882
1905
  }
1883
1906
  });
1884
1907
  session.rpcHandlerManager.registerHandler("abort", () => handleAbort("user"));
1908
+ registerRunIntentRpc(session.rpcHandlerManager, {
1909
+ getMetadata: () => session.getMetadata(),
1910
+ updateMetadata: (handler) => session.updateMetadata(handler)
1911
+ }, (request) => {
1912
+ if (Object.prototype.hasOwnProperty.call(request, "model")) {
1913
+ currentModel = request.model || void 0;
1914
+ pendingModelReset = !currentModel;
1915
+ }
1916
+ let effortRefused = false;
1917
+ if (Object.prototype.hasOwnProperty.call(request, "effort")) {
1918
+ const effort = request.effort || void 0;
1919
+ effortRefused = unsupportedEffortReason(discoveredModels, effortJudgeModel(currentModel, pendingModelReset), effort) !== null;
1920
+ if (!effortRefused) currentEffort = effort;
1921
+ }
1922
+ if (client) reportModeFacts();
1923
+ logger.debug("[Codex] Run intent set", logValueMetadata(request.model ?? null));
1924
+ return { effortRefused };
1925
+ });
1885
1926
  const disposeTermination = registerKillSessionHandler(session.rpcHandlerManager, () => handleKillSession("archive"), session, { processSignals: true, onSignal: () => handleKillSession("offline") });
1886
1927
  const messageBuffer = new MessageBuffer();
1887
1928
  const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
@@ -2295,9 +2336,23 @@ async function runCodex(opts) {
2295
2336
  sandboxManagedByHappy
2296
2337
  );
2297
2338
  const turnModel = resolveCodexTurnModel(message.mode, machineDefaultModel);
2298
- const effortRefusal = unsupportedEffortReason(discoveredModels, turnModel ?? client.threadModel ?? machineDefaultModel, message.mode.effort);
2299
- if (effortRefusal) {
2300
- throw new Error(effortRefusal);
2339
+ const turnEffort = settleTurnEffort(discoveredModels, turnModel ?? client.threadModel ?? machineDefaultModel, message.mode.effort, {
2340
+ explicit: message.mode.effortExplicit === true,
2341
+ fallback: lastStartedEffort
2342
+ });
2343
+ if (turnEffort.changed) {
2344
+ const refused = message.mode.effort;
2345
+ if (currentEffort === refused) {
2346
+ currentEffort = turnEffort.effort;
2347
+ reportModeFacts();
2348
+ }
2349
+ if (readEffortIntent(session.getMetadata()?.effortIntent) === refused) {
2350
+ recordRunIntents(session, { effort: turnEffort.effort ?? null, effortIntent: turnEffort.effort ?? EFFORT_INTENT_AUTO });
2351
+ }
2352
+ logger.debug("[Codex] Refused effort settled", logValueMetadata(turnEffort.effort ?? null));
2353
+ }
2354
+ if (turnEffort.refusal) {
2355
+ throw new Error(turnEffort.refusal);
2301
2356
  }
2302
2357
  if (!client.hasActiveThread()) {
2303
2358
  const startedThread = await client.startThread({
@@ -2335,8 +2390,11 @@ async function runCodex(opts) {
2335
2390
  model: turnModel,
2336
2391
  approvalPolicy: executionPolicy.approvalPolicy,
2337
2392
  sandbox: executionPolicy.sandbox,
2338
- effort: message.mode.effort,
2339
- onTurnStarted: () => heldInput.delivered()
2393
+ effort: turnEffort.effort,
2394
+ onTurnStarted: () => {
2395
+ lastStartedEffort = turnEffort.effort;
2396
+ heldInput.delivered();
2397
+ }
2340
2398
  });
2341
2399
  reportModeFacts();
2342
2400
  first = false;
@@ -1,109 +1,109 @@
1
1
  'use strict';
2
2
 
3
- var auth = require('./auth-Bb_SL2os.cjs');
4
- var index = require('./index-BOe6dKnL.cjs');
5
- var deterministicJson = require('./deterministicJson-BEygolBQ.cjs');
6
- var client = require('./client-CMKGrnmT.cjs');
3
+ var auth = require('./auth-DnxoVkkf.cjs');
4
+ var index = require('./index-CLUHaPU8.cjs');
5
+ var defaultPermissionMode = require('./defaultPermissionMode-oqTupStc.cjs');
6
+ var deterministicJson = require('./deterministicJson-CpFFgUL_.cjs');
7
+ var client = require('./client-C5-C0t2a.cjs');
7
8
  var promises = require('node:fs/promises');
8
9
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
9
10
  var node_crypto = require('node:crypto');
10
11
  var cuid2 = require('@paralleldrive/cuid2');
11
- var api = require('./api-CXL6jp-p.cjs');
12
+ var api = require('./api-BBxZ7y2z.cjs');
12
13
  var heldInput = require('./heldInput-BOtqFO2r.cjs');
13
- var attachmentContent = require('./attachmentContent-NmVfKp-B.cjs');
14
+ var attachmentContent = require('./attachmentContent-BO2njyza.cjs');
14
15
  var ink = require('ink');
15
- var sessionLock = require('./sessionLock-BFBReiKq.cjs');
16
+ var sessionLock = require('./sessionLock-BmLA2S8K.cjs');
16
17
  var React = require('react');
17
- var codexAppServerClient = require('./codexAppServerClient-CpT9F6EM.cjs');
18
- var rateLimitReporter = require('./rateLimitReporter-DUu2KydZ.cjs');
19
- var logger = require('./logger-BBRTTVsQ.cjs');
20
- var BasePermissionHandler = require('./BasePermissionHandler-CpSugp7Z.cjs');
21
- var codexTermination = require('./codexTermination-ByW7tRjr.cjs');
18
+ var codexAppServerClient = require('./codexAppServerClient-DKXeikEe.cjs');
19
+ var rateLimitReporter = require('./rateLimitReporter-CaTzBe3x.cjs');
20
+ var logger = require('./logger-Ct2zvaq0.cjs');
21
+ var BasePermissionHandler = require('./BasePermissionHandler-C9Ag7yvs.cjs');
22
+ var codexTermination = require('./codexTermination-BszWfyk5.cjs');
22
23
  var node_child_process = require('node:child_process');
23
- var persistence = require('./persistence-Bl5S3TLB.cjs');
24
- var machineMetadata = require('./machineMetadata-DnFNlrVK.cjs');
25
- var configuration = require('./configuration-Dt5lKW3P.cjs');
26
- var registerKillSessionHandler = require('./registerKillSessionHandler-CA1FFr_F.cjs');
24
+ var persistence = require('./persistence-A2NeERZJ.cjs');
25
+ var machineMetadata = require('./machineMetadata-DDCVWb_x.cjs');
26
+ var configuration = require('./configuration-DfPBa-9d.cjs');
27
+ var registerKillSessionHandler = require('./registerKillSessionHandler-hvCsEn7b.cjs');
27
28
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
28
29
  var path = require('node:path');
29
- var createSessionMetadata = require('./createSessionMetadata-B_HZCDj_.cjs');
30
+ var createSessionMetadata = require('./createSessionMetadata-Cf78KHtt.cjs');
30
31
  var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
31
- var controlClient = require('./controlClient-BRk65BRO.cjs');
32
- var startupSessionCreate = require('./startupSessionCreate-Dxy3X4DG.cjs');
32
+ var controlClient = require('./controlClient-C13_pSKG.cjs');
33
+ var startupSessionCreate = require('./startupSessionCreate-CcF7rGGB.cjs');
33
34
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
34
- var setupOfflineReconnection = require('./setupOfflineReconnection-DPXRo_zf.cjs');
35
+ var setupOfflineReconnection = require('./setupOfflineReconnection-BKLfOd-i.cjs');
35
36
  var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
36
37
  var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
37
38
  var constants = require('./constants-VJ0N6WuG.cjs');
38
- var defaultPermissionMode = require('./defaultPermissionMode-CxmTXUQR.cjs');
39
39
  var editPaths = require('./editPaths-Bqp4OFPw.cjs');
40
- var ensureDaemonRunning = require('./ensureDaemonRunning-Bibp6vhe.cjs');
40
+ var ensureDaemonRunning = require('./ensureDaemonRunning-BUuH-pbE.cjs');
41
41
  require('tweetnacl');
42
42
  require('axios');
43
- require('./time-gPD_EmA-.cjs');
44
- require('./browser-CLJWcodR.cjs');
43
+ require('./time-Cy0a-7YX.cjs');
44
+ require('./browser-BTgZ9d4i.cjs');
45
45
  require('open');
46
46
  require('zod');
47
47
  require('./prompt-Bof2aQkI.cjs');
48
- require('./reportProgressTool-CvPGov1F.cjs');
49
- require('./client-Bffkrs5p.cjs');
48
+ require('./reportProgressTool-tzQLCLIw.cjs');
49
+ require('./client-BscskEBk.cjs');
50
50
  require('./precheckCompat-CWOi5c9L.cjs');
51
51
  require('./agentGuidance-BtBx2xxE.cjs');
52
52
  require('node:fs');
53
53
  require('node:os');
54
54
  require('./pi-DlsrPCTa.cjs');
55
55
  require('./fileStore-7qhnbs6N.cjs');
56
- require('./client-CARZ_lNS.cjs');
56
+ require('./client-C-OdTbrU.cjs');
57
57
  require('node:util');
58
- require('./context-BdZssgF0.cjs');
59
- require('./sessionOps-DeWVqpe4.cjs');
58
+ require('./context-Co7hUaW-.cjs');
59
+ require('./sessionOps-DXlTmS7J.cjs');
60
60
  require('socket.io-client');
61
61
  require('./backgroundTaskActivity-CBvUdj39.cjs');
62
62
  require('./resources-BZ_Be0qM.cjs');
63
- require('./tools-DvqbLsCF.cjs');
64
- require('./peerTools-5ZM4spcZ.cjs');
63
+ require('./tools-B1x1j6tz.cjs');
64
+ require('./peerTools-CElYh-5u.cjs');
65
65
  require('./ids-B6ZC0HGt.cjs');
66
- require('./remoteSessionClient-DGFI__5Z.cjs');
66
+ require('./remoteSessionClient-6ymeMVa4.cjs');
67
67
  require('@modelcontextprotocol/sdk/server/mcp.js');
68
68
  require('node:http');
69
69
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
70
70
  require('./limits-C-a7gr04.cjs');
71
- require('./downloadTarget-DS0zT2AU.cjs');
71
+ require('./downloadTarget-CikzJv1h.cjs');
72
72
  require('./terminals-B_bfC9c2.cjs');
73
73
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
74
74
  require('./tmuxSocket-D-Xt6Vn-.cjs');
75
- require('./bootstrap-DBJB0y-H.cjs');
76
- require('./package-DrY090nZ.cjs');
75
+ require('./bootstrap-sly4qPPY.cjs');
76
+ require('./package-9n7wd2dT.cjs');
77
77
  require('./webPanels-FCgFKvVe.cjs');
78
- require('./pushNotifications-CfspRcl-.cjs');
78
+ require('./pushNotifications-23YSd-0l.cjs');
79
79
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
80
80
  require('./previewPath-B0rBdhy1.cjs');
81
81
  require('crypto');
82
- require('./lidState-q_XFYg33.cjs');
82
+ require('./lidState-C9_DoF9i.cjs');
83
83
  require('os');
84
84
  require('child_process');
85
85
  require('node:events');
86
- require('./registerCommonHandlers-Beun-cQv.cjs');
86
+ require('./registerCommonHandlers-D1MiSfcB.cjs');
87
87
  require('util');
88
88
  require('fs/promises');
89
89
  require('path');
90
90
  require('cross-spawn');
91
- require('./sync-DtWB7RzA.cjs');
91
+ require('./sync-Ba8N6xba.cjs');
92
92
  require('chalk');
93
93
  require('./cliUpdate-DsKXPFYp.cjs');
94
94
  require('./processTreeSnapshot-mDbnuojn.cjs');
95
95
  require('node:readline');
96
96
  require('./manager-HrEj442o.cjs');
97
97
  require('@anthropic-ai/sandbox-runtime');
98
- require('./rateLimitWindows-Bx3ROBP5.cjs');
98
+ require('./rateLimitWindows-B2Kx6L0S.cjs');
99
99
  require('./processTree-CMHWlVse.cjs');
100
100
  require('./detectCLI-BuYR_Qxe.cjs');
101
101
  require('fs');
102
- require('./localHappyAgentAuth-CKNW-MXw.cjs');
102
+ require('./localHappyAgentAuth-CCjUvOfi.cjs');
103
103
  require('./fsMkdir-0K3yENml.cjs');
104
104
  require('./types-CRS-srZK.cjs');
105
105
  require('url');
106
- require('./spawnHappyCLI-CTy3p6V_.cjs');
106
+ require('./spawnHappyCLI-CF_gLi92.cjs');
107
107
  require('./doctorReadiness-Dl6yRQCy.cjs');
108
108
 
109
109
  function getStartedSubagents(state) {
@@ -1097,6 +1097,13 @@ function unsupportedEffortReason(catalog, model, effort) {
1097
1097
  if (selected.supportedReasoningEfforts.some((option) => option.reasoningEffort === effort)) return null;
1098
1098
  return `Reasoning effort "${effort}" is not supported by ${model ?? "the default model"}. Choose a supported level.`;
1099
1099
  }
1100
+ function settleTurnEffort(catalog, model, effort, opts) {
1101
+ const refusal = unsupportedEffortReason(catalog, model, effort);
1102
+ if (!refusal) return { refusal: null, effort, changed: false };
1103
+ const catalogDefault = catalog.find((entry) => model ? entry.model === model : entry.isDefault)?.defaultReasoningEffort ?? void 0;
1104
+ const settled = !unsupportedEffortReason(catalog, model, opts.fallback) ? opts.fallback : catalogDefault && !unsupportedEffortReason(catalog, model, catalogDefault) ? catalogDefault : void 0;
1105
+ return { refusal: opts.explicit ? refusal : null, effort: settled, changed: true };
1106
+ }
1100
1107
 
1101
1108
  function resolveCodexTurnModel(mode, machineDefault) {
1102
1109
  if (mode.model) return mode.model;
@@ -1500,11 +1507,13 @@ async function runCodex(opts) {
1500
1507
  dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
1501
1508
  ...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
1502
1509
  ...forkedFromMessageId ? { forkedFromMessageId } : {},
1503
- 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]
1510
+ 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]
1504
1511
  });
1505
1512
  metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
1506
1513
  metadata.stickyModel = null;
1507
1514
  metadata.currentThoughtLevelCode = DEFAULT_CODEX_EFFORT;
1515
+ metadata.modelIntent = null;
1516
+ metadata.effortIntent = null;
1508
1517
  const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
1509
1518
  if (importCodexThreadId) {
1510
1519
  metadata.importedFromCodexThreadId = importCodexThreadId;
@@ -1558,6 +1567,7 @@ async function runCodex(opts) {
1558
1567
  logger.logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
1559
1568
  }
1560
1569
  }
1570
+ const resumedEffort = reconnectSeeded && response ? index.restoredEffort(response.metadata, { useReportedLevel: true }) : void 0;
1561
1571
  let session;
1562
1572
  let permissionHandler;
1563
1573
  let client$1;
@@ -1620,7 +1630,10 @@ async function runCodex(opts) {
1620
1630
  const heldInput$1 = new heldInput.HeldInput((keys, reason) => session.sendQueueCancelReason(keys, reason));
1621
1631
  let currentPermissionMode = initialPermissionMode;
1622
1632
  let currentModel = DEFAULT_CODEX_MODEL;
1623
- let currentEffort = DEFAULT_CODEX_EFFORT;
1633
+ let currentEffort = resumedEffort !== void 0 ? resumedEffort ?? void 0 : DEFAULT_CODEX_EFFORT;
1634
+ let pendingModelReset = false;
1635
+ let lastStartedEffort = currentEffort;
1636
+ const effortJudgeModel = (model, modelReset) => resolveCodexTurnModel({ model, modelReset }, machineDefaultModel) ?? client$1?.threadModel ?? machineDefaultModel;
1624
1637
  let currentAppendSystemPrompt = void 0;
1625
1638
  let reportedStickyModel = null;
1626
1639
  let reportedCurrentModel;
@@ -1643,8 +1656,6 @@ async function runCodex(opts) {
1643
1656
  });
1644
1657
  };
1645
1658
  const resetCurrentModeDefaults = () => {
1646
- currentEffort = DEFAULT_CODEX_EFFORT;
1647
- reportModeFacts();
1648
1659
  currentAppendSystemPrompt = void 0;
1649
1660
  logger.logger.debug("[Codex] Reset current mode defaults after abort");
1650
1661
  };
@@ -1703,9 +1714,13 @@ async function runCodex(opts) {
1703
1714
  reportModeFacts();
1704
1715
  logger.logger.debug("[Codex] Model override updated", logValueMetadata(message.meta.model));
1705
1716
  } else {
1717
+ messageModelReset = pendingModelReset && !messageModel;
1706
1718
  logger.logger.debug("[Codex] User message received without a model override");
1707
1719
  }
1720
+ pendingModelReset = false;
1708
1721
  let messageEffort = currentEffort;
1722
+ let effortExplicit = false;
1723
+ let effortRefused = false;
1709
1724
  if (message.meta?.hasOwnProperty("effort")) {
1710
1725
  const incoming = message.meta.effort;
1711
1726
  if (incoming === null || incoming === void 0) {
@@ -1715,15 +1730,22 @@ async function runCodex(opts) {
1715
1730
  logger.logger.debug(`[Codex] Effort reset to default`);
1716
1731
  } else if (typeof incoming === "string") {
1717
1732
  messageEffort = incoming;
1718
- currentEffort = messageEffort;
1719
- reportModeFacts();
1720
- logger.logger.debug("[Codex] Valid effort override applied");
1733
+ effortExplicit = true;
1734
+ effortRefused = unsupportedEffortReason(discoveredModels, effortJudgeModel(messageModel, messageModelReset), messageEffort) !== null;
1735
+ if (effortRefused) {
1736
+ logger.logger.debug("[Codex] Effort override refused by the model catalog; sticky level kept", logValueMetadata(incoming));
1737
+ } else {
1738
+ currentEffort = messageEffort;
1739
+ reportModeFacts();
1740
+ logger.logger.debug("[Codex] Valid effort override applied");
1741
+ }
1721
1742
  } else {
1722
1743
  logger.logger.debug("[Codex] Ignoring invalid effort override", logValueMetadata(incoming));
1723
1744
  }
1724
1745
  } else {
1725
1746
  logger.logger.debug("[Codex] User message received without an effort override");
1726
1747
  }
1748
+ defaultPermissionMode.recordRunIntents(session, effortRefused ? defaultPermissionMode.withoutEffort(message.meta) : message.meta);
1727
1749
  let messageAppendSystemPrompt = currentAppendSystemPrompt;
1728
1750
  if (message.meta?.hasOwnProperty("appendSystemPrompt")) {
1729
1751
  messageAppendSystemPrompt = message.meta.appendSystemPrompt || void 0;
@@ -1737,7 +1759,8 @@ async function runCodex(opts) {
1737
1759
  model: messageModel,
1738
1760
  ...messageModelReset ? { modelReset: true } : {},
1739
1761
  appendSystemPrompt: messageAppendSystemPrompt,
1740
- effort: messageEffort
1762
+ effort: messageEffort,
1763
+ ...effortExplicit ? { effortExplicit: true } : {}
1741
1764
  };
1742
1765
  if (message.meta?.delivery === "steer" && !isCodexControlText(message.content.text)) {
1743
1766
  if (await steerIntoRunningTurn(steerDeps, message.content.text, attachments, message.localKey)) {
@@ -1884,6 +1907,24 @@ async function runCodex(opts) {
1884
1907
  }
1885
1908
  });
1886
1909
  session.rpcHandlerManager.registerHandler("abort", () => handleAbort("user"));
1910
+ defaultPermissionMode.registerRunIntentRpc(session.rpcHandlerManager, {
1911
+ getMetadata: () => session.getMetadata(),
1912
+ updateMetadata: (handler) => session.updateMetadata(handler)
1913
+ }, (request) => {
1914
+ if (Object.prototype.hasOwnProperty.call(request, "model")) {
1915
+ currentModel = request.model || void 0;
1916
+ pendingModelReset = !currentModel;
1917
+ }
1918
+ let effortRefused = false;
1919
+ if (Object.prototype.hasOwnProperty.call(request, "effort")) {
1920
+ const effort = request.effort || void 0;
1921
+ effortRefused = unsupportedEffortReason(discoveredModels, effortJudgeModel(currentModel, pendingModelReset), effort) !== null;
1922
+ if (!effortRefused) currentEffort = effort;
1923
+ }
1924
+ if (client$1) reportModeFacts();
1925
+ logger.logger.debug("[Codex] Run intent set", logValueMetadata(request.model ?? null));
1926
+ return { effortRefused };
1927
+ });
1887
1928
  const disposeTermination = registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, () => handleKillSession("archive"), session, { processSignals: true, onSignal: () => handleKillSession("offline") });
1888
1929
  const messageBuffer = new sessionExitLifecycle.MessageBuffer();
1889
1930
  const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
@@ -2297,9 +2338,23 @@ async function runCodex(opts) {
2297
2338
  sandboxManagedByHappy
2298
2339
  );
2299
2340
  const turnModel = resolveCodexTurnModel(message.mode, machineDefaultModel);
2300
- const effortRefusal = unsupportedEffortReason(discoveredModels, turnModel ?? client$1.threadModel ?? machineDefaultModel, message.mode.effort);
2301
- if (effortRefusal) {
2302
- throw new Error(effortRefusal);
2341
+ const turnEffort = settleTurnEffort(discoveredModels, turnModel ?? client$1.threadModel ?? machineDefaultModel, message.mode.effort, {
2342
+ explicit: message.mode.effortExplicit === true,
2343
+ fallback: lastStartedEffort
2344
+ });
2345
+ if (turnEffort.changed) {
2346
+ const refused = message.mode.effort;
2347
+ if (currentEffort === refused) {
2348
+ currentEffort = turnEffort.effort;
2349
+ reportModeFacts();
2350
+ }
2351
+ if (index.readEffortIntent(session.getMetadata()?.effortIntent) === refused) {
2352
+ defaultPermissionMode.recordRunIntents(session, { effort: turnEffort.effort ?? null, effortIntent: turnEffort.effort ?? index.EFFORT_INTENT_AUTO });
2353
+ }
2354
+ logger.logger.debug("[Codex] Refused effort settled", logValueMetadata(turnEffort.effort ?? null));
2355
+ }
2356
+ if (turnEffort.refusal) {
2357
+ throw new Error(turnEffort.refusal);
2303
2358
  }
2304
2359
  if (!client$1.hasActiveThread()) {
2305
2360
  const startedThread = await client$1.startThread({
@@ -2337,8 +2392,11 @@ async function runCodex(opts) {
2337
2392
  model: turnModel,
2338
2393
  approvalPolicy: executionPolicy.approvalPolicy,
2339
2394
  sandbox: executionPolicy.sandbox,
2340
- effort: message.mode.effort,
2341
- onTurnStarted: () => heldInput$1.delivered()
2395
+ effort: turnEffort.effort,
2396
+ onTurnStarted: () => {
2397
+ lastStartedEffort = turnEffort.effort;
2398
+ heldInput$1.delivered();
2399
+ }
2342
2400
  });
2343
2401
  reportModeFacts();
2344
2402
  first = false;