tokenmeter 0.9.0 → 0.9.11

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 (54) hide show
  1. package/README.md +220 -6
  2. package/dist/config.d.ts +7 -84
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +7 -158
  5. package/dist/config.js.map +1 -1
  6. package/dist/exporter/PostgresExporter.d.ts.map +1 -1
  7. package/dist/exporter/PostgresExporter.js +4 -2
  8. package/dist/exporter/PostgresExporter.js.map +1 -1
  9. package/dist/index.d.ts +3 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/instrumentation/proxy.d.ts.map +1 -1
  14. package/dist/instrumentation/proxy.js +279 -51
  15. package/dist/instrumentation/proxy.js.map +1 -1
  16. package/dist/instrumentation/strategies/index.d.ts +33 -0
  17. package/dist/instrumentation/strategies/index.d.ts.map +1 -1
  18. package/dist/instrumentation/strategies/index.js +146 -17
  19. package/dist/instrumentation/strategies/index.js.map +1 -1
  20. package/dist/integrations/inngest/index.d.ts +0 -38
  21. package/dist/integrations/inngest/index.d.ts.map +1 -1
  22. package/dist/integrations/inngest/index.js +0 -49
  23. package/dist/integrations/inngest/index.js.map +1 -1
  24. package/dist/integrations/vercel-ai/index.d.ts.map +1 -1
  25. package/dist/integrations/vercel-ai/index.js +2 -1
  26. package/dist/integrations/vercel-ai/index.js.map +1 -1
  27. package/dist/pricing/manifest.bundled.d.ts +24 -0
  28. package/dist/pricing/manifest.bundled.d.ts.map +1 -0
  29. package/dist/pricing/manifest.bundled.js +13347 -0
  30. package/dist/pricing/manifest.bundled.js.map +1 -0
  31. package/dist/pricing/manifest.d.ts +24 -10
  32. package/dist/pricing/manifest.d.ts.map +1 -1
  33. package/dist/pricing/manifest.js +189 -118
  34. package/dist/pricing/manifest.js.map +1 -1
  35. package/dist/pricing/schema.d.ts +22 -13
  36. package/dist/pricing/schema.d.ts.map +1 -1
  37. package/dist/pricing/schema.js +5 -2
  38. package/dist/pricing/schema.js.map +1 -1
  39. package/dist/processor/TokenMeterProcessor.d.ts +37 -7
  40. package/dist/processor/TokenMeterProcessor.d.ts.map +1 -1
  41. package/dist/processor/TokenMeterProcessor.js +45 -24
  42. package/dist/processor/TokenMeterProcessor.js.map +1 -1
  43. package/dist/query/client.d.ts +0 -24
  44. package/dist/query/client.d.ts.map +1 -1
  45. package/dist/query/client.js +42 -9
  46. package/dist/query/client.js.map +1 -1
  47. package/dist/registry.d.ts +127 -0
  48. package/dist/registry.d.ts.map +1 -0
  49. package/dist/registry.js +144 -0
  50. package/dist/registry.js.map +1 -0
  51. package/dist/types.d.ts +61 -5
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/types.js.map +1 -1
  54. package/package.json +3 -2
@@ -1,10 +1,12 @@
1
1
  /**
2
- * Pricing Manifest Fetcher
2
+ * Pricing Manifest Manager
3
3
  *
4
- * Remote-first pricing with local fallback for reliability.
5
- * Fetches latest pricing from CDN, falls back to bundled data if unavailable.
4
+ * Bundled-first pricing with remote updates for reliability.
5
+ * Pricing is always available synchronously via bundled data.
6
+ * Remote fetching updates the cache in the background.
6
7
  */
7
8
  import { logger } from "../logger.js";
