@leemat/atlas 2026.2.6-3

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 (2089) hide show
  1. package/CHANGELOG.md +1580 -0
  2. package/LICENSE +21 -0
  3. package/README.md +544 -0
  4. package/atlas.mjs +33 -0
  5. package/dist/accounts-B2CFjnU4.js +250 -0
  6. package/dist/accounts-CvZ72HMT.js +251 -0
  7. package/dist/acp-cli-B_NsEPUF.js +923 -0
  8. package/dist/acp-cli-Dm8_74Su.js +926 -0
  9. package/dist/agent-B1KyGOLc.js +704 -0
  10. package/dist/agent-CO7AGlj3.js +704 -0
  11. package/dist/agent-scope-BKOcVvmS.js +370 -0
  12. package/dist/agent-scope-CUMjEpma.js +612 -0
  13. package/dist/agent-scope-DbPV-klD.js +370 -0
  14. package/dist/archive-D0z3LZDK.js +85 -0
  15. package/dist/archive-Dy3Ezb-5.js +85 -0
  16. package/dist/atlas-root-DPjGhx7U.js +84 -0
  17. package/dist/atlas-root-F1I7aUzD.js +84 -0
  18. package/dist/audit-4IbU_Yq6.js +1853 -0
  19. package/dist/audit-B3-IhtiV.js +1853 -0
  20. package/dist/auth-B9k363u6.js +192 -0
  21. package/dist/auth-DZMv_djK.js +192 -0
  22. package/dist/auth-health-B5WXeaXo.js +149 -0
  23. package/dist/auth-health-CkS5AU7V.js +149 -0
  24. package/dist/auth-profiles-DVuTc3KD.js +2982 -0
  25. package/dist/boolean-BgXe2hyu.js +30 -0
  26. package/dist/brew-CAcErcKz.js +46 -0
  27. package/dist/brew-CcZV0dSS.js +46 -0
  28. package/dist/build-info.json +5 -0
  29. package/dist/call-B-YgfFca.js +278 -0
  30. package/dist/call-Ct_Pe8S_.js +278 -0
  31. package/dist/channel-options-DMkSEj2S.js +32 -0
  32. package/dist/channel-options-DNbHaxTc.js +62 -0
  33. package/dist/channel-selection-CiBb_0sf.js +51 -0
  34. package/dist/channel-selection-D6g27acA.js +51 -0
  35. package/dist/channel-summary-CVBxRY-m.js +1120 -0
  36. package/dist/channel-summary-Cii0qyXD.js +1120 -0
  37. package/dist/channels-cli-CcPXhyBw.js +1413 -0
  38. package/dist/channels-cli-D8W1-24C.js +1415 -0
  39. package/dist/channels-status-issues-B482aNiB.js +18 -0
  40. package/dist/channels-status-issues-DmUlNR2O.js +18 -0
  41. package/dist/chrome--o2SN4MI.js +1953 -0
  42. package/dist/chrome-DVA0NdqA.js +1973 -0
  43. package/dist/clack-prompter-DuBVnTKy.js +92 -0
  44. package/dist/clack-prompter-lan2z6rF.js +92 -0
  45. package/dist/cli/daemon-cli.js +2 -0
  46. package/dist/cli-2Nb0qAN-.js +89 -0
  47. package/dist/cli-D3dtxIjI.js +86 -0
  48. package/dist/cli-utils-BkRQdAoC.js +43 -0
  49. package/dist/cli-utils-ByANh4Sp.js +43 -0
  50. package/dist/client-B2vWxO-_.js +1629 -0
  51. package/dist/client-D74ONBvb.js +1629 -0
  52. package/dist/command-format-CBU5jCY8.js +52 -0
  53. package/dist/command-format-C_-Q-_o3.js +38 -0
  54. package/dist/command-format-DxY_r9MK.js +52 -0
  55. package/dist/command-options-DHtNt4I-.js +33 -0
  56. package/dist/commands-B7i6KXd8.js +233 -0
  57. package/dist/completion-cli-BfwMsZop.js +773 -0
  58. package/dist/completion-cli-BiGWNIxh.js +434 -0
  59. package/dist/config-BJMUdu-Q.js +5665 -0
  60. package/dist/config-BgzNMb8g.js +4924 -0
  61. package/dist/config-Cj3AMovm.js +4925 -0
  62. package/dist/config-guard-CATld9BC.js +5774 -0
  63. package/dist/configure-CfMz3i3p.js +896 -0
  64. package/dist/configure-DGI01ZDv.js +895 -0
  65. package/dist/constants-C2bzsGRk.js +65 -0
  66. package/dist/constants-Kx9rkT-e.js +65 -0
  67. package/dist/control-service-BguMnv1a.js +61 -0
  68. package/dist/control-service-DQdSjtFR.js +61 -0
  69. package/dist/control-ui/apple-touch-icon.png +0 -0
  70. package/dist/control-ui/assets/index-Bnuib5Ip.css +1 -0
  71. package/dist/control-ui/assets/index-CJDa-e45.js +7742 -0
  72. package/dist/control-ui/assets/index-CJDa-e45.js.map +1 -0
  73. package/dist/control-ui/favicon-32.png +0 -0
  74. package/dist/control-ui/favicon.ico +0 -0
  75. package/dist/control-ui/favicon.svg +10 -0
  76. package/dist/control-ui/index.html +17 -0
  77. package/dist/cron-cli-DxOHRJeP.js +457 -0
  78. package/dist/cron-cli-DyHq7PPn.js +454 -0
  79. package/dist/daemon-cli-DnG7hXBG.js +758 -0
  80. package/dist/daemon-cli-DtX6mLa3.js +757 -0
  81. package/dist/daemon-runtime-BBa_-tjq.js +517 -0
  82. package/dist/daemon-runtime-CFgWpGVG.js +517 -0
  83. package/dist/deliver-2RpZLJla.js +2557 -0
  84. package/dist/deliver-BqXGjEEH.js +2587 -0
  85. package/dist/deliver-CbpK_oAa.js +2587 -0
  86. package/dist/deps-BwQdWZ3T.js +27 -0
  87. package/dist/deps-xXApNuyT.js +27 -0
  88. package/dist/devices-cli-C9eUNH2s.js +207 -0
  89. package/dist/devices-cli-D1sHyAon.js +204 -0
  90. package/dist/directory-cli-CgzoxCDb.js +244 -0
  91. package/dist/directory-cli-ZaH0pGCD.js +247 -0
  92. package/dist/dispatcher-ah_Eqs3t.js +160 -0
  93. package/dist/dns-cli-DErlWHgR.js +198 -0
  94. package/dist/dns-cli-DGxOs29X.js +201 -0
  95. package/dist/docs-cli-CnFX3PTv.js +161 -0
  96. package/dist/docs-cli-DeharIH5.js +159 -0
  97. package/dist/doctor-DCce0xHW.js +2583 -0
  98. package/dist/doctor-DtfQuH6c.js +2581 -0
  99. package/dist/entry.js +1330 -0
  100. package/dist/env-zsgpOYKj.js +32 -0
  101. package/dist/errors--RNLFyOF.js +1952 -0
  102. package/dist/exec-B8JKbXKW.js +246 -0
  103. package/dist/exec-BxiGO6W4.js +1099 -0
  104. package/dist/exec-COj3548p.js +246 -0
  105. package/dist/exec-approvals-PnTNl5mV.js +1043 -0
  106. package/dist/exec-approvals-cli-9XZbw7c9.js +385 -0
  107. package/dist/exec-approvals-cli-DxN1xzt-.js +388 -0
  108. package/dist/exec-approvals-odA-6DHi.js +1043 -0
  109. package/dist/extensionAPI.js +69586 -0
  110. package/dist/format-B7OjpGnt.js +34 -0
  111. package/dist/format-CS7EI0xF.js +34 -0
  112. package/dist/gateway-cli-CBAh850v.js +17866 -0
  113. package/dist/gateway-cli-vdk_agft.js +17865 -0
  114. package/dist/gateway-rpc-DndVngdH.js +28 -0
  115. package/dist/gateway-rpc-gHTR5Cbc.js +28 -0
  116. package/dist/github-copilot-auth-Bk0_Aas5.js +1256 -0
  117. package/dist/github-copilot-auth-dtaSQ01h.js +1256 -0
  118. package/dist/github-copilot-token-BxyQgqz1.js +103 -0
  119. package/dist/github-copilot-token-C2AL0eDG.js +103 -0
  120. package/dist/github-copilot-token-SLWintYd.js +103 -0
  121. package/dist/gmail-setup-utils-Abq1qvuX.js +428 -0
  122. package/dist/gmail-setup-utils-CuUkI2Ka.js +428 -0
  123. package/dist/health-format-CKki6loN.js +1383 -0
  124. package/dist/health-format-DH676psg.js +1382 -0
  125. package/dist/help-format-CfZ94KRN.js +17 -0
  126. package/dist/help-format-Dds-jhO5.js +17 -0
  127. package/dist/helpers-5yebzF4C.js +25 -0
  128. package/dist/helpers-CSZtxHTa.js +10 -0
  129. package/dist/helpers-CeoEYUfW.js +10 -0
  130. package/dist/helpers-EKm3X92T.js +25 -0
  131. package/dist/hooks/bundled/audit-logger/HOOK.md +85 -0
  132. package/dist/hooks/bundled/boot-md/HOOK.md +19 -0
  133. package/dist/hooks/bundled/command-logger/HOOK.md +122 -0
  134. package/dist/hooks/bundled/hitl-approval/HOOK.md +42 -0
  135. package/dist/hooks/bundled/nightly-tasks/HOOK.md +114 -0
  136. package/dist/hooks/bundled/session-memory/HOOK.md +113 -0
  137. package/dist/hooks/bundled/soul-evil/HOOK.md +71 -0
  138. package/dist/hooks-cli-D8-spWPB.js +1058 -0
  139. package/dist/hooks-cli-_j8DNyo5.js +1061 -0
  140. package/dist/hooks-status-CajbXcRo.js +443 -0
  141. package/dist/hooks-status-f-U4xgPN.js +443 -0
  142. package/dist/image-4yiJAo6y.js +629 -0
  143. package/dist/image-BUFB_k8W.js +629 -0
  144. package/dist/image-CtVDEUHM.js +1421 -0
  145. package/dist/index.js +5957 -0
  146. package/dist/installs-BsauMWpx.js +425 -0
  147. package/dist/installs-iZIPKzVi.js +425 -0
  148. package/dist/is-main-B6kCyqsv.js +25 -0
  149. package/dist/is-main-qJ675wPV.js +25 -0
  150. package/dist/links-BfoNPOuN.js +15 -0
  151. package/dist/links-DlwSizsh.js +15 -0
  152. package/dist/loader-DdUyx3c8.js +66254 -0
  153. package/dist/logging-BCrQ_N_j.js +15 -0
  154. package/dist/logging-BWRYHvLp.js +1 -0
  155. package/dist/logging-CfEk_PnX.js +1 -0
  156. package/dist/logging-CoF0Bv_T.js +15 -0
  157. package/dist/login-qr-CQdQH62t.js +478 -0
  158. package/dist/login-qr-CvKDGUF4.js +478 -0
  159. package/dist/login-qr-Dl9dL1Jz.js +475 -0
  160. package/dist/logs-cli-BhrRuyRb.js +227 -0
  161. package/dist/logs-cli-DH4iwFU8.js +230 -0
  162. package/dist/manager-B27YqwcM.js +3218 -0
  163. package/dist/manager-BmM47v6p.js +3216 -0
  164. package/dist/manager-gS0CHyDA.js +3216 -0
  165. package/dist/manifest-registry-CxTVtFfj.js +668 -0
  166. package/dist/manifest-registry-DKY_KYIv.js +668 -0
  167. package/dist/message-channel-D1csMRHE.js +110 -0
  168. package/dist/message-channel-W5qX04Mh.js +110 -0
  169. package/dist/model-selection-Cgf5GXnY.js +2735 -0
  170. package/dist/model-selection-RJ94H_Fa.js +2984 -0
  171. package/dist/models-cli-Bh4XtEkb.js +2542 -0
  172. package/dist/models-cli-DQYDyH9_.js +2545 -0
  173. package/dist/net-C8YRVt16.js +137 -0
  174. package/dist/net-CWMMy37F.js +137 -0
  175. package/dist/node-cli-DiH4CzR7.js +1456 -0
  176. package/dist/node-cli-bOO40ezZ.js +1459 -0
  177. package/dist/node-service-BVHVpuzk.js +67 -0
  178. package/dist/node-service-CaoJUlNT.js +67 -0
  179. package/dist/nodes-cli-BLLUSaWc.js +1210 -0
  180. package/dist/nodes-cli-CH_5YF_E.js +1207 -0
  181. package/dist/nodes-screen-B9A3nMu0.js +157 -0
  182. package/dist/nodes-screen-aL7-_Dam.js +157 -0
  183. package/dist/note-Ci08TSbV.js +73 -0
  184. package/dist/note-tn_4OWcK.js +73 -0
  185. package/dist/onboard-channels-BEEU2UNU.js +671 -0
  186. package/dist/onboard-channels-ynCeHHwi.js +671 -0
  187. package/dist/onboard-skills-BLeO8BvO.js +3485 -0
  188. package/dist/onboard-skills-CFdpqxR-.js +3485 -0
  189. package/dist/onboarding-akYka8kO.js +3269 -0
  190. package/dist/pairing-cli-BYSP__d_.js +114 -0
  191. package/dist/pairing-cli-Dd11XK72.js +117 -0
  192. package/dist/pairing-labels-CaExZlyX.js +9 -0
  193. package/dist/pairing-labels-DpgaWX0-.js +9 -0
  194. package/dist/pairing-store-DeCzJbHE.js +391 -0
  195. package/dist/pairing-store-Dz8WHpyx.js +391 -0
  196. package/dist/parse-BZz5lHzQ.js +23 -0
  197. package/dist/parse-gTOGQPH6.js +23 -0
  198. package/dist/parse-log-line-C6szvNBZ.js +44 -0
  199. package/dist/parse-log-line-CARp5QyJ.js +44 -0
  200. package/dist/parse-timeout-CbVKLZ4B.js +16 -0
  201. package/dist/parse-timeout-Du-wHHNi.js +16 -0
  202. package/dist/path-env-CBt42KJm.js +77 -0
  203. package/dist/path-env-DBBZ3NDs.js +77 -0
  204. package/dist/paths-BhxDUiio.js +43 -0
  205. package/dist/paths-C2XPptKL.js +180 -0
  206. package/dist/paths-DHpqOQPB.js +43 -0
  207. package/dist/paths-DUxER0e-.js +40 -0
  208. package/dist/paths-Dnm60cBZ.js +164 -0
  209. package/dist/pi-embedded-helpers-BkBhYNNX.js +8957 -0
  210. package/dist/pi-embedded-helpers-DUeZHoPx.js +1298 -0
  211. package/dist/pi-embedded-helpers-DlQnQJyX.js +1298 -0
  212. package/dist/pi-model-discovery-BzaLYg2f.js +20 -0
  213. package/dist/pi-model-discovery-loGhFDjp.js +20 -0
  214. package/dist/pi-model-discovery-tRscuQ7_.js +20 -0
  215. package/dist/pi-tools.policy-D_N14UDS.js +233 -0
  216. package/dist/plugin-auto-enable-BZHGEtVT.js +460 -0
  217. package/dist/plugin-auto-enable-V8wa0pT5.js +460 -0
  218. package/dist/plugin-sdk/agents/agent-paths.d.ts +2 -0
  219. package/dist/plugin-sdk/agents/agent-scope.d.ts +37 -0
  220. package/dist/plugin-sdk/agents/anthropic-payload-log.d.ts +16 -0
  221. package/dist/plugin-sdk/agents/apply-patch-update.d.ts +8 -0
  222. package/dist/plugin-sdk/agents/apply-patch.d.ts +24 -0
  223. package/dist/plugin-sdk/agents/atlas-tools.d.ts +44 -0
  224. package/dist/plugin-sdk/agents/audit-log.d.ts +48 -0
  225. package/dist/plugin-sdk/agents/auth-profiles/constants.d.ts +20 -0
  226. package/dist/plugin-sdk/agents/auth-profiles/display.d.ts +7 -0
  227. package/dist/plugin-sdk/agents/auth-profiles/doctor.d.ts +8 -0
  228. package/dist/plugin-sdk/agents/auth-profiles/external-cli-sync.d.ts +7 -0
  229. package/dist/plugin-sdk/agents/auth-profiles/oauth.d.ts +12 -0
  230. package/dist/plugin-sdk/agents/auth-profiles/order.d.ts +8 -0
  231. package/dist/plugin-sdk/agents/auth-profiles/paths.d.ts +4 -0
  232. package/dist/plugin-sdk/agents/auth-profiles/profiles.d.ts +18 -0
  233. package/dist/plugin-sdk/agents/auth-profiles/repair.d.ts +14 -0
  234. package/dist/plugin-sdk/agents/auth-profiles/session-override.d.ts +18 -0
  235. package/dist/plugin-sdk/agents/auth-profiles/store.d.ts +10 -0
  236. package/dist/plugin-sdk/agents/auth-profiles/types.d.ts +60 -0
  237. package/dist/plugin-sdk/agents/auth-profiles/usage.d.ts +47 -0
  238. package/dist/plugin-sdk/agents/auth-profiles.d.ts +11 -0
  239. package/dist/plugin-sdk/agents/bash-process-registry.d.ts +68 -0
  240. package/dist/plugin-sdk/agents/bash-tools.d.ts +4 -0
  241. package/dist/plugin-sdk/agents/bash-tools.exec.d.ts +54 -0
  242. package/dist/plugin-sdk/agents/bash-tools.process.d.ts +7 -0
  243. package/dist/plugin-sdk/agents/bash-tools.shared.d.ts +46 -0
  244. package/dist/plugin-sdk/agents/bedrock-discovery.d.ts +9 -0
  245. package/dist/plugin-sdk/agents/bootstrap-files.d.ts +25 -0
  246. package/dist/plugin-sdk/agents/bootstrap-hooks.d.ts +10 -0
  247. package/dist/plugin-sdk/agents/cache-trace.d.ts +51 -0
  248. package/dist/plugin-sdk/agents/channel-tools.d.ts +27 -0
  249. package/dist/plugin-sdk/agents/chutes-oauth.d.ts +46 -0
  250. package/dist/plugin-sdk/agents/cli-backends.d.ts +8 -0
  251. package/dist/plugin-sdk/agents/cli-credentials.d.ts +82 -0
  252. package/dist/plugin-sdk/agents/cli-runner/helpers.d.ts +76 -0
  253. package/dist/plugin-sdk/agents/cli-runner.d.ts +41 -0
  254. package/dist/plugin-sdk/agents/cli-session.d.ts +3 -0
  255. package/dist/plugin-sdk/agents/cloudflare-ai-gateway.d.ts +22 -0
  256. package/dist/plugin-sdk/agents/context-window-guard.d.ts +24 -0
  257. package/dist/plugin-sdk/agents/context.d.ts +1 -0
  258. package/dist/plugin-sdk/agents/date-time.d.ts +13 -0
  259. package/dist/plugin-sdk/agents/defaults.d.ts +3 -0
  260. package/dist/plugin-sdk/agents/docs-path.d.ts +6 -0
  261. package/dist/plugin-sdk/agents/failover-error.d.ts +33 -0
  262. package/dist/plugin-sdk/agents/identity.d.ts +25 -0
  263. package/dist/plugin-sdk/agents/lanes.d.ts +3 -0
  264. package/dist/plugin-sdk/agents/memory-search.d.ts +66 -0
  265. package/dist/plugin-sdk/agents/minimax-vlm.d.ts +7 -0
  266. package/dist/plugin-sdk/agents/model-auth.d.ts +36 -0
  267. package/dist/plugin-sdk/agents/model-catalog.d.ts +25 -0
  268. package/dist/plugin-sdk/agents/model-compat.d.ts +2 -0
  269. package/dist/plugin-sdk/agents/model-fallback.d.ts +49 -0
  270. package/dist/plugin-sdk/agents/model-selection.d.ts +93 -0
  271. package/dist/plugin-sdk/agents/models-config.d.ts +5 -0
  272. package/dist/plugin-sdk/agents/models-config.providers.d.ts +26 -0
  273. package/dist/plugin-sdk/agents/pi-embedded-block-chunker.d.ts +19 -0
  274. package/dist/plugin-sdk/agents/pi-embedded-helpers/bootstrap.d.ts +28 -0
  275. package/dist/plugin-sdk/agents/pi-embedded-helpers/errors.d.ts +47 -0
  276. package/dist/plugin-sdk/agents/pi-embedded-helpers/google.d.ts +8 -0
  277. package/dist/plugin-sdk/agents/pi-embedded-helpers/images.d.ts +20 -0
  278. package/dist/plugin-sdk/agents/pi-embedded-helpers/messaging-dedupe.d.ts +10 -0
  279. package/dist/plugin-sdk/agents/pi-embedded-helpers/openai.d.ts +9 -0
  280. package/dist/plugin-sdk/agents/pi-embedded-helpers/thinking.d.ts +5 -0
  281. package/dist/plugin-sdk/agents/pi-embedded-helpers/turns.d.ts +20 -0
  282. package/dist/plugin-sdk/agents/pi-embedded-helpers/types.d.ts +5 -0
  283. package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +11 -0
  284. package/dist/plugin-sdk/agents/pi-embedded-messaging.d.ts +8 -0
  285. package/dist/plugin-sdk/agents/pi-embedded-runner/abort.d.ts +1 -0
  286. package/dist/plugin-sdk/agents/pi-embedded-runner/cache-ttl.d.ts +9 -0
  287. package/dist/plugin-sdk/agents/pi-embedded-runner/compact.d.ts +50 -0
  288. package/dist/plugin-sdk/agents/pi-embedded-runner/extensions.d.ts +12 -0
  289. package/dist/plugin-sdk/agents/pi-embedded-runner/extra-params.d.ts +22 -0
  290. package/dist/plugin-sdk/agents/pi-embedded-runner/google.d.ts +39 -0
  291. package/dist/plugin-sdk/agents/pi-embedded-runner/history.d.ts +12 -0
  292. package/dist/plugin-sdk/agents/pi-embedded-runner/lanes.d.ts +3 -0
  293. package/dist/plugin-sdk/agents/pi-embedded-runner/logger.d.ts +1 -0
  294. package/dist/plugin-sdk/agents/pi-embedded-runner/model.d.ts +22 -0
  295. package/dist/plugin-sdk/agents/pi-embedded-runner/run/attempt.d.ts +5 -0
  296. package/dist/plugin-sdk/agents/pi-embedded-runner/run/images.d.ts +83 -0
  297. package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +116 -0
  298. package/dist/plugin-sdk/agents/pi-embedded-runner/run/payloads.d.ts +34 -0
  299. package/dist/plugin-sdk/agents/pi-embedded-runner/run/types.d.ts +133 -0
  300. package/dist/plugin-sdk/agents/pi-embedded-runner/run.d.ts +3 -0
  301. package/dist/plugin-sdk/agents/pi-embedded-runner/runs.d.ts +14 -0
  302. package/dist/plugin-sdk/agents/pi-embedded-runner/sandbox-info.d.ts +4 -0
  303. package/dist/plugin-sdk/agents/pi-embedded-runner/session-manager-cache.d.ts +2 -0
  304. package/dist/plugin-sdk/agents/pi-embedded-runner/session-manager-init.d.ts +17 -0
  305. package/dist/plugin-sdk/agents/pi-embedded-runner/system-prompt.d.ts +51 -0
  306. package/dist/plugin-sdk/agents/pi-embedded-runner/tool-split.d.ts +17 -0
  307. package/dist/plugin-sdk/agents/pi-embedded-runner/types.d.ts +70 -0
  308. package/dist/plugin-sdk/agents/pi-embedded-runner/utils.d.ts +8 -0
  309. package/dist/plugin-sdk/agents/pi-embedded-runner.d.ts +12 -0
  310. package/dist/plugin-sdk/agents/pi-embedded-subscribe.d.ts +20 -0
  311. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.d.ts +2 -0
  312. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.lifecycle.d.ts +8 -0
  313. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.messages.d.ts +12 -0
  314. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.tools.d.ts +18 -0
  315. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.types.d.ts +108 -0
  316. package/dist/plugin-sdk/agents/pi-embedded-subscribe.raw-stream.d.ts +1 -0
  317. package/dist/plugin-sdk/agents/pi-embedded-subscribe.tools.d.ts +6 -0
  318. package/dist/plugin-sdk/agents/pi-embedded-subscribe.types.d.ts +44 -0
  319. package/dist/plugin-sdk/agents/pi-embedded-utils.d.ts +38 -0
  320. package/dist/plugin-sdk/agents/pi-embedded.d.ts +2 -0
  321. package/dist/plugin-sdk/agents/pi-extensions/compaction-safeguard-runtime.d.ts +6 -0
  322. package/dist/plugin-sdk/agents/pi-extensions/context-pruning/runtime.d.ts +9 -0
  323. package/dist/plugin-sdk/agents/pi-extensions/context-pruning/settings.d.ts +44 -0
  324. package/dist/plugin-sdk/agents/pi-extensions/context-pruning/tools.d.ts +2 -0
  325. package/dist/plugin-sdk/agents/pi-model-discovery.d.ts +4 -0
  326. package/dist/plugin-sdk/agents/pi-settings.d.ts +19 -0
  327. package/dist/plugin-sdk/agents/pi-tool-definition-adapter.d.ts +21 -0
  328. package/dist/plugin-sdk/agents/pi-tools.abort.d.ts +2 -0
  329. package/dist/plugin-sdk/agents/pi-tools.before-tool-call.d.ts +25 -0
  330. package/dist/plugin-sdk/agents/pi-tools.d.ts +69 -0
  331. package/dist/plugin-sdk/agents/pi-tools.policy.d.ts +38 -0
  332. package/dist/plugin-sdk/agents/pi-tools.read.d.ts +35 -0
  333. package/dist/plugin-sdk/agents/pi-tools.schema.d.ts +3 -0
  334. package/dist/plugin-sdk/agents/pi-tools.types.d.ts +2 -0
  335. package/dist/plugin-sdk/agents/pty-dsr.d.ts +5 -0
  336. package/dist/plugin-sdk/agents/pty-keys.d.ts +13 -0
  337. package/dist/plugin-sdk/agents/sandbox/browser-bridges.d.ts +5 -0
  338. package/dist/plugin-sdk/agents/sandbox/browser.d.ts +8 -0
  339. package/dist/plugin-sdk/agents/sandbox/config-hash.d.ts +9 -0
  340. package/dist/plugin-sdk/agents/sandbox/config.d.ts +22 -0
  341. package/dist/plugin-sdk/agents/sandbox/constants.d.ts +19 -0
  342. package/dist/plugin-sdk/agents/sandbox/context.d.ts +12 -0
  343. package/dist/plugin-sdk/agents/sandbox/docker.d.ts +28 -0
  344. package/dist/plugin-sdk/agents/sandbox/manage.d.ts +13 -0
  345. package/dist/plugin-sdk/agents/sandbox/prune.d.ts +3 -0
  346. package/dist/plugin-sdk/agents/sandbox/registry.d.ts +30 -0
  347. package/dist/plugin-sdk/agents/sandbox/runtime-status.d.ts +18 -0
  348. package/dist/plugin-sdk/agents/sandbox/shared.d.ts +4 -0
  349. package/dist/plugin-sdk/agents/sandbox/tool-policy.d.ts +4 -0
  350. package/dist/plugin-sdk/agents/sandbox/types.d.ts +73 -0
  351. package/dist/plugin-sdk/agents/sandbox/types.docker.d.ts +25 -0
  352. package/dist/plugin-sdk/agents/sandbox/workspace.d.ts +1 -0
  353. package/dist/plugin-sdk/agents/sandbox-paths.d.ts +21 -0
  354. package/dist/plugin-sdk/agents/sandbox.d.ts +8 -0
  355. package/dist/plugin-sdk/agents/schema/clean-for-gemini.d.ts +2 -0
  356. package/dist/plugin-sdk/agents/schema/typebox.d.ts +14 -0
  357. package/dist/plugin-sdk/agents/session-file-repair.d.ts +11 -0
  358. package/dist/plugin-sdk/agents/session-slug.d.ts +1 -0
  359. package/dist/plugin-sdk/agents/session-tool-result-guard-wrapper.d.ts +14 -0
  360. package/dist/plugin-sdk/agents/session-tool-result-guard.d.ts +21 -0
  361. package/dist/plugin-sdk/agents/session-transcript-repair.d.ts +26 -0
  362. package/dist/plugin-sdk/agents/session-write-lock.d.ts +21 -0
  363. package/dist/plugin-sdk/agents/shell-utils.d.ts +6 -0
  364. package/dist/plugin-sdk/agents/skills/bundled-dir.d.ts +7 -0
  365. package/dist/plugin-sdk/agents/skills/config.d.ts +14 -0
  366. package/dist/plugin-sdk/agents/skills/conflict-detector.d.ts +5 -0
  367. package/dist/plugin-sdk/agents/skills/dependency-manager.d.ts +47 -0
  368. package/dist/plugin-sdk/agents/skills/env-overrides.d.ts +10 -0
  369. package/dist/plugin-sdk/agents/skills/frontmatter.d.ts +6 -0
  370. package/dist/plugin-sdk/agents/skills/plugin-skills.d.ts +5 -0
  371. package/dist/plugin-sdk/agents/skills/refresh.d.ts +19 -0
  372. package/dist/plugin-sdk/agents/skills/serialize.d.ts +1 -0
  373. package/dist/plugin-sdk/agents/skills/types.d.ts +135 -0
  374. package/dist/plugin-sdk/agents/skills/workspace.d.ts +49 -0
  375. package/dist/plugin-sdk/agents/skills.d.ts +11 -0
  376. package/dist/plugin-sdk/agents/subagent-announce-queue.d.ts +22 -0
  377. package/dist/plugin-sdk/agents/subagent-announce.d.ts +28 -0
  378. package/dist/plugin-sdk/agents/subagent-registry.d.ts +35 -0
  379. package/dist/plugin-sdk/agents/subagent-registry.store.d.ts +5 -0
  380. package/dist/plugin-sdk/agents/synthetic-models.d.ts +153 -0
  381. package/dist/plugin-sdk/agents/system-prompt-params.d.ts +29 -0
  382. package/dist/plugin-sdk/agents/system-prompt-report.d.ts +20 -0
  383. package/dist/plugin-sdk/agents/system-prompt.d.ts +75 -0
  384. package/dist/plugin-sdk/agents/task-planner/engine.d.ts +24 -0
  385. package/dist/plugin-sdk/agents/task-planner/store.d.ts +6 -0
  386. package/dist/plugin-sdk/agents/task-planner/types.d.ts +38 -0
  387. package/dist/plugin-sdk/agents/timeout.d.ts +8 -0
  388. package/dist/plugin-sdk/agents/tool-call-id.d.ts +17 -0
  389. package/dist/plugin-sdk/agents/tool-display.d.ts +15 -0
  390. package/dist/plugin-sdk/agents/tool-images.d.ts +19 -0
  391. package/dist/plugin-sdk/agents/tool-policy.d.ts +39 -0
  392. package/dist/plugin-sdk/agents/tool-summaries.d.ts +2 -0
  393. package/dist/plugin-sdk/agents/tools/agent-step.d.ts +12 -0
  394. package/dist/plugin-sdk/agents/tools/agents-list-tool.d.ts +6 -0
  395. package/dist/plugin-sdk/agents/tools/browser-tool.d.ts +5 -0
  396. package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +50 -0
  397. package/dist/plugin-sdk/agents/tools/canvas-tool.d.ts +2 -0
  398. package/dist/plugin-sdk/agents/tools/common.d.ts +52 -0
  399. package/dist/plugin-sdk/agents/tools/cron-tool.d.ts +6 -0
  400. package/dist/plugin-sdk/agents/tools/discord-actions-guild.d.ts +4 -0
  401. package/dist/plugin-sdk/agents/tools/discord-actions-messaging.d.ts +4 -0
  402. package/dist/plugin-sdk/agents/tools/discord-actions-moderation.d.ts +4 -0
  403. package/dist/plugin-sdk/agents/tools/discord-actions-presence.d.ts +4 -0
  404. package/dist/plugin-sdk/agents/tools/discord-actions.d.ts +3 -0
  405. package/dist/plugin-sdk/agents/tools/document-tool.d.ts +4 -0
  406. package/dist/plugin-sdk/agents/tools/file-edit-tool.d.ts +4 -0
  407. package/dist/plugin-sdk/agents/tools/gateway-tool.d.ts +6 -0
  408. package/dist/plugin-sdk/agents/tools/gateway.d.ts +14 -0
  409. package/dist/plugin-sdk/agents/tools/image-tool.d.ts +26 -0
  410. package/dist/plugin-sdk/agents/tools/image-tool.helpers.d.ts +21 -0
  411. package/dist/plugin-sdk/agents/tools/memory-tool.d.ts +10 -0
  412. package/dist/plugin-sdk/agents/tools/message-tool.d.ts +18 -0
  413. package/dist/plugin-sdk/agents/tools/nodes-tool.d.ts +6 -0
  414. package/dist/plugin-sdk/agents/tools/nodes-utils.d.ts +20 -0
  415. package/dist/plugin-sdk/agents/tools/session-status-tool.d.ts +6 -0
  416. package/dist/plugin-sdk/agents/tools/sessions-announce-target.d.ts +5 -0
  417. package/dist/plugin-sdk/agents/tools/sessions-helpers.d.ts +90 -0
  418. package/dist/plugin-sdk/agents/tools/sessions-history-tool.d.ts +5 -0
  419. package/dist/plugin-sdk/agents/tools/sessions-list-tool.d.ts +5 -0
  420. package/dist/plugin-sdk/agents/tools/sessions-send-helpers.d.ts +34 -0
  421. package/dist/plugin-sdk/agents/tools/sessions-send-tool.a2a.d.ts +12 -0
  422. package/dist/plugin-sdk/agents/tools/sessions-send-tool.d.ts +7 -0
  423. package/dist/plugin-sdk/agents/tools/sessions-spawn-tool.d.ts +15 -0
  424. package/dist/plugin-sdk/agents/tools/slack-actions.d.ts +15 -0
  425. package/dist/plugin-sdk/agents/tools/task-planner-tool.d.ts +5 -0
  426. package/dist/plugin-sdk/agents/tools/telegram-actions.d.ts +9 -0
  427. package/dist/plugin-sdk/agents/tools/tts-tool.d.ts +7 -0
  428. package/dist/plugin-sdk/agents/tools/web-fetch-utils.d.ts +18 -0
  429. package/dist/plugin-sdk/agents/tools/web-fetch.d.ts +25 -0
  430. package/dist/plugin-sdk/agents/tools/web-search.d.ts +22 -0
  431. package/dist/plugin-sdk/agents/tools/web-shared.d.ts +17 -0
  432. package/dist/plugin-sdk/agents/tools/web-tools.d.ts +2 -0
  433. package/dist/plugin-sdk/agents/tools/whatsapp-actions.d.ts +3 -0
  434. package/dist/plugin-sdk/agents/transcript-policy.d.ts +23 -0
  435. package/dist/plugin-sdk/agents/usage.d.ts +35 -0
  436. package/dist/plugin-sdk/agents/venice-models.d.ts +238 -0
  437. package/dist/plugin-sdk/agents/workspace-run.d.ts +18 -0
  438. package/dist/plugin-sdk/agents/workspace-templates.d.ts +6 -0
  439. package/dist/plugin-sdk/agents/workspace.d.ts +33 -0
  440. package/dist/plugin-sdk/auto-reply/chunk.d.ts +45 -0
  441. package/dist/plugin-sdk/auto-reply/command-auth.d.ts +17 -0
  442. package/dist/plugin-sdk/auto-reply/command-detection.d.ts +13 -0
  443. package/dist/plugin-sdk/auto-reply/commands-args.d.ts +3 -0
  444. package/dist/plugin-sdk/auto-reply/commands-registry.d.ts +54 -0
  445. package/dist/plugin-sdk/auto-reply/commands-registry.data.d.ts +3 -0
  446. package/dist/plugin-sdk/auto-reply/commands-registry.types.d.ts +66 -0
  447. package/dist/plugin-sdk/auto-reply/dispatch.d.ts +27 -0
  448. package/dist/plugin-sdk/auto-reply/envelope.d.ts +59 -0
  449. package/dist/plugin-sdk/auto-reply/group-activation.d.ts +6 -0
  450. package/dist/plugin-sdk/auto-reply/heartbeat.d.ts +26 -0
  451. package/dist/plugin-sdk/auto-reply/inbound-debounce.d.ts +16 -0
  452. package/dist/plugin-sdk/auto-reply/media-note.d.ts +2 -0
  453. package/dist/plugin-sdk/auto-reply/model.d.ts +8 -0
  454. package/dist/plugin-sdk/auto-reply/reply/abort.d.ts +20 -0
  455. package/dist/plugin-sdk/auto-reply/reply/agent-runner-execution.d.ts +49 -0
  456. package/dist/plugin-sdk/auto-reply/reply/agent-runner-helpers.d.ts +17 -0
  457. package/dist/plugin-sdk/auto-reply/reply/agent-runner-memory.d.ts +20 -0
  458. package/dist/plugin-sdk/auto-reply/reply/agent-runner-payloads.d.ts +25 -0
  459. package/dist/plugin-sdk/auto-reply/reply/agent-runner-utils.d.ts +30 -0
  460. package/dist/plugin-sdk/auto-reply/reply/agent-runner.d.ts +38 -0
  461. package/dist/plugin-sdk/auto-reply/reply/bash-command.d.ts +19 -0
  462. package/dist/plugin-sdk/auto-reply/reply/block-reply-coalescer.d.ts +15 -0
  463. package/dist/plugin-sdk/auto-reply/reply/block-reply-pipeline.d.ts +31 -0
  464. package/dist/plugin-sdk/auto-reply/reply/block-streaming.d.ts +22 -0
  465. package/dist/plugin-sdk/auto-reply/reply/body.d.ts +11 -0
  466. package/dist/plugin-sdk/auto-reply/reply/commands-allowlist.d.ts +2 -0
  467. package/dist/plugin-sdk/auto-reply/reply/commands-approve.d.ts +2 -0
  468. package/dist/plugin-sdk/auto-reply/reply/commands-bash.d.ts +2 -0
  469. package/dist/plugin-sdk/auto-reply/reply/commands-compact.d.ts +2 -0
  470. package/dist/plugin-sdk/auto-reply/reply/commands-config.d.ts +3 -0
  471. package/dist/plugin-sdk/auto-reply/reply/commands-context-report.d.ts +3 -0
  472. package/dist/plugin-sdk/auto-reply/reply/commands-context.d.ts +12 -0
  473. package/dist/plugin-sdk/auto-reply/reply/commands-core.d.ts +2 -0
  474. package/dist/plugin-sdk/auto-reply/reply/commands-info.d.ts +10 -0
  475. package/dist/plugin-sdk/auto-reply/reply/commands-models.d.ts +23 -0
  476. package/dist/plugin-sdk/auto-reply/reply/commands-plugin.d.ts +13 -0
  477. package/dist/plugin-sdk/auto-reply/reply/commands-session.d.ts +7 -0
  478. package/dist/plugin-sdk/auto-reply/reply/commands-status.d.ts +24 -0
  479. package/dist/plugin-sdk/auto-reply/reply/commands-subagents.d.ts +13 -0
  480. package/dist/plugin-sdk/auto-reply/reply/commands-tts.d.ts +2 -0
  481. package/dist/plugin-sdk/auto-reply/reply/commands-types.d.ts +60 -0
  482. package/dist/plugin-sdk/auto-reply/reply/commands.d.ts +4 -0
  483. package/dist/plugin-sdk/auto-reply/reply/config-commands.d.ts +15 -0
  484. package/dist/plugin-sdk/auto-reply/reply/config-value.d.ts +4 -0
  485. package/dist/plugin-sdk/auto-reply/reply/debug-commands.d.ts +16 -0
  486. package/dist/plugin-sdk/auto-reply/reply/directive-handling.auth.d.ts +19 -0
  487. package/dist/plugin-sdk/auto-reply/reply/directive-handling.d.ts +6 -0
  488. package/dist/plugin-sdk/auto-reply/reply/directive-handling.fast-lane.d.ts +47 -0
  489. package/dist/plugin-sdk/auto-reply/reply/directive-handling.impl.d.ts +36 -0
  490. package/dist/plugin-sdk/auto-reply/reply/directive-handling.model-picker.d.ts +13 -0
  491. package/dist/plugin-sdk/auto-reply/reply/directive-handling.model.d.ts +42 -0
  492. package/dist/plugin-sdk/auto-reply/reply/directive-handling.parse.d.ts +62 -0
  493. package/dist/plugin-sdk/auto-reply/reply/directive-handling.persist.d.ts +37 -0
  494. package/dist/plugin-sdk/auto-reply/reply/directive-handling.queue-validation.d.ts +10 -0
  495. package/dist/plugin-sdk/auto-reply/reply/directive-handling.shared.d.ts +16 -0
  496. package/dist/plugin-sdk/auto-reply/reply/directives.d.ts +38 -0
  497. package/dist/plugin-sdk/auto-reply/reply/dispatch-from-config.d.ts +16 -0
  498. package/dist/plugin-sdk/auto-reply/reply/exec/directive.d.ts +20 -0
  499. package/dist/plugin-sdk/auto-reply/reply/exec.d.ts +1 -0
  500. package/dist/plugin-sdk/auto-reply/reply/followup-runner.d.ts +16 -0
  501. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-apply.d.ts +64 -0
  502. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-utils.d.ts +2 -0
  503. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +91 -0
  504. package/dist/plugin-sdk/auto-reply/reply/get-reply-inline-actions.d.ts +59 -0
  505. package/dist/plugin-sdk/auto-reply/reply/get-reply-run.d.ts +69 -0
  506. package/dist/plugin-sdk/auto-reply/reply/get-reply.d.ts +4 -0
  507. package/dist/plugin-sdk/auto-reply/reply/groups.d.ts +16 -0
  508. package/dist/plugin-sdk/auto-reply/reply/history.d.ts +72 -0
  509. package/dist/plugin-sdk/auto-reply/reply/inbound-context.d.ts +8 -0
  510. package/dist/plugin-sdk/auto-reply/reply/inbound-dedupe.d.ts +8 -0
  511. package/dist/plugin-sdk/auto-reply/reply/inbound-sender-meta.d.ts +5 -0
  512. package/dist/plugin-sdk/auto-reply/reply/inbound-text.d.ts +1 -0
  513. package/dist/plugin-sdk/auto-reply/reply/line-directives.d.ts +22 -0
  514. package/dist/plugin-sdk/auto-reply/reply/memory-flush.d.ts +23 -0
  515. package/dist/plugin-sdk/auto-reply/reply/mentions.d.ts +18 -0
  516. package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +61 -0
  517. package/dist/plugin-sdk/auto-reply/reply/normalize-reply.d.ts +13 -0
  518. package/dist/plugin-sdk/auto-reply/reply/provider-dispatcher.d.ts +19 -0
  519. package/dist/plugin-sdk/auto-reply/reply/queue/cleanup.d.ts +6 -0
  520. package/dist/plugin-sdk/auto-reply/reply/queue/directive.d.ts +15 -0
  521. package/dist/plugin-sdk/auto-reply/reply/queue/drain.d.ts +2 -0
  522. package/dist/plugin-sdk/auto-reply/reply/queue/enqueue.d.ts +3 -0
  523. package/dist/plugin-sdk/auto-reply/reply/queue/normalize.d.ts +3 -0
  524. package/dist/plugin-sdk/auto-reply/reply/queue/settings.d.ts +2 -0
  525. package/dist/plugin-sdk/auto-reply/reply/queue/state.d.ts +19 -0
  526. package/dist/plugin-sdk/auto-reply/reply/queue/types.d.ts +84 -0
  527. package/dist/plugin-sdk/auto-reply/reply/queue.d.ts +8 -0
  528. package/dist/plugin-sdk/auto-reply/reply/reply-directives.d.ts +14 -0
  529. package/dist/plugin-sdk/auto-reply/reply/reply-dispatcher.d.ts +51 -0
  530. package/dist/plugin-sdk/auto-reply/reply/reply-elevated.d.ts +23 -0
  531. package/dist/plugin-sdk/auto-reply/reply/reply-inline.d.ts +8 -0
  532. package/dist/plugin-sdk/auto-reply/reply/reply-payloads.d.ts +22 -0
  533. package/dist/plugin-sdk/auto-reply/reply/reply-reference.d.ts +20 -0
  534. package/dist/plugin-sdk/auto-reply/reply/reply-tags.d.ts +6 -0
  535. package/dist/plugin-sdk/auto-reply/reply/reply-threading.d.ts +9 -0
  536. package/dist/plugin-sdk/auto-reply/reply/response-prefix-template.d.ts +51 -0
  537. package/dist/plugin-sdk/auto-reply/reply/route-reply.d.ts +56 -0
  538. package/dist/plugin-sdk/auto-reply/reply/session-reset-model.d.ts +24 -0
  539. package/dist/plugin-sdk/auto-reply/reply/session-updates.d.ts +34 -0
  540. package/dist/plugin-sdk/auto-reply/reply/session-usage.d.ts +13 -0
  541. package/dist/plugin-sdk/auto-reply/reply/session.d.ts +26 -0
  542. package/dist/plugin-sdk/auto-reply/reply/stage-sandbox-media.d.ts +9 -0
  543. package/dist/plugin-sdk/auto-reply/reply/streaming-directives.d.ts +10 -0
  544. package/dist/plugin-sdk/auto-reply/reply/subagents-utils.d.ts +9 -0
  545. package/dist/plugin-sdk/auto-reply/reply/typing-mode.d.ts +27 -0
  546. package/dist/plugin-sdk/auto-reply/reply/typing.d.ts +18 -0
  547. package/dist/plugin-sdk/auto-reply/reply/untrusted-context.d.ts +1 -0
  548. package/dist/plugin-sdk/auto-reply/reply.d.ts +6 -0
  549. package/dist/plugin-sdk/auto-reply/send-policy.d.ts +6 -0
  550. package/dist/plugin-sdk/auto-reply/skill-commands.d.ts +18 -0
  551. package/dist/plugin-sdk/auto-reply/status.d.ts +53 -0
  552. package/dist/plugin-sdk/auto-reply/templating.d.ts +140 -0
  553. package/dist/plugin-sdk/auto-reply/thinking.d.ts +22 -0
  554. package/dist/plugin-sdk/auto-reply/tokens.d.ts +3 -0
  555. package/dist/plugin-sdk/auto-reply/tool-meta.d.ts +8 -0
  556. package/dist/plugin-sdk/auto-reply/types.d.ts +57 -0
  557. package/dist/plugin-sdk/browser/bridge-server.d.ts +17 -0
  558. package/dist/plugin-sdk/browser/cdp.d.ts +123 -0
  559. package/dist/plugin-sdk/browser/cdp.helpers.d.ts +11 -0
  560. package/dist/plugin-sdk/browser/chrome.d.ts +20 -0
  561. package/dist/plugin-sdk/browser/chrome.executables.d.ts +9 -0
  562. package/dist/plugin-sdk/browser/chrome.profile-decoration.d.ts +10 -0
  563. package/dist/plugin-sdk/browser/client-actions-core.d.ts +143 -0
  564. package/dist/plugin-sdk/browser/client-actions-observe.d.ts +68 -0
  565. package/dist/plugin-sdk/browser/client-actions-state.d.ts +90 -0
  566. package/dist/plugin-sdk/browser/client-actions-types.d.ts +18 -0
  567. package/dist/plugin-sdk/browser/client-actions.d.ts +4 -0
  568. package/dist/plugin-sdk/browser/client-fetch.d.ts +3 -0
  569. package/dist/plugin-sdk/browser/client.d.ts +147 -0
  570. package/dist/plugin-sdk/browser/config.d.ts +39 -0
  571. package/dist/plugin-sdk/browser/constants.d.ts +8 -0
  572. package/dist/plugin-sdk/browser/control-service.d.ts +5 -0
  573. package/dist/plugin-sdk/browser/extension-relay.d.ts +15 -0
  574. package/dist/plugin-sdk/browser/profiles-service.d.ts +25 -0
  575. package/dist/plugin-sdk/browser/profiles.d.ts +30 -0
  576. package/dist/plugin-sdk/browser/pw-ai-module.d.ts +6 -0
  577. package/dist/plugin-sdk/browser/pw-ai.d.ts +2 -0
  578. package/dist/plugin-sdk/browser/pw-role-snapshot.d.ts +35 -0
  579. package/dist/plugin-sdk/browser/pw-session.d.ts +135 -0
  580. package/dist/plugin-sdk/browser/pw-tools-core.activity.d.ts +21 -0
  581. package/dist/plugin-sdk/browser/pw-tools-core.d.ts +8 -0
  582. package/dist/plugin-sdk/browser/pw-tools-core.downloads.d.ts +34 -0
  583. package/dist/plugin-sdk/browser/pw-tools-core.interactions.d.ts +112 -0
  584. package/dist/plugin-sdk/browser/pw-tools-core.responses.d.ts +13 -0
  585. package/dist/plugin-sdk/browser/pw-tools-core.shared.d.ts +6 -0
  586. package/dist/plugin-sdk/browser/pw-tools-core.snapshot.d.ts +64 -0
  587. package/dist/plugin-sdk/browser/pw-tools-core.state.d.ts +46 -0
  588. package/dist/plugin-sdk/browser/pw-tools-core.storage.d.ts +47 -0
  589. package/dist/plugin-sdk/browser/pw-tools-core.trace.d.ts +12 -0
  590. package/dist/plugin-sdk/browser/routes/agent.act.d.ts +3 -0
  591. package/dist/plugin-sdk/browser/routes/agent.act.shared.d.ts +10 -0
  592. package/dist/plugin-sdk/browser/routes/agent.d.ts +3 -0
  593. package/dist/plugin-sdk/browser/routes/agent.debug.d.ts +3 -0
  594. package/dist/plugin-sdk/browser/routes/agent.shared.d.ts +9 -0
  595. package/dist/plugin-sdk/browser/routes/agent.snapshot.d.ts +3 -0
  596. package/dist/plugin-sdk/browser/routes/agent.storage.d.ts +3 -0
  597. package/dist/plugin-sdk/browser/routes/basic.d.ts +3 -0
  598. package/dist/plugin-sdk/browser/routes/dispatcher.d.ts +15 -0
  599. package/dist/plugin-sdk/browser/routes/index.d.ts +3 -0
  600. package/dist/plugin-sdk/browser/routes/tabs.d.ts +3 -0
  601. package/dist/plugin-sdk/browser/routes/types.d.ts +15 -0
  602. package/dist/plugin-sdk/browser/routes/utils.d.ts +15 -0
  603. package/dist/plugin-sdk/browser/screenshot.d.ts +9 -0
  604. package/dist/plugin-sdk/browser/server-context.d.ts +3 -0
  605. package/dist/plugin-sdk/browser/server-context.types.d.ts +78 -0
  606. package/dist/plugin-sdk/browser/target-id.d.ts +11 -0
  607. package/dist/plugin-sdk/browser/trash.d.ts +1 -0
  608. package/dist/plugin-sdk/channel-web.d.ts +6 -0
  609. package/dist/plugin-sdk/channels/ack-reactions.d.ts +29 -0
  610. package/dist/plugin-sdk/channels/allowlist-match.d.ts +10 -0
  611. package/dist/plugin-sdk/channels/allowlists/resolve-utils.d.ts +6 -0
  612. package/dist/plugin-sdk/channels/channel-config.d.ts +39 -0
  613. package/dist/plugin-sdk/channels/chat-type.d.ts +2 -0
  614. package/dist/plugin-sdk/channels/command-gating.d.ts +20 -0
  615. package/dist/plugin-sdk/channels/conversation-label.d.ts +2 -0
  616. package/dist/plugin-sdk/channels/dock.d.ts +36 -0
  617. package/dist/plugin-sdk/channels/location.d.ts +21 -0
  618. package/dist/plugin-sdk/channels/logging.d.ts +20 -0
  619. package/dist/plugin-sdk/channels/mention-gating.d.ts +27 -0
  620. package/dist/plugin-sdk/channels/plugins/actions/discord/handle-action.d.ts +3 -0
  621. package/dist/plugin-sdk/channels/plugins/actions/discord/handle-action.guild-admin.d.ts +9 -0
  622. package/dist/plugin-sdk/channels/plugins/actions/discord.d.ts +2 -0
  623. package/dist/plugin-sdk/channels/plugins/actions/signal.d.ts +2 -0
  624. package/dist/plugin-sdk/channels/plugins/actions/telegram.d.ts +2 -0
  625. package/dist/plugin-sdk/channels/plugins/agent-tools/whatsapp-login.d.ts +2 -0
  626. package/dist/plugin-sdk/channels/plugins/allowlist-match.d.ts +2 -0
  627. package/dist/plugin-sdk/channels/plugins/bluebubbles-actions.d.ts +48 -0
  628. package/dist/plugin-sdk/channels/plugins/channel-config.d.ts +2 -0
  629. package/dist/plugin-sdk/channels/plugins/config-helpers.d.ts +14 -0
  630. package/dist/plugin-sdk/channels/plugins/config-schema.d.ts +3 -0
  631. package/dist/plugin-sdk/channels/plugins/config-writes.d.ts +7 -0
  632. package/dist/plugin-sdk/channels/plugins/directory-config.d.ts +16 -0
  633. package/dist/plugin-sdk/channels/plugins/group-mentions.d.ts +28 -0
  634. package/dist/plugin-sdk/channels/plugins/helpers.d.ts +8 -0
  635. package/dist/plugin-sdk/channels/plugins/index.d.ts +8 -0
  636. package/dist/plugin-sdk/channels/plugins/media-limits.d.ts +9 -0
  637. package/dist/plugin-sdk/channels/plugins/message-action-names.d.ts +2 -0
  638. package/dist/plugin-sdk/channels/plugins/message-actions.d.ts +7 -0
  639. package/dist/plugin-sdk/channels/plugins/normalize/discord.d.ts +2 -0
  640. package/dist/plugin-sdk/channels/plugins/normalize/imessage.d.ts +2 -0
  641. package/dist/plugin-sdk/channels/plugins/normalize/signal.d.ts +2 -0
  642. package/dist/plugin-sdk/channels/plugins/normalize/slack.d.ts +2 -0
  643. package/dist/plugin-sdk/channels/plugins/normalize/telegram.d.ts +2 -0
  644. package/dist/plugin-sdk/channels/plugins/normalize/whatsapp.d.ts +2 -0
  645. package/dist/plugin-sdk/channels/plugins/onboarding/channel-access.d.ts +31 -0
  646. package/dist/plugin-sdk/channels/plugins/onboarding/discord.d.ts +2 -0
  647. package/dist/plugin-sdk/channels/plugins/onboarding/helpers.d.ts +3 -0
  648. package/dist/plugin-sdk/channels/plugins/onboarding/imessage.d.ts +2 -0
  649. package/dist/plugin-sdk/channels/plugins/onboarding/signal.d.ts +2 -0
  650. package/dist/plugin-sdk/channels/plugins/onboarding/slack.d.ts +2 -0
  651. package/dist/plugin-sdk/channels/plugins/onboarding/telegram.d.ts +2 -0
  652. package/dist/plugin-sdk/channels/plugins/onboarding/whatsapp.d.ts +2 -0
  653. package/dist/plugin-sdk/channels/plugins/onboarding-types.d.ts +77 -0
  654. package/dist/plugin-sdk/channels/plugins/outbound/load.d.ts +2 -0
  655. package/dist/plugin-sdk/channels/plugins/pairing-message.d.ts +1 -0
  656. package/dist/plugin-sdk/channels/plugins/pairing.d.ts +16 -0
  657. package/dist/plugin-sdk/channels/plugins/setup-helpers.d.ts +13 -0
  658. package/dist/plugin-sdk/channels/plugins/status-issues/bluebubbles.d.ts +2 -0
  659. package/dist/plugin-sdk/channels/plugins/status-issues/discord.d.ts +2 -0
  660. package/dist/plugin-sdk/channels/plugins/status-issues/shared.d.ts +10 -0
  661. package/dist/plugin-sdk/channels/plugins/status-issues/telegram.d.ts +2 -0
  662. package/dist/plugin-sdk/channels/plugins/status-issues/whatsapp.d.ts +2 -0
  663. package/dist/plugin-sdk/channels/plugins/types.adapters.d.ts +294 -0
  664. package/dist/plugin-sdk/channels/plugins/types.core.d.ts +311 -0
  665. package/dist/plugin-sdk/channels/plugins/types.d.ts +6 -0
  666. package/dist/plugin-sdk/channels/plugins/types.plugin.d.ts +53 -0
  667. package/dist/plugin-sdk/channels/plugins/whatsapp-heartbeat.d.ts +11 -0
  668. package/dist/plugin-sdk/channels/registry.d.ts +16 -0
  669. package/dist/plugin-sdk/channels/reply-prefix.d.ts +24 -0
  670. package/dist/plugin-sdk/channels/sender-label.d.ts +9 -0
  671. package/dist/plugin-sdk/channels/session.d.ts +18 -0
  672. package/dist/plugin-sdk/channels/targets.d.ts +25 -0
  673. package/dist/plugin-sdk/channels/typing.d.ts +12 -0
  674. package/dist/plugin-sdk/channels/web/index.d.ts +1 -0
  675. package/dist/plugin-sdk/cli/cli-name.d.ts +3 -0
  676. package/dist/plugin-sdk/cli/cli-utils.d.ts +18 -0
  677. package/dist/plugin-sdk/cli/command-format.d.ts +1 -0
  678. package/dist/plugin-sdk/cli/deps.d.ts +18 -0
  679. package/dist/plugin-sdk/cli/memory-cli.d.ts +12 -0
  680. package/dist/plugin-sdk/cli/nodes-camera.d.ts +26 -0
  681. package/dist/plugin-sdk/cli/nodes-canvas.d.ts +10 -0
  682. package/dist/plugin-sdk/cli/nodes-run.d.ts +3 -0
  683. package/dist/plugin-sdk/cli/nodes-screen.d.ts +18 -0
  684. package/dist/plugin-sdk/cli/parse-duration.d.ts +4 -0
  685. package/dist/plugin-sdk/cli/parse-timeout.d.ts +1 -0
  686. package/dist/plugin-sdk/cli/profile-utils.d.ts +2 -0
  687. package/dist/plugin-sdk/cli/progress.d.ts +24 -0
  688. package/dist/plugin-sdk/cli/wait.d.ts +1 -0
  689. package/dist/plugin-sdk/commands/agent/types.d.ts +75 -0
  690. package/dist/plugin-sdk/commands/daemon-runtime.d.ts +8 -0
  691. package/dist/plugin-sdk/commands/health.d.ts +63 -0
  692. package/dist/plugin-sdk/commands/oauth-flow.d.ts +21 -0
  693. package/dist/plugin-sdk/commands/onboard-helpers.d.ts +81 -0
  694. package/dist/plugin-sdk/commands/onboard-types.d.ts +67 -0
  695. package/dist/plugin-sdk/commands/signal-install.d.ts +8 -0
  696. package/dist/plugin-sdk/compat/legacy-names.d.ts +8 -0
  697. package/dist/plugin-sdk/config/agent-dirs.d.ts +14 -0
  698. package/dist/plugin-sdk/config/agent-limits.d.ts +5 -0
  699. package/dist/plugin-sdk/config/cache-utils.d.ts +6 -0
  700. package/dist/plugin-sdk/config/channel-capabilities.d.ts +6 -0
  701. package/dist/plugin-sdk/config/commands.d.ts +16 -0
  702. package/dist/plugin-sdk/config/config-paths.d.ts +10 -0
  703. package/dist/plugin-sdk/config/config.d.ts +7 -0
  704. package/dist/plugin-sdk/config/defaults.d.ts +18 -0
  705. package/dist/plugin-sdk/config/env-substitution.d.ts +35 -0
  706. package/dist/plugin-sdk/config/env-vars.d.ts +2 -0
  707. package/dist/plugin-sdk/config/group-policy.d.ts +44 -0
  708. package/dist/plugin-sdk/config/includes.d.ts +32 -0
  709. package/dist/plugin-sdk/config/io.d.ts +36 -0
  710. package/dist/plugin-sdk/config/legacy-migrate.d.ts +5 -0
  711. package/dist/plugin-sdk/config/legacy.d.ts +6 -0
  712. package/dist/plugin-sdk/config/legacy.migrations.d.ts +1 -0
  713. package/dist/plugin-sdk/config/legacy.migrations.part-1.d.ts +2 -0
  714. package/dist/plugin-sdk/config/legacy.migrations.part-2.d.ts +2 -0
  715. package/dist/plugin-sdk/config/legacy.migrations.part-3.d.ts +2 -0
  716. package/dist/plugin-sdk/config/legacy.rules.d.ts +2 -0
  717. package/dist/plugin-sdk/config/legacy.shared.d.ts +18 -0
  718. package/dist/plugin-sdk/config/markdown-tables.d.ts +7 -0
  719. package/dist/plugin-sdk/config/merge-config.d.ts +7 -0
  720. package/dist/plugin-sdk/config/normalize-paths.d.ts +8 -0
  721. package/dist/plugin-sdk/config/paths.d.ts +57 -0
  722. package/dist/plugin-sdk/config/port-defaults.d.ts +13 -0
  723. package/dist/plugin-sdk/config/runtime-overrides.d.ts +15 -0
  724. package/dist/plugin-sdk/config/sessions/group.d.ts +11 -0
  725. package/dist/plugin-sdk/config/sessions/main-session.d.ts +43 -0
  726. package/dist/plugin-sdk/config/sessions/metadata.d.ts +16 -0
  727. package/dist/plugin-sdk/config/sessions/paths.d.ts +11 -0
  728. package/dist/plugin-sdk/config/sessions/reset.d.ts +43 -0
  729. package/dist/plugin-sdk/config/sessions/session-key.d.ts +8 -0
  730. package/dist/plugin-sdk/config/sessions/store.d.ts +38 -0
  731. package/dist/plugin-sdk/config/sessions/transcript.d.ts +18 -0
  732. package/dist/plugin-sdk/config/sessions/types.d.ts +146 -0
  733. package/dist/plugin-sdk/config/sessions.d.ts +9 -0
  734. package/dist/plugin-sdk/config/talk.d.ts +11 -0
  735. package/dist/plugin-sdk/config/telegram-custom-commands.d.ts +24 -0
  736. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +254 -0
  737. package/dist/plugin-sdk/config/types.agents.d.ts +77 -0
  738. package/dist/plugin-sdk/config/types.approvals.d.ts +26 -0
  739. package/dist/plugin-sdk/config/types.atlas.d.ts +108 -0
  740. package/dist/plugin-sdk/config/types.auth.d.ts +28 -0
  741. package/dist/plugin-sdk/config/types.base.d.ts +149 -0
  742. package/dist/plugin-sdk/config/types.browser.d.ts +41 -0
  743. package/dist/plugin-sdk/config/types.channels.d.ts +34 -0
  744. package/dist/plugin-sdk/config/types.cron.d.ts +5 -0
  745. package/dist/plugin-sdk/config/types.d.ts +29 -0
  746. package/dist/plugin-sdk/config/types.discord.d.ts +151 -0
  747. package/dist/plugin-sdk/config/types.gateway.d.ts +224 -0
  748. package/dist/plugin-sdk/config/types.googlechat.d.ts +100 -0
  749. package/dist/plugin-sdk/config/types.hooks.d.ts +106 -0
  750. package/dist/plugin-sdk/config/types.imessage.d.ts +71 -0
  751. package/dist/plugin-sdk/config/types.memory.d.ts +39 -0
  752. package/dist/plugin-sdk/config/types.messages.d.ts +106 -0
  753. package/dist/plugin-sdk/config/types.models.d.ts +47 -0
  754. package/dist/plugin-sdk/config/types.msteams.d.ts +101 -0
  755. package/dist/plugin-sdk/config/types.node-host.d.ts +10 -0
  756. package/dist/plugin-sdk/config/types.plugins.d.ts +32 -0
  757. package/dist/plugin-sdk/config/types.queue.d.ts +13 -0
  758. package/dist/plugin-sdk/config/types.sandbox.d.ts +76 -0
  759. package/dist/plugin-sdk/config/types.signal.d.ts +86 -0
  760. package/dist/plugin-sdk/config/types.skills.d.ts +28 -0
  761. package/dist/plugin-sdk/config/types.slack.d.ts +138 -0
  762. package/dist/plugin-sdk/config/types.telegram.d.ts +160 -0
  763. package/dist/plugin-sdk/config/types.tools.d.ts +477 -0
  764. package/dist/plugin-sdk/config/types.tts.d.ts +78 -0
  765. package/dist/plugin-sdk/config/types.whatsapp.d.ts +157 -0
  766. package/dist/plugin-sdk/config/validation.d.ts +17 -0
  767. package/dist/plugin-sdk/config/version.d.ts +8 -0
  768. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +245 -0
  769. package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +831 -0
  770. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +494 -0
  771. package/dist/plugin-sdk/config/zod-schema.approvals.d.ts +15 -0
  772. package/dist/plugin-sdk/config/zod-schema.channels.d.ts +6 -0
  773. package/dist/plugin-sdk/config/zod-schema.core.d.ts +647 -0
  774. package/dist/plugin-sdk/config/zod-schema.d.ts +3092 -0
  775. package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +78 -0
  776. package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +2761 -0
  777. package/dist/plugin-sdk/config/zod-schema.providers-whatsapp.d.ts +231 -0
  778. package/dist/plugin-sdk/config/zod-schema.providers.d.ts +1662 -0
  779. package/dist/plugin-sdk/config/zod-schema.session.d.ts +183 -0
  780. package/dist/plugin-sdk/cron/delivery.d.ts +9 -0
  781. package/dist/plugin-sdk/cron/normalize.d.ts +9 -0
  782. package/dist/plugin-sdk/cron/parse.d.ts +1 -0
  783. package/dist/plugin-sdk/cron/payload-migration.d.ts +3 -0
  784. package/dist/plugin-sdk/cron/schedule.d.ts +2 -0
  785. package/dist/plugin-sdk/cron/service/jobs.d.ts +13 -0
  786. package/dist/plugin-sdk/cron/service/locked.d.ts +2 -0
  787. package/dist/plugin-sdk/cron/service/normalize.d.ts +17 -0
  788. package/dist/plugin-sdk/cron/service/ops.d.ts +43 -0
  789. package/dist/plugin-sdk/cron/service/state.d.ts +96 -0
  790. package/dist/plugin-sdk/cron/service/store.d.ts +9 -0
  791. package/dist/plugin-sdk/cron/service/timer.d.ts +23 -0
  792. package/dist/plugin-sdk/cron/service.d.ts +48 -0
  793. package/dist/plugin-sdk/cron/store.d.ts +6 -0
  794. package/dist/plugin-sdk/cron/types.d.ts +91 -0
  795. package/dist/plugin-sdk/daemon/constants.d.ts +30 -0
  796. package/dist/plugin-sdk/discord/accounts.d.ts +17 -0
  797. package/dist/plugin-sdk/discord/api.d.ts +11 -0
  798. package/dist/plugin-sdk/discord/audit.d.ts +29 -0
  799. package/dist/plugin-sdk/discord/chunk.d.ts +20 -0
  800. package/dist/plugin-sdk/discord/directory-live.d.ts +4 -0
  801. package/dist/plugin-sdk/discord/gateway-logging.d.ts +8 -0
  802. package/dist/plugin-sdk/discord/monitor/allow-list.d.ts +137 -0
  803. package/dist/plugin-sdk/discord/monitor/exec-approvals.d.ts +70 -0
  804. package/dist/plugin-sdk/discord/monitor/format.d.ts +13 -0
  805. package/dist/plugin-sdk/discord/monitor/gateway-registry.d.ts +9 -0
  806. package/dist/plugin-sdk/discord/monitor/listeners.d.ts +49 -0
  807. package/dist/plugin-sdk/discord/monitor/message-handler.d.ts +26 -0
  808. package/dist/plugin-sdk/discord/monitor/message-handler.preflight.d.ts +3 -0
  809. package/dist/plugin-sdk/discord/monitor/message-handler.preflight.types.d.ts +86 -0
  810. package/dist/plugin-sdk/discord/monitor/message-handler.process.d.ts +2 -0
  811. package/dist/plugin-sdk/discord/monitor/message-utils.d.ts +31 -0
  812. package/dist/plugin-sdk/discord/monitor/native-command.d.ts +20 -0
  813. package/dist/plugin-sdk/discord/monitor/presence-cache.d.ts +9 -0
  814. package/dist/plugin-sdk/discord/monitor/provider.d.ts +13 -0
  815. package/dist/plugin-sdk/discord/monitor/reply-context.d.ts +13 -0
  816. package/dist/plugin-sdk/discord/monitor/reply-delivery.d.ts +18 -0
  817. package/dist/plugin-sdk/discord/monitor/sender-identity.d.ts +31 -0
  818. package/dist/plugin-sdk/discord/monitor/system-events.d.ts +2 -0
  819. package/dist/plugin-sdk/discord/monitor/threading.d.ts +101 -0
  820. package/dist/plugin-sdk/discord/monitor/typing.d.ts +5 -0
  821. package/dist/plugin-sdk/discord/monitor.d.ts +10 -0
  822. package/dist/plugin-sdk/discord/monitor.gateway.d.ts +12 -0
  823. package/dist/plugin-sdk/discord/pluralkit.d.ts +26 -0
  824. package/dist/plugin-sdk/discord/probe.d.ts +29 -0
  825. package/dist/plugin-sdk/discord/resolve-channels.d.ts +15 -0
  826. package/dist/plugin-sdk/discord/resolve-users.d.ts +14 -0
  827. package/dist/plugin-sdk/discord/send.channels.d.ts +17 -0
  828. package/dist/plugin-sdk/discord/send.d.ts +8 -0
  829. package/dist/plugin-sdk/discord/send.emojis-stickers.d.ts +4 -0
  830. package/dist/plugin-sdk/discord/send.guild.d.ts +24 -0
  831. package/dist/plugin-sdk/discord/send.messages.d.ts +18 -0
  832. package/dist/plugin-sdk/discord/send.outbound.d.ts +22 -0
  833. package/dist/plugin-sdk/discord/send.permissions.d.ts +4 -0
  834. package/dist/plugin-sdk/discord/send.reactions.d.ts +15 -0
  835. package/dist/plugin-sdk/discord/send.shared.d.ts +69 -0
  836. package/dist/plugin-sdk/discord/send.types.d.ts +130 -0
  837. package/dist/plugin-sdk/discord/targets.d.ts +18 -0
  838. package/dist/plugin-sdk/discord/token.d.ts +11 -0
  839. package/dist/plugin-sdk/documents/document-log.d.ts +18 -0
  840. package/dist/plugin-sdk/documents/extractor.d.ts +13 -0
  841. package/dist/plugin-sdk/documents/file-editor.d.ts +72 -0
  842. package/dist/plugin-sdk/documents/key-fields.d.ts +11 -0
  843. package/dist/plugin-sdk/gateway/call.d.ts +51 -0
  844. package/dist/plugin-sdk/gateway/chat-abort.d.ts +44 -0
  845. package/dist/plugin-sdk/gateway/chat-sanitize.d.ts +3 -0
  846. package/dist/plugin-sdk/gateway/client.d.ts +61 -0
  847. package/dist/plugin-sdk/gateway/control-ui-shared.d.ts +9 -0
  848. package/dist/plugin-sdk/gateway/device-auth.d.ts +12 -0
  849. package/dist/plugin-sdk/gateway/node-registry.d.ts +60 -0
  850. package/dist/plugin-sdk/gateway/protocol/client-info.d.ts +58 -0
  851. package/dist/plugin-sdk/gateway/protocol/index.d.ts +635 -0
  852. package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +72 -0
  853. package/dist/plugin-sdk/gateway/protocol/schema/agents-models-skills.d.ts +120 -0
  854. package/dist/plugin-sdk/gateway/protocol/schema/channels.d.ts +105 -0
  855. package/dist/plugin-sdk/gateway/protocol/schema/config.d.ts +51 -0
  856. package/dist/plugin-sdk/gateway/protocol/schema/cron.d.ts +348 -0
  857. package/dist/plugin-sdk/gateway/protocol/schema/devices.d.ts +38 -0
  858. package/dist/plugin-sdk/gateway/protocol/schema/error-codes.d.ts +14 -0
  859. package/dist/plugin-sdk/gateway/protocol/schema/exec-approvals.d.ts +162 -0
  860. package/dist/plugin-sdk/gateway/protocol/schema/frames.d.ts +163 -0
  861. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +45 -0
  862. package/dist/plugin-sdk/gateway/protocol/schema/nodes.d.ts +64 -0
  863. package/dist/plugin-sdk/gateway/protocol/schema/primitives.d.ts +4 -0
  864. package/dist/plugin-sdk/gateway/protocol/schema/protocol-schemas.d.ts +3 -0
  865. package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +74 -0
  866. package/dist/plugin-sdk/gateway/protocol/schema/snapshot.d.ts +63 -0
  867. package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +116 -0
  868. package/dist/plugin-sdk/gateway/protocol/schema/wizard.d.ts +86 -0
  869. package/dist/plugin-sdk/gateway/protocol/schema.d.ts +16 -0
  870. package/dist/plugin-sdk/gateway/server/ws-types.d.ts +9 -0
  871. package/dist/plugin-sdk/gateway/server-channels.d.ts +24 -0
  872. package/dist/plugin-sdk/gateway/server-methods/types.d.ts +96 -0
  873. package/dist/plugin-sdk/gateway/server-shared.d.ts +7 -0
  874. package/dist/plugin-sdk/gateway/session-utils.d.ts +53 -0
  875. package/dist/plugin-sdk/gateway/session-utils.fs.d.ts +11 -0
  876. package/dist/plugin-sdk/gateway/session-utils.types.d.ts +83 -0
  877. package/dist/plugin-sdk/globals.d.ts +11 -0
  878. package/dist/plugin-sdk/hooks/internal-hooks.d.ts +95 -0
  879. package/dist/plugin-sdk/hooks/types.d.ts +62 -0
  880. package/dist/plugin-sdk/imessage/accounts.d.ts +16 -0
  881. package/dist/plugin-sdk/imessage/client.d.ts +46 -0
  882. package/dist/plugin-sdk/imessage/constants.d.ts +2 -0
  883. package/dist/plugin-sdk/imessage/monitor/deliver.d.ts +17 -0
  884. package/dist/plugin-sdk/imessage/monitor/monitor-provider.d.ts +2 -0
  885. package/dist/plugin-sdk/imessage/monitor/runtime.d.ts +4 -0
  886. package/dist/plugin-sdk/imessage/monitor/types.d.ts +37 -0
  887. package/dist/plugin-sdk/imessage/monitor.d.ts +2 -0
  888. package/dist/plugin-sdk/imessage/probe.d.ts +18 -0
  889. package/dist/plugin-sdk/imessage/send.d.ts +18 -0
  890. package/dist/plugin-sdk/imessage/targets.d.ts +39 -0
  891. package/dist/plugin-sdk/index.d.ts +1 -0
  892. package/dist/plugin-sdk/index.js +24585 -0
  893. package/dist/plugin-sdk/infra/agent-events.d.ts +21 -0
  894. package/dist/plugin-sdk/infra/atlas-root.d.ts +10 -0
  895. package/dist/plugin-sdk/infra/backoff.d.ts +8 -0
  896. package/dist/plugin-sdk/infra/channel-activity.d.ts +18 -0
  897. package/dist/plugin-sdk/infra/channel-summary.d.ts +7 -0
  898. package/dist/plugin-sdk/infra/dedupe.d.ts +11 -0
  899. package/dist/plugin-sdk/infra/device-auth-store.d.ts +23 -0
  900. package/dist/plugin-sdk/infra/device-identity.d.ts +11 -0
  901. package/dist/plugin-sdk/infra/diagnostic-events.d.ts +121 -0
  902. package/dist/plugin-sdk/infra/diagnostic-flags.d.ts +4 -0
  903. package/dist/plugin-sdk/infra/env.d.ts +11 -0
  904. package/dist/plugin-sdk/infra/errors.d.ts +3 -0
  905. package/dist/plugin-sdk/infra/exec-approvals.d.ts +155 -0
  906. package/dist/plugin-sdk/infra/exec-safety.d.ts +1 -0
  907. package/dist/plugin-sdk/infra/fetch.d.ts +2 -0
  908. package/dist/plugin-sdk/infra/format-duration.d.ts +10 -0
  909. package/dist/plugin-sdk/infra/git-commit.d.ts +4 -0
  910. package/dist/plugin-sdk/infra/heartbeat-events.d.ts +21 -0
  911. package/dist/plugin-sdk/infra/heartbeat-runner.d.ts +44 -0
  912. package/dist/plugin-sdk/infra/heartbeat-visibility.d.ts +17 -0
  913. package/dist/plugin-sdk/infra/heartbeat-wake.d.ts +20 -0
  914. package/dist/plugin-sdk/infra/json-file.d.ts +2 -0
  915. package/dist/plugin-sdk/infra/machine-name.d.ts +1 -0
  916. package/dist/plugin-sdk/infra/net/fetch-guard.d.ts +20 -0
  917. package/dist/plugin-sdk/infra/net/ssrf.d.ts +31 -0
  918. package/dist/plugin-sdk/infra/node-pairing.d.ts +62 -0
  919. package/dist/plugin-sdk/infra/node-shell.d.ts +1 -0
  920. package/dist/plugin-sdk/infra/outbound/channel-adapters.d.ts +6 -0
  921. package/dist/plugin-sdk/infra/outbound/channel-selection.d.ts +11 -0
  922. package/dist/plugin-sdk/infra/outbound/channel-target.d.ts +6 -0
  923. package/dist/plugin-sdk/infra/outbound/deliver.d.ts +69 -0
  924. package/dist/plugin-sdk/infra/outbound/directory-cache.d.ts +21 -0
  925. package/dist/plugin-sdk/infra/outbound/message-action-runner.d.ts +74 -0
  926. package/dist/plugin-sdk/infra/outbound/message-action-spec.d.ts +5 -0
  927. package/dist/plugin-sdk/infra/outbound/message.d.ts +76 -0
  928. package/dist/plugin-sdk/infra/outbound/outbound-policy.d.ts +31 -0
  929. package/dist/plugin-sdk/infra/outbound/outbound-send-service.d.ts +58 -0
  930. package/dist/plugin-sdk/infra/outbound/outbound-session.d.ts +31 -0
  931. package/dist/plugin-sdk/infra/outbound/payloads.d.ts +16 -0
  932. package/dist/plugin-sdk/infra/outbound/target-errors.d.ts +6 -0
  933. package/dist/plugin-sdk/infra/outbound/target-normalization.d.ts +4 -0
  934. package/dist/plugin-sdk/infra/outbound/target-resolver.d.ts +53 -0
  935. package/dist/plugin-sdk/infra/outbound/targets.d.ts +65 -0
  936. package/dist/plugin-sdk/infra/ports-format.d.ts +5 -0
  937. package/dist/plugin-sdk/infra/ports-inspect.d.ts +2 -0
  938. package/dist/plugin-sdk/infra/ports-lsof.d.ts +2 -0
  939. package/dist/plugin-sdk/infra/ports-types.d.ts +17 -0
  940. package/dist/plugin-sdk/infra/ports.d.ts +14 -0
  941. package/dist/plugin-sdk/infra/provider-usage.auth.d.ts +11 -0
  942. package/dist/plugin-sdk/infra/provider-usage.d.ts +4 -0
  943. package/dist/plugin-sdk/infra/provider-usage.fetch.antigravity.d.ts +2 -0
  944. package/dist/plugin-sdk/infra/provider-usage.fetch.claude.d.ts +2 -0
  945. package/dist/plugin-sdk/infra/provider-usage.fetch.codex.d.ts +2 -0
  946. package/dist/plugin-sdk/infra/provider-usage.fetch.copilot.d.ts +2 -0
  947. package/dist/plugin-sdk/infra/provider-usage.fetch.d.ts +7 -0
  948. package/dist/plugin-sdk/infra/provider-usage.fetch.gemini.d.ts +2 -0
  949. package/dist/plugin-sdk/infra/provider-usage.fetch.minimax.d.ts +2 -0
  950. package/dist/plugin-sdk/infra/provider-usage.fetch.shared.d.ts +1 -0
  951. package/dist/plugin-sdk/infra/provider-usage.fetch.zai.d.ts +2 -0
  952. package/dist/plugin-sdk/infra/provider-usage.format.d.ts +13 -0
  953. package/dist/plugin-sdk/infra/provider-usage.load.d.ts +12 -0
  954. package/dist/plugin-sdk/infra/provider-usage.shared.d.ts +8 -0
  955. package/dist/plugin-sdk/infra/provider-usage.types.d.ts +17 -0
  956. package/dist/plugin-sdk/infra/restart-sentinel.d.ts +50 -0
  957. package/dist/plugin-sdk/infra/restart.d.ts +28 -0
  958. package/dist/plugin-sdk/infra/retry-policy.d.ts +25 -0
  959. package/dist/plugin-sdk/infra/retry.d.ts +21 -0
  960. package/dist/plugin-sdk/infra/session-cost-usage.d.ts +160 -0
  961. package/dist/plugin-sdk/infra/shell-env.d.ts +33 -0
  962. package/dist/plugin-sdk/infra/skills-remote.d.ts +24 -0
  963. package/dist/plugin-sdk/infra/system-events.d.ts +16 -0
  964. package/dist/plugin-sdk/infra/tailnet.d.ts +7 -0
  965. package/dist/plugin-sdk/infra/tls/fingerprint.d.ts +1 -0
  966. package/dist/plugin-sdk/infra/tls/gateway.d.ts +16 -0
  967. package/dist/plugin-sdk/infra/transport-ready.d.ts +16 -0
  968. package/dist/plugin-sdk/infra/unhandled-rejections.d.ts +15 -0
  969. package/dist/plugin-sdk/infra/warnings.d.ts +1 -0
  970. package/dist/plugin-sdk/infra/ws.d.ts +2 -0
  971. package/dist/plugin-sdk/infra/wsl.d.ts +2 -0
  972. package/dist/plugin-sdk/line/accounts.d.ts +10 -0
  973. package/dist/plugin-sdk/line/auto-reply-delivery.d.ts +49 -0
  974. package/dist/plugin-sdk/line/bot-access.d.ts +15 -0
  975. package/dist/plugin-sdk/line/bot-handlers.d.ts +13 -0
  976. package/dist/plugin-sdk/line/bot-message-context.d.ts +102 -0
  977. package/dist/plugin-sdk/line/bot.d.ts +24 -0
  978. package/dist/plugin-sdk/line/config-schema.d.ts +64 -0
  979. package/dist/plugin-sdk/line/download.d.ts +7 -0
  980. package/dist/plugin-sdk/line/flex-templates.d.ts +195 -0
  981. package/dist/plugin-sdk/line/markdown-to-line.d.ts +72 -0
  982. package/dist/plugin-sdk/line/monitor.d.ts +28 -0
  983. package/dist/plugin-sdk/line/probe.d.ts +2 -0
  984. package/dist/plugin-sdk/line/reply-chunks.d.ts +24 -0
  985. package/dist/plugin-sdk/line/send.d.ts +118 -0
  986. package/dist/plugin-sdk/line/signature.d.ts +1 -0
  987. package/dist/plugin-sdk/line/template-messages.d.ts +119 -0
  988. package/dist/plugin-sdk/line/types.d.ts +125 -0
  989. package/dist/plugin-sdk/line/webhook.d.ts +19 -0
  990. package/dist/plugin-sdk/link-understanding/apply.d.ts +10 -0
  991. package/dist/plugin-sdk/link-understanding/defaults.d.ts +2 -0
  992. package/dist/plugin-sdk/link-understanding/detect.d.ts +3 -0
  993. package/dist/plugin-sdk/link-understanding/format.d.ts +4 -0
  994. package/dist/plugin-sdk/link-understanding/runner.d.ts +11 -0
  995. package/dist/plugin-sdk/logger.d.ts +6 -0
  996. package/dist/plugin-sdk/logging/config.d.ts +4 -0
  997. package/dist/plugin-sdk/logging/console.d.ts +19 -0
  998. package/dist/plugin-sdk/logging/diagnostic.d.ts +58 -0
  999. package/dist/plugin-sdk/logging/levels.d.ts +4 -0
  1000. package/dist/plugin-sdk/logging/logger.d.ts +42 -0
  1001. package/dist/plugin-sdk/logging/redact-identifier.d.ts +4 -0
  1002. package/dist/plugin-sdk/logging/redact.d.ts +9 -0
  1003. package/dist/plugin-sdk/logging/state.d.ts +17 -0
  1004. package/dist/plugin-sdk/logging/subsystem.d.ts +16 -0
  1005. package/dist/plugin-sdk/logging.d.ts +10 -0
  1006. package/dist/plugin-sdk/markdown/code-spans.d.ts +10 -0
  1007. package/dist/plugin-sdk/markdown/fences.d.ts +10 -0
  1008. package/dist/plugin-sdk/markdown/frontmatter.d.ts +2 -0
  1009. package/dist/plugin-sdk/markdown/ir.d.ts +32 -0
  1010. package/dist/plugin-sdk/markdown/render.d.ts +18 -0
  1011. package/dist/plugin-sdk/markdown/tables.d.ts +2 -0
  1012. package/dist/plugin-sdk/media/audio-tags.d.ts +10 -0
  1013. package/dist/plugin-sdk/media/audio.d.ts +4 -0
  1014. package/dist/plugin-sdk/media/constants.d.ts +7 -0
  1015. package/dist/plugin-sdk/media/fetch.d.ts +23 -0
  1016. package/dist/plugin-sdk/media/image-ops.d.ts +39 -0
  1017. package/dist/plugin-sdk/media/input-files.d.ts +76 -0
  1018. package/dist/plugin-sdk/media/mime.d.ts +15 -0
  1019. package/dist/plugin-sdk/media/parse.d.ts +8 -0
  1020. package/dist/plugin-sdk/media/store.d.ts +18 -0
  1021. package/dist/plugin-sdk/media-understanding/apply.d.ts +19 -0
  1022. package/dist/plugin-sdk/media-understanding/attachments.d.ts +43 -0
  1023. package/dist/plugin-sdk/media-understanding/concurrency.d.ts +1 -0
  1024. package/dist/plugin-sdk/media-understanding/defaults.d.ts +10 -0
  1025. package/dist/plugin-sdk/media-understanding/errors.d.ts +6 -0
  1026. package/dist/plugin-sdk/media-understanding/format.d.ts +7 -0
  1027. package/dist/plugin-sdk/media-understanding/providers/anthropic/index.d.ts +2 -0
  1028. package/dist/plugin-sdk/media-understanding/providers/deepgram/audio.d.ts +4 -0
  1029. package/dist/plugin-sdk/media-understanding/providers/deepgram/index.d.ts +2 -0
  1030. package/dist/plugin-sdk/media-understanding/providers/google/audio.d.ts +3 -0
  1031. package/dist/plugin-sdk/media-understanding/providers/google/index.d.ts +2 -0
  1032. package/dist/plugin-sdk/media-understanding/providers/google/video.d.ts +3 -0
  1033. package/dist/plugin-sdk/media-understanding/providers/groq/index.d.ts +2 -0
  1034. package/dist/plugin-sdk/media-understanding/providers/image.d.ts +2 -0
  1035. package/dist/plugin-sdk/media-understanding/providers/index.d.ts +4 -0
  1036. package/dist/plugin-sdk/media-understanding/providers/minimax/index.d.ts +2 -0
  1037. package/dist/plugin-sdk/media-understanding/providers/openai/audio.d.ts +3 -0
  1038. package/dist/plugin-sdk/media-understanding/providers/openai/index.d.ts +2 -0
  1039. package/dist/plugin-sdk/media-understanding/providers/shared.d.ts +10 -0
  1040. package/dist/plugin-sdk/media-understanding/resolve.d.ts +44 -0
  1041. package/dist/plugin-sdk/media-understanding/runner.d.ts +34 -0
  1042. package/dist/plugin-sdk/media-understanding/scope.d.ts +9 -0
  1043. package/dist/plugin-sdk/media-understanding/types.d.ts +92 -0
  1044. package/dist/plugin-sdk/media-understanding/video.d.ts +2 -0
  1045. package/dist/plugin-sdk/memory/backend-config.d.ts +44 -0
  1046. package/dist/plugin-sdk/memory/batch-gemini.d.ts +55 -0
  1047. package/dist/plugin-sdk/memory/batch-openai.d.ts +45 -0
  1048. package/dist/plugin-sdk/memory/batch-voyage.d.ts +46 -0
  1049. package/dist/plugin-sdk/memory/embeddings-gemini.d.ts +13 -0
  1050. package/dist/plugin-sdk/memory/embeddings-openai.d.ts +13 -0
  1051. package/dist/plugin-sdk/memory/embeddings-voyage.d.ts +13 -0
  1052. package/dist/plugin-sdk/memory/embeddings.d.ts +39 -0
  1053. package/dist/plugin-sdk/memory/hybrid.d.ts +34 -0
  1054. package/dist/plugin-sdk/memory/index.d.ts +3 -0
  1055. package/dist/plugin-sdk/memory/internal.d.ts +27 -0
  1056. package/dist/plugin-sdk/memory/manager-search.d.ts +60 -0
  1057. package/dist/plugin-sdk/memory/manager.d.ts +136 -0
  1058. package/dist/plugin-sdk/memory/memory-schema.d.ts +10 -0
  1059. package/dist/plugin-sdk/memory/node-llama.d.ts +8 -0
  1060. package/dist/plugin-sdk/memory/qmd-manager.d.ts +78 -0
  1061. package/dist/plugin-sdk/memory/search-manager.d.ts +10 -0
  1062. package/dist/plugin-sdk/memory/session-files.d.ts +12 -0
  1063. package/dist/plugin-sdk/memory/sqlite-vec.d.ts +9 -0
  1064. package/dist/plugin-sdk/memory/sqlite.d.ts +1 -0
  1065. package/dist/plugin-sdk/memory/types.d.ts +94 -0
  1066. package/dist/plugin-sdk/pairing/pairing-labels.d.ts +2 -0
  1067. package/dist/plugin-sdk/pairing/pairing-messages.d.ts +6 -0
  1068. package/dist/plugin-sdk/pairing/pairing-store.d.ts +46 -0
  1069. package/dist/plugin-sdk/pi-model-discovery-BKdHZoFR.js +37 -0
  1070. package/dist/plugin-sdk/plugin-sdk/index.d.ts +100 -0
  1071. package/dist/plugin-sdk/plugins/bundled-dir.d.ts +1 -0
  1072. package/dist/plugin-sdk/plugins/commands.d.ts +78 -0
  1073. package/dist/plugin-sdk/plugins/config-schema.d.ts +2 -0
  1074. package/dist/plugin-sdk/plugins/config-state.d.ts +33 -0
  1075. package/dist/plugin-sdk/plugins/discovery.d.ts +22 -0
  1076. package/dist/plugin-sdk/plugins/hook-runner-global.d.ts +31 -0
  1077. package/dist/plugin-sdk/plugins/hooks.d.ts +41 -0
  1078. package/dist/plugin-sdk/plugins/http-path.d.ts +1 -0
  1079. package/dist/plugin-sdk/plugins/http-registry.d.ts +13 -0
  1080. package/dist/plugin-sdk/plugins/loader.d.ts +14 -0
  1081. package/dist/plugin-sdk/plugins/manifest-registry.d.ts +33 -0
  1082. package/dist/plugin-sdk/plugins/manifest.d.ts +64 -0
  1083. package/dist/plugin-sdk/plugins/registry.d.ts +130 -0
  1084. package/dist/plugin-sdk/plugins/runtime/index.d.ts +3 -0
  1085. package/dist/plugin-sdk/plugins/runtime/native-deps.d.ts +8 -0
  1086. package/dist/plugin-sdk/plugins/runtime/types.d.ts +314 -0
  1087. package/dist/plugin-sdk/plugins/runtime.d.ts +5 -0
  1088. package/dist/plugin-sdk/plugins/schema-validator.d.ts +10 -0
  1089. package/dist/plugin-sdk/plugins/slots.d.ts +24 -0
  1090. package/dist/plugin-sdk/plugins/tools.d.ts +13 -0
  1091. package/dist/plugin-sdk/plugins/types.d.ts +381 -0
  1092. package/dist/plugin-sdk/polls.d.ts +21 -0
  1093. package/dist/plugin-sdk/process/command-queue.d.ts +12 -0
  1094. package/dist/plugin-sdk/process/exec.d.ts +22 -0
  1095. package/dist/plugin-sdk/process/lanes.d.ts +6 -0
  1096. package/dist/plugin-sdk/process/spawn-utils.d.ts +26 -0
  1097. package/dist/plugin-sdk/providers/github-copilot-token.d.ts +19 -0
  1098. package/dist/plugin-sdk/providers/qwen-portal-oauth.d.ts +2 -0
  1099. package/dist/plugin-sdk/routing/bindings.d.ts +11 -0
  1100. package/dist/plugin-sdk/routing/resolve-route.d.ts +38 -0
  1101. package/dist/plugin-sdk/routing/session-key.d.ts +47 -0
  1102. package/dist/plugin-sdk/runtime.d.ts +6 -0
  1103. package/dist/plugin-sdk/security/channel-metadata.d.ts +6 -0
  1104. package/dist/plugin-sdk/security/external-content.d.ts +67 -0
  1105. package/dist/plugin-sdk/sessions/level-overrides.d.ts +10 -0
  1106. package/dist/plugin-sdk/sessions/model-overrides.d.ts +14 -0
  1107. package/dist/plugin-sdk/sessions/send-policy.d.ts +11 -0
  1108. package/dist/plugin-sdk/sessions/session-key-utils.d.ts +8 -0
  1109. package/dist/plugin-sdk/sessions/session-label.d.ts +9 -0
  1110. package/dist/plugin-sdk/sessions/transcript-events.d.ts +7 -0
  1111. package/dist/plugin-sdk/shared/text/reasoning-tags.d.ts +6 -0
  1112. package/dist/plugin-sdk/signal/accounts.d.ts +17 -0
  1113. package/dist/plugin-sdk/signal/client.d.ts +32 -0
  1114. package/dist/plugin-sdk/signal/daemon.d.ts +18 -0
  1115. package/dist/plugin-sdk/signal/format.d.ts +17 -0
  1116. package/dist/plugin-sdk/signal/identity.d.ts +23 -0
  1117. package/dist/plugin-sdk/signal/index.d.ts +5 -0
  1118. package/dist/plugin-sdk/signal/monitor/event-handler.d.ts +5 -0
  1119. package/dist/plugin-sdk/signal/monitor/event-handler.types.d.ts +117 -0
  1120. package/dist/plugin-sdk/signal/monitor.d.ts +23 -0
  1121. package/dist/plugin-sdk/signal/probe.d.ts +8 -0
  1122. package/dist/plugin-sdk/signal/reaction-level.d.ts +24 -0
  1123. package/dist/plugin-sdk/signal/send-reactions.d.ts +32 -0
  1124. package/dist/plugin-sdk/signal/send.d.ts +24 -0
  1125. package/dist/plugin-sdk/signal/sse-reconnect.d.ts +13 -0
  1126. package/dist/plugin-sdk/slack/accounts.d.ts +32 -0
  1127. package/dist/plugin-sdk/slack/actions.d.ts +53 -0
  1128. package/dist/plugin-sdk/slack/channel-migration.d.ts +20 -0
  1129. package/dist/plugin-sdk/slack/client.d.ts +4 -0
  1130. package/dist/plugin-sdk/slack/directory-live.d.ts +4 -0
  1131. package/dist/plugin-sdk/slack/format.d.ts +7 -0
  1132. package/dist/plugin-sdk/slack/http/index.d.ts +1 -0
  1133. package/dist/plugin-sdk/slack/http/registry.d.ts +12 -0
  1134. package/dist/plugin-sdk/slack/index.d.ts +6 -0
  1135. package/dist/plugin-sdk/slack/monitor/allow-list.d.ts +20 -0
  1136. package/dist/plugin-sdk/slack/monitor/auth.d.ts +10 -0
  1137. package/dist/plugin-sdk/slack/monitor/channel-config.d.ts +40 -0
  1138. package/dist/plugin-sdk/slack/monitor/commands.d.ts +4 -0
  1139. package/dist/plugin-sdk/slack/monitor/context.d.ts +109 -0
  1140. package/dist/plugin-sdk/slack/monitor/events/channels.d.ts +4 -0
  1141. package/dist/plugin-sdk/slack/monitor/events/members.d.ts +4 -0
  1142. package/dist/plugin-sdk/slack/monitor/events/messages.d.ts +6 -0
  1143. package/dist/plugin-sdk/slack/monitor/events/pins.d.ts +4 -0
  1144. package/dist/plugin-sdk/slack/monitor/events/reactions.d.ts +4 -0
  1145. package/dist/plugin-sdk/slack/monitor/events.d.ts +8 -0
  1146. package/dist/plugin-sdk/slack/monitor/media.d.ts +29 -0
  1147. package/dist/plugin-sdk/slack/monitor/message-handler/dispatch.d.ts +2 -0
  1148. package/dist/plugin-sdk/slack/monitor/message-handler/prepare.d.ts +13 -0
  1149. package/dist/plugin-sdk/slack/monitor/message-handler/types.d.ts +22 -0
  1150. package/dist/plugin-sdk/slack/monitor/message-handler.d.ts +11 -0
  1151. package/dist/plugin-sdk/slack/monitor/policy.d.ts +5 -0
  1152. package/dist/plugin-sdk/slack/monitor/provider.d.ts +2 -0
  1153. package/dist/plugin-sdk/slack/monitor/replies.d.ts +50 -0
  1154. package/dist/plugin-sdk/slack/monitor/slash.d.ts +6 -0
  1155. package/dist/plugin-sdk/slack/monitor/thread-resolution.d.ts +12 -0
  1156. package/dist/plugin-sdk/slack/monitor/types.d.ts +97 -0
  1157. package/dist/plugin-sdk/slack/monitor.d.ts +5 -0
  1158. package/dist/plugin-sdk/slack/probe.d.ts +15 -0
  1159. package/dist/plugin-sdk/slack/resolve-channels.d.ts +19 -0
  1160. package/dist/plugin-sdk/slack/resolve-users.d.ts +26 -0
  1161. package/dist/plugin-sdk/slack/send.d.ts +14 -0
  1162. package/dist/plugin-sdk/slack/targets.d.ts +7 -0
  1163. package/dist/plugin-sdk/slack/threading-tool-context.d.ts +10 -0
  1164. package/dist/plugin-sdk/slack/threading.d.ts +20 -0
  1165. package/dist/plugin-sdk/slack/token.d.ts +3 -0
  1166. package/dist/plugin-sdk/slack/types.d.ts +36 -0
  1167. package/dist/plugin-sdk/telegram/accounts.d.ts +17 -0
  1168. package/dist/plugin-sdk/telegram/allowed-updates.d.ts +4 -0
  1169. package/dist/plugin-sdk/telegram/api-logging.d.ts +11 -0
  1170. package/dist/plugin-sdk/telegram/audit.d.ts +29 -0
  1171. package/dist/plugin-sdk/telegram/bot/delivery.d.ts +34 -0
  1172. package/dist/plugin-sdk/telegram/bot/helpers.d.ts +93 -0
  1173. package/dist/plugin-sdk/telegram/bot/types.d.ts +28 -0
  1174. package/dist/plugin-sdk/telegram/bot-access.d.ts +24 -0
  1175. package/dist/plugin-sdk/telegram/bot-handlers.d.ts +2 -0
  1176. package/dist/plugin-sdk/telegram/bot-message-context.d.ts +130 -0
  1177. package/dist/plugin-sdk/telegram/bot-message-dispatch.d.ts +21 -0
  1178. package/dist/plugin-sdk/telegram/bot-message.d.ts +21 -0
  1179. package/dist/plugin-sdk/telegram/bot-native-commands.d.ts +59 -0
  1180. package/dist/plugin-sdk/telegram/bot-updates.d.ts +27 -0
  1181. package/dist/plugin-sdk/telegram/bot.d.ts +54 -0
  1182. package/dist/plugin-sdk/telegram/caption.d.ts +5 -0
  1183. package/dist/plugin-sdk/telegram/draft-chunking.d.ts +6 -0
  1184. package/dist/plugin-sdk/telegram/draft-stream.d.ts +17 -0
  1185. package/dist/plugin-sdk/telegram/fetch.d.ts +4 -0
  1186. package/dist/plugin-sdk/telegram/format.d.ts +16 -0
  1187. package/dist/plugin-sdk/telegram/group-migration.d.ts +20 -0
  1188. package/dist/plugin-sdk/telegram/inline-buttons.d.ts +11 -0
  1189. package/dist/plugin-sdk/telegram/model-buttons.d.ts +63 -0
  1190. package/dist/plugin-sdk/telegram/monitor.d.ts +18 -0
  1191. package/dist/plugin-sdk/telegram/network-config.d.ts +12 -0
  1192. package/dist/plugin-sdk/telegram/network-errors.d.ts +5 -0
  1193. package/dist/plugin-sdk/telegram/probe.d.ts +18 -0
  1194. package/dist/plugin-sdk/telegram/proxy.d.ts +1 -0
  1195. package/dist/plugin-sdk/telegram/reaction-level.d.ts +18 -0
  1196. package/dist/plugin-sdk/telegram/send.d.ts +96 -0
  1197. package/dist/plugin-sdk/telegram/sent-message-cache.d.ts +16 -0
  1198. package/dist/plugin-sdk/telegram/sticker-cache.d.ts +46 -0
  1199. package/dist/plugin-sdk/telegram/targets.d.ts +14 -0
  1200. package/dist/plugin-sdk/telegram/token.d.ts +13 -0
  1201. package/dist/plugin-sdk/telegram/update-offset-store.d.ts +9 -0
  1202. package/dist/plugin-sdk/telegram/voice.d.ts +20 -0
  1203. package/dist/plugin-sdk/telegram/webhook.d.ts +20 -0
  1204. package/dist/plugin-sdk/terminal/ansi.d.ts +2 -0
  1205. package/dist/plugin-sdk/terminal/links.d.ts +6 -0
  1206. package/dist/plugin-sdk/terminal/palette.d.ts +10 -0
  1207. package/dist/plugin-sdk/terminal/progress-line.d.ts +3 -0
  1208. package/dist/plugin-sdk/terminal/prompt-style.d.ts +3 -0
  1209. package/dist/plugin-sdk/terminal/restore.d.ts +1 -0
  1210. package/dist/plugin-sdk/terminal/theme.d.ts +15 -0
  1211. package/dist/plugin-sdk/tts/tts.d.ts +198 -0
  1212. package/dist/plugin-sdk/tui/tui-formatters.d.ts +31 -0
  1213. package/dist/plugin-sdk/utils/account-id.d.ts +1 -0
  1214. package/dist/plugin-sdk/utils/boolean.d.ts +5 -0
  1215. package/dist/plugin-sdk/utils/delivery-context.d.ts +29 -0
  1216. package/dist/plugin-sdk/utils/directive-tags.d.ts +16 -0
  1217. package/dist/plugin-sdk/utils/message-channel.d.ts +27 -0
  1218. package/dist/plugin-sdk/utils/provider-utils.d.ts +9 -0
  1219. package/dist/plugin-sdk/utils/queue-helpers.d.ts +41 -0
  1220. package/dist/plugin-sdk/utils/shell-argv.d.ts +1 -0
  1221. package/dist/plugin-sdk/utils/transcript-tools.d.ts +8 -0
  1222. package/dist/plugin-sdk/utils/usage-format.d.ts +26 -0
  1223. package/dist/plugin-sdk/utils.d.ts +43 -0
  1224. package/dist/plugin-sdk/version.d.ts +4 -0
  1225. package/dist/plugin-sdk/web/accounts.d.ts +39 -0
  1226. package/dist/plugin-sdk/web/active-listener.d.ts +24 -0
  1227. package/dist/plugin-sdk/web/auth-store.d.ts +25 -0
  1228. package/dist/plugin-sdk/web/auto-reply/constants.d.ts +1 -0
  1229. package/dist/plugin-sdk/web/auto-reply/deliver-reply.d.ts +18 -0
  1230. package/dist/plugin-sdk/web/auto-reply/heartbeat-runner.d.ts +20 -0
  1231. package/dist/plugin-sdk/web/auto-reply/loggers.d.ts +4 -0
  1232. package/dist/plugin-sdk/web/auto-reply/mentions.d.ts +19 -0
  1233. package/dist/plugin-sdk/web/auto-reply/monitor/ack-reaction.d.ts +13 -0
  1234. package/dist/plugin-sdk/web/auto-reply/monitor/broadcast.d.ts +16 -0
  1235. package/dist/plugin-sdk/web/auto-reply/monitor/commands.d.ts +2 -0
  1236. package/dist/plugin-sdk/web/auto-reply/monitor/echo.d.ts +17 -0
  1237. package/dist/plugin-sdk/web/auto-reply/monitor/group-activation.d.ts +9 -0
  1238. package/dist/plugin-sdk/web/auto-reply/monitor/group-gating.d.ts +29 -0
  1239. package/dist/plugin-sdk/web/auto-reply/monitor/group-members.d.ts +6 -0
  1240. package/dist/plugin-sdk/web/auto-reply/monitor/last-route.d.ts +15 -0
  1241. package/dist/plugin-sdk/web/auto-reply/monitor/message-line.d.ts +11 -0
  1242. package/dist/plugin-sdk/web/auto-reply/monitor/on-message.d.ts +24 -0
  1243. package/dist/plugin-sdk/web/auto-reply/monitor/peer.d.ts +2 -0
  1244. package/dist/plugin-sdk/web/auto-reply/monitor/process-message.d.ts +40 -0
  1245. package/dist/plugin-sdk/web/auto-reply/monitor.d.ts +5 -0
  1246. package/dist/plugin-sdk/web/auto-reply/session-snapshot.d.ts +17 -0
  1247. package/dist/plugin-sdk/web/auto-reply/types.d.ts +28 -0
  1248. package/dist/plugin-sdk/web/auto-reply/util.d.ts +2 -0
  1249. package/dist/plugin-sdk/web/auto-reply.d.ts +1 -0
  1250. package/dist/plugin-sdk/web/auto-reply.impl.d.ts +6 -0
  1251. package/dist/plugin-sdk/web/inbound/access-control.d.ts +24 -0
  1252. package/dist/plugin-sdk/web/inbound/dedupe.d.ts +2 -0
  1253. package/dist/plugin-sdk/web/inbound/extract.d.ts +13 -0
  1254. package/dist/plugin-sdk/web/inbound/media.d.ts +6 -0
  1255. package/dist/plugin-sdk/web/inbound/monitor.d.ts +30 -0
  1256. package/dist/plugin-sdk/web/inbound/send-api.d.ts +22 -0
  1257. package/dist/plugin-sdk/web/inbound/types.d.ts +40 -0
  1258. package/dist/plugin-sdk/web/inbound.d.ts +4 -0
  1259. package/dist/plugin-sdk/web/login-qr.d.ts +19 -0
  1260. package/dist/plugin-sdk/web/login.d.ts +3 -0
  1261. package/dist/plugin-sdk/web/media.d.ts +25 -0
  1262. package/dist/plugin-sdk/web/outbound.d.ts +23 -0
  1263. package/dist/plugin-sdk/web/qr-image.d.ts +4 -0
  1264. package/dist/plugin-sdk/web/reconnect.d.ts +12 -0
  1265. package/dist/plugin-sdk/web/session.d.ts +14 -0
  1266. package/dist/plugin-sdk/web/vcard.d.ts +6 -0
  1267. package/dist/plugin-sdk/whatsapp/normalize.d.ts +6 -0
  1268. package/dist/plugin-sdk/wizard/prompts.d.ts +42 -0
  1269. package/dist/plugin-sdk/wizard/session.d.ts +42 -0
  1270. package/dist/plugins-CK_wLC2r.js +495 -0
  1271. package/dist/plugins-DSznjxmW.js +496 -0
  1272. package/dist/plugins-cli-BmjLl7Cd.js +441 -0
  1273. package/dist/plugins-cli-D9QNFbou.js +444 -0
  1274. package/dist/ports-BiqbeCmv.js +96 -0
  1275. package/dist/program-DId0vhaP.js +191 -0
  1276. package/dist/progress-Da1ehW-x.js +133 -0
  1277. package/dist/progress-Dt7sIoYI.js +133 -0
  1278. package/dist/prompt-style-DRiVu2Qi.js +9 -0
  1279. package/dist/prompt-style-Dc0C5HC9.js +9 -0
  1280. package/dist/prompts-CXLLIBwP.js +10 -0
  1281. package/dist/prompts-FbZThK8w.js +10 -0
  1282. package/dist/pw-ai-B2s3PF-5.js +1649 -0
  1283. package/dist/pw-ai-BH1WNBfo.js +1649 -0
  1284. package/dist/pw-ai-DzC4QEcy.js +1651 -0
  1285. package/dist/qmd-manager-BYeATj9H.js +617 -0
  1286. package/dist/qmd-manager-CP6WOZee.js +615 -0
  1287. package/dist/qmd-manager-DBylkq-O.js +618 -0
  1288. package/dist/redact-B8YiFlwn.js +97 -0
  1289. package/dist/redact-BIMJ3ntQ.js +94 -0
  1290. package/dist/redact-DJCFY628.js +97 -0
  1291. package/dist/register.subclis-h-lG6x5M.js +348 -0
  1292. package/dist/reply-BQIY73Cp.js +66257 -0
  1293. package/dist/rolldown-runtime-Cbj13DAv.js +20 -0
  1294. package/dist/routes-5IglAVwZ.js +2410 -0
  1295. package/dist/routes-NYlqzYFF.js +2410 -0
  1296. package/dist/rpc-B3CddYuS.js +95 -0
  1297. package/dist/rpc-DRfHHhH_.js +95 -0
  1298. package/dist/run-main-CR3Giw5f.js +194 -0
  1299. package/dist/sandbox-C6Az-1Fp.js +2945 -0
  1300. package/dist/sandbox-VThHZ3Io.js +2944 -0
  1301. package/dist/sandbox-cli-Bh7RS4EG.js +463 -0
  1302. package/dist/sandbox-cli-DcifF-r8.js +460 -0
  1303. package/dist/security-cli-BnKsSbcE.js +508 -0
  1304. package/dist/security-cli-vvOe7Qcs.js +505 -0
  1305. package/dist/server-context-B69ff6gq.js +740 -0
  1306. package/dist/server-context-D-t-yRD6.js +740 -0
  1307. package/dist/server-node-events-BT3emtUC.js +216 -0
  1308. package/dist/server-node-events-UI4hiEIP.js +219 -0
  1309. package/dist/service-BbblpUT5.js +680 -0
  1310. package/dist/service-CYGfiAk2.js +680 -0
  1311. package/dist/service-audit-CzKtNPb1.js +542 -0
  1312. package/dist/service-audit-D4kVQ6jb.js +542 -0
  1313. package/dist/session-cost-usage-C9bgCj2T.js +692 -0
  1314. package/dist/session-cost-usage-DMWtcNjU.js +692 -0
  1315. package/dist/session-key-Dk6vSAOv.js +183 -0
  1316. package/dist/session-key-ezJ78bLC.js +183 -0
  1317. package/dist/shared-BsJRU_sz.js +74 -0
  1318. package/dist/shared-CNGm66Fx.js +74 -0
  1319. package/dist/shared-DveRmOGn.js +150 -0
  1320. package/dist/shared-JRNT7BtY.js +150 -0
  1321. package/dist/skill-scanner-BoGjHXUZ.js +255 -0
  1322. package/dist/skill-scanner-Bp1D9gra.js +255 -0
  1323. package/dist/skills-DQK2ES0C.js +1163 -0
  1324. package/dist/skills-cli-BqioQX95.js +290 -0
  1325. package/dist/skills-cli-DCHeTofx.js +287 -0
  1326. package/dist/skills-kM758c46.js +1164 -0
  1327. package/dist/skills-status-BAchqVPC.js +187 -0
  1328. package/dist/skills-status-CwN0cYYM.js +187 -0
  1329. package/dist/sqlite-B-AYr9M_.js +239 -0
  1330. package/dist/sqlite-DODNHWJb.js +221 -0
  1331. package/dist/sqlite-bgADxnjM.js +239 -0
  1332. package/dist/status-CLnFDZ0P.js +3177 -0
  1333. package/dist/status-CRIEi8Mc.js +21 -0
  1334. package/dist/status-CZfTuv4-.js +27 -0
  1335. package/dist/status-VGh-G-xY.js +27 -0
  1336. package/dist/status-tCu4RWZH.js +21 -0
  1337. package/dist/subsystem-1-F6BAP-.js +834 -0
  1338. package/dist/system-cli-CMP-tiCD.js +80 -0
  1339. package/dist/system-cli-DIxhGFML.js +83 -0
  1340. package/dist/systemd-CZB6clek.js +438 -0
  1341. package/dist/systemd-DD8I7Soi.js +438 -0
  1342. package/dist/systemd-hints-DJT0NgJe.js +19 -0
  1343. package/dist/systemd-hints-kufV4gRh.js +19 -0
  1344. package/dist/systemd-linger-BWRVs7kt.js +75 -0
  1345. package/dist/systemd-linger-BfYGJJmy.js +75 -0
  1346. package/dist/table-C9J8xCsv.js +279 -0
  1347. package/dist/table-DBNjIT3r.js +279 -0
  1348. package/dist/tailnet-Byp3obcc.js +42 -0
  1349. package/dist/tailnet-DLDGNuH2.js +42 -0
  1350. package/dist/tailscale-9MusRvOi.js +225 -0
  1351. package/dist/tailscale-He1MuXiT.js +252 -0
  1352. package/dist/tool-display-DDoVBYci.js +795 -0
  1353. package/dist/tool-display-DFNshYEl.js +795 -0
  1354. package/dist/transcript-events-CZ8CG4ht.js +17 -0
  1355. package/dist/transcript-events-ChU6IQwp.js +17 -0
  1356. package/dist/transcript-events-JLH5W4He.js +17 -0
  1357. package/dist/tui-2fdbEHPX.js +2671 -0
  1358. package/dist/tui-cli-Bqmv8mRp.js +55 -0
  1359. package/dist/tui-cli-COxv8x_5.js +58 -0
  1360. package/dist/tui-sZ_d1-Qt.js +2672 -0
  1361. package/dist/update-CWO51A3N.js +317 -0
  1362. package/dist/update-DoYnQeHo.js +317 -0
  1363. package/dist/update-cli-Bjvc3Fis.js +1036 -0
  1364. package/dist/update-cli-BqFpAE13.js +1034 -0
  1365. package/dist/update-runner-BOArPXbA.js +1458 -0
  1366. package/dist/update-runner-BfODZHQY.js +1458 -0
  1367. package/dist/usage-format-DvowRSs-.js +36 -0
  1368. package/dist/usage-format-E3bMcUMV.js +36 -0
  1369. package/dist/utils-BcIVMaVq.js +192 -0
  1370. package/dist/utils-C1qSQAOk.js +188 -0
  1371. package/dist/webhooks-cli-BgpTUeM3.js +312 -0
  1372. package/dist/webhooks-cli-DVvvhSqu.js +309 -0
  1373. package/dist/widearea-dns-CvO8xXPV.js +127 -0
  1374. package/dist/widearea-dns-DP9Nk9OR.js +127 -0
  1375. package/dist/ws-CEcdsnN9.js +13 -0
  1376. package/dist/ws-D091yo4M.js +13 -0
  1377. package/dist/ws-log-CPCss-ho.js +267 -0
  1378. package/dist/ws-log-Dv6iRbCu.js +267 -0
  1379. package/dist/wsl-DNY0CRR9.js +160 -0
  1380. package/extensions/bluebubbles/README.md +45 -0
  1381. package/extensions/bluebubbles/atlas.plugin.json +9 -0
  1382. package/extensions/bluebubbles/index.ts +19 -0
  1383. package/extensions/bluebubbles/node_modules/.bin/atlas +22 -0
  1384. package/extensions/bluebubbles/package.json +36 -0
  1385. package/extensions/bluebubbles/src/accounts.ts +88 -0
  1386. package/extensions/bluebubbles/src/actions.test.ts +650 -0
  1387. package/extensions/bluebubbles/src/actions.ts +438 -0
  1388. package/extensions/bluebubbles/src/attachments.test.ts +345 -0
  1389. package/extensions/bluebubbles/src/attachments.ts +302 -0
  1390. package/extensions/bluebubbles/src/channel.ts +414 -0
  1391. package/extensions/bluebubbles/src/chat.test.ts +461 -0
  1392. package/extensions/bluebubbles/src/chat.ts +382 -0
  1393. package/extensions/bluebubbles/src/config-schema.ts +51 -0
  1394. package/extensions/bluebubbles/src/media-send.ts +174 -0
  1395. package/extensions/bluebubbles/src/monitor.test.ts +2384 -0
  1396. package/extensions/bluebubbles/src/monitor.ts +2517 -0
  1397. package/extensions/bluebubbles/src/onboarding.ts +352 -0
  1398. package/extensions/bluebubbles/src/probe.ts +144 -0
  1399. package/extensions/bluebubbles/src/reactions.test.ts +392 -0
  1400. package/extensions/bluebubbles/src/reactions.ts +188 -0
  1401. package/extensions/bluebubbles/src/runtime.ts +14 -0
  1402. package/extensions/bluebubbles/src/send.test.ts +889 -0
  1403. package/extensions/bluebubbles/src/send.ts +474 -0
  1404. package/extensions/bluebubbles/src/targets.test.ts +183 -0
  1405. package/extensions/bluebubbles/src/targets.ts +422 -0
  1406. package/extensions/bluebubbles/src/types.ts +127 -0
  1407. package/extensions/copilot-proxy/README.md +24 -0
  1408. package/extensions/copilot-proxy/atlas.plugin.json +9 -0
  1409. package/extensions/copilot-proxy/index.ts +149 -0
  1410. package/extensions/copilot-proxy/node_modules/.bin/atlas +22 -0
  1411. package/extensions/copilot-proxy/package.json +14 -0
  1412. package/extensions/diagnostics-otel/atlas.plugin.json +8 -0
  1413. package/extensions/diagnostics-otel/index.ts +15 -0
  1414. package/extensions/diagnostics-otel/node_modules/.bin/acorn +22 -0
  1415. package/extensions/diagnostics-otel/node_modules/.bin/atlas +22 -0
  1416. package/extensions/diagnostics-otel/package.json +27 -0
  1417. package/extensions/diagnostics-otel/src/service.test.ts +226 -0
  1418. package/extensions/diagnostics-otel/src/service.ts +635 -0
  1419. package/extensions/discord/atlas.plugin.json +9 -0
  1420. package/extensions/discord/index.ts +17 -0
  1421. package/extensions/discord/node_modules/.bin/atlas +22 -0
  1422. package/extensions/discord/package.json +14 -0
  1423. package/extensions/discord/src/channel.ts +422 -0
  1424. package/extensions/discord/src/runtime.ts +14 -0
  1425. package/extensions/feishu/atlas.plugin.json +10 -0
  1426. package/extensions/feishu/index.ts +63 -0
  1427. package/extensions/feishu/node_modules/.bin/atlas +22 -0
  1428. package/extensions/feishu/package.json +37 -0
  1429. package/extensions/feishu/skills/feishu-doc/SKILL.md +105 -0
  1430. package/extensions/feishu/skills/feishu-doc/references/block-types.md +103 -0
  1431. package/extensions/feishu/skills/feishu-drive/SKILL.md +97 -0
  1432. package/extensions/feishu/skills/feishu-perm/SKILL.md +119 -0
  1433. package/extensions/feishu/skills/feishu-wiki/SKILL.md +111 -0
  1434. package/extensions/feishu/src/accounts.ts +144 -0
  1435. package/extensions/feishu/src/bitable.ts +459 -0
  1436. package/extensions/feishu/src/bot.ts +871 -0
  1437. package/extensions/feishu/src/channel.ts +341 -0
  1438. package/extensions/feishu/src/client.ts +118 -0
  1439. package/extensions/feishu/src/config-schema.ts +172 -0
  1440. package/extensions/feishu/src/directory.ts +177 -0
  1441. package/extensions/feishu/src/doc-schema.ts +47 -0
  1442. package/extensions/feishu/src/docx.ts +521 -0
  1443. package/extensions/feishu/src/drive-schema.ts +46 -0
  1444. package/extensions/feishu/src/drive.ts +227 -0
  1445. package/extensions/feishu/src/media.ts +527 -0
  1446. package/extensions/feishu/src/mention.ts +126 -0
  1447. package/extensions/feishu/src/monitor.ts +190 -0
  1448. package/extensions/feishu/src/onboarding.ts +356 -0
  1449. package/extensions/feishu/src/outbound.ts +40 -0
  1450. package/extensions/feishu/src/perm-schema.ts +52 -0
  1451. package/extensions/feishu/src/perm.ts +173 -0
  1452. package/extensions/feishu/src/policy.ts +104 -0
  1453. package/extensions/feishu/src/probe.ts +44 -0
  1454. package/extensions/feishu/src/reactions.ts +160 -0
  1455. package/extensions/feishu/src/reply-dispatcher.ts +184 -0
  1456. package/extensions/feishu/src/runtime.ts +14 -0
  1457. package/extensions/feishu/src/send.ts +358 -0
  1458. package/extensions/feishu/src/targets.ts +78 -0
  1459. package/extensions/feishu/src/tools-config.ts +21 -0
  1460. package/extensions/feishu/src/types.ts +75 -0
  1461. package/extensions/feishu/src/typing.ts +80 -0
  1462. package/extensions/feishu/src/wiki-schema.ts +55 -0
  1463. package/extensions/feishu/src/wiki.ts +232 -0
  1464. package/extensions/google-antigravity-auth/README.md +24 -0
  1465. package/extensions/google-antigravity-auth/atlas.plugin.json +9 -0
  1466. package/extensions/google-antigravity-auth/index.ts +458 -0
  1467. package/extensions/google-antigravity-auth/node_modules/.bin/atlas +22 -0
  1468. package/extensions/google-antigravity-auth/package.json +14 -0
  1469. package/extensions/google-gemini-cli-auth/README.md +35 -0
  1470. package/extensions/google-gemini-cli-auth/atlas.plugin.json +9 -0
  1471. package/extensions/google-gemini-cli-auth/index.ts +88 -0
  1472. package/extensions/google-gemini-cli-auth/node_modules/.bin/atlas +22 -0
  1473. package/extensions/google-gemini-cli-auth/oauth.test.ts +240 -0
  1474. package/extensions/google-gemini-cli-auth/oauth.ts +662 -0
  1475. package/extensions/google-gemini-cli-auth/package.json +14 -0
  1476. package/extensions/googlechat/atlas.plugin.json +9 -0
  1477. package/extensions/googlechat/index.ts +19 -0
  1478. package/extensions/googlechat/node_modules/.bin/atlas +22 -0
  1479. package/extensions/googlechat/package.json +39 -0
  1480. package/extensions/googlechat/src/accounts.ts +147 -0
  1481. package/extensions/googlechat/src/actions.ts +181 -0
  1482. package/extensions/googlechat/src/api.test.ts +61 -0
  1483. package/extensions/googlechat/src/api.ts +282 -0
  1484. package/extensions/googlechat/src/auth.ts +137 -0
  1485. package/extensions/googlechat/src/channel.ts +583 -0
  1486. package/extensions/googlechat/src/monitor.test.ts +22 -0
  1487. package/extensions/googlechat/src/monitor.ts +960 -0
  1488. package/extensions/googlechat/src/onboarding.ts +269 -0
  1489. package/extensions/googlechat/src/runtime.ts +14 -0
  1490. package/extensions/googlechat/src/targets.test.ts +32 -0
  1491. package/extensions/googlechat/src/targets.ts +65 -0
  1492. package/extensions/googlechat/src/types.config.ts +3 -0
  1493. package/extensions/googlechat/src/types.ts +73 -0
  1494. package/extensions/imessage/atlas.plugin.json +9 -0
  1495. package/extensions/imessage/index.ts +17 -0
  1496. package/extensions/imessage/node_modules/.bin/atlas +22 -0
  1497. package/extensions/imessage/package.json +14 -0
  1498. package/extensions/imessage/src/channel.ts +294 -0
  1499. package/extensions/imessage/src/runtime.ts +14 -0
  1500. package/extensions/line/atlas.plugin.json +9 -0
  1501. package/extensions/line/index.ts +19 -0
  1502. package/extensions/line/node_modules/.bin/atlas +22 -0
  1503. package/extensions/line/package.json +29 -0
  1504. package/extensions/line/src/card-command.ts +344 -0
  1505. package/extensions/line/src/channel.logout.test.ts +99 -0
  1506. package/extensions/line/src/channel.sendPayload.test.ts +306 -0
  1507. package/extensions/line/src/channel.ts +780 -0
  1508. package/extensions/line/src/runtime.ts +14 -0
  1509. package/extensions/llm-task/README.md +97 -0
  1510. package/extensions/llm-task/atlas.plugin.json +21 -0
  1511. package/extensions/llm-task/index.ts +6 -0
  1512. package/extensions/llm-task/node_modules/.bin/atlas +22 -0
  1513. package/extensions/llm-task/package.json +14 -0
  1514. package/extensions/llm-task/src/llm-task-tool.test.ts +138 -0
  1515. package/extensions/llm-task/src/llm-task-tool.ts +245 -0
  1516. package/extensions/lobster/README.md +75 -0
  1517. package/extensions/lobster/SKILL.md +97 -0
  1518. package/extensions/lobster/atlas.plugin.json +10 -0
  1519. package/extensions/lobster/index.ts +14 -0
  1520. package/extensions/lobster/node_modules/.bin/atlas +22 -0
  1521. package/extensions/lobster/package.json +14 -0
  1522. package/extensions/lobster/src/lobster-tool.test.ts +247 -0
  1523. package/extensions/lobster/src/lobster-tool.ts +328 -0
  1524. package/extensions/matrix/CHANGELOG.md +111 -0
  1525. package/extensions/matrix/atlas.plugin.json +9 -0
  1526. package/extensions/matrix/index.ts +17 -0
  1527. package/extensions/matrix/node_modules/.bin/atlas +22 -0
  1528. package/extensions/matrix/node_modules/.bin/markdown-it +22 -0
  1529. package/extensions/matrix/package.json +36 -0
  1530. package/extensions/matrix/src/actions.ts +195 -0
  1531. package/extensions/matrix/src/channel.directory.test.ts +64 -0
  1532. package/extensions/matrix/src/channel.ts +439 -0
  1533. package/extensions/matrix/src/config-schema.ts +63 -0
  1534. package/extensions/matrix/src/directory-live.ts +188 -0
  1535. package/extensions/matrix/src/group-mentions.ts +66 -0
  1536. package/extensions/matrix/src/matrix/accounts.test.ts +82 -0
  1537. package/extensions/matrix/src/matrix/accounts.ts +65 -0
  1538. package/extensions/matrix/src/matrix/actions/client.ts +57 -0
  1539. package/extensions/matrix/src/matrix/actions/messages.ts +128 -0
  1540. package/extensions/matrix/src/matrix/actions/pins.ts +76 -0
  1541. package/extensions/matrix/src/matrix/actions/reactions.ts +96 -0
  1542. package/extensions/matrix/src/matrix/actions/room.ts +85 -0
  1543. package/extensions/matrix/src/matrix/actions/summary.ts +75 -0
  1544. package/extensions/matrix/src/matrix/actions/types.ts +84 -0
  1545. package/extensions/matrix/src/matrix/actions.ts +15 -0
  1546. package/extensions/matrix/src/matrix/active-client.ts +11 -0
  1547. package/extensions/matrix/src/matrix/client/config.ts +160 -0
  1548. package/extensions/matrix/src/matrix/client/create-client.ts +123 -0
  1549. package/extensions/matrix/src/matrix/client/logging.ts +36 -0
  1550. package/extensions/matrix/src/matrix/client/runtime.ts +4 -0
  1551. package/extensions/matrix/src/matrix/client/shared.ts +170 -0
  1552. package/extensions/matrix/src/matrix/client/storage.ts +131 -0
  1553. package/extensions/matrix/src/matrix/client/types.ts +34 -0
  1554. package/extensions/matrix/src/matrix/client.test.ts +56 -0
  1555. package/extensions/matrix/src/matrix/client.ts +5 -0
  1556. package/extensions/matrix/src/matrix/credentials.ts +105 -0
  1557. package/extensions/matrix/src/matrix/deps.ts +60 -0
  1558. package/extensions/matrix/src/matrix/format.test.ts +33 -0
  1559. package/extensions/matrix/src/matrix/format.ts +22 -0
  1560. package/extensions/matrix/src/matrix/index.ts +11 -0
  1561. package/extensions/matrix/src/matrix/monitor/allowlist.test.ts +45 -0
  1562. package/extensions/matrix/src/matrix/monitor/allowlist.ts +103 -0
  1563. package/extensions/matrix/src/matrix/monitor/auto-join.ts +71 -0
  1564. package/extensions/matrix/src/matrix/monitor/direct.ts +104 -0
  1565. package/extensions/matrix/src/matrix/monitor/events.ts +101 -0
  1566. package/extensions/matrix/src/matrix/monitor/handler.ts +665 -0
  1567. package/extensions/matrix/src/matrix/monitor/index.ts +338 -0
  1568. package/extensions/matrix/src/matrix/monitor/location.ts +100 -0
  1569. package/extensions/matrix/src/matrix/monitor/media.test.ts +102 -0
  1570. package/extensions/matrix/src/matrix/monitor/media.ts +113 -0
  1571. package/extensions/matrix/src/matrix/monitor/mentions.ts +31 -0
  1572. package/extensions/matrix/src/matrix/monitor/replies.ts +97 -0
  1573. package/extensions/matrix/src/matrix/monitor/room-info.ts +55 -0
  1574. package/extensions/matrix/src/matrix/monitor/rooms.test.ts +39 -0
  1575. package/extensions/matrix/src/matrix/monitor/rooms.ts +47 -0
  1576. package/extensions/matrix/src/matrix/monitor/threads.ts +68 -0
  1577. package/extensions/matrix/src/matrix/monitor/types.ts +39 -0
  1578. package/extensions/matrix/src/matrix/poll-types.test.ts +21 -0
  1579. package/extensions/matrix/src/matrix/poll-types.ts +166 -0
  1580. package/extensions/matrix/src/matrix/probe.ts +70 -0
  1581. package/extensions/matrix/src/matrix/send/client.ts +66 -0
  1582. package/extensions/matrix/src/matrix/send/formatting.ts +89 -0
  1583. package/extensions/matrix/src/matrix/send/media.ts +229 -0
  1584. package/extensions/matrix/src/matrix/send/targets.test.ts +98 -0
  1585. package/extensions/matrix/src/matrix/send/targets.ts +147 -0
  1586. package/extensions/matrix/src/matrix/send/types.ts +109 -0
  1587. package/extensions/matrix/src/matrix/send.test.ts +171 -0
  1588. package/extensions/matrix/src/matrix/send.ts +260 -0
  1589. package/extensions/matrix/src/onboarding.ts +449 -0
  1590. package/extensions/matrix/src/outbound.ts +52 -0
  1591. package/extensions/matrix/src/resolve-targets.test.ts +48 -0
  1592. package/extensions/matrix/src/resolve-targets.ts +135 -0
  1593. package/extensions/matrix/src/runtime.ts +14 -0
  1594. package/extensions/matrix/src/tool-actions.ts +164 -0
  1595. package/extensions/matrix/src/types.ts +97 -0
  1596. package/extensions/mattermost/atlas.plugin.json +9 -0
  1597. package/extensions/mattermost/index.ts +17 -0
  1598. package/extensions/mattermost/node_modules/.bin/atlas +22 -0
  1599. package/extensions/mattermost/package.json +28 -0
  1600. package/extensions/mattermost/src/channel.test.ts +72 -0
  1601. package/extensions/mattermost/src/channel.ts +337 -0
  1602. package/extensions/mattermost/src/config-schema.ts +56 -0
  1603. package/extensions/mattermost/src/group-mentions.ts +15 -0
  1604. package/extensions/mattermost/src/mattermost/accounts.ts +128 -0
  1605. package/extensions/mattermost/src/mattermost/client.ts +220 -0
  1606. package/extensions/mattermost/src/mattermost/index.ts +9 -0
  1607. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +166 -0
  1608. package/extensions/mattermost/src/mattermost/monitor.ts +991 -0
  1609. package/extensions/mattermost/src/mattermost/probe.ts +74 -0
  1610. package/extensions/mattermost/src/mattermost/send.ts +231 -0
  1611. package/extensions/mattermost/src/normalize.ts +46 -0
  1612. package/extensions/mattermost/src/onboarding-helpers.ts +44 -0
  1613. package/extensions/mattermost/src/onboarding.ts +186 -0
  1614. package/extensions/mattermost/src/runtime.ts +14 -0
  1615. package/extensions/mattermost/src/types.ts +52 -0
  1616. package/extensions/memory-core/atlas.plugin.json +9 -0
  1617. package/extensions/memory-core/index.ts +38 -0
  1618. package/extensions/memory-core/node_modules/.bin/atlas +22 -0
  1619. package/extensions/memory-core/package.json +17 -0
  1620. package/extensions/memory-lancedb/atlas.plugin.json +60 -0
  1621. package/extensions/memory-lancedb/config.ts +139 -0
  1622. package/extensions/memory-lancedb/index.test.ts +295 -0
  1623. package/extensions/memory-lancedb/index.ts +622 -0
  1624. package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +22 -0
  1625. package/extensions/memory-lancedb/node_modules/.bin/atlas +22 -0
  1626. package/extensions/memory-lancedb/node_modules/.bin/openai +22 -0
  1627. package/extensions/memory-lancedb/package.json +19 -0
  1628. package/extensions/minimax-portal-auth/README.md +33 -0
  1629. package/extensions/minimax-portal-auth/atlas.plugin.json +9 -0
  1630. package/extensions/minimax-portal-auth/index.ts +155 -0
  1631. package/extensions/minimax-portal-auth/node_modules/.bin/atlas +22 -0
  1632. package/extensions/minimax-portal-auth/oauth.ts +247 -0
  1633. package/extensions/minimax-portal-auth/package.json +14 -0
  1634. package/extensions/msteams/CHANGELOG.md +107 -0
  1635. package/extensions/msteams/atlas.plugin.json +9 -0
  1636. package/extensions/msteams/index.ts +17 -0
  1637. package/extensions/msteams/node_modules/.bin/atlas +22 -0
  1638. package/extensions/msteams/package.json +39 -0
  1639. package/extensions/msteams/src/attachments/download.ts +283 -0
  1640. package/extensions/msteams/src/attachments/graph.ts +353 -0
  1641. package/extensions/msteams/src/attachments/html.ts +90 -0
  1642. package/extensions/msteams/src/attachments/payload.ts +22 -0
  1643. package/extensions/msteams/src/attachments/shared.ts +291 -0
  1644. package/extensions/msteams/src/attachments/types.ts +37 -0
  1645. package/extensions/msteams/src/attachments.test.ts +459 -0
  1646. package/extensions/msteams/src/attachments.ts +18 -0
  1647. package/extensions/msteams/src/channel.directory.test.ts +48 -0
  1648. package/extensions/msteams/src/channel.ts +459 -0
  1649. package/extensions/msteams/src/conversation-store-fs.test.ts +88 -0
  1650. package/extensions/msteams/src/conversation-store-fs.ts +165 -0
  1651. package/extensions/msteams/src/conversation-store-memory.ts +47 -0
  1652. package/extensions/msteams/src/conversation-store.ts +41 -0
  1653. package/extensions/msteams/src/directory-live.ts +205 -0
  1654. package/extensions/msteams/src/errors.test.ts +45 -0
  1655. package/extensions/msteams/src/errors.ts +190 -0
  1656. package/extensions/msteams/src/file-consent-helpers.test.ts +243 -0
  1657. package/extensions/msteams/src/file-consent-helpers.ts +73 -0
  1658. package/extensions/msteams/src/file-consent.ts +126 -0
  1659. package/extensions/msteams/src/graph-chat.ts +53 -0
  1660. package/extensions/msteams/src/graph-upload.ts +453 -0
  1661. package/extensions/msteams/src/inbound.test.ts +66 -0
  1662. package/extensions/msteams/src/inbound.ts +48 -0
  1663. package/extensions/msteams/src/index.ts +4 -0
  1664. package/extensions/msteams/src/media-helpers.test.ts +189 -0
  1665. package/extensions/msteams/src/media-helpers.ts +86 -0
  1666. package/extensions/msteams/src/messenger.test.ts +248 -0
  1667. package/extensions/msteams/src/messenger.ts +495 -0
  1668. package/extensions/msteams/src/monitor-handler/inbound-media.ts +128 -0
  1669. package/extensions/msteams/src/monitor-handler/message-handler.ts +641 -0
  1670. package/extensions/msteams/src/monitor-handler.ts +162 -0
  1671. package/extensions/msteams/src/monitor-types.ts +5 -0
  1672. package/extensions/msteams/src/monitor.ts +295 -0
  1673. package/extensions/msteams/src/onboarding.ts +431 -0
  1674. package/extensions/msteams/src/outbound.ts +46 -0
  1675. package/extensions/msteams/src/pending-uploads.ts +89 -0
  1676. package/extensions/msteams/src/policy.test.ts +209 -0
  1677. package/extensions/msteams/src/policy.ts +273 -0
  1678. package/extensions/msteams/src/polls-store-memory.ts +32 -0
  1679. package/extensions/msteams/src/polls-store.test.ts +38 -0
  1680. package/extensions/msteams/src/polls.test.ts +72 -0
  1681. package/extensions/msteams/src/polls.ts +315 -0
  1682. package/extensions/msteams/src/probe.test.ts +58 -0
  1683. package/extensions/msteams/src/probe.ts +107 -0
  1684. package/extensions/msteams/src/reply-dispatcher.ts +132 -0
  1685. package/extensions/msteams/src/resolve-allowlist.ts +297 -0
  1686. package/extensions/msteams/src/runtime.ts +14 -0
  1687. package/extensions/msteams/src/sdk-types.ts +19 -0
  1688. package/extensions/msteams/src/sdk.ts +33 -0
  1689. package/extensions/msteams/src/send-context.ts +164 -0
  1690. package/extensions/msteams/src/send.ts +519 -0
  1691. package/extensions/msteams/src/sent-message-cache.test.ts +15 -0
  1692. package/extensions/msteams/src/sent-message-cache.ts +47 -0
  1693. package/extensions/msteams/src/storage.ts +25 -0
  1694. package/extensions/msteams/src/store-fs.ts +83 -0
  1695. package/extensions/msteams/src/token.ts +19 -0
  1696. package/extensions/nextcloud-talk/atlas.plugin.json +9 -0
  1697. package/extensions/nextcloud-talk/index.ts +17 -0
  1698. package/extensions/nextcloud-talk/node_modules/.bin/atlas +22 -0
  1699. package/extensions/nextcloud-talk/package.json +33 -0
  1700. package/extensions/nextcloud-talk/src/accounts.ts +174 -0
  1701. package/extensions/nextcloud-talk/src/channel.ts +409 -0
  1702. package/extensions/nextcloud-talk/src/config-schema.ts +79 -0
  1703. package/extensions/nextcloud-talk/src/format.ts +79 -0
  1704. package/extensions/nextcloud-talk/src/inbound.ts +327 -0
  1705. package/extensions/nextcloud-talk/src/monitor.ts +246 -0
  1706. package/extensions/nextcloud-talk/src/normalize.ts +39 -0
  1707. package/extensions/nextcloud-talk/src/onboarding.ts +343 -0
  1708. package/extensions/nextcloud-talk/src/policy.test.ts +33 -0
  1709. package/extensions/nextcloud-talk/src/policy.ts +180 -0
  1710. package/extensions/nextcloud-talk/src/room-info.ts +125 -0
  1711. package/extensions/nextcloud-talk/src/runtime.ts +14 -0
  1712. package/extensions/nextcloud-talk/src/send.ts +215 -0
  1713. package/extensions/nextcloud-talk/src/signature.ts +72 -0
  1714. package/extensions/nextcloud-talk/src/types.ts +181 -0
  1715. package/extensions/nostr/CHANGELOG.md +98 -0
  1716. package/extensions/nostr/README.md +136 -0
  1717. package/extensions/nostr/atlas.plugin.json +9 -0
  1718. package/extensions/nostr/index.ts +68 -0
  1719. package/extensions/nostr/node_modules/.bin/atlas +22 -0
  1720. package/extensions/nostr/node_modules/.bin/tsc +22 -0
  1721. package/extensions/nostr/node_modules/.bin/tsserver +22 -0
  1722. package/extensions/nostr/package.json +34 -0
  1723. package/extensions/nostr/src/channel.test.ts +151 -0
  1724. package/extensions/nostr/src/channel.ts +353 -0
  1725. package/extensions/nostr/src/config-schema.ts +90 -0
  1726. package/extensions/nostr/src/metrics.ts +478 -0
  1727. package/extensions/nostr/src/nostr-bus.fuzz.test.ts +533 -0
  1728. package/extensions/nostr/src/nostr-bus.integration.test.ts +448 -0
  1729. package/extensions/nostr/src/nostr-bus.test.ts +199 -0
  1730. package/extensions/nostr/src/nostr-bus.ts +715 -0
  1731. package/extensions/nostr/src/nostr-profile-http.test.ts +378 -0
  1732. package/extensions/nostr/src/nostr-profile-http.ts +546 -0
  1733. package/extensions/nostr/src/nostr-profile-import.test.ts +119 -0
  1734. package/extensions/nostr/src/nostr-profile-import.ts +262 -0
  1735. package/extensions/nostr/src/nostr-profile.fuzz.test.ts +477 -0
  1736. package/extensions/nostr/src/nostr-profile.test.ts +410 -0
  1737. package/extensions/nostr/src/nostr-profile.ts +277 -0
  1738. package/extensions/nostr/src/nostr-state-store.test.ts +131 -0
  1739. package/extensions/nostr/src/nostr-state-store.ts +226 -0
  1740. package/extensions/nostr/src/runtime.ts +14 -0
  1741. package/extensions/nostr/src/seen-tracker.ts +303 -0
  1742. package/extensions/nostr/src/types.test.ts +157 -0
  1743. package/extensions/nostr/src/types.ts +101 -0
  1744. package/extensions/nostr/test/setup.ts +5 -0
  1745. package/extensions/open-prose/README.md +25 -0
  1746. package/extensions/open-prose/atlas.plugin.json +11 -0
  1747. package/extensions/open-prose/index.ts +5 -0
  1748. package/extensions/open-prose/node_modules/.bin/atlas +22 -0
  1749. package/extensions/open-prose/package.json +14 -0
  1750. package/extensions/open-prose/skills/prose/LICENSE +21 -0
  1751. package/extensions/open-prose/skills/prose/SKILL.md +323 -0
  1752. package/extensions/open-prose/skills/prose/alt-borges.md +141 -0
  1753. package/extensions/open-prose/skills/prose/alts/arabian-nights.md +358 -0
  1754. package/extensions/open-prose/skills/prose/alts/borges.md +360 -0
  1755. package/extensions/open-prose/skills/prose/alts/folk.md +322 -0
  1756. package/extensions/open-prose/skills/prose/alts/homer.md +346 -0
  1757. package/extensions/open-prose/skills/prose/alts/kafka.md +373 -0
  1758. package/extensions/open-prose/skills/prose/compiler.md +2971 -0
  1759. package/extensions/open-prose/skills/prose/examples/01-hello-world.prose +4 -0
  1760. package/extensions/open-prose/skills/prose/examples/02-research-and-summarize.prose +6 -0
  1761. package/extensions/open-prose/skills/prose/examples/03-code-review.prose +17 -0
  1762. package/extensions/open-prose/skills/prose/examples/04-write-and-refine.prose +14 -0
  1763. package/extensions/open-prose/skills/prose/examples/05-debug-issue.prose +20 -0
  1764. package/extensions/open-prose/skills/prose/examples/06-explain-codebase.prose +17 -0
  1765. package/extensions/open-prose/skills/prose/examples/07-refactor.prose +20 -0
  1766. package/extensions/open-prose/skills/prose/examples/08-blog-post.prose +20 -0
  1767. package/extensions/open-prose/skills/prose/examples/09-research-with-agents.prose +25 -0
  1768. package/extensions/open-prose/skills/prose/examples/10-code-review-agents.prose +32 -0
  1769. package/extensions/open-prose/skills/prose/examples/11-skills-and-imports.prose +27 -0
  1770. package/extensions/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +43 -0
  1771. package/extensions/open-prose/skills/prose/examples/13-variables-and-context.prose +51 -0
  1772. package/extensions/open-prose/skills/prose/examples/14-composition-blocks.prose +48 -0
  1773. package/extensions/open-prose/skills/prose/examples/15-inline-sequences.prose +23 -0
  1774. package/extensions/open-prose/skills/prose/examples/16-parallel-reviews.prose +19 -0
  1775. package/extensions/open-prose/skills/prose/examples/17-parallel-research.prose +19 -0
  1776. package/extensions/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +36 -0
  1777. package/extensions/open-prose/skills/prose/examples/19-advanced-parallel.prose +71 -0
  1778. package/extensions/open-prose/skills/prose/examples/20-fixed-loops.prose +20 -0
  1779. package/extensions/open-prose/skills/prose/examples/21-pipeline-operations.prose +35 -0
  1780. package/extensions/open-prose/skills/prose/examples/22-error-handling.prose +51 -0
  1781. package/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose +63 -0
  1782. package/extensions/open-prose/skills/prose/examples/24-choice-blocks.prose +86 -0
  1783. package/extensions/open-prose/skills/prose/examples/25-conditionals.prose +114 -0
  1784. package/extensions/open-prose/skills/prose/examples/26-parameterized-blocks.prose +100 -0
  1785. package/extensions/open-prose/skills/prose/examples/27-string-interpolation.prose +105 -0
  1786. package/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +37 -0
  1787. package/extensions/open-prose/skills/prose/examples/28-gas-town.prose +1572 -0
  1788. package/extensions/open-prose/skills/prose/examples/29-captains-chair.prose +218 -0
  1789. package/extensions/open-prose/skills/prose/examples/30-captains-chair-simple.prose +42 -0
  1790. package/extensions/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +145 -0
  1791. package/extensions/open-prose/skills/prose/examples/33-pr-review-autofix.prose +168 -0
  1792. package/extensions/open-prose/skills/prose/examples/34-content-pipeline.prose +204 -0
  1793. package/extensions/open-prose/skills/prose/examples/35-feature-factory.prose +296 -0
  1794. package/extensions/open-prose/skills/prose/examples/36-bug-hunter.prose +237 -0
  1795. package/extensions/open-prose/skills/prose/examples/37-the-forge.prose +1474 -0
  1796. package/extensions/open-prose/skills/prose/examples/38-skill-scan.prose +455 -0
  1797. package/extensions/open-prose/skills/prose/examples/39-architect-by-simulation.prose +277 -0
  1798. package/extensions/open-prose/skills/prose/examples/40-rlm-self-refine.prose +32 -0
  1799. package/extensions/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +38 -0
  1800. package/extensions/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +46 -0
  1801. package/extensions/open-prose/skills/prose/examples/43-rlm-pairwise.prose +50 -0
  1802. package/extensions/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +261 -0
  1803. package/extensions/open-prose/skills/prose/examples/45-plugin-release.prose +159 -0
  1804. package/extensions/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +637 -0
  1805. package/extensions/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +148 -0
  1806. package/extensions/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +225 -0
  1807. package/extensions/open-prose/skills/prose/examples/47-language-self-improvement.prose +356 -0
  1808. package/extensions/open-prose/skills/prose/examples/48-habit-miner.prose +445 -0
  1809. package/extensions/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +210 -0
  1810. package/extensions/open-prose/skills/prose/examples/README.md +391 -0
  1811. package/extensions/open-prose/skills/prose/examples/roadmap/README.md +22 -0
  1812. package/extensions/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +20 -0
  1813. package/extensions/open-prose/skills/prose/examples/roadmap/parallel-review.prose +18 -0
  1814. package/extensions/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +17 -0
  1815. package/extensions/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +223 -0
  1816. package/extensions/open-prose/skills/prose/guidance/antipatterns.md +951 -0
  1817. package/extensions/open-prose/skills/prose/guidance/patterns.md +700 -0
  1818. package/extensions/open-prose/skills/prose/guidance/system-prompt.md +180 -0
  1819. package/extensions/open-prose/skills/prose/help.md +144 -0
  1820. package/extensions/open-prose/skills/prose/lib/README.md +108 -0
  1821. package/extensions/open-prose/skills/prose/lib/calibrator.prose +215 -0
  1822. package/extensions/open-prose/skills/prose/lib/cost-analyzer.prose +174 -0
  1823. package/extensions/open-prose/skills/prose/lib/error-forensics.prose +250 -0
  1824. package/extensions/open-prose/skills/prose/lib/inspector.prose +196 -0
  1825. package/extensions/open-prose/skills/prose/lib/profiler.prose +460 -0
  1826. package/extensions/open-prose/skills/prose/lib/program-improver.prose +275 -0
  1827. package/extensions/open-prose/skills/prose/lib/project-memory.prose +118 -0
  1828. package/extensions/open-prose/skills/prose/lib/user-memory.prose +93 -0
  1829. package/extensions/open-prose/skills/prose/lib/vm-improver.prose +243 -0
  1830. package/extensions/open-prose/skills/prose/primitives/session.md +593 -0
  1831. package/extensions/open-prose/skills/prose/prose.md +1237 -0
  1832. package/extensions/open-prose/skills/prose/state/filesystem.md +498 -0
  1833. package/extensions/open-prose/skills/prose/state/in-context.md +384 -0
  1834. package/extensions/open-prose/skills/prose/state/postgres.md +880 -0
  1835. package/extensions/open-prose/skills/prose/state/sqlite.md +574 -0
  1836. package/extensions/qwen-portal-auth/README.md +24 -0
  1837. package/extensions/qwen-portal-auth/atlas.plugin.json +9 -0
  1838. package/extensions/qwen-portal-auth/index.ts +130 -0
  1839. package/extensions/qwen-portal-auth/oauth.ts +190 -0
  1840. package/extensions/signal/atlas.plugin.json +9 -0
  1841. package/extensions/signal/index.ts +17 -0
  1842. package/extensions/signal/node_modules/.bin/atlas +22 -0
  1843. package/extensions/signal/package.json +14 -0
  1844. package/extensions/signal/src/channel.ts +315 -0
  1845. package/extensions/signal/src/runtime.ts +14 -0
  1846. package/extensions/slack/atlas.plugin.json +9 -0
  1847. package/extensions/slack/index.ts +17 -0
  1848. package/extensions/slack/node_modules/.bin/atlas +22 -0
  1849. package/extensions/slack/package.json +14 -0
  1850. package/extensions/slack/src/channel.ts +604 -0
  1851. package/extensions/slack/src/runtime.ts +14 -0
  1852. package/extensions/telegram/atlas.plugin.json +9 -0
  1853. package/extensions/telegram/index.ts +17 -0
  1854. package/extensions/telegram/node_modules/.bin/atlas +22 -0
  1855. package/extensions/telegram/package.json +14 -0
  1856. package/extensions/telegram/src/channel.ts +482 -0
  1857. package/extensions/telegram/src/runtime.ts +14 -0
  1858. package/extensions/tlon/README.md +5 -0
  1859. package/extensions/tlon/atlas.plugin.json +9 -0
  1860. package/extensions/tlon/index.ts +17 -0
  1861. package/extensions/tlon/node_modules/.bin/atlas +22 -0
  1862. package/extensions/tlon/package.json +33 -0
  1863. package/extensions/tlon/src/channel.ts +392 -0
  1864. package/extensions/tlon/src/config-schema.test.ts +31 -0
  1865. package/extensions/tlon/src/config-schema.ts +45 -0
  1866. package/extensions/tlon/src/monitor/discovery.ts +76 -0
  1867. package/extensions/tlon/src/monitor/history.ts +90 -0
  1868. package/extensions/tlon/src/monitor/index.ts +580 -0
  1869. package/extensions/tlon/src/monitor/processed-messages.test.ts +23 -0
  1870. package/extensions/tlon/src/monitor/processed-messages.ts +46 -0
  1871. package/extensions/tlon/src/monitor/utils.ts +106 -0
  1872. package/extensions/tlon/src/onboarding.ts +214 -0
  1873. package/extensions/tlon/src/runtime.ts +14 -0
  1874. package/extensions/tlon/src/targets.ts +89 -0
  1875. package/extensions/tlon/src/types.ts +92 -0
  1876. package/extensions/tlon/src/urbit/auth.ts +18 -0
  1877. package/extensions/tlon/src/urbit/http-api.ts +38 -0
  1878. package/extensions/tlon/src/urbit/send.test.ts +38 -0
  1879. package/extensions/tlon/src/urbit/send.ts +131 -0
  1880. package/extensions/tlon/src/urbit/sse-client.test.ts +40 -0
  1881. package/extensions/tlon/src/urbit/sse-client.ts +395 -0
  1882. package/extensions/twitch/CHANGELOG.md +69 -0
  1883. package/extensions/twitch/README.md +89 -0
  1884. package/extensions/twitch/atlas.plugin.json +9 -0
  1885. package/extensions/twitch/index.ts +20 -0
  1886. package/extensions/twitch/node_modules/.bin/atlas +22 -0
  1887. package/extensions/twitch/package.json +20 -0
  1888. package/extensions/twitch/src/access-control.test.ts +489 -0
  1889. package/extensions/twitch/src/access-control.ts +166 -0
  1890. package/extensions/twitch/src/actions.ts +173 -0
  1891. package/extensions/twitch/src/client-manager-registry.ts +115 -0
  1892. package/extensions/twitch/src/config-schema.ts +84 -0
  1893. package/extensions/twitch/src/config.test.ts +87 -0
  1894. package/extensions/twitch/src/config.ts +116 -0
  1895. package/extensions/twitch/src/monitor.ts +272 -0
  1896. package/extensions/twitch/src/onboarding.test.ts +311 -0
  1897. package/extensions/twitch/src/onboarding.ts +417 -0
  1898. package/extensions/twitch/src/outbound.test.ts +373 -0
  1899. package/extensions/twitch/src/outbound.ts +184 -0
  1900. package/extensions/twitch/src/plugin.test.ts +39 -0
  1901. package/extensions/twitch/src/plugin.ts +274 -0
  1902. package/extensions/twitch/src/probe.test.ts +195 -0
  1903. package/extensions/twitch/src/probe.ts +120 -0
  1904. package/extensions/twitch/src/resolver.ts +137 -0
  1905. package/extensions/twitch/src/runtime.ts +14 -0
  1906. package/extensions/twitch/src/send.test.ts +289 -0
  1907. package/extensions/twitch/src/send.ts +136 -0
  1908. package/extensions/twitch/src/status.test.ts +270 -0
  1909. package/extensions/twitch/src/status.ts +178 -0
  1910. package/extensions/twitch/src/token.test.ts +171 -0
  1911. package/extensions/twitch/src/token.ts +91 -0
  1912. package/extensions/twitch/src/twitch-client.test.ts +589 -0
  1913. package/extensions/twitch/src/twitch-client.ts +277 -0
  1914. package/extensions/twitch/src/types.ts +143 -0
  1915. package/extensions/twitch/src/utils/markdown.ts +98 -0
  1916. package/extensions/twitch/src/utils/twitch.ts +78 -0
  1917. package/extensions/twitch/test/setup.ts +7 -0
  1918. package/extensions/voice-call/CHANGELOG.md +133 -0
  1919. package/extensions/voice-call/README.md +139 -0
  1920. package/extensions/voice-call/atlas.plugin.json +559 -0
  1921. package/extensions/voice-call/index.ts +493 -0
  1922. package/extensions/voice-call/node_modules/.bin/atlas +22 -0
  1923. package/extensions/voice-call/package.json +19 -0
  1924. package/extensions/voice-call/src/allowlist.ts +19 -0
  1925. package/extensions/voice-call/src/cli.ts +279 -0
  1926. package/extensions/voice-call/src/config.test.ts +234 -0
  1927. package/extensions/voice-call/src/config.ts +523 -0
  1928. package/extensions/voice-call/src/core-bridge.ts +159 -0
  1929. package/extensions/voice-call/src/manager/context.ts +21 -0
  1930. package/extensions/voice-call/src/manager/events.ts +188 -0
  1931. package/extensions/voice-call/src/manager/lookup.ts +35 -0
  1932. package/extensions/voice-call/src/manager/outbound.ts +275 -0
  1933. package/extensions/voice-call/src/manager/state.ts +48 -0
  1934. package/extensions/voice-call/src/manager/store.ts +91 -0
  1935. package/extensions/voice-call/src/manager/timers.ts +89 -0
  1936. package/extensions/voice-call/src/manager/twiml.ts +9 -0
  1937. package/extensions/voice-call/src/manager.test.ts +224 -0
  1938. package/extensions/voice-call/src/manager.ts +887 -0
  1939. package/extensions/voice-call/src/media-stream.test.ts +96 -0
  1940. package/extensions/voice-call/src/media-stream.ts +411 -0
  1941. package/extensions/voice-call/src/providers/base.ts +67 -0
  1942. package/extensions/voice-call/src/providers/index.ts +10 -0
  1943. package/extensions/voice-call/src/providers/mock.ts +165 -0
  1944. package/extensions/voice-call/src/providers/plivo.test.ts +27 -0
  1945. package/extensions/voice-call/src/providers/plivo.ts +515 -0
  1946. package/extensions/voice-call/src/providers/stt-openai-realtime.ts +311 -0
  1947. package/extensions/voice-call/src/providers/telnyx.ts +371 -0
  1948. package/extensions/voice-call/src/providers/tts-openai.ts +259 -0
  1949. package/extensions/voice-call/src/providers/twilio/api.ts +42 -0
  1950. package/extensions/voice-call/src/providers/twilio/webhook.ts +32 -0
  1951. package/extensions/voice-call/src/providers/twilio.test.ts +60 -0
  1952. package/extensions/voice-call/src/providers/twilio.ts +626 -0
  1953. package/extensions/voice-call/src/response-generator.ts +158 -0
  1954. package/extensions/voice-call/src/runtime.ts +212 -0
  1955. package/extensions/voice-call/src/telephony-audio.ts +90 -0
  1956. package/extensions/voice-call/src/telephony-tts.ts +104 -0
  1957. package/extensions/voice-call/src/tunnel.ts +314 -0
  1958. package/extensions/voice-call/src/types.ts +272 -0
  1959. package/extensions/voice-call/src/utils.ts +14 -0
  1960. package/extensions/voice-call/src/voice-mapping.ts +67 -0
  1961. package/extensions/voice-call/src/webhook-security.test.ts +377 -0
  1962. package/extensions/voice-call/src/webhook-security.ts +689 -0
  1963. package/extensions/voice-call/src/webhook.ts +516 -0
  1964. package/extensions/whatsapp/atlas.plugin.json +9 -0
  1965. package/extensions/whatsapp/index.ts +17 -0
  1966. package/extensions/whatsapp/node_modules/.bin/atlas +22 -0
  1967. package/extensions/whatsapp/package.json +14 -0
  1968. package/extensions/whatsapp/src/channel.ts +508 -0
  1969. package/extensions/whatsapp/src/runtime.ts +14 -0
  1970. package/extensions/zalo/CHANGELOG.md +113 -0
  1971. package/extensions/zalo/README.md +50 -0
  1972. package/extensions/zalo/atlas.plugin.json +9 -0
  1973. package/extensions/zalo/index.ts +19 -0
  1974. package/extensions/zalo/node_modules/.bin/atlas +22 -0
  1975. package/extensions/zalo/package.json +36 -0
  1976. package/extensions/zalo/src/accounts.ts +80 -0
  1977. package/extensions/zalo/src/actions.ts +67 -0
  1978. package/extensions/zalo/src/api.ts +208 -0
  1979. package/extensions/zalo/src/channel.directory.test.ts +43 -0
  1980. package/extensions/zalo/src/channel.ts +414 -0
  1981. package/extensions/zalo/src/config-schema.ts +25 -0
  1982. package/extensions/zalo/src/monitor.ts +764 -0
  1983. package/extensions/zalo/src/monitor.webhook.test.ts +73 -0
  1984. package/extensions/zalo/src/onboarding.ts +401 -0
  1985. package/extensions/zalo/src/probe.ts +46 -0
  1986. package/extensions/zalo/src/proxy.ts +21 -0
  1987. package/extensions/zalo/src/runtime.ts +14 -0
  1988. package/extensions/zalo/src/send.ts +124 -0
  1989. package/extensions/zalo/src/status-issues.ts +53 -0
  1990. package/extensions/zalo/src/token.ts +63 -0
  1991. package/extensions/zalo/src/types.ts +44 -0
  1992. package/extensions/zalouser/CHANGELOG.md +85 -0
  1993. package/extensions/zalouser/README.md +225 -0
  1994. package/extensions/zalouser/atlas.plugin.json +9 -0
  1995. package/extensions/zalouser/index.ts +31 -0
  1996. package/extensions/zalouser/node_modules/.bin/atlas +22 -0
  1997. package/extensions/zalouser/package.json +36 -0
  1998. package/extensions/zalouser/src/accounts.ts +135 -0
  1999. package/extensions/zalouser/src/channel.test.ts +18 -0
  2000. package/extensions/zalouser/src/channel.ts +686 -0
  2001. package/extensions/zalouser/src/config-schema.ts +28 -0
  2002. package/extensions/zalouser/src/monitor.ts +601 -0
  2003. package/extensions/zalouser/src/onboarding.ts +504 -0
  2004. package/extensions/zalouser/src/probe.ts +28 -0
  2005. package/extensions/zalouser/src/runtime.ts +14 -0
  2006. package/extensions/zalouser/src/send.ts +160 -0
  2007. package/extensions/zalouser/src/status-issues.test.ts +57 -0
  2008. package/extensions/zalouser/src/status-issues.ts +89 -0
  2009. package/extensions/zalouser/src/tool.ts +164 -0
  2010. package/extensions/zalouser/src/types.ts +110 -0
  2011. package/extensions/zalouser/src/zca.ts +202 -0
  2012. package/package.json +225 -0
  2013. package/skills/1password/SKILL.md +70 -0
  2014. package/skills/1password/references/cli-examples.md +29 -0
  2015. package/skills/1password/references/get-started.md +17 -0
  2016. package/skills/apple-notes/SKILL.md +77 -0
  2017. package/skills/apple-reminders/SKILL.md +96 -0
  2018. package/skills/bear-notes/SKILL.md +107 -0
  2019. package/skills/blogwatcher/SKILL.md +69 -0
  2020. package/skills/blucli/SKILL.md +47 -0
  2021. package/skills/bluebubbles/SKILL.md +131 -0
  2022. package/skills/camsnap/SKILL.md +45 -0
  2023. package/skills/canvas/SKILL.md +198 -0
  2024. package/skills/clawhub/SKILL.md +77 -0
  2025. package/skills/coding-agent/SKILL.md +284 -0
  2026. package/skills/discord/SKILL.md +578 -0
  2027. package/skills/document-processor/SKILL.md +124 -0
  2028. package/skills/eightctl/SKILL.md +50 -0
  2029. package/skills/file-editor/SKILL.md +153 -0
  2030. package/skills/food-order/SKILL.md +48 -0
  2031. package/skills/gemini/SKILL.md +43 -0
  2032. package/skills/gifgrep/SKILL.md +79 -0
  2033. package/skills/github/SKILL.md +77 -0
  2034. package/skills/gog/SKILL.md +116 -0
  2035. package/skills/goplaces/SKILL.md +52 -0
  2036. package/skills/healthcheck/SKILL.md +245 -0
  2037. package/skills/himalaya/SKILL.md +257 -0
  2038. package/skills/himalaya/references/configuration.md +184 -0
  2039. package/skills/himalaya/references/message-composition.md +199 -0
  2040. package/skills/imsg/SKILL.md +74 -0
  2041. package/skills/local-places/SERVER_README.md +101 -0
  2042. package/skills/local-places/SKILL.md +102 -0
  2043. package/skills/local-places/pyproject.toml +21 -0
  2044. package/skills/local-places/src/local_places/__init__.py +2 -0
  2045. package/skills/local-places/src/local_places/google_places.py +314 -0
  2046. package/skills/local-places/src/local_places/main.py +65 -0
  2047. package/skills/local-places/src/local_places/schemas.py +107 -0
  2048. package/skills/mcporter/SKILL.md +61 -0
  2049. package/skills/model-usage/SKILL.md +69 -0
  2050. package/skills/model-usage/references/codexbar-cli.md +33 -0
  2051. package/skills/model-usage/scripts/model_usage.py +310 -0
  2052. package/skills/nano-banana-pro/SKILL.md +58 -0
  2053. package/skills/nano-banana-pro/scripts/generate_image.py +184 -0
  2054. package/skills/nano-pdf/SKILL.md +38 -0
  2055. package/skills/notion/SKILL.md +172 -0
  2056. package/skills/obsidian/SKILL.md +81 -0
  2057. package/skills/openai-image-gen/SKILL.md +89 -0
  2058. package/skills/openai-image-gen/scripts/gen.py +240 -0
  2059. package/skills/openai-whisper/SKILL.md +38 -0
  2060. package/skills/openai-whisper-api/SKILL.md +52 -0
  2061. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  2062. package/skills/openhue/SKILL.md +51 -0
  2063. package/skills/oracle/SKILL.md +125 -0
  2064. package/skills/ordercli/SKILL.md +78 -0
  2065. package/skills/peekaboo/SKILL.md +190 -0
  2066. package/skills/sag/SKILL.md +87 -0
  2067. package/skills/session-logs/SKILL.md +115 -0
  2068. package/skills/sherpa-onnx-tts/SKILL.md +103 -0
  2069. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  2070. package/skills/skill-creator/SKILL.md +370 -0
  2071. package/skills/skill-creator/license.txt +202 -0
  2072. package/skills/skill-creator/scripts/init_skill.py +378 -0
  2073. package/skills/skill-creator/scripts/package_skill.py +111 -0
  2074. package/skills/skill-creator/scripts/quick_validate.py +101 -0
  2075. package/skills/slack/SKILL.md +144 -0
  2076. package/skills/songsee/SKILL.md +49 -0
  2077. package/skills/sonoscli/SKILL.md +46 -0
  2078. package/skills/spotify-player/SKILL.md +64 -0
  2079. package/skills/summarize/SKILL.md +87 -0
  2080. package/skills/things-mac/SKILL.md +86 -0
  2081. package/skills/tmux/SKILL.md +135 -0
  2082. package/skills/tmux/scripts/find-sessions.sh +112 -0
  2083. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  2084. package/skills/trello/SKILL.md +95 -0
  2085. package/skills/video-frames/SKILL.md +46 -0
  2086. package/skills/video-frames/scripts/frame.sh +81 -0
  2087. package/skills/voice-call/SKILL.md +45 -0
  2088. package/skills/wacli/SKILL.md +72 -0
  2089. package/skills/weather/SKILL.md +54 -0
