@codemation/core 0.7.0 → 0.8.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 (79) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/{EngineRuntimeRegistration.types-_M7KFD3D.d.ts → EngineRuntimeRegistration.types-BP6tsaNP.d.ts} +4 -2
  3. package/dist/{EngineWorkflowRunnerService-D0Cwngv7.d.cts → EngineWorkflowRunnerService-DzOCa1BW.d.cts} +4 -2
  4. package/dist/{InMemoryRunDataFactory-BIWx6e02.d.cts → InMemoryRunDataFactory-1iz7_SnO.d.cts} +24 -4
  5. package/dist/{workflowActivationPolicy-6V3OJD3N.cjs → InMemoryRunEventBusRegistry-B0_C4OnP.cjs} +1 -16
  6. package/dist/InMemoryRunEventBusRegistry-B0_C4OnP.cjs.map +1 -0
  7. package/dist/{workflowActivationPolicy-Td9HTOuD.js → InMemoryRunEventBusRegistry-C2U83Hmv.js} +2 -11
  8. package/dist/InMemoryRunEventBusRegistry-C2U83Hmv.js.map +1 -0
  9. package/dist/{RunIntentService-CuXAIO6_.d.ts → RunIntentService-BqhmdoA1.d.ts} +231 -3
  10. package/dist/{RunIntentService-5k0p-J67.d.cts → RunIntentService-S-1lW-gS.d.cts} +203 -3
  11. package/dist/bootstrap/index.cjs +4 -2
  12. package/dist/bootstrap/index.d.cts +24 -5
  13. package/dist/bootstrap/index.d.ts +4 -4
  14. package/dist/bootstrap/index.js +3 -3
  15. package/dist/{bootstrap-D-TDU9Lu.cjs → bootstrap-BaN6hZ5I.cjs} +6 -3
  16. package/dist/bootstrap-BaN6hZ5I.cjs.map +1 -0
  17. package/dist/{bootstrap-BhYxSivA.js → bootstrap-d_BMaDT4.js} +6 -3
  18. package/dist/bootstrap-d_BMaDT4.js.map +1 -0
  19. package/dist/{index-BnJ7_IrO.d.ts → index-CVs9rVhl.d.ts} +36 -6
  20. package/dist/index.cjs +48 -83
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +23 -4
  23. package/dist/index.d.ts +3 -3
  24. package/dist/index.js +27 -74
  25. package/dist/index.js.map +1 -1
  26. package/dist/{runtime-CJnObwsU.js → runtime-DUW6tIJ1.js} +423 -33
  27. package/dist/runtime-DUW6tIJ1.js.map +1 -0
  28. package/dist/{runtime-3YVDd2vY.cjs → runtime-Dvo2ru5A.cjs} +548 -32
  29. package/dist/runtime-Dvo2ru5A.cjs.map +1 -0
  30. package/dist/testing.cjs +6 -6
  31. package/dist/testing.cjs.map +1 -1
  32. package/dist/testing.d.cts +2 -2
  33. package/dist/testing.d.ts +2 -2
  34. package/dist/testing.js +3 -3
  35. package/package.json +1 -1
  36. package/src/ai/AiHost.ts +2 -0
  37. package/src/ai/CallableToolConfig.ts +28 -3
  38. package/src/bootstrap/index.ts +6 -1
  39. package/src/bootstrap/runtime/EngineRuntimeRegistrar.ts +1 -0
  40. package/src/bootstrap/runtime/EngineRuntimeRegistration.types.ts +3 -0
  41. package/src/contracts/CodemationTelemetryAttributeNames.ts +12 -0
  42. package/src/contracts/CodemationTelemetryMetricNames.ts +7 -0
  43. package/src/contracts/CostCatalogContract.ts +16 -0
  44. package/src/contracts/CostTrackingTelemetryContract.ts +47 -0
  45. package/src/contracts/GenAiTelemetryAttributeNames.ts +10 -0
  46. package/src/contracts/NoOpCostTrackingTelemetry.ts +16 -0
  47. package/src/contracts/NoOpCostTrackingTelemetryFactory.ts +9 -0
  48. package/src/contracts/NoOpExecutionTelemetry.ts +26 -0
  49. package/src/contracts/NoOpExecutionTelemetryFactory.ts +16 -0
  50. package/src/contracts/NoOpNodeExecutionTelemetry.ts +15 -0
  51. package/src/contracts/NoOpTelemetryArtifactReference.ts +9 -0
  52. package/src/contracts/NoOpTelemetrySpanScope.ts +22 -0
  53. package/src/contracts/index.ts +1 -0
  54. package/src/contracts/runTypes.ts +4 -1
  55. package/src/contracts/runtimeTypes.ts +7 -0
  56. package/src/contracts/telemetryTypes.ts +105 -0
  57. package/src/contracts/workflowTypes.ts +9 -0
  58. package/src/events/EventPublishingWorkflowExecutionRepository.ts +1 -1
  59. package/src/execution/CatalogBackedCostTrackingTelemetry.ts +81 -0
  60. package/src/execution/CatalogBackedCostTrackingTelemetryFactory.ts +12 -0
  61. package/src/execution/DefaultExecutionContextFactory.ts +23 -0
  62. package/src/execution/ExecutionTelemetryCostTrackingDecoratorFactory.ts +84 -0
  63. package/src/execution/NodeActivationRequestComposer.ts +1 -0
  64. package/src/execution/NodeExecutionSnapshotFactory.ts +2 -0
  65. package/src/execution/StaticCostCatalog.ts +22 -0
  66. package/src/execution/WorkflowRunExecutionContextFactory.ts +2 -0
  67. package/src/execution/index.ts +4 -0
  68. package/src/orchestration/NodeExecutionRequestHandlerService.ts +1 -0
  69. package/src/orchestration/RunContinuationService.ts +4 -0
  70. package/src/orchestration/RunStartService.ts +2 -0
  71. package/src/policies/storage/RunPolicySnapshotFactory.ts +9 -0
  72. package/src/runStorage/InMemoryWorkflowExecutionRepository.ts +4 -2
  73. package/src/types/index.ts +5 -0
  74. package/dist/bootstrap-BhYxSivA.js.map +0 -1
  75. package/dist/bootstrap-D-TDU9Lu.cjs.map +0 -1
  76. package/dist/runtime-3YVDd2vY.cjs.map +0 -1
  77. package/dist/runtime-CJnObwsU.js.map +0 -1
  78. package/dist/workflowActivationPolicy-6V3OJD3N.cjs.map +0 -1
  79. package/dist/workflowActivationPolicy-Td9HTOuD.js.map +0 -1
@@ -273,6 +273,190 @@ declare class CredentialUnboundError extends Error {
273
273
  private static createMessage;
274
274
  }
275
275
  //#endregion
