@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.
- package/dist/adapters/defaults.d.ts.map +1 -1
- package/dist/adapters/defaults.js +5 -0
- package/dist/adapters/defaults.js.map +1 -1
- package/dist/adapters/factory.d.ts.map +1 -1
- package/dist/adapters/factory.js +11 -1
- package/dist/adapters/factory.js.map +1 -1
- package/dist/adapters/index.d.ts +9 -5
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +9 -5
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/ollama.d.ts +47 -0
- package/dist/adapters/ollama.d.ts.map +1 -0
- package/dist/adapters/ollama.js +124 -0
- package/dist/adapters/ollama.js.map +1 -0
- package/dist/adapters/openrouter.d.ts +50 -0
- package/dist/adapters/openrouter.d.ts.map +1 -0
- package/dist/adapters/openrouter.js +148 -0
- package/dist/adapters/openrouter.js.map +1 -0
- package/dist/auth/__tests__/keychain.test.d.ts +18 -0
- package/dist/auth/__tests__/keychain.test.d.ts.map +1 -0
- package/dist/auth/__tests__/keychain.test.js +155 -0
- package/dist/auth/__tests__/keychain.test.js.map +1 -0
- package/dist/auth/__tests__/resolver.test.d.ts +13 -0
- package/dist/auth/__tests__/resolver.test.d.ts.map +1 -0
- package/dist/auth/__tests__/resolver.test.js +200 -0
- package/dist/auth/__tests__/resolver.test.js.map +1 -0
- package/dist/auth/__tests__/validator.test.d.ts +15 -0
- package/dist/auth/__tests__/validator.test.d.ts.map +1 -0
- package/dist/auth/__tests__/validator.test.js +197 -0
- package/dist/auth/__tests__/validator.test.js.map +1 -0
- package/dist/auth/types.d.ts +1 -1
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js +8 -0
- package/dist/auth/types.js.map +1 -1
- package/dist/auth/validator.d.ts.map +1 -1
- package/dist/auth/validator.js +117 -11
- package/dist/auth/validator.js.map +1 -1
- package/dist/config/schema.d.ts +12 -12
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +8 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +4 -2
- package/src/adapters/defaults.ts +5 -0
- package/src/adapters/factory.ts +11 -1
- package/src/adapters/index.ts +9 -5
- package/src/adapters/ollama.ts +157 -0
- package/src/adapters/openrouter.ts +194 -0
- package/src/auth/__tests__/keychain.test.ts +171 -0
- package/src/auth/__tests__/resolver.test.ts +255 -0
- package/src/auth/__tests__/validator.test.ts +241 -0
- package/src/auth/types.ts +15 -1
- package/src/auth/validator.ts +130 -11
- package/src/config/schema.ts +8 -1
- package/src/index.ts +1 -1
package/dist/auth/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,UAAU,
|
|
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"}
|
package/dist/auth/types.js
CHANGED
|
@@ -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
|
package/dist/auth/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
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,
|
|
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"}
|
package/dist/auth/validator.js
CHANGED
|
@@ -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}]
|
|
314
|
+
return `[${status}] OpenRouter: ${truncate(msg, 200)}`;
|
|
209
315
|
}
|
|
210
316
|
catch {
|
|
211
317
|
/* fall through */
|
|
212
318
|
}
|
|
213
|
-
return statusOnlyMessage("
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAoBzD,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAoB,EACpB,GAAW;IAEX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,IAAI,MAAwB,CAAC;QAC7B,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,WAAW;gBACd,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM;
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/auth/validator.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -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;;;;;;;;;;;;;;;;;;
|
|
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"}
|
package/dist/config/schema.js
CHANGED
|
@@ -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([
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
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",
|
package/src/adapters/defaults.ts
CHANGED
|
@@ -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
|
};
|
package/src/adapters/factory.ts
CHANGED
|
@@ -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
|
}
|
package/src/adapters/index.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adapter exports.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
*
|
|
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";
|