@fluidgrids/workflows 2026.1029.1 → 2026.1030.1

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 (118) hide show
  1. package/README.md +112 -4
  2. package/dist/{activation-CESehfYi.d.cts → activation-DqUfpHzk.d.cts} +1 -1
  3. package/dist/{activation-BnVQMv9y.d.ts → activation-xpx1oWuo.d.ts} +1 -1
  4. package/dist/{chunk-MJ5TGYVG.js → chunk-2D3MYIIF.js} +969 -153
  5. package/dist/{chunk-2B37XAFQ.cjs → chunk-3U2NU7YC.cjs} +24 -11
  6. package/dist/{chunk-NEIUQASE.cjs → chunk-4QKB4ARC.cjs} +3 -3
  7. package/dist/{chunk-GBQ33SIZ.cjs → chunk-54FLQNUM.cjs} +12 -1
  8. package/dist/{chunk-2DDULZFM.js → chunk-5HIVIV53.js} +86 -75
  9. package/dist/chunk-5MFVJM76.js +1222 -0
  10. package/dist/{chunk-EWYADREB.cjs → chunk-672KMMBK.cjs} +2 -2
  11. package/dist/{chunk-KXJDRQ6G.js → chunk-6A2FGSUS.js} +22 -2
  12. package/dist/{chunk-OIX4O6UR.js → chunk-6OLN6BMB.js} +16 -3
  13. package/dist/{chunk-6FSHT5IL.js → chunk-7EZIANC7.js} +1 -1
  14. package/dist/chunk-A5SXCA62.cjs +93 -0
  15. package/dist/chunk-AC6ZEXVR.js +85 -0
  16. package/dist/{chunk-FWBRQWRX.js → chunk-AE5Q6ZAJ.js} +167 -10
  17. package/dist/{chunk-7ILGCUI6.js → chunk-C4F5KJTI.js} +142 -3
  18. package/dist/{chunk-WXXNCHUY.js → chunk-G5H32GIG.js} +1 -1
  19. package/dist/{chunk-OMY3CKUZ.cjs → chunk-GEQDGUGB.cjs} +1042 -226
  20. package/dist/{chunk-25BKWR2O.js → chunk-HCM7ZC7Q.js} +1 -1
  21. package/dist/{chunk-I47EENR4.cjs → chunk-HMZUGSMU.cjs} +673 -156
  22. package/dist/{chunk-NXFBVDOI.cjs → chunk-IQPXHQQQ.cjs} +8 -4
  23. package/dist/{chunk-RUQIMTN5.cjs → chunk-ISOIA7NV.cjs} +178 -15
  24. package/dist/chunk-JSC75O5C.cjs +167 -0
  25. package/dist/{chunk-BD7ZPG53.js → chunk-NWQ5WRLE.js} +10 -2
  26. package/dist/chunk-ODZ2IAR2.cjs +1247 -0
  27. package/dist/{chunk-FQSJI5NV.js → chunk-SR7TR5KX.js} +6 -2
  28. package/dist/{chunk-OKX3FYIM.cjs → chunk-TCTE7DX5.cjs} +3 -3
  29. package/dist/{chunk-3FIDHONL.cjs → chunk-TYF56RGB.cjs} +99 -80
  30. package/dist/{chunk-J3PYFGKA.cjs → chunk-VA4OFR72.cjs} +162 -4
  31. package/dist/chunk-VU5S5A7V.js +150 -0
  32. package/dist/{chunk-A36CCOWS.js → chunk-YEHR4NNE.js} +633 -128
  33. package/dist/{chunk-ELL2RBML.cjs → chunk-ZCGKGDCL.cjs} +23 -1
  34. package/dist/codegen/index.d.cts +2 -2
  35. package/dist/codegen/index.d.ts +2 -2
  36. package/dist/{collect-BTHjQaSp.d.ts → collect-6NIEufHd.d.ts} +20 -3
  37. package/dist/{collect-CSyOg5XC.d.cts → collect-CcTCKqx6.d.cts} +20 -3
  38. package/dist/{file-cgL9l9l8.d.cts → file-BxYpwjRQ.d.cts} +250 -15
  39. package/dist/{file-olQudcx5.d.ts → file-CFdPQJI9.d.ts} +250 -15
  40. package/dist/history/index.cjs +283 -106
  41. package/dist/history/index.d.cts +549 -10
  42. package/dist/history/index.d.ts +549 -10
  43. package/dist/history/index.js +5 -4
  44. package/dist/index.cjs +146 -53
  45. package/dist/index.d.cts +38 -14
  46. package/dist/index.d.ts +38 -14
  47. package/dist/index.js +6 -5
  48. package/dist/interceptors-CNcr2dlk.d.ts +159 -0
  49. package/dist/interceptors-CqkNZVfI.d.cts +159 -0
  50. package/dist/ir/index.cjs +339 -36
  51. package/dist/ir/index.d.cts +244 -8
  52. package/dist/ir/index.d.ts +244 -8
  53. package/dist/ir/index.js +306 -21
  54. package/dist/{lower-3S6PsqjJ.d.cts → lower-BtRfIW2A.d.cts} +23 -9
  55. package/dist/{lower-DmZpQ8hJ.d.ts → lower-CpsMFOFX.d.ts} +23 -9
  56. package/dist/{manifest-BJjrQt77.d.ts → manifest-D-I_twys.d.ts} +1 -1
  57. package/dist/{manifest-gRI2Q5Fj.d.cts → manifest-DahBQVM8.d.cts} +1 -1
  58. package/dist/node-evaluator-DGQDPSPI.cjs +24 -0
  59. package/dist/node-evaluator-LEEVD7H7.js +14 -0
  60. package/dist/payload-fields-BVRQn2yH.d.cts +122 -0
  61. package/dist/payload-fields-oOBWxDiG.d.ts +122 -0
  62. package/dist/quickjs/index.cjs +27 -27
  63. package/dist/quickjs/index.d.cts +6 -6
  64. package/dist/quickjs/index.d.ts +6 -6
  65. package/dist/quickjs/index.js +9 -9
  66. package/dist/roundtrip/index.cjs +72 -66
  67. package/dist/roundtrip/index.d.cts +25 -11
  68. package/dist/roundtrip/index.d.ts +25 -11
  69. package/dist/roundtrip/index.js +13 -11
  70. package/dist/runtime/index.cjs +19 -19
  71. package/dist/runtime/index.d.cts +139 -12
  72. package/dist/runtime/index.d.ts +139 -12
  73. package/dist/runtime/index.js +6 -6
  74. package/dist/testing/index.cjs +688 -121
  75. package/dist/testing/index.d.cts +174 -10
  76. package/dist/testing/index.d.ts +174 -10
  77. package/dist/testing/index.js +646 -82
  78. package/dist/{types-CnIOinoz.d.ts → types-Bv2i4cBX.d.cts} +126 -23
  79. package/dist/{types-CQKOhPTa.d.cts → types-DGx-b9eq.d.ts} +126 -23
  80. package/dist/{types-Bb2wRnJ5.d.cts → types-V7jEEUaL.d.cts} +1 -1
  81. package/dist/{types-Bb2wRnJ5.d.ts → types-V7jEEUaL.d.ts} +1 -1
  82. package/dist/{workflow-8uRU9rhL.d.ts → workflow-B18OeF7g.d.ts} +2 -2
  83. package/dist/{workflow-DWTPHFbt.d.ts → workflow-BGnv8SS6.d.ts} +261 -14
  84. package/dist/{workflow-CZOXUlQ5.d.cts → workflow-BJPFv3cp.d.cts} +2 -2
  85. package/dist/{workflow-O6e64ZcG.d.cts → workflow-DS32Gtws.d.cts} +261 -14
  86. package/fixtures/histories/activity-options-updated.history.json +159 -0
  87. package/fixtures/histories/activity-paused-unpaused.history.json +160 -0
  88. package/fixtures/histories/codec-opaque.history.json +229 -0
  89. package/fixtures/histories/dynamic-workflow.history.json +150 -0
  90. package/fixtures/histories/interceptor-headers.history.json +339 -0
  91. package/fixtures/histories/query-custom.history.json +213 -0
  92. package/fixtures/histories/query-default-handler.history.json +120 -0
  93. package/fixtures/histories/reset-forked-reapplied-signals.history.json +239 -0
  94. package/fixtures/histories/reset-reapplied-update-admitted.history.json +228 -0
  95. package/fixtures/histories/search-attributes-upserted.history.json +177 -0
  96. package/fixtures/histories/update-accepted-completed.history.json +45 -30
  97. package/fixtures/histories/update-default-handler.history.json +246 -0
  98. package/fixtures/histories/update-handler-awaits-activity.history.json +196 -0
  99. package/fixtures/histories/update-not-handled.history.json +138 -0
  100. package/fixtures/histories/update-rejected-no-event.history.json +190 -0
  101. package/fixtures/histories/update-with-start-admitted.history.json +150 -0
  102. package/fixtures/histories/user-activity-cancel.history.json +149 -0
  103. package/fixtures/histories/user-activity-retry.history.json +143 -0
  104. package/fixtures/histories/user-activity.history.json +149 -0
  105. package/package.json +1 -1
  106. package/schema/bridge-v2.schema.json +1062 -0
  107. package/schema/history-file.schema.json +255 -81
  108. package/schema/ir-v2.schema.json +246 -1
  109. package/schema/payload-fields.json +162 -0
  110. package/schema/run-event.schema.json +239 -80
  111. package/schema/workflow-command.schema.json +210 -84
  112. package/schema/workflow-task.schema.json +532 -167
  113. package/dist/chunk-6QPOJZT6.cjs +0 -1180
  114. package/dist/chunk-A2OHX3UQ.js +0 -1156
  115. package/dist/chunk-PWIUEWC3.js +0 -81
  116. package/dist/chunk-YHBVMOMK.cjs +0 -87
  117. package/dist/node-evaluator-SOADN23V.js +0 -14
  118. package/dist/node-evaluator-YGDEXK4U.cjs +0 -24
