@codemation/core 0.5.0 → 0.7.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 (63) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/{EngineRuntimeRegistration.types-BtTZolK0.d.ts → EngineRuntimeRegistration.types-_M7KFD3D.d.ts} +2 -2
  3. package/dist/{EngineWorkflowRunnerService-Ddl0fekp.d.cts → EngineWorkflowRunnerService-D0Cwngv7.d.cts} +2 -2
  4. package/dist/{InMemoryRunDataFactory-i-u2yngD.d.cts → InMemoryRunDataFactory-BIWx6e02.d.cts} +15 -6
  5. package/dist/{RunIntentService-Cjx-glgz.d.cts → RunIntentService-5k0p-J67.d.cts} +31 -12
  6. package/dist/{RunIntentService-Dkr4YwN8.d.ts → RunIntentService-CuXAIO6_.d.ts} +52 -28
  7. package/dist/bootstrap/index.cjs +2 -2
  8. package/dist/bootstrap/index.d.cts +6 -6
  9. package/dist/bootstrap/index.d.ts +3 -3
  10. package/dist/bootstrap/index.js +2 -2
  11. package/dist/{bootstrap-DbUlOl11.js → bootstrap-BhYxSivA.js} +5 -4
  12. package/dist/bootstrap-BhYxSivA.js.map +1 -0
  13. package/dist/{bootstrap-DHH2uo-W.cjs → bootstrap-D-TDU9Lu.cjs} +5 -4
  14. package/dist/bootstrap-D-TDU9Lu.cjs.map +1 -0
  15. package/dist/{index-B2v4wtys.d.ts → index-BnJ7_IrO.d.ts} +92 -13
  16. package/dist/index.cjs +94 -10
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +98 -23
  19. package/dist/index.d.ts +3 -3
  20. package/dist/index.js +84 -6
  21. package/dist/index.js.map +1 -1
  22. package/dist/{runtime-feFn8OmG.cjs → runtime-3YVDd2vY.cjs} +81 -73
  23. package/dist/runtime-3YVDd2vY.cjs.map +1 -0
  24. package/dist/{runtime-BdH94eBR.js → runtime-CJnObwsU.js} +66 -64
  25. package/dist/runtime-CJnObwsU.js.map +1 -0
  26. package/dist/testing.cjs +2 -2
  27. package/dist/testing.cjs.map +1 -1
  28. package/dist/testing.d.cts +2 -2
  29. package/dist/testing.d.ts +2 -2
  30. package/dist/testing.js +2 -2
  31. package/dist/testing.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/ai/AgentConfigInspectorFactory.ts +2 -2
  34. package/src/ai/AgentMessageConfigNormalizerFactory.ts +3 -3
  35. package/src/ai/AiHost.ts +22 -2
  36. package/src/ai/CallableToolConfig.ts +84 -0
  37. package/src/ai/CallableToolFactory.ts +13 -0
  38. package/src/ai/CallableToolKindToken.ts +5 -0
  39. package/src/authoring/callableTool.types.ts +12 -0
  40. package/src/authoring/defineNode.types.ts +38 -9
  41. package/src/authoring/index.ts +2 -0
  42. package/src/bootstrap/runtime/EngineRuntimeRegistrar.ts +12 -4
  43. package/src/contracts/credentialTypes.ts +20 -0
  44. package/src/contracts/index.ts +2 -1
  45. package/src/contracts/{itemValue.ts → itemExpr.ts} +31 -32
  46. package/src/contracts/params.ts +10 -0
  47. package/src/contracts/runtimeTypes.ts +4 -2
  48. package/src/contracts/workflowTypes.ts +11 -9
  49. package/src/execution/{ItemValueResolver.ts → ItemExprResolver.ts} +5 -5
  50. package/src/execution/NodeExecutor.ts +13 -31
  51. package/src/execution/NodeExecutorFactory.ts +7 -2
  52. package/src/execution/NodeOutputNormalizer.ts +22 -23
  53. package/src/execution/RunnableOutputBehaviorResolver.ts +23 -0
  54. package/src/execution/index.ts +2 -1
  55. package/src/index.ts +2 -1
  56. package/src/runStorage/InMemoryRunData.ts +9 -5
  57. package/src/testing/SwitchHarnessNode.ts +0 -1
  58. package/src/types/index.ts +2 -1
  59. package/src/workflowSnapshots/WorkflowSnapshotCodec.ts +1 -1
  60. package/dist/bootstrap-DHH2uo-W.cjs.map +0 -1
  61. package/dist/bootstrap-DbUlOl11.js.map +0 -1
  62. package/dist/runtime-BdH94eBR.js.map +0 -1
  63. package/dist/runtime-feFn8OmG.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-BhYxSivA.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 ItemExprResolver,\n NodeExecutor,\n NodeExecutorFactory,\n NodeInstanceFactoryFactory,\n NodeOutputNormalizer,\n RunnableOutputBehaviorResolver,\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(ItemExprResolver, true)) {\n container.registerSingleton(ItemExprResolver, ItemExprResolver);\n }\n if (!container.isRegistered(NodeOutputNormalizer, true)) {\n container.registerSingleton(NodeOutputNormalizer, NodeOutputNormalizer);\n }\n if (!container.isRegistered(RunnableOutputBehaviorResolver, true)) {\n container.registerSingleton(RunnableOutputBehaviorResolver, RunnableOutputBehaviorResolver);\n }\n 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(\n dependencyContainer.resolve(CoreTokens.WorkflowNodeInstanceFactory),\n retryRunner,\n dependencyContainer.resolve(RunnableOutputBehaviorResolver),\n );\n }),\n });\n }\n\n private registerDefaultActivationScheduler(container: DependencyContainer): void {\n if (container.isRegistered(CoreTokens.NodeActivationScheduler, true)) {\n return;\n }\n container.register(InlineDrivingScheduler, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(InlineDrivingSchedulerFactory)\n .create(dependencyContainer.resolve(NodeExecutor));\n }),\n });\n container.register(CoreTokens.NodeActivationScheduler, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer.resolve(InlineDrivingScheduler);\n }),\n });\n }\n\n private registerEngine(container: DependencyContainer, options: EngineRuntimeRegistrationOptions | undefined): void {\n container.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
- const require_runtime = require('./runtime-feFn8OmG.cjs');
1
+ const require_runtime = require('./runtime-3YVDd2vY.cjs');
2
2
  let tsyringe = require("tsyringe");
3
3
  tsyringe = require_runtime.__toESM(tsyringe);
4
4
 
@@ -125,8 +125,9 @@ 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);
128
+ if (!container.isRegistered(require_runtime.ItemExprResolver, true)) container.registerSingleton(require_runtime.ItemExprResolver, require_runtime.ItemExprResolver);
129
129
  if (!container.isRegistered(require_runtime.NodeOutputNormalizer, true)) container.registerSingleton(require_runtime.NodeOutputNormalizer, require_runtime.NodeOutputNormalizer);
