@exaudeus/workrail 3.10.0 → 3.11.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 (59) hide show
  1. package/dist/application/services/validation-engine.js +134 -0
  2. package/dist/application/services/workflow-compiler.js +54 -0
  3. package/dist/manifest.json +138 -74
  4. package/dist/mcp/handlers/v2-advance-core/assessment-consequences.d.ts +14 -0
  5. package/dist/mcp/handlers/v2-advance-core/assessment-consequences.js +27 -0
  6. package/dist/mcp/handlers/v2-advance-core/assessment-validation.d.ts +16 -0
  7. package/dist/mcp/handlers/v2-advance-core/assessment-validation.js +213 -0
  8. package/dist/mcp/handlers/v2-advance-core/event-builders.d.ts +1 -0
  9. package/dist/mcp/handlers/v2-advance-core/event-builders.js +3 -2
  10. package/dist/mcp/handlers/v2-advance-core/index.js +23 -8
  11. package/dist/mcp/handlers/v2-advance-core/input-validation.d.ts +9 -1
  12. package/dist/mcp/handlers/v2-advance-core/input-validation.js +22 -2
  13. package/dist/mcp/handlers/v2-advance-core/outcome-blocked.d.ts +2 -0
  14. package/dist/mcp/handlers/v2-advance-core/outcome-blocked.js +69 -19
  15. package/dist/mcp/handlers/v2-advance-core/outcome-success.js +22 -0
  16. package/dist/mcp/handlers/v2-execution/replay.js +7 -0
  17. package/dist/mcp/output-schemas.d.ts +156 -42
  18. package/dist/mcp/output-schemas.js +15 -0
  19. package/dist/mcp/v2-response-formatter.js +7 -1
  20. package/dist/types/workflow-definition.d.ts +26 -0
  21. package/dist/types/workflow-definition.js +16 -1
  22. package/dist/v2/durable-core/constants.d.ts +2 -0
  23. package/dist/v2/durable-core/constants.js +2 -0
  24. package/dist/v2/durable-core/domain/assessment-consequence-event-builder.d.ts +23 -0
  25. package/dist/v2/durable-core/domain/assessment-consequence-event-builder.js +36 -0
  26. package/dist/v2/durable-core/domain/assessment-record.d.ts +12 -0
  27. package/dist/v2/durable-core/domain/assessment-record.js +2 -0
  28. package/dist/v2/durable-core/domain/assessment-recorded-event-builder.d.ts +22 -0
  29. package/dist/v2/durable-core/domain/assessment-recorded-event-builder.js +38 -0
  30. package/dist/v2/durable-core/domain/blocked-node-builder.d.ts +1 -1
  31. package/dist/v2/durable-core/domain/blocked-node-builder.js +8 -0
  32. package/dist/v2/durable-core/domain/blocking-decision.d.ts +6 -0
  33. package/dist/v2/durable-core/domain/blocking-decision.js +15 -0
  34. package/dist/v2/durable-core/domain/prompt-renderer.js +25 -1
  35. package/dist/v2/durable-core/domain/reason-model.d.ts +12 -2
  36. package/dist/v2/durable-core/domain/reason-model.js +27 -2
  37. package/dist/v2/durable-core/domain/risk-policy-guardrails.js +1 -0
  38. package/dist/v2/durable-core/domain/validation-criteria-validator.d.ts +1 -0
  39. package/dist/v2/durable-core/domain/validation-criteria-validator.js +11 -0
  40. package/dist/v2/durable-core/schemas/artifacts/assessment.d.ts +55 -0
  41. package/dist/v2/durable-core/schemas/artifacts/assessment.js +29 -0
  42. package/dist/v2/durable-core/schemas/artifacts/index.d.ts +2 -1
  43. package/dist/v2/durable-core/schemas/artifacts/index.js +8 -1
  44. package/dist/v2/durable-core/schemas/compiled-workflow/index.d.ts +24 -24
  45. package/dist/v2/durable-core/schemas/execution-snapshot/blocked-snapshot.d.ts +141 -21
  46. package/dist/v2/durable-core/schemas/execution-snapshot/blocked-snapshot.js +10 -1
  47. package/dist/v2/durable-core/schemas/execution-snapshot/execution-snapshot.v1.d.ts +729 -171
  48. package/dist/v2/durable-core/schemas/export-bundle/index.d.ts +1442 -202
  49. package/dist/v2/durable-core/schemas/session/events.d.ts +231 -8
  50. package/dist/v2/durable-core/schemas/session/events.js +36 -0
  51. package/dist/v2/durable-core/schemas/session/gaps.d.ts +2 -2
  52. package/dist/v2/projections/assessment-consequences.d.ts +19 -0
  53. package/dist/v2/projections/assessment-consequences.js +33 -0
  54. package/dist/v2/projections/assessments.d.ts +21 -0
  55. package/dist/v2/projections/assessments.js +35 -0
  56. package/package.json +1 -1
  57. package/spec/workflow.schema.json +110 -0
  58. package/workflows/bug-investigation.agentic.v2.json +28 -2
  59. package/workflows/test-artifact-loop-control.json +28 -2
@@ -589,6 +589,59 @@ let ValidationEngine = ValidationEngine_1 = class ValidationEngine {
589
589
  }
590
590
  }
591
591
  }