@@ -1,8 +1,8 @@
1
- import { W as WorkflowDefinition, b as WorkflowInterface, a as JsonObject, P as Position } from '../types-Bb2wRnJ5.cjs';
2
- export { C as CodeBundleActivityExport, c as CodeBundleWorkflowExport, d as ConnectionRef, E as ErrorType, e as ExecutionSettings, J as Json, L as LegacyCredentialRef, N as NodeArgs, f as NodeErrorConfig, g as NodeTimeout, R as RetryConfig, h as RunOnSetting, i as WorkflowAuthoring, j as WorkflowCode, k as WorkflowConfig, l as WorkflowEdge, m as WorkflowNode, n as WorkflowRunRetryConfig } from '../types-Bb2wRnJ5.cjs';
1
+ import { W as WorkflowDefinition, b as WorkflowInterface, J as JsonObject, P as Position } from '../types-V7jEEUaL.cjs';
2
+ export { C as CodeBundleActivityExport, c as CodeBundleWorkflowExport, d as ConnectionRef, E as ErrorType, e as ExecutionSettings, a as Json, L as LegacyCredentialRef, N as NodeArgs, f as NodeErrorConfig, g as NodeTimeout, R as RetryConfig, h as RunOnSetting, i as WorkflowAuthoring, j as WorkflowCode, k as WorkflowConfig, l as WorkflowEdge, m as WorkflowNode, n as WorkflowRunRetryConfig } from '../types-V7jEEUaL.cjs';
3
3
  export { S as SourceFile, b as buildIdOf, h as hashedProjection, i as irHash, s as sourceHash } from '../hash-CZkTXPCX.cjs';
