modelfusion 0.71.0 → 0.72.0

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 (140) hide show
  1. package/README.md +57 -45
  2. package/core/FunctionEvent.d.ts +5 -5
  3. package/guard/guard.cjs +5 -4
  4. package/guard/guard.d.ts +1 -1
  5. package/guard/guard.js +5 -4
  6. package/model-function/ModelCallEvent.d.ts +2 -2
  7. package/model-function/generate-structure/StructureGenerationEvent.d.ts +2 -2
  8. package/model-function/generate-structure/StructureParseError.cjs +10 -0
  9. package/model-function/generate-structure/StructureParseError.d.ts +8 -0
  10. package/model-function/generate-structure/StructureParseError.js +10 -0
  11. package/model-function/generate-structure/index.cjs +0 -3
  12. package/model-function/generate-structure/index.d.ts +0 -3
  13. package/model-function/generate-structure/index.js +0 -3
  14. package/model-function/index.cjs +0 -1
  15. package/model-function/index.d.ts +0 -1
  16. package/model-function/index.js +0 -1
  17. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.d.ts +3 -3
  18. package/model-provider/openai/chat/OpenAIChatMessage.cjs +16 -25
  19. package/model-provider/openai/chat/OpenAIChatMessage.d.ts +10 -28
  20. package/model-provider/openai/chat/OpenAIChatMessage.js +16 -25
  21. package/model-provider/openai/chat/OpenAIChatModel.cjs +2 -48
  22. package/model-provider/openai/chat/OpenAIChatModel.d.ts +15 -107
  23. package/model-provider/openai/chat/OpenAIChatModel.js +2 -48
  24. package/package.json +1 -1
  25. package/tool/Tool.cjs +5 -16
  26. package/tool/Tool.d.ts +9 -14
  27. package/tool/Tool.js +5 -16
  28. package/tool/ToolCall.d.ts +15 -0
  29. package/tool/ToolCallArgumentsValidationError.cjs +49 -0
  30. package/tool/ToolCallArgumentsValidationError.d.ts +23 -0
  31. package/tool/ToolCallArgumentsValidationError.js +45 -0
  32. package/tool/ToolCallError.cjs +34 -0
  33. package/tool/ToolCallError.d.ts +17 -0
  34. package/tool/ToolCallError.js +30 -0
  35. package/{model-function/generate-tool-call → tool}/ToolCallGenerationError.cjs +4 -4
  36. package/{model-function/generate-tool-call → tool}/ToolCallGenerationError.d.ts +1 -1
  37. package/{model-function/generate-tool-call → tool}/ToolCallGenerationError.js +2 -2
  38. package/{model-function/generate-tool-call/ToolCallParametersValidationError.cjs → tool/ToolCallParseError.cjs} +13 -13
  39. package/{model-function/generate-tool-call/ToolCallParametersValidationError.d.ts → tool/ToolCallParseError.d.ts} +6 -6
  40. package/{model-function/generate-tool-call/ToolCallParametersValidationError.js → tool/ToolCallParseError.js} +11 -11
  41. package/tool/ToolCallResult.d.ts +13 -0
  42. package/{model-function/generate-tool-call → tool}/ToolDefinition.d.ts +2 -2
  43. package/tool/ToolExecutionError.cjs +5 -4
  44. package/tool/ToolExecutionError.d.ts +4 -4
  45. package/tool/ToolExecutionError.js +5 -4
  46. package/tool/WebSearchTool.cjs +4 -4
  47. package/tool/WebSearchTool.d.ts +2 -2
  48. package/tool/WebSearchTool.js +4 -4
  49. package/tool/{ExecuteToolEvent.d.ts → execute-tool/ExecuteToolEvent.d.ts} +1 -1
  50. package/tool/{executeTool.cjs → execute-tool/executeTool.cjs} +15 -15
  51. package/tool/{executeTool.d.ts → execute-tool/executeTool.d.ts} +6 -6
  52. package/tool/{executeTool.js → execute-tool/executeTool.js} +15 -15
  53. package/tool/execute-tool/index.cjs +18 -0
  54. package/tool/execute-tool/index.d.ts +2 -0
  55. package/tool/execute-tool/index.js +2 -0
  56. package/tool/execute-tool/safeExecuteToolCall.cjs +34 -0
  57. package/tool/execute-tool/safeExecuteToolCall.d.ts +5 -0
  58. package/tool/execute-tool/safeExecuteToolCall.js +30 -0
  59. package/tool/generate-tool-call/TextGenerationToolCallModel.cjs +59 -0
  60. package/tool/generate-tool-call/TextGenerationToolCallModel.d.ts +35 -0
  61. package/tool/generate-tool-call/TextGenerationToolCallModel.js +55 -0
  62. package/{model-function → tool}/generate-tool-call/ToolCallGenerationEvent.d.ts +1 -1
  63. package/{model-function → tool}/generate-tool-call/ToolCallGenerationModel.d.ts +3 -3
  64. package/{model-function → tool}/generate-tool-call/generateToolCall.cjs +11 -11
  65. package/{model-function → tool}/generate-tool-call/generateToolCall.d.ts +3 -3
  66. package/{model-function → tool}/generate-tool-call/generateToolCall.js +11 -11
  67. package/tool/generate-tool-call/index.cjs +20 -0
  68. package/tool/generate-tool-call/index.d.ts +4 -0
  69. package/tool/generate-tool-call/index.js +4 -0
  70. package/{model-function/generate-tool-call → tool/generate-tool-calls-or-text}/ToolCallsOrTextGenerationEvent.d.ts +1 -1
  71. package/{model-function/generate-tool-call → tool/generate-tool-calls-or-text}/ToolCallsOrTextGenerationModel.d.ts +3 -3
  72. package/{model-function/generate-tool-call → tool/generate-tool-calls-or-text}/generateToolCallsOrText.cjs +8 -8
  73. package/{model-function/generate-tool-call → tool/generate-tool-calls-or-text}/generateToolCallsOrText.d.ts +3 -3
  74. package/{model-function/generate-tool-call → tool/generate-tool-calls-or-text}/generateToolCallsOrText.js +8 -8
  75. package/{model-function/generate-tool-call → tool/generate-tool-calls-or-text}/index.cjs +0 -7
  76. package/tool/generate-tool-calls-or-text/index.d.ts +3 -0
  77. package/tool/generate-tool-calls-or-text/index.js +3 -0
  78. package/tool/index.cjs +12 -7
  79. package/tool/index.d.ts +12 -7
  80. package/tool/index.js +12 -7
  81. package/tool/{UseToolEvent.d.ts → use-tool/UseToolEvent.d.ts} +1 -1
  82. package/tool/use-tool/index.cjs +18 -0
  83. package/tool/use-tool/index.d.ts +2 -0
  84. package/tool/use-tool/index.js +2 -0
  85. package/tool/use-tool/useTool.cjs +30 -0
  86. package/tool/use-tool/useTool.d.ts +16 -0
  87. package/tool/use-tool/useTool.js +26 -0
  88. package/tool/use-tools-or-generate-text/UseToolsOrGenerateTextEvent.d.ts +7 -0
  89. package/tool/use-tools-or-generate-text/index.cjs +18 -0
  90. package/tool/use-tools-or-generate-text/index.d.ts +2 -0
  91. package/tool/use-tools-or-generate-text/index.js +2 -0
  92. package/tool/use-tools-or-generate-text/useToolsOrGenerateText.cjs +48 -0
  93. package/tool/use-tools-or-generate-text/useToolsOrGenerateText.d.ts +18 -0
  94. package/tool/use-tools-or-generate-text/useToolsOrGenerateText.js +44 -0
  95. package/util/getErrorMessage.cjs +3 -0
  96. package/util/getErrorMessage.d.ts +1 -1
  97. package/util/getErrorMessage.js +3 -0
  98. package/model-function/generate-structure/NoSuchStructureError.cjs +0 -17
  99. package/model-function/generate-structure/NoSuchStructureError.d.ts +0 -4
  100. package/model-function/generate-structure/NoSuchStructureError.js +0 -13
  101. package/model-function/generate-structure/StructureOrTextGenerationModel.d.ts +0 -26
  102. package/model-function/generate-structure/generateStructureOrText.cjs +0 -54
  103. package/model-function/generate-structure/generateStructureOrText.d.ts +0 -97
  104. package/model-function/generate-structure/generateStructureOrText.js +0 -50
  105. package/model-function/generate-tool-call/ToolCall.d.ts +0 -5
  106. package/model-function/generate-tool-call/index.d.ts +0 -10
  107. package/model-function/generate-tool-call/index.js +0 -10
  108. package/tool/NoSuchToolError.cjs +0 -25
  109. package/tool/NoSuchToolError.d.ts +0 -10
  110. package/tool/NoSuchToolError.js +0 -21
  111. package/tool/UseToolOrGenerateTextEvent.d.ts +0 -7
  112. package/tool/useTool.cjs +0 -40
  113. package/tool/useTool.d.ts +0 -15
  114. package/tool/useTool.js +0 -36
  115. package/tool/useToolOrGenerateText.cjs +0 -50
  116. package/tool/useToolOrGenerateText.d.ts +0 -23
  117. package/tool/useToolOrGenerateText.js +0 -46
  118. /package/{model-function/generate-tool-call → tool}/NoSuchToolDefinitionError.cjs +0 -0
  119. /package/{model-function/generate-tool-call → tool}/NoSuchToolDefinitionError.d.ts +0 -0
  120. /package/{model-function/generate-tool-call → tool}/NoSuchToolDefinitionError.js +0 -0
  121. /package/{model-function/generate-tool-call → tool}/ToolCall.cjs +0 -0
  122. /package/{model-function/generate-tool-call → tool}/ToolCall.js +0 -0
  123. /package/{model-function/generate-structure/StructureOrTextGenerationModel.cjs → tool/ToolCallResult.cjs} +0 -0
  124. /package/{model-function/generate-structure/StructureOrTextGenerationModel.js → tool/ToolCallResult.js} +0 -0
  125. /package/{model-function/generate-tool-call → tool}/ToolDefinition.cjs +0 -0
  126. /package/{model-function/generate-tool-call → tool}/ToolDefinition.js +0 -0
  127. /package/tool/{ExecuteToolEvent.cjs → execute-tool/ExecuteToolEvent.cjs} +0 -0
  128. /package/tool/{ExecuteToolEvent.js → execute-tool/ExecuteToolEvent.js} +0 -0
  129. /package/{model-function → tool}/generate-tool-call/ToolCallGenerationEvent.cjs +0 -0
  130. /package/{model-function → tool}/generate-tool-call/ToolCallGenerationEvent.js +0 -0
  131. /package/{model-function → tool}/generate-tool-call/ToolCallGenerationModel.cjs +0 -0
  132. /package/{model-function → tool}/generate-tool-call/ToolCallGenerationModel.js +0 -0
  133. /package/{model-function/generate-tool-call → tool/generate-tool-calls-or-text}/ToolCallsOrTextGenerationEvent.cjs +0 -0
  134. /package/{model-function/generate-tool-call → tool/generate-tool-calls-or-text}/ToolCallsOrTextGenerationEvent.js +0 -0
  135. /package/{model-function/generate-tool-call → tool/generate-tool-calls-or-text}/ToolCallsOrTextGenerationModel.cjs +0 -0
  136. /package/{model-function/generate-tool-call → tool/generate-tool-calls-or-text}/ToolCallsOrTextGenerationModel.js +0 -0
  137. /package/tool/{UseToolEvent.cjs → use-tool/UseToolEvent.cjs} +0 -0
  138. /package/tool/{UseToolEvent.js → use-tool/UseToolEvent.js} +0 -0
  139. /package/tool/{UseToolOrGenerateTextEvent.cjs → use-tools-or-generate-text/UseToolsOrGenerateTextEvent.cjs} +0 -0
  140. /package/tool/{UseToolOrGenerateTextEvent.js → use-tools-or-generate-text/UseToolsOrGenerateTextEvent.js} +0 -0
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.safeExecuteToolCall = void 0;
4
+ const ToolCallError_js_1 = require("../ToolCallError.cjs");
5
+ const ToolExecutionError_js_1 = require("../ToolExecutionError.cjs");
6
+ const executeTool_js_1 = require("./executeTool.cjs");
7
+ async function safeExecuteToolCall(tool, toolCall, options) {
8
+ try {
9
+ return {
10
+ tool: toolCall.name,
11
+ toolCall,
12
+ args: toolCall.args,
13
+ ok: true,
14
+ result: await (0, executeTool_js_1.executeTool)(tool, toolCall.args, options),
15
+ };
16
+ }
17
+ catch (error) {
18
+ // If the error is an AbortError, rethrow it.
19
+ if (error instanceof Error && error.name === "AbortError") {
20
+ throw error;
21
+ }
22
+ return {
23
+ tool: toolCall.name,
24
+ toolCall,
25
+ args: toolCall.args,
26
+ ok: false,
27
+ result: new ToolCallError_js_1.ToolCallError({
28
+ toolCall,
29
+ cause: error instanceof ToolExecutionError_js_1.ToolExecutionError ? error.cause : error,
30
+ }),
31
+ };
32
+ }
33
+ }
34
+ exports.safeExecuteToolCall = safeExecuteToolCall;
@@ -0,0 +1,5 @@
1
+ import { FunctionOptions } from "../../core/FunctionOptions.js";
2
+ import { Tool } from "../Tool.js";
3
+ import { ToolCall } from "../ToolCall.js";
4
+ import { ToolCallResult } from "../ToolCallResult.js";
5
+ export declare function safeExecuteToolCall<TOOL extends Tool<string, unknown, any>>(tool: TOOL, toolCall: ToolCall<TOOL["name"], TOOL["parameters"]>, options?: FunctionOptions): Promise<ToolCallResult<TOOL["name"], TOOL["parameters"], Awaited<ReturnType<TOOL["execute"]>>>>;
@@ -0,0 +1,30 @@
1
+ import { ToolCallError } from "../ToolCallError.js";
2
+ import { ToolExecutionError } from "../ToolExecutionError.js";
3
+ import { executeTool } from "./executeTool.js";
4
+ export async function safeExecuteToolCall(tool, toolCall, options) {
5
+ try {
6
+ return {
7
+ tool: toolCall.name,
8
+ toolCall,
9
+ args: toolCall.args,
10
+ ok: true,
11
+ result: await executeTool(tool, toolCall.args, options),
12
+ };
13
+ }
14
+ catch (error) {
15
+ // If the error is an AbortError, rethrow it.
16
+ if (error instanceof Error && error.name === "AbortError") {
17
+ throw error;
18
+ }
19
+ return {
20
+ tool: toolCall.name,
21
+ toolCall,
22
+ args: toolCall.args,
23
+ ok: false,
24
+ result: new ToolCallError({
25
+ toolCall,
26
+ cause: error instanceof ToolExecutionError ? error.cause : error,
27
+ }),
28
+ };
29
+ }
30
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextGenerationToolCallModel = void 0;
4
+ const generateText_js_1 = require("../../model-function/generate-text/generateText.cjs");
5
+ const ToolCallParseError_js_1 = require("../ToolCallParseError.cjs");
6
+ class TextGenerationToolCallModel {
7
+ constructor({ model, format, }) {
8
+ Object.defineProperty(this, "model", {
9
+ enumerable: true,
10
+ configurable: true,
11
+ writable: true,
12
+ value: void 0
13
+ });
14
+ Object.defineProperty(this, "format", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: void 0
19
+ });
20
+ this.model = model;
21
+ this.format = format;
22
+ }
23
+ get modelInformation() {
24
+ return this.model.modelInformation;
25
+ }
26
+ get settings() {
27
+ return this.model.settings;
28
+ }
29
+ get settingsForEvent() {
30
+ return this.model.settingsForEvent;
31
+ }
32
+ async doGenerateToolCall(tool, prompt, options) {
33
+ const { response, value, metadata } = await (0, generateText_js_1.generateText)(this.model, this.format.createPrompt(prompt, tool), {
34
+ ...options,
35
+ returnType: "full",
36
+ });
37
+ try {
38
+ return {
39
+ response,
40
+ toolCall: this.format.extractToolCall(value),
41
+ usage: metadata?.usage,
42
+ };
43
+ }
44
+ catch (error) {
45
+ throw new ToolCallParseError_js_1.ToolCallParseError({
46
+ toolName: tool.name,
47
+ valueText: value,
48
+ cause: error,
49
+ });
50
+ }
51
+ }
52
+ withSettings(additionalSettings) {
53
+ return new TextGenerationToolCallModel({
54
+ model: this.model.withSettings(additionalSettings),
55
+ format: this.format,
56
+ });
57
+ }
58
+ }
59
+ exports.TextGenerationToolCallModel = TextGenerationToolCallModel;
@@ -0,0 +1,35 @@
1
+ import { FunctionOptions } from "../../core/FunctionOptions.js";
2
+ import { TextGenerationModel, TextGenerationModelSettings } from "../../model-function/generate-text/TextGenerationModel.js";
3
+ import { ToolDefinition } from "../ToolDefinition.js";
4
+ import { ToolCallGenerationModel } from "./ToolCallGenerationModel.js";
5
+ export interface ToolCallTextPromptFormat<PROMPT> {
6
+ createPrompt: (prompt: PROMPT, tool: ToolDefinition<string, unknown>) => string;
7
+ extractToolCall: (response: string) => {
8
+ id: string;
9
+ args: unknown;
10
+ } | null;
11
+ }
12
+ export declare class TextGenerationToolCallModel<PROMPT, MODEL extends TextGenerationModel<string, TextGenerationModelSettings>> implements ToolCallGenerationModel<PROMPT, MODEL["settings"]> {
13
+ private readonly model;
14
+ private readonly format;
15
+ constructor({ model, format, }: {
16
+ model: MODEL;
17
+ format: ToolCallTextPromptFormat<PROMPT>;
18
+ });
19
+ get modelInformation(): import("../../index.js").ModelInformation;
20
+ get settings(): TextGenerationModelSettings;
21
+ get settingsForEvent(): Partial<MODEL["settings"]>;
22
+ doGenerateToolCall(tool: ToolDefinition<string, unknown>, prompt: PROMPT, options?: FunctionOptions): Promise<{
23
+ response: unknown;
24
+ toolCall: {
25
+ id: string;
26
+ args: unknown;
27
+ } | null;
28
+ usage: {
29
+ promptTokens: number;
30
+ completionTokens: number;
31
+ totalTokens: number;
32
+ } | undefined;
33
+ }>;
34
+ withSettings(additionalSettings: Partial<MODEL["settings"]>): this;
35
+ }
@@ -0,0 +1,55 @@
1
+ import { generateText } from "../../model-function/generate-text/generateText.js";
2
+ import { ToolCallParseError } from "../ToolCallParseError.js";
3
+ export class TextGenerationToolCallModel {
4
+ constructor({ model, format, }) {
5
+ Object.defineProperty(this, "model", {
6
+ enumerable: true,
7
+ configurable: true,
8
+ writable: true,
9
+ value: void 0
10
+ });
11
+ Object.defineProperty(this, "format", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: void 0
16
+ });
17
+ this.model = model;
18
+ this.format = format;
19
+ }
20
+ get modelInformation() {
21
+ return this.model.modelInformation;
22
+ }
23
+ get settings() {
24
+ return this.model.settings;
25
+ }
26
+ get settingsForEvent() {
27
+ return this.model.settingsForEvent;
28
+ }
29
+ async doGenerateToolCall(tool, prompt, options) {
30
+ const { response, value, metadata } = await generateText(this.model, this.format.createPrompt(prompt, tool), {
31
+ ...options,
32
+ returnType: "full",
33
+ });
34
+ try {
35
+ return {
36
+ response,
37
+ toolCall: this.format.extractToolCall(value),
38
+ usage: metadata?.usage,
39
+ };
40
+ }
41
+ catch (error) {
42
+ throw new ToolCallParseError({
43
+ toolName: tool.name,
44
+ valueText: value,
45
+ cause: error,
46
+ });
47
+ }
48
+ }
49
+ withSettings(additionalSettings) {
50
+ return new TextGenerationToolCallModel({
51
+ model: this.model.withSettings(additionalSettings),
52
+ format: this.format,
53
+ });
54
+ }
55
+ }
@@ -1,4 +1,4 @@
1
- import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../ModelCallEvent.js";
1
+ import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../../model-function/ModelCallEvent.js";
2
2
  export interface ToolCallGenerationStartedEvent extends BaseModelCallStartedEvent {
3
3
  functionType: "generate-tool-call";
4
4
  }
