@noxsoft/anima 5.1.2 → 6.5.0

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 (489) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +2 -2
  3. package/dist/{APEv2Parser-DV7AH14P.js → APEv2Parser-Dvsbp_2R.js} +3 -3
  4. package/dist/{AbstractID3Parser-C3RlCr-Y.js → AbstractID3Parser-IB9gxozg.js} +5 -5
  5. package/dist/{AiffParser-DaFyNU8n.js → AiffParser-R2IhrBzL.js} +4 -4
  6. package/dist/{AsfParser-CDCRfCXr.js → AsfParser-DJEueUMg.js} +4 -4
  7. package/dist/{DsdiffParser-BX31LICZ.js → DsdiffParser-DXLYn9tT.js} +4 -4
  8. package/dist/{DsfParser-C3JBjE-C.js → DsfParser-D2--NF0i.js} +5 -5
  9. package/dist/{FlacParser-DY4m-7v1.js → FlacParser-8cDAjrth.js} +5 -5
  10. package/dist/{ID3v1Parser-DL9AGlNt.js → ID3v1Parser-B494XuP9.js} +3 -3
  11. package/dist/{ID3v2Parser-Mr8o-5GJ.js → ID3v2Parser-DlxcNqv5.js} +4 -4
  12. package/dist/{ID3v2Token-DQqGh8AB.js → ID3v2Token-CSLSVrSQ.js} +2 -2
  13. package/dist/{MP4Parser-DkunlEqI.js → MP4Parser-COql2J-w.js} +6 -6
  14. package/dist/{MatroskaParser-IKjHx0h7.js → MatroskaParser-bNP5wC2F.js} +3 -3
  15. package/dist/{MpegParser-EecSeRWJ.js → MpegParser-C1gjfYqq.js} +4 -4
  16. package/dist/{MusepackParser-CkfsAeuE.js → MusepackParser-DBdYf7kV.js} +5 -5
  17. package/dist/{OggParser-z3QlSd8U.js → OggParser-CxajqbK3.js} +5 -5
  18. package/dist/{Util-DDVY6AaC.js → Util-BRZxoY1Q.js} +1 -1
  19. package/dist/{WavPackParser-PimUUBRx.js → WavPackParser-CtH9QFia.js} +4 -4
  20. package/dist/{WaveParser-B539YtoQ.js → WaveParser-yufLki1G.js} +5 -5
  21. package/dist/{accounts-CL0JV_xk.js → accounts-B_2nt5Cd.js} +2 -2
  22. package/dist/{accounts-CYEa4ttU.js → accounts-COxGcLGB.js} +1 -1
  23. package/dist/{accounts-Bj5MvaDs.js → accounts-DIES085e.js} +11 -11
  24. package/dist/{accounts-DZsqyow2.js → accounts-TUsfghIW.js} +38 -38
  25. package/dist/{acp-cli-ynoZZhYQ.js → acp-cli-CWgqDQQH.js} +6 -6
  26. package/dist/{acp-cli-BFAoKBvs.js → acp-cli-D0wfP8-l.js} +16 -16
  27. package/dist/{active-listener-BWPgtTZp.js → active-listener-BKtsWhsb.js} +4 -4
  28. package/dist/{active-listener-GJR3nLhX.js → active-listener-D2r8IO7g.js} +5 -5
  29. package/dist/{agent-DUAarfNl.js → agent-CnS0SRpT.js} +93 -236
  30. package/dist/{agent-CaaEZsXl.js → agent-VRQM14Xp.js} +98 -229
  31. package/dist/{agent-scope-C9CiVcmh.js → agent-scope-ByIGrCTT.js} +2 -2
  32. package/dist/{agent-scope-D3HZp64M.js → agent-scope-CXxC8FFX.js} +2 -2
  33. package/dist/{agent-scope-BZ8hjIt_.js → agent-scope-CxBzAozu.js} +3 -3
  34. package/dist/{agents-t54YcbvK.js → agents-CvMRplDx.js} +15 -13
  35. package/dist/{agents.config-J7iEgdW_.js → agents.config-BR5JLtud.js} +1 -1
  36. package/dist/{anthropic-direct-runner-B12V2Q5H.js → anthropic-direct-runner-BeYCnvZ8.js} +37 -15
  37. package/dist/{anthropic-direct-runner-CzQb7QkD.js → anthropic-direct-runner-C2Kwju-r.js} +29 -7
  38. package/dist/{audit-ByHmjh-G.js → audit-B05W5ckN.js} +23 -34
  39. package/dist/{audit-HJOpXfgY.js → audit-DDz7UOIx.js} +18 -15
  40. package/dist/{auth-DXrALxdm.js → auth-DsC5pZ_0.js} +2 -2
  41. package/dist/{prompts-CneQ6SeF.js → auth-choice-DY1saszS.js} +12 -107
  42. package/dist/{auth-choice-DPWnLV_w.js → auth-choice-Dc5TAJwT.js} +10 -9
  43. package/dist/{auth-health-DmrnGklu.js → auth-health-Cc8-vy8y.js} +1 -1
  44. package/dist/auth-health-Dhr8p2SD.js +149 -0
  45. package/dist/{auth-profiles-BF5x9Ej0.js → auth-profiles-Brxz2ojJ.js} +193 -42
  46. package/dist/{auth-profiles-DjCH4kWT.js → auth-profiles-C-LuhW6c.js} +195 -44
  47. package/dist/{auth-profiles-PJVsRqf4.js → auth-profiles-DKu7ZUzl.js} +189 -29
  48. package/dist/{auth-profiles-eZzmaeR3.js → auth-profiles-DtWUl1-k.js} +198 -38
  49. package/dist/{auth-store-CnRrUELz.js → auth-store-Bd0GoqEL.js} +13 -13
  50. package/dist/{auth-store-KnWGteIV.js → auth-store-BpYI9t_y.js} +3 -3
  51. package/dist/{auth-store-DjcQlyze.js → auth-store-Jvgz2_l1.js} +2 -2
  52. package/dist/{banner-D9JyV5SF.js → banner-DAMtSjUF.js} +1 -1
  53. package/dist/{bonjour-discovery-QsoaZ8Pr.js → bonjour-discovery-Co-b97Dz.js} +2 -2
  54. package/dist/build-info.json +3 -3
  55. package/dist/bundled/boot-md/handler.js +222 -151
  56. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  57. package/dist/bundled/command-logger/handler.js +1 -1
  58. package/dist/bundled/session-memory/handler.js +24 -24
  59. package/dist/{call-DHZ76BNg.js → call-B4lhqS6H.js} +3 -3
  60. package/dist/{call-DQjoz63V.js → call-CDPbPDAr.js} +4 -4
  61. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  62. package/dist/canvas-host/a2ui/a2ui.bundle.js +18967 -16484
  63. package/dist/{catalog-AZNRamJ4.js → catalog-CsXv59Tq.js} +2 -2
  64. package/dist/{channel-web-CQIbtfme.js → channel-web-B8mzTSaY.js} +15 -15
  65. package/dist/{channels-status-issues-DdjvFHx9.js → channels-status-issues-WkG3Tmxk.js} +4 -4
  66. package/dist/{chrome-HTuFjVWW.js → chrome-B8EnYGj1.js} +9 -9
  67. package/dist/{chrome-BNggURXT.js → chrome-BaU-H9m7.js} +3 -3
  68. package/dist/{chrome-Cfak4A3i.js → chrome-DLUBPBPz.js} +12 -12
  69. package/dist/{chunk-CyT-_QsQ.js → chunk-B4Kx-ocg.js} +11 -9
  70. package/dist/{chunk-Dffz_QIs.js → chunk-CFSle8n5.js} +1 -1
  71. package/dist/{chunk-D3vyM2EQ.js → chunk-Cy0Bj0F3.js} +1 -1
  72. package/dist/{chunk-DFqo_u5A.js → chunk-DJXDX69U.js} +11 -9
  73. package/dist/{clack-prompter-QbDK4ABC.js → clack-prompter-0JW5kry0.js} +3 -3
  74. package/dist/{clack-prompter-rXuqdPbx.js → clack-prompter-fZSmnHda.js} +5 -5
  75. package/dist/cli/daemon-cli.js +1 -1
  76. package/dist/{cli-kT9Mb3dT.js → cli-D8exVpuI.js} +30 -29
  77. package/dist/cli-hcHk5KuP.js +102 -0
  78. package/dist/{cli-utils-BdkJVXjy.js → cli-utils-D2X_bDLt.js} +9 -1
  79. package/dist/{cli-utils-DGnL8raH.js → cli-utils-DcDBK4C5.js} +9 -1
  80. package/dist/{client-D9E5Wwb_.js → client-BWkoTfOH.js} +3 -2
  81. package/dist/{client-DzIcZx4J.js → client-CfLiulzK.js} +2 -1
  82. package/dist/{command-registry-vEVxxxzI.js → command-registry-D3VhxpWx.js} +21 -12
  83. package/dist/{commands-NIY0IDXe.js → commands-DE8FNH0v.js} +92 -20
  84. package/dist/{commands-eY0Ao0wt.js → commands-Mekaw9WG.js} +92 -20
  85. package/dist/{common-C2wAYEWA.js → common-BCW6hLGI.js} +2 -2
  86. package/dist/{common-BzPvZcxT.js → common-Bf_TG87Y.js} +2 -2
  87. package/dist/{common-6Fcbzr42.js → common-DT_obM-k.js} +2 -2
  88. package/dist/{completion-cli-BBKG6buM.js → completion-cli-B3BqQJq9.js} +3 -3
  89. package/dist/{completion-cli-C84I5l8a.js → completion-cli-CepDzeW1.js} +2 -2
  90. package/dist/{config-Ofh9gKvs.js → config-BrVuTQ8R.js} +14 -2
  91. package/dist/{config-6FVC8hW0.js → config-CweTwOtr.js} +40 -28
  92. package/dist/{config-DqwH4y-D.js → config-DaD4FsAn.js} +19 -7
  93. package/dist/{config-D2kCn7yR.js → config-ZYN8tezd.js} +18 -6
  94. package/dist/{config-cli-CQzq5yWB.js → config-cli-3CaIxSKo.js} +4 -4
  95. package/dist/config-cli-B6Np85rk.js +15 -0
  96. package/dist/{config-guard-B1plY6aQ.js → config-guard-C4b2dksv.js} +2 -2
  97. package/dist/{config-guard-CYlpjNN7.js → config-guard-CWhoBtB3.js} +20 -20
  98. package/dist/{config-sync-CYX9Tzyr.js → config-sync-CCVp-tVX.js} +2 -2
  99. package/dist/{config-sync-CDUhjDom.js → config-sync-CMO_5lyl.js} +2 -2
  100. package/dist/{configure-G6h2Ppk0.js → configure-D882Bg7c.js} +39 -15
  101. package/dist/{configure-Bv6mqD0j.js → configure-D88dg6mE.js} +79 -77
  102. package/dist/{configure-DxQqSUJs.js → configure-xpjwedvJ.js} +50 -49
  103. package/dist/{configure-B-dfdPKX.js → configure-zXK6UZ51.js} +49 -24
  104. package/dist/{context-CpsnZLOp.js → context-B5X720Bs.js} +1 -1
  105. package/dist/{control-service-D1oxSXVg.js → control-service-3CI4vt1h.js} +2 -2
  106. package/dist/{control-service-CzAfyR4e.js → control-service-5YtMvm7D.js} +5 -5
  107. package/dist/control-ui/assets/index-Bwcvc7fq.css +1 -0
  108. package/dist/control-ui/assets/index-CBUvF5Mp.js +72 -0
  109. package/dist/control-ui/assets/index-CBUvF5Mp.js.map +1 -0
  110. package/dist/control-ui/assets/index-D7Bf6Say.js +3 -0
  111. package/dist/control-ui/assets/index-D7Bf6Say.js.map +1 -0
  112. package/dist/control-ui/assets/index-DVpMpG5G.js +2 -0
  113. package/dist/control-ui/assets/index-DVpMpG5G.js.map +1 -0
  114. package/dist/control-ui/assets/observers-CxfWf9RO.js +2 -0
  115. package/dist/control-ui/assets/observers-CxfWf9RO.js.map +1 -0
  116. package/dist/control-ui/assets/rrweb-plugin-console-record-sPdhR0i8.js +138 -0
  117. package/dist/control-ui/assets/rrweb-plugin-console-record-sPdhR0i8.js.map +1 -0
  118. package/dist/control-ui/assets/rrweb-record-CMVXB7aO.js +129 -0
  119. package/dist/control-ui/assets/rrweb-record-CMVXB7aO.js.map +1 -0
  120. package/dist/control-ui/index.html +2 -2
  121. package/dist/{cron-cli-C4qZZo4e.js → cron-cli-Cht6Itx6.js} +18 -18
  122. package/dist/{cron-cli-CSivg2i9.js → cron-cli-D9XrF-Gx.js} +8 -8
  123. package/dist/{daemon-cli-DfxT-pQ4.js → daemon-cli-9zrnYRjh.js} +8 -8
  124. package/dist/{daemon-cli-KMzjJH_D.js → daemon-cli-CrdPhSxr.js} +15 -15
  125. package/dist/daemon-cli.js +34 -6
  126. package/dist/{daemon-runtime-CIE27usH.js → daemon-runtime-BrUj88ZO.js} +2 -2
  127. package/dist/{daemon-runtime-BfgstLVI.js → daemon-runtime-DCqwraWR.js} +1 -1
  128. package/dist/{deliver-8r6UbXnC.js → deliver-B-dPbUIs.js} +18 -28
  129. package/dist/{deliver-ahx1N11n.js → deliver-BKzX3YoN.js} +7 -7
  130. package/dist/{deliver-DVt8TbK9.js → deliver-C1L5nO0K.js} +3 -3
  131. package/dist/{deliver-D2hQZ9X0.js → deliver-d-CaN0uL.js} +59 -69
  132. package/dist/deps-DyT32VfN.js +23 -0
  133. package/dist/{diagnostics-DXeDqA_-.js → diagnostics-Cu9pZAFn.js} +1 -1
  134. package/dist/{dispatcher-DpSnqIL0.js → dispatcher-BQQugU-7.js} +1 -1
  135. package/dist/{dispatcher-DzT6jltc.js → dispatcher-DzwzLQRk.js} +2 -2
  136. package/dist/{dns-cli-D9ka2fZD.js → dns-cli-C8KIX4P3.js} +12 -12
  137. package/dist/{dns-cli-D2Orvc8E.js → dns-cli-V2bo6vSt.js} +3 -3
  138. package/dist/{docs-cli-CKfzGqYM.js → docs-cli-Bt-YV3xs.js} +2 -2
  139. package/dist/{docs-cli-DWYXJd-j.js → docs-cli-D2cVJxjP.js} +7 -7
  140. package/dist/{doctor-vXt5qjNJ.js → doctor-DEnSKgHu.js} +21 -21
  141. package/dist/{doctor-DumyG85t.js → doctor-WpKCNZeO.js} +36 -181
  142. package/dist/{doctor-completion-lAyxyd7X.js → doctor-completion-CPff9UlF.js} +2 -2
  143. package/dist/{doctor-completion-C8JSWfqN.js → doctor-completion-CypXc1Uo.js} +2 -2
  144. package/dist/{doctor-config-flow-DA50eWp5.js → doctor-config-flow-Bgl0Cc20.js} +6 -6
  145. package/dist/{doctor-config-flow-BjfGQ1Br.js → doctor-config-flow-Dxy7RIm0.js} +4 -4
  146. package/dist/{engine-BVchKo5_.js → engine-DpbYPop7.js} +9 -9
  147. package/dist/{engine-CKqNpVwE.js → engine-zmn3SOYa.js} +10 -9
  148. package/dist/entry.js +19 -28
  149. package/dist/{env-DVJCc7dM.js → env-DlTia1B4.js} +1 -1
  150. package/dist/{exec-cazBMA02.js → exec-BylR5qWS.js} +1 -1
  151. package/dist/{exec-gKbUce2p.js → exec-C6tXfeqA.js} +1 -1
  152. package/dist/{exec-Bfd4ztFZ.js → exec-DUzVF5_D.js} +7 -7
  153. package/dist/{exec-approvals-cli-BPwW6GIK.js → exec-approvals-cli-CN2WeH7y.js} +20 -20
  154. package/dist/{exec-approvals-cli-6HndodnP.js → exec-approvals-cli-DYZVBnqS.js} +8 -8
  155. package/dist/extensionAPI.js +22 -22
  156. package/dist/format-BCAtE7cT.js +20 -0
  157. package/dist/{frontmatter-BP4GSt5L.js → frontmatter-Dsa7N963.js} +2 -2
  158. package/dist/{gateway-cli-CHhTweWb.js → gateway-cli-B_xsx5Nv.js} +104 -101
  159. package/dist/{gateway-cli-B60L2z4a.js → gateway-cli-D3VBOA_i.js} +69 -66
  160. package/dist/{gateway-rpc-CrSglZPE.js → gateway-rpc-Cj_h2sVM.js} +3 -3
  161. package/dist/{gateway-rpc-BtOX_e53.js → gateway-rpc-CnXMGsxp.js} +3 -3
  162. package/dist/{gmail-setup-utils-D2uUKNlF.js → gmail-setup-utils-DaJoXV_3.js} +3 -3
  163. package/dist/{health-BttJ1Qeh.js → health-C8KCBhuo.js} +8 -8
  164. package/dist/{health-D8fJ6U_k.js → health-CabOEPQ0.js} +13 -13
  165. package/dist/{health-format-CH6JWH45.js → health-format-D-JJ5_S4.js} +2 -2
  166. package/dist/{heartbeat-visibility-DcGQOTXe.js → heartbeat-visibility-BjYY-mKG.js} +1 -1
  167. package/dist/{heartbeat-visibility-B2MDtPTL.js → heartbeat-visibility-ZfNSbFcq.js} +1 -1
  168. package/dist/{help-format-7YidDC5Z.js → help-format-Dt-I_Mls.js} +1 -1
  169. package/dist/{hooks-cli-DRUryj5H.js → hooks-cli-Cs7GUa7G.js} +34 -33
  170. package/dist/{hooks-cli-BMZF6RF3.js → hooks-cli-DOs9WZ3K.js} +56 -55
  171. package/dist/{hooks-status-VvwKn90L.js → hooks-status-DdweuSIj.js} +4 -4
  172. package/dist/{image-ops-BUy__GHL.js → image-ops-Ct3GueyT.js} +1 -1
  173. package/dist/index.js +79 -71
  174. package/dist/{init-B8PBeUpi.js → init-CFndGgTJ.js} +1 -1
  175. package/dist/{init-DxkAVKP0.js → init-DkBwXNme.js} +1 -1
  176. package/dist/{installs-sayrGjx1.js → installs-Bi6UipiE.js} +6 -6
  177. package/dist/{installs-BcnNDR54.js → installs-a4Vz_J08.js} +3 -3
  178. package/dist/ipv4-DfMwLQ0d.js +14 -0
  179. package/dist/{lib-D4dE4_XZ.js → lib-6xd5SQjU.js} +20 -20
  180. package/dist/{lifecycle-core-BerWWP7p.js → lifecycle-core-B8PI1NZJ.js} +3 -3
  181. package/dist/{links-OhvsEkVw.js → links-DcilUrqq.js} +1 -1
  182. package/dist/llm-slug-generator.js +25 -25
  183. package/dist/{loader-CLNb0v_s.js → loader-Bw2wdN4l.js} +159 -3
  184. package/dist/{loader-Bww_qb65.js → loader-C87TLS4J.js} +159 -3
  185. package/dist/{logging-DhXRGHWg.js → logging-Chc1Sj6N.js} +1 -1
  186. package/dist/{login-BovU8kno.js → login-BHnvW9HA.js} +6 -6
  187. package/dist/{login-BPtmlRRv.js → login-BTOKtSQN.js} +5 -5
  188. package/dist/{login-C54B66KM.js → login-CrMpAZ0n.js} +4 -4
  189. package/dist/{login-C4mptULi.js → login-DKkQ3Czu.js} +5 -5
  190. package/dist/{login-qr-bim3Nkyu.js → login-qr-BGbHImRb.js} +8 -8
  191. package/dist/{login-qr-pFbvowe5.js → login-qr-CsAVGp00.js} +12 -12
  192. package/dist/{login-qr-657mh7cI.js → login-qr-DILcBA_q.js} +6 -6
  193. package/dist/{login-qr-BxNKHxcf.js → login-qr-OUAGpDsU.js} +10 -10
  194. package/dist/{logs-cli-CQStwrGd.js → logs-cli-Bc6IOyHA.js} +8 -8
  195. package/dist/{logs-cli-De79vyiP.js → logs-cli-BiAJbjnq.js} +15 -15
  196. package/dist/{manager-B043uMPT.js → manager-BYu34CX3.js} +12 -12
  197. package/dist/{manager-Cvmm95Pf.js → manager-C6L_DH0O.js} +2 -2
  198. package/dist/{manager-BtrVJ8Ve.js → manager-D8VCuzru.js} +9 -9
  199. package/dist/{manager-A3pC-CW-.js → manager-b_aZwo00.js} +16 -16
  200. package/dist/{manifest-registry-D-DOtLzo.js → manifest-registry-qF960vMH.js} +1 -1
  201. package/dist/{memory-cli-COl5xoIl.js → memory-cli-B0kKl-9T.js} +7 -7
  202. package/dist/{memory-cli-691NgCXx.js → memory-cli-DLtBA6r5.js} +11 -11
  203. package/dist/{message-channel-DZYYDt1_.js → message-channel-CMsexA3K.js} +9 -7
  204. package/dist/{message-channel-DdOBO6Qm.js → message-channel-DIHHKJhk.js} +8 -6
  205. package/dist/{migrate-DkBWjPPs.js → migrate-DuohB_ur.js} +3 -3
  206. package/dist/{migrate-BLjwxe9X.js → migrate-bgeTT_GR.js} +3 -3
  207. package/dist/{model-auth-DKhjNVHc.js → model-auth-CHB3EySM.js} +10 -5
  208. package/dist/{model-auth-CxAB4iZ0.js → model-auth-KpsOXKDc.js} +3 -3
  209. package/dist/model-param-b-C1QDqzQp.js +16 -0
  210. package/dist/{model-selection-BPkpXepz.js → model-selection-CLcoOT3e.js} +25 -7
  211. package/dist/{model-selection-wCaVeFbb.js → model-selection-CY6r_3wt.js} +25 -7
  212. package/dist/{model-selection-DFbDH9o2.js → model-selection-DcO3qJOu.js} +24 -6
  213. package/dist/{model-selection-BI8CKPwQ.js → model-selection-DjsJGv1R.js} +67 -8
  214. package/dist/models-BM2_NkMu.js +2707 -0
  215. package/dist/models-cli-BjY8wA-C.js +272 -0
  216. package/dist/models-cli-BpjeKsUz.js +2946 -0
  217. package/dist/{node-cli-Ajhng-5p.js → node-cli-BmuVEJ1C.js} +12 -12
  218. package/dist/{node-cli-t3N6HE9R.js → node-cli-DU_oREff.js} +27 -27
  219. package/dist/{node-service-4B-0AjmA.js → node-service-qZXF7T7A.js} +1 -1
  220. package/dist/{note-De2zPKl3.js → note-iMYVGjpA.js} +2 -2
  221. package/dist/noxsoft-bootstrap-C4dSx7K_.js +77 -0
  222. package/dist/noxsoft-bootstrap-CrlkSFzd.js +77 -0
  223. package/dist/{npm-registry-spec-CFp4OEe4.js → npm-registry-spec-Br4B4I_3.js} +2 -2
  224. package/dist/{npm-registry-spec-DVDcgWxm.js → npm-registry-spec-jf7Mowdn.js} +1 -1
  225. package/dist/{onboard-xSPFmM29.js → onboard-DM9gULJN.js} +24 -19
  226. package/dist/{onboard-i4CJtSb9.js → onboard-_-D81kAy.js} +19 -15
  227. package/dist/{onboard-channels-RsbA6EaD.js → onboard-channels-CtT-RN60.js} +8 -8
  228. package/dist/{onboard-channels-D6Gt3CsX.js → onboard-channels-UkphAdCy.js} +4 -4
  229. package/dist/{onboard-helpers-IeOtcIME.js → onboard-helpers-CFudIoX4.js} +3 -3
  230. package/dist/{onboard-helpers-DPqXrhma.js → onboard-helpers-CJ3HzoUO.js} +7 -7
  231. package/dist/{onboarding-CZBVMwFn.js → onboarding-BB9PteK8.js} +20 -17
  232. package/dist/{onboarding-Cao0a_Z1.js → onboarding-Djmm0PEM.js} +27 -23
  233. package/dist/{orchestrator-COMX8CF2.js → orchestrator-C1nWKIJS.js} +7 -3
  234. package/dist/{orchestrator-BLXpTTgr.js → orchestrator-C2ypFiPL.js} +6 -3
  235. package/dist/{outbound-DWfSyfZC.js → outbound-Bmft-5um.js} +4 -4
  236. package/dist/{outbound-Rs0fFC2g.js → outbound-C577aWZp.js} +1 -1
  237. package/dist/{outbound-DLCmFGfJ.js → outbound-DW2eod1S.js} +4 -4
  238. package/dist/{outbound-uxBpmALx.js → outbound-fPqdCDR4.js} +4 -4
  239. package/dist/outbound-send-deps-DVfWC4E8.js +14 -0
  240. package/dist/outbound-send-deps-T_FgdfgW.js +36 -0
  241. package/dist/{parse-timeout-DkOL1T_l.js → parse-timeout-C4WLf3Qy.js} +3 -3
  242. package/dist/{parse-timeout-DlU4ymhF.js → parse-timeout-D4UO8pY_.js} +1 -1
  243. package/dist/{path-env-CjpH-KWH.js → path-env-DLQPf9qj.js} +2 -2
  244. package/dist/{paths-D2eokayo.js → paths-B-AkG5FD.js} +3 -3
  245. package/dist/{paths-DQMKfv60.js → paths-CAQJvbeZ.js} +2 -2
  246. package/dist/{paths-Cwszsz1I.js → paths-Q6h5HODL.js} +2 -2
  247. package/dist/{pi-auth-json-BLdaEAx2.js → pi-auth-json-B_lKNFK6.js} +5 -5
  248. package/dist/{pi-auth-json-BH7uvkKr.js → pi-auth-json-BmdBnmlZ.js} +8 -9
  249. package/dist/{pi-auth-json-DjxzPUt3.js → pi-auth-json-DkYqdjrV.js} +2 -2
  250. package/dist/{pi-auth-json-smxh_Xud.js → pi-auth-json-WTvcP2gz.js} +9 -8
  251. package/dist/{pi-embedded-D4eEfxIU.js → pi-embedded-BMbtgOzv.js} +825 -319
  252. package/dist/{pi-embedded-DifnZvKk.js → pi-embedded-DfbM3fAT.js} +888 -382
  253. package/dist/{pi-embedded-helpers-B6wVA0hU.js → pi-embedded-helpers-BZ9GspxK.js} +1 -1
  254. package/dist/{pi-tools.policy-CDgjN_3f.js → pi-tools.policy-D2FusuQa.js} +3 -3
  255. package/dist/{pi-tools.policy-ox141hP6.js → pi-tools.policy-WdTAfqbV.js} +6 -6
  256. package/dist/{plugin-auto-enable-Mj7AnofW.js → plugin-auto-enable-CtYcdTju.js} +5 -5
  257. package/dist/{plugin-auto-enable-OqDAK-ap.js → plugin-auto-enable-DhuD30Je.js} +2 -2
  258. package/dist/{plugin-registry-CpXm8ADp.js → plugin-registry-DePMxn4z.js} +4 -4
  259. package/dist/{plugin-registry-CkZnT8Fb.js → plugin-registry-QTkplP4s.js} +2 -2
  260. package/dist/plugin-sdk/agents/cli-backends.d.ts +4 -1
  261. package/dist/plugin-sdk/agents/cli-credentials.d.ts +0 -10
  262. package/dist/plugin-sdk/agents/cli-runner.d.ts +2 -0
  263. package/dist/plugin-sdk/agents/defaults.d.ts +2 -2
  264. package/dist/plugin-sdk/agents/model-auto.d.ts +43 -0
  265. package/dist/plugin-sdk/agents/model-fallback.d.ts +5 -0
  266. package/dist/plugin-sdk/agents/model-preference.d.ts +25 -0
  267. package/dist/plugin-sdk/agents/noxsoft-runner.d.ts +94 -0
  268. package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +6 -3
  269. package/dist/plugin-sdk/agents/pi-embedded.d.ts +6 -50
  270. package/dist/plugin-sdk/agents/runner-capabilities.d.ts +2 -0
  271. package/dist/plugin-sdk/agents/sandbox/constants.d.ts +1 -1
  272. package/dist/plugin-sdk/auth/noxsoft-auth.d.ts +55 -0
  273. package/dist/plugin-sdk/channels/registry.d.ts +2 -2
  274. package/dist/plugin-sdk/cli/deps.d.ts +2 -1
  275. package/dist/plugin-sdk/cli/outbound-send-deps.d.ts +10 -0
  276. package/dist/plugin-sdk/commands/agent/types.d.ts +2 -0
  277. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +14 -0
  278. package/dist/plugin-sdk/config/types.models.d.ts +1 -1
  279. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +13 -0
  280. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +13 -0
  281. package/dist/plugin-sdk/config/zod-schema.d.ts +13 -0
  282. package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +1 -0
  283. package/dist/plugin-sdk/identity/loader.d.ts +1 -0
  284. package/dist/plugin-sdk/identity/trust-graph.d.ts +32 -0
  285. package/dist/plugin-sdk/index.js +57 -47
  286. package/dist/plugin-sdk/utils/message-channel.d.ts +2 -1
  287. package/dist/{plugins-DnJgmFJR.js → plugins-DYcg0qBW.js} +1 -1
  288. package/dist/{plugins-cli-CrrkMAYM.js → plugins-cli-Bc9oU1ld.js} +58 -57
  289. package/dist/{plugins-cli-D4VxQKaJ.js → plugins-cli-Dv0KQTWo.js} +36 -35
  290. package/dist/{polls-DuwPgAV7.js → polls-DFISjV7H.js} +5 -5
  291. package/dist/{ports-B1b1r9Dz.js → ports-DaVrZDUq.js} +2 -2
  292. package/dist/{ports-BX00e96t.js → ports-q535r1PZ.js} +2 -2
  293. package/dist/{program-CTDFmZNx.js → program-CuwbF8YO.js} +48 -40
  294. package/dist/{program-context-Hl6bnPfB.js → program-context-CxPfy-Wr.js} +51 -35
  295. package/dist/{progress-B-VBLfHr.js → progress-CVLvQV_t.js} +1 -1
  296. package/dist/{prompt-style-DU9Vjqe5.js → prompt-style-BI53UVgE.js} +1 -1
  297. package/dist/{prompts-D6b3zLVO.js → prompts-BmgT_kkv.js} +33 -2
  298. package/dist/prompts-Bq4QGFQM.js +158 -0
  299. package/dist/{pw-ai-BV57RRmp.js → pw-ai-CB-zeR7h.js} +5 -5
  300. package/dist/{pw-ai-CY-VcqJp.js → pw-ai-C_1-7IgH.js} +4 -4
  301. package/dist/{pw-ai-CTHtrCEC.js → pw-ai-DxNrJcCA.js} +3 -3
  302. package/dist/{qmd-manager-DJeQYS-r.js → qmd-manager-C_XBZ_bT.js} +5 -5
  303. package/dist/{qmd-manager-CwbYv6nJ.js → qmd-manager-CpNYgSrx.js} +7 -7
  304. package/dist/{qmd-manager-Cbm03z8H.js → qmd-manager-Q0OSDQ-e.js} +5 -5
  305. package/dist/{register.agent-CMoYTJqj.js → register.agent-DFQmkIEH.js} +53 -50
  306. package/dist/{register.agent-BKINbWbs.js → register.agent-DUjwGw9d.js} +77 -73
  307. package/dist/{register.anima-BHrZ90Sv.js → register.anima-CRFHJu2J.js} +21 -21
  308. package/dist/{register.anima-CnEy5VFQ.js → register.anima-CtKNrpE8.js} +21 -21
  309. package/dist/{register.configure-Cv5NkGH2.js → register.configure-CSSN07XN.js} +50 -49
  310. package/dist/register.configure-CnEKV57N.js +107 -0
  311. package/dist/register.maintenance-CU1A-90-.js +102 -0
  312. package/dist/{register.maintenance-DtAw8E_a.js → register.maintenance-fhcCB7ih.js} +48 -47
  313. package/dist/register.message-C1a0y2ZR.js +661 -0
  314. package/dist/register.message-fM0jSKB8.js +659 -0
  315. package/dist/register.onboard-B7Gavmvt.js +128 -0
  316. package/dist/{register.onboard-U3lIfaw_.js → register.onboard-BhPlqjFi.js} +50 -49
  317. package/dist/{register.setup-CLkGhR-e.js → register.setup-0jPnMgnz.js} +96 -92
  318. package/dist/{register.setup-Dyp5L_GQ.js → register.setup-CADdQUEN.js} +72 -69
  319. package/dist/{register.status-health-sessions-Dx-qZMol.js → register.status-health-sessions-Cu5fDT-z.js} +68 -67
  320. package/dist/{register.status-health-sessions-Cc2Y5gSj.js → register.status-health-sessions-DdQsABr_.js} +40 -39
  321. package/dist/{register.subclis-L55mGheS.js → register.subclis-CZ91ufCy.js} +28 -21
  322. package/dist/{reply-BgPvB-gR.js → reply-DtHlnzOx.js} +6631 -6172
  323. package/dist/{reply-prefix-37W_P4kH.js → reply-prefix-C8dIgJur.js} +1 -1
  324. package/dist/{reply-prefix-DBRqtDEq.js → reply-prefix-DmWGtcH-.js} +1 -1
  325. package/dist/{routes-ZlpnlJFF.js → routes-CWCAc8uJ.js} +2 -2
  326. package/dist/{routes-DeDgHj5Y.js → routes-FT0Us8Md.js} +6 -6
  327. package/dist/{run-DEHnKm2x.js → run-Dfz_7j7t.js} +1256 -166
  328. package/dist/{run-BFPM6M2S.js → run-DqBQ-bGn.js} +1230 -140
  329. package/dist/{run-main-Cxmjk1SF.js → run-main-DGDW0fhx.js} +51 -50
  330. package/dist/{runtime-guard-cBL2D5J8.js → runtime-guard-D14Z_QY6.js} +1 -1
  331. package/dist/{sandbox-DDOFuJU9.js → sandbox-D-N7M7lp.js} +2 -2
  332. package/dist/{sandbox-cli-GhcxR1Va.js → sandbox-cli-CQKz2I1X.js} +9 -9
  333. package/dist/{sandbox-cli-CGJvhJ4L.js → sandbox-cli-DHNFlTo-.js} +23 -23
  334. package/dist/{sandbox-B8Nza4lP.js → sandbox-pBHlfFdB.js} +6 -6
  335. package/dist/{security-cli-B7VIDDSL.js → security-cli-Bdi7MuP6.js} +14 -22
  336. package/dist/{security-cli-gsyz4Wrw.js → security-cli-C3aI09uy.js} +27 -35
  337. package/dist/{semantic-C3Z-zhNi.js → semantic-9rgWUrz3.js} +1 -1
  338. package/dist/{semantic-CG6X3rBo.js → semantic-C1UN3bb9.js} +1 -1
  339. package/dist/{semantic-DCd6zBnV.js → semantic-CQApJNO_.js} +1 -1
  340. package/dist/{server-context-Dkz4Ce8z.js → server-context-Clykq0XU.js} +1 -1
  341. package/dist/{server-context-BlJi7pjP.js → server-context-Yx4pgBqJ.js} +7 -7
  342. package/dist/{server-node-events-DBOg36in.js → server-node-events-BR1aXVlu.js} +55 -53
  343. package/dist/{server-node-events-CmZXzWcd.js → server-node-events-Ca797E1d.js} +34 -31
  344. package/dist/{service-QlHhVsQf.js → service-Dd1DfPia.js} +1 -1
  345. package/dist/{service-audit-D4xG05j8.js → service-audit-Bwpoc2LD.js} +1 -1
  346. package/dist/{service-audit-BaoBb09i.js → service-audit-KzOtcw_V.js} +3 -3
  347. package/dist/{session-BJ9XCJBg.js → session-5YO_H-Ra.js} +1 -1
  348. package/dist/{session-3MLbl1-K.js → session-BiA6jrcs.js} +1 -1
  349. package/dist/session-C7IGnhd1.js +190 -0
  350. package/dist/{session-KNXzWBht.js → session-CSmfU0D3.js} +1 -1
  351. package/dist/{session-CqKJvPTq.js → session-DLevr8Vd.js} +5 -5
  352. package/dist/session-DfsMJNG3.js +190 -0
  353. package/dist/{session-TAOVpONo.js → session-FmXsucR7.js} +2 -2
  354. package/dist/{session-cost-usage-BamtB1rn.js → session-cost-usage-BWqR-ik6.js} +1 -1
  355. package/dist/{sessions-C2th3rm6.js → sessions-BOzeFzuL.js} +12 -22
  356. package/dist/{sessions-1XK2mH6L.js → sessions-C_3wTmSA.js} +9 -19
  357. package/dist/{sessions-BrQHxX_o.js → sessions-Dj7_4mkr.js} +4 -4
  358. package/dist/{settings-cli-CCtkuc1r.js → settings-cli-DxNeu6kx.js} +79 -77
  359. package/dist/{settings-cli-Ccizggz2.js → settings-cli-Dytfop1H.js} +50 -49
  360. package/dist/{setup-token-Dqtgnjxw.js → setup-token-B802CZwe.js} +13 -18
  361. package/dist/{setup-token-Bcer2kX8.js → setup-token-DYh2QzJ-.js} +29 -34
  362. package/dist/{shared-Hnu5dChj.js → shared-C-rqLtIT.js} +2 -2
  363. package/dist/{shell-env-KRrv3dPW.js → shell-env-CMI9f7-7.js} +1 -1
  364. package/dist/{shell-env-B4ae4lFh.js → shell-env-HkVWMh--.js} +1 -1
  365. package/dist/{shell-env-PnmcBTp4.js → shell-env-iPnSIi-t.js} +1 -1
  366. package/dist/{skills-CQoUYlGu.js → skills-4v6-kw0C.js} +3 -3
  367. package/dist/{skills-cli-DQuLxQUM.js → skills-cli-BoasNTpZ.js} +15 -15
  368. package/dist/{skills-cli-CNNy0FxN.js → skills-cli-TeAq3fRG.js} +3 -3
  369. package/dist/{skills-install-2DbC1Yo2.js → skills-install-D6_qpRjW.js} +7 -7
  370. package/dist/{skills-install-CE6djAWL.js → skills-install-Qw2oU8L8.js} +2 -2
  371. package/dist/{skills-status-ybjSmiHu.js → skills-status-CvH7AUoY.js} +4 -4
  372. package/dist/{soul-Bt57OdSx.js → soul-BiIdv3Wp.js} +125 -5
  373. package/dist/{soul-DFeEGG5h.js → soul-Bt8UNmTq.js} +126 -5
  374. package/dist/{soul-CwWWw7cs.js → soul-D9k5zulC.js} +2 -2
  375. package/dist/{soul-Bru-rRjk.js → soul-DQSYs-4l.js} +1 -1
  376. package/dist/{sqlite-BTcAhNls.js → sqlite-BMMt7osH.js} +2 -2
  377. package/dist/{sqlite-ClLAW1iQ.js → sqlite-CZ1vD4VS.js} +4 -4
  378. package/dist/{sqlite-CLZ1eR5Q.js → sqlite-CpAJt-JS.js} +1 -1
  379. package/dist/{start-DfC7PlAH.js → start-BqnPia0t.js} +66 -63
  380. package/dist/start-C3fuLzX0.js +157 -0
  381. package/dist/{status-BVAoIQ0V.js → status-CHGNPonc.js} +26 -44
  382. package/dist/{status-BU6h4wUP.js → status-CxF6k_jr.js} +2 -2
  383. package/dist/{status-C9B6cEM0.js → status-DfZJJqNs.js} +15 -15
  384. package/dist/{status-BaEcHPtc.js → status-tLgozFYL.js} +4 -4
  385. package/dist/{status.update-CbIRaeaV.js → status.update-B6Tdpk07.js} +2 -2
  386. package/dist/{status.update-CPACVnCc.js → status.update-E9dSFk_b.js} +1 -1
  387. package/dist/{subagent-registry-MZIxVf8W.js → subagent-registry-CPtElVX0.js} +807 -348
  388. package/dist/{subsystem-BMsbqSb4.js → subsystem-BAADN1B8.js} +18 -27
  389. package/dist/{subsystem-CucjNlOk.js → subsystem-D-Xta-sj.js} +17 -26
  390. package/dist/{subsystem-DA3Cno1i.js → subsystem-D1AJZPgG.js} +38 -47
  391. package/dist/{system-cli-BKicxULp.js → system-cli-CP7JrhR0.js} +15 -15
  392. package/dist/{system-cli-Unb-WFAR.js → system-cli-DoLzi2Sn.js} +8 -8
  393. package/dist/{systemd-5KGZ3NHE.js → systemd-Bx76sJ3M.js} +2 -2
  394. package/dist/{systemd-linger-B-uyzDap.js → systemd-linger-BVwGXVS0.js} +2 -2
  395. package/dist/{systemd-linger-CS_pA1-a.js → systemd-linger-CxGmIy_5.js} +1 -1
  396. package/dist/{table-CdHBo5d1.js → table-Blmz7glr.js} +2 -2
  397. package/dist/{tokens-DGhK0fpG.js → tokens-SP2Q7i59.js} +1 -1
  398. package/dist/{tool-images-DK97edts.js → tool-images-2qproko3.js} +2 -2
  399. package/dist/{tool-images-Dq55i0mz.js → tool-images-C6cKHTbj.js} +2 -2
  400. package/dist/{tool-images-J0rGmoDV.js → tool-images-CgDT0Xzv.js} +2 -2
  401. package/dist/{tui-Bm8FEW0b.js → tui-C2eLfbhA.js} +5 -5
  402. package/dist/{tui-cli-BGjsxGle.js → tui-cli-BgcbCtgc.js} +12 -12
  403. package/dist/{tui-cli-TwCYv-a7.js → tui-cli-cLSYBQu9.js} +27 -27
  404. package/dist/{tui-DtGKiHUr.js → tui-r4qpJhNk.js} +10 -10
  405. package/dist/{update-Dfi92PZJ.js → update-CqKpX3cX.js} +3 -3
  406. package/dist/{update-Dle5MRUz.js → update-DA91za97.js} +1 -1
  407. package/dist/{update-cli-QMVW2eiR.js → update-cli-BuCw75tM.js} +87 -85
  408. package/dist/{update-cli-D1e-DsWy.js → update-cli-C-er5av6.js} +55 -54
  409. package/dist/{update-runner-DPmSGXS3.js → update-runner-czCqHZCu.js} +5 -5
  410. package/dist/{update-runner-iLJQF6VA.js → update-runner-kE8AMQt4.js} +1 -1
  411. package/dist/{utils-B60lF9Wq.js → utils-CLYlhJuc.js} +1 -1
  412. package/dist/{web-DJRRkHG8.js → web-BHGK5GtV.js} +24 -24
  413. package/dist/web-CyYunanU.js +65 -0
  414. package/dist/{web-DDAkSrtZ.js → web-DvTXV-fo.js} +35 -34
  415. package/dist/{web-DBQRQY6n.js → web-so3pGceM.js} +27 -27
  416. package/dist/{webhooks-cli-Cg0F2mU6.js → webhooks-cli-k3QMf7Rs.js} +4 -4
  417. package/dist/{webhooks-cli-BsWx7MgH.js → webhooks-cli-vlEfXEKm.js} +12 -12
  418. package/dist/{whatsapp-actions-gpz6-vPI.js → whatsapp-actions-6fPRKwPV.js} +11 -11
  419. package/dist/{whatsapp-actions-DJpQVKnT.js → whatsapp-actions-BJn-z76S.js} +17 -17
  420. package/dist/{whatsapp-actions-tWRWRZ4X.js → whatsapp-actions-C0tlEdLy.js} +5 -5
  421. package/dist/{whatsapp-actions-CMEP8v3k.js → whatsapp-actions-Hr-W8vjY.js} +13 -13
  422. package/dist/{widearea-dns-BDtWuGCY.js → widearea-dns-CHAT20aR.js} +1 -1
  423. package/dist/{workspace-BQkffCaR.js → workspace-BFIZCnGo.js} +5 -5
  424. package/dist/{ws-log-Bc4grA6W.js → ws-log-CUobU2tD.js} +1 -1
  425. package/package.json +1 -1
  426. package/templates/profiles/nox.profile.json5 +5 -5
  427. package/dist/cli--Gal7v4I.js +0 -101
  428. package/dist/config-cli-cyvL43DG.js +0 -15
  429. package/dist/control-ui/assets/index-B7CJLRZD.css +0 -1
  430. package/dist/control-ui/assets/index-DLPYIcs0.js +0 -58
  431. package/dist/control-ui/assets/index-DLPYIcs0.js.map +0 -1
  432. package/dist/deps-CeyVMZf1.js +0 -13
  433. package/dist/models-ByeH7ZKb.js +0 -1350
  434. package/dist/register.configure-3GfqcGLK.js +0 -105
  435. package/dist/register.maintenance-YZDsMymb.js +0 -100
  436. package/dist/register.onboard-Dswys-iV.js +0 -126
  437. package/dist/start-BPye9w5U.js +0 -154
  438. package/dist/web-DE-hmqXy.js +0 -64
  439. /package/dist/{BasicParser-BiEpjka-.js → BasicParser-D4BHCxVb.js} +0 -0
  440. /package/dist/{agents.config-DibGEnBs.js → agents.config-Br4ULmK0.js} +0 -0
  441. /package/dist/{archive-BIKRyvqD.js → archive-CNqghdwQ.js} +0 -0
  442. /package/dist/{archive-5e-Ytlq-.js → archive-D-dHRz-v.js} +0 -0
  443. /package/dist/{argv-B6vsXQtF.js → argv-nNQ109_K.js} +0 -0
  444. /package/dist/{auth-store-Vfd6oc1G.js → auth-store-BEfSfCbW.js} +0 -0
  445. /package/dist/{auto-update-BUbllW1X.js → auto-update-Cvd8YJrT.js} +0 -0
  446. /package/dist/{auto-update-DdH8fo63.js → auto-update-DO4nHkfM.js} +0 -0
  447. /package/dist/{brew-Bkf_MwX9.js → brew-DHWnVWm3.js} +0 -0
  448. /package/dist/{budget-CV0a771W.js → budget-DvjICb0t.js} +0 -0
  449. /package/dist/{budget-GiXjG9eW.js → budget-e0R5xsU3.js} +0 -0
  450. /package/dist/{command-options-DfPEZwUK.js → command-options-DtJ8-EC7.js} +0 -0
  451. /package/dist/{command-options-mgpP-XId.js → command-options-eC-m_qJx.js} +0 -0
  452. /package/dist/{delivery-queue-DGnDKL02.js → delivery-queue-BKQk1j0k.js} +0 -0
  453. /package/dist/{delivery-queue-DZ_ibFDu.js → delivery-queue-CExaJXRz.js} +0 -0
  454. /package/dist/{display-BwSYYxVE.js → display-4p3-O9mP.js} +0 -0
  455. /package/dist/{display-Dck2kudh.js → display-Bo8pBhMp.js} +0 -0
  456. /package/dist/{exec-approvals-BJikgQkX.js → exec-approvals-DK5-KCUz.js} +0 -0
  457. /package/dist/{format-wiLVr0D3.js → format-9DMvWYUJ.js} +0 -0
  458. /package/dist/{format-duration-C5oKCGwB.js → format-duration-CnGkTPRF.js} +0 -0
  459. /package/dist/{gmail-setup-utils-CR33Gqfc.js → gmail-setup-utils-BIXtKTpT.js} +0 -0
  460. /package/dist/{help-format-DJx5Rwy2.js → help-format-ZKxl6UCb.js} +0 -0
  461. /package/dist/{helpers-8O7IVGO-.js → helpers-CWQnEONe.js} +0 -0
  462. /package/dist/{hooks-status-DiqubDlK.js → hooks-status-DqfJDvYl.js} +0 -0
  463. /package/dist/{ipv4-BYbwrpG-.js → ipv4-CExV55ho.js} +0 -0
  464. /package/dist/{is-main-BnikY3ud.js → is-main-H-hpHkdq.js} +0 -0
  465. /package/dist/{lib-D1DXSMt_.js → lib-D0_kW-B6.js} +0 -0
  466. /package/dist/{links-3c7gzW-G.js → links-BjjDMNIq.js} +0 -0
  467. /package/dist/{logging-Bpf6Cepz.js → logging-DWwOqnTW.js} +0 -0
  468. /package/dist/{logging-DcXIbpwk.js → logging-_rCcBkls.js} +0 -0
  469. /package/dist/{model-param-b-BcBBSgiD.js → model-param-b-2KmFir_0.js} +0 -0
  470. /package/dist/{node-service-BDlDNv3t.js → node-service-cOoW5hLa.js} +0 -0
  471. /package/dist/{note-BaOKDvcy.js → note-CeLGcHqv.js} +0 -0
  472. /package/dist/{noxsoft-auth-Bmict45b.js → noxsoft-auth-CE75mBXE.js} +0 -0
  473. /package/dist/{noxsoft-auth-DpwLJIW0.js → noxsoft-auth-CgCk5707.js} +0 -0
  474. /package/dist/{pi-model-discovery-ClWISQ3j.js → pi-model-discovery-Bu4Zr7nI.js} +0 -0
  475. /package/dist/{ports-aNJUI3Mi.js → ports-BGLuwt2Z.js} +0 -0
  476. /package/dist/{progress-Dj2aBWOI.js → progress-glCgu57m.js} +0 -0
  477. /package/dist/{qmd-manager-DrDX4o7e.js → qmd-manager-CO795NK4.js} +0 -0
  478. /package/dist/{queue-B77yV52t.js → queue-DDq0uzy5.js} +0 -0
  479. /package/dist/{queue-wFYwitx0.js → queue-DtQ5sbyD.js} +0 -0
  480. /package/dist/{registry-gaRST__4.js → registry-BvymIcVf.js} +0 -0
  481. /package/dist/{registry-Cv8RtADU.js → registry-DwaHkd_j.js} +0 -0
  482. /package/dist/{requirements-CEowKaVY.js → requirements-Ct4XnMiK.js} +0 -0
  483. /package/dist/{skill-scanner-DGoUYV22.js → skill-scanner-5_Y3u6SU.js} +0 -0
  484. /package/dist/{skill-scanner-FO7SyxAD.js → skill-scanner-Dld2ijVw.js} +0 -0
  485. /package/dist/{templates-D-h5PNIK.js → templates-4_And8I_.js} +0 -0
  486. /package/dist/{templates-ndPXOyGA.js → templates-5Z-UIDze.js} +0 -0
  487. /package/dist/{types-DSS9sywz.js → types-BQk_oAin.js} +0 -0
  488. /package/dist/{usage-format-BtlQ-77V.js → usage-format-BSa7cHyK.js} +0 -0
  489. /package/dist/{ws-log-BA9w1cJs.js → ws-log-CG6cvCZW.js} +0 -0