4
- import { N as NodeManifest } from '../manifest-gRI2Q5Fj.cjs';
5
- export { M as ManifestField, a as ManifestHandles, b as ManifestOperation, f as fieldSchema, c as fieldsSchema, d as findManifest, i as isTriggerOperation, o as operationsOf } from '../manifest-gRI2Q5Fj.cjs';
4
+ import { N as NodeManifest } from '../manifest-DahBQVM8.cjs';
5
+ export { M as ManifestField, a as ManifestHandles, b as ManifestOperation, f as fieldSchema, c as fieldsSchema, d as findManifest, i as isTriggerOperation, o as operationsOf } from '../manifest-DahBQVM8.cjs';
6
6
  export { P as PathSegment, R as RefRoot, T as TemplatePart, V as ValueRefModel, f as formatRefExpression, a as formatRefTemplate, p as parseRefExpression, b as parseTemplate } from '../expressions-DhHaqyar.cjs';
7
7
 
8
8
  /**
@@ -354,6 +354,205 @@ declare const IR_V2_SCHEMA: {
354
354
  };
355
355
  };
356
356
  };
357
+ }, {
358
+ readonly if: {
359
+ readonly properties: {
360
+ readonly type: {
361
+ readonly const: "internal:signal-run";
362
+ };
363
+ };
364
+ readonly required: readonly ["type"];
365
+ };
366
+ readonly then: {
367
+ readonly description: "Phase C (fluidgrids.run-control): signal another run of the workspace (05 §4). A retried node delivers once (dedupe key signal-node:<nodeStateId>:<attempt>).";
368
+ readonly required: readonly ["args"];
369
+ readonly properties: {
370
+ readonly args: {
371
+ readonly required: readonly ["state"];
372
+ readonly properties: {
373
+ readonly state: {
374
+ readonly type: "object";
375
+ readonly required: readonly ["signalName", "target"];
376
+ readonly properties: {
377
+ readonly signalName: {
378
+ readonly type: "string";
379
+ readonly minLength: 1;
380
+ };
381
+ readonly target: {
382
+ readonly description: "The run to signal: { runId }, { workflowKey, workflowId, firstRunId? } (the open run of that workflow id) or { parent: true }. Values may be expressions.";
383
+ readonly oneOf: readonly [{
384
+ readonly type: "object";
385
+ readonly required: readonly ["runId"];
386
+ readonly properties: {
387
+ readonly runId: {
388
+ readonly type: "string";
389
+ readonly minLength: 1;
390
+ };
391
+ };
392
+ readonly additionalProperties: false;
393
+ }, {
394
+ readonly type: "object";
395
+ readonly required: readonly ["workflowKey", "workflowId"];
396
+ readonly properties: {
397
+ readonly workflowKey: {
398
+ readonly type: "string";
399
+ readonly minLength: 1;
400
+ };
401
+ readonly workflowId: {
402
+ readonly type: "string";
403
+ readonly minLength: 1;
404
+ };
405
+ readonly firstRunId: {
406
+ readonly type: "string";
407
+ readonly minLength: 1;
408
+ };
409
+ };
410
+ readonly additionalProperties: false;
411
+ }, {
412
+ readonly type: "object";
413
+ readonly required: readonly ["parent"];
414
+ readonly properties: {
415
+ readonly parent: {
416
+ readonly const: true;
417
+ };
418
+ };
419
+ readonly additionalProperties: false;
420
+ }];
421
+ };
422
+ readonly payload: {};
423
+ readonly failOnUndelivered: {
424
+ readonly type: "boolean";
425
+ readonly description: "Default true: an undelivered signal fails the node.";
426
+ };
427
+ };
428
+ };
429
+ };
430
+ };
431
+ };
432
+ };
433
+ }, {
434
+ readonly if: {
435
+ readonly properties: {
436
+ readonly type: {
437
+ readonly const: "internal:set-search-attributes";
438
+ };
439
+ };
440
+ readonly required: readonly ["type"];
441
+ };
442
+ readonly then: {
443
+ readonly description: "Phase C (fluidgrids.search-attributes): upsert the run search attributes (11 §2.8); a null value removes one. Values may be expressions; the service validates them against the workspace definitions.";
444
+ readonly required: readonly ["args"];
445
+ readonly properties: {
446
+ readonly args: {
447
+ readonly required: readonly ["state"];
448
+ readonly properties: {
449
+ readonly state: {
450
+ readonly type: "object";
451
+ readonly required: readonly ["attributes"];
452
+ readonly properties: {
453
+ readonly attributes: {
454
+ readonly type: "object";
455
+ readonly minProperties: 1;
456
+ };
457
+ };
458
+ };
459
+ };
460
+ };
461
+ };
462
+ };
463
+ }, {
464
+ readonly if: {
465
+ readonly properties: {
466
+ readonly type: {
467
+ readonly const: "internal:schedule";
468
+ };
469
+ };
470
+ readonly required: readonly ["type"];
471
+ };
472
+ readonly then: {
473
+ readonly properties: {
474
+ readonly args: {
475
+ readonly properties: {
476
+ readonly state: {
477
+ readonly description: "Phase C schedule policies (11 §2.16, §2.33; fluidgrids.schedule-policies). Every field is optional; a trigger without overlapPolicy keeps the ALLOW_ALL behaviour of earlier versions.";
478
+ readonly properties: {
479
+ readonly overlapPolicy: {
480
+ readonly enum: readonly ["SKIP", "BUFFER_ONE", "BUFFER_ALL", "CANCEL_OTHER", "TERMINATE_OTHER", "ALLOW_ALL"];
481
+ };
482
+ readonly catchupWindow: {
483
+ readonly oneOf: readonly [{
484
+ readonly type: "number";
485
+ readonly minimum: 0;
486
+ }, {
487
+ readonly type: "string";
488
+ readonly minLength: 1;
489
+ }];
490
+ };
491
+ readonly pauseOnFailure: {
492
+ readonly type: "boolean";
493
+ };
494
+ readonly limitedActions: {
495
+ readonly type: "integer";
496
+ readonly minimum: 1;
497
+ };
498
+ readonly scheduleContext: {
499
+ readonly type: "object";
500
+ };
501
+ readonly scheduleSearchAttributes: {
502
+ readonly type: "object";
503
+ };
504
+ readonly spec: {
505
+ readonly description: "One of cron, calendar or interval, plus excludeCalendars (calendar entries whose matches are skipped), startAt, endAt (ISO 8601), timezone and jitter.";
506
+ readonly properties: {
507
+ readonly cron: {
508
+ readonly type: "string";
509
+ };
510
+ readonly calendar: {
511
+ readonly type: "array";
512
+ readonly items: {
513
+ readonly type: "object";
514
+ };
515
+ };
516
+ readonly interval: {
517
+ readonly type: "array";
518
+ readonly items: {
519
+ readonly type: "object";
520
+ };
521
+ };
522
+ readonly excludeCalendars: {
523
+ readonly type: "array";
524
+ readonly items: {
525
+ readonly type: "object";
526
+ };
527
+ };
528
+ readonly startAt: {
529
+ readonly type: "string";
530
+ readonly minLength: 1;
531
+ };
532
+ readonly endAt: {
533
+ readonly type: "string";
534
+ readonly minLength: 1;
535
+ };
536
+ readonly timezone: {
537
+ readonly type: "string";
538
+ };
539
+ readonly jitter: {
540
+ readonly oneOf: readonly [{
541
+ readonly type: "number";
542
+ readonly minimum: 0;
543
+ }, {
544
+ readonly type: "string";
545
+ readonly minLength: 1;
546
+ }];
547
+ };
548
+ };
549
+ };
550
+ };
551
+ };
552
+ };
553
+ };
554
+ };
555
+ };
357
556
  }];
358
557
  };
359
558
  readonly edge: {
@@ -593,7 +792,7 @@ declare const IR_V2_SCHEMA: {
593
792
  readonly minLength: 1;
594
793
  };
595
794
  readonly uniqueItems: true;
596
- readonly description: "Runtime features the bundle uses (C-FEATURES, SDK R2): localActivity, externalCancel, childOptions, canOptions, autoUpgrade, runRetry, timeouts; Phase C adds userActivity, updates, queries, searchAttributes, dynamic and interceptors. A bundle without the field was built before R2 and uses none.";
795
+ readonly description: "Runtime features the bundle uses (C-FEATURES): localActivity, externalCancel, childOptions, canOptions, autoUpgrade, runRetry, timeouts (SDK R2); userActivity, updates, queries, searchAttributes, dynamic and interceptors (Phase C, C-R1). A bundle without the field was built before R2 and uses none.";
597
796
  };
598
797
  };
599
798
  };
@@ -862,6 +1061,37 @@ declare function checkScheduleSpec(spec: unknown, options?: {
862
1061
  now?: Date;
863
1062
  timezone?: unknown;
864
1063
  }): ScheduleCheck;
1064
+ /** A problem with a schedule trigger's policy fields (11 §2.16). */
1065
+ interface SchedulePolicyProblem {
1066
+ field: string;
1067
+ message: string;
1068
+ }
1069
+ /**
1070
+ * Check the Phase C policy fields of a schedule trigger's `args.state`
1071
+ * (`overlapPolicy`, `catchupWindow`, `pauseOnFailure`, `limitedActions`,
1072
+ * `scheduleContext`, `scheduleSearchAttributes`). Absent fields are fine: a
1073
+ * trigger without `overlapPolicy` keeps the legacy ALLOW_ALL behaviour.
1074
+ */
1075
+ declare function checkSchedulePolicy(state: Record<string, unknown>): SchedulePolicyProblem | undefined;
1076
+
1077
+ /**
1078
+ * Schedule trigger fields of Phase C (11 §2.16, §2.33), shared by the IR
1079
+ * schema and the schedule checker. Pure data.
1080
+ */
1081
+ /** What a tick does while a run from an earlier tick is still open (11 §2.16). */
1082
+ declare const SCHEDULE_OVERLAP_POLICIES: readonly ["SKIP", "BUFFER_ONE", "BUFFER_ALL", "CANCEL_OTHER", "TERMINATE_OTHER", "ALLOW_ALL"];
1083
+ type ScheduleOverlapPolicy = (typeof SCHEDULE_OVERLAP_POLICIES)[number];
1084
+ /**
1085
+ * The overlap policy the UI proposes for a new policy save. A stored trigger
1086
+ * without `overlapPolicy` keeps the legacy ALLOW_ALL behaviour (CX14, H3).
1087
+ */
1088
+ declare const DEFAULT_NEW_SCHEDULE_OVERLAP_POLICY: ScheduleOverlapPolicy;
1089
+ /** The default catch-up window after an outage (11 §2.16): one hour. */
1090
+ declare const DEFAULT_SCHEDULE_CATCHUP_WINDOW_SECONDS = 3600;
1091
+ /** Policy fields of the schedule trigger's `args.state` (beside `spec`). */
1092
+ declare const SCHEDULE_POLICY_FIELDS: readonly ["overlapPolicy", "catchupWindow", "pauseOnFailure", "limitedActions", "scheduleContext", "scheduleSearchAttributes"];
1093
+ /** Fields a `spec` may carry beside its one kind (`cron`, `calendar`, `interval`). */
1094
+ declare const SCHEDULE_SPEC_FIELDS: readonly ["excludeCalendars", "startAt", "endAt", "timezone", "jitter"];
865
1095
 
