@sriinnu/kosha-discovery 1.13.0 → 1.15.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 (119) hide show
  1. package/README.md +88 -78
  2. package/dist/cli-cmd-doctor.d.ts.map +1 -1
  3. package/dist/cli-cmd-doctor.js +69 -18
  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 +18 -7
  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-cmd-registry.d.ts +2 -1
  12. package/dist/cli-cmd-registry.d.ts.map +1 -1
  13. package/dist/cli-cmd-registry.js +30 -1
  14. package/dist/cli-cmd-registry.js.map +1 -1
  15. package/dist/cli-commands.d.ts +4 -0
  16. package/dist/cli-commands.d.ts.map +1 -1
  17. package/dist/cli-commands.js +43 -5
  18. package/dist/cli-commands.js.map +1 -1
  19. package/dist/cli-help.d.ts.map +1 -1
  20. package/dist/cli-help.js +4 -1
  21. package/dist/cli-help.js.map +1 -1
  22. package/dist/cli.js +1 -1
  23. package/dist/cli.js.map +1 -1
  24. package/dist/cost.d.ts +16 -1
  25. package/dist/cost.d.ts.map +1 -1
  26. package/dist/cost.js +73 -14
  27. package/dist/cost.js.map +1 -1
  28. package/dist/credentials/resolver.d.ts +0 -1
  29. package/dist/credentials/resolver.d.ts.map +1 -1
  30. package/dist/credentials/resolver.js +10 -46
  31. package/dist/credentials/resolver.js.map +1 -1
  32. package/dist/discovery/catalog-only.d.ts.map +1 -1
  33. package/dist/discovery/catalog-only.js +8 -1
  34. package/dist/discovery/catalog-only.js.map +1 -1
  35. package/dist/discovery/free-tier.d.ts +2 -0
  36. package/dist/discovery/free-tier.d.ts.map +1 -1
  37. package/dist/discovery/free-tier.js +4 -0
  38. package/dist/discovery/free-tier.js.map +1 -1
  39. package/dist/discovery/generic-openai.d.ts +27 -0
  40. package/dist/discovery/generic-openai.d.ts.map +1 -1
  41. package/dist/discovery/generic-openai.js +109 -5
  42. package/dist/discovery/generic-openai.js.map +1 -1
  43. package/dist/discovery/modelsdev-seed.d.ts.map +1 -1
  44. package/dist/discovery/modelsdev-seed.js +21 -6
  45. package/dist/discovery/modelsdev-seed.js.map +1 -1
  46. package/dist/discovery/openai-compatible.d.ts +2 -0
  47. package/dist/discovery/openai-compatible.d.ts.map +1 -1
  48. package/dist/discovery/openai-compatible.js +19 -11
  49. package/dist/discovery/openai-compatible.js.map +1 -1
  50. package/dist/discovery/snapshot-catalog.d.ts +18 -0
  51. package/dist/discovery/snapshot-catalog.d.ts.map +1 -1
  52. package/dist/discovery/snapshot-catalog.js +83 -3
  53. package/dist/discovery/snapshot-catalog.js.map +1 -1
  54. package/dist/discovery/vercel.d.ts.map +1 -1
  55. package/dist/discovery/vercel.js +19 -0
  56. package/dist/discovery/vercel.js.map +1 -1
  57. package/dist/discovery-contract.d.ts +8 -3
  58. package/dist/discovery-contract.d.ts.map +1 -1
  59. package/dist/discovery-contract.js.map +1 -1
  60. package/dist/enrichment/catalog.js +2 -2
  61. package/dist/enrichment/catalog.js.map +1 -1
  62. package/dist/enrichment/litellm.d.ts.map +1 -1
  63. package/dist/enrichment/litellm.js +18 -16
  64. package/dist/enrichment/litellm.js.map +1 -1
  65. package/dist/index.d.ts +3 -1
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +2 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/lifecycle.d.ts +13 -0
  70. package/dist/lifecycle.d.ts.map +1 -0
  71. package/dist/lifecycle.js +19 -0
  72. package/dist/lifecycle.js.map +1 -0
  73. package/dist/mcp-server.d.ts +1 -1
  74. package/dist/mcp-server.d.ts.map +1 -1
  75. package/dist/mcp-server.js +8 -1
  76. package/dist/mcp-server.js.map +1 -1
  77. package/dist/price-trust.d.ts +12 -0
  78. package/dist/price-trust.d.ts.map +1 -1
  79. package/dist/price-trust.js +72 -0
  80. package/dist/price-trust.js.map +1 -1
  81. package/dist/provider-catalog.d.ts +48 -0
  82. package/dist/provider-catalog.d.ts.map +1 -1
  83. package/dist/provider-catalog.js +114 -6
  84. package/dist/provider-catalog.js.map +1 -1
  85. package/dist/proxy.d.ts +9 -0
  86. package/dist/proxy.d.ts.map +1 -1
  87. package/dist/proxy.js +196 -31
  88. package/dist/proxy.js.map +1 -1
  89. package/dist/registry-discovery.js +7 -1
  90. package/dist/registry-discovery.js.map +1 -1
  91. package/dist/registry-query.d.ts.map +1 -1
  92. package/dist/registry-query.js +20 -8
  93. package/dist/registry-query.js.map +1 -1
  94. package/dist/registry-routing.d.ts.map +1 -1
  95. package/dist/registry-routing.js +2 -1
  96. package/dist/registry-routing.js.map +1 -1
  97. package/dist/registry-runtime.d.ts +34 -2
  98. package/dist/registry-runtime.d.ts.map +1 -1
  99. package/dist/registry-runtime.js +499 -67
  100. package/dist/registry-runtime.js.map +1 -1
  101. package/dist/registry.d.ts +5 -1
  102. package/dist/registry.d.ts.map +1 -1
  103. package/dist/registry.js +22 -4
  104. package/dist/registry.js.map +1 -1
  105. package/dist/server.d.ts.map +1 -1
  106. package/dist/server.js +21 -6
  107. package/dist/server.js.map +1 -1
  108. package/dist/snapshot-gate.d.ts +50 -0
  109. package/dist/snapshot-gate.d.ts.map +1 -0
  110. package/dist/snapshot-gate.js +128 -0
  111. package/dist/snapshot-gate.js.map +1 -0
  112. package/dist/subscription-plans.d.ts +63 -0
  113. package/dist/subscription-plans.d.ts.map +1 -0
  114. package/dist/subscription-plans.js +261 -0
  115. package/dist/subscription-plans.js.map +1 -0
  116. package/dist/types.d.ts +22 -0
  117. package/dist/types.d.ts.map +1 -1
  118. package/package.json +8 -8
  119. 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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"}
