@poolzin/pool-bot 2026.1.39 → 2026.2.1

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 (511) hide show
  1. package/assets/chrome-extension/README.md +3 -3
  2. package/assets/chrome-extension/background.js +5 -5
  3. package/assets/chrome-extension/manifest.json +3 -3
  4. package/assets/chrome-extension/options.html +4 -4
  5. package/assets/chrome-extension/options.js +1 -1
  6. package/dist/acp/client.js +3 -3
  7. package/dist/acp/types.js +1 -1
  8. package/dist/agents/agent-paths.js +3 -3
  9. package/dist/agents/auth-profiles/paths.js +3 -3
  10. package/dist/agents/bash-tools.exec.js +76 -25
  11. package/dist/agents/cli-runner/helpers.js +10 -12
  12. package/dist/agents/cli-runner.js +2 -2
  13. package/dist/agents/cloudflare-ai-gateway.js +31 -0
  14. package/dist/agents/compaction.js +16 -2
  15. package/dist/agents/context-window-guard.js +13 -10
  16. package/dist/agents/context.js +4 -4
  17. package/dist/agents/docs-path.js +1 -1
  18. package/dist/agents/identity.js +47 -7
  19. package/dist/agents/memory-search.js +25 -8
  20. package/dist/agents/minimax-vlm.js +1 -1
  21. package/dist/agents/model-auth.js +12 -1
  22. package/dist/agents/model-catalog.js +4 -4
  23. package/dist/agents/model-selection.js +31 -4
  24. package/dist/agents/models-config.js +3 -3
  25. package/dist/agents/models-config.providers.js +147 -39
  26. package/dist/agents/pi-embedded-block-chunker.js +117 -42
  27. package/dist/agents/pi-embedded-helpers/errors.js +183 -78
  28. package/dist/agents/pi-embedded-helpers/openai.js +1 -1
  29. package/dist/agents/pi-embedded-helpers.js +1 -1
  30. package/dist/agents/pi-embedded-runner/compact.js +9 -8
  31. package/dist/agents/pi-embedded-runner/model.js +63 -4
  32. package/dist/agents/pi-embedded-runner/run/attempt.js +27 -17
  33. package/dist/agents/pi-embedded-runner/run.js +203 -50
  34. package/dist/agents/pi-embedded-runner/system-prompt.js +10 -2
  35. package/dist/agents/pi-embedded-runner/tool-result-truncation.js +275 -0
  36. package/dist/agents/pi-embedded-runner/utils.js +1 -1
  37. package/dist/agents/pi-embedded-subscribe.js +118 -29
  38. package/dist/agents/pi-model-discovery.js +10 -0
  39. package/dist/agents/pi-tool-definition-adapter.js +50 -9
  40. package/dist/agents/pi-tools.before-tool-call.js +67 -0
  41. package/dist/agents/pi-tools.js +20 -10
  42. package/dist/agents/pi-tools.read.js +2 -2
  43. package/dist/agents/poolbot-tools.js +15 -10
  44. package/dist/agents/sandbox-paths.js +31 -0
  45. package/dist/agents/session-file-repair.js +83 -0
  46. package/dist/agents/session-tool-result-guard.js +94 -15
  47. package/dist/agents/session-transcript-repair.js +68 -0
  48. package/dist/agents/shell-utils.js +51 -0
  49. package/dist/agents/skills/bundled-context.js +23 -0
  50. package/dist/agents/skills/bundled-dir.js +41 -7
  51. package/dist/agents/skills/frontmatter.js +1 -1
  52. package/dist/agents/skills/workspace.js +2 -2
  53. package/dist/agents/skills-install.js +60 -23
  54. package/dist/agents/subagent-announce.js +79 -34
  55. package/dist/agents/system-prompt.js +28 -4
  56. package/dist/agents/together-models.js +127 -0
  57. package/dist/agents/tool-images.js +1 -1
  58. package/dist/agents/tool-policy.conformance.js +14 -0
  59. package/dist/agents/tool-policy.js +25 -1
  60. package/dist/agents/tools/browser-tool.js +3 -3
  61. package/dist/agents/tools/cron-tool.js +166 -19
  62. package/dist/agents/tools/discord-actions-presence.js +78 -0
  63. package/dist/agents/tools/image-tool.js +2 -2
  64. package/dist/agents/tools/memory-tool.js +93 -5
  65. package/dist/agents/tools/message-tool.js +56 -2
  66. package/dist/agents/tools/sessions-history-tool.js +69 -1
  67. package/dist/agents/tools/web-search.js +211 -42
  68. package/dist/agents/usage.js +23 -1
  69. package/dist/agents/workspace-run.js +67 -0
  70. package/dist/agents/workspace-templates.js +44 -0
  71. package/dist/auto-reply/command-auth.js +121 -6
  72. package/dist/auto-reply/commands-registry.data.js +1 -1
  73. package/dist/auto-reply/envelope.js +50 -72
  74. package/dist/auto-reply/reply/commands-compact.js +1 -0
  75. package/dist/auto-reply/reply/commands-context-report.js +3 -2
  76. package/dist/auto-reply/reply/commands-context.js +1 -0
  77. package/dist/auto-reply/reply/commands-models.js +107 -60
  78. package/dist/auto-reply/reply/commands-ptt.js +171 -0
  79. package/dist/auto-reply/reply/commands-session.js +2 -2
  80. package/dist/auto-reply/reply/get-reply-run.js +16 -5
  81. package/dist/auto-reply/reply/groups.js +1 -1
  82. package/dist/auto-reply/reply/inbound-context.js +9 -1
  83. package/dist/auto-reply/reply/inbound-meta.js +130 -0
  84. package/dist/auto-reply/reply/model-selection.js +3 -3
  85. package/dist/auto-reply/reply/untrusted-context.js +15 -0
  86. package/dist/auto-reply/status.js +1 -1
  87. package/dist/auto-reply/thinking.js +88 -43
  88. package/dist/browser/bridge-server.js +13 -0
  89. package/dist/browser/cdp.helpers.js +38 -24
  90. package/dist/browser/client-fetch.js +51 -8
  91. package/dist/browser/config.js +2 -11
  92. package/dist/browser/extension-relay.js +104 -43
  93. package/dist/browser/pw-ai.js +1 -1
  94. package/dist/browser/pw-session.js +143 -8
  95. package/dist/browser/pw-tools-core.interactions.js +125 -27
  96. package/dist/browser/pw-tools-core.responses.js +1 -1
  97. package/dist/browser/pw-tools-core.state.js +1 -1
  98. package/dist/browser/routes/agent.act.js +86 -41
  99. package/dist/browser/routes/dispatcher.js +4 -4
  100. package/dist/browser/screenshot.js +1 -1
  101. package/dist/browser/server-context.js +2 -2
  102. package/dist/browser/server.js +13 -0
  103. package/dist/build-info.json +3 -3
  104. package/dist/canvas-host/a2ui.js +3 -3
  105. package/dist/channels/plugins/catalog.js +2 -2
  106. package/dist/channels/plugins/onboarding/imessage.js +1 -1
  107. package/dist/channels/plugins/onboarding/signal.js +1 -1
  108. package/dist/channels/plugins/onboarding/slack.js +4 -4
  109. package/dist/channels/plugins/onboarding/whatsapp.js +3 -3
  110. package/dist/channels/plugins/pairing-message.js +1 -1
  111. package/dist/channels/reply-prefix.js +8 -1
  112. package/dist/cli/browser-cli-extension.js +2 -2
  113. package/dist/cli/cron-cli/register.cron-add.js +61 -40
  114. package/dist/cli/cron-cli/register.cron-edit.js +60 -34
  115. package/dist/cli/cron-cli/shared.js +56 -41
  116. package/dist/cli/dns-cli.js +26 -14
  117. package/dist/cli/docs-cli.js +1 -1
  118. package/dist/cli/gateway-cli/dev.js +1 -1
  119. package/dist/cli/gateway-cli/register.js +37 -19
  120. package/dist/cli/memory-cli.js +30 -20
  121. package/dist/cli/nodes-cli/register.canvas.js +1 -1
  122. package/dist/cli/parse-bytes.js +37 -0
  123. package/dist/cli/plugins-cli.js +1 -1
  124. package/dist/cli/run-main.js +2 -2
  125. package/dist/cli/security-cli.js +1 -1
  126. package/dist/cli/tagline.js +1 -1
  127. package/dist/cli/update-cli.js +173 -52
  128. package/dist/cli/webhooks-cli.js +5 -5
  129. package/dist/commands/agent.js +1 -0
  130. package/dist/commands/agents.commands.add.js +1 -1
  131. package/dist/commands/auth-choice.apply.api-providers.js +305 -17
  132. package/dist/commands/auth-choice.apply.js +4 -1
  133. package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
  134. package/dist/commands/auth-choice.apply.xai.js +63 -0
  135. package/dist/commands/auth-choice.preferred-provider.js +7 -1
  136. package/dist/commands/configure.wizard.js +1 -1
  137. package/dist/commands/dashboard.js +1 -1
  138. package/dist/commands/docs.js +1 -1
  139. package/dist/commands/doctor-config-flow.js +61 -5
  140. package/dist/commands/doctor-gateway-services.js +3 -3
  141. package/dist/commands/doctor-state-migrations.js +1 -1
  142. package/dist/commands/doctor-update.js +3 -3
  143. package/dist/commands/doctor.js +1 -1
  144. package/dist/commands/health.js +1 -1
  145. package/dist/commands/model-allowlist.js +29 -0
  146. package/dist/commands/model-picker.js +2 -1
  147. package/dist/commands/models/list.probe.js +2 -2
  148. package/dist/commands/models/list.registry.js +4 -4
  149. package/dist/commands/models/list.status-command.js +44 -24
  150. package/dist/commands/models/shared.js +15 -0
  151. package/dist/commands/onboard-auth.config-core.js +366 -28
  152. package/dist/commands/onboard-auth.credentials.js +71 -9
  153. package/dist/commands/onboard-auth.js +3 -3
  154. package/dist/commands/onboard-auth.models.js +26 -24
  155. package/dist/commands/onboard-custom.js +384 -0
  156. package/dist/commands/onboard-non-interactive/local/auth-choice-inference.js +35 -0
  157. package/dist/commands/onboard-non-interactive/local/auth-choice.js +146 -9
  158. package/dist/commands/onboard-skills.js +63 -38
  159. package/dist/commands/openai-model-default.js +41 -0
  160. package/dist/commands/status-all/report-lines.js +1 -1
  161. package/dist/commands/status.command.js +1 -1
  162. package/dist/commands/uninstall.js +3 -3
  163. package/dist/compat/legacy-names.js +1 -1
  164. package/dist/config/defaults.js +3 -2
  165. package/dist/config/io.js +3 -3
  166. package/dist/config/paths.js +136 -35
  167. package/dist/config/plugin-auto-enable.js +21 -5
  168. package/dist/config/redact-snapshot.js +153 -0
  169. package/dist/config/schema.field-metadata.js +590 -0
  170. package/dist/config/schema.js +3 -3
  171. package/dist/config/sessions/store.js +291 -23
  172. package/dist/config/types.memory.js +1 -0
  173. package/dist/config/version.js +4 -4
  174. package/dist/config/zod-schema.agent-defaults.js +3 -0
  175. package/dist/config/zod-schema.agent-runtime.js +13 -2
  176. package/dist/config/zod-schema.providers-core.js +142 -0
  177. package/dist/config/zod-schema.session.js +3 -0
  178. package/dist/cron/delivery.js +57 -0
  179. package/dist/cron/isolated-agent/delivery-target.js +18 -3
  180. package/dist/cron/isolated-agent/helpers.js +22 -5
  181. package/dist/cron/isolated-agent/run.js +171 -63
  182. package/dist/cron/isolated-agent/session.js +2 -0
  183. package/dist/cron/normalize.js +356 -28
  184. package/dist/cron/parse.js +10 -5
  185. package/dist/cron/run-log.js +35 -10
  186. package/dist/cron/schedule.js +41 -6
  187. package/dist/cron/service/jobs.js +208 -35
  188. package/dist/cron/service/ops.js +72 -16
  189. package/dist/cron/service/state.js +2 -0
  190. package/dist/cron/service/store.js +386 -14
  191. package/dist/cron/service/timer.js +390 -147
  192. package/dist/cron/session-reaper.js +86 -0
  193. package/dist/cron/store.js +23 -8
  194. package/dist/cron/validate-timestamp.js +43 -0
  195. package/dist/daemon/constants.js +7 -7
  196. package/dist/daemon/inspect.js +6 -6
  197. package/dist/daemon/systemd-unit.js +1 -1
  198. package/dist/discord/monitor/agent-components.js +438 -0
  199. package/dist/discord/monitor/allow-list.js +28 -5
  200. package/dist/discord/monitor/gateway-registry.js +29 -0
  201. package/dist/discord/monitor/native-command.js +44 -23
  202. package/dist/discord/monitor/sender-identity.js +45 -0
  203. package/dist/discord/pluralkit.js +27 -0
  204. package/dist/discord/send.outbound.js +92 -5
  205. package/dist/discord/send.shared.js +60 -23
  206. package/dist/discord/targets.js +84 -1
  207. package/dist/entry.js +15 -9
  208. package/dist/extensionAPI.js +8 -0
  209. package/dist/gateway/control-ui.js +8 -1
  210. package/dist/gateway/hooks-mapping.js +3 -0
  211. package/dist/gateway/hooks.js +65 -0
  212. package/dist/gateway/live-image-probe.js +1 -66
  213. package/dist/gateway/net.js +96 -31
  214. package/dist/gateway/node-command-policy.js +50 -15
  215. package/dist/gateway/openai-http.js +2 -2
  216. package/dist/gateway/openresponses-http.js +4 -4
  217. package/dist/gateway/origin-check.js +56 -0
  218. package/dist/gateway/protocol/client-info.js +9 -0
  219. package/dist/gateway/protocol/index.js +9 -2
  220. package/dist/gateway/protocol/schema/agents-models-skills.js +71 -1
  221. package/dist/gateway/protocol/schema/cron.js +22 -10
  222. package/dist/gateway/protocol/schema/protocol-schemas.js +16 -2
  223. package/dist/gateway/protocol/schema/sessions.js +12 -0
  224. package/dist/gateway/server/hooks.js +1 -1
  225. package/dist/gateway/server-broadcast.js +26 -9
  226. package/dist/gateway/server-chat.js +112 -23
  227. package/dist/gateway/server-discovery-runtime.js +10 -2
  228. package/dist/gateway/server-discovery.js +2 -2
  229. package/dist/gateway/server-http.js +110 -12
  230. package/dist/gateway/server-methods/agent-timestamp.js +60 -0
  231. package/dist/gateway/server-methods/agents.js +321 -2
  232. package/dist/gateway/server-methods/usage.js +559 -16
  233. package/dist/gateway/server-runtime-state.js +22 -8
  234. package/dist/gateway/server-startup-memory.js +16 -0
  235. package/dist/gateway/server.impl.js +7 -3
  236. package/dist/gateway/session-utils.fs.js +23 -25
  237. package/dist/gateway/session-utils.js +20 -10
  238. package/dist/gateway/sessions-patch.js +7 -22
  239. package/dist/gateway/test-helpers.server.js +35 -2
  240. package/dist/hooks/frontmatter.js +1 -1
  241. package/dist/hooks/hooks-status.js +1 -1
  242. package/dist/hooks/install.js +2 -2
  243. package/dist/hooks/loader.js +1 -1
  244. package/dist/hooks/workspace.js +3 -3
  245. package/dist/imessage/constants.js +2 -0
  246. package/dist/imessage/monitor/deliver.js +4 -1
  247. package/dist/imessage/monitor/monitor-provider.js +51 -1
  248. package/dist/index.js +2 -2
  249. package/dist/infra/bonjour-discovery.js +131 -70
  250. package/dist/infra/bonjour.js +3 -3
  251. package/dist/infra/control-ui-assets.js +134 -12
  252. package/dist/infra/errors.js +12 -0
  253. package/dist/infra/exec-approvals.js +266 -57
  254. package/dist/infra/format-time/format-datetime.js +79 -0
  255. package/dist/infra/format-time/format-duration.js +81 -0
  256. package/dist/infra/format-time/format-relative.js +80 -0
  257. package/dist/infra/heartbeat-runner.js +140 -49
  258. package/dist/infra/home-dir.js +54 -0
  259. package/dist/infra/net/fetch-guard.js +122 -0
  260. package/dist/infra/net/ssrf.js +65 -29
  261. package/dist/infra/outbound/abort.js +14 -0
  262. package/dist/infra/outbound/message-action-runner.js +77 -13
  263. package/dist/infra/outbound/outbound-session.js +143 -37
  264. package/dist/infra/path-env.js +3 -3
  265. package/dist/infra/poolbot-root.js +43 -1
  266. package/dist/infra/provider-usage.fetch.minimax.js +1 -1
  267. package/dist/infra/restart.js +1 -1
  268. package/dist/infra/session-cost-usage.js +631 -41
  269. package/dist/infra/state-migrations.js +317 -47
  270. package/dist/infra/tailscale.js +1 -1
  271. package/dist/infra/update-global.js +35 -0
  272. package/dist/infra/update-runner.js +149 -43
  273. package/dist/infra/warning-filter.js +65 -0
  274. package/dist/infra/widearea-dns.js +30 -9
  275. package/dist/logging/redact-identifier.js +12 -0
  276. package/dist/macos/relay.js +2 -2
  277. package/dist/media/fetch.js +81 -58
  278. package/dist/media/input-files.js +1 -1
  279. package/dist/media/mime.js +4 -0
  280. package/dist/media/png-encode.js +74 -0
  281. package/dist/media-understanding/apply.js +403 -3
  282. package/dist/media-understanding/attachments.js +38 -27
  283. package/dist/media-understanding/defaults.js +16 -0
  284. package/dist/media-understanding/providers/deepgram/audio.js +22 -14
  285. package/dist/media-understanding/providers/google/audio.js +24 -17
  286. package/dist/media-understanding/providers/google/video.js +24 -17
  287. package/dist/media-understanding/providers/image.js +4 -4
  288. package/dist/media-understanding/providers/index.js +4 -1
  289. package/dist/media-understanding/providers/openai/audio.js +22 -14
  290. package/dist/media-understanding/providers/shared.js +16 -11
  291. package/dist/media-understanding/providers/zai/index.js +6 -0
  292. package/dist/media-understanding/runner.js +158 -90
  293. package/dist/memory/backend-config.js +207 -0
  294. package/dist/memory/batch-voyage.js +277 -0
  295. package/dist/memory/embeddings-voyage.js +75 -0
  296. package/dist/memory/embeddings.js +29 -17
  297. package/dist/memory/internal.js +101 -18
  298. package/dist/memory/manager.js +155 -48
  299. package/dist/memory/search-manager.js +173 -0
  300. package/dist/memory/session-files.js +9 -3
  301. package/dist/memory/types.js +1 -0
  302. package/dist/node-host/runner.js +36 -26
  303. package/dist/node-host/with-timeout.js +27 -0
  304. package/dist/pairing/pairing-messages.js +1 -1
  305. package/dist/plugins/commands.js +5 -1
  306. package/dist/plugins/config-state.js +86 -7
  307. package/dist/plugins/discovery.js +1 -1
  308. package/dist/plugins/install.js +2 -2
  309. package/dist/plugins/source-display.js +51 -0
  310. package/dist/plugins/update.js +1 -1
  311. package/dist/process/exec.js +20 -2
  312. package/dist/routing/resolve-route.js +12 -0
  313. package/dist/routing/session-key.js +15 -0
  314. package/dist/runtime.js +2 -0
  315. package/dist/security/audit-extra.async.js +601 -0
  316. package/dist/security/audit-extra.js +2 -830
  317. package/dist/security/audit-extra.sync.js +505 -0
  318. package/dist/security/audit.js +2 -2
  319. package/dist/security/channel-metadata.js +34 -0
  320. package/dist/security/external-content.js +88 -6
  321. package/dist/security/skill-scanner.js +330 -0
  322. package/dist/sessions/session-key-utils.js +7 -0
  323. package/dist/shared/text/reasoning-tags.js +52 -7
  324. package/dist/signal/monitor/event-handler.js +80 -1
  325. package/dist/slack/monitor/media.js +85 -15
  326. package/dist/tailscale/detect.js +145 -0
  327. package/dist/telegram/bot/helpers.js +109 -28
  328. package/dist/telegram/bot-handlers.js +144 -3
  329. package/dist/telegram/bot-message-context.js +38 -11
  330. package/dist/telegram/bot-message-dispatch.js +48 -15
  331. package/dist/telegram/bot-native-commands.js +86 -29
  332. package/dist/telegram/bot.js +30 -29
  333. package/dist/telegram/model-buttons.js +163 -0
  334. package/dist/telegram/monitor.js +110 -85
  335. package/dist/telegram/send.js +129 -47
  336. package/dist/terminal/restore.js +45 -0
  337. package/dist/test-helpers/state-dir-env.js +16 -0
  338. package/dist/test-helpers/workspace.js +11 -0
  339. package/dist/test-utils/channel-plugins.js +82 -0
  340. package/dist/test-utils/ports.js +73 -0
  341. package/dist/tts/tts.js +12 -6
  342. package/dist/tui/tui-session-actions.js +166 -54
  343. package/dist/utils/fetch-timeout.js +20 -0
  344. package/dist/utils/normalize-secret-input.js +19 -0
  345. package/dist/utils/shell-argv.js +61 -0
  346. package/dist/utils/transcript-tools.js +58 -0
  347. package/dist/utils.js +55 -14
  348. package/dist/version.js +42 -5
  349. package/dist/web/qr-image.js +1 -61
  350. package/dist/wizard/onboarding.finalize.js +7 -7
  351. package/dist/wizard/onboarding.js +3 -3
  352. package/docs/RELEASE_WORKFOTS_COMPARISON.md +3 -3
  353. package/docs/_config.yml +2 -2
  354. package/docs/_layouts/default.html +9 -9
  355. package/docs/concepts/typebox.md +1 -1
  356. package/docs/docs.json +1 -1
  357. package/docs/northflank.mdx +7 -7
  358. package/docs/railway.mdx +3 -3
  359. package/docs/render.mdx +5 -5
  360. package/docs/start/lore.md +2 -2
  361. package/extensions/bluebubbles/index.ts +2 -2
  362. package/extensions/bluebubbles/package.json +1 -1
  363. package/extensions/bluebubbles/src/accounts.ts +8 -8
  364. package/extensions/bluebubbles/src/actions.test.ts +22 -22
  365. package/extensions/bluebubbles/src/actions.ts +5 -5
  366. package/extensions/bluebubbles/src/attachments.ts +2 -2
  367. package/extensions/bluebubbles/src/channel.ts +16 -16
  368. package/extensions/bluebubbles/src/chat.ts +2 -2
  369. package/extensions/bluebubbles/src/media-send.ts +2 -2
  370. package/extensions/bluebubbles/src/monitor.test.ts +46 -46
  371. package/extensions/bluebubbles/src/monitor.ts +5 -5
  372. package/extensions/bluebubbles/src/onboarding.ts +7 -7
  373. package/extensions/bluebubbles/src/reactions.ts +2 -2
  374. package/extensions/bluebubbles/src/send.ts +2 -2
  375. package/extensions/copilot-proxy/README.md +1 -1
  376. package/extensions/copilot-proxy/package.json +1 -1
  377. package/extensions/diagnostics-otel/index.ts +2 -2
  378. package/extensions/diagnostics-otel/package.json +1 -1
  379. package/extensions/diagnostics-otel/src/service.ts +3 -3
  380. package/extensions/discord/index.ts +2 -2
  381. package/extensions/discord/package.json +1 -1
  382. package/extensions/google-antigravity-auth/README.md +1 -1
  383. package/extensions/google-antigravity-auth/index.ts +1 -1
  384. package/extensions/google-antigravity-auth/package.json +1 -1
  385. package/extensions/google-gemini-cli-auth/README.md +1 -1
  386. package/extensions/google-gemini-cli-auth/oauth.ts +1 -1
  387. package/extensions/google-gemini-cli-auth/package.json +1 -1
  388. package/extensions/googlechat/index.ts +3 -3
  389. package/extensions/googlechat/package.json +1 -1
  390. package/extensions/googlechat/src/accounts.ts +8 -8
  391. package/extensions/googlechat/src/actions.ts +6 -6
  392. package/extensions/googlechat/src/channel.ts +21 -21
  393. package/extensions/googlechat/src/monitor.ts +8 -8
  394. package/extensions/googlechat/src/onboarding.ts +10 -10
  395. package/extensions/imessage/index.ts +2 -2
  396. package/extensions/imessage/package.json +1 -1
  397. package/extensions/line/index.ts +2 -2
  398. package/extensions/line/package.json +1 -1
  399. package/extensions/line/src/card-command.ts +2 -2
  400. package/extensions/line/src/channel.logout.test.ts +4 -4
  401. package/extensions/line/src/channel.sendPayload.test.ts +8 -8
  402. package/extensions/line/src/channel.ts +3 -3
  403. package/extensions/llm-task/README.md +3 -3
  404. package/extensions/llm-task/index.ts +2 -2
  405. package/extensions/llm-task/package.json +1 -1
  406. package/extensions/llm-task/src/llm-task-tool.ts +4 -4
  407. package/extensions/lobster/README.md +6 -6
  408. package/extensions/lobster/index.ts +2 -2
  409. package/extensions/lobster/src/lobster-tool.test.ts +4 -4
  410. package/extensions/lobster/src/lobster-tool.ts +2 -2
  411. package/extensions/matrix/index.ts +2 -2
  412. package/extensions/matrix/package.json +1 -1
  413. package/extensions/matrix/src/matrix/client/config.ts +1 -1
  414. package/extensions/matrix/src/matrix/monitor/handler.ts +1 -1
  415. package/extensions/matrix/src/onboarding.ts +1 -1
  416. package/extensions/mattermost/index.ts +2 -2
  417. package/extensions/mattermost/package.json +1 -1
  418. package/extensions/mattermost/src/mattermost/accounts.ts +8 -8
  419. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +5 -5
  420. package/extensions/mattermost/src/mattermost/monitor.ts +2 -2
  421. package/extensions/mattermost/src/onboarding-helpers.ts +3 -3
  422. package/extensions/mattermost/src/onboarding.ts +2 -2
  423. package/extensions/memory-core/index.ts +2 -2
  424. package/extensions/memory-core/package.json +1 -1
  425. package/extensions/memory-lancedb/index.ts +3 -3
  426. package/extensions/memory-lancedb/package.json +1 -1
  427. package/extensions/msteams/index.ts +2 -2
  428. package/extensions/msteams/package.json +1 -1
  429. package/extensions/msteams/src/channel.directory.test.ts +2 -2
  430. package/extensions/msteams/src/channel.ts +2 -2
  431. package/extensions/msteams/src/graph-upload.ts +4 -4
  432. package/extensions/msteams/src/monitor-handler.ts +2 -2
  433. package/extensions/msteams/src/monitor.ts +2 -2
  434. package/extensions/msteams/src/onboarding.ts +9 -9
  435. package/extensions/msteams/src/reply-dispatcher.ts +2 -2
  436. package/extensions/msteams/src/send-context.ts +2 -2
  437. package/extensions/msteams/src/send.ts +4 -4
  438. package/extensions/nextcloud-talk/index.ts +2 -2
  439. package/extensions/nextcloud-talk/package.json +1 -1
  440. package/extensions/nextcloud-talk/src/channel.ts +7 -7
  441. package/extensions/nextcloud-talk/src/inbound.ts +7 -7
  442. package/extensions/nextcloud-talk/src/onboarding.ts +1 -1
  443. package/extensions/nostr/README.md +2 -2
  444. package/extensions/nostr/index.ts +5 -5
  445. package/extensions/nostr/package.json +1 -1
  446. package/extensions/nostr/src/types.ts +4 -4
  447. package/extensions/open-prose/index.ts +2 -2
  448. package/extensions/qwen-portal-auth/README.md +1 -1
  449. package/extensions/signal/index.ts +2 -2
  450. package/extensions/signal/package.json +1 -1
  451. package/extensions/slack/index.ts +2 -2
  452. package/extensions/slack/package.json +1 -1
  453. package/extensions/telegram/index.ts +2 -2
  454. package/extensions/telegram/package.json +1 -1
  455. package/extensions/telegram/src/channel.ts +2 -2
  456. package/extensions/tlon/README.md +2 -2
  457. package/extensions/tlon/index.ts +2 -2
  458. package/extensions/tlon/package.json +1 -1
  459. package/extensions/tlon/src/channel.ts +13 -13
  460. package/extensions/tlon/src/monitor/index.ts +3 -3
  461. package/extensions/tlon/src/onboarding.ts +3 -3
  462. package/extensions/tlon/src/types.ts +3 -3
  463. package/extensions/twitch/README.md +1 -1
  464. package/extensions/twitch/index.ts +2 -2
  465. package/extensions/twitch/package.json +1 -1
  466. package/extensions/twitch/src/config.ts +3 -3
  467. package/extensions/twitch/src/monitor.ts +3 -3
  468. package/extensions/twitch/src/onboarding.ts +9 -9
  469. package/extensions/twitch/src/outbound.test.ts +2 -2
  470. package/extensions/twitch/src/plugin.test.ts +2 -2
  471. package/extensions/twitch/src/plugin.ts +8 -8
  472. package/extensions/twitch/src/send.test.ts +2 -2
  473. package/extensions/twitch/src/send.ts +4 -4
  474. package/extensions/twitch/src/token.test.ts +8 -8
  475. package/extensions/twitch/src/token.ts +3 -3
  476. package/extensions/twitch/src/twitch-client.ts +3 -3
  477. package/extensions/twitch/src/types.ts +3 -3
  478. package/extensions/twitch/src/utils/markdown.ts +1 -1
  479. package/extensions/voice-call/README.md +3 -3
  480. package/extensions/voice-call/package.json +1 -1
  481. package/extensions/voice-call/src/core-bridge.ts +2 -2
  482. package/extensions/voice-call/src/response-generator.ts +1 -1
  483. package/extensions/whatsapp/index.ts +2 -2
  484. package/extensions/whatsapp/package.json +1 -1
  485. package/extensions/zalo/README.md +1 -1
  486. package/extensions/zalo/index.ts +2 -2
  487. package/extensions/zalo/package.json +1 -1
  488. package/extensions/zalo/src/accounts.ts +8 -8
  489. package/extensions/zalo/src/actions.ts +4 -4
  490. package/extensions/zalo/src/channel.directory.test.ts +2 -2
  491. package/extensions/zalo/src/channel.ts +18 -18
  492. package/extensions/zalo/src/monitor.ts +9 -9
  493. package/extensions/zalo/src/monitor.webhook.test.ts +2 -2
  494. package/extensions/zalo/src/onboarding.ts +24 -24
  495. package/extensions/zalo/src/send.ts +2 -2
  496. package/extensions/zalouser/README.md +2 -2
  497. package/extensions/zalouser/index.ts +2 -2
  498. package/extensions/zalouser/package.json +1 -1
  499. package/extensions/zalouser/src/accounts.ts +9 -9
  500. package/extensions/zalouser/src/channel.ts +24 -24
  501. package/extensions/zalouser/src/monitor.ts +4 -4
  502. package/extensions/zalouser/src/onboarding.ts +28 -28
  503. package/package.json +13 -251
  504. package/skills/nano-banana-pro/scripts/generate_image.py +1 -1
  505. package/skills/tmux/scripts/find-sessions.sh +1 -1
  506. package/CHANGELOG.md +0 -102
  507. package/README-header.png +0 -0
  508. package/git-hooks/pre-commit +0 -4
  509. package/scripts/format-staged.js +0 -148
  510. package/scripts/postinstall.js +0 -300
  511. package/scripts/setup-git-hooks.js +0 -96
