modelfusion 0.57.2 → 0.59.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 (68) hide show
  1. package/README.md +6 -4
  2. package/core/api/retryWithExponentialBackoff.cjs +5 -4
  3. package/core/api/retryWithExponentialBackoff.js +5 -4
  4. package/model-function/embed/embed.cjs +8 -44
  5. package/model-function/embed/embed.d.ts +23 -5
  6. package/model-function/embed/embed.js +8 -44
  7. package/model-function/generate-image/generateImage.cjs +12 -28
  8. package/model-function/generate-image/generateImage.d.ts +16 -3
  9. package/model-function/generate-image/generateImage.js +12 -28
  10. package/model-function/generate-speech/generateSpeech.cjs +4 -22
  11. package/model-function/generate-speech/generateSpeech.d.ts +12 -3
  12. package/model-function/generate-speech/generateSpeech.js +4 -22
  13. package/model-function/generate-speech/streamSpeech.cjs +5 -31
  14. package/model-function/generate-speech/streamSpeech.d.ts +11 -3
  15. package/model-function/generate-speech/streamSpeech.js +5 -31
  16. package/model-function/generate-structure/StructureFromTextGenerationModel.cjs +4 -1
  17. package/model-function/generate-structure/StructureFromTextGenerationModel.js +4 -1
  18. package/model-function/generate-structure/generateStructure.cjs +4 -45
  19. package/model-function/generate-structure/generateStructure.d.ts +12 -3
  20. package/model-function/generate-structure/generateStructure.js +4 -45
  21. package/model-function/generate-structure/generateStructureOrText.cjs +4 -66
  22. package/model-function/generate-structure/generateStructureOrText.d.ts +16 -3
  23. package/model-function/generate-structure/generateStructureOrText.js +4 -66
  24. package/model-function/generate-structure/streamStructure.cjs +4 -71
  25. package/model-function/generate-structure/streamStructure.d.ts +10 -2
  26. package/model-function/generate-structure/streamStructure.js +4 -71
  27. package/model-function/generate-text/generateText.cjs +5 -28
  28. package/model-function/generate-text/generateText.d.ts +12 -3
  29. package/model-function/generate-text/generateText.js +5 -28
  30. package/model-function/generate-text/streamText.cjs +4 -29
  31. package/model-function/generate-text/streamText.d.ts +10 -2
  32. package/model-function/generate-text/streamText.js +4 -29
  33. package/model-function/generate-transcription/generateTranscription.cjs +4 -23
  34. package/model-function/generate-transcription/generateTranscription.d.ts +12 -3
  35. package/model-function/generate-transcription/generateTranscription.js +4 -23
  36. package/model-provider/elevenlabs/ElevenLabsSpeechModel.cjs +1 -0
  37. package/model-provider/elevenlabs/ElevenLabsSpeechModel.d.ts +1 -1
  38. package/model-provider/elevenlabs/ElevenLabsSpeechModel.js +1 -0
  39. package/model-provider/ollama/OllamaTextGenerationModel.cjs +18 -2
  40. package/model-provider/ollama/OllamaTextGenerationModel.js +18 -2
  41. package/package.json +1 -1
  42. package/tool/NoSuchToolError.cjs +8 -0
  43. package/tool/NoSuchToolError.d.ts +6 -0
  44. package/tool/NoSuchToolError.js +8 -0
  45. package/tool/ToolExecutionError.cjs +10 -0
  46. package/tool/ToolExecutionError.d.ts +8 -0
  47. package/tool/ToolExecutionError.js +10 -0
  48. package/tool/executeTool.cjs +5 -41
  49. package/tool/executeTool.d.ts +11 -16
  50. package/tool/executeTool.js +4 -39
  51. package/tool/useTool.cjs +4 -1
  52. package/tool/useTool.js +4 -1
  53. package/tool/useToolOrGenerateText.cjs +4 -1
  54. package/tool/useToolOrGenerateText.js +4 -1
  55. package/util/JSONParseError.cjs +1 -0
  56. package/util/JSONParseError.d.ts +1 -0
  57. package/util/JSONParseError.js +1 -0
  58. package/util/runSafe.test.cjs +10 -1
  59. package/util/runSafe.test.js +10 -1
  60. package/model-function/AsyncIterableResultPromise.cjs +0 -37
  61. package/model-function/AsyncIterableResultPromise.d.ts +0 -16
  62. package/model-function/AsyncIterableResultPromise.js +0 -33
  63. package/model-function/ModelFunctionPromise.cjs +0 -37
  64. package/model-function/ModelFunctionPromise.d.ts +0 -18
  65. package/model-function/ModelFunctionPromise.js +0 -33
  66. package/model-function/generate-image/ImageGenerationPromise.cjs +0 -50
  67. package/model-function/generate-image/ImageGenerationPromise.d.ts +0 -22
  68. package/model-function/generate-image/ImageGenerationPromise.js +0 -46