130
+ if (!container.isRegistered(require_runtime.RunnableOutputBehaviorResolver, true)) container.registerSingleton(require_runtime.RunnableOutputBehaviorResolver, require_runtime.RunnableOutputBehaviorResolver);
130
131
  container.register(EngineExecutionLimitsPolicyFactory, { useClass: EngineExecutionLimitsPolicyFactory });
131
132
  container.register(require_runtime.NodeInstanceFactoryFactory, { useClass: require_runtime.NodeInstanceFactoryFactory });
132
133
  container.register(require_runtime.DefaultAsyncSleeper, { useClass: require_runtime.DefaultAsyncSleeper });
@@ -154,7 +155,7 @@ var EngineRuntimeRegistrar = class {
154
155
  if (container.isRegistered(require_runtime.NodeExecutor, true)) return;
155
156
  container.register(require_runtime.NodeExecutor, { useFactory: (0, tsyringe.instanceCachingFactory)((dependencyContainer) => {
156
157
  const retryRunner = dependencyContainer.resolve(require_runtime.InProcessRetryRunnerFactory).create(dependencyContainer.resolve(require_runtime.DefaultAsyncSleeper));
157
- return dependencyContainer.resolve(require_runtime.NodeExecutorFactory).create(dependencyContainer.resolve(require_runtime.CoreTokens.WorkflowNodeInstanceFactory), retryRunner);
158
+ return dependencyContainer.resolve(require_runtime.NodeExecutorFactory).create(dependencyContainer.resolve(require_runtime.CoreTokens.WorkflowNodeInstanceFactory), retryRunner, dependencyContainer.resolve(require_runtime.RunnableOutputBehaviorResolver));
158
159
  }) });
159
160
  }
160
161
  registerDefaultActivationScheduler(container) {
@@ -239,4 +240,4 @@ Object.defineProperty(exports, 'RunSummaryMapper', {
239
240
  return RunSummaryMapper;
240
241
  }
241
242
  });
