claude-code-router-config 1.0.1 → 1.1.0
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/README.md +169 -8
- package/cli/analytics.js +509 -0
- package/cli/benchmark.js +342 -0
- package/cli/commands.js +300 -0
- package/config/smart-intent-router.js +543 -0
- package/docs/v1.1.0-FEATURES.md +752 -0
- package/logging/enhanced-logger.js +410 -0
- package/logging/health-monitor.js +472 -0
- package/logging/middleware.js +384 -0
- package/package.json +29 -6
- package/plugins/plugin-manager.js +607 -0
- package/templates/README.md +161 -0
- package/templates/balanced.json +111 -0
- package/templates/cost-optimized.json +96 -0
- package/templates/development.json +104 -0
- package/templates/performance-optimized.json +88 -0
- package/templates/quality-focused.json +105 -0
- package/web-dashboard/public/css/dashboard.css +575 -0
- package/web-dashboard/public/index.html +308 -0
- package/web-dashboard/public/js/dashboard.js +512 -0
- package/web-dashboard/server.js +352 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Configuration Templates
|
|
2
|
+
|
|
3
|
+
This directory contains pre-configured templates optimized for different use cases. Each template provides a complete configuration with optimized provider selection, routing rules, and settings.
|
|
4
|
+
|
|
5
|
+
## Available Templates
|
|
6
|
+
|
|
7
|
+
### 1. 🚀 `performance-optimized.json`
|
|
8
|
+
**Best for**: Real-time applications, chatbots, time-sensitive tasks
|
|
9
|
+
- **Priority**: Speed and low latency
|
|
10
|
+
- **Expected Latency**: 500-2000ms
|
|
11
|
+
- **Cost Profile**: Low to Medium
|
|
12
|
+
- **Primary Provider**: Gemini Flash (fastest)
|
|
13
|
+
- **Fallback**: OpenAI Mini, Qwen Turbo
|
|
14
|
+
|
|
15
|
+
### 2. 💰 `cost-optimized.json`
|
|
16
|
+
**Best for**: Budget-conscious users, bulk processing, non-critical tasks
|
|
17
|
+
- **Priority**: Maximum cost savings
|
|
18
|
+
- **Expected Savings**: 70-90% vs premium models
|
|
19
|
+
- **Cost Profile**: Very Low
|
|
20
|
+
- **Primary Provider**: Qwen Turbo (cheapest)
|
|
21
|
+
- **Features**: Budget tracking and alerts
|
|
22
|
+
|
|
23
|
+
### 3. 🎯 `quality-focused.json`
|
|
24
|
+
**Best for**: Critical applications, complex reasoning, professional work
|
|
25
|
+
- **Priority**: Highest quality and accuracy
|
|
26
|
+
- **Expected Latency**: 3-10 seconds
|
|
27
|
+
- **Cost Profile**: High
|
|
28
|
+
- **Primary Provider**: Claude Sonnet 4 (best reasoning)
|
|
29
|
+
- **Features**: Enhanced reasoning, chain-of-thought
|
|
30
|
+
|
|
31
|
+
### 4. 💻 `development.json`
|
|
32
|
+
**Best for**: Developers, coding assistance, software engineering
|
|
33
|
+
- **Priority**: Code generation and debugging
|
|
34
|
+
- **Specialized**: Coding models and frameworks
|
|
35
|
+
- **Cost Profile**: Medium
|
|
36
|
+
- **Primary Provider**: OpenAI GPT-4o Mini (best for coding)
|
|
37
|
+
- **Features**: Code context awareness, project intelligence
|
|
38
|
+
|
|
39
|
+
### 5. ⚖️ `balanced.json` **(Default)**
|
|
40
|
+
**Best for**: General use, mixed workloads, everyday tasks
|
|
41
|
+
- **Priority**: Balanced cost-performance-quality
|
|
42
|
+
- **Expected Latency**: 2-4 seconds
|
|
43
|
+
- **Cost Profile**: Medium
|
|
44
|
+
- **Primary Provider**: OpenAI GPT-4o (versatile)
|
|
45
|
+
- **Features**: Adaptive routing, auto-optimization
|
|
46
|
+
|
|
47
|
+
## Usage
|
|
48
|
+
|
|
49
|
+
### Apply a Template:
|
|
50
|
+
```bash
|
|
51
|
+
# Using CLI (recommended)
|
|
52
|
+
ccr config template performance-optimized
|
|
53
|
+
ccr config template cost-optimized
|
|
54
|
+
ccr config template quality-focused
|
|
55
|
+
ccr config template development
|
|
56
|
+
ccr config template balanced
|
|
57
|
+
|
|
58
|
+
# Manual copy
|
|
59
|
+
cp templates/performance-optimized.json ~/.claude-code-router/config.json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Compare Templates:
|
|
63
|
+
```bash
|
|
64
|
+
# See quick comparison
|
|
65
|
+
ccr config compare --all
|
|
66
|
+
|
|
67
|
+
# Compare specific templates
|
|
68
|
+
ccr config compare performance-optimized cost-optimized
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Template Features
|
|
72
|
+
|
|
73
|
+
### Performance Optimization
|
|
74
|
+
- Request timeout settings
|
|
75
|
+
- Retry policies
|
|
76
|
+
- Connection pooling
|
|
77
|
+
- Caching strategies
|
|
78
|
+
|
|
79
|
+
### Cost Management
|
|
80
|
+
- Budget limits and alerts
|
|
81
|
+
- Cost tracking
|
|
82
|
+
- Provider cost analysis
|
|
83
|
+
- Usage optimization
|
|
84
|
+
|
|
85
|
+
### Quality Enhancement
|
|
86
|
+
- Temperature settings
|
|
87
|
+
- Model-specific parameters
|
|
88
|
+
- Prompt optimization
|
|
89
|
+
- Response validation
|
|
90
|
+
|
|
91
|
+
### Development Tools
|
|
92
|
+
- Code context awareness
|
|
93
|
+
- Language-specific optimization
|
|
94
|
+
- Debug mode
|
|
95
|
+
- Testing configurations
|
|
96
|
+
|
|
97
|
+
## Customization
|
|
98
|
+
|
|
99
|
+
Templates can be customized by:
|
|
100
|
+
1. Copying a template as a base
|
|
101
|
+
2. Modifying providers and models
|
|
102
|
+
3. Adjusting routing rules
|
|
103
|
+
4. Fine-tuning parameters
|
|
104
|
+
5. Adding custom features
|
|
105
|
+
|
|
106
|
+
Example customization:
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"customSetting": {
|
|
110
|
+
"myPreference": true,
|
|
111
|
+
"specificModel": "claude-sonnet-4-latest"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Switching Templates
|
|
117
|
+
|
|
118
|
+
To switch between templates:
|
|
119
|
+
```bash
|
|
120
|
+
# Backup current config
|
|
121
|
+
ccr config backup
|
|
122
|
+
|
|
123
|
+
# Apply new template
|
|
124
|
+
ccr config template quality-focused
|
|
125
|
+
|
|
126
|
+
# Verify configuration
|
|
127
|
+
ccr config validate
|
|
128
|
+
|
|
129
|
+
# Test providers
|
|
130
|
+
ccr benchmark full
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Recommendations
|
|
134
|
+
|
|
135
|
+
| Use Case | Recommended Template |
|
|
136
|
+
|----------|---------------------|
|
|
137
|
+
| **Chat Applications** | performance-optimized |
|
|
138
|
+
| **Data Processing** | cost-optimized |
|
|
139
|
+
| **Research & Analysis** | quality-focused |
|
|
140
|
+
| **Software Development** | development |
|
|
141
|
+
| **General Purpose** | balanced |
|
|
142
|
+
|
|
143
|
+
## Tips
|
|
144
|
+
|
|
145
|
+
1. **Start with balanced** if unsure - it works well for most cases
|
|
146
|
+
2. **Monitor costs** when using quality-focused templates
|
|
147
|
+
3. **Test latency** with performance-optimized for your specific use case
|
|
148
|
+
4. **Customize** templates based on your actual usage patterns
|
|
149
|
+
5. **Backup** configurations before switching templates
|
|
150
|
+
|
|
151
|
+
## Template Comparison
|
|
152
|
+
|
|
153
|
+
| Feature | Performance | Cost | Quality | Development | Balanced |
|
|
154
|
+
|---------|-------------|------|---------|--------------|----------|
|
|
155
|
+
| **Speed** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
|
156
|
+
| **Cost** | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
|
|
157
|
+
| **Quality** | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
|
158
|
+
| **Coding** | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
|
159
|
+
| **Best For** | Speed | Budget | Accuracy | Development | Everything |
|
|
160
|
+
|
|
161
|
+
Choose the template that best matches your priorities and use case!
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"LOG": true,
|
|
3
|
+
"LOG_LEVEL": "info",
|
|
4
|
+
"API_TIMEOUT_MS": 30000,
|
|
5
|
+
"CUSTOM_ROUTER_PATH": "$HOME/.claude-code-router/intent-router.js",
|
|
6
|
+
|
|
7
|
+
"Providers": [
|
|
8
|
+
{
|
|
9
|
+
"name": "openai",
|
|
10
|
+
"api_base_url": "https://api.openai.com/v1/chat/completions",
|
|
11
|
+
"api_key": "$OPENAI_API_KEY",
|
|
12
|
+
"models": ["gpt-4o", "gpt-4o-mini", "gpt-4-turbo"],
|
|
13
|
+
"transformer": {
|
|
14
|
+
"use": []
|
|
15
|
+
},
|
|
16
|
+
"priority": 1,
|
|
17
|
+
"description": "Versatile performer for most tasks",
|
|
18
|
+
"strengths": ["coding", "reasoning", "general"]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "anthropic",
|
|
22
|
+
"api_base_url": "https://api.anthropic.com/v1/messages",
|
|
23
|
+
"api_key": "$ANTHROPIC_API_KEY",
|
|
24
|
+
"models": ["claude-3-5-sonnet-latest", "claude-sonnet-4-latest"],
|
|
25
|
+
"transformer": {
|
|
26
|
+
"use": ["Anthropic"]
|
|
27
|
+
},
|
|
28
|
+
"priority": 2,
|
|
29
|
+
"description": "Excellent for analysis and complex reasoning",
|
|
30
|
+
"strengths": ["analysis", "writing", "reasoning"]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "gemini",
|
|
34
|
+
"api_base_url": "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions",
|
|
35
|
+
"api_key": "$GEMINI_API_KEY",
|
|
36
|
+
"models": ["gemini-2.5-flash", "gemini-2.5-pro"],
|
|
37
|
+
"transformer": {
|
|
38
|
+
"use": ["gemini"]
|
|
39
|
+
},
|
|
40
|
+
"priority": 3,
|
|
41
|
+
"description": "Fast with large context and good quality",
|
|
42
|
+
"strengths": ["speed", "context", "multilingual"]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "qwen",
|
|
46
|
+
"api_base_url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",
|
|
47
|
+
"api_key": "$QWEN_API_KEY",
|
|
48
|
+
"models": ["qwen-plus", "qwen-max"],
|
|
49
|
+
"transformer": {
|
|
50
|
+
"use": []
|
|
51
|
+
},
|
|
52
|
+
"priority": 4,
|
|
53
|
+
"description": "Cost-effective with good performance",
|
|
54
|
+
"strengths": ["cost", "multilingual", "coding"]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "glm",
|
|
58
|
+
"api_base_url": "https://api.z.ai/api/paas/v4/chat/completions",
|
|
59
|
+
"api_key": "$GLM_API_KEY",
|
|
60
|
+
"models": ["glm-4.6", "glm-4.5"],
|
|
61
|
+
"transformer": {
|
|
62
|
+
"use": []
|
|
63
|
+
},
|
|
64
|
+
"priority": 5,
|
|
65
|
+
"description": "Specialized in Chinese and multilingual tasks",
|
|
66
|
+
"strengths": ["multilingual", "translation", "chinese"]
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
|
|
70
|
+
"Router": {
|
|
71
|
+
"default": "openai,gpt-4o",
|
|
72
|
+
"background": "gemini,gemini-2.5-flash",
|
|
73
|
+
"think": "anthropic,claude-3-5-sonnet-latest",
|
|
74
|
+
"longContext": "gemini,gemini-2.5-pro",
|
|
75
|
+
"longContextThreshold": 100000,
|
|
76
|
+
"Balanced": {
|
|
77
|
+
"enabled": true,
|
|
78
|
+
"adaptiveRouting": true,
|
|
79
|
+
"costAware": true,
|
|
80
|
+
"performanceAware": true
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
"BalancedOptimization": {
|
|
85
|
+
"costQualityRatio": 0.7,
|
|
86
|
+
"performanceWeight": 0.6,
|
|
87
|
+
"fallbackStrategy": "cost_first",
|
|
88
|
+
"adaptiveThreshold": true
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
"AutoOptimization": {
|
|
92
|
+
"enabled": true,
|
|
93
|
+
"learningPeriod": 7,
|
|
94
|
+
"performanceTracking": true,
|
|
95
|
+
"costMonitoring": true,
|
|
96
|
+
"automaticTuning": false
|
|
97
|
+
},
|
|
98
|
+
|
|
99
|
+
"description": "Balanced configuration providing good mix of cost, speed, and quality",
|
|
100
|
+
"useCase": "Best for general use cases, balanced workloads, and users who want it all",
|
|
101
|
+
"optimizationTarget": "Balanced cost-performance-quality ratio",
|
|
102
|
+
"costProfile": "Medium",
|
|
103
|
+
"expectedLatency": "2-4 seconds",
|
|
104
|
+
"qualityLevel": "High",
|
|
105
|
+
"recommendedFor": [
|
|
106
|
+
"General chat",
|
|
107
|
+
"Mixed workloads",
|
|
108
|
+
"Everyday tasks",
|
|
109
|
+
"Balanced requirements"
|
|
110
|
+
]
|
|
111
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"LOG": true,
|
|
3
|
+
"LOG_LEVEL": "warn",
|
|
4
|
+
"API_TIMEOUT_MS": 30000,
|
|
5
|
+
"CUSTOM_ROUTER_PATH": "$HOME/.claude-code-router/intent-router.js",
|
|
6
|
+
|
|
7
|
+
"Providers": [
|
|
8
|
+
{
|
|
9
|
+
"name": "qwen",
|
|
10
|
+
"api_base_url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",
|
|
11
|
+
"api_key": "$QWEN_API_KEY",
|
|
12
|
+
"models": ["qwen-turbo", "qwen-plus"],
|
|
13
|
+
"transformer": {
|
|
14
|
+
"use": []
|
|
15
|
+
},
|
|
16
|
+
"priority": 1,
|
|
17
|
+
"description": "Most cost-effective for general tasks",
|
|
18
|
+
"estimatedCost": "$0.0003 per 1K tokens"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "gemini",
|
|
22
|
+
"api_base_url": "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions",
|
|
23
|
+
"api_key": "$GEMINI_API_KEY",
|
|
24
|
+
"models": ["gemini-2.5-flash"],
|
|
25
|
+
"transformer": {
|
|
26
|
+
"use": ["gemini"]
|
|
27
|
+
},
|
|
28
|
+
"priority": 2,
|
|
29
|
+
"description": "Very affordable with good quality",
|
|
30
|
+
"estimatedCost": "$0.000075 per 1K tokens"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "glm",
|
|
34
|
+
"api_base_url": "https://api.z.ai/api/paas/v4/chat/completions",
|
|
35
|
+
"api_key": "$GLM_API_KEY",
|
|
36
|
+
"models": ["glm-4.5", "glm-4.6"],
|
|
37
|
+
"transformer": {
|
|
38
|
+
"use": []
|
|
39
|
+
},
|
|
40
|
+
"priority": 3,
|
|
41
|
+
"description": "Cost-effective for multilingual tasks",
|
|
42
|
+
"estimatedCost": "$0.0005 per 1K tokens"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "openai",
|
|
46
|
+
"api_base_url": "https://api.openai.com/v1/chat/completions",
|
|
47
|
+
"api_key": "$OPENAI_API_KEY",
|
|
48
|
+
"models": ["gpt-4o-mini"],
|
|
49
|
+
"transformer": {
|
|
50
|
+
"use": []
|
|
51
|
+
},
|
|
52
|
+
"priority": 4,
|
|
53
|
+
"description": "Fallback for when quality is critical",
|
|
54
|
+
"estimatedCost": "$0.00015 per 1K tokens"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
|
|
58
|
+
"Router": {
|
|
59
|
+
"default": "qwen,qwen-turbo",
|
|
60
|
+
"background": "qwen,qwen-turbo",
|
|
61
|
+
"think": "gemini,gemini-2.5-flash",
|
|
62
|
+
"longContext": "gemini,gemini-2.5-flash",
|
|
63
|
+
"longContextThreshold": 100000,
|
|
64
|
+
"CostOptimization": {
|
|
65
|
+
"enabled": true,
|
|
66
|
+
"budgetAlerts": true,
|
|
67
|
+
"dailyBudget": 10.0,
|
|
68
|
+
"preferCheaper": true,
|
|
69
|
+
"costTracking": true
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
"BudgetManagement": {
|
|
74
|
+
"dailyLimit": 10.0,
|
|
75
|
+
"monthlyLimit": 100.0,
|
|
76
|
+
"alertThreshold": 0.8,
|
|
77
|
+
"trackByProvider": true,
|
|
78
|
+
"cheapestFirstFallback": true
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
"CostTracking": {
|
|
82
|
+
"enabled": true,
|
|
83
|
+
"granularTracking": true,
|
|
84
|
+
"reporting": "daily",
|
|
85
|
+
"alerts": {
|
|
86
|
+
"daily": true,
|
|
87
|
+
"threshold": 5.0
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
"description": "Cost-optimized configuration minimizing expenses while maintaining good quality",
|
|
92
|
+
"useCase": "Best for budget-conscious users, bulk processing, and non-critical tasks",
|
|
93
|
+
"expectedSavings": "70-90% compared to premium models",
|
|
94
|
+
"costProfile": "Very Low",
|
|
95
|
+
"qualityLevel": "Good for most tasks"
|
|
96
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"LOG": true,
|
|
3
|
+
"LOG_LEVEL": "debug",
|
|
4
|
+
"API_TIMEOUT_MS": 15000,
|
|
5
|
+
"CUSTOM_ROUTER_PATH": "$HOME/.claude-code-router/intent-router.js",
|
|
6
|
+
|
|
7
|
+
"Providers": [
|
|
8
|
+
{
|
|
9
|
+
"name": "openai",
|
|
10
|
+
"api_base_url": "https://api.openai.com/v1/chat/completions",
|
|
11
|
+
"api_key": "$OPENAI_API_KEY",
|
|
12
|
+
"models": ["gpt-4o-mini", "gpt-4o"],
|
|
13
|
+
"transformer": {
|
|
14
|
+
"use": []
|
|
15
|
+
},
|
|
16
|
+
"priority": 1,
|
|
17
|
+
"description": "Excellent for coding and development tasks"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "anthropic",
|
|
21
|
+
"api_base_url": "https://api.anthropic.com/v1/messages",
|
|
22
|
+
"api_key": "$ANTHROPIC_API_KEY",
|
|
23
|
+
"models": ["claude-3-5-sonnet-latest"],
|
|
24
|
+
"transformer": {
|
|
25
|
+
"use": ["Anthropic"]
|
|
26
|
+
},
|
|
27
|
+
"priority": 2,
|
|
28
|
+
"description": "Great for debugging and architecture"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "qwen",
|
|
32
|
+
"api_base_url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",
|
|
33
|
+
"api_key": "$QWEN_API_KEY",
|
|
34
|
+
"models": ["qwen3-coder-plus", "qwen-plus"],
|
|
35
|
+
"transformer": {
|
|
36
|
+
"use": []
|
|
37
|
+
},
|
|
38
|
+
"priority": 3,
|
|
39
|
+
"description": "Specialized for coding tasks"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "gemini",
|
|
43
|
+
"api_base_url": "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions",
|
|
44
|
+
"api_key": "$GEMINI_API_KEY",
|
|
45
|
+
"models": ["gemini-2.5-flash"],
|
|
46
|
+
"transformer": {
|
|
47
|
+
"use": ["gemini"]
|
|
48
|
+
},
|
|
49
|
+
"priority": 4,
|
|
50
|
+
"description": "Quick for documentation and simple queries"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
|
|
54
|
+
"Router": {
|
|
55
|
+
"default": "openai,gpt-4o-mini",
|
|
56
|
+
"background": "gemini,gemini-2.5-flash",
|
|
57
|
+
"think": "anthropic,claude-3-5-sonnet-latest",
|
|
58
|
+
"longContext": "gemini,gemini-2.5-flash",
|
|
59
|
+
"longContextThreshold": 50000,
|
|
60
|
+
"Development": {
|
|
61
|
+
"enabled": true,
|
|
62
|
+
"preferCodingModels": true,
|
|
63
|
+
"codeContextAware": true
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
"DevelopmentFeatures": {
|
|
68
|
+
"codeContext": true,
|
|
69
|
+
"projectAwareness": true,
|
|
70
|
+
"debugMode": true,
|
|
71
|
+
"verboseLogging": true,
|
|
72
|
+
"testMode": false
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
"CodeAssistance": {
|
|
76
|
+
"languages": ["javascript", "python", "typescript", "java", "go", "rust", "cpp"],
|
|
77
|
+
"frameworks": ["react", "vue", "angular", "nodejs", "django", "flask", "spring"],
|
|
78
|
+
"specializedModels": {
|
|
79
|
+
"coding": "qwen3-coder-plus",
|
|
80
|
+
"debugging": "anthropic,claude-3-5-sonnet-latest",
|
|
81
|
+
"architecture": "anthropic,claude-sonnet-4-latest",
|
|
82
|
+
"documentation": "openai,gpt-4o"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
"Testing": {
|
|
87
|
+
"mockMode": false,
|
|
88
|
+
"localTesting": true,
|
|
89
|
+
"apiValidation": true,
|
|
90
|
+
"responseCaching": true
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
"description": "Development-optimized configuration for coding, debugging, and software engineering tasks",
|
|
94
|
+
"useCase": "Best for developers, coding assistance, debugging, and software development workflows",
|
|
95
|
+
"optimizedFor": [
|
|
96
|
+
"Code generation",
|
|
97
|
+
"Debugging",
|
|
98
|
+
"Code review",
|
|
99
|
+
"Documentation",
|
|
100
|
+
"Architecture design"
|
|
101
|
+
],
|
|
102
|
+
"costProfile": "Medium",
|
|
103
|
+
"expectedLatency": "2-5 seconds"
|
|
104
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"LOG": true,
|
|
3
|
+
"LOG_LEVEL": "info",
|
|
4
|
+
"API_TIMEOUT_MS": 20000,
|
|
5
|
+
"CUSTOM_ROUTER_PATH": "$HOME/.claude-code-router/intent-router.js",
|
|
6
|
+
|
|
7
|
+
"Providers": [
|
|
8
|
+
{
|
|
9
|
+
"name": "gemini",
|
|
10
|
+
"api_base_url": "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions",
|
|
11
|
+
"api_key": "$GEMINI_API_KEY",
|
|
12
|
+
"models": ["gemini-2.5-flash"],
|
|
13
|
+
"transformer": {
|
|
14
|
+
"use": ["gemini"]
|
|
15
|
+
},
|
|
16
|
+
"priority": 1,
|
|
17
|
+
"description": "Fastest responses for time-critical tasks"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "openai",
|
|
21
|
+
"api_base_url": "https://api.openai.com/v1/chat/completions",
|
|
22
|
+
"api_key": "$OPENAI_API_KEY",
|
|
23
|
+
"models": ["gpt-4o-mini", "gpt-4o"],
|
|
24
|
+
"transformer": {
|
|
25
|
+
"use": []
|
|
26
|
+
},
|
|
27
|
+
"priority": 2,
|
|
28
|
+
"description": "Balance of speed and capability"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "qwen",
|
|
32
|
+
"api_base_url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",
|
|
33
|
+
"api_key": "$QWEN_API_KEY",
|
|
34
|
+
"models": ["qwen-turbo", "qwen-plus"],
|
|
35
|
+
"transformer": {
|
|
36
|
+
"use": []
|
|
37
|
+
},
|
|
38
|
+
"priority": 3,
|
|
39
|
+
"description": "Fast for simple tasks"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "anthropic",
|
|
43
|
+
"api_base_url": "https://api.anthropic.com/v1/messages",
|
|
44
|
+
"api_key": "$ANTHROPIC_API_KEY",
|
|
45
|
+
"models": ["claude-3-5-haiku-latest", "claude-sonnet-4-latest"],
|
|
46
|
+
"transformer": {
|
|
47
|
+
"use": ["Anthropic"]
|
|
48
|
+
},
|
|
49
|
+
"priority": 4,
|
|
50
|
+
"description": "High quality when needed"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
|
|
54
|
+
"Router": {
|
|
55
|
+
"default": "gemini,gemini-2.5-flash",
|
|
56
|
+
"background": "qwen,qwen-turbo",
|
|
57
|
+
"think": "openai,gpt-4o-mini",
|
|
58
|
+
"longContext": "gemini,gemini-2.5-flash",
|
|
59
|
+
"longContextThreshold": 100000,
|
|
60
|
+
"Performance": {
|
|
61
|
+
"enabled": true,
|
|
62
|
+
"timeoutMs": 15000,
|
|
63
|
+
"retryAttempts": 2,
|
|
64
|
+
"preferLowLatency": true
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
"PerformanceOptimization": {
|
|
69
|
+
"enableCaching": true,
|
|
70
|
+
"cacheTTL": 300,
|
|
71
|
+
"maxConcurrentRequests": 5,
|
|
72
|
+
"compressionEnabled": true,
|
|
73
|
+
"smartTimeout": true
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
"HealthChecks": {
|
|
77
|
+
"enabled": true,
|
|
78
|
+
"interval": 30000,
|
|
79
|
+
"timeout": 5000,
|
|
80
|
+
"failureThreshold": 3,
|
|
81
|
+
"recoveryTimeout": 60000
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
"description": "Performance-optimized configuration prioritizing speed and low latency",
|
|
85
|
+
"useCase": "Best for real-time applications, chatbots, and time-sensitive tasks",
|
|
86
|
+
"expectedLatency": "500-2000ms",
|
|
87
|
+
"costProfile": "Low to Medium"
|
|
88
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
{
|
|
2
|
+
"LOG": true,
|
|
3
|
+
"LOG_LEVEL": "debug",
|
|
4
|
+
"API_TIMEOUT_MS": 60000,
|
|
5
|
+
"CUSTOM_ROUTER_PATH": "$HOME/.claude-code-router/intent-router.js",
|
|
6
|
+
|
|
7
|
+
"Providers": [
|
|
8
|
+
{
|
|
9
|
+
"name": "anthropic",
|
|
10
|
+
"api_base_url": "https://api.anthropic.com/v1/messages",
|
|
11
|
+
"api_key": "$ANTHROPIC_API_KEY",
|
|
12
|
+
"models": ["claude-sonnet-4-latest", "claude-3-5-sonnet-latest"],
|
|
13
|
+
"transformer": {
|
|
14
|
+
"use": ["Anthropic"]
|
|
15
|
+
},
|
|
16
|
+
"priority": 1,
|
|
17
|
+
"description": "Highest reasoning and analytical capability",
|
|
18
|
+
"estimatedCost": "$15.00 per 1M input tokens"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "openai",
|
|
22
|
+
"api_base_url": "https://api.openai.com/v1/chat/completions",
|
|
23
|
+
"api_key": "$OPENAI_API_KEY",
|
|
24
|
+
"models": ["gpt-4o", "o1", "gpt-4-turbo"],
|
|
25
|
+
"transformer": {
|
|
26
|
+
"use": []
|
|
27
|
+
},
|
|
28
|
+
"priority": 2,
|
|
29
|
+
"description": "Strong coding and problem-solving abilities",
|
|
30
|
+
"estimatedCost": "$5.00 per 1M input tokens"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "gemini",
|
|
34
|
+
"api_base_url": "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions",
|
|
35
|
+
"api_key": "$GEMINI_API_KEY",
|
|
36
|
+
"models": ["gemini-2.5-pro", "gemini-2.5-flash"],
|
|
37
|
+
"transformer": {
|
|
38
|
+
"use": ["gemini"]
|
|
39
|
+
},
|
|
40
|
+
"priority": 3,
|
|
41
|
+
"description": "Good balance of quality and speed",
|
|
42
|
+
"estimatedCost": "$1.25 per 1M input tokens"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "openrouter",
|
|
46
|
+
"api_base_url": "https://openrouter.ai/api/v1/chat/completions",
|
|
47
|
+
"api_key": "$OPENROUTER_API_KEY",
|
|
48
|
+
"models": [
|
|
49
|
+
"anthropic/claude-3.5-sonnet",
|
|
50
|
+
"openai/gpt-4-turbo",
|
|
51
|
+
"google/gemini-pro-1.5"
|
|
52
|
+
],
|
|
53
|
+
"transformer": {
|
|
54
|
+
"use": ["openrouter"]
|
|
55
|
+
},
|
|
56
|
+
"priority": 4,
|
|
57
|
+
"description": "Access to specialized high-quality models",
|
|
58
|
+
"estimatedCost": "Variable"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
|
|
62
|
+
"Router": {
|
|
63
|
+
"default": "anthropic,claude-sonnet-4-latest",
|
|
64
|
+
"background": "gemini,gemini-2.5-pro",
|
|
65
|
+
"think": "openai,o1",
|
|
66
|
+
"longContext": "gemini,gemini-2.5-pro",
|
|
67
|
+
"longContextThreshold": 200000,
|
|
68
|
+
"QualityOptimization": {
|
|
69
|
+
"enabled": true,
|
|
70
|
+
"preferAccuracy": true,
|
|
71
|
+
"maxRetries": 3,
|
|
72
|
+
"temperature": 0.3,
|
|
73
|
+
"topP": 0.9
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
"QualitySettings": {
|
|
78
|
+
"temperature": 0.3,
|
|
79
|
+
"maxTokens": 4096,
|
|
80
|
+
"topP": 0.9,
|
|
81
|
+
"frequencyPenalty": 0.1,
|
|
82
|
+
"presencePenalty": 0.1,
|
|
83
|
+
"responseFormat": "auto"
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
"EnhancedReasoning": {
|
|
87
|
+
"enabled": true,
|
|
88
|
+
"chainOfThought": true,
|
|
89
|
+
"selfCritique": true,
|
|
90
|
+
"multiplePerspectives": true
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
"description": "Quality-focused configuration prioritizing accuracy and capabilities over cost/speed",
|
|
94
|
+
"useCase": "Best for critical applications, complex reasoning, research, and professional work",
|
|
95
|
+
"expectedQuality": "Highest available",
|
|
96
|
+
"costProfile": "High",
|
|
97
|
+
"expectedLatency": "3-10 seconds",
|
|
98
|
+
"recommendedFor": [
|
|
99
|
+
"Complex analysis",
|
|
100
|
+
"Creative writing",
|
|
101
|
+
"Code review",
|
|
102
|
+
"Strategic planning",
|
|
103
|
+
"Research tasks"
|
|
104
|
+
]
|
|
105
|
+
}
|