very-happy-cli 0.2.189 → 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 (203) hide show
  1. package/dist/{AcpBackend-fj16v_cf.mjs → AcpBackend-CCy_9AfR.mjs} +3 -3
  2. package/dist/{AcpBackend-DRPJ2g9G.cjs → AcpBackend-DgrIc1vH.cjs} +3 -3
  3. package/dist/{AcpSessionManager-BZPmUDL5.mjs → AcpSessionManager-CQnxx7gD.mjs} +2 -2
  4. package/dist/{AcpSessionManager-DM-KKg6v.cjs → AcpSessionManager-DVOzCD3P.cjs} +2 -2
  5. package/dist/{BasePermissionHandler-DjM16uJz.cjs → BasePermissionHandler-C9Ag7yvs.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-CVtH-snr.mjs → BasePermissionHandler-DYLN6Ec9.mjs} +1 -1
  7. package/dist/{acpSessionResume-Dxl1LRAT.mjs → acpSessionResume-Bi7pA1n_.mjs} +1 -1
  8. package/dist/{acpSessionResume-2BTMsB7_.cjs → acpSessionResume-TvP_4Zq2.cjs} +1 -1
  9. package/dist/{agentHome-CHctmMzZ.mjs → agentHome-DGv105SR.mjs} +4 -4
  10. package/dist/{agentHome-W17n1gnH.cjs → agentHome-DNUKJWOY.cjs} +4 -4
  11. package/dist/{api-BDuuyys8.cjs → api-BBxZ7y2z.cjs} +19 -10
  12. package/dist/{api-B0yN68XH.mjs → api-jfeMRg5R.mjs} +19 -10
  13. package/dist/{apiMachine-mc9CsKuS.mjs → apiMachine-DRJ7y-BB.mjs} +56 -15
  14. package/dist/{apiMachine-iddD-F19.cjs → apiMachine-DqyjKBZG.cjs} +56 -15
  15. package/dist/{attachmentContent-Cc5b7TPr.cjs → attachmentContent-BO2njyza.cjs} +2 -2
  16. package/dist/{attachmentContent-CcIdMfAx.mjs → attachmentContent-Dm_RIs5L.mjs} +2 -2
  17. package/dist/{auth-DNAgkUkB.mjs → auth-BYDtjVNb.mjs} +8 -8
  18. package/dist/{auth-CyrVvWHF.mjs → auth-DC6rg8lJ.mjs} +5 -5
  19. package/dist/{auth-B7tVmyfX.cjs → auth-DLR3ksCF.cjs} +8 -8
  20. package/dist/{auth-DQKSpaEf.cjs → auth-DnxoVkkf.cjs} +5 -5
  21. package/dist/{auto-CetlumDo.cjs → auto-CwO0u8hB.cjs} +18 -18
  22. package/dist/{auto-BklCipw1.mjs → auto-D5Jhukq1.mjs} +18 -18
  23. package/dist/{bootstrap-DfXwkUQb.mjs → bootstrap-rLaL3kTa.mjs} +2 -2
  24. package/dist/{bootstrap-CDY-Vz8q.cjs → bootstrap-sly4qPPY.cjs} +2 -2
  25. package/dist/{browser-D1yzC0Tu.cjs → browser-BTgZ9d4i.cjs} +1 -1
  26. package/dist/{browser-vb0k1zfI.mjs → browser-CHpVgyni.mjs} +1 -1
  27. package/dist/{claudeLocal-2dJIiTIq.cjs → claudeLocal-1vuTFcL8.cjs} +5 -5
  28. package/dist/{claudeLocal-Bid_rC_v.mjs → claudeLocal-Bgb5GGsq.mjs} +5 -5
  29. package/dist/{claudeLocalLauncher-Jm5oQX5Z.cjs → claudeLocalLauncher-DOsL6HFY.cjs} +10 -10
  30. package/dist/{claudeLocalLauncher-5pzpETxd.mjs → claudeLocalLauncher-T7EfT68h.mjs} +10 -10
  31. package/dist/{claudeSessionFork-DzecSBO4.mjs → claudeSessionFork-CPvi6yDX.mjs} +1 -1
  32. package/dist/{claudeSessionFork-DsbcuDEJ.cjs → claudeSessionFork-Cko4SaVi.cjs} +1 -1
  33. package/dist/{client-CvjjadIE.mjs → client-BXD66ZF5.mjs} +2 -2
  34. package/dist/{client-C9Ecbtko.mjs → client-Bh1aUPh-.mjs} +4 -4
  35. package/dist/{client-B161HwAk.mjs → client-Bi20Ka0h.mjs} +2 -2
  36. package/dist/{client-D0aYWt53.cjs → client-BscskEBk.cjs} +2 -2
  37. package/dist/{client-BNmFaRXZ.cjs → client-C-OdTbrU.cjs} +4 -4
  38. package/dist/{client-DIfxYk7B.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-CO9f4Jr8.cjs → codexAppServerClient-DKXeikEe.cjs} +13 -6
  42. package/dist/{codexAppServerClient-BlVmpjR-.mjs → codexAppServerClient-DXhAf6i-.mjs} +13 -6
  43. package/dist/{codexCommand-CAMR4g5o.mjs → codexCommand-CIaOiiOj.mjs} +137 -55
  44. package/dist/{codexCommand-BfoRP6E9.cjs → codexCommand-DvbbpYBS.cjs} +141 -59
  45. package/dist/{codexTermination-BvGlN02_.mjs → codexTermination-BcQdEDaw.mjs} +1 -1
  46. package/dist/{codexTermination-IrLZQzKC.cjs → codexTermination-BszWfyk5.cjs} +1 -1
  47. package/dist/{codexThreadFork-DNekT4nQ.cjs → codexThreadFork-5kwoKjMu.cjs} +11 -17
  48. package/dist/{codexThreadFork-R76RU5H0.mjs → codexThreadFork-DobPd19R.mjs} +11 -17
  49. package/dist/{config-BGFqQGvh.cjs → config-Di3Cf6js.cjs} +3 -3
  50. package/dist/{config-CtMgGPvf.mjs → config-OCEcVVK1.mjs} +3 -3
  51. package/dist/{configuration-C0ctLGW2.cjs → configuration-DfPBa-9d.cjs} +1 -1
  52. package/dist/{configuration-1FabKklB.mjs → configuration-ECqXu34R.mjs} +1 -1
  53. package/dist/{connect-DSw-2f52.cjs → connect-BPQRuOw5.cjs} +13 -13
  54. package/dist/{connect-0lSugpjf.mjs → connect-BTfAUhk8.mjs} +13 -13
  55. package/dist/{context-BgxbXWKS.mjs → context-CfgTFpCB.mjs} +1 -1
  56. package/dist/{context-D-hEk5pC.cjs → context-Co7hUaW-.cjs} +1 -1
  57. package/dist/{controlClient-F7hAEEy2.cjs → controlClient-C13_pSKG.cjs} +3 -3
  58. package/dist/{controlClient-DwNnNAUx.mjs → controlClient-ClI7A0qE.mjs} +3 -3
  59. package/dist/{createSessionMetadata-CG6Klinp.mjs → createSessionMetadata-B0eT_Kfj.mjs} +2 -2
  60. package/dist/{createSessionMetadata-DezS33OM.cjs → createSessionMetadata-Cf78KHtt.cjs} +2 -2
  61. package/dist/defaultPermissionMode-m6z2QVyP.mjs +43 -0
  62. package/dist/defaultPermissionMode-oqTupStc.cjs +49 -0
  63. package/dist/{deterministicJson-BMwgK21e.mjs → deterministicJson-BtSwbsok.mjs} +13 -13
  64. package/dist/{deterministicJson-D0LU_XbO.cjs → deterministicJson-CpFFgUL_.cjs} +13 -13
  65. package/dist/{doctor-wVNvRarN.cjs → doctor-BEU0_1Xv.cjs} +7 -7
  66. package/dist/{doctor-D16hySse.mjs → doctor-lsxmAK4o.mjs} +7 -7
  67. package/dist/{downloadTarget-C6tqaXGm.mjs → downloadTarget-BXqXhNF7.mjs} +6 -6
  68. package/dist/{downloadTarget-aNcCxVRL.cjs → downloadTarget-CikzJv1h.cjs} +6 -6
  69. package/dist/{ensureDaemonRunning-CIghxgDR.cjs → ensureDaemonRunning-BUuH-pbE.cjs} +5 -5
  70. package/dist/{ensureDaemonRunning-DZq8bvsp.mjs → ensureDaemonRunning-B_9WAlbU.mjs} +5 -5
  71. package/dist/exitAfterFlush-AbKNZM0N.mjs +23 -0
  72. package/dist/exitAfterFlush-DIT_sIxR.cjs +25 -0
  73. package/dist/{handleResumeCommand-BNnD7EuD.mjs → handleResumeCommand-BK9XKH_l.mjs} +5 -5
  74. package/dist/{handleResumeCommand-CMUTygsm.cjs → handleResumeCommand-Dj7oi2KO.cjs} +5 -5
  75. package/dist/{agentAttachments-Dbw8iMCZ.cjs → heldInput-BOtqFO2r.cjs} +27 -0
  76. package/dist/heldInput-C69lA2dH.mjs +44 -0
  77. package/dist/{index-BCQr-5Ei.mjs → index-BdOJOZ6J.mjs} +4 -4
  78. package/dist/{index-CKd20r1W.mjs → index-BjZnpGWX.mjs} +3 -3
  79. package/dist/{index-WKyN-bNy.mjs → index-Bq8NKSCF.mjs} +65 -1
  80. package/dist/{index-BOe6dKnL.cjs → index-CLUHaPU8.cjs} +76 -0
  81. package/dist/{index-CnzsOD19.cjs → index-CauRYQKr.cjs} +133 -54
  82. package/dist/{index-4TpmBb2Q.cjs → index-CmZusg8Q.cjs} +3 -3
  83. package/dist/{index-BuiG8hmg.mjs → index-Cxso1rg4.mjs} +133 -54
  84. package/dist/{index-De02DNu5.cjs → index-D3c7CLot.cjs} +4 -4
  85. package/dist/{index-B81qV_F_.cjs → index-Dg2NAF_-.cjs} +4 -4
  86. package/dist/{index-Df0bc_et.mjs → index-DuK9XYbZ.mjs} +4 -4
  87. package/dist/index.cjs +2 -2
  88. package/dist/index.mjs +2 -2
  89. package/dist/{install-23ehAdTD.mjs → install-DTIveLOS.mjs} +3 -3
  90. package/dist/{install-DNbIEJUk.cjs → install-DXllkuy0.cjs} +3 -3
  91. package/dist/lib.cjs +12 -12
  92. package/dist/lib.d.cts +63 -1
  93. package/dist/lib.d.mts +63 -1
  94. package/dist/lib.mjs +12 -12
  95. package/dist/{lidState-B4dHJCeS.cjs → lidState-C9_DoF9i.cjs} +1 -1
  96. package/dist/{lidState-q5Its2Hm.mjs → lidState-CD81ryTy.mjs} +1 -1
  97. package/dist/{localHappyAgentAuth-CG2nPD_H.cjs → localHappyAgentAuth-CCjUvOfi.cjs} +1 -1
  98. package/dist/{localHappyAgentAuth-C_G5u5lY.mjs → localHappyAgentAuth-Cg-m1lwm.mjs} +1 -1
  99. package/dist/{logger-BP1SW7Cs.cjs → logger-Ct2zvaq0.cjs} +2 -2
  100. package/dist/{logger-DOKH3Zbh.mjs → logger-GcbI0eg2.mjs} +2 -2
  101. package/dist/{machineMetadata-D-5qeIqd.mjs → machineMetadata-CXRmFNOV.mjs} +3 -3
  102. package/dist/{machineMetadata-BKX3ov9g.cjs → machineMetadata-DDCVWb_x.cjs} +3 -3
  103. package/dist/{main-ndpVIaSG.cjs → main-BHC-WIcM.cjs} +49 -48
  104. package/dist/{main-DODz8DQE.mjs → main-omGr_ONk.mjs} +49 -48
  105. package/dist/{mcp-BBwbSODp.mjs → mcp-D5hxmRAq.mjs} +15 -15
  106. package/dist/{mcp-Bc4U4exu.cjs → mcp-xUzii0m8.cjs} +15 -15
  107. package/dist/{mirrorProtocol-CiA3hO2y.cjs → mirrorProtocol-Dfl8Ahyf.cjs} +3 -3
  108. package/dist/{mirrorProtocol-D2vTWteS.mjs → mirrorProtocol-Lcx20Oby.mjs} +3 -3
  109. package/dist/{package-CYDdLA6R.cjs → package-9n7wd2dT.cjs} +7 -7
  110. package/dist/{package-DTcaIhjW.mjs → package-BsUHyqWe.mjs} +7 -7
  111. package/dist/{panels-C2xZ8rqU.cjs → panels-BfknEmt7.cjs} +5 -5
  112. package/dist/{panels-DCaLxlSL.mjs → panels-CpEKWWbI.mjs} +5 -5
  113. package/dist/{peerTools-B4315xjX.cjs → peerTools-CElYh-5u.cjs} +5 -5
  114. package/dist/{peerTools-BtrUnSwz.mjs → peerTools-CwCe6tmJ.mjs} +5 -5
  115. package/dist/{persistence-CrzC7yr_.cjs → persistence-A2NeERZJ.cjs} +6 -2
  116. package/dist/{persistence-0INrP3aB.mjs → persistence-Cpw4yJs8.mjs} +6 -3
  117. package/dist/{piRunnerArgs-BtzW_kfh.cjs → piRunnerArgs-BnFU0K73.cjs} +1 -1
  118. package/dist/{piRunnerArgs-DRuxMlX1.mjs → piRunnerArgs-Bqmu16He.mjs} +1 -1
  119. package/dist/{piRuntime-BMAFpIBV.mjs → piRuntime-Cgn1b0OX.mjs} +1 -1
  120. package/dist/{piRuntime-DEbPE_kW.cjs → piRuntime-DpS9TAIs.cjs} +1 -1
  121. package/dist/{piTerminal-DQXV8_we.mjs → piTerminal-BGdps8f3.mjs} +17 -17
  122. package/dist/{piTerminal-MtxDtBE2.cjs → piTerminal-rmve-VlI.cjs} +17 -17
  123. package/dist/{pushNotifications-CalIS9sq.cjs → pushNotifications-23YSd-0l.cjs} +28 -3
  124. package/dist/{pushNotifications-Cq1s8YVK.mjs → pushNotifications-XAM8__Pg.mjs} +28 -3
  125. package/dist/{query-BYiPBHPC.mjs → query-SZcYnJoW.mjs} +1 -1
  126. package/dist/{query-CE2XDhhw.cjs → query-u2GX-I0C.cjs} +1 -1
  127. package/dist/{rateLimitReporter-DR5LXuiQ.mjs → rateLimitReporter-COUkf446.mjs} +3 -3
  128. package/dist/{rateLimitReporter-BKmoOZQi.cjs → rateLimitReporter-CaTzBe3x.cjs} +3 -3
  129. package/dist/{rateLimitWindows-Cs56YJCH.cjs → rateLimitWindows-B2Kx6L0S.cjs} +1 -1
  130. package/dist/{rateLimitWindows-5vIuNjko.mjs → rateLimitWindows-j_qQk0KY.mjs} +1 -1
  131. package/dist/{registerCommonHandlers-DZPozYxc.cjs → registerCommonHandlers-D1MiSfcB.cjs} +2 -2
  132. package/dist/{registerCommonHandlers-DWkTysjD.mjs → registerCommonHandlers-DRRfinzK.mjs} +2 -2
  133. package/dist/{registerKillSessionHandler-CSCTRIbI.mjs → registerKillSessionHandler-Cpug_r5C.mjs} +16 -6
  134. package/dist/{registerKillSessionHandler-DhCjrs44.cjs → registerKillSessionHandler-hvCsEn7b.cjs} +16 -6
  135. package/dist/{remoteSessionClient-Dq8XTLQP.cjs → remoteSessionClient-6ymeMVa4.cjs} +5 -5
  136. package/dist/{remoteSessionClient-Vfj_5g2-.mjs → remoteSessionClient-BdnJ_n8C.mjs} +5 -5
  137. package/dist/{reportProgressTool-B7zmX7NJ.mjs → reportProgressTool-XgQBzxoD.mjs} +3 -3
  138. package/dist/{reportProgressTool-DznxPKES.cjs → reportProgressTool-tzQLCLIw.cjs} +3 -3
  139. package/dist/{run-DSfNcR62.mjs → run-Bt0AklUU.mjs} +396 -43
  140. package/dist/{run-Ca8BiNCp.cjs → run-DYL_wuj7.cjs} +396 -43
  141. package/dist/{runClaude-hoepv-0X.mjs → runClaude-C3rii_S6.mjs} +47 -27
  142. package/dist/{runClaude-ClQQcgoO.cjs → runClaude-CBEpYO4S.cjs} +49 -29
  143. package/dist/{runClaudeDeps-ck5_GYlP.cjs → runClaudeDeps-CYuozSC6.cjs} +187 -61
  144. package/dist/{runClaudeDeps-D_v8t2SK.mjs → runClaudeDeps-DlVfMG4F.mjs} +192 -66
  145. package/dist/{runGemini-Cj0XsMiM.cjs → runGemini-CEI3b90u.cjs} +33 -33
  146. package/dist/{runGemini-CTr2-cYG.mjs → runGemini-DkYhRk9S.mjs} +33 -33
  147. package/dist/{runOpenClaw-BoN1e3lP.cjs → runOpenClaw-BgjD6E4d.cjs} +18 -18
  148. package/dist/{runOpenClaw-CdDMntiV.mjs → runOpenClaw-DpprWCoz.mjs} +18 -18
  149. package/dist/{sandbox-DcaWB-Ou.mjs → sandbox-DJ7A7lsy.mjs} +4 -4
  150. package/dist/{sandbox-BY2h19gc.cjs → sandbox-XCDUbH72.cjs} +4 -4
  151. package/dist/{selfCheck-DFS_GUaQ.cjs → selfCheck-BYUDB1Uq.cjs} +37 -37
  152. package/dist/selfCheck-C-rNljKV.mjs +86 -0
  153. package/dist/{send-UBTHHNvZ.mjs → send-Ba63huxv.mjs} +8 -8
  154. package/dist/{send-BMsUYU6g.cjs → send-CASDBCyJ.cjs} +8 -8
  155. package/dist/{server-YrHMHNz1.cjs → server-cZoV9XRt.cjs} +6 -6
  156. package/dist/{server-Dt3mCtfQ.mjs → server-w3W0toNd.mjs} +4 -4
  157. package/dist/{sessionLock-DSqiP2lH.cjs → sessionLock-BmLA2S8K.cjs} +134 -3
  158. package/dist/{sessionLock-tEFvFXLD.mjs → sessionLock-G2PMqvsh.mjs} +121 -4
  159. package/dist/{sessionOps-CljctDs5.mjs → sessionOps-DPw5k8vV.mjs} +15 -5
  160. package/dist/{sessionOps-BzeOKIEF.cjs → sessionOps-DXlTmS7J.cjs} +15 -4
  161. package/dist/{sessionProvider-BnUFSJXM.mjs → sessionProvider-DUn91LhJ.mjs} +5 -5
  162. package/dist/{sessionProvider-ORgzmkXy.cjs → sessionProvider-Dg691XQ4.cjs} +5 -5
  163. package/dist/{sessionScanner-Cr6PJ3PT.cjs → sessionScanner-AHjnicxi.cjs} +3 -3
  164. package/dist/{sessionScanner-DZUlkdF6.mjs → sessionScanner-BCXpdZJN.mjs} +3 -3
  165. package/dist/{sessions-aIo_HjmY.cjs → sessions-BiBXOBx0.cjs} +36 -25
  166. package/dist/{sessions-15cag-su.mjs → sessions-Clk8MR5Y.mjs} +35 -26
  167. package/dist/{setupOfflineReconnection-tV0Q1dgR.cjs → setupOfflineReconnection-BKLfOd-i.cjs} +2 -2
  168. package/dist/{setupOfflineReconnection-B7I8R2Ex.mjs → setupOfflineReconnection-DI-QZGYz.mjs} +2 -2
  169. package/dist/{spawn-ByrQgruJ.mjs → spawn-4tsp1uhh.mjs} +15 -15
  170. package/dist/{spawn-VG-HjJiR.cjs → spawn-D5omsx1Q.cjs} +15 -15
  171. package/dist/{spawnAgents-Bh1RPShN.mjs → spawnAgents-CjoU6ZOS.mjs} +8 -2
  172. package/dist/{spawnAgents-C1-4m7aN.cjs → spawnAgents-CtkkIFHd.cjs} +8 -2
  173. package/dist/{spawnHappyCLI-CxiR2Qoy.cjs → spawnHappyCLI-CF_gLi92.cjs} +1 -1
  174. package/dist/{spawnHappyCLI-CEsXwz5V.mjs → spawnHappyCLI-CIA9Sc_5.mjs} +1 -1
  175. package/dist/{startFileWatcher-C-XCZ5t2.cjs → startFileWatcher-9Stpxe7p.cjs} +1 -1
  176. package/dist/{startFileWatcher-DkEeeAtL.mjs → startFileWatcher-CDO6fb2m.mjs} +1 -1
  177. package/dist/{defaultPermissionMode-e2bIIJG4.mjs → startupSessionCreate-BtR4iYEC.mjs} +25 -6
  178. package/dist/{defaultPermissionMode-5EvgRq38.cjs → startupSessionCreate-CcF7rGGB.cjs} +25 -7
  179. package/dist/{streamRelay-D9a4cBEa.cjs → streamRelay-BhI6jqF-.cjs} +1 -1
  180. package/dist/{streamRelay-CqBynIon.mjs → streamRelay-DMwOMTKf.mjs} +1 -1
  181. package/dist/{sync-CoChLEIg.cjs → sync-Ba8N6xba.cjs} +1 -1
  182. package/dist/{sync-BvDMkKAN.mjs → sync-C0PRuTMj.mjs} +1 -1
  183. package/dist/{systemPrompt-CgDaPigN.mjs → systemPrompt-D0q8eyjy.mjs} +2 -2
  184. package/dist/{systemPrompt-Dy_Rf-0Z.cjs → systemPrompt-DV5IReD4.cjs} +2 -2
  185. package/dist/{teams-BC4_e5hR.mjs → teams-BO3_arwM.mjs} +7 -7
  186. package/dist/{teams-DPvfLAk8.cjs → teams-z3Gp-KlV.cjs} +7 -7
  187. package/dist/{template-17HATY_Y.cjs → template-B_5l6pkc.cjs} +1 -1
  188. package/dist/{template-CEK8MEjo.mjs → template-DLR_0hfj.mjs} +1 -1
  189. package/dist/{time-XwEZxKGc.cjs → time-Cy0a-7YX.cjs} +1 -1
  190. package/dist/{time-CUK37wiV.mjs → time-D0jvDRhn.mjs} +1 -1
  191. package/dist/{titleGenerator-DWRVdqMU.mjs → titleGenerator-AGQsXskb.mjs} +1 -1
  192. package/dist/{titleGenerator-DVX0NZUn.cjs → titleGenerator-RGHWP2YL.cjs} +2 -2
  193. package/dist/{todo-BNMGXneA.mjs → todo-BZ954vsz.mjs} +6 -6
  194. package/dist/{todo-CKGrSrRE.cjs → todo-CzIDPLFy.cjs} +6 -6
  195. package/dist/{tools-CjMafO_D.cjs → tools-B1x1j6tz.cjs} +1 -1
  196. package/dist/{tools-CCIEAVbB.mjs → tools-Bei5i03L.mjs} +1 -1
  197. package/dist/{uninstall-CJvJ7gjr.mjs → uninstall-B4T_e3Mr.mjs} +3 -3
  198. package/dist/{uninstall-BdFbTXnL.cjs → uninstall-C3cnIvz1.cjs} +3 -3
  199. package/package.json +7 -7
  200. package/dist/agentAttachments-M_B5qEF2.mjs +0 -18
  201. package/dist/selfCheck-BQ_H2Sns.mjs +0 -86
  202. package/dist/startupSessionCreate-CYc8mra-.cjs +0 -26
  203. package/dist/startupSessionCreate-npXe2TdN.mjs +0 -24
