very-happy-cli 0.2.180 → 0.2.182

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-B8Zi30Zh.mjs → AcpBackend-DLk3gMYH.mjs} +3 -3
  2. package/dist/{AcpBackend-DfRDtMcG.cjs → AcpBackend-JA5eu8Y0.cjs} +3 -3
  3. package/dist/{AcpSessionManager-CASKOnOj.cjs → AcpSessionManager-DjYidq4C.cjs} +1 -1
  4. package/dist/{AcpSessionManager-i8Rab0xT.mjs → AcpSessionManager-OrCww-Qv.mjs} +1 -1
  5. package/dist/{BasePermissionHandler-BlM_tfej.cjs → BasePermissionHandler-D3PMKLBS.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-26fKbRCm.mjs → BasePermissionHandler-u-neo-iN.mjs} +1 -1
  7. package/dist/{acpSessionResume-CR5pmgVo.cjs → acpSessionResume-Dxo8222T.cjs} +1 -1
  8. package/dist/{acpSessionResume-B9l54P-X.mjs → acpSessionResume-u2TwX5Jd.mjs} +1 -1
  9. package/dist/{agentHome-C7Sb7-Tz.cjs → agentHome-CP1tCBXz.cjs} +4 -4
  10. package/dist/{agentHome-CmGy0NWv.mjs → agentHome-D3hNrnoA.mjs} +4 -4
  11. package/dist/{api-DM7b1OKj.cjs → api-CZWcG7uh.cjs} +10 -10
  12. package/dist/{api-Hov8p7CA.mjs → api-C_YSQnsi.mjs} +10 -10
  13. package/dist/{apiMachine-CwGEhQDT.mjs → apiMachine-C_GA5Bm-.mjs} +59 -32
  14. package/dist/{apiMachine-DkGRj-Ai.cjs → apiMachine-DPGrED5C.cjs} +60 -33
  15. package/dist/{attachmentContent-CIn4iPEk.mjs → attachmentContent-Ckzyb1Uy.mjs} +2 -2
  16. package/dist/{attachmentContent-CEm13_gF.cjs → attachmentContent-I_dJIevE.cjs} +2 -2
  17. package/dist/{auth-Dawj7pP5.cjs → auth-BKnE7uv7.cjs} +8 -8
  18. package/dist/{auth-BG1DY0gj.mjs → auth-CGgpiJ5-.mjs} +5 -5
  19. package/dist/{auth-rggxMpEE.mjs → auth-DOXMI-xp.mjs} +8 -8
  20. package/dist/{auth-CBXnm-Mj.cjs → auth-Lw_utSMV.cjs} +5 -5
  21. package/dist/{auto-CbYOfoPS.cjs → auto-CIgFHIyQ.cjs} +18 -18
  22. package/dist/{auto-CXXLXGeL.mjs → auto-Z56mMZnH.mjs} +18 -18
  23. package/dist/{bootstrap-Dt5I1SOl.mjs → bootstrap-D3vlOROj.mjs} +2 -2
  24. package/dist/{bootstrap-DoA7okld.cjs → bootstrap-DsXp74wv.cjs} +2 -2
  25. package/dist/{browser-DUNetFT4.mjs → browser-CUxGoATV.mjs} +1 -1
  26. package/dist/{browser-DZ6qRtfH.cjs → browser-CZlA9AkO.cjs} +1 -1
  27. package/dist/{claudeLocal-OHWQigCl.mjs → claudeLocal-FnTUgwCi.mjs} +6 -6
  28. package/dist/{claudeLocal--DNyMOSv.cjs → claudeLocal-oELvwiZL.cjs} +6 -6
  29. package/dist/{claudeLocalLauncher-BStvfa7M.mjs → claudeLocalLauncher-CO5YHCzi.mjs} +11 -11
  30. package/dist/{claudeLocalLauncher-BhvPbcyH.cjs → claudeLocalLauncher-QsVXEVdE.cjs} +11 -11
  31. package/dist/{claudeSessionFork-Be16vzGc.cjs → claudeSessionFork-BA4GE5AL.cjs} +1 -1
  32. package/dist/{claudeSessionFork-GAVWhiKG.mjs → claudeSessionFork-Cspr6QW0.mjs} +1 -1
  33. package/dist/{client-D4uPb1uu.mjs → client-BGfmSbWc.mjs} +44 -9
  34. package/dist/{client-BWjaHKtj.cjs → client-CDuW4MS9.cjs} +2 -2
  35. package/dist/{client-CnB7kRCT.mjs → client-Ctbw05Xj.mjs} +2 -2
  36. package/dist/{client-DJplzPjD.cjs → client-DK8CzUry.cjs} +2 -2
  37. package/dist/{client-Ca5Pcgy_.mjs → client-o-meK7-a.mjs} +2 -2
  38. package/dist/{client-D_loZ9IK.cjs → client-xnWiHqdb.cjs} +44 -8
  39. package/dist/codex/happyMcpStdioBridge.cjs +21 -20
  40. package/dist/codex/happyMcpStdioBridge.mjs +21 -20
  41. package/dist/{codexAppServerClient-CO4G6OS4.mjs → codexAppServerClient-BlsOZLul.mjs} +3 -3
  42. package/dist/{codexAppServerClient-PE-12AsW.cjs → codexAppServerClient-DhNDTU_i.cjs} +3 -3
  43. package/dist/{codexCommand-B_xUH79E.mjs → codexCommand-BGx5NMQR.mjs} +49 -46
  44. package/dist/{codexCommand-BNoD1t1C.cjs → codexCommand-DJDPfpIs.cjs} +49 -46
  45. package/dist/{codexTermination-Dx48ma6e.mjs → codexTermination-CVhhwHZU.mjs} +1 -1
  46. package/dist/{codexTermination-BmBbizFK.cjs → codexTermination-CqPMuokw.cjs} +1 -1
  47. package/dist/{config-CtwEUxUP.cjs → config-CHpxzXBL.cjs} +3 -3
  48. package/dist/{config-DSu0Blos.mjs → config-CWAe08-Q.mjs} +3 -3
  49. package/dist/{configuration-CYO-kPOS.cjs → configuration-B-CugKJ3.cjs} +1 -1
  50. package/dist/{configuration-PxzEJumr.mjs → configuration-YXw_Dcsb.mjs} +1 -1
  51. package/dist/{connect-Dq7wndzR.cjs → connect-BmHvMXH2.cjs} +13 -13
  52. package/dist/{connect-BQrg3TB6.mjs → connect-CPeJXHha.mjs} +13 -13
  53. package/dist/{context-6TP-iz_c.cjs → context-BtIVqHI5.cjs} +1 -1
  54. package/dist/{context-CJGRRGWW.mjs → context-Drzs_Z38.mjs} +1 -1
  55. package/dist/{controlClient-DoeYovwP.mjs → controlClient-BL4hb4l3.mjs} +3 -3
  56. package/dist/{controlClient-Bqv5v5OM.cjs → controlClient-D0kGwKYx.cjs} +3 -3
  57. package/dist/{createSessionMetadata-DDIChCx8.mjs → createSessionMetadata-DvGDsnsn.mjs} +2 -2
  58. package/dist/{createSessionMetadata-xz767pcG.cjs → createSessionMetadata-L499emJn.cjs} +2 -2
  59. package/dist/{defaultPermissionMode-i5KzdK09.mjs → defaultPermissionMode-BLfxu-Yz.mjs} +2 -2
  60. package/dist/{defaultPermissionMode-PkZGsQDk.cjs → defaultPermissionMode-MXpZlXud.cjs} +2 -2
  61. package/dist/{deterministicJson-CTEJDqtS.mjs → deterministicJson-B_UAbmQ4.mjs} +87 -24
  62. package/dist/{deterministicJson-xqA6DaOm.cjs → deterministicJson-CfLkBRvU.cjs} +87 -22
  63. package/dist/{doctor-BrgSlfXn.cjs → doctor-DMvlzmnE.cjs} +8 -7
  64. package/dist/{doctor-IctjVh9T.mjs → doctor-bKScPtZu.mjs} +8 -8
  65. package/dist/{downloadTarget-CEb9che-.cjs → downloadTarget-D33BFvew.cjs} +6 -6
  66. package/dist/{downloadTarget-jbOz1egC.mjs → downloadTarget-J9j37eFG.mjs} +6 -6
  67. package/dist/{ensureDaemonRunning-D-HyjGIX.cjs → ensureDaemonRunning-2IqWROJp.cjs} +5 -5
  68. package/dist/{ensureDaemonRunning-b1e8LCSM.mjs → ensureDaemonRunning-DLvwhpNg.mjs} +5 -5
  69. package/dist/fileStore-5qpetZS0.mjs +146 -0
  70. package/dist/fileStore-7qhnbs6N.cjs +152 -0
  71. package/dist/fsMkdir-0K3yENml.cjs +56 -0
  72. package/dist/fsMkdir-DumgLTzR.mjs +53 -0
  73. package/dist/{handleResumeCommand-DpaZvm2c.mjs → handleResumeCommand-CjtjQ_I7.mjs} +5 -5
  74. package/dist/{handleResumeCommand-BvWVuRwH.cjs → handleResumeCommand-Dp2Y-p6V.cjs} +5 -5
  75. package/dist/{index-C6Vn5Eac.mjs → index-BI0h2Zks.mjs} +54 -6
  76. package/dist/{index-CMf5VbzG.mjs → index-BOT0Tg5E.mjs} +4 -4
  77. package/dist/{index-C64Ufj4D.cjs → index-B_aNaW9w.cjs} +4 -4
  78. package/dist/{index-F2UejqYs.cjs → index-CZC7egJA.cjs} +3 -3
  79. package/dist/{index-Bsvbgh9e.mjs → index-Cllzqoes.mjs} +4 -4
  80. package/dist/{index-B2p2Mut7.cjs → index-DYVIbhAJ.cjs} +78 -60
  81. package/dist/{index-wCbtF4BK.mjs → index-D_LvOWUN.mjs} +3 -3
  82. package/dist/{index-DmTlDRSL.cjs → index-DymOv3kK.cjs} +4 -4
  83. package/dist/{index-BUNnpGFF.mjs → index-kA46KMxN.mjs} +79 -61
  84. package/dist/{index-Dv0Q48P3.cjs → index-oh8XEozJ.cjs} +57 -6
  85. package/dist/index.cjs +2 -2
  86. package/dist/index.mjs +2 -2
  87. package/dist/{install-C0ANcEAW.cjs → install-BAa_Xmof.cjs} +3 -3
  88. package/dist/{install-CdzSV7qO.mjs → install-C46mkr9a.mjs} +3 -3
  89. package/dist/{install-BX3lv3NO.mjs → install-D0inLCv-.mjs} +1 -1
  90. package/dist/{install-BXvf2E3o.cjs → install-D2NCbeJ-.cjs} +1 -1
  91. package/dist/lib.cjs +12 -12
  92. package/dist/lib.d.cts +40 -1
  93. package/dist/lib.d.mts +40 -1
  94. package/dist/lib.mjs +12 -12
  95. package/dist/{lidState-bBrmaQd2.mjs → lidState-D8Iuvjgl.mjs} +1 -1
  96. package/dist/{lidState-DWGnm2H4.cjs → lidState-DcPvwniz.cjs} +1 -1
  97. package/dist/{localHappyAgentAuth-Dn1jYDpt.mjs → localHappyAgentAuth-D3rQDRd9.mjs} +1 -1
  98. package/dist/{localHappyAgentAuth-DZHQnIW9.cjs → localHappyAgentAuth-SD6GM97y.cjs} +1 -1
  99. package/dist/{logger-CphW5nUE.cjs → logger-DK1ytCz6.cjs} +2 -2
  100. package/dist/{logger-BUngm5Xg.mjs → logger-DpqihN1f.mjs} +2 -2
  101. package/dist/{machineMetadata-BXN_bKU3.mjs → machineMetadata-D4E3qoIG.mjs} +13 -4
  102. package/dist/{machineMetadata-BQm9YTcI.cjs → machineMetadata-IJc6_iyx.cjs} +13 -3
  103. package/dist/{main-DGkdYfEq.mjs → main-CpUmw7hm.mjs} +45 -45
  104. package/dist/{main-B2UV51nK.cjs → main-DUXh2rgW.cjs} +45 -45
  105. package/dist/{mcp-CbTtbs0f.mjs → mcp-66g1TJ8P.mjs} +17 -15
  106. package/dist/{mcp-BFvAEIRz.cjs → mcp-D5f3Vd-z.cjs} +17 -15
  107. package/dist/{mirrorProtocol-HKPivs5o.cjs → mirrorProtocol-DkWOcZh9.cjs} +16 -153
  108. package/dist/{mirrorProtocol-BR4luBC0.mjs → mirrorProtocol-bsCUcaCY.mjs} +19 -151
  109. package/dist/{package-KhLqBDX9.cjs → package-BfeqAzyJ.cjs} +8 -8
  110. package/dist/{package-7Ld1YMhh.mjs → package-CKj8zndE.mjs} +8 -8
  111. package/dist/{panels-Njf6GelF.cjs → panels-2PXsw9-d.cjs} +5 -5
  112. package/dist/{panels-C7IVqpJk.mjs → panels-r8LmaBs6.mjs} +5 -5
  113. package/dist/{peerTools-DQNlrcqM.cjs → peerTools-BVp1z0T_.cjs} +5 -5
  114. package/dist/{peerTools-BOlDRyhi.mjs → peerTools-D_id4d41.mjs} +5 -5
  115. package/dist/{persistence-9BMYspxG.cjs → persistence-BdpwWXKh.cjs} +2 -2
  116. package/dist/{persistence-BFUOHW5h.mjs → persistence-jOEuAFTS.mjs} +2 -2
  117. package/dist/pi-CqyoZMjI.mjs +380 -0
  118. package/dist/pi-DlsrPCTa.cjs +400 -0
  119. package/dist/{piRunnerArgs-H2pgpA5z.mjs → piRunnerArgs-68I5F_M1.mjs} +1 -1
  120. package/dist/{piRunnerArgs-DGaq6VYM.cjs → piRunnerArgs-vxCHKnSA.cjs} +1 -1
  121. package/dist/{piRuntime-CT5xv_3h.cjs → piRuntime-C3Dg5uni.cjs} +2 -2
  122. package/dist/{piRuntime-CdN0JAsa.mjs → piRuntime-DgLIard1.mjs} +2 -2
  123. package/dist/{piTerminal-0FBtXTHK.cjs → piTerminal-C135BcLP.cjs} +20 -18
  124. package/dist/{piTerminal-C4m9YXAV.mjs → piTerminal-DJL0w-uA.mjs} +20 -18
  125. package/dist/{prompt-lgF9IE82.cjs → prompt-Bof2aQkI.cjs} +7 -2
  126. package/dist/{prompt-BOouDaTM.mjs → prompt-QHuFx9j6.mjs} +7 -2
  127. package/dist/{pushNotifications-DCiBEVeC.mjs → pushNotifications-CMmRsbKv.mjs} +12 -4
  128. package/dist/{pushNotifications-DI92havG.cjs → pushNotifications-CyQVDThC.cjs} +12 -4
  129. package/dist/{query-BETKBrnz.cjs → query-CK--1fbL.cjs} +1 -1
  130. package/dist/{query-ywZbQUzR.mjs → query-CPXnDURZ.mjs} +1 -1
  131. package/dist/{rateLimitWindows-BkfuUB1a.mjs → rateLimitWindows-Cqa4AGaB.mjs} +1 -1
  132. package/dist/{rateLimitWindows-YRIYVdo4.cjs → rateLimitWindows-DJxnNw-X.cjs} +1 -1
  133. package/dist/{registerCommonHandlers-C7a_dUWs.cjs → registerCommonHandlers-DbNoM39q.cjs} +2 -2
  134. package/dist/{registerCommonHandlers-CTkCvjxt.mjs → registerCommonHandlers-K8dICQO2.mjs} +2 -2
  135. package/dist/{registerKillSessionHandler-CIsvBrVe.cjs → registerKillSessionHandler-DiS_go8d.cjs} +6 -6
  136. package/dist/{registerKillSessionHandler-CaqqRYq6.mjs → registerKillSessionHandler-O1iriOMO.mjs} +6 -6
  137. package/dist/{remoteSessionClient-PP-mOKmw.mjs → remoteSessionClient-BlURPulk.mjs} +5 -5
  138. package/dist/{remoteSessionClient-D843fkzL.cjs → remoteSessionClient-CtV9mDko.cjs} +5 -5
  139. package/dist/{reportProgressTool-14AXr959.cjs → reportProgressTool-DlD_xjzU.cjs} +4 -4
  140. package/dist/{reportProgressTool-ZOCNjWHr.mjs → reportProgressTool-nCExrHZH.mjs} +4 -4
  141. package/dist/{resources-CvIlkzpP.cjs → resources-BPyN59Iv.cjs} +23 -2
  142. package/dist/{resources-y9jfyO-_.mjs → resources-CH1iP6Cv.mjs} +22 -3
  143. package/dist/{run-CAOCYYfT.cjs → run-BBNrcCfI.cjs} +621 -594
  144. package/dist/{run-Dajw2E5j.mjs → run-drtwHYkO.mjs} +557 -530
  145. package/dist/{runClaude-CRRKt-tm.cjs → runClaude-B3KSeby4.cjs} +23 -22
  146. package/dist/{runClaude-C6oxWYbp.mjs → runClaude-CFp27Tyi.mjs} +23 -22
  147. package/dist/{runClaudeDeps-B1ysqTvx.cjs → runClaudeDeps-C_C9TCI0.cjs} +43 -41
  148. package/dist/{runClaudeDeps-BcZ68cX3.mjs → runClaudeDeps-DMcv93lA.mjs} +48 -46
  149. package/dist/{runGemini-D7yKc4wD.mjs → runGemini-Bc6SY-hd.mjs} +40 -37
  150. package/dist/{runGemini-DtKFXqf-.cjs → runGemini-DzdSBAr9.cjs} +40 -37
  151. package/dist/{runOpenClaw-C8ilyLP9.mjs → runOpenClaw-DI0qMlgF.mjs} +19 -18
  152. package/dist/{runOpenClaw-Cq29mryb.cjs → runOpenClaw-DN6rEVqC.cjs} +19 -18
  153. package/dist/{sandbox-gIj-EuF4.cjs → sandbox-DtttPBMA.cjs} +4 -4
  154. package/dist/{sandbox-CbCutma4.mjs → sandbox-v-ffe8LR.mjs} +4 -4
  155. package/dist/{selfCheck-BTGBVthv.cjs → selfCheck-B-yy6bW3.cjs} +36 -36
  156. package/dist/selfCheck-BDfTwxqB.mjs +85 -0
  157. package/dist/{send-YZRMQvMJ.mjs → send-DpBwSZuj.mjs} +8 -8
  158. package/dist/{send-CZf5lLw_.cjs → send-ShzXYPRu.cjs} +8 -8
  159. package/dist/{server-CknFq6xG.cjs → server-CEzKrfKj.cjs} +6 -6
  160. package/dist/{server-BqwXRzFZ.mjs → server-DScgJXxa.mjs} +4 -4
  161. package/dist/{sessionLock-nBXdJxJm.mjs → sessionLock-B6K4SBZD.mjs} +3 -3
  162. package/dist/{sessionLock-DRZUcKHT.cjs → sessionLock-Dc0fadGG.cjs} +3 -3
  163. package/dist/{sessionOps-C58iDeD5.mjs → sessionOps-D0BPWPoh.mjs} +4 -4
  164. package/dist/{sessionOps-BrGiU9-s.cjs → sessionOps-Dx7wARjI.cjs} +4 -4
  165. package/dist/{sessionScanner-Bm57LEXe.mjs → sessionScanner-9Fpgaxtf.mjs} +3 -3
  166. package/dist/{sessionScanner-CaO8bLaG.cjs → sessionScanner-BJ35TVG6.cjs} +3 -3
  167. package/dist/{sessions-BXyBHo8n.mjs → sessions-CFtDlyZd.mjs} +10 -10
  168. package/dist/{sessions-uzqPCc37.cjs → sessions-TZGGAry1.cjs} +10 -10
  169. package/dist/{setupOfflineReconnection-DvvVX3TB.cjs → setupOfflineReconnection-B1GsVA8P.cjs} +2 -2
  170. package/dist/{setupOfflineReconnection-1Qlek3wl.mjs → setupOfflineReconnection-Biaus-0T.mjs} +2 -2
  171. package/dist/{spawn-DBkodJEO.cjs → spawn-BRTuypQ2.cjs} +14 -14
  172. package/dist/{spawn-vn93PhYL.mjs → spawn-CsoQ-Ecz.mjs} +14 -14
  173. package/dist/{spawnAgents-DLNMlhWJ.cjs → spawnAgents-CG211IW7.cjs} +1 -1
  174. package/dist/{spawnAgents-CgPMWexP.mjs → spawnAgents-Co-SLcx-.mjs} +1 -1
  175. package/dist/{spawnHappyCLI-BjFZc_7V.mjs → spawnHappyCLI-D1doCjkZ.mjs} +1 -1
  176. package/dist/{spawnHappyCLI-DnUZv0X2.cjs → spawnHappyCLI-D47kX6jg.cjs} +1 -1
  177. package/dist/{specialCommands-BRufxlqe.cjs → specialCommands-Ch-Gvy-i.cjs} +3 -3
  178. package/dist/{specialCommands-D3ND9bdg.mjs → specialCommands-xSmqT_Fu.mjs} +3 -3
  179. package/dist/{startFileWatcher-DXJ7yB5v.mjs → startFileWatcher-CCl2fFxT.mjs} +1 -1
  180. package/dist/{startFileWatcher-D9cYzZOq.cjs → startFileWatcher-gKQTstR6.cjs} +1 -1
  181. package/dist/{startupSessionCreate-kdr3m1uX.cjs → startupSessionCreate-BXqoUX30.cjs} +1 -1
  182. package/dist/{startupSessionCreate-uZ6BM0ty.mjs → startupSessionCreate-DlZc8yPl.mjs} +1 -1
  183. package/dist/{streamRelay-Dy6amlzx.cjs → streamRelay-B-J-4St1.cjs} +1 -1
  184. package/dist/{streamRelay-DnMCMMfV.mjs → streamRelay-DnJXsi36.mjs} +1 -1
  185. package/dist/{sync-BvVhDO40.mjs → sync-BbjMC3sR.mjs} +1 -1
  186. package/dist/{sync-Bn-idAoy.cjs → sync-BxMdnZzz.cjs} +1 -1
  187. package/dist/{systemPrompt-DlyEk35T.cjs → systemPrompt-C2KojRmK.cjs} +3 -3
  188. package/dist/{systemPrompt-CIZcJuJF.mjs → systemPrompt-CmSDAoIx.mjs} +3 -3
  189. package/dist/{teams-BLeRpDxv.cjs → teams-DESdalox.cjs} +13 -10
  190. package/dist/{teams-DLY3B5yi.mjs → teams-lRy1MS0Z.mjs} +13 -10
  191. package/dist/{time-D3ETL7Jb.mjs → time-Cfknl7xG.mjs} +1 -1
  192. package/dist/{time-Cjv0zxQO.cjs → time-DNLeIRgR.cjs} +1 -1
  193. package/dist/{titleGenerator-Uzbd4utr.mjs → titleGenerator-ClnMSzwC.mjs} +1 -1
  194. package/dist/{titleGenerator-Cgp5ihFb.cjs → titleGenerator-YNutaU88.cjs} +2 -2
  195. package/dist/{todo-pOMcEECE.cjs → todo-DS75Mboz.cjs} +6 -6
  196. package/dist/{todo-C9Ga-oEM.mjs → todo-DZbK5POc.mjs} +6 -6
  197. package/dist/{tools-Cho7iIWf.mjs → tools-BgdU0dWp.mjs} +3 -3
  198. package/dist/{tools-BL7Byl_x.cjs → tools-ClYcb1YQ.cjs} +3 -3
  199. package/dist/{uninstall-CbayEVoV.cjs → uninstall-Di1vPBLV.cjs} +3 -3
  200. package/dist/{uninstall-CvZHVY9C.mjs → uninstall-bXenFevR.mjs} +3 -3
  201. package/package.json +8 -8
  202. package/dist/selfCheck-Smt-5Xiq.mjs +0 -85