592
+ const assessments = workflow.definition.assessments ?? [];
593
+ const declaredAssessmentIds = new Set();
594
+ if (assessments.length > 0) {
595
+ for (const assessment of assessments) {
596
+ if (!assessment.id || typeof assessment.id !== 'string') {
597
+ issues.push(`Assessment definition has missing or empty id`);
598
+ continue;
599
+ }
600
+ if (declaredAssessmentIds.has(assessment.id)) {
601
+ issues.push(`assessments has duplicate id '${assessment.id}'`);
602
+ suggestions.push('Each assessment id must be unique within assessments');
603
+ }
604
+ declaredAssessmentIds.add(assessment.id);
605
+ if (!assessment.purpose || typeof assessment.purpose !== 'string') {
606
+ issues.push(`Assessment '${assessment.id}': purpose must be a non-empty string`);
607
+ }
608
+ if (!Array.isArray(assessment.dimensions) || assessment.dimensions.length === 0) {
609
+ issues.push(`Assessment '${assessment.id}': dimensions must contain at least one dimension`);
610
+ continue;
611
+ }
612
+ const seenDimensionIds = new Set();
613
+ for (const dimension of assessment.dimensions) {
614
+ if (!dimension.id || typeof dimension.id !== 'string') {
615
+ issues.push(`Assessment '${assessment.id}': dimension has missing or empty id`);
616
+ continue;
617
+ }
618
+ if (seenDimensionIds.has(dimension.id)) {
619
+ issues.push(`Assessment '${assessment.id}': dimensions has duplicate id '${dimension.id}'`);
620
+ suggestions.push(`Each dimension id must be unique within assessment '${assessment.id}'`);
621
+ }
622
+ seenDimensionIds.add(dimension.id);
623
+ if (!dimension.purpose || typeof dimension.purpose !== 'string') {
624
+ issues.push(`Assessment '${assessment.id}' dimension '${dimension.id}': purpose must be a non-empty string`);
625
+ }
626
+ if (!Array.isArray(dimension.levels) || dimension.levels.length < 2) {
627
+ issues.push(`Assessment '${assessment.id}' dimension '${dimension.id}': levels must contain at least two values`);
628
+ continue;
629
+ }
630
+ const seenLevels = new Set();
631
+ for (const level of dimension.levels) {
632
+ if (!level || typeof level !== 'string') {
633
+ issues.push(`Assessment '${assessment.id}' dimension '${dimension.id}': levels must be non-empty strings`);
634
+ continue;
635
+ }
636
+ if (seenLevels.has(level)) {
637
+ issues.push(`Assessment '${assessment.id}' dimension '${dimension.id}': levels has duplicate value '${level}'`);
638
+ suggestions.push(`Each level must be unique within assessment '${assessment.id}' dimension '${dimension.id}'`);
639
+ }
640
+ seenLevels.add(level);
641
+ }
642
+ }
643
+ }
644
+ }
592
645
  const stepIds = new Set();
593
646
  for (const step of workflow.definition.steps) {
594
647
  if (stepIds.has(step.id)) {
@@ -597,6 +650,75 @@ let ValidationEngine = ValidationEngine_1 = class ValidationEngine {
597
650
  }
598
651
  stepIds.add(step.id);
599
652
  }
653
+ const validateAssessmentRefsForStep = (step, stepLabel) => {
654
+ if (step.assessmentRefs === undefined)
655
+ return;
656
+ if (step.assessmentRefs.length === 0) {
657
+ issues.push(`${stepLabel}: assessmentRefs must not be empty when declared`);
658
+ }
659
+ if (declaredAssessmentIds.size === 0) {
660
+ issues.push(`${stepLabel}: declares assessmentRefs but workflow declares no assessments`);
661
+ suggestions.push('Add an assessments array to the workflow definition');
662
+ return;
663
+ }
664
+ const seenAssessmentRefs = new Set();
665
+ for (const assessmentRef of step.assessmentRefs) {
666
+ if (!assessmentRef || typeof assessmentRef !== 'string') {
667
+ issues.push(`${stepLabel}: assessmentRefs must contain non-empty strings`);
668
+ continue;
669
+ }
670
+ if (seenAssessmentRefs.has(assessmentRef)) {
671
+ issues.push(`${stepLabel}: assessmentRefs has duplicate value '${assessmentRef}'`);
672
+ suggestions.push(`Each assessmentRef must be unique within ${stepLabel}`);
673
+ }
674
+ seenAssessmentRefs.add(assessmentRef);
675
+ if (!declaredAssessmentIds.has(assessmentRef)) {
676
+ issues.push(`${stepLabel}: assessmentRef '${assessmentRef}' references undeclared assessment. Declared assessments: [${[...declaredAssessmentIds].join(', ')}]`);
677
+ suggestions.push(`Add an assessment with id '${assessmentRef}' to the workflow definition`);
678
+ }
679
+ }
680
+ };
681
+ const validateAssessmentConsequencesForStep = (step, stepLabel) => {
682
+ if (step.assessmentConsequences === undefined)
683
+ return;
684
+ if (step.assessmentConsequences.length === 0) {
685
+ issues.push(`${stepLabel}: assessmentConsequences must not be empty when declared`);
686
+ return;
687
+ }
688
+ if (!step.assessmentRefs || step.assessmentRefs.length !== 1) {
689
+ issues.push(`${stepLabel}: assessmentConsequences require exactly one assessmentRef on the same step`);
690
+ suggestions.push(`Add exactly one assessmentRef to ${stepLabel} before declaring assessmentConsequences`);
691
+ return;
692
+ }
693
+ if (step.assessmentConsequences.length > 1) {
694
+ issues.push(`${stepLabel}: v1 assessment support allows exactly one assessment consequence per step`);
695
+ suggestions.push(`Reduce assessmentConsequences on ${stepLabel} to a single declaration`);
696
+ }
697
+ const assessmentDefinition = assessments.find(assessment => assessment.id === step.assessmentRefs?.[0]);
698
+ if (!assessmentDefinition)
699
+ return;
700
+ for (const consequence of step.assessmentConsequences) {
701
+ const trigger = consequence.when;
702
+ const effect = consequence.effect;
703
+ const dimension = assessmentDefinition.dimensions.find(candidate => candidate.id === trigger.dimensionId);
704
+ if (!dimension) {
705
+ issues.push(`${stepLabel}: assessment consequence references unknown dimension '${trigger.dimensionId}' for assessment '${assessmentDefinition.id}'`);
706
+ suggestions.push(`Use one of the declared dimensions for assessment '${assessmentDefinition.id}': ${assessmentDefinition.dimensions.map(d => d.id).join(', ')}`);
707
+ continue;
708
+ }
709
+ if (!dimension.levels.includes(trigger.equalsLevel)) {
710
+ issues.push(`${stepLabel}: assessment consequence references undeclared level '${trigger.equalsLevel}' for dimension '${trigger.dimensionId}'`);
711
+ suggestions.push(`Use one of the declared levels for dimension '${trigger.dimensionId}': ${dimension.levels.join(', ')}`);
712
+ }
713
+ if (effect.kind !== 'require_followup') {
714
+ issues.push(`${stepLabel}: unsupported assessment consequence effect '${String(effect.kind)}'`);
715
+ suggestions.push(`Use the supported v1 effect kind 'require_followup'`);
716
+ }
717
+ if (!effect.guidance || typeof effect.guidance !== 'string') {
718
+ issues.push(`${stepLabel}: assessment consequence guidance must be a non-empty string`);
719
+ }
720
+ }
721
+ };
600
722
  for (const step of workflow.definition.steps) {
601
723
  if ((0, workflow_definition_1.isLoopStepDefinition)(step)) {
602
724
  const loopResult = this.validateLoopStep(step, workflow);
@@ -609,6 +731,12 @@ let ValidationEngine = ValidationEngine_1 = class ValidationEngine {
609
731
  info.push(...loopResult.info.map(i => `Step '${step.id}': ${i}`));
610
732
  }
611
733
  this.collectQuotedJsonValidationMessageWarnings(step, `Step '${step.id}'`, warnings);
734
+ if (Array.isArray(step.body)) {
735
+ for (const inlineStep of step.body) {
736
+ validateAssessmentRefsForStep(inlineStep, `Loop body step '${inlineStep.id}' in loop '${step.id}'`);
737
+ validateAssessmentConsequencesForStep(inlineStep, `Loop body step '${inlineStep.id}' in loop '${step.id}'`);
738
+ }
739
+ }
612
740
  }
613
741
  else {
614
742
  if (!step.id) {
@@ -652,6 +780,12 @@ let ValidationEngine = ValidationEngine_1 = class ValidationEngine {
652
780
  }
653
781
  }
654
782
  }
783
+ validateAssessmentRefsForStep(typedStep, `Step '${step.id}'`);
784
+ if (typedStep.assessmentRefs !== undefined && typedStep.assessmentRefs.length > 1) {
785
+ issues.push(`Step '${step.id}': v1 assessment support allows exactly one assessmentRef per step`);
786
+ suggestions.push(`Reduce assessmentRefs on step '${step.id}' to a single assessment id`);
787
+ }
788
+ validateAssessmentConsequencesForStep(typedStep, `Step '${step.id}'`);
655
789
  const callValidation = this.validateStepFunctionCalls(step, workflow.definition.functionDefinitions || []);
656
790
  if (!callValidation.valid) {
657
791
  issues.push(...callValidation.issues.map(i => `Step '${step.id}': ${i}`));
@@ -123,6 +123,46 @@ let WorkflowCompiler = class WorkflowCompiler {
123
123
  `Known contracts: ${index_1.LOOP_CONTROL_CONTRACT_REF}`));
124
124
  }
125
125
  }
