@jaypie/llm 1.3.8 → 1.3.9
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/cjs/{src/constants.d.ts → constants.d.ts} +4 -4
- package/dist/cjs/index.cjs +54 -3
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +4 -4
- package/dist/cjs/{src/operate → operate}/types.d.ts +2 -0
- package/dist/cjs/{src/util → util}/index.d.ts +1 -0
- package/dist/cjs/util/tallyOperate.d.ts +14 -0
- package/dist/esm/{src/constants.d.ts → constants.d.ts} +4 -4
- package/dist/esm/index.d.ts +4 -4
- package/dist/esm/index.js +54 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{src/operate → operate}/types.d.ts +2 -0
- package/dist/esm/{src/util → util}/index.d.ts +1 -0
- package/dist/esm/util/tallyOperate.d.ts +14 -0
- package/package.json +1 -1
- package/dist/esm/src/index.d.ts +0 -17
- /package/dist/cjs/{src/Llm.d.ts → Llm.d.ts} +0 -0
- /package/dist/cjs/{src/index.d.ts → index.d.ts} +0 -0
- /package/dist/cjs/{src/observability → observability}/llmobs.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/OperateLoop.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/StreamLoop.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/adapters/AnthropicAdapter.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/adapters/BedrockAdapter.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/adapters/GoogleAdapter.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/adapters/OpenAiAdapter.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/adapters/OpenRouterAdapter.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/adapters/ProviderAdapter.interface.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/adapters/XaiAdapter.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/adapters/index.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/hooks/HookRunner.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/hooks/index.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/index.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/input/InputProcessor.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/input/index.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/progress/emitProgress.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/progress/index.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/response/ResponseBuilder.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/response/index.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/retry/RetryExecutor.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/retry/RetryPolicy.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/retry/createStaleRejectionGuard.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/retry/index.d.ts +0 -0
- /package/dist/cjs/{src/operate → operate}/retry/isTransientNetworkError.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/anthropic/AnthropicProvider.class.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/anthropic/client.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/anthropic/index.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/anthropic/types.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/anthropic/utils.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/bedrock/BedrockProvider.class.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/bedrock/index.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/bedrock/utils.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/google/GoogleProvider.class.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/google/client.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/google/index.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/google/types.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/google/utils.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/openai/OpenAiProvider.class.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/openai/client.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/openai/index.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/openai/responseFormat.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/openai/types.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/openai/utils.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/openrouter/OpenRouterProvider.class.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/openrouter/client.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/openrouter/index.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/openrouter/utils.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/xai/XaiProvider.class.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/xai/index.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/xai/utils.d.ts +0 -0
- /package/dist/cjs/{src/tools → tools}/Toolkit.class.d.ts +0 -0
- /package/dist/cjs/{src/tools → tools}/index.d.ts +0 -0
- /package/dist/cjs/{src/tools → tools}/random.d.ts +0 -0
- /package/dist/cjs/{src/tools → tools}/roll.d.ts +0 -0
- /package/dist/cjs/{src/tools → tools}/time.d.ts +0 -0
- /package/dist/cjs/{src/tools → tools}/weather.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/LlmOperateInput.guards.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/LlmProvider.interface.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/LlmStreamChunk.interface.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/LlmTool.interface.d.ts +0 -0
- /package/dist/cjs/{src/upload → upload}/detectMimeType.d.ts +0 -0
- /package/dist/cjs/{src/upload → upload}/extractPdfPages.d.ts +0 -0
- /package/dist/cjs/{src/upload → upload}/index.d.ts +0 -0
- /package/dist/cjs/{src/upload → upload}/loadLocalFile.d.ts +0 -0
- /package/dist/cjs/{src/upload → upload}/loadS3File.d.ts +0 -0
- /package/dist/cjs/{src/upload → upload}/resolveOperateInput.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/determineModelProvider.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/extractReasoning.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/fillFormatArrays.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/formatOperateInput.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/formatOperateMessage.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/jsonSchema.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/jsonSchemaToOpenApi3.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/logger.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/maxOutputTokens.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/maxTurnsFromOptions.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/naturalZodSchema.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/random.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/repairFormatKeys.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/sse.d.ts +0 -0
- /package/dist/cjs/{src/util → util}/tryParseNumber.d.ts +0 -0
- /package/dist/esm/{src/Llm.d.ts → Llm.d.ts} +0 -0
- /package/dist/esm/{src/observability → observability}/llmobs.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/OperateLoop.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/StreamLoop.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/adapters/AnthropicAdapter.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/adapters/BedrockAdapter.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/adapters/GoogleAdapter.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/adapters/OpenAiAdapter.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/adapters/OpenRouterAdapter.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/adapters/ProviderAdapter.interface.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/adapters/XaiAdapter.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/adapters/index.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/hooks/HookRunner.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/hooks/index.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/index.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/input/InputProcessor.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/input/index.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/progress/emitProgress.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/progress/index.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/response/ResponseBuilder.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/response/index.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/retry/RetryExecutor.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/retry/RetryPolicy.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/retry/createStaleRejectionGuard.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/retry/index.d.ts +0 -0
- /package/dist/esm/{src/operate → operate}/retry/isTransientNetworkError.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/anthropic/AnthropicProvider.class.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/anthropic/client.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/anthropic/index.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/anthropic/types.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/anthropic/utils.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/bedrock/BedrockProvider.class.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/bedrock/index.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/bedrock/utils.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/google/GoogleProvider.class.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/google/client.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/google/index.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/google/types.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/google/utils.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/openai/OpenAiProvider.class.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/openai/client.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/openai/index.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/openai/responseFormat.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/openai/types.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/openai/utils.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/openrouter/OpenRouterProvider.class.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/openrouter/client.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/openrouter/index.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/openrouter/utils.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/xai/XaiProvider.class.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/xai/index.d.ts +0 -0
- /package/dist/esm/{src/providers → providers}/xai/utils.d.ts +0 -0
- /package/dist/esm/{src/tools → tools}/Toolkit.class.d.ts +0 -0
- /package/dist/esm/{src/tools → tools}/index.d.ts +0 -0
- /package/dist/esm/{src/tools → tools}/random.d.ts +0 -0
- /package/dist/esm/{src/tools → tools}/roll.d.ts +0 -0
- /package/dist/esm/{src/tools → tools}/time.d.ts +0 -0
- /package/dist/esm/{src/tools → tools}/weather.d.ts +0 -0
- /package/dist/esm/{src/types → types}/LlmOperateInput.guards.d.ts +0 -0
- /package/dist/esm/{src/types → types}/LlmProvider.interface.d.ts +0 -0
- /package/dist/esm/{src/types → types}/LlmStreamChunk.interface.d.ts +0 -0
- /package/dist/esm/{src/types → types}/LlmTool.interface.d.ts +0 -0
- /package/dist/esm/{src/upload → upload}/detectMimeType.d.ts +0 -0
- /package/dist/esm/{src/upload → upload}/extractPdfPages.d.ts +0 -0
- /package/dist/esm/{src/upload → upload}/index.d.ts +0 -0
- /package/dist/esm/{src/upload → upload}/loadLocalFile.d.ts +0 -0
- /package/dist/esm/{src/upload → upload}/loadS3File.d.ts +0 -0
- /package/dist/esm/{src/upload → upload}/resolveOperateInput.d.ts +0 -0
- /package/dist/esm/{src/util → util}/determineModelProvider.d.ts +0 -0
- /package/dist/esm/{src/util → util}/extractReasoning.d.ts +0 -0
- /package/dist/esm/{src/util → util}/fillFormatArrays.d.ts +0 -0
- /package/dist/esm/{src/util → util}/formatOperateInput.d.ts +0 -0
- /package/dist/esm/{src/util → util}/formatOperateMessage.d.ts +0 -0
- /package/dist/esm/{src/util → util}/jsonSchema.d.ts +0 -0
- /package/dist/esm/{src/util → util}/jsonSchemaToOpenApi3.d.ts +0 -0
- /package/dist/esm/{src/util → util}/logger.d.ts +0 -0
- /package/dist/esm/{src/util → util}/maxOutputTokens.d.ts +0 -0
- /package/dist/esm/{src/util → util}/maxTurnsFromOptions.d.ts +0 -0
- /package/dist/esm/{src/util → util}/naturalZodSchema.d.ts +0 -0
- /package/dist/esm/{src/util → util}/random.d.ts +0 -0
- /package/dist/esm/{src/util → util}/repairFormatKeys.d.ts +0 -0
- /package/dist/esm/{src/util → util}/sse.d.ts +0 -0
- /package/dist/esm/{src/util → util}/tryParseNumber.d.ts +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare const MODEL: {
|
|
2
|
+
FABLE: string;
|
|
2
3
|
OPUS: string;
|
|
3
4
|
SONNET: string;
|
|
4
5
|
HAIKU: string;
|
|
5
|
-
FABLE: string;
|
|
6
6
|
MYTHOS: string;
|
|
7
7
|
GEMINI_FLASH: string;
|
|
8
8
|
GEMINI_FLASH_LITE: string;
|
|
@@ -109,7 +109,7 @@ export declare const PROVIDER: {
|
|
|
109
109
|
readonly BASE_URL: "https://api.x.ai/v1";
|
|
110
110
|
readonly MODEL: {
|
|
111
111
|
readonly DEFAULT: "grok-latest";
|
|
112
|
-
readonly LARGE: "grok-
|
|
112
|
+
readonly LARGE: "grok-latest";
|
|
113
113
|
readonly SMALL: "grok-4-1-fast-reasoning";
|
|
114
114
|
readonly TINY: "grok-4-1-fast-non-reasoning";
|
|
115
115
|
};
|
|
@@ -138,8 +138,8 @@ export declare const DEFAULT: {
|
|
|
138
138
|
};
|
|
139
139
|
export declare const ALL: {
|
|
140
140
|
readonly BASE: readonly ["claude-sonnet-4-6", "gemini-3.1-pro-preview", "gpt-5.4", "grok-latest"];
|
|
141
|
-
readonly COMBINED: readonly ("claude-sonnet-4-6" | "claude-opus-4-8" | "claude-haiku-4-5" | "gemini-3.1-pro-preview" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gpt-5.4" | "gpt-5.5" | "gpt-5.4-mini" | "gpt-5.4-nano" | "grok-latest" | "grok-4
|
|
142
|
-
readonly LARGE: readonly ["claude-opus-4-8", "gemini-3.1-pro-preview", "gpt-5.5", "grok-
|
|
141
|
+
readonly COMBINED: readonly ("claude-sonnet-4-6" | "claude-opus-4-8" | "claude-haiku-4-5" | "gemini-3.1-pro-preview" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gpt-5.4" | "gpt-5.5" | "gpt-5.4-mini" | "gpt-5.4-nano" | "grok-latest" | "grok-4-1-fast-reasoning" | "grok-4-1-fast-non-reasoning")[];
|
|
142
|
+
readonly LARGE: readonly ["claude-opus-4-8", "gemini-3.1-pro-preview", "gpt-5.5", "grok-latest"];
|
|
143
143
|
readonly SMALL: readonly ["claude-sonnet-4-6", "gemini-3.5-flash", "gpt-5.4-mini", "grok-4-1-fast-reasoning"];
|
|
144
144
|
readonly TINY: readonly ["claude-haiku-4-5", "gemini-3.1-flash-lite", "gpt-5.4-nano", "grok-4-1-fast-non-reasoning"];
|
|
145
145
|
};
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -39,17 +39,17 @@ const FIRST_CLASS_PROVIDER = {
|
|
|
39
39
|
// https://docs.x.ai/developers/models
|
|
40
40
|
XAI: {
|
|
41
41
|
DEFAULT: "grok-latest",
|
|
42
|
-
LARGE: "grok-
|
|
42
|
+
LARGE: "grok-latest",
|
|
43
43
|
SMALL: "grok-4-1-fast-reasoning",
|
|
44
44
|
TINY: "grok-4-1-fast-non-reasoning",
|
|
45
45
|
},
|
|
46
46
|
};
|
|
47
47
|
const MODEL = {
|
|
48
48
|
// Anthropic
|
|
49
|
+
FABLE: "claude-fable-5",
|
|
49
50
|
OPUS: "claude-opus-4-8",
|
|
50
|
-
SONNET: "claude-sonnet-
|
|
51
|
+
SONNET: "claude-sonnet-5",
|
|
51
52
|
HAIKU: "claude-haiku-4-5",
|
|
52
|
-
FABLE: "claude-fable-5",
|
|
53
53
|
MYTHOS: "claude-mythos-5",
|
|
54
54
|
// Google
|
|
55
55
|
GEMINI_FLASH: "gemini-3.5-flash",
|
|
@@ -1297,6 +1297,43 @@ async function* parseSseStream(body, { doneSentinel = DEFAULT_DONE_SENTINEL } =
|
|
|
1297
1297
|
}
|
|
1298
1298
|
}
|
|
1299
1299
|
|
|
1300
|
+
const UNKNOWN = "unknown";
|
|
1301
|
+
/**
|
|
1302
|
+
* Tally loop totals onto the root logger's report session so handlers
|
|
1303
|
+
* (express, lambda) include llm activity in the report emitted at teardown.
|
|
1304
|
+
* Silently no-ops outside an active session or when the logger predates
|
|
1305
|
+
* tally support.
|
|
1306
|
+
*/
|
|
1307
|
+
function tallyOperate({ toolCallNames = [], turns, usage = [], }) {
|
|
1308
|
+
if (typeof log$1.log.tally !== "function")
|
|
1309
|
+
return;
|
|
1310
|
+
const llm = {
|
|
1311
|
+
operates: 1,
|
|
1312
|
+
toolCalls: toolCallNames.length,
|
|
1313
|
+
turns,
|
|
1314
|
+
};
|
|
1315
|
+
if (toolCallNames.length > 0) {
|
|
1316
|
+
const tools = {};
|
|
1317
|
+
for (const name of toolCallNames) {
|
|
1318
|
+
tools[name] = (tools[name] ?? 0) + 1;
|
|
1319
|
+
}
|
|
1320
|
+
llm.tools = tools;
|
|
1321
|
+
}
|
|
1322
|
+
if (usage.length > 0) {
|
|
1323
|
+
const usageByModel = {};
|
|
1324
|
+
for (const item of usage) {
|
|
1325
|
+
const key = [item.provider, item.model].filter(Boolean).join(":") || UNKNOWN;
|
|
1326
|
+
usageByModel[key] ?? (usageByModel[key] = { input: 0, output: 0, reasoning: 0, total: 0 });
|
|
1327
|
+
usageByModel[key].input += item.input;
|
|
1328
|
+
usageByModel[key].output += item.output;
|
|
1329
|
+
usageByModel[key].reasoning += item.reasoning;
|
|
1330
|
+
usageByModel[key].total += item.total;
|
|
1331
|
+
}
|
|
1332
|
+
llm.usage = usageByModel;
|
|
1333
|
+
}
|
|
1334
|
+
log$1.log.tally({ llm });
|
|
1335
|
+
}
|
|
1336
|
+
|
|
1300
1337
|
/**
|
|
1301
1338
|
* Helper function to safely call a function that might throw
|
|
1302
1339
|
* @param fn Function to call safely
|
|
@@ -6655,6 +6692,11 @@ class OperateLoop {
|
|
|
6655
6692
|
metrics: usageToLlmObsMetrics(response.usage),
|
|
6656
6693
|
outputData: response.content,
|
|
6657
6694
|
});
|
|
6695
|
+
tallyOperate({
|
|
6696
|
+
toolCallNames: state.toolCallNames,
|
|
6697
|
+
turns: state.currentTurn,
|
|
6698
|
+
usage: response.usage,
|
|
6699
|
+
});
|
|
6658
6700
|
await emitProgress({
|
|
6659
6701
|
event: {
|
|
6660
6702
|
content: response.content,
|
|
@@ -6724,6 +6766,7 @@ class OperateLoop {
|
|
|
6724
6766
|
formattedTools,
|
|
6725
6767
|
maxTurns,
|
|
6726
6768
|
responseBuilder,
|
|
6769
|
+
toolCallNames: [],
|
|
6727
6770
|
toolkit,
|
|
6728
6771
|
};
|
|
6729
6772
|
}
|
|
@@ -6892,6 +6935,7 @@ class OperateLoop {
|
|
|
6892
6935
|
this.appendResponseItemsToRequest(currentProviderRequest, responseItems);
|
|
6893
6936
|
// Process each tool call
|
|
6894
6937
|
for (const toolCall of toolCalls) {
|
|
6938
|
+
state.toolCallNames.push(toolCall.name);
|
|
6895
6939
|
// Resolved once per call; never throws (undefined when tool has no message)
|
|
6896
6940
|
const toolMessage = await state.toolkit.resolveMessage({
|
|
6897
6941
|
arguments: toolCall.arguments,
|
|
@@ -7265,6 +7309,11 @@ class StreamLoop {
|
|
|
7265
7309
|
}
|
|
7266
7310
|
}
|
|
7267
7311
|
// Emit final done chunk with accumulated usage
|
|
7312
|
+
tallyOperate({
|
|
7313
|
+
toolCallNames: state.toolCallNames,
|
|
7314
|
+
turns: state.currentTurn,
|
|
7315
|
+
usage: state.usageItems,
|
|
7316
|
+
});
|
|
7268
7317
|
yield {
|
|
7269
7318
|
type: exports.LlmStreamChunkType.Done,
|
|
7270
7319
|
usage: state.usageItems,
|
|
@@ -7305,6 +7354,7 @@ class StreamLoop {
|
|
|
7305
7354
|
formattedFormat,
|
|
7306
7355
|
formattedTools,
|
|
7307
7356
|
maxTurns,
|
|
7357
|
+
toolCallNames: [],
|
|
7308
7358
|
toolkit,
|
|
7309
7359
|
usageItems: [],
|
|
7310
7360
|
};
|
|
@@ -7487,6 +7537,7 @@ class StreamLoop {
|
|
|
7487
7537
|
async *processToolCalls(toolCalls, state, context) {
|
|
7488
7538
|
const log = getLogger$6();
|
|
7489
7539
|
for (const toolCall of toolCalls) {
|
|
7540
|
+
state.toolCallNames.push(toolCall.name);
|
|
7490
7541
|
// Resolved once per call; never throws (undefined when tool has no message)
|
|
7491
7542
|
const toolMessage = await state.toolkit.resolveMessage({
|
|
7492
7543
|
arguments: toolCall.arguments,
|