duocode 1.2.0 → 1.3.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.
Files changed (93) hide show
  1. package/dist/ast/locks.js +2 -1
  2. package/dist/ast/locks.js.map +1 -1
  3. package/dist/cli.js +258 -38
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/doctor.d.ts +1 -1
  6. package/dist/commands/doctor.js +54 -11
  7. package/dist/commands/doctor.js.map +1 -1
  8. package/dist/commands/duo.js +21 -18
  9. package/dist/commands/duo.js.map +1 -1
  10. package/dist/commands/github.js +15 -1
  11. package/dist/commands/github.js.map +1 -1
  12. package/dist/commands/repl_commands.d.ts +6 -0
  13. package/dist/commands/repl_commands.js +119 -25
  14. package/dist/commands/repl_commands.js.map +1 -1
  15. package/dist/commands/status.d.ts +2 -0
  16. package/dist/commands/status.js +104 -0
  17. package/dist/commands/status.js.map +1 -0
  18. package/dist/config/loader.js +4 -1
  19. package/dist/config/loader.js.map +1 -1
  20. package/dist/context/project_context.js +5 -0
  21. package/dist/context/project_context.js.map +1 -1
  22. package/dist/db/queries.d.ts +0 -2
  23. package/dist/db/queries.js +0 -10
  24. package/dist/db/queries.js.map +1 -1
  25. package/dist/db/schema.d.ts +0 -6
  26. package/dist/db/schema.js +0 -15
  27. package/dist/db/schema.js.map +1 -1
  28. package/dist/duo/duo_orchestrator.js +67 -19
  29. package/dist/duo/duo_orchestrator.js.map +1 -1
  30. package/dist/duo/duo_types.d.ts +1 -1
  31. package/dist/duo/swarm_orchestrator.js +42 -14
  32. package/dist/duo/swarm_orchestrator.js.map +1 -1
  33. package/dist/github/mcp_client.js +8 -2
  34. package/dist/github/mcp_client.js.map +1 -1
  35. package/dist/orchestrator/intent_parser.d.ts +1 -1
  36. package/dist/orchestrator/intent_parser.js +15 -5
  37. package/dist/orchestrator/intent_parser.js.map +1 -1
  38. package/dist/orchestrator/task_runner.d.ts +0 -2
  39. package/dist/orchestrator/task_runner.js +85 -74
  40. package/dist/orchestrator/task_runner.js.map +1 -1
  41. package/dist/providers/anthropic.js +1 -1
  42. package/dist/providers/cost_tracker.js +36 -45
  43. package/dist/providers/cost_tracker.js.map +1 -1
  44. package/dist/providers/duo_pair_router.d.ts +3 -2
  45. package/dist/providers/duo_pair_router.js +18 -6
  46. package/dist/providers/duo_pair_router.js.map +1 -1
  47. package/dist/providers/factory.js +123 -118
  48. package/dist/providers/factory.js.map +1 -1
  49. package/dist/providers/openrouter.js +38 -29
  50. package/dist/providers/openrouter.js.map +1 -1
  51. package/dist/providers/role_scorer.d.ts +2 -0
  52. package/dist/providers/role_scorer.js +10 -7
  53. package/dist/providers/role_scorer.js.map +1 -1
  54. package/dist/providers/router.js +150 -99
  55. package/dist/providers/router.js.map +1 -1
  56. package/dist/setup/browser.js +6 -6
  57. package/dist/setup/browser.js.map +1 -1
  58. package/dist/tools/agent_loop.d.ts +7 -0
  59. package/dist/tools/agent_loop.js +70 -20
  60. package/dist/tools/agent_loop.js.map +1 -1
  61. package/dist/tools/definitions.d.ts +2 -1
  62. package/dist/tools/definitions.js +23 -1
  63. package/dist/tools/definitions.js.map +1 -1
  64. package/dist/tools/executor.js +121 -29
  65. package/dist/tools/executor.js.map +1 -1
  66. package/dist/tools/permissions.js +14 -4
  67. package/dist/tools/permissions.js.map +1 -1
  68. package/dist/ui/autocomplete.d.ts +24 -0
  69. package/dist/ui/autocomplete.js +192 -0
  70. package/dist/ui/autocomplete.js.map +1 -0
  71. package/dist/ui/banner.d.ts +2 -1
  72. package/dist/ui/banner.js +89 -15
  73. package/dist/ui/banner.js.map +1 -1
  74. package/dist/ui/callbacks.js +10 -3
  75. package/dist/ui/callbacks.js.map +1 -1
  76. package/dist/ui/dashboard.js +2 -1
  77. package/dist/ui/dashboard.js.map +1 -1
  78. package/dist/ui/diff_panel.d.ts +22 -0
  79. package/dist/ui/diff_panel.js +171 -0
  80. package/dist/ui/diff_panel.js.map +1 -0
  81. package/dist/ui/neural_knot.d.ts +1 -0
  82. package/dist/ui/neural_knot.js +131 -0
  83. package/dist/ui/neural_knot.js.map +1 -0
  84. package/dist/ui/plan_viewer.d.ts +12 -0
  85. package/dist/ui/plan_viewer.js +117 -0
  86. package/dist/ui/plan_viewer.js.map +1 -0
  87. package/dist/ui/progress.d.ts +15 -0
  88. package/dist/ui/progress.js +103 -2
  89. package/dist/ui/progress.js.map +1 -1
  90. package/dist/ui/status_bar.d.ts +32 -0
  91. package/dist/ui/status_bar.js +107 -0
  92. package/dist/ui/status_bar.js.map +1 -0
  93. package/package.json +5 -1
