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,25 +1,25 @@
1
1
  import os from 'node:os';
2
- import { A as AUTO_RESTART_CAPABILITY, c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, t as takeAutoRestartedEvent, e as exitCursorStamp } from './sessionLock-Ca_bIo50.mjs';
3
- import { r as readSettings, H as HIBERNATION_CAPABILITY, a as resolveCheckMs, l as latchKeepAwake, e as evaluateWrapperIdle } from './persistence-Dogj7JIp.mjs';
4
- import { c as createSessionForStartup, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-BKFU4v_h.mjs';
2
+ import { A as AUTO_RESTART_CAPABILITY, c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, t as takeAutoRestartedEvent, e as exitCursorStamp } from './sessionLock-G2PMqvsh.mjs';
3
+ import { r as readSettings, H as HIBERNATION_CAPABILITY, a as resolveCheckMs, l as latchKeepAwake, e as evaluateWrapperIdle } from './persistence-Cpw4yJs8.mjs';
4
+ import { c as createSessionForStartup, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-BtR4iYEC.mjs';
5
5
  import { randomUUID } from 'node:crypto';
6
- import { c as connectionState, A as ApiClient, s as startOfflineReconnection } from './api-Dw8gFsQi.mjs';
7
- import { l as logger } from './logger-CL7pin9b.mjs';
8
- import { s as spawnOriginTags, a as sessionWorktreeMetadata } from './createSessionMetadata-DyhFKAby.mjs';
9
- import { p as packageJson } from './package-C6uiXULx.mjs';
10
- import { P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY } from './index-DmqsRnV7.mjs';
6
+ import { c as connectionState, A as ApiClient, s as startOfflineReconnection } from './api-jfeMRg5R.mjs';
7
+ import { l as logger } from './logger-GcbI0eg2.mjs';
8
+ import { s as spawnOriginTags, a as sessionWorktreeMetadata } from './createSessionMetadata-B0eT_Kfj.mjs';
9
+ import { p as packageJson } from './package-BsUHyqWe.mjs';
10
+ import { P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, R as RUN_INTENT_CAPABILITY, C as CLAUDE_CONFIG_MODEL_CAPABILITY, r as restoredEffort, b as restoredModel } from './index-Bq8NKSCF.mjs';
11
+ import { D as DEFAULT_CLAUDE_PERMISSION_MODE, r as registerRunIntentRpc, a as recordRunIntents, w as withoutEffort } from './defaultPermissionMode-m6z2QVyP.mjs';
11
12
  import { F as FORK_BACKFILL_CAPABILITY, p as publishForkBackfillWhenCommitted } from './forkBackfill-DYIjlN1Z.mjs';
12
- import { c as configuration } from './configuration-Dechcvd-.mjs';
13
+ import { c as configuration } from './configuration-ECqXu34R.mjs';
13
14
  import { l as loadSessionProvider, a as applyProviderEnv } from './providerBinding-CYubGg-Z.mjs';
14
- import { n as notifyDaemonSessionStarted, c as checkDaemonHibernation } from './controlClient-D7NGfmtq.mjs';
15
- import { g as getInitialMachineMetadata } from './machineMetadata-DP06qdBk.mjs';
15
+ import { n as notifyDaemonSessionStarted, c as checkDaemonHibernation } from './controlClient-ClI7A0qE.mjs';
16
+ import { g as getInitialMachineMetadata } from './machineMetadata-CXRmFNOV.mjs';
16
17
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
17
18
  import { resolve, join } from 'node:path';
18
19
  import { a as applySandboxPermissionPolicy, r as resolveInitialClaudePermissionMode, m as mapToClaudeMode, b as reconcilePublishedPermissionMode } from './permissionMode-CH4FoZfU.mjs';
19
20
  import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
20
21
  import { readFile } from 'node:fs/promises';
21
- import { D as DEFAULT_CLAUDE_PERMISSION_MODE } from './defaultPermissionMode-BnxJPVHT.mjs';
22
- import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-CC4yIrSm.mjs';
22
+ import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-Dm_RIs5L.mjs';
23
23
  import { T as TranscriptPathHints } from './transcriptCursor-B7T_gkQ0.mjs';
24
24
  import { p as planClaudeStartup } from './startupPlan-DFMyNgAs.mjs';
25
25
  import './cliUpdate-Y34VGe9Y.mjs';
@@ -28,36 +28,40 @@ import './processTreeSnapshot-CuLJDNC-.mjs';
28
28
  import 'node:child_process';
29
29
  import 'zod';
30
30
  import 'axios';
31
- import './lidState-D0DF20oG.mjs';
31
+ import './lidState-CD81ryTy.mjs';
32
32
  import 'os';
33
33
  import 'child_process';
34
34
  import 'node:events';
35
35
  import 'socket.io-client';
36
- import './pushNotifications-dUceOIni.mjs';
36
+ import './pushNotifications-XAM8__Pg.mjs';
37
37
  import './contentLogMetadata-BlWI0egu.mjs';
38
38
  import './limits-DIo7rEBR.mjs';
39
- import './time-CN3TuSVG.mjs';
40
- import './registerCommonHandlers-DWZ7mfdt.mjs';
39
+ import './time-D0jvDRhn.mjs';
40
+ import './registerCommonHandlers-DRRfinzK.mjs';
41
41
  import 'util';
42
42
  import 'fs/promises';
43
43
  import 'crypto';
44
44
  import 'path';
45
45
  import 'cross-spawn';
46
46
  import '@paralleldrive/cuid2';
47
- import './sync-eZkXnsW_.mjs';
47
+ import './sync-C0PRuTMj.mjs';
48
48
  import './backgroundTaskActivity-8PdPxrvy.mjs';
49
49
  import 'chalk';
50
50
  import 'node:util';
51
51
  import './detectCLI-CSGMlV51.mjs';
52
52
  import 'fs';
53
- import './localHappyAgentAuth-BBhM4Qk1.mjs';
53
+ import './localHappyAgentAuth-Cg-m1lwm.mjs';
54
54
  import 'tweetnacl';
55
55
  import './fsMkdir-DumgLTzR.mjs';
56
56
  import 'url';
57
57
 
58
58
  const DEFAULT_CLAUDE_MODEL = void 0;
59
59
  const DEFAULT_CLAUDE_EFFORT = void 0;
60
- const importRunClaudeDeps = () => import('./runClaudeDeps-D2phXGut.mjs');
60
+ const CLAUDE_EFFORTS = ["low", "medium", "high", "xhigh", "max"];
61
+ function restoredClaudeEffort(effort) {
62
+ return CLAUDE_EFFORTS.includes(effort ?? "") ? effort : void 0;
63
+ }
64
+ const importRunClaudeDeps = () => import('./runClaudeDeps-DlVfMG4F.mjs');
61
65
  async function runClaude(credentials, options = {}) {
62
66
  logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
63
67
  logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
@@ -71,7 +75,7 @@ async function runClaude(credentials, options = {}) {
71
75
  const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
72
76
  if (isAssistantVariant) {
73
77
  try {
74
- const { bootstrapAssistantHome } = await import('./bootstrap-Ct9Nb4sv.mjs');
78
+ const { bootstrapAssistantHome } = await import('./bootstrap-rLaL3kTa.mjs');
75
79
  await bootstrapAssistantHome();
76
80
  } catch (error) {
77
81
  logger.debug("[START] Assistant home bootstrap failed:", error);
@@ -146,7 +150,12 @@ async function runClaude(credentials, options = {}) {
146
150
  // a brand-new session cannot pick a PDF until after sending once.
147
151
  attachmentKinds: [...CLAUDE_ATTACHMENT_KINDS],
148
152
  queueCancellation: true,
149
- capabilities: ["claude-steer-v1", "claude-live-permission-v1", "claude-live-permission-v2", "claude-btw-v1", "claude-runtime-controls-v1", "claude-opus-5-5-v1", PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, AUTO_RESTART_CAPABILITY, PROJECT_SESSION_CAPABILITY],
153
+ capabilities: ["claude-steer-v1", "claude-live-permission-v1", "claude-live-permission-v2", "claude-btw-v1", "claude-runtime-controls-v1", "claude-opus-5-5-v1", PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, AUTO_RESTART_CAPABILITY, PROJECT_SESSION_CAPABILITY, RUN_INTENT_CAPABILITY, CLAUDE_CONFIG_MODEL_CAPABILITY],
154
+ // B-849b: this session's model / thinking choice (wrapper is the sole
155
+ // writer; a reconnect keeps the server copy). A spawn-time model is a choice.
156
+ modelIntent: options.model ?? null,
157
+ effortIntent: null,
158
+ stickyModel: options.model ?? null,
150
159
  // Effective mode this process enforces. Kept current by
151
160
  // publishPermissionMode below; the web renders it instead of guessing.
152
161
  permissionMode: mapToClaudeMode(initialPermissionMode ?? "default"),
@@ -191,7 +200,7 @@ async function runClaude(credentials, options = {}) {
191
200
  }
192
201
  if (!response) {
193
202
  let offlineSessionId = null;
194
- const { claudeLocal } = await import('./claudeLocal-Ux31hZyC.mjs');
203
+ const { claudeLocal } = await import('./claudeLocal-Bgb5GGsq.mjs');
195
204
  const { createSessionScanner: createSessionScanner2 } = await loadDeps();
196
205
  const reconnection = startOfflineReconnection({
197
206
  serverUrl: configuration.serverUrl,
@@ -256,6 +265,7 @@ async function runClaude(credentials, options = {}) {
256
265
  logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
257
266
  }
258
267
  }
268
+ const restoredRun = reconnectSeeded ? { model: restoredModel(response.metadata), effort: restoredEffort(response.metadata) } : null;
259
269
  const earlySession = startupPlan.sessionClientBeforeWebhook ? api.sessionSyncClient(response) : null;
260
270
  try {
261
271
  logger.debug(`[START] Reporting session ${response.id} to daemon`);
@@ -544,13 +554,14 @@ async function runClaude(credentials, options = {}) {
544
554
  }
545
555
  };
546
556
  let lastExplicitModeSwitchAt = 0;
547
- let currentModel = options.model ?? DEFAULT_CLAUDE_MODEL;
557
+ let currentModel = restoredRun?.model !== void 0 ? restoredRun.model ?? void 0 : options.model ?? DEFAULT_CLAUDE_MODEL;
548
558
  let currentFallbackModel = void 0;
549
559
  let currentCustomSystemPrompt = void 0;
550
560
  let currentAppendSystemPrompt = void 0;
551
561
  let currentAllowedTools = void 0;
552
562
  let currentDisallowedTools = withAssistantDenylist(void 0, isAssistantVariant);
553
- let currentEffort = DEFAULT_CLAUDE_EFFORT;
563
+ let currentEffort = restoredClaudeEffort(restoredRun?.effort) ?? DEFAULT_CLAUDE_EFFORT;
564
+ if (restoredRun) logger.debug(`[START] Restored run intent: model=${currentModel ?? "default"} effort=${currentEffort ?? "default"}`);
554
565
  registerSideQuestionHandler(session.rpcHandlerManager, {
555
566
  getClaudeSessionId: () => {
556
567
  const id = currentSession?.sessionId ?? null;
@@ -565,15 +576,20 @@ async function runClaude(credentials, options = {}) {
565
576
  getLiveQuery: () => currentSession?.getSideQuestionLive() ?? null
566
577
  });
567
578
  const resetCurrentModeDefaults = () => {
568
- currentModel = options.model ?? DEFAULT_CLAUDE_MODEL;
569
579
  currentFallbackModel = void 0;
570
580
  currentCustomSystemPrompt = void 0;
571
581
  currentAppendSystemPrompt = void 0;
572
582
  currentAllowedTools = void 0;
573
583
  currentDisallowedTools = withAssistantDenylist(void 0, isAssistantVariant);
574
- currentEffort = DEFAULT_CLAUDE_EFFORT;
575
584
  logger.debug("[loop] Reset current mode defaults after abort");
576
585
  };
586
+ registerRunIntentRpc(session.rpcHandlerManager, session, (request) => {
587
+ const resolved = resolveMessageMode(currentModeState(), request, { sandboxEnabled, isAssistantVariant, staleModeSnapshot: true, pinnedModel: providerPinnedModel });
588
+ currentModel = resolved.next.model;
589
+ currentEffort = resolved.next.effort;
590
+ logger.debug(`[loop] Run intent set: model=${currentModel ?? "default"} effort=${currentEffort ?? "default"}`);
591
+ return { facts: { stickyModel: currentModel ?? null }, effortRefused: resolved.ignoredEffort !== void 0 };
592
+ });
577
593
  const currentModeState = () => ({
578
594
  permissionMode: currentPermissionMode,
579
595
  model: currentModel,
@@ -711,6 +727,7 @@ async function runClaude(credentials, options = {}) {
711
727
  if (resolved.ignoredEffort !== void 0) {
712
728
  logger.debug(`[loop] Ignoring invalid effort from user message: ${resolved.ignoredEffort}`);
713
729
  }
730
+ recordRunIntents(session, resolved.ignoredEffort !== void 0 ? withoutEffort(message.meta) : message.meta, { stickyModel: currentModel ?? null });
714
731
  logger.debug(`[loop] Message mode: permission=${resolved.mode.permissionMode} model=${resolved.mode.model || "default"} effort=${resolved.mode.effort ?? "default"} appendSystemPrompt=${resolved.mode.appendSystemPrompt ? "set" : "none"} customSystemPrompt=${resolved.mode.customSystemPrompt ? "set" : "none"}`);
715
732
  scoreFirstMessage(message.meta, predictedFirstMode, resolved.mode);
716
733
  const resolvedMode = resolved.mode;
@@ -1,27 +1,27 @@
1
1
  'use strict';
2
2
 
3
3
  var os = require('node:os');
4
- var sessionLock = require('./sessionLock-BFBReiKq.cjs');
5
- var persistence = require('./persistence-Bl5S3TLB.cjs');
6
- var startupSessionCreate = require('./startupSessionCreate-Dxy3X4DG.cjs');
4
+ var sessionLock = require('./sessionLock-BmLA2S8K.cjs');
5
+ var persistence = require('./persistence-A2NeERZJ.cjs');
6
+ var startupSessionCreate = require('./startupSessionCreate-CcF7rGGB.cjs');
7
7
  var node_crypto = require('node:crypto');
8
- var api = require('./api-CXL6jp-p.cjs');
9
- var logger = require('./logger-BBRTTVsQ.cjs');
10
- var createSessionMetadata = require('./createSessionMetadata-B_HZCDj_.cjs');
11
- var _package = require('./package-DrY090nZ.cjs');
12
- var index = require('./index-BOe6dKnL.cjs');
8
+ var api = require('./api-BBxZ7y2z.cjs');
9
+ var logger = require('./logger-Ct2zvaq0.cjs');
10
+ var createSessionMetadata = require('./createSessionMetadata-Cf78KHtt.cjs');
11
+ var _package = require('./package-9n7wd2dT.cjs');
12
+ var index = require('./index-CLUHaPU8.cjs');
13
+ var defaultPermissionMode = require('./defaultPermissionMode-oqTupStc.cjs');
13
14
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
14
- var configuration = require('./configuration-Dt5lKW3P.cjs');
15
+ var configuration = require('./configuration-DfPBa-9d.cjs');
15
16
  var providerBinding = require('./providerBinding-B-Qbx9W2.cjs');
16
- var controlClient = require('./controlClient-BRk65BRO.cjs');
17
- var machineMetadata = require('./machineMetadata-DnFNlrVK.cjs');
17
+ var controlClient = require('./controlClient-C13_pSKG.cjs');
18
+ var machineMetadata = require('./machineMetadata-DDCVWb_x.cjs');
18
19
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
19
20
  var path = require('node:path');
20
21
  var permissionMode = require('./permissionMode-CrV-XuMs.cjs');
21
22
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
22
23
  var promises = require('node:fs/promises');
23
- var defaultPermissionMode = require('./defaultPermissionMode-CxmTXUQR.cjs');
24
- var attachmentContent = require('./attachmentContent-NmVfKp-B.cjs');
24
+ var attachmentContent = require('./attachmentContent-BO2njyza.cjs');
25
25
  var transcriptCursor = require('./transcriptCursor-DcXGLeSc.cjs');
26
26
  var startupPlan = require('./startupPlan-BLMbfQIH.cjs');
27
27
  require('./cliUpdate-DsKXPFYp.cjs');
@@ -30,36 +30,40 @@ require('./processTreeSnapshot-mDbnuojn.cjs');
30
30
  require('node:child_process');
31
31
  require('zod');
32
32
  require('axios');
33
- require('./lidState-q_XFYg33.cjs');
33
+ require('./lidState-C9_DoF9i.cjs');
34
34
  require('os');
35
35
  require('child_process');
36
36
  require('node:events');
37
37
  require('socket.io-client');
38
- require('./pushNotifications-CfspRcl-.cjs');
38
+ require('./pushNotifications-23YSd-0l.cjs');
39
39
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
40
40
  require('./limits-C-a7gr04.cjs');
41
- require('./time-gPD_EmA-.cjs');
42
- require('./registerCommonHandlers-Beun-cQv.cjs');
41
+ require('./time-Cy0a-7YX.cjs');
42
+ require('./registerCommonHandlers-D1MiSfcB.cjs');
43
43
  require('util');
44
44
  require('fs/promises');
45
45
  require('crypto');
46
46
  require('path');
47
47
  require('cross-spawn');
48
48
  require('@paralleldrive/cuid2');
49
- require('./sync-DtWB7RzA.cjs');
49
+ require('./sync-Ba8N6xba.cjs');
50
50
  require('./backgroundTaskActivity-CBvUdj39.cjs');
51
51
  require('chalk');
52
52
  require('node:util');
53
53
  require('./detectCLI-BuYR_Qxe.cjs');
54
54
  require('fs');
55
- require('./localHappyAgentAuth-CKNW-MXw.cjs');
55
+ require('./localHappyAgentAuth-CCjUvOfi.cjs');
56
56
  require('tweetnacl');
57
57
  require('./fsMkdir-0K3yENml.cjs');
58
58
  require('url');
59
59
 
60
60
  const DEFAULT_CLAUDE_MODEL = void 0;
61
61
  const DEFAULT_CLAUDE_EFFORT = void 0;
62
- const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-DGAomimZ.cjs'); });
62
+ const CLAUDE_EFFORTS = ["low", "medium", "high", "xhigh", "max"];
63
+ function restoredClaudeEffort(effort) {
64
+ return CLAUDE_EFFORTS.includes(effort ?? "") ? effort : void 0;
65
+ }
66
+ const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-CYuozSC6.cjs'); });
63
67
  async function runClaude(credentials, options = {}) {
64
68
  logger.logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
65
69
  logger.logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
@@ -73,7 +77,7 @@ async function runClaude(credentials, options = {}) {
73
77
  const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
74
78
  if (isAssistantVariant) {
75
79
  try {
76
- const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-DBJB0y-H.cjs'); });
80
+ const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-sly4qPPY.cjs'); });
77
81
  await bootstrapAssistantHome();
78
82
  } catch (error) {
79
83
  logger.logger.debug("[START] Assistant home bootstrap failed:", error);
@@ -148,7 +152,12 @@ async function runClaude(credentials, options = {}) {
148
152
  // a brand-new session cannot pick a PDF until after sending once.
149
153
  attachmentKinds: [...attachmentContent.CLAUDE_ATTACHMENT_KINDS],
150
154
  queueCancellation: true,
151
- capabilities: ["claude-steer-v1", "claude-live-permission-v1", "claude-live-permission-v2", "claude-btw-v1", "claude-runtime-controls-v1", "claude-opus-5-5-v1", index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, sessionLock.AUTO_RESTART_CAPABILITY, index.PROJECT_SESSION_CAPABILITY],
155
+ capabilities: ["claude-steer-v1", "claude-live-permission-v1", "claude-live-permission-v2", "claude-btw-v1", "claude-runtime-controls-v1", "claude-opus-5-5-v1", index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, sessionLock.AUTO_RESTART_CAPABILITY, index.PROJECT_SESSION_CAPABILITY, index.RUN_INTENT_CAPABILITY, index.CLAUDE_CONFIG_MODEL_CAPABILITY],
156
+ // B-849b: this session's model / thinking choice (wrapper is the sole
157
+ // writer; a reconnect keeps the server copy). A spawn-time model is a choice.
158
+ modelIntent: options.model ?? null,
159
+ effortIntent: null,
160
+ stickyModel: options.model ?? null,
152
161
  // Effective mode this process enforces. Kept current by
153
162
  // publishPermissionMode below; the web renders it instead of guessing.
154
163
  permissionMode: permissionMode.mapToClaudeMode(initialPermissionMode ?? "default"),
@@ -193,7 +202,7 @@ async function runClaude(credentials, options = {}) {
193
202
  }
194
203
  if (!response) {
195
204
  let offlineSessionId = null;
196
- const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-B6YDYlnY.cjs'); });
205
+ const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-1vuTFcL8.cjs'); });
197
206
  const { createSessionScanner: createSessionScanner2 } = await loadDeps();
198
207
  const reconnection = api.startOfflineReconnection({
199
208
  serverUrl: configuration.configuration.serverUrl,
@@ -258,6 +267,7 @@ async function runClaude(credentials, options = {}) {
258
267
  logger.logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
259
268
  }
260
269
  }
270
+ const restoredRun = reconnectSeeded ? { model: index.restoredModel(response.metadata), effort: index.restoredEffort(response.metadata) } : null;
261
271
  const earlySession = startupPlan$1.sessionClientBeforeWebhook ? api$1.sessionSyncClient(response) : null;
262
272
  try {
263
273
  logger.logger.debug(`[START] Reporting session ${response.id} to daemon`);
@@ -546,13 +556,14 @@ async function runClaude(credentials, options = {}) {
546
556
  }
547
557
  };
548
558
  let lastExplicitModeSwitchAt = 0;
549
- let currentModel = options.model ?? DEFAULT_CLAUDE_MODEL;
559
+ let currentModel = restoredRun?.model !== void 0 ? restoredRun.model ?? void 0 : options.model ?? DEFAULT_CLAUDE_MODEL;
550
560
  let currentFallbackModel = void 0;
551
561
  let currentCustomSystemPrompt = void 0;
552
562
  let currentAppendSystemPrompt = void 0;
553
563
  let currentAllowedTools = void 0;
554
564
  let currentDisallowedTools = withAssistantDenylist(void 0, isAssistantVariant);
555
- let currentEffort = DEFAULT_CLAUDE_EFFORT;
565
+ let currentEffort = restoredClaudeEffort(restoredRun?.effort) ?? DEFAULT_CLAUDE_EFFORT;
566
+ if (restoredRun) logger.logger.debug(`[START] Restored run intent: model=${currentModel ?? "default"} effort=${currentEffort ?? "default"}`);
556
567
  registerSideQuestionHandler(session.rpcHandlerManager, {
557
568
  getClaudeSessionId: () => {
558
569
  const id = currentSession?.sessionId ?? null;
@@ -567,15 +578,20 @@ async function runClaude(credentials, options = {}) {
567
578
  getLiveQuery: () => currentSession?.getSideQuestionLive() ?? null
568
579
  });
569
580
  const resetCurrentModeDefaults = () => {
570
- currentModel = options.model ?? DEFAULT_CLAUDE_MODEL;
571
581
  currentFallbackModel = void 0;
572
582
  currentCustomSystemPrompt = void 0;
573
583
  currentAppendSystemPrompt = void 0;
574
584
  currentAllowedTools = void 0;
575
585
  currentDisallowedTools = withAssistantDenylist(void 0, isAssistantVariant);
576
- currentEffort = DEFAULT_CLAUDE_EFFORT;
577
586
  logger.logger.debug("[loop] Reset current mode defaults after abort");
578
587
  };
588
+ defaultPermissionMode.registerRunIntentRpc(session.rpcHandlerManager, session, (request) => {
589
+ const resolved = resolveMessageMode(currentModeState(), request, { sandboxEnabled, isAssistantVariant, staleModeSnapshot: true, pinnedModel: providerPinnedModel });
590
+ currentModel = resolved.next.model;
591
+ currentEffort = resolved.next.effort;
592
+ logger.logger.debug(`[loop] Run intent set: model=${currentModel ?? "default"} effort=${currentEffort ?? "default"}`);
593
+ return { facts: { stickyModel: currentModel ?? null }, effortRefused: resolved.ignoredEffort !== void 0 };
594
+ });
579
595
  const currentModeState = () => ({
580
596
  permissionMode: currentPermissionMode,
581
597
  model: currentModel,
@@ -713,6 +729,7 @@ async function runClaude(credentials, options = {}) {
713
729
  if (resolved.ignoredEffort !== void 0) {
714
730
  logger.logger.debug(`[loop] Ignoring invalid effort from user message: ${resolved.ignoredEffort}`);
715
731
  }
732
+ defaultPermissionMode.recordRunIntents(session, resolved.ignoredEffort !== void 0 ? defaultPermissionMode.withoutEffort(message.meta) : message.meta, { stickyModel: currentModel ?? null });
716
733
  logger.logger.debug(`[loop] Message mode: permission=${resolved.mode.permissionMode} model=${resolved.mode.model || "default"} effort=${resolved.mode.effort ?? "default"} appendSystemPrompt=${resolved.mode.appendSystemPrompt ? "set" : "none"} customSystemPrompt=${resolved.mode.customSystemPrompt ? "set" : "none"}`);
717
734
  scoreFirstMessage(message.meta, predictedFirstMode, resolved.mode);
718
735
  const resolvedMode = resolved.mode;