very-happy-cli 0.2.188 → 0.2.190

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 (202) hide show
  1. package/dist/{AcpBackend-2loP7MpF.mjs → AcpBackend-Dd1h-Rgt.mjs} +3 -3
  2. package/dist/{AcpBackend-B8AYkp5n.cjs → AcpBackend-dkRv9QHm.cjs} +3 -3
  3. package/dist/{AcpSessionManager-CLqo9R9Y.cjs → AcpSessionManager-AqWAqahm.cjs} +3 -3
  4. package/dist/{AcpSessionManager-C17doAoR.mjs → AcpSessionManager-QBZ-CIf7.mjs} +4 -4
  5. package/dist/{BasePermissionHandler-CrfyUmqO.mjs → BasePermissionHandler-CLp1ge-4.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-C8UEcFz0.cjs → BasePermissionHandler-CpSugp7Z.cjs} +1 -1
  7. package/dist/{acpSessionResume-OuYlLGxL.cjs → acpSessionResume-CZao6QEd.cjs} +1 -1
  8. package/dist/{acpSessionResume-F705a1cF.mjs → acpSessionResume-CcpDuIO5.mjs} +1 -1
  9. package/dist/{agentHome-Dc7LYF3d.mjs → agentHome-BJGRA2Kx.mjs} +4 -4
  10. package/dist/{agentHome-DsKHJ_Sf.cjs → agentHome-fIUqT-pn.cjs} +4 -4
  11. package/dist/{api-BOqjYd5r.cjs → api-CXL6jp-p.cjs} +18 -9
  12. package/dist/{api-DNKa7kVy.mjs → api-Dw8gFsQi.mjs} +19 -10
  13. package/dist/{apiMachine-Di1G9ECW.mjs → apiMachine-BBNEtjf7.mjs} +56 -15
  14. package/dist/{apiMachine--rcPpMmt.cjs → apiMachine-C6UqHoPF.cjs} +55 -14
  15. package/dist/{attachmentContent-C9S4ekAz.mjs → attachmentContent-CC4yIrSm.mjs} +2 -2
  16. package/dist/{attachmentContent-BFRMLong.cjs → attachmentContent-NmVfKp-B.cjs} +2 -2
  17. package/dist/{auth-CXmI92aj.cjs → auth-Bb_SL2os.cjs} +5 -5
  18. package/dist/{auth-Bzwo_vOM.mjs → auth-Bh6SUoGi.mjs} +8 -8
  19. package/dist/{auth-BNhhk2Fr.mjs → auth-Bj0psrD2.mjs} +5 -5
  20. package/dist/{auth-CQtfznF0.cjs → auth-DKa4MsAi.cjs} +8 -8
  21. package/dist/{auto-DXLdaX5O.cjs → auto-C9Qohh0P.cjs} +17 -16
  22. package/dist/{auto-DHYOLnXB.mjs → auto-DK7pbCnV.mjs} +19 -18
  23. package/dist/{bootstrap-Di38SnpN.mjs → bootstrap-Ct9Nb4sv.mjs} +2 -2
  24. package/dist/{bootstrap-eJ1l7VYl.cjs → bootstrap-DBJB0y-H.cjs} +2 -2
  25. package/dist/{browser-6Cg7G6bb.mjs → browser-BGxDRhHy.mjs} +1 -1
  26. package/dist/{browser-D3uBFRQu.cjs → browser-CLJWcodR.cjs} +1 -1
  27. package/dist/{claudeLocal-BBaE4QF_.cjs → claudeLocal-B6YDYlnY.cjs} +4 -4
  28. package/dist/{claudeLocal-CqaEs-81.mjs → claudeLocal-Ux31hZyC.mjs} +5 -5
  29. package/dist/{claudeLocalLauncher-BDUPxtsI.mjs → claudeLocalLauncher-D06QijMw.mjs} +10 -10
  30. package/dist/{claudeLocalLauncher-wPxKtH_P.cjs → claudeLocalLauncher-DFvmF8rC.cjs} +9 -9
  31. package/dist/{claudeSessionFork-DzWFzj9m.mjs → claudeSessionFork-D2GI7P59.mjs} +1 -1
  32. package/dist/{claudeSessionFork-CmY25Fl3.cjs → claudeSessionFork-DTLZ2rek.cjs} +1 -1
  33. package/dist/{client-DmY03OZZ.cjs → client-Bffkrs5p.cjs} +2 -2
  34. package/dist/{client-C2HcMqRF.cjs → client-CARZ_lNS.cjs} +3 -3
  35. package/dist/{client-agH03Irm.cjs → client-CMKGrnmT.cjs} +2 -2
  36. package/dist/{client-DWws_aQK.mjs → client-CnGNYidN.mjs} +2 -2
  37. package/dist/{client-qJ0y8fus.mjs → client-CtL0Vtww.mjs} +4 -4
  38. package/dist/{client-DcDE6Ifk.mjs → client-DZkBUoh9.mjs} +2 -2
  39. package/dist/codex/happyMcpStdioBridge.cjs +16 -15
  40. package/dist/codex/happyMcpStdioBridge.mjs +17 -16
  41. package/dist/{codexAppServerClient-DgE99i7X.mjs → codexAppServerClient-CLc5nhLT.mjs} +37 -6
  42. package/dist/{codexAppServerClient-DwzC8LR0.cjs → codexAppServerClient-CpT9F6EM.cjs} +37 -6
  43. package/dist/{codexCommand-1vFEA1KT.cjs → codexCommand-39kH99SJ.cjs} +148 -61
  44. package/dist/{codexCommand-DUSVzbKh.mjs → codexCommand-Dliq3EBv.mjs} +143 -56
  45. package/dist/{codexTermination-DuDPyBRR.cjs → codexTermination-ByW7tRjr.cjs} +1 -1
  46. package/dist/{codexTermination-Bybovr2z.mjs → codexTermination-ORIw0gpU.mjs} +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-C4xOL5bH.cjs → config-CeIzCsfj.cjs} +3 -3
  50. package/dist/{config-BrzZ0O-6.mjs → config-CxSsGO1Z.mjs} +3 -3
  51. package/dist/{configuration-BZHpFD7K.mjs → configuration-Dechcvd-.mjs} +1 -1
  52. package/dist/{configuration-DyPW9mVa.cjs → configuration-Dt5lKW3P.cjs} +1 -1
  53. package/dist/{connect-DurKwMEo.cjs → connect-NPDzIVC6.cjs} +12 -12
  54. package/dist/{connect-Cw_INlj8.mjs → connect-UwQHvCpR.mjs} +13 -13
  55. package/dist/{context-2xDvjkQp.cjs → context-BdZssgF0.cjs} +1 -1
  56. package/dist/{context-t7YV0aZc.mjs → context-C9JbJoNe.mjs} +1 -1
  57. package/dist/{controlClient-DvFaPsg6.cjs → controlClient-BRk65BRO.cjs} +3 -3
  58. package/dist/{controlClient-Bw56NIrj.mjs → controlClient-D7NGfmtq.mjs} +3 -3
  59. package/dist/{createSessionMetadata-Dpg6bV6f.cjs → createSessionMetadata-B_HZCDj_.cjs} +2 -2
  60. package/dist/{createSessionMetadata-Dn5BkLfU.mjs → createSessionMetadata-DyhFKAby.mjs} +2 -2
  61. package/dist/defaultPermissionMode-BnxJPVHT.mjs +4 -0
  62. package/dist/defaultPermissionMode-CxmTXUQR.cjs +7 -0
  63. package/dist/{deterministicJson-D0BrV1FD.cjs → deterministicJson-BEygolBQ.cjs} +12 -12
  64. package/dist/{deterministicJson-CsRckxVq.mjs → deterministicJson-DNmMVhFu.mjs} +13 -13
  65. package/dist/{doctor-CYe4d9kU.cjs → doctor-B9lW1WlG.cjs} +7 -7
  66. package/dist/{doctor-B4HQiW6j.mjs → doctor-BdBi7TFZ.mjs} +7 -7
  67. package/dist/{downloadTarget-tYMV_VHo.mjs → downloadTarget-CGojGjaN.mjs} +6 -6
  68. package/dist/{downloadTarget-CuhBVvuC.cjs → downloadTarget-DS0zT2AU.cjs} +6 -6
  69. package/dist/{ensureDaemonRunning-DVtIG9z7.mjs → ensureDaemonRunning-BOdbryDM.mjs} +5 -5
  70. package/dist/{ensureDaemonRunning-Ce3BlWiR.cjs → ensureDaemonRunning-Bibp6vhe.cjs} +5 -5
  71. package/dist/exitAfterFlush-AbKNZM0N.mjs +23 -0
  72. package/dist/exitAfterFlush-DIT_sIxR.cjs +25 -0
  73. package/dist/{handleResumeCommand-BU1uMNyv.mjs → handleResumeCommand-CgLzBYne.mjs} +5 -5
  74. package/dist/{handleResumeCommand-CLxsmAW0.cjs → handleResumeCommand-DXOuWr4p.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-KwuXqLwe.cjs → index-Bs5FD8JF.cjs} +4 -4
  78. package/dist/{index-ChX0eVXw.mjs → index-CBHfkQNY.mjs} +142 -60
  79. package/dist/{index-DoXbGEAi.cjs → index-CwRW11hT.cjs} +3 -3
  80. package/dist/{index-CVHRt3SS.mjs → index-DUByZsKe.mjs} +4 -4
  81. package/dist/{index-wWJJAQRk.cjs → index-DXSIi6j_.cjs} +4 -4
  82. package/dist/{index-DDz0Ftoy.mjs → index-Db0HIC-k.mjs} +4 -4
  83. package/dist/{index-WKyN-bNy.mjs → index-DmqsRnV7.mjs} +1 -1
  84. package/dist/{index-DG1kGjkF.cjs → index-f8oDidjV.cjs} +142 -60
  85. package/dist/{index-B1OxWiNG.mjs → index-rNTX33in.mjs} +3 -3
  86. package/dist/index.cjs +2 -2
  87. package/dist/index.mjs +2 -2
  88. package/dist/{install-cAYvHxXR.cjs → install-CXIL_FYx.cjs} +3 -3
  89. package/dist/{install-CMa_FOWu.mjs → install-DfPrEWGG.mjs} +3 -3
  90. package/dist/lib.cjs +11 -11
  91. package/dist/lib.d.cts +61 -1
  92. package/dist/lib.d.mts +61 -1
  93. package/dist/lib.mjs +12 -12
  94. package/dist/{lidState-D-lsD1FS.mjs → lidState-D0DF20oG.mjs} +1 -1
  95. package/dist/{lidState-d1vgQ3n7.cjs → lidState-q_XFYg33.cjs} +1 -1
  96. package/dist/{localHappyAgentAuth-wvDp-nGj.mjs → localHappyAgentAuth-BBhM4Qk1.mjs} +1 -1
  97. package/dist/{localHappyAgentAuth-DucSnCg3.cjs → localHappyAgentAuth-CKNW-MXw.cjs} +1 -1
  98. package/dist/{logger-C3vZG6Q0.cjs → logger-BBRTTVsQ.cjs} +2 -2
  99. package/dist/{logger-RpzJ4d8V.mjs → logger-CL7pin9b.mjs} +2 -2
  100. package/dist/{machineMetadata-CiQ2_1Mq.mjs → machineMetadata-DP06qdBk.mjs} +3 -3
  101. package/dist/{machineMetadata-CAvFq1Jg.cjs → machineMetadata-DnFNlrVK.cjs} +3 -3
  102. package/dist/{main-ChpYcFZi.cjs → main-DLOXykOR.cjs} +49 -48
  103. package/dist/{main-IPhaImjm.mjs → main-DO7nRvhf.mjs} +49 -48
  104. package/dist/{mcp-CWnMvju6.mjs → mcp-C-4sPTae.mjs} +16 -15
  105. package/dist/{mcp-2xF232hL.cjs → mcp-Du0MgR7e.cjs} +15 -14
  106. package/dist/{mirrorProtocol-CVzPObON.cjs → mirrorProtocol-GuWMxLkh.cjs} +2 -2
  107. package/dist/{mirrorProtocol-Dr7fNq8V.mjs → mirrorProtocol-dkq2ZENA.mjs} +3 -3
  108. package/dist/{package-CwB8rFJt.mjs → package-C6uiXULx.mjs} +7 -7
  109. package/dist/{package-Gnf_935w.cjs → package-DrY090nZ.cjs} +7 -7
  110. package/dist/{panels-DTlTsndU.cjs → panels-4DRBKHZP.cjs} +5 -5
  111. package/dist/{panels-L1mSkC-y.mjs → panels-DXYdJA6n.mjs} +5 -5
  112. package/dist/{peerTools-C1E5cQ86.cjs → peerTools-5ZM4spcZ.cjs} +5 -5
  113. package/dist/{peerTools-2_8Bw9PU.mjs → peerTools-dY1aJez4.mjs} +5 -5
  114. package/dist/{persistence-CqtjFiD1.cjs → persistence-Bl5S3TLB.cjs} +6 -2
  115. package/dist/{persistence-Bn4qEbDg.mjs → persistence-Dogj7JIp.mjs} +6 -3
  116. package/dist/{piRunnerArgs-BI8yQRBZ.cjs → piRunnerArgs-C3jZ1M6b.cjs} +1 -1
  117. package/dist/{piRunnerArgs-DWBb63W9.mjs → piRunnerArgs-D8nN_Iit.mjs} +1 -1
  118. package/dist/{piRuntime--mQ43MSM.cjs → piRuntime-Bd9-eq6M.cjs} +1 -1
  119. package/dist/{piRuntime-Do8oqbm3.mjs → piRuntime-BoeMsAXK.mjs} +1 -1
  120. package/dist/{piTerminal-BzcvLFsP.cjs → piTerminal-C3j1ca3x.cjs} +17 -16
  121. package/dist/{piTerminal-GC1KHTYQ.mjs → piTerminal-GEPkIGD4.mjs} +18 -17
  122. package/dist/{pushNotifications-Bb-QSqXw.cjs → pushNotifications-CfspRcl-.cjs} +20 -2
  123. package/dist/{pushNotifications-BThg4nVd.mjs → pushNotifications-dUceOIni.mjs} +21 -3
  124. package/dist/{query-Bz3pocKH.cjs → query-DjsVgG3E.cjs} +1 -1
  125. package/dist/{query-CkgIJ_Dy.mjs → query-iYH-tm7L.mjs} +1 -1
  126. package/dist/{rateLimitReporter-BkHyvLru.cjs → rateLimitReporter-DUu2KydZ.cjs} +3 -3
  127. package/dist/{rateLimitReporter-Iw4k3Bbr.mjs → rateLimitReporter-jeVi-fym.mjs} +3 -3
  128. package/dist/{rateLimitWindows-Bm_dcQGW.cjs → rateLimitWindows-Bx3ROBP5.cjs} +1 -1
  129. package/dist/{rateLimitWindows-CQ4tIQnx.mjs → rateLimitWindows-CEn0DXaX.mjs} +1 -1
  130. package/dist/{registerCommonHandlers-CIs6H2DV.cjs → registerCommonHandlers-Beun-cQv.cjs} +2 -2
  131. package/dist/{registerCommonHandlers-CaWl9ll1.mjs → registerCommonHandlers-DWZ7mfdt.mjs} +2 -2
  132. package/dist/{specialCommands-BsvSoDhC.cjs → registerKillSessionHandler-CA1FFr_F.cjs} +15 -62
  133. package/dist/{specialCommands-DHU7TNeK.mjs → registerKillSessionHandler-CzgklwLG.mjs} +17 -60
  134. package/dist/{remoteSessionClient-uPj7omsw.mjs → remoteSessionClient-BiC2KDew.mjs} +5 -5
  135. package/dist/{remoteSessionClient-DgUMfPW4.cjs → remoteSessionClient-DGFI__5Z.cjs} +5 -5
  136. package/dist/{reportProgressTool-DUEq3xAL.mjs → reportProgressTool-CgPy6n_7.mjs} +3 -3
  137. package/dist/{reportProgressTool-CaJ8EwLq.cjs → reportProgressTool-CvPGov1F.cjs} +2 -2
  138. package/dist/{run-DTUJBD6p.mjs → run-B_gFgJVB.mjs} +393 -42
  139. package/dist/{run-DyyGMqND.cjs → run-rPqQwDi_.cjs} +391 -40
  140. package/dist/{runClaude-DTNvIz2J.mjs → runClaude-CykqeXK7.mjs} +26 -23
  141. package/dist/{runClaude-8JDaPoGQ.cjs → runClaude-DM8gm8iu.cjs} +27 -24
  142. package/dist/{runClaudeDeps-CgGkgg7e.mjs → runClaudeDeps-D2phXGut.mjs} +106 -46
  143. package/dist/{runClaudeDeps-BeLo5zss.cjs → runClaudeDeps-DGAomimZ.cjs} +101 -40
  144. package/dist/{runGemini-BSOdU563.cjs → runGemini-CXTeSOZp.cjs} +50 -49
  145. package/dist/{runGemini-eU8UOzfc.mjs → runGemini-CtWCVkj5.mjs} +49 -48
  146. package/dist/{runOpenClaw-D8RZiA1e.mjs → runOpenClaw-BBdjlViJ.mjs} +25 -24
  147. package/dist/{runOpenClaw-CYyFoGRZ.cjs → runOpenClaw-CH_9_RyZ.cjs} +26 -25
  148. package/dist/{sandbox-C8zfNX-4.cjs → sandbox-Bb5IMun3.cjs} +4 -4
  149. package/dist/{sandbox-DlPahdhl.mjs → sandbox-DGmXZ6Zz.mjs} +4 -4
  150. package/dist/selfCheck-BfK945YQ.mjs +86 -0
  151. package/dist/{selfCheck-D28nvuPJ.cjs → selfCheck-CccwNTTK.cjs} +37 -37
  152. package/dist/{send-DBpv-1eh.mjs → send-B6rHg8GT.mjs} +9 -8
  153. package/dist/{send-C58kX4qz.cjs → send-BpiXPkDo.cjs} +9 -8
  154. package/dist/{server-J5K6pOox.mjs → server-BkdAyHhC.mjs} +4 -4
  155. package/dist/{server-I_CETZzn.cjs → server-DHUzjApC.cjs} +6 -6
  156. package/dist/{sessionLock-DjE7O0LS.cjs → sessionLock-BFBReiKq.cjs} +134 -3
  157. package/dist/{sessionLock-C7Wg1RVd.mjs → sessionLock-Ca_bIo50.mjs} +121 -4
  158. package/dist/{sessionOps-CYjMT7Ad.mjs → sessionOps-CA2kpm66.mjs} +36 -5
  159. package/dist/{sessionOps-DGMpl9NB.cjs → sessionOps-DeWVqpe4.cjs} +36 -4
  160. package/dist/{sessionProvider-DVtxrOuM.cjs → sessionProvider-VFbtUmMR.cjs} +5 -5
  161. package/dist/{sessionProvider-TLiFn9kD.mjs → sessionProvider-g18IiK74.mjs} +5 -5
  162. package/dist/{sessionScanner-BZ1ZSn6I.cjs → sessionScanner-CGzsN8V6.cjs} +3 -3
  163. package/dist/{sessionScanner-CknV1IlN.mjs → sessionScanner-DDDud5re.mjs} +3 -3
  164. package/dist/{sessions-DU4bxkap.mjs → sessions-B4d50sCI.mjs} +36 -26
  165. package/dist/{sessions-CTkBKs5U.cjs → sessions-CKJPWFgu.cjs} +37 -25
  166. package/dist/{setupOfflineReconnection-DaOXnGuH.mjs → setupOfflineReconnection-CyPNgyCe.mjs} +2 -2
  167. package/dist/{setupOfflineReconnection-CQHNuP_0.cjs → setupOfflineReconnection-DPXRo_zf.cjs} +2 -2
  168. package/dist/{spawn-C0wZc03S.cjs → spawn-CgSJzzWS.cjs} +17 -16
  169. package/dist/{spawn-DdnYTtQe.mjs → spawn-CrYN_OOT.mjs} +18 -17
  170. package/dist/{spawnAgents-BjyU78Ue.cjs → spawnAgents-C1-4m7aN.cjs} +3 -1
  171. package/dist/{spawnAgents-D-7wMw-a.mjs → spawnAgents-DWCDYCQ1.mjs} +4 -2
  172. package/dist/{spawnHappyCLI-BJUd974I.cjs → spawnHappyCLI-CTy3p6V_.cjs} +1 -1
  173. package/dist/{spawnHappyCLI-CnyyJk74.mjs → spawnHappyCLI-DjbkiSH1.mjs} +1 -1
  174. package/dist/specialCommands-J3JFOq0J.cjs +60 -0
  175. package/dist/specialCommands-MXUN0wfI.mjs +54 -0
  176. package/dist/{startFileWatcher-DBboREco.cjs → startFileWatcher-BQs0cJA-.cjs} +1 -1
  177. package/dist/{startFileWatcher-CpO5Mwbr.mjs → startFileWatcher-Dedtu1vq.mjs} +1 -1
  178. package/dist/{defaultPermissionMode-DMTnlccv.mjs → startupSessionCreate-BKFU4v_h.mjs} +25 -6
  179. package/dist/{defaultPermissionMode-Dlm0q1m0.cjs → startupSessionCreate-Dxy3X4DG.cjs} +25 -7
  180. package/dist/{streamRelay-CqBynIon.mjs → streamRelay-P9e7Sohm.mjs} +1 -1
  181. package/dist/{sync-6HFRJP1h.cjs → sync-DtWB7RzA.cjs} +1 -1
  182. package/dist/{sync-I8NYmycF.mjs → sync-eZkXnsW_.mjs} +1 -1
  183. package/dist/{systemPrompt-BDWj5QSL.cjs → systemPrompt-2XOpZ1j6.cjs} +1 -1
  184. package/dist/{systemPrompt-C1RSY_60.mjs → systemPrompt-Bn6g6aCH.mjs} +2 -2
  185. package/dist/{teams-eUD7ymif.cjs → teams-ecFay4Gn.cjs} +6 -6
  186. package/dist/{teams-GpLFbXXE.mjs → teams-nadkqrbW.mjs} +7 -7
  187. package/dist/{template-CEK8MEjo.mjs → template-BiTD-jI9.mjs} +1 -1
  188. package/dist/{time-umG7yHkb.mjs → time-CN3TuSVG.mjs} +1 -1
  189. package/dist/{time-BAJRbB6U.cjs → time-gPD_EmA-.cjs} +1 -1
  190. package/dist/{titleGenerator-dmFlxkRs.mjs → titleGenerator-DgzTQdn2.mjs} +1 -1
  191. package/dist/{titleGenerator-iqb2jOF1.cjs → titleGenerator-lT5ldPuN.cjs} +2 -2
  192. package/dist/{todo-DsR7WnQS.cjs → todo-B1VeMk5A.cjs} +5 -5
  193. package/dist/{todo-CT4AJ3sH.mjs → todo-BIxd7l2Q.mjs} +6 -6
  194. package/dist/{tools-30E66QL_.cjs → tools-DvqbLsCF.cjs} +1 -1
  195. package/dist/{tools-BOWazSD6.mjs → tools-zXJpxiG_.mjs} +1 -1
  196. package/dist/{uninstall-DImXs6VZ.mjs → uninstall-9htK6mb7.mjs} +3 -3
  197. package/dist/{uninstall-BtTc9hHa.cjs → uninstall-CvIOpwB5.cjs} +3 -3
  198. package/package.json +7 -7
  199. package/dist/agentAttachments-M_B5qEF2.mjs +0 -18
  200. package/dist/selfCheck-4bcdHPFQ.mjs +0 -86
  201. package/dist/startupSessionCreate-BgaVuvQp.mjs +0 -24
  202. package/dist/startupSessionCreate-C1u2dtz8.cjs +0 -26
