@aiagentflow/cli 0.10.0 → 1.0.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/dist/cli/index.js CHANGED
@@ -17,7 +17,7 @@ const program = new Command();
17
17
  program
18
18
  .name('aiagentflow')
19
19
  .description('AI Engineering Workflow Orchestrator — multi-agent development automation')
20
- .version('0.10.0');
20
+ .version('1.0.0');
21
21
  // Register commands
22
22
  program.addCommand(initCommand);
23
23
  program.addCommand(configCommand);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,2EAA2E,CAAC;KACxF,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAEpC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,2EAA2E,CAAC;KACxF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAEpC,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -13,7 +13,7 @@ import { z } from 'zod';
13
13
  */
14
14
  export declare const agentRoleConfigSchema: z.ZodObject<{
15
15
  /** Which provider to use for this agent role. */
16
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
16
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
17
17
  /** The model identifier to use. */
18
18
  model: z.ZodString;
19
19
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -22,12 +22,12 @@ export declare const agentRoleConfigSchema: z.ZodObject<{
22
22
  maxTokens: z.ZodDefault<z.ZodNumber>;
23
23
  }, "strip", z.ZodTypeAny, {
24
24
  model: string;
25
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
25
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
26
26
  temperature: number;
27
27
  maxTokens: number;
28
28
  }, {
29
29
  model: string;
30
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
30
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
31
31
  temperature?: number | undefined;
32
32
  maxTokens?: number | undefined;
33
33
  }>;
@@ -37,7 +37,7 @@ export declare const agentRoleConfigSchema: z.ZodObject<{
37
37
  export declare const agentConfigSchema: z.ZodObject<{
38
38
  architect: z.ZodObject<{
39
39
  /** Which provider to use for this agent role. */
40
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
40
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
41
41
  /** The model identifier to use. */
42
42
  model: z.ZodString;
43
43
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -46,18 +46,18 @@ export declare const agentConfigSchema: z.ZodObject<{
46
46
  maxTokens: z.ZodDefault<z.ZodNumber>;
47
47
  }, "strip", z.ZodTypeAny, {
48
48
  model: string;
49
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
49
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
50
50
  temperature: number;
51
51
  maxTokens: number;
52
52
  }, {
53
53
  model: string;
54
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
54
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
55
55
  temperature?: number | undefined;
56
56
  maxTokens?: number | undefined;
57
57
  }>;
58
58
  coder: z.ZodObject<{
59
59
  /** Which provider to use for this agent role. */
60
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
60
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
61
61
  /** The model identifier to use. */
62
62
  model: z.ZodString;
63
63
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -66,18 +66,18 @@ export declare const agentConfigSchema: z.ZodObject<{
66
66
  maxTokens: z.ZodDefault<z.ZodNumber>;
67
67
  }, "strip", z.ZodTypeAny, {
68
68
  model: string;
69
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
69
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
70
70
  temperature: number;
71
71
  maxTokens: number;
72
72
  }, {
73
73
  model: string;
74
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
74
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
75
75
  temperature?: number | undefined;
76
76
  maxTokens?: number | undefined;
77
77
  }>;
78
78
  reviewer: z.ZodObject<{
79
79
  /** Which provider to use for this agent role. */
80
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
80
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
81
81
  /** The model identifier to use. */
82
82
  model: z.ZodString;
83
83
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -86,18 +86,18 @@ export declare const agentConfigSchema: z.ZodObject<{
86
86
  maxTokens: z.ZodDefault<z.ZodNumber>;
87
87
  }, "strip", z.ZodTypeAny, {
88
88
  model: string;
89
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
89
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
90
90
  temperature: number;
91
91
  maxTokens: number;
92
92
  }, {
93
93
  model: string;
94
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
94
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
95
95
  temperature?: number | undefined;
96
96
  maxTokens?: number | undefined;
97
97
  }>;
98
98
  tester: z.ZodObject<{
99
99
  /** Which provider to use for this agent role. */
100
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
100
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
101
101
  /** The model identifier to use. */
102
102
  model: z.ZodString;
103
103
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -106,18 +106,18 @@ export declare const agentConfigSchema: z.ZodObject<{
106
106
  maxTokens: z.ZodDefault<z.ZodNumber>;
107
107
  }, "strip", z.ZodTypeAny, {
108
108
  model: string;
109
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
109
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
110
110
  temperature: number;
111
111
  maxTokens: number;
112
112
  }, {
113
113
  model: string;
114
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
114
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
115
115
  temperature?: number | undefined;
116
116
  maxTokens?: number | undefined;
117
117
  }>;
118
118
  fixer: z.ZodObject<{
119
119
  /** Which provider to use for this agent role. */
120
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
120
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
121
121
  /** The model identifier to use. */
122
122
  model: z.ZodString;
123
123
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -126,18 +126,18 @@ export declare const agentConfigSchema: z.ZodObject<{
126
126
  maxTokens: z.ZodDefault<z.ZodNumber>;
127
127
  }, "strip", z.ZodTypeAny, {
128
128
  model: string;
129
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
129
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
130
130
  temperature: number;
131
131
  maxTokens: number;
132
132
  }, {
133
133
  model: string;
134
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
134
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
135
135
  temperature?: number | undefined;
136
136
  maxTokens?: number | undefined;
137
137
  }>;
138
138
  judge: z.ZodObject<{
139
139
  /** Which provider to use for this agent role. */
140
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
140
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
141
141
  /** The model identifier to use. */
142
142
  model: z.ZodString;
143
143
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -146,86 +146,86 @@ export declare const agentConfigSchema: z.ZodObject<{
146
146
  maxTokens: z.ZodDefault<z.ZodNumber>;
147
147
  }, "strip", z.ZodTypeAny, {
148
148
  model: string;
149
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
149
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
150
150
  temperature: number;
151
151
  maxTokens: number;
152
152
  }, {
153
153
  model: string;
154
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
154
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
155
155
  temperature?: number | undefined;
156
156
  maxTokens?: number | undefined;
157
157
  }>;
158
158
  }, "strip", z.ZodTypeAny, {
159
159
  architect: {
160
160
  model: string;
161
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
161
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
162
162
  temperature: number;
163
163
  maxTokens: number;
164
164
  };
165
165
  coder: {
166
166
  model: string;
167
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
167
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
168
168
  temperature: number;
169
169
  maxTokens: number;
170
170
  };
171
171
  reviewer: {
172
172
  model: string;
173
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
173
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
174
174
  temperature: number;
175
175
  maxTokens: number;
176
176
  };
177
177
  tester: {
178
178
  model: string;
179
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
179
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
180
180
  temperature: number;
181
181
  maxTokens: number;
182
182
  };
183
183
  fixer: {
184
184
  model: string;
185
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
185
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
186
186
  temperature: number;
187
187
  maxTokens: number;
188
188
  };
189
189
  judge: {
190
190
  model: string;
191
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
191
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
192
192
  temperature: number;
193
193
  maxTokens: number;
194
194
  };
195
195
  }, {
196
196
  architect: {
197
197
  model: string;
198
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
198
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
199
199
  temperature?: number | undefined;
200
200
  maxTokens?: number | undefined;
201
201
  };
202
202
  coder: {
203
203
  model: string;
204
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
204
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
205
205
  temperature?: number | undefined;
206
206
  maxTokens?: number | undefined;
207
207
  };
208
208
  reviewer: {
209
209
  model: string;
210
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
210
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
211
211
  temperature?: number | undefined;
212
212
  maxTokens?: number | undefined;
213
213
  };
214
214
  tester: {
215
215
  model: string;
216
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
216
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
217
217
  temperature?: number | undefined;
218
218
  maxTokens?: number | undefined;
219
219
  };
220
220
  fixer: {
221
221
  model: string;
222
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
222
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
223
223
  temperature?: number | undefined;
224
224
  maxTokens?: number | undefined;
225
225
  };
226
226
  judge: {
227
227
  model: string;
228
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
228
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
229
229
  temperature?: number | undefined;
230
230
  maxTokens?: number | undefined;
231
231
  };
@@ -301,6 +301,25 @@ export declare const openaiProviderSchema: z.ZodObject<{
301
301
  /**
302
302
  * Schema for provider configuration (all providers).
303
303
  */
304
+ /**
305
+ * Schema for OpenRouter provider settings.
306
+ */
307
+ export declare const openrouterProviderSchema: z.ZodObject<{
308
+ apiKey: z.ZodString;
309
+ baseUrl: z.ZodDefault<z.ZodString>;
310
+ siteUrl: z.ZodOptional<z.ZodString>;
311
+ siteName: z.ZodOptional<z.ZodString>;
312
+ }, "strip", z.ZodTypeAny, {
313
+ apiKey: string;
314
+ baseUrl: string;
315
+ siteUrl?: string | undefined;
316
+ siteName?: string | undefined;
317
+ }, {
318
+ apiKey: string;
319
+ baseUrl?: string | undefined;
320
+ siteUrl?: string | undefined;
321
+ siteName?: string | undefined;
322
+ }>;
304
323
  export declare const providerConfigSchema: z.ZodObject<{
305
324
  anthropic: z.ZodOptional<z.ZodObject<{
306
325
  apiKey: z.ZodString;
@@ -355,6 +374,22 @@ export declare const providerConfigSchema: z.ZodObject<{
355
374
  baseUrl?: string | undefined;
356
375
  organization?: string | undefined;
357
376
  }>>;
377
+ openrouter: z.ZodOptional<z.ZodObject<{
378
+ apiKey: z.ZodString;
379
+ baseUrl: z.ZodDefault<z.ZodString>;
380
+ siteUrl: z.ZodOptional<z.ZodString>;
381
+ siteName: z.ZodOptional<z.ZodString>;
382
+ }, "strip", z.ZodTypeAny, {
383
+ apiKey: string;
384
+ baseUrl: string;
385
+ siteUrl?: string | undefined;
386
+ siteName?: string | undefined;
387
+ }, {
388
+ apiKey: string;
389
+ baseUrl?: string | undefined;
390
+ siteUrl?: string | undefined;
391
+ siteName?: string | undefined;
392
+ }>>;
358
393
  }, "strip", z.ZodTypeAny, {
359
394
  anthropic?: {
360
395
  apiKey: string;
@@ -377,6 +412,12 @@ export declare const providerConfigSchema: z.ZodObject<{
377
412
  baseUrl: string;
378
413
  organization?: string | undefined;
379
414
  } | undefined;
415
+ openrouter?: {
416
+ apiKey: string;
417
+ baseUrl: string;
418
+ siteUrl?: string | undefined;
419
+ siteName?: string | undefined;
420
+ } | undefined;
380
421
  }, {
381
422
  anthropic?: {
382
423
  apiKey: string;
@@ -399,6 +440,12 @@ export declare const providerConfigSchema: z.ZodObject<{
399
440
  baseUrl?: string | undefined;
400
441
  organization?: string | undefined;
401
442
  } | undefined;
443
+ openrouter?: {
444
+ apiKey: string;
445
+ baseUrl?: string | undefined;
446
+ siteUrl?: string | undefined;
447
+ siteName?: string | undefined;
448
+ } | undefined;
402
449
  }>;
403
450
  /**
404
451
  * Schema for project-level settings.
@@ -532,6 +579,22 @@ export declare const appConfigSchema: z.ZodObject<{
532
579
  baseUrl?: string | undefined;
533
580
  organization?: string | undefined;
534
581
  }>>;
582
+ openrouter: z.ZodOptional<z.ZodObject<{
583
+ apiKey: z.ZodString;
584
+ baseUrl: z.ZodDefault<z.ZodString>;
585
+ siteUrl: z.ZodOptional<z.ZodString>;
586
+ siteName: z.ZodOptional<z.ZodString>;
587
+ }, "strip", z.ZodTypeAny, {
588
+ apiKey: string;
589
+ baseUrl: string;
590
+ siteUrl?: string | undefined;
591
+ siteName?: string | undefined;
592
+ }, {
593
+ apiKey: string;
594
+ baseUrl?: string | undefined;
595
+ siteUrl?: string | undefined;
596
+ siteName?: string | undefined;
597
+ }>>;
535
598
  }, "strip", z.ZodTypeAny, {
536
599
  anthropic?: {
537
600
  apiKey: string;
@@ -554,6 +617,12 @@ export declare const appConfigSchema: z.ZodObject<{
554
617
  baseUrl: string;
555
618
  organization?: string | undefined;
556
619
  } | undefined;
620
+ openrouter?: {
621
+ apiKey: string;
622
+ baseUrl: string;
623
+ siteUrl?: string | undefined;
624
+ siteName?: string | undefined;
625
+ } | undefined;
557
626
  }, {
558
627
  anthropic?: {
559
628
  apiKey: string;
@@ -576,12 +645,18 @@ export declare const appConfigSchema: z.ZodObject<{
576
645
  baseUrl?: string | undefined;
577
646
  organization?: string | undefined;
578
647
  } | undefined;
648
+ openrouter?: {
649
+ apiKey: string;
650
+ baseUrl?: string | undefined;
651
+ siteUrl?: string | undefined;
652
+ siteName?: string | undefined;
653
+ } | undefined;
579
654
  }>;
580
655
  /** Per-agent model and parameter assignments. */
581
656
  agents: z.ZodObject<{
582
657
  architect: z.ZodObject<{
583
658
  /** Which provider to use for this agent role. */
584
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
659
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
585
660
  /** The model identifier to use. */
586
661
  model: z.ZodString;
587
662
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -590,18 +665,18 @@ export declare const appConfigSchema: z.ZodObject<{
590
665
  maxTokens: z.ZodDefault<z.ZodNumber>;
591
666
  }, "strip", z.ZodTypeAny, {
592
667
  model: string;
593
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
668
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
594
669
  temperature: number;
595
670
  maxTokens: number;
596
671
  }, {
597
672
  model: string;
598
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
673
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
599
674
  temperature?: number | undefined;
600
675
  maxTokens?: number | undefined;
601
676
  }>;
602
677
  coder: z.ZodObject<{
603
678
  /** Which provider to use for this agent role. */
604
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
679
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
605
680
  /** The model identifier to use. */
606
681
  model: z.ZodString;
607
682
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -610,18 +685,18 @@ export declare const appConfigSchema: z.ZodObject<{
610
685
  maxTokens: z.ZodDefault<z.ZodNumber>;
611
686
  }, "strip", z.ZodTypeAny, {
612
687
  model: string;
613
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
688
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
614
689
  temperature: number;
615
690
  maxTokens: number;
616
691
  }, {
617
692
  model: string;
618
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
693
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
619
694
  temperature?: number | undefined;
620
695
  maxTokens?: number | undefined;
621
696
  }>;
622
697
  reviewer: z.ZodObject<{
623
698
  /** Which provider to use for this agent role. */
624
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
699
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
625
700
  /** The model identifier to use. */
626
701
  model: z.ZodString;
627
702
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -630,18 +705,18 @@ export declare const appConfigSchema: z.ZodObject<{
630
705
  maxTokens: z.ZodDefault<z.ZodNumber>;
631
706
  }, "strip", z.ZodTypeAny, {
632
707
  model: string;
633
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
708
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
634
709
  temperature: number;
635
710
  maxTokens: number;
636
711
  }, {
637
712
  model: string;
638
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
713
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
639
714
  temperature?: number | undefined;
640
715
  maxTokens?: number | undefined;
641
716
  }>;
642
717
  tester: z.ZodObject<{
643
718
  /** Which provider to use for this agent role. */
644
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
719
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
645
720
  /** The model identifier to use. */
646
721
  model: z.ZodString;
647
722
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -650,18 +725,18 @@ export declare const appConfigSchema: z.ZodObject<{
650
725
  maxTokens: z.ZodDefault<z.ZodNumber>;
651
726
  }, "strip", z.ZodTypeAny, {
652
727
  model: string;
653
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
728
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
654
729
  temperature: number;
655
730
  maxTokens: number;
656
731
  }, {
657
732
  model: string;
658
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
733
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
659
734
  temperature?: number | undefined;
660
735
  maxTokens?: number | undefined;
661
736
  }>;
662
737
  fixer: z.ZodObject<{
663
738
  /** Which provider to use for this agent role. */
664
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
739
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
665
740
  /** The model identifier to use. */
666
741
  model: z.ZodString;
667
742
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -670,18 +745,18 @@ export declare const appConfigSchema: z.ZodObject<{
670
745
  maxTokens: z.ZodDefault<z.ZodNumber>;
671
746
  }, "strip", z.ZodTypeAny, {
672
747
  model: string;
673
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
748
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
674
749
  temperature: number;
675
750
  maxTokens: number;
676
751
  }, {
677
752
  model: string;
678
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
753
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
679
754
  temperature?: number | undefined;
680
755
  maxTokens?: number | undefined;
681
756
  }>;
682
757
  judge: z.ZodObject<{
683
758
  /** Which provider to use for this agent role. */
684
- provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai"]>;
759
+ provider: z.ZodEnum<["anthropic", "gemini", "groq", "ollama", "openai", "openrouter"]>;
685
760
  /** The model identifier to use. */
686
761
  model: z.ZodString;
687
762
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -690,86 +765,86 @@ export declare const appConfigSchema: z.ZodObject<{
690
765
  maxTokens: z.ZodDefault<z.ZodNumber>;
691
766
  }, "strip", z.ZodTypeAny, {
692
767
  model: string;
693
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
768
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
694
769
  temperature: number;
695
770
  maxTokens: number;
696
771
  }, {
697
772
  model: string;
698
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
773
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
699
774
  temperature?: number | undefined;
700
775
  maxTokens?: number | undefined;
701
776
  }>;
702
777
  }, "strip", z.ZodTypeAny, {
703
778
  architect: {
704
779
  model: string;
705
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
780
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
706
781
  temperature: number;
707
782
  maxTokens: number;
708
783
  };
709
784
  coder: {
710
785
  model: string;
711
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
786
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
712
787
  temperature: number;
713
788
  maxTokens: number;
714
789
  };
715
790
  reviewer: {
716
791
  model: string;
717
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
792
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
718
793
  temperature: number;
719
794
  maxTokens: number;
720
795
  };
721
796
  tester: {
722
797
  model: string;
723
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
798
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
724
799
  temperature: number;
725
800
  maxTokens: number;
726
801
  };
727
802
  fixer: {
728
803
  model: string;
729
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
804
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
730
805
  temperature: number;
731
806
  maxTokens: number;
732
807
  };
733
808
  judge: {
734
809
  model: string;
735
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
810
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
736
811
  temperature: number;
737
812
  maxTokens: number;
738
813
  };
739
814
  }, {
740
815
  architect: {
741
816
  model: string;
742
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
817
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
743
818
  temperature?: number | undefined;
744
819
  maxTokens?: number | undefined;
745
820
  };
746
821
  coder: {
747
822
  model: string;
748
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
823
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
749
824
  temperature?: number | undefined;
750
825
  maxTokens?: number | undefined;
751
826
  };
752
827
  reviewer: {
753
828
  model: string;
754
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
829
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
755
830
  temperature?: number | undefined;
756
831
  maxTokens?: number | undefined;
757
832
  };
758
833
  tester: {
759
834
  model: string;
760
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
835
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
761
836
  temperature?: number | undefined;
762
837
  maxTokens?: number | undefined;
763
838
  };
764
839
  fixer: {
765
840
  model: string;
766
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
841
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
767
842
  temperature?: number | undefined;
768
843
  maxTokens?: number | undefined;
769
844
  };
770
845
  judge: {
771
846
  model: string;
772
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
847
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
773
848
  temperature?: number | undefined;
774
849
  maxTokens?: number | undefined;
775
850
  };
@@ -864,41 +939,47 @@ export declare const appConfigSchema: z.ZodObject<{
864
939
  baseUrl: string;
865
940
  organization?: string | undefined;
866
941
  } | undefined;
942
+ openrouter?: {
943
+ apiKey: string;
944
+ baseUrl: string;
945
+ siteUrl?: string | undefined;
946
+ siteName?: string | undefined;
947
+ } | undefined;
867
948
  };
868
949
  agents: {
869
950
  architect: {
870
951
  model: string;
871
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
952
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
872
953
  temperature: number;
873
954
  maxTokens: number;
874
955
  };
875
956
  coder: {
876
957
  model: string;
877
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
958
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
878
959
  temperature: number;
879
960
  maxTokens: number;
880
961
  };
881
962
  reviewer: {
882
963
  model: string;
883
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
964
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
884
965
  temperature: number;
885
966
  maxTokens: number;
886
967
  };
887
968
  tester: {
888
969
  model: string;
889
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
970
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
890
971
  temperature: number;
891
972
  maxTokens: number;
892
973
  };
893
974
  fixer: {
894
975
  model: string;
895
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
976
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
896
977
  temperature: number;
897
978
  maxTokens: number;
898
979
  };
899
980
  judge: {
900
981
  model: string;
901
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
982
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
902
983
  temperature: number;
903
984
  maxTokens: number;
904
985
  };
@@ -944,41 +1025,47 @@ export declare const appConfigSchema: z.ZodObject<{
944
1025
  baseUrl?: string | undefined;
945
1026
  organization?: string | undefined;
946
1027
  } | undefined;
1028
+ openrouter?: {
1029
+ apiKey: string;
1030
+ baseUrl?: string | undefined;
1031
+ siteUrl?: string | undefined;
1032
+ siteName?: string | undefined;
1033
+ } | undefined;
947
1034
  };
948
1035
  agents: {
949
1036
  architect: {
950
1037
  model: string;
951
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
1038
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
952
1039
  temperature?: number | undefined;
953
1040
  maxTokens?: number | undefined;
954
1041
  };
955
1042
  coder: {
956
1043
  model: string;
957
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
1044
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
958
1045
  temperature?: number | undefined;
959
1046
  maxTokens?: number | undefined;
960
1047
  };
961
1048
  reviewer: {
962
1049
  model: string;
963
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
1050
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
964
1051
  temperature?: number | undefined;
965
1052
  maxTokens?: number | undefined;
966
1053
  };
967
1054
  tester: {
968
1055
  model: string;
969
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
1056
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
970
1057
  temperature?: number | undefined;
971
1058
  maxTokens?: number | undefined;
972
1059
  };
973
1060
  fixer: {
974
1061
  model: string;
975
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
1062
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
976
1063
  temperature?: number | undefined;
977
1064
  maxTokens?: number | undefined;
978
1065
  };
979
1066
  judge: {
980
1067
  model: string;
981
- provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai";
1068
+ provider: "anthropic" | "gemini" | "groq" | "ollama" | "openai" | "openrouter";
982
1069
  temperature?: number | undefined;
983
1070
  maxTokens?: number | undefined;
984
1071
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAC9B,iDAAiD;;IAEjD,mCAAmC;;IAEnC,0EAA0E;;IAE1E,2DAA2D;;;;;;;;;;;;EAE7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;QAb1B,iDAAiD;;QAEjD,mCAAmC;;QAEnC,0EAA0E;;QAE1E,2DAA2D;;;;;;;;;;;;;;QAN3D,iDAAiD;;QAEjD,mCAAmC;;QAEnC,0EAA0E;;QAE1E,2DAA2D;;;;;;;;;;;;;;QAN3D,iDAAiD;;QAEjD,mCAAmC;;QAEnC,0EAA0E;;QAE1E,2DAA2D;;;;;;;;;;;;;;QAN3D,iDAAiD;;QAEjD,mCAAmC;;QAEnC,0EAA0E;;QAE1E,2DAA2D;;;;;;;;;;;;;;QAN3D,iDAAiD;;QAEjD,mCAAmC;;QAEnC,0EAA0E;;QAE1E,2DAA2D;;;;;;;;;;;;;;QAN3D,iDAAiD;;QAEjD,mCAAmC;;QAEnC,0EAA0E;;QAE1E,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAIlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH;;GAEG;AACH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;EAKnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC5B,oCAAoC;;IAEpC,6DAA6D;;IAE7D,kEAAkE;;IAElE,sCAAsC;;IAEtC,oCAAoC;;;;;;;;;;;;;;EAEtC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC7B,uDAAuD;;IAEvD,wDAAwD;;IAExD,wDAAwD;;IAExD,yDAAyD;;IAEzD,oDAAoD;;IAEpD,uDAAuD;;IAEvD,mGAAmG;;IAEnG,qDAAqD;;IAErD,4DAA4D;;;;;;;;;;;;;;;;;;;;;;EAE9D,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;IACxB,4CAA4C;;IAE5C,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAExC,iDAAiD;;;YAtIjD,iDAAiD;;YAEjD,mCAAmC;;YAEnC,0EAA0E;;YAE1E,2DAA2D;;;;;;;;;;;;;;YAN3D,iDAAiD;;YAEjD,mCAAmC;;YAEnC,0EAA0E;;YAE1E,2DAA2D;;;;;;;;;;;;;;YAN3D,iDAAiD;;YAEjD,mCAAmC;;YAEnC,0EAA0E;;YAE1E,2DAA2D;;;;;;;;;;;;;;YAN3D,iDAAiD;;YAEjD,mCAAmC;;YAEnC,0EAA0E;;YAE1E,2DAA2D;;;;;;;;;;;;;;YAN3D,iDAAiD;;YAEjD,mCAAmC;;YAEnC,0EAA0E;;YAE1E,2DAA2D;;;;;;;;;;;;;;YAN3D,iDAAiD;;YAEjD,mCAAmC;;YAEnC,0EAA0E;;YAE1E,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkI3D,8BAA8B;;QA/C9B,oCAAoC;;QAEpC,6DAA6D;;QAE7D,kEAAkE;;QAElE,sCAAsC;;QAEtC,oCAAoC;;;;;;;;;;;;;;;IAyCpC,mCAAmC;;QAjCnC,uDAAuD;;QAEvD,wDAAwD;;QAExD,wDAAwD;;QAExD,yDAAyD;;QAEzD,oDAAoD;;QAEpD,uDAAuD;;QAEvD,mGAAmG;;QAEnG,qDAAqD;;QAErD,4DAA4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB9D,CAAC"}
@@ -13,7 +13,7 @@ import { z } from 'zod';
13
13
  */
14
14
  export const agentRoleConfigSchema = z.object({
15
15
  /** Which provider to use for this agent role. */
16
- provider: z.enum(['anthropic', 'gemini', 'groq', 'ollama', 'openai']),
16
+ provider: z.enum(['anthropic', 'gemini', 'groq', 'ollama', 'openai', 'openrouter']),
17
17
  /** The model identifier to use. */
18
18
  model: z.string().min(1),
19
19
  /** Sampling temperature (0.0 = deterministic, higher = more creative). */
@@ -71,12 +71,22 @@ export const openaiProviderSchema = z.object({
71
71
  /**
72
72
  * Schema for provider configuration (all providers).
73
73
  */
74
+ /**
75
+ * Schema for OpenRouter provider settings.
76
+ */
77
+ export const openrouterProviderSchema = z.object({
78
+ apiKey: z.string().min(1, 'OpenRouter API key is required'),
79
+ baseUrl: z.string().url().default('https://openrouter.ai/api/v1'),
80
+ siteUrl: z.string().optional(),
81
+ siteName: z.string().optional(),
82
+ });
74
83
  export const providerConfigSchema = z.object({
75
84
  anthropic: anthropicProviderSchema.optional(),
76
85
  gemini: geminiProviderSchema.optional(),
77
86
  groq: groqProviderSchema.optional(),
78
87
  ollama: ollamaProviderSchema.optional(),
79
88
  openai: openaiProviderSchema.optional(),
89
+ openrouter: openrouterProviderSchema.optional(),
80
90
  });
81
91
  /**
82
92
  * Schema for project-level settings.
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/providers/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,+CAA+C;AAC/C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAM3D,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAMnE,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAMjE,CAAC"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/providers/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,+CAA+C;AAC/C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAO3D,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAOnE,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAOjE,CAAC"}
@@ -15,6 +15,7 @@ export const PROVIDER_LABELS = {
15
15
  groq: 'Groq',
16
16
  ollama: 'Ollama (Local)',
17
17
  openai: 'OpenAI (GPT)',
18
+ openrouter: 'OpenRouter',
18
19
  };
19
20
  /** Default model ID to use when the user does not specify one. */
20
21
  export const PROVIDER_DEFAULT_MODELS = {
@@ -23,6 +24,7 @@ export const PROVIDER_DEFAULT_MODELS = {
23
24
  groq: 'llama-3.3-70b-versatile',
24
25
  ollama: 'llama3.2:latest',
25
26
  openai: 'gpt-4o-mini',
27
+ openrouter: 'meta-llama/llama-3.1-8b-instruct:free',
26
28
  };
27
29
  /** Short description shown as the choice text in the init wizard's provider selector. */
28
30
  export const PROVIDER_DESCRIPTIONS = {
@@ -31,5 +33,6 @@ export const PROVIDER_DESCRIPTIONS = {
31
33
  groq: 'Groq — fast OpenAI-compatible inference, requires API key',
32
34
  ollama: 'Ollama (Local Models) — free, no API key needed',
33
35
  openai: 'OpenAI (GPT) — requires API key',
36
+ openrouter: 'OpenRouter — access 100+ models, free tier available, requires API key',
34
37
  };
35
38
  //# sourceMappingURL=metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/providers/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAoC;IAC5D,SAAS,EAAE,oBAAoB;IAC/B,MAAM,EAAE,eAAe;IACvB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,cAAc;CACzB,CAAC;AAEF,kEAAkE;AAClE,MAAM,CAAC,MAAM,uBAAuB,GAAoC;IACpE,SAAS,EAAE,0BAA0B;IACrC,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,yBAAyB;IAC/B,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,aAAa;CACxB,CAAC;AAEF,yFAAyF;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAoC;IAClE,SAAS,EAAE,uCAAuC;IAClD,MAAM,EAAE,kCAAkC;IAC1C,IAAI,EAAE,2DAA2D;IACjE,MAAM,EAAE,iDAAiD;IACzD,MAAM,EAAE,iCAAiC;CAC5C,CAAC"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/providers/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAoC;IAC5D,SAAS,EAAE,oBAAoB;IAC/B,MAAM,EAAE,eAAe;IACvB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,YAAY;CAC3B,CAAC;AAEF,kEAAkE;AAClE,MAAM,CAAC,MAAM,uBAAuB,GAAoC;IACpE,SAAS,EAAE,0BAA0B;IACrC,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,yBAAyB;IAC/B,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,aAAa;IACrB,UAAU,EAAE,uCAAuC;CACtD,CAAC;AAEF,yFAAyF;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAoC;IAClE,SAAS,EAAE,uCAAuC;IAClD,MAAM,EAAE,kCAAkC;IAC1C,IAAI,EAAE,2DAA2D;IACjE,MAAM,EAAE,iDAAiD;IACzD,MAAM,EAAE,iCAAiC;IACzC,UAAU,EAAE,wEAAwE;CACvF,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * OpenRouter provider adapter.
3
+ *
4
+ * OpenRouter exposes an OpenAI-compatible Chat Completions API that proxies
5
+ * hundreds of models (including many free-tier ones). Useful for testing
6
+ * without hitting per-provider rate limits.
7
+ *
8
+ * Free models: append ":free" to the model ID, e.g. "meta-llama/llama-3.1-8b-instruct:free"
9
+ * Full model list: https://openrouter.ai/models
10
+ *
11
+ * Dependency direction: openrouter.ts → providers/types.ts, core/errors.ts
12
+ * Used by: providers/registry.ts
13
+ */
14
+ import type { LLMProvider, ChatMessage, ChatOptions, ChatResponse, ChatChunk, ModelInfo } from './types.js';
15
+ /** Configuration required to create an OpenRouter provider. */
16
+ export interface OpenRouterProviderConfig {
17
+ readonly apiKey: string;
18
+ readonly baseUrl?: string;
19
+ /** Shown in OpenRouter usage dashboard and rankings. */
20
+ readonly siteUrl?: string;
21
+ readonly siteName?: string;
22
+ }
23
+ /**
24
+ * OpenRouter provider implementation.
25
+ *
26
+ * Uses the OpenAI-compatible endpoints at openrouter.ai. The only differences
27
+ * from the OpenAI provider are the base URL, optional HTTP-Referer / X-Title
28
+ * headers, and the default model pointing to a free-tier option.
29
+ */
30
+ export declare class OpenRouterProvider implements LLMProvider {
31
+ readonly name: "openrouter";
32
+ private readonly apiKey;
33
+ private readonly baseUrl;
34
+ private readonly siteUrl;
35
+ private readonly siteName;
36
+ constructor(config: OpenRouterProviderConfig);
37
+ /**
38
+ * Send a non-streaming chat completion request.
39
+ */
40
+ chat(messages: ChatMessage[], options?: ChatOptions): Promise<ChatResponse>;
41
+ /**
42
+ * Send a streaming chat completion request.
43
+ */
44
+ stream(messages: ChatMessage[], options?: ChatOptions): AsyncIterable<ChatChunk>;
45
+ /**
46
+ * List available models from OpenRouter (filtered to text generation models).
47
+ */
48
+ listModels(): Promise<ModelInfo[]>;
49
+ /**
50
+ * Validate that the OpenRouter API connection is working.
51
+ */
52
+ validateConnection(): Promise<boolean>;
53
+ private getHeaders;
54
+ private prepareMessages;
55
+ private extractUsage;
56
+ }
57
+ //# sourceMappingURL=openrouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,SAAS,EAEZ,MAAM,YAAY,CAAC;AAIpB,+DAA+D;AAC/D,MAAM,WAAW,wBAAwB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC9B;AAWD;;;;;;GAMG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IAClD,SAAgB,IAAI,EAAG,YAAY,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,MAAM,EAAE,wBAAwB;IAU5C;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAyCjF;;OAEG;IACI,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC;IAkEvF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAoBxC;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAc5C,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,YAAY;CAQvB"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * OpenRouter provider adapter.
3
+ *
4
+ * OpenRouter exposes an OpenAI-compatible Chat Completions API that proxies
5
+ * hundreds of models (including many free-tier ones). Useful for testing
6
+ * without hitting per-provider rate limits.
7
+ *
8
+ * Free models: append ":free" to the model ID, e.g. "meta-llama/llama-3.1-8b-instruct:free"
9
+ * Full model list: https://openrouter.ai/models
10
+ *
11
+ * Dependency direction: openrouter.ts → providers/types.ts, core/errors.ts
12
+ * Used by: providers/registry.ts
13
+ */
14
+ import { ProviderError } from '../core/errors.js';
15
+ import { logger } from '../utils/logger.js';
16
+ import { fetchWithRetry, PROVIDER_TIMEOUT_MS } from './provider-errors.js';
17
+ /** Default OpenRouter API settings. */
18
+ const DEFAULTS = {
19
+ baseUrl: 'https://openrouter.ai/api/v1',
20
+ model: 'meta-llama/llama-3.1-8b-instruct:free',
21
+ maxTokens: 4096,
22
+ siteUrl: 'https://github.com/aiagentflow/aiagentflow',
23
+ siteName: 'aiagentflow',
24
+ };
25
+ /**
26
+ * OpenRouter provider implementation.
27
+ *
28
+ * Uses the OpenAI-compatible endpoints at openrouter.ai. The only differences
29
+ * from the OpenAI provider are the base URL, optional HTTP-Referer / X-Title
30
+ * headers, and the default model pointing to a free-tier option.
31
+ */
32
+ export class OpenRouterProvider {
33
+ name = 'openrouter';
34
+ apiKey;
35
+ baseUrl;
36
+ siteUrl;
37
+ siteName;
38
+ constructor(config) {
39
+ if (!config.apiKey) {
40
+ throw new ProviderError('OpenRouter API key is required', { provider: 'openrouter' });
41
+ }
42
+ this.apiKey = config.apiKey;
43
+ this.baseUrl = (config.baseUrl ?? DEFAULTS.baseUrl).replace(/\/+$/, '');
44
+ this.siteUrl = config.siteUrl ?? DEFAULTS.siteUrl;
45
+ this.siteName = config.siteName ?? DEFAULTS.siteName;
46
+ }
47
+ /**
48
+ * Send a non-streaming chat completion request.
49
+ */
50
+ async chat(messages, options) {
51
+ const apiMessages = this.prepareMessages(messages, options);
52
+ const model = options?.model ?? DEFAULTS.model;
53
+ const body = {
54
+ model,
55
+ messages: apiMessages,
56
+ };
57
+ if (options?.maxTokens !== undefined) {
58
+ body.max_tokens = options.maxTokens;
59
+ }
60
+ if (options?.temperature !== undefined) {
61
+ body.temperature = options.temperature;
62
+ }
63
+ if (options?.stopSequences?.length) {
64
+ body.stop = options.stopSequences;
65
+ }
66
+ logger.debug(`OpenRouter chat request: model=${model}, messages=${apiMessages.length}`);
67
+ const response = await fetchWithRetry(`${this.baseUrl}/chat/completions`, { method: 'POST', headers: this.getHeaders(), body: JSON.stringify(body) }, { provider: 'openrouter', baseUrl: this.baseUrl, timeoutMs: PROVIDER_TIMEOUT_MS });
68
+ const data = await response.json();
69
+ const choice = data.choices?.[0];
70
+ const message = choice?.message;
71
+ const content = message?.content ?? '';
72
+ const usage = this.extractUsage(data);
73
+ return {
74
+ content,
75
+ model: data.model ?? model,
76
+ usage,
77
+ finishReason: choice?.finish_reason ?? 'unknown',
78
+ };
79
+ }
80
+ /**
81
+ * Send a streaming chat completion request.
82
+ */
83
+ async *stream(messages, options) {
84
+ const apiMessages = this.prepareMessages(messages, options);
85
+ const model = options?.model ?? DEFAULTS.model;
86
+ const body = {
87
+ model,
88
+ messages: apiMessages,
89
+ stream: true,
90
+ };
91
+ if (options?.maxTokens !== undefined) {
92
+ body.max_tokens = options.maxTokens;
93
+ }
94
+ if (options?.temperature !== undefined) {
95
+ body.temperature = options.temperature;
96
+ }
97
+ const response = await fetchWithRetry(`${this.baseUrl}/chat/completions`, { method: 'POST', headers: this.getHeaders(), body: JSON.stringify(body) }, { provider: 'openrouter', baseUrl: this.baseUrl, timeoutMs: PROVIDER_TIMEOUT_MS });
98
+ if (!response.body) {
99
+ throw new ProviderError('OpenRouter response has no body', { provider: 'openrouter' });
100
+ }
101
+ const reader = response.body.getReader();
102
+ const decoder = new TextDecoder();
103
+ let buffer = '';
104
+ try {
105
+ while (true) {
106
+ const { done, value } = await reader.read();
107
+ if (done)
108
+ break;
109
+ buffer += decoder.decode(value, { stream: true });
110
+ const lines = buffer.split('\n');
111
+ buffer = lines.pop() ?? '';
112
+ for (const line of lines) {
113
+ if (!line.startsWith('data: '))
114
+ continue;
115
+ const data = line.slice(6).trim();
116
+ if (data === '[DONE]') {
117
+ yield { content: '', done: true };
118
+ return;
119
+ }
120
+ try {
121
+ const event = JSON.parse(data);
122
+ const delta = event.choices?.[0]?.delta;
123
+ if (delta?.content) {
124
+ yield { content: delta.content, done: false };
125
+ }
126
+ }
127
+ catch {
128
+ // Skip unparseable lines
129
+ }
130
+ }
131
+ }
132
+ }
133
+ finally {
134
+ reader.releaseLock();
135
+ }
136
+ yield { content: '', done: true };
137
+ }
138
+ /**
139
+ * List available models from OpenRouter (filtered to text generation models).
140
+ */
141
+ async listModels() {
142
+ const response = await fetchWithRetry(`${this.baseUrl}/models`, { method: 'GET', headers: this.getHeaders() }, { provider: 'openrouter', baseUrl: this.baseUrl, timeoutMs: PROVIDER_TIMEOUT_MS });
143
+ const body = await response.json();
144
+ const models = body.data ?? [];
145
+ return models.map((m) => ({
146
+ id: m.id,
147
+ name: m.id,
148
+ provider: 'openrouter',
149
+ contextWindow: m.context_length,
150
+ }));
151
+ }
152
+ /**
153
+ * Validate that the OpenRouter API connection is working.
154
+ */
155
+ async validateConnection() {
156
+ try {
157
+ const response = await fetch(`${this.baseUrl}/models`, {
158
+ method: 'GET',
159
+ headers: this.getHeaders(),
160
+ });
161
+ return response.ok;
162
+ }
163
+ catch {
164
+ return false;
165
+ }
166
+ }
167
+ // ── Private helpers ──
168
+ getHeaders() {
169
+ return {
170
+ 'Content-Type': 'application/json',
171
+ 'Authorization': `Bearer ${this.apiKey}`,
172
+ 'HTTP-Referer': this.siteUrl,
173
+ 'X-Title': this.siteName,
174
+ };
175
+ }
176
+ prepareMessages(messages, options) {
177
+ const apiMessages = [];
178
+ if (options?.systemPrompt) {
179
+ apiMessages.push({ role: 'system', content: options.systemPrompt });
180
+ }
181
+ for (const msg of messages) {
182
+ apiMessages.push({ role: msg.role, content: msg.content });
183
+ }
184
+ return apiMessages;
185
+ }
186
+ extractUsage(response) {
187
+ const usage = response.usage;
188
+ return {
189
+ promptTokens: usage?.prompt_tokens ?? 0,
190
+ completionTokens: usage?.completion_tokens ?? 0,
191
+ totalTokens: usage?.total_tokens ?? 0,
192
+ };
193
+ }
194
+ }
195
+ //# sourceMappingURL=openrouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"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"}
@@ -100,7 +100,7 @@ function isRetryableNetworkError(err) {
100
100
  * Throws ProviderError with actionable hints on final failure.
101
101
  */
102
102
  export async function fetchWithRetry(url, init, options) {
103
- const { provider, baseUrl, timeoutMs, maxRetries = 2 } = options;
103
+ const { provider, baseUrl, timeoutMs, maxRetries = 3 } = options;
104
104
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
105
105
  try {
106
106
  const response = await fetch(url, {
@@ -162,11 +162,17 @@ function getRetryDelay(response, attempt) {
162
162
  const retryAfter = response.headers.get('retry-after');
163
163
  if (retryAfter) {
164
164
  const seconds = Number(retryAfter);
165
- if (!Number.isNaN(seconds) && seconds > 0 && seconds <= 60) {
165
+ if (!Number.isNaN(seconds) && seconds > 0 && seconds <= 120) {
166
166
  return seconds * 1000;
167
167
  }
168
168
  }
169
- // Exponential backoff: 1s, 2s, 4s
169
+ // For 429 rate limits use a longer backoff free-tier providers (Groq,
170
+ // OpenRouter) enforce per-minute windows that a 1–4s wait won't clear.
171
+ // Exponential backoff: 10s, 20s, 40s
172
+ if (response.status === 429) {
173
+ return 10_000 * 2 ** attempt;
174
+ }
175
+ // Exponential backoff for server errors: 1s, 2s, 4s
170
176
  return 1000 * 2 ** attempt;
171
177
  }
172
178
  function sleep(ms) {
@@ -1 +1 @@
1
- {"version":3,"file":"provider-errors.js","sourceRoot":"","sources":["../../src/providers/provider-errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-errors.js","sourceRoot":"","sources":["../../src/providers/provider-errors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA8D9D;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,GAAG,WAAW,CAiBzF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,EAAE,CAEzD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmBlC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAO/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAyE9D;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,GAAG,WAAW,CAiBzF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,EAAE,CAEzD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmBlC"}
@@ -14,6 +14,7 @@ import { GeminiProvider } from './gemini.js';
14
14
  import { GroqProvider } from './groq.js';
15
15
  import { OllamaProvider } from './ollama.js';
16
16
  import { OpenAIProvider } from './openai.js';
17
+ import { OpenRouterProvider } from './openrouter.js';
17
18
  import { ProviderError } from '../core/errors.js';
18
19
  import { logger } from '../utils/logger.js';
19
20
  /**
@@ -53,6 +54,13 @@ const PROVIDER_FACTORIES = {
53
54
  }
54
55
  return new OpenAIProvider(openaiConfig);
55
56
  },
57
+ openrouter: (config) => {
58
+ const openrouterConfig = config.openrouter;
59
+ if (!openrouterConfig) {
60
+ throw new ProviderError('OpenRouter provider is not configured. Run "aiagentflow init" to set up.', { provider: 'openrouter' });
61
+ }
62
+ return new OpenRouterProvider(openrouterConfig);
63
+ },
56
64
  };
57
65
  /** Cache of created provider instances (one per provider name). */
58
66
  const providerCache = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  * Used by: all provider implementations, registry, agents, workflow engine
10
10
  */
11
11
  /** Supported LLM provider names. Add new providers here. */
12
- export type LLMProviderName = 'anthropic' | 'gemini' | 'groq' | 'ollama' | 'openai';
12
+ export type LLMProviderName = 'anthropic' | 'gemini' | 'groq' | 'ollama' | 'openai' | 'openrouter';
13
13
  /** Role in a chat conversation. */
14
14
  export type ChatRole = 'system' | 'user' | 'assistant';
15
15
  /** A single message in a chat conversation. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpF,mCAAmC;AACnC,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAEvD,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAED,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IACxB,oDAAoD;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IACzB,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CACjC;AAED,8CAA8C;AAC9C,MAAM,WAAW,SAAS;IACtB,gCAAgC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CAC1B;AAED,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC;AAED,4CAA4C;AAC5C,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IACxB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAE/B;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE5E;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAEjF;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAEnC;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;AAEnG,mCAAmC;AACnC,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAEvD,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAED,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IACxB,oDAAoD;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IACzB,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CACjC;AAED,8CAA8C;AAC9C,MAAM,WAAW,SAAS;IACtB,gCAAgC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CAC1B;AAED,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC;AAED,4CAA4C;AAC5C,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IACxB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAE/B;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE5E;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAEjF;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAEnC;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiagentflow/cli",
3
- "version": "0.10.0",
3
+ "version": "1.0.0",
4
4
  "description": "A local-first, CLI-driven multi-agent AI software engineering workflow orchestrator — feed specs, PRDs, and guidelines to auto-generate implementation plans and code",
5
5
  "type": "module",
6
6
  "bin": {