@@ -1,7 +1,10 @@
1
+ import { buildCloudflareAiGatewayModelDefinition, resolveCloudflareAiGatewayBaseUrl, } from "../agents/cloudflare-ai-gateway.js";
2
+ import { buildQianfanProvider, buildXiaomiProvider, QIANFAN_DEFAULT_MODEL_ID, XIAOMI_DEFAULT_MODEL_ID, } from "../agents/models-config.providers.js";
1
3
  import { buildSyntheticModelDefinition, SYNTHETIC_BASE_URL, SYNTHETIC_DEFAULT_MODEL_REF, SYNTHETIC_MODEL_CATALOG, } from "../agents/synthetic-models.js";
4
+ import { buildTogetherModelDefinition, TOGETHER_BASE_URL, TOGETHER_MODEL_CATALOG, } from "../agents/together-models.js";
2
5
  import { buildVeniceModelDefinition, VENICE_BASE_URL, VENICE_DEFAULT_MODEL_REF, VENICE_MODEL_CATALOG, } from "../agents/venice-models.js";
3
- import { OPENROUTER_DEFAULT_MODEL_REF, VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, ZAI_DEFAULT_MODEL_REF, } from "./onboard-auth.credentials.js";
4
- import { buildKimiCodeModelDefinition, buildMoonshotModelDefinition, KIMI_CODE_BASE_URL, KIMI_CODE_MODEL_ID, KIMI_CODE_MODEL_REF, MOONSHOT_BASE_URL, MOONSHOT_DEFAULT_MODEL_ID, MOONSHOT_DEFAULT_MODEL_REF, } from "./onboard-auth.models.js";
6
+ import { CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, OPENROUTER_DEFAULT_MODEL_REF, TOGETHER_DEFAULT_MODEL_REF, VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, XIAOMI_DEFAULT_MODEL_REF, ZAI_DEFAULT_MODEL_REF, XAI_DEFAULT_MODEL_REF, } from "./onboard-auth.credentials.js";
7
+ import { buildMoonshotModelDefinition, buildXaiModelDefinition, QIANFAN_BASE_URL, QIANFAN_DEFAULT_MODEL_REF, KIMI_CODING_MODEL_REF, MOONSHOT_BASE_URL, MOONSHOT_CN_BASE_URL, MOONSHOT_DEFAULT_MODEL_ID, MOONSHOT_DEFAULT_MODEL_REF, XAI_BASE_URL, XAI_DEFAULT_MODEL_ID, } from "./onboard-auth.models.js";
5
8
  export function applyZaiConfig(cfg) {
6
9
  const models = { ...cfg.agents?.defaults?.models };
7
10
  models[ZAI_DEFAULT_MODEL_REF] = {
@@ -62,6 +65,61 @@ export function applyVercelAiGatewayProviderConfig(cfg) {
62
65
  },
63
66
  };
64
67
  }
