@codemation/core 0.13.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/bootstrap/index.cjs +2 -2
- package/dist/bootstrap/index.d.cts +11 -0
- package/dist/bootstrap/index.d.ts +1 -1
- package/dist/bootstrap/index.js +2 -2
- package/dist/{bootstrap-CSeInbj1.js → bootstrap-DB3jpo8F.js} +2 -2
- package/dist/{bootstrap-CSeInbj1.js.map → bootstrap-DB3jpo8F.js.map} +1 -1
- package/dist/{bootstrap-BEu1fJBM.cjs → bootstrap-UDyH8OfK.cjs} +2 -2
- package/dist/{bootstrap-BEu1fJBM.cjs.map → bootstrap-UDyH8OfK.cjs.map} +1 -1
- package/dist/{index-CqZeNGAp.d.ts → index-C2P-fOAx.d.ts} +12 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{runtime-6-U2Cou5.js → runtime-iHBN1jyD.js} +21 -3
- package/dist/{runtime-6-U2Cou5.js.map → runtime-iHBN1jyD.js.map} +1 -1
- package/dist/{runtime-DjYXgOo0.cjs → runtime-rrH8-Ouq.cjs} +21 -3
- package/dist/{runtime-DjYXgOo0.cjs.map → runtime-rrH8-Ouq.cjs.map} +1 -1
- package/dist/testing.cjs +2 -2
- package/dist/testing.js +2 -2
- package/package.json +1 -1
- package/src/scheduler/InlineDrivingScheduler.ts +23 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-BEu1fJBM.cjs","names":["EngineExecutionLimitsPolicy","ENGINE_EXECUTION_LIMITS_DEFAULTS","RunFinishedAtFactory","out: RunPruneCandidate[]","RunFinishedAtFactory","engine: TestSuiteOrchestratorEngine","testSuiteRunIdFactory: TestSuiteRunIdFactory","credentialResolverFactory: CredentialResolverFactory","abortControllerFactory: AbortControllerFactory","eventBus: RunEventBus | undefined","currentDate: () => Date","setupContext: TestTriggerSetupContext","cases: TestSuiteCaseOutcome[]","waitForSlot: Promise<void> | undefined","releaseSlot: (() => void) | undefined","queue: Array<Promise<void>>","generationError: Error | undefined","status: TestSuiteRunStatus","executionOptions: RunExecutionOptions","terminal: Extract<RunResult, { status: \"completed\" | \"failed\" | \"halted\" }>","status: TestCaseRunStatus","workflowExecutionRepository: WorkflowExecutionRepository","humanTaskStore?: HumanTaskStore","tokenSigner?: HitlResumeTokenSignerSeam","timeoutScheduler?: HitlTimeoutJobSchedulerSeam","workspaceId?: string","handle: HumanTaskHandle","CodemationTelemetryAttributeNames","deliveryRef: Awaited<ReturnType<typeof deliver>>","record: HumanTaskRecord","entry: PersistedSuspensionEntry","updatedState: PersistedRunState","RunSuspendedError","z","InlineDrivingScheduler","CoreTokens","NoOpAgentMcpIntegration","ItemExprResolver","NodeOutputNormalizer","RunnableOutputBehaviorResolver","ChildExecutionScopeFactory","NodeInstanceFactoryFactory","DefaultAsyncSleeper","InProcessRetryRunnerFactory","NodeExecutorFactory","RunIntentServiceFactory","EngineWorkflowRunnerServiceFactory","WorkflowRepositoryWebhookTriggerMatcherFactory","NodeExecutor","HumanTaskStoreToken","HitlResumeTokenSignerToken","HitlTimeoutJobSchedulerToken","HitlWorkspaceIdToken","InlineDrivingScheduler","EngineFactory","Engine","RunIntentService"],"sources":["../src/policies/executionLimits/EngineExecutionLimitsPolicyFactory.ts","../src/runStorage/RunSummaryMapper.ts","../src/runStorage/InMemoryWorkflowExecutionRepository.ts","../src/orchestration/AbortControllerFactory.ts","../src/orchestration/TestSuiteOrchestrator.ts","../src/orchestration/TestSuiteRunIdFactory.ts","../src/execution/NodeSuspensionHandler.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 { 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<{ nowIso: string; defaultRetentionSeconds: number; 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 const retentionSeconds = s.policySnapshot?.retentionSeconds ?? args.defaultRetentionSeconds;\n const cutoffIso = new Date(new Date(args.nowIso).getTime() - retentionSeconds * 1000).toISOString();\n if (!finishedAt || finishedAt >= cutoffIso) 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","/**\n * Mints fresh {@link AbortController}s. Injected (rather than direct `new`) to honor the\n * codebase's no-direct-construction rule and to give tests a seam for substituting a fake.\n */\nexport class AbortControllerFactory {\n create(): AbortController {\n return new AbortController();\n }\n}\n","import type { CredentialResolverFactory } from \"../execution/CredentialResolverFactory\";\nimport type { RunEventBus, TestCaseRunStatus, TestSuiteRunStatus } from \"../events/runEvents\";\nimport type {\n Item,\n Items,\n NodeId,\n ParentExecutionRef,\n RunExecutionOptions,\n RunId,\n RunResult,\n TestSuiteRunId,\n TestTriggerNodeConfig,\n TestTriggerSetupContext,\n TriggerNodeConfig,\n WorkflowDefinition,\n WorkflowId,\n} from \"../types\";\n\nimport type { AbortControllerFactory } from \"./AbortControllerFactory\";\nimport { TestSuiteRunIdFactory } from \"./TestSuiteRunIdFactory\";\n\nconst DEFAULT_CONCURRENCY = 4;\n\n/**\n * Engine-facade subset the orchestrator needs. Kept narrow on purpose so unit tests can\n * substitute a fake without depending on the full Engine wiring.\n */\nexport interface TestSuiteOrchestratorEngine {\n runWorkflow(\n wf: WorkflowDefinition,\n startAt: NodeId,\n items: Items,\n parent?: ParentExecutionRef,\n executionOptions?: RunExecutionOptions,\n ): Promise<RunResult>;\n waitForCompletion(runId: RunId): Promise<Extract<RunResult, { status: \"completed\" | \"failed\" | \"halted\" }>>;\n}\n\nexport interface TestSuiteCaseOutcome {\n readonly testCaseIndex: number;\n readonly runId: RunId;\n readonly status: TestCaseRunStatus;\n}\n\nexport interface TestSuiteRunResult {\n readonly testSuiteRunId: TestSuiteRunId;\n readonly workflowId: WorkflowId;\n readonly triggerNodeId: NodeId;\n readonly status: TestSuiteRunStatus;\n readonly totalCases: number;\n readonly passedCases: number;\n readonly failedCases: number;\n readonly cases: ReadonlyArray<TestSuiteCaseOutcome>;\n}\n\nexport interface RunTestSuiteArgs {\n readonly workflow: WorkflowDefinition;\n readonly triggerNodeId: NodeId;\n readonly testSuiteRunId?: TestSuiteRunId;\n readonly concurrency?: number;\n readonly signal?: AbortSignal;\n}\n\n/**\n * Drives a {@link TestTriggerNodeConfig.generateItems} iterable into one workflow run per item,\n * with bounded concurrency. Pure engine logic — no persistence, no HTTP, no UI. Hosts adapt by\n * subscribing to {@link RunEventBus} and writing rows on `testSuite*` / `testCase*` / `nodeCompleted`.\n *\n * Cancellation: the supplied `AbortSignal` aborts the source iterable (so credentialed pulls bail)\n * and stops scheduling further cases. In-flight cases are awaited; engine-level cancellation of\n * an already-dispatched run is not yet wired (Phase 2).\n */\nexport class TestSuiteOrchestrator {\n constructor(\n private readonly engine: TestSuiteOrchestratorEngine,\n private readonly testSuiteRunIdFactory: TestSuiteRunIdFactory,\n private readonly credentialResolverFactory: CredentialResolverFactory,\n private readonly abortControllerFactory: AbortControllerFactory,\n private readonly eventBus: RunEventBus | undefined,\n private readonly currentDate: () => Date = () => new Date(),\n ) {}\n\n async runSuite(args: RunTestSuiteArgs): Promise<TestSuiteRunResult> {\n const triggerNodeId = args.triggerNodeId;\n const definition = args.workflow.nodes.find((n) => n.id === triggerNodeId);\n if (!definition) {\n throw new Error(`Unknown trigger nodeId: ${triggerNodeId}`);\n }\n if (definition.kind !== \"trigger\") {\n throw new Error(`Node ${triggerNodeId} is not a trigger`);\n }\n const triggerConfig = definition.config as TriggerNodeConfig;\n if (triggerConfig.triggerKind !== \"test\") {\n throw new Error(\n `Node ${triggerNodeId} is not a test trigger (triggerKind=\"${triggerConfig.triggerKind ?? \"live\"}\")`,\n );\n }\n const testTriggerConfig = triggerConfig as TestTriggerNodeConfig<unknown>;\n if (typeof testTriggerConfig.generateItems !== \"function\") {\n throw new Error(`Test trigger ${triggerNodeId} is missing a generateItems implementation`);\n }\n\n const testSuiteRunId = args.testSuiteRunId ?? this.testSuiteRunIdFactory.makeTestSuiteRunId();\n const concurrency = Math.max(1, args.concurrency ?? testTriggerConfig.concurrency ?? DEFAULT_CONCURRENCY);\n const externalSignal = args.signal;\n const internalAbort = this.abortControllerFactory.create();\n const onExternalAbort = () => internalAbort.abort(externalSignal?.reason);\n if (externalSignal) {\n if (externalSignal.aborted) {\n internalAbort.abort(externalSignal.reason);\n } else {\n externalSignal.addEventListener(\"abort\", onExternalAbort, { once: true });\n }\n }\n\n const triggerNodeName = definition.name ?? testTriggerConfig.name;\n\n await this.publish({\n kind: \"testSuiteStarted\",\n testSuiteRunId,\n workflowId: args.workflow.id,\n triggerNodeId,\n ...(triggerNodeName ? { triggerNodeName } : {}),\n concurrency,\n at: this.now(),\n });\n\n const setupContext: TestTriggerSetupContext = {\n workflowId: args.workflow.id,\n nodeId: triggerNodeId,\n config: testTriggerConfig,\n testSuiteRunId,\n getCredential: this.credentialResolverFactory.create(args.workflow.id, triggerNodeId, testTriggerConfig),\n signal: internalAbort.signal,\n };\n\n const cases: TestSuiteCaseOutcome[] = [];\n let nextIndex = 0;\n let inFlight = 0;\n let waitForSlot: Promise<void> | undefined;\n let releaseSlot: (() => void) | undefined;\n const queue: Array<Promise<void>> = [];\n let generationError: Error | undefined;\n\n const acquireSlot = async (): Promise<void> => {\n while (inFlight >= concurrency) {\n if (!waitForSlot) {\n waitForSlot = new Promise<void>((resolve) => {\n releaseSlot = resolve;\n });\n }\n await waitForSlot;\n }\n inFlight += 1;\n };\n\n const release = (): void => {\n inFlight -= 1;\n if (releaseSlot) {\n const fn = releaseSlot;\n releaseSlot = undefined;\n waitForSlot = undefined;\n fn();\n }\n };\n\n try {\n for await (const item of testTriggerConfig.generateItems(setupContext) as AsyncIterable<Item<unknown>>) {\n if (internalAbort.signal.aborted) {\n break;\n }\n await acquireSlot();\n if (internalAbort.signal.aborted) {\n release();\n break;\n }\n const testCaseIndex = nextIndex++;\n const testCaseLabel = this.resolveCaseLabel(testTriggerConfig, item);\n queue.push(\n this.runOneCase({\n workflow: args.workflow,\n triggerNodeId,\n testSuiteRunId,\n testCaseIndex,\n testCaseLabel,\n item,\n })\n .then((outcome) => {\n cases.push(outcome);\n })\n .finally(release),\n );\n }\n } catch (err) {\n generationError = err instanceof Error ? err : new Error(String(err));\n } finally {\n if (externalSignal) {\n externalSignal.removeEventListener(\"abort\", onExternalAbort);\n }\n }\n\n await Promise.all(queue);\n\n cases.sort((a, b) => a.testCaseIndex - b.testCaseIndex);\n const totalCases = cases.length;\n const passedCases = cases.filter((c) => c.status === \"succeeded\").length;\n const failedCases = cases.filter((c) => c.status === \"failed\").length;\n const status: TestSuiteRunStatus = this.deriveSuiteStatus({\n generationError,\n cancelled: internalAbort.signal.aborted,\n totalCases,\n passedCases,\n failedCases,\n });\n\n await this.publish({\n kind: \"testSuiteFinished\",\n testSuiteRunId,\n workflowId: args.workflow.id,\n status,\n totalCases,\n passedCases,\n failedCases,\n at: this.now(),\n });\n\n if (generationError && status === \"errored\") {\n throw generationError;\n }\n\n return {\n testSuiteRunId,\n workflowId: args.workflow.id,\n triggerNodeId,\n status,\n totalCases,\n passedCases,\n failedCases,\n cases,\n };\n }\n\n private async runOneCase(args: {\n workflow: WorkflowDefinition;\n triggerNodeId: NodeId;\n testSuiteRunId: TestSuiteRunId;\n testCaseIndex: number;\n testCaseLabel: string | undefined;\n item: Item<unknown>;\n }): Promise<TestSuiteCaseOutcome> {\n const executionOptions: RunExecutionOptions = {\n testContext: {\n testSuiteRunId: args.testSuiteRunId,\n testCaseIndex: args.testCaseIndex,\n ...(args.testCaseLabel !== undefined ? { testCaseLabel: args.testCaseLabel } : {}),\n },\n };\n\n const initial = await this.engine.runWorkflow(\n args.workflow,\n args.triggerNodeId,\n [args.item],\n undefined,\n executionOptions,\n );\n\n const runId = initial.runId;\n await this.publish({\n kind: \"testCaseStarted\",\n testSuiteRunId: args.testSuiteRunId,\n testCaseIndex: args.testCaseIndex,\n runId,\n workflowId: args.workflow.id,\n at: this.now(),\n ...(args.testCaseLabel !== undefined ? { testCaseLabel: args.testCaseLabel } : {}),\n });\n\n let terminal: Extract<RunResult, { status: \"completed\" | \"failed\" | \"halted\" }>;\n if (initial.status === \"completed\" || initial.status === \"failed\") {\n terminal = initial;\n } else {\n terminal = await this.engine.waitForCompletion(runId);\n }\n\n // RunResult.status from the engine narrows to \"completed\" | \"failed\" | \"halted\" here; widening to\n // \"errored\" / \"cancelled\" happens outside this code path (tracker downgrade for assertion\n // failures; outer abort handling for cancelled). Halted runs are treated as \"failed\" for\n // test case status purposes.\n const status: TestCaseRunStatus = terminal.status === \"completed\" ? \"succeeded\" : \"failed\";\n await this.publish({\n kind: \"testCaseCompleted\",\n testSuiteRunId: args.testSuiteRunId,\n testCaseIndex: args.testCaseIndex,\n runId,\n workflowId: args.workflow.id,\n status,\n at: this.now(),\n });\n return { testCaseIndex: args.testCaseIndex, runId, status };\n }\n\n private deriveSuiteStatus(args: {\n generationError: Error | undefined;\n cancelled: boolean;\n totalCases: number;\n passedCases: number;\n failedCases: number;\n }): TestSuiteRunStatus {\n if (args.generationError && args.totalCases === 0) {\n return \"errored\";\n }\n if (args.cancelled) {\n return \"cancelled\";\n }\n if (args.generationError) {\n return \"errored\";\n }\n if (args.totalCases === 0) {\n return \"succeeded\";\n }\n if (args.failedCases === 0) {\n return \"succeeded\";\n }\n if (args.passedCases === 0) {\n return \"failed\";\n }\n return \"partial\";\n }\n\n private now(): string {\n return this.currentDate().toISOString();\n }\n\n /** Defensive label resolver — author-supplied callbacks throw / return non-strings; we tolerate both. */\n private resolveCaseLabel(config: TestTriggerNodeConfig<unknown>, item: Item<unknown>): string | undefined {\n if (typeof config.caseLabel !== \"function\") return undefined;\n try {\n const result = config.caseLabel(item);\n if (typeof result !== \"string\") return undefined;\n const trimmed = result.trim();\n return trimmed.length === 0 ? undefined : trimmed;\n } catch {\n return undefined;\n }\n }\n\n private async publish(event: Parameters<RunEventBus[\"publish\"]>[0]): Promise<void> {\n if (!this.eventBus) return;\n await this.eventBus.publish(event);\n }\n}\n","import type { TestSuiteRunId } from \"../contracts/testTriggerTypes\";\n\n/**\n * Mints unique TestSuiteRun identifiers. Separated from {@link import(\"../types\").RunIdFactory}\n * so suite ids and per-case workflow run ids never alias.\n */\nexport class TestSuiteRunIdFactory {\n makeTestSuiteRunId(): TestSuiteRunId {\n return `tsr_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n }\n}\n","import { createHash } from \"node:crypto\";\nimport { z } from \"zod\";\n\nimport type { HitlResumeTokenSignerSeam, HitlTimeoutJobSchedulerSeam } from \"../contracts/hitlSeamTypes\";\nimport type { HumanTaskRecord, HumanTaskStore } from \"../contracts/humanTaskStoreTypes\";\nimport type {\n HumanTaskHandle,\n NodeActivationId,\n NodeId,\n PersistedRunState,\n PersistedSuspensionEntry,\n RunId,\n SuspensionRequest,\n WorkflowExecutionRepository,\n} from \"../types\";\nimport type { TelemetryScope } from \"../contracts/telemetryTypes\";\nimport { CodemationTelemetryAttributeNames } from \"../contracts/CodemationTelemetryAttributeNames\";\n\nimport { RunSuspendedError } from \"./RunSuspendedError\";\nexport { RunSuspendedError };\n\n/**\n * Handles per-item `SuspensionRequest` catches in the engine's item execution loop.\n *\n * Responsibilities:\n * 1. Generate a `taskId` (UUID v4).\n * 2. Persist a `HumanTask` row via `HumanTaskStore.create`.\n * 3. Sign a resume URL via `HitlResumeTokenSigner.sign`.\n * 4. Enqueue a delayed BullMQ timeout job via `HitlTimeoutJobScheduler.enqueue`.\n * 5. Build a `HumanTaskHandle` and call `deliver`.\n * 6. Append a `PersistedSuspensionEntry` to the run state and flip status to `\"suspended\"`.\n * 7. Persist via `WorkflowExecutionRepository.save`.\n * 8. Throw `RunSuspendedError` so the caller can exit cleanly.\n *\n * If `deliver` throws, the error propagates up to `NodeExecutionRequestHandlerService`\n * which routes it through `resumeFromNodeError` → run status becomes `\"failed\"`.\n *\n * `humanTaskStore`, `tokenSigner`, and `timeoutScheduler` are optional —\n * when not registered (e.g. in unit tests), the handler still suspends the run but\n * skips persistence, token signing, and job scheduling.\n */\nexport class NodeSuspensionHandler {\n constructor(\n private readonly workflowExecutionRepository: WorkflowExecutionRepository,\n private readonly humanTaskStore?: HumanTaskStore,\n private readonly tokenSigner?: HitlResumeTokenSignerSeam,\n private readonly timeoutScheduler?: HitlTimeoutJobSchedulerSeam,\n /** Workspace ID to stamp on HumanTaskRecord in managed mode (T7 security fix). Null in non-managed mode. */\n private readonly workspaceId?: string,\n ) {}\n\n async handle(args: {\n runId: RunId;\n nodeId: NodeId;\n activationId: NodeActivationId;\n itemIndex: number;\n suspensionRequest: SuspensionRequest;\n state: PersistedRunState;\n /** Telemetry scope of the node's per-item span. Used to emit `hitl.task.*` span events. */\n telemetry?: TelemetryScope;\n }): Promise<never> {\n const taskId = `htask_${globalThis.crypto.randomUUID()}`;\n const { timeout, onTimeout, deliver, decisionSchema, subject, metadata } = args.suspensionRequest.request;\n\n const timeoutMs = this.parseDurationMs(timeout);\n const expiresAt = new Date(Date.now() + timeoutMs);\n\n const decisionSchemaHash = this.hashSchema(decisionSchema);\n const decisionSchemaJson = this.schemaToJson(decisionSchema);\n\n // Build resume token (when signer is available)\n let resumeUrl = \"\";\n let resumeTokenHash = \"\";\n if (this.tokenSigner) {\n const token = this.tokenSigner.sign({ taskId, expiresAt, schemaHash: decisionSchemaHash });\n resumeUrl = token; // callers (deliver) receive the raw token; inbox layers wrap into a URL\n resumeTokenHash = this.tokenSigner.hashToken(token);\n }\n\n const handle: HumanTaskHandle = {\n taskId,\n runId: args.runId,\n nodeId: args.nodeId,\n expiresAt,\n resumeUrl,\n ...(metadata !== undefined ? { metadata } : {}),\n };\n\n // Emit hitl.task.created before calling deliver.\n const channel = (metadata as Record<string, unknown> | undefined)?.[\"channel\"];\n await args.telemetry?.addSpanEvent?.({\n name: \"hitl.task.created\",\n attributes: {\n [CodemationTelemetryAttributeNames.hitlTaskId]: taskId,\n [CodemationTelemetryAttributeNames.hitlChannel]: typeof channel === \"string\" ? channel : \"unknown\",\n [CodemationTelemetryAttributeNames.runId]: args.runId,\n [CodemationTelemetryAttributeNames.nodeId]: args.nodeId,\n expiresAt: expiresAt.toISOString(),\n },\n });\n\n // D5: deliver throws → emit hitl.task.delivery_failed, then propagate upward;\n // caller routes to resumeFromNodeError → \"failed\"\n let deliveryRef: Awaited<ReturnType<typeof deliver>>;\n try {\n deliveryRef = await deliver(handle);\n } catch (deliverError) {\n await args.telemetry?.addSpanEvent?.({\n name: \"hitl.task.delivery_failed\",\n attributes: {\n [CodemationTelemetryAttributeNames.hitlTaskId]: taskId,\n [CodemationTelemetryAttributeNames.hitlChannel]: typeof channel === \"string\" ? channel : \"unknown\",\n error: deliverError instanceof Error ? deliverError.message : String(deliverError),\n },\n });\n throw deliverError;\n }\n\n // Persist HumanTask row\n if (this.humanTaskStore) {\n const record: HumanTaskRecord = {\n id: taskId,\n runId: args.runId,\n workflowId: args.state.workflowId,\n // T7: stamp workspaceId in managed mode so HitlCallbackHandler can assert workspace identity.\n // Non-managed mode leaves this undefined (null in DB) — the check in HitlCallbackHandler\n // is guarded by `task.workspaceId !== undefined` and is a no-op when null.\n workspaceId: this.workspaceId ?? undefined,\n nodeId: args.nodeId,\n activationId: args.activationId,\n itemIndex: args.itemIndex,\n status: \"pending\",\n channel: \"local\",\n subject,\n metadata: (metadata as Record<string, import(\"../contracts/workflowTypes\").JsonValue>) ?? {},\n decisionSchemaJson,\n decisionSchemaHash,\n onTimeout,\n deliveryRef,\n resumeTokenHash: resumeTokenHash || \"no-token\",\n expiresAt,\n createdAt: new Date(),\n };\n await this.humanTaskStore.create(record);\n }\n\n // Enqueue timeout job\n if (this.timeoutScheduler) {\n await this.timeoutScheduler.enqueueTimeoutJob({ taskId, expiresAt });\n }\n\n const entry: PersistedSuspensionEntry = {\n taskId,\n nodeId: args.nodeId,\n activationId: args.activationId,\n itemIndex: args.itemIndex,\n decisionSchemaHash,\n deliveryRef,\n timeoutAt: expiresAt.toISOString(),\n onTimeout,\n };\n\n const existingSuspensions = args.state.suspension ?? [];\n const updatedState: PersistedRunState = {\n ...args.state,\n status: \"suspended\",\n suspension: [...existingSuspensions, entry],\n };\n\n await this.workflowExecutionRepository.save(updatedState);\n\n throw new RunSuspendedError(args.runId, taskId);\n }\n\n /**\n * Parse a duration string into milliseconds.\n * Accepts ISO 8601 durations (\"PT24H\", \"PT30M\") and shorthand (\"24h\", \"30m\", \"1d\").\n * Throws for unrecognised formats.\n */\n private parseDurationMs(duration: string): number {\n // Shorthand: \"24h\", \"30m\", \"7d\", \"3600s\"\n const shorthand = /^(\\d+(?:\\.\\d+)?)(s|m|h|d)$/i.exec(duration);\n if (shorthand) {\n const value = parseFloat(shorthand[1]!);\n const unit = shorthand[2]!.toLowerCase();\n const multipliers: Record<string, number> = {\n s: 1_000,\n m: 60_000,\n h: 3_600_000,\n d: 86_400_000,\n };\n return value * multipliers[unit]!;\n }\n // ISO 8601 duration subset: PTnHnMnS (days handled via P1D)\n const iso = /^P(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$/.exec(duration);\n if (iso) {\n const days = parseFloat(iso[1] ?? \"0\");\n const hours = parseFloat(iso[2] ?? \"0\");\n const minutes = parseFloat(iso[3] ?? \"0\");\n const seconds = parseFloat(iso[4] ?? \"0\");\n return (days * 86_400 + hours * 3_600 + minutes * 60 + seconds) * 1_000;\n }\n throw new Error(`NodeSuspensionHandler: unrecognised duration format: \"${duration}\"`);\n }\n\n private hashSchema(schema: unknown): string {\n const json = this.schemaToJson(schema);\n return createHash(\"sha256\").update(json).digest(\"hex\");\n }\n\n private schemaToJson(schema: unknown): string {\n if (schema instanceof z.ZodType) {\n return JSON.stringify(z.toJSONSchema(schema));\n }\n if (typeof (schema as { toJSON?: unknown }).toJSON === \"function\") {\n return JSON.stringify((schema as { toJSON: () => unknown }).toJSON());\n }\n return JSON.stringify(schema);\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 { NoOpAgentMcpIntegration } from \"../../contracts/NoOpAgentMcpIntegration\";\nimport { EngineExecutionLimitsPolicyFactory } from \"../../policies/executionLimits/EngineExecutionLimitsPolicyFactory\";\nimport {\n ChildExecutionScopeFactory,\n DefaultAsyncSleeper,\n InProcessRetryRunnerFactory,\n ItemExprResolver,\n NodeExecutor,\n NodeExecutorFactory,\n NodeInstanceFactoryFactory,\n NodeOutputNormalizer,\n RunnableOutputBehaviorResolver,\n} from \"../../execution\";\nimport { NodeSuspensionHandler } from \"../../execution/NodeSuspensionHandler\";\nimport { HumanTaskStoreToken } from \"../../contracts/humanTaskStoreTypes\";\nimport {\n HitlResumeTokenSignerToken,\n HitlTimeoutJobSchedulerToken,\n HitlWorkspaceIdToken,\n} from \"../../contracts/hitlSeamTypes\";\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 this.registerAgentMcpIntegration(container);\n }\n\n private registerAgentMcpIntegration(container: DependencyContainer): void {\n if (container.isRegistered(CoreTokens.AgentMcpIntegration, true)) {\n return;\n }\n container.registerInstance(CoreTokens.AgentMcpIntegration, new NoOpAgentMcpIntegration());\n }\n\n private registerSupportFactories(container: DependencyContainer): void {\n if (!container.isRegistered(ItemExprResolver, true)) {\n container.registerSingleton(ItemExprResolver, ItemExprResolver);\n }\n if (!container.isRegistered(NodeOutputNormalizer, true)) {\n container.registerSingleton(NodeOutputNormalizer, NodeOutputNormalizer);\n }\n if (!container.isRegistered(RunnableOutputBehaviorResolver, true)) {\n container.registerSingleton(RunnableOutputBehaviorResolver, RunnableOutputBehaviorResolver);\n }\n if (!container.isRegistered(ChildExecutionScopeFactory, true)) {\n container.register(ChildExecutionScopeFactory, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return new ChildExecutionScopeFactory(dependencyContainer.resolve(CoreTokens.ActivationIdFactory));\n }),\n });\n }\n container.registerSingleton(EngineExecutionLimitsPolicyFactory, EngineExecutionLimitsPolicyFactory);\n container.registerSingleton(NodeInstanceFactoryFactory, NodeInstanceFactoryFactory);\n container.registerSingleton(DefaultAsyncSleeper, DefaultAsyncSleeper);\n container.registerSingleton(InProcessRetryRunnerFactory, InProcessRetryRunnerFactory);\n container.registerSingleton(NodeExecutorFactory, NodeExecutorFactory);\n container.registerSingleton(InlineDrivingSchedulerFactory, InlineDrivingSchedulerFactory);\n container.registerSingleton(RunIntentServiceFactory, RunIntentServiceFactory);\n container.registerSingleton(EngineWorkflowRunnerServiceFactory, EngineWorkflowRunnerServiceFactory);\n container.registerSingleton(\n WorkflowRepositoryWebhookTriggerMatcherFactory,\n 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 const workflowExecutionRepository = dependencyContainer.resolve(CoreTokens.WorkflowExecutionRepository);\n const humanTaskStore = dependencyContainer.isRegistered(HumanTaskStoreToken, true)\n ? dependencyContainer.resolve(HumanTaskStoreToken)\n : undefined;\n const tokenSigner = dependencyContainer.isRegistered(HitlResumeTokenSignerToken, true)\n ? dependencyContainer.resolve(HitlResumeTokenSignerToken)\n : undefined;\n const timeoutScheduler = dependencyContainer.isRegistered(HitlTimeoutJobSchedulerToken, true)\n ? dependencyContainer.resolve(HitlTimeoutJobSchedulerToken)\n : undefined;\n const workspaceId = dependencyContainer.isRegistered(HitlWorkspaceIdToken, true)\n ? dependencyContainer.resolve(HitlWorkspaceIdToken)\n : undefined;\n const suspensionHandler = new NodeSuspensionHandler(\n workflowExecutionRepository,\n humanTaskStore ?? undefined,\n tokenSigner ?? undefined,\n timeoutScheduler ?? undefined,\n workspaceId ?? undefined,\n );\n return dependencyContainer\n .resolve(NodeExecutorFactory)\n .create(\n dependencyContainer.resolve(CoreTokens.WorkflowNodeInstanceFactory),\n retryRunner,\n dependencyContainer.resolve(RunnableOutputBehaviorResolver),\n suspensionHandler,\n (runId) => workflowExecutionRepository.load(runId),\n );\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.registerSingleton(EngineFactory, 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 workflowPolicyRuntimeDefaults: options?.workflowPolicyRuntimeDefaults,\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
|
+
{"version":3,"file":"bootstrap-UDyH8OfK.cjs","names":["EngineExecutionLimitsPolicy","ENGINE_EXECUTION_LIMITS_DEFAULTS","RunFinishedAtFactory","out: RunPruneCandidate[]","RunFinishedAtFactory","engine: TestSuiteOrchestratorEngine","testSuiteRunIdFactory: TestSuiteRunIdFactory","credentialResolverFactory: CredentialResolverFactory","abortControllerFactory: AbortControllerFactory","eventBus: RunEventBus | undefined","currentDate: () => Date","setupContext: TestTriggerSetupContext","cases: TestSuiteCaseOutcome[]","waitForSlot: Promise<void> | undefined","releaseSlot: (() => void) | undefined","queue: Array<Promise<void>>","generationError: Error | undefined","status: TestSuiteRunStatus","executionOptions: RunExecutionOptions","terminal: Extract<RunResult, { status: \"completed\" | \"failed\" | \"halted\" }>","status: TestCaseRunStatus","workflowExecutionRepository: WorkflowExecutionRepository","humanTaskStore?: HumanTaskStore","tokenSigner?: HitlResumeTokenSignerSeam","timeoutScheduler?: HitlTimeoutJobSchedulerSeam","workspaceId?: string","handle: HumanTaskHandle","CodemationTelemetryAttributeNames","deliveryRef: Awaited<ReturnType<typeof deliver>>","record: HumanTaskRecord","entry: PersistedSuspensionEntry","updatedState: PersistedRunState","RunSuspendedError","z","InlineDrivingScheduler","CoreTokens","NoOpAgentMcpIntegration","ItemExprResolver","NodeOutputNormalizer","RunnableOutputBehaviorResolver","ChildExecutionScopeFactory","NodeInstanceFactoryFactory","DefaultAsyncSleeper","InProcessRetryRunnerFactory","NodeExecutorFactory","RunIntentServiceFactory","EngineWorkflowRunnerServiceFactory","WorkflowRepositoryWebhookTriggerMatcherFactory","NodeExecutor","HumanTaskStoreToken","HitlResumeTokenSignerToken","HitlTimeoutJobSchedulerToken","HitlWorkspaceIdToken","InlineDrivingScheduler","EngineFactory","Engine","RunIntentService"],"sources":["../src/policies/executionLimits/EngineExecutionLimitsPolicyFactory.ts","../src/runStorage/RunSummaryMapper.ts","../src/runStorage/InMemoryWorkflowExecutionRepository.ts","../src/orchestration/AbortControllerFactory.ts","../src/orchestration/TestSuiteOrchestrator.ts","../src/orchestration/TestSuiteRunIdFactory.ts","../src/execution/NodeSuspensionHandler.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 { 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<{ nowIso: string; defaultRetentionSeconds: number; 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 const retentionSeconds = s.policySnapshot?.retentionSeconds ?? args.defaultRetentionSeconds;\n const cutoffIso = new Date(new Date(args.nowIso).getTime() - retentionSeconds * 1000).toISOString();\n if (!finishedAt || finishedAt >= cutoffIso) 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","/**\n * Mints fresh {@link AbortController}s. Injected (rather than direct `new`) to honor the\n * codebase's no-direct-construction rule and to give tests a seam for substituting a fake.\n */\nexport class AbortControllerFactory {\n create(): AbortController {\n return new AbortController();\n }\n}\n","import type { CredentialResolverFactory } from \"../execution/CredentialResolverFactory\";\nimport type { RunEventBus, TestCaseRunStatus, TestSuiteRunStatus } from \"../events/runEvents\";\nimport type {\n Item,\n Items,\n NodeId,\n ParentExecutionRef,\n RunExecutionOptions,\n RunId,\n RunResult,\n TestSuiteRunId,\n TestTriggerNodeConfig,\n TestTriggerSetupContext,\n TriggerNodeConfig,\n WorkflowDefinition,\n WorkflowId,\n} from \"../types\";\n\nimport type { AbortControllerFactory } from \"./AbortControllerFactory\";\nimport { TestSuiteRunIdFactory } from \"./TestSuiteRunIdFactory\";\n\nconst DEFAULT_CONCURRENCY = 4;\n\n/**\n * Engine-facade subset the orchestrator needs. Kept narrow on purpose so unit tests can\n * substitute a fake without depending on the full Engine wiring.\n */\nexport interface TestSuiteOrchestratorEngine {\n runWorkflow(\n wf: WorkflowDefinition,\n startAt: NodeId,\n items: Items,\n parent?: ParentExecutionRef,\n executionOptions?: RunExecutionOptions,\n ): Promise<RunResult>;\n waitForCompletion(runId: RunId): Promise<Extract<RunResult, { status: \"completed\" | \"failed\" | \"halted\" }>>;\n}\n\nexport interface TestSuiteCaseOutcome {\n readonly testCaseIndex: number;\n readonly runId: RunId;\n readonly status: TestCaseRunStatus;\n}\n\nexport interface TestSuiteRunResult {\n readonly testSuiteRunId: TestSuiteRunId;\n readonly workflowId: WorkflowId;\n readonly triggerNodeId: NodeId;\n readonly status: TestSuiteRunStatus;\n readonly totalCases: number;\n readonly passedCases: number;\n readonly failedCases: number;\n readonly cases: ReadonlyArray<TestSuiteCaseOutcome>;\n}\n\nexport interface RunTestSuiteArgs {\n readonly workflow: WorkflowDefinition;\n readonly triggerNodeId: NodeId;\n readonly testSuiteRunId?: TestSuiteRunId;\n readonly concurrency?: number;\n readonly signal?: AbortSignal;\n}\n\n/**\n * Drives a {@link TestTriggerNodeConfig.generateItems} iterable into one workflow run per item,\n * with bounded concurrency. Pure engine logic — no persistence, no HTTP, no UI. Hosts adapt by\n * subscribing to {@link RunEventBus} and writing rows on `testSuite*` / `testCase*` / `nodeCompleted`.\n *\n * Cancellation: the supplied `AbortSignal` aborts the source iterable (so credentialed pulls bail)\n * and stops scheduling further cases. In-flight cases are awaited; engine-level cancellation of\n * an already-dispatched run is not yet wired (Phase 2).\n */\nexport class TestSuiteOrchestrator {\n constructor(\n private readonly engine: TestSuiteOrchestratorEngine,\n private readonly testSuiteRunIdFactory: TestSuiteRunIdFactory,\n private readonly credentialResolverFactory: CredentialResolverFactory,\n private readonly abortControllerFactory: AbortControllerFactory,\n private readonly eventBus: RunEventBus | undefined,\n private readonly currentDate: () => Date = () => new Date(),\n ) {}\n\n async runSuite(args: RunTestSuiteArgs): Promise<TestSuiteRunResult> {\n const triggerNodeId = args.triggerNodeId;\n const definition = args.workflow.nodes.find((n) => n.id === triggerNodeId);\n if (!definition) {\n throw new Error(`Unknown trigger nodeId: ${triggerNodeId}`);\n }\n if (definition.kind !== \"trigger\") {\n throw new Error(`Node ${triggerNodeId} is not a trigger`);\n }\n const triggerConfig = definition.config as TriggerNodeConfig;\n if (triggerConfig.triggerKind !== \"test\") {\n throw new Error(\n `Node ${triggerNodeId} is not a test trigger (triggerKind=\"${triggerConfig.triggerKind ?? \"live\"}\")`,\n );\n }\n const testTriggerConfig = triggerConfig as TestTriggerNodeConfig<unknown>;\n if (typeof testTriggerConfig.generateItems !== \"function\") {\n throw new Error(`Test trigger ${triggerNodeId} is missing a generateItems implementation`);\n }\n\n const testSuiteRunId = args.testSuiteRunId ?? this.testSuiteRunIdFactory.makeTestSuiteRunId();\n const concurrency = Math.max(1, args.concurrency ?? testTriggerConfig.concurrency ?? DEFAULT_CONCURRENCY);\n const externalSignal = args.signal;\n const internalAbort = this.abortControllerFactory.create();\n const onExternalAbort = () => internalAbort.abort(externalSignal?.reason);\n if (externalSignal) {\n if (externalSignal.aborted) {\n internalAbort.abort(externalSignal.reason);\n } else {\n externalSignal.addEventListener(\"abort\", onExternalAbort, { once: true });\n }\n }\n\n const triggerNodeName = definition.name ?? testTriggerConfig.name;\n\n await this.publish({\n kind: \"testSuiteStarted\",\n testSuiteRunId,\n workflowId: args.workflow.id,\n triggerNodeId,\n ...(triggerNodeName ? { triggerNodeName } : {}),\n concurrency,\n at: this.now(),\n });\n\n const setupContext: TestTriggerSetupContext = {\n workflowId: args.workflow.id,\n nodeId: triggerNodeId,\n config: testTriggerConfig,\n testSuiteRunId,\n getCredential: this.credentialResolverFactory.create(args.workflow.id, triggerNodeId, testTriggerConfig),\n signal: internalAbort.signal,\n };\n\n const cases: TestSuiteCaseOutcome[] = [];\n let nextIndex = 0;\n let inFlight = 0;\n let waitForSlot: Promise<void> | undefined;\n let releaseSlot: (() => void) | undefined;\n const queue: Array<Promise<void>> = [];\n let generationError: Error | undefined;\n\n const acquireSlot = async (): Promise<void> => {\n while (inFlight >= concurrency) {\n if (!waitForSlot) {\n waitForSlot = new Promise<void>((resolve) => {\n releaseSlot = resolve;\n });\n }\n await waitForSlot;\n }\n inFlight += 1;\n };\n\n const release = (): void => {\n inFlight -= 1;\n if (releaseSlot) {\n const fn = releaseSlot;\n releaseSlot = undefined;\n waitForSlot = undefined;\n fn();\n }\n };\n\n try {\n for await (const item of testTriggerConfig.generateItems(setupContext) as AsyncIterable<Item<unknown>>) {\n if (internalAbort.signal.aborted) {\n break;\n }\n await acquireSlot();\n if (internalAbort.signal.aborted) {\n release();\n break;\n }\n const testCaseIndex = nextIndex++;\n const testCaseLabel = this.resolveCaseLabel(testTriggerConfig, item);\n queue.push(\n this.runOneCase({\n workflow: args.workflow,\n triggerNodeId,\n testSuiteRunId,\n testCaseIndex,\n testCaseLabel,\n item,\n })\n .then((outcome) => {\n cases.push(outcome);\n })\n .finally(release),\n );\n }\n } catch (err) {\n generationError = err instanceof Error ? err : new Error(String(err));\n } finally {\n if (externalSignal) {\n externalSignal.removeEventListener(\"abort\", onExternalAbort);\n }\n }\n\n await Promise.all(queue);\n\n cases.sort((a, b) => a.testCaseIndex - b.testCaseIndex);\n const totalCases = cases.length;\n const passedCases = cases.filter((c) => c.status === \"succeeded\").length;\n const failedCases = cases.filter((c) => c.status === \"failed\").length;\n const status: TestSuiteRunStatus = this.deriveSuiteStatus({\n generationError,\n cancelled: internalAbort.signal.aborted,\n totalCases,\n passedCases,\n failedCases,\n });\n\n await this.publish({\n kind: \"testSuiteFinished\",\n testSuiteRunId,\n workflowId: args.workflow.id,\n status,\n totalCases,\n passedCases,\n failedCases,\n at: this.now(),\n });\n\n if (generationError && status === \"errored\") {\n throw generationError;\n }\n\n return {\n testSuiteRunId,\n workflowId: args.workflow.id,\n triggerNodeId,\n status,\n totalCases,\n passedCases,\n failedCases,\n cases,\n };\n }\n\n private async runOneCase(args: {\n workflow: WorkflowDefinition;\n triggerNodeId: NodeId;\n testSuiteRunId: TestSuiteRunId;\n testCaseIndex: number;\n testCaseLabel: string | undefined;\n item: Item<unknown>;\n }): Promise<TestSuiteCaseOutcome> {\n const executionOptions: RunExecutionOptions = {\n testContext: {\n testSuiteRunId: args.testSuiteRunId,\n testCaseIndex: args.testCaseIndex,\n ...(args.testCaseLabel !== undefined ? { testCaseLabel: args.testCaseLabel } : {}),\n },\n };\n\n const initial = await this.engine.runWorkflow(\n args.workflow,\n args.triggerNodeId,\n [args.item],\n undefined,\n executionOptions,\n );\n\n const runId = initial.runId;\n await this.publish({\n kind: \"testCaseStarted\",\n testSuiteRunId: args.testSuiteRunId,\n testCaseIndex: args.testCaseIndex,\n runId,\n workflowId: args.workflow.id,\n at: this.now(),\n ...(args.testCaseLabel !== undefined ? { testCaseLabel: args.testCaseLabel } : {}),\n });\n\n let terminal: Extract<RunResult, { status: \"completed\" | \"failed\" | \"halted\" }>;\n if (initial.status === \"completed\" || initial.status === \"failed\") {\n terminal = initial;\n } else {\n terminal = await this.engine.waitForCompletion(runId);\n }\n\n // RunResult.status from the engine narrows to \"completed\" | \"failed\" | \"halted\" here; widening to\n // \"errored\" / \"cancelled\" happens outside this code path (tracker downgrade for assertion\n // failures; outer abort handling for cancelled). Halted runs are treated as \"failed\" for\n // test case status purposes.\n const status: TestCaseRunStatus = terminal.status === \"completed\" ? \"succeeded\" : \"failed\";\n await this.publish({\n kind: \"testCaseCompleted\",\n testSuiteRunId: args.testSuiteRunId,\n testCaseIndex: args.testCaseIndex,\n runId,\n workflowId: args.workflow.id,\n status,\n at: this.now(),\n });\n return { testCaseIndex: args.testCaseIndex, runId, status };\n }\n\n private deriveSuiteStatus(args: {\n generationError: Error | undefined;\n cancelled: boolean;\n totalCases: number;\n passedCases: number;\n failedCases: number;\n }): TestSuiteRunStatus {\n if (args.generationError && args.totalCases === 0) {\n return \"errored\";\n }\n if (args.cancelled) {\n return \"cancelled\";\n }\n if (args.generationError) {\n return \"errored\";\n }\n if (args.totalCases === 0) {\n return \"succeeded\";\n }\n if (args.failedCases === 0) {\n return \"succeeded\";\n }\n if (args.passedCases === 0) {\n return \"failed\";\n }\n return \"partial\";\n }\n\n private now(): string {\n return this.currentDate().toISOString();\n }\n\n /** Defensive label resolver — author-supplied callbacks throw / return non-strings; we tolerate both. */\n private resolveCaseLabel(config: TestTriggerNodeConfig<unknown>, item: Item<unknown>): string | undefined {\n if (typeof config.caseLabel !== \"function\") return undefined;\n try {\n const result = config.caseLabel(item);\n if (typeof result !== \"string\") return undefined;\n const trimmed = result.trim();\n return trimmed.length === 0 ? undefined : trimmed;\n } catch {\n return undefined;\n }\n }\n\n private async publish(event: Parameters<RunEventBus[\"publish\"]>[0]): Promise<void> {\n if (!this.eventBus) return;\n await this.eventBus.publish(event);\n }\n}\n","import type { TestSuiteRunId } from \"../contracts/testTriggerTypes\";\n\n/**\n * Mints unique TestSuiteRun identifiers. Separated from {@link import(\"../types\").RunIdFactory}\n * so suite ids and per-case workflow run ids never alias.\n */\nexport class TestSuiteRunIdFactory {\n makeTestSuiteRunId(): TestSuiteRunId {\n return `tsr_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n }\n}\n","import { createHash } from \"node:crypto\";\nimport { z } from \"zod\";\n\nimport type { HitlResumeTokenSignerSeam, HitlTimeoutJobSchedulerSeam } from \"../contracts/hitlSeamTypes\";\nimport type { HumanTaskRecord, HumanTaskStore } from \"../contracts/humanTaskStoreTypes\";\nimport type {\n HumanTaskHandle,\n NodeActivationId,\n NodeId,\n PersistedRunState,\n PersistedSuspensionEntry,\n RunId,\n SuspensionRequest,\n WorkflowExecutionRepository,\n} from \"../types\";\nimport type { TelemetryScope } from \"../contracts/telemetryTypes\";\nimport { CodemationTelemetryAttributeNames } from \"../contracts/CodemationTelemetryAttributeNames\";\n\nimport { RunSuspendedError } from \"./RunSuspendedError\";\nexport { RunSuspendedError };\n\n/**\n * Handles per-item `SuspensionRequest` catches in the engine's item execution loop.\n *\n * Responsibilities:\n * 1. Generate a `taskId` (UUID v4).\n * 2. Persist a `HumanTask` row via `HumanTaskStore.create`.\n * 3. Sign a resume URL via `HitlResumeTokenSigner.sign`.\n * 4. Enqueue a delayed BullMQ timeout job via `HitlTimeoutJobScheduler.enqueue`.\n * 5. Build a `HumanTaskHandle` and call `deliver`.\n * 6. Append a `PersistedSuspensionEntry` to the run state and flip status to `\"suspended\"`.\n * 7. Persist via `WorkflowExecutionRepository.save`.\n * 8. Throw `RunSuspendedError` so the caller can exit cleanly.\n *\n * If `deliver` throws, the error propagates up to `NodeExecutionRequestHandlerService`\n * which routes it through `resumeFromNodeError` → run status becomes `\"failed\"`.\n *\n * `humanTaskStore`, `tokenSigner`, and `timeoutScheduler` are optional —\n * when not registered (e.g. in unit tests), the handler still suspends the run but\n * skips persistence, token signing, and job scheduling.\n */\nexport class NodeSuspensionHandler {\n constructor(\n private readonly workflowExecutionRepository: WorkflowExecutionRepository,\n private readonly humanTaskStore?: HumanTaskStore,\n private readonly tokenSigner?: HitlResumeTokenSignerSeam,\n private readonly timeoutScheduler?: HitlTimeoutJobSchedulerSeam,\n /** Workspace ID to stamp on HumanTaskRecord in managed mode (T7 security fix). Null in non-managed mode. */\n private readonly workspaceId?: string,\n ) {}\n\n async handle(args: {\n runId: RunId;\n nodeId: NodeId;\n activationId: NodeActivationId;\n itemIndex: number;\n suspensionRequest: SuspensionRequest;\n state: PersistedRunState;\n /** Telemetry scope of the node's per-item span. Used to emit `hitl.task.*` span events. */\n telemetry?: TelemetryScope;\n }): Promise<never> {\n const taskId = `htask_${globalThis.crypto.randomUUID()}`;\n const { timeout, onTimeout, deliver, decisionSchema, subject, metadata } = args.suspensionRequest.request;\n\n const timeoutMs = this.parseDurationMs(timeout);\n const expiresAt = new Date(Date.now() + timeoutMs);\n\n const decisionSchemaHash = this.hashSchema(decisionSchema);\n const decisionSchemaJson = this.schemaToJson(decisionSchema);\n\n // Build resume token (when signer is available)\n let resumeUrl = \"\";\n let resumeTokenHash = \"\";\n if (this.tokenSigner) {\n const token = this.tokenSigner.sign({ taskId, expiresAt, schemaHash: decisionSchemaHash });\n resumeUrl = token; // callers (deliver) receive the raw token; inbox layers wrap into a URL\n resumeTokenHash = this.tokenSigner.hashToken(token);\n }\n\n const handle: HumanTaskHandle = {\n taskId,\n runId: args.runId,\n nodeId: args.nodeId,\n expiresAt,\n resumeUrl,\n ...(metadata !== undefined ? { metadata } : {}),\n };\n\n // Emit hitl.task.created before calling deliver.\n const channel = (metadata as Record<string, unknown> | undefined)?.[\"channel\"];\n await args.telemetry?.addSpanEvent?.({\n name: \"hitl.task.created\",\n attributes: {\n [CodemationTelemetryAttributeNames.hitlTaskId]: taskId,\n [CodemationTelemetryAttributeNames.hitlChannel]: typeof channel === \"string\" ? channel : \"unknown\",\n [CodemationTelemetryAttributeNames.runId]: args.runId,\n [CodemationTelemetryAttributeNames.nodeId]: args.nodeId,\n expiresAt: expiresAt.toISOString(),\n },\n });\n\n // D5: deliver throws → emit hitl.task.delivery_failed, then propagate upward;\n // caller routes to resumeFromNodeError → \"failed\"\n let deliveryRef: Awaited<ReturnType<typeof deliver>>;\n try {\n deliveryRef = await deliver(handle);\n } catch (deliverError) {\n await args.telemetry?.addSpanEvent?.({\n name: \"hitl.task.delivery_failed\",\n attributes: {\n [CodemationTelemetryAttributeNames.hitlTaskId]: taskId,\n [CodemationTelemetryAttributeNames.hitlChannel]: typeof channel === \"string\" ? channel : \"unknown\",\n error: deliverError instanceof Error ? deliverError.message : String(deliverError),\n },\n });\n throw deliverError;\n }\n\n // Persist HumanTask row\n if (this.humanTaskStore) {\n const record: HumanTaskRecord = {\n id: taskId,\n runId: args.runId,\n workflowId: args.state.workflowId,\n // T7: stamp workspaceId in managed mode so HitlCallbackHandler can assert workspace identity.\n // Non-managed mode leaves this undefined (null in DB) — the check in HitlCallbackHandler\n // is guarded by `task.workspaceId !== undefined` and is a no-op when null.\n workspaceId: this.workspaceId ?? undefined,\n nodeId: args.nodeId,\n activationId: args.activationId,\n itemIndex: args.itemIndex,\n status: \"pending\",\n channel: \"local\",\n subject,\n metadata: (metadata as Record<string, import(\"../contracts/workflowTypes\").JsonValue>) ?? {},\n decisionSchemaJson,\n decisionSchemaHash,\n onTimeout,\n deliveryRef,\n resumeTokenHash: resumeTokenHash || \"no-token\",\n expiresAt,\n createdAt: new Date(),\n };\n await this.humanTaskStore.create(record);\n }\n\n // Enqueue timeout job\n if (this.timeoutScheduler) {\n await this.timeoutScheduler.enqueueTimeoutJob({ taskId, expiresAt });\n }\n\n const entry: PersistedSuspensionEntry = {\n taskId,\n nodeId: args.nodeId,\n activationId: args.activationId,\n itemIndex: args.itemIndex,\n decisionSchemaHash,\n deliveryRef,\n timeoutAt: expiresAt.toISOString(),\n onTimeout,\n };\n\n const existingSuspensions = args.state.suspension ?? [];\n const updatedState: PersistedRunState = {\n ...args.state,\n status: \"suspended\",\n suspension: [...existingSuspensions, entry],\n };\n\n await this.workflowExecutionRepository.save(updatedState);\n\n throw new RunSuspendedError(args.runId, taskId);\n }\n\n /**\n * Parse a duration string into milliseconds.\n * Accepts ISO 8601 durations (\"PT24H\", \"PT30M\") and shorthand (\"24h\", \"30m\", \"1d\").\n * Throws for unrecognised formats.\n */\n private parseDurationMs(duration: string): number {\n // Shorthand: \"24h\", \"30m\", \"7d\", \"3600s\"\n const shorthand = /^(\\d+(?:\\.\\d+)?)(s|m|h|d)$/i.exec(duration);\n if (shorthand) {\n const value = parseFloat(shorthand[1]!);\n const unit = shorthand[2]!.toLowerCase();\n const multipliers: Record<string, number> = {\n s: 1_000,\n m: 60_000,\n h: 3_600_000,\n d: 86_400_000,\n };\n return value * multipliers[unit]!;\n }\n // ISO 8601 duration subset: PTnHnMnS (days handled via P1D)\n const iso = /^P(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$/.exec(duration);\n if (iso) {\n const days = parseFloat(iso[1] ?? \"0\");\n const hours = parseFloat(iso[2] ?? \"0\");\n const minutes = parseFloat(iso[3] ?? \"0\");\n const seconds = parseFloat(iso[4] ?? \"0\");\n return (days * 86_400 + hours * 3_600 + minutes * 60 + seconds) * 1_000;\n }\n throw new Error(`NodeSuspensionHandler: unrecognised duration format: \"${duration}\"`);\n }\n\n private hashSchema(schema: unknown): string {\n const json = this.schemaToJson(schema);\n return createHash(\"sha256\").update(json).digest(\"hex\");\n }\n\n private schemaToJson(schema: unknown): string {\n if (schema instanceof z.ZodType) {\n return JSON.stringify(z.toJSONSchema(schema));\n }\n if (typeof (schema as { toJSON?: unknown }).toJSON === \"function\") {\n return JSON.stringify((schema as { toJSON: () => unknown }).toJSON());\n }\n return JSON.stringify(schema);\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 { NoOpAgentMcpIntegration } from \"../../contracts/NoOpAgentMcpIntegration\";\nimport { EngineExecutionLimitsPolicyFactory } from \"../../policies/executionLimits/EngineExecutionLimitsPolicyFactory\";\nimport {\n ChildExecutionScopeFactory,\n DefaultAsyncSleeper,\n InProcessRetryRunnerFactory,\n ItemExprResolver,\n NodeExecutor,\n NodeExecutorFactory,\n NodeInstanceFactoryFactory,\n NodeOutputNormalizer,\n RunnableOutputBehaviorResolver,\n} from \"../../execution\";\nimport { NodeSuspensionHandler } from \"../../execution/NodeSuspensionHandler\";\nimport { HumanTaskStoreToken } from \"../../contracts/humanTaskStoreTypes\";\nimport {\n HitlResumeTokenSignerToken,\n HitlTimeoutJobSchedulerToken,\n HitlWorkspaceIdToken,\n} from \"../../contracts/hitlSeamTypes\";\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 this.registerAgentMcpIntegration(container);\n }\n\n private registerAgentMcpIntegration(container: DependencyContainer): void {\n if (container.isRegistered(CoreTokens.AgentMcpIntegration, true)) {\n return;\n }\n container.registerInstance(CoreTokens.AgentMcpIntegration, new NoOpAgentMcpIntegration());\n }\n\n private registerSupportFactories(container: DependencyContainer): void {\n if (!container.isRegistered(ItemExprResolver, true)) {\n container.registerSingleton(ItemExprResolver, ItemExprResolver);\n }\n if (!container.isRegistered(NodeOutputNormalizer, true)) {\n container.registerSingleton(NodeOutputNormalizer, NodeOutputNormalizer);\n }\n if (!container.isRegistered(RunnableOutputBehaviorResolver, true)) {\n container.registerSingleton(RunnableOutputBehaviorResolver, RunnableOutputBehaviorResolver);\n }\n if (!container.isRegistered(ChildExecutionScopeFactory, true)) {\n container.register(ChildExecutionScopeFactory, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return new ChildExecutionScopeFactory(dependencyContainer.resolve(CoreTokens.ActivationIdFactory));\n }),\n });\n }\n container.registerSingleton(EngineExecutionLimitsPolicyFactory, EngineExecutionLimitsPolicyFactory);\n container.registerSingleton(NodeInstanceFactoryFactory, NodeInstanceFactoryFactory);\n container.registerSingleton(DefaultAsyncSleeper, DefaultAsyncSleeper);\n container.registerSingleton(InProcessRetryRunnerFactory, InProcessRetryRunnerFactory);\n container.registerSingleton(NodeExecutorFactory, NodeExecutorFactory);\n container.registerSingleton(InlineDrivingSchedulerFactory, InlineDrivingSchedulerFactory);\n container.registerSingleton(RunIntentServiceFactory, RunIntentServiceFactory);\n container.registerSingleton(EngineWorkflowRunnerServiceFactory, EngineWorkflowRunnerServiceFactory);\n container.registerSingleton(\n WorkflowRepositoryWebhookTriggerMatcherFactory,\n 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 const workflowExecutionRepository = dependencyContainer.resolve(CoreTokens.WorkflowExecutionRepository);\n const humanTaskStore = dependencyContainer.isRegistered(HumanTaskStoreToken, true)\n ? dependencyContainer.resolve(HumanTaskStoreToken)\n : undefined;\n const tokenSigner = dependencyContainer.isRegistered(HitlResumeTokenSignerToken, true)\n ? dependencyContainer.resolve(HitlResumeTokenSignerToken)\n : undefined;\n const timeoutScheduler = dependencyContainer.isRegistered(HitlTimeoutJobSchedulerToken, true)\n ? dependencyContainer.resolve(HitlTimeoutJobSchedulerToken)\n : undefined;\n const workspaceId = dependencyContainer.isRegistered(HitlWorkspaceIdToken, true)\n ? dependencyContainer.resolve(HitlWorkspaceIdToken)\n : undefined;\n const suspensionHandler = new NodeSuspensionHandler(\n workflowExecutionRepository,\n humanTaskStore ?? undefined,\n tokenSigner ?? undefined,\n timeoutScheduler ?? undefined,\n workspaceId ?? undefined,\n );\n return dependencyContainer\n .resolve(NodeExecutorFactory)\n .create(\n dependencyContainer.resolve(CoreTokens.WorkflowNodeInstanceFactory),\n retryRunner,\n dependencyContainer.resolve(RunnableOutputBehaviorResolver),\n suspensionHandler,\n (runId) => workflowExecutionRepository.load(runId),\n );\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.registerSingleton(EngineFactory, 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 workflowPolicyRuntimeDefaults: options?.workflowPolicyRuntimeDefaults,\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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"}
|
|
@@ -797,8 +797,19 @@ declare class InlineDrivingScheduler implements NodeActivationScheduler {
|
|
|
797
797
|
private readonly drainingRuns;
|
|
798
798
|
private readonly queuesByRunId;
|
|
799
799
|
private readonly scheduledRuns;
|
|
800
|
+
private stopped;
|
|
801
|
+
private readonly activeDrainPromises;
|
|
800
802
|
constructor(nodeExecutor: NodeExecutor);
|
|
801
803
|
setContinuation(continuation: NodeActivationContinuation): void;
|
|
804
|
+
/**
|
|
805
|
+
* Prevents new drain cycles from being scheduled and waits for all currently-running
|
|
806
|
+
* drains to complete. Call before closing the DB connection or rolling back test transactions
|
|
807
|
+
* to ensure no in-flight writes hit a closed/rolled-back connection.
|
|
808
|
+
*
|
|
809
|
+
* Bounded: only the drains already in-flight at call time are awaited. Runs that keep
|
|
810
|
+
* re-scheduling will not schedule new work once stopped is set.
|
|
811
|
+
*/
|
|
812
|
+
stop(): Promise<void>;
|
|
802
813
|
prepareDispatch(request: NodeActivationRequest): Promise<PreparedNodeActivationDispatch>;
|
|
803
814
|
private drainRun;
|
|
804
815
|
private scheduleDrain;
|
|
@@ -1279,4 +1290,4 @@ declare class TestSuiteOrchestrator {
|
|
|
1279
1290
|
}
|
|
1280
1291
|
//#endregion
|
|
1281
1292
|
export { ChildExecutionScopeFactory as $, HumanTaskStore as $t, WorkflowRepositoryWebhookTriggerMatcher as A, DefinedCollection as At, InlineDrivingScheduler as B, InboxChannelResolverToken as Bt, WorkflowEdgePortValidator as C, definePollingTrigger as Ct, PollingRunCycleResult as D, CollectionFieldDefinition as Dt, PollingRunCycleArgs as E, CollectionDefinition as Et, InMemoryRunDataFactory as F, defineCredential as Ft, NodeOutputNormalizer as G, LocalInboxChannelToken as Gt, StaticCostCatalog as H, InboxDelivery as Ht, InMemoryBinaryStorage as I, DefinedNodeRegistry as It, InProcessRetryRunner as J, HitlTimeoutJobSchedulerSeam as Jt, RunnableOutputBehaviorResolver as K, HitlResumeTokenSignerSeam as Kt, LocalOnlyScheduler as L, ControlPlaneInboxChannelToken as Lt, EngineFactory as M, defineCollection as Mt, RunSummaryMapper as N, callableTool as Nt, PollingTriggerRuntime as O, CollectionIndexDefinition as Ot, InMemoryWorkflowExecutionRepository as P, DefineCredentialOptions as Pt, AsyncSleeper as Q, HumanTaskStatus as Qt, HintOnlyOffloadPolicy as R, InboxChannel as Rt, OAuthMaterial as S, DefinedPollingTriggerConfig as St, WorkflowEdgePortValidationResult as T, CollectionColumnBuilder as Tt, NodeInstanceFactory as U, InboxOnDecisionArgs as Ut, ConfigDrivenOffloadPolicy as V, InboxDeliverArgs as Vt, NodeExecutor as W, InboxOnTimeoutArgs as Wt, DefaultExecutionContextFactory as X, HitlWorkspaceIdToken as Xt, CatalogBackedCostTrackingTelemetryFactory as Y, HitlTimeoutJobSchedulerToken as Yt, DefaultAsyncSleeper as Z, HumanTaskRecord as Zt, MaterialBundle as _, DefinePollingTriggerOptions as _t, TestSuiteRunResult as a, AbortControllerFactory as an, tool as at, OAuthFlowStartArgs as b, DefinePollingTriggerTestItemsContext as bt, WorkspaceFileMetadata as c, PersistedRuntimeTypeMetadataStore as ct, ManagedMaterialFetchError as d, PersistedRuntimeTypeKind as dt, HumanTaskStoreToken as en, DefaultExecutionBinaryService as et, ManagedCredentialMaterialWriteError as f, PersistedRuntimeTypeMetadata as ft, IllegalMaterialSourceError as g, DefinePollingTriggerExecuteContext as gt, CredentialMaterialRef as h, ConnectionInvocationEventPublisher as ht, TestSuiteOrchestratorEngine as i, CredentialResolverFactory as in, node as it, EngineCompositionDeps as j, c as jt, PollingTriggerStartArgs as k, DefineCollectionOptions as kt, WorkspaceFileNotFoundError as l, InjectableRuntimeDecoratorComposer as lt, CredentialMaterialProvider as m, InMemoryRunEventBus as mt, TestSuiteCaseOutcome as n, SystemClock as nn, chatModel as nt, TestSuiteRunIdFactory as o, StackTraceCallSitePathResolver as ot, CallerContext as p, EventPublishingWorkflowExecutionRepository as pt, ItemExprResolver as q, HitlResumeTokenSignerToken as qt, TestSuiteOrchestrator as r, NodeEventPublisher as rn, getPersistedRuntimeTypeMetadata as rt, IWorkspaceFileStorage as s, PersistedRuntimeTypeNameResolver as st, RunTestSuiteArgs as t, Clock as tn, UnavailableBinaryStorage as tt, WorkspaceFileStorageToken as u, PersistedRuntimeTypeDecoratorOptions as ut, OAuthFlowCallbackArgs as v, DefinePollingTriggerPollContext as vt, WorkflowEdgePortError as w, DefinedCollectionRegistry as wt, OAuthFlowStartResult as x, DefinedPollingTrigger as xt, OAuthFlowExecutor as y, DefinePollingTriggerPollResult as yt, DefaultDrivingScheduler as z, InboxChannelResolverSeam as zt };
|
|
1282
|
-
//# sourceMappingURL=index-
|
|
1293
|
+
//# sourceMappingURL=index-C2P-fOAx.d.ts.map
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_di = require('./di-C-2ep8NZ.cjs');
|
|
2
2
|
const require_ItemsInputNormalizer = require('./ItemsInputNormalizer-57EdA1ad.cjs');
|
|
3
3
|
const require_contracts = require('./contracts-CK0x6w_G.cjs');
|
|
4
|
-
const require_runtime = require('./runtime-
|
|
4
|
+
const require_runtime = require('./runtime-rrH8-Ouq.cjs');
|
|
5
5
|
const require_InMemoryRunEventBusRegistry = require('./InMemoryRunEventBusRegistry-Sa86VxuV.cjs');
|
|
6
6
|
let zod = require("zod");
|
|
7
7
|
zod = require_di.__toESM(zod);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { $ as ExecutionPayloadPolicyFields, $a as CredentialBindingKey, $i as TriggerRuntimeDiagnostics, $n as BinaryPreviewKind, $r as nodeRef, $t as PersistedRunState, A as DefinedNodeCredentialAccessors, Aa as TelemetrySpanEventRecord, Ai as NodeActivationContinuation, An as delay, Ar as RunId, At as DEFAULT_ASSERTION_PASS_THRESHOLD, B as RetryPolicy, Ba as CostTrackingComponent, Bi as NodeExecutionStatePublisher, Br as WorkflowErrorContext, Bt as CurrentStateExecutionRequest, C as defineHumanApprovalNode, Ca as TelemetryArtifactReference, Ci as HumanTaskActor, Cn as DependencyContainer, Co as PollingTriggerDedupWindow, Cr as NodeRef, Ct as ItemExprResolvedContext, D as DefineNodeOptions, Da as TelemetryMetricRecord, Di as ItemNode, Dn as RegistrationOptions, Do as OutputPortKey, Dr as PersistedRunPolicySnapshot, Dt as resolveItemExprsInUnknown, E as DefineNodeExecuteArgs, Ea as TelemetryChildSpanStart, Ei as HumanTaskSubject, En as Lifecycle, Eo as NodeId, Er as ParentExecutionRef, Et as resolveItemExprsForExecution, F as defineNode, Fa as NoOpExecutionTelemetryFactory, Fi as NodeBinaryAttachmentService, Fn as instancePerContainerCachingFactory, Fr as TriggerNodeConfig, Ft as AgentMcpToolMap, G as isPortsEmission, Ga as CostTrackingTelemetryMetricNames, Gi as PreparedNodeActivationDispatch, Gn as RunEventSubscription, Gr as WorkflowNodeConnection, Gt as NodeExecutionStatus, H as getOriginIndexFromItem, Ha as CostTrackingTelemetry, Hi as NodeResolver, Hn as EngineExecutionLimitsPolicyConfig, Hr as WorkflowErrorHandlerSpec, Ht as ExecutionFrontierPlan, I as RunFinishedAtFactory, Ia as NoOpExecutionTelemetry, Ii as NodeExecutionContext, In as predicateAwareClassFactory, Ir as TriggerNodeOutputJson, It as NeedsReconsentEvent, J as McpServerTransport, Ja as CollectionsContext, Ji as RunnableNodeExecuteArgs, Jn as TestSuiteRunId, Jr as WorkflowStoragePolicyDecisionArgs, Jt as PendingResumeEntry, K as isUnbrandedPortsEmissionShape, Ka as CostTrackingUsageRecord, Ki as ResumeContext, Kn as TestCaseRunStatus, Kr as WorkflowPolicyRuntimeDefaults, Kt as NodeInputsByPort, L as NoOpCostTrackingTelemetryFactory, La as NoOpNodeExecutionTelemetry, Li as NodeExecutionRequest, Ln as registry, Lr as TriggerNodeSetupState, Lt as ConnectionInvocationAppendArgs, M as DefinedNodeCredentialBindings, Ma as CodemationTelemetryMetricNames, Mi as NodeActivationRequest, Mn as injectAll, Mr as RunnableNodeConfig, Mt as NoOpAgentMcpIntegration, N as DefinedNodeRunContext, Na as GenAiTelemetryAttributeNames, Ni as NodeActivationRequestBase, Nn as injectable, Nr as RunnableNodeInputJson, Nt as AgentBindError, O as DefinedNode, Oa as TelemetryScope, Oi as LiveWorkflowRepository, On as TypeToken, Oo as PersistedTokenId, Or as RunDataFactory, Ot as AssertionResult, P as defineBatchNode, Pa as CodemationTelemetryAttributeNames, Pi as NodeActivationScheduler, Pn as instanceCachingFactory, Pr as RunnableNodeOutputJson, Pt as AgentMcpIntegration, Q as ExecutionInstanceId, Qa as CredentialBinding, Qi as TriggerNode, Qn as BinaryAttachment, Qr as branchRef, Qt as PersistedRunSchedulingState, R as NoOpCostTrackingTelemetry, Ra as NoOpTelemetrySpanScope, Ri as NodeExecutionRequestHandler, Rn as singleton, Rr as UpstreamRefPlaceholder, Rt as ConnectionInvocationId, S as HumanApprovalOutputJson, Sa as TelemetryArtifactAttachment, Si as ExecutionContextFactory, Sn as Container, So as PollingTriggerLogger, Sr as NodeOutputs, St as ItemExprContext, T as DefineBatchNodeOptions, Ta as TelemetryAttributes, Ti as HumanTaskId, Tn as InjectionToken, To as NodeConnectionName, Tr as PairedItemRef, Tt as itemExpr, U as PortsEmission, Ua as CostTrackingTelemetryAttributeNames, Ui as PersistedTriggerSetupState, Un as RunEvent, Ur as WorkflowGraph, Ut as NodeExecutionError, V as NoRetryPolicy, Va as CostTrackingPriceQuote, Vi as NodeExecutor, Vn as EngineExecutionLimitsPolicy, Vr as WorkflowErrorHandler, Vt as EngineRunCounters, W as emitPorts, Wa as CostTrackingTelemetryFactory, Wi as PollingTriggerHandle, Wn as RunEventBus, Wr as WorkflowGraphFactory, Wt as NodeExecutionSnapshot, X as ConnectionInvocationKind, Xa as CredentialAdvancedSectionPresentation, Xi as TestableTriggerNode, Xn as TestTriggerSetupContext, Xr as WorkflowStoragePolicyResolver, Xt as PersistedMutableRunState, Y as BatchId, Ya as AnyCredentialType, Yi as SuspensionRequest, Yn as TestTriggerNodeConfig, Yr as WorkflowStoragePolicyMode, Yt as PersistedMutableNodeState, Z as ExecutionInstanceDto, Za as CredentialAuthDefinition, Zi as TriggerCleanupHandle, Zn as ActivationIdFactory, Zr as WorkflowStoragePolicySpec, Zt as PersistedRunControlState, _ as BranchStepsArg, _a as AllWorkflowsActiveWorkflowActivationPolicy, _i as EngineDeps, _n as RunTestContext, _o as CredentialTypeId, _r as NodeIdRef, _t as Param, a as ConnectionNodeIdFactory, aa as WorkflowRepository, ai as FixedRetryPolicySpec, an as RunCompletionNotifier, ao as CredentialInstanceRecord, ar as JsonArray, at as PersistedRunWorkItemRecord, b as DefinedHumanApprovalNode, ba as ExecutionTelemetryFactory, bi as ExecutionBinaryService, bn as WorkflowExecutionPruneRepository, bo as OAuth2ProviderFromPublicConfig, br as NodeKind, bt as ItemExprArgs, c as WorkflowDefinitionError, ca as WorkflowSnapshotFactory, ci as BINARY_DEFAULT_MAX_BYTES, cn as RunExecutionOptions, co as CredentialOAuth2AuthDefinition, cr as JsonPrimitive, ct as RunSlotProjectionState, d as WhenBuilder, da as TriggerInstanceId, di as BinaryStorage, dn as RunQueueEntry, do as CredentialSessionFactory, dr as NodeActivationId, dt as WorkItemStatus, ea as TriggerSetupContext, ei as runnableNodeInputType, en as PersistedSuspensionEntry, eo as CredentialFieldSchema, er as Edge, et as PayloadStorageKind, f as AnyRunnableNodeConfig, fa as WebhookControlSignal, fi as BinaryStorageReadResult, fn as RunResult, fo as CredentialSessionFactoryArgs, fr as NodeConfigBase, ft as WorkflowDetailSelectionState, g as BranchOutputGuard, ga as WebhookTriggerRoutingDiagnostics, gi as Duration, gn as RunSummary, go as CredentialTypeDefinition, gr as NodeErrorHandlerSpec, gt as Expr, h as BranchMoreArgs, ha as WebhookTriggerResolution, hi as BinaryStorageWriteResult, hn as RunStopCondition, ho as CredentialType, hr as NodeErrorHandlerArgs, ht as CostCatalogEntry, i as NodeIterationIdFactory, ia as WorkflowNodeInstanceFactory, ii as ExponentialRetryPolicySpec, in as PinnedNodeOutputsByPort, io as CredentialInstanceId, ir as Items, it as PersistedRunWorkItemKind, j as DefinedNodeCredentialBinding, ja as TelemetrySpanScope, ji as NodeActivationReceipt, jn as inject, jr as RunIdFactory, jt as deriveAssertionPassed, k as DefinedNodeConfigInput, ka as TelemetrySpanEnd, ki as MultiInputNode, kn as container, ko as WorkflowId, kr as RunDataSnapshot, kt as AssertionResultProvenance, l as WorkflowBuilder, la as WorkflowSnapshotResolver, li as BinaryAttachmentCreateRequest, ln as RunHaltReason, lo as CredentialOAuth2ScopesFromPublicConfig, lr as JsonValue, lt as SlotExecutionStateDto, m as BooleanWhenOverloads, ma as WebhookTriggerMatcher, mi as BinaryStorageWriteRequest, mn as RunStatus, mo as CredentialSetupStatus, mr as NodeErrorHandler, mt as CostCatalog, n as WorkflowExecutableNodeClassifierFactory, na as TriggerSetupStateRepository, ni as triggerNodeOutputType, nn as PersistedWorkflowSnapshotNode, no as CredentialHealthStatus, nr as Item, nt as PersistedExecutionInstanceRecord, o as ConnectionInvocationIdFactory, oa as WorkflowRunnerResolver, oi as NoneRetryPolicySpec, on as RunCurrentState, oo as CredentialJsonRecord, or as JsonNonArray, ot as RunIterationDto, p as AnyTriggerNodeConfig, pa as WebhookInvocationMatch, pi as BinaryStorageStatResult, pn as RunStateResetRequest, po as CredentialSessionService, pr as NodeDefinition, pt as WorkflowRunDetailDto, q as McpServerDeclaration, qa as CollectionStore, qi as RunnableNode, qn as TestSuiteRunStatus, qr as WorkflowPrunePolicySpec, qt as PendingNodeExecution, r as WorkflowExecutableNodeClassifier, ra as TriggerTestItemsContext, ri as triggerNodeSetupStateType, rn as PersistedWorkflowTokenRegistryLike, ro as CredentialHealthTester, rr as ItemBinary, rt as PersistedRunSlotProjectionRecord, s as NodeIdSlugifier, sa as WorkflowRunnerService, si as RetryPolicySpec, sn as RunEventPublisherDeps, so as CredentialMaterialSourceKind, sr as JsonObject, st as RunRevision, t as DefaultWorkflowGraphFactory, ta as TriggerSetupStateFor, ti as runnableNodeOutputType, tn as PersistedWorkflowSnapshot, to as CredentialHealth, tr as ExecutionMode, tt as PersistedExecutionInstanceKind, u as ChainCursor, ua as HttpMethod, ui as BinaryBody, un as RunPruneCandidate, uo as CredentialRequirement, ur as MutableRunData, ut as WorkItemId, v as StepSequenceOutput, va as WorkflowActivationPolicy, vi as EngineHost, vn as WebhookRunResult, vo as CredentialTypeRegistry, vr as NodeInspectorSummaryRow, vt as ParamDeep, w as isHumanApprovalNode, wa as TelemetryAttributePrimitive, wi as HumanTaskHandle, wn as Disposable, wo as InputPortKey, wr as NodeSchedulerDecision, wt as isItemExpr, x as HumanApprovalDecisionResult, xa as NodeExecutionTelemetry, xi as ExecutionContext, xn as WorkflowExecutionRepository, xo as NoOpPollingTriggerLogger, xr as NodeOffloadPolicy, xt as ItemExprCallback, y as ValidStepSequence, ya as ExecutionTelemetry, yi as ExecutableTriggerNode, yn as WorkflowExecutionListingRepository, yo as CredentialUnboundError, yr as NodeIterationId, yt as ItemExpr, z as ExpRetryPolicy, za as NoOpTelemetryArtifactReference, zi as NodeExecutionScheduler, zn as CoreTokens, zr as WorkflowDefinition, zt as ConnectionInvocationRecord } from "./index-rllWL4r-.js";
|
|
2
2
|
import { n as InMemoryLiveWorkflowRepository, t as RunIntentService } from "./RunIntentService-DYpqfu6D.js";
|
|
3
|
-
import { $ as ChildExecutionScopeFactory, $t as HumanTaskStore, At as DefinedCollection, Bt as InboxChannelResolverToken, C as WorkflowEdgePortValidator, Ct as definePollingTrigger, D as PollingRunCycleResult, Dt as CollectionFieldDefinition, E as PollingRunCycleArgs, Et as CollectionDefinition, F as InMemoryRunDataFactory, Ft as defineCredential, G as NodeOutputNormalizer, Gt as LocalInboxChannelToken, Ht as InboxDelivery, I as InMemoryBinaryStorage, It as DefinedNodeRegistry, J as InProcessRetryRunner, Jt as HitlTimeoutJobSchedulerSeam, K as RunnableOutputBehaviorResolver, Kt as HitlResumeTokenSignerSeam, Lt as ControlPlaneInboxChannelToken, Mt as defineCollection, Nt as callableTool, O as PollingTriggerRuntime, Ot as CollectionIndexDefinition, Pt as DefineCredentialOptions, Qt as HumanTaskStatus, Rt as InboxChannel, S as OAuthMaterial, St as DefinedPollingTriggerConfig, T as WorkflowEdgePortValidationResult, Tt as CollectionColumnBuilder, Ut as InboxOnDecisionArgs, Vt as InboxDeliverArgs, Wt as InboxOnTimeoutArgs, X as DefaultExecutionContextFactory, Xt as HitlWorkspaceIdToken, Yt as HitlTimeoutJobSchedulerToken, Z as DefaultAsyncSleeper, Zt as HumanTaskRecord, _ as MaterialBundle, _t as DefinePollingTriggerOptions, at as tool, b as OAuthFlowStartArgs, bt as DefinePollingTriggerTestItemsContext, c as WorkspaceFileMetadata, ct as PersistedRuntimeTypeMetadataStore, d as ManagedMaterialFetchError, dt as PersistedRuntimeTypeKind, en as HumanTaskStoreToken, et as DefaultExecutionBinaryService, f as ManagedCredentialMaterialWriteError, ft as PersistedRuntimeTypeMetadata, g as IllegalMaterialSourceError, gt as DefinePollingTriggerExecuteContext, h as CredentialMaterialRef, ht as ConnectionInvocationEventPublisher, in as CredentialResolverFactory, it as node, jt as c, k as PollingTriggerStartArgs, kt as DefineCollectionOptions, l as WorkspaceFileNotFoundError, lt as InjectableRuntimeDecoratorComposer, m as CredentialMaterialProvider, mt as InMemoryRunEventBus, nn as SystemClock, nt as chatModel, ot as StackTraceCallSitePathResolver, p as CallerContext, pt as EventPublishingWorkflowExecutionRepository, q as ItemExprResolver, qt as HitlResumeTokenSignerToken, rn as NodeEventPublisher, rt as getPersistedRuntimeTypeMetadata, s as IWorkspaceFileStorage, st as PersistedRuntimeTypeNameResolver, tn as Clock, tt as UnavailableBinaryStorage, u as WorkspaceFileStorageToken, ut as PersistedRuntimeTypeDecoratorOptions, v as OAuthFlowCallbackArgs, vt as DefinePollingTriggerPollContext, w as WorkflowEdgePortError, wt as DefinedCollectionRegistry, x as OAuthFlowStartResult, xt as DefinedPollingTrigger, y as OAuthFlowExecutor, yt as DefinePollingTriggerPollResult, zt as InboxChannelResolverSeam } from "./index-
|
|
3
|
+
import { $ as ChildExecutionScopeFactory, $t as HumanTaskStore, At as DefinedCollection, Bt as InboxChannelResolverToken, C as WorkflowEdgePortValidator, Ct as definePollingTrigger, D as PollingRunCycleResult, Dt as CollectionFieldDefinition, E as PollingRunCycleArgs, Et as CollectionDefinition, F as InMemoryRunDataFactory, Ft as defineCredential, G as NodeOutputNormalizer, Gt as LocalInboxChannelToken, Ht as InboxDelivery, I as InMemoryBinaryStorage, It as DefinedNodeRegistry, J as InProcessRetryRunner, Jt as HitlTimeoutJobSchedulerSeam, K as RunnableOutputBehaviorResolver, Kt as HitlResumeTokenSignerSeam, Lt as ControlPlaneInboxChannelToken, Mt as defineCollection, Nt as callableTool, O as PollingTriggerRuntime, Ot as CollectionIndexDefinition, Pt as DefineCredentialOptions, Qt as HumanTaskStatus, Rt as InboxChannel, S as OAuthMaterial, St as DefinedPollingTriggerConfig, T as WorkflowEdgePortValidationResult, Tt as CollectionColumnBuilder, Ut as InboxOnDecisionArgs, Vt as InboxDeliverArgs, Wt as InboxOnTimeoutArgs, X as DefaultExecutionContextFactory, Xt as HitlWorkspaceIdToken, Yt as HitlTimeoutJobSchedulerToken, Z as DefaultAsyncSleeper, Zt as HumanTaskRecord, _ as MaterialBundle, _t as DefinePollingTriggerOptions, at as tool, b as OAuthFlowStartArgs, bt as DefinePollingTriggerTestItemsContext, c as WorkspaceFileMetadata, ct as PersistedRuntimeTypeMetadataStore, d as ManagedMaterialFetchError, dt as PersistedRuntimeTypeKind, en as HumanTaskStoreToken, et as DefaultExecutionBinaryService, f as ManagedCredentialMaterialWriteError, ft as PersistedRuntimeTypeMetadata, g as IllegalMaterialSourceError, gt as DefinePollingTriggerExecuteContext, h as CredentialMaterialRef, ht as ConnectionInvocationEventPublisher, in as CredentialResolverFactory, it as node, jt as c, k as PollingTriggerStartArgs, kt as DefineCollectionOptions, l as WorkspaceFileNotFoundError, lt as InjectableRuntimeDecoratorComposer, m as CredentialMaterialProvider, mt as InMemoryRunEventBus, nn as SystemClock, nt as chatModel, ot as StackTraceCallSitePathResolver, p as CallerContext, pt as EventPublishingWorkflowExecutionRepository, q as ItemExprResolver, qt as HitlResumeTokenSignerToken, rn as NodeEventPublisher, rt as getPersistedRuntimeTypeMetadata, s as IWorkspaceFileStorage, st as PersistedRuntimeTypeNameResolver, tn as Clock, tt as UnavailableBinaryStorage, u as WorkspaceFileStorageToken, ut as PersistedRuntimeTypeDecoratorOptions, v as OAuthFlowCallbackArgs, vt as DefinePollingTriggerPollContext, w as WorkflowEdgePortError, wt as DefinedCollectionRegistry, x as OAuthFlowStartResult, xt as DefinedPollingTrigger, y as OAuthFlowExecutor, yt as DefinePollingTriggerPollResult, zt as InboxChannelResolverSeam } from "./index-C2P-fOAx.js";
|
|
4
4
|
import { A as ChatModelFactory, B as ZodSchemaAny, C as AgentToolDefinition, D as ChatLanguageModel, E as AgentTurnLimitBehavior, F as NodeBackedToolOutputMapperArgs, G as CallableToolFactory, H as AgentMessageConfigNormalizer, I as StructuredOutputOptions, J as CallableToolExecuteHandler, K as CallableToolConfig, L as Tool, M as NodeBackedToolInputMapper, N as NodeBackedToolInputMapperArgs, O as ChatLanguageModelCallOptions, P as NodeBackedToolOutputMapper, R as ToolConfig, S as AgentToolCallPlanner, T as AgentToolToken, U as AgentToolFactory, V as AgentConfigInspector, W as CallableToolKindToken, Y as NodeBackedToolConfig, _ as AgentMessageTemplateContent, a as AgentConnectionNodeRole, b as AgentTool, c as AgentCanvasPresentation, d as AgentMessageBuildArgs, f as AgentMessageConfig, g as AgentMessageTemplate, h as AgentMessageRole, i as AgentConnectionNodeDescriptor, j as NodeBackedToolConfigOptions, k as ChatModelConfig, l as AgentGuardrailConfig, m as AgentMessageLine, n as AgentConnectionCredentialSource, o as McpServerResolver, p as AgentMessageDto, q as CallableToolConfigOptions, r as AgentConnectionNodeCollector, s as AgentAttachmentRole, t as ItemsInputNormalizer, u as AgentGuardrailDefaults, v as AgentModelInvocationOptions, w as AgentToolExecuteArgs, x as AgentToolCall, y as AgentNodeConfig, z as ToolExecuteArgs } from "./ItemsInputNormalizer-BWtlwdVI.js";
|
|
5
5
|
export { ActivationIdFactory, AgentAttachmentRole, AgentBindError, AgentCanvasPresentation, AgentConfigInspector, AgentConnectionCredentialSource, AgentConnectionNodeCollector, AgentConnectionNodeDescriptor, AgentConnectionNodeRole, AgentGuardrailConfig, AgentGuardrailDefaults, AgentMcpIntegration, AgentMcpToolMap, AgentMessageBuildArgs, AgentMessageConfig, AgentMessageConfigNormalizer, AgentMessageDto, AgentMessageLine, AgentMessageRole, AgentMessageTemplate, AgentMessageTemplateContent, AgentModelInvocationOptions, AgentNodeConfig, AgentTool, AgentToolCall, AgentToolCallPlanner, AgentToolDefinition, AgentToolExecuteArgs, AgentToolFactory, AgentToolToken, AgentTurnLimitBehavior, AllWorkflowsActiveWorkflowActivationPolicy, AnyCredentialType, AnyRunnableNodeConfig, AnyTriggerNodeConfig, AssertionResult, AssertionResultProvenance, BINARY_DEFAULT_MAX_BYTES, BatchId, BinaryAttachment, BinaryAttachmentCreateRequest, BinaryBody, BinaryPreviewKind, BinaryStorage, BinaryStorageReadResult, BinaryStorageStatResult, BinaryStorageWriteRequest, BinaryStorageWriteResult, BooleanWhenOverloads, BranchMoreArgs, BranchOutputGuard, BranchStepsArg, CallableToolConfig, CallableToolConfigOptions, CallableToolExecuteHandler, CallableToolFactory, CallableToolKindToken, CallerContext, ChainCursor, ChatLanguageModel, ChatLanguageModelCallOptions, ChatModelConfig, ChatModelFactory, ChildExecutionScopeFactory, Clock, CodemationTelemetryAttributeNames, CodemationTelemetryMetricNames, CollectionColumnBuilder, CollectionDefinition, CollectionFieldDefinition, CollectionIndexDefinition, CollectionStore, CollectionsContext, ConnectionInvocationAppendArgs, ConnectionInvocationEventPublisher, ConnectionInvocationId, ConnectionInvocationIdFactory, ConnectionInvocationKind, ConnectionInvocationRecord, ConnectionNodeIdFactory, Container, ControlPlaneInboxChannelToken, CoreTokens, CostCatalog, CostCatalogEntry, CostTrackingComponent, CostTrackingPriceQuote, CostTrackingTelemetry, CostTrackingTelemetryAttributeNames, CostTrackingTelemetryFactory, CostTrackingTelemetryMetricNames, CostTrackingUsageRecord, CredentialAdvancedSectionPresentation, CredentialAuthDefinition, CredentialBinding, CredentialBindingKey, CredentialFieldSchema, CredentialHealth, CredentialHealthStatus, CredentialHealthTester, CredentialInstanceId, CredentialInstanceRecord, CredentialJsonRecord, CredentialMaterialProvider, CredentialMaterialRef, CredentialMaterialSourceKind, CredentialOAuth2AuthDefinition, CredentialOAuth2ScopesFromPublicConfig, CredentialRequirement, CredentialResolverFactory, CredentialSessionFactory, CredentialSessionFactoryArgs, CredentialSessionService, CredentialSetupStatus, CredentialType, CredentialTypeDefinition, CredentialTypeId, CredentialTypeRegistry, CredentialUnboundError, CurrentStateExecutionRequest, DEFAULT_ASSERTION_PASS_THRESHOLD, DefaultAsyncSleeper, DefaultExecutionBinaryService, DefaultExecutionContextFactory, DefaultWorkflowGraphFactory, DefineBatchNodeOptions, DefineCollectionOptions, DefineCredentialOptions, DefineNodeExecuteArgs, DefineNodeOptions, DefinePollingTriggerExecuteContext, DefinePollingTriggerOptions, DefinePollingTriggerPollContext, DefinePollingTriggerPollResult, DefinePollingTriggerTestItemsContext, DefinedCollection, DefinedCollectionRegistry, DefinedHumanApprovalNode, DefinedNode, DefinedNodeConfigInput, DefinedNodeCredentialAccessors, DefinedNodeCredentialBinding, DefinedNodeCredentialBindings, DefinedNodeRegistry, DefinedNodeRunContext, DefinedPollingTrigger, DefinedPollingTriggerConfig, DependencyContainer, Disposable, Duration, Edge, EngineDeps, EngineExecutionLimitsPolicy, EngineExecutionLimitsPolicyConfig, EngineHost, EngineRunCounters, EventPublishingWorkflowExecutionRepository, ExecutableTriggerNode, ExecutionBinaryService, ExecutionContext, ExecutionContextFactory, ExecutionFrontierPlan, ExecutionInstanceDto, ExecutionInstanceId, ExecutionMode, ExecutionPayloadPolicyFields, ExecutionTelemetry, ExecutionTelemetryFactory, ExpRetryPolicy, ExponentialRetryPolicySpec, Expr, FixedRetryPolicySpec, GenAiTelemetryAttributeNames, HitlResumeTokenSignerSeam, HitlResumeTokenSignerToken, HitlTimeoutJobSchedulerSeam, HitlTimeoutJobSchedulerToken, HitlWorkspaceIdToken, HttpMethod, HumanApprovalDecisionResult, HumanApprovalOutputJson, HumanTaskActor, HumanTaskHandle, HumanTaskId, HumanTaskRecord, HumanTaskStatus, HumanTaskStore, HumanTaskStoreToken, HumanTaskSubject, IWorkspaceFileStorage, IllegalMaterialSourceError, InMemoryBinaryStorage, InMemoryLiveWorkflowRepository, InMemoryRunDataFactory, InMemoryRunEventBus, InProcessRetryRunner, InboxChannel, InboxChannelResolverSeam, InboxChannelResolverToken, InboxDeliverArgs, InboxDelivery, InboxOnDecisionArgs, InboxOnTimeoutArgs, InjectableRuntimeDecoratorComposer, InjectionToken, InputPortKey, Item, ItemBinary, ItemExpr, ItemExprArgs, ItemExprCallback, ItemExprContext, ItemExprResolvedContext, ItemExprResolver, ItemNode, Items, ItemsInputNormalizer, JsonArray, JsonNonArray, JsonObject, JsonPrimitive, JsonValue, Lifecycle, LiveWorkflowRepository, LocalInboxChannelToken, ManagedCredentialMaterialWriteError, ManagedMaterialFetchError, MaterialBundle, McpServerDeclaration, McpServerResolver, McpServerTransport, MultiInputNode, MutableRunData, NeedsReconsentEvent, NoOpAgentMcpIntegration, NoOpCostTrackingTelemetry, NoOpCostTrackingTelemetryFactory, NoOpExecutionTelemetry, NoOpExecutionTelemetryFactory, NoOpNodeExecutionTelemetry, NoOpPollingTriggerLogger, NoOpTelemetryArtifactReference, NoOpTelemetrySpanScope, NoRetryPolicy, NodeActivationContinuation, NodeActivationId, NodeActivationReceipt, NodeActivationRequest, NodeActivationRequestBase, NodeActivationScheduler, NodeBackedToolConfig, NodeBackedToolConfigOptions, NodeBackedToolInputMapper, NodeBackedToolInputMapperArgs, NodeBackedToolOutputMapper, NodeBackedToolOutputMapperArgs, NodeBinaryAttachmentService, NodeConfigBase, NodeConnectionName, NodeDefinition, NodeErrorHandler, NodeErrorHandlerArgs, NodeErrorHandlerSpec, NodeEventPublisher, NodeExecutionContext, NodeExecutionError, NodeExecutionRequest, NodeExecutionRequestHandler, NodeExecutionScheduler, NodeExecutionSnapshot, NodeExecutionStatePublisher, NodeExecutionStatus, NodeExecutionTelemetry, NodeExecutor, NodeId, NodeIdRef, NodeIdSlugifier, NodeInputsByPort, NodeInspectorSummaryRow, NodeIterationId, NodeIterationIdFactory, NodeKind, NodeOffloadPolicy, NodeOutputNormalizer, NodeOutputs, NodeRef, NodeResolver, NodeSchedulerDecision, NoneRetryPolicySpec, OAuth2ProviderFromPublicConfig, OAuthFlowCallbackArgs, OAuthFlowExecutor, OAuthFlowStartArgs, OAuthFlowStartResult, OAuthMaterial, OutputPortKey, PairedItemRef, Param, ParamDeep, ParentExecutionRef, PayloadStorageKind, PendingNodeExecution, PendingResumeEntry, PersistedExecutionInstanceKind, PersistedExecutionInstanceRecord, PersistedMutableNodeState, PersistedMutableRunState, PersistedRunControlState, PersistedRunPolicySnapshot, PersistedRunSchedulingState, PersistedRunSlotProjectionRecord, PersistedRunState, PersistedRunWorkItemKind, PersistedRunWorkItemRecord, PersistedRuntimeTypeDecoratorOptions, PersistedRuntimeTypeKind, PersistedRuntimeTypeMetadata, PersistedRuntimeTypeMetadataStore, PersistedRuntimeTypeNameResolver, PersistedSuspensionEntry, PersistedTokenId, PersistedTriggerSetupState, PersistedWorkflowSnapshot, PersistedWorkflowSnapshotNode, PersistedWorkflowTokenRegistryLike, PinnedNodeOutputsByPort, PollingRunCycleArgs, PollingRunCycleResult, PollingTriggerDedupWindow, PollingTriggerHandle, PollingTriggerLogger, PollingTriggerRuntime, PollingTriggerStartArgs, PortsEmission, PreparedNodeActivationDispatch, RegistrationOptions, ResumeContext, RetryPolicy, RetryPolicySpec, RunCompletionNotifier, RunCurrentState, RunDataFactory, RunDataSnapshot, RunEvent, RunEventBus, RunEventPublisherDeps, RunEventSubscription, RunExecutionOptions, RunFinishedAtFactory, RunHaltReason, RunId, RunIdFactory, RunIntentService, RunIterationDto, RunPruneCandidate, RunQueueEntry, RunResult, RunRevision, RunSlotProjectionState, RunStateResetRequest, RunStatus, RunStopCondition, RunSummary, RunTestContext, RunnableNode, RunnableNodeConfig, RunnableNodeExecuteArgs, RunnableNodeInputJson, RunnableNodeOutputJson, RunnableOutputBehaviorResolver, SlotExecutionStateDto, StackTraceCallSitePathResolver, StepSequenceOutput, StructuredOutputOptions, SuspensionRequest, SystemClock, TelemetryArtifactAttachment, TelemetryArtifactReference, TelemetryAttributePrimitive, TelemetryAttributes, TelemetryChildSpanStart, TelemetryMetricRecord, TelemetryScope, TelemetrySpanEnd, TelemetrySpanEventRecord, TelemetrySpanScope, TestCaseRunStatus, TestSuiteRunId, TestSuiteRunStatus, TestTriggerNodeConfig, TestTriggerSetupContext, TestableTriggerNode, Tool, ToolConfig, ToolExecuteArgs, TriggerCleanupHandle, TriggerInstanceId, TriggerNode, TriggerNodeConfig, TriggerNodeOutputJson, TriggerNodeSetupState, TriggerRuntimeDiagnostics, TriggerSetupContext, TriggerSetupStateFor, TriggerSetupStateRepository, TriggerTestItemsContext, TypeToken, UnavailableBinaryStorage, UpstreamRefPlaceholder, ValidStepSequence, WebhookControlSignal, WebhookInvocationMatch, WebhookRunResult, WebhookTriggerMatcher, WebhookTriggerResolution, WebhookTriggerRoutingDiagnostics, WhenBuilder, WorkItemId, WorkItemStatus, WorkflowActivationPolicy, WorkflowBuilder, WorkflowDefinition, WorkflowDefinitionError, WorkflowDetailSelectionState, WorkflowEdgePortError, WorkflowEdgePortValidationResult, WorkflowEdgePortValidator, WorkflowErrorContext, WorkflowErrorHandler, WorkflowErrorHandlerSpec, WorkflowExecutableNodeClassifier, WorkflowExecutableNodeClassifierFactory, WorkflowExecutionListingRepository, WorkflowExecutionPruneRepository, WorkflowExecutionRepository, WorkflowGraph, WorkflowGraphFactory, WorkflowId, WorkflowNodeConnection, WorkflowNodeInstanceFactory, WorkflowPolicyRuntimeDefaults, WorkflowPrunePolicySpec, WorkflowRepository, WorkflowRunDetailDto, WorkflowRunnerResolver, WorkflowRunnerService, WorkflowSnapshotFactory, WorkflowSnapshotResolver, WorkflowStoragePolicyDecisionArgs, WorkflowStoragePolicyMode, WorkflowStoragePolicyResolver, WorkflowStoragePolicySpec, WorkspaceFileMetadata, WorkspaceFileNotFoundError, WorkspaceFileStorageToken, ZodSchemaAny, branchRef, c, callableTool, chatModel, container, defineBatchNode, defineCollection, defineCredential, defineHumanApprovalNode, defineNode, definePollingTrigger, delay, deriveAssertionPassed, emitPorts, getOriginIndexFromItem, getPersistedRuntimeTypeMetadata, inject, injectAll, injectable, instanceCachingFactory, instancePerContainerCachingFactory, isHumanApprovalNode, isItemExpr, isPortsEmission, isUnbrandedPortsEmissionShape, itemExpr, node, nodeRef, predicateAwareClassFactory, registry, resolveItemExprsForExecution, resolveItemExprsInUnknown, runnableNodeInputType, runnableNodeOutputType, singleton, tool, triggerNodeOutputType, triggerNodeSetupStateType };
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { C as itemExpr, E as ConnectionNodeIdFactory, S as isItemExpr, T as resolveItemExprsInUnknown, _ as CredentialUnboundError, a as injectable, b as NodeBackedToolConfig, c as predicateAwareClassFactory, d as CoreTokens, f as branchRef, g as SuspensionRequest, i as injectAll, l as registry, m as RunFinishedAtFactory, n as delay, o as instanceCachingFactory, p as nodeRef, r as inject, s as instancePerContainerCachingFactory, t as container, u as singleton, v as NodeIterationIdFactory, w as resolveItemExprsForExecution, x as AgentConfigInspector, y as AgentConnectionNodeCollector } from "./di-D9Mv3kF3.js";
|
|
2
2
|
import { t as ItemsInputNormalizer } from "./ItemsInputNormalizer-BkSvmfAW.js";
|
|
3
3
|
import { i as AgentBindError, n as deriveAssertionPassed, r as NoOpAgentMcpIntegration, t as DEFAULT_ASSERTION_PASS_THRESHOLD } from "./contracts-DXdfTdpW.js";
|
|
4
|
-
import { $ as CostTrackingTelemetryAttributeNames, At as node, Bt as HumanTaskStoreToken, Ct as WhenBuilder, Dt as defineNode, Et as defineBatchNode, Ft as PersistedRuntimeTypeNameResolver, G as AllWorkflowsActiveWorkflowActivationPolicy, H as CodemationTelemetryMetricNames, I as RunnableOutputBehaviorResolver, It as DefinedNodeRegistry, J as NoOpNodeExecutionTelemetry, K as NoOpExecutionTelemetryFactory, L as NodeOutputNormalizer, Lt as HitlResumeTokenSignerToken, Mt as InjectableRuntimeDecoratorComposer, Nt as PersistedRuntimeTypeMetadataStore, Ot as chatModel, Pt as StackTraceCallSitePathResolver, Q as NoOpCostTrackingTelemetry, R as ItemExprResolver, Rt as HitlTimeoutJobSchedulerToken, St as ChainCursor, Tt as isHumanApprovalNode, U as GenAiTelemetryAttributeNames, V as DefaultExecutionContextFactory, W as CodemationTelemetryAttributeNames, X as NoOpTelemetryArtifactReference, Y as NoOpTelemetrySpanScope, Z as NoOpCostTrackingTelemetryFactory, _t as WorkflowExecutableNodeClassifier, a as InMemoryLiveWorkflowRepository, at as isPortsEmission, bt as WorkflowDefinitionError, ct as CredentialResolverFactory, d as PollingTriggerRuntime, dt as DefaultExecutionBinaryService, et as CostTrackingTelemetryMetricNames, f as PollingTriggerDedupWindow, ft as UnavailableBinaryStorage, gt as WorkflowExecutableNodeClassifierFactory, ht as DefaultWorkflowGraphFactory, i as RunIntentService, it as emitPorts, jt as tool, kt as getPersistedRuntimeTypeMetadata, lt as getOriginIndexFromItem, m as InMemoryBinaryStorage, mt as ConnectionInvocationEventPublisher, nt as RetryPolicy, ot as isUnbrandedPortsEmissionShape, p as InMemoryRunDataFactory, pt as NodeEventPublisher, q as NoOpExecutionTelemetry, rt as NoRetryPolicy, st as DefaultAsyncSleeper, tt as ExpRetryPolicy, u as NoOpPollingTriggerLogger, ut as ChildExecutionScopeFactory, vt as ConnectionInvocationIdFactory, wt as defineHumanApprovalNode, xt as NodeIdSlugifier, y as EngineExecutionLimitsPolicy, yt as WorkflowBuilder, z as InProcessRetryRunner, zt as HitlWorkspaceIdToken } from "./runtime-
|
|
4
|
+
import { $ as CostTrackingTelemetryAttributeNames, At as node, Bt as HumanTaskStoreToken, Ct as WhenBuilder, Dt as defineNode, Et as defineBatchNode, Ft as PersistedRuntimeTypeNameResolver, G as AllWorkflowsActiveWorkflowActivationPolicy, H as CodemationTelemetryMetricNames, I as RunnableOutputBehaviorResolver, It as DefinedNodeRegistry, J as NoOpNodeExecutionTelemetry, K as NoOpExecutionTelemetryFactory, L as NodeOutputNormalizer, Lt as HitlResumeTokenSignerToken, Mt as InjectableRuntimeDecoratorComposer, Nt as PersistedRuntimeTypeMetadataStore, Ot as chatModel, Pt as StackTraceCallSitePathResolver, Q as NoOpCostTrackingTelemetry, R as ItemExprResolver, Rt as HitlTimeoutJobSchedulerToken, St as ChainCursor, Tt as isHumanApprovalNode, U as GenAiTelemetryAttributeNames, V as DefaultExecutionContextFactory, W as CodemationTelemetryAttributeNames, X as NoOpTelemetryArtifactReference, Y as NoOpTelemetrySpanScope, Z as NoOpCostTrackingTelemetryFactory, _t as WorkflowExecutableNodeClassifier, a as InMemoryLiveWorkflowRepository, at as isPortsEmission, bt as WorkflowDefinitionError, ct as CredentialResolverFactory, d as PollingTriggerRuntime, dt as DefaultExecutionBinaryService, et as CostTrackingTelemetryMetricNames, f as PollingTriggerDedupWindow, ft as UnavailableBinaryStorage, gt as WorkflowExecutableNodeClassifierFactory, ht as DefaultWorkflowGraphFactory, i as RunIntentService, it as emitPorts, jt as tool, kt as getPersistedRuntimeTypeMetadata, lt as getOriginIndexFromItem, m as InMemoryBinaryStorage, mt as ConnectionInvocationEventPublisher, nt as RetryPolicy, ot as isUnbrandedPortsEmissionShape, p as InMemoryRunDataFactory, pt as NodeEventPublisher, q as NoOpExecutionTelemetry, rt as NoRetryPolicy, st as DefaultAsyncSleeper, tt as ExpRetryPolicy, u as NoOpPollingTriggerLogger, ut as ChildExecutionScopeFactory, vt as ConnectionInvocationIdFactory, wt as defineHumanApprovalNode, xt as NodeIdSlugifier, y as EngineExecutionLimitsPolicy, yt as WorkflowBuilder, z as InProcessRetryRunner, zt as HitlWorkspaceIdToken } from "./runtime-iHBN1jyD.js";
|
|
5
5
|
import { t as InMemoryRunEventBus } from "./InMemoryRunEventBusRegistry-Bwunvt1T.js";
|
|
6
6
|
import { ZodError, z } from "zod";
|
|
7
7
|
|
|
@@ -4998,12 +4998,26 @@ var InlineDrivingScheduler = class {
|
|
|
4998
4998
|
drainingRuns = /* @__PURE__ */ new Set();
|
|
4999
4999
|
queuesByRunId = /* @__PURE__ */ new Map();
|
|
5000
5000
|
scheduledRuns = /* @__PURE__ */ new Set();
|
|
5001
|
+
stopped = false;
|
|
5002
|
+
activeDrainPromises = /* @__PURE__ */ new Set();
|
|
5001
5003
|
constructor(nodeExecutor) {
|
|
5002
5004
|
this.nodeExecutor = nodeExecutor;
|
|
5003
5005
|
}
|
|
5004
5006
|
setContinuation(continuation) {
|
|
5005
5007
|
this.continuation = continuation;
|
|
5006
5008
|
}
|
|
5009
|
+
/**
|
|
5010
|
+
* Prevents new drain cycles from being scheduled and waits for all currently-running
|
|
5011
|
+
* drains to complete. Call before closing the DB connection or rolling back test transactions
|
|
5012
|
+
* to ensure no in-flight writes hit a closed/rolled-back connection.
|
|
5013
|
+
*
|
|
5014
|
+
* Bounded: only the drains already in-flight at call time are awaited. Runs that keep
|
|
5015
|
+
* re-scheduling will not schedule new work once stopped is set.
|
|
5016
|
+
*/
|
|
5017
|
+
async stop() {
|
|
5018
|
+
this.stopped = true;
|
|
5019
|
+
if (this.activeDrainPromises.size > 0) await Promise.allSettled(this.activeDrainPromises);
|
|
5020
|
+
}
|
|
5007
5021
|
async prepareDispatch(request) {
|
|
5008
5022
|
const receipt = {
|
|
5009
5023
|
receiptId: request.activationId,
|
|
@@ -5053,11 +5067,15 @@ var InlineDrivingScheduler = class {
|
|
|
5053
5067
|
}
|
|
5054
5068
|
}
|
|
5055
5069
|
scheduleDrain(runId) {
|
|
5056
|
-
if (this.drainingRuns.has(runId) || this.scheduledRuns.has(runId)) return;
|
|
5070
|
+
if (this.stopped || this.drainingRuns.has(runId) || this.scheduledRuns.has(runId)) return;
|
|
5057
5071
|
this.scheduledRuns.add(runId);
|
|
5058
5072
|
setImmediate(() => {
|
|
5059
5073
|
this.scheduledRuns.delete(runId);
|
|
5060
|
-
this.
|
|
5074
|
+
if (this.stopped) return;
|
|
5075
|
+
const p = this.drainRun(runId).finally(() => {
|
|
5076
|
+
this.activeDrainPromises.delete(p);
|
|
5077
|
+
});
|
|
5078
|
+
this.activeDrainPromises.add(p);
|
|
5061
5079
|
});
|
|
5062
5080
|
}
|
|
5063
5081
|
async resumeAfterExecutionResult(continuation, request, outputs) {
|
|
@@ -6565,4 +6583,4 @@ var WorkflowRepositoryWebhookTriggerMatcherFactory = class {
|
|
|
6565
6583
|
|
|
6566
6584
|
//#endregion
|
|
6567
6585
|
export { CostTrackingTelemetryAttributeNames as $, PersistedWorkflowTokenRegistry as A, node as At, CatalogBackedCostTrackingTelemetryFactory as B, HumanTaskStoreToken as Bt, DefaultDrivingScheduler as C, WhenBuilder as Ct, NodeInstanceFactoryFactory as D, defineNode as Dt, StaticCostCatalog as E, defineBatchNode as Et, InProcessRetryRunnerFactory as F, PersistedRuntimeTypeNameResolver as Ft, AllWorkflowsActiveWorkflowActivationPolicy as G, CodemationTelemetryMetricNames as H, RunnableOutputBehaviorResolver as I, DefinedNodeRegistry as It, NoOpNodeExecutionTelemetry as J, NoOpExecutionTelemetryFactory as K, NodeOutputNormalizer as L, HitlResumeTokenSignerToken as Lt, NodeExecutorFactory as M, InjectableRuntimeDecoratorComposer as Mt, NodeExecutor as N, PersistedRuntimeTypeMetadataStore as Nt, NodeInstanceFactory as O, chatModel as Ot, RunSuspendedError as P, StackTraceCallSitePathResolver as Pt, NoOpCostTrackingTelemetry as Q, ItemExprResolver as R, HitlTimeoutJobSchedulerToken as Rt, HintOnlyOffloadPolicy as S, ChainCursor as St, RunPolicySnapshotFactory as T, isHumanApprovalNode as Tt, GenAiTelemetryAttributeNames as U, DefaultExecutionContextFactory as V, CodemationTelemetryAttributeNames as W, NoOpTelemetryArtifactReference as X, NoOpTelemetrySpanScope as Y, NoOpCostTrackingTelemetryFactory as Z, RunTerminalPersistenceCoordinator as _, WorkflowExecutableNodeClassifier as _t, InMemoryLiveWorkflowRepository as a, isPortsEmission as at, LocalOnlyScheduler as b, WorkflowDefinitionError as bt, EngineFactory as c, CredentialResolverFactory as ct, PollingTriggerRuntime as d, DefaultExecutionBinaryService as dt, CostTrackingTelemetryMetricNames as et, PollingTriggerDedupWindow as f, UnavailableBinaryStorage as ft, WorkflowPolicyErrorServices as g, WorkflowExecutableNodeClassifierFactory as gt, WorkflowStoragePolicyEvaluator as h, DefaultWorkflowGraphFactory as ht, RunIntentService as i, emitPorts as it, MissingRuntimeTriggerToken as j, tool as jt, WorkflowSnapshotCodec as k, getPersistedRuntimeTypeMetadata as kt, Engine as l, getOriginIndexFromItem as lt, InMemoryBinaryStorage as m, ConnectionInvocationEventPublisher as mt, WorkflowRepositoryWebhookTriggerMatcher as n, RetryPolicy as nt, EngineWorkflowRunnerServiceFactory as o, isUnbrandedPortsEmissionShape as ot, InMemoryRunDataFactory as p, NodeEventPublisher as pt, NoOpExecutionTelemetry as q, RunIntentServiceFactory as r, NoRetryPolicy as rt, EngineWorkflowRunnerService as s, DefaultAsyncSleeper as st, WorkflowRepositoryWebhookTriggerMatcherFactory as t, ExpRetryPolicy as tt, NoOpPollingTriggerLogger as u, ChildExecutionScopeFactory as ut, ENGINE_EXECUTION_LIMITS_DEFAULTS as v, ConnectionInvocationIdFactory as vt, ConfigDrivenOffloadPolicy as w, defineHumanApprovalNode as wt, InlineDrivingScheduler as x, NodeIdSlugifier as xt, EngineExecutionLimitsPolicy as y, WorkflowBuilder as yt, InProcessRetryRunner as z, HitlWorkspaceIdToken as zt };
|
|
6568
|
-
//# sourceMappingURL=runtime-
|
|
6586
|
+
//# sourceMappingURL=runtime-iHBN1jyD.js.map
|