modelfusion 0.33.1 → 0.35.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 +47 -1
- package/{model-function/generate-text → event-source}/AsyncQueue.cjs +11 -10
- package/event-source/AsyncQueue.d.ts +8 -0
- package/{model-function/generate-text → event-source}/AsyncQueue.js +11 -10
- package/event-source/EventSourceParserStream.cjs +34 -0
- package/event-source/EventSourceParserStream.d.ts +15 -0
- package/event-source/EventSourceParserStream.js +30 -0
- package/event-source/convertReadableStreamToAsyncIterable.cjs +19 -0
- package/event-source/convertReadableStreamToAsyncIterable.d.ts +1 -0
- package/event-source/convertReadableStreamToAsyncIterable.js +15 -0
- package/event-source/createEventSourceStream.cjs +15 -0
- package/event-source/createEventSourceStream.d.ts +1 -0
- package/event-source/createEventSourceStream.js +11 -0
- package/event-source/index.cjs +19 -0
- package/event-source/index.d.ts +3 -0
- package/event-source/index.js +3 -0
- package/event-source/parseEventSourceStream.cjs +12 -0
- package/event-source/parseEventSourceStream.d.ts +4 -0
- package/event-source/parseEventSourceStream.js +8 -0
- package/event-source/readEventSourceStream.cjs +33 -0
- package/event-source/readEventSourceStream.d.ts +6 -0
- package/event-source/readEventSourceStream.js +26 -0
- package/index.cjs +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/model-function/AsyncIterableResultPromise.cjs +37 -0
- package/model-function/AsyncIterableResultPromise.d.ts +16 -0
- package/model-function/AsyncIterableResultPromise.js +33 -0
- package/model-function/{generate-text/DeltaEvent.d.ts → DeltaEvent.d.ts} +1 -1
- package/model-function/ModelCallEvent.d.ts +3 -2
- package/model-function/generate-structure/StructureFromTextGenerationModel.d.ts +1 -1
- package/model-function/generate-structure/StructureGenerationModel.d.ts +10 -1
- package/model-function/generate-structure/StructureStreamingEvent.cjs +2 -0
- package/model-function/generate-structure/StructureStreamingEvent.d.ts +7 -0
- package/model-function/generate-structure/StructureStreamingEvent.js +1 -0
- package/model-function/generate-structure/fixJson.cjs +215 -0
- package/model-function/generate-structure/fixJson.d.ts +1 -0
- package/model-function/generate-structure/fixJson.js +211 -0
- package/model-function/generate-structure/fixJson.test.cjs +130 -0
- package/model-function/generate-structure/fixJson.test.d.ts +1 -0
- package/model-function/generate-structure/fixJson.test.js +128 -0
- package/model-function/generate-structure/generateStructure.cjs +3 -1
- package/model-function/generate-structure/generateStructure.d.ts +1 -1
- package/model-function/generate-structure/generateStructure.js +3 -1
- package/model-function/generate-structure/parsePartialJson.cjs +29 -0
- package/model-function/generate-structure/parsePartialJson.d.ts +1 -0
- package/model-function/generate-structure/parsePartialJson.js +22 -0
- package/model-function/generate-structure/streamStructure.cjs +167 -0
- package/model-function/generate-structure/streamStructure.d.ts +17 -0
- package/model-function/generate-structure/streamStructure.js +160 -0
- package/model-function/generate-text/TextGenerationModel.d.ts +4 -4
- package/model-function/generate-text/streamText.cjs +47 -68
- package/model-function/generate-text/streamText.d.ts +3 -18
- package/model-function/generate-text/streamText.js +46 -66
- package/model-function/index.cjs +3 -2
- package/model-function/index.d.ts +3 -2
- package/model-function/index.js +3 -2
- package/model-provider/cohere/CohereTextGenerationModel.cjs +3 -3
- package/model-provider/cohere/CohereTextGenerationModel.d.ts +3 -3
- package/model-provider/cohere/CohereTextGenerationModel.js +3 -3
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +0 -12
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.d.ts +0 -2
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +0 -12
- package/model-provider/llamacpp/LlamaCppTextGenerationModel.cjs +23 -23
- package/model-provider/llamacpp/LlamaCppTextGenerationModel.d.ts +3 -3
- package/model-provider/llamacpp/LlamaCppTextGenerationModel.js +23 -23
- package/model-provider/openai/OpenAITextGenerationModel.cjs +27 -25
- package/model-provider/openai/OpenAITextGenerationModel.d.ts +3 -3
- package/model-provider/openai/OpenAITextGenerationModel.js +27 -25
- package/model-provider/openai/chat/OpenAIChatModel.cjs +23 -2
- package/model-provider/openai/chat/OpenAIChatModel.d.ts +4 -2
- package/model-provider/openai/chat/OpenAIChatModel.js +23 -2
- package/model-provider/openai/chat/OpenAIChatStreamIterable.cjs +27 -24
- package/model-provider/openai/chat/OpenAIChatStreamIterable.d.ts +1 -1
- package/model-provider/openai/chat/OpenAIChatStreamIterable.js +27 -24
- package/package.json +9 -5
- package/prompt/PromptFormatTextGenerationModel.d.ts +1 -1
- package/tool/useTool.cjs +3 -4
- package/tool/useTool.d.ts +1 -1
- package/tool/useTool.js +3 -4
- package/model-function/generate-text/AsyncQueue.d.ts +0 -17
- package/model-function/generate-text/TextDeltaEventSource.cjs +0 -54
- package/model-function/generate-text/TextDeltaEventSource.d.ts +0 -5
- package/model-function/generate-text/TextDeltaEventSource.js +0 -46
- package/model-function/generate-text/extractTextDeltas.cjs +0 -23
- package/model-function/generate-text/extractTextDeltas.d.ts +0 -7
- package/model-function/generate-text/extractTextDeltas.js +0 -19
- package/model-function/generate-text/parseEventSourceReadableStream.cjs +0 -30
- package/model-function/generate-text/parseEventSourceReadableStream.d.ts +0 -8
- package/model-function/generate-text/parseEventSourceReadableStream.js +0 -26
- /package/model-function/{generate-text/DeltaEvent.cjs → DeltaEvent.cjs} +0 -0
- /package/model-function/{generate-text/DeltaEvent.js → DeltaEvent.js} +0 -0
@@ -1,54 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.parseTextDeltaEventSource = exports.createTextDeltaEventSource = void 0;
|
7
|
-
const secure_json_parse_1 = __importDefault(require("secure-json-parse"));
|
8
|
-
const zod_1 = require("zod");
|
9
|
-
const AsyncQueue_js_1 = require("./AsyncQueue.cjs");
|
10
|
-
const parseEventSourceReadableStream_js_1 = require("./parseEventSourceReadableStream.cjs");
|
11
|
-
const textEncoder = new TextEncoder();
|
12
|
-
const textDeltaEventDataSchema = zod_1.z.object({
|
13
|
-
textDelta: zod_1.z.string().optional(),
|
14
|
-
isFinished: zod_1.z.boolean(),
|
15
|
-
});
|
16
|
-
function enqueueData(controller, data) {
|
17
|
-
controller.enqueue(textEncoder.encode(`data: ${JSON.stringify(data)}\n\n`));
|
18
|
-
}
|
19
|
-
function createTextDeltaEventSource(textDeltas) {
|
20
|
-
return new ReadableStream({
|
21
|
-
async start(controller) {
|
22
|
-
for await (const textDelta of textDeltas) {
|
23
|
-
enqueueData(controller, { textDelta, isFinished: false });
|
24
|
-
}
|
25
|
-
enqueueData(controller, { isFinished: true });
|
26
|
-
},
|
27
|
-
});
|
28
|
-
}
|
29
|
-
exports.createTextDeltaEventSource = createTextDeltaEventSource;
|
30
|
-
function parseTextDeltaEventSource(stream, options) {
|
31
|
-
const queue = new AsyncQueue_js_1.AsyncQueue();
|
32
|
-
// run async (no await on purpose):
|
33
|
-
(0, parseEventSourceReadableStream_js_1.parseEventSourceReadableStream)({
|
34
|
-
stream,
|
35
|
-
callback: (event) => {
|
36
|
-
if (event.type !== "event") {
|
37
|
-
return;
|
38
|
-
}
|
39
|
-
try {
|
40
|
-
const data = textDeltaEventDataSchema.parse(secure_json_parse_1.default.parse(event.data));
|
41
|
-
queue.push(data.textDelta);
|
42
|
-
if (data.isFinished) {
|
43
|
-
queue.close();
|
44
|
-
}
|
45
|
-
}
|
46
|
-
catch (error) {
|
47
|
-
options?.errorHandler(error);
|
48
|
-
queue.close();
|
49
|
-
}
|
50
|
-
},
|
51
|
-
});
|
52
|
-
return queue;
|
53
|
-
}
|
54
|
-
exports.parseTextDeltaEventSource = parseTextDeltaEventSource;
|
@@ -1,5 +0,0 @@
|
|
1
|
-
import { ErrorHandler } from "../../util/ErrorHandler.js";
|
2
|
-
export declare function createTextDeltaEventSource(textDeltas: AsyncIterable<string>): ReadableStream<any>;
|
3
|
-
export declare function parseTextDeltaEventSource(stream: ReadableStream<Uint8Array>, options?: {
|
4
|
-
errorHandler: ErrorHandler;
|
5
|
-
}): AsyncIterable<string | undefined>;
|
@@ -1,46 +0,0 @@
|
|
1
|
-
import SecureJSON from "secure-json-parse";
|
2
|
-
import { z } from "zod";
|
3
|
-
import { AsyncQueue } from "./AsyncQueue.js";
|
4
|
-
import { parseEventSourceReadableStream } from "./parseEventSourceReadableStream.js";
|
5
|
-
const textEncoder = new TextEncoder();
|
6
|
-
const textDeltaEventDataSchema = z.object({
|
7
|
-
textDelta: z.string().optional(),
|
8
|
-
isFinished: z.boolean(),
|
9
|
-
});
|
10
|
-
function enqueueData(controller, data) {
|
11
|
-
controller.enqueue(textEncoder.encode(`data: ${JSON.stringify(data)}\n\n`));
|
12
|
-
}
|
13
|
-
export function createTextDeltaEventSource(textDeltas) {
|
14
|
-
return new ReadableStream({
|
15
|
-
async start(controller) {
|
16
|
-
for await (const textDelta of textDeltas) {
|
17
|
-
enqueueData(controller, { textDelta, isFinished: false });
|
18
|
-
}
|
19
|
-
enqueueData(controller, { isFinished: true });
|
20
|
-
},
|
21
|
-
});
|
22
|
-
}
|
23
|
-
export function parseTextDeltaEventSource(stream, options) {
|
24
|
-
const queue = new AsyncQueue();
|
25
|
-
// run async (no await on purpose):
|
26
|
-
parseEventSourceReadableStream({
|
27
|
-
stream,
|
28
|
-
callback: (event) => {
|
29
|
-
if (event.type !== "event") {
|
30
|
-
return;
|
31
|
-
}
|
32
|
-
try {
|
33
|
-
const data = textDeltaEventDataSchema.parse(SecureJSON.parse(event.data));
|
34
|
-
queue.push(data.textDelta);
|
35
|
-
if (data.isFinished) {
|
36
|
-
queue.close();
|
37
|
-
}
|
38
|
-
}
|
39
|
-
catch (error) {
|
40
|
-
options?.errorHandler(error);
|
41
|
-
queue.close();
|
42
|
-
}
|
43
|
-
},
|
44
|
-
});
|
45
|
-
return queue;
|
46
|
-
}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.extractTextDeltas = void 0;
|
4
|
-
async function* extractTextDeltas({ deltaIterable, extractDelta, onDone, onError, }) {
|
5
|
-
let accumulatedText = "";
|
6
|
-
let lastFullDelta;
|
7
|
-
for await (const event of deltaIterable) {
|
8
|
-
if (event?.type === "error") {
|
9
|
-
onError(event.error);
|
10
|
-
throw event.error;
|
11
|
-
}
|
12
|
-
if (event?.type === "delta") {
|
13
|
-
lastFullDelta = event.fullDelta;
|
14
|
-
const delta = extractDelta(lastFullDelta);
|
15
|
-
if (delta != null && delta.length > 0) {
|
16
|
-
accumulatedText += delta;
|
17
|
-
yield delta;
|
18
|
-
}
|
19
|
-
}
|
20
|
-
}
|
21
|
-
onDone(accumulatedText, lastFullDelta);
|
22
|
-
}
|
23
|
-
exports.extractTextDeltas = extractTextDeltas;
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import { DeltaEvent } from "./DeltaEvent.js";
|
2
|
-
export declare function extractTextDeltas<FULL_DELTA>({ deltaIterable, extractDelta, onDone, onError, }: {
|
3
|
-
deltaIterable: AsyncIterable<DeltaEvent<FULL_DELTA>>;
|
4
|
-
extractDelta: (fullDelta: FULL_DELTA) => string | undefined;
|
5
|
-
onDone: (fullText: string, lastFullDelta: FULL_DELTA | undefined) => void;
|
6
|
-
onError: (error: unknown) => void;
|
7
|
-
}): AsyncIterable<string>;
|
@@ -1,19 +0,0 @@
|
|
1
|
-
export async function* extractTextDeltas({ deltaIterable, extractDelta, onDone, onError, }) {
|
2
|
-
let accumulatedText = "";
|
3
|
-
let lastFullDelta;
|
4
|
-
for await (const event of deltaIterable) {
|
5
|
-
if (event?.type === "error") {
|
6
|
-
onError(event.error);
|
7
|
-
throw event.error;
|
8
|
-
}
|
9
|
-
if (event?.type === "delta") {
|
10
|
-
lastFullDelta = event.fullDelta;
|
11
|
-
const delta = extractDelta(lastFullDelta);
|
12
|
-
if (delta != null && delta.length > 0) {
|
13
|
-
accumulatedText += delta;
|
14
|
-
yield delta;
|
15
|
-
}
|
16
|
-
}
|
17
|
-
}
|
18
|
-
onDone(accumulatedText, lastFullDelta);
|
19
|
-
}
|
@@ -1,30 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.parseEventSourceReadableStream = void 0;
|
4
|
-
const eventsource_parser_1 = require("eventsource-parser");
|
5
|
-
async function* convertReadableStreamToAsyncIterable(reader) {
|
6
|
-
while (true) {
|
7
|
-
const result = await reader.read();
|
8
|
-
if (result.done) {
|
9
|
-
break;
|
10
|
-
}
|
11
|
-
yield result.value;
|
12
|
-
}
|
13
|
-
}
|
14
|
-
/**
|
15
|
-
* @internal
|
16
|
-
*/
|
17
|
-
async function parseEventSourceReadableStream({ stream, callback, }) {
|
18
|
-
try {
|
19
|
-
const parser = (0, eventsource_parser_1.createParser)(callback);
|
20
|
-
const decoder = new TextDecoder();
|
21
|
-
const iterable = convertReadableStreamToAsyncIterable(stream.getReader());
|
22
|
-
for await (const value of iterable) {
|
23
|
-
parser.feed(decoder.decode(value));
|
24
|
-
}
|
25
|
-
}
|
26
|
-
catch (error) {
|
27
|
-
console.error(error); // TODO introduce error handler param
|
28
|
-
}
|
29
|
-
}
|
30
|
-
exports.parseEventSourceReadableStream = parseEventSourceReadableStream;
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import { EventSourceParseCallback } from "eventsource-parser";
|
2
|
-
/**
|
3
|
-
* @internal
|
4
|
-
*/
|
5
|
-
export declare function parseEventSourceReadableStream({ stream, callback, }: {
|
6
|
-
stream: ReadableStream<Uint8Array>;
|
7
|
-
callback: EventSourceParseCallback;
|
8
|
-
}): Promise<void>;
|
@@ -1,26 +0,0 @@
|
|
1
|
-
import { createParser } from "eventsource-parser";
|
2
|
-
async function* convertReadableStreamToAsyncIterable(reader) {
|
3
|
-
while (true) {
|
4
|
-
const result = await reader.read();
|
5
|
-
if (result.done) {
|
6
|
-
break;
|
7
|
-
}
|
8
|
-
yield result.value;
|
9
|
-
}
|
10
|
-
}
|
11
|
-
/**
|
12
|
-
* @internal
|
13
|
-
*/
|
14
|
-
export async function parseEventSourceReadableStream({ stream, callback, }) {
|
15
|
-
try {
|
16
|
-
const parser = createParser(callback);
|
17
|
-
const decoder = new TextDecoder();
|
18
|
-
const iterable = convertReadableStreamToAsyncIterable(stream.getReader());
|
19
|
-
for await (const value of iterable) {
|
20
|
-
parser.feed(decoder.decode(value));
|
21
|
-
}
|
22
|
-
}
|
23
|
-
catch (error) {
|
24
|
-
console.error(error); // TODO introduce error handler param
|
25
|
-
}
|
26
|
-
}
|
File without changes
|
File without changes
|