@@ -1,217 +1,222 @@
1
1
  import { OpenRouterProvider } from "./openrouter.js";
2
2
  import { CapabilityRouter, ProviderRouter } from "./router.js";
3
3
  import { CostTracker, DEFAULT_MODEL_PRICING } from "./cost_tracker.js";
4
+ // All models are real OpenRouter-available IDs as of Feb 2026.
5
+ // Pricing: inputPer1kUsd / outputPer1kUsd = USD per 1,000 tokens.
4
6
  const OPENROUTER_PROFILES = [
5
- // --- Frontier ---
7
+ // ── Frontier ─────────────────────────────────────────────────
6
8
  {
7
- model: "openai/gpt-5.3-codex",
9
+ model: "openai/gpt-5.2-pro",
8
10
  provider: "openrouter",
9
- capabilities: ["deep_reasoning", "code_generation", "tool_use", "streaming"],
11
+ capabilities: ["deep_reasoning", "architecture", "code_generation", "code_review", "tool_use", "streaming"],
10
12
  supportsStreaming: true,
11
13
  supportsTools: true,
12
- contextWindow: 256000,
13
- maxOutputTokens: 32000,
14
- avgLatencyMs: 1800,
14
+ contextWindow: 400000,
15
+ maxOutputTokens: 128000,
16
+ avgLatencyMs: 5000,
17
+ defaultScore: 0.97,
18
+ roleAffinity: { architect: 0.96, executor: 0.65 },
19
+ },
20
+ {
21
+ model: "openai/gpt-5.2",
22
+ provider: "openrouter",
23
+ capabilities: ["deep_reasoning", "architecture", "code_generation", "code_review", "tool_use", "streaming"],
24
+ supportsStreaming: true,
25
+ supportsTools: true,
26
+ contextWindow: 400000,
27
+ maxOutputTokens: 128000,
28
+ avgLatencyMs: 3500,
15
29
  defaultScore: 0.96,
30
+ roleAffinity: { architect: 0.92, executor: 0.75 },
16
31
  },
17
32
  {
18
- model: "anthropic/claude-sonnet-5",
33
+ model: "anthropic/claude-3.7-sonnet",
19
34
  provider: "openrouter",
20
35
  capabilities: ["deep_reasoning", "architecture", "code_generation", "tool_use", "streaming"],
21
36
  supportsStreaming: true,
22
37
  supportsTools: true,
23
38
  contextWindow: 200000,
24
- maxOutputTokens: 24000,
25
- avgLatencyMs: 1700,
26
- defaultScore: 0.95,
39
+ maxOutputTokens: 32000,
40
+ avgLatencyMs: 2000,
41
+ defaultScore: 0.96,
42
+ roleAffinity: { architect: 0.95, executor: 0.75 },
27
43
  },
28
44
  {
29
- model: "google/gemini-3.0-pro",
45
+ model: "openai/o3",
30
46
  provider: "openrouter",
31
- capabilities: ["deep_reasoning", "code_generation", "streaming", "tool_use"],
47
+ capabilities: ["deep_reasoning", "architecture", "code_review", "streaming"],
32
48
  supportsStreaming: true,
33
49
  supportsTools: true,
34
- contextWindow: 2000000,
35
- maxOutputTokens: 65000,
36
- avgLatencyMs: 1100,
50
+ contextWindow: 200000,
51
+ maxOutputTokens: 100000,
52
+ avgLatencyMs: 4000,
37
53
  defaultScore: 0.95,
54
+ roleAffinity: { architect: 0.95, executor: 0.60 },
38
55
  },
39
56
  {
40
- model: "anthropic/claude-opus-4-6",
57
+ model: "google/gemini-2.5-pro-preview",
41
58
  provider: "openrouter",
42
- capabilities: ["deep_reasoning", "architecture", "code_generation", "tool_use", "streaming"],
59
+ capabilities: ["deep_reasoning", "code_generation", "tool_use", "streaming"],
43
60
  supportsStreaming: true,
44
61
  supportsTools: true,
45
- contextWindow: 200000,
46
- maxOutputTokens: 32000,
62
+ contextWindow: 1048576,
63
+ maxOutputTokens: 65536,
47
64
  avgLatencyMs: 2200,
48
- defaultScore: 0.97,
65
+ defaultScore: 0.93,
66
+ roleAffinity: { architect: 0.85, executor: 0.80 },
49
67
  },
50
- // --- Strong ---
68
+ // ── Strong ────────────────────────────────────────────────────
51
69
  {
52
- model: "anthropic/claude-sonnet-4-5-20250929",
70
+ model: "openai/o1",
53
71
  provider: "openrouter",
54
- capabilities: ["deep_reasoning", "code_generation", "tool_use", "streaming"],
72
+ capabilities: ["deep_reasoning", "architecture", "code_review", "streaming"],
55
73
  supportsStreaming: true,
56
74
  supportsTools: true,
57
75
  contextWindow: 200000,
58
- maxOutputTokens: 16000,
59
- avgLatencyMs: 1500,
60
- defaultScore: 0.93,
76
+ maxOutputTokens: 100000,
77
+ avgLatencyMs: 5000,
78
+ defaultScore: 0.92,
79
+ roleAffinity: { architect: 0.90, executor: 0.55 },
61
80
  },
62
81
  {
63
- model: "openai/gpt-5.2",
82
+ model: "anthropic/claude-3.5-sonnet",
64
83
  provider: "openrouter",
65
- capabilities: ["deep_reasoning", "code_generation", "streaming"],
84
+ capabilities: ["deep_reasoning", "code_generation", "code_review", "tool_use", "streaming"],
66
85
  supportsStreaming: true,
67
86
  supportsTools: true,
68
87
  contextWindow: 200000,
69
- maxOutputTokens: 24000,
70
- avgLatencyMs: 1400,
71
- defaultScore: 0.90,
88
+ maxOutputTokens: 8096,
89
+ avgLatencyMs: 1800,
90
+ defaultScore: 0.91,
91
+ roleAffinity: { architect: 0.80, executor: 0.90 },
72
92
  },
73
93
  {
74
94
  model: "openai/gpt-4o",
75
95
  provider: "openrouter",
76
- capabilities: ["code_generation", "streaming", "fast_response"],
96
+ capabilities: ["code_generation", "tool_use", "fast_response", "streaming"],
77
97
  supportsStreaming: true,
78
98
  supportsTools: true,
79
99
  contextWindow: 128000,
80
- maxOutputTokens: 16000,
81
- avgLatencyMs: 800,
100
+ maxOutputTokens: 16384,
101
+ avgLatencyMs: 900,
82
102
  defaultScore: 0.88,
103
+ roleAffinity: { architect: 0.70, executor: 0.85 },
83
104
  },
84
- // --- Fast / cheap ---
85
105
  {
86
- model: "openai/o4-mini",
106
+ model: "deepseek/deepseek-r1",
87
107
  provider: "openrouter",
88
- capabilities: ["routing", "tool_use", "fast_response", "streaming"],
108
+ capabilities: ["deep_reasoning", "architecture", "code_generation", "streaming"],
89
109
  supportsStreaming: true,
90
- supportsTools: true,
91
- contextWindow: 128000,
92
- maxOutputTokens: 16000,
93
- avgLatencyMs: 650,
94
- defaultScore: 0.82,
110
+ supportsTools: false,
111
+ contextWindow: 163840,
112
+ maxOutputTokens: 32768,
113
+ avgLatencyMs: 2500,
114
+ defaultScore: 0.86,
115
+ roleAffinity: { architect: 0.85, executor: 0.65 },
95
116
  },
117
+ // ── Fast / Executor-optimised ─────────────────────────────────
96
118
  {
97
- model: "anthropic/claude-haiku-3.5",
119
+ model: "openai/o4-mini",
98
120
  provider: "openrouter",
99
- capabilities: ["code_generation", "fast_response", "streaming"],
121
+ capabilities: ["deep_reasoning", "code_generation", "tool_use", "fast_response", "streaming"],
100
122
  supportsStreaming: true,
101
123
  supportsTools: true,
102
124
  contextWindow: 200000,
103
- maxOutputTokens: 8000,
104
- avgLatencyMs: 400,
105
- defaultScore: 0.78,
106
- },
107
- // --- Trending models (Feb 2026) ---
108
- {
109
- model: "minimax/minimax-m2.5-20260211",
110
- provider: "openrouter",
111
- capabilities: ["deep_reasoning", "code_generation", "tool_use", "streaming"],
112
- supportsStreaming: true,
113
- supportsTools: true,
114
- contextWindow: 1048576,
115
- maxOutputTokens: 65536,
116
- avgLatencyMs: 1400,
117
- defaultScore: 0.91,
118
- },
119
- {
120
- model: "moonshotai/kimi-k2.5-0127",
121
- provider: "openrouter",
122
- capabilities: ["deep_reasoning", "code_generation", "tool_use", "streaming"],
123
- supportsStreaming: true,
124
- supportsTools: true,
125
- contextWindow: 262144,
126
- maxOutputTokens: 32768,
127
- avgLatencyMs: 1500,
128
- defaultScore: 0.89,
125
+ maxOutputTokens: 100000,
126
+ avgLatencyMs: 700,
127
+ defaultScore: 0.85,
128
+ roleAffinity: { architect: 0.70, executor: 0.82 },
129
129
  },
130
130
  {
131
- model: "z-ai/glm-5-20260211",
131
+ model: "openai/o3-mini",
132
132
  provider: "openrouter",
133
- capabilities: ["deep_reasoning", "architecture", "code_generation", "tool_use", "streaming"],
133
+ capabilities: ["deep_reasoning", "code_generation", "fast_response", "streaming"],
134
134
  supportsStreaming: true,
135
135
  supportsTools: true,
136
- contextWindow: 202752,
137
- maxOutputTokens: 131072,
138
- avgLatencyMs: 1800,
139
- defaultScore: 0.92,
136
+ contextWindow: 200000,
137
+ maxOutputTokens: 100000,
138
+ avgLatencyMs: 600,
139
+ defaultScore: 0.83,
140
+ roleAffinity: { architect: 0.72, executor: 0.78 },
140
141
  },
141
142
  {
142
- model: "deepseek/deepseek-v3.2-20251201",
143
+ model: "anthropic/claude-3.5-haiku",
143
144
  provider: "openrouter",
144
- capabilities: ["deep_reasoning", "code_generation", "code_refactoring", "tool_use", "streaming"],
145
+ capabilities: ["code_generation", "fast_response", "tool_use", "streaming"],
145
146
  supportsStreaming: true,
146
147
  supportsTools: true,
147
- contextWindow: 163840,
148
- maxOutputTokens: 65536,
149
- avgLatencyMs: 1200,
150
- defaultScore: 0.90,
148
+ contextWindow: 200000,
149
+ maxOutputTokens: 8096,
150
+ avgLatencyMs: 400,
151
+ defaultScore: 0.78,
152
+ roleAffinity: { architect: 0.50, executor: 0.75 },
151
153
  },
152
154
  {
153
- model: "google/gemini-3-flash-preview-20251217",
155
+ model: "google/gemini-2.0-flash",
154
156
  provider: "openrouter",
155
157
  capabilities: ["code_generation", "fast_response", "tool_use", "streaming"],
156
158
  supportsStreaming: true,
157
159
  supportsTools: true,
158
160
  contextWindow: 1048576,
159
- maxOutputTokens: 65536,
160
- avgLatencyMs: 600,
161
- defaultScore: 0.88,
161
+ maxOutputTokens: 8192,
162
+ avgLatencyMs: 350,
163
+ defaultScore: 0.77,
164
+ roleAffinity: { architect: 0.50, executor: 0.72 },
162
165
  },
163
166
  {
164
- model: "openai/gpt-oss-120b",
167
+ model: "openai/gpt-4o-mini",
165
168
  provider: "openrouter",
166
- capabilities: ["deep_reasoning", "code_generation", "tool_use", "streaming"],
169
+ capabilities: ["routing", "fast_response", "tool_use", "streaming"],
167
170
  supportsStreaming: true,
168
171
  supportsTools: true,
169
- contextWindow: 200000,
170
- maxOutputTokens: 32000,
171
- avgLatencyMs: 1600,
172
- defaultScore: 0.91,
172
+ contextWindow: 128000,
173
+ maxOutputTokens: 16384,
174
+ avgLatencyMs: 350,
175
+ defaultScore: 0.74,
176
+ roleAffinity: { architect: 0.45, executor: 0.68 },
173
177
  },
174
178
  {
175
- model: "x-ai/grok-4.1-fast",
179
+ model: "deepseek/deepseek-chat",
176
180
  provider: "openrouter",
177
- capabilities: ["code_generation", "fast_response", "tool_use", "streaming"],
181
+ capabilities: ["code_generation", "fast_response", "streaming"],
178
182
  supportsStreaming: true,
179
183
  supportsTools: true,
180
- contextWindow: 131072,
184
+ contextWindow: 163840,
181
185
  maxOutputTokens: 32768,
182
- avgLatencyMs: 700,
183
- defaultScore: 0.87,
186
+ avgLatencyMs: 800,
187
+ defaultScore: 0.76,
188
+ roleAffinity: { architect: 0.55, executor: 0.73 },
184
189
  },
185
190
  {
186
- model: "arcee-ai/trinity-large-preview",
191
+ model: "openai/gpt-4.1-nano",
187
192
  provider: "openrouter",
188
- capabilities: ["deep_reasoning", "code_generation", "tool_use", "streaming"],
193
+ capabilities: ["routing", "fast_response", "streaming"],
189
194
  supportsStreaming: true,
190
195
  supportsTools: true,
191
- contextWindow: 131072,
196
+ contextWindow: 1047576,
192
197
  maxOutputTokens: 32768,
193
- avgLatencyMs: 1300,
194
- defaultScore: 0.86,
198
+ avgLatencyMs: 250,
199
+ defaultScore: 0.68,
200
+ roleAffinity: { architect: 0.35, executor: 0.55 },
195
201
  },
196
202
  ];