9
+ import { BUNDLED_MANIFEST } from "./manifest.bundled.js";
8
10
  /**
9
11
  * Default Pricing API URL.
10
12
  * Primary source for pricing data with automatic updates.
@@ -19,13 +21,50 @@ const DEFAULT_CDN_URL = "https://cdn.jsdelivr.net/npm/tokenmeter@latest/dist/pri
19
21
  let globalConfig = {};
20
22
  // Model alias storage for fast lookup
21
23
  let modelAliases = {};
22
- // Cache for the loaded manifest
23
- let cachedManifest = null;
24
+ // Cache for the loaded manifest - initialized with bundled data (always available)
25
+ let cachedManifest = BUNDLED_MANIFEST;
24
26
  let manifestLoadPromise = null;
25
- let cacheTimestamp = null;
27
+ let cacheTimestamp = Date.now();
28
+ /**
29
+ * Allowed URL hosts for pricing manifest fetching (SSRF protection)
30
+ */
31
+ const ALLOWED_MANIFEST_HOSTS = new Set([
32
+ "pricing.tokenmeter.dev",
33
+ "cdn.jsdelivr.net",
34
+ "unpkg.com",
35
+ "raw.githubusercontent.com",
36
+ ]);
37
+ /**
38
+ * Validate a URL for manifest fetching
39
+ */
40
+ function isValidManifestUrl(url) {
41
+ try {
42
+ const parsed = new URL(url);
43
+ // Must be HTTPS (except localhost for development)
44
+ if (parsed.protocol !== "https:" &&
45
+ parsed.hostname !== "localhost" &&
46
+ parsed.hostname !== "127.0.0.1") {
47
+ return false;
48
+ }
49
+ // Check against allowlist (skip for localhost)
50
+ if (parsed.hostname !== "localhost" && parsed.hostname !== "127.0.0.1") {
51
+ const isAllowed = ALLOWED_MANIFEST_HOSTS.has(parsed.hostname) ||
52
+ Array.from(ALLOWED_MANIFEST_HOSTS).some((host) => parsed.hostname.endsWith(`.${host}`));
53
+ if (!isAllowed) {
54
+ return false;
55
+ }
56
+ }
57
+ return true;
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ }
26
63
  /**
27
64
  * Configure global pricing settings.
28
65
  *
66
+ * @throws {Error} If configuration is invalid
67
+ *
29
68
  * @example
30
69
  * ```typescript
31
70
  * import { configurePricing } from 'tokenmeter';
@@ -45,6 +84,58 @@ let cacheTimestamp = null;
45
84
  * ```
46
85
  */
47
86
  export function configurePricing(config) {
87
+ // Validate URLs
88
+ if (config.apiUrl !== undefined) {
89
+ if (typeof config.apiUrl !== "string" ||
90
+ !isValidManifestUrl(config.apiUrl)) {
91
+ throw new Error(`Invalid apiUrl: ${config.apiUrl}. Must be HTTPS from allowed domains.`);
92
+ }
93
+ }
94
+ if (config.cdnUrl !== undefined) {
95
+ if (typeof config.cdnUrl !== "string" ||
96
+ !isValidManifestUrl(config.cdnUrl)) {
97
+ throw new Error(`Invalid cdnUrl: ${config.cdnUrl}. Must be HTTPS from allowed domains.`);
98
+ }
99
+ }
100
+ if (config.manifestUrl !== undefined) {
101
+ if (typeof config.manifestUrl !== "string" ||
102
+ !isValidManifestUrl(config.manifestUrl)) {
103
+ throw new Error(`Invalid manifestUrl: ${config.manifestUrl}. Must be HTTPS from allowed domains.`);
104
+ }
105
+ }
106
+ // Validate timeouts
107
+ if (config.fetchTimeout !== undefined) {
108
+ if (typeof config.fetchTimeout !== "number" ||
109
+ config.fetchTimeout < 0 ||
110
+ config.fetchTimeout > 120000) {
111
+ throw new Error(`Invalid fetchTimeout: ${config.fetchTimeout}. Must be 0-120000ms.`);
112
+ }
113
+ }
114
+ if (config.cacheTimeout !== undefined) {
115
+ if (typeof config.cacheTimeout !== "number" ||
116
+ config.cacheTimeout < 0 ||
117
+ config.cacheTimeout > 86400000) {
118
+ throw new Error(`Invalid cacheTimeout: ${config.cacheTimeout}. Must be 0-86400000ms (24h).`);
119
+ }
120
+ }
121
+ // Validate model aliases
122
+ if (config.modelAliases !== undefined) {
123
+ if (typeof config.modelAliases !== "object" ||
124
+ config.modelAliases === null) {
125
+ throw new Error("modelAliases must be an object");
126
+ }
127
+ for (const [key, alias] of Object.entries(config.modelAliases)) {
128
+ if (!alias || typeof alias !== "object") {
129
+ throw new Error(`Invalid model alias "${key}": must be an object`);
130
+ }
131
+ if (!alias.provider || typeof alias.provider !== "string") {
132
+ throw new Error(`Invalid model alias "${key}": missing or invalid provider`);
133
+ }
134
+ if (!alias.model || typeof alias.model !== "string") {
135
+ throw new Error(`Invalid model alias "${key}": missing or invalid model`);
136
+ }
137
+ }
138
+ }
48
139
  globalConfig = { ...globalConfig, ...config };
49
140
  // Update model aliases if provided
50
141
  if (config.modelAliases) {
@@ -59,78 +150,6 @@ export function configurePricing(config) {
59
150
  export function getPricingConfig() {
60
151
  return { ...globalConfig };
61
152
  }
62
- /**
63
- * Build a manifest from the bundled provider JSON files (local fallback)
64
- */
65
- async function buildLocalManifest() {
66
- // Import existing provider pricing files
67
- const [openaiPricing, anthropicPricing, googlePricing, elevenlabsPricing, falPricing, bedrockPricing, bflPricing,] = await Promise.all([
68
- import("./providers/openai.json", { with: { type: "json" } }),
69
- import("./providers/anthropic.json", { with: { type: "json" } }),
70
- import("./providers/google.json", { with: { type: "json" } }),
71
- import("./providers/elevenlabs.json", { with: { type: "json" } }),
72
- import("./providers/fal.json", { with: { type: "json" } }),
73
- import("./providers/bedrock.json", { with: { type: "json" } }),
74
- import("./providers/bfl.json", { with: { type: "json" } }),
75
- ]);
76
- // Convert to manifest format
77
- const manifest = {
78
- version: "1.0.0",
79
- updatedAt: new Date().toISOString(),
80
- providers: {},
81
- };
82
- // Helper to convert old format to new format
83
- const convertProvider = (providerData, defaultUnit) => {
84
- const pricing = {};
85
- for (const [modelId, model] of Object.entries(providerData.models)) {
86
- const m = model;
87
- if (!m.pricing || m.pricing.length === 0)
88
- continue;
89
- const currentPricing = m.pricing[m.pricing.length - 1];
90
- if (!currentPricing)
91
- continue;
92
- // Map old units to new units
93
- let unit = defaultUnit;
94
- if (m.unit === "tokens")
95
- unit = "1m_tokens";
96
- else if (m.unit === "characters")
97
- unit = "1k_characters";
98
- else if (m.unit === "images")
99
- unit = "image";
100
- else if (m.unit === "seconds")
101
- unit = "second";
102
- else if (m.unit === "minutes")
103
- unit = "minute";
104
- else if (m.unit === "megapixels")
105
- unit = "megapixel";
106
- else if (m.unit === "requests")
107
- unit = "request";
108
- const modelPricing = {
109
- input: currentPricing.input,
110
- output: currentPricing.output,
111
- cachedInput: currentPricing.cachedInput,
112
- cost: currentPricing.cost,
113
- unit,
114
- };
115
- pricing[modelId] = modelPricing;
116
- // Also add aliases
117
- if (m.aliases) {
118
- for (const alias of m.aliases) {
119
- pricing[alias] = modelPricing;
120
- }
121
- }
122
- }
123
- return pricing;
124
- };
125
- manifest.providers.openai = convertProvider(openaiPricing.default, "1m_tokens");
126
- manifest.providers.anthropic = convertProvider(anthropicPricing.default, "1m_tokens");
127
- manifest.providers.google = convertProvider(googlePricing.default, "1m_tokens");
128
- manifest.providers.elevenlabs = convertProvider(elevenlabsPricing.default, "1k_characters");
129
- manifest.providers.fal = convertProvider(falPricing.default, "request");
130
- manifest.providers.bedrock = convertProvider(bedrockPricing.default, "1m_tokens");
131
- manifest.providers.bfl = convertProvider(bflPricing.default, "image");
132
- return manifest;
133
- }
134
153
  /**
135
154
  * Fetch manifest from remote URL with timeout
136
155
  */
@@ -202,24 +221,22 @@ async function fetchFromAPI(apiUrl, timeoutMs) {
202
221
  /**
203
222
  * Load the pricing manifest.
204
223
  *
205
- * Fetches from Pricing API first, then CDN, with automatic fallback
206
- * to bundled local data if all remote sources are unavailable.
224
+ * Returns immediately with bundled data. If the cache is stale,
225
+ * fetches updated pricing from remote sources in the background.
207
226
  *
208
227
  * @param options.apiUrl - Override the API URL
209
228
  * @param options.cdnUrl - Override the CDN URL
210
229
  * @param options.manifestUrl - Legacy: Override the manifest URL (deprecated)
211
- * @param options.forceRefresh - Force reload even if cached
212
- * @param options.offlineMode - Skip remote fetch, use local only
230
+ * @param options.forceRefresh - Force reload from remote sources
231
+ * @param options.offlineMode - Skip remote fetch, use bundled only
213
232
  */
214
233
  export async function loadManifest(options = {}) {
215
234
  // Merge with global config
216
235
  const config = { ...globalConfig, ...options };
217
236
  const cacheTimeout = config.cacheTimeout ?? 5 * 60 * 1000; // 5 minutes default
218
237
  // Check if cache is still valid
219
- const isCacheValid = cachedManifest &&
220
- cacheTimestamp &&
221
- Date.now() - cacheTimestamp < cacheTimeout;
222
- // Return cached if available, valid, and not forcing refresh
238
+ const isCacheValid = Date.now() - cacheTimestamp < cacheTimeout;
239
+ // Return cached if valid and not forcing refresh
223
240
  if (isCacheValid && !config.forceRefresh) {
224
241
  return cachedManifest;
225
242
  }
@@ -227,21 +244,20 @@ export async function loadManifest(options = {}) {
227
244
  if (manifestLoadPromise && !config.forceRefresh) {
228
245
  return manifestLoadPromise;
229
246
  }
247
+ // If offline mode, just return bundled data
248
+ if (config.offlineMode) {
249
+ logger.debug("Offline mode enabled, using bundled pricing");
250
+ return cachedManifest;
251
+ }
230
252
  manifestLoadPromise = (async () => {
231
- // If offline mode, skip remote fetch
232
- if (config.offlineMode) {
233
- logger.debug("Offline mode enabled, using bundled pricing");
234
- cachedManifest = await buildLocalManifest();
235
- cacheTimestamp = Date.now();
236
- return cachedManifest;
237
- }
238
253
  const timeout = config.fetchTimeout ?? 5000;
239
254
  // Try Pricing API first
240
255
  const apiUrl = config.apiUrl || DEFAULT_API_URL;
241
256
  try {
242
- cachedManifest = await fetchFromAPI(apiUrl, timeout);
257
+ const manifest = await fetchFromAPI(apiUrl, timeout);
258
+ cachedManifest = manifest;
243
259
  cacheTimestamp = Date.now();
244
- logger.info("Loaded pricing manifest from API");
260
+ logger.info("Updated pricing manifest from API");
245
261
  return cachedManifest;
246
262
  }
247
263
  catch (apiError) {
@@ -250,18 +266,17 @@ export async function loadManifest(options = {}) {
250
266
  // Try CDN as fallback
251
267
  const cdnUrl = config.cdnUrl || config.manifestUrl || DEFAULT_CDN_URL;
252
268
  try {
253
- cachedManifest = await fetchRemoteManifest(cdnUrl, timeout);
269
+ const manifest = await fetchRemoteManifest(cdnUrl, timeout);
270
+ cachedManifest = manifest;
254
271
  cacheTimestamp = Date.now();
255
- logger.info("Loaded pricing manifest from CDN");
272
+ logger.info("Updated pricing manifest from CDN");
256
273
  return cachedManifest;
257
274
  }
258
275
  catch (cdnError) {
259
276
  logger.debug("CDN unavailable, using bundled pricing:", cdnError);
260
277
  }
261
- // Fallback to local bundled pricing
278
+ // All remote sources failed - keep using bundled data
262
279
  logger.warn("All remote sources unavailable, using bundled pricing");
263
- cachedManifest = await buildLocalManifest();
264
- cacheTimestamp = Date.now();
265
280
  return cachedManifest;
266
281
  })();
267
282
  return manifestLoadPromise;
@@ -271,7 +286,10 @@ export async function loadManifest(options = {}) {
271
286
  */
272
287
  export function getModelPricing(provider, model, manifest) {
273
288
  // 1. Check custom model aliases first
274
- const alias = modelAliases[model];
289
+ // Try provider-specific alias first (e.g., "openai:gpt-4o"), then generic
290
+ const providerSpecificAlias = modelAliases[`${provider}:${model}`];
291
+ const genericAlias = modelAliases[model];
292
+ const alias = providerSpecificAlias || genericAlias;
275
293
  if (alias) {
276
294
  const aliasProviderPricing = manifest.providers[alias.provider];
277
295
  if (aliasProviderPricing?.[alias.model]) {
@@ -298,11 +316,58 @@ export function getModelPricing(provider, model, manifest) {
298
316
  }
299
317
  return null;
300
318
  }
319
+ /**
320
+ * Validate and normalize a numeric value
321
+ * Returns 0 for invalid/negative values
322
+ */
323
+ function normalizeUnits(value) {
324
+ if (value === undefined || value === null) {
325
+ return 0;
326
+ }
327
+ if (typeof value !== "number" || !Number.isFinite(value)) {
328
+ return 0;
329
+ }
330
+ // Negative units don't make sense for usage
331
+ return Math.max(0, value);
332
+ }
333
+ /**
334
+ * Validate pricing value
335
+ * Returns undefined for invalid values
336
+ */
337
+ function normalizePricing(value) {
338
+ if (value === undefined || value === null) {
339
+ return undefined;
340
+ }
341
+ if (typeof value !== "number" || !Number.isFinite(value)) {
342
+ return undefined;
343
+ }
344
+ // Negative pricing doesn't make sense
345
+ return value >= 0 ? value : undefined;
346
+ }
301
347
  /**
302
348
  * Calculate cost based on usage and pricing
349
+ *
350
+ * Handles two pricing models:
351
+ * 1. Request-based: Flat cost per request/image (uses `pricing.cost`)
352
+ * - For image generation, multiplied by outputUnits (number of images)
353
+ * 2. Unit-based: Cost per input/output unit (uses `pricing.input`/`pricing.output`)
354
+ * - Divided by unit size (1M for tokens, 1K for characters)
355
+ *
356
+ * @param usage - Usage data with input/output units
357
+ * @param pricing - Pricing configuration for the model
358
+ * @returns Calculated cost in USD (always non-negative)
303
359
  */
304
360
  export function calculateCost(usage, pricing) {
305
361
  let cost = 0;
362
+ // Validate and normalize inputs
363
+ const inputUnits = normalizeUnits(usage.inputUnits);
364
+ const outputUnits = normalizeUnits(usage.outputUnits);
365
+ const cachedInputUnits = normalizeUnits(usage.cachedInputUnits);
366
+ // Validate pricing values
367
+ const inputPrice = normalizePricing(pricing.input);
368
+ const outputPrice = normalizePricing(pricing.output);
369
+ const cachedInputPrice = normalizePricing(pricing.cachedInput);
370
+ const flatCost = normalizePricing(pricing.cost);
306
371
  // Get the divisor based on unit
307
372
  const getDivisor = (unit) => {
308
373
  switch (unit) {
@@ -316,38 +381,44 @@ export function calculateCost(usage, pricing) {
316
381
  }
317
382
  };
318
383
  const divisor = getDivisor(pricing.unit);
319
- // Flat cost (request-based pricing)
320
- if (pricing.cost !== undefined) {
321
- cost += pricing.cost;
384
+ // Flat cost (request-based pricing for images, etc.)
385
+ // For image generation: cost per image * number of images
386
+ // For flat request pricing: just the flat cost
387
+ if (flatCost !== undefined) {
388
+ const multiplier = pricing.unit === "image" || pricing.unit === "request"
389
+ ? Math.max(1, outputUnits)
390
+ : 1;
391
+ cost += flatCost * multiplier;
322
392
  }
323
- // Input cost
324
- if (usage.inputUnits !== undefined && pricing.input !== undefined) {
325
- cost += (usage.inputUnits / divisor) * pricing.input;
393
+ // Input cost (token/character-based pricing)
394
+ if (inputUnits > 0 && inputPrice !== undefined) {
395
+ cost += (inputUnits / divisor) * inputPrice;
326
396
  }
327
- // Output cost
328
- if (usage.outputUnits !== undefined && pricing.output !== undefined) {
329
- cost += (usage.outputUnits / divisor) * pricing.output;
397
+ // Output cost (token/character-based pricing)
398
+ if (outputUnits > 0 && outputPrice !== undefined) {
399
+ cost += (outputUnits / divisor) * outputPrice;
330
400
  }
331
401
  // Cached input cost
332
- if (usage.cachedInputUnits !== undefined &&
333
- pricing.cachedInput !== undefined) {
334
- cost += (usage.cachedInputUnits / divisor) * pricing.cachedInput;
402
+ if (cachedInputUnits > 0 && cachedInputPrice !== undefined) {
403
+ cost += (cachedInputUnits / divisor) * cachedInputPrice;
335
404
  }
336
- return cost;
405
+ // Ensure we never return a negative cost
406
+ return Math.max(0, cost);
337
407
  }
338
408
  /**
339
- * Get the cached manifest (or null if not loaded)
409
+ * Get the cached manifest.
410
+ * Always returns a valid manifest (bundled data is always available).
340
411
  */
341
412
  export function getCachedManifest() {
342
413
  return cachedManifest;
343
414
  }
344
415
  /**
345
- * Clear the manifest cache
416
+ * Clear the manifest cache (resets to bundled data)
346
417
  */
347
418
  export function clearManifestCache() {
348
- cachedManifest = null;
419
+ cachedManifest = BUNDLED_MANIFEST;
349
420
  manifestLoadPromise = null;
350
- cacheTimestamp = null;
421
+ cacheTimestamp = Date.now();
351
422
  }
352
423
  /**
353
424
  * Set model aliases for pricing lookup.
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/pricing/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/pricing/manifest.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,24 @@
1
1
  /**
2
2
  * Pricing Schema Types
3
3
  *
4
- * Standardized types for provider pricing catalogs.
5
- * These types define the structure of pricing JSON files.
4
+ * Types for parsing provider pricing catalog JSON files.
5
+ * These are distinct from the runtime types in types.ts.
6
+ *
7
+ * JSON files use BillingUnit + unitSize (e.g., "tokens" + 1000000)
8
+ * Runtime uses PricingUnit (e.g., "1m_tokens") from types.ts
6
9
  */
7
10
  /**
8
- * Billing unit types supported across providers
11
+ * Billing unit types as stored in pricing JSON catalog files.
12
+ * Combined with unitSize to determine actual billing rate.
13
+ *
14
+ * @see PricingUnit in types.ts for runtime representation
9
15
  */
10
16
  export type BillingUnit = "tokens" | "characters" | "images" | "megapixels" | "seconds" | "minutes" | "requests";
11
17
  /**
12
- * A single pricing entry with an effective date
18
+ * A single pricing entry with an effective date (JSON catalog format).
13
19
  * Prices are per unit (e.g., per 1K tokens, per image)
14
20
  */
15
- export interface PricingEntry {
21
+ export interface CatalogPricingEntry {
16
22
  /** ISO 8601 date when this pricing became effective */
17
23
  effectiveDate: string;
18
24
  /** Cost per input unit (e.g., input tokens, characters) */
@@ -27,9 +33,12 @@ export interface PricingEntry {
27
33
  notes?: string;
28
34
  }
29
35
  /**
30
- * Model definition with pricing history
36
+ * Model definition with pricing history (JSON catalog format).
37
+ * This is the structure of pricing data in JSON files.
38
+ *
39
+ * @see ModelPricing in types.ts for runtime representation
31
40
  */
32
- export interface ModelPricing {
41
+ export interface CatalogModelPricing {
33
42
  /** Display name for the model */
34
43
  name?: string;
35
44
  /** Billing unit for this model */
@@ -44,7 +53,7 @@ export interface ModelPricing {
44
53
  * Pricing history, sorted by effectiveDate ascending
45
54
  * The last entry is the current pricing
46
55
  */
47
- pricing: PricingEntry[];
56
+ pricing: CatalogPricingEntry[];
48
57
  /** Model aliases that should resolve to this model */
49
58
  aliases?: string[];
50
59
  /** Whether this model is deprecated */
@@ -55,9 +64,9 @@ export interface ModelPricing {
55
64
  replacedBy?: string;
56
65
  }
57
66
  /**
58
- * Provider pricing catalog
67
+ * Provider pricing catalog (JSON file structure)
59
68
  */
60
- export interface ProviderPricing {
69
+ export interface CatalogProviderPricing {
61
70
  /** JSON schema reference */
62
71
  $schema?: string;
63
72
  /** Provider identifier */
@@ -71,7 +80,7 @@ export interface ProviderPricing {
71
80
  /** Currency for all prices (default: USD) */
72
81
  currency?: string;
73
82
  /** Model pricing definitions, keyed by model ID */
74
- models: Record<string, ModelPricing>;
83
+ models: Record<string, CatalogModelPricing>;
75
84
  }
76
85
  /**
77
86
  * Resolved pricing for a specific model at a point in time
@@ -90,11 +99,11 @@ export interface ResolvedPricing {
90
99
  /**
91
100
  * Get the current pricing for a model (most recent effective date)
92
101
  */
93
- export declare function getCurrentPricing(model: ModelPricing): PricingEntry | null;
102
+ export declare function getCurrentPricing(model: CatalogModelPricing): CatalogPricingEntry | null;
94
103
  /**
95
104
  * Get pricing for a model at a specific date
96
105
  */
97
- export declare function getPricingAtDate(model: ModelPricing, date: Date): PricingEntry | null;
106
+ export declare function getPricingAtDate(model: CatalogModelPricing, date: Date): CatalogPricingEntry | null;
98
107
  /**
99
108
  * Get the default unit size for a billing unit
100
109
  */
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/pricing/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,SAAS,GACT,UAAU,CAAC;AAEf;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IAEtB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kCAAkC;IAClC,IAAI,EAAE,WAAW,CAAC;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IAEjB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IAEf,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IAEpB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,IAAI,CAM1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,IAAI,GACT,YAAY,GAAG,IAAI,CAoBrB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAc5D"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/pricing/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,SAAS,GACT,UAAU,CAAC;AAEf;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IAEtB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kCAAkC;IAClC,IAAI,EAAE,WAAW,CAAC;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAE/B,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IAEjB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IAEf,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IAEpB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,mBAAmB,GACzB,mBAAmB,GAAG,IAAI,CAM5B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,IAAI,GACT,mBAAmB,GAAG,IAAI,CAoB5B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAc5D"}
@@ -1,8 +1,11 @@
1
1
  /**
2
2
  * Pricing Schema Types
3
3
  *
4
- * Standardized types for provider pricing catalogs.
5
- * These types define the structure of pricing JSON files.
4
+ * Types for parsing provider pricing catalog JSON files.
5
+ * These are distinct from the runtime types in types.ts.
6
+ *
7
+ * JSON files use BillingUnit + unitSize (e.g., "tokens" + 1000000)
8
+ * Runtime uses PricingUnit (e.g., "1m_tokens") from types.ts
6
9
  */
7
10
  /**
8
11
  * Get the current pricing for a model (most recent effective date)
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/pricing/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmHH;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAmB;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,sCAAsC;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAmB,EACnB,IAAU;IAEV,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAElC,+EAA+E;IAC/E,IAAI,MAAM,GAAwB,IAAI,CAAC;IAEvC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,0CAA0C;QACnD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IAClD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,CAAC,SAAS;QACxB,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,CAAC;QAClB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,UAAU;YACb,OAAO,CAAC,CAAC;QACX;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/pricing/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyHH;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAA0B;IAE1B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,sCAAsC;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAA0B,EAC1B,IAAU;IAEV,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAElC,+EAA+E;IAC/E,IAAI,MAAM,GAA+B,IAAI,CAAC;IAE9C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,0CAA0C;QACnD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IAClD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,CAAC,SAAS;QACxB,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,CAAC;QAClB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,UAAU;YACb,OAAO,CAAC,CAAC;QACX;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC"}