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
package/dist/lib.d.cts CHANGED
@@ -199,6 +199,134 @@ declare const sessionStreamFrameSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
199
199
  t: z.ZodLiteral<"turn-end">;
200
200
  }, z.core.$strip>], "t">;
201
201
  type SessionStreamFrame = z.infer<typeof sessionStreamFrameSchema>;
202
+ declare const AgentProfileSummarySchema: z$1.ZodObject<{
203
+ id: z$1.ZodString;
204
+ label: z$1.ZodString;
205
+ agent: z$1.ZodString;
206
+ kind: z$1.ZodString;
207
+ status: z$1.ZodString;
208
+ statusDetail: z$1.ZodOptional<z$1.ZodString>;
209
+ checkedAt: z$1.ZodOptional<z$1.ZodNumber>;
210
+ createdAt: z$1.ZodOptional<z$1.ZodNumber>;
211
+ expiresAt: z$1.ZodOptional<z$1.ZodNumber>;
212
+ baseUrl: z$1.ZodOptional<z$1.ZodString>;
213
+ models: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
214
+ keySource: z$1.ZodOptional<z$1.ZodString>;
215
+ keyRef: z$1.ZodOptional<z$1.ZodString>;
216
+ legacy: z$1.ZodOptional<z$1.ZodBoolean>;
217
+ provider: z$1.ZodOptional<z$1.ZodString>;
218
+ email: z$1.ZodOptional<z$1.ZodString>;
219
+ planType: z$1.ZodOptional<z$1.ZodString>;
220
+ }, z$1.core.$strip>;
221
+ type AgentProfileSummary = z$1.infer<typeof AgentProfileSummarySchema>;
222
+ /** `daemonState.agentProfiles` — also the result of `agent-profile-list`. */
223
+ declare const AgentProfilesStateSchema: z$1.ZodObject<{
224
+ daemonPid: z$1.ZodNumber;
225
+ updatedAt: z$1.ZodNumber;
226
+ accounts: z$1.ZodArray<z$1.ZodObject<{
227
+ id: z$1.ZodString;
228
+ label: z$1.ZodString;
229
+ agent: z$1.ZodString;
230
+ kind: z$1.ZodString;
231
+ status: z$1.ZodString;
232
+ statusDetail: z$1.ZodOptional<z$1.ZodString>;
233
+ checkedAt: z$1.ZodOptional<z$1.ZodNumber>;
234
+ createdAt: z$1.ZodOptional<z$1.ZodNumber>;
235
+ expiresAt: z$1.ZodOptional<z$1.ZodNumber>;
236
+ baseUrl: z$1.ZodOptional<z$1.ZodString>;
237
+ models: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
238
+ keySource: z$1.ZodOptional<z$1.ZodString>;
239
+ keyRef: z$1.ZodOptional<z$1.ZodString>;
240
+ legacy: z$1.ZodOptional<z$1.ZodBoolean>;
241
+ provider: z$1.ZodOptional<z$1.ZodString>;
242
+ email: z$1.ZodOptional<z$1.ZodString>;
243
+ planType: z$1.ZodOptional<z$1.ZodString>;
244
+ }, z$1.core.$strip>>;
245
+ defaults: z$1.ZodRecord<z$1.ZodString, z$1.ZodString>;
246
+ kinds: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
247
+ codexProviders: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
248
+ id: z$1.ZodString;
249
+ name: z$1.ZodOptional<z$1.ZodString>;
250
+ baseUrl: z$1.ZodOptional<z$1.ZodString>;
251
+ envKey: z$1.ZodOptional<z$1.ZodString>;
252
+ }, z$1.core.$strip>>>;
253
+ features: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
254
+ }, z$1.core.$strip>;
255
+ type AgentProfilesState = z$1.infer<typeof AgentProfilesStateSchema>;
256
+ /**
257
+ * `metadata.agentProfile`, written by the wrapper with what it ACTUALLY runs on:
258
+ * absent — older wrapper (no capability): show nothing / 「本机登录」 guess
259
+ * null — machine login (本机登录)
260
+ * { status: 'active' } — running on this account
261
+ * { status: 'unavailable' } — bound, but the account cannot be used
262
+ * (reason: 'missing' | 'missing-secret' | 'expired' | 'invalid');
263
+ * the wrapper refuses turns until the user re-logs in or switches
264
+ */
265
+ declare const SessionAgentProfileSchema: z$1.ZodObject<{
266
+ id: z$1.ZodString;
267
+ label: z$1.ZodString;
268
+ kind: z$1.ZodString;
269
+ status: z$1.ZodString;
270
+ reason: z$1.ZodOptional<z$1.ZodString>;
271
+ model: z$1.ZodOptional<z$1.ZodString>;
272
+ }, z$1.core.$strip>;
273
+ type SessionAgentProfile = z$1.infer<typeof SessionAgentProfileSchema>;
274
+ /**
275
+ * paste-code (Claude): waiting-code → (submit) → exchanging → succeeded | failed.
276
+ * device-code (Codex): waiting-code (the user enters `userCode` at `url`; nothing
277
+ * to submit) → succeeded | failed.
278
+ * canceled / expired (Claude 10 min without a code, Codex 15 min) are terminal too.
279
+ */
280
+ declare const AgentProfileLoginStatusSchema: z$1.ZodObject<{
281
+ loginId: z$1.ZodString;
282
+ state: z$1.ZodString;
283
+ flow: z$1.ZodOptional<z$1.ZodString>;
284
+ userCode: z$1.ZodOptional<z$1.ZodString>;
285
+ url: z$1.ZodOptional<z$1.ZodString>;
286
+ expiresAt: z$1.ZodOptional<z$1.ZodNumber>;
287
+ account: z$1.ZodOptional<z$1.ZodObject<{
288
+ id: z$1.ZodString;
289
+ label: z$1.ZodString;
290
+ agent: z$1.ZodString;
291
+ kind: z$1.ZodString;
292
+ status: z$1.ZodString;
293
+ statusDetail: z$1.ZodOptional<z$1.ZodString>;
294
+ checkedAt: z$1.ZodOptional<z$1.ZodNumber>;
295
+ createdAt: z$1.ZodOptional<z$1.ZodNumber>;
296
+ expiresAt: z$1.ZodOptional<z$1.ZodNumber>;
297
+ baseUrl: z$1.ZodOptional<z$1.ZodString>;
298
+ models: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
299
+ keySource: z$1.ZodOptional<z$1.ZodString>;
300
+ keyRef: z$1.ZodOptional<z$1.ZodString>;
301
+ legacy: z$1.ZodOptional<z$1.ZodBoolean>;
302
+ provider: z$1.ZodOptional<z$1.ZodString>;
303
+ email: z$1.ZodOptional<z$1.ZodString>;
304
+ planType: z$1.ZodOptional<z$1.ZodString>;
305
+ }, z$1.core.$strip>>;
306
+ error: z$1.ZodOptional<z$1.ZodString>;
307
+ }, z$1.core.$strip>;
308
+ type AgentProfileLoginStatus = z$1.infer<typeof AgentProfileLoginStatusSchema>;
309
+ type AgentProfileBindResult = {
310
+ /**
311
+ * false only with `rolledBack` — the restart failed while the session's
312
+ * wrapper kept running on the previous credential, so the previous binding
313
+ * was restored (never "bound to the new account, running the old one").
314
+ */
315
+ bound: boolean;
316
+ /** The new binding was undone (see `bound`); the session runs on its previous account. */
317
+ rolledBack?: true;
318
+ /**
319
+ * 'done' — restarted in place on the new account
320
+ * 'skipped' — restart:false, or the session is not running here (applies on next start)
321
+ * 'pending' — still restarting after the 22 s budget (relay RPCs cap at 30 s); the Web
322
+ * shows 「重启中」 and treats `metadata.agentProfile` turning into the new
323
+ * account as done
324
+ * 'failed' — the session is not running any more: binding kept, applies on next
325
+ * start; or (`rolledBack`) it still runs: the previous binding is restored
326
+ */
327
+ restart: string;
328
+ error?: string;
329
+ };
202
330
 
