very-happy-cli 0.2.165 → 0.2.166

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 (190) hide show
  1. package/README.md +1 -1
  2. package/dist/{AcpBackend-DCfNt9bD.cjs → AcpBackend-20VHOXwb.cjs} +3 -3
  3. package/dist/{AcpBackend-C11FnVw5.mjs → AcpBackend-tRWk7yi7.mjs} +3 -3
  4. package/dist/{AcpSessionManager-BQnDJvct.mjs → AcpSessionManager-B7FIrsys.mjs} +1 -1
  5. package/dist/{AcpSessionManager-9yN2iH4b.cjs → AcpSessionManager-Zf00QnlL.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-CwJ48yiB.mjs → BasePermissionHandler-CDCLIrZJ.mjs} +1 -1
  7. package/dist/{BasePermissionHandler-BwQHxl6M.cjs → BasePermissionHandler-COKc4pmt.cjs} +1 -1
  8. package/dist/{BaseReasoningProcessor-ClF2g1qz.mjs → BaseReasoningProcessor-BDVKvooR.mjs} +1 -1
  9. package/dist/{BaseReasoningProcessor-81lf_M8G.cjs → BaseReasoningProcessor-DAGQdkNp.cjs} +1 -1
  10. package/dist/{agentGuidance-CQuNlNx8.mjs → agentGuidance-BDYt2Qy2.mjs} +4 -2
  11. package/dist/{agentGuidance-B5NATuFa.cjs → agentGuidance-BtBx2xxE.cjs} +4 -1
  12. package/dist/{agentHome-DvR176E5.mjs → agentHome-2IbIjKCa.mjs} +4 -4
  13. package/dist/{agentHome-D3Nn82kI.cjs → agentHome-KVWj6nCl.cjs} +4 -4
  14. package/dist/{api-DTVPUE7g.mjs → api-Cmz3XS4P.mjs} +14 -12
  15. package/dist/{api-AzdzTKFs.cjs → api-DnNL5fLw.cjs} +14 -12
  16. package/dist/{apiMachine-BQ-b4Lu3.mjs → apiMachine-B6ySCFe0.mjs} +2137 -65
  17. package/dist/{apiMachine-B_cJldfa.cjs → apiMachine-DeoQ8QbZ.cjs} +2134 -62
  18. package/dist/{attachmentContent-dzIs-wis.mjs → attachmentContent-CTXapi-_.mjs} +2 -2
  19. package/dist/{attachmentContent-muDCe4Gy.cjs → attachmentContent-DPWxHgX4.cjs} +2 -2
  20. package/dist/{attachmentLimits-eJZ4ZBjF.cjs → attachmentLimits-BfgKV5iE.cjs} +28 -2
  21. package/dist/{attachmentLimits-B8nzhw-i.mjs → attachmentLimits-C1PCCM79.mjs} +28 -2
  22. package/dist/{auth-Jtmvh1w4.mjs → auth-BMaBjRAj.mjs} +8 -8
  23. package/dist/{auth-DtP-B4gf.cjs → auth-D4-eQz85.cjs} +8 -8
  24. package/dist/{auth-CfLd3phE.cjs → auth-ietHtvwu.cjs} +5 -5
  25. package/dist/{auth-BY5ujhGn.mjs → auth-pzWIFdOD.mjs} +5 -5
  26. package/dist/{auto-DjWfR1UB.mjs → auto-DL75Dx3I.mjs} +83 -21
  27. package/dist/{auto-ClNnbSoF.cjs → auto-DOWTQDPa.cjs} +84 -20
  28. package/dist/{bootstrap-B1dMZA-u.cjs → bootstrap-BpXIc2wn.cjs} +2 -2
  29. package/dist/{bootstrap-D_ExGrY2.mjs → bootstrap-XE8A7Ut2.mjs} +2 -2
  30. package/dist/{browser-_gV7tcPs.cjs → browser-CcG8GLRV.cjs} +1 -1
  31. package/dist/{browser-mwzpOmcw.mjs → browser-DDFi1T8C.mjs} +1 -1
  32. package/dist/{claudeLocal-G5UmJ81F.cjs → claudeLocal-DXBXwIOG.cjs} +6 -6
  33. package/dist/{claudeLocal-BeHToEK5.mjs → claudeLocal-DmM5Oyhv.mjs} +6 -6
  34. package/dist/{claudeLocalLauncher-B4y2BsmO.cjs → claudeLocalLauncher-C41Y6Kp4.cjs} +14 -11
  35. package/dist/{claudeLocalLauncher-Cq6bqAT4.mjs → claudeLocalLauncher-Cs4eUC3P.mjs} +14 -11
  36. package/dist/{claudeSessionFork-CokUhS4r.mjs → claudeSessionFork-BdLnc2Hv.mjs} +1 -1
  37. package/dist/{claudeSessionFork-CDJq_b9r.cjs → claudeSessionFork-Cs0I3eGI.cjs} +1 -1
  38. package/dist/{client-BwaWdlCm.mjs → client-CbK33y_s.mjs} +3 -3
  39. package/dist/{client-uN9d6Git.cjs → client-DJ0kX_8M.cjs} +2 -2
  40. package/dist/{client-CJZKBZCE.mjs → client-GjTnsq6F.mjs} +2 -2
  41. package/dist/{client-Do7cGPEq.cjs → client-JISJx2f-.cjs} +3 -3
  42. package/dist/codex/happyMcpStdioBridge.cjs +23 -18
  43. package/dist/codex/happyMcpStdioBridge.mjs +22 -17
  44. package/dist/{codexAppServerClient-BuSdeUxT.cjs → codexAppServerClient-BTjn2ZCZ.cjs} +46 -2
  45. package/dist/{codexAppServerClient-B0QaMQsC.mjs → codexAppServerClient-CldXEojt.mjs} +47 -3
  46. package/dist/{codexCommand-YdYmykAR.cjs → codexCommand-BpD0N1F7.cjs} +71 -51
  47. package/dist/{codexCommand-C3gdjMAw.mjs → codexCommand-DjMU-Ijf.mjs} +71 -51
  48. package/dist/{config-CGCIFRCN.mjs → config-DjSJKatx.mjs} +3 -3
  49. package/dist/{config-ChoHFnfO.cjs → config-DuLL0Ppe.cjs} +3 -3
  50. package/dist/{configuration-BE61XNsg.cjs → configuration-B0cb3xA3.cjs} +1 -1
  51. package/dist/{configuration-L1qcGTFM.mjs → configuration-D2v3puap.mjs} +1 -1
  52. package/dist/{connect-D5IKfcfd.cjs → connect-B7JWEzyg.cjs} +13 -13
  53. package/dist/{connect-CFD0Em6a.mjs → connect-CnNNyM9I.mjs} +13 -13
  54. package/dist/{context-3WVw8qPz.cjs → context-BFUpYT39.cjs} +1 -1
  55. package/dist/{context-DaCCB4cm.mjs → context-DjfqLWzE.mjs} +1 -1
  56. package/dist/{controlClient-Ci7HTMII.mjs → controlClient-BMUJfUeF.mjs} +13 -6
  57. package/dist/{controlClient-RWTlQA4_.cjs → controlClient-CmnHGcyl.cjs} +13 -5
  58. package/dist/{createSessionMetadata-CWR-AB2A.mjs → createSessionMetadata-DU0bCg2m.mjs} +2 -2
  59. package/dist/{createSessionMetadata-CPGTztXP.cjs → createSessionMetadata-DbfRBhRu.cjs} +2 -2
  60. package/dist/{deterministicJson-BBwG-Ase.mjs → deterministicJson-D-WPUrZb.mjs} +36 -52
  61. package/dist/{deterministicJson-C4Jo2RWy.cjs → deterministicJson-Dp3TVyap.cjs} +41 -59
  62. package/dist/{doctor-CAC6qY9Z.mjs → doctor-BlXXyQ1L.mjs} +6 -6
  63. package/dist/{doctor-ZOQLE5AH.cjs → doctor-CkJmdPbi.cjs} +6 -6
  64. package/dist/{assistantTools-BsrG3PD-.cjs → downloadTarget-CiQqRIc-.cjs} +44 -6
  65. package/dist/{assistantTools-DPGga5lM.mjs → downloadTarget-DjSwMHun.mjs} +45 -8
  66. package/dist/{ensureDaemonRunning-b1pvEFcS.mjs → ensureDaemonRunning-CAQag1zE.mjs} +5 -5
  67. package/dist/{ensureDaemonRunning-mIgX2vnc.cjs → ensureDaemonRunning-C_aIOhgG.cjs} +5 -5
  68. package/dist/{handleResumeCommand-DGNhbv-3.cjs → handleResumeCommand-6KzBGDnl.cjs} +5 -5
  69. package/dist/{handleResumeCommand-CTGbZkCL.mjs → handleResumeCommand-Ci7wacT-.mjs} +5 -5
  70. package/dist/{index-vVWpCoTr.mjs → index-B0HEEYGh.mjs} +22 -5
  71. package/dist/{index-DqlyNgt4.cjs → index-C9hI8a10.cjs} +26 -4
  72. package/dist/{index-BzIxE0Eu.cjs → index-CaFCAlX8.cjs} +3 -3
  73. package/dist/{index-DrSPR59N.cjs → index-DBmNwMX9.cjs} +39 -38
  74. package/dist/{index-DIodyAqF.cjs → index-DEKIgZUo.cjs} +4 -4
  75. package/dist/{index-Diu6HdWH.mjs → index-DQplgo0W.mjs} +4 -4
  76. package/dist/{index-BgzjPv07.mjs → index-HQsigW_J.mjs} +3 -3
  77. package/dist/{index-DjtBengz.mjs → index-WGCT6SSV.mjs} +40 -39
  78. package/dist/index.cjs +2 -2
  79. package/dist/index.mjs +2 -2
  80. package/dist/{install-BO_W7VhL.mjs → install-BdvKiOQw.mjs} +2 -0
  81. package/dist/{install-DrUQk2DJ.cjs → install-CejEiRGW.cjs} +3 -3
  82. package/dist/{install-Cs5qAPrB.cjs → install-Cf6AFSWC.cjs} +2 -0
  83. package/dist/{install-Cp_aB-NQ.mjs → install-oJUvsFu9.mjs} +3 -3
  84. package/dist/lib.cjs +12 -12
  85. package/dist/lib.d.cts +55 -2
  86. package/dist/lib.d.mts +55 -2
  87. package/dist/lib.mjs +12 -12
  88. package/dist/{lidState-BLHLmhwd.mjs → lidState-BfximpjX.mjs} +1 -1
  89. package/dist/{lidState-z9ekRpZu.cjs → lidState-D8BmnJV1.cjs} +1 -1
  90. package/dist/{localHappyAgentAuth-BWvmc_Hg.mjs → localHappyAgentAuth-Ct1aXwqd.mjs} +1 -1
  91. package/dist/{localHappyAgentAuth-BCx0y1qW.cjs → localHappyAgentAuth-d7B6S_o7.cjs} +1 -1
  92. package/dist/{logger-CknSVkIe.mjs → logger-BpQcwNnt.mjs} +2 -2
  93. package/dist/{logger-D0hkk7Vo.cjs → logger-JTcJU-uL.cjs} +2 -2
  94. package/dist/{machineMetadata-BDCYOXQg.cjs → machineMetadata-BBg_Njw3.cjs} +3 -3
  95. package/dist/{machineMetadata-Cj1DoFot.mjs → machineMetadata-CBdxABeI.mjs} +3 -3
  96. package/dist/{main-CKUfkVG_.mjs → main-B5b1gA3K.mjs} +44 -44
  97. package/dist/{main-COAPGIso.cjs → main-C16fOGgn.cjs} +44 -44
  98. package/dist/{mcp-BILnw4si.cjs → mcp-BnNiBBax.cjs} +24 -19
  99. package/dist/{mcp-DeYUfpo8.mjs → mcp-DGNWgVdv.mjs} +23 -18
  100. package/dist/{mirrorProtocol-BUtmg1ws.cjs → mirrorProtocol-BEGk2--0.cjs} +80 -0
  101. package/dist/{mirrorProtocol-BNLtoWjO.mjs → mirrorProtocol-h5WHpdhh.mjs} +79 -1
  102. package/dist/{package-VIUXrYZ1.mjs → package-BqwrPxL0.mjs} +7 -7
  103. package/dist/{package-UkmvSFsg.cjs → package-C1XvUQFy.cjs} +7 -7
  104. package/dist/{peerTools-SWITnkqz.mjs → peerTools-CeCe-3lk.mjs} +4 -4
  105. package/dist/{peerTools-CttfOxti.cjs → peerTools-DPvbcs8V.cjs} +4 -4
  106. package/dist/{persistence-C6ztVW1W.cjs → persistence-2Xp_o6x6.cjs} +3 -3
  107. package/dist/{persistence-DujtUH94.mjs → persistence-B9LmhAE2.mjs} +3 -3
  108. package/dist/{piRunnerArgs-BVJHIjlk.mjs → piRunnerArgs-7FaTyNOq.mjs} +1 -1
  109. package/dist/{piRunnerArgs-tBQg6xDw.cjs → piRunnerArgs-DI29dDNo.cjs} +1 -1
  110. package/dist/{piRuntime-DKFA8u8t.mjs → piRuntime-0qEK5AqE.mjs} +1 -1
  111. package/dist/{piRuntime-DZzjF9It.cjs → piRuntime-R8XVChxK.cjs} +1 -1
  112. package/dist/{piTerminal-t5pQHCPT.cjs → piTerminal-Ccj0KNPr.cjs} +17 -17
  113. package/dist/{piTerminal-BTSaFlpV.mjs → piTerminal-zcQKc8Sp.mjs} +17 -17
  114. package/dist/precheckCompat-CWOi5c9L.cjs +29 -0
  115. package/dist/precheckCompat-DeEbilbr.mjs +26 -0
  116. package/dist/rateLimitWindows-C2Jk3Ih7.cjs +258 -0
  117. package/dist/rateLimitWindows-Dhfhbtqu.mjs +248 -0
  118. package/dist/{registerCommonHandlers--8ds2auE.cjs → registerCommonHandlers-Aha_KfM3.cjs} +2 -2
  119. package/dist/{registerCommonHandlers-BR0J4g64.mjs → registerCommonHandlers-DdfGsFbM.mjs} +2 -2
  120. package/dist/{registerKillSessionHandler-CI23l8aJ.cjs → registerKillSessionHandler-CjitOpUA.cjs} +6 -6
  121. package/dist/{registerKillSessionHandler-Czz0tdki.mjs → registerKillSessionHandler-DboQlGcH.mjs} +6 -6
  122. package/dist/{remoteSessionClient-DCAUHgPz.mjs → remoteSessionClient-B2DtWuNP.mjs} +5 -5
  123. package/dist/{remoteSessionClient-BAkIwM2S.cjs → remoteSessionClient-BwI8rpQw.cjs} +5 -5
  124. package/dist/{tools-mWqsE6ji.cjs → reportProgressTool-B-Rcy0s3.cjs} +73 -9
  125. package/dist/{tools-BVRoGcQH.mjs → reportProgressTool-DnAD8wOa.mjs} +67 -10
  126. package/dist/{run-CkKujjn8.cjs → run-Bh66Xs40.cjs} +268 -118
  127. package/dist/{run-B75qm2I6.mjs → run-DPEwJpQR.mjs} +266 -116
  128. package/dist/{runClaude-B1T9DLLi.cjs → runClaude-C-lJdAKD.cjs} +25 -20
  129. package/dist/{runClaude-aBfBweec.mjs → runClaude-DLr_nBzw.mjs} +25 -20
  130. package/dist/{runClaudeDeps-BOrPP4J1.mjs → runClaudeDeps-C7JV7nXG.mjs} +47 -37
  131. package/dist/{runClaudeDeps-BGjNGfuZ.cjs → runClaudeDeps-vWWLod7J.cjs} +44 -35
  132. package/dist/{runGemini-BuAA_OQb.cjs → runGemini-o-CUSayc.cjs} +42 -35
  133. package/dist/{runGemini-a-V7JE-J.mjs → runGemini-tH6sLw-G.mjs} +42 -35
  134. package/dist/{runOpenClaw-DUSwXg1A.mjs → runOpenClaw-C5DZvVhn.mjs} +18 -18
  135. package/dist/{runOpenClaw-BBVffIh9.cjs → runOpenClaw-D24f35l0.cjs} +18 -18
  136. package/dist/{sandbox-Brb_5wzc.mjs → sandbox-BaL1aslA.mjs} +4 -4
  137. package/dist/{sandbox-Fd2G5yaq.cjs → sandbox-TJZJ6ngw.cjs} +4 -4
  138. package/dist/selfCheck-DPi4lqme.mjs +84 -0
  139. package/dist/{selfCheck-NuJKMInJ.cjs → selfCheck-Dugi0Nk_.cjs} +34 -34
  140. package/dist/{send-4dgHKC3u.cjs → send-CkWOSYmU.cjs} +8 -8
  141. package/dist/{send-DEQJiq_x.mjs → send-DDcJ3ayi.mjs} +8 -8
  142. package/dist/{server-DWGcDmHG.cjs → server-7qFQ8J2u.cjs} +6 -6
  143. package/dist/{server-C6AlUFkw.mjs → server-CUjRvQSd.mjs} +4 -4
  144. package/dist/{sessionLock-B1GgaO1q.cjs → sessionLock-DfhNICyS.cjs} +2 -2
  145. package/dist/{sessionLock-Dm8QyGo4.mjs → sessionLock-DqVyHFAQ.mjs} +2 -2
  146. package/dist/{sessionModeFile-BvOEJ4Fl.cjs → sessionModeFile-CIznKD7O.cjs} +1 -1
  147. package/dist/{sessionModeFile-CuNAWCKL.mjs → sessionModeFile-M4OpiyrF.mjs} +1 -1
  148. package/dist/{sessionOps-DG5MMEp_.mjs → sessionOps-BnaEaOKs.mjs} +4 -4
  149. package/dist/{sessionOps-JP64uJmc.cjs → sessionOps-DOyy4gkY.cjs} +4 -4
  150. package/dist/{sessionScanner-DqSk5Ol_.mjs → sessionScanner-CcuOn9uU.mjs} +75 -19
  151. package/dist/{sessionScanner-BBPEgJ5S.cjs → sessionScanner-Cu1yKlj4.cjs} +75 -19
  152. package/dist/{sessions-DgJuw_i0.cjs → sessions-BQgk5Kw8.cjs} +9 -9
  153. package/dist/{sessions-4isbBAWi.mjs → sessions-C9O91rL1.mjs} +9 -9
  154. package/dist/{setupOfflineReconnection-_MoZtsro.mjs → setupOfflineReconnection-Byy8aeKT.mjs} +2 -2
  155. package/dist/{setupOfflineReconnection-CKJKVIUS.cjs → setupOfflineReconnection-DFmQ8s6I.cjs} +2 -2
  156. package/dist/{spawn-CshERWbY.cjs → spawn-BS7LPmSm.cjs} +13 -12
  157. package/dist/{spawn-BTOG4tTm.mjs → spawn-EZ2yrtWd.mjs} +13 -12
  158. package/dist/{spawnAgents-Czi2VDzj.mjs → spawnAgents-HDaE3C0-.mjs} +1 -1
  159. package/dist/{spawnAgents-McixdtV1.cjs → spawnAgents-vglexX9N.cjs} +1 -1
  160. package/dist/{spawnHappyCLI-Dc4xYm8P.mjs → spawnHappyCLI-BAa49m0q.mjs} +1 -1
  161. package/dist/{spawnHappyCLI-Dd5_8Vex.cjs → spawnHappyCLI-DyaldIe5.cjs} +1 -1
  162. package/dist/specialCommands-CCWtwIGZ.mjs +93 -0
  163. package/dist/specialCommands-DouFaJ_0.cjs +96 -0
  164. package/dist/{startFileWatcher-1LedLBY-.cjs → startFileWatcher-DQbbypJv.cjs} +1 -1
  165. package/dist/{startFileWatcher-B0VlG-Fn.mjs → startFileWatcher-Dfs4whzr.mjs} +1 -1
  166. package/dist/{streamRelay-C0AffuX6.cjs → streamRelay-Ce9sgcOV.cjs} +1 -1
  167. package/dist/{streamRelay-BzMEEvJU.mjs → streamRelay-Iogsh51a.mjs} +1 -1
  168. package/dist/{sync-Dfm6K2te.mjs → sync-BLpH13Kb.mjs} +1 -1
  169. package/dist/{sync-DwUUGGFz.cjs → sync-x_lI_3j_.cjs} +1 -1
  170. package/dist/{systemPrompt-CB1Ls0AE.cjs → systemPrompt-4erwILTB.cjs} +3 -3
  171. package/dist/{systemPrompt-D41Zw1a3.mjs → systemPrompt-BanyDihy.mjs} +3 -3
  172. package/dist/{teams-D8Ly3i6u.mjs → teams-D6BOT3lR.mjs} +7 -7
  173. package/dist/{teams-NWv2ji16.cjs → teams-DzetlGWC.cjs} +7 -7
  174. package/dist/{time-v1Y_qEJp.mjs → time-CfDKj6Bx.mjs} +1 -1
  175. package/dist/{time-BbzJ7PJQ.cjs → time-T0YmeOhS.cjs} +1 -1
  176. package/dist/{titleGenerator-BhoblAQY.mjs → titleGenerator-ChImQ4q-.mjs} +1 -1
  177. package/dist/{titleGenerator-cH6IkPRi.cjs → titleGenerator-CoMxqKfP.cjs} +2 -2
  178. package/dist/{todo-D1hgWV6d.cjs → todo-CZZebKZg.cjs} +6 -6
  179. package/dist/{todo-CuNct-fw.mjs → todo-SVtYxGON.mjs} +6 -6
  180. package/dist/{tools-jof0Bu54.mjs → tools-3X2z3YDe.mjs} +1 -1
  181. package/dist/{tools-c2fb0CF5.cjs → tools-IJ0TAcJs.cjs} +1 -1
  182. package/dist/transcriptCursor-B7T_gkQ0.mjs +102 -0
  183. package/dist/transcriptCursor-DcXGLeSc.cjs +106 -0
  184. package/dist/{uninstall-VPH5GfrA.cjs → uninstall-CqqCWj7w.cjs} +3 -3
  185. package/dist/{uninstall-BB7WYYAk.mjs → uninstall-CypD-kr1.mjs} +3 -3
  186. package/package.json +7 -7
  187. package/scripts/terminal_status_forwarder.cjs +89 -0
  188. package/dist/selfCheck-BgwJ3NGS.mjs +0 -84
  189. package/dist/specialCommands-BSqhYg5X.mjs +0 -52
  190. package/dist/specialCommands-DSsTeRej.cjs +0 -54
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var tools = require('./tools-c2fb0CF5.cjs');
3
+ var tools = require('./tools-IJ0TAcJs.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-RWTlQA4_.cjs');
7
+ var controlClient = require('./controlClient-CmnHGcyl.cjs');
8
8
  var limits = require('./limits-C-a7gr04.cjs');
