very-happy-cli 0.2.165 → 0.2.167

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 (198) hide show
  1. package/README.md +1 -1
  2. package/dist/{AcpBackend-DCfNt9bD.cjs → AcpBackend-D1IKJGz_.cjs} +3 -3
  3. package/dist/{AcpBackend-C11FnVw5.mjs → AcpBackend-kFZlee5E.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-BwQHxl6M.cjs → BasePermissionHandler-DHxYAK5L.cjs} +1 -1
  7. package/dist/{BasePermissionHandler-CwJ48yiB.mjs → BasePermissionHandler-DS0kRTNI.mjs} +1 -1
  8. package/dist/{BaseReasoningProcessor-ClF2g1qz.mjs → BaseReasoningProcessor-BRtCCt7q.mjs} +1 -1
  9. package/dist/{BaseReasoningProcessor-81lf_M8G.cjs → BaseReasoningProcessor-CsjVdt_H.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-Ct-VXFeG.mjs} +4 -4
  13. package/dist/{agentHome-D3Nn82kI.cjs → agentHome-DeAWzhSe.cjs} +4 -4
  14. package/dist/{api-AzdzTKFs.cjs → api-BZYLRDM9.cjs} +93 -13
  15. package/dist/{api-DTVPUE7g.mjs → api-CReZazeT.mjs} +93 -13
  16. package/dist/{apiMachine-B_cJldfa.cjs → apiMachine-BgMxGPsR.cjs} +2173 -66
  17. package/dist/{apiMachine-BQ-b4Lu3.mjs → apiMachine-CWndf1Vn.mjs} +2176 -69
  18. package/dist/{attachmentContent-muDCe4Gy.cjs → attachmentContent-HcJqFQW8.cjs} +2 -2
  19. package/dist/{attachmentContent-dzIs-wis.mjs → attachmentContent-j875mwU7.mjs} +2 -2
  20. package/dist/{attachmentLimits-eJZ4ZBjF.cjs → attachmentLimits-BEYEEBm8.cjs} +40 -2
  21. package/dist/{attachmentLimits-B8nzhw-i.mjs → attachmentLimits-CxG3T18E.mjs} +40 -2
  22. package/dist/{auth-Jtmvh1w4.mjs → auth-BIHuc7vY.mjs} +10 -10
  23. package/dist/{auth-BY5ujhGn.mjs → auth-CFS9Lfgv.mjs} +5 -5
  24. package/dist/{auth-DtP-B4gf.cjs → auth-Myr2Q42x.cjs} +10 -10
  25. package/dist/{auth-CfLd3phE.cjs → auth-VzWpbo5P.cjs} +5 -5
  26. package/dist/{auto-ClNnbSoF.cjs → auto-Bf6Dr7_o.cjs} +85 -21
  27. package/dist/{auto-DjWfR1UB.mjs → auto-Df9-zmuN.mjs} +84 -22
  28. package/dist/{bootstrap-D_ExGrY2.mjs → bootstrap-BSOxYpaP.mjs} +2 -2
  29. package/dist/{bootstrap-B1dMZA-u.cjs → bootstrap-Dj8WBiR2.cjs} +2 -2
  30. package/dist/{browser-mwzpOmcw.mjs → browser-BCFIHOvo.mjs} +1 -1
  31. package/dist/{browser-_gV7tcPs.cjs → browser-BoCV40yC.cjs} +1 -1
  32. package/dist/{claudeLocal-G5UmJ81F.cjs → claudeLocal-CGsq7Kul.cjs} +7 -7
  33. package/dist/{claudeLocal-BeHToEK5.mjs → claudeLocal-D5-eA9SC.mjs} +7 -7
  34. package/dist/{claudeLocalLauncher-Cq6bqAT4.mjs → claudeLocalLauncher-C9Cc438l.mjs} +15 -12
  35. package/dist/{claudeLocalLauncher-B4y2BsmO.cjs → claudeLocalLauncher-Cf9QeYDT.cjs} +15 -12
  36. package/dist/{claudeSessionFork-CDJq_b9r.cjs → claudeSessionFork-Byd8zD1U.cjs} +1 -1
  37. package/dist/{claudeSessionFork-CokUhS4r.mjs → claudeSessionFork-CMzAva8G.mjs} +1 -1
  38. package/dist/{client-Do7cGPEq.cjs → client-BKnKRLSt.cjs} +3 -3
  39. package/dist/{client-CJZKBZCE.mjs → client-C7FYMer0.mjs} +2 -2
  40. package/dist/{client-uN9d6Git.cjs → client-D0T5-6Ds.cjs} +2 -2
  41. package/dist/{client-BwaWdlCm.mjs → client-Dsfy_SAb.mjs} +3 -3
  42. package/dist/codex/happyMcpStdioBridge.cjs +23 -18
  43. package/dist/codex/happyMcpStdioBridge.mjs +22 -17
  44. package/dist/{codexAppServerClient-B0QaMQsC.mjs → codexAppServerClient-Dd_4TxHv.mjs} +48 -4
  45. package/dist/{codexAppServerClient-BuSdeUxT.cjs → codexAppServerClient-TiW9OBk4.cjs} +47 -3
  46. package/dist/{codexCommand-C3gdjMAw.mjs → codexCommand-BZSr4MKI.mjs} +170 -69
  47. package/dist/{codexCommand-YdYmykAR.cjs → codexCommand-Bxryqh90.cjs} +170 -69
  48. package/dist/{config-CGCIFRCN.mjs → config-C_Pj7yxV.mjs} +3 -3
  49. package/dist/{config-ChoHFnfO.cjs → config-DXPash-r.cjs} +3 -3
  50. package/dist/{configuration-BE61XNsg.cjs → configuration-C3piBtxY.cjs} +1 -1
  51. package/dist/{configuration-L1qcGTFM.mjs → configuration-WspKd2C2.mjs} +2 -2
  52. package/dist/{connect-D5IKfcfd.cjs → connect-BN-IBElA.cjs} +14 -14
  53. package/dist/{connect-CFD0Em6a.mjs → connect-DGPZs5px.mjs} +14 -14
  54. package/dist/{context-DaCCB4cm.mjs → context-Cr6a3NTg.mjs} +1 -1
  55. package/dist/{context-3WVw8qPz.cjs → context-Jrq4-eCZ.cjs} +1 -1
  56. package/dist/{controlClient-RWTlQA4_.cjs → controlClient-BI6Fw3fQ.cjs} +28 -5
  57. package/dist/{controlClient-Ci7HTMII.mjs → controlClient-DTheOlvC.mjs} +27 -6
  58. package/dist/{createSessionMetadata-CWR-AB2A.mjs → createSessionMetadata-BEZ4DIDA.mjs} +57 -5
  59. package/dist/{createSessionMetadata-CPGTztXP.cjs → createSessionMetadata-zQSz3hgk.cjs} +56 -3
  60. package/dist/defaultPermissionMode-Cif_RHGb.mjs +191 -0
  61. package/dist/defaultPermissionMode-DNKNzk7l.cjs +197 -0
  62. package/dist/{deterministicJson-BBwG-Ase.mjs → deterministicJson-BMMifViN.mjs} +36 -52
  63. package/dist/{deterministicJson-C4Jo2RWy.cjs → deterministicJson-C7O2ulKY.cjs} +41 -59
  64. package/dist/{doctor-ZOQLE5AH.cjs → doctor-BykBaMTr.cjs} +6 -6
  65. package/dist/{doctor-CAC6qY9Z.mjs → doctor-D1KKyPzB.mjs} +6 -6
  66. package/dist/{assistantTools-BsrG3PD-.cjs → downloadTarget-CWTb2-EM.cjs} +44 -6
  67. package/dist/{assistantTools-DPGga5lM.mjs → downloadTarget-Cp48jrIP.mjs} +45 -8
  68. package/dist/{ensureDaemonRunning-b1pvEFcS.mjs → ensureDaemonRunning-Ba5fYoxb.mjs} +5 -5
  69. package/dist/{ensureDaemonRunning-mIgX2vnc.cjs → ensureDaemonRunning-CCxX7MoP.cjs} +5 -5
  70. package/dist/{handleResumeCommand-CTGbZkCL.mjs → handleResumeCommand-BTUGlNjB.mjs} +5 -5
  71. package/dist/{handleResumeCommand-DGNhbv-3.cjs → handleResumeCommand-yPdDQHqz.cjs} +5 -5
  72. package/dist/{index-vVWpCoTr.mjs → index-B0HEEYGh.mjs} +22 -5
  73. package/dist/{index-BzIxE0Eu.cjs → index-BjhKqDa0.cjs} +3 -3
  74. package/dist/{index-BgzjPv07.mjs → index-C3_83bqS.mjs} +3 -3
  75. package/dist/{index-DqlyNgt4.cjs → index-C9hI8a10.cjs} +26 -4
  76. package/dist/{index-DjtBengz.mjs → index-CE2GgPbr.mjs} +40 -39
  77. package/dist/{index-Diu6HdWH.mjs → index-D8m8Ripb.mjs} +4 -4
  78. package/dist/{index-DrSPR59N.cjs → index-DifM62wX.cjs} +39 -38
  79. package/dist/{index-DIodyAqF.cjs → index-PNMQPKhz.cjs} +4 -4
  80. package/dist/index.cjs +2 -2
  81. package/dist/index.mjs +2 -2
  82. package/dist/{install-BO_W7VhL.mjs → install-BdvKiOQw.mjs} +2 -0
  83. package/dist/{install-Cp_aB-NQ.mjs → install-C0-QFn9s.mjs} +3 -3
  84. package/dist/{install-Cs5qAPrB.cjs → install-Cf6AFSWC.cjs} +2 -0
  85. package/dist/{install-DrUQk2DJ.cjs → install-CqZVeze8.cjs} +3 -3
  86. package/dist/lib.cjs +12 -12
  87. package/dist/lib.d.cts +116 -2
  88. package/dist/lib.d.mts +116 -2
  89. package/dist/lib.mjs +12 -12
  90. package/dist/{lidState-BLHLmhwd.mjs → lidState-B2ZxdREe.mjs} +1 -1
  91. package/dist/{lidState-z9ekRpZu.cjs → lidState-Bc2K9H9l.cjs} +1 -1
  92. package/dist/{localHappyAgentAuth-BWvmc_Hg.mjs → localHappyAgentAuth-B5XPEMwk.mjs} +1 -1
  93. package/dist/{localHappyAgentAuth-BCx0y1qW.cjs → localHappyAgentAuth-T5GOvRha.cjs} +1 -1
  94. package/dist/{logger-D0hkk7Vo.cjs → logger-B_MWPbZz.cjs} +2 -2
  95. package/dist/{logger-CknSVkIe.mjs → logger-CbBv3q_b.mjs} +2 -2
  96. package/dist/{machineMetadata-BDCYOXQg.cjs → machineMetadata-BafS4JY8.cjs} +4 -3
  97. package/dist/{machineMetadata-Cj1DoFot.mjs → machineMetadata-DHg238U4.mjs} +4 -3
  98. package/dist/{main-COAPGIso.cjs → main-DNrA0qBy.cjs} +45 -45
  99. package/dist/{main-CKUfkVG_.mjs → main-DXAK0n7x.mjs} +45 -45
  100. package/dist/{manager-BQ4flvQZ.mjs → manager-BEsI4qt3.mjs} +9 -3
  101. package/dist/{manager-Cly8xVIR.cjs → manager-HrEj442o.cjs} +8 -2
  102. package/dist/{mcp-BILnw4si.cjs → mcp-AvPOhDXy.cjs} +24 -19
  103. package/dist/{mcp-DeYUfpo8.mjs → mcp-BotAjCdD.mjs} +23 -18
  104. package/dist/mirrorProtocol-BdcN6QlN.cjs +1270 -0
  105. package/dist/mirrorProtocol-BwHm8odn.mjs +1247 -0
  106. package/dist/{package-UkmvSFsg.cjs → package-C9ZP9bpX.cjs} +7 -7
  107. package/dist/{package-VIUXrYZ1.mjs → package-DU1DxhH9.mjs} +7 -7
  108. package/dist/{peerTools-CttfOxti.cjs → peerTools-Dkbu7gag.cjs} +4 -4
  109. package/dist/{peerTools-SWITnkqz.mjs → peerTools-os2DVjA0.mjs} +4 -4
  110. package/dist/{persistence-C6ztVW1W.cjs → persistence-BYGl0QYw.cjs} +147 -25
  111. package/dist/{persistence-DujtUH94.mjs → persistence-ON0zpHfb.mjs} +123 -12
  112. package/dist/{piRunnerArgs-BVJHIjlk.mjs → piRunnerArgs-CYsnT9sV.mjs} +1 -1
  113. package/dist/{piRunnerArgs-tBQg6xDw.cjs → piRunnerArgs-DpbvstUX.cjs} +1 -1
  114. package/dist/{piRuntime-DZzjF9It.cjs → piRuntime-CDnILlCd.cjs} +1 -1
  115. package/dist/{piRuntime-DKFA8u8t.mjs → piRuntime-CmEid-wu.mjs} +1 -1
  116. package/dist/{piTerminal-BTSaFlpV.mjs → piTerminal-0eNlXSlL.mjs} +17 -17
  117. package/dist/{piTerminal-t5pQHCPT.cjs → piTerminal-B57TgMON.cjs} +17 -17
  118. package/dist/precheckCompat-CWOi5c9L.cjs +29 -0
  119. package/dist/precheckCompat-DeEbilbr.mjs +26 -0
  120. package/dist/rateLimitWindows-CusGIqlq.cjs +258 -0
  121. package/dist/rateLimitWindows-vZ9Bo7aT.mjs +248 -0
  122. package/dist/{registerCommonHandlers-BR0J4g64.mjs → registerCommonHandlers-B0PVff2U.mjs} +2 -2
  123. package/dist/{registerCommonHandlers--8ds2auE.cjs → registerCommonHandlers-DVYB3iVn.cjs} +2 -2
  124. package/dist/{registerKillSessionHandler-Czz0tdki.mjs → registerKillSessionHandler-BJMHJHXe.mjs} +15 -10
  125. package/dist/{registerKillSessionHandler-CI23l8aJ.cjs → registerKillSessionHandler-BwXGKtg_.cjs} +15 -10
  126. package/dist/{remoteSessionClient-DCAUHgPz.mjs → remoteSessionClient-BzPXSC21.mjs} +5 -5
  127. package/dist/{remoteSessionClient-BAkIwM2S.cjs → remoteSessionClient-PyUAIhwK.cjs} +5 -5
  128. package/dist/{tools-BVRoGcQH.mjs → reportProgressTool-BvB13EwC.mjs} +67 -10
  129. package/dist/{tools-mWqsE6ji.cjs → reportProgressTool-D4KB_4cP.cjs} +73 -9
  130. package/dist/{run-CkKujjn8.cjs → run-BC8jzq_h.cjs} +558 -122
  131. package/dist/{run-B75qm2I6.mjs → run-O2M8LsWf.mjs} +556 -120
  132. package/dist/{runClaude-B1T9DLLi.cjs → runClaude-C7jPa8VP.cjs} +93 -26
  133. package/dist/{runClaude-aBfBweec.mjs → runClaude-DGkr5E7s.mjs} +93 -26
  134. package/dist/{runClaudeDeps-BGjNGfuZ.cjs → runClaudeDeps-5kzncqME.cjs} +113 -35
  135. package/dist/{runClaudeDeps-BOrPP4J1.mjs → runClaudeDeps-CX_TxS78.mjs} +116 -37
  136. package/dist/{runGemini-BuAA_OQb.cjs → runGemini-BfYA4Uqc.cjs} +43 -36
  137. package/dist/{runGemini-a-V7JE-J.mjs → runGemini-CwmGBH3L.mjs} +43 -36
  138. package/dist/{runOpenClaw-DUSwXg1A.mjs → runOpenClaw-BYAPYFyL.mjs} +18 -18
  139. package/dist/{runOpenClaw-BBVffIh9.cjs → runOpenClaw-C72jut7v.cjs} +18 -18
  140. package/dist/{sandbox-Fd2G5yaq.cjs → sandbox-Bqkp8IT7.cjs} +4 -4
  141. package/dist/{sandbox-Brb_5wzc.mjs → sandbox-DlVnK1Vi.mjs} +4 -4
  142. package/dist/{selfCheck-NuJKMInJ.cjs → selfCheck-B4lLZplk.cjs} +34 -34
  143. package/dist/selfCheck-DYTGBdIO.mjs +84 -0
  144. package/dist/{send-DEQJiq_x.mjs → send-B5bWW9Tl.mjs} +8 -8
  145. package/dist/{send-4dgHKC3u.cjs → send-BCwS6n_s.cjs} +8 -8
  146. package/dist/{server-C6AlUFkw.mjs → server-CEJfRQfj.mjs} +4 -4
  147. package/dist/{server-DWGcDmHG.cjs → server-CFWZehnC.cjs} +6 -6
  148. package/dist/{sessionLock-Dm8QyGo4.mjs → sessionLock-AwOYsKT7.mjs} +12 -4
  149. package/dist/{sessionLock-B1GgaO1q.cjs → sessionLock-LBWNjpHf.cjs} +12 -3
  150. package/dist/{sessionModeFile-BvOEJ4Fl.cjs → sessionModeFile-CyPuZRIU.cjs} +1 -1
  151. package/dist/{sessionModeFile-CuNAWCKL.mjs → sessionModeFile-fvFn1JVG.mjs} +1 -1
  152. package/dist/{sessionOps-DG5MMEp_.mjs → sessionOps-DZRH4-hV.mjs} +4 -4
  153. package/dist/{sessionOps-JP64uJmc.cjs → sessionOps-DzbZI3Eq.cjs} +4 -4
  154. package/dist/{sessionScanner-DqSk5Ol_.mjs → sessionScanner-Q_Ei2flB.mjs} +75 -19
  155. package/dist/{sessionScanner-BBPEgJ5S.cjs → sessionScanner-i-cgwFVw.cjs} +75 -19
  156. package/dist/{sessions-4isbBAWi.mjs → sessions-DAmjMAZN.mjs} +9 -9
  157. package/dist/{sessions-DgJuw_i0.cjs → sessions-DYK5hD4T.cjs} +9 -9
  158. package/dist/{setupOfflineReconnection-_MoZtsro.mjs → setupOfflineReconnection-BfDBxNdo.mjs} +2 -2
  159. package/dist/{setupOfflineReconnection-CKJKVIUS.cjs → setupOfflineReconnection-C2LO3hSP.cjs} +2 -2
  160. package/dist/{spawn-BTOG4tTm.mjs → spawn-BmjG5j5Y.mjs} +15 -14
  161. package/dist/{spawn-CshERWbY.cjs → spawn-GK_sXE8h.cjs} +15 -14
  162. package/dist/{spawnAgents-Czi2VDzj.mjs → spawnAgents-HDaE3C0-.mjs} +1 -1
  163. package/dist/{spawnAgents-McixdtV1.cjs → spawnAgents-vglexX9N.cjs} +1 -1
  164. package/dist/{spawnHappyCLI-Dc4xYm8P.mjs → spawnHappyCLI-B2h0P4b5.mjs} +1 -1
  165. package/dist/{spawnHappyCLI-Dd5_8Vex.cjs → spawnHappyCLI-J4iEhfyZ.cjs} +1 -1
  166. package/dist/specialCommands-DisVxagO.mjs +93 -0
  167. package/dist/specialCommands-DmJMKspE.cjs +96 -0
  168. package/dist/{startFileWatcher-B0VlG-Fn.mjs → startFileWatcher-CeK1k5gt.mjs} +1 -1
  169. package/dist/{startFileWatcher-1LedLBY-.cjs → startFileWatcher-xKo8AoYl.cjs} +1 -1
  170. package/dist/{streamRelay-C0AffuX6.cjs → streamRelay-Ce9sgcOV.cjs} +1 -1
  171. package/dist/{streamRelay-BzMEEvJU.mjs → streamRelay-Iogsh51a.mjs} +1 -1
  172. package/dist/{sync-DwUUGGFz.cjs → sync-Bvc-vh6C.cjs} +1 -1
  173. package/dist/{sync-Dfm6K2te.mjs → sync-CCwYpJMS.mjs} +1 -1
  174. package/dist/{systemPrompt-D41Zw1a3.mjs → systemPrompt-BNIkP3tR.mjs} +3 -3
  175. package/dist/{systemPrompt-CB1Ls0AE.cjs → systemPrompt-DwOddbuG.cjs} +3 -3
  176. package/dist/{teams-D8Ly3i6u.mjs → teams-DRrLBcys.mjs} +7 -7
  177. package/dist/{teams-NWv2ji16.cjs → teams-GHMCRZOw.cjs} +7 -7
  178. package/dist/{time-BbzJ7PJQ.cjs → time-BXvtjhe9.cjs} +1 -1
  179. package/dist/{time-v1Y_qEJp.mjs → time-PG5Dfwdv.mjs} +1 -1
  180. package/dist/{titleGenerator-cH6IkPRi.cjs → titleGenerator-B07bZA0V.cjs} +2 -2
  181. package/dist/{titleGenerator-BhoblAQY.mjs → titleGenerator-CIzfpfZW.mjs} +1 -1
  182. package/dist/{todo-D1hgWV6d.cjs → todo-B0aeoNu3.cjs} +6 -6
  183. package/dist/{todo-CuNct-fw.mjs → todo-CfL7SBFc.mjs} +6 -6
  184. package/dist/{tools-jof0Bu54.mjs → tools-D91mq5Ib.mjs} +1 -1
  185. package/dist/{tools-c2fb0CF5.cjs → tools-DJIANHSh.cjs} +1 -1
  186. package/dist/transcriptCursor-B7T_gkQ0.mjs +102 -0
  187. package/dist/transcriptCursor-DcXGLeSc.cjs +106 -0
  188. package/dist/{uninstall-BB7WYYAk.mjs → uninstall-5xz3Xvhf.mjs} +3 -3
  189. package/dist/{uninstall-VPH5GfrA.cjs → uninstall-AtzOfdrj.cjs} +3 -3
  190. package/package.json +7 -7
  191. package/scripts/terminal_status_forwarder.cjs +89 -0
  192. package/dist/defaultPermissionMode-BnxJPVHT.mjs +0 -4
  193. package/dist/defaultPermissionMode-CxmTXUQR.cjs +0 -7
  194. package/dist/mirrorProtocol-BNLtoWjO.mjs +0 -170
  195. package/dist/mirrorProtocol-BUtmg1ws.cjs +0 -186
  196. package/dist/selfCheck-BgwJ3NGS.mjs +0 -84
  197. package/dist/specialCommands-BSqhYg5X.mjs +0 -52
  198. package/dist/specialCommands-DSsTeRej.cjs +0 -54