@@ -2,7 +2,7 @@ import { n as __exportAll } from "./chunk-BXK9XSlF.js";
2
2
  import { Q as resolveOAuthPath, o as createSubsystemLogger } from "./entry.js";
3
3
  import { t as formatCliCommand } from "./command-format-kLw3YIIu.js";
4
4
  import { y as resolveUserPath } from "./utils-D1VGbO3C.js";
5
- import { c as normalizeProviderId } from "./model-selection-DFbDH9o2.js";
5
+ import { c as normalizeProviderId } from "./model-selection-DcO3qJOu.js";
6
6
  import { t as withFileLock } from "./file-lock-CxXn285m.js";
7
7
  import { t as resolveAnimaAgentDir } from "./agent-paths-niQrLbGc.js";
8
8
  import { execFileSync, execSync } from "node:child_process";
@@ -91,7 +91,6 @@ const CLAUDE_CLI_CREDENTIALS_RELATIVE_PATH = ".claude/.credentials.json";
91
91
  const CODEX_CLI_AUTH_FILENAME = "auth.json";
92
92
  const QWEN_CLI_CREDENTIALS_RELATIVE_PATH = ".qwen/oauth_creds.json";
93
93
  const MINIMAX_CLI_CREDENTIALS_RELATIVE_PATH = ".minimax/oauth_creds.json";