203
331
  /**
204
332
  * Runtime context occupancy, never cumulative billing. null after compaction is unknown.
@@ -596,6 +724,38 @@ declare const DaemonStateSchema: z$1.ZodObject<{
596
724
  }, z$1.core.$strip>;
597
725
  checkedAt: z$1.ZodNumber;
598
726
  }, z$1.core.$strip>>;
727
+ agentProfiles: z$1.ZodOptional<z$1.ZodObject<{
728
+ daemonPid: z$1.ZodNumber;
729
+ updatedAt: z$1.ZodNumber;
730
+ accounts: z$1.ZodArray<z$1.ZodObject<{
731
+ id: z$1.ZodString;
732
+ label: z$1.ZodString;
733
+ agent: z$1.ZodString;
734
+ kind: z$1.ZodString;
735
+ status: z$1.ZodString;
736
+ statusDetail: z$1.ZodOptional<z$1.ZodString>;
737
+ checkedAt: z$1.ZodOptional<z$1.ZodNumber>;
738
+ createdAt: z$1.ZodOptional<z$1.ZodNumber>;
739
+ expiresAt: z$1.ZodOptional<z$1.ZodNumber>;
740
+ baseUrl: z$1.ZodOptional<z$1.ZodString>;
741
+ models: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
742
+ keySource: z$1.ZodOptional<z$1.ZodString>;
743
+ keyRef: z$1.ZodOptional<z$1.ZodString>;
744
+ legacy: z$1.ZodOptional<z$1.ZodBoolean>;
745
+ provider: z$1.ZodOptional<z$1.ZodString>;
746
+ email: z$1.ZodOptional<z$1.ZodString>;
747
+ planType: z$1.ZodOptional<z$1.ZodString>;
748
+ }, z$1.core.$strip>>;
749
+ defaults: z$1.ZodRecord<z$1.ZodString, z$1.ZodString>;
750
+ kinds: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
751
+ codexProviders: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
752
+ id: z$1.ZodString;
753
+ name: z$1.ZodOptional<z$1.ZodString>;
754
+ baseUrl: z$1.ZodOptional<z$1.ZodString>;
755
+ envKey: z$1.ZodOptional<z$1.ZodString>;
756
+ }, z$1.core.$strip>>>;
757
+ features: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
758
+ }, z$1.core.$strip>>;
599
759
  rateLimits: z$1.ZodOptional<z$1.ZodObject<{
600
760
  v: z$1.ZodLiteral<1>;
601
761
  updatedAt: z$1.ZodNumber;
@@ -750,6 +910,11 @@ type Metadata = {
750
910
  * null = nothing chosen yet; absent = older wrapper. See happy-wire runIntent.ts.
751
911
  */
