@exaudeus/workrail 1.7.1 → 1.7.3

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 (36) hide show
  1. package/dist/application/services/validation-engine.js +3 -0
  2. package/dist/manifest.json +66 -66
  3. package/dist/mcp/handler-factory.d.ts +1 -1
  4. package/dist/mcp/handler-factory.js +4 -3
  5. package/dist/mcp/handlers/v2-advance-core/index.js +4 -1
  6. package/dist/mcp/handlers/v2-advance-core/input-validation.d.ts +1 -0
  7. package/dist/mcp/handlers/v2-advance-core/input-validation.js +3 -0
  8. package/dist/mcp/output-schemas.d.ts +18 -18
  9. package/dist/mcp/output-schemas.js +3 -0
  10. package/dist/mcp/v2/tool-registry.js +1 -1
  11. package/dist/mcp/v2/tools.d.ts +34 -0
  12. package/dist/mcp/v2/tools.js +7 -4
  13. package/dist/mcp/validation/schema-introspection.d.ts +2 -2
  14. package/dist/mcp/validation/schema-introspection.js +8 -8
  15. package/dist/mcp/validation/suggestion-config.d.ts +1 -0
  16. package/dist/mcp/validation/suggestion-config.js +2 -0
  17. package/dist/mcp/validation/suggestion-generator.js +1 -1
  18. package/dist/types/workflow-definition.d.ts +1 -0
  19. package/dist/v2/durable-core/domain/blocked-node-builder.js +2 -0
  20. package/dist/v2/durable-core/domain/blocking-decision.d.ts +3 -0
  21. package/dist/v2/durable-core/domain/blocking-decision.js +9 -0
  22. package/dist/v2/durable-core/domain/prompt-renderer.js +6 -1
  23. package/dist/v2/durable-core/domain/reason-model.d.ts +5 -2
  24. package/dist/v2/durable-core/domain/reason-model.js +17 -2
  25. package/dist/v2/durable-core/domain/risk-policy-guardrails.js +1 -0
  26. package/dist/v2/durable-core/schemas/execution-snapshot/blocked-snapshot.d.ts +38 -14
  27. package/dist/v2/durable-core/schemas/execution-snapshot/blocked-snapshot.js +4 -0
  28. package/dist/v2/durable-core/schemas/execution-snapshot/execution-snapshot.v1.d.ts +177 -78
  29. package/dist/v2/durable-core/schemas/export-bundle/index.d.ts +240 -144
  30. package/dist/v2/durable-core/schemas/session/blockers.d.ts +11 -11
  31. package/dist/v2/durable-core/schemas/session/blockers.js +3 -0
  32. package/dist/v2/durable-core/schemas/session/events.d.ts +27 -27
  33. package/dist/v2/durable-core/schemas/session/gaps.d.ts +16 -16
  34. package/dist/v2/durable-core/schemas/session/gaps.js +2 -2
  35. package/package.json +1 -1
  36. package/spec/workflow.schema.json +5 -0
@@ -62,6 +62,9 @@ let ValidationEngine = ValidationEngine_1 = class ValidationEngine {
62
62
  warnings: undefined,
63
63
  }));
64
64
  }
65
+ if (this.isValidationRule(criteria)) {
66
+ return this.evaluateRuleArray(output, [criteria], context);
67
+ }
65
68
  return (0, neverthrow_1.err)({ kind: 'invalid_criteria_format', message: 'Invalid validation criteria format' });
66
69
  }
67
70
  catch (error) {
@@ -38,8 +38,8 @@
38
38
  "bytes": 2030
39
39
  },
40
40
  "application/services/validation-engine.js": {
41
- "sha256": "c0f15361f7c8a08c88a017caede5b70dc377c55d795c5d7aebbc4aa29d395462",
42
- "bytes": 30897
41
+ "sha256": "81592794bad1d77b0f8cdf6ed6486a17c6eebc3a4fe9e484693fbb6f8cdc5c96",
42
+ "bytes": 31038
43
43
  },
44
44
  "application/services/workflow-compiler.d.ts": {
45
45
  "sha256": "dc7b1ed75ee4e90f90c35088d5c336a94d782012e5926fd7c939613e483b23fc",
@@ -522,12 +522,12 @@
522
522
  "bytes": 3982
523
523
  },
524
524
  "mcp/handler-factory.d.ts": {
525
- "sha256": "fad8fff32776b2fe7182708ce0e821c2434fdfce7191390bb9cfaf16a7d31a60",
526
- "bytes": 796
525
+ "sha256": "27ee92b476ca59ed6daca56b228b27bc4c84a061106fa61f2554bba98703ba28",
526
+ "bytes": 838
527
527
  },
528
528
  "mcp/handler-factory.js": {
529
- "sha256": "711bdf8bd71eaf2ad2a6b6b1bf84db004030e06223ce52075e01470a3bffd88d",
530
- "bytes": 3805
529
+ "sha256": "8cc0d3e1a7871048b9033a90fb63b3dfd91148c16d22ac5336a767ed2d04a10b",
530
+ "bytes": 3907
531
531
  },
532
532
  "mcp/handlers/session.d.ts": {
533
533
  "sha256": "38926e69a0e4935d1dbcdc53848be9fff0e4d8f96827883da3216f217918fa82",
@@ -566,16 +566,16 @@
566
566
  "bytes": 3500
567
567
  },
568
568
  "mcp/handlers/v2-advance-core/index.js": {
569
- "sha256": "056de2680358ac496e82619a921a9f6403e51e2f8f1e4fdf0e7acd0da1136bab",
570
- "bytes": 6974
569
+ "sha256": "f144bbf46678ff03dcdf3e76d6fe0375942469a9e45d40de748c80d4c49bb2c6",
570
+ "bytes": 7134
571
571
  },
