@dexto/core 1.6.16 → 1.6.17
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/agent/DextoAgent.cjs +21 -2
- package/dist/agent/DextoAgent.d.ts +1 -0
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +21 -2
- package/dist/agent/types.d.ts +7 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/context/manager.cjs +6 -1
- package/dist/context/manager.d.ts +3 -0
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +6 -1
- package/dist/context/types.d.ts +7 -1
- package/dist/context/types.d.ts.map +1 -1
- package/dist/events/index.d.ts +19 -17
- package/dist/events/index.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.cjs +63 -17
- package/dist/llm/executor/stream-processor.d.ts +2 -0
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +63 -17
- package/dist/llm/index.cjs +6 -0
- package/dist/llm/index.d.ts +3 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +3 -0
- package/dist/llm/registry/index.cjs +18 -6
- package/dist/llm/registry/index.d.ts +9 -0
- package/dist/llm/registry/index.d.ts.map +1 -1
- package/dist/llm/registry/index.js +17 -6
- package/dist/llm/services/types.d.ts +2 -0
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/types.cjs +3 -0
- package/dist/llm/types.d.ts +2 -0
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +2 -0
- package/dist/llm/usage-metadata.cjs +50 -0
- package/dist/llm/usage-metadata.d.ts +12 -0
- package/dist/llm/usage-metadata.d.ts.map +1 -0
- package/dist/llm/usage-metadata.js +26 -0
- package/dist/llm/usage-scope.cjs +38 -0
- package/dist/llm/usage-scope.d.ts +3 -0
- package/dist/llm/usage-scope.d.ts.map +1 -0
- package/dist/llm/usage-scope.js +14 -0
- package/dist/llm/usage-summary.cjs +112 -0
- package/dist/llm/usage-summary.d.ts +28 -0
- package/dist/llm/usage-summary.d.ts.map +1 -0
- package/dist/llm/usage-summary.js +86 -0
- package/dist/session/chat-session.cjs +21 -15
- package/dist/session/chat-session.d.ts +0 -1
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +21 -15
- package/dist/session/session-manager.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,8 @@ import "../../chunk-PTJYTZNU.js";
|
|
|
2
2
|
import { truncateToolResult } from "./tool-output-truncator.js";
|
|
3
3
|
import { sanitizeToolResult } from "../../context/utils.js";
|
|
4
4
|
import { DextoLogComponent } from "../../logger/v2/types.js";
|
|
5
|
+
import { getConfiguredUsageScopeId } from "../usage-scope.js";
|
|
6
|
+
import { getUsagePricingMetadata } from "../usage-metadata.js";
|
|
5
7
|
class StreamProcessor {
|
|
6
8
|
/**
|
|
7
9
|
* @param contextManager Context manager for message persistence
|
|
@@ -31,6 +33,7 @@ class StreamProcessor {
|
|
|
31
33
|
accumulatedText = "";
|
|
32
34
|
logger;
|
|
33
35
|
hasStepUsage = false;
|
|
36
|
+
usageScopeId = getConfiguredUsageScopeId();
|
|
34
37
|
/**
|
|
35
38
|
* Track pending tool calls (added to context but no result yet).
|
|
36
39
|
* On cancel/abort, we add synthetic "cancelled" results to maintain tool_use/tool_result pairing.
|
|
@@ -206,6 +209,7 @@ class StreamProcessor {
|
|
|
206
209
|
this.actualTokens = {
|
|
207
210
|
inputTokens: (this.actualTokens.inputTokens ?? 0) + (stepUsage.inputTokens ?? 0),
|
|
208
211
|
outputTokens: (this.actualTokens.outputTokens ?? 0) + (stepUsage.outputTokens ?? 0),
|
|
212
|
+
// TODO(token-usage): Use a shared totalTokens resolver instead of raw `?? 0`.
|
|
209
213
|
totalTokens: (this.actualTokens.totalTokens ?? 0) + (stepUsage.totalTokens ?? 0),
|
|
210
214
|
...stepUsage.reasoningTokens !== void 0 && {
|
|
211
215
|
reasoningTokens: (this.actualTokens.reasoningTokens ?? 0) + stepUsage.reasoningTokens
|
|
@@ -259,6 +263,11 @@ class StreamProcessor {
|
|
|
259
263
|
}
|
|
260
264
|
}
|
|
261
265
|
this.actualTokens = usage;
|
|
266
|
+
const pricingMetadata = getUsagePricingMetadata({
|
|
267
|
+
provider: this.config.provider,
|
|
268
|
+
model: this.config.model,
|
|
269
|
+
tokenUsage: usage
|
|
270
|
+
});
|
|
262
271
|
this.logger.info("LLM response complete", {
|
|
263
272
|
finishReason: event.finishReason,
|
|
264
273
|
contentLength: this.accumulatedText.length,
|
|
@@ -269,24 +278,13 @@ class StreamProcessor {
|
|
|
269
278
|
provider: this.config.provider,
|
|
270
279
|
model: this.config.model
|
|
271
280
|
});
|
|
272
|
-
|
|
273
|
-
await this.contextManager.updateAssistantMessage(
|
|
274
|
-
this.assistantMessageId,
|
|
275
|
-
{
|
|
276
|
-
tokenUsage: usage,
|
|
277
|
-
// Persist reasoning text and metadata for round-tripping
|
|
278
|
-
...this.reasoningText && { reasoning: this.reasoningText },
|
|
279
|
-
...this.reasoningMetadata && {
|
|
280
|
-
reasoningMetadata: this.reasoningMetadata
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
);
|
|
284
|
-
}
|
|
281
|
+
await this.persistAssistantResponseMetadata(usage, pricingMetadata);
|
|
285
282
|
const hasContent = this.accumulatedText || this.reasoningText;
|
|
286
283
|
if (this.finishReason !== "tool-calls" || hasContent) {
|
|
287
284
|
this.emitLLMResponse({
|
|
288
285
|
tokenUsage: usage,
|
|
289
|
-
finishReason: this.finishReason
|
|
286
|
+
finishReason: this.finishReason,
|
|
287
|
+
...pricingMetadata
|
|
290
288
|
});
|
|
291
289
|
}
|
|
292
290
|
break;
|
|
@@ -338,19 +336,30 @@ class StreamProcessor {
|
|
|
338
336
|
});
|
|
339
337
|
break;
|
|
340
338
|
}
|
|
341
|
-
case "abort":
|
|
339
|
+
case "abort": {
|
|
342
340
|
this.logger.debug("Stream aborted, emitting partial response");
|
|
343
341
|
this.finishReason = "cancelled";
|
|
344
342
|
await this.persistCancelledToolResults();
|
|
343
|
+
const abortPricingMetadata = getUsagePricingMetadata({
|
|
344
|
+
provider: this.config.provider,
|
|
345
|
+
model: this.config.model,
|
|
346
|
+
tokenUsage: this.actualTokens
|
|
347
|
+
});
|
|
348
|
+
await this.persistAssistantResponseMetadata(
|
|
349
|
+
this.actualTokens,
|
|
350
|
+
abortPricingMetadata
|
|
351
|
+
);
|
|
345
352
|
this.emitLLMResponse({
|
|
346
353
|
tokenUsage: this.actualTokens,
|
|
347
|
-
finishReason: "cancelled"
|
|
354
|
+
finishReason: "cancelled",
|
|
355
|
+
...abortPricingMetadata
|
|
348
356
|
});
|
|
349
357
|
return {
|
|
350
358
|
text: this.accumulatedText,
|
|
351
359
|
finishReason: "cancelled",
|
|
352
360
|
usage: this.actualTokens
|
|
353
361
|
};
|
|
362
|
+
}
|
|
354
363
|
}
|
|
355
364
|
}
|
|
356
365
|
} catch (error) {
|
|
@@ -359,9 +368,19 @@ class StreamProcessor {
|
|
|
359
368
|
this.logger.debug("Stream cancelled, emitting partial response");
|
|
360
369
|
this.finishReason = "cancelled";
|
|
361
370
|
await this.persistCancelledToolResults();
|
|
371
|
+
const abortPricingMetadata = getUsagePricingMetadata({
|
|
372
|
+
provider: this.config.provider,
|
|
373
|
+
model: this.config.model,
|
|
374
|
+
tokenUsage: this.actualTokens
|
|
375
|
+
});
|
|
376
|
+
await this.persistAssistantResponseMetadata(
|
|
377
|
+
this.actualTokens,
|
|
378
|
+
abortPricingMetadata
|
|
379
|
+
);
|
|
362
380
|
this.emitLLMResponse({
|
|
363
381
|
tokenUsage: this.actualTokens,
|
|
364
|
-
finishReason: "cancelled"
|
|
382
|
+
finishReason: "cancelled",
|
|
383
|
+
...abortPricingMetadata
|
|
365
384
|
});
|
|
366
385
|
return {
|
|
367
386
|
text: this.accumulatedText,
|
|
@@ -436,12 +455,39 @@ class StreamProcessor {
|
|
|
436
455
|
model: this.config.model,
|
|
437
456
|
...this.getReasoningResponseFields(),
|
|
438
457
|
tokenUsage: config.tokenUsage,
|
|
458
|
+
...this.assistantMessageId && { messageId: this.assistantMessageId },
|
|
459
|
+
...this.usageScopeId && { usageScopeId: this.usageScopeId },
|
|
460
|
+
...config.estimatedCost !== void 0 && {
|
|
461
|
+
estimatedCost: config.estimatedCost
|
|
462
|
+
},
|
|
463
|
+
...config.pricingStatus && { pricingStatus: config.pricingStatus },
|
|
439
464
|
...this.config.estimatedInputTokens !== void 0 && {
|
|
440
465
|
estimatedInputTokens: this.config.estimatedInputTokens
|
|
441
466
|
},
|
|
442
467
|
finishReason: config.finishReason
|
|
443
468
|
});
|
|
444
469
|
}
|
|
470
|
+
async persistAssistantResponseMetadata(tokenUsage, pricingMetadata) {
|
|
471
|
+
if (!this.assistantMessageId) {
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
474
|
+
await this.contextManager.updateAssistantMessage(this.assistantMessageId, {
|
|
475
|
+
tokenUsage,
|
|
476
|
+
...pricingMetadata.estimatedCost !== void 0 && {
|
|
477
|
+
estimatedCost: pricingMetadata.estimatedCost
|
|
478
|
+
},
|
|
479
|
+
...pricingMetadata.pricingStatus && {
|
|
480
|
+
pricingStatus: pricingMetadata.pricingStatus
|
|
481
|
+
},
|
|
482
|
+
...this.usageScopeId && {
|
|
483
|
+
usageScopeId: this.usageScopeId
|
|
484
|
+
},
|
|
485
|
+
...this.reasoningText && { reasoning: this.reasoningText },
|
|
486
|
+
...this.reasoningMetadata && {
|
|
487
|
+
reasoningMetadata: this.reasoningMetadata
|
|
488
|
+
}
|
|
489
|
+
});
|
|
490
|
+
}
|
|
445
491
|
mergeReasoningMetadata(providerMetadata) {
|
|
446
492
|
if (!this.reasoningMetadata) {
|
|
447
493
|
this.reasoningMetadata = providerMetadata;
|
package/dist/llm/index.cjs
CHANGED
|
@@ -45,6 +45,9 @@ __reExport(llm_exports, require("./registry/index.js"), module.exports);
|
|
|
45
45
|
__reExport(llm_exports, require("./curation.js"), module.exports);
|
|
46
46
|
__reExport(llm_exports, require("./validation.js"), module.exports);
|
|
47
47
|
__reExport(llm_exports, require("./types.js"), module.exports);
|
|
48
|
+
__reExport(llm_exports, require("./usage-metadata.js"), module.exports);
|
|
49
|
+
__reExport(llm_exports, require("./usage-scope.js"), module.exports);
|
|
50
|
+
__reExport(llm_exports, require("./usage-summary.js"), module.exports);
|
|
48
51
|
__reExport(llm_exports, require("./reasoning/profile.js"), module.exports);
|
|
49
52
|
__reExport(llm_exports, require("./services/index.js"), module.exports);
|
|
50
53
|
__reExport(llm_exports, require("./schemas.js"), module.exports);
|
|
@@ -79,6 +82,9 @@ __reExport(llm_exports, require("./providers/local/index.js"), module.exports);
|
|
|
79
82
|
...require("./curation.js"),
|
|
80
83
|
...require("./validation.js"),
|
|
81
84
|
...require("./types.js"),
|
|
85
|
+
...require("./usage-metadata.js"),
|
|
86
|
+
...require("./usage-scope.js"),
|
|
87
|
+
...require("./usage-summary.js"),
|
|
82
88
|
...require("./reasoning/profile.js"),
|
|
83
89
|
...require("./services/index.js"),
|
|
84
90
|
...require("./schemas.js"),
|
package/dist/llm/index.d.ts
CHANGED
|
@@ -4,6 +4,9 @@ export * from './registry/index.js';
|
|
|
4
4
|
export * from './curation.js';
|
|
5
5
|
export * from './validation.js';
|
|
6
6
|
export * from './types.js';
|
|
7
|
+
export * from './usage-metadata.js';
|
|
8
|
+
export * from './usage-scope.js';
|
|
9
|
+
export * from './usage-summary.js';
|
|
7
10
|
export * from './reasoning/profile.js';
|
|
8
11
|
export * from './services/index.js';
|
|
9
12
|
export * from './schemas.js';
|
package/dist/llm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,OAAO,EACH,iCAAiC,EACjC,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GAC3B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,KAAK,aAAa,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,2BAA2B,EAChC,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC9B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACH,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,8BAA8B,EAC9B,KAAK,2BAA2B,GACnC,MAAM,2BAA2B,CAAC;AAGnC,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,OAAO,EACH,iCAAiC,EACjC,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GAC3B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,KAAK,aAAa,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,2BAA2B,EAChC,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC9B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACH,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,8BAA8B,EAC9B,KAAK,2BAA2B,GACnC,MAAM,2BAA2B,CAAC;AAGnC,cAAc,4BAA4B,CAAC"}
|
package/dist/llm/index.js
CHANGED
|
@@ -5,6 +5,9 @@ export * from "./registry/index.js";
|
|
|
5
5
|
export * from "./curation.js";
|
|
6
6
|
export * from "./validation.js";
|
|
7
7
|
export * from "./types.js";
|
|
8
|
+
export * from "./usage-metadata.js";
|
|
9
|
+
export * from "./usage-scope.js";
|
|
10
|
+
export * from "./usage-summary.js";
|
|
8
11
|
export * from "./reasoning/profile.js";
|
|
9
12
|
export * from "./services/index.js";
|
|
10
13
|
export * from "./schemas.js";
|
|
@@ -23,6 +23,7 @@ __export(registry_exports, {
|
|
|
23
23
|
MIME_TYPE_TO_FILE_TYPE: () => MIME_TYPE_TO_FILE_TYPE,
|
|
24
24
|
acceptsAnyModel: () => acceptsAnyModel,
|
|
25
25
|
calculateCost: () => calculateCost,
|
|
26
|
+
calculateCostBreakdown: () => calculateCostBreakdown,
|
|
26
27
|
getAllModelsForProvider: () => getAllModelsForProvider,
|
|
27
28
|
getAllSupportedModels: () => getAllSupportedModels,
|
|
28
29
|
getAllowedMimeTypes: () => getAllowedMimeTypes,
|
|
@@ -864,12 +865,22 @@ function isReasoningCapableModel(model, provider) {
|
|
|
864
865
|
return false;
|
|
865
866
|
}
|
|
866
867
|
function calculateCost(usage, pricing) {
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
const
|
|
871
|
-
const
|
|
872
|
-
|
|
868
|
+
return calculateCostBreakdown(usage, pricing).totalUsd;
|
|
869
|
+
}
|
|
870
|
+
function calculateCostBreakdown(usage, pricing) {
|
|
871
|
+
const inputUsd = (usage.inputTokens ?? 0) * pricing.inputPerM / 1e6;
|
|
872
|
+
const outputUsd = (usage.outputTokens ?? 0) * pricing.outputPerM / 1e6;
|
|
873
|
+
const cacheReadUsd = (usage.cacheReadTokens ?? 0) * (pricing.cacheReadPerM ?? 0) / 1e6;
|
|
874
|
+
const cacheWriteUsd = (usage.cacheWriteTokens ?? 0) * (pricing.cacheWritePerM ?? 0) / 1e6;
|
|
875
|
+
const reasoningUsd = (usage.reasoningTokens ?? 0) * (pricing.reasoningPerM ?? pricing.outputPerM) / 1e6;
|
|
876
|
+
return {
|
|
877
|
+
inputUsd,
|
|
878
|
+
outputUsd,
|
|
879
|
+
reasoningUsd,
|
|
880
|
+
cacheReadUsd,
|
|
881
|
+
cacheWriteUsd,
|
|
882
|
+
totalUsd: inputUsd + outputUsd + cacheReadUsd + cacheWriteUsd + reasoningUsd
|
|
883
|
+
};
|
|
873
884
|
}
|
|
874
885
|
// Annotate the CommonJS export names for ESM import in node:
|
|
875
886
|
0 && (module.exports = {
|
|
@@ -878,6 +889,7 @@ function calculateCost(usage, pricing) {
|
|
|
878
889
|
MIME_TYPE_TO_FILE_TYPE,
|
|
879
890
|
acceptsAnyModel,
|
|
880
891
|
calculateCost,
|
|
892
|
+
calculateCostBreakdown,
|
|
881
893
|
getAllModelsForProvider,
|
|
882
894
|
getAllSupportedModels,
|
|
883
895
|
getAllowedMimeTypes,
|
|
@@ -34,6 +34,14 @@ export interface ModelPricing {
|
|
|
34
34
|
currency?: 'USD';
|
|
35
35
|
unit?: 'per_million_tokens';
|
|
36
36
|
}
|
|
37
|
+
export interface TokenUsageCostBreakdown {
|
|
38
|
+
inputUsd: number;
|
|
39
|
+
outputUsd: number;
|
|
40
|
+
reasoningUsd: number;
|
|
41
|
+
cacheReadUsd: number;
|
|
42
|
+
cacheWriteUsd: number;
|
|
43
|
+
totalUsd: number;
|
|
44
|
+
}
|
|
37
45
|
export type ModelModality = 'text' | 'audio' | 'image' | 'video' | 'pdf';
|
|
38
46
|
export interface ModelModalities {
|
|
39
47
|
input: ModelModality[];
|
|
@@ -320,4 +328,5 @@ export declare function isReasoningCapableModel(model: string, provider?: LLMPro
|
|
|
320
328
|
* @returns Cost in USD.
|
|
321
329
|
*/
|
|
322
330
|
export declare function calculateCost(usage: TokenUsage, pricing: ModelPricing): number;
|
|
331
|
+
export declare function calculateCostBreakdown(usage: TokenUsage, pricing: ModelPricing): TokenUsageCostBreakdown;
|
|
323
332
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/llm/registry/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/llm/registry/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -823,12 +823,22 @@ function isReasoningCapableModel(model, provider) {
|
|
|
823
823
|
return false;
|
|
824
824
|
}
|
|
825
825
|
function calculateCost(usage, pricing) {
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
const
|
|
830
|
-
const
|
|
831
|
-
|
|
826
|
+
return calculateCostBreakdown(usage, pricing).totalUsd;
|
|
827
|
+
}
|
|
828
|
+
function calculateCostBreakdown(usage, pricing) {
|
|
829
|
+
const inputUsd = (usage.inputTokens ?? 0) * pricing.inputPerM / 1e6;
|
|
830
|
+
const outputUsd = (usage.outputTokens ?? 0) * pricing.outputPerM / 1e6;
|
|
831
|
+
const cacheReadUsd = (usage.cacheReadTokens ?? 0) * (pricing.cacheReadPerM ?? 0) / 1e6;
|
|
832
|
+
const cacheWriteUsd = (usage.cacheWriteTokens ?? 0) * (pricing.cacheWritePerM ?? 0) / 1e6;
|
|
833
|
+
const reasoningUsd = (usage.reasoningTokens ?? 0) * (pricing.reasoningPerM ?? pricing.outputPerM) / 1e6;
|
|
834
|
+
return {
|
|
835
|
+
inputUsd,
|
|
836
|
+
outputUsd,
|
|
837
|
+
reasoningUsd,
|
|
838
|
+
cacheReadUsd,
|
|
839
|
+
cacheWriteUsd,
|
|
840
|
+
totalUsd: inputUsd + outputUsd + cacheReadUsd + cacheWriteUsd + reasoningUsd
|
|
841
|
+
};
|
|
832
842
|
}
|
|
833
843
|
export {
|
|
834
844
|
DEFAULT_MAX_INPUT_TOKENS,
|
|
@@ -836,6 +846,7 @@ export {
|
|
|
836
846
|
MIME_TYPE_TO_FILE_TYPE,
|
|
837
847
|
acceptsAnyModel,
|
|
838
848
|
calculateCost,
|
|
849
|
+
calculateCostBreakdown,
|
|
839
850
|
getAllModelsForProvider,
|
|
840
851
|
getAllSupportedModels,
|
|
841
852
|
getAllowedMimeTypes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/llm/services/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/llm/services/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
package/dist/llm/types.cjs
CHANGED
|
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var types_exports = {};
|
|
20
20
|
__export(types_exports, {
|
|
21
|
+
LLM_PRICING_STATUSES: () => LLM_PRICING_STATUSES,
|
|
21
22
|
LLM_PROVIDERS: () => LLM_PROVIDERS,
|
|
22
23
|
SUPPORTED_FILE_TYPES: () => SUPPORTED_FILE_TYPES
|
|
23
24
|
});
|
|
@@ -44,9 +45,11 @@ const LLM_PROVIDERS = [
|
|
|
44
45
|
"dexto-nova"
|
|
45
46
|
// Dexto gateway - routes through api.dexto.ai/v1 with billing
|
|
46
47
|
];
|
|
48
|
+
const LLM_PRICING_STATUSES = ["estimated", "unpriced"];
|
|
47
49
|
const SUPPORTED_FILE_TYPES = ["pdf", "image", "audio"];
|
|
48
50
|
// Annotate the CommonJS export names for ESM import in node:
|
|
49
51
|
0 && (module.exports = {
|
|
52
|
+
LLM_PRICING_STATUSES,
|
|
50
53
|
LLM_PROVIDERS,
|
|
51
54
|
SUPPORTED_FILE_TYPES
|
|
52
55
|
});
|
package/dist/llm/types.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export declare const LLM_PROVIDERS: readonly ["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere", "minimax", "glm", "openrouter", "litellm", "glama", "vertex", "bedrock", "local", "ollama", "dexto-nova"];
|
|
2
2
|
export type LLMProvider = (typeof LLM_PROVIDERS)[number];
|
|
3
|
+
export declare const LLM_PRICING_STATUSES: readonly ["estimated", "unpriced"];
|
|
4
|
+
export type LLMPricingStatus = (typeof LLM_PRICING_STATUSES)[number];
|
|
3
5
|
export declare const SUPPORTED_FILE_TYPES: readonly ["pdf", "image", "audio"];
|
|
4
6
|
export type SupportedFileType = (typeof SUPPORTED_FILE_TYPES)[number];
|
|
5
7
|
export type ReasoningVariant = string;
|
package/dist/llm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,oMAkBhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,oBAAoB,oCAAqC,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAItE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,gBAAgB,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACvB,mDAAmD;IACnD,QAAQ,EAAE,WAAW,CAAC;IAEtB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,oMAkBhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,oBAAoB,oCAAqC,CAAC;AACvE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,eAAO,MAAM,oBAAoB,oCAAqC,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAItE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,gBAAgB,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACvB,mDAAmD;IACnD,QAAQ,EAAE,WAAW,CAAC;IAEtB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
package/dist/llm/types.js
CHANGED
|
@@ -21,8 +21,10 @@ const LLM_PROVIDERS = [
|
|
|
21
21
|
"dexto-nova"
|
|
22
22
|
// Dexto gateway - routes through api.dexto.ai/v1 with billing
|
|
23
23
|
];
|
|
24
|
+
const LLM_PRICING_STATUSES = ["estimated", "unpriced"];
|
|
24
25
|
const SUPPORTED_FILE_TYPES = ["pdf", "image", "audio"];
|
|
25
26
|
export {
|
|
27
|
+
LLM_PRICING_STATUSES,
|
|
26
28
|
LLM_PROVIDERS,
|
|
27
29
|
SUPPORTED_FILE_TYPES
|
|
28
30
|
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var usage_metadata_exports = {};
|
|
20
|
+
__export(usage_metadata_exports, {
|
|
21
|
+
getUsagePricingMetadata: () => getUsagePricingMetadata,
|
|
22
|
+
hasMeaningfulTokenUsage: () => hasMeaningfulTokenUsage
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(usage_metadata_exports);
|
|
25
|
+
var import_registry = require("./registry/index.js");
|
|
26
|
+
function hasMeaningfulTokenUsage(tokenUsage) {
|
|
27
|
+
if (!tokenUsage) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return (tokenUsage.inputTokens ?? 0) > 0 || (tokenUsage.outputTokens ?? 0) > 0 || (tokenUsage.reasoningTokens ?? 0) > 0 || (tokenUsage.cacheReadTokens ?? 0) > 0 || (tokenUsage.cacheWriteTokens ?? 0) > 0 || (tokenUsage.totalTokens ?? 0) > 0;
|
|
31
|
+
}
|
|
32
|
+
function getUsagePricingMetadata(config) {
|
|
33
|
+
const { provider, model, tokenUsage } = config;
|
|
34
|
+
if (!provider || !model || !tokenUsage || !hasMeaningfulTokenUsage(tokenUsage)) {
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
const pricing = (0, import_registry.getModelPricing)(provider, model);
|
|
38
|
+
if (!pricing) {
|
|
39
|
+
return { pricingStatus: "unpriced" };
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
estimatedCost: (0, import_registry.calculateCost)(tokenUsage, pricing),
|
|
43
|
+
pricingStatus: "estimated"
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
47
|
+
0 && (module.exports = {
|
|
48
|
+
getUsagePricingMetadata,
|
|
49
|
+
hasMeaningfulTokenUsage
|
|
50
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { LLMProvider, LLMPricingStatus, TokenUsage } from './types.js';
|
|
2
|
+
export interface LLMUsagePricingMetadata {
|
|
3
|
+
estimatedCost?: number;
|
|
4
|
+
pricingStatus?: LLMPricingStatus;
|
|
5
|
+
}
|
|
6
|
+
export declare function hasMeaningfulTokenUsage(tokenUsage: TokenUsage | undefined): boolean;
|
|
7
|
+
export declare function getUsagePricingMetadata(config: {
|
|
8
|
+
provider?: LLMProvider;
|
|
9
|
+
model?: string;
|
|
10
|
+
tokenUsage?: TokenUsage;
|
|
11
|
+
}): LLMUsagePricingMetadata;
|
|
12
|
+
//# sourceMappingURL=usage-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-metadata.d.ts","sourceRoot":"","sources":["../../src/llm/usage-metadata.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,WAAW,uBAAuB;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAanF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC5C,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;CAC3B,GAAG,uBAAuB,CAmB1B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
|
+
import { calculateCost, getModelPricing } from "./registry/index.js";
|
|
3
|
+
function hasMeaningfulTokenUsage(tokenUsage) {
|
|
4
|
+
if (!tokenUsage) {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
return (tokenUsage.inputTokens ?? 0) > 0 || (tokenUsage.outputTokens ?? 0) > 0 || (tokenUsage.reasoningTokens ?? 0) > 0 || (tokenUsage.cacheReadTokens ?? 0) > 0 || (tokenUsage.cacheWriteTokens ?? 0) > 0 || (tokenUsage.totalTokens ?? 0) > 0;
|
|
8
|
+
}
|
|
9
|
+
function getUsagePricingMetadata(config) {
|
|
10
|
+
const { provider, model, tokenUsage } = config;
|
|
11
|
+
if (!provider || !model || !tokenUsage || !hasMeaningfulTokenUsage(tokenUsage)) {
|
|
12
|
+
return {};
|
|
13
|
+
}
|
|
14
|
+
const pricing = getModelPricing(provider, model);
|
|
15
|
+
if (!pricing) {
|
|
16
|
+
return { pricingStatus: "unpriced" };
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
estimatedCost: calculateCost(tokenUsage, pricing),
|
|
20
|
+
pricingStatus: "estimated"
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
getUsagePricingMetadata,
|
|
25
|
+
hasMeaningfulTokenUsage
|
|
26
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var usage_scope_exports = {};
|
|
20
|
+
__export(usage_scope_exports, {
|
|
21
|
+
DEXTO_USAGE_SCOPE_ID_ENV: () => DEXTO_USAGE_SCOPE_ID_ENV,
|
|
22
|
+
getConfiguredUsageScopeId: () => getConfiguredUsageScopeId
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(usage_scope_exports);
|
|
25
|
+
const DEXTO_USAGE_SCOPE_ID_ENV = "DEXTO_USAGE_SCOPE_ID";
|
|
26
|
+
function getConfiguredUsageScopeId() {
|
|
27
|
+
const value = process.env[DEXTO_USAGE_SCOPE_ID_ENV];
|
|
28
|
+
if (!value) {
|
|
29
|
+
return void 0;
|
|
30
|
+
}
|
|
31
|
+
const trimmedValue = value.trim();
|
|
32
|
+
return trimmedValue.length > 0 ? trimmedValue : void 0;
|
|
33
|
+
}
|
|
34
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
35
|
+
0 && (module.exports = {
|
|
36
|
+
DEXTO_USAGE_SCOPE_ID_ENV,
|
|
37
|
+
getConfiguredUsageScopeId
|
|
38
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-scope.d.ts","sourceRoot":"","sources":["../../src/llm/usage-scope.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,SAAS,CAQ9D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
|
+
const DEXTO_USAGE_SCOPE_ID_ENV = "DEXTO_USAGE_SCOPE_ID";
|
|
3
|
+
function getConfiguredUsageScopeId() {
|
|
4
|
+
const value = process.env[DEXTO_USAGE_SCOPE_ID_ENV];
|
|
5
|
+
if (!value) {
|
|
6
|
+
return void 0;
|
|
7
|
+
}
|
|
8
|
+
const trimmedValue = value.trim();
|
|
9
|
+
return trimmedValue.length > 0 ? trimmedValue : void 0;
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
DEXTO_USAGE_SCOPE_ID_ENV,
|
|
13
|
+
getConfiguredUsageScopeId
|
|
14
|
+
};
|