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.
- package/README.md +220 -6
- package/dist/config.d.ts +7 -84
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -158
- package/dist/config.js.map +1 -1
- package/dist/exporter/PostgresExporter.d.ts.map +1 -1
- package/dist/exporter/PostgresExporter.js +4 -2
- package/dist/exporter/PostgresExporter.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/instrumentation/proxy.d.ts.map +1 -1
- package/dist/instrumentation/proxy.js +279 -51
- package/dist/instrumentation/proxy.js.map +1 -1
- package/dist/instrumentation/strategies/index.d.ts +33 -0
- package/dist/instrumentation/strategies/index.d.ts.map +1 -1
- package/dist/instrumentation/strategies/index.js +146 -17
- package/dist/instrumentation/strategies/index.js.map +1 -1
- package/dist/integrations/inngest/index.d.ts +0 -38
- package/dist/integrations/inngest/index.d.ts.map +1 -1
- package/dist/integrations/inngest/index.js +0 -49
- package/dist/integrations/inngest/index.js.map +1 -1
- package/dist/integrations/vercel-ai/index.d.ts.map +1 -1
- package/dist/integrations/vercel-ai/index.js +2 -1
- package/dist/integrations/vercel-ai/index.js.map +1 -1
- package/dist/pricing/manifest.bundled.d.ts +24 -0
- package/dist/pricing/manifest.bundled.d.ts.map +1 -0
- package/dist/pricing/manifest.bundled.js +13347 -0
- package/dist/pricing/manifest.bundled.js.map +1 -0
- package/dist/pricing/manifest.d.ts +24 -10
- package/dist/pricing/manifest.d.ts.map +1 -1
- package/dist/pricing/manifest.js +189 -118
- package/dist/pricing/manifest.js.map +1 -1
- package/dist/pricing/schema.d.ts +22 -13
- package/dist/pricing/schema.d.ts.map +1 -1
- package/dist/pricing/schema.js +5 -2
- package/dist/pricing/schema.js.map +1 -1
- package/dist/processor/TokenMeterProcessor.d.ts +37 -7
- package/dist/processor/TokenMeterProcessor.d.ts.map +1 -1
- package/dist/processor/TokenMeterProcessor.js +45 -24
- package/dist/processor/TokenMeterProcessor.js.map +1 -1
- package/dist/query/client.d.ts +0 -24
- package/dist/query/client.d.ts.map +1 -1
- package/dist/query/client.js +42 -9
- package/dist/query/client.js.map +1 -1
- package/dist/registry.d.ts +127 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +144 -0
- package/dist/registry.js.map +1 -0
- package/dist/types.d.ts +61 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -2
package/dist/pricing/manifest.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Pricing Manifest
|
|
2
|
+
* Pricing Manifest Manager
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
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 =
|
|
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 =
|
|
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
|
-
*
|
|
206
|
-
*
|
|
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
|
|
212
|
-
* @param options.offlineMode - Skip remote fetch, use
|
|
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 =
|
|
220
|
-
|
|
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
|
-
|
|
257
|
+
const manifest = await fetchFromAPI(apiUrl, timeout);
|
|
258
|
+
cachedManifest = manifest;
|
|
243
259
|
cacheTimestamp = Date.now();
|
|
244
|
-
logger.info("
|
|
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
|
-
|
|
269
|
+
const manifest = await fetchRemoteManifest(cdnUrl, timeout);
|
|
270
|
+
cachedManifest = manifest;
|
|
254
271
|
cacheTimestamp = Date.now();
|
|
255
|
-
logger.info("
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
321
|
-
|
|
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 (
|
|
325
|
-
cost += (
|
|
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 (
|
|
329
|
-
cost += (
|
|
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 (
|
|
333
|
-
|
|
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
|
|
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 =
|
|
419
|
+
cachedManifest = BUNDLED_MANIFEST;
|
|
349
420
|
manifestLoadPromise = null;
|
|
350
|
-
cacheTimestamp =
|
|
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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"}
|
package/dist/pricing/schema.d.ts
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pricing Schema Types
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* These
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
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,
|
|
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:
|
|
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:
|
|
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;
|
|
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"}
|
package/dist/pricing/schema.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pricing Schema Types
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* These
|
|
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
|
|
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"}
|