@@ -16,7 +16,10 @@ export async function useToolOrGenerateText(model, tools, prompt, options) {
16
16
  name: tool.name,
17
17
  description: tool.description,
18
18
  schema: tool.inputSchema,
19
- })), expandedPrompt, options);
19
+ })), expandedPrompt, {
20
+ ...options,
21
+ returnType: "structure",
22
+ });
20
23
  const { structure, text } = modelResponse;
21
24
  if (structure == null) {
22
25
  return {
@@ -35,6 +35,7 @@ class JSONParseError extends Error {
35
35
  message: this.message,
36
36
  cause: this.cause,
37
37
  valueText: this.valueText,
38
+ stack: this.stack,
38
39
  };
39
40
  }
40
41
  }
@@ -11,5 +11,6 @@ export declare class JSONParseError extends Error {
11
11
  message: string;
12
12
  cause: unknown;
13
13
  valueText: string;
14
+ stack: string | undefined;
14
15
  };
15
16
  }
@@ -32,6 +32,7 @@ export class JSONParseError extends Error {
32
32
  message: this.message,
33
33
  cause: this.cause,
34
34
  valueText: this.valueText,
35
+ stack: this.stack,
35
36
  };
36
37
  }
37
38
  }
@@ -12,6 +12,15 @@ const runSafe_js_1 = require("./runSafe.cjs");
12
12
  error,
13
13
  });
14
14
  });
15
+ (0, vitest_1.test)("catch thrown string in sync function", async () => {
16
+ const result = await (0, runSafe_js_1.runSafe)(() => {
17
+ throw "test error";
18
+ });
19
+ (0, vitest_1.expect)(result).toEqual({
20
+ ok: false,
21
+ error: "test error",
22
+ });
23
+ });
15
24
  (0, vitest_1.test)("catch thrown error in async function", async () => {
16
25
  const error = new Error("test error");
17
26
  const result = await (0, runSafe_js_1.runSafe)(async () => {
@@ -22,7 +31,7 @@ const runSafe_js_1 = require("./runSafe.cjs");
22
31
  error,
23
32
  });
24
33
  });
