feat: add MiniMax as LLM provider for task decomposer#669
feat: add MiniMax as LLM provider for task decomposer#669octo-patch wants to merge 1 commit intoComposioHQ:mainfrom
Conversation
Add MiniMax as an alternative LLM provider for the task decomposition module, alongside Anthropic. MiniMax models are accessed via their OpenAI-compatible API, so no additional SDK is needed. Changes: - Add provider field to DecomposerConfig (anthropic | minimax) - Create LLM client abstraction layer (LLMClient interface) - Implement MiniMax client via OpenAI-compatible API (fetch-based) - Handle MiniMax-specific quirks: temperature clamping, think-tag strip - Support MINIMAX_API_KEY env var and optional MINIMAX_BASE_URL override - Update Zod config schema with provider enum validation - Add decomposer section to example config - Update README with MiniMax provider documentation - 36 unit tests + 6 integration tests
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| return createMiniMaxClient(); | ||
| case "anthropic": | ||
| default: | ||
| return createAnthropicClient(); |
There was a problem hiding this comment.
Switch default silently masks unknown provider values
Medium Severity
The default case in createLLMClient falls through to createAnthropicClient(), meaning any future DecomposerProvider union member added without a corresponding switch case would silently use Anthropic instead of failing. Because default is combined with case "anthropic", TypeScript's exhaustiveness checking is also defeated — a never check in the default branch won't trigger a compile error when the union grows.
| formatSiblings, | ||
| propagateStatus, | ||
| stripThinkingTags, | ||
| createLLMClient, |
There was a problem hiding this comment.
Internal abstractions unnecessarily exported as public API
Low Severity
stripThinkingTags and createLLMClient are exported from index.ts but are not imported by any consumer package — only by internal tests (which import directly from decomposer.js). createLLMClient is explicitly documented as an "Internal abstraction" and its return type LLMClient is not exported, making it an awkward public API addition that increases the package's surface area without need.
Triggered by project rule: BugBot Configuration


Summary
Add MiniMax as an alternative LLM provider for the task decomposition module, alongside Anthropic.
providerfield inDecomposerConfig("anthropic"|"minimax")LLMClientabstraction that routes to either Anthropic SDK or MiniMax OpenAI-compatible API<think>tag stripping for M2.5/M2.7 modelsMINIMAX_API_KEYenv var and optionalMINIMAX_BASE_URLoverrideFiles changed (8 files, ~982 additions)
packages/core/src/decomposer.tspackages/core/src/config.tspackages/core/src/types.tspackages/core/src/index.tspackages/core/src/__tests__/decomposer.test.tspackages/core/src/__tests__/decomposer-integration.test.tsagent-orchestrator.yaml.exampleREADME.mdTest plan