feat: add Baseten provider support#179
Conversation
Bring the provider integration onto the latest upstream mux/ai changes so the OpenAI-compatible Baseten config, docs, and examples land cleanly on the current codebase.
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 58074d7. Configure here.
| const basetenBaseUrl = typeof record.basetenBaseUrl === "string" ? record.basetenBaseUrl : undefined; | ||
| const basetenEmbeddingBaseUrl = typeof record.basetenEmbeddingBaseUrl === "string" ? record.basetenEmbeddingBaseUrl : undefined; | ||
| const candidates = kind === "embedding" ? | ||
| [basetenEmbeddingBaseUrl, env.BASETEN_EMBEDDING_BASE_URL, basetenBaseUrl, env.BASETEN_BASE_URL] : |
There was a problem hiding this comment.
Credential-over-env precedence broken for embedding base URL
Medium Severity
The embedding candidate array interleaves credential and env sources: [basetenEmbeddingBaseUrl, env.BASETEN_EMBEDDING_BASE_URL, basetenBaseUrl, env.BASETEN_BASE_URL]. Because candidates.find(Boolean) picks the first truthy value, env.BASETEN_EMBEDDING_BASE_URL can override a credential-provided basetenBaseUrl. This breaks the credential-over-env precedence pattern used everywhere else in the codebase (e.g., API key resolution always prefers credential values over env vars). The credential's generic basetenBaseUrl — intended as a fallback for all Baseten endpoints per the WorkflowCredentials type doc — loses to a stale or unrelated env var.
Reviewed by Cursor Bugbot for commit 58074d7. Configure here.
|
thanks for starting this work! closing in favor of #205 |


Summary
mainchanges and update docs/examples so Baseten support is reflected across the current codebaseTesting
Note
Medium Risk
Adds a new AI provider and updates core model/credential resolution paths, which can affect workflow execution and configuration. Most changes are additive with tests and documentation updates, but misconfiguration of Baseten base URLs/models could surface at runtime.
Overview
Adds Baseten as a first-class
provideroption for language and embedding workflows, implemented as an OpenAI-compatible backend with requiredBASETEN_*env/runtime credentials and base-URL normalization.Updates provider/model resolution utilities to support Baseten defaults (
BASETEN_MODEL/BASETEN_EMBEDDING_MODELwith fallbacks), adds Baseten API key handling in workflow credentials/types, and explicitly excludes Baseten from Evalite insights generation for now.Refreshes docs, env examples, and CLI examples to advertise/select
baseten, and adds unit coverage for Baseten model/default/baseURL behavior; also tweaks a few Mux SDK calls and transcript language confidence parsing to keep typechecking clean.Reviewed by Cursor Bugbot for commit 58074d7. Bugbot is set up for automated code reviews on this repo. Configure here.