ai-api-pricing 0.0.0-stage → 0.1.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/README.md +32 -2
- package/dist/cjs/generated/bundled.js +18734 -0
- package/dist/cjs/generated/bundled.js.map +1 -0
- package/dist/cjs/index.js +307 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/generated/bundled.d.ts +3 -0
- package/dist/esm/generated/bundled.d.ts.map +1 -0
- package/dist/esm/generated/bundled.js +18731 -0
- package/dist/esm/generated/bundled.js.map +1 -0
- package/dist/esm/index.d.ts +25 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +294 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types.d.ts +114 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +29 -4
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnsupportedPricingError = exports.InvalidWorkloadError = exports.MissingPriceError = exports.ModelNotFoundError = exports.PricingDataError = exports.LIVE_PRICES_URL = void 0;
|
|
4
|
+
exports.loadPrices = loadPrices;
|
|
5
|
+
exports.getPrice = getPrice;
|
|
6
|
+
exports.listModels = listModels;
|
|
7
|
+
exports.estimateCost = estimateCost;
|
|
8
|
+
exports.compareModels = compareModels;
|
|
9
|
+
const bundled_js_1 = require("./generated/bundled.js");
|
|
10
|
+
exports.LIVE_PRICES_URL = "https://aicostbudget.github.io/ai-api-pricing-data/api/v1/prices.json";
|
|
11
|
+
const FETCH_TIMEOUT_MS = 10_000;
|
|
12
|
+
class PricingDataError extends Error {
|
|
13
|
+
code;
|
|
14
|
+
constructor(message, code) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.code = code;
|
|
17
|
+
this.name = new.target.name;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.PricingDataError = PricingDataError;
|
|
21
|
+
class ModelNotFoundError extends PricingDataError {
|
|
22
|
+
constructor(modelId) {
|
|
23
|
+
super(`Unknown model: ${modelId}`, "MODEL_NOT_FOUND");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.ModelNotFoundError = ModelNotFoundError;
|
|
27
|
+
class MissingPriceError extends PricingDataError {
|
|
28
|
+
constructor(modelId, component) {
|
|
29
|
+
super(`Cannot estimate ${modelId}: required ${component} price is missing.`, "MISSING_PRICE");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.MissingPriceError = MissingPriceError;
|
|
33
|
+
class InvalidWorkloadError extends PricingDataError {
|
|
34
|
+
constructor(message) {
|
|
35
|
+
super(message, "INVALID_WORKLOAD");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.InvalidWorkloadError = InvalidWorkloadError;
|
|
39
|
+
class UnsupportedPricingError extends PricingDataError {
|
|
40
|
+
constructor(message) {
|
|
41
|
+
super(message, "UNSUPPORTED_PRICING");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.UnsupportedPricingError = UnsupportedPricingError;
|
|
45
|
+
function asRecord(value) {
|
|
46
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
47
|
+
throw new PricingDataError("Pricing document contains a non-object record.", "INVALID_DATA");
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
function requiredString(value, field) {
|
|
52
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
53
|
+
throw new PricingDataError(`Pricing document is missing ${field}.`, "INVALID_DATA");
|
|
54
|
+
}
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
function nullableString(value) {
|
|
58
|
+
return typeof value === "string" ? value : null;
|
|
59
|
+
}
|
|
60
|
+
function nullableNumber(value) {
|
|
61
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
62
|
+
}
|
|
63
|
+
function normalizePricing(value) {
|
|
64
|
+
const raw = asRecord(value);
|
|
65
|
+
if (raw.currency !== "USD") {
|
|
66
|
+
throw new PricingDataError("Only USD pricing is supported by this package.", "UNSUPPORTED_CURRENCY");
|
|
67
|
+
}
|
|
68
|
+
const unit = raw.unit === "1M tokens" ? "1M tokens" : null;
|
|
69
|
+
return {
|
|
70
|
+
currency: "USD",
|
|
71
|
+
unit,
|
|
72
|
+
input: nullableNumber(raw.input),
|
|
73
|
+
output: nullableNumber(raw.output),
|
|
74
|
+
cachedInput: nullableNumber(raw.cached_input),
|
|
75
|
+
cacheWrite: nullableNumber(raw.cache_write),
|
|
76
|
+
cacheWrite1h: nullableNumber(raw.cache_write_1h),
|
|
77
|
+
batchInput: nullableNumber(raw.batch_input),
|
|
78
|
+
batchCachedInput: nullableNumber(raw.batch_cached_input),
|
|
79
|
+
batchOutput: nullableNumber(raw.batch_output),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function normalizeTier(value) {
|
|
83
|
+
const raw = asRecord(value);
|
|
84
|
+
const comparison = requiredString(raw.threshold_comparison, "pricing_tiers[].threshold_comparison");
|
|
85
|
+
if (!["less_than", "less_than_or_equal", "greater_than", "greater_than_or_equal"].includes(comparison)) {
|
|
86
|
+
throw new PricingDataError(`Unsupported tier comparison: ${comparison}`, "INVALID_DATA");
|
|
87
|
+
}
|
|
88
|
+
if (raw.currency !== "USD" || raw.unit !== "1M tokens") {
|
|
89
|
+
throw new PricingDataError("Tier pricing must be USD per 1M tokens.", "INVALID_DATA");
|
|
90
|
+
}
|
|
91
|
+
const input = nullableNumber(raw.input);
|
|
92
|
+
const cachedInput = nullableNumber(raw.cached_input);
|
|
93
|
+
const output = nullableNumber(raw.output);
|
|
94
|
+
const threshold = nullableNumber(raw.prompt_token_threshold);
|
|
95
|
+
if (input === null || cachedInput === null || output === null || threshold === null) {
|
|
96
|
+
throw new PricingDataError("Tier pricing contains a missing numeric field.", "INVALID_DATA");
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
id: requiredString(raw.id, "pricing_tiers[].id"),
|
|
100
|
+
processingMode: requiredString(raw.processing_mode, "pricing_tiers[].processing_mode"),
|
|
101
|
+
pricingStatus: requiredString(raw.pricing_status, "pricing_tiers[].pricing_status"),
|
|
102
|
+
calculationDefault: raw.calculation_default === true,
|
|
103
|
+
promptTokenThreshold: threshold,
|
|
104
|
+
thresholdComparison: comparison,
|
|
105
|
+
thresholdTokenBasis: requiredString(raw.threshold_token_basis, "pricing_tiers[].threshold_token_basis"),
|
|
106
|
+
cachedPromptTokensIncluded: raw.cached_prompt_tokens_included === true,
|
|
107
|
+
wholeRequestPricing: raw.whole_request_pricing === true,
|
|
108
|
+
currency: "USD",
|
|
109
|
+
unit: "1M tokens",
|
|
110
|
+
input,
|
|
111
|
+
cachedInput,
|
|
112
|
+
output,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function normalizeModel(value, source) {
|
|
116
|
+
const raw = asRecord(value);
|
|
117
|
+
return {
|
|
118
|
+
modelId: requiredString(raw.model_id, "models[].model_id"),
|
|
119
|
+
providerId: requiredString(raw.provider_id, "models[].provider_id"),
|
|
120
|
+
displayName: requiredString(raw.display_name, "models[].display_name"),
|
|
121
|
+
status: requiredString(raw.status, "models[].status"),
|
|
122
|
+
pricing: normalizePricing(raw.pricing),
|
|
123
|
+
pricingTiers: Array.isArray(raw.pricing_tiers) ? raw.pricing_tiers.map(normalizeTier) : [],
|
|
124
|
+
pricingComponents: Array.isArray(raw.pricing_components)
|
|
125
|
+
? raw.pricing_components.map((component) => ({ ...asRecord(component) }))
|
|
126
|
+
: [],
|
|
127
|
+
officialSourceUrl: requiredString(raw.official_source_url, "models[].official_source_url"),
|
|
128
|
+
lastVerifiedAt: requiredString(raw.last_verified_at, "models[].last_verified_at"),
|
|
129
|
+
releasedAt: nullableString(raw.released_at),
|
|
130
|
+
effectiveFrom: nullableString(raw.effective_from),
|
|
131
|
+
notes: typeof raw.notes === "string" ? raw.notes : "",
|
|
132
|
+
source,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function normalizeDocument(value, source, fallbackReason) {
|
|
136
|
+
const raw = asRecord(value);
|
|
137
|
+
if (!Array.isArray(raw.models)) {
|
|
138
|
+
throw new PricingDataError("Pricing document is missing models[].", "INVALID_DATA");
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
generatedAt: requiredString(raw.generated_at, "generated_at"),
|
|
142
|
+
lastVerifiedAt: requiredString(raw.last_verified_at, "last_verified_at"),
|
|
143
|
+
license: requiredString(raw.licenses?.data, "licenses.data"),
|
|
144
|
+
models: raw.models.map((model) => normalizeModel(model, source)),
|
|
145
|
+
source,
|
|
146
|
+
...(fallbackReason ? { fallbackReason } : {}),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function errorMessage(error) {
|
|
150
|
+
return error instanceof Error ? error.message : String(error);
|
|
151
|
+
}
|
|
152
|
+
async function fetchLive(fetchImpl) {
|
|
153
|
+
const controller = new AbortController();
|
|
154
|
+
const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
155
|
+
try {
|
|
156
|
+
const response = await fetchImpl(exports.LIVE_PRICES_URL, { signal: controller.signal });
|
|
157
|
+
if (!response.ok) {
|
|
158
|
+
throw new Error(`HTTP ${response.status}`);
|
|
159
|
+
}
|
|
160
|
+
return await response.json();
|
|
161
|
+
}
|
|
162
|
+
finally {
|
|
163
|
+
clearTimeout(timeout);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
async function loadPrices(options = {}) {
|
|
167
|
+
if ((options.source ?? "live") === "bundled") {
|
|
168
|
+
return normalizeDocument(bundled_js_1.bundledPriceDocument, "bundled");
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
172
|
+
if (!fetchImpl) {
|
|
173
|
+
throw new Error("global fetch is unavailable");
|
|
174
|
+
}
|
|
175
|
+
return normalizeDocument(await fetchLive(fetchImpl), "live");
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
return normalizeDocument(bundled_js_1.bundledPriceDocument, "bundled", errorMessage(error));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
function findModel(catalog, modelId) {
|
|
182
|
+
const normalized = modelId.trim().toLowerCase();
|
|
183
|
+
const model = catalog.models.find((candidate) => candidate.modelId.toLowerCase() === normalized);
|
|
184
|
+
if (!model) {
|
|
185
|
+
throw new ModelNotFoundError(modelId);
|
|
186
|
+
}
|
|
187
|
+
return model;
|
|
188
|
+
}
|
|
189
|
+
async function getPrice(modelId, options = {}) {
|
|
190
|
+
return findModel(await loadPrices(options), modelId);
|
|
191
|
+
}
|
|
192
|
+
async function listModels(options = {}) {
|
|
193
|
+
const catalog = await loadPrices(options);
|
|
194
|
+
const provider = options.provider?.trim().toLowerCase();
|
|
195
|
+
const status = options.status?.trim().toLowerCase();
|
|
196
|
+
return catalog.models.filter((model) => (!provider || model.providerId.toLowerCase() === provider) &&
|
|
197
|
+
(!status || model.status.toLowerCase() === status));
|
|
198
|
+
}
|
|
199
|
+
function assertTokenCount(name, value) {
|
|
200
|
+
if (!Number.isFinite(value) || value < 0 || !Number.isInteger(value)) {
|
|
201
|
+
throw new InvalidWorkloadError(`${name} must be a non-negative integer.`);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
function thresholdMatches(tier, promptTokens) {
|
|
205
|
+
switch (tier.thresholdComparison) {
|
|
206
|
+
case "less_than": return promptTokens < tier.promptTokenThreshold;
|
|
207
|
+
case "less_than_or_equal": return promptTokens <= tier.promptTokenThreshold;
|
|
208
|
+
case "greater_than": return promptTokens > tier.promptTokenThreshold;
|
|
209
|
+
case "greater_than_or_equal": return promptTokens >= tier.promptTokenThreshold;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
function selectTier(model, promptTokens, batch) {
|
|
213
|
+
const mode = batch ? "batch" : "standard";
|
|
214
|
+
const tiers = model.pricingTiers.filter((tier) => tier.pricingStatus === "current" && tier.processingMode === mode);
|
|
215
|
+
if (tiers.length === 0)
|
|
216
|
+
return null;
|
|
217
|
+
for (const tier of tiers) {
|
|
218
|
+
if (tier.thresholdTokenBasis !== "total_prompt_tokens" || !tier.wholeRequestPricing) {
|
|
219
|
+
throw new UnsupportedPricingError(`Cannot safely apply tier ${tier.id} for ${model.modelId}.`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
const matches = tiers.filter((tier) => !tier.calculationDefault && thresholdMatches(tier, promptTokens));
|
|
223
|
+
if (matches.length > 1) {
|
|
224
|
+
throw new UnsupportedPricingError(`Multiple pricing tiers match ${model.modelId}.`);
|
|
225
|
+
}
|
|
226
|
+
if (matches.length === 1)
|
|
227
|
+
return matches[0];
|
|
228
|
+
const defaults = tiers.filter((tier) => tier.calculationDefault);
|
|
229
|
+
if (defaults.length !== 1) {
|
|
230
|
+
throw new UnsupportedPricingError(`No unambiguous pricing tier matches ${model.modelId}.`);
|
|
231
|
+
}
|
|
232
|
+
return defaults[0];
|
|
233
|
+
}
|
|
234
|
+
function requiredRate(model, component, value, tokens) {
|
|
235
|
+
if (tokens === 0)
|
|
236
|
+
return value;
|
|
237
|
+
if (value === null)
|
|
238
|
+
throw new MissingPriceError(model.modelId, component);
|
|
239
|
+
return value;
|
|
240
|
+
}
|
|
241
|
+
function estimateFromModel(model, workload) {
|
|
242
|
+
const cached = workload.cachedInputTokens ?? 0;
|
|
243
|
+
const batch = workload.batch ?? false;
|
|
244
|
+
assertTokenCount("inputTokens", workload.inputTokens);
|
|
245
|
+
assertTokenCount("outputTokens", workload.outputTokens);
|
|
246
|
+
assertTokenCount("cachedInputTokens", cached);
|
|
247
|
+
if (cached > workload.inputTokens) {
|
|
248
|
+
throw new InvalidWorkloadError("cachedInputTokens cannot exceed inputTokens.");
|
|
249
|
+
}
|
|
250
|
+
const uncached = workload.inputTokens - cached;
|
|
251
|
+
const tier = selectTier(model, workload.inputTokens, batch);
|
|
252
|
+
if (!tier && model.pricing.unit !== "1M tokens") {
|
|
253
|
+
throw new UnsupportedPricingError(`${model.modelId} is not priced per 1M tokens.`);
|
|
254
|
+
}
|
|
255
|
+
const rawInputRate = tier?.input ?? (batch ? model.pricing.batchInput : model.pricing.input);
|
|
256
|
+
const rawCachedRate = tier?.cachedInput ?? (batch ? model.pricing.batchCachedInput : model.pricing.cachedInput);
|
|
257
|
+
const rawOutputRate = tier?.output ?? (batch ? model.pricing.batchOutput : model.pricing.output);
|
|
258
|
+
const inputRate = requiredRate(model, batch ? "batch input" : "input", rawInputRate, uncached);
|
|
259
|
+
const cachedRate = requiredRate(model, batch ? "batch cached input" : "cached input", rawCachedRate, cached);
|
|
260
|
+
const outputRate = requiredRate(model, batch ? "batch output" : "output", rawOutputRate, workload.outputTokens);
|
|
261
|
+
const inputCost = uncached * (inputRate ?? 0) / 1_000_000;
|
|
262
|
+
const cachedCost = cached * (cachedRate ?? 0) / 1_000_000;
|
|
263
|
+
const outputCost = workload.outputTokens * (outputRate ?? 0) / 1_000_000;
|
|
264
|
+
const pricesUsed = {
|
|
265
|
+
currency: "USD",
|
|
266
|
+
unit: "1M tokens",
|
|
267
|
+
input: inputRate,
|
|
268
|
+
cachedInput: cachedRate,
|
|
269
|
+
output: outputRate,
|
|
270
|
+
batch,
|
|
271
|
+
tierId: tier?.id ?? null,
|
|
272
|
+
};
|
|
273
|
+
const assumptions = [
|
|
274
|
+
"inputTokens includes cachedInputTokens; only the remainder is billed at the uncached input rate.",
|
|
275
|
+
"Catalog rates exclude taxes, negotiated discounts, credits, and provider-specific rounding.",
|
|
276
|
+
tier ? `Tier ${tier.id} prices the whole request using total prompt tokens.` : "The dataset compatibility/default token rates are used.",
|
|
277
|
+
];
|
|
278
|
+
return {
|
|
279
|
+
modelId: model.modelId,
|
|
280
|
+
total: inputCost + cachedCost + outputCost,
|
|
281
|
+
breakdown: { input: inputCost, cachedInput: cachedCost, output: outputCost },
|
|
282
|
+
pricesUsed,
|
|
283
|
+
assumptions,
|
|
284
|
+
officialSourceUrl: model.officialSourceUrl,
|
|
285
|
+
lastVerifiedAt: model.lastVerifiedAt,
|
|
286
|
+
source: model.source,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
async function estimateCost(input) {
|
|
290
|
+
const catalog = await loadPrices({ source: input.source, fetchImpl: input.fetchImpl });
|
|
291
|
+
return estimateFromModel(findModel(catalog, input.modelId), input);
|
|
292
|
+
}
|
|
293
|
+
async function compareModels(modelIds, workload) {
|
|
294
|
+
if (!Array.isArray(modelIds) || modelIds.length === 0) {
|
|
295
|
+
throw new InvalidWorkloadError("modelIds must contain at least one model.");
|
|
296
|
+
}
|
|
297
|
+
const catalog = await loadPrices({ source: workload.source, fetchImpl: workload.fetchImpl });
|
|
298
|
+
return modelIds.map((modelId) => {
|
|
299
|
+
const model = findModel(catalog, modelId);
|
|
300
|
+
return {
|
|
301
|
+
...estimateFromModel(model, workload),
|
|
302
|
+
displayName: model.displayName,
|
|
303
|
+
providerId: model.providerId,
|
|
304
|
+
};
|
|
305
|
+
}).sort((left, right) => left.total - right.total || left.modelId.localeCompare(right.modelId));
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundled.d.ts","sourceRoot":"","sources":["../../../src/generated/bundled.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,oBAAoB,EAAE,OAuykBlC,CAAC"}
|