@sriinnu/kosha-discovery 1.12.1 → 1.14.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 (101) hide show
  1. package/README.md +3 -0
  2. package/dist/cli-cmd-doctor.d.ts.map +1 -1
  3. package/dist/cli-cmd-doctor.js +27 -1
  4. package/dist/cli-cmd-doctor.js.map +1 -1
  5. package/dist/cli-cmd-model.d.ts.map +1 -1
  6. package/dist/cli-cmd-model.js +12 -6
  7. package/dist/cli-cmd-model.js.map +1 -1
  8. package/dist/cli-cmd-query.d.ts.map +1 -1
  9. package/dist/cli-cmd-query.js +17 -0
  10. package/dist/cli-cmd-query.js.map +1 -1
  11. package/dist/cli-commands.d.ts +4 -0
  12. package/dist/cli-commands.d.ts.map +1 -1
  13. package/dist/cli-commands.js +27 -0
  14. package/dist/cli-commands.js.map +1 -1
  15. package/dist/credentials/resolver.d.ts +0 -1
  16. package/dist/credentials/resolver.d.ts.map +1 -1
  17. package/dist/credentials/resolver.js +10 -46
  18. package/dist/credentials/resolver.js.map +1 -1
  19. package/dist/discovery/base.d.ts.map +1 -1
  20. package/dist/discovery/base.js +11 -2
  21. package/dist/discovery/base.js.map +1 -1
  22. package/dist/discovery/bedrock.d.ts +2 -0
  23. package/dist/discovery/bedrock.d.ts.map +1 -1
  24. package/dist/discovery/bedrock.js +6 -1
  25. package/dist/discovery/bedrock.js.map +1 -1
  26. package/dist/discovery/catalog-only.d.ts +19 -0
  27. package/dist/discovery/catalog-only.d.ts.map +1 -0
  28. package/dist/discovery/catalog-only.js +56 -0
  29. package/dist/discovery/catalog-only.js.map +1 -0
  30. package/dist/discovery/free-tier.d.ts +6 -0
  31. package/dist/discovery/free-tier.d.ts.map +1 -1
  32. package/dist/discovery/free-tier.js +8 -0
  33. package/dist/discovery/free-tier.js.map +1 -1
  34. package/dist/discovery/generic-openai.d.ts +27 -0
  35. package/dist/discovery/generic-openai.d.ts.map +1 -1
  36. package/dist/discovery/generic-openai.js +109 -5
  37. package/dist/discovery/generic-openai.js.map +1 -1
  38. package/dist/discovery/modelsdev-seed.d.ts +12 -0
  39. package/dist/discovery/modelsdev-seed.d.ts.map +1 -1
  40. package/dist/discovery/modelsdev-seed.js +73 -3
  41. package/dist/discovery/modelsdev-seed.js.map +1 -1
  42. package/dist/discovery/openai-compatible.d.ts +2 -0
  43. package/dist/discovery/openai-compatible.d.ts.map +1 -1
  44. package/dist/discovery/openai-compatible.js +19 -11
  45. package/dist/discovery/openai-compatible.js.map +1 -1
  46. package/dist/discovery/price-evidence.d.ts +29 -0
  47. package/dist/discovery/price-evidence.d.ts.map +1 -0
  48. package/dist/discovery/price-evidence.js +46 -0
  49. package/dist/discovery/price-evidence.js.map +1 -0
  50. package/dist/discovery/public-seed.d.ts.map +1 -1
  51. package/dist/discovery/public-seed.js +9 -1
  52. package/dist/discovery/public-seed.js.map +1 -1
  53. package/dist/discovery/vertex.d.ts +2 -0
  54. package/dist/discovery/vertex.d.ts.map +1 -1
  55. package/dist/discovery/vertex.js +36 -8
  56. package/dist/discovery/vertex.js.map +1 -1
  57. package/dist/discovery-contract.d.ts +4 -1
  58. package/dist/discovery-contract.d.ts.map +1 -1
  59. package/dist/discovery-contract.js +2 -2
  60. package/dist/discovery-contract.js.map +1 -1
  61. package/dist/enrichment/catalog.js +2 -2
  62. package/dist/enrichment/catalog.js.map +1 -1
  63. package/dist/enrichment/litellm.d.ts.map +1 -1
  64. package/dist/enrichment/litellm.js +18 -16
  65. package/dist/enrichment/litellm.js.map +1 -1
  66. package/dist/mcp-server.d.ts +1 -1
  67. package/dist/mcp-server.d.ts.map +1 -1
  68. package/dist/mcp-server.js +8 -1
  69. package/dist/mcp-server.js.map +1 -1
  70. package/dist/provider-catalog.d.ts +42 -0
  71. package/dist/provider-catalog.d.ts.map +1 -1
  72. package/dist/provider-catalog.js +105 -6
  73. package/dist/provider-catalog.js.map +1 -1
  74. package/dist/proxy.d.ts.map +1 -1
  75. package/dist/proxy.js +19 -4
  76. package/dist/proxy.js.map +1 -1
  77. package/dist/registry-discovery.d.ts +1 -1
  78. package/dist/registry-discovery.d.ts.map +1 -1
  79. package/dist/registry-discovery.js +13 -5
  80. package/dist/registry-discovery.js.map +1 -1
  81. package/dist/registry-query.d.ts.map +1 -1
  82. package/dist/registry-query.js +11 -1
  83. package/dist/registry-query.js.map +1 -1
  84. package/dist/registry-runtime.d.ts +5 -1
  85. package/dist/registry-runtime.d.ts.map +1 -1
  86. package/dist/registry-runtime.js +234 -18
  87. package/dist/registry-runtime.js.map +1 -1
  88. package/dist/registry.d.ts.map +1 -1
  89. package/dist/registry.js +11 -2
  90. package/dist/registry.js.map +1 -1
  91. package/dist/server.d.ts.map +1 -1
  92. package/dist/server.js +5 -3
  93. package/dist/server.js.map +1 -1
  94. package/dist/subscription-plans.d.ts +63 -0
  95. package/dist/subscription-plans.d.ts.map +1 -0
  96. package/dist/subscription-plans.js +259 -0
  97. package/dist/subscription-plans.js.map +1 -0
  98. package/dist/types.d.ts +33 -0
  99. package/dist/types.d.ts.map +1 -1
  100. package/package.json +7 -7
  101. package/server.json +2 -2