197
203
  const OPENROUTER_PRICING = {
198
- "openai/gpt-5.3-codex": { inputPer1kUsd: 0.015, outputPer1kUsd: 0.06 },
199
- "anthropic/claude-opus-4-6": { inputPer1kUsd: 0.015, outputPer1kUsd: 0.075 },
200
- "anthropic/claude-sonnet-5": { inputPer1kUsd: 0.004, outputPer1kUsd: 0.02 },
201
- "google/gemini-3.0-pro": { inputPer1kUsd: 0.0015, outputPer1kUsd: 0.01 },
202
- "anthropic/claude-sonnet-4-5-20250929": { inputPer1kUsd: 0.003, outputPer1kUsd: 0.015 },
203
- "openai/gpt-5.2": { inputPer1kUsd: 0.01, outputPer1kUsd: 0.04 },
204
+ "anthropic/claude-3.7-sonnet": { inputPer1kUsd: 0.003, outputPer1kUsd: 0.015 },
205
+ "openai/o3": { inputPer1kUsd: 0.01, outputPer1kUsd: 0.04 },
206
+ "google/gemini-2.5-pro-preview": { inputPer1kUsd: 0.00125, outputPer1kUsd: 0.01 },
207
+ "openai/o1": { inputPer1kUsd: 0.015, outputPer1kUsd: 0.06 },
208
+ "anthropic/claude-3.5-sonnet": { inputPer1kUsd: 0.003, outputPer1kUsd: 0.015 },
204
209
  "openai/gpt-4o": { inputPer1kUsd: 0.0025, outputPer1kUsd: 0.01 },
205
- "openai/o4-mini": { inputPer1kUsd: 0.003, outputPer1kUsd: 0.012 },
206
- "anthropic/claude-haiku-3.5": { inputPer1kUsd: 0.0008, outputPer1kUsd: 0.004 },
207
- "minimax/minimax-m2.5-20260211": { inputPer1kUsd: 0.001, outputPer1kUsd: 0.005 },
208
- "moonshotai/kimi-k2.5-0127": { inputPer1kUsd: 0.00045, outputPer1kUsd: 0.00225 },
209
- "z-ai/glm-5-20260211": { inputPer1kUsd: 0.0008, outputPer1kUsd: 0.00256 },
210
- "deepseek/deepseek-v3.2-20251201": { inputPer1kUsd: 0.00027, outputPer1kUsd: 0.0011 },
211
- "google/gemini-3-flash-preview-20251217": { inputPer1kUsd: 0.00015, outputPer1kUsd: 0.0006 },
212
- "openai/gpt-oss-120b": { inputPer1kUsd: 0.002, outputPer1kUsd: 0.008 },
213
- "x-ai/grok-4.1-fast": { inputPer1kUsd: 0.005, outputPer1kUsd: 0.015 },
214
- "arcee-ai/trinity-large-preview": { inputPer1kUsd: 0.0, outputPer1kUsd: 0.0 },
210
+ "deepseek/deepseek-r1": { inputPer1kUsd: 0.00055, outputPer1kUsd: 0.00219 },
211
+ "openai/o4-mini": { inputPer1kUsd: 0.0011, outputPer1kUsd: 0.0044 },
212
+ "openai/o3-mini": { inputPer1kUsd: 0.0011, outputPer1kUsd: 0.0044 },
213
+ "anthropic/claude-3.5-haiku": { inputPer1kUsd: 0.0008, outputPer1kUsd: 0.004 },
214
+ "google/gemini-2.0-flash": { inputPer1kUsd: 0.0001, outputPer1kUsd: 0.0004 },
215
+ "openai/gpt-4o-mini": { inputPer1kUsd: 0.00015, outputPer1kUsd: 0.0006 },
216
+ "deepseek/deepseek-chat": { inputPer1kUsd: 0.00027, outputPer1kUsd: 0.0011 },
217
+ "openai/gpt-4.1-nano": { inputPer1kUsd: 0.0001, outputPer1kUsd: 0.0004 },
218
+ "openai/gpt-5.2": { inputPer1kUsd: 0.00175, outputPer1kUsd: 0.014 },
219
+ "openai/gpt-5.2-pro": { inputPer1kUsd: 0.021, outputPer1kUsd: 0.168 },
215
220
  };
