@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.
Files changed (183) hide show
  1. package/dist/cjs/{src/constants.d.ts → constants.d.ts} +4 -4
  2. package/dist/cjs/index.cjs +54 -3
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs/index.d.cts +4 -4
  5. package/dist/cjs/{src/operate → operate}/types.d.ts +2 -0
  6. package/dist/cjs/{src/util → util}/index.d.ts +1 -0
  7. package/dist/cjs/util/tallyOperate.d.ts +14 -0
  8. package/dist/esm/{src/constants.d.ts → constants.d.ts} +4 -4
  9. package/dist/esm/index.d.ts +4 -4
  10. package/dist/esm/index.js +54 -3
  11. package/dist/esm/index.js.map +1 -1
  12. package/dist/esm/{src/operate → operate}/types.d.ts +2 -0
  13. package/dist/esm/{src/util → util}/index.d.ts +1 -0
  14. package/dist/esm/util/tallyOperate.d.ts +14 -0
  15. package/package.json +1 -1
  16. package/dist/esm/src/index.d.ts +0 -17
  17. /package/dist/cjs/{src/Llm.d.ts → Llm.d.ts} +0 -0
  18. /package/dist/cjs/{src/index.d.ts → index.d.ts} +0 -0
  19. /package/dist/cjs/{src/observability → observability}/llmobs.d.ts +0 -0
  20. /package/dist/cjs/{src/operate → operate}/OperateLoop.d.ts +0 -0
  21. /package/dist/cjs/{src/operate → operate}/StreamLoop.d.ts +0 -0
  22. /package/dist/cjs/{src/operate → operate}/adapters/AnthropicAdapter.d.ts +0 -0
  23. /package/dist/cjs/{src/operate → operate}/adapters/BedrockAdapter.d.ts +0 -0
  24. /package/dist/cjs/{src/operate → operate}/adapters/GoogleAdapter.d.ts +0 -0
  25. /package/dist/cjs/{src/operate → operate}/adapters/OpenAiAdapter.d.ts +0 -0
  26. /package/dist/cjs/{src/operate → operate}/adapters/OpenRouterAdapter.d.ts +0 -0
  27. /package/dist/cjs/{src/operate → operate}/adapters/ProviderAdapter.interface.d.ts +0 -0
  28. /package/dist/cjs/{src/operate → operate}/adapters/XaiAdapter.d.ts +0 -0
  29. /package/dist/cjs/{src/operate → operate}/adapters/index.d.ts +0 -0
  30. /package/dist/cjs/{src/operate → operate}/hooks/HookRunner.d.ts +0 -0
  31. /package/dist/cjs/{src/operate → operate}/hooks/index.d.ts +0 -0
  32. /package/dist/cjs/{src/operate → operate}/index.d.ts +0 -0
  33. /package/dist/cjs/{src/operate → operate}/input/InputProcessor.d.ts +0 -0
  34. /package/dist/cjs/{src/operate → operate}/input/index.d.ts +0 -0
  35. /package/dist/cjs/{src/operate → operate}/progress/emitProgress.d.ts +0 -0
  36. /package/dist/cjs/{src/operate → operate}/progress/index.d.ts +0 -0
  37. /package/dist/cjs/{src/operate → operate}/response/ResponseBuilder.d.ts +0 -0
  38. /package/dist/cjs/{src/operate → operate}/response/index.d.ts +0 -0
  39. /package/dist/cjs/{src/operate → operate}/retry/RetryExecutor.d.ts +0 -0
  40. /package/dist/cjs/{src/operate → operate}/retry/RetryPolicy.d.ts +0 -0
  41. /package/dist/cjs/{src/operate → operate}/retry/createStaleRejectionGuard.d.ts +0 -0
  42. /package/dist/cjs/{src/operate → operate}/retry/index.d.ts +0 -0
  43. /package/dist/cjs/{src/operate → operate}/retry/isTransientNetworkError.d.ts +0 -0
  44. /package/dist/cjs/{src/providers → providers}/anthropic/AnthropicProvider.class.d.ts +0 -0
  45. /package/dist/cjs/{src/providers → providers}/anthropic/client.d.ts +0 -0
  46. /package/dist/cjs/{src/providers → providers}/anthropic/index.d.ts +0 -0
  47. /package/dist/cjs/{src/providers → providers}/anthropic/types.d.ts +0 -0
  48. /package/dist/cjs/{src/providers → providers}/anthropic/utils.d.ts +0 -0
  49. /package/dist/cjs/{src/providers → providers}/bedrock/BedrockProvider.class.d.ts +0 -0
  50. /package/dist/cjs/{src/providers → providers}/bedrock/index.d.ts +0 -0
  51. /package/dist/cjs/{src/providers → providers}/bedrock/utils.d.ts +0 -0
  52. /package/dist/cjs/{src/providers → providers}/google/GoogleProvider.class.d.ts +0 -0
  53. /package/dist/cjs/{src/providers → providers}/google/client.d.ts +0 -0
  54. /package/dist/cjs/{src/providers → providers}/google/index.d.ts +0 -0
  55. /package/dist/cjs/{src/providers → providers}/google/types.d.ts +0 -0
  56. /package/dist/cjs/{src/providers → providers}/google/utils.d.ts +0 -0
  57. /package/dist/cjs/{src/providers → providers}/openai/OpenAiProvider.class.d.ts +0 -0
  58. /package/dist/cjs/{src/providers → providers}/openai/client.d.ts +0 -0
  59. /package/dist/cjs/{src/providers → providers}/openai/index.d.ts +0 -0
  60. /package/dist/cjs/{src/providers → providers}/openai/responseFormat.d.ts +0 -0
  61. /package/dist/cjs/{src/providers → providers}/openai/types.d.ts +0 -0
  62. /package/dist/cjs/{src/providers → providers}/openai/utils.d.ts +0 -0
  63. /package/dist/cjs/{src/providers → providers}/openrouter/OpenRouterProvider.class.d.ts +0 -0
  64. /package/dist/cjs/{src/providers → providers}/openrouter/client.d.ts +0 -0
  65. /package/dist/cjs/{src/providers → providers}/openrouter/index.d.ts +0 -0
  66. /package/dist/cjs/{src/providers → providers}/openrouter/utils.d.ts +0 -0
  67. /package/dist/cjs/{src/providers → providers}/xai/XaiProvider.class.d.ts +0 -0
  68. /package/dist/cjs/{src/providers → providers}/xai/index.d.ts +0 -0
  69. /package/dist/cjs/{src/providers → providers}/xai/utils.d.ts +0 -0
  70. /package/dist/cjs/{src/tools → tools}/Toolkit.class.d.ts +0 -0
  71. /package/dist/cjs/{src/tools → tools}/index.d.ts +0 -0
  72. /package/dist/cjs/{src/tools → tools}/random.d.ts +0 -0
  73. /package/dist/cjs/{src/tools → tools}/roll.d.ts +0 -0
  74. /package/dist/cjs/{src/tools → tools}/time.d.ts +0 -0
  75. /package/dist/cjs/{src/tools → tools}/weather.d.ts +0 -0
  76. /package/dist/cjs/{src/types → types}/LlmOperateInput.guards.d.ts +0 -0
  77. /package/dist/cjs/{src/types → types}/LlmProvider.interface.d.ts +0 -0
  78. /package/dist/cjs/{src/types → types}/LlmStreamChunk.interface.d.ts +0 -0
  79. /package/dist/cjs/{src/types → types}/LlmTool.interface.d.ts +0 -0
  80. /package/dist/cjs/{src/upload → upload}/detectMimeType.d.ts +0 -0
  81. /package/dist/cjs/{src/upload → upload}/extractPdfPages.d.ts +0 -0
  82. /package/dist/cjs/{src/upload → upload}/index.d.ts +0 -0
  83. /package/dist/cjs/{src/upload → upload}/loadLocalFile.d.ts +0 -0
  84. /package/dist/cjs/{src/upload → upload}/loadS3File.d.ts +0 -0
  85. /package/dist/cjs/{src/upload → upload}/resolveOperateInput.d.ts +0 -0
  86. /package/dist/cjs/{src/util → util}/determineModelProvider.d.ts +0 -0
  87. /package/dist/cjs/{src/util → util}/extractReasoning.d.ts +0 -0
  88. /package/dist/cjs/{src/util → util}/fillFormatArrays.d.ts +0 -0
  89. /package/dist/cjs/{src/util → util}/formatOperateInput.d.ts +0 -0
  90. /package/dist/cjs/{src/util → util}/formatOperateMessage.d.ts +0 -0
  91. /package/dist/cjs/{src/util → util}/jsonSchema.d.ts +0 -0
  92. /package/dist/cjs/{src/util → util}/jsonSchemaToOpenApi3.d.ts +0 -0
  93. /package/dist/cjs/{src/util → util}/logger.d.ts +0 -0
  94. /package/dist/cjs/{src/util → util}/maxOutputTokens.d.ts +0 -0
  95. /package/dist/cjs/{src/util → util}/maxTurnsFromOptions.d.ts +0 -0
  96. /package/dist/cjs/{src/util → util}/naturalZodSchema.d.ts +0 -0
  97. /package/dist/cjs/{src/util → util}/random.d.ts +0 -0
  98. /package/dist/cjs/{src/util → util}/repairFormatKeys.d.ts +0 -0
  99. /package/dist/cjs/{src/util → util}/sse.d.ts +0 -0
  100. /package/dist/cjs/{src/util → util}/tryParseNumber.d.ts +0 -0
  101. /package/dist/esm/{src/Llm.d.ts → Llm.d.ts} +0 -0
  102. /package/dist/esm/{src/observability → observability}/llmobs.d.ts +0 -0
  103. /package/dist/esm/{src/operate → operate}/OperateLoop.d.ts +0 -0
  104. /package/dist/esm/{src/operate → operate}/StreamLoop.d.ts +0 -0
  105. /package/dist/esm/{src/operate → operate}/adapters/AnthropicAdapter.d.ts +0 -0
  106. /package/dist/esm/{src/operate → operate}/adapters/BedrockAdapter.d.ts +0 -0
  107. /package/dist/esm/{src/operate → operate}/adapters/GoogleAdapter.d.ts +0 -0
  108. /package/dist/esm/{src/operate → operate}/adapters/OpenAiAdapter.d.ts +0 -0
  109. /package/dist/esm/{src/operate → operate}/adapters/OpenRouterAdapter.d.ts +0 -0
  110. /package/dist/esm/{src/operate → operate}/adapters/ProviderAdapter.interface.d.ts +0 -0
  111. /package/dist/esm/{src/operate → operate}/adapters/XaiAdapter.d.ts +0 -0
  112. /package/dist/esm/{src/operate → operate}/adapters/index.d.ts +0 -0
  113. /package/dist/esm/{src/operate → operate}/hooks/HookRunner.d.ts +0 -0
  114. /package/dist/esm/{src/operate → operate}/hooks/index.d.ts +0 -0
  115. /package/dist/esm/{src/operate → operate}/index.d.ts +0 -0
  116. /package/dist/esm/{src/operate → operate}/input/InputProcessor.d.ts +0 -0
  117. /package/dist/esm/{src/operate → operate}/input/index.d.ts +0 -0
  118. /package/dist/esm/{src/operate → operate}/progress/emitProgress.d.ts +0 -0
  119. /package/dist/esm/{src/operate → operate}/progress/index.d.ts +0 -0
  120. /package/dist/esm/{src/operate → operate}/response/ResponseBuilder.d.ts +0 -0
  121. /package/dist/esm/{src/operate → operate}/response/index.d.ts +0 -0
  122. /package/dist/esm/{src/operate → operate}/retry/RetryExecutor.d.ts +0 -0
  123. /package/dist/esm/{src/operate → operate}/retry/RetryPolicy.d.ts +0 -0
  124. /package/dist/esm/{src/operate → operate}/retry/createStaleRejectionGuard.d.ts +0 -0
  125. /package/dist/esm/{src/operate → operate}/retry/index.d.ts +0 -0
  126. /package/dist/esm/{src/operate → operate}/retry/isTransientNetworkError.d.ts +0 -0
  127. /package/dist/esm/{src/providers → providers}/anthropic/AnthropicProvider.class.d.ts +0 -0
  128. /package/dist/esm/{src/providers → providers}/anthropic/client.d.ts +0 -0
  129. /package/dist/esm/{src/providers → providers}/anthropic/index.d.ts +0 -0
  130. /package/dist/esm/{src/providers → providers}/anthropic/types.d.ts +0 -0
  131. /package/dist/esm/{src/providers → providers}/anthropic/utils.d.ts +0 -0
  132. /package/dist/esm/{src/providers → providers}/bedrock/BedrockProvider.class.d.ts +0 -0
  133. /package/dist/esm/{src/providers → providers}/bedrock/index.d.ts +0 -0
  134. /package/dist/esm/{src/providers → providers}/bedrock/utils.d.ts +0 -0
  135. /package/dist/esm/{src/providers → providers}/google/GoogleProvider.class.d.ts +0 -0
  136. /package/dist/esm/{src/providers → providers}/google/client.d.ts +0 -0
  137. /package/dist/esm/{src/providers → providers}/google/index.d.ts +0 -0
  138. /package/dist/esm/{src/providers → providers}/google/types.d.ts +0 -0
  139. /package/dist/esm/{src/providers → providers}/google/utils.d.ts +0 -0
  140. /package/dist/esm/{src/providers → providers}/openai/OpenAiProvider.class.d.ts +0 -0
  141. /package/dist/esm/{src/providers → providers}/openai/client.d.ts +0 -0
  142. /package/dist/esm/{src/providers → providers}/openai/index.d.ts +0 -0
  143. /package/dist/esm/{src/providers → providers}/openai/responseFormat.d.ts +0 -0
  144. /package/dist/esm/{src/providers → providers}/openai/types.d.ts +0 -0
  145. /package/dist/esm/{src/providers → providers}/openai/utils.d.ts +0 -0
  146. /package/dist/esm/{src/providers → providers}/openrouter/OpenRouterProvider.class.d.ts +0 -0
  147. /package/dist/esm/{src/providers → providers}/openrouter/client.d.ts +0 -0
  148. /package/dist/esm/{src/providers → providers}/openrouter/index.d.ts +0 -0
  149. /package/dist/esm/{src/providers → providers}/openrouter/utils.d.ts +0 -0
  150. /package/dist/esm/{src/providers → providers}/xai/XaiProvider.class.d.ts +0 -0
  151. /package/dist/esm/{src/providers → providers}/xai/index.d.ts +0 -0
  152. /package/dist/esm/{src/providers → providers}/xai/utils.d.ts +0 -0
  153. /package/dist/esm/{src/tools → tools}/Toolkit.class.d.ts +0 -0
  154. /package/dist/esm/{src/tools → tools}/index.d.ts +0 -0
  155. /package/dist/esm/{src/tools → tools}/random.d.ts +0 -0
  156. /package/dist/esm/{src/tools → tools}/roll.d.ts +0 -0
  157. /package/dist/esm/{src/tools → tools}/time.d.ts +0 -0
  158. /package/dist/esm/{src/tools → tools}/weather.d.ts +0 -0
  159. /package/dist/esm/{src/types → types}/LlmOperateInput.guards.d.ts +0 -0
  160. /package/dist/esm/{src/types → types}/LlmProvider.interface.d.ts +0 -0
  161. /package/dist/esm/{src/types → types}/LlmStreamChunk.interface.d.ts +0 -0
  162. /package/dist/esm/{src/types → types}/LlmTool.interface.d.ts +0 -0
  163. /package/dist/esm/{src/upload → upload}/detectMimeType.d.ts +0 -0
  164. /package/dist/esm/{src/upload → upload}/extractPdfPages.d.ts +0 -0
  165. /package/dist/esm/{src/upload → upload}/index.d.ts +0 -0
  166. /package/dist/esm/{src/upload → upload}/loadLocalFile.d.ts +0 -0
  167. /package/dist/esm/{src/upload → upload}/loadS3File.d.ts +0 -0
  168. /package/dist/esm/{src/upload → upload}/resolveOperateInput.d.ts +0 -0
  169. /package/dist/esm/{src/util → util}/determineModelProvider.d.ts +0 -0
  170. /package/dist/esm/{src/util → util}/extractReasoning.d.ts +0 -0
  171. /package/dist/esm/{src/util → util}/fillFormatArrays.d.ts +0 -0
  172. /package/dist/esm/{src/util → util}/formatOperateInput.d.ts +0 -0
  173. /package/dist/esm/{src/util → util}/formatOperateMessage.d.ts +0 -0
  174. /package/dist/esm/{src/util → util}/jsonSchema.d.ts +0 -0
  175. /package/dist/esm/{src/util → util}/jsonSchemaToOpenApi3.d.ts +0 -0
  176. /package/dist/esm/{src/util → util}/logger.d.ts +0 -0
  177. /package/dist/esm/{src/util → util}/maxOutputTokens.d.ts +0 -0
  178. /package/dist/esm/{src/util → util}/maxTurnsFromOptions.d.ts +0 -0
  179. /package/dist/esm/{src/util → util}/naturalZodSchema.d.ts +0 -0
  180. /package/dist/esm/{src/util → util}/random.d.ts +0 -0
  181. /package/dist/esm/{src/util → util}/repairFormatKeys.d.ts +0 -0
  182. /package/dist/esm/{src/util → util}/sse.d.ts +0 -0
  183. /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-4.3-latest";
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.3-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-4.3-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-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
  };
@@ -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-4.3-latest",
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-4-6",
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,