@@ -14,9 +14,21 @@
14
14
  * long tail, which is where most new providers land.
15
15
  * @module
16
16
  */
17
+ import { SUBSCRIPTION_PLANS } from "../subscription-plans.js";
18
+ import { SUBSCRIPTION_PLAN_CAPABILITY } from "./free-tier.js";
17
19
  import { OpenAICompatibleDiscoverer, } from "./openai-compatible.js";
18
20
  import { getPublicSeed } from "./public-seed.js";
19
21
  import { STATIC_XAI_MODELS } from "./static-direct.js";
22
+ /**
23
+ * A plan could not test a key borrowed from a shared env var (no list route).
24
+ * Not a rejection: the key may well work elsewhere in its family.
25
+ */
26
+ export class PlanKeyUnverifiedError extends Error {
27
+ constructor(providerName) {
28
+ super(`${providerName}: no model list to test a shared key against`);
29
+ this.name = "PlanKeyUnverifiedError";
30
+ }
31
+ }
20
32
  /**
21
33
  * A provider discoverer built from an {@link OpenAICompatibleProviderSpec}.
22
34
  */
@@ -43,7 +55,61 @@ export class GenericOpenAICompatibleDiscoverer extends OpenAICompatibleDiscovere
43
55
  if (this.spec.seedOnly || !hasKey) {
44
56
  return this.keylessModels();
45
57
  }
46
- return super.discover(credential, options);
58
+ if (!this.spec.subscriptionPlan)
59
+ return super.discover(credential, options);
60
+ let live;
61
+ try {
62
+ live = await super.discover(credential, options);
63
+ }
64
+ catch (error) {
65
+ // No list route and no catalog to fall back on: still not a verdict
66
+ // on a borrowed key.
67
+ if (credential.shared && error instanceof Error && /API error:\s*404\b/.test(error.message)) {
68
+ throw new PlanKeyUnverifiedError(this.providerName);
69
+ }
70
+ throw error;
71
+ }
72
+ // No list route answered, so the shared pipeline fell back to the
73
+ // catalog. That proves nothing about a key borrowed from a shared env
74
+ // var, and claiming it would list a plan the user may not have.
75
+ if (credential.shared && !live.some((card) => card.source === "api")) {
76
+ throw new PlanKeyUnverifiedError(this.providerName);
77
+ }
78
+ return this.asPlanCards(live);
79
+ }
80
+ listHeaders(apiKey) {
81
+ if (this.spec.listAuth === "x-api-key")
82
+ return { "x-api-key": apiKey, "anthropic-version": "2023-06-01" };
83
+ return super.listHeaders(apiKey);
84
+ }
85
+ /**
86
+ * Tag live plan cards as plan-billed and fill their limits from the plan's
87
+ * catalog entry by ID. A model the catalog doesn't know yet (a preview out
88
+ * a day) keeps its live card, untagged limits and all.
89
+ */
90
+ async asPlanCards(live) {
91
+ let seeds = [];
92
+ try {
93
+ seeds = await getPublicSeed(this.providerId);
94
+ }
95
+ catch {
96
+ /* limits stay unknown; the listing itself is still right */
97
+ }
98
+ const byId = new Map(seeds.map((seed) => [seed.id, seed]));
99
+ return live.map((card) => {
100
+ const seed = byId.get(card.id);
101
+ const raw = card.rawCapabilities ?? card.capabilities;
102
+ const { pricing: _perToken, ...rest } = card;
103
+ return {
104
+ ...rest,
105
+ name: seed?.name ?? card.name,
106
+ contextWindow: card.contextWindow || seed?.contextWindow || 0,
107
+ maxOutputTokens: card.maxOutputTokens || seed?.maxOutputTokens || 0,
108
+ ...(card.maxInputTokens === undefined && seed?.maxInputTokens ? { maxInputTokens: seed.maxInputTokens } : {}),
109
+ ...(card.releaseDate === undefined && seed?.releaseDate ? { releaseDate: seed.releaseDate } : {}),
110
+ rawCapabilities: raw.includes(SUBSCRIPTION_PLAN_CAPABILITY) ? raw : [...raw, SUBSCRIPTION_PLAN_CAPABILITY],
111
+ };
112
+ });
47
113
  }
