@codemation/core 0.11.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/{CostCatalogContract-DZgcUBE4.d.cts → CostCatalogContract-DD7fQ4FF.d.cts} +2 -2
- package/dist/{EngineRuntimeRegistration.types-Cggm5GVY.d.cts → EngineRuntimeRegistration.types-DTV5_7Jw.d.cts} +3 -3
- package/dist/{EngineRuntimeRegistration.types-BQbS9_gs.d.ts → EngineRuntimeRegistration.types-Dl92Hdoi.d.ts} +2 -2
- package/dist/InMemoryRunDataFactory-qMiYjhCK.d.cts +202 -0
- package/dist/{ItemsInputNormalizer-D-MH8MBs.js → ItemsInputNormalizer-BhuxvZh5.js} +2 -2
- package/dist/{ItemsInputNormalizer-D-MH8MBs.js.map → ItemsInputNormalizer-BhuxvZh5.js.map} +1 -1
- package/dist/{ItemsInputNormalizer-_Mfcd3YU.d.ts → ItemsInputNormalizer-C09a7iFP.d.ts} +2 -2
- package/dist/{ItemsInputNormalizer-C_dpn76M.d.cts → ItemsInputNormalizer-DLaD6rTl.d.cts} +3 -3
- package/dist/{ItemsInputNormalizer-CwdOhSAK.cjs → ItemsInputNormalizer-Div-fb6a.cjs} +2 -2
- package/dist/{ItemsInputNormalizer-CwdOhSAK.cjs.map → ItemsInputNormalizer-Div-fb6a.cjs.map} +1 -1
- package/dist/{RunIntentService-BVur7x9n.d.ts → RunIntentService-BOSGwmqn.d.ts} +18 -4
- package/dist/{RunIntentService-CEF-sFfI.d.cts → RunIntentService-CWMMrAP4.d.cts} +18 -4
- package/dist/{agentMcpTypes-ZiNbNsEi.d.cts → agentMcpTypes-DUmniLOY.d.cts} +183 -4
- package/dist/bootstrap/index.cjs +3 -3
- package/dist/bootstrap/index.d.cts +63 -7
- package/dist/bootstrap/index.d.ts +5 -5
- package/dist/bootstrap/index.js +3 -3
- package/dist/{bootstrap-D_Yyi0wL.js → bootstrap-CKTMMNmL.js} +173 -4
- package/dist/bootstrap-CKTMMNmL.js.map +1 -0
- package/dist/{bootstrap-BxuTFTLB.cjs → bootstrap-D460dCgS.cjs} +175 -4
- package/dist/bootstrap-D460dCgS.cjs.map +1 -0
- package/dist/browser.cjs +3 -2
- package/dist/browser.d.cts +4 -4
- package/dist/browser.d.ts +3 -3
- package/dist/browser.js +3 -3
- package/dist/contracts.d.cts +5 -5
- package/dist/contracts.d.ts +2 -2
- package/dist/{di-0Wop7z1y.js → di-DdsgWfVy.js} +31 -2
- package/dist/di-DdsgWfVy.js.map +1 -0
- package/dist/{di-BlEKdoZS.cjs → di-tO6R7VJV.cjs} +36 -1
- package/dist/di-tO6R7VJV.cjs.map +1 -0
- package/dist/{executionPersistenceContracts-BgZMRsTa.d.cts → executionPersistenceContracts-DenJJK2T.d.cts} +2 -2
- package/dist/{index-62Ba9f7D.d.ts → index-BZDhEQ6W.d.ts} +277 -101
- package/dist/{index-zWGtEhrf.d.ts → index-CSKKuK60.d.ts} +441 -5
- package/dist/index.cjs +71 -161
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +395 -97
- package/dist/index.d.ts +5 -5
- package/dist/index.js +56 -159
- package/dist/index.js.map +1 -1
- package/dist/{params-B5SENSzZ.d.cts → params-DqRvku2h.d.cts} +2 -2
- package/dist/{runtime-cxmUkk0l.js → runtime-BPZgnZ9G.js} +611 -16
- package/dist/runtime-BPZgnZ9G.js.map +1 -0
- package/dist/{runtime-DBzq5YBi.cjs → runtime-CyW9c9XM.cjs} +670 -15
- package/dist/runtime-CyW9c9XM.cjs.map +1 -0
- package/dist/testing.cjs +3 -3
- package/dist/testing.d.cts +3 -3
- package/dist/testing.d.ts +3 -3
- package/dist/testing.js +3 -3
- package/package.json +1 -1
- package/src/authoring/defineHumanApprovalNode.types.ts +379 -0
- package/src/authoring/index.ts +6 -0
- package/src/bootstrap/runtime/EngineRuntimeRegistrar.ts +29 -0
- package/src/contracts/CodemationTelemetryAttributeNames.ts +10 -0
- package/src/contracts/credentialTypes.ts +10 -0
- package/src/contracts/hitlSeamTypes.ts +34 -0
- package/src/contracts/humanTaskStoreTypes.ts +48 -0
- package/src/contracts/inboxChannelTypes.ts +58 -0
- package/src/contracts/index.ts +3 -0
- package/src/contracts/runTypes.ts +61 -3
- package/src/contracts/runtimeTypes.ts +112 -0
- package/src/credentials/CredentialMaterialProvider.types.ts +61 -0
- package/src/credentials/ManagedCredentialMaterialWriteError.ts +14 -0
- package/src/credentials/ManagedMaterialFetchError.ts +16 -0
- package/src/execution/ActivationEnqueueService.ts +16 -0
- package/src/execution/DefaultExecutionContextFactory.ts +11 -0
- package/src/execution/NodeExecutionSnapshotFactory.ts +7 -1
- package/src/execution/NodeExecutor.ts +60 -1
- package/src/execution/NodeExecutorFactory.ts +12 -2
- package/src/execution/NodeSuspensionHandler.ts +220 -0
- package/src/execution/PersistedRunStateTerminalBuilder.ts +5 -2
- package/src/execution/RunStateSemantics.ts +5 -0
- package/src/execution/RunSuspendedError.ts +21 -0
- package/src/index.ts +40 -0
- package/src/orchestration/Engine.ts +12 -2
- package/src/orchestration/EngineWaiters.ts +1 -1
- package/src/orchestration/NodeExecutionRequestHandlerService.ts +25 -2
- package/src/orchestration/RunContinuationService.ts +226 -2
- package/src/orchestration/TestSuiteOrchestrator.ts +5 -4
- package/src/runtime/RunIntentService.ts +3 -0
- package/src/workflow/dsl/ChainCursorResolver.ts +36 -0
- package/dist/InMemoryRunDataFactory-C7YItvHG.d.cts +0 -123
- package/dist/bootstrap-BxuTFTLB.cjs.map +0 -1
- package/dist/bootstrap-D_Yyi0wL.js.map +0 -1
- package/dist/di-0Wop7z1y.js.map +0 -1
- package/dist/di-BlEKdoZS.cjs.map +0 -1
- package/dist/runtime-DBzq5YBi.cjs.map +0 -1
- package/dist/runtime-cxmUkk0l.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
2
|
import { DependencyContainer as Container, DependencyContainer as DependencyContainer$1, Disposable, InjectionToken as InjectionToken$1, InjectionToken as TypeToken, Lifecycle, RegistrationOptions, container as container$1, delay, inject, injectAll, injectable, instanceCachingFactory, instancePerContainerCachingFactory, predicateAwareClassFactory, registry, singleton } from "tsyringe";
|
|
3
|
-
import { ZodType } from "zod";
|
|
3
|
+
import { ZodType, z } from "zod";
|
|
4
4
|
import { ReadableStream } from "node:stream/web";
|
|
5
5
|
|
|
6
6
|
//#region src/contracts/baseTypes.d.ts
|
|
@@ -190,6 +190,19 @@ type CredentialInstanceRecord<TPublicConfig extends CredentialJsonRecord = Crede
|
|
|
190
190
|
setupStatus: CredentialSetupStatus;
|
|
191
191
|
createdAt: string;
|
|
192
192
|
updatedAt: string;
|
|
193
|
+
/**
|
|
194
|
+
* Pointer to where the credential material bytes live. For OSS / standalone
|
|
195
|
+
* rows this is `{source: "local", ref: instanceId}` and the bytes co-locate
|
|
196
|
+
* with the row in the workspace DB. For managed-mode rows this is
|
|
197
|
+
* `{source: "control-plane", ref: <cp_id>}` and the bytes live at CP.
|
|
198
|
+
*
|
|
199
|
+
* The seam is read through `CredentialMaterialProvider`. See
|
|
200
|
+
* `docs/design/credentials-oauth-unification.md` ("Material provider seam").
|
|
201
|
+
*/
|
|
202
|
+
material: Readonly<{
|
|
203
|
+
source: "local" | "control-plane";
|
|
204
|
+
ref: string;
|
|
205
|
+
}>;
|
|
193
206
|
}>;
|
|
194
207
|
/**
|
|
195
208
|
* Arguments passed to `CredentialType.createSession` and `CredentialType.test`.
|
|
@@ -397,6 +410,16 @@ declare class CodemationTelemetryAttributeNames {
|
|
|
397
410
|
static readonly mcpServerId = "mcp.server_id";
|
|
398
411
|
/** MCP tool name on spans created for callTool invocations. */
|
|
399
412
|
static readonly mcpToolName = "mcp.tool_name";
|
|
413
|
+
/** Terminal node-execution status (e.g. `"hitl-approved"`, `"hitl-rejected"`) on HITL outcome spans. */
|
|
414
|
+
static readonly nodeExecutionStatus = "codemation.node.execution_status";
|
|
415
|
+
/** Populated on run-halted spans; discriminates the halt reason (e.g. `"hitl-rejected"`). */
|
|
416
|
+
static readonly runHaltReason = "codemation.run.halt_reason";
|
|
417
|
+
/** Human task ID on `hitl.task.*` span events. */
|
|
418
|
+
static readonly hitlTaskId = "codemation.hitl.task_id";
|
|
419
|
+
/** HITL channel name (e.g. `"inbox"`, `"control-plane-inbox"`) on `hitl.task.*` span events. */
|
|
420
|
+
static readonly hitlChannel = "codemation.hitl.channel";
|
|
421
|
+
/** Decision outcome (e.g. `"approved"`, `"rejected"`) on `hitl.task.decided` span events. */
|
|
422
|
+
static readonly hitlDecisionStatus = "codemation.hitl.decision_status";
|
|
400
423
|
}
|
|
401
424
|
//#endregion
|
|
402
425
|
//#region src/contracts/GenAiTelemetryAttributeNames.d.ts
|
|
@@ -573,6 +596,100 @@ interface WebhookTriggerMatcher {
|
|
|
573
596
|
}
|
|
574
597
|
//#endregion
|
|
575
598
|
//#region src/contracts/runtimeTypes.d.ts
|
|
599
|
+
/** Opaque unique identifier for a single HumanTask instance. */
|
|
600
|
+
type HumanTaskId = string;
|
|
601
|
+
/**
|
|
602
|
+
* Duration string — ISO 8601 duration ("PT24H") or shorthand ("24h").
|
|
603
|
+
* Parsed by the timeout job; stored as-is in the suspension record.
|
|
604
|
+
*/
|
|
605
|
+
type Duration = string;
|
|
606
|
+
/**
|
|
607
|
+
* Minimal handle handed to the `deliver` callback so it can route to the correct
|
|
608
|
+
* inbox channel.
|
|
609
|
+
*/
|
|
610
|
+
interface HumanTaskHandle {
|
|
611
|
+
readonly taskId: HumanTaskId;
|
|
612
|
+
readonly runId: string;
|
|
613
|
+
readonly nodeId: string;
|
|
614
|
+
readonly expiresAt: Date;
|
|
615
|
+
/** TODO: real signed URL; placeholder empty string for now. */
|
|
616
|
+
readonly resumeUrl: string;
|
|
617
|
+
/**
|
|
618
|
+
* Arbitrary JSON metadata copied from `SuspensionRequest.request.metadata` at suspension time.
|
|
619
|
+
* Used by the agent runtime to round-trip the `agentCheckpoint` back to the
|
|
620
|
+
* resumed node via `ctx.resumeContext.task.metadata`.
|
|
621
|
+
*/
|
|
622
|
+
readonly metadata?: Readonly<Record<string, JsonValue>>;
|
|
623
|
+
}
|
|
624
|
+
/** Human-readable description surface shown to the reviewer. */
|
|
625
|
+
interface HumanTaskSubject {
|
|
626
|
+
readonly title: string;
|
|
627
|
+
readonly summary: string;
|
|
628
|
+
readonly attributes?: JsonValue;
|
|
629
|
+
}
|
|
630
|
+
/** Identity of the person who made a decision on the task. */
|
|
631
|
+
interface HumanTaskActor {
|
|
632
|
+
readonly actorId: string;
|
|
633
|
+
readonly displayName?: string;
|
|
634
|
+
}
|
|
635
|
+
/**
|
|
636
|
+
* Resume context injected into `NodeExecutionContext` when the engine re-activates
|
|
637
|
+
* a previously suspended node. `defineHumanApprovalNode` wraps this with parsed
|
|
638
|
+
* `TDecision`; at the engine layer `decision.value` is `unknown`.
|
|
639
|
+
*/
|
|
640
|
+
interface ResumeContext {
|
|
641
|
+
readonly decision: Readonly<{
|
|
642
|
+
kind: "decided";
|
|
643
|
+
value: unknown;
|
|
644
|
+
actor: HumanTaskActor;
|
|
645
|
+
decidedAt: Date;
|
|
646
|
+
}> | Readonly<{
|
|
647
|
+
kind: "timed_out";
|
|
648
|
+
at: Date;
|
|
649
|
+
}> | Readonly<{
|
|
650
|
+
kind: "auto_accepted";
|
|
651
|
+
at: Date;
|
|
652
|
+
}>;
|
|
653
|
+
readonly delivery: JsonValue;
|
|
654
|
+
readonly task: HumanTaskHandle;
|
|
655
|
+
}
|
|
656
|
+
/**
|
|
657
|
+
* Thrown by a node's `execute()` to request durable suspension of the current item.
|
|
658
|
+
* The engine catches this, persists the suspension entry, calls `deliver`, and
|
|
659
|
+
* continues to the next item (per-item semantics).
|
|
660
|
+
*
|
|
661
|
+
* @example
|
|
662
|
+
* ```ts
|
|
663
|
+
* throw new SuspensionRequest({
|
|
664
|
+
* decisionSchema: z.object({ approved: z.boolean() }),
|
|
665
|
+
* timeout: "PT24H",
|
|
666
|
+
* onTimeout: "halt",
|
|
667
|
+
* subject: { title: "Approve invoice", summary: "Invoice #1234 needs approval" },
|
|
668
|
+
* deliver: async (handle) => {
|
|
669
|
+
* await notifySlack(handle);
|
|
670
|
+
* return { channel: "slack", ts: "..." };
|
|
671
|
+
* },
|
|
672
|
+
* });
|
|
673
|
+
* ```
|
|
674
|
+
*/
|
|
675
|
+
declare class SuspensionRequest<TDecision = unknown, TDelivery extends JsonValue = JsonValue> extends Error {
|
|
676
|
+
readonly request: Readonly<{
|
|
677
|
+
decisionSchema: ZodType<TDecision>;
|
|
678
|
+
timeout: Duration;
|
|
679
|
+
onTimeout: "halt" | "auto-accept";
|
|
680
|
+
subject: HumanTaskSubject;
|
|
681
|
+
metadata?: Readonly<Record<string, JsonValue>>;
|
|
682
|
+
deliver: (handle: HumanTaskHandle) => Promise<TDelivery>;
|
|
683
|
+
}>;
|
|
684
|
+
constructor(request: Readonly<{
|
|
685
|
+
decisionSchema: ZodType<TDecision>;
|
|
686
|
+
timeout: Duration;
|
|
687
|
+
onTimeout: "halt" | "auto-accept";
|
|
688
|
+
subject: HumanTaskSubject;
|
|
689
|
+
metadata?: Readonly<Record<string, JsonValue>>;
|
|
690
|
+
deliver: (handle: HumanTaskHandle) => Promise<TDelivery>;
|
|
691
|
+
}>);
|
|
692
|
+
}
|
|
576
693
|
interface WorkflowRunnerService {
|
|
577
694
|
runById(args: {
|
|
578
695
|
workflowId: WorkflowId;
|
|
@@ -706,6 +823,14 @@ interface ExecutionContext {
|
|
|
706
823
|
* Collections registered in the codemation config, keyed by collection name.
|
|
707
824
|
*/
|
|
708
825
|
readonly collections?: CollectionsContext;
|
|
826
|
+
/**
|
|
827
|
+
* Resolve a DI token from the host container.
|
|
828
|
+
* Allows nodes to reach host-side services (e.g. `InboxChannelResolverToken`)
|
|
829
|
+
* without importing host code. Wired by `DefaultExecutionContextFactory`; throws
|
|
830
|
+
* a clear error when no resolver is configured (e.g. in unit tests that don't
|
|
831
|
+
* set up the full container).
|
|
832
|
+
*/
|
|
833
|
+
resolve<T>(token: TypeToken<T>): T;
|
|
709
834
|
}
|
|
710
835
|
interface ExecutionContextFactory {
|
|
711
836
|
create(args: {
|
|
@@ -729,6 +854,11 @@ interface NodeExecutionContext<TConfig extends NodeConfigBase = NodeConfigBase>
|
|
|
729
854
|
config: TConfig;
|
|
730
855
|
telemetry: NodeExecutionTelemetry;
|
|
731
856
|
binary: NodeBinaryAttachmentService;
|
|
857
|
+
/**
|
|
858
|
+
* Present when this node activation is a HITL resume.
|
|
859
|
+
* The node checks `ctx.resumeContext !== undefined` and takes the resume branch.
|
|
860
|
+
*/
|
|
861
|
+
resumeContext?: ResumeContext;
|
|
732
862
|
}
|
|
733
863
|
interface PollingTriggerHandle {
|
|
734
864
|
/**
|
|
@@ -1635,7 +1765,7 @@ interface RunQueueEntry {
|
|
|
1635
1765
|
received: Readonly<Record<InputPortKey, Items>>;
|
|
1636
1766
|
}>;
|
|
1637
1767
|
}
|
|
1638
|
-
type NodeExecutionStatus = "pending" | "queued" | "running" | "completed" | "failed" | "skipped";
|
|
1768
|
+
type NodeExecutionStatus = "pending" | "queued" | "running" | "completed" | "failed" | "skipped" | "hitl-approved" | "hitl-rejected" | "hitl-timeout" | "hitl-auto-accepted" | "hitl-cancelled";
|
|
1639
1769
|
interface NodeExecutionError {
|
|
1640
1770
|
message: string;
|
|
1641
1771
|
name?: string;
|
|
@@ -1743,7 +1873,9 @@ interface ExecutionFrontierPlan {
|
|
|
1743
1873
|
clearedNodeIds: ReadonlyArray<NodeId>;
|
|
1744
1874
|
preservedPinnedNodeIds: ReadonlyArray<NodeId>;
|
|
1745
1875
|
}
|
|
1746
|
-
type RunStatus = "running" | "pending" | "completed" | "failed";
|
|
1876
|
+
type RunStatus = "running" | "pending" | "completed" | "failed" | "suspended" | "halted";
|
|
1877
|
+
/** Reason a run transitioned to {@link RunStatus} `"halted"`. */
|
|
1878
|
+
type RunHaltReason = "hitl-rejected" | "hitl-timeout" | "hitl-cancelled";
|
|
1747
1879
|
interface RunSummary {
|
|
1748
1880
|
runId: RunId;
|
|
1749
1881
|
workflowId: WorkflowId;
|
|
@@ -1777,6 +1909,35 @@ interface PersistedRunSchedulingState {
|
|
|
1777
1909
|
pending?: PendingNodeExecution;
|
|
1778
1910
|
queue: RunQueueEntry[];
|
|
1779
1911
|
}
|
|
1912
|
+
/** One persisted suspension entry per suspended item. */
|
|
1913
|
+
interface PersistedSuspensionEntry {
|
|
1914
|
+
/** Opaque task identifier (UUID v4). */
|
|
1915
|
+
readonly taskId: string;
|
|
1916
|
+
readonly nodeId: NodeId;
|
|
1917
|
+
readonly activationId: NodeActivationId;
|
|
1918
|
+
readonly itemIndex: number;
|
|
1919
|
+
/** SHA-256 hex digest of the decision schema JSON (for schema-drift detection). */
|
|
1920
|
+
readonly decisionSchemaHash: string;
|
|
1921
|
+
/** Serialized return value from `SuspensionRequest.deliver` (stored on the HumanTask row). */
|
|
1922
|
+
readonly deliveryRef: JsonValue;
|
|
1923
|
+
/** ISO timestamp when the task expires. */
|
|
1924
|
+
readonly timeoutAt: string;
|
|
1925
|
+
readonly onTimeout: "halt" | "auto-accept";
|
|
1926
|
+
}
|
|
1927
|
+
/**
|
|
1928
|
+
* When a node is re-activated after suspension, the engine writes the resume context here
|
|
1929
|
+
* so `NodeExecutionRequestHandlerService` can splice `resumeContext` into ctx.
|
|
1930
|
+
* Cleared once the re-activation is consumed.
|
|
1931
|
+
*/
|
|
1932
|
+
interface PendingResumeEntry {
|
|
1933
|
+
readonly activationId: NodeActivationId;
|
|
1934
|
+
readonly nodeId: NodeId;
|
|
1935
|
+
/**
|
|
1936
|
+
* Typed as `unknown` here to avoid a circular import between runTypes ↔ runtimeTypes.
|
|
1937
|
+
* `NodeExecutionRequestHandlerService` casts this to `ResumeContext` from runtimeTypes.
|
|
1938
|
+
*/
|
|
1939
|
+
readonly resumeContext: unknown;
|
|
1940
|
+
}
|
|
1780
1941
|
interface PersistedRunState {
|
|
1781
1942
|
runId: RunId;
|
|
1782
1943
|
workflowId: WorkflowId;
|
|
@@ -1795,12 +1956,24 @@ interface PersistedRunState {
|
|
|
1795
1956
|
/** Successful node completions so far (for activation budget). */
|
|
1796
1957
|
engineCounters?: EngineRunCounters;
|
|
1797
1958
|
status: RunStatus;
|
|
1959
|
+
/** Populated when `status === "halted"` to discriminate why the run was halted. */
|
|
1960
|
+
reason?: RunHaltReason;
|
|
1798
1961
|
pending?: PendingNodeExecution;
|
|
1799
1962
|
queue: RunQueueEntry[];
|
|
1800
1963
|
outputsByNode: Record<NodeId, NodeOutputs>;
|
|
1801
1964
|
nodeSnapshotsByNodeId: Record<NodeId, NodeExecutionSnapshot>;
|
|
1802
1965
|
/** Append-only history of connection invocations (LLM/tool) nested under owning nodes. */
|
|
1803
1966
|
connectionInvocations?: ReadonlyArray<ConnectionInvocationRecord>;
|
|
1967
|
+
/**
|
|
1968
|
+
* One entry per outstanding HITL suspension (per-item).
|
|
1969
|
+
* Present and non-empty iff `status === "suspended"`.
|
|
1970
|
+
*/
|
|
1971
|
+
suspension?: ReadonlyArray<PersistedSuspensionEntry>;
|
|
1972
|
+
/**
|
|
1973
|
+
* Written by `resumeRun()` so `NodeExecutionRequestHandlerService` can splice `resumeContext`
|
|
1974
|
+
* into the ctx when re-executing the suspended node. Cleared once consumed.
|
|
1975
|
+
*/
|
|
1976
|
+
pendingResume?: PendingResumeEntry;
|
|
1804
1977
|
}
|
|
1805
1978
|
interface WorkflowExecutionRepository {
|
|
1806
1979
|
createRun(args: {
|
|
@@ -1860,6 +2033,12 @@ type RunResult = {
|
|
|
1860
2033
|
error: {
|
|
1861
2034
|
message: string;
|
|
1862
2035
|
};
|
|
2036
|
+
} | {
|
|
2037
|
+
runId: RunId;
|
|
2038
|
+
workflowId: WorkflowId;
|
|
2039
|
+
startedAt: string;
|
|
2040
|
+
status: "halted";
|
|
2041
|
+
reason: RunHaltReason;
|
|
1863
2042
|
};
|
|
1864
2043
|
type WebhookRunResult = Readonly<{
|
|
1865
2044
|
runId: RunId;
|
|
@@ -2367,6 +2546,244 @@ declare class RunFinishedAtFactory {
|
|
|
2367
2546
|
static resolveIso(state: RunFinishedAtSource): string | undefined;
|
|
2368
2547
|
}
|
|
2369
2548
|
//#endregion
|
|
2549
|
+
//#region src/authoring/defineNode.types.d.ts
|
|
2550
|
+
type MaybePromise<TValue> = TValue | Promise<TValue>;
|
|
2551
|
+
type ResolvableCredentialType = AnyCredentialType | CredentialTypeId;
|
|
2552
|
+
type SessionForCredentialType<TCredential extends ResolvableCredentialType> = TCredential extends AnyCredentialType ? Awaited<ReturnType<TCredential["createSession"]>> : unknown;
|
|
2553
|
+
type DefinedNodeCredentialBinding = ResolvableCredentialType | Readonly<{
|
|
2554
|
+
readonly type: ResolvableCredentialType | ReadonlyArray<ResolvableCredentialType>;
|
|
2555
|
+
readonly label?: string;
|
|
2556
|
+
readonly optional?: true;
|
|
2557
|
+
readonly helpText?: string;
|
|
2558
|
+
readonly helpUrl?: string;
|
|
2559
|
+
}>;
|
|
2560
|
+
type DefinedNodeCredentialBindings = Readonly<Record<string, DefinedNodeCredentialBinding>>;
|
|
2561
|
+
type SessionForBinding<TBinding extends DefinedNodeCredentialBinding> = TBinding extends Readonly<{
|
|
2562
|
+
type: infer TType;
|
|
2563
|
+
}> ? TType extends ReadonlyArray<infer TEntry> ? SessionForCredentialType<TEntry & ResolvableCredentialType> : SessionForCredentialType<TType & ResolvableCredentialType> : SessionForCredentialType<TBinding & ResolvableCredentialType>;
|
|
2564
|
+
type DefinedNodeCredentialAccessors<TBindings extends DefinedNodeCredentialBindings | undefined> = TBindings extends DefinedNodeCredentialBindings ? Readonly<{ [TKey in keyof TBindings]: () => Promise<SessionForBinding<TBindings[TKey]>> }> : Readonly<Record<string, never>>;
|
|
2565
|
+
interface DefinedNodeRunContext<TConfig extends CredentialJsonRecord, TBindings extends DefinedNodeCredentialBindings | undefined> {
|
|
2566
|
+
readonly config: TConfig;
|
|
2567
|
+
readonly credentials: DefinedNodeCredentialAccessors<TBindings>;
|
|
2568
|
+
readonly execution: NodeExecutionContext<RunnableNodeConfig<TConfig, unknown>>;
|
|
2569
|
+
}
|
|
2570
|
+
/**
|
|
2571
|
+
* Arguments for {@link defineNode} `execute` (engine `ctx` matches {@link RunnableNode.execute};
|
|
2572
|
+
* the second callback parameter adds {@link DefinedNodeRunContext} for credential accessors).
|
|
2573
|
+
*/
|
|
2574
|
+
type DefineNodeExecuteArgs<TConfig extends CredentialJsonRecord, TInputJson$1> = Readonly<{
|
|
2575
|
+
input: TInputJson$1;
|
|
2576
|
+
item: Item;
|
|
2577
|
+
itemIndex: number;
|
|
2578
|
+
items: Items;
|
|
2579
|
+
ctx: NodeExecutionContext<RunnableNodeConfig<TInputJson$1, unknown> & Readonly<{
|
|
2580
|
+
config: TConfig;
|
|
2581
|
+
}>>;
|
|
2582
|
+
}>;
|
|
2583
|
+
type DefinedNodeConfigInput<TConfigResolved extends CredentialJsonRecord, TItemJson> = ParamDeep<TConfigResolved, TItemJson>;
|
|
2584
|
+
interface DefinedNode<TKey$1 extends string, TConfig extends CredentialJsonRecord, TInputJson$1, TOutputJson$1, _TBindings extends DefinedNodeCredentialBindings | undefined = undefined> {
|
|
2585
|
+
readonly kind: "defined-node";
|
|
2586
|
+
readonly key: TKey$1;
|
|
2587
|
+
readonly title: string;
|
|
2588
|
+
readonly description?: string;
|
|
2589
|
+
create<TConfigItemJson = TInputJson$1>(config: DefinedNodeConfigInput<TConfig, TConfigItemJson>, name?: string, id?: string): RunnableNodeConfig<TInputJson$1, TOutputJson$1>;
|
|
2590
|
+
register(context: {
|
|
2591
|
+
registerNode<TValue>(token: TypeToken<TValue>, implementation?: TypeToken<TValue>): void;
|
|
2592
|
+
}): void;
|
|
2593
|
+
}
|
|
2594
|
+
/**
|
|
2595
|
+
* Plugin / DSL-friendly node: per-item `execute` with optional {@link RunnableNodeConfig.inputSchema}.
|
|
2596
|
+
*/
|
|
2597
|
+
interface DefineNodeOptions<TKey$1 extends string, TConfig extends CredentialJsonRecord, TInputJson$1, TOutputJson$1, TBindings extends DefinedNodeCredentialBindings | undefined = undefined> {
|
|
2598
|
+
readonly key: TKey$1;
|
|
2599
|
+
readonly title: string;
|
|
2600
|
+
readonly description?: string;
|
|
2601
|
+
/**
|
|
2602
|
+
* Canvas icon for this node (same contract as `NodeConfigBase.icon` on runnable configs).
|
|
2603
|
+
* The Next host resolves Lucide (`lucide:…`), built-in SVGs (`builtin:…`), Simple Icons (`si:…`), and image URLs (`https:`, `data:`, `/…`).
|
|
2604
|
+
*/
|
|
2605
|
+
readonly icon?: string;
|
|
2606
|
+
/** Default values / form hints for **static** node configuration (credentials, retry, IDs), not per-item payload. */
|
|
2607
|
+
readonly input?: Readonly<Record<keyof TConfig & string, unknown>>;
|
|
2608
|
+
readonly configSchema?: z.ZodType<TConfig>;
|
|
2609
|
+
readonly credentials?: TBindings;
|
|
2610
|
+
/**
|
|
2611
|
+
* Validates **`input`** (engine also accepts `inputSchema` on the node class).
|
|
2612
|
+
*/
|
|
2613
|
+
readonly inputSchema?: ZodType<TInputJson$1>;
|
|
2614
|
+
/** Preserve inbound `item.binary` when `execute` returns plain JSON or item-shaped results without `binary`. */
|
|
2615
|
+
readonly keepBinaries?: boolean;
|
|
2616
|
+
/**
|
|
2617
|
+
* Static configuration summary surfaced in the workflow inspector — see
|
|
2618
|
+
* {@link import("../contracts/workflowTypes").NodeConfigBase.inspectorSummary}.
|
|
2619
|
+
*
|
|
2620
|
+
* Receives the static config; returns 2–6 short label/value pairs (or `undefined` to skip).
|
|
2621
|
+
*/
|
|
2622
|
+
readonly inspectorSummary?: (args: Readonly<{
|
|
2623
|
+
config: TConfig;
|
|
2624
|
+
}>) => ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
2625
|
+
execute(args: DefineNodeExecuteArgs<TConfig, TInputJson$1>, context: DefinedNodeRunContext<TConfig, TBindings>): MaybePromise<TOutputJson$1>;
|
|
2626
|
+
}
|
|
2627
|
+
/**
|
|
2628
|
+
* Batch-oriented defined node: `run` receives all item JSON once (last item in activation); emits one output per input row.
|
|
2629
|
+
*/
|
|
2630
|
+
interface DefineBatchNodeOptions<TKey$1 extends string, TConfig extends CredentialJsonRecord, TInputJson$1, TOutputJson$1, TBindings extends DefinedNodeCredentialBindings | undefined = undefined> {
|
|
2631
|
+
readonly key: TKey$1;
|
|
2632
|
+
readonly title: string;
|
|
2633
|
+
readonly description?: string;
|
|
2634
|
+
readonly icon?: string;
|
|
2635
|
+
readonly input?: Readonly<Record<keyof TConfig & string, unknown>>;
|
|
2636
|
+
readonly configSchema?: z.ZodType<TConfig>;
|
|
2637
|
+
readonly credentials?: TBindings;
|
|
2638
|
+
readonly inspectorSummary?: (args: Readonly<{
|
|
2639
|
+
config: TConfig;
|
|
2640
|
+
}>) => ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
2641
|
+
run(items: ReadonlyArray<TInputJson$1>, context: DefinedNodeRunContext<TConfig, TBindings>): MaybePromise<ReadonlyArray<TOutputJson$1>>;
|
|
2642
|
+
}
|
|
2643
|
+
declare function defineNode<TKey$1 extends string, TConfig extends CredentialJsonRecord, TInputJson$1, TOutputJson$1, TBindings extends DefinedNodeCredentialBindings | undefined = undefined>(options: DefineNodeOptions<TKey$1, TConfig, TInputJson$1, TOutputJson$1, TBindings>): DefinedNode<TKey$1, TConfig, TInputJson$1, TOutputJson$1, TBindings>;
|
|
2644
|
+
declare function defineBatchNode<TKey$1 extends string, TConfig extends CredentialJsonRecord, TInputJson$1, TOutputJson$1, TBindings extends DefinedNodeCredentialBindings | undefined = undefined>(options: DefineBatchNodeOptions<TKey$1, TConfig, TInputJson$1, TOutputJson$1, TBindings>): DefinedNode<TKey$1, TConfig, TInputJson$1, TOutputJson$1, TBindings>;
|
|
2645
|
+
//#endregion
|
|
2646
|
+
//#region src/authoring/defineHumanApprovalNode.types.d.ts
|
|
2647
|
+
/**
|
|
2648
|
+
* Decision shape merged into `item.json` after a HITL approval task resolves.
|
|
2649
|
+
*
|
|
2650
|
+
* - `"approved"` / `"rejected"` — from a human decision (uses `approvedPredicate`).
|
|
2651
|
+
* - `"timed-out"` — timeout fired with `onTimeout: "halt"`.
|
|
2652
|
+
* - `"auto-accepted"` — timeout fired with `onTimeout: "auto-accept"`.
|
|
2653
|
+
*/
|
|
2654
|
+
interface HumanApprovalDecisionResult {
|
|
2655
|
+
readonly status: "approved" | "rejected" | "timed-out" | "auto-accepted";
|
|
2656
|
+
/** Identity of the person who decided; absent for automated outcomes. */
|
|
2657
|
+
readonly actor?: HumanTaskActor;
|
|
2658
|
+
/** ISO 8601 timestamp of the decision. */
|
|
2659
|
+
readonly decidedAt?: Date;
|
|
2660
|
+
/** Optional free-text note from the reviewer. */
|
|
2661
|
+
readonly note?: string;
|
|
2662
|
+
/**
|
|
2663
|
+
* Full raw decision payload (only present for `"approved"` / `"rejected"`).
|
|
2664
|
+
* Shape is determined by the channel's `decisionSchema`.
|
|
2665
|
+
*/
|
|
2666
|
+
readonly payload?: Record<string, unknown>;
|
|
2667
|
+
}
|
|
2668
|
+
/**
|
|
2669
|
+
* Output item shape emitted by a `defineHumanApprovalNode`-based node.
|
|
2670
|
+
* Original `item.json` fields are preserved and `decision` is merged in.
|
|
2671
|
+
* If the input `item.json` already contained a `decision` key it is **overwritten**.
|
|
2672
|
+
*/
|
|
2673
|
+
type HumanApprovalOutputJson<TInputJson$1 extends Record<string, unknown>> = TInputJson$1 & {
|
|
2674
|
+
readonly decision: HumanApprovalDecisionResult;
|
|
2675
|
+
};
|
|
2676
|
+
/**
|
|
2677
|
+
* Extends {@link DefinedNode} with the `humanApprovalToolBehavior` metadata marker.
|
|
2678
|
+
* Story 10 reads this field when attaching the node as an agent tool.
|
|
2679
|
+
*/
|
|
2680
|
+
interface DefinedHumanApprovalNode<TKey$1 extends string, TConfig extends CredentialJsonRecord, TInputJson$1 extends Record<string, unknown>, TBindings extends DefinedNodeCredentialBindings | undefined = undefined> extends DefinedNode<TKey$1, TConfig, TInputJson$1, HumanApprovalOutputJson<TInputJson$1>, TBindings> {
|
|
2681
|
+
/**
|
|
2682
|
+
* Behavior hint consumed by the agent runtime (story 10) when this node is attached as a tool.
|
|
2683
|
+
* `"return"` (default) — return the rejection to the agent as a tool result.
|
|
2684
|
+
* `"halt"` — halt the agent run on rejection.
|
|
2685
|
+
*
|
|
2686
|
+
* Standalone DSL usage ignores this field.
|
|
2687
|
+
*/
|
|
2688
|
+
readonly humanApprovalToolBehavior: {
|
|
2689
|
+
onRejected: "return" | "halt";
|
|
2690
|
+
};
|
|
2691
|
+
}
|
|
2692
|
+
/**
|
|
2693
|
+
* Returns `true` when `node` was created by {@link defineHumanApprovalNode}.
|
|
2694
|
+
* Uses the `humanApprovalToolBehavior` typed field as the discriminant.
|
|
2695
|
+
*/
|
|
2696
|
+
declare function isHumanApprovalNode(node: unknown): node is DefinedHumanApprovalNode<string, Record<string, unknown>, Record<string, unknown>, undefined>;
|
|
2697
|
+
/**
|
|
2698
|
+
* Authoring helper that compiles a HITL approval channel down to a regular
|
|
2699
|
+
* {@link defineNode}-backed node with `SuspensionRequest` semantics.
|
|
2700
|
+
*
|
|
2701
|
+
* **Fast-forward decision semantics:**
|
|
2702
|
+
* - On the first `execute` call (no `ctx.resumeContext`): throws a `SuspensionRequest`
|
|
2703
|
+
* that calls the author's `deliver`. The engine persists the suspension and continues.
|
|
2704
|
+
* - On resume (`ctx.resumeContext` set): calls `onDecision`/`onTimeout` as appropriate,
|
|
2705
|
+
* merges a `decision` key into `item.json`, and returns an item with the original
|
|
2706
|
+
* `binary` map passed by reference (no copy).
|
|
2707
|
+
*
|
|
2708
|
+
* **Output shape per item:**
|
|
2709
|
+
* ```ts
|
|
2710
|
+
* // Input: { json: { invoiceId: 42 }, binary?: {...} }
|
|
2711
|
+
* // Output: { json: { invoiceId: 42, decision: { status: "approved", actor, decidedAt } }, binary: <unchanged> }
|
|
2712
|
+
* ```
|
|
2713
|
+
* If `item.json` already has a `decision` key it is **overwritten**. Namespace as
|
|
2714
|
+
* needed if your schema reserves that key for another purpose.
|
|
2715
|
+
*
|
|
2716
|
+
* **Predicate persistence:**
|
|
2717
|
+
* The `approvedPredicate` function is NOT serialized to the suspension record (except
|
|
2718
|
+
* as an audit-only string via `toString()`). On resume, the workflow definition is
|
|
2719
|
+
* reloaded from code at process start and the predicate closure is rebuilt naturally.
|
|
2720
|
+
* If a deploy ships a changed predicate between suspend and resume, the *new* predicate
|
|
2721
|
+
* runs — document this in your runbook when the predicate carries business logic that
|
|
2722
|
+
* may change across deploys.
|
|
2723
|
+
*
|
|
2724
|
+
* @example
|
|
2725
|
+
* ```ts
|
|
2726
|
+
* export const slackApprovalNode = defineHumanApprovalNode({
|
|
2727
|
+
* key: "my-plugin.slackApproval",
|
|
2728
|
+
* title: "Slack Approval",
|
|
2729
|
+
* channel: "slack",
|
|
2730
|
+
* configSchema: z.object({ channel: z.string(), message: z.string() }),
|
|
2731
|
+
* decisionSchema: z.object({ approved: z.boolean(), note: z.string().optional() }),
|
|
2732
|
+
*
|
|
2733
|
+
* async deliver({ task, config, item }, ctx) {
|
|
2734
|
+
* const ts = await postSlackMessage(config.channel, `Approve? <${task.resumeUrl}>`);
|
|
2735
|
+
* return { channel: config.channel, ts };
|
|
2736
|
+
* },
|
|
2737
|
+
*
|
|
2738
|
+
* async onDecision({ decision, actor, delivery }, ctx) {
|
|
2739
|
+
* await updateSlackMessage(delivery.channel, delivery.ts, decision.approved ? "✅" : "❌");
|
|
2740
|
+
* },
|
|
2741
|
+
* });
|
|
2742
|
+
* ```
|
|
2743
|
+
*/
|
|
2744
|
+
declare function defineHumanApprovalNode<TKey$1 extends string, TConfig extends CredentialJsonRecord, TInputJson$1 extends Record<string, unknown>, TDecision extends Record<string, unknown>, TDelivery extends JsonValue, TBindings extends DefinedNodeCredentialBindings | undefined = undefined>(opts: {
|
|
2745
|
+
key: TKey$1;
|
|
2746
|
+
title: string;
|
|
2747
|
+
description?: string;
|
|
2748
|
+
icon?: string;
|
|
2749
|
+
channel: string;
|
|
2750
|
+
configSchema: ZodType<TConfig>;
|
|
2751
|
+
inputSchema?: ZodType<TInputJson$1>;
|
|
2752
|
+
decisionSchema: ZodType<TDecision>;
|
|
2753
|
+
credentials?: TBindings;
|
|
2754
|
+
/**
|
|
2755
|
+
* Custom predicate that decides whether a decision counts as "approved".
|
|
2756
|
+
* When omitted, the helper checks if `decisionSchema` is a Zod object with an
|
|
2757
|
+
* `approved: boolean` field; if so it uses `decision.approved === true`.
|
|
2758
|
+
* If neither holds, `defineHumanApprovalNode` throws at **definition time** (not runtime).
|
|
2759
|
+
*/
|
|
2760
|
+
approvedPredicate?: (decision: TDecision) => boolean;
|
|
2761
|
+
/** Default suspension timeout. Defaults to `"24h"`. */
|
|
2762
|
+
defaultTimeout?: Duration;
|
|
2763
|
+
/** What to do when the task times out. Defaults to `"halt"`. */
|
|
2764
|
+
defaultOnTimeout?: "halt" | "auto-accept";
|
|
2765
|
+
inspectorSummary?: (config: TConfig) => ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
2766
|
+
deliver: (args: {
|
|
2767
|
+
task: HumanTaskHandle;
|
|
2768
|
+
config: TConfig;
|
|
2769
|
+
input: TInputJson$1;
|
|
2770
|
+
item: Item;
|
|
2771
|
+
}, ctx: ExecutionContext) => Promise<TDelivery>;
|
|
2772
|
+
onDecision?: (args: {
|
|
2773
|
+
decision: TDecision;
|
|
2774
|
+
actor: HumanTaskActor;
|
|
2775
|
+
task: HumanTaskHandle;
|
|
2776
|
+
delivery: TDelivery;
|
|
2777
|
+
item: Item;
|
|
2778
|
+
}, ctx: ExecutionContext) => Promise<void>;
|
|
2779
|
+
onTimeout?: (args: {
|
|
2780
|
+
task: HumanTaskHandle;
|
|
2781
|
+
delivery: TDelivery;
|
|
2782
|
+
item: Item;
|
|
2783
|
+
policy: "halt" | "auto-accept";
|
|
2784
|
+
}, ctx: ExecutionContext) => Promise<void>;
|
|
2785
|
+
}): DefinedHumanApprovalNode<TKey$1, TConfig, TInputJson$1, TBindings>;
|
|
2786
|
+
//#endregion
|
|
2370
2787
|
//#region src/workflow/dsl/workflowBuilderTypes.d.ts
|
|
2371
2788
|
type AnyRunnableNodeConfig = RunnableNodeConfig<any, any>;
|
|
2372
2789
|
type AnyTriggerNodeConfig = TriggerNodeConfig<any>;
|
|
@@ -2412,6 +2829,25 @@ declare class ChainCursor<TCurrentJson> {
|
|
|
2412
2829
|
thenIntoInputHints<TOutputJson$1, TConfig extends RunnableNodeConfig<any, TOutputJson$1>>(config: TConfig): ChainCursor<RunnableNodeOutputJson<TConfig>>;
|
|
2413
2830
|
readonly when: ChainCursorWhenOverloads<TCurrentJson>;
|
|
2414
2831
|
route<TNextJson$1>(branches: Readonly<Record<OutputPortKey, (branch: ChainCursor<TCurrentJson>) => ChainCursor<TNextJson$1> | undefined>>): ChainCursor<TNextJson$1>;
|
|
2832
|
+
/**
|
|
2833
|
+
* Chainable shorthand for `.then(node.create(config, metadata?.name, metadata?.nodeId))`.
|
|
2834
|
+
*
|
|
2835
|
+
* Signals to readers that this step suspends the run and waits for a human decision.
|
|
2836
|
+
* Throws at workflow-build time if `node` was not created via `defineHumanApprovalNode`.
|
|
2837
|
+
*
|
|
2838
|
+
* @example
|
|
2839
|
+
* ```ts
|
|
2840
|
+
* workflow
|
|
2841
|
+
* .trigger(...)
|
|
2842
|
+
* .humanApproval(inboxApproval, { title: "Approve?", body: "...", priority: "normal" })
|
|
2843
|
+
* .then(nextStep.create(...))
|
|
2844
|
+
* .build();
|
|
2845
|
+
* ```
|
|
2846
|
+
*/
|
|
2847
|
+
humanApproval<TKey$1 extends string, TConfig extends Record<string, unknown>, TBindings extends DefinedNodeCredentialBindings | undefined = undefined>(node: DefinedHumanApprovalNode<TKey$1, TConfig, TCurrentJson & Record<string, unknown>, TBindings>, config: TConfig, metadata?: {
|
|
2848
|
+
name?: string;
|
|
2849
|
+
nodeId?: string;
|
|
2850
|
+
}): ChainCursor<HumanApprovalOutputJson<TCurrentJson & Record<string, unknown>>>;
|
|
2415
2851
|
build(): WorkflowDefinition;
|
|
2416
2852
|
private resolveSharedInputPortHint;
|
|
2417
2853
|
}
|
|
@@ -2554,5 +2990,5 @@ declare class DefaultWorkflowGraphFactory implements WorkflowGraphFactory {
|
|
|
2554
2990
|
create(def: WorkflowDefinition): WorkflowGraph;
|
|
2555
2991
|
}
|
|
2556
2992
|
//#endregion
|
|
2557
|
-
export {
|
|
2558
|
-
//# sourceMappingURL=index-
|
|
2993
|
+
export { ExecutionPayloadPolicyFields as $, CredentialFieldSchema as $a, TriggerSetupContext as $i, BinaryPreviewKind as $n, nodeRef as $r, PersistedRunState as $t, DefinedNodeCredentialAccessors as A, TelemetrySpanScope as Aa, NodeActivationReceipt as Ai, delay as An, RunId as Ar, DEFAULT_ASSERTION_PASS_THRESHOLD as At, RetryPolicy as B, CostTrackingPriceQuote as Ba, NodeExecutor as Bi, ENGINE_EXECUTION_LIMITS_DEFAULTS as Bn, WorkflowErrorContext as Br, CurrentStateExecutionRequest as Bt, defineHumanApprovalNode as C, TelemetryAttributePrimitive as Ca, HumanTaskHandle as Ci, DependencyContainer$1 as Cn, InputPortKey as Co, NodeRef as Cr, ItemExprResolvedContext as Ct, DefineNodeOptions as D, TelemetryScope as Da, LiveWorkflowRepository as Di, RegistrationOptions as Dn, PersistedTokenId as Do, PersistedRunPolicySnapshot as Dr, resolveItemExprsInUnknown as Dt, DefineNodeExecuteArgs as E, TelemetryMetricRecord as Ea, ItemNode as Ei, Lifecycle as En, OutputPortKey as Eo, ParentExecutionRef as Er, resolveItemExprsForExecution as Et, defineNode as F, NoOpExecutionTelemetry as Fa, NodeExecutionContext as Fi, instancePerContainerCachingFactory as Fn, TriggerNodeConfig as Fr, AgentMcpToolMap as Ft, isPortsEmission as G, CostTrackingUsageRecord as Ga, ResumeContext as Gi, RunEventSubscription as Gn, WorkflowNodeConnection as Gr, NodeExecutionStatus as Gt, getOriginIndexFromItem as H, CostTrackingTelemetryAttributeNames as Ha, PersistedTriggerSetupState as Hi, EngineExecutionLimitsPolicyConfig as Hn, WorkflowErrorHandlerSpec as Hr, ExecutionFrontierPlan as Ht, RunFinishedAtFactory as I, NoOpNodeExecutionTelemetry as Ia, NodeExecutionRequest as Ii, predicateAwareClassFactory as In, TriggerNodeOutputJson as Ir, NeedsReconsentEvent as It, McpServerTransport as J, AnyCredentialType as Ja, SuspensionRequest as Ji, TestSuiteRunId as Jn, WorkflowStoragePolicyDecisionArgs as Jr, PendingResumeEntry as Jt, isUnbrandedPortsEmissionShape as K, CollectionStore as Ka, RunnableNode as Ki, TestCaseRunStatus as Kn, WorkflowPolicyRuntimeDefaults as Kr, NodeInputsByPort as Kt, NoOpCostTrackingTelemetryFactory as L, NoOpTelemetrySpanScope as La, NodeExecutionRequestHandler as Li, registry as Ln, TriggerNodeSetupState as Lr, ConnectionInvocationAppendArgs as Lt, DefinedNodeCredentialBindings as M, GenAiTelemetryAttributeNames as Ma, NodeActivationRequestBase as Mi, injectAll as Mn, RunnableNodeConfig as Mr, NoOpAgentMcpIntegration as Mt, DefinedNodeRunContext as N, CodemationTelemetryAttributeNames as Na, NodeActivationScheduler as Ni, injectable as Nn, RunnableNodeInputJson as Nr, AgentBindError as Nt, DefinedNode as O, TelemetrySpanEnd as Oa, MultiInputNode as Oi, TypeToken as On, WorkflowId as Oo, RunDataFactory as Or, AssertionResult as Ot, defineBatchNode as P, NoOpExecutionTelemetryFactory as Pa, NodeBinaryAttachmentService as Pi, instanceCachingFactory as Pn, RunnableNodeOutputJson as Pr, AgentMcpIntegration as Pt, ExecutionInstanceId as Q, CredentialBindingKey as Qa, TriggerRuntimeDiagnostics as Qi, BinaryAttachment as Qn, branchRef as Qr, PersistedRunSchedulingState as Qt, NoOpCostTrackingTelemetry as R, NoOpTelemetryArtifactReference as Ra, NodeExecutionScheduler as Ri, singleton as Rn, UpstreamRefPlaceholder as Rr, ConnectionInvocationId as Rt, HumanApprovalOutputJson as S, TelemetryArtifactReference as Sa, HumanTaskActor as Si, Container as Sn, PollingTriggerDedupWindow as So, NodeOutputs as Sr, ItemExprContext as St, DefineBatchNodeOptions as T, TelemetryChildSpanStart as Ta, HumanTaskSubject as Ti, InjectionToken$1 as Tn, NodeId as To, PairedItemRef as Tr, itemExpr as Tt, PortsEmission as U, CostTrackingTelemetryFactory as Ua, PollingTriggerHandle as Ui, RunEvent as Un, WorkflowGraph as Ur, NodeExecutionError as Ut, NoRetryPolicy as V, CostTrackingTelemetry as Va, NodeResolver as Vi, EngineExecutionLimitsPolicy as Vn, WorkflowErrorHandler as Vr, EngineRunCounters as Vt, emitPorts as W, CostTrackingTelemetryMetricNames as Wa, PreparedNodeActivationDispatch as Wi, RunEventBus as Wn, WorkflowGraphFactory as Wr, NodeExecutionSnapshot as Wt, ConnectionInvocationKind as X, CredentialAuthDefinition as Xa, TriggerCleanupHandle as Xi, TestTriggerSetupContext as Xn, WorkflowStoragePolicyResolver as Xr, PersistedMutableRunState as Xt, BatchId as Y, CredentialAdvancedSectionPresentation as Ya, TestableTriggerNode as Yi, TestTriggerNodeConfig as Yn, WorkflowStoragePolicyMode as Yr, PersistedMutableNodeState as Yt, ExecutionInstanceDto as Z, CredentialBinding as Za, TriggerNode as Zi, ActivationIdFactory as Zn, WorkflowStoragePolicySpec as Zr, PersistedRunControlState as Zt, BranchStepsArg as _, WorkflowActivationPolicy as _a, EngineHost as _i, RunTestContext as _n, CredentialTypeRegistry as _o, NodeIdRef as _r, Param as _t, ConnectionNodeIdFactory as a, WorkflowRunnerResolver as aa, FixedRetryPolicySpec as ai, RunCompletionNotifier as an, CredentialJsonRecord as ao, JsonArray as ar, PersistedRunWorkItemRecord as at, DefinedHumanApprovalNode as b, NodeExecutionTelemetry as ba, ExecutionContext as bi, WorkflowExecutionPruneRepository as bn, NoOpPollingTriggerLogger as bo, NodeKind as br, ItemExprArgs as bt, WorkflowDefinitionError as c, WorkflowSnapshotResolver as ca, BinaryAttachmentCreateRequest as ci, RunExecutionOptions as cn, CredentialOAuth2ScopesFromPublicConfig as co, JsonPrimitive as cr, RunSlotProjectionState as ct, WhenBuilder as d, WebhookControlSignal as da, BinaryStorageReadResult as di, RunQueueEntry as dn, CredentialSessionFactoryArgs as do, NodeActivationId as dr, WorkItemStatus as dt, TriggerSetupStateFor as ea, runnableNodeInputType as ei, PersistedSuspensionEntry as en, CredentialHealth as eo, Edge as er, PayloadStorageKind as et, AnyRunnableNodeConfig as f, WebhookInvocationMatch as fa, BinaryStorageStatResult as fi, RunResult as fn, CredentialSessionService as fo, NodeConfigBase as fr, WorkflowDetailSelectionState as ft, BranchOutputGuard as g, AllWorkflowsActiveWorkflowActivationPolicy as ga, EngineDeps as gi, RunSummary as gn, CredentialTypeId as go, NodeErrorHandlerSpec as gr, Expr as gt, BranchMoreArgs as h, WebhookTriggerRoutingDiagnostics as ha, Duration as hi, RunStopCondition as hn, CredentialTypeDefinition as ho, NodeErrorHandlerArgs as hr, CostCatalogEntry as ht, NodeIterationIdFactory as i, WorkflowRepository as ia, ExponentialRetryPolicySpec as ii, PinnedNodeOutputsByPort as in, CredentialInstanceRecord as io, Items as ir, PersistedRunWorkItemKind as it, DefinedNodeCredentialBinding as j, CodemationTelemetryMetricNames as ja, NodeActivationRequest as ji, inject as jn, RunIdFactory as jr, deriveAssertionPassed as jt, DefinedNodeConfigInput as k, TelemetrySpanEventRecord as ka, NodeActivationContinuation as ki, container$1 as kn, RunDataSnapshot as kr, AssertionResultProvenance as kt, WorkflowBuilder as l, HttpMethod as la, BinaryBody as li, RunHaltReason as ln, CredentialRequirement as lo, JsonValue as lr, SlotExecutionStateDto as lt, BooleanWhenOverloads as m, WebhookTriggerResolution as ma, BinaryStorageWriteResult as mi, RunStatus as mn, CredentialType as mo, NodeErrorHandler as mr, CostCatalog as mt, WorkflowExecutableNodeClassifierFactory as n, TriggerTestItemsContext as na, triggerNodeOutputType as ni, PersistedWorkflowSnapshotNode as nn, CredentialHealthTester as no, Item as nr, PersistedExecutionInstanceRecord as nt, ConnectionInvocationIdFactory as o, WorkflowRunnerService as oa, NoneRetryPolicySpec as oi, RunCurrentState as on, CredentialMaterialSourceKind as oo, JsonNonArray as or, RunIterationDto as ot, AnyTriggerNodeConfig as p, WebhookTriggerMatcher as pa, BinaryStorageWriteRequest as pi, RunStateResetRequest as pn, CredentialSetupStatus as po, NodeDefinition as pr, WorkflowRunDetailDto as pt, McpServerDeclaration as q, CollectionsContext as qa, RunnableNodeExecuteArgs as qi, TestSuiteRunStatus as qn, WorkflowPrunePolicySpec as qr, PendingNodeExecution as qt, WorkflowExecutableNodeClassifier as r, WorkflowNodeInstanceFactory as ra, triggerNodeSetupStateType as ri, PersistedWorkflowTokenRegistryLike as rn, CredentialInstanceId as ro, ItemBinary as rr, PersistedRunSlotProjectionRecord as rt, NodeIdSlugifier as s, WorkflowSnapshotFactory as sa, RetryPolicySpec as si, RunEventPublisherDeps as sn, CredentialOAuth2AuthDefinition as so, JsonObject as sr, RunRevision as st, DefaultWorkflowGraphFactory as t, TriggerSetupStateRepository as ta, runnableNodeOutputType as ti, PersistedWorkflowSnapshot as tn, CredentialHealthStatus as to, ExecutionMode as tr, PersistedExecutionInstanceKind as tt, ChainCursor as u, TriggerInstanceId as ua, BinaryStorage as ui, RunPruneCandidate as un, CredentialSessionFactory as uo, MutableRunData as ur, WorkItemId as ut, StepSequenceOutput as v, ExecutionTelemetry as va, ExecutableTriggerNode as vi, WebhookRunResult as vn, CredentialUnboundError as vo, NodeInspectorSummaryRow as vr, ParamDeep as vt, isHumanApprovalNode as w, TelemetryAttributes as wa, HumanTaskId as wi, Disposable as wn, NodeConnectionName as wo, NodeSchedulerDecision as wr, isItemExpr as wt, HumanApprovalDecisionResult as x, TelemetryArtifactAttachment as xa, ExecutionContextFactory as xi, WorkflowExecutionRepository as xn, PollingTriggerLogger as xo, NodeOffloadPolicy as xr, ItemExprCallback as xt, ValidStepSequence as y, ExecutionTelemetryFactory as ya, ExecutionBinaryService as yi, WorkflowExecutionListingRepository as yn, OAuth2ProviderFromPublicConfig as yo, NodeIterationId as yr, ItemExpr as yt, ExpRetryPolicy as z, CostTrackingComponent as za, NodeExecutionStatePublisher as zi, CoreTokens as zn, WorkflowDefinition as zr, ConnectionInvocationRecord as zt };
|
|
2994
|
+
//# sourceMappingURL=index-CSKKuK60.d.ts.map
|