752
912
  modelIntent?: string | null;
913
+ /**
914
+ * B-850a: the account this wrapper actually runs on (agentProfiles.ts).
915
+ * null = machine login; absent = wrapper without `agent-profile-v1`.
916
+ */
917
+ agentProfile?: SessionAgentProfile | null;
753
918
  effortIntent?: string | null;
754
919
  operatingModes?: Array<{
755
920
  code: string;
@@ -1645,6 +1810,11 @@ interface SpawnSessionOptions {
1645
1810
  agent?: SpawnAgent;
1646
1811
  environmentVariables?: Record<string, string>;
1647
1812
  token?: string;
1813
+ /**
1814
+ * B-850a: account for a new Claude session. undefined = the machine's
1815
+ * default account (none = machine login); null = machine login.
1816
+ */
1817
+ agentProfileId?: string | null;
1648
1818
  /**
1649
1819
  * If set, the daemon spawns the agent with `--resume <id>` so the new
1650
1820
  * Happy session continues from an existing Claude conversation file.
@@ -1863,6 +2033,179 @@ declare class ModelConfigService {
1863
2033
  }): Promise<ModelConfigApplyResult>;
1864
2034
  }
1865
2035
 
2036
+ /**
2037
+ * B-850a: remote Claude subscription login = `claude setup-token` in a pty on
2038
+ * the machine. Its Ink UI only renders in a TTY (FEASIBILITY L2).
2039
+ *
2040
+ * start → spawn, wait for the authorize URL (the user picks the org there)
2041
+ * submit → write the pasted code + Enter; the PKCE verifier never leaves
2042
+ * this process, so the code alone cannot be redeemed elsewhere
2043
+ * done → `sk-ant-oat01-…` appears in the output → caller stores it 0600
2044
+ *
2045
+ * The token is matched in the pty output and handed to `onToken`; it is never
2046
+ * logged and never part of a status object.
2047
+ */
2048
+
2049
+ type PtyLike = {
2050
+ onData: (cb: (data: string) => void) => void;
2051
+ onExit: (cb: (e: {
2052
+ exitCode: number;
2053
+ }) => void) => void;
2054
+ write: (data: string) => void;
2055
+ kill: () => void;
2056
+ };
2057
+ type SpawnPty = (env: Record<string, string>) => PtyLike;
2058
+
2059
+ type AccountKey = {
2060
+ source: 'file';
2061
+ path: string;
2062
+ } | {
2063
+ source: 'env';
2064
+ name: string;
2065
+ } | {
2066
+ source: 'stored';
2067
+ };
2068
+ type AccountCheck = {
2069
+ status: string;
2070
+ at: number;
2071
+ detail?: string;
2072
+ };
2073
+ type AccountAgent = 'claude' | 'codex';
2074
+ type AccountKind = 'claude-subscription' | 'claude-api' | 'codex-chatgpt' | 'codex-provider';
2075
+ type AccountRecord = {
2076
+ label: string;
2077
+ agent: AccountAgent;
2078
+ kind: AccountKind;
2079
+ createdAt: number;
2080
+ /** claude-api, codex-provider (overrides the config.toml provider's base_url) */
2081
+ baseUrl?: string;
2082
+ models?: string[];
2083
+ /** B-794b: model id → real context window. */
2084
+ contextWindows?: Record<string, number>;
2085
+ /** API kinds: where the key lives. claude-subscription always uses the stored secret. */
2086
+ key?: AccountKey;
2087
+ /** codex-provider: the `[model_providers.<id>]` of ~/.codex/config.toml it is based on. */
2088
+ provider?: string;
2089
+ /** codex-provider with an own baseUrl: Codex wire API (default responses). */
2090
+ wireApi?: 'responses' | 'chat';
2091
+ /** codex-chatgpt: from `account/read` after sign-in. */
2092
+ email?: string;
2093
+ planType?: string;
2094
+ /** claude-subscription: setup-token expiry (1 year after login). */
2095
+ expiresAt?: number;
2096
+ check?: AccountCheck;
2097
+ /** Set on entries synthesized from providers.json — never written to accounts.json. */
2098
+ legacy?: true;
2099
+ };
2100
+
2101
+ type CodexRpc = {
2102
+ request: (method: string, params: unknown, timeoutMs?: number) => Promise<any>;
2103
+ onNotification: (cb: (method: string, params: any) => void) => void;
2104
+ onExit: (cb: (code: number | null) => void) => void;
2105
+ close: () => void;
2106
+ };
2107
+ type SpawnCodexRpc = (codexHome: string, env: Record<string, string>) => CodexRpc;
2108
+
2109
+ /** `stillRunning`: the restart failed and the session's old wrapper is alive (on the old credential). */
2110
+ type RestartOutcome = {
2111
+ ok: true;
2112
+ } | {
2113
+ ok: false;
2114
+ notRunning?: boolean;
2115
+ stillRunning?: boolean;
2116
+ error: string;
2117
+ };
2118
+ type AccountServiceDeps = {
2119
+ home: string;
2120
+ env?: Record<string, string | undefined>;
2121
+ now?: () => number;
2122
+ daemonPid?: number;
2123
+ spawnPty?: SpawnPty;
2124
+ /** B-850b: `codex app-server` for ChatGPT sign-in / checks (test seam). */
2125
+ spawnCodexRpc?: SpawnCodexRpc;
2126
+ restartSession?: (sessionId: string) => Promise<RestartOutcome>;
2127
+ /** Called after every write so the daemon can republish its state. */
2128
+ onChanged?: () => void;
2129
+ /** B-850b: the agent a session runs (from its tracked flavor); unknown → no check. */
2130
+ sessionAgent?: (sessionId: string) => string | null | undefined;
2131
+ /** Test seam for the 1-token checks. */
2132
+ check?: (record: AccountRecord, secret: string) => Promise<AccountCheck>;
2133
+ };
2134
+ declare class AccountService {
2135
+ private readonly deps;
2136
+ private readonly home;
2137
+ private readonly env;
2138
+ private readonly now;
2139
+ private logins;
2140
+ private codexLogins;
2141
+ /** loginId → account to (re)write when its token arrives. */
2142
+ private readonly loginTargets;
2143
+ constructor(deps: AccountServiceDeps);
2144
+ state(): AgentProfilesState;
2145
+ private summary;
2146
+ private changed;
2147
+ private editable;
2148
+ add(params: unknown): Promise<AgentProfileSummary>;
2149
+ rename(accountId: unknown, label: unknown): AgentProfileSummary;
2150
+ /**
2151
+ * `force` with bound sessions: the credential is gone, so each of those
2152
+ * sessions restarts in place right away and comes back `unavailable`
2153
+ * (refusing turns, Q3) instead of running on the deleted credential until
2154
+ * its next start. Restarts run in parallel within the bind budget; one
2155
+ * still going reports 'pending'.
2156
+ */
2157
+ remove(accountId: unknown, force: unknown): Promise<{
2158
+ removed: true;
2159
+ sessions: string[];
2160
+ restarts?: Record<string, string>;
2161
+ }>;
2162
+ /** 'done' | 'skipped' (not running here) | 'pending' (still going after the budget) | 'failed' */
2163
+ private restartWithinBudget;
2164
+ setDefault(agent: unknown, accountId: unknown): AgentProfilesState;
2165
+ private readSecretFor;
2166
+ test(accountId: unknown): Promise<AgentProfileSummary>;
2167
+ private checkCodexProvider;
2168
+ private loginManager;
2169
+ /** Also the terminal path (`very-happy account login`). */
2170
+ storeSubscriptionToken(token: string, target: {
2171
+ accountId?: string;
2172
+ label?: string;
2173
+ }): AgentProfileSummary;
2174
+ loginStart(params: unknown): Promise<AgentProfileLoginStatus>;
2175
+ private codexLoginManager;
2176
+ /** loginId → the account a Codex sign-in writes. */
2177
+ private readonly codexLoginTargets;
2178
+ private codexLoginStart;
2179
+ /** A finished ChatGPT sign-in → the account record (new) or its refreshed status (re-login). */
2180
+ storeChatgptAccount(target: {
2181
+ accountId: string;
2182
+ label?: string;
2183
+ isNew: boolean;
2184
+ }, info: {
2185
+ email?: string;
2186
+ planType?: string;
2187
+ }): AgentProfileSummary;
2188
+ private loginOp;
2189
+ loginSubmit(params: unknown): AgentProfileLoginStatus;
2190
+ loginStatus(loginId: unknown): AgentProfileLoginStatus;
2191
+ loginCancel(loginId: unknown): AgentProfileLoginStatus;
2192
+ dispose(): void;
2193
+ /** B-850d2: waits until finished Codex sign-ins are cleaned up (their app-server gone, a canceled new account's overlay removed). */
2194
+ settleLogins(): Promise<void>;
2195
+ /** Validates and writes a session binding (no restart). */
2196
+ writeBinding(sessionId: string, accountId: string | null, model?: string): void;
2197
+ bind(params: unknown): Promise<AgentProfileBindResult>;
2198
+ /** B-850d: the account a session is bound to (null = machine login, also when unbound). */
2199
+ sessionAccount(sessionId: string): string | null;
2200
+ /**
2201
+ * Spawn-time choice → the account a NEW session starts on.
2202
+ * undefined → the machine default for this agent (none = machine login)
2203
+ * null → machine login
2204
+ * id → that account; must exist and be usable (Q3: never fall back)
2205
+ */
2206
+ resolveSpawnAccount(agent: string, requested: unknown): string | null;
2207
+ }
2208
+
1866
2209
  /** Agent-specific visible-screen adapters. Unknown is deliberately not idle. */
1867
2210
  type CodingAgentKind = 'claude' | 'codex' | 'pi';
1868
2211
 
@@ -2001,6 +2344,8 @@ declare class ApiMachineClient {
2001
2344
  private cliUpdateState;
2002
2345
  private cliUpdatePushChain;
2003
2346
  private claudeAuthState;
2347
+ /** B-850a: source of `daemonState.agentProfiles` (null = capability off). */
2348
+ private agentProfileService;
2004
2349
  /** B-587: the machine's hibernation threshold, published as a capability. */
2005
2350
  private agentHibernationIdleMs;
2006
2351
  /** B-852: auto-restart setting + per-session status (null until the daemon installs it). */
@@ -2118,6 +2463,15 @@ declare class ApiMachineClient {
2118
2463
  }>;
2119
2464
  setStore: (store: 'auto' | 'file') => Promise<ClaudeAuthState>;
2120
2465
  }): void;
2466
+ /**
2467
+ * B-850a: `agent-profile-*` RPCs + `daemonState.agentProfiles` (spec
2468
+ * 2026-11-session-accounts). Call before connect(): the connect snapshot
2469
+ * carries the list, so its presence with `daemonPid === pid` IS the
2470
+ * capability.
2471
+ */
2472
+ setAgentProfileService(service: AccountService): void;
2473
+ /** B-850a: republish the account list (after an RPC / CLI edit / expiry tick). */
2474
+ publishAgentProfiles(): Promise<void>;
2121
2475
  /** B-688 machine RPCs `model-config-*` (modules/modelConfig/modelConfigRpc.ts). */
2122
2476
  setModelConfigService(service: ModelConfigService): void;
2123
2477
  /**