@codemation/core 0.2.3 → 0.4.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 (82) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +2 -0
  3. package/dist/{EngineRuntimeRegistration.types-Bjeo7Sfq.d.ts → EngineRuntimeRegistration.types-DU6MsjU9.d.ts} +2 -2
  4. package/dist/{EngineWorkflowRunnerService-Dd4yD31l.d.cts → EngineWorkflowRunnerService-BBkL4VQF.d.cts} +2 -2
  5. package/dist/{InMemoryRunDataFactory-OUzDmAHt.d.cts → InMemoryRunDataFactory-CsYEMJK2.d.cts} +11 -3
  6. package/dist/{RunIntentService-Bkg4oYrM.d.cts → RunIntentService-BvlTpmEb.d.cts} +224 -237
  7. package/dist/{RunIntentService-BAKikN8h.d.ts → RunIntentService-zbTchO9T.d.ts} +305 -259
  8. package/dist/bootstrap/index.cjs +2 -2
  9. package/dist/bootstrap/index.d.cts +19 -7
  10. package/dist/bootstrap/index.d.ts +3 -3
  11. package/dist/bootstrap/index.js +2 -2
  12. package/dist/{bootstrap-DwS5S7s9.cjs → bootstrap-DHH2uo-W.cjs} +4 -2
  13. package/dist/bootstrap-DHH2uo-W.cjs.map +1 -0
  14. package/dist/{bootstrap-BD6CobHl.js → bootstrap-DbUlOl11.js} +4 -2
  15. package/dist/bootstrap-DbUlOl11.js.map +1 -0
  16. package/dist/{index-BDHCiN22.d.ts → index-CUt13qs1.d.ts} +85 -16
  17. package/dist/index.cjs +74 -12
  18. package/dist/index.cjs.map +1 -1
  19. package/dist/index.d.cts +131 -24
  20. package/dist/index.d.ts +3 -3
  21. package/dist/index.js +64 -13
  22. package/dist/index.js.map +1 -1
  23. package/dist/{runtime-Cy-3FTI_.js → runtime-BdH94eBR.js} +502 -123
  24. package/dist/runtime-BdH94eBR.js.map +1 -0
  25. package/dist/{runtime-ZJUpWmPH.cjs → runtime-feFn8OmG.cjs} +561 -122
  26. package/dist/runtime-feFn8OmG.cjs.map +1 -0
  27. package/dist/testing.cjs +40 -36
  28. package/dist/testing.cjs.map +1 -1
  29. package/dist/testing.d.cts +17 -26
  30. package/dist/testing.d.ts +17 -26
  31. package/dist/testing.js +40 -36
  32. package/dist/testing.js.map +1 -1
  33. package/dist/{workflowActivationPolicy-BzyzXLa_.cjs → workflowActivationPolicy-6V3OJD3N.cjs} +65 -19
  34. package/dist/workflowActivationPolicy-6V3OJD3N.cjs.map +1 -0
  35. package/dist/{workflowActivationPolicy-B8HzTk3o.js → workflowActivationPolicy-Td9HTOuD.js} +65 -19
  36. package/dist/workflowActivationPolicy-Td9HTOuD.js.map +1 -0
  37. package/package.json +2 -1
  38. package/src/ai/AgentConfigInspectorFactory.ts +4 -0
  39. package/src/ai/AgentMessageConfigNormalizerFactory.ts +7 -0
  40. package/src/ai/AgentToolFactory.ts +2 -2
  41. package/src/ai/AiHost.ts +11 -10
  42. package/src/ai/NodeBackedToolConfig.ts +1 -1
  43. package/src/authoring/defineNode.types.ts +144 -25
  44. package/src/authoring/index.ts +3 -1
  45. package/src/bootstrap/runtime/EngineRuntimeRegistrar.ts +8 -0
  46. package/src/contracts/emitPorts.ts +27 -0
  47. package/src/contracts/index.ts +3 -0
  48. package/src/contracts/itemMeta.ts +11 -0
  49. package/src/contracts/itemValue.ts +147 -0
  50. package/src/contracts/runtimeTypes.ts +39 -22
  51. package/src/contracts/workflowTypes.ts +26 -56
  52. package/src/execution/FanInMergeByOriginMerger.ts +67 -0
  53. package/src/execution/ItemValueResolver.ts +27 -0
  54. package/src/execution/NodeActivationRequestComposer.ts +25 -0
  55. package/src/execution/NodeActivationRequestInputPreparer.ts +57 -25
  56. package/src/execution/NodeExecutor.ts +199 -30
  57. package/src/execution/NodeOutputNormalizer.ts +90 -0
  58. package/src/execution/index.ts +2 -0
  59. package/src/index.ts +2 -0
  60. package/src/orchestration/NodeExecutionRequestHandlerService.ts +39 -18
  61. package/src/orchestration/RunContinuationService.ts +11 -17
  62. package/src/planning/CurrentStateFrontierPlanner.ts +20 -20
  63. package/src/planning/RunQueuePlanner.ts +56 -19
  64. package/src/planning/WorkflowTopologyPlanner.ts +57 -33
  65. package/src/testing/ItemHarnessNode.ts +4 -10
  66. package/src/testing/ItemHarnessNodeConfig.ts +7 -16
  67. package/src/testing/RegistrarEngineTestKitFactory.ts +2 -0
  68. package/src/testing/SubWorkflowRunnerTestNode.ts +28 -43
  69. package/src/testing/SwitchHarnessNode.ts +54 -0
  70. package/src/types/index.ts +3 -0
  71. package/src/workflow/dsl/ChainCursorResolver.ts +68 -23
  72. package/src/workflow/dsl/WorkflowBuilder.ts +3 -5
  73. package/src/workflow/dsl/workflowBuilderTypes.ts +5 -8
  74. package/src/workflowSnapshots/MissingRuntimeNode.ts +4 -4
  75. package/src/workflowSnapshots/MissingRuntimeNodeConfig.ts +2 -2
  76. package/src/workflowSnapshots/WorkflowSnapshotCodec.ts +16 -7
  77. package/dist/bootstrap-BD6CobHl.js.map +0 -1
  78. package/dist/bootstrap-DwS5S7s9.cjs.map +0 -1
  79. package/dist/runtime-Cy-3FTI_.js.map +0 -1
  80. package/dist/runtime-ZJUpWmPH.cjs.map +0 -1
  81. package/dist/workflowActivationPolicy-B8HzTk3o.js.map +0 -1
  82. package/dist/workflowActivationPolicy-BzyzXLa_.cjs.map +0 -1
@@ -1,5 +1,5 @@
1
- const require_runtime = require('../runtime-ZJUpWmPH.cjs');
2
- const require_bootstrap = require('../bootstrap-DwS5S7s9.cjs');
1
+ const require_runtime = require('../runtime-feFn8OmG.cjs');
2
+ const require_bootstrap = require('../bootstrap-DHH2uo-W.cjs');
3
3
 
4
4
  exports.ConfigDrivenOffloadPolicy = require_runtime.ConfigDrivenOffloadPolicy;
5
5
  exports.CredentialResolverFactory = require_runtime.CredentialResolverFactory;
@@ -1,6 +1,6 @@
1
- import { Ct as WorkflowErrorHandler, Dn as WorkflowNodeInstanceFactory, Dt as WorkflowId, Hr as EngineExecutionLimitsPolicy, In as WebhookInvocationMatch, J as NodeDefinition, Jt as EngineDeps, K as NodeConfigBase, Kn as EngineRunCounters, Ln as WebhookTriggerMatcher, M as ExecutionMode, Nn as HttpMethod, On as WorkflowRepository, Q as NodeId, Sr as WorkflowExecutionRepository, Ur as EngineExecutionLimitsPolicyConfig, Vn as WorkflowActivationPolicy, Vr as ENGINE_EXECUTION_LIMITS_DEFAULTS, Y as NodeErrorHandler, Z as NodeErrorHandlerSpec, ar as PersistedWorkflowSnapshotNode, br as WorkflowExecutionListingRepository, cn as NodeActivationScheduler, ct as PersistedTokenId, dn as NodeExecutionRequest, dt as RunId, et as NodeOffloadPolicy, fr as RunPruneCandidate, gn as NodeResolver, in as NodeActivationContinuation, jt as WorkflowStoragePolicyDecisionArgs, kr as TypeToken, kt as WorkflowPolicyRuntimeDefaults, n as InMemoryLiveWorkflowRepository, nr as PersistedRunSchedulingState, on as NodeActivationRequest, ot as ParentExecutionRef, pn as NodeExecutionScheduler, r as Engine, rr as PersistedRunState, rt as NodeSchedulerDecision, st as PersistedRunPolicySnapshot, t as RunIntentService, tt as NodeOutputs, vn as PreparedNodeActivationDispatch, vr as RunSummary, wr as DependencyContainer, wt as WorkflowErrorHandlerSpec, xr as WorkflowExecutionPruneRepository, xt as WorkflowDefinition, zn as WebhookTriggerRoutingDiagnostics } from "../RunIntentService-Bkg4oYrM.cjs";
2
- import { a as WorkflowSnapshotCodec, i as WebhookTriggerMatcherProvider, n as EngineRuntimeRegistrationOptions, r as TriggerRuntimeDiagnosticsProvider, t as EngineWorkflowRunnerService } from "../EngineWorkflowRunnerService-Dd4yD31l.cjs";
3
- import { a as InProcessRetryRunner, c as AsyncSleeper, i as UnavailableBinaryStorage, l as CredentialResolverFactory, n as InMemoryBinaryStorage, o as DefaultExecutionContextFactory, r as DefaultExecutionBinaryService, s as DefaultAsyncSleeper, t as InMemoryRunDataFactory } from "../InMemoryRunDataFactory-OUzDmAHt.cjs";
1
+ import { $n as WorkflowExecutionPruneRepository, A as NodeOutputs, B as RunId, C as NodeDefinition, D as NodeId, E as NodeErrorHandlerSpec, Er as DependencyContainer, F as ParentExecutionRef, Fn as PersistedRunState, Gr as EngineExecutionLimitsPolicyConfig, I as PersistedRunPolicySnapshot, It as NodeActivationRequest, Jt as PreparedNodeActivationDispatch, Kt as NodeResolver, L as PersistedTokenId, Ln as PersistedWorkflowSnapshotNode, M as NodeSchedulerDecision, Pn as PersistedRunSchedulingState, Pt as NodeActivationContinuation, Q as WorkflowErrorHandlerSpec, Qn as WorkflowExecutionListingRepository, Rt as NodeActivationScheduler, Tt as EngineDeps, Ur as ENGINE_EXECUTION_LIMITS_DEFAULTS, Ut as NodeExecutionScheduler, Vt as NodeExecutionRequest, Wn as RunPruneCandidate, Wr as EngineExecutionLimitsPolicy, Xn as RunSummary, Y as WorkflowDefinition, Z as WorkflowErrorHandler, _n as WebhookTriggerRoutingDiagnostics, an as WorkflowNodeInstanceFactory, at as WorkflowStoragePolicyDecisionArgs, c as ExecutionMode, dn as HttpMethod, er as WorkflowExecutionRepository, hn as WebhookTriggerMatcher, jr as TypeToken, k as NodeOffloadPolicy, mn as WebhookInvocationMatch, n as InMemoryLiveWorkflowRepository, on as WorkflowRepository, r as Engine, rt as WorkflowPolicyRuntimeDefaults, t as RunIntentService, tt as WorkflowId, w as NodeErrorHandler, wn as EngineRunCounters, x as NodeConfigBase, yn as WorkflowActivationPolicy } from "../RunIntentService-BvlTpmEb.cjs";
2
+ import { a as WorkflowSnapshotCodec, i as WebhookTriggerMatcherProvider, n as EngineRuntimeRegistrationOptions, r as TriggerRuntimeDiagnosticsProvider, t as EngineWorkflowRunnerService } from "../EngineWorkflowRunnerService-BBkL4VQF.cjs";
3
+ import { a as ItemValueResolver, c as DefaultAsyncSleeper, i as UnavailableBinaryStorage, l as AsyncSleeper, n as InMemoryBinaryStorage, o as InProcessRetryRunner, r as DefaultExecutionBinaryService, s as DefaultExecutionContextFactory, t as InMemoryRunDataFactory, u as CredentialResolverFactory } from "../InMemoryRunDataFactory-CsYEMJK2.cjs";
4
4
 
5
5
  //#region src/workflowSnapshots/MissingRuntimeFallbacksFactory.d.ts