572
572
  "mcp/handlers/v2-advance-core/input-validation.d.ts": {
573
- "sha256": "a7b5d0e80eaea2cc500cd576bd1ae25d1c5521dcef76011bd052bf6cf6cf574b",
574
- "bytes": 2044
573
+ "sha256": "d736f163f6673b30f653c63336a287cdfe99c9f58b601c7220ce441590f802ba",
574
+ "bytes": 2081
575
575
  },
576
576
  "mcp/handlers/v2-advance-core/input-validation.js": {
577
- "sha256": "e1b206cde61cc3c9c1da1587a4bb0ef85413c5b4a7e85ebb3e2e1cb8052adbf0",
578
- "bytes": 3130
577
+ "sha256": "3ddc086926fbc2be02cf52115370c221883c542f89ab256ee52388d115b7ae83",
578
+ "bytes": 3316
579
579
  },
580
580
  "mcp/handlers/v2-advance-core/outcome-blocked.d.ts": {
581
581
  "sha256": "4f49a588027929875a98c1212de40201512a023d4bf230f8d9e075cbdfa8421d",
@@ -746,12 +746,12 @@
746
746
  "bytes": 7535
747
747
  },
748
748
  "mcp/output-schemas.d.ts": {
749
- "sha256": "85bc8019547bbee11374a09344489f9dd99703782e5f3822497193b09dbfba1f",
750
- "bytes": 49826
749
+ "sha256": "5c8256c738cb2b3c193fa3fe955ca3aaf00ae9381e8ef162d1477824db18b137",
750
+ "bytes": 51242
751
751
  },
752
752
  "mcp/output-schemas.js": {
753
- "sha256": "05fe0824c55da5fdadfc92a0bcaaf95f998ba3fbaedae5a27370ceba53e3dc6e",
754
- "bytes": 12015
753
+ "sha256": "fd43722d021afb0c64cfe4356fc7ba9e41e6e3e9f9506866e0be0159d1b6908b",
754
+ "bytes": 12115
755
755
  },
756
756
  "mcp/server.d.ts": {
757
757
  "sha256": "bec49b8d07e189a53db7100d2f0e1e84ffe03150f04e1b06908ee3282982b4a2",
@@ -830,16 +830,16 @@
830
830
  "bytes": 408
831
831
  },
832
832
  "mcp/v2/tool-registry.js": {
833
- "sha256": "4b192604ddafd986416865041db7e395d205da6fa1d398bec07646900f6ce28c",
834
- "bytes": 3078
833
+ "sha256": "82539ddccffd58e3dee09b6ee859721fe69da024f55f25b3ee1113d48363d4e4",
834
+ "bytes": 3119
835
835
  },
836
836
  "mcp/v2/tools.d.ts": {
837
- "sha256": "8d37b32d7a00d534b2ecbdc71018e3849714531ec3021862427494be85909eab",
838
- "bytes": 5486
837
+ "sha256": "567938a5c153159b7792600cbe2326ce446a28f46d5f49e34dc1663cf826427e",
838
+ "bytes": 6737
839
839
  },
840
840
  "mcp/v2/tools.js": {
841
- "sha256": "5af4e1a5a3a6c43df6db4ea40eb6d12fd0757af94f4e3e80d9f875ecf0181544",
842
- "bytes": 7812
841
+ "sha256": "49d00fe392c526ce5f7e287ba98180cc82574b0c85ff0b550f3f01a216ac5dbf",
842
+ "bytes": 7938
843
843
  },
844
844
  "mcp/validation/bounded-json.d.ts": {
845
845
  "sha256": "82203ac6123d5c6989606c3b5405aaea99ab829c8958835f9ae3ba45b8bc8fd5",
@@ -858,12 +858,12 @@
858
858
  "bytes": 4664
859
859
  },
860
860
  "mcp/validation/schema-introspection.d.ts": {
861
- "sha256": "7e0262e76234dd37079156027e95a30987b8949351f3e9ec0fd7b2be093a159d",
862
- "bytes": 713
861
+ "sha256": "48b0f5c762bbfb82014b4424c65a5006e19fe871cc86a6ece4fe41c1110cc45f",
862
+ "bytes": 767
863
863
  },
864
864
  "mcp/validation/schema-introspection.js": {
865
- "sha256": "850c09a3c01a5f22440ebc34236c393f3b428748210f5277258a9905cb847d71",
866
- "bytes": 5293
865
+ "sha256": "03cc06529e37525264064a0d9c05dfa9cc17eb9043dcbf559c1b0a62fbd08081",
866
+ "bytes": 5448
867
867
  },
868
868
  "mcp/validation/string-similarity.d.ts": {
869
869
  "sha256": "4326210a768a526336b54d4ea20a128a939d92f53e8b2a5a33da06b5372d196a",
@@ -874,20 +874,20 @@
874
874
  "bytes": 2627
875
875
  },
876
876
  "mcp/validation/suggestion-config.d.ts": {
877
- "sha256": "70b8395db74ec18bb1ef2309dd16516345b75839d2793bf9c5bfbd1e1d1baa0e",
878
- "bytes": 388
877
+ "sha256": "ce63e2e63cfc316579d5f269210a60913beead0a131acb0cec8ad228ea81888f",
878
+ "bytes": 437
879
879
  },