@@ -2,49 +2,51 @@ import chalk from 'chalk';
2
2
  import { homedir } from 'node:os';
3
3
  import { readFileSync } from 'node:fs';
4
4
  import { resolve } from 'node:path';
5
- import { A as AUTOMATION_NAME_PATTERN, i as isAutomationRunTerminal } from './index-vVWpCoTr.mjs';
6
- import { c as configuration } from './configuration-L1qcGTFM.mjs';
7
- import { a as authenticatedAutomationsClient, b as automationRunIdFromEnv, i as isAutomationsUnavailable, A as AUTOMATIONS_UNAVAILABLE_MESSAGE } from './client-CJZKBZCE.mjs';
5
+ import { A as AUTOMATION_NAME_PATTERN, i as isAutomationRunTerminal, a as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, b as AutomationPrecheckSchema } from './index-B0HEEYGh.mjs';
6
+ import { c as configuration } from './configuration-WspKd2C2.mjs';
7
+ import { a as authenticatedAutomationsClient, b as automationRunIdFromEnv, i as isAutomationsUnavailable, A as AUTOMATIONS_UNAVAILABLE_MESSAGE } from './client-C7FYMer0.mjs';
8
8
  import { p as parseDuration, t as triggerFromFlags, d as describeTrigger, a as describeAction } from './template-CiOPa2rd.mjs';