6
6
  declare class MissingRuntimeFallbacks {
@@ -49,12 +49,24 @@ declare class EngineRuntimeRegistrar {
49
49
  declare class NodeExecutor {
50
50
  private readonly nodeInstanceFactory;
51
51
  private readonly retryRunner;
52
- constructor(nodeInstanceFactory: WorkflowNodeInstanceFactory, retryRunner: InProcessRetryRunner);
52
+ private readonly fanInMerger;
53
+ private readonly outputNormalizer;
54
+ private readonly itemValueResolver;
55
+ constructor(nodeInstanceFactory: WorkflowNodeInstanceFactory, retryRunner: InProcessRetryRunner, itemValueResolver?: ItemValueResolver);
53
56
  execute(request: NodeActivationRequest): Promise<NodeOutputs>;
54
- private executeMultiInputNode;
57
+ private executeMultiInputActivation;
55
58
  private executeSingleInputNode;
56
- private hasExecuteOne;
57
- private executeItemNode;
59
+ private isTriggerNode;
60
+ private isRunnableNode;
61
+ private hasExecuteMulti;
62
+ private asMultiFromSingleActivation;
63
+ private executeRunnableActivation;
64
+ /** Use resolver ctx only when {@link NodeExecutionContext.config} is non-nullish. */
65
+ private pickExecutionContext;
66
+ private resolveInputSchema;
67
+ private assertItemJsonNotTopLevelArray;
68
+ private assertNoPortEnvelopeBypass;
69
+ private resolveLineageCarry;
58
70
  }
59
71
  //#endregion
60
72
  //#region src/execution/NodeInstanceFactory.d.ts
@@ -1,6 +1,6 @@
1
- import { Ai as EngineExecutionLimitsPolicy, Xt as PersistedTokenId, _i as TypeToken, a as RunTerminalPersistenceCoordinator, c as EngineExecutionLimitsPolicyFactory, fi as DependencyContainer, i as WorkflowPolicyErrorServices, ji as EngineExecutionLimitsPolicyConfig, ki as ENGINE_EXECUTION_LIMITS_DEFAULTS, ln as WorkflowDefinition, n as InMemoryLiveWorkflowRepository, o as WorkflowStoragePolicyEvaluator, r as EngineWorkflowRunnerService, s as RunPolicySnapshotFactory, t as RunIntentService, u as Engine } from "../RunIntentService-BAKikN8h.js";
2
- import { At as AsyncSleeper, Dt as InProcessRetryRunner, Et as NodeExecutor, Nt as EngineCompositionDeps, Ot as DefaultExecutionContextFactory, Pt as EngineFactory, Tt as NodeInstanceFactory, a as ConfigDrivenOffloadPolicy, c as InMemoryWorkflowExecutionRepository, d as DefaultExecutionBinaryService, f as UnavailableBinaryStorage, i as InlineDrivingScheduler, jt as CredentialResolverFactory, kt as DefaultAsyncSleeper, l as InMemoryRunDataFactory, n as HintOnlyOffloadPolicy, o as WorkflowRepositoryWebhookTriggerMatcher, r as DefaultDrivingScheduler, s as RunSummaryMapper, t as LocalOnlyScheduler, u as InMemoryBinaryStorage } from "../index-BDHCiN22.js";
3
- import { n as TriggerRuntimeDiagnosticsProvider, r as WebhookTriggerMatcherProvider, t as EngineRuntimeRegistrationOptions } from "../EngineRuntimeRegistration.types-Bjeo7Sfq.js";
1
+ import { Ht as PersistedTokenId, Ii as TypeToken, Ji as ENGINE_EXECUTION_LIMITS_DEFAULTS, Xi as EngineExecutionLimitsPolicyConfig, Yi as EngineExecutionLimitsPolicy, a as RunTerminalPersistenceCoordinator, c as EngineExecutionLimitsPolicyFactory, en as WorkflowDefinition, i as WorkflowPolicyErrorServices, ji as DependencyContainer, n as InMemoryLiveWorkflowRepository, o as WorkflowStoragePolicyEvaluator, r as EngineWorkflowRunnerService, s as RunPolicySnapshotFactory, t as RunIntentService, u as Engine } from "../RunIntentService-zbTchO9T.js";
2
+ import { Ft as AsyncSleeper, It as CredentialResolverFactory, Mt as InProcessRetryRunner, Nt as DefaultExecutionContextFactory, Ot as NodeInstanceFactory, Pt as DefaultAsyncSleeper, Rt as EngineCompositionDeps, a as ConfigDrivenOffloadPolicy, c as InMemoryWorkflowExecutionRepository, d as DefaultExecutionBinaryService, f as UnavailableBinaryStorage, i as InlineDrivingScheduler, kt as NodeExecutor, l as InMemoryRunDataFactory, n as HintOnlyOffloadPolicy, o as WorkflowRepositoryWebhookTriggerMatcher, r as DefaultDrivingScheduler, s as RunSummaryMapper, t as LocalOnlyScheduler, u as InMemoryBinaryStorage, zt as EngineFactory } from "../index-CUt13qs1.js";
3
+ import { n as TriggerRuntimeDiagnosticsProvider, r as WebhookTriggerMatcherProvider, t as EngineRuntimeRegistrationOptions } from "../EngineRuntimeRegistration.types-DU6MsjU9.js";
4
4
 
5
5
  //#region src/bootstrap/runtime/EngineRuntimeRegistrar.d.ts
6
6
 
@@ -1,4 +1,4 @@
1
- import { A as NodeExecutor, C as RunPolicySnapshotFactory, D as PersistedWorkflowTokenRegistry, F as CredentialResolverFactory, I as DefaultExecutionBinaryService, L as UnavailableBinaryStorage, M as InProcessRetryRunner, N as DefaultExecutionContextFactory, O as MissingRuntimeTriggerToken, P as DefaultAsyncSleeper, S as ConfigDrivenOffloadPolicy, T as NodeInstanceFactory, _ as EngineExecutionLimitsPolicy, a as InMemoryLiveWorkflowRepository, b as HintOnlyOffloadPolicy, c as EngineFactory, d as InMemoryRunDataFactory, f as InMemoryBinaryStorage, g as ENGINE_EXECUTION_LIMITS_DEFAULTS, h as RunTerminalPersistenceCoordinator, i as RunIntentService, l as Engine, m as WorkflowPolicyErrorServices, n as WorkflowRepositoryWebhookTriggerMatcher, p as WorkflowStoragePolicyEvaluator, s as EngineWorkflowRunnerService, v as LocalOnlyScheduler, x as DefaultDrivingScheduler, y as InlineDrivingScheduler } from "../runtime-Cy-3FTI_.js";
2
- import { i as EngineExecutionLimitsPolicyFactory, n as InMemoryWorkflowExecutionRepository, r as RunSummaryMapper, t as EngineRuntimeRegistrar } from "../bootstrap-BD6CobHl.js";
1
+ import { A as NodeExecutor, B as CredentialResolverFactory, C as RunPolicySnapshotFactory, D as PersistedWorkflowTokenRegistry, H as DefaultExecutionBinaryService, L as InProcessRetryRunner, O as MissingRuntimeTriggerToken, R as DefaultExecutionContextFactory, S as ConfigDrivenOffloadPolicy, T as NodeInstanceFactory, U as UnavailableBinaryStorage, _ as EngineExecutionLimitsPolicy, a as InMemoryLiveWorkflowRepository, b as HintOnlyOffloadPolicy, c as EngineFactory, d as InMemoryRunDataFactory, f as InMemoryBinaryStorage, g as ENGINE_EXECUTION_LIMITS_DEFAULTS, h as RunTerminalPersistenceCoordinator, i as RunIntentService, l as Engine, m as WorkflowPolicyErrorServices, n as WorkflowRepositoryWebhookTriggerMatcher, p as WorkflowStoragePolicyEvaluator, s as EngineWorkflowRunnerService, v as LocalOnlyScheduler, x as DefaultDrivingScheduler, y as InlineDrivingScheduler, z as DefaultAsyncSleeper } from "../runtime-BdH94eBR.js";
2
+ import { i as EngineExecutionLimitsPolicyFactory, n as InMemoryWorkflowExecutionRepository, r as RunSummaryMapper, t as EngineRuntimeRegistrar } from "../bootstrap-DbUlOl11.js";
3
3
 
4
4
  export { ConfigDrivenOffloadPolicy, CredentialResolverFactory, DefaultAsyncSleeper, DefaultDrivingScheduler, DefaultExecutionBinaryService, DefaultExecutionContextFactory, ENGINE_EXECUTION_LIMITS_DEFAULTS, Engine, EngineExecutionLimitsPolicy, EngineExecutionLimitsPolicyFactory, EngineFactory, EngineRuntimeRegistrar, EngineWorkflowRunnerService, HintOnlyOffloadPolicy, InMemoryBinaryStorage, InMemoryLiveWorkflowRepository, InMemoryRunDataFactory, InMemoryWorkflowExecutionRepository, InProcessRetryRunner, InlineDrivingScheduler, LocalOnlyScheduler, MissingRuntimeTriggerToken, NodeExecutor, NodeInstanceFactory, PersistedWorkflowTokenRegistry, RunIntentService, RunPolicySnapshotFactory, RunSummaryMapper, RunTerminalPersistenceCoordinator, UnavailableBinaryStorage, WorkflowPolicyErrorServices, WorkflowRepositoryWebhookTriggerMatcher, WorkflowStoragePolicyEvaluator };
@@ -1,4 +1,4 @@
1
- const require_runtime = require('./runtime-ZJUpWmPH.cjs');
1
+ const require_runtime = require('./runtime-feFn8OmG.cjs');
2
2
  let tsyringe = require("tsyringe");
3
3
  tsyringe = require_runtime.__toESM(tsyringe);
4
4
 
@@ -125,6 +125,8 @@ var EngineRuntimeRegistrar = class {
125
125
  this.registerIntentServices(container);
126
126
  }
127
127
  registerSupportFactories(container) {
128
+ if (!container.isRegistered(require_runtime.ItemValueResolver, true)) container.registerSingleton(require_runtime.ItemValueResolver, require_runtime.ItemValueResolver);
129
+ if (!container.isRegistered(require_runtime.NodeOutputNormalizer, true)) container.registerSingleton(require_runtime.NodeOutputNormalizer, require_runtime.NodeOutputNormalizer);
128
130
  container.register(EngineExecutionLimitsPolicyFactory, { useClass: EngineExecutionLimitsPolicyFactory });
129
131
  container.register(require_runtime.NodeInstanceFactoryFactory, { useClass: require_runtime.NodeInstanceFactoryFactory });
130
132
  container.register(require_runtime.DefaultAsyncSleeper, { useClass: require_runtime.DefaultAsyncSleeper });
@@ -237,4 +239,4 @@ Object.defineProperty(exports, 'RunSummaryMapper', {
237
239
  return RunSummaryMapper;
238
240
  }
239
241
  });
240
- //# sourceMappingURL=bootstrap-DwS5S7s9.cjs.map
242
+ //# sourceMappingURL=bootstrap-DHH2uo-W.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-DHH2uo-W.cjs","names":["EngineExecutionLimitsPolicy","ENGINE_EXECUTION_LIMITS_DEFAULTS","RunFinishedAtFactory","out: RunPruneCandidate[]","RunFinishedAtFactory","InlineDrivingScheduler","ItemValueResolver","NodeOutputNormalizer","NodeInstanceFactoryFactory","DefaultAsyncSleeper","InProcessRetryRunnerFactory","NodeExecutorFactory","RunIntentServiceFactory","EngineWorkflowRunnerServiceFactory","WorkflowRepositoryWebhookTriggerMatcherFactory","CoreTokens","NodeExecutor","InlineDrivingScheduler","EngineFactory","Engine","RunIntentService"],"sources":["../src/policies/executionLimits/EngineExecutionLimitsPolicyFactory.ts","../src/runStorage/RunSummaryMapper.ts","../src/runStorage/InMemoryWorkflowExecutionRepository.ts","../src/scheduler/InlineDrivingSchedulerFactory.ts","../src/bootstrap/runtime/EngineRuntimeRegistrar.ts"],"sourcesContent":["import {\n EngineExecutionLimitsPolicy,\n ENGINE_EXECUTION_LIMITS_DEFAULTS,\n type EngineExecutionLimitsPolicyConfig,\n} from \"./EngineExecutionLimitsPolicy\";\n\n/**\n * Builds {@link EngineExecutionLimitsPolicy} by merging {@link ENGINE_EXECUTION_LIMITS_DEFAULTS} with optional `overrides` (e.g. host `runtime.engineExecutionLimits`).\n */\nexport class EngineExecutionLimitsPolicyFactory {\n create(overrides?: Partial<EngineExecutionLimitsPolicyConfig>): EngineExecutionLimitsPolicy {\n return new EngineExecutionLimitsPolicy({ ...ENGINE_EXECUTION_LIMITS_DEFAULTS, ...overrides });\n }\n}\n","import { RunFinishedAtFactory } from \"../contracts/runFinishedAtFactory\";\nimport type { PersistedRunState, RunSummary } from \"../types\";\n\n/** Maps persisted run state to API run summaries for listings. */\nexport class RunSummaryMapper {\n static fromPersistedState(state: PersistedRunState): RunSummary {\n return {\n runId: state.runId,\n workflowId: state.workflowId,\n startedAt: state.startedAt,\n status: state.status,\n finishedAt: RunFinishedAtFactory.resolveIso(state),\n parent: state.parent,\n executionOptions: state.executionOptions,\n };\n }\n}\n","import type {\n EngineRunCounters,\n NodeId,\n NodeOutputs,\n ParentExecutionRef,\n PersistedRunSchedulingState,\n PersistedRunState,\n RunId,\n RunSummary,\n WorkflowExecutionListingRepository,\n WorkflowExecutionPruneRepository,\n WorkflowExecutionRepository,\n RunPruneCandidate,\n WorkflowId,\n} from \"../types\";\nimport { RunFinishedAtFactory } from \"../contracts/runFinishedAtFactory\";\nimport { RunSummaryMapper } from \"./RunSummaryMapper\";\n\nexport class InMemoryWorkflowExecutionRepository\n implements WorkflowExecutionRepository, WorkflowExecutionListingRepository, WorkflowExecutionPruneRepository\n{\n private readonly runs = new Map<RunId, PersistedRunState>();\n\n async createRun(args: {\n runId: RunId;\n workflowId: WorkflowId;\n startedAt: string;\n parent?: ParentExecutionRef;\n executionOptions?: PersistedRunState[\"executionOptions\"];\n control?: PersistedRunState[\"control\"];\n workflowSnapshot?: PersistedRunState[\"workflowSnapshot\"];\n mutableState?: PersistedRunState[\"mutableState\"];\n policySnapshot?: PersistedRunState[\"policySnapshot\"];\n engineCounters?: EngineRunCounters;\n }): Promise<void> {\n this.runs.set(args.runId, {\n runId: args.runId,\n workflowId: args.workflowId,\n startedAt: args.startedAt,\n revision: 0,\n parent: args.parent,\n executionOptions: args.executionOptions,\n control: args.control,\n workflowSnapshot: args.workflowSnapshot,\n mutableState: args.mutableState,\n policySnapshot: args.policySnapshot,\n engineCounters: args.engineCounters,\n status: \"running\",\n queue: [],\n outputsByNode: {} as Record<NodeId, NodeOutputs>,\n nodeSnapshotsByNodeId: {},\n connectionInvocations: [],\n });\n }\n\n async load(runId: RunId): Promise<PersistedRunState | undefined> {\n return this.runs.get(runId);\n }\n\n async loadSchedulingState(runId: RunId): Promise<PersistedRunSchedulingState | undefined> {\n const state = this.runs.get(runId);\n if (!state) {\n return undefined;\n }\n return {\n pending: state.pending ? { ...state.pending } : undefined,\n queue: state.queue.map((entry) => ({ ...entry })),\n };\n }\n\n async save(state: PersistedRunState): Promise<void> {\n this.runs.set(state.runId, { ...state, revision: (state.revision ?? 0) + 1 });\n }\n\n async deleteRun(runId: RunId): Promise<void> {\n this.runs.delete(runId);\n }\n\n async listRuns(args?: Readonly<{ workflowId?: WorkflowId; limit?: number }>): Promise<ReadonlyArray<RunSummary>> {\n const limit = args?.limit ?? 50;\n const summaries = [...this.runs.values()]\n .filter((s) => (args?.workflowId ? s.workflowId === args.workflowId : true))\n .sort((a, b) => b.startedAt.localeCompare(a.startedAt))\n .slice(0, limit)\n .map((s) => RunSummaryMapper.fromPersistedState(s));\n return summaries;\n }\n\n async listRunsOlderThan(\n args: Readonly<{ beforeIso: string; limit?: number }>,\n ): Promise<ReadonlyArray<RunPruneCandidate>> {\n const limit = args.limit ?? 100;\n const out: RunPruneCandidate[] = [];\n for (const s of this.runs.values()) {\n if (s.status !== \"completed\" && s.status !== \"failed\") continue;\n const finishedAt = RunFinishedAtFactory.resolveIso(s);\n if (!finishedAt || finishedAt >= args.beforeIso) continue;\n out.push({\n runId: s.runId,\n workflowId: s.workflowId,\n startedAt: s.startedAt,\n finishedAt,\n });\n }\n out.sort((a, b) => a.finishedAt.localeCompare(b.finishedAt));\n return out.slice(0, limit);\n }\n}\n","import { NodeExecutor } from \"../execution/NodeExecutor\";\n\nimport { InlineDrivingScheduler } from \"./InlineDrivingScheduler\";\n\nexport class InlineDrivingSchedulerFactory {\n create(nodeExecutor: NodeExecutor): InlineDrivingScheduler {\n return new InlineDrivingScheduler(nodeExecutor);\n }\n}\n","import { instanceCachingFactory, type DependencyContainer } from \"../../di\";\nimport { CoreTokens } from \"../../di\";\nimport { EngineExecutionLimitsPolicyFactory } from \"../../policies/executionLimits/EngineExecutionLimitsPolicyFactory\";\nimport {\n DefaultAsyncSleeper,\n InProcessRetryRunnerFactory,\n ItemValueResolver,\n NodeExecutor,\n NodeExecutorFactory,\n NodeInstanceFactoryFactory,\n NodeOutputNormalizer,\n} from \"../../execution\";\nimport {\n EngineFactory,\n EngineWorkflowRunnerServiceFactory,\n RunIntentServiceFactory,\n RunIntentService,\n WorkflowRepositoryWebhookTriggerMatcherFactory,\n} from \"../../runtime\";\nimport { InlineDrivingScheduler } from \"../../scheduler/InlineDrivingScheduler\";\nimport { InlineDrivingSchedulerFactory } from \"../../scheduler/InlineDrivingSchedulerFactory\";\nimport { Engine } from \"../../orchestration/Engine\";\nimport type { EngineRuntimeRegistrationOptions } from \"./EngineRuntimeRegistration.types\";\nimport type { WebhookTriggerMatcherProvider } from \"./EngineRuntimeRegistration.types\";\n\n/**\n * Container-first entry: call on a host/test container **after** workflow, run, node, and credential\n * ports are registered. The registrar owns the default inline scheduler, engine binding,\n * and intent-surface wiring so hosts only override the seams they actually replace.\n */\nexport class EngineRuntimeRegistrar {\n register(container: DependencyContainer, options?: EngineRuntimeRegistrationOptions): void {\n this.registerSupportFactories(container);\n this.registerExecutionLimitsPolicy(container, options);\n this.ensureWorkflowNodeInstanceFactory(container);\n this.ensureNodeExecutor(container);\n this.registerDefaultActivationScheduler(container);\n this.registerEngine(container, options);\n this.registerIntentServices(container);\n }\n\n private registerSupportFactories(container: DependencyContainer): void {\n if (!container.isRegistered(ItemValueResolver, true)) {\n container.registerSingleton(ItemValueResolver, ItemValueResolver);\n }\n if (!container.isRegistered(NodeOutputNormalizer, true)) {\n container.registerSingleton(NodeOutputNormalizer, NodeOutputNormalizer);\n }\n container.register(EngineExecutionLimitsPolicyFactory, { useClass: EngineExecutionLimitsPolicyFactory });\n container.register(NodeInstanceFactoryFactory, { useClass: NodeInstanceFactoryFactory });\n container.register(DefaultAsyncSleeper, { useClass: DefaultAsyncSleeper });\n container.register(InProcessRetryRunnerFactory, { useClass: InProcessRetryRunnerFactory });\n container.register(NodeExecutorFactory, { useClass: NodeExecutorFactory });\n container.register(InlineDrivingSchedulerFactory, { useClass: InlineDrivingSchedulerFactory });\n container.register(RunIntentServiceFactory, { useClass: RunIntentServiceFactory });\n container.register(EngineWorkflowRunnerServiceFactory, {\n useClass: EngineWorkflowRunnerServiceFactory,\n });\n container.register(WorkflowRepositoryWebhookTriggerMatcherFactory, {\n useClass: WorkflowRepositoryWebhookTriggerMatcherFactory,\n });\n }\n\n private registerExecutionLimitsPolicy(\n container: DependencyContainer,\n options: EngineRuntimeRegistrationOptions | undefined,\n ): void {\n if (container.isRegistered(CoreTokens.EngineExecutionLimitsPolicy, true)) {\n return;\n }\n container.register(CoreTokens.EngineExecutionLimitsPolicy, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n const fromResolver = options?.resolveEngineExecutionLimits?.();\n const merged = fromResolver ?? options?.engineExecutionLimits;\n return dependencyContainer.resolve(EngineExecutionLimitsPolicyFactory).create(merged);\n }),\n });\n }\n\n private ensureWorkflowNodeInstanceFactory(container: DependencyContainer): void {\n if (container.isRegistered(CoreTokens.WorkflowNodeInstanceFactory, true)) {\n return;\n }\n container.register(CoreTokens.WorkflowNodeInstanceFactory, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(NodeInstanceFactoryFactory)\n .create(dependencyContainer.resolve(CoreTokens.NodeResolver));\n }),\n });\n }\n\n private ensureNodeExecutor(container: DependencyContainer): void {\n if (container.isRegistered(NodeExecutor, true)) {\n return;\n }\n container.register(NodeExecutor, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n const retryRunner = dependencyContainer\n .resolve(InProcessRetryRunnerFactory)\n .create(dependencyContainer.resolve(DefaultAsyncSleeper));\n return dependencyContainer\n .resolve(NodeExecutorFactory)\n .create(dependencyContainer.resolve(CoreTokens.WorkflowNodeInstanceFactory), retryRunner);\n }),\n });\n }\n\n private registerDefaultActivationScheduler(container: DependencyContainer): void {\n if (container.isRegistered(CoreTokens.NodeActivationScheduler, true)) {\n return;\n }\n container.register(InlineDrivingScheduler, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(InlineDrivingSchedulerFactory)\n .create(dependencyContainer.resolve(NodeExecutor));\n }),\n });\n container.register(CoreTokens.NodeActivationScheduler, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer.resolve(InlineDrivingScheduler);\n }),\n });\n }\n\n private registerEngine(container: DependencyContainer, options: EngineRuntimeRegistrationOptions | undefined): void {\n container.register(EngineFactory, { useClass: EngineFactory });\n const matcherProvider = this.resolveMatcherProvider(options);\n container.register(Engine, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n const liveWorkflowRepository = dependencyContainer.resolve(CoreTokens.LiveWorkflowRepository);\n const nodeResolver = dependencyContainer.resolve(CoreTokens.NodeResolver);\n const tokenRegistryLike = dependencyContainer.resolve(CoreTokens.PersistedWorkflowTokenRegistry);\n const workflowActivationPolicy = dependencyContainer.resolve(CoreTokens.WorkflowActivationPolicy);\n const webhookTriggerMatcher = matcherProvider.createMatcher(dependencyContainer);\n const workflowNodeInstanceFactory = dependencyContainer.resolve(CoreTokens.WorkflowNodeInstanceFactory);\n const triggerRuntimeDiagnostics = options?.triggerRuntimeDiagnosticsProvider?.create(dependencyContainer);\n return dependencyContainer.resolve(EngineFactory).create({\n credentialSessions: dependencyContainer.resolve(CoreTokens.CredentialSessionService),\n liveWorkflowRepository,\n workflowRepository: dependencyContainer.resolve(CoreTokens.WorkflowRepository),\n workflowActivationPolicy,\n nodeResolver,\n triggerSetupStateRepository: dependencyContainer.resolve(CoreTokens.TriggerSetupStateRepository),\n webhookTriggerMatcher,\n runIdFactory: dependencyContainer.resolve(CoreTokens.RunIdFactory),\n activationIdFactory: dependencyContainer.resolve(CoreTokens.ActivationIdFactory),\n workflowExecutionRepository: dependencyContainer.resolve(CoreTokens.WorkflowExecutionRepository),\n activationScheduler: dependencyContainer.resolve(CoreTokens.NodeActivationScheduler),\n runDataFactory: dependencyContainer.resolve(CoreTokens.RunDataFactory),\n executionContextFactory: dependencyContainer.resolve(CoreTokens.ExecutionContextFactory),\n nodeExecutor: dependencyContainer.resolve(NodeExecutor),\n eventBus: dependencyContainer.resolve(CoreTokens.RunEventBus),\n tokenRegistry: tokenRegistryLike,\n workflowNodeInstanceFactory,\n executionLimitsPolicy: dependencyContainer.resolve(CoreTokens.EngineExecutionLimitsPolicy),\n triggerRuntimeDiagnostics,\n });\n }),\n });\n }\n\n private registerIntentServices(container: DependencyContainer): void {\n container.register(RunIntentService, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(RunIntentServiceFactory)\n .create(dependencyContainer.resolve(Engine), dependencyContainer.resolve(CoreTokens.WorkflowRepository));\n }),\n });\n container.register(CoreTokens.WorkflowRunnerService, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(EngineWorkflowRunnerServiceFactory)\n .create(dependencyContainer.resolve(Engine), dependencyContainer.resolve(CoreTokens.WorkflowRepository));\n }),\n });\n }\n\n private resolveMatcherProvider(options: EngineRuntimeRegistrationOptions | undefined): WebhookTriggerMatcherProvider {\n if (options?.webhookTriggerMatcherProvider) {\n return options.webhookTriggerMatcherProvider;\n }\n return {\n createMatcher: (container) =>\n container\n .resolve(WorkflowRepositoryWebhookTriggerMatcherFactory)\n .create(\n container.resolve(CoreTokens.WorkflowRepository),\n container.resolve(CoreTokens.WorkflowActivationPolicy),\n options?.webhookTriggerRoutingDiagnostics,\n ),\n };\n }\n}\n"],"mappings":";;;;;;;;AASA,IAAa,qCAAb,MAAgD;CAC9C,OAAO,WAAqF;AAC1F,SAAO,IAAIA,4CAA4B;GAAE,GAAGC;GAAkC,GAAG;GAAW,CAAC;;;;;;;ACPjG,IAAa,mBAAb,MAA8B;CAC5B,OAAO,mBAAmB,OAAsC;AAC9D,SAAO;GACL,OAAO,MAAM;GACb,YAAY,MAAM;GAClB,WAAW,MAAM;GACjB,QAAQ,MAAM;GACd,YAAYC,qCAAqB,WAAW,MAAM;GAClD,QAAQ,MAAM;GACd,kBAAkB,MAAM;GACzB;;;;;;ACIL,IAAa,sCAAb,MAEA;CACE,AAAiB,uBAAO,IAAI,KAA+B;CAE3D,MAAM,UAAU,MAWE;AAChB,OAAK,KAAK,IAAI,KAAK,OAAO;GACxB,OAAO,KAAK;GACZ,YAAY,KAAK;GACjB,WAAW,KAAK;GAChB,UAAU;GACV,QAAQ,KAAK;GACb,kBAAkB,KAAK;GACvB,SAAS,KAAK;GACd,kBAAkB,KAAK;GACvB,cAAc,KAAK;GACnB,gBAAgB,KAAK;GACrB,gBAAgB,KAAK;GACrB,QAAQ;GACR,OAAO,EAAE;GACT,eAAe,EAAE;GACjB,uBAAuB,EAAE;GACzB,uBAAuB,EAAE;GAC1B,CAAC;;CAGJ,MAAM,KAAK,OAAsD;AAC/D,SAAO,KAAK,KAAK,IAAI,MAAM;;CAG7B,MAAM,oBAAoB,OAAgE;EACxF,MAAM,QAAQ,KAAK,KAAK,IAAI,MAAM;AAClC,MAAI,CAAC,MACH;AAEF,SAAO;GACL,SAAS,MAAM,UAAU,EAAE,GAAG,MAAM,SAAS,GAAG;GAChD,OAAO,MAAM,MAAM,KAAK,WAAW,EAAE,GAAG,OAAO,EAAE;GAClD;;CAGH,MAAM,KAAK,OAAyC;AAClD,OAAK,KAAK,IAAI,MAAM,OAAO;GAAE,GAAG;GAAO,WAAW,MAAM,YAAY,KAAK;GAAG,CAAC;;CAG/E,MAAM,UAAU,OAA6B;AAC3C,OAAK,KAAK,OAAO,MAAM;;CAGzB,MAAM,SAAS,MAAkG;EAC/G,MAAM,QAAQ,MAAM,SAAS;AAM7B,SALkB,CAAC,GAAG,KAAK,KAAK,QAAQ,CAAC,CACtC,QAAQ,MAAO,MAAM,aAAa,EAAE,eAAe,KAAK,aAAa,KAAM,CAC3E,MAAM,GAAG,MAAM,EAAE,UAAU,cAAc,EAAE,UAAU,CAAC,CACtD,MAAM,GAAG,MAAM,CACf,KAAK,MAAM,iBAAiB,mBAAmB,EAAE,CAAC;;CAIvD,MAAM,kBACJ,MAC2C;EAC3C,MAAM,QAAQ,KAAK,SAAS;EAC5B,MAAMC,MAA2B,EAAE;AACnC,OAAK,MAAM,KAAK,KAAK,KAAK,QAAQ,EAAE;AAClC,OAAI,EAAE,WAAW,eAAe,EAAE,WAAW,SAAU;GACvD,MAAM,aAAaC,qCAAqB,WAAW,EAAE;AACrD,OAAI,CAAC,cAAc,cAAc,KAAK,UAAW;AACjD,OAAI,KAAK;IACP,OAAO,EAAE;IACT,YAAY,EAAE;IACd,WAAW,EAAE;IACb;IACD,CAAC;;AAEJ,MAAI,MAAM,GAAG,MAAM,EAAE,WAAW,cAAc,EAAE,WAAW,CAAC;AAC5D,SAAO,IAAI,MAAM,GAAG,MAAM;;;;;;ACrG9B,IAAa,gCAAb,MAA2C;CACzC,OAAO,cAAoD;AACzD,SAAO,IAAIC,uCAAuB,aAAa;;;;;;;;;;;ACwBnD,IAAa,yBAAb,MAAoC;CAClC,SAAS,WAAgC,SAAkD;AACzF,OAAK,yBAAyB,UAAU;AACxC,OAAK,8BAA8B,WAAW,QAAQ;AACtD,OAAK,kCAAkC,UAAU;AACjD,OAAK,mBAAmB,UAAU;AAClC,OAAK,mCAAmC,UAAU;AAClD,OAAK,eAAe,WAAW,QAAQ;AACvC,OAAK,uBAAuB,UAAU;;CAGxC,AAAQ,yBAAyB,WAAsC;AACrE,MAAI,CAAC,UAAU,aAAaC,mCAAmB,KAAK,CAClD,WAAU,kBAAkBA,mCAAmBA,kCAAkB;AAEnE,MAAI,CAAC,UAAU,aAAaC,sCAAsB,KAAK,CACrD,WAAU,kBAAkBA,sCAAsBA,qCAAqB;AAEzE,YAAU,SAAS,oCAAoC,EAAE,UAAU,oCAAoC,CAAC;AACxG,YAAU,SAASC,4CAA4B,EAAE,UAAUA,4CAA4B,CAAC;AACxF,YAAU,SAASC,qCAAqB,EAAE,UAAUA,qCAAqB,CAAC;AAC1E,YAAU,SAASC,6CAA6B,EAAE,UAAUA,6CAA6B,CAAC;AAC1F,YAAU,SAASC,qCAAqB,EAAE,UAAUA,qCAAqB,CAAC;AAC1E,YAAU,SAAS,+BAA+B,EAAE,UAAU,+BAA+B,CAAC;AAC9F,YAAU,SAASC,yCAAyB,EAAE,UAAUA,yCAAyB,CAAC;AAClF,YAAU,SAASC,oDAAoC,EACrD,UAAUA,oDACX,CAAC;AACF,YAAU,SAASC,gEAAgD,EACjE,UAAUA,gEACX,CAAC;;CAGJ,AAAQ,8BACN,WACA,SACM;AACN,MAAI,UAAU,aAAaC,2BAAW,6BAA6B,KAAK,CACtE;AAEF,YAAU,SAASA,2BAAW,6BAA6B,EACzD,kDAAoC,wBAAwB;GAE1D,MAAM,SADe,SAAS,gCAAgC,IAC/B,SAAS;AACxC,UAAO,oBAAoB,QAAQ,mCAAmC,CAAC,OAAO,OAAO;IACrF,EACH,CAAC;;CAGJ,AAAQ,kCAAkC,WAAsC;AAC9E,MAAI,UAAU,aAAaA,2BAAW,6BAA6B,KAAK,CACtE;AAEF,YAAU,SAASA,2BAAW,6BAA6B,EACzD,kDAAoC,wBAAwB;AAC1D,UAAO,oBACJ,QAAQP,2CAA2B,CACnC,OAAO,oBAAoB,QAAQO,2BAAW,aAAa,CAAC;IAC/D,EACH,CAAC;;CAGJ,AAAQ,mBAAmB,WAAsC;AAC/D,MAAI,UAAU,aAAaC,8BAAc,KAAK,CAC5C;AAEF,YAAU,SAASA,8BAAc,EAC/B,kDAAoC,wBAAwB;GAC1D,MAAM,cAAc,oBACjB,QAAQN,4CAA4B,CACpC,OAAO,oBAAoB,QAAQD,oCAAoB,CAAC;AAC3D,UAAO,oBACJ,QAAQE,oCAAoB,CAC5B,OAAO,oBAAoB,QAAQI,2BAAW,4BAA4B,EAAE,YAAY;IAC3F,EACH,CAAC;;CAGJ,AAAQ,mCAAmC,WAAsC;AAC/E,MAAI,UAAU,aAAaA,2BAAW,yBAAyB,KAAK,CAClE;AAEF,YAAU,SAASE,wCAAwB,EACzC,kDAAoC,wBAAwB;AAC1D,UAAO,oBACJ,QAAQ,8BAA8B,CACtC,OAAO,oBAAoB,QAAQD,6BAAa,CAAC;IACpD,EACH,CAAC;AACF,YAAU,SAASD,2BAAW,yBAAyB,EACrD,kDAAoC,wBAAwB;AAC1D,UAAO,oBAAoB,QAAQE,uCAAuB;IAC1D,EACH,CAAC;;CAGJ,AAAQ,eAAe,WAAgC,SAA6D;AAClH,YAAU,SAASC,+BAAe,EAAE,UAAUA,+BAAe,CAAC;EAC9D,MAAM,kBAAkB,KAAK,uBAAuB,QAAQ;AAC5D,YAAU,SAASC,wBAAQ,EACzB,kDAAoC,wBAAwB;GAC1D,MAAM,yBAAyB,oBAAoB,QAAQJ,2BAAW,uBAAuB;GAC7F,MAAM,eAAe,oBAAoB,QAAQA,2BAAW,aAAa;GACzE,MAAM,oBAAoB,oBAAoB,QAAQA,2BAAW,+BAA+B;GAChG,MAAM,2BAA2B,oBAAoB,QAAQA,2BAAW,yBAAyB;GACjG,MAAM,wBAAwB,gBAAgB,cAAc,oBAAoB;GAChF,MAAM,8BAA8B,oBAAoB,QAAQA,2BAAW,4BAA4B;GACvG,MAAM,4BAA4B,SAAS,mCAAmC,OAAO,oBAAoB;AACzG,UAAO,oBAAoB,QAAQG,8BAAc,CAAC,OAAO;IACvD,oBAAoB,oBAAoB,QAAQH,2BAAW,yBAAyB;IACpF;IACA,oBAAoB,oBAAoB,QAAQA,2BAAW,mBAAmB;IAC9E;IACA;IACA,6BAA6B,oBAAoB,QAAQA,2BAAW,4BAA4B;IAChG;IACA,cAAc,oBAAoB,QAAQA,2BAAW,aAAa;IAClE,qBAAqB,oBAAoB,QAAQA,2BAAW,oBAAoB;IAChF,6BAA6B,oBAAoB,QAAQA,2BAAW,4BAA4B;IAChG,qBAAqB,oBAAoB,QAAQA,2BAAW,wBAAwB;IACpF,gBAAgB,oBAAoB,QAAQA,2BAAW,eAAe;IACtE,yBAAyB,oBAAoB,QAAQA,2BAAW,wBAAwB;IACxF,cAAc,oBAAoB,QAAQC,6BAAa;IACvD,UAAU,oBAAoB,QAAQD,2BAAW,YAAY;IAC7D,eAAe;IACf;IACA,uBAAuB,oBAAoB,QAAQA,2BAAW,4BAA4B;IAC1F;IACD,CAAC;IACF,EACH,CAAC;;CAGJ,AAAQ,uBAAuB,WAAsC;AACnE,YAAU,SAASK,kCAAkB,EACnC,kDAAoC,wBAAwB;AAC1D,UAAO,oBACJ,QAAQR,wCAAwB,CAChC,OAAO,oBAAoB,QAAQO,uBAAO,EAAE,oBAAoB,QAAQJ,2BAAW,mBAAmB,CAAC;IAC1G,EACH,CAAC;AACF,YAAU,SAASA,2BAAW,uBAAuB,EACnD,kDAAoC,wBAAwB;AAC1D,UAAO,oBACJ,QAAQF,mDAAmC,CAC3C,OAAO,oBAAoB,QAAQM,uBAAO,EAAE,oBAAoB,QAAQJ,2BAAW,mBAAmB,CAAC;IAC1G,EACH,CAAC;;CAGJ,AAAQ,uBAAuB,SAAsF;AACnH,MAAI,SAAS,8BACX,QAAO,QAAQ;AAEjB,SAAO,EACL,gBAAgB,cACd,UACG,QAAQD,+DAA+C,CACvD,OACC,UAAU,QAAQC,2BAAW,mBAAmB,EAChD,UAAU,QAAQA,2BAAW,yBAAyB,EACtD,SAAS,iCACV,EACN"}
@@ -1,4 +1,4 @@
1
- import { A as NodeExecutor, P as DefaultAsyncSleeper, _ as EngineExecutionLimitsPolicy, c as EngineFactory, g as ENGINE_EXECUTION_LIMITS_DEFAULTS, i as RunIntentService, j as InProcessRetryRunnerFactory, k as NodeExecutorFactory, l as Engine, o as EngineWorkflowRunnerServiceFactory, ot as CoreTokens, r as RunIntentServiceFactory, t as WorkflowRepositoryWebhookTriggerMatcherFactory, tt as instanceCachingFactory, u as RunFinishedAtFactory, w as NodeInstanceFactoryFactory, y as InlineDrivingScheduler } from "./runtime-Cy-3FTI_.js";
1
+ import { A as NodeExecutor, I as ItemValueResolver, M as NodeOutputNormalizer, _ as EngineExecutionLimitsPolicy, c as EngineFactory, dt as instanceCachingFactory, g as ENGINE_EXECUTION_LIMITS_DEFAULTS, gt as CoreTokens, i as RunIntentService, j as InProcessRetryRunnerFactory, k as NodeExecutorFactory, l as Engine, o as EngineWorkflowRunnerServiceFactory, r as RunIntentServiceFactory, t as WorkflowRepositoryWebhookTriggerMatcherFactory, u as RunFinishedAtFactory, w as NodeInstanceFactoryFactory, y as InlineDrivingScheduler, z as DefaultAsyncSleeper } from "./runtime-BdH94eBR.js";
2
2
 
3
3
  //#region src/policies/executionLimits/EngineExecutionLimitsPolicyFactory.ts
4
4
  /**
@@ -123,6 +123,8 @@ var EngineRuntimeRegistrar = class {
123
123
  this.registerIntentServices(container);
124
124
  }
125
125
  registerSupportFactories(container) {
126
+ if (!container.isRegistered(ItemValueResolver, true)) container.registerSingleton(ItemValueResolver, ItemValueResolver);
127
+ if (!container.isRegistered(NodeOutputNormalizer, true)) container.registerSingleton(NodeOutputNormalizer, NodeOutputNormalizer);
126
128
  container.register(EngineExecutionLimitsPolicyFactory, { useClass: EngineExecutionLimitsPolicyFactory });
127
129
  container.register(NodeInstanceFactoryFactory, { useClass: NodeInstanceFactoryFactory });
128
130
  container.register(DefaultAsyncSleeper, { useClass: DefaultAsyncSleeper });
@@ -212,4 +214,4 @@ var EngineRuntimeRegistrar = class {
212
214
 
213
215
  //#endregion
214
216
  export { EngineExecutionLimitsPolicyFactory as i, InMemoryWorkflowExecutionRepository as n, RunSummaryMapper as r, EngineRuntimeRegistrar as t };
215
- //# sourceMappingURL=bootstrap-BD6CobHl.js.map
217
+ //# sourceMappingURL=bootstrap-DbUlOl11.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-DbUlOl11.js","names":["out: RunPruneCandidate[]"],"sources":["../src/policies/executionLimits/EngineExecutionLimitsPolicyFactory.ts","../src/runStorage/RunSummaryMapper.ts","../src/runStorage/InMemoryWorkflowExecutionRepository.ts","../src/scheduler/InlineDrivingSchedulerFactory.ts","../src/bootstrap/runtime/EngineRuntimeRegistrar.ts"],"sourcesContent":["import {\n EngineExecutionLimitsPolicy,\n ENGINE_EXECUTION_LIMITS_DEFAULTS,\n type EngineExecutionLimitsPolicyConfig,\n} from \"./EngineExecutionLimitsPolicy\";\n\n/**\n * Builds {@link EngineExecutionLimitsPolicy} by merging {@link ENGINE_EXECUTION_LIMITS_DEFAULTS} with optional `overrides` (e.g. host `runtime.engineExecutionLimits`).\n */\nexport class EngineExecutionLimitsPolicyFactory {\n create(overrides?: Partial<EngineExecutionLimitsPolicyConfig>): EngineExecutionLimitsPolicy {\n return new EngineExecutionLimitsPolicy({ ...ENGINE_EXECUTION_LIMITS_DEFAULTS, ...overrides });\n }\n}\n","import { RunFinishedAtFactory } from \"../contracts/runFinishedAtFactory\";\nimport type { PersistedRunState, RunSummary } from \"../types\";\n\n/** Maps persisted run state to API run summaries for listings. */\nexport class RunSummaryMapper {\n static fromPersistedState(state: PersistedRunState): RunSummary {\n return {\n runId: state.runId,\n workflowId: state.workflowId,\n startedAt: state.startedAt,\n status: state.status,\n finishedAt: RunFinishedAtFactory.resolveIso(state),\n parent: state.parent,\n executionOptions: state.executionOptions,\n };\n }\n}\n","import type {\n EngineRunCounters,\n NodeId,\n NodeOutputs,\n ParentExecutionRef,\n PersistedRunSchedulingState,\n PersistedRunState,\n RunId,\n RunSummary,\n WorkflowExecutionListingRepository,\n WorkflowExecutionPruneRepository,\n WorkflowExecutionRepository,\n RunPruneCandidate,\n WorkflowId,\n} from \"../types\";\nimport { RunFinishedAtFactory } from \"../contracts/runFinishedAtFactory\";\nimport { RunSummaryMapper } from \"./RunSummaryMapper\";\n\nexport class InMemoryWorkflowExecutionRepository\n implements WorkflowExecutionRepository, WorkflowExecutionListingRepository, WorkflowExecutionPruneRepository\n{\n private readonly runs = new Map<RunId, PersistedRunState>();\n\n async createRun(args: {\n runId: RunId;\n workflowId: WorkflowId;\n startedAt: string;\n parent?: ParentExecutionRef;\n executionOptions?: PersistedRunState[\"executionOptions\"];\n control?: PersistedRunState[\"control\"];\n workflowSnapshot?: PersistedRunState[\"workflowSnapshot\"];\n mutableState?: PersistedRunState[\"mutableState\"];\n policySnapshot?: PersistedRunState[\"policySnapshot\"];\n engineCounters?: EngineRunCounters;\n }): Promise<void> {\n this.runs.set(args.runId, {\n runId: args.runId,\n workflowId: args.workflowId,\n startedAt: args.startedAt,\n revision: 0,\n parent: args.parent,\n executionOptions: args.executionOptions,\n control: args.control,\n workflowSnapshot: args.workflowSnapshot,\n mutableState: args.mutableState,\n policySnapshot: args.policySnapshot,\n engineCounters: args.engineCounters,\n status: \"running\",\n queue: [],\n outputsByNode: {} as Record<NodeId, NodeOutputs>,\n nodeSnapshotsByNodeId: {},\n connectionInvocations: [],\n });\n }\n\n async load(runId: RunId): Promise<PersistedRunState | undefined> {\n return this.runs.get(runId);\n }\n\n async loadSchedulingState(runId: RunId): Promise<PersistedRunSchedulingState | undefined> {\n const state = this.runs.get(runId);\n if (!state) {\n return undefined;\n }\n return {\n pending: state.pending ? { ...state.pending } : undefined,\n queue: state.queue.map((entry) => ({ ...entry })),\n };\n }\n\n async save(state: PersistedRunState): Promise<void> {\n this.runs.set(state.runId, { ...state, revision: (state.revision ?? 0) + 1 });\n }\n\n async deleteRun(runId: RunId): Promise<void> {\n this.runs.delete(runId);\n }\n\n async listRuns(args?: Readonly<{ workflowId?: WorkflowId; limit?: number }>): Promise<ReadonlyArray<RunSummary>> {\n const limit = args?.limit ?? 50;\n const summaries = [...this.runs.values()]\n .filter((s) => (args?.workflowId ? s.workflowId === args.workflowId : true))\n .sort((a, b) => b.startedAt.localeCompare(a.startedAt))\n .slice(0, limit)\n .map((s) => RunSummaryMapper.fromPersistedState(s));\n return summaries;\n }\n\n async listRunsOlderThan(\n args: Readonly<{ beforeIso: string; limit?: number }>,\n ): Promise<ReadonlyArray<RunPruneCandidate>> {\n const limit = args.limit ?? 100;\n const out: RunPruneCandidate[] = [];\n for (const s of this.runs.values()) {\n if (s.status !== \"completed\" && s.status !== \"failed\") continue;\n const finishedAt = RunFinishedAtFactory.resolveIso(s);\n if (!finishedAt || finishedAt >= args.beforeIso) continue;\n out.push({\n runId: s.runId,\n workflowId: s.workflowId,\n startedAt: s.startedAt,\n finishedAt,\n });\n }\n out.sort((a, b) => a.finishedAt.localeCompare(b.finishedAt));\n return out.slice(0, limit);\n }\n}\n","import { NodeExecutor } from \"../execution/NodeExecutor\";\n\nimport { InlineDrivingScheduler } from \"./InlineDrivingScheduler\";\n\nexport class InlineDrivingSchedulerFactory {\n create(nodeExecutor: NodeExecutor): InlineDrivingScheduler {\n return new InlineDrivingScheduler(nodeExecutor);\n }\n}\n","import { instanceCachingFactory, type DependencyContainer } from \"../../di\";\nimport { CoreTokens } from \"../../di\";\nimport { EngineExecutionLimitsPolicyFactory } from \"../../policies/executionLimits/EngineExecutionLimitsPolicyFactory\";\nimport {\n DefaultAsyncSleeper,\n InProcessRetryRunnerFactory,\n ItemValueResolver,\n NodeExecutor,\n NodeExecutorFactory,\n NodeInstanceFactoryFactory,\n NodeOutputNormalizer,\n} from \"../../execution\";\nimport {\n EngineFactory,\n EngineWorkflowRunnerServiceFactory,\n RunIntentServiceFactory,\n RunIntentService,\n WorkflowRepositoryWebhookTriggerMatcherFactory,\n} from \"../../runtime\";\nimport { InlineDrivingScheduler } from \"../../scheduler/InlineDrivingScheduler\";\nimport { InlineDrivingSchedulerFactory } from \"../../scheduler/InlineDrivingSchedulerFactory\";\nimport { Engine } from \"../../orchestration/Engine\";\nimport type { EngineRuntimeRegistrationOptions } from \"./EngineRuntimeRegistration.types\";\nimport type { WebhookTriggerMatcherProvider } from \"./EngineRuntimeRegistration.types\";\n\n/**\n * Container-first entry: call on a host/test container **after** workflow, run, node, and credential\n * ports are registered. The registrar owns the default inline scheduler, engine binding,\n * and intent-surface wiring so hosts only override the seams they actually replace.\n */\nexport class EngineRuntimeRegistrar {\n register(container: DependencyContainer, options?: EngineRuntimeRegistrationOptions): void {\n this.registerSupportFactories(container);\n this.registerExecutionLimitsPolicy(container, options);\n this.ensureWorkflowNodeInstanceFactory(container);\n this.ensureNodeExecutor(container);\n this.registerDefaultActivationScheduler(container);\n this.registerEngine(container, options);\n this.registerIntentServices(container);\n }\n\n private registerSupportFactories(container: DependencyContainer): void {\n if (!container.isRegistered(ItemValueResolver, true)) {\n container.registerSingleton(ItemValueResolver, ItemValueResolver);\n }\n if (!container.isRegistered(NodeOutputNormalizer, true)) {\n container.registerSingleton(NodeOutputNormalizer, NodeOutputNormalizer);\n }\n container.register(EngineExecutionLimitsPolicyFactory, { useClass: EngineExecutionLimitsPolicyFactory });\n container.register(NodeInstanceFactoryFactory, { useClass: NodeInstanceFactoryFactory });\n container.register(DefaultAsyncSleeper, { useClass: DefaultAsyncSleeper });\n container.register(InProcessRetryRunnerFactory, { useClass: InProcessRetryRunnerFactory });\n container.register(NodeExecutorFactory, { useClass: NodeExecutorFactory });\n container.register(InlineDrivingSchedulerFactory, { useClass: InlineDrivingSchedulerFactory });\n container.register(RunIntentServiceFactory, { useClass: RunIntentServiceFactory });\n container.register(EngineWorkflowRunnerServiceFactory, {\n useClass: EngineWorkflowRunnerServiceFactory,\n });\n container.register(WorkflowRepositoryWebhookTriggerMatcherFactory, {\n useClass: WorkflowRepositoryWebhookTriggerMatcherFactory,\n });\n }\n\n private registerExecutionLimitsPolicy(\n container: DependencyContainer,\n options: EngineRuntimeRegistrationOptions | undefined,\n ): void {\n if (container.isRegistered(CoreTokens.EngineExecutionLimitsPolicy, true)) {\n return;\n }\n container.register(CoreTokens.EngineExecutionLimitsPolicy, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n const fromResolver = options?.resolveEngineExecutionLimits?.();\n const merged = fromResolver ?? options?.engineExecutionLimits;\n return dependencyContainer.resolve(EngineExecutionLimitsPolicyFactory).create(merged);\n }),\n });\n }\n\n private ensureWorkflowNodeInstanceFactory(container: DependencyContainer): void {\n if (container.isRegistered(CoreTokens.WorkflowNodeInstanceFactory, true)) {\n return;\n }\n container.register(CoreTokens.WorkflowNodeInstanceFactory, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(NodeInstanceFactoryFactory)\n .create(dependencyContainer.resolve(CoreTokens.NodeResolver));\n }),\n });\n }\n\n private ensureNodeExecutor(container: DependencyContainer): void {\n if (container.isRegistered(NodeExecutor, true)) {\n return;\n }\n container.register(NodeExecutor, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n const retryRunner = dependencyContainer\n .resolve(InProcessRetryRunnerFactory)\n .create(dependencyContainer.resolve(DefaultAsyncSleeper));\n return dependencyContainer\n .resolve(NodeExecutorFactory)\n .create(dependencyContainer.resolve(CoreTokens.WorkflowNodeInstanceFactory), retryRunner);\n }),\n });\n }\n\n private registerDefaultActivationScheduler(container: DependencyContainer): void {\n if (container.isRegistered(CoreTokens.NodeActivationScheduler, true)) {\n return;\n }\n container.register(InlineDrivingScheduler, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(InlineDrivingSchedulerFactory)\n .create(dependencyContainer.resolve(NodeExecutor));\n }),\n });\n container.register(CoreTokens.NodeActivationScheduler, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer.resolve(InlineDrivingScheduler);\n }),\n });\n }\n\n private registerEngine(container: DependencyContainer, options: EngineRuntimeRegistrationOptions | undefined): void {\n container.register(EngineFactory, { useClass: EngineFactory });\n const matcherProvider = this.resolveMatcherProvider(options);\n container.register(Engine, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n const liveWorkflowRepository = dependencyContainer.resolve(CoreTokens.LiveWorkflowRepository);\n const nodeResolver = dependencyContainer.resolve(CoreTokens.NodeResolver);\n const tokenRegistryLike = dependencyContainer.resolve(CoreTokens.PersistedWorkflowTokenRegistry);\n const workflowActivationPolicy = dependencyContainer.resolve(CoreTokens.WorkflowActivationPolicy);\n const webhookTriggerMatcher = matcherProvider.createMatcher(dependencyContainer);\n const workflowNodeInstanceFactory = dependencyContainer.resolve(CoreTokens.WorkflowNodeInstanceFactory);\n const triggerRuntimeDiagnostics = options?.triggerRuntimeDiagnosticsProvider?.create(dependencyContainer);\n return dependencyContainer.resolve(EngineFactory).create({\n credentialSessions: dependencyContainer.resolve(CoreTokens.CredentialSessionService),\n liveWorkflowRepository,\n workflowRepository: dependencyContainer.resolve(CoreTokens.WorkflowRepository),\n workflowActivationPolicy,\n nodeResolver,\n triggerSetupStateRepository: dependencyContainer.resolve(CoreTokens.TriggerSetupStateRepository),\n webhookTriggerMatcher,\n runIdFactory: dependencyContainer.resolve(CoreTokens.RunIdFactory),\n activationIdFactory: dependencyContainer.resolve(CoreTokens.ActivationIdFactory),\n workflowExecutionRepository: dependencyContainer.resolve(CoreTokens.WorkflowExecutionRepository),\n activationScheduler: dependencyContainer.resolve(CoreTokens.NodeActivationScheduler),\n runDataFactory: dependencyContainer.resolve(CoreTokens.RunDataFactory),\n executionContextFactory: dependencyContainer.resolve(CoreTokens.ExecutionContextFactory),\n nodeExecutor: dependencyContainer.resolve(NodeExecutor),\n eventBus: dependencyContainer.resolve(CoreTokens.RunEventBus),\n tokenRegistry: tokenRegistryLike,\n workflowNodeInstanceFactory,\n executionLimitsPolicy: dependencyContainer.resolve(CoreTokens.EngineExecutionLimitsPolicy),\n triggerRuntimeDiagnostics,\n });\n }),\n });\n }\n\n private registerIntentServices(container: DependencyContainer): void {\n container.register(RunIntentService, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(RunIntentServiceFactory)\n .create(dependencyContainer.resolve(Engine), dependencyContainer.resolve(CoreTokens.WorkflowRepository));\n }),\n });\n container.register(CoreTokens.WorkflowRunnerService, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(EngineWorkflowRunnerServiceFactory)\n .create(dependencyContainer.resolve(Engine), dependencyContainer.resolve(CoreTokens.WorkflowRepository));\n }),\n });\n }\n\n private resolveMatcherProvider(options: EngineRuntimeRegistrationOptions | undefined): WebhookTriggerMatcherProvider {\n if (options?.webhookTriggerMatcherProvider) {\n return options.webhookTriggerMatcherProvider;\n }\n return {\n createMatcher: (container) =>\n container\n .resolve(WorkflowRepositoryWebhookTriggerMatcherFactory)\n .create(\n container.resolve(CoreTokens.WorkflowRepository),\n container.resolve(CoreTokens.WorkflowActivationPolicy),\n options?.webhookTriggerRoutingDiagnostics,\n ),\n };\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { $n as NodeExecutionRequest, $t as RunId, Ai as EngineExecutionLimitsPolicy, An as BinaryBody, Bn as ExecutionContext, Bt as NodeId, Dr as WebhookTriggerRoutingDiagnostics, Dt as Items, Fn as BinaryStorageWriteResult, Ft as NodeConnectionName, Gr as PersistedRunState, Gt as NodeSchedulerDecision, Ht as NodeOffloadPolicy, In as EngineDeps, It as NodeDefinition, Jn as NodeActivationRequest, Jt as ParentExecutionRef, K as AnyCredentialType, Kn as NodeActivationContinuation, Lr as NodeExecutionSnapshot, Mi as RunEvent, Mn as BinaryStorageReadResult, Mt as MutableRunData, Ni as RunEventBus, Nn as BinaryStorageStatResult, Nt as NodeActivationId, Pi as RunEventSubscription, Pr as EngineRunCounters, Pt as NodeConfigBase, Qn as NodeExecutionContext, Qt as RunDataSnapshot, St as Item, Tr as WebhookTriggerMatcher, Ut as NodeOutputs, Vi as RetryPolicySpec, Vn as ExecutionContextFactory, Wr as PersistedRunSchedulingState, X as CredentialFieldSchema, Xn as NodeActivationScheduler, Z as CredentialHealth, Zn as NodeBinaryAttachmentService, Zt as RunDataFactory, _i as TypeToken, _t as BinaryAttachment, at as CredentialRequirement, bt as ExecutionMode, ci as WorkflowExecutionListingRepository, ct as CredentialSessionService, dt as CredentialTypeDefinition, ei as RunPruneCandidate, ft as CredentialTypeId, gr as WorkflowRepository, hn as WorkflowId, hr as WorkflowNodeInstanceFactory, ir as NodeResolver, jn as BinaryStorage, jt as JsonValue, kr as WorkflowActivationPolicy, l as WorkflowSnapshotCodec, li as WorkflowExecutionPruneRepository, ln as WorkflowDefinition, nn as RunnableNodeInputJson, nr as NodeExecutionStatePublisher, nt as CredentialJsonRecord, oi as RunSummary, or as PreparedNodeActivationDispatch, qr as PersistedWorkflowSnapshotNode, st as CredentialSessionFactoryArgs, tn as RunnableNodeConfig, tr as NodeExecutionScheduler, u as Engine, ui as WorkflowExecutionRepository, ut as CredentialType, wr as WebhookInvocationMatch, xr as HttpMethod, zn as ExecutionBinaryService } from "./RunIntentService-BAKikN8h.js";
1
+ import { $i as RunEventSubscription, $n as PreparedNodeActivationDispatch, An as EngineDeps, Br as PersistedRunState, Bt as ParentExecutionRef, Ct as LineageCarryPolicy, Dn as BinaryStorageStatResult, Dt as NodeConnectionName, Ei as CredentialTypeId, En as BinaryStorageReadResult, Et as NodeConfigBase, Fn as ExecutionContextFactory, Ft as NodeOutputs, Gn as NodeExecutionContext, Gt as RunId, Hr as PersistedWorkflowSnapshotNode, Ii as TypeToken, Jn as NodeExecutionScheduler, Jt as RunnableNodeInputJson, Kn as NodeExecutionRequest, Lt as NodeSchedulerDecision, Mr as NodeExecutionSnapshot, Mt as NodeId, Nn as ExecutionBinaryService, Ot as NodeDefinition, Pn as ExecutionContext, Pt as NodeOffloadPolicy, Qi as RunEventBus, Si as CredentialSessionService, Sn as RetryPolicySpec, Sr as WebhookTriggerRoutingDiagnostics, St as JsonValue, Ti as CredentialTypeDefinition, Tn as BinaryStorage, Tt as NodeActivationId, Un as NodeActivationScheduler, Ut as RunDataFactory, Vn as NodeActivationRequest, Wn as NodeBinaryAttachmentService, Wt as RunDataSnapshot, Y as ItemValue, Yi as EngineExecutionLimitsPolicy, Yn as NodeExecutionStatePublisher, Yr as RunPruneCandidate, Zi as RunEvent, Zn as NodeResolver, _t as Items, ai as WorkflowExecutionRepository, br as WebhookTriggerMatcher, di as CredentialHealth, dr as WorkflowRepository, en as WorkflowDefinition, gi as CredentialJsonRecord, gr as HttpMethod, ht as Item, ii as WorkflowExecutionPruneRepository, kn as BinaryStorageWriteResult, kr as EngineRunCounters, l as WorkflowSnapshotCodec, oi as AnyCredentialType, on as WorkflowId, pt as ExecutionMode, qt as RunnableNodeConfig, ri as WorkflowExecutionListingRepository, ti as RunSummary, u as Engine, ui as CredentialFieldSchema, ur as WorkflowNodeInstanceFactory, ut as BinaryAttachment, wi as CredentialType, wn as BinaryBody, wr as WorkflowActivationPolicy, wt as MutableRunData, xi as CredentialSessionFactoryArgs, yi as CredentialRequirement, yr as WebhookInvocationMatch, zn as NodeActivationContinuation, zr as PersistedRunSchedulingState } from "./RunIntentService-zbTchO9T.js";
2
2
  import { ZodType, input, output, z } from "zod";
3
3
 
4
4
  //#region src/workflowSnapshots/MissingRuntimeFallbacksFactory.d.ts
@@ -81,16 +81,50 @@ declare class InProcessRetryRunner {
81
81
  private static assertMultiplier;
82
82
  }
83
83
  //#endregion
84
+ //#region src/execution/ItemValueResolver.d.ts
85
+ /**
86
+ * Resolves {@link import("../contracts/itemValue").ItemValue} leaves on runnable config before {@link RunnableNode.execute}.
87
+ */
88
+ declare class ItemValueResolver {
89
+ resolveConfigForItem<TConfig$1 extends RunnableNodeConfig<any, any>>(ctx: NodeExecutionContext<TConfig$1>, item: Item, itemIndex: number, items: ReadonlyArray<Item>): Promise<NodeExecutionContext<TConfig$1>>;
90
+ }
91
+ //#endregion
92
+ //#region src/execution/NodeOutputNormalizer.d.ts
93
+ declare class NodeOutputNormalizer {
94
+ normalizeExecuteResult(args: Readonly<{
95
+ baseItem: Item;
96
+ raw: unknown;
97
+ carry: LineageCarryPolicy;
98
+ }>): NodeOutputs;
99
+ private arrayFanOutToMain;
100
+ private emitPortsToOutputs;
101
+ private normalizePortPayload;
102
+ private isItemLike;
103
+ private applyLineage;
104
+ }
105
+ //#endregion
84
106
  //#region src/execution/NodeExecutor.d.ts
85
107
  declare class NodeExecutor {
86
108
  private readonly nodeInstanceFactory;
87
109
  private readonly retryRunner;
88
- constructor(nodeInstanceFactory: WorkflowNodeInstanceFactory, retryRunner: InProcessRetryRunner);
110
+ private readonly fanInMerger;
111
+ private readonly outputNormalizer;
112
+ private readonly itemValueResolver;
113
+ constructor(nodeInstanceFactory: WorkflowNodeInstanceFactory, retryRunner: InProcessRetryRunner, itemValueResolver?: ItemValueResolver);
89
114
  execute(request: NodeActivationRequest): Promise<NodeOutputs>;
90
- private executeMultiInputNode;
115
+ private executeMultiInputActivation;
91
116
  private executeSingleInputNode;
92
- private hasExecuteOne;
93
- private executeItemNode;
117
+ private isTriggerNode;
118
+ private isRunnableNode;
119
+ private hasExecuteMulti;
120
+ private asMultiFromSingleActivation;
121
+ private executeRunnableActivation;
122
+ /** Use resolver ctx only when {@link NodeExecutionContext.config} is non-nullish. */
123
+ private pickExecutionContext;
124
+ private resolveInputSchema;
125
+ private assertItemJsonNotTopLevelArray;
126
+ private assertNoPortEnvelopeBypass;
127
+ private resolveLineageCarry;
94
128
  }
95
129
  //#endregion
96
130
  //#region src/execution/NodeInstanceFactory.d.ts
@@ -132,6 +166,19 @@ interface DefinedNodeRunContext<TConfig$1 extends CredentialJsonRecord, TBinding
132
166
  readonly credentials: DefinedNodeCredentialAccessors<TBindings>;
133
167
  readonly execution: NodeExecutionContext<RunnableNodeConfig<TConfig$1, unknown>>;
134
168
  }
169
+ /**
170
+ * Arguments for {@link defineNode} `execute` (engine `ctx` matches {@link RunnableNode.execute};
171
+ * the second callback parameter adds {@link DefinedNodeRunContext} for credential accessors).
172
+ */
173
+ type DefineNodeExecuteArgs<TConfig$1 extends CredentialJsonRecord, TInputJson> = Readonly<{
174
+ input: TInputJson;
175
+ item: Item;
176
+ itemIndex: number;
177
+ items: Items;
178
+ ctx: NodeExecutionContext<RunnableNodeConfig<TInputJson, unknown> & Readonly<{
179
+ config: TConfig$1;
180
+ }>>;
181
+ }>;
135
182
  interface DefinedNode<TKey$1 extends string, TConfig$1 extends CredentialJsonRecord, TInputJson, TOutputJson, _TBindings extends DefinedNodeCredentialBindings | undefined = undefined> {
136
183
  readonly kind: "defined-node";
137
184
  readonly key: TKey$1;
@@ -142,6 +189,9 @@ interface DefinedNode<TKey$1 extends string, TConfig$1 extends CredentialJsonRec
142
189
  registerNode<TValue>(token: TypeToken<TValue>, implementation?: TypeToken<TValue>): void;
143
190
  }): void;