@@ -1,62 +1,67 @@
1
1
  import os from 'node:os';
2
- import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, e as exitCursorStamp } from './sessionLock-tEFvFXLD.mjs';
3
- import { r as readSettings, H as HIBERNATION_CAPABILITY, a as resolveCheckMs, l as latchKeepAwake, e as evaluateWrapperIdle } from './persistence-0INrP3aB.mjs';
4
- import { D as DEFAULT_CLAUDE_PERMISSION_MODE, H as HibernationProbe, c as commitHibernation } from './defaultPermissionMode-e2bIIJG4.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-B0yN68XH.mjs';
7
- import { l as logger } from './logger-DOKH3Zbh.mjs';
8
- import { s as spawnOriginTags, a as sessionWorktreeMetadata } from './createSessionMetadata-CG6Klinp.mjs';
9
- import { p as packageJson } from './package-DTcaIhjW.mjs';
10
- import { P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY } from './index-WKyN-bNy.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-1FabKklB.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-DwNnNAUx.mjs';
15
- import { g as getInitialMachineMetadata } from './machineMetadata-D-5qeIqd.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
- import { c as createSessionForStartup } from './startupSessionCreate-npXe2TdN.mjs';
19
19
  import { a as applySandboxPermissionPolicy, r as resolveInitialClaudePermissionMode, m as mapToClaudeMode, b as reconcilePublishedPermissionMode } from './permissionMode-CH4FoZfU.mjs';