68
+ export function applyCloudflareAiGatewayProviderConfig(cfg, params) {
69
+ const models = { ...cfg.agents?.defaults?.models };
70
+ models[CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF] = {
71
+ ...models[CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF],
72
+ alias: models[CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF]?.alias ?? "Cloudflare AI Gateway",
73
+ };
74
+ const providers = { ...cfg.models?.providers };
75
+ const existingProvider = providers["cloudflare-ai-gateway"];
76
+ const existingModels = Array.isArray(existingProvider?.models) ? existingProvider.models : [];
77
+ const defaultModel = buildCloudflareAiGatewayModelDefinition();
78
+ const hasDefaultModel = existingModels.some((model) => model.id === defaultModel.id);
79
+ const mergedModels = hasDefaultModel ? existingModels : [...existingModels, defaultModel];
80
+ const baseUrl = params?.accountId && params?.gatewayId
81
+ ? resolveCloudflareAiGatewayBaseUrl({
82
+ accountId: params.accountId,
83
+ gatewayId: params.gatewayId,
84
+ })
85
+ : existingProvider?.baseUrl;
86
+ if (!baseUrl) {
87
+ return {
88
+ ...cfg,
89
+ agents: {
90
+ ...cfg.agents,
91
+ defaults: {
92
+ ...cfg.agents?.defaults,
93
+ models,
94
+ },
95
+ },
96
+ };
97
+ }
98
+ const { apiKey: existingApiKey, ...existingProviderRest } = (existingProvider ?? {});
99
+ const resolvedApiKey = typeof existingApiKey === "string" ? existingApiKey : undefined;
100
+ const normalizedApiKey = resolvedApiKey?.trim();
101
+ providers["cloudflare-ai-gateway"] = {
102
+ ...existingProviderRest,
103
+ baseUrl,
104
+ api: "anthropic-messages",
105
+ ...(normalizedApiKey ? { apiKey: normalizedApiKey } : {}),
106
+ models: mergedModels.length > 0 ? mergedModels : [defaultModel],
107
+ };
108
+ return {
109
+ ...cfg,
110
+ agents: {
111
+ ...cfg.agents,
112
+ defaults: {
113
+ ...cfg.agents?.defaults,
114
+ models,
115
+ },
116
+ },
117
+ models: {
118
+ mode: cfg.models?.mode ?? "merge",
119
+ providers,
120
+ },
121
+ };
122
+ }
65
123
  export function applyVercelAiGatewayConfig(cfg) {
66
124
  const next = applyVercelAiGatewayProviderConfig(cfg);
67
125
  const existingModel = next.agents?.defaults?.model;
@@ -83,6 +141,27 @@ export function applyVercelAiGatewayConfig(cfg) {
83
141
  },
84
142
  };