48
114
  /** Public catalog seed, falling back to the curated list. */
49
115
  async keylessModels() {
@@ -104,7 +170,7 @@ export class GenericOpenAICompatibleDiscoverer extends OpenAICompatibleDiscovere
104
170
  if (this.spec.namespacedIds) {
105
171
  return this.extractPrefixOrigin(id, this.providerId, this.spec.originAliases);
106
172
  }
107
- return this.inferOriginFromKeywords(lower, [...(this.spec.originRules ?? [])], this.providerId);
173
+ return this.inferOriginFromKeywords(lower, [...(this.spec.originRules ?? [])], this.spec.defaultOrigin ?? this.providerId);
108
174
  }
109
175
  /** Spec rules win over the shared heuristics; chat is the fallback. */
110
176
  resolveMode(lower) {
@@ -167,10 +233,10 @@ const SHARED_ORIGIN_ALIASES = {
167
233
  moonshotai: "moonshot",
168
234
  "stepfun-ai": "stepfun",
169
235
  minimaxai: "minimax",
170
- "qwen": "qwen",
171
- "inclusionai": "inclusionai",
236
+ qwen: "qwen",
237
+ inclusionai: "inclusionai",
172
238
  thinkingmachines: "thinkingmachines",
173
- "paddlepaddle": "baidu",
239
+ paddlepaddle: "baidu",
174
240
  "x-ai": "xai",
175
241
  };
176
242
  /** Keyword → origin rules shared by providers that serve flat open-weight IDs. */
@@ -187,6 +253,43 @@ const OPEN_WEIGHT_ORIGIN_RULES = [
187
253
  ["mistral", "mistral"],
188
254
  ["llama", "meta"],
189
255
  ];
256
+ /**
257
+ * Model families plans resell, keyword → origin. Most specific first; a model
258
+ * no rule names is the plan vendor's own (`defaultOrigin`).
259
+ */
260
+ const PLAN_ORIGIN_RULES = [
261
+ ["deepseek", "deepseek"],
262
+ ["glm", "zai"],
263
+ ["kimi", "moonshot"],
264
+ ["minimax", "minimax"],
265
+ ["qwen", "qwen"],
266
+ ["mimo", "xiaomi"],
267
+ ["hunyuan", "tencent"],
268
+ ["doubao", "bytedance"],
269
+ ["step-", "stepfun"],
270
+ ];
271
+ const PLAN_MODE_RULES = [
272
+ ["-image", "image"],
273
+ ["-video", "video"],
274
+ ["2v", "video"],
275
+ ["tts", "audio"],
276
+ ["asr", "audio"],
277
+ ["realtime", "audio"],
278
+ ["wan", "video"],
279
+ ];
280
+ /** One generic spec per plan in {@link SUBSCRIPTION_PLANS}. */
281
+ const PLAN_SPECS = SUBSCRIPTION_PLANS.map((plan) => ({
282
+ providerId: plan.providerId,
283
+ providerName: plan.name,
284
+ baseUrl: plan.baseUrl,
285
+ seedOnly: plan.listing === "none",
286
+ originRules: PLAN_ORIGIN_RULES,
287
+ defaultOrigin: plan.defaultOrigin,
288
+ modeRules: PLAN_MODE_RULES,
289
+ subscriptionPlan: true,
290
+ ...(plan.wire === "anthropic" ? { listAuth: "x-api-key" } : {}),
291
+ chatCapabilities: ["function_calling", "code", "nlu"],
292
+ }));
190
293
  /**
191
294
  * Every provider kosha discovers through the generic OpenAI-compatible path.
192
295
  *
@@ -240,6 +343,7 @@ export const GENERIC_OPENAI_PROVIDERS = [
240
343
  ],
241
344
  chatCapabilities: ["function_calling", "code", "nlu"],
242
345
  },
346
+ ...PLAN_SPECS,
243
347
  {
244
348
  providerId: "siliconflow-cn",
245
349
  providerName: "SiliconFlow (China)",
@@ -1 +1 @@
1
- {"version":3,"file":"generic-openai.js","sourceRoot":"","sources":["../../src/discovery/generic-openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generic-openai.js","sourceRoot":"","sources":["../../src/discovery/generic-openai.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,18 @@
11
11
  * @module
12
12
  */
13
13
  import type { ModelCard } from "../types.js";
14
+ /** Every models.dev slug already served through a mapped kosha provider. */
15
+ export declare function mappedModelsDevSlugs(): Set<string>;
16
+ /**
17
+ * A plan's catalog entry lists $0 because the subscription pays for the
18
+ * tokens, so the $0 says nothing about what the model costs.
19
+ */
20
+ export declare function isSubscriptionPlanSlug(slug: string): boolean;
21
+ /**
22
+ * Cards for a catalog slug with no kosha provider of its own. Same validation
23
+ * as a mapped provider's seed. A plan's $0 is dropped, not kept as a price.
24
+ */
25
+ export declare function getCatalogOnlySeed(slug: string): Promise<ModelCard[]>;
14
26
  /**
15
27
  * Build seed {@link ModelCard}s for the given kosha provider, sourced from
16
28
  * models.dev. Returns `[]` if the provider has no entries.
@@ -1 +1 @@
1
- {"version":3,"file":"modelsdev-seed.d.ts","sourceRoot":"","sources":["../../src/discovery/modelsdev-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAwC,MAAM,aAAa,CAAC;AAsEnF;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA4B/E"}
1
+ {"version":3,"file":"modelsdev-seed.d.ts","sourceRoot":"","sources":["../../src/discovery/modelsdev-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAwC,MAAM,aAAa,CAAC;AA0EnF,4EAA4E;AAC5E,wBAAgB,oBAAoB,IAAI,GAAG,CAAC,MAAM,CAAC,CAElD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM5D;AASD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAgB3E;AAyBD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA6B/E"}
@@ -10,8 +10,9 @@
10
10
  * conversion done by the LiteLLM seed is unnecessary here.
11
11
  * @module
12
12
  */
13
- import { applyFreeTierFlag } from "./free-tier.js";
14
- import { loadModelsDevCatalog, } from "./modelsdev-catalog.js";
13
+ import { isSubscriptionPlanProvider, SUBSCRIPTION_PLANS } from "../subscription-plans.js";
14
+ import { applyFreeTierFlag, CATALOG_ONLY_CAPABILITY, FREE_TIER_CAPABILITY, SUBSCRIPTION_PLAN_CAPABILITY, } from "./free-tier.js";
15
+ import { loadModelsDevCatalog } from "./modelsdev-catalog.js";
15
16
  /** Maximum models seeded for a single provider. */
16
17
  const MAX_MODELS_PER_SEED = 1_000;
17
18
  /** Strict charset for model IDs. */
@@ -69,7 +70,75 @@ const PROVIDER_SLUG_ALIASES = {
69
70
  thinkingmachines: ["thinkingmachines"],
70
71
  vertex: ["google-vertex", "google-vertex-anthropic"],
71
72
  bedrock: ["amazon-bedrock"],
73
+ // Every plan's provider ID is its models.dev slug.
74
+ ...Object.fromEntries(SUBSCRIPTION_PLANS.map((plan) => [plan.providerId, [plan.providerId]])),
72
75
  };
76
+ /** Every models.dev slug already served through a mapped kosha provider. */
77
+ export function mappedModelsDevSlugs() {
78
+ return new Set([...Object.keys(PROVIDER_SLUG_ALIASES), ...Object.values(PROVIDER_SLUG_ALIASES).flat()]);
79
+ }
80
+ /**
81
+ * A plan's catalog entry lists $0 because the subscription pays for the
82
+ * tokens, so the $0 says nothing about what the model costs.
83
+ */
84
+ export function isSubscriptionPlanSlug(slug) {
85
+ return (isSubscriptionPlanProvider(slug) ||
86
+ /(^|-)(coding|code|token|step)-plan(-|$)/.test(slug) ||
87
+ SUBSCRIPTION_BILLED_SLUGS.has(slug));
88
+ }
89
+ /**
90
+ * Plans whose slug doesn't say so. GitLab lists 31 Duo models at $0, among them
91
+ * `duo-chat-fable-5`, a paid vendor's model no one gives away, and its docs entry
92
+ * is the Duo Agent Platform: the seat pays for those tokens.
93
+ */
94
+ const SUBSCRIPTION_BILLED_SLUGS = new Set(["gitlab"]);
95
+ /**
96
+ * Cards for a catalog slug with no kosha provider of its own. Same validation
97
+ * as a mapped provider's seed. A plan's $0 is dropped, not kept as a price.
98
+ */
99
+ export async function getCatalogOnlySeed(slug) {
100
+ const catalog = await loadModelsDevCatalog();
101
+ const models = catalog[slug]?.models;
102
+ if (!models || typeof models !== "object")
103
+ return [];
104
+ const plan = isSubscriptionPlanSlug(slug);
105
+ const seeds = new Map();
106
+ for (const [rawId, entry] of Object.entries(models)) {
107
+ if (seeds.size >= MAX_MODELS_PER_SEED)
108
+ break;
109
+ if (!entry || typeof entry !== "object")
110
+ continue;
111
+ const id = sanitiseId(rawId);
112
+ if (!id || seeds.has(id))
113
+ continue;
114
+ const card = buildSeedCard(id, slug, entry);
115
+ if (card)
116
+ seeds.set(id, markCatalogOnly(card, plan));
117
+ }
118
+ return [...seeds.values()];
119
+ }
120
+ function markCatalogOnly(card, plan) {
121
+ const raw = card.rawCapabilities ?? card.capabilities;
122
+ if (!plan)
123
+ return { ...card, rawCapabilities: [...raw, CATALOG_ONLY_CAPABILITY] };
124
+ return stripPlanPrice(card, [CATALOG_ONLY_CAPABILITY]);
125
+ }
126
+ /**
127
+ * A plan's catalog price is not a price anyone pays per token: $0 means the
128
+ * subscription pays, and a nonzero figure may be an overage rate or a copied
129
+ * pay-as-you-go rate, and nothing says which. Drop it and the free-tier tag,
130
+ * and mark the card as plan-billed.
131
+ */
132
+ function stripPlanPrice(card, extraRaw = []) {
133
+ const raw = card.rawCapabilities ?? card.capabilities;
134
+ const notFree = (capability) => capability !== FREE_TIER_CAPABILITY;
135
+ const { pricing: _planPrice, ...rest } = card;
136
+ return {
137
+ ...rest,
138
+ capabilities: card.capabilities.filter(notFree),
139
+ rawCapabilities: [...raw.filter(notFree), ...extraRaw, SUBSCRIPTION_PLAN_CAPABILITY],
140
+ };
141
+ }
73
142
  /**
74
143
  * Build seed {@link ModelCard}s for the given kosha provider, sourced from
75
144
  * models.dev. Returns `[]` if the provider has no entries.
@@ -82,6 +151,7 @@ export async function getModelsDevSeed(providerId) {
82
151
  const seeds = [];
83
152
  const seenIds = new Set();
84
153
  for (const slug of slugs) {
154
+ const plan = isSubscriptionPlanSlug(slug);
85
155
  const provider = catalog[slug];
86
156
  if (!provider || typeof provider !== "object")
87
157
  continue;
@@ -99,7 +169,7 @@ export async function getModelsDevSeed(providerId) {
99
169
  seenIds.add(id);
100
170
  const card = buildSeedCard(id, providerId, entry);
101
171
  if (card)
102
- seeds.push(card);
172
+ seeds.push(plan ? stripPlanPrice(card) : card);
103
173
  }
104
174
  }
105
175
  return seeds;
@@ -1 +1 @@
1
- {"version":3,"file":"modelsdev-seed.js","sourceRoot":"","sources":["../../src/discovery/modelsdev-seed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelsdev-seed.js","sourceRoot":"","sources":["../../src/discovery/modelsdev-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE1F,OAAO,EACN,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EAEpB,4BAA4B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAA+C,MAAM,wBAAwB,CAAC;AAE3G,mDAAmD;AACnD,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC,oCAAoC;AACpC,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,+CAA+C;AAC/C,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;;;;;GAMG;AACH,MAAM,qBAAqB,GAAsC;IAChE,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,yEAAyE;IACzE,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,YAAY,CAAC;IACxB,aAAa,EAAE,CAAC,eAAe,CAAC;IAChC,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,YAAY,CAAC;IACxB,SAAS,EAAE,CAAC,cAAc,CAAC;IAC3B,UAAU,EAAE,CAAC,YAAY,CAAC;IAC1B,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,sEAAsE;IACtE,4CAA4C;IAC5C,GAAG,EAAE,CAAC,SAAS,CAAC;IAChB,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,UAAU,EAAE,CAAC,YAAY,CAAC;IAC1B,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,CAAC,WAAW,CAAC;IACrB,WAAW,EAAE,CAAC,aAAa,CAAC;IAC5B,gBAAgB,EAAE,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,CAAC,YAAY,CAAC;IACvB,YAAY,EAAE,CAAC,SAAS,CAAC;IACzB,WAAW,EAAE,CAAC,aAAa,CAAC;IAC5B,cAAc,EAAE,CAAC,cAAc,CAAC;IAChC,gBAAgB,EAAE,CAAC,kBAAkB,CAAC;IACtC,MAAM,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC;IACpD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,mDAAmD;IACnD,GAAG,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAC7F,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB;IACnC,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAClD,OAAO,CACN,0BAA0B,CAAC,IAAI,CAAC;QAChC,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC;QACpD,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CACnC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEtD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACpD,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACrC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAErD,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC3C,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,IAAI,IAAI,mBAAmB;YAAE,MAAM;QAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QACnC,MAAM,IAAI,GAAG,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,eAAe,CAAC,IAAe,EAAE,IAAa;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,CAAC;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,CAAC,GAAG,GAAG,EAAE,uBAAuB,CAAC,EAAE,CAAC;IAClF,OAAO,cAAc,CAAC,IAAI,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAe,EAAE,QAAQ,GAAsB,EAAE;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,CAAC;IACtD,MAAM,OAAO,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,KAAK,oBAAoB,CAAC;IAC5E,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAC9C,OAAO;QACN,GAAG,IAAI;QACP,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/C,eAAe,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,QAAQ,EAAE,4BAA4B,CAAC;KACpF,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IACxD,MAAM,KAAK,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE5C,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAkC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,SAAS;QACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,SAAS;QAEpD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,IAAI,KAAK,CAAC,MAAM,IAAI,mBAAmB;gBAAE,MAAM;YAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,SAAS;YAElD,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS;YACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,MAAM,IAAI,GAAG,aAAa,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAClD,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,KAAa;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QACrF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,2DAA2D;IAC3D,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,EAAE,CAAC;AACX,CAAC;AAED,0DAA0D;AAC1D,SAAS,aAAa,CAAC,EAAU,EAAE,UAAkB,EAAE,KAAqB;IAC3E,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAExD,MAAM,IAAI,GAAc;QACvB,EAAE;QACF,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC/E,QAAQ,EAAE,UAAU;QACpB,cAAc,EAAE,UAAU;QAC1B,IAAI;QACJ,YAAY;QACZ,eAAe,EAAE,CAAC,GAAG,YAAY,CAAC;QAClC,aAAa;QACb,eAAe;QACf,cAAc;QACd,OAAO;QACP,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;QACxB,iEAAiE;QACjE,oEAAoE;QACpE,gDAAgD;QAChD,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,YAAY;KAC3B,CAAC;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACjC,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7F,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC;IACvC,CAAC;IACD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,iEAAiE;AACjE,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAExD;;;GAGG;AACH,SAAS,SAAS,CAAC,MAA0B;IAC5C,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IACjD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAC9D,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7F,CAAC;AAED,0DAA0D;AAC1D,SAAS,SAAS,CAAC,KAAqB;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC;IAE/C,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3E,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3E,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3E,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAClH,mEAAmE;QACnE,sEAAsE;QACtE,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,IAAI,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,WAAW,CAAC;IACjE,OAAO,MAAM,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,SAAS,iBAAiB,CAAC,KAAqB,EAAE,IAAe;IAChE,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;IAE7C,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU;QAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/F,IAAI,KAAK,CAAC,SAAS;QAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,SAAS;QAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,iBAAiB;QAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,IAAI,EAAE,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;QACnF,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,+DAA+D;AAC/D,SAAS,cAAc,CAAC,KAAqB;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,MAAM,SAAS,GACd,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/B,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;QAChC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QACjC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,OAAO,GAAiB;QAC7B,eAAe,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;QAChC,gBAAgB,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;KAClC,CAAC;IACF,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC;IACnF,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC;IACtF,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IACvF,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;QAAE,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC1F,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC"}
@@ -82,6 +82,8 @@ export declare abstract class OpenAICompatibleDiscoverer extends BaseDiscoverer
82
82
  * Most providers use `/v1/models`. Some OpenAI-compatible APIs expose
83
83
  * `/models` at versioned base URLs; subclasses can override this.
84
84
  */
85
+ /** Auth headers for the model-list call; Bearer unless a subclass says otherwise. */
86
+ protected listHeaders(apiKey: string): Record<string, string>;
85
87
  protected modelListEndpoints(): string[];
86
88
  /**
87
89
  * Return false to exclude a model from discovery results.
@@ -1 +1 @@
1
- {"version":3,"file":"openai-compatible.d.ts","sourceRoot":"","sources":["../../src/discovery/openai-compatible.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qDAAqD;AACrD,MAAM,WAAW,4BAA4B;IAC5C,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CACf;AAED,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,8BAAsB,0BAA2B,SAAQ,cAAc;IACtE;;;;;OAKG;IACG,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAgEjG;IAED;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,IAAI,MAAM,EAAE,CAEvC;IAED;;;;;OAKG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAEhE;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,mBAAmB,CAAC;IAMpF;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAOpG;IAED;;;;;;OAMG;IACH,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKpG;IAED,mEAAmE;IACnE,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;IAED,+DAA+D;IAC/D,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIhD;IAED,6DAA6D;IAC7D,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG9C;IAED,sEAAsE;IACtE,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/C;IAED,qEAAqE;IACrE,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhD;IAMD,+DAA+D;IAC/D,OAAO,CAAC,MAAM;CAed"}
1
+ {"version":3,"file":"openai-compatible.d.ts","sourceRoot":"","sources":["../../src/discovery/openai-compatible.ts"],"names":[],"mappings":"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"}
@@ -57,9 +57,7 @@ export class OpenAICompatibleDiscoverer extends BaseDiscoverer {
57
57
  }
58
58
  }
59
59
  const timeoutMs = this.validateTimeout(options?.timeout);
60
- const headers = {
61
- Authorization: `Bearer ${apiKey}`,
62
- };
60
+ const headers = this.listHeaders(apiKey);
63
61
  let response = null;
64
62
  let firstError;
65
63
  let allNotFound = true;
@@ -98,9 +96,7 @@ export class OpenAICompatibleDiscoverer extends BaseDiscoverer {
98
96
  }
99
97
  throw firstError instanceof Error ? firstError : new Error(`${this.providerName} API request failed`);
100
98
  }
101
- return response.data
102
- .filter((model) => this.isRelevantModel(model))
103
- .map((model) => this.toCard(model));
99
+ return response.data.filter((model) => this.isRelevantModel(model)).map((model) => this.toCard(model));
104
100
  }
105
101
  /**
106
102
  * Ordered model-list endpoints to try.
@@ -108,6 +104,10 @@ export class OpenAICompatibleDiscoverer extends BaseDiscoverer {
108
104
  * Most providers use `/v1/models`. Some OpenAI-compatible APIs expose
109
105
  * `/models` at versioned base URLs; subclasses can override this.
110
106
  */
107
+ /** Auth headers for the model-list call; Bearer unless a subclass says otherwise. */
108
+ listHeaders(apiKey) {
109
+ return { Authorization: `Bearer ${apiKey}` };
110
+ }
111
111
  modelListEndpoints() {
112
112
  return [`${this.baseUrl}/v1/models`];
113
113
  }
@@ -156,14 +156,22 @@ export class OpenAICompatibleDiscoverer extends BaseDiscoverer {
156
156
  }
157
157
  /** Check if a lowercase model ID looks like a vision model. */
158
158
  looksLikeVision(lower) {
159
- return lower.includes("vision") || lower.includes("vlm") || lower.includes("llava") ||
160
- lower.includes("pixtral") || lower.includes("neva") || lower.includes("fuyu") ||
161
- lower.includes("cogvlm") || lower.includes("vila");
159
+ return (lower.includes("vision") ||
160
+ lower.includes("vlm") ||
161
+ lower.includes("llava") ||
162
+ lower.includes("pixtral") ||
163
+ lower.includes("neva") ||
164
+ lower.includes("fuyu") ||
165
+ lower.includes("cogvlm") ||
166
+ lower.includes("vila"));
162
167
  }
163
168
  /** Check if a lowercase model ID looks like a code model. */
164
169
  looksLikeCode(lower) {
165
- return lower.includes("code") || lower.includes("codestral") ||
166
- lower.includes("starcoder") || lower.includes("codellama") || lower.includes("coder");
170
+ return (lower.includes("code") ||
171
+ lower.includes("codestral") ||
172
+ lower.includes("starcoder") ||
173
+ lower.includes("codellama") ||
174
+ lower.includes("coder"));
167
175
  }
168
176
  /** Check if a lowercase model ID looks like an audio/speech model. */
169
177
  looksLikeAudio(lower) {
@@ -1 +1 @@
1
- {"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../src/discovery/openai-compatible.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../src/discovery/openai-compatible.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * kosha-discovery — What each source said a model costs.
3
+ *
4
+ * The merge that builds a card keeps one price. To tell a real price move from a
5
+ * bad publish, the manifest also needs to know whether anything else agrees.
6
+ * @module
7
+ */
8
+ import type { ModelCard } from "../types.js";
9
+ /** One source's input and output rates for a model. */
10
+ export interface PriceEvidence {
11
+ source: "models.dev" | "litellm" | "provider-api";
12
+ inputPerMillion: number;
13
+ outputPerMillion: number;
14
+ }
15
+ /**
16
+ * Past this relative gap, two sources disagree. Of 135 models listed by both
17
+ * models.dev and LiteLLM on 2026-11-04, 124 matched exactly and the other 11
18
+ * differed by over 25%, with nothing in between. So 5% clears rounding without
19
+ * letting a believable lie through as agreement.
20
+ */
21
+ export declare const PRICE_AGREEMENT_TOLERANCE = 0.05;
22
+ export type PriceAgreement = "agree" | "disagree" | "single";
23
+ /** A card's rates as evidence from `source`. A catalog's $0 isn't a price (see
24
+ * price-trust.ts), so it testifies to nothing. */
25
+ export declare function evidenceFrom(card: ModelCard, source: PriceEvidence["source"]): PriceEvidence | null;
26
+ /** Whether a model's sources back each other up. Most models have one source,
27
+ * and nothing is stored for those, so no evidence reads as "single". */
28
+ export declare function priceAgreement(evidence: PriceEvidence[] | undefined): PriceAgreement;
29
+ //# sourceMappingURL=price-evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-evidence.d.ts","sourceRoot":"","sources":["../../src/discovery/price-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,cAAc,CAAC;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE7D;mDACmD;AACnD,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,GAAG,IAAI,CAKnG;AAOD;yEACyE;AACzE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,SAAS,GAAG,cAAc,CAepF"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * kosha-discovery — What each source said a model costs.
3
+ *
4
+ * The merge that builds a card keeps one price. To tell a real price move from a
5
+ * bad publish, the manifest also needs to know whether anything else agrees.
6
+ * @module
7
+ */
8
+ /**
9
+ * Past this relative gap, two sources disagree. Of 135 models listed by both
10
+ * models.dev and LiteLLM on 2026-11-04, 124 matched exactly and the other 11
11
+ * differed by over 25%, with nothing in between. So 5% clears rounding without
12
+ * letting a believable lie through as agreement.
13
+ */
14
+ export const PRICE_AGREEMENT_TOLERANCE = 0.05;
15
+ /** A card's rates as evidence from `source`. A catalog's $0 isn't a price (see
16
+ * price-trust.ts), so it testifies to nothing. */
17
+ export function evidenceFrom(card, source) {
18
+ const input = card.pricing?.inputPerMillion;
19
+ const output = card.pricing?.outputPerMillion;
20
+ if (typeof input !== "number" || typeof output !== "number" || (input === 0 && output === 0))
21
+ return null;
22
+ return { source, inputPerMillion: input, outputPerMillion: output };
23
+ }
24
+ function gap(a, b) {
25
+ if (a === b)
26
+ return 0;
27
+ return Math.abs(a - b) / Math.max(a, b);
28
+ }
29
+ /** Whether a model's sources back each other up. Most models have one source,
30
+ * and nothing is stored for those, so no evidence reads as "single". */
31
+ export function priceAgreement(evidence) {
32
+ if (!evidence || evidence.length < 2)
33
+ return "single";
34
+ for (let i = 0; i < evidence.length; i++) {
35
+ for (let j = i + 1; j < evidence.length; j++) {
36
+ const a = evidence[i];
37
+ const b = evidence[j];
38
+ if (gap(a.inputPerMillion, b.inputPerMillion) > PRICE_AGREEMENT_TOLERANCE ||
39
+ gap(a.outputPerMillion, b.outputPerMillion) > PRICE_AGREEMENT_TOLERANCE) {
40
+ return "disagree";
41
+ }
42
+ }
43
+ }
44
+ return "agree";
45
+ }
46
+ //# sourceMappingURL=price-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-evidence.js","sourceRoot":"","sources":["../../src/discovery/price-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAI9C;mDACmD;AACnD,MAAM,UAAU,YAAY,CAAC,IAAe,EAAE,MAA+B;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1G,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;AACrE,CAAC;AAED,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS;IAChC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;yEACyE;AACzE,MAAM,UAAU,cAAc,CAAC,QAAqC;IACnE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,IACC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,yBAAyB;gBACrE,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,yBAAyB,EACtE,CAAC;gBACF,OAAO,UAAU,CAAC;YACnB,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"public-seed.d.ts","sourceRoot":"","sources":["../../src/discovery/public-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C;;;GAGG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA+C5E"}
1
+ {"version":3,"file":"public-seed.d.ts","sourceRoot":"","sources":["../../src/discovery/public-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C;;;GAGG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAsD5E"}
@@ -28,6 +28,7 @@ import { getLocalSeed, resolveCatalogSource } from "../catalog-source.js";
28
28
  import { extractOriginProvider } from "../normalize.js";
29
29
  import { getLiteLLMSeed } from "./litellm-seed.js";
30
30
  import { getModelsDevSeed } from "./modelsdev-seed.js";
31
+ import { evidenceFrom } from "./price-evidence.js";
31
32
  import { applyPromoOverrides } from "./promo-overrides.js";
32
33
  import { getSnapshotSeed } from "./snapshot-catalog.js";
33
34
  /**
@@ -67,7 +68,14 @@ export async function getPublicSeed(providerId) {
67
68
  return [];
68
69
  // Index models.dev by id so duplicate ids from LiteLLM are dropped.
69
70
  const seen = new Set(modelsDev.map((card) => card.id));
70
- const merged = [...modelsDev];
71
+ const merged = [];
72
+ const litellmById = new Map(litellm.map((card) => [card.id, card]));
73
+ for (const card of modelsDev) {
74
+ const fromLiteLLM = litellmById.get(card.id);
75
+ const a = evidenceFrom(card, "models.dev");
76
+ const b = fromLiteLLM ? evidenceFrom(fromLiteLLM, "litellm") : null;
77
+ merged.push(a && b ? { ...card, priceEvidence: [a, b] } : card);
78
+ }
71
79
  for (const card of litellm) {
72
80
  if (seen.has(card.id))
73
81
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"public-seed.js","sourceRoot":"","sources":["../../src/discovery/public-seed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public-seed.js","sourceRoot":"","sources":["../../src/discovery/public-seed.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,8 @@ export declare class VertexDiscoverer extends BaseDiscoverer {
43
43
  discover(credential: CredentialResult, options?: {
44
44
  timeout?: number;
45
45
  }): Promise<ModelCard[]>;
46
+ /** Public data only: no gcloud, no token, no ambient credential. */
47
+ discoverKeyless(): Promise<ModelCard[]>;
46
48
  /**
47
49
  * Fetch models from the Vertex AI Publisher Models REST endpoint.
48
50
  *