@node-llm/core 1.16.2 → 1.17.1

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 (76) hide show
  1. package/dist/agent/Agent.d.ts +3 -0
  2. package/dist/agent/Agent.d.ts.map +1 -1
  3. package/dist/agent/Agent.js +3 -0
  4. package/dist/aliases.d.ts +592 -378
  5. package/dist/aliases.d.ts.map +1 -1
  6. package/dist/aliases.js +665 -451
  7. package/dist/chat/Chat.d.ts +17 -5
  8. package/dist/chat/Chat.d.ts.map +1 -1
  9. package/dist/chat/Chat.js +118 -79
  10. package/dist/chat/ChatOptions.d.ts +20 -0
  11. package/dist/chat/ChatOptions.d.ts.map +1 -1
  12. package/dist/chat/ChatStream.d.ts.map +1 -1
  13. package/dist/chat/ChatStream.js +69 -58
  14. package/dist/chat/ToolCallOutcome.d.ts +30 -0
  15. package/dist/chat/ToolCallOutcome.d.ts.map +1 -0
  16. package/dist/chat/ToolCallOutcome.js +43 -0
  17. package/dist/chat/ToolHandler.d.ts.map +1 -1
  18. package/dist/chat/ToolHandler.js +15 -1
  19. package/dist/config.d.ts +11 -0
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +9 -1
  22. package/dist/constants.d.ts +2 -0
  23. package/dist/constants.d.ts.map +1 -1
  24. package/dist/constants.js +4 -0
  25. package/dist/errors/index.d.ts +3 -1
  26. package/dist/errors/index.d.ts.map +1 -1
  27. package/dist/errors/index.js +4 -1
  28. package/dist/executor/Executor.d.ts +6 -0
  29. package/dist/executor/Executor.d.ts.map +1 -1
  30. package/dist/executor/Executor.js +19 -2
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/llm.d.ts +1 -1
  34. package/dist/llm.d.ts.map +1 -1
  35. package/dist/models/models.json +9478 -6064
  36. package/dist/providers/anthropic/Models.d.ts.map +1 -1
  37. package/dist/providers/anthropic/Models.js +4 -2
  38. package/dist/providers/bedrock/BedrockProvider.js +1 -1
  39. package/dist/providers/bedrock/Chat.js +1 -1
  40. package/dist/providers/bedrock/Embeddings.js +1 -1
  41. package/dist/providers/bedrock/Image.js +1 -1
  42. package/dist/providers/bedrock/Moderation.js +1 -1
  43. package/dist/providers/bedrock/Streaming.js +1 -1
  44. package/dist/providers/bedrock/config.d.ts +9 -1
  45. package/dist/providers/bedrock/config.d.ts.map +1 -1
  46. package/dist/providers/bedrock/config.js +4 -2
  47. package/dist/providers/bedrock/index.d.ts.map +1 -1
  48. package/dist/providers/bedrock/index.js +1 -0
  49. package/dist/providers/deepseek/Models.d.ts.map +1 -1
  50. package/dist/providers/deepseek/Models.js +4 -2
  51. package/dist/providers/gemini/Embeddings.d.ts.map +1 -1
  52. package/dist/providers/gemini/Embeddings.js +4 -2
  53. package/dist/providers/gemini/Image.d.ts.map +1 -1
  54. package/dist/providers/gemini/Image.js +4 -2
  55. package/dist/providers/gemini/Models.d.ts.map +1 -1
  56. package/dist/providers/gemini/Models.js +4 -2
  57. package/dist/providers/gemini/Transcription.d.ts.map +1 -1
  58. package/dist/providers/gemini/Transcription.js +4 -2
  59. package/dist/providers/mistral/Embedding.d.ts.map +1 -1
  60. package/dist/providers/mistral/Embedding.js +4 -2
  61. package/dist/providers/mistral/Models.d.ts.map +1 -1
  62. package/dist/providers/mistral/Models.js +4 -2
  63. package/dist/providers/openai/Models.d.ts.map +1 -1
  64. package/dist/providers/openai/Models.js +4 -2
  65. package/dist/providers/openrouter/Models.d.ts.map +1 -1
  66. package/dist/providers/openrouter/Models.js +4 -2
  67. package/dist/utils/Binary.d.ts.map +1 -1
  68. package/dist/utils/Binary.js +11 -0
  69. package/dist/utils/FileLoader.d.ts.map +1 -1
  70. package/dist/utils/FileLoader.js +21 -2
  71. package/dist/utils/handler-stacking.d.ts +31 -0
  72. package/dist/utils/handler-stacking.d.ts.map +1 -0
  73. package/dist/utils/handler-stacking.js +66 -0
  74. package/dist/utils/logger.d.ts.map +1 -1
  75. package/dist/utils/logger.js +8 -1
  76. package/package.json +1 -1
