@openrouter/ai-sdk-provider 2.2.2 → 2.2.3
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/dist/index.js +108 -107
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +108 -107
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +107 -106
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +107 -106
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/internal/index.js
CHANGED
|
@@ -2295,6 +2295,46 @@ var OpenRouterProviderOptionsSchema = import_v43.z.object({
|
|
|
2295
2295
|
}).optional()
|
|
2296
2296
|
}).optional();
|
|
2297
2297
|
|
|
2298
|
+
// src/utils/compute-token-usage.ts
|
|
2299
|
+
function computeTokenUsage(usage) {
|
|
2300
|
+
var _a16, _b16, _c, _d, _e, _f, _g, _h;
|
|
2301
|
+
const promptTokens = (_a16 = usage.prompt_tokens) != null ? _a16 : 0;
|
|
2302
|
+
const completionTokens = (_b16 = usage.completion_tokens) != null ? _b16 : 0;
|
|
2303
|
+
const cacheReadTokens = (_d = (_c = usage.prompt_tokens_details) == null ? void 0 : _c.cached_tokens) != null ? _d : 0;
|
|
2304
|
+
const cacheWriteTokens = (_f = (_e = usage.prompt_tokens_details) == null ? void 0 : _e.cache_write_tokens) != null ? _f : void 0;
|
|
2305
|
+
const reasoningTokens = (_h = (_g = usage.completion_tokens_details) == null ? void 0 : _g.reasoning_tokens) != null ? _h : 0;
|
|
2306
|
+
return {
|
|
2307
|
+
inputTokens: {
|
|
2308
|
+
total: promptTokens,
|
|
2309
|
+
noCache: promptTokens - cacheReadTokens,
|
|
2310
|
+
cacheRead: cacheReadTokens,
|
|
2311
|
+
cacheWrite: cacheWriteTokens
|
|
2312
|
+
},
|
|
2313
|
+
outputTokens: {
|
|
2314
|
+
total: completionTokens,
|
|
2315
|
+
text: completionTokens - reasoningTokens,
|
|
2316
|
+
reasoning: reasoningTokens
|
|
2317
|
+
},
|
|
2318
|
+
raw: usage
|
|
2319
|
+
};
|
|
2320
|
+
}
|
|
2321
|
+
function emptyUsage() {
|
|
2322
|
+
return {
|
|
2323
|
+
inputTokens: {
|
|
2324
|
+
total: 0,
|
|
2325
|
+
noCache: void 0,
|
|
2326
|
+
cacheRead: void 0,
|
|
2327
|
+
cacheWrite: void 0
|
|
2328
|
+
},
|
|
2329
|
+
outputTokens: {
|
|
2330
|
+
total: 0,
|
|
2331
|
+
text: void 0,
|
|
2332
|
+
reasoning: void 0
|
|
2333
|
+
},
|
|
2334
|
+
raw: void 0
|
|
2335
|
+
};
|
|
2336
|
+
}
|
|
2337
|
+
|
|
2298
2338
|
// src/utils/map-finish-reason.ts
|
|
2299
2339
|
function mapToUnified(finishReason) {
|
|
2300
2340
|
switch (finishReason) {
|
|
@@ -2801,7 +2841,8 @@ var OpenRouterChatCompletionBaseResponseSchema = import_v46.z.object({
|
|
|
2801
2841
|
usage: import_v46.z.object({
|
|
2802
2842
|
prompt_tokens: import_v46.z.number(),
|
|
2803
2843
|
prompt_tokens_details: import_v46.z.object({
|
|
2804
|
-
cached_tokens: import_v46.z.number()
|
|
2844
|
+
cached_tokens: import_v46.z.number(),
|
|
2845
|
+
cache_write_tokens: import_v46.z.number().nullish()
|
|
2805
2846
|
}).passthrough().nullish(),
|
|
2806
2847
|
completion_tokens: import_v46.z.number(),
|
|
2807
2848
|
completion_tokens_details: import_v46.z.object({
|
|
@@ -3076,7 +3117,7 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3076
3117
|
return baseArgs;
|
|
3077
3118
|
}
|
|
3078
3119
|
async doGenerate(options) {
|
|
3079
|
-
var _a16, _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v
|
|
3120
|
+
var _a16, _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
3080
3121
|
const providerOptions = options.providerOptions || {};
|
|
3081
3122
|
const openrouterOptions = providerOptions.openrouter || {};
|
|
3082
3123
|
const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions);
|
|
@@ -3115,34 +3156,8 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3115
3156
|
message: "No choice in response"
|
|
3116
3157
|
});
|
|
3117
3158
|
}
|
|
3118
|
-
const usageInfo = response.usage ?
|
|
3119
|
-
|
|
3120
|
-
total: (_a16 = response.usage.prompt_tokens) != null ? _a16 : 0,
|
|
3121
|
-
noCache: void 0,
|
|
3122
|
-
cacheRead: (_c = (_b16 = response.usage.prompt_tokens_details) == null ? void 0 : _b16.cached_tokens) != null ? _c : void 0,
|
|
3123
|
-
cacheWrite: void 0
|
|
3124
|
-
},
|
|
3125
|
-
outputTokens: {
|
|
3126
|
-
total: (_d = response.usage.completion_tokens) != null ? _d : 0,
|
|
3127
|
-
text: void 0,
|
|
3128
|
-
reasoning: (_f = (_e = response.usage.completion_tokens_details) == null ? void 0 : _e.reasoning_tokens) != null ? _f : void 0
|
|
3129
|
-
},
|
|
3130
|
-
raw: response.usage
|
|
3131
|
-
} : {
|
|
3132
|
-
inputTokens: {
|
|
3133
|
-
total: 0,
|
|
3134
|
-
noCache: void 0,
|
|
3135
|
-
cacheRead: void 0,
|
|
3136
|
-
cacheWrite: void 0
|
|
3137
|
-
},
|
|
3138
|
-
outputTokens: {
|
|
3139
|
-
total: 0,
|
|
3140
|
-
text: void 0,
|
|
3141
|
-
reasoning: void 0
|
|
3142
|
-
},
|
|
3143
|
-
raw: void 0
|
|
3144
|
-
};
|
|
3145
|
-
const reasoningDetails = (_g = choice.message.reasoning_details) != null ? _g : [];
|
|
3159
|
+
const usageInfo = response.usage ? computeTokenUsage(response.usage) : emptyUsage();
|
|
3160
|
+
const reasoningDetails = (_a16 = choice.message.reasoning_details) != null ? _a16 : [];
|
|
3146
3161
|
const reasoning = reasoningDetails.length > 0 ? reasoningDetails.map((detail) => {
|
|
3147
3162
|
switch (detail.type) {
|
|
3148
3163
|
case "reasoning.text" /* Text */: {
|
|
@@ -3211,9 +3226,9 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3211
3226
|
for (const toolCall of choice.message.tool_calls) {
|
|
3212
3227
|
content.push({
|
|
3213
3228
|
type: "tool-call",
|
|
3214
|
-
toolCallId: (
|
|
3229
|
+
toolCallId: (_b16 = toolCall.id) != null ? _b16 : generateId(),
|
|
3215
3230
|
toolName: toolCall.function.name,
|
|
3216
|
-
input: (
|
|
3231
|
+
input: (_c = toolCall.function.arguments) != null ? _c : "{}",
|
|
3217
3232
|
providerMetadata: !reasoningDetailsAttachedToToolCall ? {
|
|
3218
3233
|
openrouter: {
|
|
3219
3234
|
reasoning_details: reasoningDetails
|
|
@@ -3240,19 +3255,19 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3240
3255
|
sourceType: "url",
|
|
3241
3256
|
id: annotation.url_citation.url,
|
|
3242
3257
|
url: annotation.url_citation.url,
|
|
3243
|
-
title: (
|
|
3258
|
+
title: (_d = annotation.url_citation.title) != null ? _d : "",
|
|
3244
3259
|
providerMetadata: {
|
|
3245
3260
|
openrouter: {
|
|
3246
|
-
content: (
|
|
3247
|
-
startIndex: (
|
|
3248
|
-
endIndex: (
|
|
3261
|
+
content: (_e = annotation.url_citation.content) != null ? _e : "",
|
|
3262
|
+
startIndex: (_f = annotation.url_citation.start_index) != null ? _f : 0,
|
|
3263
|
+
endIndex: (_g = annotation.url_citation.end_index) != null ? _g : 0
|
|
3249
3264
|
}
|
|
3250
3265
|
}
|
|
3251
3266
|
});
|
|
3252
3267
|
}
|
|
3253
3268
|
}
|
|
3254
3269
|
}
|
|
3255
|
-
const fileAnnotations = (
|
|
3270
|
+
const fileAnnotations = (_h = choice.message.annotations) == null ? void 0 : _h.filter(
|
|
3256
3271
|
(a) => a.type === "file"
|
|
3257
3272
|
);
|
|
3258
3273
|
const hasToolCalls = choice.message.tool_calls && choice.message.tool_calls.length > 0;
|
|
@@ -3260,7 +3275,7 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3260
3275
|
(d) => d.type === "reasoning.encrypted" /* Encrypted */ && d.data
|
|
3261
3276
|
);
|
|
3262
3277
|
const shouldOverrideFinishReason = hasToolCalls && hasEncryptedReasoning && choice.finish_reason === "stop";
|
|
3263
|
-
const effectiveFinishReason = shouldOverrideFinishReason ? createFinishReason("tool-calls", (
|
|
3278
|
+
const effectiveFinishReason = shouldOverrideFinishReason ? createFinishReason("tool-calls", (_i = choice.finish_reason) != null ? _i : void 0) : mapOpenRouterFinishReason(choice.finish_reason);
|
|
3264
3279
|
return {
|
|
3265
3280
|
content,
|
|
3266
3281
|
finishReason: effectiveFinishReason,
|
|
@@ -3268,22 +3283,22 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3268
3283
|
warnings: [],
|
|
3269
3284
|
providerMetadata: {
|
|
3270
3285
|
openrouter: OpenRouterProviderMetadataSchema.parse({
|
|
3271
|
-
provider: (
|
|
3272
|
-
reasoning_details: (
|
|
3286
|
+
provider: (_j = response.provider) != null ? _j : "",
|
|
3287
|
+
reasoning_details: (_k = choice.message.reasoning_details) != null ? _k : [],
|
|
3273
3288
|
annotations: fileAnnotations && fileAnnotations.length > 0 ? fileAnnotations : void 0,
|
|
3274
3289
|
usage: __spreadValues(__spreadValues(__spreadValues(__spreadValues({
|
|
3275
|
-
promptTokens: (
|
|
3276
|
-
completionTokens: (
|
|
3277
|
-
totalTokens: ((
|
|
3278
|
-
}, ((
|
|
3290
|
+
promptTokens: (_l = usageInfo.inputTokens.total) != null ? _l : 0,
|
|
3291
|
+
completionTokens: (_m = usageInfo.outputTokens.total) != null ? _m : 0,
|
|
3292
|
+
totalTokens: ((_n = usageInfo.inputTokens.total) != null ? _n : 0) + ((_o = usageInfo.outputTokens.total) != null ? _o : 0)
|
|
3293
|
+
}, ((_p = response.usage) == null ? void 0 : _p.cost) != null ? { cost: response.usage.cost } : {}), ((_r = (_q = response.usage) == null ? void 0 : _q.prompt_tokens_details) == null ? void 0 : _r.cached_tokens) != null ? {
|
|
3279
3294
|
promptTokensDetails: {
|
|
3280
3295
|
cachedTokens: response.usage.prompt_tokens_details.cached_tokens
|
|
3281
3296
|
}
|
|
3282
|
-
} : {}), ((
|
|
3297
|
+
} : {}), ((_t = (_s = response.usage) == null ? void 0 : _s.completion_tokens_details) == null ? void 0 : _t.reasoning_tokens) != null ? {
|
|
3283
3298
|
completionTokensDetails: {
|
|
3284
3299
|
reasoningTokens: response.usage.completion_tokens_details.reasoning_tokens
|
|
3285
3300
|
}
|
|
3286
|
-
} : {}), ((
|
|
3301
|
+
} : {}), ((_v = (_u = response.usage) == null ? void 0 : _u.cost_details) == null ? void 0 : _v.upstream_inference_cost) != null ? {
|
|
3287
3302
|
costDetails: {
|
|
3288
3303
|
upstreamInferenceCost: response.usage.cost_details.upstream_inference_cost
|
|
3289
3304
|
}
|
|
@@ -3354,7 +3369,7 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3354
3369
|
stream: response.pipeThrough(
|
|
3355
3370
|
new TransformStream({
|
|
3356
3371
|
transform(chunk, controller) {
|
|
3357
|
-
var _a17, _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
|
|
3372
|
+
var _a17, _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;
|
|
3358
3373
|
if (options.includeRawChunks) {
|
|
3359
3374
|
controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
|
|
3360
3375
|
}
|
|
@@ -3386,30 +3401,29 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3386
3401
|
});
|
|
3387
3402
|
}
|
|
3388
3403
|
if (value.usage != null) {
|
|
3389
|
-
|
|
3390
|
-
usage.
|
|
3404
|
+
const computed = computeTokenUsage(value.usage);
|
|
3405
|
+
Object.assign(usage.inputTokens, computed.inputTokens);
|
|
3406
|
+
Object.assign(usage.outputTokens, computed.outputTokens);
|
|
3391
3407
|
rawUsage = value.usage;
|
|
3392
|
-
|
|
3408
|
+
const promptTokens = (_a17 = value.usage.prompt_tokens) != null ? _a17 : 0;
|
|
3409
|
+
const completionTokens = (_b16 = value.usage.completion_tokens) != null ? _b16 : 0;
|
|
3410
|
+
openrouterUsage.promptTokens = promptTokens;
|
|
3393
3411
|
if (value.usage.prompt_tokens_details) {
|
|
3394
|
-
const cachedInputTokens = (_a17 = value.usage.prompt_tokens_details.cached_tokens) != null ? _a17 : 0;
|
|
3395
|
-
usage.inputTokens.cacheRead = cachedInputTokens;
|
|
3396
3412
|
openrouterUsage.promptTokensDetails = {
|
|
3397
|
-
cachedTokens:
|
|
3413
|
+
cachedTokens: (_c = value.usage.prompt_tokens_details.cached_tokens) != null ? _c : 0
|
|
3398
3414
|
};
|
|
3399
3415
|
}
|
|
3400
|
-
openrouterUsage.completionTokens =
|
|
3416
|
+
openrouterUsage.completionTokens = completionTokens;
|
|
3401
3417
|
if (value.usage.completion_tokens_details) {
|
|
3402
|
-
const reasoningTokens = (_b16 = value.usage.completion_tokens_details.reasoning_tokens) != null ? _b16 : 0;
|
|
3403
|
-
usage.outputTokens.reasoning = reasoningTokens;
|
|
3404
3418
|
openrouterUsage.completionTokensDetails = {
|
|
3405
|
-
reasoningTokens
|
|
3419
|
+
reasoningTokens: (_d = value.usage.completion_tokens_details.reasoning_tokens) != null ? _d : 0
|
|
3406
3420
|
};
|
|
3407
3421
|
}
|
|
3408
3422
|
if (value.usage.cost != null) {
|
|
3409
3423
|
openrouterUsage.cost = value.usage.cost;
|
|
3410
3424
|
}
|
|
3411
3425
|
openrouterUsage.totalTokens = value.usage.total_tokens;
|
|
3412
|
-
const upstreamInferenceCost = (
|
|
3426
|
+
const upstreamInferenceCost = (_e = value.usage.cost_details) == null ? void 0 : _e.upstream_inference_cost;
|
|
3413
3427
|
if (upstreamInferenceCost != null) {
|
|
3414
3428
|
openrouterUsage.costDetails = {
|
|
3415
3429
|
upstreamInferenceCost
|
|
@@ -3529,12 +3543,12 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3529
3543
|
sourceType: "url",
|
|
3530
3544
|
id: annotation.url_citation.url,
|
|
3531
3545
|
url: annotation.url_citation.url,
|
|
3532
|
-
title: (
|
|
3546
|
+
title: (_f = annotation.url_citation.title) != null ? _f : "",
|
|
3533
3547
|
providerMetadata: {
|
|
3534
3548
|
openrouter: {
|
|
3535
|
-
content: (
|
|
3536
|
-
startIndex: (
|
|
3537
|
-
endIndex: (
|
|
3549
|
+
content: (_g = annotation.url_citation.content) != null ? _g : "",
|
|
3550
|
+
startIndex: (_h = annotation.url_citation.start_index) != null ? _h : 0,
|
|
3551
|
+
endIndex: (_i = annotation.url_citation.end_index) != null ? _i : 0
|
|
3538
3552
|
}
|
|
3539
3553
|
}
|
|
3540
3554
|
});
|
|
@@ -3550,7 +3564,7 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3550
3564
|
}
|
|
3551
3565
|
if (delta.tool_calls != null) {
|
|
3552
3566
|
for (const toolCallDelta of delta.tool_calls) {
|
|
3553
|
-
const index = (
|
|
3567
|
+
const index = (_j = toolCallDelta.index) != null ? _j : toolCalls.length - 1;
|
|
3554
3568
|
if (toolCalls[index] == null) {
|
|
3555
3569
|
if (toolCallDelta.type !== "function") {
|
|
3556
3570
|
throw new InvalidResponseDataError({
|
|
@@ -3564,7 +3578,7 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3564
3578
|
message: `Expected 'id' to be a string.`
|
|
3565
3579
|
});
|
|
3566
3580
|
}
|
|
3567
|
-
if (((
|
|
3581
|
+
if (((_k = toolCallDelta.function) == null ? void 0 : _k.name) == null) {
|
|
3568
3582
|
throw new InvalidResponseDataError({
|
|
3569
3583
|
data: toolCallDelta,
|
|
3570
3584
|
message: `Expected 'function.name' to be a string.`
|
|
@@ -3575,7 +3589,7 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3575
3589
|
type: "function",
|
|
3576
3590
|
function: {
|
|
3577
3591
|
name: toolCallDelta.function.name,
|
|
3578
|
-
arguments: (
|
|
3592
|
+
arguments: (_l = toolCallDelta.function.arguments) != null ? _l : ""
|
|
3579
3593
|
},
|
|
3580
3594
|
inputStarted: false,
|
|
3581
3595
|
sent: false
|
|
@@ -3587,7 +3601,7 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3587
3601
|
message: `Tool call at index ${index} is missing after creation.`
|
|
3588
3602
|
});
|
|
3589
3603
|
}
|
|
3590
|
-
if (((
|
|
3604
|
+
if (((_m = toolCall2.function) == null ? void 0 : _m.name) != null && ((_n = toolCall2.function) == null ? void 0 : _n.arguments) != null && isParsableJson(toolCall2.function.arguments)) {
|
|
3591
3605
|
toolCall2.inputStarted = true;
|
|
3592
3606
|
controller.enqueue({
|
|
3593
3607
|
type: "tool-input-start",
|
|
@@ -3638,18 +3652,18 @@ var OpenRouterChatLanguageModel = class {
|
|
|
3638
3652
|
toolName: toolCall.function.name
|
|
3639
3653
|
});
|
|
3640
3654
|
}
|
|
3641
|
-
if (((
|
|
3642
|
-
toolCall.function.arguments += (
|
|
3655
|
+
if (((_o = toolCallDelta.function) == null ? void 0 : _o.arguments) != null) {
|
|
3656
|
+
toolCall.function.arguments += (_q = (_p = toolCallDelta.function) == null ? void 0 : _p.arguments) != null ? _q : "";
|
|
3643
3657
|
}
|
|
3644
3658
|
controller.enqueue({
|
|
3645
3659
|
type: "tool-input-delta",
|
|
3646
3660
|
id: toolCall.id,
|
|
3647
|
-
delta: (
|
|
3661
|
+
delta: (_r = toolCallDelta.function.arguments) != null ? _r : ""
|
|
3648
3662
|
});
|
|
3649
|
-
if (((
|
|
3663
|
+
if (((_s = toolCall.function) == null ? void 0 : _s.name) != null && ((_t = toolCall.function) == null ? void 0 : _t.arguments) != null && isParsableJson(toolCall.function.arguments)) {
|
|
3650
3664
|
controller.enqueue({
|
|
3651
3665
|
type: "tool-call",
|
|
3652
|
-
toolCallId: (
|
|
3666
|
+
toolCallId: (_u = toolCall.id) != null ? _u : generateId(),
|
|
3653
3667
|
toolName: toolCall.function.name,
|
|
3654
3668
|
input: toolCall.function.arguments,
|
|
3655
3669
|
providerMetadata: !reasoningDetailsAttachedToToolCall ? {
|
|
@@ -3879,7 +3893,8 @@ var OpenRouterCompletionChunkSchema = import_v47.z.union([
|
|
|
3879
3893
|
usage: import_v47.z.object({
|
|
3880
3894
|
prompt_tokens: import_v47.z.number(),
|
|
3881
3895
|
prompt_tokens_details: import_v47.z.object({
|
|
3882
|
-
cached_tokens: import_v47.z.number()
|
|
3896
|
+
cached_tokens: import_v47.z.number(),
|
|
3897
|
+
cache_write_tokens: import_v47.z.number().nullish()
|
|
3883
3898
|
}).passthrough().nullish(),
|
|
3884
3899
|
completion_tokens: import_v47.z.number(),
|
|
3885
3900
|
completion_tokens_details: import_v47.z.object({
|
|
@@ -3969,7 +3984,7 @@ var OpenRouterCompletionLanguageModel = class {
|
|
|
3969
3984
|
}, this.config.extraBody), this.settings.extraBody);
|
|
3970
3985
|
}
|
|
3971
3986
|
async doGenerate(options) {
|
|
3972
|
-
var _a16, _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q
|
|
3987
|
+
var _a16, _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;
|
|
3973
3988
|
const providerOptions = options.providerOptions || {};
|
|
3974
3989
|
const openrouterOptions = providerOptions.openrouter || {};
|
|
3975
3990
|
const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions);
|
|
@@ -4015,37 +4030,24 @@ var OpenRouterCompletionLanguageModel = class {
|
|
|
4015
4030
|
}
|
|
4016
4031
|
],
|
|
4017
4032
|
finishReason: mapOpenRouterFinishReason(choice.finish_reason),
|
|
4018
|
-
usage:
|
|
4019
|
-
inputTokens: {
|
|
4020
|
-
total: (_c = (_b16 = response.usage) == null ? void 0 : _b16.prompt_tokens) != null ? _c : 0,
|
|
4021
|
-
noCache: void 0,
|
|
4022
|
-
cacheRead: (_f = (_e = (_d = response.usage) == null ? void 0 : _d.prompt_tokens_details) == null ? void 0 : _e.cached_tokens) != null ? _f : void 0,
|
|
4023
|
-
cacheWrite: void 0
|
|
4024
|
-
},
|
|
4025
|
-
outputTokens: {
|
|
4026
|
-
total: (_h = (_g = response.usage) == null ? void 0 : _g.completion_tokens) != null ? _h : 0,
|
|
4027
|
-
text: void 0,
|
|
4028
|
-
reasoning: (_k = (_j = (_i = response.usage) == null ? void 0 : _i.completion_tokens_details) == null ? void 0 : _j.reasoning_tokens) != null ? _k : void 0
|
|
4029
|
-
},
|
|
4030
|
-
raw: (_l = response.usage) != null ? _l : void 0
|
|
4031
|
-
},
|
|
4033
|
+
usage: response.usage ? computeTokenUsage(response.usage) : emptyUsage(),
|
|
4032
4034
|
warnings: [],
|
|
4033
4035
|
providerMetadata: {
|
|
4034
4036
|
openrouter: OpenRouterProviderMetadataSchema.parse({
|
|
4035
|
-
provider: (
|
|
4037
|
+
provider: (_b16 = response.provider) != null ? _b16 : "",
|
|
4036
4038
|
usage: __spreadValues(__spreadValues(__spreadValues(__spreadValues({
|
|
4037
|
-
promptTokens: (
|
|
4038
|
-
completionTokens: (
|
|
4039
|
-
totalTokens: ((
|
|
4040
|
-
}, ((
|
|
4039
|
+
promptTokens: (_d = (_c = response.usage) == null ? void 0 : _c.prompt_tokens) != null ? _d : 0,
|
|
4040
|
+
completionTokens: (_f = (_e = response.usage) == null ? void 0 : _e.completion_tokens) != null ? _f : 0,
|
|
4041
|
+
totalTokens: ((_h = (_g = response.usage) == null ? void 0 : _g.prompt_tokens) != null ? _h : 0) + ((_j = (_i = response.usage) == null ? void 0 : _i.completion_tokens) != null ? _j : 0)
|
|
4042
|
+
}, ((_k = response.usage) == null ? void 0 : _k.cost) != null ? { cost: response.usage.cost } : {}), ((_m = (_l = response.usage) == null ? void 0 : _l.prompt_tokens_details) == null ? void 0 : _m.cached_tokens) != null ? {
|
|
4041
4043
|
promptTokensDetails: {
|
|
4042
4044
|
cachedTokens: response.usage.prompt_tokens_details.cached_tokens
|
|
4043
4045
|
}
|
|
4044
|
-
} : {}), ((
|
|
4046
|
+
} : {}), ((_o = (_n = response.usage) == null ? void 0 : _n.completion_tokens_details) == null ? void 0 : _o.reasoning_tokens) != null ? {
|
|
4045
4047
|
completionTokensDetails: {
|
|
4046
4048
|
reasoningTokens: response.usage.completion_tokens_details.reasoning_tokens
|
|
4047
4049
|
}
|
|
4048
|
-
} : {}), ((
|
|
4050
|
+
} : {}), ((_q = (_p = response.usage) == null ? void 0 : _p.cost_details) == null ? void 0 : _q.upstream_inference_cost) != null ? {
|
|
4049
4051
|
costDetails: {
|
|
4050
4052
|
upstreamInferenceCost: response.usage.cost_details.upstream_inference_cost
|
|
4051
4053
|
}
|
|
@@ -4101,7 +4103,7 @@ var OpenRouterCompletionLanguageModel = class {
|
|
|
4101
4103
|
stream: response.pipeThrough(
|
|
4102
4104
|
new TransformStream({
|
|
4103
4105
|
transform(chunk, controller) {
|
|
4104
|
-
var _a16, _b16, _c;
|
|
4106
|
+
var _a16, _b16, _c, _d, _e;
|
|
4105
4107
|
if (options.includeRawChunks) {
|
|
4106
4108
|
controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
|
|
4107
4109
|
}
|
|
@@ -4120,30 +4122,29 @@ var OpenRouterCompletionLanguageModel = class {
|
|
|
4120
4122
|
provider = value.provider;
|
|
4121
4123
|
}
|
|
4122
4124
|
if (value.usage != null) {
|
|
4123
|
-
|
|
4124
|
-
usage.
|
|
4125
|
+
const computed = computeTokenUsage(value.usage);
|
|
4126
|
+
Object.assign(usage.inputTokens, computed.inputTokens);
|
|
4127
|
+
Object.assign(usage.outputTokens, computed.outputTokens);
|
|
4125
4128
|
rawUsage = value.usage;
|
|
4126
|
-
|
|
4129
|
+
const promptTokens = (_a16 = value.usage.prompt_tokens) != null ? _a16 : 0;
|
|
4130
|
+
const completionTokens = (_b16 = value.usage.completion_tokens) != null ? _b16 : 0;
|
|
4131
|
+
openrouterUsage.promptTokens = promptTokens;
|
|
4127
4132
|
if (value.usage.prompt_tokens_details) {
|
|
4128
|
-
const cachedInputTokens = (_a16 = value.usage.prompt_tokens_details.cached_tokens) != null ? _a16 : 0;
|
|
4129
|
-
usage.inputTokens.cacheRead = cachedInputTokens;
|
|
4130
4133
|
openrouterUsage.promptTokensDetails = {
|
|
4131
|
-
cachedTokens:
|
|
4134
|
+
cachedTokens: (_c = value.usage.prompt_tokens_details.cached_tokens) != null ? _c : 0
|
|
4132
4135
|
};
|
|
4133
4136
|
}
|
|
4134
|
-
openrouterUsage.completionTokens =
|
|
4137
|
+
openrouterUsage.completionTokens = completionTokens;
|
|
4135
4138
|
if (value.usage.completion_tokens_details) {
|
|
4136
|
-
const reasoningTokens = (_b16 = value.usage.completion_tokens_details.reasoning_tokens) != null ? _b16 : 0;
|
|
4137
|
-
usage.outputTokens.reasoning = reasoningTokens;
|
|
4138
4139
|
openrouterUsage.completionTokensDetails = {
|
|
4139
|
-
reasoningTokens
|
|
4140
|
+
reasoningTokens: (_d = value.usage.completion_tokens_details.reasoning_tokens) != null ? _d : 0
|
|
4140
4141
|
};
|
|
4141
4142
|
}
|
|
4142
4143
|
if (value.usage.cost != null) {
|
|
4143
4144
|
openrouterUsage.cost = value.usage.cost;
|
|
4144
4145
|
}
|
|
4145
4146
|
openrouterUsage.totalTokens = value.usage.total_tokens;
|
|
4146
|
-
const upstreamInferenceCost = (
|
|
4147
|
+
const upstreamInferenceCost = (_e = value.usage.cost_details) == null ? void 0 : _e.upstream_inference_cost;
|
|
4147
4148
|
if (upstreamInferenceCost != null) {
|
|
4148
4149
|
openrouterUsage.costDetails = {
|
|
4149
4150
|
upstreamInferenceCost
|