242
- //# sourceMappingURL=bootstrap-DHH2uo-W.cjs.map
243
+ //# sourceMappingURL=bootstrap-D-TDU9Lu.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-D-TDU9Lu.cjs","names":["EngineExecutionLimitsPolicy","ENGINE_EXECUTION_LIMITS_DEFAULTS","RunFinishedAtFactory","out: RunPruneCandidate[]","RunFinishedAtFactory","InlineDrivingScheduler","ItemExprResolver","NodeOutputNormalizer","RunnableOutputBehaviorResolver","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 ItemExprResolver,\n NodeExecutor,\n NodeExecutorFactory,\n NodeInstanceFactoryFactory,\n NodeOutputNormalizer,\n RunnableOutputBehaviorResolver,\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(ItemExprResolver, true)) {\n container.registerSingleton(ItemExprResolver, ItemExprResolver);\n }\n if (!container.isRegistered(NodeOutputNormalizer, true)) {\n container.registerSingleton(NodeOutputNormalizer, NodeOutputNormalizer);\n }\n if (!container.isRegistered(RunnableOutputBehaviorResolver, true)) {\n container.registerSingleton(RunnableOutputBehaviorResolver, RunnableOutputBehaviorResolver);\n }\n 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(\n dependencyContainer.resolve(CoreTokens.WorkflowNodeInstanceFactory),\n retryRunner,\n dependencyContainer.resolve(RunnableOutputBehaviorResolver),\n );\n }),\n });\n }\n\n private registerDefaultActivationScheduler(container: DependencyContainer): void {\n if (container.isRegistered(CoreTokens.NodeActivationScheduler, true)) {\n return;\n }\n container.register(InlineDrivingScheduler, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(InlineDrivingSchedulerFactory)\n .create(dependencyContainer.resolve(NodeExecutor));\n }),\n });\n container.register(CoreTokens.NodeActivationScheduler, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer.resolve(InlineDrivingScheduler);\n }),\n });\n }\n\n private registerEngine(container: DependencyContainer, options: EngineRuntimeRegistrationOptions | undefined): void {\n container.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 { $i as RunEventBus, $n as PreparedNodeActivationDispatch, An as EngineDeps, Br as PersistedRunState, Bt as ParentExecutionRef, Ci as CredentialSessionService, Ct as LineageCarryPolicy, Di as CredentialTypeId, Dn as BinaryStorageStatResult, Dt as NodeConnectionName, Ei as CredentialTypeDefinition, En as BinaryStorageReadResult, Et as NodeConfigBase, Fn as ExecutionContextFactory, Ft as NodeOutputs, Gn as NodeExecutionContext, Gt as RunId, Hr as PersistedWorkflowSnapshotNode, Jn as NodeExecutionScheduler, Jt as RunnableNodeInputJson, Kn as NodeExecutionRequest, Li as TypeToken, Lt as NodeSchedulerDecision, Mr as NodeExecutionSnapshot, Mt as NodeId, Nn as ExecutionBinaryService, Ot as NodeDefinition, Pn as ExecutionContext, Pt as NodeOffloadPolicy, Qi as RunEvent, Si as CredentialSessionFactoryArgs, Sn as RetryPolicySpec, Sr as WebhookTriggerRoutingDiagnostics, St as JsonValue, Ti as CredentialType, Tn as BinaryStorage, Tt as NodeActivationId, Un as NodeActivationScheduler, Ut as RunDataFactory, Vn as NodeActivationRequest, Wn as NodeBinaryAttachmentService, Wt as RunDataSnapshot, Xi as EngineExecutionLimitsPolicy, Y as ItemValue, Yn as NodeExecutionStatePublisher, Yr as RunPruneCandidate, Zn as NodeResolver, _t as Items, ai as WorkflowExecutionRepository, bi as CredentialRequirement, br as WebhookTriggerMatcher, di as CredentialHealth, dr as WorkflowRepository, ea as RunEventSubscription, 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, wn as BinaryBody, wr as WorkflowActivationPolicy, wt as MutableRunData, yr as WebhookInvocationMatch, zn as NodeActivationContinuation, zr as PersistedRunSchedulingState } from "./RunIntentService-Dkr4YwN8.js";
1
+ import { $n as NodeExecutionStatePublisher, $r as RunPruneCandidate, Ai as CredentialType, An as BinaryStorageReadResult, At as NodeDefinition, Bt as NodeSchedulerDecision, Cr as WebhookInvocationMatch, Di as CredentialSessionFactoryArgs, Dt as NodeActivationId, En as RetryPolicySpec, Er as WebhookTriggerRoutingDiagnostics, Et as MutableRunData, Gn as NodeActivationRequest, Hi as TypeToken, Ir as NodeExecutionSnapshot, Jn as NodeBinaryAttachmentService, Jt as RunId, Kr as PersistedWorkflowSnapshotNode, Kt as RunDataFactory, Ln as ExecutionBinaryService, Lt as NodeOffloadPolicy, Mi as CredentialTypeId, Nn as BinaryStorageWriteResult, Nr as EngineRunCounters, Oi as CredentialSessionService, On as BinaryBody, Or as WorkflowActivationPolicy, Ot as NodeConfigBase, Pn as EngineDeps, Pt as NodeId, Qn as NodeExecutionScheduler, Rn as ExecutionContext, Rt as NodeOutputs, Ti as CredentialRequirement, Tt as JsonValue, Un as NodeActivationContinuation, Ur as PersistedRunSchedulingState, Ut as ParentExecutionRef, Wr as PersistedRunState, Xn as NodeExecutionRequest, Xt as RunnableNodeConfig, Y as Expr, Yn as NodeExecutionContext, Z as ParamDeep, Zt as RunnableNodeInputJson, aa as RunEventSubscription, ai as RunSummary, br as HttpMethod, bt as Items, ci as WorkflowExecutionPruneRepository, gi as CredentialHealth, gt as ExecutionMode, hi as CredentialFieldSchema, hr as WorkflowRepository, ia as RunEventBus, ji as CredentialTypeDefinition, jn as BinaryStorageStatResult, kn as BinaryStorage, kt as NodeConnectionName, l as WorkflowSnapshotCodec, li as WorkflowExecutionRepository, ln as WorkflowId, mr as WorkflowNodeInstanceFactory, pt as BinaryAttachment, qn as NodeActivationScheduler, qt as RunDataSnapshot, ra as RunEvent, rn as WorkflowDefinition, rr as PreparedNodeActivationDispatch, si as WorkflowExecutionListingRepository, ta as EngineExecutionLimitsPolicy, tr as NodeResolver, u as Engine, ui as AnyCredentialType, vt as Item, wr as WebhookTriggerMatcher, xi as CredentialJsonRecord, zn as ExecutionContextFactory } from "./RunIntentService-CuXAIO6_.js";
2
2
  import { ZodType, input, output, z } from "zod";
3
3
 
4
4
  //#region src/workflowSnapshots/MissingRuntimeFallbacksFactory.d.ts
@@ -81,26 +81,35 @@ declare class InProcessRetryRunner {
81
81
  private static assertMultiplier;
82
82
  }
83
83
  //#endregion
