@codemation/core 0.0.19 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/EngineRuntimeRegistration.types-0sgV2XL2.d.ts +42 -0
- package/dist/EngineWorkflowRunnerService-Dx7bJsJR.d.cts +73 -0
- package/dist/InMemoryRunDataFactory-qIYQEar7.d.cts +94 -0
- package/dist/{InMemoryLiveWorkflowRepository-DxoualoC.d.ts → RunIntentService-BCvGdOSY.d.ts} +438 -9
- package/dist/{RunIntentService-C1nu_YwM.js → RunIntentService-BFA48UpH.js} +252 -67
- package/dist/RunIntentService-BFA48UpH.js.map +1 -0
- package/dist/{InMemoryLiveWorkflowRepository-orY1VsWG.d.cts → RunIntentService-CV8izV8t.d.cts} +214 -7
- package/dist/{RunIntentService-ZkjpY7MS.cjs → RunIntentService-DcxXf_AM.cjs} +262 -65
- package/dist/RunIntentService-DcxXf_AM.cjs.map +1 -0
- package/dist/bootstrap/index.cjs +14 -1135
- package/dist/bootstrap/index.d.cts +7 -60
- package/dist/bootstrap/index.d.ts +4 -40
- package/dist/bootstrap/index.js +3 -1122
- package/dist/bootstrap-D67Sf2BF.js +1136 -0
- package/dist/bootstrap-D67Sf2BF.js.map +1 -0
- package/dist/bootstrap-DoQHAEQJ.cjs +1203 -0
- package/dist/bootstrap-DoQHAEQJ.cjs.map +1 -0
- package/dist/{index-BIewO9-9.d.ts → index-BHmrZIHp.d.ts} +32 -260
- package/dist/index.cjs +98 -223
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +196 -6
- package/dist/index.d.ts +3 -3
- package/dist/index.js +92 -218
- package/dist/index.js.map +1 -1
- package/dist/testing.cjs +329 -3
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +181 -4
- package/dist/testing.d.ts +181 -3
- package/dist/testing.js +319 -2
- package/dist/testing.js.map +1 -1
- package/dist/workflowActivationPolicy-B8HzTk3o.js +201 -0
- package/dist/workflowActivationPolicy-B8HzTk3o.js.map +1 -0
- package/dist/workflowActivationPolicy-BzyzXLa_.cjs +231 -0
- package/dist/workflowActivationPolicy-BzyzXLa_.cjs.map +1 -0
- package/package.json +1 -1
- package/src/ai/AgentConnectionNodeCollector.ts +99 -0
- package/src/ai/AgentToolFactory.ts +38 -2
- package/src/ai/AiHost.ts +1 -1
- package/src/browser.ts +11 -0
- package/src/contracts/executionPersistenceContracts.ts +186 -0
- package/src/contracts/index.ts +1 -0
- package/src/contracts/runFinishedAtFactory.ts +5 -2
- package/src/contracts/runTypes.ts +10 -0
- package/src/contracts/runtimeTypes.ts +6 -2
- package/src/contracts/workflowTypes.ts +3 -2
- package/src/events/EventPublishingWorkflowExecutionRepository.ts +5 -0
- package/src/execution/ActivationEnqueueService.ts +8 -8
- package/src/execution/PersistedRunStateTerminalBuilder.ts +3 -0
- package/src/index.ts +6 -0
- package/src/orchestration/NodeExecutionRequestHandlerService.ts +11 -6
- package/src/orchestration/RunContinuationService.ts +94 -24
- package/src/runStorage/InMemoryWorkflowExecutionRepository.ts +14 -1
- package/src/scheduler/DefaultDrivingScheduler.ts +21 -11
- package/src/scheduler/InlineDrivingScheduler.ts +17 -21
- package/src/testing/CapturingScheduler.ts +15 -0
- package/src/testing/EngineTestKitRunIdFactory.ts +24 -0
- package/src/testing/InMemoryTriggerSetupStateRepository.ts +21 -0
- package/src/testing/PrefixedSequentialIdGenerator.ts +17 -0
- package/src/testing/RegistrarEngineTestKit.types.ts +76 -0
- package/src/testing/RegistrarEngineTestKitFactory.ts +154 -0
- package/src/testing/SubWorkflowRunnerTestNode.ts +83 -0
- package/src/testing/WorkflowTestHarnessManualTrigger.ts +39 -0
- package/src/testing/WorkflowTestKit.types.ts +9 -0
- package/src/testing/WorkflowTestKitBuilder.ts +77 -0
- package/src/testing/WorkflowTestKitNodeRegistrationContextFactory.ts +17 -0
- package/src/testing/WorkflowTestKitRunNodeWorkflowFactory.ts +26 -0
- package/src/testing.ts +19 -0
- package/src/types/index.ts +1 -0
- package/src/workflow/definition/ConnectionNodeIdFactory.ts +28 -0
- package/dist/InMemoryLiveWorkflowRepository-BTzHpQ6e.cjs +0 -151
- package/dist/InMemoryLiveWorkflowRepository-BTzHpQ6e.cjs.map +0 -1
- package/dist/InMemoryLiveWorkflowRepository-BoLNnVLg.js +0 -139
- package/dist/InMemoryLiveWorkflowRepository-BoLNnVLg.js.map +0 -1
- package/dist/RunIntentService-C1nu_YwM.js.map +0 -1
- package/dist/RunIntentService-DjbxzBBP.d.cts +0 -288
- package/dist/RunIntentService-ZkjpY7MS.cjs.map +0 -1
- package/dist/WorkflowSnapshotCodec-DSEzKyt3.d.cts +0 -22
- package/dist/bootstrap/index.cjs.map +0 -1
- package/dist/bootstrap/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap-DoQHAEQJ.cjs","names":["EngineExecutionLimitsPolicy","ENGINE_EXECUTION_LIMITS_DEFAULTS","runRepository: WorkflowExecutionRepository","storageEvaluator: WorkflowStoragePolicyEvaluator","nodeResolver: NodeResolver","nodeResolver: NodeResolver","RunFinishedAtFactory","out: RunPruneCandidate[]","RunFinishedAtFactory","workflowExecutionRepository: WorkflowExecutionRepository","workflowSnapshotResolver: WorkflowSnapshotResolver","runDataFactory: RunDataFactory","runExecutionContextFactory: WorkflowRunExecutionContextFactory","nodeStatePublisherFactory: NodeRunStateWriterFactory","nodeActivationRequestComposer: NodeActivationRequestComposer","nodeExecutor: NodeExecutor","continuation: NodeActivationContinuation","executionLimitsPolicy: EngineExecutionLimitsPolicy","topology: WorkflowTopology","nodeInstances: ReadonlyMap<NodeId, unknown>","inst","queue: RunQueueEntry[]","matches: string[]","workflowNodeInstanceFactory: WorkflowNodeInstanceFactory","WorkflowTopology","WorkflowExecutableNodeClassifierFactory","workflowRepository: WorkflowRepository","workflowActivationPolicy: WorkflowActivationPolicy","runIdFactory: RunIdFactory","runDataFactory: RunDataFactory","executionContextFactory: ExecutionContextFactory","nodeExecutionStatePublisherFactory: NodeRunStateWriterFactory","nodeResolver: NodeResolver","triggerSetupStateRepository: TriggerSetupStateRepository","emitHandler: TriggerEmitHandler","executionLimitsPolicy: EngineExecutionLimitsPolicy","diagnostics?: TriggerRuntimeDiagnostics","node","nextState: unknown","triggerError: unknown","out: string[]","deps: EngineFacadeDeps","CredentialResolverFactory","NodeEventPublisher","NodeRunStateWriterFactory","EngineExecutionLimitsPolicy","WorkflowSnapshotCodec","MissingRuntimeFallbacks","WorkflowSnapshotResolver","RunStateSemantics","MissingRuntimeExecutionMarker","ActivationEnqueueService","WorkflowRunExecutionContextFactory","NodeActivationRequestComposer","PersistedRunStateTerminalBuilder","RunStartService","RunContinuationService","engine: Engine","workflowRepository: WorkflowRepository","WorkflowExecutableNodeClassifierFactory","RunIntentService","workflowRepository: WorkflowRepository","workflowActivationPolicy: WorkflowActivationPolicy","diagnostics?: WebhookTriggerRoutingDiagnostics","paths: string[]","InlineDrivingScheduler","NodeInstanceFactoryFactory","DefaultAsyncSleeper","InProcessRetryRunnerFactory","NodeExecutorFactory","CoreTokens","NodeExecutor","InlineDrivingScheduler","RunIntentService"],"sources":["../src/policies/executionLimits/EngineExecutionLimitsPolicyFactory.ts","../src/policies/storage/RunTerminalPersistenceCoordinator.ts","../src/policies/WorkflowPolicyErrorServices.ts","../src/policies/storage/WorkflowStoragePolicyEvaluator.ts","../src/runStorage/RunSummaryMapper.ts","../src/runStorage/InMemoryWorkflowExecutionRepository.ts","../src/orchestration/NodeExecutionRequestHandlerService.ts","../src/planning/RunQueuePlanner.ts","../src/planning/EngineWorkflowPlanningFactory.ts","../src/orchestration/TriggerRuntimeService.ts","../src/orchestration/EngineWaiters.ts","../src/orchestration/Engine.ts","../src/runtime/EngineFactory.ts","../src/runtime/EngineWorkflowRunnerService.ts","../src/runtime/EngineWorkflowRunnerServiceFactory.ts","../src/runtime/RunIntentServiceFactory.ts","../src/runtime/WorkflowRepositoryWebhookTriggerMatcher.ts","../src/runtime/WorkflowRepositoryWebhookTriggerMatcherFactory.ts","../src/scheduler/InlineDrivingSchedulerFactory.ts","../src/bootstrap/runtime/EngineRuntimeRegistrar.ts"],"sourcesContent":["import {\n EngineExecutionLimitsPolicy,\n ENGINE_EXECUTION_LIMITS_DEFAULTS,\n type EngineExecutionLimitsPolicyConfig,\n} from \"./EngineExecutionLimitsPolicy\";\n\n/**\n * Builds {@link EngineExecutionLimitsPolicy} by merging {@link ENGINE_EXECUTION_LIMITS_DEFAULTS} with optional `overrides` (e.g. host `runtime.engineExecutionLimits`).\n */\nexport class EngineExecutionLimitsPolicyFactory {\n create(overrides?: Partial<EngineExecutionLimitsPolicyConfig>): EngineExecutionLimitsPolicy {\n return new EngineExecutionLimitsPolicy({ ...ENGINE_EXECUTION_LIMITS_DEFAULTS, ...overrides });\n }\n}\n","import type { PersistedRunState, WorkflowDefinition, WorkflowExecutionRepository } from \"../../types\";\n\nimport { WorkflowStoragePolicyEvaluator } from \"./WorkflowStoragePolicyEvaluator\";\n\nexport class RunTerminalPersistenceCoordinator {\n constructor(\n private readonly runRepository: WorkflowExecutionRepository,\n private readonly storageEvaluator: WorkflowStoragePolicyEvaluator,\n ) {}\n\n async maybeDeleteAfterTerminalState(args: {\n workflow: WorkflowDefinition;\n state: PersistedRunState;\n finalStatus: \"completed\" | \"failed\";\n finishedAt: string;\n }): Promise<void> {\n const persist = await this.storageEvaluator.shouldPersist(args.workflow, args.state.policySnapshot, {\n runId: args.state.runId,\n workflowId: args.state.workflowId,\n workflow: args.workflow,\n finalStatus: args.finalStatus,\n startedAt: args.state.startedAt,\n finishedAt: args.finishedAt,\n });\n if (persist) return;\n if (!this.runRepository.deleteRun) return;\n await this.runRepository.deleteRun(args.state.runId);\n }\n}\n","import type { TypeToken } from \"../di\";\nimport type {\n NodeErrorHandler,\n NodeErrorHandlerSpec,\n NodeResolver,\n WorkflowErrorHandler,\n WorkflowErrorHandlerSpec,\n} from \"../types\";\n\nexport class WorkflowPolicyErrorServices {\n constructor(private readonly nodeResolver: NodeResolver) {}\n\n resolveNodeErrorHandler(spec: NodeErrorHandlerSpec | undefined): NodeErrorHandler | undefined {\n if (!spec) return undefined;\n if (\n typeof spec === \"object\" &&\n spec !== null &&\n \"handle\" in spec &&\n typeof (spec as NodeErrorHandler).handle === \"function\"\n ) {\n return spec as NodeErrorHandler;\n }\n return this.nodeResolver.resolve(spec as TypeToken<NodeErrorHandler>);\n }\n\n resolveWorkflowErrorHandler(spec: WorkflowErrorHandlerSpec | undefined): WorkflowErrorHandler | undefined {\n if (!spec) return undefined;\n if (\n typeof spec === \"object\" &&\n spec !== null &&\n \"onError\" in spec &&\n typeof (spec as WorkflowErrorHandler).onError === \"function\"\n ) {\n return spec as WorkflowErrorHandler;\n }\n return this.nodeResolver.resolve(spec as TypeToken<WorkflowErrorHandler>);\n }\n}\n","import type { TypeToken } from \"../../di\";\nimport type {\n NodeResolver,\n PersistedRunPolicySnapshot,\n WorkflowDefinition,\n WorkflowStoragePolicyDecisionArgs,\n WorkflowStoragePolicyMode,\n WorkflowStoragePolicyResolver,\n} from \"../../types\";\n\nexport class WorkflowStoragePolicyEvaluator {\n constructor(private readonly nodeResolver: NodeResolver) {}\n\n async shouldPersist(\n workflow: WorkflowDefinition,\n snapshot: PersistedRunPolicySnapshot | undefined,\n args: WorkflowStoragePolicyDecisionArgs,\n ): Promise<boolean> {\n const spec = workflow.storagePolicy;\n if (spec === undefined) {\n return this.modeMatches(snapshot?.storagePolicy ?? \"ALL\", args);\n }\n if (typeof spec === \"string\") {\n return this.modeMatches(spec as WorkflowStoragePolicyMode, args);\n }\n const resolver = this.nodeResolver.resolve(\n spec as TypeToken<WorkflowStoragePolicyResolver>,\n ) as WorkflowStoragePolicyResolver;\n return Boolean(await resolver.shouldPersist(args));\n }\n\n private modeMatches(mode: WorkflowStoragePolicyMode, args: WorkflowStoragePolicyDecisionArgs): boolean {\n if (mode === \"ALL\") return true;\n if (mode === \"NEVER\") return false;\n if (mode === \"SUCCESS\") return args.finalStatus === \"completed\";\n if (mode === \"ERROR\") return args.finalStatus === \"failed\";\n return true;\n }\n}\n","import { RunFinishedAtFactory } from \"../contracts/runFinishedAtFactory\";\nimport type { PersistedRunState, RunSummary } from \"../types\";\n\n/** Maps persisted run state to API run summaries for listings. */\nexport class RunSummaryMapper {\n static fromPersistedState(state: PersistedRunState): RunSummary {\n return {\n runId: state.runId,\n workflowId: state.workflowId,\n startedAt: state.startedAt,\n status: state.status,\n finishedAt: RunFinishedAtFactory.resolveIso(state),\n parent: state.parent,\n executionOptions: state.executionOptions,\n };\n }\n}\n","import type {\n EngineRunCounters,\n NodeId,\n NodeOutputs,\n ParentExecutionRef,\n PersistedRunSchedulingState,\n PersistedRunState,\n RunId,\n RunSummary,\n WorkflowExecutionListingRepository,\n WorkflowExecutionPruneRepository,\n WorkflowExecutionRepository,\n RunPruneCandidate,\n WorkflowId,\n} from \"../types\";\nimport { RunFinishedAtFactory } from \"../contracts/runFinishedAtFactory\";\nimport { RunSummaryMapper } from \"./RunSummaryMapper\";\n\nexport class InMemoryWorkflowExecutionRepository\n implements WorkflowExecutionRepository, WorkflowExecutionListingRepository, WorkflowExecutionPruneRepository\n{\n private readonly runs = new Map<RunId, PersistedRunState>();\n\n async createRun(args: {\n runId: RunId;\n workflowId: WorkflowId;\n startedAt: string;\n parent?: ParentExecutionRef;\n executionOptions?: PersistedRunState[\"executionOptions\"];\n control?: PersistedRunState[\"control\"];\n workflowSnapshot?: PersistedRunState[\"workflowSnapshot\"];\n mutableState?: PersistedRunState[\"mutableState\"];\n policySnapshot?: PersistedRunState[\"policySnapshot\"];\n engineCounters?: EngineRunCounters;\n }): Promise<void> {\n this.runs.set(args.runId, {\n runId: args.runId,\n workflowId: args.workflowId,\n startedAt: args.startedAt,\n revision: 0,\n parent: args.parent,\n executionOptions: args.executionOptions,\n control: args.control,\n workflowSnapshot: args.workflowSnapshot,\n mutableState: args.mutableState,\n policySnapshot: args.policySnapshot,\n engineCounters: args.engineCounters,\n status: \"running\",\n queue: [],\n outputsByNode: {} as Record<NodeId, NodeOutputs>,\n nodeSnapshotsByNodeId: {},\n connectionInvocations: [],\n });\n }\n\n async load(runId: RunId): Promise<PersistedRunState | undefined> {\n return this.runs.get(runId);\n }\n\n async loadSchedulingState(runId: RunId): Promise<PersistedRunSchedulingState | undefined> {\n const state = this.runs.get(runId);\n if (!state) {\n return undefined;\n }\n return {\n pending: state.pending ? { ...state.pending } : undefined,\n queue: state.queue.map((entry) => ({ ...entry })),\n };\n }\n\n async save(state: PersistedRunState): Promise<void> {\n this.runs.set(state.runId, { ...state, revision: (state.revision ?? 0) + 1 });\n }\n\n async deleteRun(runId: RunId): Promise<void> {\n this.runs.delete(runId);\n }\n\n async listRuns(args?: Readonly<{ workflowId?: WorkflowId; limit?: number }>): Promise<ReadonlyArray<RunSummary>> {\n const limit = args?.limit ?? 50;\n const summaries = [...this.runs.values()]\n .filter((s) => (args?.workflowId ? s.workflowId === args.workflowId : true))\n .sort((a, b) => b.startedAt.localeCompare(a.startedAt))\n .slice(0, limit)\n .map((s) => RunSummaryMapper.fromPersistedState(s));\n return summaries;\n }\n\n async listRunsOlderThan(\n args: Readonly<{ beforeIso: string; limit?: number }>,\n ): Promise<ReadonlyArray<RunPruneCandidate>> {\n const limit = args.limit ?? 100;\n const out: RunPruneCandidate[] = [];\n for (const s of this.runs.values()) {\n if (s.status !== \"completed\" && s.status !== \"failed\") continue;\n const finishedAt = RunFinishedAtFactory.resolveIso(s);\n if (!finishedAt || finishedAt >= args.beforeIso) continue;\n out.push({\n runId: s.runId,\n workflowId: s.workflowId,\n startedAt: s.startedAt,\n finishedAt,\n });\n }\n out.sort((a, b) => a.finishedAt.localeCompare(b.finishedAt));\n return out.slice(0, limit);\n }\n}\n","import type {\n NodeActivationContinuation,\n NodeExecutor,\n NodeExecutionRequest,\n NodeExecutionRequestHandler,\n PersistedRunState,\n RunDataFactory,\n WorkflowDefinition,\n WorkflowExecutionRepository,\n WorkflowSnapshotResolver,\n} from \"../types\";\nimport type { EngineExecutionLimitsPolicy } from \"../policies/executionLimits/EngineExecutionLimitsPolicy\";\nimport { NodeActivationRequestComposer } from \"../execution/NodeActivationRequestComposer\";\nimport { NodeRunStateWriterFactory } from \"../execution/NodeRunStateWriterFactory\";\nimport { WorkflowRunExecutionContextFactory } from \"../execution/WorkflowRunExecutionContextFactory\";\n\ntype PersistedWorkflowLike = Readonly<{\n workflowId: PersistedRunState[\"workflowId\"];\n workflowSnapshot?: NonNullable<Awaited<ReturnType<WorkflowExecutionRepository[\"load\"]>>>[\"workflowSnapshot\"];\n}>;\n\nexport class NodeExecutionRequestHandlerService implements NodeExecutionRequestHandler {\n constructor(\n private readonly workflowExecutionRepository: WorkflowExecutionRepository,\n private readonly workflowSnapshotResolver: WorkflowSnapshotResolver,\n private readonly runDataFactory: RunDataFactory,\n private readonly runExecutionContextFactory: WorkflowRunExecutionContextFactory,\n private readonly nodeStatePublisherFactory: NodeRunStateWriterFactory,\n private readonly nodeActivationRequestComposer: NodeActivationRequestComposer,\n private readonly nodeExecutor: NodeExecutor,\n private readonly continuation: NodeActivationContinuation,\n private readonly executionLimitsPolicy: EngineExecutionLimitsPolicy,\n ) {}\n\n async handleNodeExecutionRequest(request: NodeExecutionRequest): Promise<void> {\n const [state, schedulingState] = await Promise.all([\n this.workflowExecutionRepository.load(request.runId),\n this.workflowExecutionRepository.loadSchedulingState(request.runId),\n ]);\n if (!state) {\n throw new Error(`Unknown runId: ${request.runId}`);\n }\n if (state.workflowId !== request.workflowId) {\n throw new Error(`workflowId mismatch for run ${request.runId}: ${state.workflowId} vs ${request.workflowId}`);\n }\n const pendingExecution = schedulingState?.pending;\n if (state.status !== \"pending\" || !pendingExecution) {\n return;\n }\n if (pendingExecution.activationId !== request.activationId || pendingExecution.nodeId !== request.nodeId) {\n return;\n }\n\n const workflow = this.resolvePersistedWorkflow(state);\n if (!workflow) {\n throw new Error(`Unknown workflowId: ${state.workflowId}`);\n }\n const definition = workflow.nodes.find((node) => node.id === request.nodeId);\n if (!definition) {\n throw new Error(`Unknown nodeId: ${request.nodeId}`);\n }\n if (definition.kind !== \"node\") {\n throw new Error(`Node ${request.nodeId} is not runnable`);\n }\n\n const resolvedParent = request.parent ?? state.parent;\n const data = this.runDataFactory.create(state.outputsByNode);\n const limits = this.resolveEngineLimitsFromState(state);\n const persistedInput = pendingExecution.inputsByPort.in ?? request.input;\n const base = this.runExecutionContextFactory.create({\n runId: state.runId,\n workflowId: state.workflowId,\n nodeId: request.nodeId,\n parent: resolvedParent,\n subworkflowDepth: state.executionOptions?.subworkflowDepth ?? 0,\n engineMaxNodeActivations: limits.engineMaxNodeActivations,\n engineMaxSubworkflowDepth: limits.engineMaxSubworkflowDepth,\n data,\n nodeState: this.nodeStatePublisherFactory.create(state.runId, state.workflowId, resolvedParent),\n });\n const activationRequest = this.nodeActivationRequestComposer.createSingleFromDefinitionWithActivation({\n activationId: request.activationId,\n runId: request.runId,\n workflowId: request.workflowId,\n parent: resolvedParent,\n executionOptions: request.executionOptions ?? state.executionOptions,\n base,\n data,\n definition: {\n id: definition.id,\n config: definition.config,\n },\n batchId: pendingExecution.batchId ?? \"batch_1\",\n input: persistedInput,\n });\n\n await this.continuation.markNodeRunning({\n runId: activationRequest.runId,\n activationId: activationRequest.activationId,\n nodeId: activationRequest.nodeId,\n inputsByPort: pendingExecution.inputsByPort,\n });\n\n let outputs;\n try {\n outputs = await this.nodeExecutor.execute(activationRequest);\n } catch (error) {\n await this.resumeAfterExecutionError(activationRequest, this.asError(error));\n return;\n }\n\n await this.resumeAfterExecutionResult(activationRequest, outputs ?? {});\n }\n\n private resolvePersistedWorkflow(state: PersistedWorkflowLike): WorkflowDefinition | undefined {\n return this.workflowSnapshotResolver.resolve({\n workflowId: state.workflowId,\n workflowSnapshot: state.workflowSnapshot,\n });\n }\n\n private resolveEngineLimitsFromState(state: PersistedRunState): {\n engineMaxNodeActivations: number;\n engineMaxSubworkflowDepth: number;\n } {\n const fallback = this.executionLimitsPolicy.createRootExecutionOptions();\n return {\n engineMaxNodeActivations: state.executionOptions?.maxNodeActivations ?? fallback.maxNodeActivations!,\n engineMaxSubworkflowDepth: state.executionOptions?.maxSubworkflowDepth ?? fallback.maxSubworkflowDepth!,\n };\n }\n\n private async resumeAfterExecutionResult(\n request: ReturnType<NodeActivationRequestComposer[\"createSingleFromDefinitionWithActivation\"]>,\n outputs: unknown,\n ): Promise<void> {\n try {\n await this.continuation.resumeFromNodeResult({\n runId: request.runId,\n activationId: request.activationId,\n nodeId: request.nodeId,\n outputs: outputs as never,\n });\n } catch (error) {\n this.rethrowUnlessIgnorableContinuationError(error);\n }\n }\n\n private async resumeAfterExecutionError(\n request: ReturnType<NodeActivationRequestComposer[\"createSingleFromDefinitionWithActivation\"]>,\n error: Error,\n ): Promise<void> {\n try {\n await this.continuation.resumeFromNodeError({\n runId: request.runId,\n activationId: request.activationId,\n nodeId: request.nodeId,\n error,\n });\n } catch (continuationError) {\n this.rethrowUnlessIgnorableContinuationError(continuationError);\n }\n }\n\n private asError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n }\n\n private rethrowUnlessIgnorableContinuationError(error: unknown): void {\n if (this.isIgnorableContinuationError(error)) {\n return;\n }\n throw this.asError(error);\n }\n\n private isIgnorableContinuationError(error: unknown): boolean {\n const message = this.asError(error).message;\n return (\n message.includes(\" is not pending\") ||\n message.includes(\"activationId mismatch\") ||\n message.includes(\"nodeId mismatch\")\n );\n }\n}\n","import type { InputPortKey, Items, NodeId, OutputPortKey, RunQueueEntry } from \"../types\";\n\nimport { WorkflowTopology } from \"./WorkflowTopologyPlanner\";\n\nexport type PlannedActivation =\n | Readonly<{ kind: \"single\"; nodeId: NodeId; input: Items; batchId: string }>\n | Readonly<{ kind: \"multi\"; nodeId: NodeId; inputsByPort: Readonly<Record<InputPortKey, Items>>; batchId: string }>;\n\nexport class RunQueuePlanner {\n constructor(\n private readonly topology: WorkflowTopology,\n private readonly nodeInstances: ReadonlyMap<NodeId, unknown>,\n ) {}\n\n validateNodeKinds(): void {\n for (const [toNodeId, inputs] of this.topology.expectedInputsByNode.entries()) {\n if (inputs.length <= 1) {\n const only = inputs[0];\n if (only && only !== \"in\") {\n const inst = this.nodeInstances.get(toNodeId);\n if (!this.isMultiInputNode(inst))\n throw new Error(`Node ${toNodeId} only supports input 'in' (got '${only}').`);\n }\n continue;\n }\n\n const inst = this.nodeInstances.get(toNodeId);\n if (!this.isMultiInputNode(inst)) {\n throw new Error(\n `Node ${toNodeId} has ${inputs.length} inbound edges. Insert a Merge node to combine branches.`,\n );\n }\n }\n }\n\n seedFromTrigger(args: { startNodeId: NodeId; items: Items; batchId: string }): RunQueueEntry[] {\n const queue: RunQueueEntry[] = [];\n for (const e of this.topology.outgoingByNode.get(args.startNodeId) ?? []) {\n if (e.output !== \"main\") continue;\n this.enqueueEdge(queue, {\n batchId: args.batchId,\n to: e.to,\n from: { nodeId: args.startNodeId, output: \"main\" },\n items: args.items,\n });\n }\n return queue;\n }\n\n applyOutputs(\n queue: RunQueueEntry[],\n args: { fromNodeId: NodeId; outputs: Record<string, Items | undefined>; batchId: string },\n ): void {\n for (const e of this.topology.outgoingByNode.get(args.fromNodeId) ?? []) {\n const outItems = (args.outputs as any)[e.output] ?? [];\n this.enqueueEdge(queue, {\n batchId: args.batchId,\n to: e.to,\n from: { nodeId: args.fromNodeId, output: e.output },\n items: outItems,\n });\n }\n }\n\n nextActivation(queue: RunQueueEntry[]): PlannedActivation | null {\n const readyCollect = this.resolveReadyCollect(queue);\n if (readyCollect) {\n return readyCollect;\n }\n\n const jobIdx = queue.findIndex((q) => !q.collect);\n if (jobIdx === -1) {\n if (queue.length === 0) return null;\n const sealedCollect = this.resolveSealedCollect(queue);\n if (sealedCollect) {\n return sealedCollect;\n }\n const stuck = queue[0]!;\n throw new Error(this.describeUnsatisfiedCollect(stuck));\n }\n\n const job = queue.splice(jobIdx, 1)[0]!;\n const def = this.topology.defsById.get(job.nodeId);\n if (!def || def.kind !== \"node\") return this.nextActivation(queue);\n return { kind: \"single\", nodeId: job.nodeId, input: job.input, batchId: job.batchId ?? \"batch_1\" };\n }\n\n sumItemsByPort(inputsByPort: Readonly<Record<InputPortKey, Items>>): number {\n let n = 0;\n for (const v of Object.values(inputsByPort)) n += v?.length ?? 0;\n return n;\n }\n\n private resolveReadyCollect(queue: RunQueueEntry[]): PlannedActivation | null {\n for (let i = 0; i < queue.length; i++) {\n const ready = this.tryDequeueCollect(queue, i);\n if (ready) {\n return ready;\n }\n }\n return null;\n }\n\n private resolveSealedCollect(queue: RunQueueEntry[]): PlannedActivation | null {\n for (let i = 0; i < queue.length; i++) {\n const queueEntry = queue[i]!;\n if (!queueEntry.collect) {\n continue;\n }\n const received = queueEntry.collect.received as Record<InputPortKey, Items>;\n if (Object.keys(received).length === 0) {\n continue;\n }\n this.fillMissingCollectInputs(queueEntry);\n const ready = this.tryDequeueCollect(queue, i);\n if (ready) {\n return ready;\n }\n }\n return null;\n }\n\n private tryDequeueCollect(queue: RunQueueEntry[], index: number): PlannedActivation | null {\n const queueEntry = queue[index]!;\n if (!queueEntry.collect) {\n return null;\n }\n const batchId = queueEntry.batchId ?? \"batch_1\";\n const expected = queueEntry.collect.expectedInputs ?? [];\n const received = queueEntry.collect.received as Record<InputPortKey, Items>;\n for (const input of expected) {\n if (!(input in received)) {\n return null;\n }\n }\n queue.splice(index, 1);\n return { kind: \"multi\", nodeId: queueEntry.nodeId, inputsByPort: received, batchId };\n }\n\n private fillMissingCollectInputs(queueEntry: RunQueueEntry): void {\n if (!queueEntry.collect) {\n return;\n }\n const received = queueEntry.collect.received as Record<InputPortKey, Items>;\n for (const input of queueEntry.collect.expectedInputs ?? []) {\n if (!(input in received)) {\n received[input] = [];\n }\n }\n }\n\n private enqueueEdge(\n queue: RunQueueEntry[],\n args: Readonly<{\n batchId: string;\n to: { nodeId: NodeId; input: InputPortKey };\n from: { nodeId: NodeId; output: OutputPortKey };\n items: Items;\n }>,\n ): void {\n const target = this.nodeInstances.get(args.to.nodeId);\n const isMulti = this.isMultiInputNode(target);\n\n if (!isMulti) {\n if (args.items.length === 0) {\n if (this.shouldContinueAfterEmptyOutputFromSource(args.from.nodeId)) {\n queue.push({\n nodeId: args.to.nodeId,\n input: args.items,\n toInput: args.to.input,\n batchId: args.batchId,\n from: args.from,\n });\n return;\n }\n this.propagateEmptyPath(queue, args.to.nodeId, args.batchId);\n return;\n }\n queue.push({\n nodeId: args.to.nodeId,\n input: args.items,\n toInput: args.to.input,\n batchId: args.batchId,\n from: args.from,\n });\n return;\n }\n\n const expected = this.topology.expectedInputsByNode.get(args.to.nodeId) ?? [];\n let collect = queue.find(\n (q) => q.nodeId === args.to.nodeId && (q.batchId ?? \"batch_1\") === args.batchId && !!q.collect,\n );\n if (!collect) {\n collect = {\n nodeId: args.to.nodeId,\n input: [],\n batchId: args.batchId,\n collect: { expectedInputs: expected, received: {} as Record<InputPortKey, Items> },\n };\n queue.push(collect);\n }\n\n const received = (collect.collect as any).received as Record<InputPortKey, Items>;\n received[args.to.input] = args.items;\n }\n\n private shouldContinueAfterEmptyOutputFromSource(fromNodeId: NodeId): boolean {\n const def = this.topology.defsById.get(fromNodeId);\n if (!def) {\n return false;\n }\n return def.config.continueWhenEmptyOutput === true;\n }\n\n private propagateEmptyPath(queue: RunQueueEntry[], nodeId: NodeId, batchId: string): void {\n for (const edge of this.topology.outgoingByNode.get(nodeId) ?? []) {\n this.enqueueEdge(queue, {\n batchId,\n to: edge.to,\n from: { nodeId, output: edge.output },\n items: [],\n });\n }\n }\n\n private isMultiInputNode(n: unknown): boolean {\n return typeof (n as any)?.executeMulti === \"function\";\n }\n\n private describeUnsatisfiedCollect(queueEntry: RunQueueEntry): string {\n const batchId = queueEntry.batchId ?? \"batch_1\";\n const expectedInputs = queueEntry.collect?.expectedInputs ?? [];\n const receivedInputs = Object.keys(\n (queueEntry.collect?.received ?? {}) as Record<InputPortKey, Items>,\n ) as InputPortKey[];\n const missingInputs = expectedInputs.filter((input) => !receivedInputs.includes(input));\n const mergeNodeLabel = this.formatNodeLabel(queueEntry.nodeId);\n const receivedSummary = this.describeReceivedInputs(queueEntry);\n const missingSummary = this.describeMissingInputs(queueEntry.nodeId, missingInputs);\n\n return [\n `Multi-input collect is stuck at ${mergeNodeLabel} (batchId=${batchId}).`,\n `Expected inputs: ${this.formatInputList(expectedInputs)}.`,\n `Received inputs: ${receivedSummary}.`,\n `Missing inputs: ${missingSummary}.`,\n ].join(\" \");\n }\n\n private describeReceivedInputs(queueEntry: RunQueueEntry): string {\n const received = (queueEntry.collect?.received ?? {}) as Record<InputPortKey, Items>;\n const receivedEntries = Object.entries(received);\n if (receivedEntries.length === 0) {\n return \"none\";\n }\n return receivedEntries\n .map(([input, items]) => `${input} (${items.length} item${items.length === 1 ? \"\" : \"s\"})`)\n .join(\", \");\n }\n\n private describeMissingInputs(nodeId: NodeId, missingInputs: ReadonlyArray<InputPortKey>): string {\n if (missingInputs.length === 0) {\n return \"none\";\n }\n return missingInputs\n .map((input) => {\n const sources = this.findSources(nodeId, input);\n if (sources.length === 0) {\n return input;\n }\n return `${input} from ${sources.join(\" or \")}`;\n })\n .join(\", \");\n }\n\n private findSources(nodeId: NodeId, input: InputPortKey): string[] {\n const matches: string[] = [];\n for (const [sourceNodeId, edges] of this.topology.outgoingByNode.entries()) {\n for (const edge of edges) {\n if (edge.to.nodeId === nodeId && edge.to.input === input) {\n matches.push(this.formatNodeLabel(sourceNodeId));\n }\n }\n }\n return matches;\n }\n\n private formatInputList(inputs: ReadonlyArray<InputPortKey>): string {\n return inputs.length > 0 ? `[${inputs.join(\", \")}]` : \"[]\";\n }\n\n private formatNodeLabel(nodeId: NodeId): string {\n const definition = this.topology.defsById.get(nodeId);\n const instance = this.nodeInstances.get(nodeId);\n const typeName =\n definition?.type && typeof definition.type === \"function\"\n ? definition.type.name\n : instance && typeof instance === \"object\" && \"constructor\" in instance\n ? ((instance.constructor as { name?: string }).name ?? \"Node\")\n : \"Node\";\n return definition?.name ? `\"${definition.name}\" (${typeName}:${nodeId})` : `${typeName}:${nodeId}`;\n }\n}\n","import type { WorkflowDefinition, WorkflowNodeInstanceFactory } from \"../types\";\nimport { WorkflowExecutableNodeClassifierFactory } from \"../workflow/definition/WorkflowExecutableNodeClassifierFactory\";\n\nimport { RunQueuePlanner } from \"./RunQueuePlanner\";\nimport { WorkflowTopology } from \"./WorkflowTopologyPlanner\";\n\nexport class EngineWorkflowPlanningFactory {\n constructor(private readonly workflowNodeInstanceFactory: WorkflowNodeInstanceFactory) {}\n\n create(workflow: WorkflowDefinition): Readonly<{ topology: WorkflowTopology; planner: RunQueuePlanner }> {\n this.validateAcyclic(workflow);\n const topology = WorkflowTopology.fromWorkflow(workflow);\n const nodeInstances = this.workflowNodeInstanceFactory.createNodes(workflow);\n const planner = new RunQueuePlanner(topology, nodeInstances);\n planner.validateNodeKinds();\n return { topology, planner };\n }\n\n private validateAcyclic(workflow: WorkflowDefinition): void {\n const classifier = WorkflowExecutableNodeClassifierFactory.create(workflow);\n const outgoing = new Map<string, string[]>();\n const visitState = new Map<string, \"unvisited\" | \"visiting\" | \"done\">();\n\n for (const node of workflow.nodes) {\n if (classifier.isExecutableNodeId(node.id)) {\n visitState.set(node.id, \"unvisited\");\n }\n }\n\n for (const edge of workflow.edges) {\n if (!classifier.isExecutableNodeId(edge.from.nodeId) || !classifier.isExecutableNodeId(edge.to.nodeId)) {\n continue;\n }\n const destinations = outgoing.get(edge.from.nodeId) ?? [];\n destinations.push(edge.to.nodeId);\n outgoing.set(edge.from.nodeId, destinations);\n }\n\n for (const node of workflow.nodes) {\n if (classifier.isExecutableNodeId(node.id) && visitState.get(node.id) === \"unvisited\") {\n this.depthFirstSearch(node.id, outgoing, visitState);\n }\n }\n }\n\n private depthFirstSearch(\n nodeId: string,\n outgoing: ReadonlyMap<string, ReadonlyArray<string>>,\n visitState: Map<string, \"unvisited\" | \"visiting\" | \"done\">,\n ): void {\n visitState.set(nodeId, \"visiting\");\n for (const toNodeId of outgoing.get(nodeId) ?? []) {\n const state = visitState.get(toNodeId);\n if (state === \"visiting\") {\n throw new Error(`Workflow graph contains a directed cycle (edge ${nodeId} -> ${toNodeId}).`);\n }\n if (state === \"unvisited\") {\n this.depthFirstSearch(toNodeId, outgoing, visitState);\n }\n }\n visitState.set(nodeId, \"done\");\n }\n}\n","import type {\n ExecutionContextFactory,\n Items,\n JsonValue,\n NodeDefinition,\n NodeId,\n NodeResolver,\n RunDataFactory,\n RunIdFactory,\n TestableTriggerNode,\n TriggerCleanupHandle,\n TriggerInstanceId,\n TriggerNode,\n TriggerNodeConfig,\n TriggerSetupContext,\n TriggerSetupStateRepository,\n TriggerRuntimeDiagnostics,\n WorkflowActivationPolicy,\n WorkflowDefinition,\n WorkflowId,\n WorkflowRepository,\n} from \"../types\";\n\nimport { CredentialResolverFactory } from \"../execution/CredentialResolverFactory\";\nimport type { NodeRunStateWriterFactory } from \"../execution/NodeRunStateWriterFactory\";\nimport type { EngineExecutionLimitsPolicy } from \"../policies/executionLimits/EngineExecutionLimitsPolicy\";\n\nexport interface TriggerEmitHandler {\n emit(workflow: WorkflowDefinition, triggerNodeId: NodeId, items: Items): Promise<void>;\n}\n\nexport class TriggerRuntimeService {\n private readonly credentialResolverFactory: CredentialResolverFactory;\n private readonly triggerCleanupHandlesByKey = new Map<string, TriggerCleanupHandle[]>();\n\n constructor(\n private readonly workflowRepository: WorkflowRepository,\n private readonly workflowActivationPolicy: WorkflowActivationPolicy,\n private readonly runIdFactory: RunIdFactory,\n private readonly runDataFactory: RunDataFactory,\n private readonly executionContextFactory: ExecutionContextFactory,\n credentialResolverFactory: CredentialResolverFactory,\n private readonly nodeExecutionStatePublisherFactory: NodeRunStateWriterFactory,\n private readonly nodeResolver: NodeResolver,\n private readonly triggerSetupStateRepository: TriggerSetupStateRepository,\n private readonly emitHandler: TriggerEmitHandler,\n private readonly executionLimitsPolicy: EngineExecutionLimitsPolicy,\n private readonly diagnostics?: TriggerRuntimeDiagnostics,\n ) {\n this.credentialResolverFactory = credentialResolverFactory;\n }\n\n async startTriggers(): Promise<void> {\n for (const wf of this.workflowRepository.list()) {\n if (!this.workflowActivationPolicy.isActive(wf.id)) {\n const summaries = this.formatTriggerSummaries(wf);\n if (summaries.length > 0) {\n this.logInfo(\n `Workflow \"${wf.name}\" (${wf.id}) is inactive; skipping trigger setup — ${summaries.join(\"; \")}.`,\n );\n }\n continue;\n }\n await this.startTriggersForWorkflow(wf);\n }\n }\n\n async syncWorkflowTriggersForActivation(workflowId: WorkflowId): Promise<void> {\n const wf = this.workflowRepository.get(workflowId);\n if (!wf) {\n return;\n }\n const summaries = this.formatTriggerSummaries(wf);\n if (summaries.length > 0) {\n this.logInfo(`Workflow \"${wf.name}\" (${wf.id}): stopping triggers — ${summaries.join(\"; \")}.`);\n }\n await this.stopTriggersForWorkflow(wf);\n if (this.workflowActivationPolicy.isActive(workflowId)) {\n if (summaries.length > 0) {\n this.logInfo(`Workflow \"${wf.name}\" (${wf.id}): activation on; starting triggers — ${summaries.join(\"; \")}.`);\n }\n await this.startTriggersForWorkflow(wf);\n } else {\n this.logInfo(`Workflow \"${wf.name}\" (${wf.id}): activation off; triggers not started.`);\n }\n }\n\n async stop(): Promise<void> {\n for (const workflow of this.workflowRepository.list()) {\n await this.stopTriggersForWorkflow(workflow);\n }\n }\n\n async createTriggerTestItems(args: { workflow: WorkflowDefinition; nodeId: NodeId }): Promise<Items | undefined> {\n const definition = args.workflow.nodes.find((node) => node.id === args.nodeId);\n if (!definition) {\n throw new Error(`Unknown trigger nodeId: ${args.nodeId}`);\n }\n if (definition.kind !== \"trigger\") {\n throw new Error(`Node ${args.nodeId} is not a trigger`);\n }\n const node = this.nodeResolver.resolve(definition.type) as TriggerNode;\n if (!this.isTestableTriggerNode(node)) {\n return undefined;\n }\n const data = this.runDataFactory.create();\n const runId = this.runIdFactory.makeRunId();\n const trigger = { workflowId: args.workflow.id, nodeId: definition.id } as const;\n const previousState = await this.triggerSetupStateRepository.load(trigger);\n return await node.getTestItems({\n ...this.createExecutionContext({\n runId,\n workflowId: args.workflow.id,\n nodeId: definition.id,\n data,\n }),\n trigger,\n nodeId: definition.id,\n config: definition.config as TriggerNodeConfig,\n previousState: previousState?.state as never,\n });\n }\n\n private async startTriggersForWorkflow(wf: WorkflowDefinition): Promise<void> {\n for (const def of wf.nodes) {\n if (def.kind !== \"trigger\") continue;\n const node = this.nodeResolver.resolve(def.type) as TriggerNode;\n const data = this.runDataFactory.create();\n const triggerRunId = this.runIdFactory.makeRunId();\n const trigger = { workflowId: wf.id, nodeId: def.id } as const;\n await this.stopTrigger(trigger);\n const previousState = await this.triggerSetupStateRepository.load(trigger);\n let nextState: unknown;\n try {\n nextState = await node.setup({\n ...this.createExecutionContext({\n runId: triggerRunId,\n workflowId: wf.id,\n nodeId: def.id,\n data,\n }),\n trigger,\n config: def.config as TriggerNodeConfig,\n previousState: previousState?.state as never,\n registerCleanup: (cleanup) => {\n this.registerTriggerCleanupHandle(trigger, cleanup);\n },\n emit: async (items) => {\n await this.emitHandler.emit(wf, def.id, items);\n },\n } satisfies TriggerSetupContext<TriggerNodeConfig>);\n } catch (triggerError: unknown) {\n await this.stopTrigger(trigger);\n const message = triggerError instanceof Error ? triggerError.message : String(triggerError);\n this.logWarn(`Skipping trigger setup for workflow ${wf.id} node ${def.id}: ${message}`);\n continue;\n }\n if (nextState === undefined) {\n await this.triggerSetupStateRepository.delete(trigger);\n } else {\n await this.triggerSetupStateRepository.save({\n trigger,\n updatedAt: new Date().toISOString(),\n state: nextState as JsonValue | undefined,\n });\n }\n }\n }\n\n private async stopTriggersForWorkflow(workflow: WorkflowDefinition): Promise<void> {\n for (const node of workflow.nodes) {\n if (node.kind !== \"trigger\") {\n continue;\n }\n await this.stopTrigger({\n workflowId: workflow.id,\n nodeId: node.id,\n });\n }\n }\n\n private createExecutionContext(args: {\n runId: ReturnType<RunIdFactory[\"makeRunId\"]>;\n workflowId: string;\n nodeId: NodeId;\n data: ReturnType<RunDataFactory[\"create\"]>;\n }) {\n const nodeState = this.nodeExecutionStatePublisherFactory.create(args.runId, args.workflowId, undefined);\n const rootLimits = this.executionLimitsPolicy.createRootExecutionOptions();\n return this.executionContextFactory.create({\n runId: args.runId,\n workflowId: args.workflowId,\n parent: undefined,\n subworkflowDepth: rootLimits.subworkflowDepth ?? 0,\n engineMaxNodeActivations: rootLimits.maxNodeActivations!,\n engineMaxSubworkflowDepth: rootLimits.maxSubworkflowDepth!,\n data: args.data,\n nodeState,\n getCredential: this.credentialResolverFactory.create(args.workflowId, args.nodeId),\n });\n }\n\n private registerTriggerCleanupHandle(trigger: TriggerInstanceId, cleanup: TriggerCleanupHandle): void {\n const key = this.toTriggerKey(trigger);\n const cleanups = this.triggerCleanupHandlesByKey.get(key) ?? [];\n cleanups.push(cleanup);\n this.triggerCleanupHandlesByKey.set(key, cleanups);\n }\n\n private async stopTrigger(trigger: TriggerInstanceId): Promise<void> {\n const key = this.toTriggerKey(trigger);\n const cleanups = this.triggerCleanupHandlesByKey.get(key) ?? [];\n this.triggerCleanupHandlesByKey.delete(key);\n for (const cleanup of [...cleanups].reverse()) {\n await cleanup.stop();\n }\n }\n\n private toTriggerKey(trigger: TriggerInstanceId): string {\n return `${trigger.workflowId}:${trigger.nodeId}`;\n }\n\n private formatTriggerSummaries(wf: WorkflowDefinition): string[] {\n const out: string[] = [];\n for (const def of wf.nodes) {\n if (def.kind !== \"trigger\") {\n continue;\n }\n out.push(this.describeTriggerNode(def));\n }\n return out;\n }\n\n private describeTriggerNode(def: NodeDefinition): string {\n const label = def.name !== undefined && def.name.trim().length > 0 ? def.name.trim() : String(def.id);\n const cfg = def.config as { endpointKey?: unknown };\n if (typeof cfg.endpointKey === \"string\" && cfg.endpointKey.trim().length > 0) {\n return `${label} (webhook \"${cfg.endpointKey.trim()}\")`;\n }\n return label;\n }\n\n private logInfo(message: string): void {\n if (this.diagnostics) {\n this.diagnostics.info(message);\n }\n }\n\n private logWarn(message: string): void {\n if (this.diagnostics) {\n this.diagnostics.warn(message);\n } else {\n console.warn(`[engine] ${message}`);\n }\n }\n\n private isTestableTriggerNode(node: TriggerNode): node is TestableTriggerNode<TriggerNodeConfig> {\n return typeof (node as Partial<TestableTriggerNode<TriggerNodeConfig>>).getTestItems === \"function\";\n }\n}\n","import type { RunId, RunResult, WebhookRunResult } from \"../types\";\n\nexport class EngineWaiters {\n private readonly completionWaiters = new Map<RunId, Array<(result: RunResult) => void>>();\n private readonly webhookResponseWaiters = new Map<RunId, Array<(result: WebhookRunResult) => void>>();\n\n waitForCompletion(runId: RunId): Promise<RunResult> {\n return new Promise((resolve) => {\n const list = this.completionWaiters.get(runId) ?? [];\n list.push(resolve);\n this.completionWaiters.set(runId, list);\n });\n }\n\n waitForWebhookResponse(runId: RunId): Promise<WebhookRunResult> {\n return new Promise((resolve) => {\n const list = this.webhookResponseWaiters.get(runId) ?? [];\n list.push(resolve);\n this.webhookResponseWaiters.set(runId, list);\n });\n }\n\n resolveRunCompletion(result: RunResult): void {\n if (result.status !== \"completed\" && result.status !== \"failed\") return;\n const list = this.completionWaiters.get(result.runId);\n if (!list || list.length === 0) return;\n this.completionWaiters.delete(result.runId);\n for (const r of list) r(result);\n }\n\n resolveWebhookResponse(result: WebhookRunResult): void {\n const list = this.webhookResponseWaiters.get(result.runId);\n if (!list || list.length === 0) return;\n this.webhookResponseWaiters.delete(result.runId);\n for (const resolve of list) resolve(result);\n }\n}\n","import type {\n CurrentStateExecutionRequest,\n HttpMethod,\n Items,\n NodeActivationContinuation,\n NodeActivationId,\n NodeExecutionRequest,\n NodeExecutionRequestHandler,\n NodeId,\n NodeInputsByPort,\n NodeOutputs,\n ParentExecutionRef,\n PersistedWorkflowTokenRegistryLike,\n RunExecutionOptions,\n RunId,\n RunResult,\n WorkflowExecutionRepository,\n WebhookRunResult,\n WebhookTriggerMatcher,\n WebhookTriggerResolution,\n WorkflowDefinition,\n WorkflowId,\n LiveWorkflowRepository,\n WorkflowSnapshotResolver,\n} from \"../types\";\n\ninterface EngineTriggerRuntime {\n startTriggers(): Promise<void>;\n stop(): Promise<void>;\n syncWorkflowTriggersForActivation(workflowId: WorkflowId): Promise<void>;\n createTriggerTestItems(args: { workflow: WorkflowDefinition; nodeId: NodeId }): Promise<Items | undefined>;\n}\n\ninterface EngineRunStartService {\n runWorkflow(\n wf: WorkflowDefinition,\n startAt: NodeId,\n items: Items,\n parent?: ParentExecutionRef,\n executionOptions?: RunExecutionOptions,\n persistedStateOverrides?: Readonly<{\n workflowSnapshot?: NonNullable<Awaited<ReturnType<WorkflowExecutionRepository[\"load\"]>>>[\"workflowSnapshot\"];\n mutableState?: NonNullable<Awaited<ReturnType<WorkflowExecutionRepository[\"load\"]>>>[\"mutableState\"];\n }>,\n ): Promise<RunResult>;\n runWorkflowFromState(request: CurrentStateExecutionRequest): Promise<RunResult>;\n}\n\ninterface EngineRunContinuationService {\n markNodeRunning(args: {\n runId: RunId;\n activationId: NodeActivationId;\n nodeId: NodeId;\n inputsByPort: NodeInputsByPort;\n }): Promise<void>;\n resumeFromNodeResult(args: {\n runId: RunId;\n activationId: NodeActivationId;\n nodeId: NodeId;\n outputs: NodeOutputs;\n }): Promise<RunResult>;\n resumeFromNodeError(args: {\n runId: RunId;\n activationId: NodeActivationId;\n nodeId: NodeId;\n error: Error;\n }): Promise<RunResult>;\n resumeFromStepResult(args: {\n runId: RunId;\n activationId: NodeActivationId;\n nodeId: NodeId;\n outputs: NodeOutputs;\n }): Promise<RunResult>;\n resumeFromStepError(args: {\n runId: RunId;\n activationId: NodeActivationId;\n nodeId: NodeId;\n error: Error;\n }): Promise<RunResult>;\n waitForCompletion(runId: RunId): Promise<Extract<RunResult, { status: \"completed\" | \"failed\" }>>;\n waitForWebhookResponse(runId: RunId): Promise<WebhookRunResult>;\n}\n\ninterface EngineNodeExecutionRequestHandler {\n handleNodeExecutionRequest(request: NodeExecutionRequest): Promise<void>;\n}\n\nexport interface EngineFacadeDeps {\n liveWorkflowRepository: LiveWorkflowRepository;\n tokenRegistry: PersistedWorkflowTokenRegistryLike;\n webhookTriggerMatcher: WebhookTriggerMatcher;\n workflowSnapshotResolver: WorkflowSnapshotResolver;\n triggerRuntime: EngineTriggerRuntime;\n runStartService: EngineRunStartService;\n runContinuationService: EngineRunContinuationService;\n nodeExecutionRequestHandler: EngineNodeExecutionRequestHandler;\n}\n\n/**\n * Runtime facade for orchestration, continuation, triggers, and webhook routing.\n * Prefer {@link import(\"../intents/RunIntentService\").RunIntentService} for host/HTTP invocation boundaries.\n * The class token is exported from `@codemation/core/bootstrap` (not the main `@codemation/core` barrel).\n */\nexport class Engine implements NodeActivationContinuation, NodeExecutionRequestHandler {\n constructor(private readonly deps: EngineFacadeDeps) {}\n\n loadWorkflows(workflows: ReadonlyArray<WorkflowDefinition>): void {\n this.deps.tokenRegistry.registerFromWorkflows?.(workflows);\n this.deps.liveWorkflowRepository.setWorkflows(workflows);\n this.deps.webhookTriggerMatcher.onEngineWorkflowsLoaded?.();\n }\n\n getTokenRegistry(): EngineFacadeDeps[\"tokenRegistry\"] {\n return this.deps.tokenRegistry;\n }\n\n resolveWorkflowSnapshot(args: {\n workflowId: WorkflowId;\n workflowSnapshot?: NonNullable<Awaited<ReturnType<WorkflowExecutionRepository[\"load\"]>>>[\"workflowSnapshot\"];\n }): WorkflowDefinition | undefined {\n return this.deps.workflowSnapshotResolver.resolve(args);\n }\n\n async startTriggers(): Promise<void> {\n return await this.deps.triggerRuntime.startTriggers();\n }\n\n async syncWorkflowTriggersForActivation(workflowId: WorkflowId): Promise<void> {\n await this.deps.triggerRuntime.syncWorkflowTriggersForActivation(workflowId);\n this.deps.webhookTriggerMatcher.reloadWebhookRoutes?.();\n }\n\n async start(workflows: WorkflowDefinition[]): Promise<void> {\n await this.stop();\n this.loadWorkflows(workflows);\n await this.startTriggers();\n }\n\n async stop(): Promise<void> {\n await this.deps.triggerRuntime.stop();\n this.deps.webhookTriggerMatcher.onEngineStopped?.();\n }\n\n resolveWebhookTrigger(args: { endpointPath: string; method: HttpMethod }): WebhookTriggerResolution {\n const entry = this.deps.webhookTriggerMatcher.lookup(args.endpointPath);\n if (!entry) {\n return { status: \"notFound\" };\n }\n if (!entry.methods.includes(args.method)) {\n return { status: \"methodNotAllowed\", match: entry };\n }\n return { status: \"ok\", match: entry };\n }\n\n async createTriggerTestItems(args: { workflow: WorkflowDefinition; nodeId: NodeId }): Promise<Items | undefined> {\n return await this.deps.triggerRuntime.createTriggerTestItems(args);\n }\n\n async runWorkflow(\n wf: WorkflowDefinition,\n startAt: NodeId,\n items: Items,\n parent?: ParentExecutionRef,\n executionOptions?: RunExecutionOptions,\n persistedStateOverrides?: Readonly<{\n workflowSnapshot?: NonNullable<Awaited<ReturnType<WorkflowExecutionRepository[\"load\"]>>>[\"workflowSnapshot\"];\n mutableState?: NonNullable<Awaited<ReturnType<WorkflowExecutionRepository[\"load\"]>>>[\"mutableState\"];\n }>,\n ): Promise<RunResult> {\n return await this.deps.runStartService.runWorkflow(\n wf,\n startAt,\n items,\n parent,\n executionOptions,\n persistedStateOverrides,\n );\n }\n\n async runWorkflowFromState(request: CurrentStateExecutionRequest): Promise<RunResult> {\n return await this.deps.runStartService.runWorkflowFromState(request);\n }\n\n async markNodeRunning(args: {\n runId: RunId;\n activationId: NodeActivationId;\n nodeId: NodeId;\n inputsByPort: NodeInputsByPort;\n }): Promise<void> {\n return await this.deps.runContinuationService.markNodeRunning(args);\n }\n\n async resumeFromNodeResult(args: {\n runId: RunId;\n activationId: NodeActivationId;\n nodeId: NodeId;\n outputs: NodeOutputs;\n }): Promise<RunResult> {\n return await this.deps.runContinuationService.resumeFromNodeResult(args);\n }\n\n async resumeFromNodeError(args: {\n runId: RunId;\n activationId: NodeActivationId;\n nodeId: NodeId;\n error: Error;\n }): Promise<RunResult> {\n return await this.deps.runContinuationService.resumeFromNodeError(args);\n }\n\n async resumeFromStepResult(args: {\n runId: RunId;\n activationId: NodeActivationId;\n nodeId: NodeId;\n outputs: NodeOutputs;\n }): Promise<RunResult> {\n return await this.deps.runContinuationService.resumeFromStepResult(args);\n }\n\n async resumeFromStepError(args: {\n runId: RunId;\n activationId: NodeActivationId;\n nodeId: NodeId;\n error: Error;\n }): Promise<RunResult> {\n return await this.deps.runContinuationService.resumeFromStepError(args);\n }\n\n async waitForCompletion(runId: RunId): Promise<Extract<RunResult, { status: \"completed\" | \"failed\" }>> {\n return await this.deps.runContinuationService.waitForCompletion(runId);\n }\n\n async waitForWebhookResponse(runId: RunId): Promise<WebhookRunResult> {\n return await this.deps.runContinuationService.waitForWebhookResponse(runId);\n }\n\n async handleNodeExecutionRequest(request: NodeExecutionRequest): Promise<void> {\n await this.deps.nodeExecutionRequestHandler.handleNodeExecutionRequest(request);\n }\n}\n","import type { EngineDeps } from \"../types\";\n\nimport { MissingRuntimeFallbacks } from \"../workflowSnapshots/MissingRuntimeFallbacksFactory\";\nimport { MissingRuntimeExecutionMarker } from \"../workflowSnapshots/MissingRuntimeExecutionMarker\";\nimport { WorkflowSnapshotCodec } from \"../workflowSnapshots/WorkflowSnapshotCodec\";\nimport { WorkflowSnapshotResolver } from \"../workflowSnapshots/WorkflowSnapshotResolver\";\nimport { ActivationEnqueueService } from \"../execution/ActivationEnqueueService\";\nimport { NodeActivationRequestComposer } from \"../execution/NodeActivationRequestComposer\";\nimport { PersistedRunStateTerminalBuilder } from \"../execution/PersistedRunStateTerminalBuilder\";\nimport { NodeExecutionRequestHandlerService } from \"../orchestration/NodeExecutionRequestHandlerService\";\nimport { RunContinuationService } from \"../orchestration/RunContinuationService\";\nimport { RunStartService } from \"../orchestration/RunStartService\";\nimport { RunStateSemantics } from \"../execution/RunStateSemantics\";\nimport { WorkflowRunExecutionContextFactory } from \"../execution/WorkflowRunExecutionContextFactory\";\nimport { RunTerminalPersistenceCoordinator } from \"../policies/storage/RunTerminalPersistenceCoordinator\";\nimport { WorkflowPolicyErrorServices } from \"../policies/WorkflowPolicyErrorServices\";\nimport { WorkflowStoragePolicyEvaluator } from \"../policies/storage/WorkflowStoragePolicyEvaluator\";\nimport { NodeEventPublisher } from \"../events/NodeEventPublisher\";\nimport { EngineExecutionLimitsPolicy } from \"../policies/executionLimits/EngineExecutionLimitsPolicy\";\nimport { EngineWorkflowPlanningFactory } from \"../planning/EngineWorkflowPlanningFactory\";\nimport { TriggerRuntimeService } from \"../orchestration/TriggerRuntimeService\";\nimport { EngineWaiters } from \"../orchestration/EngineWaiters\";\nimport { Engine } from \"../orchestration/Engine\";\nimport { CredentialResolverFactory } from \"../execution/CredentialResolverFactory\";\nimport { NodeRunStateWriterFactory } from \"../execution/NodeRunStateWriterFactory\";\n\n/**\n * {@link EngineDeps} plus optional overrides for workflow-snapshot materialization.\n * Overrides keep default construction in this factory while allowing tests or advanced wiring to inject instances.\n */\nexport type EngineCompositionDeps = EngineDeps & {\n workflowSnapshotCodec?: WorkflowSnapshotCodec;\n missingRuntimeFallbacks?: MissingRuntimeFallbacks;\n /** When set, used for run-start, trigger, and continuation limit defaults. */\n executionLimitsPolicy?: EngineExecutionLimitsPolicy;\n};\n\n/**\n * Composes the {@link Engine} graph from {@link EngineCompositionDeps}. Production wiring usually goes through\n * {@link import(\"../bootstrap/runtime/EngineRuntimeRegistrar\").EngineRuntimeRegistrar}; this factory remains for tests and custom composition.\n * Exported from `@codemation/core/bootstrap` (not the main `@codemation/core` barrel).\n */\nexport class EngineFactory {\n create(deps: EngineCompositionDeps): Engine {\n const waiters = new EngineWaiters();\n const credentialResolverFactory = new CredentialResolverFactory(deps.credentialSessions);\n const nodeEventPublisher = new NodeEventPublisher(deps.eventBus);\n const nodeStatePublisherFactory = new NodeRunStateWriterFactory(\n deps.workflowExecutionRepository,\n nodeEventPublisher,\n );\n const planningFactory = new EngineWorkflowPlanningFactory(deps.workflowNodeInstanceFactory);\n const executionLimitsPolicy = deps.executionLimitsPolicy ?? new EngineExecutionLimitsPolicy();\n const workflowSnapshotCodec = deps.workflowSnapshotCodec ?? new WorkflowSnapshotCodec(deps.tokenRegistry);\n const missingRuntimeFallbacks = deps.missingRuntimeFallbacks ?? new MissingRuntimeFallbacks();\n const workflowSnapshotResolver = new WorkflowSnapshotResolver(\n deps.workflowRepository,\n deps.tokenRegistry,\n workflowSnapshotCodec,\n missingRuntimeFallbacks,\n );\n\n const semantics = new RunStateSemantics(new MissingRuntimeExecutionMarker());\n const activationEnqueueService = new ActivationEnqueueService(\n deps.activationScheduler,\n deps.workflowExecutionRepository,\n nodeEventPublisher,\n );\n const runExecutionContextFactory = new WorkflowRunExecutionContextFactory(\n deps.executionContextFactory,\n credentialResolverFactory,\n );\n const nodeActivationRequestComposer = new NodeActivationRequestComposer(\n deps.activationIdFactory,\n credentialResolverFactory,\n );\n const persistedRunStateTerminalBuilder = new PersistedRunStateTerminalBuilder();\n const storagePolicyEvaluator = new WorkflowStoragePolicyEvaluator(deps.nodeResolver);\n const terminalPersistence = new RunTerminalPersistenceCoordinator(\n deps.workflowExecutionRepository,\n storagePolicyEvaluator,\n );\n const policyErrorServices = new WorkflowPolicyErrorServices(deps.nodeResolver);\n\n const runStartService = new RunStartService(\n deps.runIdFactory,\n deps.workflowExecutionRepository,\n deps.runDataFactory,\n workflowSnapshotCodec,\n planningFactory,\n nodeStatePublisherFactory,\n runExecutionContextFactory,\n nodeActivationRequestComposer,\n activationEnqueueService,\n semantics,\n waiters,\n deps.workflowPolicyRuntimeDefaults,\n executionLimitsPolicy,\n );\n const runContinuationService = new RunContinuationService(\n deps.activationIdFactory,\n deps.workflowExecutionRepository,\n deps.runDataFactory,\n runExecutionContextFactory,\n workflowSnapshotResolver,\n planningFactory,\n nodeStatePublisherFactory,\n credentialResolverFactory,\n nodeActivationRequestComposer,\n persistedRunStateTerminalBuilder,\n activationEnqueueService,\n nodeEventPublisher,\n semantics,\n waiters,\n policyErrorServices,\n terminalPersistence,\n executionLimitsPolicy,\n );\n const nodeExecutionRequestHandler = new NodeExecutionRequestHandlerService(\n deps.workflowExecutionRepository,\n workflowSnapshotResolver,\n deps.runDataFactory,\n runExecutionContextFactory,\n nodeStatePublisherFactory,\n nodeActivationRequestComposer,\n deps.nodeExecutor,\n runContinuationService,\n executionLimitsPolicy,\n );\n\n const triggerRuntime = new TriggerRuntimeService(\n deps.workflowRepository,\n deps.workflowActivationPolicy,\n deps.runIdFactory,\n deps.runDataFactory,\n deps.executionContextFactory,\n credentialResolverFactory,\n nodeStatePublisherFactory,\n deps.nodeResolver,\n deps.triggerSetupStateRepository,\n {\n emit: async (workflow, triggerNodeId, items) => {\n await runStartService.runWorkflow(workflow, triggerNodeId, items, undefined);\n },\n },\n executionLimitsPolicy,\n deps.triggerRuntimeDiagnostics,\n );\n\n const engine = new Engine({\n liveWorkflowRepository: deps.liveWorkflowRepository,\n tokenRegistry: deps.tokenRegistry,\n webhookTriggerMatcher: deps.webhookTriggerMatcher,\n workflowSnapshotResolver,\n triggerRuntime,\n runStartService,\n runContinuationService,\n nodeExecutionRequestHandler,\n });\n\n deps.activationScheduler.setContinuation?.(engine);\n return engine;\n }\n}\n","import type {\n Items,\n NodeId,\n ParentExecutionRef,\n RunResult,\n WorkflowDefinition,\n WorkflowId,\n WorkflowRepository,\n} from \"../types\";\nimport { WorkflowExecutableNodeClassifierFactory } from \"../workflow\";\n\nimport { Engine } from \"../orchestration/Engine\";\n\nexport class EngineWorkflowRunnerService {\n constructor(\n private readonly engine: Engine,\n private readonly workflowRepository: WorkflowRepository,\n ) {}\n\n async runById(args: {\n workflowId: WorkflowId;\n startAt?: NodeId;\n items: Items;\n parent?: ParentExecutionRef;\n }): Promise<RunResult> {\n const { workflowId, startAt, items, parent } = args;\n const wf = this.workflowRepository.get(workflowId);\n if (!wf) throw new Error(`Unknown workflowId: ${workflowId}`);\n\n const startNodeId = startAt ?? this.findDefaultStartNodeId(wf);\n const scheduled = await this.engine.runWorkflow(wf, startNodeId, items, parent);\n if (scheduled.status !== \"pending\") return scheduled;\n return await this.engine.waitForCompletion(scheduled.runId);\n }\n\n private findDefaultStartNodeId(wf: WorkflowDefinition): NodeId {\n return WorkflowExecutableNodeClassifierFactory.create(wf).findDefaultExecutableStartNodeId(wf);\n }\n}\n","import type { WorkflowRepository } from \"../types\";\n\nimport { Engine } from \"../orchestration/Engine\";\n\nimport { EngineWorkflowRunnerService } from \"./EngineWorkflowRunnerService\";\n\nexport class EngineWorkflowRunnerServiceFactory {\n create(engine: Engine, workflowRepository: WorkflowRepository): EngineWorkflowRunnerService {\n return new EngineWorkflowRunnerService(engine, workflowRepository);\n }\n}\n","import type { WorkflowRepository } from \"../types\";\n\nimport { Engine } from \"../orchestration/Engine\";\n\nimport { RunIntentService } from \"./RunIntentService\";\n\nexport class RunIntentServiceFactory {\n create(engine: Engine, workflowRepository: WorkflowRepository): RunIntentService {\n return new RunIntentService(engine, workflowRepository);\n }\n}\n","import type {\n HttpMethod,\n NodeDefinition,\n NodeId,\n TriggerNodeConfig,\n WebhookInvocationMatch,\n WebhookTriggerMatcher,\n WebhookTriggerRoutingDiagnostics,\n WorkflowActivationPolicy,\n WorkflowDefinition,\n WorkflowId,\n WorkflowRepository,\n} from \"../types\";\n\n/**\n * Resolves webhook HTTP routes from the live workflow repository (no trigger setup / registration).\n * Maintains an in-memory index keyed by user-defined endpoint path for O(1) lookups after reload.\n */\nexport class WorkflowRepositoryWebhookTriggerMatcher implements WebhookTriggerMatcher {\n private readonly routeByPath = new Map<string, WebhookInvocationMatch>();\n private engineRoutesActive = false;\n\n constructor(\n private readonly workflowRepository: WorkflowRepository,\n private readonly workflowActivationPolicy: WorkflowActivationPolicy,\n private readonly diagnostics?: WebhookTriggerRoutingDiagnostics,\n ) {}\n\n onEngineWorkflowsLoaded(): void {\n this.engineRoutesActive = true;\n this.rebuildRouteIndex();\n }\n\n onEngineStopped(): void {\n this.engineRoutesActive = false;\n this.routeByPath.clear();\n }\n\n reloadWebhookRoutes(): void {\n if (!this.engineRoutesActive) {\n return;\n }\n this.rebuildRouteIndex();\n }\n\n lookup(endpointPath: string): WebhookInvocationMatch | undefined {\n if (!this.engineRoutesActive) {\n return undefined;\n }\n const normalized = this.normalizeEndpointPath(endpointPath);\n return this.routeByPath.get(normalized);\n }\n\n match(args: { endpointPath: string; method: HttpMethod }): WebhookInvocationMatch | undefined {\n const entry = this.lookup(args.endpointPath);\n if (!entry) {\n return undefined;\n }\n return entry.methods.includes(args.method) ? entry : undefined;\n }\n\n private rebuildRouteIndex(): void {\n this.routeByPath.clear();\n for (const workflow of this.workflowRepository.list()) {\n if (!this.workflowActivationPolicy.isActive(workflow.id)) {\n const triggerCount = workflow.nodes.filter((n) => n.kind === \"trigger\").length;\n if (triggerCount > 0) {\n const paths = this.collectWebhookEndpointPaths(workflow);\n if (paths.length > 0) {\n this.diagnostics?.info?.(\n `Workflow \"${workflow.name}\" (${workflow.id}) is inactive; webhook routes not registered: ${paths.map((p) => `\"${p}\"`).join(\", \")}`,\n );\n } else {\n this.diagnostics?.info?.(\n `Workflow \"${workflow.name}\" (${workflow.id}) is inactive; no repository webhook routes for its triggers (other trigger kinds are unchanged).`,\n );\n }\n }\n continue;\n }\n for (const def of workflow.nodes) {\n const match = this.tryMatchFromTriggerNode(workflow, def);\n if (!match) {\n continue;\n }\n const key = this.normalizeEndpointPath(match.endpointPath);\n const existing = this.routeByPath.get(key);\n if (existing) {\n this.diagnostics?.warn(\n `Duplicate webhook endpoint path \"${key}\" (workflows \"${existing.workflowId}\" and \"${match.workflowId}\"); using \"${match.workflowId}\".`,\n );\n }\n this.routeByPath.set(key, match);\n }\n }\n }\n\n private collectWebhookEndpointPaths(workflow: WorkflowDefinition): string[] {\n const paths: string[] = [];\n for (const def of workflow.nodes) {\n if (def.kind !== \"trigger\") {\n continue;\n }\n const match = this.tryMatchFromTriggerNode(workflow, def);\n if (match) {\n paths.push(match.endpointPath);\n }\n }\n return paths;\n }\n\n private tryMatchFromTriggerNode(\n workflow: WorkflowDefinition,\n def: NodeDefinition,\n ): WebhookInvocationMatch | undefined {\n if (def.kind !== \"trigger\") {\n return undefined;\n }\n const config = def.config as TriggerNodeConfig & {\n endpointKey?: unknown;\n methods?: unknown;\n parseJsonBody?: (body: unknown) => unknown;\n };\n if (typeof config.endpointKey !== \"string\" || config.endpointKey.length === 0) {\n return undefined;\n }\n if (!Array.isArray(config.methods) || config.methods.length === 0) {\n return undefined;\n }\n const methods = config.methods as HttpMethod[];\n const parseJsonBody = typeof config.parseJsonBody === \"function\" ? config.parseJsonBody.bind(config) : undefined;\n return {\n endpointPath: config.endpointKey,\n workflowId: workflow.id as WorkflowId,\n nodeId: def.id as NodeId,\n methods: [...methods],\n parseJsonBody,\n };\n }\n\n private normalizeEndpointPath(endpointPath: string): string {\n return endpointPath.trim();\n }\n}\n","import type { WebhookTriggerRoutingDiagnostics, WorkflowActivationPolicy, WorkflowRepository } from \"../types\";\n\nimport { WorkflowRepositoryWebhookTriggerMatcher } from \"./WorkflowRepositoryWebhookTriggerMatcher\";\n\nexport class WorkflowRepositoryWebhookTriggerMatcherFactory {\n create(\n workflowRepository: WorkflowRepository,\n workflowActivationPolicy: WorkflowActivationPolicy,\n diagnostics?: WebhookTriggerRoutingDiagnostics,\n ): WorkflowRepositoryWebhookTriggerMatcher {\n return new WorkflowRepositoryWebhookTriggerMatcher(workflowRepository, workflowActivationPolicy, diagnostics);\n }\n}\n","import { NodeExecutor } from \"../execution/NodeExecutor\";\n\nimport { InlineDrivingScheduler } from \"./InlineDrivingScheduler\";\n\nexport class InlineDrivingSchedulerFactory {\n create(nodeExecutor: NodeExecutor): InlineDrivingScheduler {\n return new InlineDrivingScheduler(nodeExecutor);\n }\n}\n","import { instanceCachingFactory, type DependencyContainer } from \"../../di\";\nimport { CoreTokens } from \"../../di\";\nimport { EngineExecutionLimitsPolicyFactory } from \"../../policies/executionLimits/EngineExecutionLimitsPolicyFactory\";\nimport {\n DefaultAsyncSleeper,\n InProcessRetryRunnerFactory,\n NodeExecutor,\n NodeExecutorFactory,\n NodeInstanceFactoryFactory,\n} from \"../../execution\";\nimport {\n EngineFactory,\n EngineWorkflowRunnerServiceFactory,\n RunIntentServiceFactory,\n RunIntentService,\n WorkflowRepositoryWebhookTriggerMatcherFactory,\n} from \"../../runtime\";\nimport { InlineDrivingScheduler } from \"../../scheduler/InlineDrivingScheduler\";\nimport { InlineDrivingSchedulerFactory } from \"../../scheduler/InlineDrivingSchedulerFactory\";\nimport { Engine } from \"../../orchestration/Engine\";\nimport type { EngineRuntimeRegistrationOptions } from \"./EngineRuntimeRegistration.types\";\nimport type { WebhookTriggerMatcherProvider } from \"./EngineRuntimeRegistration.types\";\n\n/**\n * Container-first entry: call on a host/test container **after** workflow, run, node, and credential\n * ports are registered. The registrar owns the default inline scheduler, engine binding,\n * and intent-surface wiring so hosts only override the seams they actually replace.\n */\nexport class EngineRuntimeRegistrar {\n register(container: DependencyContainer, options?: EngineRuntimeRegistrationOptions): void {\n this.registerSupportFactories(container);\n this.registerExecutionLimitsPolicy(container, options);\n this.ensureWorkflowNodeInstanceFactory(container);\n this.ensureNodeExecutor(container);\n this.registerDefaultActivationScheduler(container);\n this.registerEngine(container, options);\n this.registerIntentServices(container);\n }\n\n private registerSupportFactories(container: DependencyContainer): void {\n container.register(EngineExecutionLimitsPolicyFactory, { useClass: EngineExecutionLimitsPolicyFactory });\n container.register(NodeInstanceFactoryFactory, { useClass: NodeInstanceFactoryFactory });\n container.register(DefaultAsyncSleeper, { useClass: DefaultAsyncSleeper });\n container.register(InProcessRetryRunnerFactory, { useClass: InProcessRetryRunnerFactory });\n container.register(NodeExecutorFactory, { useClass: NodeExecutorFactory });\n container.register(InlineDrivingSchedulerFactory, { useClass: InlineDrivingSchedulerFactory });\n container.register(RunIntentServiceFactory, { useClass: RunIntentServiceFactory });\n container.register(EngineWorkflowRunnerServiceFactory, {\n useClass: EngineWorkflowRunnerServiceFactory,\n });\n container.register(WorkflowRepositoryWebhookTriggerMatcherFactory, {\n useClass: WorkflowRepositoryWebhookTriggerMatcherFactory,\n });\n }\n\n private registerExecutionLimitsPolicy(\n container: DependencyContainer,\n options: EngineRuntimeRegistrationOptions | undefined,\n ): void {\n if (container.isRegistered(CoreTokens.EngineExecutionLimitsPolicy, true)) {\n return;\n }\n container.register(CoreTokens.EngineExecutionLimitsPolicy, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n const fromResolver = options?.resolveEngineExecutionLimits?.();\n const merged = fromResolver ?? options?.engineExecutionLimits;\n return dependencyContainer.resolve(EngineExecutionLimitsPolicyFactory).create(merged);\n }),\n });\n }\n\n private ensureWorkflowNodeInstanceFactory(container: DependencyContainer): void {\n if (container.isRegistered(CoreTokens.WorkflowNodeInstanceFactory, true)) {\n return;\n }\n container.register(CoreTokens.WorkflowNodeInstanceFactory, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(NodeInstanceFactoryFactory)\n .create(dependencyContainer.resolve(CoreTokens.NodeResolver));\n }),\n });\n }\n\n private ensureNodeExecutor(container: DependencyContainer): void {\n if (container.isRegistered(NodeExecutor, true)) {\n return;\n }\n container.register(NodeExecutor, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n const retryRunner = dependencyContainer\n .resolve(InProcessRetryRunnerFactory)\n .create(dependencyContainer.resolve(DefaultAsyncSleeper));\n return dependencyContainer\n .resolve(NodeExecutorFactory)\n .create(dependencyContainer.resolve(CoreTokens.WorkflowNodeInstanceFactory), retryRunner);\n }),\n });\n }\n\n private registerDefaultActivationScheduler(container: DependencyContainer): void {\n if (container.isRegistered(CoreTokens.NodeActivationScheduler, true)) {\n return;\n }\n container.register(InlineDrivingScheduler, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(InlineDrivingSchedulerFactory)\n .create(dependencyContainer.resolve(NodeExecutor));\n }),\n });\n container.register(CoreTokens.NodeActivationScheduler, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer.resolve(InlineDrivingScheduler);\n }),\n });\n }\n\n private registerEngine(container: DependencyContainer, options: EngineRuntimeRegistrationOptions | undefined): void {\n container.register(EngineFactory, { useClass: EngineFactory });\n const matcherProvider = this.resolveMatcherProvider(options);\n container.register(Engine, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n const liveWorkflowRepository = dependencyContainer.resolve(CoreTokens.LiveWorkflowRepository);\n const nodeResolver = dependencyContainer.resolve(CoreTokens.NodeResolver);\n const tokenRegistryLike = dependencyContainer.resolve(CoreTokens.PersistedWorkflowTokenRegistry);\n const workflowActivationPolicy = dependencyContainer.resolve(CoreTokens.WorkflowActivationPolicy);\n const webhookTriggerMatcher = matcherProvider.createMatcher(dependencyContainer);\n const workflowNodeInstanceFactory = dependencyContainer.resolve(CoreTokens.WorkflowNodeInstanceFactory);\n const triggerRuntimeDiagnostics = options?.triggerRuntimeDiagnosticsProvider?.create(dependencyContainer);\n return dependencyContainer.resolve(EngineFactory).create({\n credentialSessions: dependencyContainer.resolve(CoreTokens.CredentialSessionService),\n liveWorkflowRepository,\n workflowRepository: dependencyContainer.resolve(CoreTokens.WorkflowRepository),\n workflowActivationPolicy,\n nodeResolver,\n triggerSetupStateRepository: dependencyContainer.resolve(CoreTokens.TriggerSetupStateRepository),\n webhookTriggerMatcher,\n runIdFactory: dependencyContainer.resolve(CoreTokens.RunIdFactory),\n activationIdFactory: dependencyContainer.resolve(CoreTokens.ActivationIdFactory),\n workflowExecutionRepository: dependencyContainer.resolve(CoreTokens.WorkflowExecutionRepository),\n activationScheduler: dependencyContainer.resolve(CoreTokens.NodeActivationScheduler),\n runDataFactory: dependencyContainer.resolve(CoreTokens.RunDataFactory),\n executionContextFactory: dependencyContainer.resolve(CoreTokens.ExecutionContextFactory),\n nodeExecutor: dependencyContainer.resolve(NodeExecutor),\n eventBus: dependencyContainer.resolve(CoreTokens.RunEventBus),\n tokenRegistry: tokenRegistryLike,\n workflowNodeInstanceFactory,\n executionLimitsPolicy: dependencyContainer.resolve(CoreTokens.EngineExecutionLimitsPolicy),\n triggerRuntimeDiagnostics,\n });\n }),\n });\n }\n\n private registerIntentServices(container: DependencyContainer): void {\n container.register(RunIntentService, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(RunIntentServiceFactory)\n .create(dependencyContainer.resolve(Engine), dependencyContainer.resolve(CoreTokens.WorkflowRepository));\n }),\n });\n container.register(CoreTokens.WorkflowRunnerService, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(EngineWorkflowRunnerServiceFactory)\n .create(dependencyContainer.resolve(Engine), dependencyContainer.resolve(CoreTokens.WorkflowRepository));\n }),\n });\n }\n\n private resolveMatcherProvider(options: EngineRuntimeRegistrationOptions | undefined): WebhookTriggerMatcherProvider {\n if (options?.webhookTriggerMatcherProvider) {\n return options.webhookTriggerMatcherProvider;\n }\n return {\n createMatcher: (container) =>\n container\n .resolve(WorkflowRepositoryWebhookTriggerMatcherFactory)\n .create(\n container.resolve(CoreTokens.WorkflowRepository),\n container.resolve(CoreTokens.WorkflowActivationPolicy),\n options?.webhookTriggerRoutingDiagnostics,\n ),\n };\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,140 +1,6 @@
|
|
|
1
|
-
import { $
|
|
1
|
+
import { $t as RunnableNodeInputJson, An as BinaryStorageWriteResult, At as NodeActivationId, Bn as NodeActivationContinuation, Bt as NodeOutputs, Cr as WorkflowActivationPolicy, Di as RunEventBus, Dn as BinaryStorageReadResult, Ei as RunEvent, En as BinaryStorage, Fi as RetryPolicySpec, Fn as ExecutionContext, Gn as NodeBinaryAttachmentService, Gt as ParentExecutionRef, Hn as NodeActivationRequest, Ht as NodeSchedulerDecision, In as ExecutionContextFactory, Jr as RunPruneCandidate, Jt as RunDataFactory, K as AnyCredentialType, Kn as NodeExecutionContext, Lt as NodeId, Mt as NodeConnectionName, Nt as NodeDefinition, Oi as RunEventSubscription, On as BinaryStorageStatResult, Or as EngineRunCounters, Ot as JsonValue, Pn as ExecutionBinaryService, Qn as NodeResolver, Qt as RunnableNodeConfig, Rr as PersistedRunSchedulingState, St as Item, Tn as BinaryBody, Vr as PersistedWorkflowSnapshotNode, Wn as NodeActivationScheduler, X as CredentialFieldSchema, Xn as NodeExecutionStatePublisher, Xt as RunId, Yn as NodeExecutionScheduler, Yt as RunDataSnapshot, Z as CredentialHealth, _t as BinaryAttachment, an as WorkflowDefinition, at as CredentialRequirement, bt as ExecutionMode, ct as CredentialSessionService, di as TypeToken, dn as WorkflowId, dt as CredentialTypeDefinition, ei as RunSummary, er as PreparedNodeActivationDispatch, ft as CredentialTypeId, hr as HttpMethod, ii as WorkflowExecutionRepository, jn as EngineDeps, jr as NodeExecutionSnapshot, jt as NodeConfigBase, kt as MutableRunData, l as WorkflowSnapshotCodec, lr as WorkflowNodeInstanceFactory, ni as WorkflowExecutionListingRepository, nt as CredentialJsonRecord, qn as NodeExecutionRequest, ri as WorkflowExecutionPruneRepository, st as CredentialSessionFactoryArgs, u as Engine, ur as WorkflowRepository, ut as CredentialType, vr as WebhookInvocationMatch, wi as EngineExecutionLimitsPolicy, wt as Items, xr as WebhookTriggerRoutingDiagnostics, yr as WebhookTriggerMatcher, zr as PersistedRunState, zt as NodeOffloadPolicy } from "./RunIntentService-BCvGdOSY.js";
|
|
2
2
|
import { ZodType, input, output, z } from "zod";
|
|
3
3
|
|
|
4
|
-
//#region src/orchestration/Engine.d.ts
|
|
5
|
-
interface EngineTriggerRuntime {
|
|
6
|
-
startTriggers(): Promise<void>;
|
|
7
|
-
stop(): Promise<void>;
|
|
8
|
-
syncWorkflowTriggersForActivation(workflowId: WorkflowId): Promise<void>;
|
|
9
|
-
createTriggerTestItems(args: {
|
|
10
|
-
workflow: WorkflowDefinition;
|
|
11
|
-
nodeId: NodeId;
|
|
12
|
-
}): Promise<Items | undefined>;
|
|
13
|
-
}
|
|
14
|
-
interface EngineRunStartService {
|
|
15
|
-
runWorkflow(wf: WorkflowDefinition, startAt: NodeId, items: Items, parent?: ParentExecutionRef, executionOptions?: RunExecutionOptions, persistedStateOverrides?: Readonly<{
|
|
16
|
-
workflowSnapshot?: NonNullable<Awaited<ReturnType<WorkflowExecutionRepository["load"]>>>["workflowSnapshot"];
|
|
17
|
-
mutableState?: NonNullable<Awaited<ReturnType<WorkflowExecutionRepository["load"]>>>["mutableState"];
|
|
18
|
-
}>): Promise<RunResult>;
|
|
19
|
-
runWorkflowFromState(request: CurrentStateExecutionRequest): Promise<RunResult>;
|
|
20
|
-
}
|
|
21
|
-
interface EngineRunContinuationService {
|
|
22
|
-
markNodeRunning(args: {
|
|
23
|
-
runId: RunId;
|
|
24
|
-
activationId: NodeActivationId;
|
|
25
|
-
nodeId: NodeId;
|
|
26
|
-
inputsByPort: NodeInputsByPort;
|
|
27
|
-
}): Promise<void>;
|
|
28
|
-
resumeFromNodeResult(args: {
|
|
29
|
-
runId: RunId;
|
|
30
|
-
activationId: NodeActivationId;
|
|
31
|
-
nodeId: NodeId;
|
|
32
|
-
outputs: NodeOutputs;
|
|
33
|
-
}): Promise<RunResult>;
|
|
34
|
-
resumeFromNodeError(args: {
|
|
35
|
-
runId: RunId;
|
|
36
|
-
activationId: NodeActivationId;
|
|
37
|
-
nodeId: NodeId;
|
|
38
|
-
error: Error;
|
|
39
|
-
}): Promise<RunResult>;
|
|
40
|
-
resumeFromStepResult(args: {
|
|
41
|
-
runId: RunId;
|
|
42
|
-
activationId: NodeActivationId;
|
|
43
|
-
nodeId: NodeId;
|
|
44
|
-
outputs: NodeOutputs;
|
|
45
|
-
}): Promise<RunResult>;
|
|
46
|
-
resumeFromStepError(args: {
|
|
47
|
-
runId: RunId;
|
|
48
|
-
activationId: NodeActivationId;
|
|
49
|
-
nodeId: NodeId;
|
|
50
|
-
error: Error;
|
|
51
|
-
}): Promise<RunResult>;
|
|
52
|
-
waitForCompletion(runId: RunId): Promise<Extract<RunResult, {
|
|
53
|
-
status: "completed" | "failed";
|
|
54
|
-
}>>;
|
|
55
|
-
waitForWebhookResponse(runId: RunId): Promise<WebhookRunResult>;
|
|
56
|
-
}
|
|
57
|
-
interface EngineNodeExecutionRequestHandler {
|
|
58
|
-
handleNodeExecutionRequest(request: NodeExecutionRequest): Promise<void>;
|
|
59
|
-
}
|
|
60
|
-
interface EngineFacadeDeps {
|
|
61
|
-
liveWorkflowRepository: LiveWorkflowRepository;
|
|
62
|
-
tokenRegistry: PersistedWorkflowTokenRegistryLike;
|
|
63
|
-
webhookTriggerMatcher: WebhookTriggerMatcher;
|
|
64
|
-
workflowSnapshotResolver: WorkflowSnapshotResolver;
|
|
65
|
-
triggerRuntime: EngineTriggerRuntime;
|
|
66
|
-
runStartService: EngineRunStartService;
|
|
67
|
-
runContinuationService: EngineRunContinuationService;
|
|
68
|
-
nodeExecutionRequestHandler: EngineNodeExecutionRequestHandler;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Runtime facade for orchestration, continuation, triggers, and webhook routing.
|
|
72
|
-
* Prefer {@link import("../intents/RunIntentService").RunIntentService} for host/HTTP invocation boundaries.
|
|
73
|
-
* The class token is exported from `@codemation/core/bootstrap` (not the main `@codemation/core` barrel).
|
|
74
|
-
*/
|
|
75
|
-
declare class Engine implements NodeActivationContinuation, NodeExecutionRequestHandler {
|
|
76
|
-
private readonly deps;
|
|
77
|
-
constructor(deps: EngineFacadeDeps);
|
|
78
|
-
loadWorkflows(workflows: ReadonlyArray<WorkflowDefinition>): void;
|
|
79
|
-
getTokenRegistry(): EngineFacadeDeps["tokenRegistry"];
|
|
80
|
-
resolveWorkflowSnapshot(args: {
|
|
81
|
-
workflowId: WorkflowId;
|
|
82
|
-
workflowSnapshot?: NonNullable<Awaited<ReturnType<WorkflowExecutionRepository["load"]>>>["workflowSnapshot"];
|
|
83
|
-
}): WorkflowDefinition | undefined;
|
|
84
|
-
startTriggers(): Promise<void>;
|
|
85
|
-
syncWorkflowTriggersForActivation(workflowId: WorkflowId): Promise<void>;
|
|
86
|
-
start(workflows: WorkflowDefinition[]): Promise<void>;
|
|
87
|
-
stop(): Promise<void>;
|
|
88
|
-
resolveWebhookTrigger(args: {
|
|
89
|
-
endpointPath: string;
|
|
90
|
-
method: HttpMethod;
|
|
91
|
-
}): WebhookTriggerResolution;
|
|
92
|
-
createTriggerTestItems(args: {
|
|
93
|
-
workflow: WorkflowDefinition;
|
|
94
|
-
nodeId: NodeId;
|
|
95
|
-
}): Promise<Items | undefined>;
|
|
96
|
-
runWorkflow(wf: WorkflowDefinition, startAt: NodeId, items: Items, parent?: ParentExecutionRef, executionOptions?: RunExecutionOptions, persistedStateOverrides?: Readonly<{
|
|
97
|
-
workflowSnapshot?: NonNullable<Awaited<ReturnType<WorkflowExecutionRepository["load"]>>>["workflowSnapshot"];
|
|
98
|
-
mutableState?: NonNullable<Awaited<ReturnType<WorkflowExecutionRepository["load"]>>>["mutableState"];
|
|
99
|
-
}>): Promise<RunResult>;
|
|
100
|
-
runWorkflowFromState(request: CurrentStateExecutionRequest): Promise<RunResult>;
|
|
101
|
-
markNodeRunning(args: {
|
|
102
|
-
runId: RunId;
|
|
103
|
-
activationId: NodeActivationId;
|
|
104
|
-
nodeId: NodeId;
|
|
105
|
-
inputsByPort: NodeInputsByPort;
|
|
106
|
-
}): Promise<void>;
|
|
107
|
-
resumeFromNodeResult(args: {
|
|
108
|
-
runId: RunId;
|
|
109
|
-
activationId: NodeActivationId;
|
|
110
|
-
nodeId: NodeId;
|
|
111
|
-
outputs: NodeOutputs;
|
|
112
|
-
}): Promise<RunResult>;
|
|
113
|
-
resumeFromNodeError(args: {
|
|
114
|
-
runId: RunId;
|
|
115
|
-
activationId: NodeActivationId;
|
|
116
|
-
nodeId: NodeId;
|
|
117
|
-
error: Error;
|
|
118
|
-
}): Promise<RunResult>;
|
|
119
|
-
resumeFromStepResult(args: {
|
|
120
|
-
runId: RunId;
|
|
121
|
-
activationId: NodeActivationId;
|
|
122
|
-
nodeId: NodeId;
|
|
123
|
-
outputs: NodeOutputs;
|
|
124
|
-
}): Promise<RunResult>;
|
|
125
|
-
resumeFromStepError(args: {
|
|
126
|
-
runId: RunId;
|
|
127
|
-
activationId: NodeActivationId;
|
|
128
|
-
nodeId: NodeId;
|
|
129
|
-
error: Error;
|
|
130
|
-
}): Promise<RunResult>;
|
|
131
|
-
waitForCompletion(runId: RunId): Promise<Extract<RunResult, {
|
|
132
|
-
status: "completed" | "failed";
|
|
133
|
-
}>>;
|
|
134
|
-
waitForWebhookResponse(runId: RunId): Promise<WebhookRunResult>;
|
|
135
|
-
handleNodeExecutionRequest(request: NodeExecutionRequest): Promise<void>;
|
|
136
|
-
}
|
|
137
|
-
//#endregion
|
|
138
4
|
//#region src/workflowSnapshots/MissingRuntimeFallbacksFactory.d.ts
|
|
139
5
|
declare class MissingRuntimeFallbacks {
|
|
140
6
|
createDefinition(snapshotNode: PersistedWorkflowSnapshotNode): NodeDefinition;
|
|
@@ -340,6 +206,9 @@ declare class AgentToolFactoryImpl {
|
|
|
340
206
|
asTool<TNodeConfig extends RunnableNodeConfig<any, any>, TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny>(node: TNodeConfig, options: Readonly<{
|
|
341
207
|
name?: string;
|
|
342
208
|
} & NodeBackedToolConfigOptions<TNodeConfig, TInputSchema, TOutputSchema>>): NodeBackedToolConfig<TNodeConfig, TInputSchema, TOutputSchema>;
|
|
209
|
+
private withDefaultAgentInputMapper;
|
|
210
|
+
private mergeAgentToolInputWithCurrentItem;
|
|
211
|
+
private isMergeableRecord;
|
|
343
212
|
}
|
|
344
213
|
declare const AgentToolFactory: AgentToolFactoryImpl;
|
|
345
214
|
//#endregion
|
|
@@ -487,7 +356,27 @@ interface AgentNodeConfig<TInputJson = unknown, TOutputJson = unknown> extends R
|
|
|
487
356
|
readonly tools?: ReadonlyArray<ToolConfig>;
|
|
488
357
|
readonly guardrails?: AgentGuardrailConfig;
|
|
489
358
|
}
|
|
490
|
-
type AgentAttachmentRole = "languageModel" | "tool";
|
|
359
|
+
type AgentAttachmentRole = "languageModel" | "tool" | "nestedAgent";
|
|
360
|
+
//#endregion
|
|
361
|
+
//#region src/ai/AgentConnectionNodeCollector.d.ts
|
|
362
|
+
type AgentConnectionNodeRole = "languageModel" | "tool" | "nestedAgent";
|
|
363
|
+
type AgentConnectionCredentialSource = Readonly<{
|
|
364
|
+
getCredentialRequirements?(): ReadonlyArray<CredentialRequirement>;
|
|
365
|
+
}>;
|
|
366
|
+
type AgentConnectionNodeDescriptor = Readonly<{
|
|
367
|
+
nodeId: NodeId;
|
|
368
|
+
parentNodeId: NodeId;
|
|
369
|
+
connectionName: NodeConnectionName;
|
|
370
|
+
role: AgentConnectionNodeRole;
|
|
371
|
+
name: string;
|
|
372
|
+
typeName: string;
|
|
373
|
+
icon?: string;
|
|
374
|
+
credentialSource: AgentConnectionCredentialSource;
|
|
375
|
+
}>;
|
|
376
|
+
type AgentConnectionNodeCollectorApi = Readonly<{
|
|
377
|
+
collect(parentNodeId: NodeId, agentConfig: AgentNodeConfig<any, any>): ReadonlyArray<AgentConnectionNodeDescriptor>;
|
|
378
|
+
}>;
|
|
379
|
+
declare const AgentConnectionNodeCollector: AgentConnectionNodeCollectorApi;
|
|
491
380
|
//#endregion
|
|
492
381
|
//#region src/events/InMemoryRunEventBusRegistry.d.ts
|
|
493
382
|
declare class InMemoryRunEventBus implements RunEventBus {
|
|
@@ -506,6 +395,7 @@ declare class EventPublishingWorkflowExecutionRepository implements WorkflowExec
|
|
|
506
395
|
constructor(inner: WorkflowExecutionRepository, eventBus: RunEventBus, now?: () => Date);
|
|
507
396
|
createRun(args: Parameters<WorkflowExecutionRepository["createRun"]>[0]): Promise<void>;
|
|
508
397
|
load(runId: RunId): Promise<PersistedRunState | undefined>;
|
|
398
|
+
loadSchedulingState(runId: RunId): Promise<PersistedRunSchedulingState | undefined>;
|
|
509
399
|
save(state: PersistedRunState): Promise<void>;
|
|
510
400
|
deleteRun(runId: RunId): Promise<void>;
|
|
511
401
|
listRuns(args?: Readonly<{
|
|
@@ -615,48 +505,6 @@ declare class DefaultExecutionBinaryService implements ExecutionBinaryService {
|
|
|
615
505
|
openReadStream(attachment: BinaryAttachment): Promise<BinaryStorageReadResult | undefined>;
|
|
616
506
|
}
|
|
617
507
|
//#endregion
|
|
618
|
-
//#region src/policies/executionLimits/EngineExecutionLimitsPolicyFactory.d.ts
|
|
619
|
-
/**
|
|
620
|
-
* Builds {@link EngineExecutionLimitsPolicy} by merging {@link ENGINE_EXECUTION_LIMITS_DEFAULTS} with optional `overrides` (e.g. host `runtime.engineExecutionLimits`).
|
|
621
|
-
*/
|
|
622
|
-
declare class EngineExecutionLimitsPolicyFactory {
|
|
623
|
-
create(overrides?: Partial<EngineExecutionLimitsPolicyConfig>): EngineExecutionLimitsPolicy;
|
|
624
|
-
}
|
|
625
|
-
//#endregion
|
|
626
|
-
//#region src/policies/storage/RunPolicySnapshotFactory.d.ts
|
|
627
|
-
declare class RunPolicySnapshotFactory {
|
|
628
|
-
static create(workflow: WorkflowDefinition, defaults?: WorkflowPolicyRuntimeDefaults): PersistedRunPolicySnapshot;
|
|
629
|
-
}
|
|
630
|
-
//#endregion
|
|
631
|
-
//#region src/policies/storage/WorkflowStoragePolicyEvaluator.d.ts
|
|
632
|
-
declare class WorkflowStoragePolicyEvaluator {
|
|
633
|
-
private readonly nodeResolver;
|
|
634
|
-
constructor(nodeResolver: NodeResolver);
|
|
635
|
-
shouldPersist(workflow: WorkflowDefinition, snapshot: PersistedRunPolicySnapshot | undefined, args: WorkflowStoragePolicyDecisionArgs): Promise<boolean>;
|
|
636
|
-
private modeMatches;
|
|
637
|
-
}
|
|
638
|
-
//#endregion
|
|
639
|
-
//#region src/policies/storage/RunTerminalPersistenceCoordinator.d.ts
|
|
640
|
-
declare class RunTerminalPersistenceCoordinator {
|
|
641
|
-
private readonly runRepository;
|
|
642
|
-
private readonly storageEvaluator;
|
|
643
|
-
constructor(runRepository: WorkflowExecutionRepository, storageEvaluator: WorkflowStoragePolicyEvaluator);
|
|
644
|
-
maybeDeleteAfterTerminalState(args: {
|
|
645
|
-
workflow: WorkflowDefinition;
|
|
646
|
-
state: PersistedRunState;
|
|
647
|
-
finalStatus: "completed" | "failed";
|
|
648
|
-
finishedAt: string;
|
|
649
|
-
}): Promise<void>;
|
|
650
|
-
}
|
|
651
|
-
//#endregion
|
|
652
|
-
//#region src/policies/WorkflowPolicyErrorServices.d.ts
|
|
653
|
-
declare class WorkflowPolicyErrorServices {
|
|
654
|
-
private readonly nodeResolver;
|
|
655
|
-
constructor(nodeResolver: NodeResolver);
|
|
656
|
-
resolveNodeErrorHandler(spec: NodeErrorHandlerSpec | undefined): NodeErrorHandler | undefined;
|
|
657
|
-
resolveWorkflowErrorHandler(spec: WorkflowErrorHandlerSpec | undefined): WorkflowErrorHandler | undefined;
|
|
658
|
-
}
|
|
659
|
-
//#endregion
|
|
660
508
|
//#region src/runStorage/InMemoryBinaryStorageRegistry.d.ts
|
|
661
509
|
declare class InMemoryBinaryStorage implements BinaryStorage {
|
|
662
510
|
readonly driverName = "memory";
|
|
@@ -691,6 +539,7 @@ declare class InMemoryWorkflowExecutionRepository implements WorkflowExecutionRe
|
|
|
691
539
|
engineCounters?: EngineRunCounters;
|
|
692
540
|
}): Promise<void>;
|
|
693
541
|
load(runId: RunId): Promise<PersistedRunState | undefined>;
|
|
542
|
+
loadSchedulingState(runId: RunId): Promise<PersistedRunSchedulingState | undefined>;
|
|
694
543
|
save(state: PersistedRunState): Promise<void>;
|
|
695
544
|
deleteRun(runId: RunId): Promise<void>;
|
|
696
545
|
listRuns(args?: Readonly<{
|
|
@@ -709,80 +558,6 @@ declare class RunSummaryMapper {
|
|
|
709
558
|
static fromPersistedState(state: PersistedRunState): RunSummary;
|
|
710
559
|
}
|
|
711
560
|
//#endregion
|
|
712
|
-
//#region src/runtime/EngineWorkflowRunnerService.d.ts
|
|
713
|
-
declare class EngineWorkflowRunnerService {
|
|
714
|
-
private readonly engine;
|
|
715
|
-
private readonly workflowRepository;
|
|
716
|
-
constructor(engine: Engine, workflowRepository: WorkflowRepository);
|
|
717
|
-
runById(args: {
|
|
718
|
-
workflowId: WorkflowId;
|
|
719
|
-
startAt?: NodeId;
|
|
720
|
-
items: Items;
|
|
721
|
-
parent?: ParentExecutionRef;
|
|
722
|
-
}): Promise<RunResult>;
|
|
723
|
-
private findDefaultStartNodeId;
|
|
724
|
-
}
|
|
725
|
-
//#endregion
|
|
726
|
-
//#region src/runtime/RunIntentService.d.ts
|
|
727
|
-
type StartWorkflowIntent = {
|
|
728
|
-
workflow: WorkflowDefinition;
|
|
729
|
-
startAt?: string;
|
|
730
|
-
items: Items;
|
|
731
|
-
synthesizeTriggerItems?: boolean;
|
|
732
|
-
parent?: CurrentStateExecutionRequest["parent"];
|
|
733
|
-
executionOptions?: RunExecutionOptions;
|
|
734
|
-
workflowSnapshot?: CurrentStateExecutionRequest["workflowSnapshot"];
|
|
735
|
-
mutableState?: CurrentStateExecutionRequest["mutableState"];
|
|
736
|
-
currentState?: RunCurrentState;
|
|
737
|
-
stopCondition?: RunStopCondition;
|
|
738
|
-
reset?: CurrentStateExecutionRequest["reset"];
|
|
739
|
-
};
|
|
740
|
-
type RerunFromNodeIntent = {
|
|
741
|
-
workflow: WorkflowDefinition;
|
|
742
|
-
nodeId: NodeId;
|
|
743
|
-
currentState: RunCurrentState;
|
|
744
|
-
items?: Items;
|
|
745
|
-
synthesizeTriggerItems?: boolean;
|
|
746
|
-
parent?: CurrentStateExecutionRequest["parent"];
|
|
747
|
-
executionOptions?: RunExecutionOptions;
|
|
748
|
-
workflowSnapshot?: CurrentStateExecutionRequest["workflowSnapshot"];
|
|
749
|
-
mutableState?: CurrentStateExecutionRequest["mutableState"];
|
|
750
|
-
};
|
|
751
|
-
type MatchedWebhookRunIntent = {
|
|
752
|
-
endpointPath: string;
|
|
753
|
-
method: HttpMethod;
|
|
754
|
-
requestItem: Items[number];
|
|
755
|
-
};
|
|
756
|
-
type WebhookMatchRunIntent = {
|
|
757
|
-
match: WebhookInvocationMatch;
|
|
758
|
-
requestItem: Items[number];
|
|
759
|
-
};
|
|
760
|
-
declare class RunIntentService {
|
|
761
|
-
private readonly engine;
|
|
762
|
-
private readonly workflowRepository;
|
|
763
|
-
constructor(engine: Engine, workflowRepository: WorkflowRepository);
|
|
764
|
-
startWorkflow(args: StartWorkflowIntent): Promise<RunResult>;
|
|
765
|
-
rerunFromNode(args: RerunFromNodeIntent): Promise<RunResult>;
|
|
766
|
-
private resolveStartWorkflowItems;
|
|
767
|
-
private resolveRerunItems;
|
|
768
|
-
private resolveStartWorkflowTriggerNodeId;
|
|
769
|
-
private resolveRerunTriggerNodeId;
|
|
770
|
-
private firstTriggerNodeId;
|
|
771
|
-
private isTriggerNode;
|
|
772
|
-
private hasNonEmptyItems;
|
|
773
|
-
resolveWebhookTrigger(args: {
|
|
774
|
-
endpointPath: string;
|
|
775
|
-
method: HttpMethod;
|
|
776
|
-
}): WebhookTriggerResolution;
|
|
777
|
-
runMatchedWebhook(args: MatchedWebhookRunIntent): Promise<WebhookRunResult>;
|
|
778
|
-
runWebhookMatch(args: WebhookMatchRunIntent): Promise<WebhookRunResult>;
|
|
779
|
-
/**
|
|
780
|
-
* Webhook-triggered runs always force inline execution first.
|
|
781
|
-
* This is the highest-precedence scheduler override: it wins over node hints and container defaults.
|
|
782
|
-
*/
|
|
783
|
-
private createWebhookExecutionOptions;
|
|
784
|
-
}
|
|
785
|
-
//#endregion
|
|
786
561
|
//#region src/runtime/WorkflowRepositoryWebhookTriggerMatcher.d.ts
|
|
787
562
|
/**
|
|
788
563
|
* Resolves webhook HTTP routes from the live workflow repository (no trigger setup / registration).
|
|
@@ -827,11 +602,9 @@ declare class InlineDrivingScheduler implements NodeActivationScheduler {
|
|
|
827
602
|
private readonly drainingRuns;
|
|
828
603
|
private readonly queuesByRunId;
|
|
829
604
|
private readonly scheduledRuns;
|
|
830
|
-
private seq;
|
|
831
605
|
constructor(nodeExecutor: NodeExecutor);
|
|
832
606
|
setContinuation(continuation: NodeActivationContinuation): void;
|
|
833
|
-
|
|
834
|
-
notifyPendingStatePersisted(runId: RunId): void;
|
|
607
|
+
prepareDispatch(request: NodeActivationRequest): Promise<PreparedNodeActivationDispatch>;
|
|
835
608
|
private drainRun;
|
|
836
609
|
private scheduleDrain;
|
|
837
610
|
private resumeAfterExecutionResult;
|
|
@@ -848,8 +621,7 @@ declare class DefaultDrivingScheduler implements NodeActivationScheduler {
|
|
|
848
621
|
private readonly inline;
|
|
849
622
|
constructor(offloadPolicy: NodeOffloadPolicy, workerScheduler: NodeExecutionScheduler, inline: InlineDrivingScheduler);
|
|
850
623
|
setContinuation(continuation: NodeActivationContinuation): void;
|
|
851
|
-
|
|
852
|
-
notifyPendingStatePersisted(runId: string): void;
|
|
624
|
+
prepareDispatch(request: NodeActivationRequest): Promise<PreparedNodeActivationDispatch>;
|
|
853
625
|
/**
|
|
854
626
|
* Scheduler precedence is explicit:
|
|
855
627
|
* 1. run-intent override (`executionOptions.localOnly`)
|
|
@@ -858,7 +630,7 @@ declare class DefaultDrivingScheduler implements NodeActivationScheduler {
|
|
|
858
630
|
*/
|
|
859
631
|
private selectScheduler;
|
|
860
632
|
private hasNodeSchedulingPreference;
|
|
861
|
-
private
|
|
633
|
+
private prepareInlineDispatch;
|
|
862
634
|
}
|
|
863
635
|
//#endregion
|
|
864
636
|
//#region src/scheduler/HintOnlyOffloadPolicy.d.ts
|
|
@@ -877,5 +649,5 @@ declare class LocalOnlyScheduler implements NodeExecutionScheduler {
|
|
|
877
649
|
}>;
|
|
878
650
|
}
|
|
879
651
|
//#endregion
|
|
880
|
-
export {
|
|
881
|
-
//# sourceMappingURL=index-
|
|
652
|
+
export { LangChainChatModelLike as $, AgentConnectionNodeRole as A, AsyncSleeper as At, AgentMessageTemplate as B, PersistedRuntimeTypeKind as C, Clock as Ct, AgentConnectionCredentialSource as D, InProcessRetryRunner as Dt, InMemoryRunEventBus as E, NodeExecutor as Et, AgentMessageBuildArgs as F, AgentToolCall as G, AgentModelInvocationOptions as H, AgentMessageConfig as I, AgentToolExecuteArgs as J, AgentToolCallPlanner as K, AgentMessageDto as L, AgentCanvasPresentation as M, NodeEventPublisher as Mt, AgentGuardrailConfig as N, EngineCompositionDeps as Nt, AgentConnectionNodeCollector as O, DefaultExecutionContextFactory as Ot, AgentGuardrailDefaults as P, EngineFactory as Pt, ChatModelFactory as Q, AgentMessageLine as R, PersistedRuntimeTypeDecoratorOptions as S, defineNode as St, EventPublishingWorkflowExecutionRepository as T, NodeInstanceFactory as Tt, AgentNodeConfig as U, AgentMessageTemplateContent as V, AgentTool as W, AgentTurnLimitBehavior as X, AgentToolToken as Y, ChatModelConfig as Z, tool as _, DefinedNode as _t, ConfigDrivenOffloadPolicy as a, Tool as at, PersistedRuntimeTypeMetadataStore as b, DefinedNodeCredentialBindings as bt, InMemoryWorkflowExecutionRepository as c, ZodSchemaAny as ct, DefaultExecutionBinaryService as d, AgentToolFactory as dt, NodeBackedToolConfigOptions as et, UnavailableBinaryStorage as f, NodeBackedToolConfig as ft, node as g, DefineNodeOptions as gt, getPersistedRuntimeTypeMetadata as h, DefinedNodeRegistry as ht, InlineDrivingScheduler as i, NodeBackedToolOutputMapperArgs as it, AgentAttachmentRole as j, CredentialResolverFactory as jt, AgentConnectionNodeDescriptor as k, DefaultAsyncSleeper as kt, InMemoryRunDataFactory as l, AgentConfigInspector as lt, chatModel as m, defineCredential as mt, HintOnlyOffloadPolicy as n, NodeBackedToolInputMapperArgs as nt, WorkflowRepositoryWebhookTriggerMatcher as o, ToolConfig as ot, ItemsInputNormalizer as p, DefineCredentialOptions as pt, AgentToolDefinition as q, DefaultDrivingScheduler as r, NodeBackedToolOutputMapper as rt, RunSummaryMapper as s, ToolExecuteArgs as st, LocalOnlyScheduler as t, NodeBackedToolInputMapper as tt, InMemoryBinaryStorage as u, AgentMessageConfigNormalizer as ut, StackTraceCallSitePathResolver as v, DefinedNodeCredentialAccessors as vt, PersistedRuntimeTypeMetadata as w, SystemClock as wt, InjectableRuntimeDecoratorComposer as x, DefinedNodeRunContext as xt, PersistedRuntimeTypeNameResolver as y, DefinedNodeCredentialBinding as yt, AgentMessageRole as z };
|
|
653
|
+
//# sourceMappingURL=index-BHmrZIHp.d.ts.map
|