very-happy-cli 0.2.188 → 0.2.190

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/{AcpBackend-2loP7MpF.mjs → AcpBackend-Dd1h-Rgt.mjs} +3 -3
  2. package/dist/{AcpBackend-B8AYkp5n.cjs → AcpBackend-dkRv9QHm.cjs} +3 -3
  3. package/dist/{AcpSessionManager-CLqo9R9Y.cjs → AcpSessionManager-AqWAqahm.cjs} +3 -3
  4. package/dist/{AcpSessionManager-C17doAoR.mjs → AcpSessionManager-QBZ-CIf7.mjs} +4 -4
  5. package/dist/{BasePermissionHandler-CrfyUmqO.mjs → BasePermissionHandler-CLp1ge-4.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-C8UEcFz0.cjs → BasePermissionHandler-CpSugp7Z.cjs} +1 -1
  7. package/dist/{acpSessionResume-OuYlLGxL.cjs → acpSessionResume-CZao6QEd.cjs} +1 -1
  8. package/dist/{acpSessionResume-F705a1cF.mjs → acpSessionResume-CcpDuIO5.mjs} +1 -1
  9. package/dist/{agentHome-Dc7LYF3d.mjs → agentHome-BJGRA2Kx.mjs} +4 -4
  10. package/dist/{agentHome-DsKHJ_Sf.cjs → agentHome-fIUqT-pn.cjs} +4 -4
  11. package/dist/{api-BOqjYd5r.cjs → api-CXL6jp-p.cjs} +18 -9
  12. package/dist/{api-DNKa7kVy.mjs → api-Dw8gFsQi.mjs} +19 -10
  13. package/dist/{apiMachine-Di1G9ECW.mjs → apiMachine-BBNEtjf7.mjs} +56 -15
  14. package/dist/{apiMachine--rcPpMmt.cjs → apiMachine-C6UqHoPF.cjs} +55 -14
  15. package/dist/{attachmentContent-C9S4ekAz.mjs → attachmentContent-CC4yIrSm.mjs} +2 -2
  16. package/dist/{attachmentContent-BFRMLong.cjs → attachmentContent-NmVfKp-B.cjs} +2 -2
  17. package/dist/{auth-CXmI92aj.cjs → auth-Bb_SL2os.cjs} +5 -5
  18. package/dist/{auth-Bzwo_vOM.mjs → auth-Bh6SUoGi.mjs} +8 -8
  19. package/dist/{auth-BNhhk2Fr.mjs → auth-Bj0psrD2.mjs} +5 -5
  20. package/dist/{auth-CQtfznF0.cjs → auth-DKa4MsAi.cjs} +8 -8
  21. package/dist/{auto-DXLdaX5O.cjs → auto-C9Qohh0P.cjs} +17 -16
  22. package/dist/{auto-DHYOLnXB.mjs → auto-DK7pbCnV.mjs} +19 -18
  23. package/dist/{bootstrap-Di38SnpN.mjs → bootstrap-Ct9Nb4sv.mjs} +2 -2
  24. package/dist/{bootstrap-eJ1l7VYl.cjs → bootstrap-DBJB0y-H.cjs} +2 -2
  25. package/dist/{browser-6Cg7G6bb.mjs → browser-BGxDRhHy.mjs} +1 -1
  26. package/dist/{browser-D3uBFRQu.cjs → browser-CLJWcodR.cjs} +1 -1
  27. package/dist/{claudeLocal-BBaE4QF_.cjs → claudeLocal-B6YDYlnY.cjs} +4 -4
  28. package/dist/{claudeLocal-CqaEs-81.mjs → claudeLocal-Ux31hZyC.mjs} +5 -5
  29. package/dist/{claudeLocalLauncher-BDUPxtsI.mjs → claudeLocalLauncher-D06QijMw.mjs} +10 -10
  30. package/dist/{claudeLocalLauncher-wPxKtH_P.cjs → claudeLocalLauncher-DFvmF8rC.cjs} +9 -9
  31. package/dist/{claudeSessionFork-DzWFzj9m.mjs → claudeSessionFork-D2GI7P59.mjs} +1 -1
  32. package/dist/{claudeSessionFork-CmY25Fl3.cjs → claudeSessionFork-DTLZ2rek.cjs} +1 -1
  33. package/dist/{client-DmY03OZZ.cjs → client-Bffkrs5p.cjs} +2 -2
  34. package/dist/{client-C2HcMqRF.cjs → client-CARZ_lNS.cjs} +3 -3
  35. package/dist/{client-agH03Irm.cjs → client-CMKGrnmT.cjs} +2 -2
  36. package/dist/{client-DWws_aQK.mjs → client-CnGNYidN.mjs} +2 -2
  37. package/dist/{client-qJ0y8fus.mjs → client-CtL0Vtww.mjs} +4 -4
  38. package/dist/{client-DcDE6Ifk.mjs → client-DZkBUoh9.mjs} +2 -2
  39. package/dist/codex/happyMcpStdioBridge.cjs +16 -15
  40. package/dist/codex/happyMcpStdioBridge.mjs +17 -16
  41. package/dist/{codexAppServerClient-DgE99i7X.mjs → codexAppServerClient-CLc5nhLT.mjs} +37 -6
  42. package/dist/{codexAppServerClient-DwzC8LR0.cjs → codexAppServerClient-CpT9F6EM.cjs} +37 -6
  43. package/dist/{codexCommand-1vFEA1KT.cjs → codexCommand-39kH99SJ.cjs} +148 -61
  44. package/dist/{codexCommand-DUSVzbKh.mjs → codexCommand-Dliq3EBv.mjs} +143 -56
  45. package/dist/{codexTermination-DuDPyBRR.cjs → codexTermination-ByW7tRjr.cjs} +1 -1
  46. package/dist/{codexTermination-Bybovr2z.mjs → codexTermination-ORIw0gpU.mjs} +1 -1
  47. package/dist/{codexThreadFork-DNekT4nQ.cjs → codexThreadFork-5kwoKjMu.cjs} +11 -17
  48. package/dist/{codexThreadFork-R76RU5H0.mjs → codexThreadFork-DobPd19R.mjs} +11 -17
  49. package/dist/{config-C4xOL5bH.cjs → config-CeIzCsfj.cjs} +3 -3
  50. package/dist/{config-BrzZ0O-6.mjs → config-CxSsGO1Z.mjs} +3 -3
  51. package/dist/{configuration-BZHpFD7K.mjs → configuration-Dechcvd-.mjs} +1 -1
  52. package/dist/{configuration-DyPW9mVa.cjs → configuration-Dt5lKW3P.cjs} +1 -1
  53. package/dist/{connect-DurKwMEo.cjs → connect-NPDzIVC6.cjs} +12 -12
  54. package/dist/{connect-Cw_INlj8.mjs → connect-UwQHvCpR.mjs} +13 -13
  55. package/dist/{context-2xDvjkQp.cjs → context-BdZssgF0.cjs} +1 -1
  56. package/dist/{context-t7YV0aZc.mjs → context-C9JbJoNe.mjs} +1 -1
  57. package/dist/{controlClient-DvFaPsg6.cjs → controlClient-BRk65BRO.cjs} +3 -3
  58. package/dist/{controlClient-Bw56NIrj.mjs → controlClient-D7NGfmtq.mjs} +3 -3
  59. package/dist/{createSessionMetadata-Dpg6bV6f.cjs → createSessionMetadata-B_HZCDj_.cjs} +2 -2
  60. package/dist/{createSessionMetadata-Dn5BkLfU.mjs → createSessionMetadata-DyhFKAby.mjs} +2 -2
  61. package/dist/defaultPermissionMode-BnxJPVHT.mjs +4 -0
  62. package/dist/defaultPermissionMode-CxmTXUQR.cjs +7 -0
  63. package/dist/{deterministicJson-D0BrV1FD.cjs → deterministicJson-BEygolBQ.cjs} +12 -12
  64. package/dist/{deterministicJson-CsRckxVq.mjs → deterministicJson-DNmMVhFu.mjs} +13 -13
  65. package/dist/{doctor-CYe4d9kU.cjs → doctor-B9lW1WlG.cjs} +7 -7
  66. package/dist/{doctor-B4HQiW6j.mjs → doctor-BdBi7TFZ.mjs} +7 -7
  67. package/dist/{downloadTarget-tYMV_VHo.mjs → downloadTarget-CGojGjaN.mjs} +6 -6
  68. package/dist/{downloadTarget-CuhBVvuC.cjs → downloadTarget-DS0zT2AU.cjs} +6 -6
  69. package/dist/{ensureDaemonRunning-DVtIG9z7.mjs → ensureDaemonRunning-BOdbryDM.mjs} +5 -5
  70. package/dist/{ensureDaemonRunning-Ce3BlWiR.cjs → ensureDaemonRunning-Bibp6vhe.cjs} +5 -5
  71. package/dist/exitAfterFlush-AbKNZM0N.mjs +23 -0
  72. package/dist/exitAfterFlush-DIT_sIxR.cjs +25 -0
  73. package/dist/{handleResumeCommand-BU1uMNyv.mjs → handleResumeCommand-CgLzBYne.mjs} +5 -5
  74. package/dist/{handleResumeCommand-CLxsmAW0.cjs → handleResumeCommand-DXOuWr4p.cjs} +5 -5
  75. package/dist/{agentAttachments-Dbw8iMCZ.cjs → heldInput-BOtqFO2r.cjs} +27 -0
  76. package/dist/heldInput-C69lA2dH.mjs +44 -0
  77. package/dist/{index-KwuXqLwe.cjs → index-Bs5FD8JF.cjs} +4 -4
  78. package/dist/{index-ChX0eVXw.mjs → index-CBHfkQNY.mjs} +142 -60
  79. package/dist/{index-DoXbGEAi.cjs → index-CwRW11hT.cjs} +3 -3
  80. package/dist/{index-CVHRt3SS.mjs → index-DUByZsKe.mjs} +4 -4
  81. package/dist/{index-wWJJAQRk.cjs → index-DXSIi6j_.cjs} +4 -4
  82. package/dist/{index-DDz0Ftoy.mjs → index-Db0HIC-k.mjs} +4 -4
  83. package/dist/{index-WKyN-bNy.mjs → index-DmqsRnV7.mjs} +1 -1
  84. package/dist/{index-DG1kGjkF.cjs → index-f8oDidjV.cjs} +142 -60
  85. package/dist/{index-B1OxWiNG.mjs → index-rNTX33in.mjs} +3 -3
  86. package/dist/index.cjs +2 -2
  87. package/dist/index.mjs +2 -2
  88. package/dist/{install-cAYvHxXR.cjs → install-CXIL_FYx.cjs} +3 -3
  89. package/dist/{install-CMa_FOWu.mjs → install-DfPrEWGG.mjs} +3 -3
  90. package/dist/lib.cjs +11 -11
  91. package/dist/lib.d.cts +61 -1
  92. package/dist/lib.d.mts +61 -1
  93. package/dist/lib.mjs +12 -12
  94. package/dist/{lidState-D-lsD1FS.mjs → lidState-D0DF20oG.mjs} +1 -1
  95. package/dist/{lidState-d1vgQ3n7.cjs → lidState-q_XFYg33.cjs} +1 -1
  96. package/dist/{localHappyAgentAuth-wvDp-nGj.mjs → localHappyAgentAuth-BBhM4Qk1.mjs} +1 -1
  97. package/dist/{localHappyAgentAuth-DucSnCg3.cjs → localHappyAgentAuth-CKNW-MXw.cjs} +1 -1
  98. package/dist/{logger-C3vZG6Q0.cjs → logger-BBRTTVsQ.cjs} +2 -2
  99. package/dist/{logger-RpzJ4d8V.mjs → logger-CL7pin9b.mjs} +2 -2
  100. package/dist/{machineMetadata-CiQ2_1Mq.mjs → machineMetadata-DP06qdBk.mjs} +3 -3
  101. package/dist/{machineMetadata-CAvFq1Jg.cjs → machineMetadata-DnFNlrVK.cjs} +3 -3
  102. package/dist/{main-ChpYcFZi.cjs → main-DLOXykOR.cjs} +49 -48
  103. package/dist/{main-IPhaImjm.mjs → main-DO7nRvhf.mjs} +49 -48
  104. package/dist/{mcp-CWnMvju6.mjs → mcp-C-4sPTae.mjs} +16 -15
  105. package/dist/{mcp-2xF232hL.cjs → mcp-Du0MgR7e.cjs} +15 -14
  106. package/dist/{mirrorProtocol-CVzPObON.cjs → mirrorProtocol-GuWMxLkh.cjs} +2 -2
  107. package/dist/{mirrorProtocol-Dr7fNq8V.mjs → mirrorProtocol-dkq2ZENA.mjs} +3 -3
  108. package/dist/{package-CwB8rFJt.mjs → package-C6uiXULx.mjs} +7 -7
  109. package/dist/{package-Gnf_935w.cjs → package-DrY090nZ.cjs} +7 -7
  110. package/dist/{panels-DTlTsndU.cjs → panels-4DRBKHZP.cjs} +5 -5
  111. package/dist/{panels-L1mSkC-y.mjs → panels-DXYdJA6n.mjs} +5 -5
  112. package/dist/{peerTools-C1E5cQ86.cjs → peerTools-5ZM4spcZ.cjs} +5 -5
  113. package/dist/{peerTools-2_8Bw9PU.mjs → peerTools-dY1aJez4.mjs} +5 -5
  114. package/dist/{persistence-CqtjFiD1.cjs → persistence-Bl5S3TLB.cjs} +6 -2
  115. package/dist/{persistence-Bn4qEbDg.mjs → persistence-Dogj7JIp.mjs} +6 -3
  116. package/dist/{piRunnerArgs-BI8yQRBZ.cjs → piRunnerArgs-C3jZ1M6b.cjs} +1 -1
  117. package/dist/{piRunnerArgs-DWBb63W9.mjs → piRunnerArgs-D8nN_Iit.mjs} +1 -1
  118. package/dist/{piRuntime--mQ43MSM.cjs → piRuntime-Bd9-eq6M.cjs} +1 -1
  119. package/dist/{piRuntime-Do8oqbm3.mjs → piRuntime-BoeMsAXK.mjs} +1 -1
  120. package/dist/{piTerminal-BzcvLFsP.cjs → piTerminal-C3j1ca3x.cjs} +17 -16
  121. package/dist/{piTerminal-GC1KHTYQ.mjs → piTerminal-GEPkIGD4.mjs} +18 -17
  122. package/dist/{pushNotifications-Bb-QSqXw.cjs → pushNotifications-CfspRcl-.cjs} +20 -2
  123. package/dist/{pushNotifications-BThg4nVd.mjs → pushNotifications-dUceOIni.mjs} +21 -3
  124. package/dist/{query-Bz3pocKH.cjs → query-DjsVgG3E.cjs} +1 -1
  125. package/dist/{query-CkgIJ_Dy.mjs → query-iYH-tm7L.mjs} +1 -1
  126. package/dist/{rateLimitReporter-BkHyvLru.cjs → rateLimitReporter-DUu2KydZ.cjs} +3 -3
  127. package/dist/{rateLimitReporter-Iw4k3Bbr.mjs → rateLimitReporter-jeVi-fym.mjs} +3 -3
  128. package/dist/{rateLimitWindows-Bm_dcQGW.cjs → rateLimitWindows-Bx3ROBP5.cjs} +1 -1
  129. package/dist/{rateLimitWindows-CQ4tIQnx.mjs → rateLimitWindows-CEn0DXaX.mjs} +1 -1
  130. package/dist/{registerCommonHandlers-CIs6H2DV.cjs → registerCommonHandlers-Beun-cQv.cjs} +2 -2
  131. package/dist/{registerCommonHandlers-CaWl9ll1.mjs → registerCommonHandlers-DWZ7mfdt.mjs} +2 -2
  132. package/dist/{specialCommands-BsvSoDhC.cjs → registerKillSessionHandler-CA1FFr_F.cjs} +15 -62
  133. package/dist/{specialCommands-DHU7TNeK.mjs → registerKillSessionHandler-CzgklwLG.mjs} +17 -60
  134. package/dist/{remoteSessionClient-uPj7omsw.mjs → remoteSessionClient-BiC2KDew.mjs} +5 -5
  135. package/dist/{remoteSessionClient-DgUMfPW4.cjs → remoteSessionClient-DGFI__5Z.cjs} +5 -5
  136. package/dist/{reportProgressTool-DUEq3xAL.mjs → reportProgressTool-CgPy6n_7.mjs} +3 -3
  137. package/dist/{reportProgressTool-CaJ8EwLq.cjs → reportProgressTool-CvPGov1F.cjs} +2 -2
  138. package/dist/{run-DTUJBD6p.mjs → run-B_gFgJVB.mjs} +393 -42
  139. package/dist/{run-DyyGMqND.cjs → run-rPqQwDi_.cjs} +391 -40
  140. package/dist/{runClaude-DTNvIz2J.mjs → runClaude-CykqeXK7.mjs} +26 -23
  141. package/dist/{runClaude-8JDaPoGQ.cjs → runClaude-DM8gm8iu.cjs} +27 -24
  142. package/dist/{runClaudeDeps-CgGkgg7e.mjs → runClaudeDeps-D2phXGut.mjs} +106 -46
  143. package/dist/{runClaudeDeps-BeLo5zss.cjs → runClaudeDeps-DGAomimZ.cjs} +101 -40
  144. package/dist/{runGemini-BSOdU563.cjs → runGemini-CXTeSOZp.cjs} +50 -49
  145. package/dist/{runGemini-eU8UOzfc.mjs → runGemini-CtWCVkj5.mjs} +49 -48
  146. package/dist/{runOpenClaw-D8RZiA1e.mjs → runOpenClaw-BBdjlViJ.mjs} +25 -24
  147. package/dist/{runOpenClaw-CYyFoGRZ.cjs → runOpenClaw-CH_9_RyZ.cjs} +26 -25
  148. package/dist/{sandbox-C8zfNX-4.cjs → sandbox-Bb5IMun3.cjs} +4 -4
  149. package/dist/{sandbox-DlPahdhl.mjs → sandbox-DGmXZ6Zz.mjs} +4 -4
  150. package/dist/selfCheck-BfK945YQ.mjs +86 -0
  151. package/dist/{selfCheck-D28nvuPJ.cjs → selfCheck-CccwNTTK.cjs} +37 -37
  152. package/dist/{send-DBpv-1eh.mjs → send-B6rHg8GT.mjs} +9 -8
  153. package/dist/{send-C58kX4qz.cjs → send-BpiXPkDo.cjs} +9 -8
  154. package/dist/{server-J5K6pOox.mjs → server-BkdAyHhC.mjs} +4 -4
  155. package/dist/{server-I_CETZzn.cjs → server-DHUzjApC.cjs} +6 -6
  156. package/dist/{sessionLock-DjE7O0LS.cjs → sessionLock-BFBReiKq.cjs} +134 -3
  157. package/dist/{sessionLock-C7Wg1RVd.mjs → sessionLock-Ca_bIo50.mjs} +121 -4
  158. package/dist/{sessionOps-CYjMT7Ad.mjs → sessionOps-CA2kpm66.mjs} +36 -5
  159. package/dist/{sessionOps-DGMpl9NB.cjs → sessionOps-DeWVqpe4.cjs} +36 -4
  160. package/dist/{sessionProvider-DVtxrOuM.cjs → sessionProvider-VFbtUmMR.cjs} +5 -5
  161. package/dist/{sessionProvider-TLiFn9kD.mjs → sessionProvider-g18IiK74.mjs} +5 -5
  162. package/dist/{sessionScanner-BZ1ZSn6I.cjs → sessionScanner-CGzsN8V6.cjs} +3 -3
  163. package/dist/{sessionScanner-CknV1IlN.mjs → sessionScanner-DDDud5re.mjs} +3 -3
  164. package/dist/{sessions-DU4bxkap.mjs → sessions-B4d50sCI.mjs} +36 -26
  165. package/dist/{sessions-CTkBKs5U.cjs → sessions-CKJPWFgu.cjs} +37 -25
  166. package/dist/{setupOfflineReconnection-DaOXnGuH.mjs → setupOfflineReconnection-CyPNgyCe.mjs} +2 -2
  167. package/dist/{setupOfflineReconnection-CQHNuP_0.cjs → setupOfflineReconnection-DPXRo_zf.cjs} +2 -2
  168. package/dist/{spawn-C0wZc03S.cjs → spawn-CgSJzzWS.cjs} +17 -16
  169. package/dist/{spawn-DdnYTtQe.mjs → spawn-CrYN_OOT.mjs} +18 -17
  170. package/dist/{spawnAgents-BjyU78Ue.cjs → spawnAgents-C1-4m7aN.cjs} +3 -1
  171. package/dist/{spawnAgents-D-7wMw-a.mjs → spawnAgents-DWCDYCQ1.mjs} +4 -2
  172. package/dist/{spawnHappyCLI-BJUd974I.cjs → spawnHappyCLI-CTy3p6V_.cjs} +1 -1
  173. package/dist/{spawnHappyCLI-CnyyJk74.mjs → spawnHappyCLI-DjbkiSH1.mjs} +1 -1
  174. package/dist/specialCommands-J3JFOq0J.cjs +60 -0
  175. package/dist/specialCommands-MXUN0wfI.mjs +54 -0
  176. package/dist/{startFileWatcher-DBboREco.cjs → startFileWatcher-BQs0cJA-.cjs} +1 -1
  177. package/dist/{startFileWatcher-CpO5Mwbr.mjs → startFileWatcher-Dedtu1vq.mjs} +1 -1
  178. package/dist/{defaultPermissionMode-DMTnlccv.mjs → startupSessionCreate-BKFU4v_h.mjs} +25 -6
  179. package/dist/{defaultPermissionMode-Dlm0q1m0.cjs → startupSessionCreate-Dxy3X4DG.cjs} +25 -7
  180. package/dist/{streamRelay-CqBynIon.mjs → streamRelay-P9e7Sohm.mjs} +1 -1
  181. package/dist/{sync-6HFRJP1h.cjs → sync-DtWB7RzA.cjs} +1 -1
  182. package/dist/{sync-I8NYmycF.mjs → sync-eZkXnsW_.mjs} +1 -1
  183. package/dist/{systemPrompt-BDWj5QSL.cjs → systemPrompt-2XOpZ1j6.cjs} +1 -1
  184. package/dist/{systemPrompt-C1RSY_60.mjs → systemPrompt-Bn6g6aCH.mjs} +2 -2
  185. package/dist/{teams-eUD7ymif.cjs → teams-ecFay4Gn.cjs} +6 -6
  186. package/dist/{teams-GpLFbXXE.mjs → teams-nadkqrbW.mjs} +7 -7
  187. package/dist/{template-CEK8MEjo.mjs → template-BiTD-jI9.mjs} +1 -1
  188. package/dist/{time-umG7yHkb.mjs → time-CN3TuSVG.mjs} +1 -1
  189. package/dist/{time-BAJRbB6U.cjs → time-gPD_EmA-.cjs} +1 -1
  190. package/dist/{titleGenerator-dmFlxkRs.mjs → titleGenerator-DgzTQdn2.mjs} +1 -1
  191. package/dist/{titleGenerator-iqb2jOF1.cjs → titleGenerator-lT5ldPuN.cjs} +2 -2
  192. package/dist/{todo-DsR7WnQS.cjs → todo-B1VeMk5A.cjs} +5 -5
  193. package/dist/{todo-CT4AJ3sH.mjs → todo-BIxd7l2Q.mjs} +6 -6
  194. package/dist/{tools-30E66QL_.cjs → tools-DvqbLsCF.cjs} +1 -1
  195. package/dist/{tools-BOWazSD6.mjs → tools-zXJpxiG_.mjs} +1 -1
  196. package/dist/{uninstall-DImXs6VZ.mjs → uninstall-9htK6mb7.mjs} +3 -3
  197. package/dist/{uninstall-BtTc9hHa.cjs → uninstall-CvIOpwB5.cjs} +3 -3
  198. package/package.json +7 -7
  199. package/dist/agentAttachments-M_B5qEF2.mjs +0 -18
  200. package/dist/selfCheck-4bcdHPFQ.mjs +0 -86
  201. package/dist/startupSessionCreate-BgaVuvQp.mjs +0 -24
  202. package/dist/startupSessionCreate-C1u2dtz8.cjs +0 -26
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ const COMPACT_RE = /^[/\uFF0F]compact(?![A-Za-z0-9_:-])([\s\S]*)$/i;
4
+ const LEADING_SPACE_RE = /^[\s\u3000\uFEFF\u200B]+/;
5
+ function parseCompact(message) {
6
+ const match = message.replace(LEADING_SPACE_RE, "").match(COMPACT_RE);
7
+ if (!match) {
8
+ return {
9
+ isCompact: false,
10
+ originalMessage: message
11
+ };
12
+ }
13
+ const instructions = match[1].replace(/\u3000/g, " ").trim();
14
+ return {
15
+ isCompact: true,
16
+ originalMessage: instructions ? `/compact ${instructions}` : "/compact"
17
+ };
18
+ }
19
+ function compactCommandText(message) {
20
+ const result = parseCompact(message);
21
+ return result.isCompact ? result.originalMessage : null;
22
+ }
23
+ function parseClear(message) {
24
+ const trimmed = message.trim();
25
+ return {
26
+ isClear: trimmed === "/clear"
27
+ };
28
+ }
29
+ function parseSpecialCommand(message) {
30
+ const compactResult = parseCompact(message);
31
+ if (compactResult.isCompact) {
32
+ return {
33
+ type: "compact",
34
+ originalMessage: compactResult.originalMessage
35
+ };
36
+ }
37
+ const clearResult = parseClear(message);
38
+ if (clearResult.isClear) {
39
+ return {
40
+ type: "clear"
41
+ };
42
+ }
43
+ const trimmed = message.trim().toLowerCase();
44
+ if (trimmed === "/mcp") {
45
+ return { type: "mcp" };
46
+ }
47
+ if (trimmed === "/skills") {
48
+ return { type: "skills" };
49
+ }
50
+ return {
51
+ type: null
52
+ };
53
+ }
54
+ const COMPACT_UNSUPPORTED_NOTICE = "This session type does not support /compact";
55
+
56
+ exports.COMPACT_UNSUPPORTED_NOTICE = COMPACT_UNSUPPORTED_NOTICE;
57
+ exports.compactCommandText = compactCommandText;
58
+ exports.parseClear = parseClear;
59
+ exports.parseCompact = parseCompact;
60
+ exports.parseSpecialCommand = parseSpecialCommand;
@@ -0,0 +1,54 @@
1
+ const COMPACT_RE = /^[/\uFF0F]compact(?![A-Za-z0-9_:-])([\s\S]*)$/i;
2
+ const LEADING_SPACE_RE = /^[\s\u3000\uFEFF\u200B]+/;
3
+ function parseCompact(message) {
4
+ const match = message.replace(LEADING_SPACE_RE, "").match(COMPACT_RE);
5
+ if (!match) {
6
+ return {
7
+ isCompact: false,
8
+ originalMessage: message
9
+ };
10
+ }
11
+ const instructions = match[1].replace(/\u3000/g, " ").trim();
12
+ return {
13
+ isCompact: true,
14
+ originalMessage: instructions ? `/compact ${instructions}` : "/compact"
15
+ };
16
+ }
17
+ function compactCommandText(message) {
18
+ const result = parseCompact(message);
19
+ return result.isCompact ? result.originalMessage : null;
20
+ }
21
+ function parseClear(message) {
22
+ const trimmed = message.trim();
23
+ return {
24
+ isClear: trimmed === "/clear"
25
+ };
26
+ }
27
+ function parseSpecialCommand(message) {
28
+ const compactResult = parseCompact(message);
29
+ if (compactResult.isCompact) {
30
+ return {
31
+ type: "compact",
32
+ originalMessage: compactResult.originalMessage
33
+ };
34
+ }
35
+ const clearResult = parseClear(message);
36
+ if (clearResult.isClear) {
37
+ return {
38
+ type: "clear"
39
+ };
40
+ }
41
+ const trimmed = message.trim().toLowerCase();
42
+ if (trimmed === "/mcp") {
43
+ return { type: "mcp" };
44
+ }
45
+ if (trimmed === "/skills") {
46
+ return { type: "skills" };
47
+ }
48
+ return {
49
+ type: null
50
+ };
51
+ }
52
+ const COMPACT_UNSUPPORTED_NOTICE = "This session type does not support /compact";
53
+
54
+ export { COMPACT_UNSUPPORTED_NOTICE as C, parseSpecialCommand as a, parseCompact as b, compactCommandText as c, parseClear as p };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-C3vZG6Q0.cjs');
3
+ var logger = require('./logger-BBRTTVsQ.cjs');
4
4
  var fs = require('fs/promises');