880
880
  "mcp/validation/suggestion-config.js": {
881
- "sha256": "efda43e48812979d0ddae2abe23809b6b5a3e5b955e74ca5a67716933e468db4",
882
- "bytes": 592
881
+ "sha256": "907d37fdb1058491d27739f14b32a0371b79d892f5c193503d0c9e34833c444b",
882
+ "bytes": 667
883
883
  },
884
884
  "mcp/validation/suggestion-generator.d.ts": {
885
885
  "sha256": "159bde7596e7459f6025e152a24f1ab850d5cbd2bf55461036a05709dc5dbaa1",
886
886
  "bytes": 731
887
887
  },
888
888
  "mcp/validation/suggestion-generator.js": {
889
- "sha256": "e4988260027f7c17398da69a7b1b8dcbb266f1b42100c63723a6d99426a0802e",
890
- "bytes": 5250
889
+ "sha256": "e4e6740c4010b550de89ae97d50b9e66eebb8d34de13c33a62a6988c34264e79",
890
+ "bytes": 5284
891
891
  },
892
892
  "mcp/validation/suggestion-types.d.ts": {
893
893
  "sha256": "b93ae2e42f4b24789dcbe19db31a41af9534ad0dca85635339c2a10db42e298b",
@@ -1058,8 +1058,8 @@
1058
1058
  "bytes": 395
1059
1059
  },
1060
1060
  "types/workflow-definition.d.ts": {
1061
- "sha256": "719bd8abe73b4377ba9a23c60d9fbdef170b193b8a3c46d6ddc6bc49cb65e8d2",
1062
- "bytes": 3576
1061
+ "sha256": "350be64b9da13515fc717a3cd72ddf19b3544087a246c7b2e79da0ef5ed3ffef",
1062
+ "bytes": 3614
1063
1063
  },
1064
1064
  "types/workflow-definition.js": {
1065
1065
  "sha256": "e269d62f27b7f37f870183d6b77800b7aa1e22dabc894374bab8f34db049a55b",
@@ -1198,16 +1198,16 @@
1198
1198
  "bytes": 880
1199
1199
  },
1200
1200
  "v2/durable-core/domain/blocked-node-builder.js": {
1201
- "sha256": "3bd568ec217fb79e8e7ebfd5b7a8474a81f06caf58aceccad9ce3c46c9a06fec",
1202
- "bytes": 4008
1201
+ "sha256": "a5c69a1a31ad4a04a0c7924141df00ad7d47bf0653f88465f4d985316de344d4",
1202
+ "bytes": 4107
1203
1203
  },
1204
1204
  "v2/durable-core/domain/blocking-decision.d.ts": {
1205
- "sha256": "dd32c4354dd710f94629833e91c5f83cd316212116d63fac1305d7336d4ce353",
1206
- "bytes": 1186
1205
+ "sha256": "4cac7d676931cebbf8d2a80a212b295716836596938973d16371beede62e9932",
1206
+ "bytes": 1256
1207
1207
  },
1208
1208
  "v2/durable-core/domain/blocking-decision.js": {
1209
- "sha256": "a85277cc35cfa48e2f2e23bd958dce4431d21e29b8eb152d0dc4d88bfa67e556",
1210
- "bytes": 2124
1209
+ "sha256": "784983173f0b9741b0784e7aa8fdaef34c36c9715f8c9dcdcb22132f89be058e",
1210
+ "bytes": 2557
1211
1211
  },
1212
1212
  "v2/durable-core/domain/bundle-builder.d.ts": {
1213
1213
  "sha256": "cb08b33f82f7cab8ef1b5f441a531886a4e1d0fdff69105b121089dc2e790357",
@@ -1302,16 +1302,16 @@
1302
1302
  "bytes": 935
1303
1303
  },
1304
1304
  "v2/durable-core/domain/prompt-renderer.js": {
1305
- "sha256": "2dc9c96ba7bbd7574928be98d5d2e210a1feeca3f0138c74035b5fd85d621691",
1306
- "bytes": 8638
1305
+ "sha256": "3dd32e6335bc1aabe24f2477312975af8ef548daf5c7aad5e7f6b4e7aa2f5a78",
1306
+ "bytes": 9074
1307
1307
  },
1308
1308
  "v2/durable-core/domain/reason-model.d.ts": {
1309
- "sha256": "6b32c3504cb35ca382e369b4eaf698f1c469be01448215aeab7ce35e3c2ff550",
1310
- "bytes": 3585
1309
+ "sha256": "650fcb2d9969a4e6123cccbd4913f4d57aeab21a19bb907aa1e11f95e5a95089",
1310
+ "bytes": 3762
1311
1311
  },
1312
1312
  "v2/durable-core/domain/reason-model.js": {
1313
- "sha256": "8042a61a9ef938309832bb2ec47e2b370cc3be10c9de76922393bedd01417449",
1314
- "bytes": 10946
1313
+ "sha256": "23421e96b87cc59fec1a9205979410d27b2607c5b5cb98302902d0bcf32dfe3d",
1314
+ "bytes": 11820
1315
1315
  },
1316
1316
  "v2/durable-core/domain/recap-recovery.d.ts": {
1317
1317
  "sha256": "82e7b20a22d409f729ccf79d345c00a7e27f1898a465dfca4cd789ff7766a3d6",
@@ -1334,8 +1334,8 @@
1334
1334
  "bytes": 637
1335
1335
  },
1336
1336
  "v2/durable-core/domain/risk-policy-guardrails.js": {
1337
- "sha256": "7566cefe066cf9f70bfedfd82a4e3aaefe1a6e5975daac664abb9b1a0cd51063",
1338
- "bytes": 2689
1337
+ "sha256": "da5c71be307bff6e0c479dba09439020461854c3d27ffcc9e9cb737891dfd114",
1338
+ "bytes": 2719
1339
1339
  },