9
- var assistantTools = require('./assistantTools-BsrG3PD-.cjs');
10
- var logger = require('./logger-D0hkk7Vo.cjs');
9
+ var downloadTarget = require('./downloadTarget-CiQqRIc-.cjs');
10
+ var logger = require('./logger-JTcJU-uL.cjs');
11
11
  var previewPath = require('./previewPath-B0rBdhy1.cjs');
12
- var agentGuidance = require('./agentGuidance-B5NATuFa.cjs');
12
+ var agentGuidance = require('./agentGuidance-BtBx2xxE.cjs');
13
13
  require('node:fs/promises');
14
14
  require('node:os');
15
- require('./persistence-C6ztVW1W.cjs');
16
- require('./configuration-BE61XNsg.cjs');
15
+ require('./persistence-2Xp_o6x6.cjs');
16
+ require('./configuration-B0cb3xA3.cjs');
17
17
  require('node:crypto');
18
18
  require('axios');
19
19
  require('tweetnacl');
@@ -23,21 +23,21 @@ 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-cH6IkPRi.cjs');
26
+ var titleGenerator = require('./titleGenerator-CoMxqKfP.cjs');
27
27
  var terminalToolContext = require('./terminalToolContext-DoV9Gs7K.cjs');
28
- require('./client-Do7cGPEq.cjs');
29
- require('./context-3WVw8qPz.cjs');
30
- require('./sessionOps-JP64uJmc.cjs');
28
+ require('./client-JISJx2f-.cjs');
29
+ require('./context-BFUpYT39.cjs');
30
+ require('./sessionOps-DOyy4gkY.cjs');
31
31
  require('./authRelay-BdYkC1Po.cjs');
