@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
@@ -3,10 +3,10 @@ import { JsonObject, AnyValue, NaturalMap, NaturalSchema, JsonReturn } from '@ja
3
3
  import { z } from 'zod/v4';
4
4
 
5
5
  declare const MODEL: {
6
+ FABLE: string;
6
7
  OPUS: string;
7
8
  SONNET: string;
8
9
  HAIKU: string;
9
- FABLE: string;
10
10
  MYTHOS: string;
11
11
  GEMINI_FLASH: string;
12
12
  GEMINI_FLASH_LITE: string;
@@ -113,7 +113,7 @@ declare const PROVIDER: {
113
113
  readonly BASE_URL: "https://api.x.ai/v1";
114
114
  readonly MODEL: {
115
115
  readonly DEFAULT: "grok-latest";
116
- readonly LARGE: "grok-4.3-latest";
116
+ readonly LARGE: "grok-latest";
117
117
  readonly SMALL: "grok-4-1-fast-reasoning";
118
118
  readonly TINY: "grok-4-1-fast-non-reasoning";
119
119
  };
@@ -142,8 +142,8 @@ declare const DEFAULT: {
142
142
  };
143
143
  declare const ALL: {
144
144
  readonly BASE: readonly ["claude-sonnet-4-6", "gemini-3.1-pro-preview", "gpt-5.4", "grok-latest"];
145
- readonly COMBINED: readonly ("claude-opus-4-8" | "claude-sonnet-4-6" | "claude-haiku-4-5" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3.1-pro-preview" | "gpt-5.5" | "gpt-5.4-mini" | "gpt-5.4-nano" | "grok-latest" | "gpt-5.4" | "grok-4.3-latest" | "grok-4-1-fast-reasoning" | "grok-4-1-fast-non-reasoning")[];
146
- readonly LARGE: readonly ["claude-opus-4-8", "gemini-3.1-pro-preview", "gpt-5.5", "grok-4.3-latest"];
145
+ readonly COMBINED: readonly ("claude-opus-4-8" | "claude-haiku-4-5" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3.1-pro-preview" | "gpt-5.5" | "gpt-5.4-mini" | "gpt-5.4-nano" | "grok-latest" | "claude-sonnet-4-6" | "gpt-5.4" | "grok-4-1-fast-reasoning" | "grok-4-1-fast-non-reasoning")[];
146
+ readonly LARGE: readonly ["claude-opus-4-8", "gemini-3.1-pro-preview", "gpt-5.5", "grok-latest"];
147
147
  readonly SMALL: readonly ["claude-sonnet-4-6", "gemini-3.5-flash", "gpt-5.4-mini", "grok-4-1-fast-reasoning"];
148
148
  readonly TINY: readonly ["claude-haiku-4-5", "gemini-3.1-flash-lite", "gpt-5.4-nano", "grok-4-1-fast-non-reasoning"];
149
149
  };
@@ -133,6 +133,8 @@ export interface OperateLoopState {
133
133
  maxTurns: number;
134
134
  /** Response builder instance */
135
135
  responseBuilder: ResponseBuilder;
136
+ /** Names of tool calls executed across all turns (report tally) */
137
+ toolCallNames: string[];
136
138
  /** The toolkit for tool calls */
137
139
  toolkit?: Toolkit;
138
140
  }
@@ -12,4 +12,5 @@ export * from "./naturalZodSchema.js";
12
12
  export * from "./random.js";
13
13
  export * from "./repairFormatKeys.js";
14
14
  export * from "./sse.js";
15
+ export * from "./tallyOperate.js";
15
16
  export * from "./tryParseNumber.js";
@@ -0,0 +1,14 @@
1
+ import { LlmUsageItem } from "../types/LlmProvider.interface.js";
2
+ interface TallyOperateOptions {
3
+ toolCallNames?: string[];
4
+ turns: number;
5
+ usage?: LlmUsageItem[];
6
+ }
7
+ /**
8
+ * Tally loop totals onto the root logger's report session so handlers
9
+ * (express, lambda) include llm activity in the report emitted at teardown.
10
+ * Silently no-ops outside an active session or when the logger predates
11
+ * tally support.
12
+ */
13
+ export declare function tallyOperate({ toolCallNames, turns, usage, }: TallyOperateOptions): void;
14
+ export {};
@@ -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
  };
@@ -3,10 +3,10 @@ import { JsonObject, AnyValue, NaturalMap, NaturalSchema, JsonReturn } from '@ja
3
3
  import { z } from 'zod/v4';
4
4
 
5
5
  declare const MODEL: {
6
+ FABLE: string;
6
7
  OPUS: string;
7
8
  SONNET: string;
8
9
  HAIKU: string;
9
- FABLE: string;
10
10
  MYTHOS: string;
11
11
  GEMINI_FLASH: string;
12
12
  GEMINI_FLASH_LITE: string;
@@ -113,7 +113,7 @@ declare const PROVIDER: {
113
113
  readonly BASE_URL: "https://api.x.ai/v1";
114
114
  readonly MODEL: {
115
115
  readonly DEFAULT: "grok-latest";
116
- readonly LARGE: "grok-4.3-latest";
116
+ readonly LARGE: "grok-latest";
117
117
  readonly SMALL: "grok-4-1-fast-reasoning";
118
118
  readonly TINY: "grok-4-1-fast-non-reasoning";
119
119
  };
@@ -142,8 +142,8 @@ declare const DEFAULT: {
142
142
  };
143
143
  declare const ALL: {
144
144
  readonly BASE: readonly ["claude-sonnet-4-6", "gemini-3.1-pro-preview", "gpt-5.4", "grok-latest"];
145
- readonly COMBINED: readonly ("claude-opus-4-8" | "claude-sonnet-4-6" | "claude-haiku-4-5" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3.1-pro-preview" | "gpt-5.5" | "gpt-5.4-mini" | "gpt-5.4-nano" | "grok-latest" | "gpt-5.4" | "grok-4.3-latest" | "grok-4-1-fast-reasoning" | "grok-4-1-fast-non-reasoning")[];
146
- readonly LARGE: readonly ["claude-opus-4-8", "gemini-3.1-pro-preview", "gpt-5.5", "grok-4.3-latest"];
145
+ readonly COMBINED: readonly ("claude-opus-4-8" | "claude-haiku-4-5" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3.1-pro-preview" | "gpt-5.5" | "gpt-5.4-mini" | "gpt-5.4-nano" | "grok-latest" | "claude-sonnet-4-6" | "gpt-5.4" | "grok-4-1-fast-reasoning" | "grok-4-1-fast-non-reasoning")[];
146
+ readonly LARGE: readonly ["claude-opus-4-8", "gemini-3.1-pro-preview", "gpt-5.5", "grok-latest"];
147
147
  readonly SMALL: readonly ["claude-sonnet-4-6", "gemini-3.5-flash", "gpt-5.4-mini", "grok-4-1-fast-reasoning"];
148
148
  readonly TINY: readonly ["claude-haiku-4-5", "gemini-3.1-flash-lite", "gpt-5.4-nano", "grok-4-1-fast-non-reasoning"];
149
149
  };
package/dist/esm/index.js CHANGED
@@ -36,17 +36,17 @@ const FIRST_CLASS_PROVIDER = {
36
36
  // https://docs.x.ai/developers/models
37
37
  XAI: {
38
38
  DEFAULT: "grok-latest",
39
- LARGE: "grok-4.3-latest",
39
+ LARGE: "grok-latest",
40
40
  SMALL: "grok-4-1-fast-reasoning",
41
41
  TINY: "grok-4-1-fast-non-reasoning",
42
42
  },
43
43
  };
44
44
  const MODEL = {
45
45
  // Anthropic
46
+ FABLE: "claude-fable-5",
46
47
  OPUS: "claude-opus-4-8",
47
- SONNET: "claude-sonnet-4-6",
48
+ SONNET: "claude-sonnet-5",
48
49
  HAIKU: "claude-haiku-4-5",
49
- FABLE: "claude-fable-5",
50
50
  MYTHOS: "claude-mythos-5",
51
51
  // Google
52
52
  GEMINI_FLASH: "gemini-3.5-flash",
@@ -1294,6 +1294,43 @@ async function* parseSseStream(body, { doneSentinel = DEFAULT_DONE_SENTINEL } =
1294
1294
  }
1295
1295
  }
1296
1296
 
1297
+ const UNKNOWN = "unknown";
1298
+ /**
1299
+ * Tally loop totals onto the root logger's report session so handlers
1300
+ * (express, lambda) include llm activity in the report emitted at teardown.
1301
+ * Silently no-ops outside an active session or when the logger predates
1302
+ * tally support.
1303
+ */
1304
+ function tallyOperate({ toolCallNames = [], turns, usage = [], }) {
1305
+ if (typeof log$2.tally !== "function")
1306
+ return;
1307
+ const llm = {
1308
+ operates: 1,
1309
+ toolCalls: toolCallNames.length,
1310
+ turns,
1311
+ };
1312
+ if (toolCallNames.length > 0) {
1313
+ const tools = {};
1314
+ for (const name of toolCallNames) {
1315
+ tools[name] = (tools[name] ?? 0) + 1;
1316
+ }
1317
+ llm.tools = tools;
1318
+ }
1319
+ if (usage.length > 0) {
1320
+ const usageByModel = {};
1321
+ for (const item of usage) {
1322
+ const key = [item.provider, item.model].filter(Boolean).join(":") || UNKNOWN;
1323
+ usageByModel[key] ?? (usageByModel[key] = { input: 0, output: 0, reasoning: 0, total: 0 });
1324
+ usageByModel[key].input += item.input;
1325
+ usageByModel[key].output += item.output;
1326
+ usageByModel[key].reasoning += item.reasoning;
1327
+ usageByModel[key].total += item.total;
1328
+ }
1329
+ llm.usage = usageByModel;
1330
+ }
1331
+ log$2.tally({ llm });
1332
+ }
1333
+
1297
1334
  /**
1298
1335
  * Helper function to safely call a function that might throw
1299
1336
  * @param fn Function to call safely
@@ -6652,6 +6689,11 @@ class OperateLoop {
6652
6689
  metrics: usageToLlmObsMetrics(response.usage),
6653
6690
  outputData: response.content,
6654
6691
  });
6692
+ tallyOperate({
6693
+ toolCallNames: state.toolCallNames,
6694
+ turns: state.currentTurn,
6695
+ usage: response.usage,
6696
+ });
6655
6697
  await emitProgress({
6656
6698
  event: {
6657
6699
  content: response.content,
@@ -6721,6 +6763,7 @@ class OperateLoop {
6721
6763
  formattedTools,
6722
6764
  maxTurns,
6723
6765
  responseBuilder,
6766
+ toolCallNames: [],
6724
6767
  toolkit,
6725
6768
  };
6726
6769
  }
@@ -6889,6 +6932,7 @@ class OperateLoop {
6889
6932
  this.appendResponseItemsToRequest(currentProviderRequest, responseItems);
6890
6933
  // Process each tool call
6891
6934
  for (const toolCall of toolCalls) {
6935
+ state.toolCallNames.push(toolCall.name);
6892
6936
  // Resolved once per call; never throws (undefined when tool has no message)
6893
6937
  const toolMessage = await state.toolkit.resolveMessage({
6894
6938
  arguments: toolCall.arguments,
@@ -7262,6 +7306,11 @@ class StreamLoop {
7262
7306
  }
7263
7307
  }
7264
7308
  // Emit final done chunk with accumulated usage
7309
+ tallyOperate({
7310
+ toolCallNames: state.toolCallNames,
7311
+ turns: state.currentTurn,
7312
+ usage: state.usageItems,
7313
+ });
7265
7314
  yield {
7266
7315
  type: LlmStreamChunkType.Done,
7267
7316
  usage: state.usageItems,
@@ -7302,6 +7351,7 @@ class StreamLoop {
7302
7351
  formattedFormat,
7303
7352
  formattedTools,
7304
7353
  maxTurns,
7354
+ toolCallNames: [],
7305
7355
  toolkit,
7306
7356
  usageItems: [],
7307
7357
  };
@@ -7484,6 +7534,7 @@ class StreamLoop {
7484
7534
  async *processToolCalls(toolCalls, state, context) {
7485
7535
  const log = getLogger$6();
7486
7536
  for (const toolCall of toolCalls) {
7537
+ state.toolCallNames.push(toolCall.name);
7487
7538
  // Resolved once per call; never throws (undefined when tool has no message)
7488
7539
  const toolMessage = await state.toolkit.resolveMessage({
7489
7540
  arguments: toolCall.arguments,