84
- //#region src/execution/ItemValueResolver.d.ts
84
+ //#region src/execution/ItemExprResolver.d.ts
85
85
  /**
86
- * Resolves {@link import("../contracts/itemValue").ItemValue} leaves on runnable config before {@link RunnableNode.execute}.
86
+ * Resolves {@link import("../contracts/itemExpr").ItemExpr} leaves on runnable config before {@link RunnableNode.execute}.
87
87
  */
88
- declare class ItemValueResolver {
88
+ declare class ItemExprResolver {
89
89
  resolveConfigForItem<TConfig$1 extends RunnableNodeConfig<any, any>>(ctx: NodeExecutionContext<TConfig$1>, item: Item, itemIndex: number, items: ReadonlyArray<Item>): Promise<NodeExecutionContext<TConfig$1>>;
90
90
  }
91
91
  //#endregion
92
+ //#region src/execution/RunnableOutputBehaviorResolver.d.ts
93
+ type RunnableOutputBehavior = Readonly<{
94
+ keepBinaries: boolean;
95
+ }>;
96
+ declare class RunnableOutputBehaviorResolver {
97
+ resolve(config: RunnableNodeConfig): RunnableOutputBehavior;
98
+ private isKeepBinariesEnabled;
99
+ }
100
+ //#endregion
92
101
  //#region src/execution/NodeOutputNormalizer.d.ts
93
102
  declare class NodeOutputNormalizer {
94
103
  normalizeExecuteResult(args: Readonly<{
95
104
  baseItem: Item;
96
105
  raw: unknown;
97
- carry: LineageCarryPolicy;
106
+ behavior: RunnableOutputBehavior;
98
107
  }>): NodeOutputs;
99
108
  private arrayFanOutToMain;
100
109
  private emitPortsToOutputs;
101
110
  private normalizePortPayload;
102
111
  private isItemLike;
103
- private applyLineage;
112
+ private applyOutput;
104
113
  }
105
114
  //#endregion
106
115
  //#region src/execution/NodeExecutor.d.ts
@@ -109,8 +118,9 @@ declare class NodeExecutor {
109
118
  private readonly retryRunner;
110
119
  private readonly fanInMerger;
111
120
  private readonly outputNormalizer;
112
- private readonly itemValueResolver;
113
- constructor(nodeInstanceFactory: WorkflowNodeInstanceFactory, retryRunner: InProcessRetryRunner, itemValueResolver?: ItemValueResolver);
121
+ private readonly itemExprResolver;
122
+ private readonly outputBehaviorResolver;
123
+ constructor(nodeInstanceFactory: WorkflowNodeInstanceFactory, retryRunner: InProcessRetryRunner, itemExprResolver?: ItemExprResolver, outputBehaviorResolver?: RunnableOutputBehaviorResolver);
114
124
  execute(request: NodeActivationRequest): Promise<NodeOutputs>;
115
125
  private executeMultiInputActivation;
116
126
  private executeSingleInputNode;
@@ -124,7 +134,6 @@ declare class NodeExecutor {
124
134
  private resolveInputSchema;
125
135
  private assertItemJsonNotTopLevelArray;
126
136
  private assertNoPortEnvelopeBypass;
127
- private resolveLineageCarry;
128
137
  }
129
138
  //#endregion
130
139
  //#region src/execution/NodeInstanceFactory.d.ts
@@ -179,12 +188,13 @@ type DefineNodeExecuteArgs<TConfig$1 extends CredentialJsonRecord, TInputJson> =
179
188
  config: TConfig$1;
180
189
  }>>;
181
190
  }>;
191
+ type DefinedNodeConfigInput<TConfigResolved extends CredentialJsonRecord, TItemJson> = ParamDeep<TConfigResolved, TItemJson>;
182
192
  interface DefinedNode<TKey$1 extends string, TConfig$1 extends CredentialJsonRecord, TInputJson, TOutputJson, _TBindings extends DefinedNodeCredentialBindings | undefined = undefined> {
183
193
  readonly kind: "defined-node";
184
194
  readonly key: TKey$1;
185
195
  readonly title: string;
186
196
  readonly description?: string;
187
- create(config: TConfig$1, name?: string, id?: string): RunnableNodeConfig<TInputJson, TOutputJson>;
197
+ create<TConfigItemJson = TInputJson>(config: DefinedNodeConfigInput<TConfig$1, TConfigItemJson>, name?: string, id?: string): RunnableNodeConfig<TInputJson, TOutputJson>;
188
198
  register(context: {
189
199
  registerNode<TValue>(token: TypeToken<TValue>, implementation?: TypeToken<TValue>): void;
190
200
  }): void;
@@ -209,6 +219,8 @@ interface DefineNodeOptions<TKey$1 extends string, TConfig$1 extends CredentialJ
209
219
  * Validates **`input`** (engine also accepts `inputSchema` on the node class).
210
220
  */
211
221
  readonly inputSchema?: ZodType<TInputJson>;
222
+ /** Preserve inbound `item.binary` when `execute` returns plain JSON or item-shaped results without `binary`. */
223
+ readonly keepBinaries?: boolean;
212
224
  execute(args: DefineNodeExecuteArgs<TConfig$1, TInputJson>, context: DefinedNodeRunContext<TConfig$1, TBindings>): MaybePromise$1<TOutputJson>;
213
225
  }
