@codemation/core 0.0.5 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{InMemoryLiveWorkflowRepository-DL7LmC9S.d.ts → InMemoryLiveWorkflowRepository-DxoualoC.d.ts} +6 -2
- package/dist/{InMemoryLiveWorkflowRepository-D6eiiXxF.d.cts → InMemoryLiveWorkflowRepository-orY1VsWG.d.cts} +6 -2
- package/dist/{RunIntentService-NKobsfMQ.d.cts → RunIntentService-ByuUYsAL.d.cts} +8 -3
- package/dist/{RunIntentService-BFVbsOcg.js → RunIntentService-CYnn140t.js} +9 -4
- package/dist/RunIntentService-CYnn140t.js.map +1 -0
- package/dist/{RunIntentService-2ivFmNQh.cjs → RunIntentService-DlQH5eZ2.cjs} +9 -4
- package/dist/RunIntentService-DlQH5eZ2.cjs.map +1 -0
- package/dist/{WorkflowSnapshotCodec-DTdWkoW_.d.cts → WorkflowSnapshotCodec-DSEzKyt3.d.cts} +2 -2
- package/dist/bootstrap/index.cjs +133 -4
- package/dist/bootstrap/index.cjs.map +1 -1
- package/dist/bootstrap/index.d.cts +4 -3
- package/dist/bootstrap/index.d.ts +3 -2
- package/dist/bootstrap/index.js +133 -4
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/{index-9g6Pfe9Z.d.ts → index-CTjfVHJh.d.ts} +8 -3
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/testing.d.cts +2 -2
- package/dist/testing.d.ts +1 -1
- package/package.json +6 -1
- package/src/bootstrap/runtime/EngineRuntimeRegistrar.ts +10 -2
- package/src/contracts/runtimeTypes.ts +5 -0
- package/src/execution/NodeActivationRequestComposer.ts +15 -4
- package/src/orchestration/Engine.ts +12 -1
- package/src/orchestration/NodeExecutionRequestHandlerService.ts +179 -0
- package/src/runtime/EngineFactory.ts +13 -0
- package/dist/EngineExecutionLimitsPolicy-8MEFIYx1.d.cts +0 -160
- package/dist/EngineExecutionLimitsPolicy-BWAXW9D6.d.cts +0 -160
- package/dist/EngineExecutionLimitsPolicy-Bp8PS1Ss.d.cts +0 -159
- package/dist/EngineExecutionLimitsPolicy-CLxcN-D2.d.ts +0 -159
- package/dist/EngineExecutionLimitsPolicy-DZXuix51.d.ts +0 -160
- package/dist/EngineExecutionLimitsPolicy-Gfz6ngFd.d.ts +0 -160
- package/dist/EngineFactory-CBnntY3J.cjs +0 -3152
- package/dist/EngineFactory-CBnntY3J.cjs.map +0 -1
- package/dist/EngineFactory-Cwn3R2YA.js +0 -3087
- package/dist/EngineFactory-Cwn3R2YA.js.map +0 -1
- package/dist/EngineFactory-DWCnNocp.js +0 -3063
- package/dist/EngineFactory-DWCnNocp.js.map +0 -1
- package/dist/EngineFactory-DhPFou4p.cjs +0 -3188
- package/dist/EngineFactory-DhPFou4p.cjs.map +0 -1
- package/dist/EngineFactory-l_9xmBtv.cjs +0 -3190
- package/dist/EngineFactory-l_9xmBtv.cjs.map +0 -1
- package/dist/EngineFactory-w-aOWuqh.js +0 -3089
- package/dist/EngineFactory-w-aOWuqh.js.map +0 -1
- package/dist/InMemoryLiveWorkflowRepository-1J9MHN_I.js +0 -18
- package/dist/InMemoryLiveWorkflowRepository-1J9MHN_I.js.map +0 -1
- package/dist/InMemoryLiveWorkflowRepository-CULNqv96.d.ts +0 -1300
- package/dist/InMemoryLiveWorkflowRepository-D7l8cjdZ.d.cts +0 -1130
- package/dist/InMemoryLiveWorkflowRepository-jnv-OnOP.d.ts +0 -1300
- package/dist/InMemoryLiveWorkflowRepository-xny1_Z6i.cjs +0 -24
- package/dist/InMemoryLiveWorkflowRepository-xny1_Z6i.cjs.map +0 -1
- package/dist/InMemoryLiveWorkflowRepository-xr7b4kvi.d.ts +0 -1338
- package/dist/InMemoryWorkflowCatalog-BIdFpwbK.d.ts +0 -1205
- package/dist/InMemoryWorkflowCatalog-BW00_3N3.d.cts +0 -12
- package/dist/InMemoryWorkflowCatalog-BiYHGoPw.cjs +0 -24
- package/dist/InMemoryWorkflowCatalog-BiYHGoPw.cjs.map +0 -1
- package/dist/InMemoryWorkflowCatalog-BrG0ApMO.d.cts +0 -1115
- package/dist/InMemoryWorkflowCatalog-BzrAr--Y.js +0 -139
- package/dist/InMemoryWorkflowCatalog-BzrAr--Y.js.map +0 -1
- package/dist/InMemoryWorkflowCatalog-C-EJlJ7y.d.cts +0 -1120
- package/dist/InMemoryWorkflowCatalog-C4482bpw.cjs +0 -24
- package/dist/InMemoryWorkflowCatalog-C4482bpw.cjs.map +0 -1
- package/dist/InMemoryWorkflowCatalog-CZ0kZpOv.d.ts +0 -1289
- package/dist/InMemoryWorkflowCatalog-C_ACeLyW.d.cts +0 -1119
- package/dist/InMemoryWorkflowCatalog-CiHWIu5E.d.cts +0 -12
- package/dist/InMemoryWorkflowCatalog-CkH7gkya.js +0 -18
- package/dist/InMemoryWorkflowCatalog-CkH7gkya.js.map +0 -1
- package/dist/InMemoryWorkflowCatalog-CnpZVJM9.d.ts +0 -1205
- package/dist/InMemoryWorkflowCatalog-Cu68S8YR.js +0 -18
- package/dist/InMemoryWorkflowCatalog-Cu68S8YR.js.map +0 -1
- package/dist/InMemoryWorkflowCatalog-D2w9nMj2.cjs +0 -151
- package/dist/InMemoryWorkflowCatalog-D2w9nMj2.cjs.map +0 -1
- package/dist/InMemoryWorkflowCatalog-D5eMxEf7.js +0 -18
- package/dist/InMemoryWorkflowCatalog-D5eMxEf7.js.map +0 -1
- package/dist/InMemoryWorkflowCatalog-D5nCp2yZ.d.ts +0 -1267
- package/dist/InMemoryWorkflowCatalog-DIq0bjqN.d.ts +0 -12
- package/dist/InMemoryWorkflowCatalog-DLgaEaw_.d.ts +0 -1288
- package/dist/InMemoryWorkflowCatalog-DNBFdK-x.d.cts +0 -1120
- package/dist/InMemoryWorkflowCatalog-DQBkCzb7.cjs +0 -24
- package/dist/InMemoryWorkflowCatalog-DQBkCzb7.cjs.map +0 -1
- package/dist/InMemoryWorkflowCatalog-DS4-eX6i.d.cts +0 -1118
- package/dist/InMemoryWorkflowCatalog-DdVfy8MY.d.ts +0 -12
- package/dist/InMemoryWorkflowCatalog-DeVZu3g8.d.ts +0 -12
- package/dist/InMemoryWorkflowCatalog-GxkQjvt5.d.ts +0 -1200
- package/dist/InMemoryWorkflowCatalog-qaVRn1Lc.d.cts +0 -1115
- package/dist/InMemoryWorkflowCatalog-z1aIT4TC.d.cts +0 -12
- package/dist/InMemoryWorkflowRegistry-BBuOovLL.d.ts +0 -1007
- package/dist/InMemoryWorkflowRegistry-BIFnSl3k.d.ts +0 -1201
- package/dist/InMemoryWorkflowRegistry-BnGilthz.d.ts +0 -1137
- package/dist/InMemoryWorkflowRegistry-CEp5I8No.d.ts +0 -1146
- package/dist/InMemoryWorkflowRegistry-CHyMB9jW.d.cts +0 -976
- package/dist/InMemoryWorkflowRegistry-CUN7K86m.d.cts +0 -1061
- package/dist/InMemoryWorkflowRegistry-CVfHyELh.d.cts +0 -971
- package/dist/InMemoryWorkflowRegistry-CXXJrwAr.d.cts +0 -1052
- package/dist/InMemoryWorkflowRegistry-DDGfPTJy.d.ts +0 -1013
- package/dist/InMemoryWorkflowRegistry-DnYSOoT5.d.ts +0 -1120
- package/dist/InMemoryWorkflowRegistry-Dp5GiFF2.d.cts +0 -1035
- package/dist/InMemoryWorkflowRegistry-DypDBeOw.d.cts +0 -1116
- package/dist/InMemoryWorkflowRegistry-SzwJCAxT.d.ts +0 -1012
- package/dist/InMemoryWorkflowRegistry-jupvqyGc.d.cts +0 -977
- package/dist/InMemoryWorkflowRegistry-rAdKVWYT.d.ts +0 -1117
- package/dist/InProcessRetryRunner-BBNPkXjy.d.cts +0 -292
- package/dist/PersistedWorkflowSnapshotFactory-7RkOL3Kg.d.ts +0 -14
- package/dist/PersistedWorkflowSnapshotFactory-BmANa46W.cjs +0 -141
- package/dist/PersistedWorkflowSnapshotFactory-BmANa46W.cjs.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-Bwb_etSt.js +0 -118
- package/dist/PersistedWorkflowSnapshotFactory-Bwb_etSt.js.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-CRkKGNV6.js +0 -123
- package/dist/PersistedWorkflowSnapshotFactory-CRkKGNV6.js.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-CZolnGy5.js +0 -101
- package/dist/PersistedWorkflowSnapshotFactory-CZolnGy5.js.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-Ca_oysOv.cjs +0 -131
- package/dist/PersistedWorkflowSnapshotFactory-Ca_oysOv.cjs.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-CqIcShnX.js +0 -103
- package/dist/PersistedWorkflowSnapshotFactory-CqIcShnX.js.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-D-tBk4_G.js +0 -119
- package/dist/PersistedWorkflowSnapshotFactory-D-tBk4_G.js.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-D4cXl2e2.cjs +0 -131
- package/dist/PersistedWorkflowSnapshotFactory-D4cXl2e2.cjs.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-DINoP12r.cjs +0 -131
- package/dist/PersistedWorkflowSnapshotFactory-DINoP12r.cjs.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-DJAwSuHU.js +0 -103
- package/dist/PersistedWorkflowSnapshotFactory-DJAwSuHU.js.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-DSUjVCcf.cjs +0 -131
- package/dist/PersistedWorkflowSnapshotFactory-DSUjVCcf.cjs.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-DdHuhkDb.cjs +0 -107
- package/dist/PersistedWorkflowSnapshotFactory-DdHuhkDb.cjs.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-Dqc6NHis.js +0 -119
- package/dist/PersistedWorkflowSnapshotFactory-Dqc6NHis.js.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-Dxa2dSrw.cjs +0 -130
- package/dist/PersistedWorkflowSnapshotFactory-Dxa2dSrw.cjs.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-Ep79Ah1G.js +0 -123
- package/dist/PersistedWorkflowSnapshotFactory-Ep79Ah1G.js.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-GyLfRuiJ.js +0 -119
- package/dist/PersistedWorkflowSnapshotFactory-GyLfRuiJ.js.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-HTpBsBzn.js +0 -102
- package/dist/PersistedWorkflowSnapshotFactory-HTpBsBzn.js.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-LVmaaf3t.cjs +0 -141
- package/dist/PersistedWorkflowSnapshotFactory-LVmaaf3t.cjs.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-PZCpo2ZS.js +0 -119
- package/dist/PersistedWorkflowSnapshotFactory-PZCpo2ZS.js.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-UjQ1SJev.cjs +0 -109
- package/dist/PersistedWorkflowSnapshotFactory-UjQ1SJev.cjs.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-Y8kCrhcy.cjs +0 -109
- package/dist/PersistedWorkflowSnapshotFactory-Y8kCrhcy.cjs.map +0 -1
- package/dist/PersistedWorkflowSnapshotFactory-Z_nB-fmB.cjs +0 -108
- package/dist/PersistedWorkflowSnapshotFactory-Z_nB-fmB.cjs.map +0 -1
- package/dist/RunIntentService-1EE6N8ZL.cjs +0 -963
- package/dist/RunIntentService-1EE6N8ZL.cjs.map +0 -1
- package/dist/RunIntentService-2ivFmNQh.cjs.map +0 -1
- package/dist/RunIntentService-B0sUL5q-.js +0 -761
- package/dist/RunIntentService-B0sUL5q-.js.map +0 -1
- package/dist/RunIntentService-BFVbsOcg.js.map +0 -1
- package/dist/RunIntentService-BsBOwpVN.cjs +0 -1051
- package/dist/RunIntentService-BsBOwpVN.cjs.map +0 -1
- package/dist/RunIntentService-CSk3ETyn.js +0 -858
- package/dist/RunIntentService-CSk3ETyn.js.map +0 -1
- package/dist/RunIntentService-Ckn3u3tA.d.cts +0 -326
- package/dist/RunIntentService-DEo6GTTo.d.cts +0 -289
- package/dist/RunIntentService-DKrGtL0B.js +0 -782
- package/dist/RunIntentService-DKrGtL0B.js.map +0 -1
- package/dist/RunIntentService-DNOJc1R7.cjs +0 -942
- package/dist/RunIntentService-DNOJc1R7.cjs.map +0 -1
- package/dist/RunIntentService-Dq3pV53j.d.cts +0 -289
- package/dist/WorkflowSnapshotCodec-C3fuuS_R.d.cts +0 -22
- package/dist/WorkflowSnapshotCodec-CUudUo6f.js +0 -123
- package/dist/WorkflowSnapshotCodec-CUudUo6f.js.map +0 -1
- package/dist/WorkflowSnapshotCodec-CuCPQZTc.cjs +0 -129
- package/dist/WorkflowSnapshotCodec-CuCPQZTc.cjs.map +0 -1
- package/dist/WorkflowSnapshotCodec-DLiXQNvV.d.cts +0 -22
- package/dist/WorkflowSnapshotCodec-DNtdrZ7l.d.cts +0 -22
- package/dist/credentialTypes-B5h3dI7r.d.cts +0 -1107
- package/dist/credentialTypes-B9okPCVo.d.cts +0 -963
- package/dist/credentialTypes-BFL70rgZ.d.cts +0 -964
- package/dist/credentialTypes-BGkh1O07.d.ts +0 -1010
- package/dist/credentialTypes-BNLi4Q7u.d.ts +0 -1030
- package/dist/credentialTypes-CeSoZGj3.d.cts +0 -994
- package/dist/credentialTypes-CpHc32Ig.d.cts +0 -984
- package/dist/credentialTypes-D0m7MQQl.d.cts +0 -1107
- package/dist/credentialTypes-D4nL2sUd.d.ts +0 -1000
- package/dist/credentialTypes-DBYK2Qbu.d.ts +0 -999
- package/dist/credentialTypes-DMJVy0r1.d.ts +0 -1000
- package/dist/credentialTypes-DhUAjYQp.d.ts +0 -1020
- package/dist/credentialTypes-gGITj5KL.d.cts +0 -964
- package/dist/credentialTypes-r3KVBJBE.d.cts +0 -974
- package/dist/diTokens-ClO27tjK.cjs +0 -34
- package/dist/diTokens-ClO27tjK.cjs.map +0 -1
- package/dist/diTokens-CoHBkwG6.js +0 -28
- package/dist/diTokens-CoHBkwG6.js.map +0 -1
- package/dist/index-6Doxmfnd.d.ts +0 -857
- package/dist/index-AZ72Ej-K.d.ts +0 -920
- package/dist/index-BEk9V-q-.d.ts +0 -667
- package/dist/index-Bjt7_7oS.d.ts +0 -1192
- package/dist/index-CFGxsYXy.d.ts +0 -708
- package/dist/index-C_u8xFgn.d.ts +0 -690
- package/dist/index-CpbfsvOJ.d.ts +0 -1192
- package/dist/index-CsReNJN_.d.ts +0 -859
- package/dist/index-D5iNnXaW.d.ts +0 -667
- package/dist/index-DD_Eft1q.d.ts +0 -708
- package/dist/index-DiSYUe0G.d.ts +0 -1192
- package/dist/index-gIcH60sp.d.ts +0 -674
- package/dist/runtime-BIvd-1JA.cjs +0 -4112
- package/dist/runtime-BIvd-1JA.cjs.map +0 -1
- package/dist/runtime-D3eWKSQK.cjs +0 -3986
- package/dist/runtime-D3eWKSQK.cjs.map +0 -1
- package/dist/runtime-Dvp4xAjg.js +0 -3799
- package/dist/runtime-Dvp4xAjg.js.map +0 -1
- package/dist/runtime-vc76SSAa.js +0 -3685
- package/dist/runtime-vc76SSAa.js.map +0 -1
- package/dist/runtimeTypes-BK0b8SaG.d.cts +0 -884
- package/dist/runtimeTypes-CoYZkYQq.d.cts +0 -851
- package/dist/runtimeTypes-D-Pm0Uas.d.cts +0 -849
- package/dist/types-Cb5UK7Y6.d.ts +0 -857
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
import { $n as RunExecutionOptions, B as NodeActivationId, Bn as NodeInputsByPort, Bt as BinaryStorageWriteResult, D as BinaryAttachment, Dn as WebhookTriggerResolution, En as WebhookTriggerMatcher, Ft as BinaryBody, Gt as ExecutionContext, It as BinaryStorage, Jn as PersistedWorkflowTokenRegistryLike, Kt as ExecutionContextFactory, Lt as BinaryStorageReadResult, P as Items, Pn as CurrentStateExecutionRequest, Pr as RetryPolicySpec, Rt as BinaryStorageStatResult, Sn as HttpMethod, Tn as WebhookInvocationMatch, Wt as ExecutionBinaryService, X as NodeOutputs, Yt as NodeActivationContinuation, Zn as RunCurrentState, _n as WorkflowRepository, at as RunDataSnapshot, cr as RunStopCondition, en as NodeBinaryAttachmentService, hn as WorkflowCatalog, ht as WorkflowDefinition, in as NodeExecutionStatePublisher, ir as RunResult, it as RunDataFactory, or as RunStateStore, ot as RunId, q as NodeId, tn as NodeExecutionContext, tt as ParentExecutionRef, ur as WebhookRunResult, v as CredentialSessionService, xn as WorkflowSnapshotResolver, xt as WorkflowId, z as MutableRunData } from "./InMemoryWorkflowCatalog-qaVRn1Lc.cjs";
|
|
2
|
-
|
|
3
|
-
//#region src/runtime/Engine.d.ts
|
|
4
|
-
interface EngineTriggerRuntime {
|
|
5
|
-
startTriggers(): Promise<void>;
|
|
6
|
-
stop(): Promise<void>;
|
|
7
|
-
syncWorkflowTriggersForActivation(workflowId: WorkflowId): Promise<void>;
|
|
8
|
-
createTriggerTestItems(args: {
|
|
9
|
-
workflow: WorkflowDefinition;
|
|
10
|
-
nodeId: NodeId;
|
|
11
|
-
}): Promise<Items | undefined>;
|
|
12
|
-
}
|
|
13
|
-
interface EngineWorkflowRunStarter {
|
|
14
|
-
runWorkflow(wf: WorkflowDefinition, startAt: NodeId, items: Items, parent?: ParentExecutionRef, executionOptions?: RunExecutionOptions, persistedStateOverrides?: Readonly<{
|
|
15
|
-
workflowSnapshot?: NonNullable<Awaited<ReturnType<RunStateStore["load"]>>>["workflowSnapshot"];
|
|
16
|
-
mutableState?: NonNullable<Awaited<ReturnType<RunStateStore["load"]>>>["mutableState"];
|
|
17
|
-
}>): Promise<RunResult>;
|
|
18
|
-
}
|
|
19
|
-
interface EngineCurrentStateRunStarter {
|
|
20
|
-
runWorkflowFromState(request: CurrentStateExecutionRequest): Promise<RunResult>;
|
|
21
|
-
}
|
|
22
|
-
interface EngineRunContinuationService {
|
|
23
|
-
markNodeRunning(args: {
|
|
24
|
-
runId: RunId;
|
|
25
|
-
activationId: NodeActivationId;
|
|
26
|
-
nodeId: NodeId;
|
|
27
|
-
inputsByPort: NodeInputsByPort;
|
|
28
|
-
}): Promise<void>;
|
|
29
|
-
resumeFromNodeResult(args: {
|
|
30
|
-
runId: RunId;
|
|
31
|
-
activationId: NodeActivationId;
|
|
32
|
-
nodeId: NodeId;
|
|
33
|
-
outputs: NodeOutputs;
|
|
34
|
-
}): Promise<RunResult>;
|
|
35
|
-
resumeFromNodeError(args: {
|
|
36
|
-
runId: RunId;
|
|
37
|
-
activationId: NodeActivationId;
|
|
38
|
-
nodeId: NodeId;
|
|
39
|
-
error: Error;
|
|
40
|
-
}): Promise<RunResult>;
|
|
41
|
-
resumeFromStepResult(args: {
|
|
42
|
-
runId: RunId;
|
|
43
|
-
activationId: NodeActivationId;
|
|
44
|
-
nodeId: NodeId;
|
|
45
|
-
outputs: NodeOutputs;
|
|
46
|
-
}): Promise<RunResult>;
|
|
47
|
-
resumeFromStepError(args: {
|
|
48
|
-
runId: RunId;
|
|
49
|
-
activationId: NodeActivationId;
|
|
50
|
-
nodeId: NodeId;
|
|
51
|
-
error: Error;
|
|
52
|
-
}): Promise<RunResult>;
|
|
53
|
-
waitForCompletion(runId: RunId): Promise<Extract<RunResult, {
|
|
54
|
-
status: "completed" | "failed";
|
|
55
|
-
}>>;
|
|
56
|
-
waitForWebhookResponse(runId: RunId): Promise<WebhookRunResult>;
|
|
57
|
-
}
|
|
58
|
-
interface EngineFacadeDeps {
|
|
59
|
-
workflowCatalog: WorkflowCatalog;
|
|
60
|
-
tokenRegistry: PersistedWorkflowTokenRegistryLike;
|
|
61
|
-
webhookTriggerMatcher: WebhookTriggerMatcher;
|
|
62
|
-
workflowSnapshotResolver: WorkflowSnapshotResolver;
|
|
63
|
-
triggerRuntime: EngineTriggerRuntime;
|
|
64
|
-
workflowRunStarter: EngineWorkflowRunStarter;
|
|
65
|
-
currentStateRunStarter: EngineCurrentStateRunStarter;
|
|
66
|
-
runContinuationService: EngineRunContinuationService;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Runtime facade for orchestration, continuation, triggers, and webhook routing.
|
|
70
|
-
* Prefer {@link import("../intents/RunIntentService").RunIntentService} for host/HTTP invocation boundaries.
|
|
71
|
-
* The class token is exported from `@codemation/core/bootstrap` (not the main `@codemation/core` barrel).
|
|
72
|
-
*/
|
|
73
|
-
declare class Engine implements NodeActivationContinuation {
|
|
74
|
-
private readonly deps;
|
|
75
|
-
constructor(deps: EngineFacadeDeps);
|
|
76
|
-
loadWorkflows(workflows: ReadonlyArray<WorkflowDefinition>): void;
|
|
77
|
-
getTokenRegistry(): EngineFacadeDeps["tokenRegistry"];
|
|
78
|
-
resolveWorkflowSnapshot(args: {
|
|
79
|
-
workflowId: WorkflowId;
|
|
80
|
-
workflowSnapshot?: NonNullable<Awaited<ReturnType<RunStateStore["load"]>>>["workflowSnapshot"];
|
|
81
|
-
}): WorkflowDefinition | undefined;
|
|
82
|
-
startTriggers(): Promise<void>;
|
|
83
|
-
syncWorkflowTriggersForActivation(workflowId: WorkflowId): Promise<void>;
|
|
84
|
-
start(workflows: WorkflowDefinition[]): Promise<void>;
|
|
85
|
-
stop(): Promise<void>;
|
|
86
|
-
resolveWebhookTrigger(args: {
|
|
87
|
-
endpointPath: string;
|
|
88
|
-
method: HttpMethod;
|
|
89
|
-
}): WebhookTriggerResolution;
|
|
90
|
-
createTriggerTestItems(args: {
|
|
91
|
-
workflow: WorkflowDefinition;
|
|
92
|
-
nodeId: NodeId;
|
|
93
|
-
}): Promise<Items | undefined>;
|
|
94
|
-
runWorkflow(wf: WorkflowDefinition, startAt: NodeId, items: Items, parent?: ParentExecutionRef, executionOptions?: RunExecutionOptions, persistedStateOverrides?: Readonly<{
|
|
95
|
-
workflowSnapshot?: NonNullable<Awaited<ReturnType<RunStateStore["load"]>>>["workflowSnapshot"];
|
|
96
|
-
mutableState?: NonNullable<Awaited<ReturnType<RunStateStore["load"]>>>["mutableState"];
|
|
97
|
-
}>): Promise<RunResult>;
|
|
98
|
-
runWorkflowFromState(request: CurrentStateExecutionRequest): Promise<RunResult>;
|
|
99
|
-
markNodeRunning(args: {
|
|
100
|
-
runId: RunId;
|
|
101
|
-
activationId: NodeActivationId;
|
|
102
|
-
nodeId: NodeId;
|
|
103
|
-
inputsByPort: NodeInputsByPort;
|
|
104
|
-
}): Promise<void>;
|
|
105
|
-
resumeFromNodeResult(args: {
|
|
106
|
-
runId: RunId;
|
|
107
|
-
activationId: NodeActivationId;
|
|
108
|
-
nodeId: NodeId;
|
|
109
|
-
outputs: NodeOutputs;
|
|
110
|
-
}): Promise<RunResult>;
|
|
111
|
-
resumeFromNodeError(args: {
|
|
112
|
-
runId: RunId;
|
|
113
|
-
activationId: NodeActivationId;
|
|
114
|
-
nodeId: NodeId;
|
|
115
|
-
error: Error;
|
|
116
|
-
}): Promise<RunResult>;
|
|
117
|
-
resumeFromStepResult(args: {
|
|
118
|
-
runId: RunId;
|
|
119
|
-
activationId: NodeActivationId;
|
|
120
|
-
nodeId: NodeId;
|
|
121
|
-
outputs: NodeOutputs;
|
|
122
|
-
}): Promise<RunResult>;
|
|
123
|
-
resumeFromStepError(args: {
|
|
124
|
-
runId: RunId;
|
|
125
|
-
activationId: NodeActivationId;
|
|
126
|
-
nodeId: NodeId;
|
|
127
|
-
error: Error;
|
|
128
|
-
}): Promise<RunResult>;
|
|
129
|
-
waitForCompletion(runId: RunId): Promise<Extract<RunResult, {
|
|
130
|
-
status: "completed" | "failed";
|
|
131
|
-
}>>;
|
|
132
|
-
waitForWebhookResponse(runId: RunId): Promise<WebhookRunResult>;
|
|
133
|
-
}
|
|
134
|
-
//#endregion
|
|
135
|
-
//#region src/policies/EngineExecutionLimitsPolicy.d.ts
|
|
136
|
-
interface EngineExecutionLimitsPolicyConfig {
|
|
137
|
-
readonly defaultMaxNodeActivations: number;
|
|
138
|
-
readonly hardMaxNodeActivations: number;
|
|
139
|
-
readonly defaultMaxSubworkflowDepth: number;
|
|
140
|
-
readonly hardMaxSubworkflowDepth: number;
|
|
141
|
-
}
|
|
142
|
-
/** Framework defaults for {@link EngineExecutionLimitsPolicy} (merged with host `runtime.engineExecutionLimits`). */
|
|
143
|
-
declare const ENGINE_EXECUTION_LIMITS_DEFAULTS: EngineExecutionLimitsPolicyConfig;
|
|
144
|
-
/**
|
|
145
|
-
* Resolves per-run execution limits: defaults, hard ceilings, and subworkflow depth for new runs.
|
|
146
|
-
*/
|
|
147
|
-
declare class EngineExecutionLimitsPolicy {
|
|
148
|
-
private readonly config;
|
|
149
|
-
constructor(config?: EngineExecutionLimitsPolicyConfig);
|
|
150
|
-
/**
|
|
151
|
-
* Effective options for a new root run (depth 0): defaults merged with engine ceilings.
|
|
152
|
-
* Replaces a separate one-method factory for root-run bootstrap.
|
|
153
|
-
*/
|
|
154
|
-
createRootExecutionOptions(): RunExecutionOptions;
|
|
155
|
-
mergeExecutionOptionsForNewRun(parent: ParentExecutionRef | undefined, user: RunExecutionOptions | undefined): RunExecutionOptions;
|
|
156
|
-
private capNumber;
|
|
157
|
-
}
|
|
158
|
-
//#endregion
|
|
159
|
-
//#region src/executionContext/CredentialResolverFactory.d.ts
|
|
160
|
-
declare class CredentialResolverFactory {
|
|
161
|
-
private readonly credentialSessions;
|
|
162
|
-
constructor(credentialSessions: CredentialSessionService);
|
|
163
|
-
create(workflowId: WorkflowId, nodeId: NodeId, config?: NodeExecutionContext["config"]): NodeExecutionContext["getCredential"];
|
|
164
|
-
}
|
|
165
|
-
//#endregion
|
|
166
|
-
//#region src/binaries/UnavailableBinaryStorage.d.ts
|
|
167
|
-
declare class UnavailableBinaryStorage implements BinaryStorage {
|
|
168
|
-
readonly driverName = "unavailable";
|
|
169
|
-
write(): Promise<never>;
|
|
170
|
-
openReadStream(): Promise<undefined>;
|
|
171
|
-
stat(): Promise<{
|
|
172
|
-
exists: false;
|
|
173
|
-
}>;
|
|
174
|
-
delete(): Promise<void>;
|
|
175
|
-
}
|
|
176
|
-
//#endregion
|
|
177
|
-
//#region src/binaries/DefaultExecutionBinaryServiceFactory.d.ts
|
|
178
|
-
declare class DefaultExecutionBinaryService implements ExecutionBinaryService {
|
|
179
|
-
private readonly storage;
|
|
180
|
-
private readonly workflowId;
|
|
181
|
-
private readonly runId;
|
|
182
|
-
private readonly now;
|
|
183
|
-
constructor(storage: BinaryStorage, workflowId: WorkflowId, runId: RunId, now: () => Date);
|
|
184
|
-
forNode(args: {
|
|
185
|
-
nodeId: NodeId;
|
|
186
|
-
activationId: NodeActivationId;
|
|
187
|
-
}): NodeBinaryAttachmentService;
|
|
188
|
-
openReadStream(attachment: BinaryAttachment): Promise<BinaryStorageReadResult | undefined>;
|
|
189
|
-
}
|
|
190
|
-
//#endregion
|
|
191
|
-
//#region src/executionContext/DefaultExecutionContextFactory.d.ts
|
|
192
|
-
declare class DefaultExecutionContextFactory implements ExecutionContextFactory {
|
|
193
|
-
private readonly binaryStorage;
|
|
194
|
-
private readonly currentDate;
|
|
195
|
-
constructor(binaryStorage?: BinaryStorage, currentDate?: () => Date);
|
|
196
|
-
create(args: {
|
|
197
|
-
runId: RunId;
|
|
198
|
-
workflowId: WorkflowId;
|
|
199
|
-
parent?: ParentExecutionRef;
|
|
200
|
-
subworkflowDepth: number;
|
|
201
|
-
engineMaxNodeActivations: number;
|
|
202
|
-
engineMaxSubworkflowDepth: number;
|
|
203
|
-
data: RunDataSnapshot;
|
|
204
|
-
nodeState?: NodeExecutionStatePublisher;
|
|
205
|
-
getCredential<TSession = unknown>(slotKey: string): Promise<TSession>;
|
|
206
|
-
}): ExecutionContext;
|
|
207
|
-
}
|
|
208
|
-
//#endregion
|
|
209
|
-
//#region src/runStorage/InMemoryBinaryStorageRegistry.d.ts
|
|
210
|
-
declare class InMemoryBinaryStorage implements BinaryStorage {
|
|
211
|
-
readonly driverName = "memory";
|
|
212
|
-
private readonly values;
|
|
213
|
-
write(args: {
|
|
214
|
-
storageKey: string;
|
|
215
|
-
body: BinaryBody;
|
|
216
|
-
}): Promise<BinaryStorageWriteResult>;
|
|
217
|
-
openReadStream(storageKey: string): Promise<BinaryStorageReadResult | undefined>;
|
|
218
|
-
stat(storageKey: string): Promise<BinaryStorageStatResult>;
|
|
219
|
-
delete(storageKey: string): Promise<void>;
|
|
220
|
-
}
|
|
221
|
-
//#endregion
|
|
222
|
-
//#region src/runStorage/InMemoryRunDataFactory.d.ts
|
|
223
|
-
declare class InMemoryRunDataFactory implements RunDataFactory {
|
|
224
|
-
create(initial?: Record<NodeId, NodeOutputs>): MutableRunData;
|
|
225
|
-
}
|
|
226
|
-
//#endregion
|
|
227
|
-
//#region src/runtime/RunIntentService.d.ts
|
|
228
|
-
declare class RunIntentService {
|
|
229
|
-
private readonly engine;
|
|
230
|
-
private readonly workflowRepository;
|
|
231
|
-
constructor(engine: Engine, workflowRepository: WorkflowRepository);
|
|
232
|
-
startWorkflow(args: {
|
|
233
|
-
workflow: WorkflowDefinition;
|
|
234
|
-
startAt?: string;
|
|
235
|
-
items: Items;
|
|
236
|
-
parent?: CurrentStateExecutionRequest["parent"];
|
|
237
|
-
executionOptions?: RunExecutionOptions;
|
|
238
|
-
workflowSnapshot?: CurrentStateExecutionRequest["workflowSnapshot"];
|
|
239
|
-
mutableState?: CurrentStateExecutionRequest["mutableState"];
|
|
240
|
-
currentState?: RunCurrentState;
|
|
241
|
-
stopCondition?: RunStopCondition;
|
|
242
|
-
reset?: CurrentStateExecutionRequest["reset"];
|
|
243
|
-
}): Promise<RunResult>;
|
|
244
|
-
rerunFromNode(args: {
|
|
245
|
-
workflow: WorkflowDefinition;
|
|
246
|
-
nodeId: string;
|
|
247
|
-
currentState: RunCurrentState;
|
|
248
|
-
items?: Items;
|
|
249
|
-
parent?: CurrentStateExecutionRequest["parent"];
|
|
250
|
-
executionOptions?: RunExecutionOptions;
|
|
251
|
-
workflowSnapshot?: CurrentStateExecutionRequest["workflowSnapshot"];
|
|
252
|
-
mutableState?: CurrentStateExecutionRequest["mutableState"];
|
|
253
|
-
}): Promise<RunResult>;
|
|
254
|
-
resolveWebhookTrigger(args: {
|
|
255
|
-
endpointPath: string;
|
|
256
|
-
method: HttpMethod;
|
|
257
|
-
}): WebhookTriggerResolution;
|
|
258
|
-
runMatchedWebhook(args: {
|
|
259
|
-
endpointPath: string;
|
|
260
|
-
method: HttpMethod;
|
|
261
|
-
requestItem: Items[number];
|
|
262
|
-
}): Promise<WebhookRunResult>;
|
|
263
|
-
runWebhookMatch(args: {
|
|
264
|
-
match: WebhookInvocationMatch;
|
|
265
|
-
requestItem: Items[number];
|
|
266
|
-
}): Promise<WebhookRunResult>;
|
|
267
|
-
}
|
|
268
|
-
//#endregion
|
|
269
|
-
//#region src/execution/asyncSleeper.types.d.ts
|
|
270
|
-
interface AsyncSleeper {
|
|
271
|
-
sleep(ms: number): Promise<void>;
|
|
272
|
-
}
|
|
273
|
-
//#endregion
|
|
274
|
-
//#region src/execution/DefaultAsyncSleeper.d.ts
|
|
275
|
-
declare class DefaultAsyncSleeper implements AsyncSleeper {
|
|
276
|
-
sleep(ms: number): Promise<void>;
|
|
277
|
-
}
|
|
278
|
-
//#endregion
|
|
279
|
-
//#region src/execution/InProcessRetryRunner.d.ts
|
|
280
|
-
declare class InProcessRetryRunner {
|
|
281
|
-
private readonly sleeper;
|
|
282
|
-
constructor(sleeper: AsyncSleeper);
|
|
283
|
-
run<T>(policy: RetryPolicySpec | undefined, work: () => Promise<T>): Promise<T>;
|
|
284
|
-
private static delayAfterFailureMs;
|
|
285
|
-
private static normalizePolicy;
|
|
286
|
-
private static assertPositiveInt;
|
|
287
|
-
private static assertNonNegativeFinite;
|
|
288
|
-
private static assertMultiplier;
|
|
289
|
-
}
|
|
290
|
-
//#endregion
|
|
291
|
-
export { InMemoryRunDataFactory as a, DefaultExecutionBinaryService as c, ENGINE_EXECUTION_LIMITS_DEFAULTS as d, EngineExecutionLimitsPolicy as f, RunIntentService as i, UnavailableBinaryStorage as l, Engine as m, DefaultAsyncSleeper as n, InMemoryBinaryStorage as o, EngineExecutionLimitsPolicyConfig as p, AsyncSleeper as r, DefaultExecutionContextFactory as s, InProcessRetryRunner as t, CredentialResolverFactory as u };
|
|
292
|
-
//# sourceMappingURL=InProcessRetryRunner-BBNPkXjy.d.cts.map
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Mt as WorkflowDefinition, dr as PersistedWorkflowTokenRegistryLike, lr as PersistedWorkflowSnapshot } from "./InMemoryWorkflowCatalog-D5nCp2yZ.js";
|
|
2
|
-
|
|
3
|
-
//#region src/persistedWorkflow/PersistedWorkflowSnapshotFactory.d.ts
|
|
4
|
-
declare class PersistedWorkflowSnapshotFactory {
|
|
5
|
-
private readonly tokenRegistry;
|
|
6
|
-
private readonly configSerializer;
|
|
7
|
-
constructor(tokenRegistry: PersistedWorkflowTokenRegistryLike);
|
|
8
|
-
create(workflow: WorkflowDefinition): PersistedWorkflowSnapshot;
|
|
9
|
-
private resolveTokenId;
|
|
10
|
-
private resolveTokenName;
|
|
11
|
-
}
|
|
12
|
-
//#endregion
|
|
13
|
-
export { PersistedWorkflowSnapshotFactory as t };
|
|
14
|
-
//# sourceMappingURL=PersistedWorkflowSnapshotFactory-7RkOL3Kg.d.ts.map
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
//#region src/engine/adapters/catalog/InMemoryWorkflowCatalog.ts
|
|
3
|
-
var InMemoryWorkflowCatalog = class {
|
|
4
|
-
workflowsById = /* @__PURE__ */ new Map();
|
|
5
|
-
setWorkflows(workflows) {
|
|
6
|
-
this.workflowsById.clear();
|
|
7
|
-
for (const workflow of workflows) this.workflowsById.set(workflow.id, workflow);
|
|
8
|
-
}
|
|
9
|
-
list() {
|
|
10
|
-
return [...this.workflowsById.values()];
|
|
11
|
-
}
|
|
12
|
-
get(workflowId) {
|
|
13
|
-
return this.workflowsById.get(workflowId);
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* @deprecated Use {@link InMemoryWorkflowCatalog}. Kept for older tests and consumer scaffolds.
|
|
18
|
-
*/
|
|
19
|
-
const InMemoryWorkflowRegistry = InMemoryWorkflowCatalog;
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
//#region src/engine/materialization/PersistedWorkflowConfigSerializer.ts
|
|
23
|
-
var PersistedWorkflowConfigSerializer = class {
|
|
24
|
-
constructor(tokenRegistry) {
|
|
25
|
-
this.tokenRegistry = tokenRegistry;
|
|
26
|
-
}
|
|
27
|
-
create(config) {
|
|
28
|
-
try {
|
|
29
|
-
const cloned = JSON.parse(JSON.stringify(config));
|
|
30
|
-
this.injectTokenIds(cloned, config);
|
|
31
|
-
return cloned;
|
|
32
|
-
} catch {
|
|
33
|
-
const fallback = {
|
|
34
|
-
kind: config.kind,
|
|
35
|
-
name: config.name,
|
|
36
|
-
id: config.id,
|
|
37
|
-
icon: config.icon,
|
|
38
|
-
execution: config.execution
|
|
39
|
-
};
|
|
40
|
-
this.injectTokenIds(fallback, config);
|
|
41
|
-
return fallback;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
injectTokenIds(target, source) {
|
|
45
|
-
const type = this.asTypeToken(source.type);
|
|
46
|
-
if (type) target.tokenId = this.tokenRegistry.getTokenId(type) ?? this.tokenName(type);
|
|
47
|
-
for (const [key, value] of Object.entries(source)) {
|
|
48
|
-
if (key === "type" || value == null) continue;
|
|
49
|
-
if (Array.isArray(value)) {
|
|
50
|
-
const arr = target[key];
|
|
51
|
-
if (Array.isArray(arr)) value.forEach((item, i) => {
|
|
52
|
-
if (item && typeof item === "object" && arr[i] && typeof arr[i] === "object") this.injectTokenIds(arr[i], item);
|
|
53
|
-
});
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
if (typeof value === "object") {
|
|
57
|
-
const t = target[key];
|
|
58
|
-
if (t && typeof t === "object") this.injectTokenIds(t, value);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
tokenName(token) {
|
|
63
|
-
if (typeof token === "function" && token.name) return token.name;
|
|
64
|
-
if (typeof token === "string") return token;
|
|
65
|
-
return "unknown";
|
|
66
|
-
}
|
|
67
|
-
asTypeToken(value) {
|
|
68
|
-
if (typeof value === "function" || typeof value === "string" || typeof value === "symbol") return value;
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
//#endregion
|
|
73
|
-
//#region src/engine/materialization/PersistedWorkflowSnapshotFactory.ts
|
|
74
|
-
var PersistedWorkflowSnapshotFactory = class {
|
|
75
|
-
configSerializer;
|
|
76
|
-
constructor(tokenRegistry) {
|
|
77
|
-
this.tokenRegistry = tokenRegistry;
|
|
78
|
-
this.configSerializer = new PersistedWorkflowConfigSerializer(tokenRegistry);
|
|
79
|
-
}
|
|
80
|
-
create(workflow) {
|
|
81
|
-
return {
|
|
82
|
-
id: workflow.id,
|
|
83
|
-
name: workflow.name,
|
|
84
|
-
workflowErrorHandlerConfigured: workflow.workflowErrorHandler !== void 0,
|
|
85
|
-
...workflow.connections !== void 0 && workflow.connections.length > 0 ? { connections: workflow.connections } : {},
|
|
86
|
-
nodes: workflow.nodes.map((node) => {
|
|
87
|
-
const nodeTokenId = this.resolveTokenId(node.type);
|
|
88
|
-
const configTokenId = this.resolveTokenId(node.config.type);
|
|
89
|
-
return {
|
|
90
|
-
id: node.id,
|
|
91
|
-
kind: node.kind,
|
|
92
|
-
name: node.name,
|
|
93
|
-
nodeTokenId,
|
|
94
|
-
configTokenId,
|
|
95
|
-
tokenName: this.resolveTokenName(node.type),
|
|
96
|
-
configTokenName: this.resolveTokenName(node.config?.type),
|
|
97
|
-
config: this.configSerializer.create(node.config)
|
|
98
|
-
};
|
|
99
|
-
}),
|
|
100
|
-
edges: workflow.edges.map((edge) => ({
|
|
101
|
-
from: {
|
|
102
|
-
nodeId: edge.from.nodeId,
|
|
103
|
-
output: edge.from.output
|
|
104
|
-
},
|
|
105
|
-
to: {
|
|
106
|
-
nodeId: edge.to.nodeId,
|
|
107
|
-
input: edge.to.input
|
|
108
|
-
}
|
|
109
|
-
}))
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
resolveTokenId(token) {
|
|
113
|
-
const id = this.tokenRegistry.getTokenId(token);
|
|
114
|
-
if (id) return id;
|
|
115
|
-
return typeof token === "function" && token.name ? token.name : typeof token === "string" ? token : "unknown";
|
|
116
|
-
}
|
|
117
|
-
resolveTokenName(token) {
|
|
118
|
-
return typeof token === "function" && token.name ? token.name : typeof token === "string" ? token : void 0;
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
//#endregion
|
|
123
|
-
Object.defineProperty(exports, 'InMemoryWorkflowCatalog', {
|
|
124
|
-
enumerable: true,
|
|
125
|
-
get: function () {
|
|
126
|
-
return InMemoryWorkflowCatalog;
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
Object.defineProperty(exports, 'InMemoryWorkflowRegistry', {
|
|
130
|
-
enumerable: true,
|
|
131
|
-
get: function () {
|
|
132
|
-
return InMemoryWorkflowRegistry;
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
Object.defineProperty(exports, 'PersistedWorkflowSnapshotFactory', {
|
|
136
|
-
enumerable: true,
|
|
137
|
-
get: function () {
|
|
138
|
-
return PersistedWorkflowSnapshotFactory;
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
//# sourceMappingURL=PersistedWorkflowSnapshotFactory-BmANa46W.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PersistedWorkflowSnapshotFactory-BmANa46W.cjs","names":["tokenRegistry: PersistedWorkflowTokenRegistryLike","fallback: Record<string, unknown>","tokenRegistry: PersistedWorkflowTokenRegistryLike"],"sources":["../src/engine/adapters/catalog/InMemoryWorkflowCatalog.ts","../src/engine/materialization/PersistedWorkflowConfigSerializer.ts","../src/engine/materialization/PersistedWorkflowSnapshotFactory.ts"],"sourcesContent":["import type { WorkflowCatalog, WorkflowDefinition, WorkflowId } from \"../../../types\";\n\nexport class InMemoryWorkflowCatalog implements WorkflowCatalog {\n private readonly workflowsById = new Map<WorkflowId, WorkflowDefinition>();\n\n setWorkflows(workflows: ReadonlyArray<WorkflowDefinition>): void {\n this.workflowsById.clear();\n for (const workflow of workflows) {\n this.workflowsById.set(workflow.id, workflow);\n }\n }\n\n list(): ReadonlyArray<WorkflowDefinition> {\n return [...this.workflowsById.values()];\n }\n\n get(workflowId: WorkflowId): WorkflowDefinition | undefined {\n return this.workflowsById.get(workflowId);\n }\n}\n\n/**\n * @deprecated Use {@link InMemoryWorkflowCatalog}. Kept for older tests and consumer scaffolds.\n */\nexport const InMemoryWorkflowRegistry = InMemoryWorkflowCatalog;\n","import type { TypeToken } from \"../../di\";\nimport type { NodeConfigBase, PersistedTokenId, PersistedWorkflowTokenRegistryLike } from \"../../types\";\n\nexport class PersistedWorkflowConfigSerializer {\n constructor(private readonly tokenRegistry: PersistedWorkflowTokenRegistryLike) {}\n\n create(config: NodeConfigBase): unknown {\n try {\n const cloned = JSON.parse(JSON.stringify(config)) as Record<string, unknown>;\n this.injectTokenIds(cloned, config as unknown as Record<string, unknown>);\n return cloned;\n } catch {\n const fallback: Record<string, unknown> = {\n kind: config.kind,\n name: config.name,\n id: config.id,\n icon: config.icon,\n execution: config.execution,\n };\n this.injectTokenIds(fallback, config as unknown as Record<string, unknown>);\n return fallback;\n }\n }\n\n private injectTokenIds(target: Record<string, unknown>, source: Record<string, unknown>): void {\n const type = this.asTypeToken(source.type);\n if (type) {\n const tokenId = this.tokenRegistry.getTokenId(type) ?? this.tokenName(type);\n target.tokenId = tokenId;\n }\n for (const [key, value] of Object.entries(source)) {\n if (key === \"type\" || value == null) continue;\n if (Array.isArray(value)) {\n const arr = target[key];\n if (Array.isArray(arr)) {\n value.forEach((item, i) => {\n if (item && typeof item === \"object\" && arr[i] && typeof arr[i] === \"object\") {\n this.injectTokenIds(arr[i] as Record<string, unknown>, item as Record<string, unknown>);\n }\n });\n }\n continue;\n }\n if (typeof value === \"object\") {\n const t = target[key];\n if (t && typeof t === \"object\") {\n this.injectTokenIds(t as Record<string, unknown>, value as Record<string, unknown>);\n }\n }\n }\n }\n\n private tokenName(token: TypeToken<unknown>): PersistedTokenId {\n if (typeof token === \"function\" && token.name) return token.name as PersistedTokenId;\n if (typeof token === \"string\") return token as PersistedTokenId;\n return \"unknown\" as PersistedTokenId;\n }\n\n private asTypeToken(value: unknown): TypeToken<unknown> | undefined {\n if (typeof value === \"function\" || typeof value === \"string\" || typeof value === \"symbol\") {\n return value as TypeToken<unknown>;\n }\n return undefined;\n }\n}\n","import type { TypeToken } from \"../../di\";\nimport type {\n PersistedTokenId,\n PersistedWorkflowSnapshot,\n PersistedWorkflowTokenRegistryLike,\n WorkflowDefinition,\n} from \"../../types\";\n\nimport { PersistedWorkflowConfigSerializer } from \"./PersistedWorkflowConfigSerializer\";\n\nexport class PersistedWorkflowSnapshotFactory {\n private readonly configSerializer: PersistedWorkflowConfigSerializer;\n\n constructor(private readonly tokenRegistry: PersistedWorkflowTokenRegistryLike) {\n this.configSerializer = new PersistedWorkflowConfigSerializer(tokenRegistry);\n }\n\n create(workflow: WorkflowDefinition): PersistedWorkflowSnapshot {\n return {\n id: workflow.id,\n name: workflow.name,\n workflowErrorHandlerConfigured: workflow.workflowErrorHandler !== undefined,\n ...(workflow.connections !== undefined && workflow.connections.length > 0\n ? { connections: workflow.connections }\n : {}),\n nodes: workflow.nodes.map((node) => {\n const nodeTokenId = this.resolveTokenId(node.type);\n const configTokenId = this.resolveTokenId(node.config.type);\n return {\n id: node.id,\n kind: node.kind,\n name: node.name,\n nodeTokenId,\n configTokenId,\n tokenName: this.resolveTokenName(node.type),\n configTokenName: this.resolveTokenName(node.config?.type),\n config: this.configSerializer.create(node.config),\n };\n }),\n edges: workflow.edges.map((edge) => ({\n from: { nodeId: edge.from.nodeId, output: edge.from.output },\n to: { nodeId: edge.to.nodeId, input: edge.to.input },\n })),\n };\n }\n\n private resolveTokenId(token: TypeToken<unknown>): PersistedTokenId {\n const id = this.tokenRegistry.getTokenId(token);\n if (id) return id;\n const name = typeof token === \"function\" && token.name ? token.name : typeof token === \"string\" ? token : \"unknown\";\n return name as PersistedTokenId;\n }\n\n private resolveTokenName(token: TypeToken<unknown>): string | undefined {\n return typeof token === \"function\" && token.name ? token.name : typeof token === \"string\" ? token : undefined;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
//#region src/engine/adapters/registry/InMemoryWorkflowRegistry.ts
|
|
2
|
-
var InMemoryWorkflowRegistry = class {
|
|
3
|
-
workflowsById = /* @__PURE__ */ new Map();
|
|
4
|
-
setWorkflows(workflows) {
|
|
5
|
-
this.workflowsById.clear();
|
|
6
|
-
for (const workflow of workflows) this.workflowsById.set(workflow.id, workflow);
|
|
7
|
-
}
|
|
8
|
-
list() {
|
|
9
|
-
return [...this.workflowsById.values()];
|
|
10
|
-
}
|
|
11
|
-
get(workflowId) {
|
|
12
|
-
return this.workflowsById.get(workflowId);
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
//#endregion
|
|
17
|
-
//#region src/engine/adapters/persisted-workflow/PersistedWorkflowConfigSerializer.ts
|
|
18
|
-
var PersistedWorkflowConfigSerializer = class {
|
|
19
|
-
constructor(tokenRegistry) {
|
|
20
|
-
this.tokenRegistry = tokenRegistry;
|
|
21
|
-
}
|
|
22
|
-
create(config) {
|
|
23
|
-
try {
|
|
24
|
-
const cloned = JSON.parse(JSON.stringify(config));
|
|
25
|
-
this.injectTokenIds(cloned, config);
|
|
26
|
-
return cloned;
|
|
27
|
-
} catch {
|
|
28
|
-
const fallback = {
|
|
29
|
-
kind: config.kind,
|
|
30
|
-
name: config.name,
|
|
31
|
-
id: config.id,
|
|
32
|
-
icon: config.icon,
|
|
33
|
-
execution: config.execution
|
|
34
|
-
};
|
|
35
|
-
this.injectTokenIds(fallback, config);
|
|
36
|
-
return fallback;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
injectTokenIds(target, source) {
|
|
40
|
-
const type = this.asTypeToken(source.type);
|
|
41
|
-
if (type) target.tokenId = this.tokenRegistry.getTokenId(type) ?? this.tokenName(type);
|
|
42
|
-
for (const [key, value] of Object.entries(source)) {
|
|
43
|
-
if (key === "type" || value == null) continue;
|
|
44
|
-
if (Array.isArray(value)) {
|
|
45
|
-
const arr = target[key];
|
|
46
|
-
if (Array.isArray(arr)) value.forEach((item, i) => {
|
|
47
|
-
if (item && typeof item === "object" && arr[i] && typeof arr[i] === "object") this.injectTokenIds(arr[i], item);
|
|
48
|
-
});
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
if (typeof value === "object") {
|
|
52
|
-
const t = target[key];
|
|
53
|
-
if (t && typeof t === "object") this.injectTokenIds(t, value);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
tokenName(token) {
|
|
58
|
-
if (typeof token === "function" && token.name) return token.name;
|
|
59
|
-
if (typeof token === "string") return token;
|
|
60
|
-
return "unknown";
|
|
61
|
-
}
|
|
62
|
-
asTypeToken(value) {
|
|
63
|
-
if (typeof value === "function" || typeof value === "string" || typeof value === "symbol") return value;
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
//#endregion
|
|
68
|
-
//#region src/engine/adapters/persisted-workflow/PersistedWorkflowSnapshotFactory.ts
|
|
69
|
-
var PersistedWorkflowSnapshotFactory = class {
|
|
70
|
-
configSerializer;
|
|
71
|
-
constructor(tokenRegistry) {
|
|
72
|
-
this.tokenRegistry = tokenRegistry;
|
|
73
|
-
this.configSerializer = new PersistedWorkflowConfigSerializer(tokenRegistry);
|
|
74
|
-
}
|
|
75
|
-
create(workflow) {
|
|
76
|
-
return {
|
|
77
|
-
id: workflow.id,
|
|
78
|
-
name: workflow.name,
|
|
79
|
-
workflowErrorHandlerConfigured: workflow.workflowErrorHandler !== void 0,
|
|
80
|
-
nodes: workflow.nodes.map((node) => {
|
|
81
|
-
const nodeTokenId = this.resolveTokenId(node.type);
|
|
82
|
-
const configTokenId = this.resolveTokenId(node.config.type);
|
|
83
|
-
return {
|
|
84
|
-
id: node.id,
|
|
85
|
-
kind: node.kind,
|
|
86
|
-
name: node.name,
|
|
87
|
-
nodeTokenId,
|
|
88
|
-
configTokenId,
|
|
89
|
-
tokenName: this.resolveTokenName(node.type),
|
|
90
|
-
configTokenName: this.resolveTokenName(node.config?.type),
|
|
91
|
-
config: this.configSerializer.create(node.config)
|
|
92
|
-
};
|
|
93
|
-
}),
|
|
94
|
-
edges: workflow.edges.map((edge) => ({
|
|
95
|
-
from: {
|
|
96
|
-
nodeId: edge.from.nodeId,
|
|
97
|
-
output: edge.from.output
|
|
98
|
-
},
|
|
99
|
-
to: {
|
|
100
|
-
nodeId: edge.to.nodeId,
|
|
101
|
-
input: edge.to.input
|
|
102
|
-
}
|
|
103
|
-
}))
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
resolveTokenId(token) {
|
|
107
|
-
const id = this.tokenRegistry.getTokenId(token);
|
|
108
|
-
if (id) return id;
|
|
109
|
-
return typeof token === "function" && token.name ? token.name : typeof token === "string" ? token : "unknown";
|
|
110
|
-
}
|
|
111
|
-
resolveTokenName(token) {
|
|
112
|
-
return typeof token === "function" && token.name ? token.name : typeof token === "string" ? token : void 0;
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
//#endregion
|
|
117
|
-
export { InMemoryWorkflowRegistry as n, PersistedWorkflowSnapshotFactory as t };
|
|
118
|
-
//# sourceMappingURL=PersistedWorkflowSnapshotFactory-Bwb_etSt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PersistedWorkflowSnapshotFactory-Bwb_etSt.js","names":["tokenRegistry: PersistedWorkflowTokenRegistryLike","fallback: Record<string, unknown>","tokenRegistry: PersistedWorkflowTokenRegistryLike"],"sources":["../src/engine/adapters/registry/InMemoryWorkflowRegistry.ts","../src/engine/adapters/persisted-workflow/PersistedWorkflowConfigSerializer.ts","../src/engine/adapters/persisted-workflow/PersistedWorkflowSnapshotFactory.ts"],"sourcesContent":["import type { WorkflowCatalog, WorkflowDefinition, WorkflowId } from \"../../../types\";\r\n\r\nexport class InMemoryWorkflowRegistry implements WorkflowCatalog {\r\n private readonly workflowsById = new Map<WorkflowId, WorkflowDefinition>();\r\n\r\n setWorkflows(workflows: ReadonlyArray<WorkflowDefinition>): void {\r\n this.workflowsById.clear();\r\n for (const workflow of workflows) {\r\n this.workflowsById.set(workflow.id, workflow);\r\n }\r\n }\r\n\r\n list(): ReadonlyArray<WorkflowDefinition> {\r\n return [...this.workflowsById.values()];\r\n }\r\n\r\n get(workflowId: WorkflowId): WorkflowDefinition | undefined {\r\n return this.workflowsById.get(workflowId);\r\n }\r\n}\r\n\r\n","import type { TypeToken } from \"../../../di\";\r\nimport type { NodeConfigBase, PersistedTokenId, PersistedWorkflowTokenRegistryLike } from \"../../../types\";\r\n\r\nexport class PersistedWorkflowConfigSerializer {\r\n constructor(private readonly tokenRegistry: PersistedWorkflowTokenRegistryLike) {}\r\n\r\n create(config: NodeConfigBase): unknown {\r\n try {\r\n const cloned = JSON.parse(JSON.stringify(config)) as Record<string, unknown>;\r\n this.injectTokenIds(cloned, config as unknown as Record<string, unknown>);\r\n return cloned;\r\n } catch {\r\n const fallback: Record<string, unknown> = {\r\n kind: config.kind,\r\n name: config.name,\r\n id: config.id,\r\n icon: config.icon,\r\n execution: config.execution,\r\n };\r\n this.injectTokenIds(fallback, config as unknown as Record<string, unknown>);\r\n return fallback;\r\n }\r\n }\r\n\r\n private injectTokenIds(target: Record<string, unknown>, source: Record<string, unknown>): void {\r\n const type = this.asTypeToken(source.type);\r\n if (type) {\r\n const tokenId = this.tokenRegistry.getTokenId(type) ?? this.tokenName(type);\r\n target.tokenId = tokenId;\r\n }\r\n for (const [key, value] of Object.entries(source)) {\r\n if (key === \"type\" || value == null) continue;\r\n if (Array.isArray(value)) {\r\n const arr = target[key];\r\n if (Array.isArray(arr)) {\r\n value.forEach((item, i) => {\r\n if (item && typeof item === \"object\" && arr[i] && typeof arr[i] === \"object\") {\r\n this.injectTokenIds(arr[i] as Record<string, unknown>, item as Record<string, unknown>);\r\n }\r\n });\r\n }\r\n continue;\r\n }\r\n if (typeof value === \"object\") {\r\n const t = target[key];\r\n if (t && typeof t === \"object\") {\r\n this.injectTokenIds(t as Record<string, unknown>, value as Record<string, unknown>);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private tokenName(token: TypeToken<unknown>): PersistedTokenId {\r\n if (typeof token === \"function\" && token.name) return token.name as PersistedTokenId;\r\n if (typeof token === \"string\") return token as PersistedTokenId;\r\n return \"unknown\" as PersistedTokenId;\r\n }\r\n\r\n private asTypeToken(value: unknown): TypeToken<unknown> | undefined {\r\n if (typeof value === \"function\" || typeof value === \"string\" || typeof value === \"symbol\") {\r\n return value as TypeToken<unknown>;\r\n }\r\n return undefined;\r\n }\r\n}\r\n\r\n","import type { TypeToken } from \"../../../di\";\r\nimport type { PersistedTokenId, PersistedWorkflowSnapshot, PersistedWorkflowTokenRegistryLike, WorkflowDefinition } from \"../../../types\";\r\n\r\nimport { PersistedWorkflowConfigSerializer } from \"./PersistedWorkflowConfigSerializer\";\r\n\r\nexport class PersistedWorkflowSnapshotFactory {\r\n private readonly configSerializer: PersistedWorkflowConfigSerializer;\r\n\r\n constructor(private readonly tokenRegistry: PersistedWorkflowTokenRegistryLike) {\r\n this.configSerializer = new PersistedWorkflowConfigSerializer(tokenRegistry);\r\n }\r\n\r\n create(workflow: WorkflowDefinition): PersistedWorkflowSnapshot {\r\n return {\r\n id: workflow.id,\r\n name: workflow.name,\r\n workflowErrorHandlerConfigured: workflow.workflowErrorHandler !== undefined,\r\n nodes: workflow.nodes.map((node) => {\r\n const nodeTokenId = this.resolveTokenId(node.type);\r\n const configTokenId = this.resolveTokenId(node.config.type);\r\n return {\r\n id: node.id,\r\n kind: node.kind,\r\n name: node.name,\r\n nodeTokenId,\r\n configTokenId,\r\n tokenName: this.resolveTokenName(node.type),\r\n configTokenName: this.resolveTokenName(node.config?.type),\r\n config: this.configSerializer.create(node.config),\r\n };\r\n }),\r\n edges: workflow.edges.map((edge) => ({\r\n from: { nodeId: edge.from.nodeId, output: edge.from.output },\r\n to: { nodeId: edge.to.nodeId, input: edge.to.input },\r\n })),\r\n };\r\n }\r\n\r\n private resolveTokenId(token: TypeToken<unknown>): PersistedTokenId {\r\n const id = this.tokenRegistry.getTokenId(token);\r\n if (id) return id;\r\n const name = typeof token === \"function\" && token.name ? token.name : typeof token === \"string\" ? token : \"unknown\";\r\n return name as PersistedTokenId;\r\n }\r\n\r\n private resolveTokenName(token: TypeToken<unknown>): string | undefined {\r\n return typeof token === \"function\" && token.name ? token.name : typeof token === \"string\" ? token : undefined;\r\n }\r\n}\r\n\r\n"],"mappings":"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"}
|