126
+ const declaredAssessmentIds = new Set((workflow.definition.assessments ?? []).map(assessment => assessment.id));
127
+ for (const step of steps) {
128
+ const assessmentRefs = step.assessmentRefs;
129
+ if (!assessmentRefs)
130
+ continue;
131
+ for (const assessmentRef of assessmentRefs) {
132
+ if (!declaredAssessmentIds.has(assessmentRef)) {
133
+ return (0, neverthrow_1.err)(error_1.Err.invalidState(`Step '${step.id}' declares unknown assessmentRef '${assessmentRef}'. ` +
134
+ `Declared assessments: ${[...declaredAssessmentIds].join(', ')}`));
135
+ }
136
+ }
137
+ }
138
+ for (const step of steps) {
139
+ const typedStep = step;
140
+ const assessmentConsequences = typedStep.assessmentConsequences;
141
+ if (!assessmentConsequences)
142
+ continue;
143
+ if (!typedStep.assessmentRefs || typedStep.assessmentRefs.length !== 1) {
144
+ return (0, neverthrow_1.err)(error_1.Err.invalidState(`Step '${step.id}' declares assessmentConsequences but does not declare exactly one assessmentRef`));
145
+ }
146
+ const assessment = (workflow.definition.assessments ?? []).find(candidate => candidate.id === typedStep.assessmentRefs?.[0]);
147
+ if (!assessment) {
148
+ return (0, neverthrow_1.err)(error_1.Err.invalidState(`Step '${step.id}' declares assessmentConsequences for unknown assessmentRef '${typedStep.assessmentRefs[0]}'`));
149
+ }
150
+ if (assessmentConsequences.length > 1) {
151
+ return (0, neverthrow_1.err)(error_1.Err.invalidState(`Step '${step.id}' declares ${assessmentConsequences.length} assessment consequences. V1 supports exactly one assessment consequence per step.`));
152
+ }
153
+ for (const consequence of assessmentConsequences) {
154
+ const dimension = assessment.dimensions.find(candidate => candidate.id === consequence.when.dimensionId);
155
+ if (!dimension) {
156
+ return (0, neverthrow_1.err)(error_1.Err.invalidState(`Step '${step.id}' declares consequence on unknown dimension '${consequence.when.dimensionId}' for assessment '${assessment.id}'`));
157
+ }
158
+ if (!dimension.levels.includes(consequence.when.equalsLevel)) {
159
+ return (0, neverthrow_1.err)(error_1.Err.invalidState(`Step '${step.id}' declares consequence on unsupported level '${consequence.when.equalsLevel}' for dimension '${consequence.when.dimensionId}'. Declared levels: ${dimension.levels.join(', ')}`));
160
+ }
161
+ if (consequence.effect.kind !== 'require_followup') {
162
+ return (0, neverthrow_1.err)(error_1.Err.invalidState(`Step '${step.id}' declares unsupported assessment consequence effect '${String(consequence.effect.kind)}'`));
163
+ }
164
+ }
165
+ }
126
166
  const compiledLoops = new Map();