@@ -1,21 +1,21 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var logger = require('./logger-CphW5nUE.cjs');
5
- var persistence = require('./persistence-9BMYspxG.cjs');
6
- var auth = require('./auth-CBXnm-Mj.cjs');
7
- var _package = require('./package-KhLqBDX9.cjs');
4
+ var logger = require('./logger-DK1ytCz6.cjs');
5
+ var persistence = require('./persistence-BdpwWXKh.cjs');
6
+ var auth = require('./auth-Lw_utSMV.cjs');
7
+ var _package = require('./package-BfeqAzyJ.cjs');
8
8
  var z = require('zod');
9
- var controlClient = require('./controlClient-Bqv5v5OM.cjs');
9
+ var controlClient = require('./controlClient-D0kGwKYx.cjs');
10
10
  var daemonSupervisor = require('./daemonSupervisor-B-SPSqhs.cjs');
11
- var spawnHappyCLI = require('./spawnHappyCLI-DnUZv0X2.cjs');
11
+ var spawnHappyCLI = require('./spawnHappyCLI-D47kX6jg.cjs');
12
12
  var node_child_process = require('node:child_process');
13
- var ensureDaemonRunning = require('./ensureDaemonRunning-D-HyjGIX.cjs');
13
+ var ensureDaemonRunning = require('./ensureDaemonRunning-2IqWROJp.cjs');
14
14
  var startupPlan = require('./startupPlan-BLMbfQIH.cjs');