9
- import { A as AUTOMATION_SKILL, i as installAutomationSkill } from './install-BO_W7VhL.mjs';
10
- import { s as sessionWebUrl } from './sessionOps-DG5MMEp_.mjs';
11
- import { parseEnvAssignment } from './spawn-BTOG4tTm.mjs';
12
- import { S as SPAWN_AGENTS, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES } from './spawnAgents-Czi2VDzj.mjs';
13
- import { d as delay } from './time-v1Y_qEJp.mjs';
9
+ import { A as AUTOMATION_SKILL, i as installAutomationSkill } from './install-BdvKiOQw.mjs';
10
+ import { u as updateAutomationChecked, c as createAutomationChecked } from './precheckCompat-DeEbilbr.mjs';
11
+ import { s as sessionWebUrl } from './sessionOps-DZRH4-hV.mjs';
12
+ import { parseEnvAssignment } from './spawn-BmjG5j5Y.mjs';
13
+ import { S as SPAWN_AGENTS, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES } from './spawnAgents-HDaE3C0-.mjs';
14
+ import { d as delay } from './time-PG5Dfwdv.mjs';
14
15
  import 'zod';
15
16
  import '@paralleldrive/cuid2';
16
- import './package-VIUXrYZ1.mjs';
17
+ import './package-DU1DxhH9.mjs';
17
18
  import 'node:fs/promises';
