Implements all 4 phases of ADR-005 (issue #2790): Phase 1: Provider Capabilities Registry - Declarative ProviderCapabilities interface and PROVIDER_CAPABILITIES registry covering all 12 API providers - Consolidates scattered *-shared.ts knowledge into queryable registry - Unknown providers get permissive defaults (backward compatible) Phase 2: Tool Compatibility Metadata - ToolCompatibility interface (producesImages, schemaFeatures, minCapabilityTier) - compatibility field on ToolDefinition - Tool compatibility registry with pre-populated built-in tools - Auto-registration from registerTool() and MCP tool defaults Phase 3: Tool-Compat Filter + ProviderSwitchReport - ProviderSwitchReport tracks thinking blocks dropped/downgraded, tool call IDs remapped, synthetic results inserted, thought signatures dropped during cross-provider message transformation - isToolCompatibleWithProvider(), filterToolsForProvider(), adjustToolSet() functions in model router - filteredTools field on RoutingDecision - Verbose output for filtered tools in auto-model-selection Phase 4: adjustToolSet Extension Hook - AdjustToolSetEvent and AdjustToolSetResult interfaces - emitAdjustToolSet() on ExtensionAPI and ExtensionRuntime - Default no-op handler in register-hooks.ts Includes 47 new tests (20 provider caps + 10 switch report + 17 tool compat) Closes #2790 |
||
|---|---|---|
| .. | ||
| scripts | ||
| src | ||
| package.json | ||
| tsconfig.json | ||