276
+ //#region src/contracts/CostTrackingTelemetryContract.d.ts
277
+ type CostTrackingComponent = "chat" | "ocr" | "rag";
278
+ declare const CostTrackingTelemetryMetricNames: {
279
+ readonly usage: "codemation.cost.usage";
280
+ readonly estimatedCost: "codemation.cost.estimated";
281
+ };
282
+ declare const CostTrackingTelemetryAttributeNames: {
283
+ readonly component: "cost.component";
284
+ readonly provider: "cost.provider";
285
+ readonly operation: "cost.operation";
286
+ readonly pricingKey: "cost.pricing_key";
287
+ readonly usageUnit: "cost.usage_unit";
288
+ readonly currency: "cost.currency";
289
+ readonly currencyScale: "cost.currency_scale";
290
+ readonly estimateKind: "cost.estimate_kind";
291
+ };
292
+ interface CostTrackingUsageRecord {
293
+ readonly component: CostTrackingComponent;
294
+ readonly provider: string;
295
+ readonly operation: string;
296
+ readonly pricingKey: string;
297
+ readonly usageUnit: string;
298
+ readonly quantity: number;
299
+ readonly modelName?: string;
300
+ readonly attributes?: TelemetryAttributes;
301
+ }
302
+ interface CostTrackingPriceQuote {
303
+ readonly currency: string;
304
+ readonly currencyScale: number;
305
+ readonly estimatedAmountMinor: number;
306
+ readonly estimateKind: "catalog";
307
+ }
308
+ interface CostTrackingTelemetry {
309
+ captureUsage(args: CostTrackingUsageRecord): Promise<CostTrackingPriceQuote | undefined>;
310
+ forScope(scope: TelemetryScope): CostTrackingTelemetry;
311
+ }
312
+ interface CostTrackingTelemetryFactory {
313
+ create(args: Readonly<{
314
+ telemetry: ExecutionTelemetry;
315
+ }>): CostTrackingTelemetry;
316
+ }
317
+ //#endregion
318
+ //#region src/contracts/NoOpTelemetryArtifactReference.d.ts
319
+ declare class NoOpTelemetryArtifactReference {
320
+ static readonly value: TelemetryArtifactReference;
321
+ }
322
+ //#endregion
323
+ //#region src/contracts/NoOpTelemetrySpanScope.d.ts
324
+ declare class NoOpTelemetrySpanScope {
325
+ static readonly value: TelemetrySpanScope;
326
+ }
327
+ //#endregion
328
+ //#region src/contracts/NoOpNodeExecutionTelemetry.d.ts
329
+ declare class NoOpNodeExecutionTelemetry {
330
+ static readonly value: NodeExecutionTelemetry;
331
+ }
332
+ //#endregion
333
+ //#region src/contracts/NoOpExecutionTelemetry.d.ts
334
+ declare class NoOpExecutionTelemetry {
335
+ static readonly value: ExecutionTelemetry;
336
+ }
337
+ //#endregion
338
+ //#region src/contracts/NoOpExecutionTelemetryFactory.d.ts
339
+ declare class NoOpExecutionTelemetryFactory implements ExecutionTelemetryFactory {
340
+ create(_: Readonly<{
341
+ runId: RunId;
342
+ workflowId: WorkflowId;
343
+ parent?: ParentExecutionRef;
344
+ policySnapshot?: PersistedRunPolicySnapshot;
345
+ }>): ExecutionTelemetry;
346
+ }
347
+ //#endregion
348
+ //#region src/contracts/CodemationTelemetryAttributeNames.d.ts
349
+ declare class CodemationTelemetryAttributeNames {
350
+ static readonly workflowId = "codemation.workflow.id";
351
+ static readonly runId = "codemation.run.id";
352
+ static readonly nodeId = "codemation.node.id";
353
+ static readonly activationId = "codemation.activation.id";
354
+ static readonly nodeType = "codemation.node.type";
355
+ static readonly nodeRole = "codemation.node.role";
356
+ static readonly workflowFolder = "codemation.workflow.folder";
357
+ static readonly connectionInvocationId = "codemation.connection.invocation_id";
358
+ static readonly toolName = "codemation.tool.name";
359
+ static readonly traceParentRunId = "codemation.parent.run.id";
360
+ }
361
+ //#endregion
362
+ //#region src/contracts/GenAiTelemetryAttributeNames.d.ts
363
+ declare class GenAiTelemetryAttributeNames {
364
+ static readonly operationName = "gen_ai.operation.name";
365
+ static readonly requestModel = "gen_ai.request.model";
366
+ static readonly usageInputTokens = "gen_ai.usage.input_tokens";
367
+ static readonly usageOutputTokens = "gen_ai.usage.output_tokens";
368
+ static readonly usageTotalTokens = "gen_ai.usage.total_tokens";
369
+ static readonly usageCacheReadInputTokens = "gen_ai.usage.cache_read.input_tokens";
370
+ static readonly usageCacheCreationInputTokens = "gen_ai.usage.cache_creation.input_tokens";
371
+ static readonly usageReasoningTokens = "codemation.gen_ai.usage.reasoning_tokens";
372
+ }
373
+ //#endregion
374
+ //#region src/contracts/CodemationTelemetryMetricNames.d.ts
375
+ declare class CodemationTelemetryMetricNames {
376
+ static readonly agentTurns = "codemation.ai.turns";
377
+ static readonly agentToolCalls = "codemation.ai.tool_calls";
378
+ static readonly gmailMessagesEmitted = "codemation.gmail.messages_emitted";
379
+ static readonly gmailAttachments = "codemation.gmail.attachments";
380
+ static readonly gmailAttachmentBytes = "codemation.gmail.attachment_bytes";
381
+ }
382
+ //#endregion
383
+ //#region src/contracts/telemetryTypes.d.ts
384
+ type TelemetryAttributePrimitive = string | number | boolean | null;
385
+ interface TelemetryAttributes {
386
+ readonly [key: string]: TelemetryAttributePrimitive | undefined;
387
+ }
388
+ interface TelemetryMetricRecord {
389
+ readonly name: string;
390
+ readonly value: number;
391
+ readonly unit?: string;
392
+ readonly attributes?: TelemetryAttributes;
393
+ }
394
+ interface TelemetrySpanEventRecord {
395
+ readonly name: string;
396
+ readonly occurredAt?: Date;
397
+ readonly attributes?: TelemetryAttributes;
398
+ }
399
+ interface TelemetryArtifactAttachment {
400
+ readonly kind: string;
401
+ readonly contentType: string;
402
+ readonly previewText?: string;
403
+ readonly previewJson?: JsonValue;
404
+ readonly payloadText?: string;
405
+ readonly payloadJson?: JsonValue;
406
+ readonly bytes?: number;
407
+ readonly truncated?: boolean;
408
+ readonly expiresAt?: Date;
409
+ }
410
+ interface TelemetryArtifactReference {
411
+ readonly artifactId: string;
412
+ readonly traceId?: string;
413
+ readonly spanId?: string;
414
+ }
415
+ interface TelemetrySpanEnd {
416
+ readonly status?: "ok" | "error";
417
+ readonly statusMessage?: string;
418
+ readonly endedAt?: Date;
419
+ readonly attributes?: TelemetryAttributes;
420
+ }
421
+ interface TelemetryChildSpanStart {
422
+ readonly name: string;
423
+ readonly kind?: "internal" | "client";
424
+ readonly startedAt?: Date;
425
+ readonly attributes?: TelemetryAttributes;
426
+ }
427
+ interface TelemetryScope {
428
+ readonly traceId?: string;
429
+ readonly spanId?: string;
430
+ readonly costTracking?: CostTrackingTelemetry;
431
+ addSpanEvent(args: TelemetrySpanEventRecord): Promise<void> | void;
432
+ recordMetric(args: TelemetryMetricRecord): Promise<void> | void;
433
+ attachArtifact(args: TelemetryArtifactAttachment): Promise<TelemetryArtifactReference> | TelemetryArtifactReference;
434
+ }
435
+ interface TelemetrySpanScope extends TelemetryScope {
436
+ readonly traceId: string;
437
+ readonly spanId: string;
438
+ end(args?: TelemetrySpanEnd): Promise<void> | void;
439
+ }
440
+ interface NodeExecutionTelemetry extends ExecutionTelemetry, TelemetrySpanScope {
441
+ startChildSpan(args: TelemetryChildSpanStart): TelemetrySpanScope;
442
+ }
443
+ interface ExecutionTelemetry extends TelemetryScope {
444
+ readonly traceId: string;
445
+ readonly spanId: string;
446
+ forNode(args: Readonly<{
447
+ nodeId: NodeId;
448
+ activationId: NodeActivationId;
449
+ }>): NodeExecutionTelemetry;
450
+ }
451
+ interface ExecutionTelemetryFactory {
452
+ create(args: Readonly<{
453
+ runId: RunId;
454
+ workflowId: WorkflowId;
455
+ parent?: ParentExecutionRef;
456
+ policySnapshot?: PersistedRunPolicySnapshot;
457
+ }>): ExecutionTelemetry;
458
+ }
459
+ //#endregion
276
460
  //#region src/contracts/runTypes.d.ts
277
461
  interface RunExecutionOptions {
278
462
  /** Run-intent override: force the inline scheduler and bypass node-level offload decisions. */
@@ -355,6 +539,7 @@ interface NodeExecutionError {
355
539
  message: string;
356
540
  name?: string;
357
541
  stack?: string;
542
+ details?: JsonValue;
358
543
  }
359
544
  interface NodeExecutionSnapshot {
360
545
  runId: RunId;
@@ -522,7 +707,8 @@ interface RunPruneCandidate {
522
707
  }
523
708
  interface WorkflowExecutionPruneRepository {
524
709
  listRunsOlderThan(args: Readonly<{
525
- beforeIso: string;
710
+ nowIso: string;
711
+ defaultRetentionSeconds: number;
526
712
  limit?: number;
527
713
  }>): Promise<ReadonlyArray<RunPruneCandidate>>;
528
714
  }
@@ -735,6 +921,7 @@ interface ExecutionContext {
735
921
  now: () => Date;
736
922
  data: RunDataSnapshot;
737
923
  nodeState?: NodeExecutionStatePublisher;
924
+ telemetry: ExecutionTelemetry;
738
925
  binary: ExecutionBinaryService;
739
926
  getCredential<TSession = unknown>(slotKey: string): Promise<TSession>;
740
927
  }
@@ -743,11 +930,13 @@ interface ExecutionContextFactory {
743
930
  runId: RunId;
744
931
  workflowId: WorkflowId;
745
932
  parent?: ParentExecutionRef;
933
+ policySnapshot?: PersistedRunPolicySnapshot;
746
934
  subworkflowDepth: number;
747
935
  engineMaxNodeActivations: number;
748
936
  engineMaxSubworkflowDepth: number;
749
937
  data: RunDataSnapshot;
750
938
  nodeState?: NodeExecutionStatePublisher;
939
+ telemetry?: ExecutionTelemetry;
751
940
  getCredential<TSession = unknown>(slotKey: string): Promise<TSession>;
752
941
  }): ExecutionContext;
753
942
  }
@@ -755,6 +944,7 @@ interface NodeExecutionContext<TConfig extends NodeConfigBase = NodeConfigBase>
755
944
  nodeId: NodeId;
756
945
  activationId: NodeActivationId;
757
946
  config: TConfig;
947
+ telemetry: NodeExecutionTelemetry;
758
948
  binary: NodeBinaryAttachmentService;
759
949
  }
