@haibun/core 3.0.5 → 3.1.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 (206) hide show
  1. package/build/currentVersion.d.ts +1 -1
  2. package/build/currentVersion.js +2 -1
  3. package/build/lib/EventLogger.d.ts +30 -0
  4. package/build/lib/EventLogger.d.ts.map +1 -0
  5. package/build/lib/EventLogger.js +110 -0
  6. package/build/lib/EventLogger.js.map +1 -0
  7. package/build/lib/astepper.d.ts +9 -0
  8. package/build/lib/astepper.d.ts.map +1 -1
  9. package/build/lib/astepper.js +8 -0
  10. package/build/lib/astepper.js.map +1 -1
  11. package/build/lib/core/flow-runner.d.ts +25 -0
  12. package/build/lib/core/flow-runner.d.ts.map +1 -0
  13. package/build/lib/core/flow-runner.js +128 -0
  14. package/build/lib/core/flow-runner.js.map +1 -0
  15. package/build/lib/core/protocol.d.ts +58 -0
  16. package/build/lib/core/protocol.d.ts.map +1 -0
  17. package/build/lib/core/protocol.js +18 -0
  18. package/build/lib/core/protocol.js.map +1 -0
  19. package/build/lib/core-domains.d.ts +2 -16
  20. package/build/lib/core-domains.d.ts.map +1 -1
  21. package/build/lib/core-domains.js +46 -27
  22. package/build/lib/core-domains.js.map +1 -1
  23. package/build/lib/defs.d.ts +31 -6
  24. package/build/lib/defs.d.ts.map +1 -1
  25. package/build/lib/defs.js +1 -1
  26. package/build/lib/defs.js.map +1 -1
  27. package/build/lib/domain-types.d.ts +12 -1
  28. package/build/lib/domain-types.d.ts.map +1 -1
  29. package/build/lib/domain-types.js +63 -3
  30. package/build/lib/domain-types.js.map +1 -1
  31. package/build/lib/event-bridge.d.ts +42 -0
  32. package/build/lib/event-bridge.d.ts.map +1 -0
  33. package/build/lib/event-bridge.js +214 -0
  34. package/build/lib/event-bridge.js.map +1 -0
  35. package/build/lib/feature-variables.d.ts +13 -0
  36. package/build/lib/feature-variables.d.ts.map +1 -1
  37. package/build/lib/feature-variables.js +125 -6
  38. package/build/lib/feature-variables.js.map +1 -1
  39. package/build/lib/namedVars.d.ts.map +1 -1
  40. package/build/lib/namedVars.js +18 -10
  41. package/build/lib/namedVars.js.map +1 -1
  42. package/build/lib/populateActionArgs.d.ts +1 -1
  43. package/build/lib/populateActionArgs.d.ts.map +1 -1
  44. package/build/lib/populateActionArgs.js +11 -49
  45. package/build/lib/populateActionArgs.js.map +1 -1
  46. package/build/lib/test/TestSteps.d.ts +1 -0
  47. package/build/lib/test/TestSteps.d.ts.map +1 -1
  48. package/build/lib/test/TestStepsWithOptions.d.ts +1 -0
  49. package/build/lib/test/TestStepsWithOptions.d.ts.map +1 -1
  50. package/build/lib/test/lib.d.ts.map +1 -1
  51. package/build/lib/test/lib.js +2 -0
  52. package/build/lib/test/lib.js.map +1 -1
  53. package/build/lib/util/actualURI.js +1 -1
  54. package/build/lib/util/actualURI.js.map +1 -1
  55. package/build/lib/util/index.d.ts +11 -2
  56. package/build/lib/util/index.d.ts.map +1 -1
  57. package/build/lib/util/index.js +46 -2
  58. package/build/lib/util/index.js.map +1 -1
  59. package/build/lib/util/variables.d.ts +9 -0
  60. package/build/lib/util/variables.d.ts.map +1 -0
  61. package/build/lib/util/variables.js +40 -0
  62. package/build/lib/util/variables.js.map +1 -0
  63. package/build/lib/util/workspace-lib.d.ts.map +1 -1
  64. package/build/lib/util/workspace-lib.js +30 -3
  65. package/build/lib/util/workspace-lib.js.map +1 -1
  66. package/build/monitor/browser-stubs.d.ts +12 -0
  67. package/build/monitor/browser-stubs.d.ts.map +1 -0
  68. package/build/monitor/browser-stubs.js +20 -0
  69. package/build/monitor/browser-stubs.js.map +1 -0
  70. package/build/monitor/constants.d.ts +9 -0
  71. package/build/monitor/constants.d.ts.map +1 -0
  72. package/build/monitor/constants.js +9 -0
  73. package/build/monitor/constants.js.map +1 -0
  74. package/build/monitor/event-view.d.ts +40 -0
  75. package/build/monitor/event-view.d.ts.map +1 -0
  76. package/build/monitor/event-view.js +104 -0
  77. package/build/monitor/event-view.js.map +1 -0
  78. package/build/monitor/filters.d.ts +17 -0
  79. package/build/monitor/filters.d.ts.map +1 -0
  80. package/build/monitor/filters.js +32 -0
  81. package/build/monitor/filters.js.map +1 -0
  82. package/build/monitor/formatters.d.ts +27 -0
  83. package/build/monitor/formatters.d.ts.map +1 -0
  84. package/build/monitor/formatters.js +89 -0
  85. package/build/monitor/formatters.js.map +1 -0
  86. package/build/monitor/index.d.ts +11 -0
  87. package/build/monitor/index.d.ts.map +1 -0
  88. package/build/monitor/index.js +15 -0
  89. package/build/monitor/index.js.map +1 -0
  90. package/build/monitor/jit-serialization.d.ts +9 -0
  91. package/build/monitor/jit-serialization.d.ts.map +1 -0
  92. package/build/monitor/jit-serialization.js +73 -0
  93. package/build/monitor/jit-serialization.js.map +1 -0
  94. package/build/monitor/monitor-types.d.ts +119 -0
  95. package/build/monitor/monitor-types.d.ts.map +1 -0
  96. package/build/monitor/monitor-types.js +43 -0
  97. package/build/monitor/monitor-types.js.map +1 -0
  98. package/build/monitor/speculative-tracker.d.ts +20 -0
  99. package/build/monitor/speculative-tracker.d.ts.map +1 -0
  100. package/build/monitor/speculative-tracker.js +38 -0
  101. package/build/monitor/speculative-tracker.js.map +1 -0
  102. package/build/monitor/state.d.ts +31 -0
  103. package/build/monitor/state.d.ts.map +1 -0
  104. package/build/monitor/state.js +110 -0
  105. package/build/monitor/state.js.map +1 -0
  106. package/build/monitor/timer.d.ts +11 -0
  107. package/build/monitor/timer.d.ts.map +1 -0
  108. package/build/monitor/timer.js +13 -0
  109. package/build/monitor/timer.js.map +1 -0
  110. package/build/monitor/tree-builder.d.ts +25 -0
  111. package/build/monitor/tree-builder.d.ts.map +1 -0
  112. package/build/monitor/tree-builder.js +36 -0
  113. package/build/monitor/tree-builder.js.map +1 -0
  114. package/build/phases/Executor.d.ts.map +1 -1
  115. package/build/phases/Executor.js +93 -22
  116. package/build/phases/Executor.js.map +1 -1
  117. package/build/phases/Resolver.d.ts +2 -1
  118. package/build/phases/Resolver.d.ts.map +1 -1
  119. package/build/phases/Resolver.js +64 -1
  120. package/build/phases/Resolver.js.map +1 -1
  121. package/build/runner.d.ts.map +1 -1
  122. package/build/runner.js +5 -0
  123. package/build/runner.js.map +1 -1
  124. package/build/schema/events.d.ts +426 -0
  125. package/build/schema/events.d.ts.map +1 -0
  126. package/build/schema/events.js +123 -0
  127. package/build/schema/events.js.map +1 -0
  128. package/build/steps/activities-stepper.d.ts +49 -8
  129. package/build/steps/activities-stepper.d.ts.map +1 -1
  130. package/build/steps/activities-stepper.js +277 -141
  131. package/build/steps/activities-stepper.js.map +1 -1
  132. package/build/steps/conformance.d.ts +1 -0
  133. package/build/steps/conformance.d.ts.map +1 -1
  134. package/build/steps/console-monitor-stepper.d.ts +44 -0
  135. package/build/steps/console-monitor-stepper.d.ts.map +1 -0
  136. package/build/steps/console-monitor-stepper.js +107 -0
  137. package/build/steps/console-monitor-stepper.js.map +1 -0
  138. package/build/steps/debugger-stepper.d.ts +5 -3
  139. package/build/steps/debugger-stepper.d.ts.map +1 -1
  140. package/build/steps/debugger-stepper.js +32 -8
  141. package/build/steps/debugger-stepper.js.map +1 -1
  142. package/build/steps/haibun.d.ts +6 -18
  143. package/build/steps/haibun.d.ts.map +1 -1
  144. package/build/steps/haibun.js +33 -54
  145. package/build/steps/haibun.js.map +1 -1
  146. package/build/steps/logic-stepper.d.ts +42 -0
  147. package/build/steps/logic-stepper.d.ts.map +1 -0
  148. package/build/steps/logic-stepper.js +143 -0
  149. package/build/steps/logic-stepper.js.map +1 -0
  150. package/build/steps/narrator.js +1 -1
  151. package/build/steps/narrator.js.map +1 -1
  152. package/build/steps/parse.d.ts +1 -0
  153. package/build/steps/parse.d.ts.map +1 -1
  154. package/build/steps/variables-stepper.d.ts +11 -75
  155. package/build/steps/variables-stepper.d.ts.map +1 -1
  156. package/build/steps/variables-stepper.js +527 -85
  157. package/build/steps/variables-stepper.js.map +1 -1
  158. package/package.json +16 -3
  159. package/build/applyEffectFeatures.d.ts +0 -4
  160. package/build/applyEffectFeatures.d.ts.map +0 -1
  161. package/build/applyEffectFeatures.js +0 -31
  162. package/build/applyEffectFeatures.js.map +0 -1
  163. package/build/jsprolog/converter.d.ts +0 -9
  164. package/build/jsprolog/converter.d.ts.map +0 -1
  165. package/build/jsprolog/converter.js +0 -42
  166. package/build/jsprolog/converter.js.map +0 -1
  167. package/build/jsprolog/stepper-utils.d.ts +0 -8
  168. package/build/jsprolog/stepper-utils.d.ts.map +0 -1
  169. package/build/jsprolog/stepper-utils.js +0 -8
  170. package/build/jsprolog/stepper-utils.js.map +0 -1
  171. package/build/jsprolog/test.jsprolog.d.ts +0 -4
  172. package/build/jsprolog/test.jsprolog.d.ts.map +0 -1
  173. package/build/jsprolog/test.jsprolog.js +0 -19
  174. package/build/jsprolog/test.jsprolog.js.map +0 -1
  175. package/build/jsprolog/test.kireji.d.ts +0 -4
  176. package/build/jsprolog/test.kireji.d.ts.map +0 -1
  177. package/build/jsprolog/test.kireji.js +0 -19
  178. package/build/jsprolog/test.kireji.js.map +0 -1
  179. package/build/jsprolog/withAction.d.ts +0 -32
  180. package/build/jsprolog/withAction.d.ts.map +0 -1
  181. package/build/jsprolog/withAction.js +0 -65
  182. package/build/jsprolog/withAction.js.map +0 -1
  183. package/build/kireji/test.kireji.d.ts +0 -4
  184. package/build/kireji/test.kireji.d.ts.map +0 -1
  185. package/build/kireji/test.kireji.js +0 -19
  186. package/build/kireji/test.kireji.js.map +0 -1
  187. package/build/lib/errors.d.ts +0 -13
  188. package/build/lib/errors.d.ts.map +0 -1
  189. package/build/lib/errors.js +0 -18
  190. package/build/lib/errors.js.map +0 -1
  191. package/build/lib/util/featureStep-executor.d.ts +0 -7
  192. package/build/lib/util/featureStep-executor.d.ts.map +0 -1
  193. package/build/lib/util/featureStep-executor.js +0 -63
  194. package/build/lib/util/featureStep-executor.js.map +0 -1
  195. package/build/steps/conditions-stepper.d.ts +0 -27
  196. package/build/steps/conditions-stepper.d.ts.map +0 -1
  197. package/build/steps/conditions-stepper.js +0 -99
  198. package/build/steps/conditions-stepper.js.map +0 -1
  199. package/build/steps/outcomesRegistry.d.ts +0 -8
  200. package/build/steps/outcomesRegistry.d.ts.map +0 -1
  201. package/build/steps/outcomesRegistry.js +0 -3
  202. package/build/steps/outcomesRegistry.js.map +0 -1
  203. package/build/steps/registeredOutcomesStore.d.ts +0 -12
  204. package/build/steps/registeredOutcomesStore.d.ts.map +0 -1
  205. package/build/steps/registeredOutcomesStore.js +0 -11
  206. package/build/steps/registeredOutcomesStore.js.map +0 -1
