@haibun/core 3.1.1 → 3.3.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 (240) hide show
  1. package/build/currentVersion.d.ts +1 -1
  2. package/build/currentVersion.js +1 -1
  3. package/build/kireji/converter.d.ts +16 -1
  4. package/build/kireji/converter.d.ts.map +1 -1
  5. package/build/kireji/converter.js +19 -2
  6. package/build/kireji/converter.js.map +1 -1
  7. package/build/lib/EventLogger.d.ts +16 -10
  8. package/build/lib/EventLogger.d.ts.map +1 -1
  9. package/build/lib/EventLogger.js +54 -21
  10. package/build/lib/EventLogger.js.map +1 -1
  11. package/build/lib/astepper.d.ts +6 -0
  12. package/build/lib/astepper.d.ts.map +1 -1
  13. package/build/lib/astepper.js +1 -0
  14. package/build/lib/astepper.js.map +1 -1
  15. package/build/lib/base-prompt-manager.d.ts.map +1 -1
  16. package/build/lib/base-prompt-manager.js +2 -2
  17. package/build/lib/base-prompt-manager.js.map +1 -1
  18. package/build/lib/capture-locator.d.ts +1 -1
  19. package/build/lib/capture-locator.d.ts.map +1 -1
  20. package/build/lib/capture-locator.js +4 -2
  21. package/build/lib/capture-locator.js.map +1 -1
  22. package/build/lib/core/flow-runner.d.ts +5 -4
  23. package/build/lib/core/flow-runner.d.ts.map +1 -1
  24. package/build/lib/core/flow-runner.js +48 -15
  25. package/build/lib/core/flow-runner.js.map +1 -1
  26. package/build/lib/core-domains.d.ts +1 -1
  27. package/build/lib/core-domains.d.ts.map +1 -1
  28. package/build/lib/core-domains.js +1 -1
  29. package/build/lib/core-domains.js.map +1 -1
  30. package/build/lib/defs.d.ts +103 -200
  31. package/build/lib/defs.d.ts.map +1 -1
  32. package/build/lib/defs.js +4 -46
  33. package/build/lib/defs.js.map +1 -1
  34. package/build/lib/feature-variables.d.ts +2 -1
  35. package/build/lib/feature-variables.d.ts.map +1 -1
  36. package/build/lib/feature-variables.js +1 -2
  37. package/build/lib/feature-variables.js.map +1 -1
  38. package/build/lib/features.d.ts +5 -4
  39. package/build/lib/features.d.ts.map +1 -1
  40. package/build/lib/features.js +26 -16
  41. package/build/lib/features.js.map +1 -1
  42. package/build/lib/fixme.d.ts +1 -1
  43. package/build/lib/fixme.d.ts.map +1 -1
  44. package/build/lib/http-observations.d.ts +25 -0
  45. package/build/lib/http-observations.d.ts.map +1 -0
  46. package/build/lib/http-observations.js +40 -0
  47. package/build/lib/http-observations.js.map +1 -0
  48. package/build/lib/namedVars.d.ts +5 -1
  49. package/build/lib/namedVars.d.ts.map +1 -1
  50. package/build/lib/namedVars.js +11 -1
  51. package/build/lib/namedVars.js.map +1 -1
  52. package/build/lib/node-http-events.d.ts +16 -0
  53. package/build/lib/node-http-events.d.ts.map +1 -0
  54. package/build/lib/node-http-events.js +125 -0
  55. package/build/lib/node-http-events.js.map +1 -0
  56. package/build/lib/populateActionArgs.d.ts +2 -1
  57. package/build/lib/populateActionArgs.d.ts.map +1 -1
  58. package/build/lib/populateActionArgs.js.map +1 -1
  59. package/build/lib/resolver-features.d.ts +2 -1
  60. package/build/lib/resolver-features.d.ts.map +1 -1
  61. package/build/lib/resolver-features.js +2 -2
  62. package/build/lib/resolver-features.js.map +1 -1
  63. package/build/lib/step-trace.d.ts +10 -0
  64. package/build/lib/step-trace.d.ts.map +1 -0
  65. package/build/lib/step-trace.js +3 -0
  66. package/build/lib/step-trace.js.map +1 -0
  67. package/build/lib/stepper-registry.d.ts +28 -0
  68. package/build/lib/stepper-registry.d.ts.map +1 -0
  69. package/build/lib/stepper-registry.js +42 -0
  70. package/build/lib/stepper-registry.js.map +1 -0
  71. package/build/lib/test/SetTimeStepper.d.ts +2 -2
  72. package/build/lib/test/SetTimeStepper.d.ts.map +1 -1
  73. package/build/lib/test/SetTimeStepper.js +1 -1
  74. package/build/lib/test/SetTimeStepper.js.map +1 -1
  75. package/build/lib/test/TestSteps.d.ts +5 -3
  76. package/build/lib/test/TestSteps.d.ts.map +1 -1
  77. package/build/lib/test/TestStepsWithOptions.d.ts +3 -1
  78. package/build/lib/test/TestStepsWithOptions.d.ts.map +1 -1
  79. package/build/lib/test/TestStepsWithOptions.js +3 -5
  80. package/build/lib/test/TestStepsWithOptions.js.map +1 -1
  81. package/build/lib/test/lib.d.ts +4 -3
  82. package/build/lib/test/lib.d.ts.map +1 -1
  83. package/build/lib/test/lib.js +12 -12
  84. package/build/lib/test/lib.js.map +1 -1
  85. package/build/lib/test/resolvedTestFeatures.d.ts +5 -5
  86. package/build/lib/test/resolvedTestFeatures.js +1 -1
  87. package/build/lib/test/resolvedTestFeatures.js.map +1 -1
  88. package/build/lib/ttag.d.ts +2 -2
  89. package/build/lib/ttag.d.ts.map +1 -1
  90. package/build/lib/ttag.js +5 -5
  91. package/build/lib/ttag.js.map +1 -1
  92. package/build/lib/util/index.d.ts +20 -12
  93. package/build/lib/util/index.d.ts.map +1 -1
  94. package/build/lib/util/index.js +53 -17
  95. package/build/lib/util/index.js.map +1 -1
  96. package/build/lib/workspace-discovery.d.ts +37 -0
  97. package/build/lib/workspace-discovery.d.ts.map +1 -0
  98. package/build/lib/workspace-discovery.js +96 -0
  99. package/build/lib/workspace-discovery.js.map +1 -0
  100. package/build/monitor/index.d.ts +1 -10
  101. package/build/monitor/index.d.ts.map +1 -1
  102. package/build/monitor/index.js +1 -14
  103. package/build/monitor/index.js.map +1 -1
  104. package/build/phases/Executor.d.ts +3 -11
  105. package/build/phases/Executor.d.ts.map +1 -1
  106. package/build/phases/Executor.js +76 -169
  107. package/build/phases/Executor.js.map +1 -1
  108. package/build/phases/Resolver.d.ts +25 -1
  109. package/build/phases/Resolver.d.ts.map +1 -1
  110. package/build/phases/Resolver.js +88 -22
  111. package/build/phases/Resolver.js.map +1 -1
  112. package/build/phases/collector.d.ts +1 -0
  113. package/build/phases/collector.d.ts.map +1 -1
  114. package/build/phases/collector.js +7 -3
  115. package/build/phases/collector.js.map +1 -1
  116. package/build/runner.d.ts +3 -2
  117. package/build/runner.d.ts.map +1 -1
  118. package/build/runner.js +0 -1
  119. package/build/runner.js.map +1 -1
  120. package/build/schema/protocol.d.ts +1443 -0
  121. package/build/schema/protocol.d.ts.map +1 -0
  122. package/build/schema/protocol.js +429 -0
  123. package/build/schema/protocol.js.map +1 -0
  124. package/build/steps/activities-stepper.d.ts +24 -28
  125. package/build/steps/activities-stepper.d.ts.map +1 -1
  126. package/build/steps/activities-stepper.js +150 -162
  127. package/build/steps/activities-stepper.js.map +1 -1
  128. package/build/steps/conformance.d.ts +3 -1
  129. package/build/steps/conformance.d.ts.map +1 -1
  130. package/build/steps/conformance.js +1 -0
  131. package/build/steps/conformance.js.map +1 -1
  132. package/build/steps/console-monitor-stepper.d.ts +3 -6
  133. package/build/steps/console-monitor-stepper.d.ts.map +1 -1
  134. package/build/steps/console-monitor-stepper.js +23 -64
  135. package/build/steps/console-monitor-stepper.js.map +1 -1
  136. package/build/steps/debugger-stepper.d.ts +7 -4
  137. package/build/steps/debugger-stepper.d.ts.map +1 -1
  138. package/build/steps/debugger-stepper.js +36 -43
  139. package/build/steps/debugger-stepper.js.map +1 -1
  140. package/build/steps/haibun.d.ts +24 -16
  141. package/build/steps/haibun.d.ts.map +1 -1
  142. package/build/steps/haibun.js +68 -31
  143. package/build/steps/haibun.js.map +1 -1
  144. package/build/steps/lib/tts.d.ts +2 -3
  145. package/build/steps/lib/tts.d.ts.map +1 -1
  146. package/build/steps/lib/tts.js +4 -5
  147. package/build/steps/lib/tts.js.map +1 -1
  148. package/build/steps/logic-stepper.d.ts +14 -3
  149. package/build/steps/logic-stepper.d.ts.map +1 -1
  150. package/build/steps/logic-stepper.js +116 -17
  151. package/build/steps/logic-stepper.js.map +1 -1
  152. package/build/steps/narrator.d.ts +7 -5
  153. package/build/steps/narrator.d.ts.map +1 -1
  154. package/build/steps/narrator.js +30 -18
  155. package/build/steps/narrator.js.map +1 -1
  156. package/build/steps/parse.d.ts +5 -3
  157. package/build/steps/parse.d.ts.map +1 -1
  158. package/build/steps/parse.js +2 -1
  159. package/build/steps/parse.js.map +1 -1
  160. package/build/steps/variables-stepper.d.ts +285 -4
  161. package/build/steps/variables-stepper.d.ts.map +1 -1
  162. package/build/steps/variables-stepper.js +44 -50
  163. package/build/steps/variables-stepper.js.map +1 -1
  164. package/package.json +9 -16
  165. package/build/lib/Logger.d.ts +0 -48
  166. package/build/lib/Logger.d.ts.map +0 -1
  167. package/build/lib/Logger.js +0 -85
  168. package/build/lib/Logger.js.map +0 -1
  169. package/build/lib/TestLogger.d.ts +0 -12
  170. package/build/lib/TestLogger.d.ts.map +0 -1
  171. package/build/lib/TestLogger.js +0 -12
  172. package/build/lib/TestLogger.js.map +0 -1
  173. package/build/lib/Timer.d.ts +0 -7
  174. package/build/lib/Timer.d.ts.map +0 -1
  175. package/build/lib/Timer.js +0 -9
  176. package/build/lib/Timer.js.map +0 -1
  177. package/build/lib/core/protocol.d.ts +0 -58
  178. package/build/lib/core/protocol.d.ts.map +0 -1
  179. package/build/lib/core/protocol.js +0 -18
  180. package/build/lib/core/protocol.js.map +0 -1
  181. package/build/lib/event-bridge.d.ts +0 -42
  182. package/build/lib/event-bridge.d.ts.map +0 -1
  183. package/build/lib/event-bridge.js +0 -214
  184. package/build/lib/event-bridge.js.map +0 -1
  185. package/build/lib/interfaces/logger.d.ts +0 -123
  186. package/build/lib/interfaces/logger.d.ts.map +0 -1
  187. package/build/lib/interfaces/logger.js +0 -29
  188. package/build/lib/interfaces/logger.js.map +0 -1
  189. package/build/lib/util/variables.d.ts +0 -9
  190. package/build/lib/util/variables.d.ts.map +0 -1
  191. package/build/lib/util/variables.js +0 -40
  192. package/build/lib/util/variables.js.map +0 -1
  193. package/build/monitor/browser-stubs.d.ts +0 -12
  194. package/build/monitor/browser-stubs.d.ts.map +0 -1
  195. package/build/monitor/browser-stubs.js +0 -20
  196. package/build/monitor/browser-stubs.js.map +0 -1
  197. package/build/monitor/constants.d.ts +0 -9
  198. package/build/monitor/constants.d.ts.map +0 -1
  199. package/build/monitor/constants.js +0 -9
  200. package/build/monitor/constants.js.map +0 -1
  201. package/build/monitor/event-view.d.ts +0 -40
  202. package/build/monitor/event-view.d.ts.map +0 -1
  203. package/build/monitor/event-view.js +0 -104
  204. package/build/monitor/event-view.js.map +0 -1
  205. package/build/monitor/filters.d.ts +0 -17
  206. package/build/monitor/filters.d.ts.map +0 -1
  207. package/build/monitor/filters.js +0 -32
  208. package/build/monitor/filters.js.map +0 -1
  209. package/build/monitor/formatters.d.ts +0 -27
  210. package/build/monitor/formatters.d.ts.map +0 -1
  211. package/build/monitor/formatters.js +0 -89
  212. package/build/monitor/formatters.js.map +0 -1
  213. package/build/monitor/jit-serialization.d.ts +0 -9
  214. package/build/monitor/jit-serialization.d.ts.map +0 -1
  215. package/build/monitor/jit-serialization.js +0 -73
  216. package/build/monitor/jit-serialization.js.map +0 -1
  217. package/build/monitor/monitor-types.d.ts +0 -119
  218. package/build/monitor/monitor-types.d.ts.map +0 -1
  219. package/build/monitor/monitor-types.js +0 -43
  220. package/build/monitor/monitor-types.js.map +0 -1
  221. package/build/monitor/speculative-tracker.d.ts +0 -20
  222. package/build/monitor/speculative-tracker.d.ts.map +0 -1
  223. package/build/monitor/speculative-tracker.js +0 -38
  224. package/build/monitor/speculative-tracker.js.map +0 -1
  225. package/build/monitor/state.d.ts +0 -31
  226. package/build/monitor/state.d.ts.map +0 -1
  227. package/build/monitor/state.js +0 -110
  228. package/build/monitor/state.js.map +0 -1
  229. package/build/monitor/timer.d.ts +0 -11
  230. package/build/monitor/timer.d.ts.map +0 -1
  231. package/build/monitor/timer.js +0 -13
  232. package/build/monitor/timer.js.map +0 -1
  233. package/build/monitor/tree-builder.d.ts +0 -25
  234. package/build/monitor/tree-builder.d.ts.map +0 -1
  235. package/build/monitor/tree-builder.js +0 -36
  236. package/build/monitor/tree-builder.js.map +0 -1
  237. package/build/schema/events.d.ts +0 -426
  238. package/build/schema/events.d.ts.map +0 -1
  239. package/build/schema/events.js +0 -123
  240. package/build/schema/events.js.map +0 -1