15
- var index = require('./index-F2UejqYs.cjs');
16
- var configuration = require('./configuration-CYO-kPOS.cjs');
15
+ var index = require('./index-CZC7egJA.cjs');
16
+ var configuration = require('./configuration-B-CugKJ3.cjs');
17
17
  var doctorReadiness = require('./doctorReadiness-Dl6yRQCy.cjs');
18
- var piRunnerArgs = require('./piRunnerArgs-DGaq6VYM.cjs');
18
+ var piRunnerArgs = require('./piRunnerArgs-vxCHKnSA.cjs');
19
19
  var detectCLI = require('./detectCLI-BuYR_Qxe.cjs');
20
20
  require('node:util');
21
21
  require('node:fs');
@@ -25,8 +25,8 @@ require('./authRelay-Dy1qU9td.cjs');
25
25
  require('node:crypto');
26
26
  require('tweetnacl');
27
27
  require('axios');
28
- require('./time-Cjv0zxQO.cjs');
29
- require('./browser-DZ6qRtfH.cjs');
28
+ require('./time-DNLeIRgR.cjs');
29
+ require('./browser-CZlA9AkO.cjs');
30
30
  require('open');
31
31
  require('cross-spawn');
32
32
  require('./projectPath-C3ioB4Bu.cjs');
