@workglow/task-graph 0.2.31 → 0.2.32
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 +119 -11
- package/dist/browser.js.map +7 -6
- package/dist/bun.js +119 -11
- package/dist/bun.js.map +7 -6
- package/dist/node.js +119 -11
- package/dist/node.js.map +7 -6
- package/dist/task/EntitlementProfile.d.ts +136 -0
- package/dist/task/EntitlementProfile.d.ts.map +1 -0
- package/dist/task/EntitlementProfiles.d.ts +6 -6
- package/dist/task/EntitlementProfiles.d.ts.map +1 -1
- package/dist/task/index.d.ts +1 -0
- package/dist/task/index.d.ts.map +1 -1
- package/package.json +7 -7
package/dist/bun.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/task-graph/Dataflow.ts", "../src/task/TaskError.ts", "../src/task/TaskTypes.ts", "../src/task-graph/TransformRegistry.ts", "../src/task/TaskEntitlements.ts", "../src/task-graph/GraphEntitlementUtils.ts", "../src/task/InputResolver.ts", "../src/task-graph/GraphFormatScanner.ts", "../src/task-graph/GraphSchemaUtils.ts", "../src/task-graph/TaskGraph.ts", "../src/task/GraphAsTask.ts", "../src/task-graph/TaskGraphRunner.ts", "../src/storage/TaskOutputRepository.ts", "../src/task/EntitlementEnforcer.ts", "../src/task/EntitlementPolicy.ts", "../src/task/EntitlementResolver.ts", "../src/task/StreamTypes.ts", "../src/task-graph/EdgeMaterializer.ts", "../src/task-graph/RunContext.ts", "../src/task-graph/RunScheduler.ts", "../src/task/ConditionalTask.ts", "../src/task/ConditionUtils.ts", "../src/task/Task.ts", "../src/task/TaskRunner.ts", "../src/task/CacheCoordinator.ts", "../src/task/StreamProcessor.ts", "../src/task/TaskRunContext.ts", "../src/task-graph/StreamPump.ts", "../src/task-graph/TaskGraphScheduler.ts", "../src/task/GraphAsTaskRunner.ts", "../src/task-graph/Conversions.ts", "../src/task-graph/TaskGraphEvents.ts", "../src/task-graph/Workflow.ts", "../src/task-graph/autoConnect.ts", "../src/task-graph/LoopBuilderContext.ts", "../src/task-graph/WorkflowBuilder.ts", "../src/task-graph/ConditionalBuilder.ts", "../src/task-graph/WorkflowPipe.ts", "../src/task-graph/WorkflowCacheAdapter.ts", "../src/task-graph/WorkflowEventBridge.ts", "../src/task-graph/WorkflowRunContext.ts", "../src/task-graph/WorkflowFactories.ts", "../src/task-graph/WorkflowTask.ts", "../src/task-graph/GraphToWorkflowCode.ts", "../src/task-graph/transforms/pick.ts", "../src/task-graph/transforms/index-access.ts", "../src/task-graph/transforms/coalesce.ts", "../src/task-graph/transforms/string-casts.ts", "../src/task-graph/transforms/date-conversions.ts", "../src/task-graph/transforms/scalar-conversions.ts", "../src/task-graph/transforms/index.ts", "../src/task/EntitlementProfiles.ts", "../src/task/FallbackTaskRunner.ts", "../src/task/FallbackTask.ts", "../src/task/InputCompactor.ts", "../src/task/IteratorTaskRunner.ts", "../src/task/IteratorTask.ts", "../src/task/WhileTaskRunner.ts", "../src/task/WhileTask.ts", "../src/task/iterationSchema.ts", "../src/task/JobQueueFactory.ts", "../src/task/MapTask.ts", "../src/task/ReduceTask.ts", "../src/task/TaskRegistry.ts", "../src/task/TaskJSON.ts", "../src/task/TaskQueueRegistry.ts", "../src/task/index.ts", "../src/storage/TaskGraphRepository.ts", "../src/storage/TaskGraphTabularRepository.ts", "../src/storage/TaskOutputTabularRepository.ts", "../src/storage/PortCodecRegistry.ts"],
|
|
3
|
+
"sources": ["../src/task-graph/Dataflow.ts", "../src/task/TaskError.ts", "../src/task/TaskTypes.ts", "../src/task-graph/TransformRegistry.ts", "../src/task/TaskEntitlements.ts", "../src/task-graph/GraphEntitlementUtils.ts", "../src/task/InputResolver.ts", "../src/task-graph/GraphFormatScanner.ts", "../src/task-graph/GraphSchemaUtils.ts", "../src/task-graph/TaskGraph.ts", "../src/task/GraphAsTask.ts", "../src/task-graph/TaskGraphRunner.ts", "../src/storage/TaskOutputRepository.ts", "../src/task/EntitlementEnforcer.ts", "../src/task/EntitlementPolicy.ts", "../src/task/EntitlementResolver.ts", "../src/task/StreamTypes.ts", "../src/task-graph/EdgeMaterializer.ts", "../src/task-graph/RunContext.ts", "../src/task-graph/RunScheduler.ts", "../src/task/ConditionalTask.ts", "../src/task/ConditionUtils.ts", "../src/task/Task.ts", "../src/task/TaskRunner.ts", "../src/task/CacheCoordinator.ts", "../src/task/StreamProcessor.ts", "../src/task/TaskRunContext.ts", "../src/task-graph/StreamPump.ts", "../src/task-graph/TaskGraphScheduler.ts", "../src/task/GraphAsTaskRunner.ts", "../src/task-graph/Conversions.ts", "../src/task-graph/TaskGraphEvents.ts", "../src/task-graph/Workflow.ts", "../src/task-graph/autoConnect.ts", "../src/task-graph/LoopBuilderContext.ts", "../src/task-graph/WorkflowBuilder.ts", "../src/task-graph/ConditionalBuilder.ts", "../src/task-graph/WorkflowPipe.ts", "../src/task-graph/WorkflowCacheAdapter.ts", "../src/task-graph/WorkflowEventBridge.ts", "../src/task-graph/WorkflowRunContext.ts", "../src/task-graph/WorkflowFactories.ts", "../src/task-graph/WorkflowTask.ts", "../src/task-graph/GraphToWorkflowCode.ts", "../src/task-graph/transforms/pick.ts", "../src/task-graph/transforms/index-access.ts", "../src/task-graph/transforms/coalesce.ts", "../src/task-graph/transforms/string-casts.ts", "../src/task-graph/transforms/date-conversions.ts", "../src/task-graph/transforms/scalar-conversions.ts", "../src/task-graph/transforms/index.ts", "../src/task/EntitlementProfile.ts", "../src/task/EntitlementProfiles.ts", "../src/task/FallbackTaskRunner.ts", "../src/task/FallbackTask.ts", "../src/task/InputCompactor.ts", "../src/task/IteratorTaskRunner.ts", "../src/task/IteratorTask.ts", "../src/task/WhileTaskRunner.ts", "../src/task/WhileTask.ts", "../src/task/iterationSchema.ts", "../src/task/JobQueueFactory.ts", "../src/task/MapTask.ts", "../src/task/ReduceTask.ts", "../src/task/TaskRegistry.ts", "../src/task/TaskJSON.ts", "../src/task/TaskQueueRegistry.ts", "../src/task/index.ts", "../src/storage/TaskGraphRepository.ts", "../src/storage/TaskGraphTabularRepository.ts", "../src/storage/TaskOutputTabularRepository.ts", "../src/storage/PortCodecRegistry.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { areSemanticallyCompatible } from \"@workglow/util/schema\";\nimport { EventEmitter } from \"@workglow/util\";\nimport type { StreamEvent } from \"../task/StreamTypes\";\nimport { TaskError } from \"../task/TaskError\";\nimport { DataflowJson } from \"../task/TaskJSON\";\nimport { TaskIdType, TaskOutput, TaskStatus } from \"../task/TaskTypes\";\nimport { Task } from \"../task/Task\";\nimport {\n DataflowEventListener,\n DataflowEventListeners,\n DataflowEventParameters,\n DataflowEvents,\n} from \"./DataflowEvents\";\nimport { TaskGraph } from \"./TaskGraph\";\nimport { TRANSFORM_DEFS, TransformRegistry } from \"./TransformRegistry\";\nimport type { ITransformStep } from \"./TransformTypes\";\nimport type { ServiceRegistry } from \"@workglow/util\";\n\nexport type DataflowIdType = `${string}[${string}] ==> ${string}[${string}]`;\n\nexport const DATAFLOW_ALL_PORTS = \"*\";\nexport const DATAFLOW_ERROR_PORT = \"[error]\";\n\n/**\n * Represents a data flow between two tasks, indicating how one task's output is used as input for another task\n */\nexport class Dataflow {\n constructor(\n public sourceTaskId: TaskIdType,\n public sourceTaskPortId: string,\n public targetTaskId: TaskIdType,\n public targetTaskPortId: string\n ) {}\n public static createId(\n sourceTaskId: TaskIdType,\n sourceTaskPortId: string,\n targetTaskId: TaskIdType,\n targetTaskPortId: string\n ): DataflowIdType {\n return `${sourceTaskId}[${sourceTaskPortId}] ==> ${targetTaskId}[${targetTaskPortId}]`;\n }\n get id(): DataflowIdType {\n return Dataflow.createId(\n this.sourceTaskId,\n this.sourceTaskPortId,\n this.targetTaskId,\n this.targetTaskPortId\n );\n }\n public value: any = undefined;\n public status: TaskStatus = TaskStatus.PENDING;\n public error: TaskError | undefined;\n\n /**\n * Active stream for this dataflow edge.\n * Set when a streaming upstream task begins producing chunks.\n * Multiple downstream consumers can each get an independent reader via tee().\n */\n public stream: ReadableStream<StreamEvent> | undefined = undefined;\n\n /**\n * Most recent per-port snapshot data observed while `stream` was active.\n * Populated by the runner's stream-tap on `snapshot` events; cleared on\n * setStream / reset, or transferred to `value` on setPortData. Distinct\n * from `value` (final materialized output) — `latestSnapshot` is the\n * live mid-stream peek.\n */\n public latestSnapshot: unknown = undefined;\n\n /**\n * Returns the current effective value of this edge, regardless of\n * streaming state:\n * 1. `value` — set by setPortData / awaitStreamValue when stream finishes.\n * 2. `latestSnapshot` — set by the runner's snapshot tap during streaming.\n * 3. `undefined` — no data yet.\n *\n * Use this in any read path that wants \"current edge value, regardless of\n * streaming state.\" `getPortData()` retains its strict semantics\n * (only `value`) for callers that explicitly need that.\n */\n public getCurrentValue(): unknown {\n if (this.value !== undefined) return this.value;\n return this.latestSnapshot;\n }\n\n /**\n * Sets the active stream on this dataflow.\n * @param stream The ReadableStream of StreamEvents from the upstream task\n */\n public setStream(stream: ReadableStream<StreamEvent>): void {\n // New stream invalidates any prior peek.\n this.latestSnapshot = undefined;\n this.stream = stream;\n }\n\n /**\n * Gets the active stream from this dataflow, or undefined if not streaming.\n */\n public getStream(): ReadableStream<StreamEvent> | undefined {\n return this.stream;\n }\n\n /**\n * Consumes the active stream to completion and materializes the value.\n *\n * Accumulation of text-delta chunks is the responsibility of the **source\n * task** (via StreamProcessor when shouldAccumulate=true).\n * When accumulation is needed the source task emits an enriched finish event\n * that carries the fully-assembled port data. All downstream edges share that\n * enriched event through tee'd ReadableStreams, so no edge needs to\n * re-accumulate independently.\n *\n * This method therefore only reads snapshot and finish events:\n * - **snapshot**: used for replace-mode tasks that emit incremental snapshots.\n * - **finish**: the primary materialization path; carries complete data when\n * the source task accumulated, or provider-level data otherwise.\n * - text-delta / object-delta: ignored here (handled by source task).\n *\n * After consumption the stream reference is cleared. Calling this method on\n * a dataflow that has no stream is a no-op.\n */\n public async awaitStreamValue(): Promise<void> {\n if (!this.stream) return;\n\n const reader = this.stream.getReader();\n let lastSnapshotData: any = undefined;\n let finishData: any = undefined;\n let streamError: Error | undefined;\n\n try {\n while (true) {\n const { done, value: event } = await reader.read();\n if (done) break;\n\n switch (event.type) {\n case \"snapshot\":\n lastSnapshotData = event.data;\n break;\n case \"finish\":\n finishData = event.data;\n break;\n case \"error\":\n streamError = event.error;\n break;\n // text-delta, object-delta: source task handles accumulation\n }\n }\n } finally {\n reader.releaseLock();\n this.stream = undefined;\n }\n\n if (streamError) {\n this.error = streamError as TaskError;\n this.setStatus(TaskStatus.FAILED);\n throw streamError;\n }\n\n // Priority: snapshot > finish.\n // The source task enriches the finish event with accumulated text when\n // shouldAccumulate=true, so finishData carries complete port data.\n if (lastSnapshotData !== undefined) {\n this.setPortData(lastSnapshotData);\n } else if (finishData !== undefined) {\n this.setPortData(finishData);\n }\n }\n\n public reset() {\n this.latestSnapshot = undefined;\n this.status = TaskStatus.PENDING;\n this.error = undefined;\n this.value = undefined;\n this.stream = undefined;\n this._compatibilityCache = undefined;\n this.emit(\"reset\");\n this.emit(\"status\", this.status);\n }\n\n public setStatus(status: TaskStatus) {\n if (status === this.status) return;\n this.status = status;\n switch (status) {\n case TaskStatus.PROCESSING:\n this.emit(\"start\");\n break;\n case TaskStatus.STREAMING:\n this.emit(\"streaming\");\n break;\n case TaskStatus.COMPLETED:\n this.emit(\"complete\");\n break;\n case TaskStatus.ABORTING:\n this.emit(\"abort\");\n break;\n case TaskStatus.PENDING:\n this.emit(\"reset\");\n break;\n case TaskStatus.FAILED:\n this.emit(\"error\", this.error!);\n break;\n case TaskStatus.DISABLED:\n this.emit(\"disabled\");\n break;\n }\n this.emit(\"status\", this.status);\n }\n\n setPortData(entireDataBlock: any) {\n if (this.sourceTaskPortId === DATAFLOW_ALL_PORTS) {\n this.value = entireDataBlock;\n } else if (this.sourceTaskPortId === DATAFLOW_ERROR_PORT) {\n this.error = entireDataBlock;\n } else {\n this.value = entireDataBlock[this.sourceTaskPortId];\n }\n // The materialised value supersedes the mid-stream peek; clear the slot.\n this.latestSnapshot = undefined;\n }\n\n getPortData(): TaskOutput {\n let result: TaskOutput;\n if (this.targetTaskPortId === DATAFLOW_ALL_PORTS) {\n result = this.value;\n } else if (this.targetTaskPortId === DATAFLOW_ERROR_PORT) {\n result = { [DATAFLOW_ERROR_PORT]: this.error };\n } else {\n result = { [this.targetTaskPortId]: this.value };\n }\n return result;\n }\n\n toJSON(): DataflowJson {\n const base: DataflowJson = {\n sourceTaskId: this.sourceTaskId,\n sourceTaskPortId: this.sourceTaskPortId,\n targetTaskId: this.targetTaskId,\n targetTaskPortId: this.targetTaskPortId,\n };\n if (this._transforms.length > 0) {\n base.transforms = this._transforms.map((s) => ({ id: s.id, params: s.params }));\n }\n return base;\n }\n\n /**\n * Cached result of the last semantic compatibility check.\n * Invalidated by calling {@link invalidateCompatibilityCache}.\n */\n protected _compatibilityCache?: \"static\" | \"runtime\" | \"incompatible\";\n\n /**\n * Transform steps applied to data flowing through this dataflow.\n */\n private _transforms: Array<ITransformStep> = [];\n\n /**\n * Returns the list of transform steps applied to this dataflow.\n */\n getTransforms(): ReadonlyArray<ITransformStep> {\n return this._transforms;\n }\n\n /**\n * Replaces the transform chain with the given steps and invalidates the compatibility cache.\n * Accepts either strict {@link ITransformStep} or steps whose `params` is omitted;\n * omitted `params` is normalised to `undefined`.\n */\n setTransforms(\n steps: ReadonlyArray<{ readonly id: string; readonly params?: Record<string, unknown> }>\n ): void {\n this._transforms = steps.map((s) => ({ id: s.id, params: s.params }));\n this.invalidateCompatibilityCache();\n }\n\n /**\n * Appends a single transform step to the chain and invalidates the compatibility cache.\n * Accepts either strict {@link ITransformStep} or a step whose `params` is omitted;\n * omitted `params` is normalised to `undefined`.\n */\n addTransform(step: { readonly id: string; readonly params?: Record<string, unknown> }): void {\n this._transforms.push({ id: step.id, params: step.params });\n this.invalidateCompatibilityCache();\n }\n\n /**\n * Removes the transform step at the given index and invalidates the compatibility cache.\n */\n removeTransform(index: number): void {\n this._transforms.splice(index, 1);\n this.invalidateCompatibilityCache();\n }\n\n /**\n * Fold the transform chain over `this.value`. On any throw, sets\n * `this.error` and TaskStatus.FAILED, then re-throws so the caller\n * (typically TaskGraphRunner) fails the run. Without the re-throw the\n * runner's status-push step would overwrite the FAILED edge state with\n * the source task's COMPLETED status, silently delivering corrupt data.\n */\n async applyTransforms(registry: ServiceRegistry): Promise<void> {\n if (this._transforms.length === 0) return;\n const defs = registry.get(TRANSFORM_DEFS);\n let cur: unknown = this.value;\n try {\n for (const step of this._transforms) {\n const def = defs.get(step.id);\n if (!def) {\n throw new Error(`Unknown transform: ${step.id}`);\n }\n cur = await def.apply(cur, step.params ?? {});\n }\n this.value = cur;\n } catch (e) {\n const error =\n e instanceof TaskError ? e : new TaskError(e instanceof Error ? e.message : String(e));\n if (!(e instanceof TaskError) && e instanceof Error && e.stack) {\n error.stack = e.stack;\n }\n this.error = error;\n this.setStatus(TaskStatus.FAILED);\n throw e;\n }\n }\n\n /**\n * Invalidates the cached semantic compatibility result so the next call\n * to {@link semanticallyCompatible} recomputes it. Call this when\n * either endpoint's schema changes (e.g., in response to a schemaChange event).\n */\n public invalidateCompatibilityCache(): void {\n this._compatibilityCache = undefined;\n }\n\n semanticallyCompatible(\n graph: TaskGraph,\n dataflow: Dataflow,\n registry?: ServiceRegistry\n ): \"static\" | \"runtime\" | \"incompatible\" {\n const sourceTask = graph.getTask(dataflow.sourceTaskId)!;\n const targetTask = graph.getTask(dataflow.targetTaskId)!;\n\n // Only use the cache when both endpoint tasks have stable (non-dynamic) schemas.\n // Tasks with dynamic schemas may emit `schemaChange` events, which would make\n // a cached result stale. Checking the static `hasDynamicSchemas` flag (defined\n // on Task with a default of `false`) is sufficient because tasks with stable\n // schemas never emit `schemaChange`. Unknown constructors default to no caching.\n const shouldCache =\n !((sourceTask.constructor as typeof Task).hasDynamicSchemas ?? true) &&\n !((targetTask.constructor as typeof Task).hasDynamicSchemas ?? true);\n\n if (shouldCache && this._compatibilityCache !== undefined) {\n return this._compatibilityCache;\n }\n\n const targetSchema = targetTask.inputSchema();\n const sourceSchema = sourceTask.outputSchema();\n\n if (typeof targetSchema === \"boolean\") {\n if (targetSchema === false) {\n return \"incompatible\";\n }\n return \"static\";\n }\n if (typeof sourceSchema === \"boolean\") {\n if (sourceSchema === false) {\n return \"incompatible\";\n }\n return \"runtime\";\n }\n\n let targetSchemaProperty =\n DATAFLOW_ALL_PORTS === dataflow.targetTaskPortId\n ? true // Accepts any schema (equivalent to Type.Any())\n : (targetSchema.properties as any)?.[dataflow.targetTaskPortId];\n // If the specific property doesn't exist but additionalProperties is true,\n // treat it as accepting any schema\n if (targetSchemaProperty === undefined && targetSchema.additionalProperties === true) {\n targetSchemaProperty = true;\n }\n let sourceSchemaProperty =\n DATAFLOW_ALL_PORTS === dataflow.sourceTaskPortId\n ? true // Accepts any schema (equivalent to Type.Any())\n : (sourceSchema.properties as any)?.[dataflow.sourceTaskPortId];\n // If the specific property doesn't exist but additionalProperties is true,\n // treat it as outputting any schema\n if (sourceSchemaProperty === undefined && sourceSchema.additionalProperties === true) {\n sourceSchemaProperty = true;\n }\n\n // Compose source schema through the transform chain before comparing.\n // Resolves transform defs from the same registry used by applyTransforms so\n // that custom TRANSFORM_DEFS overrides are reflected in both places.\n // When the source schema is `true` (accepts any — e.g. a boundary task\n // with `additionalProperties: true`), start the chain from `{}` so\n // transforms can still narrow the effective schema. Without this a chain\n // like `pick → unixToIsoDate` from an InputTask would short-circuit to\n // \"static\" against any target regardless of the transforms' output type.\n let effectiveSourceSchema = sourceSchemaProperty;\n if (this._transforms.length > 0) {\n const defs = registry ? registry.get(TRANSFORM_DEFS) : TransformRegistry.all;\n try {\n let cur: any = effectiveSourceSchema === true ? {} : effectiveSourceSchema;\n for (const step of this._transforms) {\n const def = defs.get(step.id);\n if (!def) {\n // Do not cache missing transform definitions because the registry\n // supports runtime registration and a later call may become compatible.\n return \"incompatible\";\n }\n cur = def.inferOutputSchema(cur, step.params ?? {});\n }\n effectiveSourceSchema = cur;\n } catch {\n if (shouldCache) this._compatibilityCache = \"incompatible\";\n return \"incompatible\";\n }\n }\n\n const result = areSemanticallyCompatible(effectiveSourceSchema, targetSchemaProperty);\n if (shouldCache) {\n this._compatibilityCache = result;\n }\n return result;\n }\n\n // ========================================================================\n // Event handling methods\n // ========================================================================\n\n /**\n * Event emitter for dataflow events\n */\n public get events(): EventEmitter<DataflowEventListeners> {\n if (!this._events) {\n this._events = new EventEmitter<DataflowEventListeners>();\n }\n return this._events;\n }\n protected _events: EventEmitter<DataflowEventListeners> | undefined;\n\n public subscribe<Event extends DataflowEvents>(\n name: Event,\n fn: DataflowEventListener<Event>\n ): () => void {\n return this.events.subscribe(name, fn);\n }\n\n /**\n * Registers an event listener\n */\n public on<Event extends DataflowEvents>(name: Event, fn: DataflowEventListener<Event>): void {\n this.events.on(name, fn);\n }\n\n /**\n * Removes an event listener\n */\n public off<Event extends DataflowEvents>(name: Event, fn: DataflowEventListener<Event>): void {\n this.events.off(name, fn);\n }\n\n /**\n * Registers a one-time event listener\n */\n public once<Event extends DataflowEvents>(name: Event, fn: DataflowEventListener<Event>): void {\n this.events.once(name, fn);\n }\n\n /**\n * Returns a promise that resolves when the specified event is emitted\n */\n public waitOn<Event extends DataflowEvents>(\n name: Event\n ): Promise<DataflowEventParameters<Event>> {\n return this.events.waitOn(name) as Promise<DataflowEventParameters<Event>>;\n }\n\n /**\n * Emits an event\n */\n public emit<Event extends DataflowEvents>(\n name: Event,\n ...args: DataflowEventParameters<Event>\n ): void {\n this._events?.emit(name, ...args);\n }\n}\n\n/**\n * Represents a data flow between two tasks, indicating how one task's output is used as input for another task\n *\n * This is a helper class that parses a data flow id string into a Dataflow object\n *\n * @param dataflow - The data flow string, e.g. \"sourceTaskId[sourceTaskPortId] ==> targetTaskId[targetTaskPortId]\"\n */\nexport class DataflowArrow extends Dataflow {\n constructor(dataflow: DataflowIdType) {\n // Parse the dataflow string using regex\n const pattern =\n /^([a-zA-Z0-9-]+?)\\[([a-zA-Z0-9-]+?)\\] ==> ([a-zA-Z0-9-]+?)\\[([a-zA-Z0-9-]+?)\\]$/;\n const match = dataflow.match(pattern);\n\n if (!match) {\n throw new Error(`Invalid dataflow format: ${dataflow}`);\n }\n\n const [, sourceTaskId, sourceTaskPortId, targetTaskId, targetTaskPortId] = match;\n super(sourceTaskId, sourceTaskPortId, targetTaskId, targetTaskPortId);\n }\n}\n",
|
|
6
6
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { JobError } from \"@workglow/job-queue\";\nimport { BaseError } from \"@workglow/util\";\n\nexport class TaskError extends BaseError {\n static override readonly type: string = \"TaskError\";\n /** The type of the task that produced this error, if available. */\n public taskType?: string;\n /** The ID of the task that produced this error, if available. */\n public taskId?: unknown;\n constructor(message: string) {\n super(message);\n }\n}\n\n/**\n * A task configuration error\n *\n */\nexport class TaskConfigurationError extends TaskError {\n static override readonly type: string = \"TaskConfigurationError\";\n constructor(message: string) {\n super(message);\n }\n}\n\n/**\n * A task workflow error\n */\nexport class WorkflowError extends TaskError {\n static override readonly type: string = \"WorkflowError\";\n constructor(message: string) {\n super(message);\n }\n}\n\n/**\n * A task error that is caused by a task being aborted\n *\n * Examples: task.abort() was called, or some other reason an abort signal was received\n */\nexport class TaskAbortedError extends TaskError {\n static override readonly type: string = \"TaskAbortedError\";\n constructor(message: string = \"Task aborted\") {\n super(message);\n }\n}\n\n/**\n * A task error that is caused by a task exceeding its timeout\n *\n * Examples: task.runConfig.timeout exceeded during execution\n */\nexport class TaskTimeoutError extends TaskAbortedError {\n static override readonly type: string = \"TaskTimeoutError\";\n constructor(timeoutMs?: number) {\n super(timeoutMs ? `Task timed out after ${timeoutMs}ms` : \"Task timed out\");\n }\n}\n\n/**\n * Thrown when graph-level execution exceeds the configured `timeout` in\n * {@link TaskGraphRunConfig}. Distinct from {@link TaskTimeoutError} (which is\n * thrown for individual-task timeouts) so callers can tell whether the timeout\n * was on a single task or on the entire graph run.\n */\nexport class TaskGraphTimeoutError extends TaskTimeoutError {\n static override readonly type: string = \"TaskGraphTimeoutError\";\n constructor(timeoutMs?: number) {\n super(timeoutMs);\n // Override the message set by TaskTimeoutError to make it graph-specific.\n this.message = timeoutMs\n ? `Graph execution timed out after ${timeoutMs}ms`\n : \"Graph execution timed out\";\n }\n}\n\n/**\n * A task error that is caused by a task failing\n *\n * Examples: task.run() threw an error\n */\nexport class TaskFailedError extends TaskError {\n static override readonly type: string = \"TaskFailedError\";\n constructor(message: string = \"Task failed\") {\n super(message);\n }\n}\n\nexport class JobTaskFailedError extends TaskFailedError {\n static override readonly type: string = \"JobTaskFailedError\";\n public jobError: JobError;\n constructor(err: JobError) {\n super(String(err));\n this.jobError = err;\n }\n}\n\n/**\n * A task error that is caused by an error converting JSON to a Task\n */\nexport class TaskJSONError extends TaskError {\n static override readonly type: string = \"TaskJSONError\";\n constructor(message: string = \"Error converting JSON to a Task\") {\n super(message);\n }\n}\n\n/**\n * A task error that is caused by invalid input data\n *\n * Examples: task.run() received invalid input data\n */\nexport class TaskInvalidInputError extends TaskError {\n static override readonly type: string = \"TaskInvalidInputError\";\n constructor(message: string = \"Invalid input data\") {\n super(message);\n }\n}\n\n/**\n * Thrown when required entitlements are denied by the registered enforcer.\n */\nexport class TaskEntitlementError extends TaskError {\n static override readonly type: string = \"TaskEntitlementError\";\n constructor(message: string = \"Required entitlements denied\") {\n super(message);\n }\n}\n\n/**\n * Thrown when toJSON is called on a task whose config contains non-serializable\n * values (e.g. functions). Tasks should override canSerializeConfig() to declare\n * whether they support serialization.\n */\nexport class TaskSerializationError extends TaskError {\n static override readonly type: string = \"TaskSerializationError\";\n constructor(taskType: string) {\n super(\n `Task \"${taskType}\" cannot be serialized: config contains non-serializable values. ` +\n `Use a declarative config alternative or remove function-valued config properties.`\n );\n }\n}\n",
|
|
@@ -53,7 +53,8 @@
|
|
|
53
53
|
"/**\n * @license Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DataPortSchema } from \"@workglow/util/schema\";\nimport type { ITransformDef } from \"../TransformTypes\";\n\ninterface UnixUnit {\n readonly unit: \"s\" | \"ms\";\n}\n\nconst isoSchema: DataPortSchema = { type: \"string\", format: \"date-time\" } as DataPortSchema;\nconst numberSchema: DataPortSchema = { type: \"number\" } as DataPortSchema;\n\nfunction hasDateTimeFormat(schema: DataPortSchema): boolean {\n const s = schema as any;\n return s?.type === \"string\" && s.format === \"date-time\";\n}\n\nexport const unixToIsoDateTransform: ITransformDef<UnixUnit> = {\n id: \"unixToIsoDate\",\n title: \"Unix timestamp → ISO date\",\n category: \"Date\",\n paramsSchema: {\n type: \"object\",\n properties: {\n unit: { type: \"string\", enum: [\"s\", \"ms\"] },\n },\n required: [\"unit\"],\n } as DataPortSchema,\n inferOutputSchema: () => isoSchema,\n apply: (v, { unit }) => {\n const n = Number(v);\n return new Date(unit === \"s\" ? n * 1000 : n).toISOString();\n },\n suggestFromSchemas(source, target) {\n const s = source as any;\n if (s?.type !== \"number\" && s?.type !== \"integer\") return undefined;\n if (!hasDateTimeFormat(target)) return undefined;\n // Without semantic hints we don't know the unit; prefer \"s\" because\n // most unix timestamps in the wild are seconds.\n return { score: 0.85, params: { unit: \"s\" } };\n },\n};\n\nexport const isoDateToUnixTransform: ITransformDef<{}> = {\n id: \"isoDateToUnix\",\n title: \"ISO date → Unix ms\",\n category: \"Date\",\n paramsSchema: undefined,\n inferOutputSchema: () => numberSchema,\n apply: (v) => new Date(String(v)).getTime(),\n suggestFromSchemas(source, target) {\n if (!hasDateTimeFormat(source)) return undefined;\n const t = target as any;\n if (t?.type !== \"number\" && t?.type !== \"integer\") return undefined;\n return { score: 0.9, params: {} };\n },\n};\n",
|
|
54
54
|
"/**\n * @license Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DataPortSchema } from \"@workglow/util/schema\";\nimport type { ITransformDef } from \"../TransformTypes\";\n\nconst stringSchema: DataPortSchema = { type: \"string\" } as DataPortSchema;\nconst booleanSchema: DataPortSchema = { type: \"boolean\" } as DataPortSchema;\n\nexport const numberToStringTransform: ITransformDef<{}> = {\n id: \"numberToString\",\n title: \"Number → String\",\n category: \"Conversion\",\n paramsSchema: undefined,\n inferOutputSchema: () => stringSchema,\n apply: (v) => String(v),\n suggestFromSchemas(source, target) {\n const s = source as any;\n const t = target as any;\n if ((s?.type === \"number\" || s?.type === \"integer\") && t?.type === \"string\") {\n return { score: 0.8, params: {} };\n }\n return undefined;\n },\n};\n\nexport const toBooleanTransform: ITransformDef<{}> = {\n id: \"toBoolean\",\n title: \"To Boolean\",\n category: \"Conversion\",\n paramsSchema: undefined,\n inferOutputSchema: () => booleanSchema,\n apply: (v) => {\n if (typeof v === \"boolean\") return v;\n if (typeof v === \"number\") return v !== 0;\n if (typeof v === \"string\") return v.toLowerCase() === \"true\" || v === \"1\";\n return Boolean(v);\n },\n};\n\nexport const stringifyTransform: ITransformDef<{}> = {\n id: \"stringify\",\n title: \"JSON.stringify\",\n category: \"Conversion\",\n paramsSchema: undefined,\n inferOutputSchema: () => stringSchema,\n apply: (v) => JSON.stringify(v),\n suggestFromSchemas(source, target) {\n const t = target as any;\n return t?.type === \"string\" ? { score: 0.4, params: {} } : undefined;\n },\n};\n\nexport const parseJsonTransform: ITransformDef<{}> = {\n id: \"parseJson\",\n title: \"Parse JSON\",\n category: \"Conversion\",\n paramsSchema: undefined,\n inferOutputSchema: () => ({}) as DataPortSchema,\n apply: (v) => JSON.parse(String(v)),\n};\n",
|
|
55
55
|
"/**\n * @license Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { TransformRegistry } from \"../TransformRegistry\";\nimport { pickTransform } from \"./pick\";\nimport { indexTransform } from \"./index-access\";\nimport { coalesceTransform } from \"./coalesce\";\nimport {\n uppercaseTransform,\n lowercaseTransform,\n truncateTransform,\n substringTransform,\n} from \"./string-casts\";\nimport { unixToIsoDateTransform, isoDateToUnixTransform } from \"./date-conversions\";\nimport {\n numberToStringTransform,\n toBooleanTransform,\n stringifyTransform,\n parseJsonTransform,\n} from \"./scalar-conversions\";\n\nexport {\n pickTransform,\n indexTransform,\n coalesceTransform,\n uppercaseTransform,\n lowercaseTransform,\n truncateTransform,\n substringTransform,\n unixToIsoDateTransform,\n isoDateToUnixTransform,\n numberToStringTransform,\n toBooleanTransform,\n stringifyTransform,\n parseJsonTransform,\n};\n\n/**\n * Registers all MVP built-in transforms. Separate from registerBaseTasks so\n * consumers can opt in independently (tests may want transforms without\n * task registration and vice versa).\n */\nexport function registerBuiltInTransforms(): void {\n const all = [\n pickTransform,\n indexTransform,\n coalesceTransform,\n uppercaseTransform,\n lowercaseTransform,\n truncateTransform,\n substringTransform,\n unixToIsoDateTransform,\n isoDateToUnixTransform,\n numberToStringTransform,\n toBooleanTransform,\n stringifyTransform,\n parseJsonTransform,\n ];\n for (const t of all) TransformRegistry.registerTransform(t);\n}\n",
|
|
56
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n *\n * Pre-built entitlement grant profiles for common runtime environments.\n * The library has no concept of Electron, brands, or deployment targets —\n * only capability profiles expressed as entitlement policies.\n */\n\nimport { createPolicyEnforcer, type IEntitlementEnforcer } from \"./EntitlementEnforcer\";\nimport type { EntitlementPolicy } from \"./EntitlementPolicy\";\nimport type { IEntitlementResolver } from \"./EntitlementResolver\";\nimport type { EntitlementGrant } from \"./TaskEntitlements\";\nimport { Entitlements } from \"./TaskEntitlements\";\n\n// ========================================================================\n// Grant Profiles\n// ========================================================================\n\n/**\n * Browser environment grants.\n * No filesystem access, no code execution, no stdio MCP.\n *\n * Network grants are intentionally narrow: `network:http` + `network:websocket`.\n * The broader `network` grant is NOT issued because its hierarchical cover\n * would silently permit `network:private`, undermining SSRF protection.\n * Callers that legitimately need private/loopback access (e.g. a dev server\n * on localhost) must augment the enforcer with a scoped `network:private`\n * grant — see `workflow-builder/packages/app/src/lib/run-workflow.ts`.\n */\nexport const BROWSER_GRANTS: readonly EntitlementGrant[] = [\n { id: Entitlements.NETWORK_HTTP },\n { id: Entitlements.NETWORK_WEBSOCKET },\n { id: Entitlements.AI },\n { id: Entitlements.MCP_TOOL_CALL },\n { id: Entitlements.MCP_RESOURCE_READ },\n { id: Entitlements.MCP_PROMPT_GET },\n { id: Entitlements.STORAGE },\n { id: Entitlements.CREDENTIAL },\n];\n\n/**\n * Desktop environment grants (e.g., Electron with Node.js main process).\n * Adds filesystem, code execution, stdio MCP, and browser control on top of browser grants.\n */\nexport const DESKTOP_GRANTS: readonly EntitlementGrant[] = [\n ...BROWSER_GRANTS,\n { id: Entitlements.FILESYSTEM },\n { id: Entitlements.CODE_EXECUTION },\n { id: Entitlements.MCP_STDIO },\n { id: Entitlements.BROWSER_CONTROL },\n { id: Entitlements.BROWSER_CONTROL_LOCAL },\n { id: Entitlements.BROWSER_CONTROL_NAVIGATE },\n { id: Entitlements.BROWSER_CONTROL_EVALUATE },\n { id: Entitlements.BROWSER_CONTROL_CREDENTIAL },\n];\n\n/**\n * Server environment grants (e.g., cloud deployment).\n * Same as desktop plus BROWSER_CONTROL_CLOUD since server can proxy to cloud providers.\n */\nexport const SERVER_GRANTS: readonly EntitlementGrant[] = [\n ...DESKTOP_GRANTS,\n { id: Entitlements.BROWSER_CONTROL_CLOUD },\n];\n\n// ========================================================================\n// Policy Factory\n// ========================================================================\n\nexport type EntitlementProfile = \"browser\" | \"desktop\" | \"server\";\n\nconst PROFILE_GRANTS: Record<EntitlementProfile, readonly EntitlementGrant[]> = {\n browser: BROWSER_GRANTS,\n desktop: DESKTOP_GRANTS,\n server: SERVER_GRANTS,\n};\n\n/**\n * Creates an entitlement policy for the given runtime profile.\n * The profile's grants become the policy's grant rules.\n * Deny and ask arrays are empty by default — callers can extend the returned policy.\n */\nexport function createProfilePolicy(profile: EntitlementProfile): EntitlementPolicy {\n return { deny: [], grant: PROFILE_GRANTS[profile], ask: [] };\n}\n\n/**\n * Creates an entitlement enforcer for the given runtime profile.\n * Tasks requiring entitlements not in the profile will be denied.\n *\n * @param profile - The runtime profile to use\n * @param resolver - Optional resolver for handling \"ask\" verdicts\n */\nexport function createProfileEnforcer(\n profile: EntitlementProfile,\n resolver?: IEntitlementResolver\n): IEntitlementEnforcer {\n return createPolicyEnforcer(createProfilePolicy(profile), resolver);\n}\n\n/**\n * Returns the grant list for a given profile.\n * Useful for inspection or combining with additional grants.\n */\nexport function getProfileGrants(profile: EntitlementProfile): readonly EntitlementGrant[] {\n return PROFILE_GRANTS[profile];\n}\n",
|
|
56
|
+
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n *\n * IEntitlementProfile — runtime-environment view of an entitlement system.\n * Extends IEntitlementEnforcer with a single-key request API, change-event\n * subscription, surface introspection, and disposal. Profiles delegate\n * signal observation to a pluggable IEntitlementSignalSource.\n */\n\nimport { createServiceToken } from \"@workglow/util\";\nimport { createPolicyEnforcer } from \"./EntitlementEnforcer\";\nimport type { EntitlementDenial, IEntitlementEnforcer } from \"./EntitlementEnforcer\";\nimport type { EntitlementPolicy } from \"./EntitlementPolicy\";\nimport type { IEntitlementResolver } from \"./EntitlementResolver\";\nimport type { EntitlementGrant, TaskEntitlement } from \"./TaskEntitlements\";\n\n// ========================================================================\n// Signal Source (port)\n// ========================================================================\n\n/**\n * A signal emitted by an external source telling profiles that a permission\n * may have changed.\n *\n * - `revoke`: a previously granted entitlement may now be denied.\n * - `grant`: a previously denied entitlement may now be granted.\n * - `reload`: the underlying policy may have changed in arbitrary ways;\n * profiles should re-evaluate every entitlement they have been queried\n * about.\n */\nexport type EntitlementSignal =\n | { readonly kind: \"revoke\"; readonly entitlement: TaskEntitlement }\n | { readonly kind: \"grant\"; readonly entitlement: TaskEntitlement }\n | { readonly kind: \"reload\" };\n\n/**\n * Pluggable port that produces signals about external permission changes.\n * Built-in profiles default to `STATIC_SIGNAL_SOURCE`. Downstream packages\n * (e.g. workflow-builder Electron) provide implementations that wrap\n * platform events.\n */\nexport interface IEntitlementSignalSource {\n /**\n * Register a listener for signals. The returned function unsubscribes.\n * Implementations must make the unsubscribe idempotent.\n */\n subscribe(listener: (signal: EntitlementSignal) => void): () => void;\n}\n\n/** Frozen no-op signal source. Never emits; subscribe returns a no-op unsub. */\nexport const STATIC_SIGNAL_SOURCE: IEntitlementSignalSource = Object.freeze({\n subscribe(_listener: (signal: EntitlementSignal) => void): () => void {\n return () => {\n // no-op\n };\n },\n});\n\n// ========================================================================\n// Request / Verdict\n// ========================================================================\n\n/**\n * Result of `requestEntitlement(required)`. Discriminated union on `outcome`.\n *\n * Optional entitlements always map to `outcome: \"granted\"` regardless of the\n * underlying policy verdict — matching the rule that optional entitlements\n * are filtered out of `IEntitlementEnforcer.checkAll`.\n *\n * `\"ask\"` policy verdicts are resolved internally via the registered\n * `IEntitlementResolver` before this function returns; callers only ever\n * see `\"granted\"` or `\"denied\"`.\n */\nexport type EntitlementRequestResult =\n | { readonly outcome: \"granted\"; readonly entitlement: TaskEntitlement }\n | { readonly outcome: \"denied\"; readonly denial: EntitlementDenial };\n\n// ========================================================================\n// Change Events\n// ========================================================================\n\n/**\n * Emitted by an `IEntitlementProfile` when a previously-observed entitlement\n * verdict transitions. Profiles only emit events for entitlements whose\n * verdict actually flipped between two queries.\n */\nexport type EntitlementChangeEvent = {\n readonly kind: \"revoked\" | \"granted\";\n readonly entitlement: TaskEntitlement;\n};\n\n// ========================================================================\n// Profile Interface\n// ========================================================================\n\n/**\n * Runtime-environment view of an entitlement system.\n *\n * Extends `IEntitlementEnforcer` with:\n * - `name`: free-form identifier for diagnostics.\n * - `surface()`: maximum set of entitlements this profile may grant.\n * - `requestEntitlement()`: single-key request returning a discriminated verdict.\n * - `subscribe()`: observe change events from the bound signal source.\n * - `dispose()`: idempotent teardown including signal-source unsubscribe.\n */\nexport interface IEntitlementProfile extends IEntitlementEnforcer {\n /** Free-form identifier (e.g. \"browser\", \"desktop\", \"server\"). */\n readonly name: string;\n /**\n * The maximum set of grants this profile may issue.\n *\n * Implementations MAY return a live view of the underlying policy's\n * grant array — callers must not mutate the returned array. Treat the\n * return value as `Readonly<readonly EntitlementGrant[]>` even though\n * `Object.freeze` is not guaranteed.\n */\n surface(): readonly EntitlementGrant[];\n /** Single-key request. See `EntitlementRequestResult`. */\n requestEntitlement(required: TaskEntitlement): Promise<EntitlementRequestResult>;\n /** Subscribe to change events. The returned unsubscribe must be idempotent. */\n subscribe(listener: (event: EntitlementChangeEvent) => void): () => void;\n /** Idempotent teardown. */\n dispose(): Promise<void>;\n}\n\n// ========================================================================\n// Profile Constructor\n// ========================================================================\n\nexport interface CreateProfileOptions {\n readonly resolver?: IEntitlementResolver;\n /** Defaults to `STATIC_SIGNAL_SOURCE`. */\n readonly signalSource?: IEntitlementSignalSource;\n}\n\n/**\n * Build an `IEntitlementProfile` from a policy.\n *\n * Wraps `createPolicyEnforcer` and adds:\n * - `surface()` returning the policy's grants\n * - `requestEntitlement()` reusing `checkAll` for a single entitlement\n * - signal-source subscription with verdict-flip change events\n * - idempotent `dispose()`\n *\n * The \"previously queried\" set used to scope `reload` events is private to\n * the profile and cleared on `dispose`.\n */\nexport function createPolicyProfile(\n name: string,\n policy: EntitlementPolicy,\n options: CreateProfileOptions = {}\n): IEntitlementProfile {\n const enforcer = createPolicyEnforcer(policy, options.resolver);\n const signalSource = options.signalSource ?? STATIC_SIGNAL_SOURCE;\n const listeners = new Set<(event: EntitlementChangeEvent) => void>();\n /**\n * Map from entitlement-id|resources-key → last observed outcome.\n * Used to compute verdict flips for change-event emission and to scope\n * `reload`-triggered re-evaluation.\n */\n const lastOutcome = new Map<string, \"granted\" | \"denied\">();\n /** Reference to the original entitlement object so reload can re-query. */\n const lastEntitlement = new Map<string, TaskEntitlement>();\n let disposed = false;\n\n function key(e: TaskEntitlement): string {\n // JSON.stringify with a sentinel for `undefined` so that we don't conflate\n // `resources: undefined` (broad) with `resources: []` (narrowly empty),\n // and so that resource strings containing commas don't collide.\n const resources = e.resources === undefined ? null : [...e.resources].sort();\n return `${e.id}|${JSON.stringify(resources)}`;\n }\n\n async function evaluate(e: TaskEntitlement): Promise<\"granted\" | \"denied\"> {\n if (e.optional) return \"granted\";\n const denials = await enforcer.checkAll({ entitlements: [e] });\n return denials.length === 0 ? \"granted\" : \"denied\";\n }\n\n async function emitFlipFor(e: TaskEntitlement): Promise<void> {\n const k = key(e);\n const previous = lastOutcome.get(k);\n if (previous === undefined) return; // never queried; nothing to flip\n const current = await evaluate(e);\n if (disposed) return; // dispose() was called while we were awaiting evaluate\n if (current === previous) return;\n lastOutcome.set(k, current);\n const event: EntitlementChangeEvent = {\n kind: current === \"granted\" ? \"granted\" : \"revoked\",\n entitlement: e,\n };\n for (const l of listeners) {\n try {\n l(event);\n } catch (err) {\n // L2 fix: isolate listener failures so one bad listener doesn't\n // prevent later listeners from receiving the event.\n // eslint-disable-next-line no-console\n console.error(`[EntitlementProfile:${name}] listener threw:`, err);\n }\n }\n }\n\n function safeEmitFlipFor(e: TaskEntitlement): void {\n // Signal callbacks run synchronously from the source, so we can't await.\n // Surface evaluation errors via console.error rather than letting them\n // become unhandled promise rejections that may crash the host.\n emitFlipFor(e).catch((err) => {\n // eslint-disable-next-line no-console\n console.error(`[EntitlementProfile:${name}] error evaluating signal:`, err);\n });\n }\n\n const sourceUnsub = signalSource.subscribe((signal) => {\n if (disposed) return;\n if (signal.kind === \"reload\") {\n // Re-evaluate every previously-queried entitlement.\n for (const [, e] of lastEntitlement) {\n safeEmitFlipFor(e);\n }\n } else {\n // revoke or grant: re-evaluate the targeted entitlement.\n safeEmitFlipFor(signal.entitlement);\n }\n });\n\n const profile: IEntitlementProfile = {\n name,\n checkAll: enforcer.checkAll.bind(enforcer),\n checkTask: enforcer.checkTask.bind(enforcer),\n surface: () => policy.grant,\n async requestEntitlement(required) {\n if (required.optional) {\n return { outcome: \"granted\", entitlement: required };\n }\n const denials = await enforcer.checkAll({ entitlements: [required] });\n const k = key(required);\n lastEntitlement.set(k, required);\n if (denials.length === 0) {\n lastOutcome.set(k, \"granted\");\n return { outcome: \"granted\", entitlement: required };\n }\n lastOutcome.set(k, \"denied\");\n return { outcome: \"denied\", denial: denials[0]! };\n },\n subscribe(listener) {\n listeners.add(listener);\n let unsubbed = false;\n return () => {\n if (unsubbed) return;\n unsubbed = true;\n listeners.delete(listener);\n };\n },\n async dispose() {\n if (disposed) return;\n disposed = true;\n sourceUnsub();\n listeners.clear();\n lastOutcome.clear();\n lastEntitlement.clear();\n },\n };\n return profile;\n}\n\n// ========================================================================\n// Service Token\n// ========================================================================\n\n/**\n * Service token for registering an `IEntitlementProfile`.\n *\n * Distinct from `ENTITLEMENT_ENFORCER`: a profile exposes a richer surface\n * (subscribe + dispose + surface). `ServiceRegistry` resolves by token\n * identity, so a registration under `ENTITLEMENT_PROFILE` is NOT\n * automatically visible to consumers resolving `ENTITLEMENT_ENFORCER`.\n *\n * Because `IEntitlementProfile extends IEntitlementEnforcer`, the same\n * profile instance can be registered under both tokens if both consumer\n * styles need to resolve it.\n */\nexport const ENTITLEMENT_PROFILE = createServiceToken<IEntitlementProfile>(\n \"workglow.entitlementProfile\"\n);\n",
|
|
57
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n *\n * Pre-built entitlement grant profiles for common runtime environments.\n * The library has no concept of Electron, brands, or deployment targets —\n * only capability profiles expressed as entitlement policies.\n */\n\nimport {\n createPolicyProfile,\n type CreateProfileOptions,\n type IEntitlementProfile,\n} from \"./EntitlementProfile\";\nimport type { EntitlementPolicy } from \"./EntitlementPolicy\";\nimport type { EntitlementGrant } from \"./TaskEntitlements\";\nimport { Entitlements } from \"./TaskEntitlements\";\n\n// ========================================================================\n// Grant Profiles\n// ========================================================================\n\n/**\n * Browser environment grants.\n * No filesystem access, no code execution, no stdio MCP.\n *\n * Network grants are intentionally narrow: `network:http` + `network:websocket`.\n * The broader `network` grant is NOT issued because its hierarchical cover\n * would silently permit `network:private`, undermining SSRF protection.\n * Callers that legitimately need private/loopback access (e.g. a dev server\n * on localhost) must augment the enforcer with a scoped `network:private`\n * grant — see `workflow-builder/packages/app/src/lib/run-workflow.ts`.\n */\nexport const BROWSER_GRANTS: readonly EntitlementGrant[] = [\n { id: Entitlements.NETWORK_HTTP },\n { id: Entitlements.NETWORK_WEBSOCKET },\n { id: Entitlements.AI },\n { id: Entitlements.MCP_TOOL_CALL },\n { id: Entitlements.MCP_RESOURCE_READ },\n { id: Entitlements.MCP_PROMPT_GET },\n { id: Entitlements.STORAGE },\n { id: Entitlements.CREDENTIAL },\n];\n\n/**\n * Desktop environment grants (e.g., Electron with Node.js main process).\n * Adds filesystem, code execution, stdio MCP, and browser control on top of browser grants.\n */\nexport const DESKTOP_GRANTS: readonly EntitlementGrant[] = [\n ...BROWSER_GRANTS,\n { id: Entitlements.FILESYSTEM },\n { id: Entitlements.CODE_EXECUTION },\n { id: Entitlements.MCP_STDIO },\n { id: Entitlements.BROWSER_CONTROL },\n { id: Entitlements.BROWSER_CONTROL_LOCAL },\n { id: Entitlements.BROWSER_CONTROL_NAVIGATE },\n { id: Entitlements.BROWSER_CONTROL_EVALUATE },\n { id: Entitlements.BROWSER_CONTROL_CREDENTIAL },\n];\n\n/**\n * Server environment grants (e.g., cloud deployment).\n * Same as desktop plus BROWSER_CONTROL_CLOUD since server can proxy to cloud providers.\n */\nexport const SERVER_GRANTS: readonly EntitlementGrant[] = [\n ...DESKTOP_GRANTS,\n { id: Entitlements.BROWSER_CONTROL_CLOUD },\n];\n\n// ========================================================================\n// Policy Factory\n// ========================================================================\n\nexport type EntitlementProfile = \"browser\" | \"desktop\" | \"server\";\n\nconst PROFILE_GRANTS: Record<EntitlementProfile, readonly EntitlementGrant[]> = {\n browser: BROWSER_GRANTS,\n desktop: DESKTOP_GRANTS,\n server: SERVER_GRANTS,\n};\n\n/**\n * Creates an entitlement policy for the given runtime profile.\n * The profile's grants become the policy's grant rules.\n * Deny and ask arrays are empty by default — callers can extend the returned policy.\n */\nexport function createProfilePolicy(profile: EntitlementProfile): EntitlementPolicy {\n return { deny: [], grant: PROFILE_GRANTS[profile], ask: [] };\n}\n\n/**\n * Creates an entitlement profile for the given runtime profile.\n * The profile's grants become the policy's grant rules.\n * Deny and ask arrays are empty by default — callers can extend the returned profile.\n *\n * @param profile - The runtime profile to use\n * @param options - Optional resolver (for \"ask\" verdicts) and signal source\n */\nexport function createProfileEnforcer(\n profile: EntitlementProfile,\n options?: CreateProfileOptions\n): IEntitlementProfile {\n return createPolicyProfile(profile, createProfilePolicy(profile), options);\n}\n\n/**\n * Returns the grant list for a given profile.\n * Useful for inspection or combining with additional grants.\n */\nexport function getProfileGrants(profile: EntitlementProfile): readonly EntitlementGrant[] {\n return PROFILE_GRANTS[profile];\n}\n",
|
|
57
58
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { FallbackTask, FallbackTaskConfig } from \"./FallbackTask\";\nimport { GraphAsTaskRunner } from \"./GraphAsTaskRunner\";\nimport type { ITask } from \"./ITask\";\nimport { TaskAbortedError, TaskFailedError, TaskTimeoutError } from \"./TaskError\";\nimport type { TaskRunContext } from \"./TaskRunContext\";\nimport { TaskStatus } from \"./TaskTypes\";\nimport type { TaskInput, TaskOutput } from \"./TaskTypes\";\n\n/**\n * Runner for FallbackTask that executes alternatives sequentially until one succeeds.\n *\n * In **task mode**, each task in the subgraph is tried independently.\n * In **data mode**, the entire subgraph is re-run with different input overrides.\n */\nexport class FallbackTaskRunner<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends FallbackTaskConfig<Input> = FallbackTaskConfig<Input>,\n> extends GraphAsTaskRunner<Input, Output, Config> {\n declare task: FallbackTask<Input, Output, Config>;\n\n /**\n * Override executeTask to implement sequential fallback logic.\n */\n protected override async executeTask(\n input: Input,\n _ctx: TaskRunContext\n ): Promise<Output | undefined> {\n if (this.task.fallbackMode === \"data\") {\n return this.executeDataFallback(input);\n }\n return this.executeTaskFallback(input);\n }\n\n /**\n * For FallbackTask, preview runs use the task's preview hook only,\n * bypassing GraphAsTaskRunner's child-merging logic.\n */\n public override async executeTaskPreview(\n input: Input,\n _ctx: TaskRunContext\n ): Promise<Output | undefined> {\n return this.task.executePreview?.(input, { own: this.own });\n }\n\n // ========================================================================\n // Task Mode: Try each task in the subgraph as an independent alternative\n // ========================================================================\n\n /**\n * Tries each task in the subgraph sequentially. Returns the first\n * successful result. If all fail, throws with collected errors.\n */\n private async executeTaskFallback(input: Input): Promise<Output | undefined> {\n const tasks = this.task.subGraph.getTasks();\n if (tasks.length === 0) {\n throw new TaskFailedError(\"FallbackTask has no alternatives to try\");\n }\n\n const errors: { task: ITask; error: Error }[] = [];\n const totalAttempts = tasks.length;\n\n for (let i = 0; i < tasks.length; i++) {\n if (this.currentCtx?.abortController.signal.aborted) {\n throw new TaskAbortedError(\"Fallback aborted\");\n }\n\n const alternativeTask = tasks[i];\n const attemptNumber = i + 1;\n\n await this.handleProgress(\n Math.round(((i + 0.5) / totalAttempts) * 100),\n `Trying alternative ${attemptNumber}/${totalAttempts}: ${alternativeTask.type}`\n );\n\n try {\n // Reset the task to PENDING so it can be run\n this.resetTask(alternativeTask);\n\n // Run the individual task with the parent's input\n const result = await alternativeTask.run(input);\n\n await this.handleProgress(\n 100,\n `Alternative ${attemptNumber}/${totalAttempts} succeeded: ${alternativeTask.type}`\n );\n\n return result as Output;\n } catch (error) {\n // Aborts (non-timeout) are not retryable — propagate immediately\n if (error instanceof TaskAbortedError && !(error instanceof TaskTimeoutError)) {\n throw error;\n }\n errors.push({ task: alternativeTask, error: error as Error });\n // Continue to next alternative\n }\n }\n\n // All alternatives failed\n throw this.buildAggregateError(errors, \"task\");\n }\n\n // ========================================================================\n // Data Mode: Run the template workflow with different input overrides\n // ========================================================================\n\n /**\n * Runs the subgraph workflow multiple times, each time with a different\n * set of input overrides merged from `config.alternatives`.\n */\n private async executeDataFallback(input: Input): Promise<Output | undefined> {\n const alternatives = this.task.alternatives;\n if (alternatives.length === 0) {\n throw new TaskFailedError(\"FallbackTask has no data alternatives to try\");\n }\n\n const errors: { alternative: Record<string, unknown>; error: Error }[] = [];\n const totalAttempts = alternatives.length;\n\n /**\n * Blend the subgraph's aggregate `graph_progress` with the outer attempt index so\n * nested streaming tasks visibly advance the bar between attempt boundaries. This\n * mirrors the pattern used by {@link IteratorTaskRunner.executeSubgraphIteration}\n * and {@link WhileTask.execute}. Because each attempt resets the subgraph and\n * `graph_progress` starts at 0, the blended value is monotonic across attempts\n * as `currentAttemptIndex` advances.\n */\n let currentAttemptIndex = 0;\n const onSubgraphProgress = (innerProgress: number | undefined, message?: string): void => {\n if (innerProgress === undefined) return;\n const blended = Math.round(\n ((currentAttemptIndex + innerProgress / 100) / totalAttempts) * 100\n );\n void this.handleProgress(\n blended,\n message ?? `Data alternative ${currentAttemptIndex + 1}/${totalAttempts}`\n );\n };\n const unsubscribeSubgraphProgress = this.task.subGraph.subscribe(\n \"graph_progress\",\n onSubgraphProgress\n );\n\n try {\n for (let i = 0; i < alternatives.length; i++) {\n if (this.currentCtx?.abortController.signal.aborted) {\n throw new TaskAbortedError(\"Fallback aborted\");\n }\n\n currentAttemptIndex = i;\n const alternative = alternatives[i];\n const attemptNumber = i + 1;\n\n await this.handleProgress(\n Math.round(((i + 0.5) / totalAttempts) * 100),\n `Trying data alternative ${attemptNumber}/${totalAttempts}`\n );\n\n try {\n // Reset all tasks in the subgraph to PENDING\n this.resetSubgraph();\n\n // Merge the alternative's data with the original input\n const mergedInput = { ...input, ...alternative } as Input;\n\n // Run the subgraph with merged input\n const results = await this.task.subGraph.run<Output>(mergedInput, {\n parentSignal: this.currentCtx?.abortController.signal,\n outputCache: this.outputCache,\n registry: this.registry,\n });\n\n const mergedOutput = this.task.subGraph.mergeExecuteOutputsToRunOutput(\n results,\n this.task.compoundMerge\n ) as Output;\n\n await this.handleProgress(\n 100,\n `Data alternative ${attemptNumber}/${totalAttempts} succeeded`\n );\n\n return mergedOutput as Output;\n } catch (error) {\n // Aborts (non-timeout) are not retryable — propagate immediately\n if (error instanceof TaskAbortedError && !(error instanceof TaskTimeoutError)) {\n throw error;\n }\n errors.push({ alternative, error: error as Error });\n // Continue to next alternative\n }\n }\n } finally {\n unsubscribeSubgraphProgress();\n }\n\n // All alternatives failed\n throw this.buildAggregateError(errors, \"data\");\n }\n\n // ========================================================================\n // Helpers\n // ========================================================================\n\n /**\n * Resets a single task to PENDING status so it can be re-run.\n */\n private resetTask(task: ITask): void {\n task.status = TaskStatus.PENDING;\n task.progress = 0;\n task.error = undefined;\n task.completedAt = undefined;\n task.startedAt = undefined;\n task.resetInputData();\n }\n\n /**\n * Resets all tasks and dataflows in the subgraph for a fresh run.\n */\n private resetSubgraph(): void {\n for (const task of this.task.subGraph.getTasks()) {\n this.resetTask(task);\n }\n for (const dataflow of this.task.subGraph.getDataflows()) {\n dataflow.reset();\n }\n }\n\n /**\n * Builds a descriptive error from all collected failures.\n */\n private buildAggregateError(\n errors: { error: Error; [key: string]: unknown }[],\n mode: \"task\" | \"data\"\n ): TaskFailedError {\n const label = mode === \"task\" ? \"alternative\" : \"data alternative\";\n const details = errors\n .map((e, i) => {\n const prefix = e.error instanceof TaskTimeoutError ? \"[timeout] \" : \"\";\n return ` ${label} ${i + 1}: ${prefix}${e.error.message}`;\n })\n .join(\"\\n\");\n return new TaskFailedError(`All ${errors.length} ${label}s failed:\\n${details}`);\n }\n}\n",
|
|
58
59
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DataPortSchema } from \"@workglow/util/schema\";\nimport { Workflow } from \"../task-graph/Workflow\";\nimport { CreateEndLoopWorkflow, CreateLoopWorkflow } from \"../task-graph/WorkflowFactories\";\nimport { GraphAsTask, graphAsTaskConfigSchema } from \"./GraphAsTask\";\nimport type { GraphAsTaskConfig } from \"./GraphAsTask\";\nimport { FallbackTaskRunner } from \"./FallbackTaskRunner\";\nimport type { TaskInput, TaskOutput, TaskTypeName } from \"./TaskTypes\";\n\n// ============================================================================\n// Types and Interfaces\n// ============================================================================\n\n/**\n * Execution mode for the fallback task.\n *\n * - `\"task\"`: Each task in the subgraph is an independent alternative.\n * They are tried sequentially until one succeeds.\n *\n * - `\"data\"`: The subgraph contains a template workflow that is executed\n * multiple times with different input overrides from the `alternatives` array.\n */\nexport type FallbackMode = \"task\" | \"data\";\n\nexport const fallbackTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...graphAsTaskConfigSchema[\"properties\"],\n fallbackMode: { type: \"string\", enum: [\"task\", \"data\"] },\n alternatives: { type: \"array\", items: { type: \"object\", additionalProperties: true } },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\n/**\n * Configuration type for FallbackTask.\n * Extends GraphAsTaskConfig with fallback-specific options.\n */\nexport type FallbackTaskConfig<Input extends TaskInput = TaskInput> = GraphAsTaskConfig<Input> & {\n /**\n * The fallback execution mode.\n * - `\"task\"`: Try each task in the subgraph as an alternative.\n * - `\"data\"`: Try the template workflow with each set of input overrides.\n * @default \"task\"\n */\n readonly fallbackMode?: FallbackMode;\n\n /**\n * Array of input overrides for data mode.\n * Each entry is merged with the task input before running the template.\n * Only used when `fallbackMode` is `\"data\"`.\n *\n * @example\n * ```typescript\n * alternatives: [\n * { model: \"openai:gpt-4\" },\n * { model: \"anthropic:claude-sonnet-4-20250514\" },\n * { model: \"onnx:Xenova/LaMini-Flan-T5-783M:q8\" },\n * ]\n * ```\n */\n readonly alternatives?: Record<string, unknown>[];\n};\n\n// ============================================================================\n// FallbackTask Class\n// ============================================================================\n\n/**\n * A task that tries multiple alternatives and returns the first successful result.\n *\n * FallbackTask provides resilient execution by automatically falling back to\n * alternative strategies when one fails. This is essential for production AI\n * workflows where provider availability is unpredictable.\n *\n * ## Execution Modes\n *\n * ### Task Mode (`fallbackMode: \"task\"`)\n * Each task added to the subgraph is an independent alternative. They are\n * tried sequentially in insertion order. The first successful result is\n * returned and remaining alternatives are skipped.\n *\n * ```typescript\n * // Via Workflow API:\n * workflow\n * .fallback()\n * .notifySlack({ channel: \"#alerts\", message: \"Hello\" })\n * .notifyEmail({ to: \"admin@example.com\", subject: \"Alert\" })\n * .notifySms({ phone: \"+1234567890\", message: \"Alert\" })\n * .endFallback();\n * ```\n *\n * ### Data Mode (`fallbackMode: \"data\"`)\n * The subgraph contains a template workflow that is executed multiple times,\n * each time with different input data merged from the `alternatives` array.\n *\n * ```typescript\n * // Via Workflow API:\n * workflow\n * .fallbackWith([\n * { model: \"openai:gpt-4\" },\n * { model: \"anthropic:claude-sonnet-4-20250514\" },\n * { model: \"onnx:Xenova/LaMini-Flan-T5-783M:q8\" },\n * ])\n * .textGeneration({ prompt: \"Hello\" })\n * .endFallbackWith();\n * ```\n *\n * ## Error Handling\n *\n * If all alternatives fail, a `TaskFailedError` is thrown with a message\n * that includes all individual error messages. Each attempt's error is\n * collected and reported for debugging.\n *\n * ## Output\n *\n * The output is the result from whichever alternative succeeded first.\n * The output schema matches the inner tasks' output schema.\n */\nexport class FallbackTask<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends FallbackTaskConfig<Input> = FallbackTaskConfig<Input>,\n> extends GraphAsTask<Input, Output, Config> {\n // ========================================================================\n // Static properties\n // ========================================================================\n\n public static override type: TaskTypeName = \"FallbackTask\";\n public static override category: string = \"Flow Control\";\n public static override title: string = \"Fallback\";\n public static override description: string = \"Try alternatives until one succeeds\";\n\n /** FallbackTask has dynamic schemas based on the subgraph structure. */\n public static override hasDynamicSchemas: boolean = true;\n\n public static override configSchema(): DataPortSchema {\n return fallbackTaskConfigSchema;\n }\n\n // ========================================================================\n // TaskRunner Override\n // ========================================================================\n\n declare _runner: FallbackTaskRunner<Input, Output, Config>;\n\n override get runner(): FallbackTaskRunner<Input, Output, Config> {\n if (!this._runner) {\n this._runner = new FallbackTaskRunner<Input, Output, Config>(this);\n }\n return this._runner;\n }\n\n // ========================================================================\n // Config accessors\n // ========================================================================\n\n public get fallbackMode(): FallbackMode {\n return this.config?.fallbackMode ?? \"task\";\n }\n\n public get alternatives(): Record<string, unknown>[] {\n return this.config?.alternatives ?? [];\n }\n\n // ========================================================================\n // Schema Methods\n // ========================================================================\n\n /**\n * In task mode, input schema is the union of all alternative tasks' inputs.\n * In data mode, input schema comes from the template workflow's starting nodes.\n */\n public override inputSchema(): DataPortSchema {\n if (!this.hasChildren()) {\n return (this.constructor as typeof FallbackTask).inputSchema();\n }\n\n if (this.fallbackMode === \"data\") {\n // Data mode: use the base GraphAsTask logic (union of starting node inputs)\n return super.inputSchema();\n }\n\n // Task mode: union of all tasks' input schemas (they are independent alternatives)\n const properties: Record<string, unknown> = {};\n const tasks = this.subGraph.getTasks();\n\n for (const task of tasks) {\n const taskInputSchema = task.inputSchema();\n if (typeof taskInputSchema === \"boolean\") continue;\n const taskProperties = taskInputSchema.properties || {};\n\n for (const [inputName, inputProp] of Object.entries(taskProperties)) {\n if (!properties[inputName]) {\n properties[inputName] = inputProp;\n }\n }\n }\n\n return {\n type: \"object\",\n properties,\n additionalProperties: true,\n } as DataPortSchema;\n }\n\n /**\n * Output schema is derived from the first task in the subgraph.\n * All alternatives should produce compatible output.\n */\n public override outputSchema(): DataPortSchema {\n if (!this.hasChildren()) {\n return (this.constructor as typeof FallbackTask).outputSchema();\n }\n\n const tasks = this.subGraph.getTasks();\n if (tasks.length === 0) {\n return { type: \"object\", properties: {}, additionalProperties: false } as DataPortSchema;\n }\n\n if (this.fallbackMode === \"task\") {\n // Task mode: use the first task's output schema (all alternatives should be compatible)\n const firstTask = tasks[0];\n return firstTask.outputSchema();\n }\n\n // Data mode: use the ending nodes' output schema via base class logic\n return super.outputSchema();\n }\n\n // ========================================================================\n // Serialization\n // ========================================================================\n\n public override toJSON() {\n const json = super.toJSON();\n return {\n ...json,\n config: {\n ...(\"config\" in json ? json.config : {}),\n fallbackMode: this.fallbackMode,\n ...(this.alternatives.length > 0 ? { alternatives: this.alternatives } : {}),\n },\n };\n }\n}\n\n// ============================================================================\n// Workflow Prototype Extensions\n// ============================================================================\n\ndeclare module \"../task-graph/Workflow\" {\n interface Workflow {\n /**\n * Starts a task-mode fallback block. Each task added inside the block\n * is an independent alternative tried sequentially until one succeeds.\n * Use `.endFallback()` to close the block and return to the parent workflow.\n */\n fallback: CreateLoopWorkflow<TaskInput, TaskOutput, FallbackTaskConfig<TaskInput>>;\n\n /**\n * Ends the task-mode fallback block and returns to the parent workflow.\n */\n endFallback(): Workflow;\n\n /**\n * Starts a data-mode fallback block. The tasks added inside the block\n * form a template workflow that is re-run with each set of input overrides\n * from `alternatives`. Use `.endFallbackWith()` to close the block.\n *\n * @param alternatives - Array of input override objects to try sequentially\n */\n fallbackWith(alternatives: Record<string, unknown>[]): Workflow;\n\n /**\n * Ends the data-mode fallback block and returns to the parent workflow.\n */\n endFallbackWith(): Workflow;\n }\n}\n\nqueueMicrotask(() => {\n Workflow.prototype.fallback = function (this: Workflow): Workflow {\n return this.addLoopTask(FallbackTask, { fallbackMode: \"task\" });\n };\n Workflow.prototype.endFallback = CreateEndLoopWorkflow(\"endFallback\");\n\n Workflow.prototype.fallbackWith = function (\n this: Workflow,\n alternatives: Record<string, unknown>[]\n ): Workflow {\n return this.addLoopTask(FallbackTask, {\n fallbackMode: \"data\",\n alternatives,\n });\n };\n Workflow.prototype.endFallbackWith = CreateEndLoopWorkflow(\"endFallbackWith\");\n});\n",
|
|
59
60
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DataPortSchema } from \"@workglow/util/schema\";\nimport type { ServiceRegistry } from \"@workglow/util\";\nimport { getInputCompactors } from \"@workglow/util\";\nimport { getSchemaFormat, getFormatPrefix, getObjectSchema } from \"./InputResolver\";\n\n/**\n * Configuration for the input compactor\n */\nexport interface InputCompactorConfig {\n readonly registry: ServiceRegistry;\n}\n\n/**\n * Checks if a schema allows a string variant, recursively checking\n * through oneOf/anyOf nesting (e.g., TypeSingleOrArray(TypeModel(...))).\n */\nfunction schemaAllowsString(schema: unknown, visited: WeakSet<object> = new WeakSet()): boolean {\n if (typeof schema !== \"object\" || schema === null) return false;\n if (visited.has(schema)) return false;\n visited.add(schema);\n\n const s = schema as Record<string, unknown>;\n\n if (s.type === \"string\") return true;\n\n const variants = (s.oneOf ?? s.anyOf) as unknown[] | undefined;\n if (Array.isArray(variants)) {\n for (const variant of variants) {\n if (schemaAllowsString(variant, visited)) return true;\n }\n }\n\n const allOf = s.allOf as unknown[] | undefined;\n if (Array.isArray(allOf)) {\n for (const sub of allOf) {\n if (schemaAllowsString(sub, visited)) return true;\n }\n }\n\n return false;\n}\n\n/**\n * Compacts resolved inputs by converting instances back to their string IDs.\n * This is the reverse of `resolveSchemaInputs()` — objects with registered\n * compactors are replaced with their string identifier when the schema\n * allows a string variant (oneOf/anyOf with type: \"string\").\n *\n * @param input The task input object with resolved values\n * @param schema The task's input/config schema\n * @param config Configuration including the service registry\n * @returns The input with compacted values (objects replaced with string IDs)\n *\n * @example\n * ```typescript\n * // Compact a resolved model config back to its ID\n * const compacted = await compactSchemaInputs(\n * { model: { model_id: \"gpt-4\", provider: \"openai\", ... } },\n * taskSchema,\n * { registry: globalServiceRegistry }\n * );\n * // compacted.model === \"gpt-4\"\n * ```\n */\nexport async function compactSchemaInputs<T extends Record<string, unknown>>(\n input: T,\n schema: DataPortSchema,\n config: InputCompactorConfig,\n visited: Set<object> = new Set()\n): Promise<T> {\n if (typeof schema === \"boolean\") return input;\n\n const properties = schema.properties;\n if (!properties || typeof properties !== \"object\") return input;\n\n const compactors = getInputCompactors();\n const compacted: Record<string, unknown> = { ...input };\n\n for (const [key, propSchema] of Object.entries(properties)) {\n let value = compacted[key];\n\n const format = getSchemaFormat(propSchema);\n if (format) {\n let compactor = compactors.get(format);\n if (!compactor) {\n const prefix = getFormatPrefix(format);\n compactor = compactors.get(prefix);\n }\n\n if (compactor) {\n // Handle object values: attempt to compact to string ID\n // Only compact if the schema allows a string variant (oneOf/anyOf with type: \"string\")\n if (\n value !== null &&\n value !== undefined &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n schemaAllowsString(propSchema)\n ) {\n const id = await compactor(value, format, config.registry);\n if (id !== undefined) {\n compacted[key] = id;\n continue; // Replaced with string — skip recursion\n }\n }\n // Handle arrays: compact object elements to strings where possible\n else if (Array.isArray(value)) {\n compacted[key] = await Promise.all(\n value.map(async (item) => {\n if (\n item !== null &&\n item !== undefined &&\n typeof item === \"object\" &&\n !Array.isArray(item)\n ) {\n const id = await compactor(item, format, config.registry);\n return id !== undefined ? id : item;\n }\n return item;\n })\n );\n continue;\n }\n // String values are already compact — pass through\n }\n }\n\n // Recurse into object values that have nested properties in schema\n if (\n value !== null &&\n value !== undefined &&\n typeof value === \"object\" &&\n !Array.isArray(value)\n ) {\n const objectSchema = getObjectSchema(propSchema);\n if (objectSchema && !visited.has(objectSchema)) {\n visited.add(objectSchema);\n try {\n compacted[key] = await compactSchemaInputs(\n value as Record<string, unknown>,\n objectSchema as DataPortSchema,\n config,\n visited\n );\n } finally {\n visited.delete(objectSchema);\n }\n }\n }\n }\n\n return compacted as T;\n}\n",
|
|
@@ -62,19 +63,19 @@
|
|
|
62
63
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { GraphAsTaskRunner } from \"./GraphAsTaskRunner\";\nimport type { TaskRunContext } from \"./TaskRunContext\";\nimport type { TaskInput, TaskOutput } from \"./TaskTypes\";\nimport type { WhileTask, WhileTaskConfig } from \"./WhileTask\";\n\n/**\n * Runner for WhileTask that delegates to the task's execute() method\n * instead of directly running the subgraph once (which is what\n * GraphAsTaskRunner does by default).\n *\n * This follows the same pattern as IteratorTaskRunner.\n */\nexport class WhileTaskRunner<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends WhileTaskConfig<Input, Output> = WhileTaskConfig<Input, Output>,\n> extends GraphAsTaskRunner<Input, Output, Config> {\n declare task: WhileTask<Input, Output, Config>;\n\n /**\n * Override executeTask to call the task's execute() method which\n * contains the while-loop logic, rather than the default\n * GraphAsTaskRunner behavior of running the subgraph once.\n */\n protected override async executeTask(\n input: Input,\n ctx: TaskRunContext\n ): Promise<Output | undefined> {\n const result = await this.task.execute(input, {\n signal: ctx.abortController.signal,\n updateProgress: this.handleProgress.bind(this),\n own: this.own,\n registry: this.registry,\n });\n\n return result;\n }\n\n /**\n * For WhileTask, preview runs use the task's preview hook only.\n */\n public override async executeTaskPreview(\n input: Input,\n _ctx: TaskRunContext\n ): Promise<Output | undefined> {\n return this.task.executePreview?.(input, { own: this.own });\n }\n}\n",
|
|
63
64
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DataPortSchema } from \"@workglow/util/schema\";\nimport { Workflow } from \"../task-graph/Workflow\";\nimport { CreateEndLoopWorkflow, CreateLoopWorkflow } from \"../task-graph/WorkflowFactories\";\nimport { evaluateCondition, getNestedValue } from \"./ConditionUtils\";\nimport { GraphAsTask, GraphAsTaskConfig, graphAsTaskConfigSchema } from \"./GraphAsTask\";\nimport type { IExecuteContext, IRunConfig } from \"./ITask\";\nimport { resolveIterationBound, type IterationBound } from \"./IteratorTask\";\nimport type { StreamEvent, StreamFinish } from \"./StreamTypes\";\nimport { TaskConfigurationError, TaskFailedError } from \"./TaskError\";\nimport type { TaskInput, TaskOutput, TaskTypeName } from \"./TaskTypes\";\nimport { WhileTaskRunner } from \"./WhileTaskRunner\";\n\n/**\n * WhileTask context schema - only has index since count is unknown ahead of time.\n * Properties are marked with \"x-ui-iteration\": true so the builder\n * knows to hide them from parent-level display.\n */\nexport const WHILE_CONTEXT_SCHEMA: DataPortSchema = {\n type: \"object\",\n properties: {\n _iterationIndex: {\n type: \"integer\",\n minimum: 0,\n title: \"Iteration Number\",\n description: \"Current iteration number (0-based)\",\n \"x-ui-iteration\": true,\n },\n },\n};\n\n/**\n * Condition function type for WhileTask.\n * Receives the current output and iteration count, returns whether to continue looping.\n *\n * @param output - The output from the last iteration\n * @param iteration - The current iteration number (0-based)\n * @returns true to continue looping, false to stop\n */\nexport type WhileConditionFn<Output> = (output: Output, iteration: number) => boolean;\n\nexport const whileTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...graphAsTaskConfigSchema[\"properties\"],\n condition: {},\n maxIterations: {\n oneOf: [\n { type: \"integer\", minimum: 1 },\n { type: \"string\", const: \"unbounded\" },\n ],\n },\n chainIterations: { type: \"boolean\" },\n conditionField: { type: \"string\" },\n conditionOperator: { type: \"string\" },\n conditionValue: { type: \"string\" },\n iterationInputConfig: { type: \"object\", additionalProperties: true },\n },\n required: [\"maxIterations\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\n/**\n * Configuration for WhileTask.\n */\nexport type WhileTaskConfig<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n> = GraphAsTaskConfig<Input> & {\n /**\n * Condition function that determines whether to continue looping.\n * Called after each iteration with the current output and iteration count.\n * Returns true to continue, false to stop.\n */\n readonly condition?: WhileConditionFn<Output>;\n\n /**\n * Upper bound on the number of iterations. Required — pass `\"unbounded\"` to\n * explicitly opt out of the safety ceiling, or a positive integer to cap.\n * Prevents infinite loops when the condition function can't disqualify\n * unbounded runaway input.\n */\n readonly maxIterations: IterationBound;\n\n /**\n * Whether to pass the output of each iteration as input to the next.\n * When true, output from iteration N becomes input to iteration N+1.\n * @default true\n */\n readonly chainIterations?: boolean;\n\n /** Output field to evaluate for the loop condition. */\n readonly conditionField?: string;\n\n /** Comparison operator for the loop condition. */\n readonly conditionOperator?: string;\n\n /** Value to compare against for the loop condition. */\n readonly conditionValue?: string;\n\n /** Per-property iteration input configuration (scalar/array/flexible). */\n readonly iterationInputConfig?: Record<string, { mode: string; baseSchema?: unknown }>;\n};\n\n/**\n * WhileTask loops until a condition function returns false.\n *\n * This task is useful for:\n * - Iterative refinement processes\n * - Polling until a condition is met\n * - Convergence algorithms\n * - Retry logic with conditions\n *\n * ## Features\n *\n * - Loops until condition returns false\n * - Configurable maximum iterations (safety limit)\n * - Passes output from each iteration to the next\n * - Access to iteration count in condition function\n *\n * ## Usage\n *\n * ```typescript\n * // Refine until quality threshold\n * workflow\n * .while({\n * condition: (output, iteration) => output.quality < 0.9 && iteration < 10,\n * maxIterations: 20\n * })\n * .refineResult()\n * .evaluateQuality()\n * .endWhile()\n *\n * // Retry until success\n * workflow\n * .while({\n * condition: (output) => !output.success,\n * maxIterations: 5\n * })\n * .attemptOperation()\n * .endWhile()\n * ```\n *\n * @template Input - The input type for the while task\n * @template Output - The output type for the while task\n * @template Config - The configuration type\n */\nexport class WhileTask<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends WhileTaskConfig<Input, Output> = WhileTaskConfig<Input, Output>,\n> extends GraphAsTask<Input, Output, Config> {\n public static override type: TaskTypeName = \"WhileTask\";\n public static override category: string = \"Flow Control\";\n public static override title: string = \"While Loop\";\n public static override description: string = \"Loops until a condition function returns false\";\n\n /** This task has dynamic schemas based on the inner workflow */\n public static override hasDynamicSchemas: boolean = true;\n\n public static override configSchema(): DataPortSchema {\n return whileTaskConfigSchema;\n }\n\n constructor(config: Partial<Config> = {}, runConfig: Partial<IRunConfig> = {}) {\n if ((config as Partial<WhileTaskConfig<Input, Output>>).maxIterations === undefined) {\n throw new TaskConfigurationError(\n `${(new.target as typeof WhileTask).type ?? \"WhileTask\"}: maxIterations is required. ` +\n `Pass a positive integer to cap iteration, or \"unbounded\" to opt out explicitly.`\n );\n }\n super(config, runConfig);\n }\n\n /**\n * Returns the schema for iteration-context inputs that will be\n * injected into the subgraph InputTask at runtime.\n *\n * WhileTask only provides _iterationIndex since the total count\n * is unknown ahead of time.\n */\n public static getIterationContextSchema(): DataPortSchema {\n return WHILE_CONTEXT_SCHEMA;\n }\n\n /**\n * Current iteration count during execution.\n */\n protected _currentIteration: number = 0;\n\n public override canSerializeConfig(): boolean {\n return typeof this.config.condition !== \"function\";\n }\n\n // ========================================================================\n // TaskRunner Override\n // ========================================================================\n\n declare _runner: WhileTaskRunner<Input, Output, Config>;\n\n override get runner(): WhileTaskRunner<Input, Output, Config> {\n if (!this._runner) {\n this._runner = new WhileTaskRunner<Input, Output, Config>(this);\n }\n return this._runner;\n }\n\n // ========================================================================\n // Configuration Accessors\n // ========================================================================\n\n /**\n * Gets the condition function.\n */\n public get condition(): WhileConditionFn<Output> | undefined {\n return this.config.condition;\n }\n\n /**\n * Gets the maximum iterations limit, resolved to a numeric cap. The raw\n * `config.maxIterations` accepts `\"unbounded\"` as an explicit opt-out — that\n * sentinel resolves to `Number.POSITIVE_INFINITY` here so the loop logic can\n * compare against it directly.\n */\n public get maxIterations(): number {\n return resolveIterationBound(this.config.maxIterations);\n }\n\n /**\n * Whether to chain iteration outputs to inputs.\n */\n public get chainIterations(): boolean {\n return this.config.chainIterations ?? true;\n }\n\n /**\n * Gets the current iteration count.\n */\n public get currentIteration(): number {\n return this._currentIteration;\n }\n\n // ========================================================================\n // Execution\n // ========================================================================\n\n /**\n * Execute the while loop.\n */\n /**\n * Builds a condition function from the serialized condition fields in config.\n */\n private buildConditionFromConfig(): WhileConditionFn<Output> | undefined {\n const { conditionOperator, conditionField, conditionValue } = this.config;\n\n if (!conditionOperator) {\n return undefined;\n }\n\n return (output: Output) => {\n const fieldValue = conditionField\n ? getNestedValue(output as Record<string, unknown>, conditionField)\n : output;\n return evaluateCondition(fieldValue, conditionOperator as any, conditionValue ?? \"\");\n };\n }\n\n /**\n * Analyzes the iterationInputConfig from whileConfig to decompose\n * array inputs into per-iteration scalar values.\n *\n * Returns null if no iterationInputConfig is present (normal while behavior).\n */\n private analyzeArrayInputs(input: Input): {\n arrayPorts: string[];\n scalarPorts: string[];\n iteratedValues: Record<string, unknown[]>;\n iterationCount: number;\n } | null {\n if (!this.config.iterationInputConfig) {\n return null;\n }\n\n const inputData = input as Record<string, unknown>;\n const config = this.config.iterationInputConfig!;\n\n const arrayPorts: string[] = [];\n const scalarPorts: string[] = [];\n const iteratedValues: Record<string, unknown[]> = {};\n const arrayLengths: number[] = [];\n\n for (const [key, propConfig] of Object.entries(config)) {\n const value = inputData[key];\n\n if (propConfig.mode === \"array\") {\n if (!Array.isArray(value)) {\n // Skip non-array values for array-mode ports\n scalarPorts.push(key);\n continue;\n }\n iteratedValues[key] = value;\n arrayPorts.push(key);\n arrayLengths.push(value.length);\n } else {\n scalarPorts.push(key);\n }\n }\n\n // Also include any input keys not in the config as scalars\n for (const key of Object.keys(inputData)) {\n if (!config[key] && !key.startsWith(\"_iteration\")) {\n scalarPorts.push(key);\n }\n }\n\n if (arrayPorts.length === 0) {\n return null;\n }\n\n // All array ports must have the same length (zip semantics)\n const uniqueLengths = new Set(arrayLengths);\n if (uniqueLengths.size > 1) {\n const lengthInfo = arrayPorts\n .map((port, index) => `${port}=${arrayLengths[index]}`)\n .join(\", \");\n throw new TaskConfigurationError(\n `${this.type}: All iterated array inputs must have the same length. ` +\n `Found different lengths: ${lengthInfo}`\n );\n }\n\n return {\n arrayPorts,\n scalarPorts,\n iteratedValues,\n iterationCount: arrayLengths[0] ?? 0,\n };\n }\n\n /**\n * Builds per-iteration input by picking the i-th element from each array port\n * and passing scalar ports through unchanged.\n */\n private buildIterationInput(\n input: Input,\n analysis: {\n arrayPorts: string[];\n scalarPorts: string[];\n iteratedValues: Record<string, unknown[]>;\n },\n index: number\n ): Input {\n const inputData = input as Record<string, unknown>;\n const iterInput: Record<string, unknown> = {};\n\n for (const key of analysis.arrayPorts) {\n iterInput[key] = analysis.iteratedValues[key][index];\n }\n\n for (const key of analysis.scalarPorts) {\n if (key in inputData) {\n iterInput[key] = inputData[key];\n }\n }\n\n return iterInput as Input;\n }\n\n public override async execute(\n input: Input,\n context: IExecuteContext\n ): Promise<Output | undefined> {\n if (!this.hasChildren()) {\n throw new TaskConfigurationError(`${this.type}: No subgraph set for while loop`);\n }\n\n // Use provided condition or auto-build from serialized whileConfig\n const condition = this.condition ?? this.buildConditionFromConfig();\n\n if (!condition) {\n throw new TaskConfigurationError(`${this.type}: No condition function provided`);\n }\n\n // Check for array decomposition via iterationInputConfig\n const arrayAnalysis = this.analyzeArrayInputs(input);\n\n this._currentIteration = 0;\n let currentInput: Input = { ...input };\n let currentOutput: Output = {} as Output;\n\n // Determine effective max iterations (respect array length if decomposing)\n const effectiveMax = arrayAnalysis\n ? Math.min(this.maxIterations, arrayAnalysis.iterationCount)\n : this.maxIterations;\n\n /**\n * Blend the inner subgraph's aggregate `graph_progress` with the outer iteration\n * count so nested streaming tasks visibly advance the progress bar between iteration\n * boundaries. See {@link IteratorTaskRunner.executeSubgraphIteration} for the\n * equivalent pattern in `MapTask`. Capped at 99 because the loop may exit early\n * (condition can return false before hitting `effectiveMax`), mirroring the\n * boundary emit below.\n */\n const onInnerGraphProgress = (\n innerProgress: number | undefined,\n innerMessage?: string\n ): void => {\n if (innerProgress === undefined) return;\n const blended = Math.min(\n Math.round(((this._currentIteration + innerProgress / 100) / effectiveMax) * 100),\n 99\n );\n const message = innerMessage\n ? `Iteration ${this._currentIteration + 1}/${effectiveMax}: ${innerMessage}`\n : `Iteration ${this._currentIteration + 1}/${effectiveMax}`;\n void context.updateProgress(blended, message);\n };\n const unsubscribeInnerProgress = this.subGraph.subscribe(\n \"graph_progress\",\n onInnerGraphProgress\n );\n\n try {\n // Execute iterations until condition returns false or max iterations reached\n while (this._currentIteration < effectiveMax) {\n if (context.signal?.aborted) {\n break;\n }\n\n // Build the input for this iteration\n let iterationInput: Input;\n if (arrayAnalysis) {\n // Decompose array inputs into per-iteration scalars\n iterationInput = {\n ...this.buildIterationInput(currentInput, arrayAnalysis, this._currentIteration),\n _iterationIndex: this._currentIteration,\n } as Input;\n } else {\n iterationInput = {\n ...currentInput,\n _iterationIndex: this._currentIteration,\n } as Input;\n }\n\n // Run the subgraph (it resets itself on each run)\n const results = await this.subGraph.run<Output>(iterationInput, {\n parentSignal: context.signal,\n });\n\n // Merge results\n currentOutput = this.subGraph.mergeExecuteOutputsToRunOutput(\n results,\n this.compoundMerge\n ) as Output;\n\n // Check condition — wrap in try/catch so a throwing condition doesn't\n // leave the task in an inconsistent state without progress cleanup.\n let shouldContinue: boolean;\n try {\n shouldContinue = condition(currentOutput, this._currentIteration);\n } catch (err) {\n // Rethrow TaskFailedError instances unchanged so their type, message,\n // and stack are preserved for the caller.\n if (err instanceof TaskFailedError) {\n throw err;\n }\n const message = `${this.type}: Condition function threw at iteration ${this._currentIteration}: ${\n err instanceof Error ? err.message : String(err)\n }`;\n const wrappedError = new TaskFailedError(message);\n if (err instanceof Error && err.stack) {\n if (wrappedError.stack) {\n wrappedError.stack += `\\nCaused by original error:\\n${err.stack}`;\n } else {\n wrappedError.stack = err.stack;\n }\n }\n throw wrappedError;\n }\n if (!shouldContinue) {\n break;\n }\n\n // Chain output to input for next iteration if enabled\n if (this.chainIterations) {\n currentInput = { ...currentInput, ...currentOutput } as Input;\n }\n\n this._currentIteration++;\n\n // Boundary emit — coarse signal that iteration N/effectiveMax completed. Capped\n // at 99 since the loop may exit early; the task runner will emit 100 on completion.\n const progress = Math.min(Math.round((this._currentIteration / effectiveMax) * 100), 99);\n await context.updateProgress(\n progress,\n `Completed ${this._currentIteration}/${effectiveMax} iterations`\n );\n }\n } finally {\n unsubscribeInnerProgress();\n }\n\n return currentOutput;\n }\n\n /**\n * Streaming execution for WhileTask: runs all iterations except the last\n * normally (materializing), then streams the final iteration's events.\n * This provides streaming output for the final result while still\n * supporting iteration chaining.\n */\n public override async *executeStream(\n input: Input,\n context: IExecuteContext\n ): AsyncIterable<StreamEvent<Output>> {\n if (!this.hasChildren()) {\n throw new TaskConfigurationError(`${this.type}: No subgraph set for while loop`);\n }\n\n const condition = this.condition ?? this.buildConditionFromConfig();\n if (!condition) {\n throw new TaskConfigurationError(`${this.type}: No condition function provided`);\n }\n\n const arrayAnalysis = this.analyzeArrayInputs(input);\n this._currentIteration = 0;\n let currentInput: Input = { ...input };\n let currentOutput: Output = {} as Output;\n\n const effectiveMax = arrayAnalysis\n ? Math.min(this.maxIterations, arrayAnalysis.iterationCount)\n : this.maxIterations;\n\n // Blend inner subgraph progress with outer iteration count; see execute() above.\n const onInnerGraphProgress = (\n innerProgress: number | undefined,\n innerMessage?: string\n ): void => {\n if (innerProgress === undefined) return;\n const blended = Math.min(\n Math.round(((this._currentIteration + innerProgress / 100) / effectiveMax) * 100),\n 99\n );\n const message = innerMessage\n ? `Iteration ${this._currentIteration + 1}/${effectiveMax}: ${innerMessage}`\n : `Iteration ${this._currentIteration + 1}/${effectiveMax}`;\n void context.updateProgress(blended, message);\n };\n const unsubscribeInnerProgress = this.subGraph.subscribe(\n \"graph_progress\",\n onInnerGraphProgress\n );\n\n try {\n while (this._currentIteration < effectiveMax) {\n if (context.signal?.aborted) break;\n\n let iterationInput: Input;\n if (arrayAnalysis) {\n iterationInput = {\n ...this.buildIterationInput(currentInput, arrayAnalysis, this._currentIteration),\n _iterationIndex: this._currentIteration,\n } as Input;\n } else {\n iterationInput = {\n ...currentInput,\n _iterationIndex: this._currentIteration,\n } as Input;\n }\n\n // Check if the NEXT iteration would be the potential last: we always\n // run non-streaming first, then decide after the condition check.\n const results = await this.subGraph.run<Output>(iterationInput, {\n parentSignal: context.signal,\n });\n\n currentOutput = this.subGraph.mergeExecuteOutputsToRunOutput(\n results,\n this.compoundMerge\n ) as Output;\n\n let shouldContinue: boolean;\n try {\n shouldContinue = condition(currentOutput, this._currentIteration);\n } catch (err) {\n throw new TaskFailedError(\n `${this.type}: Condition function threw at iteration ${this._currentIteration}: ${err instanceof Error ? err.message : String(err)}`\n );\n }\n if (!shouldContinue) {\n // This was the final iteration -- but we already ran it non-streaming.\n // Emit the finish event with the collected output.\n break;\n }\n\n if (this.chainIterations) {\n currentInput = { ...currentInput, ...currentOutput } as Input;\n }\n\n this._currentIteration++;\n\n const progress = Math.min(Math.round((this._currentIteration / effectiveMax) * 100), 99);\n await context.updateProgress(\n progress,\n `Completed ${this._currentIteration}/${effectiveMax} iterations`\n );\n }\n } finally {\n unsubscribeInnerProgress();\n }\n\n yield { type: \"finish\", data: currentOutput } as StreamFinish<Output>;\n }\n\n // ========================================================================\n // Schema Methods\n // ========================================================================\n\n /**\n * Instance method to get the iteration context schema.\n * Can be overridden by subclasses to customize iteration context.\n */\n public getIterationContextSchema(): DataPortSchema {\n return (this.constructor as typeof WhileTask).getIterationContextSchema();\n }\n\n /**\n * When chainIterations is true, the output schema from the previous\n * iteration becomes part of the input schema for the next iteration.\n * These chained properties should be marked with \"x-ui-iteration\": true.\n *\n * @returns Schema with chained output properties marked for iteration, or undefined if not chaining\n */\n public getChainedOutputSchema(): DataPortSchema | undefined {\n if (!this.chainIterations) return undefined;\n\n const outputSchema = this.outputSchema();\n if (typeof outputSchema === \"boolean\") return undefined;\n\n // Clone and mark all properties with x-ui-iteration\n const properties: Record<string, DataPortSchema> = {};\n if (outputSchema.properties && typeof outputSchema.properties === \"object\") {\n for (const [key, schema] of Object.entries(outputSchema.properties)) {\n // Skip the _iterations meta field\n if (key === \"_iterations\") continue;\n if (typeof schema === \"object\" && schema !== null) {\n properties[key] = { ...schema, \"x-ui-iteration\": true } as DataPortSchema;\n }\n }\n }\n\n if (Object.keys(properties).length === 0) return undefined;\n\n return { type: \"object\", properties } as DataPortSchema;\n }\n\n /**\n * Instance input schema override.\n * When iterationInputConfig is present, wraps array-mode ports in array schemas\n * so that the dataflow compatibility check accepts array values.\n */\n public override inputSchema(): DataPortSchema {\n if (!this.hasChildren()) {\n return (this.constructor as typeof WhileTask).inputSchema();\n }\n\n // Get the base schema from the subgraph (GraphAsTask behavior)\n const baseSchema = super.inputSchema();\n if (typeof baseSchema === \"boolean\") return baseSchema;\n\n if (!this.config.iterationInputConfig) {\n return baseSchema;\n }\n\n // Wrap array-mode ports in anyOf (scalar | array) schemas.\n // Using anyOf instead of plain type:\"array\" to avoid addInput's array-merge behavior\n // which would prepend an undefined element when runInputData starts empty.\n const properties = { ...(baseSchema.properties || {}) } as Record<string, DataPortSchema>;\n for (const [key, propConfig] of Object.entries(this.config.iterationInputConfig)) {\n if (propConfig.mode === \"array\" && properties[key]) {\n const scalarSchema = properties[key] as DataPortSchema;\n properties[key] = {\n anyOf: [scalarSchema, { type: \"array\", items: scalarSchema }],\n } as unknown as DataPortSchema;\n }\n }\n\n return {\n ...baseSchema,\n properties,\n } as DataPortSchema;\n }\n\n /**\n * Static input schema for WhileTask.\n */\n public static override inputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const satisfies DataPortSchema;\n }\n\n /**\n * Static output schema for WhileTask.\n */\n public static override outputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {\n _iterations: {\n type: \"number\",\n title: \"Iterations\",\n description: \"Number of iterations executed\",\n },\n },\n additionalProperties: true,\n } as const satisfies DataPortSchema;\n }\n\n /**\n * Instance output schema - returns final iteration output schema.\n */\n public override outputSchema(): DataPortSchema {\n if (!this.hasChildren()) {\n return (this.constructor as typeof WhileTask).outputSchema();\n }\n\n // Get ending nodes from subgraph\n const tasks = this.subGraph.getTasks();\n const endingNodes = tasks.filter(\n (task) => this.subGraph.getTargetDataflows(task.id).length === 0\n );\n\n if (endingNodes.length === 0) {\n return (this.constructor as typeof WhileTask).outputSchema();\n }\n\n const properties: Record<string, unknown> = {\n _iterations: {\n type: \"number\",\n title: \"Iterations\",\n description: \"Number of iterations executed\",\n },\n };\n\n // Merge output schemas from ending nodes\n for (const task of endingNodes) {\n const taskOutputSchema = task.outputSchema();\n if (typeof taskOutputSchema === \"boolean\") continue;\n\n const taskProperties = taskOutputSchema.properties || {};\n for (const [key, schema] of Object.entries(taskProperties)) {\n if (!properties[key]) {\n properties[key] = schema;\n }\n }\n }\n\n return {\n type: \"object\",\n properties,\n additionalProperties: false,\n } as DataPortSchema;\n }\n}\n\n// ============================================================================\n// Workflow Prototype Extensions\n// ============================================================================\n\ndeclare module \"../task-graph/Workflow\" {\n interface Workflow {\n /**\n * Starts a while loop that continues until a condition is false.\n * Use .endWhile() to close the loop and return to the parent workflow.\n *\n * @param config - Configuration for the while loop (must include condition)\n * @returns A Workflow in loop builder mode for defining the loop body\n *\n * @example\n * ```typescript\n * workflow\n * .while({\n * condition: (output, iteration) => output.quality < 0.9,\n * maxIterations: 10\n * })\n * .refineResult()\n * .endWhile()\n * ```\n */\n while: CreateLoopWorkflow<TaskInput, TaskOutput, WhileTaskConfig<TaskInput, any>>;\n\n /**\n * Ends the while loop and returns to the parent workflow.\n * Only callable on workflows in loop builder mode.\n *\n * @returns The parent workflow\n */\n endWhile(): Workflow;\n }\n}\n\nWorkflow.prototype.while = CreateLoopWorkflow(WhileTask);\nWorkflow.prototype.endWhile = CreateEndLoopWorkflow(\"endWhile\");\n",
|
|
64
65
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n *\n * Shared iteration schema helpers used by IteratorTask/WhileTask and the builder.\n * Re-exports context schemas and adds pure schema functions that operate on DataPortSchema.\n */\n\nimport type { DataPortSchema, PropertySchema } from \"@workglow/util/schema\";\n\nimport {\n createArraySchema,\n createFlexibleSchema,\n extractBaseSchema,\n ITERATOR_CONTEXT_SCHEMA,\n} from \"./IteratorTask\";\nimport type { ExecutionMode, IterationInputMode, IterationPropertyConfig } from \"./IteratorTask\";\nimport { WHILE_CONTEXT_SCHEMA } from \"./WhileTask\";\n\nexport {\n createArraySchema,\n createFlexibleSchema,\n extractBaseSchema,\n ITERATOR_CONTEXT_SCHEMA,\n WHILE_CONTEXT_SCHEMA,\n type ExecutionMode,\n type IterationInputMode,\n type IterationPropertyConfig,\n};\n\n/** Config for buildIterationInputSchema: mode and optional baseSchema (defaults to extracted from inner). */\nexport type IterationInputConfig = Record<\n string,\n { mode: IterationInputMode; baseSchema?: PropertySchema }\n>;\n\n/**\n * Determines if a schema is a flexible type (T | T[]).\n */\nexport function isFlexibleSchema(schema: DataPortSchema): boolean {\n if (typeof schema === \"boolean\") return false;\n\n const variants =\n (schema as Record<string, unknown>).oneOf ?? (schema as Record<string, unknown>).anyOf;\n const arr = Array.isArray(variants) ? (variants as DataPortSchema[]) : undefined;\n if (!arr || arr.length !== 2) return false;\n\n let hasScalar = false;\n let hasArray = false;\n\n for (const variant of arr) {\n if (typeof variant !== \"object\") continue;\n const v = variant as Record<string, unknown>;\n if (v.type === \"array\" || \"items\" in v) {\n hasArray = true;\n } else {\n hasScalar = true;\n }\n }\n\n return hasScalar && hasArray;\n}\n\n/**\n * Determines if a schema is strictly an array type.\n */\nexport function isStrictArraySchema(schema: DataPortSchema): boolean {\n if (typeof schema === \"boolean\") return false;\n const s = schema as Record<string, unknown>;\n return s.type === \"array\" && !isFlexibleSchema(schema);\n}\n\n/**\n * Gets the input mode for a schema property.\n */\nexport function getInputModeFromSchema(schema: DataPortSchema): IterationInputMode {\n if (isFlexibleSchema(schema)) return \"flexible\";\n if (isStrictArraySchema(schema)) return \"array\";\n return \"scalar\";\n}\n\n/**\n * Get the appropriate iteration context schema for a given task type.\n */\nexport function getIterationContextSchemaForType(taskType: string): DataPortSchema | undefined {\n if (taskType === \"MapTask\" || taskType === \"ReduceTask\") {\n return ITERATOR_CONTEXT_SCHEMA;\n }\n if (taskType === \"WhileTask\") {\n return WHILE_CONTEXT_SCHEMA;\n }\n return undefined;\n}\n\n/**\n * Merge iteration context schema into an existing InputNode schema.\n */\nexport function addIterationContextToSchema(\n existingSchema: DataPortSchema | undefined,\n parentTaskType: string\n): DataPortSchema {\n const contextSchema = getIterationContextSchemaForType(parentTaskType);\n if (!contextSchema) {\n return existingSchema ?? { type: \"object\", properties: {} };\n }\n\n const baseProperties =\n existingSchema &&\n typeof existingSchema !== \"boolean\" &&\n (existingSchema as Record<string, unknown>).properties &&\n typeof (existingSchema as Record<string, unknown>).properties !== \"boolean\"\n ? ((existingSchema as Record<string, unknown>).properties as Record<string, DataPortSchema>)\n : {};\n\n const contextProperties =\n typeof contextSchema !== \"boolean\" &&\n (contextSchema as Record<string, unknown>).properties &&\n typeof (contextSchema as Record<string, unknown>).properties !== \"boolean\"\n ? ((contextSchema as Record<string, unknown>).properties as Record<string, DataPortSchema>)\n : {};\n\n return {\n type: \"object\",\n properties: {\n ...baseProperties,\n ...contextProperties,\n },\n };\n}\n\n/**\n * Check if a schema property is an iteration-injected input.\n */\nexport function isIterationProperty(schema: PropertySchema): boolean {\n if (!schema || typeof schema === \"boolean\") return false;\n return (schema as Record<string, unknown>)[\"x-ui-iteration\"] === true;\n}\n\n/**\n * Filter out iteration properties from a schema (for parent display).\n */\nexport function filterIterationProperties(schema?: DataPortSchema): DataPortSchema | undefined {\n if (!schema || typeof schema === \"boolean\") return schema;\n const props = (schema as Record<string, unknown>).properties;\n if (!props || typeof props === \"boolean\") return schema;\n\n const filteredProps: Record<string, DataPortSchema> = {};\n for (const [key, propSchema] of Object.entries(props as Record<string, DataPortSchema>)) {\n if (!isIterationProperty(propSchema)) {\n filteredProps[key] = propSchema;\n }\n }\n\n if (Object.keys(filteredProps).length === 0) {\n return { type: \"object\", properties: {} };\n }\n\n return { ...schema, properties: filteredProps } as DataPortSchema;\n}\n\n/**\n * Extract only iteration properties from a schema.\n */\nexport function extractIterationProperties(schema?: DataPortSchema): DataPortSchema | undefined {\n if (!schema || typeof schema === \"boolean\") return undefined;\n const props = (schema as Record<string, unknown>).properties;\n if (!props || typeof props === \"boolean\") return undefined;\n\n const iterProps: Record<string, DataPortSchema> = {};\n for (const [key, propSchema] of Object.entries(props as Record<string, DataPortSchema>)) {\n if (isIterationProperty(propSchema)) {\n iterProps[key] = propSchema;\n }\n }\n\n if (Object.keys(iterProps).length === 0) return undefined;\n\n return { type: \"object\", properties: iterProps };\n}\n\n/**\n * Remove iteration properties from a schema (alias for filterIterationProperties).\n */\nexport function removeIterationProperties(schema?: DataPortSchema): DataPortSchema | undefined {\n return filterIterationProperties(schema);\n}\n\n/**\n * Merge chained output properties into input schema; marks output properties with \"x-ui-iteration\": true.\n */\nexport function mergeChainedOutputToInput(\n inputSchema: DataPortSchema | undefined,\n outputSchema: DataPortSchema | undefined\n): DataPortSchema {\n const baseSchema = filterIterationProperties(inputSchema) ?? {\n type: \"object\" as const,\n properties: {},\n };\n\n if (!outputSchema || typeof outputSchema === \"boolean\") {\n return baseSchema;\n }\n const outProps = (outputSchema as Record<string, unknown>).properties;\n if (!outProps || typeof outProps === \"boolean\") {\n return baseSchema;\n }\n\n const baseProps =\n typeof baseSchema !== \"boolean\" &&\n (baseSchema as Record<string, unknown>).properties &&\n typeof (baseSchema as Record<string, unknown>).properties !== \"boolean\"\n ? ((baseSchema as Record<string, unknown>).properties as Record<string, DataPortSchema>)\n : {};\n\n const mergedProperties: Record<string, DataPortSchema> = { ...baseProps };\n\n for (const [key, propSchema] of Object.entries(outProps as Record<string, DataPortSchema>)) {\n if (typeof propSchema === \"object\" && propSchema !== null) {\n mergedProperties[key] = { ...propSchema, \"x-ui-iteration\": true } as DataPortSchema;\n }\n }\n\n return {\n type: \"object\",\n properties: mergedProperties,\n };\n}\n\n/**\n * Builds the iteration input schema from the inner schema and optional iteration input configuration.\n */\nexport function buildIterationInputSchema(\n innerSchema: DataPortSchema | undefined,\n config?: IterationInputConfig\n): DataPortSchema {\n if (!innerSchema || typeof innerSchema === \"boolean\") {\n return { type: \"object\", properties: {} };\n }\n\n const innerProps = (innerSchema as Record<string, unknown>).properties;\n if (!innerProps || typeof innerProps === \"boolean\") {\n return { type: \"object\", properties: {} };\n }\n\n const properties: Record<string, PropertySchema> = {};\n const propsRecord = innerProps as Record<string, PropertySchema>;\n\n for (const [key, propSchema] of Object.entries(propsRecord)) {\n if (typeof propSchema === \"boolean\") continue;\n\n if ((propSchema as Record<string, unknown>)[\"x-ui-iteration\"]) {\n continue;\n }\n\n const originalProps = propSchema as Record<string, unknown>;\n const metadata: Record<string, unknown> = {};\n for (const metaKey of Object.keys(originalProps)) {\n if (metaKey === \"title\" || metaKey === \"description\" || metaKey.startsWith(\"x-\")) {\n metadata[metaKey] = originalProps[metaKey];\n }\n }\n\n const baseSchema = extractBaseSchema(propSchema);\n const propConfig = config?.[key];\n const mode = propConfig?.mode ?? \"flexible\";\n const base = propConfig?.baseSchema ?? baseSchema;\n\n let wrappedSchema: PropertySchema;\n switch (mode) {\n case \"array\":\n wrappedSchema = createArraySchema(base);\n break;\n case \"scalar\":\n wrappedSchema = base;\n break;\n case \"flexible\":\n default:\n wrappedSchema = createFlexibleSchema(base);\n break;\n }\n\n // Apply preserved metadata onto the wrapped schema\n if (Object.keys(metadata).length > 0 && typeof wrappedSchema === \"object\") {\n properties[key] = { ...metadata, ...wrappedSchema } as PropertySchema;\n } else {\n properties[key] = wrappedSchema;\n }\n }\n\n return {\n type: \"object\",\n properties,\n };\n}\n\n/**\n * Find array-typed ports from an input schema.\n */\nexport function findArrayPorts(schema: DataPortSchema | undefined): string[] {\n if (!schema || typeof schema === \"boolean\") return [];\n const props = (schema as Record<string, unknown>).properties;\n if (!props || typeof props === \"boolean\") return [];\n\n const arrayPorts: string[] = [];\n const propsRecord = props as Record<string, DataPortSchema>;\n\n for (const [key, propSchema] of Object.entries(propsRecord)) {\n if (typeof propSchema === \"boolean\") continue;\n if ((propSchema as Record<string, unknown>).type === \"array\") {\n arrayPorts.push(key);\n }\n }\n\n return arrayPorts;\n}\n\n/**\n * Wrap a schema's properties in arrays for iteration output.\n */\nexport function wrapSchemaInArray(schema: DataPortSchema | undefined): DataPortSchema | undefined {\n if (!schema || typeof schema === \"boolean\") return schema;\n const props = (schema as Record<string, unknown>).properties;\n if (!props || typeof props === \"boolean\") return schema;\n\n const propsRecord = props as Record<string, DataPortSchema>;\n const wrappedProperties: Record<string, DataPortSchema> = {};\n\n for (const [key, propSchema] of Object.entries(propsRecord)) {\n wrappedProperties[key] = {\n type: \"array\",\n items: propSchema,\n } as DataPortSchema;\n }\n\n return {\n type: \"object\",\n properties: wrappedProperties,\n };\n}\n",
|
|
65
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n Job,\n JobConstructorParam,\n JobQueueClient,\n JobQueueServer,\n JobQueueServerOptions,\n} from \"@workglow/job-queue\";\nimport { InMemoryQueueStorage } from \"@workglow/job-queue\";\nimport type { IQueueStorage } from \"@workglow/job-queue\";\nimport { createServiceToken, globalServiceRegistry } from \"@workglow/util\";\nimport type { RegisteredQueue } from \"./TaskQueueRegistry\";\nimport type { TaskConfig, TaskInput, TaskOutput } from \"./TaskTypes\";\n\nexport type JobClassConstructor<Input extends TaskInput, Output extends TaskOutput> = new (\n params: JobConstructorParam<Input, Output>\n) => Job<Input, Output>;\n\n/**\n * Options for creating a job queue via the factory\n */\nexport interface JobQueueFactoryOptions<Input, Output> {\n readonly storage?: IQueueStorage<Input, Output>;\n readonly limiter?: JobQueueServerOptions<Input, Output>[\"limiter\"];\n readonly workerCount?: number;\n readonly pollIntervalMs?: number;\n readonly deleteAfterCompletionMs?: number;\n readonly deleteAfterFailureMs?: number;\n readonly deleteAfterDisabledMs?: number;\n readonly cleanupIntervalMs?: number;\n readonly stopTimeoutMs?: number;\n}\n\nexport interface JobQueueFactoryParams<Input extends TaskInput, Output extends TaskOutput> {\n readonly queueName: string;\n readonly jobClass: JobClassConstructor<Input, Output>;\n readonly input?: Input;\n readonly config?: TaskConfig;\n readonly task?: unknown;\n readonly options?: JobQueueFactoryOptions<Input, Output>;\n}\n\nexport type JobQueueFactory = <Input extends TaskInput, Output extends TaskOutput>(\n params: JobQueueFactoryParams<Input, Output>\n) => Promise<RegisteredQueue<Input, Output>> | RegisteredQueue<Input, Output>;\n\nexport const JOB_QUEUE_FACTORY = createServiceToken<JobQueueFactory>(\"taskgraph.jobQueueFactory\");\n\nconst defaultJobQueueFactory: JobQueueFactory = async <\n Input extends TaskInput,\n Output extends TaskOutput,\n>({\n queueName,\n jobClass,\n options,\n}: JobQueueFactoryParams<Input, Output>): Promise<RegisteredQueue<Input, Output>> => {\n const storage =\n (options?.storage as IQueueStorage<Input, Output>) ??\n new InMemoryQueueStorage<Input, Output>(queueName);\n await storage.
|
|
66
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n Job,\n JobConstructorParam,\n JobQueueClient,\n JobQueueServer,\n JobQueueServerOptions,\n} from \"@workglow/job-queue\";\nimport { InMemoryQueueStorage } from \"@workglow/job-queue\";\nimport type { IQueueStorage } from \"@workglow/job-queue\";\nimport { createServiceToken, globalServiceRegistry } from \"@workglow/util\";\nimport type { RegisteredQueue } from \"./TaskQueueRegistry\";\nimport type { TaskConfig, TaskInput, TaskOutput } from \"./TaskTypes\";\n\nexport type JobClassConstructor<Input extends TaskInput, Output extends TaskOutput> = new (\n params: JobConstructorParam<Input, Output>\n) => Job<Input, Output>;\n\n/**\n * Options for creating a job queue via the factory\n */\nexport interface JobQueueFactoryOptions<Input, Output> {\n readonly storage?: IQueueStorage<Input, Output>;\n readonly limiter?: JobQueueServerOptions<Input, Output>[\"limiter\"];\n readonly workerCount?: number;\n readonly pollIntervalMs?: number;\n readonly deleteAfterCompletionMs?: number;\n readonly deleteAfterFailureMs?: number;\n readonly deleteAfterDisabledMs?: number;\n readonly cleanupIntervalMs?: number;\n readonly stopTimeoutMs?: number;\n}\n\nexport interface JobQueueFactoryParams<Input extends TaskInput, Output extends TaskOutput> {\n readonly queueName: string;\n readonly jobClass: JobClassConstructor<Input, Output>;\n readonly input?: Input;\n readonly config?: TaskConfig;\n readonly task?: unknown;\n readonly options?: JobQueueFactoryOptions<Input, Output>;\n}\n\nexport type JobQueueFactory = <Input extends TaskInput, Output extends TaskOutput>(\n params: JobQueueFactoryParams<Input, Output>\n) => Promise<RegisteredQueue<Input, Output>> | RegisteredQueue<Input, Output>;\n\nexport const JOB_QUEUE_FACTORY = createServiceToken<JobQueueFactory>(\"taskgraph.jobQueueFactory\");\n\nconst defaultJobQueueFactory: JobQueueFactory = async <\n Input extends TaskInput,\n Output extends TaskOutput,\n>({\n queueName,\n jobClass,\n options,\n}: JobQueueFactoryParams<Input, Output>): Promise<RegisteredQueue<Input, Output>> => {\n const storage =\n (options?.storage as IQueueStorage<Input, Output>) ??\n new InMemoryQueueStorage<Input, Output>(queueName);\n await storage.migrate();\n\n const server = new JobQueueServer<Input, Output>(jobClass as JobClassConstructor<any, any>, {\n storage,\n queueName,\n limiter: options?.limiter,\n workerCount: options?.workerCount,\n pollIntervalMs: options?.pollIntervalMs,\n deleteAfterCompletionMs: options?.deleteAfterCompletionMs,\n deleteAfterFailureMs: options?.deleteAfterFailureMs,\n deleteAfterDisabledMs: options?.deleteAfterDisabledMs,\n cleanupIntervalMs: options?.cleanupIntervalMs,\n stopTimeoutMs: options?.stopTimeoutMs,\n });\n\n const client = new JobQueueClient<Input, Output>({\n storage,\n queueName,\n });\n\n // Attach client to server for same-process optimization\n client.attach(server);\n\n return { server, client, storage };\n};\n\nexport function registerJobQueueFactory(factory: JobQueueFactory): void {\n globalServiceRegistry.registerInstance(JOB_QUEUE_FACTORY, factory);\n}\n\n/**\n * Creates a job queue factory from server options\n */\nexport function createJobQueueFactoryWithOptions(\n defaultOptions: Partial<JobQueueFactoryOptions<unknown, unknown>> = {}\n): JobQueueFactory {\n return async <Input extends TaskInput, Output extends TaskOutput>({\n queueName,\n jobClass,\n options,\n }: JobQueueFactoryParams<Input, Output>): Promise<RegisteredQueue<Input, Output>> => {\n const mergedOptions = {\n ...defaultOptions,\n ...(options ?? {}),\n } as JobQueueFactoryOptions<Input, Output>;\n\n const storage =\n (mergedOptions.storage as IQueueStorage<Input, Output>) ??\n new InMemoryQueueStorage<Input, Output>(queueName);\n await storage.migrate();\n\n const server = new JobQueueServer<Input, Output>(jobClass as JobClassConstructor<any, any>, {\n storage,\n queueName,\n limiter: mergedOptions.limiter,\n workerCount: mergedOptions.workerCount,\n pollIntervalMs: mergedOptions.pollIntervalMs,\n deleteAfterCompletionMs: mergedOptions.deleteAfterCompletionMs,\n deleteAfterFailureMs: mergedOptions.deleteAfterFailureMs,\n deleteAfterDisabledMs: mergedOptions.deleteAfterDisabledMs,\n cleanupIntervalMs: mergedOptions.cleanupIntervalMs,\n stopTimeoutMs: mergedOptions.stopTimeoutMs,\n });\n\n const client = new JobQueueClient<Input, Output>({\n storage,\n queueName,\n });\n\n // Attach client to server for same-process optimization\n client.attach(server);\n\n return { server, client, storage };\n };\n}\n\nexport function getJobQueueFactory(): JobQueueFactory {\n if (!globalServiceRegistry.has(JOB_QUEUE_FACTORY)) {\n registerJobQueueFactory(defaultJobQueueFactory);\n }\n return globalServiceRegistry.get(JOB_QUEUE_FACTORY);\n}\n\nif (!globalServiceRegistry.has(JOB_QUEUE_FACTORY)) {\n registerJobQueueFactory(defaultJobQueueFactory);\n}\n",
|
|
66
67
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DataPortSchema } from \"@workglow/util/schema\";\nimport { PROPERTY_ARRAY } from \"../task-graph/TaskGraphRunner\";\nimport { Workflow } from \"../task-graph/Workflow\";\nimport { CreateEndLoopWorkflow, CreateLoopWorkflow } from \"../task-graph/WorkflowFactories\";\nimport type { IRunConfig } from \"./ITask\";\nimport { IteratorTask, IteratorTaskConfig, iteratorTaskConfigSchema } from \"./IteratorTask\";\nimport type { TaskInput, TaskOutput, TaskTypeName } from \"./TaskTypes\";\nexport const mapTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...iteratorTaskConfigSchema[\"properties\"],\n preserveOrder: { type: \"boolean\" },\n flatten: { type: \"boolean\" },\n discardResults: { type: \"boolean\" },\n },\n required: iteratorTaskConfigSchema.required,\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\n/**\n * Configuration for MapTask.\n */\nexport type MapTaskConfig<Input extends TaskInput = TaskInput> = IteratorTaskConfig<Input> & {\n /**\n * Whether to preserve the order of results matching the input order.\n * When false, results may be in completion order.\n * @default true\n */\n readonly preserveOrder?: boolean;\n\n /**\n * Whether to flatten array results from each iteration.\n * When true, if each iteration returns an array, they are concatenated.\n * @default false\n */\n readonly flatten?: boolean;\n\n /**\n * When true, iteration results are discarded rather than collected into\n * per-property arrays. Used by the `.forEach()` workflow combinator for\n * side-effect-only loops where the caller does not need the return value.\n * @default false\n */\n readonly discardResults?: boolean;\n};\n\n/**\n * MapTask transforms one or more array inputs by running a workflow for each index.\n */\nexport class MapTask<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends MapTaskConfig<Input> = MapTaskConfig<Input>,\n> extends IteratorTask<Input, Output, Config> {\n public static override type: TaskTypeName = \"MapTask\";\n public static override category: string = \"Flow Control\";\n public static override title: string = \"Map\";\n public static override description: string =\n \"Transforms array inputs by running a workflow per item\";\n\n public static override configSchema(): DataPortSchema {\n return mapTaskConfigSchema;\n }\n\n /**\n * MapTask always uses PROPERTY_ARRAY merge strategy to collect results.\n */\n public static override readonly compoundMerge = PROPERTY_ARRAY;\n\n /**\n * Static input schema for MapTask.\n */\n public static override inputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const satisfies DataPortSchema;\n }\n\n /**\n * Static output schema for MapTask.\n */\n public static override outputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const satisfies DataPortSchema;\n }\n\n /**\n * Whether to preserve order of results.\n */\n public get preserveOrder(): boolean {\n return this.config.preserveOrder ?? true;\n }\n\n /**\n * Whether to flatten nested array results.\n */\n public get flatten(): boolean {\n return this.config.flatten ?? false;\n }\n\n /**\n * Whether to drop iteration outputs rather than collect them. Used by\n * `.forEach()` for side-effect iteration.\n */\n public get discardResults(): boolean {\n return this.config.discardResults ?? false;\n }\n\n public override preserveIterationOrder(): boolean {\n return this.preserveOrder;\n }\n\n /**\n * Returns the empty result for MapTask.\n */\n public override getEmptyResult(): Output {\n const schema = this.outputSchema();\n if (typeof schema === \"boolean\") {\n return {} as Output;\n }\n\n const result: Record<string, unknown[]> = {};\n for (const key of Object.keys(schema.properties || {})) {\n result[key] = [];\n }\n\n return result as Output;\n }\n\n /**\n * Output schema for MapTask.\n * Wraps inner workflow output properties in arrays.\n */\n public override outputSchema(): DataPortSchema {\n if (!this.hasChildren()) {\n return (this.constructor as typeof MapTask).outputSchema();\n }\n\n return this.getWrappedOutputSchema();\n }\n\n /**\n * Collects and optionally flattens results from all iterations. When\n * `discardResults` is set (via `.forEach()`), returns the empty result\n * without touching the per-iteration outputs.\n */\n public override collectResults(results: TaskOutput[]): Output {\n if (this.discardResults) {\n return this.getEmptyResult();\n }\n\n const collected = super.collectResults(results);\n\n if (!this.flatten || typeof collected !== \"object\" || collected === null) {\n return collected;\n }\n\n const flattened: Record<string, unknown[]> = {};\n for (const [key, value] of Object.entries(collected)) {\n if (Array.isArray(value)) {\n flattened[key] = value.flat();\n } else {\n flattened[key] = value as unknown[];\n }\n }\n\n return flattened as Output;\n }\n}\n\n/**\n * ForEachTask is a `MapTask` variant that discards iteration results by default.\n * Used via the `.forEach()` workflow combinator for side-effect-only loops.\n */\nexport class ForEachTask<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends MapTaskConfig<Input> = MapTaskConfig<Input>,\n> extends MapTask<Input, Output, Config> {\n public static override type: TaskTypeName = \"ForEachTask\";\n public static override title: string = \"For Each\";\n public static override description: string =\n \"Runs a workflow per array item for side effects; discards collected results\";\n\n constructor(config: Partial<Config> = {}, runConfig: Partial<IRunConfig> = {}) {\n super({ discardResults: true, ...config } as Partial<Config>, runConfig);\n }\n}\n\n// ============================================================================\n// Workflow Prototype Extensions\n// ============================================================================\n\ndeclare module \"../task-graph/Workflow\" {\n interface Workflow {\n /**\n * Starts a map loop that transforms each element in array input ports.\n * Use .endMap() to close the loop and return to the parent workflow.\n */\n map: CreateLoopWorkflow<TaskInput, TaskOutput, MapTaskConfig<TaskInput>>;\n\n /**\n * Ends the map loop and returns to the parent workflow.\n */\n endMap(): Workflow;\n\n /**\n * Starts a forEach loop — iterates array input ports for side effects and\n * discards collected results. Use .endForEach() to close the loop and\n * return to the parent workflow. `maxIterations` is still required.\n */\n forEach: CreateLoopWorkflow<TaskInput, TaskOutput, MapTaskConfig<TaskInput>>;\n\n /**\n * Ends the forEach loop and returns to the parent workflow.\n */\n endForEach(): Workflow;\n }\n}\n\nWorkflow.prototype.map = CreateLoopWorkflow(MapTask);\nWorkflow.prototype.endMap = CreateEndLoopWorkflow(\"endMap\");\nWorkflow.prototype.forEach = CreateLoopWorkflow(ForEachTask);\nWorkflow.prototype.endForEach = CreateEndLoopWorkflow(\"endForEach\");\n",
|
|
67
68
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DataPortSchema } from \"@workglow/util/schema\";\nimport { Workflow } from \"../task-graph/Workflow\";\nimport { CreateEndLoopWorkflow, CreateLoopWorkflow } from \"../task-graph/WorkflowFactories\";\nimport type { IRunConfig } from \"./ITask\";\nimport {\n IterationAnalysisResult,\n IteratorTask,\n IteratorTaskConfig,\n iteratorTaskConfigSchema,\n} from \"./IteratorTask\";\nimport type { TaskInput, TaskOutput, TaskTypeName } from \"./TaskTypes\";\n\nexport const reduceTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...iteratorTaskConfigSchema[\"properties\"],\n initialValue: {},\n },\n required: iteratorTaskConfigSchema.required,\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\n/**\n * Configuration for ReduceTask.\n */\nexport type ReduceTaskConfig<\n Input extends TaskInput = TaskInput,\n Accumulator = unknown,\n> = IteratorTaskConfig<Input> & {\n /**\n * The initial value for the accumulator.\n */\n readonly initialValue?: Accumulator;\n};\n\n/**\n * ReduceTask processes iterated inputs sequentially with an accumulator.\n */\nexport class ReduceTask<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends ReduceTaskConfig<Input, Output> = ReduceTaskConfig<Input, Output>,\n> extends IteratorTask<Input, Output, Config> {\n public static override type: TaskTypeName = \"ReduceTask\";\n public static override category: string = \"Flow Control\";\n public static override title: string = \"Reduce\";\n public static override description: string =\n \"Processes iterated inputs sequentially with an accumulator (fold)\";\n\n public static override configSchema(): DataPortSchema {\n return reduceTaskConfigSchema;\n }\n\n constructor(config: Partial<Config> = {}, runConfig: Partial<IRunConfig> = {}) {\n // Reduce is always sequential\n const reduceConfig = {\n ...config,\n concurrencyLimit: 1,\n batchSize: 1,\n };\n super(reduceConfig as Partial<Config>, runConfig);\n }\n\n /**\n * Gets the initial accumulator value.\n */\n public get initialValue(): Output {\n return (this.config.initialValue ?? {}) as Output;\n }\n\n public override isReduceTask(): boolean {\n return true;\n }\n\n public override getInitialAccumulator(): Output {\n const value = this.initialValue;\n if (Array.isArray(value)) {\n return [...value] as unknown as Output;\n }\n if (value && typeof value === \"object\") {\n return { ...(value as Record<string, unknown>) } as Output;\n }\n return value;\n }\n\n public override buildIterationRunInput(\n analysis: IterationAnalysisResult,\n index: number,\n iterationCount: number,\n extraInput: Record<string, unknown> = {}\n ): Record<string, unknown> {\n return super.buildIterationRunInput(analysis, index, iterationCount, {\n accumulator: extraInput.accumulator,\n });\n }\n\n public override getEmptyResult(): Output {\n return this.getInitialAccumulator();\n }\n\n /**\n * Static input schema for ReduceTask.\n */\n public static override inputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const satisfies DataPortSchema;\n }\n\n /**\n * Static output schema for ReduceTask.\n */\n public static override outputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const satisfies DataPortSchema;\n }\n\n /**\n * Instance output schema - returns the reduced output schema from ending nodes.\n */\n public override outputSchema(): DataPortSchema {\n if (!this.hasChildren()) {\n return (this.constructor as typeof ReduceTask).outputSchema();\n }\n\n const endingNodes = this.subGraph\n .getTasks()\n .filter((task) => this.subGraph.getTargetDataflows(task.id).length === 0);\n\n if (endingNodes.length === 0) {\n return (this.constructor as typeof ReduceTask).outputSchema();\n }\n\n const properties: Record<string, unknown> = {};\n\n for (const task of endingNodes) {\n const taskOutputSchema = task.outputSchema();\n if (typeof taskOutputSchema === \"boolean\") continue;\n\n for (const [key, schema] of Object.entries(taskOutputSchema.properties || {})) {\n if (!properties[key]) {\n properties[key] = schema;\n }\n }\n }\n\n return {\n type: \"object\",\n properties,\n additionalProperties: false,\n } as DataPortSchema;\n }\n}\n\n// ============================================================================\n// Workflow Prototype Extensions\n// ============================================================================\n\ndeclare module \"../task-graph/Workflow\" {\n interface Workflow {\n /**\n * Starts a reduce loop that processes iterated inputs with an accumulator.\n * Use .endReduce() to close the loop and return to the parent workflow.\n */\n reduce: CreateLoopWorkflow<TaskInput, TaskOutput, ReduceTaskConfig<TaskInput, any>>;\n\n /**\n * Ends the reduce loop and returns to the parent workflow.\n */\n endReduce(): Workflow;\n }\n}\n\nqueueMicrotask(() => {\n Workflow.prototype.reduce = CreateLoopWorkflow(ReduceTask);\n Workflow.prototype.endReduce = CreateEndLoopWorkflow(\"endReduce\");\n});\n",
|
|
68
69
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n createServiceToken,\n getLogger,\n globalServiceRegistry,\n registerInputCompactor,\n registerInputResolver,\n ServiceRegistry,\n} from \"@workglow/util\";\nimport { validateSchema } from \"@workglow/util/schema\";\nimport type { ITaskConstructor } from \"./ITask\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyTaskConstructor = ITaskConstructor<any, any, any>;\n\n/**\n * Map storing all registered task constructors.\n * Keys are task type identifiers and values are their corresponding constructor functions.\n */\nconst taskConstructors = new Map<string, AnyTaskConstructor>();\n\n/**\n * Registers a task constructor with the registry.\n * This allows the task type to be instantiated dynamically based on its type identifier.\n * Re-registering the exact same class is idempotent and does nothing.\n *\n * @param baseClass - The constructor function for the task to register\n * @throws Error if a different constructor is already registered for the same task type.\n * Call {@link unregisterTask} first to replace an existing registration.\n */\nfunction registerTask(baseClass: AnyTaskConstructor): void {\n const existing = taskConstructors.get(baseClass.type);\n if (existing) {\n if (existing === baseClass) return; // same class, idempotent\n throw new Error(\n `Task type \"${baseClass.type}\" is already registered. Unregister it first to replace.`\n );\n }\n taskConstructors.set(baseClass.type, baseClass);\n\n // Validate schemas at registration time (soft — warn only, don't throw)\n const schemas = [\n { name: \"inputSchema\", schema: baseClass.inputSchema() },\n { name: \"outputSchema\", schema: baseClass.outputSchema() },\n ] as const;\n\n for (const { name, schema } of schemas) {\n const result = validateSchema(schema);\n if (!result.valid) {\n const messages = result.errors.map((e) => `${e.path}: ${e.message}`).join(\"; \");\n getLogger().warn(`Task \"${baseClass.type}\" has invalid ${name}: ${messages}`, {\n taskType: baseClass.type,\n schemaName: name,\n errors: result.errors,\n });\n }\n }\n}\n\n/**\n * Removes a task constructor from the registry.\n * Must be called before re-registering a task type with a different constructor.\n *\n * @param type - The task type identifier to remove\n * @returns true if the task type was found and removed, false otherwise\n */\nfunction unregisterTask(type: string): boolean {\n return taskConstructors.delete(type);\n}\n\n/**\n * TaskRegistry provides a centralized registry for task types.\n * It enables dynamic task instantiation and management across the application.\n */\nexport const TaskRegistry = {\n /**\n * Map containing all registered task constructors\n */\n all: taskConstructors,\n\n /**\n * Function to register new task types\n */\n registerTask,\n\n /**\n * Function to remove a registered task type\n */\n unregisterTask,\n};\n\n// ========================================================================\n// DI-based access\n// ========================================================================\n\n/**\n * Service token for the task constructor registry.\n * Maps task type names to their constructor functions.\n */\nexport const TASK_CONSTRUCTORS =\n createServiceToken<Map<string, AnyTaskConstructor>>(\"task.constructors\");\n\n/**\n * Gets the global task constructors map.\n * @returns The registered task constructors map\n */\nexport function getGlobalTaskConstructors(): Map<string, AnyTaskConstructor> {\n return globalServiceRegistry.get(TASK_CONSTRUCTORS);\n}\n\n/**\n * Sets the global task constructors map, replacing the default TaskRegistry-backed factory.\n * @param map The task constructors map to register\n */\nexport function setGlobalTaskConstructors(map: Map<string, AnyTaskConstructor>): void {\n globalServiceRegistry.registerInstance(TASK_CONSTRUCTORS, map);\n}\n\n/**\n * Gets the task constructors map from the given registry,\n * falling back to the global TaskRegistry.\n */\nexport function getTaskConstructors(registry?: ServiceRegistry): Map<string, AnyTaskConstructor> {\n if (!registry) return TaskRegistry.all;\n return registry.has(TASK_CONSTRUCTORS) ? registry.get(TASK_CONSTRUCTORS) : TaskRegistry.all;\n}\n\n// ========================================================================\n// Tasks resolver\n// ========================================================================\n\n/**\n * Resolves a task type name to a tool definition object via the task constructor registry.\n *\n * Used by the input resolver system for `format: \"tasks\"` properties.\n * Converts lightweight string IDs (stored by the property editor) into full\n * tool definition objects at runtime.\n *\n * @param id - Task type name registered in TaskRegistry\n * @param format - The format string (unused)\n * @param registry - Service registry for context-specific lookups\n * @returns Tool definition object, or undefined if the task type is not found\n */\nfunction resolveTaskFromRegistry(\n id: string,\n _format: string,\n registry: ServiceRegistry\n):\n | {\n name: string;\n description: string;\n inputSchema: unknown;\n outputSchema: unknown;\n configSchema?: unknown;\n }\n | undefined {\n const constructors = getTaskConstructors(registry);\n const ctor = constructors.get(id);\n if (!ctor) return undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const ctorAny = ctor as any;\n const configSchema =\n typeof ctorAny.configSchema === \"function\" ? ctorAny.configSchema() : undefined;\n return {\n name: ctor.type,\n description: (ctor as { description?: string }).description ?? \"\",\n inputSchema: ctor.inputSchema(),\n outputSchema: ctor.outputSchema(),\n ...(configSchema ? { configSchema } : {}),\n };\n}\n\nfunction compactTask(\n value: unknown,\n _format: string,\n registry: ServiceRegistry\n): string | undefined {\n if (typeof value === \"object\" && value !== null && \"name\" in value) {\n const name = (value as Record<string, unknown>).name;\n if (typeof name !== \"string\") return undefined;\n const constructors = getTaskConstructors(registry);\n const ctor = constructors.get(name);\n return ctor ? name : undefined;\n }\n return undefined;\n}\n\n/**\n * Registers the task constructor map default factory and the \"tasks\" input resolver/compactor\n * on the given registry. Called by `bootstrapWorkglow` and `createOrchestrationContext`.\n */\nexport function registerTaskDefaults(registry: ServiceRegistry = globalServiceRegistry): void {\n registry.registerIfAbsent(\n TASK_CONSTRUCTORS,\n (): Map<string, AnyTaskConstructor> => TaskRegistry.all,\n true\n );\n registerInputResolver(\"tasks\", resolveTaskFromRegistry, registry);\n registerInputCompactor(\"tasks\", compactTask, registry);\n}\n\n// Self-register on the global registry. Idempotent.\nregisterTaskDefaults();\n",
|
|
69
70
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ServiceRegistry } from \"@workglow/util\";\nimport { Dataflow } from \"../task-graph/Dataflow\";\nimport { TaskGraph } from \"../task-graph/TaskGraph\";\nimport { CompoundMergeStrategy } from \"../task-graph/TaskGraphRunner\";\nimport type { ITransformStep } from \"../task-graph/TransformTypes\";\nimport type { TaskEntitlements } from \"../task/TaskEntitlements\";\nimport { TaskConfigurationError, TaskJSONError } from \"../task/TaskError\";\nimport { getTaskConstructors } from \"../task/TaskRegistry\";\nimport { ConditionalTaskConfig } from \"./ConditionalTask\";\nimport { GraphAsTask, GraphAsTaskConfig } from \"./GraphAsTask\";\nimport { IteratorTaskConfig } from \"./IteratorTask\";\nimport { MapTaskConfig } from \"./MapTask\";\nimport { ReduceTaskConfig } from \"./ReduceTask\";\nimport { TaskConfig, TaskInput } from \"./TaskTypes\";\nimport { WhileTaskConfig } from \"./WhileTask\";\n\n// ========================================================================\n// JSON Serialization Types\n// ========================================================================\n/**\n * Represents a single task item in the JSON configuration.\n * This structure defines how tasks should be configured in JSON format.\n */\n\nexport type JsonTaskConfig = Omit<\n TaskConfig &\n GraphAsTaskConfig &\n WhileTaskConfig &\n IteratorTaskConfig &\n ReduceTaskConfig &\n MapTaskConfig &\n ConditionalTaskConfig,\n \"id\" | \"defaults\" | \"maxIterations\"\n> & {\n /**\n * Optional in the JSON union because non-loop tasks don't carry it —\n * each loop task class still enforces required-at-construction via its\n * own config type.\n */\n readonly maxIterations?: WhileTaskConfig[\"maxIterations\"];\n};\n\nexport type JsonTaskItem = {\n /** Unique identifier for the task */\n id: unknown;\n\n /** Type of task to create */\n type: string;\n\n /** Optional configuration for the task */\n config?: JsonTaskConfig;\n\n /** Default input values for the task */\n defaults?: TaskInput;\n\n /** Defines data flow between tasks */\n dependencies?: {\n /** Input parameter name mapped to source task output */\n [x: string]:\n | {\n /** ID of the source task */\n id: unknown;\n\n /** Output parameter name from source task */\n output: string;\n }\n | Array<{\n id: unknown;\n output: string;\n }>;\n };\n\n /** Nested tasks for compound operations */\n subtasks?: JsonTaskItem[];\n\n /**\n * Entitlements required by this task.\n * @output-only This field is populated during serialization (toJSON/toDependencyJSON)\n * and is ignored during deserialization. User-supplied entitlements in JSON input\n * are not applied to the reconstructed task.\n */\n entitlements?: TaskEntitlements;\n};\n\n/**\n * Represents a task graph item, which can be a task or a subgraph\n */\nexport type TaskGraphItemJson = {\n id: unknown;\n type: string;\n defaults?: TaskInput;\n config?: JsonTaskConfig;\n subgraph?: TaskGraphJson;\n merge?: CompoundMergeStrategy;\n /**\n * Entitlements required by this task.\n * @output-only This field is populated during serialization and is ignored during deserialization.\n */\n entitlements?: TaskEntitlements;\n};\n\nexport type TaskGraphJson = {\n tasks: TaskGraphItemJson[];\n dataflows: DataflowJson[];\n};\n\nexport type DataflowJson = {\n sourceTaskId: unknown;\n sourceTaskPortId: string;\n targetTaskId: unknown;\n targetTaskPortId: string;\n transforms?: ReadonlyArray<ITransformStep>;\n};\n\nexport interface TaskGraphJsonOptions {\n /** When true, synthetic InputTask/OutputTask boundary nodes are added at each graph level */\n readonly withBoundaryNodes?: boolean;\n}\n\n/**\n * Options for deserializing tasks from JSON.\n */\nexport interface TaskDeserializationOptions {\n /**\n * Optional allowlist of task type names. When provided, only task types\n * in this set will be instantiated. Any other type throws TaskJSONError.\n * Use this to restrict which tasks can be created from untrusted JSON.\n */\n readonly allowedTypes?: ReadonlySet<string> | readonly string[];\n}\n\nconst createSingleTaskFromJSON = (\n item: JsonTaskItem | TaskGraphItemJson,\n registry?: ServiceRegistry,\n options?: TaskDeserializationOptions\n) => {\n if (!item.id) throw new TaskJSONError(\"Task id required\");\n if (!item.type) throw new TaskJSONError(\"Task type required\");\n if (item.defaults && Array.isArray(item.defaults))\n throw new TaskJSONError(\"Task defaults must be an object\");\n\n // Check allowlist if provided\n if (options?.allowedTypes) {\n const allowed =\n options.allowedTypes instanceof Set ? options.allowedTypes : new Set(options.allowedTypes);\n if (!allowed.has(item.type)) {\n throw new TaskJSONError(`Task type \"${item.type}\" is not in the allowed types list`);\n }\n }\n\n const constructors = getTaskConstructors(registry);\n const taskClass = constructors.get(item.type);\n if (!taskClass)\n throw new TaskJSONError(`Task type ${item.type} not found, perhaps not registered?`);\n\n // Validate that the resolved value is actually a constructable task class\n if (typeof taskClass !== \"function\" || typeof taskClass.type !== \"string\") {\n throw new TaskJSONError(`Task type ${item.type} resolved to an invalid constructor`);\n }\n\n const taskConfig: TaskConfig = {\n ...item.config,\n id: item.id,\n defaults: item.defaults ?? {},\n };\n const task = new taskClass(taskConfig, registry ? { registry } : {});\n return task;\n};\n\n/**\n * Creates a task instance from a JSON task item configuration.\n * Validates required fields and resolves the task constructor by type name.\n *\n * @param item - The JSON task item containing the task `type`, `id`, optional `config`,\n * `defaults`, `dependencies`, and `subtasks`.\n * @param registry - Optional service registry for dependency-injection-based constructor\n * lookup. When provided, task constructors are resolved from the registry's\n * `TASK_CONSTRUCTORS` binding (if present); otherwise falls back to the global\n * `TaskRegistry`. Omit to use the global registry.\n * @returns A fully constructed task instance, with its `subGraph` populated when\n * `subtasks` are present.\n * @throws {TaskJSONError} If `id` or `type` are missing, if `defaults` is an array,\n * or if the task type is not found in the resolved constructors map.\n * @throws {TaskConfigurationError} If `subtasks` are provided for a task that is not\n * a `GraphAsTask`.\n */\nexport const createTaskFromDependencyJSON = (\n item: JsonTaskItem,\n registry?: ServiceRegistry,\n options?: TaskDeserializationOptions\n) => {\n const task = createSingleTaskFromJSON(item, registry, options);\n if (item.subtasks && item.subtasks.length > 0) {\n if (!(task instanceof GraphAsTask)) {\n throw new TaskConfigurationError(\"Subgraph is only supported for CompoundTasks\");\n }\n task.subGraph = createGraphFromDependencyJSON(item.subtasks, registry, options);\n }\n return task;\n};\n\n/**\n * Creates a `TaskGraph` from an array of JSON dependency-style task items.\n * Recursively processes `subtasks` for compound (`GraphAsTask`) tasks.\n *\n * @param jsonItems - Array of JSON task items to convert into a task graph.\n * @param registry - Optional service registry for dependency-injection-based constructor\n * lookup. When provided, task constructors are resolved from the registry's\n * `TASK_CONSTRUCTORS` binding (if present); otherwise falls back to the global\n * `TaskRegistry`. Omit to use the global registry.\n * @returns A new `TaskGraph` containing all tasks built from `jsonItems`.\n * @throws {TaskJSONError} If any task item has missing/invalid required fields or an\n * unregistered task type.\n * @throws {TaskConfigurationError} If `subtasks` are specified for a non-`GraphAsTask`.\n */\nexport const createGraphFromDependencyJSON = (\n jsonItems: JsonTaskItem[],\n registry?: ServiceRegistry,\n options?: TaskDeserializationOptions\n) => {\n const subGraph = new TaskGraph();\n for (const subitem of jsonItems) {\n subGraph.addTask(createTaskFromDependencyJSON(subitem, registry, options));\n }\n return subGraph;\n};\n\n/**\n * Creates a task instance from a task graph item JSON representation.\n *\n * @param item - The JSON representation of the task, including its `type`, `id`,\n * optional `config`, `defaults`, `subgraph`, and `merge` strategy.\n * @param registry - Optional service registry for dependency-injection-based constructor\n * lookup. When provided, task constructors are resolved from the registry's\n * `TASK_CONSTRUCTORS` binding (if present); otherwise falls back to the global\n * `TaskRegistry`. Omit to use the global registry.\n * @returns A new task instance, with its `subGraph` populated when `subgraph` is present.\n * @throws {TaskJSONError} If required fields are missing or the task type is not found\n * in the resolved constructors map.\n * @throws {TaskConfigurationError} If a `subgraph` is provided for a task that is not\n * a `GraphAsTask`.\n */\nexport const createTaskFromGraphJSON = (\n item: TaskGraphItemJson,\n registry?: ServiceRegistry,\n options?: TaskDeserializationOptions\n) => {\n const task = createSingleTaskFromJSON(item, registry, options);\n if (item.subgraph) {\n if (!(task instanceof GraphAsTask)) {\n throw new TaskConfigurationError(\"Subgraph is only supported for GraphAsTask\");\n }\n task.subGraph = createGraphFromGraphJSON(item.subgraph, registry, options);\n }\n return task;\n};\n\n/**\n * Creates a `TaskGraph` instance from its JSON representation.\n * Reconstructs all tasks and the data flows between them.\n *\n * @param graphJsonObj - The JSON representation of the task graph, containing\n * `tasks` (array of `TaskGraphItemJson`) and `dataflows` (array of `DataflowJson`).\n * @param registry - Optional service registry for dependency-injection-based constructor\n * lookup. When provided, task constructors are resolved from the registry's\n * `TASK_CONSTRUCTORS` binding (if present); otherwise falls back to the global\n * `TaskRegistry`. Omit to use the global registry.\n * @returns A new `TaskGraph` instance with all tasks and data flows restored.\n * @throws {TaskJSONError} If any task item has missing/invalid required fields or an\n * unregistered task type.\n * @throws {TaskConfigurationError} If a `subgraph` is specified for a non-`GraphAsTask`.\n */\nexport const createGraphFromGraphJSON = (\n graphJsonObj: TaskGraphJson,\n registry?: ServiceRegistry,\n options?: TaskDeserializationOptions\n) => {\n const subGraph = new TaskGraph();\n for (const subitem of graphJsonObj.tasks) {\n subGraph.addTask(createTaskFromGraphJSON(subitem, registry, options));\n }\n for (const subitem of graphJsonObj.dataflows) {\n const dataflow = new Dataflow(\n subitem.sourceTaskId,\n subitem.sourceTaskPortId,\n subitem.targetTaskId,\n subitem.targetTaskPortId\n );\n if (subitem.transforms && subitem.transforms.length > 0) {\n dataflow.setTransforms(subitem.transforms);\n }\n subGraph.addDataflow(dataflow);\n }\n return subGraph;\n};\n",
|
|
70
71
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { JobQueueClient, JobQueueServer } from \"@workglow/job-queue\";\nimport type { IQueueStorage } from \"@workglow/job-queue\";\nimport { EventEmitter } from \"@workglow/util\";\n\n/**\n * Combined structure for a registered job queue containing server, client, and storage\n */\nexport interface RegisteredQueue<Input = unknown, Output = unknown> {\n readonly server: JobQueueServer<Input, Output>;\n readonly client: JobQueueClient<Input, Output>;\n readonly storage: IQueueStorage<Input, Output>;\n}\n\n/**\n * Global singleton instance of the TaskQueueRegistry.\n * This is used to manage all job queues across the application.\n */\nlet taskQueueRegistry: TaskQueueRegistry | null = null;\n\n/**\n * Registry for managing task queues in the application.\n * Provides functionality to register, manage, and control job queues.\n *\n * @template Input - The type of input data for tasks in the queues\n * @template Output - The type of output data for tasks in the queues\n */\nexport type TaskQueueRegistryEvents = {\n queue_registered: (queueName: string) => void;\n};\n\nexport class TaskQueueRegistry {\n /**\n * Emits when queues are registered ({@link TaskQueueRegistryEvents}).\n */\n public readonly emitter = new EventEmitter<TaskQueueRegistryEvents>();\n\n /**\n * Map of queue names to their corresponding registered queue instances\n */\n public readonly queues: Map<string, RegisteredQueue<unknown, unknown>> = new Map();\n\n /**\n * Registers a new job queue with the registry\n *\n * @param queue - The registered queue containing server, client, and storage\n * @throws Error if a queue with the same name already exists\n */\n registerQueue<Input, Output>(queue: RegisteredQueue<Input, Output>): void {\n const queueName = queue.server.queueName;\n if (this.queues.has(queueName)) {\n throw new Error(`Queue with name ${queueName} already exists`);\n }\n this.queues.set(queueName, queue as RegisteredQueue<unknown, unknown>);\n this.emitter.emit(\"queue_registered\", queueName);\n }\n\n /**\n * Retrieves a registered queue by its name\n *\n * @param queueName - The name of the queue to retrieve\n * @returns The registered queue or undefined if not found\n */\n getQueue<Input, Output>(queueName: string): RegisteredQueue<Input, Output> | undefined {\n return this.queues.get(queueName) as RegisteredQueue<Input, Output> | undefined;\n }\n\n /**\n * Starts all registered job queue servers\n * This allows queues to begin processing their jobs\n *\n * @returns The registry instance for chaining\n */\n async startQueues() {\n for (const queue of this.queues.values()) {\n await queue.server.start();\n }\n }\n\n /**\n * Stops all registered job queue servers\n * This pauses job processing but maintains the queued jobs\n *\n * @returns The registry instance for chaining\n */\n async stopQueues() {\n for (const queue of this.queues.values()) {\n await queue.server.stop();\n }\n }\n\n /**\n * Clears all registered job queues\n * This removes all queued jobs from the storage\n *\n * @returns The registry instance for chaining\n */\n async clearQueues() {\n for (const queue of this.queues.values()) {\n await queue.storage.deleteAll();\n }\n }\n}\n\n/**\n * Gets the global TaskQueueRegistry instance\n * Creates a new instance if one doesn't exist\n *\n * @returns The global TaskQueueRegistry instance\n */\nexport function getTaskQueueRegistry(): TaskQueueRegistry {\n if (!taskQueueRegistry) {\n taskQueueRegistry = new TaskQueueRegistry();\n }\n return taskQueueRegistry;\n}\n\n/**\n * Sets the global TaskQueueRegistry instance\n * Stops and clears any existing registry before replacing it\n *\n * @param registry - The new registry instance to use, or null to clear\n */\nexport async function setTaskQueueRegistry(registry: TaskQueueRegistry | null): Promise<void> {\n if (taskQueueRegistry) {\n await taskQueueRegistry.stopQueues();\n await taskQueueRegistry.clearQueues();\n }\n taskQueueRegistry = registry;\n}\n",
|
|
71
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from \"./ConditionalTask\";\nexport * from \"./ConditionUtils\";\nexport * from \"./EntitlementEnforcer\";\nexport * from \"./EntitlementPolicy\";\nexport * from \"./EntitlementProfiles\";\nexport * from \"./EntitlementResolver\";\nexport * from \"./FallbackTask\";\nexport * from \"./FallbackTaskRunner\";\nexport * from \"./GraphAsTask\";\nexport * from \"./GraphAsTaskRunner\";\nexport * from \"./InputCompactor\";\nexport * from \"./InputResolver\";\nexport * from \"./ITask\";\nexport * from \"./iterationSchema\";\nexport * from \"./IteratorTask\";\nexport * from \"./IteratorTaskRunner\";\nexport * from \"./JobQueueFactory\";\nexport * from \"./MapTask\";\nexport * from \"./ReduceTask\";\nexport * from \"./StreamTypes\";\nexport * from \"./Task\";\nexport * from \"./TaskEntitlements\";\nexport * from \"./TaskError\";\nexport * from \"./TaskEvents\";\nexport * from \"./TaskJSON\";\nexport * from \"./TaskQueueRegistry\";\nexport * from \"./TaskRegistry\";\nexport * from \"./TaskTypes\";\nexport * from \"./WhileTask\";\nexport * from \"./WhileTaskRunner\";\n\nimport { ConditionalTask } from \"./ConditionalTask\";\nimport { FallbackTask } from \"./FallbackTask\";\nimport { GraphAsTask } from \"./GraphAsTask\";\nimport { MapTask } from \"./MapTask\";\nimport { ReduceTask } from \"./ReduceTask\";\nimport { TaskRegistry } from \"./TaskRegistry\";\nimport { WhileTask } from \"./WhileTask\";\n\nexport const registerBaseTasks = () => {\n const tasks = [GraphAsTask, ConditionalTask, FallbackTask, MapTask, WhileTask, ReduceTask];\n tasks.map(TaskRegistry.registerTask);\n return tasks;\n};\n",
|
|
72
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from \"./ConditionalTask\";\nexport * from \"./ConditionUtils\";\nexport * from \"./EntitlementEnforcer\";\nexport * from \"./EntitlementPolicy\";\nexport * from \"./EntitlementProfile\";\nexport * from \"./EntitlementProfiles\";\nexport * from \"./EntitlementResolver\";\nexport * from \"./FallbackTask\";\nexport * from \"./FallbackTaskRunner\";\nexport * from \"./GraphAsTask\";\nexport * from \"./GraphAsTaskRunner\";\nexport * from \"./InputCompactor\";\nexport * from \"./InputResolver\";\nexport * from \"./ITask\";\nexport * from \"./iterationSchema\";\nexport * from \"./IteratorTask\";\nexport * from \"./IteratorTaskRunner\";\nexport * from \"./JobQueueFactory\";\nexport * from \"./MapTask\";\nexport * from \"./ReduceTask\";\nexport * from \"./StreamTypes\";\nexport * from \"./Task\";\nexport * from \"./TaskEntitlements\";\nexport * from \"./TaskError\";\nexport * from \"./TaskEvents\";\nexport * from \"./TaskJSON\";\nexport * from \"./TaskQueueRegistry\";\nexport * from \"./TaskRegistry\";\nexport * from \"./TaskTypes\";\nexport * from \"./WhileTask\";\nexport * from \"./WhileTaskRunner\";\n\nimport { ConditionalTask } from \"./ConditionalTask\";\nimport { FallbackTask } from \"./FallbackTask\";\nimport { GraphAsTask } from \"./GraphAsTask\";\nimport { MapTask } from \"./MapTask\";\nimport { ReduceTask } from \"./ReduceTask\";\nimport { TaskRegistry } from \"./TaskRegistry\";\nimport { WhileTask } from \"./WhileTask\";\n\nexport const registerBaseTasks = () => {\n const tasks = [GraphAsTask, ConditionalTask, FallbackTask, MapTask, WhileTask, ReduceTask];\n tasks.map(TaskRegistry.registerTask);\n return tasks;\n};\n",
|
|
72
73
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { createServiceToken, EventEmitter, EventParameters } from \"@workglow/util\";\nimport { TaskGraph } from \"../task-graph/TaskGraph\";\n\n/**\n * Service token for TaskGraphRepository\n */\nexport const TASK_GRAPH_REPOSITORY = createServiceToken<TaskGraphRepository>(\n \"taskgraph.taskGraphRepository\"\n);\n\n/**\n * Events that can be emitted by the TaskGraphRepository\n */\nexport type TaskGraphRepositoryEvents = keyof TaskGraphRepositoryEventListeners;\n\nexport type TaskGraphRepositoryEventListeners = {\n graph_saved: (key: string) => void;\n graph_retrieved: (key: string) => void;\n graph_cleared: () => void;\n};\n\nexport type TaskGraphRepositoryEventListener<Event extends TaskGraphRepositoryEvents> =\n TaskGraphRepositoryEventListeners[Event];\n\nexport type TaskGraphRepositoryEventParameters<Event extends TaskGraphRepositoryEvents> =\n EventParameters<TaskGraphRepositoryEventListeners, Event>;\n\n/**\n * Repository class for managing task graphs persistence and retrieval.\n * Provides functionality to save, load, and manipulate task graphs with their associated tasks and data flows.\n */\nexport abstract class TaskGraphRepository {\n /**\n * The type of the repository\n */\n public type = \"TaskGraphRepository\";\n\n /**\n * The event emitter for the task graphs\n */\n private get events() {\n if (!this._events) {\n this._events = new EventEmitter<TaskGraphRepositoryEventListeners>();\n }\n return this._events;\n }\n private _events: EventEmitter<TaskGraphRepositoryEventListeners> | undefined;\n\n /**\n * Registers an event listener for the specified event\n * @param name The event name to listen for\n * @param fn The callback function to execute when the event occurs\n */\n on<Event extends TaskGraphRepositoryEvents>(\n name: Event,\n fn: TaskGraphRepositoryEventListener<Event>\n ) {\n this.events.on(name, fn);\n }\n\n /**\n * Removes an event listener for the specified event\n * @param name The event name to stop listening for\n * @param fn The callback function to remove\n */\n off<Event extends TaskGraphRepositoryEvents>(\n name: Event,\n fn: TaskGraphRepositoryEventListener<Event>\n ) {\n this.events.off(name, fn);\n }\n\n /**\n * Adds an event listener that will only be called once\n * @param name The event name to listen for\n * @param fn The callback function to execute when the event occurs\n */\n once<Event extends TaskGraphRepositoryEvents>(\n name: Event,\n fn: TaskGraphRepositoryEventListener<Event>\n ) {\n this.events.once(name, fn);\n }\n\n /**\n * Returns when the event was emitted (promise form of once)\n * @param name The event name to check\n * @returns true if the event has listeners, false otherwise\n */\n waitOn<Event extends TaskGraphRepositoryEvents>(name: Event) {\n return this.events.waitOn(name) as Promise<TaskGraphRepositoryEventParameters<Event>>;\n }\n\n /**\n * Emits an event (if there are listeners)\n * @param name The event name to emit\n * @param args The event parameters\n */\n emit<Event extends TaskGraphRepositoryEvents>(\n name: Event,\n ...args: TaskGraphRepositoryEventParameters<Event>\n ) {\n this._events?.emit(name, ...args);\n }\n\n /**\n * Saves a task graph to persistent storage\n * @param key The unique identifier for the task graph\n * @param output The task graph to save\n * @emits graph_saved when the operation completes\n */\n abstract saveTaskGraph(key: string, output: TaskGraph): Promise<void>;\n\n /**\n * Retrieves a task graph from persistent storage\n * @param key The unique identifier of the task graph to retrieve\n * @returns The retrieved task graph, or undefined if not found\n * @emits graph_retrieved when the operation completes successfully\n */\n abstract getTaskGraph(key: string): Promise<TaskGraph | undefined>;\n\n /**\n * Clears all task graphs from the repository\n * @emits graph_cleared when the operation completes\n */\n abstract clear(): Promise<void>;\n\n /**\n * Returns the number of task graphs stored in the repository\n * @returns The count of stored task graphs\n */\n abstract size(): Promise<number>;\n}\n",
|
|
73
74
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { BaseTabularStorage } from \"@workglow/storage\";\nimport { DataPortSchemaObject } from \"@workglow/util/schema\";\nimport type { ServiceRegistry } from \"@workglow/util\";\nimport { TaskGraph } from \"../task-graph/TaskGraph\";\nimport { createGraphFromGraphJSON } from \"../task/TaskJSON\";\nimport { TaskGraphRepository } from \"./TaskGraphRepository\";\n\nexport const TaskGraphSchema = {\n type: \"object\",\n properties: {\n key: { type: \"string\" },\n value: { type: \"string\" },\n },\n additionalProperties: false,\n} satisfies DataPortSchemaObject;\n\nexport const TaskGraphPrimaryKeyNames = [\"key\"] as const;\n\n/**\n * Options for the TaskGraphRepository\n */\nexport type TaskGraphRepositoryStorage = BaseTabularStorage<\n typeof TaskGraphSchema,\n typeof TaskGraphPrimaryKeyNames\n>;\ntype TaskGraphRepositoryOptions = {\n tabularRepository: TaskGraphRepositoryStorage;\n registry?: ServiceRegistry;\n};\n\n/**\n * Repository class for managing task graphs persistence and retrieval.\n * Provides functionality to save, load, and manipulate task graphs with their associated tasks and data flows.\n */\nexport class TaskGraphTabularRepository extends TaskGraphRepository {\n /**\n * The type of the repository\n */\n public override type = \"TaskGraphTabularRepository\";\n\n /**\n * The tabular repository for the task graphs\n */\n tabularRepository: TaskGraphRepositoryStorage;\n\n /**\n * Optional service registry for DI-based task constructor lookups\n */\n readonly registry: ServiceRegistry | undefined;\n\n /**\n * Constructor for the TaskGraphRepository\n * @param options The options for the repository\n */\n constructor({ tabularRepository, registry }: TaskGraphRepositoryOptions) {\n super();\n this.tabularRepository = tabularRepository;\n this.registry = registry;\n }\n\n /**\n * Sets up the database for the repository.\n * Must be called before using any other methods.\n */\n async setupDatabase(): Promise<void> {\n await this.tabularRepository.setupDatabase?.();\n }\n\n /**\n * Saves a task graph to persistent storage\n * @param key The unique identifier for the task graph\n * @param output The task graph to save\n * @emits graph_saved when the operation completes\n */\n async saveTaskGraph(key: string, output: TaskGraph): Promise<void> {\n const value = JSON.stringify(output.toJSON());\n await this.tabularRepository.put({ key, value });\n this.emit(\"graph_saved\", key);\n }\n\n /**\n * Retrieves a task graph from persistent storage\n * @param key The unique identifier of the task graph to retrieve\n * @returns The retrieved task graph, or undefined if not found\n * @emits graph_retrieved when the operation completes successfully\n */\n async getTaskGraph(key: string): Promise<TaskGraph | undefined> {\n const result = await this.tabularRepository.get({ key });\n const value = result?.value;\n if (!value) {\n return undefined;\n }\n const jsonObj = JSON.parse(value);\n const graph = createGraphFromGraphJSON(jsonObj, this.registry);\n\n this.emit(\"graph_retrieved\", key);\n return graph;\n }\n\n /**\n * Clears all task graphs from the repository\n * @emits graph_cleared when the operation completes\n */\n async clear(): Promise<void> {\n await this.tabularRepository.deleteAll();\n this.emit(\"graph_cleared\");\n }\n\n /**\n * Returns the number of task graphs stored in the repository\n * @returns The count of stored task graphs\n */\n async size(): Promise<number> {\n return await this.tabularRepository.size();\n }\n}\n",
|
|
74
75
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { BaseTabularStorage } from \"@workglow/storage\";\nimport { DataPortSchemaObject } from \"@workglow/util/schema\";\nimport { compress, decompress } from \"@workglow/util/compress\";\nimport { makeFingerprint } from \"@workglow/util\";\nimport { TaskInput, TaskOutput } from \"../task/TaskTypes\";\nimport { TaskOutputRepository } from \"./TaskOutputRepository\";\n\nexport type TaskOutputPrimaryKey = {\n key: string;\n taskType: string;\n};\n\nexport const TaskOutputSchema = {\n type: \"object\",\n properties: {\n key: { type: \"string\" },\n taskType: { type: \"string\" },\n value: { type: \"string\", contentEncoding: \"blob\" },\n createdAt: { type: \"string\", format: \"date-time\" },\n },\n additionalProperties: false,\n} satisfies DataPortSchemaObject;\n\nexport const TaskOutputPrimaryKeyNames = [\"key\", \"taskType\"] as const;\n\nexport type TaskOutputRepositoryStorage = BaseTabularStorage<\n typeof TaskOutputSchema,\n typeof TaskOutputPrimaryKeyNames\n>;\n\nexport type TaskOutputRepositoryOptions = {\n tabularRepository: TaskOutputRepositoryStorage;\n outputCompression?: boolean;\n};\n\n/**\n * Abstract class for managing task outputs in a repository\n * Provides methods for saving, retrieving, and clearing task outputs\n */\nexport class TaskOutputTabularRepository extends TaskOutputRepository {\n /**\n * The tabular repository for the task outputs\n */\n tabularRepository: TaskOutputRepositoryStorage;\n\n /**\n * Constructor for the TaskOutputTabularRepository\n * @param options The options for the repository\n */\n constructor({ tabularRepository, outputCompression = true }: TaskOutputRepositoryOptions) {\n super({ outputCompression });\n this.tabularRepository = tabularRepository;\n this.outputCompression = outputCompression;\n }\n\n /**\n * Sets up the database for the repository.\n * Must be called before using any other methods.\n */\n async setupDatabase(): Promise<void> {\n await this.tabularRepository.setupDatabase?.();\n }\n\n public async keyFromInputs(inputs: TaskInput): Promise<string> {\n return await makeFingerprint(inputs);\n }\n\n /**\n * Saves a task output to the repository\n * @param taskType The type of task to save the output for\n * @param inputs The input parameters for the task\n * @param output The task output to save\n */\n async saveOutput(\n taskType: string,\n inputs: TaskInput,\n output: TaskOutput,\n createdAt = new Date() // for testing purposes\n ): Promise<void> {\n const key = await this.keyFromInputs(inputs);\n const value = JSON.stringify(output);\n if (this.outputCompression) {\n const compressedValue = await compress(value);\n await this.tabularRepository.put({\n taskType,\n key,\n // contentEncoding: \"blob\" allows Uint8Array despite schema type being \"string\"\n value: compressedValue as unknown as string,\n createdAt: createdAt.toISOString(),\n });\n } else {\n const valueBuffer = Buffer.from(value);\n await this.tabularRepository.put({\n taskType,\n key,\n // contentEncoding: \"blob\" allows Buffer/Uint8Array despite schema type being \"string\"\n value: valueBuffer as unknown as string,\n createdAt: createdAt.toISOString(),\n });\n }\n this.emit(\"output_saved\", taskType);\n }\n\n /**\n * Retrieves a task output from the repository\n * @param taskType The type of task to retrieve the output for\n * @param inputs The input parameters for the task\n * @returns The retrieved task output, or undefined if not found\n */\n async getOutput(taskType: string, inputs: TaskInput): Promise<TaskOutput | undefined> {\n const key = await this.keyFromInputs(inputs);\n const output = await this.tabularRepository.get({ key, taskType });\n this.emit(\"output_retrieved\", taskType);\n if (output?.value) {\n if (this.outputCompression) {\n // Coerce JSON-serialized binary (from filesystem JSON store) back to Uint8Array\n const raw: unknown = output.value as unknown;\n const bytes: Uint8Array =\n raw instanceof Uint8Array\n ? raw\n : Array.isArray(raw)\n ? new Uint8Array(raw as number[])\n : raw && typeof raw === \"object\"\n ? new Uint8Array(\n Object.keys(raw as Record<string, number>)\n .filter((k) => /^\\d+$/.test(k))\n .sort((a, b) => Number(a) - Number(b))\n .map((k) => (raw as Record<string, number>)[k])\n )\n : new Uint8Array();\n const decompressedValue = await decompress(bytes);\n const value = JSON.parse(decompressedValue) as TaskOutput;\n return value as TaskOutput;\n } else {\n const stringValue = output.value.toString();\n const value = JSON.parse(stringValue) as TaskOutput;\n return value as TaskOutput;\n }\n } else {\n return undefined;\n }\n }\n\n /**\n * Clears all task outputs from the repository\n * @emits output_cleared when the operation completes\n */\n async clear(): Promise<void> {\n await this.tabularRepository.deleteAll();\n this.emit(\"output_cleared\");\n }\n\n /**\n * Returns the number of task outputs stored in the repository\n * @returns The count of stored task outputs\n */\n async size(): Promise<number> {\n return await this.tabularRepository.size();\n }\n\n /**\n * Clear all task outputs from the repository that are older than the given date\n * @param olderThanInMs The time in milliseconds to clear task outputs older than\n */\n async clearOlderThan(olderThanInMs: number): Promise<void> {\n const date = new Date(Date.now() - olderThanInMs).toISOString();\n await this.tabularRepository.deleteSearch({ createdAt: { value: date, operator: \"<\" } });\n this.emit(\"output_pruned\");\n }\n}\n",
|
|
75
76
|
"/**\n * @copyright\n * Copyright 2026 Steven Roussey\n * All Rights Reserved\n */\nexport { registerPortCodec, getPortCodec, _resetPortCodecsForTests } from \"@workglow/util\";\nexport type { PortCodec } from \"@workglow/util\";\n"
|
|
76
77
|
],
|
|
77
|
-
"mappings": "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",
|
|
78
|
-
"debugId": "
|
|
78
|
+
"mappings": "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",
|
|
79
|
+
"debugId": "896F2287B3DD5F3464756E2164756E21",
|
|
79
80
|
"names": []
|
|
80
81
|
}
|