127
167
  const loopBodyStepIds = new Set();
128
168
  for (const step of steps) {
@@ -139,6 +179,20 @@ let WorkflowCompiler = class WorkflowCompiler {
139
179
  return (0, neverthrow_1.err)(error_1.Err.invalidState(`Loop body step '${bodyStep.id}' in loop '${loop.id}' declares unknown outputContract.contractRef '${ref}'. ` +
140
180
  `Known contracts: ${index_1.LOOP_CONTROL_CONTRACT_REF}`));
141
181
  }
182
+ const assessmentRefs = bodyStep.assessmentRefs;
183
+ if (assessmentRefs) {
184
+ for (const assessmentRef of assessmentRefs) {
185
+ if (!declaredAssessmentIds.has(assessmentRef)) {
186
+ return (0, neverthrow_1.err)(error_1.Err.invalidState(`Loop body step '${bodyStep.id}' in loop '${loop.id}' declares unknown assessmentRef '${assessmentRef}'. ` +
187
+ `Declared assessments: ${[...declaredAssessmentIds].join(', ')}`));
188
+ }
189
+ }
190
+ }
191
+ if (bodyStep.assessmentConsequences) {
192
+ if (!bodyStep.assessmentRefs || bodyStep.assessmentRefs.length !== 1) {
193
+ return (0, neverthrow_1.err)(error_1.Err.invalidState(`Loop body step '${bodyStep.id}' in loop '${loop.id}' declares assessmentConsequences but does not declare exactly one assessmentRef`));
194
+ }
195
+ }
142
196
  }
143
197
  const conditionSource = this.deriveConditionSource(loop, bodyResolved.value);
