@noxsoft/anima 2.0.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 (1570) hide show
  1. package/CHANGELOG.md +2065 -0
  2. package/LICENSE +23 -0
  3. package/README.md +47 -0
  4. package/anima.mjs +56 -0
  5. package/dist/accounts-Cc5E4IDO.js +260 -0
  6. package/dist/accounts-CcVrwKqv.js +259 -0
  7. package/dist/acp-cli-BbvR4dNz.js +1081 -0
  8. package/dist/acp-cli-CePIi7gD.js +1084 -0
  9. package/dist/agent-CSrGrAg1.js +725 -0
  10. package/dist/agent-NgeWEcBM.js +725 -0
  11. package/dist/agent-events-UF0DxwKS.js +182 -0
  12. package/dist/agent-scope-BVf4aSwY.js +112 -0
  13. package/dist/agent-scope-OZi7lb8S.js +452 -0
  14. package/dist/agent-scope-V1bi9OYL.js +452 -0
  15. package/dist/agents-Bw06WthM.js +809 -0
  16. package/dist/agents.config-Dvo2ULxs.js +182 -0
  17. package/dist/agents.config-d6H0_3oj.js +182 -0
  18. package/dist/argv-DqUHKf0o.js +73 -0
  19. package/dist/audit-Buja3mbS.js +2401 -0
  20. package/dist/audit-CWIz6mM7.js +2401 -0
  21. package/dist/auth-91o2YM96.js +648 -0
  22. package/dist/auth-choice-7dFCqblU.js +2681 -0
  23. package/dist/auth-choice-S_0K9gpl.js +2681 -0
  24. package/dist/auth-health-CctpRTdC.js +149 -0
  25. package/dist/auth-health-DoHai4eD.js +149 -0
  26. package/dist/auth-lZ26wsbN.js +639 -0
  27. package/dist/auth-profiles-Cz2rxrav.js +2690 -0
  28. package/dist/auth-profiles-_5BsNObq.js +1565 -0
  29. package/dist/banner-ieAUufx9.js +294 -0
  30. package/dist/boolean-Ce2-qkSB.js +30 -0
  31. package/dist/boolean-Wzu0-e0P.js +30 -0
  32. package/dist/brew-CVZkr0GU.js +46 -0
  33. package/dist/brew-DAdyX1_1.js +46 -0
  34. package/dist/browser-cli-D_qgYDik.js +1679 -0
  35. package/dist/browser-cli-DldrdaCW.js +1676 -0
  36. package/dist/budget-ChKARYPY.js +132 -0
  37. package/dist/budget-Dspr6N_e.js +132 -0
  38. package/dist/build-info.json +5 -0
  39. package/dist/bundled/boot-md/HOOK.md +19 -0
  40. package/dist/bundled/boot-md/handler.js +861 -0
  41. package/dist/bundled/bootstrap-extra-files/HOOK.md +53 -0
  42. package/dist/bundled/bootstrap-extra-files/handler.js +39 -0
  43. package/dist/bundled/command-logger/HOOK.md +122 -0
  44. package/dist/bundled/command-logger/handler.js +55 -0
  45. package/dist/bundled/session-memory/HOOK.md +109 -0
  46. package/dist/bundled/session-memory/handler.js +128 -0
  47. package/dist/call-DPzNR_Qi.js +282 -0
  48. package/dist/call-ktoEhkOQ.js +282 -0
  49. package/dist/canvas-host/a2ui/.bundle.hash +1 -0
  50. package/dist/canvas-host/a2ui/a2ui.bundle.js +19040 -0
  51. package/dist/canvas-host/a2ui/index.html +307 -0
  52. package/dist/catalog-BAayBt1L.js +185 -0
  53. package/dist/catalog-BNsf97BM.js +185 -0
  54. package/dist/channel-options-C3GV4Fgg.js +33 -0
  55. package/dist/channel-options-DJ4GNfwk.js +32 -0
  56. package/dist/channel-selection-CujyiWGM.js +51 -0
  57. package/dist/channel-selection-DfGpCyh2.js +51 -0
  58. package/dist/channel-web-D42mzlCJ.js +2162 -0
  59. package/dist/channels-cli-BAtARz4A.js +1306 -0
  60. package/dist/channels-cli-Ddo_tIRR.js +1304 -0
  61. package/dist/channels-status-issues-DBc1pU_R.js +18 -0
  62. package/dist/channels-status-issues-DjO9MHIG.js +18 -0
  63. package/dist/chrome-Bi6iZ5sG.js +1601 -0
  64. package/dist/chrome-DNSv7Cpy.js +1629 -0
  65. package/dist/chrome-DScZx4Lk.js +1601 -0
  66. package/dist/chunk-mxPVo000.js +348 -0
  67. package/dist/clack-prompter-B0kl7shw.js +92 -0
  68. package/dist/clack-prompter-B1YxZdRy.js +92 -0
  69. package/dist/cli/daemon-cli.js +9 -0
  70. package/dist/cli-D3hUnL_G.js +101 -0
  71. package/dist/cli-DDwD6VgH.js +99 -0
  72. package/dist/cli-session-CP7ZH2-6.js +5463 -0
  73. package/dist/cli-session-oXJQpenl.js +5408 -0
  74. package/dist/cli-utils-BTBABPX9.js +40 -0
  75. package/dist/cli-utils-DtAxdCte.js +40 -0
  76. package/dist/client-C1avc0vD.js +1692 -0
  77. package/dist/client-CC94YZrT.js +1692 -0
  78. package/dist/clipboard-B2fBy8tG.js +31 -0
  79. package/dist/clipboard-BbGnZskJ.js +31 -0
  80. package/dist/command-format-Clp46jkj.js +38 -0
  81. package/dist/command-format-DELazozB.js +52 -0
  82. package/dist/command-format-SkzzRqR1.js +52 -0
  83. package/dist/command-options-CSbuuqHr.js +8 -0
  84. package/dist/command-options-Cp1tf96a.js +8 -0
  85. package/dist/command-registry-DDGudZEQ.js +248 -0
  86. package/dist/commands-CRcFD5MO.js +509 -0
  87. package/dist/commands-Dh40OpQL.js +509 -0
  88. package/dist/commands-registry-Bd0xbvwG.js +766 -0
  89. package/dist/commands-registry-DYfRSVF3.js +766 -0
  90. package/dist/common-D6bu0zHC.js +287 -0
  91. package/dist/common-zW9Y2P1B.js +287 -0
  92. package/dist/completion-cli-B9Cn374l.js +431 -0
  93. package/dist/completion-cli-BEHghUFx.js +432 -0
  94. package/dist/config-Bmm8tmZF.js +6523 -0
  95. package/dist/config-CHc5qzaI.js +5704 -0
  96. package/dist/config-Co6UXXF5.js +11 -0
  97. package/dist/config-Xm0j9LUa.js +5705 -0
  98. package/dist/config-cli-9ZbCHoV8.js +247 -0
  99. package/dist/config-cli-sxuGl29N.js +244 -0
  100. package/dist/config-guard-BwRD-b9Z.js +93 -0
  101. package/dist/config-guard-Dy7wyhAX.js +76 -0
  102. package/dist/config-sync-Bllc1TJ4.js +89 -0
  103. package/dist/config-sync-mfuOoGHl.js +89 -0
  104. package/dist/configure-CCyVzQZ7.js +1006 -0
  105. package/dist/configure-Nntbxt4t.js +1008 -0
  106. package/dist/constants-BwBn5CGe.js +65 -0
  107. package/dist/constants-O8yBqCBv.js +65 -0
  108. package/dist/context-DKaQYnCH.js +60 -0
  109. package/dist/control-service-BeOtZCCS.js +72 -0
  110. package/dist/control-service-vyKJ-XUp.js +72 -0
  111. package/dist/cron-cli-BasqtsJ0.js +451 -0
  112. package/dist/cron-cli-C8XzIpyX.js +448 -0
  113. package/dist/daemon-cli-cwL2GI5i.js +565 -0
  114. package/dist/daemon-cli-sjDh2xbf.js +566 -0
  115. package/dist/daemon-cli.js +13117 -0
  116. package/dist/daemon-runtime-BuMT6nck.js +460 -0
  117. package/dist/daemon-runtime-CTvi3m4D.js +460 -0
  118. package/dist/dangerous-tools-5ObDWy1N.js +32 -0
  119. package/dist/dangerous-tools-Jwr7jqNw.js +32 -0
  120. package/dist/deliver-D6cdhg5m.js +1097 -0
  121. package/dist/deliver-DlNDKlA4.js +1162 -0
  122. package/dist/deliver-bC6iI_rv.js +1097 -0
  123. package/dist/delivery-queue-B6IHz4Ry.js +220 -0
  124. package/dist/delivery-queue-TnQykYsg.js +220 -0
  125. package/dist/deps-C9kDG-Ru.js +42 -0
  126. package/dist/devices-cli-BE-Nib4Y.js +198 -0
  127. package/dist/devices-cli-GyPlNRyd.js +195 -0
  128. package/dist/diagnostics-Dj75aEHN.js +35 -0
  129. package/dist/diagnostics-DlIw6fqD.js +35 -0
  130. package/dist/directory-cli-BEaIvWkc.js +246 -0
  131. package/dist/directory-cli-CZ_-DP5Z.js +243 -0
  132. package/dist/dispatcher-Bkcui7jz.js +100 -0
  133. package/dist/dispatcher-C1B6cT_7.js +100 -0
  134. package/dist/display-A8k-mxv8.js +171 -0
  135. package/dist/display-BDOsXu8F.js +171 -0
  136. package/dist/dns-cli-BUzpVoMv.js +200 -0
  137. package/dist/dns-cli-DstQOMQt.js +197 -0
  138. package/dist/dock-DbxBBv30.js +753 -0
  139. package/dist/dock-cPBY4qGl.js +753 -0
  140. package/dist/docs-cli-BWp6p-Tq.js +161 -0
  141. package/dist/docs-cli-x22FnZfL.js +159 -0
  142. package/dist/doctor-B5HFw-nC.js +1813 -0
  143. package/dist/doctor-DnEyqGcQ.js +1815 -0
  144. package/dist/doctor-completion-BMEPXgVg.js +92 -0
  145. package/dist/doctor-completion-usPeH2ol.js +92 -0
  146. package/dist/doctor-config-flow-CS0WFnjL.js +1232 -0
  147. package/dist/doctor-config-flow-Cs4O_Kmq.js +1232 -0
  148. package/dist/engine-DgK9s3lk.js +561 -0
  149. package/dist/engine-ZSd5I5JN.js +561 -0
  150. package/dist/entry.js +1560 -0
  151. package/dist/env-0lJfCPsw.js +32 -0
  152. package/dist/errors-A_GqUU6B.js +26 -0
  153. package/dist/errors-CHow2wtt.js +37 -0
  154. package/dist/errors-Cojm0Kl7.js +37 -0
  155. package/dist/exec-BenD3A5l.js +1167 -0
  156. package/dist/exec-BizYYQgP.js +255 -0
  157. package/dist/exec-Bv3pyjeM.js +255 -0
  158. package/dist/exec-approvals-BP9AhCSw.js +1221 -0
  159. package/dist/exec-approvals-CdLmKX2R.js +1221 -0
  160. package/dist/exec-approvals-cli-25CGlFNw.js +368 -0
  161. package/dist/exec-approvals-cli-BXZ-hOlT.js +371 -0
  162. package/dist/extensionAPI.js +8542 -0
  163. package/dist/format-CjKG6raZ.js +20 -0
  164. package/dist/format-Mq6iU0_5.js +20 -0
  165. package/dist/format-duration-Cm3xh8xz.js +58 -0
  166. package/dist/format-duration-DhWzz_5b.js +58 -0
  167. package/dist/format-relative-C6kUHuOj.js +55 -0
  168. package/dist/format-relative-sy9iviQN.js +55 -0
  169. package/dist/frontmatter-YijVi0FQ.js +204 -0
  170. package/dist/gateway-cli-B9uc0RCI.js +19971 -0
  171. package/dist/gateway-cli-D8Qz7kCf.js +19972 -0
  172. package/dist/gateway-rpc-Ch9mCYEB.js +28 -0
  173. package/dist/gateway-rpc-DBhcdLFs.js +28 -0
  174. package/dist/github-copilot-auth-D6ZErYqa.js +1418 -0
  175. package/dist/github-copilot-auth-DGmyWJms.js +1418 -0
  176. package/dist/gmail-setup-utils-BPo_LkKI.js +428 -0
  177. package/dist/gmail-setup-utils-D3Yqgor7.js +428 -0
  178. package/dist/health-DsTZaAzV.js +1258 -0
  179. package/dist/health-V6dGthLA.js +1253 -0
  180. package/dist/health-format-CdP99j3Y.js +208 -0
  181. package/dist/health-format-JEChH08S.js +208 -0
  182. package/dist/heartbeat-visibility-CkL00WRR.js +98 -0
  183. package/dist/heartbeat-visibility-Cmni9671.js +98 -0
  184. package/dist/help-format-DUBI91Ti.js +17 -0
  185. package/dist/help-format-Dl4bsrLI.js +17 -0
  186. package/dist/helpers-9N2Q5aZj.js +25 -0
  187. package/dist/helpers-DLgbkcEn.js +25 -0
  188. package/dist/helpers-ZKNRexvX.js +10 -0
  189. package/dist/helpers-eJFa4K6r.js +10 -0
  190. package/dist/hooks-cli-Cu0D0fPS.js +993 -0
  191. package/dist/hooks-cli-E63uffR6.js +991 -0
  192. package/dist/hooks-status-B-e96dZj.js +356 -0
  193. package/dist/hooks-status-C_9sE0ox.js +356 -0
  194. package/dist/image-ops-Dlt3T7th.js +541 -0
  195. package/dist/image-ops-omlvdfah.js +541 -0
  196. package/dist/index.js +499 -0
  197. package/dist/init-Bm04RagW.js +122 -0
  198. package/dist/init-CaJBf4p1.js +122 -0
  199. package/dist/input-provenance-BgwBljRz.js +35 -0
  200. package/dist/input-provenance-DJBdpeKk.js +35 -0
  201. package/dist/input-provenance-iu26y0GH.js +35 -0
  202. package/dist/installs-C2iMRBVz.js +383 -0
  203. package/dist/installs-D-cPGdCw.js +383 -0
  204. package/dist/internal-hooks-DFTIurVM.js +77 -0
  205. package/dist/ipv4-C5QxzriV.js +1964 -0
  206. package/dist/ipv4-TxR9wQCQ.js +1964 -0
  207. package/dist/is-main-Dt9DTcH1.js +25 -0
  208. package/dist/is-main-cB3p7uob.js +25 -0
  209. package/dist/lanes-CNxj3tit.js +232 -0
  210. package/dist/legacy-names-CKU7tKQR.js +8 -0
  211. package/dist/lifecycle-core-B_7XRcvF.js +388 -0
  212. package/dist/lifecycle-core-By83PVAK.js +387 -0
  213. package/dist/links-BfjHVTB_.js +15 -0
  214. package/dist/links-DPGe0OHw.js +15 -0
  215. package/dist/llm-slug-generator.js +62 -0
  216. package/dist/loader-6Qkyybg1.js +87 -0
  217. package/dist/loader-Dmc0KyQK.js +87 -0
  218. package/dist/logging-54nXj81z.js +1 -0
  219. package/dist/logging-BdnOSVPD.js +1 -0
  220. package/dist/logging-DB6BQmhi.js +15 -0
  221. package/dist/logging-mcb66J0p.js +15 -0
  222. package/dist/login--8D8kyRy.js +61 -0
  223. package/dist/login-C-ugYHKt.js +61 -0
  224. package/dist/login-CX5Q2fYl.js +59 -0
  225. package/dist/login-qr-BLmGvITg.js +321 -0
  226. package/dist/login-qr-BNtuXLKL.js +323 -0
  227. package/dist/login-qr-PcyTC7Ra.js +326 -0
  228. package/dist/logs-cli-BEQVkiXp.js +245 -0
  229. package/dist/logs-cli-CIqiVMkY.js +242 -0
  230. package/dist/manager-Bsy9ifug.js +3244 -0
  231. package/dist/manager-CDgcZ51c.js +3246 -0
  232. package/dist/manager-D7QQ5XrE.js +3244 -0
  233. package/dist/manifest-registry-CW1zCyRF.js +748 -0
  234. package/dist/manifest-registry-D4lM2RdV.js +748 -0
  235. package/dist/markdown-tables-BT1X6jqH.js +347 -0
  236. package/dist/markdown-tables-DHgOK2vI.js +348 -0
  237. package/dist/media-THyainiE.js +1342 -0
  238. package/dist/memory-cli-BmIyAOZm.js +869 -0
  239. package/dist/memory-cli-BoXdfCLT.js +868 -0
  240. package/dist/message-channel-dSTVVCyX.js +110 -0
  241. package/dist/message-channel-w4F2b2F6.js +110 -0
  242. package/dist/migrate-BR6iAIjO.js +157 -0
  243. package/dist/migrate-D0EcMs0f.js +157 -0
  244. package/dist/mime-B1ZoR53M.js +145 -0
  245. package/dist/mime-Bm1xTtpY.js +145 -0
  246. package/dist/mime-C1RlpUSs.js +145 -0
  247. package/dist/model-param-b-C4BL7w0Z.js +16 -0
  248. package/dist/model-param-b-DPwyNGn8.js +16 -0
  249. package/dist/model-selection-BnEobs_z.js +2692 -0
  250. package/dist/models-KLd8Evmq.js +2545 -0
  251. package/dist/models-cli-D4UFQLid.js +258 -0
  252. package/dist/models-cli-DJHs5rJF.js +2739 -0
  253. package/dist/net-B5lXhYLV.js +218 -0
  254. package/dist/net-CDi_lJMH.js +88 -0
  255. package/dist/node-cli-BNCJUkgA.js +1319 -0
  256. package/dist/node-cli-C7S0vk0_.js +1322 -0
  257. package/dist/node-match-8XZnaid6.js +34 -0
  258. package/dist/node-match-B3Osv-5C.js +34 -0
  259. package/dist/node-service-BFxHJsno.js +67 -0
  260. package/dist/node-service-DUnan4uK.js +67 -0
  261. package/dist/nodes-cli-DOXhYgc8.js +1200 -0
  262. package/dist/nodes-cli-wvPZ3HwH.js +1197 -0
  263. package/dist/nodes-screen-1YiLkqr5.js +234 -0
  264. package/dist/nodes-screen-DZeD8hE5.js +234 -0
  265. package/dist/normalize-Dlcj9D3K.js +52 -0
  266. package/dist/normalize-GDK8JTNW.js +52 -0
  267. package/dist/note-Bi8Wb8DV.js +73 -0
  268. package/dist/note-uiuPxhyX.js +73 -0
  269. package/dist/npm-registry-spec-B-XIShkB.js +351 -0
  270. package/dist/npm-registry-spec-za3itb5Y.js +351 -0
  271. package/dist/onboard-DiTRW6CH.js +1165 -0
  272. package/dist/onboard-channels-BgruIpyg.js +672 -0
  273. package/dist/onboard-channels-gyq0VHHp.js +672 -0
  274. package/dist/onboard-helpers-BEaUind0.js +365 -0
  275. package/dist/onboard-helpers-f5Zprayl.js +365 -0
  276. package/dist/onboard-lH3XPWAK.js +1166 -0
  277. package/dist/onboarding-D0FOkXGt.js +910 -0
  278. package/dist/onboarding-kQVgbiIR.js +911 -0
  279. package/dist/openclaw-root-0yHXtO35.js +88 -0
  280. package/dist/openclaw-root-C85WMnVV.js +88 -0
  281. package/dist/orchestrator-CYTk7mq6.js +355 -0
  282. package/dist/orchestrator-J6ELnJXl.js +355 -0
  283. package/dist/outbound-BEq0qbPR.js +214 -0
  284. package/dist/outbound-BSVD-rjk.js +2062 -0
  285. package/dist/outbound-DXijk0db.js +214 -0
  286. package/dist/outbound-send-deps-ANnAhImn.js +14 -0
  287. package/dist/outbound-send-deps-BNGPU7jV.js +55 -0
  288. package/dist/pairing-cli-DKUyb6eK.js +118 -0
  289. package/dist/pairing-cli-ET2p_mXH.js +121 -0
  290. package/dist/pairing-store-CGYSwICJ.js +388 -0
  291. package/dist/pairing-store-DqQPqRMe.js +388 -0
  292. package/dist/parse-6-2MDhdT.js +23 -0
  293. package/dist/parse-CpunmTOS.js +23 -0
  294. package/dist/parse-log-line-Bqh1SSzC.js +44 -0
  295. package/dist/parse-log-line-DUZCjXbl.js +44 -0
  296. package/dist/parse-port-BKB9Exlg.js +12 -0
  297. package/dist/parse-port-DrfvwwiL.js +12 -0
  298. package/dist/parse-timeout-Di_tcEmi.js +16 -0
  299. package/dist/parse-timeout-vVlESvju.js +16 -0
  300. package/dist/path-env-Bu6k0jDQ.js +89 -0
  301. package/dist/path-env-C0zQSjw8.js +89 -0
  302. package/dist/paths-BTc4nk-6.js +126 -0
  303. package/dist/paths-BgUi2Z2G.js +54 -0
  304. package/dist/paths-C6VCWKo3.js +238 -0
  305. package/dist/paths-CCxa0o9c.js +222 -0
  306. package/dist/paths-CxRf2rBG.js +129 -0
  307. package/dist/paths-DcVEkYX5.js +54 -0
  308. package/dist/paths-hcX1Gqg5.js +129 -0
  309. package/dist/pi-auth-json-BzX-qyRo.js +82 -0
  310. package/dist/pi-auth-json-eesA38iW.js +78 -0
  311. package/dist/pi-auth-json-uEDdgg8K.js +80 -0
  312. package/dist/pi-embedded-C1Nl7L89.js +22 -0
  313. package/dist/pi-model-discovery-BkqhoPls.js +20 -0
  314. package/dist/pi-model-discovery-CQOWUAmK.js +3 -0
  315. package/dist/pi-model-discovery-DsRqYJLy.js +20 -0
  316. package/dist/pi-tools.policy-D9AUlreI.js +200 -0
  317. package/dist/pi-tools.policy-DRDm3v-2.js +200 -0
  318. package/dist/plugin-auto-enable-C-JwYMlZ.js +282 -0
  319. package/dist/plugin-auto-enable-DLIDBBfi.js +282 -0
  320. package/dist/plugin-registry-Bp8mivr-.js +32 -0
  321. package/dist/plugin-registry-CP7KgCvC.js +32 -0
  322. package/dist/plugin-sdk/account-id.d.ts +1 -0
  323. package/dist/plugin-sdk/account-id.js +15 -0
  324. package/dist/plugin-sdk/agents/agent-paths.d.ts +6 -0
  325. package/dist/plugin-sdk/agents/agent-scope.d.ts +37 -0
  326. package/dist/plugin-sdk/agents/anima-tools.d.ts +1 -0
  327. package/dist/plugin-sdk/agents/apply-patch-update.d.ts +10 -0
  328. package/dist/plugin-sdk/agents/apply-patch.d.ts +35 -0
  329. package/dist/plugin-sdk/agents/auth-profiles/constants.d.ts +20 -0
  330. package/dist/plugin-sdk/agents/auth-profiles/display.d.ts +7 -0
  331. package/dist/plugin-sdk/agents/auth-profiles/doctor.d.ts +8 -0
  332. package/dist/plugin-sdk/agents/auth-profiles/external-cli-sync.d.ts +7 -0
  333. package/dist/plugin-sdk/agents/auth-profiles/oauth.d.ts +12 -0
  334. package/dist/plugin-sdk/agents/auth-profiles/order.d.ts +8 -0
  335. package/dist/plugin-sdk/agents/auth-profiles/paths.d.ts +4 -0
  336. package/dist/plugin-sdk/agents/auth-profiles/profiles.d.ts +23 -0
  337. package/dist/plugin-sdk/agents/auth-profiles/repair.d.ts +14 -0
  338. package/dist/plugin-sdk/agents/auth-profiles/session-override.d.ts +18 -0
  339. package/dist/plugin-sdk/agents/auth-profiles/store.d.ts +10 -0
  340. package/dist/plugin-sdk/agents/auth-profiles/types.d.ts +60 -0
  341. package/dist/plugin-sdk/agents/auth-profiles/usage.d.ts +47 -0
  342. package/dist/plugin-sdk/agents/auth-profiles.d.ts +11 -0
  343. package/dist/plugin-sdk/agents/bash-process-registry.d.ts +70 -0
  344. package/dist/plugin-sdk/agents/bash-tools.d.ts +4 -0
  345. package/dist/plugin-sdk/agents/bash-tools.exec-runtime.d.ts +73 -0
  346. package/dist/plugin-sdk/agents/bash-tools.exec.d.ts +55 -0
  347. package/dist/plugin-sdk/agents/bash-tools.process.d.ts +7 -0
  348. package/dist/plugin-sdk/agents/bash-tools.shared.d.ts +48 -0
  349. package/dist/plugin-sdk/agents/bedrock-discovery.d.ts +9 -0
  350. package/dist/plugin-sdk/agents/bootstrap-files.d.ts +25 -0
  351. package/dist/plugin-sdk/agents/bootstrap-hooks.d.ts +10 -0
  352. package/dist/plugin-sdk/agents/channel-tools.d.ts +27 -0
  353. package/dist/plugin-sdk/agents/chutes-oauth.d.ts +46 -0
  354. package/dist/plugin-sdk/agents/cli-backends.d.ts +8 -0
  355. package/dist/plugin-sdk/agents/cli-credentials.d.ts +83 -0
  356. package/dist/plugin-sdk/agents/cli-runner/helpers.d.ts +76 -0
  357. package/dist/plugin-sdk/agents/cli-runner.d.ts +41 -0
  358. package/dist/plugin-sdk/agents/cli-session.d.ts +3 -0
  359. package/dist/plugin-sdk/agents/cloudflare-ai-gateway.d.ts +22 -0
  360. package/dist/plugin-sdk/agents/context.d.ts +1 -0
  361. package/dist/plugin-sdk/agents/current-time.d.ts +17 -0
  362. package/dist/plugin-sdk/agents/date-time.d.ts +13 -0
  363. package/dist/plugin-sdk/agents/defaults.d.ts +3 -0
  364. package/dist/plugin-sdk/agents/docs-path.d.ts +6 -0
  365. package/dist/plugin-sdk/agents/failover-error.d.ts +33 -0
  366. package/dist/plugin-sdk/agents/glob-pattern.d.ts +18 -0
  367. package/dist/plugin-sdk/agents/huggingface-models.d.ts +17 -0
  368. package/dist/plugin-sdk/agents/identity-avatar.d.ts +15 -0
  369. package/dist/plugin-sdk/agents/identity-file.d.ts +12 -0
  370. package/dist/plugin-sdk/agents/identity.d.ts +25 -0
  371. package/dist/plugin-sdk/agents/lanes.d.ts +3 -0
  372. package/dist/plugin-sdk/agents/memory-search.d.ts +66 -0
  373. package/dist/plugin-sdk/agents/minimax-vlm.d.ts +7 -0
  374. package/dist/plugin-sdk/agents/model-alias-lines.d.ts +2 -0
  375. package/dist/plugin-sdk/agents/model-auth.d.ts +36 -0
  376. package/dist/plugin-sdk/agents/model-catalog.d.ts +25 -0
  377. package/dist/plugin-sdk/agents/model-fallback.d.ts +40 -0
  378. package/dist/plugin-sdk/agents/model-selection.d.ts +94 -0
  379. package/dist/plugin-sdk/agents/models-config.d.ts +13 -0
  380. package/dist/plugin-sdk/agents/models-config.providers.d.ts +37 -0
  381. package/dist/plugin-sdk/agents/ollama-stream.d.ts +45 -0
  382. package/dist/plugin-sdk/agents/openclaw-tools.d.ts +46 -0
  383. package/dist/plugin-sdk/agents/pi-auth-json.d.ts +14 -0
  384. package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +7 -0
  385. package/dist/plugin-sdk/agents/pi-embedded-runner/model.d.ts +1 -0
  386. package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +5 -0
  387. package/dist/plugin-sdk/agents/pi-embedded-runner.d.ts +25 -0
  388. package/dist/plugin-sdk/agents/pi-embedded-utils.d.ts +7 -0
  389. package/dist/plugin-sdk/agents/pi-embedded.d.ts +25 -0
  390. package/dist/plugin-sdk/agents/pi-model-discovery.d.ts +4 -0
  391. package/dist/plugin-sdk/agents/pi-settings.d.ts +19 -0
  392. package/dist/plugin-sdk/agents/pi-tools.abort.d.ts +2 -0
  393. package/dist/plugin-sdk/agents/pi-tools.before-tool-call.d.ts +29 -0
  394. package/dist/plugin-sdk/agents/pi-tools.d.ts +69 -0
  395. package/dist/plugin-sdk/agents/pi-tools.policy.d.ts +37 -0
  396. package/dist/plugin-sdk/agents/pi-tools.read.d.ts +44 -0
  397. package/dist/plugin-sdk/agents/pi-tools.schema.d.ts +3 -0
  398. package/dist/plugin-sdk/agents/pi-tools.types.d.ts +2 -0
  399. package/dist/plugin-sdk/agents/pty-dsr.d.ts +5 -0
  400. package/dist/plugin-sdk/agents/pty-keys.d.ts +13 -0
  401. package/dist/plugin-sdk/agents/sandbox/browser-bridges.d.ts +7 -0
  402. package/dist/plugin-sdk/agents/sandbox/browser.d.ts +12 -0
  403. package/dist/plugin-sdk/agents/sandbox/config-hash.d.ts +17 -0
  404. package/dist/plugin-sdk/agents/sandbox/config.d.ts +26 -0
  405. package/dist/plugin-sdk/agents/sandbox/constants.d.ts +19 -0
  406. package/dist/plugin-sdk/agents/sandbox/context.d.ts +12 -0
  407. package/dist/plugin-sdk/agents/sandbox/docker.d.ts +40 -0
  408. package/dist/plugin-sdk/agents/sandbox/fs-bridge.d.ts +56 -0
  409. package/dist/plugin-sdk/agents/sandbox/fs-paths.d.ts +28 -0
  410. package/dist/plugin-sdk/agents/sandbox/manage.d.ts +13 -0
  411. package/dist/plugin-sdk/agents/sandbox/prune.d.ts +3 -0
  412. package/dist/plugin-sdk/agents/sandbox/registry.d.ts +31 -0
  413. package/dist/plugin-sdk/agents/sandbox/runtime-status.d.ts +18 -0
  414. package/dist/plugin-sdk/agents/sandbox/shared.d.ts +4 -0
  415. package/dist/plugin-sdk/agents/sandbox/tool-policy.d.ts +4 -0
  416. package/dist/plugin-sdk/agents/sandbox/types.d.ts +76 -0
  417. package/dist/plugin-sdk/agents/sandbox/types.docker.d.ts +25 -0
  418. package/dist/plugin-sdk/agents/sandbox/workspace.d.ts +1 -0
  419. package/dist/plugin-sdk/agents/sandbox-paths.d.ts +23 -0
  420. package/dist/plugin-sdk/agents/sandbox.d.ts +8 -0
  421. package/dist/plugin-sdk/agents/schema/clean-for-gemini.d.ts +2 -0
  422. package/dist/plugin-sdk/agents/schema/typebox.d.ts +14 -0
  423. package/dist/plugin-sdk/agents/session-slug.d.ts +1 -0
  424. package/dist/plugin-sdk/agents/session-write-lock.d.ts +21 -0
  425. package/dist/plugin-sdk/agents/shell-utils.d.ts +7 -0
  426. package/dist/plugin-sdk/agents/skills/bundled-dir.d.ts +7 -0
  427. package/dist/plugin-sdk/agents/skills/config.d.ts +13 -0
  428. package/dist/plugin-sdk/agents/skills/env-overrides.d.ts +10 -0
  429. package/dist/plugin-sdk/agents/skills/frontmatter.d.ts +6 -0
  430. package/dist/plugin-sdk/agents/skills/plugin-skills.d.ts +5 -0
  431. package/dist/plugin-sdk/agents/skills/refresh.d.ts +19 -0
  432. package/dist/plugin-sdk/agents/skills/serialize.d.ts +1 -0
  433. package/dist/plugin-sdk/agents/skills/types.d.ts +80 -0
  434. package/dist/plugin-sdk/agents/skills/workspace.d.ts +49 -0
  435. package/dist/plugin-sdk/agents/skills.d.ts +7 -0
  436. package/dist/plugin-sdk/agents/subagent-announce-queue.d.ts +23 -0
  437. package/dist/plugin-sdk/agents/subagent-announce.d.ts +34 -0
  438. package/dist/plugin-sdk/agents/subagent-depth.d.ts +11 -0
  439. package/dist/plugin-sdk/agents/subagent-registry.d.ts +62 -0
  440. package/dist/plugin-sdk/agents/subagent-registry.store.d.ts +5 -0
  441. package/dist/plugin-sdk/agents/synthetic-models.d.ts +160 -0
  442. package/dist/plugin-sdk/agents/system-prompt-params.d.ts +30 -0
  443. package/dist/plugin-sdk/agents/system-prompt-report.d.ts +20 -0
  444. package/dist/plugin-sdk/agents/system-prompt.d.ts +78 -0
  445. package/dist/plugin-sdk/agents/timeout.d.ts +8 -0
  446. package/dist/plugin-sdk/agents/together-models.d.ts +4 -0
  447. package/dist/plugin-sdk/agents/tool-images.d.ts +19 -0
  448. package/dist/plugin-sdk/agents/tool-policy-pipeline.d.ts +27 -0
  449. package/dist/plugin-sdk/agents/tool-policy.d.ts +39 -0
  450. package/dist/plugin-sdk/agents/tool-summaries.d.ts +2 -0
  451. package/dist/plugin-sdk/agents/tools/agent-step.d.ts +15 -0
  452. package/dist/plugin-sdk/agents/tools/agents-list-tool.d.ts +6 -0
  453. package/dist/plugin-sdk/agents/tools/browser-tool.d.ts +5 -0
  454. package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +50 -0
  455. package/dist/plugin-sdk/agents/tools/canvas-tool.d.ts +2 -0
  456. package/dist/plugin-sdk/agents/tools/common.d.ts +56 -0
  457. package/dist/plugin-sdk/agents/tools/cron-tool.d.ts +6 -0
  458. package/dist/plugin-sdk/agents/tools/discord-actions-guild.d.ts +4 -0
  459. package/dist/plugin-sdk/agents/tools/discord-actions-messaging.d.ts +4 -0
  460. package/dist/plugin-sdk/agents/tools/discord-actions-moderation.d.ts +4 -0
  461. package/dist/plugin-sdk/agents/tools/discord-actions-presence.d.ts +4 -0
  462. package/dist/plugin-sdk/agents/tools/discord-actions.d.ts +3 -0
  463. package/dist/plugin-sdk/agents/tools/gateway-tool.d.ts +6 -0
  464. package/dist/plugin-sdk/agents/tools/gateway.d.ts +14 -0
  465. package/dist/plugin-sdk/agents/tools/image-tool.d.ts +35 -0
  466. package/dist/plugin-sdk/agents/tools/image-tool.helpers.d.ts +21 -0
  467. package/dist/plugin-sdk/agents/tools/memory-tool.d.ts +10 -0
  468. package/dist/plugin-sdk/agents/tools/message-tool.d.ts +18 -0
  469. package/dist/plugin-sdk/agents/tools/nodes-tool.d.ts +6 -0
  470. package/dist/plugin-sdk/agents/tools/nodes-utils.d.ts +20 -0
  471. package/dist/plugin-sdk/agents/tools/session-status-tool.d.ts +6 -0
  472. package/dist/plugin-sdk/agents/tools/sessions-announce-target.d.ts +5 -0
  473. package/dist/plugin-sdk/agents/tools/sessions-helpers.d.ts +90 -0
  474. package/dist/plugin-sdk/agents/tools/sessions-history-tool.d.ts +5 -0
  475. package/dist/plugin-sdk/agents/tools/sessions-list-tool.d.ts +5 -0
  476. package/dist/plugin-sdk/agents/tools/sessions-send-helpers.d.ts +34 -0
  477. package/dist/plugin-sdk/agents/tools/sessions-send-tool.a2a.d.ts +12 -0
  478. package/dist/plugin-sdk/agents/tools/sessions-send-tool.d.ts +7 -0
  479. package/dist/plugin-sdk/agents/tools/sessions-spawn-tool.d.ts +15 -0
  480. package/dist/plugin-sdk/agents/tools/slack-actions.d.ts +15 -0
  481. package/dist/plugin-sdk/agents/tools/subagents-tool.d.ts +4 -0
  482. package/dist/plugin-sdk/agents/tools/telegram-actions.d.ts +9 -0
  483. package/dist/plugin-sdk/agents/tools/tts-tool.d.ts +7 -0
  484. package/dist/plugin-sdk/agents/tools/web-fetch-utils.d.ts +18 -0
  485. package/dist/plugin-sdk/agents/tools/web-fetch.d.ts +25 -0
  486. package/dist/plugin-sdk/agents/tools/web-search.d.ts +71 -0
  487. package/dist/plugin-sdk/agents/tools/web-shared.d.ts +17 -0
  488. package/dist/plugin-sdk/agents/tools/web-tools.d.ts +2 -0
  489. package/dist/plugin-sdk/agents/tools/whatsapp-actions.d.ts +3 -0
  490. package/dist/plugin-sdk/agents/usage.d.ts +45 -0
  491. package/dist/plugin-sdk/agents/venice-models.d.ts +238 -0
  492. package/dist/plugin-sdk/agents/workspace-dir.d.ts +2 -0
  493. package/dist/plugin-sdk/agents/workspace-run.d.ts +18 -0
  494. package/dist/plugin-sdk/agents/workspace-templates.d.ts +6 -0
  495. package/dist/plugin-sdk/agents/workspace.d.ts +34 -0
  496. package/dist/plugin-sdk/auto-reply/chunk.d.ts +45 -0
  497. package/dist/plugin-sdk/auto-reply/command-auth.d.ts +17 -0
  498. package/dist/plugin-sdk/auto-reply/command-detection.d.ts +13 -0
  499. package/dist/plugin-sdk/auto-reply/commands-args.d.ts +3 -0
  500. package/dist/plugin-sdk/auto-reply/commands-registry.d.ts +54 -0
  501. package/dist/plugin-sdk/auto-reply/commands-registry.data.d.ts +3 -0
  502. package/dist/plugin-sdk/auto-reply/commands-registry.types.d.ts +66 -0
  503. package/dist/plugin-sdk/auto-reply/dispatch.d.ts +32 -0
  504. package/dist/plugin-sdk/auto-reply/envelope.d.ts +58 -0
  505. package/dist/plugin-sdk/auto-reply/group-activation.d.ts +6 -0
  506. package/dist/plugin-sdk/auto-reply/heartbeat-reply-payload.d.ts +2 -0
  507. package/dist/plugin-sdk/auto-reply/heartbeat.d.ts +26 -0
  508. package/dist/plugin-sdk/auto-reply/inbound-debounce.d.ts +16 -0
  509. package/dist/plugin-sdk/auto-reply/media-note.d.ts +2 -0
  510. package/dist/plugin-sdk/auto-reply/model.d.ts +8 -0
  511. package/dist/plugin-sdk/auto-reply/reply/abort.d.ts +22 -0
  512. package/dist/plugin-sdk/auto-reply/reply/agent-runner-execution.d.ts +49 -0
  513. package/dist/plugin-sdk/auto-reply/reply/agent-runner-helpers.d.ts +17 -0
  514. package/dist/plugin-sdk/auto-reply/reply/agent-runner-memory.d.ts +20 -0
  515. package/dist/plugin-sdk/auto-reply/reply/agent-runner-payloads.d.ts +25 -0
  516. package/dist/plugin-sdk/auto-reply/reply/agent-runner-utils.d.ts +30 -0
  517. package/dist/plugin-sdk/auto-reply/reply/agent-runner.d.ts +38 -0
  518. package/dist/plugin-sdk/auto-reply/reply/bash-command.d.ts +19 -0
  519. package/dist/plugin-sdk/auto-reply/reply/block-reply-coalescer.d.ts +15 -0
  520. package/dist/plugin-sdk/auto-reply/reply/block-reply-pipeline.d.ts +31 -0
  521. package/dist/plugin-sdk/auto-reply/reply/block-streaming.d.ts +22 -0
  522. package/dist/plugin-sdk/auto-reply/reply/body.d.ts +10 -0
  523. package/dist/plugin-sdk/auto-reply/reply/commands-allowlist.d.ts +2 -0
  524. package/dist/plugin-sdk/auto-reply/reply/commands-approve.d.ts +2 -0
  525. package/dist/plugin-sdk/auto-reply/reply/commands-bash.d.ts +2 -0
  526. package/dist/plugin-sdk/auto-reply/reply/commands-compact.d.ts +2 -0
  527. package/dist/plugin-sdk/auto-reply/reply/commands-config.d.ts +3 -0
  528. package/dist/plugin-sdk/auto-reply/reply/commands-context-report.d.ts +3 -0
  529. package/dist/plugin-sdk/auto-reply/reply/commands-context.d.ts +12 -0
  530. package/dist/plugin-sdk/auto-reply/reply/commands-core.d.ts +2 -0
  531. package/dist/plugin-sdk/auto-reply/reply/commands-info.d.ts +10 -0
  532. package/dist/plugin-sdk/auto-reply/reply/commands-models.d.ts +23 -0
  533. package/dist/plugin-sdk/auto-reply/reply/commands-plugin.d.ts +13 -0
  534. package/dist/plugin-sdk/auto-reply/reply/commands-session.d.ts +7 -0
  535. package/dist/plugin-sdk/auto-reply/reply/commands-status.d.ts +25 -0
  536. package/dist/plugin-sdk/auto-reply/reply/commands-subagents.d.ts +13 -0
  537. package/dist/plugin-sdk/auto-reply/reply/commands-tts.d.ts +2 -0
  538. package/dist/plugin-sdk/auto-reply/reply/commands-types.d.ts +60 -0
  539. package/dist/plugin-sdk/auto-reply/reply/commands.d.ts +4 -0
  540. package/dist/plugin-sdk/auto-reply/reply/config-commands.d.ts +15 -0
  541. package/dist/plugin-sdk/auto-reply/reply/config-value.d.ts +4 -0
  542. package/dist/plugin-sdk/auto-reply/reply/debug-commands.d.ts +16 -0
  543. package/dist/plugin-sdk/auto-reply/reply/directive-handling.auth.d.ts +19 -0
  544. package/dist/plugin-sdk/auto-reply/reply/directive-handling.d.ts +6 -0
  545. package/dist/plugin-sdk/auto-reply/reply/directive-handling.fast-lane.d.ts +7 -0
  546. package/dist/plugin-sdk/auto-reply/reply/directive-handling.impl.d.ts +3 -0
  547. package/dist/plugin-sdk/auto-reply/reply/directive-handling.model-picker.d.ts +13 -0
  548. package/dist/plugin-sdk/auto-reply/reply/directive-handling.model.d.ts +42 -0
  549. package/dist/plugin-sdk/auto-reply/reply/directive-handling.params.d.ts +51 -0
  550. package/dist/plugin-sdk/auto-reply/reply/directive-handling.parse.d.ts +62 -0
  551. package/dist/plugin-sdk/auto-reply/reply/directive-handling.persist.d.ts +37 -0
  552. package/dist/plugin-sdk/auto-reply/reply/directive-handling.queue-validation.d.ts +10 -0
  553. package/dist/plugin-sdk/auto-reply/reply/directive-handling.shared.d.ts +16 -0
  554. package/dist/plugin-sdk/auto-reply/reply/directive-parsing.d.ts +5 -0
  555. package/dist/plugin-sdk/auto-reply/reply/directives.d.ts +38 -0
  556. package/dist/plugin-sdk/auto-reply/reply/dispatch-from-config.d.ts +16 -0
  557. package/dist/plugin-sdk/auto-reply/reply/dispatcher-registry.d.ts +24 -0
  558. package/dist/plugin-sdk/auto-reply/reply/elevated-unavailable.d.ts +8 -0
  559. package/dist/plugin-sdk/auto-reply/reply/exec/directive.d.ts +20 -0
  560. package/dist/plugin-sdk/auto-reply/reply/exec.d.ts +1 -0
  561. package/dist/plugin-sdk/auto-reply/reply/followup-runner.d.ts +16 -0
  562. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-apply.d.ts +64 -0
  563. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-utils.d.ts +2 -0
  564. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +92 -0
  565. package/dist/plugin-sdk/auto-reply/reply/get-reply-inline-actions.d.ts +59 -0
  566. package/dist/plugin-sdk/auto-reply/reply/get-reply-run.d.ts +69 -0
  567. package/dist/plugin-sdk/auto-reply/reply/get-reply.d.ts +4 -0
  568. package/dist/plugin-sdk/auto-reply/reply/groups.d.ts +26 -0
  569. package/dist/plugin-sdk/auto-reply/reply/history.d.ts +72 -0
  570. package/dist/plugin-sdk/auto-reply/reply/inbound-context.d.ts +8 -0
  571. package/dist/plugin-sdk/auto-reply/reply/inbound-dedupe.d.ts +8 -0
  572. package/dist/plugin-sdk/auto-reply/reply/inbound-meta.d.ts +3 -0
  573. package/dist/plugin-sdk/auto-reply/reply/inbound-text.d.ts +1 -0
  574. package/dist/plugin-sdk/auto-reply/reply/line-directives.d.ts +22 -0
  575. package/dist/plugin-sdk/auto-reply/reply/memory-flush.d.ts +23 -0
  576. package/dist/plugin-sdk/auto-reply/reply/mentions.d.ts +19 -0
  577. package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +64 -0
  578. package/dist/plugin-sdk/auto-reply/reply/normalize-reply.d.ts +13 -0
  579. package/dist/plugin-sdk/auto-reply/reply/provider-dispatcher.d.ts +19 -0
  580. package/dist/plugin-sdk/auto-reply/reply/queue/cleanup.d.ts +6 -0
  581. package/dist/plugin-sdk/auto-reply/reply/queue/directive.d.ts +15 -0
  582. package/dist/plugin-sdk/auto-reply/reply/queue/drain.d.ts +2 -0
  583. package/dist/plugin-sdk/auto-reply/reply/queue/enqueue.d.ts +3 -0
  584. package/dist/plugin-sdk/auto-reply/reply/queue/normalize.d.ts +3 -0
  585. package/dist/plugin-sdk/auto-reply/reply/queue/settings.d.ts +2 -0
  586. package/dist/plugin-sdk/auto-reply/reply/queue/state.d.ts +19 -0
  587. package/dist/plugin-sdk/auto-reply/reply/queue/types.d.ts +84 -0
  588. package/dist/plugin-sdk/auto-reply/reply/queue.d.ts +8 -0
  589. package/dist/plugin-sdk/auto-reply/reply/reply-delivery.d.ts +27 -0
  590. package/dist/plugin-sdk/auto-reply/reply/reply-directives.d.ts +14 -0
  591. package/dist/plugin-sdk/auto-reply/reply/reply-dispatcher.d.ts +52 -0
  592. package/dist/plugin-sdk/auto-reply/reply/reply-elevated.d.ts +16 -0
  593. package/dist/plugin-sdk/auto-reply/reply/reply-inline.d.ts +8 -0
  594. package/dist/plugin-sdk/auto-reply/reply/reply-payloads.d.ts +22 -0
  595. package/dist/plugin-sdk/auto-reply/reply/reply-tags.d.ts +6 -0
  596. package/dist/plugin-sdk/auto-reply/reply/reply-threading.d.ts +9 -0
  597. package/dist/plugin-sdk/auto-reply/reply/response-prefix-template.d.ts +51 -0
  598. package/dist/plugin-sdk/auto-reply/reply/route-reply.d.ts +56 -0
  599. package/dist/plugin-sdk/auto-reply/reply/session-reset-model.d.ts +24 -0
  600. package/dist/plugin-sdk/auto-reply/reply/session-reset-prompt.d.ts +1 -0
  601. package/dist/plugin-sdk/auto-reply/reply/session-run-accounting.d.ts +11 -0
  602. package/dist/plugin-sdk/auto-reply/reply/session-updates.d.ts +34 -0
  603. package/dist/plugin-sdk/auto-reply/reply/session-usage.d.ts +21 -0
  604. package/dist/plugin-sdk/auto-reply/reply/session.d.ts +26 -0
  605. package/dist/plugin-sdk/auto-reply/reply/stage-sandbox-media.d.ts +9 -0
  606. package/dist/plugin-sdk/auto-reply/reply/subagents-utils.d.ts +7 -0
  607. package/dist/plugin-sdk/auto-reply/reply/typing-mode.d.ts +27 -0
  608. package/dist/plugin-sdk/auto-reply/reply/typing.d.ts +18 -0
  609. package/dist/plugin-sdk/auto-reply/reply/untrusted-context.d.ts +1 -0
  610. package/dist/plugin-sdk/auto-reply/reply.d.ts +6 -0
  611. package/dist/plugin-sdk/auto-reply/send-policy.d.ts +6 -0
  612. package/dist/plugin-sdk/auto-reply/skill-commands.d.ts +18 -0
  613. package/dist/plugin-sdk/auto-reply/status.d.ts +55 -0
  614. package/dist/plugin-sdk/auto-reply/templating.d.ts +152 -0
  615. package/dist/plugin-sdk/auto-reply/thinking.d.ts +22 -0
  616. package/dist/plugin-sdk/auto-reply/tokens.d.ts +3 -0
  617. package/dist/plugin-sdk/auto-reply/types.d.ts +61 -0
  618. package/dist/plugin-sdk/browser/bridge-auth-registry.d.ts +8 -0
  619. package/dist/plugin-sdk/browser/bridge-server.d.ts +18 -0
  620. package/dist/plugin-sdk/browser/cdp.d.ts +123 -0
  621. package/dist/plugin-sdk/browser/cdp.helpers.d.ts +13 -0
  622. package/dist/plugin-sdk/browser/chrome.d.ts +20 -0
  623. package/dist/plugin-sdk/browser/chrome.executables.d.ts +9 -0
  624. package/dist/plugin-sdk/browser/chrome.profile-decoration.d.ts +10 -0
  625. package/dist/plugin-sdk/browser/client-actions-core.d.ts +144 -0
  626. package/dist/plugin-sdk/browser/client-actions-observe.d.ts +68 -0
  627. package/dist/plugin-sdk/browser/client-actions-state.d.ts +90 -0
  628. package/dist/plugin-sdk/browser/client-actions-types.d.ts +18 -0
  629. package/dist/plugin-sdk/browser/client-actions.d.ts +4 -0
  630. package/dist/plugin-sdk/browser/client-fetch.d.ts +20 -0
  631. package/dist/plugin-sdk/browser/client.d.ts +147 -0
  632. package/dist/plugin-sdk/browser/config.d.ts +39 -0
  633. package/dist/plugin-sdk/browser/constants.d.ts +8 -0
  634. package/dist/plugin-sdk/browser/control-auth.d.ts +13 -0
  635. package/dist/plugin-sdk/browser/control-service.d.ts +5 -0
  636. package/dist/plugin-sdk/browser/csrf.d.ts +8 -0
  637. package/dist/plugin-sdk/browser/extension-relay.d.ts +15 -0
  638. package/dist/plugin-sdk/browser/http-auth.d.ts +5 -0
  639. package/dist/plugin-sdk/browser/paths.d.ts +27 -0
  640. package/dist/plugin-sdk/browser/profiles-service.d.ts +25 -0
  641. package/dist/plugin-sdk/browser/profiles.d.ts +30 -0
  642. package/dist/plugin-sdk/browser/proxy-files.d.ts +7 -0
  643. package/dist/plugin-sdk/browser/pw-ai-module.d.ts +6 -0
  644. package/dist/plugin-sdk/browser/pw-ai-state.d.ts +2 -0
  645. package/dist/plugin-sdk/browser/pw-ai.d.ts +2 -0
  646. package/dist/plugin-sdk/browser/pw-role-snapshot.d.ts +35 -0
  647. package/dist/plugin-sdk/browser/pw-session.d.ts +160 -0
  648. package/dist/plugin-sdk/browser/pw-tools-core.activity.d.ts +21 -0
  649. package/dist/plugin-sdk/browser/pw-tools-core.d.ts +8 -0
  650. package/dist/plugin-sdk/browser/pw-tools-core.downloads.d.ts +34 -0
  651. package/dist/plugin-sdk/browser/pw-tools-core.interactions.d.ts +114 -0
  652. package/dist/plugin-sdk/browser/pw-tools-core.responses.d.ts +13 -0
  653. package/dist/plugin-sdk/browser/pw-tools-core.shared.d.ts +6 -0
  654. package/dist/plugin-sdk/browser/pw-tools-core.snapshot.d.ts +64 -0
  655. package/dist/plugin-sdk/browser/pw-tools-core.state.d.ts +46 -0
  656. package/dist/plugin-sdk/browser/pw-tools-core.storage.d.ts +47 -0
  657. package/dist/plugin-sdk/browser/pw-tools-core.trace.d.ts +12 -0
  658. package/dist/plugin-sdk/browser/resolved-config-refresh.d.ts +12 -0
  659. package/dist/plugin-sdk/browser/routes/agent.act.d.ts +3 -0
  660. package/dist/plugin-sdk/browser/routes/agent.act.shared.d.ts +10 -0
  661. package/dist/plugin-sdk/browser/routes/agent.d.ts +3 -0
  662. package/dist/plugin-sdk/browser/routes/agent.debug.d.ts +3 -0
  663. package/dist/plugin-sdk/browser/routes/agent.shared.d.ts +9 -0
  664. package/dist/plugin-sdk/browser/routes/agent.snapshot.d.ts +3 -0
  665. package/dist/plugin-sdk/browser/routes/agent.storage.d.ts +3 -0
  666. package/dist/plugin-sdk/browser/routes/basic.d.ts +3 -0
  667. package/dist/plugin-sdk/browser/routes/dispatcher.d.ts +16 -0
  668. package/dist/plugin-sdk/browser/routes/index.d.ts +3 -0
  669. package/dist/plugin-sdk/browser/routes/path-output.d.ts +1 -0
  670. package/dist/plugin-sdk/browser/routes/tabs.d.ts +3 -0
  671. package/dist/plugin-sdk/browser/routes/types.d.ts +20 -0
  672. package/dist/plugin-sdk/browser/routes/utils.d.ts +15 -0
  673. package/dist/plugin-sdk/browser/screenshot.d.ts +9 -0
  674. package/dist/plugin-sdk/browser/server-context.d.ts +4 -0
  675. package/dist/plugin-sdk/browser/server-context.types.d.ts +79 -0
  676. package/dist/plugin-sdk/browser/server-middleware.d.ts +6 -0
  677. package/dist/plugin-sdk/browser/target-id.d.ts +11 -0
  678. package/dist/plugin-sdk/browser/trash.d.ts +1 -0
  679. package/dist/plugin-sdk/channel-web.d.ts +6 -0
  680. package/dist/plugin-sdk/channels/account-summary.d.ts +17 -0
  681. package/dist/plugin-sdk/channels/ack-reactions.d.ts +29 -0
  682. package/dist/plugin-sdk/channels/allowlist-match.d.ts +15 -0
  683. package/dist/plugin-sdk/channels/allowlists/resolve-utils.d.ts +20 -0
  684. package/dist/plugin-sdk/channels/channel-config.d.ts +39 -0
  685. package/dist/plugin-sdk/channels/chat-type.d.ts +2 -0
  686. package/dist/plugin-sdk/channels/command-gating.d.ts +20 -0
  687. package/dist/plugin-sdk/channels/conversation-label.d.ts +2 -0
  688. package/dist/plugin-sdk/channels/dock.d.ts +36 -0
  689. package/dist/plugin-sdk/channels/location.d.ts +21 -0
  690. package/dist/plugin-sdk/channels/logging.d.ts +20 -0
  691. package/dist/plugin-sdk/channels/mention-gating.d.ts +27 -0
  692. package/dist/plugin-sdk/channels/plugins/actions/discord/handle-action.d.ts +3 -0
  693. package/dist/plugin-sdk/channels/plugins/actions/discord/handle-action.guild-admin.d.ts +9 -0
  694. package/dist/plugin-sdk/channels/plugins/actions/discord.d.ts +2 -0
  695. package/dist/plugin-sdk/channels/plugins/actions/signal.d.ts +2 -0
  696. package/dist/plugin-sdk/channels/plugins/actions/telegram.d.ts +2 -0
  697. package/dist/plugin-sdk/channels/plugins/agent-tools/whatsapp-login.d.ts +2 -0
  698. package/dist/plugin-sdk/channels/plugins/allowlist-match.d.ts +2 -0
  699. package/dist/plugin-sdk/channels/plugins/bluebubbles-actions.d.ts +48 -0
  700. package/dist/plugin-sdk/channels/plugins/channel-config.d.ts +2 -0
  701. package/dist/plugin-sdk/channels/plugins/config-helpers.d.ts +14 -0
  702. package/dist/plugin-sdk/channels/plugins/config-schema.d.ts +3 -0
  703. package/dist/plugin-sdk/channels/plugins/config-writes.d.ts +7 -0
  704. package/dist/plugin-sdk/channels/plugins/directory-config.d.ts +16 -0
  705. package/dist/plugin-sdk/channels/plugins/group-mentions.d.ts +28 -0
  706. package/dist/plugin-sdk/channels/plugins/helpers.d.ts +8 -0
  707. package/dist/plugin-sdk/channels/plugins/index.d.ts +8 -0
  708. package/dist/plugin-sdk/channels/plugins/media-limits.d.ts +9 -0
  709. package/dist/plugin-sdk/channels/plugins/message-action-names.d.ts +2 -0
  710. package/dist/plugin-sdk/channels/plugins/message-actions.d.ts +7 -0
  711. package/dist/plugin-sdk/channels/plugins/normalize/discord.d.ts +2 -0
  712. package/dist/plugin-sdk/channels/plugins/normalize/imessage.d.ts +2 -0
  713. package/dist/plugin-sdk/channels/plugins/normalize/signal.d.ts +2 -0
  714. package/dist/plugin-sdk/channels/plugins/normalize/slack.d.ts +2 -0
  715. package/dist/plugin-sdk/channels/plugins/normalize/telegram.d.ts +2 -0
  716. package/dist/plugin-sdk/channels/plugins/normalize/whatsapp.d.ts +2 -0
  717. package/dist/plugin-sdk/channels/plugins/onboarding/channel-access.d.ts +31 -0
  718. package/dist/plugin-sdk/channels/plugins/onboarding/discord.d.ts +2 -0
  719. package/dist/plugin-sdk/channels/plugins/onboarding/helpers.d.ts +3 -0
  720. package/dist/plugin-sdk/channels/plugins/onboarding/imessage.d.ts +2 -0
  721. package/dist/plugin-sdk/channels/plugins/onboarding/signal.d.ts +3 -0
  722. package/dist/plugin-sdk/channels/plugins/onboarding/slack.d.ts +2 -0
  723. package/dist/plugin-sdk/channels/plugins/onboarding/telegram.d.ts +2 -0
  724. package/dist/plugin-sdk/channels/plugins/onboarding/whatsapp.d.ts +2 -0
  725. package/dist/plugin-sdk/channels/plugins/onboarding-types.d.ts +77 -0
  726. package/dist/plugin-sdk/channels/plugins/outbound/load.d.ts +2 -0
  727. package/dist/plugin-sdk/channels/plugins/pairing-message.d.ts +1 -0
  728. package/dist/plugin-sdk/channels/plugins/pairing.d.ts +16 -0
  729. package/dist/plugin-sdk/channels/plugins/setup-helpers.d.ts +13 -0
  730. package/dist/plugin-sdk/channels/plugins/status-issues/bluebubbles.d.ts +2 -0
  731. package/dist/plugin-sdk/channels/plugins/status-issues/discord.d.ts +2 -0
  732. package/dist/plugin-sdk/channels/plugins/status-issues/shared.d.ts +11 -0
  733. package/dist/plugin-sdk/channels/plugins/status-issues/telegram.d.ts +2 -0
  734. package/dist/plugin-sdk/channels/plugins/status-issues/whatsapp.d.ts +2 -0
  735. package/dist/plugin-sdk/channels/plugins/types.adapters.d.ts +297 -0
  736. package/dist/plugin-sdk/channels/plugins/types.core.d.ts +329 -0
  737. package/dist/plugin-sdk/channels/plugins/types.d.ts +6 -0
  738. package/dist/plugin-sdk/channels/plugins/types.plugin.d.ts +53 -0
  739. package/dist/plugin-sdk/channels/plugins/whatsapp-heartbeat.d.ts +11 -0
  740. package/dist/plugin-sdk/channels/registry.d.ts +16 -0
  741. package/dist/plugin-sdk/channels/reply-prefix.d.ts +24 -0
  742. package/dist/plugin-sdk/channels/sender-label.d.ts +9 -0
  743. package/dist/plugin-sdk/channels/session.d.ts +18 -0
  744. package/dist/plugin-sdk/channels/typing.d.ts +12 -0
  745. package/dist/plugin-sdk/channels/web/index.d.ts +1 -0
  746. package/dist/plugin-sdk/cli/cli-name.d.ts +3 -0
  747. package/dist/plugin-sdk/cli/cli-utils.d.ts +19 -0
  748. package/dist/plugin-sdk/cli/command-format.d.ts +1 -0
  749. package/dist/plugin-sdk/cli/deps.d.ts +18 -0
  750. package/dist/plugin-sdk/cli/memory-cli.d.ts +12 -0
  751. package/dist/plugin-sdk/cli/nodes-camera.d.ts +32 -0
  752. package/dist/plugin-sdk/cli/nodes-canvas.d.ts +10 -0
  753. package/dist/plugin-sdk/cli/nodes-run.d.ts +3 -0
  754. package/dist/plugin-sdk/cli/nodes-screen.d.ts +18 -0
  755. package/dist/plugin-sdk/cli/parse-bytes.d.ts +4 -0
  756. package/dist/plugin-sdk/cli/parse-duration.d.ts +4 -0
  757. package/dist/plugin-sdk/cli/parse-timeout.d.ts +1 -0
  758. package/dist/plugin-sdk/cli/profile-utils.d.ts +2 -0
  759. package/dist/plugin-sdk/cli/progress.d.ts +24 -0
  760. package/dist/plugin-sdk/cli/prompt.d.ts +1 -0
  761. package/dist/plugin-sdk/cli/wait.d.ts +1 -0
  762. package/dist/plugin-sdk/commands/agent/types.d.ts +77 -0
  763. package/dist/plugin-sdk/commands/daemon-runtime.d.ts +8 -0
  764. package/dist/plugin-sdk/commands/health.d.ts +63 -0
  765. package/dist/plugin-sdk/commands/oauth-flow.d.ts +21 -0
  766. package/dist/plugin-sdk/commands/onboard-helpers.d.ts +82 -0
  767. package/dist/plugin-sdk/commands/onboard-types.d.ts +76 -0
  768. package/dist/plugin-sdk/commands/signal-install.d.ts +30 -0
  769. package/dist/plugin-sdk/compat/legacy-names.d.ts +8 -0
  770. package/dist/plugin-sdk/config/agent-dirs.d.ts +14 -0
  771. package/dist/plugin-sdk/config/agent-limits.d.ts +5 -0
  772. package/dist/plugin-sdk/config/backup-rotation.d.ts +5 -0
  773. package/dist/plugin-sdk/config/cache-utils.d.ts +6 -0
  774. package/dist/plugin-sdk/config/config-paths.d.ts +10 -0
  775. package/dist/plugin-sdk/config/config.d.ts +7 -0
  776. package/dist/plugin-sdk/config/defaults.d.ts +18 -0
  777. package/dist/plugin-sdk/config/env-preserve.d.ts +25 -0
  778. package/dist/plugin-sdk/config/env-substitution.d.ts +36 -0
  779. package/dist/plugin-sdk/config/env-vars.d.ts +3 -0
  780. package/dist/plugin-sdk/config/group-policy.d.ts +47 -0
  781. package/dist/plugin-sdk/config/includes.d.ts +32 -0
  782. package/dist/plugin-sdk/config/io.d.ts +55 -0
  783. package/dist/plugin-sdk/config/legacy-migrate.d.ts +5 -0
  784. package/dist/plugin-sdk/config/legacy.d.ts +6 -0
  785. package/dist/plugin-sdk/config/legacy.migrations.d.ts +1 -0
  786. package/dist/plugin-sdk/config/legacy.migrations.part-1.d.ts +2 -0
  787. package/dist/plugin-sdk/config/legacy.migrations.part-2.d.ts +2 -0
  788. package/dist/plugin-sdk/config/legacy.migrations.part-3.d.ts +2 -0
  789. package/dist/plugin-sdk/config/legacy.rules.d.ts +2 -0
  790. package/dist/plugin-sdk/config/legacy.shared.d.ts +19 -0
  791. package/dist/plugin-sdk/config/markdown-tables.d.ts +7 -0
  792. package/dist/plugin-sdk/config/merge-config.d.ts +7 -0
  793. package/dist/plugin-sdk/config/merge-patch.d.ts +5 -0
  794. package/dist/plugin-sdk/config/normalize-paths.d.ts +8 -0
  795. package/dist/plugin-sdk/config/paths.d.ts +57 -0
  796. package/dist/plugin-sdk/config/port-defaults.d.ts +13 -0
  797. package/dist/plugin-sdk/config/runtime-overrides.d.ts +15 -0
  798. package/dist/plugin-sdk/config/sessions/delivery-info.d.ts +12 -0
  799. package/dist/plugin-sdk/config/sessions/group.d.ts +11 -0
  800. package/dist/plugin-sdk/config/sessions/main-session.d.ts +43 -0
  801. package/dist/plugin-sdk/config/sessions/metadata.d.ts +16 -0
  802. package/dist/plugin-sdk/config/sessions/paths.d.ts +21 -0
  803. package/dist/plugin-sdk/config/sessions/reset.d.ts +43 -0
  804. package/dist/plugin-sdk/config/sessions/session-key.d.ts +8 -0
  805. package/dist/plugin-sdk/config/sessions/store.d.ts +99 -0
  806. package/dist/plugin-sdk/config/sessions/transcript.d.ts +18 -0
  807. package/dist/plugin-sdk/config/sessions/types.d.ts +156 -0
  808. package/dist/plugin-sdk/config/sessions.d.ts +10 -0
  809. package/dist/plugin-sdk/config/talk.d.ts +11 -0
  810. package/dist/plugin-sdk/config/telegram-custom-commands.d.ts +24 -0
  811. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +260 -0
  812. package/dist/plugin-sdk/config/types.agents.d.ts +80 -0
  813. package/dist/plugin-sdk/config/types.anima.d.ts +1 -0
  814. package/dist/plugin-sdk/config/types.approvals.d.ts +26 -0
  815. package/dist/plugin-sdk/config/types.auth.d.ts +28 -0
  816. package/dist/plugin-sdk/config/types.base.d.ts +172 -0
  817. package/dist/plugin-sdk/config/types.browser.d.ts +41 -0
  818. package/dist/plugin-sdk/config/types.channels.d.ts +48 -0
  819. package/dist/plugin-sdk/config/types.cron.d.ts +11 -0
  820. package/dist/plugin-sdk/config/types.d.ts +30 -0
  821. package/dist/plugin-sdk/config/types.discord.d.ts +188 -0
  822. package/dist/plugin-sdk/config/types.gateway.d.ts +288 -0
  823. package/dist/plugin-sdk/config/types.googlechat.d.ts +100 -0
  824. package/dist/plugin-sdk/config/types.hooks.d.ts +128 -0
  825. package/dist/plugin-sdk/config/types.imessage.d.ts +71 -0
  826. package/dist/plugin-sdk/config/types.irc.d.ts +96 -0
  827. package/dist/plugin-sdk/config/types.memory.d.ts +45 -0
  828. package/dist/plugin-sdk/config/types.messages.d.ts +121 -0
  829. package/dist/plugin-sdk/config/types.models.d.ts +54 -0
  830. package/dist/plugin-sdk/config/types.msteams.d.ts +101 -0
  831. package/dist/plugin-sdk/config/types.node-host.d.ts +10 -0
  832. package/dist/plugin-sdk/config/types.openclaw.d.ts +114 -0
  833. package/dist/plugin-sdk/config/types.plugins.d.ts +32 -0
  834. package/dist/plugin-sdk/config/types.queue.d.ts +14 -0
  835. package/dist/plugin-sdk/config/types.sandbox.d.ts +78 -0
  836. package/dist/plugin-sdk/config/types.signal.d.ts +86 -0
  837. package/dist/plugin-sdk/config/types.skills.d.ts +28 -0
  838. package/dist/plugin-sdk/config/types.slack.d.ts +150 -0
  839. package/dist/plugin-sdk/config/types.telegram.d.ts +163 -0
  840. package/dist/plugin-sdk/config/types.tools.d.ts +467 -0
  841. package/dist/plugin-sdk/config/types.tts.d.ts +78 -0
  842. package/dist/plugin-sdk/config/types.whatsapp.d.ts +142 -0
  843. package/dist/plugin-sdk/config/validation.d.ts +37 -0
  844. package/dist/plugin-sdk/config/version.d.ts +8 -0
  845. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +249 -0
  846. package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +856 -0
  847. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +504 -0
  848. package/dist/plugin-sdk/config/zod-schema.allowdeny.d.ts +13 -0
  849. package/dist/plugin-sdk/config/zod-schema.approvals.d.ts +15 -0
  850. package/dist/plugin-sdk/config/zod-schema.channels.d.ts +6 -0
  851. package/dist/plugin-sdk/config/zod-schema.core.d.ts +683 -0
  852. package/dist/plugin-sdk/config/zod-schema.d.ts +3401 -0
  853. package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +79 -0
  854. package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +3233 -0
  855. package/dist/plugin-sdk/config/zod-schema.providers-whatsapp.d.ts +231 -0
  856. package/dist/plugin-sdk/config/zod-schema.providers.d.ts +1900 -0
  857. package/dist/plugin-sdk/config/zod-schema.sensitive.d.ts +2 -0
  858. package/dist/plugin-sdk/config/zod-schema.session.d.ts +203 -0
  859. package/dist/plugin-sdk/cron/delivery.d.ts +9 -0
  860. package/dist/plugin-sdk/cron/normalize.d.ts +9 -0
  861. package/dist/plugin-sdk/cron/parse.d.ts +1 -0
  862. package/dist/plugin-sdk/cron/payload-migration.d.ts +3 -0
  863. package/dist/plugin-sdk/cron/schedule.d.ts +2 -0
  864. package/dist/plugin-sdk/cron/service/jobs.d.ts +21 -0
  865. package/dist/plugin-sdk/cron/service/locked.d.ts +2 -0
  866. package/dist/plugin-sdk/cron/service/normalize.d.ts +17 -0
  867. package/dist/plugin-sdk/cron/service/ops.d.ts +43 -0
  868. package/dist/plugin-sdk/cron/service/state.d.ts +121 -0
  869. package/dist/plugin-sdk/cron/service/store.d.ts +9 -0
  870. package/dist/plugin-sdk/cron/service/timer.d.ts +25 -0
  871. package/dist/plugin-sdk/cron/service.d.ts +48 -0
  872. package/dist/plugin-sdk/cron/session-reaper.d.ts +35 -0
  873. package/dist/plugin-sdk/cron/store.d.ts +6 -0
  874. package/dist/plugin-sdk/cron/types.d.ts +95 -0
  875. package/dist/plugin-sdk/daemon/constants.d.ts +30 -0
  876. package/dist/plugin-sdk/discord/accounts.d.ts +9 -0
  877. package/dist/plugin-sdk/discord/audit.d.ts +2 -0
  878. package/dist/plugin-sdk/discord/directory-live.d.ts +4 -0
  879. package/dist/plugin-sdk/discord/monitor/allow-list.d.ts +1 -0
  880. package/dist/plugin-sdk/discord/monitor/gateway-registry.d.ts +3 -0
  881. package/dist/plugin-sdk/discord/monitor/presence-cache.d.ts +1 -0
  882. package/dist/plugin-sdk/discord/monitor.d.ts +3 -0
  883. package/dist/plugin-sdk/discord/pluralkit.d.ts +1 -0
  884. package/dist/plugin-sdk/discord/probe.d.ts +3 -0
  885. package/dist/plugin-sdk/discord/resolve-channels.d.ts +1 -0
  886. package/dist/plugin-sdk/discord/resolve-users.d.ts +1 -0
  887. package/dist/plugin-sdk/discord/send.d.ts +6 -0
  888. package/dist/plugin-sdk/discord/targets.d.ts +2 -0
  889. package/dist/plugin-sdk/gateway/auth-rate-limit.d.ts +59 -0
  890. package/dist/plugin-sdk/gateway/auth.d.ts +48 -0
  891. package/dist/plugin-sdk/gateway/call.d.ts +51 -0
  892. package/dist/plugin-sdk/gateway/chat-abort.d.ts +44 -0
  893. package/dist/plugin-sdk/gateway/chat-sanitize.d.ts +4 -0
  894. package/dist/plugin-sdk/gateway/client.d.ts +63 -0
  895. package/dist/plugin-sdk/gateway/control-ui-shared.d.ts +9 -0
  896. package/dist/plugin-sdk/gateway/device-auth.d.ts +12 -0
  897. package/dist/plugin-sdk/gateway/exec-approval-manager.d.ts +44 -0
  898. package/dist/plugin-sdk/gateway/net.d.ts +57 -0
  899. package/dist/plugin-sdk/gateway/node-registry.d.ts +60 -0
  900. package/dist/plugin-sdk/gateway/protocol/client-info.d.ts +58 -0
  901. package/dist/plugin-sdk/gateway/protocol/index.d.ts +661 -0
  902. package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +86 -0
  903. package/dist/plugin-sdk/gateway/protocol/schema/agents-models-skills.d.ts +152 -0
  904. package/dist/plugin-sdk/gateway/protocol/schema/channels.d.ts +126 -0
  905. package/dist/plugin-sdk/gateway/protocol/schema/config.d.ts +51 -0
  906. package/dist/plugin-sdk/gateway/protocol/schema/cron.d.ts +353 -0
  907. package/dist/plugin-sdk/gateway/protocol/schema/devices.d.ts +38 -0
  908. package/dist/plugin-sdk/gateway/protocol/schema/error-codes.d.ts +14 -0
  909. package/dist/plugin-sdk/gateway/protocol/schema/exec-approvals.d.ts +163 -0
  910. package/dist/plugin-sdk/gateway/protocol/schema/frames.d.ts +164 -0
  911. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +45 -0
  912. package/dist/plugin-sdk/gateway/protocol/schema/nodes.d.ts +64 -0
  913. package/dist/plugin-sdk/gateway/protocol/schema/primitives.d.ts +4 -0
  914. package/dist/plugin-sdk/gateway/protocol/schema/protocol-schemas.d.ts +3 -0
  915. package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +76 -0
  916. package/dist/plugin-sdk/gateway/protocol/schema/snapshot.d.ts +64 -0
  917. package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +124 -0
  918. package/dist/plugin-sdk/gateway/protocol/schema/wizard.d.ts +86 -0
  919. package/dist/plugin-sdk/gateway/protocol/schema.d.ts +16 -0
  920. package/dist/plugin-sdk/gateway/server/ws-types.d.ts +9 -0
  921. package/dist/plugin-sdk/gateway/server-channels.d.ts +24 -0
  922. package/dist/plugin-sdk/gateway/server-methods/types.d.ts +98 -0
  923. package/dist/plugin-sdk/gateway/server-shared.d.ts +7 -0
  924. package/dist/plugin-sdk/gateway/session-utils.d.ts +71 -0
  925. package/dist/plugin-sdk/gateway/session-utils.fs.d.ts +33 -0
  926. package/dist/plugin-sdk/gateway/session-utils.types.d.ts +84 -0
  927. package/dist/plugin-sdk/globals.d.ts +11 -0
  928. package/dist/plugin-sdk/hooks/internal-hooks.d.ts +95 -0
  929. package/dist/plugin-sdk/hooks/types.d.ts +62 -0
  930. package/dist/plugin-sdk/imessage/accounts.d.ts +8 -0
  931. package/dist/plugin-sdk/imessage/monitor.d.ts +3 -0
  932. package/dist/plugin-sdk/imessage/probe.d.ts +3 -0
  933. package/dist/plugin-sdk/imessage/send.d.ts +1 -0
  934. package/dist/plugin-sdk/imessage/target-parsing-helpers.d.ts +4 -0
  935. package/dist/plugin-sdk/imessage/targets.d.ts +2 -0
  936. package/dist/plugin-sdk/index.d.ts +1 -0
  937. package/dist/plugin-sdk/index.js +27570 -0
  938. package/dist/plugin-sdk/infra/agent-events.d.ts +21 -0
  939. package/dist/plugin-sdk/infra/anima-root.d.ts +1 -0
  940. package/dist/plugin-sdk/infra/archive.d.ts +41 -0
  941. package/dist/plugin-sdk/infra/backoff.d.ts +8 -0
  942. package/dist/plugin-sdk/infra/binaries.d.ts +3 -0
  943. package/dist/plugin-sdk/infra/brew.d.ts +8 -0
  944. package/dist/plugin-sdk/infra/channel-activity.d.ts +18 -0
  945. package/dist/plugin-sdk/infra/channel-summary.d.ts +6 -0
  946. package/dist/plugin-sdk/infra/dedupe.d.ts +11 -0
  947. package/dist/plugin-sdk/infra/device-auth-store.d.ts +18 -0
  948. package/dist/plugin-sdk/infra/device-identity.d.ts +11 -0
  949. package/dist/plugin-sdk/infra/device-pairing.d.ts +96 -0
  950. package/dist/plugin-sdk/infra/diagnostic-events.d.ts +121 -0
  951. package/dist/plugin-sdk/infra/dotenv.d.ts +3 -0
  952. package/dist/plugin-sdk/infra/env.d.ts +11 -0
  953. package/dist/plugin-sdk/infra/errors.d.ts +11 -0
  954. package/dist/plugin-sdk/infra/exec-approvals-allowlist.d.ts +45 -0
  955. package/dist/plugin-sdk/infra/exec-approvals-analysis.d.ts +78 -0
  956. package/dist/plugin-sdk/infra/exec-approvals.d.ts +107 -0
  957. package/dist/plugin-sdk/infra/exec-safety.d.ts +1 -0
  958. package/dist/plugin-sdk/infra/fetch.d.ts +2 -0
  959. package/dist/plugin-sdk/infra/file-lock.d.ts +2 -0
  960. package/dist/plugin-sdk/infra/format-time/format-datetime.d.ts +35 -0
  961. package/dist/plugin-sdk/infra/format-time/format-duration.d.ts +23 -0
  962. package/dist/plugin-sdk/infra/format-time/format-relative.d.ts +39 -0
  963. package/dist/plugin-sdk/infra/git-commit.d.ts +4 -0
  964. package/dist/plugin-sdk/infra/heartbeat-active-hours.d.ts +5 -0
  965. package/dist/plugin-sdk/infra/heartbeat-events-filter.d.ts +3 -0
  966. package/dist/plugin-sdk/infra/heartbeat-events.d.ts +21 -0
  967. package/dist/plugin-sdk/infra/heartbeat-runner.d.ts +45 -0
  968. package/dist/plugin-sdk/infra/heartbeat-visibility.d.ts +17 -0
  969. package/dist/plugin-sdk/infra/heartbeat-wake.d.ts +27 -0
  970. package/dist/plugin-sdk/infra/home-dir.d.ts +7 -0
  971. package/dist/plugin-sdk/infra/http-body.d.ts +46 -0
  972. package/dist/plugin-sdk/infra/json-file.d.ts +2 -0
  973. package/dist/plugin-sdk/infra/net/fetch-guard.d.ts +21 -0
  974. package/dist/plugin-sdk/infra/net/ssrf.d.ts +32 -0
  975. package/dist/plugin-sdk/infra/node-pairing.d.ts +62 -0
  976. package/dist/plugin-sdk/infra/node-shell.d.ts +1 -0
  977. package/dist/plugin-sdk/infra/openclaw-root.d.ts +10 -0
  978. package/dist/plugin-sdk/infra/outbound/abort.d.ts +8 -0
  979. package/dist/plugin-sdk/infra/outbound/channel-adapters.d.ts +6 -0
  980. package/dist/plugin-sdk/infra/outbound/channel-selection.d.ts +11 -0
  981. package/dist/plugin-sdk/infra/outbound/channel-target.d.ts +6 -0
  982. package/dist/plugin-sdk/infra/outbound/deliver.d.ts +77 -0
  983. package/dist/plugin-sdk/infra/outbound/delivery-queue.d.ts +103 -0
  984. package/dist/plugin-sdk/infra/outbound/directory-cache.d.ts +24 -0
  985. package/dist/plugin-sdk/infra/outbound/identity.d.ts +8 -0
  986. package/dist/plugin-sdk/infra/outbound/message-action-params.d.ts +47 -0
  987. package/dist/plugin-sdk/infra/outbound/message-action-runner.d.ts +74 -0
  988. package/dist/plugin-sdk/infra/outbound/message-action-spec.d.ts +5 -0
  989. package/dist/plugin-sdk/infra/outbound/message.d.ts +85 -0
  990. package/dist/plugin-sdk/infra/outbound/outbound-policy.d.ts +31 -0
  991. package/dist/plugin-sdk/infra/outbound/outbound-send-service.d.ts +64 -0
  992. package/dist/plugin-sdk/infra/outbound/outbound-session.d.ts +31 -0
  993. package/dist/plugin-sdk/infra/outbound/payloads.d.ts +16 -0
  994. package/dist/plugin-sdk/infra/outbound/target-errors.d.ts +6 -0
  995. package/dist/plugin-sdk/infra/outbound/target-normalization.d.ts +4 -0
  996. package/dist/plugin-sdk/infra/outbound/target-resolver.d.ts +53 -0
  997. package/dist/plugin-sdk/infra/outbound/targets.d.ts +65 -0
  998. package/dist/plugin-sdk/infra/outbound/tool-payload.d.ts +2 -0
  999. package/dist/plugin-sdk/infra/pairing-files.d.ts +11 -0
  1000. package/dist/plugin-sdk/infra/pairing-token.d.ts +3 -0
  1001. package/dist/plugin-sdk/infra/path-prepend.d.ts +5 -0
  1002. package/dist/plugin-sdk/infra/ports-format.d.ts +5 -0
  1003. package/dist/plugin-sdk/infra/ports-inspect.d.ts +2 -0
  1004. package/dist/plugin-sdk/infra/ports-lsof.d.ts +2 -0
  1005. package/dist/plugin-sdk/infra/ports-types.d.ts +17 -0
  1006. package/dist/plugin-sdk/infra/ports.d.ts +14 -0
  1007. package/dist/plugin-sdk/infra/provider-usage.auth.d.ts +11 -0
  1008. package/dist/plugin-sdk/infra/provider-usage.d.ts +4 -0
  1009. package/dist/plugin-sdk/infra/provider-usage.fetch.antigravity.d.ts +2 -0
  1010. package/dist/plugin-sdk/infra/provider-usage.fetch.claude.d.ts +2 -0
  1011. package/dist/plugin-sdk/infra/provider-usage.fetch.codex.d.ts +2 -0
  1012. package/dist/plugin-sdk/infra/provider-usage.fetch.copilot.d.ts +2 -0
  1013. package/dist/plugin-sdk/infra/provider-usage.fetch.d.ts +7 -0
  1014. package/dist/plugin-sdk/infra/provider-usage.fetch.gemini.d.ts +2 -0
  1015. package/dist/plugin-sdk/infra/provider-usage.fetch.minimax.d.ts +2 -0
  1016. package/dist/plugin-sdk/infra/provider-usage.fetch.shared.d.ts +1 -0
  1017. package/dist/plugin-sdk/infra/provider-usage.fetch.zai.d.ts +2 -0
  1018. package/dist/plugin-sdk/infra/provider-usage.format.d.ts +13 -0
  1019. package/dist/plugin-sdk/infra/provider-usage.load.d.ts +12 -0
  1020. package/dist/plugin-sdk/infra/provider-usage.shared.d.ts +8 -0
  1021. package/dist/plugin-sdk/infra/provider-usage.types.d.ts +17 -0
  1022. package/dist/plugin-sdk/infra/restart-sentinel.d.ts +50 -0
  1023. package/dist/plugin-sdk/infra/restart.d.ts +61 -0
  1024. package/dist/plugin-sdk/infra/retry.d.ts +21 -0
  1025. package/dist/plugin-sdk/infra/session-cost-usage.d.ts +45 -0
  1026. package/dist/plugin-sdk/infra/session-cost-usage.types.d.ts +153 -0
  1027. package/dist/plugin-sdk/infra/session-maintenance-warning.d.ts +10 -0
  1028. package/dist/plugin-sdk/infra/shell-env.d.ts +33 -0
  1029. package/dist/plugin-sdk/infra/skills-remote.d.ts +25 -0
  1030. package/dist/plugin-sdk/infra/system-events.d.ts +18 -0
  1031. package/dist/plugin-sdk/infra/tailnet.d.ts +7 -0
  1032. package/dist/plugin-sdk/infra/tailscale.d.ts +34 -0
  1033. package/dist/plugin-sdk/infra/tls/fingerprint.d.ts +1 -0
  1034. package/dist/plugin-sdk/infra/tls/gateway.d.ts +16 -0
  1035. package/dist/plugin-sdk/infra/tmp-anima-dir.d.ts +1 -0
  1036. package/dist/plugin-sdk/infra/tmp-openclaw-dir.d.ts +18 -0
  1037. package/dist/plugin-sdk/infra/unhandled-rejections.d.ts +15 -0
  1038. package/dist/plugin-sdk/infra/warning-filter.d.ts +7 -0
  1039. package/dist/plugin-sdk/infra/ws.d.ts +2 -0
  1040. package/dist/plugin-sdk/infra/wsl.d.ts +11 -0
  1041. package/dist/plugin-sdk/line/accounts.d.ts +9 -0
  1042. package/dist/plugin-sdk/line/config-schema.d.ts +1 -0
  1043. package/dist/plugin-sdk/line/flex-templates.d.ts +14 -0
  1044. package/dist/plugin-sdk/line/markdown-to-line.d.ts +6 -0
  1045. package/dist/plugin-sdk/line/monitor.d.ts +3 -0
  1046. package/dist/plugin-sdk/line/probe.d.ts +3 -0
  1047. package/dist/plugin-sdk/line/send.d.ts +14 -0
  1048. package/dist/plugin-sdk/line/template-messages.d.ts +1 -0
  1049. package/dist/plugin-sdk/line/types.d.ts +6 -0
  1050. package/dist/plugin-sdk/link-understanding/apply.d.ts +10 -0
  1051. package/dist/plugin-sdk/link-understanding/defaults.d.ts +2 -0
  1052. package/dist/plugin-sdk/link-understanding/detect.d.ts +3 -0
  1053. package/dist/plugin-sdk/link-understanding/format.d.ts +4 -0
  1054. package/dist/plugin-sdk/link-understanding/runner.d.ts +11 -0
  1055. package/dist/plugin-sdk/logger.d.ts +6 -0
  1056. package/dist/plugin-sdk/logging/config.d.ts +4 -0
  1057. package/dist/plugin-sdk/logging/console.d.ts +23 -0
  1058. package/dist/plugin-sdk/logging/diagnostic-session-state.d.ts +17 -0
  1059. package/dist/plugin-sdk/logging/diagnostic.d.ts +56 -0
  1060. package/dist/plugin-sdk/logging/levels.d.ts +4 -0
  1061. package/dist/plugin-sdk/logging/logger.d.ts +42 -0
  1062. package/dist/plugin-sdk/logging/redact-identifier.d.ts +4 -0
  1063. package/dist/plugin-sdk/logging/redact.d.ts +9 -0
  1064. package/dist/plugin-sdk/logging/state.d.ts +18 -0
  1065. package/dist/plugin-sdk/logging/subsystem.d.ts +18 -0
  1066. package/dist/plugin-sdk/logging.d.ts +10 -0
  1067. package/dist/plugin-sdk/markdown/fences.d.ts +10 -0
  1068. package/dist/plugin-sdk/markdown/frontmatter.d.ts +2 -0
  1069. package/dist/plugin-sdk/markdown/ir.d.ts +32 -0
  1070. package/dist/plugin-sdk/markdown/render.d.ts +18 -0
  1071. package/dist/plugin-sdk/markdown/tables.d.ts +2 -0
  1072. package/dist/plugin-sdk/markdown/whatsapp.d.ts +14 -0
  1073. package/dist/plugin-sdk/media/audio-tags.d.ts +10 -0
  1074. package/dist/plugin-sdk/media/audio.d.ts +19 -0
  1075. package/dist/plugin-sdk/media/base64.d.ts +1 -0
  1076. package/dist/plugin-sdk/media/constants.d.ts +7 -0
  1077. package/dist/plugin-sdk/media/fetch.d.ts +23 -0
  1078. package/dist/plugin-sdk/media/image-ops.d.ts +39 -0
  1079. package/dist/plugin-sdk/media/input-files.d.ts +81 -0
  1080. package/dist/plugin-sdk/media/mime.d.ts +16 -0
  1081. package/dist/plugin-sdk/media/parse.d.ts +8 -0
  1082. package/dist/plugin-sdk/media/png-encode.d.ts +8 -0
  1083. package/dist/plugin-sdk/media/read-response-with-limit.d.ts +7 -0
  1084. package/dist/plugin-sdk/media/sniff-mime-from-base64.d.ts +1 -0
  1085. package/dist/plugin-sdk/media/store.d.ts +28 -0
  1086. package/dist/plugin-sdk/media-understanding/apply.d.ts +19 -0
  1087. package/dist/plugin-sdk/media-understanding/attachments.d.ts +43 -0
  1088. package/dist/plugin-sdk/media-understanding/concurrency.d.ts +1 -0
  1089. package/dist/plugin-sdk/media-understanding/defaults.d.ts +14 -0
  1090. package/dist/plugin-sdk/media-understanding/errors.d.ts +6 -0
  1091. package/dist/plugin-sdk/media-understanding/format.d.ts +7 -0
  1092. package/dist/plugin-sdk/media-understanding/output-extract.d.ts +2 -0
  1093. package/dist/plugin-sdk/media-understanding/providers/image.d.ts +1 -0
  1094. package/dist/plugin-sdk/media-understanding/providers/index.d.ts +8 -0
  1095. package/dist/plugin-sdk/media-understanding/providers/shared.d.ts +4 -0
  1096. package/dist/plugin-sdk/media-understanding/resolve.d.ts +44 -0
  1097. package/dist/plugin-sdk/media-understanding/runner.d.ts +35 -0
  1098. package/dist/plugin-sdk/media-understanding/runner.entries.d.ts +33 -0
  1099. package/dist/plugin-sdk/media-understanding/scope.d.ts +9 -0
  1100. package/dist/plugin-sdk/media-understanding/types.d.ts +93 -0
  1101. package/dist/plugin-sdk/media-understanding/video.d.ts +2 -0
  1102. package/dist/plugin-sdk/memory/backend-config.d.ts +49 -0
  1103. package/dist/plugin-sdk/memory/batch-gemini.d.ts +55 -0
  1104. package/dist/plugin-sdk/memory/batch-http.d.ts +6 -0
  1105. package/dist/plugin-sdk/memory/batch-openai.d.ts +45 -0
  1106. package/dist/plugin-sdk/memory/batch-output.d.ts +23 -0
  1107. package/dist/plugin-sdk/memory/batch-voyage.d.ts +46 -0
  1108. package/dist/plugin-sdk/memory/embedding-chunk-limits.d.ts +3 -0
  1109. package/dist/plugin-sdk/memory/embedding-input-limits.d.ts +2 -0
  1110. package/dist/plugin-sdk/memory/embedding-model-limits.d.ts +2 -0
  1111. package/dist/plugin-sdk/memory/embeddings-gemini.d.ts +13 -0
  1112. package/dist/plugin-sdk/memory/embeddings-openai.d.ts +13 -0
  1113. package/dist/plugin-sdk/memory/embeddings-voyage.d.ts +13 -0
  1114. package/dist/plugin-sdk/memory/embeddings.d.ts +44 -0
  1115. package/dist/plugin-sdk/memory/hybrid.d.ts +34 -0
  1116. package/dist/plugin-sdk/memory/index.d.ts +3 -0
  1117. package/dist/plugin-sdk/memory/internal.d.ts +38 -0
  1118. package/dist/plugin-sdk/memory/manager-embedding-ops.d.ts +32 -0
  1119. package/dist/plugin-sdk/memory/manager-search.d.ts +60 -0
  1120. package/dist/plugin-sdk/memory/manager-sync-ops.d.ts +40 -0
  1121. package/dist/plugin-sdk/memory/manager.d.ts +75 -0
  1122. package/dist/plugin-sdk/memory/memory-schema.d.ts +10 -0
  1123. package/dist/plugin-sdk/memory/node-llama.d.ts +8 -0
  1124. package/dist/plugin-sdk/memory/qmd-manager.d.ts +109 -0
  1125. package/dist/plugin-sdk/memory/qmd-query-parser.d.ts +8 -0
  1126. package/dist/plugin-sdk/memory/qmd-scope.d.ts +4 -0
  1127. package/dist/plugin-sdk/memory/search-manager.d.ts +11 -0
  1128. package/dist/plugin-sdk/memory/session-files.d.ts +14 -0
  1129. package/dist/plugin-sdk/memory/sqlite-vec.d.ts +9 -0
  1130. package/dist/plugin-sdk/memory/sqlite.d.ts +1 -0
  1131. package/dist/plugin-sdk/memory/types.d.ts +94 -0
  1132. package/dist/plugin-sdk/pairing/pairing-messages.d.ts +6 -0
  1133. package/dist/plugin-sdk/pairing/pairing-store.d.ts +46 -0
  1134. package/dist/plugin-sdk/pi-model-discovery-Dw3A6oXH.js +37 -0
  1135. package/dist/plugin-sdk/plugin-sdk/account-id.d.ts +1 -0
  1136. package/dist/plugin-sdk/plugin-sdk/allow-from.d.ts +4 -0
  1137. package/dist/plugin-sdk/plugin-sdk/config-paths.d.ts +6 -0
  1138. package/dist/plugin-sdk/plugin-sdk/file-lock.d.ts +16 -0
  1139. package/dist/plugin-sdk/plugin-sdk/index.d.ts +123 -0
  1140. package/dist/plugin-sdk/plugin-sdk/onboarding.d.ts +11 -0
  1141. package/dist/plugin-sdk/plugin-sdk/text-chunking.d.ts +1 -0
  1142. package/dist/plugin-sdk/plugins/bundled-dir.d.ts +1 -0
  1143. package/dist/plugin-sdk/plugins/commands.d.ts +83 -0
  1144. package/dist/plugin-sdk/plugins/config-schema.d.ts +2 -0
  1145. package/dist/plugin-sdk/plugins/config-state.d.ts +33 -0
  1146. package/dist/plugin-sdk/plugins/discovery.d.ts +22 -0
  1147. package/dist/plugin-sdk/plugins/hook-runner-global.d.ts +37 -0
  1148. package/dist/plugin-sdk/plugins/hooks.d.ts +42 -0
  1149. package/dist/plugin-sdk/plugins/http-path.d.ts +1 -0
  1150. package/dist/plugin-sdk/plugins/http-registry.d.ts +13 -0
  1151. package/dist/plugin-sdk/plugins/loader.d.ts +14 -0
  1152. package/dist/plugin-sdk/plugins/manifest-registry.d.ts +33 -0
  1153. package/dist/plugin-sdk/plugins/manifest.d.ts +64 -0
  1154. package/dist/plugin-sdk/plugins/registry.d.ts +130 -0
  1155. package/dist/plugin-sdk/plugins/runtime/index.d.ts +3 -0
  1156. package/dist/plugin-sdk/plugins/runtime/native-deps.d.ts +8 -0
  1157. package/dist/plugin-sdk/plugins/runtime/types.d.ts +317 -0
  1158. package/dist/plugin-sdk/plugins/runtime.d.ts +5 -0
  1159. package/dist/plugin-sdk/plugins/schema-validator.d.ts +10 -0
  1160. package/dist/plugin-sdk/plugins/slots.d.ts +24 -0
  1161. package/dist/plugin-sdk/plugins/tools.d.ts +13 -0
  1162. package/dist/plugin-sdk/plugins/types.d.ts +411 -0
  1163. package/dist/plugin-sdk/polls.d.ts +31 -0
  1164. package/dist/plugin-sdk/process/command-queue.d.ts +51 -0
  1165. package/dist/plugin-sdk/process/exec.d.ts +26 -0
  1166. package/dist/plugin-sdk/process/lanes.d.ts +6 -0
  1167. package/dist/plugin-sdk/process/spawn-utils.d.ts +26 -0
  1168. package/dist/plugin-sdk/providers/github-copilot-token.d.ts +8 -0
  1169. package/dist/plugin-sdk/providers/qwen-portal-oauth.d.ts +8 -0
  1170. package/dist/plugin-sdk/routing/bindings.d.ts +11 -0
  1171. package/dist/plugin-sdk/routing/resolve-route.d.ts +42 -0
  1172. package/dist/plugin-sdk/routing/session-key.d.ts +48 -0
  1173. package/dist/plugin-sdk/runtime.d.ts +7 -0
  1174. package/dist/plugin-sdk/security/external-content.d.ts +67 -0
  1175. package/dist/plugin-sdk/security/secret-equal.d.ts +1 -0
  1176. package/dist/plugin-sdk/sessions/input-provenance.d.ts +16 -0
  1177. package/dist/plugin-sdk/sessions/level-overrides.d.ts +10 -0
  1178. package/dist/plugin-sdk/sessions/model-overrides.d.ts +14 -0
  1179. package/dist/plugin-sdk/sessions/send-policy.d.ts +11 -0
  1180. package/dist/plugin-sdk/sessions/session-key-utils.d.ts +11 -0
  1181. package/dist/plugin-sdk/sessions/session-label.d.ts +9 -0
  1182. package/dist/plugin-sdk/sessions/transcript-events.d.ts +7 -0
  1183. package/dist/plugin-sdk/shared/chat-envelope.d.ts +2 -0
  1184. package/dist/plugin-sdk/shared/config-eval.d.ts +5 -0
  1185. package/dist/plugin-sdk/shared/device-auth.d.ts +13 -0
  1186. package/dist/plugin-sdk/shared/frontmatter.d.ts +7 -0
  1187. package/dist/plugin-sdk/shared/node-match.d.ts +8 -0
  1188. package/dist/plugin-sdk/shared/subagents-format.d.ts +15 -0
  1189. package/dist/plugin-sdk/shared/text/reasoning-tags.d.ts +6 -0
  1190. package/dist/plugin-sdk/signal/accounts.d.ts +9 -0
  1191. package/dist/plugin-sdk/signal/format.d.ts +9 -0
  1192. package/dist/plugin-sdk/signal/identity.d.ts +3 -0
  1193. package/dist/plugin-sdk/signal/index.d.ts +3 -0
  1194. package/dist/plugin-sdk/signal/probe.d.ts +3 -0
  1195. package/dist/plugin-sdk/signal/reaction-level.d.ts +1 -0
  1196. package/dist/plugin-sdk/signal/send-reactions.d.ts +2 -0
  1197. package/dist/plugin-sdk/signal/send.d.ts +1 -0
  1198. package/dist/plugin-sdk/slack/accounts.d.ts +11 -0
  1199. package/dist/plugin-sdk/slack/actions.d.ts +17 -0
  1200. package/dist/plugin-sdk/slack/client.d.ts +1 -0
  1201. package/dist/plugin-sdk/slack/directory-live.d.ts +4 -0
  1202. package/dist/plugin-sdk/slack/index.d.ts +3 -0
  1203. package/dist/plugin-sdk/slack/message-actions.d.ts +2 -0
  1204. package/dist/plugin-sdk/slack/monitor/allow-list.d.ts +1 -0
  1205. package/dist/plugin-sdk/slack/probe.d.ts +3 -0
  1206. package/dist/plugin-sdk/slack/resolve-channels.d.ts +1 -0
  1207. package/dist/plugin-sdk/slack/resolve-users.d.ts +1 -0
  1208. package/dist/plugin-sdk/slack/send.d.ts +5 -0
  1209. package/dist/plugin-sdk/slack/targets.d.ts +2 -0
  1210. package/dist/plugin-sdk/slack/threading-tool-context.d.ts +1 -0
  1211. package/dist/plugin-sdk/telegram/accounts.d.ts +9 -0
  1212. package/dist/plugin-sdk/telegram/audit.d.ts +4 -0
  1213. package/dist/plugin-sdk/telegram/bot/helpers.d.ts +1 -0
  1214. package/dist/plugin-sdk/telegram/bot/types.d.ts +5 -0
  1215. package/dist/plugin-sdk/telegram/inline-buttons.d.ts +2 -0
  1216. package/dist/plugin-sdk/telegram/model-buttons.d.ts +5 -0
  1217. package/dist/plugin-sdk/telegram/monitor.d.ts +3 -0
  1218. package/dist/plugin-sdk/telegram/outbound-params.d.ts +2 -0
  1219. package/dist/plugin-sdk/telegram/probe.d.ts +6 -0
  1220. package/dist/plugin-sdk/telegram/reaction-level.d.ts +1 -0
  1221. package/dist/plugin-sdk/telegram/send.d.ts +10 -0
  1222. package/dist/plugin-sdk/telegram/sticker-cache.d.ts +2 -0
  1223. package/dist/plugin-sdk/telegram/targets.d.ts +1 -0
  1224. package/dist/plugin-sdk/telegram/token.d.ts +1 -0
  1225. package/dist/plugin-sdk/terminal/ansi.d.ts +2 -0
  1226. package/dist/plugin-sdk/terminal/health-style.d.ts +1 -0
  1227. package/dist/plugin-sdk/terminal/links.d.ts +6 -0
  1228. package/dist/plugin-sdk/terminal/palette.d.ts +10 -0
  1229. package/dist/plugin-sdk/terminal/progress-line.d.ts +3 -0
  1230. package/dist/plugin-sdk/terminal/prompt-style.d.ts +3 -0
  1231. package/dist/plugin-sdk/terminal/restore.d.ts +17 -0
  1232. package/dist/plugin-sdk/terminal/theme.d.ts +15 -0
  1233. package/dist/plugin-sdk/tts/tts-core.d.ts +52 -0
  1234. package/dist/plugin-sdk/tts/tts.d.ts +179 -0
  1235. package/dist/plugin-sdk/utils/account-id.d.ts +1 -0
  1236. package/dist/plugin-sdk/utils/boolean.d.ts +5 -0
  1237. package/dist/plugin-sdk/utils/delivery-context.d.ts +29 -0
  1238. package/dist/plugin-sdk/utils/directive-tags.d.ts +16 -0
  1239. package/dist/plugin-sdk/utils/fetch-timeout.d.ts +13 -0
  1240. package/dist/plugin-sdk/utils/message-channel.d.ts +27 -0
  1241. package/dist/plugin-sdk/utils/normalize-secret-input.d.ts +11 -0
  1242. package/dist/plugin-sdk/utils/provider-utils.d.ts +9 -0
  1243. package/dist/plugin-sdk/utils/queue-helpers.d.ts +41 -0
  1244. package/dist/plugin-sdk/utils/shell-argv.d.ts +1 -0
  1245. package/dist/plugin-sdk/utils/transcript-tools.d.ts +8 -0
  1246. package/dist/plugin-sdk/utils/usage-format.d.ts +26 -0
  1247. package/dist/plugin-sdk/utils.d.ts +67 -0
  1248. package/dist/plugin-sdk/version.d.ts +4 -0
  1249. package/dist/plugin-sdk/web/accounts.d.ts +39 -0
  1250. package/dist/plugin-sdk/web/active-listener.d.ts +25 -0
  1251. package/dist/plugin-sdk/web/auth-store.d.ts +25 -0
  1252. package/dist/plugin-sdk/web/auto-reply/constants.d.ts +1 -0
  1253. package/dist/plugin-sdk/web/auto-reply/deliver-reply.d.ts +18 -0
  1254. package/dist/plugin-sdk/web/auto-reply/heartbeat-runner.d.ts +20 -0
  1255. package/dist/plugin-sdk/web/auto-reply/loggers.d.ts +4 -0
  1256. package/dist/plugin-sdk/web/auto-reply/mentions.d.ts +19 -0
  1257. package/dist/plugin-sdk/web/auto-reply/monitor/ack-reaction.d.ts +13 -0
  1258. package/dist/plugin-sdk/web/auto-reply/monitor/broadcast.d.ts +16 -0
  1259. package/dist/plugin-sdk/web/auto-reply/monitor/commands.d.ts +2 -0
  1260. package/dist/plugin-sdk/web/auto-reply/monitor/echo.d.ts +17 -0
  1261. package/dist/plugin-sdk/web/auto-reply/monitor/group-activation.d.ts +9 -0
  1262. package/dist/plugin-sdk/web/auto-reply/monitor/group-gating.d.ts +29 -0
  1263. package/dist/plugin-sdk/web/auto-reply/monitor/group-members.d.ts +6 -0
  1264. package/dist/plugin-sdk/web/auto-reply/monitor/last-route.d.ts +15 -0
  1265. package/dist/plugin-sdk/web/auto-reply/monitor/message-line.d.ts +11 -0
  1266. package/dist/plugin-sdk/web/auto-reply/monitor/on-message.d.ts +24 -0
  1267. package/dist/plugin-sdk/web/auto-reply/monitor/peer.d.ts +2 -0
  1268. package/dist/plugin-sdk/web/auto-reply/monitor/process-message.d.ts +40 -0
  1269. package/dist/plugin-sdk/web/auto-reply/monitor.d.ts +5 -0
  1270. package/dist/plugin-sdk/web/auto-reply/session-snapshot.d.ts +17 -0
  1271. package/dist/plugin-sdk/web/auto-reply/types.d.ts +28 -0
  1272. package/dist/plugin-sdk/web/auto-reply/util.d.ts +2 -0
  1273. package/dist/plugin-sdk/web/auto-reply.d.ts +1 -0
  1274. package/dist/plugin-sdk/web/auto-reply.impl.d.ts +6 -0
  1275. package/dist/plugin-sdk/web/inbound/access-control.d.ts +24 -0
  1276. package/dist/plugin-sdk/web/inbound/dedupe.d.ts +2 -0
  1277. package/dist/plugin-sdk/web/inbound/extract.d.ts +13 -0
  1278. package/dist/plugin-sdk/web/inbound/media.d.ts +7 -0
  1279. package/dist/plugin-sdk/web/inbound/monitor.d.ts +30 -0
  1280. package/dist/plugin-sdk/web/inbound/send-api.d.ts +22 -0
  1281. package/dist/plugin-sdk/web/inbound/types.d.ts +41 -0
  1282. package/dist/plugin-sdk/web/inbound.d.ts +4 -0
  1283. package/dist/plugin-sdk/web/login-qr.d.ts +19 -0
  1284. package/dist/plugin-sdk/web/login.d.ts +3 -0
  1285. package/dist/plugin-sdk/web/media.d.ts +38 -0
  1286. package/dist/plugin-sdk/web/outbound.d.ts +23 -0
  1287. package/dist/plugin-sdk/web/qr-image.d.ts +4 -0
  1288. package/dist/plugin-sdk/web/reconnect.d.ts +12 -0
  1289. package/dist/plugin-sdk/web/session.d.ts +14 -0
  1290. package/dist/plugin-sdk/web/vcard.d.ts +6 -0
  1291. package/dist/plugin-sdk/whatsapp/normalize.d.ts +2 -0
  1292. package/dist/plugin-sdk/whatsapp/resolve-outbound-target.d.ts +1 -0
  1293. package/dist/plugin-sdk/wizard/prompts.d.ts +42 -0
  1294. package/dist/plugin-sdk/wizard/session.d.ts +42 -0
  1295. package/dist/plugins-B362e77G.js +168 -0
  1296. package/dist/plugins-CDJw924T.js +38 -0
  1297. package/dist/plugins-CmSUIUNi.js +38 -0
  1298. package/dist/plugins-cli-CtFRTC2I.js +734 -0
  1299. package/dist/plugins-cli-D1lvqLG9.js +736 -0
  1300. package/dist/polls-CItfB1H8.js +1343 -0
  1301. package/dist/ports-BVLMN1Sr.js +96 -0
  1302. package/dist/ports-CqLSlU6Z.js +317 -0
  1303. package/dist/ports-D94CwCrv.js +344 -0
  1304. package/dist/ports-D_NHthOz.js +96 -0
  1305. package/dist/program-Bve7k4jO.js +176 -0
  1306. package/dist/program-context-8lqacY-M.js +496 -0
  1307. package/dist/program-context-Bvn8046-.js +17 -0
  1308. package/dist/progress-Bek_GyWS.js +133 -0
  1309. package/dist/progress-CbZ2D53A.js +133 -0
  1310. package/dist/prompt-style-DKy6qQxR.js +9 -0
  1311. package/dist/prompt-style-lu0clOOE.js +9 -0
  1312. package/dist/prompts-BI__va99.js +10 -0
  1313. package/dist/prompts-_dDWkCAz.js +10 -0
  1314. package/dist/pw-ai-BLVMuSLv.js +1867 -0
  1315. package/dist/pw-ai-DZJWEF_f.js +1865 -0
  1316. package/dist/pw-ai-dzf-ptcn.js +1868 -0
  1317. package/dist/qmd-manager-B0FWDi1x.js +938 -0
  1318. package/dist/qmd-manager-CrDrpgh3.js +937 -0
  1319. package/dist/qmd-manager-DepEoASu.js +935 -0
  1320. package/dist/queue-2CW7pnm1.js +209 -0
  1321. package/dist/queue-DhjMEG_Q.js +209 -0
  1322. package/dist/redact-BHmk44DI.js +97 -0
  1323. package/dist/redact-ClVwO7Nn.js +97 -0
  1324. package/dist/register.agent-CE_8JbTE.js +265 -0
  1325. package/dist/register.agent-CGRdcftb.js +1003 -0
  1326. package/dist/register.anima-B4NPeesF.js +167 -0
  1327. package/dist/register.anima-hNCtQ_jl.js +167 -0
  1328. package/dist/register.configure-3prVPXwx.js +101 -0
  1329. package/dist/register.configure-Dqm2IveL.js +103 -0
  1330. package/dist/register.maintenance-BSIx4eNS.js +543 -0
  1331. package/dist/register.maintenance-DDeG6CHa.js +543 -0
  1332. package/dist/register.message-DcYPDzYr.js +657 -0
  1333. package/dist/register.message-RbFrjbch.js +660 -0
  1334. package/dist/register.onboard-BBJK_0_C.js +170 -0
  1335. package/dist/register.onboard-BrcWHC9j.js +170 -0
  1336. package/dist/register.setup-ByvEHxYQ.js +175 -0
  1337. package/dist/register.setup-CNwO5Yq3.js +175 -0
  1338. package/dist/register.status-health-sessions-CGT7bn4C.js +142 -0
  1339. package/dist/register.status-health-sessions-QK6iQSJc.js +313 -0
  1340. package/dist/register.subclis-Bd8eE94r.js +255 -0
  1341. package/dist/registry-BiekeB9q.js +116 -0
  1342. package/dist/registry-qI6V4gqU.js +116 -0
  1343. package/dist/reply-Clj5jcM5.js +32212 -0
  1344. package/dist/reply-DnH1Ueoz.js +32212 -0
  1345. package/dist/reply-prefix-D2NxVzGZ.js +100 -0
  1346. package/dist/reply-prefix-DPpz_mEi.js +100 -0
  1347. package/dist/requirements-BzZxj2Wu.js +107 -0
  1348. package/dist/requirements-DIW1svgA.js +107 -0
  1349. package/dist/rolldown-runtime-Cbj13DAv.js +20 -0
  1350. package/dist/routes-CXpne1-p.js +1820 -0
  1351. package/dist/routes-DtRwwTy6.js +1820 -0
  1352. package/dist/rpc-BBB_Fbes.js +70 -0
  1353. package/dist/rpc-CMEWfcci.js +70 -0
  1354. package/dist/run-main-DOXNrnL2.js +371 -0
  1355. package/dist/runtime-guard-BSUFiAQV.js +60 -0
  1356. package/dist/runtime-guard-DeOXA_86.js +60 -0
  1357. package/dist/sandbox-Bk0ZXcag.js +859 -0
  1358. package/dist/sandbox-D3CFkNeF.js +858 -0
  1359. package/dist/sandbox-cli-BCnnmQ03.js +458 -0
  1360. package/dist/sandbox-cli-Ctpa2Isy.js +461 -0
  1361. package/dist/secret-equal-B268kALC.js +13 -0
  1362. package/dist/secret-equal-Dghy3xsA.js +13 -0
  1363. package/dist/security-cli-BiiLLcQV.js +462 -0
  1364. package/dist/security-cli-DOZmLENS.js +465 -0
  1365. package/dist/send-BTA6qupx.js +10 -0
  1366. package/dist/send-BhAfdGII.js +10 -0
  1367. package/dist/send-C2t9xpXI.js +10 -0
  1368. package/dist/send-C6ccOW_U.js +10 -0
  1369. package/dist/send-CP74DxzJ.js +28 -0
  1370. package/dist/send-CS3G_YWr.js +10 -0
  1371. package/dist/send-D5JnqErc.js +10 -0
  1372. package/dist/send-DEMhcauI.js +32 -0
  1373. package/dist/send-DF8KJImx.js +28 -0
  1374. package/dist/send-DVW0CcHX.js +32 -0
  1375. package/dist/send-DigO-i9j.js +28 -0
  1376. package/dist/send-DqMLjD9Z.js +10 -0
  1377. package/dist/send-Dz2BDHll.js +32 -0
  1378. package/dist/send-ga9udK1_.js +10 -0
  1379. package/dist/send-oDz9NATu.js +10 -0
  1380. package/dist/server-context-BznDS2td.js +824 -0
  1381. package/dist/server-context-CXnE2F7d.js +824 -0
  1382. package/dist/server-node-events-Cu6Qkjor.js +231 -0
  1383. package/dist/server-node-events-Cv8MuF1g.js +233 -0
  1384. package/dist/service-BNVpYcQe.js +642 -0
  1385. package/dist/service-D56aMXUB.js +642 -0
  1386. package/dist/service-audit-DBsygs7y.js +488 -0
  1387. package/dist/service-audit-DKWJcTu4.js +488 -0
  1388. package/dist/session-CXcl3Xrp.js +181 -0
  1389. package/dist/session-DUFuU29j.js +179 -0
  1390. package/dist/session-M_uCxF0U.js +181 -0
  1391. package/dist/session-cost-usage-BwiTZuKl.js +600 -0
  1392. package/dist/session-cost-usage-DT9YNXTJ.js +600 -0
  1393. package/dist/session-key-BGiG_JcT.js +198 -0
  1394. package/dist/session-key-DxcgHezu.js +198 -0
  1395. package/dist/sessions-B8GUAiF6.js +1296 -0
  1396. package/dist/sessions-D0Zd1CND.js +1296 -0
  1397. package/dist/sessions-D0spLCm7.js +187 -0
  1398. package/dist/sessions-XvkHLXt4.js +2038 -0
  1399. package/dist/shared-CEHU0exQ.js +77 -0
  1400. package/dist/shared-Cgly1vPb.js +66 -0
  1401. package/dist/shared-DAHxpviD.js +77 -0
  1402. package/dist/shared-JOo05hST.js +66 -0
  1403. package/dist/shell-argv-CAq1mLa2.js +72 -0
  1404. package/dist/shell-argv-Ce41guJv.js +72 -0
  1405. package/dist/skill-scanner-CkaVLABv.js +263 -0
  1406. package/dist/skill-scanner-Coo4QoCd.js +263 -0
  1407. package/dist/skills-B-G7UHOa.js +808 -0
  1408. package/dist/skills-B5LQx4lT.js +807 -0
  1409. package/dist/skills-cli-DF9XJ2_0.js +286 -0
  1410. package/dist/skills-cli-eLBluVoD.js +289 -0
  1411. package/dist/skills-status-Clq9ZnYu.js +166 -0
  1412. package/dist/skills-status-JQluhU-P.js +166 -0
  1413. package/dist/sqlite-BukcjdJa.js +321 -0
  1414. package/dist/sqlite-CGcOZZ0C.js +368 -0
  1415. package/dist/sqlite-Ck6f9KWc.js +453 -0
  1416. package/dist/start-BvsoGNHJ.js +354 -0
  1417. package/dist/start-CF_Cp6YC.js +353 -0
  1418. package/dist/status-BKGJ7VPQ.js +27 -0
  1419. package/dist/status-BZip7mx9.js +27 -0
  1420. package/dist/status-BqYq_J5J.js +2132 -0
  1421. package/dist/status-CMnlcBVc.js +21 -0
  1422. package/dist/status-CXQrTLri.js +2137 -0
  1423. package/dist/status-tDZPwewW.js +21 -0
  1424. package/dist/status.update-CWiod7o_.js +79 -0
  1425. package/dist/status.update-D1PyrhoB.js +79 -0
  1426. package/dist/subagent-registry-CpSZ2RSO.js +2760 -0
  1427. package/dist/subagent-registry-DkCXRdwf.js +2759 -0
  1428. package/dist/subagent-registry-MPrTYaEB.js +14 -0
  1429. package/dist/subsystem-Dowf8fSU.js +860 -0
  1430. package/dist/system-cli-4Urk9KV1.js +79 -0
  1431. package/dist/system-cli-CgMzkg8R.js +82 -0
  1432. package/dist/system-run-command-DGk7dwQP.js +93 -0
  1433. package/dist/system-run-command-X9lDJIy0.js +93 -0
  1434. package/dist/systemd-BSrHDyeU.js +452 -0
  1435. package/dist/systemd-By5xdSB4.js +452 -0
  1436. package/dist/systemd-hints-BtjL_5Rh.js +36 -0
  1437. package/dist/systemd-hints-sJmr6cjb.js +36 -0
  1438. package/dist/systemd-linger-BNz8PXPF.js +75 -0
  1439. package/dist/systemd-linger-D5vLilKH.js +75 -0
  1440. package/dist/table-BL0lJzsm.js +279 -0
  1441. package/dist/table-DoiRPsn0.js +279 -0
  1442. package/dist/tailnet-CuiNECdL.js +42 -0
  1443. package/dist/tailnet-__ODlBOT.js +42 -0
  1444. package/dist/templates-DJ0ii6X2.js +47 -0
  1445. package/dist/templates-DPTs18po.js +47 -0
  1446. package/dist/thinking-BLU0jXR8.js +204 -0
  1447. package/dist/thinking-BXEswx1X.js +204 -0
  1448. package/dist/timeout-CswI_K-U.js +232 -0
  1449. package/dist/tokens-C-X7wDKj.js +14 -0
  1450. package/dist/tokens-DkvqA72p.js +14 -0
  1451. package/dist/transcript-events-C1hdue6u.js +17 -0
  1452. package/dist/transcript-events-C8Tqw4td.js +17 -0
  1453. package/dist/transcript-events-DW_H__a1.js +17 -0
  1454. package/dist/transcript-tools-DtE5di1q.js +108 -0
  1455. package/dist/transcript-tools-DuyYOkUq.js +108 -0
  1456. package/dist/trash-BJLK1vMn.js +23 -0
  1457. package/dist/trash-_x5UZ94k.js +23 -0
  1458. package/dist/tui-Cj25a9wc.js +3894 -0
  1459. package/dist/tui-Iv4T-9gg.js +3894 -0
  1460. package/dist/tui-cli-BkJxFa_n.js +50 -0
  1461. package/dist/tui-cli-DeFmBtZ7.js +47 -0
  1462. package/dist/update-DZRKbMjq.js +317 -0
  1463. package/dist/update-LFgxHHPd.js +317 -0
  1464. package/dist/update-check-CWc7YXmc.js +400 -0
  1465. package/dist/update-check-IhlWaui6.js +400 -0
  1466. package/dist/update-cli-qGGlL5Lg.js +1105 -0
  1467. package/dist/update-cli-rMqhSUMc.js +1105 -0
  1468. package/dist/update-runner-BT77y3bz.js +894 -0
  1469. package/dist/update-runner-DvzFqFJf.js +894 -0
  1470. package/dist/usage-BeZuVAY4.js +4516 -0
  1471. package/dist/usage-format-BAirWUSO.js +36 -0
  1472. package/dist/usage-format-CpORtVCG.js +36 -0
  1473. package/dist/utils-Bsw__U-F.js +243 -0
  1474. package/dist/utils-C9sj30YY.js +239 -0
  1475. package/dist/warning-filter.js +48 -0
  1476. package/dist/web-DEx7MMYq.js +2203 -0
  1477. package/dist/web-DHSoj6bL.js +46842 -0
  1478. package/dist/web-DI0g5K4c.js +63 -0
  1479. package/dist/webhooks-cli-sfLRE89X.js +319 -0
  1480. package/dist/webhooks-cli-xtZBlaD1.js +316 -0
  1481. package/dist/whatsapp-actions-DIREhxrq.js +49 -0
  1482. package/dist/whatsapp-actions-TGHl9p4i.js +45 -0
  1483. package/dist/whatsapp-actions-dBHozeuk.js +53 -0
  1484. package/dist/widearea-dns-B6ocX23x.js +127 -0
  1485. package/dist/widearea-dns-NsEUNYwz.js +127 -0
  1486. package/dist/workspace-Dcfoy5JJ.js +649 -0
  1487. package/dist/ws-COSqlEPx.js +218 -0
  1488. package/dist/ws-log-N8R5MvGE.js +267 -0
  1489. package/dist/ws-log-gwFxPxj5.js +267 -0
  1490. package/dist/wsl-CqyuRvtM.js +26 -0
  1491. package/dist/wsl-ymJYvc9Q.js +26 -0
  1492. package/package.json +209 -0
  1493. package/skills/1password/SKILL.md +70 -0
  1494. package/skills/1password/references/cli-examples.md +29 -0
  1495. package/skills/1password/references/get-started.md +17 -0
  1496. package/skills/animahub/SKILL.md +77 -0
  1497. package/skills/apple-notes/SKILL.md +77 -0
  1498. package/skills/apple-reminders/SKILL.md +96 -0
  1499. package/skills/audit/SKILL.md +68 -0
  1500. package/skills/bear-notes/SKILL.md +107 -0
  1501. package/skills/blogwatcher/SKILL.md +69 -0
  1502. package/skills/blucli/SKILL.md +47 -0
  1503. package/skills/bluebubbles/SKILL.md +131 -0
  1504. package/skills/camsnap/SKILL.md +45 -0
  1505. package/skills/canvas/SKILL.md +198 -0
  1506. package/skills/coding-agent/SKILL.md +284 -0
  1507. package/skills/deploy/SKILL.md +45 -0
  1508. package/skills/discord/SKILL.md +160 -0
  1509. package/skills/eightctl/SKILL.md +50 -0
  1510. package/skills/food-order/SKILL.md +48 -0
  1511. package/skills/gemini/SKILL.md +43 -0
  1512. package/skills/gifgrep/SKILL.md +79 -0
  1513. package/skills/github/SKILL.md +77 -0
  1514. package/skills/gog/SKILL.md +116 -0
  1515. package/skills/goplaces/SKILL.md +52 -0
  1516. package/skills/healthcheck/SKILL.md +245 -0
  1517. package/skills/himalaya/SKILL.md +257 -0
  1518. package/skills/himalaya/references/configuration.md +184 -0
  1519. package/skills/himalaya/references/message-composition.md +199 -0
  1520. package/skills/imsg/SKILL.md +74 -0
  1521. package/skills/mcporter/SKILL.md +61 -0
  1522. package/skills/model-usage/SKILL.md +69 -0
  1523. package/skills/model-usage/references/codexbar-cli.md +33 -0
  1524. package/skills/model-usage/scripts/model_usage.py +310 -0
  1525. package/skills/nano-banana-pro/SKILL.md +58 -0
  1526. package/skills/nano-banana-pro/scripts/generate_image.py +184 -0
  1527. package/skills/nano-pdf/SKILL.md +38 -0
  1528. package/skills/notion/SKILL.md +172 -0
  1529. package/skills/obsidian/SKILL.md +81 -0
  1530. package/skills/openai-image-gen/SKILL.md +89 -0
  1531. package/skills/openai-image-gen/scripts/gen.py +240 -0
  1532. package/skills/openai-whisper/SKILL.md +38 -0
  1533. package/skills/openai-whisper-api/SKILL.md +52 -0
  1534. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  1535. package/skills/openhue/SKILL.md +51 -0
  1536. package/skills/oracle/SKILL.md +125 -0
  1537. package/skills/ordercli/SKILL.md +78 -0
  1538. package/skills/peekaboo/SKILL.md +190 -0
  1539. package/skills/review/SKILL.md +58 -0
  1540. package/skills/sag/SKILL.md +87 -0
  1541. package/skills/session-logs/SKILL.md +115 -0
  1542. package/skills/sherpa-onnx-tts/SKILL.md +103 -0
  1543. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  1544. package/skills/skill-creator/SKILL.md +370 -0
  1545. package/skills/skill-creator/license.txt +202 -0
  1546. package/skills/skill-creator/scripts/init_skill.py +378 -0
  1547. package/skills/skill-creator/scripts/package_skill.py +111 -0
  1548. package/skills/skill-creator/scripts/quick_validate.py +101 -0
  1549. package/skills/slack/SKILL.md +144 -0
  1550. package/skills/songsee/SKILL.md +49 -0
  1551. package/skills/sonoscli/SKILL.md +46 -0
  1552. package/skills/spotify-player/SKILL.md +64 -0
  1553. package/skills/summarize/SKILL.md +87 -0
  1554. package/skills/things-mac/SKILL.md +86 -0
  1555. package/skills/tmux/SKILL.md +135 -0
  1556. package/skills/tmux/scripts/find-sessions.sh +112 -0
  1557. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  1558. package/skills/trello/SKILL.md +95 -0
  1559. package/skills/video-frames/SKILL.md +46 -0
  1560. package/skills/video-frames/scripts/frame.sh +81 -0
  1561. package/skills/voice-call/SKILL.md +45 -0
  1562. package/skills/wacli/SKILL.md +72 -0
  1563. package/skills/weather/SKILL.md +54 -0
  1564. package/templates/BRAIN.md +65 -0
  1565. package/templates/GUT.md +44 -0
  1566. package/templates/HEART.md +51 -0
  1567. package/templates/MEMORY.md +66 -0
  1568. package/templates/SHADOW.md +68 -0
  1569. package/templates/SOUL.md +38 -0
  1570. package/templates/SPIRIT.md +43 -0