866
1096
  /**
867
1097
  * Node type knowledge shared by normalisation, validation and lifting.
@@ -874,14 +1104,20 @@ declare function checkScheduleSpec(spec: unknown, options?: {
874
1104
  /** Node types added by IR version 2 (spec 01 §3). */
875
1105
  declare const CODE_WORKFLOW_NODE_TYPE = "internal:code-workflow";
876
1106
  declare const WAIT_FOR_SIGNAL_NODE_TYPE = "internal:wait-for-signal";
1107
+ /** Phase C (run control): signal another run from the canvas (05 §4). */
1108
+ declare const SIGNAL_RUN_NODE_TYPE = "internal:signal-run";
1109
+ /** Phase C (search attributes): upsert the run's search attributes from the canvas (11 §2.8). */
1110
+ declare const SET_SEARCH_ATTRIBUTES_NODE_TYPE = "internal:set-search-attributes";
1111
+ /** The IR node types Phase C adds; the service seeds their manifests behind a switch. */
1112
+ declare const PHASE_C_NODE_TYPES: ReadonlySet<string>;
877
1113
  /** Internal trigger node types seeded by wspace-workflow-svc (`triggers/manifests`). */
878
1114
  declare const INTERNAL_TRIGGER_TYPES: ReadonlySet<string>;
