@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,27 +0,0 @@
|
|
|
1
|
-
import { AStepper } from '../lib/astepper.js';
|
|
2
|
-
import { TStepperSteps } from '../lib/astepper.js';
|
|
3
|
-
/**
|
|
4
|
-
* Virtual stepper that dynamically builds steps from `remember` statements.
|
|
5
|
-
* During pre-Resolve phase, this stepper is populated with conditions
|
|
6
|
-
* extracted from all `remember {condition} with {proof}` statements in features.
|
|
7
|
-
*
|
|
8
|
-
* When `ensure {condition}` is called, it will match against these conditions via
|
|
9
|
-
* normal GWTA resolution, check if already cached, and execute the recipe if needed.
|
|
10
|
-
*/
|
|
11
|
-
export declare class ConditionsStepper extends AStepper {
|
|
12
|
-
steps: TStepperSteps;
|
|
13
|
-
steppers: AStepper[];
|
|
14
|
-
forgetsMap: Record<string, string[]>;
|
|
15
|
-
/**
|
|
16
|
-
* Register a condition with its proof steps.
|
|
17
|
-
* This is called when parsing `remember` statements.
|
|
18
|
-
*
|
|
19
|
-
* @param condition - The condition (e.g., "Is logged in as {user}")
|
|
20
|
-
* @param proofStatements - Array of statement strings that prove this condition
|
|
21
|
-
* @param proofPath - The path of the feature containing the proof
|
|
22
|
-
* @param forgets - Optional condition that this condition forgets
|
|
23
|
-
*/
|
|
24
|
-
registerCondition(condition: string, proofStatements: string[], proofPath: string, forgets?: string): void;
|
|
25
|
-
}
|
|
26
|
-
export default ConditionsStepper;
|
|
27
|
-
//# sourceMappingURL=conditions-stepper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conditions-stepper.d.ts","sourceRoot":"","sources":["../../src/steps/conditions-stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,KAAK,EAAE,aAAa,CAAM;IAC1B,QAAQ,EAAE,QAAQ,EAAE,CAAM;IAG1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IAE1C;;;;;;;;OAQG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CA0FpG;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { AStepper } from '../lib/astepper.js';
|
|
2
|
-
import { executeSubFeatureSteps, findFeatureStepsFromStatement } from '../lib/util/featureStep-executor.js';
|
|
3
|
-
import { ExecMode } from '../lib/defs.js';
|
|
4
|
-
import { actionOK, actionNotOK } from '../lib/util/index.js';
|
|
5
|
-
/**
|
|
6
|
-
* Virtual stepper that dynamically builds steps from `remember` statements.
|
|
7
|
-
* During pre-Resolve phase, this stepper is populated with conditions
|
|
8
|
-
* extracted from all `remember {condition} with {proof}` statements in features.
|
|
9
|
-
*
|
|
10
|
-
* When `ensure {condition}` is called, it will match against these conditions via
|
|
11
|
-
* normal GWTA resolution, check if already cached, and execute the recipe if needed.
|
|
12
|
-
*/
|
|
13
|
-
export class ConditionsStepper extends AStepper {
|
|
14
|
-
steps = {};
|
|
15
|
-
steppers = [];
|
|
16
|
-
// Track which conditions cause other conditions to be forgotten
|
|
17
|
-
// Key: condition, Value: array of conditions to forget
|
|
18
|
-
forgetsMap = {};
|
|
19
|
-
/**
|
|
20
|
-
* Register a condition with its proof steps.
|
|
21
|
-
* This is called when parsing `remember` statements.
|
|
22
|
-
*
|
|
23
|
-
* @param condition - The condition (e.g., "Is logged in as {user}")
|
|
24
|
-
* @param proofStatements - Array of statement strings that prove this condition
|
|
25
|
-
* @param proofPath - The path of the feature containing the proof
|
|
26
|
-
* @param forgets - Optional condition that this condition forgets
|
|
27
|
-
*/
|
|
28
|
-
registerCondition(condition, proofStatements, proofPath, forgets) {
|
|
29
|
-
// Prevent duplicate condition registration
|
|
30
|
-
if (this.steps[condition]) {
|
|
31
|
-
throw new Error(`Condition "${condition}" is already registered. Each condition can only be defined once.`);
|
|
32
|
-
}
|
|
33
|
-
// Store forgets relationship if provided
|
|
34
|
-
if (forgets) {
|
|
35
|
-
this.forgetsMap[condition] = [forgets];
|
|
36
|
-
}
|
|
37
|
-
this.getWorld().logger.info(`ConditionsStepper: registerCondition called with ${proofStatements.length} steps for "${condition}"`);
|
|
38
|
-
this.steps[condition] = {
|
|
39
|
-
gwta: condition,
|
|
40
|
-
description: `Condition: ${condition}. Proof: ${proofStatements.join('; ')}`,
|
|
41
|
-
action: async (args, featureStep) => {
|
|
42
|
-
this.getWorld().logger.debug(`ConditionsStepper: executing recipe for condition "${condition}" with args ${JSON.stringify(args)}`);
|
|
43
|
-
// If this condition forgets other conditions, handle that first
|
|
44
|
-
if (this.forgetsMap[condition]) {
|
|
45
|
-
const satisfied = this.getWorld().runtime.satisfiedConditions;
|
|
46
|
-
for (const forgottenCondition of this.forgetsMap[condition]) {
|
|
47
|
-
// Build the forgotten key the same way ensure builds it: from resolved step.in
|
|
48
|
-
// We need to resolve the forgotten condition with the same args
|
|
49
|
-
let forgottenKey = forgottenCondition;
|
|
50
|
-
// Replace placeholders with their values as they appear in featureStep.in
|
|
51
|
-
// The args values already have quotes if they were quoted in the input
|
|
52
|
-
for (const [key, value] of Object.entries(args)) {
|
|
53
|
-
// Need to add quotes back since args are unquoted
|
|
54
|
-
const quotedValue = typeof value === 'string' ? `"${value}"` : String(value);
|
|
55
|
-
forgottenKey = forgottenKey.replace(new RegExp(`\\{${key}\\}`, 'g'), quotedValue);
|
|
56
|
-
}
|
|
57
|
-
// Delete the matching cache entry
|
|
58
|
-
if (satisfied[forgottenKey]) {
|
|
59
|
-
delete satisfied[forgottenKey];
|
|
60
|
-
this.getWorld().logger.debug(`ConditionsStepper: auto-forgot "${forgottenKey}" due to forgets clause`);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
// Expand variables in proof statements using the matched args
|
|
65
|
-
const expandedProofStatements = proofStatements.map(statement => {
|
|
66
|
-
let expanded = statement;
|
|
67
|
-
for (const [key, value] of Object.entries(args)) {
|
|
68
|
-
expanded = expanded.replace(new RegExp(`\\{${key}\\}`, 'g'), String(value));
|
|
69
|
-
}
|
|
70
|
-
return expanded;
|
|
71
|
-
});
|
|
72
|
-
// Re-resolve the proof statements in the current execution context
|
|
73
|
-
const resolvedProofSteps = [];
|
|
74
|
-
for (let i = 0; i < expandedProofStatements.length; i++) {
|
|
75
|
-
const statement = expandedProofStatements[i];
|
|
76
|
-
this.getWorld().logger.debug(`ConditionsStepper: resolving proof statement ${i}: "${statement}"`);
|
|
77
|
-
const resolved = findFeatureStepsFromStatement(statement, this.steppers, this.world, proofPath, [...featureStep.seqPath, i], 1);
|
|
78
|
-
resolvedProofSteps.push(...resolved);
|
|
79
|
-
}
|
|
80
|
-
// Execute the re-resolved proof steps
|
|
81
|
-
const result = await executeSubFeatureSteps(featureStep, resolvedProofSteps, this.steppers, this.getWorld(), ExecMode.WITH_CYCLES);
|
|
82
|
-
if (!result.ok) {
|
|
83
|
-
return actionNotOK(`ConditionsStepper: failed to satisfy condition "${condition}"`);
|
|
84
|
-
}
|
|
85
|
-
// Cache the satisfied condition with provenance
|
|
86
|
-
const conditionKey = featureStep.in;
|
|
87
|
-
this.getWorld().runtime.satisfiedConditions[conditionKey] = {
|
|
88
|
-
seqPath: featureStep.seqPath,
|
|
89
|
-
proof: expandedProofStatements
|
|
90
|
-
};
|
|
91
|
-
this.getWorld().logger.debug(`ConditionsStepper: cached condition "${conditionKey}" at ${JSON.stringify(featureStep.seqPath)}`);
|
|
92
|
-
return actionOK();
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
this.getWorld().logger.info(`ConditionsStepper: registered condition "${condition}" with ${proofStatements.length} proof steps`);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
export default ConditionsStepper;
|
|
99
|
-
//# sourceMappingURL=conditions-stepper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conditions-stepper.js","sourceRoot":"","sources":["../../src/steps/conditions-stepper.ts"],"names":[],"mappings":"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"}
|