144
198
  compiledLoops.set(loop.id, {
@@ -126,16 +126,16 @@
126
126
  "bytes": 2122
127
127
  },
128
128
  "application/services/validation-engine.js": {
129
- "sha256": "05edc2d65f29fcdbb0a87738ee575dae06423dbb044d7af6bac56d7dba7dbede",
130
- "bytes": 40905
129
+ "sha256": "0d9dd22255122ab03695f229682b4f549497853aeeea2b15ee525c0278307881",
130
+ "bytes": 49615
131
131
  },
132
132
  "application/services/workflow-compiler.d.ts": {
133
133
  "sha256": "f51443e1c3e8e079a972dd032e8de3bcde7b82d891e9a3621a6357cc4fc0e30d",
134
134
  "bytes": 1718
135
135
  },
136
136
  "application/services/workflow-compiler.js": {
137
- "sha256": "af1354e5a3598d8596b5f8be02b30888e6366842e82f26e57f9129a6095b6c8c",
138
- "bytes": 10767
137
+ "sha256": "e2f2c832d6b714a5e41b147f51a58e0a3b7b63776917f4c8ff745741a02ad0cd",
138
+ "bytes": 14693
139
139
  },
140
140
  "application/services/workflow-interpreter.d.ts": {
141
141
  "sha256": "56b5b5ad06d42096deba9f0abe7642c18a355a1e598749aab1730df4e9847674",
@@ -733,45 +733,61 @@
733
733
  "sha256": "27b84fb8e8a5eb3d9652fbd36ed04d97dea28bb9497614b9b17b1aadb4259d0f",
734
734
  "bytes": 306
735
735
  },
736
+ "mcp/handlers/v2-advance-core/assessment-consequences.d.ts": {
737
+ "sha256": "74bfc4a2e54a370726ba28f46cf622000d3c92e74a97e604485900747c19c2c8",
738
+ "bytes": 831
739
+ },
740
+ "mcp/handlers/v2-advance-core/assessment-consequences.js": {
741
+ "sha256": "9e2a14687ee9e1ddebb57017fc3e8a5c924165866328f74ec33309dba0286b5d",
742
+ "bytes": 1186
743
+ },
744
+ "mcp/handlers/v2-advance-core/assessment-validation.d.ts": {
745
+ "sha256": "5721ca106bbbdddef33db1d392bbcfcaccd7c158c61255a8e578611b30d0efb9",
746
+ "bytes": 996
747
+ },
748
+ "mcp/handlers/v2-advance-core/assessment-validation.js": {
749
+ "sha256": "351461f5c0396e1164c31510b6447b341f8fab67cd5b222afb7cc53a7a9ab83f",
750
+ "bytes": 9229
751
+ },
736
752
  "mcp/handlers/v2-advance-core/event-builders.d.ts": {
737
- "sha256": "70ebbe3fcbf0059cd2bcbf7fb9fc02e128be8c15c15b9ac3f5a1d90dd5b377a9",
738
- "bytes": 2464
753
+ "sha256": "f1b55d2ee5bc003136470a8ebda67a866f58baf61c852ce07b653678970444b7",
754
+ "bytes": 2522
739
755
  },
740
756
  "mcp/handlers/v2-advance-core/event-builders.js": {
741
- "sha256": "cb510635b173965f6cb2af312289f0903600a7483376b8b7156351f5bcf1fbd2",
742
- "bytes": 5774
757
+ "sha256": "14489478832908bebcf09024d68ac7560c6946d89e28963c1af61230ba87be38",
758
+ "bytes": 5890
743
759
  },
744
760
  "mcp/handlers/v2-advance-core/index.d.ts": {
745
761
  "sha256": "7a641c5419b4f273feff454d465bb5c5f3b2c349cc5e0032ab41ab3c3ebd033f",
746
762
  "bytes": 3448
747
763
  },
748
764
  "mcp/handlers/v2-advance-core/index.js": {
749
- "sha256": "bcdaa5e283da9def40695b6c4b529b7dcc0861d748133377bb9ed62bdd28a2d2",
750
- "bytes": 7107
765
+ "sha256": "77974b05b56030ccd5a9b9cb959d082292e51dc37a88c5106aee5d4bc03d418c",
766
+ "bytes": 7945
751
767
  },
752
768
  "mcp/handlers/v2-advance-core/input-validation.d.ts": {
753
- "sha256": "d736f163f6673b30f653c63336a287cdfe99c9f58b601c7220ce441590f802ba",
754
- "bytes": 2081
769
+ "sha256": "be29f20b58a9f79a314a510dd9bc6ea1272a36419c67c65f68ef83d87f082309",
770
+ "bytes": 2785
755
771
  },
756
772
  "mcp/handlers/v2-advance-core/input-validation.js": {
757
- "sha256": "3ddc086926fbc2be02cf52115370c221883c542f89ab256ee52388d115b7ae83",
758
- "bytes": 3316
773
+ "sha256": "e8825974bb326a4e152259a23a007177e7bb505b4293823b96d4a97032fa045c",
774
+ "bytes": 4457
759
775
  },
760
776
  "mcp/handlers/v2-advance-core/outcome-blocked.d.ts": {
761
- "sha256": "4f49a588027929875a98c1212de40201512a023d4bf230f8d9e075cbdfa8421d",
762
- "bytes": 1014
777
+ "sha256": "4ac1452656965c7f5a191b72f7d6c0691bc6480f65c3c1e9c675203256650579",
778
+ "bytes": 1123
763
779
  },
764
780
  "mcp/handlers/v2-advance-core/outcome-blocked.js": {
765
- "sha256": "78e3c2c6dd5352dfb90ec9a89aeab1692cdb3aea02f89522f34f748aa68a3487",
766
- "bytes": 3400
781
+ "sha256": "3e1b7c95432ed325a0f0494b72154146877cc437804bf4504a71c702095ac45e",
782
+ "bytes": 6090
767
783
  },
768
784
  "mcp/handlers/v2-advance-core/outcome-success.d.ts": {
769
785
  "sha256": "da1bcf2d275ba9f1c0f073446f3c87b67394161b0b69c669f70c758bc597c8be",
770
786
  "bytes": 936
771
787
  },
772
788
  "mcp/handlers/v2-advance-core/outcome-success.js": {
773
- "sha256": "b0e2f52b8843b067b1ca1c3aa6e797d3b6ad7bf175c46b1f036e70fc2174f992",
774
- "bytes": 6129
789
+ "sha256": "9356cb7cfb1e436c59945e9cf02b0179344f2c3605b9359980c6b7520f3adfb6",
790
+ "bytes": 7523
775
791
  },
776
792
  "mcp/handlers/v2-advance-events.d.ts": {
777
793
  "sha256": "02cdb52a2c16dd619645b5496caf0880e57937bf21ea9efe44e6cd195cd43b94",
@@ -858,8 +874,8 @@
858
874
  "bytes": 2570
859
875
  },
860
876
  "mcp/handlers/v2-execution/replay.js": {
861
- "sha256": "d6b5c83d5fffc88de425c64aa6571e7a469af4ee87e0088471c1ef05ff471b5e",
862
- "bytes": 8654
877
+ "sha256": "b801c9e38ba09be14774295c3eee264a6b6d840afb03aa679500e5e050ce1bcb",
878
+ "bytes": 9025
863
879
  },
864
880
  "mcp/handlers/v2-execution/start.d.ts": {
865
881
  "sha256": "14e91fa5531c3bbc05fd96157633d7de7cb4ccb8b85dfaad9c077afbe440a145",
@@ -942,12 +958,12 @@
942
958
  "bytes": 7991
943
959
  },
944
960
  "mcp/output-schemas.d.ts": {
945
- "sha256": "37e72221eb151903529bc2203f05d0504584980c441086397a1a00f72d910501",
946
- "bytes": 68013
961
+ "sha256": "f99509572620ccb0e45aea6ff1e4453d6197863854e46ac0f7b5f0bebb30f1c6",
962
+ "bytes": 72272
947
963
  },
948
964
  "mcp/output-schemas.js": {
949
- "sha256": "d8e73b9f2722193eac8f68887a11644752efb35d341775dd18296f51cc1de26f",
950
- "bytes": 15428
965
+ "sha256": "507b37eff083cd0b79d87f99afcbeef23bf916e8b10b695660afd2fef5a0ab6b",
966
+ "bytes": 16020
951
967
  },
952
968
  "mcp/render-envelope.d.ts": {
953
969
  "sha256": "22e83e1aba52968a7136cf289125a217b5f462a5a66a1eebe4669006e3326fdb",
@@ -1090,8 +1106,8 @@
1090
1106
  "bytes": 527
1091
1107
  },
1092
1108
  "mcp/v2-response-formatter.js": {
1093
- "sha256": "308cc7c1fedd491f5d38607869d4b4e1196bfcf450835a53d52154827b323e23",
1094
- "bytes": 22402
1109
+ "sha256": "b730d868ce6e1836894ca5da53fc9b9848082c4c2b466aa173c0e07ec48215e5",
1110
+ "bytes": 22672
1095
1111
  },
1096
1112
  "mcp/v2/tool-registry.d.ts": {
1097
1113
  "sha256": "d4d4927728c3cab1c014661d499dd0119538371bc6c5e821a4cd31df7abebedf",
@@ -1334,12 +1350,12 @@
1334
1350
  "bytes": 395
1335
1351
  },
1336
1352
  "types/workflow-definition.d.ts": {
1337
- "sha256": "0ef5f195dfb9783cf0fa73ee9a7523efd56816f6174a530cc24c3cb6468e5ce0",
1338
- "bytes": 4823
1353
+ "sha256": "052ef59dd8ee28dc2648eb5f30a60023af18bb92dcde9b0664cc035e42ca4f52",
1354
+ "bytes": 5796
1339
1355
  },
1340
1356
  "types/workflow-definition.js": {
1341
- "sha256": "1099b87129abeb986e19d5ec03006eaa83cbed9ab902e2b4401363a9e04b42dc",
1342
- "bytes": 1995
1357
+ "sha256": "204e7500d3d0dc91b1716199efb89af4776fb488546661e809f76be9333ea65c",
1358
+ "bytes": 2751
1343
1359
  },
1344
1360
  "types/workflow-source.d.ts": {
1345
1361
  "sha256": "ee439c36ac3002780837ff393120d08a1c21ef2641421cdf72f0e1449d0211eb",
@@ -1446,12 +1462,12 @@
1446
1462
  "bytes": 447
1447
1463
  },
1448
1464
  "v2/durable-core/constants.d.ts": {
1449
- "sha256": "60311085ea51d86307877bd952623effcafeddf935fbe0f2cde8a21a165dd932",
1450
- "bytes": 3754
1465
+ "sha256": "6cc04b9df73eab34040758bf14faff83038330971180452e3776fae15ff77076",
1466
+ "bytes": 3890
1451
1467
  },
1452
1468
  "v2/durable-core/constants.js": {
1453
- "sha256": "41e0aabd3754c79c9453c8496128610b1bd4a328cf7f55c4f0a8d7bc527c94a2",
1454
- "bytes": 3642
1469
+ "sha256": "f64d1ec078cea9acfb8feb3681ac1cb4d01a83063a85cabb8c518d26c807cb46",
1470
+ "bytes": 3760
1455
1471
  },
1456
1472
  "v2/durable-core/domain/ack-advance-append-plan.d.ts": {
1457
1473
  "sha256": "2e802606656a0c1938192e5533aa46c74bc42789b5c315c79f6de4850017b30e",
@@ -1469,6 +1485,30 @@
1469
1485
  "sha256": "2bfc928afd5c11882f219e17db729cb18123952873312e12b9857697998061e6",
1470
1486
  "bytes": 3749
1471
1487
  },
1488
+ "v2/durable-core/domain/assessment-consequence-event-builder.d.ts": {
1489
+ "sha256": "9f35e91667653fe2228ccf199d1620c233a3291e7e7705931b116b250e94cef3",
1490
+ "bytes": 826
1491
+ },
1492
+ "v2/durable-core/domain/assessment-consequence-event-builder.js": {
1493
+ "sha256": "8a635f6c75777e58b0092e9e5394637cc15f64e97d987941f9de28b349c0bafb",
1494
+ "bytes": 1791
1495
+ },
1496
+ "v2/durable-core/domain/assessment-record.d.ts": {
1497
+ "sha256": "f4a302047c05850d7bbc42718d8f512db9d43cb456758b695d08f5b997856a9f",
1498
+ "bytes": 425
1499
+ },
1500
+ "v2/durable-core/domain/assessment-record.js": {
1501
+ "sha256": "d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230",
1502
+ "bytes": 77
1503
+ },
1504
+ "v2/durable-core/domain/assessment-recorded-event-builder.d.ts": {
1505
+ "sha256": "50371f5c496028c835d2f5b3508914ba1643f14fe2b4d2d78eb29347719a6bc7",
1506
+ "bytes": 824
1507
+ },
1508
+ "v2/durable-core/domain/assessment-recorded-event-builder.js": {
1509
+ "sha256": "070adad6e9bbb7abb3650c84f8e66535e7e9076783a67b18088bfaf970920072",
1510
+ "bytes": 2041
1511
+ },
1472
1512
  "v2/durable-core/domain/binding-drift.d.ts": {
1473
1513
  "sha256": "86ccd73b4e1a691b304b7c1f13712f9d226039eadc885f2a5d438864885804f5",
1474
1514
  "bytes": 424
@@ -1478,20 +1518,20 @@
1478
1518
  "bytes": 1397
1479
1519
  },
1480
1520
  "v2/durable-core/domain/blocked-node-builder.d.ts": {
1481
- "sha256": "0d3e3fcb9ddf99acc532de5022ee8aef8b7a310267dbe68fd914ed516ebde888",
1482
- "bytes": 880
1521
+ "sha256": "5d1db57eaedabdbd2a7f5eb38ca5b352f2cf9e8920c4e2cc796f2c671c972b40",
1522
+ "bytes": 881
1483
1523
  },
1484
1524
  "v2/durable-core/domain/blocked-node-builder.js": {
1485
- "sha256": "a5c69a1a31ad4a04a0c7924141df00ad7d47bf0653f88465f4d985316de344d4",
1486
- "bytes": 4107
1525
+ "sha256": "86b27d560a53c7c71675f09f819c990f15ebc40ca2cc30b323c7dab66a001f7f",
1526
+ "bytes": 4422
1487
1527
  },
1488
1528
  "v2/durable-core/domain/blocking-decision.d.ts": {
1489
- "sha256": "4cac7d676931cebbf8d2a80a212b295716836596938973d16371beede62e9932",
1490
- "bytes": 1256
1529
+ "sha256": "a4fec0752729839c51089c47d9d1ccde19281ce7fe6a936e92299628bee0ca11",
1530
+ "bytes": 1451
1491
1531
  },
1492
1532
  "v2/durable-core/domain/blocking-decision.js": {
1493
- "sha256": "784983173f0b9741b0784e7aa8fdaef34c36c9715f8c9dcdcb22132f89be058e",
1494
- "bytes": 2557
1533
+ "sha256": "7703948815013d458d877381c392a49634f4e06f15f7421044eb3c527a534999",
1534
+ "bytes": 3324
1495
1535
  },
1496
1536
  "v2/durable-core/domain/bundle-builder.d.ts": {
1497
1537
  "sha256": "cb08b33f82f7cab8ef1b5f441a531886a4e1d0fdff69105b121089dc2e790357",
@@ -1594,16 +1634,16 @@
1594
1634
  "bytes": 1175
1595
1635
  },
1596
1636
  "v2/durable-core/domain/prompt-renderer.js": {
1597
- "sha256": "f3e7cc34b753c082ee310e88839948e225ab10f13cedae1d35b2bd64869eb848",
1598
- "bytes": 17166
1637
+ "sha256": "973f4a26c7d3030b9862ae9b75c1f4fb60f6b67bc4b53df46d2b1b327e088b05",
1638
+ "bytes": 18560
1599
1639
  },
1600
1640
  "v2/durable-core/domain/reason-model.d.ts": {
1601
- "sha256": "650fcb2d9969a4e6123cccbd4913f4d57aeab21a19bb907aa1e11f95e5a95089",
1602
- "bytes": 3762
1641
+ "sha256": "a944e7e0d9b3c73468488263cb0aa1e446c023f8084fd2af53cbda3f3bfcd37a",
1642
+ "bytes": 4131
1603
1643
  },
1604
1644
  "v2/durable-core/domain/reason-model.js": {
1605
- "sha256": "2ca2061fef0288b83b59a1f77c47ece03ec8fe16e017d9b2a5ceb4f6f2b79443",
1606
- "bytes": 11898
1645
+ "sha256": "e9dc68a51519348f52b534a32c1616bcbef4db950102c65183bab2100872569b",
1646
+ "bytes": 13689
1607
1647
  },
1608
1648
  "v2/durable-core/domain/recap-recovery.d.ts": {
1609
1649
  "sha256": "82e7b20a22d409f729ccf79d345c00a7e27f1898a465dfca4cd789ff7766a3d6",
@@ -1634,8 +1674,8 @@
1634
1674
  "bytes": 637
1635
1675
  },
1636
1676
  "v2/durable-core/domain/risk-policy-guardrails.js": {
1637
- "sha256": "da5c71be307bff6e0c479dba09439020461854c3d27ffcc9e9cb737891dfd114",
1638
- "bytes": 2719
1677
+ "sha256": "67c5ca85f6c9053356378f4d07f10ebd24cb061217d0d435d61c4359dd29214b",
1678
+ "bytes": 2764
1639
1679
  },
1640
1680
  "v2/durable-core/domain/start-construction.d.ts": {
1641
1681
  "sha256": "262f5efacaf65c9baed046538afd40dfc91f664c0f8d80765d2d584a36302768",
@@ -1646,12 +1686,12 @@
1646
1686
  "bytes": 1247
1647
1687
  },
1648
1688
  "v2/durable-core/domain/validation-criteria-validator.d.ts": {
1649
- "sha256": "9d130b9a641857696d510cad691dcfb02d5ac54138e11fbb58ae9305a4cb1987",
1650
- "bytes": 948
1689
+ "sha256": "09a56c34ac8004e7f8d055163cd1ba5f2f1934bc1a71ec257b89b22db60e11b7",
1690
+ "bytes": 1002
1651
1691
  },
1652
1692
  "v2/durable-core/domain/validation-criteria-validator.js": {
1653
- "sha256": "933651ba042c86e22d7b65820f97a54d2bcec009efa2856aea9649b03a44ee50",
1654
- "bytes": 2161
1693
+ "sha256": "0cee01b5e1a059dd0fd8c3b36aa8d696d68aade1d2f469d12a673c2c693aa2a6",
1694
+ "bytes": 2550
1655
1695
  },
1656
1696
  "v2/durable-core/domain/validation-event-builder.d.ts": {
1657
1697
  "sha256": "58cf3487f53e3a5e255871d94096133f1baf7f12ab3825cdc1e9789493677134",
@@ -1781,13 +1821,21 @@
1781
1821
  "sha256": "c858c64c95e4eb2c8874419c88c2e9fcc6d5634e83c53d589b83c29038f7f5c5",
1782
1822
  "bytes": 456
1783
1823
  },
1824
+ "v2/durable-core/schemas/artifacts/assessment.d.ts": {
1825
+ "sha256": "ad7f345026455625144db69e422956ee198537041fbf66e361a81868a38013e8",
1826
+ "bytes": 2000
1827
+ },
1828
+ "v2/durable-core/schemas/artifacts/assessment.js": {
1829
+ "sha256": "82b2cd8a2cc618e3bce3b1e79cb9c4edc3bbd1cd801eceda95dabea90fafbb10",
1830
+ "bytes": 1492
1831
+ },
1784
1832
  "v2/durable-core/schemas/artifacts/index.d.ts": {
1785
- "sha256": "0e19b4910a75efb834985a6409bbe1195fc11d81439ba92891dc3af4ee278369",
1786
- "bytes": 550
1833
+ "sha256": "82f39a33032b6b627862e82aa25d7761851eafe94421d03697770acd1df338e3",
1834
+ "bytes": 812
1787
1835
  },
1788
1836
  "v2/durable-core/schemas/artifacts/index.js": {
1789
- "sha256": "4d4e94b2694ff58a0ffec85d4693c65ec6d2056c540184787b15c6337d8ccacf",
1790
- "bytes": 1728
1837
+ "sha256": "f9afda3e1bb220994ad46f39ad9c3072d97c0cd012d679f25bd239339c7cd4ea",
1838
+ "bytes": 2770
1791
1839
  },
1792
1840
  "v2/durable-core/schemas/artifacts/loop-control.d.ts": {
1793
1841
  "sha256": "714e2980400da0aaf814c691d8915653393316e70bc9af9da72130bb07e959be",
@@ -1798,7 +1846,7 @@
1798
1846
  "bytes": 2115
1799
1847
  },
1800
1848
  "v2/durable-core/schemas/compiled-workflow/index.d.ts": {
1801
- "sha256": "e7adc0105bce4f60f4fc3ecfa158dd623ce09e78fe75ec90d5718197a3f7a301",
1849
+ "sha256": "451822411a8c1ca5236939b6dc7a58e0a00aa4cf82bcec67ce7cc38e942fa820",
1802
1850
  "bytes": 11821
1803
1851
  },
1804
1852
  "v2/durable-core/schemas/compiled-workflow/index.js": {
@@ -1806,16 +1854,16 @@
1806
1854
  "bytes": 2750
1807
1855
  },
1808
1856
  "v2/durable-core/schemas/execution-snapshot/blocked-snapshot.d.ts": {
1809
- "sha256": "278fa4bf5b42f7560382bd821ec706151bba0ab8fc7a17118dfcd02824757625",
1810
- "bytes": 24869
1857
+ "sha256": "2099e7c6bc521a3df16774eb2d6c0b9cad2b06f7360e7a0b5b98ad75d44fc2cb",
1858
+ "bytes": 29364
1811
1859
  },
1812
1860
  "v2/durable-core/schemas/execution-snapshot/blocked-snapshot.js": {
1813
- "sha256": "f952ec8411dff13e63376a426a7a0a0fdd172b197f01fbf321ec69ec7c1076e1",
1814
- "bytes": 4556
1861
+ "sha256": "688e01bd86d83a9fb81395202e6b61458c16deaf82ac7a7f59da79e26f83159b",
1862
+ "bytes": 5033
1815
1863
  },
1816
1864
  "v2/durable-core/schemas/execution-snapshot/execution-snapshot.v1.d.ts": {
1817
- "sha256": "d198ecbe4adde9cc3a7d0764d6720926b8e032dd4ee580aaacdcf15c6233e8e9",
1818
- "bytes": 196009
1865
+ "sha256": "0d79cbb904fc19969d510f90bfa9ad48cbb8dd13baafd92ac9f176b70bc153e0",
1866
+ "bytes": 222096
1819
1867
  },
1820
1868
  "v2/durable-core/schemas/execution-snapshot/execution-snapshot.v1.js": {
1821
1869
  "sha256": "485a8bfbb864a6dbac82559a968e903e8456469248772fc5f58826f669b06adf",
@@ -1838,8 +1886,8 @@
1838
1886
  "bytes": 3397
1839
1887
  },
1840
1888
  "v2/durable-core/schemas/export-bundle/index.d.ts": {
1841
- "sha256": "6521642cefd019f75dba36890b71c20c5508e04baef584a09557a4b98f894321",
1842
- "bytes": 479848
1889
+ "sha256": "b6a2bd6cc52249f438f14b729c6312dcd88604e66d094627f2e2d40e35f314e4",
1890
+ "bytes": 531598
1843
1891
  },
1844
1892
  "v2/durable-core/schemas/export-bundle/index.js": {
1845
1893
  "sha256": "6e3566b2d05ea6302bbf4d311b8ec3e94725a8523834efe7670a79e7bd7dc40d",
@@ -1894,15 +1942,15 @@
1894
1942
  "bytes": 2138
1895
1943
  },
1896
1944
  "v2/durable-core/schemas/session/events.d.ts": {
1897
- "sha256": "2948d5dfe89429a7365492930d5d0c6b9945eb95e8f47ed44fb7dbfe016beded",
1898
- "bytes": 73576
1945
+ "sha256": "f46d7b66a1fdaaf1a52b85a4a37d68b0ba9df0d00c2e83d5abfe023225089a6c",
1946
+ "bytes": 79553
1899
1947
  },
1900
1948
  "v2/durable-core/schemas/session/events.js": {
1901
- "sha256": "df053c99e92f16785864f7c91ce0de5eafd2a8d631e93cbb96a40cbfa4cdba14",
1902
- "bytes": 11149
1949
+ "sha256": "0be45be28e8498bdd390bbf4d8448158efa4ff8d1e92f1424256de59ed42bb4e",
1950
+ "bytes": 12744
1903
1951
  },
1904
1952
  "v2/durable-core/schemas/session/gaps.d.ts": {
1905
- "sha256": "b711f791c69ebc9c04b21928f1cebf124229b51ada8fead110843bf274ed688f",
1953
+ "sha256": "67c69dfec8280158c543b72e1fb728559a0ff7e5e0670d3e5b0fe28e68812080",
1906
1954
  "bytes": 8721
1907
1955
  },
1908
1956
  "v2/durable-core/schemas/session/gaps.js": {
@@ -2389,6 +2437,22 @@
2389
2437
  "sha256": "eb06aff128112850fdc8b3bfafae759500ca65aed279f096a077e000a9a1bf99",
2390
2438
  "bytes": 2033
2391
2439
  },
2440
+ "v2/projections/assessment-consequences.d.ts": {
2441
+ "sha256": "51849a78954a3eda76ffb8942e090fc513c604ab2c9418f1b3526a96b290fba1",
2442
+ "bytes": 1109
2443
+ },
2444
+ "v2/projections/assessment-consequences.js": {
2445
+ "sha256": "ce58072d2b3b27bba2179afba94a99b1d9dde6b8fad5f454605c0b15b8d79d99",
2446
+ "bytes": 1498
2447
+ },
2448
+ "v2/projections/assessments.d.ts": {
2449
+ "sha256": "cf0cca086b11715dbe40d51c4273ba67b6a656b1061ce2bba0dd2f2724e39881",
2450
+ "bytes": 1045
2451
+ },
2452
+ "v2/projections/assessments.js": {
2453
+ "sha256": "171980d259b26a97a83ed96bdcb373e58b784509cbdf380fac8d5355990e4cf0",
2454
+ "bytes": 1546
2455
+ },
2392
2456
  "v2/projections/capabilities.d.ts": {
2393
2457
  "sha256": "ee4c4bb728b5fc7343a43c9bb13a981a9bf0bd1b39e68ff8c866b4119012eac1",
2394
2458
  "bytes": 1011
@@ -0,0 +1,14 @@
1
+ import type { AssessmentConsequenceDefinition, WorkflowStepDefinition } from '../../../types/workflow-definition.js';
2
+ import type { RecordedAssessmentV1 } from '../../../v2/durable-core/domain/assessment-record.js';
3
+ export interface TriggeredAssessmentConsequenceV1 {
4
+ readonly kind: 'require_followup';
5
+ readonly assessmentId: string;
6
+ readonly triggerDimensionId: string;
7
+ readonly triggerLevel: string;
8
+ readonly guidance: string;
9
+ }
10
+ export declare function evaluateAssessmentConsequences(args: {
11
+ readonly step: WorkflowStepDefinition | undefined;
12
+ readonly recordedAssessment: RecordedAssessmentV1 | undefined;
13
+ }): TriggeredAssessmentConsequenceV1 | undefined;
14
+ export declare function getDeclaredAssessmentConsequence(step: WorkflowStepDefinition | undefined): AssessmentConsequenceDefinition | undefined;