@bahulam/code 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bahulam/code",
3
- "version": "0.1.4",
4
- "description": "Bahulam Code abundance, in your terminal. CLI-first, reliability-first, sub-agents, 65.6% SWE-bench Verified.",
3
+ "version": "0.1.6",
4
+ "description": "Bahulam Code \u2014 abundance, in your terminal. CLI-first, reliability-first, sub-agents, 65.6% SWE-bench Verified.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "bahulam": "src/terminal/main.mjs",
@@ -17,7 +17,9 @@
17
17
  ],
18
18
  "scripts": {
19
19
  "start": "node src/terminal/main.mjs",
20
- "test": "BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-backend-url.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-agent-history.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-sse-client.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-tool-executor.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-project-artifacts.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-work-scope.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-skills.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-callback.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-rate-limit-display.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-preflight.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-formatter.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-terminal-rendering.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-render-queue.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-input-dock.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-live-steering-client.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-slash-commands.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-approval.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-approval-log.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-kepler-contract.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-session-manager.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-safety.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-jsonl-writer.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-analytics.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-stagnation.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-attachments.mjs"
20
+ "test": "BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-backend-url.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-agent-history.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-sse-client.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-tool-executor.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-project-artifacts.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-work-scope.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-skills.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-callback.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-rate-limit-display.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-preflight.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-formatter.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-terminal-rendering.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-render-queue.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-input-dock.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-live-steering-client.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-slash-commands.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-approval.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-approval-log.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-kepler-contract.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-session-manager.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-safety.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-jsonl-writer.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-analytics.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-stagnation.mjs && BAHULAM_HOME=/tmp/bahulam-code-test-home node test/test-attachments.mjs",
21
+ "sync-catalog": "node scripts/sync-catalog.mjs",
22
+ "prepublishOnly": "node scripts/sync-catalog.mjs"
21
23
  },