@@ -14,6 +14,7 @@ export interface AskOptions {
14
14
  maxTokens?: number;
15
15
  headers?: Record<string, string>;
16
16
  maxToolCalls?: number;
17
+ maxCorrections?: number;
17
18
  requestTimeout?: number;
18
19
  thinking?: ThinkingConfig;
19
20
  prediction?: string | ContentPart[];
@@ -152,11 +153,13 @@ export declare class Chat<S = unknown> {
152
153
  onToolCall(handler: (toolCall: unknown) => void): this;
153
154
  onToolResult(handler: (result: unknown) => void): this;
154
155
  /**
155
- * Called when a tool call starts.
156
+ * Called when a tool call starts. Calling this more than once registers
157
+ * additional handlers rather than replacing the previous one.
156
158
  */
157
159
  onToolCallStart(handler: (toolCall: unknown) => void): this;
158
160
  /**
159
- * Called when a tool call ends successfully.
161
+ * Called when a tool call ends successfully. Calling this more than once
162
+ * registers additional handlers rather than replacing the previous one.
160
163
  */
161
164
  onToolCallEnd(handler: (toolCall: unknown, result: unknown) => void): this;
162
165
  onToolCallError(handler: (toolCall: unknown, error: Error) => "STOP" | "CONTINUE" | "RETRY" | void | Promise<"STOP" | "CONTINUE" | "RETRY" | void>): this;
@@ -167,19 +170,28 @@ export declare class Chat<S = unknown> {
167
170
  * - "dry-run": Propose tool calls but do not execute them.
168
171
  */
169
172
  withToolExecution(mode: ToolExecutionMode): this;
173
+ /**
174
+ * Enable or disable concurrent execution of independent tool calls
175
+ * returned in the same turn. Disabled ("confirm" mode always runs
176
+ * sequentially since approval is interactive).
177
+ */
178
+ withToolConcurrency(enabled: boolean): this;
170
179
  /**
171
180
  * Hook for confirming tool execution in "confirm" mode.
172
- * Return true to proceed, false to cancel the specific call.
181
+ * Return true to proceed, false to cancel the specific call. When multiple
182
+ * handlers are registered, every one of them must approve.
173
183
  */
174
184
  onConfirmToolCall(handler: (toolCall: unknown) => Promise<boolean> | boolean): this;
175
185
  /**
176
186
  * Add a hook to process messages before sending to the LLM.
177
- * Useful for PII detection, redaction, and input moderation.
187
+ * Useful for PII detection, redaction, and input moderation. Multiple
188
+ * hooks chain: each one's output feeds the next.
178
189
  */
179
190
  beforeRequest(handler: (messages: Message[]) => Promise<Message[] | void>): this;
180
191
  /**
181
192
  * Add a hook to process the response before returning it.
182
- * Useful for output redaction, compliance, and post-moderation.
193
+ * Useful for output redaction, compliance, and post-moderation. Multiple
194
+ * hooks chain: each one's output feeds the next.
183
195
  */
184
196
  afterResponse(handler: (response: ChatResponseString) => Promise<ChatResponseString | void>): this;
185
197
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../src/chat/Chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,WAAW,EAGX,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EAET,cAAc,EACd,UAAU,EACX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAkB,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAapD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,qBAAa,IAAI,CAAC,CAAC,GAAG,OAAO;IAOzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAoB;gBAGpB,QAAQ,EAAE,QAAQ,EAC3B,KAAK,EAAE,MAAM,EACJ,OAAO,GAAE,WAAgB,EAC1C,WAAW,GAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAgC;IA8BlF;;OAEG;IACH,IAAI,OAAO,IAAI,SAAS,OAAO,EAAE,CAEhC;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,KAAK,CAuBtB;IAED;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAIpC;;;;;;;OAOG;IACH,SAAS,CACP,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;KACjC,GACA,IAAI;IA0BP;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKxC;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAKnD;;;;OAIG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAW5E;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAI5E;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAIlE;;;OAGG;IACH,GAAG,CACD,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,EAC5D,OAAO,EAAE,MAAM,GAAG,cAAc,GAC/B,IAAI;IAYP;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IASlC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAOtC;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKnC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B;;;OAGG;IACH,kBAAkB,CAAC,OAAO,EAAE;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,GAAG,IAAI;IAUR;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKjD;;;OAGG;IACH,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAgBtF;;;OAGG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,IAAI,GAAG,IAAI;IAS/D;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAK1C;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAM5D,YAAY,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAKvC,YAAY,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;IAKlE,UAAU,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAItD,YAAY,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAItD;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAK3D;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAK1E,eAAe,CACb,OAAO,EAAE,CACP,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,KAAK,KACT,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,GACxF,IAAI;IAKP;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAKhD;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,IAAI;IAKnF;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI;IAKhF;;;OAGG;IACH,aAAa,CACX,OAAO,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAC5E,IAAI;IAKP;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoa7F;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,CAAC,SAAS,CAAC;IAWpF;;OAEG;IACH,OAAO,CAAC,aAAa;CAoDtB"}
1
+ {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../src/chat/Chat.ts"],"names":[],"mappings":"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"}
package/dist/chat/Chat.js CHANGED
@@ -8,12 +8,14 @@ import { toJsonSchema } from "../schema/to-json-schema.js";
8
8
  import { randomUUID } from "node:crypto";
9
9
  import { z } from "zod";
10
10
  import { config } from "../config.js";
11
- import { ToolExecutionMode } from "../constants.js";
11
+ import { ToolExecutionMode, DEFAULT_MAX_CORRECTIONS } from "../constants.js";
12
12
  import { ConfigurationError } from "../errors/index.js";
13
13
  import { ChatValidator } from "./Validation.js";
14
14
  import { ToolHandler } from "./ToolHandler.js";
15
+ import { shouldRunToolCallsConcurrently, executeToolCallOutcomes } from "./ToolCallOutcome.js";
15
16
  import { logger } from "../utils/logger.js";
16
17
  import { runMiddleware } from "../utils/middleware-runner.js";
18
+ import { collectHandlers, runAllHandlers, runDirectiveHandlers, runConfirmHandlers, runChainHandlers } from "../utils/handler-stacking.js";
17
19
  import { ChatResponseString } from "./ChatResponse.js";
18
20
  export class Chat {
19
21
  provider;
@@ -45,6 +47,9 @@ export class Chat {
45
47
  if (!this.options.toolExecution) {
46
48
  this.options.toolExecution = config.toolExecution || ToolExecutionMode.AUTO;
47
49
  }
50
+ if (this.options.toolConcurrency === undefined) {
51
+ this.options.toolConcurrency = config.toolConcurrency;
52
+ }
48
53
  if (options.tools) {
49
54
  const toolList = options.tools;
50
55
  this.options.tools = []; // Clear and re-add via normalized method
@@ -285,11 +290,11 @@ export class Chat {
285
290
  }
286
291
  // --- Event Handlers ---
287
292
  onNewMessage(handler) {
288
- this.options.onNewMessage = handler;
293
+ this.options.onNewMessageHandlers = [...(this.options.onNewMessageHandlers ?? []), handler];
289
294
  return this;
290
295
  }
291
296
  onEndMessage(handler) {
292
- this.options.onEndMessage = handler;
297
+ this.options.onEndMessageHandlers = [...(this.options.onEndMessageHandlers ?? []), handler];
293
298
  return this;
294
299
  }
295
300
  onToolCall(handler) {
@@ -299,21 +304,29 @@ export class Chat {
299
304
  return this.onToolCallEnd((_call, result) => handler(result));
300
305
  }
301
306
  /**
302
- * Called when a tool call starts.
307
+ * Called when a tool call starts. Calling this more than once registers
308
+ * additional handlers rather than replacing the previous one.
303
309
  */
304
310
  onToolCallStart(handler) {
305
- this.options.onToolCallStart = handler;
311
+ this.options.onToolCallStartHandlers = [
312
+ ...(this.options.onToolCallStartHandlers ?? []),
313
+ handler
314
+ ];
306
315
  return this;
307
316
  }
308
317
  /**
309
- * Called when a tool call ends successfully.
318
+ * Called when a tool call ends successfully. Calling this more than once
319
+ * registers additional handlers rather than replacing the previous one.
310
320
  */
311
321
  onToolCallEnd(handler) {
312
- this.options.onToolCallEnd = handler;
322
+ this.options.onToolCallEndHandlers = [...(this.options.onToolCallEndHandlers ?? []), handler];
313
323
  return this;
314
324
  }
315
325
  onToolCallError(handler) {
316
- this.options.onToolCallError = handler;
326
+ this.options.onToolCallErrorHandlers = [
327
+ ...(this.options.onToolCallErrorHandlers ?? []),
328
+ handler
329
+ ];
317
330
  return this;
318
331
  }
319
332
  /**
@@ -326,28 +339,49 @@ export class Chat {
326
339
  this.options.toolExecution = mode;
327
340
  return this;
328
341
  }
342
+ /**
343
+ * Enable or disable concurrent execution of independent tool calls
344
+ * returned in the same turn. Disabled ("confirm" mode always runs
345
+ * sequentially since approval is interactive).
346
+ */
347
+ withToolConcurrency(enabled) {
348
+ this.options.toolConcurrency = enabled;
349
+ return this;
350
+ }
329
351
  /**
330
352
  * Hook for confirming tool execution in "confirm" mode.
331
- * Return true to proceed, false to cancel the specific call.
353
+ * Return true to proceed, false to cancel the specific call. When multiple
354
+ * handlers are registered, every one of them must approve.
332
355
  */
333
356
  onConfirmToolCall(handler) {
334
- this.options.onConfirmToolCall = handler;
357
+ this.options.onConfirmToolCallHandlers = [
358
+ ...(this.options.onConfirmToolCallHandlers ?? []),
359
+ handler
360
+ ];
335
361
  return this;
336
362
  }
337
363
  /**
338
364
  * Add a hook to process messages before sending to the LLM.
339
- * Useful for PII detection, redaction, and input moderation.
365
+ * Useful for PII detection, redaction, and input moderation. Multiple
366
+ * hooks chain: each one's output feeds the next.
340
367
  */
341
368
  beforeRequest(handler) {
342
- this.options.onBeforeRequest = handler;
369
+ this.options.onBeforeRequestHandlers = [
370
+ ...(this.options.onBeforeRequestHandlers ?? []),
371
+ handler
372
+ ];
343
373
  return this;
344
374
  }
345
375
  /**
346
376
  * Add a hook to process the response before returning it.
347
- * Useful for output redaction, compliance, and post-moderation.
377
+ * Useful for output redaction, compliance, and post-moderation. Multiple
378
+ * hooks chain: each one's output feeds the next.
348
379
  */
349
380
  afterResponse(handler) {
350
- this.options.onAfterResponse = handler;
381
+ this.options.onAfterResponseHandlers = [
382
+ ...(this.options.onAfterResponseHandlers ?? []),
383
+ handler
384
+ ];
351
385
  return this;
352
386
  }
353
387
  /**
@@ -398,6 +432,23 @@ export class Chat {
398
432
  options: this.options,
399
433
  state
400
434
  };
435
+ const newMessageHandlers = collectHandlers(this.options.onNewMessage, this.options.onNewMessageHandlers);
436
+ const endMessageHandlers = collectHandlers(this.options.onEndMessage, this.options.onEndMessageHandlers);
437
+ const beforeRequestHandlers = collectHandlers(this.options.onBeforeRequest, this.options.onBeforeRequestHandlers);
438
+ const afterResponseHandlers = collectHandlers(this.options.onAfterResponse, this.options.onAfterResponseHandlers);
439
+ const toolCallStartHandlers = collectHandlers(this.options.onToolCallStart, this.options.onToolCallStartHandlers);
440
+ const toolCallEndHandlers = collectHandlers(this.options.onToolCallEnd, this.options.onToolCallEndHandlers);
441
+ const toolCallErrorHandlers = collectHandlers(this.options.onToolCallError, this.options.onToolCallErrorHandlers);
442
+ const confirmToolCallHandlers = collectHandlers(this.options.onConfirmToolCall, this.options.onConfirmToolCallHandlers);
443
+ const combinedToolCallStart = toolCallStartHandlers.length
444
+ ? (call) => toolCallStartHandlers.forEach((handler) => handler(call))
445
+ : undefined;
446
+ const combinedToolCallEnd = toolCallEndHandlers.length
447
+ ? (call, result) => toolCallEndHandlers.forEach((handler) => handler(call, result))
448
+ : undefined;
449
+ const combinedConfirmToolCall = confirmToolCallHandlers.length
450
+ ? (call) => runConfirmHandlers(confirmToolCallHandlers, call)
451
+ : undefined;
401
452
  try {
402
453
  // 1. onRequest Hook
403
454
  await runMiddleware(this.middlewares, "onRequest", context);
@@ -426,12 +477,7 @@ export class Chat {
426
477
  ...this.options.params
427
478
  };
428
479
  // --- Content Policy Hooks (Input) ---
429
- if (this.options.onBeforeRequest) {
430
- const result = await this.options.onBeforeRequest(executeOptions.messages);
431
- if (result) {
432
- executeOptions.messages = result;
433
- }
434
- }
480
+ executeOptions.messages = await runChainHandlers(beforeRequestHandlers, executeOptions.messages);
435
481
  const trackUsage = (u) => {
436
482
  if (u) {
437
483
  if (u.cost === undefined) {
@@ -458,18 +504,12 @@ export class Chat {
458
504
  }
459
505
  };
460
506
  // Start generation
461
- if (this.options.onNewMessage)
462
- this.options.onNewMessage();
507
+ await runAllHandlers(newMessageHandlers);
463
508
  let response = await this.executor.executeChat(executeOptions);
464
509
  trackUsage(response.usage);
465
510
  assistantMessage = new ChatResponseString(response.content ?? "", response.usage ?? { input_tokens: 0, output_tokens: 0, total_tokens: 0 }, this.model, this.provider.id, response.thinking, response.reasoning, response.tool_calls, response.finish_reason, this.options.schema, response.metadata, response.attachments);
466
511
  // --- Content Policy Hooks (Output - Turn 1) ---
467
- if (this.options.onAfterResponse) {
468
- const result = await this.options.onAfterResponse(assistantMessage);
469
- if (result) {
470
- assistantMessage = result;
471
- }
472
- }
512
+ assistantMessage = await runChainHandlers(afterResponseHandlers, assistantMessage);
473
513
  // Add to history (temporary, might be rolled back on retry)
474
514
  this.messages.push({
475
515
  role: "assistant",
@@ -477,9 +517,8 @@ export class Chat {
477
517
  tool_calls: response.tool_calls,
478
518
  usage: response.usage
479
519
  });
480
- if (this.options.onEndMessage &&
481
- (!response.tool_calls || response.tool_calls.length === 0)) {
482
- this.options.onEndMessage(assistantMessage);
520
+ if (!response.tool_calls || response.tool_calls.length === 0) {
521
+ await runAllHandlers(endMessageHandlers, assistantMessage);
483
522
  }
484
523
  const maxToolCalls = options?.maxToolCalls ?? this.options.maxToolCalls ?? 5;
485
524
  let stepCount = 0;
@@ -493,55 +532,56 @@ export class Chat {
493
532
  if (stepCount > maxToolCalls) {
494
533
  throw new Error(`[NodeLLM] Maximum tool execution calls (${maxToolCalls}) exceeded.`);
495
534
  }
496
- for (const toolCall of response.tool_calls) {
497
- if (this.options.toolExecution === ToolExecutionMode.CONFIRM) {
498
- const approved = await ToolHandler.requestToolConfirmation(toolCall, this.options.onConfirmToolCall);
499
- if (!approved) {
500
- this.messages.push(this.provider.formatToolResultMessage(toolCall.id, "Action cancelled by user."));
501
- continue;
502
- }
535
+ const runConcurrently = shouldRunToolCallsConcurrently(this.options.toolConcurrency, this.options.toolExecution, response.tool_calls.length);
536
+ const outcomes = await executeToolCallOutcomes(response.tool_calls, {
537
+ ...this.options,
538
+ tools: this.options.tools,
539
+ onToolCallStart: combinedToolCallStart,
540
+ onToolCallEnd: combinedToolCallEnd,
541
+ onConfirmToolCall: combinedConfirmToolCall
542
+ }, this.middlewares, context, runConcurrently);
543
+ for (const outcome of outcomes) {
544
+ const toolCall = outcome.toolCall;
545
+ if (outcome.kind === "cancelled") {
546
+ this.messages.push(this.provider.formatToolResultMessage(toolCall.id, "Action cancelled by user."));
547
+ continue;
503
548
  }
504
- await runMiddleware(this.middlewares, "onToolCallStart", context, toolCall);
505
- try {
506
- const toolResult = await ToolHandler.execute(toolCall, this.options.tools, this.options.onToolCallStart, this.options.onToolCallEnd);
507
- await runMiddleware(this.middlewares, "onToolCallEnd", context, toolCall, toolResult.content);
549
+ if (outcome.kind === "success") {
550
+ const { toolResult } = outcome;
508
551
  this.messages.push(this.provider.formatToolResultMessage(toolResult.tool_call_id, toolResult.content));
509
552
  if (toolResult.halted) {
510
553
  haltTriggered = true;
511
554
  assistantMessage = new ChatResponseString(toolResult.content, totalUsage, this.model, this.provider.id, undefined, undefined, undefined, "tool_halt");
512
- if (this.options.onEndMessage) {
513
- this.options.onEndMessage(assistantMessage);
514
- }
555
+ await runAllHandlers(endMessageHandlers, assistantMessage);
515
556
  break;
516
557
  }
558
+ continue;
517
559
  }
518
- catch (error) {
519
- let currentError = error;
520
- const middlewareDirective = await runMiddleware(this.middlewares, "onToolCallError", context, toolCall, currentError);
521
- const directive = middlewareDirective ||
522
- (await this.options.onToolCallError?.(toolCall, currentError));
523
- if (directive === "STOP")
524
- throw currentError;
525
- if (directive === "RETRY") {
526
- try {
527
- const toolResult = await ToolHandler.execute(toolCall, this.options.tools, this.options.onToolCallStart, this.options.onToolCallEnd);
528
- await runMiddleware(this.middlewares, "onToolCallEnd", context, toolCall, toolResult.content);
529
- this.messages.push(this.provider.formatToolResultMessage(toolResult.tool_call_id, toolResult.content));
530
- continue;
531
- }
532
- catch (retryError) {
533
- currentError = retryError;
534
- await runMiddleware(this.middlewares, "onToolCallError", context, toolCall, currentError);
535
- }
536
- }
537
- this.messages.push(this.provider.formatToolResultMessage(toolCall.id, `Fatal error executing tool '${toolCall.function.name}': ${currentError.message}`, { isError: true }));
538
- if (directive === "CONTINUE")
560
+ let currentError = outcome.error;
561
+ const middlewareDirective = await runMiddleware(this.middlewares, "onToolCallError", context, toolCall, currentError);
562
+ const directive = middlewareDirective ||
563
+ (await runDirectiveHandlers(toolCallErrorHandlers, toolCall, currentError));
564
+ if (directive === "STOP")
565
+ throw currentError;
566
+ if (directive === "RETRY") {
567
+ try {
568
+ const toolResult = await ToolHandler.execute(toolCall, this.options.tools, combinedToolCallStart, combinedToolCallEnd);
569
+ await runMiddleware(this.middlewares, "onToolCallEnd", context, toolCall, toolResult.content);
570
+ this.messages.push(this.provider.formatToolResultMessage(toolResult.tool_call_id, toolResult.content));
539
571
  continue;
540
- const errorObj = currentError;
541
- if (errorObj.fatal || errorObj.status === 401 || errorObj.status === 403)
542
- throw currentError;
543
- logger.error(`Tool execution failed:`, currentError);
572
+ }
573
+ catch (retryError) {
574
+ currentError = retryError;
575
+ await runMiddleware(this.middlewares, "onToolCallError", context, toolCall, currentError);
576
+ }
544
577
  }
578
+ this.messages.push(this.provider.formatToolResultMessage(toolCall.id, `Fatal error executing tool '${toolCall.function.name}': ${currentError.message}`, { isError: true }));
579
+ if (directive === "CONTINUE")
580
+ continue;
581
+ const errorObj = currentError;
582
+ if (errorObj.fatal || errorObj.status === 401 || errorObj.status === 403)
583
+ throw currentError;
584
+ logger.error(`Tool execution failed:`, currentError);
545
585
  }
546
586
  if (haltTriggered)
547
587
  break;
@@ -562,27 +602,26 @@ export class Chat {
562
602
  });
563
603
  trackUsage(response.usage);
564
604
  assistantMessage = new ChatResponseString(response.content ?? "", response.usage ?? { input_tokens: 0, output_tokens: 0, total_tokens: 0 }, this.model, this.provider.id, response.thinking, response.reasoning, response.tool_calls, response.finish_reason, this.options.schema, response.metadata, response.attachments);
565
- if (this.options.onAfterResponse) {
566
- const result = await this.options.onAfterResponse(assistantMessage);
567
- if (result)
568
- assistantMessage = result;
569
- }
605
+ assistantMessage = await runChainHandlers(afterResponseHandlers, assistantMessage);
570
606
  this.messages.push({
571
607
  role: "assistant",
572
608
  content: assistantMessage?.toString() || null,
573
609
  tool_calls: response.tool_calls,
574
610
  usage: response.usage
575
611
  });
576
- if (this.options.onEndMessage &&
577
- (!response.tool_calls || response.tool_calls.length === 0)) {
578
- this.options.onEndMessage(assistantMessage);
612
+ if (!response.tool_calls || response.tool_calls.length === 0) {
613
+ await runAllHandlers(endMessageHandlers, assistantMessage);
579
614
  }
580
615
  }
581
- finalResponse = new ChatResponseString(assistantMessage.toString() || "", totalUsage, this.model, this.provider.id, assistantMessage.thinking, assistantMessage.reasoning, response.tool_calls, assistantMessage.finish_reason, this.options.schema);
616
+ finalResponse = new ChatResponseString(assistantMessage.toString() || "", totalUsage, this.model, this.provider.id, assistantMessage.thinking, assistantMessage.reasoning, response.tool_calls, assistantMessage.finish_reason, this.options.schema, assistantMessage.metadata, assistantMessage.attachments);
582
617
  // 5. onResponse Hook
583
618
  const requestDirective = await runMiddleware(this.middlewares, "onResponse", context, finalResponse);
584
619
  if (requestDirective && typeof requestDirective === "object") {
585
620
  if (requestDirective.action === "RETRY") {
621
+ const maxCorrections = options?.maxCorrections ?? this.options.maxCorrections ?? DEFAULT_MAX_CORRECTIONS;
622
+ if (correctionAttempt >= maxCorrections) {
623
+ throw new Error(`[NodeLLM] Maximum self-correction retries (${maxCorrections}) exceeded.`);
624
+ }
586
625
  // Push feedback to history and try again
587
626
  this.messages.push({
588
627
  role: "user",
@@ -18,6 +18,17 @@ export interface ChatOptions {
18
18
  onToolCallStart?: (toolCall: unknown) => void;
19
19
  onToolCallEnd?: (toolCall: unknown, result: unknown) => void;
20
20
  onToolCallError?: (toolCall: unknown, error: Error) => "STOP" | "CONTINUE" | "RETRY" | void | Promise<"STOP" | "CONTINUE" | "RETRY" | void>;
21
+ /**
22
+ * Additional handlers registered via the fluent on*() methods. Each on*()
23
+ * call appends here instead of overwriting the single onX field above, so
24
+ * e.g. calling chat.onToolCallStart() twice runs both handlers instead of
25
+ * silently dropping the first.
26
+ */
27
+ onNewMessageHandlers?: Array<() => void>;
28
+ onEndMessageHandlers?: Array<(message: ChatResponseString) => void>;
29
+ onToolCallStartHandlers?: Array<(toolCall: unknown) => void>;
30
+ onToolCallEndHandlers?: Array<(toolCall: unknown, result: unknown) => void>;
31
+ onToolCallErrorHandlers?: Array<(toolCall: unknown, error: Error) => "STOP" | "CONTINUE" | "RETRY" | void | Promise<"STOP" | "CONTINUE" | "RETRY" | void>>;
21
32
  headers?: Record<string, string>;
22
33
  responseFormat?: ResponseFormat;
23
34
  thinking?: ThinkingConfig;
@@ -27,12 +38,21 @@ export interface ChatOptions {
27
38
  assumeModelExists?: boolean;
28
39
  provider?: string;
29
40
  maxToolCalls?: number;
41
+ maxCorrections?: number;
30
42
  requestTimeout?: number;
31
43
  toolExecution?: ToolExecutionMode;
44
+ /**
45
+ * When true, independent tool calls returned in the same turn are executed
46
+ * concurrently instead of one at a time. Defaults to `config.toolConcurrency`.
47
+ */
48
+ toolConcurrency?: boolean;
32
49
  toolChoice?: ToolChoice;
33
50
  toolCalls?: "one" | "many" | number;
34
51
  onConfirmToolCall?: (toolCall: unknown) => Promise<boolean> | boolean;
35
52
  onBeforeRequest?: (messages: Message[]) => Promise<Message[] | void>;
36
53
  onAfterResponse?: (response: ChatResponseString) => Promise<ChatResponseString | void>;
54
+ onConfirmToolCallHandlers?: Array<(toolCall: unknown) => Promise<boolean> | boolean>;
55
+ onBeforeRequestHandlers?: Array<(messages: Message[]) => Promise<Message[] | void>>;
56
+ onAfterResponseHandlers?: Array<(response: ChatResponseString) => Promise<ChatResponseString | void>>;
37
57
  }
38
58
  //# sourceMappingURL=ChatOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatOptions.d.ts","sourceRoot":"","sources":["../../src/chat/ChatOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtF,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACrD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7D,eAAe,CAAC,EAAE,CAChB,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,KAAK,KACT,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACtE,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACrE,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;CACxF"}
1
+ {"version":3,"file":"ChatOptions.d.ts","sourceRoot":"","sources":["../../src/chat/ChatOptions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatStream.d.ts","sourceRoot":"","sources":["../../src/chat/ChatStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,WAAW,EAIZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAyB,MAAM,0BAA0B,CAAC;AAEtF,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAavC;;;GAGG;AACH,qBAAa,UAAU;IAKnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,cAAc,CAAY;gBAGf,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,EAC1C,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,cAAc,CAAC,EAAE,OAAO,EAAE;IA6B5B,IAAI,OAAO,IAAI,SAAS,OAAO,EAAE,CAEhC;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,CAAC,SAAS,CAAC;CAwXrF"}
1
+ {"version":3,"file":"ChatStream.d.ts","sourceRoot":"","sources":["../../src/chat/ChatStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,WAAW,EAIZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAyB,MAAM,0BAA0B,CAAC;AAEtF,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAqBvC;;;GAGG;AACH,qBAAa,UAAU;IAKnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,cAAc,CAAY;gBAGf,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,EAC1C,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,cAAc,CAAC,EAAE,OAAO,EAAE;IAiC5B,IAAI,OAAO,IAAI,SAAS,OAAO,EAAE,CAEhC;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,CAAC,SAAS,CAAC;CAuZrF"}