package/dist/lib.d.mts CHANGED
@@ -616,6 +616,19 @@ declare const DaemonStateSchema: z$1.ZodObject<{
616
616
  rpcAvailable: z$1.ZodBoolean;
617
617
  detectedAt: z$1.ZodNumber;
618
618
  }, z$1.core.$loose>>;
619
+ autoRestart: z$1.ZodOptional<z$1.ZodObject<{
620
+ enabled: z$1.ZodBoolean;
621
+ rpcAvailable: z$1.ZodBoolean;
622
+ detectedAt: z$1.ZodNumber;
623
+ sessions: z$1.ZodRecord<z$1.ZodString, z$1.ZodObject<{
624
+ state: z$1.ZodString;
625
+ reason: z$1.ZodOptional<z$1.ZodString>;
626
+ since: z$1.ZodNumber;
627
+ target: z$1.ZodString;
628
+ offline: z$1.ZodOptional<z$1.ZodBoolean>;
629
+ retryAt: z$1.ZodOptional<z$1.ZodNumber>;
630
+ }, z$1.core.$strip>>;
631
+ }, z$1.core.$loose>>;
619
632
  webPanels: z$1.ZodOptional<z$1.ZodObject<{
620
633
  panels: z$1.ZodArray<z$1.ZodObject<{
621
634
  id: z$1.ZodString;
@@ -720,6 +733,14 @@ type Metadata = {
720
733
  * absent = this wrapper cannot tell. "Follow latest" never overrides it.
721
734
  */
722
735
  configuredModel?: string | null;
736
+ /**
737
+ * B-844c: the explicit model this wrapper keeps applying to turns that carry
738
+ * no `model` (sticky per-session override, e.g. an earlier pick). null =
739
+ * none, turns run the machine default; absent = this wrapper cannot tell.
740
+ * The web sends `model: null` to clear it when its picker follows the
741
+ * machine config.
742
+ */
743
+ stickyModel?: string | null;
723
744
  operatingModes?: Array<{
724
745
  code: string;
725
746
  value: string;
@@ -1024,6 +1045,13 @@ declare class RpcHandlerManager {
1024
1045
  private getPrefixedMethod;
1025
1046
  }
1026
1047
 
1048
+ /**
1049
+ * Why the CLI dropped a user message it never ran — the `queue-cancel` reason
1050
+ * (B-332). `failed` (B-854): taken off the queue, but the runner could not hand
1051
+ * it to the agent (a pre-flight check or the agent's start failed).
1052
+ */
1053
+ type QueueDiscardReason = 'cleared' | 'aborted' | 'restarted' | 'failed';
1054
+
1027
1055
  /**
1028
1056
  * B-509 —— server-side prompt queue drain (pure state machine, no I/O).
1029
1057
  *
@@ -1326,7 +1354,7 @@ declare class ApiSessionClient extends EventEmitter {
1326
1354
  private pushCommittedMessagesToRelay;
1327
1355
  private enqueueMessage;
1328
1356
  /** B-332: emit a queue-cancel tombstone, mirroring the web's own signal. */
1329
- sendQueueCancelReason(localKeys: string[], reason: 'cleared' | 'aborted' | 'restarted'): void;
1357
+ sendQueueCancelReason(localKeys: string[], reason: QueueDiscardReason): void;
1330
1358
  /**
1331
1359
  * B-332 site ③: find queued user input this wrapper destroyed (it was still
1332
1360
  * in the previous wrapper's in-memory queue when it died) and tell the web.
@@ -1524,9 +1552,29 @@ declare class ApiSessionClient extends EventEmitter {
1524
1552
  */
1525
1553
  flush(): Promise<void>;
1526
1554
  close(): Promise<void>;
1555
+ /**
1556
+ * B-854: set by close(). The socket's own `disconnect` ("io client
1557
+ * disconnect") must not reconnect a client its owner closed: a runner that
1558
+ * ends without `process.exit` (ACP) stayed alive on that socket — still
1559
+ * "active" for the daemon and the web, with no loop to run anything.
1560
+ */
1561
+ private closedByClient;
1527
1562
  private startSmartReconnect;
1528
1563
  }
1529
1564
 
1565
+ /** What the daemon publishes per behind session (spec §4). */
1566
+ type AutoRestartSessionState = 'waiting' | 'restarting' | 'failed' | 'manual';
1567
+ interface AutoRestartSessionStatus {
1568
+ state: AutoRestartSessionState;
1569
+ reason?: string;
1570
+ since: number;
1571
+ target: string;
1572
+ /** `failed` only: the old wrapper is stopped and no new one came up, so the session is offline (spec §3). */
1573
+ offline?: boolean;
1574
+ /** `failed` + `offline` only: the daemon retries once by itself at this time; absent = left to Restore. */
1575
+ retryAt?: number;
1576
+ }
1577
+
1530
1578
  /**
1531
1579
  * B-510: machine web panels — local web pages a person may need to look at
1532
1580
  * (noVNC, an agent-browser dashboard, Grafana, a dev server), declared ONLY in
@@ -1945,6 +1993,8 @@ declare class ApiMachineClient {
1945
1993
  private claudeAuthState;
1946
1994
  /** B-587: the machine's hibernation threshold, published as a capability. */
1947
1995
  private agentHibernationIdleMs;
1996
+ /** B-852: auto-restart setting + per-session status (null until the daemon installs it). */
1997
+ private autoRestart;
1948
1998
  /** B-510: last normalized `webPanels` (null = never set → field not written). */
1949
1999
  private webPanels;
1950
2000
  private webPanelsSignatureSent;
@@ -2036,6 +2086,16 @@ declare class ApiMachineClient {
2036
2086
  */
2037
2087
  setWebPanels(panels: WebPanel[]): Promise<void>;
2038
2088
  private publishAgentHibernation;
2089
+ /**
2090
+ * B-852: the machine page's「会话自动更新」switch (`auto-restart-set`) and
2091
+ * the `daemonState.autoRestart` capability + per-session status. Call
2092
+ * before connect().
2093
+ */
2094
+ setAutoRestartHandlers(initialEnabled: boolean, set: (enabled: boolean) => Promise<boolean>): void;
2095
+ /** B-852: the scheduler's per-session status changed (already signature-deduped). */
2096
+ setAutoRestartSessions(sessions: Record<string, AutoRestartSessionStatus>): Promise<void>;
2097
+ private autoRestartState;
2098
+ private publishAutoRestart;
2039
2099
  /** B-276 machine RPCs. Responses always carry `claudeAuth` so the web can refresh in place. */
2040
2100
  setClaudeAuthHandlers(handlers: {
2041
2101
  probe: () => Promise<ClaudeAuthState>;
package/dist/lib.mjs CHANGED
@@ -1,9 +1,9 @@
1
- export { A as ApiClient, a as ApiSessionClient } from './api-DNKa7kVy.mjs';
2
- export { l as logger } from './logger-RpzJ4d8V.mjs';
3
- export { c as configuration } from './configuration-BZHpFD7K.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient } from './api-Dw8gFsQi.mjs';
2
+ export { l as logger } from './logger-CL7pin9b.mjs';
3
+ export { c as configuration } from './configuration-Dechcvd-.mjs';
4
4
  export { R as RawJSONLinesSchema } from './types-CkqAACXx.mjs';
5
5
  import 'axios';
6
- import './lidState-D-lsD1FS.mjs';
6
+ import './lidState-D0DF20oG.mjs';
7
7
  import './authRelay-DhQhkBvX.mjs';
8
8
  import 'node:crypto';
9
9
  import 'tweetnacl';
@@ -11,14 +11,14 @@ import 'os';
11
11
  import 'child_process';
12
12
  import 'node:events';
13
13
  import 'socket.io-client';
14
- import './pushNotifications-BThg4nVd.mjs';
14
+ import './pushNotifications-dUceOIni.mjs';
15
15
  import 'zod';
16
- import './index-WKyN-bNy.mjs';
16
+ import './index-DmqsRnV7.mjs';
17
17
  import '@paralleldrive/cuid2';
18
18
  import './contentLogMetadata-BlWI0egu.mjs';
19
19
  import './limits-DIo7rEBR.mjs';
20
- import './time-umG7yHkb.mjs';
21
- import './registerCommonHandlers-CaWl9ll1.mjs';
20
+ import './time-CN3TuSVG.mjs';
21
+ import './registerCommonHandlers-DWZ7mfdt.mjs';
22
22
  import 'util';
23
23
  import 'fs/promises';
24
24
  import 'crypto';
@@ -26,14 +26,14 @@ import 'path';
26
26
  import 'cross-spawn';
27
27
  import './projectPath-BTBIMB57.mjs';
28
28
  import 'url';
29
- import './sync-I8NYmycF.mjs';
29
+ import './sync-eZkXnsW_.mjs';
30
30
  import './backgroundTaskActivity-8PdPxrvy.mjs';
31
- import './controlClient-Bw56NIrj.mjs';
32
- import './persistence-Bn4qEbDg.mjs';
31
+ import './controlClient-D7NGfmtq.mjs';
32
+ import './persistence-Dogj7JIp.mjs';
33
33
  import 'node:fs/promises';
34
34
  import 'node:fs';
35
35
  import 'chalk';
36
36
  import 'node:util';
37
37
  import 'node:path';
38
38
  import 'node:os';
39
- import './package-CwB8rFJt.mjs';
39
+ import './package-C6uiXULx.mjs';
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-RpzJ4d8V.mjs';
1
+ import { l as logger } from './logger-CL7pin9b.mjs';
2
2
  import { e as encodeBase64, g as encrypt, h as decrypt, d as decodeBase64 } from './authRelay-DhQhkBvX.mjs';
3
3
  import os from 'os';
4
4
  import { execSync } from 'child_process';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-C3vZG6Q0.cjs');
3
+ var logger = require('./logger-BBRTTVsQ.cjs');
4
4
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
5
5
  var os = require('os');
6
6
  var child_process = require('child_process');
@@ -4,7 +4,7 @@ import { join } from 'node:path';
4
4
  import tweetnacl from 'tweetnacl';
5
5
  import { z } from 'zod';
6
6
  import { c as credentialRelayProblem, d as decodeBase64 } from './authRelay-DhQhkBvX.mjs';
7
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
7
+ import { c as configuration } from './configuration-Dechcvd-.mjs';
8
8
 
9
9
  const AgentCredentialsSchema = z.object({
10
10
  token: z.string().min(1),
@@ -6,7 +6,7 @@ var path = require('node:path');
6
6
  var tweetnacl = require('tweetnacl');
7
7
  var z = require('zod');
8
8
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
9
- var configuration = require('./configuration-DyPW9mVa.cjs');
9
+ var configuration = require('./configuration-Dt5lKW3P.cjs');
10
10
 
11
11
  const AgentCredentialsSchema = z.z.object({
12
12
  token: z.z.string().min(1),
@@ -2,7 +2,7 @@
2
2
 
3
3
  var chalk = require('chalk');
4
4
  var node_util = require('node:util');
5
- var configuration = require('./configuration-DyPW9mVa.cjs');
5
+ var configuration = require('./configuration-Dt5lKW3P.cjs');
6
6
  var node_fs = require('node:fs');
7
7
  var path = require('node:path');
8
8
 
@@ -238,7 +238,7 @@ async function listDaemonLogFiles(limit = 50) {
238
238
  return { file, path: fullPath, modified: stats.mtime };
239
239
  }).sort((a, b) => b.modified.getTime() - a.modified.getTime());
240
240
  try {
241
- const { readDaemonState } = await Promise.resolve().then(function () { return require('./persistence-CqtjFiD1.cjs'); }).then(function (n) { return n.persistence; });
241
+ const { readDaemonState } = await Promise.resolve().then(function () { return require('./persistence-Bl5S3TLB.cjs'); }).then(function (n) { return n.persistence; });
242
242
  const state = await readDaemonState();
243
243
  if (!state) {
244
244
  return logs;
@@ -1,6 +1,6 @@
1
1
  import chalk from 'chalk';
2
2
  import { inspect } from 'node:util';
3
- import { d as appendPrivateFileSync, c as configuration } from './configuration-BZHpFD7K.mjs';
3
+ import { d as appendPrivateFileSync, c as configuration } from './configuration-Dechcvd-.mjs';
4
4
  import { existsSync, readdirSync, statSync } from 'node:fs';
5
5
  import { join, basename } from 'node:path';
6
6
 
@@ -236,7 +236,7 @@ async function listDaemonLogFiles(limit = 50) {
236
236
  return { file, path: fullPath, modified: stats.mtime };
237
237
  }).sort((a, b) => b.modified.getTime() - a.modified.getTime());
238
238
  try {
239
- const { readDaemonState } = await import('./persistence-Bn4qEbDg.mjs').then(function (n) { return n.F; });
239
+ const { readDaemonState } = await import('./persistence-Dogj7JIp.mjs').then(function (n) { return n.G; });
240
240
  const state = await readDaemonState();
241
241
  if (!state) {
242
242
  return logs;
@@ -1,9 +1,9 @@
1
1
  import os from 'node:os';
2
- import { p as packageJson } from './package-CwB8rFJt.mjs';
3
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
2
+ import { p as packageJson } from './package-C6uiXULx.mjs';
3
+ import { c as configuration } from './configuration-Dechcvd-.mjs';
4
4
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
5
5
  import { d as detectCLIAvailability } from './detectCLI-CSGMlV51.mjs';
6
- import { d as detectResumeSupport } from './localHappyAgentAuth-wvDp-nGj.mjs';
6
+ import { d as detectResumeSupport } from './localHappyAgentAuth-BBhM4Qk1.mjs';
7
7
  import { F as FS_MKDIR_CAPABILITY_VERSION } from './fsMkdir-DumgLTzR.mjs';
8
8
 
9
9
  const TEAM_RETRY_CAPABILITY_VERSION = 2;
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var os = require('node:os');
4
- var _package = require('./package-Gnf_935w.cjs');
5
- var configuration = require('./configuration-DyPW9mVa.cjs');
4
+ var _package = require('./package-DrY090nZ.cjs');
5
+ var configuration = require('./configuration-Dt5lKW3P.cjs');
6
6
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
7
7
  var detectCLI = require('./detectCLI-BuYR_Qxe.cjs');
8
- var localHappyAgentAuth = require('./localHappyAgentAuth-DucSnCg3.cjs');
8
+ var localHappyAgentAuth = require('./localHappyAgentAuth-CKNW-MXw.cjs');
9
9
  var fsMkdir = require('./fsMkdir-0K3yENml.cjs');
10
10
 
11
11
  const TEAM_RETRY_CAPABILITY_VERSION = 2;
@@ -1,22 +1,23 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var logger = require('./logger-C3vZG6Q0.cjs');
5
- var persistence = require('./persistence-CqtjFiD1.cjs');
6
- var auth = require('./auth-CXmI92aj.cjs');
7
- var _package = require('./package-Gnf_935w.cjs');
4
+ var logger = require('./logger-BBRTTVsQ.cjs');
5
+ var persistence = require('./persistence-Bl5S3TLB.cjs');
6
+ var auth = require('./auth-Bb_SL2os.cjs');
7
+ var _package = require('./package-DrY090nZ.cjs');
8
8
  var z = require('zod');
9
- var controlClient = require('./controlClient-DvFaPsg6.cjs');
9
+ var controlClient = require('./controlClient-BRk65BRO.cjs');
10
10
  var daemonSupervisor = require('./daemonSupervisor-alqGPANc.cjs');
11
- var spawnHappyCLI = require('./spawnHappyCLI-BJUd974I.cjs');
11
+ var spawnHappyCLI = require('./spawnHappyCLI-CTy3p6V_.cjs');
12
12
  var node_child_process = require('node:child_process');
13
- var ensureDaemonRunning = require('./ensureDaemonRunning-Ce3BlWiR.cjs');
13
+ var ensureDaemonRunning = require('./ensureDaemonRunning-Bibp6vhe.cjs');
14
14
  var startupPlan = require('./startupPlan-BLMbfQIH.cjs');
15
- var index = require('./index-DoXbGEAi.cjs');
16
- var configuration = require('./configuration-DyPW9mVa.cjs');
15
+ var index = require('./index-CwRW11hT.cjs');
16
+ var configuration = require('./configuration-Dt5lKW3P.cjs');
17
17
  var doctorReadiness = require('./doctorReadiness-Dl6yRQCy.cjs');
18
- var piRunnerArgs = require('./piRunnerArgs-BI8yQRBZ.cjs');
18
+ var piRunnerArgs = require('./piRunnerArgs-C3jZ1M6b.cjs');
19
19
  var detectCLI = require('./detectCLI-BuYR_Qxe.cjs');
20
+ var exitAfterFlush = require('./exitAfterFlush-DIT_sIxR.cjs');
20
21
  require('node:util');
21
22
  require('node:fs');
22
23
  require('node:path');
@@ -25,8 +26,8 @@ require('./authRelay-Dy1qU9td.cjs');
25
26
  require('node:crypto');
26
27
  require('tweetnacl');
27
28
  require('axios');
28
- require('./time-BAJRbB6U.cjs');
29
- require('./browser-D3uBFRQu.cjs');
29
+ require('./time-gPD_EmA-.cjs');
30
+ require('./browser-CLJWcodR.cjs');
30
31
  require('open');
31
32
  require('node:module');
32
33
  require('node:os');
@@ -34,7 +35,7 @@ require('cross-spawn');
34
35
  require('./projectPath-C3ioB4Bu.cjs');
35
36
  require('path');
36
37
  require('url');
37
- require('./acpSessionResume-OuYlLGxL.cjs');
38
+ require('./acpSessionResume-CZao6QEd.cjs');
38
39
  require('child_process');
39
40
  require('os');
40
41
  require('fs');
@@ -95,32 +96,32 @@ Conversation history is preserved on the server, but in-flight tool calls are in
95
96
  }
96
97
  process.exit(0);
97
98
  }
98
- await (await Promise.resolve().then(function () { return require('./doctor-CYe4d9kU.cjs'); }).then(function (n) { return n.doctor; })).runDoctorCommand();
99
+ await (await Promise.resolve().then(function () { return require('./doctor-B9lW1WlG.cjs'); }).then(function (n) { return n.doctor; })).runDoctorCommand();
99
100
  return;
100
101
  } else if (subcommand === "auth") {
101
102
  try {
102
- await (await Promise.resolve().then(function () { return require('./auth-CQtfznF0.cjs'); })).handleAuthCommand(args.slice(1));
103
+ await (await Promise.resolve().then(function () { return require('./auth-DKa4MsAi.cjs'); })).handleAuthCommand(args.slice(1));
103
104
  } catch (error) {
104
105
  failCommand(error);
105
106
  }
106
107
  return;
107
108
  } else if (subcommand === "connect") {
108
109
  try {
109
- await (await Promise.resolve().then(function () { return require('./connect-DurKwMEo.cjs'); })).handleConnectCommand(args.slice(1));
110
+ await (await Promise.resolve().then(function () { return require('./connect-NPDzIVC6.cjs'); })).handleConnectCommand(args.slice(1));
110
111
  } catch (error) {
111
112
  failCommand(error);
112
113
  }
113
114
  return;
114
115
  } else if (subcommand === "sandbox") {
115
116
  try {
116
- await (await Promise.resolve().then(function () { return require('./sandbox-C8zfNX-4.cjs'); })).handleSandboxCommand(args.slice(1));
117
+ await (await Promise.resolve().then(function () { return require('./sandbox-Bb5IMun3.cjs'); })).handleSandboxCommand(args.slice(1));
117
118
  } catch (error) {
118
119
  failCommand(error);
119
120
  }
120
121
  return;
121
122
  } else if (subcommand === "server") {
122
123
  try {
123
- await (await Promise.resolve().then(function () { return require('./server-I_CETZzn.cjs'); })).handleServerCommand(args.slice(1));
124
+ await (await Promise.resolve().then(function () { return require('./server-DHUzjApC.cjs'); })).handleServerCommand(args.slice(1));
124
125
  } catch (error) {
125
126
  failCommand(error);
126
127
  }
@@ -152,7 +153,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
152
153
  }
153
154
  } else if (subcommand === "agent-home") {
154
155
  try {
155
- const { parseAgentHomeArgs, runAgentHomeCommand } = await Promise.resolve().then(function () { return require('./agentHome-DsKHJ_Sf.cjs'); });
156
+ const { parseAgentHomeArgs, runAgentHomeCommand } = await Promise.resolve().then(function () { return require('./agentHome-fIUqT-pn.cjs'); });
156
157
  await runAgentHomeCommand(parseAgentHomeArgs(args.slice(1)));
157
158
  process.exit(0);
158
159
  } catch (error) {
@@ -161,7 +162,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
161
162
  }
162
163
  } else if (subcommand === "spawn") {
163
164
  try {
164
- const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-C0wZc03S.cjs'); });
165
+ const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-CgSJzzWS.cjs'); });
165
166
  await handleSpawnCommand(args.slice(1));
166
167
  } catch (error) {
167
168
  failCommand(error);
@@ -169,15 +170,15 @@ Conversation history is preserved on the server, but in-flight tool calls are in
169
170
  return;
170
171
  } else if ((subcommand === "session" || subcommand === "sessions") && args[1] === "provider") {
171
172
  try {
172
- const { handleSessionProviderCommand } = await Promise.resolve().then(function () { return require('./sessionProvider-DVtxrOuM.cjs'); });
173
+ const { handleSessionProviderCommand } = await Promise.resolve().then(function () { return require('./sessionProvider-VFbtUmMR.cjs'); });
173
174
  await handleSessionProviderCommand(args.slice(2));
174
175
  } catch (error) {
175
176
  failCommand(error);
176
177
  }
177
- process.exit(process.exitCode ?? 0);
178
+ return exitAfterFlush.exitAfterFlush(process.exitCode ?? 0);
178
179
  } else if (subcommand === "sessions") {
179
180
  try {
180
- const { handleSessionsCommand } = await Promise.resolve().then(function () { return require('./sessions-CTkBKs5U.cjs'); });
181
+ const { handleSessionsCommand } = await Promise.resolve().then(function () { return require('./sessions-CKJPWFgu.cjs'); });
181
182
  await handleSessionsCommand(args.slice(1));
182
183
  } catch (error) {
183
184
  failCommand(error);
@@ -185,7 +186,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
185
186
  return;
186
187
  } else if (subcommand === "send") {
187
188
  try {
188
- const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-C58kX4qz.cjs'); });
189
+ const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-BpiXPkDo.cjs'); });
189
190
  await handleSendCommand(args.slice(1));
190
191
  } catch (error) {
191
192
  failCommand(error);
@@ -193,14 +194,14 @@ Conversation history is preserved on the server, but in-flight tool calls are in
193
194
  return;
194
195
  } else if (subcommand === "resume") {
195
196
  try {
196
- await (await Promise.resolve().then(function () { return require('./handleResumeCommand-CLxsmAW0.cjs'); })).handleResumeCommand(args.slice(1));
197
+ await (await Promise.resolve().then(function () { return require('./handleResumeCommand-DXOuWr4p.cjs'); })).handleResumeCommand(args.slice(1));
197
198
  } catch (error) {
198
199
  failCommand(error);
199
200
  }
200
201
  return;
201
202
  } else if (subcommand === "codex") {
202
203
  try {
203
- await (await Promise.resolve().then(function () { return require('./codexCommand-1vFEA1KT.cjs'); })).handleCodexCommand(args.slice(1));
204
+ await (await Promise.resolve().then(function () { return require('./codexCommand-39kH99SJ.cjs'); })).handleCodexCommand(args.slice(1));
204
205
  } catch (error) {
205
206
  failCommand(error);
206
207
  }
@@ -279,9 +280,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
279
280
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
280
281
  const projectId = args[3];
281
282
  try {
282
- const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-C4xOL5bH.cjs'); });
283
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./persistence-CqtjFiD1.cjs'); }).then(function (n) { return n.persistence; });
284
- const { ApiClient } = await Promise.resolve().then(function () { return require('./api-BOqjYd5r.cjs'); }).then(function (n) { return n.api; });
283
+ const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-CeIzCsfj.cjs'); });
284
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./persistence-Bl5S3TLB.cjs'); }).then(function (n) { return n.persistence; });
285
+ const { ApiClient } = await Promise.resolve().then(function () { return require('./api-CXL6jp-p.cjs'); }).then(function (n) { return n.api; });
285
286
  let userEmail = void 0;
286
287
  try {
287
288
  const credentials = await readCredentialsForConfiguredRelay2();
@@ -312,7 +313,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
312
313
  }
313
314
  if (geminiSubcommand === "project" && args[2] === "get") {
314
315
  try {
315
- const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-C4xOL5bH.cjs'); });
316
+ const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-CeIzCsfj.cjs'); });
316
317
  const config = readGeminiLocalConfig();
317
318
  if (config.googleCloudProject) {
318
319
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -352,7 +353,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
352
353
  process.exit(0);
353
354
  }
354
355
  try {
355
- const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-BSOdU563.cjs'); });
356
+ const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-CXTeSOZp.cjs'); });
356
357
  let startedBy = void 0;
357
358
  for (let i = 1; i < args.length; i++) {
358
359
  if (args[i] === "--started-by") {
@@ -371,7 +372,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
371
372
  } else if (subcommand === "pi") {
372
373
  if (args[1] === "--terminal") {
373
374
  try {
374
- const { runPiTerminal } = await Promise.resolve().then(function () { return require('./piTerminal-BzcvLFsP.cjs'); });
375
+ const { runPiTerminal } = await Promise.resolve().then(function () { return require('./piTerminal-C3j1ca3x.cjs'); });
375
376
  process.exitCode = await runPiTerminal(args.slice(2));
376
377
  } catch (error) {
377
378
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -396,7 +397,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
396
397
  process.exit(1);
397
398
  }
398
399
  }
399
- const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-DG1kGjkF.cjs'); });
400
+ const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-f8oDidjV.cjs'); });
400
401
  const resolved = resolveAcpAgentConfig(["pi", ...parsed.passthrough]);
401
402
  const { credentials } = await auth.authAndSetupMachineIfNeeded();
402
403
  await ensureDaemonRunning.ensureDaemonRunning();
@@ -428,7 +429,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
428
429
  return;
429
430
  } else if (subcommand === "acp") {
430
431
  try {
431
- const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-DG1kGjkF.cjs'); });
432
+ const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-f8oDidjV.cjs'); });
432
433
  let startedBy = void 0;
433
434
  let verbose = false;
434
435
  const acpArgs = [];
@@ -464,7 +465,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
464
465
  return;
465
466
  } else if (subcommand === "openclaw") {
466
467
  try {
467
- const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-CYyFoGRZ.cjs'); });
468
+ const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-CH_9_RyZ.cjs'); });
468
469
  let startedBy = void 0;
469
470
  let verbose = false;
470
471
  let gatewayUrl;
@@ -500,14 +501,14 @@ Conversation history is preserved on the server, but in-flight tool calls are in
500
501
  } else if (subcommand === "logout") {
501
502
  console.log(chalk.yellow('Note: "very-happy logout" is deprecated. Use "very-happy auth logout" instead.\n'));
502
503
  try {
503
- await (await Promise.resolve().then(function () { return require('./auth-CQtfznF0.cjs'); })).handleAuthCommand(["logout"]);
504
+ await (await Promise.resolve().then(function () { return require('./auth-DKa4MsAi.cjs'); })).handleAuthCommand(["logout"]);
504
505
  } catch (error) {
505
506
  failCommand(error);
506
507
  }
507
508
  return;
508
509
  } else if (subcommand === "todo") {
509
510
  try {
510
- const { handleTodoCommand } = await Promise.resolve().then(function () { return require('./todo-DsR7WnQS.cjs'); });
511
+ const { handleTodoCommand } = await Promise.resolve().then(function () { return require('./todo-B1VeMk5A.cjs'); });
511
512
  await handleTodoCommand(args.slice(1));
512
513
  } catch (error) {
513
514
  console.error(JSON.stringify({ error: error instanceof Error ? error.message : "Todo command failed" }));
@@ -516,7 +517,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
516
517
  return;
517
518
  } else if (subcommand === "teams") {
518
519
  try {
519
- const { handleTeamsCommand } = await Promise.resolve().then(function () { return require('./teams-eUD7ymif.cjs'); });
520
+ const { handleTeamsCommand } = await Promise.resolve().then(function () { return require('./teams-ecFay4Gn.cjs'); });
520
521
  await handleTeamsCommand(args.slice(1));
521
522
  } catch (error) {
522
523
  console.error(error instanceof Error ? error.message : "Teams command failed");
@@ -525,7 +526,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
525
526
  return;
526
527
  } else if (subcommand === "auto") {
527
528
  try {
528
- const { handleAutoCommand } = await Promise.resolve().then(function () { return require('./auto-DXLdaX5O.cjs'); });
529
+ const { handleAutoCommand } = await Promise.resolve().then(function () { return require('./auto-C9Qohh0P.cjs'); });
529
530
  await handleAutoCommand(args.slice(1));
530
531
  } catch (error) {
531
532
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Automation command failed");
@@ -537,7 +538,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
537
538
  return;
538
539
  } else if (subcommand === "mcp" && (args.length === 1 || args.length === 2 && args[1] === "--terminal-tools")) {
539
540
  try {
540
- const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-2xF232hL.cjs'); });
541
+ const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-Du0MgR7e.cjs'); });
541
542
  await handleMcpCommand(args[1] === "--terminal-tools");
542
543
  } catch (error) {
543
544
  process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
@@ -547,7 +548,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
547
548
  return;
548
549
  } else if (subcommand === "panels" || subcommand === "attention") {
549
550
  try {
550
- const { handlePanelsCommand, handleAttentionCommand } = await Promise.resolve().then(function () { return require('./panels-DTlTsndU.cjs'); });
551
+ const { handlePanelsCommand, handleAttentionCommand } = await Promise.resolve().then(function () { return require('./panels-4DRBKHZP.cjs'); });
551
552
  if (subcommand === "panels") await handlePanelsCommand(args.slice(1));
552
553
  else await handleAttentionCommand(args.slice(1));
553
554
  } catch (error) {
@@ -640,13 +641,13 @@ Conversation history is preserved on the server, but in-flight tool calls are in
640
641
  }
641
642
  process.exit(0);
642
643
  } else if (daemonSubcommand === "start-sync") {
643
- await (await Promise.resolve().then(function () { return require('./run-DyyGMqND.cjs'); })).startDaemon();
644
+ await (await Promise.resolve().then(function () { return require('./run-rPqQwDi_.cjs'); })).startDaemon();
644
645
  process.exit(0);
645
646
  } else if (daemonSubcommand === "stop") {
646
647
  await controlClient.stopDaemon();
647
648
  process.exit(0);
648
649
  } else if (daemonSubcommand === "status") {
649
- await (await Promise.resolve().then(function () { return require('./doctor-CYe4d9kU.cjs'); }).then(function (n) { return n.doctor; })).runDoctorDaemon();
650
+ await (await Promise.resolve().then(function () { return require('./doctor-B9lW1WlG.cjs'); }).then(function (n) { return n.doctor; })).runDoctorDaemon();
650
651
  process.exit(0);
651
652
  } else if (daemonSubcommand === "logs") {
652
653
  const latest = await logger.getLatestDaemonLog();
@@ -658,14 +659,14 @@ Conversation history is preserved on the server, but in-flight tool calls are in
658
659
  process.exit(0);
659
660
  } else if (daemonSubcommand === "install") {
660
661
  try {
661
- await (await Promise.resolve().then(function () { return require('./install-cAYvHxXR.cjs'); })).install();
662
+ await (await Promise.resolve().then(function () { return require('./install-CXIL_FYx.cjs'); })).install();
662
663
  } catch (error) {
663
664
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
664
665
  process.exit(1);
665
666
  }
666
667
  } else if (daemonSubcommand === "uninstall") {
667
668
  try {
668
- await (await Promise.resolve().then(function () { return require('./uninstall-BtTc9hHa.cjs'); })).uninstall();
669
+ await (await Promise.resolve().then(function () { return require('./uninstall-CvIOpwB5.cjs'); })).uninstall();
669
670
  } catch (error) {
670
671
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
671
672
  process.exit(1);
@@ -842,7 +843,7 @@ ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
842
843
  } catch (e) {
843
844
  console.log(chalk.yellow("Could not retrieve claude help. Make sure claude is installed."));
844
845
  }
845
- process.exit(0);
846
+ return exitAfterFlush.exitAfterFlush(0);
846
847
  }
847
848
  if (showVersion) {
848
849
  console.log(`very-happy version: ${_package.packageJson.version}`);
@@ -854,7 +855,7 @@ ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
854
855
  await ensureDaemonRunning.ensureDaemonRunning();
855
856
  }
856
857
  try {
857
- const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-8JDaPoGQ.cjs'); });
858
+ const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-DM8gm8iu.cjs'); });
858
859
  await runClaude(credentials, options);
859
860
  } catch (error) {
860
861
  failCommand(error);
@@ -909,7 +910,7 @@ ${chalk.bold("Examples:")}
909
910
  }
910
911
  console.log(chalk.blue("\u{1F4F1} Sending push notification..."));
911
912
  try {
912
- const { ApiClient } = await Promise.resolve().then(function () { return require('./api-BOqjYd5r.cjs'); }).then(function (n) { return n.api; });
913
+ const { ApiClient } = await Promise.resolve().then(function () { return require('./api-CXL6jp-p.cjs'); }).then(function (n) { return n.api; });
913
914
  const api = await ApiClient.create(credentials);
914
915
  const notificationTitle = title || "Happy";
915
916
  api.push().sendToAllDevices(