@sriinnu/kosha-discovery 0.6.1 → 1.0.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 (110) hide show
  1. package/README.md +53 -268
  2. package/dist/cli-cmd-model.d.ts +48 -0
  3. package/dist/cli-cmd-model.d.ts.map +1 -0
  4. package/dist/cli-cmd-model.js +231 -0
  5. package/dist/cli-cmd-model.js.map +1 -0
  6. package/dist/cli-cmd-query.d.ts +40 -0
  7. package/dist/cli-cmd-query.d.ts.map +1 -0
  8. package/dist/cli-cmd-query.js +303 -0
  9. package/dist/cli-cmd-query.js.map +1 -0
  10. package/dist/cli-commands.d.ts +65 -75
  11. package/dist/cli-commands.d.ts.map +1 -1
  12. package/dist/cli-commands.js +93 -543
  13. package/dist/cli-commands.js.map +1 -1
  14. package/dist/cli-format.d.ts +32 -0
  15. package/dist/cli-format.d.ts.map +1 -1
  16. package/dist/cli-format.js +51 -0
  17. package/dist/cli-format.js.map +1 -1
  18. package/dist/cli-help.d.ts +19 -0
  19. package/dist/cli-help.d.ts.map +1 -0
  20. package/dist/cli-help.js +150 -0
  21. package/dist/cli-help.js.map +1 -0
  22. package/dist/cli.js +4 -1
  23. package/dist/cli.js.map +1 -1
  24. package/dist/discovery/anthropic.d.ts +8 -1
  25. package/dist/discovery/anthropic.d.ts.map +1 -1
  26. package/dist/discovery/anthropic.js +26 -3
  27. package/dist/discovery/anthropic.js.map +1 -1
  28. package/dist/discovery/base.d.ts +26 -0
  29. package/dist/discovery/base.d.ts.map +1 -1
  30. package/dist/discovery/base.js +55 -2
  31. package/dist/discovery/base.js.map +1 -1
  32. package/dist/discovery/free-tier.d.ts +31 -0
  33. package/dist/discovery/free-tier.d.ts.map +1 -0
  34. package/dist/discovery/free-tier.js +47 -0
  35. package/dist/discovery/free-tier.js.map +1 -0
  36. package/dist/discovery/google.d.ts +8 -1
  37. package/dist/discovery/google.d.ts.map +1 -1
  38. package/dist/discovery/google.js +25 -3
  39. package/dist/discovery/google.js.map +1 -1
  40. package/dist/discovery/litellm-seed.d.ts +32 -0
  41. package/dist/discovery/litellm-seed.d.ts.map +1 -0
  42. package/dist/discovery/litellm-seed.js +252 -0
  43. package/dist/discovery/litellm-seed.js.map +1 -0
  44. package/dist/discovery/modelsdev-catalog.d.ts +95 -0
  45. package/dist/discovery/modelsdev-catalog.d.ts.map +1 -0
  46. package/dist/discovery/modelsdev-catalog.js +131 -0
  47. package/dist/discovery/modelsdev-catalog.js.map +1 -0
  48. package/dist/discovery/modelsdev-seed.d.ts +19 -0
  49. package/dist/discovery/modelsdev-seed.d.ts.map +1 -0
  50. package/dist/discovery/modelsdev-seed.js +203 -0
  51. package/dist/discovery/modelsdev-seed.js.map +1 -0
  52. package/dist/discovery/openai-compatible.d.ts.map +1 -1
  53. package/dist/discovery/openai-compatible.js +12 -1
  54. package/dist/discovery/openai-compatible.js.map +1 -1
  55. package/dist/discovery/openai.d.ts +9 -1
  56. package/dist/discovery/openai.d.ts.map +1 -1
  57. package/dist/discovery/openai.js +31 -8
  58. package/dist/discovery/openai.js.map +1 -1
  59. package/dist/discovery/promo-overrides.d.ts +54 -0
  60. package/dist/discovery/promo-overrides.d.ts.map +1 -0
  61. package/dist/discovery/promo-overrides.js +74 -0
  62. package/dist/discovery/promo-overrides.js.map +1 -0
  63. package/dist/discovery/public-seed.d.ts +30 -0
  64. package/dist/discovery/public-seed.d.ts.map +1 -0
  65. package/dist/discovery/public-seed.js +51 -0
  66. package/dist/discovery/public-seed.js.map +1 -0
  67. package/dist/discovery-contract.d.ts +14 -2
  68. package/dist/discovery-contract.d.ts.map +1 -1
  69. package/dist/discovery-contract.js +28 -0
  70. package/dist/discovery-contract.js.map +1 -1
  71. package/dist/enrichment/litellm-catalog.d.ts +81 -0
  72. package/dist/enrichment/litellm-catalog.d.ts.map +1 -0
  73. package/dist/enrichment/litellm-catalog.js +129 -0
  74. package/dist/enrichment/litellm-catalog.js.map +1 -0
  75. package/dist/enrichment/litellm.d.ts +9 -2
  76. package/dist/enrichment/litellm.d.ts.map +1 -1
  77. package/dist/enrichment/litellm.js +168 -20
  78. package/dist/enrichment/litellm.js.map +1 -1
  79. package/dist/index.d.ts +3 -1
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +2 -0
  82. package/dist/index.js.map +1 -1
  83. package/dist/model-features.d.ts +77 -0
  84. package/dist/model-features.d.ts.map +1 -0
  85. package/dist/model-features.js +245 -0
  86. package/dist/model-features.js.map +1 -0
  87. package/dist/provider-catalog.d.ts +7 -0
  88. package/dist/provider-catalog.d.ts.map +1 -1
  89. package/dist/provider-catalog.js +4 -0
  90. package/dist/provider-catalog.js.map +1 -1
  91. package/dist/registry-discovery.d.ts.map +1 -1
  92. package/dist/registry-discovery.js +11 -1
  93. package/dist/registry-discovery.js.map +1 -1
  94. package/dist/registry-runtime.d.ts +20 -1
  95. package/dist/registry-runtime.d.ts.map +1 -1
  96. package/dist/registry-runtime.js +296 -8
  97. package/dist/registry-runtime.js.map +1 -1
  98. package/dist/registry-selection.js +2 -0
  99. package/dist/registry-selection.js.map +1 -1
  100. package/dist/registry.d.ts +9 -0
  101. package/dist/registry.d.ts.map +1 -1
  102. package/dist/registry.js +11 -1
  103. package/dist/registry.js.map +1 -1
  104. package/dist/tokenizer-family.d.ts +39 -0
  105. package/dist/tokenizer-family.d.ts.map +1 -0
  106. package/dist/tokenizer-family.js +92 -0
  107. package/dist/tokenizer-family.js.map +1 -0
  108. package/dist/types.d.ts +186 -0
  109. package/dist/types.d.ts.map +1 -1
  110. package/package.json +8 -2
