@sriinnu/kosha-discovery 0.6.0 → 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 (123) hide show
  1. package/README.md +53 -221
  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 +122 -504
  13. package/dist/cli-commands.js.map +1 -1
  14. package/dist/cli-format.d.ts +40 -0
  15. package/dist/cli-format.d.ts.map +1 -1
  16. package/dist/cli-format.js +74 -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 +5 -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/openrouter.d.ts.map +1 -1
  60. package/dist/discovery/openrouter.js +18 -1
  61. package/dist/discovery/openrouter.js.map +1 -1
  62. package/dist/discovery/promo-overrides.d.ts +54 -0
  63. package/dist/discovery/promo-overrides.d.ts.map +1 -0
  64. package/dist/discovery/promo-overrides.js +74 -0
  65. package/dist/discovery/promo-overrides.js.map +1 -0
  66. package/dist/discovery/public-seed.d.ts +30 -0
  67. package/dist/discovery/public-seed.d.ts.map +1 -0
  68. package/dist/discovery/public-seed.js +51 -0
  69. package/dist/discovery/public-seed.js.map +1 -0
  70. package/dist/discovery-contract.d.ts +14 -2
  71. package/dist/discovery-contract.d.ts.map +1 -1
  72. package/dist/discovery-contract.js +28 -0
  73. package/dist/discovery-contract.js.map +1 -1
  74. package/dist/enrichment/litellm-catalog.d.ts +81 -0
  75. package/dist/enrichment/litellm-catalog.d.ts.map +1 -0
  76. package/dist/enrichment/litellm-catalog.js +129 -0
  77. package/dist/enrichment/litellm-catalog.js.map +1 -0
  78. package/dist/enrichment/litellm.d.ts +9 -2
  79. package/dist/enrichment/litellm.d.ts.map +1 -1
  80. package/dist/enrichment/litellm.js +192 -23
  81. package/dist/enrichment/litellm.js.map +1 -1
  82. package/dist/index.d.ts +3 -1
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +2 -0
  85. package/dist/index.js.map +1 -1
  86. package/dist/model-features.d.ts +77 -0
  87. package/dist/model-features.d.ts.map +1 -0
  88. package/dist/model-features.js +245 -0
  89. package/dist/model-features.js.map +1 -0
  90. package/dist/normalize.d.ts +13 -0
  91. package/dist/normalize.d.ts.map +1 -1
  92. package/dist/normalize.js +15 -0
  93. package/dist/normalize.js.map +1 -1
  94. package/dist/provider-catalog.d.ts +7 -0
  95. package/dist/provider-catalog.d.ts.map +1 -1
  96. package/dist/provider-catalog.js +4 -0
  97. package/dist/provider-catalog.js.map +1 -1
  98. package/dist/registry-discovery.d.ts.map +1 -1
  99. package/dist/registry-discovery.js +11 -1
  100. package/dist/registry-discovery.js.map +1 -1
  101. package/dist/registry-query.d.ts.map +1 -1
  102. package/dist/registry-query.js +6 -3
  103. package/dist/registry-query.js.map +1 -1
  104. package/dist/registry-runtime.d.ts +39 -1
  105. package/dist/registry-runtime.d.ts.map +1 -1
  106. package/dist/registry-runtime.js +332 -1
  107. package/dist/registry-runtime.js.map +1 -1
  108. package/dist/registry-selection.js +2 -0
  109. package/dist/registry-selection.js.map +1 -1
  110. package/dist/registry.d.ts +9 -0
  111. package/dist/registry.d.ts.map +1 -1
  112. package/dist/registry.js +11 -1
  113. package/dist/registry.js.map +1 -1
  114. package/dist/security.d.ts.map +1 -1
  115. package/dist/security.js +32 -4
  116. package/dist/security.js.map +1 -1
  117. package/dist/tokenizer-family.d.ts +39 -0
  118. package/dist/tokenizer-family.d.ts.map +1 -0
  119. package/dist/tokenizer-family.js +92 -0
  120. package/dist/tokenizer-family.js.map +1 -0
  121. package/dist/types.d.ts +186 -0
  122. package/dist/types.d.ts.map +1 -1
  123. package/package.json +8 -2
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/discovery/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/discovery/openai.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/discovery/openrouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAA2B,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAwC3C;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;IACvD,QAAQ,CAAC,UAAU,gBAAgB;IACnC,QAAQ,CAAC,YAAY,gBAAgB;IACrC,QAAQ,CAAC,OAAO,2BAA2B;IAE3C;;;;;;;OAOG;IACG,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAsBlG;;;OAGG;IACH,OAAO,CAAC,WAAW;IAInB,8EAA8E;IAC9E,OAAO,CAAC,WAAW;IAmBnB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB;IAyB7B,6EAA6E;IAC7E,OAAO,CAAC,SAAS;IAkBjB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;CAgBpB"}
1
+ {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/discovery/openrouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAA2B,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AA4C3C;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;IACvD,QAAQ,CAAC,UAAU,gBAAgB;IACnC,QAAQ,CAAC,YAAY,gBAAgB;IACrC,QAAQ,CAAC,OAAO,2BAA2B;IAE3C;;;;;;;OAOG;IACG,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAsBlG;;;OAGG;IACH,OAAO,CAAC,WAAW;IAInB,8EAA8E;IAC9E,OAAO,CAAC,WAAW;IAmBnB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB;IAyB7B,6EAA6E;IAC7E,OAAO,CAAC,SAAS;IAkBjB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;CAoCpB"}
@@ -174,11 +174,28 @@ export class OpenRouterDiscoverer extends BaseDiscoverer {
174
174
  if (Number.isNaN(promptCost) || Number.isNaN(completionCost)) {
175
175
  return undefined;
176
176
  }
177
- return {
177
+ // I parse cache pricing optionally because most providers don't expose it.
178
+ // Anthropic models (and a growing list of others) support prompt caching
179
+ // and OpenRouter forwards the rates as `input_cache_read` / `input_cache_write`.
180
+ // Both are stringified per-token costs that need the same /1e6 conversion.
181
+ const result = {
178
182
  // Convert per-token cost to per-million-token cost
179
183
  inputPerMillion: promptCost * 1_000_000,
180
184
  outputPerMillion: completionCost * 1_000_000,
181
185
  };
186
+ const cacheReadCost = pricing.input_cache_read !== undefined
187
+ ? Number.parseFloat(pricing.input_cache_read)
188
+ : NaN;
189
+ if (Number.isFinite(cacheReadCost)) {
190
+ result.cacheReadPerMillion = cacheReadCost * 1_000_000;
191
+ }
192
+ const cacheWriteCost = pricing.input_cache_write !== undefined
193
+ ? Number.parseFloat(pricing.input_cache_write)
194
+ : NaN;
195
+ if (Number.isFinite(cacheWriteCost)) {
196
+ result.cacheWritePerMillion = cacheWriteCost * 1_000_000;
197
+ }
198
+ return result;
182
199
  }
183
200
  }
184
201
  //# sourceMappingURL=openrouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/discovery/openrouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/discovery/openrouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * kosha-discovery — Public promotional pricing overrides.
3
+ *
4
+ * Hand-curated list of known active promotional discounts that the public
5
+ * catalogs (models.dev, LiteLLM) have not yet picked up. Each entry has a
6
+ * hard expiry date and is automatically ignored once `Date.now() > endsAt`,
7
+ * so this file does not need cleanup after a promo ends — stale entries
8
+ * become no-ops.
9
+ *
10
+ * This is a deliberate, narrow seam. The default discovery flow stays
11
+ * keyless-first via the public catalogs; overrides only step in when a
12
+ * provider has publicly announced a discount that the upstream catalogs
13
+ * are slower to reflect.
14
+ *
15
+ * Adding an entry:
16
+ * 1. Confirm the promo is publicly announced on the provider's site.
17
+ * 2. Find the canonical model id used in kosha (e.g. `deepseek-v4-pro`).
18
+ * 3. Add an entry below with the explicit end timestamp.
19
+ * 4. Cite the source URL in `reason` so a future reader can verify it.
20
+ *
21
+ * Removing or letting an entry expire requires no action — the override
22
+ * silently goes inert once the clock passes `endsAt`.
23
+ * @module
24
+ */
25
+ import type { ModelCard, ModelPricing } from "../types.js";
26
+ /**
27
+ * A single promotional override. Matches by `(providerId, modelId)` and
28
+ * applies the given pricing when `Date.now() < endsAt.getTime()`.
29
+ */
30
+ export interface PromoOverride {
31
+ /** kosha provider id (e.g. "deepseek"). */
32
+ providerId: string;
33
+ /** Exact model id as it appears in kosha (e.g. "deepseek-v4-pro"). */
34
+ modelId: string;
35
+ /** Replacement pricing applied while the promo is active. */
36
+ pricing: ModelPricing;
37
+ /** Hard expiry. The override has no effect once this passes. */
38
+ endsAt: Date;
39
+ /** Free-form note for humans — should cite the source URL. */
40
+ reason: string;
41
+ }
42
+ /**
43
+ * Built-in promo overrides. Keep small and well-cited.
44
+ */
45
+ export declare const PROMO_OVERRIDES: readonly PromoOverride[];
46
+ /**
47
+ * Apply any active promo overrides to the given cards in place. Returns the
48
+ * same array (with patched cards) so callers can chain. Cards without a
49
+ * matching active override are unchanged.
50
+ *
51
+ * Idempotent — re-running on already-overridden cards yields the same result.
52
+ */
53
+ export declare function applyPromoOverrides(cards: ModelCard[], now?: Date): ModelCard[];
54
+ //# sourceMappingURL=promo-overrides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promo-overrides.d.ts","sourceRoot":"","sources":["../../src/discovery/promo-overrides.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,OAAO,EAAE,YAAY,CAAC;IACtB,gEAAgE;IAChE,MAAM,EAAE,IAAI,CAAC;IACb,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAenD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,GAAE,IAAiB,GAAG,SAAS,EAAE,CAoB3F"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * kosha-discovery — Public promotional pricing overrides.
3
+ *
4
+ * Hand-curated list of known active promotional discounts that the public
5
+ * catalogs (models.dev, LiteLLM) have not yet picked up. Each entry has a
6
+ * hard expiry date and is automatically ignored once `Date.now() > endsAt`,
7
+ * so this file does not need cleanup after a promo ends — stale entries
8
+ * become no-ops.
9
+ *
10
+ * This is a deliberate, narrow seam. The default discovery flow stays
11
+ * keyless-first via the public catalogs; overrides only step in when a
12
+ * provider has publicly announced a discount that the upstream catalogs
13
+ * are slower to reflect.
14
+ *
15
+ * Adding an entry:
16
+ * 1. Confirm the promo is publicly announced on the provider's site.
17
+ * 2. Find the canonical model id used in kosha (e.g. `deepseek-v4-pro`).
18
+ * 3. Add an entry below with the explicit end timestamp.
19
+ * 4. Cite the source URL in `reason` so a future reader can verify it.
20
+ *
21
+ * Removing or letting an entry expire requires no action — the override
22
+ * silently goes inert once the clock passes `endsAt`.
23
+ * @module
24
+ */
25
+ /**
26
+ * Built-in promo overrides. Keep small and well-cited.
27
+ */
28
+ export const PROMO_OVERRIDES = [
29
+ {
30
+ providerId: "deepseek",
31
+ modelId: "deepseek-v4-pro",
32
+ // 75% off the standard $1.74/$3.48 input/output rates.
33
+ // Cache hit also discounted 75% from $0.0145/M to $0.003625/M.
34
+ pricing: {
35
+ inputPerMillion: 0.435,
36
+ outputPerMillion: 0.87,
37
+ cacheReadPerMillion: 0.003625,
38
+ },
39
+ endsAt: new Date("2026-05-05T15:59:00Z"),
40
+ reason: "DeepSeek limited-time 75% off promo on deepseek-v4-pro — https://api-docs.deepseek.com/quick_start/pricing/",
41
+ },
42
+ ];
43
+ /**
44
+ * Apply any active promo overrides to the given cards in place. Returns the
45
+ * same array (with patched cards) so callers can chain. Cards without a
46
+ * matching active override are unchanged.
47
+ *
48
+ * Idempotent — re-running on already-overridden cards yields the same result.
49
+ */
50
+ export function applyPromoOverrides(cards, now = new Date()) {
51
+ if (cards.length === 0)
52
+ return cards;
53
+ const active = PROMO_OVERRIDES.filter((promo) => promo.endsAt.getTime() > now.getTime());
54
+ if (active.length === 0)
55
+ return cards;
56
+ for (let i = 0; i < cards.length; i += 1) {
57
+ const card = cards[i];
58
+ const match = active.find((promo) => promo.providerId === card.provider && promo.modelId === card.id);
59
+ if (!match)
60
+ continue;
61
+ cards[i] = {
62
+ ...card,
63
+ pricing: { ...match.pricing },
64
+ // Preserve a record of why this row diverges from the public catalog
65
+ // rate so consumers can trace the override.
66
+ rawCapabilities: dedupe([...(card.rawCapabilities ?? card.capabilities), "promo_override"]),
67
+ };
68
+ }
69
+ return cards;
70
+ }
71
+ function dedupe(values) {
72
+ return Array.from(new Set(values));
73
+ }
74
+ //# sourceMappingURL=promo-overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promo-overrides.js","sourceRoot":"","sources":["../../src/discovery/promo-overrides.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAqBH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA6B;IACxD;QACC,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,iBAAiB;QAC1B,uDAAuD;QACvD,+DAA+D;QAC/D,OAAO,EAAE;YACR,eAAe,EAAE,KAAK;YACtB,gBAAgB,EAAE,IAAI;YACtB,mBAAmB,EAAE,QAAQ;SAC7B;QACD,MAAM,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC;QACxC,MAAM,EACL,6GAA6G;KAC9G;CACD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkB,EAAE,MAAY,IAAI,IAAI,EAAE;IAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACzF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACxB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,CAC1E,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,CAAC,CAAC,CAAC,GAAG;YACV,GAAG,IAAI;YACP,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE;YAC7B,qEAAqE;YACrE,4CAA4C;YAC5C,eAAe,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,CAAC;SAC3F,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,MAAM,CAAC,MAAgB;IAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * kosha-discovery — Merged public-catalog seed.
3
+ *
4
+ * Combines the models.dev and LiteLLM keyless catalogs into a single seed
5
+ * per kosha provider. Priorities:
6
+ *
7
+ * 1. **models.dev = primary.** Fresher, structured `release_date`/`last_updated`
8
+ * metadata, tiered pricing, structured modalities. Most up-to-date for the
9
+ * models we actively track.
10
+ * 2. **LiteLLM = filler.** Backfills providers and models that models.dev does
11
+ * not yet cover (e.g. moonshot-cn variants, niche bedrock entries).
12
+ *
13
+ * Merge rules per (providerId, modelId):
14
+ * - models.dev entry wins when it exists.
15
+ * - LiteLLM-only entries are added to the seed (filler behaviour).
16
+ * - When both exist, models.dev metadata is kept; LiteLLM is *not* used to
17
+ * overwrite individual fields. The post-discovery LiteLLM enricher still
18
+ * runs and can fill any genuinely missing fields downstream.
19
+ *
20
+ * Failures in either source are non-fatal: a network blip on one feed
21
+ * silently degrades to the other so kosha never fails closed.
22
+ * @module
23
+ */
24
+ import type { ModelCard } from "../types.js";
25
+ /**
26
+ * Return a merged, deduplicated array of seed {@link ModelCard}s for the
27
+ * given kosha provider, sourced from both public catalogs.
28
+ */
29
+ export declare function getPublicSeed(providerId: string): Promise<ModelCard[]>;
30
+ //# sourceMappingURL=public-seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-seed.d.ts","sourceRoot":"","sources":["../../src/discovery/public-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C;;;GAGG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAoB5E"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * kosha-discovery — Merged public-catalog seed.
3
+ *
4
+ * Combines the models.dev and LiteLLM keyless catalogs into a single seed
5
+ * per kosha provider. Priorities:
6
+ *
7
+ * 1. **models.dev = primary.** Fresher, structured `release_date`/`last_updated`
8
+ * metadata, tiered pricing, structured modalities. Most up-to-date for the
9
+ * models we actively track.
10
+ * 2. **LiteLLM = filler.** Backfills providers and models that models.dev does
11
+ * not yet cover (e.g. moonshot-cn variants, niche bedrock entries).
12
+ *
13
+ * Merge rules per (providerId, modelId):
14
+ * - models.dev entry wins when it exists.
15
+ * - LiteLLM-only entries are added to the seed (filler behaviour).
16
+ * - When both exist, models.dev metadata is kept; LiteLLM is *not* used to
17
+ * overwrite individual fields. The post-discovery LiteLLM enricher still
18
+ * runs and can fill any genuinely missing fields downstream.
19
+ *
20
+ * Failures in either source are non-fatal: a network blip on one feed
21
+ * silently degrades to the other so kosha never fails closed.
22
+ * @module
23
+ */
24
+ import { getLiteLLMSeed } from "./litellm-seed.js";
25
+ import { getModelsDevSeed } from "./modelsdev-seed.js";
26
+ import { applyPromoOverrides } from "./promo-overrides.js";
27
+ /**
28
+ * Return a merged, deduplicated array of seed {@link ModelCard}s for the
29
+ * given kosha provider, sourced from both public catalogs.
30
+ */
31
+ export async function getPublicSeed(providerId) {
32
+ const [modelsDev, litellm] = await Promise.all([
33
+ getModelsDevSeed(providerId).catch(() => []),
34
+ getLiteLLMSeed(providerId).catch(() => []),
35
+ ]);
36
+ if (modelsDev.length === 0 && litellm.length === 0)
37
+ return [];
38
+ // Index models.dev by id so duplicate ids from LiteLLM are dropped.
39
+ const seen = new Set(modelsDev.map((card) => card.id));
40
+ const merged = [...modelsDev];
41
+ for (const card of litellm) {
42
+ if (seen.has(card.id))
43
+ continue;
44
+ seen.add(card.id);
45
+ merged.push(card);
46
+ }
47
+ // Final pass: apply any active promotional overrides for cases where the
48
+ // public catalogs haven't yet picked up a publicly-announced discount.
49
+ return applyPromoOverrides(merged);
50
+ }
51
+ //# sourceMappingURL=public-seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-seed.js","sourceRoot":"","sources":["../../src/discovery/public-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAkB;IACrD,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,gBAAgB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAiB,CAAC;QAC3D,cAAc,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAiB,CAAC;KACzD,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE9D,oEAAoE;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAgB,CAAC,GAAG,SAAS,CAAC,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,SAAS;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,yEAAyE;IACzE,uEAAuE;IACvE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -5,12 +5,12 @@
5
5
  * heuristics here so the registry can stay focused on orchestration.
6
6
  * @module
7
7
  */
8
- import type { ModelCard, ModelPricing } from "./types.js";
8
+ import type { ModelCard, ModelPricing, StructuredOutputMode, ToolDialect } from "./types.js";
9
9
  import type { ProviderDescriptor } from "./provider-catalog.js";
10
10
  /** Stable schema version exposed to Chitragupta and other daemon consumers. */
11
11
  export declare const DISCOVERY_SCHEMA_VERSION = 1;
12
12
  /** Trusted capability taxonomy surfaced by the v1 discovery contract. */
13
- export type TrustedCapability = "chat" | "function_calling" | "embeddings" | "vision" | "rerank" | "structured_output" | "streaming" | "long_context" | "local_exec" | "code_generation" | "reasoning" | "low_latency" | "cheap_inference";
13
+ export type TrustedCapability = "chat" | "function_calling" | "embeddings" | "vision" | "rerank" | "structured_output" | "streaming" | "long_context" | "local_exec" | "code_generation" | "reasoning" | "low_latency" | "cheap_inference" | "free_tier";
14
14
  /** Normalized role hints exposed by the v1 schema. */
15
15
  export interface DiscoveryRoleDefinition {
16
16
  /** Stable role identifier. */
@@ -77,6 +77,18 @@ export interface DiscoveryModelV1 {
77
77
  computeTarget: string | null;
78
78
  supportsStructuredOutput: boolean | null;
79
79
  supportsStreaming: boolean | null;
80
+ /** Tool-calling dialect family (e.g. `"anthropic-tools"`). */
81
+ toolDialect: ToolDialect | null;
82
+ /** Structured-output production modes surfaced for bindings. */
83
+ structuredOutputModes: StructuredOutputMode[];
84
+ /** Whether the model supports multiple tool calls per turn. */
85
+ supportsParallelToolCalls: boolean | null;
86
+ /** Lifecycle status used by routing and deprecation warnings. */
87
+ status: "active" | "preview" | "deprecated" | "retired" | null;
88
+ /** ISO-8601 deprecation/sunset date when announced by the provider. */
89
+ deprecationDate: string | null;
90
+ /** Canonical successor model ID when the provider has published one. */
91
+ replacedBy: string | null;
80
92
  }
81
93
  /** Normalized provider health exposed by the v1 discovery snapshot. */
82
94
  export interface DiscoveryHealthRecord {
@@ -1 +1 @@
1
- {"version":3,"file":"discovery-contract.d.ts","sourceRoot":"","sources":["../src/discovery-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery-contract.d.ts","sourceRoot":"","sources":["../src/discovery-contract.ts"],"names":[],"mappings":"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"}
@@ -99,6 +99,12 @@ export function trustedCapabilitiesForModel(model, descriptor) {
99
99
  caps.add("low_latency");
100
100
  if (descriptor.isLocal || isCheapPricing(model.pricing))
101
101
  caps.add("cheap_inference");
102
+ // Free tier is a strict subset of cheap — set both so consumers filtering on
103
+ // either get a coherent answer. Distinct from "cheap" because $0 is a real
104
+ // signal (free dev tiers, promo windows) that downstream cost classifiers
105
+ // should be able to single out.
106
+ if (rawCaps.includes("free_tier") || isFreeTierPricing(model))
107
+ caps.add("free_tier");
102
108
  return [...caps].sort();
103
109
  }
104
110
  /**
@@ -112,4 +118,26 @@ function isCheapPricing(pricing) {
112
118
  return false;
113
119
  return pricing.inputPerMillion <= 1 && pricing.outputPerMillion <= 4;
114
120
  }
121
+ function isFreeTierPricing(model) {
122
+ const pricing = model.pricing;
123
+ if (!pricing)
124
+ return false;
125
+ // `free_tier` is a token-billed concept (NVIDIA dev tier, Gemma/open-weight free,
126
+ // OpenAI moderation). Multimodal-only models — TTS billed per second, image gen
127
+ // billed per image, character-billed Vertex models — legitimately publish 0/0
128
+ // base token pricing because they are not token-billed; flagging them as
129
+ // free_tier would be misleading.
130
+ if (model.mode !== "chat" && model.mode !== "embedding")
131
+ return false;
132
+ if (pricing.imageOutputPerImage !== undefined ||
133
+ pricing.imageInputPerImage !== undefined ||
134
+ pricing.audioInputPerSecond !== undefined ||
135
+ pricing.audioOutputPerSecond !== undefined ||
136
+ pricing.videoInputPerSecond !== undefined ||
137
+ pricing.inputPerMillionCharacters !== undefined ||
138
+ pricing.outputPerMillionCharacters !== undefined) {
139
+ return false;
140
+ }
141
+ return pricing.inputPerMillion === 0 && pricing.outputPerMillion === 0;
142
+ }
115
143
  //# sourceMappingURL=discovery-contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery-contract.js","sourceRoot":"","sources":["../src/discovery-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery-contract.js","sourceRoot":"","sources":["../src/discovery-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * kosha-discovery — Shared LiteLLM catalog loader.
3
+ *
4
+ * Single source of truth for the community-maintained LiteLLM model catalog
5
+ * used by both the discovery seed (origin providers without an API key) and
6
+ * the post-discovery pricing enricher.
7
+ *
8
+ * Hardening:
9
+ * - HTTPS-only, fixed source URL — no caller-supplied URLs.
10
+ * - Promise-deduplicated singleton load — concurrent callers share one fetch.
11
+ * - AbortController-bounded fetch with explicit timeout.
12
+ * - Response size cap before parsing to prevent memory bombs.
13
+ * - {@link assertCleanPayload} runs before any field is read.
14
+ * - Entry-count cap after parse to bound downstream work.
15
+ *
16
+ * The catalog source is the same one already trusted by the existing
17
+ * enricher; this module just centralises the load.
18
+ * @module
19
+ */
20
+ /** Pinned upstream catalog URL — HTTPS only, no user override. */
21
+ export declare const LITELLM_CATALOG_URL = "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json";
22
+ /**
23
+ * Shape of a single entry in the LiteLLM pricing JSON.
24
+ * Fields are all optional because the upstream schema evolves over time;
25
+ * consumers must defensively handle missing fields.
26
+ */
27
+ export interface LiteLLMModelEntry {
28
+ max_tokens?: number;
29
+ max_input_tokens?: number;
30
+ max_output_tokens?: number;
31
+ input_cost_per_token?: number;
32
+ output_cost_per_token?: number;
33
+ input_cost_per_reasoning_token?: number;
34
+ output_cost_per_reasoning_token?: number;
35
+ reasoning_input_cost_per_token?: number;
36
+ reasoning_output_cost_per_token?: number;
37
+ cache_read_input_token_cost?: number;
38
+ cache_creation_input_token_cost?: number;
39
+ input_cost_per_token_batches?: number;
40
+ output_cost_per_token_batches?: number;
41
+ input_cost_per_image?: number;
42
+ output_cost_per_image?: number;
43
+ input_cost_per_audio_token?: number;
44
+ output_cost_per_audio_token?: number;
45
+ input_cost_per_audio_per_second?: number;
46
+ output_cost_per_audio_per_second?: number;
47
+ input_cost_per_video_per_second?: number;
48
+ input_cost_per_video_token?: number;
49
+ input_cost_per_character?: number;
50
+ output_cost_per_character?: number;
51
+ input_cost_per_token_above_128k_tokens?: number;
52
+ output_cost_per_token_above_128k_tokens?: number;
53
+ input_cost_per_token_above_200k_tokens?: number;
54
+ output_cost_per_token_above_200k_tokens?: number;
55
+ deprecation_date?: string;
56
+ litellm_provider?: string;
57
+ mode?: string;
58
+ supports_function_calling?: boolean;
59
+ supports_parallel_function_calling?: boolean;
60
+ supports_tool_choice?: boolean;
61
+ supports_response_schema?: boolean;
62
+ supports_system_messages?: boolean;
63
+ supports_vision?: boolean;
64
+ supports_audio_input?: boolean;
65
+ supports_audio_output?: boolean;
66
+ supports_video_input?: boolean;
67
+ supports_prompt_caching?: boolean;
68
+ supports_reasoning?: boolean;
69
+ output_vector_size?: number;
70
+ }
71
+ /**
72
+ * Fetch the LiteLLM catalog with full hardening, returning a defensively
73
+ * filtered map. Concurrent callers share the same in-flight promise.
74
+ */
75
+ export declare function loadLiteLLMCatalog(): Promise<Record<string, LiteLLMModelEntry>>;
76
+ /**
77
+ * Reset the cached catalog. Test-only helper — callers in production code
78
+ * should rely on the process-lifetime cache.
79
+ */
80
+ export declare function resetLiteLLMCatalogCache(): void;
81
+ //# sourceMappingURL=litellm-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"litellm-catalog.d.ts","sourceRoot":"","sources":["../../src/enrichment/litellm-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,gGAC8D,CAAC;AAW/F;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAEvC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAChD,uCAAuC,CAAC,EAAE,MAAM,CAAC;IACjD,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAChD,uCAAuC,CAAC,EAAE,MAAM,CAAC;IAEjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAQ/E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}