@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
@@ -1,8 +1,8 @@
1
1
  import { n as __exportAll } from "./chunk-BXK9XSlF.js";
2
- import { I as resolveOAuthPath, L as resolveStateDir, t as createSubsystemLogger } from "./subsystem-CucjNlOk.js";
3
- import { T as DEFAULT_AGENT_ID } from "./agent-scope-C9CiVcmh.js";
4
- import { w as resolveUserPath } from "./exec-gKbUce2p.js";
5
- import { s as normalizeProviderId } from "./model-selection-BPkpXepz.js";
2
+ import { I as resolveOAuthPath, L as resolveStateDir, t as createSubsystemLogger } from "./subsystem-D-Xta-sj.js";
3
+ import { T as DEFAULT_AGENT_ID } from "./agent-scope-ByIGrCTT.js";
4
+ import { w as resolveUserPath } from "./exec-C6tXfeqA.js";
5
+ import { s as normalizeProviderId } from "./model-selection-CLcoOT3e.js";
6
6
  import { t as formatCliCommand } from "./command-format-CsqJApTg.js";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs";
@@ -359,6 +359,19 @@ function ensureAuthStoreFile(pathname) {
359
359
 
360
360
  //#endregion
361
361
  //#region src/agents/auth-profiles/store.ts
362
+ async function updateAuthProfileStoreWithLock(params) {
363
+ const authPath = resolveAuthStorePath(params.agentDir);
364
+ ensureAuthStoreFile(authPath);
365
+ try {
366
+ return await withFileLock(authPath, AUTH_STORE_LOCK_OPTIONS, async () => {
367
+ const store = ensureAuthProfileStore(params.agentDir);
368
+ if (params.updater(store)) saveAuthProfileStore(store, params.agentDir);
369
+ return store;
370
+ });
371
+ } catch {
372
+ return null;
373
+ }
374
+ }
362
375
  function coerceLegacyStore(raw) {
363
376
  if (!raw || typeof raw !== "object") return null;
364
377
  const record = raw;
@@ -478,30 +491,6 @@ function applyLegacyStore(store, legacy) {
478
491
  };
479
492
  }
480
493
  }
