modelfusion 0.105.0 → 0.106.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 (151) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +8 -10
  3. package/core/DefaultRun.cjs +0 -4
  4. package/core/DefaultRun.d.ts +0 -2
  5. package/core/DefaultRun.js +0 -4
  6. package/core/ExtensionFunctionEvent.d.ts +11 -0
  7. package/core/FunctionEvent.d.ts +2 -2
  8. package/extension/index.cjs +22 -3
  9. package/extension/index.d.ts +5 -1
  10. package/extension/index.js +4 -1
  11. package/index.cjs +0 -3
  12. package/index.d.ts +0 -3
  13. package/index.js +0 -3
  14. package/model-function/generate-structure/jsonStructurePrompt.cjs +42 -6
  15. package/model-function/generate-structure/jsonStructurePrompt.d.ts +12 -1
  16. package/model-function/generate-structure/jsonStructurePrompt.js +42 -5
  17. package/model-function/generate-text/PromptTemplateTextGenerationModel.d.ts +2 -1
  18. package/model-function/generate-text/PromptTemplateTextGenerationModel.js +1 -1
  19. package/model-function/generate-text/prompt-template/Llama2PromptTemplate.cjs +1 -1
  20. package/model-function/generate-text/prompt-template/Llama2PromptTemplate.d.ts +1 -1
  21. package/model-function/generate-text/prompt-template/Llama2PromptTemplate.js +1 -1
  22. package/model-function/index.cjs +0 -1
  23. package/model-function/index.d.ts +0 -1
  24. package/model-function/index.js +0 -1
  25. package/model-provider/cohere/CohereTextEmbeddingModel.d.ts +3 -3
  26. package/model-provider/cohere/CohereTextGenerationModel.d.ts +6 -6
  27. package/model-provider/llamacpp/LlamaCppTextGenerationModel.d.ts +23 -23
  28. package/model-provider/mistral/MistralTextEmbeddingModel.d.ts +13 -13
  29. package/model-provider/ollama/OllamaChatModel.d.ts +9 -8
  30. package/model-provider/ollama/OllamaChatModel.js +1 -1
  31. package/model-provider/ollama/OllamaCompletionModel.d.ts +2 -1
  32. package/model-provider/ollama/OllamaCompletionModel.js +1 -1
  33. package/model-provider/ollama/OllamaCompletionModel.test.cjs +1 -7
  34. package/model-provider/ollama/OllamaCompletionModel.test.js +1 -7
  35. package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +12 -12
  36. package/model-provider/openai/OpenAITranscriptionModel.d.ts +11 -11
  37. package/model-provider/openai/index.cjs +0 -1
  38. package/model-provider/openai/index.d.ts +0 -1
  39. package/model-provider/openai/index.js +0 -1
  40. package/model-provider/stability/StabilityImageGenerationModel.d.ts +5 -5
  41. package/package.json +9 -20
  42. package/tool/generate-tool-call/TextGenerationToolCallModel.cjs +1 -1
  43. package/tool/generate-tool-call/TextGenerationToolCallModel.d.ts +1 -1
  44. package/tool/generate-tool-call/TextGenerationToolCallModel.js +1 -1
  45. package/tool/generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.d.ts +1 -11
  46. package/tool/generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.d.ts +12 -0
  47. package/tool/generate-tool-calls-or-text/index.cjs +1 -0
  48. package/tool/generate-tool-calls-or-text/index.d.ts +1 -0
  49. package/tool/generate-tool-calls-or-text/index.js +1 -0
  50. package/util/index.cjs +0 -1
  51. package/util/index.d.ts +0 -1
  52. package/util/index.js +0 -1
  53. package/browser/MediaSourceAppender.cjs +0 -54
  54. package/browser/MediaSourceAppender.d.ts +0 -11
  55. package/browser/MediaSourceAppender.js +0 -50
  56. package/browser/convertAudioChunksToBase64.cjs +0 -8
  57. package/browser/convertAudioChunksToBase64.d.ts +0 -4
  58. package/browser/convertAudioChunksToBase64.js +0 -4
  59. package/browser/convertBlobToBase64.cjs +0 -23
  60. package/browser/convertBlobToBase64.d.ts +0 -1
  61. package/browser/convertBlobToBase64.js +0 -19
  62. package/browser/index.cjs +0 -22
  63. package/browser/index.d.ts +0 -6
  64. package/browser/index.js +0 -6
  65. package/browser/invokeFlow.cjs +0 -23
  66. package/browser/invokeFlow.d.ts +0 -8
  67. package/browser/invokeFlow.js +0 -19
  68. package/browser/readEventSource.cjs +0 -29
  69. package/browser/readEventSource.d.ts +0 -9
  70. package/browser/readEventSource.js +0 -25
  71. package/browser/readEventSourceStream.cjs +0 -35
  72. package/browser/readEventSourceStream.d.ts +0 -7
  73. package/browser/readEventSourceStream.js +0 -31
  74. package/composed-function/index.cjs +0 -19
  75. package/composed-function/index.d.ts +0 -3
  76. package/composed-function/index.js +0 -3
  77. package/composed-function/summarize/SummarizationFunction.d.ts +0 -4
  78. package/composed-function/summarize/summarizeRecursively.cjs +0 -19
  79. package/composed-function/summarize/summarizeRecursively.d.ts +0 -11
  80. package/composed-function/summarize/summarizeRecursively.js +0 -15
  81. package/composed-function/summarize/summarizeRecursivelyWithTextGenerationAndTokenSplitting.cjs +0 -25
  82. package/composed-function/summarize/summarizeRecursivelyWithTextGenerationAndTokenSplitting.d.ts +0 -24
  83. package/composed-function/summarize/summarizeRecursivelyWithTextGenerationAndTokenSplitting.js +0 -21
  84. package/cost/Cost.cjs +0 -38
  85. package/cost/Cost.d.ts +0 -16
  86. package/cost/Cost.js +0 -34
  87. package/cost/CostCalculator.d.ts +0 -8
  88. package/cost/calculateCost.cjs +0 -28
  89. package/cost/calculateCost.d.ts +0 -7
  90. package/cost/calculateCost.js +0 -24
  91. package/cost/index.cjs +0 -19
  92. package/cost/index.d.ts +0 -3
  93. package/cost/index.js +0 -3
  94. package/guard/GuardEvent.cjs +0 -2
  95. package/guard/GuardEvent.d.ts +0 -7
  96. package/guard/GuardEvent.js +0 -1
  97. package/guard/fixStructure.cjs +0 -75
  98. package/guard/fixStructure.d.ts +0 -64
  99. package/guard/fixStructure.js +0 -71
  100. package/guard/guard.cjs +0 -79
  101. package/guard/guard.d.ts +0 -29
  102. package/guard/guard.js +0 -75
  103. package/guard/index.cjs +0 -19
  104. package/guard/index.d.ts +0 -3
  105. package/guard/index.js +0 -3
  106. package/model-function/SuccessfulModelCall.cjs +0 -10
  107. package/model-function/SuccessfulModelCall.d.ts +0 -12
  108. package/model-function/SuccessfulModelCall.js +0 -6
  109. package/model-provider/openai/OpenAICostCalculator.cjs +0 -89
  110. package/model-provider/openai/OpenAICostCalculator.d.ts +0 -6
  111. package/model-provider/openai/OpenAICostCalculator.js +0 -85
  112. package/server/fastify/AssetStorage.cjs +0 -2
  113. package/server/fastify/AssetStorage.d.ts +0 -17
  114. package/server/fastify/AssetStorage.js +0 -1
  115. package/server/fastify/DefaultFlow.cjs +0 -22
  116. package/server/fastify/DefaultFlow.d.ts +0 -16
  117. package/server/fastify/DefaultFlow.js +0 -18
  118. package/server/fastify/FileSystemAssetStorage.cjs +0 -60
  119. package/server/fastify/FileSystemAssetStorage.d.ts +0 -19
  120. package/server/fastify/FileSystemAssetStorage.js +0 -56
  121. package/server/fastify/FileSystemLogger.cjs +0 -49
  122. package/server/fastify/FileSystemLogger.d.ts +0 -18
  123. package/server/fastify/FileSystemLogger.js +0 -45
  124. package/server/fastify/Flow.cjs +0 -2
  125. package/server/fastify/Flow.d.ts +0 -9
  126. package/server/fastify/Flow.js +0 -1
  127. package/server/fastify/FlowRun.cjs +0 -71
  128. package/server/fastify/FlowRun.d.ts +0 -28
  129. package/server/fastify/FlowRun.js +0 -67
  130. package/server/fastify/FlowSchema.cjs +0 -2
  131. package/server/fastify/FlowSchema.d.ts +0 -5
  132. package/server/fastify/FlowSchema.js +0 -1
  133. package/server/fastify/Logger.cjs +0 -2
  134. package/server/fastify/Logger.d.ts +0 -13
  135. package/server/fastify/Logger.js +0 -1
  136. package/server/fastify/PathProvider.cjs +0 -34
  137. package/server/fastify/PathProvider.d.ts +0 -12
  138. package/server/fastify/PathProvider.js +0 -30
  139. package/server/fastify/index.cjs +0 -24
  140. package/server/fastify/index.d.ts +0 -8
  141. package/server/fastify/index.js +0 -8
  142. package/server/fastify/modelFusionFlowPlugin.cjs +0 -103
  143. package/server/fastify/modelFusionFlowPlugin.d.ts +0 -12
  144. package/server/fastify/modelFusionFlowPlugin.js +0 -99
  145. package/util/getAudioFileExtension.cjs +0 -29
  146. package/util/getAudioFileExtension.d.ts +0 -1
  147. package/util/getAudioFileExtension.js +0 -25
  148. /package/{composed-function/summarize/SummarizationFunction.cjs → core/ExtensionFunctionEvent.cjs} +0 -0
  149. /package/{composed-function/summarize/SummarizationFunction.js → core/ExtensionFunctionEvent.js} +0 -0
  150. /package/{cost/CostCalculator.cjs → tool/generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.cjs} +0 -0
  151. /package/{cost/CostCalculator.js → tool/generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.js} +0 -0
