@codemation/core 0.4.0 → 0.6.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 (54) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/{EngineRuntimeRegistration.types-DU6MsjU9.d.ts → EngineRuntimeRegistration.types-Dm129RJ6.d.ts} +2 -2
  3. package/dist/{EngineWorkflowRunnerService-BBkL4VQF.d.cts → EngineWorkflowRunnerService-Bf88QtwB.d.cts} +2 -2
  4. package/dist/{InMemoryRunDataFactory-CsYEMJK2.d.cts → InMemoryRunDataFactory-Dyl4p2s8.d.cts} +12 -3
  5. package/dist/{RunIntentService-BvlTpmEb.d.cts → RunIntentService-B1Y3v1H6.d.cts} +33 -10
  6. package/dist/{RunIntentService-zbTchO9T.d.ts → RunIntentService-BDiodxhf.d.ts} +33 -10
  7. package/dist/bootstrap/index.cjs +2 -2
  8. package/dist/bootstrap/index.d.cts +5 -5
  9. package/dist/bootstrap/index.d.ts +3 -3
  10. package/dist/bootstrap/index.js +2 -2
  11. package/dist/{bootstrap-DHH2uo-W.cjs → bootstrap-DVL2ue5v.cjs} +4 -3
  12. package/dist/bootstrap-DVL2ue5v.cjs.map +1 -0
  13. package/dist/{bootstrap-DbUlOl11.js → bootstrap-DdeiJ8cd.js} +4 -3
  14. package/dist/bootstrap-DdeiJ8cd.js.map +1 -0
  15. package/dist/{index-CUt13qs1.d.ts → index-C2af8ssM.d.ts} +85 -7
  16. package/dist/index.cjs +79 -1
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +74 -5
  19. package/dist/index.d.ts +3 -3
  20. package/dist/index.js +75 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/{runtime-BdH94eBR.js → runtime-7Xh9z3dw.js} +36 -34
  23. package/dist/runtime-7Xh9z3dw.js.map +1 -0
  24. package/dist/{runtime-feFn8OmG.cjs → runtime-DVBwxFvX.cjs} +41 -33
  25. package/dist/runtime-DVBwxFvX.cjs.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/AiHost.ts +20 -0
  34. package/src/ai/CallableToolConfig.ts +84 -0
  35. package/src/ai/CallableToolFactory.ts +13 -0
  36. package/src/ai/CallableToolKindToken.ts +5 -0
  37. package/src/authoring/callableTool.types.ts +12 -0
  38. package/src/authoring/defineNode.types.ts +3 -0
  39. package/src/authoring/index.ts +1 -0
  40. package/src/bootstrap/runtime/EngineRuntimeRegistrar.ts +9 -1
  41. package/src/contracts/credentialTypes.ts +29 -0
  42. package/src/contracts/runtimeTypes.ts +4 -2
  43. package/src/contracts/workflowTypes.ts +0 -7
  44. package/src/execution/NodeExecutor.ts +7 -25
  45. package/src/execution/NodeExecutorFactory.ts +7 -2
  46. package/src/execution/NodeOutputNormalizer.ts +22 -23
  47. package/src/execution/RunnableOutputBehaviorResolver.ts +23 -0
  48. package/src/execution/index.ts +1 -0
  49. package/src/index.ts +1 -0
  50. package/src/testing/SwitchHarnessNode.ts +0 -1
  51. package/dist/bootstrap-DHH2uo-W.cjs.map +0 -1
  52. package/dist/bootstrap-DbUlOl11.js.map +0 -1
  53. package/dist/runtime-BdH94eBR.js.map +0 -1
  54. package/dist/runtime-feFn8OmG.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-DdeiJ8cd.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 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(ItemValueResolver, true)) {\n container.registerSingleton(ItemValueResolver, ItemValueResolver);\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 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";
1
+ import { $i as RunEventBus, $t as WorkflowDefinition, Bn as NodeActivationRequest, Ci as CredentialSessionService, Cn as BinaryBody, Cr as WorkflowActivationPolicy, Ct as MutableRunData, Di as CredentialTypeId, Dt as NodeDefinition, Ei as CredentialTypeDefinition, En as BinaryStorageStatResult, Et as NodeConnectionName, Gn as NodeExecutionRequest, Hn as NodeActivationScheduler, Ht as RunDataFactory, It as NodeSchedulerDecision, Jn as NodeExecutionStatePublisher, Jr as RunPruneCandidate, Kt as RunnableNodeConfig, Li as TypeToken, Mn as ExecutionBinaryService, Nn as ExecutionContext, Nt as NodeOffloadPolicy, On as BinaryStorageWriteResult, Or as EngineRunCounters, Pn as ExecutionContextFactory, Pt as NodeOutputs, Qi as RunEvent, Qn as PreparedNodeActivationDispatch, Rn as NodeActivationContinuation, Rr as PersistedRunSchedulingState, Si as CredentialSessionFactoryArgs, St as JsonValue, Ti as CredentialType, Tn as BinaryStorageReadResult, Tt as NodeConfigBase, Un as NodeBinaryAttachmentService, Ut as RunDataSnapshot, Vr as PersistedWorkflowSnapshotNode, Wn as NodeExecutionContext, Wt as RunId, Xi as EngineExecutionLimitsPolicy, Xn as NodeResolver, Y as ItemValue, _t as Items, ai as AnyCredentialType, an as WorkflowId, bi as CredentialRequirement, di as CredentialHealth, ea as RunEventSubscription, ei as RunSummary, gi as CredentialJsonRecord, hr as HttpMethod, ht as Item, ii as WorkflowExecutionRepository, jr as NodeExecutionSnapshot, jt as NodeId, kn as EngineDeps, l as WorkflowSnapshotCodec, lr as WorkflowNodeInstanceFactory, ni as WorkflowExecutionListingRepository, pt as ExecutionMode, qn as NodeExecutionScheduler, qt as RunnableNodeInputJson, ri as WorkflowExecutionPruneRepository, u as Engine, ui as CredentialFieldSchema, ur as WorkflowRepository, ut as BinaryAttachment, vr as WebhookInvocationMatch, wn as BinaryStorage, wt as NodeActivationId, xn as RetryPolicySpec, xr as WebhookTriggerRoutingDiagnostics, yr as WebhookTriggerMatcher, zr as PersistedRunState, zt as ParentExecutionRef } from "./RunIntentService-BDiodxhf.js";
2
2
  import { ZodType, input, output, z } from "zod";
3
3
 
4
4
  //#region src/workflowSnapshots/MissingRuntimeFallbacksFactory.d.ts
@@ -89,18 +89,27 @@ declare class ItemValueResolver {
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
@@ -110,7 +119,8 @@ declare class NodeExecutor {
110
119
  private readonly fanInMerger;
111
120
  private readonly outputNormalizer;
112
121
  private readonly itemValueResolver;
113
- constructor(nodeInstanceFactory: WorkflowNodeInstanceFactory, retryRunner: InProcessRetryRunner, itemValueResolver?: ItemValueResolver);
122
+ private readonly outputBehaviorResolver;
123
+ constructor(nodeInstanceFactory: WorkflowNodeInstanceFactory, retryRunner: InProcessRetryRunner, itemValueResolver?: ItemValueResolver, 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
@@ -209,6 +218,8 @@ interface DefineNodeOptions<TKey$1 extends string, TConfig$1 extends CredentialJ
209
218
  * Validates **`input`** (engine also accepts `inputSchema` on the node class).
210
219
  */
211
220
  readonly inputSchema?: ZodType<TInputJson>;
221
+ /** Preserve inbound `item.binary` when `execute` returns plain JSON or item-shaped results without `binary`. */
222
+ readonly keepBinaries?: boolean;
212
223
  execute(args: DefineNodeExecuteArgs<TConfig$1, TInputJson>, context: DefinedNodeRunContext<TConfig$1, TBindings>): MaybePromise$1<TOutputJson>;
213
224
  }
214
225
  /**
@@ -277,6 +288,56 @@ declare class NodeBackedToolConfig<TNodeConfig extends RunnableNodeConfig<any, a
277
288
  private isItem;
278
289
  }
279
290
  //#endregion
291
+ //#region src/ai/CallableToolConfig.d.ts
292
+ type CallableToolExecuteHandler<TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny> = (args: ToolExecuteArgs<CallableToolConfig<TInputSchema, TOutputSchema>, input<TInputSchema>>) => Promise<output<TOutputSchema>> | output<TOutputSchema>;
293
+ type CallableToolConfigOptions<TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny> = Readonly<{
294
+ name: string;
295
+ description?: string;
296
+ presentation?: AgentCanvasPresentation;
297
+ inputSchema: TInputSchema;
298
+ outputSchema: TOutputSchema;
299
+ /**
300
+ * Optional credential slots for this tool (same contract as other {@link ToolConfig} shapes).
301
+ */
302
+ credentialRequirements?: ReadonlyArray<CredentialRequirement>;
303
+ execute: CallableToolExecuteHandler<TInputSchema, TOutputSchema>;
304
+ }>;
305
+ /**
306
+ * Inline callable agent tool: DSL sugar over {@link ToolConfig} without a separate {@link NodeResolver}-registered {@link Tool} class.
307
+ */
308
+ declare class CallableToolConfig<TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny> implements ToolConfig {
309
+ readonly name: string;
310
+ readonly type: TypeToken<unknown>;
311
+ readonly toolKind: "callable";
312
+ readonly description?: string;
313
+ readonly presentation?: AgentCanvasPresentation;
314
+ private readonly inputSchemaValue;
315
+ private readonly outputSchemaValue;
316
+ private readonly credentialRequirementsValue?;
317
+ private readonly executeHandler;
318
+ constructor(name: string, options: CallableToolConfigOptions<TInputSchema, TOutputSchema>);
319
+ getCredentialRequirements(): ReadonlyArray<CredentialRequirement>;
320
+ getInputSchema(): TInputSchema;
321
+ getOutputSchema(): TOutputSchema;
322
+ /**
323
+ * Parses tool input and output with the configured Zod schemas.
324
+ */
325
+ executeTool(args: ToolExecuteArgs<CallableToolConfig<TInputSchema, TOutputSchema>, input<TInputSchema>>): Promise<output<TOutputSchema>>;
326
+ }
327
+ //#endregion
328
+ //#region src/ai/CallableToolFactory.d.ts
329
+ declare class CallableToolFactoryImpl {
330
+ callableTool<TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny>(options: CallableToolConfigOptions<TInputSchema, TOutputSchema>): CallableToolConfig<TInputSchema, TOutputSchema>;
331
+ }
332
+ declare const CallableToolFactory: CallableToolFactoryImpl;
333
+ //#endregion
334
+ //#region src/ai/CallableToolKindToken.d.ts
335
+ /**
336
+ * Shared {@link import("../di").TypeToken} marker for {@link CallableToolConfig}.
337
+ * Callable tools are not registered in {@link NodeResolver}; this class only satisfies {@link ToolConfig#type}.
338
+ */
339
+ declare class CallableToolKindToken {}
340
+ //#endregion
280
341
  //#region src/ai/AgentToolFactory.d.ts
281
342
  declare class AgentToolFactoryImpl {
282
343
  asTool<TNodeConfig extends RunnableNodeConfig<any, any>, TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny>(node: TNodeConfig, options: Readonly<{
@@ -398,6 +459,16 @@ interface ChatModelConfig {
398
459
  interface LangChainChatModelLike {
399
460
  invoke(input: unknown, options?: unknown): Promise<unknown>;
400
461
  bindTools?(tools: ReadonlyArray<unknown>): LangChainChatModelLike;
462
+ withStructuredOutput?(outputSchema: ZodSchemaAny, config?: ChatModelStructuredOutputOptions): LangChainStructuredOutputModelLike;
463
+ }
464
+ interface LangChainStructuredOutputModelLike {
465
+ invoke(input: unknown, options?: unknown): Promise<unknown>;
466
+ }
467
+ interface ChatModelStructuredOutputOptions {
468
+ readonly method?: "jsonSchema" | "functionCalling" | "jsonMode";
469
+ readonly strict?: boolean;
470
+ readonly includeRaw?: boolean;
471
+ readonly tools?: ReadonlyArray<unknown>;
401
472
  }
402
473
  interface ChatModelFactory<TConfig$1 extends ChatModelConfig = ChatModelConfig> {
403
474
  create(args: Readonly<{
@@ -437,9 +508,16 @@ interface AgentNodeConfig<TInputJson = unknown, TOutputJson = unknown> extends R
437
508
  readonly chatModel: ChatModelConfig;
438
509
  readonly tools?: ReadonlyArray<ToolConfig>;
439
510
  readonly guardrails?: AgentGuardrailConfig;
511
+ readonly outputSchema?: ZodType<TOutputJson>;
440
512
  }
441
513
  type AgentAttachmentRole = "languageModel" | "tool" | "nestedAgent";
442
514
  //#endregion
515
+ //#region src/authoring/callableTool.types.d.ts
516
+ /**
517
+ * Workflow-facing helper for inline Zod-typed agent tools (same as {@link CallableToolFactory.callableTool}).
518
+ */
519
+ declare function callableTool<TInputSchema extends ZodSchemaAny, TOutputSchema extends ZodSchemaAny>(options: CallableToolConfigOptions<TInputSchema, TOutputSchema>): CallableToolConfig<TInputSchema, TOutputSchema>;
520
+ //#endregion
443
521
  //#region src/ai/AgentConnectionNodeCollector.d.ts
444
522
  type AgentConnectionNodeRole = "languageModel" | "tool" | "nestedAgent";
445
523
  type AgentConnectionCredentialSource = Readonly<{
@@ -731,5 +809,5 @@ declare class LocalOnlyScheduler implements NodeExecutionScheduler {
731
809
  }>;
732
810
  }
733
811
  //#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-CUt13qs1.d.ts.map
812
+ export { ChatModelFactory as $, AgentConnectionNodeRole as A, DefinedNodeCredentialBindings as At, AgentMessageRole as B, ItemValueResolver as Bt, PersistedRuntimeTypeKind as C, DefinedNodeRegistry as Ct, AgentConnectionCredentialSource as D, DefinedNode as Dt, InMemoryRunEventBus as E, DefineNodeOptions as Et, AgentGuardrailDefaults as F, SystemClock as Ft, AgentTool as G, CredentialResolverFactory as Gt, AgentMessageTemplateContent as H, DefaultExecutionContextFactory as Ht, AgentMessageBuildArgs as I, NodeInstanceFactory as It, AgentToolDefinition as J, EngineFactory as Jt, AgentToolCall as K, NodeEventPublisher as Kt, AgentMessageConfig as L, NodeExecutor as Lt, AgentAttachmentRole as M, defineBatchNode as Mt, AgentCanvasPresentation as N, defineNode as Nt, AgentConnectionNodeCollector as O, DefinedNodeCredentialAccessors as Ot, AgentGuardrailConfig as P, Clock as Pt, ChatModelConfig as Q, AgentMessageDto as R, NodeOutputNormalizer as Rt, PersistedRuntimeTypeDecoratorOptions as S, defineCredential as St, EventPublishingWorkflowExecutionRepository as T, DefineNodeExecuteArgs as Tt, AgentModelInvocationOptions as U, DefaultAsyncSleeper as Ut, AgentMessageTemplate as V, InProcessRetryRunner as Vt, AgentNodeConfig as W, AsyncSleeper as Wt, AgentToolToken as X, AgentToolExecuteArgs as Y, 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, DefinedNodeRunContext as jt, AgentConnectionNodeDescriptor as k, DefinedNodeCredentialBinding 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, EngineCompositionDeps 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, RunnableOutputBehaviorResolver as zt };
813
+ //# sourceMappingURL=index-C2af8ssM.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-DVBwxFvX.cjs');
2
2
  const require_workflowActivationPolicy = require('./workflowActivationPolicy-6V3OJD3N.cjs');
3
3
  let zod = require("zod");
4
4
  zod = require_runtime.__toESM(zod);
@@ -92,6 +92,7 @@ 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
98
  this.config = config;
@@ -239,6 +240,78 @@ function defineCredential(options) {
239
240
  };
240
241
  }
241
242
 
243
+ //#endregion
244
+ //#region src/ai/CallableToolKindToken.ts
245
+ /**
246
+ * Shared {@link import("../di").TypeToken} marker for {@link CallableToolConfig}.
247
+ * Callable tools are not registered in {@link NodeResolver}; this class only satisfies {@link ToolConfig#type}.
248
+ */
249
+ var CallableToolKindToken = class {};
250
+
251
+ //#endregion
252
+ //#region src/ai/CallableToolConfig.ts
253
+ /**
254
+ * Inline callable agent tool: DSL sugar over {@link ToolConfig} without a separate {@link NodeResolver}-registered {@link Tool} class.
255
+ */
256
+ var CallableToolConfig = class {
257
+ type = CallableToolKindToken;
258
+ toolKind = "callable";
259
+ description;
260
+ presentation;
261
+ inputSchemaValue;
262
+ outputSchemaValue;
263
+ credentialRequirementsValue;
264
+ executeHandler;
265
+ constructor(name, options) {
266
+ this.name = name;
267
+ this.description = options.description;
268
+ this.presentation = options.presentation;
269
+ this.inputSchemaValue = options.inputSchema;
270
+ this.outputSchemaValue = options.outputSchema;
271
+ this.credentialRequirementsValue = options.credentialRequirements;
272
+ this.executeHandler = options.execute;
273
+ }
274
+ getCredentialRequirements() {
275
+ return this.credentialRequirementsValue ?? [];
276
+ }
277
+ getInputSchema() {
278
+ return this.inputSchemaValue;
279
+ }
280
+ getOutputSchema() {
281
+ return this.outputSchemaValue;
282
+ }
283
+ /**
284
+ * Parses tool input and output with the configured Zod schemas.
285
+ */
286
+ async executeTool(args) {
287
+ const parsedInput = this.inputSchemaValue.parse(args.input);
288
+ const raw = await Promise.resolve(this.executeHandler({
289
+ ...args,
290
+ config: this,
291
+ input: parsedInput
292
+ }));
293
+ return this.outputSchemaValue.parse(raw);
294
+ }
295
+ };
296
+
297
+ //#endregion
298
+ //#region src/ai/CallableToolFactory.ts
299
+ var CallableToolFactoryImpl = class {
300
+ callableTool(options) {
301
+ return new CallableToolConfig(options.name, options);
302
+ }
303
+ };
304
+ const CallableToolFactory = new CallableToolFactoryImpl();
305
+
306
+ //#endregion
307
+ //#region src/authoring/callableTool.types.ts
308
+ /**
309
+ * Workflow-facing helper for inline Zod-typed agent tools (same as {@link CallableToolFactory.callableTool}).
310
+ */
311
+ function callableTool(options) {
312
+ return CallableToolFactory.callableTool(options);
313
+ }
314
+
242
315
  //#endregion
243
316
  //#region src/ai/NodeBackedToolConfig.ts
244
317
  var NodeBackedToolConfig = class {
@@ -649,6 +722,9 @@ exports.AgentGuardrailDefaults = AgentGuardrailDefaults;
649
722
  exports.AgentMessageConfigNormalizer = AgentMessageConfigNormalizer;
650
723
  exports.AgentToolFactory = AgentToolFactory;
651
724
  exports.AllWorkflowsActiveWorkflowActivationPolicy = require_workflowActivationPolicy.AllWorkflowsActiveWorkflowActivationPolicy;
725
+ exports.CallableToolConfig = CallableToolConfig;
726
+ exports.CallableToolFactory = CallableToolFactory;
727
+ exports.CallableToolKindToken = CallableToolKindToken;
652
728
  exports.ChainCursor = require_workflowActivationPolicy.ChainCursor;
653
729
  exports.ConnectionInvocationIdFactory = ConnectionInvocationIdFactory;
654
730
  exports.ConnectionNodeIdFactory = require_runtime.ConnectionNodeIdFactory;
@@ -685,6 +761,7 @@ exports.PersistedRuntimeTypeNameResolver = require_runtime.PersistedRuntimeTypeN
685
761
  exports.RetryPolicy = RetryPolicy;
686
762
  exports.RunFinishedAtFactory = require_runtime.RunFinishedAtFactory;
687
763
  exports.RunIntentService = require_runtime.RunIntentService;
764
+ exports.RunnableOutputBehaviorResolver = require_runtime.RunnableOutputBehaviorResolver;
688
765
  exports.StackTraceCallSitePathResolver = require_runtime.StackTraceCallSitePathResolver;
689
766
  exports.SystemClock = SystemClock;
690
767
  exports.UnavailableBinaryStorage = require_runtime.UnavailableBinaryStorage;
@@ -693,6 +770,7 @@ exports.WorkflowBuilder = require_workflowActivationPolicy.WorkflowBuilder;
693
770
  exports.WorkflowExecutableNodeClassifier = require_runtime.WorkflowExecutableNodeClassifier;
694
771
  exports.WorkflowExecutableNodeClassifierFactory = require_runtime.WorkflowExecutableNodeClassifierFactory;
695
772
  exports.branchRef = branchRef;
773
+ exports.callableTool = callableTool;
696
774
  exports.chatModel = require_runtime.chatModel;
697
775
  Object.defineProperty(exports, 'container', {
698
776
  enumerable: true,