@@ -0,0 +1,2692 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
+ import { g as resolveStateDir, h as resolveOAuthPath } from "./paths-C6VCWKo3.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-Dowf8fSU.js";
4
+ import { b as resolveUserPath } from "./utils-Bsw__U-F.js";
5
+ import { n as DEFAULT_AGENT_ID } from "./session-key-DxcgHezu.js";
6
+ import { a as resolveAgentModelPrimary } from "./agent-scope-V1bi9OYL.js";
7
+ import { t as formatCliCommand } from "./command-format-DELazozB.js";
8
+ import { t as isTruthyEnvValue } from "./env-0lJfCPsw.js";
9
+ import fs from "node:fs";
10
+ import path from "node:path";
11
+ import fs$1 from "node:fs/promises";
12
+ import { execFileSync, execSync } from "node:child_process";
13
+ import { createHash, randomBytes, randomUUID } from "node:crypto";
14
+ import { getEnvApiKey, getOAuthApiKey, getOAuthProviders } from "@mariozechner/pi-ai";
15
+ import "@aws-sdk/client-bedrock";
16
+
17
+ //#region src/agents/defaults.ts
18
+ const DEFAULT_PROVIDER = "anthropic";
19
+ const DEFAULT_MODEL = "claude-opus-4-6";
20
+ const DEFAULT_CONTEXT_TOKENS = 2e5;
21
+
22
+ //#endregion
23
+ //#region src/agents/auth-profiles/constants.ts
24
+ const AUTH_STORE_VERSION = 1;
25
+ const AUTH_PROFILE_FILENAME = "auth-profiles.json";
26
+ const LEGACY_AUTH_FILENAME = "auth.json";
27
+ const CLAUDE_CLI_PROFILE_ID = "anthropic:claude-cli";
28
+ const CODEX_CLI_PROFILE_ID = "openai-codex:codex-cli";
29
+ const QWEN_CLI_PROFILE_ID = "qwen-portal:qwen-cli";
30
+ const MINIMAX_CLI_PROFILE_ID = "minimax-portal:minimax-cli";
31
+ const AUTH_STORE_LOCK_OPTIONS = {
32
+ retries: {
33
+ retries: 10,
34
+ factor: 2,
35
+ minTimeout: 100,
36
+ maxTimeout: 1e4,
37
+ randomize: true
38
+ },
39
+ stale: 3e4
40
+ };
41
+ const EXTERNAL_CLI_SYNC_TTL_MS = 900 * 1e3;
42
+ const EXTERNAL_CLI_NEAR_EXPIRY_MS = 600 * 1e3;
43
+ const log$1 = createSubsystemLogger("agents/auth-profiles");
44
+
45
+ //#endregion
46
+ //#region src/agents/auth-profiles/display.ts
47
+ function resolveAuthProfileDisplayLabel(params) {
48
+ const { cfg, store, profileId } = params;
49
+ const profile = store.profiles[profileId];
50
+ const email = cfg?.auth?.profiles?.[profileId]?.email?.trim() || (profile && "email" in profile ? profile.email?.trim() : void 0);
51
+ if (email) return `${profileId} (${email})`;
52
+ return profileId;
53
+ }
54
+
55
+ //#endregion
56
+ //#region src/utils/normalize-secret-input.ts
57
+ /**
58
+ * Secret normalization for copy/pasted credentials.
59
+ *
60
+ * Common footgun: line breaks (especially `\r`) embedded in API keys/tokens.
61
+ * We strip line breaks anywhere, then trim whitespace at the ends.
62
+ *
63
+ * Intentionally does NOT remove ordinary spaces inside the string to avoid
64
+ * silently altering "Bearer <token>" style values.
65
+ */
66
+ function normalizeSecretInput(value) {
67
+ if (typeof value !== "string") return "";
68
+ return value.replace(/[\r\n\u2028\u2029]+/g, "").trim();
69
+ }
70
+ function normalizeOptionalSecretInput(value) {
71
+ const normalized = normalizeSecretInput(value);
72
+ return normalized ? normalized : void 0;
73
+ }
74
+
75
+ //#endregion
76
+ //#region src/plugin-sdk/file-lock.ts
77
+ const HELD_LOCKS_KEY = Symbol.for("anima.fileLockHeldLocks");
78
+ function resolveHeldLocks() {
79
+ const proc = process;
80
+ if (!proc[HELD_LOCKS_KEY]) proc[HELD_LOCKS_KEY] = /* @__PURE__ */ new Map();
81
+ return proc[HELD_LOCKS_KEY];
82
+ }
83
+ const HELD_LOCKS = resolveHeldLocks();
84
+ function isAlive(pid) {
85
+ if (!Number.isFinite(pid) || pid <= 0) return false;
86
+ try {
87
+ process.kill(pid, 0);
88
+ return true;
89
+ } catch {
90
+ return false;
91
+ }
92
+ }
93
+ function computeDelayMs(retries, attempt) {
94
+ const base = Math.min(retries.maxTimeout, Math.max(retries.minTimeout, retries.minTimeout * retries.factor ** attempt));
95
+ const jitter = retries.randomize ? 1 + Math.random() : 1;
96
+ return Math.min(retries.maxTimeout, Math.round(base * jitter));
97
+ }
98
+ async function readLockPayload(lockPath) {
99
+ try {
100
+ const raw = await fs$1.readFile(lockPath, "utf8");
101
+ const parsed = JSON.parse(raw);
102
+ if (typeof parsed.pid !== "number" || typeof parsed.createdAt !== "string") return null;
103
+ return {
104
+ pid: parsed.pid,
105
+ createdAt: parsed.createdAt
106
+ };
107
+ } catch {
108
+ return null;
109
+ }
110
+ }
111
+ async function resolveNormalizedFilePath(filePath) {
112
+ const resolved = path.resolve(filePath);
113
+ const dir = path.dirname(resolved);
114
+ await fs$1.mkdir(dir, { recursive: true });
115
+ try {
116
+ const realDir = await fs$1.realpath(dir);
117
+ return path.join(realDir, path.basename(resolved));
118
+ } catch {
119
+ return resolved;
120
+ }
121
+ }
122
+ async function isStaleLock(lockPath, staleMs) {
123
+ const payload = await readLockPayload(lockPath);
124
+ if (payload?.pid && !isAlive(payload.pid)) return true;
125
+ if (payload?.createdAt) {
126
+ const createdAt = Date.parse(payload.createdAt);
127
+ if (!Number.isFinite(createdAt) || Date.now() - createdAt > staleMs) return true;
128
+ }
129
+ try {
130
+ const stat = await fs$1.stat(lockPath);
131
+ return Date.now() - stat.mtimeMs > staleMs;
132
+ } catch {
133
+ return true;
134
+ }
135
+ }
136
+ async function acquireFileLock(filePath, options) {
137
+ const normalizedFile = await resolveNormalizedFilePath(filePath);
138
+ const lockPath = `${normalizedFile}.lock`;
139
+ const held = HELD_LOCKS.get(normalizedFile);
140
+ if (held) {
141
+ held.count += 1;
142
+ return {
143
+ lockPath,
144
+ release: async () => {
145
+ const current = HELD_LOCKS.get(normalizedFile);
146
+ if (!current) return;
147
+ current.count -= 1;
148
+ if (current.count > 0) return;
149
+ HELD_LOCKS.delete(normalizedFile);
150
+ await current.handle.close().catch(() => void 0);
151
+ await fs$1.rm(current.lockPath, { force: true }).catch(() => void 0);
152
+ }
153
+ };
154
+ }
155
+ const attempts = Math.max(1, options.retries.retries + 1);
156
+ for (let attempt = 0; attempt < attempts; attempt += 1) try {
157
+ const handle = await fs$1.open(lockPath, "wx");
158
+ await handle.writeFile(JSON.stringify({
159
+ pid: process.pid,
160
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
161
+ }, null, 2), "utf8");
162
+ HELD_LOCKS.set(normalizedFile, {
163
+ count: 1,
164
+ handle,
165
+ lockPath
166
+ });
167
+ return {
168
+ lockPath,
169
+ release: async () => {
170
+ const current = HELD_LOCKS.get(normalizedFile);
171
+ if (!current) return;
172
+ current.count -= 1;
173
+ if (current.count > 0) return;
174
+ HELD_LOCKS.delete(normalizedFile);
175
+ await current.handle.close().catch(() => void 0);
176
+ await fs$1.rm(current.lockPath, { force: true }).catch(() => void 0);
177
+ }
178
+ };
179
+ } catch (err) {
180
+ if (err.code !== "EEXIST") throw err;
181
+ if (await isStaleLock(lockPath, options.stale)) {
182
+ await fs$1.rm(lockPath, { force: true }).catch(() => void 0);
183
+ continue;
184
+ }
185
+ if (attempt >= attempts - 1) break;
186
+ await new Promise((resolve) => setTimeout(resolve, computeDelayMs(options.retries, attempt)));
187
+ }
188
+ throw new Error(`file lock timeout for ${normalizedFile}`);
189
+ }
190
+ async function withFileLock(filePath, options, fn) {
191
+ const lock = await acquireFileLock(filePath, options);
192
+ try {
193
+ return await fn();
194
+ } finally {
195
+ await lock.release();
196
+ }
197
+ }
198
+
199
+ //#endregion
200
+ //#region src/infra/json-file.ts
201
+ function loadJsonFile(pathname) {
202
+ try {
203
+ if (!fs.existsSync(pathname)) return;
204
+ const raw = fs.readFileSync(pathname, "utf8");
205
+ return JSON.parse(raw);
206
+ } catch {
207
+ return;
208
+ }
209
+ }
210
+ function saveJsonFile(pathname, data) {
211
+ const dir = path.dirname(pathname);
212
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, {
213
+ recursive: true,
214
+ mode: 448
215
+ });
216
+ fs.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
217
+ fs.chmodSync(pathname, 384);
218
+ }
219
+
220
+ //#endregion
221
+ //#region src/agents/cli-credentials.ts
222
+ const log = createSubsystemLogger("agents/auth-profiles");
223
+ const QWEN_CLI_CREDENTIALS_RELATIVE_PATH = ".qwen/oauth_creds.json";
224
+ const MINIMAX_CLI_CREDENTIALS_RELATIVE_PATH = ".minimax/oauth_creds.json";
225
+ let qwenCliCache = null;
226
+ let minimaxCliCache = null;
227
+ function resolveQwenCliCredentialsPath(homeDir) {
228
+ const baseDir = homeDir ?? resolveUserPath("~");
229
+ return path.join(baseDir, QWEN_CLI_CREDENTIALS_RELATIVE_PATH);
230
+ }
231
+ function resolveMiniMaxCliCredentialsPath(homeDir) {
232
+ const baseDir = homeDir ?? resolveUserPath("~");
233
+ return path.join(baseDir, MINIMAX_CLI_CREDENTIALS_RELATIVE_PATH);
234
+ }
235
+ function readQwenCliCredentials(options) {
236
+ return readPortalCliOauthCredentials(resolveQwenCliCredentialsPath(options?.homeDir), "qwen-portal");
237
+ }
238
+ function readPortalCliOauthCredentials(credPath, provider) {
239
+ const raw = loadJsonFile(credPath);
240
+ if (!raw || typeof raw !== "object") return null;
241
+ const data = raw;
242
+ const accessToken = data.access_token;
243
+ const refreshToken = data.refresh_token;
244
+ const expiresAt = data.expiry_date;
245
+ if (typeof accessToken !== "string" || !accessToken) return null;
246
+ if (typeof refreshToken !== "string" || !refreshToken) return null;
247
+ if (typeof expiresAt !== "number" || !Number.isFinite(expiresAt)) return null;
248
+ return {
249
+ type: "oauth",
250
+ provider,
251
+ access: accessToken,
252
+ refresh: refreshToken,
253
+ expires: expiresAt
254
+ };
255
+ }
256
+ function readMiniMaxCliCredentials(options) {
257
+ return readPortalCliOauthCredentials(resolveMiniMaxCliCredentialsPath(options?.homeDir), "minimax-portal");
258
+ }
259
+ function readQwenCliCredentialsCached(options) {
260
+ const ttlMs = options?.ttlMs ?? 0;
261
+ const now = Date.now();
262
+ const cacheKey = resolveQwenCliCredentialsPath(options?.homeDir);
263
+ if (ttlMs > 0 && qwenCliCache && qwenCliCache.cacheKey === cacheKey && now - qwenCliCache.readAt < ttlMs) return qwenCliCache.value;
264
+ const value = readQwenCliCredentials({ homeDir: options?.homeDir });
265
+ if (ttlMs > 0) qwenCliCache = {
266
+ value,
267
+ readAt: now,
268
+ cacheKey
269
+ };
270
+ return value;
271
+ }
272
+ function readMiniMaxCliCredentialsCached(options) {
273
+ const ttlMs = options?.ttlMs ?? 0;
274
+ const now = Date.now();
275
+ const cacheKey = resolveMiniMaxCliCredentialsPath(options?.homeDir);
276
+ if (ttlMs > 0 && minimaxCliCache && minimaxCliCache.cacheKey === cacheKey && now - minimaxCliCache.readAt < ttlMs) return minimaxCliCache.value;
277
+ const value = readMiniMaxCliCredentials({ homeDir: options?.homeDir });
278
+ if (ttlMs > 0) minimaxCliCache = {
279
+ value,
280
+ readAt: now,
281
+ cacheKey
282
+ };
283
+ return value;
284
+ }
285
+
286
+ //#endregion
287
+ //#region src/agents/auth-profiles/external-cli-sync.ts
288
+ function shallowEqualOAuthCredentials(a, b) {
289
+ if (!a) return false;
290
+ if (a.type !== "oauth") return false;
291
+ return a.provider === b.provider && a.access === b.access && a.refresh === b.refresh && a.expires === b.expires && a.email === b.email && a.enterpriseUrl === b.enterpriseUrl && a.projectId === b.projectId && a.accountId === b.accountId;
292
+ }
293
+ function isExternalProfileFresh(cred, now) {
294
+ if (!cred) return false;
295
+ if (cred.type !== "oauth" && cred.type !== "token") return false;
296
+ if (cred.provider !== "qwen-portal" && cred.provider !== "minimax-portal") return false;
297
+ if (typeof cred.expires !== "number") return true;
298
+ return cred.expires > now + EXTERNAL_CLI_NEAR_EXPIRY_MS;
299
+ }
300
+ /** Sync external CLI credentials into the store for a given provider. */
301
+ function syncExternalCliCredentialsForProvider(store, profileId, provider, readCredentials, now) {
302
+ const existing = store.profiles[profileId];
303
+ const creds = !existing || existing.provider !== provider || !isExternalProfileFresh(existing, now) ? readCredentials() : null;
304
+ if (!creds) return false;
305
+ const existingOAuth = existing?.type === "oauth" ? existing : void 0;
306
+ if ((!existingOAuth || existingOAuth.provider !== provider || existingOAuth.expires <= now || creds.expires > existingOAuth.expires) && !shallowEqualOAuthCredentials(existingOAuth, creds)) {
307
+ store.profiles[profileId] = creds;
308
+ log$1.info(`synced ${provider} credentials from external cli`, {
309
+ profileId,
310
+ expires: new Date(creds.expires).toISOString()
311
+ });
312
+ return true;
313
+ }
314
+ return false;
315
+ }
316
+ /**
317
+ * Sync OAuth credentials from external CLI tools (Qwen Code CLI, MiniMax CLI) into the store.
318
+ *
319
+ * Returns true if any credentials were updated.
320
+ */
321
+ function syncExternalCliCredentials(store) {
322
+ let mutated = false;
323
+ const now = Date.now();
324
+ const existingQwen = store.profiles[QWEN_CLI_PROFILE_ID];
325
+ const qwenCreds = !existingQwen || existingQwen.provider !== "qwen-portal" || !isExternalProfileFresh(existingQwen, now) ? readQwenCliCredentialsCached({ ttlMs: EXTERNAL_CLI_SYNC_TTL_MS }) : null;
326
+ if (qwenCreds) {
327
+ const existing = store.profiles[QWEN_CLI_PROFILE_ID];
328
+ const existingOAuth = existing?.type === "oauth" ? existing : void 0;
329
+ if ((!existingOAuth || existingOAuth.provider !== "qwen-portal" || existingOAuth.expires <= now || qwenCreds.expires > existingOAuth.expires) && !shallowEqualOAuthCredentials(existingOAuth, qwenCreds)) {
330
+ store.profiles[QWEN_CLI_PROFILE_ID] = qwenCreds;
331
+ mutated = true;
332
+ log$1.info("synced qwen credentials from qwen cli", {
333
+ profileId: QWEN_CLI_PROFILE_ID,
334
+ expires: new Date(qwenCreds.expires).toISOString()
335
+ });
336
+ }
337
+ }
338
+ if (syncExternalCliCredentialsForProvider(store, MINIMAX_CLI_PROFILE_ID, "minimax-portal", () => readMiniMaxCliCredentialsCached({ ttlMs: EXTERNAL_CLI_SYNC_TTL_MS }), now)) mutated = true;
339
+ return mutated;
340
+ }
341
+
342
+ //#endregion
343
+ //#region src/agents/agent-paths.ts
344
+ function resolveAnimaAgentDir() {
345
+ const override = process.env.ANIMA_AGENT_DIR?.trim() || process.env.OPENCLAW_AGENT_DIR?.trim() || process.env.PI_CODING_AGENT_DIR?.trim();
346
+ if (override) return resolveUserPath(override);
347
+ return resolveUserPath(path.join(resolveStateDir(), "agents", DEFAULT_AGENT_ID, "agent"));
348
+ }
349
+
350
+ //#endregion
351
+ //#region src/agents/auth-profiles/paths.ts
352
+ function resolveAuthStorePath(agentDir) {
353
+ const resolved = resolveUserPath(agentDir ?? resolveAnimaAgentDir());
354
+ return path.join(resolved, AUTH_PROFILE_FILENAME);
355
+ }
356
+ function resolveLegacyAuthStorePath(agentDir) {
357
+ const resolved = resolveUserPath(agentDir ?? resolveAnimaAgentDir());
358
+ return path.join(resolved, LEGACY_AUTH_FILENAME);
359
+ }
360
+ function resolveAuthStorePathForDisplay(agentDir) {
361
+ const pathname = resolveAuthStorePath(agentDir);
362
+ return pathname.startsWith("~") ? pathname : resolveUserPath(pathname);
363
+ }
364
+ function ensureAuthStoreFile(pathname) {
365
+ if (fs.existsSync(pathname)) return;
366
+ saveJsonFile(pathname, {
367
+ version: AUTH_STORE_VERSION,
368
+ profiles: {}
369
+ });
370
+ }
371
+
372
+ //#endregion
373
+ //#region src/agents/auth-profiles/store.ts
374
+ async function updateAuthProfileStoreWithLock(params) {
375
+ const authPath = resolveAuthStorePath(params.agentDir);
376
+ ensureAuthStoreFile(authPath);
377
+ try {
378
+ return await withFileLock(authPath, AUTH_STORE_LOCK_OPTIONS, async () => {
379
+ const store = ensureAuthProfileStore(params.agentDir);
380
+ if (params.updater(store)) saveAuthProfileStore(store, params.agentDir);
381
+ return store;
382
+ });
383
+ } catch {
384
+ return null;
385
+ }
386
+ }
387
+ function coerceLegacyStore(raw) {
388
+ if (!raw || typeof raw !== "object") return null;
389
+ const record = raw;
390
+ if ("profiles" in record) return null;
391
+ const entries = {};
392
+ for (const [key, value] of Object.entries(record)) {
393
+ if (!value || typeof value !== "object") continue;
394
+ const typed = value;
395
+ if (typed.type !== "api_key" && typed.type !== "oauth" && typed.type !== "token") continue;
396
+ entries[key] = {
397
+ ...typed,
398
+ provider: String(typed.provider ?? key)
399
+ };
400
+ }
401
+ return Object.keys(entries).length > 0 ? entries : null;
402
+ }
403
+ function coerceAuthStore(raw) {
404
+ if (!raw || typeof raw !== "object") return null;
405
+ const record = raw;
406
+ if (!record.profiles || typeof record.profiles !== "object") return null;
407
+ const profiles = record.profiles;
408
+ const normalized = {};
409
+ for (const [key, value] of Object.entries(profiles)) {
410
+ if (!value || typeof value !== "object") continue;
411
+ const typed = value;
412
+ if (typed.type !== "api_key" && typed.type !== "oauth" && typed.type !== "token") continue;
413
+ if (!typed.provider) continue;
414
+ normalized[key] = typed;
415
+ }
416
+ const order = record.order && typeof record.order === "object" ? Object.entries(record.order).reduce((acc, [provider, value]) => {
417
+ if (!Array.isArray(value)) return acc;
418
+ const list = value.map((entry) => typeof entry === "string" ? entry.trim() : "").filter(Boolean);
419
+ if (list.length === 0) return acc;
420
+ acc[provider] = list;
421
+ return acc;
422
+ }, {}) : void 0;
423
+ return {
424
+ version: Number(record.version ?? AUTH_STORE_VERSION),
425
+ profiles: normalized,
426
+ order,
427
+ lastGood: record.lastGood && typeof record.lastGood === "object" ? record.lastGood : void 0,
428
+ usageStats: record.usageStats && typeof record.usageStats === "object" ? record.usageStats : void 0
429
+ };
430
+ }
431
+ function mergeRecord(base, override) {
432
+ if (!base && !override) return;
433
+ if (!base) return { ...override };
434
+ if (!override) return { ...base };
435
+ return {
436
+ ...base,
437
+ ...override
438
+ };
439
+ }
440
+ function mergeAuthProfileStores(base, override) {
441
+ if (Object.keys(override.profiles).length === 0 && !override.order && !override.lastGood && !override.usageStats) return base;
442
+ return {
443
+ version: Math.max(base.version, override.version ?? base.version),
444
+ profiles: {
445
+ ...base.profiles,
446
+ ...override.profiles
447
+ },
448
+ order: mergeRecord(base.order, override.order),
449
+ lastGood: mergeRecord(base.lastGood, override.lastGood),
450
+ usageStats: mergeRecord(base.usageStats, override.usageStats)
451
+ };
452
+ }
453
+ function mergeOAuthFileIntoStore(store) {
454
+ const oauthRaw = loadJsonFile(resolveOAuthPath());
455
+ if (!oauthRaw || typeof oauthRaw !== "object") return false;
456
+ const oauthEntries = oauthRaw;
457
+ let mutated = false;
458
+ for (const [provider, creds] of Object.entries(oauthEntries)) {
459
+ if (!creds || typeof creds !== "object") continue;
460
+ const profileId = `${provider}:default`;
461
+ if (store.profiles[profileId]) continue;
462
+ store.profiles[profileId] = {
463
+ type: "oauth",
464
+ provider,
465
+ ...creds
466
+ };
467
+ mutated = true;
468
+ }
469
+ return mutated;
470
+ }
471
+ function applyLegacyStore(store, legacy) {
472
+ for (const [provider, cred] of Object.entries(legacy)) {
473
+ const profileId = `${provider}:default`;
474
+ if (cred.type === "api_key") {
475
+ store.profiles[profileId] = {
476
+ type: "api_key",
477
+ provider: String(cred.provider ?? provider),
478
+ key: cred.key,
479
+ ...cred.email ? { email: cred.email } : {}
480
+ };
481
+ continue;
482
+ }
483
+ if (cred.type === "token") {
484
+ store.profiles[profileId] = {
485
+ type: "token",
486
+ provider: String(cred.provider ?? provider),
487
+ token: cred.token,
488
+ ...typeof cred.expires === "number" ? { expires: cred.expires } : {},
489
+ ...cred.email ? { email: cred.email } : {}
490
+ };
491
+ continue;
492
+ }
493
+ store.profiles[profileId] = {
494
+ type: "oauth",
495
+ provider: String(cred.provider ?? provider),
496
+ access: cred.access,
497
+ refresh: cred.refresh,
498
+ expires: cred.expires,
499
+ ...cred.enterpriseUrl ? { enterpriseUrl: cred.enterpriseUrl } : {},
500
+ ...cred.projectId ? { projectId: cred.projectId } : {},
501
+ ...cred.accountId ? { accountId: cred.accountId } : {},
502
+ ...cred.email ? { email: cred.email } : {}
503
+ };
504
+ }
505
+ }
506
+ function loadAuthProfileStore() {
507
+ const authPath = resolveAuthStorePath();
508
+ const asStore = coerceAuthStore(loadJsonFile(authPath));
509
+ if (asStore) {
510
+ if (syncExternalCliCredentials(asStore)) saveJsonFile(authPath, asStore);
511
+ return asStore;
512
+ }
513
+ const legacy = coerceLegacyStore(loadJsonFile(resolveLegacyAuthStorePath()));
514
+ if (legacy) {
515
+ const store = {
516
+ version: AUTH_STORE_VERSION,
517
+ profiles: {}
518
+ };
519
+ applyLegacyStore(store, legacy);
520
+ syncExternalCliCredentials(store);
521
+ return store;
522
+ }
523
+ const store = {
524
+ version: AUTH_STORE_VERSION,
525
+ profiles: {}
526
+ };
527
+ syncExternalCliCredentials(store);
528
+ return store;
529
+ }
530
+ function loadAuthProfileStoreForAgent(agentDir, _options) {
531
+ const authPath = resolveAuthStorePath(agentDir);
532
+ const asStore = coerceAuthStore(loadJsonFile(authPath));
533
+ if (asStore) {
534
+ if (syncExternalCliCredentials(asStore)) saveJsonFile(authPath, asStore);
535
+ return asStore;
536
+ }
537
+ if (agentDir) {
538
+ const mainStore = coerceAuthStore(loadJsonFile(resolveAuthStorePath()));
539
+ if (mainStore && Object.keys(mainStore.profiles).length > 0) {
540
+ saveJsonFile(authPath, mainStore);
541
+ log$1.info("inherited auth-profiles from main agent", { agentDir });
542
+ return mainStore;
543
+ }
544
+ }
545
+ const legacy = coerceLegacyStore(loadJsonFile(resolveLegacyAuthStorePath(agentDir)));
546
+ const store = {
547
+ version: AUTH_STORE_VERSION,
548
+ profiles: {}
549
+ };
550
+ if (legacy) applyLegacyStore(store, legacy);
551
+ const mergedOAuth = mergeOAuthFileIntoStore(store);
552
+ const syncedCli = syncExternalCliCredentials(store);
553
+ const shouldWrite = legacy !== null || mergedOAuth || syncedCli;
554
+ if (shouldWrite) saveJsonFile(authPath, store);
555
+ if (shouldWrite && legacy !== null) {
556
+ const legacyPath = resolveLegacyAuthStorePath(agentDir);
557
+ try {
558
+ fs.unlinkSync(legacyPath);
559
+ } catch (err) {
560
+ if (err?.code !== "ENOENT") log$1.warn("failed to delete legacy auth.json after migration", {
561
+ err,
562
+ legacyPath
563
+ });
564
+ }
565
+ }
566
+ return store;
567
+ }
568
+ function ensureAuthProfileStore(agentDir, options) {
569
+ const store = loadAuthProfileStoreForAgent(agentDir, options);
570
+ const authPath = resolveAuthStorePath(agentDir);
571
+ const mainAuthPath = resolveAuthStorePath();
572
+ if (!agentDir || authPath === mainAuthPath) return store;
573
+ return mergeAuthProfileStores(loadAuthProfileStoreForAgent(void 0, options), store);
574
+ }
575
+ function saveAuthProfileStore(store, agentDir) {
576
+ saveJsonFile(resolveAuthStorePath(agentDir), {
577
+ version: AUTH_STORE_VERSION,
578
+ profiles: store.profiles,
579
+ order: store.order ?? void 0,
580
+ lastGood: store.lastGood ?? void 0,
581
+ usageStats: store.usageStats ?? void 0
582
+ });
583
+ }
584
+
585
+ //#endregion
586
+ //#region src/agents/auth-profiles/profiles.ts
587
+ async function setAuthProfileOrder(params) {
588
+ const providerKey = normalizeProviderId(params.provider);
589
+ const sanitized = params.order && Array.isArray(params.order) ? params.order.map((entry) => String(entry).trim()).filter(Boolean) : [];
590
+ const deduped = [];
591
+ for (const entry of sanitized) if (!deduped.includes(entry)) deduped.push(entry);
592
+ return await updateAuthProfileStoreWithLock({
593
+ agentDir: params.agentDir,
594
+ updater: (store) => {
595
+ store.order = store.order ?? {};
596
+ if (deduped.length === 0) {
597
+ if (!store.order[providerKey]) return false;
598
+ delete store.order[providerKey];
599
+ if (Object.keys(store.order).length === 0) store.order = void 0;
600
+ return true;
601
+ }
602
+ store.order[providerKey] = deduped;
603
+ return true;
604
+ }
605
+ });
606
+ }
607
+ function upsertAuthProfile(params) {
608
+ const credential = params.credential.type === "api_key" ? {
609
+ ...params.credential,
610
+ ...typeof params.credential.key === "string" ? { key: normalizeSecretInput(params.credential.key) } : {}
611
+ } : params.credential.type === "token" ? {
612
+ ...params.credential,
613
+ token: normalizeSecretInput(params.credential.token)
614
+ } : params.credential;
615
+ const store = ensureAuthProfileStore(params.agentDir);
616
+ store.profiles[params.profileId] = credential;
617
+ saveAuthProfileStore(store, params.agentDir);
618
+ }
619
+ async function upsertAuthProfileWithLock(params) {
620
+ return await updateAuthProfileStoreWithLock({
621
+ agentDir: params.agentDir,
622
+ updater: (store) => {
623
+ store.profiles[params.profileId] = params.credential;
624
+ return true;
625
+ }
626
+ });
627
+ }
628
+ function listProfilesForProvider(store, provider) {
629
+ const providerKey = normalizeProviderId(provider);
630
+ return Object.entries(store.profiles).filter(([, cred]) => normalizeProviderId(cred.provider) === providerKey).map(([id]) => id);
631
+ }
632
+
633
+ //#endregion
634
+ //#region src/agents/auth-profiles/repair.ts
635
+ function getProfileSuffix(profileId) {
636
+ const idx = profileId.indexOf(":");
637
+ if (idx < 0) return "";
638
+ return profileId.slice(idx + 1);
639
+ }
640
+ function isEmailLike(value) {
641
+ const trimmed = value.trim();
642
+ if (!trimmed) return false;
643
+ return trimmed.includes("@") && trimmed.includes(".");
644
+ }
645
+ function suggestOAuthProfileIdForLegacyDefault(params) {
646
+ const providerKey = normalizeProviderId(params.provider);
647
+ if (getProfileSuffix(params.legacyProfileId) !== "default") return null;
648
+ const legacyCfg = params.cfg?.auth?.profiles?.[params.legacyProfileId];
649
+ if (legacyCfg && normalizeProviderId(legacyCfg.provider) === providerKey && legacyCfg.mode !== "oauth") return null;
650
+ const oauthProfiles = listProfilesForProvider(params.store, providerKey).filter((id) => params.store.profiles[id]?.type === "oauth");
651
+ if (oauthProfiles.length === 0) return null;
652
+ const configuredEmail = legacyCfg?.email?.trim();
653
+ if (configuredEmail) {
654
+ const byEmail = oauthProfiles.find((id) => {
655
+ const cred = params.store.profiles[id];
656
+ if (!cred || cred.type !== "oauth") return false;
657
+ return cred.email?.trim() === configuredEmail || id === `${providerKey}:${configuredEmail}`;
658
+ });
659
+ if (byEmail) return byEmail;
660
+ }
661
+ const lastGood = params.store.lastGood?.[providerKey] ?? params.store.lastGood?.[params.provider];
662
+ if (lastGood && oauthProfiles.includes(lastGood)) return lastGood;
663
+ const nonLegacy = oauthProfiles.filter((id) => id !== params.legacyProfileId);
664
+ if (nonLegacy.length === 1) return nonLegacy[0] ?? null;
665
+ const emailLike = nonLegacy.filter((id) => isEmailLike(getProfileSuffix(id)));
666
+ if (emailLike.length === 1) return emailLike[0] ?? null;
667
+ return null;
668
+ }
669
+ function repairOAuthProfileIdMismatch(params) {
670
+ const legacyProfileId = params.legacyProfileId ?? `${normalizeProviderId(params.provider)}:default`;
671
+ const legacyCfg = params.cfg.auth?.profiles?.[legacyProfileId];
672
+ if (!legacyCfg) return {
673
+ config: params.cfg,
674
+ changes: [],
675
+ migrated: false
676
+ };
677
+ if (legacyCfg.mode !== "oauth") return {
678
+ config: params.cfg,
679
+ changes: [],
680
+ migrated: false
681
+ };
682
+ if (normalizeProviderId(legacyCfg.provider) !== normalizeProviderId(params.provider)) return {
683
+ config: params.cfg,
684
+ changes: [],
685
+ migrated: false
686
+ };
687
+ const toProfileId = suggestOAuthProfileIdForLegacyDefault({
688
+ cfg: params.cfg,
689
+ store: params.store,
690
+ provider: params.provider,
691
+ legacyProfileId
692
+ });
693
+ if (!toProfileId || toProfileId === legacyProfileId) return {
694
+ config: params.cfg,
695
+ changes: [],
696
+ migrated: false
697
+ };
698
+ const toCred = params.store.profiles[toProfileId];
699
+ const toEmail = toCred?.type === "oauth" ? toCred.email?.trim() : void 0;
700
+ const nextProfiles = { ...params.cfg.auth?.profiles };
701
+ delete nextProfiles[legacyProfileId];
702
+ nextProfiles[toProfileId] = {
703
+ ...legacyCfg,
704
+ ...toEmail ? { email: toEmail } : {}
705
+ };
706
+ const providerKey = normalizeProviderId(params.provider);
707
+ const nextOrder = (() => {
708
+ const order = params.cfg.auth?.order;
709
+ if (!order) return;
710
+ const resolvedKey = Object.keys(order).find((key) => normalizeProviderId(key) === providerKey);
711
+ if (!resolvedKey) return order;
712
+ const existing = order[resolvedKey];
713
+ if (!Array.isArray(existing)) return order;
714
+ const replaced = existing.map((id) => id === legacyProfileId ? toProfileId : id).filter((id) => typeof id === "string" && id.trim().length > 0);
715
+ const deduped = [];
716
+ for (const entry of replaced) if (!deduped.includes(entry)) deduped.push(entry);
717
+ return {
718
+ ...order,
719
+ [resolvedKey]: deduped
720
+ };
721
+ })();
722
+ return {
723
+ config: {
724
+ ...params.cfg,
725
+ auth: {
726
+ ...params.cfg.auth,
727
+ profiles: nextProfiles,
728
+ ...nextOrder ? { order: nextOrder } : {}
729
+ }
730
+ },
731
+ changes: [`Auth: migrate ${legacyProfileId} → ${toProfileId} (OAuth profile id)`],
732
+ migrated: true,
733
+ fromProfileId: legacyProfileId,
734
+ toProfileId
735
+ };
736
+ }
737
+
738
+ //#endregion
739
+ //#region src/agents/auth-profiles/doctor.ts
740
+ function formatAuthDoctorHint(params) {
741
+ const providerKey = normalizeProviderId(params.provider);
742
+ if (providerKey !== "anthropic") return "";
743
+ const legacyProfileId = params.profileId ?? "anthropic:default";
744
+ const suggested = suggestOAuthProfileIdForLegacyDefault({
745
+ cfg: params.cfg,
746
+ store: params.store,
747
+ provider: providerKey,
748
+ legacyProfileId
749
+ });
750
+ if (!suggested || suggested === legacyProfileId) return "";
751
+ const storeOauthProfiles = listProfilesForProvider(params.store, providerKey).filter((id) => params.store.profiles[id]?.type === "oauth").join(", ");
752
+ const cfgMode = params.cfg?.auth?.profiles?.[legacyProfileId]?.mode;
753
+ const cfgProvider = params.cfg?.auth?.profiles?.[legacyProfileId]?.provider;
754
+ return [
755
+ "Doctor hint (for GitHub issue):",
756
+ `- provider: ${providerKey}`,
757
+ `- config: ${legacyProfileId}${cfgProvider || cfgMode ? ` (provider=${cfgProvider ?? "?"}, mode=${cfgMode ?? "?"})` : ""}`,
758
+ `- auth store oauth profiles: ${storeOauthProfiles || "(none)"}`,
759
+ `- suggested profile: ${suggested}`,
760
+ `Fix: run "${formatCliCommand("anima doctor --yes")}"`
761
+ ].join("\n");
762
+ }
763
+
764
+ //#endregion
765
+ //#region src/providers/qwen-portal-oauth.ts
766
+ async function refreshQwenPortalCredentials(_opts) {
767
+ return null;
768
+ }
769
+
770
+ //#endregion
771
+ //#region src/agents/chutes-oauth.ts
772
+ const CHUTES_OAUTH_ISSUER = "https://api.chutes.ai";
773
+ const CHUTES_AUTHORIZE_ENDPOINT = `${CHUTES_OAUTH_ISSUER}/idp/authorize`;
774
+ const CHUTES_TOKEN_ENDPOINT = `${CHUTES_OAUTH_ISSUER}/idp/token`;
775
+ const CHUTES_USERINFO_ENDPOINT = `${CHUTES_OAUTH_ISSUER}/idp/userinfo`;
776
+ const DEFAULT_EXPIRES_BUFFER_MS = 300 * 1e3;
777
+ function generateChutesPkce() {
778
+ const verifier = randomBytes(32).toString("hex");
779
+ return {
780
+ verifier,
781
+ challenge: createHash("sha256").update(verifier).digest("base64url")
782
+ };
783
+ }
784
+ function parseOAuthCallbackInput(input, expectedState) {
785
+ const trimmed = input.trim();
786
+ if (!trimmed) return { error: "No input provided" };
787
+ let url;
788
+ try {
789
+ url = new URL(trimmed);
790
+ } catch {
791
+ if (!/\s/.test(trimmed) && !trimmed.includes("://") && !trimmed.includes("?") && !trimmed.includes("=")) return { error: "Paste the full redirect URL (must include code + state)." };
792
+ const qs = trimmed.startsWith("?") ? trimmed : `?${trimmed}`;
793
+ try {
794
+ url = new URL(`http://localhost/${qs}`);
795
+ } catch {
796
+ return { error: "Paste the full redirect URL (must include code + state)." };
797
+ }
798
+ }
799
+ const code = url.searchParams.get("code")?.trim();
800
+ const state = url.searchParams.get("state")?.trim();
801
+ if (!code) return { error: "Missing 'code' parameter in URL" };
802
+ if (!state) return { error: "Missing 'state' parameter. Paste the full redirect URL." };
803
+ if (state !== expectedState) return { error: "OAuth state mismatch - possible CSRF attack. Please retry login." };
804
+ return {
805
+ code,
806
+ state
807
+ };
808
+ }
809
+ function coerceExpiresAt(expiresInSeconds, now) {
810
+ const value = now + Math.max(0, Math.floor(expiresInSeconds)) * 1e3 - DEFAULT_EXPIRES_BUFFER_MS;
811
+ return Math.max(value, now + 3e4);
812
+ }
813
+ async function fetchChutesUserInfo(params) {
814
+ const response = await (params.fetchFn ?? fetch)(CHUTES_USERINFO_ENDPOINT, { headers: { Authorization: `Bearer ${params.accessToken}` } });
815
+ if (!response.ok) return null;
816
+ const data = await response.json();
817
+ if (!data || typeof data !== "object") return null;
818
+ return data;
819
+ }
820
+ async function exchangeChutesCodeForTokens(params) {
821
+ const fetchFn = params.fetchFn ?? fetch;
822
+ const now = params.now ?? Date.now();
823
+ const body = new URLSearchParams({
824
+ grant_type: "authorization_code",
825
+ client_id: params.app.clientId,
826
+ code: params.code,
827
+ redirect_uri: params.app.redirectUri,
828
+ code_verifier: params.codeVerifier
829
+ });
830
+ if (params.app.clientSecret) body.set("client_secret", params.app.clientSecret);
831
+ const response = await fetchFn(CHUTES_TOKEN_ENDPOINT, {
832
+ method: "POST",
833
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
834
+ body
835
+ });
836
+ if (!response.ok) {
837
+ const text = await response.text();
838
+ throw new Error(`Chutes token exchange failed: ${text}`);
839
+ }
840
+ const data = await response.json();
841
+ const access = data.access_token?.trim();
842
+ const refresh = data.refresh_token?.trim();
843
+ const expiresIn = data.expires_in ?? 0;
844
+ if (!access) throw new Error("Chutes token exchange returned no access_token");
845
+ if (!refresh) throw new Error("Chutes token exchange returned no refresh_token");
846
+ const info = await fetchChutesUserInfo({
847
+ accessToken: access,
848
+ fetchFn
849
+ });
850
+ return {
851
+ access,
852
+ refresh,
853
+ expires: coerceExpiresAt(expiresIn, now),
854
+ email: info?.username,
855
+ accountId: info?.sub,
856
+ clientId: params.app.clientId
857
+ };
858
+ }
859
+ async function refreshChutesTokens(params) {
860
+ const fetchFn = params.fetchFn ?? fetch;
861
+ const now = params.now ?? Date.now();
862
+ const refreshToken = params.credential.refresh?.trim();
863
+ if (!refreshToken) throw new Error("Chutes OAuth credential is missing refresh token");
864
+ const clientId = params.credential.clientId?.trim() ?? process.env.CHUTES_CLIENT_ID?.trim();
865
+ if (!clientId) throw new Error("Missing CHUTES_CLIENT_ID for Chutes OAuth refresh (set env var or re-auth).");
866
+ const clientSecret = process.env.CHUTES_CLIENT_SECRET?.trim() || void 0;
867
+ const body = new URLSearchParams({
868
+ grant_type: "refresh_token",
869
+ client_id: clientId,
870
+ refresh_token: refreshToken
871
+ });
872
+ if (clientSecret) body.set("client_secret", clientSecret);
873
+ const response = await fetchFn(CHUTES_TOKEN_ENDPOINT, {
874
+ method: "POST",
875
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
876
+ body
877
+ });
878
+ if (!response.ok) {
879
+ const text = await response.text();
880
+ throw new Error(`Chutes token refresh failed: ${text}`);
881
+ }
882
+ const data = await response.json();
883
+ const access = data.access_token?.trim();
884
+ const newRefresh = data.refresh_token?.trim();
885
+ const expiresIn = data.expires_in ?? 0;
886
+ if (!access) throw new Error("Chutes token refresh returned no access_token");
887
+ return {
888
+ ...params.credential,
889
+ access,
890
+ refresh: newRefresh || refreshToken,
891
+ expires: coerceExpiresAt(expiresIn, now),
892
+ clientId
893
+ };
894
+ }
895
+
896
+ //#endregion
897
+ //#region src/agents/auth-profiles/oauth.ts
898
+ const OAUTH_PROVIDER_IDS = new Set(getOAuthProviders().map((provider) => provider.id));
899
+ const isOAuthProvider = (provider) => OAUTH_PROVIDER_IDS.has(provider);
900
+ const resolveOAuthProvider = (provider) => isOAuthProvider(provider) ? provider : null;
901
+ function buildOAuthApiKey(provider, credentials) {
902
+ return provider === "google-gemini-cli" || provider === "google-antigravity" ? JSON.stringify({
903
+ token: credentials.access,
904
+ projectId: credentials.projectId
905
+ }) : credentials.access;
906
+ }
907
+ async function refreshOAuthTokenWithLock(params) {
908
+ const authPath = resolveAuthStorePath(params.agentDir);
909
+ ensureAuthStoreFile(authPath);
910
+ return await withFileLock(authPath, AUTH_STORE_LOCK_OPTIONS, async () => {
911
+ const store = ensureAuthProfileStore(params.agentDir);
912
+ const cred = store.profiles[params.profileId];
913
+ if (!cred || cred.type !== "oauth") return null;
914
+ if (Date.now() < cred.expires) return {
915
+ apiKey: buildOAuthApiKey(cred.provider, cred),
916
+ newCredentials: cred
917
+ };
918
+ const oauthCreds = { [cred.provider]: cred };
919
+ const result = String(cred.provider) === "chutes" ? await (async () => {
920
+ const newCredentials = await refreshChutesTokens({ credential: cred });
921
+ return {
922
+ apiKey: newCredentials.access,
923
+ newCredentials
924
+ };
925
+ })() : String(cred.provider) === "qwen-portal" ? await (async () => {
926
+ const newCredentials = await refreshQwenPortalCredentials(cred);
927
+ return {
928
+ apiKey: newCredentials.access,
929
+ newCredentials
930
+ };
931
+ })() : await (async () => {
932
+ const oauthProvider = resolveOAuthProvider(cred.provider);
933
+ if (!oauthProvider) return null;
934
+ return await getOAuthApiKey(oauthProvider, oauthCreds);
935
+ })();
936
+ if (!result) return null;
937
+ store.profiles[params.profileId] = {
938
+ ...cred,
939
+ ...result.newCredentials,
940
+ type: "oauth"
941
+ };
942
+ saveAuthProfileStore(store, params.agentDir);
943
+ return result;
944
+ });
945
+ }
946
+ async function tryResolveOAuthProfile(params) {
947
+ const { cfg, store, profileId } = params;
948
+ const cred = store.profiles[profileId];
949
+ if (!cred || cred.type !== "oauth") return null;
950
+ const profileConfig = cfg?.auth?.profiles?.[profileId];
951
+ if (profileConfig && profileConfig.provider !== cred.provider) return null;
952
+ if (profileConfig && profileConfig.mode !== cred.type) return null;
953
+ if (Date.now() < cred.expires) return {
954
+ apiKey: buildOAuthApiKey(cred.provider, cred),
955
+ provider: cred.provider,
956
+ email: cred.email
957
+ };
958
+ const refreshed = await refreshOAuthTokenWithLock({
959
+ profileId,
960
+ agentDir: params.agentDir
961
+ });
962
+ if (!refreshed) return null;
963
+ return {
964
+ apiKey: refreshed.apiKey,
965
+ provider: cred.provider,
966
+ email: cred.email
967
+ };
968
+ }
969
+ async function resolveApiKeyForProfile(params) {
970
+ const { cfg, store, profileId } = params;
971
+ const cred = store.profiles[profileId];
972
+ if (!cred) return null;
973
+ const profileConfig = cfg?.auth?.profiles?.[profileId];
974
+ if (profileConfig && profileConfig.provider !== cred.provider) return null;
975
+ if (profileConfig && profileConfig.mode !== cred.type) {
976
+ if (!(profileConfig.mode === "oauth" && cred.type === "token")) return null;
977
+ }
978
+ if (cred.type === "api_key") {
979
+ const key = cred.key?.trim();
980
+ if (!key) return null;
981
+ return {
982
+ apiKey: key,
983
+ provider: cred.provider,
984
+ email: cred.email
985
+ };
986
+ }
987
+ if (cred.type === "token") {
988
+ const token = cred.token?.trim();
989
+ if (!token) return null;
990
+ if (typeof cred.expires === "number" && Number.isFinite(cred.expires) && cred.expires > 0 && Date.now() >= cred.expires) return null;
991
+ return {
992
+ apiKey: token,
993
+ provider: cred.provider,
994
+ email: cred.email
995
+ };
996
+ }
997
+ if (Date.now() < cred.expires) return {
998
+ apiKey: buildOAuthApiKey(cred.provider, cred),
999
+ provider: cred.provider,
1000
+ email: cred.email
1001
+ };
1002
+ try {
1003
+ const result = await refreshOAuthTokenWithLock({
1004
+ profileId,
1005
+ agentDir: params.agentDir
1006
+ });
1007
+ if (!result) return null;
1008
+ return {
1009
+ apiKey: result.apiKey,
1010
+ provider: cred.provider,
1011
+ email: cred.email
1012
+ };
1013
+ } catch (error) {
1014
+ const refreshedStore = ensureAuthProfileStore(params.agentDir);
1015
+ const refreshed = refreshedStore.profiles[profileId];
1016
+ if (refreshed?.type === "oauth" && Date.now() < refreshed.expires) return {
1017
+ apiKey: buildOAuthApiKey(refreshed.provider, refreshed),
1018
+ provider: refreshed.provider,
1019
+ email: refreshed.email ?? cred.email
1020
+ };
1021
+ const fallbackProfileId = suggestOAuthProfileIdForLegacyDefault({
1022
+ cfg,
1023
+ store: refreshedStore,
1024
+ provider: cred.provider,
1025
+ legacyProfileId: profileId
1026
+ });
1027
+ if (fallbackProfileId && fallbackProfileId !== profileId) try {
1028
+ const fallbackResolved = await tryResolveOAuthProfile({
1029
+ cfg,
1030
+ store: refreshedStore,
1031
+ profileId: fallbackProfileId,
1032
+ agentDir: params.agentDir
1033
+ });
1034
+ if (fallbackResolved) return fallbackResolved;
1035
+ } catch {}
1036
+ if (params.agentDir) try {
1037
+ const mainCred = ensureAuthProfileStore(void 0).profiles[profileId];
1038
+ if (mainCred?.type === "oauth" && Date.now() < mainCred.expires) {
1039
+ refreshedStore.profiles[profileId] = { ...mainCred };
1040
+ saveAuthProfileStore(refreshedStore, params.agentDir);
1041
+ log$1.info("inherited fresh OAuth credentials from main agent", {
1042
+ profileId,
1043
+ agentDir: params.agentDir,
1044
+ expires: new Date(mainCred.expires).toISOString()
1045
+ });
1046
+ return {
1047
+ apiKey: buildOAuthApiKey(mainCred.provider, mainCred),
1048
+ provider: mainCred.provider,
1049
+ email: mainCred.email
1050
+ };
1051
+ }
1052
+ } catch {}
1053
+ const message = error instanceof Error ? error.message : String(error);
1054
+ const hint = formatAuthDoctorHint({
1055
+ cfg,
1056
+ store: refreshedStore,
1057
+ provider: cred.provider,
1058
+ profileId
1059
+ });
1060
+ throw new Error(`OAuth token refresh failed for ${cred.provider}: ${message}. Please try again or re-authenticate.` + (hint ? `\n\n${hint}` : ""), { cause: error });
1061
+ }
1062
+ }
1063
+
1064
+ //#endregion
1065
+ //#region src/agents/auth-profiles/usage.ts
1066
+ function resolveProfileUnusableUntil$1(stats) {
1067
+ const values = [stats.cooldownUntil, stats.disabledUntil].filter((value) => typeof value === "number").filter((value) => Number.isFinite(value) && value > 0);
1068
+ if (values.length === 0) return null;
1069
+ return Math.max(...values);
1070
+ }
1071
+ /**
1072
+ * Check if a profile is currently in cooldown (due to rate limiting or errors).
1073
+ */
1074
+ function isProfileInCooldown(store, profileId) {
1075
+ const stats = store.usageStats?.[profileId];
1076
+ if (!stats) return false;
1077
+ const unusableUntil = resolveProfileUnusableUntil$1(stats);
1078
+ return unusableUntil ? Date.now() < unusableUntil : false;
1079
+ }
1080
+ function resolveProfileUnusableUntilForDisplay(store, profileId) {
1081
+ const stats = store.usageStats?.[profileId];
1082
+ if (!stats) return null;
1083
+ return resolveProfileUnusableUntil$1(stats);
1084
+ }
1085
+
1086
+ //#endregion
1087
+ //#region src/agents/auth-profiles/order.ts
1088
+ function resolveProfileUnusableUntil(stats) {
1089
+ const values = [stats.cooldownUntil, stats.disabledUntil].filter((value) => typeof value === "number").filter((value) => Number.isFinite(value) && value > 0);
1090
+ if (values.length === 0) return null;
1091
+ return Math.max(...values);
1092
+ }
1093
+ function resolveAuthProfileOrder(params) {
1094
+ const { cfg, store, provider, preferredProfile } = params;
1095
+ const providerKey = normalizeProviderId(provider);
1096
+ const now = Date.now();
1097
+ const storedOrder = (() => {
1098
+ const order = store.order;
1099
+ if (!order) return;
1100
+ for (const [key, value] of Object.entries(order)) if (normalizeProviderId(key) === providerKey) return value;
1101
+ })();
1102
+ const configuredOrder = (() => {
1103
+ const order = cfg?.auth?.order;
1104
+ if (!order) return;
1105
+ for (const [key, value] of Object.entries(order)) if (normalizeProviderId(key) === providerKey) return value;
1106
+ })();
1107
+ const explicitOrder = storedOrder ?? configuredOrder;
1108
+ const explicitProfiles = cfg?.auth?.profiles ? Object.entries(cfg.auth.profiles).filter(([, profile]) => normalizeProviderId(profile.provider) === providerKey).map(([profileId]) => profileId) : [];
1109
+ const baseOrder = explicitOrder ?? (explicitProfiles.length > 0 ? explicitProfiles : listProfilesForProvider(store, providerKey));
1110
+ if (baseOrder.length === 0) return [];
1111
+ const filtered = baseOrder.filter((profileId) => {
1112
+ const cred = store.profiles[profileId];
1113
+ if (!cred) return false;
1114
+ if (normalizeProviderId(cred.provider) !== providerKey) return false;
1115
+ const profileConfig = cfg?.auth?.profiles?.[profileId];
1116
+ if (profileConfig) {
1117
+ if (normalizeProviderId(profileConfig.provider) !== providerKey) return false;
1118
+ if (profileConfig.mode !== cred.type) {
1119
+ if (!(profileConfig.mode === "oauth" && cred.type === "token")) return false;
1120
+ }
1121
+ }
1122
+ if (cred.type === "api_key") return Boolean(cred.key?.trim());
1123
+ if (cred.type === "token") {
1124
+ if (!cred.token?.trim()) return false;
1125
+ if (typeof cred.expires === "number" && Number.isFinite(cred.expires) && cred.expires > 0 && now >= cred.expires) return false;
1126
+ return true;
1127
+ }
1128
+ if (cred.type === "oauth") return Boolean(cred.access?.trim() || cred.refresh?.trim());
1129
+ return false;
1130
+ });
1131
+ const deduped = [];
1132
+ for (const entry of filtered) if (!deduped.includes(entry)) deduped.push(entry);
1133
+ if (explicitOrder && explicitOrder.length > 0) {
1134
+ const available = [];
1135
+ const inCooldown = [];
1136
+ for (const profileId of deduped) {
1137
+ const cooldownUntil = resolveProfileUnusableUntil(store.usageStats?.[profileId] ?? {}) ?? 0;
1138
+ if (typeof cooldownUntil === "number" && Number.isFinite(cooldownUntil) && cooldownUntil > 0 && now < cooldownUntil) inCooldown.push({
1139
+ profileId,
1140
+ cooldownUntil
1141
+ });
1142
+ else available.push(profileId);
1143
+ }
1144
+ const cooldownSorted = inCooldown.toSorted((a, b) => a.cooldownUntil - b.cooldownUntil).map((entry) => entry.profileId);
1145
+ const ordered = [...available, ...cooldownSorted];
1146
+ if (preferredProfile && ordered.includes(preferredProfile)) return [preferredProfile, ...ordered.filter((e) => e !== preferredProfile)];
1147
+ return ordered;
1148
+ }
1149
+ const sorted = orderProfilesByMode(deduped, store);
1150
+ if (preferredProfile && sorted.includes(preferredProfile)) return [preferredProfile, ...sorted.filter((e) => e !== preferredProfile)];
1151
+ return sorted;
1152
+ }
1153
+ function orderProfilesByMode(order, store) {
1154
+ const now = Date.now();
1155
+ const available = [];
1156
+ const inCooldown = [];
1157
+ for (const profileId of order) if (isProfileInCooldown(store, profileId)) inCooldown.push(profileId);
1158
+ else available.push(profileId);
1159
+ const sorted = available.map((profileId) => {
1160
+ const type = store.profiles[profileId]?.type;
1161
+ return {
1162
+ profileId,
1163
+ typeScore: type === "oauth" ? 0 : type === "token" ? 1 : type === "api_key" ? 2 : 3,
1164
+ lastUsed: store.usageStats?.[profileId]?.lastUsed ?? 0
1165
+ };
1166
+ }).toSorted((a, b) => {
1167
+ if (a.typeScore !== b.typeScore) return a.typeScore - b.typeScore;
1168
+ return a.lastUsed - b.lastUsed;
1169
+ }).map((entry) => entry.profileId);
1170
+ const cooldownSorted = inCooldown.map((profileId) => ({
1171
+ profileId,
1172
+ cooldownUntil: resolveProfileUnusableUntil(store.usageStats?.[profileId] ?? {}) ?? now
1173
+ })).toSorted((a, b) => a.cooldownUntil - b.cooldownUntil).map((entry) => entry.profileId);
1174
+ return [...sorted, ...cooldownSorted];
1175
+ }
1176
+
1177
+ //#endregion
1178
+ //#region src/agents/auth-profiles.ts
1179
+ var auth_profiles_exports = /* @__PURE__ */ __exportAll({ ensureAuthProfileStore: () => ensureAuthProfileStore });
1180
+
1181
+ //#endregion
1182
+ //#region src/agents/cloudflare-ai-gateway.ts
1183
+ const CLOUDFLARE_AI_GATEWAY_PROVIDER_ID = "cloudflare-ai-gateway";
1184
+ const CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_ID = "claude-sonnet-4-5";
1185
+ const CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF = `${CLOUDFLARE_AI_GATEWAY_PROVIDER_ID}/${CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_ID}`;
1186
+ const CLOUDFLARE_AI_GATEWAY_DEFAULT_CONTEXT_WINDOW = 2e5;
1187
+ const CLOUDFLARE_AI_GATEWAY_DEFAULT_MAX_TOKENS = 64e3;
1188
+ const CLOUDFLARE_AI_GATEWAY_DEFAULT_COST = {
1189
+ input: 3,
1190
+ output: 15,
1191
+ cacheRead: .3,
1192
+ cacheWrite: 3.75
1193
+ };
1194
+ function buildCloudflareAiGatewayModelDefinition(params) {
1195
+ return {
1196
+ id: params?.id?.trim() || CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_ID,
1197
+ name: params?.name ?? "Claude Sonnet 4.5",
1198
+ reasoning: params?.reasoning ?? true,
1199
+ input: params?.input ?? ["text", "image"],
1200
+ cost: CLOUDFLARE_AI_GATEWAY_DEFAULT_COST,
1201
+ contextWindow: CLOUDFLARE_AI_GATEWAY_DEFAULT_CONTEXT_WINDOW,
1202
+ maxTokens: CLOUDFLARE_AI_GATEWAY_DEFAULT_MAX_TOKENS
1203
+ };
1204
+ }
1205
+ function resolveCloudflareAiGatewayBaseUrl(params) {
1206
+ const accountId = params.accountId.trim();
1207
+ const gatewayId = params.gatewayId.trim();
1208
+ if (!accountId || !gatewayId) return "";
1209
+ return `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/anthropic`;
1210
+ }
1211
+
1212
+ //#endregion
1213
+ //#region src/agents/huggingface-models.ts
1214
+ /** Hugging Face Inference Providers (router) — OpenAI-compatible chat completions. */
1215
+ const HUGGINGFACE_BASE_URL = "https://router.huggingface.co/v1";
1216
+ /** Router policy suffixes: router picks backend by cost or speed; no specific provider selection. */
1217
+ const HUGGINGFACE_POLICY_SUFFIXES = ["cheapest", "fastest"];
1218
+ /**
1219
+ * True when the model ref uses :cheapest or :fastest. When true, provider choice is locked
1220
+ * (router decides); do not show an interactive "prefer specific backend" option.
1221
+ */
1222
+ function isHuggingfacePolicyLocked(modelRef) {
1223
+ const ref = String(modelRef).trim();
1224
+ return HUGGINGFACE_POLICY_SUFFIXES.some((s) => ref.endsWith(`:${s}`) || ref === s);
1225
+ }
1226
+ /** Default cost when not in static catalog (HF pricing varies by provider). */
1227
+ const HUGGINGFACE_DEFAULT_COST = {
1228
+ input: 0,
1229
+ output: 0,
1230
+ cacheRead: 0,
1231
+ cacheWrite: 0
1232
+ };
1233
+ /** Defaults for models discovered from GET /v1/models. */
1234
+ const HUGGINGFACE_DEFAULT_CONTEXT_WINDOW = 131072;
1235
+ const HUGGINGFACE_DEFAULT_MAX_TOKENS = 8192;
1236
+ const HUGGINGFACE_MODEL_CATALOG = [
1237
+ {
1238
+ id: "deepseek-ai/DeepSeek-R1",
1239
+ name: "DeepSeek R1",
1240
+ reasoning: true,
1241
+ input: ["text"],
1242
+ contextWindow: 131072,
1243
+ maxTokens: 8192,
1244
+ cost: {
1245
+ input: 3,
1246
+ output: 7,
1247
+ cacheRead: 3,
1248
+ cacheWrite: 3
1249
+ }
1250
+ },
1251
+ {
1252
+ id: "deepseek-ai/DeepSeek-V3.1",
1253
+ name: "DeepSeek V3.1",
1254
+ reasoning: false,
1255
+ input: ["text"],
1256
+ contextWindow: 131072,
1257
+ maxTokens: 8192,
1258
+ cost: {
1259
+ input: .6,
1260
+ output: 1.25,
1261
+ cacheRead: .6,
1262
+ cacheWrite: .6
1263
+ }
1264
+ },
1265
+ {
1266
+ id: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
1267
+ name: "Llama 3.3 70B Instruct Turbo",
1268
+ reasoning: false,
1269
+ input: ["text"],
1270
+ contextWindow: 131072,
1271
+ maxTokens: 8192,
1272
+ cost: {
1273
+ input: .88,
1274
+ output: .88,
1275
+ cacheRead: .88,
1276
+ cacheWrite: .88
1277
+ }
1278
+ },
1279
+ {
1280
+ id: "openai/gpt-oss-120b",
1281
+ name: "GPT-OSS 120B",
1282
+ reasoning: false,
1283
+ input: ["text"],
1284
+ contextWindow: 131072,
1285
+ maxTokens: 8192,
1286
+ cost: {
1287
+ input: 0,
1288
+ output: 0,
1289
+ cacheRead: 0,
1290
+ cacheWrite: 0
1291
+ }
1292
+ }
1293
+ ];
1294
+ function buildHuggingfaceModelDefinition(model) {
1295
+ return {
1296
+ id: model.id,
1297
+ name: model.name,
1298
+ reasoning: model.reasoning,
1299
+ input: model.input,
1300
+ cost: model.cost,
1301
+ contextWindow: model.contextWindow,
1302
+ maxTokens: model.maxTokens
1303
+ };
1304
+ }
1305
+ /**
1306
+ * Infer reasoning and display name from Hub-style model id (e.g. "deepseek-ai/DeepSeek-R1").
1307
+ */
1308
+ function inferredMetaFromModelId(id) {
1309
+ const base = id.split("/").pop() ?? id;
1310
+ const reasoning = /r1|reasoning|thinking|reason/i.test(id) || /-\d+[tb]?-thinking/i.test(base);
1311
+ return {
1312
+ name: base.replace(/-/g, " ").replace(/\b(\w)/g, (c) => c.toUpperCase()),
1313
+ reasoning
1314
+ };
1315
+ }
1316
+ /** Prefer API-supplied display name, then owned_by/id, then inferred from id. */
1317
+ function displayNameFromApiEntry(entry, inferredName) {
1318
+ const fromApi = typeof entry.name === "string" && entry.name.trim() || typeof entry.title === "string" && entry.title.trim() || typeof entry.display_name === "string" && entry.display_name.trim();
1319
+ if (fromApi) return fromApi;
1320
+ if (typeof entry.owned_by === "string" && entry.owned_by.trim()) {
1321
+ const base = entry.id.split("/").pop() ?? entry.id;
1322
+ return `${entry.owned_by.trim()}/${base}`;
1323
+ }
1324
+ return inferredName;
1325
+ }
1326
+ /**
1327
+ * Discover chat-completion models from Hugging Face Inference Providers (GET /v1/models).
1328
+ * Requires a valid HF token. Falls back to static catalog on failure or in test env.
1329
+ */
1330
+ async function discoverHuggingfaceModels(apiKey) {
1331
+ if (process.env.VITEST === "true" || false) return HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
1332
+ const trimmedKey = apiKey?.trim();
1333
+ if (!trimmedKey) return HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
1334
+ try {
1335
+ const response = await fetch(`${HUGGINGFACE_BASE_URL}/models`, {
1336
+ signal: AbortSignal.timeout(1e4),
1337
+ headers: {
1338
+ Authorization: `Bearer ${trimmedKey}`,
1339
+ "Content-Type": "application/json"
1340
+ }
1341
+ });
1342
+ if (!response.ok) {
1343
+ console.warn(`[huggingface-models] GET /v1/models failed: HTTP ${response.status}, using static catalog`);
1344
+ return HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
1345
+ }
1346
+ const data = (await response.json())?.data;
1347
+ if (!Array.isArray(data) || data.length === 0) {
1348
+ console.warn("[huggingface-models] No models in response, using static catalog");
1349
+ return HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
1350
+ }
1351
+ const catalogById = new Map(HUGGINGFACE_MODEL_CATALOG.map((m) => [m.id, m]));
1352
+ const seen = /* @__PURE__ */ new Set();
1353
+ const models = [];
1354
+ for (const entry of data) {
1355
+ const id = typeof entry?.id === "string" ? entry.id.trim() : "";
1356
+ if (!id || seen.has(id)) continue;
1357
+ seen.add(id);
1358
+ const catalogEntry = catalogById.get(id);
1359
+ if (catalogEntry) models.push(buildHuggingfaceModelDefinition(catalogEntry));
1360
+ else {
1361
+ const inferred = inferredMetaFromModelId(id);
1362
+ const name = displayNameFromApiEntry(entry, inferred.name);
1363
+ const modalities = entry.architecture?.input_modalities;
1364
+ const input = Array.isArray(modalities) && modalities.includes("image") ? ["text", "image"] : ["text"];
1365
+ const contextLength = (Array.isArray(entry.providers) ? entry.providers : []).find((p) => typeof p?.context_length === "number" && p.context_length > 0)?.context_length ?? HUGGINGFACE_DEFAULT_CONTEXT_WINDOW;
1366
+ models.push({
1367
+ id,
1368
+ name,
1369
+ reasoning: inferred.reasoning,
1370
+ input,
1371
+ cost: HUGGINGFACE_DEFAULT_COST,
1372
+ contextWindow: contextLength,
1373
+ maxTokens: HUGGINGFACE_DEFAULT_MAX_TOKENS
1374
+ });
1375
+ }
1376
+ }
1377
+ return models.length > 0 ? models : HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
1378
+ } catch (error) {
1379
+ console.warn(`[huggingface-models] Discovery failed: ${String(error)}, using static catalog`);
1380
+ return HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
1381
+ }
1382
+ }
1383
+
1384
+ //#endregion
1385
+ //#region src/infra/shell-env.ts
1386
+ const DEFAULT_TIMEOUT_MS = 15e3;
1387
+ const DEFAULT_MAX_BUFFER_BYTES = 2 * 1024 * 1024;
1388
+ let lastAppliedKeys = [];
1389
+ let cachedShellPath;
1390
+ function resolveShell(env) {
1391
+ const shell = env.SHELL?.trim();
1392
+ return shell && shell.length > 0 ? shell : "/bin/sh";
1393
+ }
1394
+ function parseShellEnv(stdout) {
1395
+ const shellEnv = /* @__PURE__ */ new Map();
1396
+ const parts = stdout.toString("utf8").split("\0");
1397
+ for (const part of parts) {
1398
+ if (!part) continue;
1399
+ const eq = part.indexOf("=");
1400
+ if (eq <= 0) continue;
1401
+ const key = part.slice(0, eq);
1402
+ const value = part.slice(eq + 1);
1403
+ if (!key) continue;
1404
+ shellEnv.set(key, value);
1405
+ }
1406
+ return shellEnv;
1407
+ }
1408
+ function loadShellEnvFallback(opts) {
1409
+ const logger = opts.logger ?? console;
1410
+ const exec = opts.exec ?? execFileSync;
1411
+ if (!opts.enabled) {
1412
+ lastAppliedKeys = [];
1413
+ return {
1414
+ ok: true,
1415
+ applied: [],
1416
+ skippedReason: "disabled"
1417
+ };
1418
+ }
1419
+ if (opts.expectedKeys.some((key) => Boolean(opts.env[key]?.trim()))) {
1420
+ lastAppliedKeys = [];
1421
+ return {
1422
+ ok: true,
1423
+ applied: [],
1424
+ skippedReason: "already-has-keys"
1425
+ };
1426
+ }
1427
+ const timeoutMs = typeof opts.timeoutMs === "number" && Number.isFinite(opts.timeoutMs) ? Math.max(0, opts.timeoutMs) : DEFAULT_TIMEOUT_MS;
1428
+ const shell = resolveShell(opts.env);
1429
+ let stdout;
1430
+ try {
1431
+ stdout = exec(shell, [
1432
+ "-l",
1433
+ "-c",
1434
+ "env -0"
1435
+ ], {
1436
+ encoding: "buffer",
1437
+ timeout: timeoutMs,
1438
+ maxBuffer: DEFAULT_MAX_BUFFER_BYTES,
1439
+ env: opts.env,
1440
+ stdio: [
1441
+ "ignore",
1442
+ "pipe",
1443
+ "pipe"
1444
+ ]
1445
+ });
1446
+ } catch (err) {
1447
+ const msg = err instanceof Error ? err.message : String(err);
1448
+ logger.warn(`[anima] shell env fallback failed: ${msg}`);
1449
+ lastAppliedKeys = [];
1450
+ return {
1451
+ ok: false,
1452
+ error: msg,
1453
+ applied: []
1454
+ };
1455
+ }
1456
+ const shellEnv = parseShellEnv(stdout);
1457
+ const applied = [];
1458
+ for (const key of opts.expectedKeys) {
1459
+ if (opts.env[key]?.trim()) continue;
1460
+ const value = shellEnv.get(key);
1461
+ if (!value?.trim()) continue;
1462
+ opts.env[key] = value;
1463
+ applied.push(key);
1464
+ }
1465
+ lastAppliedKeys = applied;
1466
+ return {
1467
+ ok: true,
1468
+ applied
1469
+ };
1470
+ }
1471
+ function shouldEnableShellEnvFallback(env) {
1472
+ return isTruthyEnvValue(env.ANIMA_LOAD_SHELL_ENV);
1473
+ }
1474
+ function shouldDeferShellEnvFallback(env) {
1475
+ return isTruthyEnvValue(env.ANIMA_DEFER_SHELL_ENV_FALLBACK);
1476
+ }
1477
+ function resolveShellEnvFallbackTimeoutMs(env) {
1478
+ const raw = env.ANIMA_SHELL_ENV_TIMEOUT_MS?.trim();
1479
+ if (!raw) return DEFAULT_TIMEOUT_MS;
1480
+ const parsed = Number.parseInt(raw, 10);
1481
+ if (!Number.isFinite(parsed)) return DEFAULT_TIMEOUT_MS;
1482
+ return Math.max(0, parsed);
1483
+ }
1484
+ function getShellPathFromLoginShell(opts) {
1485
+ if (cachedShellPath !== void 0) return cachedShellPath;
1486
+ if (process.platform === "win32") {
1487
+ cachedShellPath = null;
1488
+ return cachedShellPath;
1489
+ }
1490
+ const exec = opts.exec ?? execFileSync;
1491
+ const timeoutMs = typeof opts.timeoutMs === "number" && Number.isFinite(opts.timeoutMs) ? Math.max(0, opts.timeoutMs) : DEFAULT_TIMEOUT_MS;
1492
+ const shell = resolveShell(opts.env);
1493
+ let stdout;
1494
+ try {
1495
+ stdout = exec(shell, [
1496
+ "-l",
1497
+ "-c",
1498
+ "env -0"
1499
+ ], {
1500
+ encoding: "buffer",
1501
+ timeout: timeoutMs,
1502
+ maxBuffer: DEFAULT_MAX_BUFFER_BYTES,
1503
+ env: opts.env,
1504
+ stdio: [
1505
+ "ignore",
1506
+ "pipe",
1507
+ "pipe"
1508
+ ]
1509
+ });
1510
+ } catch {
1511
+ cachedShellPath = null;
1512
+ return cachedShellPath;
1513
+ }
1514
+ const shellPath = parseShellEnv(stdout).get("PATH")?.trim();
1515
+ cachedShellPath = shellPath && shellPath.length > 0 ? shellPath : null;
1516
+ return cachedShellPath;
1517
+ }
1518
+ function getShellEnvAppliedKeys() {
1519
+ return [...lastAppliedKeys];
1520
+ }
1521
+
1522
+ //#endregion
1523
+ //#region src/agents/model-auth.ts
1524
+ const AWS_BEARER_ENV = "AWS_BEARER_TOKEN_BEDROCK";
1525
+ const AWS_ACCESS_KEY_ENV = "AWS_ACCESS_KEY_ID";
1526
+ const AWS_SECRET_KEY_ENV = "AWS_SECRET_ACCESS_KEY";
1527
+ const AWS_PROFILE_ENV = "AWS_PROFILE";
1528
+ function resolveProviderConfig(cfg, provider) {
1529
+ const providers = cfg?.models?.providers ?? {};
1530
+ const direct = providers[provider];
1531
+ if (direct) return direct;
1532
+ const normalized = normalizeProviderId(provider);
1533
+ if (normalized === provider) return Object.entries(providers).find(([key]) => normalizeProviderId(key) === normalized)?.[1];
1534
+ return providers[normalized] ?? Object.entries(providers).find(([key]) => normalizeProviderId(key) === normalized)?.[1];
1535
+ }
1536
+ function getCustomProviderApiKey(cfg, provider) {
1537
+ return normalizeOptionalSecretInput(resolveProviderConfig(cfg, provider)?.apiKey);
1538
+ }
1539
+ function resolveProviderAuthOverride(cfg, provider) {
1540
+ const auth = resolveProviderConfig(cfg, provider)?.auth;
1541
+ if (auth === "api-key" || auth === "aws-sdk" || auth === "oauth" || auth === "token") return auth;
1542
+ }
1543
+ function resolveEnvSourceLabel(params) {
1544
+ return `${params.envVars.some((envVar) => params.applied.has(envVar)) ? "shell env: " : "env: "}${params.label}`;
1545
+ }
1546
+ function resolveAwsSdkEnvVarName(env = process.env) {
1547
+ if (env[AWS_BEARER_ENV]?.trim()) return AWS_BEARER_ENV;
1548
+ if (env[AWS_ACCESS_KEY_ENV]?.trim() && env[AWS_SECRET_KEY_ENV]?.trim()) return AWS_ACCESS_KEY_ENV;
1549
+ if (env[AWS_PROFILE_ENV]?.trim()) return AWS_PROFILE_ENV;
1550
+ }
1551
+ function resolveAwsSdkAuthInfo() {
1552
+ const applied = new Set(getShellEnvAppliedKeys());
1553
+ if (process.env[AWS_BEARER_ENV]?.trim()) return {
1554
+ mode: "aws-sdk",
1555
+ source: resolveEnvSourceLabel({
1556
+ applied,
1557
+ envVars: [AWS_BEARER_ENV],
1558
+ label: AWS_BEARER_ENV
1559
+ })
1560
+ };
1561
+ if (process.env[AWS_ACCESS_KEY_ENV]?.trim() && process.env[AWS_SECRET_KEY_ENV]?.trim()) return {
1562
+ mode: "aws-sdk",
1563
+ source: resolveEnvSourceLabel({
1564
+ applied,
1565
+ envVars: [AWS_ACCESS_KEY_ENV, AWS_SECRET_KEY_ENV],
1566
+ label: `${AWS_ACCESS_KEY_ENV} + ${AWS_SECRET_KEY_ENV}`
1567
+ })
1568
+ };
1569
+ if (process.env[AWS_PROFILE_ENV]?.trim()) return {
1570
+ mode: "aws-sdk",
1571
+ source: resolveEnvSourceLabel({
1572
+ applied,
1573
+ envVars: [AWS_PROFILE_ENV],
1574
+ label: AWS_PROFILE_ENV
1575
+ })
1576
+ };
1577
+ return {
1578
+ mode: "aws-sdk",
1579
+ source: "aws-sdk default chain"
1580
+ };
1581
+ }
1582
+ async function resolveApiKeyForProvider(params) {
1583
+ const { provider, cfg, profileId, preferredProfile } = params;
1584
+ const store = params.store ?? ensureAuthProfileStore(params.agentDir);
1585
+ if (profileId) {
1586
+ const resolved = await resolveApiKeyForProfile({
1587
+ cfg,
1588
+ store,
1589
+ profileId,
1590
+ agentDir: params.agentDir
1591
+ });
1592
+ if (!resolved) throw new Error(`No credentials found for profile "${profileId}".`);
1593
+ const mode = store.profiles[profileId]?.type;
1594
+ return {
1595
+ apiKey: resolved.apiKey,
1596
+ profileId,
1597
+ source: `profile:${profileId}`,
1598
+ mode: mode === "oauth" ? "oauth" : mode === "token" ? "token" : "api-key"
1599
+ };
1600
+ }
1601
+ const authOverride = resolveProviderAuthOverride(cfg, provider);
1602
+ if (authOverride === "aws-sdk") return resolveAwsSdkAuthInfo();
1603
+ const order = resolveAuthProfileOrder({
1604
+ cfg,
1605
+ store,
1606
+ provider,
1607
+ preferredProfile
1608
+ });
1609
+ for (const candidate of order) try {
1610
+ const resolved = await resolveApiKeyForProfile({
1611
+ cfg,
1612
+ store,
1613
+ profileId: candidate,
1614
+ agentDir: params.agentDir
1615
+ });
1616
+ if (resolved) {
1617
+ const mode = store.profiles[candidate]?.type;
1618
+ return {
1619
+ apiKey: resolved.apiKey,
1620
+ profileId: candidate,
1621
+ source: `profile:${candidate}`,
1622
+ mode: mode === "oauth" ? "oauth" : mode === "token" ? "token" : "api-key"
1623
+ };
1624
+ }
1625
+ } catch {}
1626
+ const envResolved = resolveEnvApiKey(provider);
1627
+ if (envResolved) return {
1628
+ apiKey: envResolved.apiKey,
1629
+ source: envResolved.source,
1630
+ mode: envResolved.source.includes("OAUTH_TOKEN") ? "oauth" : "api-key"
1631
+ };
1632
+ const customKey = getCustomProviderApiKey(cfg, provider);
1633
+ if (customKey) return {
1634
+ apiKey: customKey,
1635
+ source: "models.json",
1636
+ mode: "api-key"
1637
+ };
1638
+ const normalized = normalizeProviderId(provider);
1639
+ if (authOverride === void 0 && normalized === "amazon-bedrock") return resolveAwsSdkAuthInfo();
1640
+ if (provider === "openai") {
1641
+ if (listProfilesForProvider(store, "openai-codex").length > 0) throw new Error("No API key found for provider \"openai\". You are authenticated with OpenAI Codex OAuth. Use openai-codex/gpt-5.3-codex (OAuth) or set OPENAI_API_KEY to use openai/gpt-5.1-codex.");
1642
+ }
1643
+ const authStorePath = resolveAuthStorePathForDisplay(params.agentDir);
1644
+ const resolvedAgentDir = path.dirname(authStorePath);
1645
+ throw new Error([
1646
+ `No API key found for provider "${provider}".`,
1647
+ `Auth store: ${authStorePath} (agentDir: ${resolvedAgentDir}).`,
1648
+ `Configure auth for this agent (${formatCliCommand("anima agents add <id>")}) or copy auth-profiles.json from the main agentDir.`
1649
+ ].join(" "));
1650
+ }
1651
+ function resolveEnvApiKey(provider) {
1652
+ const normalized = normalizeProviderId(provider);
1653
+ const applied = new Set(getShellEnvAppliedKeys());
1654
+ const pick = (envVar) => {
1655
+ const value = normalizeOptionalSecretInput(process.env[envVar]);
1656
+ if (!value) return null;
1657
+ return {
1658
+ apiKey: value,
1659
+ source: applied.has(envVar) ? `shell env: ${envVar}` : `env: ${envVar}`
1660
+ };
1661
+ };
1662
+ if (normalized === "github-copilot") return pick("COPILOT_GITHUB_TOKEN") ?? pick("GH_TOKEN") ?? pick("GITHUB_TOKEN");
1663
+ if (normalized === "anthropic") return pick("ANTHROPIC_OAUTH_TOKEN") ?? pick("ANTHROPIC_API_KEY");
1664
+ if (normalized === "chutes") return pick("CHUTES_OAUTH_TOKEN") ?? pick("CHUTES_API_KEY");
1665
+ if (normalized === "zai") return pick("ZAI_API_KEY") ?? pick("Z_AI_API_KEY");
1666
+ if (normalized === "google-vertex") {
1667
+ const envKey = getEnvApiKey(normalized);
1668
+ if (!envKey) return null;
1669
+ return {
1670
+ apiKey: envKey,
1671
+ source: "gcloud adc"
1672
+ };
1673
+ }
1674
+ if (normalized === "opencode") return pick("OPENCODE_API_KEY") ?? pick("OPENCODE_ZEN_API_KEY");
1675
+ if (normalized === "qwen-portal") return pick("QWEN_OAUTH_TOKEN") ?? pick("QWEN_PORTAL_API_KEY");
1676
+ if (normalized === "minimax-portal") return pick("MINIMAX_OAUTH_TOKEN") ?? pick("MINIMAX_API_KEY");
1677
+ if (normalized === "kimi-coding") return pick("KIMI_API_KEY") ?? pick("KIMICODE_API_KEY");
1678
+ if (normalized === "huggingface") return pick("HUGGINGFACE_HUB_TOKEN") ?? pick("HF_TOKEN");
1679
+ const envVar = {
1680
+ openai: "OPENAI_API_KEY",
1681
+ google: "GEMINI_API_KEY",
1682
+ voyage: "VOYAGE_API_KEY",
1683
+ groq: "GROQ_API_KEY",
1684
+ deepgram: "DEEPGRAM_API_KEY",
1685
+ cerebras: "CEREBRAS_API_KEY",
1686
+ xai: "XAI_API_KEY",
1687
+ openrouter: "OPENROUTER_API_KEY",
1688
+ litellm: "LITELLM_API_KEY",
1689
+ "vercel-ai-gateway": "AI_GATEWAY_API_KEY",
1690
+ "cloudflare-ai-gateway": "CLOUDFLARE_AI_GATEWAY_API_KEY",
1691
+ moonshot: "MOONSHOT_API_KEY",
1692
+ minimax: "MINIMAX_API_KEY",
1693
+ nvidia: "NVIDIA_API_KEY",
1694
+ xiaomi: "XIAOMI_API_KEY",
1695
+ synthetic: "SYNTHETIC_API_KEY",
1696
+ venice: "VENICE_API_KEY",
1697
+ mistral: "MISTRAL_API_KEY",
1698
+ opencode: "OPENCODE_API_KEY",
1699
+ together: "TOGETHER_API_KEY",
1700
+ qianfan: "QIANFAN_API_KEY",
1701
+ ollama: "OLLAMA_API_KEY",
1702
+ vllm: "VLLM_API_KEY"
1703
+ }[normalized];
1704
+ if (!envVar) return null;
1705
+ return pick(envVar);
1706
+ }
1707
+ function resolveModelAuthMode(provider, cfg, store) {
1708
+ const resolved = provider?.trim();
1709
+ if (!resolved) return;
1710
+ const authOverride = resolveProviderAuthOverride(cfg, resolved);
1711
+ if (authOverride === "aws-sdk") return "aws-sdk";
1712
+ const authStore = store ?? ensureAuthProfileStore();
1713
+ const profiles = listProfilesForProvider(authStore, resolved);
1714
+ if (profiles.length > 0) {
1715
+ const modes = new Set(profiles.map((id) => authStore.profiles[id]?.type).filter((mode) => Boolean(mode)));
1716
+ if ([
1717
+ "oauth",
1718
+ "token",
1719
+ "api_key"
1720
+ ].filter((k) => modes.has(k)).length >= 2) return "mixed";
1721
+ if (modes.has("oauth")) return "oauth";
1722
+ if (modes.has("token")) return "token";
1723
+ if (modes.has("api_key")) return "api-key";
1724
+ }
1725
+ if (authOverride === void 0 && normalizeProviderId(resolved) === "amazon-bedrock") return "aws-sdk";
1726
+ const envKey = resolveEnvApiKey(resolved);
1727
+ if (envKey?.apiKey) return envKey.source.includes("OAUTH_TOKEN") ? "oauth" : "api-key";
1728
+ if (getCustomProviderApiKey(cfg, resolved)) return "api-key";
1729
+ return "unknown";
1730
+ }
1731
+ async function getApiKeyForModel(params) {
1732
+ return resolveApiKeyForProvider({
1733
+ provider: params.model.provider,
1734
+ cfg: params.cfg,
1735
+ profileId: params.profileId,
1736
+ preferredProfile: params.preferredProfile,
1737
+ store: params.store,
1738
+ agentDir: params.agentDir
1739
+ });
1740
+ }
1741
+ function requireApiKey(auth, provider) {
1742
+ const key = normalizeSecretInput(auth.apiKey);
1743
+ if (key) return key;
1744
+ throw new Error(`No API key resolved for provider "${provider}" (auth mode: ${auth.mode}).`);
1745
+ }
1746
+
1747
+ //#endregion
1748
+ //#region src/agents/synthetic-models.ts
1749
+ const SYNTHETIC_BASE_URL = "https://api.synthetic.new/anthropic";
1750
+ const SYNTHETIC_DEFAULT_MODEL_ID = "hf:MiniMaxAI/MiniMax-M2.1";
1751
+ const SYNTHETIC_DEFAULT_MODEL_REF = `synthetic/${SYNTHETIC_DEFAULT_MODEL_ID}`;
1752
+ const SYNTHETIC_DEFAULT_COST = {
1753
+ input: 0,
1754
+ output: 0,
1755
+ cacheRead: 0,
1756
+ cacheWrite: 0
1757
+ };
1758
+ const SYNTHETIC_MODEL_CATALOG = [
1759
+ {
1760
+ id: SYNTHETIC_DEFAULT_MODEL_ID,
1761
+ name: "MiniMax M2.1",
1762
+ reasoning: false,
1763
+ input: ["text"],
1764
+ contextWindow: 192e3,
1765
+ maxTokens: 65536
1766
+ },
1767
+ {
1768
+ id: "hf:moonshotai/Kimi-K2-Thinking",
1769
+ name: "Kimi K2 Thinking",
1770
+ reasoning: true,
1771
+ input: ["text"],
1772
+ contextWindow: 256e3,
1773
+ maxTokens: 8192
1774
+ },
1775
+ {
1776
+ id: "hf:zai-org/GLM-4.7",
1777
+ name: "GLM-4.7",
1778
+ reasoning: false,
1779
+ input: ["text"],
1780
+ contextWindow: 198e3,
1781
+ maxTokens: 128e3
1782
+ },
1783
+ {
1784
+ id: "hf:deepseek-ai/DeepSeek-R1-0528",
1785
+ name: "DeepSeek R1 0528",
1786
+ reasoning: false,
1787
+ input: ["text"],
1788
+ contextWindow: 128e3,
1789
+ maxTokens: 8192
1790
+ },
1791
+ {
1792
+ id: "hf:deepseek-ai/DeepSeek-V3-0324",
1793
+ name: "DeepSeek V3 0324",
1794
+ reasoning: false,
1795
+ input: ["text"],
1796
+ contextWindow: 128e3,
1797
+ maxTokens: 8192
1798
+ },
1799
+ {
1800
+ id: "hf:deepseek-ai/DeepSeek-V3.1",
1801
+ name: "DeepSeek V3.1",
1802
+ reasoning: false,
1803
+ input: ["text"],
1804
+ contextWindow: 128e3,
1805
+ maxTokens: 8192
1806
+ },
1807
+ {
1808
+ id: "hf:deepseek-ai/DeepSeek-V3.1-Terminus",
1809
+ name: "DeepSeek V3.1 Terminus",
1810
+ reasoning: false,
1811
+ input: ["text"],
1812
+ contextWindow: 128e3,
1813
+ maxTokens: 8192
1814
+ },
1815
+ {
1816
+ id: "hf:deepseek-ai/DeepSeek-V3.2",
1817
+ name: "DeepSeek V3.2",
1818
+ reasoning: false,
1819
+ input: ["text"],
1820
+ contextWindow: 159e3,
1821
+ maxTokens: 8192
1822
+ },
1823
+ {
1824
+ id: "hf:meta-llama/Llama-3.3-70B-Instruct",
1825
+ name: "Llama 3.3 70B Instruct",
1826
+ reasoning: false,
1827
+ input: ["text"],
1828
+ contextWindow: 128e3,
1829
+ maxTokens: 8192
1830
+ },
1831
+ {
1832
+ id: "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
1833
+ name: "Llama 4 Maverick 17B 128E Instruct FP8",
1834
+ reasoning: false,
1835
+ input: ["text"],
1836
+ contextWindow: 524e3,
1837
+ maxTokens: 8192
1838
+ },
1839
+ {
1840
+ id: "hf:moonshotai/Kimi-K2-Instruct-0905",
1841
+ name: "Kimi K2 Instruct 0905",
1842
+ reasoning: false,
1843
+ input: ["text"],
1844
+ contextWindow: 256e3,
1845
+ maxTokens: 8192
1846
+ },
1847
+ {
1848
+ id: "hf:moonshotai/Kimi-K2.5",
1849
+ name: "Kimi K2.5",
1850
+ reasoning: true,
1851
+ input: ["text"],
1852
+ contextWindow: 256e3,
1853
+ maxTokens: 8192
1854
+ },
1855
+ {
1856
+ id: "hf:openai/gpt-oss-120b",
1857
+ name: "GPT OSS 120B",
1858
+ reasoning: false,
1859
+ input: ["text"],
1860
+ contextWindow: 128e3,
1861
+ maxTokens: 8192
1862
+ },
1863
+ {
1864
+ id: "hf:Qwen/Qwen3-235B-A22B-Instruct-2507",
1865
+ name: "Qwen3 235B A22B Instruct 2507",
1866
+ reasoning: false,
1867
+ input: ["text"],
1868
+ contextWindow: 256e3,
1869
+ maxTokens: 8192
1870
+ },
1871
+ {
1872
+ id: "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct",
1873
+ name: "Qwen3 Coder 480B A35B Instruct",
1874
+ reasoning: false,
1875
+ input: ["text"],
1876
+ contextWindow: 256e3,
1877
+ maxTokens: 8192
1878
+ },
1879
+ {
1880
+ id: "hf:Qwen/Qwen3-VL-235B-A22B-Instruct",
1881
+ name: "Qwen3 VL 235B A22B Instruct",
1882
+ reasoning: false,
1883
+ input: ["text", "image"],
1884
+ contextWindow: 25e4,
1885
+ maxTokens: 8192
1886
+ },
1887
+ {
1888
+ id: "hf:zai-org/GLM-4.5",
1889
+ name: "GLM-4.5",
1890
+ reasoning: false,
1891
+ input: ["text"],
1892
+ contextWindow: 128e3,
1893
+ maxTokens: 128e3
1894
+ },
1895
+ {
1896
+ id: "hf:zai-org/GLM-4.6",
1897
+ name: "GLM-4.6",
1898
+ reasoning: false,
1899
+ input: ["text"],
1900
+ contextWindow: 198e3,
1901
+ maxTokens: 128e3
1902
+ },
1903
+ {
1904
+ id: "hf:zai-org/GLM-5",
1905
+ name: "GLM-5",
1906
+ reasoning: true,
1907
+ input: ["text", "image"],
1908
+ contextWindow: 256e3,
1909
+ maxTokens: 128e3
1910
+ },
1911
+ {
1912
+ id: "hf:deepseek-ai/DeepSeek-V3",
1913
+ name: "DeepSeek V3",
1914
+ reasoning: false,
1915
+ input: ["text"],
1916
+ contextWindow: 128e3,
1917
+ maxTokens: 8192
1918
+ },
1919
+ {
1920
+ id: "hf:Qwen/Qwen3-235B-A22B-Thinking-2507",
1921
+ name: "Qwen3 235B A22B Thinking 2507",
1922
+ reasoning: true,
1923
+ input: ["text"],
1924
+ contextWindow: 256e3,
1925
+ maxTokens: 8192
1926
+ }
1927
+ ];
1928
+ function buildSyntheticModelDefinition(entry) {
1929
+ return {
1930
+ id: entry.id,
1931
+ name: entry.name,
1932
+ reasoning: entry.reasoning,
1933
+ input: [...entry.input],
1934
+ cost: SYNTHETIC_DEFAULT_COST,
1935
+ contextWindow: entry.contextWindow,
1936
+ maxTokens: entry.maxTokens
1937
+ };
1938
+ }
1939
+
1940
+ //#endregion
1941
+ //#region src/agents/together-models.ts
1942
+ const TOGETHER_BASE_URL = "https://api.together.xyz/v1";
1943
+ const TOGETHER_MODEL_CATALOG = [
1944
+ {
1945
+ id: "zai-org/GLM-4.7",
1946
+ name: "GLM 4.7 Fp8",
1947
+ reasoning: false,
1948
+ input: ["text"],
1949
+ contextWindow: 202752,
1950
+ maxTokens: 8192,
1951
+ cost: {
1952
+ input: .45,
1953
+ output: 2,
1954
+ cacheRead: .45,
1955
+ cacheWrite: 2
1956
+ }
1957
+ },
1958
+ {
1959
+ id: "moonshotai/Kimi-K2.5",
1960
+ name: "Kimi K2.5",
1961
+ reasoning: true,
1962
+ input: ["text", "image"],
1963
+ cost: {
1964
+ input: .5,
1965
+ output: 2.8,
1966
+ cacheRead: .5,
1967
+ cacheWrite: 2.8
1968
+ },
1969
+ contextWindow: 262144,
1970
+ maxTokens: 32768
1971
+ },
1972
+ {
1973
+ id: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
1974
+ name: "Llama 3.3 70B Instruct Turbo",
1975
+ reasoning: false,
1976
+ input: ["text"],
1977
+ contextWindow: 131072,
1978
+ maxTokens: 8192,
1979
+ cost: {
1980
+ input: .88,
1981
+ output: .88,
1982
+ cacheRead: .88,
1983
+ cacheWrite: .88
1984
+ }
1985
+ },
1986
+ {
1987
+ id: "meta-llama/Llama-4-Scout-17B-16E-Instruct",
1988
+ name: "Llama 4 Scout 17B 16E Instruct",
1989
+ reasoning: false,
1990
+ input: ["text", "image"],
1991
+ contextWindow: 1e7,
1992
+ maxTokens: 32768,
1993
+ cost: {
1994
+ input: .18,
1995
+ output: .59,
1996
+ cacheRead: .18,
1997
+ cacheWrite: .18
1998
+ }
1999
+ },
2000
+ {
2001
+ id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
2002
+ name: "Llama 4 Maverick 17B 128E Instruct FP8",
2003
+ reasoning: false,
2004
+ input: ["text", "image"],
2005
+ contextWindow: 2e7,
2006
+ maxTokens: 32768,
2007
+ cost: {
2008
+ input: .27,
2009
+ output: .85,
2010
+ cacheRead: .27,
2011
+ cacheWrite: .27
2012
+ }
2013
+ },
2014
+ {
2015
+ id: "deepseek-ai/DeepSeek-V3.1",
2016
+ name: "DeepSeek V3.1",
2017
+ reasoning: false,
2018
+ input: ["text"],
2019
+ contextWindow: 131072,
2020
+ maxTokens: 8192,
2021
+ cost: {
2022
+ input: .6,
2023
+ output: 1.25,
2024
+ cacheRead: .6,
2025
+ cacheWrite: .6
2026
+ }
2027
+ },
2028
+ {
2029
+ id: "deepseek-ai/DeepSeek-R1",
2030
+ name: "DeepSeek R1",
2031
+ reasoning: true,
2032
+ input: ["text"],
2033
+ contextWindow: 131072,
2034
+ maxTokens: 8192,
2035
+ cost: {
2036
+ input: 3,
2037
+ output: 7,
2038
+ cacheRead: 3,
2039
+ cacheWrite: 3
2040
+ }
2041
+ },
2042
+ {
2043
+ id: "moonshotai/Kimi-K2-Instruct-0905",
2044
+ name: "Kimi K2-Instruct 0905",
2045
+ reasoning: false,
2046
+ input: ["text"],
2047
+ contextWindow: 262144,
2048
+ maxTokens: 8192,
2049
+ cost: {
2050
+ input: 1,
2051
+ output: 3,
2052
+ cacheRead: 1,
2053
+ cacheWrite: 3
2054
+ }
2055
+ }
2056
+ ];
2057
+ function buildTogetherModelDefinition(model) {
2058
+ return {
2059
+ id: model.id,
2060
+ name: model.name,
2061
+ api: "openai-completions",
2062
+ reasoning: model.reasoning,
2063
+ input: model.input,
2064
+ cost: model.cost,
2065
+ contextWindow: model.contextWindow,
2066
+ maxTokens: model.maxTokens
2067
+ };
2068
+ }
2069
+
2070
+ //#endregion
2071
+ //#region src/agents/venice-models.ts
2072
+ const VENICE_BASE_URL = "https://api.venice.ai/api/v1";
2073
+ const VENICE_DEFAULT_MODEL_ID = "llama-3.3-70b";
2074
+ const VENICE_DEFAULT_MODEL_REF = `venice/${VENICE_DEFAULT_MODEL_ID}`;
2075
+ const VENICE_DEFAULT_COST = {
2076
+ input: 0,
2077
+ output: 0,
2078
+ cacheRead: 0,
2079
+ cacheWrite: 0
2080
+ };
2081
+ /**
2082
+ * Complete catalog of Venice AI models.
2083
+ *
2084
+ * Venice provides two privacy modes:
2085
+ * - "private": Fully private inference, no logging, ephemeral
2086
+ * - "anonymized": Proxied through Venice with metadata stripped (for proprietary models)
2087
+ *
2088
+ * Note: The `privacy` field is included for documentation purposes but is not
2089
+ * propagated to ModelDefinitionConfig as it's not part of the core model schema.
2090
+ * Privacy mode is determined by the model itself, not configurable at runtime.
2091
+ *
2092
+ * This catalog serves as a fallback when the Venice API is unreachable.
2093
+ */
2094
+ const VENICE_MODEL_CATALOG = [
2095
+ {
2096
+ id: "llama-3.3-70b",
2097
+ name: "Llama 3.3 70B",
2098
+ reasoning: false,
2099
+ input: ["text"],
2100
+ contextWindow: 131072,
2101
+ maxTokens: 8192,
2102
+ privacy: "private"
2103
+ },
2104
+ {
2105
+ id: "llama-3.2-3b",
2106
+ name: "Llama 3.2 3B",
2107
+ reasoning: false,
2108
+ input: ["text"],
2109
+ contextWindow: 131072,
2110
+ maxTokens: 8192,
2111
+ privacy: "private"
2112
+ },
2113
+ {
2114
+ id: "hermes-3-llama-3.1-405b",
2115
+ name: "Hermes 3 Llama 3.1 405B",
2116
+ reasoning: false,
2117
+ input: ["text"],
2118
+ contextWindow: 131072,
2119
+ maxTokens: 8192,
2120
+ privacy: "private"
2121
+ },
2122
+ {
2123
+ id: "qwen3-235b-a22b-thinking-2507",
2124
+ name: "Qwen3 235B Thinking",
2125
+ reasoning: true,
2126
+ input: ["text"],
2127
+ contextWindow: 131072,
2128
+ maxTokens: 8192,
2129
+ privacy: "private"
2130
+ },
2131
+ {
2132
+ id: "qwen3-235b-a22b-instruct-2507",
2133
+ name: "Qwen3 235B Instruct",
2134
+ reasoning: false,
2135
+ input: ["text"],
2136
+ contextWindow: 131072,
2137
+ maxTokens: 8192,
2138
+ privacy: "private"
2139
+ },
2140
+ {
2141
+ id: "qwen3-coder-480b-a35b-instruct",
2142
+ name: "Qwen3 Coder 480B",
2143
+ reasoning: false,
2144
+ input: ["text"],
2145
+ contextWindow: 262144,
2146
+ maxTokens: 8192,
2147
+ privacy: "private"
2148
+ },
2149
+ {
2150
+ id: "qwen3-next-80b",
2151
+ name: "Qwen3 Next 80B",
2152
+ reasoning: false,
2153
+ input: ["text"],
2154
+ contextWindow: 262144,
2155
+ maxTokens: 8192,
2156
+ privacy: "private"
2157
+ },
2158
+ {
2159
+ id: "qwen3-vl-235b-a22b",
2160
+ name: "Qwen3 VL 235B (Vision)",
2161
+ reasoning: false,
2162
+ input: ["text", "image"],
2163
+ contextWindow: 262144,
2164
+ maxTokens: 8192,
2165
+ privacy: "private"
2166
+ },
2167
+ {
2168
+ id: "qwen3-4b",
2169
+ name: "Venice Small (Qwen3 4B)",
2170
+ reasoning: true,
2171
+ input: ["text"],
2172
+ contextWindow: 32768,
2173
+ maxTokens: 8192,
2174
+ privacy: "private"
2175
+ },
2176
+ {
2177
+ id: "deepseek-v3.2",
2178
+ name: "DeepSeek V3.2",
2179
+ reasoning: true,
2180
+ input: ["text"],
2181
+ contextWindow: 163840,
2182
+ maxTokens: 8192,
2183
+ privacy: "private"
2184
+ },
2185
+ {
2186
+ id: "venice-uncensored",
2187
+ name: "Venice Uncensored (Dolphin-Mistral)",
2188
+ reasoning: false,
2189
+ input: ["text"],
2190
+ contextWindow: 32768,
2191
+ maxTokens: 8192,
2192
+ privacy: "private"
2193
+ },
2194
+ {
2195
+ id: "mistral-31-24b",
2196
+ name: "Venice Medium (Mistral)",
2197
+ reasoning: false,
2198
+ input: ["text", "image"],
2199
+ contextWindow: 131072,
2200
+ maxTokens: 8192,
2201
+ privacy: "private"
2202
+ },
2203
+ {
2204
+ id: "google-gemma-3-27b-it",
2205
+ name: "Google Gemma 3 27B Instruct",
2206
+ reasoning: false,
2207
+ input: ["text", "image"],
2208
+ contextWindow: 202752,
2209
+ maxTokens: 8192,
2210
+ privacy: "private"
2211
+ },
2212
+ {
2213
+ id: "openai-gpt-oss-120b",
2214
+ name: "OpenAI GPT OSS 120B",
2215
+ reasoning: false,
2216
+ input: ["text"],
2217
+ contextWindow: 131072,
2218
+ maxTokens: 8192,
2219
+ privacy: "private"
2220
+ },
2221
+ {
2222
+ id: "zai-org-glm-4.7",
2223
+ name: "GLM 4.7",
2224
+ reasoning: true,
2225
+ input: ["text"],
2226
+ contextWindow: 202752,
2227
+ maxTokens: 8192,
2228
+ privacy: "private"
2229
+ },
2230
+ {
2231
+ id: "claude-opus-45",
2232
+ name: "Claude Opus 4.5 (via Venice)",
2233
+ reasoning: true,
2234
+ input: ["text", "image"],
2235
+ contextWindow: 202752,
2236
+ maxTokens: 8192,
2237
+ privacy: "anonymized"
2238
+ },
2239
+ {
2240
+ id: "claude-sonnet-45",
2241
+ name: "Claude Sonnet 4.5 (via Venice)",
2242
+ reasoning: true,
2243
+ input: ["text", "image"],
2244
+ contextWindow: 202752,
2245
+ maxTokens: 8192,
2246
+ privacy: "anonymized"
2247
+ },
2248
+ {
2249
+ id: "openai-gpt-52",
2250
+ name: "GPT-5.2 (via Venice)",
2251
+ reasoning: true,
2252
+ input: ["text"],
2253
+ contextWindow: 262144,
2254
+ maxTokens: 8192,
2255
+ privacy: "anonymized"
2256
+ },
2257
+ {
2258
+ id: "openai-gpt-52-codex",
2259
+ name: "GPT-5.2 Codex (via Venice)",
2260
+ reasoning: true,
2261
+ input: ["text", "image"],
2262
+ contextWindow: 262144,
2263
+ maxTokens: 8192,
2264
+ privacy: "anonymized"
2265
+ },
2266
+ {
2267
+ id: "gemini-3-pro-preview",
2268
+ name: "Gemini 3 Pro (via Venice)",
2269
+ reasoning: true,
2270
+ input: ["text", "image"],
2271
+ contextWindow: 202752,
2272
+ maxTokens: 8192,
2273
+ privacy: "anonymized"
2274
+ },
2275
+ {
2276
+ id: "gemini-3-flash-preview",
2277
+ name: "Gemini 3 Flash (via Venice)",
2278
+ reasoning: true,
2279
+ input: ["text", "image"],
2280
+ contextWindow: 262144,
2281
+ maxTokens: 8192,
2282
+ privacy: "anonymized"
2283
+ },
2284
+ {
2285
+ id: "grok-41-fast",
2286
+ name: "Grok 4.1 Fast (via Venice)",
2287
+ reasoning: true,
2288
+ input: ["text", "image"],
2289
+ contextWindow: 262144,
2290
+ maxTokens: 8192,
2291
+ privacy: "anonymized"
2292
+ },
2293
+ {
2294
+ id: "grok-code-fast-1",
2295
+ name: "Grok Code Fast 1 (via Venice)",
2296
+ reasoning: true,
2297
+ input: ["text"],
2298
+ contextWindow: 262144,
2299
+ maxTokens: 8192,
2300
+ privacy: "anonymized"
2301
+ },
2302
+ {
2303
+ id: "kimi-k2-thinking",
2304
+ name: "Kimi K2 Thinking (via Venice)",
2305
+ reasoning: true,
2306
+ input: ["text"],
2307
+ contextWindow: 262144,
2308
+ maxTokens: 8192,
2309
+ privacy: "anonymized"
2310
+ },
2311
+ {
2312
+ id: "minimax-m21",
2313
+ name: "MiniMax M2.1 (via Venice)",
2314
+ reasoning: true,
2315
+ input: ["text"],
2316
+ contextWindow: 202752,
2317
+ maxTokens: 8192,
2318
+ privacy: "anonymized"
2319
+ }
2320
+ ];
2321
+ /**
2322
+ * Build a ModelDefinitionConfig from a Venice catalog entry.
2323
+ *
2324
+ * Note: The `privacy` field from the catalog is not included in the output
2325
+ * as ModelDefinitionConfig doesn't support custom metadata fields. Privacy
2326
+ * mode is inherent to each model and documented in the catalog/docs.
2327
+ */
2328
+ function buildVeniceModelDefinition(entry) {
2329
+ return {
2330
+ id: entry.id,
2331
+ name: entry.name,
2332
+ reasoning: entry.reasoning,
2333
+ input: [...entry.input],
2334
+ cost: VENICE_DEFAULT_COST,
2335
+ contextWindow: entry.contextWindow,
2336
+ maxTokens: entry.maxTokens,
2337
+ compat: { supportsUsageInStreaming: false }
2338
+ };
2339
+ }
2340
+
2341
+ //#endregion
2342
+ //#region src/agents/models-config.providers.ts
2343
+ const XIAOMI_BASE_URL = "https://api.xiaomimimo.com/anthropic";
2344
+ const XIAOMI_DEFAULT_MODEL_ID = "mimo-v2-flash";
2345
+ const XIAOMI_DEFAULT_CONTEXT_WINDOW = 262144;
2346
+ const XIAOMI_DEFAULT_MAX_TOKENS = 8192;
2347
+ const XIAOMI_DEFAULT_COST = {
2348
+ input: 0,
2349
+ output: 0,
2350
+ cacheRead: 0,
2351
+ cacheWrite: 0
2352
+ };
2353
+ const QIANFAN_BASE_URL = "https://qianfan.baidubce.com/v2";
2354
+ const QIANFAN_DEFAULT_MODEL_ID = "deepseek-v3.2";
2355
+ const QIANFAN_DEFAULT_CONTEXT_WINDOW = 98304;
2356
+ const QIANFAN_DEFAULT_MAX_TOKENS = 32768;
2357
+ const QIANFAN_DEFAULT_COST = {
2358
+ input: 0,
2359
+ output: 0,
2360
+ cacheRead: 0,
2361
+ cacheWrite: 0
2362
+ };
2363
+ function normalizeGoogleModelId(id) {
2364
+ if (id === "gemini-3-pro") return "gemini-3-pro-preview";
2365
+ if (id === "gemini-3-flash") return "gemini-3-flash-preview";
2366
+ return id;
2367
+ }
2368
+ function buildXiaomiProvider() {
2369
+ return {
2370
+ baseUrl: XIAOMI_BASE_URL,
2371
+ api: "anthropic-messages",
2372
+ models: [{
2373
+ id: XIAOMI_DEFAULT_MODEL_ID,
2374
+ name: "Xiaomi MiMo V2 Flash",
2375
+ reasoning: false,
2376
+ input: ["text"],
2377
+ cost: XIAOMI_DEFAULT_COST,
2378
+ contextWindow: XIAOMI_DEFAULT_CONTEXT_WINDOW,
2379
+ maxTokens: XIAOMI_DEFAULT_MAX_TOKENS
2380
+ }]
2381
+ };
2382
+ }
2383
+ function buildQianfanProvider() {
2384
+ return {
2385
+ baseUrl: QIANFAN_BASE_URL,
2386
+ api: "openai-completions",
2387
+ models: [{
2388
+ id: QIANFAN_DEFAULT_MODEL_ID,
2389
+ name: "DEEPSEEK V3.2",
2390
+ reasoning: true,
2391
+ input: ["text"],
2392
+ cost: QIANFAN_DEFAULT_COST,
2393
+ contextWindow: QIANFAN_DEFAULT_CONTEXT_WINDOW,
2394
+ maxTokens: QIANFAN_DEFAULT_MAX_TOKENS
2395
+ }, {
2396
+ id: "ernie-5.0-thinking-preview",
2397
+ name: "ERNIE-5.0-Thinking-Preview",
2398
+ reasoning: true,
2399
+ input: ["text", "image"],
2400
+ cost: QIANFAN_DEFAULT_COST,
2401
+ contextWindow: 119e3,
2402
+ maxTokens: 64e3
2403
+ }]
2404
+ };
2405
+ }
2406
+
2407
+ //#endregion
2408
+ //#region src/agents/model-selection.ts
2409
+ const ANTHROPIC_MODEL_ALIASES = {
2410
+ "opus-4.6": "claude-opus-4-6",
2411
+ "opus-4.5": "claude-opus-4-5",
2412
+ "sonnet-4.5": "claude-sonnet-4-5"
2413
+ };
2414
+ const OPENAI_CODEX_OAUTH_MODEL_PREFIXES = ["gpt-5.3-codex"];
2415
+ function normalizeAliasKey(value) {
2416
+ return value.trim().toLowerCase();
2417
+ }
2418
+ function modelKey(provider, model) {
2419
+ return `${provider}/${model}`;
2420
+ }
2421
+ function normalizeProviderId(provider) {
2422
+ const normalized = provider.trim().toLowerCase();
2423
+ if (normalized === "z.ai" || normalized === "z-ai") return "zai";
2424
+ if (normalized === "opencode-zen") return "opencode";
2425
+ if (normalized === "qwen") return "qwen-portal";
2426
+ if (normalized === "kimi-code") return "kimi-coding";
2427
+ return normalized;
2428
+ }
2429
+ function isCliProvider(provider, cfg) {
2430
+ const normalized = normalizeProviderId(provider);
2431
+ if (normalized === "claude-cli") return true;
2432
+ if (normalized === "codex-cli") return true;
2433
+ const backends = cfg?.agents?.defaults?.cliBackends ?? {};
2434
+ return Object.keys(backends).some((key) => normalizeProviderId(key) === normalized);
2435
+ }
2436
+ function normalizeAnthropicModelId(model) {
2437
+ const trimmed = model.trim();
2438
+ if (!trimmed) return trimmed;
2439
+ return ANTHROPIC_MODEL_ALIASES[trimmed.toLowerCase()] ?? trimmed;
2440
+ }
2441
+ function normalizeProviderModelId(provider, model) {
2442
+ if (provider === "anthropic") return normalizeAnthropicModelId(model);
2443
+ if (provider === "google") return normalizeGoogleModelId(model);
2444
+ return model;
2445
+ }
2446
+ function shouldUseOpenAICodexProvider(provider, model) {
2447
+ if (provider !== "openai") return false;
2448
+ const normalized = model.trim().toLowerCase();
2449
+ if (!normalized) return false;
2450
+ return OPENAI_CODEX_OAUTH_MODEL_PREFIXES.some((prefix) => normalized === prefix || normalized.startsWith(`${prefix}-`));
2451
+ }
2452
+ function normalizeModelRef(provider, model) {
2453
+ const normalizedProvider = normalizeProviderId(provider);
2454
+ const normalizedModel = normalizeProviderModelId(normalizedProvider, model.trim());
2455
+ if (shouldUseOpenAICodexProvider(normalizedProvider, normalizedModel)) return {
2456
+ provider: "openai-codex",
2457
+ model: normalizedModel
2458
+ };
2459
+ return {
2460
+ provider: normalizedProvider,
2461
+ model: normalizedModel
2462
+ };
2463
+ }
2464
+ function parseModelRef(raw, defaultProvider) {
2465
+ const trimmed = raw.trim();
2466
+ if (!trimmed) return null;
2467
+ const slash = trimmed.indexOf("/");
2468
+ if (slash === -1) return normalizeModelRef(defaultProvider, trimmed);
2469
+ const providerRaw = trimmed.slice(0, slash).trim();
2470
+ const model = trimmed.slice(slash + 1).trim();
2471
+ if (!providerRaw || !model) return null;
2472
+ return normalizeModelRef(providerRaw, model);
2473
+ }
2474
+ function resolveAllowlistModelKey(raw, defaultProvider) {
2475
+ const parsed = parseModelRef(raw, defaultProvider);
2476
+ if (!parsed) return null;
2477
+ return modelKey(parsed.provider, parsed.model);
2478
+ }
2479
+ function buildConfiguredAllowlistKeys(params) {
2480
+ const rawAllowlist = Object.keys(params.cfg?.agents?.defaults?.models ?? {});
2481
+ if (rawAllowlist.length === 0) return null;
2482
+ const keys = /* @__PURE__ */ new Set();
2483
+ for (const raw of rawAllowlist) {
2484
+ const key = resolveAllowlistModelKey(String(raw ?? ""), params.defaultProvider);
2485
+ if (key) keys.add(key);
2486
+ }
2487
+ return keys.size > 0 ? keys : null;
2488
+ }
2489
+ function buildModelAliasIndex(params) {
2490
+ const byAlias = /* @__PURE__ */ new Map();
2491
+ const byKey = /* @__PURE__ */ new Map();
2492
+ const rawModels = params.cfg.agents?.defaults?.models ?? {};
2493
+ for (const [keyRaw, entryRaw] of Object.entries(rawModels)) {
2494
+ const parsed = parseModelRef(String(keyRaw ?? ""), params.defaultProvider);
2495
+ if (!parsed) continue;
2496
+ const alias = String(entryRaw?.alias ?? "").trim();
2497
+ if (!alias) continue;
2498
+ const aliasKey = normalizeAliasKey(alias);
2499
+ byAlias.set(aliasKey, {
2500
+ alias,
2501
+ ref: parsed
2502
+ });
2503
+ const key = modelKey(parsed.provider, parsed.model);
2504
+ const existing = byKey.get(key) ?? [];
2505
+ existing.push(alias);
2506
+ byKey.set(key, existing);
2507
+ }
2508
+ return {
2509
+ byAlias,
2510
+ byKey
2511
+ };
2512
+ }
2513
+ function resolveModelRefFromString(params) {
2514
+ const trimmed = params.raw.trim();
2515
+ if (!trimmed) return null;
2516
+ if (!trimmed.includes("/")) {
2517
+ const aliasKey = normalizeAliasKey(trimmed);
2518
+ const aliasMatch = params.aliasIndex?.byAlias.get(aliasKey);
2519
+ if (aliasMatch) return {
2520
+ ref: aliasMatch.ref,
2521
+ alias: aliasMatch.alias
2522
+ };
2523
+ }
2524
+ const parsed = parseModelRef(trimmed, params.defaultProvider);
2525
+ if (!parsed) return null;
2526
+ return { ref: parsed };
2527
+ }
2528
+ function resolveConfiguredModelRef(params) {
2529
+ const rawModel = (() => {
2530
+ const raw = params.cfg.agents?.defaults?.model;
2531
+ if (typeof raw === "string") return raw.trim();
2532
+ return raw?.primary?.trim() ?? "";
2533
+ })();
2534
+ if (rawModel) {
2535
+ const trimmed = rawModel.trim();
2536
+ const aliasIndex = buildModelAliasIndex({
2537
+ cfg: params.cfg,
2538
+ defaultProvider: params.defaultProvider
2539
+ });
2540
+ if (!trimmed.includes("/")) {
2541
+ const aliasKey = normalizeAliasKey(trimmed);
2542
+ const aliasMatch = aliasIndex.byAlias.get(aliasKey);
2543
+ if (aliasMatch) return aliasMatch.ref;
2544
+ console.warn(`[anima] Model "${trimmed}" specified without provider. Falling back to "anthropic/${trimmed}". Please use "anthropic/${trimmed}" in your config.`);
2545
+ return {
2546
+ provider: "anthropic",
2547
+ model: trimmed
2548
+ };
2549
+ }
2550
+ const resolved = resolveModelRefFromString({
2551
+ raw: trimmed,
2552
+ defaultProvider: params.defaultProvider,
2553
+ aliasIndex
2554
+ });
2555
+ if (resolved) return resolved.ref;
2556
+ }
2557
+ return {
2558
+ provider: params.defaultProvider,
2559
+ model: params.defaultModel
2560
+ };
2561
+ }
2562
+ function resolveDefaultModelForAgent(params) {
2563
+ const agentModelOverride = params.agentId ? resolveAgentModelPrimary(params.cfg, params.agentId) : void 0;
2564
+ return resolveConfiguredModelRef({
2565
+ cfg: agentModelOverride && agentModelOverride.length > 0 ? {
2566
+ ...params.cfg,
2567
+ agents: {
2568
+ ...params.cfg.agents,
2569
+ defaults: {
2570
+ ...params.cfg.agents?.defaults,
2571
+ model: {
2572
+ ...typeof params.cfg.agents?.defaults?.model === "object" ? params.cfg.agents.defaults.model : void 0,
2573
+ primary: agentModelOverride
2574
+ }
2575
+ }
2576
+ }
2577
+ } : params.cfg,
2578
+ defaultProvider: DEFAULT_PROVIDER,
2579
+ defaultModel: DEFAULT_MODEL
2580
+ });
2581
+ }
2582
+ function buildAllowedModelSet(params) {
2583
+ const rawAllowlist = (() => {
2584
+ const modelMap = params.cfg.agents?.defaults?.models ?? {};
2585
+ return Object.keys(modelMap);
2586
+ })();
2587
+ const allowAny = rawAllowlist.length === 0;
2588
+ const defaultModel = params.defaultModel?.trim();
2589
+ const defaultKey = defaultModel && params.defaultProvider ? modelKey(params.defaultProvider, defaultModel) : void 0;
2590
+ const catalogKeys = new Set(params.catalog.map((entry) => modelKey(entry.provider, entry.id)));
2591
+ if (allowAny) {
2592
+ if (defaultKey) catalogKeys.add(defaultKey);
2593
+ return {
2594
+ allowAny: true,
2595
+ allowedCatalog: params.catalog,
2596
+ allowedKeys: catalogKeys
2597
+ };
2598
+ }
2599
+ const allowedKeys = /* @__PURE__ */ new Set();
2600
+ const configuredProviders = params.cfg.models?.providers ?? {};
2601
+ for (const raw of rawAllowlist) {
2602
+ const parsed = parseModelRef(String(raw), params.defaultProvider);
2603
+ if (!parsed) continue;
2604
+ const key = modelKey(parsed.provider, parsed.model);
2605
+ const providerKey = normalizeProviderId(parsed.provider);
2606
+ if (isCliProvider(parsed.provider, params.cfg)) allowedKeys.add(key);
2607
+ else if (catalogKeys.has(key)) allowedKeys.add(key);
2608
+ else if (configuredProviders[providerKey] != null) allowedKeys.add(key);
2609
+ }
2610
+ if (defaultKey) allowedKeys.add(defaultKey);
2611
+ const allowedCatalog = params.catalog.filter((entry) => allowedKeys.has(modelKey(entry.provider, entry.id)));
2612
+ if (allowedCatalog.length === 0 && allowedKeys.size === 0) {
2613
+ if (defaultKey) catalogKeys.add(defaultKey);
2614
+ return {
2615
+ allowAny: true,
2616
+ allowedCatalog: params.catalog,
2617
+ allowedKeys: catalogKeys
2618
+ };
2619
+ }
2620
+ return {
2621
+ allowAny: false,
2622
+ allowedCatalog,
2623
+ allowedKeys
2624
+ };
2625
+ }
2626
+ function getModelRefStatus(params) {
2627
+ const allowed = buildAllowedModelSet({
2628
+ cfg: params.cfg,
2629
+ catalog: params.catalog,
2630
+ defaultProvider: params.defaultProvider,
2631
+ defaultModel: params.defaultModel
2632
+ });
2633
+ const key = modelKey(params.ref.provider, params.ref.model);
2634
+ return {
2635
+ key,
2636
+ inCatalog: params.catalog.some((entry) => modelKey(entry.provider, entry.id) === key),
2637
+ allowAny: allowed.allowAny,
2638
+ allowed: allowed.allowAny || allowed.allowedKeys.has(key)
2639
+ };
2640
+ }
2641
+ function resolveAllowedModelRef(params) {
2642
+ const trimmed = params.raw.trim();
2643
+ if (!trimmed) return { error: "invalid model: empty" };
2644
+ const aliasIndex = buildModelAliasIndex({
2645
+ cfg: params.cfg,
2646
+ defaultProvider: params.defaultProvider
2647
+ });
2648
+ const resolved = resolveModelRefFromString({
2649
+ raw: trimmed,
2650
+ defaultProvider: params.defaultProvider,
2651
+ aliasIndex
2652
+ });
2653
+ if (!resolved) return { error: `invalid model: ${trimmed}` };
2654
+ const status = getModelRefStatus({
2655
+ cfg: params.cfg,
2656
+ catalog: params.catalog,
2657
+ ref: resolved.ref,
2658
+ defaultProvider: params.defaultProvider,
2659
+ defaultModel: params.defaultModel
2660
+ });
2661
+ if (!status.allowed) return { error: `model not allowed: ${status.key}` };
2662
+ return {
2663
+ ref: resolved.ref,
2664
+ key: status.key
2665
+ };
2666
+ }
2667
+ function resolveThinkingDefault(params) {
2668
+ const configured = params.cfg.agents?.defaults?.thinkingDefault;
2669
+ if (configured) return configured;
2670
+ if ((params.catalog?.find((entry) => entry.provider === params.provider && entry.id === params.model))?.reasoning) return "low";
2671
+ return "off";
2672
+ }
2673
+ /**
2674
+ * Resolve the model configured for Gmail hook processing.
2675
+ * Returns null if hooks.gmail.model is not set.
2676
+ */
2677
+ function resolveHooksGmailModel(params) {
2678
+ const hooksModel = params.cfg.hooks?.gmail?.model;
2679
+ if (!hooksModel?.trim()) return null;
2680
+ const aliasIndex = buildModelAliasIndex({
2681
+ cfg: params.cfg,
2682
+ defaultProvider: params.defaultProvider
2683
+ });
2684
+ return resolveModelRefFromString({
2685
+ raw: hooksModel,
2686
+ defaultProvider: params.defaultProvider,
2687
+ aliasIndex
2688
+ })?.ref ?? null;
2689
+ }
2690
+
2691
+ //#endregion
2692
+ export { resolveCloudflareAiGatewayBaseUrl as $, SYNTHETIC_DEFAULT_MODEL_REF as A, DEFAULT_PROVIDER as At, getShellEnvAppliedKeys as B, VENICE_DEFAULT_MODEL_REF as C, normalizeOptionalSecretInput as Ct, TOGETHER_MODEL_CATALOG as D, CODEX_CLI_PROFILE_ID as Dt, TOGETHER_BASE_URL as E, CLAUDE_CLI_PROFILE_ID as Et, requireApiKey as F, shouldEnableShellEnvFallback as G, loadShellEnvFallback as H, resolveApiKeyForProvider as I, buildHuggingfaceModelDefinition as J, HUGGINGFACE_BASE_URL as K, resolveAwsSdkEnvVarName as L, buildSyntheticModelDefinition as M, getApiKeyForModel as N, buildTogetherModelDefinition as O, DEFAULT_CONTEXT_TOKENS as Ot, getCustomProviderApiKey as P, buildCloudflareAiGatewayModelDefinition as Q, resolveEnvApiKey as R, VENICE_BASE_URL as S, withFileLock as St, buildVeniceModelDefinition as T, resolveAuthProfileDisplayLabel as Tt, resolveShellEnvFallbackTimeoutMs as U, getShellPathFromLoginShell as V, shouldDeferShellEnvFallback as W, isHuggingfacePolicyLocked as X, discoverHuggingfaceModels as Y, CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF as Z, QIANFAN_BASE_URL as _, resolveAuthStorePath as _t, isCliProvider as a, CHUTES_AUTHORIZE_ENDPOINT as at, buildQianfanProvider as b, loadJsonFile as bt, normalizeProviderId as c, parseOAuthCallbackInput as ct, resolveAllowlistModelKey as d, setAuthProfileOrder as dt, auth_profiles_exports as et, resolveConfiguredModelRef as f, upsertAuthProfile as ft, resolveThinkingDefault as g, updateAuthProfileStoreWithLock as gt, resolveModelRefFromString as h, loadAuthProfileStore as ht, getModelRefStatus as i, resolveApiKeyForProfile as it, SYNTHETIC_MODEL_CATALOG as j, SYNTHETIC_BASE_URL as k, DEFAULT_MODEL as kt, parseModelRef as l, repairOAuthProfileIdMismatch as lt, resolveHooksGmailModel as m, ensureAuthProfileStore as mt, buildConfiguredAllowlistKeys as n, isProfileInCooldown as nt, modelKey as o, exchangeChutesCodeForTokens as ot, resolveDefaultModelForAgent as p, upsertAuthProfileWithLock as pt, HUGGINGFACE_MODEL_CATALOG as q, buildModelAliasIndex as r, resolveProfileUnusableUntilForDisplay as rt, normalizeModelRef as s, generateChutesPkce as st, buildAllowedModelSet as t, resolveAuthProfileOrder as tt, resolveAllowedModelRef as u, listProfilesForProvider as ut, QIANFAN_DEFAULT_MODEL_ID as v, resolveAuthStorePathForDisplay as vt, VENICE_MODEL_CATALOG as w, normalizeSecretInput as wt, buildXiaomiProvider as x, saveJsonFile as xt, XIAOMI_DEFAULT_MODEL_ID as y, resolveAnimaAgentDir as yt, resolveModelAuthMode as z };