85
143
  }
144
+ export function applyCloudflareAiGatewayConfig(cfg, params) {
145
+ const next = applyCloudflareAiGatewayProviderConfig(cfg, params);
146
+ const existingModel = next.agents?.defaults?.model;
147
+ return {
148
+ ...next,
149
+ agents: {
150
+ ...next.agents,
151
+ defaults: {
152
+ ...next.agents?.defaults,
153
+ model: {
154
+ ...(existingModel && "fallbacks" in existingModel
155
+ ? {
156
+ fallbacks: existingModel.fallbacks,
157
+ }
158
+ : undefined),
159
+ primary: CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF,
160
+ },
161
+ },
162
+ },
163
+ };
164
+ }
86
165
  export function applyOpenrouterConfig(cfg) {
87
166
  const next = applyOpenrouterProviderConfig(cfg);
88
167
  const existingModel = next.agents?.defaults?.model;
@@ -105,10 +184,16 @@ export function applyOpenrouterConfig(cfg) {
105
184
  };
106
185
  }
107
186
  export function applyMoonshotProviderConfig(cfg) {
187
+ return applyMoonshotProviderConfigWithBaseUrl(cfg, MOONSHOT_BASE_URL);
188
+ }
189
+ export function applyMoonshotProviderConfigCn(cfg) {
190
+ return applyMoonshotProviderConfigWithBaseUrl(cfg, MOONSHOT_CN_BASE_URL);
191
+ }
192
+ function applyMoonshotProviderConfigWithBaseUrl(cfg, baseUrl) {
108
193
  const models = { ...cfg.agents?.defaults?.models };
109
194
  models[MOONSHOT_DEFAULT_MODEL_REF] = {
110
195
  ...models[MOONSHOT_DEFAULT_MODEL_REF],
111
- alias: models[MOONSHOT_DEFAULT_MODEL_REF]?.alias ?? "Kimi K2",
196
+ alias: models[MOONSHOT_DEFAULT_MODEL_REF]?.alias ?? "Kimi",
112
197
  };
113
198
  const providers = { ...cfg.models?.providers };
114
199
  const existingProvider = providers.moonshot;
@@ -121,7 +206,7 @@ export function applyMoonshotProviderConfig(cfg) {
121
206
  const normalizedApiKey = resolvedApiKey?.trim();
122
207
  providers.moonshot = {
123
208
  ...existingProviderRest,
124
- baseUrl: MOONSHOT_BASE_URL,
209
+ baseUrl,
125
210
  api: "openai-completions",
126
211
  ...(normalizedApiKey ? { apiKey: normalizedApiKey } : {}),
127
212
  models: mergedModels.length > 0 ? mergedModels : [defaultModel],
@@ -162,27 +247,32 @@ export function applyMoonshotConfig(cfg) {
162
247
  },
163
248
  };
164
249
  }
250
+ export function applyMoonshotConfigCn(cfg) {
251
+ const next = applyMoonshotProviderConfigCn(cfg);
252
+ const existingModel = next.agents?.defaults?.model;
253
+ return {
254
+ ...next,
255
+ agents: {
256
+ ...next.agents,
257
+ defaults: {
258
+ ...next.agents?.defaults,
259
+ model: {
260
+ ...(existingModel && "fallbacks" in existingModel
261
+ ? {
262
+ fallbacks: existingModel.fallbacks,
263
+ }
264
+ : undefined),
265
+ primary: MOONSHOT_DEFAULT_MODEL_REF,
266
+ },
267
+ },
268
+ },
269
+ };
270
+ }
165
271
  export function applyKimiCodeProviderConfig(cfg) {
166
272
  const models = { ...cfg.agents?.defaults?.models };
167
- models[KIMI_CODE_MODEL_REF] = {
168
- ...models[KIMI_CODE_MODEL_REF],
169
- alias: models[KIMI_CODE_MODEL_REF]?.alias ?? "Kimi Code",
170
- };
171
- const providers = { ...cfg.models?.providers };
172
- const existingProvider = providers["kimi-code"];
173
- const existingModels = Array.isArray(existingProvider?.models) ? existingProvider.models : [];
174
- const defaultModel = buildKimiCodeModelDefinition();
175
- const hasDefaultModel = existingModels.some((model) => model.id === KIMI_CODE_MODEL_ID);
176
- const mergedModels = hasDefaultModel ? existingModels : [...existingModels, defaultModel];
177
- const { apiKey: existingApiKey, ...existingProviderRest } = (existingProvider ?? {});
178
- const resolvedApiKey = typeof existingApiKey === "string" ? existingApiKey : undefined;
179
- const normalizedApiKey = resolvedApiKey?.trim();
180
- providers["kimi-code"] = {
181
- ...existingProviderRest,
182
- baseUrl: KIMI_CODE_BASE_URL,
183
- api: "openai-completions",
184
- ...(normalizedApiKey ? { apiKey: normalizedApiKey } : {}),
185
- models: mergedModels.length > 0 ? mergedModels : [defaultModel],
273
+ models[KIMI_CODING_MODEL_REF] = {
274
+ ...models[KIMI_CODING_MODEL_REF],
275
+ alias: models[KIMI_CODING_MODEL_REF]?.alias ?? "Kimi K2.5",
186
276
  };
187
277
  return {
188
278
  ...cfg,
@@ -193,10 +283,6 @@ export function applyKimiCodeProviderConfig(cfg) {
193
283
  models,
194
284
  },
195
285
  },
196
- models: {
197
- mode: cfg.models?.mode ?? "merge",
198
- providers,
199
- },
200
286
  };
201
287
  }
202
288
  export function applyKimiCodeConfig(cfg) {
@@ -214,7 +300,7 @@ export function applyKimiCodeConfig(cfg) {
214
300
  fallbacks: existingModel.fallbacks,
215
301
  }
216
302
  : undefined),
217
- primary: KIMI_CODE_MODEL_REF,
303
+ primary: KIMI_CODING_MODEL_REF,
218
304
  },