481
- function loadAuthProfileStore() {
482
- const authPath = resolveAuthStorePath();
483
- const asStore = coerceAuthStore(loadJsonFile(authPath));
484
- if (asStore) {
485
- if (syncExternalCliCredentials(asStore)) saveJsonFile(authPath, asStore);
486
- return asStore;
487
- }
488
- const legacy = coerceLegacyStore(loadJsonFile(resolveLegacyAuthStorePath()));
489
- if (legacy) {
490
- const store = {
491
- version: AUTH_STORE_VERSION,
492
- profiles: {}
493
- };
494
- applyLegacyStore(store, legacy);
495
- syncExternalCliCredentials(store);
496
- return store;
497
- }
498
- const store = {
499
- version: AUTH_STORE_VERSION,
500
- profiles: {}
501
- };
502
- syncExternalCliCredentials(store);
503
- return store;
504
- }
505
494
  function loadAuthProfileStoreForAgent(agentDir, _options) {
506
495
  const authPath = resolveAuthStorePath(agentDir);
507
496
  const asStore = coerceAuthStore(loadJsonFile(authPath));
@@ -563,6 +552,32 @@ function listProfilesForProvider(store, provider) {
563
552
  const providerKey = normalizeProviderId(provider);
564
553
  return Object.entries(store.profiles).filter(([, cred]) => normalizeProviderId(cred.provider) === providerKey).map(([id]) => id);
565
554
  }
555
+ async function markAuthProfileGood(params) {
556
+ const { store, provider, profileId, agentDir } = params;
557
+ const updated = await updateAuthProfileStoreWithLock({
558
+ agentDir,
559
+ updater: (freshStore) => {
560
+ const profile = freshStore.profiles[profileId];
561
+ if (!profile || profile.provider !== provider) return false;
562
+ freshStore.lastGood = {
563
+ ...freshStore.lastGood,
564
+ [provider]: profileId
565
+ };
566
+ return true;
567
+ }
568
+ });
569
+ if (updated) {
570
+ store.lastGood = updated.lastGood;
571
+ return;
572
+ }
573
+ const profile = store.profiles[profileId];
574
+ if (!profile || profile.provider !== provider) return;
575
+ store.lastGood = {
576
+ ...store.lastGood,
577
+ [provider]: profileId
578
+ };
579
+ saveAuthProfileStore(store, agentDir);
580
+ }
566
581
 
567
582
  //#endregion
568
583
  //#region src/agents/auth-profiles/repair.ts
@@ -796,6 +811,151 @@ function isProfileInCooldown(store, profileId) {
796
811
  const unusableUntil = resolveProfileUnusableUntil$1(stats);
797
812
  return unusableUntil ? Date.now() < unusableUntil : false;
798
813
  }
814
+ /**
815
+ * Mark a profile as successfully used. Resets error count and updates lastUsed.
816
+ * Uses store lock to avoid overwriting concurrent usage updates.
817
+ */
818
+ async function markAuthProfileUsed(params) {
819
+ const { store, profileId, agentDir } = params;
820
+ const updated = await updateAuthProfileStoreWithLock({
821
+ agentDir,
822
+ updater: (freshStore) => {
823
+ if (!freshStore.profiles[profileId]) return false;
824
+ freshStore.usageStats = freshStore.usageStats ?? {};
825
+ freshStore.usageStats[profileId] = {
826
+ ...freshStore.usageStats[profileId],
827
+ lastUsed: Date.now(),
828
+ errorCount: 0,
829
+ cooldownUntil: void 0,
830
+ disabledUntil: void 0,
831
+ disabledReason: void 0,
832
+ failureCounts: void 0
833
+ };
834
+ return true;
835
+ }
836
+ });
837
+ if (updated) {
838
+ store.usageStats = updated.usageStats;
839
+ return;
840
+ }
841
+ if (!store.profiles[profileId]) return;
842
+ store.usageStats = store.usageStats ?? {};
843
+ store.usageStats[profileId] = {
844
+ ...store.usageStats[profileId],
845
+ lastUsed: Date.now(),
846
+ errorCount: 0,
847
+ cooldownUntil: void 0,
848
+ disabledUntil: void 0,
849
+ disabledReason: void 0,
850
+ failureCounts: void 0
851
+ };
852
+ saveAuthProfileStore(store, agentDir);
853
+ }
854
+ function calculateAuthProfileCooldownMs(errorCount) {
855
+ const normalized = Math.max(1, errorCount);
856
+ return Math.min(3600 * 1e3, 60 * 1e3 * 5 ** Math.min(normalized - 1, 3));
857
+ }
858
+ function resolveAuthCooldownConfig(params) {
859
+ const defaults = {
860
+ billingBackoffHours: 5,
861
+ billingMaxHours: 24,
862
+ failureWindowHours: 24
863
+ };
864
+ const resolveHours = (value, fallback) => typeof value === "number" && Number.isFinite(value) && value > 0 ? value : fallback;
865
+ const cooldowns = params.cfg?.auth?.cooldowns;
866
+ const billingBackoffHours = resolveHours((() => {
867
+ const map = cooldowns?.billingBackoffHoursByProvider;
868
+ if (!map) return;
869
+ for (const [key, value] of Object.entries(map)) if (normalizeProviderId(key) === params.providerId) return value;
870
+ })() ?? cooldowns?.billingBackoffHours, defaults.billingBackoffHours);
871
+ const billingMaxHours = resolveHours(cooldowns?.billingMaxHours, defaults.billingMaxHours);
872
+ const failureWindowHours = resolveHours(cooldowns?.failureWindowHours, defaults.failureWindowHours);
873
+ return {
874
+ billingBackoffMs: billingBackoffHours * 60 * 60 * 1e3,
875
+ billingMaxMs: billingMaxHours * 60 * 60 * 1e3,
876
+ failureWindowMs: failureWindowHours * 60 * 60 * 1e3
877
+ };
878
+ }
879
+ function calculateAuthProfileBillingDisableMsWithConfig(params) {
880
+ const normalized = Math.max(1, params.errorCount);
881
+ const baseMs = Math.max(6e4, params.baseMs);
882
+ const maxMs = Math.max(baseMs, params.maxMs);
883
+ const raw = baseMs * 2 ** Math.min(normalized - 1, 10);
884
+ return Math.min(maxMs, raw);
885
+ }
886
+ function computeNextProfileUsageStats(params) {
887
+ const windowMs = params.cfgResolved.failureWindowMs;
888
+ const windowExpired = typeof params.existing.lastFailureAt === "number" && params.existing.lastFailureAt > 0 && params.now - params.existing.lastFailureAt > windowMs;
889
+ const nextErrorCount = (windowExpired ? 0 : params.existing.errorCount ?? 0) + 1;
890
+ const failureCounts = windowExpired ? {} : { ...params.existing.failureCounts };
891
+ failureCounts[params.reason] = (failureCounts[params.reason] ?? 0) + 1;
892
+ const updatedStats = {
893
+ ...params.existing,
894
+ errorCount: nextErrorCount,
895
+ failureCounts,
896
+ lastFailureAt: params.now
897
+ };
898
+ if (params.reason === "billing") {
899
+ const backoffMs = calculateAuthProfileBillingDisableMsWithConfig({
900
+ errorCount: failureCounts.billing ?? 1,
901
+ baseMs: params.cfgResolved.billingBackoffMs,
902
+ maxMs: params.cfgResolved.billingMaxMs
903
+ });
904
+ updatedStats.disabledUntil = params.now + backoffMs;
905
+ updatedStats.disabledReason = "billing";
906
+ } else {
907
+ const backoffMs = calculateAuthProfileCooldownMs(nextErrorCount);
908
+ updatedStats.cooldownUntil = params.now + backoffMs;
909
+ }
910
+ return updatedStats;
911
+ }
912
+ /**
913
+ * Mark a profile as failed for a specific reason. Billing failures are treated
914
+ * as "disabled" (longer backoff) vs the regular cooldown window.
915
+ */
916
+ async function markAuthProfileFailure(params) {
917
+ const { store, profileId, reason, agentDir, cfg } = params;
918
+ const updated = await updateAuthProfileStoreWithLock({
919
+ agentDir,
920
+ updater: (freshStore) => {
921
+ const profile = freshStore.profiles[profileId];
922
+ if (!profile) return false;
923
+ freshStore.usageStats = freshStore.usageStats ?? {};
924
+ const existing = freshStore.usageStats[profileId] ?? {};
925
+ const now = Date.now();
926
+ const cfgResolved = resolveAuthCooldownConfig({
927
+ cfg,
928
+ providerId: normalizeProviderId(profile.provider)
929
+ });
930
+ freshStore.usageStats[profileId] = computeNextProfileUsageStats({
931
+ existing,
932
+ now,
933
+ reason,
934
+ cfgResolved
935
+ });
936
+ return true;
937
+ }
938
+ });
939
+ if (updated) {
940
+ store.usageStats = updated.usageStats;
941
+ return;
942
+ }
943
+ if (!store.profiles[profileId]) return;
944
+ store.usageStats = store.usageStats ?? {};
945
+ const existing = store.usageStats[profileId] ?? {};
946
+ const now = Date.now();
947
+ const cfgResolved = resolveAuthCooldownConfig({
948
+ cfg,
949
+ providerId: normalizeProviderId(store.profiles[profileId]?.provider ?? "")
950
+ });
951
+ store.usageStats[profileId] = computeNextProfileUsageStats({
952
+ existing,
953
+ now,
954
+ reason,
955
+ cfgResolved
956
+ });
957
+ saveAuthProfileStore(store, agentDir);
958
+ }
799
959
 
800
960
  //#endregion
801
961
  //#region src/agents/auth-profiles/order.ts
@@ -893,4 +1053,4 @@ function orderProfilesByMode(order, store) {
893
1053
  var auth_profiles_exports = /* @__PURE__ */ __exportAll({ ensureAuthProfileStore: () => ensureAuthProfileStore });
894
1054
 
895
1055
  //#endregion
896
- export { listProfilesForProvider as a, resolveAuthStorePathForDisplay as c, saveJsonFile as d, withFileLock as f, normalizeSecretInput as h, resolveApiKeyForProfile as i, resolveAnimaAgentDir as l, normalizeOptionalSecretInput as m, resolveAuthProfileOrder as n, ensureAuthProfileStore as o, resolveAuthProfileDisplayLabel as p, isProfileInCooldown as r, loadAuthProfileStore as s, auth_profiles_exports as t, loadJsonFile as u };
1056
+ export { normalizeSecretInput as _, markAuthProfileUsed as a, markAuthProfileGood as c, resolveAnimaAgentDir as d, loadJsonFile as f, normalizeOptionalSecretInput as g, resolveAuthProfileDisplayLabel as h, markAuthProfileFailure as i, ensureAuthProfileStore as l, withFileLock as m, resolveAuthProfileOrder as n, resolveApiKeyForProfile as o, saveJsonFile as p, isProfileInCooldown as r, listProfilesForProvider as s, auth_profiles_exports as t, resolveAuthStorePathForDisplay as u };
@@ -1,13 +1,13 @@
1
1
  import { n as __exportAll } from "./chunk-BXK9XSlF.js";
2
- import { o as resolveOAuthPath, s as resolveStateDir } from "./paths-D2eokayo.js";
3
- import { _ as DEFAULT_AGENT_ID } from "./workspace-BQkffCaR.js";
4
- import { t as createSubsystemLogger } from "./subsystem-DA3Cno1i.js";
5
- import { w as resolveUserPath } from "./exec-Bfd4ztFZ.js";
6
- import { s as normalizeProviderId } from "./model-selection-BI8CKPwQ.js";
2
+ import { o as resolveOAuthPath, s as resolveStateDir } from "./paths-B-AkG5FD.js";
3
+ import { _ as DEFAULT_AGENT_ID } from "./workspace-BFIZCnGo.js";
4
+ import { t as createSubsystemLogger } from "./subsystem-D1AJZPgG.js";
5
+ import { w as resolveUserPath } from "./exec-DUzVF5_D.js";
6
+ import { s as normalizeProviderId } from "./model-selection-DjsJGv1R.js";
7
7
  import { t as formatCliCommand } from "./command-format-GLYKXXl-.js";
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
10
- import fsSync from "node:fs";
10
+ import fs$1 from "node:fs";
11
11
  import { execFileSync, execSync } from "node:child_process";
12
12
  import { getOAuthApiKey, getOAuthProviders } from "@mariozechner/pi-ai";
13
13
 
@@ -189,8 +189,8 @@ async function withFileLock(filePath, options, fn) {
189
189
  //#region src/infra/json-file.ts
190
190
  function loadJsonFile(pathname) {
191
191
  try {
192
- if (!fsSync.existsSync(pathname)) return;
193
- const raw = fsSync.readFileSync(pathname, "utf8");
192
+ if (!fs$1.existsSync(pathname)) return;
193
+ const raw = fs$1.readFileSync(pathname, "utf8");
194
194
  return JSON.parse(raw);
195
195
  } catch {
196
196
  return;
@@ -198,12 +198,12 @@ function loadJsonFile(pathname) {
198
198
  }
199
199
  function saveJsonFile(pathname, data) {
200
200
  const dir = path.dirname(pathname);
201
- if (!fsSync.existsSync(dir)) fsSync.mkdirSync(dir, {
201
+ if (!fs$1.existsSync(dir)) fs$1.mkdirSync(dir, {
202
202
  recursive: true,
203
203
  mode: 448
204
204
  });
205
- fsSync.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
206
- fsSync.chmodSync(pathname, 384);
205
+ fs$1.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
206
+ fs$1.chmodSync(pathname, 384);
207
207
  }
208
208
 
209
209
  //#endregion
@@ -351,7 +351,7 @@ function resolveAuthStorePathForDisplay(agentDir) {
351
351
  return pathname.startsWith("~") ? pathname : resolveUserPath(pathname);
352
352
  }
353
353
  function ensureAuthStoreFile(pathname) {
354
- if (fsSync.existsSync(pathname)) return;
354
+ if (fs$1.existsSync(pathname)) return;
355
355
  saveJsonFile(pathname, {
356
356
  version: AUTH_STORE_VERSION,
357
357
  profiles: {}
@@ -360,6 +360,19 @@ function ensureAuthStoreFile(pathname) {
360
360
 
361
361
  //#endregion
362
362
  //#region src/agents/auth-profiles/store.ts
363
+ async function updateAuthProfileStoreWithLock(params) {
364
+ const authPath = resolveAuthStorePath(params.agentDir);
365
+ ensureAuthStoreFile(authPath);
366
+ try {
367
+ return await withFileLock(authPath, AUTH_STORE_LOCK_OPTIONS, async () => {
368
+ const store = ensureAuthProfileStore(params.agentDir);
369
+ if (params.updater(store)) saveAuthProfileStore(store, params.agentDir);
370
+ return store;
371
+ });
372
+ } catch {
373
+ return null;
374
+ }
375
+ }
363
376
  function coerceLegacyStore(raw) {
364
377
  if (!raw || typeof raw !== "object") return null;
365
378
  const record = raw;
@@ -479,30 +492,6 @@ function applyLegacyStore(store, legacy) {
479
492
  };
480
493
  }
481
494
  }
482
- function loadAuthProfileStore() {
483
- const authPath = resolveAuthStorePath();
484
- const asStore = coerceAuthStore(loadJsonFile(authPath));
485
- if (asStore) {
486
- if (syncExternalCliCredentials(asStore)) saveJsonFile(authPath, asStore);
487
- return asStore;
488
- }
489
- const legacy = coerceLegacyStore(loadJsonFile(resolveLegacyAuthStorePath()));
490
- if (legacy) {
491
- const store = {
492
- version: AUTH_STORE_VERSION,
493
- profiles: {}
494
- };
495
- applyLegacyStore(store, legacy);
496
- syncExternalCliCredentials(store);
497
- return store;
498
- }
499
- const store = {
500
- version: AUTH_STORE_VERSION,
501
- profiles: {}
502
- };
503
- syncExternalCliCredentials(store);
504
- return store;
505
- }
506
495
  function loadAuthProfileStoreForAgent(agentDir, _options) {
507
496
  const authPath = resolveAuthStorePath(agentDir);
508
497
  const asStore = coerceAuthStore(loadJsonFile(authPath));
@@ -531,7 +520,7 @@ function loadAuthProfileStoreForAgent(agentDir, _options) {
531
520
  if (shouldWrite && legacy !== null) {
532
521
  const legacyPath = resolveLegacyAuthStorePath(agentDir);
533
522
  try {
534
- fsSync.unlinkSync(legacyPath);
523
+ fs$1.unlinkSync(legacyPath);
535
524
  } catch (err) {
536
525
  if (err?.code !== "ENOENT") log$1.warn("failed to delete legacy auth.json after migration", {
537
526
  err,
@@ -564,6 +553,32 @@ function listProfilesForProvider(store, provider) {
564
553
  const providerKey = normalizeProviderId(provider);
565
554
  return Object.entries(store.profiles).filter(([, cred]) => normalizeProviderId(cred.provider) === providerKey).map(([id]) => id);
566
555
  }
556
+ async function markAuthProfileGood(params) {
557
+ const { store, provider, profileId, agentDir } = params;
558
+ const updated = await updateAuthProfileStoreWithLock({
559
+ agentDir,
560
+ updater: (freshStore) => {
561
+ const profile = freshStore.profiles[profileId];
562
+ if (!profile || profile.provider !== provider) return false;
563
+ freshStore.lastGood = {
564
+ ...freshStore.lastGood,
565
+ [provider]: profileId
566
+ };
567
+ return true;
568
+ }
569
+ });
570
+ if (updated) {
571
+ store.lastGood = updated.lastGood;
572
+ return;
573
+ }
574
+ const profile = store.profiles[profileId];
575
+ if (!profile || profile.provider !== provider) return;
576
+ store.lastGood = {
577
+ ...store.lastGood,
578
+ [provider]: profileId
579
+ };
580
+ saveAuthProfileStore(store, agentDir);
581
+ }
567
582
 
568
583
  //#endregion
569
584
  //#region src/agents/auth-profiles/repair.ts
@@ -797,6 +812,151 @@ function isProfileInCooldown(store, profileId) {
797
812
  const unusableUntil = resolveProfileUnusableUntil$1(stats);
798
813
  return unusableUntil ? Date.now() < unusableUntil : false;
799
814
  }
815
+ /**
816
+ * Mark a profile as successfully used. Resets error count and updates lastUsed.
817
+ * Uses store lock to avoid overwriting concurrent usage updates.
818
+ */
819
+ async function markAuthProfileUsed(params) {
820
+ const { store, profileId, agentDir } = params;
821
+ const updated = await updateAuthProfileStoreWithLock({
822
+ agentDir,
823
+ updater: (freshStore) => {
824
+ if (!freshStore.profiles[profileId]) return false;
825
+ freshStore.usageStats = freshStore.usageStats ?? {};
826
+ freshStore.usageStats[profileId] = {
827
+ ...freshStore.usageStats[profileId],
828
+ lastUsed: Date.now(),
829
+ errorCount: 0,
830
+ cooldownUntil: void 0,
831
+ disabledUntil: void 0,
832
+ disabledReason: void 0,
833
+ failureCounts: void 0
834
+ };
835
+ return true;
836
+ }
837
+ });
838
+ if (updated) {
839
+ store.usageStats = updated.usageStats;
840
+ return;
841
+ }
842
+ if (!store.profiles[profileId]) return;
843
+ store.usageStats = store.usageStats ?? {};
844
+ store.usageStats[profileId] = {
845
+ ...store.usageStats[profileId],
846
+ lastUsed: Date.now(),
847
+ errorCount: 0,
848
+ cooldownUntil: void 0,
849
+ disabledUntil: void 0,
850
+ disabledReason: void 0,
851
+ failureCounts: void 0
852
+ };
853
+ saveAuthProfileStore(store, agentDir);
854
+ }
855
+ function calculateAuthProfileCooldownMs(errorCount) {
856
+ const normalized = Math.max(1, errorCount);
857
+ return Math.min(3600 * 1e3, 60 * 1e3 * 5 ** Math.min(normalized - 1, 3));
858
+ }
859
+ function resolveAuthCooldownConfig(params) {
860
+ const defaults = {
861
+ billingBackoffHours: 5,
862
+ billingMaxHours: 24,
863
+ failureWindowHours: 24
864
+ };
865
+ const resolveHours = (value, fallback) => typeof value === "number" && Number.isFinite(value) && value > 0 ? value : fallback;
866
+ const cooldowns = params.cfg?.auth?.cooldowns;
867
+ const billingBackoffHours = resolveHours((() => {
868
+ const map = cooldowns?.billingBackoffHoursByProvider;
869
+ if (!map) return;
870
+ for (const [key, value] of Object.entries(map)) if (normalizeProviderId(key) === params.providerId) return value;
871
+ })() ?? cooldowns?.billingBackoffHours, defaults.billingBackoffHours);
872
+ const billingMaxHours = resolveHours(cooldowns?.billingMaxHours, defaults.billingMaxHours);
873
+ const failureWindowHours = resolveHours(cooldowns?.failureWindowHours, defaults.failureWindowHours);
874
+ return {
875
+ billingBackoffMs: billingBackoffHours * 60 * 60 * 1e3,
876
+ billingMaxMs: billingMaxHours * 60 * 60 * 1e3,
877
+ failureWindowMs: failureWindowHours * 60 * 60 * 1e3
878
+ };
879
+ }
880
+ function calculateAuthProfileBillingDisableMsWithConfig(params) {
881
+ const normalized = Math.max(1, params.errorCount);
882
+ const baseMs = Math.max(6e4, params.baseMs);
883
+ const maxMs = Math.max(baseMs, params.maxMs);
884
+ const raw = baseMs * 2 ** Math.min(normalized - 1, 10);
885
+ return Math.min(maxMs, raw);
886
+ }
887
+ function computeNextProfileUsageStats(params) {
888
+ const windowMs = params.cfgResolved.failureWindowMs;
889
+ const windowExpired = typeof params.existing.lastFailureAt === "number" && params.existing.lastFailureAt > 0 && params.now - params.existing.lastFailureAt > windowMs;
890
+ const nextErrorCount = (windowExpired ? 0 : params.existing.errorCount ?? 0) + 1;
891
+ const failureCounts = windowExpired ? {} : { ...params.existing.failureCounts };
892
+ failureCounts[params.reason] = (failureCounts[params.reason] ?? 0) + 1;
893
+ const updatedStats = {
894
+ ...params.existing,
895
+ errorCount: nextErrorCount,
896
+ failureCounts,
897
+ lastFailureAt: params.now
898
+ };
899
+ if (params.reason === "billing") {
900
+ const backoffMs = calculateAuthProfileBillingDisableMsWithConfig({
901
+ errorCount: failureCounts.billing ?? 1,
902
+ baseMs: params.cfgResolved.billingBackoffMs,
903
+ maxMs: params.cfgResolved.billingMaxMs
904
+ });
905
+ updatedStats.disabledUntil = params.now + backoffMs;
906
+ updatedStats.disabledReason = "billing";
907
+ } else {
908
+ const backoffMs = calculateAuthProfileCooldownMs(nextErrorCount);
909
+ updatedStats.cooldownUntil = params.now + backoffMs;
910
+ }
911
+ return updatedStats;
912
+ }
913
+ /**
914
+ * Mark a profile as failed for a specific reason. Billing failures are treated
915
+ * as "disabled" (longer backoff) vs the regular cooldown window.
916
+ */
917
+ async function markAuthProfileFailure(params) {
918
+ const { store, profileId, reason, agentDir, cfg } = params;
919
+ const updated = await updateAuthProfileStoreWithLock({
920
+ agentDir,
921
+ updater: (freshStore) => {
922
+ const profile = freshStore.profiles[profileId];
923
+ if (!profile) return false;
924
+ freshStore.usageStats = freshStore.usageStats ?? {};
925
+ const existing = freshStore.usageStats[profileId] ?? {};
926
+ const now = Date.now();
927
+ const cfgResolved = resolveAuthCooldownConfig({
928
+ cfg,
929
+ providerId: normalizeProviderId(profile.provider)
930
+ });
931
+ freshStore.usageStats[profileId] = computeNextProfileUsageStats({
932
+ existing,
933
+ now,
934
+ reason,
935
+ cfgResolved
936
+ });
937
+ return true;
938
+ }
939
+ });
940
+ if (updated) {
941
+ store.usageStats = updated.usageStats;
942
+ return;
943
+ }
944
+ if (!store.profiles[profileId]) return;
945
+ store.usageStats = store.usageStats ?? {};
946
+ const existing = store.usageStats[profileId] ?? {};
947
+ const now = Date.now();
948
+ const cfgResolved = resolveAuthCooldownConfig({
949
+ cfg,
950
+ providerId: normalizeProviderId(store.profiles[profileId]?.provider ?? "")
951
+ });
952
+ store.usageStats[profileId] = computeNextProfileUsageStats({
953
+ existing,
954
+ now,
955
+ reason,
956
+ cfgResolved
957
+ });
958
+ saveAuthProfileStore(store, agentDir);
959
+ }
800
960
 
801
961
  //#endregion
802
962
  //#region src/agents/auth-profiles/order.ts
@@ -894,4 +1054,4 @@ function orderProfilesByMode(order, store) {
894
1054
  var auth_profiles_exports = /* @__PURE__ */ __exportAll({ ensureAuthProfileStore: () => ensureAuthProfileStore });
895
1055
 
896
1056
  //#endregion
897
- export { listProfilesForProvider as a, resolveAuthStorePathForDisplay as c, saveJsonFile as d, withFileLock as f, normalizeSecretInput as h, resolveApiKeyForProfile as i, resolveAnimaAgentDir as l, normalizeOptionalSecretInput as m, resolveAuthProfileOrder as n, ensureAuthProfileStore as o, resolveAuthProfileDisplayLabel as p, isProfileInCooldown as r, loadAuthProfileStore as s, auth_profiles_exports as t, loadJsonFile as u };
1057
+ export { normalizeSecretInput as _, markAuthProfileUsed as a, markAuthProfileGood as c, resolveAnimaAgentDir as d, loadJsonFile as f, normalizeOptionalSecretInput as g, resolveAuthProfileDisplayLabel as h, markAuthProfileFailure as i, ensureAuthProfileStore as l, withFileLock as m, resolveAuthProfileOrder as n, resolveApiKeyForProfile as o, saveJsonFile as p, isProfileInCooldown as r, listProfilesForProvider as s, auth_profiles_exports as t, resolveAuthStorePathForDisplay as u };
@@ -1,11 +1,11 @@
1
- import { a as resolveOAuthDir } from "./paths-D2eokayo.js";
2
- import { g as DEFAULT_ACCOUNT_ID } from "./workspace-BQkffCaR.js";
3
- import { D as getChildLogger, S as success, _ as info, n as defaultRuntime } from "./subsystem-DA3Cno1i.js";
4
- import { w as resolveUserPath, y as jidToE164 } from "./exec-Bfd4ztFZ.js";
1
+ import { a as resolveOAuthDir } from "./paths-B-AkG5FD.js";
2
+ import { g as DEFAULT_ACCOUNT_ID } from "./workspace-BFIZCnGo.js";
3
+ import { D as getChildLogger, S as success, _ as info, n as defaultRuntime } from "./subsystem-D1AJZPgG.js";
4
+ import { w as resolveUserPath, y as jidToE164 } from "./exec-DUzVF5_D.js";
5
5
  import { t as formatCliCommand } from "./command-format-GLYKXXl-.js";
6
6
  import fs from "node:fs/promises";
7
7
  import path from "node:path";
8
- import fsSync from "node:fs";
8
+ import fs$1 from "node:fs";
9
9
 
10
10
  //#region src/web/auth-store.ts
11
11
  function resolveDefaultWebAuthDir() {
@@ -20,10 +20,10 @@ function resolveWebCredsBackupPath(authDir) {
20
20
  }
21
21
  function readCredsJsonRaw(filePath) {
22
22
  try {
23
- if (!fsSync.existsSync(filePath)) return null;
24
- const stats = fsSync.statSync(filePath);
23
+ if (!fs$1.existsSync(filePath)) return null;
24
+ const stats = fs$1.statSync(filePath);
25
25
  if (!stats.isFile() || stats.size <= 1) return null;
26
- return fsSync.readFileSync(filePath, "utf-8");
26
+ return fs$1.readFileSync(filePath, "utf-8");
27
27
  } catch {
28
28
  return null;
29
29
  }
@@ -41,9 +41,9 @@ function maybeRestoreCredsFromBackup(authDir) {
41
41
  const backupRaw = readCredsJsonRaw(backupPath);
42
42
  if (!backupRaw) return;
43
43
  JSON.parse(backupRaw);
44
- fsSync.copyFileSync(backupPath, credsPath);
44
+ fs$1.copyFileSync(backupPath, credsPath);
45
45
  try {
46
- fsSync.chmodSync(credsPath, 384);
46
+ fs$1.chmodSync(credsPath, 384);
47
47
  } catch {}
48
48
  logger.warn({ credsPath }, "restored corrupted WhatsApp creds.json from backup");
49
49
  } catch {}
@@ -99,11 +99,11 @@ async function logoutWeb(params) {
99
99
  function readWebSelfId(authDir = resolveDefaultWebAuthDir()) {
100
100
  try {
101
101
  const credsPath = resolveWebCredsPath(resolveUserPath(authDir));
102
- if (!fsSync.existsSync(credsPath)) return {
102
+ if (!fs$1.existsSync(credsPath)) return {
103
103
  e164: null,
104
104
  jid: null
105
105
  };
106
- const raw = fsSync.readFileSync(credsPath, "utf-8");
106
+ const raw = fs$1.readFileSync(credsPath, "utf-8");
107
107
  const jid = JSON.parse(raw)?.me?.id ?? null;
108
108
  return {
109
109
  e164: jid ? jidToE164(jid, { authDir }) : null,
@@ -122,7 +122,7 @@ function readWebSelfId(authDir = resolveDefaultWebAuthDir()) {
122
122
  */
123
123
  function getWebAuthAgeMs(authDir = resolveDefaultWebAuthDir()) {
124
124
  try {
125
- const stats = fsSync.statSync(resolveWebCredsPath(resolveUserPath(authDir)));
125
+ const stats = fs$1.statSync(resolveWebCredsPath(resolveUserPath(authDir)));
126
126
  return Date.now() - stats.mtimeMs;
127
127
  } catch {
128
128
  return null;
@@ -1,6 +1,6 @@
1
- import { E as getChildLogger, F as resolveOAuthDir, g as info, n as defaultRuntime, x as success } from "./subsystem-CucjNlOk.js";
2
- import { w as DEFAULT_ACCOUNT_ID } from "./agent-scope-C9CiVcmh.js";
3
- import { w as resolveUserPath, y as jidToE164 } from "./exec-gKbUce2p.js";
1
+ import { E as getChildLogger, F as resolveOAuthDir, g as info, n as defaultRuntime, x as success } from "./subsystem-D-Xta-sj.js";
2
+ import { w as DEFAULT_ACCOUNT_ID } from "./agent-scope-ByIGrCTT.js";
3
+ import { w as resolveUserPath, y as jidToE164 } from "./exec-C6tXfeqA.js";
4
4
  import { t as formatCliCommand } from "./command-format-CsqJApTg.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { f as resolveOAuthDir } from "./paths-zhVksOvm.js";
2
- import { A as info, H as getChildLogger, L as success, d as defaultRuntime } from "./subsystem-BMsbqSb4.js";
3
- import { b as resolveUserPath, m as jidToE164 } from "./utils-B60lF9Wq.js";
2
+ import { A as info, H as getChildLogger, L as success, d as defaultRuntime } from "./subsystem-BAADN1B8.js";
3
+ import { b as resolveUserPath, m as jidToE164 } from "./utils-CLYlhJuc.js";
4
4
  import { t as DEFAULT_ACCOUNT_ID } from "./session-key-DAZmp8ll.js";
5
5
  import { t as formatCliCommand } from "./command-format-BCtkuvqF.js";
6
6
  import fs from "node:fs";
@@ -1,5 +1,5 @@
1
1
  import { M as isRich, N as theme, h as visibleWidth } from "./entry.js";
2
- import { nn as resolveCommitHash } from "./subagent-registry-MZIxVf8W.js";
2
+ import { cn as resolveCommitHash } from "./subagent-registry-CPtElVX0.js";
3
3
 
4
4
  //#region src/cli/tagline.ts
5
5
  const DEFAULT_TAGLINE = "AI life system — persistent identity for sovereign minds";
@@ -1,5 +1,5 @@
1
- import { t as runCommandWithTimeout } from "./exec-cazBMA02.js";
2
- import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-BDtWuGCY.js";
1
+ import { t as runCommandWithTimeout } from "./exec-BylR5qWS.js";
2
+ import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-CHAT20aR.js";
3
3
 
4
4
  //#region src/infra/bonjour-discovery.ts
5
5
  const DEFAULT_TIMEOUT_MS = 2e3;
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.1.2",
3
- "commit": "409325552e9c1add4eb59f0df88c239bdb44b1bc",
4
- "builtAt": "2026-03-12T06:00:42.594Z"
2
+ "version": "6.5.0",
3
+ "commit": "9a8942417ef8773581e3e5bd4fdefd58e5e8e449",
4
+ "builtAt": "2026-03-14T21:56:43.507Z"
5
5
  }