@@ -1,23 +1,26 @@
1
1
  import { AStepper } from '../lib/astepper.js';
2
2
  import { OK, CycleWhen } from '../lib/defs.js';
3
- import { executeSubFeatureSteps, findFeatureStepsFromStatement } from '../lib/util/featureStep-executor.js';
4
- import { ExecMode } from '../lib/defs.js';
5
3
  import { actionOK, actionNotOK, getActionable } from '../lib/util/index.js';
6
4
  import { DOMAIN_STATEMENT } from '../lib/domain-types.js';
7
5
  import { EExecutionMessageType } from '../lib/interfaces/logger.js';
6
+ import { FlowRunner } from '../lib/core/flow-runner.js';
8
7
  /**
9
8
  * Stepper that dynamically builds virtual steps from `waypoint` statements.
10
9
  * implements this logic: P ∨ (¬P ∧ [A]P)
11
10
  */
12
11
  export class ActivitiesStepper extends AStepper {
13
- steppers = [];
12
+ runner;
14
13
  backgroundOutcomePatterns = new Set();
15
14
  featureOutcomePatterns = new Set();
16
15
  outcomeToFeaturePath = new Map();
16
+ featureSteps = new Map();
17
17
  currentFeaturePath = '';
18
18
  lastFeaturePath = '';
19
+ lastResolutionPath = '';
19
20
  ensuredInstances = new Map();
21
+ ensureAttempts = new Map();
20
22
  registeredOutcomeMetadata = new Map();
23
+ inActivityBlock = false;
21
24
  cycles = {
22
25
  startExecution: () => {
23
26
  this.sendGraphLinkMessages();
@@ -26,18 +29,18 @@ export class ActivitiesStepper extends AStepper {
26
29
  this.getWorld().logger.debug(`ActivitiesStepper.startFeature: starting feature at path "${startFeature.resolvedFeature.path}"`);
27
30
  if (this.lastFeaturePath && this.lastFeaturePath !== startFeature.resolvedFeature.path) {
28
31
  this.getWorld().logger.debug(`ActivitiesStepper.startFeature: clearing outcomes from previous feature "${this.lastFeaturePath}"`);
29
- const outcomesToClear = [];
30
- for (const [outcome, featurePath] of this.outcomeToFeaturePath.entries()) {
31
- if (featurePath === this.lastFeaturePath) {
32
- outcomesToClear.push(outcome);
32
+ const previousSteps = this.featureSteps.get(this.lastFeaturePath);
33
+ if (previousSteps) {
34
+ for (const outcome of Object.keys(previousSteps)) {
33
35
  delete this.steps[outcome];
34
- this.featureOutcomePatterns.delete(outcome);
35
36
  }
36
37
  }
37
- for (const outcome of outcomesToClear) {
38
- this.outcomeToFeaturePath.delete(outcome);
38
+ }
39
+ const currentSteps = this.featureSteps.get(startFeature.resolvedFeature.path);
40
+ if (currentSteps) {
41
+ for (const [outcome, step] of Object.entries(currentSteps)) {
42
+ this.steps[outcome] = step;
39
43
  }
40
- this.getWorld().logger.debug(`ActivitiesStepper.startFeature: cleared ${outcomesToClear.length} outcomes from previous feature`);
41
44
  }
42
45
  this.currentFeaturePath = startFeature.resolvedFeature.path;
43
46
  this.sendGraphLinkMessages();
@@ -55,70 +58,103 @@ export class ActivitiesStepper extends AStepper {
55
58
  baseSteps = {
56
59
  activity: {
57
60
  gwta: 'Activity: {activity}',
58
- action: () => OK
59
- },
60
- waypoint: {
61
- gwta: `waypoint {outcome} with {proof:${DOMAIN_STATEMENT}}`,
62
- resolveFeatureLine: (line, path, stepper, _backgrounds, allLines, lineIndex) => {
63
- if (!line.match(/^waypoint\s+.+?\s+with\s+/i)) {
64
- return false;
65
- }
66
- const activitiesStepper = stepper;
67
- const match = line.match(/^waypoint\s+(.+?)\s+with\s+(.+?)$/i);
68
- if (!match) {
69
- return false;
61
+ action: () => OK,
62
+ resolveFeatureLine: (line, path, _stepper, _backgrounds, allLines, lineIndex) => {
63
+ if (this.lastResolutionPath && this.lastResolutionPath !== path) {
64
+ const previousSteps = this.featureSteps.get(this.lastResolutionPath);
65
+ if (previousSteps) {
66
+ for (const outcome of Object.keys(previousSteps)) {
67
+ delete this.steps[outcome];
68
+ }
69
+ }
70
70
  }
71
- const outcome = match[1].trim();
72
- // Skip if already registered (prevents infinite loops)
73
- if (activitiesStepper.backgroundOutcomePatterns.has(outcome) || activitiesStepper.featureOutcomePatterns.has(outcome)) {
74
- return true;
71
+ this.lastResolutionPath = path;
72
+ if (line.match(/^Activity:/i)) {
73
+ this.inActivityBlock = true;
74
+ return true; // Skip the Activity definition line itself
75
75
  }
76
- const isBackground = path.includes('backgrounds/');
77
- const proofRaw = match[2].trim();
78
- const proofFromRemember = proofRaw.split('\n').map(s => s.trim()).filter(s => s.length > 0);
79
- // Scan backwards to find containing Activity block
80
- let activityBlockSteps;
81
- if (allLines && lineIndex !== undefined) {
82
- let activityStartLine = -1;
83
- for (let i = lineIndex - 1; i >= 0; i--) {
84
- const prevLine = getActionable(allLines[i]);
85
- if (prevLine.match(/^Activity:/i)) {
86
- activityStartLine = i;
87
- break;
88
- }
89
- if (prevLine.match(/^(Feature|Scenario|Background):/i)) {
90
- break;
91
- }
76
+ if (this.inActivityBlock) {
77
+ // Check for block terminators
78
+ if (line.match(/^(Feature|Scenario|Background|Activity):/i)) {
79
+ this.inActivityBlock = false;
80
+ return false; // Process this line normally
92
81
  }
93
- if (activityStartLine !== -1) {
94
- // Collect steps between Activity: and waypoint (excluding waypoint itself)
95
- const blockLines = [];
96
- for (let i = activityStartLine + 1; i < lineIndex; i++) {
97
- const stepLine = getActionable(allLines[i]);
98
- if (stepLine) {
99
- blockLines.push(stepLine);
82
+ if (line.match(/^waypoint\s+/i)) {
83
+ this.resolveWaypointCommon(line, path, allLines, lineIndex, line.includes(' with '));
84
+ // Check if this is the last waypoint in the block
85
+ let hasMoreWaypoints = false;
86
+ if (allLines && lineIndex !== undefined) {
87
+ for (let i = lineIndex + 1; i < allLines.length; i++) {
88
+ const nextLine = allLines[i].trim();
89
+ if (nextLine.match(/^(Feature|Scenario|Background|Activity):/i)) {
90
+ break;
91
+ }
92
+ if (nextLine.match(/^waypoint\s+/i)) {
93
+ hasMoreWaypoints = true;
94
+ break;
95
+ }
100
96
  }
101
97
  }
102
- activityBlockSteps = blockLines;
98
+ if (!hasMoreWaypoints) {
99
+ this.inActivityBlock = false;
100
+ }
101
+ return true; // Skip the waypoint definition line
103
102
  }
103
+ // Inside block
104
+ return true; // Skip lines inside the block
104
105
  }
105
- activitiesStepper.registerOutcome(outcome, proofFromRemember, path, isBackground, activityBlockSteps);
106
- return true;
107
- },
106
+ return false;
107
+ }
108
+ },
109
+ waypointWithProof: {
110
+ gwta: `waypoint {outcome} with {proof:${DOMAIN_STATEMENT}}`,
111
+ precludes: ['ActivitiesStepper.waypointLabel'],
108
112
  action: async ({ proof }, featureStep) => {
109
113
  this.getWorld().logger.debug(`waypoint action: executing ${proof?.length || 0} proof steps`);
110
- const result = await executeSubFeatureSteps(featureStep, proof, this.steppers, this.getWorld(), ExecMode.NO_CYCLES);
111
- if (!result.ok) {
112
- return actionNotOK(`waypoint: failed to execute proof steps`);
114
+ try {
115
+ const result = await this.runner.runSteps(proof, { intent: { mode: 'authoritative' }, parentStep: featureStep });
116
+ if (result.kind !== 'ok') {
117
+ return actionNotOK(`waypoint: failed to execute proof steps: ${result.message}`);
118
+ }
119
+ return actionOK();
120
+ }
121
+ catch (err) {
122
+ const msg = err instanceof Error ? err.message : String(err);
123
+ this.getWorld().logger.debug(`waypoint action: exception executing proof steps: ${msg}`);
124
+ const messageContext = {
125
+ incident: EExecutionMessageType.ACTION,
126
+ incidentDetails: { error: msg }
127
+ };
128
+ return actionNotOK(`waypoint: failed to execute proof steps: ${msg}`, { messageContext });
113
129
  }
114
- return actionOK();
115
130
  },
116
131
  },
132
+ waypointLabel: {
133
+ gwta: `waypoint {outcome}`,
134
+ action: async () => actionOK(),
135
+ },
117
136
  ensure: {
118
- description: 'Ensure a waypoint condition by always running the proof. If proof passes, waypoint is already satisfied. If proof fails, run the full activity to satisfy it.',
137
+ description: 'Ensure a waypoint condition by always running the proof. If proof passes, waypoint is already satisfied. If proof fails, run the full activity, then try the proof again',
119
138
  gwta: `ensure {outcome:${DOMAIN_STATEMENT}}`,
139
+ unique: true, // Ensure takes priority over dynamically registered outcomes
120
140
  action: async ({ outcome }, featureStep) => {
121
141
  const outcomeKey = outcome.map(step => step.in).join(' ');
142
+ // Guard: prevent infinite ensure retry loops by counting attempts per outcome+seq
143
+ const attemptKey = outcomeKey; // key by outcome only to avoid differing seqPaths
144
+ const prevAttempts = this.ensureAttempts.get(attemptKey) ?? 0;
145
+ const MAX_ENSURE_ATTEMPTS = 10;
146
+ this.ensureAttempts.set(attemptKey, prevAttempts + 1);
147
+ if (prevAttempts + 1 > MAX_ENSURE_ATTEMPTS) {
148
+ this.getWorld().logger.warn(`ensure: exceeded max attempts (${MAX_ENSURE_ATTEMPTS}) for ${outcomeKey}`);
149
+ if (this.getWorld().runtime) {
150
+ this.getWorld().runtime.exhaustionError = 'ensure max attempts exceeded';
151
+ }
152
+ const messageContext = {
153
+ incident: EExecutionMessageType.ACTION,
154
+ incidentDetails: { waypoint: outcomeKey, satisfied: false, error: 'max ensure attempts exceeded', terminal: true }
155
+ };
156
+ return actionNotOK(`ensure: max attempts exceeded for waypoint "${outcomeKey}"`, { messageContext });
157
+ }
122
158
  // Log ENSURE_START
123
159
  const startMessageContext = {
124
160
  incident: EExecutionMessageType.ENSURE_START,
@@ -129,30 +165,63 @@ export class ActivitiesStepper extends AStepper {
129
165
  const pattern = outcome[0]?.action?.actionName || outcomeKey;
130
166
  const registeredWaypoint = this.steps[pattern];
131
167
  if (!registeredWaypoint) {
132
- const messageContext = {
133
- incident: EExecutionMessageType.ACTION,
134
- incidentDetails: { waypoint: outcomeKey, error: 'waypoint not registered' }
135
- };
136
- return actionNotOK(`ensure: waypoint "${outcomeKey}" (pattern "${pattern}") is not registered`, { messageContext });
168
+ return actionNotOK(`ensure: "${outcomeKey}" is not a registered waypoint. ensure can only be used with waypoints.`);
137
169
  }
138
- const result = await executeSubFeatureSteps(featureStep, outcome, this.steppers, this.getWorld(), ExecMode.NO_CYCLES);
139
- if (!result.ok) {
140
- // Log ENSURE_END for failure
141
- const endMessageContext = {
142
- incident: EExecutionMessageType.ENSURE_END,
143
- incidentDetails: { waypoint: outcomeKey, satisfied: false, error: result, actionResult: { ok: false } }
144
- };
145
- this.getWorld().logger.log(`❌ Failed ensuring ${outcomeKey}`, endMessageContext);
170
+ const metadata = this.registeredOutcomeMetadata.get(pattern);
171
+ if (!metadata || metadata.proofStatements.length === 0) {
172
+ return actionNotOK(`ensure: waypoint "${outcomeKey}" has no proof. ensure can only be used with waypoints that have a proof.`);
173
+ }
174
+ // Extract args from the outcome step(s) to pass to the activity
175
+ // This ensures that variables (e.g. {name}) defined in the waypoint are available in the activity
176
+ const activityArgs = {};
177
+ for (const step of outcome) {
178
+ if (step.action.stepValuesMap) {
179
+ for (const [key, val] of Object.entries(step.action.stepValuesMap)) {
180
+ // Use the value if available (it should be resolved), otherwise term
181
+ const value = val.value !== undefined ? String(val.value) : val.term;
182
+ if (value !== undefined) {
183
+ activityArgs[key] = value;
184
+ }
185
+ }
186
+ }
187
+ }
188
+ let proofStatements;
189
+ try {
190
+ // Use FlowRunner for the proof execution
191
+ // Pass activityArgs so they are available to the Outcome Action
192
+ const flowResult = await this.runner.runSteps(outcome, { intent: { mode: 'authoritative', usage: featureStep.intent?.usage, stepperOptions: { isEnsure: true } }, parentStep: featureStep });
193
+ if (flowResult.kind !== 'ok') {
194
+ // Log ENSURE_END for failure
195
+ const endMessageContext = {
196
+ incident: EExecutionMessageType.ENSURE_END,
197
+ incidentDetails: { waypoint: outcomeKey, satisfied: false, error: flowResult.message, actionResult: { ok: false } }
198
+ };
199
+ this.getWorld().logger.log(`❌ Failed ensuring ${outcomeKey}`, endMessageContext);
200
+ const messageContext = {
201
+ incident: EExecutionMessageType.ACTION,
202
+ incidentDetails: { waypoint: outcomeKey, satisfied: false, error: flowResult.message }
203
+ };
204
+ return actionNotOK(`ensure: waypoint "${outcomeKey}" proof failed: ${flowResult.message}`, { messageContext });
205
+ }
206
+ proofStatements = flowResult.payload?.messageContext?.incidentDetails?.proofStatements;
207
+ if (!proofStatements) {
208
+ return actionNotOK(`ensure: waypoint "${outcomeKey}" succeeded but returned no proofStatements`);
209
+ }
210
+ }
211
+ catch (err) {
212
+ const msg = err instanceof Error ? err.message : String(err);
213
+ this.getWorld().logger.debug(`ensure: exception while executing proof for ${outcomeKey}: ${msg}`);
146
214
  const messageContext = {
147
215
  incident: EExecutionMessageType.ACTION,
148
- incidentDetails: { waypoint: outcomeKey, satisfied: false, error: result }
216
+ incidentDetails: { waypoint: outcomeKey, satisfied: false, error: msg }
149
217
  };
150
- return actionNotOK(`ensure: waypoint "${outcomeKey}" proof failed`, { messageContext });
151
- }
152
- const proofStatements = result.stepActionResult?.messageContext?.incidentDetails?.proofStatements;
153
- if (proofStatements) {
154
- this.ensuredInstances.set(outcomeKey, { proof: proofStatements, valid: true });
218
+ return actionNotOK(`ensure: waypoint "${outcomeKey}" proof execution error: ${msg}`, { messageContext });
155
219
  }
220
+ // FIXME: We don't have easy access to proofStatements from FlowRunner result yet unless we pass them back
221
+ // For now, we assume if it passed, it passed.
222
+ this.ensuredInstances.set(outcomeKey, { proof: proofStatements, valid: true });
223
+ // On success or after one ensure action completes, reset attempt counter for this outcome
224
+ this.ensureAttempts.delete(attemptKey);
156
225
  this.getWorld().logger.debug(`ensure: waypoint "${outcomeKey}" verified and satisfied`);
157
226
  // Log ENSURE_END for success at trace level (just to hide the ENSURE_START)
158
227
  const endMessageContext = {
@@ -178,20 +247,11 @@ export class ActivitiesStepper extends AStepper {
178
247
  for (const [instanceKey, instanceData] of this.ensuredInstances.entries()) {
179
248
  this.getWorld().logger.debug(`show waypoints: verifying "${instanceKey}"`);
180
249
  try {
181
- const resolvedSteps = [];
182
- for (let i = 0; i < instanceData.proof.length; i++) {
183
- const statement = instanceData.proof[i];
184
- const resolved = findFeatureStepsFromStatement(statement, this.steppers, this.getWorld(), featureStep.path, [...featureStep.seqPath, i], 1);
185
- const contextualizedSteps = resolved.map(step => ({
186
- ...step,
187
- in: `[${instanceKey} proof] ${step.in}`
188
- }));
189
- resolvedSteps.push(...contextualizedSteps);
190
- }
191
- const result = await executeSubFeatureSteps(featureStep, resolvedSteps, this.steppers, this.getWorld(), ExecMode.NO_CYCLES);
250
+ // Use FlowRunner to run the proof statements directly
251
+ const result = await this.runner.runStatements(instanceData.proof, { intent: { mode: 'speculative' }, parentStep: featureStep });
192
252
  waypointResults[instanceKey] = {
193
253
  proof: instanceData.proof.join('; '),
194
- currentlyValid: result.ok
254
+ currentlyValid: result.kind === 'ok'
195
255
  };
196
256
  }
197
257
  catch (error) {
@@ -211,7 +271,7 @@ export class ActivitiesStepper extends AStepper {
211
271
  steps = { ...this.baseSteps };
212
272
  async setWorld(world, steppers) {
213
273
  await super.setWorld(world, steppers);
214
- this.steppers = steppers;
274
+ this.runner = new FlowRunner(world, steppers);
215
275
  }
216
276
  /**
217
277
  * Register a dynamic outcome step.
@@ -228,12 +288,14 @@ export class ActivitiesStepper extends AStepper {
228
288
  if (this.steps[outcome]) {
229
289
  throw new Error(`Outcome "${outcome}" is already registered. Each outcome can only be defined once.`);
230
290
  }
291
+ // Normalize activity steps (split multiline strings)
292
+ const normalizedActivitySteps = activityBlockSteps?.flatMap(s => s.split('\n')).map(s => s.trim()).filter(s => s.length > 0) ?? [];
231
293
  // Store metadata for runtime re-emission via TEST_LINKS messages
232
294
  this.registeredOutcomeMetadata.set(outcome, {
233
295
  proofStatements,
234
296
  proofPath,
235
297
  isBackground: isBackground ?? false,
236
- activityBlockSteps: activityBlockSteps ?? [],
298
+ activityBlockSteps: normalizedActivitySteps,
237
299
  });
238
300
  // Track whether this is a background or feature outcome
239
301
  if (isBackground) {
@@ -246,75 +308,86 @@ export class ActivitiesStepper extends AStepper {
246
308
  }
247
309
  this.getWorld().logger.debug(`ActivitiesStepper: registerOutcome called with ${proofStatements.length} proof steps for "${outcome}"`);
248
310
  this.getWorld().logger.debug(`ActivitiesStepper: outcome is background=${isBackground}, will be added to ${isBackground ? 'backgroundOutcomePatterns' : 'featureOutcomePatterns'}`);
249
- // Store proofStatements for later retrieval
250
- const outcomeProofStatements = proofStatements;
251
- this.steps[outcome] = {
311
+ // FIXME: maybe we don't care if normalizedActivitySteps is empty
312
+ const step = {
252
313
  gwta: outcome,
253
314
  virtual: true, // Dynamically registered outcomes are virtual
315
+ handlesUndefined: true, // FIXME they should not need to handle undefined at the virtual stepper level
254
316
  description: `Outcome: ${outcome}. Proof: ${proofStatements.join('; ')}`,
255
317
  action: async (args, featureStep) => {
256
- this.getWorld().logger.debug(`ActivitiesStepper: executing recipe for outcome "${outcome}" with args ${JSON.stringify(args)}`);
257
- // Interpolate args into statements (e.g., {user} -> "admin")
258
- const expandStatements = (statements) => statements.map(statement => {
259
- let expanded = statement;
260
- for (const [key, value] of Object.entries(args)) {
261
- expanded = expanded.replace(new RegExp(`\\{${key}\\}`, 'g'), String(value));
318
+ // Reconstruct args to include unresolved terms (skipped by strict populateActionArgs)
319
+ const robustArgs = { ...args };
320
+ if (featureStep.action.stepValuesMap) {
321
+ for (const [key, val] of Object.entries(featureStep.action.stepValuesMap)) {
322
+ if (robustArgs[key] === undefined && val.term !== undefined) {
323
+ robustArgs[key] = val.term;
324
+ }
262
325
  }
263
- return expanded;
264
- });
265
- const resolveAndExecute = async (statements, stepOffset = 0, execMode = ExecMode.NO_CYCLES) => {
266
- const expandedStatements = expandStatements(statements);
267
- const resolvedSteps = [];
268
- for (let i = 0; i < expandedStatements.length; i++) {
269
- const statement = expandedStatements[i];
270
- this.getWorld().logger.debug(`ActivitiesStepper: resolving statement ${i}: "${statement}"`);
271
- const resolved = findFeatureStepsFromStatement(statement, this.steppers, this.getWorld(), proofPath, [...featureStep.seqPath, stepOffset + i], 1);
272
- resolvedSteps.push(...resolved);
326
+ }
327
+ this.getWorld().logger.debug(`ActivitiesStepper: executing recipe for outcome "${outcome}" with args ${JSON.stringify(robustArgs)}`);
328
+ // 1. Check Proof (Speculative)
329
+ if (proofStatements.length > 0) {
330
+ const proof = await this.runner.runStatements(proofStatements, { args: robustArgs, intent: { mode: 'speculative' }, parentStep: featureStep });
331
+ if (proof.kind === 'ok') {
332
+ this.getWorld().logger.debug(`ActivitiesStepper: proof passed for outcome "${outcome}", skipping activity body`);
333
+ return actionOK({
334
+ messageContext: {
335
+ incident: EExecutionMessageType.ACTION,
336
+ incidentDetails: { proofStatements, proofSatisfied: true }
337
+ }
338
+ });
273
339
  }
274
- return await executeSubFeatureSteps(featureStep, resolvedSteps, this.steppers, this.getWorld(), execMode);
275
- };
276
- // ALWAYS-VERIFY: Try proof first (P ∨ (¬P ∧ [A]P) semantics)
277
- this.getWorld().logger.debug(`ActivitiesStepper: checking proof for outcome "${outcome}"`);
278
- this.getWorld().logger.debug(`ActivitiesStepper: proof statements: ${JSON.stringify(proofStatements)}`);
279
- const proofResult = await resolveAndExecute(proofStatements, 0, ExecMode.NO_CYCLES);
280
- if (proofResult.ok) {
281
- this.getWorld().logger.debug(`ActivitiesStepper: proof passed for outcome "${outcome}", skipping activity body`);
282
- const interpolatedProof = expandStatements(outcomeProofStatements);
283
- return actionOK({
284
- messageContext: {
285
- incident: EExecutionMessageType.ACTION,
286
- incidentDetails: { proofStatements: interpolatedProof, proofSatisfied: true }
340
+ }
341
+ // 2. Proof Failed or not present
342
+ if (!featureStep.intent?.stepperOptions?.isEnsure) {
343
+ if (normalizedActivitySteps && normalizedActivitySteps.length > 0) {
344
+ this.getWorld().logger.debug(`ActivitiesStepper: running activity body for outcome "${outcome}" (no ensure)`);
345
+ const mode = featureStep.intent?.mode === 'speculative' ? 'speculative' : 'authoritative';
346
+ const act = await this.runner.runStatements(normalizedActivitySteps, { args: robustArgs, intent: { mode, usage: featureStep.intent?.usage }, parentStep: featureStep });
347
+ if (act.kind !== 'ok') {
348
+ return actionNotOK(`ActivitiesStepper: activity body failed for outcome "${outcome}": ${act.message}`);
287
349
  }
288
- });
350
+ return actionOK();
351
+ }
352
+ if (proofStatements.length > 0) {
353
+ return actionNotOK(`ActivitiesStepper: proof failed for outcome "${outcome}"`);
354
+ }
355
+ // No proof (waypointLabel) and not ensure: do nothing.
356
+ return actionOK();
289
357
  }
290
- // Proof failed - run activity body, then verify proof passes
291
- if (activityBlockSteps && activityBlockSteps.length > 0) {
358
+ // 3. Ensure Mode: Run Activity Body
359
+ if (normalizedActivitySteps && normalizedActivitySteps.length > 0) {
292
360
  this.getWorld().logger.debug(`ActivitiesStepper: proof failed for outcome "${outcome}", running activity body`);
293
- // Execute activity steps (WITH_CYCLES to allow hooks)
294
- const activityResult = await resolveAndExecute(activityBlockSteps, 100, ExecMode.WITH_CYCLES);
295
- if (!activityResult.ok) {
296
- return actionNotOK(`ActivitiesStepper: activity body failed for outcome "${outcome}"`);
361
+ const mode = featureStep.intent?.mode === 'speculative' ? 'speculative' : 'authoritative';
362
+ const act = await this.runner.runStatements(normalizedActivitySteps, { args: robustArgs, intent: { mode, usage: featureStep.intent?.usage }, parentStep: featureStep });
363
+ if (act.kind !== 'ok') {
364
+ return actionNotOK(`ActivitiesStepper: activity body failed for outcome "${outcome}": ${act.message}`);
297
365
  }
298
- // Verify proof now passes after running activity
366
+ // 4. Verify Proof After Activity
299
367
  this.getWorld().logger.debug(`ActivitiesStepper: verifying proof after activity body for outcome "${outcome}"`);
300
- const verifyResult = await resolveAndExecute(proofStatements, 200, ExecMode.NO_CYCLES);
301
- if (!verifyResult.ok) {
302
- return actionNotOK(`ActivitiesStepper: proof verification failed after activity body for outcome "${outcome}"`);
368
+ if (proofStatements.length > 0) {
369
+ const verify = await this.runner.runStatements(proofStatements, { args: robustArgs, intent: { mode, usage: featureStep.intent?.usage }, parentStep: featureStep });
370
+ if (verify.kind !== 'ok') {
371
+ return actionNotOK(`ActivitiesStepper: proof verification failed after activity body for outcome "${outcome}": ${verify.message}`);
372
+ }
303
373
  }
304
- const interpolatedProof = expandStatements(outcomeProofStatements);
305
374
  return actionOK({
306
375
  messageContext: {
307
376
  incident: EExecutionMessageType.ACTION,
308
- incidentDetails: { proofStatements: interpolatedProof }
377
+ incidentDetails: { proofStatements, proofSatisfied: true }
309
378
  }
310
379
  });
311
380
  }
312
- else {
313
- // No activity body, just proof - and it failed
314
- return actionNotOK(`ActivitiesStepper: proof failed and no activity body available for outcome "${outcome}"`);
315
- }
381
+ return actionNotOK(`ActivitiesStepper: no activity body for outcome "${outcome}"`);
316
382
  }
317
383
  };
384
+ this.steps[outcome] = step;
385
+ if (!isBackground) {
386
+ if (!this.featureSteps.has(proofPath)) {
387
+ this.featureSteps.set(proofPath, {});
388
+ }
389
+ this.featureSteps.get(proofPath)[outcome] = step;
390
+ }
318
391
  this.getWorld().logger.debug(`ActivitiesStepper: registered outcome pattern "${outcome}" with ${proofStatements.length} proof steps`);
319
392
  }
320
393
  /**
@@ -336,6 +409,69 @@ export class ActivitiesStepper extends AStepper {
336
409
  this.getWorld().logger.debug(`waypoint registered: "${outcome}"`, messageContext);
337
410
  }
338
411
  }
412
+ resolveWaypointCommon(line, path, allLines, lineIndex, requireProof) {
413
+ if (!line.match(/^waypoint\s+/i)) {
414
+ return false;
415
+ }
416
+ let outcome;
417
+ let proofStatements = [];
418
+ if (requireProof) {
419
+ if (!line.match(/^waypoint\s+.+?\s+with\s+/i)) {
420
+ return false;
421
+ }
422
+ // Find the LAST occurrence of ' with ' to separate outcome from proof
423
+ // This allows 'with' to appear in outcome names (e.g., "{name} agreed with {concern}")
424
+ const withoutPrefix = line.replace(/^waypoint\s+/i, '');
425
+ const lastWithIndex = withoutPrefix.lastIndexOf(' with ');
426
+ if (lastWithIndex === -1)
427
+ return false;
428
+ outcome = withoutPrefix.substring(0, lastWithIndex).trim();
429
+ const proofRaw = withoutPrefix.substring(lastWithIndex + 6).trim(); // ' with ' is 6 chars
430
+ proofStatements = proofRaw.split('\n').map(s => s.trim()).filter(s => s.length > 0);
431
+ }
432
+ else {
433
+ if (line.match(/^waypoint\s+.+?\s+with\s+/i)) {
434
+ return false;
435
+ }
436
+ const match = line.match(/^waypoint\s+(.+?)$/i);
437
+ if (!match)
438
+ return false;
439
+ outcome = match[1].trim();
440
+ }
441
+ // Skip if already registered (prevents infinite loops)
442
+ if (this.backgroundOutcomePatterns.has(outcome) || this.featureOutcomePatterns.has(outcome)) {
443
+ return true;
444
+ }
445
+ const isBackground = path.includes('backgrounds/');
446
+ // Scan backwards to find containing Activity block
447
+ let activityBlockSteps;
448
+ if (allLines && lineIndex !== undefined) {
449
+ let activityStartLine = -1;
450
+ for (let i = lineIndex - 1; i >= 0; i--) {
451
+ const prevLine = getActionable(allLines[i]);
452
+ if (prevLine.match(/^Activity:/i)) {
453
+ activityStartLine = i;
454
+ break;
455
+ }
456
+ if (prevLine.match(/^(Feature|Scenario|Background):/i)) {
457
+ break;
458
+ }
459
+ }
460
+ if (activityStartLine !== -1) {
461
+ // Collect steps between Activity: and waypoint (excluding waypoint itself)
462
+ const blockLines = [];
463
+ for (let i = activityStartLine + 1; i < lineIndex; i++) {
464
+ const stepLine = getActionable(allLines[i]);
465
+ if (stepLine && !stepLine.match(/^waypoint\s+/i)) {
466
+ blockLines.push(stepLine);
467
+ }
468
+ }
469
+ activityBlockSteps = blockLines;
470
+ }
471
+ }
472
+ this.registerOutcome(outcome, proofStatements, path, isBackground, activityBlockSteps);
473
+ return true;
474
+ }
339
475
  }
340
476
  export default ActivitiesStepper;
341
477
  //# sourceMappingURL=activities-stepper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"activities-stepper.js","sourceRoot":"","sources":["../../src/steps/activities-stepper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activities-stepper.js","sourceRoot":"","sources":["../../src/steps/activities-stepper.ts"],"names":[],"mappings":"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"}