214
226
  /**
@@ -277,6 +289,56 @@ declare class NodeBackedToolConfig<TNodeConfig extends RunnableNodeConfig<any, a
277
289
  private isItem;
278
290
  }
279
291
  //#endregion
292
+ //#region src/ai/CallableToolConfig.d.ts
293
+ type CallableToolExecuteHandler<TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny> = (args: ToolExecuteArgs<CallableToolConfig<TInputSchema, TOutputSchema>, input<TInputSchema>>) => Promise<output<TOutputSchema>> | output<TOutputSchema>;
294
+ type CallableToolConfigOptions<TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny> = Readonly<{
295
+ name: string;
296
+ description?: string;
297
+ presentation?: AgentCanvasPresentation;
298
+ inputSchema: TInputSchema;
299
+ outputSchema: TOutputSchema;
300
+ /**
301
+ * Optional credential slots for this tool (same contract as other {@link ToolConfig} shapes).
302
+ */
303
+ credentialRequirements?: ReadonlyArray<CredentialRequirement>;
304
+ execute: CallableToolExecuteHandler<TInputSchema, TOutputSchema>;
305
+ }>;
306
+ /**
307
+ * Inline callable agent tool: DSL sugar over {@link ToolConfig} without a separate {@link NodeResolver}-registered {@link Tool} class.
308
+ */
309
+ declare class CallableToolConfig<TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny> implements ToolConfig {
310
+ readonly name: string;
311
+ readonly type: TypeToken<unknown>;
312
+ readonly toolKind: "callable";
313
+ readonly description?: string;
314
+ readonly presentation?: AgentCanvasPresentation;
315
+ private readonly inputSchemaValue;
316
+ private readonly outputSchemaValue;
317
+ private readonly credentialRequirementsValue?;
318
+ private readonly executeHandler;
319
+ constructor(name: string, options: CallableToolConfigOptions<TInputSchema, TOutputSchema>);
320
+ getCredentialRequirements(): ReadonlyArray<CredentialRequirement>;
321
+ getInputSchema(): TInputSchema;
322
+ getOutputSchema(): TOutputSchema;
323
+ /**
324
+ * Parses tool input and output with the configured Zod schemas.
325
+ */
326
+ executeTool(args: ToolExecuteArgs<CallableToolConfig<TInputSchema, TOutputSchema>, input<TInputSchema>>): Promise<output<TOutputSchema>>;
327
+ }
328
+ //#endregion
329
+ //#region src/ai/CallableToolFactory.d.ts
330
+ declare class CallableToolFactoryImpl {
331
+ callableTool<TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny>(options: CallableToolConfigOptions<TInputSchema, TOutputSchema>): CallableToolConfig<TInputSchema, TOutputSchema>;
332
+ }
333
+ declare const CallableToolFactory: CallableToolFactoryImpl;
334
+ //#endregion
335
+ //#region src/ai/CallableToolKindToken.d.ts
336
+ /**
337
+ * Shared {@link import("../di").TypeToken} marker for {@link CallableToolConfig}.
338
+ * Callable tools are not registered in {@link NodeResolver}; this class only satisfies {@link ToolConfig#type}.
339
+ */
340
+ declare class CallableToolKindToken {}
341
+ //#endregion
280
342
  //#region src/ai/AgentToolFactory.d.ts
