@codemation/core 1.0.1 → 2.0.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +293 -0
  2. package/dist/{EngineRuntimeRegistration.types-kxQA5NLt.d.ts → EngineRuntimeRegistration.types-D1fyApMI.d.ts} +2 -2
  3. package/dist/{EngineWorkflowRunnerService-Ba2AvBnL.d.cts → EngineRuntimeRegistration.types-pB3FnzqR.d.cts} +17 -17
  4. package/dist/{InMemoryRunDataFactory-Ou4tQUOS.d.cts → InMemoryRunDataFactory-Xw7v4-sj.d.cts} +31 -29
  5. package/dist/InMemoryRunEventBusRegistry-VM3OWnHo.cjs +47 -0
  6. package/dist/InMemoryRunEventBusRegistry-VM3OWnHo.cjs.map +1 -0
  7. package/dist/InMemoryRunEventBusRegistry-sM4z4n_i.js +41 -0
  8. package/dist/InMemoryRunEventBusRegistry-sM4z4n_i.js.map +1 -0
  9. package/dist/{RunIntentService-dteLjNiT.d.ts → RunIntentService-BE9CAkbf.d.ts} +602 -213
  10. package/dist/{RunIntentService-Dyh_dH0k.d.cts → RunIntentService-siBSjaaY.d.cts} +430 -125
  11. package/dist/bootstrap/index.cjs +5 -2
  12. package/dist/bootstrap/index.d.cts +212 -135
  13. package/dist/bootstrap/index.d.ts +4 -4
  14. package/dist/bootstrap/index.js +3 -3
  15. package/dist/{bootstrap-Cko6udwL.cjs → bootstrap-Cm5ruQxx.cjs} +253 -3
  16. package/dist/bootstrap-Cm5ruQxx.cjs.map +1 -0
  17. package/dist/{bootstrap-CL68rqWg.js → bootstrap-D3r505ko.js} +236 -4
  18. package/dist/bootstrap-D3r505ko.js.map +1 -0
  19. package/dist/{index-CyfGTfU1.d.ts → index-DeLl1Tne.d.ts} +574 -242
  20. package/dist/index.cjs +328 -180
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +441 -103
  23. package/dist/index.d.ts +3 -3
  24. package/dist/index.js +305 -163
  25. package/dist/index.js.map +1 -1
  26. package/dist/{runtime-284ok0cm.js → runtime-BGNbRnqs.js} +764 -75
  27. package/dist/runtime-BGNbRnqs.js.map +1 -0
  28. package/dist/{runtime-B3Og-_St.cjs → runtime-DKXJwTNv.cjs} +841 -80
  29. package/dist/runtime-DKXJwTNv.cjs.map +1 -0
  30. package/dist/testing.cjs +4 -4
  31. package/dist/testing.cjs.map +1 -1
  32. package/dist/testing.d.cts +2 -2
  33. package/dist/testing.d.ts +2 -2
  34. package/dist/testing.js +3 -3
  35. package/package.json +7 -2
  36. package/src/authoring/DefinedCollectionRegistry.ts +17 -0
  37. package/src/authoring/defineCollection.types.ts +181 -0
  38. package/src/authoring/definePollingTrigger.types.ts +396 -0
  39. package/src/authoring/definePollingTriggerInternals.ts +74 -0
  40. package/src/authoring/index.ts +19 -0
  41. package/src/bootstrap/index.ts +9 -0
  42. package/src/bootstrap/runtime/EngineRuntimeRegistrar.ts +5 -1
  43. package/src/contracts/assertionTypes.ts +63 -0
  44. package/src/contracts/baseTypes.ts +12 -0
  45. package/src/contracts/collectionTypes.ts +44 -0
  46. package/src/contracts/credentialTypes.ts +23 -1
  47. package/src/contracts/index.ts +4 -0
  48. package/src/contracts/runTypes.ts +27 -1
  49. package/src/contracts/runtimeTypes.ts +34 -0
  50. package/src/contracts/testTriggerTypes.ts +66 -0
  51. package/src/contracts/workflowTypes.ts +30 -7
  52. package/src/contracts.ts +59 -0
  53. package/src/events/runEvents.ts +49 -0
  54. package/src/execution/ChildExecutionScopeFactory.ts +4 -7
  55. package/src/execution/DefaultExecutionContextFactory.ts +6 -0
  56. package/src/execution/NodeInstanceFactory.ts +13 -1
  57. package/src/execution/NodeInstantiationError.ts +16 -0
  58. package/src/execution/WorkflowRunExecutionContextFactory.ts +3 -0
  59. package/src/execution/index.ts +1 -0
  60. package/src/index.ts +7 -0
  61. package/src/orchestration/AbortControllerFactory.ts +9 -0
  62. package/src/orchestration/NodeExecutionRequestHandlerService.ts +1 -0
  63. package/src/orchestration/RunContinuationService.ts +3 -0
  64. package/src/orchestration/RunStartService.ts +114 -2
  65. package/src/orchestration/TestSuiteOrchestrator.ts +350 -0
  66. package/src/orchestration/TestSuiteRunIdFactory.ts +11 -0
  67. package/src/orchestration/TriggerRuntimeService.ts +34 -7
  68. package/src/orchestration/index.ts +9 -0
  69. package/src/runtime/EngineFactory.ts +11 -0
  70. package/src/triggers/polling/PollingTriggerDedupWindow.ts +23 -0
  71. package/src/triggers/polling/PollingTriggerLogger.ts +18 -0
  72. package/src/triggers/polling/PollingTriggerRuntime.ts +122 -0
  73. package/src/triggers/polling/index.ts +5 -0
  74. package/src/types/index.ts +12 -9
  75. package/src/workflow/dsl/NodeIdSlugifier.ts +18 -0
  76. package/src/workflow/dsl/WorkflowBuilder.ts +71 -3
  77. package/src/workflow/dsl/WorkflowDefinitionError.ts +15 -0
  78. package/src/workflow/index.ts +2 -0
  79. package/dist/InMemoryRunEventBusRegistry-B0_C4OnP.cjs +0 -262
  80. package/dist/InMemoryRunEventBusRegistry-B0_C4OnP.cjs.map +0 -1
  81. package/dist/InMemoryRunEventBusRegistry-C2U83Hmv.js +0 -238
  82. package/dist/InMemoryRunEventBusRegistry-C2U83Hmv.js.map +0 -1
  83. package/dist/bootstrap-CL68rqWg.js.map +0 -1
  84. package/dist/bootstrap-Cko6udwL.cjs.map +0 -1
  85. package/dist/runtime-284ok0cm.js.map +0 -1
  86. package/dist/runtime-B3Og-_St.cjs.map +0 -1
