modelfusion 0.111.0 → 0.112.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 (72) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +41 -65
  3. package/core/FunctionEvent.d.ts +3 -3
  4. package/model-function/ModelCallEvent.d.ts +3 -3
  5. package/model-function/generate-text/PromptTemplateFullTextModel.cjs +2 -2
  6. package/model-function/generate-text/PromptTemplateFullTextModel.d.ts +3 -3
  7. package/model-function/generate-text/PromptTemplateFullTextModel.js +2 -2
  8. package/model-function/generate-text/PromptTemplateTextGenerationModel.cjs +2 -2
  9. package/model-function/generate-text/PromptTemplateTextGenerationModel.d.ts +3 -3
  10. package/model-function/generate-text/PromptTemplateTextGenerationModel.js +2 -2
  11. package/model-provider/mistral/MistralChatModel.d.ts +4 -4
  12. package/model-provider/mistral/MistralTextEmbeddingModel.d.ts +3 -3
  13. package/model-provider/ollama/OllamaChatModel.cjs +2 -2
  14. package/model-provider/ollama/OllamaChatModel.d.ts +3 -3
  15. package/model-provider/ollama/OllamaChatModel.js +2 -2
  16. package/model-provider/ollama/OllamaCompletionModel.cjs +2 -2
  17. package/model-provider/ollama/OllamaCompletionModel.d.ts +3 -3
  18. package/model-provider/ollama/OllamaCompletionModel.js +2 -2
  19. package/model-provider/openai/AbstractOpenAIChatModel.cjs +1 -1
  20. package/model-provider/openai/AbstractOpenAIChatModel.d.ts +7 -7
  21. package/model-provider/openai/AbstractOpenAIChatModel.js +1 -1
  22. package/model-provider/openai/AbstractOpenAICompletionModel.d.ts +4 -4
  23. package/model-provider/openai/OpenAIChatFunctionCallStructureGenerationModel.d.ts +1 -1
  24. package/model-provider/openai/OpenAIChatModel.d.ts +2 -2
  25. package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +3 -3
  26. package/model-provider/openai-compatible/OpenAICompatibleChatModel.d.ts +2 -2
  27. package/package.json +1 -1
  28. package/tool/Tool.cjs +0 -10
  29. package/tool/Tool.d.ts +0 -1
  30. package/tool/Tool.js +0 -10
  31. package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.cjs → generate-tool-calls/TextGenerationToolCallsModel.cjs} +7 -7
  32. package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.d.ts → generate-tool-calls/TextGenerationToolCallsModel.d.ts} +6 -6
  33. package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.js → generate-tool-calls/TextGenerationToolCallsModel.js} +5 -5
  34. package/tool/generate-tool-calls/ToolCallsGenerationEvent.d.ts +23 -0
  35. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.d.ts → generate-tool-calls/ToolCallsGenerationModel.d.ts} +3 -3
  36. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.cjs → generate-tool-calls/ToolCallsParseError.cjs} +5 -5
  37. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.d.ts → generate-tool-calls/ToolCallsParseError.d.ts} +1 -1
  38. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.js → generate-tool-calls/ToolCallsParseError.js} +3 -3
  39. package/tool/{generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.d.ts → generate-tool-calls/ToolCallsPromptTemplate.d.ts} +1 -1
  40. package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.cjs → generate-tool-calls/generateToolCalls.cjs} +5 -5
  41. package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.d.ts → generate-tool-calls/generateToolCalls.d.ts} +3 -3
  42. package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.js → generate-tool-calls/generateToolCalls.js} +3 -3
  43. package/tool/{generate-tool-calls-or-text → generate-tool-calls}/index.cjs +6 -6
  44. package/tool/generate-tool-calls/index.d.ts +6 -0
  45. package/tool/generate-tool-calls/index.js +6 -0
  46. package/tool/index.cjs +2 -3
  47. package/tool/index.d.ts +2 -3
  48. package/tool/index.js +2 -3
  49. package/tool/use-tools/UseToolsEvent.d.ts +7 -0
  50. package/tool/{use-tools-or-generate-text → use-tools}/index.cjs +2 -2
  51. package/tool/use-tools/index.d.ts +2 -0
  52. package/tool/use-tools/index.js +2 -0
  53. package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.cjs → use-tools/useTools.cjs} +6 -6
  54. package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.d.ts → use-tools/useTools.d.ts} +2 -2
  55. package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.js → use-tools/useTools.js} +4 -4
  56. package/tool/InvalidToolNameError.cjs +0 -17
  57. package/tool/InvalidToolNameError.d.ts +0 -7
  58. package/tool/InvalidToolNameError.js +0 -13
  59. package/tool/generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.d.ts +0 -23
  60. package/tool/generate-tool-calls-or-text/index.d.ts +0 -6
  61. package/tool/generate-tool-calls-or-text/index.js +0 -6
  62. package/tool/use-tools-or-generate-text/UseToolsOrGenerateTextEvent.d.ts +0 -7
  63. package/tool/use-tools-or-generate-text/index.d.ts +0 -2
  64. package/tool/use-tools-or-generate-text/index.js +0 -2
  65. /package/tool/{generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.cjs → generate-tool-calls/ToolCallsGenerationEvent.cjs} +0 -0
  66. /package/tool/{generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.js → generate-tool-calls/ToolCallsGenerationEvent.js} +0 -0
  67. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.cjs → generate-tool-calls/ToolCallsGenerationModel.cjs} +0 -0
  68. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.js → generate-tool-calls/ToolCallsGenerationModel.js} +0 -0
  69. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.cjs → generate-tool-calls/ToolCallsPromptTemplate.cjs} +0 -0
  70. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.js → generate-tool-calls/ToolCallsPromptTemplate.js} +0 -0
  71. /package/tool/{use-tools-or-generate-text/UseToolsOrGenerateTextEvent.cjs → use-tools/UseToolsEvent.cjs} +0 -0
  72. /package/tool/{use-tools-or-generate-text/UseToolsOrGenerateTextEvent.js → use-tools/UseToolsEvent.js} +0 -0