@@ -6,8 +6,11 @@
6
6
  * flags on already-discovered {@link ModelCard} objects.
7
7
  * @module
8
8
  */
9
+ import { applyFreeTierFlag } from "../discovery/free-tier.js";
9
10
  import { normalizeModelId } from "../normalize.js";
10
- import { assertCleanPayload } from "../security.js";
11
+ import { inferParallelToolCalls, inferStructuredOutputModes, inferToolDialect } from "../model-features.js";
12
+ import { inferTokenizerFamily } from "../tokenizer-family.js";
13
+ import { loadLiteLLMCatalog } from "./litellm-catalog.js";
11
14
  /**
12
15
  * Multiplier to convert litellm's per-token costs into our standard
13
16
  * per-million-token pricing. litellm stores costs as cost-per-single-token,
@@ -22,18 +25,11 @@ const PER_MILLION = 1_000_000;
22
25
  */
23
26
  export class LiteLLMEnricher {
24
27
  data = null;
25
- url = "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json";
26
- /** Fetch and cache the litellm pricing JSON. Safe to call multiple times. */
28
+ /** Fetch and cache the litellm pricing JSON via the shared catalog loader. */
27
29
  async load() {
28
30
  if (this.data)
29
31
  return;
30
- const response = await fetch(this.url);
31
- if (!response.ok) {
32
- throw new Error(`Failed to fetch litellm data: ${response.status} ${response.statusText}`);
33
- }
34
- const raw = (await response.json());
35
- assertCleanPayload(raw, "litellm");
36
- this.data = raw;
32
+ this.data = await loadLiteLLMCatalog();
37
33
  }
38
34
  /**
39
35
  * Enrich an array of ModelCards with litellm data.
@@ -44,7 +40,7 @@ export class LiteLLMEnricher {
44
40
  */
45
41
  async enrich(models) {
46
42
  await this.load();
47
- return models.map((model) => this.enrichOne(model));
43
+ return models.map((model) => applyFreeTierFlag(this.enrichOne(model)));
48
44
  }
49
45
  // ---------------------------------------------------------------------------
50
46
  // Private
@@ -78,6 +74,20 @@ export class LiteLLMEnricher {
78
74
  cacheWritePerMillion: entryPricing.cacheWritePerMillion,
79
75
  };
80
76
  }
