@vellumai/assistant 0.8.2 → 0.8.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 (231) hide show
  1. package/ARCHITECTURE.md +11 -12
  2. package/docker-entrypoint.sh +13 -1
  3. package/docker-init-apt-root.sh +79 -6
  4. package/openapi.yaml +336 -21
  5. package/package.json +1 -1
  6. package/src/__tests__/agent-loop-exit-reason.test.ts +272 -0
  7. package/src/__tests__/agent-loop-provider-error-recording.test.ts +195 -0
  8. package/src/__tests__/compactor-tail-resolution.test.ts +107 -1
  9. package/src/__tests__/config-get-vision-flag.test.ts +136 -0
  10. package/src/__tests__/config-loader-backfill.test.ts +115 -18
  11. package/src/__tests__/context-token-estimator.test.ts +30 -65
  12. package/src/__tests__/conversation-agent-loop.test.ts +57 -1
  13. package/src/__tests__/conversation-media-retry.test.ts +19 -8
  14. package/src/__tests__/conversation-runtime-assembly.test.ts +26 -4
  15. package/src/__tests__/date-context.test.ts +45 -0
  16. package/src/__tests__/external-plugin-loader.test.ts +91 -19
  17. package/src/__tests__/guardian-action-no-hardcoded-copy.test.ts +0 -1
  18. package/src/__tests__/guardian-dispatch.test.ts +1 -0
  19. package/src/__tests__/heartbeat-service.test.ts +24 -164
  20. package/src/__tests__/helpers/channel-test-adapter.ts +0 -2
  21. package/src/__tests__/host-app-control-proxy.test.ts +241 -0
  22. package/src/__tests__/host-proxy-preactivation.test.ts +200 -13
  23. package/src/__tests__/injector-background-turn.test.ts +153 -0
  24. package/src/__tests__/injector-chain.test.ts +5 -0
  25. package/src/__tests__/lifecycle-memory-v2-seed.test.ts +9 -2
  26. package/src/__tests__/llm-callsite-catalog.test.ts +25 -0
  27. package/src/__tests__/llm-catalog-parity.test.ts +3 -0
  28. package/src/__tests__/llm-request-log-agent-loop-exit-reason.test.ts +116 -0
  29. package/src/__tests__/llm-request-log-error-payload.test.ts +138 -0
  30. package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -0
  31. package/src/__tests__/llm-resolver.test.ts +255 -2
  32. package/src/__tests__/managed-profile-guard.test.ts +10 -0
  33. package/src/__tests__/notification-decision-fallback.test.ts +0 -91
  34. package/src/__tests__/notification-decision-strategy.test.ts +14 -31
  35. package/src/__tests__/notification-deep-link.test.ts +15 -0
  36. package/src/__tests__/notification-guardian-path.test.ts +1 -2
  37. package/src/__tests__/notification-platform-adapter.test.ts +5 -4
  38. package/src/__tests__/notification-telegram-adapter.test.ts +1 -0
  39. package/src/__tests__/notification-vellum-adapter.test.ts +113 -0
  40. package/src/__tests__/openai-provider.test.ts +218 -3
  41. package/src/__tests__/openai-responses-cutover-guard.test.ts +3 -3
  42. package/src/__tests__/openrouter-provider-only.test.ts +51 -3
  43. package/src/__tests__/openrouter-token-estimation.test.ts +34 -25
  44. package/src/__tests__/platform-proxy-context.test.ts +6 -1
  45. package/src/__tests__/plugin-tool-contribution.test.ts +3 -3
  46. package/src/__tests__/plugin-types.test.ts +2 -2
  47. package/src/__tests__/provider-catalog-visibility.test.ts +16 -0
  48. package/src/__tests__/provider-platform-proxy-integration.test.ts +27 -25
  49. package/src/__tests__/secret-routes-platform-proxy.test.ts +1 -1
  50. package/src/__tests__/system-prompt.test.ts +6 -73
  51. package/src/__tests__/workspace-migration-087-memory-router-balanced-profile.test.ts +228 -0
  52. package/src/a2a/__tests__/agent-card.test.ts +98 -0
  53. package/src/a2a/__tests__/e2e-a2a-channel.test.ts +597 -0
  54. package/src/a2a/__tests__/protocol-helpers.test.ts +113 -0
  55. package/src/a2a/__tests__/task-store.test.ts +246 -0
  56. package/src/a2a/agent-card.ts +58 -0
  57. package/src/a2a/feature-gate.ts +8 -0
  58. package/src/a2a/protocol-constants.ts +21 -0
  59. package/src/a2a/protocol-errors.ts +50 -0
  60. package/src/a2a/protocol-types.ts +162 -0
  61. package/src/a2a/task-store.ts +168 -0
  62. package/src/agent/loop.ts +167 -18
  63. package/src/channels/config.ts +9 -0
  64. package/src/channels/types.ts +14 -0
  65. package/src/cli/{__tests__ → commands/__tests__}/notifications.test.ts +201 -28
  66. package/src/cli/commands/__tests__/schedules.test.ts +469 -0
  67. package/src/cli/commands/notifications.ts +65 -35
  68. package/src/cli/commands/plugins.ts +67 -0
  69. package/src/cli/commands/schedules.ts +297 -5
  70. package/src/cli/lib/__tests__/search-plugins.test.ts +261 -0
  71. package/src/cli/lib/install-from-github.ts +8 -9
  72. package/src/cli/lib/search-plugins.ts +163 -0
  73. package/src/cli/program.ts +14 -0
  74. package/src/config/assistant-feature-flags.ts +24 -54
  75. package/src/config/bundled-skills/app-builder/SKILL.md +117 -1
  76. package/src/config/bundled-skills/phone-calls/SKILL.md +1 -1
  77. package/src/config/call-site-defaults.ts +105 -0
  78. package/src/config/feature-flag-registry.json +21 -29
  79. package/src/config/llm-resolver.ts +52 -1
  80. package/src/config/schema.ts +2 -0
  81. package/src/config/schemas/__tests__/memory-v2.test.ts +3 -3
  82. package/src/config/schemas/channels.ts +9 -0
  83. package/src/config/schemas/conversations.ts +10 -0
  84. package/src/config/schemas/heartbeat.ts +14 -0
  85. package/src/config/schemas/llm.ts +1 -3
  86. package/src/config/schemas/memory-retrospective.ts +1 -1
  87. package/src/config/schemas/memory-v2.ts +4 -4
  88. package/src/config/schemas/memory.ts +3 -1
  89. package/src/config/seed-inference-profiles.ts +99 -29
  90. package/src/context/compactor.ts +72 -12
  91. package/src/context/token-estimator.ts +32 -34
  92. package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +3 -22
  93. package/src/daemon/conversation-agent-loop-handlers.ts +78 -0
  94. package/src/daemon/conversation-agent-loop.ts +29 -2
  95. package/src/daemon/conversation-runtime-assembly.ts +9 -0
  96. package/src/daemon/conversation.ts +0 -7
  97. package/src/daemon/date-context.ts +40 -0
  98. package/src/daemon/guardian-action-generators.ts +1 -125
  99. package/src/daemon/handlers/__tests__/config-a2a-complete.test.ts +248 -0
  100. package/src/daemon/handlers/__tests__/config-a2a-invite.test.ts +154 -0
  101. package/src/daemon/handlers/__tests__/config-a2a-redeem.test.ts +133 -0
  102. package/src/daemon/handlers/__tests__/config-a2a.test.ts +95 -0
  103. package/src/daemon/handlers/config-a2a.ts +289 -0
  104. package/src/daemon/handlers/conversations.ts +1 -0
  105. package/src/daemon/host-app-control-proxy.ts +69 -18
  106. package/src/daemon/host-proxy-preactivation.ts +85 -18
  107. package/src/daemon/lifecycle.ts +49 -61
  108. package/src/daemon/memory-v2-startup.ts +49 -13
  109. package/src/daemon/message-types/notifications.ts +21 -0
  110. package/src/daemon/pkb-reminder-builder.test.ts +10 -53
  111. package/src/daemon/pkb-reminder-builder.ts +4 -19
  112. package/src/daemon/process-message.ts +3 -0
  113. package/src/daemon/skill-memory-refresh.ts +5 -1
  114. package/src/daemon/wake-target-adapter.ts +2 -0
  115. package/src/export/__tests__/transcript-formatter.test.ts +121 -0
  116. package/src/export/transcript-formatter.ts +54 -20
  117. package/src/heartbeat/__tests__/heartbeat-service.test.ts +44 -0
  118. package/src/heartbeat/heartbeat-service.ts +34 -191
  119. package/src/home/__tests__/feed-types.test.ts +40 -0
  120. package/src/home/feed-types.ts +14 -2
  121. package/src/ipc/cli-client.ts +147 -45
  122. package/src/memory/__tests__/conversation-queries.test.ts +220 -0
  123. package/src/memory/__tests__/memory-retrospective-enqueue.test.ts +2 -50
  124. package/src/memory/__tests__/memory-retrospective-job.test.ts +87 -4
  125. package/src/memory/conversation-queries.ts +87 -1
  126. package/src/memory/conversation-title-service.ts +26 -4
  127. package/src/memory/db-init.ts +6 -0
  128. package/src/memory/graph/__tests__/conversation-graph-memory-v2-routing.test.ts +84 -3
  129. package/src/memory/graph/conversation-graph-memory.ts +18 -6
  130. package/src/memory/graph/tools.ts +6 -37
  131. package/src/memory/invite-store.ts +53 -0
  132. package/src/memory/llm-request-log-source-clickhouse.ts +7 -2
  133. package/src/memory/llm-request-log-store.ts +92 -1
  134. package/src/memory/memory-retrospective-enqueue.ts +1 -20
  135. package/src/memory/memory-retrospective-job.ts +33 -6
  136. package/src/memory/migrations/250-provider-connection-base-url-and-models.ts +28 -0
  137. package/src/memory/migrations/251-a2a-tasks.ts +49 -0
  138. package/src/memory/migrations/252-llm-request-log-agent-loop-exit-reason.ts +32 -0
  139. package/src/memory/migrations/index.ts +3 -0
  140. package/src/memory/migrations/registry.ts +8 -0
  141. package/src/memory/schema/a2a.ts +15 -0
  142. package/src/memory/schema/index.ts +1 -0
  143. package/src/memory/schema/inference.ts +2 -0
  144. package/src/memory/schema/infrastructure.ts +1 -0
  145. package/src/memory/v2/__tests__/activation-store.test.ts +25 -23
  146. package/src/memory/v2/__tests__/cli-command-store.test.ts +404 -0
  147. package/src/memory/v2/__tests__/frontmatter-sweep.test.ts +25 -4
  148. package/src/memory/v2/__tests__/injection.test.ts +190 -3
  149. package/src/memory/v2/__tests__/static-context.test.ts +12 -1
  150. package/src/memory/v2/activation-store.ts +14 -16
  151. package/src/memory/v2/cli-command-content.ts +19 -0
  152. package/src/memory/v2/cli-command-store.ts +304 -0
  153. package/src/memory/v2/frontmatter-sweep.ts +7 -1
  154. package/src/memory/v2/injection.ts +49 -20
  155. package/src/memory/v2/page-index.ts +38 -13
  156. package/src/memory/v2/static-context.ts +4 -4
  157. package/src/memory/v2/types.ts +23 -0
  158. package/src/messaging/providers/a2a/__tests__/deliver.test.ts +274 -0
  159. package/src/messaging/providers/a2a/deliver.ts +156 -0
  160. package/src/messaging/providers/gmail/client.ts +9 -2
  161. package/src/messaging/providers/index.ts +11 -2
  162. package/src/notifications/__tests__/broadcaster.test.ts +203 -0
  163. package/src/notifications/__tests__/decision-engine.test.ts +283 -0
  164. package/src/notifications/__tests__/deterministic-checks.test.ts +286 -0
  165. package/src/notifications/__tests__/emit-signal-home-feed.test.ts +1 -0
  166. package/src/notifications/__tests__/home-feed-side-effect.test.ts +430 -7
  167. package/src/notifications/adapters/macos.ts +12 -2
  168. package/src/notifications/broadcaster.ts +29 -4
  169. package/src/notifications/copy-composer.ts +17 -64
  170. package/src/notifications/decision-engine.ts +111 -44
  171. package/src/notifications/deterministic-checks.ts +96 -0
  172. package/src/notifications/emit-signal.ts +1 -0
  173. package/src/notifications/home-feed-side-effect.ts +85 -6
  174. package/src/notifications/signal.ts +0 -4
  175. package/src/notifications/types.ts +8 -0
  176. package/src/oauth/platform-connection.test.ts +43 -3
  177. package/src/oauth/platform-connection.ts +13 -4
  178. package/src/plugins/defaults/injectors.ts +38 -19
  179. package/src/plugins/external-plugin-loader.ts +82 -10
  180. package/src/plugins/types.ts +16 -7
  181. package/src/prompts/__tests__/system-prompt.test.ts +6 -51
  182. package/src/prompts/__tests__/task-progress-hint-section.test.ts +4 -8
  183. package/src/prompts/system-prompt.ts +0 -8
  184. package/src/prompts/templates/BOOTSTRAP.md +5 -5
  185. package/src/prompts/templates/system-sections.ts +0 -9
  186. package/src/providers/__tests__/inference.test.ts +2 -0
  187. package/src/providers/call-site-routing.ts +24 -6
  188. package/src/providers/connection-resolution.ts +63 -13
  189. package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +74 -0
  190. package/src/providers/inference/__tests__/connections-openai-compatible.test.ts +175 -0
  191. package/src/providers/inference/__tests__/connections-status-label.test.ts +15 -0
  192. package/src/providers/inference/adapter-factory.ts +9 -20
  193. package/src/providers/inference/auth.ts +12 -0
  194. package/src/providers/inference/backfill.ts +14 -1
  195. package/src/providers/inference/connections.ts +85 -5
  196. package/src/providers/inference/resolve-auth.ts +2 -0
  197. package/src/providers/model-catalog.ts +199 -244
  198. package/src/providers/model-intents.ts +3 -3
  199. package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +235 -0
  200. package/src/providers/openai/chat-completions-provider.ts +159 -6
  201. package/src/providers/openrouter/client.ts +42 -4
  202. package/src/providers/platform-proxy/constants.ts +3 -4
  203. package/src/providers/provider-catalog-visibility.ts +3 -1
  204. package/src/providers/provider-send-message.ts +27 -12
  205. package/src/providers/registry.ts +30 -1
  206. package/src/runtime/agent-wake.ts +61 -1
  207. package/src/runtime/auth/route-policy.ts +13 -0
  208. package/src/runtime/http-server.ts +7 -16
  209. package/src/runtime/http-types.ts +0 -47
  210. package/src/runtime/routes/__tests__/consolidation-routes.test.ts +258 -0
  211. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +66 -4
  212. package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +275 -44
  213. package/src/runtime/routes/__tests__/llm-call-sites-routes.test.ts +12 -0
  214. package/src/runtime/routes/channel-availability-routes.ts +5 -0
  215. package/src/runtime/routes/consolidation-routes.ts +100 -0
  216. package/src/runtime/routes/conversation-query-routes.ts +70 -11
  217. package/src/runtime/routes/conversation-routes.ts +7 -0
  218. package/src/runtime/routes/index.ts +2 -0
  219. package/src/runtime/routes/inference-provider-connection-routes.ts +134 -1
  220. package/src/runtime/routes/integrations/a2a.ts +235 -0
  221. package/src/runtime/routes/llm-call-sites-routes.ts +11 -1
  222. package/src/runtime/routes/subagents-routes.ts +41 -0
  223. package/src/subagent/manager.ts +2 -0
  224. package/src/tools/memory/register.ts +1 -9
  225. package/src/tools/registry.ts +2 -2
  226. package/src/tools/types.ts +37 -2
  227. package/src/workspace/migrations/087-memory-router-balanced-profile.ts +91 -0
  228. package/src/workspace/migrations/registry.ts +2 -0
  229. package/src/__tests__/guardian-action-conversation-turn.test.ts +0 -441
  230. package/src/memory/graph/__tests__/remember-description.test.ts +0 -55
  231. package/src/runtime/guardian-action-conversation-turn.ts +0 -99