18
- import './persistence-DujtUH94.mjs';
19
+ import './persistence-ON0zpHfb.mjs';
19
20
  import './authRelay-DSAvg1uv.mjs';
20
21
  import 'node:crypto';
21
22
  import 'tweetnacl';
22
- import './logger-CknSVkIe.mjs';
23
+ import './logger-CbBv3q_b.mjs';
23
24
  import 'node:util';
24
25
  import './resources-BdFBQi8r.mjs';
25
26
  import 'axios';
26
- import './controlClient-Ci7HTMII.mjs';
27
+ import './controlClient-DTheOlvC.mjs';
27
28
  import 'socket.io-client';
28
29
  import './backgroundTaskActivity-8PdPxrvy.mjs';
29
30
  import './path-D2wdaNSk.mjs';
30
- import './claudeSessionFork-CokUhS4r.mjs';
31
+ import './claudeSessionFork-CMzAva8G.mjs';
31
32
  import 'node:readline';
32
- import './codexAppServerClient-B0QaMQsC.mjs';
33
+ import './codexAppServerClient-Dd_4TxHv.mjs';
33
34
  import 'node:child_process';
34
35
  import 'cross-spawn';
35
36
  import './contentLogMetadata-BlWI0egu.mjs';
36
- import './manager-BQ4flvQZ.mjs';
37
+ import './manager-BEsI4qt3.mjs';
37
38
  import '@anthropic-ai/sandbox-runtime';
39
+ import './rateLimitWindows-vZ9Bo7aT.mjs';
38
40
  import './codexThreadFork-R76RU5H0.mjs';
39
- import './createSessionMetadata-CWR-AB2A.mjs';
41
+ import './createSessionMetadata-BEZ4DIDA.mjs';
40
42
  import './projectPath-BTBIMB57.mjs';
41
43
  import 'path';
42
44
  import 'url';
43
45
  import './forkBackfill-DYIjlN1Z.mjs';
44
46
 
45
47
  const AUTO_ACTIONS = ["list", "show", "create", "edit", "pause", "resume", "rm", "run", "fire", "runs", "cancel", "ack", "report", "skill", "install", "uninstall", "help"];
46
- const VALUE_FLAGS = ["--name", "--rename", "--description", "--machine", "--cron", "--tz", "--every", "--at", "--spawn-dir", "--prompt", "--prompt-file", "--agent", "--model", "--permission-mode", "--sticky-key", "--send-session", "--cwd", "--env", "--timeout", "--concurrency", "--max-runtime", "--payload", "--payload-json", "--payload-file", "--dedupe-key", "--status", "--limit", "--run", "--summary", "--error", "--attention", "--host", "--home"];
47
- const BOOL_FLAGS = ["--manual", "--script", "--worktree", "--paused", "--wait", "--json", "--apply", "--all-machines", "--all", "--attention", "--help", "-h"];
48
+ const VALUE_FLAGS = ["--name", "--rename", "--description", "--machine", "--cron", "--tz", "--every", "--at", "--spawn-dir", "--prompt", "--prompt-file", "--agent", "--model", "--permission-mode", "--sticky-key", "--send-session", "--cwd", "--env", "--timeout", "--concurrency", "--max-runtime", "--payload", "--payload-json", "--payload-file", "--dedupe-key", "--status", "--limit", "--run", "--summary", "--error", "--attention", "--host", "--home", "--precheck-shell", "--precheck-argv", "--precheck-cwd", "--precheck-timeout"];
49
+ const BOOL_FLAGS = ["--manual", "--script", "--worktree", "--paused", "--wait", "--json", "--apply", "--all-machines", "--all", "--attention", "--precheck-output", "--no-precheck", "--help", "-h"];
48
50
  function parseAutoArgs(args) {
49
51
  const command = { action: "help", flags: {}, env: [], bools: /* @__PURE__ */ new Set(), argv: [] };
50
52
  if (args.length === 0) return command;
@@ -139,6 +141,52 @@ function actionFromCommand(command, current) {
139
141
  }
140
142
  return { kind: "spawn", agent: flags["--agent"] ?? "claude", directory: resolve(flags["--spawn-dir"]), prompt, ...spawnDetails(command) };
141
143
  }
