@workglow/ai 0.1.2 → 0.2.1
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 +8 -7
- package/dist/browser.js +1420 -397
- package/dist/browser.js.map +64 -58
- package/dist/bun.js +1420 -397
- package/dist/bun.js.map +64 -58
- package/dist/common.d.ts +1 -0
- package/dist/common.d.ts.map +1 -1
- package/dist/execution/DirectExecutionStrategy.d.ts +1 -1
- package/dist/execution/DirectExecutionStrategy.d.ts.map +1 -1
- package/dist/execution/QueuedExecutionStrategy.d.ts +2 -2
- package/dist/execution/QueuedExecutionStrategy.d.ts.map +1 -1
- package/dist/job/AiJob.d.ts +2 -1
- package/dist/job/AiJob.d.ts.map +1 -1
- package/dist/model/ModelRegistry.d.ts.map +1 -1
- package/dist/model/ModelRepository.d.ts +25 -15
- package/dist/model/ModelRepository.d.ts.map +1 -1
- package/dist/node.js +1420 -397
- package/dist/node.js.map +64 -58
- package/dist/provider/AiProvider.d.ts +2 -2
- package/dist/provider/AiProvider.d.ts.map +1 -1
- package/dist/provider/AiProviderRegistry.d.ts +3 -2
- package/dist/provider/AiProviderRegistry.d.ts.map +1 -1
- package/dist/provider/QueuedAiProvider.d.ts +2 -1
- package/dist/provider/QueuedAiProvider.d.ts.map +1 -1
- package/dist/task/AgentTask.d.ts +525 -0
- package/dist/task/AgentTask.d.ts.map +1 -0
- package/dist/task/AgentTypes.d.ts +183 -0
- package/dist/task/AgentTypes.d.ts.map +1 -0
- package/dist/task/AgentUtils.d.ts +55 -0
- package/dist/task/AgentUtils.d.ts.map +1 -0
- package/dist/task/BackgroundRemovalTask.d.ts +6 -4
- package/dist/task/BackgroundRemovalTask.d.ts.map +1 -1
- package/dist/task/ChunkRetrievalTask.d.ts +6 -4
- package/dist/task/ChunkRetrievalTask.d.ts.map +1 -1
- package/dist/task/ChunkToVectorTask.d.ts +6 -4
- package/dist/task/ChunkToVectorTask.d.ts.map +1 -1
- package/dist/task/ChunkVectorHybridSearchTask.d.ts +6 -4
- package/dist/task/ChunkVectorHybridSearchTask.d.ts.map +1 -1
- package/dist/task/ChunkVectorSearchTask.d.ts +6 -4
- package/dist/task/ChunkVectorSearchTask.d.ts.map +1 -1
- package/dist/task/ChunkVectorUpsertTask.d.ts +6 -4
- package/dist/task/ChunkVectorUpsertTask.d.ts.map +1 -1
- package/dist/task/ContextBuilderTask.d.ts +6 -4
- package/dist/task/ContextBuilderTask.d.ts.map +1 -1
- package/dist/task/CountTokensTask.d.ts +6 -4
- package/dist/task/CountTokensTask.d.ts.map +1 -1
- package/dist/task/DocumentEnricherTask.d.ts +6 -4
- package/dist/task/DocumentEnricherTask.d.ts.map +1 -1
- package/dist/task/DownloadModelTask.d.ts +7 -5
- package/dist/task/DownloadModelTask.d.ts.map +1 -1
- package/dist/task/FaceDetectorTask.d.ts +6 -4
- package/dist/task/FaceDetectorTask.d.ts.map +1 -1
- package/dist/task/FaceLandmarkerTask.d.ts +6 -4
- package/dist/task/FaceLandmarkerTask.d.ts.map +1 -1
- package/dist/task/GestureRecognizerTask.d.ts +6 -4
- package/dist/task/GestureRecognizerTask.d.ts.map +1 -1
- package/dist/task/HandLandmarkerTask.d.ts +6 -4
- package/dist/task/HandLandmarkerTask.d.ts.map +1 -1
- package/dist/task/HierarchicalChunkerTask.d.ts +6 -4
- package/dist/task/HierarchicalChunkerTask.d.ts.map +1 -1
- package/dist/task/HierarchyJoinTask.d.ts +6 -4
- package/dist/task/HierarchyJoinTask.d.ts.map +1 -1
- package/dist/task/ImageClassificationTask.d.ts +6 -4
- package/dist/task/ImageClassificationTask.d.ts.map +1 -1
- package/dist/task/ImageEmbeddingTask.d.ts +6 -4
- package/dist/task/ImageEmbeddingTask.d.ts.map +1 -1
- package/dist/task/ImageSegmentationTask.d.ts +6 -4
- package/dist/task/ImageSegmentationTask.d.ts.map +1 -1
- package/dist/task/ImageToTextTask.d.ts +6 -4
- package/dist/task/ImageToTextTask.d.ts.map +1 -1
- package/dist/task/MessageConversion.d.ts +52 -0
- package/dist/task/MessageConversion.d.ts.map +1 -0
- package/dist/task/ModelInfoTask.d.ts +7 -5
- package/dist/task/ModelInfoTask.d.ts.map +1 -1
- package/dist/task/ModelSearchTask.d.ts +6 -4
- package/dist/task/ModelSearchTask.d.ts.map +1 -1
- package/dist/task/ObjectDetectionTask.d.ts +6 -4
- package/dist/task/ObjectDetectionTask.d.ts.map +1 -1
- package/dist/task/PoseLandmarkerTask.d.ts +6 -4
- package/dist/task/PoseLandmarkerTask.d.ts.map +1 -1
- package/dist/task/QueryExpanderTask.d.ts +6 -4
- package/dist/task/QueryExpanderTask.d.ts.map +1 -1
- package/dist/task/RerankerTask.d.ts +6 -4
- package/dist/task/RerankerTask.d.ts.map +1 -1
- package/dist/task/StructuralParserTask.d.ts +6 -4
- package/dist/task/StructuralParserTask.d.ts.map +1 -1
- package/dist/task/StructuredGenerationTask.d.ts +6 -4
- package/dist/task/StructuredGenerationTask.d.ts.map +1 -1
- package/dist/task/TextChunkerTask.d.ts +6 -4
- package/dist/task/TextChunkerTask.d.ts.map +1 -1
- package/dist/task/TextClassificationTask.d.ts +6 -4
- package/dist/task/TextClassificationTask.d.ts.map +1 -1
- package/dist/task/TextEmbeddingTask.d.ts +6 -4
- package/dist/task/TextEmbeddingTask.d.ts.map +1 -1
- package/dist/task/TextFillMaskTask.d.ts +6 -4
- package/dist/task/TextFillMaskTask.d.ts.map +1 -1
- package/dist/task/TextGenerationTask.d.ts +6 -4
- package/dist/task/TextGenerationTask.d.ts.map +1 -1
- package/dist/task/TextLanguageDetectionTask.d.ts +6 -4
- package/dist/task/TextLanguageDetectionTask.d.ts.map +1 -1
- package/dist/task/TextNamedEntityRecognitionTask.d.ts +6 -4
- package/dist/task/TextNamedEntityRecognitionTask.d.ts.map +1 -1
- package/dist/task/TextQuestionAnswerTask.d.ts +6 -4
- package/dist/task/TextQuestionAnswerTask.d.ts.map +1 -1
- package/dist/task/TextRewriterTask.d.ts +6 -4
- package/dist/task/TextRewriterTask.d.ts.map +1 -1
- package/dist/task/TextSummaryTask.d.ts +6 -4
- package/dist/task/TextSummaryTask.d.ts.map +1 -1
- package/dist/task/TextTranslationTask.d.ts +6 -4
- package/dist/task/TextTranslationTask.d.ts.map +1 -1
- package/dist/task/ToolCallingTask.d.ts +348 -0
- package/dist/task/ToolCallingTask.d.ts.map +1 -0
- package/dist/task/ToolCallingUtils.d.ts +75 -0
- package/dist/task/ToolCallingUtils.d.ts.map +1 -0
- package/dist/task/TopicSegmenterTask.d.ts +6 -4
- package/dist/task/TopicSegmenterTask.d.ts.map +1 -1
- package/dist/task/UnloadModelTask.d.ts +6 -4
- package/dist/task/UnloadModelTask.d.ts.map +1 -1
- package/dist/task/VectorQuantizeTask.d.ts +6 -4
- package/dist/task/VectorQuantizeTask.d.ts.map +1 -1
- package/dist/task/VectorSimilarityTask.d.ts +6 -4
- package/dist/task/VectorSimilarityTask.d.ts.map +1 -1
- package/dist/task/base/AiTask.d.ts +8 -5
- package/dist/task/base/AiTask.d.ts.map +1 -1
- package/dist/task/base/AiVisionTask.d.ts +3 -7
- package/dist/task/base/AiVisionTask.d.ts.map +1 -1
- package/dist/task/base/StreamingAiTask.d.ts +4 -7
- package/dist/task/base/StreamingAiTask.d.ts.map +1 -1
- package/dist/task/index.d.ts +9 -1
- package/dist/task/index.d.ts.map +1 -1
- package/dist/worker.d.ts +2 -0
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +247 -25
- package/dist/worker.js.map +9 -7
- package/package.json +16 -11
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { CreateWorkflow } from "@workglow/task-graph";
|
|
7
|
+
import type { TaskConfig } from "@workglow/task-graph";
|
|
8
|
+
import { DataPortSchema, FromSchema } from "@workglow/util/schema";
|
|
9
|
+
import { ServiceRegistry } from "@workglow/util";
|
|
10
|
+
import { StreamingAiTask } from "./base/StreamingAiTask";
|
|
11
|
+
import type { ToolDefinition } from "./ToolCallingUtils";
|
|
12
|
+
export interface ToolDefinitionWithTaskType extends ToolDefinition {
|
|
13
|
+
/** The task type name this definition was generated from. */
|
|
14
|
+
readonly taskType: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Converts an allow-list of task type names into {@link ToolDefinitionWithTaskType} objects
|
|
18
|
+
* suitable for the ToolCallingTask input. Each entry carries the originating
|
|
19
|
+
* `taskType` so callers don't need to rely on index correspondence.
|
|
20
|
+
*
|
|
21
|
+
* Each task's `type`, `description`, `inputSchema()`, and `outputSchema()`
|
|
22
|
+
* are used to build the tool definition.
|
|
23
|
+
*
|
|
24
|
+
* @param taskNames - Array of task type names registered in the task constructors
|
|
25
|
+
* @param registry - Optional service registry for DI-based lookups
|
|
26
|
+
* @returns Array of ToolDefinitionWithTaskType objects
|
|
27
|
+
* @throws Error if a task name is not found in the registry
|
|
28
|
+
*/
|
|
29
|
+
export declare function taskTypesToTools(taskNames: ReadonlyArray<string>, registry?: ServiceRegistry): ToolDefinitionWithTaskType[];
|
|
30
|
+
export declare const ToolDefinitionSchema: {
|
|
31
|
+
readonly type: "object";
|
|
32
|
+
readonly properties: {
|
|
33
|
+
readonly name: {
|
|
34
|
+
readonly type: "string";
|
|
35
|
+
readonly title: "Name";
|
|
36
|
+
readonly description: "The tool name";
|
|
37
|
+
};
|
|
38
|
+
readonly description: {
|
|
39
|
+
readonly type: "string";
|
|
40
|
+
readonly title: "Description";
|
|
41
|
+
readonly description: "A description of what the tool does";
|
|
42
|
+
};
|
|
43
|
+
readonly inputSchema: {
|
|
44
|
+
readonly type: "object";
|
|
45
|
+
readonly title: "Input Schema";
|
|
46
|
+
readonly description: "JSON Schema describing the tool's input parameters";
|
|
47
|
+
readonly additionalProperties: true;
|
|
48
|
+
};
|
|
49
|
+
readonly outputSchema: {
|
|
50
|
+
readonly type: "object";
|
|
51
|
+
readonly title: "Output Schema";
|
|
52
|
+
readonly description: "JSON Schema describing what the tool returns";
|
|
53
|
+
readonly additionalProperties: true;
|
|
54
|
+
};
|
|
55
|
+
readonly configSchema: {
|
|
56
|
+
readonly type: "object";
|
|
57
|
+
readonly title: "Config Schema";
|
|
58
|
+
readonly description: "JSON Schema describing the task's configuration options (not sent to the LLM)";
|
|
59
|
+
readonly additionalProperties: true;
|
|
60
|
+
};
|
|
61
|
+
readonly config: {
|
|
62
|
+
readonly type: "object";
|
|
63
|
+
readonly title: "Config";
|
|
64
|
+
readonly description: "Concrete configuration values for the backing task (not sent to the LLM)";
|
|
65
|
+
readonly additionalProperties: true;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
readonly required: readonly ["name", "description", "inputSchema"];
|
|
69
|
+
readonly additionalProperties: true;
|
|
70
|
+
};
|
|
71
|
+
export declare const ToolCallingInputSchema: {
|
|
72
|
+
readonly type: "object";
|
|
73
|
+
readonly properties: {
|
|
74
|
+
readonly model: {
|
|
75
|
+
readonly oneOf: readonly [{
|
|
76
|
+
readonly title: "Model";
|
|
77
|
+
readonly description: `The model ${string}`;
|
|
78
|
+
} & {
|
|
79
|
+
readonly format: import(".").TypeModelSemantic;
|
|
80
|
+
readonly type: "string";
|
|
81
|
+
}, {
|
|
82
|
+
readonly type: "object";
|
|
83
|
+
readonly properties: {
|
|
84
|
+
readonly model_id: {
|
|
85
|
+
readonly type: "string";
|
|
86
|
+
};
|
|
87
|
+
readonly tasks: {
|
|
88
|
+
readonly type: "array";
|
|
89
|
+
readonly items: {
|
|
90
|
+
readonly type: "string";
|
|
91
|
+
};
|
|
92
|
+
readonly "x-ui-editor": "multiselect";
|
|
93
|
+
};
|
|
94
|
+
readonly title: {
|
|
95
|
+
readonly type: "string";
|
|
96
|
+
};
|
|
97
|
+
readonly description: {
|
|
98
|
+
readonly type: "string";
|
|
99
|
+
readonly "x-ui-editor": "textarea";
|
|
100
|
+
};
|
|
101
|
+
readonly provider: {
|
|
102
|
+
readonly type: "string";
|
|
103
|
+
};
|
|
104
|
+
readonly provider_config: {
|
|
105
|
+
readonly type: "object";
|
|
106
|
+
readonly properties: {
|
|
107
|
+
readonly credential_key: {
|
|
108
|
+
readonly type: "string";
|
|
109
|
+
readonly format: "credential";
|
|
110
|
+
readonly "x-ui-hidden": true;
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
readonly additionalProperties: true;
|
|
114
|
+
readonly default: {};
|
|
115
|
+
};
|
|
116
|
+
readonly metadata: {
|
|
117
|
+
readonly type: "object";
|
|
118
|
+
readonly default: {};
|
|
119
|
+
readonly "x-ui-hidden": true;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
readonly required: readonly ["provider", "provider_config"];
|
|
123
|
+
readonly format: "model";
|
|
124
|
+
readonly additionalProperties: true;
|
|
125
|
+
} & {
|
|
126
|
+
readonly format: import(".").TypeModelSemantic;
|
|
127
|
+
}];
|
|
128
|
+
} & {
|
|
129
|
+
readonly format: import(".").TypeModelSemantic;
|
|
130
|
+
};
|
|
131
|
+
readonly prompt: {
|
|
132
|
+
readonly oneOf: readonly [{
|
|
133
|
+
readonly type: "string";
|
|
134
|
+
readonly title: "Prompt";
|
|
135
|
+
readonly description: "The prompt to send to the model";
|
|
136
|
+
}, {
|
|
137
|
+
readonly type: "array";
|
|
138
|
+
readonly title: "Prompt";
|
|
139
|
+
readonly description: "The prompt as an array of strings or content blocks";
|
|
140
|
+
readonly items: {
|
|
141
|
+
readonly oneOf: readonly [{
|
|
142
|
+
readonly type: "string";
|
|
143
|
+
}, {
|
|
144
|
+
readonly type: "object";
|
|
145
|
+
readonly properties: {
|
|
146
|
+
readonly type: {
|
|
147
|
+
readonly type: "string";
|
|
148
|
+
readonly enum: readonly ["text", "image", "audio"];
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
readonly required: readonly ["type"];
|
|
152
|
+
readonly additionalProperties: true;
|
|
153
|
+
}];
|
|
154
|
+
};
|
|
155
|
+
}];
|
|
156
|
+
readonly title: "Prompt";
|
|
157
|
+
readonly description: "The prompt to send to the model";
|
|
158
|
+
};
|
|
159
|
+
readonly systemPrompt: {
|
|
160
|
+
readonly type: "string";
|
|
161
|
+
readonly title: "System Prompt";
|
|
162
|
+
readonly description: "Optional system instructions for the model";
|
|
163
|
+
};
|
|
164
|
+
readonly messages: {
|
|
165
|
+
readonly type: "array";
|
|
166
|
+
readonly title: "Messages";
|
|
167
|
+
readonly description: "Full conversation history for multi-turn interactions. When provided, used instead of prompt to construct the messages array sent to the provider.";
|
|
168
|
+
readonly items: {
|
|
169
|
+
readonly type: "object";
|
|
170
|
+
readonly properties: {
|
|
171
|
+
readonly role: {
|
|
172
|
+
readonly type: "string";
|
|
173
|
+
readonly enum: readonly ["user", "assistant", "tool"];
|
|
174
|
+
};
|
|
175
|
+
readonly content: {};
|
|
176
|
+
};
|
|
177
|
+
readonly required: readonly ["role", "content"];
|
|
178
|
+
readonly additionalProperties: true;
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
readonly tools: {
|
|
182
|
+
readonly type: "array";
|
|
183
|
+
readonly format: "tasks";
|
|
184
|
+
readonly title: "Tools";
|
|
185
|
+
readonly description: "Tool definitions available for the model to call";
|
|
186
|
+
readonly items: {
|
|
187
|
+
readonly oneOf: readonly [{
|
|
188
|
+
readonly type: "string";
|
|
189
|
+
readonly format: "tasks";
|
|
190
|
+
readonly description: "Task type name";
|
|
191
|
+
}, {
|
|
192
|
+
readonly type: "object";
|
|
193
|
+
readonly properties: {
|
|
194
|
+
readonly name: {
|
|
195
|
+
readonly type: "string";
|
|
196
|
+
readonly title: "Name";
|
|
197
|
+
readonly description: "The tool name";
|
|
198
|
+
};
|
|
199
|
+
readonly description: {
|
|
200
|
+
readonly type: "string";
|
|
201
|
+
readonly title: "Description";
|
|
202
|
+
readonly description: "A description of what the tool does";
|
|
203
|
+
};
|
|
204
|
+
readonly inputSchema: {
|
|
205
|
+
readonly type: "object";
|
|
206
|
+
readonly title: "Input Schema";
|
|
207
|
+
readonly description: "JSON Schema describing the tool's input parameters";
|
|
208
|
+
readonly additionalProperties: true;
|
|
209
|
+
};
|
|
210
|
+
readonly outputSchema: {
|
|
211
|
+
readonly type: "object";
|
|
212
|
+
readonly title: "Output Schema";
|
|
213
|
+
readonly description: "JSON Schema describing what the tool returns";
|
|
214
|
+
readonly additionalProperties: true;
|
|
215
|
+
};
|
|
216
|
+
readonly configSchema: {
|
|
217
|
+
readonly type: "object";
|
|
218
|
+
readonly title: "Config Schema";
|
|
219
|
+
readonly description: "JSON Schema describing the task's configuration options (not sent to the LLM)";
|
|
220
|
+
readonly additionalProperties: true;
|
|
221
|
+
};
|
|
222
|
+
readonly config: {
|
|
223
|
+
readonly type: "object";
|
|
224
|
+
readonly title: "Config";
|
|
225
|
+
readonly description: "Concrete configuration values for the backing task (not sent to the LLM)";
|
|
226
|
+
readonly additionalProperties: true;
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
readonly required: readonly ["name", "description", "inputSchema"];
|
|
230
|
+
readonly additionalProperties: true;
|
|
231
|
+
}];
|
|
232
|
+
};
|
|
233
|
+
};
|
|
234
|
+
readonly toolChoice: {
|
|
235
|
+
readonly type: "string";
|
|
236
|
+
readonly title: "Tool Choice";
|
|
237
|
+
readonly description: 'Controls tool selection: "auto" (model decides), "none" (no tools), "required" (must call a tool), or a specific tool name';
|
|
238
|
+
readonly "x-ui-group": "Configuration";
|
|
239
|
+
};
|
|
240
|
+
readonly maxTokens: {
|
|
241
|
+
readonly type: "number";
|
|
242
|
+
readonly title: "Max Tokens";
|
|
243
|
+
readonly description: "The maximum number of tokens to generate";
|
|
244
|
+
readonly minimum: 1;
|
|
245
|
+
readonly "x-ui-group": "Configuration";
|
|
246
|
+
};
|
|
247
|
+
readonly temperature: {
|
|
248
|
+
readonly type: "number";
|
|
249
|
+
readonly title: "Temperature";
|
|
250
|
+
readonly description: "The temperature to use for sampling";
|
|
251
|
+
readonly minimum: 0;
|
|
252
|
+
readonly maximum: 2;
|
|
253
|
+
readonly "x-ui-group": "Configuration";
|
|
254
|
+
};
|
|
255
|
+
};
|
|
256
|
+
readonly required: readonly ["model", "prompt", "tools"];
|
|
257
|
+
readonly additionalProperties: false;
|
|
258
|
+
};
|
|
259
|
+
export declare const ToolCallingOutputSchema: {
|
|
260
|
+
readonly type: "object";
|
|
261
|
+
readonly properties: {
|
|
262
|
+
readonly text: {
|
|
263
|
+
readonly type: "string";
|
|
264
|
+
readonly title: "Text";
|
|
265
|
+
readonly description: "Any text content generated by the model";
|
|
266
|
+
readonly "x-stream": "append";
|
|
267
|
+
};
|
|
268
|
+
readonly toolCalls: {
|
|
269
|
+
readonly type: "array";
|
|
270
|
+
readonly items: {
|
|
271
|
+
readonly type: "object";
|
|
272
|
+
readonly properties: {
|
|
273
|
+
readonly id: {
|
|
274
|
+
readonly type: "string";
|
|
275
|
+
readonly title: "ID";
|
|
276
|
+
readonly description: "Unique identifier for this tool call";
|
|
277
|
+
};
|
|
278
|
+
readonly name: {
|
|
279
|
+
readonly type: "string";
|
|
280
|
+
readonly title: "Name";
|
|
281
|
+
readonly description: "The name of the tool to invoke";
|
|
282
|
+
};
|
|
283
|
+
readonly input: {
|
|
284
|
+
readonly type: "object";
|
|
285
|
+
readonly title: "Input";
|
|
286
|
+
readonly description: "The input arguments for the tool call";
|
|
287
|
+
readonly additionalProperties: true;
|
|
288
|
+
};
|
|
289
|
+
};
|
|
290
|
+
readonly required: readonly ["id", "name", "input"];
|
|
291
|
+
readonly additionalProperties: false;
|
|
292
|
+
};
|
|
293
|
+
readonly title: "Tool Calls";
|
|
294
|
+
readonly description: "Tool calls requested by the model";
|
|
295
|
+
readonly "x-stream": "object";
|
|
296
|
+
};
|
|
297
|
+
};
|
|
298
|
+
readonly required: readonly ["text", "toolCalls"];
|
|
299
|
+
readonly additionalProperties: false;
|
|
300
|
+
};
|
|
301
|
+
/**
|
|
302
|
+
* Runtime input type for ToolCallingTask.
|
|
303
|
+
*
|
|
304
|
+
* The schema uses `oneOf: [string, object]` so the UI can accept both task-name
|
|
305
|
+
* references and inline tool definitions, but the input resolver converts all
|
|
306
|
+
* strings to {@link ToolDefinition} objects before execution. The `tools` field
|
|
307
|
+
* is therefore narrowed to `ToolDefinition[]` here.
|
|
308
|
+
*
|
|
309
|
+
* Extends the schema-derived base with the
|
|
310
|
+
* `messages` field typed explicitly (the loose `content: {}` in the
|
|
311
|
+
* schema prevents `FromSchema` from producing a useful type).
|
|
312
|
+
*/
|
|
313
|
+
export type ToolCallingTaskInput = Omit<FromSchema<typeof ToolCallingInputSchema>, "tools"> & {
|
|
314
|
+
readonly tools: ToolDefinition[];
|
|
315
|
+
readonly messages?: ReadonlyArray<{
|
|
316
|
+
readonly role: "user" | "assistant" | "tool";
|
|
317
|
+
readonly content: unknown;
|
|
318
|
+
}>;
|
|
319
|
+
};
|
|
320
|
+
export type ToolCallingTaskOutput = FromSchema<typeof ToolCallingOutputSchema>;
|
|
321
|
+
export type ToolCallingTaskConfig = TaskConfig<ToolCallingTaskInput>;
|
|
322
|
+
export declare class ToolCallingTask extends StreamingAiTask<ToolCallingTaskInput, ToolCallingTaskOutput, ToolCallingTaskConfig> {
|
|
323
|
+
static type: string;
|
|
324
|
+
static category: string;
|
|
325
|
+
static title: string;
|
|
326
|
+
static description: string;
|
|
327
|
+
static inputSchema(): DataPortSchema;
|
|
328
|
+
static outputSchema(): DataPortSchema;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Convenience function to run a tool calling task.
|
|
332
|
+
*/
|
|
333
|
+
export declare const toolCalling: (input: ToolCallingTaskInput, config?: ToolCallingTaskConfig) => Promise<{
|
|
334
|
+
text: string;
|
|
335
|
+
toolCalls: {
|
|
336
|
+
id: string;
|
|
337
|
+
input: {
|
|
338
|
+
[x: string]: unknown;
|
|
339
|
+
};
|
|
340
|
+
name: string;
|
|
341
|
+
}[];
|
|
342
|
+
}>;
|
|
343
|
+
declare module "@workglow/task-graph" {
|
|
344
|
+
interface Workflow {
|
|
345
|
+
toolCalling: CreateWorkflow<ToolCallingTaskInput, ToolCallingTaskOutput, ToolCallingTaskConfig>;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
//# sourceMappingURL=ToolCallingTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolCallingTask.d.ts","sourceRoot":"","sources":["../../src/task/ToolCallingTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAiC,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,MAAM,WAAW,0BAA2B,SAAQ,cAAc;IAChE,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAChC,QAAQ,CAAC,EAAE,eAAe,GACzB,0BAA0B,EAAE,CAsB9B;AAMD,eAAO,MAAM,oBAAoB;aAC/B,IAAI,EAAE,QAAQ;aACd,UAAU;iBACR,IAAI;qBACF,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,MAAM;qBACb,WAAW,EAAE,eAAe;;iBAE9B,WAAW;qBACT,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,aAAa;qBACpB,WAAW,EAAE,qCAAqC;;iBAEpD,WAAW;qBACT,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,cAAc;qBACrB,WAAW,EAAE,oDAAoD;qBACjE,oBAAoB;;iBAEtB,YAAY;qBACV,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,eAAe;qBACtB,WAAW,EAAE,8CAA8C;qBAC3D,oBAAoB;;iBAEtB,YAAY;qBACV,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,eAAe;qBACtB,WAAW,EAAE,+EAA+E;qBAC5F,oBAAoB;;iBAEtB,MAAM;qBACJ,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,QAAQ;qBACf,WAAW,EAAE,0EAA0E;qBACvF,oBAAoB;;;aAGxB,QAAQ,YAAG,MAAM,EAAE,aAAa,EAAE,aAAa;aAC/C,oBAAoB;CACZ,CAAC;AA4BX,eAAO,MAAM,sBAAsB;mBAC3B,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAKA,QAAQ;gCAAS,QAAQ;sCAAe,iCAAiC;;+BAEzE,OAAO;gCACN,QAAQ;sCACF,qDAAqD;;;uCAGtD,QAAQ;;uCAER,QAAQ;;qCAEZ,IAAI;yCAAI,IAAI,EAAE,QAAQ;yCAAE,IAAI;;;;;;;;4BASjC,QAAQ;kCACF,iCAAiC;;;qBAG9C,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,eAAe;qBACtB,WAAW,EAAE,4CAA4C;;;qBAGzD,IAAI,EAAE,OAAO;qBACb,KAAK,EAAE,UAAU;qBACjB,WAAW,EACT,oJAAoJ;qBACtJ,KAAK;yBACH,IAAI,EAAE,QAAQ;yBACd,UAAU;6BACR,IAAI;iCAAI,IAAI,EAAE,QAAQ;iCAAE,IAAI;;6BAC5B,OAAO;;yBAET,QAAQ;yBACR,oBAAoB;;;;2BAIhB,OAAO;6BACL,OAAO;4BACR,OAAO;kCACD,kDAAkD;;;mCAGnD,QAAQ;qCAAU,OAAO;0CAAe,gBAAgB;;mCA3HlE,QAAQ;;iCAEZ,IAAI;qCACF,IAAI,EAAE,QAAQ;qCACd,KAAK,EAAE,MAAM;qCACb,WAAW,EAAE,eAAe;;iCAE9B,WAAW;qCACT,IAAI,EAAE,QAAQ;qCACd,KAAK,EAAE,aAAa;qCACpB,WAAW,EAAE,qCAAqC;;iCAEpD,WAAW;qCACT,IAAI,EAAE,QAAQ;qCACd,KAAK,EAAE,cAAc;qCACrB,WAAW,EAAE,oDAAoD;qCACjE,oBAAoB;;iCAEtB,YAAY;qCACV,IAAI,EAAE,QAAQ;qCACd,KAAK,EAAE,eAAe;qCACtB,WAAW,EAAE,8CAA8C;qCAC3D,oBAAoB;;iCAEtB,YAAY;qCACV,IAAI,EAAE,QAAQ;qCACd,KAAK,EAAE,eAAe;qCACtB,WAAW,EAAE,+EAA+E;qCAC5F,oBAAoB;;iCAEtB,MAAM;qCACJ,IAAI,EAAE,QAAQ;qCACd,KAAK,EAAE,QAAQ;qCACf,WAAW,EAAE,0EAA0E;qCACvF,oBAAoB;;;iDAGb,MAAM,EAAE,aAAa,EAAE,aAAa;;;;;;qBA4F3C,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,aAAa;qBACpB,WAAW,EACT,4HAA4H;qBAC9H,YAAY,EAAE,eAAe;;;qBAG7B,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,YAAY;qBACnB,WAAW,EAAE,0CAA0C;qBACvD,OAAO,EAAE,CAAC;qBACV,YAAY,EAAE,eAAe;;;qBAG7B,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,aAAa;qBACpB,WAAW,EAAE,qCAAqC;qBAClD,OAAO,EAAE,CAAC;qBACV,OAAO,EAAE,CAAC;qBACV,YAAY,EAAE,eAAe;;;;;CAKA,CAAC;AAEpC,eAAO,MAAM,uBAAuB;mBAC5B,QAAQ;;iBAEZ,IAAI;qBACF,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,MAAM;qBACb,WAAW,EAAE,yCAAyC;qBACtD,UAAU,EAAE,QAAQ;;iBAEtB,SAAS;qBACP,IAAI,EAAE,OAAO;qBACb,KAAK;+BA5HH,QAAQ;;6BAEZ,EAAE;iCACA,IAAI,EAAE,QAAQ;iCACd,KAAK,EAAE,IAAI;iCACX,WAAW,EAAE,sCAAsC;;6BAErD,IAAI;iCACF,IAAI,EAAE,QAAQ;iCACd,KAAK,EAAE,MAAM;iCACb,WAAW,EAAE,gCAAgC;;6BAE/C,KAAK;iCACH,IAAI,EAAE,QAAQ;iCACd,KAAK,EAAE,OAAO;iCACd,WAAW,EAAE,uCAAuC;iCACpD,oBAAoB;;;6CAGb,IAAI,EAAE,MAAM,EAAE,OAAO;;;qBA0G5B,KAAK,EAAE,YAAY;qBACnB,WAAW,EAAE,mCAAmC;qBAChD,UAAU,EAAE,QAAQ;;;;;CAKS,CAAC;AAEpC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,EAAE,OAAO,CAAC,GAAG;IAC5F,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;QAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;QAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;KAC3B,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC/E,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAMrE,qBAAa,eAAgB,SAAQ,eAAe,CAClD,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,CACtB;IACC,OAAuB,IAAI,SAAqB;IAChD,OAAuB,QAAQ,SAAmB;IAClD,OAAuB,KAAK,SAAkB;IAC9C,OAAuB,WAAW,SACyF;IAC3H,OAAuB,WAAW,IAAI,cAAc,CAEnD;IACD,OAAuB,YAAY,IAAI,cAAc,CAEpD;CACF;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,UAAW,oBAAoB,WAAW,qBAAqB;;;;;;;;;EAEtF,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC,CAAC;IACrC,UAAU,QAAQ;QAChB,WAAW,EAAE,cAAc,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;KACjG;CACF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { JsonSchema } from "@workglow/util/worker";
|
|
7
|
+
/**
|
|
8
|
+
* A tool definition that can be passed to an LLM for tool calling.
|
|
9
|
+
* Can be created manually or generated from TaskRegistry entries via `taskTypesToTools` in ToolCallingTask.
|
|
10
|
+
*
|
|
11
|
+
* The `name` is used both as the tool name presented to the LLM and as a
|
|
12
|
+
* lookup key for the backing Task in the TaskRegistry. When a tool is
|
|
13
|
+
* backed by a configurable task (e.g. `McpToolCallTask`, `JavaScriptTask`),
|
|
14
|
+
* `configSchema` describes what configuration the task accepts and `config`
|
|
15
|
+
* provides the concrete values. The LLM never sees `configSchema` or
|
|
16
|
+
* `config` — they are setup-time concerns used when instantiating the task.
|
|
17
|
+
*/
|
|
18
|
+
export interface ToolDefinition {
|
|
19
|
+
name: string;
|
|
20
|
+
description: string;
|
|
21
|
+
inputSchema: JsonSchema;
|
|
22
|
+
outputSchema?: JsonSchema;
|
|
23
|
+
/**
|
|
24
|
+
* Optional discriminator for tool resolution. When specified, skips
|
|
25
|
+
* duck-typing heuristics:
|
|
26
|
+
* - `"function"` — uses the `execute` function directly
|
|
27
|
+
* - `"task"` — looks up the task by `name` in the TaskRegistry
|
|
28
|
+
*
|
|
29
|
+
* When omitted, resolution falls back to the existing heuristic
|
|
30
|
+
* (check `execute`, then registry lookup, then stub).
|
|
31
|
+
*/
|
|
32
|
+
type?: "function" | "task";
|
|
33
|
+
/** JSON Schema describing the task's configuration options. */
|
|
34
|
+
configSchema?: JsonSchema;
|
|
35
|
+
/** Concrete configuration values matching {@link configSchema}. */
|
|
36
|
+
config?: Record<string, unknown>;
|
|
37
|
+
/**
|
|
38
|
+
* Optional custom executor function. When provided, the tool is executed
|
|
39
|
+
* by calling this function directly instead of instantiating a Task.
|
|
40
|
+
*/
|
|
41
|
+
execute?: (input: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A tool call returned by the LLM, requesting invocation of a specific tool.
|
|
45
|
+
*/
|
|
46
|
+
export interface ToolCall {
|
|
47
|
+
id: string;
|
|
48
|
+
name: string;
|
|
49
|
+
input: Record<string, unknown>;
|
|
50
|
+
}
|
|
51
|
+
export type ToolCalls = Array<ToolCall>;
|
|
52
|
+
/**
|
|
53
|
+
* Controls which tools the model may call.
|
|
54
|
+
* - `"auto"` — model decides whether to call tools
|
|
55
|
+
* - `"none"` — model must not call any tools
|
|
56
|
+
* - `"required"` — model must call at least one tool
|
|
57
|
+
* - any other string — model must call the tool with that name
|
|
58
|
+
*/
|
|
59
|
+
export type ToolChoiceOption = "auto" | "none" | "required" | (string & {});
|
|
60
|
+
/**
|
|
61
|
+
* Builds a tool description string for provider APIs, appending the output
|
|
62
|
+
* schema when present. Shared across all provider implementations.
|
|
63
|
+
*/
|
|
64
|
+
export declare function buildToolDescription(tool: ToolDefinition): string;
|
|
65
|
+
/**
|
|
66
|
+
* Validates that a tool call name returned by the LLM matches one of the
|
|
67
|
+
* allowed tool definitions. Returns true if valid, false otherwise.
|
|
68
|
+
*/
|
|
69
|
+
export declare function isAllowedToolName(name: string, allowedTools: ReadonlyArray<ToolDefinition>): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Filters an array of tool calls, removing any whose name does not appear
|
|
72
|
+
* in the provided tools list. Returns the filtered array.
|
|
73
|
+
*/
|
|
74
|
+
export declare function filterValidToolCalls(toolCalls: ToolCalls, allowedTools: ReadonlyArray<ToolDefinition>): ToolCalls;
|
|
75
|
+
//# sourceMappingURL=ToolCallingUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolCallingUtils.d.ts","sourceRoot":"","sources":["../../src/task/ToolCallingUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAChF;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5E;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAMjE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,GAC1C,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,GAC1C,SAAS,CAWX"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { CreateWorkflow, IExecuteContext,
|
|
6
|
+
import { CreateWorkflow, IExecuteContext, Task } from "@workglow/task-graph";
|
|
7
|
+
import type { TaskConfig } from "@workglow/task-graph";
|
|
7
8
|
import { DataPortSchema, FromSchema } from "@workglow/util/schema";
|
|
8
9
|
export declare const SegmentationMethod: {
|
|
9
10
|
readonly HEURISTIC: "heuristic";
|
|
@@ -87,11 +88,12 @@ declare const outputSchema: {
|
|
|
87
88
|
};
|
|
88
89
|
export type TopicSegmenterTaskInput = FromSchema<typeof inputSchema>;
|
|
89
90
|
export type TopicSegmenterTaskOutput = FromSchema<typeof outputSchema>;
|
|
91
|
+
export type TopicSegmenterTaskConfig = TaskConfig<TopicSegmenterTaskInput>;
|
|
90
92
|
/**
|
|
91
93
|
* Task for segmenting text into topic-based sections
|
|
92
94
|
* Uses hybrid approach: heuristics + optional embedding similarity
|
|
93
95
|
*/
|
|
94
|
-
export declare class TopicSegmenterTask extends Task<TopicSegmenterTaskInput, TopicSegmenterTaskOutput,
|
|
96
|
+
export declare class TopicSegmenterTask extends Task<TopicSegmenterTaskInput, TopicSegmenterTaskOutput, TopicSegmenterTaskConfig> {
|
|
95
97
|
static type: string;
|
|
96
98
|
static category: string;
|
|
97
99
|
static title: string;
|
|
@@ -131,7 +133,7 @@ export declare class TopicSegmenterTask extends Task<TopicSegmenterTaskInput, To
|
|
|
131
133
|
*/
|
|
132
134
|
private mergeSmallSegments;
|
|
133
135
|
}
|
|
134
|
-
export declare const topicSegmenter: (input: TopicSegmenterTaskInput, config?:
|
|
136
|
+
export declare const topicSegmenter: (input: TopicSegmenterTaskInput, config?: TopicSegmenterTaskConfig) => Promise<{
|
|
135
137
|
count: number;
|
|
136
138
|
segments: {
|
|
137
139
|
endOffset: number;
|
|
@@ -141,7 +143,7 @@ export declare const topicSegmenter: (input: TopicSegmenterTaskInput, config?: T
|
|
|
141
143
|
}>;
|
|
142
144
|
declare module "@workglow/task-graph" {
|
|
143
145
|
interface Workflow {
|
|
144
|
-
topicSegmenter: CreateWorkflow<TopicSegmenterTaskInput, TopicSegmenterTaskOutput,
|
|
146
|
+
topicSegmenter: CreateWorkflow<TopicSegmenterTaskInput, TopicSegmenterTaskOutput, TopicSegmenterTaskConfig>;
|
|
145
147
|
}
|
|
146
148
|
}
|
|
147
149
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopicSegmenterTask.d.ts","sourceRoot":"","sources":["../../src/task/TopicSegmenterTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"TopicSegmenterTask.d.ts","sourceRoot":"","sources":["../../src/task/TopicSegmenterTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAY,MAAM,sBAAsB,CAAC;AAEvF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnE,eAAO,MAAM,kBAAkB;aAC7B,SAAS,EAAE,WAAW;aACtB,oBAAoB,EAAE,sBAAsB;aAC5C,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE9F,QAAA,MAAM,WAAW;mBACT,QAAQ;;iBAEZ,IAAI;qBACF,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,MAAM;qBACb,WAAW,EAAE,iCAAiC;;iBAEhD,MAAM;qBACJ,IAAI,EAAE,QAAQ;qBACd,IAAI;qBACJ,KAAK,EAAE,qBAAqB;qBAC5B,WAAW,EAAE,sCAAsC;qBACnD,OAAO;;iBAET,cAAc;qBACZ,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,kBAAkB;qBACzB,WAAW,EAAE,oCAAoC;qBACjD,OAAO,EAAE,EAAE;qBACX,OAAO,EAAE,GAAG;;iBAEd,cAAc;qBACZ,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,kBAAkB;qBACzB,WAAW,EAAE,oCAAoC;qBACjD,OAAO,EAAE,GAAG;qBACZ,OAAO,EAAE,IAAI;;iBAEf,mBAAmB;qBACjB,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,sBAAsB;qBAC7B,WAAW,EAAE,+DAA+D;qBAC5E,OAAO,EAAE,CAAC;qBACV,OAAO,EAAE,CAAC;qBACV,OAAO,EAAE,GAAG;;;;;CAKiB,CAAC;AAEpC,QAAA,MAAM,YAAY;mBACV,QAAQ;;iBAEZ,QAAQ;qBACN,IAAI,EAAE,OAAO;qBACb,KAAK;yBACH,IAAI,EAAE,QAAQ;yBACd,UAAU;6BACR,IAAI;iCAAI,IAAI,EAAE,QAAQ;;6BACtB,WAAW;iCAAI,IAAI,EAAE,QAAQ;;6BAC7B,SAAS;iCAAI,IAAI,EAAE,QAAQ;;;yBAE7B,QAAQ;yBACR,oBAAoB;;qBAEtB,KAAK,EAAE,UAAU;qBACjB,WAAW,EAAE,yBAAyB;;iBAExC,KAAK;qBACH,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,OAAO;qBACd,WAAW,EAAE,6BAA6B;;;;;CAKb,CAAC;AAEpC,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AACrE,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACvE,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;AAE3E;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,IAAI,CAC1C,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,CACzB;IACC,OAAuB,IAAI,SAAwB;IACnD,OAAuB,QAAQ,SAAc;IAC7C,OAAuB,KAAK,SAAqB;IACjD,OAAuB,WAAW,SAC+B;IACjE,OAAuB,SAAS,UAAQ;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAO;IAEnD,OAAuB,WAAW,IAAI,cAAc,CAEnD;IAED,OAAuB,YAAY,IAAI,cAAc,CAEpD;IAEc,OAAO,CACpB,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,wBAAwB,CAAC,CAmCnC;IAED;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuD7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0D7B;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,yBAAyB;IAkBjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAyC3B;AAED,eAAO,MAAM,cAAc,UAClB,uBAAuB,WACrB,wBAAwB;;;;;;;EAGlC,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC,CAAC;IACrC,UAAU,QAAQ;QAChB,cAAc,EAAE,cAAc,CAC5B,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,CACzB,CAAC;KACH;CACF"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { CreateWorkflow
|
|
6
|
+
import { CreateWorkflow } from "@workglow/task-graph";
|
|
7
|
+
import type { TaskConfig } from "@workglow/task-graph";
|
|
7
8
|
import { DataPortSchema, FromSchema } from "@workglow/util/schema";
|
|
8
9
|
import { AiTask } from "./base/AiTask";
|
|
9
10
|
declare const UnloadModelInputSchema: {
|
|
@@ -136,13 +137,14 @@ declare const UnloadModelOutputSchema: {
|
|
|
136
137
|
};
|
|
137
138
|
export type UnloadModelTaskRunInput = FromSchema<typeof UnloadModelInputSchema>;
|
|
138
139
|
export type UnloadModelTaskRunOutput = FromSchema<typeof UnloadModelOutputSchema>;
|
|
140
|
+
export type UnloadModelTaskConfig = TaskConfig<UnloadModelTaskRunInput>;
|
|
139
141
|
/**
|
|
140
142
|
* Unload a model from memory and clear its cache.
|
|
141
143
|
*
|
|
142
144
|
* @remarks
|
|
143
145
|
* This task has a side effect of removing the model from memory and deleting cached files
|
|
144
146
|
*/
|
|
145
|
-
export declare class UnloadModelTask extends AiTask<UnloadModelTaskRunInput, UnloadModelTaskRunOutput,
|
|
147
|
+
export declare class UnloadModelTask extends AiTask<UnloadModelTaskRunInput, UnloadModelTaskRunOutput, UnloadModelTaskConfig> {
|
|
146
148
|
static type: string;
|
|
147
149
|
static category: string;
|
|
148
150
|
static title: string;
|
|
@@ -157,7 +159,7 @@ export declare class UnloadModelTask extends AiTask<UnloadModelTaskRunInput, Unl
|
|
|
157
159
|
* @param input - Input containing model(s) to unload
|
|
158
160
|
* @returns Promise resolving to the unloaded model(s)
|
|
159
161
|
*/
|
|
160
|
-
export declare const unloadModel: (input: UnloadModelTaskRunInput, config?:
|
|
162
|
+
export declare const unloadModel: (input: UnloadModelTaskRunInput, config?: UnloadModelTaskConfig) => Promise<{
|
|
161
163
|
model: string | {
|
|
162
164
|
[x: string]: unknown;
|
|
163
165
|
description?: string | undefined;
|
|
@@ -176,7 +178,7 @@ export declare const unloadModel: (input: UnloadModelTaskRunInput, config?: Task
|
|
|
176
178
|
}>;
|
|
177
179
|
declare module "@workglow/task-graph" {
|
|
178
180
|
interface Workflow {
|
|
179
|
-
unloadModel: CreateWorkflow<UnloadModelTaskRunInput, UnloadModelTaskRunOutput,
|
|
181
|
+
unloadModel: CreateWorkflow<UnloadModelTaskRunInput, UnloadModelTaskRunOutput, UnloadModelTaskConfig>;
|
|
180
182
|
}
|
|
181
183
|
}
|
|
182
184
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnloadModelTask.d.ts","sourceRoot":"","sources":["../../src/task/UnloadModelTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"UnloadModelTask.d.ts","sourceRoot":"","sources":["../../src/task/UnloadModelTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAY,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAKvC,QAAA,MAAM,sBAAsB;mBACpB,QAAQ;;iBAEZ,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI0B,CAAC;AAEpC,QAAA,MAAM,uBAAuB;mBACrB,QAAQ;;iBAEZ,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI0B,CAAC;AAEpC,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAChF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAClF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;AAExE;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,MAAM,CACzC,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,CACtB;IACC,OAAuB,IAAI,SAAqB;IAChD,OAAuB,QAAQ,SAAc;IAC7C,OAAuB,KAAK,SAAkB;IAC9C,OAAuB,WAAW,SAC8B;IAChE,OAAuB,WAAW,IAAI,cAAc,CAEnD;IACD,OAAuB,YAAY,IAAI,cAAc,CAEpD;IACD,OAAuB,SAAS,UAAS;CAC1C;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,UAAW,uBAAuB,WAAW,qBAAqB;;;;;;;;;;;;;;;;EAEzF,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC,CAAC;IACrC,UAAU,QAAQ;QAChB,WAAW,EAAE,cAAc,CACzB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,CACtB,CAAC;KACH;CACF"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { CreateWorkflow,
|
|
6
|
+
import { CreateWorkflow, Task } from "@workglow/task-graph";
|
|
7
|
+
import type { TaskConfig } from "@workglow/task-graph";
|
|
7
8
|
import { DataPortSchema, FromSchema, TypedArray, TypedArraySchemaOptions } from "@workglow/util/schema";
|
|
8
9
|
declare const inputSchema: {
|
|
9
10
|
readonly type: "object";
|
|
@@ -82,11 +83,12 @@ declare const outputSchema: {
|
|
|
82
83
|
};
|
|
83
84
|
export type VectorQuantizeTaskInput = FromSchema<typeof inputSchema, TypedArraySchemaOptions>;
|
|
84
85
|
export type VectorQuantizeTaskOutput = FromSchema<typeof outputSchema, TypedArraySchemaOptions>;
|
|
86
|
+
export type VectorQuantizeTaskConfig = TaskConfig<VectorQuantizeTaskInput>;
|
|
85
87
|
/**
|
|
86
88
|
* Task for quantizing vectors to reduce storage and improve performance.
|
|
87
89
|
* Supports various quantization types including binary, int8, uint8, int16, uint16.
|
|
88
90
|
*/
|
|
89
|
-
export declare class VectorQuantizeTask extends Task<VectorQuantizeTaskInput, VectorQuantizeTaskOutput,
|
|
91
|
+
export declare class VectorQuantizeTask extends Task<VectorQuantizeTaskInput, VectorQuantizeTaskOutput, VectorQuantizeTaskConfig> {
|
|
90
92
|
static type: string;
|
|
91
93
|
static category: string;
|
|
92
94
|
static title: string;
|
|
@@ -106,14 +108,14 @@ export declare class VectorQuantizeTask extends Task<VectorQuantizeTaskInput, Ve
|
|
|
106
108
|
private quantizeToInt16;
|
|
107
109
|
private quantizeToUint16;
|
|
108
110
|
}
|
|
109
|
-
export declare const vectorQuantize: (input: VectorQuantizeTaskInput, config?:
|
|
111
|
+
export declare const vectorQuantize: (input: VectorQuantizeTaskInput, config?: VectorQuantizeTaskConfig) => Promise<{
|
|
110
112
|
originalType: "float16" | "float32" | "float64" | "int16" | "int8" | "uint16" | "uint8";
|
|
111
113
|
targetType: "float16" | "float32" | "float64" | "int16" | "int8" | "uint16" | "uint8";
|
|
112
114
|
vector: TypedArray[] | TypedArray;
|
|
113
115
|
}>;
|
|
114
116
|
declare module "@workglow/task-graph" {
|
|
115
117
|
interface Workflow {
|
|
116
|
-
vectorQuantize: CreateWorkflow<VectorQuantizeTaskInput, VectorQuantizeTaskOutput,
|
|
118
|
+
vectorQuantize: CreateWorkflow<VectorQuantizeTaskInput, VectorQuantizeTaskOutput, VectorQuantizeTaskConfig>;
|
|
117
119
|
}
|
|
118
120
|
}
|
|
119
121
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorQuantizeTask.d.ts","sourceRoot":"","sources":["../../src/task/VectorQuantizeTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"VectorQuantizeTask.d.ts","sourceRoot":"","sources":["../../src/task/VectorQuantizeTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,IAAI,EAAY,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,UAAU,EAGV,UAAU,EAEV,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,QAAA,MAAM,WAAW;mBACT,QAAQ;;;;;;;;;+BASA,OAAO;;;;;;;;4BAOV,iBAAiB;kCACX,wCAAwC;;;qBAGrD,IAAI,EAAE,QAAQ;qBACd,IAAI;qBACJ,KAAK,EAAE,aAAa;qBACpB,WAAW,EAAE,0BAA0B;qBACvC,OAAO;;;qBAGP,IAAI,EAAE,SAAS;qBACf,KAAK,EAAE,WAAW;qBAClB,WAAW,EAAE,sCAAsC;qBACnD,OAAO;;;;;CAKsB,CAAC;AAEpC,QAAA,MAAM,YAAY;mBACV,QAAQ;;;;;;;;;+BASA,OAAO;;;;;;;;4BAOV,kBAAkB;kCACZ,sCAAsC;;;qBAGnD,IAAI,EAAE,QAAQ;qBACd,IAAI;qBACJ,KAAK,EAAE,eAAe;qBACtB,WAAW,EAAE,sBAAsB;;;qBAGnC,IAAI,EAAE,QAAQ;qBACd,IAAI;qBACJ,KAAK,EAAE,aAAa;qBACpB,WAAW,EAAE,0BAA0B;;;;;CAKV,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;AAChG,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;AAE3E;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,IAAI,CAC1C,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,CACzB;IACC,OAAuB,IAAI,SAAwB;IACnD,OAAuB,QAAQ,SAAY;IAC3C,OAAuB,KAAK,SAAc;IAC1C,OAAuB,WAAW,SAAgE;IAClG,OAAuB,SAAS,UAAQ;IAExC,OAAuB,WAAW,IAAI,cAAc,CAEnD;IAED,OAAuB,YAAY,IAAI,cAAc,CAEpD;IAEc,eAAe,CAC5B,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAanC;IAED,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,UAClB,uBAAuB,WACrB,wBAAwB;;;;EAGlC,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC,CAAC;IACrC,UAAU,QAAQ;QAChB,cAAc,EAAE,cAAc,CAC5B,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,CACzB,CAAC;KACH;CACF"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { CreateWorkflow, GraphAsTask
|
|
6
|
+
import { CreateWorkflow, GraphAsTask } from "@workglow/task-graph";
|
|
7
|
+
import type { TaskConfig } from "@workglow/task-graph";
|
|
7
8
|
import { DataPortSchema, FromSchema, TypedArraySchemaOptions } from "@workglow/util/schema";
|
|
8
9
|
export declare const SimilarityFn: {
|
|
9
10
|
readonly COSINE: "cosine";
|
|
@@ -73,7 +74,8 @@ declare const SimilarityOutputSchema: {
|
|
|
73
74
|
};
|
|
74
75
|
export type VectorSimilarityTaskInput = FromSchema<typeof SimilarityInputSchema, TypedArraySchemaOptions>;
|
|
75
76
|
export type VectorSimilarityTaskOutput = FromSchema<typeof SimilarityOutputSchema, TypedArraySchemaOptions>;
|
|
76
|
-
export
|
|
77
|
+
export type VectorSimilarityTaskConfig = TaskConfig<VectorSimilarityTaskInput>;
|
|
78
|
+
export declare class VectorSimilarityTask extends GraphAsTask<VectorSimilarityTaskInput, VectorSimilarityTaskOutput, VectorSimilarityTaskConfig> {
|
|
77
79
|
static readonly type = "VectorSimilarityTask";
|
|
78
80
|
static readonly category = "Vector";
|
|
79
81
|
static readonly title = "Vector Similarity";
|
|
@@ -86,13 +88,13 @@ export declare class VectorSimilarityTask extends GraphAsTask<VectorSimilarityTa
|
|
|
86
88
|
score: number[];
|
|
87
89
|
}>;
|
|
88
90
|
}
|
|
89
|
-
export declare const similarity: (input: VectorSimilarityTaskInput, config?:
|
|
91
|
+
export declare const similarity: (input: VectorSimilarityTaskInput, config?: VectorSimilarityTaskConfig) => Promise<{
|
|
90
92
|
output: import("@workglow/util/schema").TypedArray[];
|
|
91
93
|
score: number[];
|
|
92
94
|
}>;
|
|
93
95
|
declare module "@workglow/task-graph" {
|
|
94
96
|
interface Workflow {
|
|
95
|
-
similarity: CreateWorkflow<VectorSimilarityTaskInput, VectorSimilarityTaskOutput,
|
|
97
|
+
similarity: CreateWorkflow<VectorSimilarityTaskInput, VectorSimilarityTaskOutput, VectorSimilarityTaskConfig>;
|
|
96
98
|
}
|
|
97
99
|
}
|
|
98
100
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorSimilarityTask.d.ts","sourceRoot":"","sources":["../../src/task/VectorSimilarityTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"VectorSimilarityTask.d.ts","sourceRoot":"","sources":["../../src/task/VectorSimilarityTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAY,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAEL,cAAc,EACd,UAAU,EAIV,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,YAAY;aACvB,MAAM,EAAE,QAAQ;aAChB,OAAO,EAAE,SAAS;aAClB,OAAO,EAAE,SAAS;CACV,CAAC;AAQX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE5E,QAAA,MAAM,qBAAqB;mBACnB,QAAQ;;iBAEZ,KAAK;;;;;;iBAIL,OAAO;qBACL,IAAI,EAAE,OAAO;qBACb,KAAK;;;;;;;iBAKP,IAAI;qBACF,IAAI,EAAE,QAAQ;qBACd,KAAK,EAAE,OAAO;qBACd,WAAW,EAAE,iCAAiC;qBAC9C,OAAO,EAAE,CAAC;qBACV,OAAO,EAAE,EAAE;;iBAEb,MAAM;qBACJ,IAAI,EAAE,QAAQ;qBACd,IAAI;qBACJ,KAAK,EAAE,yBAAe;qBACtB,WAAW,EAAE,4CAA4C;qBACzD,OAAO;;;;;CAKsB,CAAC;AAEpC,QAAA,MAAM,sBAAsB;mBACpB,QAAQ;;iBAEZ,MAAM;qBACJ,IAAI,EAAE,OAAO;qBACb,KAAK;;;;;;;iBAKP,KAAK;qBACH,IAAI,EAAE,OAAO;qBACb,KAAK;yBACH,IAAI,EAAE,QAAQ;yBACd,KAAK,EAAE,OAAO;yBACd,WAAW,EAAE,0CAA0C;;;;;;CAM5B,CAAC;AAEpC,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAChD,OAAO,qBAAqB,EAC5B,uBAAuB,CACxB,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,UAAU,CACjD,OAAO,sBAAsB,EAC7B,uBAAuB,CACxB,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,UAAU,CAAC,yBAAyB,CAAC,CAAC;AAE/E,qBAAa,oBAAqB,SAAQ,WAAW,CACnD,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,CAC3B;IACC,gBAAyB,IAAI,0BAA0B;IACvD,gBAAyB,QAAQ,YAAY;IAC7C,gBAAyB,KAAK,uBAAuB;IACrD,OAAuB,WAAW,SAC+C;IACjF,gBAAyB,SAAS,QAAQ;IAE1C,OAAuB,WAAW,IAAI,cAAc,CAEnD;IACD,OAAuB,YAAY,IAAI,cAAc,CAEpD;IAEc,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,yBAAyB;;;OAmBzF;CACF;AAED,eAAO,MAAM,UAAU,UACd,yBAAyB,WACvB,0BAA0B;;;EAGpC,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC,CAAC;IACrC,UAAU,QAAQ;QAChB,UAAU,EAAE,cAAc,CACxB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,CAC3B,CAAC;KACH;CACF"}
|