@sriinnu/kosha-discovery 1.9.1 → 1.11.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 (86) hide show
  1. package/README.md +9 -1
  2. package/dist/catalog-source.d.ts +99 -0
  3. package/dist/catalog-source.d.ts.map +1 -0
  4. package/dist/catalog-source.js +203 -0
  5. package/dist/catalog-source.js.map +1 -0
  6. package/dist/cli-cmd-doctor.d.ts +7 -0
  7. package/dist/cli-cmd-doctor.d.ts.map +1 -1
  8. package/dist/cli-cmd-doctor.js +38 -17
  9. package/dist/cli-cmd-doctor.js.map +1 -1
  10. package/dist/cli-cmd-query.d.ts +5 -0
  11. package/dist/cli-cmd-query.d.ts.map +1 -1
  12. package/dist/cli-cmd-query.js +64 -12
  13. package/dist/cli-cmd-query.js.map +1 -1
  14. package/dist/cli-cmd-registry.d.ts +12 -0
  15. package/dist/cli-cmd-registry.d.ts.map +1 -0
  16. package/dist/cli-cmd-registry.js +39 -0
  17. package/dist/cli-cmd-registry.js.map +1 -0
  18. package/dist/cli-cmd-spend.d.ts +6 -0
  19. package/dist/cli-cmd-spend.d.ts.map +1 -1
  20. package/dist/cli-cmd-spend.js +22 -6
  21. package/dist/cli-cmd-spend.js.map +1 -1
  22. package/dist/cli-commands.d.ts +4 -4
  23. package/dist/cli-commands.d.ts.map +1 -1
  24. package/dist/cli-commands.js +14 -12
  25. package/dist/cli-commands.js.map +1 -1
  26. package/dist/cli-help.d.ts.map +1 -1
  27. package/dist/cli-help.js +15 -2
  28. package/dist/cli-help.js.map +1 -1
  29. package/dist/cli.d.ts.map +1 -1
  30. package/dist/cli.js +11 -4
  31. package/dist/cli.js.map +1 -1
  32. package/dist/cost.d.ts +4 -0
  33. package/dist/cost.d.ts.map +1 -1
  34. package/dist/cost.js +27 -18
  35. package/dist/cost.js.map +1 -1
  36. package/dist/discovery/public-seed.d.ts.map +1 -1
  37. package/dist/discovery/public-seed.js +9 -0
  38. package/dist/discovery/public-seed.js.map +1 -1
  39. package/dist/discovery/snapshot-catalog.d.ts +13 -1
  40. package/dist/discovery/snapshot-catalog.d.ts.map +1 -1
  41. package/dist/discovery/snapshot-catalog.js +25 -7
  42. package/dist/discovery/snapshot-catalog.js.map +1 -1
  43. package/dist/enrichment/catalog.d.ts +19 -0
  44. package/dist/enrichment/catalog.d.ts.map +1 -0
  45. package/dist/enrichment/catalog.js +60 -0
  46. package/dist/enrichment/catalog.js.map +1 -0
  47. package/dist/enrichment/index.d.ts +1 -0
  48. package/dist/enrichment/index.d.ts.map +1 -1
  49. package/dist/enrichment/index.js +1 -0
  50. package/dist/enrichment/index.js.map +1 -1
  51. package/dist/index.d.ts +17 -15
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +8 -7
  54. package/dist/index.js.map +1 -1
  55. package/dist/mcp-server.d.ts.map +1 -1
  56. package/dist/mcp-server.js +12 -14
  57. package/dist/mcp-server.js.map +1 -1
  58. package/dist/price-trust.d.ts +29 -0
  59. package/dist/price-trust.d.ts.map +1 -0
  60. package/dist/price-trust.js +36 -0
  61. package/dist/price-trust.js.map +1 -0
  62. package/dist/proxy.d.ts.map +1 -1
  63. package/dist/proxy.js +170 -32
  64. package/dist/proxy.js.map +1 -1
  65. package/dist/registry-query.d.ts +1 -1
  66. package/dist/registry-query.d.ts.map +1 -1
  67. package/dist/registry-query.js +90 -25
  68. package/dist/registry-query.js.map +1 -1
  69. package/dist/registry-routing.d.ts +3 -1
  70. package/dist/registry-routing.d.ts.map +1 -1
  71. package/dist/registry-routing.js +7 -8
  72. package/dist/registry-routing.js.map +1 -1
  73. package/dist/registry-runtime.d.ts.map +1 -1
  74. package/dist/registry-runtime.js +26 -21
  75. package/dist/registry-runtime.js.map +1 -1
  76. package/dist/registry.d.ts +1 -1
  77. package/dist/registry.d.ts.map +1 -1
  78. package/dist/registry.js +82 -32
  79. package/dist/registry.js.map +1 -1
  80. package/dist/server.d.ts.map +1 -1
  81. package/dist/server.js +25 -15
  82. package/dist/server.js.map +1 -1
  83. package/dist/types.d.ts +30 -4
  84. package/dist/types.d.ts.map +1 -1
  85. package/package.json +1 -1
  86. package/server.json +2 -2