77
+ if (enriched.pricing.batchInputPerMillion === undefined &&
78
+ entryPricing.batchInputPerMillion !== undefined) {
79
+ enriched.pricing = {
80
+ ...enriched.pricing,
81
+ batchInputPerMillion: entryPricing.batchInputPerMillion,
82
+ };
83
+ }
84
+ if (enriched.pricing.batchOutputPerMillion === undefined &&
85
+ entryPricing.batchOutputPerMillion !== undefined) {
86
+ enriched.pricing = {
87
+ ...enriched.pricing,
88
+ batchOutputPerMillion: entryPricing.batchOutputPerMillion,
89
+ };
90
+ }
81
91
  }
82
92
  }
83
93
  // Preserve proxy-route pricing while surfacing direct-origin reference pricing.
@@ -127,8 +137,80 @@ export class LiteLLMEnricher {
127
137
  if (entry.supports_prompt_caching && !enriched.capabilities.includes("prompt_caching")) {
128
138
  enriched.capabilities.push("prompt_caching");
129
139
  }
140
+ if (entry.supports_audio_input && !enriched.capabilities.includes("audio_input")) {
141
+ enriched.capabilities.push("audio_input");
142
+ }
143
+ if (entry.supports_audio_output && !enriched.capabilities.includes("audio_output")) {
144
+ enriched.capabilities.push("audio_output");
145
+ }
146
+ if (entry.supports_video_input && !enriched.capabilities.includes("video_input")) {
147
+ enriched.capabilities.push("video_input");
148
+ }
149
+ if (entry.supports_reasoning && !enriched.capabilities.includes("reasoning")) {
150
+ enriched.capabilities.push("reasoning");
151
+ }
152
+ if (entry.supports_response_schema && !enriched.capabilities.includes("structured_output")) {
153
+ enriched.capabilities.push("structured_output");
154
+ }
155
+ // Tokenizer family — only fill when missing. Prefer a local-runtime value
156
+ // when the discoverer already supplied one; fall back to heuristic inference
157
+ // based on origin provider and model ID.
158
+ if (!enriched.tokenizerFamily) {
159
+ const localFamily = enriched.localRuntime?.tokenizerFamily;
160
+ enriched.tokenizerFamily =
161
+ localFamily ?? inferTokenizerFamily(enriched.originProvider, enriched.id);
162
+ }
163
+ // Tool dialect — only fill when missing. The discoverer might know the
164
+ // canonical dialect for managed proxy endpoints; we only infer when it
165
+ // didn't come through.
166
+ if (enriched.toolDialect === undefined) {
167
+ const dialect = inferToolDialect(enriched.originProvider, enriched.id);
168
+ if (dialect !== undefined)
169
+ enriched.toolDialect = dialect;
170
+ }
171
+ // Structured output modes — only fill when the discoverer hasn't set them.
172
+ if (enriched.structuredOutputModes === undefined) {
173
+ const modes = inferStructuredOutputModes(enriched.originProvider, enriched.id);
174
+ if (modes.length > 0)
175
+ enriched.structuredOutputModes = modes;
176
+ }
177
+ // Parallel tool calls — litellm's flag takes precedence when present,
178
+ // otherwise fall back to the heuristic from the dialect / model ID.
179
+ if (enriched.supportsParallelToolCalls === undefined) {
180
+ if (entry.supports_parallel_function_calling !== undefined) {
181
+ enriched.supportsParallelToolCalls = entry.supports_parallel_function_calling;
182
+ }
183
+ else {
184
+ const parallel = inferParallelToolCalls(enriched.originProvider, enriched.id);
185
+ if (parallel !== undefined)
186
+ enriched.supportsParallelToolCalls = parallel;
187
+ }
188
+ }
189
+ // Deprecation metadata — only fill when missing; litellm publishes
190
+ // `deprecation_date` as an ISO string for models with announced sunset.
191
+ if (!enriched.deprecationDate && entry.deprecation_date) {
192
+ enriched.deprecationDate = entry.deprecation_date;
193
+ }
194
+ if (!enriched.status) {
195
+ enriched.status = this.inferStatus(enriched.deprecationDate);
196
+ }
130
197
  return enriched;
131
198
  }
