modelfusion 0.47.3 → 0.49.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 (125) hide show
  1. package/README.md +55 -33
  2. package/core/getRun.cjs +5 -3
  3. package/core/getRun.js +5 -3
  4. package/index.cjs +1 -0
  5. package/index.d.ts +1 -0
  6. package/index.js +1 -0
  7. package/model-function/AsyncIterableResultPromise.cjs +5 -5
  8. package/model-function/AsyncIterableResultPromise.d.ts +3 -3
  9. package/model-function/AsyncIterableResultPromise.js +5 -5
  10. package/model-function/Model.d.ts +1 -1
  11. package/model-function/ModelCallEvent.d.ts +5 -7
  12. package/model-function/embed/embed.cjs +3 -3
  13. package/model-function/embed/embed.js +3 -3
  14. package/model-function/{executeCall.cjs → executeStandardCall.cjs} +3 -3
  15. package/model-function/{executeCall.d.ts → executeStandardCall.d.ts} +1 -1
  16. package/model-function/{executeCall.js → executeStandardCall.js} +1 -1
  17. package/model-function/executeStreamCall.cjs +132 -0
  18. package/model-function/executeStreamCall.d.ts +20 -0
  19. package/model-function/executeStreamCall.js +128 -0
  20. package/model-function/generate-image/generateImage.cjs +2 -2
  21. package/model-function/generate-image/generateImage.js +2 -2
  22. package/model-function/generate-speech/SpeechGenerationEvent.d.ts +27 -0
  23. package/model-function/generate-speech/SpeechGenerationModel.d.ts +15 -0
  24. package/model-function/{synthesize-speech/synthesizeSpeech.cjs → generate-speech/generateSpeech.cjs} +7 -7
  25. package/model-function/{synthesize-speech/synthesizeSpeech.d.ts → generate-speech/generateSpeech.d.ts} +2 -2
  26. package/model-function/{synthesize-speech/synthesizeSpeech.js → generate-speech/generateSpeech.js} +5 -5
  27. package/model-function/generate-speech/index.cjs +20 -0
  28. package/model-function/generate-speech/index.d.ts +4 -0
  29. package/model-function/generate-speech/index.js +4 -0
  30. package/model-function/generate-speech/streamSpeech.cjs +34 -0
  31. package/model-function/generate-speech/streamSpeech.d.ts +8 -0
  32. package/model-function/generate-speech/streamSpeech.js +30 -0
  33. package/model-function/generate-structure/generateStructure.cjs +2 -2
  34. package/model-function/generate-structure/generateStructure.js +2 -2
  35. package/model-function/generate-structure/generateStructureOrText.cjs +2 -2
  36. package/model-function/generate-structure/generateStructureOrText.js +2 -2
  37. package/model-function/generate-structure/index.cjs +27 -0
  38. package/model-function/generate-structure/index.d.ts +11 -0
  39. package/model-function/generate-structure/index.js +11 -0
  40. package/model-function/generate-structure/streamStructure.cjs +28 -136
  41. package/model-function/generate-structure/streamStructure.js +27 -135
  42. package/model-function/generate-text/TextGenerationEvent.d.ts +6 -0
  43. package/model-function/generate-text/generateText.cjs +3 -3
  44. package/model-function/generate-text/generateText.d.ts +1 -1
  45. package/model-function/generate-text/generateText.js +3 -3
  46. package/model-function/generate-text/index.cjs +0 -1
  47. package/model-function/generate-text/index.d.ts +0 -1
  48. package/model-function/generate-text/index.js +0 -1
  49. package/model-function/generate-text/streamText.cjs +21 -128
  50. package/model-function/generate-text/streamText.js +20 -127
  51. package/model-function/generate-text/trimChatPrompt.cjs +1 -1
  52. package/model-function/generate-text/trimChatPrompt.d.ts +1 -1
  53. package/model-function/generate-text/trimChatPrompt.js +1 -1
  54. package/model-function/{transcribe-speech/transcribe.cjs → generate-transcription/generateTranscription.cjs} +6 -6
  55. package/model-function/{transcribe-speech/transcribe.d.ts → generate-transcription/generateTranscription.d.ts} +2 -2
  56. package/model-function/{transcribe-speech/transcribe.js → generate-transcription/generateTranscription.js} +4 -4
  57. package/model-function/index.cjs +5 -20
  58. package/model-function/index.d.ts +5 -20
  59. package/model-function/index.js +5 -20
  60. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.cjs +3 -0
  61. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.d.ts +1 -0
  62. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.js +3 -0
  63. package/model-provider/elevenlabs/ElevenLabsSpeechModel.cjs +191 -0
  64. package/model-provider/elevenlabs/ElevenLabsSpeechModel.d.ts +39 -0
  65. package/model-provider/elevenlabs/ElevenLabsSpeechModel.js +187 -0
  66. package/model-provider/elevenlabs/index.cjs +1 -1
  67. package/model-provider/elevenlabs/index.d.ts +1 -1
  68. package/model-provider/elevenlabs/index.js +1 -1
  69. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.cjs +21 -2
  70. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.d.ts +11 -6
  71. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.js +21 -2
  72. package/model-provider/lmnt/{LmntSpeechSynthesisModel.cjs → LmntSpeechModel.cjs} +5 -5
  73. package/model-provider/lmnt/LmntSpeechModel.d.ts +26 -0
  74. package/model-provider/lmnt/{LmntSpeechSynthesisModel.js → LmntSpeechModel.js} +3 -3
  75. package/model-provider/lmnt/index.cjs +1 -1
  76. package/model-provider/lmnt/index.d.ts +1 -1
  77. package/model-provider/lmnt/index.js +1 -1
  78. package/model-provider/openai/{OpenAITextGenerationModel.cjs → OpenAICompletionModel.cjs} +17 -17
  79. package/model-provider/openai/{OpenAITextGenerationModel.d.ts → OpenAICompletionModel.d.ts} +25 -25
  80. package/model-provider/openai/{OpenAITextGenerationModel.js → OpenAICompletionModel.js} +12 -12
  81. package/model-provider/openai/OpenAICostCalculator.cjs +3 -3
  82. package/model-provider/openai/OpenAICostCalculator.js +3 -3
  83. package/model-provider/openai/OpenAITranscriptionModel.d.ts +1 -1
  84. package/model-provider/openai/TikTokenTokenizer.d.ts +2 -2
  85. package/model-provider/openai/index.cjs +1 -1
  86. package/model-provider/openai/index.d.ts +1 -1
  87. package/model-provider/openai/index.js +1 -1
  88. package/package.json +3 -1
  89. package/ui/MediaSourceAppender.cjs +54 -0
  90. package/ui/MediaSourceAppender.d.ts +11 -0
  91. package/ui/MediaSourceAppender.js +50 -0
  92. package/ui/index.cjs +17 -0
  93. package/ui/index.d.ts +1 -0
  94. package/ui/index.js +1 -0
  95. package/util/SimpleWebSocket.cjs +41 -0
  96. package/util/SimpleWebSocket.d.ts +12 -0
  97. package/util/SimpleWebSocket.js +14 -0
  98. package/model-function/describe-image/ImageDescriptionEvent.d.ts +0 -18
  99. package/model-function/describe-image/ImageDescriptionModel.d.ts +0 -10
  100. package/model-function/describe-image/describeImage.cjs +0 -26
  101. package/model-function/describe-image/describeImage.d.ts +0 -9
  102. package/model-function/describe-image/describeImage.js +0 -22
  103. package/model-function/generate-text/TextStreamingEvent.cjs +0 -2
  104. package/model-function/generate-text/TextStreamingEvent.d.ts +0 -7
  105. package/model-function/generate-text/TextStreamingEvent.js +0 -1
  106. package/model-function/synthesize-speech/SpeechSynthesisEvent.cjs +0 -2
  107. package/model-function/synthesize-speech/SpeechSynthesisEvent.d.ts +0 -21
  108. package/model-function/synthesize-speech/SpeechSynthesisEvent.js +0 -1
  109. package/model-function/synthesize-speech/SpeechSynthesisModel.cjs +0 -2
  110. package/model-function/synthesize-speech/SpeechSynthesisModel.d.ts +0 -11
  111. package/model-function/synthesize-speech/SpeechSynthesisModel.js +0 -1
  112. package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.cjs +0 -79
  113. package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.d.ts +0 -30
  114. package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.js +0 -75
  115. package/model-provider/lmnt/LmntSpeechSynthesisModel.d.ts +0 -26
  116. /package/model-function/{describe-image/ImageDescriptionEvent.cjs → generate-speech/SpeechGenerationEvent.cjs} +0 -0
  117. /package/model-function/{describe-image/ImageDescriptionEvent.js → generate-speech/SpeechGenerationEvent.js} +0 -0
  118. /package/model-function/{describe-image/ImageDescriptionModel.cjs → generate-speech/SpeechGenerationModel.cjs} +0 -0
  119. /package/model-function/{describe-image/ImageDescriptionModel.js → generate-speech/SpeechGenerationModel.js} +0 -0
  120. /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionEvent.cjs +0 -0
  121. /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionEvent.d.ts +0 -0
  122. /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionEvent.js +0 -0
  123. /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionModel.cjs +0 -0
  124. /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionModel.d.ts +0 -0
  125. /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionModel.js +0 -0