@@ -33,12 +33,12 @@ export declare abstract class AbstractOpenAICompletionModel<SETTINGS extends Abs
33
33
  doGenerateTexts(prompt: string, options?: FunctionOptions): Promise<{
34
34
  response: {
35
35
  object: "text_completion";
36
+ model: string;
36
37
  usage: {
37
38
  prompt_tokens: number;
38
39
  completion_tokens: number;
39
40
  total_tokens: number;
40
41
  };
41
- model: string;
42
42
  id: string;
43
43
  created: number;
44
44
  choices: {
@@ -111,12 +111,12 @@ declare const OpenAICompletionResponseSchema: z.ZodObject<{
111
111
  }>;
112
112
  }, "strip", z.ZodTypeAny, {
113
113
  object: "text_completion";
114
+ model: string;
114
115
  usage: {
115
116
  prompt_tokens: number;
116
117
  completion_tokens: number;
117
118
  total_tokens: number;
118
119
  };
119
- model: string;
120
120
  id: string;
121
121
  created: number;
122
122
  choices: {
@@ -128,12 +128,12 @@ declare const OpenAICompletionResponseSchema: z.ZodObject<{
128
128
  system_fingerprint?: string | undefined;
129
129
  }, {
130
130
  object: "text_completion";
131
+ model: string;
131
132
  usage: {
132
133
  prompt_tokens: number;
133
134
  completion_tokens: number;
134
135
  total_tokens: number;
135
136
  };
136
- model: string;
137
137
  id: string;
138
138
  created: number;
139
139
  choices: {
@@ -157,12 +157,12 @@ export declare const OpenAITextResponseFormat: {
157
157
  stream: boolean;
158
158
  handler: ResponseHandler<{
159
159
  object: "text_completion";
160
+ model: string;
160
161
  usage: {
161
162
  prompt_tokens: number;
162
163
  completion_tokens: number;
163
164
  total_tokens: number;
164
165
  };
165
- model: string;
166
166
  id: string;
167
167
  created: number;
168
168
  choices: {
@@ -45,12 +45,12 @@ OpenAIChatSettings> {
45
45
  options?: FunctionOptions): Promise<{
46
46
  response: {
47
47
  object: "chat.completion";
48
+ model: string;
48
49
  usage: {
49
50
  prompt_tokens: number;
50
51
  completion_tokens: number;
51
52
  total_tokens: number;
52
53
  };
53
- model: string;
54
54
  id: string;
55
55
  created: number;
56
56
  choices: {
@@ -4,7 +4,7 @@ import { PromptTemplateFullTextModel } from "../../model-function/generate-text/
4
4
  import { TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
5
5
  import { TextGenerationPromptTemplate } from "../../model-function/generate-text/TextGenerationPromptTemplate.js";
6
6
  import { ToolCallGenerationModel } from "../../tool/generate-tool-call/ToolCallGenerationModel.js";
7
- import { ToolCallsOrTextGenerationModel } from "../../tool/generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.js";
7
+ import { ToolCallsGenerationModel } from "../../tool/generate-tool-calls/ToolCallsGenerationModel.js";
8
8
  import { AbstractOpenAIChatModel, AbstractOpenAIChatSettings, OpenAIChatPrompt, OpenAIChatResponse } from "./AbstractOpenAIChatModel.js";
9
9
  import { OpenAIChatFunctionCallStructureGenerationModel } from "./OpenAIChatFunctionCallStructureGenerationModel.js";
10
10
  import { TikTokenTokenizer } from "./TikTokenTokenizer.js";
@@ -124,7 +124,7 @@ export interface OpenAIChatSettings extends AbstractOpenAIChatSettings {
124
124
  * ),
125
125
  * ]);
126
126
  */
127
- export declare class OpenAIChatModel extends AbstractOpenAIChatModel<OpenAIChatSettings> implements TextStreamingModel<OpenAIChatPrompt, OpenAIChatSettings>, ToolCallGenerationModel<OpenAIChatPrompt, OpenAIChatSettings>, ToolCallsOrTextGenerationModel<OpenAIChatPrompt, OpenAIChatSettings> {
127
+ export declare class OpenAIChatModel extends AbstractOpenAIChatModel<OpenAIChatSettings> implements TextStreamingModel<OpenAIChatPrompt, OpenAIChatSettings>, ToolCallGenerationModel<OpenAIChatPrompt, OpenAIChatSettings>, ToolCallsGenerationModel<OpenAIChatPrompt, OpenAIChatSettings> {
128
128
  constructor(settings: OpenAIChatSettings);
129
129
  readonly provider: "openai";
130
130
  get modelName(): OpenAIChatModelType;
@@ -57,11 +57,11 @@ export declare class OpenAITextEmbeddingModel extends AbstractModel<OpenAITextEm
57
57
  embedding: number[];
58
58
  index: number;
59
59
  }[];
60
+ model: string;
60
61
  usage: {
61
62
  prompt_tokens: number;
62
63
  total_tokens: number;
63
64
  };
64
- model: string;
65
65
  };
66
66
  embeddings: number[][];
67
67
  }>;
@@ -100,11 +100,11 @@ declare const openAITextEmbeddingResponseSchema: z.ZodObject<{
100
100
  embedding: number[];
101
101
  index: number;
102
102
  }[];
103
+ model: string;
103
104
  usage: {
104
105
  prompt_tokens: number;
105
106
  total_tokens: number;
106
107
  };
107
- model: string;
108
108
  }, {
109
109
  object: "list";
110
110
  data: {
@@ -112,11 +112,11 @@ declare const openAITextEmbeddingResponseSchema: z.ZodObject<{
112
112
  embedding: number[];
113
113
  index: number;
114
114
  }[];
115
+ model: string;
115
116
  usage: {
116
117
  prompt_tokens: number;
117
118
  total_tokens: number;
118
119
  };
119
- model: string;
120
120
  }>;
121
121
  export type OpenAITextEmbeddingResponse = z.infer<typeof openAITextEmbeddingResponseSchema>;
122
122
  export {};
@@ -4,7 +4,7 @@ import { PromptTemplateFullTextModel } from "../../model-function/generate-text/
4
4
  import { TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
5
5
  import { TextGenerationPromptTemplate } from "../../model-function/generate-text/TextGenerationPromptTemplate.js";
6
6
  import { ToolCallGenerationModel } from "../../tool/generate-tool-call/ToolCallGenerationModel.js";
7
- import { ToolCallsOrTextGenerationModel } from "../../tool/generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.js";
7
+ import { ToolCallsGenerationModel } from "../../tool/generate-tool-calls/ToolCallsGenerationModel.js";
8
8
  import { AbstractOpenAIChatModel, AbstractOpenAIChatSettings, OpenAIChatPrompt } from "../openai/AbstractOpenAIChatModel.js";
9
9
  import { OpenAICompatibleProviderName } from "./OpenAICompatibleProviderName.js";
10
10
  export interface OpenAICompatibleChatSettings extends AbstractOpenAIChatSettings {
@@ -18,7 +18,7 @@ export interface OpenAICompatibleChatSettings extends AbstractOpenAIChatSettings
18
18
  *
19
19
  * @see https://platform.openai.com/docs/api-reference/chat/create
20
20
  */
21
- export declare class OpenAICompatibleChatModel extends AbstractOpenAIChatModel<OpenAICompatibleChatSettings> implements TextStreamingModel<OpenAIChatPrompt, OpenAICompatibleChatSettings>, ToolCallGenerationModel<OpenAIChatPrompt, OpenAICompatibleChatSettings>, ToolCallsOrTextGenerationModel<OpenAIChatPrompt, OpenAICompatibleChatSettings> {
21
+ export declare class OpenAICompatibleChatModel extends AbstractOpenAIChatModel<OpenAICompatibleChatSettings> implements TextStreamingModel<OpenAIChatPrompt, OpenAICompatibleChatSettings>, ToolCallGenerationModel<OpenAIChatPrompt, OpenAICompatibleChatSettings>, ToolCallsGenerationModel<OpenAIChatPrompt, OpenAICompatibleChatSettings> {
22
22
  constructor(settings: OpenAICompatibleChatSettings);
23
23
  get provider(): OpenAICompatibleProviderName;
24
24
  get modelName(): string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "modelfusion",
3
3
  "description": "The TypeScript library for building multi-modal AI applications.",
4
- "version": "0.111.0",
4
+ "version": "0.112.0",
5
5
  "author": "Lars Grammel",
6
6
  "license": "MIT",
7
7
  "keywords": [
package/tool/Tool.cjs CHANGED
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Tool = void 0;
4
- const InvalidToolNameError_js_1 = require("./InvalidToolNameError.cjs");
5
- const namePattern = /^[a-zA-Z0-9_-]{1,64}$/;
6
4
  /**
7
5
  * A tool is a function with a name, description and defined inputs that can be used
8
6
  * by agents and chatbots.
@@ -11,7 +9,6 @@ class Tool {
11
9
  constructor({ name, description, parameters, returnType, execute, }) {
12
10
  /**
13
11
  * The name of the tool.
14
- * It has to be a function name that matches the regular expression pattern '^[a-zA-Z0-9_-]{1,64}$'.
15
12
  * Should be understandable for language models and unique among the tools that they know.
16
13
  */
17
14
  Object.defineProperty(this, "name", {
@@ -57,13 +54,6 @@ class Tool {
57
54
  writable: true,
58
55
  value: void 0
59
56
  });
60
- // check that the name is a valid function name:
61
- if (!namePattern.test(name)) {
62
- throw new InvalidToolNameError_js_1.InvalidToolNameError({
63
- toolName: name,
64
- namePattern,
65
- });
66
- }
67
57
  this.name = name;
68
58
  this.description = description;
69
59
  this.parameters = parameters;
package/tool/Tool.d.ts CHANGED
@@ -9,7 +9,6 @@ import { ToolDefinition } from "./ToolDefinition.js";
9
9
  export declare class Tool<NAME extends string, PARAMETERS, RESULT> implements ToolDefinition<NAME, PARAMETERS> {
10
10
  /**
11
11
  * The name of the tool.
12
- * It has to be a function name that matches the regular expression pattern '^[a-zA-Z0-9_-]{1,64}$'.
13
12
  * Should be understandable for language models and unique among the tools that they know.
14
13
  */
15
14
  readonly name: NAME;
package/tool/Tool.js CHANGED
@@ -1,5 +1,3 @@
1
- import { InvalidToolNameError } from "./InvalidToolNameError.js";
2
- const namePattern = /^[a-zA-Z0-9_-]{1,64}$/;
3
1
  /**
4
2
  * A tool is a function with a name, description and defined inputs that can be used
5
3
  * by agents and chatbots.
@@ -8,7 +6,6 @@ export class Tool {
8
6
  constructor({ name, description, parameters, returnType, execute, }) {
9
7
  /**
10
8
  * The name of the tool.
11
- * It has to be a function name that matches the regular expression pattern '^[a-zA-Z0-9_-]{1,64}$'.
12
9
  * Should be understandable for language models and unique among the tools that they know.
13
10
  */
14
11
  Object.defineProperty(this, "name", {
@@ -54,13 +51,6 @@ export class Tool {
54
51
  writable: true,
55
52
  value: void 0
56
53
  });
57
- // check that the name is a valid function name:
58
- if (!namePattern.test(name)) {
59
- throw new InvalidToolNameError({
60
- toolName: name,
61
- namePattern,
62
- });
63
- }
64
54
  this.name = name;
65
55
  this.description = description;
66
56
  this.parameters = parameters;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TextGenerationToolCallsOrGenerateTextModel = void 0;
3
+ exports.TextGenerationToolCallsModel = void 0;
4
4
  const generateText_js_1 = require("../../model-function/generate-text/generateText.cjs");
5
- const ToolCallsOrTextParseError_js_1 = require("./ToolCallsOrTextParseError.cjs");
6
- class TextGenerationToolCallsOrGenerateTextModel {
5
+ const ToolCallsParseError_js_1 = require("./ToolCallsParseError.cjs");
6
+ class TextGenerationToolCallsModel {
7
7
  constructor({ model, template, }) {
8
8
  Object.defineProperty(this, "model", {
9
9
  enumerable: true,
@@ -29,7 +29,7 @@ class TextGenerationToolCallsOrGenerateTextModel {
29
29
  get settingsForEvent() {
30
30
  return this.model.settingsForEvent;
31
31
  }
32
- async doGenerateToolCallsOrText(tools, prompt, options) {
32
+ async doGenerateToolCalls(tools, prompt, options) {
33
33
  const { response, text: generatedText, metadata, } = await (0, generateText_js_1.generateText)(this.model, this.template.createPrompt(prompt, tools), {
34
34
  ...options,
35
35
  fullResponse: true,
@@ -44,17 +44,17 @@ class TextGenerationToolCallsOrGenerateTextModel {
44
44
  };
45
45
  }
46
46
  catch (error) {
47
- throw new ToolCallsOrTextParseError_js_1.ToolCallsOrTextParseError({
47
+ throw new ToolCallsParseError_js_1.ToolCallsParseError({
48
48
  valueText: generatedText,
49
49
  cause: error,
50
50
  });
51
51
  }
52
52
  }
53
53
  withSettings(additionalSettings) {
54
- return new TextGenerationToolCallsOrGenerateTextModel({
54
+ return new TextGenerationToolCallsModel({
55
55
  model: this.model.withSettings(additionalSettings),
56
56
  template: this.template,
57
57
  });
58
58
  }
59
59
  }
60
- exports.TextGenerationToolCallsOrGenerateTextModel = TextGenerationToolCallsOrGenerateTextModel;
60
+ exports.TextGenerationToolCallsModel = TextGenerationToolCallsModel;
@@ -1,19 +1,19 @@
1
1
  import { FunctionOptions } from "../../core/FunctionOptions.js";
2
2
  import { TextGenerationModel } from "../../model-function/generate-text/TextGenerationModel.js";
3
3
  import { ToolDefinition } from "../ToolDefinition.js";
4
- import { ToolCallsOrGenerateTextPromptTemplate } from "./ToolCallsOrGenerateTextPromptTemplate.js";
5
- import { ToolCallsOrTextGenerationModel, ToolCallsOrTextGenerationModelSettings } from "./ToolCallsOrTextGenerationModel.js";
6
- export declare class TextGenerationToolCallsOrGenerateTextModel<SOURCE_PROMPT, TARGET_PROMPT, MODEL extends TextGenerationModel<TARGET_PROMPT, ToolCallsOrTextGenerationModelSettings>> implements ToolCallsOrTextGenerationModel<SOURCE_PROMPT, MODEL["settings"]> {
4
+ import { ToolCallsGenerationModel, ToolCallsGenerationModelSettings } from "./ToolCallsGenerationModel.js";
5
+ import { ToolCallsPromptTemplate } from "./ToolCallsPromptTemplate.js";
6
+ export declare class TextGenerationToolCallsModel<SOURCE_PROMPT, TARGET_PROMPT, MODEL extends TextGenerationModel<TARGET_PROMPT, ToolCallsGenerationModelSettings>> implements ToolCallsGenerationModel<SOURCE_PROMPT, MODEL["settings"]> {
7
7
  private readonly model;
8
8
  private readonly template;
9
9
  constructor({ model, template, }: {
10
10
  model: MODEL;
11
- template: ToolCallsOrGenerateTextPromptTemplate<SOURCE_PROMPT, TARGET_PROMPT>;
11
+ template: ToolCallsPromptTemplate<SOURCE_PROMPT, TARGET_PROMPT>;
12
12
  });
13
13
  get modelInformation(): import("../../index.js").ModelInformation;
14
- get settings(): ToolCallsOrTextGenerationModelSettings;
14
+ get settings(): ToolCallsGenerationModelSettings;
15
15
  get settingsForEvent(): Partial<MODEL["settings"]>;
16
- doGenerateToolCallsOrText(tools: Array<ToolDefinition<string, unknown>>, prompt: SOURCE_PROMPT, options?: FunctionOptions): Promise<{
16
+ doGenerateToolCalls(tools: Array<ToolDefinition<string, unknown>>, prompt: SOURCE_PROMPT, options?: FunctionOptions): Promise<{
17
17
  response: unknown;
18
18
  text: string | null;
19
19
  toolCalls: {
@@ -1,6 +1,6 @@
1
1
  import { generateText } from "../../model-function/generate-text/generateText.js";
2
- import { ToolCallsOrTextParseError } from "./ToolCallsOrTextParseError.js";
3
- export class TextGenerationToolCallsOrGenerateTextModel {
2
+ import { ToolCallsParseError } from "./ToolCallsParseError.js";
3
+ export class TextGenerationToolCallsModel {
4
4
  constructor({ model, template, }) {
5
5
  Object.defineProperty(this, "model", {
6
6
  enumerable: true,
@@ -26,7 +26,7 @@ export class TextGenerationToolCallsOrGenerateTextModel {
26
26
  get settingsForEvent() {
27
27
  return this.model.settingsForEvent;
28
28
  }
29
- async doGenerateToolCallsOrText(tools, prompt, options) {
29
+ async doGenerateToolCalls(tools, prompt, options) {
30
30
  const { response, text: generatedText, metadata, } = await generateText(this.model, this.template.createPrompt(prompt, tools), {
31
31
  ...options,
32
32
  fullResponse: true,
@@ -41,14 +41,14 @@ export class TextGenerationToolCallsOrGenerateTextModel {
41
41
  };
42
42
  }
43
43
  catch (error) {
44
- throw new ToolCallsOrTextParseError({
44
+ throw new ToolCallsParseError({
45
45
  valueText: generatedText,
46
46
  cause: error,
47
47
  });
48
48
  }
49
49
  }
50
50
  withSettings(additionalSettings) {
51
- return new TextGenerationToolCallsOrGenerateTextModel({
51
+ return new TextGenerationToolCallsModel({
52
52
  model: this.model.withSettings(additionalSettings),
53
53
  template: this.template,
54
54
  });
@@ -0,0 +1,23 @@
1
+ import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../../model-function/ModelCallEvent.js";
2
+ export interface ToolCallsGenerationStartedEvent extends BaseModelCallStartedEvent {
3
+ functionType: "generate-tool-calls";
4
+ }
5
+ export type ToolCallsGenerationFinishedEventResult = {
6
+ status: "success";
7
+ response: unknown;
8
+ value: unknown;
9
+ usage?: {
10
+ promptTokens: number;
11
+ completionTokens: number;
12
+ totalTokens: number;
13
+ };
14
+ } | {
15
+ status: "error";
16
+ error: unknown;
17
+ } | {
18
+ status: "abort";
19
+ };
20
+ export type ToolCallsGenerationFinishedEvent = BaseModelCallFinishedEvent & {
21
+ functionType: "generate-tool-calls";
22
+ result: ToolCallsGenerationFinishedEventResult;
23
+ };
@@ -1,10 +1,10 @@
1
1
  import { FunctionOptions } from "../../core/FunctionOptions.js";
2
2
  import { Model, ModelSettings } from "../../model-function/Model.js";
3
3
  import { ToolDefinition } from "../ToolDefinition.js";
4
- export interface ToolCallsOrTextGenerationModelSettings extends ModelSettings {
4
+ export interface ToolCallsGenerationModelSettings extends ModelSettings {
5
5
  }
6
- export interface ToolCallsOrTextGenerationModel<PROMPT, SETTINGS extends ToolCallsOrTextGenerationModelSettings> extends Model<SETTINGS> {
7
- doGenerateToolCallsOrText(tools: Array<ToolDefinition<string, unknown>>, prompt: PROMPT, options?: FunctionOptions): PromiseLike<{
6
+ export interface ToolCallsGenerationModel<PROMPT, SETTINGS extends ToolCallsGenerationModelSettings> extends Model<SETTINGS> {
7
+ doGenerateToolCalls(tools: Array<ToolDefinition<string, unknown>>, prompt: PROMPT, options?: FunctionOptions): PromiseLike<{
8
8
  response: unknown;
9
9
  text: string | null;
10
10
  toolCalls: Array<{
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ToolCallsOrTextParseError = void 0;
3
+ exports.ToolCallsParseError = void 0;
4
4
  const getErrorMessage_js_1 = require("../../util/getErrorMessage.cjs");
5
- class ToolCallsOrTextParseError extends Error {
5
+ class ToolCallsParseError extends Error {
6
6
  constructor({ valueText, cause }) {
7
- super(`Tool calls or text parsing failed. ` +
7
+ super(`Tool calls parsing failed. ` +
8
8
  `Value: ${valueText}.\n` +
9
9
  `Error message: ${(0, getErrorMessage_js_1.getErrorMessage)(cause)}`);
10
10
  Object.defineProperty(this, "valueText", {
@@ -19,7 +19,7 @@ class ToolCallsOrTextParseError extends Error {
19
19
  writable: true,
20
20
  value: void 0
21
21
  });
22
- this.name = "ToolCallsOrTextParseError";
22
+ this.name = "ToolCallsParseError";
23
23
  this.cause = cause;
24
24
  this.valueText = valueText;
25
25
  }
@@ -33,4 +33,4 @@ class ToolCallsOrTextParseError extends Error {
33
33
  };
34
34
  }
35
35
  }
36
- exports.ToolCallsOrTextParseError = ToolCallsOrTextParseError;
36
+ exports.ToolCallsParseError = ToolCallsParseError;
@@ -1,4 +1,4 @@
1
- export declare class ToolCallsOrTextParseError extends Error {
1
+ export declare class ToolCallsParseError extends Error {
2
2
  readonly valueText: string;
3
3
  readonly cause: unknown;
4
4
  constructor({ valueText, cause }: {
@@ -1,7 +1,7 @@
1
1
  import { getErrorMessage } from "../../util/getErrorMessage.js";
2
- export class ToolCallsOrTextParseError extends Error {
2
+ export class ToolCallsParseError extends Error {
3
3
  constructor({ valueText, cause }) {
4
- super(`Tool calls or text parsing failed. ` +
4
+ super(`Tool calls parsing failed. ` +
5
5
  `Value: ${valueText}.\n` +
6
6
  `Error message: ${getErrorMessage(cause)}`);
7
7
  Object.defineProperty(this, "valueText", {
@@ -16,7 +16,7 @@ export class ToolCallsOrTextParseError extends Error {
16
16
  writable: true,
17
17
  value: void 0
18
18
  });
19
- this.name = "ToolCallsOrTextParseError";
19
+ this.name = "ToolCallsParseError";
20
20
  this.cause = cause;
21
21
  this.valueText = valueText;
22
22
  }
@@ -1,5 +1,5 @@
1
1
  import { ToolDefinition } from "../ToolDefinition.js";
2
- export interface ToolCallsOrGenerateTextPromptTemplate<SOURCE_PROMPT, TARGET_PROMPT> {
2
+ export interface ToolCallsPromptTemplate<SOURCE_PROMPT, TARGET_PROMPT> {
3
3
  createPrompt: (prompt: SOURCE_PROMPT, tools: Array<ToolDefinition<string, unknown>>) => TARGET_PROMPT;
4
4
  extractToolCallsAndText: (response: string) => {
5
5
  text: string | null;
@@ -1,21 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateToolCallsOrText = void 0;
3
+ exports.generateToolCalls = void 0;
4
4
  const executeStandardCall_js_1 = require("../../model-function/executeStandardCall.cjs");
5
5
  const NoSuchToolDefinitionError_js_1 = require("../NoSuchToolDefinitionError.cjs");
6
6
  const ToolCallArgumentsValidationError_js_1 = require("../ToolCallArgumentsValidationError.cjs");
7
- async function generateToolCallsOrText(model, tools, prompt, options) {
7
+ async function generateToolCalls(model, tools, prompt, options) {
8
8
  // Note: PROMPT must not be a function.
9
9
  const expandedPrompt = typeof prompt === "function"
10
10
  ? prompt(tools)
11
11
  : prompt;
12
12
  const fullResponse = await (0, executeStandardCall_js_1.executeStandardCall)({
13
- functionType: "generate-tool-calls-or-text",
13
+ functionType: "generate-tool-calls",
14
14
  input: expandedPrompt,
15
15
  model,
16
16
  options,
17
17
  generateResponse: async (options) => {
18
- const result = await model.doGenerateToolCallsOrText(tools, expandedPrompt, options);
18
+ const result = await model.doGenerateToolCalls(tools, expandedPrompt, options);
19
19
  const { text, toolCalls: rawToolCalls } = result;
20
20
  // no tool calls:
21
21
  if (rawToolCalls == null) {
@@ -60,4 +60,4 @@ async function generateToolCallsOrText(model, tools, prompt, options) {
60
60
  });
61
61
  return options?.fullResponse ? fullResponse : fullResponse.value;
62
62
  }
63
- exports.generateToolCallsOrText = generateToolCallsOrText;
63
+ exports.generateToolCalls = generateToolCalls;
@@ -1,7 +1,7 @@
1
1
  import { FunctionOptions } from "../../core/FunctionOptions.js";
2
2
  import { ModelCallMetadata } from "../../model-function/ModelCallMetadata.js";
3
3
  import { ToolDefinition } from "../ToolDefinition.js";
4
- import { ToolCallsOrTextGenerationModel, ToolCallsOrTextGenerationModelSettings } from "./ToolCallsOrTextGenerationModel.js";
4
+ import { ToolCallsGenerationModel, ToolCallsGenerationModelSettings } from "./ToolCallsGenerationModel.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>>;
@@ -14,13 +14,13 @@ type ToToolCallUnion<T> = {
14
14
  } : never;
15
15
  }[keyof T];
16
16
  type ToOutputValue<TOOL_CALLS extends ToolCallDefinitionArray<ToolDefinition<any, any>[]>> = ToToolCallUnion<ToToolCallDefinitionMap<TOOL_CALLS>>;
17
- export declare function generateToolCallsOrText<TOOLS extends Array<ToolDefinition<any, any>>, PROMPT>(model: ToolCallsOrTextGenerationModel<PROMPT, ToolCallsOrTextGenerationModelSettings>, tools: TOOLS, prompt: PROMPT | ((tools: TOOLS) => PROMPT), options?: FunctionOptions & {
17
+ export declare function generateToolCalls<TOOLS extends Array<ToolDefinition<any, any>>, PROMPT>(model: ToolCallsGenerationModel<PROMPT, ToolCallsGenerationModelSettings>, tools: TOOLS, prompt: PROMPT | ((tools: TOOLS) => PROMPT), options?: FunctionOptions & {
18
18
  fullResponse?: false;
19
19
  }): Promise<{
20
20
  text: string | null;
21
21
  toolCalls: Array<ToOutputValue<TOOLS>> | null;
22
22
  }>;
23
- export declare function generateToolCallsOrText<TOOLS extends ToolDefinition<any, any>[], PROMPT>(model: ToolCallsOrTextGenerationModel<PROMPT, ToolCallsOrTextGenerationModelSettings>, tools: TOOLS, prompt: PROMPT | ((tools: TOOLS) => PROMPT), options: FunctionOptions & {
23
+ export declare function generateToolCalls<TOOLS extends ToolDefinition<any, any>[], PROMPT>(model: ToolCallsGenerationModel<PROMPT, ToolCallsGenerationModelSettings>, tools: TOOLS, prompt: PROMPT | ((tools: TOOLS) => PROMPT), options: FunctionOptions & {
24
24
  fullResponse?: boolean;
25
25
  }): Promise<{
26
26
  value: {
@@ -1,18 +1,18 @@
1
1
  import { executeStandardCall } from "../../model-function/executeStandardCall.js";
2
2
  import { NoSuchToolDefinitionError } from "../NoSuchToolDefinitionError.js";
3
3
  import { ToolCallArgumentsValidationError } from "../ToolCallArgumentsValidationError.js";
4
- export async function generateToolCallsOrText(model, tools, prompt, options) {
4
+ export async function generateToolCalls(model, tools, prompt, options) {
5
5
  // Note: PROMPT must not be a function.
6
6
  const expandedPrompt = typeof prompt === "function"
7
7
  ? prompt(tools)
8
8
  : prompt;
9
9
  const fullResponse = await executeStandardCall({
10
- functionType: "generate-tool-calls-or-text",
10
+ functionType: "generate-tool-calls",
11
11
  input: expandedPrompt,
12
12
  model,
13
13
  options,
14
14
  generateResponse: async (options) => {
15
- const result = await model.doGenerateToolCallsOrText(tools, expandedPrompt, options);
15
+ const result = await model.doGenerateToolCalls(tools, expandedPrompt, options);
16
16
  const { text, toolCalls: rawToolCalls } = result;
17
17
  // no tool calls:
18
18
  if (rawToolCalls == null) {
@@ -14,9 +14,9 @@ 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("./TextGenerationToolCallsOrGenerateTextModel.cjs"), exports);
18
- __exportStar(require("./ToolCallsOrGenerateTextPromptTemplate.cjs"), exports);
19
- __exportStar(require("./ToolCallsOrTextGenerationEvent.cjs"), exports);
20
- __exportStar(require("./ToolCallsOrTextGenerationModel.cjs"), exports);
21
- __exportStar(require("./ToolCallsOrTextParseError.cjs"), exports);
22
- __exportStar(require("./generateToolCallsOrText.cjs"), exports);
17
+ __exportStar(require("./TextGenerationToolCallsModel.cjs"), exports);
18
+ __exportStar(require("./ToolCallsGenerationEvent.cjs"), exports);
19
+ __exportStar(require("./ToolCallsGenerationModel.cjs"), exports);
20
+ __exportStar(require("./ToolCallsPromptTemplate.cjs"), exports);
21
+ __exportStar(require("./ToolCallsParseError.cjs"), exports);
22
+ __exportStar(require("./generateToolCalls.cjs"), exports);
@@ -0,0 +1,6 @@
1
+ export * from "./TextGenerationToolCallsModel.js";
2
+ export * from "./ToolCallsGenerationEvent.js";
3
+ export * from "./ToolCallsGenerationModel.js";
4
+ export * from "./ToolCallsPromptTemplate.js";
5
+ export * from "./ToolCallsParseError.js";
6
+ export * from "./generateToolCalls.js";
@@ -0,0 +1,6 @@
1
+ export * from "./TextGenerationToolCallsModel.js";
2
+ export * from "./ToolCallsGenerationEvent.js";
3
+ export * from "./ToolCallsGenerationModel.js";
4
+ export * from "./ToolCallsPromptTemplate.js";
5
+ export * from "./ToolCallsParseError.js";
6
+ export * from "./generateToolCalls.js";
package/tool/index.cjs CHANGED
@@ -14,7 +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("./InvalidToolNameError.cjs"), exports);
18
17
  __exportStar(require("./NoSuchToolDefinitionError.cjs"), exports);
19
18
  __exportStar(require("./Tool.cjs"), exports);
20
19
  __exportStar(require("./ToolCall.cjs"), exports);
@@ -27,6 +26,6 @@ __exportStar(require("./ToolExecutionError.cjs"), exports);
27
26
  __exportStar(require("./WebSearchTool.cjs"), exports);
28
27
  __exportStar(require("./execute-tool/index.cjs"), exports);
29
28
  __exportStar(require("./generate-tool-call/index.cjs"), exports);
30
- __exportStar(require("./generate-tool-calls-or-text/index.cjs"), exports);
29
+ __exportStar(require("./generate-tool-calls/index.cjs"), exports);
31
30
  __exportStar(require("./use-tool/index.cjs"), exports);
32
- __exportStar(require("./use-tools-or-generate-text/index.cjs"), exports);
31
+ __exportStar(require("./use-tools/index.cjs"), exports);
package/tool/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from "./InvalidToolNameError.js";
2
1
  export * from "./NoSuchToolDefinitionError.js";
3
2
  export * from "./Tool.js";
4
3
  export * from "./ToolCall.js";
@@ -11,6 +10,6 @@ export * from "./ToolExecutionError.js";
11
10
  export * from "./WebSearchTool.js";
12
11
  export * from "./execute-tool/index.js";
13
12
  export * from "./generate-tool-call/index.js";
14
- export * from "./generate-tool-calls-or-text/index.js";
13
+ export * from "./generate-tool-calls/index.js";
15
14
  export * from "./use-tool/index.js";
16
- export * from "./use-tools-or-generate-text/index.js";
15
+ export * from "./use-tools/index.js";
package/tool/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export * from "./InvalidToolNameError.js";
2
1
  export * from "./NoSuchToolDefinitionError.js";
3
2
  export * from "./Tool.js";
4
3
  export * from "./ToolCall.js";
@@ -11,6 +10,6 @@ export * from "./ToolExecutionError.js";
11
10
  export * from "./WebSearchTool.js";
12
11
  export * from "./execute-tool/index.js";
13
12
  export * from "./generate-tool-call/index.js";
14
- export * from "./generate-tool-calls-or-text/index.js";
13
+ export * from "./generate-tool-calls/index.js";
15
14
  export * from "./use-tool/index.js";
16
- export * from "./use-tools-or-generate-text/index.js";
15
+ export * from "./use-tools/index.js";
@@ -0,0 +1,7 @@
1
+ import { BaseFunctionFinishedEvent, BaseFunctionStartedEvent } from "../../core/FunctionEvent.js";
2
+ export interface useToolsStartedEvent extends BaseFunctionStartedEvent {
3
+ functionType: "use-tools";
4
+ }
5
+ export interface useToolsFinishedEvent extends BaseFunctionFinishedEvent {
6
+ functionType: "use-tools";
7
+ }
@@ -14,5 +14,5 @@ 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("./UseToolsOrGenerateTextEvent.cjs"), exports);
18
- __exportStar(require("./useToolsOrGenerateText.cjs"), exports);
17
+ __exportStar(require("./UseToolsEvent.cjs"), exports);
18
+ __exportStar(require("./useTools.cjs"), exports);
@@ -0,0 +1,2 @@
1
+ export * from "./UseToolsEvent.js";
2
+ export * from "./useTools.js";
@@ -0,0 +1,2 @@
1
+ export * from "./UseToolsEvent.js";
2
+ export * from "./useTools.js";