@@ -0,0 +1,2984 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
+ import { g as resolveStateDir, h as resolveOAuthPath } from "./paths-C2XPptKL.js";
3
+ import { n as DEFAULT_AGENT_ID } from "./session-key-ezJ78bLC.js";
4
+ import { t as createSubsystemLogger } from "./subsystem-1-F6BAP-.js";
5
+ import { h as resolveUserPath } from "./utils-BcIVMaVq.js";
6
+ import { a as resolveAgentModelPrimary } from "./agent-scope-BKOcVvmS.js";
7
+ import { a as saveJsonFile, i as loadJsonFile, r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-BxyQgqz1.js";
8
+ import { t as formatCliCommand } from "./command-format-CBU5jCY8.js";
9
+ import { t as isTruthyEnvValue } from "./env-zsgpOYKj.js";
10
+ import path from "node:path";
11
+ import fs from "node:fs";
12
+ import { execFileSync, execSync } from "node:child_process";
13
+ import lockfile from "proper-lockfile";
14
+ import { createHash, randomBytes } from "node:crypto";
15
+ import { getOAuthApiKey, getOAuthProviders } from "@earendil-works/pi-ai/oauth";
16
+ import { BedrockClient, ListFoundationModelsCommand } from "@aws-sdk/client-bedrock";
17
+ import { getEnvApiKey } from "@earendil-works/pi-ai";
18
+
19
+ //#region src/agents/defaults.ts
20
+ const DEFAULT_PROVIDER = "anthropic";
21
+ const DEFAULT_MODEL = "claude-opus-4-6";
22
+ const DEFAULT_CONTEXT_TOKENS = 2e5;
23
+
24
+ //#endregion
25
+ //#region src/agents/auth-profiles/constants.ts
26
+ const AUTH_STORE_VERSION = 1;
27
+ const AUTH_PROFILE_FILENAME = "auth-profiles.json";
28
+ const LEGACY_AUTH_FILENAME = "auth.json";
29
+ const CLAUDE_CLI_PROFILE_ID = "anthropic:claude-cli";
30
+ const CODEX_CLI_PROFILE_ID = "openai-codex:codex-cli";
31
+ const QWEN_CLI_PROFILE_ID = "qwen-portal:qwen-cli";
32
+ const MINIMAX_CLI_PROFILE_ID = "minimax-portal:minimax-cli";
33
+ const AUTH_STORE_LOCK_OPTIONS = {
34
+ retries: {
35
+ retries: 10,
36
+ factor: 2,
37
+ minTimeout: 100,
38
+ maxTimeout: 1e4,
39
+ randomize: true
40
+ },
41
+ stale: 3e4
42
+ };
43
+ const EXTERNAL_CLI_SYNC_TTL_MS = 900 * 1e3;
44
+ const EXTERNAL_CLI_NEAR_EXPIRY_MS = 600 * 1e3;
45
+ const log$1 = createSubsystemLogger("agents/auth-profiles");
46
+
47
+ //#endregion
48
+ //#region src/agents/auth-profiles/display.ts
49
+ function resolveAuthProfileDisplayLabel(params) {
50
+ const { cfg, store, profileId } = params;
51
+ const profile = store.profiles[profileId];
52
+ const email = cfg?.auth?.profiles?.[profileId]?.email?.trim() || (profile && "email" in profile ? profile.email?.trim() : void 0);
53
+ if (email) return `${profileId} (${email})`;
54
+ return profileId;
55
+ }
56
+
57
+ //#endregion
58
+ //#region src/agents/cli-credentials.ts
59
+ const log = createSubsystemLogger("agents/auth-profiles");
60
+ const QWEN_CLI_CREDENTIALS_RELATIVE_PATH = ".qwen/oauth_creds.json";
61
+ const MINIMAX_CLI_CREDENTIALS_RELATIVE_PATH = ".minimax/oauth_creds.json";
62
+ let qwenCliCache = null;
63
+ let minimaxCliCache = null;
64
+ function resolveQwenCliCredentialsPath(homeDir) {
65
+ const baseDir = homeDir ?? resolveUserPath("~");
66
+ return path.join(baseDir, QWEN_CLI_CREDENTIALS_RELATIVE_PATH);
67
+ }
68
+ function resolveMiniMaxCliCredentialsPath(homeDir) {
69
+ const baseDir = homeDir ?? resolveUserPath("~");
70
+ return path.join(baseDir, MINIMAX_CLI_CREDENTIALS_RELATIVE_PATH);
71
+ }
72
+ function readQwenCliCredentials(options) {
73
+ const raw = loadJsonFile(resolveQwenCliCredentialsPath(options?.homeDir));
74
+ if (!raw || typeof raw !== "object") return null;
75
+ const data = raw;
76
+ const accessToken = data.access_token;
77
+ const refreshToken = data.refresh_token;
78
+ const expiresAt = data.expiry_date;
79
+ if (typeof accessToken !== "string" || !accessToken) return null;
80
+ if (typeof refreshToken !== "string" || !refreshToken) return null;
81
+ if (typeof expiresAt !== "number" || !Number.isFinite(expiresAt)) return null;
82
+ return {
83
+ type: "oauth",
84
+ provider: "qwen-portal",
85
+ access: accessToken,
86
+ refresh: refreshToken,
87
+ expires: expiresAt
88
+ };
89
+ }
90
+ function readMiniMaxCliCredentials(options) {
91
+ const raw = loadJsonFile(resolveMiniMaxCliCredentialsPath(options?.homeDir));
92
+ if (!raw || typeof raw !== "object") return null;
93
+ const data = raw;
94
+ const accessToken = data.access_token;
95
+ const refreshToken = data.refresh_token;
96
+ const expiresAt = data.expiry_date;
97
+ if (typeof accessToken !== "string" || !accessToken) return null;
98
+ if (typeof refreshToken !== "string" || !refreshToken) return null;
99
+ if (typeof expiresAt !== "number" || !Number.isFinite(expiresAt)) return null;
100
+ return {
101
+ type: "oauth",
102
+ provider: "minimax-portal",
103
+ access: accessToken,
104
+ refresh: refreshToken,
105
+ expires: expiresAt
106
+ };
107
+ }
108
+ function readQwenCliCredentialsCached(options) {
109
+ const ttlMs = options?.ttlMs ?? 0;
110
+ const now = Date.now();
111
+ const cacheKey = resolveQwenCliCredentialsPath(options?.homeDir);
112
+ if (ttlMs > 0 && qwenCliCache && qwenCliCache.cacheKey === cacheKey && now - qwenCliCache.readAt < ttlMs) return qwenCliCache.value;
113
+ const value = readQwenCliCredentials({ homeDir: options?.homeDir });
114
+ if (ttlMs > 0) qwenCliCache = {
115
+ value,
116
+ readAt: now,
117
+ cacheKey
118
+ };
119
+ return value;
120
+ }
121
+ function readMiniMaxCliCredentialsCached(options) {
122
+ const ttlMs = options?.ttlMs ?? 0;
123
+ const now = Date.now();
124
+ const cacheKey = resolveMiniMaxCliCredentialsPath(options?.homeDir);
125
+ if (ttlMs > 0 && minimaxCliCache && minimaxCliCache.cacheKey === cacheKey && now - minimaxCliCache.readAt < ttlMs) return minimaxCliCache.value;
126
+ const value = readMiniMaxCliCredentials({ homeDir: options?.homeDir });
127
+ if (ttlMs > 0) minimaxCliCache = {
128
+ value,
129
+ readAt: now,
130
+ cacheKey
131
+ };
132
+ return value;
133
+ }
134
+
135
+ //#endregion
136
+ //#region src/agents/auth-profiles/external-cli-sync.ts
137
+ function shallowEqualOAuthCredentials(a, b) {
138
+ if (!a) return false;
139
+ if (a.type !== "oauth") return false;
140
+ 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;
141
+ }
142
+ function isExternalProfileFresh(cred, now) {
143
+ if (!cred) return false;
144
+ if (cred.type !== "oauth" && cred.type !== "token") return false;
145
+ if (cred.provider !== "qwen-portal" && cred.provider !== "minimax-portal") return false;
146
+ if (typeof cred.expires !== "number") return true;
147
+ return cred.expires > now + EXTERNAL_CLI_NEAR_EXPIRY_MS;
148
+ }
149
+ /** Sync external CLI credentials into the store for a given provider. */
150
+ function syncExternalCliCredentialsForProvider(store, profileId, provider, readCredentials, now) {
151
+ const existing = store.profiles[profileId];
152
+ const creds = !existing || existing.provider !== provider || !isExternalProfileFresh(existing, now) ? readCredentials() : null;
153
+ if (!creds) return false;
154
+ const existingOAuth = existing?.type === "oauth" ? existing : void 0;
155
+ if ((!existingOAuth || existingOAuth.provider !== provider || existingOAuth.expires <= now || creds.expires > existingOAuth.expires) && !shallowEqualOAuthCredentials(existingOAuth, creds)) {
156
+ store.profiles[profileId] = creds;
157
+ log$1.info(`synced ${provider} credentials from external cli`, {
158
+ profileId,
159
+ expires: new Date(creds.expires).toISOString()
160
+ });
161
+ return true;
162
+ }
163
+ return false;
164
+ }
165
+ /**
166
+ * Sync OAuth credentials from external CLI tools (Qwen Code CLI, MiniMax CLI) into the store.
167
+ *
168
+ * Returns true if any credentials were updated.
169
+ */
170
+ function syncExternalCliCredentials(store) {
171
+ let mutated = false;
172
+ const now = Date.now();
173
+ const existingQwen = store.profiles[QWEN_CLI_PROFILE_ID];
174
+ const qwenCreds = !existingQwen || existingQwen.provider !== "qwen-portal" || !isExternalProfileFresh(existingQwen, now) ? readQwenCliCredentialsCached({ ttlMs: EXTERNAL_CLI_SYNC_TTL_MS }) : null;
175
+ if (qwenCreds) {
176
+ const existing = store.profiles[QWEN_CLI_PROFILE_ID];
177
+ const existingOAuth = existing?.type === "oauth" ? existing : void 0;
178
+ if ((!existingOAuth || existingOAuth.provider !== "qwen-portal" || existingOAuth.expires <= now || qwenCreds.expires > existingOAuth.expires) && !shallowEqualOAuthCredentials(existingOAuth, qwenCreds)) {
179
+ store.profiles[QWEN_CLI_PROFILE_ID] = qwenCreds;
180
+ mutated = true;
181
+ log$1.info("synced qwen credentials from qwen cli", {
182
+ profileId: QWEN_CLI_PROFILE_ID,
183
+ expires: new Date(qwenCreds.expires).toISOString()
184
+ });
185
+ }
186
+ }
187
+ if (syncExternalCliCredentialsForProvider(store, MINIMAX_CLI_PROFILE_ID, "minimax-portal", () => readMiniMaxCliCredentialsCached({ ttlMs: EXTERNAL_CLI_SYNC_TTL_MS }), now)) mutated = true;
188
+ return mutated;
189
+ }
190
+
191
+ //#endregion
192
+ //#region src/agents/agent-paths.ts
193
+ function resolveAtlasAgentDir() {
194
+ const override = process.env.ATLAS_AGENT_DIR?.trim() || process.env.PI_CODING_AGENT_DIR?.trim();
195
+ if (override) return resolveUserPath(override);
196
+ return resolveUserPath(path.join(resolveStateDir(), "agents", DEFAULT_AGENT_ID, "agent"));
197
+ }
198
+
199
+ //#endregion
200
+ //#region src/agents/auth-profiles/paths.ts
201
+ function resolveAuthStorePath(agentDir) {
202
+ const resolved = resolveUserPath(agentDir ?? resolveAtlasAgentDir());
203
+ return path.join(resolved, AUTH_PROFILE_FILENAME);
204
+ }
205
+ function resolveLegacyAuthStorePath(agentDir) {
206
+ const resolved = resolveUserPath(agentDir ?? resolveAtlasAgentDir());
207
+ return path.join(resolved, LEGACY_AUTH_FILENAME);
208
+ }
209
+ function resolveAuthStorePathForDisplay(agentDir) {
210
+ const pathname = resolveAuthStorePath(agentDir);
211
+ return pathname.startsWith("~") ? pathname : resolveUserPath(pathname);
212
+ }
213
+ function ensureAuthStoreFile(pathname) {
214
+ if (fs.existsSync(pathname)) return;
215
+ saveJsonFile(pathname, {
216
+ version: AUTH_STORE_VERSION,
217
+ profiles: {}
218
+ });
219
+ }
220
+
221
+ //#endregion
222
+ //#region src/agents/auth-profiles/store.ts
223
+ async function updateAuthProfileStoreWithLock(params) {
224
+ const authPath = resolveAuthStorePath(params.agentDir);
225
+ ensureAuthStoreFile(authPath);
226
+ let release;
227
+ try {
228
+ release = await lockfile.lock(authPath, AUTH_STORE_LOCK_OPTIONS);
229
+ const store = ensureAuthProfileStore(params.agentDir);
230
+ if (params.updater(store)) saveAuthProfileStore(store, params.agentDir);
231
+ return store;
232
+ } catch {
233
+ return null;
234
+ } finally {
235
+ if (release) try {
236
+ await release();
237
+ } catch {}
238
+ }
239
+ }
240
+ function coerceLegacyStore(raw) {
241
+ if (!raw || typeof raw !== "object") return null;
242
+ const record = raw;
243
+ if ("profiles" in record) return null;
244
+ const entries = {};
245
+ for (const [key, value] of Object.entries(record)) {
246
+ if (!value || typeof value !== "object") continue;
247
+ const typed = value;
248
+ if (typed.type !== "api_key" && typed.type !== "oauth" && typed.type !== "token") continue;
249
+ entries[key] = {
250
+ ...typed,
251
+ provider: String(typed.provider ?? key)
252
+ };
253
+ }
254
+ return Object.keys(entries).length > 0 ? entries : null;
255
+ }
256
+ function coerceAuthStore(raw) {
257
+ if (!raw || typeof raw !== "object") return null;
258
+ const record = raw;
259
+ if (!record.profiles || typeof record.profiles !== "object") return null;
260
+ const profiles = record.profiles;
261
+ const normalized = {};
262
+ for (const [key, value] of Object.entries(profiles)) {
263
+ if (!value || typeof value !== "object") continue;
264
+ const typed = value;
265
+ if (typed.type !== "api_key" && typed.type !== "oauth" && typed.type !== "token") continue;
266
+ if (!typed.provider) continue;
267
+ normalized[key] = typed;
268
+ }
269
+ const order = record.order && typeof record.order === "object" ? Object.entries(record.order).reduce((acc, [provider, value]) => {
270
+ if (!Array.isArray(value)) return acc;
271
+ const list = value.map((entry) => typeof entry === "string" ? entry.trim() : "").filter(Boolean);
272
+ if (list.length === 0) return acc;
273
+ acc[provider] = list;
274
+ return acc;
275
+ }, {}) : void 0;
276
+ return {
277
+ version: Number(record.version ?? AUTH_STORE_VERSION),
278
+ profiles: normalized,
279
+ order,
280
+ lastGood: record.lastGood && typeof record.lastGood === "object" ? record.lastGood : void 0,
281
+ usageStats: record.usageStats && typeof record.usageStats === "object" ? record.usageStats : void 0
282
+ };
283
+ }
284
+ function mergeRecord(base, override) {
285
+ if (!base && !override) return;
286
+ if (!base) return { ...override };
287
+ if (!override) return { ...base };
288
+ return {
289
+ ...base,
290
+ ...override
291
+ };
292
+ }
293
+ function mergeAuthProfileStores(base, override) {
294
+ if (Object.keys(override.profiles).length === 0 && !override.order && !override.lastGood && !override.usageStats) return base;
295
+ return {
296
+ version: Math.max(base.version, override.version ?? base.version),
297
+ profiles: {
298
+ ...base.profiles,
299
+ ...override.profiles
300
+ },
301
+ order: mergeRecord(base.order, override.order),
302
+ lastGood: mergeRecord(base.lastGood, override.lastGood),
303
+ usageStats: mergeRecord(base.usageStats, override.usageStats)
304
+ };
305
+ }
306
+ function mergeOAuthFileIntoStore(store) {
307
+ const oauthRaw = loadJsonFile(resolveOAuthPath());
308
+ if (!oauthRaw || typeof oauthRaw !== "object") return false;
309
+ const oauthEntries = oauthRaw;
310
+ let mutated = false;
311
+ for (const [provider, creds] of Object.entries(oauthEntries)) {
312
+ if (!creds || typeof creds !== "object") continue;
313
+ const profileId = `${provider}:default`;
314
+ if (store.profiles[profileId]) continue;
315
+ store.profiles[profileId] = {
316
+ type: "oauth",
317
+ provider,
318
+ ...creds
319
+ };
320
+ mutated = true;
321
+ }
322
+ return mutated;
323
+ }
324
+ function loadAuthProfileStore() {
325
+ const authPath = resolveAuthStorePath();
326
+ const asStore = coerceAuthStore(loadJsonFile(authPath));
327
+ if (asStore) {
328
+ if (syncExternalCliCredentials(asStore)) saveJsonFile(authPath, asStore);
329
+ return asStore;
330
+ }
331
+ const legacy = coerceLegacyStore(loadJsonFile(resolveLegacyAuthStorePath()));
332
+ if (legacy) {
333
+ const store = {
334
+ version: AUTH_STORE_VERSION,
335
+ profiles: {}
336
+ };
337
+ for (const [provider, cred] of Object.entries(legacy)) {
338
+ const profileId = `${provider}:default`;
339
+ if (cred.type === "api_key") store.profiles[profileId] = {
340
+ type: "api_key",
341
+ provider: String(cred.provider ?? provider),
342
+ key: cred.key,
343
+ ...cred.email ? { email: cred.email } : {}
344
+ };
345
+ else if (cred.type === "token") store.profiles[profileId] = {
346
+ type: "token",
347
+ provider: String(cred.provider ?? provider),
348
+ token: cred.token,
349
+ ...typeof cred.expires === "number" ? { expires: cred.expires } : {},
350
+ ...cred.email ? { email: cred.email } : {}
351
+ };
352
+ else store.profiles[profileId] = {
353
+ type: "oauth",
354
+ provider: String(cred.provider ?? provider),
355
+ access: cred.access,
356
+ refresh: cred.refresh,
357
+ expires: cred.expires,
358
+ ...cred.enterpriseUrl ? { enterpriseUrl: cred.enterpriseUrl } : {},
359
+ ...cred.projectId ? { projectId: cred.projectId } : {},
360
+ ...cred.accountId ? { accountId: cred.accountId } : {},
361
+ ...cred.email ? { email: cred.email } : {}
362
+ };
363
+ }
364
+ syncExternalCliCredentials(store);
365
+ return store;
366
+ }
367
+ const store = {
368
+ version: AUTH_STORE_VERSION,
369
+ profiles: {}
370
+ };
371
+ syncExternalCliCredentials(store);
372
+ return store;
373
+ }
374
+ function loadAuthProfileStoreForAgent(agentDir, _options) {
375
+ const authPath = resolveAuthStorePath(agentDir);
376
+ const asStore = coerceAuthStore(loadJsonFile(authPath));
377
+ if (asStore) {
378
+ if (syncExternalCliCredentials(asStore)) saveJsonFile(authPath, asStore);
379
+ return asStore;
380
+ }
381
+ if (agentDir) {
382
+ const mainStore = coerceAuthStore(loadJsonFile(resolveAuthStorePath()));
383
+ if (mainStore && Object.keys(mainStore.profiles).length > 0) {
384
+ saveJsonFile(authPath, mainStore);
385
+ log$1.info("inherited auth-profiles from main agent", { agentDir });
386
+ return mainStore;
387
+ }
388
+ }
389
+ const legacy = coerceLegacyStore(loadJsonFile(resolveLegacyAuthStorePath(agentDir)));
390
+ const store = {
391
+ version: AUTH_STORE_VERSION,
392
+ profiles: {}
393
+ };
394
+ if (legacy) for (const [provider, cred] of Object.entries(legacy)) {
395
+ const profileId = `${provider}:default`;
396
+ if (cred.type === "api_key") store.profiles[profileId] = {
397
+ type: "api_key",
398
+ provider: String(cred.provider ?? provider),
399
+ key: cred.key,
400
+ ...cred.email ? { email: cred.email } : {}
401
+ };
402
+ else if (cred.type === "token") store.profiles[profileId] = {
403
+ type: "token",
404
+ provider: String(cred.provider ?? provider),
405
+ token: cred.token,
406
+ ...typeof cred.expires === "number" ? { expires: cred.expires } : {},
407
+ ...cred.email ? { email: cred.email } : {}
408
+ };
409
+ else store.profiles[profileId] = {
410
+ type: "oauth",
411
+ provider: String(cred.provider ?? provider),
412
+ access: cred.access,
413
+ refresh: cred.refresh,
414
+ expires: cred.expires,
415
+ ...cred.enterpriseUrl ? { enterpriseUrl: cred.enterpriseUrl } : {},
416
+ ...cred.projectId ? { projectId: cred.projectId } : {},
417
+ ...cred.accountId ? { accountId: cred.accountId } : {},
418
+ ...cred.email ? { email: cred.email } : {}
419
+ };
420
+ }
421
+ const mergedOAuth = mergeOAuthFileIntoStore(store);
422
+ const syncedCli = syncExternalCliCredentials(store);
423
+ const shouldWrite = legacy !== null || mergedOAuth || syncedCli;
424
+ if (shouldWrite) saveJsonFile(authPath, store);
425
+ if (shouldWrite && legacy !== null) {
426
+ const legacyPath = resolveLegacyAuthStorePath(agentDir);
427
+ try {
428
+ fs.unlinkSync(legacyPath);
429
+ } catch (err) {
430
+ if (err?.code !== "ENOENT") log$1.warn("failed to delete legacy auth.json after migration", {
431
+ err,
432
+ legacyPath
433
+ });
434
+ }
435
+ }
436
+ return store;
437
+ }
438
+ function ensureAuthProfileStore(agentDir, options) {
439
+ const store = loadAuthProfileStoreForAgent(agentDir, options);
440
+ const authPath = resolveAuthStorePath(agentDir);
441
+ const mainAuthPath = resolveAuthStorePath();
442
+ if (!agentDir || authPath === mainAuthPath) return store;
443
+ return mergeAuthProfileStores(loadAuthProfileStoreForAgent(void 0, options), store);
444
+ }
445
+ function saveAuthProfileStore(store, agentDir) {
446
+ saveJsonFile(resolveAuthStorePath(agentDir), {
447
+ version: AUTH_STORE_VERSION,
448
+ profiles: store.profiles,
449
+ order: store.order ?? void 0,
450
+ lastGood: store.lastGood ?? void 0,
451
+ usageStats: store.usageStats ?? void 0
452
+ });
453
+ }
454
+
455
+ //#endregion
456
+ //#region src/agents/auth-profiles/profiles.ts
457
+ async function setAuthProfileOrder(params) {
458
+ const providerKey = normalizeProviderId(params.provider);
459
+ const sanitized = params.order && Array.isArray(params.order) ? params.order.map((entry) => String(entry).trim()).filter(Boolean) : [];
460
+ const deduped = [];
461
+ for (const entry of sanitized) if (!deduped.includes(entry)) deduped.push(entry);
462
+ return await updateAuthProfileStoreWithLock({
463
+ agentDir: params.agentDir,
464
+ updater: (store) => {
465
+ store.order = store.order ?? {};
466
+ if (deduped.length === 0) {
467
+ if (!store.order[providerKey]) return false;
468
+ delete store.order[providerKey];
469
+ if (Object.keys(store.order).length === 0) store.order = void 0;
470
+ return true;
471
+ }
472
+ store.order[providerKey] = deduped;
473
+ return true;
474
+ }
475
+ });
476
+ }
477
+ function upsertAuthProfile(params) {
478
+ const store = ensureAuthProfileStore(params.agentDir);
479
+ store.profiles[params.profileId] = params.credential;
480
+ saveAuthProfileStore(store, params.agentDir);
481
+ }
482
+ function listProfilesForProvider(store, provider) {
483
+ const providerKey = normalizeProviderId(provider);
484
+ return Object.entries(store.profiles).filter(([, cred]) => normalizeProviderId(cred.provider) === providerKey).map(([id]) => id);
485
+ }
486
+ async function markAuthProfileGood(params) {
487
+ const { store, provider, profileId, agentDir } = params;
488
+ const updated = await updateAuthProfileStoreWithLock({
489
+ agentDir,
490
+ updater: (freshStore) => {
491
+ const profile = freshStore.profiles[profileId];
492
+ if (!profile || profile.provider !== provider) return false;
493
+ freshStore.lastGood = {
494
+ ...freshStore.lastGood,
495
+ [provider]: profileId
496
+ };
497
+ return true;
498
+ }
499
+ });
500
+ if (updated) {
501
+ store.lastGood = updated.lastGood;
502
+ return;
503
+ }
504
+ const profile = store.profiles[profileId];
505
+ if (!profile || profile.provider !== provider) return;
506
+ store.lastGood = {
507
+ ...store.lastGood,
508
+ [provider]: profileId
509
+ };
510
+ saveAuthProfileStore(store, agentDir);
511
+ }
512
+
513
+ //#endregion
514
+ //#region src/agents/auth-profiles/repair.ts
515
+ function getProfileSuffix(profileId) {
516
+ const idx = profileId.indexOf(":");
517
+ if (idx < 0) return "";
518
+ return profileId.slice(idx + 1);
519
+ }
520
+ function isEmailLike(value) {
521
+ const trimmed = value.trim();
522
+ if (!trimmed) return false;
523
+ return trimmed.includes("@") && trimmed.includes(".");
524
+ }
525
+ function suggestOAuthProfileIdForLegacyDefault(params) {
526
+ const providerKey = normalizeProviderId(params.provider);
527
+ if (getProfileSuffix(params.legacyProfileId) !== "default") return null;
528
+ const legacyCfg = params.cfg?.auth?.profiles?.[params.legacyProfileId];
529
+ if (legacyCfg && normalizeProviderId(legacyCfg.provider) === providerKey && legacyCfg.mode !== "oauth") return null;
530
+ const oauthProfiles = listProfilesForProvider(params.store, providerKey).filter((id) => params.store.profiles[id]?.type === "oauth");
531
+ if (oauthProfiles.length === 0) return null;
532
+ const configuredEmail = legacyCfg?.email?.trim();
533
+ if (configuredEmail) {
534
+ const byEmail = oauthProfiles.find((id) => {
535
+ const cred = params.store.profiles[id];
536
+ if (!cred || cred.type !== "oauth") return false;
537
+ return cred.email?.trim() === configuredEmail || id === `${providerKey}:${configuredEmail}`;
538
+ });
539
+ if (byEmail) return byEmail;
540
+ }
541
+ const lastGood = params.store.lastGood?.[providerKey] ?? params.store.lastGood?.[params.provider];
542
+ if (lastGood && oauthProfiles.includes(lastGood)) return lastGood;
543
+ const nonLegacy = oauthProfiles.filter((id) => id !== params.legacyProfileId);
544
+ if (nonLegacy.length === 1) return nonLegacy[0] ?? null;
545
+ const emailLike = nonLegacy.filter((id) => isEmailLike(getProfileSuffix(id)));
546
+ if (emailLike.length === 1) return emailLike[0] ?? null;
547
+ return null;
548
+ }
549
+ function repairOAuthProfileIdMismatch(params) {
550
+ const legacyProfileId = params.legacyProfileId ?? `${normalizeProviderId(params.provider)}:default`;
551
+ const legacyCfg = params.cfg.auth?.profiles?.[legacyProfileId];
552
+ if (!legacyCfg) return {
553
+ config: params.cfg,
554
+ changes: [],
555
+ migrated: false
556
+ };
557
+ if (legacyCfg.mode !== "oauth") return {
558
+ config: params.cfg,
559
+ changes: [],
560
+ migrated: false
561
+ };
562
+ if (normalizeProviderId(legacyCfg.provider) !== normalizeProviderId(params.provider)) return {
563
+ config: params.cfg,
564
+ changes: [],
565
+ migrated: false
566
+ };
567
+ const toProfileId = suggestOAuthProfileIdForLegacyDefault({
568
+ cfg: params.cfg,
569
+ store: params.store,
570
+ provider: params.provider,
571
+ legacyProfileId
572
+ });
573
+ if (!toProfileId || toProfileId === legacyProfileId) return {
574
+ config: params.cfg,
575
+ changes: [],
576
+ migrated: false
577
+ };
578
+ const toCred = params.store.profiles[toProfileId];
579
+ const toEmail = toCred?.type === "oauth" ? toCred.email?.trim() : void 0;
580
+ const nextProfiles = { ...params.cfg.auth?.profiles };
581
+ delete nextProfiles[legacyProfileId];
582
+ nextProfiles[toProfileId] = {
583
+ ...legacyCfg,
584
+ ...toEmail ? { email: toEmail } : {}
585
+ };
586
+ const providerKey = normalizeProviderId(params.provider);
587
+ const nextOrder = (() => {
588
+ const order = params.cfg.auth?.order;
589
+ if (!order) return;
590
+ const resolvedKey = Object.keys(order).find((key) => normalizeProviderId(key) === providerKey);
591
+ if (!resolvedKey) return order;
592
+ const existing = order[resolvedKey];
593
+ if (!Array.isArray(existing)) return order;
594
+ const replaced = existing.map((id) => id === legacyProfileId ? toProfileId : id).filter((id) => typeof id === "string" && id.trim().length > 0);
595
+ const deduped = [];
596
+ for (const entry of replaced) if (!deduped.includes(entry)) deduped.push(entry);
597
+ return {
598
+ ...order,
599
+ [resolvedKey]: deduped
600
+ };
601
+ })();
602
+ return {
603
+ config: {
604
+ ...params.cfg,
605
+ auth: {
606
+ ...params.cfg.auth,
607
+ profiles: nextProfiles,
608
+ ...nextOrder ? { order: nextOrder } : {}
609
+ }
610
+ },
611
+ changes: [`Auth: migrate ${legacyProfileId} → ${toProfileId} (OAuth profile id)`],
612
+ migrated: true,
613
+ fromProfileId: legacyProfileId,
614
+ toProfileId
615
+ };
616
+ }
617
+
618
+ //#endregion
619
+ //#region src/agents/auth-profiles/doctor.ts
620
+ function formatAuthDoctorHint(params) {
621
+ const providerKey = normalizeProviderId(params.provider);
622
+ if (providerKey !== "anthropic") return "";
623
+ const legacyProfileId = params.profileId ?? "anthropic:default";
624
+ const suggested = suggestOAuthProfileIdForLegacyDefault({
625
+ cfg: params.cfg,
626
+ store: params.store,
627
+ provider: providerKey,
628
+ legacyProfileId
629
+ });
630
+ if (!suggested || suggested === legacyProfileId) return "";
631
+ const storeOauthProfiles = listProfilesForProvider(params.store, providerKey).filter((id) => params.store.profiles[id]?.type === "oauth").join(", ");
632
+ const cfgMode = params.cfg?.auth?.profiles?.[legacyProfileId]?.mode;
633
+ const cfgProvider = params.cfg?.auth?.profiles?.[legacyProfileId]?.provider;
634
+ return [
635
+ "Doctor hint (for GitHub issue):",
636
+ `- provider: ${providerKey}`,
637
+ `- config: ${legacyProfileId}${cfgProvider || cfgMode ? ` (provider=${cfgProvider ?? "?"}, mode=${cfgMode ?? "?"})` : ""}`,
638
+ `- auth store oauth profiles: ${storeOauthProfiles || "(none)"}`,
639
+ `- suggested profile: ${suggested}`,
640
+ `Fix: run "${formatCliCommand("atlas doctor --yes")}"`
641
+ ].join("\n");
642
+ }
643
+
644
+ //#endregion
645
+ //#region src/providers/qwen-portal-oauth.ts
646
+ const QWEN_OAUTH_TOKEN_ENDPOINT = `https://chat.qwen.ai/api/v1/oauth2/token`;
647
+ const QWEN_OAUTH_CLIENT_ID = "f0304373b74a44d2b584a3fb70ca9e56";
648
+ async function refreshQwenPortalCredentials(credentials) {
649
+ if (!credentials.refresh?.trim()) throw new Error("Qwen OAuth refresh token missing; re-authenticate.");
650
+ const response = await fetch(QWEN_OAUTH_TOKEN_ENDPOINT, {
651
+ method: "POST",
652
+ headers: {
653
+ "Content-Type": "application/x-www-form-urlencoded",
654
+ Accept: "application/json"
655
+ },
656
+ body: new URLSearchParams({
657
+ grant_type: "refresh_token",
658
+ refresh_token: credentials.refresh,
659
+ client_id: QWEN_OAUTH_CLIENT_ID
660
+ })
661
+ });
662
+ if (!response.ok) {
663
+ const text = await response.text();
664
+ if (response.status === 400) throw new Error(`Qwen OAuth refresh token expired or invalid. Re-authenticate with \`${formatCliCommand("atlas models auth login --provider qwen-portal")}\`.`);
665
+ throw new Error(`Qwen OAuth refresh failed: ${text || response.statusText}`);
666
+ }
667
+ const payload = await response.json();
668
+ if (!payload.access_token || !payload.expires_in) throw new Error("Qwen OAuth refresh response missing access token.");
669
+ return {
670
+ ...credentials,
671
+ access: payload.access_token,
672
+ refresh: payload.refresh_token || credentials.refresh,
673
+ expires: Date.now() + payload.expires_in * 1e3
674
+ };
675
+ }
676
+
677
+ //#endregion
678
+ //#region src/agents/chutes-oauth.ts
679
+ const CHUTES_OAUTH_ISSUER = "https://api.chutes.ai";
680
+ const CHUTES_AUTHORIZE_ENDPOINT = `${CHUTES_OAUTH_ISSUER}/idp/authorize`;
681
+ const CHUTES_TOKEN_ENDPOINT = `${CHUTES_OAUTH_ISSUER}/idp/token`;
682
+ const CHUTES_USERINFO_ENDPOINT = `${CHUTES_OAUTH_ISSUER}/idp/userinfo`;
683
+ const DEFAULT_EXPIRES_BUFFER_MS = 300 * 1e3;
684
+ function generateChutesPkce() {
685
+ const verifier = randomBytes(32).toString("hex");
686
+ return {
687
+ verifier,
688
+ challenge: createHash("sha256").update(verifier).digest("base64url")
689
+ };
690
+ }
691
+ function parseOAuthCallbackInput(input, expectedState) {
692
+ const trimmed = input.trim();
693
+ if (!trimmed) return { error: "No input provided" };
694
+ try {
695
+ const url = new URL(trimmed);
696
+ const code = url.searchParams.get("code");
697
+ const state = url.searchParams.get("state");
698
+ if (!code) return { error: "Missing 'code' parameter in URL" };
699
+ if (!state) return { error: "Missing 'state' parameter. Paste the full URL." };
700
+ return {
701
+ code,
702
+ state
703
+ };
704
+ } catch {
705
+ if (!expectedState) return { error: "Paste the full redirect URL, not just the code." };
706
+ return {
707
+ code: trimmed,
708
+ state: expectedState
709
+ };
710
+ }
711
+ }
712
+ function coerceExpiresAt(expiresInSeconds, now) {
713
+ const value = now + Math.max(0, Math.floor(expiresInSeconds)) * 1e3 - DEFAULT_EXPIRES_BUFFER_MS;
714
+ return Math.max(value, now + 3e4);
715
+ }
716
+ async function fetchChutesUserInfo(params) {
717
+ const response = await (params.fetchFn ?? fetch)(CHUTES_USERINFO_ENDPOINT, { headers: { Authorization: `Bearer ${params.accessToken}` } });
718
+ if (!response.ok) return null;
719
+ const data = await response.json();
720
+ if (!data || typeof data !== "object") return null;
721
+ return data;
722
+ }
723
+ async function exchangeChutesCodeForTokens(params) {
724
+ const fetchFn = params.fetchFn ?? fetch;
725
+ const now = params.now ?? Date.now();
726
+ const body = new URLSearchParams({
727
+ grant_type: "authorization_code",
728
+ client_id: params.app.clientId,
729
+ code: params.code,
730
+ redirect_uri: params.app.redirectUri,
731
+ code_verifier: params.codeVerifier
732
+ });
733
+ if (params.app.clientSecret) body.set("client_secret", params.app.clientSecret);
734
+ const response = await fetchFn(CHUTES_TOKEN_ENDPOINT, {
735
+ method: "POST",
736
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
737
+ body
738
+ });
739
+ if (!response.ok) {
740
+ const text = await response.text();
741
+ throw new Error(`Chutes token exchange failed: ${text}`);
742
+ }
743
+ const data = await response.json();
744
+ const access = data.access_token?.trim();
745
+ const refresh = data.refresh_token?.trim();
746
+ const expiresIn = data.expires_in ?? 0;
747
+ if (!access) throw new Error("Chutes token exchange returned no access_token");
748
+ if (!refresh) throw new Error("Chutes token exchange returned no refresh_token");
749
+ const info = await fetchChutesUserInfo({
750
+ accessToken: access,
751
+ fetchFn
752
+ });
753
+ return {
754
+ access,
755
+ refresh,
756
+ expires: coerceExpiresAt(expiresIn, now),
757
+ email: info?.username,
758
+ accountId: info?.sub,
759
+ clientId: params.app.clientId
760
+ };
761
+ }
762
+ async function refreshChutesTokens(params) {
763
+ const fetchFn = params.fetchFn ?? fetch;
764
+ const now = params.now ?? Date.now();
765
+ const refreshToken = params.credential.refresh?.trim();
766
+ if (!refreshToken) throw new Error("Chutes OAuth credential is missing refresh token");
767
+ const clientId = params.credential.clientId?.trim() ?? process.env.CHUTES_CLIENT_ID?.trim();
768
+ if (!clientId) throw new Error("Missing CHUTES_CLIENT_ID for Chutes OAuth refresh (set env var or re-auth).");
769
+ const clientSecret = process.env.CHUTES_CLIENT_SECRET?.trim() || void 0;
770
+ const body = new URLSearchParams({
771
+ grant_type: "refresh_token",
772
+ client_id: clientId,
773
+ refresh_token: refreshToken
774
+ });
775
+ if (clientSecret) body.set("client_secret", clientSecret);
776
+ const response = await fetchFn(CHUTES_TOKEN_ENDPOINT, {
777
+ method: "POST",
778
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
779
+ body
780
+ });
781
+ if (!response.ok) {
782
+ const text = await response.text();
783
+ throw new Error(`Chutes token refresh failed: ${text}`);
784
+ }
785
+ const data = await response.json();
786
+ const access = data.access_token?.trim();
787
+ const newRefresh = data.refresh_token?.trim();
788
+ const expiresIn = data.expires_in ?? 0;
789
+ if (!access) throw new Error("Chutes token refresh returned no access_token");
790
+ return {
791
+ ...params.credential,
792
+ access,
793
+ refresh: newRefresh || refreshToken,
794
+ expires: coerceExpiresAt(expiresIn, now),
795
+ clientId
796
+ };
797
+ }
798
+
799
+ //#endregion
800
+ //#region src/agents/auth-profiles/oauth.ts
801
+ const OAUTH_PROVIDER_IDS = new Set(getOAuthProviders().map((provider) => provider.id));
802
+ const isOAuthProvider = (provider) => OAUTH_PROVIDER_IDS.has(provider);
803
+ const resolveOAuthProvider = (provider) => isOAuthProvider(provider) ? provider : null;
804
+ function buildOAuthApiKey(provider, credentials) {
805
+ return provider === "google-gemini-cli" || provider === "google-antigravity" ? JSON.stringify({
806
+ token: credentials.access,
807
+ projectId: credentials.projectId
808
+ }) : credentials.access;
809
+ }
810
+ async function refreshOAuthTokenWithLock(params) {
811
+ const authPath = resolveAuthStorePath(params.agentDir);
812
+ ensureAuthStoreFile(authPath);
813
+ let release;
814
+ try {
815
+ release = await lockfile.lock(authPath, { ...AUTH_STORE_LOCK_OPTIONS });
816
+ const store = ensureAuthProfileStore(params.agentDir);
817
+ const cred = store.profiles[params.profileId];
818
+ if (!cred || cred.type !== "oauth") return null;
819
+ if (Date.now() < cred.expires) return {
820
+ apiKey: buildOAuthApiKey(cred.provider, cred),
821
+ newCredentials: cred
822
+ };
823
+ const oauthCreds = { [cred.provider]: cred };
824
+ const result = String(cred.provider) === "chutes" ? await (async () => {
825
+ const newCredentials = await refreshChutesTokens({ credential: cred });
826
+ return {
827
+ apiKey: newCredentials.access,
828
+ newCredentials
829
+ };
830
+ })() : String(cred.provider) === "qwen-portal" ? await (async () => {
831
+ const newCredentials = await refreshQwenPortalCredentials(cred);
832
+ return {
833
+ apiKey: newCredentials.access,
834
+ newCredentials
835
+ };
836
+ })() : await (async () => {
837
+ const oauthProvider = resolveOAuthProvider(cred.provider);
838
+ if (!oauthProvider) return null;
839
+ return await getOAuthApiKey(oauthProvider, oauthCreds);
840
+ })();
841
+ if (!result) return null;
842
+ store.profiles[params.profileId] = {
843
+ ...cred,
844
+ ...result.newCredentials,
845
+ type: "oauth"
846
+ };
847
+ saveAuthProfileStore(store, params.agentDir);
848
+ return result;
849
+ } finally {
850
+ if (release) try {
851
+ await release();
852
+ } catch {}
853
+ }
854
+ }
855
+ async function tryResolveOAuthProfile(params) {
856
+ const { cfg, store, profileId } = params;
857
+ const cred = store.profiles[profileId];
858
+ if (!cred || cred.type !== "oauth") return null;
859
+ const profileConfig = cfg?.auth?.profiles?.[profileId];
860
+ if (profileConfig && profileConfig.provider !== cred.provider) return null;
861
+ if (profileConfig && profileConfig.mode !== cred.type) return null;
862
+ if (Date.now() < cred.expires) return {
863
+ apiKey: buildOAuthApiKey(cred.provider, cred),
864
+ provider: cred.provider,
865
+ email: cred.email
866
+ };
867
+ const refreshed = await refreshOAuthTokenWithLock({
868
+ profileId,
869
+ agentDir: params.agentDir
870
+ });
871
+ if (!refreshed) return null;
872
+ return {
873
+ apiKey: refreshed.apiKey,
874
+ provider: cred.provider,
875
+ email: cred.email
876
+ };
877
+ }
878
+ async function resolveApiKeyForProfile(params) {
879
+ const { cfg, store, profileId } = params;
880
+ const cred = store.profiles[profileId];
881
+ if (!cred) return null;
882
+ const profileConfig = cfg?.auth?.profiles?.[profileId];
883
+ if (profileConfig && profileConfig.provider !== cred.provider) return null;
884
+ if (profileConfig && profileConfig.mode !== cred.type) {
885
+ if (!(profileConfig.mode === "oauth" && cred.type === "token")) return null;
886
+ }
887
+ if (cred.type === "api_key") {
888
+ const key = cred.key?.trim();
889
+ if (!key) return null;
890
+ return {
891
+ apiKey: key,
892
+ provider: cred.provider,
893
+ email: cred.email
894
+ };
895
+ }
896
+ if (cred.type === "token") {
897
+ const token = cred.token?.trim();
898
+ if (!token) return null;
899
+ if (typeof cred.expires === "number" && Number.isFinite(cred.expires) && cred.expires > 0 && Date.now() >= cred.expires) return null;
900
+ return {
901
+ apiKey: token,
902
+ provider: cred.provider,
903
+ email: cred.email
904
+ };
905
+ }
906
+ if (Date.now() < cred.expires) return {
907
+ apiKey: buildOAuthApiKey(cred.provider, cred),
908
+ provider: cred.provider,
909
+ email: cred.email
910
+ };
911
+ try {
912
+ const result = await refreshOAuthTokenWithLock({
913
+ profileId,
914
+ agentDir: params.agentDir
915
+ });
916
+ if (!result) return null;
917
+ return {
918
+ apiKey: result.apiKey,
919
+ provider: cred.provider,
920
+ email: cred.email
921
+ };
922
+ } catch (error) {
923
+ const refreshedStore = ensureAuthProfileStore(params.agentDir);
924
+ const refreshed = refreshedStore.profiles[profileId];
925
+ if (refreshed?.type === "oauth" && Date.now() < refreshed.expires) return {
926
+ apiKey: buildOAuthApiKey(refreshed.provider, refreshed),
927
+ provider: refreshed.provider,
928
+ email: refreshed.email ?? cred.email
929
+ };
930
+ const fallbackProfileId = suggestOAuthProfileIdForLegacyDefault({
931
+ cfg,
932
+ store: refreshedStore,
933
+ provider: cred.provider,
934
+ legacyProfileId: profileId
935
+ });
936
+ if (fallbackProfileId && fallbackProfileId !== profileId) try {
937
+ const fallbackResolved = await tryResolveOAuthProfile({
938
+ cfg,
939
+ store: refreshedStore,
940
+ profileId: fallbackProfileId,
941
+ agentDir: params.agentDir
942
+ });
943
+ if (fallbackResolved) return fallbackResolved;
944
+ } catch {}
945
+ if (params.agentDir) try {
946
+ const mainCred = ensureAuthProfileStore(void 0).profiles[profileId];
947
+ if (mainCred?.type === "oauth" && Date.now() < mainCred.expires) {
948
+ refreshedStore.profiles[profileId] = { ...mainCred };
949
+ saveAuthProfileStore(refreshedStore, params.agentDir);
950
+ log$1.info("inherited fresh OAuth credentials from main agent", {
951
+ profileId,
952
+ agentDir: params.agentDir,
953
+ expires: new Date(mainCred.expires).toISOString()
954
+ });
955
+ return {
956
+ apiKey: buildOAuthApiKey(mainCred.provider, mainCred),
957
+ provider: mainCred.provider,
958
+ email: mainCred.email
959
+ };
960
+ }
961
+ } catch {}
962
+ const message = error instanceof Error ? error.message : String(error);
963
+ const hint = formatAuthDoctorHint({
964
+ cfg,
965
+ store: refreshedStore,
966
+ provider: cred.provider,
967
+ profileId
968
+ });
969
+ throw new Error(`OAuth token refresh failed for ${cred.provider}: ${message}. Please try again or re-authenticate.` + (hint ? `\n\n${hint}` : ""), { cause: error });
970
+ }
971
+ }
972
+
973
+ //#endregion
974
+ //#region src/agents/auth-profiles/usage.ts
975
+ function resolveProfileUnusableUntil$1(stats) {
976
+ const values = [stats.cooldownUntil, stats.disabledUntil].filter((value) => typeof value === "number").filter((value) => Number.isFinite(value) && value > 0);
977
+ if (values.length === 0) return null;
978
+ return Math.max(...values);
979
+ }
980
+ /**
981
+ * Check if a profile is currently in cooldown (due to rate limiting or errors).
982
+ */
983
+ function isProfileInCooldown(store, profileId) {
984
+ const stats = store.usageStats?.[profileId];
985
+ if (!stats) return false;
986
+ const unusableUntil = resolveProfileUnusableUntil$1(stats);
987
+ return unusableUntil ? Date.now() < unusableUntil : false;
988
+ }
989
+ /**
990
+ * Mark a profile as successfully used. Resets error count and updates lastUsed.
991
+ * Uses store lock to avoid overwriting concurrent usage updates.
992
+ */
993
+ async function markAuthProfileUsed(params) {
994
+ const { store, profileId, agentDir } = params;
995
+ const updated = await updateAuthProfileStoreWithLock({
996
+ agentDir,
997
+ updater: (freshStore) => {
998
+ if (!freshStore.profiles[profileId]) return false;
999
+ freshStore.usageStats = freshStore.usageStats ?? {};
1000
+ freshStore.usageStats[profileId] = {
1001
+ ...freshStore.usageStats[profileId],
1002
+ lastUsed: Date.now(),
1003
+ errorCount: 0,
1004
+ cooldownUntil: void 0,
1005
+ disabledUntil: void 0,
1006
+ disabledReason: void 0,
1007
+ failureCounts: void 0
1008
+ };
1009
+ return true;
1010
+ }
1011
+ });
1012
+ if (updated) {
1013
+ store.usageStats = updated.usageStats;
1014
+ return;
1015
+ }
1016
+ if (!store.profiles[profileId]) return;
1017
+ store.usageStats = store.usageStats ?? {};
1018
+ store.usageStats[profileId] = {
1019
+ ...store.usageStats[profileId],
1020
+ lastUsed: Date.now(),
1021
+ errorCount: 0,
1022
+ cooldownUntil: void 0,
1023
+ disabledUntil: void 0,
1024
+ disabledReason: void 0,
1025
+ failureCounts: void 0
1026
+ };
1027
+ saveAuthProfileStore(store, agentDir);
1028
+ }
1029
+ function calculateAuthProfileCooldownMs(errorCount) {
1030
+ const normalized = Math.max(1, errorCount);
1031
+ return Math.min(3600 * 1e3, 60 * 1e3 * 5 ** Math.min(normalized - 1, 3));
1032
+ }
1033
+ function resolveAuthCooldownConfig(params) {
1034
+ const defaults = {
1035
+ billingBackoffHours: 5,
1036
+ billingMaxHours: 24,
1037
+ failureWindowHours: 24
1038
+ };
1039
+ const resolveHours = (value, fallback) => typeof value === "number" && Number.isFinite(value) && value > 0 ? value : fallback;
1040
+ const cooldowns = params.cfg?.auth?.cooldowns;
1041
+ const billingBackoffHours = resolveHours((() => {
1042
+ const map = cooldowns?.billingBackoffHoursByProvider;
1043
+ if (!map) return;
1044
+ for (const [key, value] of Object.entries(map)) if (normalizeProviderId(key) === params.providerId) return value;
1045
+ })() ?? cooldowns?.billingBackoffHours, defaults.billingBackoffHours);
1046
+ const billingMaxHours = resolveHours(cooldowns?.billingMaxHours, defaults.billingMaxHours);
1047
+ const failureWindowHours = resolveHours(cooldowns?.failureWindowHours, defaults.failureWindowHours);
1048
+ return {
1049
+ billingBackoffMs: billingBackoffHours * 60 * 60 * 1e3,
1050
+ billingMaxMs: billingMaxHours * 60 * 60 * 1e3,
1051
+ failureWindowMs: failureWindowHours * 60 * 60 * 1e3
1052
+ };
1053
+ }
1054
+ function calculateAuthProfileBillingDisableMsWithConfig(params) {
1055
+ const normalized = Math.max(1, params.errorCount);
1056
+ const baseMs = Math.max(6e4, params.baseMs);
1057
+ const maxMs = Math.max(baseMs, params.maxMs);
1058
+ const raw = baseMs * 2 ** Math.min(normalized - 1, 10);
1059
+ return Math.min(maxMs, raw);
1060
+ }
1061
+ function resolveProfileUnusableUntilForDisplay(store, profileId) {
1062
+ const stats = store.usageStats?.[profileId];
1063
+ if (!stats) return null;
1064
+ return resolveProfileUnusableUntil$1(stats);
1065
+ }
1066
+ function computeNextProfileUsageStats(params) {
1067
+ const windowMs = params.cfgResolved.failureWindowMs;
1068
+ const windowExpired = typeof params.existing.lastFailureAt === "number" && params.existing.lastFailureAt > 0 && params.now - params.existing.lastFailureAt > windowMs;
1069
+ const nextErrorCount = (windowExpired ? 0 : params.existing.errorCount ?? 0) + 1;
1070
+ const failureCounts = windowExpired ? {} : { ...params.existing.failureCounts };
1071
+ failureCounts[params.reason] = (failureCounts[params.reason] ?? 0) + 1;
1072
+ const updatedStats = {
1073
+ ...params.existing,
1074
+ errorCount: nextErrorCount,
1075
+ failureCounts,
1076
+ lastFailureAt: params.now
1077
+ };
1078
+ if (params.reason === "billing") {
1079
+ const backoffMs = calculateAuthProfileBillingDisableMsWithConfig({
1080
+ errorCount: failureCounts.billing ?? 1,
1081
+ baseMs: params.cfgResolved.billingBackoffMs,
1082
+ maxMs: params.cfgResolved.billingMaxMs
1083
+ });
1084
+ updatedStats.disabledUntil = params.now + backoffMs;
1085
+ updatedStats.disabledReason = "billing";
1086
+ } else {
1087
+ const backoffMs = calculateAuthProfileCooldownMs(nextErrorCount);
1088
+ updatedStats.cooldownUntil = params.now + backoffMs;
1089
+ }
1090
+ return updatedStats;
1091
+ }
1092
+ /**
1093
+ * Mark a profile as failed for a specific reason. Billing failures are treated
1094
+ * as "disabled" (longer backoff) vs the regular cooldown window.
1095
+ */
1096
+ async function markAuthProfileFailure(params) {
1097
+ const { store, profileId, reason, agentDir, cfg } = params;
1098
+ const updated = await updateAuthProfileStoreWithLock({
1099
+ agentDir,
1100
+ updater: (freshStore) => {
1101
+ const profile = freshStore.profiles[profileId];
1102
+ if (!profile) return false;
1103
+ freshStore.usageStats = freshStore.usageStats ?? {};
1104
+ const existing = freshStore.usageStats[profileId] ?? {};
1105
+ const now = Date.now();
1106
+ const cfgResolved = resolveAuthCooldownConfig({
1107
+ cfg,
1108
+ providerId: normalizeProviderId(profile.provider)
1109
+ });
1110
+ freshStore.usageStats[profileId] = computeNextProfileUsageStats({
1111
+ existing,
1112
+ now,
1113
+ reason,
1114
+ cfgResolved
1115
+ });
1116
+ return true;
1117
+ }
1118
+ });
1119
+ if (updated) {
1120
+ store.usageStats = updated.usageStats;
1121
+ return;
1122
+ }
1123
+ if (!store.profiles[profileId]) return;
1124
+ store.usageStats = store.usageStats ?? {};
1125
+ const existing = store.usageStats[profileId] ?? {};
1126
+ const now = Date.now();
1127
+ const cfgResolved = resolveAuthCooldownConfig({
1128
+ cfg,
1129
+ providerId: normalizeProviderId(store.profiles[profileId]?.provider ?? "")
1130
+ });
1131
+ store.usageStats[profileId] = computeNextProfileUsageStats({
1132
+ existing,
1133
+ now,
1134
+ reason,
1135
+ cfgResolved
1136
+ });
1137
+ saveAuthProfileStore(store, agentDir);
1138
+ }
1139
+
1140
+ //#endregion
1141
+ //#region src/agents/auth-profiles/order.ts
1142
+ function resolveProfileUnusableUntil(stats) {
1143
+ const values = [stats.cooldownUntil, stats.disabledUntil].filter((value) => typeof value === "number").filter((value) => Number.isFinite(value) && value > 0);
1144
+ if (values.length === 0) return null;
1145
+ return Math.max(...values);
1146
+ }
1147
+ function resolveAuthProfileOrder(params) {
1148
+ const { cfg, store, provider, preferredProfile } = params;
1149
+ const providerKey = normalizeProviderId(provider);
1150
+ const now = Date.now();
1151
+ const storedOrder = (() => {
1152
+ const order = store.order;
1153
+ if (!order) return;
1154
+ for (const [key, value] of Object.entries(order)) if (normalizeProviderId(key) === providerKey) return value;
1155
+ })();
1156
+ const configuredOrder = (() => {
1157
+ const order = cfg?.auth?.order;
1158
+ if (!order) return;
1159
+ for (const [key, value] of Object.entries(order)) if (normalizeProviderId(key) === providerKey) return value;
1160
+ })();
1161
+ const explicitOrder = storedOrder ?? configuredOrder;
1162
+ const explicitProfiles = cfg?.auth?.profiles ? Object.entries(cfg.auth.profiles).filter(([, profile]) => normalizeProviderId(profile.provider) === providerKey).map(([profileId]) => profileId) : [];
1163
+ const baseOrder = explicitOrder ?? (explicitProfiles.length > 0 ? explicitProfiles : listProfilesForProvider(store, providerKey));
1164
+ if (baseOrder.length === 0) return [];
1165
+ const filtered = baseOrder.filter((profileId) => {
1166
+ const cred = store.profiles[profileId];
1167
+ if (!cred) return false;
1168
+ if (normalizeProviderId(cred.provider) !== providerKey) return false;
1169
+ const profileConfig = cfg?.auth?.profiles?.[profileId];
1170
+ if (profileConfig) {
1171
+ if (normalizeProviderId(profileConfig.provider) !== providerKey) return false;
1172
+ if (profileConfig.mode !== cred.type) {
1173
+ if (!(profileConfig.mode === "oauth" && cred.type === "token")) return false;
1174
+ }
1175
+ }
1176
+ if (cred.type === "api_key") return Boolean(cred.key?.trim());
1177
+ if (cred.type === "token") {
1178
+ if (!cred.token?.trim()) return false;
1179
+ if (typeof cred.expires === "number" && Number.isFinite(cred.expires) && cred.expires > 0 && now >= cred.expires) return false;
1180
+ return true;
1181
+ }
1182
+ if (cred.type === "oauth") return Boolean(cred.access?.trim() || cred.refresh?.trim());
1183
+ return false;
1184
+ });
1185
+ const deduped = [];
1186
+ for (const entry of filtered) if (!deduped.includes(entry)) deduped.push(entry);
1187
+ if (explicitOrder && explicitOrder.length > 0) {
1188
+ const available = [];
1189
+ const inCooldown = [];
1190
+ for (const profileId of deduped) {
1191
+ const cooldownUntil = resolveProfileUnusableUntil(store.usageStats?.[profileId] ?? {}) ?? 0;
1192
+ if (typeof cooldownUntil === "number" && Number.isFinite(cooldownUntil) && cooldownUntil > 0 && now < cooldownUntil) inCooldown.push({
1193
+ profileId,
1194
+ cooldownUntil
1195
+ });
1196
+ else available.push(profileId);
1197
+ }
1198
+ const cooldownSorted = inCooldown.toSorted((a, b) => a.cooldownUntil - b.cooldownUntil).map((entry) => entry.profileId);
1199
+ const ordered = [...available, ...cooldownSorted];
1200
+ if (preferredProfile && ordered.includes(preferredProfile)) return [preferredProfile, ...ordered.filter((e) => e !== preferredProfile)];
1201
+ return ordered;
1202
+ }
1203
+ const sorted = orderProfilesByMode(deduped, store);
1204
+ if (preferredProfile && sorted.includes(preferredProfile)) return [preferredProfile, ...sorted.filter((e) => e !== preferredProfile)];
1205
+ return sorted;
1206
+ }
1207
+ function orderProfilesByMode(order, store) {
1208
+ const now = Date.now();
1209
+ const available = [];
1210
+ const inCooldown = [];
1211
+ for (const profileId of order) if (isProfileInCooldown(store, profileId)) inCooldown.push(profileId);
1212
+ else available.push(profileId);
1213
+ const sorted = available.map((profileId) => {
1214
+ const type = store.profiles[profileId]?.type;
1215
+ return {
1216
+ profileId,
1217
+ typeScore: type === "oauth" ? 0 : type === "token" ? 1 : type === "api_key" ? 2 : 3,
1218
+ lastUsed: store.usageStats?.[profileId]?.lastUsed ?? 0
1219
+ };
1220
+ }).toSorted((a, b) => {
1221
+ if (a.typeScore !== b.typeScore) return a.typeScore - b.typeScore;
1222
+ return a.lastUsed - b.lastUsed;
1223
+ }).map((entry) => entry.profileId);
1224
+ const cooldownSorted = inCooldown.map((profileId) => ({
1225
+ profileId,
1226
+ cooldownUntil: resolveProfileUnusableUntil(store.usageStats?.[profileId] ?? {}) ?? now
1227
+ })).toSorted((a, b) => a.cooldownUntil - b.cooldownUntil).map((entry) => entry.profileId);
1228
+ return [...sorted, ...cooldownSorted];
1229
+ }
1230
+
1231
+ //#endregion
1232
+ //#region src/agents/auth-profiles.ts
1233
+ var auth_profiles_exports = /* @__PURE__ */ __exportAll({ ensureAuthProfileStore: () => ensureAuthProfileStore });
1234
+
1235
+ //#endregion
1236
+ //#region src/agents/bedrock-discovery.ts
1237
+ const DEFAULT_REFRESH_INTERVAL_SECONDS = 3600;
1238
+ const DEFAULT_CONTEXT_WINDOW = 32e3;
1239
+ const DEFAULT_MAX_TOKENS = 4096;
1240
+ const DEFAULT_COST = {
1241
+ input: 0,
1242
+ output: 0,
1243
+ cacheRead: 0,
1244
+ cacheWrite: 0
1245
+ };
1246
+ const discoveryCache = /* @__PURE__ */ new Map();
1247
+ let hasLoggedBedrockError = false;
1248
+ function normalizeProviderFilter(filter) {
1249
+ if (!filter || filter.length === 0) return [];
1250
+ const normalized = new Set(filter.map((entry) => entry.trim().toLowerCase()).filter((entry) => entry.length > 0));
1251
+ return Array.from(normalized).toSorted();
1252
+ }
1253
+ function buildCacheKey(params) {
1254
+ return JSON.stringify(params);
1255
+ }
1256
+ function includesTextModalities(modalities) {
1257
+ return (modalities ?? []).some((entry) => entry.toLowerCase() === "text");
1258
+ }
1259
+ function isActive(summary) {
1260
+ const status = summary.modelLifecycle?.status;
1261
+ return typeof status === "string" ? status.toUpperCase() === "ACTIVE" : false;
1262
+ }
1263
+ function mapInputModalities(summary) {
1264
+ const inputs = summary.inputModalities ?? [];
1265
+ const mapped = /* @__PURE__ */ new Set();
1266
+ for (const modality of inputs) {
1267
+ const lower = modality.toLowerCase();
1268
+ if (lower === "text") mapped.add("text");
1269
+ if (lower === "image") mapped.add("image");
1270
+ }
1271
+ if (mapped.size === 0) mapped.add("text");
1272
+ return Array.from(mapped);
1273
+ }
1274
+ function inferReasoningSupport(summary) {
1275
+ const haystack = `${summary.modelId ?? ""} ${summary.modelName ?? ""}`.toLowerCase();
1276
+ return haystack.includes("reasoning") || haystack.includes("thinking");
1277
+ }
1278
+ function resolveDefaultContextWindow(config) {
1279
+ const value = Math.floor(config?.defaultContextWindow ?? DEFAULT_CONTEXT_WINDOW);
1280
+ return value > 0 ? value : DEFAULT_CONTEXT_WINDOW;
1281
+ }
1282
+ function resolveDefaultMaxTokens(config) {
1283
+ const value = Math.floor(config?.defaultMaxTokens ?? DEFAULT_MAX_TOKENS);
1284
+ return value > 0 ? value : DEFAULT_MAX_TOKENS;
1285
+ }
1286
+ function matchesProviderFilter(summary, filter) {
1287
+ if (filter.length === 0) return true;
1288
+ const normalized = (summary.providerName ?? (typeof summary.modelId === "string" ? summary.modelId.split(".")[0] : void 0))?.trim().toLowerCase();
1289
+ if (!normalized) return false;
1290
+ return filter.includes(normalized);
1291
+ }
1292
+ function shouldIncludeSummary(summary, filter) {
1293
+ if (!summary.modelId?.trim()) return false;
1294
+ if (!matchesProviderFilter(summary, filter)) return false;
1295
+ if (summary.responseStreamingSupported !== true) return false;
1296
+ if (!includesTextModalities(summary.outputModalities)) return false;
1297
+ if (!isActive(summary)) return false;
1298
+ return true;
1299
+ }
1300
+ function toModelDefinition(summary, defaults) {
1301
+ const id = summary.modelId?.trim() ?? "";
1302
+ return {
1303
+ id,
1304
+ name: summary.modelName?.trim() || id,
1305
+ reasoning: inferReasoningSupport(summary),
1306
+ input: mapInputModalities(summary),
1307
+ cost: DEFAULT_COST,
1308
+ contextWindow: defaults.contextWindow,
1309
+ maxTokens: defaults.maxTokens
1310
+ };
1311
+ }
1312
+ async function discoverBedrockModels(params) {
1313
+ const refreshIntervalSeconds = Math.max(0, Math.floor(params.config?.refreshInterval ?? DEFAULT_REFRESH_INTERVAL_SECONDS));
1314
+ const providerFilter = normalizeProviderFilter(params.config?.providerFilter);
1315
+ const defaultContextWindow = resolveDefaultContextWindow(params.config);
1316
+ const defaultMaxTokens = resolveDefaultMaxTokens(params.config);
1317
+ const cacheKey = buildCacheKey({
1318
+ region: params.region,
1319
+ providerFilter,
1320
+ refreshIntervalSeconds,
1321
+ defaultContextWindow,
1322
+ defaultMaxTokens
1323
+ });
1324
+ const now = params.now?.() ?? Date.now();
1325
+ if (refreshIntervalSeconds > 0) {
1326
+ const cached = discoveryCache.get(cacheKey);
1327
+ if (cached?.value && cached.expiresAt > now) return cached.value;
1328
+ if (cached?.inFlight) return cached.inFlight;
1329
+ }
1330
+ const client = (params.clientFactory ?? ((region) => new BedrockClient({ region })))(params.region);
1331
+ const discoveryPromise = (async () => {
1332
+ const response = await client.send(new ListFoundationModelsCommand({}));
1333
+ const discovered = [];
1334
+ for (const summary of response.modelSummaries ?? []) {
1335
+ if (!shouldIncludeSummary(summary, providerFilter)) continue;
1336
+ discovered.push(toModelDefinition(summary, {
1337
+ contextWindow: defaultContextWindow,
1338
+ maxTokens: defaultMaxTokens
1339
+ }));
1340
+ }
1341
+ return discovered.toSorted((a, b) => a.name.localeCompare(b.name));
1342
+ })();
1343
+ if (refreshIntervalSeconds > 0) discoveryCache.set(cacheKey, {
1344
+ expiresAt: now + refreshIntervalSeconds * 1e3,
1345
+ inFlight: discoveryPromise
1346
+ });
1347
+ try {
1348
+ const value = await discoveryPromise;
1349
+ if (refreshIntervalSeconds > 0) discoveryCache.set(cacheKey, {
1350
+ expiresAt: now + refreshIntervalSeconds * 1e3,
1351
+ value
1352
+ });
1353
+ return value;
1354
+ } catch (error) {
1355
+ if (refreshIntervalSeconds > 0) discoveryCache.delete(cacheKey);
1356
+ if (!hasLoggedBedrockError) {
1357
+ hasLoggedBedrockError = true;
1358
+ console.warn(`[bedrock-discovery] Failed to list models: ${String(error)}`);
1359
+ }
1360
+ return [];
1361
+ }
1362
+ }
1363
+
1364
+ //#endregion
1365
+ //#region src/agents/cloudflare-ai-gateway.ts
1366
+ const CLOUDFLARE_AI_GATEWAY_PROVIDER_ID = "cloudflare-ai-gateway";
1367
+ const CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_ID = "claude-sonnet-4-5";
1368
+ const CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF = `${CLOUDFLARE_AI_GATEWAY_PROVIDER_ID}/${CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_ID}`;
1369
+ const CLOUDFLARE_AI_GATEWAY_DEFAULT_CONTEXT_WINDOW = 2e5;
1370
+ const CLOUDFLARE_AI_GATEWAY_DEFAULT_MAX_TOKENS = 64e3;
1371
+ const CLOUDFLARE_AI_GATEWAY_DEFAULT_COST = {
1372
+ input: 3,
1373
+ output: 15,
1374
+ cacheRead: .3,
1375
+ cacheWrite: 3.75
1376
+ };
1377
+ function buildCloudflareAiGatewayModelDefinition(params) {
1378
+ return {
1379
+ id: params?.id?.trim() || CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_ID,
1380
+ name: params?.name ?? "Claude Sonnet 4.5",
1381
+ reasoning: params?.reasoning ?? true,
1382
+ input: params?.input ?? ["text", "image"],
1383
+ cost: CLOUDFLARE_AI_GATEWAY_DEFAULT_COST,
1384
+ contextWindow: CLOUDFLARE_AI_GATEWAY_DEFAULT_CONTEXT_WINDOW,
1385
+ maxTokens: CLOUDFLARE_AI_GATEWAY_DEFAULT_MAX_TOKENS
1386
+ };
1387
+ }
1388
+ function resolveCloudflareAiGatewayBaseUrl(params) {
1389
+ const accountId = params.accountId.trim();
1390
+ const gatewayId = params.gatewayId.trim();
1391
+ if (!accountId || !gatewayId) return "";
1392
+ return `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/anthropic`;
1393
+ }
1394
+
1395
+ //#endregion
1396
+ //#region src/infra/shell-env.ts
1397
+ const DEFAULT_TIMEOUT_MS = 15e3;
1398
+ const DEFAULT_MAX_BUFFER_BYTES = 2 * 1024 * 1024;
1399
+ let lastAppliedKeys = [];
1400
+ let cachedShellPath;
1401
+ function resolveShell(env) {
1402
+ const shell = env.SHELL?.trim();
1403
+ return shell && shell.length > 0 ? shell : "/bin/sh";
1404
+ }
1405
+ function parseShellEnv(stdout) {
1406
+ const shellEnv = /* @__PURE__ */ new Map();
1407
+ const parts = stdout.toString("utf8").split("\0");
1408
+ for (const part of parts) {
1409
+ if (!part) continue;
1410
+ const eq = part.indexOf("=");
1411
+ if (eq <= 0) continue;
1412
+ const key = part.slice(0, eq);
1413
+ const value = part.slice(eq + 1);
1414
+ if (!key) continue;
1415
+ shellEnv.set(key, value);
1416
+ }
1417
+ return shellEnv;
1418
+ }
1419
+ function loadShellEnvFallback(opts) {
1420
+ const logger = opts.logger ?? console;
1421
+ const exec = opts.exec ?? execFileSync;
1422
+ if (!opts.enabled) {
1423
+ lastAppliedKeys = [];
1424
+ return {
1425
+ ok: true,
1426
+ applied: [],
1427
+ skippedReason: "disabled"
1428
+ };
1429
+ }
1430
+ if (opts.expectedKeys.some((key) => Boolean(opts.env[key]?.trim()))) {
1431
+ lastAppliedKeys = [];
1432
+ return {
1433
+ ok: true,
1434
+ applied: [],
1435
+ skippedReason: "already-has-keys"
1436
+ };
1437
+ }
1438
+ const timeoutMs = typeof opts.timeoutMs === "number" && Number.isFinite(opts.timeoutMs) ? Math.max(0, opts.timeoutMs) : DEFAULT_TIMEOUT_MS;
1439
+ const shell = resolveShell(opts.env);
1440
+ let stdout;
1441
+ try {
1442
+ stdout = exec(shell, [
1443
+ "-l",
1444
+ "-c",
1445
+ "env -0"
1446
+ ], {
1447
+ encoding: "buffer",
1448
+ timeout: timeoutMs,
1449
+ maxBuffer: DEFAULT_MAX_BUFFER_BYTES,
1450
+ env: opts.env,
1451
+ stdio: [
1452
+ "ignore",
1453
+ "pipe",
1454
+ "pipe"
1455
+ ]
1456
+ });
1457
+ } catch (err) {
1458
+ const msg = err instanceof Error ? err.message : String(err);
1459
+ logger.warn(`[atlas] shell env fallback failed: ${msg}`);
1460
+ lastAppliedKeys = [];
1461
+ return {
1462
+ ok: false,
1463
+ error: msg,
1464
+ applied: []
1465
+ };
1466
+ }
1467
+ const shellEnv = parseShellEnv(stdout);
1468
+ const applied = [];
1469
+ for (const key of opts.expectedKeys) {
1470
+ if (opts.env[key]?.trim()) continue;
1471
+ const value = shellEnv.get(key);
1472
+ if (!value?.trim()) continue;
1473
+ opts.env[key] = value;
1474
+ applied.push(key);
1475
+ }
1476
+ lastAppliedKeys = applied;
1477
+ return {
1478
+ ok: true,
1479
+ applied
1480
+ };
1481
+ }
1482
+ function shouldEnableShellEnvFallback(env) {
1483
+ return isTruthyEnvValue(env.ATLAS_LOAD_SHELL_ENV);
1484
+ }
1485
+ function shouldDeferShellEnvFallback(env) {
1486
+ return isTruthyEnvValue(env.ATLAS_DEFER_SHELL_ENV_FALLBACK);
1487
+ }
1488
+ function resolveShellEnvFallbackTimeoutMs(env) {
1489
+ const raw = env.ATLAS_SHELL_ENV_TIMEOUT_MS?.trim();
1490
+ if (!raw) return DEFAULT_TIMEOUT_MS;
1491
+ const parsed = Number.parseInt(raw, 10);
1492
+ if (!Number.isFinite(parsed)) return DEFAULT_TIMEOUT_MS;
1493
+ return Math.max(0, parsed);
1494
+ }
1495
+ function getShellPathFromLoginShell(opts) {
1496
+ if (cachedShellPath !== void 0) return cachedShellPath;
1497
+ if (process.platform === "win32") {
1498
+ cachedShellPath = null;
1499
+ return cachedShellPath;
1500
+ }
1501
+ const exec = opts.exec ?? execFileSync;
1502
+ const timeoutMs = typeof opts.timeoutMs === "number" && Number.isFinite(opts.timeoutMs) ? Math.max(0, opts.timeoutMs) : DEFAULT_TIMEOUT_MS;
1503
+ const shell = resolveShell(opts.env);
1504
+ let stdout;
1505
+ try {
1506
+ stdout = exec(shell, [
1507
+ "-l",
1508
+ "-c",
1509
+ "env -0"
1510
+ ], {
1511
+ encoding: "buffer",
1512
+ timeout: timeoutMs,
1513
+ maxBuffer: DEFAULT_MAX_BUFFER_BYTES,
1514
+ env: opts.env,
1515
+ stdio: [
1516
+ "ignore",
1517
+ "pipe",
1518
+ "pipe"
1519
+ ]
1520
+ });
1521
+ } catch {
1522
+ cachedShellPath = null;
1523
+ return cachedShellPath;
1524
+ }
1525
+ const shellPath = parseShellEnv(stdout).get("PATH")?.trim();
1526
+ cachedShellPath = shellPath && shellPath.length > 0 ? shellPath : null;
1527
+ return cachedShellPath;
1528
+ }
1529
+ function getShellEnvAppliedKeys() {
1530
+ return [...lastAppliedKeys];
1531
+ }
1532
+
1533
+ //#endregion
1534
+ //#region src/agents/model-auth.ts
1535
+ const AWS_BEARER_ENV = "AWS_BEARER_TOKEN_BEDROCK";
1536
+ const AWS_ACCESS_KEY_ENV = "AWS_ACCESS_KEY_ID";
1537
+ const AWS_SECRET_KEY_ENV = "AWS_SECRET_ACCESS_KEY";
1538
+ const AWS_PROFILE_ENV = "AWS_PROFILE";
1539
+ function resolveProviderConfig(cfg, provider) {
1540
+ const providers = cfg?.models?.providers ?? {};
1541
+ const direct = providers[provider];
1542
+ if (direct) return direct;
1543
+ const normalized = normalizeProviderId(provider);
1544
+ if (normalized === provider) return Object.entries(providers).find(([key]) => normalizeProviderId(key) === normalized)?.[1];
1545
+ return providers[normalized] ?? Object.entries(providers).find(([key]) => normalizeProviderId(key) === normalized)?.[1];
1546
+ }
1547
+ function getCustomProviderApiKey(cfg, provider) {
1548
+ return resolveProviderConfig(cfg, provider)?.apiKey?.trim() || void 0;
1549
+ }
1550
+ function resolveProviderAuthOverride(cfg, provider) {
1551
+ const auth = resolveProviderConfig(cfg, provider)?.auth;
1552
+ if (auth === "api-key" || auth === "aws-sdk" || auth === "oauth" || auth === "token") return auth;
1553
+ }
1554
+ function resolveEnvSourceLabel(params) {
1555
+ return `${params.envVars.some((envVar) => params.applied.has(envVar)) ? "shell env: " : "env: "}${params.label}`;
1556
+ }
1557
+ function resolveAwsSdkEnvVarName(env = process.env) {
1558
+ if (env[AWS_BEARER_ENV]?.trim()) return AWS_BEARER_ENV;
1559
+ if (env[AWS_ACCESS_KEY_ENV]?.trim() && env[AWS_SECRET_KEY_ENV]?.trim()) return AWS_ACCESS_KEY_ENV;
1560
+ if (env[AWS_PROFILE_ENV]?.trim()) return AWS_PROFILE_ENV;
1561
+ }
1562
+ function resolveAwsSdkAuthInfo() {
1563
+ const applied = new Set(getShellEnvAppliedKeys());
1564
+ if (process.env[AWS_BEARER_ENV]?.trim()) return {
1565
+ mode: "aws-sdk",
1566
+ source: resolveEnvSourceLabel({
1567
+ applied,
1568
+ envVars: [AWS_BEARER_ENV],
1569
+ label: AWS_BEARER_ENV
1570
+ })
1571
+ };
1572
+ if (process.env[AWS_ACCESS_KEY_ENV]?.trim() && process.env[AWS_SECRET_KEY_ENV]?.trim()) return {
1573
+ mode: "aws-sdk",
1574
+ source: resolveEnvSourceLabel({
1575
+ applied,
1576
+ envVars: [AWS_ACCESS_KEY_ENV, AWS_SECRET_KEY_ENV],
1577
+ label: `${AWS_ACCESS_KEY_ENV} + ${AWS_SECRET_KEY_ENV}`
1578
+ })
1579
+ };
1580
+ if (process.env[AWS_PROFILE_ENV]?.trim()) return {
1581
+ mode: "aws-sdk",
1582
+ source: resolveEnvSourceLabel({
1583
+ applied,
1584
+ envVars: [AWS_PROFILE_ENV],
1585
+ label: AWS_PROFILE_ENV
1586
+ })
1587
+ };
1588
+ return {
1589
+ mode: "aws-sdk",
1590
+ source: "aws-sdk default chain"
1591
+ };
1592
+ }
1593
+ async function resolveApiKeyForProvider(params) {
1594
+ const { provider, cfg, profileId, preferredProfile } = params;
1595
+ const store = params.store ?? ensureAuthProfileStore(params.agentDir);
1596
+ if (profileId) {
1597
+ const resolved = await resolveApiKeyForProfile({
1598
+ cfg,
1599
+ store,
1600
+ profileId,
1601
+ agentDir: params.agentDir
1602
+ });
1603
+ if (!resolved) throw new Error(`No credentials found for profile "${profileId}".`);
1604
+ const mode = store.profiles[profileId]?.type;
1605
+ return {
1606
+ apiKey: resolved.apiKey,
1607
+ profileId,
1608
+ source: `profile:${profileId}`,
1609
+ mode: mode === "oauth" ? "oauth" : mode === "token" ? "token" : "api-key"
1610
+ };
1611
+ }
1612
+ const authOverride = resolveProviderAuthOverride(cfg, provider);
1613
+ if (authOverride === "aws-sdk") return resolveAwsSdkAuthInfo();
1614
+ const order = resolveAuthProfileOrder({
1615
+ cfg,
1616
+ store,
1617
+ provider,
1618
+ preferredProfile
1619
+ });
1620
+ for (const candidate of order) try {
1621
+ const resolved = await resolveApiKeyForProfile({
1622
+ cfg,
1623
+ store,
1624
+ profileId: candidate,
1625
+ agentDir: params.agentDir
1626
+ });
1627
+ if (resolved) {
1628
+ const mode = store.profiles[candidate]?.type;
1629
+ return {
1630
+ apiKey: resolved.apiKey,
1631
+ profileId: candidate,
1632
+ source: `profile:${candidate}`,
1633
+ mode: mode === "oauth" ? "oauth" : mode === "token" ? "token" : "api-key"
1634
+ };
1635
+ }
1636
+ } catch {}
1637
+ const envResolved = resolveEnvApiKey(provider);
1638
+ if (envResolved) return {
1639
+ apiKey: envResolved.apiKey,
1640
+ source: envResolved.source,
1641
+ mode: envResolved.source.includes("OAUTH_TOKEN") ? "oauth" : "api-key"
1642
+ };
1643
+ const customKey = getCustomProviderApiKey(cfg, provider);
1644
+ if (customKey) return {
1645
+ apiKey: customKey,
1646
+ source: "models.json",
1647
+ mode: "api-key"
1648
+ };
1649
+ const normalized = normalizeProviderId(provider);
1650
+ if (authOverride === void 0 && normalized === "amazon-bedrock") return resolveAwsSdkAuthInfo();
1651
+ if (provider === "openai") {
1652
+ 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.");
1653
+ }
1654
+ const authStorePath = resolveAuthStorePathForDisplay(params.agentDir);
1655
+ const resolvedAgentDir = path.dirname(authStorePath);
1656
+ throw new Error([
1657
+ `No API key found for provider "${provider}".`,
1658
+ `Auth store: ${authStorePath} (agentDir: ${resolvedAgentDir}).`,
1659
+ `Configure auth for this agent (${formatCliCommand("atlas agents add <id>")}) or copy auth-profiles.json from the main agentDir.`
1660
+ ].join(" "));
1661
+ }
1662
+ function resolveEnvApiKey(provider) {
1663
+ const normalized = normalizeProviderId(provider);
1664
+ const applied = new Set(getShellEnvAppliedKeys());
1665
+ const pick = (envVar) => {
1666
+ const value = process.env[envVar]?.trim();
1667
+ if (!value) return null;
1668
+ return {
1669
+ apiKey: value,
1670
+ source: applied.has(envVar) ? `shell env: ${envVar}` : `env: ${envVar}`
1671
+ };
1672
+ };
1673
+ if (normalized === "github-copilot") return pick("COPILOT_GITHUB_TOKEN") ?? pick("GH_TOKEN") ?? pick("GITHUB_TOKEN");
1674
+ if (normalized === "anthropic") return pick("ANTHROPIC_OAUTH_TOKEN") ?? pick("ANTHROPIC_API_KEY");
1675
+ if (normalized === "chutes") return pick("CHUTES_OAUTH_TOKEN") ?? pick("CHUTES_API_KEY");
1676
+ if (normalized === "zai") return pick("ZAI_API_KEY") ?? pick("Z_AI_API_KEY");
1677
+ if (normalized === "google-vertex") {
1678
+ const envKey = getEnvApiKey(normalized);
1679
+ if (!envKey) return null;
1680
+ return {
1681
+ apiKey: envKey,
1682
+ source: "gcloud adc"
1683
+ };
1684
+ }
1685
+ if (normalized === "opencode") return pick("OPENCODE_API_KEY") ?? pick("OPENCODE_ZEN_API_KEY");
1686
+ if (normalized === "qwen-portal") return pick("QWEN_OAUTH_TOKEN") ?? pick("QWEN_PORTAL_API_KEY");
1687
+ if (normalized === "minimax-portal") return pick("MINIMAX_OAUTH_TOKEN") ?? pick("MINIMAX_API_KEY");
1688
+ if (normalized === "kimi-coding") return pick("KIMI_API_KEY") ?? pick("KIMICODE_API_KEY");
1689
+ const envVar = {
1690
+ openai: "OPENAI_API_KEY",
1691
+ google: "GEMINI_API_KEY",
1692
+ voyage: "VOYAGE_API_KEY",
1693
+ groq: "GROQ_API_KEY",
1694
+ deepgram: "DEEPGRAM_API_KEY",
1695
+ cerebras: "CEREBRAS_API_KEY",
1696
+ xai: "XAI_API_KEY",
1697
+ openrouter: "OPENROUTER_API_KEY",
1698
+ "vercel-ai-gateway": "AI_GATEWAY_API_KEY",
1699
+ "cloudflare-ai-gateway": "CLOUDFLARE_AI_GATEWAY_API_KEY",
1700
+ moonshot: "MOONSHOT_API_KEY",
1701
+ minimax: "MINIMAX_API_KEY",
1702
+ xiaomi: "XIAOMI_API_KEY",
1703
+ synthetic: "SYNTHETIC_API_KEY",
1704
+ venice: "VENICE_API_KEY",
1705
+ mistral: "MISTRAL_API_KEY",
1706
+ opencode: "OPENCODE_API_KEY",
1707
+ qianfan: "QIANFAN_API_KEY",
1708
+ ollama: "OLLAMA_API_KEY"
1709
+ }[normalized];
1710
+ if (!envVar) return null;
1711
+ return pick(envVar);
1712
+ }
1713
+ function resolveModelAuthMode(provider, cfg, store) {
1714
+ const resolved = provider?.trim();
1715
+ if (!resolved) return;
1716
+ const authOverride = resolveProviderAuthOverride(cfg, resolved);
1717
+ if (authOverride === "aws-sdk") return "aws-sdk";
1718
+ const authStore = store ?? ensureAuthProfileStore();
1719
+ const profiles = listProfilesForProvider(authStore, resolved);
1720
+ if (profiles.length > 0) {
1721
+ const modes = new Set(profiles.map((id) => authStore.profiles[id]?.type).filter((mode) => Boolean(mode)));
1722
+ if ([
1723
+ "oauth",
1724
+ "token",
1725
+ "api_key"
1726
+ ].filter((k) => modes.has(k)).length >= 2) return "mixed";
1727
+ if (modes.has("oauth")) return "oauth";
1728
+ if (modes.has("token")) return "token";
1729
+ if (modes.has("api_key")) return "api-key";
1730
+ }
1731
+ if (authOverride === void 0 && normalizeProviderId(resolved) === "amazon-bedrock") return "aws-sdk";
1732
+ const envKey = resolveEnvApiKey(resolved);
1733
+ if (envKey?.apiKey) return envKey.source.includes("OAUTH_TOKEN") ? "oauth" : "api-key";
1734
+ if (getCustomProviderApiKey(cfg, resolved)) return "api-key";
1735
+ return "unknown";
1736
+ }
1737
+ async function getApiKeyForModel(params) {
1738
+ return resolveApiKeyForProvider({
1739
+ provider: params.model.provider,
1740
+ cfg: params.cfg,
1741
+ profileId: params.profileId,
1742
+ preferredProfile: params.preferredProfile,
1743
+ store: params.store,
1744
+ agentDir: params.agentDir
1745
+ });
1746
+ }
1747
+ function requireApiKey(auth, provider) {
1748
+ const key = auth.apiKey?.trim();
1749
+ if (key) return key;
1750
+ throw new Error(`No API key resolved for provider "${provider}" (auth mode: ${auth.mode}).`);
1751
+ }
1752
+
1753
+ //#endregion
1754
+ //#region src/agents/synthetic-models.ts
1755
+ const SYNTHETIC_BASE_URL = "https://api.synthetic.new/anthropic";
1756
+ const SYNTHETIC_DEFAULT_MODEL_ID = "hf:MiniMaxAI/MiniMax-M2.1";
1757
+ const SYNTHETIC_DEFAULT_MODEL_REF = `synthetic/${SYNTHETIC_DEFAULT_MODEL_ID}`;
1758
+ const SYNTHETIC_DEFAULT_COST = {
1759
+ input: 0,
1760
+ output: 0,
1761
+ cacheRead: 0,
1762
+ cacheWrite: 0
1763
+ };
1764
+ const SYNTHETIC_MODEL_CATALOG = [
1765
+ {
1766
+ id: SYNTHETIC_DEFAULT_MODEL_ID,
1767
+ name: "MiniMax M2.1",
1768
+ reasoning: false,
1769
+ input: ["text"],
1770
+ contextWindow: 192e3,
1771
+ maxTokens: 65536
1772
+ },
1773
+ {
1774
+ id: "hf:moonshotai/Kimi-K2-Thinking",
1775
+ name: "Kimi K2 Thinking",
1776
+ reasoning: true,
1777
+ input: ["text"],
1778
+ contextWindow: 256e3,
1779
+ maxTokens: 8192
1780
+ },
1781
+ {
1782
+ id: "hf:zai-org/GLM-4.7",
1783
+ name: "GLM-4.7",
1784
+ reasoning: false,
1785
+ input: ["text"],
1786
+ contextWindow: 198e3,
1787
+ maxTokens: 128e3
1788
+ },
1789
+ {
1790
+ id: "hf:deepseek-ai/DeepSeek-R1-0528",
1791
+ name: "DeepSeek R1 0528",
1792
+ reasoning: false,
1793
+ input: ["text"],
1794
+ contextWindow: 128e3,
1795
+ maxTokens: 8192
1796
+ },
1797
+ {
1798
+ id: "hf:deepseek-ai/DeepSeek-V3-0324",
1799
+ name: "DeepSeek V3 0324",
1800
+ reasoning: false,
1801
+ input: ["text"],
1802
+ contextWindow: 128e3,
1803
+ maxTokens: 8192
1804
+ },
1805
+ {
1806
+ id: "hf:deepseek-ai/DeepSeek-V3.1",
1807
+ name: "DeepSeek V3.1",
1808
+ reasoning: false,
1809
+ input: ["text"],
1810
+ contextWindow: 128e3,
1811
+ maxTokens: 8192
1812
+ },
1813
+ {
1814
+ id: "hf:deepseek-ai/DeepSeek-V3.1-Terminus",
1815
+ name: "DeepSeek V3.1 Terminus",
1816
+ reasoning: false,
1817
+ input: ["text"],
1818
+ contextWindow: 128e3,
1819
+ maxTokens: 8192
1820
+ },
1821
+ {
1822
+ id: "hf:deepseek-ai/DeepSeek-V3.2",
1823
+ name: "DeepSeek V3.2",
1824
+ reasoning: false,
1825
+ input: ["text"],
1826
+ contextWindow: 159e3,
1827
+ maxTokens: 8192
1828
+ },
1829
+ {
1830
+ id: "hf:meta-llama/Llama-3.3-70B-Instruct",
1831
+ name: "Llama 3.3 70B Instruct",
1832
+ reasoning: false,
1833
+ input: ["text"],
1834
+ contextWindow: 128e3,
1835
+ maxTokens: 8192
1836
+ },
1837
+ {
1838
+ id: "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
1839
+ name: "Llama 4 Maverick 17B 128E Instruct FP8",
1840
+ reasoning: false,
1841
+ input: ["text"],
1842
+ contextWindow: 524e3,
1843
+ maxTokens: 8192
1844
+ },
1845
+ {
1846
+ id: "hf:moonshotai/Kimi-K2-Instruct-0905",
1847
+ name: "Kimi K2 Instruct 0905",
1848
+ reasoning: false,
1849
+ input: ["text"],
1850
+ contextWindow: 256e3,
1851
+ maxTokens: 8192
1852
+ },
1853
+ {
1854
+ id: "hf:moonshotai/Kimi-K2.5",
1855
+ name: "Kimi K2.5",
1856
+ reasoning: true,
1857
+ input: ["text"],
1858
+ contextWindow: 256e3,
1859
+ maxTokens: 8192
1860
+ },
1861
+ {
1862
+ id: "hf:openai/gpt-oss-120b",
1863
+ name: "GPT OSS 120B",
1864
+ reasoning: false,
1865
+ input: ["text"],
1866
+ contextWindow: 128e3,
1867
+ maxTokens: 8192
1868
+ },
1869
+ {
1870
+ id: "hf:Qwen/Qwen3-235B-A22B-Instruct-2507",
1871
+ name: "Qwen3 235B A22B Instruct 2507",
1872
+ reasoning: false,
1873
+ input: ["text"],
1874
+ contextWindow: 256e3,
1875
+ maxTokens: 8192
1876
+ },
1877
+ {
1878
+ id: "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct",
1879
+ name: "Qwen3 Coder 480B A35B Instruct",
1880
+ reasoning: false,
1881
+ input: ["text"],
1882
+ contextWindow: 256e3,
1883
+ maxTokens: 8192
1884
+ },
1885
+ {
1886
+ id: "hf:Qwen/Qwen3-VL-235B-A22B-Instruct",
1887
+ name: "Qwen3 VL 235B A22B Instruct",
1888
+ reasoning: false,
1889
+ input: ["text", "image"],
1890
+ contextWindow: 25e4,
1891
+ maxTokens: 8192
1892
+ },
1893
+ {
1894
+ id: "hf:zai-org/GLM-4.5",
1895
+ name: "GLM-4.5",
1896
+ reasoning: false,
1897
+ input: ["text"],
1898
+ contextWindow: 128e3,
1899
+ maxTokens: 128e3
1900
+ },
1901
+ {
1902
+ id: "hf:zai-org/GLM-4.6",
1903
+ name: "GLM-4.6",
1904
+ reasoning: false,
1905
+ input: ["text"],
1906
+ contextWindow: 198e3,
1907
+ maxTokens: 128e3
1908
+ },
1909
+ {
1910
+ id: "hf:deepseek-ai/DeepSeek-V3",
1911
+ name: "DeepSeek V3",
1912
+ reasoning: false,
1913
+ input: ["text"],
1914
+ contextWindow: 128e3,
1915
+ maxTokens: 8192
1916
+ },
1917
+ {
1918
+ id: "hf:Qwen/Qwen3-235B-A22B-Thinking-2507",
1919
+ name: "Qwen3 235B A22B Thinking 2507",
1920
+ reasoning: true,
1921
+ input: ["text"],
1922
+ contextWindow: 256e3,
1923
+ maxTokens: 8192
1924
+ }
1925
+ ];
1926
+ function buildSyntheticModelDefinition(entry) {
1927
+ return {
1928
+ id: entry.id,
1929
+ name: entry.name,
1930
+ reasoning: entry.reasoning,
1931
+ input: [...entry.input],
1932
+ cost: SYNTHETIC_DEFAULT_COST,
1933
+ contextWindow: entry.contextWindow,
1934
+ maxTokens: entry.maxTokens
1935
+ };
1936
+ }
1937
+
1938
+ //#endregion
1939
+ //#region src/agents/venice-models.ts
1940
+ const VENICE_BASE_URL = "https://api.venice.ai/api/v1";
1941
+ const VENICE_DEFAULT_MODEL_ID = "llama-3.3-70b";
1942
+ const VENICE_DEFAULT_MODEL_REF = `venice/${VENICE_DEFAULT_MODEL_ID}`;
1943
+ const VENICE_DEFAULT_COST = {
1944
+ input: 0,
1945
+ output: 0,
1946
+ cacheRead: 0,
1947
+ cacheWrite: 0
1948
+ };
1949
+ /**
1950
+ * Complete catalog of Venice AI models.
1951
+ *
1952
+ * Venice provides two privacy modes:
1953
+ * - "private": Fully private inference, no logging, ephemeral
1954
+ * - "anonymized": Proxied through Venice with metadata stripped (for proprietary models)
1955
+ *
1956
+ * Note: The `privacy` field is included for documentation purposes but is not
1957
+ * propagated to ModelDefinitionConfig as it's not part of the core model schema.
1958
+ * Privacy mode is determined by the model itself, not configurable at runtime.
1959
+ *
1960
+ * This catalog serves as a fallback when the Venice API is unreachable.
1961
+ */
1962
+ const VENICE_MODEL_CATALOG = [
1963
+ {
1964
+ id: "llama-3.3-70b",
1965
+ name: "Llama 3.3 70B",
1966
+ reasoning: false,
1967
+ input: ["text"],
1968
+ contextWindow: 131072,
1969
+ maxTokens: 8192,
1970
+ privacy: "private"
1971
+ },
1972
+ {
1973
+ id: "llama-3.2-3b",
1974
+ name: "Llama 3.2 3B",
1975
+ reasoning: false,
1976
+ input: ["text"],
1977
+ contextWindow: 131072,
1978
+ maxTokens: 8192,
1979
+ privacy: "private"
1980
+ },
1981
+ {
1982
+ id: "hermes-3-llama-3.1-405b",
1983
+ name: "Hermes 3 Llama 3.1 405B",
1984
+ reasoning: false,
1985
+ input: ["text"],
1986
+ contextWindow: 131072,
1987
+ maxTokens: 8192,
1988
+ privacy: "private"
1989
+ },
1990
+ {
1991
+ id: "qwen3-235b-a22b-thinking-2507",
1992
+ name: "Qwen3 235B Thinking",
1993
+ reasoning: true,
1994
+ input: ["text"],
1995
+ contextWindow: 131072,
1996
+ maxTokens: 8192,
1997
+ privacy: "private"
1998
+ },
1999
+ {
2000
+ id: "qwen3-235b-a22b-instruct-2507",
2001
+ name: "Qwen3 235B Instruct",
2002
+ reasoning: false,
2003
+ input: ["text"],
2004
+ contextWindow: 131072,
2005
+ maxTokens: 8192,
2006
+ privacy: "private"
2007
+ },
2008
+ {
2009
+ id: "qwen3-coder-480b-a35b-instruct",
2010
+ name: "Qwen3 Coder 480B",
2011
+ reasoning: false,
2012
+ input: ["text"],
2013
+ contextWindow: 262144,
2014
+ maxTokens: 8192,
2015
+ privacy: "private"
2016
+ },
2017
+ {
2018
+ id: "qwen3-next-80b",
2019
+ name: "Qwen3 Next 80B",
2020
+ reasoning: false,
2021
+ input: ["text"],
2022
+ contextWindow: 262144,
2023
+ maxTokens: 8192,
2024
+ privacy: "private"
2025
+ },
2026
+ {
2027
+ id: "qwen3-vl-235b-a22b",
2028
+ name: "Qwen3 VL 235B (Vision)",
2029
+ reasoning: false,
2030
+ input: ["text", "image"],
2031
+ contextWindow: 262144,
2032
+ maxTokens: 8192,
2033
+ privacy: "private"
2034
+ },
2035
+ {
2036
+ id: "qwen3-4b",
2037
+ name: "Venice Small (Qwen3 4B)",
2038
+ reasoning: true,
2039
+ input: ["text"],
2040
+ contextWindow: 32768,
2041
+ maxTokens: 8192,
2042
+ privacy: "private"
2043
+ },
2044
+ {
2045
+ id: "deepseek-v3.2",
2046
+ name: "DeepSeek V3.2",
2047
+ reasoning: true,
2048
+ input: ["text"],
2049
+ contextWindow: 163840,
2050
+ maxTokens: 8192,
2051
+ privacy: "private"
2052
+ },
2053
+ {
2054
+ id: "venice-uncensored",
2055
+ name: "Venice Uncensored (Dolphin-Mistral)",
2056
+ reasoning: false,
2057
+ input: ["text"],
2058
+ contextWindow: 32768,
2059
+ maxTokens: 8192,
2060
+ privacy: "private"
2061
+ },
2062
+ {
2063
+ id: "mistral-31-24b",
2064
+ name: "Venice Medium (Mistral)",
2065
+ reasoning: false,
2066
+ input: ["text", "image"],
2067
+ contextWindow: 131072,
2068
+ maxTokens: 8192,
2069
+ privacy: "private"
2070
+ },
2071
+ {
2072
+ id: "google-gemma-3-27b-it",
2073
+ name: "Google Gemma 3 27B Instruct",
2074
+ reasoning: false,
2075
+ input: ["text", "image"],
2076
+ contextWindow: 202752,
2077
+ maxTokens: 8192,
2078
+ privacy: "private"
2079
+ },
2080
+ {
2081
+ id: "openai-gpt-oss-120b",
2082
+ name: "OpenAI GPT OSS 120B",
2083
+ reasoning: false,
2084
+ input: ["text"],
2085
+ contextWindow: 131072,
2086
+ maxTokens: 8192,
2087
+ privacy: "private"
2088
+ },
2089
+ {
2090
+ id: "zai-org-glm-4.7",
2091
+ name: "GLM 4.7",
2092
+ reasoning: true,
2093
+ input: ["text"],
2094
+ contextWindow: 202752,
2095
+ maxTokens: 8192,
2096
+ privacy: "private"
2097
+ },
2098
+ {
2099
+ id: "claude-opus-45",
2100
+ name: "Claude Opus 4.5 (via Venice)",
2101
+ reasoning: true,
2102
+ input: ["text", "image"],
2103
+ contextWindow: 202752,
2104
+ maxTokens: 8192,
2105
+ privacy: "anonymized"
2106
+ },
2107
+ {
2108
+ id: "claude-sonnet-45",
2109
+ name: "Claude Sonnet 4.5 (via Venice)",
2110
+ reasoning: true,
2111
+ input: ["text", "image"],
2112
+ contextWindow: 202752,
2113
+ maxTokens: 8192,
2114
+ privacy: "anonymized"
2115
+ },
2116
+ {
2117
+ id: "openai-gpt-52",
2118
+ name: "GPT-5.2 (via Venice)",
2119
+ reasoning: true,
2120
+ input: ["text"],
2121
+ contextWindow: 262144,
2122
+ maxTokens: 8192,
2123
+ privacy: "anonymized"
2124
+ },
2125
+ {
2126
+ id: "openai-gpt-52-codex",
2127
+ name: "GPT-5.2 Codex (via Venice)",
2128
+ reasoning: true,
2129
+ input: ["text", "image"],
2130
+ contextWindow: 262144,
2131
+ maxTokens: 8192,
2132
+ privacy: "anonymized"
2133
+ },
2134
+ {
2135
+ id: "gemini-3-pro-preview",
2136
+ name: "Gemini 3 Pro (via Venice)",
2137
+ reasoning: true,
2138
+ input: ["text", "image"],
2139
+ contextWindow: 202752,
2140
+ maxTokens: 8192,
2141
+ privacy: "anonymized"
2142
+ },
2143
+ {
2144
+ id: "gemini-3-flash-preview",
2145
+ name: "Gemini 3 Flash (via Venice)",
2146
+ reasoning: true,
2147
+ input: ["text", "image"],
2148
+ contextWindow: 262144,
2149
+ maxTokens: 8192,
2150
+ privacy: "anonymized"
2151
+ },
2152
+ {
2153
+ id: "grok-41-fast",
2154
+ name: "Grok 4.1 Fast (via Venice)",
2155
+ reasoning: true,
2156
+ input: ["text", "image"],
2157
+ contextWindow: 262144,
2158
+ maxTokens: 8192,
2159
+ privacy: "anonymized"
2160
+ },
2161
+ {
2162
+ id: "grok-code-fast-1",
2163
+ name: "Grok Code Fast 1 (via Venice)",
2164
+ reasoning: true,
2165
+ input: ["text"],
2166
+ contextWindow: 262144,
2167
+ maxTokens: 8192,
2168
+ privacy: "anonymized"
2169
+ },
2170
+ {
2171
+ id: "kimi-k2-thinking",
2172
+ name: "Kimi K2 Thinking (via Venice)",
2173
+ reasoning: true,
2174
+ input: ["text"],
2175
+ contextWindow: 262144,
2176
+ maxTokens: 8192,
2177
+ privacy: "anonymized"
2178
+ },
2179
+ {
2180
+ id: "minimax-m21",
2181
+ name: "MiniMax M2.1 (via Venice)",
2182
+ reasoning: true,
2183
+ input: ["text"],
2184
+ contextWindow: 202752,
2185
+ maxTokens: 8192,
2186
+ privacy: "anonymized"
2187
+ }
2188
+ ];
2189
+ /**
2190
+ * Build a ModelDefinitionConfig from a Venice catalog entry.
2191
+ *
2192
+ * Note: The `privacy` field from the catalog is not included in the output
2193
+ * as ModelDefinitionConfig doesn't support custom metadata fields. Privacy
2194
+ * mode is inherent to each model and documented in the catalog/docs.
2195
+ */
2196
+ function buildVeniceModelDefinition(entry) {
2197
+ return {
2198
+ id: entry.id,
2199
+ name: entry.name,
2200
+ reasoning: entry.reasoning,
2201
+ input: [...entry.input],
2202
+ cost: VENICE_DEFAULT_COST,
2203
+ contextWindow: entry.contextWindow,
2204
+ maxTokens: entry.maxTokens
2205
+ };
2206
+ }
2207
+ /**
2208
+ * Discover models from Venice API with fallback to static catalog.
2209
+ * The /models endpoint is public and doesn't require authentication.
2210
+ */
2211
+ async function discoverVeniceModels() {
2212
+ if (process.env.VITEST) return VENICE_MODEL_CATALOG.map(buildVeniceModelDefinition);
2213
+ try {
2214
+ const response = await fetch(`${VENICE_BASE_URL}/models`, { signal: AbortSignal.timeout(5e3) });
2215
+ if (!response.ok) {
2216
+ console.warn(`[venice-models] Failed to discover models: HTTP ${response.status}, using static catalog`);
2217
+ return VENICE_MODEL_CATALOG.map(buildVeniceModelDefinition);
2218
+ }
2219
+ const data = await response.json();
2220
+ if (!Array.isArray(data.data) || data.data.length === 0) {
2221
+ console.warn("[venice-models] No models found from API, using static catalog");
2222
+ return VENICE_MODEL_CATALOG.map(buildVeniceModelDefinition);
2223
+ }
2224
+ const catalogById = new Map(VENICE_MODEL_CATALOG.map((m) => [m.id, m]));
2225
+ const models = [];
2226
+ for (const apiModel of data.data) {
2227
+ const catalogEntry = catalogById.get(apiModel.id);
2228
+ if (catalogEntry) models.push(buildVeniceModelDefinition(catalogEntry));
2229
+ else {
2230
+ const isReasoning = apiModel.model_spec.capabilities.supportsReasoning || apiModel.id.toLowerCase().includes("thinking") || apiModel.id.toLowerCase().includes("reason") || apiModel.id.toLowerCase().includes("r1");
2231
+ const hasVision = apiModel.model_spec.capabilities.supportsVision;
2232
+ models.push({
2233
+ id: apiModel.id,
2234
+ name: apiModel.model_spec.name || apiModel.id,
2235
+ reasoning: isReasoning,
2236
+ input: hasVision ? ["text", "image"] : ["text"],
2237
+ cost: VENICE_DEFAULT_COST,
2238
+ contextWindow: apiModel.model_spec.availableContextTokens || 128e3,
2239
+ maxTokens: 8192
2240
+ });
2241
+ }
2242
+ }
2243
+ return models.length > 0 ? models : VENICE_MODEL_CATALOG.map(buildVeniceModelDefinition);
2244
+ } catch (error) {
2245
+ console.warn(`[venice-models] Discovery failed: ${String(error)}, using static catalog`);
2246
+ return VENICE_MODEL_CATALOG.map(buildVeniceModelDefinition);
2247
+ }
2248
+ }
2249
+
2250
+ //#endregion
2251
+ //#region src/agents/models-config.providers.ts
2252
+ const MINIMAX_API_BASE_URL = "https://api.minimax.chat/v1";
2253
+ const MINIMAX_PORTAL_BASE_URL = "https://api.minimax.io/anthropic";
2254
+ const MINIMAX_DEFAULT_MODEL_ID = "MiniMax-M2.1";
2255
+ const MINIMAX_DEFAULT_VISION_MODEL_ID = "MiniMax-VL-01";
2256
+ const MINIMAX_DEFAULT_CONTEXT_WINDOW = 2e5;
2257
+ const MINIMAX_DEFAULT_MAX_TOKENS = 8192;
2258
+ const MINIMAX_OAUTH_PLACEHOLDER = "minimax-oauth";
2259
+ const MINIMAX_API_COST = {
2260
+ input: 15,
2261
+ output: 60,
2262
+ cacheRead: 2,
2263
+ cacheWrite: 10
2264
+ };
2265
+ const XIAOMI_BASE_URL = "https://api.xiaomimimo.com/anthropic";
2266
+ const XIAOMI_DEFAULT_MODEL_ID = "mimo-v2-flash";
2267
+ const XIAOMI_DEFAULT_CONTEXT_WINDOW = 262144;
2268
+ const XIAOMI_DEFAULT_MAX_TOKENS = 8192;
2269
+ const XIAOMI_DEFAULT_COST = {
2270
+ input: 0,
2271
+ output: 0,
2272
+ cacheRead: 0,
2273
+ cacheWrite: 0
2274
+ };
2275
+ const MOONSHOT_BASE_URL = "https://api.moonshot.ai/v1";
2276
+ const MOONSHOT_DEFAULT_MODEL_ID = "kimi-k2.5";
2277
+ const MOONSHOT_DEFAULT_CONTEXT_WINDOW = 256e3;
2278
+ const MOONSHOT_DEFAULT_MAX_TOKENS = 8192;
2279
+ const MOONSHOT_DEFAULT_COST = {
2280
+ input: 0,
2281
+ output: 0,
2282
+ cacheRead: 0,
2283
+ cacheWrite: 0
2284
+ };
2285
+ const QWEN_PORTAL_BASE_URL = "https://portal.qwen.ai/v1";
2286
+ const QWEN_PORTAL_OAUTH_PLACEHOLDER = "qwen-oauth";
2287
+ const QWEN_PORTAL_DEFAULT_CONTEXT_WINDOW = 128e3;
2288
+ const QWEN_PORTAL_DEFAULT_MAX_TOKENS = 8192;
2289
+ const QWEN_PORTAL_DEFAULT_COST = {
2290
+ input: 0,
2291
+ output: 0,
2292
+ cacheRead: 0,
2293
+ cacheWrite: 0
2294
+ };
2295
+ const OLLAMA_BASE_URL = "http://127.0.0.1:11434/v1";
2296
+ const OLLAMA_API_BASE_URL = "http://127.0.0.1:11434";
2297
+ const OLLAMA_DEFAULT_CONTEXT_WINDOW = 128e3;
2298
+ const OLLAMA_DEFAULT_MAX_TOKENS = 8192;
2299
+ const OLLAMA_DEFAULT_COST = {
2300
+ input: 0,
2301
+ output: 0,
2302
+ cacheRead: 0,
2303
+ cacheWrite: 0
2304
+ };
2305
+ const QIANFAN_BASE_URL = "https://qianfan.baidubce.com/v2";
2306
+ const QIANFAN_DEFAULT_MODEL_ID = "deepseek-v3.2";
2307
+ const QIANFAN_DEFAULT_CONTEXT_WINDOW = 98304;
2308
+ const QIANFAN_DEFAULT_MAX_TOKENS = 32768;
2309
+ const QIANFAN_DEFAULT_COST = {
2310
+ input: 0,
2311
+ output: 0,
2312
+ cacheRead: 0,
2313
+ cacheWrite: 0
2314
+ };
2315
+ async function discoverOllamaModels() {
2316
+ if (process.env.VITEST || false) return [];
2317
+ try {
2318
+ const response = await fetch(`${OLLAMA_API_BASE_URL}/api/tags`, { signal: AbortSignal.timeout(5e3) });
2319
+ if (!response.ok) {
2320
+ console.warn(`Failed to discover Ollama models: ${response.status}`);
2321
+ return [];
2322
+ }
2323
+ const data = await response.json();
2324
+ if (!data.models || data.models.length === 0) {
2325
+ console.warn("No Ollama models found on local instance");
2326
+ return [];
2327
+ }
2328
+ return data.models.map((model) => {
2329
+ const modelId = model.name;
2330
+ return {
2331
+ id: modelId,
2332
+ name: modelId,
2333
+ reasoning: modelId.toLowerCase().includes("r1") || modelId.toLowerCase().includes("reasoning"),
2334
+ input: ["text"],
2335
+ cost: OLLAMA_DEFAULT_COST,
2336
+ contextWindow: OLLAMA_DEFAULT_CONTEXT_WINDOW,
2337
+ maxTokens: OLLAMA_DEFAULT_MAX_TOKENS,
2338
+ params: { streaming: false }
2339
+ };
2340
+ });
2341
+ } catch (error) {
2342
+ console.warn(`Failed to discover Ollama models: ${String(error)}`);
2343
+ return [];
2344
+ }
2345
+ }
2346
+ function normalizeApiKeyConfig(value) {
2347
+ const trimmed = value.trim();
2348
+ return /^\$\{([A-Z0-9_]+)\}$/.exec(trimmed)?.[1] ?? trimmed;
2349
+ }
2350
+ function resolveEnvApiKeyVarName(provider) {
2351
+ const resolved = resolveEnvApiKey(provider);
2352
+ if (!resolved) return;
2353
+ const match = /^(?:env: |shell env: )([A-Z0-9_]+)$/.exec(resolved.source);
2354
+ return match ? match[1] : void 0;
2355
+ }
2356
+ function resolveAwsSdkApiKeyVarName() {
2357
+ return resolveAwsSdkEnvVarName() ?? "AWS_PROFILE";
2358
+ }
2359
+ function resolveApiKeyFromProfiles(params) {
2360
+ const ids = listProfilesForProvider(params.store, params.provider);
2361
+ for (const id of ids) {
2362
+ const cred = params.store.profiles[id];
2363
+ if (!cred) continue;
2364
+ if (cred.type === "api_key") return cred.key;
2365
+ if (cred.type === "token") return cred.token;
2366
+ }
2367
+ }
2368
+ function normalizeGoogleModelId(id) {
2369
+ if (id === "gemini-3-pro") return "gemini-3-pro-preview";
2370
+ if (id === "gemini-3-flash") return "gemini-3-flash-preview";
2371
+ return id;
2372
+ }
2373
+ function normalizeGoogleProvider(provider) {
2374
+ let mutated = false;
2375
+ const models = provider.models.map((model) => {
2376
+ const nextId = normalizeGoogleModelId(model.id);
2377
+ if (nextId === model.id) return model;
2378
+ mutated = true;
2379
+ return {
2380
+ ...model,
2381
+ id: nextId
2382
+ };
2383
+ });
2384
+ return mutated ? {
2385
+ ...provider,
2386
+ models
2387
+ } : provider;
2388
+ }
2389
+ function normalizeProviders(params) {
2390
+ const { providers } = params;
2391
+ if (!providers) return providers;
2392
+ const authStore = ensureAuthProfileStore(params.agentDir, { allowKeychainPrompt: false });
2393
+ let mutated = false;
2394
+ const next = {};
2395
+ for (const [key, provider] of Object.entries(providers)) {
2396
+ const normalizedKey = key.trim();
2397
+ let normalizedProvider = provider;
2398
+ if (normalizedProvider.apiKey && normalizeApiKeyConfig(normalizedProvider.apiKey) !== normalizedProvider.apiKey) {
2399
+ mutated = true;
2400
+ normalizedProvider = {
2401
+ ...normalizedProvider,
2402
+ apiKey: normalizeApiKeyConfig(normalizedProvider.apiKey)
2403
+ };
2404
+ }
2405
+ if (Array.isArray(normalizedProvider.models) && normalizedProvider.models.length > 0 && !normalizedProvider.apiKey?.trim()) if ((normalizedProvider.auth ?? (normalizedKey === "amazon-bedrock" ? "aws-sdk" : void 0)) === "aws-sdk") {
2406
+ const apiKey = resolveAwsSdkApiKeyVarName();
2407
+ mutated = true;
2408
+ normalizedProvider = {
2409
+ ...normalizedProvider,
2410
+ apiKey
2411
+ };
2412
+ } else {
2413
+ const fromEnv = resolveEnvApiKeyVarName(normalizedKey);
2414
+ const fromProfiles = resolveApiKeyFromProfiles({
2415
+ provider: normalizedKey,
2416
+ store: authStore
2417
+ });
2418
+ const apiKey = fromEnv ?? fromProfiles;
2419
+ if (apiKey?.trim()) {
2420
+ mutated = true;
2421
+ normalizedProvider = {
2422
+ ...normalizedProvider,
2423
+ apiKey
2424
+ };
2425
+ }
2426
+ }
2427
+ if (normalizedKey === "google") {
2428
+ const googleNormalized = normalizeGoogleProvider(normalizedProvider);
2429
+ if (googleNormalized !== normalizedProvider) mutated = true;
2430
+ normalizedProvider = googleNormalized;
2431
+ }
2432
+ next[key] = normalizedProvider;
2433
+ }
2434
+ return mutated ? next : providers;
2435
+ }
2436
+ function buildMinimaxProvider() {
2437
+ return {
2438
+ baseUrl: MINIMAX_API_BASE_URL,
2439
+ api: "openai-completions",
2440
+ models: [{
2441
+ id: MINIMAX_DEFAULT_MODEL_ID,
2442
+ name: "MiniMax M2.1",
2443
+ reasoning: false,
2444
+ input: ["text"],
2445
+ cost: MINIMAX_API_COST,
2446
+ contextWindow: MINIMAX_DEFAULT_CONTEXT_WINDOW,
2447
+ maxTokens: MINIMAX_DEFAULT_MAX_TOKENS
2448
+ }, {
2449
+ id: MINIMAX_DEFAULT_VISION_MODEL_ID,
2450
+ name: "MiniMax VL 01",
2451
+ reasoning: false,
2452
+ input: ["text", "image"],
2453
+ cost: MINIMAX_API_COST,
2454
+ contextWindow: MINIMAX_DEFAULT_CONTEXT_WINDOW,
2455
+ maxTokens: MINIMAX_DEFAULT_MAX_TOKENS
2456
+ }]
2457
+ };
2458
+ }
2459
+ function buildMinimaxPortalProvider() {
2460
+ return {
2461
+ baseUrl: MINIMAX_PORTAL_BASE_URL,
2462
+ api: "anthropic-messages",
2463
+ models: [{
2464
+ id: MINIMAX_DEFAULT_MODEL_ID,
2465
+ name: "MiniMax M2.1",
2466
+ reasoning: false,
2467
+ input: ["text"],
2468
+ cost: MINIMAX_API_COST,
2469
+ contextWindow: MINIMAX_DEFAULT_CONTEXT_WINDOW,
2470
+ maxTokens: MINIMAX_DEFAULT_MAX_TOKENS
2471
+ }]
2472
+ };
2473
+ }
2474
+ function buildMoonshotProvider() {
2475
+ return {
2476
+ baseUrl: MOONSHOT_BASE_URL,
2477
+ api: "openai-completions",
2478
+ models: [{
2479
+ id: MOONSHOT_DEFAULT_MODEL_ID,
2480
+ name: "Kimi K2.5",
2481
+ reasoning: false,
2482
+ input: ["text"],
2483
+ cost: MOONSHOT_DEFAULT_COST,
2484
+ contextWindow: MOONSHOT_DEFAULT_CONTEXT_WINDOW,
2485
+ maxTokens: MOONSHOT_DEFAULT_MAX_TOKENS
2486
+ }]
2487
+ };
2488
+ }
2489
+ function buildQwenPortalProvider() {
2490
+ return {
2491
+ baseUrl: QWEN_PORTAL_BASE_URL,
2492
+ api: "openai-completions",
2493
+ models: [{
2494
+ id: "coder-model",
2495
+ name: "Qwen Coder",
2496
+ reasoning: false,
2497
+ input: ["text"],
2498
+ cost: QWEN_PORTAL_DEFAULT_COST,
2499
+ contextWindow: QWEN_PORTAL_DEFAULT_CONTEXT_WINDOW,
2500
+ maxTokens: QWEN_PORTAL_DEFAULT_MAX_TOKENS
2501
+ }, {
2502
+ id: "vision-model",
2503
+ name: "Qwen Vision",
2504
+ reasoning: false,
2505
+ input: ["text", "image"],
2506
+ cost: QWEN_PORTAL_DEFAULT_COST,
2507
+ contextWindow: QWEN_PORTAL_DEFAULT_CONTEXT_WINDOW,
2508
+ maxTokens: QWEN_PORTAL_DEFAULT_MAX_TOKENS
2509
+ }]
2510
+ };
2511
+ }
2512
+ function buildSyntheticProvider() {
2513
+ return {
2514
+ baseUrl: SYNTHETIC_BASE_URL,
2515
+ api: "anthropic-messages",
2516
+ models: SYNTHETIC_MODEL_CATALOG.map(buildSyntheticModelDefinition)
2517
+ };
2518
+ }
2519
+ function buildXiaomiProvider() {
2520
+ return {
2521
+ baseUrl: XIAOMI_BASE_URL,
2522
+ api: "anthropic-messages",
2523
+ models: [{
2524
+ id: XIAOMI_DEFAULT_MODEL_ID,
2525
+ name: "Xiaomi MiMo V2 Flash",
2526
+ reasoning: false,
2527
+ input: ["text"],
2528
+ cost: XIAOMI_DEFAULT_COST,
2529
+ contextWindow: XIAOMI_DEFAULT_CONTEXT_WINDOW,
2530
+ maxTokens: XIAOMI_DEFAULT_MAX_TOKENS
2531
+ }]
2532
+ };
2533
+ }
2534
+ async function buildVeniceProvider() {
2535
+ return {
2536
+ baseUrl: VENICE_BASE_URL,
2537
+ api: "openai-completions",
2538
+ models: await discoverVeniceModels()
2539
+ };
2540
+ }
2541
+ async function buildOllamaProvider() {
2542
+ return {
2543
+ baseUrl: OLLAMA_BASE_URL,
2544
+ api: "openai-completions",
2545
+ models: await discoverOllamaModels()
2546
+ };
2547
+ }
2548
+ function buildQianfanProvider() {
2549
+ return {
2550
+ baseUrl: QIANFAN_BASE_URL,
2551
+ api: "openai-completions",
2552
+ models: [{
2553
+ id: QIANFAN_DEFAULT_MODEL_ID,
2554
+ name: "DEEPSEEK V3.2",
2555
+ reasoning: true,
2556
+ input: ["text"],
2557
+ cost: QIANFAN_DEFAULT_COST,
2558
+ contextWindow: QIANFAN_DEFAULT_CONTEXT_WINDOW,
2559
+ maxTokens: QIANFAN_DEFAULT_MAX_TOKENS
2560
+ }, {
2561
+ id: "ernie-5.0-thinking-preview",
2562
+ name: "ERNIE-5.0-Thinking-Preview",
2563
+ reasoning: true,
2564
+ input: ["text", "image"],
2565
+ cost: QIANFAN_DEFAULT_COST,
2566
+ contextWindow: 119e3,
2567
+ maxTokens: 64e3
2568
+ }]
2569
+ };
2570
+ }
2571
+ async function resolveImplicitProviders(params) {
2572
+ const providers = {};
2573
+ const authStore = ensureAuthProfileStore(params.agentDir, { allowKeychainPrompt: false });
2574
+ const minimaxKey = resolveEnvApiKeyVarName("minimax") ?? resolveApiKeyFromProfiles({
2575
+ provider: "minimax",
2576
+ store: authStore
2577
+ });
2578
+ if (minimaxKey) providers.minimax = {
2579
+ ...buildMinimaxProvider(),
2580
+ apiKey: minimaxKey
2581
+ };
2582
+ if (listProfilesForProvider(authStore, "minimax-portal").length > 0) providers["minimax-portal"] = {
2583
+ ...buildMinimaxPortalProvider(),
2584
+ apiKey: MINIMAX_OAUTH_PLACEHOLDER
2585
+ };
2586
+ const moonshotKey = resolveEnvApiKeyVarName("moonshot") ?? resolveApiKeyFromProfiles({
2587
+ provider: "moonshot",
2588
+ store: authStore
2589
+ });
2590
+ if (moonshotKey) providers.moonshot = {
2591
+ ...buildMoonshotProvider(),
2592
+ apiKey: moonshotKey
2593
+ };
2594
+ const syntheticKey = resolveEnvApiKeyVarName("synthetic") ?? resolveApiKeyFromProfiles({
2595
+ provider: "synthetic",
2596
+ store: authStore
2597
+ });
2598
+ if (syntheticKey) providers.synthetic = {
2599
+ ...buildSyntheticProvider(),
2600
+ apiKey: syntheticKey
2601
+ };
2602
+ const veniceKey = resolveEnvApiKeyVarName("venice") ?? resolveApiKeyFromProfiles({
2603
+ provider: "venice",
2604
+ store: authStore
2605
+ });
2606
+ if (veniceKey) providers.venice = {
2607
+ ...await buildVeniceProvider(),
2608
+ apiKey: veniceKey
2609
+ };
2610
+ if (listProfilesForProvider(authStore, "qwen-portal").length > 0) providers["qwen-portal"] = {
2611
+ ...buildQwenPortalProvider(),
2612
+ apiKey: QWEN_PORTAL_OAUTH_PLACEHOLDER
2613
+ };
2614
+ const xiaomiKey = resolveEnvApiKeyVarName("xiaomi") ?? resolveApiKeyFromProfiles({
2615
+ provider: "xiaomi",
2616
+ store: authStore
2617
+ });
2618
+ if (xiaomiKey) providers.xiaomi = {
2619
+ ...buildXiaomiProvider(),
2620
+ apiKey: xiaomiKey
2621
+ };
2622
+ const cloudflareProfiles = listProfilesForProvider(authStore, "cloudflare-ai-gateway");
2623
+ for (const profileId of cloudflareProfiles) {
2624
+ const cred = authStore.profiles[profileId];
2625
+ if (cred?.type !== "api_key") continue;
2626
+ const accountId = cred.metadata?.accountId?.trim();
2627
+ const gatewayId = cred.metadata?.gatewayId?.trim();
2628
+ if (!accountId || !gatewayId) continue;
2629
+ const baseUrl = resolveCloudflareAiGatewayBaseUrl({
2630
+ accountId,
2631
+ gatewayId
2632
+ });
2633
+ if (!baseUrl) continue;
2634
+ const apiKey = resolveEnvApiKeyVarName("cloudflare-ai-gateway") ?? cred.key?.trim() ?? "";
2635
+ if (!apiKey) continue;
2636
+ providers["cloudflare-ai-gateway"] = {
2637
+ baseUrl,
2638
+ api: "anthropic-messages",
2639
+ apiKey,
2640
+ models: [buildCloudflareAiGatewayModelDefinition()]
2641
+ };
2642
+ break;
2643
+ }
2644
+ const ollamaKey = resolveEnvApiKeyVarName("ollama") ?? resolveApiKeyFromProfiles({
2645
+ provider: "ollama",
2646
+ store: authStore
2647
+ });
2648
+ if (ollamaKey) providers.ollama = {
2649
+ ...await buildOllamaProvider(),
2650
+ apiKey: ollamaKey
2651
+ };
2652
+ const qianfanKey = resolveEnvApiKeyVarName("qianfan") ?? resolveApiKeyFromProfiles({
2653
+ provider: "qianfan",
2654
+ store: authStore
2655
+ });
2656
+ if (qianfanKey) providers.qianfan = {
2657
+ ...buildQianfanProvider(),
2658
+ apiKey: qianfanKey
2659
+ };
2660
+ return providers;
2661
+ }
2662
+ async function resolveImplicitCopilotProvider(params) {
2663
+ const env = params.env ?? process.env;
2664
+ const authStore = ensureAuthProfileStore(params.agentDir, { allowKeychainPrompt: false });
2665
+ const hasProfile = listProfilesForProvider(authStore, "github-copilot").length > 0;
2666
+ const githubToken = (env.COPILOT_GITHUB_TOKEN ?? env.GH_TOKEN ?? env.GITHUB_TOKEN ?? "").trim();
2667
+ if (!hasProfile && !githubToken) return null;
2668
+ let selectedGithubToken = githubToken;
2669
+ if (!selectedGithubToken && hasProfile) {
2670
+ const profileId = listProfilesForProvider(authStore, "github-copilot")[0];
2671
+ const profile = profileId ? authStore.profiles[profileId] : void 0;
2672
+ if (profile && profile.type === "token") selectedGithubToken = profile.token;
2673
+ }
2674
+ let baseUrl = DEFAULT_COPILOT_API_BASE_URL;
2675
+ if (selectedGithubToken) try {
2676
+ baseUrl = (await resolveCopilotApiToken({
2677
+ githubToken: selectedGithubToken,
2678
+ env
2679
+ })).baseUrl;
2680
+ } catch {
2681
+ baseUrl = DEFAULT_COPILOT_API_BASE_URL;
2682
+ }
2683
+ return {
2684
+ baseUrl,
2685
+ models: []
2686
+ };
2687
+ }
2688
+ async function resolveImplicitBedrockProvider(params) {
2689
+ const env = params.env ?? process.env;
2690
+ const discoveryConfig = params.config?.models?.bedrockDiscovery;
2691
+ const enabled = discoveryConfig?.enabled;
2692
+ const hasAwsCreds = resolveAwsSdkEnvVarName(env) !== void 0;
2693
+ if (enabled === false) return null;
2694
+ if (enabled !== true && !hasAwsCreds) return null;
2695
+ const region = discoveryConfig?.region ?? env.AWS_REGION ?? env.AWS_DEFAULT_REGION ?? "us-east-1";
2696
+ const models = await discoverBedrockModels({
2697
+ region,
2698
+ config: discoveryConfig
2699
+ });
2700
+ if (models.length === 0) return null;
2701
+ return {
2702
+ baseUrl: `https://bedrock-runtime.${region}.amazonaws.com`,
2703
+ api: "bedrock-converse-stream",
2704
+ auth: "aws-sdk",
2705
+ models
2706
+ };
2707
+ }
2708
+
2709
+ //#endregion
2710
+ //#region src/agents/model-selection.ts
2711
+ const ANTHROPIC_MODEL_ALIASES = {
2712
+ "opus-4.6": "claude-opus-4-6",
2713
+ "opus-4.5": "claude-opus-4-5",
2714
+ "sonnet-4.5": "claude-sonnet-4-5"
2715
+ };
2716
+ function normalizeAliasKey(value) {
2717
+ return value.trim().toLowerCase();
2718
+ }
2719
+ function modelKey(provider, model) {
2720
+ return `${provider}/${model}`;
2721
+ }
2722
+ function normalizeProviderId(provider) {
2723
+ const normalized = provider.trim().toLowerCase();
2724
+ if (normalized === "z.ai" || normalized === "z-ai") return "zai";
2725
+ if (normalized === "opencode-zen") return "opencode";
2726
+ if (normalized === "qwen") return "qwen-portal";
2727
+ if (normalized === "kimi-code") return "kimi-coding";
2728
+ return normalized;
2729
+ }
2730
+ function isCliProvider(provider, cfg) {
2731
+ const normalized = normalizeProviderId(provider);
2732
+ if (normalized === "claude-cli") return true;
2733
+ if (normalized === "codex-cli") return true;
2734
+ const backends = cfg?.agents?.defaults?.cliBackends ?? {};
2735
+ return Object.keys(backends).some((key) => normalizeProviderId(key) === normalized);
2736
+ }
2737
+ function normalizeAnthropicModelId(model) {
2738
+ const trimmed = model.trim();
2739
+ if (!trimmed) return trimmed;
2740
+ return ANTHROPIC_MODEL_ALIASES[trimmed.toLowerCase()] ?? trimmed;
2741
+ }
2742
+ function normalizeProviderModelId(provider, model) {
2743
+ if (provider === "anthropic") return normalizeAnthropicModelId(model);
2744
+ if (provider === "google") return normalizeGoogleModelId(model);
2745
+ return model;
2746
+ }
2747
+ function parseModelRef(raw, defaultProvider) {
2748
+ const trimmed = raw.trim();
2749
+ if (!trimmed) return null;
2750
+ const slash = trimmed.indexOf("/");
2751
+ if (slash === -1) {
2752
+ const provider = normalizeProviderId(defaultProvider);
2753
+ return {
2754
+ provider,
2755
+ model: normalizeProviderModelId(provider, trimmed)
2756
+ };
2757
+ }
2758
+ const provider = normalizeProviderId(trimmed.slice(0, slash).trim());
2759
+ const model = trimmed.slice(slash + 1).trim();
2760
+ if (!provider || !model) return null;
2761
+ return {
2762
+ provider,
2763
+ model: normalizeProviderModelId(provider, model)
2764
+ };
2765
+ }
2766
+ function resolveAllowlistModelKey(raw, defaultProvider) {
2767
+ const parsed = parseModelRef(raw, defaultProvider);
2768
+ if (!parsed) return null;
2769
+ return modelKey(parsed.provider, parsed.model);
2770
+ }
2771
+ function buildConfiguredAllowlistKeys(params) {
2772
+ const rawAllowlist = Object.keys(params.cfg?.agents?.defaults?.models ?? {});
2773
+ if (rawAllowlist.length === 0) return null;
2774
+ const keys = /* @__PURE__ */ new Set();
2775
+ for (const raw of rawAllowlist) {
2776
+ const key = resolveAllowlistModelKey(String(raw ?? ""), params.defaultProvider);
2777
+ if (key) keys.add(key);
2778
+ }
2779
+ return keys.size > 0 ? keys : null;
2780
+ }
2781
+ function buildModelAliasIndex(params) {
2782
+ const byAlias = /* @__PURE__ */ new Map();
2783
+ const byKey = /* @__PURE__ */ new Map();
2784
+ const rawModels = params.cfg.agents?.defaults?.models ?? {};
2785
+ for (const [keyRaw, entryRaw] of Object.entries(rawModels)) {
2786
+ const parsed = parseModelRef(String(keyRaw ?? ""), params.defaultProvider);
2787
+ if (!parsed) continue;
2788
+ const alias = String(entryRaw?.alias ?? "").trim();
2789
+ if (!alias) continue;
2790
+ const aliasKey = normalizeAliasKey(alias);
2791
+ byAlias.set(aliasKey, {
2792
+ alias,
2793
+ ref: parsed
2794
+ });
2795
+ const key = modelKey(parsed.provider, parsed.model);
2796
+ const existing = byKey.get(key) ?? [];
2797
+ existing.push(alias);
2798
+ byKey.set(key, existing);
2799
+ }
2800
+ return {
2801
+ byAlias,
2802
+ byKey
2803
+ };
2804
+ }
2805
+ function resolveModelRefFromString(params) {
2806
+ const trimmed = params.raw.trim();
2807
+ if (!trimmed) return null;
2808
+ if (!trimmed.includes("/")) {
2809
+ const aliasKey = normalizeAliasKey(trimmed);
2810
+ const aliasMatch = params.aliasIndex?.byAlias.get(aliasKey);
2811
+ if (aliasMatch) return {
2812
+ ref: aliasMatch.ref,
2813
+ alias: aliasMatch.alias
2814
+ };
2815
+ }
2816
+ const parsed = parseModelRef(trimmed, params.defaultProvider);
2817
+ if (!parsed) return null;
2818
+ return { ref: parsed };
2819
+ }
2820
+ function resolveConfiguredModelRef(params) {
2821
+ const rawModel = (() => {
2822
+ const raw = params.cfg.agents?.defaults?.model;
2823
+ if (typeof raw === "string") return raw.trim();
2824
+ return raw?.primary?.trim() ?? "";
2825
+ })();
2826
+ if (rawModel) {
2827
+ const trimmed = rawModel.trim();
2828
+ const aliasIndex = buildModelAliasIndex({
2829
+ cfg: params.cfg,
2830
+ defaultProvider: params.defaultProvider
2831
+ });
2832
+ if (!trimmed.includes("/")) {
2833
+ const aliasKey = normalizeAliasKey(trimmed);
2834
+ const aliasMatch = aliasIndex.byAlias.get(aliasKey);
2835
+ if (aliasMatch) return aliasMatch.ref;
2836
+ console.warn(`[atlas] Model "${trimmed}" specified without provider. Falling back to "anthropic/${trimmed}". Please use "anthropic/${trimmed}" in your config.`);
2837
+ return {
2838
+ provider: "anthropic",
2839
+ model: trimmed
2840
+ };
2841
+ }
2842
+ const resolved = resolveModelRefFromString({
2843
+ raw: trimmed,
2844
+ defaultProvider: params.defaultProvider,
2845
+ aliasIndex
2846
+ });
2847
+ if (resolved) return resolved.ref;
2848
+ }
2849
+ return {
2850
+ provider: params.defaultProvider,
2851
+ model: params.defaultModel
2852
+ };
2853
+ }
2854
+ function resolveDefaultModelForAgent(params) {
2855
+ const agentModelOverride = params.agentId ? resolveAgentModelPrimary(params.cfg, params.agentId) : void 0;
2856
+ return resolveConfiguredModelRef({
2857
+ cfg: agentModelOverride && agentModelOverride.length > 0 ? {
2858
+ ...params.cfg,
2859
+ agents: {
2860
+ ...params.cfg.agents,
2861
+ defaults: {
2862
+ ...params.cfg.agents?.defaults,
2863
+ model: {
2864
+ ...typeof params.cfg.agents?.defaults?.model === "object" ? params.cfg.agents.defaults.model : void 0,
2865
+ primary: agentModelOverride
2866
+ }
2867
+ }
2868
+ }
2869
+ } : params.cfg,
2870
+ defaultProvider: DEFAULT_PROVIDER,
2871
+ defaultModel: DEFAULT_MODEL
2872
+ });
2873
+ }
2874
+ function buildAllowedModelSet(params) {
2875
+ const rawAllowlist = (() => {
2876
+ const modelMap = params.cfg.agents?.defaults?.models ?? {};
2877
+ return Object.keys(modelMap);
2878
+ })();
2879
+ const allowAny = rawAllowlist.length === 0;
2880
+ const defaultModel = params.defaultModel?.trim();
2881
+ const defaultKey = defaultModel && params.defaultProvider ? modelKey(params.defaultProvider, defaultModel) : void 0;
2882
+ const catalogKeys = new Set(params.catalog.map((entry) => modelKey(entry.provider, entry.id)));
2883
+ if (allowAny) {
2884
+ if (defaultKey) catalogKeys.add(defaultKey);
2885
+ return {
2886
+ allowAny: true,
2887
+ allowedCatalog: params.catalog,
2888
+ allowedKeys: catalogKeys
2889
+ };
2890
+ }
2891
+ const allowedKeys = /* @__PURE__ */ new Set();
2892
+ const configuredProviders = params.cfg.models?.providers ?? {};
2893
+ for (const raw of rawAllowlist) {
2894
+ const parsed = parseModelRef(String(raw), params.defaultProvider);
2895
+ if (!parsed) continue;
2896
+ const key = modelKey(parsed.provider, parsed.model);
2897
+ const providerKey = normalizeProviderId(parsed.provider);
2898
+ if (isCliProvider(parsed.provider, params.cfg)) allowedKeys.add(key);
2899
+ else if (catalogKeys.has(key)) allowedKeys.add(key);
2900
+ else if (configuredProviders[providerKey] != null) allowedKeys.add(key);
2901
+ }
2902
+ if (defaultKey) allowedKeys.add(defaultKey);
2903
+ const allowedCatalog = params.catalog.filter((entry) => allowedKeys.has(modelKey(entry.provider, entry.id)));
2904
+ if (allowedCatalog.length === 0 && allowedKeys.size === 0) {
2905
+ if (defaultKey) catalogKeys.add(defaultKey);
2906
+ return {
2907
+ allowAny: true,
2908
+ allowedCatalog: params.catalog,
2909
+ allowedKeys: catalogKeys
2910
+ };
2911
+ }
2912
+ return {
2913
+ allowAny: false,
2914
+ allowedCatalog,
2915
+ allowedKeys
2916
+ };
2917
+ }
2918
+ function getModelRefStatus(params) {
2919
+ const allowed = buildAllowedModelSet({
2920
+ cfg: params.cfg,
2921
+ catalog: params.catalog,
2922
+ defaultProvider: params.defaultProvider,
2923
+ defaultModel: params.defaultModel
2924
+ });
2925
+ const key = modelKey(params.ref.provider, params.ref.model);
2926
+ return {
2927
+ key,
2928
+ inCatalog: params.catalog.some((entry) => modelKey(entry.provider, entry.id) === key),
2929
+ allowAny: allowed.allowAny,
2930
+ allowed: allowed.allowAny || allowed.allowedKeys.has(key)
2931
+ };
2932
+ }
2933
+ function resolveAllowedModelRef(params) {
2934
+ const trimmed = params.raw.trim();
2935
+ if (!trimmed) return { error: "invalid model: empty" };
2936
+ const aliasIndex = buildModelAliasIndex({
2937
+ cfg: params.cfg,
2938
+ defaultProvider: params.defaultProvider
2939
+ });
2940
+ const resolved = resolveModelRefFromString({
2941
+ raw: trimmed,
2942
+ defaultProvider: params.defaultProvider,
2943
+ aliasIndex
2944
+ });
2945
+ if (!resolved) return { error: `invalid model: ${trimmed}` };
2946
+ const status = getModelRefStatus({
2947
+ cfg: params.cfg,
2948
+ catalog: params.catalog,
2949
+ ref: resolved.ref,
2950
+ defaultProvider: params.defaultProvider,
2951
+ defaultModel: params.defaultModel
2952
+ });
2953
+ if (!status.allowed) return { error: `model not allowed: ${status.key}` };
2954
+ return {
2955
+ ref: resolved.ref,
2956
+ key: status.key
2957
+ };
2958
+ }
2959
+ function resolveThinkingDefault(params) {
2960
+ const configured = params.cfg.agents?.defaults?.thinkingDefault;
2961
+ if (configured) return configured;
2962
+ if ((params.catalog?.find((entry) => entry.provider === params.provider && entry.id === params.model))?.reasoning) return "low";
2963
+ return "off";
2964
+ }
2965
+ /**
2966
+ * Resolve the model configured for Gmail hook processing.
2967
+ * Returns null if hooks.gmail.model is not set.
2968
+ */
2969
+ function resolveHooksGmailModel(params) {
2970
+ const hooksModel = params.cfg.hooks?.gmail?.model;
2971
+ if (!hooksModel?.trim()) return null;
2972
+ const aliasIndex = buildModelAliasIndex({
2973
+ cfg: params.cfg,
2974
+ defaultProvider: params.defaultProvider
2975
+ });
2976
+ return resolveModelRefFromString({
2977
+ raw: hooksModel,
2978
+ defaultProvider: params.defaultProvider,
2979
+ aliasIndex
2980
+ })?.ref ?? null;
2981
+ }
2982
+
2983
+ //#endregion
2984
+ export { markAuthProfileFailure as $, SYNTHETIC_BASE_URL as A, resolveModelAuthMode as B, resolveImplicitBedrockProvider as C, DEFAULT_PROVIDER as Ct, VENICE_DEFAULT_MODEL_REF as D, VENICE_BASE_URL as E, getCustomProviderApiKey as F, shouldDeferShellEnvFallback as G, getShellPathFromLoginShell as H, requireApiKey as I, buildCloudflareAiGatewayModelDefinition as J, shouldEnableShellEnvFallback as K, resolveApiKeyForProvider as L, SYNTHETIC_MODEL_CATALOG as M, buildSyntheticModelDefinition as N, VENICE_MODEL_CATALOG as O, getApiKeyForModel as P, isProfileInCooldown as Q, resolveAwsSdkEnvVarName as R, normalizeProviders as S, DEFAULT_MODEL as St, resolveImplicitProviders as T, loadShellEnvFallback as U, getShellEnvAppliedKeys as V, resolveShellEnvFallbackTimeoutMs as W, auth_profiles_exports as X, resolveCloudflareAiGatewayBaseUrl as Y, resolveAuthProfileOrder as Z, QIANFAN_DEFAULT_MODEL_ID as _, resolveAtlasAgentDir as _t, isCliProvider as a, generateChutesPkce as at, buildXiaomiProvider as b, CODEX_CLI_PROFILE_ID as bt, parseModelRef as c, listProfilesForProvider as ct, resolveConfiguredModelRef as d, upsertAuthProfile as dt, markAuthProfileUsed as et, resolveDefaultModelForAgent as f, ensureAuthProfileStore as ft, QIANFAN_BASE_URL as g, resolveAuthStorePathForDisplay as gt, resolveThinkingDefault as h, resolveAuthStorePath as ht, getModelRefStatus as i, exchangeChutesCodeForTokens as it, SYNTHETIC_DEFAULT_MODEL_REF as j, buildVeniceModelDefinition as k, resolveAllowedModelRef as l, markAuthProfileGood as lt, resolveModelRefFromString as m, updateAuthProfileStoreWithLock as mt, buildConfiguredAllowlistKeys as n, resolveApiKeyForProfile as nt, modelKey as o, parseOAuthCallbackInput as ot, resolveHooksGmailModel as p, loadAuthProfileStore as pt, CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF as q, buildModelAliasIndex as r, CHUTES_AUTHORIZE_ENDPOINT as rt, normalizeProviderId as s, repairOAuthProfileIdMismatch as st, buildAllowedModelSet as t, resolveProfileUnusableUntilForDisplay as tt, resolveAllowlistModelKey as u, setAuthProfileOrder as ut, XIAOMI_DEFAULT_MODEL_ID as v, resolveAuthProfileDisplayLabel as vt, resolveImplicitCopilotProvider as w, normalizeGoogleModelId as x, DEFAULT_CONTEXT_TOKENS as xt, buildQianfanProvider as y, CLAUDE_CLI_PROFILE_ID as yt, resolveEnvApiKey as z };