@agentgazer/shared 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/__tests__/normalize.test.d.ts +2 -0
  2. package/dist/__tests__/normalize.test.d.ts.map +1 -0
  3. package/dist/__tests__/normalize.test.js +159 -0
  4. package/dist/__tests__/normalize.test.js.map +1 -0
  5. package/dist/__tests__/pricing.test.js +14 -27
  6. package/dist/__tests__/pricing.test.js.map +1 -1
  7. package/dist/__tests__/providers.test.js +59 -32
  8. package/dist/__tests__/providers.test.js.map +1 -1
  9. package/dist/__tests__/simhash.test.d.ts +2 -0
  10. package/dist/__tests__/simhash.test.d.ts.map +1 -0
  11. package/dist/__tests__/simhash.test.js +107 -0
  12. package/dist/__tests__/simhash.test.js.map +1 -0
  13. package/dist/index.d.ts +6 -3
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +19 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/logger.d.ts.map +1 -1
  18. package/dist/logger.js +3 -2
  19. package/dist/logger.js.map +1 -1
  20. package/dist/models.d.ts +4 -1
  21. package/dist/models.d.ts.map +1 -1
  22. package/dist/models.js +22 -34
  23. package/dist/models.js.map +1 -1
  24. package/dist/normalize.d.ts +35 -0
  25. package/dist/normalize.d.ts.map +1 -0
  26. package/dist/normalize.js +119 -0
  27. package/dist/normalize.js.map +1 -0
  28. package/dist/parsers.d.ts.map +1 -1
  29. package/dist/parsers.js +0 -1
  30. package/dist/parsers.js.map +1 -1
  31. package/dist/pricing.d.ts +6 -0
  32. package/dist/pricing.d.ts.map +1 -1
  33. package/dist/pricing.js +38 -8
  34. package/dist/pricing.js.map +1 -1
  35. package/dist/provider-validator.d.ts +19 -0
  36. package/dist/provider-validator.d.ts.map +1 -0
  37. package/dist/provider-validator.js +321 -0
  38. package/dist/provider-validator.js.map +1 -0
  39. package/dist/providers.d.ts +30 -2
  40. package/dist/providers.d.ts.map +1 -1
  41. package/dist/providers.js +105 -19
  42. package/dist/providers.js.map +1 -1
  43. package/dist/simhash.d.ts +28 -0
  44. package/dist/simhash.d.ts.map +1 -0
  45. package/dist/simhash.js +98 -0
  46. package/dist/simhash.js.map +1 -0
  47. package/package.json +1 -1
package/dist/pricing.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getModelPricing = getModelPricing;
4
4
  exports.calculateCost = calculateCost;
5
5
  exports.listSupportedModels = listSupportedModels;
6
+ exports.getProviderModels = getProviderModels;
6
7
  // Prices in USD per 1M tokens