219
305
  },
220
306
  },
@@ -280,6 +366,69 @@ export function applySyntheticConfig(cfg) {
280
366
  },
281
367
  };
282
368
  }
369
+ export function applyXiaomiProviderConfig(cfg) {
370
+ const models = { ...cfg.agents?.defaults?.models };
371
+ models[XIAOMI_DEFAULT_MODEL_REF] = {
372
+ ...models[XIAOMI_DEFAULT_MODEL_REF],
373
+ alias: models[XIAOMI_DEFAULT_MODEL_REF]?.alias ?? "Xiaomi",
374
+ };
375
+ const providers = { ...cfg.models?.providers };
376
+ const existingProvider = providers.xiaomi;
377
+ const defaultProvider = buildXiaomiProvider();
378
+ const existingModels = Array.isArray(existingProvider?.models) ? existingProvider.models : [];
379
+ const defaultModels = defaultProvider.models ?? [];
380
+ const hasDefaultModel = existingModels.some((model) => model.id === XIAOMI_DEFAULT_MODEL_ID);
381
+ const mergedModels = existingModels.length > 0
382
+ ? hasDefaultModel
383
+ ? existingModels
384
+ : [...existingModels, ...defaultModels]
385
+ : defaultModels;
386
+ const { apiKey: existingApiKey, ...existingProviderRest } = (existingProvider ?? {});
387
+ const resolvedApiKey = typeof existingApiKey === "string" ? existingApiKey : undefined;
388
+ const normalizedApiKey = resolvedApiKey?.trim();
389
+ providers.xiaomi = {
390
+ ...existingProviderRest,
391
+ baseUrl: defaultProvider.baseUrl,
392
+ api: defaultProvider.api,
393
+ ...(normalizedApiKey ? { apiKey: normalizedApiKey } : {}),
394
+ models: mergedModels.length > 0 ? mergedModels : defaultProvider.models,
395
+ };
396
+ return {
397
+ ...cfg,
398
+ agents: {
399
+ ...cfg.agents,
400
+ defaults: {
401
+ ...cfg.agents?.defaults,
402
+ models,
403
+ },
404
+ },
405
+ models: {
406
+ mode: cfg.models?.mode ?? "merge",
407
+ providers,
408
+ },
409
+ };
410
+ }
411
+ export function applyXiaomiConfig(cfg) {
412
+ const next = applyXiaomiProviderConfig(cfg);
413
+ const existingModel = next.agents?.defaults?.model;
414
+ return {
415
+ ...next,
416
+ agents: {
417
+ ...next.agents,
418
+ defaults: {
419
+ ...next.agents?.defaults,
420
+ model: {
421
+ ...(existingModel && "fallbacks" in existingModel
422
+ ? {
423
+ fallbacks: existingModel.fallbacks,
424
+ }
425
+ : undefined),
426
+ primary: XIAOMI_DEFAULT_MODEL_REF,
427
+ },
428
+ },
429
+ },
430
+ };
431
+ }
283
432
  /**
284
433
  * Apply Venice provider configuration without changing the default model.
285
434
  * Registers Venice models and sets up the provider, but preserves existing model selection.
@@ -348,6 +497,132 @@ export function applyVeniceConfig(cfg) {
348
497
  },
349
498
  };
350
499
  }
500
+ /**
501
+ * Apply Together provider configuration without changing the default model.
502
+ * Registers Together models and sets up the provider, but preserves existing model selection.
503
+ */
504
+ export function applyTogetherProviderConfig(cfg) {
505
+ const models = { ...cfg.agents?.defaults?.models };
506
+ models[TOGETHER_DEFAULT_MODEL_REF] = {
507
+ ...models[TOGETHER_DEFAULT_MODEL_REF],
508
+ alias: models[TOGETHER_DEFAULT_MODEL_REF]?.alias ?? "Together AI",
509
+ };
510
+ const providers = { ...cfg.models?.providers };
511
+ const existingProvider = providers.together;
512
+ const existingModels = Array.isArray(existingProvider?.models) ? existingProvider.models : [];
513
+ const togetherModels = TOGETHER_MODEL_CATALOG.map(buildTogetherModelDefinition);
514
+ const mergedModels = [
515
+ ...existingModels,
516
+ ...togetherModels.filter((model) => !existingModels.some((existing) => existing.id === model.id)),
517
+ ];
518
+ const { apiKey: existingApiKey, ...existingProviderRest } = (existingProvider ?? {});
519
+ const resolvedApiKey = typeof existingApiKey === "string" ? existingApiKey : undefined;
520
+ const normalizedApiKey = resolvedApiKey?.trim();
521
+ providers.together = {
522
+ ...existingProviderRest,
523
+ baseUrl: TOGETHER_BASE_URL,
524
+ api: "openai-completions",
525
+ ...(normalizedApiKey ? { apiKey: normalizedApiKey } : {}),
526
+ models: mergedModels.length > 0 ? mergedModels : togetherModels,
527
+ };
528
+ return {
529
+ ...cfg,
530
+ agents: {
531
+ ...cfg.agents,
532
+ defaults: {
533
+ ...cfg.agents?.defaults,
534
+ models,
535
+ },
536
+ },
537
+ models: {
538
+ mode: cfg.models?.mode ?? "merge",
539
+ providers,
540
+ },
541
+ };
542
+ }
543
+ /**
544
+ * Apply Together provider configuration AND set Together as the default model.
545
+ * Use this when Together is the primary provider choice during onboarding.
546
+ */
547
+ export function applyTogetherConfig(cfg) {
548
+ const next = applyTogetherProviderConfig(cfg);
549
+ const existingModel = next.agents?.defaults?.model;
550
+ return {
551
+ ...next,
552
+ agents: {
553
+ ...next.agents,
554
+ defaults: {
555
+ ...next.agents?.defaults,
556
+ model: {
557
+ ...(existingModel && "fallbacks" in existingModel
558
+ ? {
559
+ fallbacks: existingModel.fallbacks,
560
+ }
561
+ : undefined),
562
+ primary: TOGETHER_DEFAULT_MODEL_REF,
563
+ },
564
+ },
565
+ },
566
+ };
567
+ }
568
+ export function applyXaiProviderConfig(cfg) {
569
+ const models = { ...cfg.agents?.defaults?.models };
570
+ models[XAI_DEFAULT_MODEL_REF] = {
571
+ ...models[XAI_DEFAULT_MODEL_REF],
572
+ alias: models[XAI_DEFAULT_MODEL_REF]?.alias ?? "Grok",
573
+ };
574
+ const providers = { ...cfg.models?.providers };
575
+ const existingProvider = providers.xai;
576
+ const existingModels = Array.isArray(existingProvider?.models) ? existingProvider.models : [];
577
+ const defaultModel = buildXaiModelDefinition();
578
+ const hasDefaultModel = existingModels.some((model) => model.id === XAI_DEFAULT_MODEL_ID);
579
+ const mergedModels = hasDefaultModel ? existingModels : [...existingModels, defaultModel];
580
+ const { apiKey: existingApiKey, ...existingProviderRest } = (existingProvider ?? {});
581
+ const resolvedApiKey = typeof existingApiKey === "string" ? existingApiKey : undefined;
582
+ const normalizedApiKey = resolvedApiKey?.trim();
583
+ providers.xai = {
584
+ ...existingProviderRest,
585
+ baseUrl: XAI_BASE_URL,
586
+ api: "openai-completions",
587
+ ...(normalizedApiKey ? { apiKey: normalizedApiKey } : {}),
588
+ models: mergedModels.length > 0 ? mergedModels : [defaultModel],
589
+ };
590
+ return {
591
+ ...cfg,
592
+ agents: {
593
+ ...cfg.agents,
594
+ defaults: {
595
+ ...cfg.agents?.defaults,
596
+ models,
597
+ },
598
+ },
599
+ models: {
600
+ mode: cfg.models?.mode ?? "merge",
601
+ providers,
602
+ },
603
+ };
604
+ }
605
+ export function applyXaiConfig(cfg) {
606
+ const next = applyXaiProviderConfig(cfg);
607
+ const existingModel = next.agents?.defaults?.model;
608
+ return {
609
+ ...next,
610
+ agents: {
611
+ ...next.agents,
612
+ defaults: {
613
+ ...next.agents?.defaults,
614
+ model: {
615
+ ...(existingModel && "fallbacks" in existingModel
616
+ ? {
617
+ fallbacks: existingModel.fallbacks,
618
+ }
619
+ : undefined),
620
+ primary: XAI_DEFAULT_MODEL_REF,
621
+ },
622
+ },
623
+ },
624
+ };
625
+ }
351
626
  export function applyAuthProfileConfig(cfg, params) {
352
627
  const profiles = {
353
628
  ...cfg.auth?.profiles,
@@ -384,3 +659,66 @@ export function applyAuthProfileConfig(cfg, params) {
384
659
  },
385
660
  };
386
661
  }