5
5
 
6
6
  function startFileWatcher(file, onFileChange, options = {}) {
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-RpzJ4d8V.mjs';
1
+ import { l as logger } from './logger-CL7pin9b.mjs';
2
2
  import { watch } from 'fs/promises';
3
3
 
4
4
  function startFileWatcher(file, onFileChange, options = {}) {
@@ -1,5 +1,6 @@
1
- import { l as logger } from './logger-RpzJ4d8V.mjs';
2
- import { e as evaluateWrapperIdle, j as HIBERNATION_UNSUPPORTED_BACKOFF_MS } from './persistence-Bn4qEbDg.mjs';
1
+ import { l as logger } from './logger-CL7pin9b.mjs';
2
+ import { e as evaluateWrapperIdle, j as isQuiescent, k as HIBERNATION_UNSUPPORTED_BACKOFF_MS } from './persistence-Dogj7JIp.mjs';
3
+ import { c as connectionState } from './api-Dw8gFsQi.mjs';
3
4
 
4
5
  const PRESENCE_SETTLE_MS = 6e3;
5
6
  async function commitHibernation(deps) {
@@ -110,7 +111,7 @@ class HibernationProbe {
110
111
  const now = (this.deps.now ?? Date.now)();
111
112
  const snapshot = this.deps.snapshot();
112
113
  const local = evaluateWrapperIdle(snapshot, 1, now);
113
- if (!local.ok && local.reason !== "keep-awake") {
114
+ if (!local.ok && local.reason !== "keep-awake" && !isQuiescent(snapshot)) {
114
115
  this.schedule(this.deps.checkMs);
115
116
  return this.deps.checkMs;
116
117
  }
@@ -185,7 +186,25 @@ class HibernationExitLatch {
185
186
  }
186
187
  }
187
188
 
188
- const DEFAULT_CLAUDE_PERMISSION_MODE = "default";
189
- const DEFAULT_CODEX_PERMISSION_MODE = "default";
189
+ const DAEMON_SESSION_CREATE_RETRY_DELAYS_MS = [500, 1e3, 2e3, 3e3];
190
+ class SessionStartupError extends Error {
191
+ constructor(message) {
192
+ super(message);
193
+ this.name = "SessionStartupError";
194
+ }
195
+ }
196
+ async function createSessionForStartup(create, opts) {
197
+ if (opts.startedBy !== "daemon") return create();
198
+ const delays = opts.delaysMs ?? DAEMON_SESSION_CREATE_RETRY_DELAYS_MS;
199
+ const sleep = opts.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
200
+ for (let attempt = 0; ; attempt++) {
201
+ const session = await create();
202
+ if (session) return session;
203
+ if (attempt >= delays.length) break;
204
+ opts.log?.(`[START] Session create attempt ${attempt + 1} failed (${connectionState.describe("Session creation") ?? "server unavailable"}); retrying in ${delays[attempt]}ms`);
205
+ await sleep(delays[attempt]);
206
+ }
207
+ throw new SessionStartupError(`Could not create the session on the server after ${delays.length + 1} attempts: ${connectionState.describe("Session creation") ?? "server unavailable"}`);
208
+ }
190
209
 
191
- export { DEFAULT_CLAUDE_PERMISSION_MODE as D, HibernationProbe as H, HibernationExitLatch as a, DEFAULT_CODEX_PERMISSION_MODE as b, commitHibernation as c };
210
+ export { HibernationProbe as H, commitHibernation as a, HibernationExitLatch as b, createSessionForStartup as c };
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-C3vZG6Q0.cjs');
4
- var persistence = require('./persistence-CqtjFiD1.cjs');
3
+ var logger = require('./logger-BBRTTVsQ.cjs');
4
+ var persistence = require('./persistence-Bl5S3TLB.cjs');
5
+ var api = require('./api-CXL6jp-p.cjs');
5
6
 
6
7
  const PRESENCE_SETTLE_MS = 6e3;
7
8
  async function commitHibernation(deps) {
@@ -112,7 +113,7 @@ class HibernationProbe {
112
113
  const now = (this.deps.now ?? Date.now)();
113
114
  const snapshot = this.deps.snapshot();
114
115
  const local = persistence.evaluateWrapperIdle(snapshot, 1, now);
115
- if (!local.ok && local.reason !== "keep-awake") {
116
+ if (!local.ok && local.reason !== "keep-awake" && !persistence.isQuiescent(snapshot)) {
116
117
  this.schedule(this.deps.checkMs);
117
118
  return this.deps.checkMs;
118
119
  }
@@ -187,11 +188,28 @@ class HibernationExitLatch {
187
188
  }
188
189
  }
189
190
 
190
- const DEFAULT_CLAUDE_PERMISSION_MODE = "default";
191
- const DEFAULT_CODEX_PERMISSION_MODE = "default";
191
+ const DAEMON_SESSION_CREATE_RETRY_DELAYS_MS = [500, 1e3, 2e3, 3e3];
192
+ class SessionStartupError extends Error {
193
+ constructor(message) {
194
+ super(message);
195
+ this.name = "SessionStartupError";
196
+ }
197
+ }
198
+ async function createSessionForStartup(create, opts) {
199
+ if (opts.startedBy !== "daemon") return create();
200
+ const delays = opts.delaysMs ?? DAEMON_SESSION_CREATE_RETRY_DELAYS_MS;
201
+ const sleep = opts.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
202
+ for (let attempt = 0; ; attempt++) {
203
+ const session = await create();
204
+ if (session) return session;
205
+ if (attempt >= delays.length) break;
206
+ opts.log?.(`[START] Session create attempt ${attempt + 1} failed (${api.connectionState.describe("Session creation") ?? "server unavailable"}); retrying in ${delays[attempt]}ms`);
207
+ await sleep(delays[attempt]);
208
+ }
209
+ throw new SessionStartupError(`Could not create the session on the server after ${delays.length + 1} attempts: ${api.connectionState.describe("Session creation") ?? "server unavailable"}`);
210
+ }
192
211
 
193
- exports.DEFAULT_CLAUDE_PERMISSION_MODE = DEFAULT_CLAUDE_PERMISSION_MODE;
194
- exports.DEFAULT_CODEX_PERMISSION_MODE = DEFAULT_CODEX_PERMISSION_MODE;
195
212
  exports.HibernationExitLatch = HibernationExitLatch;
196
213
  exports.HibernationProbe = HibernationProbe;
197
214
  exports.commitHibernation = commitHibernation;
215
+ exports.createSessionForStartup = createSessionForStartup;
@@ -1,4 +1,4 @@
1
- import { S as STREAM_DELTA_MAX_CHARS } from './index-WKyN-bNy.mjs';
1
+ import { S as STREAM_DELTA_MAX_CHARS } from './index-DmqsRnV7.mjs';
2
2
 
3
3
  const STREAM_FLUSH_MS = 80;
4
4
  const PROGRESS_FLUSH_MS = 250;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var time = require('./time-BAJRbB6U.cjs');
3
+ var time = require('./time-gPD_EmA-.cjs');
4
4
 
5
5
  class InvalidateSync {
6
6
  _invalidated = false;
@@ -1,4 +1,4 @@
1
- import { b as backoff } from './time-umG7yHkb.mjs';
1
+ import { b as backoff } from './time-CN3TuSVG.mjs';
2
2
 
3
3
  class InvalidateSync {
4
4
  _invalidated = false;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-C3vZG6Q0.cjs');
3
+ var logger = require('./logger-BBRTTVsQ.cjs');
4
4
  var node_fs = require('node:fs');
5
5
  var path$1 = require('node:path');
6
6
  var path = require('./path-B7zW-WwE.cjs');
@@ -1,8 +1,8 @@
1
- import { l as logger } from './logger-RpzJ4d8V.mjs';
1
+ import { l as logger } from './logger-CL7pin9b.mjs';
2
2
  import { existsSync, readFileSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
5
- import { j as BUILTIN_TODO_DISCOVERY } from './index-WKyN-bNy.mjs';
5
+ import { j as BUILTIN_TODO_DISCOVERY } from './index-DmqsRnV7.mjs';
6
6
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
7
7
  import { homedir } from 'node:os';
8
8
  import { A as AGENT_GUIDANCE } from './agentGuidance-BDYt2Qy2.mjs';
@@ -4,21 +4,21 @@ var os = require('node:os');
4
4
  var promises = require('node:fs/promises');
5
5
  var z = require('zod');
6
6
  var node_crypto = require('node:crypto');
7
- var client = require('./client-C2HcMqRF.cjs');
8
- var persistence = require('./persistence-CqtjFiD1.cjs');
7
+ var client = require('./client-CARZ_lNS.cjs');
8
+ var persistence = require('./persistence-Bl5S3TLB.cjs');
9
9
  var install = require('./install-BOHlqewf.cjs');
10
10
  require('node:child_process');
11
11
  require('node:util');
12
12
  require('node:path');
13
13
  require('./index-BOe6dKnL.cjs');
14
14
  require('@paralleldrive/cuid2');
15
- require('./configuration-DyPW9mVa.cjs');
15
+ require('./configuration-Dt5lKW3P.cjs');
16
16
  require('node:fs');
17
- require('./package-Gnf_935w.cjs');
18
- require('./context-2xDvjkQp.cjs');
17
+ require('./package-DrY090nZ.cjs');
18
+ require('./context-BdZssgF0.cjs');
19
19
  require('./authRelay-Dy1qU9td.cjs');
20
20
  require('tweetnacl');
21
- require('./logger-C3vZG6Q0.cjs');
21
+ require('./logger-BBRTTVsQ.cjs');
22
22
  require('chalk');
23
23
  require('./resources-BZ_Be0qM.cjs');
24
24
 
@@ -2,21 +2,21 @@ import { homedir } from 'node:os';
2
2
  import { readFile } from 'node:fs/promises';
3
3
  import { z } from 'zod';
4
4
  import { randomUUID } from 'node:crypto';
5
- import { t as teamRequest, c as createTeamsClient } from './client-qJ0y8fus.mjs';
6
- import { b as readCredentialsForConfiguredRelay } from './persistence-Bn4qEbDg.mjs';
5
+ import { t as teamRequest, c as createTeamsClient } from './client-CtL0Vtww.mjs';
6
+ import { b as readCredentialsForConfiguredRelay } from './persistence-Dogj7JIp.mjs';
7
7
  import { a as installTeamSkill, i as installAutomationSkill } from './install-B8O1JpJH.mjs';
8
8
  import 'node:child_process';
9
9
  import 'node:util';
10
10
  import 'node:path';
11
- import './index-WKyN-bNy.mjs';
11
+ import './index-DmqsRnV7.mjs';
12
12
  import '@paralleldrive/cuid2';
13
- import './configuration-BZHpFD7K.mjs';
13
+ import './configuration-Dechcvd-.mjs';
14
14
  import 'node:fs';
15
- import './package-CwB8rFJt.mjs';
16
- import './context-t7YV0aZc.mjs';
15
+ import './package-C6uiXULx.mjs';
16
+ import './context-C9JbJoNe.mjs';
17
17
  import './authRelay-DhQhkBvX.mjs';
18
18
  import 'tweetnacl';
19
- import './logger-RpzJ4d8V.mjs';
19
+ import './logger-CL7pin9b.mjs';
20
20
  import 'chalk';
21
21
  import './resources-CLP_MpK4.mjs';
22
22
 
@@ -1,4 +1,4 @@
1
- import { d as AUTOMATION_ATTENTION_REASON_MAX_CHARS, e as AUTOMATION_SUMMARY_MAX_CHARS } from './index-WKyN-bNy.mjs';
1
+ import { d as AUTOMATION_ATTENTION_REASON_MAX_CHARS, e as AUTOMATION_SUMMARY_MAX_CHARS } from './index-DmqsRnV7.mjs';
2
2
 
3
3
  function payloadJson(payload) {
4
4
  if (!payload) return void 0;
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-RpzJ4d8V.mjs';
1
+ import { l as logger } from './logger-CL7pin9b.mjs';
2
2
 
3
3
  async function delay(ms) {
4
4
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-C3vZG6Q0.cjs');
3
+ var logger = require('./logger-BBRTTVsQ.cjs');
4
4
 
5
5
  async function delay(ms) {
6
6
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -3,7 +3,7 @@ import { createRequire } from 'node:module';
3
3
  import { T as TITLE_PROMPT_PREFIX } from './oneShotPrompts-DT4p6RNd.mjs';
4
4
  import { randomUUID } from 'node:crypto';
5
5
  import { resolve, join } from 'node:path';
6
- import { l as logger } from './logger-RpzJ4d8V.mjs';
6
+ import { l as logger } from './logger-CL7pin9b.mjs';
7
7
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
8
8
 
9
9
  const MAX_PROMPT_SAMPLE_CHARS = 500;
@@ -5,7 +5,7 @@ var module$1 = require('node:module');
5
5
  var oneShotPrompts = require('./oneShotPrompts-CL0dip9C.cjs');
6
6
  var node_crypto = require('node:crypto');
7
7
  var path = require('node:path');
8
- var logger = require('./logger-C3vZG6Q0.cjs');
8
+ var logger = require('./logger-BBRTTVsQ.cjs');
9
9
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
10
10
 
11
11
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
@@ -13,7 +13,7 @@ const MAX_PROMPT_SAMPLE_CHARS = 500;
13
13
  const MAX_TITLE_CHARS = 60;
14
14
  const GENERATION_TIMEOUT_MS = 3e4;
15
15
  function loadClaudeVersionUtils() {
16
- const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('titleGenerator-iqb2jOF1.cjs', document.baseURI).href)));
16
+ const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('titleGenerator-lT5ldPuN.cjs', document.baseURI).href)));
17
17
  return require$1(path.resolve(path.join(projectPath.projectPath(), "scripts", "claude_version_utils.cjs")));
18
18
  }
19
19
  function resolveClaudeBinary(loadUtils = loadClaudeVersionUtils) {
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var configuration = require('./configuration-DyPW9mVa.cjs');
3
+ var configuration = require('./configuration-Dt5lKW3P.cjs');
4
4
  var index = require('./index-BOe6dKnL.cjs');
5
- var persistence = require('./persistence-CqtjFiD1.cjs');
6
- var context = require('./context-2xDvjkQp.cjs');
5
+ var persistence = require('./persistence-Bl5S3TLB.cjs');
6
+ var context = require('./context-BdZssgF0.cjs');
7
7
  require('node:fs');
8
8
  require('node:os');
9
9
  require('node:path');
10
- require('./package-Gnf_935w.cjs');
10
+ require('./package-DrY090nZ.cjs');
11
11
  require('node:fs/promises');
12
12
  require('zod');
13
13
  require('@paralleldrive/cuid2');
14
14
  require('./authRelay-Dy1qU9td.cjs');
15
15
  require('node:crypto');
16
16
  require('tweetnacl');
17
- require('./logger-C3vZG6Q0.cjs');
17
+ require('./logger-BBRTTVsQ.cjs');
18
18
  require('chalk');
19
19
  require('node:util');
20
20
 
@@ -1,18 +1,18 @@
1
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
2
- import { h as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './index-WKyN-bNy.mjs';
3
- import { b as readCredentialsForConfiguredRelay } from './persistence-Bn4qEbDg.mjs';
4
- import { r as readTeamScope, t as teamScopePath } from './context-t7YV0aZc.mjs';
1
+ import { c as configuration } from './configuration-Dechcvd-.mjs';
2
+ import { h as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './index-DmqsRnV7.mjs';
3
+ import { b as readCredentialsForConfiguredRelay } from './persistence-Dogj7JIp.mjs';
4
+ import { r as readTeamScope, t as teamScopePath } from './context-C9JbJoNe.mjs';
5
5
  import 'node:fs';
6
6
  import 'node:os';
7
7
  import 'node:path';
8
- import './package-CwB8rFJt.mjs';
8
+ import './package-C6uiXULx.mjs';
9
9
  import 'node:fs/promises';
10
10
  import 'zod';
11
11
  import '@paralleldrive/cuid2';
12
12
  import './authRelay-DhQhkBvX.mjs';
13
13
  import 'node:crypto';
14
14
  import 'tweetnacl';
15
- import './logger-RpzJ4d8V.mjs';
15
+ import './logger-CL7pin9b.mjs';
16
16
  import 'chalk';
17
17
  import 'node:util';
18
18
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var z = require('zod');
4
- var client = require('./client-C2HcMqRF.cjs');
4
+ var client = require('./client-CARZ_lNS.cjs');
5
5
 
6
6
  const CLOSED_GOAL_CHARS = 200;
7
7
  const closed = (task) => task.status === "done" || task.status === "cancelled";
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { c as createTeamsClient } from './client-qJ0y8fus.mjs';
2
+ import { c as createTeamsClient } from './client-CtL0Vtww.mjs';
3
3
 
4
4
  const CLOSED_GOAL_CHARS = 200;
5
5
  const closed = (task) => task.status === "done" || task.status === "cancelled";
@@ -1,13 +1,13 @@
1
- import { l as logger } from './logger-RpzJ4d8V.mjs';
1
+ import { l as logger } from './logger-CL7pin9b.mjs';
2
2
  import { existsSync, unlinkSync } from 'fs';
3
3
  import { execSync } from 'child_process';
4
4
  import 'chalk';
5
5
  import 'node:util';
6
- import './configuration-BZHpFD7K.mjs';
6
+ import './configuration-Dechcvd-.mjs';
7
7
  import 'node:fs';
8
8
  import 'node:os';
9
9
  import 'node:path';
10
- import './package-CwB8rFJt.mjs';
10
+ import './package-C6uiXULx.mjs';
11
11
  import 'node:fs/promises';
12
12
 
13
13
  const PLIST_LABEL = "com.happy-cli.daemon";
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-C3vZG6Q0.cjs');
3
+ var logger = require('./logger-BBRTTVsQ.cjs');
4
4
  var require$$0 = require('fs');
5
5
  var child_process = require('child_process');
6
6
  require('chalk');
7
7
  require('node:util');
8
- require('./configuration-DyPW9mVa.cjs');
8
+ require('./configuration-Dt5lKW3P.cjs');
9
9
  require('node:fs');
10
10
  require('node:os');
11
11
  require('node:path');
12
- require('./package-Gnf_935w.cjs');
12
+ require('./package-DrY090nZ.cjs');
13
13
  require('node:fs/promises');
14
14
 
15
15
  const PLIST_LABEL = "com.happy-cli.daemon";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "very-happy-cli",
3
- "version": "0.2.188",
3
+ "version": "0.2.190",
4
4
  "description": "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.",
5
5
  "author": "Kirill Dubovitskiy",
6
6
  "contributors": [
@@ -117,12 +117,12 @@
117
117
  "zod": "^4.6.7"
118
118
  },
119
119
  "optionalDependencies": {
120
- "very-happy-tools-arm64-darwin": "0.2.188",
121
- "very-happy-tools-x64-darwin": "0.2.188",
122
- "very-happy-tools-arm64-linux": "0.2.188",
123
- "very-happy-tools-x64-linux": "0.2.188",
124
- "very-happy-tools-arm64-win32": "0.2.188",
125
- "very-happy-tools-x64-win32": "0.2.188"
120
+ "very-happy-tools-arm64-darwin": "0.2.190",
121
+ "very-happy-tools-x64-darwin": "0.2.190",
122
+ "very-happy-tools-arm64-linux": "0.2.190",
123
+ "very-happy-tools-x64-linux": "0.2.190",
124
+ "very-happy-tools-arm64-win32": "0.2.190",
125
+ "very-happy-tools-x64-win32": "0.2.190"
126
126
  },
127
127
  "devDependencies": {
128
128
  "@slopus/happy-wire": "workspace:*",
@@ -1,18 +0,0 @@
1
- function registerAgentAttachmentDownloads(session) {
2
- session.onFileEvent((fileEvent) => {
3
- const attachment = fileEvent.content.data.ev;
4
- const download = (async () => {
5
- try {
6
- const data = await session.downloadAndDecryptAttachment(attachment.ref);
7
- if (!data) throw new Error("Attachment decryption failed");
8
- return { data, mimeType: attachment.mimeType ?? "image/jpeg", name: attachment.name };
9
- } catch {
10
- session.sendSessionEvent({ type: "message", message: `Could not download attachment: ${attachment.name}. Please attach it again.` });
11
- return null;
12
- }
13
- })();
14
- session.trackAttachmentDownload(download);
15
- });
16
- }
17
-
18
- export { registerAgentAttachmentDownloads as r };
@@ -1,86 +0,0 @@
1
- import { p as packageJson } from './package-CwB8rFJt.mjs';
2
-
3
- const LAZY_MODULES = [
4
- // Entry
5
- ["main", () => import('./main-IPhaImjm.mjs')],
6
- ["selfCheck", () => Promise.resolve().then(function () { return selfCheck; })],
7
- // Subcommands (main.ts)
8
- ["api/api", () => import('./api-DNKa7kVy.mjs').then(function (n) { return n.e; })],
9
- ["claude/claudeCliPath", () => import('./claudeCliPath-BqkaH2oR.mjs')],
10
- ["claude/runClaude", () => import('./runClaude-DTNvIz2J.mjs')],
11
- ["commands/agentHome", () => import('./agentHome-Dc7LYF3d.mjs')],
12
- ["commands/auth", () => import('./auth-Bzwo_vOM.mjs')],
13
- ["commands/auto", () => import('./auto-DHYOLnXB.mjs')],
14
- ["commands/codexCommand", () => import('./codexCommand-DUSVzbKh.mjs')],
15
- ["commands/connect", () => import('./connect-Cw_INlj8.mjs')],
16
- ["commands/installPiTools", () => import('./installPiTools-B_CdM5_2.mjs')],
17
- ["commands/installTerminalHooks", () => import('./installTerminalHooks-By7gBMEF.mjs')],
18
- ["commands/mcp", () => import('./mcp-CWnMvju6.mjs')],
19
- ["commands/panels", () => import('./panels-L1mSkC-y.mjs')],
20
- ["commands/piTerminal", () => import('./piTerminal-GC1KHTYQ.mjs')],
21
- ["commands/sandbox", () => import('./sandbox-DlPahdhl.mjs')],
22
- ["commands/send", () => import('./send-DBpv-1eh.mjs')],
23
- ["commands/server", () => import('./server-J5K6pOox.mjs')],
24
- ["commands/sessions", () => import('./sessions-DU4bxkap.mjs')],
25
- ["commands/sessionProvider", () => import('./sessionProvider-TLiFn9kD.mjs')],
26
- ["commands/spawn", () => import('./spawn-DdnYTtQe.mjs')],
27
- ["commands/teams", () => import('./teams-GpLFbXXE.mjs')],
28
- ["commands/todo", () => import('./todo-CT4AJ3sH.mjs')],
29
- ["daemon/doctor", () => import('./doctor-BPkYWSuq.mjs')],
30
- ["daemon/install", () => import('./install-CMa_FOWu.mjs')],
31
- ["daemon/run", () => import('./run-DTUJBD6p.mjs')],
32
- ["daemon/uninstall", () => import('./uninstall-DImXs6VZ.mjs')],
33
- ["resume/handleResumeCommand", () => import('./handleResumeCommand-BU1uMNyv.mjs')],
34
- ["ui/doctor", () => import('./doctor-B4HQiW6j.mjs').then(function (n) { return n.d; })],
35
- ["agent/acp", () => import('./index-ChX0eVXw.mjs')],
36
- ["gemini/runGemini", () => import('./runGemini-eU8UOzfc.mjs')],
37
- ["gemini/utils/config", () => import('./config-BrzZ0O-6.mjs')],
38
- ["openclaw/runOpenClaw", () => import('./runOpenClaw-D8RZiA1e.mjs')],
39
- ["persistence", () => import('./persistence-Bn4qEbDg.mjs').then(function (n) { return n.F; })],
40
- // Deferred halves of the runners and clients
41
- ["api/apiMachine", () => import('./apiMachine-Di1G9ECW.mjs')],
42
- ["claude/runClaudeDeps", () => import('./runClaudeDeps-CgGkgg7e.mjs')],
43
- ["claude/claudeLocal", () => import('./claudeLocal-CqaEs-81.mjs')],
44
- ["claude/claudeLocalLauncher", () => import('./claudeLocalLauncher-BDUPxtsI.mjs')],
45
- ["claude/sdk", () => import('./index-DDz0Ftoy.mjs')],
46
- ["assistant/bootstrap", () => import('./bootstrap-Di38SnpN.mjs')],
47
- ["agentHome", () => import('./index-CVHRt3SS.mjs')],
48
- ["ui/ink/RemoteModeDisplay", () => import('./RemoteModeDisplay-D-HewyXg.mjs')],
49
- // External packages imported on demand
50
- ["expo-server-sdk", () => import('expo-server-sdk')],
51
- ["ink", () => import('ink')],
52
- ["react", () => import('react')]
53
- ];
54
-
55
- async function runSelfCheck(modules = LAZY_MODULES) {
56
- const failures = [];
57
- for (const [name, load] of modules) {
58
- try {
59
- await load();
60
- } catch (error) {
61
- failures.push({ name, error: error instanceof Error ? error.message : String(error) });
62
- }
63
- }
64
- return failures;
65
- }
66
- async function selfCheckMain(opts = {}) {
67
- const started = Date.now();
68
- const failures = await runSelfCheck();
69
- if (failures.length > 0) {
70
- for (const failure of failures) {
71
- console.error(`very-happy: failed to load ${failure.name}: ${failure.error}`);
72
- }
73
- return 1;
74
- }
75
- if (opts.verbose) console.log(`self-check: ${LAZY_MODULES.length} modules loaded in ${Date.now() - started}ms`);
76
- console.log(`very-happy version: ${packageJson.version}`);
77
- return 0;
78
- }
79
-
80
- var selfCheck = /*#__PURE__*/Object.freeze({
81
- __proto__: null,
82
- runSelfCheck: runSelfCheck,
83
- selfCheckMain: selfCheckMain
84
- });
85
-
86
- export { runSelfCheck, selfCheckMain };