modelfusion 0.18.0 → 0.20.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.
- package/README.md +4 -5
- package/model-function/embed-text/embedText.cjs +64 -18
- package/model-function/embed-text/embedText.d.ts +3 -19
- package/model-function/embed-text/embedText.js +64 -18
- package/model-function/executeCall.cjs +49 -3
- package/model-function/executeCall.d.ts +18 -5
- package/model-function/executeCall.js +46 -1
- package/model-function/generate-image/generateImage.cjs +17 -9
- package/model-function/generate-image/generateImage.d.ts +2 -11
- package/model-function/generate-image/generateImage.js +17 -9
- package/model-function/generate-json/generateJson.cjs +2 -9
- package/model-function/generate-json/generateJson.d.ts +2 -11
- package/model-function/generate-json/generateJson.js +2 -9
- package/model-function/generate-json/generateJsonOrText.cjs +2 -9
- package/model-function/generate-json/generateJsonOrText.d.ts +3 -15
- package/model-function/generate-json/generateJsonOrText.js +2 -9
- package/model-function/generate-text/generateText.cjs +14 -9
- package/model-function/generate-text/generateText.d.ts +2 -11
- package/model-function/generate-text/generateText.js +14 -9
- package/model-function/generate-text/streamText.cjs +44 -9
- package/model-function/generate-text/streamText.d.ts +16 -12
- package/model-function/generate-text/streamText.js +41 -7
- package/model-function/synthesize-speech/synthesizeSpeech.cjs +5 -8
- package/model-function/synthesize-speech/synthesizeSpeech.d.ts +2 -10
- package/model-function/synthesize-speech/synthesizeSpeech.js +5 -8
- package/model-function/transcribe-speech/transcribe.cjs +16 -9
- package/model-function/transcribe-speech/transcribe.d.ts +2 -11
- package/model-function/transcribe-speech/transcribe.js +16 -9
- package/model-provider/cohere/CohereTextEmbeddingModel.d.ts +3 -3
- package/model-provider/openai/OpenAITextGenerationModel.cjs +8 -0
- package/model-provider/openai/OpenAITextGenerationModel.d.ts +10 -2
- package/model-provider/openai/OpenAITextGenerationModel.js +8 -0
- package/model-provider/openai/TikTokenTokenizer.cjs +5 -1
- package/model-provider/openai/TikTokenTokenizer.js +5 -1
- package/package.json +1 -1
- package/tool/executeTool.cjs +48 -9
- package/tool/executeTool.d.ts +16 -9
- package/tool/executeTool.js +45 -7
- package/tool/useTool.cjs +2 -3
- package/tool/useTool.js +2 -3
package/tool/executeTool.d.ts
CHANGED
@@ -10,15 +10,22 @@ export type ExecuteToolMetadata = {
|
|
10
10
|
startEpochSeconds: number;
|
11
11
|
durationInMs: number;
|
12
12
|
};
|
13
|
+
export declare class ExecuteToolPromise<OUTPUT> extends Promise<OUTPUT> {
|
14
|
+
private fullPromise;
|
15
|
+
private outputPromise;
|
16
|
+
constructor(fullPromise: Promise<{
|
17
|
+
output: OUTPUT;
|
18
|
+
metadata: ExecuteToolMetadata;
|
19
|
+
}>);
|
20
|
+
asFullResponse(): Promise<{
|
21
|
+
output: OUTPUT;
|
22
|
+
metadata: ExecuteToolMetadata;
|
23
|
+
}>;
|
24
|
+
then<TResult1 = OUTPUT, TResult2 = never>(onfulfilled?: ((value: OUTPUT) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
|
25
|
+
catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<OUTPUT | TResult>;
|
26
|
+
finally(onfinally?: (() => void) | undefined | null): Promise<OUTPUT>;
|
27
|
+
}
|
13
28
|
/**
|
14
29
|
* `executeTool` directly executes a tool with the given parameters.
|
15
30
|
*/
|
16
|
-
export declare function executeTool<TOOL extends Tool<any, any, any>>(tool: TOOL, input: z.infer<TOOL["inputSchema"]>, options
|
17
|
-
fullResponse: true;
|
18
|
-
}): Promise<{
|
19
|
-
output: Awaited<ReturnType<TOOL["execute"]>>;
|
20
|
-
metadata: ExecuteToolMetadata;
|
21
|
-
}>;
|
22
|
-
export declare function executeTool<TOOL extends Tool<any, any, any>>(tool: TOOL, input: z.infer<TOOL["inputSchema"]>, options?: FunctionOptions<undefined> & {
|
23
|
-
fullResponse?: false;
|
24
|
-
}): Promise<ReturnType<TOOL["execute"]>>;
|
31
|
+
export declare function executeTool<TOOL extends Tool<any, any, any>>(tool: TOOL, input: z.infer<TOOL["inputSchema"]>, options?: FunctionOptions<undefined>): ExecuteToolPromise<ReturnType<TOOL["execute"]>>;
|
package/tool/executeTool.js
CHANGED
@@ -4,8 +4,48 @@ import { startDurationMeasurement } from "../util/DurationMeasurement.js";
|
|
4
4
|
import { AbortError } from "../util/api/AbortError.js";
|
5
5
|
import { runSafe } from "../util/runSafe.js";
|
6
6
|
import { ToolExecutionError } from "./ToolExecutionError.js";
|
7
|
+
export class ExecuteToolPromise extends Promise {
|
8
|
+
constructor(fullPromise) {
|
9
|
+
super((resolve) => {
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
11
|
+
resolve(null); // we override the resolve function
|
12
|
+
});
|
13
|
+
Object.defineProperty(this, "fullPromise", {
|
14
|
+
enumerable: true,
|
15
|
+
configurable: true,
|
16
|
+
writable: true,
|
17
|
+
value: fullPromise
|
18
|
+
});
|
19
|
+
Object.defineProperty(this, "outputPromise", {
|
20
|
+
enumerable: true,
|
21
|
+
configurable: true,
|
22
|
+
writable: true,
|
23
|
+
value: void 0
|
24
|
+
});
|
25
|
+
this.outputPromise = fullPromise.then((result) => result.output);
|
26
|
+
}
|
27
|
+
asFullResponse() {
|
28
|
+
return this.fullPromise;
|
29
|
+
}
|
30
|
+
then(onfulfilled, onrejected) {
|
31
|
+
return this.outputPromise.then(onfulfilled, onrejected);
|
32
|
+
}
|
33
|
+
catch(onrejected) {
|
34
|
+
return this.outputPromise.catch(onrejected);
|
35
|
+
}
|
36
|
+
finally(onfinally) {
|
37
|
+
return this.outputPromise.finally(onfinally);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
/**
|
41
|
+
* `executeTool` directly executes a tool with the given parameters.
|
42
|
+
*/
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
44
|
+
export function executeTool(tool, input, options) {
|
45
|
+
return new ExecuteToolPromise(doExecuteTool(tool, input, options));
|
46
|
+
}
|
7
47
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
8
|
-
|
48
|
+
async function doExecuteTool(tool, input, options) {
|
9
49
|
const run = options?.run;
|
10
50
|
const eventSource = new RunFunctionEventSource({
|
11
51
|
observers: run?.observers ?? [],
|
@@ -67,10 +107,8 @@ export async function executeTool(tool, input, options) {
|
|
67
107
|
input,
|
68
108
|
output,
|
69
109
|
});
|
70
|
-
return
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
}
|
75
|
-
: output;
|
110
|
+
return {
|
111
|
+
output,
|
112
|
+
metadata: finishMetadata,
|
113
|
+
};
|
76
114
|
}
|
package/tool/useTool.cjs
CHANGED
@@ -14,14 +14,13 @@ const executeTool_js_1 = require("./executeTool.cjs");
|
|
14
14
|
* and the result of the tool execution (`result` property, typed).
|
15
15
|
*/
|
16
16
|
async function useTool(model, tool, prompt, options) {
|
17
|
-
const { value } = await (0, generateJson_js_1.generateJson)(model, {
|
17
|
+
const { output: value } = await (0, generateJson_js_1.generateJson)(model, {
|
18
18
|
name: tool.name,
|
19
19
|
description: tool.description,
|
20
20
|
schema: tool.inputSchema,
|
21
21
|
}, () => prompt(tool), {
|
22
22
|
...(options ?? {}),
|
23
|
-
|
24
|
-
});
|
23
|
+
}).asFullResponse();
|
25
24
|
return {
|
26
25
|
tool: tool.name,
|
27
26
|
parameters: value,
|
package/tool/useTool.js
CHANGED
@@ -11,14 +11,13 @@ import { executeTool } from "./executeTool.js";
|
|
11
11
|
* and the result of the tool execution (`result` property, typed).
|
12
12
|
*/
|
13
13
|
export async function useTool(model, tool, prompt, options) {
|
14
|
-
const { value } = await generateJson(model, {
|
14
|
+
const { output: value } = await generateJson(model, {
|
15
15
|
name: tool.name,
|
16
16
|
description: tool.description,
|
17
17
|
schema: tool.inputSchema,
|
18
18
|
}, () => prompt(tool), {
|
19
19
|
...(options ?? {}),
|
20
|
-
|
21
|
-
});
|
20
|
+
}).asFullResponse();
|
22
21
|
return {
|
23
22
|
tool: tool.name,
|
24
23
|
parameters: value,
|