very-happy-cli 0.2.192 → 0.2.194

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 (210) hide show
  1. package/dist/{AcpBackend-CGHTDJd9.mjs → AcpBackend-C3Kx0QJb.mjs} +3 -3
  2. package/dist/{AcpBackend-BQO4ShOy.cjs → AcpBackend-DJzsue14.cjs} +3 -3
  3. package/dist/{AcpSessionManager-LlUMmcpB.cjs → AcpSessionManager-Bc3iafB1.cjs} +2 -2
  4. package/dist/{AcpSessionManager-G0xD6Jbq.mjs → AcpSessionManager-SteuoqMY.mjs} +2 -2
  5. package/dist/{BasePermissionHandler-BmTIg376.mjs → BasePermissionHandler-D2pNcAXn.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-N6Ip3tFt.cjs → BasePermissionHandler-DKzNFVCh.cjs} +1 -1
  7. package/dist/{account-DtaouikP.cjs → account-ByVjlvFj.cjs} +84 -27
  8. package/dist/{account-CCVT-HO_.mjs → account-DC2YyU24.mjs} +84 -27
  9. package/dist/{accountService-Dd9uqde2.mjs → accountService-Cd7bnkfd.mjs} +369 -19
  10. package/dist/{accountService-Bddy0zwL.cjs → accountService-CuUSJDhP.cjs} +369 -19
  11. package/dist/{acpSessionResume-BWEUxNtC.mjs → acpSessionResume-B6VClxKQ.mjs} +1 -1
  12. package/dist/{acpSessionResume-BnHDk5eD.cjs → acpSessionResume-DHHgbNnk.cjs} +1 -1
  13. package/dist/{agentHome-B0VnjkZW.mjs → agentHome-9caXwo7k.mjs} +4 -4
  14. package/dist/{agentHome-CqQ29YY7.cjs → agentHome-Bov1aHYS.cjs} +4 -4
  15. package/dist/{api-_LeBScjg.mjs → api-aE60mNjs.mjs} +10 -10
  16. package/dist/{api-hMDsC6Wg.cjs → api-wYwQCJml.cjs} +10 -10
  17. package/dist/{apiMachine-CgRldeJ6.mjs → apiMachine-CvNB38Xg.mjs} +36 -19
  18. package/dist/{apiMachine-CqW2m6Zr.cjs → apiMachine-DwaqfM9Q.cjs} +36 -19
  19. package/dist/{attachmentContent-CyptLIfq.mjs → attachmentContent-C2ymY_-w.mjs} +2 -2
  20. package/dist/{attachmentContent-BEeT2J5n.cjs → attachmentContent-DB8ZsxGE.cjs} +2 -2
  21. package/dist/{auth-CFQikywl.mjs → auth-BYtmGgE1.mjs} +8 -8
  22. package/dist/{auth-CA1OClsW.cjs → auth-Bce0Zk3q.cjs} +8 -8
  23. package/dist/{auth-DL8_J9vu.mjs → auth-CWO6cQ4G.mjs} +5 -5
  24. package/dist/{auth-C9NvNHhL.cjs → auth-boIcb7iq.cjs} +5 -5
  25. package/dist/{auto-uQOxlxLp.cjs → auto-AaggdihK.cjs} +24 -22
  26. package/dist/{auto-CKI05w1D.mjs → auto-B-kopWQx.mjs} +24 -22
  27. package/dist/{bootstrap-DaZ0Np7X.mjs → bootstrap-CiWwfHB2.mjs} +2 -2
  28. package/dist/{bootstrap-DsZGc69k.cjs → bootstrap-kywZ0tvD.cjs} +2 -2
  29. package/dist/{browser-BUIaSHK2.mjs → browser-CFfZM3yg.mjs} +1 -1
  30. package/dist/{browser-Ft0ASDm7.cjs → browser-Do2MFdq6.cjs} +1 -1
  31. package/dist/{claudeAccountEnv-ON24i0qv.mjs → claudeAccountEnv-BL1pR_37.mjs} +2 -1
  32. package/dist/{claudeAccountEnv-BOBpJ3k8.cjs → claudeAccountEnv-CEX_EMZr.cjs} +2 -1
  33. package/dist/{claudeLocal-B1ZVtryl.mjs → claudeLocal-B47NjZfB.mjs} +5 -5
  34. package/dist/{claudeLocal-BMf9t4Fa.cjs → claudeLocal-DLd8ogcH.cjs} +5 -5
  35. package/dist/{claudeLocalLauncher-Bp8bqF4y.mjs → claudeLocalLauncher-5DDuHpCD.mjs} +10 -10
  36. package/dist/{claudeLocalLauncher-C8TeJcfF.cjs → claudeLocalLauncher-D_UTQ4o_.cjs} +10 -10
  37. package/dist/{claudeSessionFork-YiktY55n.cjs → claudeSessionFork-4g6-Sk3Q.cjs} +104 -38
  38. package/dist/{claudeSessionFork-8AA47z8Y.mjs → claudeSessionFork-BrJTncNL.mjs} +105 -40
  39. package/dist/{client-Crh8_cNx.cjs → client-BIg2LPVx.cjs} +2 -2
  40. package/dist/{client-CFHZfh9x.cjs → client-BfDga3xi.cjs} +4 -4
  41. package/dist/{client-Bm4oKvW7.mjs → client-Cbxr9VUE.mjs} +4 -2
  42. package/dist/{client-D8XROyZc.cjs → client-CsfPUxLy.cjs} +4 -2
  43. package/dist/{client-BmPaBnDK.mjs → client-DS5JEsHs.mjs} +4 -4
  44. package/dist/{client-Cxlp_D4I.mjs → client-OjYRPhZs.mjs} +2 -2
  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-q8GHQhyC.cjs → codexAppServerClient-Bj5vN7sb.cjs} +18 -7
  50. package/dist/{codexAppServerClient-BWJbLCQn.mjs → codexAppServerClient-HKAm8f_D.mjs} +18 -7
  51. package/dist/{codexCommand-BfXfRQr4.mjs → codexCommand-655pR6CR.mjs} +188 -58
  52. package/dist/{codexCommand-BgpGg-Zy.cjs → codexCommand-DtbDjHZp.cjs} +187 -57
  53. package/dist/{codexTermination-CVUF0X75.cjs → codexTermination-CX_FHKT5.cjs} +1 -1
  54. package/dist/{codexTermination-s9fd1gkA.mjs → codexTermination-DxLR-bb5.mjs} +1 -1
  55. package/dist/{codexThreadFork-5kwoKjMu.cjs → codexThreadFork-C6ZmcT2z.cjs} +22 -1
  56. package/dist/{codexThreadFork-DobPd19R.mjs → codexThreadFork-CVzAqELg.mjs} +22 -2
  57. package/dist/{config-BF8XgLyc.mjs → config-CIvXVGlP.mjs} +3 -3
  58. package/dist/{config-BAjyTyYp.cjs → config-Cv-A-Bw0.cjs} +3 -3
  59. package/dist/{configuration-CXEVKAyF.cjs → configuration-2Pbg3a0H.cjs} +1 -1
  60. package/dist/{configuration-IhRiLDVe.mjs → configuration-rTcdHkhE.mjs} +1 -1
  61. package/dist/{connect-LZh1gr08.mjs → connect-B9Bl68PF.mjs} +13 -13
  62. package/dist/{connect-rCS56arw.cjs → connect-BAYNAE8A.cjs} +13 -13
  63. package/dist/{context-DO6F5YwH.mjs → context-C7QarZMk.mjs} +1 -1
  64. package/dist/{context-3_S_mWz9.cjs → context-CLTyu_tQ.cjs} +1 -1
  65. package/dist/{controlClient-8ILulwjc.mjs → controlClient-BIdGnYBo.mjs} +3 -3
  66. package/dist/{controlClient-j7p5p3_7.cjs → controlClient-CIqHL07h.cjs} +3 -3
  67. package/dist/{createSessionMetadata-DwdD_uVo.cjs → createSessionMetadata-BHjzRzPc.cjs} +2 -2
  68. package/dist/{createSessionMetadata-oyaTZm1b.mjs → createSessionMetadata-PrN-dT7K.mjs} +2 -2
  69. package/dist/{daemonAccounts-BCjDgoNt.cjs → daemonAccounts-CpGDY_4k.cjs} +4 -1
  70. package/dist/{daemonAccounts-BJgt6IJe.mjs → daemonAccounts-DwPwKxvv.mjs} +5 -2
  71. package/dist/{defaultPermissionMode-BFShzF55.cjs → defaultPermissionMode-BakXiqRr.cjs} +1 -1
  72. package/dist/{defaultPermissionMode-Lt3PUCwY.mjs → defaultPermissionMode-DF5AfeBb.mjs} +1 -1
  73. package/dist/{deterministicJson-Dfp-7wUZ.mjs → deterministicJson-DFwJ57jR.mjs} +13 -13
  74. package/dist/{deterministicJson-DUN0v3St.cjs → deterministicJson-ZBFn1jtS.cjs} +13 -13
  75. package/dist/{doctor-B_UwMcVT.mjs → doctor-CFYpAXvt.mjs} +7 -7
  76. package/dist/{doctor-FgUYTbAT.cjs → doctor-yyM-zii7.cjs} +7 -7
  77. package/dist/{downloadTarget-C0d6jRx-.mjs → downloadTarget-CVPBZMnY.mjs} +6 -6
  78. package/dist/{downloadTarget-BrrQEDxg.cjs → downloadTarget-DlmqPQp9.cjs} +6 -6
  79. package/dist/{ensureDaemonRunning-KUMFfIil.mjs → ensureDaemonRunning-B6Y-CMWe.mjs} +5 -5
  80. package/dist/{ensureDaemonRunning-Cq4FYI5Q.cjs → ensureDaemonRunning-D2ny0yon.cjs} +5 -5
  81. package/dist/{handleResumeCommand-Cl9GIL5F.cjs → handleResumeCommand-D-mGugcu.cjs} +5 -5
  82. package/dist/{handleResumeCommand-BGhVo3QH.mjs → handleResumeCommand-DlrDcV5B.mjs} +5 -5
  83. package/dist/{index-CQ_hLLCj.cjs → index-2Fcq3AGX.cjs} +3 -3
  84. package/dist/{index-CRipkiqo.cjs → index-5c33fqLQ.cjs} +4 -4
  85. package/dist/{index-JQDyJ3Li.mjs → index-BJsenPFp.mjs} +3 -3
  86. package/dist/{index-BzAYnYct.cjs → index-BUFrKZeQ.cjs} +198 -108
  87. package/dist/{index-D8ODb0_U.cjs → index-BWvmUCQF.cjs} +42 -42
  88. package/dist/{index-v5EmjT8l.mjs → index-Bi3dVJ0S.mjs} +4 -4
  89. package/dist/{index-CZaLMmPC.cjs → index-CPkSLWP_.cjs} +4 -4
  90. package/dist/{index-DYD3GM1m.mjs → index-D1YnIih6.mjs} +195 -109
  91. package/dist/{index-BjXjMhGY.mjs → index-DEN6vfEY.mjs} +4 -4
  92. package/dist/{index-Ca1Tt96A.mjs → index-DuDD9khO.mjs} +43 -43
  93. package/dist/index.cjs +2 -2
  94. package/dist/index.mjs +2 -2
  95. package/dist/{install-ClUA9tbC.cjs → install-BOA4nEbm.cjs} +3 -3
  96. package/dist/{install-D6EHRtAN.mjs → install-BVYL-wSO.mjs} +3 -3
  97. package/dist/lib.cjs +12 -12
  98. package/dist/lib.d.cts +97 -25
  99. package/dist/lib.d.mts +97 -25
  100. package/dist/lib.mjs +12 -12
  101. package/dist/{lidState-DqoN7zH4.cjs → lidState-DYeb7Wud.cjs} +1 -1
  102. package/dist/{lidState-CZOXXdzv.mjs → lidState-zy20u7T3.mjs} +1 -1
  103. package/dist/{localHappyAgentAuth-YHxDZ4x4.mjs → localHappyAgentAuth-CBsX08VJ.mjs} +1 -1
  104. package/dist/{localHappyAgentAuth-BnGCpHRX.cjs → localHappyAgentAuth-CScN2McN.cjs} +1 -1
  105. package/dist/{logger-8su64lqR.cjs → logger-CepF8C5Z.cjs} +2 -2
  106. package/dist/{logger-Fd_rNvgd.mjs → logger-SGCwRIV5.mjs} +2 -2
  107. package/dist/{machineMetadata-1HIIC7Bc.mjs → machineMetadata-ClJfd7ay.mjs} +3 -3
  108. package/dist/{machineMetadata-DYXt3p6u.cjs → machineMetadata-ObK4hjF0.cjs} +3 -3
  109. package/dist/{main-BI6GIzUL.mjs → main-C7ZcZVBY.mjs} +47 -47
  110. package/dist/{main-C_GrcYkn.cjs → main-mhXOpUV7.cjs} +47 -47
  111. package/dist/{mcp-XGoxywno.mjs → mcp-BuCpkYTY.mjs} +18 -18
  112. package/dist/{mcp-BycIv9oQ.cjs → mcp-Zz7m0j8A.cjs} +18 -18
  113. package/dist/{mirrorProtocol-DXT3rv7T.mjs → mirrorProtocol-B0H9UTBM.mjs} +3 -3
  114. package/dist/{mirrorProtocol-DVnB8EO8.cjs → mirrorProtocol-IhICxf0K.cjs} +3 -3
  115. package/dist/{package-iuLlSiSF.cjs → package-C7WgesIw.cjs} +7 -7
  116. package/dist/{package-6KkRAops.mjs → package-Q_ELj5DL.mjs} +7 -7
  117. package/dist/{panels-B5Di2zb2.mjs → panels-Cm69UXgE.mjs} +5 -5
  118. package/dist/{panels-0C89q0Tu.cjs → panels-yyxpwZnk.cjs} +5 -5
  119. package/dist/{peerTools-CANTX_mG.cjs → peerTools-BcZAbqBL.cjs} +5 -5
  120. package/dist/{peerTools-CKJ-IDM4.mjs → peerTools-DUg9RduG.mjs} +5 -5
  121. package/dist/{persistence-B4ttN-fR.cjs → persistence-D0gNvqXe.cjs} +2 -2
  122. package/dist/{persistence-DWcHe035.mjs → persistence-mr4Y484W.mjs} +2 -2
  123. package/dist/{piRunnerArgs-Bl5GpBoN.mjs → piRunnerArgs-CGjpl4iF.mjs} +1 -1
  124. package/dist/{piRunnerArgs-BOkfxyak.cjs → piRunnerArgs-DK_DDkYW.cjs} +1 -1
  125. package/dist/{piRuntime-DzrIiZU8.cjs → piRuntime-CtZRNOEb.cjs} +1 -1
  126. package/dist/{piRuntime-BhwxzdQf.mjs → piRuntime-HUA19wG8.mjs} +1 -1
  127. package/dist/{piTerminal-DnA2CbGr.mjs → piTerminal-Bgy1W9mA.mjs} +20 -20
  128. package/dist/{piTerminal-BdS7ol7v.cjs → piTerminal-D9OPouek.cjs} +20 -20
  129. package/dist/{pushNotifications-BqFoLye2.cjs → pushNotifications-CH0XVPQe.cjs} +3 -3
  130. package/dist/{pushNotifications-DkQ0yvFs.mjs → pushNotifications-DjEl8G0a.mjs} +3 -3
  131. package/dist/{query-BQ4br3yn.cjs → query-Df3WhSA0.cjs} +1 -1
  132. package/dist/{query-BRJYSkb1.mjs → query-DmIo5OXf.mjs} +1 -1
  133. package/dist/{rateLimitReporter-BRbYkmuP.mjs → rateLimitReporter-B_PZClib.mjs} +3 -3
  134. package/dist/{rateLimitReporter-DK5SQuCc.cjs → rateLimitReporter-M_IKRRS7.cjs} +3 -3
  135. package/dist/{rateLimitWindows-DBfiuYeg.cjs → rateLimitWindows-B9PERFm1.cjs} +1 -1
  136. package/dist/{rateLimitWindows-Da5AR-4u.mjs → rateLimitWindows-a2yE3kCv.mjs} +1 -1
  137. package/dist/{registerCommonHandlers-yQ7Ru-l0.mjs → registerCommonHandlers-CND00Dpj.mjs} +2 -2
  138. package/dist/{registerCommonHandlers-m6pxxf2J.cjs → registerCommonHandlers-D4uXC0he.cjs} +2 -2
  139. package/dist/{registerKillSessionHandler-BDNpi7YO.mjs → registerKillSessionHandler-CwyHwm_n.mjs} +6 -6
  140. package/dist/{registerKillSessionHandler-BAOIa_Fs.cjs → registerKillSessionHandler-DQKsD9CW.cjs} +6 -6
  141. package/dist/{remoteSessionClient-iJMXRN_D.cjs → remoteSessionClient-DOWgca08.cjs} +5 -5
  142. package/dist/{remoteSessionClient-CZ7aaNgj.mjs → remoteSessionClient-mIr_9OL_.mjs} +5 -5
  143. package/dist/{reportProgressTool-DpFs7pSe.cjs → reportProgressTool-BLw2_Ohi.cjs} +3 -3
  144. package/dist/{reportProgressTool-DfQhPu0s.mjs → reportProgressTool-DTKlUlHv.mjs} +3 -3
  145. package/dist/{run-p-xp1_HY.cjs → run-1V6DLzTY.cjs} +178 -847
  146. package/dist/{run-CwN28mcj.mjs → run-bfxXYL5N.mjs} +176 -845
  147. package/dist/{runClaude-DRKtAGTm.mjs → runClaude-BgvDhl2p.mjs} +25 -25
  148. package/dist/{runClaude-D6U1Z575.cjs → runClaude-DuFgZZwO.cjs} +25 -25
  149. package/dist/{runClaudeDeps-BheVcIlD.mjs → runClaudeDeps-CX7GtH7O.mjs} +46 -46
  150. package/dist/{runClaudeDeps-Dkofokgb.cjs → runClaudeDeps-DeVinBmE.cjs} +41 -41
  151. package/dist/{runGemini-owbvhFbi.mjs → runGemini-Cd27u-7R.mjs} +33 -33
  152. package/dist/{runGemini-C8q3YCc0.cjs → runGemini-DiYSk3s1.cjs} +33 -33
  153. package/dist/{runOpenClaw-Dky3-mjO.mjs → runOpenClaw-CWkkfRSo.mjs} +18 -18
  154. package/dist/{runOpenClaw-DGeN66-t.cjs → runOpenClaw-DyQnBzpy.cjs} +18 -18
  155. package/dist/{sandbox-D2CPyoCA.cjs → sandbox-BAXXYewR.cjs} +4 -4
  156. package/dist/{sandbox-sq_wy9Gl.mjs → sandbox-C35zDrkc.mjs} +4 -4
  157. package/dist/selfCheck-DKMF0Dyu.mjs +88 -0
  158. package/dist/{selfCheck-BgLvQKSt.cjs → selfCheck-R71q-x7u.cjs} +39 -39
  159. package/dist/{send-Cd10YhXh.cjs → send-3Wa9th3D.cjs} +8 -8
  160. package/dist/{send-K9vg-8t-.mjs → send-DiSaR5Bk.mjs} +8 -8
  161. package/dist/{server-DRrV64r0.cjs → server-BJu2bFBy.cjs} +6 -6
  162. package/dist/{server-De4W1zuK.mjs → server-BxMJxaE6.mjs} +4 -4
  163. package/dist/{sessionLock-BDtSzzKS.cjs → sessionLock-BJ1ngLgm.cjs} +3 -3
  164. package/dist/{sessionLock-Dl6i7IgA.mjs → sessionLock-dbi4JPhP.mjs} +3 -3
  165. package/dist/{sessionOps-DvnEH4PL.cjs → sessionOps-BUlpeaUe.cjs} +50 -8
  166. package/dist/{sessionOps-gU88-W9F.mjs → sessionOps-C9wRmCBg.mjs} +51 -9
  167. package/dist/{sessionProvider-CKcIo7KO.mjs → sessionProvider-BEHfI5gs.mjs} +11 -9
  168. package/dist/{sessionProvider-CbSZeZrl.cjs → sessionProvider-DYD6JepE.cjs} +11 -9
  169. package/dist/{sessionScanner-7RtcCeyD.cjs → sessionScanner-BwbjEoSf.cjs} +3 -3
  170. package/dist/{sessionScanner-DR32uSby.mjs → sessionScanner-CFITViIZ.mjs} +3 -3
  171. package/dist/{sessions-BvuMjgvJ.cjs → sessions-C-wBd0fN.cjs} +10 -10
  172. package/dist/{sessions-DTt2Eguk.mjs → sessions-wOcO2X-k.mjs} +10 -10
  173. package/dist/{setupOfflineReconnection-DduOsw6p.cjs → setupOfflineReconnection-Bd6XsWhA.cjs} +2 -2
  174. package/dist/{setupOfflineReconnection-BGnvhRfb.mjs → setupOfflineReconnection-BrljmbqX.mjs} +2 -2
  175. package/dist/{spawn-CL3cUc7b.mjs → spawn-BPioepNz.mjs} +66 -22
  176. package/dist/{spawn-DMB6rRPA.cjs → spawn-Crprnq9Z.cjs} +66 -22
  177. package/dist/{spawnAgents-CClb7buD.cjs → spawnAgents-B9olJ8xn.cjs} +1 -1
  178. package/dist/{spawnAgents-CRMfOJhh.mjs → spawnAgents-I29H9nO8.mjs} +1 -1
  179. package/dist/{spawnHappyCLI-Cj_6IICe.mjs → spawnHappyCLI-BA1bTIiO.mjs} +1 -1
  180. package/dist/{spawnHappyCLI-DJdhX_Qx.cjs → spawnHappyCLI-C0XAWy8V.cjs} +1 -1
  181. package/dist/{startFileWatcher-DikVa8kg.mjs → startFileWatcher-COCEjNT8.mjs} +1 -1
  182. package/dist/{startFileWatcher-LnOmVW6H.cjs → startFileWatcher-Ca5izs24.cjs} +1 -1
  183. package/dist/{startupSessionCreate-CDdaLaMq.mjs → startupSessionCreate-BnEPBxsJ.mjs} +3 -3
  184. package/dist/{startupSessionCreate-B3ND-917.cjs → startupSessionCreate-Cmg1gkKS.cjs} +3 -3
  185. package/dist/{store-DV__wCvP.cjs → store-CkNa6oj4.cjs} +46 -9
  186. package/dist/{store--XN-7MS0.mjs → store-Vej_738f.mjs} +46 -10
  187. package/dist/{streamRelay-DFdOaLOn.cjs → streamRelay-C0G1HOOd.cjs} +1 -1
  188. package/dist/{streamRelay-sABnxEXq.mjs → streamRelay-C5U-C4GS.mjs} +1 -1
  189. package/dist/{sync-_2lsZ1U2.cjs → sync-BfrnSdL1.cjs} +1 -1
  190. package/dist/{sync-JoEZKRo8.mjs → sync-DVcNkv8e.mjs} +1 -1
  191. package/dist/{systemPrompt-Zq4HyrZ5.mjs → systemPrompt-BxZebU75.mjs} +2 -2
  192. package/dist/{systemPrompt-CJEvNCuW.cjs → systemPrompt-Os5ca7pu.cjs} +2 -2
  193. package/dist/{teams-BNZafnrT.cjs → teams--pv0QFMA.cjs} +7 -7
  194. package/dist/{teams-qz4LqKJ2.mjs → teams-CNB3DE_n.mjs} +7 -7
  195. package/dist/{template-LgvBbOna.cjs → template-B9pLEP8v.cjs} +2 -2
  196. package/dist/{template-CJ8BWSsc.mjs → template-CL9EvQLQ.mjs} +2 -2
  197. package/dist/{time-bzmet4s5.mjs → time-0Ru4clBD.mjs} +1 -1
  198. package/dist/{time-CaUlWSNJ.cjs → time-Da5GIiCa.cjs} +1 -1
  199. package/dist/{titleGenerator-BuIIu_JP.cjs → titleGenerator-9xIXHA5K.cjs} +3 -3
  200. package/dist/{titleGenerator-CbTtJ_1D.mjs → titleGenerator-CaCzpYyA.mjs} +2 -2
  201. package/dist/{todo-DIrVF_Ak.mjs → todo-CZXHl2Lg.mjs} +6 -6
  202. package/dist/{todo-CQ_BTf9C.cjs → todo-DUY_J3l_.cjs} +6 -6
  203. package/dist/{tools-cLOjBvPn.mjs → tools-DqA2Jt2R.mjs} +3 -2
  204. package/dist/{tools-BnmmFZji.cjs → tools-hPD2Hvei.cjs} +3 -2
  205. package/dist/{uninstall-C5OuW6dE.mjs → uninstall-CjMzELYw.mjs} +3 -3
  206. package/dist/{uninstall-uEEGKB84.cjs → uninstall-rTvdpRLt.cjs} +3 -3
  207. package/dist/{wrapperAccount-DXlD3bsO.mjs → wrapperAccount-BkufO_9g.mjs} +5 -4
  208. package/dist/{wrapperAccount-DzoGqS2b.cjs → wrapperAccount-D2A4DuZy.cjs} +6 -3
  209. package/package.json +7 -7
  210. package/dist/selfCheck-vkfrgQ7X.mjs +0 -88