22
24
  "engines": {
23
25
  "node": ">=18.0.0"
@@ -0,0 +1,221 @@
1
+ {
2
+ "schema": "bahulam.models_catalog.snapshot.v1",
3
+ "source": "delivered_static_catalog",
4
+ "generated_at": "2026-08-23T20:06:08.903480Z",
5
+ "deactivate_missing": false,
6
+ "models": [
7
+ {"value": "anthropic/claude-opus-4-6", "label": "Claude Opus 4.6", "provider": "anthropic", "inputCost": 15, "outputCost": 75, "context": 200000, "maxOutput": 32000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": false},
8
+ {"value": "anthropic/claude-sonnet-4-6", "label": "Claude Sonnet 4.6", "provider": "anthropic", "inputCost": 3, "outputCost": 15, "context": 200000, "maxOutput": 64000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": false},
9
+ {"value": "anthropic/claude-haiku-4-5", "label": "Claude Haiku 4.5", "provider": "anthropic", "inputCost": 0.8, "outputCost": 4, "context": 200000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
10
+ {"value": "us.anthropic.claude-opus-4-6-v1", "label": "Claude Opus 4.6 (Bedrock)", "provider": "anthropic", "inputCost": 15, "outputCost": 75, "context": 200000, "maxOutput": 32000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": false},
11
+ {"value": "us.anthropic.claude-sonnet-4-6", "label": "Claude Sonnet 4.6 (Bedrock)", "provider": "anthropic", "inputCost": 3, "outputCost": 15, "context": 200000, "maxOutput": 64000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": false},
12
+ {"value": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "label": "Claude Haiku 4.5 (Bedrock)", "provider": "anthropic", "inputCost": 0.8, "outputCost": 4, "context": 200000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
13
+ {"value": "google/gemini-2.5-pro", "label": "Gemini 2.5 Pro", "provider": "google", "inputCost": 1.25, "outputCost": 10, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
14
+ {"value": "google/gemini-2.5-flash", "label": "Gemini 2.5 Flash", "provider": "google", "inputCost": 0.15, "outputCost": 0.6, "context": 1048576, "maxOutput": 65535, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
15
+ {"value": "google/gemini-2.5-flash-lite", "label": "Gemini 2.5 Flash Lite", "provider": "google", "inputCost": 0.075, "outputCost": 0.3, "context": 1048576, "maxOutput": 65535, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
16
+ {"value": "openai/gpt-4.1", "label": "GPT-4.1", "provider": "openai", "inputCost": 2, "outputCost": 8, "context": 1047576, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
17
+ {"value": "openai/gpt-4.1-mini", "label": "GPT-4.1 Mini", "provider": "openai", "inputCost": 0.4, "outputCost": 1.6, "context": 1047576, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
18
+ {"value": "openai/o3-mini", "label": "O3 Mini", "provider": "openai", "inputCost": 1.1, "outputCost": 4.4, "context": 200000, "maxOutput": 100000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
19
+ {"value": "openai/codex-mini", "label": "Codex Mini", "provider": "openai", "inputCost": 1.5, "outputCost": 6, "context": 200000, "maxOutput": 100000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": false},
20
+ {"value": "deepseek/deepseek-v4-flash", "label": "DeepSeek V4 Flash", "provider": "deepseek", "inputCost": 0.098, "outputCost": 0.197, "context": 1048576, "maxOutput": 384000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
21
+ {"value": "deepseek/deepseek-v4-flash-0731", "label": "DeepSeek V4 Flash (0731)", "provider": "deepseek", "inputCost": 0.098, "outputCost": 0.197, "context": 1310720, "maxOutput": 384000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "cacheProfile": "{\"type\": \"prefix_hash\", \"provider_hint\": \"DeepSeek\"}", "platformAccessTier": ["pro", "tier_49", "tier_99"]},
22
+ {"value": "deepseek/deepseek-v4-pro", "label": "DeepSeek V4 Pro", "provider": "deepseek", "inputCost": 0.435, "outputCost": 0.87, "context": 1048576, "maxOutput": 384000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "cacheProfile": "{\"type\": \"prefix_hash\", \"provider_hint\": \"DeepSeek\"}", "platformAccessTier": ["pro", "tier_49", "tier_99"]},
23
+ {"value": "deepseek/deepseek-chat-v3-0324", "label": "DeepSeek V3", "provider": "deepseek", "inputCost": 0.27, "outputCost": 1.1, "context": 163840, "maxOutput": 163840, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
24
+ {"value": "deepseek/deepseek-r1-0528", "label": "DeepSeek R1 0528", "provider": "deepseek", "inputCost": 0.8, "outputCost": 2.4, "context": 163840, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": true, "harnessValidated": false},
25
+ {"value": "deepseek/deepseek-reasoner", "label": "DeepSeek R1", "provider": "deepseek", "inputCost": 0.55, "outputCost": 2.19, "context": 131072, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": false},
26
+ {"value": "qwen/qwen3-coder", "label": "Qwen3 Coder", "provider": "qwen", "inputCost": 0.2, "outputCost": 0.6, "context": 262144, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
27
+ {"value": "qwen/qwen3-235b-a22b", "label": "Qwen3 235B", "provider": "qwen", "inputCost": 0.7, "outputCost": 0.7, "context": 131072, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
28
+ {"value": "qwen/qwen3-30b-a3b", "label": "Qwen3 30B", "provider": "qwen", "inputCost": 0.14, "outputCost": 0.14, "context": 131072, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
29
+ {"value": "qwen/qwen3-32b", "label": "Qwen3 32B", "provider": "qwen", "inputCost": 0.2, "outputCost": 0.2, "context": 131072, "maxOutput": 16384, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
30
+ {"value": "qwen/qwen3-8b", "label": "Qwen3 8B", "provider": "qwen", "inputCost": 0.03, "outputCost": 0.05, "context": 131072, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
31
+ {"value": "qwen/qwen-2.5-coder-32b-instruct", "label": "Qwen 2.5 Coder 32B", "provider": "qwen", "inputCost": 0.07, "outputCost": 0.16, "context": 32768, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
32
+ {"value": "qwen/qwq-32b", "label": "QwQ 32B", "provider": "qwen", "inputCost": 0.2, "outputCost": 0.2, "context": 131072, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": true, "harnessValidated": false},
33
+ {"value": "minimax/minimax-m3", "label": "MiniMax M3", "provider": "minimax", "inputCost": 0.5, "outputCost": 2.0, "context": 1048576, "maxOutput": 512000, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
34
+ {"value": "minimax/minimax-m2.1", "label": "MiniMax M2.1", "provider": "minimax", "inputCost": 0.3, "outputCost": 1.1, "context": 204800, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
35
+ {"value": "xiaomi/mimo-v2.5-pro", "label": "MiMo V2.5 Pro", "provider": "xiaomi", "inputCost": 0.5, "outputCost": 2.0, "context": 1050000, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
36
+ {"value": "xiaomi/mimo-v2.5", "label": "MiMo V2.5", "provider": "xiaomi", "inputCost": 0.3, "outputCost": 1.0, "context": 1050000, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "cacheProfile": "{\"type\": \"prefix_hash\", \"provider_hint\": \"Xiaomi\"}", "platformAccessTier": ["pro", "tier_49", "tier_99"]},
37
+ {"value": "xiaomi/mimo-v2-flash", "label": "MiMo V2 Flash", "provider": "xiaomi", "inputCost": 0.1, "outputCost": 0.3, "context": 131072, "maxOutput": 16384, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
38
+ {"value": "moonshotai/kimi-k2.5", "label": "Kimi K2.5", "provider": "kimi", "inputCost": 0.44, "outputCost": 2.0, "context": 262144, "maxOutput": 262144, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
39
+ {"value": "moonshotai/kimi-k2", "label": "Kimi K2", "provider": "kimi", "inputCost": 0.44, "outputCost": 2.0, "context": 131072, "maxOutput": 100352, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
40
+ {"value": "moonshotai/kimi-k2-instruct", "label": "Kimi K2 Instruct", "provider": "kimi", "inputCost": 0.44, "outputCost": 2.0, "context": 131072, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
41
+ {"value": "tencent/hy3", "label": "Tencent Hunyuan 3", "provider": "tencent", "inputCost": 0.3, "outputCost": 1.0, "context": 262144, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "cacheProfile": "{\"type\": \"prefix_hash\", \"provider_hint\": \"Tencent\"}", "platformAccessTier": ["pro", "tier_49", "tier_99"]},
42
+ {"value": "z-ai/glm-5.2", "label": "GLM 5.2", "provider": "zhipu", "inputCost": 0.95, "outputCost": 3.0, "context": 1048576, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
43
+ {"value": "z-ai/glm-5.1", "label": "GLM 5.1", "provider": "zhipu", "inputCost": 0.98, "outputCost": 3.08, "context": 204800, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
44
+ {"value": "z-ai/glm-5", "label": "GLM 5", "provider": "zhipu", "inputCost": 0.6, "outputCost": 1.92, "context": 204800, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
45
+ {"value": "z-ai/glm-5-turbo", "label": "GLM 5 Turbo", "provider": "zhipu", "inputCost": 1.2, "outputCost": 4.0, "context": 202752, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": false},
46
+ {"value": "z-ai/glm-4.7", "label": "GLM 4.7", "provider": "zhipu", "inputCost": 0.4, "outputCost": 1.75, "context": 204800, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
47
+ {"value": "z-ai/glm-4.7-flash", "label": "GLM 4.7 Flash", "provider": "zhipu", "inputCost": 0.06, "outputCost": 0.4, "context": 202752, "maxOutput": 16384, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
48
+ {"value": "z-ai/glm-4.6", "label": "GLM 4.6", "provider": "zhipu", "inputCost": 0.43, "outputCost": 1.74, "context": 204800, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
49
+ {"value": "z-ai/glm-4.5", "label": "GLM 4.5", "provider": "zhipu", "inputCost": 0.6, "outputCost": 2.2, "context": 131072, "maxOutput": 98304, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
50
+ {"value": "z-ai/glm-4.5-air", "label": "GLM 4.5 Air", "provider": "zhipu", "inputCost": 0.13, "outputCost": 0.85, "context": 131072, "maxOutput": 98304, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
51
+ {"value": "meta-llama/llama-4-maverick", "label": "Llama 4 Maverick", "provider": "meta", "inputCost": 0.5, "outputCost": 0.77, "context": 1048576, "maxOutput": 16384, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
52
+ {"value": "meta-llama/llama-4-scout", "label": "Llama 4 Scout", "provider": "meta", "inputCost": 0.15, "outputCost": 0.42, "context": 1310720, "maxOutput": 16384, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
53
+ {"value": "meta-llama/llama-3.3-70b-instruct", "label": "Llama 3.3 70B", "provider": "meta", "inputCost": 0.1, "outputCost": 0.13, "context": 131072, "maxOutput": 16384, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
54
+ {"value": "mistralai/devstral-small", "label": "Devstral Small", "provider": "mistral", "inputCost": 0.1, "outputCost": 0.3, "context": 131072, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
55
+ {"value": "mistralai/mistral-large-2411", "label": "Mistral Large", "provider": "mistral", "inputCost": 2.0, "outputCost": 6.0, "context": 131072, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
56
+ {"value": "mistralai/codestral-2501", "label": "Codestral", "provider": "mistral", "inputCost": 0.3, "outputCost": 0.9, "context": 256000, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
57
+ {"value": "x-ai/grok-3", "label": "Grok 3", "provider": "xai", "inputCost": 3.0, "outputCost": 15.0, "context": 131072, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
58
+ {"value": "x-ai/grok-3-mini", "label": "Grok 3 Mini", "provider": "xai", "inputCost": 0.3, "outputCost": 0.5, "context": 131072, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
59
+ {"value": "stealth/ox-alpha", "label": "Stealth OX Alpha", "provider": "stealth", "inputCost": 0.3, "outputCost": 1.0, "context": 1048576, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "cacheProfile": "{\"type\": \"prefix_hash\", \"provider_hint\": \"Stealth\"}", "platformAccessTier": ["pro", "tier_49", "tier_99"]},
60
+ {"value": "upstage/solar-pro4", "label": "Solar Pro 4", "provider": "upstage", "inputCost": 0.3, "outputCost": 1.0, "context": 524288, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false, "cacheProfile": "{\"type\": \"prefix_hash\", \"provider_hint\": \"Upstage\"}", "platformAccessTier": ["pro", "tier_49", "tier_99"]},
61
+ {"value": "qwen/qwen3-coder:free", "label": "Qwen3 Coder (Free)", "provider": "qwen", "inputCost": 0, "outputCost": 0, "context": 131072, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
62
+ {"value": "xiaomi/mimo-v2-flash:free", "label": "MiMo V2 Flash (Free)", "provider": "xiaomi", "inputCost": 0, "outputCost": 0, "context": 131072, "maxOutput": 16384, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
63
+ {"value": "meta-llama/llama-3.3-70b-instruct:free", "label": "Llama 3.3 70B (Free)", "provider": "meta", "inputCost": 0, "outputCost": 0, "context": 131072, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
64
+ {"value": "qwen/qwen3-8b:free", "label": "Qwen3 8B (Free)", "provider": "qwen", "inputCost": 0, "outputCost": 0, "context": 131072, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false},
65
+ {"value": "nvidia/nemotron-3-ultra-550b-a55b:free", "label": "Nemotron 3 Ultra 550B (Free)", "provider": "nvidia", "inputCost": 0, "outputCost": 0, "context": 1000000, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "cacheProfile": "{\"type\": \"prefix_hash\", \"provider_hint\": \"NVIDIA\"}", "platformAccessTier": ["pro", "tier_49", "tier_99"]},
66
+ {"value": "poolside/laguna-s-2.1:free", "label": "Poolside Laguna S 2.1 (Free)", "provider": "poolside", "inputCost": 0, "outputCost": 0, "context": 262144, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": false, "cacheProfile": "{\"type\": \"prefix_hash\", \"provider_hint\": \"Poolside\"}", "platformAccessTier": ["pro", "tier_49", "tier_99"]},
67
+ {"value": "amazon/nova-2-lite-v1", "label": "Amazon: Nova 2 Lite", "provider": "amazon", "inputCost": 0.3, "outputCost": 2.5, "context": 1000000, "maxOutput": 65535, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
68
+ {"value": "amazon/nova-lite-v1", "label": "Amazon: Nova Lite 1.0", "provider": "amazon", "inputCost": 0.06, "outputCost": 0.24, "context": 300000, "maxOutput": 5120, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
69
+ {"value": "amazon/nova-premier-v1", "label": "Amazon: Nova Premier 1.0", "provider": "amazon", "inputCost": 2.5, "outputCost": 12.5, "context": 1000000, "maxOutput": 32000, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
70
+ {"value": "anthropic/claude-3-haiku", "label": "Anthropic: Claude 3 Haiku", "provider": "anthropic", "inputCost": 0.25, "outputCost": 1.25, "context": 200000, "maxOutput": 4096, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
71
+ {"value": "anthropic/claude-fable-5", "label": "Anthropic: Claude Fable 5", "provider": "anthropic", "inputCost": 10.0, "outputCost": 50.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
72
+ {"value": "anthropic/claude-haiku-4.5", "label": "Anthropic: Claude Haiku 4.5", "provider": "anthropic", "inputCost": 1.0, "outputCost": 5.0, "context": 200000, "maxOutput": 64000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
73
+ {"value": "anthropic/claude-opus-4", "label": "Anthropic: Claude Opus 4", "provider": "anthropic", "inputCost": 15.0, "outputCost": 75.0, "context": 200000, "maxOutput": 32000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
74
+ {"value": "anthropic/claude-opus-4.1", "label": "Anthropic: Claude Opus 4.1", "provider": "anthropic", "inputCost": 15.0, "outputCost": 75.0, "context": 200000, "maxOutput": 32000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
75
+ {"value": "anthropic/claude-opus-4.5", "label": "Anthropic: Claude Opus 4.5", "provider": "anthropic", "inputCost": 5.0, "outputCost": 25.0, "context": 200000, "maxOutput": 64000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
76
+ {"value": "anthropic/claude-opus-4.6", "label": "Anthropic: Claude Opus 4.6", "provider": "anthropic", "inputCost": 5.0, "outputCost": 25.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
77
+ {"value": "anthropic/claude-opus-4.7", "label": "Anthropic: Claude Opus 4.7", "provider": "anthropic", "inputCost": 5.0, "outputCost": 25.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
78
+ {"value": "anthropic/claude-opus-4.8", "label": "Anthropic: Claude Opus 4.8", "provider": "anthropic", "inputCost": 5.0, "outputCost": 25.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
79
+ {"value": "anthropic/claude-opus-4.8-fast", "label": "Anthropic: Claude Opus 4.8 (Fast)", "provider": "anthropic", "inputCost": 10.0, "outputCost": 50.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
80
+ {"value": "anthropic/claude-opus-5", "label": "Claude Opus 5", "provider": "anthropic", "inputCost": 5.0, "outputCost": 25.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
81
+ {"value": "anthropic/claude-opus-5-fast", "label": "Claude Opus 5 (Fast)", "provider": "anthropic", "inputCost": 10.0, "outputCost": 50.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
82
+ {"value": "anthropic/claude-sonnet-4", "label": "Anthropic: Claude Sonnet 4", "provider": "anthropic", "inputCost": 3.0, "outputCost": 15.0, "context": 1000000, "maxOutput": 64000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
83
+ {"value": "anthropic/claude-sonnet-4.5", "label": "Anthropic: Claude Sonnet 4.5", "provider": "anthropic", "inputCost": 3.0, "outputCost": 15.0, "context": 1000000, "maxOutput": 64000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
84
+ {"value": "anthropic/claude-sonnet-4.6", "label": "Anthropic: Claude Sonnet 4.6", "provider": "anthropic", "inputCost": 3.0, "outputCost": 15.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
85
+ {"value": "anthropic/claude-sonnet-5", "label": "Anthropic: Claude Sonnet 5", "provider": "anthropic", "inputCost": 2.0, "outputCost": 10.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
86
+ {"value": "cohere/north-mini-code:free", "label": "Cohere: North Mini Code (free)", "provider": "cohere", "inputCost": 0.0, "outputCost": 0.0, "context": 256000, "maxOutput": 64000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
87
+ {"value": "deepseek/deepseek-chat-v3.1", "label": "DeepSeek: DeepSeek V3.1", "provider": "deepseek", "inputCost": 0.55, "outputCost": 1.65, "context": 163840, "maxOutput": 161000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
88
+ {"value": "deepseek/deepseek-v3.1-terminus", "label": "DeepSeek: DeepSeek V3.1 Terminus", "provider": "deepseek", "inputCost": 0.27, "outputCost": 1.0, "context": 163840, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
89
+ {"value": "deepseek/deepseek-v3.2", "label": "DeepSeek: DeepSeek V3.2", "provider": "deepseek", "inputCost": 0.26, "outputCost": 0.38, "context": 163840, "maxOutput": 163840, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
90
+ {"value": "deepseek/deepseek-v3.2-exp", "label": "DeepSeek: DeepSeek V3.2 Exp", "provider": "deepseek", "inputCost": 0.27, "outputCost": 0.41, "context": 163840, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
91
+ {"value": "deepseek/deepseek-v4-pro-0813", "label": "DeepSeek: DeepSeek V4 Pro 0813", "provider": "deepseek", "inputCost": 1.122, "outputCost": 3.366, "context": 1048576, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
92
+ {"value": "dots-studio/dots-3-note-preview:free", "label": "Dots Studio: Dots3-Note Preview (free)", "provider": "dots-studio", "inputCost": 0.0, "outputCost": 0.0, "context": 512000, "maxOutput": 512000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
93
+ {"value": "google/gemini-2.5-pro-preview", "label": "Google: Gemini 2.5 Pro Preview 06-05", "provider": "google", "inputCost": 1.25, "outputCost": 10.0, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
94
+ {"value": "google/gemini-2.5-pro-preview-05-06", "label": "Google: Gemini 2.5 Pro Preview 05-06", "provider": "google", "inputCost": 1.25, "outputCost": 10.0, "context": 1048576, "maxOutput": 65535, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
95
+ {"value": "google/gemini-3-flash-preview", "label": "Google: Gemini 3 Flash Preview", "provider": "google", "inputCost": 0.5, "outputCost": 3.0, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
96
+ {"value": "google/gemini-3-pro-image", "label": "Google: Nano Banana Pro (Gemini 3 Pro Image)", "provider": "google", "inputCost": 2.0, "outputCost": 12.0, "context": 131072, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
97
+ {"value": "google/gemini-3.1-flash-lite", "label": "Google: Gemini 3.1 Flash Lite", "provider": "google", "inputCost": 0.25, "outputCost": 1.5, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
98
+ {"value": "google/gemini-3.1-flash-lite-preview", "label": "Google: Gemini 3.1 Flash Lite Preview", "provider": "google", "inputCost": 0.25, "outputCost": 1.5, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
99
+ {"value": "google/gemini-3.1-pro-preview", "label": "Google: Gemini 3.1 Pro Preview", "provider": "google", "inputCost": 2.0, "outputCost": 12.0, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
100
+ {"value": "google/gemini-3.1-pro-preview-customtools", "label": "Google: Gemini 3.1 Pro Preview Custom Tools", "provider": "google", "inputCost": 2.0, "outputCost": 12.0, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
101
+ {"value": "google/gemini-3.5-flash", "label": "Google: Gemini 3.5 Flash", "provider": "google", "inputCost": 1.5, "outputCost": 9.0, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
102
+ {"value": "google/gemini-3.5-flash-lite", "label": "Google: Gemini 3.5 Flash Lite", "provider": "google", "inputCost": 0.3, "outputCost": 2.5, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
103
+ {"value": "google/gemini-3.6-flash", "label": "Google: Gemini 3.6 Flash", "provider": "google", "inputCost": 0.75, "outputCost": 3.75, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
104
+ {"value": "google/gemini-3.7-flash", "label": "Google: Gemini 3.7 Flash", "provider": "google", "inputCost": 0.375, "outputCost": 1.875, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
105
+ {"value": "google/gemma-4-26b-a4b-it", "label": "Google: Gemma 4 26B A4B ", "provider": "google", "inputCost": 0.07, "outputCost": 0.34, "context": 262144, "maxOutput": 16384, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
106
+ {"value": "kwaipilot/kat-coder-pro-v2", "label": "Kwaipilot: KAT-Coder-Pro V2", "provider": "kwaipilot", "inputCost": 0.3, "outputCost": 1.2, "context": 262144, "maxOutput": 80000, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
107
+ {"value": "meituan/longcat-2.0", "label": "Meituan: LongCat 2.0", "provider": "meituan", "inputCost": 0.3, "outputCost": 1.2, "context": 1048756, "maxOutput": 262144, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
108
+ {"value": "meta-llama/llama-3.1-8b-instruct", "label": "Meta: Llama 3.1 8B Instruct", "provider": "meta-llama", "inputCost": 0.05, "outputCost": 0.08, "context": 131072, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
109
+ {"value": "minimax/minimax-m1", "label": "MiniMax: MiniMax M1", "provider": "minimax", "inputCost": 0.55, "outputCost": 2.2, "context": 1000000, "maxOutput": 40000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
110
+ {"value": "minimax/minimax-m2", "label": "MiniMax: MiniMax M2", "provider": "minimax", "inputCost": 0.255, "outputCost": 1.02, "context": 204800, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
111
+ {"value": "minimax/minimax-m2.5", "label": "MiniMax: MiniMax M2.5", "provider": "minimax", "inputCost": 0.27, "outputCost": 1.08, "context": 204800, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
112
+ {"value": "minimax/minimax-m2.7", "label": "MiniMax: MiniMax M2.7", "provider": "minimax", "inputCost": 0.24, "outputCost": 0.96, "context": 204800, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
113
+ {"value": "mistralai/codestral-2508", "label": "Mistral: Codestral 2508", "provider": "mistralai", "inputCost": 0.3, "outputCost": 0.9, "context": 256000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
114
+ {"value": "mistralai/ministral-14b-2512", "label": "Mistral: Ministral 3 14B 2512", "provider": "mistralai", "inputCost": 0.2, "outputCost": 0.2, "context": 262144, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
115
+ {"value": "mistralai/ministral-3b-2512", "label": "Mistral: Ministral 3 3B 2512", "provider": "mistralai", "inputCost": 0.1, "outputCost": 0.1, "context": 131072, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
116
+ {"value": "mistralai/ministral-8b-2512", "label": "Mistral: Ministral 3 8B 2512", "provider": "mistralai", "inputCost": 0.15, "outputCost": 0.15, "context": 262144, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
117
+ {"value": "mistralai/mistral-large-2407", "label": "Mistral Large 2407", "provider": "mistralai", "inputCost": 2.0, "outputCost": 6.0, "context": 131072, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
118
+ {"value": "mistralai/mistral-large-2512", "label": "Mistral: Mistral Large 3 2512", "provider": "mistralai", "inputCost": 0.5, "outputCost": 1.5, "context": 262144, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
119
+ {"value": "mistralai/mistral-medium-3", "label": "Mistral: Mistral Medium 3", "provider": "mistralai", "inputCost": 0.4, "outputCost": 2.0, "context": 131072, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
120
+ {"value": "mistralai/mistral-medium-3-5", "label": "Mistral: Mistral Medium 3.5", "provider": "mistralai", "inputCost": 1.5, "outputCost": 7.5, "context": 262144, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
121
+ {"value": "mistralai/mistral-medium-3.1", "label": "Mistral: Mistral Medium 3.1", "provider": "mistralai", "inputCost": 0.4, "outputCost": 2.0, "context": 131072, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
122
+ {"value": "mistralai/mistral-small-2603", "label": "Mistral: Mistral Small 4", "provider": "mistralai", "inputCost": 0.15, "outputCost": 0.6, "context": 262144, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
123
+ {"value": "moonshotai/kimi-k2-thinking", "label": "MoonshotAI: Kimi K2 Thinking", "provider": "moonshotai", "inputCost": 0.6, "outputCost": 2.5, "context": 262144, "maxOutput": 100352, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
124
+ {"value": "moonshotai/kimi-k2.6", "label": "MoonshotAI: Kimi K2.6", "provider": "moonshotai", "inputCost": 0.95, "outputCost": 4.0, "context": 262144, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
125
+ {"value": "moonshotai/kimi-k2.7-code", "label": "MoonshotAI: Kimi K2.7 Code", "provider": "moonshotai", "inputCost": 0.67, "outputCost": 3.4, "context": 262144, "maxOutput": 262144, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
126
+ {"value": "moonshotai/kimi-k3", "label": "MoonshotAI: Kimi K3", "provider": "moonshotai", "inputCost": 3.0, "outputCost": 15.0, "context": 1048576, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
127
+ {"value": "nvidia/nemotron-3-nano-30b-a3b:free", "label": "NVIDIA: Nemotron 3 Nano 30B A3B (free)", "provider": "nvidia", "inputCost": 0.0, "outputCost": 0.0, "context": 256000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
128
+ {"value": "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", "label": "NVIDIA: Nemotron 3 Nano Omni (free)", "provider": "nvidia", "inputCost": 0.0, "outputCost": 0.0, "context": 256000, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
129
+ {"value": "nvidia/nemotron-3-super-120b-a12b:free", "label": "NVIDIA: Nemotron 3 Super (free)", "provider": "nvidia", "inputCost": 0.0, "outputCost": 0.0, "context": 262144, "maxOutput": 262144, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
130
+ {"value": "nvidia/nemotron-3.5-lightning:free", "label": "NVIDIA: Nemotron 3.5 Lightning (free)", "provider": "nvidia", "inputCost": 0.0, "outputCost": 0.0, "context": 1000000, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
131
+ {"value": "openai/gpt-4.1-nano", "label": "OpenAI: GPT-4.1 Nano", "provider": "openai", "inputCost": 0.1, "outputCost": 0.4, "context": 1047576, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
132
+ {"value": "openai/gpt-5", "label": "OpenAI: GPT-5", "provider": "openai", "inputCost": 1.25, "outputCost": 10.0, "context": 400000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
133
+ {"value": "openai/gpt-5-mini", "label": "OpenAI: GPT-5 Mini", "provider": "openai", "inputCost": 0.25, "outputCost": 2.0, "context": 400000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
134
+ {"value": "openai/gpt-5-nano", "label": "OpenAI: GPT-5 Nano", "provider": "openai", "inputCost": 0.05, "outputCost": 0.4, "context": 400000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
135
+ {"value": "openai/gpt-5.1", "label": "OpenAI: GPT-5.1", "provider": "openai", "inputCost": 1.25, "outputCost": 10.0, "context": 400000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
136
+ {"value": "openai/gpt-5.2", "label": "OpenAI: GPT-5.2", "provider": "openai", "inputCost": 1.75, "outputCost": 14.0, "context": 400000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
137
+ {"value": "openai/gpt-5.2-pro", "label": "OpenAI: GPT-5.2 Pro", "provider": "openai", "inputCost": 21.0, "outputCost": 168.0, "context": 400000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
138
+ {"value": "openai/gpt-5.3-codex", "label": "OpenAI: GPT-5.3-Codex", "provider": "openai", "inputCost": 1.75, "outputCost": 14.0, "context": 400000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
139
+ {"value": "openai/gpt-5.4", "label": "OpenAI: GPT-5.4", "provider": "openai", "inputCost": 2.5, "outputCost": 15.0, "context": 1050000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
140
+ {"value": "openai/gpt-5.4-mini", "label": "OpenAI: GPT-5.4 Mini", "provider": "openai", "inputCost": 0.75, "outputCost": 4.5, "context": 400000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
141
+ {"value": "openai/gpt-5.4-nano", "label": "OpenAI: GPT-5.4 Nano", "provider": "openai", "inputCost": 0.2, "outputCost": 1.25, "context": 400000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
142
+ {"value": "openai/gpt-5.4-pro", "label": "OpenAI: GPT-5.4 Pro", "provider": "openai", "inputCost": 30.0, "outputCost": 180.0, "context": 1050000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
143
+ {"value": "openai/gpt-5.5", "label": "OpenAI: GPT-5.5", "provider": "openai", "inputCost": 5.0, "outputCost": 30.0, "context": 1050000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
144
+ {"value": "openai/gpt-5.5-pro", "label": "OpenAI: GPT-5.5 Pro", "provider": "openai", "inputCost": 30.0, "outputCost": 180.0, "context": 1050000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
145
+ {"value": "openai/gpt-5.6-luna", "label": "OpenAI: GPT-5.6 Luna", "provider": "openai", "inputCost": 0.2, "outputCost": 1.2, "context": 1050000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
146
+ {"value": "openai/gpt-5.6-luna-pro", "label": "OpenAI: GPT-5.6 Luna Pro", "provider": "openai", "inputCost": 0.2, "outputCost": 1.2, "context": 1050000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
147
+ {"value": "openai/gpt-5.6-sol", "label": "OpenAI: GPT-5.6 Sol", "provider": "openai", "inputCost": 2.0, "outputCost": 10.0, "context": 1050000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
148
+ {"value": "openai/gpt-5.6-sol-pro", "label": "OpenAI: GPT-5.6 Sol Pro", "provider": "openai", "inputCost": 2.0, "outputCost": 10.0, "context": 1050000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
149
+ {"value": "openai/gpt-5.6-terra", "label": "OpenAI: GPT-5.6 Terra", "provider": "openai", "inputCost": 2.0, "outputCost": 12.0, "context": 1050000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
150
+ {"value": "openai/gpt-5.6-terra-pro", "label": "OpenAI: GPT-5.6 Terra Pro", "provider": "openai", "inputCost": 2.0, "outputCost": 12.0, "context": 1050000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
151
+ {"value": "openai/gpt-chat-latest", "label": "OpenAI: GPT Chat Latest", "provider": "openai", "inputCost": 5.0, "outputCost": 30.0, "context": 400000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
152
+ {"value": "openai/gpt-oss-120b", "label": "OpenAI: gpt-oss-120b", "provider": "openai", "inputCost": 0.037, "outputCost": 0.17, "context": 131072, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
153
+ {"value": "openai/gpt-oss-20b", "label": "OpenAI: gpt-oss-20b", "provider": "openai", "inputCost": 0.03, "outputCost": 0.13, "context": 131072, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
154
+ {"value": "openai/gpt-oss-safeguard-20b", "label": "OpenAI: gpt-oss-safeguard-20b", "provider": "openai", "inputCost": 0.075, "outputCost": 0.3, "context": 131072, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
155
+ {"value": "openai/o1", "label": "OpenAI: o1", "provider": "openai", "inputCost": 15.0, "outputCost": 60.0, "context": 200000, "maxOutput": 100000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
156
+ {"value": "openai/o3", "label": "OpenAI: o3", "provider": "openai", "inputCost": 2.0, "outputCost": 8.0, "context": 200000, "maxOutput": 100000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
157
+ {"value": "openai/o3-mini-high", "label": "OpenAI: o3 Mini High", "provider": "openai", "inputCost": 1.1, "outputCost": 4.4, "context": 200000, "maxOutput": 100000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
158
+ {"value": "openai/o3-pro", "label": "OpenAI: o3 Pro", "provider": "openai", "inputCost": 20.0, "outputCost": 80.0, "context": 200000, "maxOutput": 100000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
159
+ {"value": "openai/o4-mini", "label": "OpenAI: o4 Mini", "provider": "openai", "inputCost": 1.1, "outputCost": 4.4, "context": 200000, "maxOutput": 100000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
160
+ {"value": "openai/o4-mini-high", "label": "OpenAI: o4 Mini High", "provider": "openai", "inputCost": 1.1, "outputCost": 4.4, "context": 200000, "maxOutput": 100000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
161
+ {"value": "openrouter/auto", "label": "Auto Router", "provider": "openrouter", "inputCost": 0, "outputCost": 0, "context": 2000000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": false, "note": "meta-router / dynamic pricing — not valid for harness"},
162
+ {"value": "openrouter/auto-beta", "label": "Auto Router (Beta)", "provider": "openrouter", "inputCost": 0, "outputCost": 0, "context": 2000000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": false, "note": "meta-router / dynamic pricing — not valid for harness"},
163
+ {"value": "openrouter/free", "label": "Free Models Router", "provider": "openrouter", "inputCost": 0.0, "outputCost": 0.0, "context": 200000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
164
+ {"value": "qwen/qwen-plus", "label": "Qwen: Qwen-Plus", "provider": "qwen", "inputCost": 0.26, "outputCost": 0.78, "context": 1000000, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
165
+ {"value": "qwen/qwen-plus-2025-07-28", "label": "Qwen: Qwen Plus 0728", "provider": "qwen", "inputCost": 0.26, "outputCost": 0.78, "context": 1000000, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
166
+ {"value": "qwen/qwen-plus-2025-07-28:thinking", "label": "Qwen: Qwen Plus 0728 (thinking)", "provider": "qwen", "inputCost": 0.26, "outputCost": 0.78, "context": 1000000, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
167
+ {"value": "qwen/qwen3-235b-a22b-2507", "label": "Qwen: Qwen3 235B A22B Instruct 2507", "provider": "qwen", "inputCost": 0.09, "outputCost": 0.55, "context": 262144, "maxOutput": 16384, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
168
+ {"value": "qwen/qwen3-235b-a22b-thinking-2507", "label": "Qwen: Qwen3 235B A22B Thinking 2507", "provider": "qwen", "inputCost": 0.23, "outputCost": 2.3, "context": 262144, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
169
+ {"value": "qwen/qwen3-30b-a3b-instruct-2507", "label": "Qwen: Qwen3 30B A3B Instruct 2507", "provider": "qwen", "inputCost": 0.048, "outputCost": 0.193, "context": 262144, "maxOutput": 32000, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
170
+ {"value": "qwen/qwen3-coder-30b-a3b-instruct", "label": "Qwen: Qwen3 Coder 30B A3B Instruct", "provider": "qwen", "inputCost": 0.07, "outputCost": 0.28, "context": 262144, "maxOutput": 262144, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
171
+ {"value": "qwen/qwen3-coder-flash", "label": "Qwen: Qwen3 Coder Flash", "provider": "qwen", "inputCost": 0.195, "outputCost": 0.975, "context": 1000000, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
172
+ {"value": "qwen/qwen3-coder-next", "label": "Qwen: Qwen3 Coder Next", "provider": "qwen", "inputCost": 0.12, "outputCost": 0.8, "context": 262144, "maxOutput": 262144, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
173
+ {"value": "qwen/qwen3-coder-plus", "label": "Qwen: Qwen3 Coder Plus", "provider": "qwen", "inputCost": 0.65, "outputCost": 3.25, "context": 1000000, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
174
+ {"value": "qwen/qwen3-max", "label": "Qwen: Qwen3 Max", "provider": "qwen", "inputCost": 0.78, "outputCost": 3.9, "context": 262144, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
175
+ {"value": "qwen/qwen3-max-thinking", "label": "Qwen: Qwen3 Max Thinking", "provider": "qwen", "inputCost": 0.78, "outputCost": 3.9, "context": 262144, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
176
+ {"value": "qwen/qwen3-next-80b-a3b-instruct", "label": "Qwen: Qwen3 Next 80B A3B Instruct", "provider": "qwen", "inputCost": 0.1, "outputCost": 1.1, "context": 262144, "maxOutput": 262144, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
177
+ {"value": "qwen/qwen3-vl-235b-a22b-instruct", "label": "Qwen: Qwen3 VL 235B A22B Instruct", "provider": "qwen", "inputCost": 0.21, "outputCost": 1.9, "context": 262144, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
178
+ {"value": "qwen/qwen3-vl-235b-a22b-thinking", "label": "Qwen: Qwen3 VL 235B A22B Thinking", "provider": "qwen", "inputCost": 0.4, "outputCost": 4.0, "context": 131072, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
179
+ {"value": "qwen/qwen3-vl-30b-a3b-instruct", "label": "Qwen: Qwen3 VL 30B A3B Instruct", "provider": "qwen", "inputCost": 0.13, "outputCost": 0.52, "context": 262144, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
180
+ {"value": "qwen/qwen3-vl-30b-a3b-thinking", "label": "Qwen: Qwen3 VL 30B A3B Thinking", "provider": "qwen", "inputCost": 0.2, "outputCost": 2.4, "context": 262144, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
181
+ {"value": "qwen/qwen3-vl-32b-instruct", "label": "Qwen: Qwen3 VL 32B Instruct", "provider": "qwen", "inputCost": 0.104, "outputCost": 0.416, "context": 131072, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
182
+ {"value": "qwen/qwen3-vl-8b-instruct", "label": "Qwen: Qwen3 VL 8B Instruct", "provider": "qwen", "inputCost": 0.117, "outputCost": 0.455, "context": 262144, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": false, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
183
+ {"value": "qwen/qwen3-vl-8b-thinking", "label": "Qwen: Qwen3 VL 8B Thinking", "provider": "qwen", "inputCost": 0.18, "outputCost": 2.1, "context": 131072, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
184
+ {"value": "qwen/qwen3.5-122b-a10b", "label": "Qwen: Qwen3.5-122B-A10B", "provider": "qwen", "inputCost": 0.26, "outputCost": 2.08, "context": 262144, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
185
+ {"value": "qwen/qwen3.5-27b", "label": "Qwen: Qwen3.5-27B", "provider": "qwen", "inputCost": 0.195, "outputCost": 1.56, "context": 262144, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
186
+ {"value": "qwen/qwen3.5-35b-a3b", "label": "Qwen: Qwen3.5-35B-A3B", "provider": "qwen", "inputCost": 0.25, "outputCost": 1.25, "context": 262144, "maxOutput": 262144, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
187
+ {"value": "qwen/qwen3.5-397b-a17b", "label": "Qwen: Qwen3.5 397B A17B", "provider": "qwen", "inputCost": 0.39, "outputCost": 2.34, "context": 262144, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
188
+ {"value": "qwen/qwen3.5-flash-02-23", "label": "Qwen: Qwen3.5-Flash", "provider": "qwen", "inputCost": 0.065, "outputCost": 0.26, "context": 1000000, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
189
+ {"value": "qwen/qwen3.5-plus-02-15", "label": "Qwen: Qwen3.5 Plus 2026-02-15", "provider": "qwen", "inputCost": 0.26, "outputCost": 1.56, "context": 1000000, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
190
+ {"value": "qwen/qwen3.5-plus-20260420", "label": "Qwen: Qwen3.5 Plus 2026-04-20", "provider": "qwen", "inputCost": 0.3, "outputCost": 1.8, "context": 1000000, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
191
+ {"value": "qwen/qwen3.6-27b", "label": "Qwen: Qwen3.6 27B", "provider": "qwen", "inputCost": 0.6, "outputCost": 3.6, "context": 262144, "maxOutput": 262144, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
192
+ {"value": "qwen/qwen3.6-35b-a3b", "label": "Qwen: Qwen3.6 35B A3B", "provider": "qwen", "inputCost": 0.14, "outputCost": 1.0, "context": 262144, "maxOutput": 262144, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
193
+ {"value": "qwen/qwen3.6-flash", "label": "Qwen: Qwen3.6 Flash", "provider": "qwen", "inputCost": 0.188, "outputCost": 1.125, "context": 1000000, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
194
+ {"value": "qwen/qwen3.6-max-preview", "label": "Qwen: Qwen3.6 Max Preview", "provider": "qwen", "inputCost": 1.027, "outputCost": 6.162, "context": 262144, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
195
+ {"value": "qwen/qwen3.6-plus", "label": "Qwen: Qwen3.6 Plus", "provider": "qwen", "inputCost": 0.325, "outputCost": 1.95, "context": 1000000, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
196
+ {"value": "qwen/qwen3.7-flash", "label": "Qwen: Qwen3.7 Flash", "provider": "qwen", "inputCost": 0.03, "outputCost": 0.13, "context": 1000000, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
197
+ {"value": "qwen/qwen3.7-max", "label": "Qwen: Qwen3.7 Max", "provider": "qwen", "inputCost": 1.475, "outputCost": 4.425, "context": 1000000, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
198
+ {"value": "qwen/qwen3.7-plus", "label": "Qwen: Qwen3.7 Plus", "provider": "qwen", "inputCost": 0.32, "outputCost": 1.28, "context": 1000000, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
199
+ {"value": "qwen/qwen3.8-2.4t-a95b", "label": "Qwen: Qwen3.8 2.4T A95B", "provider": "qwen", "inputCost": 2.0, "outputCost": 6.0, "context": 1048576, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
200
+ {"value": "qwen/qwen3.8-27b", "label": "Qwen: Qwen3.8 27B", "provider": "qwen", "inputCost": 0.4, "outputCost": 3.0, "context": 1000000, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
201
+ {"value": "qwen/qwen3.8-max", "label": "Qwen: Qwen3.8 Max", "provider": "qwen", "inputCost": 2.0, "outputCost": 6.0, "context": 1000000, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
202
+ {"value": "x-ai/grok-4.20", "label": "SpaceXAI: Grok 4.20", "provider": "x-ai", "inputCost": 1.25, "outputCost": 2.5, "context": 2000000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
203
+ {"value": "x-ai/grok-4.3", "label": "SpaceXAI: Grok 4.3", "provider": "x-ai", "inputCost": 1.25, "outputCost": 2.5, "context": 1000000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
204
+ {"value": "x-ai/grok-4.5", "label": "SpaceXAI: Grok 4.5", "provider": "x-ai", "inputCost": 2.0, "outputCost": 6.0, "context": 500000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
205
+ {"value": "x-ai/grok-4.6", "label": "SpaceXAI: Grok 4.6", "provider": "x-ai", "inputCost": 2.0, "outputCost": 6.0, "context": 500000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
206
+ {"value": "x-ai/grok-build-0.1", "label": "SpaceXAI: Grok Build 0.1", "provider": "x-ai", "inputCost": 1.0, "outputCost": 2.0, "context": 256000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
207
+ {"value": "z-ai/glm-4.6v", "label": "Z.ai: GLM 4.6V", "provider": "z-ai", "inputCost": 0.3, "outputCost": 0.9, "context": 131072, "maxOutput": 32768, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
208
+ {"value": "z-ai/glm-5.3", "label": "Z.ai: GLM 5.3", "provider": "z-ai", "inputCost": 1.4, "outputCost": 4.4, "context": 1048576, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
209
+ {"value": "z-ai/glm-5v-turbo", "label": "Z.ai: GLM 5V Turbo", "provider": "z-ai", "inputCost": 1.2, "outputCost": 4.0, "context": 202752, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
210
+ {"value": "~anthropic/claude-fable-latest", "label": "Anthropic: Claude Fable Latest", "provider": "~anthropic", "inputCost": 10.0, "outputCost": 50.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
211
+ {"value": "~anthropic/claude-haiku-latest", "label": "Anthropic Claude Haiku Latest", "provider": "~anthropic", "inputCost": 1.0, "outputCost": 5.0, "context": 200000, "maxOutput": 64000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
212
+ {"value": "~anthropic/claude-opus-latest", "label": "Anthropic: Claude Opus Latest", "provider": "~anthropic", "inputCost": 5.0, "outputCost": 25.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
213
+ {"value": "~anthropic/claude-sonnet-latest", "label": "Anthropic Claude Sonnet Latest", "provider": "~anthropic", "inputCost": 2.0, "outputCost": 10.0, "context": 1000000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
214
+ {"value": "~google/gemini-flash-latest", "label": "Google Gemini Flash Latest", "provider": "~google", "inputCost": 0.375, "outputCost": 1.875, "context": 1048576, "maxOutput": 65536, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
215
+ {"value": "~moonshotai/kimi-latest", "label": "MoonshotAI Kimi Latest", "provider": "~moonshotai", "inputCost": 2.6, "outputCost": 13.0, "context": 1048576, "maxOutput": 974842, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
216
+ {"value": "~openai/gpt-latest", "label": "OpenAI GPT Latest", "provider": "~openai", "inputCost": 2.0, "outputCost": 10.0, "context": 1050000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
217
+ {"value": "~openai/gpt-mini-latest", "label": "OpenAI GPT Mini Latest", "provider": "~openai", "inputCost": 0.75, "outputCost": 4.5, "context": 400000, "maxOutput": 128000, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
218
+ {"value": "~x-ai/grok-latest", "label": "xAI: Grok Latest", "provider": "~x-ai", "inputCost": 2.0, "outputCost": 6.0, "context": 500000, "maxOutput": 8192, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]},
219
+ {"value": "~z-ai/glm-latest", "label": "Z.ai: GLM Latest", "provider": "~z-ai", "inputCost": 1.4, "outputCost": 4.4, "context": 1048576, "maxOutput": 131072, "supportsTools": true, "supportsReasoning": true, "harnessValidated": true, "platformAccessTier": ["pro", "tier_49", "tier_99"]}
220
+ ]
221
+ }
@@ -1,18 +1,28 @@
1
1
  /**
2
- * Shipped model catalog snapshot — Node side of PRD-076 W7.
2
+ * Shipped model catalog snapshot — CLI-side default list.
3
3
  *
4
4
  * The canonical source is `codekepler-backend/app/services/
5
- * model_catalog_snapshot.json` (admin dashboard edits it and publishes to
6
- * Supabase). `stage-runtime-app.sh` copies that file into every runtime
7
- * wheel at `runtime/app/services/model_catalog_snapshot.json`, so when
8
- * `@bahulam/runtime-<platform>-<arch>` is installed as a sibling optional
9
- * dep of `@bahulam/code`, the file is already on disk — we read from
10
- * there instead of maintaining a third copy in the CLI package.
5
+ * model_catalog_snapshot.json`. That file is copied into this package at
6
+ * publish time (see `scripts/sync-catalog.mjs`, wired to `prepublishOnly`)
7
+ * and lives at `src/config/model-catalog-default.json` inside the shipped
8
+ * CLI. Fresh installs see the up-to-date default catalog without needing
9
+ * to hit the backend on first launch.
10
+ *
11
+ * Legacy fallback: older installs may still have the file inside an
12
+ * `@bahulam/runtime-<platform>-<arch>` optional dep from the pre-server-
13
+ * agent-execution era. If our own copy isn't present, we try that path
14
+ * before giving up. This fallback can be removed once the runtime bundle
15
+ * is no longer published.
11
16
  */
12
17
 
13
18
  import * as fs from 'node:fs';
19
+ import * as path from 'node:path';
20
+ import { fileURLToPath } from 'node:url';
14
21
  import { runtimeSnapshotPath } from '../core/bundled-runtime.mjs';
15
22
 
23
+ const _dirname = path.dirname(fileURLToPath(import.meta.url));
24
+ const CLI_DEFAULT_CATALOG_PATH = path.join(_dirname, 'model-catalog-default.json');
25
+
16
26
  let _cache = null;
17
27
 
18
28
  // Snapshot rows are camelCase (matches how the backend delivers the
@@ -37,21 +47,46 @@ function normalizeSnapshotRow(row) {
37
47
  };
38
48
  }
39
49
 
50
+ function _readJson(p) {
51
+ try {
52
+ const raw = fs.readFileSync(p, 'utf-8');
53
+ const data = JSON.parse(raw);
54
+ const rows = Array.isArray(data?.models) ? data.models : [];
55
+ const normalized = rows.map(normalizeSnapshotRow).filter(Boolean);
56
+ return normalized.length ? normalized : null;
57
+ } catch {
58
+ return null;
59
+ }
60
+ }
61
+
40
62
  /**
41
- * Read the shipped catalog snapshot from the installed runtime bundle.
42
- * Returns an array of normalized rows (API-shape) or null if the runtime
43
- * isn't installed / the file is unreadable. Cached after first success.
63
+ * Read the shipped catalog snapshot. Tries CLI-bundled default first
64
+ * (`src/config/model-catalog-default.json`, refreshed at publish time
65
+ * via `scripts/sync-catalog.mjs`), then falls back to the legacy
66
+ * `@bahulam/runtime-*` bundle path for older installs. Cached after
67
+ * first success. Returns null if neither path yields data.
44
68
  */
45
69
  export function readShippedCatalog() {
46
70
  if (_cache !== null) return _cache;
47
- try {
48
- const raw = fs.readFileSync(runtimeSnapshotPath(), 'utf-8');
49
- const data = JSON.parse(raw);
50
- const rows = Array.isArray(data?.models) ? data.models : [];
51
- _cache = rows.map(normalizeSnapshotRow).filter(Boolean);
71
+
72
+ // Preferred: CLI-bundled default catalog.
73
+ const own = _readJson(CLI_DEFAULT_CATALOG_PATH);
74
+ if (own) {
75
+ _cache = own;
52
76
  return _cache;
77
+ }
78
+
79
+ // Legacy fallback: runtime wheel copy (pre-server-execution architecture).
80
+ try {
81
+ const runtime = _readJson(runtimeSnapshotPath());
82
+ if (runtime) {
83
+ _cache = runtime;
84
+ return _cache;
85
+ }
53
86
  } catch {
54
- _cache = null;
55
- return null;
87
+ // runtimeSnapshotPath() itself may throw when the optional dep is absent
56
88
  }
89
+
90
+ _cache = null;
91
+ return null;
57
92
  }
@@ -76,6 +76,23 @@ function sleep(ms) {
76
76
  return new Promise(resolve => setTimeout(resolve, ms));
77
77
  }
78
78
 
79
+ function envMs(name, fallback) {
80
+ const raw = Number(process.env[name] || fallback);
81
+ return Number.isFinite(raw) && raw > 0 ? raw : fallback;
82
+ }
83
+
84
+ function transportDebugEnabled() {
85
+ const raw = String(process.env.BAHULAM_TRANSPORT_DEBUG || '').toLowerCase();
86
+ return raw === '1' || raw === 'true' || raw === 'yes' || raw === 'on';
87
+ }
88
+
89
+ function transportDebug(message, data = {}) {
90
+ if (!transportDebugEnabled()) return;
91
+ try {
92
+ process.stderr.write(`[transport] ${message} ${JSON.stringify(data)}\n`);
93
+ } catch {}
94
+ }
95
+
79
96
  // Full jitter around the scheduled delay: pick a value in [delay*0.5, delay*1.5].
80
97
  // Spreads out reconnect storms so N clients dropping simultaneously don't
81
98
  // synchronize their retries. Clamped to the same 30s ceiling as the base delay.
@@ -223,6 +240,7 @@ export class TarangStreamClient {
223
240
  async *execute(instruction, context = {}, messages = null) {
224
241
  this._cancelled = false;
225
242
  this.currentTaskId = null;
243
+ this._firstEventTimedOut = false;
226
244
 
227
245
  // Bundled mode: spawn the local Python runtime on first turn.
228
246
  // After this, this.baseUrl points at http://127.0.0.1:<random-port>
@@ -233,6 +251,7 @@ export class TarangStreamClient {
233
251
  const body = { instruction, context };
234
252
  if (messages && messages.length > 0) body.messages = messages;
235
253
  if (this.sessionId) body.session_id = this.sessionId;
254
+ const requestId = `cli-${_uuidLike()}`;
236
255
 
237
256
  // daemon cache-guard hook. If BAHULAM_CAPTURE_REQUEST is set to a file
238
257
  // path, serialize the exact body that would go to /api/execute, write
@@ -260,6 +279,8 @@ export class TarangStreamClient {
260
279
  const headers = this._headers({
261
280
  'Accept': 'text/event-stream',
262
281
  'Content-Type': 'application/json',
282
+ 'X-Bahulam-Request-ID': requestId,
283
+ 'X-Request-ID': requestId,
263
284
  });
264
285
 
265
286
  // Abort controller so cancel() can break out of a stalled reader
@@ -268,6 +289,21 @@ export class TarangStreamClient {
268
289
  this._toolAbort = new AbortController();
269
290
 
270
291
  let response;
292
+ let connectTimedOut = false;
293
+ const connectTimeoutMs = envMs('BAHULAM_EXECUTE_CONNECT_TIMEOUT_MS', 60_000);
294
+ const connectStarted = Date.now();
295
+ const connectTimer = setTimeout(() => {
296
+ connectTimedOut = true;
297
+ try { this._abort.abort(); } catch {}
298
+ }, connectTimeoutMs);
299
+ transportDebug('execute.start', {
300
+ request_id: requestId,
301
+ url,
302
+ mode: this.mode,
303
+ session_id: this.sessionId || null,
304
+ messages: Array.isArray(messages) ? messages.length : 0,
305
+ body_bytes: Buffer.byteLength(JSON.stringify(body), 'utf8'),
306
+ });
271
307
  try {
272
308
  response = await fetch(url, {
273
309
  method: 'POST',
@@ -276,15 +312,39 @@ export class TarangStreamClient {
276
312
  signal: this._abort.signal,
277
313
  });
278
314
  } catch (err) {
315
+ clearTimeout(connectTimer);
279
316
  if (err.name === 'AbortError') {
317
+ if (connectTimedOut) {
318
+ const message = `Backend did not accept /api/execute within ${Math.round(connectTimeoutMs / 1000)}s (request ${requestId}).`;
319
+ transportDebug('execute.connect_timeout', {
320
+ request_id: requestId,
321
+ ms: Date.now() - connectStarted,
322
+ });
323
+ yield { type: EVENT_TYPES.ERROR, data: { message, request_id: requestId, fatal: true } };
324
+ }
280
325
  return;
281
326
  }
282
- yield { type: EVENT_TYPES.ERROR, data: { message: `Network error: ${err.message}. Check your connection or use --local mode.`, fatal: true } };
327
+ transportDebug('execute.network_error', {
328
+ request_id: requestId,
329
+ ms: Date.now() - connectStarted,
330
+ error: err.message,
331
+ code: err?.cause?.code || err?.code || '',
332
+ });
333
+ yield { type: EVENT_TYPES.ERROR, data: { message: `Network error: ${err.message}. Check your connection or use --local mode.`, request_id: requestId, fatal: true } };
283
334
  return;
284
335
  }
336
+ clearTimeout(connectTimer);
337
+ const responseRequestId = response.headers.get('x-request-id') || requestId;
338
+ transportDebug('execute.response', {
339
+ request_id: responseRequestId,
340
+ status: response.status,
341
+ ok: response.ok,
342
+ ms: Date.now() - connectStarted,
343
+ task_id: response.headers.get('x-task-id') || null,
344
+ });
285
345
 
286
346
  if (response.status === 401) {
287
- yield { type: EVENT_TYPES.ERROR, data: { message: 'Authentication failed. Run `bahulam login` to re-authenticate.', fatal: true } };
347
+ yield { type: EVENT_TYPES.ERROR, data: { message: 'Authentication failed. Run `bahulam login` to re-authenticate.', request_id: responseRequestId, fatal: true } };
288
348
  return;
289
349
  }
290
350
  if (response.status === 429) {
@@ -305,6 +365,7 @@ export class TarangStreamClient {
305
365
  rate_limit: detail?.rate_limit || null,
306
366
  action: detail?.action || null,
307
367
  pricing_url: normalizeBillingBrandCopy(detail?.pricing_url || null),
368
+ request_id: responseRequestId,
308
369
  fatal: true,
309
370
  },
310
371
  };
@@ -312,7 +373,7 @@ export class TarangStreamClient {
312
373
  }
313
374
  if (!response.ok) {
314
375
  const text = await response.text().catch(() => 'Unknown error');
315
- yield { type: EVENT_TYPES.ERROR, data: { message: `Backend error ${response.status}: ${text}`, fatal: true } };
376
+ yield { type: EVENT_TYPES.ERROR, data: { message: `Backend error ${response.status}: ${text}`, request_id: responseRequestId, fatal: true } };
316
377
  return;
317
378
  }
318
379
 
@@ -322,6 +383,17 @@ export class TarangStreamClient {
322
383
  if (this._cancelled) {
323
384
  return;
324
385
  }
386
+ if (this._firstEventTimedOut) {
387
+ yield {
388
+ type: EVENT_TYPES.ERROR,
389
+ data: {
390
+ message: `Backend opened the stream but sent no SSE events within ${Math.round(envMs('BAHULAM_FIRST_EVENT_TIMEOUT_MS', 60_000) / 1000)}s (request ${responseRequestId}).`,
391
+ request_id: responseRequestId,
392
+ fatal: true,
393
+ },
394
+ };
395
+ return;
396
+ }
325
397
  yield* this._reconnectAfterDrop(err);
326
398
  }
327
399
  }
@@ -330,18 +402,37 @@ export class TarangStreamClient {
330
402
  const taskId = response.headers.get('X-Task-ID');
331
403
  if (taskId) this.currentTaskId = taskId;
332
404
 
333
- for await (const parsed of this._parseSSE(response)) {
334
- if (this._cancelled) return;
335
- await this._waitIfPaused();
336
- if (this._cancelled) return;
405
+ let sawFirstEvent = false;
406
+ const firstEventTimeoutMs = envMs('BAHULAM_FIRST_EVENT_TIMEOUT_MS', 60_000);
407
+ const firstEventTimer = setTimeout(() => {
408
+ if (sawFirstEvent || this._cancelled) return;
409
+ this._firstEventTimedOut = true;
410
+ try { this._abort?.abort(); } catch {}
411
+ }, firstEventTimeoutMs);
412
+ try {
413
+ for await (const parsed of this._parseSSE(response)) {
414
+ if (!sawFirstEvent) {
415
+ sawFirstEvent = true;
416
+ clearTimeout(firstEventTimer);
417
+ transportDebug('execute.first_event', {
418
+ task_id: this.currentTaskId || null,
419
+ event: parsed.event || null,
420
+ });
421
+ }
422
+ if (this._cancelled) return;
423
+ await this._waitIfPaused();
424
+ if (this._cancelled) return;
337
425
 
338
- if (parsed.id != null) this.lastEventId = parsed.id;
339
- if (parsed.retry != null) this.retryDelayMs = parsed.retry;
340
- if (parsed.data?.task_id) this.currentTaskId = parsed.data.task_id;
426
+ if (parsed.id != null) this.lastEventId = parsed.id;
427
+ if (parsed.retry != null) this.retryDelayMs = parsed.retry;
428
+ if (parsed.data?.task_id) this.currentTaskId = parsed.data.task_id;
341
429
 
342
- for await (const event of this._handleStreamEvent(parsed)) {
343
- yield event;
430
+ for await (const event of this._handleStreamEvent(parsed)) {
431
+ yield event;
432
+ }
344
433
  }
434
+ } finally {
435
+ clearTimeout(firstEventTimer);
345
436
  }
346
437
  }
347
438
 
@@ -44,6 +44,8 @@ export function createToolExecutor({
44
44
  checkpoints = null,
45
45
  hookRunner = null,
46
46
  interactionHandler = null,
47
+ onAutoRegisterStart = null,
48
+ onAutoRegisterDone = null,
47
49
  } = {}) {
48
50
  // Cross-session memory cache. Ships in getAgentContext() on every turn,
49
51
  // so we need it to be byte-identical when the underlying disk file hasn't
@@ -94,9 +96,19 @@ export function createToolExecutor({
94
96
  // for the current directory to be usable — the user chose to be here.
95
97
  // Opt out via BAHULAM_SKIP_AUTO_REGISTER=true for tests or headless
96
98
  // scripts that want a truly empty registry.
99
+ let autoRegisterPromise = Promise.resolve(null);
97
100
  if (process.env.BAHULAM_SKIP_AUTO_REGISTER !== 'true') {
98
- projectRegistry.register(process.cwd(), { bypassProjectMarkers: true })
99
- .catch(() => { /* silent model can register explicitly */ });
101
+ const autoRegisterRoot = process.cwd();
102
+ try { onAutoRegisterStart?.(autoRegisterRoot); } catch { /* status hooks are best-effort */ }
103
+ autoRegisterPromise = projectRegistry.register(autoRegisterRoot, { bypassProjectMarkers: true })
104
+ .then((result) => {
105
+ try { onAutoRegisterDone?.(null, result); } catch { /* status hooks are best-effort */ }
106
+ return result;
107
+ })
108
+ .catch((err) => {
109
+ try { onAutoRegisterDone?.(err, null); } catch { /* status hooks are best-effort */ }
110
+ return null;
111
+ });
100
112
  }
101
113
  let _searchCodeUsed = false; // tracks if search_code was called (for read_file nudge)
102
114
  let _readOnlyCacheGeneration = 0;
@@ -2203,6 +2215,10 @@ print('OK: replaced')
2203
2215
  return projectRegistry.resources();
2204
2216
  },
2205
2217
 
2218
+ waitForAutoRegister() {
2219
+ return autoRegisterPromise;
2220
+ },
2221
+
2206
2222
  async registerProjectRoots(roots, { forceRefresh = false } = {}) {
2207
2223
  const results = [];
2208
2224
  const seen = new Set();
@@ -74,6 +74,7 @@ import { buildResumeHistory, combineResumeSummaries, getRecentSessions, getSessi
74
74
  import { decideResumeMode, projectedTokensForChoice, formatTokens as formatCtxTokens } from '../core/resume-mode.mjs';
75
75
  import { appendTask, ensureTaskFiles, loadTaskBoard, moveTask, removeTask, taskCounts, TASK_FILES, updateTask } from '../core/tasks.mjs';
76
76
  import { applyCompactSummary, localCompactSummary, parseCompactTailCount, prepareCompactHistory } from '../core/compact-history.mjs';
77
+ import { startSpinner as startInlineSpinner } from '../ui/spinner.mjs';
77
78
  import {
78
79
  appendVisionAnalysisToInstruction,
79
80
  appendDocumentsToInstruction,
@@ -3674,7 +3675,28 @@ export async function startTerminalRepl() {
3674
3675
  return res;
3675
3676
  };
3676
3677
 
3677
- let toolExecutor = createToolExecutor({ checkpoints, hookRunner, interactionHandler: askUserInteraction });
3678
+ function makeToolExecutor({ showIndexStatus = false } = {}) {
3679
+ const shouldShowIndexStatus = showIndexStatus && process.stderr.isTTY && !term().plain;
3680
+ let stopIndexSpinner = null;
3681
+ return createToolExecutor({
3682
+ checkpoints,
3683
+ hookRunner,
3684
+ interactionHandler: askUserInteraction,
3685
+ onAutoRegisterStart: shouldShowIndexStatus ? (root) => {
3686
+ const name = path.basename(root || safeCwd()) || root || 'project';
3687
+ stopIndexSpinner?.();
3688
+ stopIndexSpinner = startInlineSpinner(
3689
+ `Indexing ${name} so tools can read and search this project...`
3690
+ );
3691
+ } : null,
3692
+ onAutoRegisterDone: shouldShowIndexStatus ? () => {
3693
+ stopIndexSpinner?.();
3694
+ stopIndexSpinner = null;
3695
+ } : null,
3696
+ });
3697
+ }
3698
+
3699
+ let toolExecutor = makeToolExecutor({ showIndexStatus: true });
3678
3700
  const skipPerms = cliArgs.skipPermissions;
3679
3701
  let approval = new ApprovalManager({ autoApprove: skipPerms, cwd: safeCwd(), policy: effectivePolicy.policy });
3680
3702
 
@@ -3768,7 +3790,7 @@ export async function startTerminalRepl() {
3768
3790
  checkpoints = new CheckpointManager(safeCwd());
3769
3791
  effectivePolicy = loadEffectivePolicy({ cwd: safeCwd() });
3770
3792
  hookRunner = new HookRunner({ cwd: safeCwd() });
3771
- toolExecutor = createToolExecutor({ checkpoints, hookRunner, interactionHandler: askUserInteraction });
3793
+ toolExecutor = makeToolExecutor();
3772
3794
  approval = new ApprovalManager({ autoApprove: skipPerms, cwd: safeCwd(), policy: effectivePolicy.policy });
3773
3795
  if (ctx._rl) approval.setReadline(ctx._rl);
3774
3796
  sessionMgr = new SessionManager(safeCwd());
@@ -3948,7 +3970,7 @@ export async function startTerminalRepl() {
3948
3970
  checkpoints = new CheckpointManager(safeCwd());
3949
3971
  effectivePolicy = loadEffectivePolicy({ cwd: safeCwd() });
3950
3972
  hookRunner = new HookRunner({ cwd: safeCwd(), sessionId });
3951
- toolExecutor = createToolExecutor({ checkpoints, hookRunner, interactionHandler: askUserInteraction });
3973
+ toolExecutor = makeToolExecutor();
3952
3974
  approval = new ApprovalManager({ autoApprove: skipPerms, cwd: safeCwd(), policy: effectivePolicy.policy });
3953
3975
  if (ctx._rl) approval.setReadline(ctx._rl);
3954
3976
  sessionMgr = new SessionManager(safeCwd());
@@ -54,6 +54,10 @@ const IGNORED_DIRS = new Set([
54
54
  '.git', '.bahulam', '.next', '.venv', '__pycache__',
55
55
  'build', 'dist', 'node_modules', 'venv',
56
56
  ]);
57
+ const ENV_PROBE_TIMEOUT_MS = Math.max(
58
+ 50,
59
+ Number(process.env.BAHULAM_ENV_PROBE_TIMEOUT_MS || 500) || 500,
60
+ );
57
61
 
58
62
  // Files or directories whose presence at the root implies this IS a project.
59
63
  // One is enough. Kept broad so we accept Node/Python/Rust/Go/Ruby/Java/C++
@@ -227,7 +231,7 @@ function commandVersion(command, args = ['--version']) {
227
231
  try {
228
232
  const result = spawnSync(command, args, {
229
233
  encoding: 'utf-8',
230
- timeout: 2000,
234
+ timeout: ENV_PROBE_TIMEOUT_MS,
231
235
  windowsHide: true,
232
236
  });
233
237
  if (result.error || result.status !== 0) return '';
@@ -244,7 +248,6 @@ function detectEnvironment() {
244
248
  ['git', 'git'],
245
249
  ['npm', 'npm'],
246
250
  ['uv', 'uv'],
247
- ['pytest', 'pytest'],
248
251
  ['docker', 'docker'],
249
252
  ];
250
253
  const tools = {};