very-happy-cli 0.2.178 → 0.2.179

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 (201) hide show
  1. package/dist/{AcpBackend-DCQXHRzT.mjs → AcpBackend-CHp3y7cb.mjs} +135 -16
  2. package/dist/{AcpBackend-CDkAQXYf.cjs → AcpBackend-DFipFF7-.cjs} +135 -16
  3. package/dist/{AcpSessionManager-DckmUZza.cjs → AcpSessionManager-0zpvRJXc.cjs} +38 -4
  4. package/dist/{AcpSessionManager-BXrQcqwC.mjs → AcpSessionManager-d2-rKWWa.mjs} +38 -4
  5. package/dist/{BasePermissionHandler-DyLmKKtO.cjs → BasePermissionHandler-CH3zuEkA.cjs} +5 -2
  6. package/dist/{BasePermissionHandler-BVlrEhIi.mjs → BasePermissionHandler-DdZBYIR4.mjs} +5 -2
  7. package/dist/acpSessionResume-DTGmAPLt.mjs +67 -0
  8. package/dist/acpSessionResume-oiCBnAVA.cjs +74 -0
  9. package/dist/{agentHome-CEp9RMyK.cjs → agentHome-BWcz8mz0.cjs} +4 -4
  10. package/dist/{agentHome-C1xi37as.mjs → agentHome-CghLvL_1.mjs} +4 -4
  11. package/dist/{api-JANhFdZV.cjs → api-Cmjfr8Z7.cjs} +28 -260
  12. package/dist/{api-Dib0dmqC.mjs → api-CzwFpJQc.mjs} +21 -253
  13. package/dist/{apiMachine-DNTJidYH.mjs → apiMachine-DJkTEiqy.mjs} +43 -15
  14. package/dist/{apiMachine-QhK-sKcr.cjs → apiMachine-G6OogT08.cjs} +43 -15
  15. package/dist/{attachmentContent-DkkdpSSJ.mjs → attachmentContent-B2os4HbA.mjs} +2 -2
  16. package/dist/{attachmentContent-bpQTBJ0y.cjs → attachmentContent-Bo0UAsSu.cjs} +4 -4
  17. package/dist/{auth-BRjd2esb.mjs → auth-BS6PaOOG.mjs} +5 -5
  18. package/dist/{auth-DgIV0Cvt.cjs → auth-D6bBUwZa.cjs} +5 -5
  19. package/dist/{auth-DNct7VUi.mjs → auth-DMX0xPNK.mjs} +8 -8
  20. package/dist/{auth-omWDtgR8.cjs → auth-HEhRaNgL.cjs} +8 -8
  21. package/dist/{auto-CI16FZmX.cjs → auto-C6I55iOh.cjs} +18 -17
  22. package/dist/{auto-DKGFOJBo.mjs → auto-Cl1SEDcD.mjs} +18 -17
  23. package/dist/{bootstrap-DCQ87Aan.cjs → bootstrap-exVucYav.cjs} +2 -2
  24. package/dist/{bootstrap-BUagGC_-.mjs → bootstrap-iuyufnp3.mjs} +2 -2
  25. package/dist/{browser-CSKhc0Bl.cjs → browser-BohJK12g.cjs} +1 -1
  26. package/dist/{browser-Dj_DYQEh.mjs → browser-CSYum7xH.mjs} +1 -1
  27. package/dist/{claudeLocal-CCCvAeMd.mjs → claudeLocal-Dq_R3Ax_.mjs} +6 -5
  28. package/dist/{claudeLocal-CdIVnOZp.cjs → claudeLocal-re4yjSTx.cjs} +6 -5
  29. package/dist/{claudeLocalLauncher-21-xh5gc.cjs → claudeLocalLauncher-B4hJHpCA.cjs} +11 -10
  30. package/dist/{claudeLocalLauncher-BmrpaRYJ.mjs → claudeLocalLauncher-CN67lN7-.mjs} +11 -10
  31. package/dist/{claudeSessionFork-DvxMKAmY.mjs → claudeSessionFork-BihfD0Ik.mjs} +1 -1
  32. package/dist/{claudeSessionFork-kYCP1IJB.cjs → claudeSessionFork-DiSMYerV.cjs} +1 -1
  33. package/dist/{client-Dnza1hgN.cjs → client-BKcK1Bi-.cjs} +3 -3
  34. package/dist/client-BhoEBnuN.mjs +71 -0
  35. package/dist/{client-C4zKGjiJ.cjs → client-CuVdN6PP.cjs} +2 -2
  36. package/dist/{client-BTX9hsbr.mjs → client-DuTDwWSQ.mjs} +3 -3
  37. package/dist/client-ZjOsn6nZ.cjs +76 -0
  38. package/dist/{client-CnlkkrZO.mjs → client-wo9nbxuf.mjs} +2 -2
  39. package/dist/codex/happyMcpStdioBridge.cjs +24 -15
  40. package/dist/codex/happyMcpStdioBridge.mjs +24 -15
  41. package/dist/{codexAppServerClient-DvkpQgyv.mjs → codexAppServerClient-BK3zra_1.mjs} +3 -3
  42. package/dist/{codexAppServerClient-CRlBWGn3.cjs → codexAppServerClient-Dt5zxrun.cjs} +3 -3
  43. package/dist/{codexCommand-BxjogBzU.mjs → codexCommand-B6pY7CMh.mjs} +65 -60
  44. package/dist/{codexCommand-DzxIWXIT.cjs → codexCommand-CAZ1SLjg.cjs} +88 -83
  45. package/dist/{codexTermination-ySDNMEhd.mjs → codexTermination-Cd1Eon_4.mjs} +1 -1
  46. package/dist/{codexTermination-C28FzlLb.cjs → codexTermination-DmGbHxcD.cjs} +1 -1
  47. package/dist/{config-DwfEpFr3.mjs → config-2oMG_fEI.mjs} +3 -3
  48. package/dist/{config-BFB5uJ4t.cjs → config-B0uK6K7n.cjs} +3 -3
  49. package/dist/{configuration-4TGMrjul.cjs → configuration-CMHZnp6G.cjs} +1 -1
  50. package/dist/{configuration-DVrb61aY.mjs → configuration-WMi4idBB.mjs} +1 -1
  51. package/dist/{connect-C7FPY0PI.mjs → connect-BLVHhHzA.mjs} +14 -14
  52. package/dist/{connect-QH2VJGBG.cjs → connect-uaglGrde.cjs} +14 -14
  53. package/dist/{context-JoKu0V54.cjs → context-DXzU5bFM.cjs} +1 -1
  54. package/dist/{context-B3XPVJlj.mjs → context-DploEcoN.mjs} +1 -1
  55. package/dist/{controlClient-BYKyGyxj.mjs → controlClient-BWUJrj3t.mjs} +3 -3
  56. package/dist/{controlClient-BTaZlbC6.cjs → controlClient-C-5qCt8W.cjs} +3 -3
  57. package/dist/{createSessionMetadata-8Fuj2-IV.mjs → createSessionMetadata-3uXrJgOW.mjs} +2 -2
  58. package/dist/{createSessionMetadata-B2NynaWZ.cjs → createSessionMetadata-BkIzHALd.cjs} +2 -2
  59. package/dist/{defaultPermissionMode-B8kJG9uI.mjs → defaultPermissionMode-BzxLh20a.mjs} +2 -2
  60. package/dist/{defaultPermissionMode-BEWCqJU-.cjs → defaultPermissionMode-pS3vmiSg.cjs} +2 -2
  61. package/dist/{deterministicJson-BjNQsAjO.cjs → deterministicJson-B8z2GPi9.cjs} +220 -14
  62. package/dist/{deterministicJson-C5ZwZ7hu.mjs → deterministicJson-D_whDMFd.mjs} +217 -12
  63. package/dist/{doctor-BshRnjLi.cjs → doctor-Br1Kcy2J.cjs} +7 -7
  64. package/dist/{doctor-0BiGwJXk.mjs → doctor-CmtSsR2-.mjs} +7 -7
  65. package/dist/{downloadTarget-BN5vZt3K.cjs → downloadTarget-BQJK_6oH.cjs} +6 -6
  66. package/dist/{downloadTarget-DJPwAZlu.mjs → downloadTarget-BoNwTIH_.mjs} +6 -6
  67. package/dist/{ensureDaemonRunning-C5QfToCe.cjs → ensureDaemonRunning-BRUmsq6J.cjs} +5 -5
  68. package/dist/{ensureDaemonRunning-CSmb_mqt.mjs → ensureDaemonRunning-Czo9IHJQ.mjs} +5 -5
  69. package/dist/{handleResumeCommand-CgjpsdDe.mjs → handleResumeCommand-C8thKjqf.mjs} +21 -5
  70. package/dist/{handleResumeCommand-BwnUZmbo.cjs → handleResumeCommand-tKD_Hpxc.cjs} +21 -5
  71. package/dist/{index-BYOZ_8WZ.cjs → index-B0UjHlAe.cjs} +4 -4
  72. package/dist/{index-BehVbAsA.mjs → index-BTxHphpV.mjs} +254 -49
  73. package/dist/index-BiyC7cZ3.mjs +18 -0
  74. package/dist/{index-_l1Sdmbi.cjs → index-C6O2vVjm.cjs} +154 -33
  75. package/dist/index-CUuc6iCn.cjs +24 -0
  76. package/dist/{index-Bvldtdny.mjs → index-CdQI0C9p.mjs} +4 -4
  77. package/dist/{index-BRClDe07.cjs → index-D09T1m8Y.cjs} +3 -3
  78. package/dist/{index-BYgfern_.mjs → index-D3bidoG8.mjs} +3 -3
  79. package/dist/{index-piJPsTsm.cjs → index-DMqDMT1Q.cjs} +256 -51
  80. package/dist/{index-Clqlu17M.mjs → index-DPOa4NhL.mjs} +153 -34
  81. package/dist/index.cjs +2 -2
  82. package/dist/index.mjs +2 -2
  83. package/dist/{install-BdvKiOQw.mjs → install-BX3lv3NO.mjs} +1 -1
  84. package/dist/{install-Cf6AFSWC.cjs → install-BXvf2E3o.cjs} +1 -1
  85. package/dist/{install-TO4taKW7.cjs → install-CYRZxS87.cjs} +3 -3
  86. package/dist/{install-fYWHrPcC.mjs → install-hnve_9vq.mjs} +3 -3
  87. package/dist/lib.cjs +13 -13
  88. package/dist/lib.d.cts +62 -1
  89. package/dist/lib.d.mts +62 -1
  90. package/dist/lib.mjs +13 -13
  91. package/dist/{lidState-DNMlIhX0.mjs → lidState-Bb8fgXg3.mjs} +1 -1
  92. package/dist/{lidState-BeOwj6eW.cjs → lidState-Dv2wwFTj.cjs} +1 -1
  93. package/dist/{localHappyAgentAuth-Br-mgogg.cjs → localHappyAgentAuth-DjYvkXvV.cjs} +1 -1
  94. package/dist/{localHappyAgentAuth-BezKSFDi.mjs → localHappyAgentAuth-NEU7fax7.mjs} +1 -1
  95. package/dist/{logger--vAVtXB_.mjs → logger-BtVhHnD8.mjs} +2 -2
  96. package/dist/{logger-DXTWlPzP.cjs → logger-C1GWx3gi.cjs} +2 -2
  97. package/dist/{machineMetadata-DcUupMje.cjs → machineMetadata-CLHS9sv_.cjs} +3 -3
  98. package/dist/{machineMetadata-B1H9gNbN.mjs → machineMetadata-D-g--oU_.mjs} +3 -3
  99. package/dist/{main-CshDb5-1.mjs → main-B2LWV8DI.mjs} +58 -45
  100. package/dist/{main-DoMFJ2Cl.cjs → main-CWhSsbtU.cjs} +58 -45
  101. package/dist/{mcp-pNc1EbQf.cjs → mcp-CARUsXHV.cjs} +14 -14
  102. package/dist/{mcp-DKT_lrvQ.mjs → mcp-ext92q3Y.mjs} +14 -14
  103. package/dist/{mirrorProtocol-6IFGPpjJ.mjs → mirrorProtocol-BwYibqry.mjs} +3 -3
  104. package/dist/{mirrorProtocol-qKflWTX_.cjs → mirrorProtocol-DEy2g1CB.cjs} +3 -3
  105. package/dist/{package-B7B03ejW.mjs → package-BPPebGQF.mjs} +7 -7
  106. package/dist/{package-DY4zTbKS.cjs → package-SgqTYsjn.cjs} +7 -7
  107. package/dist/panels-BZ0_Tt7B.mjs +137 -0
  108. package/dist/panels-D1c7q2dD.cjs +142 -0
  109. package/dist/{peerTools-3R9RUARX.mjs → peerTools-CWKzcQ7u.mjs} +60 -10
  110. package/dist/{peerTools-iy3_6Yc5.cjs → peerTools-DRQETXaz.cjs} +60 -9
  111. package/dist/{persistence-BfX72dne.cjs → persistence-BegE7NPa.cjs} +2 -2
  112. package/dist/{persistence-DTk4sNpd.mjs → persistence-Cr-wutZ4.mjs} +3 -3
  113. package/dist/{piRunnerArgs-CRQVR9o-.cjs → piRunnerArgs-Cs-378Vz.cjs} +8 -2
  114. package/dist/{piRunnerArgs-AT8QJY7x.mjs → piRunnerArgs-DwvM_yWA.mjs} +7 -1
  115. package/dist/{piRuntime-BHRT5MKO.cjs → piRuntime-BG-1td_n.cjs} +2 -2
  116. package/dist/{piRuntime-E44qTVQ4.mjs → piRuntime-Bue5mnlc.mjs} +2 -2
  117. package/dist/{piTerminal-De8nbciM.mjs → piTerminal-B5x9X5yV.mjs} +17 -17
  118. package/dist/{piTerminal-hI4WFdWm.cjs → piTerminal-G4z-xVyy.cjs} +17 -17
  119. package/dist/processTreeSnapshot-CuLJDNC-.mjs +101 -0
  120. package/dist/processTreeSnapshot-mDbnuojn.cjs +105 -0
  121. package/dist/prompt-BOouDaTM.mjs +99 -0
  122. package/dist/prompt-lgF9IE82.cjs +105 -0
  123. package/dist/{attachmentLimits-UyFn8fkQ.mjs → pushNotifications-BdFjDjQe.mjs} +303 -3
  124. package/dist/{attachmentLimits-SqeAHrVC.cjs → pushNotifications-DaLQUyi0.cjs} +304 -2
  125. package/dist/{index-DFPT4HOO.cjs → query-Ctfg-5gy.cjs} +25 -5
  126. package/dist/{index-CEjJnq05.mjs → query-DYP_W1wp.mjs} +26 -3
  127. package/dist/{rateLimitWindows-XrJiiBpU.mjs → rateLimitWindows-CuEqk_0g.mjs} +1 -1
  128. package/dist/{rateLimitWindows-Czb7_7cK.cjs → rateLimitWindows-Dj_8voBK.cjs} +1 -1
  129. package/dist/{registerCommonHandlers-CvIedVRf.mjs → registerCommonHandlers-BAlP7SGc.mjs} +2 -2
  130. package/dist/{registerCommonHandlers-C0_fyBQ0.cjs → registerCommonHandlers-Cj084Sg7.cjs} +2 -2
  131. package/dist/{registerKillSessionHandler-gwJ5lTf0.mjs → registerKillSessionHandler-PD0jWtQo.mjs} +6 -6
  132. package/dist/{registerKillSessionHandler-DYl7l4Ts.cjs → registerKillSessionHandler-qMju0ZfF.cjs} +6 -6
  133. package/dist/{remoteSessionClient-BRTIOX5b.cjs → remoteSessionClient-B7i7MkYV.cjs} +5 -5
  134. package/dist/{remoteSessionClient-DRb2Jr5s.mjs → remoteSessionClient-Bn2qu5C5.mjs} +5 -5
  135. package/dist/{reportProgressTool-B9nCzbkL.cjs → reportProgressTool-CM1JFAHg.cjs} +84 -2
  136. package/dist/{reportProgressTool-D5tEoXMW.mjs → reportProgressTool-gHItlSzz.mjs} +82 -3
  137. package/dist/{resources-JDPugcDq.cjs → resources-CvIlkzpP.cjs} +30 -0
  138. package/dist/{resources-BdFBQi8r.mjs → resources-y9jfyO-_.mjs} +30 -0
  139. package/dist/{run-BQ_FGaOL.mjs → run-BM4TxiyN.mjs} +177 -41
  140. package/dist/{run-CKe_WeLW.cjs → run-CNXwIe0A.cjs} +191 -55
  141. package/dist/{runClaude-MHI5IKM-.cjs → runClaude-CWhj2V4Q.cjs} +36 -40
  142. package/dist/{runClaude-zrrNcQC_.mjs → runClaude-C_3I8hvR.mjs} +36 -40
  143. package/dist/{runClaudeDeps-RRw-Nusc.cjs → runClaudeDeps-B81cOKnH.cjs} +294 -156
  144. package/dist/{runClaudeDeps-CVBCokOS.mjs → runClaudeDeps-QGrOeDe2.mjs} +294 -159
  145. package/dist/{runGemini-kipag2ag.mjs → runGemini-BEdWEZLR.mjs} +60 -54
  146. package/dist/{runGemini-D7Lg9yCr.cjs → runGemini-CgRLYbt5.cjs} +60 -54
  147. package/dist/{runOpenClaw-DCcQ0L2N.cjs → runOpenClaw-C1NVmzOL.cjs} +18 -18
  148. package/dist/{runOpenClaw-C_lRY3Do.mjs → runOpenClaw-DdQZAYj1.mjs} +18 -18
  149. package/dist/{sandbox-BSyXFVFp.mjs → sandbox-DjQUdCMG.mjs} +4 -4
  150. package/dist/{sandbox-dMwPTmjm.cjs → sandbox-nocIjliq.cjs} +4 -4
  151. package/dist/selfCheck-CjCF4C3v.mjs +85 -0
  152. package/dist/{selfCheck-DkzDDUsE.cjs → selfCheck-DCt4Uzbq.cjs} +36 -35
  153. package/dist/{send-C-k9nsd3.mjs → send-Ct7X4pPU.mjs} +8 -8
  154. package/dist/{send-dxC0miIA.cjs → send-Dydf_hwZ.cjs} +8 -8
  155. package/dist/{server-B-W6P7Qr.cjs → server-CosABFbd.cjs} +6 -6
  156. package/dist/{server-DxoTYNlw.mjs → server-DTQGZMxh.mjs} +4 -4
  157. package/dist/{sessionLock-DWX6BbiU.cjs → sessionLock-DokGab2R.cjs} +16 -3
  158. package/dist/{sessionLock-DBdtZGOL.mjs → sessionLock-WYIyaVO4.mjs} +16 -4
  159. package/dist/{sessionOps-BVoXe12O.mjs → sessionOps-BIGgRube.mjs} +10 -5
  160. package/dist/{sessionOps-BAnr7n8t.cjs → sessionOps-S-qPBLFf.cjs} +10 -5
  161. package/dist/{sessionScanner-CDOYsEUD.cjs → sessionScanner-CIMM2hvZ.cjs} +3 -3
  162. package/dist/{sessionScanner-BtxoeluY.mjs → sessionScanner-o5hnMi5e.mjs} +3 -3
  163. package/dist/{sessions-C3sZJkzI.mjs → sessions-BJHEZpi2.mjs} +39 -17
  164. package/dist/{sessions-hAitoN-m.cjs → sessions-JchI1w3z.cjs} +39 -16
  165. package/dist/{setupOfflineReconnection-C2EeYTFH.cjs → setupOfflineReconnection-CNiAt5ZP.cjs} +2 -2
  166. package/dist/{setupOfflineReconnection-_eD4cuUT.mjs → setupOfflineReconnection-DMiBO2y9.mjs} +2 -2
  167. package/dist/{spawn-Bc9v7pIf.cjs → spawn-6PD7nnoC.cjs} +48 -17
  168. package/dist/{spawn-qNrB2CD_.mjs → spawn-DgvUNYEo.mjs} +48 -17
  169. package/dist/{spawnAgents-BVEaz35W.cjs → spawnAgents-DsXgegHM.cjs} +37 -1
  170. package/dist/spawnAgents-P006Hqio.mjs +79 -0
  171. package/dist/{spawnHappyCLI-C2stUioM.mjs → spawnHappyCLI-CCOrEtf9.mjs} +1 -1
  172. package/dist/{spawnHappyCLI-fzUagkKV.cjs → spawnHappyCLI-Dywezwk6.cjs} +1 -1
  173. package/dist/{specialCommands-C6W-rVyh.mjs → specialCommands-DPcd9edP.mjs} +3 -3
  174. package/dist/{specialCommands-BJ-nqY4s.cjs → specialCommands-QxPpkGKf.cjs} +3 -3
  175. package/dist/{startFileWatcher-CR09Snmz.mjs → startFileWatcher-DghDOCO4.mjs} +1 -1
  176. package/dist/{startFileWatcher-Bqlqjt93.cjs → startFileWatcher-RECH5qY8.cjs} +1 -1
  177. package/dist/{streamRelay-CJoMk_d2.mjs → streamRelay-DMV_TXfS.mjs} +1 -1
  178. package/dist/{streamRelay-9kBPpbvU.cjs → streamRelay-DlUWKUpo.cjs} +1 -1
  179. package/dist/{sync-DbW07iQS.mjs → sync-CSe0Rf45.mjs} +1 -1
  180. package/dist/{sync-Dhmtk66S.cjs → sync-D23jbqVa.cjs} +1 -1
  181. package/dist/{systemPrompt-3PYi3EUY.cjs → systemPrompt-BOy4kU4P.cjs} +4 -3
  182. package/dist/{systemPrompt-CQcuUmVp.mjs → systemPrompt-CFNKnh65.mjs} +4 -3
  183. package/dist/{teams-CwF4Z2fA.mjs → teams-DyY669f0.mjs} +8 -8
  184. package/dist/{teams-DpxLcUU_.cjs → teams-Ov2BDT-A.cjs} +8 -8
  185. package/dist/{time-BuGWTVP6.mjs → time-65DcU6Jx.mjs} +1 -1
  186. package/dist/{time-A6zR3Iy6.cjs → time-CrwIMHta.cjs} +1 -1
  187. package/dist/{titleGenerator-D26gvNaS.cjs → titleGenerator-CS_rh2_J.cjs} +9 -8
  188. package/dist/{titleGenerator-BGEzNWC9.mjs → titleGenerator-CiAMxf7s.mjs} +9 -8
  189. package/dist/{todo-DrZc76H5.mjs → todo-BDONw0sK.mjs} +6 -6
  190. package/dist/{todo-73g3NCIO.cjs → todo-KY-okGii.cjs} +6 -6
  191. package/dist/{tools-BtsrQnNS.mjs → tools-D8-PnZEG.mjs} +1 -1
  192. package/dist/{tools-CxJp4T1T.cjs → tools-_w52DZG6.cjs} +1 -1
  193. package/dist/{uninstall-DWNYvewQ.cjs → uninstall-8vnLN-IE.cjs} +3 -3
  194. package/dist/{uninstall-DOb2mTwV.mjs → uninstall-_fjGRP9b.mjs} +3 -3
  195. package/dist/webPanels-B2_C2-3g.mjs +49 -0
  196. package/dist/webPanels-FCgFKvVe.cjs +53 -0
  197. package/package.json +7 -7
  198. package/dist/selfCheck-CF7XGJPb.mjs +0 -84
  199. package/dist/sessionModeFile-ByLbXTbg.mjs +0 -32
  200. package/dist/sessionModeFile-CLLdidiJ.cjs +0 -36
  201. package/dist/spawnAgents-Bw6j4tqz.mjs +0 -45
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var persistence = require('./persistence-BfX72dne.cjs');
5
- var auth = require('./auth-DgIV0Cvt.cjs');
6
- var configuration = require('./configuration-4TGMrjul.cjs');
4
+ var persistence = require('./persistence-BegE7NPa.cjs');
5
+ var auth = require('./auth-D6bBUwZa.cjs');
6
+ var configuration = require('./configuration-CMHZnp6G.cjs');
7
7
  var node_fs = require('node:fs');