@@ -1,14 +1,12 @@
1
- import { STAY, STAY_FAILURE, CHECK_NO, CHECK_YES, CHECK_YIELD, STEP_DELAY, CONTINUE_AFTER_ERROR, ExecMode, MAYBE_CHECK_YES, MAYBE_CHECK_NO, FEATURE_START } from '../lib/defs.js';
2
- import { LifecycleEvent } from '../schema/events.js';
3
- import { EExecutionMessageType } from '../lib/interfaces/logger.js';
4
- import { topicArtifactLogger } from '../lib/Logger.js';
5
- import { actionNotOK, sleep, findStepper, constructorName, setStepperWorldsAndDomains, formatCurrentSeqPath } from '../lib/util/index.js';
6
- import { SCENARIO_START } from '../lib/defs.js';
7
- import { Timer } from '../lib/Timer.js';
1
+ import { ExecMode } from '../lib/defs.js';
2
+ import { STAY, STAY_FAILURE, STEP_DELAY, CONTINUE_AFTER_ERROR, FEATURE_START, Timer } from '../schema/protocol.js';
3
+ import { LifecycleEvent } from '../schema/protocol.js';
4
+ import { actionNotOK, sleep, findStepper, setStepperWorldsAndDomains, } from '../lib/util/index.js';
5
+ import { SCENARIO_START } from '../schema/protocol.js';
8
6
  import { FeatureVariables } from '../lib/feature-variables.js';