199
+ /**
200
+ * Best-effort lifecycle status from a deprecation-date string.
201
+ *
202
+ * Returns `"retired"` when the date has already passed,
203
+ * `"deprecated"` when one is set but still in the future,
204
+ * and `"active"` when no date is present.
205
+ */
206
+ inferStatus(deprecationDate) {
207
+ if (!deprecationDate)
208
+ return "active";
209
+ const ts = Date.parse(deprecationDate);
210
+ if (Number.isNaN(ts))
211
+ return "active";
212
+ return ts <= Date.now() ? "retired" : "deprecated";
213
+ }
132
214
  /**
133
215
  * Look up a model in the litellm pricing catalogue using a tiered set of
134
216
  * key strategies. Later strategies use `originProvider` to handle models
@@ -192,18 +274,31 @@ export class LiteLLMEnricher {
192
274
  extractPricing(entry) {
193
275
  const reasoningInputCost = this.firstFinite(entry.input_cost_per_reasoning_token, entry.reasoning_input_cost_per_token);
194
276
  const reasoningOutputCost = this.firstFinite(entry.output_cost_per_reasoning_token, entry.reasoning_output_cost_per_token);
195
- const hasAnyPriceSignal = entry.input_cost_per_token !== undefined ||
196
- entry.output_cost_per_token !== undefined ||
197
- entry.cache_read_input_token_cost !== undefined ||
198
- entry.cache_creation_input_token_cost !== undefined ||
199
- reasoningInputCost !== undefined ||
200
- reasoningOutputCost !== undefined;
201
- if (!hasAnyPriceSignal) {
277
+ const baseInput = this.firstFinite(entry.input_cost_per_token);
278
+ const baseOutput = this.firstFinite(entry.output_cost_per_token);
279
+ const hasBaseTokenPricing = baseInput !== undefined && baseOutput !== undefined;
280
+ // Multimodal-only entries (TTS by-the-second, image generation, per-character
281
+ // Vertex models) legitimately publish no token-billed pricing — synthesizing
282
+ // 0/0 base on those is honest, and downstream free_tier detection skips
283
+ // non-chat modes. Cache-only / batch-only / reasoning-only entries, on the
284
+ // other hand, are incomplete catalog rows: synthesizing 0/0 base from them
285
+ // would falsely flag the model as free_tier, so we refuse.
286
+ const hasNonTokenPricing = entry.input_cost_per_image !== undefined ||
287
+ entry.output_cost_per_image !== undefined ||
288
+ entry.input_cost_per_audio_token !== undefined ||
289
+ entry.output_cost_per_audio_token !== undefined ||
290
+ entry.input_cost_per_audio_per_second !== undefined ||
291
+ entry.output_cost_per_audio_per_second !== undefined ||
292
+ entry.input_cost_per_video_per_second !== undefined ||
293
+ entry.input_cost_per_video_token !== undefined ||
294
+ entry.input_cost_per_character !== undefined ||
295
+ entry.output_cost_per_character !== undefined;
296
+ if (!hasBaseTokenPricing && !hasNonTokenPricing) {
202
297
  return undefined;
203
298
  }
204
299
  const pricing = {
205
- inputPerMillion: (entry.input_cost_per_token ?? 0) * PER_MILLION,
206
- outputPerMillion: (entry.output_cost_per_token ?? 0) * PER_MILLION,
300
+ inputPerMillion: (baseInput ?? 0) * PER_MILLION,
301
+ outputPerMillion: (baseOutput ?? 0) * PER_MILLION,
207
302
  };
208
303
  if (reasoningInputCost !== undefined) {
209
304
  pricing.reasoningInputPerMillion = reasoningInputCost * PER_MILLION;
@@ -217,6 +312,59 @@ export class LiteLLMEnricher {
217
312
  if (entry.cache_creation_input_token_cost !== undefined) {
218
313
  pricing.cacheWritePerMillion = entry.cache_creation_input_token_cost * PER_MILLION;
219
314
  }
315
+ if (entry.input_cost_per_token_batches !== undefined) {
316
+ pricing.batchInputPerMillion = entry.input_cost_per_token_batches * PER_MILLION;
317
+ }
318
+ if (entry.output_cost_per_token_batches !== undefined) {
319
+ pricing.batchOutputPerMillion = entry.output_cost_per_token_batches * PER_MILLION;
320
+ }
321
+ // Multimodal — images are already per-unit; audio/video tokens go through PER_MILLION.
322
+ if (entry.input_cost_per_image !== undefined) {
323
+ pricing.imageInputPerImage = entry.input_cost_per_image;
324
+ }
325
+ if (entry.output_cost_per_image !== undefined) {
326
+ pricing.imageOutputPerImage = entry.output_cost_per_image;
327
+ }
328
+ if (entry.input_cost_per_audio_token !== undefined) {
329
+ pricing.audioInputPerMillion = entry.input_cost_per_audio_token * PER_MILLION;
330
+ }
331
+ if (entry.output_cost_per_audio_token !== undefined) {
332
+ pricing.audioOutputPerMillion = entry.output_cost_per_audio_token * PER_MILLION;
333
+ }
334
+ if (entry.input_cost_per_audio_per_second !== undefined) {
335
+ pricing.audioInputPerSecond = entry.input_cost_per_audio_per_second;
336
+ }
337
+ if (entry.output_cost_per_audio_per_second !== undefined) {
338
+ pricing.audioOutputPerSecond = entry.output_cost_per_audio_per_second;
339
+ }
340
+ if (entry.input_cost_per_video_per_second !== undefined) {
341
+ pricing.videoInputPerSecond = entry.input_cost_per_video_per_second;
342
+ }
343
+ if (entry.input_cost_per_video_token !== undefined) {
344
+ pricing.videoInputPerMillion = entry.input_cost_per_video_token * PER_MILLION;
345
+ }
346
+ // Character-billed providers (Vertex AI, Azure).
347
+ if (entry.input_cost_per_character !== undefined) {
348
+ pricing.inputPerMillionCharacters = entry.input_cost_per_character * PER_MILLION;
349
+ }
350
+ if (entry.output_cost_per_character !== undefined) {
351
+ pricing.outputPerMillionCharacters = entry.output_cost_per_character * PER_MILLION;
352
+ }
353
+ // Tiered long-context pricing — prefer 128k, fall back to 200k (Claude-style).
354
+ const tieredIn = this.firstFinite(entry.input_cost_per_token_above_128k_tokens, entry.input_cost_per_token_above_200k_tokens);
355
+ const tieredOut = this.firstFinite(entry.output_cost_per_token_above_128k_tokens, entry.output_cost_per_token_above_200k_tokens);
356
+ if (tieredIn !== undefined) {
357
+ pricing.longContextInputPerMillion = tieredIn * PER_MILLION;
358
+ }
359
+ if (tieredOut !== undefined) {
360
+ pricing.longContextOutputPerMillion = tieredOut * PER_MILLION;
361
+ }
362
+ if (entry.input_cost_per_token_above_128k_tokens !== undefined || entry.output_cost_per_token_above_128k_tokens !== undefined) {
363
+ pricing.longContextThresholdTokens = 128_000;
364
+ }
365
+ else if (entry.input_cost_per_token_above_200k_tokens !== undefined || entry.output_cost_per_token_above_200k_tokens !== undefined) {
366
+ pricing.longContextThresholdTokens = 200_000;
367
+ }
220
368
  return pricing;
221
369
  }
222
370
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"litellm.js","sourceRoot":"","sources":["../../src/enrichment/litellm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"litellm.js","sourceRoot":"","sources":["../../src/enrichment/litellm.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -11,9 +11,11 @@ export { KoshaCache } from "./cache.js";
11
11
  export { DISCOVERY_SCHEMA_VERSION, discoveryRoles, makeModelKey, rawCapabilitiesForModel, trustedCapabilitiesForModel, } from "./discovery-contract.js";
12
12
  export type { DiscoveryBindingHintsV1, DiscoveryBindingQuery, DiscoveryChangeV1, DiscoveryCheapestCandidateV1, DiscoveryCheapestResultV1, DiscoveryCredentialPrompt, DiscoveryDeltaV1, DiscoveryHealthRecord, DiscoveryModelV1, DiscoveryProviderV1, DiscoveryRoleDefinition, DiscoverySnapshotV1, TrustedCapability, } from "./discovery-contract.js";
13
13
  export { extractModelVersion, extractOriginProvider, normalizeModelId } from "./normalize.js";
14
+ export { inferTokenizerFamily } from "./tokenizer-family.js";
15
+ export { inferParallelToolCalls, inferStructuredOutputModes, inferToolDialect } from "./model-features.js";
14
16
  export { getProviderDescriptor, isLocalProvider, listProviderDescriptors, normalizeProviderId, PROVIDER_CATALOG, } from "./provider-catalog.js";
15
17
  export type { ProviderDescriptor } from "./provider-catalog.js";
16
- export type { ComputeTarget, LocalRuntimeMetadata, ModelCard, ProviderInfo, ProviderRoleInfo, DiscoveryError, DiscoveryOptions, KoshaConfig, LatestDiscoveryOptions, LatestDiscoveryResult, ModelMode, ModelPricing, ModelRoleCard, RoleQueryOptions, CheapestModelOptions, CheapestModelMatch, CheapestModelResult, ProviderCredentialPrompt, PricingMetric, ModelRouteInfo, CapabilitySummary, CredentialResult, ProviderDiscoverer, Enricher, ProviderOrigin, ProviderTransport, } from "./types.js";
18
+ export type { ComputeTarget, LocalRuntimeMetadata, ModelCard, ModelStatus, ProviderInfo, ProviderRoleInfo, DiscoveryError, DiscoveryOptions, KoshaConfig, LatestDiscoveryOptions, LatestDiscoveryResult, ModelMode, ModelPricing, ModelRoleCard, RoleQueryOptions, CheapestModelOptions, CheapestModelMatch, CheapestModelResult, ProviderCredentialPrompt, PricingMetric, ModelRouteInfo, CapabilitySummary, CredentialResult, ProviderDiscoverer, Enricher, ProviderOrigin, ProviderTransport, StructuredOutputMode, ToolDialect, } from "./types.js";
17
19
  /**
18
20
  * Convenience factory: creates a ModelRegistry and runs discovery in one call.
19
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACN,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACX,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EACX,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,eAAe,EAAE,aAAa,CAAC,CAM3H"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACN,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACX,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EACX,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,GACX,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,eAAe,EAAE,aAAa,CAAC,CAM3H"}
package/dist/index.js CHANGED
@@ -10,6 +10,8 @@ export { AliasResolver, DEFAULT_ALIASES } from "./aliases.js";
10
10
  export { KoshaCache } from "./cache.js";
11
11
  export { DISCOVERY_SCHEMA_VERSION, discoveryRoles, makeModelKey, rawCapabilitiesForModel, trustedCapabilitiesForModel, } from "./discovery-contract.js";
12
12
  export { extractModelVersion, extractOriginProvider, normalizeModelId } from "./normalize.js";
13
+ export { inferTokenizerFamily } from "./tokenizer-family.js";
14
+ export { inferParallelToolCalls, inferStructuredOutputModes, inferToolDialect } from "./model-features.js";
13
15
  export { getProviderDescriptor, isLocalProvider, listProviderDescriptors, normalizeProviderId, PROVIDER_CATALOG, } from "./provider-catalog.js";
14
16
  /**
15
17
  * Convenience factory: creates a ModelRegistry and runs discovery in one call.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACN,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,yBAAyB,CAAC;AAgBjC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AA+B/B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAyC;IAC1E,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC1B,OAAO,QAAQ,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACN,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,yBAAyB,CAAC;AAgBjC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AAkC/B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAyC;IAC1E,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC1B,OAAO,QAAQ,CAAC;AACjB,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * kosha-discovery — Tool-dialect and structured-output inference.
3
+ *
4
+ * Tool calling and structured output are two surfaces where every frontier
5
+ * provider has settled on a *different* JSON shape. A consumer that wants
6
+ * to route a single workload across multiple providers has to pick the
7
+ * right adapter per model, and the registry is the natural place to tag
8
+ * that. These helpers return best-effort hints inferred from the origin
9
+ * provider plus the model ID — downstream callers treat them as defaults
10
+ * and override with direct API probes when precision matters.
11
+ * @module
12
+ */
13
+ import type { StructuredOutputMode, ToolDialect } from "./types.js";
14
+ /**
15
+ * Infer the tool-calling dialect a model natively speaks.
16
+ *
17
+ * The return value describes the wire format a consumer must emit to
18
+ * invoke tools on this model. Returns `undefined` when the provider is
19
+ * unknown and the model ID gives no signal — the caller should then
20
+ * fall back to `"openai-tools"` (the de-facto compatibility dialect).
21
+ *
22
+ * Mapping summary:
23
+ * - OpenAI GPT-4.1 / GPT-5 / o-series → `"openai-responses"` (new API)
24
+ * - OpenAI GPT-4 / GPT-4o / GPT-3.5 → `"openai-tools"`
25
+ * - Anthropic Claude 3+ → `"anthropic-tools"`
26
+ * - Google Gemini 1.5+ → `"gemini-functions"`
27
+ * - Cohere Command R / R+ → `"cohere-tools"`
28
+ * - Mistral Large / Small → `"mistral-tools"`
29
+ * - Meta Llama 3.1+ (instruct variants) → `"llama3-tools"`
30
+ * - Embedding / image / audio-only models → `"none"`
31
+ *
32
+ * NOTE on serving-layer proxies: this helper infers the model's *native*
33
+ * dialect from its origin provider. Managed serving layers such as Groq,
34
+ * Together, Fireworks, and OpenRouter expose open-weight models behind
35
+ * an OpenAI-compatible tools API regardless of the underlying family —
36
+ * so if you are calling a Llama 3.1 model through Groq, you should use
37
+ * `"openai-tools"` on the wire, not the `"llama3-tools"` hint returned
38
+ * here. Callers that care about the serving-layer wire format should
39
+ * check `ModelCard.provider` (the serving slug) first and fall back to
40
+ * this inference only for direct-origin routes. A future revision may
41
+ * take `servingProvider` as a second argument.
42
+ *
43
+ * @param originProvider - Model creator slug (e.g. `"anthropic"`).
44
+ * @param modelId - Provider-canonical model ID.
45
+ * @returns Best-effort dialect tag, or `undefined` when no safe guess exists.
46
+ */
47
+ export declare function inferToolDialect(originProvider: string | undefined, modelId: string): ToolDialect | undefined;
48
+ /**
49
+ * Infer the structured-output modes a model supports.
50
+ *
51
+ * Returns an ordered list with the most precise mode first. An empty
52
+ * array means no structured-output enforcement is available and the
53
+ * caller must fall back to prompt-level coercion.
54
+ *
55
+ * Precision ranking: `json-schema` > `response-schema` > `grammar`
56
+ * > `json-mode` > `response-format` > `tool-choice` > `xml`.
57
+ *
58
+ * @param originProvider - Model creator slug.
59
+ * @param modelId - Provider-canonical model ID.
60
+ * @returns Ordered list of supported modes (empty when unknown).
61
+ */
62
+ export declare function inferStructuredOutputModes(originProvider: string | undefined, modelId: string): StructuredOutputMode[];
63
+ /**
64
+ * Best-effort inference for whether a model supports parallel tool calls
65
+ * (multiple tool invocations emitted in a single assistant turn).
66
+ *
67
+ * Frontier models (GPT-4o, Claude 3.5+, Gemini 1.5+) all support this;
68
+ * older tool-capable models (GPT-3.5, early Claude 3) emit tool calls
69
+ * serially. Returns `undefined` when the model does not appear to support
70
+ * tool calling at all.
71
+ *
72
+ * @param originProvider - Model creator slug.
73
+ * @param modelId - Provider-canonical model ID.
74
+ * @returns `true`, `false`, or `undefined` when not tool-capable.
75
+ */
76
+ export declare function inferParallelToolCalls(originProvider: string | undefined, modelId: string): boolean | undefined;
77
+ //# sourceMappingURL=model-features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-features.d.ts","sourceRoot":"","sources":["../src/model-features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,gBAAgB,CAC/B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,OAAO,EAAE,MAAM,GACb,WAAW,GAAG,SAAS,CA0EzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACzC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,OAAO,EAAE,MAAM,GACb,oBAAoB,EAAE,CA+ExB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACrC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,OAAO,EAAE,MAAM,GACb,OAAO,GAAG,SAAS,CA0BrB"}