879
1115
  /**
880
1116
  * True when the node goes through the internal node executor and therefore
881
1117
  * sees the merged `data < config < data.args.state < args.state` parameters.
882
- * The two version-2 node types are internal by design and are treated the
883
- * same way.
1118
+ * The version-2 node types are internal by design and are treated the same
1119
+ * way.
884
1120
  */
885
1121
  declare function usesMergedParameters(type: string): boolean;
886
1122
 
887
- export { CODE_WORKFLOW_NODE_TYPE, CanonicalJsonError, type DefinitionChange, type ExecutorNodeView, INTERNAL_TRIGGER_TYPES, IR_V2_SCHEMA, IR_V2_SCHEMA_ID, JsonObject, LAYOUT_COLUMN_WIDTH, LAYOUT_ROW_HEIGHT, NodeManifest, type ParsedWorkflowDocument, Position, type ScheduleCheck, type ValidateOptions, type ValidationIssue, type ValidationResult, WAIT_FOR_SIGNAL_NODE_TYPE, WORKFLOW_DOCUMENT_FORMAT, WorkflowDefinition, type WorkflowExportDocument, type WorkflowExportInput, WorkflowInterface, type WorkflowNodeReference, autoLayout, buildExportDocument, canonicalJson, checkScheduleSpec, deriveInterface, diffDefinitions, durationMs, envelopeSchemaVersion, executorNodeView, executorView, exportDefinition, isV2Definition, isValidJsonSchema, normalizeDefinition, parseWorkflowDocument, readWorkflowDocument, serializeWorkflowDocument, sha256Hex, sha256Tagged, stableStringify, usesMergedParameters, validate, workflowInputsSchema };
1123
+ export { CODE_WORKFLOW_NODE_TYPE, CanonicalJsonError, DEFAULT_NEW_SCHEDULE_OVERLAP_POLICY, DEFAULT_SCHEDULE_CATCHUP_WINDOW_SECONDS, type DefinitionChange, type ExecutorNodeView, INTERNAL_TRIGGER_TYPES, IR_V2_SCHEMA, IR_V2_SCHEMA_ID, JsonObject, LAYOUT_COLUMN_WIDTH, LAYOUT_ROW_HEIGHT, NodeManifest, PHASE_C_NODE_TYPES, type ParsedWorkflowDocument, Position, SCHEDULE_OVERLAP_POLICIES, SCHEDULE_POLICY_FIELDS, SCHEDULE_SPEC_FIELDS, SET_SEARCH_ATTRIBUTES_NODE_TYPE, SIGNAL_RUN_NODE_TYPE, type ScheduleCheck, type ScheduleOverlapPolicy, type SchedulePolicyProblem, type ValidateOptions, type ValidationIssue, type ValidationResult, WAIT_FOR_SIGNAL_NODE_TYPE, WORKFLOW_DOCUMENT_FORMAT, WorkflowDefinition, type WorkflowExportDocument, type WorkflowExportInput, WorkflowInterface, type WorkflowNodeReference, autoLayout, buildExportDocument, canonicalJson, checkSchedulePolicy, checkScheduleSpec, deriveInterface, diffDefinitions, durationMs, envelopeSchemaVersion, executorNodeView, executorView, exportDefinition, isV2Definition, isValidJsonSchema, normalizeDefinition, parseWorkflowDocument, readWorkflowDocument, serializeWorkflowDocument, sha256Hex, sha256Tagged, stableStringify, usesMergedParameters, validate, workflowInputsSchema };
@@ -1,8 +1,8 @@
1
- import { W as WorkflowDefinition, b as WorkflowInterface, a as JsonObject, P as Position } from '../types-Bb2wRnJ5.js';
2
- export { C as CodeBundleActivityExport, c as CodeBundleWorkflowExport, d as ConnectionRef, E as ErrorType, e as ExecutionSettings, J as Json, L as LegacyCredentialRef, N as NodeArgs, f as NodeErrorConfig, g as NodeTimeout, R as RetryConfig, h as RunOnSetting, i as WorkflowAuthoring, j as WorkflowCode, k as WorkflowConfig, l as WorkflowEdge, m as WorkflowNode, n as WorkflowRunRetryConfig } from '../types-Bb2wRnJ5.js';
1
+ import { W as WorkflowDefinition, b as WorkflowInterface, J as JsonObject, P as Position } from '../types-V7jEEUaL.js';
2
+ export { C as CodeBundleActivityExport, c as CodeBundleWorkflowExport, d as ConnectionRef, E as ErrorType, e as ExecutionSettings, a as Json, L as LegacyCredentialRef, N as NodeArgs, f as NodeErrorConfig, g as NodeTimeout, R as RetryConfig, h as RunOnSetting, i as WorkflowAuthoring, j as WorkflowCode, k as WorkflowConfig, l as WorkflowEdge, m as WorkflowNode, n as WorkflowRunRetryConfig } from '../types-V7jEEUaL.js';
3
3
  export { S as SourceFile, b as buildIdOf, h as hashedProjection, i as irHash, s as sourceHash } from '../hash-CZkTXPCX.js';
