@yourgpt/llm-sdk 2.5.1-beta.3 → 2.5.1-beta.5
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/adapters/index.js +23 -10
- package/dist/adapters/index.mjs +23 -10
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +25 -4
- package/dist/index.mjs +25 -4
- package/dist/providers/anthropic/index.js +34 -5
- package/dist/providers/anthropic/index.mjs +34 -5
- package/dist/providers/azure/index.js +5 -0
- package/dist/providers/azure/index.mjs +5 -0
- package/package.json +1 -1
package/dist/adapters/index.js
CHANGED
|
@@ -213,6 +213,12 @@ function toGeminiSchema(rf) {
|
|
|
213
213
|
GEMINI_UNSUPPORTED_KEYS
|
|
214
214
|
);
|
|
215
215
|
}
|
|
216
|
+
function parameterToGeminiSchema(param) {
|
|
217
|
+
return stripSchemaKeys(
|
|
218
|
+
parameterToJsonSchema(param),
|
|
219
|
+
GEMINI_UNSUPPORTED_KEYS
|
|
220
|
+
);
|
|
221
|
+
}
|
|
216
222
|
function toOllamaFormat(rf) {
|
|
217
223
|
if (!rf) return void 0;
|
|
218
224
|
if (rf.type === "json_object") return "json";
|
|
@@ -1188,11 +1194,7 @@ var AnthropicAdapter = class {
|
|
|
1188
1194
|
properties: action.parameters ? Object.fromEntries(
|
|
1189
1195
|
Object.entries(action.parameters).map(([key, param]) => [
|
|
1190
1196
|
key,
|
|
1191
|
-
|
|
1192
|
-
type: param.type,
|
|
1193
|
-
description: param.description,
|
|
1194
|
-
enum: param.enum
|
|
1195
|
-
}
|
|
1197
|
+
parameterToJsonSchema(param)
|
|
1196
1198
|
])
|
|
1197
1199
|
) : {},
|
|
1198
1200
|
required: action.parameters ? Object.entries(action.parameters).filter(([, param]) => param.required).map(([key]) => key) : []
|
|
@@ -1305,6 +1307,11 @@ var AnthropicAdapter = class {
|
|
|
1305
1307
|
content,
|
|
1306
1308
|
toolCalls,
|
|
1307
1309
|
thinking: thinking || void 0,
|
|
1310
|
+
usage: response.usage ? {
|
|
1311
|
+
promptTokens: response.usage.input_tokens ?? 0,
|
|
1312
|
+
completionTokens: response.usage.output_tokens ?? 0,
|
|
1313
|
+
totalTokens: (response.usage.input_tokens ?? 0) + (response.usage.output_tokens ?? 0)
|
|
1314
|
+
} : void 0,
|
|
1308
1315
|
rawResponse: response
|
|
1309
1316
|
};
|
|
1310
1317
|
} catch (error) {
|
|
@@ -1823,11 +1830,7 @@ function formatToolsForGemini(actions) {
|
|
|
1823
1830
|
properties: Object.fromEntries(
|
|
1824
1831
|
Object.entries(action.parameters).map(([key, param]) => [
|
|
1825
1832
|
key,
|
|
1826
|
-
|
|
1827
|
-
type: param.type,
|
|
1828
|
-
description: param.description,
|
|
1829
|
-
enum: param.enum
|
|
1830
|
-
}
|
|
1833
|
+
parameterToGeminiSchema(param)
|
|
1831
1834
|
])
|
|
1832
1835
|
),
|
|
1833
1836
|
required: Object.entries(action.parameters).filter(([, param]) => param.required).map(([key]) => key)
|
|
@@ -2163,6 +2166,11 @@ var GoogleAdapter = class {
|
|
|
2163
2166
|
return {
|
|
2164
2167
|
content: textContent,
|
|
2165
2168
|
toolCalls,
|
|
2169
|
+
usage: response.usageMetadata ? {
|
|
2170
|
+
promptTokens: response.usageMetadata.promptTokenCount ?? 0,
|
|
2171
|
+
completionTokens: (response.usageMetadata.candidatesTokenCount ?? 0) + (response.usageMetadata.thoughtsTokenCount ?? 0),
|
|
2172
|
+
totalTokens: response.usageMetadata.totalTokenCount ?? 0
|
|
2173
|
+
} : void 0,
|
|
2166
2174
|
rawResponse: response
|
|
2167
2175
|
};
|
|
2168
2176
|
}
|
|
@@ -2391,6 +2399,11 @@ var AzureAdapter = class {
|
|
|
2391
2399
|
return {
|
|
2392
2400
|
content: message?.content || "",
|
|
2393
2401
|
toolCalls,
|
|
2402
|
+
usage: response.usage ? {
|
|
2403
|
+
promptTokens: response.usage.prompt_tokens ?? 0,
|
|
2404
|
+
completionTokens: response.usage.completion_tokens ?? 0,
|
|
2405
|
+
totalTokens: response.usage.total_tokens ?? (response.usage.prompt_tokens ?? 0) + (response.usage.completion_tokens ?? 0)
|
|
2406
|
+
} : void 0,
|
|
2394
2407
|
rawResponse: response
|
|
2395
2408
|
};
|
|
2396
2409
|
}
|
package/dist/adapters/index.mjs
CHANGED
|
@@ -211,6 +211,12 @@ function toGeminiSchema(rf) {
|
|
|
211
211
|
GEMINI_UNSUPPORTED_KEYS
|
|
212
212
|
);
|
|
213
213
|
}
|
|
214
|
+
function parameterToGeminiSchema(param) {
|
|
215
|
+
return stripSchemaKeys(
|
|
216
|
+
parameterToJsonSchema(param),
|
|
217
|
+
GEMINI_UNSUPPORTED_KEYS
|
|
218
|
+
);
|
|
219
|
+
}
|
|
214
220
|
function toOllamaFormat(rf) {
|
|
215
221
|
if (!rf) return void 0;
|
|
216
222
|
if (rf.type === "json_object") return "json";
|
|
@@ -1186,11 +1192,7 @@ var AnthropicAdapter = class {
|
|
|
1186
1192
|
properties: action.parameters ? Object.fromEntries(
|
|
1187
1193
|
Object.entries(action.parameters).map(([key, param]) => [
|
|
1188
1194
|
key,
|
|
1189
|
-
|
|
1190
|
-
type: param.type,
|
|
1191
|
-
description: param.description,
|
|
1192
|
-
enum: param.enum
|
|
1193
|
-
}
|
|
1195
|
+
parameterToJsonSchema(param)
|
|
1194
1196
|
])
|
|
1195
1197
|
) : {},
|
|
1196
1198
|
required: action.parameters ? Object.entries(action.parameters).filter(([, param]) => param.required).map(([key]) => key) : []
|
|
@@ -1303,6 +1305,11 @@ var AnthropicAdapter = class {
|
|
|
1303
1305
|
content,
|
|
1304
1306
|
toolCalls,
|
|
1305
1307
|
thinking: thinking || void 0,
|
|
1308
|
+
usage: response.usage ? {
|
|
1309
|
+
promptTokens: response.usage.input_tokens ?? 0,
|
|
1310
|
+
completionTokens: response.usage.output_tokens ?? 0,
|
|
1311
|
+
totalTokens: (response.usage.input_tokens ?? 0) + (response.usage.output_tokens ?? 0)
|
|
1312
|
+
} : void 0,
|
|
1306
1313
|
rawResponse: response
|
|
1307
1314
|
};
|
|
1308
1315
|
} catch (error) {
|
|
@@ -1821,11 +1828,7 @@ function formatToolsForGemini(actions) {
|
|
|
1821
1828
|
properties: Object.fromEntries(
|
|
1822
1829
|
Object.entries(action.parameters).map(([key, param]) => [
|
|
1823
1830
|
key,
|
|
1824
|
-
|
|
1825
|
-
type: param.type,
|
|
1826
|
-
description: param.description,
|
|
1827
|
-
enum: param.enum
|
|
1828
|
-
}
|
|
1831
|
+
parameterToGeminiSchema(param)
|
|
1829
1832
|
])
|
|
1830
1833
|
),
|
|
1831
1834
|
required: Object.entries(action.parameters).filter(([, param]) => param.required).map(([key]) => key)
|
|
@@ -2161,6 +2164,11 @@ var GoogleAdapter = class {
|
|
|
2161
2164
|
return {
|
|
2162
2165
|
content: textContent,
|
|
2163
2166
|
toolCalls,
|
|
2167
|
+
usage: response.usageMetadata ? {
|
|
2168
|
+
promptTokens: response.usageMetadata.promptTokenCount ?? 0,
|
|
2169
|
+
completionTokens: (response.usageMetadata.candidatesTokenCount ?? 0) + (response.usageMetadata.thoughtsTokenCount ?? 0),
|
|
2170
|
+
totalTokens: response.usageMetadata.totalTokenCount ?? 0
|
|
2171
|
+
} : void 0,
|
|
2164
2172
|
rawResponse: response
|
|
2165
2173
|
};
|
|
2166
2174
|
}
|
|
@@ -2389,6 +2397,11 @@ var AzureAdapter = class {
|
|
|
2389
2397
|
return {
|
|
2390
2398
|
content: message?.content || "",
|
|
2391
2399
|
toolCalls,
|
|
2400
|
+
usage: response.usage ? {
|
|
2401
|
+
promptTokens: response.usage.prompt_tokens ?? 0,
|
|
2402
|
+
completionTokens: response.usage.completion_tokens ?? 0,
|
|
2403
|
+
totalTokens: response.usage.total_tokens ?? (response.usage.prompt_tokens ?? 0) + (response.usage.completion_tokens ?? 0)
|
|
2404
|
+
} : void 0,
|
|
2392
2405
|
rawResponse: response
|
|
2393
2406
|
};
|
|
2394
2407
|
}
|
package/dist/index.d.mts
CHANGED
|
@@ -1001,7 +1001,7 @@ declare class Runtime {
|
|
|
1001
1001
|
* 5. Loop continues until no more tool calls or max iterations reached
|
|
1002
1002
|
* 6. Returns all new messages in the done event for client to append
|
|
1003
1003
|
*/
|
|
1004
|
-
processChatWithLoop(request: ChatRequest, signal?: AbortSignal, _accumulatedMessages?: DoneEventMessage[], _isRecursive?: boolean, _httpRequest?: Request, _toolSearchState?: ToolSearchState): AsyncGenerator<StreamEvent>;
|
|
1004
|
+
processChatWithLoop(request: ChatRequest, signal?: AbortSignal, _accumulatedMessages?: DoneEventMessage[], _isRecursive?: boolean, _httpRequest?: Request, _toolSearchState?: ToolSearchState, _iteration?: number): AsyncGenerator<StreamEvent>;
|
|
1005
1005
|
/**
|
|
1006
1006
|
* Non-streaming agent loop implementation
|
|
1007
1007
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -1001,7 +1001,7 @@ declare class Runtime {
|
|
|
1001
1001
|
* 5. Loop continues until no more tool calls or max iterations reached
|
|
1002
1002
|
* 6. Returns all new messages in the done event for client to append
|
|
1003
1003
|
*/
|
|
1004
|
-
processChatWithLoop(request: ChatRequest, signal?: AbortSignal, _accumulatedMessages?: DoneEventMessage[], _isRecursive?: boolean, _httpRequest?: Request, _toolSearchState?: ToolSearchState): AsyncGenerator<StreamEvent>;
|
|
1004
|
+
processChatWithLoop(request: ChatRequest, signal?: AbortSignal, _accumulatedMessages?: DoneEventMessage[], _isRecursive?: boolean, _httpRequest?: Request, _toolSearchState?: ToolSearchState, _iteration?: number): AsyncGenerator<StreamEvent>;
|
|
1005
1005
|
/**
|
|
1006
1006
|
* Non-streaming agent loop implementation
|
|
1007
1007
|
*
|
package/dist/index.js
CHANGED
|
@@ -2112,7 +2112,7 @@ var Runtime = class {
|
|
|
2112
2112
|
* 5. Loop continues until no more tool calls or max iterations reached
|
|
2113
2113
|
* 6. Returns all new messages in the done event for client to append
|
|
2114
2114
|
*/
|
|
2115
|
-
async *processChatWithLoop(request, signal, _accumulatedMessages, _isRecursive, _httpRequest, _toolSearchState) {
|
|
2115
|
+
async *processChatWithLoop(request, signal, _accumulatedMessages, _isRecursive, _httpRequest, _toolSearchState, _iteration = 0) {
|
|
2116
2116
|
const debug = this.config.debug;
|
|
2117
2117
|
if (request.streaming === false) {
|
|
2118
2118
|
if (debug) {
|
|
@@ -2131,7 +2131,25 @@ var Runtime = class {
|
|
|
2131
2131
|
return;
|
|
2132
2132
|
}
|
|
2133
2133
|
const newMessages = _accumulatedMessages || [];
|
|
2134
|
-
this.config.maxIterations ?? 20;
|
|
2134
|
+
const maxIterations = this.config.maxIterations ?? 20;
|
|
2135
|
+
if (signal?.aborted) {
|
|
2136
|
+
yield {
|
|
2137
|
+
type: "error",
|
|
2138
|
+
message: "Aborted",
|
|
2139
|
+
code: "ABORTED"
|
|
2140
|
+
};
|
|
2141
|
+
return;
|
|
2142
|
+
}
|
|
2143
|
+
if (_iteration >= maxIterations) {
|
|
2144
|
+
if (debug) {
|
|
2145
|
+
console.log(`[Copilot SDK] Max iterations (${maxIterations}) reached`);
|
|
2146
|
+
}
|
|
2147
|
+
yield {
|
|
2148
|
+
type: "done",
|
|
2149
|
+
messages: newMessages.length > 0 ? newMessages : void 0
|
|
2150
|
+
};
|
|
2151
|
+
return;
|
|
2152
|
+
}
|
|
2135
2153
|
const allTools = this.collectToolsForRequest(request);
|
|
2136
2154
|
const nativeToolSearch = this.resolveNativeToolSearchForRequest(request);
|
|
2137
2155
|
const nativeToolCatalog = nativeToolSearch ? this.buildNativeToolCatalogForRequest(request, allTools) : null;
|
|
@@ -2393,7 +2411,8 @@ var Runtime = class {
|
|
|
2393
2411
|
true,
|
|
2394
2412
|
// Mark as recursive
|
|
2395
2413
|
_httpRequest,
|
|
2396
|
-
nextToolSearchState
|
|
2414
|
+
nextToolSearchState,
|
|
2415
|
+
_iteration + 1
|
|
2397
2416
|
)) {
|
|
2398
2417
|
yield event;
|
|
2399
2418
|
}
|
|
@@ -2490,7 +2509,9 @@ var Runtime = class {
|
|
|
2490
2509
|
_accumulatedMessages,
|
|
2491
2510
|
_isRecursive,
|
|
2492
2511
|
_httpRequest,
|
|
2493
|
-
toolSearchState
|
|
2512
|
+
toolSearchState,
|
|
2513
|
+
iteration
|
|
2514
|
+
// carry the non-streaming loop's depth into the streaming sub-call
|
|
2494
2515
|
)) {
|
|
2495
2516
|
yield event;
|
|
2496
2517
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -2110,7 +2110,7 @@ var Runtime = class {
|
|
|
2110
2110
|
* 5. Loop continues until no more tool calls or max iterations reached
|
|
2111
2111
|
* 6. Returns all new messages in the done event for client to append
|
|
2112
2112
|
*/
|
|
2113
|
-
async *processChatWithLoop(request, signal, _accumulatedMessages, _isRecursive, _httpRequest, _toolSearchState) {
|
|
2113
|
+
async *processChatWithLoop(request, signal, _accumulatedMessages, _isRecursive, _httpRequest, _toolSearchState, _iteration = 0) {
|
|
2114
2114
|
const debug = this.config.debug;
|
|
2115
2115
|
if (request.streaming === false) {
|
|
2116
2116
|
if (debug) {
|
|
@@ -2129,7 +2129,25 @@ var Runtime = class {
|
|
|
2129
2129
|
return;
|
|
2130
2130
|
}
|
|
2131
2131
|
const newMessages = _accumulatedMessages || [];
|
|
2132
|
-
this.config.maxIterations ?? 20;
|
|
2132
|
+
const maxIterations = this.config.maxIterations ?? 20;
|
|
2133
|
+
if (signal?.aborted) {
|
|
2134
|
+
yield {
|
|
2135
|
+
type: "error",
|
|
2136
|
+
message: "Aborted",
|
|
2137
|
+
code: "ABORTED"
|
|
2138
|
+
};
|
|
2139
|
+
return;
|
|
2140
|
+
}
|
|
2141
|
+
if (_iteration >= maxIterations) {
|
|
2142
|
+
if (debug) {
|
|
2143
|
+
console.log(`[Copilot SDK] Max iterations (${maxIterations}) reached`);
|
|
2144
|
+
}
|
|
2145
|
+
yield {
|
|
2146
|
+
type: "done",
|
|
2147
|
+
messages: newMessages.length > 0 ? newMessages : void 0
|
|
2148
|
+
};
|
|
2149
|
+
return;
|
|
2150
|
+
}
|
|
2133
2151
|
const allTools = this.collectToolsForRequest(request);
|
|
2134
2152
|
const nativeToolSearch = this.resolveNativeToolSearchForRequest(request);
|
|
2135
2153
|
const nativeToolCatalog = nativeToolSearch ? this.buildNativeToolCatalogForRequest(request, allTools) : null;
|
|
@@ -2391,7 +2409,8 @@ var Runtime = class {
|
|
|
2391
2409
|
true,
|
|
2392
2410
|
// Mark as recursive
|
|
2393
2411
|
_httpRequest,
|
|
2394
|
-
nextToolSearchState
|
|
2412
|
+
nextToolSearchState,
|
|
2413
|
+
_iteration + 1
|
|
2395
2414
|
)) {
|
|
2396
2415
|
yield event;
|
|
2397
2416
|
}
|
|
@@ -2488,7 +2507,9 @@ var Runtime = class {
|
|
|
2488
2507
|
_accumulatedMessages,
|
|
2489
2508
|
_isRecursive,
|
|
2490
2509
|
_httpRequest,
|
|
2491
|
-
toolSearchState
|
|
2510
|
+
toolSearchState,
|
|
2511
|
+
iteration
|
|
2512
|
+
// carry the non-streaming loop's depth into the streaming sub-call
|
|
2492
2513
|
)) {
|
|
2493
2514
|
yield event;
|
|
2494
2515
|
}
|
|
@@ -39,6 +39,34 @@ ${stringifyForDebug(payload)}`
|
|
|
39
39
|
);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
+
function parameterToJsonSchema(param) {
|
|
43
|
+
const schema = {
|
|
44
|
+
type: param.type
|
|
45
|
+
};
|
|
46
|
+
if (param.description) {
|
|
47
|
+
schema.description = param.description;
|
|
48
|
+
}
|
|
49
|
+
if (param.enum) {
|
|
50
|
+
schema.enum = param.enum;
|
|
51
|
+
}
|
|
52
|
+
if (param.type === "array" && param.items) {
|
|
53
|
+
schema.items = parameterToJsonSchema(
|
|
54
|
+
param.items
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
if (param.type === "object" && param.properties) {
|
|
58
|
+
schema.properties = Object.fromEntries(
|
|
59
|
+
Object.entries(param.properties).map(([key, prop]) => [
|
|
60
|
+
key,
|
|
61
|
+
parameterToJsonSchema(
|
|
62
|
+
prop
|
|
63
|
+
)
|
|
64
|
+
])
|
|
65
|
+
);
|
|
66
|
+
schema.additionalProperties = false;
|
|
67
|
+
}
|
|
68
|
+
return schema;
|
|
69
|
+
}
|
|
42
70
|
function stripSchemaKeys(schema, keysToDrop, options = {}) {
|
|
43
71
|
if (Array.isArray(schema)) {
|
|
44
72
|
return schema.map((item) => stripSchemaKeys(item, keysToDrop, options));
|
|
@@ -863,11 +891,7 @@ var AnthropicAdapter = class {
|
|
|
863
891
|
properties: action.parameters ? Object.fromEntries(
|
|
864
892
|
Object.entries(action.parameters).map(([key, param]) => [
|
|
865
893
|
key,
|
|
866
|
-
|
|
867
|
-
type: param.type,
|
|
868
|
-
description: param.description,
|
|
869
|
-
enum: param.enum
|
|
870
|
-
}
|
|
894
|
+
parameterToJsonSchema(param)
|
|
871
895
|
])
|
|
872
896
|
) : {},
|
|
873
897
|
required: action.parameters ? Object.entries(action.parameters).filter(([, param]) => param.required).map(([key]) => key) : []
|
|
@@ -980,6 +1004,11 @@ var AnthropicAdapter = class {
|
|
|
980
1004
|
content,
|
|
981
1005
|
toolCalls,
|
|
982
1006
|
thinking: thinking || void 0,
|
|
1007
|
+
usage: response.usage ? {
|
|
1008
|
+
promptTokens: response.usage.input_tokens ?? 0,
|
|
1009
|
+
completionTokens: response.usage.output_tokens ?? 0,
|
|
1010
|
+
totalTokens: (response.usage.input_tokens ?? 0) + (response.usage.output_tokens ?? 0)
|
|
1011
|
+
} : void 0,
|
|
983
1012
|
rawResponse: response
|
|
984
1013
|
};
|
|
985
1014
|
} catch (error) {
|
|
@@ -37,6 +37,34 @@ ${stringifyForDebug(payload)}`
|
|
|
37
37
|
);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
function parameterToJsonSchema(param) {
|
|
41
|
+
const schema = {
|
|
42
|
+
type: param.type
|
|
43
|
+
};
|
|
44
|
+
if (param.description) {
|
|
45
|
+
schema.description = param.description;
|
|
46
|
+
}
|
|
47
|
+
if (param.enum) {
|
|
48
|
+
schema.enum = param.enum;
|
|
49
|
+
}
|
|
50
|
+
if (param.type === "array" && param.items) {
|
|
51
|
+
schema.items = parameterToJsonSchema(
|
|
52
|
+
param.items
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
if (param.type === "object" && param.properties) {
|
|
56
|
+
schema.properties = Object.fromEntries(
|
|
57
|
+
Object.entries(param.properties).map(([key, prop]) => [
|
|
58
|
+
key,
|
|
59
|
+
parameterToJsonSchema(
|
|
60
|
+
prop
|
|
61
|
+
)
|
|
62
|
+
])
|
|
63
|
+
);
|
|
64
|
+
schema.additionalProperties = false;
|
|
65
|
+
}
|
|
66
|
+
return schema;
|
|
67
|
+
}
|
|
40
68
|
function stripSchemaKeys(schema, keysToDrop, options = {}) {
|
|
41
69
|
if (Array.isArray(schema)) {
|
|
42
70
|
return schema.map((item) => stripSchemaKeys(item, keysToDrop, options));
|
|
@@ -861,11 +889,7 @@ var AnthropicAdapter = class {
|
|
|
861
889
|
properties: action.parameters ? Object.fromEntries(
|
|
862
890
|
Object.entries(action.parameters).map(([key, param]) => [
|
|
863
891
|
key,
|
|
864
|
-
|
|
865
|
-
type: param.type,
|
|
866
|
-
description: param.description,
|
|
867
|
-
enum: param.enum
|
|
868
|
-
}
|
|
892
|
+
parameterToJsonSchema(param)
|
|
869
893
|
])
|
|
870
894
|
) : {},
|
|
871
895
|
required: action.parameters ? Object.entries(action.parameters).filter(([, param]) => param.required).map(([key]) => key) : []
|
|
@@ -978,6 +1002,11 @@ var AnthropicAdapter = class {
|
|
|
978
1002
|
content,
|
|
979
1003
|
toolCalls,
|
|
980
1004
|
thinking: thinking || void 0,
|
|
1005
|
+
usage: response.usage ? {
|
|
1006
|
+
promptTokens: response.usage.input_tokens ?? 0,
|
|
1007
|
+
completionTokens: response.usage.output_tokens ?? 0,
|
|
1008
|
+
totalTokens: (response.usage.input_tokens ?? 0) + (response.usage.output_tokens ?? 0)
|
|
1009
|
+
} : void 0,
|
|
981
1010
|
rawResponse: response
|
|
982
1011
|
};
|
|
983
1012
|
} catch (error) {
|
|
@@ -419,6 +419,11 @@ var AzureAdapter = class {
|
|
|
419
419
|
return {
|
|
420
420
|
content: message?.content || "",
|
|
421
421
|
toolCalls,
|
|
422
|
+
usage: response.usage ? {
|
|
423
|
+
promptTokens: response.usage.prompt_tokens ?? 0,
|
|
424
|
+
completionTokens: response.usage.completion_tokens ?? 0,
|
|
425
|
+
totalTokens: response.usage.total_tokens ?? (response.usage.prompt_tokens ?? 0) + (response.usage.completion_tokens ?? 0)
|
|
426
|
+
} : void 0,
|
|
422
427
|
rawResponse: response
|
|
423
428
|
};
|
|
424
429
|
}
|
|
@@ -417,6 +417,11 @@ var AzureAdapter = class {
|
|
|
417
417
|
return {
|
|
418
418
|
content: message?.content || "",
|
|
419
419
|
toolCalls,
|
|
420
|
+
usage: response.usage ? {
|
|
421
|
+
promptTokens: response.usage.prompt_tokens ?? 0,
|
|
422
|
+
completionTokens: response.usage.completion_tokens ?? 0,
|
|
423
|
+
totalTokens: response.usage.total_tokens ?? (response.usage.prompt_tokens ?? 0) + (response.usage.completion_tokens ?? 0)
|
|
424
|
+
} : void 0,
|
|
420
425
|
rawResponse: response
|
|
421
426
|
};
|
|
422
427
|
}
|