1340
1340
  "v2/durable-core/domain/validation-criteria-validator.d.ts": {
1341
1341
  "sha256": "9d130b9a641857696d510cad691dcfb02d5ac54138e11fbb58ae9305a4cb1987",
@@ -1498,16 +1498,16 @@
1498
1498
  "bytes": 1350
1499
1499
  },
1500
1500
  "v2/durable-core/schemas/execution-snapshot/blocked-snapshot.d.ts": {
1501
- "sha256": "62fbdd2d901f8338942908bbdef575f871279501ba76b819a7750fe38c1f7976",
1502
- "bytes": 23179
1501
+ "sha256": "278fa4bf5b42f7560382bd821ec706151bba0ab8fc7a17118dfcd02824757625",
1502
+ "bytes": 24869
1503
1503
  },
1504
1504
  "v2/durable-core/schemas/execution-snapshot/blocked-snapshot.js": {
1505
- "sha256": "9ad261ef17b2d0652ca7387205f2d1ff66203c54b31dc82c08ef8c9762d2fe7b",
1506
- "bytes": 4364
1505
+ "sha256": "f952ec8411dff13e63376a426a7a0a0fdd172b197f01fbf321ec69ec7c1076e1",
1506
+ "bytes": 4556
1507
1507
  },
1508
1508
  "v2/durable-core/schemas/execution-snapshot/execution-snapshot.v1.d.ts": {
1509
- "sha256": "675f92a72f254f6e737fe86e4fb8e8ab75405507ea5e691fa78c9cf487552b20",
1510
- "bytes": 186498
1509
+ "sha256": "a7f455d0bef1dce88b712ee9a29066d97033f31e180dc8de6c0733713a484936",
1510
+ "bytes": 195786
1511
1511
  },
1512
1512
  "v2/durable-core/schemas/execution-snapshot/execution-snapshot.v1.js": {
1513
1513
  "sha256": "ec330ed72b7d5cc13ed4e000fd398f4c3c0f14e4d3e02ee4f59f10383377be94",
@@ -1530,8 +1530,8 @@
1530
1530
  "bytes": 2983
1531
1531
  },
1532
1532
  "v2/durable-core/schemas/export-bundle/index.d.ts": {
1533
- "sha256": "3b922ab53a8cf1c5cc0968f1409aae87b5782b01ab19f74fcb25fef9286cc36a",
1534
- "bytes": 466802
1533
+ "sha256": "3f9c52313003c77762c13e144e8084b07d6b235d4f2867c43808e141bf269f0f",
1534
+ "bytes": 479882
1535
1535
  },
1536
1536
  "v2/durable-core/schemas/export-bundle/index.js": {
1537
1537
  "sha256": "6e3566b2d05ea6302bbf4d311b8ec3e94725a8523834efe7670a79e7bd7dc40d",
@@ -1570,12 +1570,12 @@
1570
1570
  "bytes": 196
1571
1571
  },
1572
1572
  "v2/durable-core/schemas/session/blockers.d.ts": {
1573
- "sha256": "c19d1baf5a89fe22c2fee23b1a4cd18bf9bb1d4d0402471bd3e32a6d121c1258",
1574
- "bytes": 10832
1573
+ "sha256": "2d517c69c169f111d5bede7270ff3b1ccd5d916e94fc2bde197d90b3ddef1d9b",
1574
+ "bytes": 11692
1575
1575
  },
1576
1576
  "v2/durable-core/schemas/session/blockers.js": {
1577
- "sha256": "460c3b9cb9a838d0e299357366ec9a9bc7545af38db975896ecad552ac933c84",
1578
- "bytes": 3396
1577
+ "sha256": "30a8dcdd58225bf20723d11286c3ec753b86653c59511e6f5869c898e1f52b9e",
1578
+ "bytes": 3484
1579
1579
  },
1580
1580
  "v2/durable-core/schemas/session/dag-topology.d.ts": {
1581
1581
  "sha256": "67fc952e5af8f364764996c62a685bf9db8e7d73727f639cbf87cb1b4f5d8dd6",
@@ -1586,20 +1586,20 @@
1586
1586
  "bytes": 2138
1587
1587
  },
1588
1588
  "v2/durable-core/schemas/session/events.d.ts": {
1589
- "sha256": "d3d4d17bf02181c51655c1c4835e2d4945c4f2903e89991b911bc3f445220b86",
1590
- "bytes": 72218
1589
+ "sha256": "9bb0857364918ef47dd379eef819b20c3d060536cf2c62aa4bf21caebabc2a25",
1590
+ "bytes": 73576
1591
1591
  },
1592
1592
  "v2/durable-core/schemas/session/events.js": {
1593
1593
  "sha256": "df053c99e92f16785864f7c91ce0de5eafd2a8d631e93cbb96a40cbfa4cdba14",
1594
1594
  "bytes": 11149
1595
1595
  },
1596
1596
  "v2/durable-core/schemas/session/gaps.d.ts": {
1597
- "sha256": "329c2f305581e61c319ccddc773fe313093e264c8b4b002c6ebb957bc3abe80f",
1598
- "bytes": 8341
1597
+ "sha256": "b96bd682a85a4bd4b70bf45c7d649914ab39308d208a38b2e812e330562bd990",
1598
+ "bytes": 8721
1599
1599
  },