4
- import { N as NodeManifest } from '../manifest-BJjrQt77.js';
5
- export { M as ManifestField, a as ManifestHandles, b as ManifestOperation, f as fieldSchema, c as fieldsSchema, d as findManifest, i as isTriggerOperation, o as operationsOf } from '../manifest-BJjrQt77.js';
4
+ import { N as NodeManifest } from '../manifest-D-I_twys.js';
5
+ export { M as ManifestField, a as ManifestHandles, b as ManifestOperation, f as fieldSchema, c as fieldsSchema, d as findManifest, i as isTriggerOperation, o as operationsOf } from '../manifest-D-I_twys.js';
6
6
  export { P as PathSegment, R as RefRoot, T as TemplatePart, V as ValueRefModel, f as formatRefExpression, a as formatRefTemplate, p as parseRefExpression, b as parseTemplate } from '../expressions-DhHaqyar.js';
7
7
 
8
8
  /**
@@ -354,6 +354,205 @@ declare const IR_V2_SCHEMA: {
354
354
  };
355
355
  };
356
356
  };
357
+ }, {
358
+ readonly if: {
359
+ readonly properties: {
360
+ readonly type: {
361
+ readonly const: "internal:signal-run";
362
+ };
363
+ };
364
+ readonly required: readonly ["type"];
365
+ };
366
+ readonly then: {
367
+ readonly description: "Phase C (fluidgrids.run-control): signal another run of the workspace (05 §4). A retried node delivers once (dedupe key signal-node:<nodeStateId>:<attempt>).";
368
+ readonly required: readonly ["args"];
369
+ readonly properties: {
370
+ readonly args: {
371
+ readonly required: readonly ["state"];
372
+ readonly properties: {
373
+ readonly state: {
374
+ readonly type: "object";
375
+ readonly required: readonly ["signalName", "target"];
376
+ readonly properties: {
377
+ readonly signalName: {
378
+ readonly type: "string";
379
+ readonly minLength: 1;
380
+ };
381
+ readonly target: {
382
+ readonly description: "The run to signal: { runId }, { workflowKey, workflowId, firstRunId? } (the open run of that workflow id) or { parent: true }. Values may be expressions.";
383
+ readonly oneOf: readonly [{
384
+ readonly type: "object";
385
+ readonly required: readonly ["runId"];
386
+ readonly properties: {
387
+ readonly runId: {
388
+ readonly type: "string";
389
+ readonly minLength: 1;
390
+ };
391
+ };
392
+ readonly additionalProperties: false;
393
+ }, {
394
+ readonly type: "object";
395
+ readonly required: readonly ["workflowKey", "workflowId"];
396
+ readonly properties: {
397
+ readonly workflowKey: {
398
+ readonly type: "string";
399
+ readonly minLength: 1;
400
+ };
401
+ readonly workflowId: {
402
+ readonly type: "string";
403
+ readonly minLength: 1;
404
+ };
405
+ readonly firstRunId: {
406
+ readonly type: "string";
407
+ readonly minLength: 1;
408
+ };
409
+ };
410
+ readonly additionalProperties: false;
411
+ }, {
412
+ readonly type: "object";
413
+ readonly required: readonly ["parent"];
414
+ readonly properties: {
415
+ readonly parent: {
416
+ readonly const: true;
417
+ };
418
+ };
419
+ readonly additionalProperties: false;
420
+ }];
421
+ };
422
+ readonly payload: {};
423
+ readonly failOnUndelivered: {
424
+ readonly type: "boolean";
425
+ readonly description: "Default true: an undelivered signal fails the node.";
426
+ };
427
+ };
428
+ };
429
+ };
430
+ };
431
+ };
432
+ };
433
+ }, {
434
+ readonly if: {
435
+ readonly properties: {
436
+ readonly type: {
437
+ readonly const: "internal:set-search-attributes";
438
+ };
439
+ };
440
+ readonly required: readonly ["type"];
441
+ };
442
+ readonly then: {
443
+ readonly description: "Phase C (fluidgrids.search-attributes): upsert the run search attributes (11 §2.8); a null value removes one. Values may be expressions; the service validates them against the workspace definitions.";
444
+ readonly required: readonly ["args"];
445
+ readonly properties: {
446
+ readonly args: {
447
+ readonly required: readonly ["state"];
448
+ readonly properties: {
449
+ readonly state: {
450
+ readonly type: "object";
451
+ readonly required: readonly ["attributes"];
452
+ readonly properties: {
453
+ readonly attributes: {
454
+ readonly type: "object";
455
+ readonly minProperties: 1;
456
+ };
457
+ };
458
+ };
459
+ };
460
+ };
461
+ };
462
+ };
463
+ }, {
464
+ readonly if: {
465
+ readonly properties: {
466
+ readonly type: {
467
+ readonly const: "internal:schedule";
468
+ };
469
+ };
470
+ readonly required: readonly ["type"];
471
+ };
472
+ readonly then: {
473
+ readonly properties: {
474
+ readonly args: {
475
+ readonly properties: {
476
+ readonly state: {
477
+ readonly description: "Phase C schedule policies (11 §2.16, §2.33; fluidgrids.schedule-policies). Every field is optional; a trigger without overlapPolicy keeps the ALLOW_ALL behaviour of earlier versions.";
478
+ readonly properties: {
479
+ readonly overlapPolicy: {
480
+ readonly enum: readonly ["SKIP", "BUFFER_ONE", "BUFFER_ALL", "CANCEL_OTHER", "TERMINATE_OTHER", "ALLOW_ALL"];
481
+ };
482
+ readonly catchupWindow: {
483
+ readonly oneOf: readonly [{
484
+ readonly type: "number";
485
+ readonly minimum: 0;
486
+ }, {
487
+ readonly type: "string";
488
+ readonly minLength: 1;
489
+ }];
490
+ };
491
+ readonly pauseOnFailure: {
492
+ readonly type: "boolean";
493
+ };
494
+ readonly limitedActions: {
495
+ readonly type: "integer";
496
+ readonly minimum: 1;
497
+ };
498
+ readonly scheduleContext: {
499
+ readonly type: "object";
500
+ };
501
+ readonly scheduleSearchAttributes: {
502
+ readonly type: "object";
503
+ };
504
+ readonly spec: {
505
+ readonly description: "One of cron, calendar or interval, plus excludeCalendars (calendar entries whose matches are skipped), startAt, endAt (ISO 8601), timezone and jitter.";
506
+ readonly properties: {
507
+ readonly cron: {
508
+ readonly type: "string";
509
+ };
510
+ readonly calendar: {
511
+ readonly type: "array";
512
+ readonly items: {
513
+ readonly type: "object";
514
+ };
515
+ };
516
+ readonly interval: {
517
+ readonly type: "array";
518
+ readonly items: {
519
+ readonly type: "object";
520
+ };
521
+ };
522
+ readonly excludeCalendars: {
523
+ readonly type: "array";
524
+ readonly items: {
525
+ readonly type: "object";
526
+ };
527
+ };
528
+ readonly startAt: {
529
+ readonly type: "string";
530
+ readonly minLength: 1;
531
+ };
532
+ readonly endAt: {
533
+ readonly type: "string";
534
+ readonly minLength: 1;
535
+ };
536
+ readonly timezone: {
537
+ readonly type: "string";
538
+ };
539
+ readonly jitter: {
540
+ readonly oneOf: readonly [{
541
+ readonly type: "number";
542
+ readonly minimum: 0;
543
+ }, {
544
+ readonly type: "string";
545
+ readonly minLength: 1;
546
+ }];
547
+ };
548
+ };
549
+ };
550
+ };
551
+ };
552
+ };
553
+ };
554
+ };
555
+ };
357
556
  }];
358
557
  };
359
558
  readonly edge: {
@@ -593,7 +792,7 @@ declare const IR_V2_SCHEMA: {
593
792
  readonly minLength: 1;
594
793
  };
595
794
  readonly uniqueItems: true;
596
- readonly description: "Runtime features the bundle uses (C-FEATURES, SDK R2): localActivity, externalCancel, childOptions, canOptions, autoUpgrade, runRetry, timeouts; Phase C adds userActivity, updates, queries, searchAttributes, dynamic and interceptors. A bundle without the field was built before R2 and uses none.";
795
+ readonly description: "Runtime features the bundle uses (C-FEATURES): localActivity, externalCancel, childOptions, canOptions, autoUpgrade, runRetry, timeouts (SDK R2); userActivity, updates, queries, searchAttributes, dynamic and interceptors (Phase C, C-R1). A bundle without the field was built before R2 and uses none.";
597
796
  };
598
797
  };
599
798
  };
@@ -862,6 +1061,37 @@ declare function checkScheduleSpec(spec: unknown, options?: {
862
1061
  now?: Date;
863
1062
  timezone?: unknown;
864
1063
  }): ScheduleCheck;
1064
+ /** A problem with a schedule trigger's policy fields (11 §2.16). */
1065
+ interface SchedulePolicyProblem {
1066
+ field: string;
1067
+ message: string;
1068
+ }
1069
+ /**
1070
+ * Check the Phase C policy fields of a schedule trigger's `args.state`
1071
+ * (`overlapPolicy`, `catchupWindow`, `pauseOnFailure`, `limitedActions`,
1072
+ * `scheduleContext`, `scheduleSearchAttributes`). Absent fields are fine: a
1073
+ * trigger without `overlapPolicy` keeps the legacy ALLOW_ALL behaviour.
1074
+ */
1075
+ declare function checkSchedulePolicy(state: Record<string, unknown>): SchedulePolicyProblem | undefined;
1076
+
1077
+ /**
1078
+ * Schedule trigger fields of Phase C (11 §2.16, §2.33), shared by the IR
1079
+ * schema and the schedule checker. Pure data.
1080
+ */
1081
+ /** What a tick does while a run from an earlier tick is still open (11 §2.16). */
1082
+ declare const SCHEDULE_OVERLAP_POLICIES: readonly ["SKIP", "BUFFER_ONE", "BUFFER_ALL", "CANCEL_OTHER", "TERMINATE_OTHER", "ALLOW_ALL"];
1083
+ type ScheduleOverlapPolicy = (typeof SCHEDULE_OVERLAP_POLICIES)[number];
1084
+ /**
1085
+ * The overlap policy the UI proposes for a new policy save. A stored trigger
1086
+ * without `overlapPolicy` keeps the legacy ALLOW_ALL behaviour (CX14, H3).
1087
+ */
1088
+ declare const DEFAULT_NEW_SCHEDULE_OVERLAP_POLICY: ScheduleOverlapPolicy;
1089
+ /** The default catch-up window after an outage (11 §2.16): one hour. */
1090
+ declare const DEFAULT_SCHEDULE_CATCHUP_WINDOW_SECONDS = 3600;
1091
+ /** Policy fields of the schedule trigger's `args.state` (beside `spec`). */
1092
+ declare const SCHEDULE_POLICY_FIELDS: readonly ["overlapPolicy", "catchupWindow", "pauseOnFailure", "limitedActions", "scheduleContext", "scheduleSearchAttributes"];
1093
+ /** Fields a `spec` may carry beside its one kind (`cron`, `calendar`, `interval`). */
1094
+ declare const SCHEDULE_SPEC_FIELDS: readonly ["excludeCalendars", "startAt", "endAt", "timezone", "jitter"];
865
1095
 
