@almightygpt/core 0.10.0 → 0.11.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 (56) hide show
  1. package/dist/adapters/defaults.d.ts.map +1 -1
  2. package/dist/adapters/defaults.js +5 -0
  3. package/dist/adapters/defaults.js.map +1 -1
  4. package/dist/adapters/factory.d.ts.map +1 -1
  5. package/dist/adapters/factory.js +11 -1
  6. package/dist/adapters/factory.js.map +1 -1
  7. package/dist/adapters/index.d.ts +9 -5
  8. package/dist/adapters/index.d.ts.map +1 -1
  9. package/dist/adapters/index.js +9 -5
  10. package/dist/adapters/index.js.map +1 -1
  11. package/dist/adapters/ollama.d.ts +47 -0
  12. package/dist/adapters/ollama.d.ts.map +1 -0
  13. package/dist/adapters/ollama.js +124 -0
  14. package/dist/adapters/ollama.js.map +1 -0
  15. package/dist/adapters/openrouter.d.ts +50 -0
  16. package/dist/adapters/openrouter.d.ts.map +1 -0
  17. package/dist/adapters/openrouter.js +148 -0
  18. package/dist/adapters/openrouter.js.map +1 -0
  19. package/dist/auth/__tests__/keychain.test.d.ts +18 -0
  20. package/dist/auth/__tests__/keychain.test.d.ts.map +1 -0
  21. package/dist/auth/__tests__/keychain.test.js +155 -0
  22. package/dist/auth/__tests__/keychain.test.js.map +1 -0
  23. package/dist/auth/__tests__/resolver.test.d.ts +13 -0
  24. package/dist/auth/__tests__/resolver.test.d.ts.map +1 -0
  25. package/dist/auth/__tests__/resolver.test.js +200 -0
  26. package/dist/auth/__tests__/resolver.test.js.map +1 -0
  27. package/dist/auth/__tests__/validator.test.d.ts +15 -0
  28. package/dist/auth/__tests__/validator.test.d.ts.map +1 -0
  29. package/dist/auth/__tests__/validator.test.js +197 -0
  30. package/dist/auth/__tests__/validator.test.js.map +1 -0
  31. package/dist/auth/types.d.ts +1 -1
  32. package/dist/auth/types.d.ts.map +1 -1
  33. package/dist/auth/types.js +8 -0
  34. package/dist/auth/types.js.map +1 -1
  35. package/dist/auth/validator.d.ts.map +1 -1
  36. package/dist/auth/validator.js +117 -11
  37. package/dist/auth/validator.js.map +1 -1
  38. package/dist/config/schema.d.ts +12 -12
  39. package/dist/config/schema.d.ts.map +1 -1
  40. package/dist/config/schema.js +8 -1
  41. package/dist/config/schema.js.map +1 -1
  42. package/dist/index.d.ts +1 -1
  43. package/dist/index.js +1 -1
  44. package/package.json +4 -2
  45. package/src/adapters/defaults.ts +5 -0
  46. package/src/adapters/factory.ts +11 -1
  47. package/src/adapters/index.ts +9 -5
  48. package/src/adapters/ollama.ts +157 -0
  49. package/src/adapters/openrouter.ts +194 -0
  50. package/src/auth/__tests__/keychain.test.ts +171 -0
  51. package/src/auth/__tests__/resolver.test.ts +255 -0
  52. package/src/auth/__tests__/validator.test.ts +241 -0
  53. package/src/auth/types.ts +15 -1
  54. package/src/auth/validator.ts +130 -11
  55. package/src/config/schema.ts +8 -1
  56. package/src/index.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,KAAK,GACL,UAAU,GACV,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;CAWzE;AAED,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAKnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAIxD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,WAAW,GACX,QAAQ,GAER,YAAY,GACZ,QAAQ,CAAC;AAEb;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,KAAK,GACL,UAAU,GACV,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;CAWzE;AAED,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAUnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAOxD,CAAC"}
@@ -40,6 +40,11 @@ export const PROVIDER_ENV_VARS = {
40
40
  anthropic: ["ANTHROPIC_API_KEY"],
41
41
  // Google's SDK historically accepted both names; honor both.
42
42
  google: ["GOOGLE_API_KEY", "GEMINI_API_KEY"],
43
+ openrouter: ["OPENROUTER_API_KEY"],
44
+ // Ollama is local — no key. The empty list signals "no auth"
45
+ // to the resolver (it just falls through to keychain → missing,
46
+ // and the Ollama adapter bypasses the resolver entirely).
47
+ ollama: [],
43
48
  };