1600
1600
  "v2/durable-core/schemas/session/gaps.js": {
1601
- "sha256": "2382fd80e49a2b7a6ad2c9e3010d7f5ef30169621ff142d4ce86f98efcfd5d57",
1602
- "bytes": 2023
1601
+ "sha256": "b57ac509c9cb6c13a5eb3ef7dd4d7bc97d072465613d31a0d24e5607525c2182",
1602
+ "bytes": 2069
1603
1603
  },
1604
1604
  "v2/durable-core/schemas/session/index.d.ts": {
1605
1605
  "sha256": "f4f500d33d212760f480d91fafd4474f7b12f9239a6c5e9c2d80d0fe96207b65",
@@ -3,5 +3,5 @@ import type { ToolContext, ToolResult } from './types.js';
3
3
  import type { PreValidateResult } from './validation/workflow-next-prevalidate.js';
4
4
  import type { WrappedToolHandler, McpCallToolResult } from './types/workflow-tool-edition.js';
5
5
  export declare function toMcpResult<T>(result: ToolResult<T>): McpCallToolResult;
6
- export declare function createHandler<TInput extends z.ZodType, TOutput>(schema: TInput, handler: (input: z.infer<TInput>, ctx: ToolContext) => Promise<ToolResult<TOutput>>): WrappedToolHandler;
6
+ export declare function createHandler<TInput extends z.ZodType, TOutput>(schema: TInput, handler: (input: z.infer<TInput>, ctx: ToolContext) => Promise<ToolResult<TOutput>>, shapeSchema?: z.ZodObject<z.ZodRawShape>): WrappedToolHandler;
7
7
  export declare function createValidatingHandler<TInput extends z.ZodType, TOutput>(schema: TInput, preValidate: (args: unknown) => PreValidateResult, handler: (input: z.infer<TInput>, ctx: ToolContext) => Promise<ToolResult<TOutput>>): WrappedToolHandler;
@@ -28,13 +28,14 @@ function toMcpResult(result) {
28
28
  };
29
29
  }
30
30
  }