@@ -1,7 +0,0 @@
1
- import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../ModelCallEvent.js";
2
- export interface TextStreamingStartedEvent extends BaseModelCallStartedEvent {
3
- functionType: "text-streaming";
4
- }
5
- export interface TextStreamingFinishedEvent extends BaseModelCallFinishedEvent {
6
- functionType: "text-streaming";
7
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,21 +0,0 @@
1
- /// <reference types="node" />
2
- import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../ModelCallEvent.js";
3
- export interface SpeechSynthesisStartedEvent extends BaseModelCallStartedEvent {
4
- functionType: "speech-synthesis";
5
- input: string;
6
- }
7
- export type SpeechSynthesisFinishedEventResult = {
8
- status: "success";
9
- response: unknown;
10
- value: Buffer;
11
- } | {
12
- status: "error";
13
- error: unknown;
14
- } | {
15
- status: "abort";
16
- };
17
- export interface SpeechSynthesisFinishedEvent extends BaseModelCallFinishedEvent {
18
- functionType: "speech-synthesis";
19
- input: string;
20
- result: SpeechSynthesisFinishedEventResult;
21
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,11 +0,0 @@
1
- /// <reference types="node" />
2
- import { FunctionOptions } from "../../core/FunctionOptions.js";
3
- import { Model, ModelSettings } from "../Model.js";
4
- export interface SpeechSynthesisModelSettings extends ModelSettings {
5
- }
6
- export interface SpeechSynthesisModel<SETTINGS extends SpeechSynthesisModelSettings = SpeechSynthesisModelSettings> extends Model<SETTINGS> {
7
- /**
8
- * Generates an mp3 audio buffer that contains the speech for the given text.
9
- */
10
- generateSpeechResponse: (text: string, options?: FunctionOptions) => PromiseLike<Buffer>;
11
- }
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ElevenLabsSpeechSynthesisModel = void 0;
4
- const callWithRetryAndThrottle_js_1 = require("../../core/api/callWithRetryAndThrottle.cjs");
5
- const postToApi_js_1 = require("../../core/api/postToApi.cjs");
6
- const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
7
- const ElevenLabsApiConfiguration_js_1 = require("./ElevenLabsApiConfiguration.cjs");
8
- const ElevenLabsError_js_1 = require("./ElevenLabsError.cjs");
9
- /**
10
- * Synthesize speech using the ElevenLabs Text to Speech API.
11
- *
12
- * @see https://api.elevenlabs.io/docs#/text-to-speech/Text_to_speech_v1_text_to_speech__voice_id__post
13
- */
14
- class ElevenLabsSpeechSynthesisModel extends AbstractModel_js_1.AbstractModel {
15
- constructor(settings) {
16
- super({ settings });
17
- Object.defineProperty(this, "provider", {
18
- enumerable: true,
19
- configurable: true,
20
- writable: true,
21
- value: "elevenlabs"
22
- });
23
- }
24
- get modelName() {
25
- return this.settings.voice;
26
- }
27
- async callAPI(text, options) {
28
- return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
29
- retry: this.settings.api?.retry,
30
- throttle: this.settings.api?.throttle,
31
- call: async () => callElevenLabsTextToSpeechAPI({
32
- api: this.settings.api,
33
- abortSignal: options?.run?.abortSignal,
34
- text,
35
- voiceId: this.settings.voice,
36
- modelId: this.settings.model,
37
- voiceSettings: this.settings.voiceSettings,
38
- }),
39
- });
40
- }
41
- get settingsForEvent() {
42
- return {
43
- model: this.settings.model,
44
- voice: this.settings.voice,
45
- voiceSettings: this.settings.voiceSettings,
46
- };
47
- }
48
- generateSpeechResponse(text, options) {
49
- return this.callAPI(text, options);
50
- }
51
- withSettings(additionalSettings) {
52
- return new ElevenLabsSpeechSynthesisModel({
53
- ...this.settings,
54
- ...additionalSettings,
55
- });
56
- }
57
- }
58
- exports.ElevenLabsSpeechSynthesisModel = ElevenLabsSpeechSynthesisModel;
59
- async function callElevenLabsTextToSpeechAPI({ api = new ElevenLabsApiConfiguration_js_1.ElevenLabsApiConfiguration(), abortSignal, text, voiceId, modelId, voiceSettings, }) {
60
- return (0, postToApi_js_1.postJsonToApi)({
61
- url: api.assembleUrl(`/text-to-speech/${voiceId}`),
62
- headers: api.headers,
63
- body: {
64
- text,
65
- model_id: modelId,
66
- voice_settings: voiceSettings != null
67
- ? {
68
- stability: voiceSettings.stability,
69
- similarity_boost: voiceSettings.similarityBoost,
70
- style: voiceSettings.style,
71
- use_speaker_boost: voiceSettings.useSpeakerBoost,
72
- }
73
- : undefined,
74
- },
75
- failedResponseHandler: ElevenLabsError_js_1.failedElevenLabsCallResponseHandler,
76
- successfulResponseHandler: (0, postToApi_js_1.createAudioMpegResponseHandler)(),
77
- abortSignal,
78
- });
79
- }
@@ -1,30 +0,0 @@
1
- /// <reference types="node" />
2
- import { FunctionOptions } from "../../core/FunctionOptions.js";
3
- import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
4
- import { AbstractModel } from "../../model-function/AbstractModel.js";
5
- import { SpeechSynthesisModel, SpeechSynthesisModelSettings } from "../../model-function/synthesize-speech/SpeechSynthesisModel.js";
6
- export interface ElevenLabsSpeechSynthesisModelSettings extends SpeechSynthesisModelSettings {
7
- api?: ApiConfiguration;
8
- voice: string;
9
- model?: string;
10
- voiceSettings?: {
11
- stability: number;
12
- similarityBoost: number;
13
- style?: number;
14
- useSpeakerBoost?: boolean;
15
- };
16
- }
17
- /**
18
- * Synthesize speech using the ElevenLabs Text to Speech API.
19
- *
20
- * @see https://api.elevenlabs.io/docs#/text-to-speech/Text_to_speech_v1_text_to_speech__voice_id__post
21
- */
22
- export declare class ElevenLabsSpeechSynthesisModel extends AbstractModel<ElevenLabsSpeechSynthesisModelSettings> implements SpeechSynthesisModel<ElevenLabsSpeechSynthesisModelSettings> {
23
- constructor(settings: ElevenLabsSpeechSynthesisModelSettings);
24
- readonly provider = "elevenlabs";
25
- get modelName(): string;
26
- private callAPI;
27
- get settingsForEvent(): Partial<ElevenLabsSpeechSynthesisModelSettings>;
28
- generateSpeechResponse(text: string, options?: FunctionOptions): Promise<Buffer>;
29
- withSettings(additionalSettings: Partial<ElevenLabsSpeechSynthesisModelSettings>): this;
30
- }
@@ -1,75 +0,0 @@
1
- import { callWithRetryAndThrottle } from "../../core/api/callWithRetryAndThrottle.js";
2
- import { createAudioMpegResponseHandler, postJsonToApi, } from "../../core/api/postToApi.js";
3
- import { AbstractModel } from "../../model-function/AbstractModel.js";
4
- import { ElevenLabsApiConfiguration } from "./ElevenLabsApiConfiguration.js";
5
- import { failedElevenLabsCallResponseHandler } from "./ElevenLabsError.js";
6
- /**
7
- * Synthesize speech using the ElevenLabs Text to Speech API.
8
- *
9
- * @see https://api.elevenlabs.io/docs#/text-to-speech/Text_to_speech_v1_text_to_speech__voice_id__post
10
- */
11
- export class ElevenLabsSpeechSynthesisModel extends AbstractModel {
12
- constructor(settings) {
13
- super({ settings });
14
- Object.defineProperty(this, "provider", {
15
- enumerable: true,
16
- configurable: true,
17
- writable: true,
18
- value: "elevenlabs"
19
- });
20
- }
21
- get modelName() {
22
- return this.settings.voice;
23
- }
24
- async callAPI(text, options) {
25
- return callWithRetryAndThrottle({
26
- retry: this.settings.api?.retry,
27
- throttle: this.settings.api?.throttle,
28
- call: async () => callElevenLabsTextToSpeechAPI({
29
- api: this.settings.api,
30
- abortSignal: options?.run?.abortSignal,
31
- text,
32
- voiceId: this.settings.voice,
33
- modelId: this.settings.model,
34
- voiceSettings: this.settings.voiceSettings,
35
- }),
36
- });
37
- }
38
- get settingsForEvent() {
39
- return {
40
- model: this.settings.model,
41
- voice: this.settings.voice,
42
- voiceSettings: this.settings.voiceSettings,
43
- };
44
- }
45
- generateSpeechResponse(text, options) {
46
- return this.callAPI(text, options);
47
- }
48
- withSettings(additionalSettings) {
49
- return new ElevenLabsSpeechSynthesisModel({
50
- ...this.settings,
51
- ...additionalSettings,
52
- });
53
- }
54
- }
55
- async function callElevenLabsTextToSpeechAPI({ api = new ElevenLabsApiConfiguration(), abortSignal, text, voiceId, modelId, voiceSettings, }) {
56
- return postJsonToApi({
57
- url: api.assembleUrl(`/text-to-speech/${voiceId}`),
58
- headers: api.headers,
59
- body: {
60
- text,
61
- model_id: modelId,
62
- voice_settings: voiceSettings != null
63
- ? {
64
- stability: voiceSettings.stability,
65
- similarity_boost: voiceSettings.similarityBoost,
66
- style: voiceSettings.style,
67
- use_speaker_boost: voiceSettings.useSpeakerBoost,
68
- }
69
- : undefined,
70
- },
71
- failedResponseHandler: failedElevenLabsCallResponseHandler,
72
- successfulResponseHandler: createAudioMpegResponseHandler(),
73
- abortSignal,
74
- });
75
- }
@@ -1,26 +0,0 @@
1
- /// <reference types="node" />
2
- import { AbstractModel } from "../../model-function/AbstractModel.js";
3
- import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
4
- import { FunctionOptions } from "../../core/FunctionOptions.js";
5
- import { SpeechSynthesisModel, SpeechSynthesisModelSettings } from "../../model-function/synthesize-speech/SpeechSynthesisModel.js";
6
- export interface LmntSpeechSynthesisModelSettings extends SpeechSynthesisModelSettings {
7
- api?: ApiConfiguration;
8
- voice: string;
9
- speed?: number;
10
- seed?: number;
11
- length?: number;
12
- }
13
- /**
14
- * Synthesize speech using the LMNT API.
15
- *
16
- * @see https://www.lmnt.com/docs/rest/#synthesize-speech
17
- */
18
- export declare class LmntSpeechSynthesisModel extends AbstractModel<LmntSpeechSynthesisModelSettings> implements SpeechSynthesisModel<LmntSpeechSynthesisModelSettings> {
19
- constructor(settings: LmntSpeechSynthesisModelSettings);
20
- readonly provider = "lmnt";
21
- get modelName(): string;
22
- private callAPI;
23
- get settingsForEvent(): Partial<LmntSpeechSynthesisModelSettings>;
24
- generateSpeechResponse(text: string, options?: FunctionOptions): Promise<Buffer>;
25
- withSettings(additionalSettings: Partial<LmntSpeechSynthesisModelSettings>): this;
26
- }