760
950
  interface TriggerSetupContext<TConfig extends TriggerNodeConfig<any, any> = TriggerNodeConfig<any, any>, TSetupState$1 extends JsonValue | undefined = TriggerNodeSetupState<TConfig>> extends ExecutionContext {
@@ -948,6 +1138,7 @@ interface EngineDeps {
948
1138
  activationScheduler: NodeActivationScheduler;
949
1139
  runDataFactory: RunDataFactory;
950
1140
  executionContextFactory: ExecutionContextFactory;
1141
+ executionTelemetryFactory?: ExecutionTelemetryFactory;
951
1142
  nodeExecutor: NodeExecutor;
952
1143
  eventBus?: RunEventBus;
953
1144
  tokenRegistry: PersistedWorkflowTokenRegistryLike;
@@ -1219,10 +1410,16 @@ interface WorkflowStoragePolicyDecisionArgs {
1219
1410
  interface WorkflowPrunePolicySpec {
1220
1411
  readonly runDataRetentionSeconds?: number;
1221
1412
  readonly binaryRetentionSeconds?: number;
1413
+ readonly telemetrySpanRetentionSeconds?: number;
1414
+ readonly telemetryArtifactRetentionSeconds?: number;
1415
+ readonly telemetryMetricRetentionSeconds?: number;
1222
1416
  }
1223
1417
  interface PersistedRunPolicySnapshot {
1224
1418
  readonly retentionSeconds?: number;
1225
1419
  readonly binaryRetentionSeconds?: number;
1420
+ readonly telemetrySpanRetentionSeconds?: number;
1421
+ readonly telemetryArtifactRetentionSeconds?: number;
1422
+ readonly telemetryMetricRetentionSeconds?: number;
1226
1423
  readonly storagePolicy: WorkflowStoragePolicyMode;
1227
1424
  }
1228
1425
  interface WorkflowErrorHandler {
@@ -1253,6 +1450,9 @@ type NodeErrorHandlerSpec = TypeToken<NodeErrorHandler> | NodeErrorHandler;
1253
1450
  interface WorkflowPolicyRuntimeDefaults {
1254
1451
  readonly retentionSeconds?: number;
1255
1452
  readonly binaryRetentionSeconds?: number;
1453
+ readonly telemetrySpanRetentionSeconds?: number;
1454
+ readonly telemetryArtifactRetentionSeconds?: number;
1455
+ readonly telemetryMetricRetentionSeconds?: number;
1256
1456
  readonly storagePolicy?: WorkflowStoragePolicyMode;
1257
1457
  }
1258
1458
  //#endregion
@@ -1458,5 +1658,5 @@ declare class RunIntentService {
1458
1658
  private createWebhookExecutionOptions;
1459
1659
  }
1460
1660
  //#endregion
1461
- export { WorkflowGraph as $, WorkflowExecutionListingRepository as $n, TriggerCleanupHandle as $t, NodeOutputs as A, NodeInputsByPort as An, Disposable as Ar, ExecutionContext as At, RunId as B, PinnedNodeOutputsByPort as Bn, instanceCachingFactory as Br, NodeBinaryAttachmentService as Bt, NodeErrorHandler as C, ConnectionInvocationRecord as Cn, CredentialTypeDefinition as Cr, BinaryStorageStatResult as Ct, NodeIdRef as D, NodeExecutionError as Dn, OAuth2ProviderFromPublicConfig as Dr, EngineHost as Dt, NodeId as E, ExecutionFrontierPlan as En, CredentialUnboundError as Er, EngineDeps as Et, ParentExecutionRef as F, PersistedRunSchedulingState as Fn, container as Fr, NodeActivationContinuation as Ft, TriggerNodeConfig as G, RunPruneCandidate as Gn, CoreTokens as Gr, NodeExecutionStatePublisher as Gt, RunnableNodeConfig as H, RunCurrentState as Hn, predicateAwareClassFactory as Hr, NodeExecutionRequest as Ht, PersistedRunPolicySnapshot as I, PersistedRunState as In, delay as Ir, NodeActivationReceipt as It, UpstreamRefPlaceholder as J, RunStateResetRequest as Jn, EngineExecutionLimitsPolicyConfig as Jr, PersistedTriggerSetupState as Jt, TriggerNodeOutputJson as K, RunQueueEntry as Kn, ENGINE_EXECUTION_LIMITS_DEFAULTS as Kr, NodeExecutor as Kt, PersistedTokenId as L, PersistedWorkflowSnapshot as Ln, inject as Lr, NodeActivationRequest as Lt, NodeSchedulerDecision as M, PersistedMutableNodeState as Mn, Lifecycle as Mr, ItemNode as Mt, OutputPortKey as N, PersistedMutableRunState as Nn, RegistrationOptions as Nr, LiveWorkflowRepository as Nt, NodeKind as O, NodeExecutionSnapshot as On, Container as Or, ExecutableTriggerNode as Ot, PairedItemRef as P, PersistedRunControlState as Pn, TypeToken as Pr, MultiInputNode as Pt, WorkflowErrorHandlerSpec as Q, WebhookRunResult as Qn, TestableTriggerNode as Qt, RunDataFactory as R, PersistedWorkflowSnapshotNode as Rn, injectAll as Rr, NodeActivationRequestBase as Rt, NodeDefinition as S, ConnectionInvocationId as Sn, CredentialType as Sr, BinaryStorageReadResult as St, NodeErrorHandlerSpec as T, EngineRunCounters as Tn, CredentialTypeRegistry as Tr, BinaryStorageWriteResult as Tt, RunnableNodeInputJson as U, RunEventPublisherDeps as Un, registry as Ur, NodeExecutionRequestHandler as Ut, RunIdFactory as V, RunCompletionNotifier as Vn, instancePerContainerCachingFactory as Vr, NodeExecutionContext as Vt, RunnableNodeOutputJson as W, RunExecutionOptions as Wn, singleton as Wr, NodeExecutionScheduler as Wt, WorkflowErrorContext as X, RunStopCondition as Xn, RunEventBus as Xr, RunnableNode as Xt, WorkflowDefinition as Y, RunStatus as Yn, RunEvent as Yr, PreparedNodeActivationDispatch as Yt, WorkflowErrorHandler as Z, RunSummary as Zn, RunEventSubscription as Zr, RunnableNodeExecuteArgs as Zt, JsonValue as _, WebhookTriggerResolution as _n, CredentialRequirement as _r, NoneRetryPolicySpec as _t, BinaryAttachment as a, TriggerTestItemsContext as an, CredentialBinding as ar, WorkflowStoragePolicyDecisionArgs as at, NodeConfigBase as b, WorkflowActivationPolicy as bn, CredentialSessionService as br, BinaryBody as bt, ExecutionMode as c, WorkflowRunnerResolver as cn, CredentialHealth as cr, WorkflowStoragePolicySpec as ct, ItemBinary as d, WorkflowSnapshotResolver as dn, CredentialInstanceId as dr, runnableNodeInputType as dt, TriggerNode as en, WorkflowExecutionPruneRepository as er, WorkflowGraphFactory as et, Items as f, HttpMethod as fn, CredentialInstanceRecord as fr, runnableNodeOutputType as ft, JsonPrimitive as g, WebhookTriggerMatcher as gn, CredentialOAuth2ScopesFromPublicConfig as gr, FixedRetryPolicySpec as gt, JsonObject as h, WebhookInvocationMatch as hn, CredentialOAuth2AuthDefinition as hr, ExponentialRetryPolicySpec as ht, ActivationIdFactory as i, TriggerSetupStateRepository as in, CredentialAuthDefinition as ir, WorkflowPrunePolicySpec as it, NodeRef as j, PendingNodeExecution as jn, InjectionToken$1 as jr, ExecutionContextFactory as jt, NodeOffloadPolicy as k, NodeExecutionStatus as kn, DependencyContainer$1 as kr, ExecutionBinaryService as kt, InputPortKey as l, WorkflowRunnerService as ln, CredentialHealthStatus as lr, branchRef as lt, JsonNonArray as m, WebhookControlSignal as mn, CredentialMaterialSourceKind as mr, triggerNodeSetupStateType as mt, InMemoryLiveWorkflowRepository as n, TriggerSetupContext as nn, AnyCredentialType as nr, WorkflowNodeConnection as nt, BinaryPreviewKind as o, WorkflowNodeInstanceFactory as on, CredentialBindingKey as or, WorkflowStoragePolicyMode as ot, JsonArray as p, TriggerInstanceId as pn, CredentialJsonRecord as pr, triggerNodeOutputType as pt, TriggerNodeSetupState as q, RunResult as qn, EngineExecutionLimitsPolicy as qr, NodeResolver as qt, Engine as r, TriggerSetupStateFor as rn, CredentialAdvancedSectionPresentation as rr, WorkflowPolicyRuntimeDefaults as rt, Edge as s, WorkflowRepository as sn, CredentialFieldSchema as sr, WorkflowStoragePolicyResolver as st, RunIntentService as t, TriggerRuntimeDiagnostics as tn, WorkflowExecutionRepository as tr, WorkflowId as tt, Item as u, WorkflowSnapshotFactory as un, CredentialHealthTester as ur, nodeRef as ut, MutableRunData as v, WebhookTriggerRoutingDiagnostics as vn, CredentialSessionFactory as vr, RetryPolicySpec as vt, NodeErrorHandlerArgs as w, CurrentStateExecutionRequest as wn, CredentialTypeId as wr, BinaryStorageWriteRequest as wt, NodeConnectionName as x, ConnectionInvocationAppendArgs as xn, CredentialSetupStatus as xr, BinaryStorage as xt, NodeActivationId as y, AllWorkflowsActiveWorkflowActivationPolicy as yn, CredentialSessionFactoryArgs as yr, BinaryAttachmentCreateRequest as yt, RunDataSnapshot as z, PersistedWorkflowTokenRegistryLike as zn, injectable as zr, NodeActivationScheduler as zt };
1462
- //# sourceMappingURL=RunIntentService-5k0p-J67.d.cts.map
1661
+ export { WorkflowGraph as $, WorkflowExecutionListingRepository as $n, CredentialTypeRegistry as $r, TriggerCleanupHandle as $t, NodeOutputs as A, NodeInputsByPort as An, AnyCredentialType as Ar, ExecutionContext as At, RunId as B, PinnedNodeOutputsByPort as Bn, CredentialInstanceRecord as Br, NodeBinaryAttachmentService as Bt, NodeErrorHandler as C, RunEvent as Ci, ConnectionInvocationRecord as Cn, CostTrackingComponent as Cr, BinaryStorageStatResult as Ct, NodeIdRef as D, NodeExecutionError as Dn, CostTrackingTelemetryFactory as Dr, EngineHost as Dt, NodeId as E, ExecutionFrontierPlan as En, CostTrackingTelemetryAttributeNames as Er, EngineDeps as Et, ParentExecutionRef as F, PersistedRunSchedulingState as Fn, CredentialFieldSchema as Fr, NodeActivationContinuation as Ft, TriggerNodeConfig as G, RunPruneCandidate as Gn, CredentialRequirement as Gr, NodeExecutionStatePublisher as Gt, RunnableNodeConfig as H, RunCurrentState as Hn, CredentialMaterialSourceKind as Hr, NodeExecutionRequest as Ht, PersistedRunPolicySnapshot as I, PersistedRunState as In, CredentialHealth as Ir, NodeActivationReceipt as It, UpstreamRefPlaceholder as J, RunStateResetRequest as Jn, CredentialSessionService as Jr, PersistedTriggerSetupState as Jt, TriggerNodeOutputJson as K, RunQueueEntry as Kn, CredentialSessionFactory as Kr, NodeExecutor as Kt, PersistedTokenId as L, PersistedWorkflowSnapshot as Ln, CredentialHealthStatus as Lr, NodeActivationRequest as Lt, NodeSchedulerDecision as M, PersistedMutableNodeState as Mn, CredentialAuthDefinition as Mr, ItemNode as Mt, OutputPortKey as N, PersistedMutableRunState as Nn, CredentialBinding as Nr, LiveWorkflowRepository as Nt, NodeKind as O, NodeExecutionSnapshot as On, CostTrackingTelemetryMetricNames as Or, ExecutableTriggerNode as Ot, PairedItemRef as P, PersistedRunControlState as Pn, CredentialBindingKey as Pr, MultiInputNode as Pt, WorkflowErrorHandlerSpec as Q, WebhookRunResult as Qn, CredentialTypeId as Qr, TestableTriggerNode as Qt, RunDataFactory as R, PersistedWorkflowSnapshotNode as Rn, CredentialHealthTester as Rr, NodeActivationRequestBase as Rt, NodeDefinition as S, EngineExecutionLimitsPolicyConfig as Si, ConnectionInvocationId as Sn, NoOpTelemetryArtifactReference as Sr, BinaryStorageReadResult as St, NodeErrorHandlerSpec as T, RunEventSubscription as Ti, EngineRunCounters as Tn, CostTrackingTelemetry as Tr, BinaryStorageWriteResult as Tt, RunnableNodeInputJson as U, RunEventPublisherDeps as Un, CredentialOAuth2AuthDefinition as Ur, NodeExecutionRequestHandler as Ut, RunIdFactory as V, RunCompletionNotifier as Vn, CredentialJsonRecord as Vr, NodeExecutionContext as Vt, RunnableNodeOutputJson as W, RunExecutionOptions as Wn, CredentialOAuth2ScopesFromPublicConfig as Wr, NodeExecutionScheduler as Wt, WorkflowErrorContext as X, RunStopCondition as Xn, CredentialType as Xr, RunnableNode as Xt, WorkflowDefinition as Y, RunStatus as Yn, CredentialSetupStatus as Yr, PreparedNodeActivationDispatch as Yt, WorkflowErrorHandler as Z, RunSummary as Zn, CredentialTypeDefinition as Zr, RunnableNodeExecuteArgs as Zt, JsonValue as _, registry as _i, WebhookTriggerResolution as _n, CodemationTelemetryAttributeNames as _r, NoneRetryPolicySpec as _t, BinaryAttachment as a, InjectionToken$1 as ai, TriggerTestItemsContext as an, TelemetryArtifactAttachment as ar, WorkflowStoragePolicyDecisionArgs as at, NodeConfigBase as b, ENGINE_EXECUTION_LIMITS_DEFAULTS as bi, WorkflowActivationPolicy as bn, NoOpNodeExecutionTelemetry as br, BinaryBody as bt, ExecutionMode as c, TypeToken as ci, WorkflowRunnerResolver as cn, TelemetryAttributes as cr, WorkflowStoragePolicySpec as ct, ItemBinary as d, inject as di, WorkflowSnapshotResolver as dn, TelemetryScope as dr, runnableNodeInputType as dt, CredentialUnboundError as ei, TriggerNode as en, WorkflowExecutionPruneRepository as er, WorkflowGraphFactory as et, Items as f, injectAll as fi, HttpMethod as fn, TelemetrySpanEnd as fr, runnableNodeOutputType as ft, JsonPrimitive as g, predicateAwareClassFactory as gi, WebhookTriggerMatcher as gn, GenAiTelemetryAttributeNames as gr, FixedRetryPolicySpec as gt, JsonObject as h, instancePerContainerCachingFactory as hi, WebhookInvocationMatch as hn, CodemationTelemetryMetricNames as hr, ExponentialRetryPolicySpec as ht, ActivationIdFactory as i, Disposable as ii, TriggerSetupStateRepository as in, NodeExecutionTelemetry as ir, WorkflowPrunePolicySpec as it, NodeRef as j, PendingNodeExecution as jn, CredentialAdvancedSectionPresentation as jr, ExecutionContextFactory as jt, NodeOffloadPolicy as k, NodeExecutionStatus as kn, CostTrackingUsageRecord as kr, ExecutionBinaryService as kt, InputPortKey as l, container as li, WorkflowRunnerService as ln, TelemetryChildSpanStart as lr, branchRef as lt, JsonNonArray as m, instanceCachingFactory as mi, WebhookControlSignal as mn, TelemetrySpanScope as mr, triggerNodeSetupStateType as mt, InMemoryLiveWorkflowRepository as n, Container as ni, TriggerSetupContext as nn, ExecutionTelemetry as nr, WorkflowNodeConnection as nt, BinaryPreviewKind as o, Lifecycle as oi, WorkflowNodeInstanceFactory as on, TelemetryArtifactReference as or, WorkflowStoragePolicyMode as ot, JsonArray as p, injectable as pi, TriggerInstanceId as pn, TelemetrySpanEventRecord as pr, triggerNodeOutputType as pt, TriggerNodeSetupState as q, RunResult as qn, CredentialSessionFactoryArgs as qr, NodeResolver as qt, Engine as r, DependencyContainer$1 as ri, TriggerSetupStateFor as rn, ExecutionTelemetryFactory as rr, WorkflowPolicyRuntimeDefaults as rt, Edge as s, RegistrationOptions as si, WorkflowRepository as sn, TelemetryAttributePrimitive as sr, WorkflowStoragePolicyResolver as st, RunIntentService as t, OAuth2ProviderFromPublicConfig as ti, TriggerRuntimeDiagnostics as tn, WorkflowExecutionRepository as tr, WorkflowId as tt, Item as u, delay as ui, WorkflowSnapshotFactory as un, TelemetryMetricRecord as ur, nodeRef as ut, MutableRunData as v, singleton as vi, WebhookTriggerRoutingDiagnostics as vn, NoOpExecutionTelemetryFactory as vr, RetryPolicySpec as vt, NodeErrorHandlerArgs as w, RunEventBus as wi, CurrentStateExecutionRequest as wn, CostTrackingPriceQuote as wr, BinaryStorageWriteRequest as wt, NodeConnectionName as x, EngineExecutionLimitsPolicy as xi, ConnectionInvocationAppendArgs as xn, NoOpTelemetrySpanScope as xr, BinaryStorage as xt, NodeActivationId as y, CoreTokens as yi, AllWorkflowsActiveWorkflowActivationPolicy as yn, NoOpExecutionTelemetry as yr, BinaryAttachmentCreateRequest as yt, RunDataSnapshot as z, PersistedWorkflowTokenRegistryLike as zn, CredentialInstanceId as zr, NodeActivationScheduler as zt };
1662
+ //# sourceMappingURL=RunIntentService-S-1lW-gS.d.cts.map
@@ -1,6 +1,7 @@
1
- const require_runtime = require('../runtime-3YVDd2vY.cjs');
2
- const require_bootstrap = require('../bootstrap-D-TDU9Lu.cjs');
1
+ const require_runtime = require('../runtime-Dvo2ru5A.cjs');
2
+ const require_bootstrap = require('../bootstrap-BaN6hZ5I.cjs');
3
3
 
4
+ exports.CatalogBackedCostTrackingTelemetryFactory = require_runtime.CatalogBackedCostTrackingTelemetryFactory;
4
5
  exports.ConfigDrivenOffloadPolicy = require_runtime.ConfigDrivenOffloadPolicy;
5
6
  exports.CredentialResolverFactory = require_runtime.CredentialResolverFactory;
6
7
  exports.DefaultAsyncSleeper = require_runtime.DefaultAsyncSleeper;
@@ -30,6 +31,7 @@ exports.RunIntentService = require_runtime.RunIntentService;
30
31
  exports.RunPolicySnapshotFactory = require_runtime.RunPolicySnapshotFactory;
31
32
  exports.RunSummaryMapper = require_bootstrap.RunSummaryMapper;
32
33
  exports.RunTerminalPersistenceCoordinator = require_runtime.RunTerminalPersistenceCoordinator;
34
+ exports.StaticCostCatalog = require_runtime.StaticCostCatalog;
33
35
  exports.UnavailableBinaryStorage = require_runtime.UnavailableBinaryStorage;
34
36
  exports.WorkflowPolicyErrorServices = require_runtime.WorkflowPolicyErrorServices;
35
37
  exports.WorkflowRepositoryWebhookTriggerMatcher = require_runtime.WorkflowRepositoryWebhookTriggerMatcher;
@@ -1,6 +1,6 @@
1
- import { $n as WorkflowExecutionListingRepository, A as NodeOutputs, B as RunId, C as NodeErrorHandler, E as NodeId, Et as EngineDeps, F as ParentExecutionRef, Fn as PersistedRunSchedulingState, Ft as NodeActivationContinuation, Gn as RunPruneCandidate, Ht as NodeExecutionRequest, I as PersistedRunPolicySnapshot, In as PersistedRunState, Jr as EngineExecutionLimitsPolicyConfig, Kr as ENGINE_EXECUTION_LIMITS_DEFAULTS, L as PersistedTokenId, Lt as NodeActivationRequest, M as NodeSchedulerDecision, Pr as TypeToken, Q as WorkflowErrorHandlerSpec, Rn as PersistedWorkflowSnapshotNode, S as NodeDefinition, T as NodeErrorHandlerSpec, Tn as EngineRunCounters, Wt as NodeExecutionScheduler, Y as WorkflowDefinition, Yt as PreparedNodeActivationDispatch, Z as WorkflowErrorHandler, Zn as RunSummary, at as WorkflowStoragePolicyDecisionArgs, b as NodeConfigBase, bn as WorkflowActivationPolicy, c as ExecutionMode, er as WorkflowExecutionPruneRepository, fn as HttpMethod, gn as WebhookTriggerMatcher, hn as WebhookInvocationMatch, k as NodeOffloadPolicy, kr as DependencyContainer, n as InMemoryLiveWorkflowRepository, on as WorkflowNodeInstanceFactory, qr as EngineExecutionLimitsPolicy, qt as NodeResolver, r as Engine, rt as WorkflowPolicyRuntimeDefaults, sn as WorkflowRepository, t as RunIntentService, tr as WorkflowExecutionRepository, tt as WorkflowId, vn as WebhookTriggerRoutingDiagnostics, zt as NodeActivationScheduler } from "../RunIntentService-5k0p-J67.cjs";
2
- import { a as WorkflowSnapshotCodec, i as WebhookTriggerMatcherProvider, n as EngineRuntimeRegistrationOptions, r as TriggerRuntimeDiagnosticsProvider, t as EngineWorkflowRunnerService } from "../EngineWorkflowRunnerService-D0Cwngv7.cjs";
3
- import { c as InProcessRetryRunner, d as AsyncSleeper, f as CredentialResolverFactory, i as UnavailableBinaryStorage, l as DefaultExecutionContextFactory, n as InMemoryBinaryStorage, o as RunnableOutputBehaviorResolver, r as DefaultExecutionBinaryService, s as ItemExprResolver, t as InMemoryRunDataFactory, u as DefaultAsyncSleeper } from "../InMemoryRunDataFactory-BIWx6e02.cjs";
1
+ import { $n as WorkflowExecutionListingRepository, A as NodeOutputs, B as RunId, C as NodeErrorHandler, Dr as CostTrackingTelemetryFactory, E as NodeId, Et as EngineDeps, F as ParentExecutionRef, Fn as PersistedRunSchedulingState, Ft as NodeActivationContinuation, Gn as RunPruneCandidate, Ht as NodeExecutionRequest, I as PersistedRunPolicySnapshot, In as PersistedRunState, L as PersistedTokenId, Lt as NodeActivationRequest, M as NodeSchedulerDecision, Q as WorkflowErrorHandlerSpec, Rn as PersistedWorkflowSnapshotNode, S as NodeDefinition, Si as EngineExecutionLimitsPolicyConfig, T as NodeErrorHandlerSpec, Tn as EngineRunCounters, Tr as CostTrackingTelemetry, Wt as NodeExecutionScheduler, Y as WorkflowDefinition, Yt as PreparedNodeActivationDispatch, Z as WorkflowErrorHandler, Zn as RunSummary, at as WorkflowStoragePolicyDecisionArgs, b as NodeConfigBase, bi as ENGINE_EXECUTION_LIMITS_DEFAULTS, bn as WorkflowActivationPolicy, c as ExecutionMode, ci as TypeToken, er as WorkflowExecutionPruneRepository, fn as HttpMethod, gn as WebhookTriggerMatcher, hn as WebhookInvocationMatch, k as NodeOffloadPolicy, kr as CostTrackingUsageRecord, n as InMemoryLiveWorkflowRepository, nr as ExecutionTelemetry, on as WorkflowNodeInstanceFactory, qt as NodeResolver, r as Engine, ri as DependencyContainer, rt as WorkflowPolicyRuntimeDefaults, sn as WorkflowRepository, t as RunIntentService, tr as WorkflowExecutionRepository, tt as WorkflowId, vn as WebhookTriggerRoutingDiagnostics, xi as EngineExecutionLimitsPolicy, zt as NodeActivationScheduler } from "../RunIntentService-S-1lW-gS.cjs";
2
+ import { c as InProcessRetryRunner, d as AsyncSleeper, f as CredentialResolverFactory, i as UnavailableBinaryStorage, l as DefaultExecutionContextFactory, m as CostCatalogEntry, n as InMemoryBinaryStorage, o as RunnableOutputBehaviorResolver, p as CostCatalog, r as DefaultExecutionBinaryService, s as ItemExprResolver, t as InMemoryRunDataFactory, u as DefaultAsyncSleeper } from "../InMemoryRunDataFactory-1iz7_SnO.cjs";
3
+ import { a as WorkflowSnapshotCodec, i as WebhookTriggerMatcherProvider, n as EngineRuntimeRegistrationOptions, r as TriggerRuntimeDiagnosticsProvider, t as EngineWorkflowRunnerService } from "../EngineWorkflowRunnerService-DzOCa1BW.cjs";
4
4
 
5
5
  //#region src/workflowSnapshots/MissingRuntimeFallbacksFactory.d.ts
6
6
  declare class MissingRuntimeFallbacks {
@@ -45,6 +45,15 @@ declare class EngineRuntimeRegistrar {
45
45
  private resolveMatcherProvider;
46
46
  }
47
47
  //#endregion
48
+ //#region src/execution/CatalogBackedCostTrackingTelemetryFactory.d.ts
49
+ declare class CatalogBackedCostTrackingTelemetryFactory implements CostTrackingTelemetryFactory {
50
+ private readonly costCatalog;
51
+ constructor(costCatalog: CostCatalog);
52
+ create(args: Readonly<{
53
+ telemetry: ExecutionTelemetry;
54
+ }>): CostTrackingTelemetry;
55
+ }
56
+ //#endregion
48
57
  //#region src/execution/NodeExecutor.d.ts
49
58
  declare class NodeExecutor {
50
59
  private readonly nodeInstanceFactory;
@@ -144,7 +153,8 @@ declare class InMemoryWorkflowExecutionRepository implements WorkflowExecutionRe
144
153
  limit?: number;
145
154
  }>): Promise<ReadonlyArray<RunSummary>>;
146
155
  listRunsOlderThan(args: Readonly<{
147
- beforeIso: string;
156
+ nowIso: string;
157
+ defaultRetentionSeconds: number;
148
158
  limit?: number;
149
159
  }>): Promise<ReadonlyArray<RunPruneCandidate>>;
150
160
  }
@@ -181,6 +191,15 @@ declare class WorkflowRepositoryWebhookTriggerMatcher implements WebhookTriggerM
181
191
  private normalizeEndpointPath;
182
192
  }
183
193
  //#endregion
194
+ //#region src/execution/StaticCostCatalog.d.ts
195
+ declare class StaticCostCatalog implements CostCatalog {
196
+ private readonly entriesByKey;
197
+ constructor(entries: ReadonlyArray<CostCatalogEntry>);
198
+ findEntry(args: CostTrackingUsageRecord): CostCatalogEntry | undefined;
199
+ private createKeyFromEntry;
200
+ private createKeyFromUsage;
201
+ }
202
+ //#endregion
184
203
  //#region src/scheduler/ConfigDrivenOffloadPolicy.d.ts
185
204
  declare class ConfigDrivenOffloadPolicy implements NodeOffloadPolicy {
186
205
  private readonly defaultMode;
@@ -269,5 +288,5 @@ declare class PersistedWorkflowTokenRegistry {
269
288
  resolve(tokenId: PersistedTokenId): TypeToken<unknown> | undefined;
270
289
  }
271
290
  //#endregion
272
- export { type AsyncSleeper, ConfigDrivenOffloadPolicy, CredentialResolverFactory, DefaultAsyncSleeper, DefaultDrivingScheduler, DefaultExecutionBinaryService, DefaultExecutionContextFactory, ENGINE_EXECUTION_LIMITS_DEFAULTS, Engine, type EngineCompositionDeps, EngineExecutionLimitsPolicy, type EngineExecutionLimitsPolicyConfig, EngineExecutionLimitsPolicyFactory, EngineFactory, EngineRuntimeRegistrar, type EngineRuntimeRegistrationOptions, EngineWorkflowRunnerService, HintOnlyOffloadPolicy, InMemoryBinaryStorage, InMemoryLiveWorkflowRepository, InMemoryRunDataFactory, InMemoryWorkflowExecutionRepository, InProcessRetryRunner, InlineDrivingScheduler, LocalOnlyScheduler, MissingRuntimeTriggerToken, NodeExecutor, NodeInstanceFactory, PersistedWorkflowTokenRegistry, RunIntentService, RunPolicySnapshotFactory, RunSummaryMapper, RunTerminalPersistenceCoordinator, type TriggerRuntimeDiagnosticsProvider, UnavailableBinaryStorage, type WebhookTriggerMatcherProvider, WorkflowPolicyErrorServices, WorkflowRepositoryWebhookTriggerMatcher, WorkflowStoragePolicyEvaluator };
291
+ export { type AsyncSleeper, CatalogBackedCostTrackingTelemetryFactory, ConfigDrivenOffloadPolicy, CredentialResolverFactory, DefaultAsyncSleeper, DefaultDrivingScheduler, DefaultExecutionBinaryService, DefaultExecutionContextFactory, ENGINE_EXECUTION_LIMITS_DEFAULTS, Engine, type EngineCompositionDeps, EngineExecutionLimitsPolicy, type EngineExecutionLimitsPolicyConfig, EngineExecutionLimitsPolicyFactory, EngineFactory, EngineRuntimeRegistrar, type EngineRuntimeRegistrationOptions, EngineWorkflowRunnerService, HintOnlyOffloadPolicy, InMemoryBinaryStorage, InMemoryLiveWorkflowRepository, InMemoryRunDataFactory, InMemoryWorkflowExecutionRepository, InProcessRetryRunner, InlineDrivingScheduler, LocalOnlyScheduler, MissingRuntimeTriggerToken, NodeExecutor, NodeInstanceFactory, PersistedWorkflowTokenRegistry, RunIntentService, RunPolicySnapshotFactory, RunSummaryMapper, RunTerminalPersistenceCoordinator, StaticCostCatalog, type TriggerRuntimeDiagnosticsProvider, UnavailableBinaryStorage, type WebhookTriggerMatcherProvider, WorkflowPolicyErrorServices, WorkflowRepositoryWebhookTriggerMatcher, WorkflowStoragePolicyEvaluator };
273
292
  //# sourceMappingURL=index.d.cts.map
@@ -1,6 +1,6 @@
1
- import { Gt as PersistedTokenId, Hi as TypeToken, Li as DependencyContainer, a as RunTerminalPersistenceCoordinator, c as EngineExecutionLimitsPolicyFactory, ea as ENGINE_EXECUTION_LIMITS_DEFAULTS, i as WorkflowPolicyErrorServices, n as InMemoryLiveWorkflowRepository, na as EngineExecutionLimitsPolicyConfig, o as WorkflowStoragePolicyEvaluator, r as EngineWorkflowRunnerService, rn as WorkflowDefinition, s as RunPolicySnapshotFactory, t as RunIntentService, ta as EngineExecutionLimitsPolicy, u as Engine } from "../RunIntentService-CuXAIO6_.js";
2
- import { Gt as AsyncSleeper, Ht as InProcessRetryRunner, Jt as EngineCompositionDeps, Kt as CredentialResolverFactory, Lt as NodeInstanceFactory, Rt as NodeExecutor, Ut as DefaultExecutionContextFactory, Wt as DefaultAsyncSleeper, Yt as EngineFactory, a as ConfigDrivenOffloadPolicy, c as InMemoryWorkflowExecutionRepository, d as DefaultExecutionBinaryService, f as UnavailableBinaryStorage, i as InlineDrivingScheduler, l as InMemoryRunDataFactory, n as HintOnlyOffloadPolicy, o as WorkflowRepositoryWebhookTriggerMatcher, r as DefaultDrivingScheduler, s as RunSummaryMapper, t as LocalOnlyScheduler, u as InMemoryBinaryStorage } from "../index-BnJ7_IrO.js";
3
- import { n as TriggerRuntimeDiagnosticsProvider, r as WebhookTriggerMatcherProvider, t as EngineRuntimeRegistrationOptions } from "../EngineRuntimeRegistration.types-_M7KFD3D.js";
1
+ import { Ma as ENGINE_EXECUTION_LIMITS_DEFAULTS, Na as EngineExecutionLimitsPolicy, Pa as EngineExecutionLimitsPolicyConfig, Yt as PersistedTokenId, a as RunTerminalPersistenceCoordinator, ba as TypeToken, c as EngineExecutionLimitsPolicyFactory, ha as DependencyContainer, i as WorkflowPolicyErrorServices, n as InMemoryLiveWorkflowRepository, o as WorkflowStoragePolicyEvaluator, r as EngineWorkflowRunnerService, s as RunPolicySnapshotFactory, sn as WorkflowDefinition, t as RunIntentService, u as Engine } from "../RunIntentService-BqhmdoA1.js";
2
+ import { Gt as DefaultExecutionContextFactory, Jt as CredentialResolverFactory, Kt as DefaultAsyncSleeper, Rt as NodeInstanceFactory, Ut as InProcessRetryRunner, Wt as CatalogBackedCostTrackingTelemetryFactory, Xt as EngineCompositionDeps, Zt as EngineFactory, a as ConfigDrivenOffloadPolicy, c as RunSummaryMapper, d as InMemoryBinaryStorage, f as DefaultExecutionBinaryService, i as InlineDrivingScheduler, l as InMemoryWorkflowExecutionRepository, n as HintOnlyOffloadPolicy, o as StaticCostCatalog, p as UnavailableBinaryStorage, qt as AsyncSleeper, r as DefaultDrivingScheduler, s as WorkflowRepositoryWebhookTriggerMatcher, t as LocalOnlyScheduler, u as InMemoryRunDataFactory, zt as NodeExecutor } from "../index-CVs9rVhl.js";
3
+ import { n as TriggerRuntimeDiagnosticsProvider, r as WebhookTriggerMatcherProvider, t as EngineRuntimeRegistrationOptions } from "../EngineRuntimeRegistration.types-BP6tsaNP.js";
4
4
 
5
5
  //#region src/bootstrap/runtime/EngineRuntimeRegistrar.d.ts
6
6
 
@@ -44,5 +44,5 @@ declare class PersistedWorkflowTokenRegistry {
44
44
  resolve(tokenId: PersistedTokenId): TypeToken<unknown> | undefined;
45
45
  }
46
46
  //#endregion
47
- export { type AsyncSleeper, ConfigDrivenOffloadPolicy, CredentialResolverFactory, DefaultAsyncSleeper, DefaultDrivingScheduler, DefaultExecutionBinaryService, DefaultExecutionContextFactory, ENGINE_EXECUTION_LIMITS_DEFAULTS, Engine, type EngineCompositionDeps, EngineExecutionLimitsPolicy, type EngineExecutionLimitsPolicyConfig, EngineExecutionLimitsPolicyFactory, EngineFactory, EngineRuntimeRegistrar, type EngineRuntimeRegistrationOptions, EngineWorkflowRunnerService, HintOnlyOffloadPolicy, InMemoryBinaryStorage, InMemoryLiveWorkflowRepository, InMemoryRunDataFactory, InMemoryWorkflowExecutionRepository, InProcessRetryRunner, InlineDrivingScheduler, LocalOnlyScheduler, MissingRuntimeTriggerToken, NodeExecutor, NodeInstanceFactory, PersistedWorkflowTokenRegistry, RunIntentService, RunPolicySnapshotFactory, RunSummaryMapper, RunTerminalPersistenceCoordinator, type TriggerRuntimeDiagnosticsProvider, UnavailableBinaryStorage, type WebhookTriggerMatcherProvider, WorkflowPolicyErrorServices, WorkflowRepositoryWebhookTriggerMatcher, WorkflowStoragePolicyEvaluator };
47
+ export { type AsyncSleeper, CatalogBackedCostTrackingTelemetryFactory, ConfigDrivenOffloadPolicy, CredentialResolverFactory, DefaultAsyncSleeper, DefaultDrivingScheduler, DefaultExecutionBinaryService, DefaultExecutionContextFactory, ENGINE_EXECUTION_LIMITS_DEFAULTS, Engine, type EngineCompositionDeps, EngineExecutionLimitsPolicy, type EngineExecutionLimitsPolicyConfig, EngineExecutionLimitsPolicyFactory, EngineFactory, EngineRuntimeRegistrar, type EngineRuntimeRegistrationOptions, EngineWorkflowRunnerService, HintOnlyOffloadPolicy, InMemoryBinaryStorage, InMemoryLiveWorkflowRepository, InMemoryRunDataFactory, InMemoryWorkflowExecutionRepository, InProcessRetryRunner, InlineDrivingScheduler, LocalOnlyScheduler, MissingRuntimeTriggerToken, NodeExecutor, NodeInstanceFactory, PersistedWorkflowTokenRegistry, RunIntentService, RunPolicySnapshotFactory, RunSummaryMapper, RunTerminalPersistenceCoordinator, StaticCostCatalog, type TriggerRuntimeDiagnosticsProvider, UnavailableBinaryStorage, type WebhookTriggerMatcherProvider, WorkflowPolicyErrorServices, WorkflowRepositoryWebhookTriggerMatcher, WorkflowStoragePolicyEvaluator };
48
48
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import { A as NodeExecutor, B as DefaultAsyncSleeper, C as RunPolicySnapshotFactory, D as PersistedWorkflowTokenRegistry, O as MissingRuntimeTriggerToken, R as InProcessRetryRunner, S as ConfigDrivenOffloadPolicy, T as NodeInstanceFactory, U as DefaultExecutionBinaryService, V as CredentialResolverFactory, W as UnavailableBinaryStorage, _ as EngineExecutionLimitsPolicy, a as InMemoryLiveWorkflowRepository, b as HintOnlyOffloadPolicy, c as EngineFactory, d as InMemoryRunDataFactory, f as InMemoryBinaryStorage, g as ENGINE_EXECUTION_LIMITS_DEFAULTS, h as RunTerminalPersistenceCoordinator, i as RunIntentService, l as Engine, m as WorkflowPolicyErrorServices, n as WorkflowRepositoryWebhookTriggerMatcher, p as WorkflowStoragePolicyEvaluator, s as EngineWorkflowRunnerService, v as LocalOnlyScheduler, x as DefaultDrivingScheduler, y as InlineDrivingScheduler, z as DefaultExecutionContextFactory } from "../runtime-CJnObwsU.js";
2
- import { i as EngineExecutionLimitsPolicyFactory, n as InMemoryWorkflowExecutionRepository, r as RunSummaryMapper, t as EngineRuntimeRegistrar } from "../bootstrap-BhYxSivA.js";
1
+ import { A as NodeExecutor, C as StaticCostCatalog, D as PersistedWorkflowTokenRegistry, F as InProcessRetryRunner, I as CatalogBackedCostTrackingTelemetryFactory, L as DefaultExecutionContextFactory, O as MissingRuntimeTriggerToken, S as RunPolicySnapshotFactory, T as NodeInstanceFactory, _ as LocalOnlyScheduler, a as InMemoryLiveWorkflowRepository, b as DefaultDrivingScheduler, c as EngineFactory, ct as CredentialResolverFactory, d as InMemoryBinaryStorage, dt as UnavailableBinaryStorage, f as WorkflowStoragePolicyEvaluator, g as EngineExecutionLimitsPolicy, h as ENGINE_EXECUTION_LIMITS_DEFAULTS, i as RunIntentService, l as Engine, m as RunTerminalPersistenceCoordinator, n as WorkflowRepositoryWebhookTriggerMatcher, p as WorkflowPolicyErrorServices, s as EngineWorkflowRunnerService, st as DefaultAsyncSleeper, u as InMemoryRunDataFactory, ut as DefaultExecutionBinaryService, v as InlineDrivingScheduler, x as ConfigDrivenOffloadPolicy, y as HintOnlyOffloadPolicy } from "../runtime-DUW6tIJ1.js";
2
+ import { i as EngineExecutionLimitsPolicyFactory, n as InMemoryWorkflowExecutionRepository, r as RunSummaryMapper, t as EngineRuntimeRegistrar } from "../bootstrap-d_BMaDT4.js";
3
3
 
4
- export { ConfigDrivenOffloadPolicy, CredentialResolverFactory, DefaultAsyncSleeper, DefaultDrivingScheduler, DefaultExecutionBinaryService, DefaultExecutionContextFactory, ENGINE_EXECUTION_LIMITS_DEFAULTS, Engine, EngineExecutionLimitsPolicy, EngineExecutionLimitsPolicyFactory, EngineFactory, EngineRuntimeRegistrar, EngineWorkflowRunnerService, HintOnlyOffloadPolicy, InMemoryBinaryStorage, InMemoryLiveWorkflowRepository, InMemoryRunDataFactory, InMemoryWorkflowExecutionRepository, InProcessRetryRunner, InlineDrivingScheduler, LocalOnlyScheduler, MissingRuntimeTriggerToken, NodeExecutor, NodeInstanceFactory, PersistedWorkflowTokenRegistry, RunIntentService, RunPolicySnapshotFactory, RunSummaryMapper, RunTerminalPersistenceCoordinator, UnavailableBinaryStorage, WorkflowPolicyErrorServices, WorkflowRepositoryWebhookTriggerMatcher, WorkflowStoragePolicyEvaluator };
4
+ export { CatalogBackedCostTrackingTelemetryFactory, ConfigDrivenOffloadPolicy, CredentialResolverFactory, DefaultAsyncSleeper, DefaultDrivingScheduler, DefaultExecutionBinaryService, DefaultExecutionContextFactory, ENGINE_EXECUTION_LIMITS_DEFAULTS, Engine, EngineExecutionLimitsPolicy, EngineExecutionLimitsPolicyFactory, EngineFactory, EngineRuntimeRegistrar, EngineWorkflowRunnerService, HintOnlyOffloadPolicy, InMemoryBinaryStorage, InMemoryLiveWorkflowRepository, InMemoryRunDataFactory, InMemoryWorkflowExecutionRepository, InProcessRetryRunner, InlineDrivingScheduler, LocalOnlyScheduler, MissingRuntimeTriggerToken, NodeExecutor, NodeInstanceFactory, PersistedWorkflowTokenRegistry, RunIntentService, RunPolicySnapshotFactory, RunSummaryMapper, RunTerminalPersistenceCoordinator, StaticCostCatalog, UnavailableBinaryStorage, WorkflowPolicyErrorServices, WorkflowRepositoryWebhookTriggerMatcher, WorkflowStoragePolicyEvaluator };
@@ -1,4 +1,4 @@
1
- const require_runtime = require('./runtime-3YVDd2vY.cjs');
1
+ const require_runtime = require('./runtime-Dvo2ru5A.cjs');
2
2
  let tsyringe = require("tsyringe");
3
3
  tsyringe = require_runtime.__toESM(tsyringe);
4
4
 
@@ -86,7 +86,9 @@ var InMemoryWorkflowExecutionRepository = class {
86
86
  for (const s of this.runs.values()) {
87
87
  if (s.status !== "completed" && s.status !== "failed") continue;
88
88
  const finishedAt = require_runtime.RunFinishedAtFactory.resolveIso(s);
89
- if (!finishedAt || finishedAt >= args.beforeIso) continue;
89
+ const retentionSeconds = s.policySnapshot?.retentionSeconds ?? args.defaultRetentionSeconds;
90
+ const cutoffIso = (/* @__PURE__ */ new Date(new Date(args.nowIso).getTime() - retentionSeconds * 1e3)).toISOString();
91
+ if (!finishedAt || finishedAt >= cutoffIso) continue;
90
92
  out.push({
91
93
  runId: s.runId,
92
94
  workflowId: s.workflowId,
@@ -197,6 +199,7 @@ var EngineRuntimeRegistrar = class {
197
199
  tokenRegistry: tokenRegistryLike,
198
200
  workflowNodeInstanceFactory,
199
201
  executionLimitsPolicy: dependencyContainer.resolve(require_runtime.CoreTokens.EngineExecutionLimitsPolicy),
202
+ workflowPolicyRuntimeDefaults: options?.workflowPolicyRuntimeDefaults,
200
203
  triggerRuntimeDiagnostics
201
204
  });
202
205
  }) });
@@ -240,4 +243,4 @@ Object.defineProperty(exports, 'RunSummaryMapper', {
240
243
  return RunSummaryMapper;
241
244
  }
242
245
  });
243
- //# sourceMappingURL=bootstrap-D-TDU9Lu.cjs.map
246
+ //# sourceMappingURL=bootstrap-BaN6hZ5I.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-BaN6hZ5I.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<{ nowIso: string; defaultRetentionSeconds: number; 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 const retentionSeconds = s.policySnapshot?.retentionSeconds ?? args.defaultRetentionSeconds;\n const cutoffIso = new Date(new Date(args.nowIso).getTime() - retentionSeconds * 1000).toISOString();\n if (!finishedAt || finishedAt >= cutoffIso) 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 workflowPolicyRuntimeDefaults: options?.workflowPolicyRuntimeDefaults,\n triggerRuntimeDiagnostics,\n });\n }),\n });\n }\n\n private registerIntentServices(container: DependencyContainer): void {\n container.register(RunIntentService, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(RunIntentServiceFactory)\n .create(dependencyContainer.resolve(Engine), dependencyContainer.resolve(CoreTokens.WorkflowRepository));\n }),\n });\n container.register(CoreTokens.WorkflowRunnerService, {\n useFactory: instanceCachingFactory((dependencyContainer) => {\n return dependencyContainer\n .resolve(EngineWorkflowRunnerServiceFactory)\n .create(dependencyContainer.resolve(Engine), dependencyContainer.resolve(CoreTokens.WorkflowRepository));\n }),\n });\n }\n\n private resolveMatcherProvider(options: EngineRuntimeRegistrationOptions | undefined): WebhookTriggerMatcherProvider {\n if (options?.webhookTriggerMatcherProvider) {\n return options.webhookTriggerMatcherProvider;\n }\n return {\n createMatcher: (container) =>\n container\n .resolve(WorkflowRepositoryWebhookTriggerMatcherFactory)\n .create(\n container.resolve(CoreTokens.WorkflowRepository),\n container.resolve(CoreTokens.WorkflowActivationPolicy),\n options?.webhookTriggerRoutingDiagnostics,\n ),\n };\n }\n}\n"],"mappings":";;;;;;;;AASA,IAAa,qCAAb,MAAgD;CAC9C,OAAO,WAAqF;AAC1F,SAAO,IAAIA,4CAA4B;GAAE,GAAGC;GAAkC,GAAG;GAAW,CAAC;;;;;;;ACPjG,IAAa,mBAAb,MAA8B;CAC5B,OAAO,mBAAmB,OAAsC;AAC9D,SAAO;GACL,OAAO,MAAM;GACb,YAAY,MAAM;GAClB,WAAW,MAAM;GACjB,QAAQ,MAAM;GACd,YAAYC,qCAAqB,WAAW,MAAM;GAClD,QAAQ,MAAM;GACd,kBAAkB,MAAM;GACzB;;;;;;ACIL,IAAa,sCAAb,MAEA;CACE,AAAiB,uBAAO,IAAI,KAA+B;CAE3D,MAAM,UAAU,MAWE;AAChB,OAAK,KAAK,IAAI,KAAK,OAAO;GACxB,OAAO,KAAK;GACZ,YAAY,KAAK;GACjB,WAAW,KAAK;GAChB,UAAU;GACV,QAAQ,KAAK;GACb,kBAAkB,KAAK;GACvB,SAAS,KAAK;GACd,kBAAkB,KAAK;GACvB,cAAc,KAAK;GACnB,gBAAgB,KAAK;GACrB,gBAAgB,KAAK;GACrB,QAAQ;GACR,OAAO,EAAE;GACT,eAAe,EAAE;GACjB,uBAAuB,EAAE;GACzB,uBAAuB,EAAE;GAC1B,CAAC;;CAGJ,MAAM,KAAK,OAAsD;AAC/D,SAAO,KAAK,KAAK,IAAI,MAAM;;CAG7B,MAAM,oBAAoB,OAAgE;EACxF,MAAM,QAAQ,KAAK,KAAK,IAAI,MAAM;AAClC,MAAI,CAAC,MACH;AAEF,SAAO;GACL,SAAS,MAAM,UAAU,EAAE,GAAG,MAAM,SAAS,GAAG;GAChD,OAAO,MAAM,MAAM,KAAK,WAAW,EAAE,GAAG,OAAO,EAAE;GAClD;;CAGH,MAAM,KAAK,OAAyC;AAClD,OAAK,KAAK,IAAI,MAAM,OAAO;GAAE,GAAG;GAAO,WAAW,MAAM,YAAY,KAAK;GAAG,CAAC;;CAG/E,MAAM,UAAU,OAA6B;AAC3C,OAAK,KAAK,OAAO,MAAM;;CAGzB,MAAM,SAAS,MAAkG;EAC/G,MAAM,QAAQ,MAAM,SAAS;AAM7B,SALkB,CAAC,GAAG,KAAK,KAAK,QAAQ,CAAC,CACtC,QAAQ,MAAO,MAAM,aAAa,EAAE,eAAe,KAAK,aAAa,KAAM,CAC3E,MAAM,GAAG,MAAM,EAAE,UAAU,cAAc,EAAE,UAAU,CAAC,CACtD,MAAM,GAAG,MAAM,CACf,KAAK,MAAM,iBAAiB,mBAAmB,EAAE,CAAC;;CAIvD,MAAM,kBACJ,MAC2C;EAC3C,MAAM,QAAQ,KAAK,SAAS;EAC5B,MAAMC,MAA2B,EAAE;AACnC,OAAK,MAAM,KAAK,KAAK,KAAK,QAAQ,EAAE;AAClC,OAAI,EAAE,WAAW,eAAe,EAAE,WAAW,SAAU;GACvD,MAAM,aAAaC,qCAAqB,WAAW,EAAE;GACrD,MAAM,mBAAmB,EAAE,gBAAgB,oBAAoB,KAAK;GACpE,MAAM,6BAAY,IAAI,KAAK,IAAI,KAAK,KAAK,OAAO,CAAC,SAAS,GAAG,mBAAmB,IAAK,EAAC,aAAa;AACnG,OAAI,CAAC,cAAc,cAAc,UAAW;AAC5C,OAAI,KAAK;IACP,OAAO,EAAE;IACT,YAAY,EAAE;IACd,WAAW,EAAE;IACb;IACD,CAAC;;AAEJ,MAAI,MAAM,GAAG,MAAM,EAAE,WAAW,cAAc,EAAE,WAAW,CAAC;AAC5D,SAAO,IAAI,MAAM,GAAG,MAAM;;;;;;ACvG9B,IAAa,gCAAb,MAA2C;CACzC,OAAO,cAAoD;AACzD,SAAO,IAAIC,uCAAuB,aAAa;;;;;;;;;;;ACyBnD,IAAa,yBAAb,MAAoC;CAClC,SAAS,WAAgC,SAAkD;AACzF,OAAK,yBAAyB,UAAU;AACxC,OAAK,8BAA8B,WAAW,QAAQ;AACtD,OAAK,kCAAkC,UAAU;AACjD,OAAK,mBAAmB,UAAU;AAClC,OAAK,mCAAmC,UAAU;AAClD,OAAK,eAAe,WAAW,QAAQ;AACvC,OAAK,uBAAuB,UAAU;;CAGxC,AAAQ,yBAAyB,WAAsC;AACrE,MAAI,CAAC,UAAU,aAAaC,kCAAkB,KAAK,CACjD,WAAU,kBAAkBA,kCAAkBA,iCAAiB;AAEjE,MAAI,CAAC,UAAU,aAAaC,sCAAsB,KAAK,CACrD,WAAU,kBAAkBA,sCAAsBA,qCAAqB;AAEzE,MAAI,CAAC,UAAU,aAAaC,gDAAgC,KAAK,CAC/D,WAAU,kBAAkBA,gDAAgCA,+CAA+B;AAE7F,YAAU,SAAS,oCAAoC,EAAE,UAAU,oCAAoC,CAAC;AACxG,YAAU,SAASC,4CAA4B,EAAE,UAAUA,4CAA4B,CAAC;AACxF,YAAU,SAASC,qCAAqB,EAAE,UAAUA,qCAAqB,CAAC;AAC1E,YAAU,SAASC,6CAA6B,EAAE,UAAUA,6CAA6B,CAAC;AAC1F,YAAU,SAASC,qCAAqB,EAAE,UAAUA,qCAAqB,CAAC;AAC1E,YAAU,SAAS,+BAA+B,EAAE,UAAU,+BAA+B,CAAC;AAC9F,YAAU,SAASC,yCAAyB,EAAE,UAAUA,yCAAyB,CAAC;AAClF,YAAU,SAASC,oDAAoC,EACrD,UAAUA,oDACX,CAAC;AACF,YAAU,SAASC,gEAAgD,EACjE,UAAUA,gEACX,CAAC;;CAGJ,AAAQ,8BACN,WACA,SACM;AACN,MAAI,UAAU,aAAaC,2BAAW,6BAA6B,KAAK,CACtE;AAEF,YAAU,SAASA,2BAAW,6BAA6B,EACzD,kDAAoC,wBAAwB;GAE1D,MAAM,SADe,SAAS,gCAAgC,IAC/B,SAAS;AACxC,UAAO,oBAAoB,QAAQ,mCAAmC,CAAC,OAAO,OAAO;IACrF,EACH,CAAC;;CAGJ,AAAQ,kCAAkC,WAAsC;AAC9E,MAAI,UAAU,aAAaA,2BAAW,6BAA6B,KAAK,CACtE;AAEF,YAAU,SAASA,2BAAW,6BAA6B,EACzD,kDAAoC,wBAAwB;AAC1D,UAAO,oBACJ,QAAQP,2CAA2B,CACnC,OAAO,oBAAoB,QAAQO,2BAAW,aAAa,CAAC;IAC/D,EACH,CAAC;;CAGJ,AAAQ,mBAAmB,WAAsC;AAC/D,MAAI,UAAU,aAAaC,8BAAc,KAAK,CAC5C;AAEF,YAAU,SAASA,8BAAc,EAC/B,kDAAoC,wBAAwB;GAC1D,MAAM,cAAc,oBACjB,QAAQN,4CAA4B,CACpC,OAAO,oBAAoB,QAAQD,oCAAoB,CAAC;AAC3D,UAAO,oBACJ,QAAQE,oCAAoB,CAC5B,OACC,oBAAoB,QAAQI,2BAAW,4BAA4B,EACnE,aACA,oBAAoB,QAAQR,+CAA+B,CAC5D;IACH,EACH,CAAC;;CAGJ,AAAQ,mCAAmC,WAAsC;AAC/E,MAAI,UAAU,aAAaQ,2BAAW,yBAAyB,KAAK,CAClE;AAEF,YAAU,SAASE,wCAAwB,EACzC,kDAAoC,wBAAwB;AAC1D,UAAO,oBACJ,QAAQ,8BAA8B,CACtC,OAAO,oBAAoB,QAAQD,6BAAa,CAAC;IACpD,EACH,CAAC;AACF,YAAU,SAASD,2BAAW,yBAAyB,EACrD,kDAAoC,wBAAwB;AAC1D,UAAO,oBAAoB,QAAQE,uCAAuB;IAC1D,EACH,CAAC;;CAGJ,AAAQ,eAAe,WAAgC,SAA6D;AAClH,YAAU,SAASC,+BAAe,EAAE,UAAUA,+BAAe,CAAC;EAC9D,MAAM,kBAAkB,KAAK,uBAAuB,QAAQ;AAC5D,YAAU,SAASC,wBAAQ,EACzB,kDAAoC,wBAAwB;GAC1D,MAAM,yBAAyB,oBAAoB,QAAQJ,2BAAW,uBAAuB;GAC7F,MAAM,eAAe,oBAAoB,QAAQA,2BAAW,aAAa;GACzE,MAAM,oBAAoB,oBAAoB,QAAQA,2BAAW,+BAA+B;GAChG,MAAM,2BAA2B,oBAAoB,QAAQA,2BAAW,yBAAyB;GACjG,MAAM,wBAAwB,gBAAgB,cAAc,oBAAoB;GAChF,MAAM,8BAA8B,oBAAoB,QAAQA,2BAAW,4BAA4B;GACvG,MAAM,4BAA4B,SAAS,mCAAmC,OAAO,oBAAoB;AACzG,UAAO,oBAAoB,QAAQG,8BAAc,CAAC,OAAO;IACvD,oBAAoB,oBAAoB,QAAQH,2BAAW,yBAAyB;IACpF;IACA,oBAAoB,oBAAoB,QAAQA,2BAAW,mBAAmB;IAC9E;IACA;IACA,6BAA6B,oBAAoB,QAAQA,2BAAW,4BAA4B;IAChG;IACA,cAAc,oBAAoB,QAAQA,2BAAW,aAAa;IAClE,qBAAqB,oBAAoB,QAAQA,2BAAW,oBAAoB;IAChF,6BAA6B,oBAAoB,QAAQA,2BAAW,4BAA4B;IAChG,qBAAqB,oBAAoB,QAAQA,2BAAW,wBAAwB;IACpF,gBAAgB,oBAAoB,QAAQA,2BAAW,eAAe;IACtE,yBAAyB,oBAAoB,QAAQA,2BAAW,wBAAwB;IACxF,cAAc,oBAAoB,QAAQC,6BAAa;IACvD,UAAU,oBAAoB,QAAQD,2BAAW,YAAY;IAC7D,eAAe;IACf;IACA,uBAAuB,oBAAoB,QAAQA,2BAAW,4BAA4B;IAC1F,+BAA+B,SAAS;IACxC;IACD,CAAC;IACF,EACH,CAAC;;CAGJ,AAAQ,uBAAuB,WAAsC;AACnE,YAAU,SAASK,kCAAkB,EACnC,kDAAoC,wBAAwB;AAC1D,UAAO,oBACJ,QAAQR,wCAAwB,CAChC,OAAO,oBAAoB,QAAQO,uBAAO,EAAE,oBAAoB,QAAQJ,2BAAW,mBAAmB,CAAC;IAC1G,EACH,CAAC;AACF,YAAU,SAASA,2BAAW,uBAAuB,EACnD,kDAAoC,wBAAwB;AAC1D,UAAO,oBACJ,QAAQF,mDAAmC,CAC3C,OAAO,oBAAoB,QAAQM,uBAAO,EAAE,oBAAoB,QAAQJ,2BAAW,mBAAmB,CAAC;IAC1G,EACH,CAAC;;CAGJ,AAAQ,uBAAuB,SAAsF;AACnH,MAAI,SAAS,8BACX,QAAO,QAAQ;AAEjB,SAAO,EACL,gBAAgB,cACd,UACG,QAAQD,+DAA+C,CACvD,OACC,UAAU,QAAQC,2BAAW,mBAAmB,EAChD,UAAU,QAAQA,2BAAW,yBAAyB,EACtD,SAAS,iCACV,EACN"}
@@ -1,4 +1,4 @@
1
- import { A as NodeExecutor, B as DefaultAsyncSleeper, L as ItemExprResolver, M as RunnableOutputBehaviorResolver, N as NodeOutputNormalizer, _ as EngineExecutionLimitsPolicy, _t as CoreTokens, c as EngineFactory, ft as instanceCachingFactory, g as ENGINE_EXECUTION_LIMITS_DEFAULTS, i as RunIntentService, j as InProcessRetryRunnerFactory, k as NodeExecutorFactory, l as Engine, o as EngineWorkflowRunnerServiceFactory, r as RunIntentServiceFactory, t as WorkflowRepositoryWebhookTriggerMatcherFactory, u as RunFinishedAtFactory, w as NodeInstanceFactoryFactory, y as InlineDrivingScheduler } from "./runtime-CJnObwsU.js";
1
+ import { A as NodeExecutor, M as RunnableOutputBehaviorResolver, N as NodeOutputNormalizer, Nt as instanceCachingFactory, P as ItemExprResolver, Rt as CoreTokens, V as RunFinishedAtFactory, c as EngineFactory, g as EngineExecutionLimitsPolicy, h as ENGINE_EXECUTION_LIMITS_DEFAULTS, i as RunIntentService, j as InProcessRetryRunnerFactory, k as NodeExecutorFactory, l as Engine, o as EngineWorkflowRunnerServiceFactory, r as RunIntentServiceFactory, st as DefaultAsyncSleeper, t as WorkflowRepositoryWebhookTriggerMatcherFactory, v as InlineDrivingScheduler, w as NodeInstanceFactoryFactory } from "./runtime-DUW6tIJ1.js";
2
2
 
3
3
  //#region src/policies/executionLimits/EngineExecutionLimitsPolicyFactory.ts
4
4
  /**
@@ -84,7 +84,9 @@ var InMemoryWorkflowExecutionRepository = class {
84
84
  for (const s of this.runs.values()) {
85
85
  if (s.status !== "completed" && s.status !== "failed") continue;
86
86
  const finishedAt = RunFinishedAtFactory.resolveIso(s);
87
- if (!finishedAt || finishedAt >= args.beforeIso) continue;
87
+ const retentionSeconds = s.policySnapshot?.retentionSeconds ?? args.defaultRetentionSeconds;
88
+ const cutoffIso = (/* @__PURE__ */ new Date(new Date(args.nowIso).getTime() - retentionSeconds * 1e3)).toISOString();
89
+ if (!finishedAt || finishedAt >= cutoffIso) continue;
88
90
  out.push({
89
91
  runId: s.runId,
90
92
  workflowId: s.workflowId,
@@ -195,6 +197,7 @@ var EngineRuntimeRegistrar = class {
195
197
  tokenRegistry: tokenRegistryLike,
196
198
  workflowNodeInstanceFactory,
197
199
  executionLimitsPolicy: dependencyContainer.resolve(CoreTokens.EngineExecutionLimitsPolicy),
200
+ workflowPolicyRuntimeDefaults: options?.workflowPolicyRuntimeDefaults,
198
201
  triggerRuntimeDiagnostics
199
202
  });
200
203
  }) });
@@ -215,4 +218,4 @@ var EngineRuntimeRegistrar = class {
215
218
 
216
219
  //#endregion
217
220
  export { EngineExecutionLimitsPolicyFactory as i, InMemoryWorkflowExecutionRepository as n, RunSummaryMapper as r, EngineRuntimeRegistrar as t };
218
- //# sourceMappingURL=bootstrap-BhYxSivA.js.map
221
+ //# sourceMappingURL=bootstrap-d_BMaDT4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-d_BMaDT4.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<{ nowIso: string; defaultRetentionSeconds: number; 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 const retentionSeconds = s.policySnapshot?.retentionSeconds ?? args.defaultRetentionSeconds;\n const cutoffIso = new Date(new Date(args.nowIso).getTime() - retentionSeconds * 1000).toISOString();\n if (!finishedAt || finishedAt >= cutoffIso) 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 workflowPolicyRuntimeDefaults: options?.workflowPolicyRuntimeDefaults,\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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"}