20
20
  import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
21
21
  import { readFile } from 'node:fs/promises';
22
- import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-CcIdMfAx.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
+ import './cliUpdate-Y34VGe9Y.mjs';
25
26
  import 'node:fs';
26
27
  import './processTreeSnapshot-CuLJDNC-.mjs';
27
28
  import 'node:child_process';
28
29
  import 'zod';
29
30
  import 'axios';
30
- import './lidState-q5Its2Hm.mjs';
31
+ import './lidState-CD81ryTy.mjs';
31
32
  import 'os';
32
33
  import 'child_process';
33
34
  import 'node:events';
34
35
  import 'socket.io-client';
35
- import './pushNotifications-Cq1s8YVK.mjs';
36
+ import './pushNotifications-XAM8__Pg.mjs';
36
37
  import './contentLogMetadata-BlWI0egu.mjs';
37
38
  import './limits-DIo7rEBR.mjs';
38
- import './time-CUK37wiV.mjs';
39
- import './registerCommonHandlers-DWkTysjD.mjs';
39
+ import './time-D0jvDRhn.mjs';
40
+ import './registerCommonHandlers-DRRfinzK.mjs';
40
41
  import 'util';
41
42
  import 'fs/promises';
42
43
  import 'crypto';
43
44
  import 'path';