144
+ function precheckFromCommand(command, current) {
145
+ const { flags, bools } = command;
146
+ const shell = flags["--precheck-shell"];
147
+ const argvJson = flags["--precheck-argv"];
148
+ const modifiers = ["--precheck-cwd", "--precheck-timeout"].filter((flag) => flags[flag] !== void 0).concat(bools.has("--precheck-output") ? ["--precheck-output"] : []);
149
+ if (bools.has("--no-precheck")) {
150
+ if (shell !== void 0 || argvJson !== void 0 || modifiers.length) throw new Error("--no-precheck cannot be combined with other --precheck-* options");
151
+ return null;
152
+ }
153
+ if (shell === void 0 && argvJson === void 0 && modifiers.length === 0) return void 0;
154
+ if (shell !== void 0 && argvJson !== void 0) throw new Error("Use only one of --precheck-shell and --precheck-argv");
155
+ let base;
156
+ if (shell !== void 0) base = { shell };
157
+ else if (argvJson !== void 0) {
158
+ let argv;
159
+ try {
160
+ argv = JSON.parse(argvJson);
161
+ } catch {
162
+ throw new Error(`--precheck-argv must be a JSON array of strings, e.g. '["./has-new.sh","--since","5m"]'`);
163
+ }
164
+ if (!Array.isArray(argv) || argv.length === 0 || !argv.every((part) => typeof part === "string" && part.length > 0)) throw new Error("--precheck-argv must be a non-empty JSON array of non-empty strings");
165
+ base = { command: argv };
166
+ } else {
167
+ if (!current) throw new Error(`${modifiers.join(", ")} need a precheck: give --precheck-shell <line> or --precheck-argv <json>`);
168
+ base = current;
169
+ }
170
+ let timeoutMs;
171
+ if (flags["--precheck-timeout"] !== void 0) {
172
+ timeoutMs = parseDuration(flags["--precheck-timeout"]);
173
+ if (timeoutMs < 1e3 || timeoutMs > AUTOMATION_PRECHECK_MAX_TIMEOUT_MS) throw new Error(`--precheck-timeout must be between 1s and ${AUTOMATION_PRECHECK_MAX_TIMEOUT_MS / 6e4}m`);
174
+ }
175
+ const precheck = {
176
+ ...base,
177
+ ...flags["--precheck-cwd"] !== void 0 ? { cwd: flags["--precheck-cwd"] } : {},
178
+ ...timeoutMs !== void 0 ? { timeoutMs } : {},
179
+ ...bools.has("--precheck-output") ? { includeOutput: true } : {}
180
+ };
181
+ const parsed = AutomationPrecheckSchema.safeParse(precheck);
182
+ if (!parsed.success) throw new Error(`Invalid precheck: ${parsed.error.issues[0]?.message ?? "check the --precheck-* options"}`);
183
+ return parsed.data;
184
+ }
185
+ function describePrecheck(precheck) {
186
+ const what = precheck.shell !== void 0 ? `sh: ${precheck.shell}` : `argv: ${JSON.stringify(precheck.command)}`;
187
+ const extras = [precheck.cwd ? `cwd ${precheck.cwd}` : null, precheck.timeoutMs ? `timeout ${Math.round(precheck.timeoutMs / 1e3)}s` : null, precheck.includeOutput ? "output \u2192 prompt" : null].filter(Boolean);
188
+ return extras.length ? `${what} (${extras.join(", ")})` : what;
189
+ }
142
190
  function spawnDetails(command) {
143
191
  const { flags, bools } = command;
144
192
  if (flags["--agent"] !== void 0 && !SPAWN_AGENTS.includes(flags["--agent"])) throw new Error(`--agent must be one of: ${SPAWN_AGENTS.join(", ")}`);
@@ -180,6 +228,14 @@ ${chalk.bold("Action (one):")}
180
228
  --send-session <id> --prompt <text>|--prompt-file <file>
181
229
  --script -- <argv\u2026> [--cwd <dir>] [--env K=V]... [--timeout <dur>]
182
230
 
231
+ ${chalk.bold("Precheck (optional, runs before the action; exit 0 runs it, anything else records a skip):")}
232
+ --precheck-shell '<command line>' | --precheck-argv '<json array>'
233
+ [--precheck-cwd <dir>] [--precheck-timeout <dur>] (default 60s, max 10m)
234
+ [--precheck-output] append the precheck's stdout to the spawn/send prompt
235
+ --no-precheck edit: remove the precheck
236
+ A shell line is not template-rendered; read the payload from $VH_AUTOMATION_PAYLOAD.
237
+ Consecutive scheduled skips for the same reason fold into one run shown as \xD7N.
238
+
183
239
  ${chalk.bold("Options:")}
184
240
  --machine <id>|this Executing machine (default: this machine)
185
241
  --description <text>
@@ -204,12 +260,14 @@ function printAutomation(a) {
204
260
  if (a.description) console.log(` ${a.description}`);
205
261
  console.log(` trigger: ${describeTrigger(a.trigger)} next: ${fmtTime(a.nextRunAt)}`);
206
262
  console.log(` action: ${describeAction(a.action)}`);
263
+ if (a.precheck) console.log(` precheck: ${describePrecheck(a.precheck)}`);
207
264
  console.log(` machine: ${a.machineId} concurrency: ${a.concurrency} max runtime: ${Math.round(a.maxRuntimeMs / 6e4)}m`);
208
265
  console.log(` last run: ${fmtTime(a.lastRunAt)} ${a.lastRunStatus ?? ""}`);
209
266
  }
210
267
  function runLine(run) {
211
268
  const status = run.status === "done" ? chalk.green(run.status) : ["failed", "expired"].includes(run.status) ? chalk.red(run.status) : run.status === "running" ? chalk.cyan(run.status) : run.status;
212
- return `${fmtTime(run.createdAt)} ${status.padEnd(9)} ${run.automationName.padEnd(20)} ${run.source.padEnd(8)} ${run.id}${run.needsAttention ? chalk.yellow(` ! ${run.attentionReason ?? "attention"}`) : ""}`;
269
+ const folded = (run.occurrenceCount ?? 1) > 1 ? ` \xD7${run.occurrenceCount}` : "";
270
+ return `${fmtTime(run.createdAt)} ${status.padEnd(9)} ${run.automationName.padEnd(20)} ${run.source.padEnd(8)} ${run.id}${folded}${run.status === "skipped" && run.error ? chalk.dim(` ${run.error}`) : ""}${run.needsAttention ? chalk.yellow(` ! ${run.attentionReason ?? "attention"}`) : ""}`;
213
271
  }
214
272
  function printRun(run) {
215
273
  console.log(runLine(run));
@@ -311,7 +369,9 @@ async function handleAutoCommand(args) {
311
369
  ...command.flags["--max-runtime"] !== void 0 ? { maxRuntimeMs: parseDuration(command.flags["--max-runtime"]) } : {},
312
370
  ...command.bools.has("--paused") ? { status: "paused" } : {}
313
371
  };
314
- const automation = await client.create(input);
372
+ const precheck = precheckFromCommand(command);
373
+ if (precheck) input.precheck = precheck;
374
+ const automation = await createAutomationChecked(client, input);
315
375
  if (json) {
316
376
  console.log(JSON.stringify({ automation }));
317
377
  return;
@@ -334,8 +394,10 @@ async function handleAutoCommand(args) {
334
394
  ...command.flags["--concurrency"] !== void 0 ? { concurrency: concurrency(command.flags["--concurrency"]) } : {},
335
395
  ...command.flags["--max-runtime"] !== void 0 ? { maxRuntimeMs: parseDuration(command.flags["--max-runtime"]) } : {}
336
396
  };
397
+ const precheck = precheckFromCommand(command, current.precheck);
398
+ if (precheck !== void 0) input.precheck = precheck;
337
399
  if (Object.keys(input).length === 1) throw new Error("Nothing to change");
338
- const automation = await client.update(current.id, input);
400
+ const automation = await updateAutomationChecked(client, current.id, input);
339
401
  if (json) {
340
402
  console.log(JSON.stringify({ automation }));
341
403
  return;
@@ -465,4 +527,4 @@ function concurrency(value) {
465
527
  return value;
466
528
  }
467
529
 
468
- export { AUTO_ACTIONS, AUTO_HELP, actionFromCommand, handleAutoCommand, parseAutoArgs };
530
+ export { AUTO_ACTIONS, AUTO_HELP, actionFromCommand, describePrecheck, handleAutoCommand, parseAutoArgs, precheckFromCommand };
@@ -1,9 +1,9 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { mkdir, writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
- import { c as configuration } from './configuration-L1qcGTFM.mjs';
4
+ import { c as configuration } from './configuration-WspKd2C2.mjs';
5
5
  import 'node:os';
6
- import './package-VIUXrYZ1.mjs';
6
+ import './package-DU1DxhH9.mjs';
7
7
 
8
8
  const ASSISTANT_CLAUDE_MD = `# very-happy \u8C03\u5EA6\u4E2D\u5FC3\uFF08\u8BED\u97F3\u52A9\u624B\uFF09
9
9
 
@@ -3,9 +3,9 @@
3
3
  var node_fs = require('node:fs');
4
4
  var promises = require('node:fs/promises');
5
5
  var path = require('node:path');
6
- var configuration = require('./configuration-BE61XNsg.cjs');
6
+ var configuration = require('./configuration-C3piBtxY.cjs');
7
7
  require('node:os');
8
- require('./package-UkmvSFsg.cjs');
8
+ require('./package-C9ZP9bpX.cjs');
9
9
 
10
10
  const ASSISTANT_CLAUDE_MD = `# very-happy \u8C03\u5EA6\u4E2D\u5FC3\uFF08\u8BED\u97F3\u52A9\u624B\uFF09
11
11
 
@@ -1,5 +1,5 @@
1
1
  import open from 'open';
2
- import { l as logger } from './logger-CknSVkIe.mjs';
2
+ import { l as logger } from './logger-CbBv3q_b.mjs';
3
3
 
4
4
  async function openBrowser(url) {
5
5
  try {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var open = require('open');
4
- var logger = require('./logger-D0hkk7Vo.cjs');
4
+ var logger = require('./logger-B_MWPbZz.cjs');
5
5
 
6
6
  async function openBrowser(url) {
7
7
  try {
@@ -4,25 +4,25 @@ var spawn = require('cross-spawn');
4
4
  var node_readline = require('node:readline');
5
5
  var node_fs = require('node:fs');
6
6
  var node_crypto = require('node:crypto');
7
- var logger = require('./logger-D0hkk7Vo.cjs');
7
+ var logger = require('./logger-B_MWPbZz.cjs');
8
8
  var smallFastModel = require('./smallFastModel-D_uxGMo3.cjs');
9
9
  var path$1 = require('node:path');
10
10
  var path = require('./path-B7zW-WwE.cjs');
11
- var systemPrompt = require('./systemPrompt-CB1Ls0AE.cjs');
12
- var manager = require('./manager-Cly8xVIR.cjs');
11
+ var systemPrompt = require('./systemPrompt-DwOddbuG.cjs');
12
+ var manager = require('./manager-HrEj442o.cjs');
13
13
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
14
14
  var claudeCliPath = require('./claudeCliPath-U4HHmV4r.cjs');
15
15
  require('chalk');
16
16
  require('node:util');
17
- require('./configuration-BE61XNsg.cjs');
17
+ require('./configuration-C3piBtxY.cjs');
18
18
  require('node:os');
19
- require('./package-UkmvSFsg.cjs');
19
+ require('./package-C9ZP9bpX.cjs');
20
20
  require('node:fs/promises');
21
- require('./index-DqlyNgt4.cjs');
21
+ require('./index-C9hI8a10.cjs');
22
22
  require('zod');
23
23
  require('@paralleldrive/cuid2');
24
24
  require('./trimIdent-4gvk9Wk6.cjs');
25
- require('./agentGuidance-B5NATuFa.cjs');
25
+ require('./agentGuidance-BtBx2xxE.cjs');
26
26
  require('@anthropic-ai/sandbox-runtime');
27
27
  require('./projectPath-ChLhdOyt.cjs');
28
28
  require('path');
@@ -2,25 +2,25 @@ import { spawn } from 'cross-spawn';
2
2
  import { createInterface } from 'node:readline';
3
3
  import { readdirSync, statSync, mkdirSync, existsSync } from 'node:fs';
4
4
  import { randomUUID } from 'node:crypto';
5
- import { l as logger } from './logger-CknSVkIe.mjs';
5
+ import { l as logger } from './logger-CbBv3q_b.mjs';
6
6
  import { p as pinSmallFastModel, e as ensureLocalProxyBypass } from './smallFastModel-BLNgMrwR.mjs';
7
7
  import { join } from 'node:path';
8
8
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
9
- import { c as claudeCheckSession, s as systemPrompt } from './systemPrompt-D41Zw1a3.mjs';
10
- import { i as initializeSandbox, a as wrapCommand } from './manager-BQ4flvQZ.mjs';
9
+ import { c as claudeCheckSession, s as systemPrompt } from './systemPrompt-BNIkP3tR.mjs';
10
+ import { i as initializeSandbox, a as wrapCommand } from './manager-BEsI4qt3.mjs';
11
11
  import { c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
12
12
  import { claudeCliPath } from './claudeCliPath-BqkaH2oR.mjs';
13
13
  import 'chalk';
14
14
  import 'node:util';
15
- import './configuration-L1qcGTFM.mjs';
15
+ import './configuration-WspKd2C2.mjs';
16
16
  import 'node:os';
17
- import './package-VIUXrYZ1.mjs';
17
+ import './package-DU1DxhH9.mjs';
18
18
  import 'node:fs/promises';
19
- import './index-vVWpCoTr.mjs';
19
+ import './index-B0HEEYGh.mjs';
20
20
  import 'zod';
21
21
  import '@paralleldrive/cuid2';
22
22
  import './trimIdent-BAjmv_TG.mjs';
23
- import './agentGuidance-CQuNlNx8.mjs';
23
+ import './agentGuidance-BDYt2Qy2.mjs';
24
24
  import '@anthropic-ai/sandbox-runtime';
25
25
  import './projectPath-BTBIMB57.mjs';
26
26
  import 'path';
@@ -1,42 +1,45 @@
1
- import { l as logger } from './logger-CknSVkIe.mjs';
2
- import { claudeLocal, ExitCodeError } from './claudeLocal-BeHToEK5.mjs';
3
- import { c as createSessionScanner, F as Future } from './sessionScanner-DqSk5Ol_.mjs';
1
+ import { l as logger } from './logger-CbBv3q_b.mjs';
2
+ import { claudeLocal, ExitCodeError } from './claudeLocal-D5-eA9SC.mjs';
3
+ import { c as createSessionScanner, F as Future } from './sessionScanner-Q_Ei2flB.mjs';
4
4
  import 'chalk';
5
5
  import 'node:util';
6
- import './configuration-L1qcGTFM.mjs';
6
+ import './configuration-WspKd2C2.mjs';
7
7
  import 'node:fs';
8
8
  import 'node:os';
9
9
  import 'node:path';
10
- import './package-VIUXrYZ1.mjs';
10
+ import './package-DU1DxhH9.mjs';
11
11
  import 'node:fs/promises';
12
12
  import 'cross-spawn';
13
13
  import 'node:readline';
14
14
  import 'node:crypto';
15
15
  import './smallFastModel-BLNgMrwR.mjs';
16
16
  import './path-D2wdaNSk.mjs';
17
- import './systemPrompt-D41Zw1a3.mjs';
18
- import './index-vVWpCoTr.mjs';
17
+ import './systemPrompt-BNIkP3tR.mjs';
18
+ import './index-B0HEEYGh.mjs';
19
19
  import 'zod';
20
20
  import '@paralleldrive/cuid2';
21
21
  import './trimIdent-BAjmv_TG.mjs';
22
- import './agentGuidance-CQuNlNx8.mjs';
23
- import './manager-BQ4flvQZ.mjs';
22
+ import './agentGuidance-BDYt2Qy2.mjs';
23
+ import './manager-BEsI4qt3.mjs';
24
24
  import '@anthropic-ai/sandbox-runtime';
25
25
  import './contentLogMetadata-BlWI0egu.mjs';
26
26
  import './claudeCliPath-BqkaH2oR.mjs';
27
27
  import './projectPath-BTBIMB57.mjs';
28
28
  import 'path';
29
29
  import 'url';
30
- import './sync-Dfm6K2te.mjs';
31
- import './time-v1Y_qEJp.mjs';
30
+ import './sync-CCwYpJMS.mjs';
31
+ import './time-PG5Dfwdv.mjs';
32
32
  import './types-CkqAACXx.mjs';
33
- import './startFileWatcher-B0VlG-Fn.mjs';
33
+ import './transcriptCursor-B7T_gkQ0.mjs';
34
+ import './startFileWatcher-CeK1k5gt.mjs';
34
35
  import 'fs/promises';
35
36
 
36
37
  async function claudeLocalLauncher(session) {
37
38
  const scanner = await createSessionScanner({
38
39
  sessionId: session.sessionId,
39
40
  workingDirectory: session.path,
41
+ // B-551: prefer the transcript path Claude reported via its hook.
42
+ transcriptPathHints: session.transcriptPathHints ?? void 0,
40
43
  onMessage: (message) => {
41
44
  if (message.type !== "summary") {
42
45
  session.client.sendClaudeSessionMessage(message);
@@ -1,44 +1,47 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-D0hkk7Vo.cjs');
4
- var claudeLocal = require('./claudeLocal-G5UmJ81F.cjs');
5
- var sessionScanner = require('./sessionScanner-BBPEgJ5S.cjs');
3
+ var logger = require('./logger-B_MWPbZz.cjs');
4
+ var claudeLocal = require('./claudeLocal-CGsq7Kul.cjs');
5
+ var sessionScanner = require('./sessionScanner-i-cgwFVw.cjs');
6
6
  require('chalk');
7
7
  require('node:util');
8
- require('./configuration-BE61XNsg.cjs');
8
+ require('./configuration-C3piBtxY.cjs');
9
9
  require('node:fs');
10
10
  require('node:os');
11
11
  require('node:path');
12
- require('./package-UkmvSFsg.cjs');
12
+ require('./package-C9ZP9bpX.cjs');
13
13
  require('node:fs/promises');
14
14
  require('cross-spawn');
15
15
  require('node:readline');
16
16
  require('node:crypto');
17
17
  require('./smallFastModel-D_uxGMo3.cjs');
18
18
  require('./path-B7zW-WwE.cjs');
19
- require('./systemPrompt-CB1Ls0AE.cjs');
20
- require('./index-DqlyNgt4.cjs');
19
+ require('./systemPrompt-DwOddbuG.cjs');
20
+ require('./index-C9hI8a10.cjs');
21
21
  require('zod');
22
22
  require('@paralleldrive/cuid2');
23
23
  require('./trimIdent-4gvk9Wk6.cjs');
24
- require('./agentGuidance-B5NATuFa.cjs');
25
- require('./manager-Cly8xVIR.cjs');
24
+ require('./agentGuidance-BtBx2xxE.cjs');
25
+ require('./manager-HrEj442o.cjs');
26
26
  require('@anthropic-ai/sandbox-runtime');
27
27
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
28
28
  require('./claudeCliPath-U4HHmV4r.cjs');
29
29
  require('./projectPath-ChLhdOyt.cjs');
30
30
  require('path');
31
31
  require('url');
32
- require('./sync-DwUUGGFz.cjs');
33
- require('./time-BbzJ7PJQ.cjs');
32
+ require('./sync-Bvc-vh6C.cjs');
33
+ require('./time-BXvtjhe9.cjs');
34
34
  require('./types-CRS-srZK.cjs');
35
- require('./startFileWatcher-1LedLBY-.cjs');
35
+ require('./transcriptCursor-DcXGLeSc.cjs');
36
+ require('./startFileWatcher-xKo8AoYl.cjs');
36
37
  require('fs/promises');
37
38
 
38
39
  async function claudeLocalLauncher(session) {
39
40
  const scanner = await sessionScanner.createSessionScanner({
40
41
  sessionId: session.sessionId,
41
42
  workingDirectory: session.path,
43
+ // B-551: prefer the transcript path Claude reported via its hook.
44
+ transcriptPathHints: session.transcriptPathHints ?? void 0,
42
45
  onMessage: (message) => {
43
46
  if (message.type !== "summary") {
44
47
  session.client.sendClaudeSessionMessage(message);
@@ -5,7 +5,7 @@ var promises = require('node:fs/promises');
5
5
  var node_fs = require('node:fs');
6
6
  var path = require('node:path');
7
7
  var node_readline = require('node:readline');
8
- var logger = require('./logger-D0hkk7Vo.cjs');
8
+ var logger = require('./logger-B_MWPbZz.cjs');
9
9
 
10
10
  class ForkTruncateUuidNotFoundError extends Error {
11
11
  constructor(cutAfterUuid, sourcePath) {
@@ -3,7 +3,7 @@ import { copyFile, unlink, readFile, rename, writeFile } from 'node:fs/promises'
3
3
  import { createReadStream, createWriteStream } from 'node:fs';
4
4
  import { join } from 'node:path';
5
5
  import { createInterface } from 'node:readline';
6
- import { l as logger } from './logger-CknSVkIe.mjs';
6
+ import { l as logger } from './logger-CbBv3q_b.mjs';
7
7
 
8
8
  class ForkTruncateUuidNotFoundError extends Error {
9
9
  constructor(cutAfterUuid, sourcePath) {
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
- var configuration = require('./configuration-BE61XNsg.cjs');
5
- var persistence = require('./persistence-C6ztVW1W.cjs');
6
- var context = require('./context-3WVw8qPz.cjs');
4
+ var configuration = require('./configuration-C3piBtxY.cjs');
5
+ var persistence = require('./persistence-BYGl0QYw.cjs');
6
+ var context = require('./context-Jrq4-eCZ.cjs');
7
7
 
8
8
  async function teamRequest(path, method, token, scoped, body) {
9
9
  const response = await fetch(`${configuration.configuration.serverUrl}${path}`, {
@@ -1,5 +1,5 @@
1
- import { c as configuration } from './configuration-L1qcGTFM.mjs';
2
- import { readCredentialsForConfiguredRelay, readSettings } from './persistence-DujtUH94.mjs';
1
+ import { c as configuration } from './configuration-WspKd2C2.mjs';
2
+ import { c as readCredentialsForConfiguredRelay, r as readSettings } from './persistence-ON0zpHfb.mjs';
3
3
 
4
4
  class AutomationsRequestError extends Error {
5
5
  constructor(status, code, runStatus) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var configuration = require('./configuration-BE61XNsg.cjs');
4
- var persistence = require('./persistence-C6ztVW1W.cjs');
3
+ var configuration = require('./configuration-C3piBtxY.cjs');
4
+ var persistence = require('./persistence-BYGl0QYw.cjs');
5
5
 
6
6
  class AutomationsRequestError extends Error {
7
7
  constructor(status, code, runStatus) {
@@ -1,7 +1,7 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { c as configuration } from './configuration-L1qcGTFM.mjs';
3
- import { readSettings, readPersistedSessions, readCredentialsForConfiguredRelay } from './persistence-DujtUH94.mjs';
4
- import { r as readTeamScope, t as teamScopePath, w as writeTeamScope } from './context-DaCCB4cm.mjs';
2
+ import { c as configuration } from './configuration-WspKd2C2.mjs';
3
+ import { r as readSettings, b as readPersistedSessions, c as readCredentialsForConfiguredRelay } from './persistence-ON0zpHfb.mjs';
4
+ import { r as readTeamScope, t as teamScopePath, w as writeTeamScope } from './context-Cr6a3NTg.mjs';
5
5
 
6
6
  async function teamRequest(path, method, token, scoped, body) {
7
7
  const response = await fetch(`${configuration.serverUrl}${path}`, {
@@ -1,41 +1,42 @@
1
1
  'use strict';
2
2
 
3
- var tools = require('../tools-c2fb0CF5.cjs');
4
- var tools$1 = require('../tools-mWqsE6ji.cjs');
5
- var peerTools = require('../peerTools-CttfOxti.cjs');
3
+ var tools = require('../tools-DJIANHSh.cjs');
4
+ var reportProgressTool = require('../reportProgressTool-D4KB_4cP.cjs');
5
+ var peerTools = require('../peerTools-Dkbu7gag.cjs');
6
+ var agentGuidance = require('../agentGuidance-BtBx2xxE.cjs');
6
7
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
7
8
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
8
9
  var index_js = require('@modelcontextprotocol/sdk/client/index.js');
9
10
  var streamableHttp_js = require('@modelcontextprotocol/sdk/client/streamableHttp.js');
10
11
  var z = require('zod');
11
12
  var limits = require('../limits-C-a7gr04.cjs');
12
- var agentGuidance = require('../agentGuidance-B5NATuFa.cjs');
13
- require('../client-Do7cGPEq.cjs');
13
+ require('../client-BKnKRLSt.cjs');
14
14
  require('node:crypto');
15
- require('../configuration-BE61XNsg.cjs');
15
+ require('../configuration-C3piBtxY.cjs');
16
16
  require('node:fs');
17
17
  require('node:os');
18
18
  require('node:path');
19
- require('../package-UkmvSFsg.cjs');
19
+ require('../package-C9ZP9bpX.cjs');
20
20
  require('node:fs/promises');
21
- require('../persistence-C6ztVW1W.cjs');
21
+ require('../persistence-BYGl0QYw.cjs');
22
22
  require('../authRelay-BdYkC1Po.cjs');
23
23
  require('tweetnacl');
24
- require('../logger-D0hkk7Vo.cjs');
24
+ require('../logger-B_MWPbZz.cjs');
25
25
  require('chalk');
26
26
  require('node:util');
27
- require('../context-3WVw8qPz.cjs');
28
- require('../index-DqlyNgt4.cjs');
27
+ require('../context-Jrq4-eCZ.cjs');
28
+ require('../index-C9hI8a10.cjs');
29
29
  require('@paralleldrive/cuid2');
30
- require('../client-uN9d6Git.cjs');
30
+ require('../client-D0T5-6Ds.cjs');
31
+ require('../precheckCompat-CWOi5c9L.cjs');
31
32
  require('../ids-B6ZC0HGt.cjs');
32
- require('../controlClient-RWTlQA4_.cjs');
33
- require('../sessionOps-JP64uJmc.cjs');
33
+ require('../controlClient-BI6Fw3fQ.cjs');
34
+ require('../sessionOps-DzbZI3Eq.cjs');
34
35
  require('axios');
35
- require('../time-BbzJ7PJQ.cjs');
36
+ require('../time-BXvtjhe9.cjs');
36
37
  require('socket.io-client');
37
38
  require('../backgroundTaskActivity-CBvUdj39.cjs');
38
- require('../remoteSessionClient-BAkIwM2S.cjs');
39
+ require('../remoteSessionClient-PyUAIhwK.cjs');
39
40
  require('../trimIdent-4gvk9Wk6.cjs');
40
41
 
41
42
  function parseArgs(argv) {
@@ -105,7 +106,10 @@ async function main() {
105
106
  title: agentGuidance.PREVIEW_TOOL_TITLE,
106
107
  inputSchema: {
107
108
  path: z.z.string().describe("Absolute path (or ~/\u2026) of the file to show the user"),
108
- mode: z.z.enum(["file", "diff"]).optional()
109
+ mode: z.z.enum(["file", "diff"]).optional(),
110
+ // B-562: must be declared here too — the SDK strips undeclared arguments
111
+ // before they reach the forwarded callTool.
112
+ download: z.z.boolean().optional().describe(agentGuidance.PREVIEW_DOWNLOAD_PARAM_DESCRIPTION)
109
113
  }
110
114
  },
111
115
  async (args) => {
@@ -162,8 +166,9 @@ async function main() {
162
166
  return forwardTeam(`team_${String(type).replaceAll("-", "_")}`, { ...args, requestId });
163
167
  }
164
168
  });
165
- tools$1.registerAutomationTools(server, (name, args) => forwardTeam(name, args));
169
+ reportProgressTool.registerAutomationTools(server, (name, args) => forwardTeam(name, args));
166
170
  peerTools.registerSessionPeerTools(server, (name, args) => forwardTeam(name, args));
171
+ reportProgressTool.registerReportProgressTool(server, async (args) => (await ensureHttpClient()).callTool({ name: agentGuidance.REPORT_PROGRESS_TOOL_NAME, arguments: args }));
167
172
  const stdio = new stdio_js.StdioServerTransport();
168
173
  await server.connect(stdio);
169
174
  }