mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 11:02:17 +00:00
* Allow models.json to override built-in providers
When a provider is defined in models.json with the same name as a
built-in provider (e.g., 'anthropic', 'google'), the built-in models
for that provider are completely replaced by the custom definition.
This enables users to:
- Use custom base URLs (proxies, self-hosted endpoints)
- Define a subset of models they want available
- Customize model configurations for built-in providers
Example usage in ~/.pi/agent/models.json:
{
"providers": {
"anthropic": {
"baseUrl": "https://my-proxy.example.com/v1",
"apiKey": "ANTHROPIC_API_KEY",
"api": "anthropic-messages",
"models": [...]
}
}
}
* Refactor model-registry for readability
- Extract CustomModelsResult type and emptyCustomModelsResult helper
- Extract loadBuiltInModels method with clear skip logic
- Simplify loadModels with destructuring and ternary
- Reduce repetition in error handling paths
* Refactor model-registry tests for readability
- Extract providerConfig() helper to hide irrelevant model fields
- Extract writeModelsJson() helper for file writing
- Extract getModelsForProvider() helper for filtering
- Move modelsJsonPath to beforeEach
Reduces test file from 262 to 130 lines while maintaining same coverage.
|
||
|---|---|---|
| .. | ||
| fixtures | ||
| session-manager | ||
| agent-session-branching.test.ts | ||
| agent-session-compaction.test.ts | ||
| agent-session-concurrent.test.ts | ||
| agent-session-tree-navigation.test.ts | ||
| args.test.ts | ||
| compaction-hooks-example.test.ts | ||
| compaction-hooks.test.ts | ||
| compaction.test.ts | ||
| fuzzy.test.ts | ||
| interactive-mode-status.test.ts | ||
| model-registry.test.ts | ||
| model-resolver.test.ts | ||
| rpc-example.ts | ||
| rpc.test.ts | ||
| skills.test.ts | ||
| streaming-render-debug.ts | ||
| test-theme-colors.ts | ||
| tools.test.ts | ||
| truncate-to-width.test.ts | ||
| utilities.ts | ||