@@ -1,6 +1,7 @@
1
1
  import { readFileSync, existsSync, mkdirSync, chmodSync, writeFileSync, renameSync, rmSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
3
  import { join, dirname } from 'node:path';
4
+ import { t as AGENT_PROFILE_KINDS } from './index-D1YnIih6.mjs';
4
5
 
5
6
  function providersPath(happyHomeDir) {
6
7
  return join(happyHomeDir, "providers.json");
@@ -48,6 +49,15 @@ function parseSessionProvidersFile(raw) {
48
49
  return out;
49
50
  }
50
51
 
52
+ const KIND_AGENT = {
53
+ "claude-subscription": "claude",
54
+ "claude-api": "claude",
55
+ "codex-chatgpt": "codex",
56
+ "codex-provider": "codex"
57
+ };
58
+ function isApiKind(kind) {
59
+ return kind === "claude-api" || kind === "codex-provider";
60
+ }
51
61
  const SPAWN_ACCOUNT_ENV = "VH_AGENT_PROFILE_ID";
52
62
  const SUBSCRIPTION_TOKEN_TTL_MS = 365 * 24 * 60 * 60 * 1e3;
53
63
  const ACCOUNT_ID_PATTERN = /^[a-z0-9][a-z0-9-]{0,47}$/;
@@ -58,6 +68,10 @@ function accountSecretPath(home, id) {
58
68
  if (!ACCOUNT_ID_PATTERN.test(id)) throw new Error(`invalid account id "${id}"`);
59
69
  return join(home, "accounts", id, "secret");
60
70
  }
71
+ function accountCodexHomePath(home, id) {
72
+ if (!ACCOUNT_ID_PATTERN.test(id)) throw new Error(`invalid account id "${id}"`);
73
+ return join(home, "accounts", id, "codex-home");
74
+ }
61
75
  function sessionAccountsPath(home) {
62
76
  return join(home, "session-accounts.json");
63
77
  }
@@ -95,14 +109,26 @@ function parseAccountsFile(raw) {
95
109
  for (const [id, value] of Object.entries(src)) {
96
110
  if (!ACCOUNT_ID_PATTERN.test(id) || !value || typeof value !== "object") continue;
97
111
  const a = value;
98
- if (a.agent !== "claude" || a.kind !== "claude-subscription" && a.kind !== "claude-api") continue;
112
+ const kind = a.kind;
113
+ if (typeof a.kind !== "string" || !(a.kind in KIND_AGENT) || a.agent !== KIND_AGENT[kind]) continue;
99
114
  const label = typeof a.label === "string" && a.label.trim() ? a.label.trim() : id;
100
- const rec = { label, agent: "claude", kind: a.kind, createdAt: typeof a.createdAt === "number" ? a.createdAt : 0 };
101
- if (a.kind === "claude-api") {
102
- if (typeof a.baseUrl !== "string" || !/^https?:\/\//.test(a.baseUrl)) continue;
115
+ const rec = { label, agent: KIND_AGENT[kind], kind, createdAt: typeof a.createdAt === "number" ? a.createdAt : 0 };
116
+ const baseUrl = typeof a.baseUrl === "string" && /^https?:\/\//.test(a.baseUrl) ? a.baseUrl.replace(/\/+$/, "") : void 0;
117
+ if (kind === "codex-provider") {
118
+ const provider = typeof a.provider === "string" && /^[A-Za-z0-9_-]{1,64}$/.test(a.provider) ? a.provider : void 0;
119
+ if (!provider && !baseUrl) continue;
120
+ if (provider) rec.provider = provider;
121
+ if (a.wireApi === "responses" || a.wireApi === "chat") rec.wireApi = a.wireApi;
122
+ }
123
+ if (kind === "codex-chatgpt") {
124
+ if (typeof a.email === "string" && a.email) rec.email = a.email;
125
+ if (typeof a.planType === "string" && a.planType) rec.planType = a.planType;
126
+ }
127
+ if (isApiKind(kind)) {
128
+ if (kind === "claude-api" && !baseUrl) continue;
103
129
  const key = parseKey(a.key);
104
130
  if (!key) continue;
105
- rec.baseUrl = a.baseUrl.replace(/\/+$/, "");
131
+ if (baseUrl) rec.baseUrl = baseUrl;
106
132
  rec.key = key;
107
133
  if (Array.isArray(a.models)) rec.models = a.models.filter((m) => typeof m === "string" && m.length > 0);
108
134
  if (a.contextWindows && typeof a.contextWindows === "object") {
@@ -206,15 +232,22 @@ function writeAccountSecret(home, id, secret) {
206
232
  function removeAccountSecret(home, id) {
207
233
  rmSync(dirname(accountSecretPath(home, id)), { recursive: true, force: true });
208
234
  }
235
+ const KIND_ID_BASE = {
236
+ "claude-subscription": "claude-sub",
237
+ "claude-api": "claude-api",
238
+ "codex-chatgpt": "chatgpt",
239
+ "codex-provider": "codex-api"
240
+ };
209
241
  function newAccountId(label, kind, taken) {
210
242
  const used = new Set(taken);
211
243
  const ascii = /^[\x20-\x7e]*$/.test(label);
212
244
  const slug = ascii ? label.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 40) : "";
213
- const base = slug && /^[a-z0-9]/.test(slug) ? slug : kind === "claude-subscription" ? "claude-sub" : "claude-api";
245
+ const base = slug && /^[a-z0-9]/.test(slug) ? slug : KIND_ID_BASE[kind];
214
246
  if (!used.has(base)) return base;
215
247
  for (let n = 2; ; n++) if (!used.has(`${base}-${n}`)) return `${base}-${n}`;
216
248
  }
217
249
  function secretPresent(home, id, a, probe) {
250
+ if (a.kind === "codex-chatgpt") return probe.fileReadable(join(accountCodexHomePath(home, id), "auth.json"));
218
251
  if (a.kind === "claude-subscription" || a.key?.source === "stored") return probe.fileReadable(accountSecretPath(home, id));
219
252
  if (a.key?.source === "file") return probe.fileReadable(expandHome(a.key.path));
220
253
  if (a.key?.source === "env") return !!probe.env[a.key.name]?.trim();
@@ -228,7 +261,7 @@ function accountStatus(home, id, a, probe, now) {
228
261
  }
229
262
  function summarizeAccount(home, id, a, probe, now) {
230
263
  const { status, detail } = accountStatus(home, id, a, probe, now);
231
- const keySource = a.kind === "claude-subscription" ? "stored" : a.key?.source;
264
+ const keySource = a.kind === "claude-subscription" || a.kind === "codex-chatgpt" ? "stored" : a.key?.source;
232
265
  const keyRef = a.key?.source === "file" ? a.key.path : a.key?.source === "env" ? a.key.name : void 0;
233
266
  return {
234
267
  id,
@@ -244,7 +277,10 @@ function summarizeAccount(home, id, a, probe, now) {
244
277
  ...a.models ? { models: a.models } : {},
245
278
  ...keySource ? { keySource } : {},
246
279
  ...keyRef ? { keyRef } : {},
247
- ...a.legacy ? { legacy: true } : {}
280
+ ...a.legacy ? { legacy: true } : {},
281
+ ...a.provider ? { provider: a.provider } : {},
282
+ ...a.email ? { email: a.email } : {},
283
+ ...a.planType ? { planType: a.planType } : {}
248
284
  };
249
285
  }
250
286
  function defaultSecretProbe(env = process.env) {
@@ -263,7 +299,7 @@ function buildAgentProfilesState(home, file, probe, now, daemonPid) {
263
299
  const accounts = Object.entries(file.accounts).map(([id, a]) => summarizeAccount(home, id, a, probe, now)).sort((x, y) => (x.createdAt ?? 0) - (y.createdAt ?? 0) || x.id.localeCompare(y.id));
264
300
  const defaults = {};
265
301
  for (const [agent, id] of Object.entries(file.defaults)) if (file.accounts[id]) defaults[agent] = id;
266
- return { daemonPid, updatedAt: now, accounts, defaults };
302
+ return { daemonPid, updatedAt: now, accounts, defaults, kinds: [...AGENT_PROFILE_KINDS] };
267
303
  }
268
304
 
269
- export { SPAWN_ACCOUNT_ENV as S, readAccounts as a, accountSecretPath as b, readAccountsFileV2 as c, defaultSecretProbe as d, expandHome as e, writeAccountsFile as f, accountsPath as g, buildAgentProfilesState as h, writeAccountSecret as i, sessionsBoundTo as j, removeAccountSecret as k, SUBSCRIPTION_TOKEN_TTL_MS as l, readSessionBindingV2 as m, newAccountId as n, providersPath as p, readSessionBindings as r, summarizeAccount as s, writeSessionBinding as w };
305
+ export { SPAWN_ACCOUNT_ENV as S, readAccounts as a, accountSecretPath as b, readAccountsFileV2 as c, defaultSecretProbe as d, expandHome as e, writeAccountsFile as f, accountsPath as g, buildAgentProfilesState as h, writeAccountSecret as i, sessionsBoundTo as j, removeAccountSecret as k, accountCodexHomePath as l, SUBSCRIPTION_TOKEN_TTL_MS as m, newAccountId as n, readSessionBindingV2 as o, providersPath as p, readSessionBindings as r, summarizeAccount as s, writeSessionBinding as w };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BzAYnYct.cjs');
3
+ var index = require('./index-BUFrKZeQ.cjs');
4
4
 
5
5
  const STREAM_FLUSH_MS = 80;
6
6
  const PROGRESS_FLUSH_MS = 250;
@@ -1,4 +1,4 @@
1
- import { S as STREAM_DELTA_MAX_CHARS } from './index-DYD3GM1m.mjs';
1
+ import { S as STREAM_DELTA_MAX_CHARS } from './index-D1YnIih6.mjs';
2
2
 
3
3
  const STREAM_FLUSH_MS = 80;
4
4
  const PROGRESS_FLUSH_MS = 250;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var time = require('./time-CaUlWSNJ.cjs');
3
+ var time = require('./time-Da5GIiCa.cjs');
4
4
 
5
5
  class InvalidateSync {
6
6
  _invalidated = false;
@@ -1,4 +1,4 @@
1
- import { b as backoff } from './time-bzmet4s5.mjs';
1
+ import { b as backoff } from './time-0Ru4clBD.mjs';
2
2
 
3
3
  class InvalidateSync {
4
4
  _invalidated = false;
@@ -1,8 +1,8 @@
1
- import { l as logger } from './logger-Fd_rNvgd.mjs';
1
+ import { l as logger } from './logger-SGCwRIV5.mjs';
2
2
  import { existsSync, readFileSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
5
- import { y as BUILTIN_TODO_DISCOVERY } from './index-DYD3GM1m.mjs';
5
+ import { w as BUILTIN_TODO_DISCOVERY } from './index-D1YnIih6.mjs';
6
6
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
7
7
  import { homedir } from 'node:os';
8
8
  import { A as AGENT_GUIDANCE } from './agentGuidance-BDYt2Qy2.mjs';
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-8su64lqR.cjs');
3
+ var logger = require('./logger-CepF8C5Z.cjs');
4
4
  var node_fs = require('node:fs');
5
5
  var path$1 = require('node:path');
6
6
  var path = require('./path-B7zW-WwE.cjs');
7
- var index = require('./index-BzAYnYct.cjs');
7
+ var index = require('./index-BUFrKZeQ.cjs');
8
8
  var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
9
9
  var os = require('node:os');
10
10
  var agentGuidance = require('./agentGuidance-BtBx2xxE.cjs');
@@ -4,21 +4,21 @@ var os = require('node:os');
4
4
  var promises = require('node:fs/promises');
5
5
  var z = require('zod');
6
6
  var node_crypto = require('node:crypto');
7
- var client = require('./client-CFHZfh9x.cjs');
8
- var persistence = require('./persistence-B4ttN-fR.cjs');
7
+ var client = require('./client-BfDga3xi.cjs');
8
+ var persistence = require('./persistence-D0gNvqXe.cjs');
9
9
  var install = require('./install-BOHlqewf.cjs');
10
10
  require('node:child_process');
11
11
  require('node:util');
12
12
  require('node:path');
13
- require('./index-BzAYnYct.cjs');
13
+ require('./index-BUFrKZeQ.cjs');
14
14
  require('@paralleldrive/cuid2');
15
- require('./configuration-CXEVKAyF.cjs');
15
+ require('./configuration-2Pbg3a0H.cjs');
16
16
  require('node:fs');
17
- require('./package-iuLlSiSF.cjs');
18
- require('./context-3_S_mWz9.cjs');
17
+ require('./package-C7WgesIw.cjs');
18
+ require('./context-CLTyu_tQ.cjs');
19
19
  require('./authRelay-Dy1qU9td.cjs');
20
20
  require('tweetnacl');
21
- require('./logger-8su64lqR.cjs');
21
+ require('./logger-CepF8C5Z.cjs');
22
22
  require('chalk');
23
23
  require('./resources-BZ_Be0qM.cjs');
24
24
 
@@ -2,21 +2,21 @@ import { homedir } from 'node:os';
2
2
  import { readFile } from 'node:fs/promises';
3
3
  import { z } from 'zod';
4
4
  import { randomUUID } from 'node:crypto';
5
- import { t as teamRequest, c as createTeamsClient } from './client-BmPaBnDK.mjs';
6
- import { b as readCredentialsForConfiguredRelay } from './persistence-DWcHe035.mjs';
5
+ import { t as teamRequest, c as createTeamsClient } from './client-DS5JEsHs.mjs';
6
+ import { b as readCredentialsForConfiguredRelay } from './persistence-mr4Y484W.mjs';
7
7
  import { a as installTeamSkill, i as installAutomationSkill } from './install-B8O1JpJH.mjs';
8
8
  import 'node:child_process';
9
9
  import 'node:util';
10
10
  import 'node:path';
11
- import './index-DYD3GM1m.mjs';
11
+ import './index-D1YnIih6.mjs';
12
12
  import '@paralleldrive/cuid2';
13
- import './configuration-IhRiLDVe.mjs';
13
+ import './configuration-rTcdHkhE.mjs';
14
14
  import 'node:fs';
15
- import './package-6KkRAops.mjs';
16
- import './context-DO6F5YwH.mjs';
15
+ import './package-Q_ELj5DL.mjs';
16
+ import './context-C7QarZMk.mjs';
17
17
  import './authRelay-DhQhkBvX.mjs';
18
18
  import 'tweetnacl';
19
- import './logger-Fd_rNvgd.mjs';
19
+ import './logger-SGCwRIV5.mjs';
20
20
  import 'chalk';
21
21
  import './resources-CLP_MpK4.mjs';
22
22
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BzAYnYct.cjs');
3
+ var index = require('./index-BUFrKZeQ.cjs');
4
4
 
5
5
  function payloadJson(payload) {
6
6
  if (!payload) return void 0;
@@ -143,7 +143,7 @@ function describeTrigger(trigger) {
143
143
  }
144
144
  }
145
145
  function describeAction(action) {
146
- if (action.kind === "spawn") return `spawn ${action.agent} in ${action.directory}${action.sticky ? ` (sticky ${action.sticky.key})` : ""}`;
146
+ if (action.kind === "spawn") return `spawn ${action.agent} in ${action.directory}${action.sticky ? ` (sticky ${action.sticky.key})` : ""}${action.agentProfile !== void 0 ? ` \xB7 account ${action.agentProfile === null ? "machine login" : action.agentProfile.label ?? action.agentProfile.id}` : ""}`;
147
147
  if (action.kind === "send") return `send to session ${action.sessionId}`;
148
148
  return `script ${action.command.join(" ")}`;
149
149
  }
@@ -1,4 +1,4 @@
1
- import { h as AUTOMATION_ATTENTION_REASON_MAX_CHARS, j as AUTOMATION_SUMMARY_MAX_CHARS } from './index-DYD3GM1m.mjs';
1
+ import { h as AUTOMATION_ATTENTION_REASON_MAX_CHARS, j as AUTOMATION_SUMMARY_MAX_CHARS } from './index-D1YnIih6.mjs';
2
2
 
3
3
  function payloadJson(payload) {
4
4
  if (!payload) return void 0;
@@ -141,7 +141,7 @@ function describeTrigger(trigger) {
141
141
  }
142
142
  }
143
143
  function describeAction(action) {
144
- if (action.kind === "spawn") return `spawn ${action.agent} in ${action.directory}${action.sticky ? ` (sticky ${action.sticky.key})` : ""}`;
144
+ if (action.kind === "spawn") return `spawn ${action.agent} in ${action.directory}${action.sticky ? ` (sticky ${action.sticky.key})` : ""}${action.agentProfile !== void 0 ? ` \xB7 account ${action.agentProfile === null ? "machine login" : action.agentProfile.label ?? action.agentProfile.id}` : ""}`;
145
145
  if (action.kind === "send") return `send to session ${action.sessionId}`;
146
146
  return `script ${action.command.join(" ")}`;
147
147
  }
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-Fd_rNvgd.mjs';
1
+ import { l as logger } from './logger-SGCwRIV5.mjs';
2
2
 
3
3
  async function delay(ms) {
4
4
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-8su64lqR.cjs');
3
+ var logger = require('./logger-CepF8C5Z.cjs');
4
4
 
5
5
  async function delay(ms) {
6
6
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -5,16 +5,16 @@ var module$1 = require('node:module');
5
5
  var oneShotPrompts = require('./oneShotPrompts-CL0dip9C.cjs');
6
6
  var node_crypto = require('node:crypto');
7
7
  var path = require('node:path');
8
- var logger = require('./logger-8su64lqR.cjs');
8
+ var logger = require('./logger-CepF8C5Z.cjs');
9
9
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
10
- var wrapperAccount = require('./wrapperAccount-DzoGqS2b.cjs');
10
+ var wrapperAccount = require('./wrapperAccount-D2A4DuZy.cjs');
11
11
 
12
12
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
13
13
  const MAX_PROMPT_SAMPLE_CHARS = 500;
14
14
  const MAX_TITLE_CHARS = 60;
15
15
  const GENERATION_TIMEOUT_MS = 3e4;
16
16
  function loadClaudeVersionUtils() {
17
- const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('titleGenerator-BuIIu_JP.cjs', document.baseURI).href)));
17
+ const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('titleGenerator-9xIXHA5K.cjs', document.baseURI).href)));
18
18
  return require$1(path.resolve(path.join(projectPath.projectPath(), "scripts", "claude_version_utils.cjs")));
19
19
  }
20
20
  function resolveClaudeBinary(loadUtils = loadClaudeVersionUtils) {
@@ -3,9 +3,9 @@ import { createRequire } from 'node:module';
3
3
  import { T as TITLE_PROMPT_PREFIX } from './oneShotPrompts-DT4p6RNd.mjs';
4
4
  import { randomUUID } from 'node:crypto';
5
5
  import { resolve, join } from 'node:path';
6
- import { l as logger } from './logger-Fd_rNvgd.mjs';
6
+ import { l as logger } from './logger-SGCwRIV5.mjs';
7
7
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
8
- import { a as accountClaudeSettings } from './wrapperAccount-DXlD3bsO.mjs';
8
+ import { a as accountClaudeSettings } from './wrapperAccount-BkufO_9g.mjs';
9
9
 
10
10
  const MAX_PROMPT_SAMPLE_CHARS = 500;
11
11
  const MAX_TITLE_CHARS = 60;
@@ -1,18 +1,18 @@
1
- import { c as configuration } from './configuration-IhRiLDVe.mjs';
2
- import { q as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './index-DYD3GM1m.mjs';
3
- import { b as readCredentialsForConfiguredRelay } from './persistence-DWcHe035.mjs';
4
- import { r as readTeamScope, t as teamScopePath } from './context-DO6F5YwH.mjs';
1
+ import { c as configuration } from './configuration-rTcdHkhE.mjs';
2
+ import { q as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './index-D1YnIih6.mjs';
3
+ import { b as readCredentialsForConfiguredRelay } from './persistence-mr4Y484W.mjs';
4
+ import { r as readTeamScope, t as teamScopePath } from './context-C7QarZMk.mjs';
5
5
  import 'node:fs';
6
6
  import 'node:os';
7
7
  import 'node:path';
8
- import './package-6KkRAops.mjs';
8
+ import './package-Q_ELj5DL.mjs';
9
9
  import 'node:fs/promises';
10
10
  import 'zod';
11
11
  import '@paralleldrive/cuid2';
12
12
  import './authRelay-DhQhkBvX.mjs';
13
13
  import 'node:crypto';
14
14
  import 'tweetnacl';
15
- import './logger-Fd_rNvgd.mjs';
15
+ import './logger-SGCwRIV5.mjs';
16
16
  import 'chalk';
17
17
  import 'node:util';
18
18
 
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var configuration = require('./configuration-CXEVKAyF.cjs');
4
- var index = require('./index-BzAYnYct.cjs');
5
- var persistence = require('./persistence-B4ttN-fR.cjs');
6
- var context = require('./context-3_S_mWz9.cjs');
3
+ var configuration = require('./configuration-2Pbg3a0H.cjs');
4
+ var index = require('./index-BUFrKZeQ.cjs');
5
+ var persistence = require('./persistence-D0gNvqXe.cjs');
6
+ var context = require('./context-CLTyu_tQ.cjs');
7
7
  require('node:fs');
8
8
  require('node:os');
9
9
  require('node:path');
10
- require('./package-iuLlSiSF.cjs');
10
+ require('./package-C7WgesIw.cjs');
11
11
  require('node:fs/promises');
12
12
  require('zod');
13
13
  require('@paralleldrive/cuid2');
14
14
  require('./authRelay-Dy1qU9td.cjs');
15
15
  require('node:crypto');
16
16
  require('tweetnacl');
17
- require('./logger-8su64lqR.cjs');
17
+ require('./logger-CepF8C5Z.cjs');
18
18
  require('chalk');
19
19
  require('node:util');
20
20
 
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { c as createTeamsClient } from './client-BmPaBnDK.mjs';
2
+ import { c as createTeamsClient } from './client-DS5JEsHs.mjs';
3
3
 
4
4
  const CLOSED_GOAL_CHARS = 200;
5
5
  const closed = (task) => task.status === "done" || task.status === "cancelled";
@@ -119,7 +119,8 @@ function registerTeamsTools(server, sessionId, client = createTeamsClient(sessio
119
119
  botName: id.optional(),
120
120
  directory: z.string().min(1).optional(),
121
121
  assistant: z.enum(["claude", "codex", "pi-acp"]).optional(),
122
- model: z.string().trim().min(1).max(256).optional()
122
+ model: z.string().trim().min(1).max(256).optional(),
123
+ agentProfile: z.object({ id: z.string().min(1).max(64), label: z.string().min(1).max(200).optional() }).nullable().optional().describe("Account a member spawns on (id from `very-happy account list`; null = machine login; omit = team default). Unusable \u2192 the launch is refused, never the machine login.")
123
124
  });
124
125
  action("message", "Send a persistent task-related message. Delivery does not mean the model has read or acted on it.", { taskId: id, body: text, recipientBotId: id.optional() });
125
126
  action("submit", "Submit evidence for your current attempt and goal version. The owner still has to accept it.", { taskId: id, attemptId: id, goalVersion: z.number().int().positive(), result: text });
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var z = require('zod');
4
- var client = require('./client-CFHZfh9x.cjs');
4
+ var client = require('./client-BfDga3xi.cjs');
5
5
 
6
6
  const CLOSED_GOAL_CHARS = 200;
7
7
  const closed = (task) => task.status === "done" || task.status === "cancelled";
@@ -121,7 +121,8 @@ function registerTeamsTools(server, sessionId, client$1 = client.createTeamsClie
121
121
  botName: id.optional(),
122
122
  directory: z.z.string().min(1).optional(),
123
123
  assistant: z.z.enum(["claude", "codex", "pi-acp"]).optional(),
124
- model: z.z.string().trim().min(1).max(256).optional()
124
+ model: z.z.string().trim().min(1).max(256).optional(),
125
+ agentProfile: z.z.object({ id: z.z.string().min(1).max(64), label: z.z.string().min(1).max(200).optional() }).nullable().optional().describe("Account a member spawns on (id from `very-happy account list`; null = machine login; omit = team default). Unusable \u2192 the launch is refused, never the machine login.")
125
126
  });
126
127
  action("message", "Send a persistent task-related message. Delivery does not mean the model has read or acted on it.", { taskId: id, body: text, recipientBotId: id.optional() });
127
128
  action("submit", "Submit evidence for your current attempt and goal version. The owner still has to accept it.", { taskId: id, attemptId: id, goalVersion: z.z.number().int().positive(), result: text });
@@ -1,13 +1,13 @@
1
- import { l as logger } from './logger-Fd_rNvgd.mjs';
1
+ import { l as logger } from './logger-SGCwRIV5.mjs';
2
2
  import { existsSync, unlinkSync } from 'fs';
3
3
  import { execSync } from 'child_process';
4
4
  import 'chalk';
5
5
  import 'node:util';
6
- import './configuration-IhRiLDVe.mjs';
6
+ import './configuration-rTcdHkhE.mjs';
7
7
  import 'node:fs';
8
8
  import 'node:os';
9
9
  import 'node:path';
10
- import './package-6KkRAops.mjs';
10
+ import './package-Q_ELj5DL.mjs';
11
11
  import 'node:fs/promises';
12
12
 
13
13
  const PLIST_LABEL = "com.happy-cli.daemon";
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-8su64lqR.cjs');
3
+ var logger = require('./logger-CepF8C5Z.cjs');
4
4
  var require$$0 = require('fs');
5
5
  var child_process = require('child_process');
6
6
  require('chalk');
7
7
  require('node:util');
8
- require('./configuration-CXEVKAyF.cjs');
8
+ require('./configuration-2Pbg3a0H.cjs');
9
9
  require('node:fs');
10
10
  require('node:os');
11
11
  require('node:path');
12
- require('./package-iuLlSiSF.cjs');
12
+ require('./package-C7WgesIw.cjs');
13
13
  require('node:fs/promises');
14
14
 
15
15
  const PLIST_LABEL = "com.happy-cli.daemon";
@@ -1,8 +1,8 @@
1
1
  import { mkdirSync, writeFileSync, chmodSync, readFileSync, rmSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
3
  import { dirname, join } from 'node:path';
4
- import { r as resolveClaudeAccount, a as applyAccountEnv, o as overridingUserSettings } from './claudeAccountEnv-ON24i0qv.mjs';
5
- import { r as readSessionBindings, w as writeSessionBinding, d as defaultSecretProbe, a as readAccounts, c as readAccountsFileV2, f as writeAccountsFile } from './store--XN-7MS0.mjs';
4
+ import { r as resolveClaudeAccount, a as applyAccountEnv, o as overridingUserSettings } from './claudeAccountEnv-BL1pR_37.mjs';
5
+ import { r as readSessionBindings, w as writeSessionBinding, d as defaultSecretProbe, a as readAccounts, c as readAccountsFileV2, f as writeAccountsFile } from './store-Vej_738f.mjs';
6
6
 
7
7
  let current = null;
8
8
  let home = null;
@@ -15,7 +15,8 @@ function unavailableNotice(profile) {
15
15
  missing: "it no longer exists on this machine",
16
16
  "missing-secret": "its key / token is missing on this machine",
17
17
  expired: "its sign-in has expired \u2014 sign in again",
18
- invalid: "its key was rejected \u2014 fix the key"
18
+ invalid: "its key was rejected \u2014 fix the key",
19
+ "agent-mismatch": "it belongs to another agent (Claude / Codex)"
19
20
  };
20
21
  return `Account "${profile.label}" is unavailable: ${why[profile.reason ?? ""] ?? profile.reason ?? "unknown reason"}. This session will not fall back to the machine login; switch accounts or fix it, and the session restarts in place.`;
21
22
  }
@@ -103,4 +104,4 @@ function noteAccountAuthFailure(now = Date.now()) {
103
104
  return { label: current.id, status };
104
105
  }
105
106
 
106
- export { accountClaudeSettings as a, loadWrapperAccount as l, noteAccountAuthFailure as n };
107
+ export { accountClaudeSettings as a, loadWrapperAccount as l, noteAccountAuthFailure as n, shouldRecordSpawnAccount as s, unavailableNotice as u };
@@ -3,8 +3,8 @@
3
3
  var node_fs = require('node:fs');
4
4
  var os = require('node:os');
5
5
  var path = require('node:path');
6
- var claudeAccountEnv = require('./claudeAccountEnv-BOBpJ3k8.cjs');
7
- var store = require('./store-DV__wCvP.cjs');
6
+ var claudeAccountEnv = require('./claudeAccountEnv-CEX_EMZr.cjs');
7
+ var store = require('./store-CkNa6oj4.cjs');
8
8
 
9
9
  let current = null;
10
10
  let home = null;
@@ -17,7 +17,8 @@ function unavailableNotice(profile) {
17
17
  missing: "it no longer exists on this machine",
18
18
  "missing-secret": "its key / token is missing on this machine",
19
19
  expired: "its sign-in has expired \u2014 sign in again",
20
- invalid: "its key was rejected \u2014 fix the key"
20
+ invalid: "its key was rejected \u2014 fix the key",
21
+ "agent-mismatch": "it belongs to another agent (Claude / Codex)"
21
22
  };
22
23
  return `Account "${profile.label}" is unavailable: ${why[profile.reason ?? ""] ?? profile.reason ?? "unknown reason"}. This session will not fall back to the machine login; switch accounts or fix it, and the session restarts in place.`;
23
24
  }
@@ -108,3 +109,5 @@ function noteAccountAuthFailure(now = Date.now()) {
108
109
  exports.accountClaudeSettings = accountClaudeSettings;
109
110
  exports.loadWrapperAccount = loadWrapperAccount;
110
111
  exports.noteAccountAuthFailure = noteAccountAuthFailure;
112
+ exports.shouldRecordSpawnAccount = shouldRecordSpawnAccount;
113
+ exports.unavailableNotice = unavailableNotice;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "very-happy-cli",
3
- "version": "0.2.192",
3
+ "version": "0.2.194",
4
4
  "description": "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.",
5
5
  "author": "Kirill Dubovitskiy",
6
6
  "contributors": [
@@ -117,12 +117,12 @@
117
117
  "zod": "^4.6.7"
118
118
  },
119
119
  "optionalDependencies": {
120
- "very-happy-tools-arm64-darwin": "0.2.192",
121
- "very-happy-tools-x64-darwin": "0.2.192",
122
- "very-happy-tools-arm64-linux": "0.2.192",
123
- "very-happy-tools-x64-linux": "0.2.192",
124
- "very-happy-tools-arm64-win32": "0.2.192",
125
- "very-happy-tools-x64-win32": "0.2.192"
120
+ "very-happy-tools-arm64-darwin": "0.2.194",
121
+ "very-happy-tools-x64-darwin": "0.2.194",
122
+ "very-happy-tools-arm64-linux": "0.2.194",
123
+ "very-happy-tools-x64-linux": "0.2.194",
124
+ "very-happy-tools-arm64-win32": "0.2.194",
125
+ "very-happy-tools-x64-win32": "0.2.194"
126
126
  },
127
127
  "devDependencies": {
128
128
  "@slopus/happy-wire": "workspace:*",
@@ -1,88 +0,0 @@
1
- import { p as packageJson } from './package-6KkRAops.mjs';
2
-
3
- const LAZY_MODULES = [
4
- // Entry
5
- ["main", () => import('./main-BI6GIzUL.mjs')],
6
- ["selfCheck", () => Promise.resolve().then(function () { return selfCheck; })],
7
- // Subcommands (main.ts)
8
- ["api/api", () => import('./api-_LeBScjg.mjs').then(function (n) { return n.e; })],
9
- ["claude/claudeCliPath", () => import('./claudeCliPath-BqkaH2oR.mjs')],
10
- ["claude/runClaude", () => import('./runClaude-DRKtAGTm.mjs')],
11
- ["commands/agentHome", () => import('./agentHome-B0VnjkZW.mjs')],
12
- ["commands/auth", () => import('./auth-CFQikywl.mjs')],
13
- ["commands/auto", () => import('./auto-CKI05w1D.mjs')],
14
- ["commands/codexCommand", () => import('./codexCommand-BfXfRQr4.mjs')],
15
- ["commands/connect", () => import('./connect-LZh1gr08.mjs')],
16
- ["commands/installPiTools", () => import('./installPiTools-B_CdM5_2.mjs')],
17
- ["commands/installTerminalHooks", () => import('./installTerminalHooks-By7gBMEF.mjs')],
18
- ["commands/mcp", () => import('./mcp-XGoxywno.mjs')],
19
- ["commands/panels", () => import('./panels-B5Di2zb2.mjs')],
20
- ["commands/piTerminal", () => import('./piTerminal-DnA2CbGr.mjs')],
21
- ["commands/sandbox", () => import('./sandbox-sq_wy9Gl.mjs')],
22
- ["commands/send", () => import('./send-K9vg-8t-.mjs')],
23
- ["commands/server", () => import('./server-De4W1zuK.mjs')],
24
- ["commands/sessions", () => import('./sessions-DTt2Eguk.mjs')],
25
- ["commands/sessionProvider", () => import('./sessionProvider-CKcIo7KO.mjs')],
26
- ["commands/account", () => import('./account-CCVT-HO_.mjs')],
27
- ["agentProfiles/daemonAccounts", () => import('./daemonAccounts-BJgt6IJe.mjs')],
28
- ["commands/spawn", () => import('./spawn-CL3cUc7b.mjs')],
29
- ["commands/teams", () => import('./teams-qz4LqKJ2.mjs')],
30
- ["commands/todo", () => import('./todo-DIrVF_Ak.mjs')],
31
- ["daemon/doctor", () => import('./doctor-BPkYWSuq.mjs')],
32
- ["daemon/install", () => import('./install-D6EHRtAN.mjs')],
33
- ["daemon/run", () => import('./run-CwN28mcj.mjs')],
34
- ["daemon/uninstall", () => import('./uninstall-C5OuW6dE.mjs')],
35
- ["resume/handleResumeCommand", () => import('./handleResumeCommand-BGhVo3QH.mjs')],
36
- ["ui/doctor", () => import('./doctor-B_UwMcVT.mjs').then(function (n) { return n.d; })],
37
- ["agent/acp", () => import('./index-Ca1Tt96A.mjs')],
38
- ["gemini/runGemini", () => import('./runGemini-owbvhFbi.mjs')],
39
- ["gemini/utils/config", () => import('./config-BF8XgLyc.mjs')],
40
- ["openclaw/runOpenClaw", () => import('./runOpenClaw-Dky3-mjO.mjs')],
41
- ["persistence", () => import('./persistence-DWcHe035.mjs').then(function (n) { return n.G; })],
42
- // Deferred halves of the runners and clients
43
- ["api/apiMachine", () => import('./apiMachine-CgRldeJ6.mjs')],
44
- ["claude/runClaudeDeps", () => import('./runClaudeDeps-BheVcIlD.mjs')],
45
- ["claude/claudeLocal", () => import('./claudeLocal-B1ZVtryl.mjs')],
46
- ["claude/claudeLocalLauncher", () => import('./claudeLocalLauncher-Bp8bqF4y.mjs')],
47
- ["claude/sdk", () => import('./index-BjXjMhGY.mjs')],
48
- ["assistant/bootstrap", () => import('./bootstrap-DaZ0Np7X.mjs')],
49
- ["agentHome", () => import('./index-v5EmjT8l.mjs')],
50
- ["ui/ink/RemoteModeDisplay", () => import('./RemoteModeDisplay-D-HewyXg.mjs')],
51
- // External packages imported on demand
52
- ["expo-server-sdk", () => import('expo-server-sdk')],
53
- ["ink", () => import('ink')],
54
- ["react", () => import('react')]
55
- ];
56
-
57
- async function runSelfCheck(modules = LAZY_MODULES) {
58
- const failures = [];
59
- for (const [name, load] of modules) {
60
- try {
61
- await load();
62
- } catch (error) {
63
- failures.push({ name, error: error instanceof Error ? error.message : String(error) });
64
- }
65
- }
66
- return failures;
67
- }
68
- async function selfCheckMain(opts = {}) {
69
- const started = Date.now();
70
- const failures = await runSelfCheck();
71
- if (failures.length > 0) {
72
- for (const failure of failures) {
73
- console.error(`very-happy: failed to load ${failure.name}: ${failure.error}`);
74
- }
75
- return 1;
76
- }
77
- if (opts.verbose) console.log(`self-check: ${LAZY_MODULES.length} modules loaded in ${Date.now() - started}ms`);
78
- console.log(`very-happy version: ${packageJson.version}`);
79
- return 0;
80
- }
81
-
82
- var selfCheck = /*#__PURE__*/Object.freeze({
83
- __proto__: null,
84
- runSelfCheck: runSelfCheck,
85
- selfCheckMain: selfCheckMain
86
- });
87
-
88
- export { runSelfCheck, selfCheckMain };