very-happy-cli 0.2.191 → 0.2.193

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 (214) hide show
  1. package/dist/{AcpBackend-CCy_9AfR.mjs → AcpBackend-B4PwjqHt.mjs} +3 -3
  2. package/dist/{AcpBackend-DgrIc1vH.cjs → AcpBackend-DtJCgftG.cjs} +3 -3
  3. package/dist/{AcpSessionManager-CQnxx7gD.mjs → AcpSessionManager-BzKWgkdP.mjs} +2 -2
  4. package/dist/{AcpSessionManager-DVOzCD3P.cjs → AcpSessionManager-D4qshX_H.cjs} +2 -2
  5. package/dist/{BasePermissionHandler-C9Ag7yvs.cjs → BasePermissionHandler-5iG-cvA2.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-DYLN6Ec9.mjs → BasePermissionHandler-DV6UM6e9.mjs} +1 -1
  7. package/dist/account-Dco_nGT4.mjs +297 -0
  8. package/dist/account-DvpA60oU.cjs +302 -0
  9. package/dist/accountService-Cd7bnkfd.mjs +916 -0
  10. package/dist/accountService-CuUSJDhP.cjs +921 -0
  11. package/dist/{acpSessionResume-TvP_4Zq2.cjs → acpSessionResume-Bk9mjXZ9.cjs} +1 -1
  12. package/dist/{acpSessionResume-Bi7pA1n_.mjs → acpSessionResume-TQwN9ZZE.mjs} +1 -1
  13. package/dist/{agentHome-DGv105SR.mjs → agentHome-Bep8semY.mjs} +4 -4
  14. package/dist/{agentHome-DNUKJWOY.cjs → agentHome-c2dlgcw1.cjs} +4 -4
  15. package/dist/{api-BBxZ7y2z.cjs → api-CBE_a88I.cjs} +10 -10
  16. package/dist/{api-jfeMRg5R.mjs → api-DUfunY3x.mjs} +10 -10
  17. package/dist/{apiMachine-DqyjKBZG.cjs → apiMachine-BqtG0IWm.cjs} +83 -27
  18. package/dist/{apiMachine-DRJ7y-BB.mjs → apiMachine-CU_bw5nV.mjs} +78 -22
  19. package/dist/{attachmentContent-BO2njyza.cjs → attachmentContent-B3AzuYqk.cjs} +2 -2
  20. package/dist/{attachmentContent-Dm_RIs5L.mjs → attachmentContent-KNIZxwlu.mjs} +2 -2
  21. package/dist/{auth-BYDtjVNb.mjs → auth-CZ7pKS-j.mjs} +8 -8
  22. package/dist/{auth-DnxoVkkf.cjs → auth-DCjxpI6Z.cjs} +5 -5
  23. package/dist/{auth-DLR3ksCF.cjs → auth-SJ_dPw7H.cjs} +8 -8
  24. package/dist/{auth-DC6rg8lJ.mjs → auth-jN5dNqTO.mjs} +5 -5
  25. package/dist/{auto-CwO0u8hB.cjs → auto-B_59RYH1.cjs} +23 -21
  26. package/dist/{auto-D5Jhukq1.mjs → auto-DC0Sq-qB.mjs} +23 -21
  27. package/dist/{bootstrap-rLaL3kTa.mjs → bootstrap-B3gMpU9e.mjs} +2 -2
  28. package/dist/{bootstrap-sly4qPPY.cjs → bootstrap-CoJu9VnB.cjs} +2 -2
  29. package/dist/{browser-CHpVgyni.mjs → browser-LHW2hBH8.mjs} +1 -1
  30. package/dist/{browser-BTgZ9d4i.cjs → browser-v1pdPP1E.cjs} +1 -1
  31. package/dist/claudeAccountEnv-BL1pR_37.mjs +133 -0
  32. package/dist/claudeAccountEnv-CEX_EMZr.cjs +138 -0
  33. package/dist/{claudeLocal-Bgb5GGsq.mjs → claudeLocal-BZUgA5G2.mjs} +5 -5
  34. package/dist/{claudeLocal-1vuTFcL8.cjs → claudeLocal-BrzM2RBI.cjs} +5 -5
  35. package/dist/{claudeLocalLauncher-T7EfT68h.mjs → claudeLocalLauncher-A0AQyHFi.mjs} +10 -10
  36. package/dist/{claudeLocalLauncher-DOsL6HFY.cjs → claudeLocalLauncher-XAMpXUM7.cjs} +10 -10
  37. package/dist/{claudeSessionFork-Cko4SaVi.cjs → claudeSessionFork-Mhn2fYe_.cjs} +1 -1
  38. package/dist/{claudeSessionFork-CPvi6yDX.mjs → claudeSessionFork-_GwIlmMB.mjs} +1 -1
  39. package/dist/{client-BXD66ZF5.mjs → client-7RnI9J0W.mjs} +2 -2
  40. package/dist/{client-Bi20Ka0h.mjs → client-Bde4QVIn.mjs} +4 -2
  41. package/dist/{client-C5-C0t2a.cjs → client-CJr8Pjwm.cjs} +4 -2
  42. package/dist/{client-BscskEBk.cjs → client-D2GWkd-T.cjs} +2 -2
  43. package/dist/{client-C-OdTbrU.cjs → client-DLlnmAPL.cjs} +4 -4
  44. package/dist/{client-Bh1aUPh-.mjs → client-DwbhrX6D.mjs} +4 -4
  45. package/dist/codex/happyMcpStdioBridge.cjs +16 -16
  46. package/dist/codex/happyMcpStdioBridge.mjs +16 -16
  47. package/dist/codexAccount-BDQjRbtI.cjs +1028 -0
  48. package/dist/codexAccount-NOX5pmQf.mjs +1015 -0
  49. package/dist/{codexAppServerClient-DXhAf6i-.mjs → codexAppServerClient-B3QJV6Ey.mjs} +18 -7
  50. package/dist/{codexAppServerClient-DKXeikEe.cjs → codexAppServerClient-DWEsZUC4.cjs} +18 -7
  51. package/dist/{codexCommand-DvbbpYBS.cjs → codexCommand-Bg8AmxVm.cjs} +195 -63
  52. package/dist/{codexCommand-CIaOiiOj.mjs → codexCommand-D1xlj4sT.mjs} +196 -64
  53. package/dist/{codexTermination-BszWfyk5.cjs → codexTermination-ByX9GcEJ.cjs} +1 -1
  54. package/dist/{codexTermination-BcQdEDaw.mjs → codexTermination-CaWAVQjZ.mjs} +1 -1
  55. package/dist/{config-Di3Cf6js.cjs → config-B2GGbiTv.cjs} +3 -3
  56. package/dist/{config-OCEcVVK1.mjs → config-C2XYEwXz.mjs} +3 -3
  57. package/dist/{configuration-DfPBa-9d.cjs → configuration-BBK0rmmj.cjs} +1 -1
  58. package/dist/{configuration-ECqXu34R.mjs → configuration-ThKBP_zY.mjs} +1 -1
  59. package/dist/{connect-BTfAUhk8.mjs → connect-BirnCl9q.mjs} +13 -13
  60. package/dist/{connect-BPQRuOw5.cjs → connect-C3tZs_NC.cjs} +13 -13
  61. package/dist/{context-CfgTFpCB.mjs → context-C0EFLnOg.mjs} +1 -1
  62. package/dist/{context-Co7hUaW-.cjs → context-wDp0aZBK.cjs} +1 -1
  63. package/dist/{controlClient-ClI7A0qE.mjs → controlClient-Ckl8N1MS.mjs} +14 -5
  64. package/dist/{controlClient-C13_pSKG.cjs → controlClient-DwWTns3A.cjs} +15 -4
  65. package/dist/{createSessionMetadata-Cf78KHtt.cjs → createSessionMetadata-DqZ6h02H.cjs} +2 -2
  66. package/dist/{createSessionMetadata-B0eT_Kfj.mjs → createSessionMetadata-vug4Cv8z.mjs} +2 -2
  67. package/dist/daemonAccounts-CpGDY_4k.cjs +54 -0
  68. package/dist/daemonAccounts-DwPwKxvv.mjs +30 -0
  69. package/dist/{defaultPermissionMode-oqTupStc.cjs → defaultPermissionMode-BakXiqRr.cjs} +1 -1
  70. package/dist/{defaultPermissionMode-m6z2QVyP.mjs → defaultPermissionMode-DF5AfeBb.mjs} +1 -1
  71. package/dist/{deterministicJson-BtSwbsok.mjs → deterministicJson-BzX94gi3.mjs} +13 -13
  72. package/dist/{deterministicJson-CpFFgUL_.cjs → deterministicJson-t33SsuRC.cjs} +13 -13
  73. package/dist/{doctor-BEU0_1Xv.cjs → doctor-B9ug1LZb.cjs} +7 -7
  74. package/dist/{doctor-lsxmAK4o.mjs → doctor-C1zyOSXw.mjs} +7 -7
  75. package/dist/{downloadTarget-BXqXhNF7.mjs → downloadTarget-Baslc6jW.mjs} +6 -6
  76. package/dist/{downloadTarget-CikzJv1h.cjs → downloadTarget-T1id2Gh6.cjs} +6 -6
  77. package/dist/{ensureDaemonRunning-B_9WAlbU.mjs → ensureDaemonRunning-C6ERYK-O.mjs} +5 -5
  78. package/dist/{ensureDaemonRunning-BUuH-pbE.cjs → ensureDaemonRunning-CoAg11Zi.cjs} +5 -5
  79. package/dist/{handleResumeCommand-BK9XKH_l.mjs → handleResumeCommand-CrlqDuz7.mjs} +5 -5
  80. package/dist/{handleResumeCommand-Dj7oi2KO.cjs → handleResumeCommand-DPi-sPm7.cjs} +5 -5
  81. package/dist/{index-D3c7CLot.cjs → index-B1swQJUS.cjs} +4 -4
  82. package/dist/{index-CmZusg8Q.cjs → index-B2dJA8VG.cjs} +3 -3
  83. package/dist/{index-CLUHaPU8.cjs → index-BUFrKZeQ.cjs} +205 -5
  84. package/dist/{index-BjZnpGWX.mjs → index-BbdV2mzy.mjs} +3 -3
  85. package/dist/{index-BdOJOZ6J.mjs → index-BcSPg3c5.mjs} +4 -4
  86. package/dist/{index-CauRYQKr.cjs → index-Bkslzin5.cjs} +44 -40
  87. package/dist/{index-DuK9XYbZ.mjs → index-Cn73rdtQ.mjs} +4 -4
  88. package/dist/{index-Bq8NKSCF.mjs → index-D1YnIih6.mjs} +195 -6
  89. package/dist/{index-Cxso1rg4.mjs → index-fZO4nF6e.mjs} +45 -41
  90. package/dist/{index-Dg2NAF_-.cjs → index-rocrvOYG.cjs} +4 -4
  91. package/dist/index.cjs +2 -2
  92. package/dist/index.mjs +2 -2
  93. package/dist/{install-DXllkuy0.cjs → install-CArXjPfW.cjs} +3 -3
  94. package/dist/{install-DTIveLOS.mjs → install-CChhyV2G.mjs} +3 -3
  95. package/dist/lib.cjs +12 -12
  96. package/dist/lib.d.cts +354 -0
  97. package/dist/lib.d.mts +354 -0
  98. package/dist/lib.mjs +12 -12
  99. package/dist/{lidState-CD81ryTy.mjs → lidState-B6yYKjNK.mjs} +1 -1
  100. package/dist/{lidState-C9_DoF9i.cjs → lidState-B_v6qgfE.cjs} +1 -1
  101. package/dist/{localHappyAgentAuth-Cg-m1lwm.mjs → localHappyAgentAuth-KRlg_aI0.mjs} +1 -1
  102. package/dist/{localHappyAgentAuth-CCjUvOfi.cjs → localHappyAgentAuth-jJH0n67S.cjs} +1 -1
  103. package/dist/{logger-Ct2zvaq0.cjs → logger-CX3x2eI4.cjs} +2 -2
  104. package/dist/{logger-GcbI0eg2.mjs → logger-JV7-4Q_6.mjs} +2 -2
  105. package/dist/{machineMetadata-CXRmFNOV.mjs → machineMetadata-D5-SW9kv.mjs} +3 -3
  106. package/dist/{machineMetadata-DDCVWb_x.cjs → machineMetadata-DhZuM0iB.cjs} +3 -3
  107. package/dist/{main-BHC-WIcM.cjs → main-1x1HGQEy.cjs} +92 -48
  108. package/dist/{main-omGr_ONk.mjs → main-CFOdXbPD.mjs} +92 -48
  109. package/dist/{mcp-xUzii0m8.cjs → mcp-BnKBSEh7.cjs} +18 -15
  110. package/dist/{mcp-D5hxmRAq.mjs → mcp-R6lMcFLO.mjs} +18 -15
  111. package/dist/{mirrorProtocol-Lcx20Oby.mjs → mirrorProtocol-CD4ntuZJ.mjs} +3 -3
  112. package/dist/{mirrorProtocol-Dfl8Ahyf.cjs → mirrorProtocol-DO-KtvAL.cjs} +3 -3
  113. package/dist/{package-BsUHyqWe.mjs → package-Bw3H6VLn.mjs} +7 -7
  114. package/dist/{package-9n7wd2dT.cjs → package-uzlvxa5S.cjs} +7 -7
  115. package/dist/{panels-CpEKWWbI.mjs → panels-BamhZCoZ.mjs} +5 -5
  116. package/dist/{panels-BfknEmt7.cjs → panels-C46FxjmH.cjs} +5 -5
  117. package/dist/{peerTools-CElYh-5u.cjs → peerTools-D-VNNFw-.cjs} +5 -5
  118. package/dist/{peerTools-CwCe6tmJ.mjs → peerTools-WtRgTSqG.mjs} +5 -5
  119. package/dist/{persistence-Cpw4yJs8.mjs → persistence-Cg4sfjQV.mjs} +2 -2
  120. package/dist/{persistence-A2NeERZJ.cjs → persistence-CsmAgN-C.cjs} +2 -2
  121. package/dist/{piRunnerArgs-Bqmu16He.mjs → piRunnerArgs-BbaAQvb4.mjs} +2 -2
  122. package/dist/{piRunnerArgs-BnFU0K73.cjs → piRunnerArgs-vnFygygF.cjs} +1 -1
  123. package/dist/{piRuntime-Cgn1b0OX.mjs → piRuntime-Bid7TBf5.mjs} +1 -1
  124. package/dist/{piRuntime-DpS9TAIs.cjs → piRuntime-C2uj5Ucx.cjs} +1 -1
  125. package/dist/{piTerminal-rmve-VlI.cjs → piTerminal-Ckpjfoqa.cjs} +20 -17
  126. package/dist/{piTerminal-BGdps8f3.mjs → piTerminal-CqxgrI13.mjs} +20 -17
  127. package/dist/{pushNotifications-23YSd-0l.cjs → pushNotifications-BCg7YAiu.cjs} +5 -3
  128. package/dist/{pushNotifications-XAM8__Pg.mjs → pushNotifications-BbE-qV9I.mjs} +5 -3
  129. package/dist/{query-SZcYnJoW.mjs → query-Bfr9O_62.mjs} +1 -1
  130. package/dist/{query-u2GX-I0C.cjs → query-vQ-HG394.cjs} +1 -1
  131. package/dist/{rateLimitReporter-CaTzBe3x.cjs → rateLimitReporter-BZ8x0-6-.cjs} +3 -3
  132. package/dist/{rateLimitReporter-COUkf446.mjs → rateLimitReporter-CAz7VMw4.mjs} +3 -3
  133. package/dist/{rateLimitWindows-B2Kx6L0S.cjs → rateLimitWindows-BZl6GMwQ.cjs} +1 -1
  134. package/dist/{rateLimitWindows-j_qQk0KY.mjs → rateLimitWindows-CRARnKaI.mjs} +1 -1
  135. package/dist/reconnectEnv-B31lY4nR.cjs +27 -0
  136. package/dist/reconnectEnv-DeSvHl3q.mjs +24 -0
  137. package/dist/{registerCommonHandlers-D1MiSfcB.cjs → registerCommonHandlers-CZGmrPbT.cjs} +2 -2
  138. package/dist/{registerCommonHandlers-DRRfinzK.mjs → registerCommonHandlers-Cj3Nl9y-.mjs} +2 -2
  139. package/dist/{registerKillSessionHandler-Cpug_r5C.mjs → registerKillSessionHandler-Bg9t45Ub.mjs} +6 -6
  140. package/dist/{registerKillSessionHandler-hvCsEn7b.cjs → registerKillSessionHandler-C3EDnW4F.cjs} +6 -6
  141. package/dist/{remoteSessionClient-BdnJ_n8C.mjs → remoteSessionClient--0vfA7I5.mjs} +5 -5
  142. package/dist/{remoteSessionClient-6ymeMVa4.cjs → remoteSessionClient-CcSP24Zq.cjs} +5 -5
  143. package/dist/{reportProgressTool-XgQBzxoD.mjs → reportProgressTool-DVru7jc_.mjs} +3 -3
  144. package/dist/{reportProgressTool-tzQLCLIw.cjs → reportProgressTool-Ddg1yVq2.cjs} +3 -3
  145. package/dist/{run-DYL_wuj7.cjs → run-BTrIT_jU.cjs} +347 -856
  146. package/dist/{run-Bt0AklUU.mjs → run-HtvH6BLi.mjs} +346 -855
  147. package/dist/{runClaude-C3rii_S6.mjs → runClaude-DsHTk5Bu.mjs} +62 -44
  148. package/dist/{runClaude-CBEpYO4S.cjs → runClaude-ipjwAHPI.cjs} +62 -44
  149. package/dist/{runClaudeDeps-CYuozSC6.cjs → runClaudeDeps-BKpwL6ln.cjs} +51 -42
  150. package/dist/{runClaudeDeps-DlVfMG4F.mjs → runClaudeDeps-BV3vpeyY.mjs} +56 -47
  151. package/dist/{runGemini-CEI3b90u.cjs → runGemini-B-G0_7Ab.cjs} +33 -33
  152. package/dist/{runGemini-DkYhRk9S.mjs → runGemini-DhjK6_Fp.mjs} +33 -33
  153. package/dist/{runOpenClaw-DpprWCoz.mjs → runOpenClaw-B6lawk8n.mjs} +18 -18
  154. package/dist/{runOpenClaw-BgjD6E4d.cjs → runOpenClaw-BHIo8tkn.cjs} +18 -18
  155. package/dist/{sandbox-XCDUbH72.cjs → sandbox-BAsO0ILe.cjs} +4 -4
  156. package/dist/{sandbox-DJ7A7lsy.mjs → sandbox-CKb7pCXg.mjs} +4 -4
  157. package/dist/selfCheck-CZ-t1Xzq.mjs +88 -0
  158. package/dist/{selfCheck-BYUDB1Uq.cjs → selfCheck-D4VvVZNi.cjs} +39 -37
  159. package/dist/{send-CASDBCyJ.cjs → send-Cz5m39QR.cjs} +8 -8
  160. package/dist/{send-Ba63huxv.mjs → send-D8ipLKMY.mjs} +8 -8
  161. package/dist/{server-w3W0toNd.mjs → server-CjvgT3N9.mjs} +4 -4
  162. package/dist/{server-cZoV9XRt.cjs → server-CySyJKPH.cjs} +6 -6
  163. package/dist/{sessionLock-G2PMqvsh.mjs → sessionLock-B73fhgQN.mjs} +10 -4
  164. package/dist/{sessionLock-BmLA2S8K.cjs → sessionLock-DdDCuNUs.cjs} +10 -3
  165. package/dist/{sessionOps-DPw5k8vV.mjs → sessionOps-C65Iej_C.mjs} +50 -8
  166. package/dist/{sessionOps-DXlTmS7J.cjs → sessionOps-XSEjIqNq.cjs} +50 -8
  167. package/dist/sessionProvider-CLVNkfji.mjs +110 -0
  168. package/dist/sessionProvider-Dgsty8z_.cjs +115 -0
  169. package/dist/{sessionScanner-AHjnicxi.cjs → sessionScanner-D8IVXMMH.cjs} +3 -3
  170. package/dist/{sessionScanner-BCXpdZJN.mjs → sessionScanner-MW1P9Pm9.mjs} +3 -3
  171. package/dist/{sessions-BiBXOBx0.cjs → sessions-BKz7gZqg.cjs} +10 -10
  172. package/dist/{sessions-Clk8MR5Y.mjs → sessions-Dtk_agUL.mjs} +10 -10
  173. package/dist/{setupOfflineReconnection-DI-QZGYz.mjs → setupOfflineReconnection-Bvdy-2xd.mjs} +2 -2
  174. package/dist/{setupOfflineReconnection-BKLfOd-i.cjs → setupOfflineReconnection-DxMiW7OV.cjs} +2 -2
  175. package/dist/{spawn-D5omsx1Q.cjs → spawn-DiPkJcrQ.cjs} +36 -17
  176. package/dist/{spawn-4tsp1uhh.mjs → spawn-Dm4xsZBX.mjs} +36 -17
  177. package/dist/{spawnAgents-CtkkIFHd.cjs → spawnAgents-B9olJ8xn.cjs} +1 -1
  178. package/dist/{spawnAgents-CjoU6ZOS.mjs → spawnAgents-I29H9nO8.mjs} +1 -1
  179. package/dist/{spawnHappyCLI-CF_gLi92.cjs → spawnHappyCLI-BYGOUda1.cjs} +1 -1
  180. package/dist/{spawnHappyCLI-CIA9Sc_5.mjs → spawnHappyCLI-CnMwzjWX.mjs} +1 -1
  181. package/dist/{startFileWatcher-9Stpxe7p.cjs → startFileWatcher-D14W6gn-.cjs} +1 -1
  182. package/dist/{startFileWatcher-CDO6fb2m.mjs → startFileWatcher-DePAY1T5.mjs} +1 -1
  183. package/dist/{startupSessionCreate-BtR4iYEC.mjs → startupSessionCreate-DoK0IvJG.mjs} +3 -3
  184. package/dist/{startupSessionCreate-CcF7rGGB.cjs → startupSessionCreate-rBHd4tc1.cjs} +3 -3
  185. package/dist/store-CkNa6oj4.cjs +326 -0
  186. package/dist/store-Vej_738f.mjs +305 -0
  187. package/dist/{streamRelay-BhI6jqF-.cjs → streamRelay-C0G1HOOd.cjs} +1 -1
  188. package/dist/{streamRelay-DMwOMTKf.mjs → streamRelay-C5U-C4GS.mjs} +1 -1
  189. package/dist/{sync-C0PRuTMj.mjs → sync-BP6vnxVP.mjs} +1 -1
  190. package/dist/{sync-Ba8N6xba.cjs → sync-WYBwkJvG.cjs} +1 -1
  191. package/dist/{systemPrompt-DV5IReD4.cjs → systemPrompt-BkQlCk5_.cjs} +2 -2
  192. package/dist/{systemPrompt-D0q8eyjy.mjs → systemPrompt-aRqBmkpw.mjs} +2 -2
  193. package/dist/{teams-BO3_arwM.mjs → teams-CGmC4ygu.mjs} +7 -7
  194. package/dist/{teams-z3Gp-KlV.cjs → teams-phbpwAGD.cjs} +7 -7
  195. package/dist/{template-B_5l6pkc.cjs → template-B9pLEP8v.cjs} +2 -2
  196. package/dist/{template-DLR_0hfj.mjs → template-CL9EvQLQ.mjs} +2 -2
  197. package/dist/{time-Cy0a-7YX.cjs → time-BTLcO8jp.cjs} +1 -1
  198. package/dist/{time-D0jvDRhn.mjs → time-Cw0liIqB.mjs} +1 -1
  199. package/dist/{titleGenerator-RGHWP2YL.cjs → titleGenerator-Y1_7ceJC.cjs} +17 -13
  200. package/dist/{titleGenerator-AGQsXskb.mjs → titleGenerator-h6TmFe-c.mjs} +16 -12
  201. package/dist/{todo-CzIDPLFy.cjs → todo-BxiPiCvB.cjs} +6 -6
  202. package/dist/{todo-BZ954vsz.mjs → todo-OKcTC_VC.mjs} +6 -6
  203. package/dist/{tools-Bei5i03L.mjs → tools-BR-drXZ8.mjs} +3 -2
  204. package/dist/{tools-B1x1j6tz.cjs → tools-CcebYtLj.cjs} +3 -2
  205. package/dist/{uninstall-C3cnIvz1.cjs → uninstall-CnDeCC-M.cjs} +3 -3
  206. package/dist/{uninstall-B4T_e3Mr.mjs → uninstall-D3stWKD2.mjs} +3 -3
  207. package/dist/wrapperAccount-BkufO_9g.mjs +107 -0
  208. package/dist/wrapperAccount-D2A4DuZy.cjs +113 -0
  209. package/package.json +7 -7
  210. package/dist/providerBinding-B-Qbx9W2.cjs +0 -140
  211. package/dist/providerBinding-CYubGg-Z.mjs +0 -132
  212. package/dist/selfCheck-C-rNljKV.mjs +0 -86
  213. package/dist/sessionProvider-DUn91LhJ.mjs +0 -109
  214. package/dist/sessionProvider-Dg691XQ4.cjs +0 -114
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
4
- var configuration = require('./configuration-DfPBa-9d.cjs');
4
+ var configuration = require('./configuration-BBK0rmmj.cjs');
5
5
  var node_crypto = require('node:crypto');