44
45
  import 'cross-spawn';
45
46
  import '@paralleldrive/cuid2';
46
- import './sync-BvDMkKAN.mjs';
47
+ import './sync-C0PRuTMj.mjs';
47
48
  import './backgroundTaskActivity-8PdPxrvy.mjs';
48
49
  import 'chalk';
49
50
  import 'node:util';
50
51
  import './detectCLI-CSGMlV51.mjs';
51
52
  import 'fs';
52
- import './localHappyAgentAuth-C_G5u5lY.mjs';
53
+ import './localHappyAgentAuth-Cg-m1lwm.mjs';
53
54
  import 'tweetnacl';
54
55
  import './fsMkdir-DumgLTzR.mjs';
55
56
  import 'url';
56
57
 
57
58
  const DEFAULT_CLAUDE_MODEL = void 0;
58
59
  const DEFAULT_CLAUDE_EFFORT = void 0;
59
- const importRunClaudeDeps = () => import('./runClaudeDeps-D_v8t2SK.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');
60
65
  async function runClaude(credentials, options = {}) {
61
66
  logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
62
67
  logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
@@ -70,7 +75,7 @@ async function runClaude(credentials, options = {}) {
70
75
  const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
71
76
  if (isAssistantVariant) {
72
77
  try {
73
- const { bootstrapAssistantHome } = await import('./bootstrap-DfXwkUQb.mjs');
78
+ const { bootstrapAssistantHome } = await import('./bootstrap-rLaL3kTa.mjs');
74
79
  await bootstrapAssistantHome();
75
80
  } catch (error) {
76
81
  logger.debug("[START] Assistant home bootstrap failed:", error);
@@ -145,7 +150,12 @@ async function runClaude(credentials, options = {}) {
145
150
  // a brand-new session cannot pick a PDF until after sending once.
146
151
  attachmentKinds: [...CLAUDE_ATTACHMENT_KINDS],
147
152
  queueCancellation: true,
148
- 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, 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,
149
159
  // Effective mode this process enforces. Kept current by
150
160
  // publishPermissionMode below; the web renders it instead of guessing.
151
161
  permissionMode: mapToClaudeMode(initialPermissionMode ?? "default"),
@@ -190,7 +200,7 @@ async function runClaude(credentials, options = {}) {
190
200
  }
191
201
  if (!response) {
192
202
  let offlineSessionId = null;
193
- const { claudeLocal } = await import('./claudeLocal-Bid_rC_v.mjs');
203
+ const { claudeLocal } = await import('./claudeLocal-Bgb5GGsq.mjs');
194
204
  const { createSessionScanner: createSessionScanner2 } = await loadDeps();
195
205
  const reconnection = startOfflineReconnection({
196
206
  serverUrl: configuration.serverUrl,
@@ -255,6 +265,7 @@ async function runClaude(credentials, options = {}) {
255
265
  logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
256
266
  }
257
267
  }
268
+ const restoredRun = reconnectSeeded ? { model: restoredModel(response.metadata), effort: restoredEffort(response.metadata) } : null;
258
269
  const earlySession = startupPlan.sessionClientBeforeWebhook ? api.sessionSyncClient(response) : null;
259
270
  try {
260
271
  logger.debug(`[START] Reporting session ${response.id} to daemon`);
@@ -543,13 +554,14 @@ async function runClaude(credentials, options = {}) {
543
554
  }
544
555
  };
545
556
  let lastExplicitModeSwitchAt = 0;
546
- let currentModel = options.model ?? DEFAULT_CLAUDE_MODEL;
557
+ let currentModel = restoredRun?.model !== void 0 ? restoredRun.model ?? void 0 : options.model ?? DEFAULT_CLAUDE_MODEL;
547
558
  let currentFallbackModel = void 0;
548
559
  let currentCustomSystemPrompt = void 0;
549
560
  let currentAppendSystemPrompt = void 0;
550
561
  let currentAllowedTools = void 0;
551
562
  let currentDisallowedTools = withAssistantDenylist(void 0, isAssistantVariant);
552
- 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"}`);
553
565
  registerSideQuestionHandler(session.rpcHandlerManager, {
554
566
  getClaudeSessionId: () => {
555
567
  const id = currentSession?.sessionId ?? null;
@@ -564,15 +576,20 @@ async function runClaude(credentials, options = {}) {
564
576
  getLiveQuery: () => currentSession?.getSideQuestionLive() ?? null
565
577
  });
566
578
  const resetCurrentModeDefaults = () => {
567
- currentModel = options.model ?? DEFAULT_CLAUDE_MODEL;
568
579
  currentFallbackModel = void 0;
569
580
  currentCustomSystemPrompt = void 0;
570
581
  currentAppendSystemPrompt = void 0;
571
582
  currentAllowedTools = void 0;
572
583
  currentDisallowedTools = withAssistantDenylist(void 0, isAssistantVariant);
573
- currentEffort = DEFAULT_CLAUDE_EFFORT;
574
584
  logger.debug("[loop] Reset current mode defaults after abort");
575
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
+ });
576
593
  const currentModeState = () => ({
577
594
  permissionMode: currentPermissionMode,
578
595
  model: currentModel,
@@ -710,6 +727,7 @@ async function runClaude(credentials, options = {}) {
710
727
  if (resolved.ignoredEffort !== void 0) {
711
728
  logger.debug(`[loop] Ignoring invalid effort from user message: ${resolved.ignoredEffort}`);
712
729
  }
730
+ recordRunIntents(session, resolved.ignoredEffort !== void 0 ? withoutEffort(message.meta) : message.meta, { stickyModel: currentModel ?? null });
713
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"}`);
714
732
  scoreFirstMessage(message.meta, predictedFirstMode, resolved.mode);
715
733
  const resolvedMode = resolved.mode;
@@ -919,6 +937,8 @@ async function runClaude(credentials, options = {}) {
919
937
  });
920
938
  hibernationProbe.start();
921
939
  }
940
+ const autoUpdated = takeAutoRestartedEvent(process.env);
941
+ if (autoUpdated) session.sendSessionEvent(autoUpdated);
922
942
  const exitCode = await loop({
923
943
  path: workingDirectory,
924
944
  model: options.model,
@@ -1,64 +1,69 @@
1
1
  'use strict';
2
2
 
3
3
  var os = require('node:os');
4
- var sessionLock = require('./sessionLock-DSqiP2lH.cjs');
5
- var persistence = require('./persistence-CrzC7yr_.cjs');
6
- var defaultPermissionMode = require('./defaultPermissionMode-5EvgRq38.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-BDuuyys8.cjs');
9
- var logger = require('./logger-BP1SW7Cs.cjs');
10
- var createSessionMetadata = require('./createSessionMetadata-DezS33OM.cjs');
11
- var _package = require('./package-CYDdLA6R.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-C0ctLGW2.cjs');
15
+ var configuration = require('./configuration-DfPBa-9d.cjs');
15
16
  var providerBinding = require('./providerBinding-B-Qbx9W2.cjs');
16
- var controlClient = require('./controlClient-F7hAEEy2.cjs');
17
- var machineMetadata = require('./machineMetadata-BKX3ov9g.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
- var startupSessionCreate = require('./startupSessionCreate-CYc8mra-.cjs');
21
21
  var permissionMode = require('./permissionMode-CrV-XuMs.cjs');
22
22
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
23
23
  var promises = require('node:fs/promises');
24
- var attachmentContent = require('./attachmentContent-Cc5b7TPr.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
+ require('./cliUpdate-DsKXPFYp.cjs');
27
28
  require('node:fs');
28
29
  require('./processTreeSnapshot-mDbnuojn.cjs');
29
30
  require('node:child_process');
30
31
  require('zod');
31
32
  require('axios');
32
- require('./lidState-B4dHJCeS.cjs');
33
+ require('./lidState-C9_DoF9i.cjs');
33
34
  require('os');
34
35
  require('child_process');
35
36
  require('node:events');
36
37
  require('socket.io-client');
37
- require('./pushNotifications-CalIS9sq.cjs');
38
+ require('./pushNotifications-23YSd-0l.cjs');
38
39
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
39
40
  require('./limits-C-a7gr04.cjs');
40
- require('./time-XwEZxKGc.cjs');
41
- require('./registerCommonHandlers-DZPozYxc.cjs');
41
+ require('./time-Cy0a-7YX.cjs');
42
+ require('./registerCommonHandlers-D1MiSfcB.cjs');
42
43
  require('util');
43
44
  require('fs/promises');
44
45
  require('crypto');
45
46
  require('path');
46
47
  require('cross-spawn');
47
48
  require('@paralleldrive/cuid2');
48
- require('./sync-CoChLEIg.cjs');
49
+ require('./sync-Ba8N6xba.cjs');
49
50
  require('./backgroundTaskActivity-CBvUdj39.cjs');
50
51
  require('chalk');
51
52
  require('node:util');
52
53
  require('./detectCLI-BuYR_Qxe.cjs');
53
54
  require('fs');
54
- require('./localHappyAgentAuth-CG2nPD_H.cjs');
55
+ require('./localHappyAgentAuth-CCjUvOfi.cjs');
55
56
  require('tweetnacl');
56
57
  require('./fsMkdir-0K3yENml.cjs');
57
58
  require('url');
58
59
 
59
60
  const DEFAULT_CLAUDE_MODEL = void 0;
60
61
  const DEFAULT_CLAUDE_EFFORT = void 0;
61
- const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-ck5_GYlP.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'); });
62
67
  async function runClaude(credentials, options = {}) {
63
68
  logger.logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
64
69
  logger.logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
@@ -72,7 +77,7 @@ async function runClaude(credentials, options = {}) {
72
77
  const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
73
78
  if (isAssistantVariant) {
74
79
  try {
75
- const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-CDY-Vz8q.cjs'); });
80
+ const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-sly4qPPY.cjs'); });
76
81
  await bootstrapAssistantHome();
77
82
  } catch (error) {
78
83
  logger.logger.debug("[START] Assistant home bootstrap failed:", error);
@@ -147,7 +152,12 @@ async function runClaude(credentials, options = {}) {
147
152
  // a brand-new session cannot pick a PDF until after sending once.
148
153
  attachmentKinds: [...attachmentContent.CLAUDE_ATTACHMENT_KINDS],
149
154
  queueCancellation: true,
150
- 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, 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,
151
161
  // Effective mode this process enforces. Kept current by
152
162
  // publishPermissionMode below; the web renders it instead of guessing.
153
163
  permissionMode: permissionMode.mapToClaudeMode(initialPermissionMode ?? "default"),
@@ -192,7 +202,7 @@ async function runClaude(credentials, options = {}) {
192
202
  }
193
203
  if (!response) {
194
204
  let offlineSessionId = null;
195
- const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-2dJIiTIq.cjs'); });
205
+ const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-1vuTFcL8.cjs'); });
196
206
  const { createSessionScanner: createSessionScanner2 } = await loadDeps();
197
207
  const reconnection = api.startOfflineReconnection({
198
208
  serverUrl: configuration.configuration.serverUrl,
@@ -257,6 +267,7 @@ async function runClaude(credentials, options = {}) {
257
267
  logger.logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
258
268
  }
259
269
  }
270
+ const restoredRun = reconnectSeeded ? { model: index.restoredModel(response.metadata), effort: index.restoredEffort(response.metadata) } : null;
260
271
  const earlySession = startupPlan$1.sessionClientBeforeWebhook ? api$1.sessionSyncClient(response) : null;
261
272
  try {
262
273
  logger.logger.debug(`[START] Reporting session ${response.id} to daemon`);
@@ -545,13 +556,14 @@ async function runClaude(credentials, options = {}) {
545
556
  }
546
557
  };
547
558
  let lastExplicitModeSwitchAt = 0;
548
- let currentModel = options.model ?? DEFAULT_CLAUDE_MODEL;
559
+ let currentModel = restoredRun?.model !== void 0 ? restoredRun.model ?? void 0 : options.model ?? DEFAULT_CLAUDE_MODEL;
549
560
  let currentFallbackModel = void 0;
550
561
  let currentCustomSystemPrompt = void 0;
551
562
  let currentAppendSystemPrompt = void 0;
552
563
  let currentAllowedTools = void 0;
553
564
  let currentDisallowedTools = withAssistantDenylist(void 0, isAssistantVariant);
554
- 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"}`);
555
567
  registerSideQuestionHandler(session.rpcHandlerManager, {
556
568
  getClaudeSessionId: () => {
557
569
  const id = currentSession?.sessionId ?? null;
@@ -566,15 +578,20 @@ async function runClaude(credentials, options = {}) {
566
578
  getLiveQuery: () => currentSession?.getSideQuestionLive() ?? null
567
579
  });
568
580
  const resetCurrentModeDefaults = () => {
569
- currentModel = options.model ?? DEFAULT_CLAUDE_MODEL;
570
581
  currentFallbackModel = void 0;
571
582
  currentCustomSystemPrompt = void 0;
572
583
  currentAppendSystemPrompt = void 0;
573
584
  currentAllowedTools = void 0;
574
585
  currentDisallowedTools = withAssistantDenylist(void 0, isAssistantVariant);
575
- currentEffort = DEFAULT_CLAUDE_EFFORT;
576
586
  logger.logger.debug("[loop] Reset current mode defaults after abort");
577
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
+ });
578
595
  const currentModeState = () => ({
579
596
  permissionMode: currentPermissionMode,
580
597
  model: currentModel,
@@ -712,6 +729,7 @@ async function runClaude(credentials, options = {}) {
712
729
  if (resolved.ignoredEffort !== void 0) {
713
730
  logger.logger.debug(`[loop] Ignoring invalid effort from user message: ${resolved.ignoredEffort}`);
714
731
  }
732
+ defaultPermissionMode.recordRunIntents(session, resolved.ignoredEffort !== void 0 ? defaultPermissionMode.withoutEffort(message.meta) : message.meta, { stickyModel: currentModel ?? null });
715
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"}`);
716
734
  scoreFirstMessage(message.meta, predictedFirstMode, resolved.mode);
717
735
  const resolvedMode = resolved.mode;
@@ -894,11 +912,11 @@ async function runClaude(credentials, options = {}) {
894
912
  };
895
913
  };
896
914
  if (options.startedBy === "daemon" && options.startingMode === "remote" && !isAssistantVariant) {
897
- hibernationProbe = new defaultPermissionMode.HibernationProbe({
915
+ hibernationProbe = new startupSessionCreate.HibernationProbe({
898
916
  checkMs: persistence.resolveCheckMs(),
899
917
  snapshot: hibernationSnapshot,
900
918
  ask: (report) => controlClient.checkDaemonHibernation({ sessionId: session.sessionId, pid: process.pid, report }),
901
- commit: (idleMs) => defaultPermissionMode.commitHibernation({
919
+ commit: (idleMs) => startupSessionCreate.commitHibernation({
902
920
  client: session,
903
921
  claimExit: () => exitGate.claim("hibernate") !== null,
904
922
  exitRequested: () => exitGate.exitRequested,
@@ -921,6 +939,8 @@ async function runClaude(credentials, options = {}) {
921
939
  });
922
940
  hibernationProbe.start();
923
941
  }
942
+ const autoUpdated = sessionLock.takeAutoRestartedEvent(process.env);
943
+ if (autoUpdated) session.sendSessionEvent(autoUpdated);
924
944
  const exitCode = await loop({
925
945
  path: workingDirectory,
926
946
  model: options.model,