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
@@ -1,24 +1,24 @@
1
1
  'use strict';
2
2
 
3
3
  var node_fs = require('node:fs');
4
- var spawnHappyCLI = require('./spawnHappyCLI-Dd5_8Vex.cjs');
4
+ var spawnHappyCLI = require('./spawnHappyCLI-J4iEhfyZ.cjs');
5
5
  var axios = require('axios');
6
6
  var tweetnacl = require('tweetnacl');
7
7
  var z = require('zod');
8
8
  var authRelay = require('./authRelay-BdYkC1Po.cjs');
9
- var configuration = require('./configuration-BE61XNsg.cjs');
10
- var localHappyAgentAuth = require('./localHappyAgentAuth-BCx0y1qW.cjs');
9
+ var configuration = require('./configuration-C3piBtxY.cjs');
10
+ var localHappyAgentAuth = require('./localHappyAgentAuth-T5GOvRha.cjs');
11
11
  require('cross-spawn');
12
12
  require('node:path');
13
13
  require('./projectPath-ChLhdOyt.cjs');
14
14
  require('path');
15
15
  require('url');
16
- require('./logger-D0hkk7Vo.cjs');
16
+ require('./logger-B_MWPbZz.cjs');
17
17
  require('chalk');
18
18
  require('node:util');
19
19
  require('node:crypto');
20
20
  require('node:os');
21
- require('./package-UkmvSFsg.cjs');
21
+ require('./package-C9ZP9bpX.cjs');
22
22
  require('node:fs/promises');
23
23
 