94
- const OPENCLAW_AUTH_PROFILES_PATH = ".openclaw/agents/main/agent/auth-profiles.json";
95
94
  const CLAUDE_CLI_KEYCHAIN_SERVICE = "Claude Code-credentials";
96
95
  const WINDOWS_CREDENTIAL_TARGET = "Claude Code-credentials";
97
96
  let codexCliCache = null;
@@ -210,43 +209,6 @@ function readMiniMaxCliCredentials(options) {
210
209
  return readPortalCliOauthCredentials(resolveMiniMaxCliCredentialsPath(options?.homeDir), "minimax-portal");
211
210
  }
212
211
  /**
213
- * Read Claude Code credentials from the OpenClaw auth-profiles.json store.
214
- *
215
- * OpenClaw (which shares the same auth infrastructure) stores the Claude Code
216
- * OAuth token in ~/.openclaw/agents/main/agent/auth-profiles.json.
217
- * This is the most reliable source on Windows where the Keychain is unavailable.
218
- */
219
- function readOpenClawCredentials(options) {
220
- const baseDir = options?.homeDir ?? resolveUserPath("~");
221
- const raw = loadJsonFile(path.join(baseDir, OPENCLAW_AUTH_PROFILES_PATH));
222
- if (!raw || typeof raw !== "object") return null;
223
- const profiles = raw.profiles;
224
- if (!profiles) return null;
225
- const anthropicProfile = profiles["anthropic:default"];
226
- if (!anthropicProfile || anthropicProfile.provider !== "anthropic") return null;
227
- if (anthropicProfile.type === "token" && typeof anthropicProfile.token === "string") {
228
- const token = anthropicProfile.token;
229
- log.info("read anthropic credentials from openclaw auth-profiles", { type: "token" });
230
- return {
231
- type: "token",
232
- provider: "anthropic",
233
- token,
234
- expires: Date.now() + 365 * 24 * 60 * 60 * 1e3
235
- };
236
- }
237
- if (anthropicProfile.type === "oauth" && typeof anthropicProfile.access === "string" && typeof anthropicProfile.refresh === "string" && typeof anthropicProfile.expires === "number") {
238
- log.info("read anthropic oauth credentials from openclaw auth-profiles");
239
- return {
240
- type: "oauth",
241
- provider: "anthropic",
242
- access: anthropicProfile.access,
243
- refresh: anthropicProfile.refresh,
244
- expires: anthropicProfile.expires
245
- };
246
- }
247
- return null;
248
- }
249
- /**
250
212
  * Read Claude Code credentials from Windows Credential Manager.
251
213
  *
252
214
  * On Windows, the Claude CLI stores its OAuth token via the Windows
@@ -317,8 +279,6 @@ function readClaudeCliCredentials(options) {
317
279
  return parsed;
318
280
  }
319
281
  }
320
- const openClawCreds = readOpenClawCredentials({ homeDir: options?.homeDir });
321
- if (openClawCreds) return openClawCreds;
322
282
  return null;
323
283
  }
324
284
  function readCodexCliCredentials(options) {
@@ -687,6 +647,26 @@ function saveAuthProfileStore(store, agentDir) {
687
647
 
688
648
  //#endregion
689
649
  //#region src/agents/auth-profiles/profiles.ts
650
+ async function setAuthProfileOrder(params) {
651
+ const providerKey = normalizeProviderId(params.provider);
652
+ const sanitized = params.order && Array.isArray(params.order) ? params.order.map((entry) => String(entry).trim()).filter(Boolean) : [];
653
+ const deduped = [];
654
+ for (const entry of sanitized) if (!deduped.includes(entry)) deduped.push(entry);
655
+ return await updateAuthProfileStoreWithLock({
656
+ agentDir: params.agentDir,
657
+ updater: (store) => {
658
+ store.order = store.order ?? {};
659
+ if (deduped.length === 0) {
660
+ if (!store.order[providerKey]) return false;
661
+ delete store.order[providerKey];
662
+ if (Object.keys(store.order).length === 0) store.order = void 0;
663
+ return true;
664
+ }
665
+ store.order[providerKey] = deduped;
666
+ return true;
667
+ }
668
+ });
669
+ }
690
670
  function upsertAuthProfile(params) {
691
671
  const credential = params.credential.type === "api_key" ? {
692
672
  ...params.credential,
@@ -703,6 +683,32 @@ function listProfilesForProvider(store, provider) {
703
683
  const providerKey = normalizeProviderId(provider);
704
684
  return Object.entries(store.profiles).filter(([, cred]) => normalizeProviderId(cred.provider) === providerKey).map(([id]) => id);
705
685
  }
686
+ async function markAuthProfileGood(params) {
687
+ const { store, provider, profileId, agentDir } = params;
688
+ const updated = await updateAuthProfileStoreWithLock({
689
+ agentDir,
690
+ updater: (freshStore) => {
691
+ const profile = freshStore.profiles[profileId];
692
+ if (!profile || profile.provider !== provider) return false;
693
+ freshStore.lastGood = {
694
+ ...freshStore.lastGood,
695
+ [provider]: profileId
696
+ };
697
+ return true;
698
+ }
699
+ });
700
+ if (updated) {
701
+ store.lastGood = updated.lastGood;
702
+ return;
703
+ }
704
+ const profile = store.profiles[profileId];
705
+ if (!profile || profile.provider !== provider) return;
706
+ store.lastGood = {
707
+ ...store.lastGood,
708
+ [provider]: profileId
709
+ };
710
+ saveAuthProfileStore(store, agentDir);
711
+ }
706
712
 
707
713
  //#endregion
708
714
  //#region src/agents/auth-profiles/repair.ts
@@ -1004,11 +1010,156 @@ function isProfileInCooldown(store, profileId) {
1004
1010
  const unusableUntil = resolveProfileUnusableUntil$1(stats);
1005
1011
  return unusableUntil ? Date.now() < unusableUntil : false;
1006
1012
  }
1013
+ /**
1014
+ * Mark a profile as successfully used. Resets error count and updates lastUsed.
1015
+ * Uses store lock to avoid overwriting concurrent usage updates.
1016
+ */
1017
+ async function markAuthProfileUsed(params) {
1018
+ const { store, profileId, agentDir } = params;
1019
+ const updated = await updateAuthProfileStoreWithLock({
1020
+ agentDir,
1021
+ updater: (freshStore) => {
1022
+ if (!freshStore.profiles[profileId]) return false;
1023
+ freshStore.usageStats = freshStore.usageStats ?? {};
1024
+ freshStore.usageStats[profileId] = {
1025
+ ...freshStore.usageStats[profileId],
1026
+ lastUsed: Date.now(),
1027
+ errorCount: 0,
1028
+ cooldownUntil: void 0,
1029
+ disabledUntil: void 0,
1030
+ disabledReason: void 0,
1031
+ failureCounts: void 0
1032
+ };
1033
+ return true;
1034
+ }
1035
+ });
1036
+ if (updated) {
1037
+ store.usageStats = updated.usageStats;
1038
+ return;
1039
+ }
1040
+ if (!store.profiles[profileId]) return;
1041
+ store.usageStats = store.usageStats ?? {};
1042
+ store.usageStats[profileId] = {
1043
+ ...store.usageStats[profileId],
1044
+ lastUsed: Date.now(),
1045
+ errorCount: 0,
1046
+ cooldownUntil: void 0,
1047
+ disabledUntil: void 0,
1048
+ disabledReason: void 0,
1049
+ failureCounts: void 0
1050
+ };
1051
+ saveAuthProfileStore(store, agentDir);
1052
+ }
1053
+ function calculateAuthProfileCooldownMs(errorCount) {
1054
+ const normalized = Math.max(1, errorCount);
1055
+ return Math.min(3600 * 1e3, 60 * 1e3 * 5 ** Math.min(normalized - 1, 3));
1056
+ }
1057
+ function resolveAuthCooldownConfig(params) {
1058
+ const defaults = {
1059
+ billingBackoffHours: 5,
1060
+ billingMaxHours: 24,
1061
+ failureWindowHours: 24
1062
+ };
1063
+ const resolveHours = (value, fallback) => typeof value === "number" && Number.isFinite(value) && value > 0 ? value : fallback;
1064
+ const cooldowns = params.cfg?.auth?.cooldowns;
1065
+ const billingBackoffHours = resolveHours((() => {
1066
+ const map = cooldowns?.billingBackoffHoursByProvider;
1067
+ if (!map) return;
1068
+ for (const [key, value] of Object.entries(map)) if (normalizeProviderId(key) === params.providerId) return value;
1069
+ })() ?? cooldowns?.billingBackoffHours, defaults.billingBackoffHours);
1070
+ const billingMaxHours = resolveHours(cooldowns?.billingMaxHours, defaults.billingMaxHours);
1071
+ const failureWindowHours = resolveHours(cooldowns?.failureWindowHours, defaults.failureWindowHours);
1072
+ return {
1073
+ billingBackoffMs: billingBackoffHours * 60 * 60 * 1e3,
1074
+ billingMaxMs: billingMaxHours * 60 * 60 * 1e3,
1075
+ failureWindowMs: failureWindowHours * 60 * 60 * 1e3
1076
+ };
1077
+ }
1078
+ function calculateAuthProfileBillingDisableMsWithConfig(params) {
1079
+ const normalized = Math.max(1, params.errorCount);
1080
+ const baseMs = Math.max(6e4, params.baseMs);
1081
+ const maxMs = Math.max(baseMs, params.maxMs);
1082
+ const raw = baseMs * 2 ** Math.min(normalized - 1, 10);
1083
+ return Math.min(maxMs, raw);
1084
+ }
1007
1085
  function resolveProfileUnusableUntilForDisplay(store, profileId) {
1008
1086
  const stats = store.usageStats?.[profileId];
1009
1087
  if (!stats) return null;
1010
1088
  return resolveProfileUnusableUntil$1(stats);
1011
1089
  }