662
+ export function applyQianfanProviderConfig(cfg) {
663
+ const models = { ...cfg.agents?.defaults?.models };
664
+ models[QIANFAN_DEFAULT_MODEL_REF] = {
665
+ ...models[QIANFAN_DEFAULT_MODEL_REF],
666
+ alias: models[QIANFAN_DEFAULT_MODEL_REF]?.alias ?? "QIANFAN",
667
+ };
668
+ const providers = { ...cfg.models?.providers };
669
+ const existingProvider = providers.qianfan;
670
+ const defaultProvider = buildQianfanProvider();
671
+ const existingModels = Array.isArray(existingProvider?.models) ? existingProvider.models : [];
672
+ const defaultModels = defaultProvider.models ?? [];
673
+ const hasDefaultModel = existingModels.some((model) => model.id === QIANFAN_DEFAULT_MODEL_ID);
674
+ const mergedModels = existingModels.length > 0
675
+ ? hasDefaultModel
676
+ ? existingModels
677
+ : [...existingModels, ...defaultModels]
678
+ : defaultModels;
679
+ const { apiKey: existingApiKey, baseUrl: existingBaseUrl, api: existingApi, ...existingProviderRest } = (existingProvider ?? {});
680
+ const resolvedApiKey = typeof existingApiKey === "string" ? existingApiKey : undefined;
681
+ const normalizedApiKey = resolvedApiKey?.trim();
682
+ providers.qianfan = {
683
+ ...existingProviderRest,
684
+ baseUrl: existingBaseUrl ?? QIANFAN_BASE_URL,
685
+ api: existingApi ?? "openai-completions",
686
+ ...(normalizedApiKey ? { apiKey: normalizedApiKey } : {}),
687
+ models: mergedModels.length > 0 ? mergedModels : defaultProvider.models,
688
+ };
689
+ return {
690
+ ...cfg,
691
+ agents: {
692
+ ...cfg.agents,
693
+ defaults: {
694
+ ...cfg.agents?.defaults,
695
+ models,
696
+ },
697
+ },
698
+ models: {
699
+ mode: cfg.models?.mode ?? "merge",
700
+ providers,
701
+ },
702
+ };
703
+ }
704
+ export function applyQianfanConfig(cfg) {
705
+ const next = applyQianfanProviderConfig(cfg);
706
+ const existingModel = next.agents?.defaults?.model;
707
+ return {
708
+ ...next,
709
+ agents: {
710
+ ...next.agents,
711
+ defaults: {
712
+ ...next.agents?.defaults,
713
+ model: {
714
+ ...(existingModel && "fallbacks" in existingModel
715
+ ? {
716
+ fallbacks: existingModel.fallbacks,
717
+ }
718
+ : undefined),
719
+ primary: QIANFAN_DEFAULT_MODEL_REF,
720
+ },
721
+ },
722
+ },
723
+ };
724
+ }
@@ -1,10 +1,12 @@
1
- import { resolveMoltbotAgentDir } from "../agents/agent-paths.js";
1
+ import { resolvePoolbotAgentDir } from "../agents/agent-paths.js";
2
2
  import { upsertAuthProfile } from "../agents/auth-profiles.js";