32
- require('./time-BbzJ7PJQ.cjs');
32
+ require('./time-T0YmeOhS.cjs');
33
33
  require('./backgroundTaskActivity-CBvUdj39.cjs');
34
- require('./remoteSessionClient-BAkIwM2S.cjs');
34
+ require('./remoteSessionClient-BwI8rpQw.cjs');
35
35
  require('./ids-B6ZC0HGt.cjs');
36
- require('./bootstrap-B1dMZA-u.cjs');
36
+ require('./bootstrap-BpXIc2wn.cjs');
37
37
  require('chalk');
38
38
  require('node:util');
39
39
  require('./trimIdent-4gvk9Wk6.cjs');
40
- require('./package-UkmvSFsg.cjs');
40
+ require('./package-C1XvUQFy.cjs');
41
41
  require('./tmuxSocket-D-Xt6Vn-.cjs');
42
42
  require('node:module');
43
43
  require('./oneShotPrompts-CL0dip9C.cjs');
@@ -92,14 +92,19 @@ function registerMcpTools(server, surface, terminalId = null) {
92
92
  title: agentGuidance.PREVIEW_TOOL_TITLE,
93
93
  inputSchema: {
94
94
  path: z.z.string().min(1).describe("Absolute path or path relative to the current working directory"),
95
- mode: z.z.enum(["file", "diff"]).optional().describe("'file' (default) previews the file; 'diff' is reserved and currently falls back to 'file'")
95
+ mode: z.z.enum(["file", "diff"]).optional().describe("'file' (default) previews the file; 'diff' is reserved and currently falls back to 'file'"),
96
+ download: z.z.boolean().optional().describe(agentGuidance.PREVIEW_DOWNLOAD_PARAM_DESCRIPTION)
96
97
  }
97
98
  }, async (args) => {
98
99
  const verdict = previewPath.checkPreviewPath(args.path);
99
100
  if (verdict.deniedReason) return { content: [{ type: "text", text: verdict.deniedReason }], isError: true };
100
- const result = await controlClient.pushFilePreviewViaDaemon(terminalId, verdict.resolved, args.mode ?? "file");
101
+ const download = args.download === true;
102
+ const target = download ? await downloadTarget.checkDownloadTarget(verdict.resolved) : null;
103
+ if (target?.error) return { content: [{ type: "text", text: target.error }], isError: true };
104
+ const result = await controlClient.pushFilePreviewViaDaemon(terminalId, verdict.resolved, args.mode ?? "file", download ? "download" : void 0);
105
+ const note = target?.note ? ` ${target.note}` : "";
101
106
  return {
102
- content: [{ type: "text", text: result.delivered ? `Queued a preview request for ${verdict.resolved}. This does not confirm that a browser opened it.` : `Failed to request preview: ${result.error || "unknown error"}` }],
107
+ content: [{ type: "text", text: result.delivered ? download ? `Queued a download request for ${verdict.resolved}. This does not confirm that a browser downloaded it.${note}` : `Queued a preview request for ${verdict.resolved}. This does not confirm that a browser opened it.` : `Failed to request preview: ${result.error || "unknown error"}` }],
103
108
  isError: !result.delivered
104
109
  };
105
110
  });