866
1096
  /**
867
1097
  * Node type knowledge shared by normalisation, validation and lifting.
@@ -874,14 +1104,20 @@ declare function checkScheduleSpec(spec: unknown, options?: {
874
1104
  /** Node types added by IR version 2 (spec 01 §3). */
875
1105
  declare const CODE_WORKFLOW_NODE_TYPE = "internal:code-workflow";
876
1106
  declare const WAIT_FOR_SIGNAL_NODE_TYPE = "internal:wait-for-signal";
1107
+ /** Phase C (run control): signal another run from the canvas (05 §4). */
1108
+ declare const SIGNAL_RUN_NODE_TYPE = "internal:signal-run";
1109
+ /** Phase C (search attributes): upsert the run's search attributes from the canvas (11 §2.8). */
1110
+ declare const SET_SEARCH_ATTRIBUTES_NODE_TYPE = "internal:set-search-attributes";
1111
+ /** The IR node types Phase C adds; the service seeds their manifests behind a switch. */
1112
+ declare const PHASE_C_NODE_TYPES: ReadonlySet<string>;
877
1113
  /** Internal trigger node types seeded by wspace-workflow-svc (`triggers/manifests`). */
878
1114
  declare const INTERNAL_TRIGGER_TYPES: ReadonlySet<string>;
