@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.
- package/build/currentVersion.d.ts +1 -1
- package/build/currentVersion.js +1 -1
- package/build/kireji/converter.d.ts +16 -1
- package/build/kireji/converter.d.ts.map +1 -1
- package/build/kireji/converter.js +19 -2
- package/build/kireji/converter.js.map +1 -1
- package/build/lib/EventLogger.d.ts +16 -10
- package/build/lib/EventLogger.d.ts.map +1 -1
- package/build/lib/EventLogger.js +54 -21
- package/build/lib/EventLogger.js.map +1 -1
- package/build/lib/astepper.d.ts +6 -0
- package/build/lib/astepper.d.ts.map +1 -1
- package/build/lib/astepper.js +1 -0
- package/build/lib/astepper.js.map +1 -1
- package/build/lib/base-prompt-manager.d.ts.map +1 -1
- package/build/lib/base-prompt-manager.js +2 -2
- package/build/lib/base-prompt-manager.js.map +1 -1
- package/build/lib/capture-locator.d.ts +1 -1
- package/build/lib/capture-locator.d.ts.map +1 -1
- package/build/lib/capture-locator.js +4 -2
- package/build/lib/capture-locator.js.map +1 -1
- package/build/lib/core/flow-runner.d.ts +5 -4
- package/build/lib/core/flow-runner.d.ts.map +1 -1
- package/build/lib/core/flow-runner.js +48 -15
- package/build/lib/core/flow-runner.js.map +1 -1
- package/build/lib/core-domains.d.ts +1 -1
- package/build/lib/core-domains.d.ts.map +1 -1
- package/build/lib/core-domains.js +1 -1
- package/build/lib/core-domains.js.map +1 -1
- package/build/lib/defs.d.ts +103 -200
- package/build/lib/defs.d.ts.map +1 -1
- package/build/lib/defs.js +4 -46
- package/build/lib/defs.js.map +1 -1
- package/build/lib/feature-variables.d.ts +2 -1
- package/build/lib/feature-variables.d.ts.map +1 -1
- package/build/lib/feature-variables.js +1 -2
- package/build/lib/feature-variables.js.map +1 -1
- package/build/lib/features.d.ts +5 -4
- package/build/lib/features.d.ts.map +1 -1
- package/build/lib/features.js +26 -16
- package/build/lib/features.js.map +1 -1
- package/build/lib/fixme.d.ts +1 -1
- package/build/lib/fixme.d.ts.map +1 -1
- package/build/lib/http-observations.d.ts +25 -0
- package/build/lib/http-observations.d.ts.map +1 -0
- package/build/lib/http-observations.js +40 -0
- package/build/lib/http-observations.js.map +1 -0
- package/build/lib/namedVars.d.ts +5 -1
- package/build/lib/namedVars.d.ts.map +1 -1
- package/build/lib/namedVars.js +11 -1
- package/build/lib/namedVars.js.map +1 -1
- package/build/lib/node-http-events.d.ts +16 -0
- package/build/lib/node-http-events.d.ts.map +1 -0
- package/build/lib/node-http-events.js +125 -0
- package/build/lib/node-http-events.js.map +1 -0
- package/build/lib/populateActionArgs.d.ts +2 -1
- package/build/lib/populateActionArgs.d.ts.map +1 -1
- package/build/lib/populateActionArgs.js.map +1 -1
- package/build/lib/resolver-features.d.ts +2 -1
- package/build/lib/resolver-features.d.ts.map +1 -1
- package/build/lib/resolver-features.js +2 -2
- package/build/lib/resolver-features.js.map +1 -1
- package/build/lib/step-trace.d.ts +10 -0
- package/build/lib/step-trace.d.ts.map +1 -0
- package/build/lib/step-trace.js +3 -0
- package/build/lib/step-trace.js.map +1 -0
- package/build/lib/stepper-registry.d.ts +28 -0
- package/build/lib/stepper-registry.d.ts.map +1 -0
- package/build/lib/stepper-registry.js +42 -0
- package/build/lib/stepper-registry.js.map +1 -0
- package/build/lib/test/SetTimeStepper.d.ts +2 -2
- package/build/lib/test/SetTimeStepper.d.ts.map +1 -1
- package/build/lib/test/SetTimeStepper.js +1 -1
- package/build/lib/test/SetTimeStepper.js.map +1 -1
- package/build/lib/test/TestSteps.d.ts +5 -3
- package/build/lib/test/TestSteps.d.ts.map +1 -1
- package/build/lib/test/TestStepsWithOptions.d.ts +3 -1
- package/build/lib/test/TestStepsWithOptions.d.ts.map +1 -1
- package/build/lib/test/TestStepsWithOptions.js +3 -5
- package/build/lib/test/TestStepsWithOptions.js.map +1 -1
- package/build/lib/test/lib.d.ts +4 -3
- package/build/lib/test/lib.d.ts.map +1 -1
- package/build/lib/test/lib.js +12 -12
- package/build/lib/test/lib.js.map +1 -1
- package/build/lib/test/resolvedTestFeatures.d.ts +5 -5
- package/build/lib/test/resolvedTestFeatures.js +1 -1
- package/build/lib/test/resolvedTestFeatures.js.map +1 -1
- package/build/lib/ttag.d.ts +2 -2
- package/build/lib/ttag.d.ts.map +1 -1
- package/build/lib/ttag.js +5 -5
- package/build/lib/ttag.js.map +1 -1
- package/build/lib/util/index.d.ts +20 -12
- package/build/lib/util/index.d.ts.map +1 -1
- package/build/lib/util/index.js +53 -17
- package/build/lib/util/index.js.map +1 -1
- package/build/lib/workspace-discovery.d.ts +37 -0
- package/build/lib/workspace-discovery.d.ts.map +1 -0
- package/build/lib/workspace-discovery.js +96 -0
- package/build/lib/workspace-discovery.js.map +1 -0
- package/build/monitor/index.d.ts +1 -10
- package/build/monitor/index.d.ts.map +1 -1
- package/build/monitor/index.js +1 -14
- package/build/monitor/index.js.map +1 -1
- package/build/phases/Executor.d.ts +3 -11
- package/build/phases/Executor.d.ts.map +1 -1
- package/build/phases/Executor.js +76 -169
- package/build/phases/Executor.js.map +1 -1
- package/build/phases/Resolver.d.ts +25 -1
- package/build/phases/Resolver.d.ts.map +1 -1
- package/build/phases/Resolver.js +88 -22
- package/build/phases/Resolver.js.map +1 -1
- package/build/phases/collector.d.ts +1 -0
- package/build/phases/collector.d.ts.map +1 -1
- package/build/phases/collector.js +7 -3
- package/build/phases/collector.js.map +1 -1
- package/build/runner.d.ts +3 -2
- package/build/runner.d.ts.map +1 -1
- package/build/runner.js +0 -1
- package/build/runner.js.map +1 -1
- package/build/schema/protocol.d.ts +1443 -0
- package/build/schema/protocol.d.ts.map +1 -0
- package/build/schema/protocol.js +429 -0
- package/build/schema/protocol.js.map +1 -0
- package/build/steps/activities-stepper.d.ts +24 -28
- package/build/steps/activities-stepper.d.ts.map +1 -1
- package/build/steps/activities-stepper.js +150 -162
- package/build/steps/activities-stepper.js.map +1 -1
- package/build/steps/conformance.d.ts +3 -1
- package/build/steps/conformance.d.ts.map +1 -1
- package/build/steps/conformance.js +1 -0
- package/build/steps/conformance.js.map +1 -1
- package/build/steps/console-monitor-stepper.d.ts +3 -6
- package/build/steps/console-monitor-stepper.d.ts.map +1 -1
- package/build/steps/console-monitor-stepper.js +23 -64
- package/build/steps/console-monitor-stepper.js.map +1 -1
- package/build/steps/debugger-stepper.d.ts +7 -4
- package/build/steps/debugger-stepper.d.ts.map +1 -1
- package/build/steps/debugger-stepper.js +36 -43
- package/build/steps/debugger-stepper.js.map +1 -1
- package/build/steps/haibun.d.ts +24 -16
- package/build/steps/haibun.d.ts.map +1 -1
- package/build/steps/haibun.js +68 -31
- package/build/steps/haibun.js.map +1 -1
- package/build/steps/lib/tts.d.ts +2 -3
- package/build/steps/lib/tts.d.ts.map +1 -1
- package/build/steps/lib/tts.js +4 -5
- package/build/steps/lib/tts.js.map +1 -1
- package/build/steps/logic-stepper.d.ts +14 -3
- package/build/steps/logic-stepper.d.ts.map +1 -1
- package/build/steps/logic-stepper.js +116 -17
- package/build/steps/logic-stepper.js.map +1 -1
- package/build/steps/narrator.d.ts +7 -5
- package/build/steps/narrator.d.ts.map +1 -1
- package/build/steps/narrator.js +30 -18
- package/build/steps/narrator.js.map +1 -1
- package/build/steps/parse.d.ts +5 -3
- package/build/steps/parse.d.ts.map +1 -1
- package/build/steps/parse.js +2 -1
- package/build/steps/parse.js.map +1 -1
- package/build/steps/variables-stepper.d.ts +285 -4
- package/build/steps/variables-stepper.d.ts.map +1 -1
- package/build/steps/variables-stepper.js +44 -50
- package/build/steps/variables-stepper.js.map +1 -1
- package/package.json +9 -16
- package/build/lib/Logger.d.ts +0 -48
- package/build/lib/Logger.d.ts.map +0 -1
- package/build/lib/Logger.js +0 -85
- package/build/lib/Logger.js.map +0 -1
- package/build/lib/TestLogger.d.ts +0 -12
- package/build/lib/TestLogger.d.ts.map +0 -1
- package/build/lib/TestLogger.js +0 -12
- package/build/lib/TestLogger.js.map +0 -1
- package/build/lib/Timer.d.ts +0 -7
- package/build/lib/Timer.d.ts.map +0 -1
- package/build/lib/Timer.js +0 -9
- package/build/lib/Timer.js.map +0 -1
- package/build/lib/core/protocol.d.ts +0 -58
- package/build/lib/core/protocol.d.ts.map +0 -1
- package/build/lib/core/protocol.js +0 -18
- package/build/lib/core/protocol.js.map +0 -1
- package/build/lib/event-bridge.d.ts +0 -42
- package/build/lib/event-bridge.d.ts.map +0 -1
- package/build/lib/event-bridge.js +0 -214
- package/build/lib/event-bridge.js.map +0 -1
- package/build/lib/interfaces/logger.d.ts +0 -123
- package/build/lib/interfaces/logger.d.ts.map +0 -1
- package/build/lib/interfaces/logger.js +0 -29
- package/build/lib/interfaces/logger.js.map +0 -1
- package/build/lib/util/variables.d.ts +0 -9
- package/build/lib/util/variables.d.ts.map +0 -1
- package/build/lib/util/variables.js +0 -40
- package/build/lib/util/variables.js.map +0 -1
- package/build/monitor/browser-stubs.d.ts +0 -12
- package/build/monitor/browser-stubs.d.ts.map +0 -1
- package/build/monitor/browser-stubs.js +0 -20
- package/build/monitor/browser-stubs.js.map +0 -1
- package/build/monitor/constants.d.ts +0 -9
- package/build/monitor/constants.d.ts.map +0 -1
- package/build/monitor/constants.js +0 -9
- package/build/monitor/constants.js.map +0 -1
- package/build/monitor/event-view.d.ts +0 -40
- package/build/monitor/event-view.d.ts.map +0 -1
- package/build/monitor/event-view.js +0 -104
- package/build/monitor/event-view.js.map +0 -1
- package/build/monitor/filters.d.ts +0 -17
- package/build/monitor/filters.d.ts.map +0 -1
- package/build/monitor/filters.js +0 -32
- package/build/monitor/filters.js.map +0 -1
- package/build/monitor/formatters.d.ts +0 -27
- package/build/monitor/formatters.d.ts.map +0 -1
- package/build/monitor/formatters.js +0 -89
- package/build/monitor/formatters.js.map +0 -1
- package/build/monitor/jit-serialization.d.ts +0 -9
- package/build/monitor/jit-serialization.d.ts.map +0 -1
- package/build/monitor/jit-serialization.js +0 -73
- package/build/monitor/jit-serialization.js.map +0 -1
- package/build/monitor/monitor-types.d.ts +0 -119
- package/build/monitor/monitor-types.d.ts.map +0 -1
- package/build/monitor/monitor-types.js +0 -43
- package/build/monitor/monitor-types.js.map +0 -1
- package/build/monitor/speculative-tracker.d.ts +0 -20
- package/build/monitor/speculative-tracker.d.ts.map +0 -1
- package/build/monitor/speculative-tracker.js +0 -38
- package/build/monitor/speculative-tracker.js.map +0 -1
- package/build/monitor/state.d.ts +0 -31
- package/build/monitor/state.d.ts.map +0 -1
- package/build/monitor/state.js +0 -110
- package/build/monitor/state.js.map +0 -1
- package/build/monitor/timer.d.ts +0 -11
- package/build/monitor/timer.d.ts.map +0 -1
- package/build/monitor/timer.js +0 -13
- package/build/monitor/timer.js.map +0 -1
- package/build/monitor/tree-builder.d.ts +0 -25
- package/build/monitor/tree-builder.d.ts.map +0 -1
- package/build/monitor/tree-builder.js +0 -36
- package/build/monitor/tree-builder.js.map +0 -1
- package/build/schema/events.d.ts +0 -426
- package/build/schema/events.d.ts.map +0 -1
- package/build/schema/events.js +0 -123
- 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 '../
|
|
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
|
-
|
|
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
|
-
|
|
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().
|
|
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,
|
|
99
|
-
const
|
|
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
|
|
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 ${
|
|
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,
|
|
125
|
-
const
|
|
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
|
|
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("../
|
|
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("../
|
|
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("../
|
|
53
|
+
action: ({ scenario }: TStepArgs, featureStep: TFeatureStep) => Promise<import("../schema/protocol.js").TNotOKActionResult | import("../schema/protocol.js").TOKActionResult>;
|
|
52
54
|
};
|
|
53
55
|
};
|
|
54
|
-
maybeSay(
|
|
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,
|
|
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"}
|
package/build/steps/narrator.js
CHANGED
|
@@ -1,34 +1,39 @@
|
|
|
1
1
|
import { resolve } from 'path';
|
|
2
|
-
import { Origin } from '../
|
|
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
|
|
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
|
-
|
|
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 = {
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
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
|
|
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(
|
|
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
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"narrator.js","sourceRoot":"","sources":["../../src/steps/narrator.ts"],"names":[],"mappings":"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"}
|
package/build/steps/parse.d.ts
CHANGED
|
@@ -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("../
|
|
8
|
+
action: () => Promise<import("../schema/protocol.js").TNotOKActionResult>;
|
|
8
9
|
};
|
|
9
10
|
fulfills: {
|
|
10
11
|
gwta: string;
|
|
11
|
-
action: () => Promise<import("../
|
|
12
|
+
action: () => Promise<import("../schema/protocol.js").TOKActionResult>;
|
|
12
13
|
};
|
|
13
14
|
conformance: {
|
|
14
15
|
gwta: string;
|
|
15
|
-
action: () => Promise<import("../
|
|
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
|
|
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"}
|
package/build/steps/parse.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { actionNotOK, actionOK } from '../lib/util/index.js';
|
|
2
|
-
import { OK } from '../
|
|
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 .*?\.)/,
|
package/build/steps/parse.js.map
CHANGED
|
@@ -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,
|
|
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"}
|