co-mono/packages/coding-agent/test
Yevhen Bobrov 243104fa18
Allow models.json to override built-in providers (#406)
* 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.
2026-01-03 00:59:59 +01:00
..
fixtures Fix syntax highlighting stderr spam with malformed markdown, fixes #274 2025-12-22 00:23:01 +01:00
session-manager Rework custom tools API with CustomToolContext 2025-12-31 12:05:24 +01:00
agent-session-branching.test.ts Change branch() to use entryId instead of entryIndex 2025-12-31 13:47:34 +01:00
agent-session-compaction.test.ts Add tree navigation tests and shared test utilities 2025-12-30 22:42:23 +01:00
agent-session-concurrent.test.ts feat(coding-agent): complete steer()/followUp() migration 2026-01-03 00:13:25 +01:00
agent-session-tree-navigation.test.ts Add tree navigation tests and shared test utilities 2025-12-30 22:42:23 +01:00
args.test.ts Add --version/-v flag to CLI (#170) 2025-12-12 00:01:06 +01:00
compaction-hooks-example.test.ts Rework custom tools API with CustomToolContext 2025-12-31 12:05:24 +01:00
compaction-hooks.test.ts fix(coding-agent): prevent full re-renders during write tool streaming 2026-01-02 01:11:06 +01:00
compaction.test.ts refactor(coding-agent): fix compaction for branched sessions, consolidate hook context types 2025-12-31 02:24:24 +01:00
fuzzy.test.ts Reorganize file structure: core/, utils/, modes/interactive/components/, modes/interactive/theme/ 2025-12-09 00:51:33 +01:00
interactive-mode-status.test.ts Coalesce sequential status messages 2026-01-01 00:28:37 +01:00
model-registry.test.ts Allow models.json to override built-in providers (#406) 2026-01-03 00:59:59 +01:00
model-resolver.test.ts refactor(hooks): split session events into individual typed events 2025-12-30 22:42:22 +01:00
rpc-example.ts Update RPC example to use RpcClient 2025-12-09 14:44:13 +01:00
rpc.test.ts Consolidate session events: remove session_before_new/session_new, add reason field to switch events 2026-01-01 23:31:26 +01:00
skills.test.ts Enable more biome lints and fix things 2025-12-21 22:56:20 +01:00
streaming-render-debug.ts Fix syntax highlighting stderr spam with malformed markdown, fixes #274 2025-12-22 00:23:01 +01:00
test-theme-colors.ts Reorganize file structure: core/, utils/, modes/interactive/components/, modes/interactive/theme/ 2025-12-09 00:51:33 +01:00
tools.test.ts Fix edit tool failing on files with UTF-8 BOM 2026-01-02 01:57:24 +01:00
truncate-to-width.test.ts fix: TUI crash with Unicode characters in branch selector 2025-12-05 11:59:39 +01:00
utilities.ts Add tree navigation tests and shared test utilities 2025-12-30 22:42:23 +01:00