@@ -128,7 +133,7 @@ function registerMcpTools(server, surface, terminalId = null) {
128
133
  });
129
134
  }
130
135
  if (surface === "assistant" && !process.env.VH_TEAM_SCOPE_FILE) {
131
- assistantTools.registerAssistantSessionTools(server);
136
+ downloadTarget.registerAssistantSessionTools(server);
132
137
  }
133
138
  }
134
139
  async function handleMcpCommand(terminalToolsOnly = false) {
@@ -1,17 +1,17 @@
1
- import { r as registerTeamsTools } from './tools-jof0Bu54.mjs';
1
+ import { r as registerTeamsTools } from './tools-3X2z3YDe.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-Ci7HTMII.mjs';
5
+ import { p as pushClipboardViaDaemon, b as pushFilePreviewViaDaemon, d as setTerminalTitleViaDaemon } from './controlClient-BMUJfUeF.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 { r as registerAssistantSessionTools } from './assistantTools-DPGga5lM.mjs';
8
- import { l as logger } from './logger-CknSVkIe.mjs';
7
+ import { c as checkDownloadTarget, r as registerAssistantSessionTools } from './downloadTarget-DjSwMHun.mjs';
8
+ import { l as logger } from './logger-BpQcwNnt.mjs';
9
9
  import { c as checkPreviewPath } from './previewPath-CXN4Vag0.mjs';
10
- import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION } from './agentGuidance-CQuNlNx8.mjs';
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-DujtUH94.mjs';
14
- import './configuration-L1qcGTFM.mjs';
13
+ import './persistence-B9LmhAE2.mjs';
14
+ import './configuration-D2v3puap.mjs';
15
15
  import 'node:crypto';