6
6
  var tweetnacl = require('tweetnacl');
7
7
  var axios = require('axios');
8
- var time = require('./time-Cy0a-7YX.cjs');
9
- var persistence = require('./persistence-A2NeERZJ.cjs');
10
- var browser = require('./browser-BTgZ9d4i.cjs');
11
- var logger = require('./logger-Ct2zvaq0.cjs');
8
+ var time = require('./time-BTLcO8jp.cjs');
9
+ var persistence = require('./persistence-CsmAgN-C.cjs');
10
+ var browser = require('./browser-v1pdPP1E.cjs');
11
+ var logger = require('./logger-CX3x2eI4.cjs');
12
12
 
13
13
  function generateWebAuthUrl(publicKey) {
14
14
  const publicKeyBase64 = authRelay.encodeBase64(publicKey, "base64url");
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var persistence = require('./persistence-A2NeERZJ.cjs');
5
- var auth = require('./auth-DnxoVkkf.cjs');
6
- var configuration = require('./configuration-DfPBa-9d.cjs');
4
+ var persistence = require('./persistence-CsmAgN-C.cjs');
5
+ var auth = require('./auth-DCjxpI6Z.cjs');
6
+ var configuration = require('./configuration-BBK0rmmj.cjs');
7
7
  var node_fs = require('node:fs');
8
8
  var node_readline = require('node:readline');
9
- var controlClient = require('./controlClient-C13_pSKG.cjs');
10
- var logger = require('./logger-Ct2zvaq0.cjs');
9
+ var controlClient = require('./controlClient-DwWTns3A.cjs');
10
+ var logger = require('./logger-CX3x2eI4.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-Cy0a-7YX.cjs');
19
- require('./browser-BTgZ9d4i.cjs');
18
+ require('./time-BTLcO8jp.cjs');
19
+ require('./browser-v1pdPP1E.cjs');
20
20
  require('open');
21
21
  require('node:path');
22
- require('./package-9n7wd2dT.cjs');
22
+ require('./package-uzlvxa5S.cjs');
23
23
  require('node:util');
24
24
 
25
25
  function localMachineIdentityStatus(machineId) {
@@ -1,12 +1,12 @@
1
1
  import { e as encodeBase64, c as credentialRelayProblem, f as encodeBase64Url, d as decodeBase64 } from './authRelay-DhQhkBvX.mjs';
2
- import { c as configuration } from './configuration-ECqXu34R.mjs';
2
+ import { c as configuration } from './configuration-ThKBP_zY.mjs';
3
3
  import { randomUUID, randomBytes } from 'node:crypto';
4
4
  import tweetnacl from 'tweetnacl';
5
5
  import axios from 'axios';
6
- import { d as delay } from './time-D0jvDRhn.mjs';
7
- import { g as readCredentials, m as readSettingsOutcome, u as updateSettings, w as writeCredentialsLegacy, n as writeCredentialsDataKey } from './persistence-Cpw4yJs8.mjs';
8
- import { o as openBrowser } from './browser-CHpVgyni.mjs';
9
- import { l as logger } from './logger-GcbI0eg2.mjs';
6
+ import { d as delay } from './time-Cw0liIqB.mjs';
7
+ import { g as readCredentials, m as readSettingsOutcome, u as updateSettings, w as writeCredentialsLegacy, n as writeCredentialsDataKey } from './persistence-Cg4sfjQV.mjs';
8
+ import { o as openBrowser } from './browser-LHW2hBH8.mjs';
9
+ import { l as logger } from './logger-JV7-4Q_6.mjs';
10
10
 
11
11
  function generateWebAuthUrl(publicKey) {
12
12
  const publicKeyBase64 = encodeBase64(publicKey, "base64url");
@@ -4,53 +4,53 @@ 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-CLUHaPU8.cjs');
8
- var configuration = require('./configuration-DfPBa-9d.cjs');
9
- var client = require('./client-BscskEBk.cjs');
10
- var template = require('./template-B_5l6pkc.cjs');
7
+ var index = require('./index-BUFrKZeQ.cjs');
8
+ var configuration = require('./configuration-BBK0rmmj.cjs');
9
+ var client = require('./client-D2GWkd-T.cjs');
10
+ var template = require('./template-B9pLEP8v.cjs');
11
11
  var install = require('./install-BOHlqewf.cjs');
12
12
  var precheckCompat = require('./precheckCompat-CWOi5c9L.cjs');
13
- var sessionOps = require('./sessionOps-DXlTmS7J.cjs');
14
- var spawn = require('./spawn-D5omsx1Q.cjs');
15
- var spawnAgents = require('./spawnAgents-CtkkIFHd.cjs');
16
- var time = require('./time-Cy0a-7YX.cjs');
13
+ var sessionOps = require('./sessionOps-XSEjIqNq.cjs');
14
+ var spawn = require('./spawn-DiPkJcrQ.cjs');
15
+ var spawnAgents = require('./spawnAgents-B9olJ8xn.cjs');
16
+ var time = require('./time-BTLcO8jp.cjs');
17
17
  require('zod');
18
18
  require('@paralleldrive/cuid2');
19
- require('./package-9n7wd2dT.cjs');
19
+ require('./package-uzlvxa5S.cjs');
20
20
  require('node:fs/promises');
21
- require('./persistence-A2NeERZJ.cjs');
21
+ require('./persistence-CsmAgN-C.cjs');
22
22
  require('./authRelay-Dy1qU9td.cjs');
23
23
  require('node:crypto');
24
24
  require('tweetnacl');
25
- require('./logger-Ct2zvaq0.cjs');
25
+ require('./logger-CX3x2eI4.cjs');
26
26
  require('node:util');
27
27
  require('./resources-BZ_Be0qM.cjs');
28
28
  require('axios');
29
- require('./controlClient-C13_pSKG.cjs');
29
+ require('./controlClient-DwWTns3A.cjs');
30
30
  require('./specialCommands-J3JFOq0J.cjs');
31
31
  require('socket.io-client');
32
32
  require('./backgroundTaskActivity-CBvUdj39.cjs');
33
- require('./client-C5-C0t2a.cjs');
33
+ require('./client-CJr8Pjwm.cjs');
34
34
  require('./path-B7zW-WwE.cjs');
35
- require('./claudeSessionFork-Cko4SaVi.cjs');
35
+ require('./claudeSessionFork-Mhn2fYe_.cjs');
36
36
  require('node:readline');
37
- require('./codexAppServerClient-DKXeikEe.cjs');
37
+ require('./codexAppServerClient-DWEsZUC4.cjs');
38
38
  require('node:child_process');
39
39
  require('cross-spawn');
40
40
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
41
41
  require('./manager-HrEj442o.cjs');
42
42
  require('@anthropic-ai/sandbox-runtime');
43
- require('./rateLimitWindows-B2Kx6L0S.cjs');
43
+ require('./rateLimitWindows-BZl6GMwQ.cjs');
44
44
  require('./processTree-CMHWlVse.cjs');
45
45
  require('./codexThreadFork-5kwoKjMu.cjs');
46
- require('./createSessionMetadata-Cf78KHtt.cjs');
46
+ require('./createSessionMetadata-DqZ6h02H.cjs');
47
47
  require('./projectPath-C3ioB4Bu.cjs');
48
48
  require('path');
49
49
  require('url');
50
50
  require('./forkBackfill-8eLDeS73.cjs');
51
51
 
52
52
  const AUTO_ACTIONS = ["list", "show", "create", "edit", "pause", "resume", "rm", "run", "fire", "runs", "cancel", "ack", "report", "skill", "install", "uninstall", "help"];
53
- const VALUE_FLAGS = ["--name", "--rename", "--description", "--machine", "--cron", "--tz", "--every", "--at", "--spawn-dir", "--prompt", "--prompt-file", "--agent", "--model", "--permission-mode", "--sticky-key", "--send-session", "--cwd", "--env", "--timeout", "--concurrency", "--max-runtime", "--payload", "--payload-json", "--payload-file", "--dedupe-key", "--status", "--limit", "--run", "--summary", "--error", "--attention", "--host", "--home", "--precheck-shell", "--precheck-argv", "--precheck-cwd", "--precheck-timeout"];
53
+ const VALUE_FLAGS = ["--name", "--rename", "--description", "--machine", "--cron", "--tz", "--every", "--at", "--spawn-dir", "--prompt", "--prompt-file", "--agent", "--model", "--permission-mode", "--sticky-key", "--account", "--send-session", "--cwd", "--env", "--timeout", "--concurrency", "--max-runtime", "--payload", "--payload-json", "--payload-file", "--dedupe-key", "--status", "--limit", "--run", "--summary", "--error", "--attention", "--host", "--home", "--precheck-shell", "--precheck-argv", "--precheck-cwd", "--precheck-timeout"];
54
54
  const BOOL_FLAGS = ["--manual", "--script", "--worktree", "--paused", "--wait", "--json", "--apply", "--all-machines", "--all", "--attention", "--precheck-output", "--no-precheck", "--help", "-h"];
55
55
  function parseAutoArgs(args) {
56
56
  const command = { action: "help", flags: {}, env: [], bools: /* @__PURE__ */ new Set(), argv: [] };
@@ -113,7 +113,7 @@ function actionFromCommand(command, current) {
113
113
  const kinds = [flags["--spawn-dir"] !== void 0, flags["--send-session"] !== void 0, bools.has("--script")].filter(Boolean).length;
114
114
  if (kinds > 1) throw new Error("Use only one of --spawn-dir, --send-session, --script");
115
115
  const prompt = readPrompt(flags);
116
- const spawnOnly = ["--agent", "--model", "--permission-mode", "--sticky-key"].filter((flag) => flags[flag] !== void 0).concat(bools.has("--worktree") ? ["--worktree"] : []);
116
+ const spawnOnly = ["--agent", "--model", "--permission-mode", "--sticky-key", "--account"].filter((flag) => flags[flag] !== void 0).concat(bools.has("--worktree") ? ["--worktree"] : []);
117
117
  const scriptOnly = ["--cwd", "--timeout"].filter((flag) => flags[flag] !== void 0).concat(command.env.length ? ["--env"] : []);
118
118
  if (kinds === 0) {
119
119
  if (!current) {
@@ -201,7 +201,9 @@ function spawnDetails(command) {
201
201
  ...flags["--model"] !== void 0 ? { model: flags["--model"] } : {},
202
202
  ...flags["--permission-mode"] !== void 0 ? { permissionMode: flags["--permission-mode"] } : {},
203
203
  ...bools.has("--worktree") ? { worktree: true } : {},
204
- ...flags["--sticky-key"] !== void 0 ? { sticky: { key: flags["--sticky-key"] } } : {}
204
+ ...flags["--sticky-key"] !== void 0 ? { sticky: { key: flags["--sticky-key"] } } : {},
205
+ // B-850d: an account of the automation's machine (`very-happy account list`), or `machine` = machine login.
206
+ ...flags["--account"] !== void 0 ? { agentProfile: flags["--account"] === "machine" ? null : { id: flags["--account"] } } : {}
205
207
  };
206
208
  }
207
209
  const AUTO_HELP = `${chalk.bold("very-happy auto")} - account-level automations: cron / interval / one-shot / manual triggers that spawn a session, continue a sticky session, or run a script on a machine
@@ -229,7 +231,7 @@ ${chalk.bold("Trigger (one):")}
229
231
  ${chalk.bold("Action (one):")}
230
232
  --spawn-dir <dir> --prompt <text>|--prompt-file <file>
231
233
  [--agent claude|codex|pi|gemini|openclaw] [--model <id>] [--permission-mode <m>]
232
- [--worktree] [--sticky-key <template>]
234
+ [--worktree] [--sticky-key <template>] [--account <id>|machine]
233
235
  --send-session <id> --prompt <text>|--prompt-file <file>
234
236
  --script -- <argv\u2026> [--cwd <dir>] [--env K=V]... [--timeout <dur>]
235
237
 
@@ -2,53 +2,53 @@ 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, c as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, d as AutomationPrecheckSchema } from './index-Bq8NKSCF.mjs';
6
- import { c as configuration } from './configuration-ECqXu34R.mjs';
7
- import { a as authenticatedAutomationsClient, b as automationRunIdFromEnv, i as isAutomationsUnavailable, A as AUTOMATIONS_UNAVAILABLE_MESSAGE } from './client-BXD66ZF5.mjs';
8
- import { p as parseDuration, c as clipAutomationReport, A as AUTOMATION_REPORT_TEXT_LIMITS, t as triggerFromFlags, d as describeTrigger, a as describeAction } from './template-DLR_0hfj.mjs';
5
+ import { c as AUTOMATION_NAME_PATTERN, i as isAutomationRunTerminal, d as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, e as AutomationPrecheckSchema } from './index-D1YnIih6.mjs';
6
+ import { c as configuration } from './configuration-ThKBP_zY.mjs';
7
+ import { a as authenticatedAutomationsClient, b as automationRunIdFromEnv, i as isAutomationsUnavailable, A as AUTOMATIONS_UNAVAILABLE_MESSAGE } from './client-7RnI9J0W.mjs';
8
+ import { p as parseDuration, c as clipAutomationReport, A as AUTOMATION_REPORT_TEXT_LIMITS, t as triggerFromFlags, d as describeTrigger, a as describeAction } from './template-CL9EvQLQ.mjs';
9
9
  import { A as AUTOMATION_SKILL, i as installAutomationSkill } from './install-B8O1JpJH.mjs';
10
10
  import { u as updateAutomationChecked, c as createAutomationChecked } from './precheckCompat-DeEbilbr.mjs';
11
- import { s as sessionWebUrl } from './sessionOps-DPw5k8vV.mjs';
12
- import { parseEnvAssignment } from './spawn-4tsp1uhh.mjs';
13
- import { S as SPAWN_AGENTS, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES } from './spawnAgents-CjoU6ZOS.mjs';
14
- import { d as delay } from './time-D0jvDRhn.mjs';
11
+ import { s as sessionWebUrl } from './sessionOps-C65Iej_C.mjs';
12
+ import { parseEnvAssignment } from './spawn-Dm4xsZBX.mjs';
13
+ import { S as SPAWN_AGENTS, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES } from './spawnAgents-I29H9nO8.mjs';
14
+ import { d as delay } from './time-Cw0liIqB.mjs';
15
15
  import 'zod';
16
16
  import '@paralleldrive/cuid2';
17
- import './package-BsUHyqWe.mjs';
17
+ import './package-Bw3H6VLn.mjs';
18
18
  import 'node:fs/promises';
19
- import './persistence-Cpw4yJs8.mjs';
19
+ import './persistence-Cg4sfjQV.mjs';
20
20
  import './authRelay-DhQhkBvX.mjs';
21
21
  import 'node:crypto';
22
22
  import 'tweetnacl';
23
- import './logger-GcbI0eg2.mjs';
23
+ import './logger-JV7-4Q_6.mjs';
24
24
  import 'node:util';
25
25
  import './resources-CLP_MpK4.mjs';
26
26
  import 'axios';
27
- import './controlClient-ClI7A0qE.mjs';
27
+ import './controlClient-Ckl8N1MS.mjs';
28
28
  import './specialCommands-MXUN0wfI.mjs';
29
29
  import 'socket.io-client';
30
30
  import './backgroundTaskActivity-8PdPxrvy.mjs';
31
- import './client-Bi20Ka0h.mjs';
31
+ import './client-Bde4QVIn.mjs';
32
32
  import './path-D2wdaNSk.mjs';
33
- import './claudeSessionFork-CPvi6yDX.mjs';
33
+ import './claudeSessionFork-_GwIlmMB.mjs';
34
34
  import 'node:readline';
35
- import './codexAppServerClient-DXhAf6i-.mjs';
35
+ import './codexAppServerClient-B3QJV6Ey.mjs';
36
36
  import 'node:child_process';
37
37
  import 'cross-spawn';
38
38
  import './contentLogMetadata-BlWI0egu.mjs';
39
39
  import './manager-BEsI4qt3.mjs';
40
40
  import '@anthropic-ai/sandbox-runtime';
41
- import './rateLimitWindows-j_qQk0KY.mjs';
41
+ import './rateLimitWindows-CRARnKaI.mjs';
42
42
  import './processTree-CP5IvQ2Z.mjs';
43
43
  import './codexThreadFork-DobPd19R.mjs';
44
- import './createSessionMetadata-B0eT_Kfj.mjs';
44
+ import './createSessionMetadata-vug4Cv8z.mjs';
45
45
  import './projectPath-BTBIMB57.mjs';
46
46
  import 'path';
47
47
  import 'url';
48
48
  import './forkBackfill-DYIjlN1Z.mjs';
49
49
 
50
50
  const AUTO_ACTIONS = ["list", "show", "create", "edit", "pause", "resume", "rm", "run", "fire", "runs", "cancel", "ack", "report", "skill", "install", "uninstall", "help"];
51
- const VALUE_FLAGS = ["--name", "--rename", "--description", "--machine", "--cron", "--tz", "--every", "--at", "--spawn-dir", "--prompt", "--prompt-file", "--agent", "--model", "--permission-mode", "--sticky-key", "--send-session", "--cwd", "--env", "--timeout", "--concurrency", "--max-runtime", "--payload", "--payload-json", "--payload-file", "--dedupe-key", "--status", "--limit", "--run", "--summary", "--error", "--attention", "--host", "--home", "--precheck-shell", "--precheck-argv", "--precheck-cwd", "--precheck-timeout"];
51
+ const VALUE_FLAGS = ["--name", "--rename", "--description", "--machine", "--cron", "--tz", "--every", "--at", "--spawn-dir", "--prompt", "--prompt-file", "--agent", "--model", "--permission-mode", "--sticky-key", "--account", "--send-session", "--cwd", "--env", "--timeout", "--concurrency", "--max-runtime", "--payload", "--payload-json", "--payload-file", "--dedupe-key", "--status", "--limit", "--run", "--summary", "--error", "--attention", "--host", "--home", "--precheck-shell", "--precheck-argv", "--precheck-cwd", "--precheck-timeout"];
52
52
  const BOOL_FLAGS = ["--manual", "--script", "--worktree", "--paused", "--wait", "--json", "--apply", "--all-machines", "--all", "--attention", "--precheck-output", "--no-precheck", "--help", "-h"];
53
53
  function parseAutoArgs(args) {
54
54
  const command = { action: "help", flags: {}, env: [], bools: /* @__PURE__ */ new Set(), argv: [] };
@@ -111,7 +111,7 @@ function actionFromCommand(command, current) {
111
111
  const kinds = [flags["--spawn-dir"] !== void 0, flags["--send-session"] !== void 0, bools.has("--script")].filter(Boolean).length;
112
112
  if (kinds > 1) throw new Error("Use only one of --spawn-dir, --send-session, --script");
113
113
  const prompt = readPrompt(flags);
114
- const spawnOnly = ["--agent", "--model", "--permission-mode", "--sticky-key"].filter((flag) => flags[flag] !== void 0).concat(bools.has("--worktree") ? ["--worktree"] : []);
114
+ const spawnOnly = ["--agent", "--model", "--permission-mode", "--sticky-key", "--account"].filter((flag) => flags[flag] !== void 0).concat(bools.has("--worktree") ? ["--worktree"] : []);
115
115
  const scriptOnly = ["--cwd", "--timeout"].filter((flag) => flags[flag] !== void 0).concat(command.env.length ? ["--env"] : []);
116
116
  if (kinds === 0) {
117
117
  if (!current) {
@@ -199,7 +199,9 @@ function spawnDetails(command) {
199
199
  ...flags["--model"] !== void 0 ? { model: flags["--model"] } : {},
200
200
  ...flags["--permission-mode"] !== void 0 ? { permissionMode: flags["--permission-mode"] } : {},
201
201
  ...bools.has("--worktree") ? { worktree: true } : {},
202
- ...flags["--sticky-key"] !== void 0 ? { sticky: { key: flags["--sticky-key"] } } : {}
202
+ ...flags["--sticky-key"] !== void 0 ? { sticky: { key: flags["--sticky-key"] } } : {},
203
+ // B-850d: an account of the automation's machine (`very-happy account list`), or `machine` = machine login.
204
+ ...flags["--account"] !== void 0 ? { agentProfile: flags["--account"] === "machine" ? null : { id: flags["--account"] } } : {}
203
205
  };
204
206
  }
205
207
  const AUTO_HELP = `${chalk.bold("very-happy auto")} - account-level automations: cron / interval / one-shot / manual triggers that spawn a session, continue a sticky session, or run a script on a machine
@@ -227,7 +229,7 @@ ${chalk.bold("Trigger (one):")}
227
229
  ${chalk.bold("Action (one):")}
228
230
  --spawn-dir <dir> --prompt <text>|--prompt-file <file>
229
231
  [--agent claude|codex|pi|gemini|openclaw] [--model <id>] [--permission-mode <m>]
230
- [--worktree] [--sticky-key <template>]
232
+ [--worktree] [--sticky-key <template>] [--account <id>|machine]
231
233
  --send-session <id> --prompt <text>|--prompt-file <file>
232
234
  --script -- <argv\u2026> [--cwd <dir>] [--env K=V]... [--timeout <dur>]
233
235
 
@@ -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-ECqXu34R.mjs';
4
+ import { c as configuration } from './configuration-ThKBP_zY.mjs';
5
5
  import 'node:os';
6
- import './package-BsUHyqWe.mjs';
6
+ import './package-Bw3H6VLn.mjs';
7
7
 
8
8
  const ASSISTANT_CLAUDE_MD = `# very-happy \u8C03\u5EA6\u4E2D\u5FC3\uFF08\u8BED\u97F3\u52A9\u624B\uFF09
9
9
 
@@ -3,9 +3,9 @@
3
3
  var node_fs = require('node:fs');
4
4
  var promises = require('node:fs/promises');
5
5
  var path = require('node:path');
6
- var configuration = require('./configuration-DfPBa-9d.cjs');
6
+ var configuration = require('./configuration-BBK0rmmj.cjs');
7
7
  require('node:os');
8
- require('./package-9n7wd2dT.cjs');
8
+ require('./package-uzlvxa5S.cjs');
9
9
 
10
10
  const ASSISTANT_CLAUDE_MD = `# very-happy \u8C03\u5EA6\u4E2D\u5FC3\uFF08\u8BED\u97F3\u52A9\u624B\uFF09
11
11
 
@@ -1,5 +1,5 @@
1
1
  import open from 'open';
2
- import { l as logger } from './logger-GcbI0eg2.mjs';
2
+ import { l as logger } from './logger-JV7-4Q_6.mjs';
3
3
 
4
4
  async function openBrowser(url) {
5
5
  try {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var open = require('open');
4
- var logger = require('./logger-Ct2zvaq0.cjs');
4
+ var logger = require('./logger-CX3x2eI4.cjs');
5
5
 
6
6
  async function openBrowser(url) {
7
7
  try {
@@ -0,0 +1,133 @@
1
+ import { b as accountSecretPath, e as expandHome } from './store-Vej_738f.mjs';
2
+
3
+ const ACCOUNT_STRIPPED_ENV_KEYS = [
4
+ "ANTHROPIC_API_KEY",
5
+ "ANTHROPIC_AUTH_TOKEN",
6
+ "ANTHROPIC_BASE_URL",
7
+ "ANTHROPIC_CUSTOM_HEADERS",
8
+ "ANTHROPIC_MODEL",
9
+ "ANTHROPIC_DEFAULT_OPUS_MODEL",
10
+ "ANTHROPIC_DEFAULT_SONNET_MODEL",
11
+ "ANTHROPIC_DEFAULT_HAIKU_MODEL",
12
+ "ANTHROPIC_SMALL_FAST_MODEL",
13
+ "CLAUDE_CODE_SUBAGENT_MODEL",
14
+ "CLAUDE_CODE_NO_MODEL_FALLBACK",
15
+ "CLAUDE_CODE_MAX_CONTEXT_TOKENS",
16
+ "CLAUDE_CODE_OAUTH_TOKEN",
17
+ "CLAUDE_CODE_OAUTH_REFRESH_TOKEN",
18
+ "CLAUDE_CODE_OAUTH_SCOPES",
19
+ "CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR",
20
+ "CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR",
21
+ "CLAUDE_CODE_USE_BEDROCK",
22
+ "CLAUDE_CODE_USE_VERTEX",
23
+ "CLAUDE_CODE_USE_FOUNDRY"
24
+ ];
25
+ const UNAVAILABLE_PLACEHOLDER_TOKEN = "vh-account-unavailable";
26
+ function helperSafePath(path) {
27
+ return path.length > 0 && !/["$`\\\n\r%!]/.test(path.replace(/^[A-Za-z]:\\/, "").replace(/\\/g, "/"));
28
+ }
29
+ function buildApiKeyHelper(nodePath, keyPath) {
30
+ if (!helperSafePath(keyPath) || !helperSafePath(nodePath)) throw new Error("unsupported characters in key path");
31
+ return `"${nodePath}" -e "process.stdout.write(require('fs').readFileSync(process.argv[1],'utf8').trim())" "${keyPath}"`;
32
+ }
33
+ function buildApiModelEnv(record, model) {
34
+ const env = { ANTHROPIC_BASE_URL: record.baseUrl ?? "", CLAUDE_CODE_OAUTH_TOKEN: UNAVAILABLE_PLACEHOLDER_TOKEN };
35
+ if (!model) return env;
36
+ const contextWindow = record.contextWindows?.[model];
37
+ return {
38
+ ...env,
39
+ ANTHROPIC_MODEL: model,
40
+ ANTHROPIC_DEFAULT_OPUS_MODEL: model,
41
+ ANTHROPIC_DEFAULT_SONNET_MODEL: model,
42
+ ANTHROPIC_DEFAULT_HAIKU_MODEL: model,
43
+ ANTHROPIC_SMALL_FAST_MODEL: model,
44
+ CLAUDE_CODE_SUBAGENT_MODEL: model,
45
+ CLAUDE_CODE_NO_MODEL_FALLBACK: "1",
46
+ ...contextWindow ? { CLAUDE_CODE_MAX_CONTEXT_TOKENS: String(contextWindow) } : {}
47
+ };
48
+ }
49
+ function unavailable(id, label, kind, reason) {
50
+ return {
51
+ kind: "unavailable",
52
+ id,
53
+ profile: { id, label, kind, status: "unavailable", reason },
54
+ env: { CLAUDE_CODE_OAUTH_TOKEN: UNAVAILABLE_PLACEHOLDER_TOKEN },
55
+ unset: ACCOUNT_STRIPPED_ENV_KEYS
56
+ };
57
+ }
58
+ function rejectedByLastCheck(record) {
59
+ return record.check?.status === "expired" || record.check?.status === "invalid";
60
+ }
61
+ function resolveClaudeAccount(sessionId, deps) {
62
+ const binding = deps.bindings[sessionId];
63
+ if (!binding || binding.account === null) return { kind: "machine" };
64
+ const id = binding.account;
65
+ const record = deps.accounts.accounts[id];
66
+ if (!record) return unavailable(id, id, "unknown", "missing");
67
+ const { label, kind } = record;
68
+ if (record.agent !== "claude") return unavailable(id, label, kind, "agent-mismatch");
69
+ if (kind === "claude-subscription") {
70
+ const path = accountSecretPath(deps.home, id);
71
+ if (!deps.fileReadable(path)) return unavailable(id, label, kind, "missing-secret");
72
+ if (record.expiresAt !== void 0 && record.expiresAt <= deps.now) return unavailable(id, label, kind, "expired");
73
+ if (rejectedByLastCheck(record)) return unavailable(id, label, kind, record.check.status);
74
+ const token = deps.readSecret(path).trim();
75
+ if (!token) return unavailable(id, label, kind, "missing-secret");
76
+ return {
77
+ kind: "active",
78
+ id,
79
+ profile: { id, label, kind, status: "active" },
80
+ env: { CLAUDE_CODE_OAUTH_TOKEN: token },
81
+ unset: ACCOUNT_STRIPPED_ENV_KEYS,
82
+ settings: {}
83
+ };
84
+ }
85
+ const key = record.key;
86
+ let keyPath;
87
+ let envKeyCopy;
88
+ if (!key) return unavailable(id, label, kind, "missing-secret");
89
+ if (key.source === "env") {
90
+ if (!deps.env[key.name]?.trim()) return unavailable(id, label, kind, "missing-secret");
91
+ keyPath = deps.envKeyCopyPath(id);
92
+ envKeyCopy = { name: key.name, path: keyPath };
93
+ } else {
94
+ keyPath = key.source === "stored" ? accountSecretPath(deps.home, id) : expandHome(key.path);
95
+ if (!deps.fileReadable(keyPath)) return unavailable(id, label, kind, "missing-secret");
96
+ }
97
+ if (rejectedByLastCheck(record)) return unavailable(id, label, kind, record.check.status);
98
+ let helper;
99
+ try {
100
+ helper = buildApiKeyHelper(deps.nodePath, keyPath);
101
+ } catch {
102
+ return unavailable(id, label, kind, "missing-secret");
103
+ }
104
+ const model = binding.model ?? record.models?.[0];
105
+ return {
106
+ kind: "active",
107
+ id,
108
+ profile: { id, label, kind, status: "active", ...model ? { model } : {} },
109
+ env: buildApiModelEnv(record, model),
110
+ unset: ACCOUNT_STRIPPED_ENV_KEYS,
111
+ settings: { apiKeyHelper: helper },
112
+ ...model ? { pinnedModel: model } : {},
113
+ ...envKeyCopy ? { envKeyCopy } : {}
114
+ };
115
+ }
116
+ function applyAccountEnv(env, r) {
117
+ for (const key of r.unset) delete env[key];
118
+ Object.assign(env, r.env);
119
+ }
120
+ function overridingUserSettings(userSettings, kind) {
121
+ if (!userSettings || typeof userSettings !== "object") return [];
122
+ const s = userSettings;
123
+ const hits = [];
124
+ if (kind === "claude-subscription" && typeof s.apiKeyHelper === "string" && s.apiKeyHelper) hits.push("apiKeyHelper");
125
+ if (s.env && typeof s.env === "object") {
126
+ for (const key of ["ANTHROPIC_API_KEY", "ANTHROPIC_AUTH_TOKEN", "ANTHROPIC_BASE_URL", "CLAUDE_CODE_USE_BEDROCK", "CLAUDE_CODE_USE_VERTEX"]) {
127
+ if (typeof s.env[key] === "string") hits.push(`env.${key}`);
128
+ }
129
+ }
130
+ return hits;
131
+ }
132
+
133
+ export { ACCOUNT_STRIPPED_ENV_KEYS as A, applyAccountEnv as a, overridingUserSettings as o, resolveClaudeAccount as r };
@@ -0,0 +1,138 @@
1
+ 'use strict';
2
+
3
+ var store = require('./store-CkNa6oj4.cjs');
4
+
5
+ const ACCOUNT_STRIPPED_ENV_KEYS = [
6
+ "ANTHROPIC_API_KEY",
7
+ "ANTHROPIC_AUTH_TOKEN",
8
+ "ANTHROPIC_BASE_URL",
9
+ "ANTHROPIC_CUSTOM_HEADERS",
10
+ "ANTHROPIC_MODEL",
11
+ "ANTHROPIC_DEFAULT_OPUS_MODEL",
12
+ "ANTHROPIC_DEFAULT_SONNET_MODEL",
13
+ "ANTHROPIC_DEFAULT_HAIKU_MODEL",
14
+ "ANTHROPIC_SMALL_FAST_MODEL",
15
+ "CLAUDE_CODE_SUBAGENT_MODEL",
16
+ "CLAUDE_CODE_NO_MODEL_FALLBACK",
17
+ "CLAUDE_CODE_MAX_CONTEXT_TOKENS",
18
+ "CLAUDE_CODE_OAUTH_TOKEN",
19
+ "CLAUDE_CODE_OAUTH_REFRESH_TOKEN",
20
+ "CLAUDE_CODE_OAUTH_SCOPES",
21
+ "CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR",
22
+ "CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR",
23
+ "CLAUDE_CODE_USE_BEDROCK",
24
+ "CLAUDE_CODE_USE_VERTEX",
25
+ "CLAUDE_CODE_USE_FOUNDRY"
26
+ ];
27
+ const UNAVAILABLE_PLACEHOLDER_TOKEN = "vh-account-unavailable";
28
+ function helperSafePath(path) {
29
+ return path.length > 0 && !/["$`\\\n\r%!]/.test(path.replace(/^[A-Za-z]:\\/, "").replace(/\\/g, "/"));
30
+ }
31
+ function buildApiKeyHelper(nodePath, keyPath) {
32
+ if (!helperSafePath(keyPath) || !helperSafePath(nodePath)) throw new Error("unsupported characters in key path");
33
+ return `"${nodePath}" -e "process.stdout.write(require('fs').readFileSync(process.argv[1],'utf8').trim())" "${keyPath}"`;
34
+ }
35
+ function buildApiModelEnv(record, model) {
36
+ const env = { ANTHROPIC_BASE_URL: record.baseUrl ?? "", CLAUDE_CODE_OAUTH_TOKEN: UNAVAILABLE_PLACEHOLDER_TOKEN };
37
+ if (!model) return env;
38
+ const contextWindow = record.contextWindows?.[model];
39
+ return {
40
+ ...env,
41
+ ANTHROPIC_MODEL: model,
42
+ ANTHROPIC_DEFAULT_OPUS_MODEL: model,
43
+ ANTHROPIC_DEFAULT_SONNET_MODEL: model,
44
+ ANTHROPIC_DEFAULT_HAIKU_MODEL: model,
45
+ ANTHROPIC_SMALL_FAST_MODEL: model,
46
+ CLAUDE_CODE_SUBAGENT_MODEL: model,
47
+ CLAUDE_CODE_NO_MODEL_FALLBACK: "1",
48
+ ...contextWindow ? { CLAUDE_CODE_MAX_CONTEXT_TOKENS: String(contextWindow) } : {}
49
+ };
50
+ }
51
+ function unavailable(id, label, kind, reason) {
52
+ return {
53
+ kind: "unavailable",
54
+ id,
55
+ profile: { id, label, kind, status: "unavailable", reason },
56
+ env: { CLAUDE_CODE_OAUTH_TOKEN: UNAVAILABLE_PLACEHOLDER_TOKEN },
57
+ unset: ACCOUNT_STRIPPED_ENV_KEYS
58
+ };
59
+ }
60
+ function rejectedByLastCheck(record) {
61
+ return record.check?.status === "expired" || record.check?.status === "invalid";
62
+ }
63
+ function resolveClaudeAccount(sessionId, deps) {
64
+ const binding = deps.bindings[sessionId];
65
+ if (!binding || binding.account === null) return { kind: "machine" };
66
+ const id = binding.account;
67
+ const record = deps.accounts.accounts[id];
68
+ if (!record) return unavailable(id, id, "unknown", "missing");
69
+ const { label, kind } = record;
70
+ if (record.agent !== "claude") return unavailable(id, label, kind, "agent-mismatch");
71
+ if (kind === "claude-subscription") {
72
+ const path = store.accountSecretPath(deps.home, id);
73
+ if (!deps.fileReadable(path)) return unavailable(id, label, kind, "missing-secret");
74
+ if (record.expiresAt !== void 0 && record.expiresAt <= deps.now) return unavailable(id, label, kind, "expired");
75
+ if (rejectedByLastCheck(record)) return unavailable(id, label, kind, record.check.status);
76
+ const token = deps.readSecret(path).trim();
77
+ if (!token) return unavailable(id, label, kind, "missing-secret");
78
+ return {
79
+ kind: "active",
80
+ id,
81
+ profile: { id, label, kind, status: "active" },
82
+ env: { CLAUDE_CODE_OAUTH_TOKEN: token },
83
+ unset: ACCOUNT_STRIPPED_ENV_KEYS,
84
+ settings: {}
85
+ };
86
+ }
87
+ const key = record.key;
88
+ let keyPath;
89
+ let envKeyCopy;
90
+ if (!key) return unavailable(id, label, kind, "missing-secret");
91
+ if (key.source === "env") {
92
+ if (!deps.env[key.name]?.trim()) return unavailable(id, label, kind, "missing-secret");
93
+ keyPath = deps.envKeyCopyPath(id);
94
+ envKeyCopy = { name: key.name, path: keyPath };
95
+ } else {
96
+ keyPath = key.source === "stored" ? store.accountSecretPath(deps.home, id) : store.expandHome(key.path);
97
+ if (!deps.fileReadable(keyPath)) return unavailable(id, label, kind, "missing-secret");
98
+ }
99
+ if (rejectedByLastCheck(record)) return unavailable(id, label, kind, record.check.status);
100
+ let helper;
101
+ try {
102
+ helper = buildApiKeyHelper(deps.nodePath, keyPath);
103
+ } catch {
104
+ return unavailable(id, label, kind, "missing-secret");
105
+ }
106
+ const model = binding.model ?? record.models?.[0];
107
+ return {
108
+ kind: "active",
109
+ id,
110
+ profile: { id, label, kind, status: "active", ...model ? { model } : {} },
111
+ env: buildApiModelEnv(record, model),
112
+ unset: ACCOUNT_STRIPPED_ENV_KEYS,
113
+ settings: { apiKeyHelper: helper },
114
+ ...model ? { pinnedModel: model } : {},
115
+ ...envKeyCopy ? { envKeyCopy } : {}
116
+ };
117
+ }
118
+ function applyAccountEnv(env, r) {
119
+ for (const key of r.unset) delete env[key];
120
+ Object.assign(env, r.env);
121
+ }
122
+ function overridingUserSettings(userSettings, kind) {
123
+ if (!userSettings || typeof userSettings !== "object") return [];
124
+ const s = userSettings;
125
+ const hits = [];
126
+ if (kind === "claude-subscription" && typeof s.apiKeyHelper === "string" && s.apiKeyHelper) hits.push("apiKeyHelper");
127
+ if (s.env && typeof s.env === "object") {
128
+ for (const key of ["ANTHROPIC_API_KEY", "ANTHROPIC_AUTH_TOKEN", "ANTHROPIC_BASE_URL", "CLAUDE_CODE_USE_BEDROCK", "CLAUDE_CODE_USE_VERTEX"]) {
129
+ if (typeof s.env[key] === "string") hits.push(`env.${key}`);
130
+ }
131
+ }
132
+ return hits;
133
+ }
134
+
135
+ exports.ACCOUNT_STRIPPED_ENV_KEYS = ACCOUNT_STRIPPED_ENV_KEYS;
136
+ exports.applyAccountEnv = applyAccountEnv;
137
+ exports.overridingUserSettings = overridingUserSettings;
138
+ exports.resolveClaudeAccount = resolveClaudeAccount;
@@ -2,21 +2,21 @@ 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-GcbI0eg2.mjs';
5
+ import { l as logger } from './logger-JV7-4Q_6.mjs';
6
6
  import { p as pinSmallFastModel, a as applyPromptCacheTtlDefault, e as ensureLocalProxyBypass } from './promptCacheTtl-Ce0TVbrx.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-D0q8eyjy.mjs';
9
+ import { c as claudeCheckSession, s as systemPrompt } from './systemPrompt-aRqBmkpw.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-ECqXu34R.mjs';
15
+ import './configuration-ThKBP_zY.mjs';
16
16
  import 'node:os';
17
- import './package-BsUHyqWe.mjs';
17
+ import './package-Bw3H6VLn.mjs';
18
18
  import 'node:fs/promises';
19
- import './index-Bq8NKSCF.mjs';
19
+ import './index-D1YnIih6.mjs';
20
20
  import 'zod';
21
21
  import '@paralleldrive/cuid2';
22
22
  import './trimIdent-BAjmv_TG.mjs';