@@ -34,7 +34,7 @@ require('path');
34
34
  require('url');
35
35
  require('node:module');
36
36
  require('node:os');
37
- require('./acpSessionResume-CR5pmgVo.cjs');
37
+ require('./acpSessionResume-Dxo8222T.cjs');
38
38
  require('child_process');
39
39
  require('os');
40
40
  require('fs');
@@ -95,32 +95,32 @@ Conversation history is preserved on the server, but in-flight tool calls are in
95
95
  }
96
96
  process.exit(0);
97
97
  }
98
- await (await Promise.resolve().then(function () { return require('./doctor-BrgSlfXn.cjs'); }).then(function (n) { return n.doctor; })).runDoctorCommand();
98
+ await (await Promise.resolve().then(function () { return require('./doctor-DMvlzmnE.cjs'); }).then(function (n) { return n.doctor; })).runDoctorCommand();
99
99
  return;
100
100
  } else if (subcommand === "auth") {
101
101
  try {
102
- await (await Promise.resolve().then(function () { return require('./auth-Dawj7pP5.cjs'); })).handleAuthCommand(args.slice(1));
102
+ await (await Promise.resolve().then(function () { return require('./auth-BKnE7uv7.cjs'); })).handleAuthCommand(args.slice(1));
103
103
  } catch (error) {
104
104
  failCommand(error);
105
105
  }
106
106
  return;
107
107
  } else if (subcommand === "connect") {
108
108
  try {
109
- await (await Promise.resolve().then(function () { return require('./connect-Dq7wndzR.cjs'); })).handleConnectCommand(args.slice(1));
109
+ await (await Promise.resolve().then(function () { return require('./connect-BmHvMXH2.cjs'); })).handleConnectCommand(args.slice(1));
110
110
  } catch (error) {
111
111
  failCommand(error);
112
112
  }
113
113
  return;
114
114
  } else if (subcommand === "sandbox") {
115
115
  try {
116
- await (await Promise.resolve().then(function () { return require('./sandbox-gIj-EuF4.cjs'); })).handleSandboxCommand(args.slice(1));
116
+ await (await Promise.resolve().then(function () { return require('./sandbox-DtttPBMA.cjs'); })).handleSandboxCommand(args.slice(1));
117
117
  } catch (error) {
118
118
  failCommand(error);
119
119
  }
120
120
  return;
121
121
  } else if (subcommand === "server") {
122
122
  try {
123
- await (await Promise.resolve().then(function () { return require('./server-CknFq6xG.cjs'); })).handleServerCommand(args.slice(1));
123
+ await (await Promise.resolve().then(function () { return require('./server-CEzKrfKj.cjs'); })).handleServerCommand(args.slice(1));
124
124
  } catch (error) {
125
125
  failCommand(error);
126
126
  }
@@ -152,7 +152,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
152
152
  }