8
8
  var node_readline = require('node:readline');
9
- var controlClient = require('./controlClient-BTaZlbC6.cjs');
10
- var logger = require('./logger-DXTWlPzP.cjs');
9
+ var controlClient = require('./controlClient-C-5qCt8W.cjs');
10
+ var logger = require('./logger-C1GWx3gi.cjs');
11
11
  var os = require('node:os');
12
12
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
13
13
  require('node:fs/promises');
@@ -15,11 +15,11 @@ require('zod');
15
15
  require('node:crypto');
16
16
  require('tweetnacl');
17
17
  require('axios');
18
- require('./time-A6zR3Iy6.cjs');
19
- require('./browser-CSKhc0Bl.cjs');
18
+ require('./time-CrwIMHta.cjs');
19
+ require('./browser-BohJK12g.cjs');
20
20
  require('open');
21
21
  require('node:path');
22
- require('./package-DY4zTbKS.cjs');
22
+ require('./package-SgqTYsjn.cjs');
23
23
  require('node:util');
24
24
 
25
25
  function localMachineIdentityStatus(machineId) {
@@ -4,44 +4,45 @@ var chalk = require('chalk');
4
4
  var os = require('node:os');
5
5
  var node_fs = require('node:fs');
6
6
  var path = require('node:path');
7
- var index = require('./index-_l1Sdmbi.cjs');
8
- var configuration = require('./configuration-4TGMrjul.cjs');
9
- var client = require('./client-C4zKGjiJ.cjs');
7
+ var index = require('./index-C6O2vVjm.cjs');
8
+ var configuration = require('./configuration-CMHZnp6G.cjs');
9
+ var client = require('./client-CuVdN6PP.cjs');
10
10
  var template = require('./template-BaHAmH2K.cjs');
11
- var install = require('./install-Cf6AFSWC.cjs');
11
+ var install = require('./install-BXvf2E3o.cjs');
12
12
  var precheckCompat = require('./precheckCompat-CWOi5c9L.cjs');
13
- var sessionOps = require('./sessionOps-BAnr7n8t.cjs');
14
- var spawn = require('./spawn-Bc9v7pIf.cjs');
15
- var spawnAgents = require('./spawnAgents-BVEaz35W.cjs');
16
- var time = require('./time-A6zR3Iy6.cjs');
13
+ var sessionOps = require('./sessionOps-S-qPBLFf.cjs');
14
+ var spawn = require('./spawn-6PD7nnoC.cjs');
15
+ var spawnAgents = require('./spawnAgents-DsXgegHM.cjs');
16
+ var time = require('./time-CrwIMHta.cjs');
17
17
  require('zod');
18
18
  require('@paralleldrive/cuid2');
19
- require('./package-DY4zTbKS.cjs');
19
+ require('./package-SgqTYsjn.cjs');
20
20
  require('node:fs/promises');
21
- require('./persistence-BfX72dne.cjs');
21
+ require('./persistence-BegE7NPa.cjs');
22
22
  require('./authRelay-Dy1qU9td.cjs');
23
23
  require('node:crypto');
24
24
  require('tweetnacl');
25
- require('./logger-DXTWlPzP.cjs');
25
+ require('./logger-C1GWx3gi.cjs');
26
26
  require('node:util');
27
- require('./resources-JDPugcDq.cjs');
27
+ require('./resources-CvIlkzpP.cjs');
28
28
  require('axios');
29
- require('./controlClient-BTaZlbC6.cjs');
29
+ require('./controlClient-C-5qCt8W.cjs');
30
30
  require('socket.io-client');
31
31
  require('./backgroundTaskActivity-CBvUdj39.cjs');
32
+ require('./client-ZjOsn6nZ.cjs');
32
33
  require('./path-B7zW-WwE.cjs');
33
- require('./claudeSessionFork-kYCP1IJB.cjs');
34
+ require('./claudeSessionFork-DiSMYerV.cjs');
34
35
  require('node:readline');
35
- require('./codexAppServerClient-CRlBWGn3.cjs');
36
+ require('./codexAppServerClient-Dt5zxrun.cjs');
36
37
  require('node:child_process');
37
38
  require('cross-spawn');
38
39
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
39
40
  require('./manager-HrEj442o.cjs');
40
41
  require('@anthropic-ai/sandbox-runtime');
41
- require('./rateLimitWindows-Czb7_7cK.cjs');
42
+ require('./rateLimitWindows-Dj_8voBK.cjs');
42
43
  require('./processTree-CMHWlVse.cjs');
43
44
  require('./codexThreadFork-DNekT4nQ.cjs');
44
- require('./createSessionMetadata-B2NynaWZ.cjs');
45
+ require('./createSessionMetadata-BkIzHALd.cjs');
45
46
  require('./projectPath-ChLhdOyt.cjs');
46
47
  require('path');
47
48
  require('url');
@@ -2,44 +2,45 @@ import chalk from 'chalk';
2
2
  import { homedir } from 'node:os';
3
3
  import { readFileSync } from 'node:fs';
4
4
  import { resolve } from 'node:path';
5
- import { A as AUTOMATION_NAME_PATTERN, i as isAutomationRunTerminal, a as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, b as AutomationPrecheckSchema } from './index-Clqlu17M.mjs';
6
- import { c as configuration } from './configuration-DVrb61aY.mjs';
7
- import { a as authenticatedAutomationsClient, b as automationRunIdFromEnv, i as isAutomationsUnavailable, A as AUTOMATIONS_UNAVAILABLE_MESSAGE } from './client-CnlkkrZO.mjs';
5
+ import { A as AUTOMATION_NAME_PATTERN, i as isAutomationRunTerminal, b as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, c as AutomationPrecheckSchema } from './index-DPOa4NhL.mjs';
6
+ import { c as configuration } from './configuration-WMi4idBB.mjs';
7
+ import { a as authenticatedAutomationsClient, b as automationRunIdFromEnv, i as isAutomationsUnavailable, A as AUTOMATIONS_UNAVAILABLE_MESSAGE } from './client-wo9nbxuf.mjs';
8
8
  import { p as parseDuration, t as triggerFromFlags, d as describeTrigger, a as describeAction } from './template-CiOPa2rd.mjs';
9
- import { A as AUTOMATION_SKILL, i as installAutomationSkill } from './install-BdvKiOQw.mjs';
9
+ import { A as AUTOMATION_SKILL, i as installAutomationSkill } from './install-BX3lv3NO.mjs';
10
10
  import { u as updateAutomationChecked, c as createAutomationChecked } from './precheckCompat-DeEbilbr.mjs';
11
- import { s as sessionWebUrl } from './sessionOps-BVoXe12O.mjs';
12
- import { parseEnvAssignment } from './spawn-qNrB2CD_.mjs';
13
- import { S as SPAWN_AGENTS, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES } from './spawnAgents-Bw6j4tqz.mjs';
14
- import { d as delay } from './time-BuGWTVP6.mjs';
11
+ import { s as sessionWebUrl } from './sessionOps-BIGgRube.mjs';
12
+ import { parseEnvAssignment } from './spawn-DgvUNYEo.mjs';
13
+ import { S as SPAWN_AGENTS, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES } from './spawnAgents-P006Hqio.mjs';
14
+ import { d as delay } from './time-65DcU6Jx.mjs';
15
15
  import 'zod';
16
16
  import '@paralleldrive/cuid2';
17
- import './package-B7B03ejW.mjs';
17
+ import './package-BPPebGQF.mjs';
18
18
  import 'node:fs/promises';
19
- import './persistence-DTk4sNpd.mjs';
19
+ import './persistence-Cr-wutZ4.mjs';
20
20
  import './authRelay-DhQhkBvX.mjs';
21
21
  import 'node:crypto';
22
22
  import 'tweetnacl';
23
- import './logger--vAVtXB_.mjs';
23
+ import './logger-BtVhHnD8.mjs';
24
24
  import 'node:util';
25
- import './resources-BdFBQi8r.mjs';
25
+ import './resources-y9jfyO-_.mjs';
26
26
  import 'axios';
27
- import './controlClient-BYKyGyxj.mjs';
27
+ import './controlClient-BWUJrj3t.mjs';
28
28
  import 'socket.io-client';
29
29
  import './backgroundTaskActivity-BVwJBl02.mjs';
30
+ import './client-BhoEBnuN.mjs';
30
31
  import './path-D2wdaNSk.mjs';
31
- import './claudeSessionFork-DvxMKAmY.mjs';
32
+ import './claudeSessionFork-BihfD0Ik.mjs';
32
33
  import 'node:readline';
33
- import './codexAppServerClient-DvkpQgyv.mjs';
34
+ import './codexAppServerClient-BK3zra_1.mjs';
34
35
  import 'node:child_process';
35
36
  import 'cross-spawn';
36
37
  import './contentLogMetadata-BlWI0egu.mjs';
37
38
  import './manager-BEsI4qt3.mjs';
38
39
  import '@anthropic-ai/sandbox-runtime';
39
- import './rateLimitWindows-XrJiiBpU.mjs';
40
+ import './rateLimitWindows-CuEqk_0g.mjs';
40
41
  import './processTree-CP5IvQ2Z.mjs';
41
42
  import './codexThreadFork-R76RU5H0.mjs';
42
- import './createSessionMetadata-8Fuj2-IV.mjs';
43
+ import './createSessionMetadata-3uXrJgOW.mjs';
43
44
  import './projectPath-BTBIMB57.mjs';
44
45
  import 'path';
45
46
  import 'url';
@@ -3,9 +3,9 @@
3
3
  var node_fs = require('node:fs');
4
4
  var promises = require('node:fs/promises');
5
5
  var path = require('node:path');
6
- var configuration = require('./configuration-4TGMrjul.cjs');
6
+ var configuration = require('./configuration-CMHZnp6G.cjs');
7
7
  require('node:os');
8
- require('./package-DY4zTbKS.cjs');
8
+ require('./package-SgqTYsjn.cjs');
9
9
 
10
10
  const ASSISTANT_CLAUDE_MD = `# very-happy \u8C03\u5EA6\u4E2D\u5FC3\uFF08\u8BED\u97F3\u52A9\u624B\uFF09
11
11
 
@@ -1,9 +1,9 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { mkdir, writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
- import { c as configuration } from './configuration-DVrb61aY.mjs';
4
+ import { c as configuration } from './configuration-WMi4idBB.mjs';
5
5
  import 'node:os';
6
- import './package-B7B03ejW.mjs';
6
+ import './package-BPPebGQF.mjs';
7
7
 
8
8
  const ASSISTANT_CLAUDE_MD = `# very-happy \u8C03\u5EA6\u4E2D\u5FC3\uFF08\u8BED\u97F3\u52A9\u624B\uFF09
9
9
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var open = require('open');
4
- var logger = require('./logger-DXTWlPzP.cjs');
4
+ var logger = require('./logger-C1GWx3gi.cjs');
5
5
 
6
6
  async function openBrowser(url) {
7
7
  try {
@@ -1,5 +1,5 @@
1
1
  import open from 'open';
2
- import { l as logger } from './logger--vAVtXB_.mjs';
2
+ import { l as logger } from './logger-BtVhHnD8.mjs';
3
3
 
4
4
  async function openBrowser(url) {
5
5
  try {
@@ -2,25 +2,26 @@ import { spawn } from 'cross-spawn';
2
2
  import { createInterface } from 'node:readline';
3
3
  import { readdirSync, statSync, mkdirSync, existsSync } from 'node:fs';
4
4
  import { randomUUID } from 'node:crypto';
5
- import { l as logger } from './logger--vAVtXB_.mjs';
5
+ import { l as logger } from './logger-BtVhHnD8.mjs';
6
6
  import { p as pinSmallFastModel, e as ensureLocalProxyBypass } from './smallFastModel-BLNgMrwR.mjs';
7
7
  import { join } from 'node:path';
8
8
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
9
- import { c as claudeCheckSession, s as systemPrompt } from './systemPrompt-CQcuUmVp.mjs';
9
+ import { c as claudeCheckSession, s as systemPrompt } from './systemPrompt-CFNKnh65.mjs';
10
10
  import { i as initializeSandbox, a as wrapCommand } from './manager-BEsI4qt3.mjs';
11
11
  import { c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
12
12
  import { claudeCliPath } from './claudeCliPath-BqkaH2oR.mjs';
13
13
  import 'chalk';
14
14
  import 'node:util';
15
- import './configuration-DVrb61aY.mjs';
15
+ import './configuration-WMi4idBB.mjs';
16
16
  import 'node:os';
17
- import './package-B7B03ejW.mjs';
17
+ import './package-BPPebGQF.mjs';
18
18
  import 'node:fs/promises';
19
- import './index-Clqlu17M.mjs';
19
+ import './index-DPOa4NhL.mjs';
20
20
  import 'zod';
21
21
  import '@paralleldrive/cuid2';
22
22
  import './trimIdent-BAjmv_TG.mjs';
23
23
  import './agentGuidance-BDYt2Qy2.mjs';
24
+ import './prompt-BOouDaTM.mjs';
24
25
  import '@anthropic-ai/sandbox-runtime';
25
26
  import './projectPath-BTBIMB57.mjs';
26
27
  import 'path';
@@ -4,25 +4,26 @@ var spawn = require('cross-spawn');
4
4
  var node_readline = require('node:readline');
5
5
  var node_fs = require('node:fs');
6
6
  var node_crypto = require('node:crypto');
7
- var logger = require('./logger-DXTWlPzP.cjs');
7
+ var logger = require('./logger-C1GWx3gi.cjs');
8
8
  var smallFastModel = require('./smallFastModel-D_uxGMo3.cjs');
9
9
  var path$1 = require('node:path');
10
10
  var path = require('./path-B7zW-WwE.cjs');
11
- var systemPrompt = require('./systemPrompt-3PYi3EUY.cjs');
11
+ var systemPrompt = require('./systemPrompt-BOy4kU4P.cjs');
12
12
  var manager = require('./manager-HrEj442o.cjs');
13
13
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
14
14
  var claudeCliPath = require('./claudeCliPath-U4HHmV4r.cjs');
15
15
  require('chalk');
16
16
  require('node:util');
17
- require('./configuration-4TGMrjul.cjs');
17
+ require('./configuration-CMHZnp6G.cjs');
18
18
  require('node:os');
19
- require('./package-DY4zTbKS.cjs');
19
+ require('./package-SgqTYsjn.cjs');
20
20
  require('node:fs/promises');
21
- require('./index-_l1Sdmbi.cjs');
21
+ require('./index-C6O2vVjm.cjs');
22
22
  require('zod');
23
23
  require('@paralleldrive/cuid2');
24
24
  require('./trimIdent-4gvk9Wk6.cjs');
25
25
  require('./agentGuidance-BtBx2xxE.cjs');
26
+ require('./prompt-lgF9IE82.cjs');
26
27
  require('@anthropic-ai/sandbox-runtime');
27
28
  require('./projectPath-ChLhdOyt.cjs');
28
29
  require('path');
@@ -1,27 +1,28 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-DXTWlPzP.cjs');
4
- var claudeLocal = require('./claudeLocal-CdIVnOZp.cjs');
5
- var sessionScanner = require('./sessionScanner-CDOYsEUD.cjs');
3
+ var logger = require('./logger-C1GWx3gi.cjs');
4
+ var claudeLocal = require('./claudeLocal-re4yjSTx.cjs');
5
+ var sessionScanner = require('./sessionScanner-CIMM2hvZ.cjs');
6
6
  require('chalk');
7
7
  require('node:util');
8
- require('./configuration-4TGMrjul.cjs');
8
+ require('./configuration-CMHZnp6G.cjs');
9
9
  require('node:fs');
10
10
  require('node:os');
11
11
  require('node:path');
12
- require('./package-DY4zTbKS.cjs');
12
+ require('./package-SgqTYsjn.cjs');
13
13
  require('node:fs/promises');
14
14
  require('cross-spawn');
15
15
  require('node:readline');
16
16
  require('node:crypto');
17
17
  require('./smallFastModel-D_uxGMo3.cjs');
18
18
  require('./path-B7zW-WwE.cjs');
19
- require('./systemPrompt-3PYi3EUY.cjs');
20
- require('./index-_l1Sdmbi.cjs');
19
+ require('./systemPrompt-BOy4kU4P.cjs');
20
+ require('./index-C6O2vVjm.cjs');
21
21
  require('zod');
22
22
  require('@paralleldrive/cuid2');
23
23
  require('./trimIdent-4gvk9Wk6.cjs');
24
24
  require('./agentGuidance-BtBx2xxE.cjs');
25
+ require('./prompt-lgF9IE82.cjs');
25
26
  require('./manager-HrEj442o.cjs');
26
27
  require('@anthropic-ai/sandbox-runtime');
27
28
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
@@ -29,11 +30,11 @@ require('./claudeCliPath-U4HHmV4r.cjs');
29
30
  require('./projectPath-ChLhdOyt.cjs');
30
31
  require('path');
31
32
  require('url');
32
- require('./sync-Dhmtk66S.cjs');
33
- require('./time-A6zR3Iy6.cjs');
33
+ require('./sync-D23jbqVa.cjs');
34
+ require('./time-CrwIMHta.cjs');
34
35
  require('./types-CRS-srZK.cjs');
35
36
  require('./transcriptCursor-DcXGLeSc.cjs');
36
- require('./startFileWatcher-Bqlqjt93.cjs');
37
+ require('./startFileWatcher-RECH5qY8.cjs');
37
38
  require('fs/promises');
38
39
 
39
40
  async function claudeLocalLauncher(session) {
@@ -1,25 +1,26 @@
1
- import { l as logger } from './logger--vAVtXB_.mjs';
2
- import { claudeLocal, ExitCodeError } from './claudeLocal-CCCvAeMd.mjs';
3
- import { c as createSessionScanner, F as Future, d as describeClaudeProcessExit } from './sessionScanner-BtxoeluY.mjs';
1
+ import { l as logger } from './logger-BtVhHnD8.mjs';
2
+ import { claudeLocal, ExitCodeError } from './claudeLocal-Dq_R3Ax_.mjs';
3
+ import { c as createSessionScanner, F as Future, d as describeClaudeProcessExit } from './sessionScanner-o5hnMi5e.mjs';
4
4
  import 'chalk';
5
5
  import 'node:util';
6
- import './configuration-DVrb61aY.mjs';
6
+ import './configuration-WMi4idBB.mjs';
7
7
  import 'node:fs';
8
8
  import 'node:os';
9
9
  import 'node:path';
10
- import './package-B7B03ejW.mjs';
10
+ import './package-BPPebGQF.mjs';
11
11
  import 'node:fs/promises';
12
12
  import 'cross-spawn';
13
13
  import 'node:readline';
14
14
  import 'node:crypto';
15
15
  import './smallFastModel-BLNgMrwR.mjs';
16
16
  import './path-D2wdaNSk.mjs';
17
- import './systemPrompt-CQcuUmVp.mjs';
18
- import './index-Clqlu17M.mjs';
17
+ import './systemPrompt-CFNKnh65.mjs';
18
+ import './index-DPOa4NhL.mjs';
19
19
  import 'zod';
20
20
  import '@paralleldrive/cuid2';
21
21
  import './trimIdent-BAjmv_TG.mjs';
22
22
  import './agentGuidance-BDYt2Qy2.mjs';
23
+ import './prompt-BOouDaTM.mjs';
23
24
  import './manager-BEsI4qt3.mjs';
24
25
  import '@anthropic-ai/sandbox-runtime';
25
26
  import './contentLogMetadata-BlWI0egu.mjs';
@@ -27,11 +28,11 @@ import './claudeCliPath-BqkaH2oR.mjs';
27
28
  import './projectPath-BTBIMB57.mjs';
28
29
  import 'path';
29
30
  import 'url';
30
- import './sync-DbW07iQS.mjs';
31
- import './time-BuGWTVP6.mjs';
31
+ import './sync-CSe0Rf45.mjs';
32
+ import './time-65DcU6Jx.mjs';
32
33
  import './types-CkqAACXx.mjs';
33
34
  import './transcriptCursor-B7T_gkQ0.mjs';
34
- import './startFileWatcher-CR09Snmz.mjs';
35
+ import './startFileWatcher-DghDOCO4.mjs';
35
36
  import 'fs/promises';
36
37
 
37
38
  async function claudeLocalLauncher(session) {
@@ -3,7 +3,7 @@ import { copyFile, unlink, readFile, rename, writeFile } from 'node:fs/promises'
3
3
  import { createReadStream, createWriteStream } from 'node:fs';
4
4
  import { join } from 'node:path';
5
5
  import { createInterface } from 'node:readline';
6
- import { l as logger } from './logger--vAVtXB_.mjs';
6
+ import { l as logger } from './logger-BtVhHnD8.mjs';
7
7
 
8
8
  class ForkTruncateUuidNotFoundError extends Error {
9
9
  constructor(cutAfterUuid, sourcePath) {
@@ -5,7 +5,7 @@ var promises = require('node:fs/promises');
5
5
  var node_fs = require('node:fs');
6
6
  var path = require('node:path');
7
7
  var node_readline = require('node:readline');
8
- var logger = require('./logger-DXTWlPzP.cjs');
8
+ var logger = require('./logger-C1GWx3gi.cjs');
9
9
 
10
10
  class ForkTruncateUuidNotFoundError extends Error {
11
11
  constructor(cutAfterUuid, sourcePath) {
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
- var configuration = require('./configuration-4TGMrjul.cjs');
5
- var persistence = require('./persistence-BfX72dne.cjs');
6
- var context = require('./context-JoKu0V54.cjs');
4
+ var configuration = require('./configuration-CMHZnp6G.cjs');
5
+ var persistence = require('./persistence-BegE7NPa.cjs');
6
+ var context = require('./context-DXzU5bFM.cjs');
7
7
 
8
8
  async function teamRequest(path, method, token, scoped, body) {
9
9
  const response = await fetch(`${configuration.configuration.serverUrl}${path}`, {
@@ -0,0 +1,71 @@
1
+ import { c as configuration } from './configuration-WMi4idBB.mjs';
2
+ import { b as readCredentialsForConfiguredRelay } from './persistence-Cr-wutZ4.mjs';
3
+
4
+ const UNSUPPORTED_BACKOFF_MS = 10 * 6e4;
5
+ class ProjectsUnsupportedError extends Error {
6
+ constructor() {
7
+ super("This Very Happy server does not support projects");
8
+ }
9
+ }
10
+ class ProjectRequestError extends Error {
11
+ constructor(status, code, details) {
12
+ super(code ? `Project request failed: ${code}` : `Project request failed (HTTP ${status})`);
13
+ this.status = status;
14
+ this.code = code;
15
+ this.details = details;
16
+ }
17
+ }
18
+ function createProjectsClient(deps = {}) {
19
+ const now = deps.now ?? Date.now;
20
+ const doFetch = deps.fetch ?? fetch;
21
+ const token = deps.token ?? (async () => (await readCredentialsForConfiguredRelay())?.token ?? null);
22
+ let disabledUntil = 0;
23
+ async function request(path, method, body, timeoutMs = 1e4) {
24
+ if (now() < disabledUntil) throw new ProjectsUnsupportedError();
25
+ const bearer = await token();
26
+ if (!bearer) throw new ProjectRequestError(401, "not_signed_in", {});
27
+ const response = await doFetch(`${deps.serverUrl ?? configuration.serverUrl}${path}`, {
28
+ method,
29
+ redirect: "error",
30
+ headers: { authorization: `Bearer ${bearer}`, ...body === void 0 ? {} : { "content-type": "application/json" } },
31
+ body: body === void 0 ? void 0 : JSON.stringify(body),
32
+ signal: AbortSignal.timeout(timeoutMs)
33
+ });
34
+ let json = null;
35
+ try {
36
+ json = await response.json();
37
+ } catch {
38
+ }
39
+ if (response.status === 404 && !isProjectErrorCode(json?.error)) {
40
+ disabledUntil = now() + UNSUPPORTED_BACKOFF_MS;
41
+ throw new ProjectsUnsupportedError();
42
+ }
43
+ if (!response.ok) {
44
+ const { error, ...details } = json && typeof json === "object" ? json : {};
45
+ throw new ProjectRequestError(response.status, typeof error === "string" ? error : null, details);
46
+ }
47
+ return json;
48
+ }
49
+ const sid = (id) => encodeURIComponent(id);
50
+ return {
51
+ isDisabled: () => now() < disabledUntil,
52
+ context: (sessionId, opts = {}, timeoutMs) => request(`/v1/projects/session/${sid(sessionId)}/context?full=${opts.full ? 1 : 0}&peek=${opts.peek ? 1 : 0}`, "GET", void 0, timeoutMs),
53
+ digest: (sessionId, since, timeoutMs) => request(`/v1/projects/session/${sid(sessionId)}/digest?since=${Math.max(0, Math.floor(since))}`, "GET", void 0, timeoutMs),
54
+ membership: (sessionId) => request(`/v1/projects/session/${sid(sessionId)}`, "GET"),
55
+ note: (projectId, input) => request(`/v1/projects/${sid(projectId)}/log`, "POST", input),
56
+ revoke: (projectId, ref, bySessionId) => request(`/v1/projects/${sid(projectId)}/log/${sid(ref)}/revoke`, "POST", { bySessionId }),
57
+ presence: (machineId, sessions, gone) => request("/v1/projects/presence", "PUT", { machineId, sessions, ...gone?.length ? { gone } : {} }),
58
+ addMembers: (projectId, sessionIds, via) => request(`/v1/projects/${sid(projectId)}/members`, "POST", { sessionIds, ...via ? { via } : {} }),
59
+ message: (projectId, input) => request(`/v1/projects/${sid(projectId)}/messages`, "POST", input),
60
+ delivered: (sessionId, messageIds) => request("/v1/projects/messages/delivered", "POST", { sessionId, messageIds })
61
+ };
62
+ }
63
+ function isProjectErrorCode(code) {
64
+ return code === "project_not_found" || code === "session_not_found" || code === "log_entry_not_found" || code === "team_not_found";
65
+ }
66
+ let shared = null;
67
+ function sharedProjectsClient() {
68
+ return shared ??= createProjectsClient();
69
+ }
70
+
71
+ export { ProjectsUnsupportedError as P, ProjectRequestError as a, createProjectsClient as c, sharedProjectsClient as s };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var configuration = require('./configuration-4TGMrjul.cjs');
4
- var persistence = require('./persistence-BfX72dne.cjs');
3
+ var configuration = require('./configuration-CMHZnp6G.cjs');
4
+ var persistence = require('./persistence-BegE7NPa.cjs');
5
5
 
6
6
  class AutomationsRequestError extends Error {
7
7
  constructor(status, code, runStatus) {
@@ -1,7 +1,7 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { c as configuration } from './configuration-DVrb61aY.mjs';
3
- import { r as readSettings, b as readPersistedSessions, c as readCredentialsForConfiguredRelay } from './persistence-DTk4sNpd.mjs';
4
- import { r as readTeamScope, t as teamScopePath, w as writeTeamScope } from './context-B3XPVJlj.mjs';
2
+ import { c as configuration } from './configuration-WMi4idBB.mjs';
3
+ import { r as readSettings, c as readPersistedSessions, b as readCredentialsForConfiguredRelay } from './persistence-Cr-wutZ4.mjs';
4
+ import { r as readTeamScope, t as teamScopePath, w as writeTeamScope } from './context-DploEcoN.mjs';
5
5
 
6
6
  async function teamRequest(path, method, token, scoped, body) {
7
7
  const response = await fetch(`${configuration.serverUrl}${path}`, {
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var configuration = require('./configuration-CMHZnp6G.cjs');
4
+ var persistence = require('./persistence-BegE7NPa.cjs');
5
+
6
+ const UNSUPPORTED_BACKOFF_MS = 10 * 6e4;
7
+ class ProjectsUnsupportedError extends Error {
8
+ constructor() {
9
+ super("This Very Happy server does not support projects");
10
+ }
11
+ }
12
+ class ProjectRequestError extends Error {
13
+ constructor(status, code, details) {
14
+ super(code ? `Project request failed: ${code}` : `Project request failed (HTTP ${status})`);
15
+ this.status = status;
16
+ this.code = code;
17
+ this.details = details;
18
+ }
19
+ }
20
+ function createProjectsClient(deps = {}) {
21
+ const now = deps.now ?? Date.now;
22
+ const doFetch = deps.fetch ?? fetch;
23
+ const token = deps.token ?? (async () => (await persistence.readCredentialsForConfiguredRelay())?.token ?? null);
24
+ let disabledUntil = 0;
25
+ async function request(path, method, body, timeoutMs = 1e4) {
26
+ if (now() < disabledUntil) throw new ProjectsUnsupportedError();
27
+ const bearer = await token();
28
+ if (!bearer) throw new ProjectRequestError(401, "not_signed_in", {});
29
+ const response = await doFetch(`${deps.serverUrl ?? configuration.configuration.serverUrl}${path}`, {
30
+ method,
31
+ redirect: "error",
32
+ headers: { authorization: `Bearer ${bearer}`, ...body === void 0 ? {} : { "content-type": "application/json" } },
33
+ body: body === void 0 ? void 0 : JSON.stringify(body),
34
+ signal: AbortSignal.timeout(timeoutMs)
35
+ });
36
+ let json = null;
37
+ try {
38
+ json = await response.json();
39
+ } catch {
40
+ }
41
+ if (response.status === 404 && !isProjectErrorCode(json?.error)) {
42
+ disabledUntil = now() + UNSUPPORTED_BACKOFF_MS;
43
+ throw new ProjectsUnsupportedError();
44
+ }
45
+ if (!response.ok) {
46
+ const { error, ...details } = json && typeof json === "object" ? json : {};
47
+ throw new ProjectRequestError(response.status, typeof error === "string" ? error : null, details);
48
+ }
49
+ return json;
50
+ }
51
+ const sid = (id) => encodeURIComponent(id);
52
+ return {
53
+ isDisabled: () => now() < disabledUntil,
54
+ context: (sessionId, opts = {}, timeoutMs) => request(`/v1/projects/session/${sid(sessionId)}/context?full=${opts.full ? 1 : 0}&peek=${opts.peek ? 1 : 0}`, "GET", void 0, timeoutMs),
55
+ digest: (sessionId, since, timeoutMs) => request(`/v1/projects/session/${sid(sessionId)}/digest?since=${Math.max(0, Math.floor(since))}`, "GET", void 0, timeoutMs),
56
+ membership: (sessionId) => request(`/v1/projects/session/${sid(sessionId)}`, "GET"),
57
+ note: (projectId, input) => request(`/v1/projects/${sid(projectId)}/log`, "POST", input),
58
+ revoke: (projectId, ref, bySessionId) => request(`/v1/projects/${sid(projectId)}/log/${sid(ref)}/revoke`, "POST", { bySessionId }),
59
+ presence: (machineId, sessions, gone) => request("/v1/projects/presence", "PUT", { machineId, sessions, ...gone?.length ? { gone } : {} }),
60
+ addMembers: (projectId, sessionIds, via) => request(`/v1/projects/${sid(projectId)}/members`, "POST", { sessionIds, ...via ? { via } : {} }),
61
+ message: (projectId, input) => request(`/v1/projects/${sid(projectId)}/messages`, "POST", input),
62
+ delivered: (sessionId, messageIds) => request("/v1/projects/messages/delivered", "POST", { sessionId, messageIds })
63
+ };
64
+ }
65
+ function isProjectErrorCode(code) {
66
+ return code === "project_not_found" || code === "session_not_found" || code === "log_entry_not_found" || code === "team_not_found";
67
+ }
68
+ let shared = null;
69
+ function sharedProjectsClient() {
70
+ return shared ??= createProjectsClient();
71
+ }
72
+
73
+ exports.ProjectRequestError = ProjectRequestError;
74
+ exports.ProjectsUnsupportedError = ProjectsUnsupportedError;
75
+ exports.createProjectsClient = createProjectsClient;
76
+ exports.sharedProjectsClient = sharedProjectsClient;
@@ -1,5 +1,5 @@
1
- import { c as configuration } from './configuration-DVrb61aY.mjs';
2
- import { c as readCredentialsForConfiguredRelay, r as readSettings } from './persistence-DTk4sNpd.mjs';
1
+ import { c as configuration } from './configuration-WMi4idBB.mjs';
2
+ import { b as readCredentialsForConfiguredRelay, r as readSettings } from './persistence-Cr-wutZ4.mjs';
3
3
 
4
4
  class AutomationsRequestError extends Error {
5
5
  constructor(status, code, runStatus) {