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
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useToolsOrGenerateText = void 0;
3
+ exports.useTools = void 0;
4
4
  const executeFunctionCall_js_1 = require("../../core/executeFunctionCall.cjs");
5
5
  const ToolCallError_js_1 = require("../ToolCallError.cjs");
6
6
  const safeExecuteToolCall_js_1 = require("../execute-tool/safeExecuteToolCall.cjs");
7
- const generateToolCallsOrText_js_1 = require("../generate-tool-calls-or-text/generateToolCallsOrText.cjs");
8
- async function useToolsOrGenerateText(model, tools, prompt, options) {
7
+ const generateToolCalls_js_1 = require("../generate-tool-calls/generateToolCalls.cjs");
8
+ async function useTools(model, tools, prompt, options) {
9
9
  // Note: PROMPT must not be a function.
10
10
  const expandedPrompt = typeof prompt === "function"
11
11
  ? prompt(tools)
@@ -13,9 +13,9 @@ async function useToolsOrGenerateText(model, tools, prompt, options) {
13
13
  return (0, executeFunctionCall_js_1.executeFunctionCall)({
14
14
  options,
15
15
  input: expandedPrompt,
16
- functionType: "use-tools-or-generate-text",
16
+ functionType: "use-tools",
17
17
  execute: async (options) => {
18
- const modelResponse = await (0, generateToolCallsOrText_js_1.generateToolCallsOrText)(model, tools, expandedPrompt, { ...options, fullResponse: false });
18
+ const modelResponse = await (0, generateToolCalls_js_1.generateToolCalls)(model, tools, expandedPrompt, { ...options, fullResponse: false });
19
19
  const { toolCalls, text } = modelResponse;
20
20
  // no tool calls:
21
21
  if (toolCalls == null) {
@@ -45,4 +45,4 @@ async function useToolsOrGenerateText(model, tools, prompt, options) {
45
45
  },
46
46
  });
47
47
  }
48
- exports.useToolsOrGenerateText = useToolsOrGenerateText;
48
+ exports.useTools = useTools;
@@ -1,7 +1,7 @@
1
1
  import { FunctionOptions } from "../../core/FunctionOptions.js";
2
2
  import { Tool } from "../Tool.js";
3
3
  import { ToolCallResult } from "../ToolCallResult.js";
4
- import { ToolCallsOrTextGenerationModel, ToolCallsOrTextGenerationModelSettings } from "../generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.js";
4
+ import { ToolCallsGenerationModel, ToolCallsGenerationModelSettings } from "../generate-tool-calls/ToolCallsGenerationModel.js";
5
5
  type ToolArray<T extends Tool<any, any, any>[]> = T;
6
6
  type ToToolMap<T extends ToolArray<Tool<any, any, any>[]>> = {
7
7
  [K in T[number]["name"]]: Extract<T[number], Tool<K, any, any>>;
@@ -11,7 +11,7 @@ type ToToolCallUnion<T> = {
11
11
  [KEY in StringKeys<T>]: T[KEY] extends Tool<any, infer PARAMETERS, infer OUTPUT> ? ToolCallResult<KEY, PARAMETERS, OUTPUT> : never;
12
12
  }[StringKeys<T>];
13
13
  type ToOutputValue<TOOLS extends ToolArray<Tool<any, any, any>[]>> = ToToolCallUnion<ToToolMap<TOOLS>>;
14
- export declare function useToolsOrGenerateText<PROMPT, TOOLS extends Array<Tool<any, any, any>>>(model: ToolCallsOrTextGenerationModel<PROMPT, ToolCallsOrTextGenerationModelSettings>, tools: TOOLS, prompt: PROMPT | ((tools: TOOLS) => PROMPT), options?: FunctionOptions): Promise<{
14
+ export declare function useTools<PROMPT, TOOLS extends Array<Tool<any, any, any>>>(model: ToolCallsGenerationModel<PROMPT, ToolCallsGenerationModelSettings>, tools: TOOLS, prompt: PROMPT | ((tools: TOOLS) => PROMPT), options?: FunctionOptions): Promise<{
15
15
  text: string | null;
16
16
  toolResults: Array<ToOutputValue<TOOLS>> | null;
17
17
  }>;
@@ -1,8 +1,8 @@
1
1
  import { executeFunctionCall } from "../../core/executeFunctionCall.js";
2
2
  import { ToolCallError } from "../ToolCallError.js";
3
3
  import { safeExecuteToolCall } from "../execute-tool/safeExecuteToolCall.js";
4
- import { generateToolCallsOrText } from "../generate-tool-calls-or-text/generateToolCallsOrText.js";
5
- export async function useToolsOrGenerateText(model, tools, prompt, options) {
4
+ import { generateToolCalls } from "../generate-tool-calls/generateToolCalls.js";
5
+ export async function useTools(model, tools, prompt, options) {
6
6
  // Note: PROMPT must not be a function.
7
7
  const expandedPrompt = typeof prompt === "function"
8
8
  ? prompt(tools)
@@ -10,9 +10,9 @@ export async function useToolsOrGenerateText(model, tools, prompt, options) {
10
10
  return executeFunctionCall({
11
11
  options,
12
12
  input: expandedPrompt,
13
- functionType: "use-tools-or-generate-text",
13
+ functionType: "use-tools",
14
14
  execute: async (options) => {
15
- const modelResponse = await generateToolCallsOrText(model, tools, expandedPrompt, { ...options, fullResponse: false });
15
+ const modelResponse = await generateToolCalls(model, tools, expandedPrompt, { ...options, fullResponse: false });
16
16
  const { toolCalls, text } = modelResponse;
17
17
  // no tool calls:
18
18
  if (toolCalls == null) {
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvalidToolNameError = void 0;
4
- class InvalidToolNameError extends Error {
5
- constructor({ toolName, namePattern, }) {
6
- super(`Invalid tool name '${toolName}'. The tool name must match the regular expression pattern ${namePattern}.`);
7
- Object.defineProperty(this, "toolName", {
8
- enumerable: true,
9
- configurable: true,
10
- writable: true,
11
- value: void 0
12
- });
13
- this.name = "InvalidToolNameError";
14
- this.toolName = toolName;
15
- }
16
- }
17
- exports.InvalidToolNameError = InvalidToolNameError;
@@ -1,7 +0,0 @@
1
- export declare class InvalidToolNameError extends Error {
2
- readonly toolName: string;
3
- constructor({ toolName, namePattern, }: {
4
- toolName: string;
5
- namePattern: RegExp;
6
- });
7
- }
@@ -1,13 +0,0 @@
1
- export class InvalidToolNameError extends Error {
2
- constructor({ toolName, namePattern, }) {
3
- super(`Invalid tool name '${toolName}'. The tool name must match the regular expression pattern ${namePattern}.`);
4
- Object.defineProperty(this, "toolName", {
5
- enumerable: true,
6
- configurable: true,
7
- writable: true,
8
- value: void 0
9
- });
10
- this.name = "InvalidToolNameError";
11
- this.toolName = toolName;
12
- }
13
- }
@@ -1,23 +0,0 @@
1
- import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../../model-function/ModelCallEvent.js";
2
- export interface ToolCallsOrTextGenerationStartedEvent extends BaseModelCallStartedEvent {
3
- functionType: "generate-tool-calls-or-text";
4
- }
5
- export type ToolCallsOrTextGenerationFinishedEventResult = {
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 ToolCallsOrTextGenerationFinishedEvent = BaseModelCallFinishedEvent & {
21
- functionType: "generate-tool-calls-or-text";
22
- result: ToolCallsOrTextGenerationFinishedEventResult;
23
- };
@@ -1,6 +0,0 @@
1
- export * from "./TextGenerationToolCallsOrGenerateTextModel.js";
2
- export * from "./ToolCallsOrGenerateTextPromptTemplate.js";
3
- export * from "./ToolCallsOrTextGenerationEvent.js";
4
- export * from "./ToolCallsOrTextGenerationModel.js";
5
- export * from "./ToolCallsOrTextParseError.js";
6
- export * from "./generateToolCallsOrText.js";
@@ -1,6 +0,0 @@
1
- export * from "./TextGenerationToolCallsOrGenerateTextModel.js";
2
- export * from "./ToolCallsOrGenerateTextPromptTemplate.js";
3
- export * from "./ToolCallsOrTextGenerationEvent.js";
4
- export * from "./ToolCallsOrTextGenerationModel.js";
5
- export * from "./ToolCallsOrTextParseError.js";
6
- export * from "./generateToolCallsOrText.js";
@@ -1,7 +0,0 @@
1
- import { BaseFunctionFinishedEvent, BaseFunctionStartedEvent } from "../../core/FunctionEvent.js";
2
- export interface UseToolsOrGenerateTextStartedEvent extends BaseFunctionStartedEvent {
3
- functionType: "use-tools-or-generate-text";
4
- }
5
- export interface UseToolsOrGenerateTextFinishedEvent extends BaseFunctionFinishedEvent {
6
- functionType: "use-tools-or-generate-text";
7
- }
@@ -1,2 +0,0 @@
1
- export * from "./UseToolsOrGenerateTextEvent.js";
2
- export * from "./useToolsOrGenerateText.js";
@@ -1,2 +0,0 @@
1
- export * from "./UseToolsOrGenerateTextEvent.js";
2
- export * from "./useToolsOrGenerateText.js";