216
221
  export function createProviderStack() {
217
222
  const apiKey = process.env.OPENROUTER_API_KEY;
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"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"}
@@ -112,39 +112,48 @@ export class OpenRouterProvider {
112
112
  let finalUsage = { inputTokens: 0, outputTokens: 0 };
113
113
  let model = request.model;
114
114
  let stopReason = null;
115
- for await (const chunk of stream) {
116
- model = chunk.model ?? model;
117
- if (chunk.usage) {
118
- finalUsage = {
119
- inputTokens: chunk.usage.prompt_tokens ?? finalUsage.inputTokens,
120
- outputTokens: chunk.usage.completion_tokens ?? finalUsage.outputTokens,
121
- };
122
- yield { type: "usage", usage: finalUsage };
123
- }
124
- const delta = chunk.choices?.[0]?.delta;
125
- const finishReason = chunk.choices?.[0]?.finish_reason;
126
- if (finishReason) {
127
- stopReason = finishReason;
128
- }
129
- if (typeof delta?.content === "string" && delta.content.length > 0) {
130
- textParts.push(delta.content);
131
- yield { type: "text-delta", delta: delta.content };
132
- }
133
- const toolCalls = delta?.tool_calls;
134
- if (toolCalls && toolCalls.length > 0) {
135
- for (const toolCall of toolCalls) {
136
- const key = String(toolCall.id ?? toolCall.index ?? "0");
137
- const existing = toolCallBuffers.get(key) ?? { name: "", args: "" };
138
- if (typeof toolCall?.function?.name === "string") {
139
- existing.name = toolCall.function.name;
140
- }
141
- if (typeof toolCall?.function?.arguments === "string") {
142
- existing.args += toolCall.function.arguments;
115
+ try {
116
+ for await (const chunk of stream) {
117
+ model = chunk.model ?? model;
118
+ const chunkUsage = chunk.usage;
119
+ if (chunkUsage) {
120
+ finalUsage = {
121
+ inputTokens: chunkUsage.prompt_tokens ?? finalUsage.inputTokens,
122
+ outputTokens: chunkUsage.completion_tokens ?? finalUsage.outputTokens,
123
+ };
124
+ yield { type: "usage", usage: finalUsage };
125
+ }
126
+ const choice = chunk.choices?.[0];
127
+ const delta = choice?.delta;
128
+ const finishReason = choice?.finish_reason;
129
+ if (finishReason) {
130
+ stopReason = finishReason;
131
+ }
132
+ if (typeof delta?.content === "string" && delta.content.length > 0) {
133
+ textParts.push(delta.content);
134
+ yield { type: "text-delta", delta: delta.content };
135
+ }
136
+ const toolCalls = delta?.tool_calls;
137
+ if (toolCalls && toolCalls.length > 0) {
138
+ for (const toolCall of toolCalls) {
139
+ const key = String(toolCall.id ?? toolCall.index ?? "0");
140
+ const existing = toolCallBuffers.get(key) ?? { name: "", args: "" };
141
+ if (typeof toolCall?.function?.name === "string") {
142
+ existing.name = toolCall.function.name;
143
+ }
144
+ if (typeof toolCall?.function?.arguments === "string") {
145
+ existing.args += toolCall.function.arguments;
146
+ }
147
+ toolCallBuffers.set(key, existing);
143
148
  }
144
- toolCallBuffers.set(key, existing);
145
149
  }
146
150
  }
147
151
  }
152
+ catch (error) {
153
+ const normalized = error instanceof Error ? error : new Error(String(error));
154
+ yield { type: "error", error: normalized };
155
+ throw normalized;
156
+ }
148
157
  const parsedCalls = [...toolCallBuffers.entries()].map(([id, raw]) => {
149
158
  let input = {};
150
159
  if (raw.args.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export interface RoleScore {
9
9
  export declare function scoreModelForRole(opts: {
10
10
  profile: ModelProfile;
11
11
  role: DuoRole;
12
+ /** Aggregate ELO for this model+role from PerformanceTracker. Omit when no history. */
13
+ eloRating?: number;
12
14
  }): RoleScore;
13
15
  export declare function scoreAllModelsForRole(opts: {
14
16
  profiles: ModelProfile[];
@@ -1,12 +1,15 @@
1
1
  export function scoreModelForRole(opts) {
2
- const { profile, role } = opts;
2
+ const { profile, role, eloRating } = opts;
3
3
  const affinity = profile.roleAffinity?.[role] ?? 0.5;
4
- return {
5
- model: profile.model,
6
- role,
7
- score: affinity,
8
- reasons: [`roleAffinity: ${affinity.toFixed(3)}`],
9
- };
4
+ const reasons = [`roleAffinity: ${affinity.toFixed(3)}`];
5
+ let score = affinity;
6
+ if (eloRating !== undefined) {
7
+ // Normalize ELO: 1200 → 0.0, 1500 (default) → 0.5, 1800 → 1.0, clamped to [0, 1].
8
+ const normalizedElo = Math.max(0, Math.min(1, (eloRating - 1200) / 600));
9
+ score = 0.7 * affinity + 0.3 * normalizedElo;
10
+ reasons.push(`elo: ${eloRating.toFixed(0)} (weight: 0.3, normalized: ${normalizedElo.toFixed(3)})`);
11
+ }
12
+ return { model: profile.model, role, score, reasons };
10
13
  }
11
14
  export function scoreAllModelsForRole(opts) {
12
15
  return opts.profiles
@@ -1 +1 @@
1
- {"version":3,"file":"role_scorer.js","sourceRoot":"","sources":["../../src/providers/role_scorer.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,iBAAiB,CAAC,IAGjC;IACC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IAErD,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI;QACJ,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,CAAC,iBAAiB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAGrC;IACC,OAAO,IAAI,CAAC,QAAQ;SACjB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SACjE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"role_scorer.js","sourceRoot":"","sources":["../../src/providers/role_scorer.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,iBAAiB,CAAC,IAKjC;IACC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IACrD,MAAM,OAAO,GAAa,CAAC,iBAAiB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEnE,IAAI,KAAK,GAAG,QAAQ,CAAC;IAErB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,kFAAkF;QAClF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACzE,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,aAAa,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,QAAQ,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtG,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAGrC;IACC,OAAO,IAAI,CAAC,QAAQ;SACjB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SACjE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC"}