31
- function createHandler(schema, handler) {
31
+ function createHandler(schema, handler, shapeSchema) {
32
32
  return async (args, ctx) => {
33
33
  const parseResult = schema.safeParse(args);
34
34
  if (!parseResult.success) {
35
- const suggestionResult = (0, index_js_1.generateSuggestions)(args, schema, index_js_1.DEFAULT_SUGGESTION_CONFIG);
35
+ const introspectionSchema = shapeSchema ?? schema;
36
+ const suggestionResult = (0, index_js_1.generateSuggestions)(args, introspectionSchema, index_js_1.DEFAULT_SUGGESTION_CONFIG);
36
37
  const suggestionDetails = (0, index_js_1.formatSuggestionDetails)(suggestionResult);
37
- const patchedTemplate = (0, index_js_1.patchTemplateForFailedOptionals)(suggestionDetails.correctTemplate ?? null, args, parseResult.error.errors, schema, index_js_1.DEFAULT_SUGGESTION_CONFIG.maxTemplateDepth);
38
+ const patchedTemplate = (0, index_js_1.patchTemplateForFailedOptionals)(suggestionDetails.correctTemplate ?? null, args, parseResult.error.errors, introspectionSchema, index_js_1.DEFAULT_SUGGESTION_CONFIG.maxTemplateDepth);
38
39
  const patchedDetails = patchedTemplate !== suggestionDetails.correctTemplate
39
40
  ? { ...suggestionDetails, correctTemplate: patchedTemplate }
40
41
  : suggestionDetails;
@@ -81,7 +81,10 @@ function executeAdvanceCore(args) {
81
81
  notesMarkdown: v.notesMarkdown,
82
82
  validation,
83
83
  });
84
- const reasonsRes = (0, blocking_decision_js_1.detectBlockingReasonsV1)({ outputRequirement });
84
+ const missingNotes = !v.notesOptional && !v.notesMarkdown?.trim()
85
+ ? { stepId: v.pendingStep.stepId }
86
+ : undefined;
87
+ const reasonsRes = (0, blocking_decision_js_1.detectBlockingReasonsV1)({ outputRequirement, missingNotes });
85
88
  if (reasonsRes.isErr()) {
86
89
  return errAsync({ kind: 'invariant_violation', message: reasonsRes.error.message });
87
90
  }
@@ -26,6 +26,7 @@ export interface ValidatedAdvanceInputs {
26
26
  readonly autonomy: string;
27
27
  readonly riskPolicy: string;
28
28
  } | undefined;
29
+ readonly notesOptional: boolean;
29
30
  }
30
31
  export declare function validateAdvanceInputs(args: {
31
32
  readonly truth: LoadedSessionTruthV2;
@@ -21,6 +21,8 @@ function validateAdvanceInputs(args) {
21
21
  const step = (0, workflow_js_1.getStepById)(pinnedWorkflow, pendingStep.stepId);
22
22
  const validationCriteria = step?.validationCriteria;
23
23
  const outputContract = step?.outputContract;
24
+ const notesOptional = outputContract !== undefined ||
25
+ (step !== null && step !== undefined && 'notesOptional' in step && step.notesOptional === true);
24
26
  const parentByNodeId = {};
25
27
  for (const e of truth.events) {
26
28
  if (e.kind !== constants_js_1.EVENT_KIND.NODE_CREATED)
@@ -54,5 +56,6 @@ function validateAdvanceInputs(args) {
54
56
  autonomy,
55
57
  riskPolicy,
56
58
  effectivePrefs,
59
+ notesOptional,
57
60
  });
58
61
  }
@@ -303,7 +303,7 @@ export declare const V2NextCallSchema: z.ZodNullable<z.ZodObject<{
303
303
  }>>;
304
304
  export declare const V2BlockerReportSchema: z.ZodEffects<z.ZodObject<{
305
305
  blockers: z.ZodReadonly<z.ZodArray<z.ZodObject<{
306
- code: z.ZodEnum<["USER_ONLY_DEPENDENCY", "MISSING_REQUIRED_OUTPUT", "INVALID_REQUIRED_OUTPUT", "REQUIRED_CAPABILITY_UNKNOWN", "REQUIRED_CAPABILITY_UNAVAILABLE", "INVARIANT_VIOLATION", "STORAGE_CORRUPTION_DETECTED"]>;
306
+ code: z.ZodEnum<["USER_ONLY_DEPENDENCY", "MISSING_REQUIRED_OUTPUT", "INVALID_REQUIRED_OUTPUT", "MISSING_REQUIRED_NOTES", "MISSING_CONTEXT_KEY", "CONTEXT_BUDGET_EXCEEDED", "REQUIRED_CAPABILITY_UNKNOWN", "REQUIRED_CAPABILITY_UNAVAILABLE", "INVARIANT_VIOLATION", "STORAGE_CORRUPTION_DETECTED"]>;
307
307
  pointer: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
308
308
  kind: z.ZodLiteral<"context_key">;
309
309
  key: z.ZodString;
@@ -351,7 +351,7 @@ export declare const V2BlockerReportSchema: z.ZodEffects<z.ZodObject<{
351
351
  suggestedFix: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
352
352
  }, "strip", z.ZodTypeAny, {
353
353
  message: string;
354
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
354
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
355
355
  pointer: {
356
356
  key: string;
357
357
  kind: "context_key";
@@ -370,7 +370,7 @@ export declare const V2BlockerReportSchema: z.ZodEffects<z.ZodObject<{
370
370
  suggestedFix?: string | undefined;
371
371
  }, {
372
372
  message: string;
373
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
373
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
374
374
  pointer: {
375
375
  key: string;
376
376
  kind: "context_key";
@@ -391,7 +391,7 @@ export declare const V2BlockerReportSchema: z.ZodEffects<z.ZodObject<{
391
391
  }, "strip", z.ZodTypeAny, {
392
392
  blockers: readonly {
393
393
  message: string;
394
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
394
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
395
395
  pointer: {
396
396
  key: string;
397
397
  kind: "context_key";
@@ -412,7 +412,7 @@ export declare const V2BlockerReportSchema: z.ZodEffects<z.ZodObject<{
412
412
  }, {
413
413
  blockers: readonly {
414
414
  message: string;
415
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
415
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
416
416
  pointer: {
417
417
  key: string;
418
418
  kind: "context_key";
@@ -433,7 +433,7 @@ export declare const V2BlockerReportSchema: z.ZodEffects<z.ZodObject<{
433
433
  }>, {
434
434
  blockers: readonly {
435
435
  message: string;
436
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
436
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
437
437
  pointer: {
438
438
  key: string;
439
439
  kind: "context_key";
@@ -454,7 +454,7 @@ export declare const V2BlockerReportSchema: z.ZodEffects<z.ZodObject<{
454
454
  }, {
455
455
  blockers: readonly {
456
456
  message: string;
457
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
457
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
458
458
  pointer: {
459
459
  key: string;
460
460
  kind: "context_key";
@@ -679,7 +679,7 @@ export declare const V2ContinueWorkflowOutputSchema: z.ZodEffects<z.ZodDiscrimin
679
679
  }>>;
680
680
  blockers: z.ZodEffects<z.ZodObject<{
681
681
  blockers: z.ZodReadonly<z.ZodArray<z.ZodObject<{
682
- code: z.ZodEnum<["USER_ONLY_DEPENDENCY", "MISSING_REQUIRED_OUTPUT", "INVALID_REQUIRED_OUTPUT", "REQUIRED_CAPABILITY_UNKNOWN", "REQUIRED_CAPABILITY_UNAVAILABLE", "INVARIANT_VIOLATION", "STORAGE_CORRUPTION_DETECTED"]>;
682
+ code: z.ZodEnum<["USER_ONLY_DEPENDENCY", "MISSING_REQUIRED_OUTPUT", "INVALID_REQUIRED_OUTPUT", "MISSING_REQUIRED_NOTES", "MISSING_CONTEXT_KEY", "CONTEXT_BUDGET_EXCEEDED", "REQUIRED_CAPABILITY_UNKNOWN", "REQUIRED_CAPABILITY_UNAVAILABLE", "INVARIANT_VIOLATION", "STORAGE_CORRUPTION_DETECTED"]>;
683
683
  pointer: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
684
684
  kind: z.ZodLiteral<"context_key">;
685
685
  key: z.ZodString;
@@ -727,7 +727,7 @@ export declare const V2ContinueWorkflowOutputSchema: z.ZodEffects<z.ZodDiscrimin
727
727
  suggestedFix: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
728
728
  }, "strip", z.ZodTypeAny, {
729
729
  message: string;
730
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
730
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
731
731
  pointer: {
732
732
  key: string;
733
733
  kind: "context_key";
@@ -746,7 +746,7 @@ export declare const V2ContinueWorkflowOutputSchema: z.ZodEffects<z.ZodDiscrimin
746
746
  suggestedFix?: string | undefined;
747
747
  }, {
748
748
  message: string;
749
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
749
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
750
750
  pointer: {
751
751
  key: string;
752
752
  kind: "context_key";
@@ -767,7 +767,7 @@ export declare const V2ContinueWorkflowOutputSchema: z.ZodEffects<z.ZodDiscrimin
767
767
  }, "strip", z.ZodTypeAny, {
768
768
  blockers: readonly {
769
769
  message: string;
770
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
770
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
771
771
  pointer: {
772
772
  key: string;
773
773
  kind: "context_key";
@@ -788,7 +788,7 @@ export declare const V2ContinueWorkflowOutputSchema: z.ZodEffects<z.ZodDiscrimin
788
788
  }, {
789
789
  blockers: readonly {
790
790
  message: string;
791
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
791
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
792
792
  pointer: {
793
793
  key: string;
794
794
  kind: "context_key";
@@ -809,7 +809,7 @@ export declare const V2ContinueWorkflowOutputSchema: z.ZodEffects<z.ZodDiscrimin
809
809
  }>, {
810
810
  blockers: readonly {
811
811
  message: string;
812
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
812
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
813
813
  pointer: {
814
814
  key: string;
815
815
  kind: "context_key";
@@ -830,7 +830,7 @@ export declare const V2ContinueWorkflowOutputSchema: z.ZodEffects<z.ZodDiscrimin
830
830
  }, {
831
831
  blockers: readonly {
832
832
  message: string;
833
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
833
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
834
834
  pointer: {
835
835
  key: string;
836
836
  kind: "context_key";
@@ -866,7 +866,7 @@ export declare const V2ContinueWorkflowOutputSchema: z.ZodEffects<z.ZodDiscrimin
866
866
  blockers: {
867
867
  blockers: readonly {
868
868
  message: string;
869
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
869
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
870
870
  pointer: {
871
871
  key: string;
872
872
  kind: "context_key";
@@ -921,7 +921,7 @@ export declare const V2ContinueWorkflowOutputSchema: z.ZodEffects<z.ZodDiscrimin
921
921
  blockers: {
922
922
  blockers: readonly {
923
923
  message: string;
924
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
924
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
925
925
  pointer: {
926
926
  key: string;
927
927
  kind: "context_key";
@@ -1003,7 +1003,7 @@ export declare const V2ContinueWorkflowOutputSchema: z.ZodEffects<z.ZodDiscrimin
1003
1003
  blockers: {
1004
1004
  blockers: readonly {
1005
1005
  message: string;
1006
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
1006
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
1007
1007
  pointer: {
1008
1008
  key: string;
1009
1009
  kind: "context_key";
@@ -1085,7 +1085,7 @@ export declare const V2ContinueWorkflowOutputSchema: z.ZodEffects<z.ZodDiscrimin
1085
1085
  blockers: {
1086
1086
  blockers: readonly {
1087
1087
  message: string;
1088
- code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
1088
+ code: "USER_ONLY_DEPENDENCY" | "MISSING_REQUIRED_OUTPUT" | "INVALID_REQUIRED_OUTPUT" | "MISSING_REQUIRED_NOTES" | "MISSING_CONTEXT_KEY" | "CONTEXT_BUDGET_EXCEEDED" | "REQUIRED_CAPABILITY_UNKNOWN" | "REQUIRED_CAPABILITY_UNAVAILABLE" | "INVARIANT_VIOLATION" | "STORAGE_CORRUPTION_DETECTED";
1089
1089
  pointer: {
1090
1090
  key: string;
1091
1091
  kind: "context_key";
@@ -115,6 +115,9 @@ const V2BlockerSchema = zod_1.z.object({
115
115
  'USER_ONLY_DEPENDENCY',
116
116
  'MISSING_REQUIRED_OUTPUT',
117
117
  'INVALID_REQUIRED_OUTPUT',
118
+ 'MISSING_REQUIRED_NOTES',
119
+ 'MISSING_CONTEXT_KEY',
120
+ 'CONTEXT_BUDGET_EXCEEDED',
118
121
  'REQUIRED_CAPABILITY_UNKNOWN',
119
122
  'REQUIRED_CAPABILITY_UNAVAILABLE',
120
123
  'INVARIANT_VIOLATION',
@@ -50,7 +50,7 @@ function buildV2ToolRegistry(buildTool) {
50
50
  list_workflows: (0, handler_factory_js_1.createHandler)(tools_js_1.V2ListWorkflowsInput, v2_workflow_js_1.handleV2ListWorkflows),
51
51
  inspect_workflow: (0, handler_factory_js_1.createHandler)(tools_js_1.V2InspectWorkflowInput, v2_workflow_js_1.handleV2InspectWorkflow),
52
52
  start_workflow: (0, handler_factory_js_1.createHandler)(tools_js_1.V2StartWorkflowInput, v2_execution_js_1.handleV2StartWorkflow),
53
- continue_workflow: (0, handler_factory_js_1.createHandler)(tools_js_1.V2ContinueWorkflowInput, v2_execution_js_1.handleV2ContinueWorkflow),
53
+ continue_workflow: (0, handler_factory_js_1.createHandler)(tools_js_1.V2ContinueWorkflowInput, v2_execution_js_1.handleV2ContinueWorkflow, tools_js_1.V2ContinueWorkflowInputShape),
54
54
  checkpoint_workflow: (0, handler_factory_js_1.createHandler)(tools_js_1.V2CheckpointWorkflowInput, v2_checkpoint_js_1.handleV2CheckpointWorkflow),
55
55
  resume_session: (0, handler_factory_js_1.createHandler)(tools_js_1.V2ResumeSessionInput, v2_resume_js_1.handleV2ResumeSession),
56
56
  };
@@ -27,6 +27,40 @@ export declare const V2StartWorkflowInput: z.ZodObject<{
27
27
  workspacePath?: string | undefined;
28
28
  }>;
29
29
  export type V2StartWorkflowInput = z.infer<typeof V2StartWorkflowInput>;
30
+ export declare const V2ContinueWorkflowInputShape: z.ZodObject<{
31
+ intent: z.ZodOptional<z.ZodEnum<["advance", "rehydrate"]>>;
32
+ stateToken: z.ZodString;
33
+ ackToken: z.ZodOptional<z.ZodString>;
34
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
35
+ output: z.ZodOptional<z.ZodObject<{
36
+ notesMarkdown: z.ZodOptional<z.ZodString>;
37
+ artifacts: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ notesMarkdown?: string | undefined;
40
+ artifacts?: unknown[] | undefined;
41
+ }, {
42
+ notesMarkdown?: string | undefined;
43
+ artifacts?: unknown[] | undefined;
44
+ }>>;
45
+ }, "strict", z.ZodTypeAny, {
46
+ stateToken: string;
47
+ context?: Record<string, unknown> | undefined;
48
+ output?: {
49
+ notesMarkdown?: string | undefined;
50
+ artifacts?: unknown[] | undefined;
51
+ } | undefined;
52
+ intent?: "advance" | "rehydrate" | undefined;
53
+ ackToken?: string | undefined;
54
+ }, {
55
+ stateToken: string;
56
+ context?: Record<string, unknown> | undefined;
57
+ output?: {
58
+ notesMarkdown?: string | undefined;
59
+ artifacts?: unknown[] | undefined;
60
+ } | undefined;
61
+ intent?: "advance" | "rehydrate" | undefined;
62
+ ackToken?: string | undefined;
63
+ }>;
30
64
  export declare const V2ContinueWorkflowInput: z.ZodPipeline<z.ZodEffects<z.ZodObject<{
31
65
  intent: z.ZodOptional<z.ZodEnum<["advance", "rehydrate"]>>;
32
66
  stateToken: z.ZodString;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.V2_TOOL_ANNOTATIONS = exports.V2_TOOL_TITLES = exports.V2CheckpointWorkflowInput = exports.V2ResumeSessionInput = exports.V2ContinueWorkflowInput = exports.V2StartWorkflowInput = exports.V2InspectWorkflowInput = exports.V2ListWorkflowsInput = void 0;
3
+ exports.V2_TOOL_ANNOTATIONS = exports.V2_TOOL_TITLES = exports.V2CheckpointWorkflowInput = exports.V2ResumeSessionInput = exports.V2ContinueWorkflowInput = exports.V2ContinueWorkflowInputShape = exports.V2StartWorkflowInput = exports.V2InspectWorkflowInput = exports.V2ListWorkflowsInput = void 0;
4
4
  const zod_1 = require("zod");
5
5
  exports.V2ListWorkflowsInput = zod_1.z.object({});
6
6
  exports.V2InspectWorkflowInput = zod_1.z.object({
@@ -15,7 +15,7 @@ exports.V2StartWorkflowInput = zod_1.z.object({
15
15
  .optional()
16
16
  .describe('Absolute path to your current workspace directory (e.g. the "Workspace:" value from your system parameters). Used to anchor this session to your workspace for future resume_session discovery. Pass this on every start_workflow call. If omitted, WorkRail uses the server process directory which may not match your workspace.'),
17
17
  });
18
- exports.V2ContinueWorkflowInput = zod_1.z.object({
18
+ exports.V2ContinueWorkflowInputShape = zod_1.z.object({
19
19
  intent: zod_1.z.enum(['advance', 'rehydrate']).optional().describe('What you want to do. Auto-inferred from ackToken if omitted: ' +
20
20
  'ackToken present → "advance", ackToken absent → "rehydrate". ' +
21
21
  '"advance": I completed the current step — requires ackToken. ' +
@@ -30,10 +30,13 @@ exports.V2ContinueWorkflowInput = zod_1.z.object({
30
30
  })
31
31
  .optional()
32
32
  .describe('Durable output to attach to the current node. Only valid when intent is "advance".'),
33
- }).strict().transform((data) => {
33
+ }).strict();
34
+ exports.V2ContinueWorkflowInput = exports.V2ContinueWorkflowInputShape
35
+ .transform((data) => {
34
36
  const intent = data.intent ?? (data.ackToken ? 'advance' : 'rehydrate');
35
37
  return { ...data, intent };
36
- }).pipe(zod_1.z.custom().superRefine((data, ctx) => {
38
+ })
39
+ .pipe(zod_1.z.custom().superRefine((data, ctx) => {
37
40
  if (data.intent === 'advance' && !data.ackToken) {
38
41
  ctx.addIssue({
39
42
  code: zod_1.z.ZodIssueCode.custom,
@@ -3,6 +3,6 @@ export declare function extractExpectedKeys(schema: z.ZodType): readonly string[
3
3
  export declare function extractRequiredKeys(schema: z.ZodType): readonly string[];
4
4
  export declare function findUnknownKeys(args: unknown, schema: z.ZodType): readonly string[];
5
5
  export declare function findMissingRequiredKeys(args: unknown, schema: z.ZodType): readonly string[];
6
- export declare function generateExampleValue(schema: z.ZodType, depth?: number, maxDepth?: number): unknown;
7
- export declare function generateTemplate(schema: z.ZodType, maxDepth?: number): Readonly<Record<string, unknown>> | null;
6
+ export declare function generateExampleValue(schema: z.ZodType, depth?: number, maxDepth?: number, includeOptional?: boolean): unknown;
7
+ export declare function generateTemplate(schema: z.ZodType, maxDepth?: number, includeOptional?: boolean): Readonly<Record<string, unknown>> | null;
8
8
  export declare function extractEnumValues(schema: z.ZodType, path: string): readonly string[];