tokenmeter 0.9.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.
- package/LICENSE +21 -0
- package/README.md +346 -0
- package/dist/__tests__/context.test.d.ts +2 -0
- package/dist/__tests__/context.test.d.ts.map +1 -0
- package/dist/__tests__/context.test.js +94 -0
- package/dist/__tests__/context.test.js.map +1 -0
- package/dist/__tests__/elevenlabs.test.d.ts +2 -0
- package/dist/__tests__/elevenlabs.test.d.ts.map +1 -0
- package/dist/__tests__/elevenlabs.test.js +108 -0
- package/dist/__tests__/elevenlabs.test.js.map +1 -0
- package/dist/__tests__/fal.test.d.ts +2 -0
- package/dist/__tests__/fal.test.d.ts.map +1 -0
- package/dist/__tests__/fal.test.js +153 -0
- package/dist/__tests__/fal.test.js.map +1 -0
- package/dist/__tests__/pricing.test.d.ts +2 -0
- package/dist/__tests__/pricing.test.d.ts.map +1 -0
- package/dist/__tests__/pricing.test.js +76 -0
- package/dist/__tests__/pricing.test.js.map +1 -0
- package/dist/__tests__/recorder.test.d.ts +2 -0
- package/dist/__tests__/recorder.test.d.ts.map +1 -0
- package/dist/__tests__/recorder.test.js +133 -0
- package/dist/__tests__/recorder.test.js.map +1 -0
- package/dist/__tests__/storage.test.d.ts +2 -0
- package/dist/__tests__/storage.test.d.ts.map +1 -0
- package/dist/__tests__/storage.test.js +106 -0
- package/dist/__tests__/storage.test.js.map +1 -0
- package/dist/client/index.d.ts +8 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +7 -0
- package/dist/client/index.js.map +1 -0
- package/dist/config.d.ts +92 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +166 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +80 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +131 -0
- package/dist/context.js.map +1 -0
- package/dist/exporter/PostgresExporter.d.ts +82 -0
- package/dist/exporter/PostgresExporter.d.ts.map +1 -0
- package/dist/exporter/PostgresExporter.js +237 -0
- package/dist/exporter/PostgresExporter.js.map +1 -0
- package/dist/exporter/index.d.ts +8 -0
- package/dist/exporter/index.d.ts.map +1 -0
- package/dist/exporter/index.js +7 -0
- package/dist/exporter/index.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation/proxy.d.ts +26 -0
- package/dist/instrumentation/proxy.d.ts.map +1 -0
- package/dist/instrumentation/proxy.js +337 -0
- package/dist/instrumentation/proxy.js.map +1 -0
- package/dist/instrumentation/strategies/index.d.ts +55 -0
- package/dist/instrumentation/strategies/index.d.ts.map +1 -0
- package/dist/instrumentation/strategies/index.js +429 -0
- package/dist/instrumentation/strategies/index.js.map +1 -0
- package/dist/integrations/express/index.d.ts +137 -0
- package/dist/integrations/express/index.d.ts.map +1 -0
- package/dist/integrations/express/index.js +186 -0
- package/dist/integrations/express/index.js.map +1 -0
- package/dist/integrations/inngest/index.d.ts +222 -0
- package/dist/integrations/inngest/index.d.ts.map +1 -0
- package/dist/integrations/inngest/index.js +223 -0
- package/dist/integrations/inngest/index.js.map +1 -0
- package/dist/integrations/langfuse/index.d.ts +170 -0
- package/dist/integrations/langfuse/index.d.ts.map +1 -0
- package/dist/integrations/langfuse/index.js +225 -0
- package/dist/integrations/langfuse/index.js.map +1 -0
- package/dist/integrations/next/index.d.ts +138 -0
- package/dist/integrations/next/index.d.ts.map +1 -0
- package/dist/integrations/next/index.js +170 -0
- package/dist/integrations/next/index.js.map +1 -0
- package/dist/integrations/nextjs/index.d.ts +198 -0
- package/dist/integrations/nextjs/index.d.ts.map +1 -0
- package/dist/integrations/nextjs/index.js +181 -0
- package/dist/integrations/nextjs/index.js.map +1 -0
- package/dist/integrations/vercel-ai/index.d.ts +288 -0
- package/dist/integrations/vercel-ai/index.d.ts.map +1 -0
- package/dist/integrations/vercel-ai/index.js +260 -0
- package/dist/integrations/vercel-ai/index.js.map +1 -0
- package/dist/logger.d.ts +58 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +89 -0
- package/dist/logger.js.map +1 -0
- package/dist/pricing/catalog.d.ts +10 -0
- package/dist/pricing/catalog.d.ts.map +1 -0
- package/dist/pricing/catalog.js +297 -0
- package/dist/pricing/catalog.js.map +1 -0
- package/dist/pricing/index.d.ts +77 -0
- package/dist/pricing/index.d.ts.map +1 -0
- package/dist/pricing/index.js +251 -0
- package/dist/pricing/index.js.map +1 -0
- package/dist/pricing/manifest.d.ts +156 -0
- package/dist/pricing/manifest.d.ts.map +1 -0
- package/dist/pricing/manifest.js +381 -0
- package/dist/pricing/manifest.js.map +1 -0
- package/dist/pricing/manifest.json +12786 -0
- package/dist/pricing/providers/anthropic.json +253 -0
- package/dist/pricing/providers/bedrock.json +341 -0
- package/dist/pricing/providers/bfl.json +220 -0
- package/dist/pricing/providers/elevenlabs.json +142 -0
- package/dist/pricing/providers/fal.json +15866 -0
- package/dist/pricing/providers/google.json +346 -0
- package/dist/pricing/providers/openai.json +1035 -0
- package/dist/pricing/schema.d.ts +102 -0
- package/dist/pricing/schema.d.ts.map +1 -0
- package/dist/pricing/schema.js +56 -0
- package/dist/pricing/schema.js.map +1 -0
- package/dist/processor/TokenMeterProcessor.d.ts +55 -0
- package/dist/processor/TokenMeterProcessor.d.ts.map +1 -0
- package/dist/processor/TokenMeterProcessor.js +132 -0
- package/dist/processor/TokenMeterProcessor.js.map +1 -0
- package/dist/query/client.d.ts +61 -0
- package/dist/query/client.d.ts.map +1 -0
- package/dist/query/client.js +206 -0
- package/dist/query/client.js.map +1 -0
- package/dist/query/index.d.ts +8 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +7 -0
- package/dist/query/index.js.map +1 -0
- package/dist/recorder.d.ts +74 -0
- package/dist/recorder.d.ts.map +1 -0
- package/dist/recorder.js +227 -0
- package/dist/recorder.js.map +1 -0
- package/dist/sdks/anthropic.d.ts +21 -0
- package/dist/sdks/anthropic.d.ts.map +1 -0
- package/dist/sdks/anthropic.js +258 -0
- package/dist/sdks/anthropic.js.map +1 -0
- package/dist/sdks/elevenlabs.d.ts +59 -0
- package/dist/sdks/elevenlabs.d.ts.map +1 -0
- package/dist/sdks/elevenlabs.js +192 -0
- package/dist/sdks/elevenlabs.js.map +1 -0
- package/dist/sdks/fal.d.ts +102 -0
- package/dist/sdks/fal.d.ts.map +1 -0
- package/dist/sdks/fal.js +306 -0
- package/dist/sdks/fal.js.map +1 -0
- package/dist/sdks/openai.d.ts +17 -0
- package/dist/sdks/openai.d.ts.map +1 -0
- package/dist/sdks/openai.js +191 -0
- package/dist/sdks/openai.js.map +1 -0
- package/dist/storage/interface.d.ts +15 -0
- package/dist/storage/interface.d.ts.map +1 -0
- package/dist/storage/interface.js +53 -0
- package/dist/storage/interface.js.map +1 -0
- package/dist/storage/prisma.d.ts +15 -0
- package/dist/storage/prisma.d.ts.map +1 -0
- package/dist/storage/prisma.js +135 -0
- package/dist/storage/prisma.js.map +1 -0
- package/dist/types.d.ts +206 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +45 -0
- package/dist/types.js.map +1 -0
- package/dist/vercel-ai/index.d.ts +89 -0
- package/dist/vercel-ai/index.d.ts.map +1 -0
- package/dist/vercel-ai/index.js +298 -0
- package/dist/vercel-ai/index.js.map +1 -0
- package/package.json +119 -0
package/dist/logger.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configurable Logger
|
|
3
|
+
*
|
|
4
|
+
* Provides a centralized logging mechanism that can be configured or disabled.
|
|
5
|
+
* By default, logging is disabled in production to avoid polluting stdout.
|
|
6
|
+
*/
|
|
7
|
+
const LOG_LEVELS = {
|
|
8
|
+
debug: 0,
|
|
9
|
+
info: 1,
|
|
10
|
+
warn: 2,
|
|
11
|
+
error: 3,
|
|
12
|
+
none: 4,
|
|
13
|
+
};
|
|
14
|
+
// Global configuration - defaults to disabled
|
|
15
|
+
let config = {
|
|
16
|
+
level: "none",
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Configure the tokenmeter logger.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { configureLogger } from 'tokenmeter';
|
|
24
|
+
*
|
|
25
|
+
* // Enable warning and error logs
|
|
26
|
+
* configureLogger({ level: 'warn' });
|
|
27
|
+
*
|
|
28
|
+
* // Use custom logger
|
|
29
|
+
* configureLogger({
|
|
30
|
+
* level: 'debug',
|
|
31
|
+
* custom: (level, message, ...args) => {
|
|
32
|
+
* myLogger[level](message, ...args);
|
|
33
|
+
* }
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function configureLogger(newConfig) {
|
|
38
|
+
config = { ...config, ...newConfig };
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get the current logger configuration.
|
|
42
|
+
*/
|
|
43
|
+
export function getLoggerConfig() {
|
|
44
|
+
return { ...config };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Reset logger to default configuration (disabled).
|
|
48
|
+
*/
|
|
49
|
+
export function resetLogger() {
|
|
50
|
+
config = { level: "none" };
|
|
51
|
+
}
|
|
52
|
+
function shouldLog(level) {
|
|
53
|
+
return LOG_LEVELS[level] >= LOG_LEVELS[config.level];
|
|
54
|
+
}
|
|
55
|
+
function log(level, message, ...args) {
|
|
56
|
+
if (!shouldLog(level)) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const formattedMessage = `[tokenmeter] ${message}`;
|
|
60
|
+
if (config.custom) {
|
|
61
|
+
config.custom(level, formattedMessage, ...args);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
switch (level) {
|
|
65
|
+
case "debug":
|
|
66
|
+
console.debug(formattedMessage, ...args);
|
|
67
|
+
break;
|
|
68
|
+
case "info":
|
|
69
|
+
console.info(formattedMessage, ...args);
|
|
70
|
+
break;
|
|
71
|
+
case "warn":
|
|
72
|
+
console.warn(formattedMessage, ...args);
|
|
73
|
+
break;
|
|
74
|
+
case "error":
|
|
75
|
+
console.error(formattedMessage, ...args);
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Internal logger for tokenmeter.
|
|
81
|
+
* By default, all logging is disabled. Use configureLogger() to enable.
|
|
82
|
+
*/
|
|
83
|
+
export const logger = {
|
|
84
|
+
debug: (message, ...args) => log("debug", message, ...args),
|
|
85
|
+
info: (message, ...args) => log("info", message, ...args),
|
|
86
|
+
warn: (message, ...args) => log("warn", message, ...args),
|
|
87
|
+
error: (message, ...args) => log("error", message, ...args),
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,MAAM,UAAU,GAA6B;IAC3C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,8CAA8C;AAC9C,IAAI,MAAM,GAAiB;IACzB,KAAK,EAAE,MAAM;CACd,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,eAAe,CAAC,SAAgC;IAC9D,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,SAAS,CAAC,KAAe;IAChC,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,GAAG,IAAe;IAC/D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,MAAM,gBAAgB,GAAG,gBAAgB,OAAO,EAAE,CAAC;IAEnD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;YACzC,MAAM;QACR,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;YACxC,MAAM;QACR,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;YACxC,MAAM;QACR,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;YACzC,MAAM;IACV,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC9E,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC5E,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC5E,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC/E,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { PricingConfig } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Default pricing catalog for common models
|
|
4
|
+
* Prices are per 1K tokens in USD
|
|
5
|
+
*
|
|
6
|
+
* Last updated: December 2025
|
|
7
|
+
* Sources: Official provider pricing pages
|
|
8
|
+
*/
|
|
9
|
+
export declare const defaultPricing: PricingConfig;
|
|
10
|
+
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/pricing/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,aA8S5B,CAAC"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default pricing catalog for common models
|
|
3
|
+
* Prices are per 1K tokens in USD
|
|
4
|
+
*
|
|
5
|
+
* Last updated: December 2025
|
|
6
|
+
* Sources: Official provider pricing pages
|
|
7
|
+
*/
|
|
8
|
+
export const defaultPricing = {
|
|
9
|
+
// OpenAI Models
|
|
10
|
+
"openai/gpt-4o": {
|
|
11
|
+
input: 0.0025,
|
|
12
|
+
output: 0.01,
|
|
13
|
+
cachedInput: 0.00125,
|
|
14
|
+
},
|
|
15
|
+
"openai/gpt-4o-mini": {
|
|
16
|
+
input: 0.00015,
|
|
17
|
+
output: 0.0006,
|
|
18
|
+
cachedInput: 0.000075,
|
|
19
|
+
},
|
|
20
|
+
"openai/gpt-4-turbo": {
|
|
21
|
+
input: 0.01,
|
|
22
|
+
output: 0.03,
|
|
23
|
+
},
|
|
24
|
+
"openai/gpt-4": {
|
|
25
|
+
input: 0.03,
|
|
26
|
+
output: 0.06,
|
|
27
|
+
},
|
|
28
|
+
"openai/gpt-3.5-turbo": {
|
|
29
|
+
input: 0.0005,
|
|
30
|
+
output: 0.0015,
|
|
31
|
+
},
|
|
32
|
+
"openai/o1": {
|
|
33
|
+
input: 0.015,
|
|
34
|
+
output: 0.06,
|
|
35
|
+
cachedInput: 0.0075,
|
|
36
|
+
},
|
|
37
|
+
"openai/o1-mini": {
|
|
38
|
+
input: 0.003,
|
|
39
|
+
output: 0.012,
|
|
40
|
+
cachedInput: 0.0015,
|
|
41
|
+
},
|
|
42
|
+
"openai/o1-pro": {
|
|
43
|
+
input: 0.15,
|
|
44
|
+
output: 0.6,
|
|
45
|
+
},
|
|
46
|
+
// Anthropic Models
|
|
47
|
+
"anthropic/claude-3-5-sonnet-20241022": {
|
|
48
|
+
input: 0.003,
|
|
49
|
+
output: 0.015,
|
|
50
|
+
cachedInput: 0.0003,
|
|
51
|
+
},
|
|
52
|
+
"anthropic/claude-3-5-haiku-20241022": {
|
|
53
|
+
input: 0.001,
|
|
54
|
+
output: 0.005,
|
|
55
|
+
cachedInput: 0.0001,
|
|
56
|
+
},
|
|
57
|
+
"anthropic/claude-3-opus-20240229": {
|
|
58
|
+
input: 0.015,
|
|
59
|
+
output: 0.075,
|
|
60
|
+
cachedInput: 0.0015,
|
|
61
|
+
},
|
|
62
|
+
"anthropic/claude-3-sonnet-20240229": {
|
|
63
|
+
input: 0.003,
|
|
64
|
+
output: 0.015,
|
|
65
|
+
},
|
|
66
|
+
"anthropic/claude-3-haiku-20240307": {
|
|
67
|
+
input: 0.00025,
|
|
68
|
+
output: 0.00125,
|
|
69
|
+
},
|
|
70
|
+
// Shorthand aliases (without provider prefix)
|
|
71
|
+
"gpt-4o": {
|
|
72
|
+
input: 0.0025,
|
|
73
|
+
output: 0.01,
|
|
74
|
+
cachedInput: 0.00125,
|
|
75
|
+
},
|
|
76
|
+
"gpt-4o-mini": {
|
|
77
|
+
input: 0.00015,
|
|
78
|
+
output: 0.0006,
|
|
79
|
+
cachedInput: 0.000075,
|
|
80
|
+
},
|
|
81
|
+
"gpt-4-turbo": {
|
|
82
|
+
input: 0.01,
|
|
83
|
+
output: 0.03,
|
|
84
|
+
},
|
|
85
|
+
"gpt-4": {
|
|
86
|
+
input: 0.03,
|
|
87
|
+
output: 0.06,
|
|
88
|
+
},
|
|
89
|
+
"gpt-3.5-turbo": {
|
|
90
|
+
input: 0.0005,
|
|
91
|
+
output: 0.0015,
|
|
92
|
+
},
|
|
93
|
+
o1: {
|
|
94
|
+
input: 0.015,
|
|
95
|
+
output: 0.06,
|
|
96
|
+
cachedInput: 0.0075,
|
|
97
|
+
},
|
|
98
|
+
"o1-mini": {
|
|
99
|
+
input: 0.003,
|
|
100
|
+
output: 0.012,
|
|
101
|
+
cachedInput: 0.0015,
|
|
102
|
+
},
|
|
103
|
+
"o1-pro": {
|
|
104
|
+
input: 0.15,
|
|
105
|
+
output: 0.6,
|
|
106
|
+
},
|
|
107
|
+
"claude-3-5-sonnet-20241022": {
|
|
108
|
+
input: 0.003,
|
|
109
|
+
output: 0.015,
|
|
110
|
+
cachedInput: 0.0003,
|
|
111
|
+
},
|
|
112
|
+
"claude-3-5-haiku-20241022": {
|
|
113
|
+
input: 0.001,
|
|
114
|
+
output: 0.005,
|
|
115
|
+
cachedInput: 0.0001,
|
|
116
|
+
},
|
|
117
|
+
"claude-3-opus-20240229": {
|
|
118
|
+
input: 0.015,
|
|
119
|
+
output: 0.075,
|
|
120
|
+
cachedInput: 0.0015,
|
|
121
|
+
},
|
|
122
|
+
// ===========================================
|
|
123
|
+
// ElevenLabs Models (price per 1K characters)
|
|
124
|
+
// ===========================================
|
|
125
|
+
// Note: ElevenLabs uses character-based pricing
|
|
126
|
+
// 'input' = cost per 1K characters
|
|
127
|
+
// Official models: eleven_multilingual_v2, eleven_flash_v2_5, eleven_turbo_v2_5
|
|
128
|
+
"elevenlabs/eleven_multilingual_v2": {
|
|
129
|
+
input: 0.3, // High quality, 29 languages
|
|
130
|
+
output: 0,
|
|
131
|
+
},
|
|
132
|
+
"elevenlabs/eleven_flash_v2_5": {
|
|
133
|
+
input: 0.15, // Ultra-low latency, 50% cheaper, 32 languages
|
|
134
|
+
output: 0,
|
|
135
|
+
},
|
|
136
|
+
"elevenlabs/eleven_turbo_v2_5": {
|
|
137
|
+
input: 0.18, // Balanced quality/latency, 32 languages
|
|
138
|
+
output: 0,
|
|
139
|
+
},
|
|
140
|
+
"elevenlabs/eleven_turbo_v2": {
|
|
141
|
+
input: 0.18,
|
|
142
|
+
output: 0,
|
|
143
|
+
},
|
|
144
|
+
"elevenlabs/eleven_monolingual_v1": {
|
|
145
|
+
input: 0.3,
|
|
146
|
+
output: 0,
|
|
147
|
+
},
|
|
148
|
+
// Default fallback for ElevenLabs
|
|
149
|
+
"elevenlabs/default": {
|
|
150
|
+
input: 0.3,
|
|
151
|
+
output: 0,
|
|
152
|
+
},
|
|
153
|
+
// Shorthand aliases (modelId values used in SDK)
|
|
154
|
+
eleven_multilingual_v2: {
|
|
155
|
+
input: 0.3,
|
|
156
|
+
output: 0,
|
|
157
|
+
},
|
|
158
|
+
eleven_flash_v2_5: {
|
|
159
|
+
input: 0.15,
|
|
160
|
+
output: 0,
|
|
161
|
+
},
|
|
162
|
+
eleven_turbo_v2_5: {
|
|
163
|
+
input: 0.18,
|
|
164
|
+
output: 0,
|
|
165
|
+
},
|
|
166
|
+
eleven_turbo_v2: {
|
|
167
|
+
input: 0.18,
|
|
168
|
+
output: 0,
|
|
169
|
+
},
|
|
170
|
+
// ===========================================
|
|
171
|
+
// fal.ai Models
|
|
172
|
+
// ===========================================
|
|
173
|
+
// Image models: 'output' = cost per image (or per megapixel where noted)
|
|
174
|
+
// Video models: 'output' = cost per second of output
|
|
175
|
+
// Flux models (image generation)
|
|
176
|
+
"fal/flux-pro": {
|
|
177
|
+
input: 0,
|
|
178
|
+
output: 0.05, // $0.05 per megapixel (legacy, deprecated)
|
|
179
|
+
},
|
|
180
|
+
"fal/flux-pro/v1.1": {
|
|
181
|
+
input: 0,
|
|
182
|
+
output: 0.04, // Turbo version
|
|
183
|
+
},
|
|
184
|
+
"fal/flux-pro/v1.1-ultra": {
|
|
185
|
+
input: 0,
|
|
186
|
+
output: 0.06,
|
|
187
|
+
},
|
|
188
|
+
"fal/flux-pro/kontext": {
|
|
189
|
+
input: 0,
|
|
190
|
+
output: 0.04, // Image editing variant
|
|
191
|
+
},
|
|
192
|
+
"fal/flux-dev": {
|
|
193
|
+
input: 0,
|
|
194
|
+
output: 0.025,
|
|
195
|
+
},
|
|
196
|
+
"fal/flux-schnell": {
|
|
197
|
+
input: 0,
|
|
198
|
+
output: 0.003, // Fast/cheap model
|
|
199
|
+
},
|
|
200
|
+
"fal/flux-realism": {
|
|
201
|
+
input: 0,
|
|
202
|
+
output: 0.025,
|
|
203
|
+
},
|
|
204
|
+
"fal/flux-lora": {
|
|
205
|
+
input: 0,
|
|
206
|
+
output: 0.025,
|
|
207
|
+
},
|
|
208
|
+
// Stable Diffusion models
|
|
209
|
+
"fal/stable-diffusion-v3-medium": {
|
|
210
|
+
input: 0,
|
|
211
|
+
output: 0.035,
|
|
212
|
+
},
|
|
213
|
+
"fal/fast-sdxl": {
|
|
214
|
+
input: 0,
|
|
215
|
+
output: 0.01,
|
|
216
|
+
},
|
|
217
|
+
"fal/sdxl": {
|
|
218
|
+
input: 0,
|
|
219
|
+
output: 0.02,
|
|
220
|
+
},
|
|
221
|
+
// Recraft models
|
|
222
|
+
"fal/recraft-v3": {
|
|
223
|
+
input: 0,
|
|
224
|
+
output: 0.04,
|
|
225
|
+
},
|
|
226
|
+
// Ideogram
|
|
227
|
+
"fal/ideogram/v2": {
|
|
228
|
+
input: 0,
|
|
229
|
+
output: 0.08,
|
|
230
|
+
},
|
|
231
|
+
"fal/ideogram/v2-turbo": {
|
|
232
|
+
input: 0,
|
|
233
|
+
output: 0.05,
|
|
234
|
+
},
|
|
235
|
+
// ByteDance Seedream
|
|
236
|
+
"fal/bytedance/seedream/v4/text-to-image": {
|
|
237
|
+
input: 0,
|
|
238
|
+
output: 0.03, // $0.03 per image
|
|
239
|
+
},
|
|
240
|
+
// Nano Banana
|
|
241
|
+
"fal/nano-banana": {
|
|
242
|
+
input: 0,
|
|
243
|
+
output: 0.0398,
|
|
244
|
+
},
|
|
245
|
+
// Qwen image (per megapixel)
|
|
246
|
+
"fal/qwen-image": {
|
|
247
|
+
input: 0,
|
|
248
|
+
output: 0.02, // $0.02 per megapixel
|
|
249
|
+
},
|
|
250
|
+
// Video models (cost per second of output, unless noted)
|
|
251
|
+
"fal/wan-25-preview/text-to-video": {
|
|
252
|
+
input: 0,
|
|
253
|
+
output: 0.05, // $0.05 per second
|
|
254
|
+
},
|
|
255
|
+
"fal/kling-video/v2.5-turbo/pro/image-to-video": {
|
|
256
|
+
input: 0,
|
|
257
|
+
output: 0.07, // $0.07 per second
|
|
258
|
+
},
|
|
259
|
+
"fal/veo3/image-to-video": {
|
|
260
|
+
input: 0,
|
|
261
|
+
output: 0.4, // $0.40 per second
|
|
262
|
+
},
|
|
263
|
+
"fal/ovi/image-to-video": {
|
|
264
|
+
input: 0,
|
|
265
|
+
output: 0.2, // $0.20 per video (flat rate)
|
|
266
|
+
},
|
|
267
|
+
"fal/minimax/video-01": {
|
|
268
|
+
input: 0,
|
|
269
|
+
output: 0.3, // per second of video
|
|
270
|
+
},
|
|
271
|
+
"fal/minimax/video-01-live": {
|
|
272
|
+
input: 0,
|
|
273
|
+
output: 0.25,
|
|
274
|
+
},
|
|
275
|
+
"fal/kling-video/v1/standard/text-to-video": {
|
|
276
|
+
input: 0,
|
|
277
|
+
output: 0.1,
|
|
278
|
+
},
|
|
279
|
+
"fal/kling-video/v1.5/pro/text-to-video": {
|
|
280
|
+
input: 0,
|
|
281
|
+
output: 0.35,
|
|
282
|
+
},
|
|
283
|
+
"fal/luma-dream-machine": {
|
|
284
|
+
input: 0,
|
|
285
|
+
output: 0.2,
|
|
286
|
+
},
|
|
287
|
+
"fal/runway-gen3/turbo/image-to-video": {
|
|
288
|
+
input: 0,
|
|
289
|
+
output: 0.25,
|
|
290
|
+
},
|
|
291
|
+
// Audio/Speech models
|
|
292
|
+
"fal/whisper": {
|
|
293
|
+
input: 0.006, // per minute of audio
|
|
294
|
+
output: 0,
|
|
295
|
+
},
|
|
296
|
+
};
|
|
297
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/pricing/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pricing Module
|
|
3
|
+
*
|
|
4
|
+
* Loads and provides access to standardized pricing data for all providers.
|
|
5
|
+
* Pricing files are JSON and can be contributed via PRs.
|
|
6
|
+
*/
|
|
7
|
+
import type { ProviderPricing, ModelPricing as SchemaModelPricing, PricingEntry, BillingUnit, ResolvedPricing } from "./schema.js";
|
|
8
|
+
import { getCurrentPricing, getPricingAtDate, getDefaultUnitSize } from "./schema.js";
|
|
9
|
+
import type { PricingConfig } from "../types.js";
|
|
10
|
+
export type { ProviderPricing, SchemaModelPricing, PricingEntry, BillingUnit, ResolvedPricing, };
|
|
11
|
+
export { getCurrentPricing, getPricingAtDate, getDefaultUnitSize };
|
|
12
|
+
/**
|
|
13
|
+
* All provider pricing data
|
|
14
|
+
*/
|
|
15
|
+
export declare const providers: Record<string, ProviderPricing>;
|
|
16
|
+
/**
|
|
17
|
+
* Default pricing in flat format (backward compatible)
|
|
18
|
+
*/
|
|
19
|
+
export declare const defaultPricing: PricingConfig;
|
|
20
|
+
/**
|
|
21
|
+
* Merge custom pricing with defaults
|
|
22
|
+
*/
|
|
23
|
+
export declare function mergePricing(base: PricingConfig, overrides: PricingConfig): PricingConfig;
|
|
24
|
+
/**
|
|
25
|
+
* Calculate cost for a model (backward compatible API)
|
|
26
|
+
*
|
|
27
|
+
* @param model - Model identifier
|
|
28
|
+
* @param inputTokens - Number of input tokens
|
|
29
|
+
* @param outputTokens - Number of output tokens
|
|
30
|
+
* @param pricing - Pricing configuration
|
|
31
|
+
* @param cachedInputTokens - Optional number of cached input tokens
|
|
32
|
+
* @returns Cost in USD
|
|
33
|
+
*/
|
|
34
|
+
export declare function calculateCost(model: string, inputTokens: number, outputTokens: number, pricing: PricingConfig, cachedInputTokens?: number): number;
|
|
35
|
+
/**
|
|
36
|
+
* Clear the pricing lookup cache (useful for testing or dynamic updates)
|
|
37
|
+
*/
|
|
38
|
+
export declare function clearPricingCache(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Get pricing for a specific model (new API)
|
|
41
|
+
*
|
|
42
|
+
* @param modelId - Model identifier (e.g., "gpt-4o", "openai/gpt-4o", "claude-3.5-sonnet")
|
|
43
|
+
* @param date - Optional date to get historical pricing (defaults to current)
|
|
44
|
+
* @returns Resolved pricing or null if not found
|
|
45
|
+
*/
|
|
46
|
+
export declare function getModelPricing(modelId: string, date?: Date): ResolvedPricing | null;
|
|
47
|
+
/**
|
|
48
|
+
* Calculate cost based on usage (new API with usage object)
|
|
49
|
+
*
|
|
50
|
+
* @param modelId - Model identifier
|
|
51
|
+
* @param usage - Usage data (tokens, characters, images, etc.)
|
|
52
|
+
* @param date - Optional date for historical pricing
|
|
53
|
+
* @returns Cost in USD or null if pricing not found
|
|
54
|
+
*/
|
|
55
|
+
export declare function calculateCostFromUsage(modelId: string, usage: {
|
|
56
|
+
inputUnits?: number;
|
|
57
|
+
outputUnits?: number;
|
|
58
|
+
cachedInputUnits?: number;
|
|
59
|
+
cacheWriteUnits?: number;
|
|
60
|
+
}, date?: Date): number | null;
|
|
61
|
+
/**
|
|
62
|
+
* Get all models for a provider
|
|
63
|
+
*/
|
|
64
|
+
export declare function getProviderModels(providerId: string): string[];
|
|
65
|
+
/**
|
|
66
|
+
* Get all supported providers
|
|
67
|
+
*/
|
|
68
|
+
export declare function getSupportedProviders(): string[];
|
|
69
|
+
/**
|
|
70
|
+
* Check if a model is deprecated
|
|
71
|
+
*/
|
|
72
|
+
export declare function isModelDeprecated(modelId: string): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Get replacement model for a deprecated model
|
|
75
|
+
*/
|
|
76
|
+
export declare function getReplacementModel(modelId: string): string | null;
|
|
77
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pricing/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,IAAI,kBAAkB,EAClC,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAC;AAS/D,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,eAAe,GAChB,CAAC;AACF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAKrD,CAAC;AA4DF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,aAAqC,CAAC;AAEnE;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,aAAa,GACvB,aAAa,CAEf;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,aAAa,EACtB,iBAAiB,CAAC,EAAE,MAAM,GACzB,MAAM,CAsBR;AA4DD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,IAAI,GACV,eAAe,GAAG,IAAI,CA6BxB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE;IACL,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,GAAG,IAAI,CA8Bf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAM9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIlE"}
|