44
49
  /**
45
50
  * Browser-launchable URL where a user creates / manages keys for each
@@ -49,5 +54,8 @@ export const PROVIDER_KEY_URLS = {
49
54
  openai: "https://platform.openai.com/api-keys",
50
55
  anthropic: "https://console.anthropic.com/settings/keys",
51
56
  google: "https://aistudio.google.com/apikey",
57
+ openrouter: "https://openrouter.ai/keys",
58
+ // Ollama is local — no keys page. Linked instead to install docs.
59
+ ollama: "https://ollama.ai/download",
52
60
  };
53
61
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAgCH;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,QAAQ,CAAa;IACrB,MAAM,CAAS;IACxB,YAAY,QAAoB,EAAE,MAAc,EAAE,aAAsB;QACtE,KAAK,CACH,aAAa;YACX,wBAAwB,QAAQ,IAAI;gBAClC,yBAAyB,QAAQ,iCAAiC;gBAClE,aAAa,MAAM,iBAAiB,CACzC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,mEAAmE;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAA0C;IACtE,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,SAAS,EAAE,CAAC,mBAAmB,CAAC;IAChC,6DAA6D;IAC7D,MAAM,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC7C,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC3D,MAAM,EAAE,sCAAsC;IAC9C,SAAS,EAAE,6CAA6C;IACxD,MAAM,EAAE,oCAAoC;CAC7C,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAsCH;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,QAAQ,CAAa;IACrB,MAAM,CAAS;IACxB,YAAY,QAAoB,EAAE,MAAc,EAAE,aAAsB;QACtE,KAAK,CACH,aAAa;YACX,wBAAwB,QAAQ,IAAI;gBAClC,yBAAyB,QAAQ,iCAAiC;gBAClE,aAAa,MAAM,iBAAiB,CACzC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,mEAAmE;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAA0C;IACtE,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,SAAS,EAAE,CAAC,mBAAmB,CAAC;IAChC,6DAA6D;IAC7D,MAAM,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,UAAU,EAAE,CAAC,oBAAoB,CAAC;IAClC,6DAA6D;IAC7D,gEAAgE;IAChE,0DAA0D;IAC1D,MAAM,EAAE,EAAE;CACX,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC3D,MAAM,EAAE,sCAAsC;IAC9C,SAAS,EAAE,6CAA6C;IACxD,MAAM,EAAE,oCAAoC;IAC5C,UAAU,EAAE,4BAA4B;IACxC,kEAAkE;IAClE,MAAM,EAAE,4BAA4B;CACrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/auth/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,UAAU,EACpB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,CAAC,CAwB3B"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/auth/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,UAAU,EACpB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,CAAC,CAsC3B"}
@@ -47,6 +47,20 @@ export async function validateKey(provider, key) {
47
47
  case "google":
48
48
  result = await validateGoogle(key);
49
49
  break;
50
+ case "openrouter":
51
+ result = await validateOpenRouter(key);
52
+ break;
53
+ case "ollama":
54
+ // Ollama has no key — "validation" means probing the local
55
+ // daemon. The key arg is ignored.
56
+ result = await validateOllama();
57
+ break;
58
+ default: {
59
+ // Exhaustiveness check — TypeScript will error here if a new
60
+ // ProviderId is added without a switch case.
61
+ const _exhaustive = provider;
62
+ throw new Error(`Unknown provider: ${String(_exhaustive)}`);
63
+ }
50
64
  }
51
65
  result.latencyMs = Date.now() - start;
52
66
  return result;
@@ -82,7 +96,7 @@ async function validateOpenAI(key) {
82
96
  return {
83
97
  ok: false,
84
98
  statusCode: res.status,
85
- error: normalizeOpenAIError(res.status, rawBody),
99
+ error: normalizeOpenAIError(res.status, rawBody, key),
86
100
  rawBody,
87
101
  };
88
102
  }
@@ -117,7 +131,7 @@ async function validateAnthropic(key) {
117
131
  return {
118
132
  ok: false,
119
133
  statusCode: res.status,
120
- error: normalizeAnthropicError(res.status, rawBody),
134
+ error: normalizeAnthropicError(res.status, rawBody, key),
121
135
  rawBody,
122
136
  };
123
137
  }
@@ -162,31 +176,101 @@ async function validateGoogle(key) {
162
176
  clearTimeout(timer);
163
177
  }
164
178
  }
179
+ async function validateOpenRouter(key) {
180
+ // OpenRouter is OpenAI-compatible at https://openrouter.ai/api/v1.
181
+ // Same chat-completions shape — point fetch at OR's base URL.
182
+ const model = DEFAULT_MODELS.openrouter;
183
+ const controller = new AbortController();
184
+ const timer = setTimeout(() => controller.abort(), VALIDATION_TIMEOUT_MS);
185
+ try {
186
+ const res = await fetch("https://openrouter.ai/api/v1/chat/completions", {
187
+ method: "POST",
188
+ headers: {
189
+ "content-type": "application/json",
190
+ authorization: `Bearer ${key}`,
191
+ "HTTP-Referer": "https://github.com/roxjayanath/almightygpt",
192
+ "X-Title": "AlmightyGPT validation",
193
+ },
194
+ body: JSON.stringify({
195
+ model,
196
+ messages: [{ role: "user", content: "hi" }],
197
+ max_tokens: 1,
198
+ }),
199
+ signal: controller.signal,
200
+ });
201
+ if (!res.ok) {
202
+ const rawBody = await res.text().catch(() => "");
203
+ return {
204
+ ok: false,
205
+ statusCode: res.status,
206
+ error: normalizeOpenRouterError(res.status, rawBody, key),
207
+ rawBody,
208
+ };
209
+ }
210
+ const data = (await res.json());
211
+ return { ok: true, model: data.model ?? model };
212
+ }
213
+ finally {
214
+ clearTimeout(timer);
215
+ }
216
+ }
217
+ async function validateOllama() {
218
+ // No key. Probe the local daemon at /api/tags — cheap, no model
219
+ // invocation. If the user has Ollama running, this confirms the
220
+ // adapter can reach it. Doesn't confirm the default model is
221
+ // pulled — that surfaces on the first real call.
222
+ const baseUrl = process.env["OLLAMA_BASE_URL"] ?? "http://localhost:11434";
223
+ const probeUrl = baseUrl.replace(/\/v1\/?$/, "") + "/api/tags";
224
+ const controller = new AbortController();
225
+ const timer = setTimeout(() => controller.abort(), 3000);
226
+ try {
227
+ const res = await fetch(probeUrl, { signal: controller.signal });
228
+ if (!res.ok) {
229
+ return {
230
+ ok: false,
231
+ statusCode: res.status,
232
+ error: `[${res.status}] Ollama daemon at ${baseUrl} responded with an error.`,
233
+ };
234
+ }
235
+ return { ok: true, model: DEFAULT_MODELS.ollama };
236
+ }
237
+ catch (err) {
238
+ return {
239
+ ok: false,
240
+ error: `Ollama daemon unreachable at ${baseUrl}. Is Ollama installed ` +
241
+ `and running? Try \`ollama serve\` or open the Ollama app.`,
242
+ rawBody: err instanceof Error ? err.message : String(err),
243
+ };
244
+ }
245
+ finally {
246
+ clearTimeout(timer);
247
+ }
248
+ }
165
249
  // ─── Error normalization (Codex v0.8 P2 #6) ──────────────────────────
166
250
  //
167
251
  // Parse known provider JSON error shapes into short, user-safe messages.
168
252
  // Never echo the raw key back even by accident (defense in depth: we
169
253
  // also redact anything that looks like the submitted key).
170
- function normalizeOpenAIError(status, rawBody) {
254
+ function normalizeOpenAIError(status, rawBody, submittedKey) {
171
255
  // OpenAI shape: { "error": { "message": "...", "type": "...", "code": "..." } }
172
256
  try {
173
257
  const parsed = JSON.parse(rawBody);
174
258
  const msg = parsed.error?.message;
175
259
  if (msg)
176
- return `[${status}] OpenAI: ${truncate(msg, 200)}`;
260
+ return `[${status}] OpenAI: ${truncate(redactKey(msg, submittedKey), 200)}`;
177
261
  }
178
262
  catch {
179
263
  /* fall through */
