Unblock AI credits guard for Claude Fable/Mythos 5 by adding curated pricing and catalog fallback entries#5997
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request updates the API proxy’s AI-credits guard pricing sources so Anthropic’s claude-fable-5 and claude-mythos-5 are treated as priced/known models when apiProxy.maxAiCredits is enabled, preventing unknown_model_ai_credits rejections for workflows pinned to those models.
Changes:
- Added curated AI-credits pricing rows for
claude-fable-5andclaude-mythos-5. - Extended bundled models.dev catalog coverage and added tests to validate catalog-based pricing resolution for the new Claude models.
- Added guard tests to ensure
maxAiCredits-active runs do not reject these models and that credits are computed forclaude-fable-5.
Show a summary per file
| File | Description |
|---|---|
| containers/api-proxy/ai-credits-pricing.js | Adds curated $/1M token pricing for claude-fable-5 and claude-mythos-5 to prevent “unknown model” pricing gaps. |
| containers/api-proxy/models.dev.catalog.json | Adds bundled catalog entries for anthropic/claude-fable-5 and anthropic/claude-mythos-5 to keep fallback pricing resolution working when curated tables lag. |
| containers/api-proxy/models-dev-catalog.test.js | Adds assertions that bundled catalog pricing resolves correctly for the two new Claude models. |
| containers/api-proxy/guards/ai-credits-guard.test.js | Adds regression coverage ensuring these models are not rejected under AWF_MAX_AI_CREDITS and validates credits computation for claude-fable-5. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 3/4 changed files
- Comments generated: 0
- Review effort level: Low
|
✅ Copilot review passed with no inline comments. @copilot Add the |
|
✅ Smoke Gemini completed. All facets verified. 💎 |
|
📡 Smoke OTel Tracing completed. All tracing scenarios validated. ✅ |
|
Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded. |
|
✅ Smoke Copilot BYOK AOAI (api-key) completed. Copilot AOAI BYOK (api-key) mode operational. 🔓 Smoke test summary already posted; no further action needed. |
|
✅ Contribution Check completed successfully! PR #5997 follows the applicable CONTRIBUTING.md guidelines based on the pre-fetched metadata, diff, and contribution guide: tests are included for the pricing/catalog change, files are in appropriate containers/api-proxy locations, and the PR description is clear. No contribution-guidelines comment needed. |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
🔑 Smoke Copilot PAT PAT auth validated. All systems operational. ✅ |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
🔌 Smoke Services — All services reachable! ✅ |
|
❌ Security Guard failed. Please review the logs for details. |
|
✅ Build Test Suite completed successfully! |
|
✅ Smoke Claude passed |
|
✅ Smoke Copilot BYOK completed. Copilot BYOK mode operational. 🔓 |
|
✅ Smoke Copilot BYOK AOAI (Entra) completed. Copilot AOAI BYOK (Entra) mode operational. 🔓 |
|
| Metric | Base | PR | Delta |
|---|---|---|---|
| Lines | 99.00% | 99.00% | ➡️ +0.00% |
| Statements | 98.95% | 98.95% | ➡️ +0.00% |
| Functions | 99.72% | 99.72% | ➡️ +0.00% |
| Branches | 95.44% | 95.41% | 📉 -0.03% |
Coverage comparison generated by scripts/ci/compare-coverage.ts
Smoke Test: Claude Engine Validation
Overall Result: PASS Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
Smoke Test: Copilot BYOK (Direct) Mode✅ GitHub MCP connectivity verified Status: PASS | Running via api-proxy → api.githubcopilot.com Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
Smoke Test: Services Connectivity
Overall: FAIL — Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
Chroot Version Comparison Results
Overall: ❌ Not all tests passed — Python and Node.js versions differ between host and chroot environments. Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
🔬 Smoke Test Results
Overall: PASS 🎉 cc Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
|
Smoke Test: Copilot BYOK (Direct) Mode — Azure OpenAI (Foundry, Entra / GitHub OIDC)\n• GitHub MCP connectivity: ✅\n• GitHub.com connectivity: ✅\n• File write/read: ✅\n• BYOK inference: ✅\n\nRunning in direct BYOK mode (AWF_AUTH_TYPE=github-oidc + AWF_AUTH_AZURE_* + COPILOT_PROVIDER_BASE_URL) via api-proxy → Azure OpenAI (Foundry, o4-mini-aw) authenticated via Microsoft Entra\n\nOverall: PASS\n\n@lpcox Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
🔍 API Proxy OTEL Tracing Smoke Test Results
All 5 scenarios pass. OTEL tracing integration is complete and functioning correctly. Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
Gemini Engine Smoke Test Results
Overall Status: FAIL Last detected PR: #5982 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.
|
|
PR titles: 5986 feat: add Warning Firewall blocked 2 domainsThe following domains were blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"
- "registry.npmjs.org"See Network Configuration for more information.
|
Smoke Test: PAT Auth ✅ PASS
Overall: PASS Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
|
$(sed s///g /tmp/comment_body.txt) Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
🏗️ Build Test Suite Results
Overall: 8/8 ecosystems passed — ✅ PASS Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
apiProxy.maxAiCreditsrejectedclaude-fable-5asunknown_model_ai_creditsbecause the model was missing from both pricing sources used by the guard. This caused workflows pinned to the model to fail at first inference despite the model being recognized elsewhere in AWF.Pricing source 1: Curated AI credits table
containers/api-proxy/ai-credits-pricing.jsfor:claude-fable-5claude-mythos-5Pricing source 2: Bundled models.dev fallback catalog
containers/api-proxy/models.dev.catalog.jsonto include:anthropic/claude-fable-5anthropic/claude-mythos-5Guard/canonical-resolution coverage
containers/api-proxy/guards/ai-credits-guard.test.jsto cover non-rejection and credit computation forclaude-fable-5(and non-rejection forclaude-mythos-5) when max AI credits is active.containers/api-proxy/models-dev-catalog.test.jsto assert bundled catalog pricing resolution for both new Claude models.