144
191
  }
192
+ /**
193
+ * Plugin / DSL-friendly node: per-item `execute` with optional {@link RunnableNodeConfig.inputSchema}.
194
+ */
145
195
  interface DefineNodeOptions<TKey$1 extends string, TConfig$1 extends CredentialJsonRecord, TInputJson, TOutputJson, TBindings extends DefinedNodeCredentialBindings | undefined = undefined> {
146
196
  readonly key: TKey$1;
147
197
  readonly title: string;
@@ -151,12 +201,31 @@ interface DefineNodeOptions<TKey$1 extends string, TConfig$1 extends CredentialJ
151
201
  * The Next host resolves Lucide (`lucide:…`), built-in SVGs (`builtin:…`), Simple Icons (`si:…`), and image URLs (`https:`, `data:`, `/…`).
152
202
  */
153
203
  readonly icon?: string;
204
+ /** Default values / form hints for **static** node configuration (credentials, retry, IDs), not per-item payload. */
205
+ readonly input?: Readonly<Record<keyof TConfig$1 & string, unknown>>;
206
+ readonly configSchema?: z.ZodType<TConfig$1>;
207
+ readonly credentials?: TBindings;
208
+ /**
209
+ * Validates **`input`** (engine also accepts `inputSchema` on the node class).
210
+ */
211
+ readonly inputSchema?: ZodType<TInputJson>;
212
+ execute(args: DefineNodeExecuteArgs<TConfig$1, TInputJson>, context: DefinedNodeRunContext<TConfig$1, TBindings>): MaybePromise$1<TOutputJson>;
213
+ }
214
+ /**
215
+ * Batch-oriented defined node: `run` receives all item JSON once (last item in activation); emits one output per input row.
216
+ */
217
+ interface DefineBatchNodeOptions<TKey$1 extends string, TConfig$1 extends CredentialJsonRecord, TInputJson, TOutputJson, TBindings extends DefinedNodeCredentialBindings | undefined = undefined> {
218
+ readonly key: TKey$1;
219
+ readonly title: string;
220
+ readonly description?: string;
221
+ readonly icon?: string;
154
222
  readonly input?: Readonly<Record<keyof TConfig$1 & string, unknown>>;
155
223
  readonly configSchema?: z.ZodType<TConfig$1>;
156
224
  readonly credentials?: TBindings;
157
225
  run(items: ReadonlyArray<TInputJson>, context: DefinedNodeRunContext<TConfig$1, TBindings>): MaybePromise$1<ReadonlyArray<TOutputJson>>;
158
226
  }