281
343
  declare class AgentToolFactoryImpl {
282
344
  asTool<TNodeConfig extends RunnableNodeConfig<any, any>, TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny>(node: TNodeConfig, options: Readonly<{
@@ -359,7 +421,7 @@ type AgentMessageLine<TInputJson = unknown> = AgentMessageDto | AgentMessageTemp
359
421
  * Message list for an agent. Prefer a **plain array** of `{ role, content }` (optionally with function `content` for templates).
360
422
  * Use the object form only when you need `buildMessages` to append messages after optional `prompt` lines.
361
423
  */
362
- type AgentMessageConfig<TInputJson = unknown> = ItemValue<ReadonlyArray<AgentMessageLine<TInputJson>>, TInputJson> | ReadonlyArray<AgentMessageLine<TInputJson>> | {
424
+ type AgentMessageConfig<TInputJson = unknown> = Expr<ReadonlyArray<AgentMessageLine<TInputJson>>, TInputJson> | ReadonlyArray<AgentMessageLine<TInputJson>> | {
363
425
  readonly prompt?: ReadonlyArray<AgentMessageLine<TInputJson>>;
364
426
  readonly buildMessages?: (args: AgentMessageBuildArgs<TInputJson>) => ReadonlyArray<AgentMessageDto>;
365
427
  };
@@ -398,6 +460,16 @@ interface ChatModelConfig {
398
460
  interface LangChainChatModelLike {
399
461
  invoke(input: unknown, options?: unknown): Promise<unknown>;
400
462
  bindTools?(tools: ReadonlyArray<unknown>): LangChainChatModelLike;
463
+ withStructuredOutput?(outputSchema: ZodSchemaAny, config?: ChatModelStructuredOutputOptions): LangChainStructuredOutputModelLike;
464
+ }
465
+ interface LangChainStructuredOutputModelLike {
466
+ invoke(input: unknown, options?: unknown): Promise<unknown>;
467
+ }
468
+ interface ChatModelStructuredOutputOptions {
469
+ readonly method?: "jsonSchema" | "functionCalling" | "jsonMode";
470
+ readonly strict?: boolean;
471
+ readonly includeRaw?: boolean;
472
+ readonly tools?: ReadonlyArray<unknown>;
401
473
  }
402
474
  interface ChatModelFactory<TConfig$1 extends ChatModelConfig = ChatModelConfig> {
403
475
  create(args: Readonly<{
@@ -437,9 +509,16 @@ interface AgentNodeConfig<TInputJson = unknown, TOutputJson = unknown> extends R
437
509
  readonly chatModel: ChatModelConfig;
438
510
  readonly tools?: ReadonlyArray<ToolConfig>;
439
511
  readonly guardrails?: AgentGuardrailConfig;
512
+ readonly outputSchema?: ZodType<TOutputJson>;
440
513
  }
441
514
  type AgentAttachmentRole = "languageModel" | "tool" | "nestedAgent";
442
515
  //#endregion
516
+ //#region src/authoring/callableTool.types.d.ts
517
+ /**
518
+ * Workflow-facing helper for inline Zod-typed agent tools (same as {@link CallableToolFactory.callableTool}).
519
+ */
520
+ declare function callableTool<TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny>(options: CallableToolConfigOptions<TInputSchema, TOutputSchema>): CallableToolConfig<TInputSchema, TOutputSchema>;
521
+ //#endregion
443
522
  //#region src/ai/AgentConnectionNodeCollector.d.ts
444
523
  type AgentConnectionNodeRole = "languageModel" | "tool" | "nestedAgent";
445
524
  type AgentConnectionCredentialSource = Readonly<{
@@ -731,5 +810,5 @@ declare class LocalOnlyScheduler implements NodeExecutionScheduler {
731
810
  }>;
732
811
  }
733
812
  //#endregion
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-B2v4wtys.d.ts.map
813
+ export { ChatModelFactory as $, AgentConnectionNodeRole as A, DefinedNodeCredentialBinding as At, AgentMessageRole as B, RunnableOutputBehaviorResolver as Bt, PersistedRuntimeTypeKind as C, DefinedNodeRegistry as Ct, AgentConnectionCredentialSource as D, DefinedNode as Dt, InMemoryRunEventBus as E, DefineNodeOptions as Et, AgentGuardrailDefaults as F, Clock as Ft, AgentTool as G, AsyncSleeper as Gt, AgentMessageTemplateContent as H, InProcessRetryRunner as Ht, AgentMessageBuildArgs as I, SystemClock as It, AgentToolDefinition as J, EngineCompositionDeps as Jt, AgentToolCall as K, CredentialResolverFactory as Kt, AgentMessageConfig as L, NodeInstanceFactory as Lt, AgentAttachmentRole as M, DefinedNodeRunContext as Mt, AgentCanvasPresentation as N, defineBatchNode as Nt, AgentConnectionNodeCollector as O, DefinedNodeConfigInput as Ot, AgentGuardrailConfig as P, defineNode as Pt, ChatModelConfig as Q, AgentMessageDto as R, NodeExecutor as Rt, PersistedRuntimeTypeDecoratorOptions as S, defineCredential as St, EventPublishingWorkflowExecutionRepository as T, DefineNodeExecuteArgs as Tt, AgentModelInvocationOptions as U, DefaultExecutionContextFactory as Ut, AgentMessageTemplate as V, ItemExprResolver as Vt, AgentNodeConfig as W, DefaultAsyncSleeper as Wt, AgentToolToken as X, AgentToolExecuteArgs as Y, EngineFactory as Yt, AgentTurnLimitBehavior as Z, tool as _, CallableToolConfig as _t, ConfigDrivenOffloadPolicy as a, NodeBackedToolInputMapperArgs as at, PersistedRuntimeTypeMetadataStore as b, NodeBackedToolConfig as bt, InMemoryWorkflowExecutionRepository as c, Tool as ct, DefaultExecutionBinaryService as d, ZodSchemaAny as dt, ChatModelStructuredOutputOptions as et, UnavailableBinaryStorage as f, AgentConfigInspector as ft, node as g, CallableToolFactory as gt, getPersistedRuntimeTypeMetadata as h, CallableToolKindToken as ht, InlineDrivingScheduler as i, NodeBackedToolInputMapper as it, callableTool as j, DefinedNodeCredentialBindings as jt, AgentConnectionNodeDescriptor as k, DefinedNodeCredentialAccessors as kt, InMemoryRunDataFactory as l, ToolConfig as lt, chatModel as m, AgentToolFactory as mt, HintOnlyOffloadPolicy as n, LangChainStructuredOutputModelLike as nt, WorkflowRepositoryWebhookTriggerMatcher as o, NodeBackedToolOutputMapper as ot, ItemsInputNormalizer as p, AgentMessageConfigNormalizer as pt, AgentToolCallPlanner as q, NodeEventPublisher as qt, DefaultDrivingScheduler as r, NodeBackedToolConfigOptions as rt, RunSummaryMapper as s, NodeBackedToolOutputMapperArgs as st, LocalOnlyScheduler as t, LangChainChatModelLike as tt, InMemoryBinaryStorage as u, ToolExecuteArgs as ut, StackTraceCallSitePathResolver as v, CallableToolConfigOptions as vt, PersistedRuntimeTypeMetadata as w, DefineBatchNodeOptions as wt, InjectableRuntimeDecoratorComposer as x, DefineCredentialOptions as xt, PersistedRuntimeTypeNameResolver as y, CallableToolExecuteHandler as yt, AgentMessageLine as z, NodeOutputNormalizer as zt };
814
+ //# sourceMappingURL=index-BnJ7_IrO.d.ts.map
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_runtime = require('./runtime-feFn8OmG.cjs');
1
+ const require_runtime = require('./runtime-3YVDd2vY.cjs');
2
2
  const require_workflowActivationPolicy = require('./workflowActivationPolicy-6V3OJD3N.cjs');
3
3
  let zod = require("zod");
4
4
  zod = require_runtime.__toESM(zod);
@@ -92,11 +92,13 @@ function defineNode(options) {
92
92
  type = DefinedNodeRuntime;
93
93
  icon = options.icon;
94
94
  inputSchema = options.inputSchema;
95
+ keepBinaries = options.keepBinaries ?? false;
95
96
  constructor(name, config, id) {
96
97
  this.name = name;
97
- this.config = config;
98
98
  this.id = id;
99
+ this.config = config;
99
100
  }
101
+ config;
100
102
  getCredentialRequirements() {
101
103
  return credentialRequirements;
102
104
  }
@@ -139,9 +141,10 @@ function defineBatchNode(options) {
139
141
  icon = options.icon;
140
142
  constructor(name, config, id) {
141
143
  this.name = name;
142
- this.config = config;
143
144
  this.id = id;
145
+ this.config = config;
144
146
  }
147
+ config;
145
148
  getCredentialRequirements() {
146
149
  return credentialRequirements;
147
150
  }
@@ -239,6 +242,78 @@ function defineCredential(options) {
239
242
  };
240
243
  }
241
244
 
245
+ //#endregion
246
+ //#region src/ai/CallableToolKindToken.ts
247
+ /**
248
+ * Shared {@link import("../di").TypeToken} marker for {@link CallableToolConfig}.
249
+ * Callable tools are not registered in {@link NodeResolver}; this class only satisfies {@link ToolConfig#type}.
250
+ */
251
+ var CallableToolKindToken = class {};
252
+
253
+ //#endregion
254
+ //#region src/ai/CallableToolConfig.ts
255
+ /**
256
+ * Inline callable agent tool: DSL sugar over {@link ToolConfig} without a separate {@link NodeResolver}-registered {@link Tool} class.
257
+ */
258
+ var CallableToolConfig = class {
259
+ type = CallableToolKindToken;
260
+ toolKind = "callable";
261
+ description;
262
+ presentation;
263
+ inputSchemaValue;
264
+ outputSchemaValue;
265
+ credentialRequirementsValue;
266
+ executeHandler;
267
+ constructor(name, options) {
268
+ this.name = name;
269
+ this.description = options.description;
270
+ this.presentation = options.presentation;
271
+ this.inputSchemaValue = options.inputSchema;
272
+ this.outputSchemaValue = options.outputSchema;
273
+ this.credentialRequirementsValue = options.credentialRequirements;
274
+ this.executeHandler = options.execute;
275
+ }
276
+ getCredentialRequirements() {
277
+ return this.credentialRequirementsValue ?? [];
278
+ }
279
+ getInputSchema() {
280
+ return this.inputSchemaValue;
281
+ }
282
+ getOutputSchema() {
283
+ return this.outputSchemaValue;
284
+ }
285
+ /**
286
+ * Parses tool input and output with the configured Zod schemas.
287
+ */
288
+ async executeTool(args) {
289
+ const parsedInput = this.inputSchemaValue.parse(args.input);
290
+ const raw = await Promise.resolve(this.executeHandler({
291
+ ...args,
292
+ config: this,
293
+ input: parsedInput
294
+ }));
295
+ return this.outputSchemaValue.parse(raw);
296
+ }
297
+ };
298
+
299
+ //#endregion
300
+ //#region src/ai/CallableToolFactory.ts
301
+ var CallableToolFactoryImpl = class {
302
+ callableTool(options) {
303
+ return new CallableToolConfig(options.name, options);
304
+ }
305
+ };
306
+ const CallableToolFactory = new CallableToolFactoryImpl();
307
+
308
+ //#endregion
309
+ //#region src/authoring/callableTool.types.ts
310
+ /**
311
+ * Workflow-facing helper for inline Zod-typed agent tools (same as {@link CallableToolFactory.callableTool}).
312
+ */
313
+ function callableTool(options) {
314
+ return CallableToolFactory.callableTool(options);
315
+ }
316
+
242
317
  //#endregion
243
318
  //#region src/ai/NodeBackedToolConfig.ts
244
319
  var NodeBackedToolConfig = class {
@@ -302,7 +377,7 @@ var AgentConfigInspector = class {
302
377
  if (messages === void 0 || messages === null) return false;
303
378
  if (Array.isArray(messages)) return messages.length > 0;
304
379
  if (typeof messages === "object") {
305
- if (require_runtime.isItemValue(messages)) return true;
380
+ if (require_runtime.isItemExpr(messages)) return true;
306
381
  const o = messages;
307
382
  return Array.isArray(o.prompt) && o.prompt.length > 0 || typeof o.buildMessages === "function";
308
383
  }
@@ -372,7 +447,7 @@ var AgentMessageConfigNormalizer = class {
372
447
  return out;
373
448
  }
374
449
  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.");
450
+ if (require_runtime.isItemExpr(config)) throw new Error("AIAgent messages wrapped in itemExpr(...) must be resolved by the engine before prompt normalization.");
376
451
  if (Array.isArray(config)) return config.map((line) => this.lineToDto(line, args));
377
452
  const structured = config;
378
453
  const messages = [];
@@ -640,6 +715,9 @@ var CredentialUnboundError = class CredentialUnboundError extends Error {
640
715
 
641
716
  //#endregion
642
717
  //#region src/contracts/workflowTypes.ts
718
+ function nodeRef(nodeId) {
719
+ return nodeId;
720
+ }
643
721
  const branchRef = (index) => `$${index}`;
644
722
 
645
723
  //#endregion
@@ -649,6 +727,9 @@ exports.AgentGuardrailDefaults = AgentGuardrailDefaults;
649
727
  exports.AgentMessageConfigNormalizer = AgentMessageConfigNormalizer;
650
728
  exports.AgentToolFactory = AgentToolFactory;
651
729
  exports.AllWorkflowsActiveWorkflowActivationPolicy = require_workflowActivationPolicy.AllWorkflowsActiveWorkflowActivationPolicy;
730
+ exports.CallableToolConfig = CallableToolConfig;
731
+ exports.CallableToolFactory = CallableToolFactory;
732
+ exports.CallableToolKindToken = CallableToolKindToken;
652
733
  exports.ChainCursor = require_workflowActivationPolicy.ChainCursor;
653
734
  exports.ConnectionInvocationIdFactory = ConnectionInvocationIdFactory;
654
735
  exports.ConnectionNodeIdFactory = require_runtime.ConnectionNodeIdFactory;
@@ -669,7 +750,7 @@ exports.InMemoryRunDataFactory = require_runtime.InMemoryRunDataFactory;
669
750
  exports.InMemoryRunEventBus = require_workflowActivationPolicy.InMemoryRunEventBus;
670
751
  exports.InProcessRetryRunner = require_runtime.InProcessRetryRunner;
671
752
  exports.InjectableRuntimeDecoratorComposer = require_runtime.InjectableRuntimeDecoratorComposer;
672
- exports.ItemValueResolver = require_runtime.ItemValueResolver;
753
+ exports.ItemExprResolver = require_runtime.ItemExprResolver;
673
754
  Object.defineProperty(exports, 'ItemsInputNormalizer', {
674
755
  enumerable: true,
675
756
  get: function () {
@@ -685,6 +766,7 @@ exports.PersistedRuntimeTypeNameResolver = require_runtime.PersistedRuntimeTypeN
685
766
  exports.RetryPolicy = RetryPolicy;
686
767
  exports.RunFinishedAtFactory = require_runtime.RunFinishedAtFactory;
687
768
  exports.RunIntentService = require_runtime.RunIntentService;
769
+ exports.RunnableOutputBehaviorResolver = require_runtime.RunnableOutputBehaviorResolver;
688
770
  exports.StackTraceCallSitePathResolver = require_runtime.StackTraceCallSitePathResolver;
689
771
  exports.SystemClock = SystemClock;
690
772
  exports.UnavailableBinaryStorage = require_runtime.UnavailableBinaryStorage;
@@ -693,6 +775,7 @@ exports.WorkflowBuilder = require_workflowActivationPolicy.WorkflowBuilder;
693
775
  exports.WorkflowExecutableNodeClassifier = require_runtime.WorkflowExecutableNodeClassifier;
694
776
  exports.WorkflowExecutableNodeClassifierFactory = require_runtime.WorkflowExecutableNodeClassifierFactory;
695
777
  exports.branchRef = branchRef;
778
+ exports.callableTool = callableTool;
696
779
  exports.chatModel = require_runtime.chatModel;
697
780
  Object.defineProperty(exports, 'container', {
698
781
  enumerable: true,
@@ -742,11 +825,12 @@ Object.defineProperty(exports, 'instancePerContainerCachingFactory', {
742
825
  return tsyringe.instancePerContainerCachingFactory;
743
826
  }
744
827
  });
745
- exports.isItemValue = require_runtime.isItemValue;
828
+ exports.isItemExpr = require_runtime.isItemExpr;
746
829
  exports.isPortsEmission = require_runtime.isPortsEmission;
747
830
  exports.isUnbrandedPortsEmissionShape = require_runtime.isUnbrandedPortsEmissionShape;
748
- exports.itemValue = require_runtime.itemValue;
831
+ exports.itemExpr = require_runtime.itemExpr;
749
832
  exports.node = require_runtime.node;
833
+ exports.nodeRef = nodeRef;
750
834
  Object.defineProperty(exports, 'predicateAwareClassFactory', {
751
835
  enumerable: true,
752
836
  get: function () {
@@ -759,8 +843,8 @@ Object.defineProperty(exports, 'registry', {
759
843
  return tsyringe.registry;
760
844
  }
761
845
  });
762
- exports.resolveItemValuesForExecution = require_runtime.resolveItemValuesForExecution;
763
- exports.resolveItemValuesInUnknown = require_runtime.resolveItemValuesInUnknown;
846
+ exports.resolveItemExprsForExecution = require_runtime.resolveItemExprsForExecution;
847
+ exports.resolveItemExprsInUnknown = require_runtime.resolveItemExprsInUnknown;
764
848
  Object.defineProperty(exports, 'singleton', {
765
849
  enumerable: true,
766
850
  get: function () {