16
16
  import 'axios';
17
17
  import 'tweetnacl';
@@ -21,21 +21,21 @@ 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-BhoblAQY.mjs';
24
+ import { s as suggestTitleForPrompt } from './titleGenerator-ChImQ4q-.mjs';
25
25
  import { r as resolveMcpTerminalId } from './terminalToolContext-CFeGeaNm.mjs';
26
- import './client-BwaWdlCm.mjs';
27
- import './context-DaCCB4cm.mjs';
28
- import './sessionOps-DG5MMEp_.mjs';
26
+ import './client-CbK33y_s.mjs';
27
+ import './context-DjfqLWzE.mjs';
28
+ import './sessionOps-BnaEaOKs.mjs';
29
29
  import './authRelay-DSAvg1uv.mjs';
30
- import './time-v1Y_qEJp.mjs';
30
+ import './time-CfDKj6Bx.mjs';
31
31
  import './backgroundTaskActivity-8PdPxrvy.mjs';
32
- import './remoteSessionClient-DCAUHgPz.mjs';
32
+ import './remoteSessionClient-B2DtWuNP.mjs';
33
33
  import './ids-DU6sLx4C.mjs';
34
- import './bootstrap-D_ExGrY2.mjs';
34
+ import './bootstrap-XE8A7Ut2.mjs';
35
35
  import 'chalk';
36
36
  import 'node:util';
37
37
  import './trimIdent-BAjmv_TG.mjs';
38
- import './package-VIUXrYZ1.mjs';
38
+ import './package-BqwrPxL0.mjs';
39
39
  import './tmuxSocket-B8Yx20sT.mjs';
40
40
  import 'node:module';
41
41
  import './oneShotPrompts-DT4p6RNd.mjs';
@@ -90,14 +90,19 @@ function registerMcpTools(server, surface, terminalId = null) {
90
90
  title: PREVIEW_TOOL_TITLE,
91
91
  inputSchema: {
92
92
  path: z.string().min(1).describe("Absolute path or path relative to the current working directory"),
93
- mode: z.enum(["file", "diff"]).optional().describe("'file' (default) previews the file; 'diff' is reserved and currently falls back to 'file'")
93
+ mode: z.enum(["file", "diff"]).optional().describe("'file' (default) previews the file; 'diff' is reserved and currently falls back to 'file'"),
94
+ download: z.boolean().optional().describe(PREVIEW_DOWNLOAD_PARAM_DESCRIPTION)
94
95
  }
95
96
  }, async (args) => {
96
97
  const verdict = checkPreviewPath(args.path);
97
98
  if (verdict.deniedReason) return { content: [{ type: "text", text: verdict.deniedReason }], isError: true };
98
- const result = await pushFilePreviewViaDaemon(terminalId, verdict.resolved, args.mode ?? "file");
99
+ const download = args.download === true;
100
+ const target = download ? await checkDownloadTarget(verdict.resolved) : null;
101
+ if (target?.error) return { content: [{ type: "text", text: target.error }], isError: true };
102
+ const result = await pushFilePreviewViaDaemon(terminalId, verdict.resolved, args.mode ?? "file", download ? "download" : void 0);
103
+ const note = target?.note ? ` ${target.note}` : "";
99
104
  return {
100
- content: [{ type: "text", text: result.delivered ? `Queued a preview request for ${verdict.resolved}. This does not confirm that a browser opened it.` : `Failed to request preview: ${result.error || "unknown error"}` }],
105
+ content: [{ type: "text", text: result.delivered ? download ? `Queued a download request for ${verdict.resolved}. This does not confirm that a browser downloaded it.${note}` : `Queued a preview request for ${verdict.resolved}. This does not confirm that a browser opened it.` : `Failed to request preview: ${result.error || "unknown error"}` }],
101
106
  isError: !result.delivered
102
107
  };
103
108
  });
@@ -1,5 +1,9 @@
1
1
  'use strict';
2
2
 