24
24
  const ResumableMetadataSchema = z.z.object({
@@ -466,6 +466,10 @@ const AUTOMATION_PAYLOAD_MAX_BYTES = 65536;
466
466
  const AUTOMATION_SUMMARY_MAX_CHARS = 4096;
467
467
  const AUTOMATION_DEFAULT_LEASE_MS = 6e4;
468
468
  const AUTOMATION_CLAIM_MAX_RUNS = 8;
469
+ const AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS = 6e4;
470
+ const AUTOMATION_PRECHECK_MAX_TIMEOUT_MS = 6e5;
471
+ const AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS = 4e3;
472
+ const AUTOMATION_DAEMON_CAPABILITY_PRECHECK = "precheck";
469
473
  const timestamp = z$1.number().int().positive().max(AUTOMATION_MAX_TIMESTAMP);
470
474
  const AutomationTriggerSchema = z$1.discriminatedUnion("kind", [
471
475
  // `expr` is standard five-field cron (minute hour day-of-month month day-of-week,
@@ -499,6 +503,13 @@ const AutomationActionSchema = z$1.discriminatedUnion("kind", [
499
503
  timeoutMs: z$1.number().int().min(1e3).max(7 * 864e5).optional()
500
504
  })
501
505
  ]);
506
+ const AutomationPrecheckSchema = z$1.object({
507
+ command: z$1.array(z$1.string().min(1).max(4096)).min(1).max(256).optional(),
508
+ shell: z$1.string().trim().min(1).max(8e3).optional(),
509
+ cwd: z$1.string().min(1).max(4096).optional(),
510
+ timeoutMs: z$1.number().int().min(1e3).max(AUTOMATION_PRECHECK_MAX_TIMEOUT_MS).optional(),
511
+ includeOutput: z$1.boolean().optional()
512
+ }).refine((p) => p.command === void 0 !== (p.shell === void 0), "precheck needs exactly one of command (argv) or shell");
502
513
  const AutomationConcurrencySchema = z$1.enum(["skip", "queue"]);
503
514
  const AUTOMATION_STATUSES = ["active", "paused"];
504
515
  const AUTOMATION_RUN_TERMINAL_STATUSES = ["done", "failed", "skipped", "expired", "cancelled"];
@@ -514,7 +525,9 @@ z$1.object({
514
525
  action: AutomationActionSchema,
515
526
  concurrency: AutomationConcurrencySchema.optional(),
516
527
  maxRuntimeMs: maxRuntimeMs.optional(),
517
- status: z$1.enum(AUTOMATION_STATUSES).optional()
528
+ status: z$1.enum(AUTOMATION_STATUSES).optional(),
529
+ /** B-548. Older servers strip it silently — clients must check the response echoes `precheck`. */
530
+ precheck: AutomationPrecheckSchema.nullable().optional()
518
531
  });
519
532
  z$1.object({
520
533
  version: z$1.number().int().positive(),
@@ -524,7 +537,9 @@ z$1.object({
524
537
  trigger: AutomationTriggerSchema.optional(),
525
538
  action: AutomationActionSchema.optional(),
526
539
  concurrency: AutomationConcurrencySchema.optional(),
527
- maxRuntimeMs: maxRuntimeMs.optional()
540
+ maxRuntimeMs: maxRuntimeMs.optional(),
541
+ /** B-548: omitted keeps the current precheck, `null` removes it. Changing `action` alone keeps it too. */
542
+ precheck: AutomationPrecheckSchema.nullable().optional()
528
543
  });
529
544
  const payload = z$1.string().max(AUTOMATION_PAYLOAD_MAX_BYTES).refine((v) => new TextEncoder().encode(v).length <= AUTOMATION_PAYLOAD_MAX_BYTES, "payload exceeds 64KB");
530
545
  z$1.object({ payload: payload.optional(), dedupeKey: z$1.string().min(1).max(256).optional() });
@@ -532,11 +547,13 @@ z$1.object({ payload: payload.optional() });
532
547
  z$1.object({
533
548
  machineId: id,
534
549
  limit: z$1.number().int().min(1).max(AUTOMATION_CLAIM_MAX_RUNS).optional(),
535
- leaseMs: z$1.number().int().min(5e3).max(36e5).optional()
550
+ leaseMs: z$1.number().int().min(5e3).max(36e5).optional(),
551
+ /** B-548: what this daemon can execute (e.g. `precheck`). Older daemons send nothing; older servers strip it. */
552
+ capabilities: z$1.array(z$1.string().min(1).max(64)).max(32).optional()
536
553
  });
537
554
  z$1.object({
538
555
  claimId: id.optional(),
539
- status: z$1.enum(["running", "done", "failed"]).optional(),
556
+ status: z$1.enum(["running", "done", "failed", "skipped"]).optional(),
540
557
  sessionId: id.nullable().optional(),
541
558
  stickyKey: z$1.string().min(1).max(512).optional(),
542
559
  summary: z$1.string().max(AUTOMATION_SUMMARY_MAX_CHARS).nullable().optional(),
@@ -958,4 +975,4 @@ z$1.object({
958
975
  items: z$1.array(PromptQueueItemSchema)
959
976
  });
960
977
 
961
- export { AUTOMATION_NAME_PATTERN as A, BUILTIN_TODO_SKILL as B, ContextUsageSchema as C, PROMPT_QUEUE_CAPABILITY as P, ReleaseDrainNoticeSchema as R, STREAM_DELTA_MAX_CHARS as S, AutomationNameSchema as a, AutomationConcurrencySchema as b, AutomationActionSchema as c, AutomationTriggerSchema as d, createEnvelope as e, createBuiltinTodoClient as f, getAgentCodeDefaults as g, isClaudeOpus55Model as h, isAutomationRunTerminal as i, supportsClaudeOpus55 as j, AgentVersionsSchema as k, BUILTIN_TODO_DISCOVERY as l, RelayAssignmentResponseSchema as m, normalizeAgentKey as n, RelayCandidatesResponseSchema as o, AGENT_VERSION_SOURCES as p, AUTOMATION_SUMMARY_MAX_CHARS as q, AUTOMATION_CLAIM_MAX_RUNS as r, streamKeyOf as s, AUTOMATION_DEFAULT_LEASE_MS as t };
978
+ export { AUTOMATION_NAME_PATTERN as A, BUILTIN_TODO_SKILL as B, ContextUsageSchema as C, PROMPT_QUEUE_CAPABILITY as P, ReleaseDrainNoticeSchema as R, STREAM_DELTA_MAX_CHARS as S, AUTOMATION_PRECHECK_MAX_TIMEOUT_MS as a, AutomationPrecheckSchema as b, createEnvelope as c, createBuiltinTodoClient as d, isClaudeOpus55Model as e, supportsClaudeOpus55 as f, getAgentCodeDefaults as g, AutomationNameSchema as h, isAutomationRunTerminal as i, AutomationConcurrencySchema as j, AutomationActionSchema as k, AutomationTriggerSchema as l, AgentVersionsSchema as m, normalizeAgentKey as n, BUILTIN_TODO_DISCOVERY as o, AGENT_VERSION_SOURCES as p, RelayAssignmentResponseSchema as q, RelayCandidatesResponseSchema as r, streamKeyOf as s, AUTOMATION_SUMMARY_MAX_CHARS as t, AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS as u, AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS as v, AUTOMATION_CLAIM_MAX_RUNS as w, AUTOMATION_DAEMON_CAPABILITY_PRECHECK as x, AUTOMATION_DEFAULT_LEASE_MS as y };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var _package = require('./package-UkmvSFsg.cjs');
3
+ var _package = require('./package-C9ZP9bpX.cjs');
4
4
  var module$1 = require('node:module');
5
5
  var node_fs = require('node:fs');
6
6
  var promises = require('node:fs/promises');
@@ -59,10 +59,10 @@ async function pruneStaleCompileCaches(happyHomeDir, cliVersion) {
59
59
  async function run(args) {
60
60
  enableCompileCacheIfPossible(_package.packageJson.version);
61
61
  if (isStandaloneVersionRequest(args) || isSelfCheckRequest(args)) {
62
- const { selfCheckMain } = await Promise.resolve().then(function () { return require('./selfCheck-NuJKMInJ.cjs'); });
62
+ const { selfCheckMain } = await Promise.resolve().then(function () { return require('./selfCheck-B4lLZplk.cjs'); });
63
63
  process.exit(await selfCheckMain({ verbose: isSelfCheckRequest(args) }));
64
64
  }
65
- const { main } = await Promise.resolve().then(function () { return require('./main-COAPGIso.cjs'); });
65
+ const { main } = await Promise.resolve().then(function () { return require('./main-DNrA0qBy.cjs'); });
66
66
  await main();
67
67
  }
68
68
  void run(process.argv.slice(2));
@@ -1,4 +1,4 @@
1
- import { p as packageJson } from './package-VIUXrYZ1.mjs';
1
+ import { p as packageJson } from './package-DU1DxhH9.mjs';
2
2
  import module$1 from 'node:module';
3
3
  import { existsSync } from 'node:fs';
4
4
  import { readdir, rm } from 'node:fs/promises';
@@ -57,10 +57,10 @@ async function pruneStaleCompileCaches(happyHomeDir, cliVersion) {
57
57
  async function run(args) {
58
58
  enableCompileCacheIfPossible(packageJson.version);
59
59
  if (isStandaloneVersionRequest(args) || isSelfCheckRequest(args)) {
60
- const { selfCheckMain } = await import('./selfCheck-BgwJ3NGS.mjs');
60
+ const { selfCheckMain } = await import('./selfCheck-DYTGBdIO.mjs');
61
61
  process.exit(await selfCheckMain({ verbose: isSelfCheckRequest(args) }));
62
62
  }
63
- const { main } = await import('./main-CKUfkVG_.mjs');
63
+ const { main } = await import('./main-DXAK0n7x.mjs');
64
64
  await main();
65
65
  }
66
66
  void run(process.argv.slice(2));
@@ -486,6 +486,10 @@ const AUTOMATION_PAYLOAD_MAX_BYTES = 65536;
486
486
  const AUTOMATION_SUMMARY_MAX_CHARS = 4096;
487
487
  const AUTOMATION_DEFAULT_LEASE_MS = 6e4;
488
488
  const AUTOMATION_CLAIM_MAX_RUNS = 8;
489
+ const AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS = 6e4;
490
+ const AUTOMATION_PRECHECK_MAX_TIMEOUT_MS = 6e5;
491
+ const AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS = 4e3;
492
+ const AUTOMATION_DAEMON_CAPABILITY_PRECHECK = "precheck";
489
493
  const timestamp = z.z.number().int().positive().max(AUTOMATION_MAX_TIMESTAMP);
490
494
  const AutomationTriggerSchema = z.z.discriminatedUnion("kind", [
491
495
  // `expr` is standard five-field cron (minute hour day-of-month month day-of-week,
@@ -519,6 +523,13 @@ const AutomationActionSchema = z.z.discriminatedUnion("kind", [
519
523
  timeoutMs: z.z.number().int().min(1e3).max(7 * 864e5).optional()
520
524
  })
521
525
  ]);
526
+ const AutomationPrecheckSchema = z.z.object({
527
+ command: z.z.array(z.z.string().min(1).max(4096)).min(1).max(256).optional(),
528
+ shell: z.z.string().trim().min(1).max(8e3).optional(),
529
+ cwd: z.z.string().min(1).max(4096).optional(),
530
+ timeoutMs: z.z.number().int().min(1e3).max(AUTOMATION_PRECHECK_MAX_TIMEOUT_MS).optional(),
531
+ includeOutput: z.z.boolean().optional()
532
+ }).refine((p) => p.command === void 0 !== (p.shell === void 0), "precheck needs exactly one of command (argv) or shell");
522
533
  const AutomationConcurrencySchema = z.z.enum(["skip", "queue"]);
523
534
  const AUTOMATION_STATUSES = ["active", "paused"];
524
535
  const AUTOMATION_RUN_TERMINAL_STATUSES = ["done", "failed", "skipped", "expired", "cancelled"];
@@ -534,7 +545,9 @@ z.z.object({
534
545
  action: AutomationActionSchema,
535
546
  concurrency: AutomationConcurrencySchema.optional(),
536
547
  maxRuntimeMs: maxRuntimeMs.optional(),
537
- status: z.z.enum(AUTOMATION_STATUSES).optional()
548
+ status: z.z.enum(AUTOMATION_STATUSES).optional(),
549
+ /** B-548. Older servers strip it silently — clients must check the response echoes `precheck`. */
550
+ precheck: AutomationPrecheckSchema.nullable().optional()
538
551
  });
539
552
  z.z.object({
540
553
  version: z.z.number().int().positive(),
@@ -544,7 +557,9 @@ z.z.object({
544
557
  trigger: AutomationTriggerSchema.optional(),
545
558
  action: AutomationActionSchema.optional(),
546
559
  concurrency: AutomationConcurrencySchema.optional(),
547
- maxRuntimeMs: maxRuntimeMs.optional()
560
+ maxRuntimeMs: maxRuntimeMs.optional(),
561
+ /** B-548: omitted keeps the current precheck, `null` removes it. Changing `action` alone keeps it too. */
562
+ precheck: AutomationPrecheckSchema.nullable().optional()
548
563
  });
549
564
  const payload = z.z.string().max(AUTOMATION_PAYLOAD_MAX_BYTES).refine((v) => new TextEncoder().encode(v).length <= AUTOMATION_PAYLOAD_MAX_BYTES, "payload exceeds 64KB");
550
565
  z.z.object({ payload: payload.optional(), dedupeKey: z.z.string().min(1).max(256).optional() });
@@ -552,11 +567,13 @@ z.z.object({ payload: payload.optional() });
552
567
  z.z.object({
553
568
  machineId: id,
554
569
  limit: z.z.number().int().min(1).max(AUTOMATION_CLAIM_MAX_RUNS).optional(),
555
- leaseMs: z.z.number().int().min(5e3).max(36e5).optional()
570
+ leaseMs: z.z.number().int().min(5e3).max(36e5).optional(),
571
+ /** B-548: what this daemon can execute (e.g. `precheck`). Older daemons send nothing; older servers strip it. */
572
+ capabilities: z.z.array(z.z.string().min(1).max(64)).max(32).optional()
556
573
  });
557
574
  z.z.object({
558
575
  claimId: id.optional(),
559
- status: z.z.enum(["running", "done", "failed"]).optional(),
576
+ status: z.z.enum(["running", "done", "failed", "skipped"]).optional(),
560
577
  sessionId: id.nullable().optional(),
561
578
  stickyKey: z.z.string().min(1).max(512).optional(),
562
579
  summary: z.z.string().max(AUTOMATION_SUMMARY_MAX_CHARS).nullable().optional(),
@@ -980,13 +997,18 @@ z.z.object({
980
997
 
981
998
  exports.AGENT_VERSION_SOURCES = AGENT_VERSION_SOURCES;
982
999
  exports.AUTOMATION_CLAIM_MAX_RUNS = AUTOMATION_CLAIM_MAX_RUNS;
1000
+ exports.AUTOMATION_DAEMON_CAPABILITY_PRECHECK = AUTOMATION_DAEMON_CAPABILITY_PRECHECK;
983
1001
  exports.AUTOMATION_DEFAULT_LEASE_MS = AUTOMATION_DEFAULT_LEASE_MS;
984
1002
  exports.AUTOMATION_NAME_PATTERN = AUTOMATION_NAME_PATTERN;
1003
+ exports.AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS = AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS;
1004
+ exports.AUTOMATION_PRECHECK_MAX_TIMEOUT_MS = AUTOMATION_PRECHECK_MAX_TIMEOUT_MS;
1005
+ exports.AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS = AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS;
985
1006
  exports.AUTOMATION_SUMMARY_MAX_CHARS = AUTOMATION_SUMMARY_MAX_CHARS;
986
1007
  exports.AgentVersionsSchema = AgentVersionsSchema;
987
1008
  exports.AutomationActionSchema = AutomationActionSchema;
988
1009
  exports.AutomationConcurrencySchema = AutomationConcurrencySchema;
989
1010
  exports.AutomationNameSchema = AutomationNameSchema;
1011
+ exports.AutomationPrecheckSchema = AutomationPrecheckSchema;
990
1012
  exports.AutomationTriggerSchema = AutomationTriggerSchema;
991
1013
  exports.BUILTIN_TODO_DISCOVERY = BUILTIN_TODO_DISCOVERY;
992
1014
  exports.BUILTIN_TODO_SKILL = BUILTIN_TODO_SKILL;
@@ -1,34 +1,34 @@
1
- import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-C11FnVw5.mjs';
2
- export { a as DEFAULT_IDLE_TIMEOUT_MS, b as DEFAULT_TOOL_CALL_TIMEOUT_MS, e as extractErrorDetail, f as formatDuration, c as formatDurationMinutes, h as handleAgentMessageChunk, d as handleAgentThoughtChunk, g as handleLegacyMessageChunk, i as handlePlanUpdate, j as handleThinkingUpdate, k as handleToolCall, l as handleToolCallUpdate, p as parseArgsFromContent } from './AcpBackend-C11FnVw5.mjs';
3
- import { l as logger } from './logger-CknSVkIe.mjs';
4
- import { A as AcpSessionManager } from './AcpSessionManager-BQnDJvct.mjs';
5
- import { l as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY } from './index-vVWpCoTr.mjs';
1
+ import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-kFZlee5E.mjs';
2
+ export { a as DEFAULT_IDLE_TIMEOUT_MS, b as DEFAULT_TOOL_CALL_TIMEOUT_MS, e as extractErrorDetail, f as formatDuration, c as formatDurationMinutes, h as handleAgentMessageChunk, d as handleAgentThoughtChunk, g as handleLegacyMessageChunk, i as handlePlanUpdate, j as handleThinkingUpdate, k as handleToolCall, l as handleToolCallUpdate, p as parseArgsFromContent } from './AcpBackend-kFZlee5E.mjs';
3
+ import { l as logger } from './logger-CbBv3q_b.mjs';
4
+ import { A as AcpSessionManager } from './AcpSessionManager-B7FIrsys.mjs';
5
+ import { o as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY } from './index-B0HEEYGh.mjs';
6
6
  import { r as registerAgentAttachmentDownloads } from './agentAttachments-M_B5qEF2.mjs';
7
- import { c as configuration } from './configuration-L1qcGTFM.mjs';
8
- import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-dzIs-wis.mjs';
9
- import { p as preparePiTeamsRuntime } from './piRuntime-DKFA8u8t.mjs';
7
+ import { c as configuration } from './configuration-WspKd2C2.mjs';
8
+ import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-j875mwU7.mjs';
9
+ import { p as preparePiTeamsRuntime } from './piRuntime-CmEid-wu.mjs';
10
10
  import { randomUUID } from 'node:crypto';
11
11
  import { join } from 'node:path';
12
- import { c as connectionState, A as ApiClient } from './api-DTVPUE7g.mjs';
13
- import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-Czz0tdki.mjs';
14
- import { h as hashObject, s as startHappyServer } from './deterministicJson-BBwG-Ase.mjs';
15
- import { readSettings } from './persistence-DujtUH94.mjs';
16
- import { g as getInitialMachineMetadata } from './machineMetadata-Cj1DoFot.mjs';
17
- import { c as createSessionMetadata } from './createSessionMetadata-CWR-AB2A.mjs';
18
- import { s as setupOfflineReconnection } from './setupOfflineReconnection-_MoZtsro.mjs';
19
- import { n as notifyDaemonSessionStarted, g as reportSessionEditToDaemon } from './controlClient-Ci7HTMII.mjs';
12
+ import { c as connectionState, A as ApiClient } from './api-CReZazeT.mjs';
13
+ import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-BJMHJHXe.mjs';
14
+ import { h as hashObject, s as startHappyServer } from './deterministicJson-BMMifViN.mjs';
15
+ import { r as readSettings } from './persistence-ON0zpHfb.mjs';
16
+ import { g as getInitialMachineMetadata } from './machineMetadata-DHg238U4.mjs';
17
+ import { c as createSessionMetadata } from './createSessionMetadata-BEZ4DIDA.mjs';
18
+ import { s as setupOfflineReconnection } from './setupOfflineReconnection-BfDBxNdo.mjs';
19
+ import { n as notifyDaemonSessionStarted, j as reportSessionEditToDaemon } from './controlClient-DTheOlvC.mjs';
20
20
  import { e as encodeBase64 } from './authRelay-DSAvg1uv.mjs';
21
- import { S as StreamRelay } from './streamRelay-BzMEEvJU.mjs';
21
+ import { S as StreamRelay } from './streamRelay-Iogsh51a.mjs';
22
22
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
23
- import { B as BasePermissionHandler } from './BasePermissionHandler-CwJ48yiB.mjs';
24
- import { T as TitleGenerator } from './titleGenerator-BhoblAQY.mjs';
25
- import { w as writeSessionModeFile, n as normalizeAcpPermissionMode, r as removeSessionModeFile } from './sessionModeFile-CuNAWCKL.mjs';
23
+ import { B as BasePermissionHandler } from './BasePermissionHandler-DS0kRTNI.mjs';
24
+ import { T as TitleGenerator } from './titleGenerator-CIzfpfZW.mjs';
25
+ import { w as writeSessionModeFile, n as normalizeAcpPermissionMode, r as removeSessionModeFile } from './sessionModeFile-fvFn1JVG.mjs';
26
26
  import { E as EditReportThrottle, e as extractAcpEditPaths } from './editPaths-BVfS_FFL.mjs';
27
27
  import 'node:child_process';
28
28
  import '@agentclientprotocol/sdk';
29
- import './time-v1Y_qEJp.mjs';
29
+ import './time-PG5Dfwdv.mjs';
30
30
  import './contentLogMetadata-BlWI0egu.mjs';
31
- import './package-VIUXrYZ1.mjs';
31
+ import './package-DU1DxhH9.mjs';
32
32
  import 'chalk';
33
33
  import 'node:util';
34
34
  import 'node:fs';
@@ -36,48 +36,49 @@ import '@paralleldrive/cuid2';
36
36
  import 'zod';
37
37
  import 'node:os';
38
38
  import 'node:fs/promises';
39
- import './attachmentLimits-B8nzhw-i.mjs';
39
+ import './attachmentLimits-CxG3T18E.mjs';
40
40
  import './resources-BdFBQi8r.mjs';
41
41
  import 'axios';
42
- import './lidState-BLHLmhwd.mjs';
42
+ import './lidState-B2ZxdREe.mjs';
43
43
  import 'os';
44
44
  import 'child_process';
45
45
  import 'node:events';
46
46
  import 'socket.io-client';
47
47
  import './limits-DIo7rEBR.mjs';
48
- import './registerCommonHandlers-BR0J4g64.mjs';
48
+ import './registerCommonHandlers-B0PVff2U.mjs';
49
49
  import 'util';
50
50
  import 'fs/promises';
51
51
  import 'crypto';
52
52
  import 'path';
53
53
  import 'cross-spawn';
54
- import './sync-Dfm6K2te.mjs';
54
+ import './sync-CCwYpJMS.mjs';
55
55
  import './backgroundTaskActivity-8PdPxrvy.mjs';
56
56
  import 'tweetnacl';
57
57
  import './types-CkqAACXx.mjs';
58
- import './client-BwaWdlCm.mjs';
59
- import './context-DaCCB4cm.mjs';
60
- import './sessionOps-DG5MMEp_.mjs';
61
- import './tools-jof0Bu54.mjs';
62
- import './tools-BVRoGcQH.mjs';
63
- import './client-CJZKBZCE.mjs';
64
- import './peerTools-SWITnkqz.mjs';
58
+ import './client-Dsfy_SAb.mjs';
59
+ import './context-Cr6a3NTg.mjs';
60
+ import './sessionOps-DZRH4-hV.mjs';
61
+ import './tools-D91mq5Ib.mjs';
62
+ import './reportProgressTool-BvB13EwC.mjs';
63
+ import './client-C7FYMer0.mjs';
64
+ import './precheckCompat-DeEbilbr.mjs';
65
+ import './agentGuidance-BDYt2Qy2.mjs';
66
+ import './trimIdent-BAjmv_TG.mjs';
67
+ import './peerTools-os2DVjA0.mjs';
65
68
  import './ids-DU6sLx4C.mjs';
66
- import './remoteSessionClient-DCAUHgPz.mjs';
69
+ import './remoteSessionClient-BzPXSC21.mjs';
67
70
  import '@modelcontextprotocol/sdk/server/mcp.js';
68
71
  import 'node:http';
69
72
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
70
- import './assistantTools-DPGga5lM.mjs';
73
+ import './downloadTarget-Cp48jrIP.mjs';
71
74
  import './terminals-Dlg0x3nY.mjs';
72
75
  import './terminalTitleSuggest-CeKsX_V6.mjs';
73
76
  import './tmuxSocket-B8Yx20sT.mjs';
74
- import './bootstrap-D_ExGrY2.mjs';
75
- import './agentGuidance-CQuNlNx8.mjs';
76
- import './trimIdent-BAjmv_TG.mjs';
77
+ import './bootstrap-BSOxYpaP.mjs';
77
78
  import './previewPath-CXN4Vag0.mjs';
78
79
  import './detectCLI-CSGMlV51.mjs';
79
80
  import 'fs';
80
- import './localHappyAgentAuth-BWvmc_Hg.mjs';
81
+ import './localHappyAgentAuth-B5XPEMwk.mjs';
81
82
  import 'url';
82
83
  import 'node:module';
83
84
  import './oneShotPrompts-DT4p6RNd.mjs';
@@ -1,14 +1,14 @@
1
1
  import { statSync, readdirSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
- import { l as logger } from './logger-CknSVkIe.mjs';
4
- import { readSettings } from './persistence-DujtUH94.mjs';
3
+ import { l as logger } from './logger-CbBv3q_b.mjs';
4
+ import { r as readSettings } from './persistence-ON0zpHfb.mjs';
5
5
  import { d as describeAgentHome, C as CLAUDE_CONFIG_DIR_ENV, a as CODEX_HOME_ENV, f as findClaudeConversation, b as agentHomeCandidates, c as findCodexThread, r as resolveAgentHomes, A as AGENT_HOME_ENV_NAMES, g as agentHomeEnv, p as probeLoginShellEnv } from './loginShellEnv-Dw8M7tkI.mjs';
6
6
  export { h as claudeConversationPath, i as claudeProjectDirName, j as codexRolloutFileMatches, e as expandHomePath } from './loginShellEnv-Dw8M7tkI.mjs';
7
7
  import 'chalk';
8
8
  import 'node:util';
9
- import './configuration-L1qcGTFM.mjs';
9
+ import './configuration-WspKd2C2.mjs';
10
10
  import 'node:path';
11
- import './package-VIUXrYZ1.mjs';
11
+ import './package-DU1DxhH9.mjs';
12
12
  import 'node:fs/promises';
13
13
  import 'zod';
14
14
  import './authRelay-DSAvg1uv.mjs';
@@ -1,35 +1,35 @@
1
1
  'use strict';
2
2
 
3
- var AcpBackend = require('./AcpBackend-DCfNt9bD.cjs');
4
- var logger = require('./logger-D0hkk7Vo.cjs');
5
- var AcpSessionManager = require('./AcpSessionManager-9yN2iH4b.cjs');
6
- var index = require('./index-DqlyNgt4.cjs');
3
+ var AcpBackend = require('./AcpBackend-D1IKJGz_.cjs');
4
+ var logger = require('./logger-B_MWPbZz.cjs');
5
+ var AcpSessionManager = require('./AcpSessionManager-Zf00QnlL.cjs');
6
+ var index = require('./index-C9hI8a10.cjs');
7
7
  var agentAttachments = require('./agentAttachments-Dbw8iMCZ.cjs');
8
- var configuration = require('./configuration-BE61XNsg.cjs');
9
- var attachmentContent = require('./attachmentContent-muDCe4Gy.cjs');
10
- var piRuntime = require('./piRuntime-DZzjF9It.cjs');
8
+ var configuration = require('./configuration-C3piBtxY.cjs');
9
+ var attachmentContent = require('./attachmentContent-HcJqFQW8.cjs');
10
+ var piRuntime = require('./piRuntime-CDnILlCd.cjs');
11
11
  var node_crypto = require('node:crypto');
12
12
  var path = require('node:path');
13
- var api = require('./api-AzdzTKFs.cjs');
14
- var registerKillSessionHandler = require('./registerKillSessionHandler-CI23l8aJ.cjs');
15
- var deterministicJson = require('./deterministicJson-C4Jo2RWy.cjs');
16
- var persistence = require('./persistence-C6ztVW1W.cjs');
17
- var machineMetadata = require('./machineMetadata-BDCYOXQg.cjs');
18
- var createSessionMetadata = require('./createSessionMetadata-CPGTztXP.cjs');
19
- var setupOfflineReconnection = require('./setupOfflineReconnection-CKJKVIUS.cjs');
20
- var controlClient = require('./controlClient-RWTlQA4_.cjs');
13
+ var api = require('./api-BZYLRDM9.cjs');
14
+ var registerKillSessionHandler = require('./registerKillSessionHandler-BwXGKtg_.cjs');
15
+ var deterministicJson = require('./deterministicJson-C7O2ulKY.cjs');
16
+ var persistence = require('./persistence-BYGl0QYw.cjs');
17
+ var machineMetadata = require('./machineMetadata-BafS4JY8.cjs');
18
+ var createSessionMetadata = require('./createSessionMetadata-zQSz3hgk.cjs');
19
+ var setupOfflineReconnection = require('./setupOfflineReconnection-C2LO3hSP.cjs');
20
+ var controlClient = require('./controlClient-BI6Fw3fQ.cjs');
21
21
  var authRelay = require('./authRelay-BdYkC1Po.cjs');
22
- var streamRelay = require('./streamRelay-C0AffuX6.cjs');
22
+ var streamRelay = require('./streamRelay-Ce9sgcOV.cjs');
23
23
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
24
- var BasePermissionHandler = require('./BasePermissionHandler-BwQHxl6M.cjs');
25
- var titleGenerator = require('./titleGenerator-cH6IkPRi.cjs');
26
- var sessionModeFile = require('./sessionModeFile-BvOEJ4Fl.cjs');
24
+ var BasePermissionHandler = require('./BasePermissionHandler-DHxYAK5L.cjs');
25
+ var titleGenerator = require('./titleGenerator-B07bZA0V.cjs');
26
+ var sessionModeFile = require('./sessionModeFile-CyPuZRIU.cjs');
27
27
  var editPaths = require('./editPaths-Bqp4OFPw.cjs');
28
28
  require('node:child_process');
29
29
  require('@agentclientprotocol/sdk');
30
- require('./time-BbzJ7PJQ.cjs');
30
+ require('./time-BXvtjhe9.cjs');
31
31
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
32
- require('./package-UkmvSFsg.cjs');
32
+ require('./package-C9ZP9bpX.cjs');
33
33
  require('chalk');
34
34
  require('node:util');
35
35
  require('node:fs');
@@ -37,48 +37,49 @@ require('@paralleldrive/cuid2');
37
37
  require('zod');
38
38
  require('node:os');
39
39
  require('node:fs/promises');
40
- require('./attachmentLimits-eJZ4ZBjF.cjs');
40
+ require('./attachmentLimits-BEYEEBm8.cjs');
41
41
  require('./resources-JDPugcDq.cjs');
42
42
  require('axios');
43
- require('./lidState-z9ekRpZu.cjs');
43
+ require('./lidState-Bc2K9H9l.cjs');
44
44
  require('os');
45
45
  require('child_process');
46
46
  require('node:events');
47
47
  require('socket.io-client');
48
48
  require('./limits-C-a7gr04.cjs');
49
- require('./registerCommonHandlers--8ds2auE.cjs');
49
+ require('./registerCommonHandlers-DVYB3iVn.cjs');
50
50
  require('util');
51
51
  require('fs/promises');
52
52
  require('crypto');
53
53
  require('path');
54
54
  require('cross-spawn');
55
- require('./sync-DwUUGGFz.cjs');
55
+ require('./sync-Bvc-vh6C.cjs');
56
56
  require('./backgroundTaskActivity-CBvUdj39.cjs');
57
57
  require('tweetnacl');
58
58
  require('./types-CRS-srZK.cjs');
59
- require('./client-Do7cGPEq.cjs');
60
- require('./context-3WVw8qPz.cjs');
61
- require('./sessionOps-JP64uJmc.cjs');
62
- require('./tools-c2fb0CF5.cjs');
63
- require('./tools-mWqsE6ji.cjs');
64
- require('./client-uN9d6Git.cjs');
65
- require('./peerTools-CttfOxti.cjs');
59
+ require('./client-BKnKRLSt.cjs');
60
+ require('./context-Jrq4-eCZ.cjs');
61
+ require('./sessionOps-DzbZI3Eq.cjs');
62
+ require('./tools-DJIANHSh.cjs');
63
+ require('./reportProgressTool-D4KB_4cP.cjs');
64
+ require('./client-D0T5-6Ds.cjs');
65
+ require('./precheckCompat-CWOi5c9L.cjs');
66
+ require('./agentGuidance-BtBx2xxE.cjs');
67
+ require('./trimIdent-4gvk9Wk6.cjs');
68
+ require('./peerTools-Dkbu7gag.cjs');
66
69
  require('./ids-B6ZC0HGt.cjs');
67
- require('./remoteSessionClient-BAkIwM2S.cjs');
70
+ require('./remoteSessionClient-PyUAIhwK.cjs');
68
71
  require('@modelcontextprotocol/sdk/server/mcp.js');
69
72
  require('node:http');
70
73
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
71
- require('./assistantTools-BsrG3PD-.cjs');
74
+ require('./downloadTarget-CWTb2-EM.cjs');
72
75
  require('./terminals-B_bfC9c2.cjs');
73
76
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
74
77
  require('./tmuxSocket-D-Xt6Vn-.cjs');
75
- require('./bootstrap-B1dMZA-u.cjs');
76
- require('./agentGuidance-B5NATuFa.cjs');
77
- require('./trimIdent-4gvk9Wk6.cjs');
78
+ require('./bootstrap-Dj8WBiR2.cjs');
78
79
  require('./previewPath-B0rBdhy1.cjs');
79
80
  require('./detectCLI-DR9ZaN6B.cjs');
80
81
  require('fs');
81
- require('./localHappyAgentAuth-BCx0y1qW.cjs');
82
+ require('./localHappyAgentAuth-T5GOvRha.cjs');
82
83
  require('url');
83
84
  require('node:module');
84
85
  require('./oneShotPrompts-CL0dip9C.cjs');
@@ -2,14 +2,14 @@
2
2
 
3
3
  var node_fs = require('node:fs');
4
4
  var os = require('node:os');
5
- var logger = require('./logger-D0hkk7Vo.cjs');
6
- var persistence = require('./persistence-C6ztVW1W.cjs');
5
+ var logger = require('./logger-B_MWPbZz.cjs');
6
+ var persistence = require('./persistence-BYGl0QYw.cjs');
7
7
  var loginShellEnv = require('./loginShellEnv-BkuYtExZ.cjs');
8
8
  require('chalk');
9
9
  require('node:util');
10
- require('./configuration-BE61XNsg.cjs');
10
+ require('./configuration-C3piBtxY.cjs');
11
11
  require('node:path');
12
- require('./package-UkmvSFsg.cjs');
12
+ require('./package-C9ZP9bpX.cjs');
13
13
  require('node:fs/promises');
14
14
  require('zod');
15
15
  require('./authRelay-BdYkC1Po.cjs');
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- require('./package-UkmvSFsg.cjs');
4
- require('./index-BzIxE0Eu.cjs');
3
+ require('./package-C9ZP9bpX.cjs');
4
+ require('./index-BjhKqDa0.cjs');
5
5
  require('node:module');
6
6
  require('node:fs');
7
7
  require('node:fs/promises');
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import './package-VIUXrYZ1.mjs';
2
- import './index-BgzjPv07.mjs';
1
+ import './package-DU1DxhH9.mjs';
2
+ import './index-C3_83bqS.mjs';
3
3
  import 'node:module';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
@@ -24,6 +24,8 @@ Pick the trigger, then the action. \`spawn\` takes an agent (claude / codex / pi
24
24
 
25
25
  Use \`sticky: { key }\` on a spawn action when repeated events about the same subject should continue one conversation: the key is a template (for example \`{{payload.conversationId}}\`). A run whose rendered key matches a live session sends the prompt into that session; otherwise it spawns a new one and remembers it. A dead or archived session is replaced on the next run.
26
26
 
27
+ Add a \`precheck\` when the action should only run if there is something to do (for example "new messages since the last run"): exactly one of \`command\` (argv) or \`shell\` (one command line, not template-rendered \u2014 read the payload from \`$VH_AUTOMATION_PAYLOAD\`), optional \`cwd\` (defaults to the action directory), \`timeoutMs\` (default 60s, max 10m) and \`includeOutput\` (append its stdout to the spawn/send prompt as context). Exit 0 runs the action; any other exit records the run as skipped (\`precheck_failed\`), a timeout or launch error as \`precheck_timeout\` / \`precheck_error\` with attention. Consecutive scheduled skips for the same reason fold into one run with an \`occurrenceCount\` (fired and manual runs keep one run each). A machine whose CLI is too old to run prechecks never executes the action; its runs are skipped as \`precheck_unsupported_cli\`.
28
+
27
29
  \`concurrency: skip\` (default) records a run as skipped while the previous one is still running; \`queue\` waits. \`maxRuntimeMs\` bounds a run (default 6h; scripts 30m).
28
30
 
29
31
  ## Event triggers
@@ -1,15 +1,15 @@
1
- import { l as logger } from './logger-CknSVkIe.mjs';
1
+ import { l as logger } from './logger-CbBv3q_b.mjs';
2
2
  import { existsSync, writeFileSync, chmodSync } from 'fs';
3
3
  import { execSync } from 'child_process';
4
4
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
5
5
  import os from 'os';
6
6
  import 'chalk';
7
7
  import 'node:util';
8
- import './configuration-L1qcGTFM.mjs';
8
+ import './configuration-WspKd2C2.mjs';
9
9
  import 'node:fs';
10
10
  import 'node:os';
11
11
  import 'node:path';
12
- import './package-VIUXrYZ1.mjs';
12
+ import './package-DU1DxhH9.mjs';
13
13
  import 'node:fs/promises';
14
14
 
15
15
  const PLIST_LABEL = "com.happy-cli.daemon";
@@ -26,6 +26,8 @@ Pick the trigger, then the action. \`spawn\` takes an agent (claude / codex / pi
26
26
 
27
27
  Use \`sticky: { key }\` on a spawn action when repeated events about the same subject should continue one conversation: the key is a template (for example \`{{payload.conversationId}}\`). A run whose rendered key matches a live session sends the prompt into that session; otherwise it spawns a new one and remembers it. A dead or archived session is replaced on the next run.
28
28
 
29
+ Add a \`precheck\` when the action should only run if there is something to do (for example "new messages since the last run"): exactly one of \`command\` (argv) or \`shell\` (one command line, not template-rendered \u2014 read the payload from \`$VH_AUTOMATION_PAYLOAD\`), optional \`cwd\` (defaults to the action directory), \`timeoutMs\` (default 60s, max 10m) and \`includeOutput\` (append its stdout to the spawn/send prompt as context). Exit 0 runs the action; any other exit records the run as skipped (\`precheck_failed\`), a timeout or launch error as \`precheck_timeout\` / \`precheck_error\` with attention. Consecutive scheduled skips for the same reason fold into one run with an \`occurrenceCount\` (fired and manual runs keep one run each). A machine whose CLI is too old to run prechecks never executes the action; its runs are skipped as \`precheck_unsupported_cli\`.
30
+
29
31
  \`concurrency: skip\` (default) records a run as skipped while the previous one is still running; \`queue\` waits. \`maxRuntimeMs\` bounds a run (default 6h; scripts 30m).
30
32
 
31
33
  ## Event triggers
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-D0hkk7Vo.cjs');
3
+ var logger = require('./logger-B_MWPbZz.cjs');
4
4
  var fs = require('fs');
5
5
  var child_process = require('child_process');
6
6
  var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
7
7
  var os = require('os');
8
8
  require('chalk');
9
9
  require('node:util');
10
- require('./configuration-BE61XNsg.cjs');
10
+ require('./configuration-C3piBtxY.cjs');
11
11
  require('node:fs');
12
12
  require('node:os');
13
13
  require('node:path');
14
- require('./package-UkmvSFsg.cjs');
14
+ require('./package-C9ZP9bpX.cjs');
15
15
  require('node:fs/promises');
16
16
 
17
17
  const PLIST_LABEL = "com.happy-cli.daemon";