@@ -3,7 +3,262 @@ import { DependencyContainer as Container, DependencyContainer as DependencyCont
3
3
  import { ZodType } from "zod";
4
4
  import { ReadableStream } from "node:stream/web";
5
5
 
6
+ //#region src/contracts/baseTypes.d.ts
7
+ /**
8
+ * Minimal base types that have no dependencies on other contracts.
9
+ * Used by credentialTypes, workflowTypes, and other contract layers
10
+ * to avoid circular dependencies.
11
+ */
12
+ type WorkflowId = string;
13
+ type NodeId = string;
14
+ type OutputPortKey = string;
15
+ type InputPortKey = string;
16
+ type PersistedTokenId = string;
17
+ type NodeConnectionName = string;
18
+ //#endregion
19
+ //#region src/contracts/testTriggerTypes.d.ts
20
+ /**
21
+ * Identifier minted by the host (or in-memory test runner) for one execution of a test suite.
22
+ * One TestSuiteRun produces N child workflow runs, one per item yielded by `generateItems`.
23
+ */
24
+ type TestSuiteRunId = string;
25
+ /**
26
+ * Setup context passed to a {@link TestTriggerNodeConfig.generateItems} callback. Distinct from
27
+ * {@link import("./runtimeTypes").TriggerSetupContext} on purpose: test triggers are not
28
+ * activated by the live trigger lifecycle (webhooks, cron, polling) and never call `emit` —
29
+ * the orchestrator pulls from the iterable they return and dispatches one run per item.
30
+ */
31
+ interface TestTriggerSetupContext<TConfig extends TestTriggerNodeConfig<unknown> = TestTriggerNodeConfig<unknown>> {
32
+ readonly workflowId: WorkflowId;
33
+ readonly nodeId: NodeId;
34
+ readonly config: TConfig;
35
+ readonly testSuiteRunId: TestSuiteRunId;
36
+ /**
37
+ * Resolves a credential session for a slot declared on this trigger's
38
+ * {@link import("./workflowTypes").NodeConfigBase.getCredentialRequirements}. Same contract as
39
+ * {@link import("./runtimeTypes").ExecutionContext.getCredential}.
40
+ */
41
+ getCredential<TSession = unknown>(slotKey: string): Promise<TSession>;
42
+ /** AbortSignal raised when the suite is cancelled — long-running pulls should bail out. */
43
+ readonly signal: AbortSignal;
44
+ }
45
+ /**
46
+ * A trigger config that emits **test cases**. Each item yielded by {@link generateItems}
47
+ * becomes one workflow run (with `executionOptions.testContext` set), so 10 yielded items
48
+ * → 10 runs marked under the same TestSuiteRun.
49
+ *
50
+ * The trigger is otherwise a normal {@link TriggerNodeConfig} (so the canvas treats it like
51
+ * any other trigger), but its `triggerKind` is `"test"` so the live activation policy skips it.
52
+ */
53
+ interface TestTriggerNodeConfig<TOutputJson$1 = unknown> extends TriggerNodeConfig<TOutputJson$1, undefined> {
54
+ readonly triggerKind: "test";
55
+ /**
56
+ * Author-supplied async iterable of items, evaluated lazily. Implementations may fetch from
57
+ * credentialed APIs, read fixture files, or yield hard-coded items. The orchestrator iterates
58
+ * and dispatches one run per item, with concurrency capped by {@link concurrency} (default 4).
59
+ */
60
+ generateItems(ctx: TestTriggerSetupContext<TestTriggerNodeConfig<TOutputJson$1>>): AsyncIterable<Item<TOutputJson$1>>;
61
+ /** Per-suite-run cap on simultaneously-executing test cases. Default: 4. */
62
+ readonly concurrency?: number;
63
+ /**
64
+ * Free-form description of where the test cases come from — surfaced in the node properties
65
+ * panel and the suite-detail header so authors revisiting the workflow six months later
66
+ * remember which mailbox / folder / fixture file the cases originate from.
67
+ *
68
+ * Example: `"All emails in the Gmail label \"test/triage-fixtures\" — 14 messages as of 2026-05-03."`
69
+ */
70
+ readonly description?: string;
71
+ /**
72
+ * Resolves a human-readable label for one yielded test case (e.g. email subject). The
73
+ * orchestrator calls this once per yielded item, persists the result on the run, and the
74
+ * Tests-tab UI uses it to render the case row instead of the opaque runId. Return
75
+ * `undefined` to fall back to "Case #N".
76
+ */
77
+ caseLabel?(item: Item<TOutputJson$1>): string | undefined;
78
+ }
79
+ //#endregion
80
+ //#region src/events/runEvents.d.ts
81
+ /**
82
+ * Outcome of a single test case (one workflow run dispatched by the test-suite orchestrator).
83
+ * - `running`: workflow still in flight
84
+ * - `succeeded`: workflow completed AND all assertions passed (or no assertions)
85
+ * - `failed`: workflow failed OR (workflow completed but ≥1 assertion failed)
86
+ * - `errored` / `cancelled`: workflow itself errored or was cancelled
87
+ */
88
+ type TestCaseRunStatus = "running" | "succeeded" | "failed" | "errored" | "cancelled";
89
+ /** Aggregate outcome of a TestSuiteRun. */
90
+ type TestSuiteRunStatus = "succeeded" | "failed" | "partial" | "errored" | "cancelled";
91
+ type RunEvent = Readonly<{
92
+ kind: "runCreated";
93
+ runId: RunId;
94
+ workflowId: WorkflowId;
95
+ parent?: ParentExecutionRef;
96
+ at: string;
97
+ }> | Readonly<{
98
+ kind: "runSaved";
99
+ runId: RunId;
100
+ workflowId: WorkflowId;
101
+ parent?: ParentExecutionRef;
102
+ at: string;
103
+ state: PersistedRunState;
104
+ }> | Readonly<{
105
+ kind: "nodeQueued";
106
+ runId: RunId;
107
+ workflowId: WorkflowId;
108
+ parent?: ParentExecutionRef;
109
+ at: string;
110
+ snapshot: NodeExecutionSnapshot;
111
+ }> | Readonly<{
112
+ kind: "nodeStarted";
113
+ runId: RunId;
114
+ workflowId: WorkflowId;
115
+ parent?: ParentExecutionRef;
116
+ at: string;
117
+ snapshot: NodeExecutionSnapshot;
118
+ }> | Readonly<{
119
+ kind: "nodeCompleted";
120
+ runId: RunId;
121
+ workflowId: WorkflowId;
122
+ parent?: ParentExecutionRef;
123
+ at: string;
124
+ snapshot: NodeExecutionSnapshot;
125
+ }> | Readonly<{
126
+ kind: "nodeFailed";
127
+ runId: RunId;
128
+ workflowId: WorkflowId;
129
+ parent?: ParentExecutionRef;
130
+ at: string;
131
+ snapshot: NodeExecutionSnapshot;
132
+ }> | Readonly<{
133
+ kind: "connectionInvocationStarted";
134
+ runId: RunId;
135
+ workflowId: WorkflowId;
136
+ parent?: ParentExecutionRef;
137
+ at: string;
138
+ record: ConnectionInvocationRecord;
139
+ }> | Readonly<{
140
+ kind: "connectionInvocationCompleted";
141
+ runId: RunId;
142
+ workflowId: WorkflowId;
143
+ parent?: ParentExecutionRef;
144
+ at: string;
145
+ record: ConnectionInvocationRecord;
146
+ }> | Readonly<{
147
+ kind: "connectionInvocationFailed";
148
+ runId: RunId;
149
+ workflowId: WorkflowId;
150
+ parent?: ParentExecutionRef;
151
+ at: string;
152
+ record: ConnectionInvocationRecord;
153
+ }> | Readonly<{
154
+ kind: "testSuiteStarted";
155
+ testSuiteRunId: TestSuiteRunId;
156
+ workflowId: WorkflowId;
157
+ triggerNodeId: string;
158
+ triggerNodeName?: string;
159
+ concurrency: number;
160
+ at: string;
161
+ }> | Readonly<{
162
+ kind: "testSuiteFinished";
163
+ testSuiteRunId: TestSuiteRunId;
164
+ workflowId: WorkflowId;
165
+ status: TestSuiteRunStatus;
166
+ totalCases: number;
167
+ passedCases: number;
168
+ failedCases: number;
169
+ at: string;
170
+ }> | Readonly<{
171
+ kind: "testCaseStarted";
172
+ testSuiteRunId: TestSuiteRunId;
173
+ testCaseIndex: number;
174
+ runId: RunId;
175
+ workflowId: WorkflowId;
176
+ testCaseLabel?: string;
177
+ at: string;
178
+ }> | Readonly<{
179
+ kind: "testCaseCompleted";
180
+ testSuiteRunId: TestSuiteRunId;
181
+ testCaseIndex: number;
182
+ runId: RunId;
183
+ workflowId: WorkflowId;
184
+ status: TestCaseRunStatus;
185
+ at: string;
186
+ }>;
187
+ interface RunEventSubscription {
188
+ close(): Promise<void>;
189
+ }
190
+ interface RunEventBus {
191
+ publish(event: RunEvent): Promise<void>;
192
+ subscribe(onEvent: (event: RunEvent) => void): Promise<RunEventSubscription>;
193
+ subscribeToWorkflow(workflowId: WorkflowId, onEvent: (event: RunEvent) => void): Promise<RunEventSubscription>;
194
+ }
195
+ //#endregion
196
+ //#region src/policies/executionLimits/EngineExecutionLimitsPolicy.d.ts
197
+ interface EngineExecutionLimitsPolicyConfig {
198
+ readonly defaultMaxNodeActivations: number;
199
+ readonly hardMaxNodeActivations: number;
200
+ readonly defaultMaxSubworkflowDepth: number;
201
+ readonly hardMaxSubworkflowDepth: number;
202
+ }
203
+ /** Framework defaults for {@link EngineExecutionLimitsPolicy} (merged with host `runtime.engineExecutionLimits`). */
204
+ declare const ENGINE_EXECUTION_LIMITS_DEFAULTS: EngineExecutionLimitsPolicyConfig;
205
+ /**
206
+ * Resolves per-run execution limits: defaults, hard ceilings, and subworkflow depth for new runs.
207
+ */
208
+ declare class EngineExecutionLimitsPolicy {
209
+ private readonly config;
210
+ constructor(config?: EngineExecutionLimitsPolicyConfig);
211
+ /**
212
+ * Effective options for a new root run (depth 0): defaults merged with engine ceilings.
213
+ * Replaces a separate one-method factory for root-run bootstrap.
214
+ */
215
+ createRootExecutionOptions(): RunExecutionOptions;
216
+ mergeExecutionOptionsForNewRun(parent: ParentExecutionRef | undefined, user: RunExecutionOptions | undefined): RunExecutionOptions;
217
+ private capNumber;
218
+ }
219
+ //#endregion
220
+ //#region src/di/CoreTokens.d.ts
221
+ declare const CoreTokens: {
222
+ readonly PersistedWorkflowTokenRegistry: TypeToken<PersistedWorkflowTokenRegistryLike>;
223
+ readonly CredentialSessionService: TypeToken<CredentialSessionService>;
224
+ readonly CredentialTypeRegistry: TypeToken<CredentialTypeRegistry>;
225
+ readonly WorkflowRunnerService: TypeToken<WorkflowRunnerService>;
226
+ readonly LiveWorkflowRepository: TypeToken<LiveWorkflowRepository>;
227
+ readonly WorkflowRepository: TypeToken<WorkflowRepository>;
228
+ readonly NodeResolver: TypeToken<NodeResolver>;
229
+ readonly WorkflowNodeInstanceFactory: TypeToken<WorkflowNodeInstanceFactory>;
230
+ readonly RunIdFactory: TypeToken<RunIdFactory>;
231
+ readonly ActivationIdFactory: TypeToken<ActivationIdFactory>;
232
+ readonly WorkflowExecutionRepository: TypeToken<WorkflowExecutionRepository>;
233
+ readonly TriggerSetupStateRepository: TypeToken<TriggerSetupStateRepository>;
234
+ readonly NodeActivationScheduler: TypeToken<NodeActivationScheduler>;
235
+ readonly RunDataFactory: TypeToken<RunDataFactory>;
236
+ readonly ExecutionContextFactory: TypeToken<ExecutionContextFactory>;
237
+ readonly RunEventBus: TypeToken<RunEventBus>;
238
+ readonly BinaryStorage: TypeToken<BinaryStorage>;
239
+ readonly WebhookBasePath: TypeToken<string>;
240
+ /** Engine execution limits (defaults + optional host overrides). Consumers may bind a custom instance to override. */
241
+ readonly EngineExecutionLimitsPolicy: TypeToken<EngineExecutionLimitsPolicy>;
242
+ readonly WorkflowActivationPolicy: TypeToken<WorkflowActivationPolicy>;
243
+ };
244
+ //#endregion
6
245
  //#region src/contracts/runTypes.d.ts
246
+ /**
247
+ * Test-suite linkage for a run. When set, this run was started by a TestSuiteOrchestrator
248
+ * as one test case inside a TestSuiteRun. The `IsTestRun` node and host-side persisters key
249
+ * off the presence of this field. Subworkflow runs inherit it from their parent run.
250
+ */
251
+ interface RunTestContext {
252
+ readonly testSuiteRunId: string;
253
+ readonly testCaseIndex: number;
254
+ /**
255
+ * Optional human-friendly label for this test case (e.g. an email subject when fixtures
256
+ * are loaded from a mailbox). Resolved per item by `TestTrigger.caseLabel(item)` if set,
257
+ * persisted on `Run.test_case_label` so the Tests-tab tree-table can show "RFQ for batch 14"
258
+ * instead of "run_1777755971399_bbb86beac1396".
259
+ */
260
+ readonly testCaseLabel?: string;
261
+ }
7
262
  interface RunExecutionOptions {
8
263
  /** Run-intent override: force the inline scheduler and bypass node-level offload decisions. */
9
264
  localOnly?: boolean;
@@ -20,6 +275,8 @@ interface RunExecutionOptions {
20
275
  maxNodeActivations?: number;
21
276
  /** Effective cap after engine policy merge (subworkflow nesting). */
22
277
  maxSubworkflowDepth?: number;
278
+ /** Present iff started by a TestSuiteOrchestrator; propagates to subworkflow runs via {@link ParentExecutionRef.testContext}. */
279
+ testContext?: RunTestContext;
23
280
  }
24
281
  /** Engine-owned counters persisted with the run (worker-safe). */
25
282
  interface EngineRunCounters {
@@ -183,6 +440,13 @@ interface RunSummary {
183
440
  workflowId: WorkflowId;
184
441
  startedAt: string;
185
442
  status: RunStatus;
443
+ /**
444
+ * Test-case status for runs dispatched as part of a TestSuiteRun. Carries the
445
+ * assertion-rollup-corrected outcome the test orchestrator persists onto the row, so the
446
+ * executions list can show "failed" for a run whose workflow completed cleanly but whose
447
+ * assertions caught regressions. Absent for non-test runs and legacy rows.
448
+ */
449
+ testCaseStatus?: TestCaseRunStatus;
186
450
  /** ISO timestamp when the run finished (derived from node snapshots or store `updatedAt`); omit while running/pending. */
187
451
  finishedAt?: string;
188
452
  parent?: ParentExecutionRef;
@@ -309,127 +573,34 @@ interface RunEventPublisherDeps {
309
573
  eventBus?: RunEventBus;
310
574
  }
311
575
  //#endregion
312
- //#region src/events/runEvents.d.ts
313
- type RunEvent = Readonly<{
314
- kind: "runCreated";
315
- runId: RunId;
316
- workflowId: WorkflowId;
317
- parent?: ParentExecutionRef;
318
- at: string;
319
- }> | Readonly<{
320
- kind: "runSaved";
321
- runId: RunId;
322
- workflowId: WorkflowId;
323
- parent?: ParentExecutionRef;
324
- at: string;
325
- state: PersistedRunState;
326
- }> | Readonly<{
327
- kind: "nodeQueued";
328
- runId: RunId;
329
- workflowId: WorkflowId;
330
- parent?: ParentExecutionRef;
331
- at: string;
332
- snapshot: NodeExecutionSnapshot;
333
- }> | Readonly<{
334
- kind: "nodeStarted";
335
- runId: RunId;
336
- workflowId: WorkflowId;
337
- parent?: ParentExecutionRef;
338
- at: string;
339
- snapshot: NodeExecutionSnapshot;
340
- }> | Readonly<{
341
- kind: "nodeCompleted";
342
- runId: RunId;
343
- workflowId: WorkflowId;
344
- parent?: ParentExecutionRef;
345
- at: string;
346
- snapshot: NodeExecutionSnapshot;
347
- }> | Readonly<{
348
- kind: "nodeFailed";
349
- runId: RunId;
350
- workflowId: WorkflowId;
351
- parent?: ParentExecutionRef;
352
- at: string;
353
- snapshot: NodeExecutionSnapshot;
354
- }> | Readonly<{
355
- kind: "connectionInvocationStarted";
356
- runId: RunId;
357
- workflowId: WorkflowId;
358
- parent?: ParentExecutionRef;
359
- at: string;
360
- record: ConnectionInvocationRecord;
361
- }> | Readonly<{
362
- kind: "connectionInvocationCompleted";
363
- runId: RunId;
364
- workflowId: WorkflowId;
365
- parent?: ParentExecutionRef;
366
- at: string;
367
- record: ConnectionInvocationRecord;
368
- }> | Readonly<{
369
- kind: "connectionInvocationFailed";
370
- runId: RunId;
371
- workflowId: WorkflowId;
372
- parent?: ParentExecutionRef;
373
- at: string;
374
- record: ConnectionInvocationRecord;
375
- }>;
376
- interface RunEventSubscription {
377
- close(): Promise<void>;
378
- }
379
- interface RunEventBus {
380
- publish(event: RunEvent): Promise<void>;
381
- subscribe(onEvent: (event: RunEvent) => void): Promise<RunEventSubscription>;
382
- subscribeToWorkflow(workflowId: WorkflowId, onEvent: (event: RunEvent) => void): Promise<RunEventSubscription>;
383
- }
384
- //#endregion
385
- //#region src/policies/executionLimits/EngineExecutionLimitsPolicy.d.ts
386
- interface EngineExecutionLimitsPolicyConfig {
387
- readonly defaultMaxNodeActivations: number;
388
- readonly hardMaxNodeActivations: number;
389
- readonly defaultMaxSubworkflowDepth: number;
390
- readonly hardMaxSubworkflowDepth: number;
391
- }
392
- /** Framework defaults for {@link EngineExecutionLimitsPolicy} (merged with host `runtime.engineExecutionLimits`). */
393
- declare const ENGINE_EXECUTION_LIMITS_DEFAULTS: EngineExecutionLimitsPolicyConfig;
576
+ //#region src/triggers/polling/PollingTriggerDedupWindow.d.ts
394
577
  /**
395
- * Resolves per-run execution limits: defaults, hard ceilings, and subworkflow depth for new runs.
578
+ * Merges processed-ID windows for polling triggers, capping the total to avoid unbounded growth.
579
+ * Plugin code receives an instance of this class via {@link PollingTriggerHandle.dedup}.
396
580
  */
397
- declare class EngineExecutionLimitsPolicy {
398
- private readonly config;
399
- constructor(config?: EngineExecutionLimitsPolicyConfig);
400
- /**
401
- * Effective options for a new root run (depth 0): defaults merged with engine ceilings.
402
- * Replaces a separate one-method factory for root-run bootstrap.
403
- */
404
- createRootExecutionOptions(): RunExecutionOptions;
405
- mergeExecutionOptionsForNewRun(parent: ParentExecutionRef | undefined, user: RunExecutionOptions | undefined): RunExecutionOptions;
406
- private capNumber;
581
+ declare class PollingTriggerDedupWindow {
582
+ static readonly defaultCapN = 2000;
583
+ merge(previous: ReadonlyArray<string>, incoming: ReadonlyArray<string>, capN?: number): ReadonlyArray<string>;
407
584
  }
408
585
  //#endregion
409
- //#region src/di/CoreTokens.d.ts
410
- declare const CoreTokens: {
411
- readonly PersistedWorkflowTokenRegistry: TypeToken<PersistedWorkflowTokenRegistryLike>;
412
- readonly CredentialSessionService: TypeToken<CredentialSessionService>;
413
- readonly CredentialTypeRegistry: TypeToken<CredentialTypeRegistry>;
414
- readonly WorkflowRunnerService: TypeToken<WorkflowRunnerService>;
415
- readonly LiveWorkflowRepository: TypeToken<LiveWorkflowRepository>;
416
- readonly WorkflowRepository: TypeToken<WorkflowRepository>;
417
- readonly NodeResolver: TypeToken<NodeResolver>;
418
- readonly WorkflowNodeInstanceFactory: TypeToken<WorkflowNodeInstanceFactory>;
419
- readonly RunIdFactory: TypeToken<RunIdFactory>;
420
- readonly ActivationIdFactory: TypeToken<ActivationIdFactory>;
421
- readonly WorkflowExecutionRepository: TypeToken<WorkflowExecutionRepository>;
422
- readonly TriggerSetupStateRepository: TypeToken<TriggerSetupStateRepository>;
423
- readonly NodeActivationScheduler: TypeToken<NodeActivationScheduler>;
424
- readonly RunDataFactory: TypeToken<RunDataFactory>;
425
- readonly ExecutionContextFactory: TypeToken<ExecutionContextFactory>;
426
- readonly RunEventBus: TypeToken<RunEventBus>;
427
- readonly BinaryStorage: TypeToken<BinaryStorage>;
428
- readonly WebhookBasePath: TypeToken<string>;
429
- /** Engine execution limits (defaults + optional host overrides). Consumers may bind a custom instance to override. */
430
- readonly EngineExecutionLimitsPolicy: TypeToken<EngineExecutionLimitsPolicy>;
431
- readonly WorkflowActivationPolicy: TypeToken<WorkflowActivationPolicy>;
432
- };
586
+ //#region src/triggers/polling/PollingTriggerLogger.d.ts
587
+ /**
588
+ * Minimal logger surface for the polling-trigger runtime.
589
+ * Hosts supply this via {@link EngineDeps.pollingTriggerLogger};
590
+ * when absent the runtime is silent.
591
+ */
592
+ interface PollingTriggerLogger {
593
+ info(message: string): void;
594
+ warn(message: string): void;
595
+ error(message: string, exception?: Error): void;
596
+ debug(message: string): void;
597
+ }
598
+ declare class NoOpPollingTriggerLogger implements PollingTriggerLogger {
599
+ info(): void;
600
+ warn(): void;
601
+ error(): void;
602
+ debug(): void;
603
+ }
433
604
  //#endregion
434
605
  //#region src/contracts/credentialTypes.d.ts
435
606
  type CredentialTypeId = string;
@@ -511,6 +682,27 @@ type CredentialOAuth2AuthDefinition = Readonly<{
511
682
  scopesFromPublicConfig?: CredentialOAuth2ScopesFromPublicConfig;
512
683
  clientIdFieldKey?: string;
513
684
  clientSecretFieldKey?: string;
685
+ } | {
686
+ kind: "oauth2";
687
+ /**
688
+ * Free-form provider identifier for telemetry, DB rows, and Better Auth provider naming.
689
+ * Not used for any registry lookup — URLs come from {@link authorizeUrl} / {@link tokenUrl}.
690
+ */
691
+ providerId: string;
692
+ /**
693
+ * Authorization endpoint. May contain `{publicFieldKey}` placeholders that the runtime
694
+ * substitutes from the credential's resolved public config (URL-encoded).
695
+ * Example: `https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize`
696
+ */
697
+ authorizeUrl: string;
698
+ /** Token endpoint. Same templating rules as {@link authorizeUrl}. */
699
+ tokenUrl: string;
700
+ /** Optional userinfo endpoint. Same templating rules as {@link authorizeUrl}. */
701
+ userInfoUrl?: string;
702
+ scopes: ReadonlyArray<string>;
703
+ scopesFromPublicConfig?: CredentialOAuth2ScopesFromPublicConfig;
704
+ clientIdFieldKey?: string;
705
+ clientSecretFieldKey?: string;
514
706
  }>;
515
707
  type CredentialAuthDefinition = CredentialOAuth2AuthDefinition;
516
708
  type CredentialAdvancedSectionPresentation = Readonly<{
@@ -601,6 +793,71 @@ declare class CredentialUnboundError extends Error {
601
793
  private static createMessage;
602
794
  }
603
795
  //#endregion
796
+ //#region src/contracts/collectionTypes.d.ts
797
+ /**
798
+ * Represents a typed store for a single collection.
799
+ * All rows include auto-managed id, created_at, and updated_at fields.
800
+ */
801
+ interface CollectionStore<TRow extends Record<string, unknown> = Record<string, unknown>> {
802
+ /**
803
+ * Insert a new row. id, created_at, and updated_at are auto-populated.
804
+ */
805
+ insert(row: TRow): Promise<TRow & {
806
+ id: string;
807
+ created_at: Date;
808
+ updated_at: Date;
809
+ }>;
810
+ /**
811
+ * Get a single row by id.
812
+ */
813
+ get(id: string): Promise<(TRow & {
814
+ id: string;
815
+ created_at: Date;
816
+ updated_at: Date;
817
+ }) | null>;
818
+ /**
819
+ * Find a single row matching the provided filter.
820
+ */
821
+ findOne(filter: Partial<TRow>): Promise<(TRow & {
822
+ id: string;
823
+ created_at: Date;
824
+ updated_at: Date;
825
+ }) | null>;
826
+ /**
827
+ * List rows with optional pagination and filtering.
828
+ */
829
+ list(opts?: {
830
+ limit?: number;
831
+ offset?: number;
832
+ where?: Partial<TRow>;
833
+ }): Promise<{
834
+ rows: ReadonlyArray<TRow & {
835
+ id: string;
836
+ created_at: Date;
837
+ updated_at: Date;
838
+ }>;
839
+ total: number;
840
+ }>;
841
+ /**
842
+ * Update a row by id with partial data.
843
+ */
844
+ update(id: string, patch: Partial<TRow>): Promise<TRow & {
845
+ id: string;
846
+ created_at: Date;
847
+ updated_at: Date;
848
+ }>;
849
+ /**
850
+ * Delete a row by id. Hard delete only (no soft delete).
851
+ */
852
+ delete(id: string): Promise<{
853
+ deleted: boolean;
854
+ }>;
855
+ }
856
+ /**
857
+ * Runtime collections context: keyed by collection name.
858
+ */
859
+ type CollectionsContext = Readonly<Record<string, CollectionStore>>;
860
+ //#endregion
604
861
  //#region src/contracts/CostTrackingTelemetryContract.d.ts
605
862
  type CostTrackingComponent = "chat" | "ocr" | "rag";
606
863
  declare const CostTrackingTelemetryMetricNames: {
@@ -980,6 +1237,15 @@ interface ExecutionContext {
980
1237
  itemIndex?: number;
981
1238
  /** When set, this ctx is executing inside a sub-agent triggered by the named parent invocation. */
982
1239
  parentInvocationId?: ConnectionInvocationId;
1240
+ /**
1241
+ * Present iff the run was started by a TestSuiteOrchestrator. The {@link IsTestRunNode}
1242
+ * branches on this; assertion-emitting nodes use it to decide whether to record results.
1243
+ */
1244
+ testContext?: RunTestContext;
1245
+ /**
1246
+ * Collections registered in the codemation config, keyed by collection name.
1247
+ */
1248
+ readonly collections?: CollectionsContext;
983
1249
  }
984
1250
  interface ExecutionContextFactory {
985
1251
  create(args: {
@@ -994,6 +1260,7 @@ interface ExecutionContextFactory {
994
1260
  nodeState?: NodeExecutionStatePublisher;
995
1261
  telemetry?: ExecutionTelemetry;
996
1262
  getCredential<TSession = unknown>(slotKey: string): Promise<TSession>;
1263
+ testContext?: RunTestContext;
997
1264
  }): ExecutionContext;
998
1265
  }
999
1266
  interface NodeExecutionContext<TConfig extends NodeConfigBase = NodeConfigBase> extends ExecutionContext {
@@ -1003,12 +1270,34 @@ interface NodeExecutionContext<TConfig extends NodeConfigBase = NodeConfigBase>
1003
1270
  telemetry: NodeExecutionTelemetry;
1004
1271
  binary: NodeBinaryAttachmentService;
1005
1272
  }
1273
+ interface PollingTriggerHandle {
1274
+ /**
1275
+ * Start the polling loop. The runtime registers its own cleanup handle so callers do not need to
1276
+ * call {@link TriggerSetupContext.registerCleanup} for the loop.
1277
+ * @returns The state returned by the first cycle (or `undefined` when the overlap guard fired).
1278
+ */
1279
+ start<TState, TItem>(args: {
1280
+ intervalMs: number;
1281
+ seedState?: TState;
1282
+ runCycle: (cycleCtx: {
1283
+ previousState: TState | undefined;
1284
+ signal: AbortSignal;
1285
+ }) => Promise<{
1286
+ items: Items<TItem>;
1287
+ nextState: TState;
1288
+ }>;
1289
+ }): Promise<TState | undefined>;
1290
+ /** Convenience dedup-window helper. */
1291
+ readonly dedup: PollingTriggerDedupWindow;
1292
+ }
1006
1293
  interface TriggerSetupContext<TConfig extends TriggerNodeConfig<any, any> = TriggerNodeConfig<any, any>, TSetupState$1 extends JsonValue | undefined = TriggerNodeSetupState<TConfig>> extends ExecutionContext {
1007
1294
  trigger: TriggerInstanceId;
1008
1295
  config: TConfig;
1009
1296
  previousState: TSetupState$1;
1010
1297
  registerCleanup(cleanup: TriggerCleanupHandle): void;
1011
1298
  emit(items: Items): Promise<void>;
1299
+ /** Generic polling-trigger surface. Pre-binds trigger id, emit, and registerCleanup. */
1300
+ readonly polling: PollingTriggerHandle;
1012
1301
  }
1013
1302
  interface TriggerTestItemsContext<TConfig extends TriggerNodeConfig<any, any> = TriggerNodeConfig<any, any>, TSetupState$1 extends JsonValue | undefined = TriggerNodeSetupState<TConfig>> extends ExecutionContext {
1014
1303
  trigger: TriggerInstanceId;
@@ -1203,6 +1492,8 @@ interface EngineDeps {
1203
1492
  workflowPolicyRuntimeDefaults?: WorkflowPolicyRuntimeDefaults;
1204
1493
  /** When set, logs inactive-workflow skips at boot and trigger start/stop on activation changes. */
1205
1494
  triggerRuntimeDiagnostics?: TriggerRuntimeDiagnostics;
1495
+ /** When set, the polling-trigger runtime uses this logger for cycle info/debug/error. */
1496
+ pollingTriggerLogger?: PollingTriggerLogger;
1206
1497
  }
1207
1498
  //#endregion
1208
1499
  //#region src/contracts/retryPolicySpec.types.d.ts
@@ -1234,14 +1525,9 @@ interface ExponentialRetryPolicySpec {
1234
1525
  }
1235
1526
  //#endregion
1236
1527
  //#region src/contracts/workflowTypes.d.ts
1237
- type WorkflowId = string;
1238
- type NodeId = string;
1239
1528
  type NodeIdRef<TJson = unknown> = NodeId & Readonly<{
1240
1529
  __codemationNodeJson?: TJson;
1241
1530
  }>;
1242
- type OutputPortKey = string;
1243
- type InputPortKey = string;
1244
- type PersistedTokenId = string;
1245
1531
  type NodeKind = "trigger" | "node";
1246
1532
  type JsonPrimitive = string | number | boolean | null;
1247
1533
  interface JsonObject {
@@ -1261,7 +1547,6 @@ interface Edge {
1261
1547
  input: InputPortKey;
1262
1548
  };
1263
1549
  }
1264
- type NodeConnectionName = string;
1265
1550
  /**
1266
1551
  * Named connection from a parent node to child nodes that exist in {@link WorkflowDefinition.nodes}
1267
1552
  * but are not traversed by the main execution graph. Parents are commonly executable nodes, but may
@@ -1327,6 +1612,14 @@ interface NodeConfigBase {
1327
1612
  readonly declaredOutputPorts?: ReadonlyArray<OutputPortKey>;
1328
1613
  readonly declaredInputPorts?: ReadonlyArray<InputPortKey>;
1329
1614
  getCredentialRequirements?(): ReadonlyArray<CredentialRequirement>;
1615
+ /**
1616
+ * Marker: this node emits {@link import("./assertionTypes").AssertionResult}-shaped items on its
1617
+ * `main` port. The TestSuiteOrchestrator (and host-side TestAssertionPersister) listen for
1618
+ * `nodeCompleted` events from nodes with this flag set, and persist their output items as
1619
+ * TestAssertion records (only when the run carries a `testContext`). Set on assertion node
1620
+ * configs (e.g. `AssertionNodeConfig`, `StringEqualsAssertionNodeConfig`).
1621
+ */
1622
+ readonly emitsAssertions?: true;
1330
1623
  }
1331
1624
  declare const runnableNodeInputType: unique symbol;
1332
1625
  declare const runnableNodeOutputType: unique symbol;
@@ -1356,6 +1649,12 @@ interface TriggerNodeConfig<TOutputJson$1 = unknown, TSetupState$1 extends JsonV
1356
1649
  readonly kind: "trigger";
1357
1650
  readonly [triggerNodeOutputType]?: TOutputJson$1;
1358
1651
  readonly [triggerNodeSetupStateType]?: TSetupState$1;
1652
+ /**
1653
+ * Distinguishes triggers driven by the live activation policy (webhooks, cron, polling) from
1654
+ * triggers driven only by the {@link TestSuiteOrchestrator}. `WorkflowActivation` skips
1655
+ * `"test"` triggers; the orchestrator skips `"live"` triggers. Defaults to `"live"` when omitted.
1656
+ */
1657
+ readonly triggerKind?: "live" | "test";
1359
1658
  }
1360
1659
  type RunnableNodeInputJson<TConfig extends RunnableNodeConfig<any, any>> = TConfig extends RunnableNodeConfig<infer TInputJson, any> ? TInputJson : never;
1361
1660
  type RunnableNodeOutputJson<TConfig extends RunnableNodeConfig<any, any>> = TConfig extends RunnableNodeConfig<any, infer TOutputJson> ? TOutputJson : never;
@@ -1422,6 +1721,12 @@ interface ParentExecutionRef {
1422
1721
  engineMaxNodeActivations?: number;
1423
1722
  /** Effective max subworkflow depth from the parent run (propagated to child policy merge). */
1424
1723
  engineMaxSubworkflowDepth?: number;
1724
+ /**
1725
+ * Test-suite linkage inherited by the child subworkflow run. Set by whichever node
1726
+ * spawns the subworkflow when its own `ctx.testContext` is present, so assertions
1727
+ * emitted inside a subworkflow land under the correct parent test case.
1728
+ */
1729
+ testContext?: RunTestContext;
1425
1730
  }
1426
1731
  interface RunDataSnapshot {
1427
1732
  getOutputs(nodeId: NodeId): NodeOutputs | undefined;
@@ -1518,23 +1823,61 @@ interface WorkflowPolicyRuntimeDefaults {
1518
1823
  readonly storagePolicy?: WorkflowStoragePolicyMode;
1519
1824
  }
1520
1825
  //#endregion
1521
- //#region src/contracts/emitPorts.d.ts
1522
- declare const EMIT_PORTS_BRAND: unique symbol;
1523
- type PortsEmission = Readonly<{
1524
- readonly [EMIT_PORTS_BRAND]: true;
1525
- readonly ports: Readonly<Partial<Record<OutputPortKey, Items | ReadonlyArray<JsonNonArray>>>>;
1526
- }>;
1527
- declare function emitPorts(ports: Readonly<Partial<Record<OutputPortKey, Items | ReadonlyArray<JsonNonArray>>>>): PortsEmission;
1528
- declare function isPortsEmission(value: unknown): value is PortsEmission;
1529
- declare function isUnbrandedPortsEmissionShape(value: unknown): value is Readonly<{
1530
- ports: unknown;
1531
- }>;
1532
- //#endregion
1533
- //#region src/contracts/itemMeta.d.ts
1826
+ //#region src/contracts/assertionTypes.d.ts
1534
1827
  /**
1535
- * Reads `meta._cm.originIndex` when present (used for fan-in merge-by-origin and Merge routing).
1828
+ * One assertion emitted by an assertion-emitting node (a node whose config sets
1829
+ * `emitsAssertions: true`). Each emitted item on `main` carries one of these as `item.json`.
1830
+ *
1831
+ * Pass/fail is derived from `score >= (passThreshold ?? 0.5)` — see {@link deriveAssertionPassed}.
1832
+ * The `errored` marker is for cases where the assertion code itself threw (distinct from
1833
+ * "the assertion was evaluated and the score was low") and is treated as a hard fail in rollups
1834
+ * regardless of `score`.
1536
1835
  */
1537
- declare function getOriginIndexFromItem(item: Item): number | undefined;
1836
+ interface AssertionResult {
1837
+ readonly name: string;
1838
+ /** 0..1 score. Source of truth for pass/fail (compared against `passThreshold`). */
1839
+ readonly score: number;
1840
+ /** 0..1 threshold for "passed". When omitted, consumers default to 0.5. */
1841
+ readonly passThreshold?: number;
1842
+ /** True when evaluating the assertion threw — treated as fail regardless of `score`. */
1843
+ readonly errored?: true;
1844
+ /** What the assertion expected. Free-form JSON; UIs render with a JSON viewer. */
1845
+ readonly expected?: JsonValue;
1846
+ /** What the workflow actually produced. */
1847
+ readonly actual?: JsonValue;
1848
+ /** Short human-readable explanation, especially for fails / errors. */
1849
+ readonly message?: string;
1850
+ /** Bag of supplemental fields (e.g. judge prompt, judge raw response, comparison method). */
1851
+ readonly details?: Readonly<Record<string, JsonValue>>;
1852
+ }
1853
+ /**
1854
+ * Default {@link AssertionResult.passThreshold} when authors omit it. Boolean-style assertions
1855
+ * (assertEqual / contains / etc.) emit `score: 1` or `score: 0` so this default works for them;
1856
+ * AI-judge assertions are expected to set their own threshold.
1857
+ */
1858
+ declare const DEFAULT_ASSERTION_PASS_THRESHOLD = 0.5;
1859
+ /**
1860
+ * Derive whether an assertion result is considered "passing" using the score-based contract:
1861
+ * `errored` always fails, otherwise `score >= (passThreshold ?? 0.5)`. This is the canonical
1862
+ * derivation — UI and rollup code should call it rather than inlining the comparison so future
1863
+ * tweaks (e.g. NaN handling) land in one place.
1864
+ */
1865
+ declare function deriveAssertionPassed(result: {
1866
+ readonly score: number;
1867
+ readonly passThreshold?: number;
1868
+ readonly errored?: true;
1869
+ }): boolean;
1870
+ /**
1871
+ * Provenance for a persisted {@link AssertionResult}: which node produced it and where in the
1872
+ * per-item iteration tree it landed. Filled in by the host-side persister, not the node itself.
1873
+ */
1874
+ interface AssertionResultProvenance {
1875
+ readonly nodeId: NodeId;
1876
+ /** Per-item iteration id when the emitting node ran inside a per-item loop. */
1877
+ readonly iterationId?: string;
1878
+ /** Item index (0-based) within the activation that produced this assertion. */
1879
+ readonly itemIndex?: number;
1880
+ }
1538
1881
  //#endregion
1539
1882
  //#region src/contracts/itemExpr.d.ts
1540
1883
  declare const ITEM_EXPR_BRAND: unique symbol;
@@ -1576,34 +1919,6 @@ type Expr<T, TItemJson = unknown> = ItemExpr<T, TItemJson>;
1576
1919
  type Param<T, TItemJson = unknown> = T | Expr<T, TItemJson>;
1577
1920
  type ParamDeep<T, TItemJson = unknown> = Expr<T, TItemJson> | (T extends readonly (infer U)[] ? ReadonlyArray<ParamDeep<U, TItemJson>> : never) | (T extends object ? { [K in keyof T]: ParamDeep<T[K], TItemJson> } : T);
1578
1921
  //#endregion
1579
- //#region src/contracts/NoRetryPolicy.d.ts
1580
- declare class NoRetryPolicy implements NoneRetryPolicySpec {
1581
- readonly kind: "none";
1582
- }
1583
- //#endregion
1584
- //#region src/contracts/RetryPolicy.d.ts
1585
- declare class RetryPolicy implements FixedRetryPolicySpec {
1586
- readonly maxAttempts: number;
1587
- readonly delayMs: number;
1588
- readonly kind: "fixed";
1589
- constructor(maxAttempts: number, delayMs: number);
1590
- /** Default for HTTP-style transient failures: 3 tries, 1s between attempts. */
1591
- static readonly defaultForHttp: FixedRetryPolicySpec;
1592
- /** Default for LLM / agent calls: 3 tries, 2s fixed backoff. */
1593
- static readonly defaultForAiAgent: FixedRetryPolicySpec;
1594
- }
1595
- //#endregion
1596
- //#region src/contracts/ExpRetryPolicy.d.ts
1597
- declare class ExpRetryPolicy implements ExponentialRetryPolicySpec {
1598
- readonly maxAttempts: number;
1599
- readonly initialDelayMs: number;
1600
- readonly multiplier: number;
1601
- readonly maxDelayMs?: number | undefined;
1602
- readonly jitter?: boolean | undefined;
1603
- readonly kind: "exponential";
1604
- constructor(maxAttempts: number, initialDelayMs: number, multiplier: number, maxDelayMs?: number | undefined, jitter?: boolean | undefined);
1605
- }
1606
- //#endregion
1607
1922
  //#region src/contracts/CostCatalogContract.d.ts
1608
1923
  interface CostCatalogEntry {
1609
1924
  readonly component: CostTrackingUsageRecord["component"];
@@ -1619,19 +1934,6 @@ interface CostCatalog {
1619
1934
  findEntry(args: CostTrackingUsageRecord): CostCatalogEntry | undefined;
1620
1935
  }
1621
1936
  //#endregion
1622
- //#region src/contracts/NoOpCostTrackingTelemetry.d.ts
1623
- declare class NoOpCostTrackingTelemetry implements CostTrackingTelemetry {
1624
- captureUsage(_: CostTrackingUsageRecord): Promise<CostTrackingPriceQuote | undefined>;
1625
- forScope(_: TelemetryScope): CostTrackingTelemetry;
1626
- }
1627
- //#endregion
1628
- //#region src/contracts/NoOpCostTrackingTelemetryFactory.d.ts
1629
- declare class NoOpCostTrackingTelemetryFactory implements CostTrackingTelemetryFactory {
1630
- create(_: Readonly<{
1631
- telemetry: ExecutionTelemetry;
1632
- }>): CostTrackingTelemetry;
1633
- }
1634
- //#endregion
1635
1937
  //#region src/contracts/executionPersistenceContracts.d.ts
1636
1938
  /** Canonical id for persisted execution rows (activation or connection invocation). */
1637
1939
  type ExecutionInstanceId = string;
@@ -1820,6 +2122,65 @@ interface WorkflowDetailSelectionState {
1820
2122
  readonly selectedInstanceId: ExecutionInstanceId | null;
1821
2123
  }
1822
2124
  //#endregion
2125
+ //#region src/contracts/emitPorts.d.ts
2126
+ declare const EMIT_PORTS_BRAND: unique symbol;
2127
+ type PortsEmission = Readonly<{
2128
+ readonly [EMIT_PORTS_BRAND]: true;
2129
+ readonly ports: Readonly<Partial<Record<OutputPortKey, Items | ReadonlyArray<JsonNonArray>>>>;
2130
+ }>;
2131
+ declare function emitPorts(ports: Readonly<Partial<Record<OutputPortKey, Items | ReadonlyArray<JsonNonArray>>>>): PortsEmission;
2132
+ declare function isPortsEmission(value: unknown): value is PortsEmission;
2133
+ declare function isUnbrandedPortsEmissionShape(value: unknown): value is Readonly<{
2134
+ ports: unknown;
2135
+ }>;
2136
+ //#endregion
2137
+ //#region src/contracts/itemMeta.d.ts
2138
+ /**
2139
+ * Reads `meta._cm.originIndex` when present (used for fan-in merge-by-origin and Merge routing).
2140
+ */
2141
+ declare function getOriginIndexFromItem(item: Item): number | undefined;
2142
+ //#endregion
2143
+ //#region src/contracts/NoRetryPolicy.d.ts
2144
+ declare class NoRetryPolicy implements NoneRetryPolicySpec {
2145
+ readonly kind: "none";
2146
+ }
2147
+ //#endregion
2148
+ //#region src/contracts/RetryPolicy.d.ts
2149
+ declare class RetryPolicy implements FixedRetryPolicySpec {
2150
+ readonly maxAttempts: number;
2151
+ readonly delayMs: number;
2152
+ readonly kind: "fixed";
2153
+ constructor(maxAttempts: number, delayMs: number);
2154
+ /** Default for HTTP-style transient failures: 3 tries, 1s between attempts. */
2155
+ static readonly defaultForHttp: FixedRetryPolicySpec;
2156
+ /** Default for LLM / agent calls: 3 tries, 2s fixed backoff. */
2157
+ static readonly defaultForAiAgent: FixedRetryPolicySpec;
2158
+ }
2159
+ //#endregion
2160
+ //#region src/contracts/ExpRetryPolicy.d.ts
2161
+ declare class ExpRetryPolicy implements ExponentialRetryPolicySpec {
2162
+ readonly maxAttempts: number;
2163
+ readonly initialDelayMs: number;
2164
+ readonly multiplier: number;
2165
+ readonly maxDelayMs?: number | undefined;
2166
+ readonly jitter?: boolean | undefined;
2167
+ readonly kind: "exponential";
2168
+ constructor(maxAttempts: number, initialDelayMs: number, multiplier: number, maxDelayMs?: number | undefined, jitter?: boolean | undefined);
2169
+ }
2170
+ //#endregion
2171
+ //#region src/contracts/NoOpCostTrackingTelemetry.d.ts
2172
+ declare class NoOpCostTrackingTelemetry implements CostTrackingTelemetry {
2173
+ captureUsage(_: CostTrackingUsageRecord): Promise<CostTrackingPriceQuote | undefined>;
2174
+ forScope(_: TelemetryScope): CostTrackingTelemetry;
2175
+ }
2176
+ //#endregion
2177
+ //#region src/contracts/NoOpCostTrackingTelemetryFactory.d.ts
2178
+ declare class NoOpCostTrackingTelemetryFactory implements CostTrackingTelemetryFactory {
2179
+ create(_: Readonly<{
2180
+ telemetry: ExecutionTelemetry;
2181
+ }>): CostTrackingTelemetry;
2182
+ }
2183
+ //#endregion
1823
2184
  //#region src/contracts/runFinishedAtFactory.d.ts
1824
2185
  type RunFinishedAtSource = Pick<PersistedRunState, "status" | "nodeSnapshotsByNodeId" | "finishedAt">;
1825
2186
  /** Derives workflow end time from persisted run root or node snapshots for run listings. */
@@ -1882,7 +2243,6 @@ declare class WorkflowBuilder {
1882
2243
  private readonly options?;
1883
2244
  private readonly nodes;
1884
2245
  private readonly edges;
1885
- private seq;
1886
2246
  constructor(meta: {
1887
2247
  id: WorkflowId;
1888
2248
  name: string;
@@ -1892,8 +2252,37 @@ declare class WorkflowBuilder {
1892
2252
  trigger<TConfig extends AnyTriggerNodeConfig>(config: TConfig): ChainCursor<TriggerNodeOutputJson<TConfig>>;
1893
2253
  start<TConfig extends AnyRunnableNodeConfig>(config: TConfig): ChainCursor<RunnableNodeOutputJson<TConfig>>;
1894
2254
  build(): WorkflowDefinition;
2255
+ private validateNodeIds;
2256
+ }
2257
+ //#endregion
2258
+ //#region src/workflow/dsl/WorkflowDefinitionError.d.ts
2259
+ /**
2260
+ * Thrown by {@link WorkflowBuilder.build} when the workflow definition is structurally invalid.
2261
+ *
2262
+ * Common causes:
2263
+ * - A node has an empty effective id (label is blank and no explicit `id` was given).
2264
+ * - Two or more nodes share the same effective id (label slugs collide or explicit ids clash).
2265
+ *
2266
+ * Fix: provide an explicit `id:` on the offending node configs.
2267
+ */
2268
+ declare class WorkflowDefinitionError extends Error {
2269
+ constructor(message: string);
1895
2270
  }
1896
2271
  //#endregion
2272
+ //#region src/workflow/dsl/NodeIdSlugifier.d.ts
2273
+ /**
2274
+ * Converts a human-readable node label into a stable, URL-safe identifier segment.
2275
+ *
2276
+ * Rules:
2277
+ * - Lowercase the entire string.
2278
+ * - Replace every run of characters outside `[a-z0-9]` with a single `-`.
2279
+ * - Strip any leading or trailing `-` characters.
2280
+ * - Return `""` for blank/empty input.
2281
+ */
2282
+ declare const NodeIdSlugifier: {
2283
+ slugify(label: string): string;
2284
+ };
2285
+ //#endregion
1897
2286
  //#region src/workflow/definition/ConnectionInvocationIdFactory.d.ts
1898
2287
  /**
1899
2288
  * Unique ids for persisted connection invocation history rows (LLM/tool calls under an owning node).
@@ -2107,37 +2496,6 @@ declare class Engine implements NodeActivationContinuation, NodeExecutionRequest
2107
2496
  handleNodeExecutionRequest(request: NodeExecutionRequest): Promise<void>;
2108
2497
  }
2109
2498
  //#endregion
2110
- //#region src/workflowSnapshots/WorkflowSnapshotCodec.d.ts
2111
- declare class WorkflowSnapshotCodec {
2112
- private readonly tokenRegistry;
2113
- constructor(tokenRegistry: PersistedWorkflowTokenRegistryLike);
2114
- create(workflow: WorkflowDefinition): PersistedWorkflowSnapshot;
2115
- hydrate(snapshotNode: PersistedWorkflowSnapshotNode, liveConfig: NodeConfigBase): NodeConfigBase;
2116
- private serializeConfig;
2117
- private injectTokenIds;
2118
- private mergeValue;
2119
- private mergeNestedValue;
2120
- private restoreNonSerializableProperties;
2121
- private restoreTypeProperty;
2122
- private resolveTokenId;
2123
- private resolveTokenName;
2124
- private asTypeToken;
2125
- private asRecord;
2126
- }
2127
- //#endregion
2128
- //#region src/policies/executionLimits/EngineExecutionLimitsPolicyFactory.d.ts
2129
- /**
2130
- * Builds {@link EngineExecutionLimitsPolicy} by merging {@link ENGINE_EXECUTION_LIMITS_DEFAULTS} with optional `overrides` (e.g. host `runtime.engineExecutionLimits`).
2131
- */
2132
- declare class EngineExecutionLimitsPolicyFactory {
2133
- create(overrides?: Partial<EngineExecutionLimitsPolicyConfig>): EngineExecutionLimitsPolicy;
2134
- }
2135
- //#endregion
2136
- //#region src/policies/storage/RunPolicySnapshotFactory.d.ts
2137
- declare class RunPolicySnapshotFactory {
2138
- static create(workflow: WorkflowDefinition, defaults?: WorkflowPolicyRuntimeDefaults): PersistedRunPolicySnapshot;
2139
- }
2140
- //#endregion
2141
2499
  //#region src/policies/storage/WorkflowStoragePolicyEvaluator.d.ts
2142
2500
  declare class WorkflowStoragePolicyEvaluator {
2143
2501
  private readonly nodeResolver;
@@ -2167,6 +2525,37 @@ declare class WorkflowPolicyErrorServices {
2167
2525
  resolveWorkflowErrorHandler(spec: WorkflowErrorHandlerSpec | undefined): WorkflowErrorHandler | undefined;
2168
2526
  }
2169
2527
  //#endregion
2528
+ //#region src/policies/executionLimits/EngineExecutionLimitsPolicyFactory.d.ts
2529
+ /**
2530
+ * Builds {@link EngineExecutionLimitsPolicy} by merging {@link ENGINE_EXECUTION_LIMITS_DEFAULTS} with optional `overrides` (e.g. host `runtime.engineExecutionLimits`).
2531
+ */
2532
+ declare class EngineExecutionLimitsPolicyFactory {
2533
+ create(overrides?: Partial<EngineExecutionLimitsPolicyConfig>): EngineExecutionLimitsPolicy;
2534
+ }
2535
+ //#endregion
2536
+ //#region src/policies/storage/RunPolicySnapshotFactory.d.ts
2537
+ declare class RunPolicySnapshotFactory {
2538
+ static create(workflow: WorkflowDefinition, defaults?: WorkflowPolicyRuntimeDefaults): PersistedRunPolicySnapshot;
2539
+ }
2540
+ //#endregion
2541
+ //#region src/workflowSnapshots/WorkflowSnapshotCodec.d.ts
2542
+ declare class WorkflowSnapshotCodec {
2543
+ private readonly tokenRegistry;
2544
+ constructor(tokenRegistry: PersistedWorkflowTokenRegistryLike);
2545
+ create(workflow: WorkflowDefinition): PersistedWorkflowSnapshot;
2546
+ hydrate(snapshotNode: PersistedWorkflowSnapshotNode, liveConfig: NodeConfigBase): NodeConfigBase;
2547
+ private serializeConfig;
2548
+ private injectTokenIds;
2549
+ private mergeValue;
2550
+ private mergeNestedValue;
2551
+ private restoreNonSerializableProperties;
2552
+ private restoreTypeProperty;
2553
+ private resolveTokenId;
2554
+ private resolveTokenName;
2555
+ private asTypeToken;
2556
+ private asRecord;
2557
+ }
2558
+ //#endregion
2170
2559
  //#region src/runtime/EngineWorkflowRunnerService.d.ts
2171
2560
  declare class EngineWorkflowRunnerService {
2172
2561
  private readonly engine;
@@ -2249,5 +2638,5 @@ declare class RunIntentService {
2249
2638
  private createWebhookExecutionOptions;
2250
2639
  }
2251
2640
  //#endregion
2252
- export { RetryPolicy as $, CoreTokens as $i, NodeActivationRequestBase as $n, NoOpExecutionTelemetry as $r, RunDataFactory as $t, ConnectionInvocationKind as A, RunPruneCandidate as Aa, CredentialType as Ai, ExponentialRetryPolicySpec as An, WebhookInvocationMatch as Ar, JsonPrimitive as At, RunIterationDto as B, WorkflowExecutionRepository as Ba, Lifecycle as Bi, BinaryStorageWriteResult as Bn, TelemetryArtifactReference as Br, NodeId as Bt, BranchMoreArgs as C, PersistedWorkflowSnapshotNode as Ca, CredentialOAuth2AuthDefinition as Ci, WorkflowStoragePolicySpec as Cn, WorkflowRunnerResolver as Cr, InputPortKey as Ct, ValidStepSequence as D, RunCurrentState as Da, CredentialSessionFactoryArgs as Di, runnableNodeOutputType as Dn, HttpMethod as Dr, JsonArray as Dt, StepSequenceOutput as E, RunCompletionNotifier as Ea, CredentialSessionFactory as Ei, runnableNodeInputType as En, WorkflowSnapshotResolver as Er, Items as Et, PersistedExecutionInstanceKind as F, RunStopCondition as Fa, OAuth2ProviderFromPublicConfig as Fi, BinaryBody as Fn, WorkflowActivationPolicy as Fr, NodeConnectionName as Ft, WorkItemStatus as G, inject as Gi, ExecutionContext as Gn, TelemetryScope as Gr, NodeOutputs as Gt, RunSlotProjectionState as H, TypeToken as Hi, EngineHost as Hn, TelemetryAttributes as Hr, NodeIterationId as Ht, PersistedExecutionInstanceRecord as I, RunSummary as Ia, Container as Ii, BinaryStorage as In, ExecutionTelemetry as Ir, NodeDefinition as It, NoOpCostTrackingTelemetryFactory as J, instanceCachingFactory as Ji, LiveWorkflowRepository as Jn, TelemetrySpanScope as Jr, OutputPortKey as Jt, WorkflowDetailSelectionState as K, injectAll as Ki, ExecutionContextFactory as Kn, TelemetrySpanEnd as Kr, NodeRef as Kt, PersistedRunSlotProjectionRecord as L, WebhookRunResult as La, DependencyContainer$1 as Li, BinaryStorageReadResult as Ln, ExecutionTelemetryFactory as Lr, NodeErrorHandler as Lt, ExecutionInstanceId as M, RunResult as Ma, CredentialTypeId as Mi, NoneRetryPolicySpec as Mn, WebhookTriggerResolution as Mr, MutableRunData as Mt, ExecutionPayloadPolicyFields as N, RunStateResetRequest as Na, CredentialTypeRegistry as Ni, RetryPolicySpec as Nn, WebhookTriggerRoutingDiagnostics as Nr, NodeActivationId as Nt, RunFinishedAtFactory as O, RunEventPublisherDeps as Oa, CredentialSessionService as Oi, triggerNodeOutputType as On, TriggerInstanceId as Or, JsonNonArray as Ot, PayloadStorageKind as P, RunStatus as Pa, CredentialUnboundError as Pi, BinaryAttachmentCreateRequest as Pn, AllWorkflowsActiveWorkflowActivationPolicy as Pr, NodeConfigBase as Pt, ExpRetryPolicy as Q, singleton as Qi, NodeActivationRequest as Qn, NoOpExecutionTelemetryFactory as Qr, PersistedTokenId as Qt, PersistedRunWorkItemKind as R, WorkflowExecutionListingRepository as Ra, Disposable as Ri, BinaryStorageStatResult as Rn, NodeExecutionTelemetry as Rr, NodeErrorHandlerArgs as Rt, BooleanWhenOverloads as S, PersistedWorkflowSnapshot as Sa, CredentialMaterialSourceKind as Si, WorkflowStoragePolicyResolver as Sn, WorkflowRepository as Sr, ExecutionMode as St, BranchStepsArg as T, PinnedNodeOutputsByPort as Ta, CredentialRequirement as Ti, nodeRef as Tn, WorkflowSnapshotFactory as Tr, ItemBinary as Tt, SlotExecutionStateDto as U, container$1 as Ui, ExecutableTriggerNode as Un, TelemetryChildSpanStart as Ur, NodeKind as Ut, RunRevision as V, RegistrationOptions as Vi, EngineDeps as Vn, TelemetryAttributePrimitive as Vr, NodeIdRef as Vt, WorkItemId as W, delay as Wi, ExecutionBinaryService as Wn, TelemetryMetricRecord as Wr, NodeOffloadPolicy as Wt, CostCatalog as X, predicateAwareClassFactory as Xi, NodeActivationContinuation as Xn, GenAiTelemetryAttributeNames as Xr, ParentExecutionRef as Xt, NoOpCostTrackingTelemetry as Y, instancePerContainerCachingFactory as Yi, MultiInputNode as Yn, CodemationTelemetryMetricNames as Yr, PairedItemRef as Yt, CostCatalogEntry as Z, registry as Zi, NodeActivationReceipt as Zn, CodemationTelemetryAttributeNames as Zr, PersistedRunPolicySnapshot as Zt, WorkflowBuilder as _, PersistedMutableNodeState as _a, CredentialHealthStatus as _i, WorkflowNodeConnection as _n, TriggerSetupContext as _r, isUnbrandedPortsEmissionShape as _t, RunTerminalPersistenceCoordinator as a, RunEventSubscription as aa, CostTrackingTelemetry as ai, RunnableNodeOutputJson as an, NodeExecutionScheduler as ar, ItemExprArgs as at, AnyRunnableNodeConfig as b, PersistedRunSchedulingState as ba, CredentialInstanceRecord as bi, WorkflowStoragePolicyDecisionArgs as bn, TriggerTestItemsContext as br, BinaryPreviewKind as bt, EngineExecutionLimitsPolicyFactory as c, ConnectionInvocationRecord as ca, CostTrackingTelemetryMetricNames as ci, TriggerNodeSetupState as cn, NodeResolver as cr, ItemExprResolvedContext as ct, DefaultWorkflowGraphFactory as d, ExecutionFrontierPlan as da, CredentialAdvancedSectionPresentation as di, WorkflowErrorContext as dn, RunnableNode as dr, resolveItemExprsForExecution as dt, ENGINE_EXECUTION_LIMITS_DEFAULTS as ea, NoOpNodeExecutionTelemetry as ei, RunDataSnapshot as en, NodeActivationScheduler as er, NoRetryPolicy as et, WorkflowExecutableNodeClassifierFactory as f, NodeExecutionError as fa, CredentialAuthDefinition as fi, WorkflowErrorHandler as fn, RunnableNodeExecuteArgs as fr, resolveItemExprsInUnknown as ft, ConnectionInvocationIdFactory as g, PendingNodeExecution as ga, CredentialHealth as gi, WorkflowId as gn, TriggerRuntimeDiagnostics as gr, isPortsEmission as gt, ConnectionNodeIdFactory as h, NodeInputsByPort as ha, CredentialFieldSchema as hi, WorkflowGraphFactory as hn, TriggerNode as hr, emitPorts as ht, WorkflowPolicyErrorServices as i, RunEventBus as ia, CostTrackingPriceQuote as ii, RunnableNodeInputJson as in, NodeExecutionRequestHandler as ir, ItemExpr as it, ExecutionInstanceDto as j, RunQueueEntry as ja, CredentialTypeDefinition as ji, FixedRetryPolicySpec as jn, WebhookTriggerMatcher as jr, JsonValue as jt, BatchId as k, RunExecutionOptions as ka, CredentialSetupStatus as ki, triggerNodeSetupStateType as kn, WebhookControlSignal as kr, JsonObject as kt, WorkflowSnapshotCodec as l, CurrentStateExecutionRequest as la, CostTrackingUsageRecord as li, UpstreamRefPlaceholder as ln, PersistedTriggerSetupState as lr, isItemExpr as lt, NodeIterationIdFactory as m, NodeExecutionStatus as ma, CredentialBindingKey as mi, WorkflowGraph as mn, TriggerCleanupHandle as mr, PortsEmission as mt, InMemoryLiveWorkflowRepository as n, EngineExecutionLimitsPolicyConfig as na, NoOpTelemetryArtifactReference as ni, RunIdFactory as nn, NodeExecutionContext as nr, Param as nt, WorkflowStoragePolicyEvaluator as o, ConnectionInvocationAppendArgs as oa, CostTrackingTelemetryAttributeNames as oi, TriggerNodeConfig as on, NodeExecutionStatePublisher as or, ItemExprCallback as ot, WorkflowExecutableNodeClassifier as p, NodeExecutionSnapshot as pa, CredentialBinding as pi, WorkflowErrorHandlerSpec as pn, TestableTriggerNode as pr, getOriginIndexFromItem as pt, WorkflowRunDetailDto as q, injectable as qi, ItemNode as qn, TelemetrySpanEventRecord as qr, NodeSchedulerDecision as qt, EngineWorkflowRunnerService as r, RunEvent as ra, CostTrackingComponent as ri, RunnableNodeConfig as rn, NodeExecutionRequest as rr, ParamDeep as rt, RunPolicySnapshotFactory as s, ConnectionInvocationId as sa, CostTrackingTelemetryFactory as si, TriggerNodeOutputJson as sn, NodeExecutor as sr, ItemExprContext as st, RunIntentService as t, EngineExecutionLimitsPolicy as ta, NoOpTelemetrySpanScope as ti, RunId as tn, NodeBinaryAttachmentService as tr, Expr as tt, Engine as u, EngineRunCounters as ua, AnyCredentialType as ui, WorkflowDefinition as un, PreparedNodeActivationDispatch as ur, itemExpr as ut, ChainCursor as v, PersistedMutableRunState as va, CredentialHealthTester as vi, WorkflowPolicyRuntimeDefaults as vn, TriggerSetupStateFor as vr, ActivationIdFactory as vt, BranchOutputGuard as w, PersistedWorkflowTokenRegistryLike as wa, CredentialOAuth2ScopesFromPublicConfig as wi, branchRef as wn, WorkflowRunnerService as wr, Item as wt, AnyTriggerNodeConfig as x, PersistedRunState as xa, CredentialJsonRecord as xi, WorkflowStoragePolicyMode as xn, WorkflowNodeInstanceFactory as xr, Edge as xt, WhenBuilder as y, PersistedRunControlState as ya, CredentialInstanceId as yi, WorkflowPrunePolicySpec as yn, TriggerSetupStateRepository as yr, BinaryAttachment as yt, PersistedRunWorkItemRecord as z, WorkflowExecutionPruneRepository as za, InjectionToken$1 as zi, BinaryStorageWriteRequest as zn, TelemetryArtifactAttachment as zr, NodeErrorHandlerSpec as zt };
2253
- //# sourceMappingURL=RunIntentService-dteLjNiT.d.ts.map
2641
+ export { RunRevision as $, InputPortKey as $a, PersistedMutableNodeState as $i, NodeActivationRequestBase as $n, NoOpExecutionTelemetryFactory as $r, PersistedRunPolicySnapshot as $t, RunFinishedAtFactory as A, TypeToken as Aa, CredentialSessionFactoryArgs as Ai, ExponentialRetryPolicySpec as An, WebhookControlSignal as Ar, ItemBinary as At, isUnbrandedPortsEmissionShape as B, singleton as Ba, PollingTriggerLogger as Bi, BinaryStorageWriteResult as Bn, TelemetryArtifactAttachment as Br, NodeDefinition as Bt, AnyTriggerNodeConfig as C, WorkflowExecutionRepository as Ca, CredentialInstanceRecord as Ci, WorkflowStoragePolicySpec as Cn, WorkflowRepository as Cr, deriveAssertionPassed as Ct, BranchStepsArg as D, InjectionToken$1 as Da, CredentialOAuth2ScopesFromPublicConfig as Di, runnableNodeOutputType as Dn, WorkflowSnapshotResolver as Dr, Edge as Dt, BranchOutputGuard as E, Disposable as Ea, CredentialOAuth2AuthDefinition as Ei, runnableNodeInputType as En, WorkflowSnapshotFactory as Er, BinaryPreviewKind as Et, NoRetryPolicy as F, injectable as Fa, CredentialTypeId as Fi, BinaryBody as Fn, AllWorkflowsActiveWorkflowActivationPolicy as Fr, JsonPrimitive as Ft, ExecutionPayloadPolicyFields as G, RunEvent as Ga, CurrentStateExecutionRequest as Gi, ExecutionContext as Gn, TelemetryMetricRecord as Gr, NodeIterationId as Gt, ConnectionInvocationKind as H, ENGINE_EXECUTION_LIMITS_DEFAULTS as Ha, ConnectionInvocationAppendArgs as Hi, EngineHost as Hn, TelemetryAttributePrimitive as Hr, NodeErrorHandlerArgs as Ht, getOriginIndexFromItem as I, instanceCachingFactory as Ia, CredentialTypeRegistry as Ii, BinaryStorage as In, WorkflowActivationPolicy as Ir, JsonValue as It, PersistedExecutionInstanceRecord as J, TestCaseRunStatus as Ja, NodeExecutionError as Ji, LiveWorkflowRepository as Jn, TelemetrySpanEventRecord as Jr, NodeOutputs as Jt, PayloadStorageKind as K, RunEventBus as Ka, EngineRunCounters as Ki, ExecutionContextFactory as Kn, TelemetryScope as Kr, NodeKind as Kt, PortsEmission as L, instancePerContainerCachingFactory as La, CredentialUnboundError as Li, BinaryStorageReadResult as Ln, ExecutionTelemetry as Lr, MutableRunData as Lt, NoOpCostTrackingTelemetry as M, delay as Ma, CredentialSetupStatus as Mi, NoneRetryPolicySpec as Mn, WebhookTriggerMatcher as Mr, JsonArray as Mt, ExpRetryPolicy as N, inject as Na, CredentialType as Ni, RetryPolicySpec as Nn, WebhookTriggerResolution as Nr, JsonNonArray as Nt, StepSequenceOutput as O, Lifecycle as Oa, CredentialRequirement as Oi, triggerNodeOutputType as On, HttpMethod as Or, ExecutionMode as Ot, RetryPolicy as P, injectAll as Pa, CredentialTypeDefinition as Pi, BinaryAttachmentCreateRequest as Pn, WebhookTriggerRoutingDiagnostics as Pr, JsonObject as Pt, RunIterationDto as Q, TestTriggerSetupContext as Qa, PendingNodeExecution as Qi, NodeActivationRequest as Qn, CodemationTelemetryAttributeNames as Qr, ParentExecutionRef as Qt, emitPorts as R, predicateAwareClassFactory as Ra, OAuth2ProviderFromPublicConfig as Ri, BinaryStorageStatResult as Rn, ExecutionTelemetryFactory as Rr, NodeActivationId as Rt, AnyRunnableNodeConfig as S, WorkflowExecutionPruneRepository as Sa, CredentialInstanceId as Si, WorkflowStoragePolicyResolver as Sn, WorkflowNodeInstanceFactory as Sr, DEFAULT_ASSERTION_PASS_THRESHOLD as St, BranchMoreArgs as T, DependencyContainer$1 as Ta, CredentialMaterialSourceKind as Ti, nodeRef as Tn, WorkflowRunnerService as Tr, BinaryAttachment as Tt, ExecutionInstanceDto as U, EngineExecutionLimitsPolicy as Ua, ConnectionInvocationId as Ui, ExecutableTriggerNode as Un, TelemetryAttributes as Ur, NodeErrorHandlerSpec as Ut, BatchId as V, CoreTokens as Va, PollingTriggerDedupWindow as Vi, EngineDeps as Vn, TelemetryArtifactReference as Vr, NodeErrorHandler as Vt, ExecutionInstanceId as W, EngineExecutionLimitsPolicyConfig as Wa, ConnectionInvocationRecord as Wi, ExecutionBinaryService as Wn, TelemetryChildSpanStart as Wr, NodeIdRef as Wt, PersistedRunWorkItemKind as X, TestSuiteRunId as Xa, NodeExecutionStatus as Xi, NodeActivationContinuation as Xn, CodemationTelemetryMetricNames as Xr, NodeSchedulerDecision as Xt, PersistedRunSlotProjectionRecord as Y, TestSuiteRunStatus as Ya, NodeExecutionSnapshot as Yi, MultiInputNode as Yn, TelemetrySpanScope as Yr, NodeRef as Yt, PersistedRunWorkItemRecord as Z, TestTriggerNodeConfig as Za, NodeInputsByPort as Zi, NodeActivationReceipt as Zn, GenAiTelemetryAttributeNames as Zr, PairedItemRef as Zt, NodeIdSlugifier as _, RunStopCondition as _a, CredentialBindingKey as _i, WorkflowNodeConnection as _n, TriggerRuntimeDiagnostics as _r, itemExpr as _t, RunPolicySnapshotFactory as a, PersistedWorkflowSnapshotNode as aa, CostTrackingPriceQuote as ai, RunnableNodeInputJson as an, NodeExecutionScheduler as ar, WorkflowRunDetailDto as at, ChainCursor as b, WebhookRunResult as ba, CredentialHealthStatus as bi, WorkflowStoragePolicyDecisionArgs as bn, TriggerSetupStateRepository as br, AssertionResult as bt, RunTerminalPersistenceCoordinator as c, RunCompletionNotifier as ca, CostTrackingTelemetryFactory as ci, TriggerNodeOutputJson as cn, NodeResolver as cr, Expr as ct, DefaultWorkflowGraphFactory as d, RunExecutionOptions as da, CollectionStore as di, WorkflowDefinition as dn, PreparedNodeActivationDispatch as dr, ItemExpr as dt, PersistedMutableRunState as ea, NoOpExecutionTelemetry as ei, RunDataFactory as en, NodeConnectionName as eo, NodeActivationScheduler as er, RunSlotProjectionState as et, WorkflowExecutableNodeClassifierFactory as f, RunPruneCandidate as fa, CollectionsContext as fi, WorkflowErrorContext as fn, RunnableNode as fr, ItemExprArgs as ft, ConnectionInvocationIdFactory as g, RunStatus as ga, CredentialBinding as gi, WorkflowGraphFactory as gn, TriggerNode as gr, isItemExpr as gt, ConnectionNodeIdFactory as h, RunStateResetRequest as ha, CredentialAuthDefinition as hi, WorkflowGraph as hn, TriggerCleanupHandle as hr, ItemExprResolvedContext as ht, WorkflowSnapshotCodec as i, PersistedWorkflowSnapshot as ia, CostTrackingComponent as ii, RunnableNodeConfig as in, WorkflowId as io, NodeExecutionRequestHandler as ir, WorkflowDetailSelectionState as it, NoOpCostTrackingTelemetryFactory as j, container$1 as ja, CredentialSessionService as ji, FixedRetryPolicySpec as jn, WebhookInvocationMatch as jr, Items as jt, ValidStepSequence as k, RegistrationOptions as ka, CredentialSessionFactory as ki, triggerNodeSetupStateType as kn, TriggerInstanceId as kr, Item as kt, WorkflowStoragePolicyEvaluator as l, RunCurrentState as la, CostTrackingTelemetryMetricNames as li, TriggerNodeSetupState as ln, PersistedTriggerSetupState as lr, Param as lt, NodeIterationIdFactory as m, RunResult as ma, CredentialAdvancedSectionPresentation as mi, WorkflowErrorHandlerSpec as mn, TestableTriggerNode as mr, ItemExprContext as mt, InMemoryLiveWorkflowRepository as n, PersistedRunSchedulingState as na, NoOpTelemetrySpanScope as ni, RunId as nn, OutputPortKey as no, NodeExecutionContext as nr, WorkItemId as nt, EngineExecutionLimitsPolicyFactory as o, PersistedWorkflowTokenRegistryLike as oa, CostTrackingTelemetry as oi, RunnableNodeOutputJson as on, NodeExecutionStatePublisher as or, CostCatalog as ot, WorkflowExecutableNodeClassifier as p, RunQueueEntry as pa, AnyCredentialType as pi, WorkflowErrorHandler as pn, RunnableNodeExecuteArgs as pr, ItemExprCallback as pt, PersistedExecutionInstanceKind as q, RunEventSubscription as qa, ExecutionFrontierPlan as qi, ItemNode as qn, TelemetrySpanEnd as qr, NodeOffloadPolicy as qt, EngineWorkflowRunnerService as r, PersistedRunState as ra, NoOpTelemetryArtifactReference as ri, RunIdFactory as rn, PersistedTokenId as ro, NodeExecutionRequest as rr, WorkItemStatus as rt, WorkflowPolicyErrorServices as s, PinnedNodeOutputsByPort as sa, CostTrackingTelemetryAttributeNames as si, TriggerNodeConfig as sn, NodeExecutor as sr, CostCatalogEntry as st, RunIntentService as t, PersistedRunControlState as ta, NoOpNodeExecutionTelemetry as ti, RunDataSnapshot as tn, NodeId as to, NodeBinaryAttachmentService as tr, SlotExecutionStateDto as tt, Engine as u, RunEventPublisherDeps as ua, CostTrackingUsageRecord as ui, UpstreamRefPlaceholder as un, PollingTriggerHandle as ur, ParamDeep as ut, WorkflowDefinitionError as v, RunSummary as va, CredentialFieldSchema as vi, WorkflowPolicyRuntimeDefaults as vn, TriggerSetupContext as vr, resolveItemExprsForExecution as vt, BooleanWhenOverloads as w, Container as wa, CredentialJsonRecord as wi, branchRef as wn, WorkflowRunnerResolver as wr, ActivationIdFactory as wt, WhenBuilder as x, WorkflowExecutionListingRepository as xa, CredentialHealthTester as xi, WorkflowStoragePolicyMode as xn, TriggerTestItemsContext as xr, AssertionResultProvenance as xt, WorkflowBuilder as y, RunTestContext as ya, CredentialHealth as yi, WorkflowPrunePolicySpec as yn, TriggerSetupStateFor as yr, resolveItemExprsInUnknown as yt, isPortsEmission as z, registry as za, NoOpPollingTriggerLogger as zi, BinaryStorageWriteRequest as zn, NodeExecutionTelemetry as zr, NodeConfigBase as zt };
2642
+ //# sourceMappingURL=RunIntentService-BE9CAkbf.d.ts.map