180
264
  }
181
265
  return statusOnlyMessage("OpenAI", status);
182
266
  }
183
- function normalizeAnthropicError(status, rawBody) {
267
+ function normalizeAnthropicError(status, rawBody, submittedKey) {
184
268
  // Anthropic shape: { "type": "error", "error": { "type": "...", "message": "..." } }
185
269
  try {
186
270
  const parsed = JSON.parse(rawBody);
187
271
  const msg = parsed.error?.message;
188
272
  if (msg)
189
- return `[${status}] Anthropic: ${truncate(msg, 200)}`;
273
+ return `[${status}] Anthropic: ${truncate(redactKey(msg, submittedKey), 200)}`;
190
274
  }
191
275
  catch {
192
276
  /* fall through */
@@ -195,22 +279,44 @@ function normalizeAnthropicError(status, rawBody) {
195
279
  }
196
280
  function normalizeGoogleError(status, rawBody, submittedKey) {
197
281
  // Google shape: { "error": { "code": N, "message": "...", "status": "..." } }
282
+ try {
283
+ const parsed = JSON.parse(rawBody);
284
+ const msg = parsed.error?.message ?? "";
285
+ if (msg)
286
+ return `[${status}] Google: ${truncate(redactKey(msg, submittedKey), 200)}`;
287
+ }
288
+ catch {
289
+ /* fall through */
290
+ }
291
+ return statusOnlyMessage("Google", status);
292
+ }
293
+ /**
294
+ * Belt-and-braces: if a provider echoes the submitted key in its
295
+ * error body, redact before surfacing to the user. Codex's v0.8 P2 #6
296
+ * found this gap (originally Google-only); now applied to all three
297
+ * providers via this shared helper.
298
+ */
299
+ function redactKey(msg, key) {
300
+ if (!key || !msg.includes(key))
301
+ return msg;
302
+ return msg.split(key).join("<redacted-key>");
303
+ }
304
+ function normalizeOpenRouterError(status, rawBody, submittedKey) {
305
+ // OpenRouter forwards provider errors but wraps them; shape is
306
+ // typically { "error": { "message": "...", "code": N } }.
198
307
  try {
199
308
  const parsed = JSON.parse(rawBody);
200
309
  let msg = parsed.error?.message ?? "";
201
- // Belt-and-braces redaction: Google sometimes echoes the key in
202
- // error messages (e.g. "API key not valid. Pass a valid API key.")
203
- // — we don't ship the actual key value if it ever ends up here.
204
310
  if (submittedKey && msg.includes(submittedKey)) {
205
311
  msg = msg.replace(submittedKey, "<redacted-key>");
206
312
  }
207
313
  if (msg)
208
- return `[${status}] Google: ${truncate(msg, 200)}`;
314
+ return `[${status}] OpenRouter: ${truncate(msg, 200)}`;
209
315
  }
210
316
  catch {
211
317
  /* fall through */
212
318
  }
213
- return statusOnlyMessage("Google", status);
319
+ return statusOnlyMessage("OpenRouter", status);
214
320
  }
215
321
  function statusOnlyMessage(provider, status) {
216
322
  if (status === 401 || status === 403) {
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/auth/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/auth/validator.ts"],"names":[],"mappings":"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"}
@@ -9,19 +9,19 @@ import { z } from "zod";
9
9
  export declare const AgentRoleSchema: z.ZodEnum<["worker", "reviewer", "both", "optional"]>;
10
10
  export declare const AgentConfigSchema: z.ZodObject<{
11
11
  enabled: z.ZodDefault<z.ZodBoolean>;
12
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
12
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
13
13
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
14
14
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
15
15
  memoryFile: z.ZodString;
16
16
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
17
17
  enabled: z.ZodDefault<z.ZodBoolean>;
18
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
18
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
19
19
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
20
20
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
21
21
  memoryFile: z.ZodString;
22
22
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
23
23
  enabled: z.ZodDefault<z.ZodBoolean>;
24
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
24
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
25
25
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
26
26
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
27
27
  memoryFile: z.ZodString;
@@ -40,19 +40,19 @@ export declare const ConfigSchema: z.ZodObject<{
40
40
  runsDir: z.ZodDefault<z.ZodString>;
41
41
  agents: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
42
42
  enabled: z.ZodDefault<z.ZodBoolean>;
43
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
43
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
44
44
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
45
45
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
46
46
  memoryFile: z.ZodString;
47
47
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
48
48
  enabled: z.ZodDefault<z.ZodBoolean>;
49
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
49
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
50
50
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
51
51
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
52
52
  memoryFile: z.ZodString;
53
53
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
54
54
  enabled: z.ZodDefault<z.ZodBoolean>;
55
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
55
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
56
56
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
57
57
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
58
58
  memoryFile: z.ZodString;
@@ -132,19 +132,19 @@ export declare const ConfigSchema: z.ZodObject<{
132
132
  runsDir: z.ZodDefault<z.ZodString>;
133
133
  agents: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
134
134
  enabled: z.ZodDefault<z.ZodBoolean>;
135
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
135
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
136
136
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
137
137
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
138
138
  memoryFile: z.ZodString;
139
139
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
140
140
  enabled: z.ZodDefault<z.ZodBoolean>;
141
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
141
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
142
142
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
143
143
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
144
144
  memoryFile: z.ZodString;
145
145
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
146
146
  enabled: z.ZodDefault<z.ZodBoolean>;
147
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
147
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
148
148
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
149
149
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
150
150
  memoryFile: z.ZodString;
@@ -224,19 +224,19 @@ export declare const ConfigSchema: z.ZodObject<{
224
224
  runsDir: z.ZodDefault<z.ZodString>;
225
225
  agents: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
226
226
  enabled: z.ZodDefault<z.ZodBoolean>;
227
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
227
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
228
228
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
229
229
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
230
230
  memoryFile: z.ZodString;
231
231
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
232
232
  enabled: z.ZodDefault<z.ZodBoolean>;
233
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
233
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
234
234
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
235
235
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
236
236
  memoryFile: z.ZodString;
237
237
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
238
238
  enabled: z.ZodDefault<z.ZodBoolean>;
239
- provider: z.ZodEnum<["openai", "anthropic", "google", "mock"]>;
239
+ provider: z.ZodEnum<["openai", "anthropic", "google", "openrouter", "ollama", "mock"]>;
240
240
  mode: z.ZodDefault<z.ZodEnum<["api", "cli"]>>;
241
241
  role: z.ZodDefault<z.ZodEnum<["worker", "reviewer", "both", "optional"]>>;
242
242
  memoryFile: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,uDAAqD,CAAC;AAElF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;gCAQd,CAAC;AAEjB,eAAO,MAAM,YAAY;;;IAIrB;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;QAQC;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAlBP;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;QAQC;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAlBP;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;QAQC;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA8BK,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,uDAAqD,CAAC;AAElF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;gCAed,CAAC;AAEjB,eAAO,MAAM,YAAY;;;IAIrB;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;QAQC;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAlBP;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;QAQC;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAlBP;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;QAQC;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA8BK,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -10,7 +10,14 @@ export const AgentRoleSchema = z.enum(["worker", "reviewer", "both", "optional"]
10
10
  export const AgentConfigSchema = z
11
11
  .object({
12
12
  enabled: z.boolean().default(true),
13
- provider: z.enum(["openai", "anthropic", "google", "mock"]),
13
+ provider: z.enum([
14
+ "openai",
15
+ "anthropic",
16
+ "google",
17
+ "openrouter",
18
+ "ollama",
19
+ "mock",
20
+ ]),
14
21
  mode: z.enum(["api", "cli"]).default("api"),
15
22
  role: AgentRoleSchema.default("optional"),
16
23
  memoryFile: z.string().min(1),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAElF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3C,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;IACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;IAC3D;;;;;;OAMG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACjE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3D,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACtC;;;;WAIG;QACH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC5C,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACd,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;KAC3D,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACxC,mCAAmC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;KAC/D,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;QACpD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;KAC9D,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACpE,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;KACpD,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;CACf,CAAC;KACD,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,7 +12,7 @@
12
12
  * - review/ ✅ task #11 diff review pipeline (with #12/#13/#14 wiring)
13
13
  * - budget/ ✅ task #14 BudgetTracker + BudgetExceededError
14
14
  */
15
- export declare const VERSION = "0.10.0";
15
+ export declare const VERSION = "0.11.0";
16
16
  export { startMcpServer } from "./mcp/server.js";
17
17
  export { checkGitStatus, assertSafeToWrite, GitStatusDirtyError, type GitStatusCheck, } from "./git/status.js";
18
18
  export { installTemplate, hasExistingConfig, type InstallOptions, type InstallResult, } from "./templates/install.js";
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@
12
12
  * - review/ ✅ task #11 diff review pipeline (with #12/#13/#14 wiring)
13
13
  * - budget/ ✅ task #14 BudgetTracker + BudgetExceededError
14
14
  */
15
- export const VERSION = "0.10.0";
15
+ export const VERSION = "0.11.0";
16
16
  // MCP server (v0.9.0+) — exposes AlmightyGPT's review surface as MCP tools.
17
17
  export { startMcpServer } from "./mcp/server.js";
18
18
  // Git safety primitives
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almightygpt/core",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Core orchestrator, adapters, config, runs, and review logic for AlmightyGPT",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -20,7 +20,9 @@
20
20
  "scripts": {
21
21
  "build": "tsc -p tsconfig.json",
22
22
  "clean": "rm -rf dist",
23
- "watch": "tsc -p tsconfig.json --watch"
23
+ "watch": "tsc -p tsconfig.json --watch",
24
+ "test": "vitest run",
25
+ "test:watch": "vitest"
24
26
  },
25
27
  "dependencies": {
26
28
  "@anthropic-ai/sdk": "^0.30.0",
@@ -31,6 +31,9 @@ export const DEFAULT_MODELS: Record<ProviderId, string> = {
31
31
  openai: "gpt-4o",
32
32
  anthropic: "claude-sonnet-4-6",
33
33
  google: "gemini-2.5-flash",
34
+ // v0.12.0+ — meta-providers
35
+ openrouter: "deepseek/deepseek-chat",
36
+ ollama: "llama3.3:70b",
34
37
  };
35
38
 
36
39
  /**
@@ -41,4 +44,6 @@ export const PROVIDER_PRETTY_NAME: Record<ProviderId, string> = {
41
44
  openai: "OpenAI",
42
45
  anthropic: "Anthropic",
43
46
  google: "Google",
47
+ openrouter: "OpenRouter",
48
+ ollama: "Ollama (local)",
44
49
  };
@@ -12,6 +12,8 @@ import { MockAdapter } from "./mock.js";
12
12
  import { OpenAIAdapter } from "./openai.js";
13
13
  import { ClaudeAdapter } from "./claude.js";
14
14
  import { GeminiAdapter } from "./gemini.js";
15
+ import { OpenRouterAdapter } from "./openrouter.js";
16
+ import { OllamaAdapter } from "./ollama.js";
15
17
 
16
18
  export function makeAdapter(name: string, provider: string): Adapter {
17
19
  switch (provider) {
@@ -21,12 +23,16 @@ export function makeAdapter(name: string, provider: string): Adapter {
21
23
  return new ClaudeAdapter(name);
22
24
  case "google":
23
25
  return new GeminiAdapter(name);
26
+ case "openrouter":
27
+ return new OpenRouterAdapter(name);
28
+ case "ollama":
29
+ return new OllamaAdapter(name);
24
30
  case "mock":
25
31
  return new MockAdapter();
26
32
  default:
27
33
  throw new Error(
28
34
  `Provider "${provider}" not supported. ` +
29
- `Use "openai", "anthropic", "google", or "mock".`,
35
+ `Use "openai", "anthropic", "google", "openrouter", "ollama", or "mock".`,
30
36
  );
31
37
  }
32
38
  }
@@ -39,6 +45,10 @@ export function envHintForProvider(provider: string): string {
39
45
  return "Export ANTHROPIC_API_KEY in your environment.";
40
46
  case "google":
41
47
  return "Export GOOGLE_API_KEY (or GEMINI_API_KEY) in your environment.";
48
+ case "openrouter":
49
+ return "Export OPENROUTER_API_KEY in your environment.";
50
+ case "ollama":
51
+ return "Install Ollama (https://ollama.ai) and run `ollama serve` locally.";
42
52
  default:
43
53
  return "";
44
54
  }
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * Adapter exports.
3
3
  *
4
- * Add new adapters here as they're implemented:
5
- * - Claude (Anthropic) — task #15
6
- * - Gemini post-MVP 1
7
- * - OpenRouter — post-MVP 1 (for cost-conscious users; see
8
- * docs/claude/competitor-ai-council.md)
4
+ * Currently shipped adapters:
5
+ * - OpenAI (gpt-4o family)
6
+ * - Anthropic (Claude Sonnet 4.x family)
7
+ * - Google (Gemini 2.5 family)
8
+ * - OpenRouter — v0.12.0+, meta-provider unlocking 100+ models
9
+ * - Ollama — v0.12.0+, local models, no cloud calls
10
+ * - Mock — for testing without API keys
9
11
  */
10
12
 
11
13
  export type {
@@ -19,3 +21,5 @@ export { MockAdapter } from "./mock.js";
19
21
  export { OpenAIAdapter, type OpenAIAdapterOptions } from "./openai.js";
20
22
  export { ClaudeAdapter, type ClaudeAdapterOptions } from "./claude.js";
21
23
  export { GeminiAdapter, type GeminiAdapterOptions } from "./gemini.js";
24
+ export { OpenRouterAdapter, type OpenRouterAdapterOptions } from "./openrouter.js";
25
+ export { OllamaAdapter, type OllamaAdapterOptions } from "./ollama.js";