package/dist/cli.js CHANGED
@@ -11,11 +11,12 @@
11
11
  *
12
12
  * @module cli
13
13
  */
14
- import { ModelRegistry } from "./registry.js";
15
- import { DIM, RED, c } from "./cli-format.js";
16
14
  import { cmdDoctor } from "./cli-cmd-doctor.js";
15
+ import { cmdRegistry } from "./cli-cmd-registry.js";
17
16
  import { cmdSpend } from "./cli-cmd-spend.js";
18
- import { cmdCapabilities, cmdCapable, cmdCheapest, cmdDiscover, cmdEnrich, cmdLatest, cmdList, cmdModel, cmdProviders, cmdRefresh, cmdResolve, cmdRoles, cmdRoutes, cmdSearch, cmdServe, showHelp, showSplash, showVersion, } from "./cli-commands.js";
17
+ import { cmdCapabilities, cmdCapable, cmdCheapest, cmdDiscover, cmdEnrich, cmdLatest, cmdList, cmdModel, cmdProviders, cmdRanked, cmdRefresh, cmdResolve, cmdRoles, cmdRoutes, cmdSearch, cmdServe, showHelp, showSplash, showVersion, } from "./cli-commands.js";
18
+ import { c, DIM, RED } from "./cli-format.js";
19
+ import { ModelRegistry } from "./registry.js";
19
20
  /**
20
21
  * Parse a raw argv slice into positional tokens and named flags.
21
22
  *
@@ -85,7 +86,7 @@ async function main() {
85
86
  return;
86
87
  }
87
88
  // All remaining commands operate on a shared registry instance
88
- const registry = new ModelRegistry();
89
+ const registry = new ModelRegistry(await ModelRegistry.loadConfigFile());
89
90
  switch (command) {
90
91
  case "enrich":
91
92
  await cmdEnrich(registry, flags);
@@ -117,6 +118,9 @@ async function main() {
117
118
  case "cheapest":
118
119
  await cmdCheapest(registry, flags);
119
120
  break;
121
+ case "ranked":
122
+ await cmdRanked(registry, flags);
123
+ break;
120
124
  case "model":
121
125
  case "info":
122
126
  case "show":
@@ -143,6 +147,9 @@ async function main() {
143
147
  case "usage":
144
148
  await cmdSpend(registry, flags);
145
149
  break;
150
+ case "registry":
151
+ await cmdRegistry(registry, positional[1], flags);
152
+ break;
146
153
  default:
147
154
  console.error(c(RED, `Unknown command: "${command}"`));
148
155
  console.error(c(DIM, 'Run "kosha --help" for usage information.'));
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACN,eAAe,EACf,UAAU,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,WAAW,GACX,MAAM,mBAAmB,CAAC;AAmB3B;;;;;;;;;GASG;AACH,SAAS,SAAS,CAAC,IAAc;IAChC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,KAAK,GAAqC,EAAE,CAAC;IAEnD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,iEAAiE;YACjE,oEAAoE;YACpE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,IAAI,CAAC,CAAC;YACR,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,IAAI,CAAC,CAAC;YACR,CAAC;QACF,CAAC;aAAM,CAAC;YACP,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,IAAI,CAAC,CAAC;QACR,CAAC;IACF,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;GAMG;AACH,KAAK,UAAU,IAAI;IAClB,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE9B,4CAA4C;IAC5C,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACtC,QAAQ,EAAE,CAAC;QACX,OAAO;IACR,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,WAAW,EAAE,CAAC;QACd,OAAO;IACR,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,UAAU,EAAE,CAAC;QACb,OAAO;IACR,CAAC;IAED,0DAA0D;IAC1D,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,OAAO;IACR,CAAC;IAED,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAErC,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,QAAQ;YACZ,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM;QAEP,KAAK,UAAU;YACd,MAAM,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM;QAEP,KAAK,QAAQ;YACZ,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM;QAEP,KAAK,MAAM,CAAC;QACZ,KAAK,IAAI;YACR,MAAM,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC/B,MAAM;QAEP,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACV,MAAM,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM;QAEP,KAAK,OAAO;YACX,MAAM,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChC,MAAM;QAEP,KAAK,cAAc,CAAC;QACpB,KAAK,MAAM;YACV,MAAM,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM;QAEP,KAAK,SAAS;YACb,MAAM,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM;QAEP,KAAK,UAAU;YACd,MAAM,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM;QAEP,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACV,MAAM,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACrD,MAAM;QAEP,KAAK,WAAW;YACf,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM;QAEP,KAAK,QAAQ;YACZ,MAAM,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM;QAEP,KAAK,SAAS;YACb,MAAM,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM;QAEP,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACZ,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM;QAEP,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACZ,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM;QAEP,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACX,MAAM,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChC,MAAM;QAEP;YACC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,qBAAqB,OAAO,GAAG,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,2CAA2C,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACF,CAAC;AAED,sEAAsE;AACtE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACpB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/cost.d.ts CHANGED
@@ -92,6 +92,10 @@ export type UsageShape = "openai" | "anthropic";
92
92
  */