@@ -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;AAwEnF,4EAA4E;AAC5E,wBAAgB,oBAAoB,IAAI,GAAG,CAAC,MAAM,CAAC,CAElD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D;AASD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAgB3E;AAgBD;;;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,7 +10,8 @@
10
10
  * conversion done by the LiteLLM seed is unnecessary here.
11
11
  * @module
12
12
  */
13
- import { applyFreeTierFlag, CATALOG_ONLY_CAPABILITY, FREE_TIER_CAPABILITY, isFreeTier, SUBSCRIPTION_PLAN_CAPABILITY, } from "./free-tier.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";
14
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;
@@ -69,6 +70,8 @@ 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
  };
73
76
  /** Every models.dev slug already served through a mapped kosha provider. */
74
77
  export function mappedModelsDevSlugs() {
@@ -79,7 +82,9 @@ export function mappedModelsDevSlugs() {
79
82
  * tokens, so the $0 says nothing about what the model costs.
80
83
  */
81
84
  export function isSubscriptionPlanSlug(slug) {
82
- return /(^|-)(coding|code|token)-plan(-|$)/.test(slug) || SUBSCRIPTION_BILLED_SLUGS.has(slug);
85
+ return (isSubscriptionPlanProvider(slug) ||
86
+ /(^|-)(coding|code|token|step)-plan(-|$)/.test(slug) ||
87
+ SUBSCRIPTION_BILLED_SLUGS.has(slug));
83
88
  }
84
89
  /**
85
90
  * Plans whose slug doesn't say so. GitLab lists 31 Duo models at $0, among them
@@ -116,13 +121,22 @@ function markCatalogOnly(card, plan) {
116
121
  const raw = card.rawCapabilities ?? card.capabilities;
117
122
  if (!plan)
118
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;
119
134
  const notFree = (capability) => capability !== FREE_TIER_CAPABILITY;
120
- const { pricing, ...rest } = card;
135
+ const { pricing: _planPrice, ...rest } = card;
121
136
  return {
122
137
  ...rest,
123
- ...(pricing && !isFreeTier(card) ? { pricing } : {}),
124
138
  capabilities: card.capabilities.filter(notFree),
125
- rawCapabilities: [...raw.filter(notFree), CATALOG_ONLY_CAPABILITY, SUBSCRIPTION_PLAN_CAPABILITY],
139
+ rawCapabilities: [...raw.filter(notFree), ...extraRaw, SUBSCRIPTION_PLAN_CAPABILITY],
126
140
  };
127
141
  }
128
142
  /**
@@ -137,6 +151,7 @@ export async function getModelsDevSeed(providerId) {
137
151
  const seeds = [];
138
152
  const seenIds = new Set();
139
153
  for (const slug of slugs) {
154
+ const plan = isSubscriptionPlanSlug(slug);
140
155
  const provider = catalog[slug];
141
156
  if (!provider || typeof provider !== "object")
142
157
  continue;
@@ -154,7 +169,7 @@ export async function getModelsDevSeed(providerId) {
154
169
  seenIds.add(id);
155
170
  const card = buildSeedCard(id, providerId, entry);
156
171
  if (card)
157
- seeds.push(card);
172
+ seeds.push(plan ? stripPlanPrice(card) : card);
158
173
  }
159
174
  }
160
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":"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"}
@@ -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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"}
@@ -17,6 +17,16 @@ import type { ModelCard } from "../types.js";
17
17
  export declare const SNAPSHOT_CATALOG_URL = "https://github.com/sriinnu/kosha-discovery/releases/download/snapshot-latest/kosha-latest.json";
18
18
  /** Env override for forks and air-gapped mirrors; must be an https URL. */
19
19
  export declare const SNAPSHOT_CATALOG_URL_ENV = "KOSHA_SNAPSHOT_URL";
20
+ /**
21
+ * The Ed25519 keys the snapshot workflow signs with (SPKI PEM). A snapshot from
22
+ * the default URL must carry a valid signature by one of them in
23
+ * `kosha-latest.json.sig`, or it is refused. More than one is listed only
24
+ * while a key is being rotated.
25
+ */
26
+ export declare const SNAPSHOT_PUBLIC_KEYS: readonly string[];
27
+ /** A mirror's own public key (SPKI PEM). When set, every snapshot URL,
28
+ * the default included, must be signed by it. */
29
+ export declare const SNAPSHOT_PUBLIC_KEY_ENV = "KOSHA_SNAPSHOT_PUBKEY";
20
30
  /** A parsed catalog: cards keyed by provider id, plus when it was built. */
21
31
  export interface SnapshotCatalog {
22
32
  providers: Map<string, ModelCard[]>;
@@ -35,6 +45,14 @@ export declare function resetSnapshotCatalogCache(): void;
35
45
  * one. Returns `[]` for a provider the snapshot does not carry.
36
46
  */
37
47
  export declare function getSnapshotSeed(providerId: string): Promise<ModelCard[]>;
48
+ /**
49
+ * The keys a snapshot from `url` must be signed by, or null when it needs
50
+ * none: a mirror set with `KOSHA_SNAPSHOT_URL` and no `KOSHA_SNAPSHOT_PUBKEY`
51
+ * is the operator's own choice of source.
52
+ */
53
+ export declare function snapshotTrustedKeys(url: string): readonly string[] | null;
54
+ /** True if `signature` is an Ed25519 signature of `text` by one of `keys`. */
55
+ export declare function snapshotSignatureValid(text: string, signature: Buffer, keys: readonly string[]): boolean;
38
56
  /**
39
57
  * Parse and validate a catalog in the snapshot format. Shared by the
40
58
  * published snapshot and the `local` catalog file, so both get the same
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-catalog.d.ts","sourceRoot":"","sources":["../../src/discovery/snapshot-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,yDAAyD;AACzD,eAAO,MAAM,oBAAoB,mGACgE,CAAC;AAElG,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAiB7D,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpC,sEAAsE;IACtE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAID,4EAA4E;AAC5E,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAO9D;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAS9E;AAoBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CA2CjF"}
1
+ {"version":3,"file":"snapshot-catalog.d.ts","sourceRoot":"","sources":["../../src/discovery/snapshot-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,yDAAyD;AACzD,eAAO,MAAM,oBAAoB,mGACgE,CAAC;AAElG,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAEjD,CAAC;AAEF;kDACkD;AAClD,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAoB/D,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpC,sEAAsE;IACtE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAeD,4EAA4E;AAC5E,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAO9D;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAW9E;AAuBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAIzE;AAmBD,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAUxG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAgDjF"}
@@ -12,11 +12,26 @@
12
12
  * so concurrent callers share a fetch, and a reset hook for tests.
13
13
  * @module
14
14
  */
15
+ import { createPublicKey, verify } from "node:crypto";
15
16
  import { quarantineEntries } from "../security.js";
16
17
  /** The stable URL the snapshot workflow publishes to. */
17
18
  export const SNAPSHOT_CATALOG_URL = "https://github.com/sriinnu/kosha-discovery/releases/download/snapshot-latest/kosha-latest.json";
18
19
  /** Env override for forks and air-gapped mirrors; must be an https URL. */
19
20
  export const SNAPSHOT_CATALOG_URL_ENV = "KOSHA_SNAPSHOT_URL";
21
+ /**
22
+ * The Ed25519 keys the snapshot workflow signs with (SPKI PEM). A snapshot from
23
+ * the default URL must carry a valid signature by one of them in
24
+ * `kosha-latest.json.sig`, or it is refused. More than one is listed only
25
+ * while a key is being rotated.
26
+ */
27
+ export const SNAPSHOT_PUBLIC_KEYS = [
28
+ "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA/nM7HYtoUrh+Uwz7VEOvcSKpvqlwHnsuv/79ZeG3sR0=\n-----END PUBLIC KEY-----\n",
29
+ ];
30
+ /** A mirror's own public key (SPKI PEM). When set, every snapshot URL,
31
+ * the default included, must be signed by it. */
32
+ export const SNAPSHOT_PUBLIC_KEY_ENV = "KOSHA_SNAPSHOT_PUBKEY";
33
+ /** Cap on the detached signature file (base64 of 64 bytes, plus slack). */
34
+ const MAX_SIGNATURE_BYTES = 1024;
20
35
  /** Hard cap on the payload; the snapshot is ~3 MB today. */
21
36
  const MAX_PAYLOAD_BYTES = 16 * 1024 * 1024;
22
37
  /** Network timeout for the snapshot fetch. */
@@ -24,6 +39,17 @@ const FETCH_TIMEOUT_MS = 15_000;
24
39
  /** Upper bound on providers in a snapshot — anything larger is not ours. */
25
40
  const MAX_PROVIDERS = 500;
26
41
  let inflight = null;
42
+ /** Hold bookkeeping the snapshot gate (`src/snapshot-gate.ts`) leaves on a
43
+ * published card so next week's run can continue it. */
44
+ const GATE_FIELDS = ["pricingHold", "priceAnchor", "lastSeenAt", "missingRunCount"];
45
+ function withoutGateFields(card) {
46
+ if (!GATE_FIELDS.some((field) => field in card))
47
+ return card;
48
+ const out = { ...card };
49
+ for (const field of GATE_FIELDS)
50
+ delete out[field];
51
+ return out;
52
+ }
27
53
  /** Resolve the snapshot URL, honouring the env override when it is sane. */
28
54
  export function snapshotCatalogUrl() {
29
55
  const override = process.env[SNAPSHOT_CATALOG_URL_ENV];
@@ -53,8 +79,10 @@ export function resetSnapshotCatalogCache() {
53
79
  export async function getSnapshotSeed(providerId) {
54
80
  const catalog = await loadSnapshotCatalog();
55
81
  const now = Date.now();
82
+ // The gate's hold bookkeeping is the publisher's state, not the reader's:
83
+ // a local merge keeps its own clock.
56
84
  return (catalog.providers.get(providerId) ?? []).map((card) => ({
57
- ...card,
85
+ ...withoutGateFields(card),
58
86
  discoveredAt: now,
59
87
  source: "litellm",
60
88
  catalogSource: "snapshot",
@@ -74,7 +102,54 @@ async function fetchAndValidate() {
74
102
  if (!response.ok) {
75
103
  throw new Error(`Failed to fetch kosha snapshot: ${response.status} ${response.statusText}`);
76
104
  }
77
- return parseSnapshotCatalog(await readBoundedText(response, MAX_PAYLOAD_BYTES), "kosha snapshot");
105
+ const text = await readBoundedText(response, MAX_PAYLOAD_BYTES);
106
+ const keys = snapshotTrustedKeys(url);
107
+ if (keys)
108
+ await verifySnapshotSignature(url, text, keys);
109
+ return parseSnapshotCatalog(text, "kosha snapshot");
110
+ }
111
+ /**
112
+ * The keys a snapshot from `url` must be signed by, or null when it needs
113
+ * none: a mirror set with `KOSHA_SNAPSHOT_URL` and no `KOSHA_SNAPSHOT_PUBKEY`
114
+ * is the operator's own choice of source.
115
+ */
116
+ export function snapshotTrustedKeys(url) {
117
+ const pinned = process.env[SNAPSHOT_PUBLIC_KEY_ENV];
118
+ if (pinned?.trim())
119
+ return [pinned.replace(/\\n/g, "\n")];
120
+ return url === SNAPSHOT_CATALOG_URL ? SNAPSHOT_PUBLIC_KEYS : null;
121
+ }
122
+ /** Fetch `<url>.sig` and check it signs exactly `text`. Throws otherwise. */
123
+ async function verifySnapshotSignature(url, text, keys) {
124
+ const controller = new AbortController();
125
+ const timer = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
126
+ let response;
127
+ try {
128
+ response = await fetch(`${url}.sig`, { signal: controller.signal });
129
+ }
130
+ finally {
131
+ clearTimeout(timer);
132
+ }
133
+ if (!response.ok)
134
+ throw new Error(`kosha snapshot signature missing: ${response.status} ${response.statusText}`);
135
+ const signature = Buffer.from((await readBoundedText(response, MAX_SIGNATURE_BYTES)).trim(), "base64");
136
+ if (!snapshotSignatureValid(text, signature, keys)) {
137
+ throw new Error("kosha snapshot signature does not verify — refusing to load");
138
+ }
139
+ }
140
+ /** True if `signature` is an Ed25519 signature of `text` by one of `keys`. */
141
+ export function snapshotSignatureValid(text, signature, keys) {
142
+ if (signature.length !== 64)
143
+ return false;
144
+ const data = Buffer.from(text, "utf8");
145
+ return keys.some((pem) => {
146
+ try {
147
+ return verify(null, data, createPublicKey(pem), signature);
148
+ }
149
+ catch {
150
+ return false; // a malformed key never verifies
151
+ }
152
+ });
78
153
  }
79
154
  /**
80
155
  * Parse and validate a catalog in the snapshot format. Shared by the
@@ -120,7 +195,12 @@ export function parseSnapshotCatalog(text, label) {
120
195
  for (const [id, models] of Object.entries(clean)) {
121
196
  if (!Array.isArray(models))
122
197
  continue;
123
- const cards = models.filter(isModelCardShape).filter((card) => card.provider === id);
198
+ // The gate keeps a row last week's discovery didn't see, so its price
199
+ // baseline survives a thin run; `missingRunCount` marks it. It's the
200
+ // publisher's state, not a model anyone can call today.
201
+ const cards = models
202
+ .filter(isModelCardShape)
203
+ .filter((card) => card.provider === id && !((card.missingRunCount ?? 0) > 0));
124
204
  if (cards.length > 0)
125
205
  out.set(id, cards);
126
206
  }