9
7
  import { populateActionArgs } from '../lib/populateActionArgs.js';
10
8
  import { registerDomains } from '../lib/domain-types.js';
11
- export const endExecutonContext = { incident: EExecutionMessageType.ACTION, incidentDetails: { end: true } };
9
+ import { basename } from 'path';
12
10
  function calculateShouldClose({ thisFeatureOK, isLast, stayOnFailure, continueAfterError }) {
13
11
  if (thisFeatureOK) {
14
12
  return true;
@@ -31,8 +29,6 @@ export class Executor {
31
29
  if (!firstFailedFeature) {
32
30
  return undefined;
33
31
  }
34
- // Filter out speculative failures - these are intentional failures inside compound
35
- // statements like `not` that shouldn't be reported as the main error
36
32
  const failedStep = firstFailedFeature.stepResults.find(sr => !sr.ok && sr.intent?.mode !== 'speculative');
37
33
  if (!failedStep) {
38
34
  return undefined;
@@ -55,43 +51,71 @@ export class Executor {
55
51
  static async action(steppers, featureStep, found, args, world) {
56
52
  const stepper = findStepper(steppers, found.stepperName);
57
53
  const action = stepper.steps[found.actionName].action;
54
+ // Track step usage for observation pattern
55
+ const usageKey = `${found.stepperName}.${found.actionName}`;
56
+ // Ensure observations map exists (it should be initialized in executeFeatures)
57
+ if (!world.runtime.observations) {
58
+ world.runtime.observations = new Map();
59
+ }
60
+ const stepUsage = world.runtime.observations.get('stepUsage') || new Map();
61
+ stepUsage.set(usageKey, (stepUsage.get(usageKey) || 0) + 1);
62
+ world.runtime.observations.set('stepUsage', stepUsage);
58
63
  try {
59
64
  return await action(args, featureStep);
60
65
  }
61
66
  catch (caught) {
62
67
  if (featureStep.intent?.mode !== 'speculative') {
63
- world.logger.error(caught.stack);
68
+ world.eventLogger.log(featureStep, 'error', caught.stack || caught.message);
64
69
  }
65
- const messageContext = {
66
- incident: EExecutionMessageType.ACTION,
67
- incidentDetails: { caught: (caught?.stack || caught).toString() },
68
- };
69
- return actionNotOK(`in ${featureStep.in}: ${caught.message}`, { messageContext });
70
+ return actionNotOK(`in ${featureStep.in}: ${caught.message}`);
70
71
  }
71
72
  }
72
73
  static async executeFeatures(steppers, world, features) {
73
- await addStepperDomains(world, steppers);
74
+ if (!world.runtime.observations) {
75
+ world.runtime.observations = new Map();
76
+ }
77
+ await addStepperConcerns(world, steppers);
74
78
  world.eventLogger.setStepperCallback((event) => {
75
79
  doStepperCycleSync(steppers, 'onEvent', event);
76
80
  });
81
+ // Emit resolved features artifact once at the start
82
+ try {
83
+ const { ResolvedFeaturesArtifact } = await import('../schema/protocol.js');
84
+ const resolvedFeaturesEvent = ResolvedFeaturesArtifact.parse({
85
+ id: `artifact.resolvedFeatures`,
86
+ timestamp: Date.now(),
87
+ kind: 'artifact',
88
+ artifactType: 'resolvedFeatures',
89
+ resolvedFeatures: features,
90
+ mimetype: 'application/json',
91
+ });
92
+ world.eventLogger.emit(resolvedFeaturesEvent);
93
+ }
94
+ catch {
95
+ // Silently continue if artifact emission fails
96
+ }
77
97
  await doStepperCycle(steppers, 'startExecution', features);
78
98
  let okSoFar = true;
79
99
  const stayOnFailure = world.options[STAY] === STAY_FAILURE;
80
100
  const featureResults = [];
81
101
  let featureNum = 0;
82
102
  const continueAfterError = !!(world.options[CONTINUE_AFTER_ERROR]);
103
+ // Create a synthetic featureStep for logging outside of step context
104
+ const syntheticStep = { source: { path: '' }, in: '', seqPath: [0], action: { actionName: 'runner', stepperName: 'Executor', step: { action: async () => ({ ok: true }) } } };
83
105
  for (const feature of features) {
84
- if (process.env.NODE_ENV !== 'test') {
85
- console.log("\n");
86
- }
87
106
  featureNum++;
88
107
  const isLast = featureNum === features.length;
89
108
  world.runtime.exhaustionError = undefined;
90
- const newWorld = { ...world, tag: { ...world.tag, ...{ featureNum: 0 + featureNum } } };
109
+ const featureName = basename(feature.path).replace(/\..*$/, '');
110
+ const newWorld = { ...world, tag: { ...world.tag, featureNum: featureNum, featureName } };
91
111
  const featureExecutor = new FeatureExecutor(steppers, newWorld);
112
+ // Reset observations for the new feature
113
+ if (newWorld.runtime) {
114
+ newWorld.runtime.observations = new Map();
115
+ }
92
116
  await setStepperWorldsAndDomains(steppers, newWorld);
93
117
  await doStepperCycle(steppers, 'startFeature', { resolvedFeature: feature, index: featureNum });
94
- world.logger.log(`📝 feature ${featureNum}/${features.length}: ${feature.path}`);
118
+ world.eventLogger.log(syntheticStep, 'info', `feature ${featureNum}/${features.length}: ${feature.path}`);
95
119
  const featureResult = await featureExecutor.doFeature(feature);
96
120
  if (newWorld.runtime && newWorld.runtime.exhaustionError) {
97
121
  world.runtime.exhaustionError = newWorld.runtime.exhaustionError;
@@ -105,23 +129,11 @@ export class Executor {
105
129
  featureResults.push(featureResult);
106
130
  const shouldCloseFactors = { thisFeatureOK: featureResult.ok, okSoFar, isLast, continueAfterError, stayOnFailure };
107
131
  const shouldClose = calculateShouldClose(shouldCloseFactors);
108
- if (shouldClose) {
109
- world.logger.debug(`shouldClose ${JSON.stringify(shouldCloseFactors)}`);
110
- }
111
- else {
112
- world.logger.debug(`no shouldClose because ${JSON.stringify(shouldCloseFactors)}`);
113
- }
114
132
  await doStepperCycle(steppers, 'endFeature', { world: newWorld, shouldClose, isLast, okSoFar, continueAfterError, stayOnFailure, thisFeatureOK: featureResult.ok });
115
133
  if (!okSoFar) {
116
134
  if (!continueAfterError && !isLast) {
117
- world.logger.debug(`stopping without ${CONTINUE_AFTER_ERROR}`);
118
135
  break;
119
136
  }
120
- else {
121
- if (continueAfterError && !isLast) {
122
- world.logger.debug(`continuing because ${CONTINUE_AFTER_ERROR}`);
123
- }
124
- }
125
137
  }
126
138
  }
127
139
  const results = { ok: okSoFar, featureResults: featureResults, tag: world.tag, shared: world.shared, steppers, failure: undefined };
@@ -138,119 +150,75 @@ export class Executor {
138
150
  export class FeatureExecutor {
139
151
  steppers;
140
152
  world;
141
- logit;
142
153
  startOffset;
143
- constructor(steppers, world, logit = topicArtifactLogger(world), startOffset = Timer.since()) {
154
+ constructor(steppers, world, startOffset = Timer.since()) {
144
155
  this.steppers = steppers;
145
156
  this.world = world;
146
- this.logit = logit;
147
157
  this.startOffset = startOffset;
148
158
  }
149
- static formatStepLogMessage(featureStep, actionResult, isSubStep) {
150
- const seqPathStr = formatCurrentSeqPath(featureStep.seqPath);
151
- if (isSubStep) {
152
- // Substeps use yield icon with maybe status
153
- const maybeStatus = actionResult.ok ? MAYBE_CHECK_YES : MAYBE_CHECK_NO;
154
- return `${CHECK_YIELD} ${seqPathStr} ${maybeStatus} ${featureStep.in}`;
155
- }
156
- // Top-level steps use YES/NO icons
157
- if (actionResult.ok) {
158
- return `${CHECK_YES} ${seqPathStr} ${featureStep.in}`;
159
- }
160
- const errorMsg = actionResult.message;
161
- return `${CHECK_NO} ${seqPathStr} ${featureStep.in}\n Error: ${errorMsg}`;
162
- }
163
159
  async doFeature(feature) {
164
160
  const world = this.world;
165
161
  let ok = true;
166
162
  world.runtime.stepResults = [];
167
163
  let currentScenario = 0;
168
- this.logit(`start feature ${currentScenario}`, { incident: EExecutionMessageType.FEATURE_START, incidentDetails: { startTime: Timer.START_TIME, feature } }, 'debug');
169
164
  let scopedVars = new FeatureVariables(world, {});
170
165
  let baseVars = new FeatureVariables(world, {});
171
- // Emit resolved features artifact for mermaid diagram
172
- // We do this at feature start so it's available immediately
173
- try {
174
- const { ResolvedFeaturesArtifact } = await import('../lib/EventLogger.js');
175
- // Use a synthetic ID or sequence for this artifact
176
- const resolvedFeaturesEvent = ResolvedFeaturesArtifact.parse({
177
- id: `${world.tag.sequence}.artifact.resolvedFeatures`,
178
- timestamp: Date.now(),
179
- kind: 'artifact',
180
- artifactType: 'resolvedFeatures',
181
- resolvedFeatures: [feature],
182
- mimetype: 'application/json',
183
- });
184
- // Pass the first step if available, or just emit directly?
185
- // eventLogger.artifact requires TFeatureStep OR we can use emit directly.
186
- // Since we supply ID, step is optional for ID generation, but required for type signature of .artifact().
187
- // But we can use .emit() directly since we constructed the event completely.
188
- world.eventLogger.emit(resolvedFeaturesEvent);
189
- }
190
- catch (e) {
191
- console.error('Failed to emit resolved features artifact', e);
192
- }
193
166
  for (const step of feature.featureSteps) {
194
167
  if (step.action.actionName === FEATURE_START) {
195
168
  if (currentScenario) {
196
- this.logit(`end scenario ${currentScenario}`, { incident: EExecutionMessageType.SCENARIO_END, incidentDetails: { currentScenario } }, 'debug');
197
169
  await doStepperCycle(this.steppers, 'endScenario', undefined);
198
- // Reset to base state (discarding scenario changes)
199
170
  world.shared = new FeatureVariables(world, baseVars.all());
200
171
  scopedVars = new FeatureVariables(world, world.shared.all());
201
172
  currentScenario = 0;
202
173
  }
174
+ // Set current feature path for dynamic statement execution (debugger, quantifiers, etc.)
175
+ world.runtime.currentFeaturePath = feature.path;
203
176
  world.eventLogger.emit(LifecycleEvent.parse({
204
- id: world.tag.sequence.toString(),
177
+ id: `feat-${world.tag.featureNum}`,
205
178
  timestamp: Date.now(),
206
179
  kind: 'lifecycle',
180
+ completeness: 'full',
207
181
  type: 'feature',
208
182
  stage: 'start',
209
- label: feature.path,
183
+ featurePath: feature.path,
210
184
  status: 'running',
211
185
  }));
212
186
  }
213
187
  if (step.action.actionName === SCENARIO_START) {
214
188
  if (currentScenario) {
215
- this.logit(`end scenario ${currentScenario}`, { incident: EExecutionMessageType.SCENARIO_END, incidentDetails: { currentScenario } }, 'debug');
216
189
  await doStepperCycle(this.steppers, 'endScenario', undefined);
217
- // Save variables after scenario ends so they persist to next scenario
218
190
  scopedVars = new FeatureVariables(world, world.shared.all());
219
191
  }
220
192
  currentScenario = currentScenario + 1;
221
- this.logit(`start scenario ${currentScenario}`, { incident: EExecutionMessageType.SCENARIO_START, incidentDetails: { currentScenario, scenarioTitle: step.in } }, 'debug');
222
193
  world.eventLogger.emit(LifecycleEvent.parse({
223
- id: world.tag.sequence.toString(),
194
+ id: `feat-${world.tag.featureNum}.scen-${currentScenario + 1}`,
224
195
  timestamp: Date.now(),
225
196
  kind: 'lifecycle',
197
+ completeness: 'full',
226
198
  type: 'scenario',
227
199
  stage: 'start',
228
- label: step.in,
200
+ scenarioName: step.in,
229
201
  status: 'running',
230
202
  }));
231
203
  await doStepperCycle(this.steppers, 'startScenario', { scopedVars });
232
204
  }
233
- // Prepend feature number and scenario number to seqPath
234
205
  const augmentedStep = { ...step, seqPath: [world.tag.featureNum, currentScenario + 1, ...step.seqPath] };
235
206
  const result = await FeatureExecutor.doFeatureStep(this.steppers, augmentedStep, world);
236
207
  ok = ok && result.ok;
237
- if (!ok || result.stepActionResult.messageContext === endExecutonContext) {
208
+ if (!ok) {
238
209
  break;
239
210
  }
240
211
  if (world.options[STEP_DELAY]) {
241
212
  await sleep(world.options[STEP_DELAY]);
242
213
  }
243
- // Stash feature variables (for feature-level steps before any scenario)
244
214
  if (!currentScenario) {
245
215
  scopedVars = new FeatureVariables(world, world.shared.all());
246
216
  baseVars = new FeatureVariables(world, world.shared.all());
247
217
  }
248
218
  }
249
219
  if (currentScenario) {
250
- this.logit(`end scenario ${currentScenario}`, { incident: EExecutionMessageType.SCENARIO_END, incidentDetails: { currentScenario } }, 'debug');
251
220
  await doStepperCycle(this.steppers, 'endScenario', undefined);
252
221
  }
253
- this.logit(`end feature ${currentScenario}`, { incident: EExecutionMessageType.FEATURE_END, incidentDetails: { totalTime: Timer.since() - this.startOffset, } }, 'debug');
254
222
  const featureResult = { path: feature.path, ok, stepResults: world.runtime.stepResults };
255
223
  return featureResult;
256
224
  }
@@ -272,57 +240,19 @@ export class FeatureExecutor {
272
240
  const start = Timer.since();
273
241
  const args = await populateActionArgs(featureStep, world, steppers);
274
242
  const isFullCycles = execMode === ExecMode.WITH_CYCLES;
275
- const isPrompt = execMode === ExecMode.PROMPT;
276
- const isSubStep = featureStep.isSubStep || false;
277
- // Check if the action function is async
278
- const stepper = findStepper(steppers, action.stepperName);
279
- const actionFn = stepper.steps[action.actionName].action;
280
- const isAsync = actionFn.constructor.name === 'AsyncFunction';
281
243
  let actionResult;
282
244
  if (isFullCycles) {
283
- if (isAsync) {
284
- // Use same log level for start as we'll use for completion
285
- const startMessage = `⏳ ${formatCurrentSeqPath(featureStep.seqPath)} ${featureStep.in}`;
286
- const startContext = { incident: EExecutionMessageType.STEP_START, tag: world.tag, incidentDetails: { featureStep, args } };
287
- if (isSubStep) {
288
- world.logger.trace(startMessage, startContext);
289
- }
290
- else {
291
- world.logger.log(startMessage, startContext);
292
- }
293
- if (isSubStep) {
294
- world.logger.trace(startMessage, startContext);
295
- }
296
- else {
297
- world.logger.log(startMessage, startContext);
298
- }
299
- }
300
245
  if (action.actionName !== FEATURE_START && action.actionName !== SCENARIO_START) {
301
- world.eventLogger.stepStart(featureStep, action.stepperName, action.actionName);
246
+ world.eventLogger.stepStart(featureStep, action.stepperName, action.actionName, args, featureStep.action.stepValuesMap);
302
247
  }
303
248
  let doAction = true;
304
249
  while (doAction) {
305
250
  await doStepperCycle(steppers, 'beforeStep', ({ featureStep }));
306
251
  actionResult = await Executor.action(steppers, featureStep, action, args, world);
307
- const baseContext = {
308
- artifacts: actionResult.artifact ? [actionResult.artifact] : undefined,
309
- tag: world.tag,
310
- incidentDetails: { actionResult, featureStep }
311
- };
312
- const messageContext = { ...baseContext, incident: EExecutionMessageType.STEP_END };
313
252
  if (action.actionName !== FEATURE_START && action.actionName !== SCENARIO_START) {
314
- world.eventLogger.stepEnd(featureStep, action.stepperName, action.actionName, actionResult.ok, actionResult.ok ? undefined : actionResult.message);
315
- }
316
- // Format the log message
317
- const logMessage = FeatureExecutor.formatStepLogMessage(featureStep, actionResult, isSubStep);
318
- // Use trace level for sub-steps, log level for top-level steps
319
- if (isSubStep) {
320
- world.logger.trace(logMessage, messageContext);
321
- }
322
- else {
323
- world.logger.log(logMessage, messageContext);
253
+ const errorMessage = !actionResult.ok ? actionResult.message : undefined;
254
+ world.eventLogger.stepEnd(featureStep, action.stepperName, action.actionName, actionResult.ok, errorMessage, args, featureStep.action.stepValuesMap, actionResult.topics);
324
255
  }
325
- // Push result BEFORE afterStep so parent appears before afterEvery child steps
326
256
  world.runtime.stepResults.push(stepResultFromActionResult(actionResult, action, start, Timer.since(), featureStep, ok && actionResult.ok));
327
257
  const instructions = await doStepperCycle(steppers, 'afterStep', ({ featureStep, actionResult }), action.actionName);
328
258
  doAction = instructions.some(i => i?.rerunStep);
@@ -333,37 +263,13 @@ export class FeatureExecutor {
333
263
  else {
334
264
  const doNext = instructions.some(i => i?.nextStep);
335
265
  if (doNext) {
336
- // wrap the previous actionResult in a new passing actionResult messageContext
337
- actionResult = { ...actionResult, ok: true, messageContext: { ...messageContext, incident: EExecutionMessageType.DEBUG, incidentDetails: { nextStep: true } } };
266
+ actionResult = { ...actionResult, ok: true };
338
267
  }
339
268
  }
340
269
  }
341
270
  }
342
271
  else {
343
272
  actionResult = await Executor.action(steppers, featureStep, action, args, world);
344
- const baseContext = {
345
- artifacts: actionResult.artifact ? [actionResult.artifact] : undefined,
346
- tag: world.tag,
347
- incidentDetails: { actionResult, featureStep }
348
- };
349
- const messageContext = { ...baseContext, incident: EExecutionMessageType.ACTION, incidentDetails: { ...baseContext.incidentDetails, execMode } };
350
- // Format the log message using the same formatter
351
- const logMessage = FeatureExecutor.formatStepLogMessage(featureStep, actionResult, isSubStep);
352
- // Only log if we have a message (null means skip logging)
353
- if (logMessage) {
354
- if (isPrompt) {
355
- world.logger.log(logMessage, messageContext);
356
- }
357
- else {
358
- // Use trace for substeps, log for others
359
- if (isSubStep) {
360
- world.logger.trace(logMessage, messageContext);
361
- }
362
- else {
363
- world.logger.log(logMessage, messageContext);
364
- }
365
- }
366
- }
367
273
  }
368
274
  ok = ok && actionResult.ok;
369
275
  const stepResult = stepResultFromActionResult(actionResult, action, start, Timer.since(), featureStep, ok);
@@ -380,39 +286,40 @@ const doStepperCycle = async (steppers, method, args, guidance = '') => {
380
286
  return (aVal ?? 0) - (bVal ?? 0);
381
287
  });
382
288
  for (const cycling of hasCycles) {
383
- cycling.getWorld().logger.debug(`♻️ ${method} ${constructorName(cycling)} ${guidance}`);
384
289
  const cycle = cycling.cycles[method];
385
- const paramsForApply = args === undefined ? [] : [args];
386
- // The cast here is to help TypeScript understand '.apply' and 'await' with a specifically typed function
387
- const result = await cycle.apply(cycling, paramsForApply);
388
- results.push(result);
290
+ if (cycle) {
291
+ const paramsForApply = args === undefined ? [] : [args];
292
+ const result = await cycle.apply(cycling, paramsForApply);
293
+ results.push(result);
294
+ }
389
295
  }
390
296
  return results;
391
297
  };
392
- // Synchronous version for event dispatch (onEvent doesn't need await)
393
298
  const doStepperCycleSync = (steppers, method, args) => {
394
299
  const hasCycles = steppers.filter(c => c.cycles && c.cycles[method]);
395
300
  for (const cycling of hasCycles) {
396
301
  const cycle = cycling.cycles[method];
397
- const paramsForApply = args === undefined ? [] : [args];
398
- cycle.apply(cycling, paramsForApply);
302
+ if (cycle) {
303
+ const paramsForApply = args === undefined ? [] : [args];
304
+ cycle.apply(cycling, paramsForApply);
305
+ }
399
306
  }
400
307
  };
401
- // Register domains from stepper cycles after setWorld
402
- const addStepperDomains = async (world, steppers) => {
403
- const results = await doStepperCycle(steppers, 'getDomains', undefined);
404
- registerDomains(world, results);
308
+ const addStepperConcerns = async (world, steppers) => {
309
+ const results = await doStepperCycle(steppers, 'getConcerns', undefined);
310
+ // Extract and register domains from concerns
311
+ const domains = results.filter(r => r?.domains).flatMap(r => r.domains);
312
+ registerDomains(world, [domains]);
313
+ // Sources are registered separately (looked up by name when needed)
405
314
  };
406
315
  function stepResultFromActionResult(actionResult, action, start, end, featureStep, ok) {
407
316
  const stepActionResult = { ...actionResult, name: action.actionName, start, end };
408
317
  const seqPath = featureStep.seqPath;
409
- const stepResult = { in: featureStep.in, path: featureStep.path, ok, stepActionResult, seqPath, intent: featureStep.intent };
318
+ const stepResult = { in: featureStep.in, path: featureStep.source.path, lineNumber: featureStep.source.lineNumber, ok, stepActionResult, seqPath, intent: featureStep.intent };
410
319
  return stepResult;
411
320
  }
412
321
  export function incSeqPath(withSeqPath, seqPath, dir = 1) {
413
- // add a path to seqpath, then check world.runtime.stepResults to find the next available index accodring to dir
414
322
  const prefix = seqPath.slice(0, -1);
415
- // negative seqPath "starts" at -1 and counts down
416
323
  let last = dir === -1 ? -1 : seqPath[seqPath.length - 1];
417
324
  let candidate = [...prefix, last];
418
325
  let found = true;
@@ -1 +1 @@
1
- {"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"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"}
@@ -3,16 +3,40 @@ import { AStepper } from '../lib/astepper.js';
3
3
  export declare class Resolver {
4
4
  private steppers;
5
5
  private backgrounds;
6
+ backgroundWarnings: {
7
+ path: string;
8
+ line: string;
9
+ error: string;
10
+ }[];
6
11
  constructor(steppers: AStepper[], backgrounds?: TFeatures);
7
12
  private callResolveFeatureLine;
8
13
  resolveStepsFromFeatures(features: TExpandedFeature[]): Promise<TResolvedFeature[]>;
14
+ /**
15
+ * Notify steppers that we're starting to resolve a new feature.
16
+ * This allows steppers to clear feature-scoped steps that shouldn't leak between features.
17
+ */
18
+ private startFeatureResolution;
9
19
  findFeatureSteps(feature: TExpandedFeature): Promise<TFeatureStep[]>;
20
+ findFeatureStepsTolerant(feature: TExpandedFeature): Promise<{
21
+ steps: TFeatureStep[];
22
+ errors: {
23
+ featureLine: TExpandedLine;
24
+ error: Error;
25
+ }[];
26
+ }>;
27
+ findFeatureStepsTolerantSync(feature: TExpandedFeature): {
28
+ steps: TFeatureStep[];
29
+ errors: {
30
+ featureLine: TExpandedLine;
31
+ error: Error;
32
+ }[];
33
+ };
10
34
  findSingleStepAction(line: string): TStepAction;
11
35
  getFeatureStep(featureLine: TExpandedLine, seq: number, action: TStepAction): TFeatureStep;
12
36
  findActionableSteps(actionable: string): TStepAction[];
13
37
  private stepApplies;
14
38
  }
15
- export declare function getActionableStatement(steppers: AStepper[], statement: string, path: string, seqPath: number[]): {
39
+ export declare function getActionableStatement(steppers: AStepper[], statement: string, path: string, seqPath: number[], lineNumber?: number): {
16
40
  featureStep: TFeatureStep;
17
41
  steppers: AStepper[];
18
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Resolver.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAM,gBAAgB,EAAgB,YAAY,EAAE,aAAa,EAAc,SAAS,EAAE,MAAM,EAAY,MAAM,gBAAgB,CAAC;AACzK,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,qBAAa,QAAQ;IACR,OAAO,CAAC,QAAQ;IAAc,OAAO,CAAC,WAAW;gBAAzC,QAAQ,EAAE,QAAQ,EAAE,EAAU,WAAW,GAAE,SAAc;IAiB7E,OAAO,CAAC,sBAAsB;IAcjB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;IAYrD,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAmDjF,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IA2B/C,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY;IASnF,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE;IAkB7D,OAAO,CAAC,WAAW;CAoBnB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;;;EAY9G;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,SAAI,GAAG,YAAY,EAAE,CAmC/J"}
1
+ {"version":3,"file":"Resolver.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAgB,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAY,MAAM,gBAAgB,CAAC;AAEzJ,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,qBAAa,QAAQ;IAGR,OAAO,CAAC,QAAQ;IAAc,OAAO,CAAC,WAAW;IAFtD,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAM;gBAE5D,QAAQ,EAAE,QAAQ,EAAE,EAAU,WAAW,GAAE,SAAc;IA0B7E,OAAO,CAAC,sBAAsB;IAcjB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;IAclE;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAQjB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAS1E,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,MAAM,EAAE;YAAE,WAAW,EAAE,aAAa,CAAC;YAAC,KAAK,EAAE,KAAK,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;IAI/I,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,MAAM,EAAE;YAAE,WAAW,EAAE,aAAa,CAAC;YAAC,KAAK,EAAE,KAAK,CAAA;SAAE,EAAE,CAAA;KAAE;IAqEjJ,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IA2B/C,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY;IAgBnF,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE;IAkB7D,OAAO,CAAC,WAAW;CAoBnB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM;;;EAgBnI;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,SAAI,GAAG,YAAY,EAAE,CAwC/J"}