93
93
  export declare function actualCostFromUsage(model: ModelCard, rawUsage: unknown, shape: UsageShape): ActualUsageCost | null;
94
94
  export declare const DEFAULT_LEDGER_PATH: string;
95
+ /** Env override for the ledger location: tests, live checks, or a second instance. */
96
+ export declare const LEDGER_PATH_ENV = "KOSHA_LEDGER_PATH";
97
+ /** The ledger kosha reads and writes now: `KOSHA_LEDGER_PATH`, else ~/.kosha. Read per call. */
98
+ export declare function currentLedgerPath(): string;
95
99
  export interface CostEstimate {
96
100
  estimatedUsd: number;
97
101
  inputTokens: number;
@@ -1 +1 @@
1
- {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"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"}
package/dist/cost.js CHANGED
@@ -14,10 +14,10 @@
14
14
  * untouched, so we approximate input tokens with a coarse char→token ratio.
15
15
  * @module
16
16
  */
17
- import { appendFile, mkdir, readFile, readdir, rename, unlink, writeFile } from "fs/promises";
18
17
  import { randomBytes } from "crypto";
18
+ import { appendFile, mkdir, readdir, readFile, rename, unlink, writeFile } from "fs/promises";
19
19
  import { homedir } from "os";
20
- import { dirname, join } from "path";
20
+ import { dirname, join, resolve } from "path";
21
21
  import { normalizeTokenUsage } from "./tally.js";
22
22
  /**
23
23
  * The USD figure a ledger row contributes to spend: an adjustment row's
@@ -73,9 +73,22 @@ export function actualCostFromUsage(model, rawUsage, shape) {
73
73
  tokensTimesRate(cacheWrite1h, write1hRate);
74
74
  if (!Number.isFinite(usd) || usd < 0)
75
75
  return null;
76
- return { usd, inputTokens: uncachedInput, outputTokens: usage.outputTokens, cacheReadTokens: cacheRead, cacheWriteTokens: cacheWrite };
76
+ return {
77
+ usd,
78
+ inputTokens: uncachedInput,
79
+ outputTokens: usage.outputTokens,
80
+ cacheReadTokens: cacheRead,
81
+ cacheWriteTokens: cacheWrite,
82
+ };
77
83
  }
78
84
  export const DEFAULT_LEDGER_PATH = join(homedir(), ".kosha", "ledger.jsonl");
85
+ /** Env override for the ledger location: tests, live checks, or a second instance. */
86
+ export const LEDGER_PATH_ENV = "KOSHA_LEDGER_PATH";
87
+ /** The ledger kosha reads and writes now: `KOSHA_LEDGER_PATH`, else ~/.kosha. Read per call. */
88
+ export function currentLedgerPath() {
89
+ const override = process.env[LEDGER_PATH_ENV]?.trim();
90
+ return override ? resolve(override) : DEFAULT_LEDGER_PATH;
91
+ }
79
92
  /**
80
93
  * How many monthly partitions to retain on disk. Older partitions are
81
94
  * trimmed opportunistically on append. Tunable via
@@ -183,7 +196,7 @@ function readPositiveUsd(raw) {
183
196
  * the un-partitioned file keep counting until that file stops growing. At
184
197
  * most two files are read, never the full history.
185
198
  */
186
- export async function readSpendForMonth(nowMs, tenant, ledgerPath = DEFAULT_LEDGER_PATH) {
199
+ export async function readSpendForMonth(nowMs, tenant, ledgerPath = currentLedgerPath()) {
187
200
  const cutoffStart = startOfMonth(nowMs);
188
201
  const cutoffEnd = startOfNextMonth(nowMs);
189
202
  // The month partition is the hot path; the legacy file is the fallback
@@ -339,7 +352,7 @@ export async function trimLedgerPartitions(ledgerPath, nowMs, retentionMonths =
339
352
  * ENOENT, so a fresh install comes up cleanly. After the write we run a
340
353
  * best-effort retention trim so old partitions age out without a cron job.
341
354
  */
342
- export async function appendLedgerEntry(entry, ledgerPath = DEFAULT_LEDGER_PATH) {
355
+ export async function appendLedgerEntry(entry, ledgerPath = currentLedgerPath()) {
343
356
  await mkdir(dirname(ledgerPath), { recursive: true, mode: 0o700 });
344
357
  const partPath = partitionPathFor(ledgerPath, entry.ts);
345
358
  const line = `${JSON.stringify(sanitizeEntry(entry))}\n`;
@@ -347,19 +360,15 @@ export async function appendLedgerEntry(entry, ledgerPath = DEFAULT_LEDGER_PATH)
347
360
  await appendFile(partPath, line, { encoding: "utf-8", mode: 0o600 });
348
361
  }
349
362
  catch (err) {
350
- // If append fails (e.g. permissions) we just swallow — ledger is
351
- // observability, not load-bearing routing state. A best-effort
352
- // create-and-rename gets us going on a fresh install.
353
- if (err?.code === "ENOENT") {
354
- const tmp = `${partPath}.${randomBytes(4).toString("hex")}.tmp`;
355
- try {
356
- await writeFile(tmp, line, { encoding: "utf-8", mode: 0o600 });
357
- await rename(tmp, partPath);
358
- }
359
- catch {
360
- // give up silently
361
- }
362
- }
363
+ // The ledger is what budgets are enforced against, so a failed write
364
+ // throws: the proxy then refuses budgeted requests instead of letting
365
+ // spend go unrecorded. ENOENT on a fresh install gets one atomic
366
+ // create-and-rename first.
367
+ if (err?.code !== "ENOENT")
368
+ throw err;
369
+ const tmp = `${partPath}.${randomBytes(4).toString("hex")}.tmp`;
370
+ await writeFile(tmp, line, { encoding: "utf-8", mode: 0o600 });
371
+ await rename(tmp, partPath);
363
372
  }
364
373
  // Opportunistic, best-effort retention sweep. Housekeeping must never
365
374
  // break the append — the ledger is observability.
package/dist/cost.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cost.js","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost.js","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"public-seed.d.ts","sourceRoot":"","sources":["../../src/discovery/public-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C;;;GAGG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAwC5E"}
1
+ {"version":3,"file":"public-seed.d.ts","sourceRoot":"","sources":["../../src/discovery/public-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C;;;GAGG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA+C5E"}
@@ -24,6 +24,7 @@
24
24
  * if either community catalog ever stops.
25
25
  * @module
26
26
  */
27
+ import { getLocalSeed, resolveCatalogSource } from "../catalog-source.js";
27
28
  import { extractOriginProvider } from "../normalize.js";
28
29
  import { getLiteLLMSeed } from "./litellm-seed.js";
29
30
  import { getModelsDevSeed } from "./modelsdev-seed.js";
@@ -34,6 +35,14 @@ import { getSnapshotSeed } from "./snapshot-catalog.js";
34
35
  * given kosha provider, sourced from both public catalogs.
35
36
  */
36
37
  export async function getPublicSeed(providerId) {
38
+ // Outside `community` neither community catalog is fetched. Errors
39
+ // propagate to the discoverer, which falls back to its bundled static
40
+ // list; a bad `local` file is caught earlier, by assertCatalogReady.
41
+ const { mode } = resolveCatalogSource();
42
+ if (mode === "local")
43
+ return applyPromoOverrides(attributeCreators(await getLocalSeed(providerId), providerId));
44
+ if (mode === "pinned")
45
+ return applyPromoOverrides(attributeCreators(await getSnapshotSeed(providerId), providerId));
37
46
  const [modelsDevResult, litellmResult] = await Promise.allSettled([
38
47
  getModelsDevSeed(providerId),
39
48
  getLiteLLMSeed(providerId),
@@ -1 +1 @@
1
- {"version":3,"file":"public-seed.js","sourceRoot":"","sources":["../../src/discovery/public-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAkB;IACrD,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACjE,gBAAgB,CAAC,UAAU,CAAC;QAC5B,cAAc,CAAC,UAAU,CAAC;KAC1B,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhF,2EAA2E;IAC3E,wEAAwE;IACxE,yEAAyE;IACzE,yEAAyE;IACzE,wDAAwD;IACxD,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,KAAK,UAAU,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,CAAC;IACjG,IAAI,WAAW,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC;YACJ,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,eAAe,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9F,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAED,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,wEAAwE;IACxE,8DAA8D;IAC9D,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,uEAAuE;IACvE,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,iFAAiF;AACjF,SAAS,iBAAiB,CAAC,KAAkB,EAAE,UAAkB;IAChE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACzB,IAAI,CAAC,cAAc,KAAK,UAAU;QACjC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE;QAC3E,CAAC,CAAC,IAAI,CACP,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"public-seed.js","sourceRoot":"","sources":["../../src/discovery/public-seed.ts"],"names":[],"mappings":"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"}
@@ -17,10 +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
+ /** A parsed catalog: cards keyed by provider id, plus when it was built. */
21
+ export interface SnapshotCatalog {
22
+ providers: Map<string, ModelCard[]>;
23
+ /** The envelope's `fetchedAt`, or null when the file does not say. */
24
+ fetchedAt: string | null;
25
+ }
20
26
  /** Resolve the snapshot URL, honouring the env override when it is sane. */
21
27
  export declare function snapshotCatalogUrl(): string;
22
28
  /** Load the snapshot once per process, keyed by provider id. */
23
- export declare function loadSnapshotCatalog(): Promise<Map<string, ModelCard[]>>;
29
+ export declare function loadSnapshotCatalog(): Promise<SnapshotCatalog>;
24
30
  export declare function resetSnapshotCatalogCache(): void;
25
31
  /**
26
32
  * Seed cards for one provider from the snapshot. The cards are already in
@@ -29,4 +35,10 @@ export declare function resetSnapshotCatalogCache(): void;
29
35
  * one. Returns `[]` for a provider the snapshot does not carry.
30
36
  */
31
37
  export declare function getSnapshotSeed(providerId: string): Promise<ModelCard[]>;
38
+ /**
39
+ * Parse and validate a catalog in the snapshot format. Shared by the
40
+ * published snapshot and the `local` catalog file, so both get the same
41
+ * caps and the same threat scan. `label` names the source in errors.
42
+ */
43
+ export declare function parseSnapshotCatalog(text: string, label: string): SnapshotCatalog;
32
44
  //# sourceMappingURL=snapshot-catalog.d.ts.map
@@ -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;AAmB7D,4EAA4E;AAC5E,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAOvE;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAS9E"}
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"}
@@ -53,7 +53,7 @@ export function resetSnapshotCatalogCache() {
53
53
  export async function getSnapshotSeed(providerId) {
54
54
  const catalog = await loadSnapshotCatalog();
55
55
  const now = Date.now();
56
- return (catalog.get(providerId) ?? []).map((card) => ({
56
+ return (catalog.providers.get(providerId) ?? []).map((card) => ({
57
57
  ...card,
58
58
  discoveredAt: now,
59
59
  source: "litellm",
@@ -74,20 +74,37 @@ async function fetchAndValidate() {
74
74
  if (!response.ok) {
75
75
  throw new Error(`Failed to fetch kosha snapshot: ${response.status} ${response.statusText}`);
76
76
  }
77
- const text = await readBoundedText(response, MAX_PAYLOAD_BYTES);
77
+ return parseSnapshotCatalog(await readBoundedText(response, MAX_PAYLOAD_BYTES), "kosha snapshot");
78
+ }
79
+ /**
80
+ * Parse and validate a catalog in the snapshot format. Shared by the
81
+ * published snapshot and the `local` catalog file, so both get the same
82
+ * caps and the same threat scan. `label` names the source in errors.
83
+ */
84
+ export function parseSnapshotCatalog(text, label) {
78
85
  let parsed;
79
86
  try {
80
87
  parsed = JSON.parse(text);
81
88
  }
82
89
  catch {
83
- throw new Error("Failed to parse kosha snapshot: invalid JSON");
90
+ throw new Error(`Failed to parse ${label}: invalid JSON`);
91
+ }
92
+ // Exports and newer snapshots carry `kind` and `schemaVersion`; older
93
+ // snapshots have neither. A file that names another kind, or a version
94
+ // this kosha does not know, is refused rather than half-read.
95
+ const envelope = parsed;
96
+ if (envelope?.kind !== undefined && envelope.kind !== "kosha-catalog") {
97
+ throw new Error(`Failed to parse ${label}: kind "${String(envelope.kind)}" is not a kosha catalog`);
98
+ }
99
+ if (envelope?.schemaVersion !== undefined && envelope.schemaVersion !== 1) {
100
+ throw new Error(`Failed to parse ${label}: unsupported schemaVersion ${String(envelope.schemaVersion)}`);
84
101
  }
85
102
  const providers = parsed?.providers;
86
103
  if (!Array.isArray(providers)) {
87
- throw new Error("Failed to parse kosha snapshot: expected a providers array");
104
+ throw new Error(`Failed to parse ${label}: expected a providers array`);
88
105
  }
89
106
  if (providers.length > MAX_PROVIDERS) {
90
- throw new Error(`kosha snapshot exceeds provider cap (${providers.length} > ${MAX_PROVIDERS}) — refusing to load`);
107
+ throw new Error(`${label} exceeds provider cap (${providers.length} > ${MAX_PROVIDERS}) — refusing to load`);
91
108
  }
92
109
  // Key by provider id so the threat scan can quarantine one provider's
93
110
  // rows without discarding the rest — the same shape the other loaders use.
@@ -98,7 +115,7 @@ async function fetchAndValidate() {
98
115
  continue;
99
116
  byId[provider.id] = Array.isArray(provider.models) ? provider.models : [];
100
117
  }
101
- const { clean } = quarantineEntries(byId, "kosha snapshot");
118
+ const { clean } = quarantineEntries(byId, label);
102
119
  const out = new Map();
103
120
  for (const [id, models] of Object.entries(clean)) {
104
121
  if (!Array.isArray(models))
@@ -107,7 +124,8 @@ async function fetchAndValidate() {
107
124
  if (cards.length > 0)
108
125
  out.set(id, cards);
109
126
  }
110
- return out;
127
+ const fetchedAt = parsed.fetchedAt;
128
+ return { providers: out, fetchedAt: typeof fetchedAt === "string" ? fetchedAt : null };
111
129
  }
112
130
  /** Only the fields every path downstream dereferences; the rest ride along. */
113
131
  function isModelCardShape(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-catalog.js","sourceRoot":"","sources":["../../src/discovery/snapshot-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot-catalog.js","sourceRoot":"","sources":["../../src/discovery/snapshot-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * kosha-discovery — Enrichment from kosha's own catalog.
3
+ *
4
+ * In `pinned` and `local` mode the LiteLLM enricher is off, so models found
5
+ * with a key would lose the prices and limits it used to fill. This fills
6
+ * the same gaps from the active catalog instead (the published snapshot or
7
+ * the local file), matched by provider and model id. Like the LiteLLM
8
+ * enricher it only fills what is missing and never overwrites API data.
9
+ * @module
10
+ */
11
+ import type { SnapshotCatalog } from "../discovery/snapshot-catalog.js";
12
+ import type { Enricher, ModelCard } from "../types.js";
13
+ export declare class CatalogEnricher implements Enricher {
14
+ private readonly catalog;
15
+ constructor(catalog: SnapshotCatalog);
16
+ enrich(models: ModelCard[]): Promise<ModelCard[]>;
17
+ private enrichOne;
18
+ }
19
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/enrichment/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAErE,qBAAa,eAAgB,YAAW,QAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,eAAe,EAAI;IAEnD,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAEtD;IAED,OAAO,CAAC,SAAS;CAejB"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * kosha-discovery — Enrichment from kosha's own catalog.
3
+ *
4
+ * In `pinned` and `local` mode the LiteLLM enricher is off, so models found
5
+ * with a key would lose the prices and limits it used to fill. This fills
6
+ * the same gaps from the active catalog instead (the published snapshot or
7
+ * the local file), matched by provider and model id. Like the LiteLLM
8
+ * enricher it only fills what is missing and never overwrites API data.
9
+ * @module
10
+ */
11
+ import { applyFreeTierFlag } from "../discovery/free-tier.js";
12
+ export class CatalogEnricher {
13
+ catalog;
14
+ constructor(catalog) {
15
+ this.catalog = catalog;
16
+ }
17
+ async enrich(models) {
18
+ return models.map((model) => applyFreeTierFlag(this.enrichOne(model)));
19
+ }
20
+ enrichOne(model) {
21
+ const entry = this.catalog.providers.get(model.provider)?.find((card) => card.id === model.id);
22
+ if (!entry)
23
+ return { ...model };
24
+ const enriched = { ...model };
25
+ if (entry.pricing)
26
+ enriched.pricing = fillPricing(enriched.pricing, entry.pricing);
27
+ if (!enriched.originPricing && entry.originPricing)
28
+ enriched.originPricing = entry.originPricing;
29
+ if (enriched.contextWindow === 0 && entry.contextWindow)
30
+ enriched.contextWindow = entry.contextWindow;
31
+ if (enriched.maxOutputTokens === 0 && entry.maxOutputTokens)
32
+ enriched.maxOutputTokens = entry.maxOutputTokens;
33
+ if (enriched.maxInputTokens === undefined && entry.maxInputTokens)
34
+ enriched.maxInputTokens = entry.maxInputTokens;
35
+ if (enriched.dimensions === undefined && entry.dimensions)
36
+ enriched.dimensions = entry.dimensions;
37
+ if (enriched.status === undefined && entry.status)
38
+ enriched.status = entry.status;
39
+ if (enriched.releaseDate === undefined && entry.releaseDate)
40
+ enriched.releaseDate = entry.releaseDate;
41
+ return enriched;
42
+ }
43
+ }
44
+ /** Take the catalog's pricing when there is none; otherwise top up missing rates only. */
45
+ function fillPricing(current, entry) {
46
+ if (!current)
47
+ return entry;
48
+ const filled = { ...current };
49
+ for (const key of [
50
+ "cacheReadPerMillion",
51
+ "cacheWritePerMillion",
52
+ "batchInputPerMillion",
53
+ "batchOutputPerMillion",
54
+ ]) {
55
+ if (filled[key] === undefined && entry[key] !== undefined)
56
+ filled[key] = entry[key];
57
+ }
58
+ return filled;
59
+ }
60
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/enrichment/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAI9D,MAAM,OAAO,eAAe;IACE,OAAO;IAApC,YAA6B,OAAwB;uBAAxB,OAAO;IAAoB,CAAC;IAEzD,KAAK,CAAC,MAAM,CAAC,MAAmB;QAC/B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAEO,SAAS,CAAC,KAAgB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;QAEhC,MAAM,QAAQ,GAAc,EAAE,GAAG,KAAK,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,OAAO;YAAE,QAAQ,CAAC,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa;YAAE,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QACjG,IAAI,QAAQ,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa;YAAE,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QACtG,IAAI,QAAQ,CAAC,eAAe,KAAK,CAAC,IAAI,KAAK,CAAC,eAAe;YAAE,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAC9G,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc;YAAE,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAClH,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU;YAAE,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAClG,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM;YAAE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAClF,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW;YAAE,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACtG,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD;AAED,0FAA0F;AAC1F,SAAS,WAAW,CAAC,OAAiC,EAAE,KAAmB;IAC1E,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,MAAM,GAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI;QACjB,qBAAqB;QACrB,sBAAsB;QACtB,sBAAsB;QACtB,uBAAuB;KACd,EAAE,CAAC;QACZ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,2 +1,3 @@
1
+ export { CatalogEnricher } from "./catalog.js";
1
2
  export { LiteLLMEnricher } from "./litellm.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enrichment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enrichment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -1,2 +1,3 @@
1
+ export { CatalogEnricher } from "./catalog.js";
1
2
  export { LiteLLMEnricher } from "./litellm.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enrichment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enrichment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,27 +5,29 @@
5
5
  * consumers can import from a single `"kosha-discovery"` entry point.
6
6
  * @module
7
7
  */
8
- export { ModelRegistry } from "./registry.js";
9
8
  export { AliasResolver, DEFAULT_ALIASES } from "./aliases.js";
10
9
  export { KoshaCache } from "./cache.js";
11
- export { DISCOVERY_SCHEMA_VERSION, discoveryRoles, makeModelKey, rawCapabilitiesForModel, trustedCapabilitiesForModel, } from "./discovery-contract.js";
10
+ export type { CatalogEnvelope, CatalogReport, CatalogSource, ResolvedCatalogSource } from "./catalog-source.js";
11
+ export { buildCatalogEnvelope, CATALOG_FILE_ENV, CATALOG_KIND, CATALOG_SCHEMA_VERSION, CATALOG_SOURCE_ENV, CATALOG_SOURCES, describeCatalog, resolveCatalogSource, } from "./catalog-source.js";
12
+ export type { ClaudeEffort, ClaudeGeneration, SamplingSupport } from "./claude-generation.js";
13
+ export { claudeEffortLadder, claudeSamplingSupport, claudeSupportsForcedToolChoice, claudeSupportsNativeJsonSchema, claudeSupportsPrefill, parseClaudeGeneration, } from "./claude-generation.js";
14
+ export type { ActualUsageCost, CostEstimate, LedgerEntry, UsageShape } from "./cost.js";
15
+ export { actualCostFromUsage, appendLedgerEntry, currentLedgerPath, DEFAULT_LEDGER_PATH, estimateRequestCost, isRequestRow, LEDGER_PATH_ENV, ledgerRowUsd, readMonthlyBudgetUsd, readSpendForMonth, readTenantBudgetUsd, } from "./cost.js";
12
16
  export type { DiscoveryBindingHintsV1, DiscoveryBindingQuery, DiscoveryChangeV1, DiscoveryCheapestCandidateV1, DiscoveryCheapestResultV1, DiscoveryCredentialPrompt, DiscoveryDeltaV1, DiscoveryHealthRecord, DiscoveryModelV1, DiscoveryProviderV1, DiscoveryRoleDefinition, DiscoverySnapshotV1, TrustedCapability, } from "./discovery-contract.js";
13
- export { parseRouteStrategy, ROUTE_STRATEGIES, } from "./registry-routing.js";
17
+ export { DISCOVERY_SCHEMA_VERSION, discoveryRoles, makeModelKey, rawCapabilitiesForModel, trustedCapabilitiesForModel, } from "./discovery-contract.js";
18
+ export { inferParallelToolCalls, inferStructuredOutputModes, inferToolDialect } from "./model-features.js";
19
+ export { extractModelVersion, extractOriginProvider, normalizeModelId } from "./normalize.js";
20
+ export type { ProviderDescriptor } from "./provider-catalog.js";
21
+ export { getProviderDescriptor, isLocalProvider, listProviderDescriptors, normalizeProviderId, PROVIDER_CATALOG, } from "./provider-catalog.js";
22
+ export { ModelRegistry } from "./registry.js";
14
23
  export type { RankedRoute, RouteHealth, RouteStrategy } from "./registry-routing.js";
15
- export { actualCostFromUsage, appendLedgerEntry, DEFAULT_LEDGER_PATH, estimateRequestCost, isRequestRow, ledgerRowUsd, readMonthlyBudgetUsd, readSpendForMonth, readTenantBudgetUsd, } from "./cost.js";
16
- export type { ActualUsageCost, CostEstimate, LedgerEntry, UsageShape } from "./cost.js";
17
- export { estimateUsdCost, normalizeTokenUsage, tallyCosts } from "./tally.js";
24
+ export { parseRouteStrategy, ROUTE_STRATEGIES, } from "./registry-routing.js";
18
25
  export type { NormalizedTokenUsage, TallyCall, TallyModelSubtotal, TallyResult, TokenUsage, UsdCostBreakdown, } from "./tally.js";
19
- export { claudeEffortLadder, claudeSamplingSupport, claudeSupportsForcedToolChoice, claudeSupportsNativeJsonSchema, claudeSupportsPrefill, parseClaudeGeneration, } from "./claude-generation.js";
20
- export type { ClaudeEffort, ClaudeGeneration, SamplingSupport } from "./claude-generation.js";
21
- export { coerceOpenAIChatRequest, toOpenAIUsage, translateAnthropicStreamToOpenAI, translateAnthropicToOpenAI, translateOpenAIToAnthropic, translateOpenAIToAnthropicWithNotes, UnsupportedWireContentError, } from "./wire-anthropic.js";
22
- export type { AnthropicContentBlock, AnthropicMessagesRequest, AnthropicMessagesResponse, AnthropicStreamTranslation, AnthropicUsage, OpenAIChatRequest, OpenAIChatResponse, OpenAIToolCall, OpenAIUsage, WireTranslation, } from "./wire-anthropic.js";
23
- export { extractModelVersion, extractOriginProvider, normalizeModelId } from "./normalize.js";
26
+ export { estimateUsdCost, normalizeTokenUsage, tallyCosts } from "./tally.js";
24
27
  export { inferTokenizerFamily } from "./tokenizer-family.js";
25
- export { inferParallelToolCalls, inferStructuredOutputModes, inferToolDialect } from "./model-features.js";
26
- export { getProviderDescriptor, isLocalProvider, listProviderDescriptors, normalizeProviderId, PROVIDER_CATALOG, } from "./provider-catalog.js";
27
- export type { ProviderDescriptor } from "./provider-catalog.js";
28
- 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";
28
+ export type { CapabilitySummary, CheapestModelMatch, CheapestModelOptions, CheapestModelResult, ComputeTarget, CredentialResult, DiscoveryError, DiscoveryOptions, Enricher, KoshaConfig, LatestDiscoveryOptions, LatestDiscoveryResult, LocalRuntimeMetadata, ModelCard, ModelMode, ModelPricing, ModelRoleCard, ModelRouteInfo, ModelStatus, PricingMetric, ProviderCredentialPrompt, ProviderDiscoverer, ProviderInfo, ProviderOrigin, ProviderRoleInfo, ProviderTransport, RoleQueryOptions, StructuredOutputMode, ToolDialect, } from "./types.js";
29
+ export type { AnthropicContentBlock, AnthropicMessagesRequest, AnthropicMessagesResponse, AnthropicStreamTranslation, AnthropicUsage, OpenAIChatRequest, OpenAIChatResponse, OpenAIToolCall, OpenAIUsage, WireTranslation, } from "./wire-anthropic.js";
30
+ export { coerceOpenAIChatRequest, toOpenAIUsage, translateAnthropicStreamToOpenAI, translateAnthropicToOpenAI, translateOpenAIToAnthropic, translateOpenAIToAnthropicWithNotes, UnsupportedWireContentError, } from "./wire-anthropic.js";
29
31
  /**
30
32
  * Convenience factory: creates a ModelRegistry and runs discovery in one call.
31
33
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}