159
227
  declare function defineNode<TKey$1 extends string, TConfig$1 extends CredentialJsonRecord, TInputJson, TOutputJson, TBindings extends DefinedNodeCredentialBindings | undefined = undefined>(options: DefineNodeOptions<TKey$1, TConfig$1, TInputJson, TOutputJson, TBindings>): DefinedNode<TKey$1, TConfig$1, TInputJson, TOutputJson, TBindings>;
228
+ declare function defineBatchNode<TKey$1 extends string, TConfig$1 extends CredentialJsonRecord, TInputJson, TOutputJson, TBindings extends DefinedNodeCredentialBindings | undefined = undefined>(options: DefineBatchNodeOptions<TKey$1, TConfig$1, TInputJson, TOutputJson, TBindings>): DefinedNode<TKey$1, TConfig$1, TInputJson, TOutputJson, TBindings>;
160
229
  //#endregion
161
230
  //#region src/authoring/DefinedNodeRegistry.d.ts
162
231
  declare class DefinedNodeRegistry {
@@ -187,7 +256,7 @@ declare function defineCredential<TPublicSource extends CredentialFieldMap<any>
187
256
  };
188
257
  //#endregion
189
258
  //#region src/ai/NodeBackedToolConfig.d.ts
190
- declare class NodeBackedToolConfig<TNodeConfig extends RunnableNodeConfig<any, any, any>, TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny> implements ToolConfig {
259
+ declare class NodeBackedToolConfig<TNodeConfig extends RunnableNodeConfig<any, any>, TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny> implements ToolConfig {
191
260
  readonly name: string;
192
261
  readonly node: TNodeConfig;
193
262
  readonly type: TypeToken<unknown>;
@@ -210,7 +279,7 @@ declare class NodeBackedToolConfig<TNodeConfig extends RunnableNodeConfig<any, a
210
279
  //#endregion
211
280
  //#region src/ai/AgentToolFactory.d.ts
212
281
  declare class AgentToolFactoryImpl {
213
- asTool<TNodeConfig extends RunnableNodeConfig<any, any, any>, TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny>(node: TNodeConfig, options: Readonly<{
282
+ asTool<TNodeConfig extends RunnableNodeConfig<any, any>, TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny>(node: TNodeConfig, options: Readonly<{
214
283
  name?: string;
215
284
  } & NodeBackedToolConfigOptions<TNodeConfig, TInputSchema, TOutputSchema>>): NodeBackedToolConfig<TNodeConfig, TInputSchema, TOutputSchema>;
216
285
  private withDefaultAgentInputMapper;
@@ -290,7 +359,7 @@ type AgentMessageLine<TInputJson = unknown> = AgentMessageDto | AgentMessageTemp
290
359
  * Message list for an agent. Prefer a **plain array** of `{ role, content }` (optionally with function `content` for templates).
291
360
  * Use the object form only when you need `buildMessages` to append messages after optional `prompt` lines.
292
361
  */
293
- type AgentMessageConfig<TInputJson = unknown> = ReadonlyArray<AgentMessageLine<TInputJson>> | {
362
+ type AgentMessageConfig<TInputJson = unknown> = ItemValue<ReadonlyArray<AgentMessageLine<TInputJson>>, TInputJson> | ReadonlyArray<AgentMessageLine<TInputJson>> | {
294
363
  readonly prompt?: ReadonlyArray<AgentMessageLine<TInputJson>>;
295
364
  readonly buildMessages?: (args: AgentMessageBuildArgs<TInputJson>) => ReadonlyArray<AgentMessageDto>;
296
365
  };
@@ -336,7 +405,7 @@ interface ChatModelFactory<TConfig$1 extends ChatModelConfig = ChatModelConfig>
336
405
  ctx: NodeExecutionContext<any>;
337
406
  }>): Promise<LangChainChatModelLike> | LangChainChatModelLike;
338
407
  }
339
- type NodeBackedToolInputMapperArgs<TNodeConfig extends RunnableNodeConfig<any, any, any>, TToolInput = unknown> = Readonly<{
408
+ type NodeBackedToolInputMapperArgs<TNodeConfig extends RunnableNodeConfig<any, any>, TToolInput = unknown> = Readonly<{
340
409
  input: TToolInput;
341
410
  item: Item;
342
411
  itemIndex: number;
@@ -344,7 +413,7 @@ type NodeBackedToolInputMapperArgs<TNodeConfig extends RunnableNodeConfig<any, a
344
413
  ctx: NodeExecutionContext<any>;
345
414
  node: TNodeConfig;
346
415
  }>;
347
- type NodeBackedToolOutputMapperArgs<TNodeConfig extends RunnableNodeConfig<any, any, any>, TToolInput = unknown> = Readonly<{
416
+ type NodeBackedToolOutputMapperArgs<TNodeConfig extends RunnableNodeConfig<any, any>, TToolInput = unknown> = Readonly<{
348
417
  input: TToolInput;
349
418
  item: Item;
350
419
  itemIndex: number;
@@ -353,9 +422,9 @@ type NodeBackedToolOutputMapperArgs<TNodeConfig extends RunnableNodeConfig<any,
353
422
  node: TNodeConfig;
354
423
  outputs: NodeOutputs;
355
424
  }>;
356
- type NodeBackedToolInputMapper<TNodeConfig extends RunnableNodeConfig<any, any, any>, TToolInput = unknown> = (args: NodeBackedToolInputMapperArgs<TNodeConfig, TToolInput>) => Item<RunnableNodeInputJson<TNodeConfig>> | RunnableNodeInputJson<TNodeConfig>;
357
- type NodeBackedToolOutputMapper<TNodeConfig extends RunnableNodeConfig<any, any, any>, TToolInput = unknown, TToolOutput = unknown> = (args: NodeBackedToolOutputMapperArgs<TNodeConfig, TToolInput>) => TToolOutput;
358
- type NodeBackedToolConfigOptions<TNodeConfig extends RunnableNodeConfig<any, any, any>, TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny> = Readonly<{
425
+ type NodeBackedToolInputMapper<TNodeConfig extends RunnableNodeConfig<any, any>, TToolInput = unknown> = (args: NodeBackedToolInputMapperArgs<TNodeConfig, TToolInput>) => Item<RunnableNodeInputJson<TNodeConfig>> | RunnableNodeInputJson<TNodeConfig>;
426
+ type NodeBackedToolOutputMapper<TNodeConfig extends RunnableNodeConfig<any, any>, TToolInput = unknown, TToolOutput = unknown> = (args: NodeBackedToolOutputMapperArgs<TNodeConfig, TToolInput>) => TToolOutput;
427
+ type NodeBackedToolConfigOptions<TNodeConfig extends RunnableNodeConfig<any, any>, TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny> = Readonly<{
359
428
  description?: string;
360
429
  presentation?: AgentCanvasPresentation;
361
430
  inputSchema: TInputSchema;
@@ -363,7 +432,7 @@ type NodeBackedToolConfigOptions<TNodeConfig extends RunnableNodeConfig<any, any
363
432
  mapInput?: NodeBackedToolInputMapper<TNodeConfig, input<TInputSchema>>;
364
433
  mapOutput?: NodeBackedToolOutputMapper<TNodeConfig, input<TInputSchema>, output<TOutputSchema>>;
365
434
  }>;
366
- interface AgentNodeConfig<TInputJson = unknown, TOutputJson = unknown, TWireJson = TInputJson> extends RunnableNodeConfig<TInputJson, TOutputJson, TWireJson> {
435
+ interface AgentNodeConfig<TInputJson = unknown, TOutputJson = unknown> extends RunnableNodeConfig<TInputJson, TOutputJson> {
367
436
  readonly messages: AgentMessageConfig<TInputJson>;
368
437
  readonly chatModel: ChatModelConfig;
369
438
  readonly tools?: ReadonlyArray<ToolConfig>;
@@ -662,5 +731,5 @@ declare class LocalOnlyScheduler implements NodeExecutionScheduler {
662
731
  }>;
663
732
  }
664
733
  //#endregion
665
- export { LangChainChatModelLike as $, AgentConnectionNodeRole as A, AsyncSleeper as At, AgentMessageTemplate as B, PersistedRuntimeTypeKind as C, Clock as Ct, AgentConnectionCredentialSource as D, InProcessRetryRunner as Dt, InMemoryRunEventBus as E, NodeExecutor as Et, AgentMessageBuildArgs as F, AgentToolCall as G, AgentModelInvocationOptions as H, AgentMessageConfig as I, AgentToolExecuteArgs as J, AgentToolCallPlanner as K, AgentMessageDto as L, AgentCanvasPresentation as M, NodeEventPublisher as Mt, AgentGuardrailConfig as N, EngineCompositionDeps as Nt, AgentConnectionNodeCollector as O, DefaultExecutionContextFactory as Ot, AgentGuardrailDefaults as P, EngineFactory as Pt, ChatModelFactory as Q, AgentMessageLine as R, PersistedRuntimeTypeDecoratorOptions as S, defineNode as St, EventPublishingWorkflowExecutionRepository as T, NodeInstanceFactory as Tt, AgentNodeConfig as U, AgentMessageTemplateContent as V, AgentTool as W, AgentTurnLimitBehavior as X, AgentToolToken as Y, ChatModelConfig as Z, tool as _, DefinedNode as _t, ConfigDrivenOffloadPolicy as a, Tool as at, PersistedRuntimeTypeMetadataStore as b, DefinedNodeCredentialBindings as bt, InMemoryWorkflowExecutionRepository as c, ZodSchemaAny as ct, DefaultExecutionBinaryService as d, AgentToolFactory as dt, NodeBackedToolConfigOptions as et, UnavailableBinaryStorage as f, NodeBackedToolConfig as ft, node as g, DefineNodeOptions as gt, getPersistedRuntimeTypeMetadata as h, DefinedNodeRegistry as ht, InlineDrivingScheduler as i, NodeBackedToolOutputMapperArgs as it, AgentAttachmentRole as j, CredentialResolverFactory as jt, AgentConnectionNodeDescriptor as k, DefaultAsyncSleeper as kt, InMemoryRunDataFactory as l, AgentConfigInspector as lt, chatModel as m, defineCredential as mt, HintOnlyOffloadPolicy as n, NodeBackedToolInputMapperArgs as nt, WorkflowRepositoryWebhookTriggerMatcher as o, ToolConfig as ot, ItemsInputNormalizer as p, DefineCredentialOptions as pt, AgentToolDefinition as q, DefaultDrivingScheduler as r, NodeBackedToolOutputMapper as rt, RunSummaryMapper as s, ToolExecuteArgs as st, LocalOnlyScheduler as t, NodeBackedToolInputMapper as tt, InMemoryBinaryStorage as u, AgentMessageConfigNormalizer as ut, StackTraceCallSitePathResolver as v, DefinedNodeCredentialAccessors as vt, PersistedRuntimeTypeMetadata as w, SystemClock as wt, InjectableRuntimeDecoratorComposer as x, DefinedNodeRunContext as xt, PersistedRuntimeTypeNameResolver as y, DefinedNodeCredentialBinding as yt, AgentMessageRole as z };
666
- //# sourceMappingURL=index-BDHCiN22.d.ts.map
734
+ export { LangChainChatModelLike as $, AgentConnectionNodeRole as A, NodeOutputNormalizer as At, AgentMessageTemplate as B, PersistedRuntimeTypeKind as C, DefinedNodeRunContext as Ct, AgentConnectionCredentialSource as D, SystemClock as Dt, InMemoryRunEventBus as E, Clock as Et, AgentMessageBuildArgs as F, AsyncSleeper as Ft, AgentToolCall as G, AgentModelInvocationOptions as H, AgentMessageConfig as I, CredentialResolverFactory as It, AgentToolExecuteArgs as J, AgentToolCallPlanner as K, AgentMessageDto as L, NodeEventPublisher as Lt, AgentCanvasPresentation as M, InProcessRetryRunner as Mt, AgentGuardrailConfig as N, DefaultExecutionContextFactory as Nt, AgentConnectionNodeCollector as O, NodeInstanceFactory as Ot, AgentGuardrailDefaults as P, DefaultAsyncSleeper as Pt, ChatModelFactory as Q, AgentMessageLine as R, EngineCompositionDeps as Rt, PersistedRuntimeTypeDecoratorOptions as S, DefinedNodeCredentialBindings as St, EventPublishingWorkflowExecutionRepository as T, defineNode as Tt, AgentNodeConfig as U, AgentMessageTemplateContent as V, AgentTool as W, AgentTurnLimitBehavior as X, AgentToolToken as Y, ChatModelConfig as Z, tool as _, DefineNodeExecuteArgs as _t, ConfigDrivenOffloadPolicy as a, Tool as at, PersistedRuntimeTypeMetadataStore as b, DefinedNodeCredentialAccessors as bt, InMemoryWorkflowExecutionRepository as c, ZodSchemaAny as ct, DefaultExecutionBinaryService as d, AgentToolFactory as dt, NodeBackedToolConfigOptions as et, UnavailableBinaryStorage as f, NodeBackedToolConfig as ft, node as g, DefineBatchNodeOptions as gt, getPersistedRuntimeTypeMetadata as h, DefinedNodeRegistry as ht, InlineDrivingScheduler as i, NodeBackedToolOutputMapperArgs as it, AgentAttachmentRole as j, ItemValueResolver as jt, AgentConnectionNodeDescriptor as k, NodeExecutor as kt, InMemoryRunDataFactory as l, AgentConfigInspector as lt, chatModel as m, defineCredential as mt, HintOnlyOffloadPolicy as n, NodeBackedToolInputMapperArgs as nt, WorkflowRepositoryWebhookTriggerMatcher as o, ToolConfig as ot, ItemsInputNormalizer as p, DefineCredentialOptions as pt, AgentToolDefinition as q, DefaultDrivingScheduler as r, NodeBackedToolOutputMapper as rt, RunSummaryMapper as s, ToolExecuteArgs as st, LocalOnlyScheduler as t, NodeBackedToolInputMapper as tt, InMemoryBinaryStorage as u, AgentMessageConfigNormalizer as ut, StackTraceCallSitePathResolver as v, DefineNodeOptions as vt, PersistedRuntimeTypeMetadata as w, defineBatchNode as wt, InjectableRuntimeDecoratorComposer as x, DefinedNodeCredentialBinding as xt, PersistedRuntimeTypeNameResolver as y, DefinedNode as yt, AgentMessageRole as z, EngineFactory as zt };
735
+ //# sourceMappingURL=index-CUt13qs1.d.ts.map
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- const require_runtime = require('./runtime-ZJUpWmPH.cjs');
2
- const require_workflowActivationPolicy = require('./workflowActivationPolicy-BzyzXLa_.cjs');
1
+ const require_runtime = require('./runtime-feFn8OmG.cjs');
2
+ const require_workflowActivationPolicy = require('./workflowActivationPolicy-6V3OJD3N.cjs');
3
3
  let zod = require("zod");
4
4
  zod = require_runtime.__toESM(zod);
5
5
  let node_crypto = require("node:crypto");
@@ -68,19 +68,68 @@ function defineNode(options) {
68
68
  const DefinedNodeRuntime = class {
69
69
  kind = "node";
70
70
  outputPorts = ["main"];
71
- async execute(items, ctx) {
72
- return { main: (await options.run(items.map((item) => item.json), {
71
+ inputSchema = options.inputSchema;
72
+ async execute(args) {
73
+ const ctx = args.ctx;
74
+ const context = {
73
75
  config: ctx.config.config,
74
76
  credentials: definedNodeCredentialAccessorFactory.create(options.credentials, ctx),
75
77
  execution: ctx
76
- })).map((json, index) => {
77
- const existing = items[index];
78
- if (!existing) return { json };
79
- return {
80
- ...existing,
81
- json
82
- };
83
- }) };
78
+ };
79
+ const payload = {
80
+ input: args.input,
81
+ item: args.item,
82
+ itemIndex: args.itemIndex,
83
+ items: args.items,
84
+ ctx
85
+ };
86
+ return await options.execute(payload, context);
87
+ }
88
+ };
89
+ require_runtime.node({ name: options.key })(DefinedNodeRuntime);
90
+ const DefinedRunnableNodeConfig = class {
91
+ kind = "node";
92
+ type = DefinedNodeRuntime;
93
+ icon = options.icon;
94
+ inputSchema = options.inputSchema;
95
+ constructor(name, config, id) {
96
+ this.name = name;
97
+ this.config = config;
98
+ this.id = id;
99
+ }
100
+ getCredentialRequirements() {
101
+ return credentialRequirements;
102
+ }
103
+ };
104
+ const definition = {
105
+ kind: "defined-node",
106
+ key: options.key,
107
+ title: options.title,
108
+ description: options.description,
109
+ create(config, name = options.title, id) {
110
+ return new DefinedRunnableNodeConfig(name, config, id);
111
+ },
112
+ register(context) {
113
+ context.registerNode(DefinedNodeRuntime);
114
+ }
115
+ };
116
+ DefinedNodeRegistry.register(definition);
117
+ return definition;
118
+ }
119
+ function defineBatchNode(options) {
120
+ const credentialRequirements = definedNodeCredentialRequirementFactory.create(options.credentials);
121
+ const DefinedNodeRuntime = class {
122
+ kind = "node";
123
+ outputPorts = ["main"];
124
+ async execute(args) {
125
+ if (args.itemIndex !== args.items.length - 1) return [];
126
+ const ctx = args.ctx;
127
+ const context = {
128
+ config: ctx.config.config,
129
+ credentials: definedNodeCredentialAccessorFactory.create(options.credentials, ctx),
130
+ execution: ctx
131
+ };
132
+ return [...await options.run(args.items.map((item) => item.json), context)];
84
133
  }
85
134
  };
86
135
  require_runtime.node({ name: options.key })(DefinedNodeRuntime);
@@ -253,6 +302,7 @@ var AgentConfigInspector = class {
253
302
  if (messages === void 0 || messages === null) return false;
254
303
  if (Array.isArray(messages)) return messages.length > 0;
255
304
  if (typeof messages === "object") {
305
+ if (require_runtime.isItemValue(messages)) return true;
256
306
  const o = messages;
257
307
  return Array.isArray(o.prompt) && o.prompt.length > 0 || typeof o.buildMessages === "function";
258
308
  }
@@ -322,6 +372,7 @@ var AgentMessageConfigNormalizer = class {
322
372
  return out;
323
373
  }
324
374
  static normalizeRichMessages(config, args) {
375
+ if (require_runtime.isItemValue(config)) throw new Error("AIAgent messages wrapped in itemValue(...) must be resolved by the engine before prompt normalization.");
325
376
  if (Array.isArray(config)) return config.map((line) => this.lineToDto(line, args));
326
377
  const structured = config;
327
378
  const messages = [];
@@ -618,6 +669,7 @@ exports.InMemoryRunDataFactory = require_runtime.InMemoryRunDataFactory;
618
669
  exports.InMemoryRunEventBus = require_workflowActivationPolicy.InMemoryRunEventBus;
619
670
  exports.InProcessRetryRunner = require_runtime.InProcessRetryRunner;
620
671
  exports.InjectableRuntimeDecoratorComposer = require_runtime.InjectableRuntimeDecoratorComposer;
672
+ exports.ItemValueResolver = require_runtime.ItemValueResolver;
621
673
  Object.defineProperty(exports, 'ItemsInputNormalizer', {
622
674
  enumerable: true,
623
675
  get: function () {
@@ -627,6 +679,7 @@ Object.defineProperty(exports, 'ItemsInputNormalizer', {
627
679
  exports.NoRetryPolicy = NoRetryPolicy;
628
680
  exports.NodeBackedToolConfig = NodeBackedToolConfig;
629
681
  exports.NodeEventPublisher = require_runtime.NodeEventPublisher;
682
+ exports.NodeOutputNormalizer = require_runtime.NodeOutputNormalizer;
630
683
  exports.PersistedRuntimeTypeMetadataStore = require_runtime.PersistedRuntimeTypeMetadataStore;
631
684
  exports.PersistedRuntimeTypeNameResolver = require_runtime.PersistedRuntimeTypeNameResolver;
632
685
  exports.RetryPolicy = RetryPolicy;
@@ -647,6 +700,7 @@ Object.defineProperty(exports, 'container', {
647
700
  return tsyringe.container;
648
701
  }
649
702
  });
703
+ exports.defineBatchNode = defineBatchNode;
650
704
  exports.defineCredential = defineCredential;
651
705
  exports.defineNode = defineNode;
652
706
  Object.defineProperty(exports, 'delay', {
@@ -655,6 +709,8 @@ Object.defineProperty(exports, 'delay', {
655
709
  return tsyringe.delay;
656
710
  }
657
711
  });
712
+ exports.emitPorts = require_runtime.emitPorts;
713
+ exports.getOriginIndexFromItem = require_runtime.getOriginIndexFromItem;
658
714
  exports.getPersistedRuntimeTypeMetadata = require_runtime.getPersistedRuntimeTypeMetadata;
659
715
  Object.defineProperty(exports, 'inject', {
660
716
  enumerable: true,
@@ -686,6 +742,10 @@ Object.defineProperty(exports, 'instancePerContainerCachingFactory', {
686
742
  return tsyringe.instancePerContainerCachingFactory;
687
743
  }
688
744
  });
745
+ exports.isItemValue = require_runtime.isItemValue;
746
+ exports.isPortsEmission = require_runtime.isPortsEmission;
747
+ exports.isUnbrandedPortsEmissionShape = require_runtime.isUnbrandedPortsEmissionShape;
748
+ exports.itemValue = require_runtime.itemValue;
689
749
  exports.node = require_runtime.node;
690
750
  Object.defineProperty(exports, 'predicateAwareClassFactory', {
691
751
  enumerable: true,
@@ -699,6 +759,8 @@ Object.defineProperty(exports, 'registry', {
699
759
  return tsyringe.registry;
700
760
  }
701
761
  });
762
+ exports.resolveItemValuesForExecution = require_runtime.resolveItemValuesForExecution;
763
+ exports.resolveItemValuesInUnknown = require_runtime.resolveItemValuesInUnknown;
702
764
  Object.defineProperty(exports, 'singleton', {
703
765
  enumerable: true,
704
766
  get: function () {