3
- const resolveAuthAgentDir = (agentDir) => agentDir ?? resolveMoltbotAgentDir();
3
+ export { CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF } from "../agents/cloudflare-ai-gateway.js";
4
+ export { XAI_DEFAULT_MODEL_REF } from "./onboard-auth.models.js";
5
+ const resolveAuthAgentDir = (agentDir) => agentDir ?? resolvePoolbotAgentDir();
4
6
  export async function writeOAuthCredentials(provider, creds, agentDir) {
5
- // Write to resolved agent dir so gateway finds credentials on startup.
7
+ const email = typeof creds.email === "string" && creds.email.trim() ? creds.email.trim() : "default";
6
8
  upsertAuthProfile({
7
- profileId: `${provider}:${creds.email ?? "default"}`,
9
+ profileId: `${provider}:${email}`,
8
10
  credential: {
9
11
  type: "oauth",
10
12
  provider,
@@ -61,13 +63,13 @@ export async function setMoonshotApiKey(key, agentDir) {
61
63
  agentDir: resolveAuthAgentDir(agentDir),
62
64
  });
63
65
  }
64
- export async function setKimiCodeApiKey(key, agentDir) {
66
+ export async function setKimiCodingApiKey(key, agentDir) {
65
67
  // Write to resolved agent dir so gateway finds credentials on startup.
66
68
  upsertAuthProfile({
67
- profileId: "kimi-code:default",
69
+ profileId: "kimi-coding:default",
68
70
  credential: {
69
71
  type: "api_key",
70
- provider: "kimi-code",
72
+ provider: "kimi-coding",
71
73
  key,
72
74
  },
73
75
  agentDir: resolveAuthAgentDir(agentDir),
@@ -98,10 +100,11 @@ export async function setVeniceApiKey(key, agentDir) {
98
100
  });
99
101
  }
100
102
  export const ZAI_DEFAULT_MODEL_REF = "zai/glm-4.7";
103
+ export const XIAOMI_DEFAULT_MODEL_REF = "xiaomi/mimo-v2-flash";
101
104
  export const OPENROUTER_DEFAULT_MODEL_REF = "openrouter/auto";
102
- export const VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF = "vercel-ai-gateway/anthropic/claude-opus-4.5";
105
+ export const TOGETHER_DEFAULT_MODEL_REF = "together/moonshotai/Kimi-K2.5";
106
+ export const VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF = "vercel-ai-gateway/anthropic/claude-opus-4.6";
103
107
  export async function setZaiApiKey(key, agentDir) {
104
- // Write to resolved agent dir so gateway finds credentials on startup.
105
108
  upsertAuthProfile({
106
109
  profileId: "zai:default",
107
110
  credential: {
@@ -112,6 +115,17 @@ export async function setZaiApiKey(key, agentDir) {
112
115
  agentDir: resolveAuthAgentDir(agentDir),
113
116
  });
114
117
  }
118
+ export async function setXiaomiApiKey(key, agentDir) {
119
+ upsertAuthProfile({
120
+ profileId: "xiaomi:default",
121
+ credential: {
122
+ type: "api_key",
123
+ provider: "xiaomi",
124
+ key,
125
+ },
126
+ agentDir: resolveAuthAgentDir(agentDir),
127
+ });
128
+ }
115
129
  export async function setOpenrouterApiKey(key, agentDir) {
116
130
  upsertAuthProfile({
117
131
  profileId: "openrouter:default",
@@ -123,6 +137,21 @@ export async function setOpenrouterApiKey(key, agentDir) {
123
137
  agentDir: resolveAuthAgentDir(agentDir),
124
138
  });
125
139
  }
140
+ export async function setCloudflareAiGatewayConfig(accountId, gatewayId, apiKey, agentDir) {
141
+ upsertAuthProfile({
142
+ profileId: "cloudflare-ai-gateway:default",
143
+ credential: {
144
+ type: "api_key",
145
+ provider: "cloudflare-ai-gateway",
146
+ key: apiKey.trim(),
147
+ metadata: {
148
+ accountId: accountId.trim(),
149
+ gatewayId: gatewayId.trim(),
150
+ },
151
+ },
152
+ agentDir: resolveAuthAgentDir(agentDir),
153
+ });
154
+ }
126
155
  export async function setVercelAiGatewayApiKey(key, agentDir) {
127
156
  upsertAuthProfile({
128
157
  profileId: "vercel-ai-gateway:default",
@@ -145,3 +174,36 @@ export async function setOpencodeZenApiKey(key, agentDir) {
145
174
  agentDir: resolveAuthAgentDir(agentDir),
146
175
  });
147
176
  }
177
+ export async function setTogetherApiKey(key, agentDir) {
178
+ upsertAuthProfile({
179
+ profileId: "together:default",
180
+ credential: {
181
+ type: "api_key",
182
+ provider: "together",
183
+ key,
184
+ },
185
+ agentDir: resolveAuthAgentDir(agentDir),
186
+ });
187
+ }
188
+ export function setQianfanApiKey(key, agentDir) {
189
+ upsertAuthProfile({
190
+ profileId: "qianfan:default",
191
+ credential: {
192
+ type: "api_key",
193
+ provider: "qianfan",
194
+ key,
195
+ },
196
+ agentDir: resolveAuthAgentDir(agentDir),
197
+ });
198
+ }
199
+ export function setXaiApiKey(key, agentDir) {
200
+ upsertAuthProfile({
201
+ profileId: "xai:default",
202
+ credential: {
203
+ type: "api_key",
204
+ provider: "xai",
205
+ key,
206
+ },
207
+ agentDir: resolveAuthAgentDir(agentDir),
208
+ });
209
+ }
@@ -1,7 +1,7 @@
1
1
  export { SYNTHETIC_DEFAULT_MODEL_ID, SYNTHETIC_DEFAULT_MODEL_REF, } from "../agents/synthetic-models.js";
2
2
  export { VENICE_DEFAULT_MODEL_ID, VENICE_DEFAULT_MODEL_REF } from "../agents/venice-models.js";
3
- export { applyAuthProfileConfig, applyKimiCodeConfig, applyKimiCodeProviderConfig, applyMoonshotConfig, applyMoonshotProviderConfig, applyOpenrouterConfig, applyOpenrouterProviderConfig, applySyntheticConfig, applySyntheticProviderConfig, applyVeniceConfig, applyVeniceProviderConfig, applyVercelAiGatewayConfig, applyVercelAiGatewayProviderConfig, applyZaiConfig, } from "./onboard-auth.config-core.js";
3
+ export { applyAuthProfileConfig, applyCloudflareAiGatewayConfig, applyCloudflareAiGatewayProviderConfig, applyQianfanConfig, applyQianfanProviderConfig, applyKimiCodeConfig, applyKimiCodeProviderConfig, applyMoonshotConfig, applyMoonshotConfigCn, applyMoonshotProviderConfig, applyMoonshotProviderConfigCn, applyOpenrouterConfig, applyOpenrouterProviderConfig, applySyntheticConfig, applySyntheticProviderConfig, applyTogetherConfig, applyTogetherProviderConfig, applyVeniceConfig, applyVeniceProviderConfig, applyVercelAiGatewayConfig, applyVercelAiGatewayProviderConfig, applyXaiConfig, applyXaiProviderConfig, applyXiaomiConfig, applyXiaomiProviderConfig, applyZaiConfig, } from "./onboard-auth.config-core.js";
4
4
  export { applyMinimaxApiConfig, applyMinimaxApiProviderConfig, applyMinimaxConfig, applyMinimaxHostedConfig, applyMinimaxHostedProviderConfig, applyMinimaxProviderConfig, } from "./onboard-auth.config-minimax.js";
5
5
  export { applyOpencodeZenConfig, applyOpencodeZenProviderConfig, } from "./onboard-auth.config-opencode.js";
6
- export { OPENROUTER_DEFAULT_MODEL_REF, setAnthropicApiKey, setGeminiApiKey, setKimiCodeApiKey, setMinimaxApiKey, setMoonshotApiKey, setOpencodeZenApiKey, setOpenrouterApiKey, setSyntheticApiKey, setVeniceApiKey, setVercelAiGatewayApiKey, setZaiApiKey, writeOAuthCredentials, VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, ZAI_DEFAULT_MODEL_REF, } from "./onboard-auth.credentials.js";
7
- export { buildKimiCodeModelDefinition, buildMinimaxApiModelDefinition, buildMinimaxModelDefinition, buildMoonshotModelDefinition, DEFAULT_MINIMAX_BASE_URL, KIMI_CODE_BASE_URL, KIMI_CODE_MODEL_ID, KIMI_CODE_MODEL_REF, MINIMAX_API_BASE_URL, MINIMAX_HOSTED_MODEL_ID, MINIMAX_HOSTED_MODEL_REF, MOONSHOT_BASE_URL, MOONSHOT_DEFAULT_MODEL_ID, MOONSHOT_DEFAULT_MODEL_REF, } from "./onboard-auth.models.js";
6
+ export { CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, OPENROUTER_DEFAULT_MODEL_REF, setAnthropicApiKey, setCloudflareAiGatewayConfig, setQianfanApiKey, setGeminiApiKey, setKimiCodingApiKey, setMinimaxApiKey, setMoonshotApiKey, setOpencodeZenApiKey, setOpenrouterApiKey, setSyntheticApiKey, setTogetherApiKey, setVeniceApiKey, setVercelAiGatewayApiKey, setXiaomiApiKey, setZaiApiKey, setXaiApiKey, writeOAuthCredentials, VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, XIAOMI_DEFAULT_MODEL_REF, ZAI_DEFAULT_MODEL_REF, TOGETHER_DEFAULT_MODEL_REF, XAI_DEFAULT_MODEL_REF, } from "./onboard-auth.credentials.js";
7
+ export { buildMinimaxApiModelDefinition, buildMinimaxModelDefinition, buildMoonshotModelDefinition, DEFAULT_MINIMAX_BASE_URL, MOONSHOT_CN_BASE_URL, QIANFAN_BASE_URL, QIANFAN_DEFAULT_MODEL_ID, QIANFAN_DEFAULT_MODEL_REF, KIMI_CODING_MODEL_ID, KIMI_CODING_MODEL_REF, MINIMAX_API_BASE_URL, MINIMAX_HOSTED_MODEL_ID, MINIMAX_HOSTED_MODEL_REF, MOONSHOT_BASE_URL, MOONSHOT_DEFAULT_MODEL_ID, MOONSHOT_DEFAULT_MODEL_REF, } from "./onboard-auth.models.js";