25
- (0, vitest_1.test)("catch thrown string", async () => {
34
+ (0, vitest_1.test)("catch thrown string in async function", async () => {
26
35
  const result = await (0, runSafe_js_1.runSafe)(async () => {
27
36
  throw "test error";
28
37
  });
@@ -10,6 +10,15 @@ test("catch thrown error in sync function", async () => {
10
10
  error,
11
11
  });
12
12
  });
13
+ test("catch thrown string in sync function", async () => {
14
+ const result = await runSafe(() => {
15
+ throw "test error";
16
+ });
17
+ expect(result).toEqual({
18
+ ok: false,
19
+ error: "test error",
20
+ });
21
+ });
13
22
  test("catch thrown error in async function", async () => {
14
23
  const error = new Error("test error");
15
24
  const result = await runSafe(async () => {
@@ -20,7 +29,7 @@ test("catch thrown error in async function", async () => {
20
29
  error,
21
30
  });
22
31
  });
23
- test("catch thrown string", async () => {
32
+ test("catch thrown string in async function", async () => {
24
33
  const result = await runSafe(async () => {
25
34
  throw "test error";
26
35
  });
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AsyncIterableResultPromise = void 0;
4
- class AsyncIterableResultPromise extends Promise {
5
- constructor(fullPromise) {
6
- super((resolve) => {
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
- resolve(null); // we override the resolve function
9
- });
10
- Object.defineProperty(this, "fullPromise", {
11
- enumerable: true,
12
- configurable: true,
13
- writable: true,
14
- value: fullPromise
15
- });
16
- Object.defineProperty(this, "valuePromise", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- this.valuePromise = fullPromise.then((result) => result.value);
23
- }
24
- asFullResponse() {
25
- return this.fullPromise;
26
- }
27
- then(onfulfilled, onrejected) {
28
- return this.valuePromise.then(onfulfilled, onrejected);
29
- }
30
- catch(onrejected) {
31
- return this.valuePromise.catch(onrejected);
32
- }
33
- finally(onfinally) {
34
- return this.valuePromise.finally(onfinally);
35
- }
36
- }
37
- exports.AsyncIterableResultPromise = AsyncIterableResultPromise;
@@ -1,16 +0,0 @@
1
- import { ModelCallMetadata } from "./ModelCallMetadata.js";
2
- export declare class AsyncIterableResultPromise<T> extends Promise<AsyncIterable<T>> {
3
- private fullPromise;
4
- private valuePromise;
5
- constructor(fullPromise: Promise<{
6
- value: AsyncIterable<T>;
7
- metadata: Omit<ModelCallMetadata, "durationInMs" | "finishTimestamp">;
8
- }>);
9
- asFullResponse(): Promise<{
10
- value: AsyncIterable<T>;
11
- metadata: Omit<ModelCallMetadata, "durationInMs" | "finishTimestamp">;
12
- }>;
13
- then<TResult1 = AsyncIterable<T>, TResult2 = never>(onfulfilled?: ((value: AsyncIterable<T>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
14
- catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<AsyncIterable<T> | TResult>;
15
- finally(onfinally?: (() => void) | undefined | null): Promise<AsyncIterable<T>>;
16
- }
@@ -1,33 +0,0 @@
1
- export class AsyncIterableResultPromise extends Promise {
2
- constructor(fullPromise) {
3
- super((resolve) => {
4
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
- resolve(null); // we override the resolve function
6
- });
7
- Object.defineProperty(this, "fullPromise", {
8
- enumerable: true,
9
- configurable: true,
10
- writable: true,
11
- value: fullPromise
12
- });
13
- Object.defineProperty(this, "valuePromise", {
14
- enumerable: true,
15
- configurable: true,
16
- writable: true,
17
- value: void 0
18
- });
19
- this.valuePromise = fullPromise.then((result) => result.value);
20
- }
21
- asFullResponse() {
22
- return this.fullPromise;
23
- }
24
- then(onfulfilled, onrejected) {
25
- return this.valuePromise.then(onfulfilled, onrejected);
26
- }
27
- catch(onrejected) {
28
- return this.valuePromise.catch(onrejected);
29
- }
30
- finally(onfinally) {
31
- return this.valuePromise.finally(onfinally);
32
- }
33
- }
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelFunctionPromise = void 0;
4
- class ModelFunctionPromise extends Promise {
5
- constructor(fullPromise) {
6
- super((resolve) => {
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
- resolve(null); // we override the resolve function
9
- });
10
- Object.defineProperty(this, "fullPromise", {
11
- enumerable: true,
12
- configurable: true,
13
- writable: true,
14
- value: fullPromise
15
- });
16
- Object.defineProperty(this, "valuePromise", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- this.valuePromise = fullPromise.then((result) => result.value);
23
- }
24
- asFullResponse() {
25
- return this.fullPromise;
26
- }
27
- then(onfulfilled, onrejected) {
28
- return this.valuePromise.then(onfulfilled, onrejected);
29
- }
30
- catch(onrejected) {
31
- return this.valuePromise.catch(onrejected);
32
- }
33
- finally(onfinally) {
34
- return this.valuePromise.finally(onfinally);
35
- }
36
- }
37
- exports.ModelFunctionPromise = ModelFunctionPromise;
@@ -1,18 +0,0 @@
1
- import { ModelCallMetadata } from "./ModelCallMetadata.js";
2
- export declare class ModelFunctionPromise<VALUE> extends Promise<VALUE> {
3
- private fullPromise;
4
- private valuePromise;
5
- constructor(fullPromise: Promise<{
6
- value: VALUE;
7
- response: unknown;
8
- metadata: ModelCallMetadata;
9
- }>);
10
- asFullResponse(): Promise<{
11
- value: VALUE;
12
- response: unknown;
13
- metadata: ModelCallMetadata;
14
- }>;
15
- then<TResult1 = VALUE, TResult2 = never>(onfulfilled?: ((value: VALUE) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
16
- catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<VALUE | TResult>;
17
- finally(onfinally?: (() => void) | undefined | null): Promise<VALUE>;
18
- }
@@ -1,33 +0,0 @@
1
- export class ModelFunctionPromise extends Promise {
2
- constructor(fullPromise) {
3
- super((resolve) => {
4
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
- resolve(null); // we override the resolve function
6
- });
7
- Object.defineProperty(this, "fullPromise", {
8
- enumerable: true,
9
- configurable: true,
10
- writable: true,
11
- value: fullPromise
12
- });
13
- Object.defineProperty(this, "valuePromise", {
14
- enumerable: true,
15
- configurable: true,
16
- writable: true,
17
- value: void 0
18
- });
19
- this.valuePromise = fullPromise.then((result) => result.value);
20
- }
21
- asFullResponse() {
22
- return this.fullPromise;
23
- }
24
- then(onfulfilled, onrejected) {
25
- return this.valuePromise.then(onfulfilled, onrejected);
26
- }
27
- catch(onrejected) {
28
- return this.valuePromise.catch(onrejected);
29
- }
30
- finally(onfinally) {
31
- return this.valuePromise.finally(onfinally);
32
- }
33
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImageGenerationPromise = void 0;
4
- class ImageGenerationPromise extends Promise {
5
- constructor(fullPromise) {
6
- super((resolve) => {
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
- resolve(null); // we override the resolve function
9
- });
10
- Object.defineProperty(this, "fullPromise", {
11
- enumerable: true,
12
- configurable: true,
13
- writable: true,
14
- value: fullPromise
15
- });
16
- Object.defineProperty(this, "imageBase64Promise", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- Object.defineProperty(this, "imageBufferPromise", {
23
- enumerable: true,
24
- configurable: true,
25
- writable: true,
26
- value: void 0
27
- });
28
- this.imageBase64Promise = fullPromise.then((result) => result.value);
29
- this.imageBufferPromise = this.imageBase64Promise.then((base64Text) => Buffer.from(base64Text, "base64"));
30
- }
31
- asFullResponse() {
32
- return this.fullPromise;
33
- }
34
- asBase64Text() {
35
- return this.imageBase64Promise;
36
- }
37
- asBuffer() {
38
- return this.imageBufferPromise;
39
- }
40
- then(onfulfilled, onrejected) {
41
- return this.imageBufferPromise.then(onfulfilled, onrejected);
42
- }
43
- catch(onrejected) {
44
- return this.imageBufferPromise.catch(onrejected);
45
- }
46
- finally(onfinally) {
47
- return this.imageBufferPromise.finally(onfinally);
48
- }
49
- }
50
- exports.ImageGenerationPromise = ImageGenerationPromise;
@@ -1,22 +0,0 @@
1
- /// <reference types="node" />
2
- import { ModelCallMetadata } from "../ModelCallMetadata.js";
3
- export declare class ImageGenerationPromise extends Promise<Buffer> {
4
- private fullPromise;
5
- private imageBase64Promise;
6
- private imageBufferPromise;
7
- constructor(fullPromise: Promise<{
8
- value: string;
9
- response: unknown;
10
- metadata: ModelCallMetadata;
11
- }>);
12
- asFullResponse(): Promise<{
13
- value: string;
14
- response: unknown;
15
- metadata: ModelCallMetadata;
16
- }>;
17
- asBase64Text(): Promise<string>;
18
- asBuffer(): Promise<Buffer>;
19
- then<TResult1 = Buffer, TResult2 = never>(onfulfilled?: ((value: Buffer) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
20
- catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<Buffer | TResult>;
21
- finally(onfinally?: (() => void) | undefined | null): Promise<Buffer>;
22
- }
@@ -1,46 +0,0 @@
1
- export class ImageGenerationPromise extends Promise {
2
- constructor(fullPromise) {
3
- super((resolve) => {
4
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
- resolve(null); // we override the resolve function
6
- });
7
- Object.defineProperty(this, "fullPromise", {
8
- enumerable: true,
9
- configurable: true,
10
- writable: true,
11
- value: fullPromise
12
- });
13
- Object.defineProperty(this, "imageBase64Promise", {
14
- enumerable: true,
15
- configurable: true,
16
- writable: true,
17
- value: void 0
18
- });
19
- Object.defineProperty(this, "imageBufferPromise", {
20
- enumerable: true,
21
- configurable: true,
22
- writable: true,
23
- value: void 0
24
- });
25
- this.imageBase64Promise = fullPromise.then((result) => result.value);
26
- this.imageBufferPromise = this.imageBase64Promise.then((base64Text) => Buffer.from(base64Text, "base64"));
27
- }
28
- asFullResponse() {
29
- return this.fullPromise;
30
- }
31
- asBase64Text() {
32
- return this.imageBase64Promise;
33
- }
34
- asBuffer() {
35
- return this.imageBufferPromise;
36
- }
37
- then(onfulfilled, onrejected) {
38
- return this.imageBufferPromise.then(onfulfilled, onrejected);
39
- }
40
- catch(onrejected) {
41
- return this.imageBufferPromise.catch(onrejected);
42
- }
43
- finally(onfinally) {
44
- return this.imageBufferPromise.finally(onfinally);
45
- }
46
- }