@@ -188,6 +188,38 @@ const RAW_PROVIDER_CATALOG: ProviderCatalogEntry[] = [
188
188
  cacheReadPer1mTokens: 0.3,
189
189
  },
190
190
  },
191
+ {
192
+ id: "claude-sonnet-4-5-20250929",
193
+ displayName: "Claude Sonnet 4.5",
194
+ contextWindowTokens: 200000,
195
+ maxOutputTokens: 64000,
196
+ supportsThinking: true,
197
+ supportsCaching: true,
198
+ supportsVision: true,
199
+ supportsToolUse: true,
200
+ pricing: {
201
+ inputPer1mTokens: 3,
202
+ outputPer1mTokens: 15,
203
+ cacheWritePer1mTokens: 3.75,
204
+ cacheReadPer1mTokens: 0.3,
205
+ },
206
+ },
207
+ {
208
+ id: "claude-opus-4-5-20251101",
209
+ displayName: "Claude Opus 4.5",
210
+ contextWindowTokens: 200000,
211
+ maxOutputTokens: 64000,
212
+ supportsThinking: true,
213
+ supportsCaching: true,
214
+ supportsVision: true,
215
+ supportsToolUse: true,
216
+ pricing: {
217
+ inputPer1mTokens: 5,
218
+ outputPer1mTokens: 25,
219
+ cacheWritePer1mTokens: 6.25,
220
+ cacheReadPer1mTokens: 0.5,
221
+ },
222
+ },
191
223
  {
192
224
  id: "claude-haiku-4-5-20251001",
193
225
  displayName: "Claude Haiku 4.5",
@@ -548,6 +580,21 @@ const RAW_PROVIDER_CATALOG: ProviderCatalogEntry[] = [
548
580
  linkLabel: "Open Fireworks Dashboard",
549
581
  },
550
582
  models: [
583
+ {
584
+ id: "accounts/fireworks/models/kimi-k2p6",
585
+ displayName: "Kimi K2.6",
586
+ contextWindowTokens: 262144,
587
+ maxOutputTokens: 32768,
588
+ supportsThinking: true,
589
+ supportsCaching: true,
590
+ supportsVision: true,
591
+ supportsToolUse: true,
592
+ pricing: {
593
+ inputPer1mTokens: 0.95,
594
+ outputPer1mTokens: 4.0,
595
+ cacheReadPer1mTokens: 0.16,
596
+ },
597
+ },
551
598
  {
552
599
  id: "accounts/fireworks/models/kimi-k2p5",
553
600
  displayName: "Kimi K2.5",
@@ -562,6 +609,39 @@ const RAW_PROVIDER_CATALOG: ProviderCatalogEntry[] = [
562
609
  outputPer1mTokens: 2.5,
563
610
  },
564
611
  },
612
+ {
613
+ id: "accounts/fireworks/models/minimax-m2p7",
614
+ displayName: "MiniMax M2.7",
615
+ contextWindowTokens: 196608,
616
+ maxOutputTokens: 25000,
617
+ supportsThinking: false,
618
+ supportsCaching: false,
619
+ supportsVision: false,
620
+ supportsToolUse: true,
621
+ pricing: { inputPer1mTokens: 0.3, outputPer1mTokens: 1.2 },
622
+ },
623
+ {
624
+ id: "accounts/fireworks/models/minimax-m2p5",
625
+ displayName: "MiniMax M2.5",
626
+ contextWindowTokens: 196608,
627
+ maxOutputTokens: 25000,
628
+ supportsThinking: false,
629
+ supportsCaching: false,
630
+ supportsVision: false,
631
+ supportsToolUse: true,
632
+ pricing: { inputPer1mTokens: 0.3, outputPer1mTokens: 1.2 },
633
+ },
634
+ {
635
+ id: "accounts/fireworks/models/deepseek-v4-pro",
636
+ displayName: "DeepSeek V4 Pro",
637
+ contextWindowTokens: 1040000,
638
+ maxOutputTokens: 131072,
639
+ supportsThinking: false,
640
+ supportsCaching: false,
641
+ supportsVision: false,
642
+ supportsToolUse: true,
643
+ pricing: { inputPer1mTokens: 1.74, outputPer1mTokens: 3.48 },
644
+ },
565
645
  ],
566
646
  defaultModel: "accounts/fireworks/models/kimi-k2p5",
567
647
  apiKeyUrl: "https://fireworks.ai/account/api-keys",
@@ -635,6 +715,38 @@ const RAW_PROVIDER_CATALOG: ProviderCatalogEntry[] = [
635
715
  cacheReadPer1mTokens: 0.3,
636
716
  },
637
717
  },