879
1115
  /**
880
1116
  * True when the node goes through the internal node executor and therefore
881
1117
  * sees the merged `data < config < data.args.state < args.state` parameters.
882
- * The two version-2 node types are internal by design and are treated the
883
- * same way.
1118
+ * The version-2 node types are internal by design and are treated the same
1119
+ * way.
884
1120
  */
885
1121
  declare function usesMergedParameters(type: string): boolean;
886
1122
 
887
- export { CODE_WORKFLOW_NODE_TYPE, CanonicalJsonError, type DefinitionChange, type ExecutorNodeView, INTERNAL_TRIGGER_TYPES, IR_V2_SCHEMA, IR_V2_SCHEMA_ID, JsonObject, LAYOUT_COLUMN_WIDTH, LAYOUT_ROW_HEIGHT, NodeManifest, type ParsedWorkflowDocument, Position, type ScheduleCheck, type ValidateOptions, type ValidationIssue, type ValidationResult, WAIT_FOR_SIGNAL_NODE_TYPE, WORKFLOW_DOCUMENT_FORMAT, WorkflowDefinition, type WorkflowExportDocument, type WorkflowExportInput, WorkflowInterface, type WorkflowNodeReference, autoLayout, buildExportDocument, canonicalJson, checkScheduleSpec, deriveInterface, diffDefinitions, durationMs, envelopeSchemaVersion, executorNodeView, executorView, exportDefinition, isV2Definition, isValidJsonSchema, normalizeDefinition, parseWorkflowDocument, readWorkflowDocument, serializeWorkflowDocument, sha256Hex, sha256Tagged, stableStringify, usesMergedParameters, validate, workflowInputsSchema };
1123
+ export { CODE_WORKFLOW_NODE_TYPE, CanonicalJsonError, DEFAULT_NEW_SCHEDULE_OVERLAP_POLICY, DEFAULT_SCHEDULE_CATCHUP_WINDOW_SECONDS, type DefinitionChange, type ExecutorNodeView, INTERNAL_TRIGGER_TYPES, IR_V2_SCHEMA, IR_V2_SCHEMA_ID, JsonObject, LAYOUT_COLUMN_WIDTH, LAYOUT_ROW_HEIGHT, NodeManifest, PHASE_C_NODE_TYPES, type ParsedWorkflowDocument, Position, SCHEDULE_OVERLAP_POLICIES, SCHEDULE_POLICY_FIELDS, SCHEDULE_SPEC_FIELDS, SET_SEARCH_ATTRIBUTES_NODE_TYPE, SIGNAL_RUN_NODE_TYPE, type ScheduleCheck, type ScheduleOverlapPolicy, type SchedulePolicyProblem, type ValidateOptions, type ValidationIssue, type ValidationResult, WAIT_FOR_SIGNAL_NODE_TYPE, WORKFLOW_DOCUMENT_FORMAT, WorkflowDefinition, type WorkflowExportDocument, type WorkflowExportInput, WorkflowInterface, type WorkflowNodeReference, autoLayout, buildExportDocument, canonicalJson, checkSchedulePolicy, checkScheduleSpec, deriveInterface, diffDefinitions, durationMs, envelopeSchemaVersion, executorNodeView, executorView, exportDefinition, isV2Definition, isValidJsonSchema, normalizeDefinition, parseWorkflowDocument, readWorkflowDocument, serializeWorkflowDocument, sha256Hex, sha256Tagged, stableStringify, usesMergedParameters, validate, workflowInputsSchema };