1090
+ function computeNextProfileUsageStats(params) {
1091
+ const windowMs = params.cfgResolved.failureWindowMs;
1092
+ const windowExpired = typeof params.existing.lastFailureAt === "number" && params.existing.lastFailureAt > 0 && params.now - params.existing.lastFailureAt > windowMs;
1093
+ const nextErrorCount = (windowExpired ? 0 : params.existing.errorCount ?? 0) + 1;
1094
+ const failureCounts = windowExpired ? {} : { ...params.existing.failureCounts };
1095
+ failureCounts[params.reason] = (failureCounts[params.reason] ?? 0) + 1;
1096
+ const updatedStats = {
1097
+ ...params.existing,
1098
+ errorCount: nextErrorCount,
1099
+ failureCounts,
1100
+ lastFailureAt: params.now
1101
+ };
1102
+ if (params.reason === "billing") {
1103
+ const backoffMs = calculateAuthProfileBillingDisableMsWithConfig({
1104
+ errorCount: failureCounts.billing ?? 1,
1105
+ baseMs: params.cfgResolved.billingBackoffMs,
1106
+ maxMs: params.cfgResolved.billingMaxMs
1107
+ });
1108
+ updatedStats.disabledUntil = params.now + backoffMs;
1109
+ updatedStats.disabledReason = "billing";
1110
+ } else {
1111
+ const backoffMs = calculateAuthProfileCooldownMs(nextErrorCount);
1112
+ updatedStats.cooldownUntil = params.now + backoffMs;
1113
+ }
1114
+ return updatedStats;
1115
+ }
1116
+ /**
1117
+ * Mark a profile as failed for a specific reason. Billing failures are treated
1118
+ * as "disabled" (longer backoff) vs the regular cooldown window.
1119
+ */
1120
+ async function markAuthProfileFailure(params) {
1121
+ const { store, profileId, reason, agentDir, cfg } = params;
1122
+ const updated = await updateAuthProfileStoreWithLock({
1123
+ agentDir,
1124
+ updater: (freshStore) => {
1125
+ const profile = freshStore.profiles[profileId];
1126
+ if (!profile) return false;
1127
+ freshStore.usageStats = freshStore.usageStats ?? {};
1128
+ const existing = freshStore.usageStats[profileId] ?? {};
1129
+ const now = Date.now();
1130
+ const cfgResolved = resolveAuthCooldownConfig({
1131
+ cfg,
1132
+ providerId: normalizeProviderId(profile.provider)
1133
+ });
1134
+ freshStore.usageStats[profileId] = computeNextProfileUsageStats({
1135
+ existing,
1136
+ now,
1137
+ reason,
1138
+ cfgResolved
1139
+ });
1140
+ return true;
1141
+ }
1142
+ });
1143
+ if (updated) {
1144
+ store.usageStats = updated.usageStats;
1145
+ return;
1146
+ }
1147
+ if (!store.profiles[profileId]) return;
1148
+ store.usageStats = store.usageStats ?? {};
1149
+ const existing = store.usageStats[profileId] ?? {};
1150
+ const now = Date.now();
1151
+ const cfgResolved = resolveAuthCooldownConfig({
1152
+ cfg,
1153
+ providerId: normalizeProviderId(store.profiles[profileId]?.provider ?? "")
1154
+ });
1155
+ store.usageStats[profileId] = computeNextProfileUsageStats({
1156
+ existing,
1157
+ now,
1158
+ reason,
1159
+ cfgResolved
1160
+ });
1161
+ saveAuthProfileStore(store, agentDir);
1162
+ }
1012
1163
 