@@ -1,6 +1,6 @@
1
1
  import { FunctionOptions } from "../../core/FunctionOptions.js";
2
- import { Model, ModelSettings } from "../Model.js";
3
- import { ToolDefinition } from "./ToolDefinition.js";
2
+ import { Model, ModelSettings } from "../../model-function/Model.js";
3
+ import { ToolDefinition } from "../ToolDefinition.js";
4
4
  export interface ToolCallGenerationModelSettings extends ModelSettings {
5
5
  }
6
6
  export interface ToolCallGenerationModel<PROMPT, SETTINGS extends ToolCallGenerationModelSettings = ToolCallGenerationModelSettings> extends Model<SETTINGS> {
@@ -8,7 +8,7 @@ export interface ToolCallGenerationModel<PROMPT, SETTINGS extends ToolCallGenera
8
8
  response: unknown;
9
9
  toolCall: {
10
10
  id: string;
11
- parameters: unknown;
11
+ args: unknown;
12
12
  } | null;
13
13
  usage?: {
14
14
  promptTokens: number;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateToolCall = void 0;
4
- const executeStandardCall_js_1 = require("../executeStandardCall.cjs");
5
- const ToolCallParametersValidationError_js_1 = require("./ToolCallParametersValidationError.cjs");
6
- const ToolCallGenerationError_js_1 = require("./ToolCallGenerationError.cjs");
4
+ const executeStandardCall_js_1 = require("../../model-function/executeStandardCall.cjs");
5
+ const ToolCallArgumentsValidationError_js_1 = require("../ToolCallArgumentsValidationError.cjs");
6
+ const ToolCallGenerationError_js_1 = require("../ToolCallGenerationError.cjs");
7
7
  async function generateToolCall(model, tool, prompt, options) {
8
8
  // Note: PROMPT must not be a function.
9
9
  const expandedPrompt = typeof prompt === "function"
@@ -19,16 +19,16 @@ async function generateToolCall(model, tool, prompt, options) {
19
19
  const result = await model.doGenerateToolCall(tool, expandedPrompt, options);
20
20
  const toolCall = result.toolCall;
21
21
  if (toolCall === null) {
22
- throw new ToolCallGenerationError_js_1.ToolCallsGenerationError({
22
+ throw new ToolCallGenerationError_js_1.ToolCallGenerationError({
23
23
  toolName: tool.name,
24
24
  cause: "No tool call generated.",
25
25
  });
26
26
  }
27
- const parseResult = tool.parameters.validate(toolCall.parameters);
27
+ const parseResult = tool.parameters.validate(toolCall.args);
28
28
  if (!parseResult.success) {
29
- throw new ToolCallParametersValidationError_js_1.ToolCallParametersValidationError({
29
+ throw new ToolCallArgumentsValidationError_js_1.ToolCallArgumentsValidationError({
30
30
  toolName: tool.name,
31
- parameters: toolCall.parameters,
31
+ args: toolCall.args,
32
32
  cause: parseResult.error,
33
33
  });
34
34
  }
@@ -37,17 +37,17 @@ async function generateToolCall(model, tool, prompt, options) {
37
37
  extractedValue: {
38
38
  id: toolCall.id,
39
39
  name: tool.name,
40
- parameters: parseResult.data,
40
+ args: parseResult.data,
41
41
  },
42
42
  usage: result.usage,
43
43
  };
44
44
  }
45
45
  catch (error) {
46
- if (error instanceof ToolCallParametersValidationError_js_1.ToolCallParametersValidationError ||
47
- error instanceof ToolCallGenerationError_js_1.ToolCallsGenerationError) {
46
+ if (error instanceof ToolCallArgumentsValidationError_js_1.ToolCallArgumentsValidationError ||
47
+ error instanceof ToolCallGenerationError_js_1.ToolCallGenerationError) {
48
48
  throw error;
49
49
  }
50
- throw new ToolCallGenerationError_js_1.ToolCallsGenerationError({
50
+ throw new ToolCallGenerationError_js_1.ToolCallGenerationError({
51
51
  toolName: tool.name,
52
52
  cause: error,
53
53
  });
@@ -1,8 +1,8 @@
1
1
  import { FunctionOptions } from "../../core/FunctionOptions.js";
2
- import { ModelCallMetadata } from "../ModelCallMetadata.js";
3
- import { ToolDefinition } from "./ToolDefinition.js";
2
+ import { ModelCallMetadata } from "../../model-function/ModelCallMetadata.js";
3
+ import { ToolCall } from "../ToolCall.js";
4
+ import { ToolDefinition } from "../ToolDefinition.js";
4
5
  import { ToolCallGenerationModel, ToolCallGenerationModelSettings } from "./ToolCallGenerationModel.js";
5
- import { ToolCall } from "./ToolCall.js";
6
6
  export declare function generateToolCall<PARAMETERS, PROMPT, NAME extends string, SETTINGS extends ToolCallGenerationModelSettings>(model: ToolCallGenerationModel<PROMPT, SETTINGS>, tool: ToolDefinition<NAME, PARAMETERS>, prompt: PROMPT | ((tool: ToolDefinition<NAME, PARAMETERS>) => PROMPT), options?: FunctionOptions & {
7
7
  returnType?: "structure";
8
8
  }): Promise<ToolCall<NAME, PARAMETERS>>;
@@ -1,6 +1,6 @@
1
- import { executeStandardCall } from "../executeStandardCall.js";
2
- import { ToolCallParametersValidationError } from "./ToolCallParametersValidationError.js";
3
- import { ToolCallsGenerationError } from "./ToolCallGenerationError.js";
1
+ import { executeStandardCall } from "../../model-function/executeStandardCall.js";
2
+ import { ToolCallArgumentsValidationError } from "../ToolCallArgumentsValidationError.js";
3
+ import { ToolCallGenerationError } from "../ToolCallGenerationError.js";
4
4
  export async function generateToolCall(model, tool, prompt, options) {
5
5
  // Note: PROMPT must not be a function.
6
6
  const expandedPrompt = typeof prompt === "function"
@@ -16,16 +16,16 @@ export async function generateToolCall(model, tool, prompt, options) {
16
16
  const result = await model.doGenerateToolCall(tool, expandedPrompt, options);
17
17
  const toolCall = result.toolCall;
18
18
  if (toolCall === null) {
19
- throw new ToolCallsGenerationError({
19
+ throw new ToolCallGenerationError({
20
20
  toolName: tool.name,
21
21
  cause: "No tool call generated.",
22
22
  });
23
23
  }
24
- const parseResult = tool.parameters.validate(toolCall.parameters);
24
+ const parseResult = tool.parameters.validate(toolCall.args);
25
25
  if (!parseResult.success) {
26
- throw new ToolCallParametersValidationError({
26
+ throw new ToolCallArgumentsValidationError({
27
27
  toolName: tool.name,
28
- parameters: toolCall.parameters,
28
+ args: toolCall.args,
29
29
  cause: parseResult.error,
30
30
  });
31
31
  }
@@ -34,17 +34,17 @@ export async function generateToolCall(model, tool, prompt, options) {
34
34
  extractedValue: {
35
35
  id: toolCall.id,
36
36
  name: tool.name,
37
- parameters: parseResult.data,
37
+ args: parseResult.data,
38
38
  },
39
39
  usage: result.usage,
40
40
  };
41
41
  }
42
42
  catch (error) {
43
- if (error instanceof ToolCallParametersValidationError ||
44
- error instanceof ToolCallsGenerationError) {
43
+ if (error instanceof ToolCallArgumentsValidationError ||
44
+ error instanceof ToolCallGenerationError) {
45
45
  throw error;
46
46
  }
47
- throw new ToolCallsGenerationError({
47
+ throw new ToolCallGenerationError({
48
48
  toolName: tool.name,
49
49
  cause: error,
50
50
  });
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./TextGenerationToolCallModel.cjs"), exports);
18
+ __exportStar(require("./ToolCallGenerationEvent.cjs"), exports);
19
+ __exportStar(require("./ToolCallGenerationModel.cjs"), exports);
20
+ __exportStar(require("./generateToolCall.cjs"), exports);
@@ -0,0 +1,4 @@
1
+ export * from "./TextGenerationToolCallModel.js";
2
+ export * from "./ToolCallGenerationEvent.js";
3
+ export * from "./ToolCallGenerationModel.js";
4
+ export * from "./generateToolCall.js";
@@ -0,0 +1,4 @@
1
+ export * from "./TextGenerationToolCallModel.js";
2
+ export * from "./ToolCallGenerationEvent.js";
3
+ export * from "./ToolCallGenerationModel.js";
4
+ export * from "./generateToolCall.js";
@@ -1,4 +1,4 @@
1
- import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../ModelCallEvent.js";
1
+ import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../../model-function/ModelCallEvent.js";
2
2
  export interface ToolCallsOrTextGenerationStartedEvent extends BaseModelCallStartedEvent {
3
3
  functionType: "generate-tool-calls-or-text";
4
4
  }
@@ -1,6 +1,6 @@
1
1
  import { FunctionOptions } from "../../core/FunctionOptions.js";
2
- import { Model, ModelSettings } from "../Model.js";
3
- import { ToolDefinition } from "./ToolDefinition.js";
2
+ import { Model, ModelSettings } from "../../model-function/Model.js";
3
+ import { ToolDefinition } from "../ToolDefinition.js";
4
4
  export interface ToolCallsOrTextGenerationModelSettings extends ModelSettings {
5
5
  }
6
6
  export interface ToolCallsOrTextGenerationModel<PROMPT, SETTINGS extends ToolCallsOrTextGenerationModelSettings> extends Model<SETTINGS> {
@@ -10,7 +10,7 @@ export interface ToolCallsOrTextGenerationModel<PROMPT, SETTINGS extends ToolCal
10
10
  toolCalls: Array<{
11
11
  id: string;
12
12
  name: string;
13
- parameters: unknown;
13
+ args: unknown;
14
14
  }> | null;
15
15
  usage?: {
16
16
  promptTokens: number;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateToolCallsOrText = void 0;
4
- const executeStandardCall_js_1 = require("../executeStandardCall.cjs");
5
- const NoSuchToolDefinitionError_js_1 = require("./NoSuchToolDefinitionError.cjs");
6
- const ToolCallParametersValidationError_js_1 = require("./ToolCallParametersValidationError.cjs");
4
+ const executeStandardCall_js_1 = require("../../model-function/executeStandardCall.cjs");
5
+ const NoSuchToolDefinitionError_js_1 = require("../NoSuchToolDefinitionError.cjs");
6
+ const ToolCallArgumentsValidationError_js_1 = require("../ToolCallArgumentsValidationError.cjs");
7
7
  async function generateToolCallsOrText(model, tools, prompt, options) {
8
8
  // Note: PROMPT must not be a function.
9
9
  const expandedPrompt = typeof prompt === "function"
@@ -31,21 +31,21 @@ async function generateToolCallsOrText(model, tools, prompt, options) {
31
31
  if (tool == undefined) {
32
32
  throw new NoSuchToolDefinitionError_js_1.NoSuchToolDefinitionError({
33
33
  toolName: rawToolCall.name,
34
- parameters: rawToolCall.parameters,
34
+ parameters: rawToolCall.args,
35
35
  });
36
36
  }
37
- const parseResult = tool.parameters.validate(rawToolCall.parameters);
37
+ const parseResult = tool.parameters.validate(rawToolCall.args);
38
38
  if (!parseResult.success) {
39
- throw new ToolCallParametersValidationError_js_1.ToolCallParametersValidationError({
39
+ throw new ToolCallArgumentsValidationError_js_1.ToolCallArgumentsValidationError({
40
40
  toolName: tool.name,
41
- parameters: rawToolCall.parameters,
41
+ args: rawToolCall.args,
42
42
  cause: parseResult.error,
43
43
  });
44
44
  }
45
45
  return {
46
46
  id: rawToolCall.id,
47
47
  name: tool.name,
48
- parameters: parseResult.data,
48
+ args: parseResult.data,
49
49
  };
50
50
  });
51
51
  return {
@@ -1,7 +1,7 @@
1
1
  import { FunctionOptions } from "../../core/FunctionOptions.js";
2
- import { ModelCallMetadata } from "../ModelCallMetadata.js";
2
+ import { ModelCallMetadata } from "../../model-function/ModelCallMetadata.js";
3
+ import { ToolDefinition } from "../ToolDefinition.js";
3
4
  import { ToolCallsOrTextGenerationModel, ToolCallsOrTextGenerationModelSettings } from "./ToolCallsOrTextGenerationModel.js";
4
- import { ToolDefinition } from "./ToolDefinition.js";
5
5
  type ToolCallDefinitionArray<T extends ToolDefinition<any, any>[]> = T;
6
6
  type ToToolCallDefinitionMap<T extends ToolCallDefinitionArray<ToolDefinition<any, any>[]>> = {
7
7
  [K in T[number]["name"]]: Extract<T[number], ToolDefinition<K, any>>;
@@ -10,7 +10,7 @@ type ToToolCallUnion<T> = {
10
10
  [KEY in keyof T]: T[KEY] extends ToolDefinition<any, infer PARAMETERS> ? {
11
11
  id: string;
12
12
  name: KEY;
13
- parameters: PARAMETERS;
13
+ args: PARAMETERS;
14
14
  } : never;
15
15
  }[keyof T];
16
16
  type ToOutputValue<TOOL_CALLS extends ToolCallDefinitionArray<ToolDefinition<any, any>[]>> = ToToolCallUnion<ToToolCallDefinitionMap<TOOL_CALLS>>;
@@ -1,6 +1,6 @@
1
- import { executeStandardCall } from "../executeStandardCall.js";
2
- import { NoSuchToolDefinitionError } from "./NoSuchToolDefinitionError.js";
3
- import { ToolCallParametersValidationError } from "./ToolCallParametersValidationError.js";
1
+ import { executeStandardCall } from "../../model-function/executeStandardCall.js";
2
+ import { NoSuchToolDefinitionError } from "../NoSuchToolDefinitionError.js";
3
+ import { ToolCallArgumentsValidationError } from "../ToolCallArgumentsValidationError.js";
4
4
  export async function generateToolCallsOrText(model, tools, prompt, options) {
5
5
  // Note: PROMPT must not be a function.
6
6
  const expandedPrompt = typeof prompt === "function"
@@ -28,21 +28,21 @@ export async function generateToolCallsOrText(model, tools, prompt, options) {
28
28
  if (tool == undefined) {
29
29
  throw new NoSuchToolDefinitionError({
30
30
  toolName: rawToolCall.name,
31
- parameters: rawToolCall.parameters,
31
+ parameters: rawToolCall.args,
32
32
  });
33
33
  }
34
- const parseResult = tool.parameters.validate(rawToolCall.parameters);
34
+ const parseResult = tool.parameters.validate(rawToolCall.args);
35
35
  if (!parseResult.success) {
36
- throw new ToolCallParametersValidationError({
36
+ throw new ToolCallArgumentsValidationError({
37
37
  toolName: tool.name,
38
- parameters: rawToolCall.parameters,
38
+ args: rawToolCall.args,
39
39
  cause: parseResult.error,
40
40
  });
41
41
  }
42
42
  return {
43
43
  id: rawToolCall.id,
44
44
  name: tool.name,
45
- parameters: parseResult.data,
45
+ args: parseResult.data,
46
46
  };
47
47
  });
48
48
  return {
@@ -14,13 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./ToolCall.cjs"), exports);
18
- __exportStar(require("./ToolCallGenerationError.cjs"), exports);
19
- __exportStar(require("./ToolCallGenerationEvent.cjs"), exports);
20
- __exportStar(require("./ToolCallGenerationModel.cjs"), exports);
21
- __exportStar(require("./ToolCallParametersValidationError.cjs"), exports);
22
17
  __exportStar(require("./ToolCallsOrTextGenerationEvent.cjs"), exports);
23
18
  __exportStar(require("./ToolCallsOrTextGenerationModel.cjs"), exports);
24
- __exportStar(require("./ToolDefinition.cjs"), exports);
25
- __exportStar(require("./generateToolCall.cjs"), exports);
26
19
  __exportStar(require("./generateToolCallsOrText.cjs"), exports);
@@ -0,0 +1,3 @@
1
+ export * from "./ToolCallsOrTextGenerationEvent.js";
2
+ export * from "./ToolCallsOrTextGenerationModel.js";
3
+ export * from "./generateToolCallsOrText.js";
@@ -0,0 +1,3 @@
1
+ export * from "./ToolCallsOrTextGenerationEvent.js";
2
+ export * from "./ToolCallsOrTextGenerationModel.js";
3
+ export * from "./generateToolCallsOrText.js";
package/tool/index.cjs CHANGED
@@ -14,14 +14,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./ExecuteToolEvent.cjs"), exports);
18
17
  __exportStar(require("./InvalidToolNameError.cjs"), exports);
19
- __exportStar(require("./NoSuchToolError.cjs"), exports);
18
+ __exportStar(require("./NoSuchToolDefinitionError.cjs"), exports);
20
19
  __exportStar(require("./Tool.cjs"), exports);
20
+ __exportStar(require("./ToolCall.cjs"), exports);
21
+ __exportStar(require("./ToolCallArgumentsValidationError.cjs"), exports);
22
+ __exportStar(require("./ToolCallError.cjs"), exports);
23
+ __exportStar(require("./ToolCallGenerationError.cjs"), exports);
24
+ __exportStar(require("./ToolCallResult.cjs"), exports);
25
+ __exportStar(require("./ToolDefinition.cjs"), exports);
21
26
  __exportStar(require("./ToolExecutionError.cjs"), exports);
22
- __exportStar(require("./UseToolEvent.cjs"), exports);
23
- __exportStar(require("./UseToolOrGenerateTextEvent.cjs"), exports);
24
27
  __exportStar(require("./WebSearchTool.cjs"), exports);
25
- __exportStar(require("./executeTool.cjs"), exports);
26
- __exportStar(require("./useTool.cjs"), exports);
27
- __exportStar(require("./useToolOrGenerateText.cjs"), exports);
28
+ __exportStar(require("./execute-tool/index.cjs"), exports);
29
+ __exportStar(require("./generate-tool-call/index.cjs"), exports);
30
+ __exportStar(require("./generate-tool-calls-or-text/index.cjs"), exports);
31
+ __exportStar(require("./use-tool/index.cjs"), exports);
32
+ __exportStar(require("./use-tools-or-generate-text/index.cjs"), exports);
package/tool/index.d.ts CHANGED
@@ -1,11 +1,16 @@
1
- export * from "./ExecuteToolEvent.js";
2
1
  export * from "./InvalidToolNameError.js";
3
- export * from "./NoSuchToolError.js";
2
+ export * from "./NoSuchToolDefinitionError.js";
4
3
  export * from "./Tool.js";
4
+ export * from "./ToolCall.js";
5
+ export * from "./ToolCallArgumentsValidationError.js";
6
+ export * from "./ToolCallError.js";
7
+ export * from "./ToolCallGenerationError.js";
8
+ export * from "./ToolCallResult.js";
9
+ export * from "./ToolDefinition.js";
5
10
  export * from "./ToolExecutionError.js";
6
- export * from "./UseToolEvent.js";
7
- export * from "./UseToolOrGenerateTextEvent.js";
8
11
  export * from "./WebSearchTool.js";
9
- export * from "./executeTool.js";
10
- export * from "./useTool.js";
11
- export * from "./useToolOrGenerateText.js";
12
+ export * from "./execute-tool/index.js";
13
+ export * from "./generate-tool-call/index.js";
14
+ export * from "./generate-tool-calls-or-text/index.js";
15
+ export * from "./use-tool/index.js";
16
+ export * from "./use-tools-or-generate-text/index.js";
package/tool/index.js CHANGED
@@ -1,11 +1,16 @@
1
- export * from "./ExecuteToolEvent.js";
2
1
  export * from "./InvalidToolNameError.js";
3
- export * from "./NoSuchToolError.js";
2
+ export * from "./NoSuchToolDefinitionError.js";
4
3
  export * from "./Tool.js";
4
+ export * from "./ToolCall.js";
5
+ export * from "./ToolCallArgumentsValidationError.js";
6
+ export * from "./ToolCallError.js";
7
+ export * from "./ToolCallGenerationError.js";
8
+ export * from "./ToolCallResult.js";
9
+ export * from "./ToolDefinition.js";
5
10
  export * from "./ToolExecutionError.js";
6
- export * from "./UseToolEvent.js";
7
- export * from "./UseToolOrGenerateTextEvent.js";
8
11
  export * from "./WebSearchTool.js";
9
- export * from "./executeTool.js";
10
- export * from "./useTool.js";
11
- export * from "./useToolOrGenerateText.js";
12
+ export * from "./execute-tool/index.js";
13
+ export * from "./generate-tool-call/index.js";
14
+ export * from "./generate-tool-calls-or-text/index.js";
15
+ export * from "./use-tool/index.js";
16
+ export * from "./use-tools-or-generate-text/index.js";
@@ -1,4 +1,4 @@
1
- import { BaseFunctionFinishedEvent, BaseFunctionStartedEvent } from "../core/FunctionEvent.js";
1
+ import { BaseFunctionFinishedEvent, BaseFunctionStartedEvent } from "../../core/FunctionEvent.js";
2
2
  export interface UseToolStartedEvent extends BaseFunctionStartedEvent {
3
3
  functionType: "use-tool";
4
4
  }