@workglow/task-graph 0.2.36 → 0.2.37
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/dist/browser.js +189 -174
- package/dist/browser.js.map +30 -30
- package/dist/bun.js +189 -174
- package/dist/bun.js.map +30 -30
- package/dist/node.js +189 -174
- package/dist/node.js.map +30 -30
- package/dist/storage/PortCodecRegistry.d.ts +1 -1
- package/dist/storage/PortCodecRegistry.d.ts.map +1 -1
- package/dist/storage/TaskGraphTabularRepository.d.ts.map +1 -1
- package/dist/task/CacheCoordinator.d.ts +1 -1
- package/dist/task/CacheCoordinator.d.ts.map +1 -1
- package/dist/task/ConditionalTask.d.ts +14 -14
- package/dist/task/ConditionalTask.d.ts.map +1 -1
- package/dist/task/EntitlementProfile.d.ts.map +1 -1
- package/dist/task/EntitlementProfiles.d.ts +1 -1
- package/dist/task/EntitlementProfiles.d.ts.map +1 -1
- package/dist/task/FallbackTask.d.ts +8 -8
- package/dist/task/FallbackTask.d.ts.map +1 -1
- package/dist/task/FallbackTaskRunner.d.ts.map +1 -1
- package/dist/task/GraphAsTask.d.ts +4 -4
- package/dist/task/GraphAsTask.d.ts.map +1 -1
- package/dist/task/ITask.d.ts +7 -1
- package/dist/task/ITask.d.ts.map +1 -1
- package/dist/task/InputCompactor.d.ts +1 -1
- package/dist/task/InputCompactor.d.ts.map +1 -1
- package/dist/task/InputResolver.d.ts +1 -1
- package/dist/task/InputResolver.d.ts.map +1 -1
- package/dist/task/IteratorTask.d.ts +4 -4
- package/dist/task/JobQueueFactory.d.ts +1 -1
- package/dist/task/JobQueueFactory.d.ts.map +1 -1
- package/dist/task/MapTask.d.ts +4 -4
- package/dist/task/ReduceTask.d.ts +4 -4
- package/dist/task/StreamProcessor.d.ts +1 -1
- package/dist/task/StreamProcessor.d.ts.map +1 -1
- package/dist/task/TaskError.d.ts +2 -0
- package/dist/task/TaskError.d.ts.map +1 -1
- package/dist/task/TaskEvents.d.ts +2 -2
- package/dist/task/TaskEvents.d.ts.map +1 -1
- package/dist/task/TaskQueueRegistry.d.ts +1 -1
- package/dist/task/TaskQueueRegistry.d.ts.map +1 -1
- package/dist/task/TaskRunner.d.ts.map +1 -1
- package/dist/task/TaskTypes.d.ts +1 -1
- package/dist/task/TaskTypes.d.ts.map +1 -1
- package/dist/task/WhileTask.d.ts +4 -4
- package/dist/task/iterationSchema.d.ts +1 -1
- package/dist/task/iterationSchema.d.ts.map +1 -1
- package/dist/task-graph/Dataflow.d.ts +1 -1
- package/dist/task-graph/Dataflow.d.ts.map +1 -1
- package/dist/task-graph/IWorkflow.d.ts +1 -1
- package/dist/task-graph/IWorkflow.d.ts.map +1 -1
- package/dist/task-graph/TaskGraph.d.ts +3 -1
- package/dist/task-graph/TaskGraph.d.ts.map +1 -1
- package/dist/task-graph/TaskGraphRunner.d.ts.map +1 -1
- package/dist/task-graph/Workflow.d.ts.map +1 -1
- package/dist/task-graph/transforms/index.d.ts +6 -6
- package/dist/task-graph/transforms/index.d.ts.map +1 -1
- package/package.json +7 -7
package/dist/browser.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/task-graph/Dataflow.ts
|
|
2
|
-
import { areSemanticallyCompatible } from "@workglow/util/schema";
|
|
3
2
|
import { EventEmitter } from "@workglow/util";
|
|
3
|
+
import { areSemanticallyCompatible } from "@workglow/util/schema";
|
|
4
4
|
|
|
5
5
|
// src/task/TaskError.ts
|
|
6
6
|
import { BaseError } from "@workglow/util";
|
|
@@ -60,9 +60,13 @@ class TaskFailedError extends TaskError {
|
|
|
60
60
|
class JobTaskFailedError extends TaskFailedError {
|
|
61
61
|
static type = "JobTaskFailedError";
|
|
62
62
|
jobError;
|
|
63
|
+
code;
|
|
63
64
|
constructor(err) {
|
|
64
65
|
super(String(err));
|
|
65
66
|
this.jobError = err;
|
|
67
|
+
if (err.code) {
|
|
68
|
+
this.code = err.code;
|
|
69
|
+
}
|
|
66
70
|
}
|
|
67
71
|
}
|
|
68
72
|
|
|
@@ -2090,7 +2094,7 @@ class TaskRunner {
|
|
|
2090
2094
|
throw new TaskConfigurationError(`Task "${this.task.type}" is already running. Concurrent run() calls on the same TaskRunner are not supported.`);
|
|
2091
2095
|
}
|
|
2092
2096
|
const ownsScope = config.resourceScope === undefined;
|
|
2093
|
-
const effectiveConfig = ownsScope ? { ...config, resourceScope: new ResourceScope } : config;
|
|
2097
|
+
const effectiveConfig = ownsScope ? { ...config, resourceScope: new ResourceScope({ strategy: config.disposeStrategy }) } : config;
|
|
2094
2098
|
this.ownsResourceScope = ownsScope;
|
|
2095
2099
|
try {
|
|
2096
2100
|
await this.handleStart(effectiveConfig);
|
|
@@ -2139,7 +2143,7 @@ class TaskRunner {
|
|
|
2139
2143
|
}
|
|
2140
2144
|
} finally {
|
|
2141
2145
|
if (ownsScope) {
|
|
2142
|
-
await effectiveConfig.resourceScope.
|
|
2146
|
+
await effectiveConfig.resourceScope.runComplete();
|
|
2143
2147
|
this.resourceScope = undefined;
|
|
2144
2148
|
}
|
|
2145
2149
|
this.ownsResourceScope = false;
|
|
@@ -2307,7 +2311,8 @@ class TaskRunner {
|
|
|
2307
2311
|
const resolved = await resolveSchemaInputs({ ...source }, configSchema, { registry: this.registry });
|
|
2308
2312
|
Object.assign(this.task.config, resolved);
|
|
2309
2313
|
}
|
|
2310
|
-
const
|
|
2314
|
+
const ctor = this.task.constructor;
|
|
2315
|
+
const schema = ctor.hasDynamicSchemas ? this.task.inputSchema() : ctor.inputSchema();
|
|
2311
2316
|
this.task.runInputData = await resolveSchemaInputs(this.task.runInputData, schema, { registry: this.registry });
|
|
2312
2317
|
}
|
|
2313
2318
|
async handleStart(config = {}) {
|
|
@@ -2339,6 +2344,9 @@ class TaskRunner {
|
|
|
2339
2344
|
if (config.resourceScope) {
|
|
2340
2345
|
this.resourceScope = config.resourceScope;
|
|
2341
2346
|
}
|
|
2347
|
+
if (this.resourceScope) {
|
|
2348
|
+
await this.resourceScope.runStart();
|
|
2349
|
+
}
|
|
2342
2350
|
if (ctx.abortController.signal.aborted)
|
|
2343
2351
|
return;
|
|
2344
2352
|
const timeout = this.task.config.timeout;
|
|
@@ -3727,7 +3735,10 @@ class TaskGraphRunner {
|
|
|
3727
3735
|
}
|
|
3728
3736
|
async runGraph(input = {}, config) {
|
|
3729
3737
|
const ownsScope = config?.resourceScope === undefined;
|
|
3730
|
-
const effectiveConfig = ownsScope ? {
|
|
3738
|
+
const effectiveConfig = ownsScope ? {
|
|
3739
|
+
...config,
|
|
3740
|
+
resourceScope: new ResourceScope2({ strategy: config?.disposeStrategy })
|
|
3741
|
+
} : config;
|
|
3731
3742
|
try {
|
|
3732
3743
|
await this.handleStart(effectiveConfig);
|
|
3733
3744
|
const ctx = this.currentCtx;
|
|
@@ -3750,7 +3761,7 @@ class TaskGraphRunner {
|
|
|
3750
3761
|
return this.filterLeafResults(results);
|
|
3751
3762
|
} finally {
|
|
3752
3763
|
if (ownsScope) {
|
|
3753
|
-
await effectiveConfig.resourceScope.
|
|
3764
|
+
await effectiveConfig.resourceScope.runComplete();
|
|
3754
3765
|
this.resourceScope = undefined;
|
|
3755
3766
|
}
|
|
3756
3767
|
}
|
|
@@ -3969,6 +3980,9 @@ class TaskGraphRunner {
|
|
|
3969
3980
|
if (config?.timeout !== undefined) {
|
|
3970
3981
|
this.runScheduler.armGraphTimeout(config.timeout, ctx);
|
|
3971
3982
|
}
|
|
3983
|
+
if (this.resourceScope) {
|
|
3984
|
+
await this.resourceScope.runStart();
|
|
3985
|
+
}
|
|
3972
3986
|
if (ctx.abortController.signal.aborted)
|
|
3973
3987
|
return;
|
|
3974
3988
|
this.resetGraph(this.graph, ctx.runId);
|
|
@@ -4574,7 +4588,8 @@ class TaskGraph {
|
|
|
4574
4588
|
registry: config?.registry,
|
|
4575
4589
|
timeout: config?.timeout,
|
|
4576
4590
|
maxTasks: config?.maxTasks,
|
|
4577
|
-
resourceScope: config?.resourceScope
|
|
4591
|
+
resourceScope: config?.resourceScope,
|
|
4592
|
+
disposeStrategy: config?.disposeStrategy
|
|
4578
4593
|
});
|
|
4579
4594
|
}
|
|
4580
4595
|
runPreview(input = {}, config = {}) {
|
|
@@ -5550,19 +5565,6 @@ class WorkflowEventBridge {
|
|
|
5550
5565
|
}
|
|
5551
5566
|
}
|
|
5552
5567
|
|
|
5553
|
-
// src/task-graph/WorkflowRunContext.ts
|
|
5554
|
-
class WorkflowRunContext {
|
|
5555
|
-
abortController;
|
|
5556
|
-
unsubStreaming;
|
|
5557
|
-
constructor() {
|
|
5558
|
-
this.abortController = new AbortController;
|
|
5559
|
-
}
|
|
5560
|
-
dispose() {
|
|
5561
|
-
this.unsubStreaming?.();
|
|
5562
|
-
this.unsubStreaming = undefined;
|
|
5563
|
-
}
|
|
5564
|
-
}
|
|
5565
|
-
|
|
5566
5568
|
// src/task-graph/WorkflowFactories.ts
|
|
5567
5569
|
function CreateWorkflow(taskClass) {
|
|
5568
5570
|
return Workflow.createWorkflow(taskClass);
|
|
@@ -5593,6 +5595,19 @@ function CreateAdaptiveWorkflow(scalarClass, vectorClass) {
|
|
|
5593
5595
|
};
|
|
5594
5596
|
}
|
|
5595
5597
|
|
|
5598
|
+
// src/task-graph/WorkflowRunContext.ts
|
|
5599
|
+
class WorkflowRunContext {
|
|
5600
|
+
abortController;
|
|
5601
|
+
unsubStreaming;
|
|
5602
|
+
constructor() {
|
|
5603
|
+
this.abortController = new AbortController;
|
|
5604
|
+
}
|
|
5605
|
+
dispose() {
|
|
5606
|
+
this.unsubStreaming?.();
|
|
5607
|
+
this.unsubStreaming = undefined;
|
|
5608
|
+
}
|
|
5609
|
+
}
|
|
5610
|
+
|
|
5596
5611
|
// src/task-graph/WorkflowTask.ts
|
|
5597
5612
|
class WorkflowTask extends GraphAsTask {
|
|
5598
5613
|
static type = "Workflow";
|
|
@@ -6145,107 +6160,6 @@ ${baseIndent}}`;
|
|
|
6145
6160
|
function resetMethodNameCache() {
|
|
6146
6161
|
methodNameCache = undefined;
|
|
6147
6162
|
}
|
|
6148
|
-
// src/task-graph/transforms/pick.ts
|
|
6149
|
-
import { areSemanticallyCompatible as areSemanticallyCompatible2 } from "@workglow/util/schema";
|
|
6150
|
-
function walk(value, path) {
|
|
6151
|
-
if (value == null)
|
|
6152
|
-
return;
|
|
6153
|
-
const parts = path.split(".");
|
|
6154
|
-
let cur = value;
|
|
6155
|
-
for (const p of parts) {
|
|
6156
|
-
if (cur == null)
|
|
6157
|
-
return;
|
|
6158
|
-
cur = cur[p];
|
|
6159
|
-
}
|
|
6160
|
-
return cur;
|
|
6161
|
-
}
|
|
6162
|
-
function walkSchema(schema, path) {
|
|
6163
|
-
const parts = path.split(".");
|
|
6164
|
-
let cur = schema;
|
|
6165
|
-
for (const p of parts) {
|
|
6166
|
-
if (!cur || typeof cur !== "object")
|
|
6167
|
-
return {};
|
|
6168
|
-
if (cur.type !== "object" || !cur.properties || !cur.properties[p]) {
|
|
6169
|
-
return {};
|
|
6170
|
-
}
|
|
6171
|
-
cur = cur.properties[p];
|
|
6172
|
-
}
|
|
6173
|
-
return cur;
|
|
6174
|
-
}
|
|
6175
|
-
var pickTransform = {
|
|
6176
|
-
id: "pick",
|
|
6177
|
-
title: "Pick field",
|
|
6178
|
-
category: "Structural",
|
|
6179
|
-
paramsSchema: {
|
|
6180
|
-
type: "object",
|
|
6181
|
-
properties: {
|
|
6182
|
-
path: { type: "string", description: "Dotted property path" }
|
|
6183
|
-
},
|
|
6184
|
-
required: ["path"]
|
|
6185
|
-
},
|
|
6186
|
-
inferOutputSchema(inputSchema, params) {
|
|
6187
|
-
return walkSchema(inputSchema, params.path);
|
|
6188
|
-
},
|
|
6189
|
-
apply(value, params) {
|
|
6190
|
-
return walk(value, params.path);
|
|
6191
|
-
},
|
|
6192
|
-
suggestFromSchemas(source, target) {
|
|
6193
|
-
if (source.type !== "object" || !source.properties) {
|
|
6194
|
-
return;
|
|
6195
|
-
}
|
|
6196
|
-
const props = source.properties;
|
|
6197
|
-
for (const [name, propSchema] of Object.entries(props)) {
|
|
6198
|
-
const compat = areSemanticallyCompatible2(propSchema, target);
|
|
6199
|
-
if (compat === "static")
|
|
6200
|
-
return { score: 1, params: { path: name } };
|
|
6201
|
-
if (compat === "runtime")
|
|
6202
|
-
return { score: 0.6, params: { path: name } };
|
|
6203
|
-
}
|
|
6204
|
-
return;
|
|
6205
|
-
}
|
|
6206
|
-
};
|
|
6207
|
-
|
|
6208
|
-
// src/task-graph/transforms/index-access.ts
|
|
6209
|
-
import { areSemanticallyCompatible as areSemanticallyCompatible3 } from "@workglow/util/schema";
|
|
6210
|
-
function doIndex(value, idx) {
|
|
6211
|
-
if (!Array.isArray(value))
|
|
6212
|
-
return;
|
|
6213
|
-
const i = idx < 0 ? value.length + idx : idx;
|
|
6214
|
-
return value[i];
|
|
6215
|
-
}
|
|
6216
|
-
var indexTransform = {
|
|
6217
|
-
id: "index",
|
|
6218
|
-
title: "Array index",
|
|
6219
|
-
category: "Structural",
|
|
6220
|
-
paramsSchema: {
|
|
6221
|
-
type: "object",
|
|
6222
|
-
properties: {
|
|
6223
|
-
index: { type: "integer", description: "Array index (negative counts from end)" }
|
|
6224
|
-
},
|
|
6225
|
-
required: ["index"]
|
|
6226
|
-
},
|
|
6227
|
-
inferOutputSchema(inputSchema) {
|
|
6228
|
-
const s = inputSchema;
|
|
6229
|
-
if (s?.type === "array" && s.items)
|
|
6230
|
-
return s.items;
|
|
6231
|
-
return {};
|
|
6232
|
-
},
|
|
6233
|
-
apply(value, params) {
|
|
6234
|
-
return doIndex(value, params.index);
|
|
6235
|
-
},
|
|
6236
|
-
suggestFromSchemas(source, target) {
|
|
6237
|
-
const s = source;
|
|
6238
|
-
if (s?.type !== "array" || !s.items)
|
|
6239
|
-
return;
|
|
6240
|
-
const compat = areSemanticallyCompatible3(s.items, target);
|
|
6241
|
-
if (compat === "static")
|
|
6242
|
-
return { score: 0.9, params: { index: 0 } };
|
|
6243
|
-
if (compat === "runtime")
|
|
6244
|
-
return { score: 0.5, params: { index: 0 } };
|
|
6245
|
-
return;
|
|
6246
|
-
}
|
|
6247
|
-
};
|
|
6248
|
-
|
|
6249
6163
|
// src/task-graph/transforms/coalesce.ts
|
|
6250
6164
|
function stripNullable(schema) {
|
|
6251
6165
|
const s = schema;
|
|
@@ -6272,52 +6186,6 @@ var coalesceTransform = {
|
|
|
6272
6186
|
apply: (v, { defaultValue }) => v == null ? defaultValue : v
|
|
6273
6187
|
};
|
|
6274
6188
|
|
|
6275
|
-
// src/task-graph/transforms/string-casts.ts
|
|
6276
|
-
var stringSchema = { type: "string" };
|
|
6277
|
-
var uppercaseTransform = {
|
|
6278
|
-
id: "uppercase",
|
|
6279
|
-
title: "Uppercase",
|
|
6280
|
-
category: "String",
|
|
6281
|
-
paramsSchema: undefined,
|
|
6282
|
-
inferOutputSchema: () => stringSchema,
|
|
6283
|
-
apply: (v) => String(v ?? "").toUpperCase()
|
|
6284
|
-
};
|
|
6285
|
-
var lowercaseTransform = {
|
|
6286
|
-
id: "lowercase",
|
|
6287
|
-
title: "Lowercase",
|
|
6288
|
-
category: "String",
|
|
6289
|
-
paramsSchema: undefined,
|
|
6290
|
-
inferOutputSchema: () => stringSchema,
|
|
6291
|
-
apply: (v) => String(v ?? "").toLowerCase()
|
|
6292
|
-
};
|
|
6293
|
-
var truncateTransform = {
|
|
6294
|
-
id: "truncate",
|
|
6295
|
-
title: "Truncate",
|
|
6296
|
-
category: "String",
|
|
6297
|
-
paramsSchema: {
|
|
6298
|
-
type: "object",
|
|
6299
|
-
properties: { max: { type: "integer", minimum: 0 } },
|
|
6300
|
-
required: ["max"]
|
|
6301
|
-
},
|
|
6302
|
-
inferOutputSchema: () => stringSchema,
|
|
6303
|
-
apply: (v, { max }) => String(v ?? "").slice(0, max)
|
|
6304
|
-
};
|
|
6305
|
-
var substringTransform = {
|
|
6306
|
-
id: "substring",
|
|
6307
|
-
title: "Substring",
|
|
6308
|
-
category: "String",
|
|
6309
|
-
paramsSchema: {
|
|
6310
|
-
type: "object",
|
|
6311
|
-
properties: {
|
|
6312
|
-
start: { type: "integer" },
|
|
6313
|
-
end: { type: "integer" }
|
|
6314
|
-
},
|
|
6315
|
-
required: ["start"]
|
|
6316
|
-
},
|
|
6317
|
-
inferOutputSchema: () => stringSchema,
|
|
6318
|
-
apply: (v, { start, end }) => String(v ?? "").slice(start, end)
|
|
6319
|
-
};
|
|
6320
|
-
|
|
6321
6189
|
// src/task-graph/transforms/date-conversions.ts
|
|
6322
6190
|
var isoSchema = { type: "string", format: "date-time" };
|
|
6323
6191
|
var numberSchema = { type: "number" };
|
|
@@ -6367,15 +6235,116 @@ var isoDateToUnixTransform = {
|
|
|
6367
6235
|
}
|
|
6368
6236
|
};
|
|
6369
6237
|
|
|
6238
|
+
// src/task-graph/transforms/index-access.ts
|
|
6239
|
+
import { areSemanticallyCompatible as areSemanticallyCompatible2 } from "@workglow/util/schema";
|
|
6240
|
+
function doIndex(value, idx) {
|
|
6241
|
+
if (!Array.isArray(value))
|
|
6242
|
+
return;
|
|
6243
|
+
const i = idx < 0 ? value.length + idx : idx;
|
|
6244
|
+
return value[i];
|
|
6245
|
+
}
|
|
6246
|
+
var indexTransform = {
|
|
6247
|
+
id: "index",
|
|
6248
|
+
title: "Array index",
|
|
6249
|
+
category: "Structural",
|
|
6250
|
+
paramsSchema: {
|
|
6251
|
+
type: "object",
|
|
6252
|
+
properties: {
|
|
6253
|
+
index: { type: "integer", description: "Array index (negative counts from end)" }
|
|
6254
|
+
},
|
|
6255
|
+
required: ["index"]
|
|
6256
|
+
},
|
|
6257
|
+
inferOutputSchema(inputSchema) {
|
|
6258
|
+
const s = inputSchema;
|
|
6259
|
+
if (s?.type === "array" && s.items)
|
|
6260
|
+
return s.items;
|
|
6261
|
+
return {};
|
|
6262
|
+
},
|
|
6263
|
+
apply(value, params) {
|
|
6264
|
+
return doIndex(value, params.index);
|
|
6265
|
+
},
|
|
6266
|
+
suggestFromSchemas(source, target) {
|
|
6267
|
+
const s = source;
|
|
6268
|
+
if (s?.type !== "array" || !s.items)
|
|
6269
|
+
return;
|
|
6270
|
+
const compat = areSemanticallyCompatible2(s.items, target);
|
|
6271
|
+
if (compat === "static")
|
|
6272
|
+
return { score: 0.9, params: { index: 0 } };
|
|
6273
|
+
if (compat === "runtime")
|
|
6274
|
+
return { score: 0.5, params: { index: 0 } };
|
|
6275
|
+
return;
|
|
6276
|
+
}
|
|
6277
|
+
};
|
|
6278
|
+
|
|
6279
|
+
// src/task-graph/transforms/pick.ts
|
|
6280
|
+
import { areSemanticallyCompatible as areSemanticallyCompatible3 } from "@workglow/util/schema";
|
|
6281
|
+
function walk(value, path) {
|
|
6282
|
+
if (value == null)
|
|
6283
|
+
return;
|
|
6284
|
+
const parts = path.split(".");
|
|
6285
|
+
let cur = value;
|
|
6286
|
+
for (const p of parts) {
|
|
6287
|
+
if (cur == null)
|
|
6288
|
+
return;
|
|
6289
|
+
cur = cur[p];
|
|
6290
|
+
}
|
|
6291
|
+
return cur;
|
|
6292
|
+
}
|
|
6293
|
+
function walkSchema(schema, path) {
|
|
6294
|
+
const parts = path.split(".");
|
|
6295
|
+
let cur = schema;
|
|
6296
|
+
for (const p of parts) {
|
|
6297
|
+
if (!cur || typeof cur !== "object")
|
|
6298
|
+
return {};
|
|
6299
|
+
if (cur.type !== "object" || !cur.properties || !cur.properties[p]) {
|
|
6300
|
+
return {};
|
|
6301
|
+
}
|
|
6302
|
+
cur = cur.properties[p];
|
|
6303
|
+
}
|
|
6304
|
+
return cur;
|
|
6305
|
+
}
|
|
6306
|
+
var pickTransform = {
|
|
6307
|
+
id: "pick",
|
|
6308
|
+
title: "Pick field",
|
|
6309
|
+
category: "Structural",
|
|
6310
|
+
paramsSchema: {
|
|
6311
|
+
type: "object",
|
|
6312
|
+
properties: {
|
|
6313
|
+
path: { type: "string", description: "Dotted property path" }
|
|
6314
|
+
},
|
|
6315
|
+
required: ["path"]
|
|
6316
|
+
},
|
|
6317
|
+
inferOutputSchema(inputSchema, params) {
|
|
6318
|
+
return walkSchema(inputSchema, params.path);
|
|
6319
|
+
},
|
|
6320
|
+
apply(value, params) {
|
|
6321
|
+
return walk(value, params.path);
|
|
6322
|
+
},
|
|
6323
|
+
suggestFromSchemas(source, target) {
|
|
6324
|
+
if (source.type !== "object" || !source.properties) {
|
|
6325
|
+
return;
|
|
6326
|
+
}
|
|
6327
|
+
const props = source.properties;
|
|
6328
|
+
for (const [name, propSchema] of Object.entries(props)) {
|
|
6329
|
+
const compat = areSemanticallyCompatible3(propSchema, target);
|
|
6330
|
+
if (compat === "static")
|
|
6331
|
+
return { score: 1, params: { path: name } };
|
|
6332
|
+
if (compat === "runtime")
|
|
6333
|
+
return { score: 0.6, params: { path: name } };
|
|
6334
|
+
}
|
|
6335
|
+
return;
|
|
6336
|
+
}
|
|
6337
|
+
};
|
|
6338
|
+
|
|
6370
6339
|
// src/task-graph/transforms/scalar-conversions.ts
|
|
6371
|
-
var
|
|
6340
|
+
var stringSchema = { type: "string" };
|
|
6372
6341
|
var booleanSchema = { type: "boolean" };
|
|
6373
6342
|
var numberToStringTransform = {
|
|
6374
6343
|
id: "numberToString",
|
|
6375
6344
|
title: "Number → String",
|
|
6376
6345
|
category: "Conversion",
|
|
6377
6346
|
paramsSchema: undefined,
|
|
6378
|
-
inferOutputSchema: () =>
|
|
6347
|
+
inferOutputSchema: () => stringSchema,
|
|
6379
6348
|
apply: (v) => String(v),
|
|
6380
6349
|
suggestFromSchemas(source, target) {
|
|
6381
6350
|
const s = source;
|
|
@@ -6407,7 +6376,7 @@ var stringifyTransform = {
|
|
|
6407
6376
|
title: "JSON.stringify",
|
|
6408
6377
|
category: "Conversion",
|
|
6409
6378
|
paramsSchema: undefined,
|
|
6410
|
-
inferOutputSchema: () =>
|
|
6379
|
+
inferOutputSchema: () => stringSchema,
|
|
6411
6380
|
apply: (v) => JSON.stringify(v),
|
|
6412
6381
|
suggestFromSchemas(source, target) {
|
|
6413
6382
|
const t = target;
|
|
@@ -6423,6 +6392,52 @@ var parseJsonTransform = {
|
|
|
6423
6392
|
apply: (v) => JSON.parse(String(v))
|
|
6424
6393
|
};
|
|
6425
6394
|
|
|
6395
|
+
// src/task-graph/transforms/string-casts.ts
|
|
6396
|
+
var stringSchema2 = { type: "string" };
|
|
6397
|
+
var uppercaseTransform = {
|
|
6398
|
+
id: "uppercase",
|
|
6399
|
+
title: "Uppercase",
|
|
6400
|
+
category: "String",
|
|
6401
|
+
paramsSchema: undefined,
|
|
6402
|
+
inferOutputSchema: () => stringSchema2,
|
|
6403
|
+
apply: (v) => String(v ?? "").toUpperCase()
|
|
6404
|
+
};
|
|
6405
|
+
var lowercaseTransform = {
|
|
6406
|
+
id: "lowercase",
|
|
6407
|
+
title: "Lowercase",
|
|
6408
|
+
category: "String",
|
|
6409
|
+
paramsSchema: undefined,
|
|
6410
|
+
inferOutputSchema: () => stringSchema2,
|
|
6411
|
+
apply: (v) => String(v ?? "").toLowerCase()
|
|
6412
|
+
};
|
|
6413
|
+
var truncateTransform = {
|
|
6414
|
+
id: "truncate",
|
|
6415
|
+
title: "Truncate",
|
|
6416
|
+
category: "String",
|
|
6417
|
+
paramsSchema: {
|
|
6418
|
+
type: "object",
|
|
6419
|
+
properties: { max: { type: "integer", minimum: 0 } },
|
|
6420
|
+
required: ["max"]
|
|
6421
|
+
},
|
|
6422
|
+
inferOutputSchema: () => stringSchema2,
|
|
6423
|
+
apply: (v, { max }) => String(v ?? "").slice(0, max)
|
|
6424
|
+
};
|
|
6425
|
+
var substringTransform = {
|
|
6426
|
+
id: "substring",
|
|
6427
|
+
title: "Substring",
|
|
6428
|
+
category: "String",
|
|
6429
|
+
paramsSchema: {
|
|
6430
|
+
type: "object",
|
|
6431
|
+
properties: {
|
|
6432
|
+
start: { type: "integer" },
|
|
6433
|
+
end: { type: "integer" }
|
|
6434
|
+
},
|
|
6435
|
+
required: ["start"]
|
|
6436
|
+
},
|
|
6437
|
+
inferOutputSchema: () => stringSchema2,
|
|
6438
|
+
apply: (v, { start, end }) => String(v ?? "").slice(start, end)
|
|
6439
|
+
};
|
|
6440
|
+
|
|
6426
6441
|
// src/task-graph/transforms/index.ts
|
|
6427
6442
|
function registerBuiltInTransforms() {
|
|
6428
6443
|
const all = [
|
|
@@ -8165,10 +8180,10 @@ function wrapSchemaInArray(schema) {
|
|
|
8165
8180
|
}
|
|
8166
8181
|
// src/task/JobQueueFactory.ts
|
|
8167
8182
|
import {
|
|
8183
|
+
InMemoryQueueStorage,
|
|
8168
8184
|
JobQueueClient,
|
|
8169
8185
|
JobQueueServer
|
|
8170
8186
|
} from "@workglow/job-queue";
|
|
8171
|
-
import { InMemoryQueueStorage } from "@workglow/job-queue";
|
|
8172
8187
|
import { createServiceToken as createServiceToken6, globalServiceRegistry as globalServiceRegistry4 } from "@workglow/util";
|
|
8173
8188
|
var JOB_QUEUE_FACTORY = createServiceToken6("taskgraph.jobQueueFactory");
|
|
8174
8189
|
var defaultJobQueueFactory = async ({
|
|
@@ -8720,8 +8735,8 @@ class TaskGraphTabularRepository extends TaskGraphRepository {
|
|
|
8720
8735
|
}
|
|
8721
8736
|
}
|
|
8722
8737
|
// src/storage/TaskOutputTabularRepository.ts
|
|
8723
|
-
import { compress, decompress } from "@workglow/util/compress";
|
|
8724
8738
|
import { makeFingerprint } from "@workglow/util";
|
|
8739
|
+
import { compress, decompress } from "@workglow/util/compress";
|
|
8725
8740
|
var TaskOutputSchema = {
|
|
8726
8741
|
type: "object",
|
|
8727
8742
|
properties: {
|
|
@@ -8803,7 +8818,7 @@ class TaskOutputTabularRepository extends TaskOutputRepository {
|
|
|
8803
8818
|
}
|
|
8804
8819
|
}
|
|
8805
8820
|
// src/storage/PortCodecRegistry.ts
|
|
8806
|
-
import {
|
|
8821
|
+
import { _resetPortCodecsForTests, getPortCodec as getPortCodec2, registerPortCodec } from "@workglow/util";
|
|
8807
8822
|
// src/debug/console/ConsoleFormatters.ts
|
|
8808
8823
|
import { DirectedAcyclicGraph as DirectedAcyclicGraph2 } from "@workglow/util/graph";
|
|
8809
8824
|
function formatDuration(ms) {
|
|
@@ -9642,4 +9657,4 @@ export {
|
|
|
9642
9657
|
BROWSER_GRANTS
|
|
9643
9658
|
};
|
|
9644
9659
|
|
|
9645
|
-
//# debugId=
|
|
9660
|
+
//# debugId=CD8A2EECF385623964756E2164756E21
|