153
153
  } else if (subcommand === "agent-home") {
154
154
  try {
155
- const { parseAgentHomeArgs, runAgentHomeCommand } = await Promise.resolve().then(function () { return require('./agentHome-C7Sb7-Tz.cjs'); });
155
+ const { parseAgentHomeArgs, runAgentHomeCommand } = await Promise.resolve().then(function () { return require('./agentHome-CP1tCBXz.cjs'); });
156
156
  await runAgentHomeCommand(parseAgentHomeArgs(args.slice(1)));
157
157
  process.exit(0);
158
158
  } catch (error) {
@@ -161,7 +161,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
161
161
  }
162
162
  } else if (subcommand === "spawn") {
163
163
  try {
164
- const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-DBkodJEO.cjs'); });
164
+ const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-BRTuypQ2.cjs'); });
165
165
  await handleSpawnCommand(args.slice(1));
166
166
  } catch (error) {
167
167
  failCommand(error);
@@ -169,7 +169,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
169
169
  return;
170
170
  } else if (subcommand === "sessions") {
171
171
  try {
172
- const { handleSessionsCommand } = await Promise.resolve().then(function () { return require('./sessions-uzqPCc37.cjs'); });
172
+ const { handleSessionsCommand } = await Promise.resolve().then(function () { return require('./sessions-TZGGAry1.cjs'); });
173
173
  await handleSessionsCommand(args.slice(1));
174
174
  } catch (error) {
175
175
  failCommand(error);
@@ -177,7 +177,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
177
177
  return;
178
178
  } else if (subcommand === "send") {
179
179
  try {
180
- const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-CZf5lLw_.cjs'); });
180
+ const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-ShzXYPRu.cjs'); });
181
181
  await handleSendCommand(args.slice(1));
182
182
  } catch (error) {
183
183
  failCommand(error);
@@ -185,14 +185,14 @@ Conversation history is preserved on the server, but in-flight tool calls are in
185
185
  return;
186
186
  } else if (subcommand === "resume") {
187
187
  try {
188
- await (await Promise.resolve().then(function () { return require('./handleResumeCommand-BvWVuRwH.cjs'); })).handleResumeCommand(args.slice(1));
188
+ await (await Promise.resolve().then(function () { return require('./handleResumeCommand-Dp2Y-p6V.cjs'); })).handleResumeCommand(args.slice(1));
189
189
  } catch (error) {
190
190
  failCommand(error);
191
191
  }
192
192
  return;
193
193
  } else if (subcommand === "codex") {
194
194
  try {
195
- await (await Promise.resolve().then(function () { return require('./codexCommand-BNoD1t1C.cjs'); })).handleCodexCommand(args.slice(1));
195
+ await (await Promise.resolve().then(function () { return require('./codexCommand-DJDPfpIs.cjs'); })).handleCodexCommand(args.slice(1));
196
196
  } catch (error) {
197
197
  failCommand(error);
198
198
  }
@@ -271,9 +271,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
271
271
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
272
272
  const projectId = args[3];
273
273
  try {
274
- const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-CtwEUxUP.cjs'); });
275
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./persistence-9BMYspxG.cjs'); }).then(function (n) { return n.persistence; });
276
- const { ApiClient } = await Promise.resolve().then(function () { return require('./api-DM7b1OKj.cjs'); }).then(function (n) { return n.api; });
274
+ const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-CHpxzXBL.cjs'); });
275
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./persistence-BdpwWXKh.cjs'); }).then(function (n) { return n.persistence; });
276
+ const { ApiClient } = await Promise.resolve().then(function () { return require('./api-CZWcG7uh.cjs'); }).then(function (n) { return n.api; });
277
277
  let userEmail = void 0;
278
278
  try {
279
279
  const credentials = await readCredentialsForConfiguredRelay2();
@@ -304,7 +304,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
304
304
  }
305
305
  if (geminiSubcommand === "project" && args[2] === "get") {
306
306
  try {
307
- const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-CtwEUxUP.cjs'); });
307
+ const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-CHpxzXBL.cjs'); });
308
308
  const config = readGeminiLocalConfig();
309
309
  if (config.googleCloudProject) {
310
310
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -344,7 +344,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
344
344
  process.exit(0);
345
345
  }
346
346
  try {
347
- const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-DtKFXqf-.cjs'); });
347
+ const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-DzdSBAr9.cjs'); });
348
348
  let startedBy = void 0;
349
349
  for (let i = 1; i < args.length; i++) {
350
350
  if (args[i] === "--started-by") {
@@ -363,7 +363,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
363
363
  } else if (subcommand === "pi") {
364
364
  if (args[1] === "--terminal") {
365
365
  try {
366
- const { runPiTerminal } = await Promise.resolve().then(function () { return require('./piTerminal-0FBtXTHK.cjs'); });
366
+ const { runPiTerminal } = await Promise.resolve().then(function () { return require('./piTerminal-C135BcLP.cjs'); });
367
367
  process.exitCode = await runPiTerminal(args.slice(2));
368
368
  } catch (error) {
369
369
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -388,7 +388,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
388
388
  process.exit(1);
389
389
  }
390
390
  }
391
- const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-B2p2Mut7.cjs'); });
391
+ const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-DYVIbhAJ.cjs'); });
392
392
  const resolved = resolveAcpAgentConfig(["pi", ...parsed.passthrough]);
393
393
  const { credentials } = await auth.authAndSetupMachineIfNeeded();
394
394
  await ensureDaemonRunning.ensureDaemonRunning();
@@ -420,7 +420,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
420
420
  return;
421
421
  } else if (subcommand === "acp") {
422
422
  try {
423
- const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-B2p2Mut7.cjs'); });
423
+ const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-DYVIbhAJ.cjs'); });
424
424
  let startedBy = void 0;
425
425
  let verbose = false;
426
426
  const acpArgs = [];
@@ -456,7 +456,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
456
456
  return;
457
457
  } else if (subcommand === "openclaw") {
458
458
  try {
459
- const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-Cq29mryb.cjs'); });
459
+ const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-DN6rEVqC.cjs'); });
460
460
  let startedBy = void 0;
461
461
  let verbose = false;
462
462
  let gatewayUrl;
@@ -492,14 +492,14 @@ Conversation history is preserved on the server, but in-flight tool calls are in
492
492
  } else if (subcommand === "logout") {
493
493
  console.log(chalk.yellow('Note: "very-happy logout" is deprecated. Use "very-happy auth logout" instead.\n'));
494
494
  try {
495
- await (await Promise.resolve().then(function () { return require('./auth-Dawj7pP5.cjs'); })).handleAuthCommand(["logout"]);
495
+ await (await Promise.resolve().then(function () { return require('./auth-BKnE7uv7.cjs'); })).handleAuthCommand(["logout"]);
496
496
  } catch (error) {
497
497
  failCommand(error);
498
498
  }
499
499
  return;
500
500
  } else if (subcommand === "todo") {
501
501
  try {
502
- const { handleTodoCommand } = await Promise.resolve().then(function () { return require('./todo-pOMcEECE.cjs'); });
502
+ const { handleTodoCommand } = await Promise.resolve().then(function () { return require('./todo-DS75Mboz.cjs'); });
503
503
  await handleTodoCommand(args.slice(1));
504
504
  } catch (error) {
505
505
  console.error(JSON.stringify({ error: error instanceof Error ? error.message : "Todo command failed" }));
@@ -508,7 +508,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
508
508
  return;
509
509
  } else if (subcommand === "teams") {
510
510
  try {
511
- const { handleTeamsCommand } = await Promise.resolve().then(function () { return require('./teams-BLeRpDxv.cjs'); });
511
+ const { handleTeamsCommand } = await Promise.resolve().then(function () { return require('./teams-DESdalox.cjs'); });
512
512
  await handleTeamsCommand(args.slice(1));
513
513
  } catch (error) {
514
514
  console.error(error instanceof Error ? error.message : "Teams command failed");
@@ -517,7 +517,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
517
517
  return;
518
518
  } else if (subcommand === "auto") {
519
519
  try {
520
- const { handleAutoCommand } = await Promise.resolve().then(function () { return require('./auto-CbYOfoPS.cjs'); });
520
+ const { handleAutoCommand } = await Promise.resolve().then(function () { return require('./auto-CIgFHIyQ.cjs'); });
521
521
  await handleAutoCommand(args.slice(1));
522
522
  } catch (error) {
523
523
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Automation command failed");
@@ -529,7 +529,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
529
529
  return;
530
530
  } else if (subcommand === "mcp" && (args.length === 1 || args.length === 2 && args[1] === "--terminal-tools")) {
531
531
  try {
532
- const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-BFvAEIRz.cjs'); });
532
+ const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-D5f3Vd-z.cjs'); });
533
533
  await handleMcpCommand(args[1] === "--terminal-tools");
534
534
  } catch (error) {
535
535
  process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
@@ -539,7 +539,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
539
539
  return;
540
540
  } else if (subcommand === "panels" || subcommand === "attention") {
541
541
  try {
542
- const { handlePanelsCommand, handleAttentionCommand } = await Promise.resolve().then(function () { return require('./panels-Njf6GelF.cjs'); });
542
+ const { handlePanelsCommand, handleAttentionCommand } = await Promise.resolve().then(function () { return require('./panels-2PXsw9-d.cjs'); });
543
543
  if (subcommand === "panels") await handlePanelsCommand(args.slice(1));
544
544
  else await handleAttentionCommand(args.slice(1));
545
545
  } catch (error) {
@@ -627,13 +627,13 @@ Conversation history is preserved on the server, but in-flight tool calls are in
627
627
  }
628
628
  process.exit(0);
629
629
  } else if (daemonSubcommand === "start-sync") {
630
- await (await Promise.resolve().then(function () { return require('./run-CAOCYYfT.cjs'); })).startDaemon();
630
+ await (await Promise.resolve().then(function () { return require('./run-BBNrcCfI.cjs'); })).startDaemon();
631
631
  process.exit(0);
632
632
  } else if (daemonSubcommand === "stop") {
633
633
  await controlClient.stopDaemon();
634
634
  process.exit(0);
635
635
  } else if (daemonSubcommand === "status") {
636
- await (await Promise.resolve().then(function () { return require('./doctor-BrgSlfXn.cjs'); }).then(function (n) { return n.doctor; })).runDoctorDaemon();
636
+ await (await Promise.resolve().then(function () { return require('./doctor-DMvlzmnE.cjs'); }).then(function (n) { return n.doctor; })).runDoctorDaemon();
637
637
  process.exit(0);
638
638
  } else if (daemonSubcommand === "logs") {
639
639
  const latest = await logger.getLatestDaemonLog();
@@ -645,14 +645,14 @@ Conversation history is preserved on the server, but in-flight tool calls are in
645
645
  process.exit(0);
646
646
  } else if (daemonSubcommand === "install") {
647
647
  try {
648
- await (await Promise.resolve().then(function () { return require('./install-C0ANcEAW.cjs'); })).install();
648
+ await (await Promise.resolve().then(function () { return require('./install-BAa_Xmof.cjs'); })).install();
649
649
  } catch (error) {
650
650
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
651
651
  process.exit(1);
652
652
  }
653
653
  } else if (daemonSubcommand === "uninstall") {
654
654
  try {
655
- await (await Promise.resolve().then(function () { return require('./uninstall-CbayEVoV.cjs'); })).uninstall();
655
+ await (await Promise.resolve().then(function () { return require('./uninstall-Di1vPBLV.cjs'); })).uninstall();
656
656
  } catch (error) {
657
657
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
658
658
  process.exit(1);
@@ -841,7 +841,7 @@ ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
841
841
  await ensureDaemonRunning.ensureDaemonRunning();
842
842
  }
843
843
  try {
844
- const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-CRRKt-tm.cjs'); });
844
+ const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-B3KSeby4.cjs'); });
845
845
  await runClaude(credentials, options);
846
846
  } catch (error) {
847
847
  failCommand(error);
@@ -896,7 +896,7 @@ ${chalk.bold("Examples:")}
896
896
  }
897
897
  console.log(chalk.blue("\u{1F4F1} Sending push notification..."));
898
898
  try {
899
- const { ApiClient } = await Promise.resolve().then(function () { return require('./api-DM7b1OKj.cjs'); }).then(function (n) { return n.api; });
899
+ const { ApiClient } = await Promise.resolve().then(function () { return require('./api-CZWcG7uh.cjs'); }).then(function (n) { return n.api; });
900
900
  const api = await ApiClient.create(credentials);
901
901
  const notificationTitle = title || "Happy";
902
902
  api.push().sendToAllDevices(
@@ -1,17 +1,17 @@
1
- import { r as registerTeamsTools } from './tools-Cho7iIWf.mjs';
1
+ import { r as registerTeamsTools } from './tools-BgdU0dWp.mjs';
2
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { z } from 'zod';
5
- import { p as pushClipboardViaDaemon, b as pushFilePreviewViaDaemon, d as setTerminalTitleViaDaemon } from './controlClient-DoeYovwP.mjs';
5
+ import { p as pushClipboardViaDaemon, b as pushFilePreviewViaDaemon, d as setTerminalTitleViaDaemon } from './controlClient-BL4hb4l3.mjs';
6
6
  import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, c as CLIPBOARD_MAX_BYTES } from './limits-DIo7rEBR.mjs';
7
- import { c as checkDownloadTarget, r as registerAssistantSessionTools } from './downloadTarget-jbOz1egC.mjs';
8
- import { l as logger } from './logger-BUngm5Xg.mjs';
7
+ import { c as checkDownloadTarget, r as registerAssistantSessionTools } from './downloadTarget-J9j37eFG.mjs';
8
+ import { l as logger } from './logger-DpqihN1f.mjs';
9
9
  import { c as checkPreviewPath } from './previewPath-CXN4Vag0.mjs';
10
10
  import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, c as PREVIEW_DOWNLOAD_PARAM_DESCRIPTION } from './agentGuidance-BDYt2Qy2.mjs';
11
11
  import 'node:fs/promises';
12
12
  import 'node:os';
13
- import './persistence-BFUOHW5h.mjs';
14
- import './configuration-PxzEJumr.mjs';
13
+ import './persistence-jOEuAFTS.mjs';
14
+ import './configuration-YXw_Dcsb.mjs';
15
15
  import 'node:crypto';
16
16
  import 'axios';
17
17
  import 'tweetnacl';
@@ -21,21 +21,23 @@ import './terminals-Dlg0x3nY.mjs';
21
21
  import 'node:fs';
22
22
  import 'node:path';
23
23
  import { b as TerminalTitleSuggestRequestSchema } from './terminalTitleSuggest-CeKsX_V6.mjs';
24
- import { s as suggestTitleForPrompt } from './titleGenerator-Uzbd4utr.mjs';
24
+ import { s as suggestTitleForPrompt } from './titleGenerator-ClnMSzwC.mjs';
25
25
  import { r as resolveMcpTerminalId } from './terminalToolContext-CFeGeaNm.mjs';
26
- import './client-D4uPb1uu.mjs';
27
- import './context-CJGRRGWW.mjs';
28
- import './sessionOps-C58iDeD5.mjs';
26
+ import './client-BGfmSbWc.mjs';
27
+ import 'node:util';
28
+ import './index-BI0h2Zks.mjs';
29
+ import '@paralleldrive/cuid2';
30
+ import './context-Drzs_Z38.mjs';
31
+ import './sessionOps-D0BPWPoh.mjs';
29
32
  import './authRelay-DhQhkBvX.mjs';
30
- import './time-D3ETL7Jb.mjs';
33
+ import './time-Cfknl7xG.mjs';
31
34
  import './backgroundTaskActivity-8PdPxrvy.mjs';
32
- import './remoteSessionClient-PP-mOKmw.mjs';
35
+ import './remoteSessionClient-BlURPulk.mjs';
33
36
  import './ids-DU6sLx4C.mjs';
34
- import './bootstrap-Dt5I1SOl.mjs';
37
+ import './bootstrap-D3vlOROj.mjs';
35
38
  import 'chalk';
36
- import 'node:util';
37
39
  import './trimIdent-BAjmv_TG.mjs';
38
- import './package-7Ld1YMhh.mjs';
40
+ import './package-CKj8zndE.mjs';
39
41
  import './tmuxSocket-B8Yx20sT.mjs';
40
42
  import 'node:module';
41
43
  import './oneShotPrompts-DT4p6RNd.mjs';
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var tools = require('./tools-BL7Byl_x.cjs');
3
+ var tools = require('./tools-ClYcb1YQ.cjs');
4
4
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
5
5
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
6
6
  var z = require('zod');
7
- var controlClient = require('./controlClient-Bqv5v5OM.cjs');
7
+ var controlClient = require('./controlClient-D0kGwKYx.cjs');
8
8
  var limits = require('./limits-C-a7gr04.cjs');
9
- var downloadTarget = require('./downloadTarget-CEb9che-.cjs');
10
- var logger = require('./logger-CphW5nUE.cjs');
9
+ var downloadTarget = require('./downloadTarget-D33BFvew.cjs');
10
+ var logger = require('./logger-DK1ytCz6.cjs');
11
11
  var previewPath = require('./previewPath-B0rBdhy1.cjs');
12
12
  var agentGuidance = require('./agentGuidance-BtBx2xxE.cjs');
13
13
  require('node:fs/promises');
14
14
  require('node:os');
15
- require('./persistence-9BMYspxG.cjs');
16
- require('./configuration-CYO-kPOS.cjs');
15
+ require('./persistence-BdpwWXKh.cjs');
16
+ require('./configuration-B-CugKJ3.cjs');
17
17
  require('node:crypto');
18
18
  require('axios');
19
19
  require('tweetnacl');
@@ -23,21 +23,23 @@ require('./terminals-B_bfC9c2.cjs');
23
23
  require('node:fs');
24
24
  require('node:path');
25
25
  var terminalTitleSuggest = require('./terminalTitleSuggest-DhvRFX3H.cjs');
26
- var titleGenerator = require('./titleGenerator-Cgp5ihFb.cjs');
26
+ var titleGenerator = require('./titleGenerator-YNutaU88.cjs');
27
27
  var terminalToolContext = require('./terminalToolContext-DoV9Gs7K.cjs');
28
- require('./client-D_loZ9IK.cjs');
29
- require('./context-6TP-iz_c.cjs');
30
- require('./sessionOps-BrGiU9-s.cjs');
28
+ require('./client-xnWiHqdb.cjs');
29
+ require('node:util');
30
+ require('./index-oh8XEozJ.cjs');
31
+ require('@paralleldrive/cuid2');
32
+ require('./context-BtIVqHI5.cjs');
33
+ require('./sessionOps-Dx7wARjI.cjs');
31
34
  require('./authRelay-Dy1qU9td.cjs');
32
- require('./time-Cjv0zxQO.cjs');
35
+ require('./time-DNLeIRgR.cjs');
33
36
  require('./backgroundTaskActivity-CBvUdj39.cjs');
34
- require('./remoteSessionClient-D843fkzL.cjs');
37
+ require('./remoteSessionClient-CtV9mDko.cjs');
35
38
  require('./ids-B6ZC0HGt.cjs');
36
- require('./bootstrap-DoA7okld.cjs');
39
+ require('./bootstrap-DsXp74wv.cjs');
37
40
  require('chalk');
38
- require('node:util');
39
41
  require('./trimIdent-4gvk9Wk6.cjs');
40
- require('./package-KhLqBDX9.cjs');
42
+ require('./package-BfeqAzyJ.cjs');
41
43
  require('./tmuxSocket-D-Xt6Vn-.cjs');
42
44
  require('node:module');
43
45
  require('./oneShotPrompts-CL0dip9C.cjs');
@@ -1,14 +1,22 @@
1
1
  'use strict';
2
2
 
3
+ var node_child_process = require('node:child_process');
3
4
  var node_crypto = require('node:crypto');
4
5
  var node_fs = require('node:fs');
5
6
  var path = require('node:path');
6
- var node_child_process = require('node:child_process');
7
7
  var promises = require('node:fs/promises');
8
- var configuration = require('./configuration-CYO-kPOS.cjs');
9
- var index = require('./index-Dv0Q48P3.cjs');
10
- var _package = require('./package-KhLqBDX9.cjs');
8
+ var configuration = require('./configuration-B-CugKJ3.cjs');
9
+ var index = require('./index-oh8XEozJ.cjs');
10
+ var _package = require('./package-BfeqAzyJ.cjs');
11
11
 
12
+ function spawnOriginForLog(value) {
13
+ if (!value || typeof value !== "object") return void 0;
14
+ const input = value;
15
+ const source = typeof input.source === "string" && /^[a-z][a-z-]{0,23}$/.test(input.source) ? input.source : "invalid";
16
+ const route = typeof input.route === "string" && /^[A-Za-z0-9/:._-]{1,64}$/.test(input.route) ? input.route : "invalid";
17
+ const flag = (v) => typeof v === "boolean" ? v : null;
18
+ return { source, route, visible: flag(input.visible), gesture: flag(input.gesture) };
19
+ }
12
20
  function summarizeSpawnSessionForLog(value) {
13
21
  const input = value && typeof value === "object" ? value : {};
14
22
  const environmentVariables = input.environmentVariables && typeof input.environmentVariables === "object" ? input.environmentVariables : {};
@@ -23,7 +31,8 @@ function summarizeSpawnSessionForLog(value) {
23
31
  resumesCodex: typeof input.resumeCodexThreadId === "string" && input.resumeCodexThreadId.length > 0,
24
32
  importsClaude: typeof input.importedFromClaudeSessionId === "string" && input.importedFromClaudeSessionId.length > 0,
25
33
  forceNew: input.forceNew === true,
26
- ...typeof input.permissionMode === "string" ? { permissionMode: input.permissionMode } : {}
34
+ ...typeof input.permissionMode === "string" ? { permissionMode: input.permissionMode } : {},
35
+ ...input.origin !== void 0 ? { origin: spawnOriginForLog(input.origin) } : {}
27
36
  };
28
37
  }
29
38
 
@@ -43,147 +52,6 @@ function registerWorktreeHandlers(rpc, service) {
43
52
  rpc.registerHandler("worktree-remove", async (params) => service.remove(obj(params).path, obj(params).discardChanges, obj(params).expectedFingerprint));
44
53
  }
45
54
 
46
- const MAX_CONFIG_BYTES = 1024 * 1024;
47
- const MAX_BACKUPS_PER_HARNESS = 20;
48
- class ModelConfigError extends Error {
49
- constructor(code, message) {
50
- super(message);
51
- this.code = code;
52
- this.name = "ModelConfigError";
53
- }
54
- }
55
- function sha256(text) {
56
- return node_crypto.createHash("sha256").update(text).digest("hex");
57
- }
58
- async function readConfigFile(path) {
59
- let stat;
60
- try {
61
- stat = await node_fs.promises.stat(path);
62
- } catch (error) {
63
- if (error.code === "ENOENT") {
64
- return { path, exists: false, content: "", hash: sha256(""), mode: null };
65
- }
66
- throw new ModelConfigError("read-failed", `Cannot read ${path}: ${error.message}`);
67
- }
68
- if (!stat.isFile()) throw new ModelConfigError("not-a-file", `${path} is not a regular file`);
69
- if (stat.size > MAX_CONFIG_BYTES) throw new ModelConfigError("file-too-large", `${path} is larger than ${MAX_CONFIG_BYTES} bytes`);
70
- const content = await node_fs.promises.readFile(path, "utf8");
71
- return { path, exists: true, content, hash: sha256(content), mode: stat.mode & 511 };
72
- }
73
- async function resolveWriteTarget(path$1) {
74
- try {
75
- return await node_fs.promises.realpath(path$1);
76
- } catch (error) {
77
- if (error.code === "ENOENT") {
78
- try {
79
- const link = await node_fs.promises.readlink(path$1);
80
- return link.startsWith("/") ? link : path.join(path.dirname(path$1), link);
81
- } catch {
82
- return path$1;
83
- }
84
- }
85
- throw error;
86
- }
87
- }
88
- async function atomicWriteFile(path$1, content, mode) {
89
- const target = await resolveWriteTarget(path$1);
90
- const dir = path.dirname(target);
91
- await node_fs.promises.mkdir(dir, { recursive: true, mode: 448 });
92
- const tmp = path.join(dir, `.${path.basename(target)}.vh-tmp-${process.pid}-${node_crypto.randomBytes(4).toString("hex")}`);
93
- const handle = await node_fs.promises.open(tmp, node_fs.constants.O_WRONLY | node_fs.constants.O_CREAT | node_fs.constants.O_EXCL, mode ?? 384);
94
- try {
95
- await handle.writeFile(content, "utf8");
96
- await handle.sync();
97
- } catch (error) {
98
- await handle.close().catch(() => {
99
- });
100
- await node_fs.promises.unlink(tmp).catch(() => {
101
- });
102
- throw error;
103
- }
104
- await handle.close();
105
- try {
106
- if (mode !== null) await node_fs.promises.chmod(tmp, mode);
107
- await node_fs.promises.rename(tmp, target);
108
- } catch (error) {
109
- await node_fs.promises.unlink(tmp).catch(() => {
110
- });
111
- throw error;
112
- }
113
- try {
114
- const dirHandle = await node_fs.promises.open(dir, "r");
115
- await dirHandle.sync().catch(() => {
116
- });
117
- await dirHandle.close();
118
- } catch {
119
- }
120
- }
121
- const BACKUP_ID = /^\d{13}-[0-9a-f]{8}$/;
122
- const HARNESS_DIR = /^[a-z][a-z0-9-]{0,31}$/;
123
- class BackupStore {
124
- constructor(root) {
125
- this.root = root;
126
- }
127
- harnessDir(harness) {
128
- if (!HARNESS_DIR.test(harness)) throw new ModelConfigError("invalid-harness", "Invalid harness");
129
- return path.join(this.root, harness);
130
- }
131
- async create(harness, reason, files, now = Date.now()) {
132
- const id = `${now}-${node_crypto.randomBytes(4).toString("hex")}`;
133
- const dir = path.join(this.harnessDir(harness), id);
134
- await node_fs.promises.mkdir(dir, { recursive: true, mode: 448 });
135
- const manifest = { id, createdAt: now, reason, files: files.map((f, i) => ({ path: f.path, blob: f.content === null ? null : `f${i}`, mode: f.mode })) };
136
- for (const [i, file] of files.entries()) {
137
- if (file.content !== null) await node_fs.promises.writeFile(path.join(dir, `f${i}`), file.content, { encoding: "utf8", mode: 384 });
138
- }
139
- await node_fs.promises.writeFile(path.join(dir, "manifest.json"), JSON.stringify(manifest, null, 2), { encoding: "utf8", mode: 384 });
140
- await this.prune(harness);
141
- return { id, createdAt: now, reason, files: files.map((f) => f.path) };
142
- }
143
- async list(harness) {
144
- let names;
145
- try {
146
- names = await node_fs.promises.readdir(this.harnessDir(harness));
147
- } catch {
148
- return [];
149
- }
150
- const entries = [];
151
- for (const name of names.filter((n) => BACKUP_ID.test(n))) {
152
- try {
153
- const manifest = JSON.parse(await node_fs.promises.readFile(path.join(this.harnessDir(harness), name, "manifest.json"), "utf8"));
154
- entries.push({ id: name, createdAt: Number(manifest.createdAt) || 0, reason: String(manifest.reason ?? ""), files: (manifest.files ?? []).map((f) => f.path) });
155
- } catch {
156
- }
157
- }
158
- return entries.sort((a, b) => b.createdAt - a.createdAt);
159
- }
160
- async read(harness, id) {
161
- if (!BACKUP_ID.test(id)) throw new ModelConfigError("invalid-backup", "Invalid backup id");
162
- const dir = path.join(this.harnessDir(harness), id);
163
- let manifest;
164
- try {
165
- manifest = JSON.parse(await node_fs.promises.readFile(path.join(dir, "manifest.json"), "utf8"));
166
- } catch {
167
- throw new ModelConfigError("backup-not-found", "Backup not found");
168
- }
169
- const out = [];
170
- for (const file of manifest.files) {
171
- out.push({
172
- path: file.path,
173
- content: file.blob === null ? null : await node_fs.promises.readFile(path.join(dir, file.blob), "utf8"),
174
- mode: typeof file.mode === "number" ? file.mode : null
175
- });
176
- }
177
- return out;
178
- }
179
- async prune(harness) {
180
- const entries = await this.list(harness);
181
- for (const stale of entries.slice(MAX_BACKUPS_PER_HARNESS)) {
182
- await node_fs.promises.rm(path.join(this.harnessDir(harness), stale.id), { recursive: true, force: true });
183
- }
184
- }
185
- }
186
-
187
55
  const CONFIG_RELATIVE_PATH = ".veryhappy/worktree.json";
188
56
  const CONFIG_MAX_BYTES = 64 * 1024;
189
57
  const SCRIPT_MAX_BYTES = 32 * 1024;
@@ -1311,10 +1179,10 @@ function startAgentVersionChecks(publish, onError, detect = detectAgentVersions)
1311
1179
  void refresh();
1312
1180
  const timer = setInterval(() => void refresh(), AGENT_CHECK_INTERVAL);
1313
1181
  timer.unref();
1314
- return () => {
1182
+ return Object.assign(() => {
1315
1183
  stopped = true;
1316
1184
  clearInterval(timer);
1317
- };
1185
+ }, { refresh });
1318
1186
  }
1319
1187
 
1320
1188
  function parseTerminalHookPayload(body) {
@@ -1387,11 +1255,8 @@ function decideBackfill(messages, maxLines) {
1387
1255
  return { replay: messages.slice(messages.length - cap), truncated: true };
1388
1256
  }
1389
1257
 
1390
- exports.BackupStore = BackupStore;
1391
1258
  exports.MIRROR_BACKFILL_LINES_DEFAULT = MIRROR_BACKFILL_LINES_DEFAULT;
1392
- exports.ModelConfigError = ModelConfigError;
1393
1259
  exports.WORKTREE_CAPABILITY_VERSION = WORKTREE_CAPABILITY_VERSION;
1394
- exports.atomicWriteFile = atomicWriteFile;
1395
1260
  exports.configureWorktreeService = configureWorktreeService;
1396
1261
  exports.currentWorktreeService = currentWorktreeService;
1397
1262
  exports.decideBackfill = decideBackfill;
@@ -1405,12 +1270,10 @@ exports.mirrorLocalId = mirrorLocalId;
1405
1270
  exports.parseMirrorSendParams = parseMirrorSendParams;
1406
1271
  exports.parseTerminalHookPayload = parseTerminalHookPayload;
1407
1272
  exports.pickMirrorForTerminal = pickMirrorForTerminal;
1408
- exports.readConfigFile = readConfigFile;
1409
1273
  exports.registerWorktreeHandlers = registerWorktreeHandlers;
1410
1274
  exports.sanitizeLiveSnapshot = sanitizeLiveSnapshot;
1411
1275
  exports.sanitizeTagList = sanitizeTagList;
1412
1276
  exports.serializeLiveSnapshot = serializeLiveSnapshot;
1413
- exports.sha256 = sha256;
1414
1277
  exports.stableVersion = stableVersion;
1415
1278
  exports.startAgentVersionChecks = startAgentVersionChecks;
1416
1279
  exports.summarizeSpawnSessionForLog = summarizeSpawnSessionForLog;