@workglow/ai 0.0.90 → 0.0.92
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 +16 -12
- package/dist/browser.js +175 -13
- package/dist/browser.js.map +15 -12
- package/dist/bun.js +175 -13
- package/dist/bun.js.map +15 -12
- package/dist/common.d.ts +1 -0
- package/dist/common.d.ts.map +1 -1
- package/dist/job/AiJob.d.ts +6 -1
- package/dist/job/AiJob.d.ts.map +1 -1
- package/dist/node.js +175 -13
- package/dist/node.js.map +15 -12
- package/dist/provider/AiProvider.d.ts +140 -0
- package/dist/provider/AiProvider.d.ts.map +1 -0
- package/dist/provider/AiProviderRegistry.d.ts +44 -1
- package/dist/provider/AiProviderRegistry.d.ts.map +1 -1
- package/dist/queue/createDefaultQueue.d.ts +17 -0
- package/dist/queue/createDefaultQueue.d.ts.map +1 -0
- package/dist/task/TextGenerationTask.d.ts +3 -2
- package/dist/task/TextGenerationTask.d.ts.map +1 -1
- package/dist/task/TextQuestionAnswerTask.d.ts +3 -2
- package/dist/task/TextQuestionAnswerTask.d.ts.map +1 -1
- package/dist/task/TextRewriterTask.d.ts +3 -2
- package/dist/task/TextRewriterTask.d.ts.map +1 -1
- package/dist/task/TextSummaryTask.d.ts +3 -2
- package/dist/task/TextSummaryTask.d.ts.map +1 -1
- package/dist/task/TextTranslationTask.d.ts +3 -2
- package/dist/task/TextTranslationTask.d.ts.map +1 -1
- package/dist/task/VectorQuantizeTask.d.ts.map +1 -1
- package/dist/task/base/StreamingAiTask.d.ts +31 -0
- package/dist/task/base/StreamingAiTask.d.ts.map +1 -0
- package/dist/task/index.d.ts +1 -0
- package/dist/task/index.d.ts.map +1 -1
- package/package.json +11 -11
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { TaskInput, TaskOutput } from "@workglow/task-graph";
|
|
7
|
+
import { type WorkerServer } from "@workglow/util";
|
|
8
|
+
import type { ModelConfig } from "../model/ModelSchema";
|
|
9
|
+
import { type AiProviderRunFn, type AiProviderStreamFn } from "./AiProviderRegistry";
|
|
10
|
+
/**
|
|
11
|
+
* Execution mode for an AI provider.
|
|
12
|
+
* - "inline": run functions execute directly in the current thread
|
|
13
|
+
* - "worker": run functions are proxied to a Web Worker via WorkerManager
|
|
14
|
+
*/
|
|
15
|
+
export type AiProviderMode = "inline" | "worker";
|
|
16
|
+
/**
|
|
17
|
+
* Options for registering an AI provider.
|
|
18
|
+
*/
|
|
19
|
+
export interface AiProviderRegisterOptions {
|
|
20
|
+
/** Execution mode: "inline" (same thread) or "worker" (Web Worker) */
|
|
21
|
+
mode: AiProviderMode;
|
|
22
|
+
/** The Web Worker instance. Required when mode is "worker". */
|
|
23
|
+
worker?: Worker;
|
|
24
|
+
/** Job queue configuration */
|
|
25
|
+
queue?: {
|
|
26
|
+
/** Maximum number of concurrent jobs. Defaults to 1. */
|
|
27
|
+
concurrency?: number;
|
|
28
|
+
/** Set to false to skip automatic queue creation. Defaults to true. */
|
|
29
|
+
autoCreate?: boolean;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Abstract base class for AI providers.
|
|
34
|
+
*
|
|
35
|
+
* Each provider subclass declares a `taskTypes` array listing the task type
|
|
36
|
+
* names it supports. The actual run function implementations (`tasks` record)
|
|
37
|
+
* are **injected via the constructor** so that heavy ML library imports remain
|
|
38
|
+
* at the call site. This allows the provider class to be imported on the main
|
|
39
|
+
* thread without pulling in heavy dependencies when running in worker mode.
|
|
40
|
+
*
|
|
41
|
+
* The base class handles:
|
|
42
|
+
* - Registering run functions with the AiProviderRegistry (inline or worker mode)
|
|
43
|
+
* - Creating a default job queue
|
|
44
|
+
* - Registering functions on a WorkerServer (for worker-side code)
|
|
45
|
+
* - Lifecycle management (initialize / dispose)
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* // Worker mode (main thread) -- lightweight, no heavy imports:
|
|
50
|
+
* await new MyProvider().register({
|
|
51
|
+
* mode: "worker",
|
|
52
|
+
* worker: new Worker(new URL("./worker.ts", import.meta.url), { type: "module" }),
|
|
53
|
+
* });
|
|
54
|
+
*
|
|
55
|
+
* // Inline mode -- caller provides the tasks (imports heavy library):
|
|
56
|
+
* import { MY_TASKS } from "./MyJobRunFns";
|
|
57
|
+
* await new MyProvider(MY_TASKS).register({ mode: "inline" });
|
|
58
|
+
*
|
|
59
|
+
* // Worker side -- caller provides the tasks:
|
|
60
|
+
* import { MY_TASKS } from "./MyJobRunFns";
|
|
61
|
+
* new MyProvider(MY_TASKS).registerOnWorkerServer(workerServer);
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export declare abstract class AiProvider<TModelConfig extends ModelConfig = ModelConfig> {
|
|
65
|
+
/** Unique provider identifier (e.g., "HF_TRANSFORMERS_ONNX") */
|
|
66
|
+
abstract readonly name: string;
|
|
67
|
+
/**
|
|
68
|
+
* List of task type names this provider supports.
|
|
69
|
+
* This is lightweight metadata -- no heavy library imports needed.
|
|
70
|
+
*/
|
|
71
|
+
abstract readonly taskTypes: readonly string[];
|
|
72
|
+
/**
|
|
73
|
+
* Map of task type names to their run functions.
|
|
74
|
+
* Injected via constructor. Required for inline mode and worker-server
|
|
75
|
+
* registration; not needed for worker-mode registration on the main thread.
|
|
76
|
+
*/
|
|
77
|
+
protected readonly tasks?: Record<string, AiProviderRunFn<any, any, TModelConfig>>;
|
|
78
|
+
/**
|
|
79
|
+
* Map of task type names to their streaming run functions.
|
|
80
|
+
* Injected via constructor alongside `tasks`. Only needed for tasks that
|
|
81
|
+
* support streaming output (e.g., text generation, summarization).
|
|
82
|
+
*/
|
|
83
|
+
protected readonly streamTasks?: Record<string, AiProviderStreamFn<any, any, TModelConfig>>;
|
|
84
|
+
constructor(tasks?: Record<string, AiProviderRunFn<any, any, TModelConfig>>, streamTasks?: Record<string, AiProviderStreamFn<any, any, TModelConfig>>);
|
|
85
|
+
/** Get all task type names this provider supports */
|
|
86
|
+
get supportedTaskTypes(): readonly string[];
|
|
87
|
+
/**
|
|
88
|
+
* Get the run function for a specific task type.
|
|
89
|
+
* @param taskType - The task type name (e.g., "TextEmbeddingTask")
|
|
90
|
+
* @returns The run function, or undefined if the task type is not supported or tasks not provided
|
|
91
|
+
*/
|
|
92
|
+
getRunFn<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(taskType: string): AiProviderRunFn<I, O, TModelConfig> | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* Get the streaming function for a specific task type.
|
|
95
|
+
* @param taskType - The task type name (e.g., "TextGenerationTask")
|
|
96
|
+
* @returns The stream function, or undefined if streaming is not supported for this task type
|
|
97
|
+
*/
|
|
98
|
+
getStreamFn<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(taskType: string): AiProviderStreamFn<I, O, TModelConfig> | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Register this provider on the main thread.
|
|
101
|
+
*
|
|
102
|
+
* In "inline" mode, registers direct run functions with the AiProviderRegistry.
|
|
103
|
+
* Requires `tasks` to have been provided via the constructor.
|
|
104
|
+
*
|
|
105
|
+
* In "worker" mode, registers the worker with WorkerManager and creates proxy
|
|
106
|
+
* functions that delegate to the worker. Does NOT require `tasks`.
|
|
107
|
+
*
|
|
108
|
+
* Both modes create a job queue unless `queue.autoCreate` is set to false.
|
|
109
|
+
*
|
|
110
|
+
* @param options - Registration options (mode, worker, queue config)
|
|
111
|
+
*/
|
|
112
|
+
register(options?: AiProviderRegisterOptions): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Register this provider's run functions on a WorkerServer.
|
|
115
|
+
* Call this inside a Web Worker to make the provider's functions
|
|
116
|
+
* available for remote invocation from the main thread.
|
|
117
|
+
*
|
|
118
|
+
* Requires `tasks` to have been provided via the constructor.
|
|
119
|
+
*
|
|
120
|
+
* @param workerServer - The WorkerServer instance to register on
|
|
121
|
+
*/
|
|
122
|
+
registerOnWorkerServer(workerServer: WorkerServer): void;
|
|
123
|
+
/**
|
|
124
|
+
* Hook for provider-specific initialization.
|
|
125
|
+
* Called at the start of `register()`, before any functions are registered.
|
|
126
|
+
* Override in subclasses to perform setup (e.g., configuring WASM backends).
|
|
127
|
+
*/
|
|
128
|
+
protected onInitialize(_options: AiProviderRegisterOptions): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* Dispose of provider resources.
|
|
131
|
+
* Override in subclasses to clean up (e.g., clearing pipeline caches).
|
|
132
|
+
*/
|
|
133
|
+
dispose(): Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* Create and register a default job queue for this provider.
|
|
136
|
+
* Uses InMemoryQueueStorage with a ConcurrencyLimiter.
|
|
137
|
+
*/
|
|
138
|
+
protected createQueue(concurrency: number): Promise<void>;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=AiProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiProvider.d.ts","sourceRoot":"","sources":["../../src/provider/AiProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAyC,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAExB,MAAM,sBAAsB,CAAC;AAE9B;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,IAAI,EAAE,cAAc,CAAC;IACrB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE;QACN,wDAAwD;QACxD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,uEAAuE;QACvE,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,8BAAsB,UAAU,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW;IAC7E,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAE/C;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAEnF;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;gBAG1F,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,EAC/D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;IAM1E,qDAAqD;IACrD,IAAI,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAE1C;IAED;;;;OAIG;IACH,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU,EACzE,QAAQ,EAAE,MAAM,GACf,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,GAAG,SAAS;IAIlD;;;;OAIG;IACH,WAAW,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU,EAC5E,QAAQ,EAAE,MAAM,GACf,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,GAAG,SAAS;IAIrD;;;;;;;;;;;;OAYG;IACG,QAAQ,CAAC,OAAO,GAAE,yBAA8C,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CtF;;;;;;;;OAQG;IACH,sBAAsB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAiBxD;;;;OAIG;cACa,YAAY,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAEhF;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B;;;OAGG;cACa,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhE"}
|
|
@@ -3,12 +3,19 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { TaskInput, TaskOutput } from "@workglow/task-graph";
|
|
6
|
+
import { TaskInput, TaskOutput, type StreamEvent } from "@workglow/task-graph";
|
|
7
7
|
import type { ModelConfig } from "../model/ModelSchema";
|
|
8
|
+
import type { AiProvider } from "./AiProvider";
|
|
8
9
|
/**
|
|
9
10
|
* Type for the run function for the AiJob
|
|
10
11
|
*/
|
|
11
12
|
export type AiProviderRunFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Model extends ModelConfig = ModelConfig> = (input: Input, model: Model | undefined, update_progress: (progress: number, message?: string, details?: any) => void, signal: AbortSignal) => Promise<Output>;
|
|
13
|
+
/**
|
|
14
|
+
* Type for the streaming run function for the AiJob.
|
|
15
|
+
* Returns an AsyncIterable of StreamEvents instead of a Promise.
|
|
16
|
+
* No `update_progress` callback -- for streaming providers, the stream itself IS the progress signal.
|
|
17
|
+
*/
|
|
18
|
+
export type AiProviderStreamFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Model extends ModelConfig = ModelConfig> = (input: Input, model: Model | undefined, signal: AbortSignal) => AsyncIterable<StreamEvent<Output>>;
|
|
12
19
|
/**
|
|
13
20
|
* Registry that manages provider-specific task execution functions and job queues.
|
|
14
21
|
* Handles the registration, retrieval, and execution of task processing functions
|
|
@@ -16,6 +23,23 @@ export type AiProviderRunFn<Input extends TaskInput = TaskInput, Output extends
|
|
|
16
23
|
*/
|
|
17
24
|
export declare class AiProviderRegistry {
|
|
18
25
|
runFnRegistry: Map<string, Map<string, AiProviderRunFn<any, any>>>;
|
|
26
|
+
streamFnRegistry: Map<string, Map<string, AiProviderStreamFn<any, any>>>;
|
|
27
|
+
private providers;
|
|
28
|
+
/**
|
|
29
|
+
* Registers an AiProvider instance for lifecycle management and introspection.
|
|
30
|
+
* @param provider - The provider instance to register
|
|
31
|
+
*/
|
|
32
|
+
registerProvider(provider: AiProvider<any>): void;
|
|
33
|
+
/**
|
|
34
|
+
* Retrieves a registered AiProvider instance by name.
|
|
35
|
+
* @param name - The provider name (e.g., "HF_TRANSFORMERS_ONNX")
|
|
36
|
+
* @returns The provider instance, or undefined if not found
|
|
37
|
+
*/
|
|
38
|
+
getProvider(name: string): AiProvider<any> | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Returns all registered AiProvider instances.
|
|
41
|
+
*/
|
|
42
|
+
getProviders(): Map<string, AiProvider<any>>;
|
|
19
43
|
/**
|
|
20
44
|
* Registers a task execution function for a specific task type and model provider
|
|
21
45
|
* @param taskType - The type of task (e.g., 'text-generation', 'embedding')
|
|
@@ -24,6 +48,25 @@ export declare class AiProviderRegistry {
|
|
|
24
48
|
*/
|
|
25
49
|
registerRunFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput>(modelProvider: string, taskType: string, runFn: AiProviderRunFn<Input, Output>): void;
|
|
26
50
|
registerAsWorkerRunFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput>(modelProvider: string, taskType: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* Registers a streaming execution function for a specific task type and model provider.
|
|
53
|
+
* @param modelProvider - The provider of the model (e.g., 'openai', 'anthropic', etc.)
|
|
54
|
+
* @param taskType - The type of task (e.g., 'TextGenerationTask')
|
|
55
|
+
* @param streamFn - The async generator function that yields StreamEvents
|
|
56
|
+
*/
|
|
57
|
+
registerStreamFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput>(modelProvider: string, taskType: string, streamFn: AiProviderStreamFn<Input, Output>): void;
|
|
58
|
+
/**
|
|
59
|
+
* Registers a worker-proxied streaming function for a specific task type and model provider.
|
|
60
|
+
* Creates a proxy that delegates streaming to a Web Worker via WorkerManager.
|
|
61
|
+
* The proxy calls `callWorkerStreamFunction()` which sends a `stream: true` call message
|
|
62
|
+
* and yields `stream_chunk` messages from the worker as an AsyncIterable.
|
|
63
|
+
*/
|
|
64
|
+
registerAsWorkerStreamFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput>(modelProvider: string, taskType: string): void;
|
|
65
|
+
/**
|
|
66
|
+
* Retrieves the streaming execution function for a task type and model provider.
|
|
67
|
+
* Returns undefined if no streaming function is registered (fallback to non-streaming).
|
|
68
|
+
*/
|
|
69
|
+
getStreamFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput>(modelProvider: string, taskType: string): AiProviderStreamFn<Input, Output> | undefined;
|
|
27
70
|
/**
|
|
28
71
|
* Retrieves the direct execution function for a task type and model
|
|
29
72
|
* Bypasses the job queue system for immediate execution
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiProviderRegistry.d.ts","sourceRoot":"","sources":["../../src/provider/AiProviderRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"AiProviderRegistry.d.ts","sourceRoot":"","sources":["../../src/provider/AiProviderRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Create and register a default job queue for an AI provider.
|
|
8
|
+
* Uses InMemoryQueueStorage with a ConcurrencyLimiter.
|
|
9
|
+
*
|
|
10
|
+
* Extracted to a separate module to avoid circular dependencies between
|
|
11
|
+
* AiProvider, AiJob, and the storage/job-queue/task-graph packages.
|
|
12
|
+
*
|
|
13
|
+
* @param providerName - Unique provider identifier (used as queue name)
|
|
14
|
+
* @param concurrency - Maximum number of concurrent jobs
|
|
15
|
+
*/
|
|
16
|
+
export declare function createDefaultQueue(providerName: string, concurrency: number): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=createDefaultQueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createDefaultQueue.d.ts","sourceRoot":"","sources":["../../src/queue/createDefaultQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBjG"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { CreateWorkflow, JobQueueTaskConfig } from "@workglow/task-graph";
|
|
7
7
|
import { DataPortSchema, FromSchema } from "@workglow/util";
|
|
8
|
-
import {
|
|
8
|
+
import { StreamingAiTask } from "./base/StreamingAiTask";
|
|
9
9
|
export declare const TextGenerationInputSchema: {
|
|
10
10
|
readonly type: "object";
|
|
11
11
|
readonly properties: {
|
|
@@ -114,6 +114,7 @@ export declare const TextGenerationOutputSchema: {
|
|
|
114
114
|
readonly type: "string";
|
|
115
115
|
readonly title: "Text";
|
|
116
116
|
readonly description: "The generated text";
|
|
117
|
+
readonly "x-stream": "append";
|
|
117
118
|
};
|
|
118
119
|
};
|
|
119
120
|
readonly required: readonly ["text"];
|
|
@@ -121,7 +122,7 @@ export declare const TextGenerationOutputSchema: {
|
|
|
121
122
|
};
|
|
122
123
|
export type TextGenerationTaskInput = FromSchema<typeof TextGenerationInputSchema>;
|
|
123
124
|
export type TextGenerationTaskOutput = FromSchema<typeof TextGenerationOutputSchema>;
|
|
124
|
-
export declare class TextGenerationTask extends
|
|
125
|
+
export declare class TextGenerationTask extends StreamingAiTask<TextGenerationTaskInput, TextGenerationTaskOutput, JobQueueTaskConfig> {
|
|
125
126
|
static type: string;
|
|
126
127
|
static category: string;
|
|
127
128
|
static title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextGenerationTask.d.ts","sourceRoot":"","sources":["../../src/task/TextGenerationTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TextGenerationTask.d.ts","sourceRoot":"","sources":["../../src/task/TextGenerationTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAWzD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDH,CAAC;AAEpC,eAAO,MAAM,0BAA0B;;;;;;;;;;;;CAOJ,CAAC;AAEpC,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACnF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAErF,qBAAa,kBAAmB,SAAQ,eAAe,CACrD,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,CACnB;IACC,OAAc,IAAI,SAAwB;IAC1C,OAAc,QAAQ,SAAmB;IACzC,OAAc,KAAK,SAAqB;IACxC,OAAc,WAAW,SAC2D;WACtE,WAAW,IAAI,cAAc;WAG7B,YAAY,IAAI,cAAc;CAG7C;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,uBAAuB,EAAE,SAAS,kBAAkB;;EAEzF,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,QAAQ;QAChB,cAAc,EAAE,cAAc,CAC5B,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,CACnB,CAAC;KACH;CACF"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { CreateWorkflow, JobQueueTaskConfig } from "@workglow/task-graph";
|
|
7
7
|
import { DataPortSchema, FromSchema } from "@workglow/util";
|
|
8
|
-
import {
|
|
8
|
+
import { StreamingAiTask } from "./base/StreamingAiTask";
|
|
9
9
|
export declare const TextQuestionAnswerInputSchema: {
|
|
10
10
|
readonly type: "object";
|
|
11
11
|
readonly properties: {
|
|
@@ -79,6 +79,7 @@ export declare const TextQuestionAnswerOutputSchema: {
|
|
|
79
79
|
readonly type: "string";
|
|
80
80
|
readonly title: "Text";
|
|
81
81
|
readonly description: "The generated text";
|
|
82
|
+
readonly "x-stream": "append";
|
|
82
83
|
};
|
|
83
84
|
};
|
|
84
85
|
readonly required: readonly ["text"];
|
|
@@ -89,7 +90,7 @@ export type TextQuestionAnswerTaskOutput = FromSchema<typeof TextQuestionAnswerO
|
|
|
89
90
|
/**
|
|
90
91
|
* This is a special case of text generation that takes a context and a question
|
|
91
92
|
*/
|
|
92
|
-
export declare class TextQuestionAnswerTask extends
|
|
93
|
+
export declare class TextQuestionAnswerTask extends StreamingAiTask<TextQuestionAnswerTaskInput, TextQuestionAnswerTaskOutput, JobQueueTaskConfig> {
|
|
93
94
|
static type: string;
|
|
94
95
|
static category: string;
|
|
95
96
|
static title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextQuestionAnswerTask.d.ts","sourceRoot":"","sources":["../../src/task/TextQuestionAnswerTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TextQuestionAnswerTask.d.ts","sourceRoot":"","sources":["../../src/task/TextQuestionAnswerTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAuBzD,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASP,CAAC;AAEpC,eAAO,MAAM,8BAA8B;;;;;;;;;;;;CAOR,CAAC;AAEpC,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAC3F,MAAM,MAAM,4BAA4B,GAAG,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE7F;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,eAAe,CACzD,2BAA2B,EAC3B,4BAA4B,EAC5B,kBAAkB,CACnB;IACC,OAAc,IAAI,SAA4B;IAC9C,OAAc,QAAQ,SAAmB;IACzC,OAAc,KAAK,SAA0B;IAC7C,OAAc,WAAW,SAAuE;WAClF,WAAW,IAAI,cAAc;WAG7B,YAAY,IAAI,cAAc;CAG7C;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,2BAA2B,EAClC,SAAS,kBAAkB;;EAG5B,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,QAAQ;QAChB,kBAAkB,EAAE,cAAc,CAChC,2BAA2B,EAC3B,4BAA4B,EAC5B,kBAAkB,CACnB,CAAC;KACH;CACF"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { CreateWorkflow, JobQueueTaskConfig } from "@workglow/task-graph";
|
|
7
7
|
import { DataPortSchema, FromSchema } from "@workglow/util";
|
|
8
|
-
import {
|
|
8
|
+
import { StreamingAiTask } from "./base/StreamingAiTask";
|
|
9
9
|
export declare const TextRewriterInputSchema: {
|
|
10
10
|
readonly type: "object";
|
|
11
11
|
readonly properties: {
|
|
@@ -79,6 +79,7 @@ export declare const TextRewriterOutputSchema: {
|
|
|
79
79
|
readonly type: "string";
|
|
80
80
|
readonly title: "Text";
|
|
81
81
|
readonly description: "The rewritten text";
|
|
82
|
+
readonly "x-stream": "append";
|
|
82
83
|
};
|
|
83
84
|
};
|
|
84
85
|
readonly required: readonly ["text"];
|
|
@@ -89,7 +90,7 @@ export type TextRewriterTaskOutput = FromSchema<typeof TextRewriterOutputSchema>
|
|
|
89
90
|
/**
|
|
90
91
|
* This is a special case of text generation that takes a prompt and text to rewrite
|
|
91
92
|
*/
|
|
92
|
-
export declare class TextRewriterTask extends
|
|
93
|
+
export declare class TextRewriterTask extends StreamingAiTask<TextRewriterTaskInput, TextRewriterTaskOutput> {
|
|
93
94
|
static type: string;
|
|
94
95
|
static category: string;
|
|
95
96
|
static title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextRewriterTask.d.ts","sourceRoot":"","sources":["../../src/task/TextRewriterTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TextRewriterTask.d.ts","sourceRoot":"","sources":["../../src/task/TextRewriterTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBD,CAAC;AAEpC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;CAYF,CAAC;AAEpC,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC/E,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEjF;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe,CACnD,qBAAqB,EACrB,sBAAsB,CACvB;IACC,OAAc,IAAI,SAAsB;IACxC,OAAc,QAAQ,SAAmB;IACzC,OAAc,KAAK,SAAmB;IACtC,OAAc,WAAW,SAAqE;WAChF,WAAW,IAAI,cAAc;WAG7B,YAAY,IAAI,cAAc;CAG7C;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,qBAAqB,EAAE,SAAS,kBAAkB;;EAErF,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,QAAQ;QAChB,YAAY,EAAE,cAAc,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;KACjG;CACF"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { CreateWorkflow, JobQueueTaskConfig } from "@workglow/task-graph";
|
|
7
7
|
import { DataPortSchema, FromSchema } from "@workglow/util";
|
|
8
|
-
import {
|
|
8
|
+
import { StreamingAiTask } from "./base/StreamingAiTask";
|
|
9
9
|
export declare const TextSummaryInputSchema: {
|
|
10
10
|
readonly type: "object";
|
|
11
11
|
readonly properties: {
|
|
@@ -74,6 +74,7 @@ export declare const TextSummaryOutputSchema: {
|
|
|
74
74
|
readonly type: "string";
|
|
75
75
|
readonly title: "Text";
|
|
76
76
|
readonly description: "The summarized text";
|
|
77
|
+
readonly "x-stream": "append";
|
|
77
78
|
};
|
|
78
79
|
};
|
|
79
80
|
readonly required: readonly ["text"];
|
|
@@ -84,7 +85,7 @@ export type TextSummaryTaskOutput = FromSchema<typeof TextSummaryOutputSchema>;
|
|
|
84
85
|
/**
|
|
85
86
|
* This summarizes a piece of text
|
|
86
87
|
*/
|
|
87
|
-
export declare class TextSummaryTask extends
|
|
88
|
+
export declare class TextSummaryTask extends StreamingAiTask<TextSummaryTaskInput, TextSummaryTaskOutput> {
|
|
88
89
|
static type: string;
|
|
89
90
|
static category: string;
|
|
90
91
|
static title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextSummaryTask.d.ts","sourceRoot":"","sources":["../../src/task/TextSummaryTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TextSummaryTask.d.ts","sourceRoot":"","sources":["../../src/task/TextSummaryTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYA,CAAC;AAEpC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;CAYD,CAAC;AAEpC,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC7E,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE/E;;GAEG;AAEH,qBAAa,eAAgB,SAAQ,eAAe,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;IAC/F,OAAc,IAAI,SAAqB;IACvC,OAAc,QAAQ,SAAmB;IACzC,OAAc,KAAK,SAAkB;IACrC,OAAc,WAAW,SACgD;WAC3D,WAAW,IAAI,cAAc;WAG7B,YAAY,IAAI,cAAc;CAG7C;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAU,OAAO,oBAAoB,EAAE,SAAS,kBAAkB;;EAEzF,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,QAAQ;QAChB,WAAW,EAAE,cAAc,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;KAC9F;CACF"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { CreateWorkflow, JobQueueTaskConfig } from "@workglow/task-graph";
|
|
7
7
|
import { DataPortSchema, FromSchema } from "@workglow/util";
|
|
8
|
-
import {
|
|
8
|
+
import { StreamingAiTask } from "./base/StreamingAiTask";
|
|
9
9
|
export declare const TextTranslationInputSchema: {
|
|
10
10
|
readonly type: "object";
|
|
11
11
|
readonly properties: {
|
|
@@ -88,6 +88,7 @@ export declare const TextTranslationOutputSchema: {
|
|
|
88
88
|
readonly type: "string";
|
|
89
89
|
readonly title: "Text";
|
|
90
90
|
readonly description: "The translated text";
|
|
91
|
+
readonly "x-stream": "replace";
|
|
91
92
|
};
|
|
92
93
|
readonly target_lang: {
|
|
93
94
|
readonly type: "string";
|
|
@@ -105,7 +106,7 @@ export type TextTranslationTaskOutput = FromSchema<typeof TextTranslationOutputS
|
|
|
105
106
|
/**
|
|
106
107
|
* This translates text from one language to another
|
|
107
108
|
*/
|
|
108
|
-
export declare class TextTranslationTask extends
|
|
109
|
+
export declare class TextTranslationTask extends StreamingAiTask<TextTranslationTaskInput, TextTranslationTaskOutput> {
|
|
109
110
|
static type: string;
|
|
110
111
|
static category: string;
|
|
111
112
|
static title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextTranslationTask.d.ts","sourceRoot":"","sources":["../../src/task/TextTranslationTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TextTranslationTask.d.ts","sourceRoot":"","sources":["../../src/task/TextTranslationTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAWzD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBJ,CAAC;AAEpC,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;CAaL,CAAC;AAEpC,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACrF,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEvF;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,eAAe,CACtD,wBAAwB,EACxB,yBAAyB,CAC1B;IACC,OAAc,IAAI,SAAyB;IAC3C,OAAc,QAAQ,SAAmB;IACzC,OAAc,KAAK,SAAsB;IACzC,OAAc,WAAW,SAAwE;WACnF,WAAW,IAAI,cAAc;WAG7B,YAAY,IAAI,cAAc;CAG7C;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,wBAAwB,EAAE,SAAS,kBAAkB;;;EAE3F,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,QAAQ;QAChB,eAAe,EAAE,cAAc,CAC7B,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,CACnB,CAAC;KACH;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorQuantizeTask.d.ts","sourceRoot":"","sources":["../../src/task/VectorQuantizeTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,IAAI,EAAY,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EACL,cAAc,EACd,UAAU,EAGV,UAAU,EAEV,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAExB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCkB,CAAC;AAEpC,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCiB,CAAC;AAEpC,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,WAAW,EAAE,uBAAuB,CAAC,CAAC;AAC9F,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,YAAY,EAAE,uBAAuB,CAAC,CAAC;AAEhG;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,IAAI,CAC1C,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,CACnB;IACC,OAAc,IAAI,SAAwB;IAC1C,OAAc,QAAQ,
|
|
1
|
+
{"version":3,"file":"VectorQuantizeTask.d.ts","sourceRoot":"","sources":["../../src/task/VectorQuantizeTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,IAAI,EAAY,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EACL,cAAc,EACd,UAAU,EAGV,UAAU,EAEV,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAExB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCkB,CAAC;AAEpC,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCiB,CAAC;AAEpC,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,WAAW,EAAE,uBAAuB,CAAC,CAAC;AAC9F,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,YAAY,EAAE,uBAAuB,CAAC,CAAC;AAEhG;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,IAAI,CAC1C,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,CACnB;IACC,OAAc,IAAI,SAAwB;IAC1C,OAAc,QAAQ,SAAY;IAClC,OAAc,KAAK,SAAc;IACjC,OAAc,WAAW,SAAgE;IACzF,OAAc,SAAS,UAAQ;WAEjB,WAAW,IAAI,cAAc;WAI7B,YAAY,IAAI,cAAc;IAItC,eAAe,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAexF,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,cAAc;IAuCtB;;OAEG;IACH,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,gBAAgB;CAQzB;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,uBAAuB,EAAE,SAAS,kBAAkB;;;;EAEzF,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,QAAQ;QAChB,cAAc,EAAE,cAAc,CAC5B,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,CACnB,CAAC;KACH;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @description Base class for AI tasks that support streaming output.
|
|
8
|
+
* Extends AiTask with executeStream() that yields StreamEvents from the provider.
|
|
9
|
+
*/
|
|
10
|
+
import { JobQueueTaskConfig, type IExecuteContext, type StreamEvent, type TaskOutput } from "@workglow/task-graph";
|
|
11
|
+
import { AiSingleTaskInput, AiTask } from "./AiTask";
|
|
12
|
+
/**
|
|
13
|
+
* A base class for streaming AI tasks.
|
|
14
|
+
* Extends AiTask to provide streaming output via executeStream().
|
|
15
|
+
*
|
|
16
|
+
* Subclasses set `streamMode` to control streaming behavior:
|
|
17
|
+
* - 'append': each chunk is a delta (e.g., new token). Default for text generation.
|
|
18
|
+
* - 'replace': each chunk is a revised full snapshot of the output.
|
|
19
|
+
*
|
|
20
|
+
* The standard execute() method is preserved as a fallback that internally
|
|
21
|
+
* consumes the stream to completion (so non-streaming callers get the same result).
|
|
22
|
+
*/
|
|
23
|
+
export declare class StreamingAiTask<Input extends AiSingleTaskInput = AiSingleTaskInput, Output extends TaskOutput = TaskOutput, Config extends JobQueueTaskConfig = JobQueueTaskConfig> extends AiTask<Input, Output, Config> {
|
|
24
|
+
static type: string;
|
|
25
|
+
/**
|
|
26
|
+
* Streaming execution: creates an AiJob and yields StreamEvents from it.
|
|
27
|
+
* This is the primary execution path for streaming tasks.
|
|
28
|
+
*/
|
|
29
|
+
executeStream(input: Input, context: IExecuteContext): AsyncIterable<StreamEvent<Output>>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=StreamingAiTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingAiTask.d.ts","sourceRoot":"","sources":["../../../src/task/base/StreamingAiTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AAEH,OAAO,EACL,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAErD;;;;;;;;;;GAUG;AACH,qBAAa,eAAe,CAC1B,KAAK,SAAS,iBAAiB,GAAG,iBAAiB,EACnD,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,CACtD,SAAQ,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACrC,OAAc,IAAI,EAAE,MAAM,CAAqB;IAE/C;;;OAGG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,GAAG,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;CAejG"}
|
package/dist/task/index.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export declare const registerAiTasks: () => (typeof BackgroundRemovalTask | type
|
|
|
45
45
|
export * from "./BackgroundRemovalTask";
|
|
46
46
|
export * from "./base/AiTask";
|
|
47
47
|
export * from "./base/AiTaskSchemas";
|
|
48
|
+
export * from "./base/StreamingAiTask";
|
|
48
49
|
export * from "./ChunkRetrievalTask";
|
|
49
50
|
export * from "./ChunkToVectorTask";
|
|
50
51
|
export * from "./ChunkVectorHybridSearchTask";
|
package/dist/task/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workglow/ai",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.92",
|
|
5
5
|
"description": "Core AI functionality for Workglow, including task execution, model management, and AI pipeline orchestration.",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"watch": "concurrently -c 'auto' 'bun:watch-*'",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
-
"@workglow/dataset": "0.0.
|
|
40
|
-
"@workglow/job-queue": "0.0.
|
|
41
|
-
"@workglow/storage": "0.0.
|
|
42
|
-
"@workglow/task-graph": "0.0.
|
|
43
|
-
"@workglow/util": "0.0.
|
|
39
|
+
"@workglow/dataset": "0.0.92",
|
|
40
|
+
"@workglow/job-queue": "0.0.92",
|
|
41
|
+
"@workglow/storage": "0.0.92",
|
|
42
|
+
"@workglow/task-graph": "0.0.92",
|
|
43
|
+
"@workglow/util": "0.0.92"
|
|
44
44
|
},
|
|
45
45
|
"peerDependenciesMeta": {
|
|
46
46
|
"@workglow/dataset": {
|
|
@@ -60,10 +60,10 @@
|
|
|
60
60
|
}
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@workglow/dataset": "0.0.
|
|
64
|
-
"@workglow/job-queue": "0.0.
|
|
65
|
-
"@workglow/storage": "0.0.
|
|
66
|
-
"@workglow/task-graph": "0.0.
|
|
67
|
-
"@workglow/util": "0.0.
|
|
63
|
+
"@workglow/dataset": "0.0.92",
|
|
64
|
+
"@workglow/job-queue": "0.0.92",
|
|
65
|
+
"@workglow/storage": "0.0.92",
|
|
66
|
+
"@workglow/task-graph": "0.0.92",
|
|
67
|
+
"@workglow/util": "0.0.92"
|
|
68
68
|
}
|
|
69
69
|
}
|