@@ -1,18 +1,8 @@
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";
4
5
  import { ToolCallsOrTextGenerationModel, ToolCallsOrTextGenerationModelSettings } from "./ToolCallsOrTextGenerationModel.js";
5
- export interface ToolCallsOrGenerateTextPromptTemplate<SOURCE_PROMPT, TARGET_PROMPT> {
6
- createPrompt: (prompt: SOURCE_PROMPT, tools: Array<ToolDefinition<string, unknown>>) => TARGET_PROMPT;
7
- extractToolCallsAndText: (response: string) => {
8
- text: string | null;
9
- toolCalls: Array<{
10
- id: string;
11
- name: string;
12
- args: unknown;
13
- }> | null;
14
- };
15
- }
16
6
  export declare class TextGenerationToolCallsOrGenerateTextModel<SOURCE_PROMPT, TARGET_PROMPT, MODEL extends TextGenerationModel<TARGET_PROMPT, ToolCallsOrTextGenerationModelSettings>> implements ToolCallsOrTextGenerationModel<SOURCE_PROMPT, MODEL["settings"]> {
17
7
  private readonly model;
18
8
  private readonly template;
@@ -0,0 +1,12 @@
1
+ import { ToolDefinition } from "../ToolDefinition.js";
2
+ export interface ToolCallsOrGenerateTextPromptTemplate<SOURCE_PROMPT, TARGET_PROMPT> {
3
+ createPrompt: (prompt: SOURCE_PROMPT, tools: Array<ToolDefinition<string, unknown>>) => TARGET_PROMPT;
4
+ extractToolCallsAndText: (response: string) => {
5
+ text: string | null;
6
+ toolCalls: Array<{
7
+ id: string;
8
+ name: string;
9
+ args: unknown;
10
+ }> | null;
11
+ };
12
+ }
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./TextGenerationToolCallsOrGenerateTextModel.cjs"), exports);
18
+ __exportStar(require("./ToolCallsOrGenerateTextPromptTemplate.cjs"), exports);
18
19
  __exportStar(require("./ToolCallsOrTextGenerationEvent.cjs"), exports);
19
20
  __exportStar(require("./ToolCallsOrTextGenerationModel.cjs"), exports);
20
21
  __exportStar(require("./ToolCallsOrTextParseError.cjs"), exports);
@@ -1,4 +1,5 @@
1
1
  export * from "./TextGenerationToolCallsOrGenerateTextModel.js";
2
+ export * from "./ToolCallsOrGenerateTextPromptTemplate.js";
2
3
  export * from "./ToolCallsOrTextGenerationEvent.js";
3
4
  export * from "./ToolCallsOrTextGenerationModel.js";
4
5
  export * from "./ToolCallsOrTextParseError.js";
@@ -1,4 +1,5 @@
1
1
  export * from "./TextGenerationToolCallsOrGenerateTextModel.js";
2
+ export * from "./ToolCallsOrGenerateTextPromptTemplate.js";
2
3
  export * from "./ToolCallsOrTextGenerationEvent.js";
3
4
  export * from "./ToolCallsOrTextGenerationModel.js";
4
5
  export * from "./ToolCallsOrTextParseError.js";
package/util/index.cjs CHANGED
@@ -17,5 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./AsyncQueue.cjs"), exports);
18
18
  __exportStar(require("./cosineSimilarity.cjs"), exports);
19
19
  __exportStar(require("./delay.cjs"), exports);
20
- __exportStar(require("./getAudioFileExtension.cjs"), exports);
21
20
  __exportStar(require("./streaming/index.cjs"), exports);
package/util/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from "./AsyncQueue.js";
2
2
  export * from "./cosineSimilarity.js";
3
3
  export * from "./delay.js";
4
- export * from "./getAudioFileExtension.js";
5
4
  export * from "./streaming/index.js";
package/util/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from "./AsyncQueue.js";
2
2
  export * from "./cosineSimilarity.js";
3
3
  export * from "./delay.js";
4
- export * from "./getAudioFileExtension.js";
5
4
  export * from "./streaming/index.js";
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MediaSourceAppender = void 0;
4
- class MediaSourceAppender {
5
- constructor(type) {
6
- Object.defineProperty(this, "mediaSource", {
7
- enumerable: true,
8
- configurable: true,
9
- writable: true,
10
- value: new MediaSource()
11
- });
12
- Object.defineProperty(this, "audioChunks", {
13
- enumerable: true,
14
- configurable: true,
15
- writable: true,
16
- value: []
17
- });
18
- Object.defineProperty(this, "sourceBuffer", {
19
- enumerable: true,
20
- configurable: true,
21
- writable: true,
22
- value: void 0
23
- });
24
- this.mediaSource.addEventListener("sourceopen", async () => {
25
- this.sourceBuffer = this.mediaSource.addSourceBuffer(type);
26
- this.sourceBuffer.addEventListener("updateend", () => {
27
- this.tryAppendNextChunk();
28
- });
29
- });
30
- }
31
- tryAppendNextChunk() {
32
- if (this.sourceBuffer != null &&
33
- !this.sourceBuffer.updating &&
34
- this.audioChunks.length > 0) {
35
- this.sourceBuffer.appendBuffer(this.audioChunks.shift());
36
- }
37
- }
38
- addBase64Data(base64Data) {
39
- this.addData(Uint8Array.from(atob(base64Data), (char) => char.charCodeAt(0)).buffer);
40
- }
41
- addData(data) {
42
- this.audioChunks.push(data);
43
- this.tryAppendNextChunk();
44
- }
45
- close() {
46
- if (this.mediaSource.readyState === "open") {
47
- this.mediaSource.endOfStream();
48
- }
49
- }
50
- get mediaSourceUrl() {
51
- return URL.createObjectURL(this.mediaSource);
52
- }
53
- }
54
- exports.MediaSourceAppender = MediaSourceAppender;
@@ -1,11 +0,0 @@
1
- export declare class MediaSourceAppender {
2
- private readonly mediaSource;
3
- private readonly audioChunks;
4
- private sourceBuffer?;
5
- constructor(type: string);
6
- private tryAppendNextChunk;
7
- addBase64Data(base64Data: string): void;
8
- addData(data: ArrayBuffer): void;
9
- close(): void;
10
- get mediaSourceUrl(): string;
11
- }
@@ -1,50 +0,0 @@
1
- export class MediaSourceAppender {
2
- constructor(type) {
3
- Object.defineProperty(this, "mediaSource", {
4
- enumerable: true,
5
- configurable: true,
6
- writable: true,
7
- value: new MediaSource()
8
- });
9
- Object.defineProperty(this, "audioChunks", {
10
- enumerable: true,
11
- configurable: true,
12
- writable: true,
13
- value: []
14
- });
15
- Object.defineProperty(this, "sourceBuffer", {
16
- enumerable: true,
17
- configurable: true,
18
- writable: true,
19
- value: void 0
20
- });
21
- this.mediaSource.addEventListener("sourceopen", async () => {
22
- this.sourceBuffer = this.mediaSource.addSourceBuffer(type);
23
- this.sourceBuffer.addEventListener("updateend", () => {
24
- this.tryAppendNextChunk();
25
- });
26
- });
27
- }
28
- tryAppendNextChunk() {
29
- if (this.sourceBuffer != null &&
30
- !this.sourceBuffer.updating &&
31
- this.audioChunks.length > 0) {
32
- this.sourceBuffer.appendBuffer(this.audioChunks.shift());
33
- }
34
- }
35
- addBase64Data(base64Data) {
36
- this.addData(Uint8Array.from(atob(base64Data), (char) => char.charCodeAt(0)).buffer);
37
- }
38
- addData(data) {
39
- this.audioChunks.push(data);
40
- this.tryAppendNextChunk();
41
- }
42
- close() {
43
- if (this.mediaSource.readyState === "open") {
44
- this.mediaSource.endOfStream();
45
- }
46
- }
47
- get mediaSourceUrl() {
48
- return URL.createObjectURL(this.mediaSource);
49
- }
50
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertAudioChunksToBase64 = void 0;
4
- const convertBlobToBase64_js_1 = require("./convertBlobToBase64.cjs");
5
- function convertAudioChunksToBase64({ audioChunks, mimeType, }) {
6
- return (0, convertBlobToBase64_js_1.convertBlobToBase64)(new Blob(audioChunks, { type: mimeType }));
7
- }
8
- exports.convertAudioChunksToBase64 = convertAudioChunksToBase64;
@@ -1,4 +0,0 @@
1
- export declare function convertAudioChunksToBase64({ audioChunks, mimeType, }: {
2
- audioChunks: Blob[];
3
- mimeType: string;
4
- }): Promise<string>;
@@ -1,4 +0,0 @@
1
- import { convertBlobToBase64 } from "./convertBlobToBase64.js";
2
- export function convertAudioChunksToBase64({ audioChunks, mimeType, }) {
3
- return convertBlobToBase64(new Blob(audioChunks, { type: mimeType }));
4
- }
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertBlobToBase64 = void 0;
4
- async function convertBlobToBase64(blob) {
5
- return new Promise((resolve, reject) => {
6
- const reader = new FileReader();
7
- reader.onloadend = () => {
8
- if (reader.result) {
9
- const base64String = btoa(new Uint8Array(reader.result).reduce((data, byte) => data + String.fromCharCode(byte), ""));
10
- resolve(base64String);
11
- }
12
- else {
13
- reject(new Error("Failed to read blob."));
14
- }
15
- };
16
- reader.onerror = () => {
17
- reader.abort();
18
- reject(new DOMException("Problem parsing input blob."));
19
- };
20
- reader.readAsArrayBuffer(blob);
21
- });
22
- }
23
- exports.convertBlobToBase64 = convertBlobToBase64;
@@ -1 +0,0 @@
1
- export declare function convertBlobToBase64(blob: Blob): Promise<string>;
@@ -1,19 +0,0 @@
1
- export async function convertBlobToBase64(blob) {
2
- return new Promise((resolve, reject) => {
3
- const reader = new FileReader();
4
- reader.onloadend = () => {
5
- if (reader.result) {
6
- const base64String = btoa(new Uint8Array(reader.result).reduce((data, byte) => data + String.fromCharCode(byte), ""));
7
- resolve(base64String);
8
- }
9
- else {
10
- reject(new Error("Failed to read blob."));
11
- }
12
- };
13
- reader.onerror = () => {
14
- reader.abort();
15
- reject(new DOMException("Problem parsing input blob."));
16
- };
17
- reader.readAsArrayBuffer(blob);
18
- });
19
- }
package/browser/index.cjs DELETED
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./MediaSourceAppender.cjs"), exports);
18
- __exportStar(require("./convertAudioChunksToBase64.cjs"), exports);
19
- __exportStar(require("./convertBlobToBase64.cjs"), exports);
20
- __exportStar(require("./invokeFlow.cjs"), exports);
21
- __exportStar(require("./readEventSource.cjs"), exports);
22
- __exportStar(require("./readEventSourceStream.cjs"), exports);
@@ -1,6 +0,0 @@
1
- export * from "./MediaSourceAppender.js";
2
- export * from "./convertAudioChunksToBase64.js";
3
- export * from "./convertBlobToBase64.js";
4
- export * from "./invokeFlow.js";
5
- export * from "./readEventSource.js";
6
- export * from "./readEventSourceStream.js";
package/browser/index.js DELETED
@@ -1,6 +0,0 @@
1
- export * from "./MediaSourceAppender.js";
2
- export * from "./convertAudioChunksToBase64.js";
3
- export * from "./convertBlobToBase64.js";
4
- export * from "./invokeFlow.js";
5
- export * from "./readEventSource.js";
6
- export * from "./readEventSourceStream.js";
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.invokeFlow = void 0;
4
- const ZodSchema_js_1 = require("../core/schema/ZodSchema.cjs");
5
- const readEventSource_js_1 = require("./readEventSource.cjs");
6
- async function invokeFlow({ url, input, schema, onEvent, onStop, }) {
7
- const response = await fetch(url, {
8
- method: "POST",
9
- headers: { "Content-Type": "application/json" },
10
- body: JSON.stringify(input),
11
- });
12
- const eventSourceUrl = (await response.json()).url;
13
- (0, readEventSource_js_1.readEventSource)({
14
- url: eventSourceUrl,
15
- schema: new ZodSchema_js_1.ZodSchema(schema.events),
16
- isStopEvent(event) {
17
- return event.data === "[DONE]";
18
- },
19
- onEvent,
20
- onStop,
21
- });
22
- }
23
- exports.invokeFlow = invokeFlow;
@@ -1,8 +0,0 @@
1
- import { FlowSchema } from "../server/fastify/FlowSchema.js";
2
- export declare function invokeFlow<INPUT, EVENT>({ url, input, schema, onEvent, onStop, }: {
3
- url: string;
4
- input: INPUT;
5
- schema: FlowSchema<INPUT, EVENT>;
6
- onEvent: (event: EVENT, eventSource: EventSource) => void;
7
- onStop?: (eventSource: EventSource) => void;
8
- }): Promise<void>;
@@ -1,19 +0,0 @@
1
- import { ZodSchema } from "../core/schema/ZodSchema.js";
2
- import { readEventSource } from "./readEventSource.js";
3
- export async function invokeFlow({ url, input, schema, onEvent, onStop, }) {
4
- const response = await fetch(url, {
5
- method: "POST",
6
- headers: { "Content-Type": "application/json" },
7
- body: JSON.stringify(input),
8
- });
9
- const eventSourceUrl = (await response.json()).url;
10
- readEventSource({
11
- url: eventSourceUrl,
12
- schema: new ZodSchema(schema.events),
13
- isStopEvent(event) {
14
- return event.data === "[DONE]";
15
- },
16
- onEvent,
17
- onStop,
18
- });
19
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readEventSource = void 0;
4
- const parseJSON_js_1 = require("../core/schema/parseJSON.cjs");
5
- function readEventSource({ url, schema, onEvent, onError = console.error, onStop, isStopEvent, }) {
6
- const eventSource = new EventSource(url);
7
- eventSource.onmessage = (event) => {
8
- try {
9
- if (isStopEvent?.(event)) {
10
- eventSource.close();
11
- onStop?.(eventSource);
12
- return;
13
- }
14
- const parseResult = (0, parseJSON_js_1.safeParseJSON)({ text: event.data, schema });
15
- if (!parseResult.success) {
16
- onError(parseResult.error, eventSource);
17
- return;
18
- }
19
- onEvent(parseResult.data, eventSource);
20
- }
21
- catch (error) {
22
- onError(error, eventSource);
23
- }
24
- };
25
- eventSource.onerror = (e) => {
26
- onError(e, eventSource);
27
- };
28
- }
29
- exports.readEventSource = readEventSource;
@@ -1,9 +0,0 @@
1
- import { Schema } from "../core/schema/Schema.js";
2
- export declare function readEventSource<T>({ url, schema, onEvent, onError, onStop, isStopEvent, }: {
3
- url: string;
4
- schema: Schema<T>;
5
- onEvent: (event: T, eventSource: EventSource) => void;
6
- onError?: (error: unknown, eventSource: EventSource) => void;
7
- onStop?: (eventSource: EventSource) => void;
8
- isStopEvent?: (event: MessageEvent<unknown>) => boolean;
9
- }): void;
@@ -1,25 +0,0 @@
1
- import { safeParseJSON } from "../core/schema/parseJSON.js";
2
- export function readEventSource({ url, schema, onEvent, onError = console.error, onStop, isStopEvent, }) {
3
- const eventSource = new EventSource(url);
4
- eventSource.onmessage = (event) => {
5
- try {
6
- if (isStopEvent?.(event)) {
7
- eventSource.close();
8
- onStop?.(eventSource);
9
- return;
10
- }
11
- const parseResult = safeParseJSON({ text: event.data, schema });
12
- if (!parseResult.success) {
13
- onError(parseResult.error, eventSource);
14
- return;
15
- }
16
- onEvent(parseResult.data, eventSource);
17
- }
18
- catch (error) {
19
- onError(error, eventSource);
20
- }
21
- };
22
- eventSource.onerror = (e) => {
23
- onError(e, eventSource);
24
- };
25
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readEventSourceStream = void 0;
4
- const parseJSON_js_1 = require("../core/schema/parseJSON.cjs");
5
- const AsyncQueue_js_1 = require("../util/AsyncQueue.cjs");
6
- const parseEventSourceStream_js_1 = require("../util/streaming/parseEventSourceStream.cjs");
7
- function readEventSourceStream({ stream, schema, errorHandler, }) {
8
- const queue = new AsyncQueue_js_1.AsyncQueue();
9
- // run async (no await on purpose):
10
- (0, parseEventSourceStream_js_1.parseEventSourceStream)({ stream })
11
- .then(async (events) => {
12
- try {
13
- for await (const event of events) {
14
- const validationResult = (0, parseJSON_js_1.safeParseJSON)({ text: event.data, schema });
15
- if (!validationResult.success) {
16
- errorHandler?.(validationResult.error);
17
- continue;
18
- }
19
- queue.push(validationResult.data);
20
- }
21
- }
22
- catch (error) {
23
- errorHandler?.(error);
24
- }
25
- finally {
26
- queue.close();
27
- }
28
- })
29
- .catch((error) => {
30
- errorHandler?.(error);
31
- queue.close();
32
- });
33
- return queue;
34
- }
35
- exports.readEventSourceStream = readEventSourceStream;
@@ -1,7 +0,0 @@
1
- import { Schema } from "../core/schema/Schema.js";
2
- import { ErrorHandler } from "../util/ErrorHandler.js";
3
- export declare function readEventSourceStream<T>({ stream, schema, errorHandler, }: {
4
- stream: ReadableStream<Uint8Array>;
5
- schema: Schema<T>;
6
- errorHandler?: ErrorHandler;
7
- }): AsyncIterable<T>;
@@ -1,31 +0,0 @@
1
- import { safeParseJSON } from "../core/schema/parseJSON.js";
2
- import { AsyncQueue } from "../util/AsyncQueue.js";
3
- import { parseEventSourceStream } from "../util/streaming/parseEventSourceStream.js";
4
- export function readEventSourceStream({ stream, schema, errorHandler, }) {
5
- const queue = new AsyncQueue();
6
- // run async (no await on purpose):
7
- parseEventSourceStream({ stream })
8
- .then(async (events) => {
9
- try {
10
- for await (const event of events) {
11
- const validationResult = safeParseJSON({ text: event.data, schema });
12
- if (!validationResult.success) {
13
- errorHandler?.(validationResult.error);
14
- continue;
15
- }
16
- queue.push(validationResult.data);
17
- }
18
- }
19
- catch (error) {
20
- errorHandler?.(error);
21
- }
22
- finally {
23
- queue.close();
24
- }
25
- })
26
- .catch((error) => {
27
- errorHandler?.(error);
28
- queue.close();
29
- });
30
- return queue;
31
- }
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./summarize/SummarizationFunction.cjs"), exports);
18
- __exportStar(require("./summarize/summarizeRecursively.cjs"), exports);
19
- __exportStar(require("./summarize/summarizeRecursivelyWithTextGenerationAndTokenSplitting.cjs"), exports);
@@ -1,3 +0,0 @@
1
- export * from "./summarize/SummarizationFunction.js";
2
- export * from "./summarize/summarizeRecursively.js";
3
- export * from "./summarize/summarizeRecursivelyWithTextGenerationAndTokenSplitting.js";
@@ -1,3 +0,0 @@
1
- export * from "./summarize/SummarizationFunction.js";
2
- export * from "./summarize/summarizeRecursively.js";
3
- export * from "./summarize/summarizeRecursivelyWithTextGenerationAndTokenSplitting.js";
@@ -1,4 +0,0 @@
1
- import { FunctionOptions } from "../../core/FunctionOptions.js";
2
- export type SummarizationFunction = (input: {
3
- text: string;
4
- }, options?: FunctionOptions) => PromiseLike<string>;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.summarizeRecursively = void 0;
4
- async function summarizeRecursively({ summarize, split, join = (texts) => texts.join("\n\n"), text, }, options) {
5
- const chunks = await split({ text });
6
- const summarizedTexts = await Promise.all(chunks.map((chunk) => summarize({ text: chunk }, options)));
7
- if (summarizedTexts.length === 1) {
8
- return summarizedTexts[0];
9
- }
10
- // recursive mapping: will split joined results as needed to stay
11
- // within the allowed size limit of the splitter.
12
- return summarizeRecursively({
13
- text: join(summarizedTexts),
14
- summarize,
15
- split,
16
- join,
17
- }, options);
18
- }
19
- exports.summarizeRecursively = summarizeRecursively;
@@ -1,11 +0,0 @@
1
- import { Run } from "../../core/Run.js";
2
- import { SplitFunction } from "../../text-chunk/split/SplitFunction.js";
3
- import { SummarizationFunction } from "./SummarizationFunction.js";
4
- export declare function summarizeRecursively({ summarize, split, join, text, }: {
5
- summarize: SummarizationFunction;
6
- split: SplitFunction;
7
- join?: (texts: Array<string>) => string;
8
- text: string;
9
- }, options?: {
10
- run?: Run;
11
- }): Promise<string>;
@@ -1,15 +0,0 @@
1
- export async function summarizeRecursively({ summarize, split, join = (texts) => texts.join("\n\n"), text, }, options) {
2
- const chunks = await split({ text });
3
- const summarizedTexts = await Promise.all(chunks.map((chunk) => summarize({ text: chunk }, options)));
4
- if (summarizedTexts.length === 1) {
5
- return summarizedTexts[0];
6
- }
7
- // recursive mapping: will split joined results as needed to stay
8
- // within the allowed size limit of the splitter.
9
- return summarizeRecursively({
10
- text: join(summarizedTexts),
11
- summarize,
12
- split,
13
- join,
14
- }, options);
15
- }
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.summarizeRecursivelyWithTextGenerationAndTokenSplitting = void 0;
4
- const generateText_js_1 = require("../../model-function/generate-text/generateText.cjs");
5
- const splitRecursively_js_1 = require("../../text-chunk/split/splitRecursively.cjs");
6
- const summarizeRecursively_js_1 = require("./summarizeRecursively.cjs");
7
- /**
8
- * Recursively summarizes a text using a text generation model, e.g. for summarization or text extraction.
9
- * It automatically splits the text into optimal chunks that are small enough to be processed by the model,
10
- * while leaving enough space for the model to generate text.
11
- */
12
- async function summarizeRecursivelyWithTextGenerationAndTokenSplitting({ text, model, prompt, tokenLimit = model.contextWindowSize -
13
- (model.settings.maxGenerationTokens ?? model.contextWindowSize / 4), join, }, options) {
14
- const emptyPromptTokens = await model.countPromptTokens(await prompt({ text: "" }));
15
- return (0, summarizeRecursively_js_1.summarizeRecursively)({
16
- split: (0, splitRecursively_js_1.splitAtToken)({
17
- tokenizer: model.tokenizer,
18
- maxTokensPerChunk: tokenLimit - emptyPromptTokens,
19
- }),
20
- summarize: async (input) => (0, generateText_js_1.generateText)(model, await prompt(input), options),
21
- join,
22
- text,
23
- }, options);
24
- }
25
- exports.summarizeRecursivelyWithTextGenerationAndTokenSplitting = summarizeRecursivelyWithTextGenerationAndTokenSplitting;
@@ -1,24 +0,0 @@
1
- import { Run } from "../../core/Run.js";
2
- import { TextGenerationModel } from "../../model-function/generate-text/TextGenerationModel.js";
3
- import { FullTokenizer } from "../../model-function/tokenize-text/Tokenizer.js";
4
- /**
5
- * Recursively summarizes a text using a text generation model, e.g. for summarization or text extraction.
6
- * It automatically splits the text into optimal chunks that are small enough to be processed by the model,
7
- * while leaving enough space for the model to generate text.
8
- */
9
- export declare function summarizeRecursivelyWithTextGenerationAndTokenSplitting<PROMPT>({ text, model, prompt, tokenLimit, join, }: {
10
- text: string;
11
- model: TextGenerationModel<PROMPT> & {
12
- contextWindowSize: number;
13
- tokenizer: FullTokenizer;
14
- countPromptTokens: (prompt: PROMPT) => PromiseLike<number>;
15
- };
16
- prompt: (input: {
17
- text: string;
18
- }) => Promise<PROMPT>;
19
- tokenLimit?: number;
20
- join?: (texts: Array<string>) => string;
21
- }, options?: {
22
- functionId?: string;
23
- run?: Run;
24
- }): Promise<string>;