feat(api-proxy): use runtime model metadata and pricing overlays - #6695
Conversation
Add provider pricing overlays and Copilot runtime pricing tiers. Fail closed for unverifiable auto routing and check catalog consistency. Closes #6682 Closes #6674 Refs #6688 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a9cf3033-ffae-4b83-b174-b8b2099c5416
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (2 files)
Coverage comparison generated by |
There was a problem hiding this comment.
Pull request overview
Adds runtime/provider pricing metadata to API-proxy accounting and expands Copilot model support.
Changes:
- Wires operator pricing overlays through configuration.
- Adds runtime Copilot pricing, long-context tiers, and provenance.
- Expands model catalogs and fail-closed
autohandling.
Show a summary per file
| File | Description |
|---|---|
src/types/rate-limit-options.ts |
Types provider overlays. |
src/services/api-proxy-env-config.ts |
Exports overlay environment data. |
src/services/api-proxy-env-config.test.ts |
Tests overlay export. |
src/copilot-model.ts |
Adds supported models. |
src/copilot-model-catalog-sync.test.ts |
Expands catalog consistency checks. |
src/config-mapper.ts |
Maps provider configuration. |
src/config-file.ts |
Types provider configuration. |
src/config-file-mapping.test.ts |
Tests provider mapping. |
src/commands/validators/config-assembly-model-detection.test.ts |
Tests runtime validation deferral. |
src/commands/validators/api-proxy-validator.ts |
Defers unknown direct models. |
src/commands/build-config.ts |
Preserves pricing configuration. |
src/commands/build-config.test.ts |
Tests end-to-end configuration. |
src/awf-config-schema.json |
Adds providers schema. |
docs/awf-config.schema.json |
Publishes providers schema. |
docs/awf-config-spec.md |
Documents pricing precedence. |
docs/api-proxy-sidecar.md |
Documents runtime metadata. |
containers/api-proxy/token-tracker-shared.js |
Persists pricing provenance. |
containers/api-proxy/token-budget-log.test.js |
Tests provenance fields. |
containers/api-proxy/token-budget-log.js |
Logs pricing provenance. |
containers/api-proxy/server.token-guards.test.js |
Tests fail-closed auto. |
containers/api-proxy/server.network.test.js |
Tests metadata discovery. |
containers/api-proxy/server.js |
Exposes runtime metadata. |
containers/api-proxy/runtime-model-catalog.test.js |
Tests runtime normalization. |
containers/api-proxy/runtime-model-catalog.js |
Implements runtime catalog. |
containers/api-proxy/providers/index.js |
Documents adapter metadata fields. |
containers/api-proxy/providers/copilot.js |
Versions Copilot discovery. |
containers/api-proxy/provider-pricing-overlays.js |
Resolves operator overlays. |
containers/api-proxy/model-discovery.js |
Preserves discovered metadata. |
containers/api-proxy/management.js |
Adds metadata to reflection. |
containers/api-proxy/key-validation.js |
Maintains runtime snapshots. |
containers/api-proxy/guards/model-policy-guard.test.js |
Tests auto policy behavior. |
containers/api-proxy/guards/model-policy-guard.js |
Fails closed for dynamic policy. |
containers/api-proxy/guards/max-model-multiplier-guard.test.js |
Tests dynamic multiplier handling. |
containers/api-proxy/guards/max-model-multiplier-guard.js |
Guards unverifiable multipliers. |
containers/api-proxy/guards/ai-credits-guard.test.js |
Tests pricing precedence. |
containers/api-proxy/guards/ai-credits-guard.js |
Applies runtime tiered pricing. |
containers/api-proxy/Dockerfile |
Packages new runtime modules. |
containers/api-proxy/copilot-byok.test.js |
Tests versioned discovery headers. |
containers/api-proxy/ai-credits-pricing.js |
Adds static model prices. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 39/39 changed files
- Comments generated: 5
- Review effort level: Medium
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a9cf3033-ffae-4b83-b174-b8b2099c5416
|
✅ Copilot review passed with no inline comments. @lpcox Add the |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
❌ Smoke Copilot BYOK AOAI (Entra) reports failed. AOAI BYOK (Entra) mode investigation needed... |
|
Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded. |
|
❌ Contribution Check failed. Please review the logs for details. |
|
✅ Smoke Copilot BYOK completed. Copilot BYOK mode operational. 🔓 |
|
✅ Build Test Suite completed successfully! |
|
🛡️ Smoke Copilot Network Isolation confirmed the egress allowlist is enforced. ✅ |
|
✅ Smoke Claude passed |
|
🔌 Smoke Services — All services reachable! ✅ |
|
✅ Smoke Gemini completed. All facets verified. 💎 |
|
❌ Smoke Copilot BYOK AOAI (api-key) reports failed. AOAI BYOK (api-key) mode investigation needed... |
|
📡 Smoke OTel Tracing completed. All tracing scenarios validated. ✅ |
|
❌ Security Guard failed. Please review the logs for details. |
|
📰 VERDICT: Smoke Docker Sbx has concluded. All systems operational. This is a developing story. 🎤 |
Smoke Test: Claude Engine Validation
Overall result: PASS ✅
|
Smoke Test: Copilot BYOK (Direct) — PASSRunning in direct BYOK mode (
Overall: PASS
|
|
@lpcox — smoke test results for this PR:
Overall: PASS Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "example.com"See Network Configuration for more information.
|
🔬 Smoke Test Results
Overall: PARTIAL — template variables were not resolved ( PR author: @lpcox
|
🔬 Smoke Test: API Proxy OpenTelemetry Tracing
All 5 scenarios pass. OTEL tracing integration is functional.
|
Smoke Test Results — Services Connectivity
Overall: FAIL —
|
Smoke Test Results
Overall status: FAIL Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "localhost"See Network Configuration for more information.
|
🏗️ Build Test Suite Results
Overall: 8/8 ecosystems passed — ✅ PASS
|
Chroot Version Comparison Results
Result: ❌ FAILED — Node.js version mismatch (host: v24.18.0, chroot: v22.23.1).
|
|
Smoke test results for
Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "registry.npmjs.org"See Network Configuration for more information.
|
🔥 Smoke Test: Docker Sbx — PASS
Overall: ✅ PASS
|
Summary
apiProxy.providersoperator pricing overlays end-to-end, including the previously dropped default-pricing assembly path/reflect, andmodels.jsonautorequests when model policy, multiplier caps, or AI-credit pricing cannot be provenclaude-opus-5and thegpt-5.6-{sol,terra,luna}family to static model/pricing catalogsdocs/model-api-mapping.jsonValidation
Closes #6682
Closes #6674
Refs #6688