1013
1164
  //#endregion
1014
1165
  //#region src/agents/auth-profiles/order.ts
@@ -1106,4 +1257,4 @@ function orderProfilesByMode(order, store) {
1106
1257
  var auth_profiles_exports = /* @__PURE__ */ __exportAll({ ensureAuthProfileStore: () => ensureAuthProfileStore });
1107
1258
 
1108
1259
  //#endregion
1109
- export { CLAUDE_CLI_PROFILE_ID as C, resolveAuthProfileDisplayLabel as S, readOpenClawCredentials as _, resolveApiKeyForProfile as a, normalizeOptionalSecretInput as b, upsertAuthProfile as c, saveAuthProfileStore as d, updateAuthProfileStoreWithLock as f, readCodexCliCredentialsCached as g, readClaudeCliCredentials as h, resolveProfileUnusableUntilForDisplay as i, ensureAuthProfileStore as l, resolveAuthStorePathForDisplay as m, resolveAuthProfileOrder as n, repairOAuthProfileIdMismatch as o, resolveAuthStorePath as p, isProfileInCooldown as r, listProfilesForProvider as s, auth_profiles_exports as t, loadAuthProfileStore as u, loadJsonFile as v, CODEX_CLI_PROFILE_ID as w, normalizeSecretInput as x, saveJsonFile as y };
1260
+ export { normalizeOptionalSecretInput as C, CODEX_CLI_PROFILE_ID as D, CLAUDE_CLI_PROFILE_ID as E, saveJsonFile as S, resolveAuthProfileDisplayLabel as T, resolveAuthStorePath as _, markAuthProfileUsed as a, readCodexCliCredentialsCached as b, repairOAuthProfileIdMismatch as c, setAuthProfileOrder as d, upsertAuthProfile as f, updateAuthProfileStoreWithLock as g, saveAuthProfileStore as h, markAuthProfileFailure as i, listProfilesForProvider as l, loadAuthProfileStore as m, resolveAuthProfileOrder as n, resolveProfileUnusableUntilForDisplay as o, ensureAuthProfileStore as p, isProfileInCooldown as r, resolveApiKeyForProfile as s, auth_profiles_exports as t, markAuthProfileGood as u, resolveAuthStorePathForDisplay as v, normalizeSecretInput as w, loadJsonFile as x, readClaudeCliCredentials as y };
@@ -1,9 +1,9 @@
1
1
  import { n as __exportAll } from "./chunk-BXK9XSlF.js";
2
2
  import { m as resolveStateDir, p as resolveOAuthPath } from "./paths-zhVksOvm.js";
3
- import { t as createSubsystemLogger } from "./subsystem-BMsbqSb4.js";
4
- import { b as resolveUserPath } from "./utils-B60lF9Wq.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-BAADN1B8.js";
4
+ import { b as resolveUserPath } from "./utils-CLYlhJuc.js";
5
5
  import { n as DEFAULT_AGENT_ID } from "./session-key-DAZmp8ll.js";
6
- import { c as normalizeProviderId } from "./model-selection-wCaVeFbb.js";
6
+ import { c as normalizeProviderId } from "./model-selection-CY6r_3wt.js";
7
7
  import { t as formatCliCommand } from "./command-format-BCtkuvqF.js";
8
8
  import { t as withFileLock } from "./file-lock-Z53aFHvY.js";
9
9
  import fs from "node:fs";
@@ -92,7 +92,6 @@ const CLAUDE_CLI_CREDENTIALS_RELATIVE_PATH = ".claude/.credentials.json";
92
92
  const CODEX_CLI_AUTH_FILENAME = "auth.json";
93
93
  const QWEN_CLI_CREDENTIALS_RELATIVE_PATH = ".qwen/oauth_creds.json";
94
94
  const MINIMAX_CLI_CREDENTIALS_RELATIVE_PATH = ".minimax/oauth_creds.json";
95
- const OPENCLAW_AUTH_PROFILES_PATH = ".openclaw/agents/main/agent/auth-profiles.json";
96
95
  const CLAUDE_CLI_KEYCHAIN_SERVICE = "Claude Code-credentials";
97
96
  const WINDOWS_CREDENTIAL_TARGET = "Claude Code-credentials";
98
97
  let codexCliCache = null;
@@ -211,43 +210,6 @@ function readMiniMaxCliCredentials(options) {
211
210
  return readPortalCliOauthCredentials(resolveMiniMaxCliCredentialsPath(options?.homeDir), "minimax-portal");
212
211
  }
213
212
  /**
214
- * Read Claude Code credentials from the OpenClaw auth-profiles.json store.
215
- *
216
- * OpenClaw (which shares the same auth infrastructure) stores the Claude Code
217
- * OAuth token in ~/.openclaw/agents/main/agent/auth-profiles.json.
218
- * This is the most reliable source on Windows where the Keychain is unavailable.
219
- */
220
- function readOpenClawCredentials(options) {
221
- const baseDir = options?.homeDir ?? resolveUserPath("~");
222
- const raw = loadJsonFile(path.join(baseDir, OPENCLAW_AUTH_PROFILES_PATH));
223
- if (!raw || typeof raw !== "object") return null;
224
- const profiles = raw.profiles;
225
- if (!profiles) return null;
226
- const anthropicProfile = profiles["anthropic:default"];
227
- if (!anthropicProfile || anthropicProfile.provider !== "anthropic") return null;
228
- if (anthropicProfile.type === "token" && typeof anthropicProfile.token === "string") {
229
- const token = anthropicProfile.token;
230
- log.info("read anthropic credentials from openclaw auth-profiles", { type: "token" });
231
- return {
232
- type: "token",
233
- provider: "anthropic",
234
- token,
235
- expires: Date.now() + 365 * 24 * 60 * 60 * 1e3
236
- };
237
- }
238
- if (anthropicProfile.type === "oauth" && typeof anthropicProfile.access === "string" && typeof anthropicProfile.refresh === "string" && typeof anthropicProfile.expires === "number") {
239
- log.info("read anthropic oauth credentials from openclaw auth-profiles");
240
- return {
241
- type: "oauth",
242
- provider: "anthropic",
243
- access: anthropicProfile.access,
244
- refresh: anthropicProfile.refresh,
245
- expires: anthropicProfile.expires
246
- };
247
- }
248
- return null;
249
- }
250
- /**
251
213
  * Read Claude Code credentials from Windows Credential Manager.
252
214
  *
253
215
  * On Windows, the Claude CLI stores its OAuth token via the Windows
@@ -318,8 +280,6 @@ function readClaudeCliCredentials(options) {
318
280
  return parsed;
319
281
  }
320
282
  }
321
- const openClawCreds = readOpenClawCredentials({ homeDir: options?.homeDir });
322
- if (openClawCreds) return openClawCreds;
323
283
  return null;
324
284
  }
325
285
  function readCodexCliCredentials(options) {
@@ -696,6 +656,26 @@ function saveAuthProfileStore(store, agentDir) {
696
656
 
697
657
  //#endregion
698
658
  //#region src/agents/auth-profiles/profiles.ts
659
+ async function setAuthProfileOrder(params) {
660
+ const providerKey = normalizeProviderId(params.provider);
661
+ const sanitized = params.order && Array.isArray(params.order) ? params.order.map((entry) => String(entry).trim()).filter(Boolean) : [];
662
+ const deduped = [];
663
+ for (const entry of sanitized) if (!deduped.includes(entry)) deduped.push(entry);
664
+ return await updateAuthProfileStoreWithLock({
665
+ agentDir: params.agentDir,
666
+ updater: (store) => {
667
+ store.order = store.order ?? {};
668
+ if (deduped.length === 0) {
669
+ if (!store.order[providerKey]) return false;
670
+ delete store.order[providerKey];
671
+ if (Object.keys(store.order).length === 0) store.order = void 0;
672
+ return true;
673
+ }
674
+ store.order[providerKey] = deduped;
675
+ return true;
676
+ }
677
+ });
678
+ }
699
679
  function upsertAuthProfile(params) {
700
680
  const credential = params.credential.type === "api_key" ? {
701
681
  ...params.credential,
@@ -712,6 +692,32 @@ function listProfilesForProvider(store, provider) {
712
692
  const providerKey = normalizeProviderId(provider);
713
693
  return Object.entries(store.profiles).filter(([, cred]) => normalizeProviderId(cred.provider) === providerKey).map(([id]) => id);
714
694
  }
695
+ async function markAuthProfileGood(params) {
696
+ const { store, provider, profileId, agentDir } = params;
697
+ const updated = await updateAuthProfileStoreWithLock({
698
+ agentDir,
699
+ updater: (freshStore) => {
700
+ const profile = freshStore.profiles[profileId];
701
+ if (!profile || profile.provider !== provider) return false;
702
+ freshStore.lastGood = {
703
+ ...freshStore.lastGood,
704
+ [provider]: profileId
705
+ };
706
+ return true;
707
+ }
708
+ });
709
+ if (updated) {
710
+ store.lastGood = updated.lastGood;
711
+ return;
712
+ }
713
+ const profile = store.profiles[profileId];
714
+ if (!profile || profile.provider !== provider) return;
715
+ store.lastGood = {
716
+ ...store.lastGood,
717
+ [provider]: profileId
718
+ };
719
+ saveAuthProfileStore(store, agentDir);
720
+ }
715
721
 
716
722
  //#endregion
717
723
  //#region src/agents/auth-profiles/repair.ts
@@ -1013,11 +1019,156 @@ function isProfileInCooldown(store, profileId) {
1013
1019
  const unusableUntil = resolveProfileUnusableUntil$1(stats);
1014
1020
  return unusableUntil ? Date.now() < unusableUntil : false;
1015
1021
  }
1022
+ /**
1023
+ * Mark a profile as successfully used. Resets error count and updates lastUsed.
1024
+ * Uses store lock to avoid overwriting concurrent usage updates.
1025
+ */
1026
+ async function markAuthProfileUsed(params) {
1027
+ const { store, profileId, agentDir } = params;
1028
+ const updated = await updateAuthProfileStoreWithLock({
1029
+ agentDir,
1030
+ updater: (freshStore) => {
1031
+ if (!freshStore.profiles[profileId]) return false;
1032
+ freshStore.usageStats = freshStore.usageStats ?? {};
1033
+ freshStore.usageStats[profileId] = {
1034
+ ...freshStore.usageStats[profileId],
1035
+ lastUsed: Date.now(),
1036
+ errorCount: 0,
1037
+ cooldownUntil: void 0,
1038
+ disabledUntil: void 0,
1039
+ disabledReason: void 0,
1040
+ failureCounts: void 0
1041
+ };
1042
+ return true;
1043
+ }
1044
+ });
1045
+ if (updated) {
1046
+ store.usageStats = updated.usageStats;
1047
+ return;
1048
+ }
1049
+ if (!store.profiles[profileId]) return;
1050
+ store.usageStats = store.usageStats ?? {};
1051
+ store.usageStats[profileId] = {
1052
+ ...store.usageStats[profileId],
1053
+ lastUsed: Date.now(),
1054
+ errorCount: 0,
1055
+ cooldownUntil: void 0,
1056
+ disabledUntil: void 0,
1057
+ disabledReason: void 0,
1058
+ failureCounts: void 0
1059
+ };
1060
+ saveAuthProfileStore(store, agentDir);
1061
+ }
1062
+ function calculateAuthProfileCooldownMs(errorCount) {
1063
+ const normalized = Math.max(1, errorCount);
1064
+ return Math.min(3600 * 1e3, 60 * 1e3 * 5 ** Math.min(normalized - 1, 3));
1065
+ }
1066
+ function resolveAuthCooldownConfig(params) {
1067
+ const defaults = {
1068
+ billingBackoffHours: 5,
1069
+ billingMaxHours: 24,
1070
+ failureWindowHours: 24
1071
+ };
1072
+ const resolveHours = (value, fallback) => typeof value === "number" && Number.isFinite(value) && value > 0 ? value : fallback;
1073
+ const cooldowns = params.cfg?.auth?.cooldowns;
1074
+ const billingBackoffHours = resolveHours((() => {
1075
+ const map = cooldowns?.billingBackoffHoursByProvider;
1076
+ if (!map) return;
1077
+ for (const [key, value] of Object.entries(map)) if (normalizeProviderId(key) === params.providerId) return value;
1078
+ })() ?? cooldowns?.billingBackoffHours, defaults.billingBackoffHours);
1079
+ const billingMaxHours = resolveHours(cooldowns?.billingMaxHours, defaults.billingMaxHours);
1080
+ const failureWindowHours = resolveHours(cooldowns?.failureWindowHours, defaults.failureWindowHours);
1081
+ return {
1082
+ billingBackoffMs: billingBackoffHours * 60 * 60 * 1e3,
1083
+ billingMaxMs: billingMaxHours * 60 * 60 * 1e3,
1084
+ failureWindowMs: failureWindowHours * 60 * 60 * 1e3
1085
+ };
1086
+ }
1087
+ function calculateAuthProfileBillingDisableMsWithConfig(params) {
1088
+ const normalized = Math.max(1, params.errorCount);
1089
+ const baseMs = Math.max(6e4, params.baseMs);
1090
+ const maxMs = Math.max(baseMs, params.maxMs);
1091
+ const raw = baseMs * 2 ** Math.min(normalized - 1, 10);
1092
+ return Math.min(maxMs, raw);
1093
+ }
1016
1094
  function resolveProfileUnusableUntilForDisplay(store, profileId) {
1017
1095
  const stats = store.usageStats?.[profileId];
1018
1096
  if (!stats) return null;
1019
1097
  return resolveProfileUnusableUntil$1(stats);
1020
1098
  }
1099
+ function computeNextProfileUsageStats(params) {
1100
+ const windowMs = params.cfgResolved.failureWindowMs;
1101
+ const windowExpired = typeof params.existing.lastFailureAt === "number" && params.existing.lastFailureAt > 0 && params.now - params.existing.lastFailureAt > windowMs;
1102
+ const nextErrorCount = (windowExpired ? 0 : params.existing.errorCount ?? 0) + 1;
1103
+ const failureCounts = windowExpired ? {} : { ...params.existing.failureCounts };
1104
+ failureCounts[params.reason] = (failureCounts[params.reason] ?? 0) + 1;
1105
+ const updatedStats = {
1106
+ ...params.existing,
1107
+ errorCount: nextErrorCount,
1108
+ failureCounts,
1109
+ lastFailureAt: params.now
1110
+ };
1111
+ if (params.reason === "billing") {
1112
+ const backoffMs = calculateAuthProfileBillingDisableMsWithConfig({
1113
+ errorCount: failureCounts.billing ?? 1,
1114
+ baseMs: params.cfgResolved.billingBackoffMs,
1115
+ maxMs: params.cfgResolved.billingMaxMs
1116
+ });
1117
+ updatedStats.disabledUntil = params.now + backoffMs;
1118
+ updatedStats.disabledReason = "billing";
1119
+ } else {
1120
+ const backoffMs = calculateAuthProfileCooldownMs(nextErrorCount);
1121
+ updatedStats.cooldownUntil = params.now + backoffMs;
1122
+ }
1123
+ return updatedStats;
1124
+ }
1125
+ /**
1126
+ * Mark a profile as failed for a specific reason. Billing failures are treated
1127
+ * as "disabled" (longer backoff) vs the regular cooldown window.
1128
+ */
1129
+ async function markAuthProfileFailure(params) {
1130
+ const { store, profileId, reason, agentDir, cfg } = params;
1131
+ const updated = await updateAuthProfileStoreWithLock({
1132
+ agentDir,
1133
+ updater: (freshStore) => {
1134
+ const profile = freshStore.profiles[profileId];
1135
+ if (!profile) return false;
1136
+ freshStore.usageStats = freshStore.usageStats ?? {};
1137
+ const existing = freshStore.usageStats[profileId] ?? {};
1138
+ const now = Date.now();
1139
+ const cfgResolved = resolveAuthCooldownConfig({
1140
+ cfg,
1141
+ providerId: normalizeProviderId(profile.provider)
1142
+ });
1143
+ freshStore.usageStats[profileId] = computeNextProfileUsageStats({
1144
+ existing,
1145
+ now,
1146
+ reason,
1147
+ cfgResolved
1148
+ });
1149
+ return true;
1150
+ }
1151
+ });
1152
+ if (updated) {
1153
+ store.usageStats = updated.usageStats;
1154
+ return;
1155
+ }
1156
+ if (!store.profiles[profileId]) return;
1157
+ store.usageStats = store.usageStats ?? {};
1158
+ const existing = store.usageStats[profileId] ?? {};
1159
+ const now = Date.now();
1160
+ const cfgResolved = resolveAuthCooldownConfig({
1161
+ cfg,
1162
+ providerId: normalizeProviderId(store.profiles[profileId]?.provider ?? "")
1163
+ });
1164
+ store.usageStats[profileId] = computeNextProfileUsageStats({
1165
+ existing,
1166
+ now,
1167
+ reason,
1168
+ cfgResolved
1169
+ });
1170
+ saveAuthProfileStore(store, agentDir);
1171
+ }
1021
1172
 
1022
1173
  //#endregion
1023
1174
  //#region src/agents/auth-profiles/order.ts
@@ -1115,4 +1266,4 @@ function orderProfilesByMode(order, store) {
1115
1266
  var auth_profiles_exports = /* @__PURE__ */ __exportAll({ ensureAuthProfileStore: () => ensureAuthProfileStore });
1116
1267
 
1117
1268
  //#endregion
1118
- export { CODEX_CLI_PROFILE_ID as C, CLAUDE_CLI_PROFILE_ID as S, normalizeSecretInput as T, readCodexCliCredentialsCached as _, resolveApiKeyForProfile as a, saveJsonFile as b, upsertAuthProfile as c, saveAuthProfileStore as d, updateAuthProfileStoreWithLock as f, readClaudeCliCredentials as g, resolveAnimaAgentDir as h, resolveProfileUnusableUntilForDisplay as i, ensureAuthProfileStore as l, resolveAuthStorePathForDisplay as m, resolveAuthProfileOrder as n, repairOAuthProfileIdMismatch as o, resolveAuthStorePath as p, isProfileInCooldown as r, listProfilesForProvider as s, auth_profiles_exports as t, loadAuthProfileStore as u, readOpenClawCredentials as v, normalizeOptionalSecretInput as w, resolveAuthProfileDisplayLabel as x, loadJsonFile as y };
1269
+ export { saveJsonFile as C, normalizeOptionalSecretInput as D, CODEX_CLI_PROFILE_ID as E, normalizeSecretInput as O, loadJsonFile as S, CLAUDE_CLI_PROFILE_ID as T, resolveAuthStorePath as _, markAuthProfileUsed as a, readClaudeCliCredentials as b, repairOAuthProfileIdMismatch as c, setAuthProfileOrder as d, upsertAuthProfile as f, updateAuthProfileStoreWithLock as g, saveAuthProfileStore as h, markAuthProfileFailure as i, listProfilesForProvider as l, loadAuthProfileStore as m, resolveAuthProfileOrder as n, resolveProfileUnusableUntilForDisplay as o, ensureAuthProfileStore as p, isProfileInCooldown as r, resolveApiKeyForProfile as s, auth_profiles_exports as t, markAuthProfileGood as u, resolveAuthStorePathForDisplay as v, resolveAuthProfileDisplayLabel as w, readCodexCliCredentialsCached as x, resolveAnimaAgentDir as y };