@haibun/core 3.0.3 → 3.1.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 -2
- package/build/lib/EventLogger.d.ts +22 -0
- package/build/lib/EventLogger.d.ts.map +1 -0
- package/build/lib/EventLogger.js +95 -0
- package/build/lib/EventLogger.js.map +1 -0
- package/build/lib/Logger.d.ts.map +1 -1
- package/build/lib/Logger.js +2 -1
- package/build/lib/Logger.js.map +1 -1
- package/build/lib/astepper.d.ts +11 -1
- package/build/lib/astepper.d.ts.map +1 -1
- package/build/lib/astepper.js +8 -0
- package/build/lib/astepper.js.map +1 -1
- package/build/lib/core/flow-runner.d.ts +25 -0
- package/build/lib/core/flow-runner.d.ts.map +1 -0
- package/build/lib/core/flow-runner.js +128 -0
- package/build/lib/core/flow-runner.js.map +1 -0
- package/build/lib/core/protocol.d.ts +58 -0
- package/build/lib/core/protocol.d.ts.map +1 -0
- package/build/lib/core/protocol.js +18 -0
- package/build/lib/core/protocol.js.map +1 -0
- package/build/lib/core-domains.d.ts +2 -16
- package/build/lib/core-domains.d.ts.map +1 -1
- package/build/lib/core-domains.js +46 -27
- package/build/lib/core-domains.js.map +1 -1
- package/build/lib/defs.d.ts +42 -11
- package/build/lib/defs.d.ts.map +1 -1
- package/build/lib/defs.js +6 -1
- package/build/lib/defs.js.map +1 -1
- package/build/lib/domain-types.d.ts +12 -1
- package/build/lib/domain-types.d.ts.map +1 -1
- package/build/lib/domain-types.js +63 -3
- package/build/lib/domain-types.js.map +1 -1
- package/build/lib/event-bridge.d.ts +28 -0
- package/build/lib/event-bridge.d.ts.map +1 -0
- package/build/lib/event-bridge.js +114 -0
- package/build/lib/event-bridge.js.map +1 -0
- package/build/lib/feature-variables.d.ts +14 -0
- package/build/lib/feature-variables.d.ts.map +1 -1
- package/build/lib/feature-variables.js +128 -6
- package/build/lib/feature-variables.js.map +1 -1
- package/build/lib/interfaces/logger.d.ts +19 -3
- package/build/lib/interfaces/logger.d.ts.map +1 -1
- package/build/lib/interfaces/logger.js +11 -1
- package/build/lib/interfaces/logger.js.map +1 -1
- package/build/lib/namedVars.d.ts.map +1 -1
- package/build/lib/namedVars.js +18 -10
- package/build/lib/namedVars.js.map +1 -1
- package/build/lib/populateActionArgs.d.ts +1 -1
- package/build/lib/populateActionArgs.d.ts.map +1 -1
- package/build/lib/populateActionArgs.js +11 -49
- package/build/lib/populateActionArgs.js.map +1 -1
- package/build/lib/test/TestSteps.d.ts +1 -0
- package/build/lib/test/TestSteps.d.ts.map +1 -1
- package/build/lib/test/TestStepsWithOptions.d.ts +1 -0
- package/build/lib/test/TestStepsWithOptions.d.ts.map +1 -1
- package/build/lib/test/lib.d.ts.map +1 -1
- package/build/lib/test/lib.js +2 -0
- package/build/lib/test/lib.js.map +1 -1
- package/build/lib/util/actualURI.js +1 -1
- package/build/lib/util/actualURI.js.map +1 -1
- package/build/lib/util/index.d.ts +11 -2
- package/build/lib/util/index.d.ts.map +1 -1
- package/build/lib/util/index.js +46 -2
- package/build/lib/util/index.js.map +1 -1
- package/build/lib/util/variables.d.ts +9 -0
- package/build/lib/util/variables.d.ts.map +1 -0
- package/build/lib/util/variables.js +40 -0
- package/build/lib/util/variables.js.map +1 -0
- package/build/lib/util/workspace-lib.d.ts.map +1 -1
- package/build/lib/util/workspace-lib.js +30 -3
- package/build/lib/util/workspace-lib.js.map +1 -1
- package/build/monitor/browser-stubs.d.ts +12 -0
- package/build/monitor/browser-stubs.d.ts.map +1 -0
- package/build/monitor/browser-stubs.js +20 -0
- package/build/monitor/browser-stubs.js.map +1 -0
- package/build/monitor/constants.d.ts +9 -0
- package/build/monitor/constants.d.ts.map +1 -0
- package/build/monitor/constants.js +9 -0
- package/build/monitor/constants.js.map +1 -0
- package/build/monitor/event-view.d.ts +40 -0
- package/build/monitor/event-view.d.ts.map +1 -0
- package/build/monitor/event-view.js +104 -0
- package/build/monitor/event-view.js.map +1 -0
- package/build/monitor/filters.d.ts +17 -0
- package/build/monitor/filters.d.ts.map +1 -0
- package/build/monitor/filters.js +32 -0
- package/build/monitor/filters.js.map +1 -0
- package/build/monitor/formatters.d.ts +27 -0
- package/build/monitor/formatters.d.ts.map +1 -0
- package/build/monitor/formatters.js +89 -0
- package/build/monitor/formatters.js.map +1 -0
- package/build/monitor/index.d.ts +11 -0
- package/build/monitor/index.d.ts.map +1 -0
- package/build/monitor/index.js +15 -0
- package/build/monitor/index.js.map +1 -0
- package/build/monitor/jit-serialization.d.ts +9 -0
- package/build/monitor/jit-serialization.d.ts.map +1 -0
- package/build/monitor/jit-serialization.js +73 -0
- package/build/monitor/jit-serialization.js.map +1 -0
- package/build/monitor/monitor-types.d.ts +119 -0
- package/build/monitor/monitor-types.d.ts.map +1 -0
- package/build/monitor/monitor-types.js +43 -0
- package/build/monitor/monitor-types.js.map +1 -0
- package/build/monitor/speculative-tracker.d.ts +20 -0
- package/build/monitor/speculative-tracker.d.ts.map +1 -0
- package/build/monitor/speculative-tracker.js +38 -0
- package/build/monitor/speculative-tracker.js.map +1 -0
- package/build/monitor/state.d.ts +31 -0
- package/build/monitor/state.d.ts.map +1 -0
- package/build/monitor/state.js +110 -0
- package/build/monitor/state.js.map +1 -0
- package/build/monitor/timer.d.ts +11 -0
- package/build/monitor/timer.d.ts.map +1 -0
- package/build/monitor/timer.js +13 -0
- package/build/monitor/timer.js.map +1 -0
- package/build/monitor/tree-builder.d.ts +25 -0
- package/build/monitor/tree-builder.d.ts.map +1 -0
- package/build/monitor/tree-builder.js +36 -0
- package/build/monitor/tree-builder.js.map +1 -0
- package/build/phases/Executor.d.ts.map +1 -1
- package/build/phases/Executor.js +102 -43
- package/build/phases/Executor.js.map +1 -1
- package/build/phases/Resolver.d.ts +2 -1
- package/build/phases/Resolver.d.ts.map +1 -1
- package/build/phases/Resolver.js +64 -1
- package/build/phases/Resolver.js.map +1 -1
- package/build/runner.d.ts.map +1 -1
- package/build/runner.js +5 -0
- package/build/runner.js.map +1 -1
- package/build/schema/events.d.ts +174 -0
- package/build/schema/events.d.ts.map +1 -0
- package/build/schema/events.js +55 -0
- package/build/schema/events.js.map +1 -0
- package/build/steps/activities-stepper.d.ts +55 -20
- package/build/steps/activities-stepper.d.ts.map +1 -1
- package/build/steps/activities-stepper.js +342 -207
- package/build/steps/activities-stepper.js.map +1 -1
- package/build/steps/conformance.d.ts +1 -0
- package/build/steps/conformance.d.ts.map +1 -1
- package/build/steps/console-monitor-stepper.d.ts +44 -0
- package/build/steps/console-monitor-stepper.d.ts.map +1 -0
- package/build/steps/console-monitor-stepper.js +106 -0
- package/build/steps/console-monitor-stepper.js.map +1 -0
- package/build/steps/debugger-stepper.d.ts +5 -3
- package/build/steps/debugger-stepper.d.ts.map +1 -1
- package/build/steps/debugger-stepper.js +35 -11
- package/build/steps/debugger-stepper.js.map +1 -1
- package/build/steps/haibun.d.ts +11 -18
- package/build/steps/haibun.d.ts.map +1 -1
- package/build/steps/haibun.js +51 -55
- package/build/steps/haibun.js.map +1 -1
- package/build/steps/lib/tts.d.ts.map +1 -1
- package/build/steps/lib/tts.js +2 -1
- package/build/steps/lib/tts.js.map +1 -1
- package/build/steps/logic-stepper.d.ts +42 -0
- package/build/steps/logic-stepper.d.ts.map +1 -0
- package/build/steps/logic-stepper.js +143 -0
- package/build/steps/logic-stepper.js.map +1 -0
- package/build/steps/narrator.d.ts.map +1 -1
- package/build/steps/narrator.js +1 -1
- package/build/steps/narrator.js.map +1 -1
- package/build/steps/parse.d.ts +1 -0
- package/build/steps/parse.d.ts.map +1 -1
- package/build/steps/variables-stepper.d.ts +11 -71
- package/build/steps/variables-stepper.d.ts.map +1 -1
- package/build/steps/variables-stepper.js +534 -84
- package/build/steps/variables-stepper.js.map +1 -1
- package/package.json +16 -3
- package/build/applyEffectFeatures.d.ts +0 -4
- package/build/applyEffectFeatures.d.ts.map +0 -1
- package/build/applyEffectFeatures.js +0 -31
- package/build/applyEffectFeatures.js.map +0 -1
- package/build/jsprolog/converter.d.ts +0 -9
- package/build/jsprolog/converter.d.ts.map +0 -1
- package/build/jsprolog/converter.js +0 -42
- package/build/jsprolog/converter.js.map +0 -1
- package/build/jsprolog/stepper-utils.d.ts +0 -8
- package/build/jsprolog/stepper-utils.d.ts.map +0 -1
- package/build/jsprolog/stepper-utils.js +0 -8
- package/build/jsprolog/stepper-utils.js.map +0 -1
- package/build/jsprolog/test.jsprolog.d.ts +0 -4
- package/build/jsprolog/test.jsprolog.d.ts.map +0 -1
- package/build/jsprolog/test.jsprolog.js +0 -19
- package/build/jsprolog/test.jsprolog.js.map +0 -1
- package/build/jsprolog/test.kireji.d.ts +0 -4
- package/build/jsprolog/test.kireji.d.ts.map +0 -1
- package/build/jsprolog/test.kireji.js +0 -19
- package/build/jsprolog/test.kireji.js.map +0 -1
- package/build/jsprolog/withAction.d.ts +0 -32
- package/build/jsprolog/withAction.d.ts.map +0 -1
- package/build/jsprolog/withAction.js +0 -65
- package/build/jsprolog/withAction.js.map +0 -1
- package/build/kireji/test.kireji.d.ts +0 -4
- package/build/kireji/test.kireji.d.ts.map +0 -1
- package/build/kireji/test.kireji.js +0 -19
- package/build/kireji/test.kireji.js.map +0 -1
- package/build/lib/errors.d.ts +0 -13
- package/build/lib/errors.d.ts.map +0 -1
- package/build/lib/errors.js +0 -18
- package/build/lib/errors.js.map +0 -1
- package/build/lib/util/featureStep-executor.d.ts +0 -7
- package/build/lib/util/featureStep-executor.d.ts.map +0 -1
- package/build/lib/util/featureStep-executor.js +0 -63
- package/build/lib/util/featureStep-executor.js.map +0 -1
- package/build/steps/conditions-stepper.d.ts +0 -27
- package/build/steps/conditions-stepper.d.ts.map +0 -1
- package/build/steps/conditions-stepper.js +0 -99
- package/build/steps/conditions-stepper.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const currentVersion = "3.0
|
|
1
|
+
export declare const currentVersion = "3.1.0";
|
|
2
2
|
//# sourceMappingURL=currentVersion.d.ts.map
|
package/build/currentVersion.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export const currentVersion = '3.0
|
|
2
|
-
//# sourceMappingURL=currentVersion.js.map
|
|
1
|
+
export const currentVersion = '3.1.0';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { THaibunEvent } from '../schema/events.js';
|
|
2
|
+
import { TFeatureStep } from './defs.js';
|
|
3
|
+
export type { THaibunEvent } from '../schema/events.js';
|
|
4
|
+
export interface IEventLogger {
|
|
5
|
+
suppressConsole?: boolean;
|
|
6
|
+
setStepperCallback?(callback: (event: THaibunEvent) => void): void;
|
|
7
|
+
emit(event: THaibunEvent): void;
|
|
8
|
+
log(featureStep: TFeatureStep, level: 'info' | 'debug' | 'trace' | 'warn' | 'error', message: string, payload?: Record<string, unknown>): void;
|
|
9
|
+
stepStart(featureStep: TFeatureStep, stepperName: string, actionName: string): void;
|
|
10
|
+
stepEnd(featureStep: TFeatureStep, stepperName: string, actionName: string, ok: boolean, error?: string): void;
|
|
11
|
+
}
|
|
12
|
+
export declare class EventLogger implements IEventLogger {
|
|
13
|
+
private stepperCallback?;
|
|
14
|
+
suppressConsole: boolean;
|
|
15
|
+
constructor();
|
|
16
|
+
setStepperCallback(callback: (event: THaibunEvent) => void): void;
|
|
17
|
+
emit(event: THaibunEvent): void;
|
|
18
|
+
log(featureStep: TFeatureStep, level: 'info' | 'debug' | 'trace' | 'warn' | 'error', message: string, payload?: Record<string, unknown>): void;
|
|
19
|
+
stepStart(featureStep: TFeatureStep, stepperName: string, actionName: string): void;
|
|
20
|
+
stepEnd(featureStep: TFeatureStep, stepperName: string, actionName: string, ok: boolean, error?: string): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=EventLogger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventLogger.d.ts","sourceRoot":"","sources":["../../src/lib/EventLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACnE,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/I,SAAS,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACpF,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChH;AAyBD,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,eAAe,CAAC,CAAgC;IACjD,eAAe,EAAE,OAAO,CAAS;;IASxC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAIjE,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAiB/B,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAW9I,SAAS,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAenF,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAe/G"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { LogEvent, LifecycleEvent } from '../schema/events.js';
|
|
2
|
+
import { formatCurrentSeqPath } from './util/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get caller info for the emitter field (e.g., "Executor:238")
|
|
5
|
+
*/
|
|
6
|
+
function getEmitter() {
|
|
7
|
+
const stack = Error().stack?.split('\n');
|
|
8
|
+
if (!stack || stack.length < 5)
|
|
9
|
+
return 'unknown';
|
|
10
|
+
// Find the first non-EventLogger caller
|
|
11
|
+
for (let i = 3; i < Math.min(stack.length, 8); i++) {
|
|
12
|
+
const line = stack[i];
|
|
13
|
+
if (line.includes('EventLogger'))
|
|
14
|
+
continue;
|
|
15
|
+
const match = line.match(/at\s+(?:\w+\.)?(\w+)\s+.*:(\d+):\d+/);
|
|
16
|
+
if (match) {
|
|
17
|
+
return `${match[1]}:${match[2]}`;
|
|
18
|
+
}
|
|
19
|
+
// Handle "at file:..." pattern
|
|
20
|
+
const fileMatch = line.match(/\/([^/]+)\.(?:ts|js):(\d+):\d+/);
|
|
21
|
+
if (fileMatch) {
|
|
22
|
+
return `${fileMatch[1]}:${fileMatch[2]}`;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return 'unknown';
|
|
26
|
+
}
|
|
27
|
+
export class EventLogger {
|
|
28
|
+
stepperCallback;
|
|
29
|
+
suppressConsole = false;
|
|
30
|
+
constructor() {
|
|
31
|
+
// HAIBUN_NDJSON=true forces NDJSON output (for debugging tests)
|
|
32
|
+
// Otherwise suppress in test environments (VITEST or NODE_ENV=test)
|
|
33
|
+
const forceNdjson = process.env['HAIBUN_NDJSON'] === 'true';
|
|
34
|
+
const isTest = process.env['VITEST'] !== undefined || process.env['NODE_ENV'] === 'test';
|
|
35
|
+
this.suppressConsole = !forceNdjson && isTest;
|
|
36
|
+
}
|
|
37
|
+
setStepperCallback(callback) {
|
|
38
|
+
this.stepperCallback = callback;
|
|
39
|
+
}
|
|
40
|
+
emit(event) {
|
|
41
|
+
// Add emitter info if not already present
|
|
42
|
+
const eventWithEmitter = {
|
|
43
|
+
...event,
|
|
44
|
+
emitter: event.emitter || getEmitter(),
|
|
45
|
+
};
|
|
46
|
+
// Route through stepper callback for in-process monitors
|
|
47
|
+
if (this.stepperCallback) {
|
|
48
|
+
this.stepperCallback(eventWithEmitter);
|
|
49
|
+
}
|
|
50
|
+
// Output to stdout for CLI piping (unless suppressed)
|
|
51
|
+
if (!this.suppressConsole) {
|
|
52
|
+
console.log(JSON.stringify(eventWithEmitter));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
log(featureStep, level, message, payload) {
|
|
56
|
+
this.emit(LogEvent.parse({
|
|
57
|
+
id: formatCurrentSeqPath(featureStep.seqPath),
|
|
58
|
+
timestamp: Date.now(),
|
|
59
|
+
kind: 'log',
|
|
60
|
+
level,
|
|
61
|
+
message,
|
|
62
|
+
payload
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
stepStart(featureStep, stepperName, actionName) {
|
|
66
|
+
this.emit(LifecycleEvent.parse({
|
|
67
|
+
id: formatCurrentSeqPath(featureStep.seqPath),
|
|
68
|
+
timestamp: Date.now(),
|
|
69
|
+
kind: 'lifecycle',
|
|
70
|
+
type: 'step',
|
|
71
|
+
stage: 'start',
|
|
72
|
+
label: featureStep.in,
|
|
73
|
+
status: 'running',
|
|
74
|
+
intent: featureStep.intent ? { mode: featureStep.intent.mode } : undefined,
|
|
75
|
+
stepperName,
|
|
76
|
+
actionName
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
stepEnd(featureStep, stepperName, actionName, ok, error) {
|
|
80
|
+
this.emit(LifecycleEvent.parse({
|
|
81
|
+
id: formatCurrentSeqPath(featureStep.seqPath),
|
|
82
|
+
timestamp: Date.now(),
|
|
83
|
+
kind: 'lifecycle',
|
|
84
|
+
type: 'step',
|
|
85
|
+
stage: 'end',
|
|
86
|
+
label: featureStep.in,
|
|
87
|
+
status: ok ? 'completed' : 'failed',
|
|
88
|
+
error,
|
|
89
|
+
intent: featureStep.intent ? { mode: featureStep.intent.mode } : undefined,
|
|
90
|
+
stepperName,
|
|
91
|
+
actionName
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=EventLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventLogger.js","sourceRoot":"","sources":["../../src/lib/EventLogger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/lib/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,qBAAqB,EAAE,eAAe,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/lib/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,qBAAqB,EAAE,eAAe,EAAE,SAAS,EAAmB,MAAM,wBAAwB,CAAC;AAIlK,eAAO,MAAM,UAAU;;CAAmB,CAAC;AAC3C,eAAO,MAAM,cAAc;;CAAoB,CAAC;AAChD,eAAO,MAAM,aAAa;;;;;;;;CAQzB,CAAC;AAEF,KAAK,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACjD,KAAK,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAEjC,MAAM,CAAC,OAAO,OAAO,MAAO,YAAW,OAAO,EAAE,UAAU;IACzD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAK;IAC9B,GAAG,EAAE,UAAU,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,UAAU,EAAE,CAAM;IAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,SAAS,MAAa;gBAEjB,IAAI,EAAE,KAAK;IAYvB,aAAa,CAAC,UAAU,EAAE,UAAU;IAGpC,gBAAgB,CAAC,UAAU,EAAE,UAAU;IAGvC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;IAGpD,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,eAAe;IA0BtE,KAAK,GAAI,MAAM,QAAQ,EAAE,OAAO,eAAe,UAAmC;IAClF,KAAK,GAAI,MAAM,QAAQ,EAAE,OAAO,eAAe,UAAmC;IAClF,GAAG,GAAI,MAAM,QAAQ,EAAE,OAAO,eAAe,UAAiC;IAC9E,IAAI,GAAI,MAAM,QAAQ,EAAE,OAAO,eAAe,UAAkC;IAChF,IAAI,GAAI,MAAM,QAAQ,EAAE,OAAO,eAAe,UAAkC;IAChF,KAAK,GAAI,MAAM,QAAQ,EAAE,OAAO,eAAe,UAAmC;CAClF;AAGD,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,MAAM,CAAC,SAAS,SAAS,EACzE,SAAS,QAAQ,EACjB,MAAM;IAAE,QAAQ,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAAC,eAAe,CAAC,EAAE,SAAS,CAAA;CAAE,EACpF,QAAO,SAAiB,KACtB,IAOF,CAAA"}
|
package/build/lib/Logger.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { LOG_LEVEL_TRACE } from './interfaces/logger.js';
|
|
1
2
|
import { Timer } from './Timer.js';
|
|
2
3
|
import { descTag, isFirstTag } from './util/index.js';
|
|
3
4
|
export const LOGGER_LOG = { level: 'log' };
|
|
@@ -62,7 +63,7 @@ export default class Logger {
|
|
|
62
63
|
const tag = messageContext?.tag ? (isFirstTag(messageContext.tag) ? '' : descTag(messageContext.tag)) : '';
|
|
63
64
|
const [proggy, line /*, col*/] = caller.split(':');
|
|
64
65
|
// Map trace to log for console output (console.trace prints stack traces)
|
|
65
|
-
const consoleLevel = level ===
|
|
66
|
+
const consoleLevel = level === LOG_LEVEL_TRACE ? 'log' : level;
|
|
66
67
|
console[consoleLevel]((showLevel.padStart(6) + ` █ ${Timer.since() / 1000}:${proggy}:${line}${tag}`).padEnd(38) + ` | `, args);
|
|
67
68
|
}
|
|
68
69
|
debug = (args, mctx) => this.out('debug', args, mctx);
|
package/build/lib/Logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/lib/Logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/lib/Logger.ts"],"names":[],"mappings":"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"}
|
package/build/lib/astepper.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
import { TWorld, IStepperCycles, TStepperStep, TOptionValue, TEnvVariables } from './defs.js';
|
|
1
|
+
import { TWorld, IStepperCycles, TStepperStep, TOptionValue, TEnvVariables, IStepperWhen } from './defs.js';
|
|
2
2
|
import { TAnyFixme } from './fixme.js';
|
|
3
|
+
export declare const StepperKinds: {
|
|
4
|
+
readonly MONITOR: "MONITOR";
|
|
5
|
+
readonly STORAGE: "STORAGE";
|
|
6
|
+
readonly BROWSER: "BROWSER";
|
|
7
|
+
readonly SERVER: "SERVER";
|
|
8
|
+
readonly TEST: "TEST";
|
|
9
|
+
};
|
|
10
|
+
export type TStepperKind = keyof typeof StepperKinds;
|
|
3
11
|
export declare abstract class AStepper {
|
|
4
12
|
world?: TWorld;
|
|
13
|
+
kind?: TStepperKind;
|
|
5
14
|
setWorld(world: TWorld, _steppers: AStepper[]): Promise<void>;
|
|
6
15
|
abstract steps: TStepperSteps;
|
|
7
16
|
getWorld(): TWorld;
|
|
@@ -26,5 +35,6 @@ export interface IHasOptions {
|
|
|
26
35
|
}
|
|
27
36
|
export interface IHasCycles {
|
|
28
37
|
cycles: IStepperCycles;
|
|
38
|
+
cyclesWhen?: IStepperWhen;
|
|
29
39
|
}
|
|
30
40
|
//# sourceMappingURL=astepper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astepper.d.ts","sourceRoot":"","sources":["../../src/lib/astepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"astepper.d.ts","sourceRoot":"","sources":["../../src/lib/astepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC5G,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,YAAY,CAAC;AAErD,8BAAsB,QAAQ;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,CAAC;IAEd,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE;IAMnD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ;CAOR;AACD,MAAM,MAAM,aAAa,GAAG;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC;CAC5B,CAAC;AACF,MAAM,WAAW,WAAW;IAC3B,OAAO,CAAC,EAAE;QACT,CAAC,IAAI,EAAE,MAAM,GAAG;YACf,QAAQ,CAAC,EAAE,OAAO,CAAC;YAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,KAAK;gBAAE,UAAU,CAAC,EAAE,MAAM,CAAC;gBAAC,GAAG,CAAC,EAAE,aAAa,CAAC;gBAAC,MAAM,CAAC,EAAE,SAAS,CAAC;aAAE,CAAC;SACrH,CAAC;KACF,CAAC;CACF;AAED,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,YAAY,CAAC;CAC1B"}
|
package/build/lib/astepper.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { constructorName } from './util/index.js';
|
|
2
|
+
export const StepperKinds = {
|
|
3
|
+
MONITOR: 'MONITOR',
|
|
4
|
+
STORAGE: 'STORAGE',
|
|
5
|
+
BROWSER: 'BROWSER',
|
|
6
|
+
SERVER: 'SERVER',
|
|
7
|
+
TEST: 'TEST',
|
|
8
|
+
};
|
|
2
9
|
export class AStepper {
|
|
3
10
|
world;
|
|
11
|
+
kind;
|
|
4
12
|
async setWorld(world, _steppers) {
|
|
5
13
|
this.world = world;
|
|
6
14
|
// some steppers like to keep a reference to all steppers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astepper.js","sourceRoot":"","sources":["../../src/lib/astepper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,OAAgB,QAAQ;IAC7B,KAAK,CAAU;IACf,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,SAAqB;QAClD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,yDAAyD;QACzD,KAAK,SAAS,CAAC;QACf,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,KAAK,CAAC,yBAAyB,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"astepper.js","sourceRoot":"","sources":["../../src/lib/astepper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACH,CAAC;AAIX,MAAM,OAAgB,QAAQ;IAC7B,KAAK,CAAU;IACf,IAAI,CAAgB;IAEpB,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,SAAqB;QAClD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,yDAAyD;QACzD,KAAK,SAAS,CAAC;QACf,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,KAAK,CAAC,yBAAyB,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;CACD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { TWorld, TFeatureStep, TSeqPath } from '../defs.js';
|
|
2
|
+
import { AStepper } from '../astepper.js';
|
|
3
|
+
import { ExecutionIntent, FlowSignal } from './protocol.js';
|
|
4
|
+
export declare class FlowRunner {
|
|
5
|
+
private world;
|
|
6
|
+
private steppers;
|
|
7
|
+
private resolver;
|
|
8
|
+
constructor(world: TWorld, steppers: AStepper[]);
|
|
9
|
+
runStatement(statement: string, options?: {
|
|
10
|
+
args?: Record<string, string>;
|
|
11
|
+
intent?: ExecutionIntent;
|
|
12
|
+
parentStep?: TFeatureStep;
|
|
13
|
+
seqPath?: TSeqPath;
|
|
14
|
+
}): Promise<FlowSignal>;
|
|
15
|
+
runStatements(statements: string[], options?: {
|
|
16
|
+
args?: Record<string, string>;
|
|
17
|
+
intent?: ExecutionIntent;
|
|
18
|
+
parentStep?: TFeatureStep;
|
|
19
|
+
}): Promise<FlowSignal>;
|
|
20
|
+
runSteps(steps: TFeatureStep[], options?: {
|
|
21
|
+
intent?: ExecutionIntent;
|
|
22
|
+
parentStep?: TFeatureStep;
|
|
23
|
+
}): Promise<FlowSignal>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=flow-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-runner.d.ts","sourceRoot":"","sources":["../../../src/lib/core/flow-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAsB,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5D,qBAAa,UAAU;IAGV,OAAO,CAAC,KAAK;IAAU,OAAO,CAAC,QAAQ;IAFnD,OAAO,CAAC,QAAQ,CAAW;gBAEP,KAAK,EAAE,MAAM,EAAU,QAAQ,EAAE,QAAQ,EAAE;IAIzD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,UAAU,CAAC,EAAE,YAAY,CAAC;QAAC,OAAO,CAAC,EAAE,QAAQ,CAAA;KAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAkE9K,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,UAAU,CAAC,EAAE,YAAY,CAAA;KAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAY9J,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,UAAU,CAAC,EAAE,YAAY,CAAA;KAAO,GAAG,OAAO,CAAC,UAAU,CAAC;CAgDjI"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { Resolver } from '../../phases/Resolver.js';
|
|
2
|
+
import { FeatureExecutor, incSeqPath } from '../../phases/Executor.js';
|
|
3
|
+
export class FlowRunner {
|
|
4
|
+
world;
|
|
5
|
+
steppers;
|
|
6
|
+
resolver;
|
|
7
|
+
constructor(world, steppers) {
|
|
8
|
+
this.world = world;
|
|
9
|
+
this.steppers = steppers;
|
|
10
|
+
this.resolver = new Resolver(steppers);
|
|
11
|
+
}
|
|
12
|
+
async runStatement(statement, options = {}) {
|
|
13
|
+
const { intent = { mode: 'authoritative' } } = options;
|
|
14
|
+
// Merge parent runtimeArgs with current args (current takes precedence)
|
|
15
|
+
// This enables nested quantifiers: outer vars are visible to inner statements
|
|
16
|
+
const allArgs = { ...options.parentStep?.runtimeArgs, ...options.args };
|
|
17
|
+
// Interpolate {varName} patterns using merged args
|
|
18
|
+
let statementWithArgs = statement;
|
|
19
|
+
if (Object.keys(allArgs).length > 0) {
|
|
20
|
+
for (const [key, value] of Object.entries(allArgs)) {
|
|
21
|
+
statementWithArgs = statementWithArgs.replace(new RegExp(`\\{${key}\\}`, 'g'), value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
let action;
|
|
25
|
+
try {
|
|
26
|
+
action = this.resolver.findSingleStepAction(statementWithArgs);
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
if (intent.mode === 'speculative') {
|
|
30
|
+
return { kind: 'fail', message: e.message };
|
|
31
|
+
}
|
|
32
|
+
throw e;
|
|
33
|
+
}
|
|
34
|
+
let seqPath = options.seqPath;
|
|
35
|
+
if (!seqPath) {
|
|
36
|
+
if (options.parentStep) {
|
|
37
|
+
seqPath = incSeqPath(this.world.runtime.stepResults, [...options.parentStep.seqPath, 1], 1);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
throw new Error(`runStatement requires seqPath or parentStep. Statement: ${statement}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Merge parent args with current args (current takes precedence)
|
|
44
|
+
const mergedArgs = { ...options.parentStep?.runtimeArgs, ...options.args };
|
|
45
|
+
const featureStep = {
|
|
46
|
+
path: options.parentStep?.path || this.world.runtime.feature || 'unknown',
|
|
47
|
+
in: statementWithArgs,
|
|
48
|
+
seqPath,
|
|
49
|
+
action,
|
|
50
|
+
intent,
|
|
51
|
+
isSubStep: !!options.parentStep,
|
|
52
|
+
runtimeArgs: Object.keys(mergedArgs).length > 0 ? mergedArgs : undefined
|
|
53
|
+
};
|
|
54
|
+
let result;
|
|
55
|
+
try {
|
|
56
|
+
result = await FeatureExecutor.doFeatureStep(this.steppers, featureStep, this.world);
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
if (intent.mode === 'speculative') {
|
|
60
|
+
return { kind: 'fail', message: e.message };
|
|
61
|
+
}
|
|
62
|
+
throw e;
|
|
63
|
+
}
|
|
64
|
+
if (result.ok) {
|
|
65
|
+
return { kind: 'ok', payload: result.stepActionResult };
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
const msg = result.stepActionResult.message;
|
|
69
|
+
return { kind: 'fail', message: msg, payload: result.stepActionResult };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async runStatements(statements, options = {}) {
|
|
73
|
+
let lastResult;
|
|
74
|
+
for (const stmt of statements) {
|
|
75
|
+
const result = await this.runStatement(stmt, options);
|
|
76
|
+
if (result.kind !== 'ok') {
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
lastResult = result;
|
|
80
|
+
}
|
|
81
|
+
return { kind: 'ok', payload: lastResult?.payload };
|
|
82
|
+
}
|
|
83
|
+
async runSteps(steps, options = {}) {
|
|
84
|
+
const { intent = { mode: 'authoritative' }, parentStep } = options;
|
|
85
|
+
let lastResult;
|
|
86
|
+
for (const step of steps) {
|
|
87
|
+
let mappedStep = {
|
|
88
|
+
...step,
|
|
89
|
+
intent,
|
|
90
|
+
runtimeArgs: { ...parentStep?.runtimeArgs, ...step.runtimeArgs }
|
|
91
|
+
};
|
|
92
|
+
if (parentStep) {
|
|
93
|
+
// For nested steps, we append to the parent's seqPath.
|
|
94
|
+
// We use incSeqPath to ensure we get a unique path based on what has already executed.
|
|
95
|
+
// This handles loops and repeated calls correctly.
|
|
96
|
+
const baseSeqPath = [...parentStep.seqPath, 1];
|
|
97
|
+
const dir = intent.mode === 'speculative' ? -1 : 1;
|
|
98
|
+
const seqPath = incSeqPath(this.world.runtime.stepResults, baseSeqPath, dir);
|
|
99
|
+
mappedStep = { ...mappedStep, seqPath, isSubStep: true };
|
|
100
|
+
}
|
|
101
|
+
let result;
|
|
102
|
+
try {
|
|
103
|
+
result = await FeatureExecutor.doFeatureStep(this.steppers, mappedStep, this.world);
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
if (intent.mode === 'speculative') {
|
|
107
|
+
return { kind: 'fail', message: e.message };
|
|
108
|
+
}
|
|
109
|
+
throw e;
|
|
110
|
+
}
|
|
111
|
+
// If not using cycles (which doFeatureStep defaults to WITH_CYCLES), we might need to push results.
|
|
112
|
+
// But doFeatureStep pushes results if WITH_CYCLES.
|
|
113
|
+
// If we are in speculative mode, doFeatureStep might still push results if we don't change execMode.
|
|
114
|
+
// However, FlowRunner doesn't currently control execMode passed to doFeatureStep directly,
|
|
115
|
+
// it relies on FeatureExecutor defaults.
|
|
116
|
+
// If we want to avoid polluting stepResults in speculative mode, we might need to adjust FeatureExecutor or pass a flag.
|
|
117
|
+
// But for now, to ensure incSeqPath works, we NEED results in stepResults.
|
|
118
|
+
// So we accept that speculative steps might be in stepResults (which is probably fine for debugging).
|
|
119
|
+
if (!result.ok) {
|
|
120
|
+
const msg = result.stepActionResult.message;
|
|
121
|
+
return { kind: 'fail', message: msg, payload: result.stepActionResult };
|
|
122
|
+
}
|
|
123
|
+
lastResult = { kind: 'ok', payload: result.stepActionResult };
|
|
124
|
+
}
|
|
125
|
+
return { kind: 'ok', payload: lastResult?.payload };
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=flow-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-runner.js","sourceRoot":"","sources":["../../../src/lib/core/flow-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const ExecutionIntentSchema: z.ZodObject<{
|
|
3
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
4
|
+
authoritative: "authoritative";
|
|
5
|
+
speculative: "speculative";
|
|
6
|
+
prose: "prose";
|
|
7
|
+
}>>;
|
|
8
|
+
usage: z.ZodOptional<z.ZodEnum<{
|
|
9
|
+
testing: "testing";
|
|
10
|
+
debugging: "debugging";
|
|
11
|
+
background: "background";
|
|
12
|
+
polling: "polling";
|
|
13
|
+
}>>;
|
|
14
|
+
stepperOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
export type ExecutionIntent = z.infer<typeof ExecutionIntentSchema>;
|
|
17
|
+
export declare const FlowSignalSchema: z.ZodObject<{
|
|
18
|
+
kind: z.ZodEnum<{
|
|
19
|
+
ok: "ok";
|
|
20
|
+
fail: "fail";
|
|
21
|
+
retry: "retry";
|
|
22
|
+
skip: "skip";
|
|
23
|
+
}>;
|
|
24
|
+
message: z.ZodOptional<z.ZodString>;
|
|
25
|
+
fatal: z.ZodOptional<z.ZodBoolean>;
|
|
26
|
+
payload: z.ZodOptional<z.ZodAny>;
|
|
27
|
+
}, z.core.$strip>;
|
|
28
|
+
export type FlowSignal = z.infer<typeof FlowSignalSchema>;
|
|
29
|
+
export declare const SystemMessageSchema: z.ZodObject<{
|
|
30
|
+
topic: z.ZodOptional<z.ZodString>;
|
|
31
|
+
signal: z.ZodObject<{
|
|
32
|
+
kind: z.ZodEnum<{
|
|
33
|
+
ok: "ok";
|
|
34
|
+
fail: "fail";
|
|
35
|
+
retry: "retry";
|
|
36
|
+
skip: "skip";
|
|
37
|
+
}>;
|
|
38
|
+
message: z.ZodOptional<z.ZodString>;
|
|
39
|
+
fatal: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
payload: z.ZodOptional<z.ZodAny>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
intent: z.ZodObject<{
|
|
43
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
44
|
+
authoritative: "authoritative";
|
|
45
|
+
speculative: "speculative";
|
|
46
|
+
prose: "prose";
|
|
47
|
+
}>>;
|
|
48
|
+
usage: z.ZodOptional<z.ZodEnum<{
|
|
49
|
+
testing: "testing";
|
|
50
|
+
debugging: "debugging";
|
|
51
|
+
background: "background";
|
|
52
|
+
polling: "polling";
|
|
53
|
+
}>>;
|
|
54
|
+
stepperOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
}, z.core.$strip>;
|
|
57
|
+
export type SystemMessage = z.infer<typeof SystemMessageSchema>;
|
|
58
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/lib/core/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;iBAIhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,gBAAgB;;;;;;;;;;iBAK3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAI9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const ExecutionIntentSchema = z.object({
|
|
3
|
+
mode: z.enum(['authoritative', 'speculative', 'prose']).default('authoritative'),
|
|
4
|
+
usage: z.enum(['testing', 'debugging', 'background', 'polling']).optional(),
|
|
5
|
+
stepperOptions: z.record(z.string(), z.any()).optional(),
|
|
6
|
+
});
|
|
7
|
+
export const FlowSignalSchema = z.object({
|
|
8
|
+
kind: z.enum(['ok', 'fail', 'retry', 'skip']),
|
|
9
|
+
message: z.string().optional(),
|
|
10
|
+
fatal: z.boolean().optional(),
|
|
11
|
+
payload: z.any().optional(),
|
|
12
|
+
});
|
|
13
|
+
export const SystemMessageSchema = z.object({
|
|
14
|
+
topic: z.string().optional(),
|
|
15
|
+
signal: FlowSignalSchema,
|
|
16
|
+
intent: ExecutionIntentSchema,
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/lib/core/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IAChF,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3E,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,qBAAqB;CAC9B,CAAC,CAAC"}
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare const getCoreDomains: (world: TWorld) => {
|
|
4
|
-
string: {
|
|
5
|
-
coerce: (proto: TStepValue) => string;
|
|
6
|
-
};
|
|
7
|
-
number: {
|
|
8
|
-
coerce: (proto: TStepValue) => number;
|
|
9
|
-
};
|
|
10
|
-
json: {
|
|
11
|
-
coerce: (proto: TStepValue) => any;
|
|
12
|
-
};
|
|
13
|
-
statement: {
|
|
14
|
-
coerce: (proto: TStepValue, featureStep: TFeatureStep, steppers: AStepper[]) => TFeatureStep[];
|
|
15
|
-
};
|
|
16
|
-
};
|
|
1
|
+
import { TWorld } from "./defs.js";
|
|
2
|
+
export declare const getCoreDomains: (world: TWorld) => Record<string, import("./defs.js").TRegisteredDomain>;
|
|
17
3
|
//# sourceMappingURL=core-domains.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-domains.d.ts","sourceRoot":"","sources":["../../src/lib/core-domains.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core-domains.d.ts","sourceRoot":"","sources":["../../src/lib/core-domains.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+C,MAAM,EAAE,MAAM,WAAW,CAAC;AA0DhF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,0DAA6D,CAAC"}
|
|
@@ -1,39 +1,58 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { DOMAIN_DATE, DOMAIN_JSON, DOMAIN_NUMBER, DOMAIN_STATEMENT, DOMAIN_STRING, mapDefinitionsToDomains } from './domain-types.js';
|
|
3
|
+
import { findFeatureStepsFromStatement } from "../phases/Resolver.js";
|
|
4
|
+
const numberSchema = z.coerce.number({ error: 'invalid number' })
|
|
5
|
+
.refine((value) => Number.isFinite(value), 'invalid number');
|
|
6
|
+
const stringSchema = z.coerce.string({ error: 'value is required' });
|
|
7
|
+
const jsonStringSchema = z.string({ error: 'json value is required' });
|
|
8
|
+
const statementSchema = z.string({ error: 'statement label is required' }).min(1, 'statement cannot be empty');
|
|
9
|
+
const dateSchema = z.coerce.date({ error: 'invalid date' });
|
|
10
|
+
const getCoreDomainDefinitions = (world) => ([
|
|
11
|
+
{
|
|
12
|
+
selectors: [DOMAIN_STRING],
|
|
13
|
+
schema: stringSchema,
|
|
14
|
+
description: 'Plain string literal captured from feature text.'
|
|
7
15
|
},
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
{
|
|
17
|
+
selectors: [DOMAIN_NUMBER],
|
|
18
|
+
schema: numberSchema,
|
|
19
|
+
description: 'Numeric literal coerced with Number().',
|
|
20
|
+
comparator: (value, baseline) => value - baseline,
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
selectors: [DOMAIN_DATE],
|
|
24
|
+
schema: dateSchema,
|
|
25
|
+
description: 'Date object derived from ISO timestamp, epoch ms, or Date literal.',
|
|
26
|
+
comparator: (value, baseline) => value.getTime() - baseline.getTime(),
|
|
17
27
|
},
|
|
18
|
-
|
|
28
|
+
{
|
|
29
|
+
selectors: [DOMAIN_JSON],
|
|
30
|
+
schema: jsonStringSchema,
|
|
31
|
+
description: 'JSON string parsed into native JavaScript values.',
|
|
19
32
|
coerce: (proto) => {
|
|
20
|
-
|
|
21
|
-
throw new Error(`invalid json '${String(proto.value)}'`);
|
|
33
|
+
const raw = jsonStringSchema.parse(proto.value);
|
|
22
34
|
try {
|
|
23
|
-
return JSON.parse(
|
|
35
|
+
return JSON.parse(raw);
|
|
24
36
|
}
|
|
25
37
|
catch {
|
|
26
|
-
throw new Error(`invalid json '${
|
|
38
|
+
throw new Error(`invalid json '${raw}'`);
|
|
27
39
|
}
|
|
28
|
-
}
|
|
40
|
+
},
|
|
29
41
|
},
|
|
30
|
-
|
|
42
|
+
{
|
|
43
|
+
selectors: [DOMAIN_STATEMENT],
|
|
44
|
+
schema: statementSchema,
|
|
45
|
+
description: 'Reference to another Haibun statement.',
|
|
31
46
|
coerce: (proto, featureStep, steppers) => {
|
|
32
|
-
|
|
47
|
+
if (!featureStep || !steppers) {
|
|
48
|
+
throw new Error('statement domain coercion requires feature context');
|
|
49
|
+
}
|
|
50
|
+
const label = statementSchema.parse(proto.value);
|
|
33
51
|
const seqStart = featureStep.seqPath;
|
|
34
|
-
|
|
35
|
-
return findFeatureStepsFromStatement(lbl, steppers, world, featureStep.path, [...seqStart, 0], -1);
|
|
52
|
+
return findFeatureStepsFromStatement(label, steppers, world, featureStep.path, [...seqStart, 0], -1);
|
|
36
53
|
}
|
|
37
|
-
}
|
|
38
|
-
|
|
54
|
+
},
|
|
55
|
+
]);
|
|
56
|
+
// Core domain registry factory. Returns coercion functions for built-in domains.
|
|
57
|
+
export const getCoreDomains = (world) => mapDefinitionsToDomains(getCoreDomainDefinitions(world));
|
|
39
58
|
//# sourceMappingURL=core-domains.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-domains.js","sourceRoot":"","sources":["../../src/lib/core-domains.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core-domains.js","sourceRoot":"","sources":["../../src/lib/core-domains.ts"],"names":[],"mappings":"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"}
|