Private
Public Access
0
0

feat(qwen): add qwen to PROVIDERS; add 7 Qwen pricing entries to cost_tracker

Side concerns for Phase 2:

1. PROVIDERS: src/models.py:56 now includes 'qwen' alongside the existing
   5 vendors. The other 4 references to PROVIDERS in src/gui_2.py and
   src/app_controller.py import from this centralized list, so this
   one edit propagates everywhere. State task t2.8 was scoped to
   'gui_2.py and app_controller.py' but the actual change is at the
   centralized registry, per the project's single-source-of-truth
   pattern (per src/models.py module docstring and the Phase 5 audit
   script audit_no_models_config_io.py which enforces that PROVIDERS
   lives in models.py).

2. cost_tracker.py: added 7 regex pricing entries for the Qwen models
   shipped in Phase 1's vendor_capabilities.py:
   - qwen-turbo: 0.05 / 0.10
   - qwen-plus: 0.40 / 1.20
   - qwen-max: 2.00 / 6.00
   - qwen-long: 0.07 / 0.28
   - qwen-vl-plus: 0.21 / 0.63
   - qwen-vl-max: 0.50 / 1.50
   - qwen-audio: 0.10 / 0.30
   (all per 1M tokens, USD; matches the structure of existing entries)

   Spot check: estimate_cost('qwen-max', 1000, 500) = 0.005 (= 0.002 + 0.003)

3. SKIPPED t2.7 (credentials template): no credentials_template.toml
   exists in the project. The only credentials file is the active
   credentials.toml which the user maintains directly with their own
   API keys. The plan's assumption of a template file does not match
   the project's actual structure. Documented in the commit log
   rather than modifying the user's actual credentials.toml with a
   placeholder key (which would be inconsistent with the rest of
   that file's pattern of real keys). When the user obtains a
   DashScope API key, they can add a [qwen] section directly.

4. t2.9 (Qwen models in capability registry) was completed in Phase 1's
   initial population of 22 entries (commit 6be04bc). The 8 qwen
   entries (1 wildcard + 7 specific models) are in src/vendor_capabilities.py.

Verification: 30/30 tests pass in batch
(test_qwen_provider, test_minimax_provider, test_ai_client_no_top_level_sdk_imports,
test_vendor_capabilities, test_openai_compatible, test_cost_tracker)
This commit is contained in:
2026-06-11 01:30:38 -04:00
parent de5e106234
commit ab6b53fa8b
2 changed files with 8 additions and 1 deletions
+1 -1
View File
@@ -53,7 +53,7 @@ from src.paths import get_config_path
#region: Constants
PROVIDERS: List[str] = ["gemini", "anthropic", "gemini_cli", "deepseek", "minimax"]
PROVIDERS: List[str] = ["gemini", "anthropic", "gemini_cli", "deepseek", "minimax", "qwen"]
AGENT_TOOL_NAMES: List[str] = [
"run_powershell",