718
+ {
719
+ id: "anthropic/claude-sonnet-4.5",
720
+ displayName: "Claude Sonnet 4.5",
721
+ contextWindowTokens: 200000,
722
+ maxOutputTokens: 64000,
723
+ supportsThinking: true,
724
+ supportsCaching: true,
725
+ supportsVision: true,
726
+ supportsToolUse: true,
727
+ pricing: {
728
+ inputPer1mTokens: 3,
729
+ outputPer1mTokens: 15,
730
+ cacheWritePer1mTokens: 3.75,
731
+ cacheReadPer1mTokens: 0.3,
732
+ },
733
+ },
734
+ {
735
+ id: "anthropic/claude-opus-4.5",
736
+ displayName: "Claude Opus 4.5",
737
+ contextWindowTokens: 200000,
738
+ maxOutputTokens: 64000,
739
+ supportsThinking: true,
740
+ supportsCaching: true,
741
+ supportsVision: true,
742
+ supportsToolUse: true,
743
+ pricing: {
744
+ inputPer1mTokens: 5,
745
+ outputPer1mTokens: 25,
746
+ cacheWritePer1mTokens: 6.25,
747
+ cacheReadPer1mTokens: 0.5,
748
+ },
749
+ },
638
750
  {
639
751
  id: "anthropic/claude-haiku-4.5",
640
752
  displayName: "Claude Haiku 4.5",
@@ -798,6 +910,84 @@ const RAW_PROVIDER_CATALOG: ProviderCatalogEntry[] = [
798
910
  supportsToolUse: true,
799
911
  pricing: { inputPer1mTokens: 0.6, outputPer1mTokens: 2.5 },
800
912
  },
913
+ // MiniMax
914
+ {
915
+ id: "minimax/minimax-m2.7",
916
+ displayName: "MiniMax M2.7",
917
+ contextWindowTokens: 196608,
918
+ maxOutputTokens: 131072,
919
+ supportsThinking: true,
920
+ supportsCaching: false,
921
+ supportsVision: false,
922
+ supportsToolUse: true,
923
+ pricing: { inputPer1mTokens: 0.279, outputPer1mTokens: 1.2 },
924
+ },
925
+ {
926
+ id: "minimax/minimax-m2.5",
927
+ displayName: "MiniMax M2.5",
928
+ contextWindowTokens: 196608,
929
+ maxOutputTokens: 196608,
930
+ supportsThinking: true,
931
+ supportsCaching: false,
932
+ supportsVision: false,
933
+ supportsToolUse: true,
934
+ pricing: { inputPer1mTokens: 0.15, outputPer1mTokens: 1.15 },
935
+ },
936
+ {
937
+ id: "minimax/minimax-m2.1",
938
+ displayName: "MiniMax M2.1",
939
+ contextWindowTokens: 196608,
940
+ maxOutputTokens: 196608,
941
+ supportsThinking: true,
942
+ supportsCaching: false,
943
+ supportsVision: false,
944
+ supportsToolUse: true,
945
+ pricing: { inputPer1mTokens: 0.29, outputPer1mTokens: 0.95 },
946
+ },
947
+ {
948
+ id: "minimax/minimax-m2",
949
+ displayName: "MiniMax M2",
950
+ contextWindowTokens: 196608,
951
+ maxOutputTokens: 196608,
952
+ supportsThinking: true,
953
+ supportsCaching: false,
954
+ supportsVision: false,
955
+ supportsToolUse: true,
956
+ pricing: { inputPer1mTokens: 0.255, outputPer1mTokens: 1.0 },
957
+ },
958
+ {
959
+ id: "minimax/minimax-m2-her",
960
+ displayName: "MiniMax M2-her",
961
+ contextWindowTokens: 65536,
962
+ maxOutputTokens: 2048,
963
+ supportsThinking: false,
964
+ supportsCaching: false,
965
+ supportsVision: false,
966
+ supportsToolUse: false,
967
+ pricing: { inputPer1mTokens: 0.3, outputPer1mTokens: 1.2 },
968
+ },
969
+ {
970
+ id: "minimax/minimax-m1",
971
+ displayName: "MiniMax M1",
972
+ contextWindowTokens: 1000000,
973
+ maxOutputTokens: 40000,
974
+ supportsThinking: true,
975
+ supportsCaching: false,
976
+ supportsVision: false,
977
+ supportsToolUse: true,
978
+ pricing: { inputPer1mTokens: 0.4, outputPer1mTokens: 2.2 },
979
+ },
980
+ {
981
+ id: "minimax/minimax-01",
982
+ displayName: "MiniMax-01",
983
+ contextWindowTokens: 1000000,
984
+ maxOutputTokens: 1000000,
985
+ supportsThinking: false,
986
+ supportsCaching: false,
987
+ supportsVision: true,
988
+ supportsToolUse: false,
989
+ pricing: { inputPer1mTokens: 0.2, outputPer1mTokens: 1.1 },
990
+ },
801
991
  // Mistral
802
992
  {
803
993
  id: "mistralai/mistral-medium-3",
@@ -873,252 +1063,17 @@ const RAW_PROVIDER_CATALOG: ProviderCatalogEntry[] = [
873
1063
  apiKeyPlaceholder: "sk-or-v1-...",
874
1064
  },
875
1065
  {
876
- id: "zai",
877
- displayName: "z.ai",
878
- featureFlag: "provider-zai",
879
- subtitle: "GLM models from z.ai (Zhipu AI). Requires a z.ai API key.",
880
- setupMode: "api-key",
881
- setupHint: "Enter your z.ai API key to enable GLM models.",
882
- envVar: "ZAI_API_KEY",
883
- credentialsGuide: {
884
- description:
885
- "Sign in to the z.ai open platform, navigate to API Keys, and create a new key.",
886
- url: "https://open.z.ai/open/api/paas/v4/apiKey",
887
- linkLabel: "Open z.ai Platform",
888
- },
889
- models: [
890
- {
891
- id: "glm-5.1",
892
- displayName: "GLM-5.1",
893
- contextWindowTokens: 200000,
894
- maxOutputTokens: 128000,
895
- supportsThinking: false,
896
- supportsCaching: false,
897
- supportsVision: true,
898
- supportsToolUse: true,
899
- },
900
- {
901
- id: "glm-5",
902
- displayName: "GLM-5",
903
- contextWindowTokens: 200000,
904
- maxOutputTokens: 128000,
905
- supportsThinking: false,
906
- supportsCaching: false,
907
- supportsVision: true,
908
- supportsToolUse: true,
909
- },
910
- {
911
- id: "glm-5-turbo",
912
- displayName: "GLM-5 Turbo",
913
- contextWindowTokens: 200000,
914
- maxOutputTokens: 128000,
915
- supportsThinking: false,
916
- supportsCaching: false,
917
- supportsVision: true,
918
- supportsToolUse: true,
919
- },
920
- {
921
- id: "glm-4.7",
922
- displayName: "GLM-4.7",
923
- contextWindowTokens: 200000,
924
- maxOutputTokens: 128000,
925
- supportsThinking: false,
926
- supportsCaching: false,
927
- supportsVision: true,
928
- supportsToolUse: true,
929
- },
930
- {
931
- id: "glm-4.7-flash",
932
- displayName: "GLM-4.7 Flash",
933
- contextWindowTokens: 200000,
934
- maxOutputTokens: 128000,
935
- supportsThinking: false,
936
- supportsCaching: false,
937
- supportsVision: true,
938
- supportsToolUse: true,
939
- },
940
- ],
941
- defaultModel: "glm-5.1",
942
- apiKeyPlaceholder: "your-api-key",
943
- },
944
- {
945
- id: "deepseek",
946
- displayName: "DeepSeek",
1066
+ id: "openai-compatible",
1067
+ displayName: "OpenAI-compatible",
947
1068
  subtitle:
948
- "DeepSeek reasoning and chat models. Requires a DeepSeek API key.",
949
- setupMode: "api-key",
950
- setupHint: "Enter your DeepSeek API key to enable DeepSeek models.",
951
- envVar: "DEEPSEEK_API_KEY",
952
- featureFlag: "provider-deepseek",
953
- credentialsGuide: {
954
- description:
955
- "Sign in to the DeepSeek platform, navigate to API Keys, and create a new key.",
956
- url: "https://platform.deepseek.com/api_keys",
957
- linkLabel: "Open DeepSeek Platform",
958
- },
959
- models: [
960
- {
961
- id: "deepseek-v4-pro",
962
- displayName: "DeepSeek V4 Pro",
963
- contextWindowTokens: 1000000,
964
- maxOutputTokens: 384000,
965
- supportsThinking: true,
966
- supportsCaching: false,
967
- supportsVision: false,
968
- supportsToolUse: true,
969
- pricing: {
970
- inputPer1mTokens: 1.74,
971
- outputPer1mTokens: 3.48,
972
- },
973
- },
974
- {
975
- id: "deepseek-v4-flash",
976
- displayName: "DeepSeek V4 Flash",
977
- contextWindowTokens: 1000000,
978
- maxOutputTokens: 384000,
979
- supportsThinking: true,
980
- supportsCaching: false,
981
- supportsVision: false,
982
- supportsToolUse: true,
983
- pricing: {
984
- inputPer1mTokens: 0.14,
985
- outputPer1mTokens: 0.28,
986
- },
987
- },
988
- ],
989
- defaultModel: "deepseek-v4-pro",
990
- apiKeyPlaceholder: "sk-...",
991
- },
992
- {
993
- id: "minimax",
994
- displayName: "MiniMax",
995
- subtitle: "MiniMax models. Requires a MiniMax API key.",
996
- featureFlag: "provider-minimax",
1069
+ "Bring your own OpenAI-compatible endpoint (vLLM, LMStudio, Groq, Together, etc.).",
997
1070
  setupMode: "api-key",
998
- setupHint: "Enter your MiniMax API key to enable MiniMax models.",
999
- envVar: "MINIMAX_API_KEY",
1000
- credentialsGuide: {
1001
- description:
1002
- "Sign in to the MiniMax platform, navigate to API Keys, and create a new key.",
1003
- url: "https://platform.minimax.io/user-center/basic-information/interface-key",
1004
- linkLabel: "Open MiniMax Platform",
1005
- },
1006
- models: [
1007
- {
1008
- id: "MiniMax-M2.7",
1009
- displayName: "MiniMax M2.7",
1010
- contextWindowTokens: 204800,
1011
- maxOutputTokens: 131072,
1012
- supportsThinking: true,
1013
- supportsCaching: true,
1014
- supportsVision: false,
1015
- supportsToolUse: true,
1016
- pricing: {
1017
- inputPer1mTokens: 0.3,
1018
- outputPer1mTokens: 1.2,
1019
- cacheReadPer1mTokens: 0.06,
1020
- cacheWritePer1mTokens: 0.375,
1021
- },
1022
- },
1023
- {
1024
- id: "MiniMax-M2.7-highspeed",
1025
- displayName: "MiniMax M2.7 Highspeed",
1026
- contextWindowTokens: 204800,
1027
- maxOutputTokens: 131072,
1028
- supportsThinking: true,
1029
- supportsCaching: true,
1030
- supportsVision: false,
1031
- supportsToolUse: true,
1032
- pricing: {
1033
- inputPer1mTokens: 0.6,
1034
- outputPer1mTokens: 2.4,
1035
- cacheReadPer1mTokens: 0.06,
1036
- cacheWritePer1mTokens: 0.375,
1037
- },
1038
- },
1039
- {
1040
- id: "MiniMax-M2.5",
1041
- displayName: "MiniMax M2.5",
1042
- contextWindowTokens: 204800,
1043
- maxOutputTokens: 196608,
1044
- supportsThinking: true,
1045
- supportsCaching: true,
1046
- supportsVision: false,
1047
- supportsToolUse: true,
1048
- pricing: {
1049
- inputPer1mTokens: 0.3,
1050
- outputPer1mTokens: 1.2,
1051
- cacheReadPer1mTokens: 0.03,
1052
- cacheWritePer1mTokens: 0.375,
1053
- },
1054
- },
1055
- {
1056
- id: "MiniMax-M2.5-highspeed",
1057
- displayName: "MiniMax M2.5 Highspeed",
1058
- contextWindowTokens: 204800,
1059
- maxOutputTokens: 196608,
1060
- supportsThinking: true,
1061
- supportsCaching: true,
1062
- supportsVision: false,
1063
- supportsToolUse: true,
1064
- pricing: {
1065
- inputPer1mTokens: 0.6,
1066
- outputPer1mTokens: 2.4,
1067
- cacheReadPer1mTokens: 0.03,
1068
- cacheWritePer1mTokens: 0.375,
1069
- },
1070
- },
1071
- {
1072
- id: "MiniMax-M2.1",
1073
- displayName: "MiniMax M2.1",
1074
- contextWindowTokens: 204800,
1075
- maxOutputTokens: 131072,
1076
- supportsThinking: true,
1077
- supportsCaching: true,
1078
- supportsVision: false,
1079
- supportsToolUse: true,
1080
- pricing: {
1081
- inputPer1mTokens: 0.3,
1082
- outputPer1mTokens: 1.2,
1083
- cacheReadPer1mTokens: 0.03,
1084
- cacheWritePer1mTokens: 0.375,
1085
- },
1086
- },
1087
- {
1088
- id: "MiniMax-M2.1-highspeed",
1089
- displayName: "MiniMax M2.1 Highspeed",
1090
- contextWindowTokens: 204800,
1091
- maxOutputTokens: 131072,
1092
- supportsThinking: true,
1093
- supportsCaching: true,
1094
- supportsVision: false,
1095
- supportsToolUse: true,
1096
- pricing: {
1097
- inputPer1mTokens: 0.6,
1098
- outputPer1mTokens: 2.4,
1099
- cacheReadPer1mTokens: 0.03,
1100
- cacheWritePer1mTokens: 0.375,
1101
- },
1102
- },
1103
- {
1104
- id: "MiniMax-M2",
1105
- displayName: "MiniMax M2",
1106
- contextWindowTokens: 204800,
1107
- maxOutputTokens: 131072,
1108
- supportsThinking: true,
1109
- supportsCaching: true,
1110
- supportsVision: false,
1111
- supportsToolUse: true,
1112
- pricing: {
1113
- inputPer1mTokens: 0.3,
1114
- outputPer1mTokens: 1.2,
1115
- cacheReadPer1mTokens: 0.03,
1116
- cacheWritePer1mTokens: 0.375,
1117
- },
1118
- },
1119
- ],
1120
- defaultModel: "MiniMax-M2.7",
1121
- apiKeyPlaceholder: "eyJ...",
1071
+ setupHint:
1072
+ "Enter the base URL of your endpoint and at least one model identifier.",
1073
+ apiKeyPlaceholder: "Your provider's API key",
1074
+ featureFlag: "openai-compatible-endpoints",
1075
+ models: [],
1076
+ defaultModel: "",
1122
1077
  },
1123
1078
  ];
1124
1079
 
@@ -35,10 +35,10 @@ const PROVIDER_MODEL_INTENTS: Record<string, Record<ModelIntent, string>> = {
35
35
  "vision-optimized": "llama3.2",
36
36
  },
37
37
  fireworks: {
38
- balanced: "accounts/fireworks/models/kimi-k2p5",
38
+ balanced: "accounts/fireworks/models/kimi-k2p6",
39
39
  "latency-optimized": "accounts/fireworks/models/kimi-k2p5",
40
- "quality-optimized": "accounts/fireworks/models/kimi-k2p5",
41
- "vision-optimized": "accounts/fireworks/models/kimi-k2p5",
40
+ "quality-optimized": "accounts/fireworks/models/kimi-k2p6",
41
+ "vision-optimized": "accounts/fireworks/models/kimi-k2p6",
42
42
  },
43
43
  openrouter: {
44
44
  balanced: "anthropic/claude-sonnet-4.6",