3
+ var node_child_process = require('node:child_process');
4
+ var index = require('./index-C9hI8a10.cjs');
5
+ var _package = require('./package-C1XvUQFy.cjs');
6
+
3
7
  function summarizeSpawnSessionForLog(value) {
4
8
  const input = value && typeof value === "object" ? value : {};
5
9
  const environmentVariables = input.environmentVariables && typeof input.environmentVariables === "object" ? input.environmentVariables : {};
@@ -99,6 +103,80 @@ function pickMirrorForTerminal(sessions, terminalId) {
99
103
  return best ? { sessionId: best.id, claudeSessionId: best.claude } : null;
100
104
  }
101
105
 
106
+ const AGENT_CHECK_INTERVAL = 6 * 60 * 60 * 1e3;
107
+ function stableVersion(value) {
108
+ const match = value.trim().match(/(?:^|\s|v)(\d+\.\d+\.\d+)([-+][\w.-]+)?(?=\s|$)/);
109
+ return match && !match[2] ? match[1] : null;
110
+ }
111
+ function newerVersion(current, latest) {
112
+ const a = current.split(".").map(Number), b = latest.split(".").map(Number);
113
+ for (let i = 0; i < 3; i++) {
114
+ if (b[i] !== a[i]) return b[i] > a[i];
115
+ }
116
+ return false;
117
+ }
118
+ const runVersionCommand = (command, args, shell) => new Promise((resolve, reject) => {
119
+ node_child_process.execFile(
120
+ command,
121
+ args,
122
+ { timeout: 5e3, maxBuffer: 32 * 1024, windowsHide: true, shell },
123
+ (error, stdout) => error ? reject(error) : resolve(stdout)
124
+ );
125
+ });
126
+ async function probeAgentVersion(command, platform = process.platform, run = runVersionCommand) {
127
+ if (platform === "win32") {
128
+ try {
129
+ await run("where.exe", [command], false);
130
+ } catch (error) {
131
+ return { version: null, missing: error.code === 1 };
132
+ }
133
+ }
134
+ try {
135
+ return { version: stableVersion(await run(command, ["--version"], platform === "win32")), missing: false };
136
+ } catch (error) {
137
+ return { version: null, missing: error.code === "ENOENT" };
138
+ }
139
+ }
140
+ async function registryVersion(name) {
141
+ const response = await fetch(`https://registry.npmjs.org/${encodeURIComponent(name)}/latest`, { signal: AbortSignal.timeout(5e3) });
142
+ if (!response.ok) throw new Error("Registry unavailable");
143
+ const data = await response.json();
144
+ return typeof data.version === "string" ? stableVersion(data.version) : null;
145
+ }
146
+ async function detectAgentVersions(deps = { probe: probeAgentVersion, registryVersion }, now = Date.now()) {
147
+ const agents = await Promise.all(index.AGENT_VERSION_SOURCES.map(async (source) => {
148
+ const local = source.command ? await deps.probe(source.command).catch(() => ({ version: null, missing: false })) : { version: stableVersion(_package.packageJson.dependencies["@anthropic-ai/claude-agent-sdk"]), missing: false };
149
+ if (local.missing) return { id: source.id, installed: null, latest: null, status: "not-installed" };
150
+ const latest = await deps.registryVersion(source.package).catch(() => null);
151
+ const installed = local.version;
152
+ const status = !installed || !latest ? "unknown" : newerVersion(installed, latest) ? "update-available" : "current";
153
+ return { id: source.id, installed, latest, status };
154
+ }));
155
+ return { checkedAt: now, daemonPid: process.pid, agents };
156
+ }
157
+ function startAgentVersionChecks(publish, onError, detect = detectAgentVersions) {
158
+ let stopped = false, pending = false;
159
+ async function refresh() {
160
+ if (stopped || pending) return;
161
+ pending = true;
162
+ try {
163
+ const snapshot = await detect();
164
+ if (!stopped) await publish(snapshot);
165
+ } catch (error) {
166
+ onError(error);
167
+ } finally {
168
+ pending = false;
169
+ }
170
+ }
171
+ void refresh();
172
+ const timer = setInterval(() => void refresh(), AGENT_CHECK_INTERVAL);
173
+ timer.unref();
174
+ return () => {
175
+ stopped = true;
176
+ clearInterval(timer);
177
+ };
178
+ }
179
+
102
180
  function parseTerminalHookPayload(body) {
103
181
  if (!body || typeof body !== "object") return null;
104
182
  const raw = body;
@@ -183,4 +261,6 @@ exports.pickMirrorForTerminal = pickMirrorForTerminal;
183
261
  exports.sanitizeLiveSnapshot = sanitizeLiveSnapshot;
184
262
  exports.sanitizeTagList = sanitizeTagList;
185
263
  exports.serializeLiveSnapshot = serializeLiveSnapshot;
264
+ exports.stableVersion = stableVersion;
265
+ exports.startAgentVersionChecks = startAgentVersionChecks;
186
266
  exports.summarizeSpawnSessionForLog = summarizeSpawnSessionForLog;
@@ -1,3 +1,7 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { p as AGENT_VERSION_SOURCES } from './index-B0HEEYGh.mjs';
3
+ import { p as packageJson } from './package-BqwrPxL0.mjs';
4
+
1
5
  function summarizeSpawnSessionForLog(value) {
2
6
  const input = value && typeof value === "object" ? value : {};
3
7
  const environmentVariables = input.environmentVariables && typeof input.environmentVariables === "object" ? input.environmentVariables : {};
@@ -97,6 +101,80 @@ function pickMirrorForTerminal(sessions, terminalId) {
97
101
  return best ? { sessionId: best.id, claudeSessionId: best.claude } : null;
98
102
  }
99
103
 
104
+ const AGENT_CHECK_INTERVAL = 6 * 60 * 60 * 1e3;
105
+ function stableVersion(value) {
106
+ const match = value.trim().match(/(?:^|\s|v)(\d+\.\d+\.\d+)([-+][\w.-]+)?(?=\s|$)/);
107
+ return match && !match[2] ? match[1] : null;
108
+ }
109
+ function newerVersion(current, latest) {
110
+ const a = current.split(".").map(Number), b = latest.split(".").map(Number);
111
+ for (let i = 0; i < 3; i++) {
112
+ if (b[i] !== a[i]) return b[i] > a[i];
113
+ }
114
+ return false;
115
+ }
116
+ const runVersionCommand = (command, args, shell) => new Promise((resolve, reject) => {
117
+ execFile(
118
+ command,
119
+ args,
120
+ { timeout: 5e3, maxBuffer: 32 * 1024, windowsHide: true, shell },
121
+ (error, stdout) => error ? reject(error) : resolve(stdout)
122
+ );
123
+ });
124
+ async function probeAgentVersion(command, platform = process.platform, run = runVersionCommand) {
125
+ if (platform === "win32") {
126
+ try {
127
+ await run("where.exe", [command], false);
128
+ } catch (error) {
129
+ return { version: null, missing: error.code === 1 };
130
+ }
131
+ }
132
+ try {
133
+ return { version: stableVersion(await run(command, ["--version"], platform === "win32")), missing: false };
134
+ } catch (error) {
135
+ return { version: null, missing: error.code === "ENOENT" };
136
+ }
137
+ }
138
+ async function registryVersion(name) {
139
+ const response = await fetch(`https://registry.npmjs.org/${encodeURIComponent(name)}/latest`, { signal: AbortSignal.timeout(5e3) });
140
+ if (!response.ok) throw new Error("Registry unavailable");
141
+ const data = await response.json();
142
+ return typeof data.version === "string" ? stableVersion(data.version) : null;
143
+ }
144
+ async function detectAgentVersions(deps = { probe: probeAgentVersion, registryVersion }, now = Date.now()) {
145
+ const agents = await Promise.all(AGENT_VERSION_SOURCES.map(async (source) => {
146
+ const local = source.command ? await deps.probe(source.command).catch(() => ({ version: null, missing: false })) : { version: stableVersion(packageJson.dependencies["@anthropic-ai/claude-agent-sdk"]), missing: false };
147
+ if (local.missing) return { id: source.id, installed: null, latest: null, status: "not-installed" };
148
+ const latest = await deps.registryVersion(source.package).catch(() => null);
149
+ const installed = local.version;
150
+ const status = !installed || !latest ? "unknown" : newerVersion(installed, latest) ? "update-available" : "current";
151
+ return { id: source.id, installed, latest, status };
152
+ }));
153
+ return { checkedAt: now, daemonPid: process.pid, agents };
154
+ }
155
+ function startAgentVersionChecks(publish, onError, detect = detectAgentVersions) {
156
+ let stopped = false, pending = false;
157
+ async function refresh() {
158
+ if (stopped || pending) return;
159
+ pending = true;
160
+ try {
161
+ const snapshot = await detect();
162
+ if (!stopped) await publish(snapshot);
163
+ } catch (error) {
164
+ onError(error);
165
+ } finally {
166
+ pending = false;
167
+ }
168
+ }
169
+ void refresh();
170
+ const timer = setInterval(() => void refresh(), AGENT_CHECK_INTERVAL);
171
+ timer.unref();
172
+ return () => {
173
+ stopped = true;
174
+ clearInterval(timer);
175
+ };
176
+ }
177
+
100
178
  function parseTerminalHookPayload(body) {
101
179
  if (!body || typeof body !== "object") return null;
102
180
  const raw = body;
@@ -167,4 +245,4 @@ function decideBackfill(messages, maxLines) {
167
245
  return { replay: messages.slice(messages.length - cap), truncated: true };
168
246
  }
169
247
 
170
- export { MIRROR_BACKFILL_LINES_DEFAULT as M, sanitizeLiveSnapshot as a, serializeLiveSnapshot as b, summarizeSpawnSessionForLog as c, parseMirrorSendParams as d, extractCompleteLines as e, decideBackfill as f, parseTerminalHookPayload as g, decideMirrorBinding as h, isClaudeSessionId as i, mirrorLocalId as j, liveSnapshotChanged as l, mirrorLineKey as m, pickMirrorForTerminal as p, sanitizeTagList as s };
248
+ export { MIRROR_BACKFILL_LINES_DEFAULT as M, sanitizeTagList as a, sanitizeLiveSnapshot as b, serializeLiveSnapshot as c, summarizeSpawnSessionForLog as d, parseMirrorSendParams as e, extractCompleteLines as f, decideBackfill as g, parseTerminalHookPayload as h, isClaudeSessionId as i, decideMirrorBinding as j, mirrorLocalId as k, liveSnapshotChanged as l, mirrorLineKey as m, startAgentVersionChecks as n, pickMirrorForTerminal as p, stableVersion as s };
@@ -1,5 +1,5 @@
1
1
  var name = "very-happy-cli";
2
- var version = "0.2.165";
2
+ var version = "0.2.166";
3
3
  var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
4
4
  var author = "Kirill Dubovitskiy";
5
5
  var contributors = [
@@ -116,12 +116,12 @@ var dependencies = {
116
116
  zod: "^4.0.0"
117
117
  };
118
118
  var optionalDependencies = {
119
- "very-happy-tools-arm64-darwin": "0.2.165",
120
- "very-happy-tools-x64-darwin": "0.2.165",
121
- "very-happy-tools-arm64-linux": "0.2.165",
122
- "very-happy-tools-x64-linux": "0.2.165",
123
- "very-happy-tools-arm64-win32": "0.2.165",
124
- "very-happy-tools-x64-win32": "0.2.165"
119
+ "very-happy-tools-arm64-darwin": "0.2.166",
120
+ "very-happy-tools-x64-darwin": "0.2.166",
121
+ "very-happy-tools-arm64-linux": "0.2.166",
122
+ "very-happy-tools-x64-linux": "0.2.166",
123
+ "very-happy-tools-arm64-win32": "0.2.166",
124
+ "very-happy-tools-x64-win32": "0.2.166"
125
125
  };
126
126
  var devDependencies = {
127
127
  "@slopus/happy-wire": "workspace:*",
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var name = "very-happy-cli";
4
- var version = "0.2.165";
4
+ var version = "0.2.166";
5
5
  var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
6
6
  var author = "Kirill Dubovitskiy";
7
7
  var contributors = [
@@ -118,12 +118,12 @@ var dependencies = {
118
118
  zod: "^4.0.0"
119
119
  };
120
120
  var optionalDependencies = {
121
- "very-happy-tools-arm64-darwin": "0.2.165",
122
- "very-happy-tools-x64-darwin": "0.2.165",
123
- "very-happy-tools-arm64-linux": "0.2.165",
124
- "very-happy-tools-x64-linux": "0.2.165",
125
- "very-happy-tools-arm64-win32": "0.2.165",
126
- "very-happy-tools-x64-win32": "0.2.165"
121
+ "very-happy-tools-arm64-darwin": "0.2.166",
122
+ "very-happy-tools-x64-darwin": "0.2.166",
123
+ "very-happy-tools-arm64-linux": "0.2.166",
124
+ "very-happy-tools-x64-linux": "0.2.166",
125
+ "very-happy-tools-arm64-win32": "0.2.166",
126
+ "very-happy-tools-x64-win32": "0.2.166"
127
127
  };
128
128
  var devDependencies = {
129
129
  "@slopus/happy-wire": "workspace:*",
@@ -2,10 +2,10 @@ import { randomUUID } from 'node:crypto';
2
2
  import { userInfo, hostname } from 'node:os';
3
3
  import { z } from 'zod';
4
4
  import { i as isValidSessionId } from './ids-DU6sLx4C.mjs';
5
- import { f as listDaemonPeers } from './controlClient-Ci7HTMII.mjs';
6
- import { readPersistedSessions } from './persistence-DujtUH94.mjs';
7
- import { s as sessionWebUrl, e as sendUserMessage } from './sessionOps-DG5MMEp_.mjs';
8
- import { b as sendRemotePeerMessage, d as deliverToSession, a as listRemotePeers } from './remoteSessionClient-DCAUHgPz.mjs';
5
+ import { f as listDaemonPeers } from './controlClient-BMUJfUeF.mjs';
6
+ import { readPersistedSessions } from './persistence-B9LmhAE2.mjs';
7
+ import { s as sessionWebUrl, e as sendUserMessage } from './sessionOps-BnaEaOKs.mjs';
8
+ import { b as sendRemotePeerMessage, d as deliverToSession, a as listRemotePeers } from './remoteSessionClient-B2DtWuNP.mjs';
9
9
  import { existsSync, readFileSync, statSync } from 'node:fs';
10
10
  import { resolve, isAbsolute, dirname } from 'node:path';
11
11
 
@@ -4,10 +4,10 @@ var node_crypto = require('node:crypto');
4
4
  var os = require('node:os');
5
5
  var z = require('zod');
6
6
  var ids = require('./ids-B6ZC0HGt.cjs');
7
- var controlClient = require('./controlClient-RWTlQA4_.cjs');
8
- var persistence = require('./persistence-C6ztVW1W.cjs');
9
- var sessionOps = require('./sessionOps-JP64uJmc.cjs');
10
- var remoteSessionClient = require('./remoteSessionClient-BAkIwM2S.cjs');
7
+ var controlClient = require('./controlClient-CmnHGcyl.cjs');
8
+ var persistence = require('./persistence-2Xp_o6x6.cjs');
9
+ var sessionOps = require('./sessionOps-DOyy4gkY.cjs');
10
+ var remoteSessionClient = require('./remoteSessionClient-BwI8rpQw.cjs');
11
11
  var node_fs = require('node:fs');
12
12
  var path = require('node:path');
13
13
 
@@ -2,13 +2,13 @@
2
2
 
3
3
  var promises = require('node:fs/promises');
4
4
  var node_fs = require('node:fs');
5
- var configuration = require('./configuration-BE61XNsg.cjs');
5
+ var configuration = require('./configuration-B0cb3xA3.cjs');
6
6
  var z = require('zod');
7
7
  var authRelay = require('./authRelay-BdYkC1Po.cjs');
8
- var logger = require('./logger-D0hkk7Vo.cjs');
8
+ var logger = require('./logger-JTcJU-uL.cjs');
9
9
  require('node:os');
10
10
  require('node:path');
11
- require('./package-UkmvSFsg.cjs');
11
+ require('./package-C1XvUQFy.cjs');
12
12
  require('node:crypto');
13
13
  require('tweetnacl');
14
14
  require('chalk');
@@ -1,12 +1,12 @@
1
1
  import { readFile, open, unlink, stat, rename } from 'node:fs/promises';
2
2
  import { existsSync, constants, readFileSync, unlinkSync, renameSync } from 'node:fs';
3
- import { c as configuration, P as PRIVATE_FILE_MODE, w as writePrivateFileSync, h as hardenPrivateFileSync, e as ensurePrivateDirectory, a as writePrivateFile, b as hardenPrivateFile } from './configuration-L1qcGTFM.mjs';
3
+ import { c as configuration, P as PRIVATE_FILE_MODE, w as writePrivateFileSync, h as hardenPrivateFileSync, e as ensurePrivateDirectory, a as writePrivateFile, b as hardenPrivateFile } from './configuration-D2v3puap.mjs';
4
4
  import * as z from 'zod';
5
5
  import { c as credentialRelayProblem, e as encodeBase64 } from './authRelay-DSAvg1uv.mjs';
6
- import { l as logger } from './logger-CknSVkIe.mjs';
6
+ import { l as logger } from './logger-BpQcwNnt.mjs';
7
7
  import 'node:os';
8
8
  import 'node:path';
9
- import './package-VIUXrYZ1.mjs';
9
+ import './package-BqwrPxL0.mjs';
10
10
  import 'node:crypto';
11
11
  import 'tweetnacl';
12
12
  import 'chalk';
@@ -1,4 +1,4 @@
1
- import { n as normalizeAcpPermissionMode } from './sessionModeFile-CuNAWCKL.mjs';
1
+ import { n as normalizeAcpPermissionMode } from './sessionModeFile-M4OpiyrF.mjs';
2
2
 
3
3
  function detectDaemonSupervisor(env, platform = process.platform) {
4
4
  const explicit = env.HAPPY_DAEMON_SUPERVISOR?.trim().toLowerCase();
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var sessionModeFile = require('./sessionModeFile-BvOEJ4Fl.cjs');
3
+ var sessionModeFile = require('./sessionModeFile-CIznKD7O.cjs');
4
4
 
5
5
  function detectDaemonSupervisor(env, platform = process.platform) {
6
6
  const explicit = env.HAPPY_DAEMON_SUPERVISOR?.trim().toLowerCase();
@@ -1,7 +1,7 @@
1
1
  import { mkdir, chmod, writeFile, rename } from 'node:fs/promises';
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { join } from 'node:path';
4
- import { c as configuration } from './configuration-L1qcGTFM.mjs';
4
+ import { c as configuration } from './configuration-D2v3puap.mjs';
5
5
  import { P as PI_TEAMS_EXTENSION } from './resources-BdFBQi8r.mjs';
6
6
 
7
7
  async function publish(path, content, mode) {
@@ -3,7 +3,7 @@
3
3
  var promises = require('node:fs/promises');
4
4
  var node_crypto = require('node:crypto');
5
5
  var path = require('node:path');
6
- var configuration = require('./configuration-BE61XNsg.cjs');
6
+ var configuration = require('./configuration-B0cb3xA3.cjs');
7
7
  var resources = require('./resources-JDPugcDq.cjs');
8
8
 
9
9
  async function publish(path, content, mode) {
@@ -5,15 +5,15 @@ var node_crypto = require('node:crypto');
5
5
  var node_http = require('node:http');
6
6
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
7
7
  var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
8
- var piRuntime = require('./piRuntime-DZzjF9It.cjs');
9
- var mcp = require('./mcp-BILnw4si.cjs');
10
- require('./agentGuidance-B5NATuFa.cjs');
8
+ var piRuntime = require('./piRuntime-R8XVChxK.cjs');
9
+ var mcp = require('./mcp-BnNiBBax.cjs');
10
+ require('./agentGuidance-BtBx2xxE.cjs');
11
11
  require('node:fs/promises');
12
12
  require('node:os');
13
13
  require('zod');
14
- require('./logger-D0hkk7Vo.cjs');
15
- require('./persistence-C6ztVW1W.cjs');
16
- require('./configuration-BE61XNsg.cjs');
14
+ require('./logger-JTcJU-uL.cjs');
15
+ require('./persistence-2Xp_o6x6.cjs');
16
+ require('./configuration-B0cb3xA3.cjs');
17
17
  require('axios');
18
18
  require('tweetnacl');
19
19
  require('socket.io-client');
@@ -22,23 +22,23 @@ require('node:fs');
22
22
  require('node:path');
23
23
  var terminalToolContext = require('./terminalToolContext-DoV9Gs7K.cjs');
24
24
  require('./resources-JDPugcDq.cjs');
25
- require('./tools-c2fb0CF5.cjs');
26
- require('./client-Do7cGPEq.cjs');
27
- require('./context-3WVw8qPz.cjs');
25
+ require('./tools-IJ0TAcJs.cjs');
26
+ require('./client-JISJx2f-.cjs');
27
+ require('./context-BFUpYT39.cjs');
28
28
  require('@modelcontextprotocol/sdk/server/stdio.js');
29
- require('./controlClient-RWTlQA4_.cjs');
29
+ require('./controlClient-CmnHGcyl.cjs');
30
30
  require('./limits-C-a7gr04.cjs');
31
- require('./assistantTools-BsrG3PD-.cjs');
32
- require('./sessionOps-JP64uJmc.cjs');
31
+ require('./downloadTarget-CiQqRIc-.cjs');
32
+ require('./sessionOps-DOyy4gkY.cjs');
33
33
  require('./authRelay-BdYkC1Po.cjs');
34
- require('./time-BbzJ7PJQ.cjs');
34
+ require('./time-T0YmeOhS.cjs');
35
35
  require('./backgroundTaskActivity-CBvUdj39.cjs');
36
- require('./remoteSessionClient-BAkIwM2S.cjs');
36
+ require('./remoteSessionClient-BwI8rpQw.cjs');
37
37
  require('./ids-B6ZC0HGt.cjs');
38
- require('./bootstrap-B1dMZA-u.cjs');
38
+ require('./bootstrap-BpXIc2wn.cjs');
39
39
  require('./previewPath-B0rBdhy1.cjs');
40
40
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
41
- require('./titleGenerator-cH6IkPRi.cjs');
41
+ require('./titleGenerator-CoMxqKfP.cjs');
42
42
  require('node:module');
43
43
  require('./oneShotPrompts-CL0dip9C.cjs');
44
44
  require('./projectPath-ChLhdOyt.cjs');
@@ -47,7 +47,7 @@ require('url');
47
47
  require('./trimIdent-4gvk9Wk6.cjs');
48
48
  require('chalk');
49
49
  require('node:util');
50
- require('./package-UkmvSFsg.cjs');
50
+ require('./package-C1XvUQFy.cjs');
51
51
  require('./tmuxSocket-D-Xt6Vn-.cjs');
52
52
 
53
53
  async function startPiTerminalTools(terminalId) {