@haibun/core 3.1.3 → 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,15 +1,95 @@
1
1
  import { AStepper } from '../lib/astepper.js';
2
- import { OK, Origin } from '../lib/defs.js';
2
+ import { OK, Origin } from '../schema/protocol.js';
3
3
  import { actionNotOK, sleep } from '../lib/util/index.js';
4
4
  import { FlowRunner } from '../lib/core/flow-runner.js';
5
5
  import { DOMAIN_STATEMENT } from '../lib/domain-types.js';
6
+ // Built-in observation sources
7
+ // Note: Step names are sanitized (dots → underscores) to avoid variable name conflicts
8
+ const sanitizeKey = (key) => key.replace(/\./g, '_');
9
+ const builtInSources = [
10
+ {
11
+ name: 'step usage',
12
+ observe: (world) => {
13
+ const usage = world.runtime.observations?.get('stepUsage') || new Map();
14
+ const items = [...usage.keys()].map(sanitizeKey);
15
+ const metrics = {};
16
+ for (const [key, count] of usage.entries()) {
17
+ metrics[sanitizeKey(key)] = { count };
18
+ }
19
+ return { items, metrics };
20
+ }
21
+ },
22
+ {
23
+ name: 'stepper usage',
24
+ observe: (world) => {
25
+ const usage = world.runtime.observations?.get('stepUsage') || new Map();
26
+ const stepperCounts = new Map();
27
+ for (const [key, count] of usage.entries()) {
28
+ const stepperName = key.split('.')[0];
29
+ stepperCounts.set(stepperName, (stepperCounts.get(stepperName) || 0) + count);
30
+ }
31
+ const items = [...stepperCounts.keys()];
32
+ const metrics = {};
33
+ for (const [stepper, count] of stepperCounts.entries()) {
34
+ metrics[stepper] = { count };
35
+ }
36
+ return { items, metrics };
37
+ }
38
+ }
39
+ ];
6
40
  export default class LogicStepper extends AStepper {
41
+ description = 'Control flow with conditionals, loops, negation, and quantifiers';
7
42
  steppers = [];
8
43
  runner;
44
+ sources = [...builtInSources];
9
45
  async setWorld(world, steppers) {
10
- this.world = world;
11
- this.steppers = steppers;
46
+ await super.setWorld(world, steppers);
12
47
  this.runner = new FlowRunner(world, steppers);
48
+ // Collect observation sources from other steppers
49
+ for (const stepper of steppers) {
50
+ // Check if stepper implements IHasCycles (duck typing as runtime check)
51
+ if ('cycles' in stepper) {
52
+ const hasCycles = stepper;
53
+ const concerns = hasCycles.cycles.getConcerns?.();
54
+ if (concerns?.sources) {
55
+ this.sources.push(...concerns.sources);
56
+ }
57
+ }
58
+ }
59
+ }
60
+ cycles = {
61
+ getConcerns: () => ({
62
+ sources: builtInSources
63
+ })
64
+ };
65
+ getSource(name) {
66
+ return this.sources.find(s => s.name.toLowerCase() === name.toLowerCase());
67
+ }
68
+ stripQuotes(text) {
69
+ if ((text.startsWith('"') && text.endsWith('"')) || (text.startsWith('`') && text.endsWith('`'))) {
70
+ return text.slice(1, -1);
71
+ }
72
+ return text;
73
+ }
74
+ /**
75
+ * Get values and metrics for iteration - handles both domains and observation sources.
76
+ * Syntax: "in {domain}" or "observed in {source}"
77
+ */
78
+ getIterationValues(phrase) {
79
+ // Check for "observed in {source}" pattern
80
+ const observedMatch = phrase.match(/^observed in (.+)$/i);
81
+ if (observedMatch) {
82
+ const sourceName = observedMatch[1].trim();
83
+ const source = this.getSource(sourceName);
84
+ if (!source)
85
+ return { values: [], error: `Unknown observation source: "${sourceName}"` };
86
+ const { items, metrics } = source.observe(this.getWorld());
87
+ return { values: items, metrics };
88
+ }
89
+ // Otherwise treat as domain name
90
+ const domainName = this.stripQuotes(phrase);
91
+ const result = this.getWorld().shared.getDomainValues(domainName);
92
+ return { values: result.values || [], error: result.error };
13
93
  }
14
94
  steps = {
15
95
  // -------------------------------------------------------------------------
@@ -58,15 +138,13 @@ export default class LogicStepper extends AStepper {
58
138
  match: /^any of (.*)/,
59
139
  action: async (_, featureStep) => {
60
140
  let statements = featureStep.in.replace(/^any of /i, '').trim();
61
- if ((statements.startsWith('"') && statements.endsWith('"')) || (statements.startsWith('`') && statements.endsWith('`'))) {
62
- statements = statements.slice(1, -1);
63
- }
141
+ statements = this.stripQuotes(statements);
64
142
  const statementList = statements.split(',').map(s => s.trim());
65
143
  for (const statement of statementList) {
66
144
  const res = await this.runner.runStatements([statement], { intent: { mode: 'speculative' }, parentStep: featureStep });
67
145
  if (res.kind === 'ok')
68
146
  return OK;
69
- this.getWorld().logger.debug(`any of: statement "${statement}" failed: ${res.message}`);
147
+ this.getWorld().eventLogger.debug(`any of: statement "${statement}" failed: ${res.message}`);
70
148
  }
71
149
  return actionNotOK('No conditions in the list were satisfied');
72
150
  }
@@ -87,42 +165,56 @@ export default class LogicStepper extends AStepper {
87
165
  },
88
166
  // -------------------------------------------------------------------------
89
167
  // QUANTIFIERS (The Iterators)
168
+ // Supports both: "in {domain}" and "observed in {source}"
90
169
  // -------------------------------------------------------------------------
91
170
  // EXISTENTIAL: Exists x in D such that P(x)
171
+ // some x in Domain is ...
172
+ // some x observed in step usage is ...
92
173
  some: {
93
- match: /^some (.*?) in (.*?) is (.*)/,
174
+ match: /^some (.*?) (in|observed in) (.*?) is (.*)/,
94
175
  action: async (_, featureStep) => {
95
- const match = featureStep.in.match(/^some (.*?) in (.*?) is (.*)/);
176
+ const match = featureStep.in.match(/^some (.*?) (in|observed in) (.*?) is (.*)/);
96
177
  if (!match)
97
178
  return actionNotOK('some: invalid syntax');
98
- const [, what, domain, statementStr] = match;
99
- const { values, error } = this.getWorld().shared.getDomainValues(domain);
179
+ const [, what, connector, sourceOrDomain, statementStr] = match;
180
+ const phrase = connector === 'observed in' ? `observed in ${sourceOrDomain}` : sourceOrDomain;
181
+ const { values, metrics, error } = this.getIterationValues(phrase);
100
182
  if (error)
101
183
  return actionNotOK(error);
102
184
  if (values.length === 0)
103
- return actionNotOK(`No members in domain "${domain}" to check`);
185
+ return actionNotOK(`No members in "${sourceOrDomain}" to check`);
104
186
  const mode = 'speculative';
105
187
  let found = false;
106
188
  for (const val of values) {
107
189
  this.getWorld().shared.set({ term: what, value: String(val), domain: 'string', origin: Origin.var }, { in: featureStep.in, seq: featureStep.seqPath, when: 'quantifier' });
190
+ // Set metric variables if from observation source
191
+ if (metrics?.[val]) {
192
+ for (const [metricKey, metricValue] of Object.entries(metrics[val])) {
193
+ const domain = typeof metricValue === 'number' ? 'number' : 'string';
194
+ this.getWorld().shared.set({ term: `${sanitizeKey(val)}/${metricKey}`, value: String(metricValue), domain, origin: Origin.var }, { in: featureStep.in, seq: featureStep.seqPath, when: 'observation' });
195
+ }
196
+ }
108
197
  const res = await this.runner.runStatements([statementStr], { intent: { mode }, parentStep: featureStep });
109
198
  if (res.kind === 'ok') {
110
199
  found = true;
111
200
  break;
112
201
  }
113
202
  }
114
- return found ? OK : actionNotOK(`No ${what} in ${domain} satisfied the condition`);
203
+ return found ? OK : actionNotOK(`No ${what} in ${sourceOrDomain} satisfied the condition`);
115
204
  }
116
205
  },
117
206
  // UNIVERSAL: For All x in D, P(x)
207
+ // every x in Domain is ...
208
+ // every x observed in step usage is ...
118
209
  every: {
119
- match: /^every (.*?) in (.*?) is (.*)/,
210
+ match: /^every (.*?) (in|observed in) (.*?) is (.*)/,
120
211
  action: async (_, featureStep) => {
121
- const match = featureStep.in.match(/^every (.*?) in (.*?) is (.*)/);
212
+ const match = featureStep.in.match(/^every (.*?) (in|observed in) (.*?) is (.*)/);
122
213
  if (!match)
123
214
  return actionNotOK('every: invalid syntax');
124
- const [, what, domain, statementStr] = match;
125
- const { values, error } = this.getWorld().shared.getDomainValues(domain);
215
+ const [, what, connector, sourceOrDomain, statementStr] = match;
216
+ const phrase = connector === 'observed in' ? `observed in ${sourceOrDomain}` : sourceOrDomain;
217
+ const { values, metrics, error } = this.getIterationValues(phrase);
126
218
  if (error)
127
219
  return actionNotOK(error);
128
220
  if (values.length === 0)
@@ -130,6 +222,13 @@ export default class LogicStepper extends AStepper {
130
222
  const mode = featureStep.intent?.mode === 'speculative' ? 'speculative' : 'authoritative';
131
223
  for (const val of values) {
132
224
  this.getWorld().shared.set({ term: what, value: String(val), domain: 'string', origin: Origin.var }, { in: featureStep.in, seq: featureStep.seqPath, when: 'quantifier' });
225
+ // Set metric variables if from observation source
226
+ if (metrics?.[val]) {
227
+ for (const [metricKey, metricValue] of Object.entries(metrics[val])) {
228
+ const domain = typeof metricValue === 'number' ? 'number' : 'string';
229
+ this.getWorld().shared.set({ term: `${sanitizeKey(val)}/${metricKey}`, value: String(metricValue), domain, origin: Origin.var }, { in: featureStep.in, seq: featureStep.seqPath, when: 'observation' });
230
+ }
231
+ }
133
232
  const res = await this.runner.runStatements([statementStr], { intent: { mode }, parentStep: featureStep });
134
233
  if (res.kind !== 'ok') {
135
234
  return actionNotOK(`Universal check failed for value "${val}": ${res.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"logic-stepper.js","sourceRoot":"","sources":["../../src/steps/logic-stepper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logic-stepper.js","sourceRoot":"","sources":["../../src/steps/logic-stepper.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import { TWorld, TFeatureStep, IStepperCycles, TStepArgs } from '../lib/defs.js';
1
+ import { TWorld, TFeatureStep, IStepperCycles } from '../lib/defs.js';
2
+ import { TStepArgs } from '../schema/protocol.js';
2
3
  import { IHasCycles, IHasOptions } from '../lib/astepper.js';
3
4
  import { AStepper } from '../lib/astepper.js';
4
5
  import { TRenderedAudioMap } from './lib/tts.js';
5
6
  declare class Narrator extends AStepper implements IHasOptions, IHasCycles {
7
+ description: string;
6
8
  renderedAudio: TRenderedAudioMap;
7
9
  options: {
8
10
  CAPTURE_START: {
@@ -38,20 +40,20 @@ declare class Narrator extends AStepper implements IHasOptions, IHasCycles {
38
40
  prose: {
39
41
  precludes: string[];
40
42
  match: RegExp;
41
- action: (_args: TStepArgs, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").TNotOKActionResult | import("../lib/defs.js").TOKActionResult>;
43
+ action: (_args: TStepArgs, featureStep: TFeatureStep) => Promise<import("../schema/protocol.js").TNotOKActionResult | import("../schema/protocol.js").TOKActionResult>;
42
44
  };
43
45
  feature: {
44
46
  precludes: string[];
45
47
  gwta: string;
46
- action: ({ feature }: TStepArgs, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").TNotOKActionResult | import("../lib/defs.js").TOKActionResult>;
48
+ action: ({ feature }: TStepArgs, featureStep: TFeatureStep) => Promise<import("../schema/protocol.js").TNotOKActionResult | import("../schema/protocol.js").TOKActionResult>;
47
49
  };
48
50
  scenario: {
49
51
  precludes: string[];
50
52
  gwta: string;
51
- action: ({ scenario }: TStepArgs, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").TNotOKActionResult | import("../lib/defs.js").TOKActionResult>;
53
+ action: ({ scenario }: TStepArgs, featureStep: TFeatureStep) => Promise<import("../schema/protocol.js").TNotOKActionResult | import("../schema/protocol.js").TOKActionResult>;
52
54
  };
53
55
  };
54
- maybeSay(transcript: string): Promise<import("../lib/defs.js").TNotOKActionResult | import("../lib/defs.js").TOKActionResult>;
56
+ maybeSay(featureStep: TFeatureStep): Promise<import("../schema/protocol.js").TNotOKActionResult | import("../schema/protocol.js").TOKActionResult>;
55
57
  }
56
58
  export default Narrator;
57
59
  //# sourceMappingURL=narrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"narrator.d.ts","sourceRoot":"","sources":["../../src/steps/narrator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAiB,SAAS,EAAU,MAAM,gBAAgB,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,OAAO,EAA+E,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA4B9H,cAAM,QAAS,SAAQ,QAAS,YAAW,WAAW,EAAE,UAAU;IACjE,aAAa,EAAE,iBAAiB,CAAM;IACtC,OAAO;;;2BACyE,MAAM;;;;;;;;;;;2BACR,MAAM;;;;;;;;;MAClF;IAEF,MAAM,iBAAgB;IACtB,QAAQ,EAAE,QAAQ,EAAE,CAAM;IAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAMlD,OAAO,CAAC,cAAc;IAMtB,KAAK;;;;4BAImB,SAAS,eAAe,YAAY;;;;;kCAK9B,SAAS,eAAe,YAAY;;;;;mCAKnC,SAAS,eAAe,YAAY;;MAEjE;IAEI,QAAQ,CAAC,UAAU,EAAE,MAAM;CAoBjC;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"narrator.d.ts","sourceRoot":"","sources":["../../src/steps/narrator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAiB,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAU,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,OAAO,EAA+E,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAgC9H,cAAM,QAAS,SAAQ,QAAS,YAAW,WAAW,EAAE,UAAU;IACjE,WAAW,SAA2D;IAEtE,aAAa,EAAE,iBAAiB,CAAM;IACtC,OAAO;;;2BACyE,MAAM;;;;;;;;;;;2BACR,MAAM;;;;;;;;;MAClF;IAEF,MAAM,iBAAgB;IACtB,QAAQ,EAAE,QAAQ,EAAE,CAAM;IAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAMlD,OAAO,CAAC,cAAc;IAKtB,KAAK;;;;4BAImB,SAAS,eAAe,YAAY;;;;;kCAK9B,SAAS,eAAe,YAAY;;;;;mCAKnC,SAAS,eAAe,YAAY;;MAEjE;IAEI,QAAQ,CAAC,WAAW,EAAE,YAAY;CA6BxC;AAED,eAAe,QAAQ,CAAC"}
@@ -1,34 +1,39 @@
1
1
  import { resolve } from 'path';
2
- import { Origin } from '../lib/defs.js';
2
+ import { Origin } from '../schema/protocol.js';
3
3
  import { AStepper } from '../lib/astepper.js';
4
4
  import { actionNotOK, actionOK, getStepperOption, sleep, stringOrError } from '../lib/util/index.js';
5
5
  import { actualURI } from '../lib/util/actualURI.js';
6
6
  import { copyPreRenderedAudio, doExec, doSpawn, playAudioFile, preRenderFeatureProse } from './lib/tts.js';
7
- import { EExecutionMessageType } from '../lib/interfaces/logger.js';
8
7
  import { captureLocator } from '../lib/capture-locator.js';
8
+ import { SpeechArtifact, VideoArtifact } from '../schema/protocol.js';
9
9
  const CAPTURE_FILENAME = 'vcapture.webm';
10
10
  const cycles = (narrator) => ({
11
11
  async startFeature({ resolvedFeature }) {
12
- narrator.renderedAudio = await preRenderFeatureProse(resolvedFeature, narrator.world.logger);
12
+ narrator.renderedAudio = await preRenderFeatureProse(resolvedFeature);
13
13
  if (narrator.captureStart) {
14
- narrator.getWorld().logger.debug(`Spawning screen capture using ${narrator.captureStart}`);
15
14
  doSpawn(narrator.captureStart);
16
15
  }
17
16
  },
18
17
  async endFeature() {
19
18
  if (narrator.captureStop) {
20
- const uri = actualURI(CAPTURE_FILENAME);
21
- narrator.getWorld().logger.info(`Stopping vcapture ${uri} using ${narrator.captureStop}`);
19
+ actualURI(CAPTURE_FILENAME);
22
20
  await sleep(2000);
23
21
  await doExec(narrator.captureStop, false);
24
22
  const path = captureLocator(narrator.world.options, narrator.world.tag);
25
- const artifact = { artifactType: 'video', path };
26
- const context = { incident: EExecutionMessageType.FEATURE_END, artifacts: [artifact], tag: narrator.getWorld().tag };
27
- narrator.getWorld().logger.log('feature video', context);
23
+ const artifact = VideoArtifact.parse({
24
+ id: `narrator.video`,
25
+ timestamp: Date.now(),
26
+ kind: 'artifact',
27
+ artifactType: 'video',
28
+ path,
29
+ mimetype: 'video/webm',
30
+ });
31
+ narrator.getWorld().eventLogger.emit(artifact);
28
32
  }
29
33
  }
30
34
  });
31
35
  class Narrator extends AStepper {
36
+ description = 'Text-to-speech narration and screen capture for demos';
32
37
  renderedAudio = {};
33
38
  options = {
34
39
  CAPTURE_START: { desc: 'Shell command to start screen capture', parse: (input) => stringOrError(input), required: false },
@@ -45,14 +50,13 @@ class Narrator extends AStepper {
45
50
  }
46
51
  rememberAndSay(key, value, featureStep) {
47
52
  this.getWorld().shared.set({ term: key, value, domain: 'string', origin: Origin.defined }, { in: featureStep.in, seq: featureStep.seqPath, when: `${featureStep.action.stepperName}.${featureStep.action.actionName}` });
48
- // Use featureStep.in for audio playback since that's what was pre-rendered
49
- return this.maybeSay(featureStep.in);
53
+ return this.maybeSay(featureStep);
50
54
  }
51
55
  steps = {
52
56
  prose: {
53
57
  precludes: [`Haibun.prose`],
54
58
  match: /.+[.!?]$/,
55
- action: async (_args, featureStep) => this.maybeSay(featureStep.in),
59
+ action: async (_args, featureStep) => this.maybeSay(featureStep),
56
60
  },
57
61
  feature: {
58
62
  precludes: [`Haibun.feature`],
@@ -65,24 +69,32 @@ class Narrator extends AStepper {
65
69
  action: async ({ scenario }, featureStep) => this.rememberAndSay('scenario', scenario, featureStep),
66
70
  },
67
71
  };
68
- async maybeSay(transcript) {
72
+ async maybeSay(featureStep) {
73
+ const transcript = featureStep.in;
69
74
  const dir = captureLocator(this.world.options, this.world.tag);
70
75
  const { path, durationS } = copyPreRenderedAudio(dir, this.renderedAudio, transcript);
71
76
  const runtimePath = resolve(dir);
72
- const artifact = { artifactType: 'speech', path, durationS, transcript };
73
- // Play audio using built-in ffmpeg playback
74
77
  try {
75
78
  const audioFullPath = `${runtimePath}/${path}`;
76
- this.world.logger.debug(`playing audio: ${audioFullPath}`);
77
79
  await playAudioFile(audioFullPath);
78
80
  }
79
81
  catch (error) {
80
82
  const e = error;
81
83
  const stderr = e.stderr ? String(e.stderr) : '';
82
- this.world.logger.error(`Error playing audio: ${e.message}\nOutput: ${stderr}`);
83
84
  return actionNotOK(`Error playing audio: ${e.message}\nOutput: ${stderr}`);
84
85
  }
85
- return actionOK({ artifact });
86
+ const artifact = SpeechArtifact.parse({
87
+ id: `narrator.speech`,
88
+ timestamp: Date.now(),
89
+ kind: 'artifact',
90
+ artifactType: 'speech',
91
+ path,
92
+ mimetype: 'audio/mpeg',
93
+ transcript,
94
+ durationS,
95
+ });
96
+ this.getWorld().eventLogger.emit(artifact);
97
+ return actionOK();
86
98
  }
87
99
  }
88
100
  export default Narrator;
@@ -1 +1 @@
1
- {"version":3,"file":"narrator.js","sourceRoot":"","sources":["../../src/steps/narrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAkE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAqB,MAAM,cAAc,CAAC;AAC9H,OAAO,EAAE,qBAAqB,EAAoD,MAAM,6BAA6B,CAAC;AACtH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAEzC,MAAM,MAAM,GAAG,CAAC,QAAkB,EAAkB,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,YAAY,CAAC,EAAE,eAAe,EAAiB;QACpD,QAAQ,CAAC,aAAa,GAAG,MAAM,qBAAqB,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7F,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IACD,KAAK,CAAC,UAAU;QACf,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACxC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,UAAU,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1F,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxE,MAAM,QAAQ,GAAmB,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjE,MAAM,OAAO,GAAoB,EAAE,QAAQ,EAAE,qBAAqB,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC;YACtI,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,QAAS,SAAQ,QAAQ;IAC9B,aAAa,GAAsB,EAAE,CAAC;IACtC,OAAO,GAAG;QACT,aAAa,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;QACjI,YAAY,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC/H,CAAC;IAEF,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,GAAe,EAAE,CAAC;IAC1B,YAAY,CAAqB;IACjC,WAAW,CAAqB;IAEhC,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,QAAoB;QACjD,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAChF,CAAC;IAEO,cAAc,CAAC,GAAW,EAAE,KAAa,EAAE,WAAyB;QAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACzN,2EAA2E;QAC3E,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,GAAG;QACP,KAAK,EAAE;YACN,SAAS,EAAE,CAAC,cAAc,CAAC;YAC3B,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,KAAK,EAAE,KAAgB,EAAE,WAAyB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;SAC5F;QACD,OAAO,EAAE;YACR,SAAS,EAAE,CAAC,gBAAgB,CAAC;YAC7B,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAa,EAAE,WAAyB,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAiB,EAAE,WAAW,CAAC;SACnI;QACD,QAAQ,EAAE;YACT,SAAS,EAAE,CAAC,iBAAiB,CAAC;YAC9B,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAa,EAAE,WAAyB,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,QAAkB,EAAE,WAAW,CAAC;SACtI;KACD,CAAC;IAEF,KAAK,CAAC,QAAQ,CAAC,UAAkB;QAChC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACtF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAoB,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAE1F,4CAA4C;QAC5C,IAAI,CAAC;YACJ,MAAM,aAAa,GAAG,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,aAAa,EAAE,CAAC,CAAC;YAC3D,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,KAA8C,CAAC;YACzD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,aAAa,MAAM,EAAE,CAAC,CAAC;YAChF,OAAO,WAAW,CAAC,wBAAwB,CAAC,CAAC,OAAO,aAAa,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/B,CAAC;CAED;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"narrator.js","sourceRoot":"","sources":["../../src/steps/narrator.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,26 @@
1
1
  import { AStepper } from '../lib/astepper.js';
2
2
  declare const Parse: {
3
3
  new (): {
4
+ description: string;
4
5
  steps: {
5
6
  must: {
6
7
  match: RegExp;
7
- action: () => Promise<import("../lib/defs.js").TNotOKActionResult>;
8
+ action: () => Promise<import("../schema/protocol.js").TNotOKActionResult>;
8
9
  };
9
10
  fulfills: {
10
11
  gwta: string;
11
- action: () => Promise<import("../lib/defs.js").TOKActionResult>;
12
+ action: () => Promise<import("../schema/protocol.js").TOKActionResult>;
12
13
  };
13
14
  conformance: {
14
15
  gwta: string;
15
- action: () => Promise<import("../lib/defs.js").TNotOKActionResult | import("../lib/defs.js").TOKActionResult>;
16
+ action: () => Promise<import("../schema/protocol.js").TNotOKActionResult | import("../schema/protocol.js").TOKActionResult>;
16
17
  };
17
18
  };
18
19
  world?: import("../lib/defs.js").TWorld;
19
20
  kind?: import("../lib/astepper.js").TStepperKind;
20
21
  setWorld(world: import("../lib/defs.js").TWorld, _steppers: AStepper[]): Promise<void>;
21
22
  getWorld(): import("../lib/defs.js").TWorld;
23
+ startFeatureResolution?(_path: string): void;
22
24
  };
23
25
  };
24
26
  export default Parse;
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/steps/parse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;CAwBV,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/steps/parse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;CA0BV,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { actionNotOK, actionOK } from '../lib/util/index.js';
2
- import { OK } from '../lib/defs.js';
2
+ import { OK } from '../schema/protocol.js';
3
3
  import { AStepper } from '../lib/astepper.js';
4
4
  const Parse = class Parse extends AStepper {
5
+ description = 'Parse conformance docs and fulfillment annotations';
5
6
  steps = {
6
7
  must: {
7
8
  match: /(?!\n|. )\b([A-Z].*? must .*?\.)/,
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/steps/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,KAAK,GAAG,MAAM,KAAM,SAAQ,QAAQ;IACzC,KAAK,GAAG;QACP,IAAI,EAAE;YACL,KAAK,EAAE,kCAAkC;YACzC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SACnE;QACD,QAAQ,EAAE;YACT,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,KAAK,IAAI,EAAE;gBAClB,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpC,CAAC;SACD;QACD,WAAW,EAAE;YACZ,IAAI,EAAE,oDAAoD;YAC1D,MAAM,EAAE,KAAK,IAAI,EAAE;gBAClB,IAAI,CAAC;oBACJ,mGAAmG;gBACpG,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;SACD;KACD,CAAC;CACF,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/steps/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,KAAK,GAAG,MAAM,KAAM,SAAQ,QAAQ;IACzC,WAAW,GAAG,oDAAoD,CAAC;IAEnE,KAAK,GAAG;QACP,IAAI,EAAE;YACL,KAAK,EAAE,kCAAkC;YACzC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SACnE;QACD,QAAQ,EAAE;YACT,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,KAAK,IAAI,EAAE;gBAClB,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpC,CAAC;SACD;QACD,WAAW,EAAE;YACZ,IAAI,EAAE,oDAAoD;YAC1D,MAAM,EAAE,KAAK,IAAI,EAAE;gBAClB,IAAI,CAAC;oBACJ,mGAAmG;gBACpG,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;SACD;KACD,CAAC;CACF,CAAC;AAEF,eAAe,KAAK,CAAC"}