7
8
  const PRICING_TABLE = {
8
9
  // OpenAI
@@ -19,10 +20,11 @@ const PRICING_TABLE = {
19
20
  "claude-sonnet-4-20250514": { inputPerMToken: 3.00, outputPerMToken: 15.00 },
20
21
  "claude-haiku-4-5-20251001": { inputPerMToken: 0.80, outputPerMToken: 4.00 },
21
22
  // Google
23
+ "gemini-3-pro-preview": { inputPerMToken: 2.50, outputPerMToken: 10.00 },
24
+ "gemini-3-flash-preview": { inputPerMToken: 0.20, outputPerMToken: 0.80 },
22
25
  "gemini-2.5-pro": { inputPerMToken: 1.25, outputPerMToken: 5.00 },
23
26
  "gemini-2.5-flash": { inputPerMToken: 0.15, outputPerMToken: 0.60 },
24
- "gemini-2.0-flash": { inputPerMToken: 0.10, outputPerMToken: 0.40 },
25
- "gemini-2.0-flash-lite": { inputPerMToken: 0.075, outputPerMToken: 0.30 },
27
+ "gemini-2.5-flash-lite": { inputPerMToken: 0.075, outputPerMToken: 0.30 },
26
28
  // Mistral
27
29
  "mistral-large-latest": { inputPerMToken: 2.00, outputPerMToken: 6.00 },
28
30
  "mistral-small-latest": { inputPerMToken: 0.20, outputPerMToken: 0.60 },
@@ -33,22 +35,25 @@ const PRICING_TABLE = {
33
35
  // DeepSeek
34
36
  "deepseek-chat": { inputPerMToken: 0.27, outputPerMToken: 1.10 },
35
37
  "deepseek-reasoner": { inputPerMToken: 0.55, outputPerMToken: 2.19 },
36
- // Moonshot
38
+ // Moonshot / Kimi
37
39
  "moonshot-v1-8k": { inputPerMToken: 0.20, outputPerMToken: 2.00 },
38
40
  "moonshot-v1-32k": { inputPerMToken: 1.00, outputPerMToken: 3.00 },
39
41
  "moonshot-v1-128k": { inputPerMToken: 0.60, outputPerMToken: 2.50 },
40
- // Zhipu (GLM)
42
+ "kimi-k2.5": { inputPerMToken: 0.60, outputPerMToken: 2.50 },
43
+ "kimi-k2-thinking": { inputPerMToken: 0.60, outputPerMToken: 2.50 },
44
+ // Zhipu (GLM) / Z.ai
41
45
  "glm-4.7": { inputPerMToken: 0.28, outputPerMToken: 1.11 },
42
46
  "glm-4.7-flash": { inputPerMToken: 0, outputPerMToken: 0 },
47
+ "glm-4.5": { inputPerMToken: 0.20, outputPerMToken: 0.80 },
48
+ "glm-4.5-flash": { inputPerMToken: 0, outputPerMToken: 0 },
43
49
  "glm-4": { inputPerMToken: 0.14, outputPerMToken: 0.42 },
44
50
  "glm-4-air": { inputPerMToken: 0.11, outputPerMToken: 0.28 },
45
51
  "glm-4-flash": { inputPerMToken: 0, outputPerMToken: 0 },
46
52
  // MiniMax
53
+ "MiniMax-M2.1": { inputPerMToken: 0.30, outputPerMToken: 1.20 },
54
+ "MiniMax-M2.1-lightning": { inputPerMToken: 0.15, outputPerMToken: 0.60 },
47
55
  "MiniMax-M2": { inputPerMToken: 0.30, outputPerMToken: 1.20 },
48
- "MiniMax-01": { inputPerMToken: 0.20, outputPerMToken: 1.10 },
49
- // Baichuan
50
- "Baichuan4": { inputPerMToken: 13.89, outputPerMToken: 13.89 },
51
- "Baichuan3-Turbo": { inputPerMToken: 1.39, outputPerMToken: 1.39 },
56
+ "M2-her": { inputPerMToken: 0.30, outputPerMToken: 1.20 },
52
57
  // Yi (01.AI)
53
58
  "yi-lightning": { inputPerMToken: 0.14, outputPerMToken: 0.14 },
54
59
  "yi-large": { inputPerMToken: 2.78, outputPerMToken: 2.78 },
@@ -71,4 +76,29 @@ function calculateCost(model, tokensIn, tokensOut) {
71
76
  function listSupportedModels() {
72
77
  return Object.keys(PRICING_TABLE);
73
78
  }
79
+ const PROVIDER_MODELS = {
80
+ openai: ["gpt-4o", "gpt-4o-mini", "gpt-4-turbo", "o1", "o1-mini", "o1-pro", "o3-mini"],
81
+ anthropic: ["claude-opus-4-5-20251101", "claude-sonnet-4-5-20250929", "claude-sonnet-4-20250514", "claude-haiku-4-5-20251001"],
82
+ google: ["gemini-3-pro-preview", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite"],
83
+ mistral: ["mistral-large-latest", "mistral-small-latest", "codestral-latest"],
84
+ cohere: ["command-r-plus", "command-r"],
85
+ deepseek: ["deepseek-chat", "deepseek-reasoner"],
86
+ moonshot: ["moonshot-v1-8k", "moonshot-v1-32k", "moonshot-v1-128k", "kimi-k2.5", "kimi-k2-thinking"],
87
+ zhipu: ["glm-4.7", "glm-4.7-flash", "glm-4.5", "glm-4.5-flash", "glm-4", "glm-4-air", "glm-4-flash"],
88
+ minimax: ["MiniMax-M2.1", "MiniMax-M2.1-lightning", "MiniMax-M2", "M2-her"],
89
+ yi: ["yi-lightning", "yi-large", "yi-medium"],
90
+ };
91
+ function getProviderModels(provider) {
92
+ const modelIds = PROVIDER_MODELS[provider];
93
+ if (!modelIds)
94
+ return [];
95
+ return modelIds.map((id) => {
96
+ const pricing = PRICING_TABLE[id];
97
+ return {
98
+ id,
99
+ inputPrice: pricing?.inputPerMToken ?? 0,
100
+ outputPrice: pricing?.outputPerMToken ?? 0,
101
+ };
102
+ });
103
+ }
74
104
  //# sourceMappingURL=pricing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":";;AAmEA,0CAEC;AAED,sCAcC;AAED,kDAEC;AApFD,8BAA8B;AAC9B,MAAM,aAAa,GAAiC;IAClD,SAAS;IACT,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE;IAC1D,aAAa,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAC9D,aAAa,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;IAChE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;IACvD,SAAS,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE;IAC3D,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE;IAC7D,SAAS,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAE1D,YAAY;IACZ,0BAA0B,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;IAC7E,4BAA4B,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE;IAC9E,0BAA0B,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE;IAC5E,2BAA2B,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAE5E,SAAS;IACT,gBAAgB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IACjE,kBAAkB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IACnE,kBAAkB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IACnE,uBAAuB,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;IAEzE,UAAU;IACV,sBAAsB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IACvE,sBAAsB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IACvE,kBAAkB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAEnE,SAAS;IACT,gBAAgB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE;IAClE,WAAW,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAE5D,WAAW;IACX,eAAe,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAChE,mBAAmB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAEpE,WAAW;IACX,gBAAgB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IACjE,iBAAiB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAClE,kBAAkB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAEnE,cAAc;IACd,SAAS,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAC1D,eAAe,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE;IAC1D,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IACxD,WAAW,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAC5D,aAAa,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE;IAExD,UAAU;IACV,YAAY,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAC7D,YAAY,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAE7D,WAAW;IACX,WAAW,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;IAC9D,iBAAiB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAElE,aAAa;IACb,cAAc,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAC/D,UAAU,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;IAC3D,WAAW,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;CAC7D,CAAC;AAEF,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AAC5E,CAAC;AAED,SAAgB,aAAa,CAC3B,KAAa,EACb,QAAgB,EAChB,SAAiB;IAEjB,IAAI,QAAQ,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAClE,MAAM,UAAU,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IACrE,yEAAyE;IACzE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5D,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { ProviderName } from "./providers.js";
2
+ export interface ValidationResult {
3
+ valid: boolean;
4
+ error?: string;
5
+ models?: string[];
6
+ }
7
+ /**
8
+ * Validate an API key for a given provider.
9
+ * Uses free endpoints where possible to avoid consuming tokens.
10
+ */
11
+ export declare function validateProviderKey(provider: ProviderName, apiKey: string): Promise<ValidationResult>;
12
+ /**
13
+ * Test if a specific model exists for a provider.
14
+ */
15
+ export declare function testProviderModel(provider: ProviderName, apiKey: string, modelId: string): Promise<{
16
+ exists: boolean;
17
+ error?: string;
18
+ }>;
19
+ //# sourceMappingURL=provider-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-validator.d.ts","sourceRoot":"","sources":["../src/provider-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6C,MAAM,gBAAgB,CAAC;AAEzF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CAyB3B;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB9C"}
@@ -0,0 +1,321 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateProviderKey = validateProviderKey;
4
+ exports.testProviderModel = testProviderModel;
5
+ const providers_js_1 = require("./providers.js");
6
+ /**
7
+ * Validate an API key for a given provider.
8
+ * Uses free endpoints where possible to avoid consuming tokens.
9
+ */
10
+ async function validateProviderKey(provider, apiKey) {
11
+ switch (provider) {
12
+ case "openai":
13
+ return validateOpenAI(apiKey);
14
+ case "anthropic":
15
+ return validateAnthropic(apiKey);
16
+ case "google":
17
+ return validateGoogle(apiKey);
18
+ case "mistral":
19
+ return validateMistral(apiKey);
20
+ case "cohere":
21
+ return validateCohere(apiKey);
22
+ case "deepseek":
23
+ return validateDeepSeek(apiKey);
24
+ case "moonshot":
25
+ return validateMoonshot(apiKey);
26
+ case "zhipu":
27
+ return validateZhipu(apiKey);
28
+ case "minimax":
29
+ return validateMinimax(apiKey);
30
+ case "yi":
31
+ return validateYi(apiKey);
32
+ default:
33
+ return { valid: false, error: `Validation not supported for provider: ${provider}` };
34
+ }
35
+ }
36
+ /**
37
+ * Test if a specific model exists for a provider.
38
+ */
39
+ async function testProviderModel(provider, apiKey, modelId) {
40
+ // For providers with /models endpoint, check if model is in list
41
+ const result = await validateProviderKey(provider, apiKey);
42
+ if (!result.valid) {
43
+ return { exists: false, error: result.error };
44
+ }
45
+ if (result.models && result.models.length > 0) {
46
+ const exists = result.models.some(m => m.toLowerCase() === modelId.toLowerCase() ||
47
+ m.includes(modelId) ||
48
+ modelId.includes(m));
49
+ return { exists };
50
+ }
51
+ // For providers without models list, try a minimal request
52
+ return testModelWithMinimalRequest(provider, apiKey, modelId);
53
+ }
54
+ // ---------------------------------------------------------------------------
55
+ // Provider-specific validation
56
+ // ---------------------------------------------------------------------------
57
+ async function validateOpenAI(apiKey) {
58
+ try {
59
+ const res = await fetch("https://api.openai.com/v1/models", {
60
+ headers: { Authorization: `Bearer ${apiKey}` },
61
+ });
62
+ if (res.status === 401) {
63
+ return { valid: false, error: "Invalid API key" };
64
+ }
65
+ if (!res.ok) {
66
+ return { valid: false, error: `HTTP ${res.status}: ${res.statusText}` };
67
+ }
68
+ const data = await res.json();
69
+ const models = data.data?.map(m => m.id) ?? [];
70
+ return { valid: true, models };
71
+ }
72
+ catch (err) {
73
+ return { valid: false, error: String(err) };
74
+ }
75
+ }
76
+ async function validateAnthropic(apiKey) {
77
+ // Anthropic doesn't have a free /models endpoint, so we send a minimal request
78
+ try {
79
+ const res = await fetch("https://api.anthropic.com/v1/messages", {
80
+ method: "POST",
81
+ headers: {
82
+ "x-api-key": apiKey,
83
+ "anthropic-version": "2023-06-01",
84
+ "Content-Type": "application/json",
85
+ },
86
+ body: JSON.stringify({
87
+ model: "claude-3-haiku-20240307",
88
+ max_tokens: 1,
89
+ messages: [{ role: "user", content: "." }],
90
+ }),
91
+ });
92
+ if (res.status === 401) {
93
+ return { valid: false, error: "Invalid API key" };
94
+ }
95
+ if (res.status === 400) {
96
+ const data = await res.json();
97
+ return { valid: false, error: data.error?.message ?? "Bad request" };
98
+ }
99
+ // 200 or 429 (rate limit) means key is valid
100
+ if (res.ok || res.status === 429) {
101
+ return { valid: true };
102
+ }
103
+ return { valid: false, error: `HTTP ${res.status}: ${res.statusText}` };
104
+ }
105
+ catch (err) {
106
+ return { valid: false, error: String(err) };
107
+ }
108
+ }
109
+ async function validateGoogle(apiKey) {
110
+ try {
111
+ const res = await fetch(`https://generativelanguage.googleapis.com/v1/models?key=${apiKey}`);
112
+ if (res.status === 400 || res.status === 401 || res.status === 403) {
113
+ return { valid: false, error: "Invalid API key" };
114
+ }
115
+ if (!res.ok) {
116
+ return { valid: false, error: `HTTP ${res.status}: ${res.statusText}` };
117
+ }
118
+ const data = await res.json();
119
+ const models = data.models?.map(m => m.name.replace("models/", "")) ?? [];
120
+ return { valid: true, models };
121
+ }
122
+ catch (err) {
123
+ return { valid: false, error: String(err) };
124
+ }
125
+ }
126
+ async function validateMistral(apiKey) {
127
+ try {
128
+ const res = await fetch("https://api.mistral.ai/v1/models", {
129
+ headers: { Authorization: `Bearer ${apiKey}` },
130
+ });
131
+ if (res.status === 401) {
132
+ return { valid: false, error: "Invalid API key" };
133
+ }
134
+ if (!res.ok) {
135
+ return { valid: false, error: `HTTP ${res.status}: ${res.statusText}` };
136
+ }
137
+ const data = await res.json();
138
+ const models = data.data?.map(m => m.id) ?? [];
139
+ return { valid: true, models };
140
+ }
141
+ catch (err) {
142
+ return { valid: false, error: String(err) };
143
+ }
144
+ }
145
+ async function validateCohere(apiKey) {
146
+ try {
147
+ const res = await fetch("https://api.cohere.com/v1/models", {
148
+ headers: { Authorization: `Bearer ${apiKey}` },
149
+ });
150
+ if (res.status === 401) {
151
+ return { valid: false, error: "Invalid API key" };
152
+ }
153
+ if (!res.ok) {
154
+ return { valid: false, error: `HTTP ${res.status}: ${res.statusText}` };
155
+ }
156
+ const data = await res.json();
157
+ const models = data.models?.map(m => m.name) ?? [];
158
+ return { valid: true, models };
159
+ }
160
+ catch (err) {
161
+ return { valid: false, error: String(err) };
162
+ }
163
+ }
164
+ async function validateDeepSeek(apiKey) {
165
+ try {
166
+ const res = await fetch("https://api.deepseek.com/v1/models", {
167
+ headers: { Authorization: `Bearer ${apiKey}` },
168
+ });
169
+ if (res.status === 401) {
170
+ return { valid: false, error: "Invalid API key" };
171
+ }
172
+ if (!res.ok) {
173
+ return { valid: false, error: `HTTP ${res.status}: ${res.statusText}` };
174
+ }
175
+ const data = await res.json();
176
+ const models = data.data?.map(m => m.id) ?? [];
177
+ return { valid: true, models };
178
+ }
179
+ catch (err) {
180
+ return { valid: false, error: String(err) };
181
+ }
182
+ }
183
+ async function validateMoonshot(apiKey) {
184
+ // Try international endpoint first (api.moonshot.ai), fallback to China (api.moonshot.cn)
185
+ try {
186
+ let res = await fetch("https://api.moonshot.ai/v1/models", {
187
+ headers: { Authorization: `Bearer ${apiKey}` },
188
+ });
189
+ // If international fails with 401, try China endpoint
190
+ if (res.status === 401) {
191
+ res = await fetch("https://api.moonshot.cn/v1/models", {
192
+ headers: { Authorization: `Bearer ${apiKey}` },
193
+ });
194
+ }
195
+ if (res.status === 401) {
196
+ return { valid: false, error: "Invalid API key" };
197
+ }
198
+ if (!res.ok) {
199
+ return { valid: false, error: `HTTP ${res.status}: ${res.statusText}` };
200
+ }
201
+ const data = await res.json();
202
+ const models = data.data?.map(m => m.id) ?? [];
203
+ return { valid: true, models };
204
+ }
205
+ catch (err) {
206
+ return { valid: false, error: String(err) };
207
+ }
208
+ }
209
+ async function validateZhipu(apiKey) {
210
+ // Try international endpoint first (z.ai), fallback to China (bigmodel.cn)
211
+ try {
212
+ let res = await fetch("https://api.z.ai/api/paas/v4/models", {
213
+ headers: { Authorization: `Bearer ${apiKey}` },
214
+ });
215
+ // If international fails with 401 or 404, try China endpoint
216
+ if (res.status === 401 || res.status === 404) {
217
+ res = await fetch("https://open.bigmodel.cn/api/paas/v4/models", {
218
+ headers: { Authorization: `Bearer ${apiKey}` },
219
+ });
220
+ }
221
+ if (res.status === 401) {
222
+ return { valid: false, error: "Invalid API key" };
223
+ }
224
+ if (!res.ok) {
225
+ return { valid: false, error: `HTTP ${res.status}: ${res.statusText}` };
226
+ }
227
+ const data = await res.json();
228
+ const models = data.data?.map(m => m.id) ?? [];
229
+ return { valid: true, models };
230
+ }
231
+ catch (err) {
232
+ return { valid: false, error: String(err) };
233
+ }
234
+ }
235
+ async function validateMinimax(apiKey) {
236
+ // MiniMax uses /v1/text/chatcompletion_v2 endpoint (no /models endpoint)
237
+ try {
238
+ const res = await fetch("https://api.minimax.io/v1/text/chatcompletion_v2", {
239
+ method: "POST",
240
+ headers: {
241
+ Authorization: `Bearer ${apiKey}`,
242
+ "Content-Type": "application/json",
243
+ },
244
+ body: JSON.stringify({
245
+ model: "MiniMax-M2",
246
+ max_completion_tokens: 1,
247
+ messages: [{ role: "user", content: "." }],
248
+ }),
249
+ });
250
+ if (res.status === 401 || res.status === 403) {
251
+ return { valid: false, error: "Invalid API key" };
252
+ }
253
+ // 200 or 429 (rate limit) means key is valid
254
+ if (res.ok || res.status === 429) {
255
+ return { valid: true };
256
+ }
257
+ return { valid: false, error: `HTTP ${res.status}: ${res.statusText}` };
258
+ }
259
+ catch (err) {
260
+ return { valid: false, error: String(err) };
261
+ }
262
+ }
263
+ async function validateYi(apiKey) {
264
+ // Try international endpoint first (01.ai), fallback to China (lingyiwanwu.com)
265
+ try {
266
+ let res = await fetch("https://api.01.ai/v1/models", {
267
+ headers: { Authorization: `Bearer ${apiKey}` },
268
+ });
269
+ // If international fails with 401, try China endpoint
270
+ if (res.status === 401) {
271
+ res = await fetch("https://api.lingyiwanwu.com/v1/models", {
272
+ headers: { Authorization: `Bearer ${apiKey}` },
273
+ });
274
+ }
275
+ if (res.status === 401) {
276
+ return { valid: false, error: "Invalid API key" };
277
+ }
278
+ if (!res.ok) {
279
+ return { valid: false, error: `HTTP ${res.status}: ${res.statusText}` };
280
+ }
281
+ const data = await res.json();
282
+ const models = data.data?.map(m => m.id) ?? [];
283
+ return { valid: true, models };
284
+ }
285
+ catch (err) {
286
+ return { valid: false, error: String(err) };
287
+ }
288
+ }
289
+ async function testModelWithMinimalRequest(provider, apiKey, modelId) {
290
+ const baseUrl = (0, providers_js_1.getProviderBaseUrl)(provider);
291
+ const authHeader = (0, providers_js_1.getProviderAuthHeader)(provider, apiKey);
292
+ if (!baseUrl || !authHeader) {
293
+ return { exists: false, error: `Unsupported provider: ${provider}` };
294
+ }
295
+ // Try OpenAI-compatible chat completions endpoint
296
+ try {
297
+ const res = await fetch(`${baseUrl}/v1/chat/completions`, {
298
+ method: "POST",
299
+ headers: {
300
+ [authHeader.name]: authHeader.value,
301
+ "Content-Type": "application/json",
302
+ },
303
+ body: JSON.stringify({
304
+ model: modelId,
305
+ max_tokens: 1,
306
+ messages: [{ role: "user", content: "." }],
307
+ }),
308
+ });
309
+ if (res.status === 404 || (res.status === 400 && (await res.text()).includes("model"))) {
310
+ return { exists: false, error: "Model not found" };
311
+ }
312
+ if (res.ok || res.status === 429) {
313
+ return { exists: true };
314
+ }
315
+ return { exists: false, error: `HTTP ${res.status}` };
316
+ }
317
+ catch (err) {
318
+ return { exists: false, error: String(err) };
319
+ }
320
+ }
321
+ //# sourceMappingURL=provider-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-validator.js","sourceRoot":"","sources":["../src/provider-validator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
- export type ProviderName = "openai" | "anthropic" | "google" | "mistral" | "cohere" | "deepseek" | "moonshot" | "zhipu" | "minimax" | "baichuan" | "yi" | "unknown";
1
+ export type ProviderName = "openai" | "anthropic" | "google" | "mistral" | "cohere" | "deepseek" | "moonshot" | "zhipu" | "minimax" | "yi" | "unknown";
2
2
  /** All known provider names (excludes "unknown"). Single source of truth. */
3
3
  export declare const KNOWN_PROVIDER_NAMES: ProviderName[];
4
+ /**
5
+ * Provider names available for user selection in UI/CLI.
6
+ * Excludes providers without active API access.
7
+ */
8
+ export declare const SELECTABLE_PROVIDER_NAMES: ProviderName[];
4
9
  export declare function detectProvider(url: string): ProviderName;
5
10
  /**
6
11
  * Detect provider by hostname only. Returns "unknown" for path-only matches.
@@ -8,11 +13,29 @@ export declare function detectProvider(url: string): ProviderName;
8
13
  */
9
14
  export declare function detectProviderByHostname(url: string): ProviderName;
10
15
  export declare function getProviderBaseUrl(provider: ProviderName): string | null;
16
+ /**
17
+ * Returns the root API URL for a provider for path-based routing.
18
+ * Includes version prefix where needed (e.g., /v1beta for Google).
19
+ * Used for providers that need path-based routing (e.g., Google's native API).
20
+ */
21
+ export declare function getProviderRootUrl(provider: ProviderName): string | null;
22
+ /**
23
+ * Check if a provider uses path-based routing (client provides the full path).
24
+ * These providers expect the trailing path to be preserved, not replaced with a fixed endpoint.
25
+ */
26
+ export declare function providerUsesPathRouting(provider: ProviderName): boolean;
27
+ /**
28
+ * Returns the complete chat endpoint URL for a provider.
29
+ * This is the full URL including path - no additional path construction needed.
30
+ * Returns null for unknown providers.
31
+ */
32
+ export declare function getProviderChatEndpoint(provider: ProviderName): string | null;
11
33
  /**
12
34
  * Returns the auth header name and value for a given provider.
13
35
  * Different providers use different header conventions.
36
+ * @param useNativeApi - For Google, whether to use native API auth (x-goog-api-key) vs OpenAI-compatible (Bearer)
14
37
  */
15
- export declare function getProviderAuthHeader(provider: ProviderName, apiKey: string): {
38
+ export declare function getProviderAuthHeader(provider: ProviderName, apiKey: string, useNativeApi?: boolean): {
16
39
  name: string;
17
40
  value: string;
18
41
  } | null;
@@ -25,6 +48,11 @@ export declare function parsePathPrefix(path: string): {
25
48
  provider: ProviderName;
26
49
  remainingPath: string;
27
50
  } | null;
51
+ /**
52
+ * Rewrite OpenAI-compatible paths to provider-specific paths.
53
+ * Some Chinese providers use different endpoint structures.
54
+ */
55
+ export declare function rewriteProviderPath(provider: ProviderName, path: string): string;
28
56
  /**
29
57
  * Parse a URL path to extract an agent ID from /agents/{id}/... format.
30
58
  * Given "/agents/my-bot/openai/v1/chat/completions" returns:
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,UAAU,GACV,UAAU,GACV,OAAO,GACP,SAAS,GACT,UAAU,GACV,IAAI,GACJ,SAAS,CAAC;AAQd,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,EAAE,YAAY,EAY9C,CAAC;AAmDF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CA4BxD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAmBlE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAexE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmBxC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GACX;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS1D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GACX;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMnD"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,UAAU,GACV,UAAU,GACV,OAAO,GACP,SAAS,GACT,IAAI,GACJ,SAAS,CAAC;AAQd,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,EAAE,YAAY,EAW9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,YAAY,EAUnD,CAAC;AA+CF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CA4BxD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAmBlE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAgBxE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAcxE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAGvE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAc7E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,OAAe,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsBxC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GACX;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAW1D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAYhF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GACX;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMnD"}