@haibun/core 2.0.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/build/currentVersion.d.ts +1 -1
  2. package/build/currentVersion.js +1 -2
  3. package/build/jsprolog/converter.d.ts +9 -0
  4. package/build/jsprolog/converter.d.ts.map +1 -0
  5. package/build/jsprolog/converter.js +42 -0
  6. package/build/jsprolog/converter.js.map +1 -0
  7. package/build/jsprolog/stepper-utils.d.ts +8 -0
  8. package/build/jsprolog/stepper-utils.d.ts.map +1 -0
  9. package/build/jsprolog/stepper-utils.js +8 -0
  10. package/build/jsprolog/stepper-utils.js.map +1 -0
  11. package/build/jsprolog/test.jsprolog.d.ts +4 -0
  12. package/build/jsprolog/test.jsprolog.d.ts.map +1 -0
  13. package/build/jsprolog/test.jsprolog.js +19 -0
  14. package/build/jsprolog/test.jsprolog.js.map +1 -0
  15. package/build/jsprolog/test.kireji.d.ts +4 -0
  16. package/build/jsprolog/test.kireji.d.ts.map +1 -0
  17. package/build/jsprolog/test.kireji.js +19 -0
  18. package/build/jsprolog/test.kireji.js.map +1 -0
  19. package/build/jsprolog/withAction.d.ts +32 -0
  20. package/build/jsprolog/withAction.d.ts.map +1 -0
  21. package/build/jsprolog/withAction.js +65 -0
  22. package/build/jsprolog/withAction.js.map +1 -0
  23. package/build/kireji/converter.d.ts +9 -0
  24. package/build/kireji/converter.d.ts.map +1 -0
  25. package/build/kireji/converter.js +48 -0
  26. package/build/kireji/converter.js.map +1 -0
  27. package/build/kireji/test.kireji.d.ts +4 -0
  28. package/build/kireji/test.kireji.d.ts.map +1 -0
  29. package/build/kireji/test.kireji.js +19 -0
  30. package/build/kireji/test.kireji.js.map +1 -0
  31. package/build/kireji/withAction.d.ts +36 -0
  32. package/build/kireji/withAction.d.ts.map +1 -0
  33. package/build/kireji/withAction.js +66 -0
  34. package/build/kireji/withAction.js.map +1 -0
  35. package/build/lib/errors.d.ts +13 -0
  36. package/build/lib/errors.d.ts.map +1 -0
  37. package/build/lib/errors.js +18 -0
  38. package/build/lib/errors.js.map +1 -0
  39. package/build/steps/activities-stepper.d.ts +73 -0
  40. package/build/steps/activities-stepper.d.ts.map +1 -0
  41. package/build/steps/activities-stepper.js +341 -0
  42. package/build/steps/activities-stepper.js.map +1 -0
  43. package/build/steps/conditions-stepper.d.ts +27 -0
  44. package/build/steps/conditions-stepper.d.ts.map +1 -0
  45. package/build/steps/conditions-stepper.js +99 -0
  46. package/build/steps/conditions-stepper.js.map +1 -0
  47. package/build/steps/outcomesRegistry.d.ts +8 -0
  48. package/build/steps/outcomesRegistry.d.ts.map +1 -0
  49. package/build/steps/outcomesRegistry.js +3 -0
  50. package/build/steps/outcomesRegistry.js.map +1 -0
  51. package/build/steps/registeredOutcomesStore.d.ts +12 -0
  52. package/build/steps/registeredOutcomesStore.d.ts.map +1 -0
  53. package/build/steps/registeredOutcomesStore.js +11 -0
  54. package/build/steps/registeredOutcomesStore.js.map +1 -0
  55. package/package.json +1 -1
  56. package/build/lib/dependency-resolver.d.ts +0 -2
  57. package/build/lib/dependency-resolver.d.ts.map +0 -1
  58. package/build/lib/dependency-resolver.js +0 -3
  59. package/build/lib/dependency-resolver.js.map +0 -1
  60. package/build/lib/resolve-or-error.d.ts +0 -2
  61. package/build/lib/resolve-or-error.d.ts.map +0 -1
  62. package/build/lib/resolve-or-error.js +0 -3
  63. package/build/lib/resolve-or-error.js.map +0 -1
  64. package/build/lib/resolved-text-view.d.ts +0 -32
  65. package/build/lib/resolved-text-view.d.ts.map +0 -1
  66. package/build/lib/resolved-text-view.js +0 -103
  67. package/build/lib/resolved-text-view.js.map +0 -1
  68. package/build/lib/resolved-view.d.ts +0 -45
  69. package/build/lib/resolved-view.d.ts.map +0 -1
  70. package/build/lib/resolved-view.js +0 -133
  71. package/build/lib/resolved-view.js.map +0 -1
  72. package/build/phases/statement.test copy.d.ts +0 -2
  73. package/build/phases/statement.test copy.d.ts.map +0 -1
  74. package/build/phases/statement.test copy.js +0 -57
  75. package/build/phases/statement.test copy.js.map +0 -1
@@ -1,2 +1,2 @@
1
- export declare const currentVersion = "2.0.0";
1
+ export declare const currentVersion = "2.1.1";
2
2
  //# sourceMappingURL=currentVersion.d.ts.map
@@ -1,2 +1 @@
1
- export const currentVersion = '2.0.0';
2
- //# sourceMappingURL=currentVersion.js.map
1
+ export const currentVersion = '2.1.1';
@@ -0,0 +1,9 @@
1
+ import { AStepper } from '../lib/astepper.js';
2
+ import { TActionExecutor } from './withAction.js';
3
+ type TkirejiFeature = {
4
+ [key: string]: TActionExecutor<string>[];
5
+ };
6
+ export declare const toBdd: (feature: TkirejiFeature) => string;
7
+ export declare const fromBdd: (bdd: string, steppers: AStepper[]) => Promise<TkirejiFeature>;
8
+ export {};
9
+ //# sourceMappingURL=converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/jsprolog/converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAA8B,MAAM,iBAAiB,CAAC;AAG9E,KAAK,cAAc,GAAG;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,SAAS,cAAc,KAAG,MAc/C,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,UAAU,QAAQ,EAAE,KAAG,OAAO,CAAC,cAAc,CA+BjF,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { Resolver } from '../phases/Resolver.js';
2
+ import { withAction } from './withAction.js';
3
+ export const toBdd = (feature) => {
4
+ let bddString = '';
5
+ for (const featureName in feature) {
6
+ bddString += `Feature: ${featureName}\n`;
7
+ const steps = feature[featureName];
8
+ for (const step of steps) {
9
+ const { gwta } = step();
10
+ bddString += ` ${gwta}\n`;
11
+ }
12
+ }
13
+ return bddString;
14
+ };
15
+ export const fromBdd = (bdd, steppers) => {
16
+ const lines = bdd.split('\n');
17
+ const featureName = lines[0].replace('Feature: ', '').trim();
18
+ const steps = lines.slice(1).map(l => l.trim()).filter(l => l.length > 0);
19
+ const resolver = new Resolver(steppers);
20
+ const stepperActions = steppers.map(stepper => withAction(stepper));
21
+ const kirejiSteps = steps.map(step => {
22
+ const action = resolver.findSingleStepAction(step);
23
+ const { actionName, stepValuesMap } = action;
24
+ const args = {};
25
+ if (stepValuesMap) {
26
+ for (const key in stepValuesMap) {
27
+ args[key] = stepValuesMap[key].term;
28
+ }
29
+ }
30
+ const actionFunction = stepperActions.reduce((found, actions) => {
31
+ return found ?? actions[actionName];
32
+ }, undefined);
33
+ if (!actionFunction) {
34
+ throw new Error(`Action "${actionName}" not found in provided steppers.`);
35
+ }
36
+ return actionFunction(args);
37
+ });
38
+ return Promise.resolve({
39
+ [featureName]: kirejiSteps,
40
+ });
41
+ };
42
+ //# sourceMappingURL=converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/jsprolog/converter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAmC,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAO9E,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAuB,EAAU,EAAE;IACvD,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;QAClC,SAAS,IAAI,YAAY,WAAW,IAAI,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;YACxB,SAAS,IAAI,KAAK,IAAI,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,QAAoB,EAA2B,EAAE;IAClF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAsD,CAAC,CAAC;IAE3H,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QAC7C,MAAM,IAAI,GAA8B,EAAE,CAAC;QAC3C,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACtC,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAqC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClG,OAAO,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,mCAAmC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,OAAO,CAAC;QACrB,CAAC,WAAW,CAAC,EAAE,WAAW;KAC3B,CAAC,CAAC;AACL,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { AStepper } from '../lib/astepper.js';
2
+ import { TCurriedAction } from './withAction.js';
3
+ type TActionMap = {
4
+ [key: string]: TCurriedAction<string>;
5
+ };
6
+ export declare const collectActionsFromSteppers: (steppers: AStepper[]) => TActionMap;
7
+ export {};
8
+ //# sourceMappingURL=stepper-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper-utils.d.ts","sourceRoot":"","sources":["../../src/jsprolog/stepper-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAc,MAAM,iBAAiB,CAAC;AAE7D,KAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAE5D,eAAO,MAAM,0BAA0B,GAAI,UAAU,QAAQ,EAAE,KAAG,UAKjE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { withAction } from './withAction.js';
2
+ export const collectActionsFromSteppers = (steppers) => {
3
+ return steppers.reduce((acc, stepper) => {
4
+ const stepperActions = withAction(stepper);
5
+ return Object.assign(acc, stepperActions);
6
+ }, {});
7
+ };
8
+ //# sourceMappingURL=stepper-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper-utils.js","sourceRoot":"","sources":["../../src/jsprolog/stepper-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,QAAoB,EAAc,EAAE;IAC3E,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;QACpC,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAA0B,CAAC;QACpE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAgB,CAAC,CAAC;AACzB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const features: {
2
+ 'test feature': import("./withAction.js").TActionExecutor<string>[];
3
+ };
4
+ //# sourceMappingURL=test.jsprolog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.jsprolog.d.ts","sourceRoot":"","sources":["../../src/jsprolog/test.jsprolog.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,QAAQ;;CAIpB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { withAction } from './withAction.js';
2
+ import { AStepper } from '../lib/astepper.js';
3
+ import { OK } from '../lib/defs.js';
4
+ class TestStepper extends AStepper {
5
+ steps = {
6
+ set: {
7
+ gwta: 'set {what} to {value}',
8
+ action: async () => OK,
9
+ },
10
+ };
11
+ }
12
+ const stepper = new TestStepper();
13
+ const { set } = withAction(stepper);
14
+ export const features = {
15
+ 'test feature': [
16
+ set({ what: 'test', value: 'value' }),
17
+ ],
18
+ };
19
+ //# sourceMappingURL=test.jsprolog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.jsprolog.js","sourceRoot":"","sources":["../../src/jsprolog/test.jsprolog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,MAAM,WAAY,SAAQ,QAAQ;IAChC,KAAK,GAAG;QACN,GAAG,EAAE;YACH,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;SACvB;KACF,CAAC;CACH;AAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc,EAAE;QACd,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;KACtC;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const features: {
2
+ 'test feature': import("./withAction.js").TActionExecutor<string>[];
3
+ };
4
+ //# sourceMappingURL=test.kireji.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.kireji.d.ts","sourceRoot":"","sources":["../../src/jsprolog/test.kireji.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,QAAQ;;CAIpB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { withAction } from './withAction.js';
2
+ import { AStepper } from '../lib/astepper.js';
3
+ import { OK } from '../lib/defs.js';
4
+ class TestStepper extends AStepper {
5
+ steps = {
6
+ set: {
7
+ gwta: 'set {what} to {value}',
8
+ action: async () => OK,
9
+ },
10
+ };
11
+ }
12
+ const stepper = new TestStepper();
13
+ const { set } = withAction(stepper);
14
+ export const features = {
15
+ 'test feature': [
16
+ set({ what: 'test', value: 'value' }),
17
+ ],
18
+ };
19
+ //# sourceMappingURL=test.kireji.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.kireji.js","sourceRoot":"","sources":["../../src/jsprolog/test.kireji.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,MAAM,WAAY,SAAQ,QAAQ;IAChC,KAAK,GAAG;QACN,GAAG,EAAE;YACH,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;SACvB;KACF,CAAC;CACH;AAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc,EAAE;QACd,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;KACtC;CACF,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { AStepper, TStepperSteps } from '../lib/astepper.js';
2
+ type TStripOptionalPatterns<S extends string> = S extends `${infer Before}(${string})?${infer After}` ? TStripOptionalPatterns<`${Before}${After}`> : S;
3
+ type TPlaceholderEntries<S extends string> = TPlaceholderEntriesImpl<TStripOptionalPatterns<S>>;
4
+ type TPlaceholderEntriesImpl<S extends string> = S extends `${string}{${infer Placeholder}}${infer After}` ? [...TPlaceholderEntry<Placeholder>, ...TPlaceholderEntriesImpl<After>] : [];
5
+ type TPlaceholderEntry<P extends string> = P extends `${infer Name}:${infer Domain}` ? [[Name, Domain]] : [[P, undefined]];
6
+ type TPlaceholderValueType<Name extends string, Domain extends string | undefined> = Domain extends 'statement' ? string | TActionExecutor<string> : Name extends 'statement' ? string | TActionExecutor<string> : string;
7
+ type TPlaceholderDomain<Entries extends ReadonlyArray<[string, string | undefined]>, Name extends string> = Extract<Entries[number], [Name, string | undefined]> extends [Name, infer Domain] ? Domain extends string | undefined ? Domain : undefined : undefined;
8
+ type TArgsInputFromEntries<Entries extends ReadonlyArray<[string, string | undefined]>> = {
9
+ [K in Entries[number][0]]: TPlaceholderValueType<K, TPlaceholderDomain<Entries, K>>;
10
+ };
11
+ type TArgsResolvedFromEntries<Entries extends ReadonlyArray<[string, string | undefined]>> = {
12
+ [K in Entries[number][0]]: string;
13
+ };
14
+ type TActionArgsInput<S extends string> = TArgsInputFromEntries<TPlaceholderEntries<S>>;
15
+ type TActionArgsResolved<S extends string> = TArgsResolvedFromEntries<TPlaceholderEntries<S>>;
16
+ export type TActionExecutor<S extends string> = () => {
17
+ actionName: string;
18
+ args: TActionArgsResolved<S>;
19
+ gwta: string;
20
+ };
21
+ export type TCurriedAction<S extends string> = (args: TActionArgsInput<S>) => TActionExecutor<S>;
22
+ type TActionsFromStepper<S extends TStepperSteps> = {
23
+ [K in keyof S]: S[K] extends {
24
+ gwta: infer G;
25
+ } ? G extends string ? TCurriedAction<G> : never : never;
26
+ };
27
+ type TStepMap<T extends AStepper> = T extends {
28
+ typedSteps: infer U;
29
+ } ? U extends TStepperSteps ? U : T['steps'] : T['steps'];
30
+ export declare const withAction: <T extends AStepper>(stepper: T) => TActionsFromStepper<TStepMap<T>>;
31
+ export {};
32
+ //# sourceMappingURL=withAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAction.d.ts","sourceRoot":"","sources":["../../src/jsprolog/withAction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { namedInterpolation } from '../lib/namedVars.js';
2
+ const isStepWithGwta = (step) => {
3
+ return typeof step.gwta === 'string';
4
+ };
5
+ const interpolateGwta = (gwta, args) => {
6
+ let interpolated = gwta;
7
+ // First, remove optional regex patterns like '( empty)?' from the gwta
8
+ // These are used for matching but shouldn't appear in the final output
9
+ interpolated = interpolated.replace(/\([^)]*\)\?/g, '');
10
+ for (const key in args) {
11
+ const placeholder = `{${key}}`;
12
+ const placeholderWithDomain = new RegExp(`\\{${key}:[^}]+\\}`, 'g');
13
+ interpolated = interpolated.replace(placeholderWithDomain, args[key]);
14
+ interpolated = interpolated.replace(placeholder, args[key]);
15
+ }
16
+ return interpolated;
17
+ };
18
+ const resolveArgValue = (value) => {
19
+ if (value === null) {
20
+ return 'null';
21
+ }
22
+ if (typeof value === 'function') {
23
+ const executed = value();
24
+ return executed.gwta;
25
+ }
26
+ if (Array.isArray(value)) {
27
+ return value.map(resolveArgValue).join(' ');
28
+ }
29
+ if (typeof value === 'object') {
30
+ const entries = Object.entries(value).map(([key, nested]) => `${key}: ${resolveArgValue(nested)}`);
31
+ return `{ ${entries.join(', ')} }`;
32
+ }
33
+ return String(value);
34
+ };
35
+ export const withAction = (stepper) => {
36
+ const actions = {};
37
+ for (const actionName in stepper.steps) {
38
+ const step = stepper.steps[actionName];
39
+ if (isStepWithGwta(step)) {
40
+ // Strip optional patterns before extracting placeholders to match type-level behavior
41
+ const strippedGwta = step.gwta.replace(/\([^)]*\)\?/g, '');
42
+ const { stepValuesMap } = namedInterpolation(strippedGwta);
43
+ const argNames = stepValuesMap ? Object.keys(stepValuesMap) : [];
44
+ actions[actionName] = (args) => {
45
+ // Re-introducing runtime validation for missing arguments.
46
+ for (const name of argNames) {
47
+ if (args[name] === undefined) {
48
+ throw new Error(`Missing argument "${name}" for action "${actionName}"`);
49
+ }
50
+ }
51
+ const normalizedArgs = {};
52
+ for (const name of argNames) {
53
+ normalizedArgs[name] = resolveArgValue(args[name]);
54
+ }
55
+ return () => ({
56
+ actionName,
57
+ args: normalizedArgs,
58
+ gwta: interpolateGwta(step.gwta, normalizedArgs),
59
+ });
60
+ };
61
+ }
62
+ }
63
+ return actions;
64
+ };
65
+ //# sourceMappingURL=withAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAction.js","sourceRoot":"","sources":["../../src/jsprolog/withAction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { AStepper } from '../lib/astepper.js';
2
+ import { TActionExecutor } from './withAction.js';
3
+ type TkirejiFeature = {
4
+ [key: string]: (TActionExecutor<string> | string)[];
5
+ };
6
+ export declare const toBdd: (feature: TkirejiFeature) => string;
7
+ export declare const fromBdd: (bdd: string, steppers: AStepper[]) => Promise<TkirejiFeature>;
8
+ export {};
9
+ //# sourceMappingURL=converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/kireji/converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAA8B,MAAM,iBAAiB,CAAC;AAI9E,KAAK,cAAc,GAAG;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;CACrD,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,SAAS,cAAc,KAAG,MAmB/C,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,UAAU,QAAQ,EAAE,KAAG,OAAO,CAAC,cAAc,CA+BjF,CAAA"}
@@ -0,0 +1,48 @@
1
+ import { Resolver } from '../phases/Resolver.js';
2
+ import { withAction } from './withAction.js';
3
+ export const toBdd = (feature) => {
4
+ let bddString = '';
5
+ for (const featureName in feature) {
6
+ bddString += `Feature: ${featureName}\n`;
7
+ const steps = feature[featureName];
8
+ for (const step of steps) {
9
+ // Handle both function executors and plain prose strings
10
+ if (typeof step === 'string') {
11
+ bddString += ` ${step}\n`;
12
+ }
13
+ else {
14
+ const { gwta } = step();
15
+ bddString += ` ${gwta}\n`;
16
+ }
17
+ }
18
+ }
19
+ return bddString;
20
+ };
21
+ export const fromBdd = (bdd, steppers) => {
22
+ const lines = bdd.split('\n');
23
+ const featureName = lines[0].replace('Feature: ', '').trim();
24
+ const steps = lines.slice(1).map(l => l.trim()).filter(l => l.length > 0);
25
+ const resolver = new Resolver(steppers);
26
+ const stepperActions = steppers.map(stepper => withAction(stepper));
27
+ const kirejiSteps = steps.map(step => {
28
+ const action = resolver.findSingleStepAction(step);
29
+ const { actionName, stepValuesMap } = action;
30
+ const args = {};
31
+ if (stepValuesMap) {
32
+ for (const key in stepValuesMap) {
33
+ args[key] = stepValuesMap[key].term;
34
+ }
35
+ }
36
+ const actionFunction = stepperActions.reduce((found, actions) => {
37
+ return found ?? actions[actionName];
38
+ }, undefined);
39
+ if (!actionFunction) {
40
+ throw new Error(`Action "${actionName}" not found in provided steppers.`);
41
+ }
42
+ return actionFunction(args);
43
+ });
44
+ return Promise.resolve({
45
+ [featureName]: kirejiSteps,
46
+ });
47
+ };
48
+ //# sourceMappingURL=converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/kireji/converter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAmC,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ9E,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAuB,EAAU,EAAE;IACvD,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;QAClC,SAAS,IAAI,YAAY,WAAW,IAAI,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,yDAAyD;YACzD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,SAAS,IAAI,KAAK,IAAI,IAAI,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;gBACxB,SAAS,IAAI,KAAK,IAAI,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,QAAoB,EAA2B,EAAE;IAClF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAsD,CAAC,CAAC;IAE3H,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QAC7C,MAAM,IAAI,GAA8B,EAAE,CAAC;QAC3C,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACtC,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAqC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClG,OAAO,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,mCAAmC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,OAAO,CAAC;QACrB,CAAC,WAAW,CAAC,EAAE,WAAW;KAC3B,CAAC,CAAC;AACL,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export declare const features: {
2
+ 'test feature': import("./withAction.js").TActionExecutor<string>[];
3
+ };
4
+ //# sourceMappingURL=test.kireji.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.kireji.d.ts","sourceRoot":"","sources":["../../src/kireji/test.kireji.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,QAAQ;;CAIpB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { withAction } from './withAction.js';
2
+ import { AStepper } from '../lib/astepper.js';
3
+ import { OK } from '../lib/defs.js';
4
+ class TestStepper extends AStepper {
5
+ steps = {
6
+ set: {
7
+ gwta: 'set {what} to {value}',
8
+ action: async () => OK,
9
+ },
10
+ };
11
+ }
12
+ const stepper = new TestStepper();
13
+ const { set } = withAction(stepper);
14
+ export const features = {
15
+ 'test feature': [
16
+ set({ what: 'test', value: 'value' }),
17
+ ],
18
+ };
19
+ //# sourceMappingURL=test.kireji.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.kireji.js","sourceRoot":"","sources":["../../src/kireji/test.kireji.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,MAAM,WAAY,SAAQ,QAAQ;IAChC,KAAK,GAAG;QACN,GAAG,EAAE;YACH,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;SACvB;KACF,CAAC;CACH;AAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc,EAAE;QACd,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;KACtC;CACF,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { AStepper, TStepperSteps } from '../lib/astepper.js';
2
+ type TStripOptionalPatterns<S extends string> = S extends `${infer Before}(${string})?${infer After}` ? TStripOptionalPatterns<`${Before}${After}`> : S;
3
+ type TPlaceholderEntries<S extends string> = TPlaceholderEntriesImpl<TStripOptionalPatterns<S>>;
4
+ type TPlaceholderEntriesImpl<S extends string> = S extends `${string}{${infer Placeholder}}${infer After}` ? [...TPlaceholderEntry<Placeholder>, ...TPlaceholderEntriesImpl<After>] : [];
5
+ type TPlaceholderEntry<P extends string> = P extends `${infer Name}:${infer Domain}` ? [[Name, Domain]] : [[P, undefined]];
6
+ type TPlaceholderValueType<Name extends string, Domain extends string | undefined> = Domain extends 'statement' ? string | TActionExecutor<string> : Name extends 'statement' ? string | TActionExecutor<string> : string;
7
+ type TPlaceholderDomain<Entries extends ReadonlyArray<[string, string | undefined]>, Name extends string> = Extract<Entries[number], [Name, string | undefined]> extends [Name, infer Domain] ? Domain extends string | undefined ? Domain : undefined : undefined;
8
+ type TArgsInputFromEntries<Entries extends ReadonlyArray<[string, string | undefined]>> = {
9
+ [K in Entries[number][0]]: TPlaceholderValueType<K, TPlaceholderDomain<Entries, K>>;
10
+ };
11
+ type TArgsResolvedFromEntries<Entries extends ReadonlyArray<[string, string | undefined]>> = {
12
+ [K in Entries[number][0]]: string;
13
+ };
14
+ type TActionArgsInput<S extends string> = TArgsInputFromEntries<TPlaceholderEntries<S>>;
15
+ type TActionArgsResolved<S extends string> = TArgsResolvedFromEntries<TPlaceholderEntries<S>>;
16
+ export type TActionExecutor<S extends string> = () => {
17
+ actionName: string;
18
+ args: TActionArgsResolved<S>;
19
+ gwta: string;
20
+ };
21
+ export type TCurriedAction<S extends string> = (args: TActionArgsInput<S>) => TActionExecutor<S>;
22
+ export type TKirejiStep = string | TActionExecutor<string>;
23
+ export type TKirejiExport = {
24
+ [featureName: string]: TKirejiStep[];
25
+ };
26
+ type TActionsFromStepper<S extends TStepperSteps> = {
27
+ [K in keyof S]: S[K] extends {
28
+ gwta: infer G;
29
+ } ? G extends string ? TCurriedAction<G> : never : never;
30
+ };
31
+ type TStepMap<T extends AStepper> = T extends {
32
+ typedSteps: infer U;
33
+ } ? U extends TStepperSteps ? U : T['steps'] : T['steps'];
34
+ export declare const withAction: <T extends AStepper>(stepper: T) => TActionsFromStepper<TStepMap<T>>;
35
+ export {};
36
+ //# sourceMappingURL=withAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAction.d.ts","sourceRoot":"","sources":["../../src/kireji/withAction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { namedInterpolation } from '../lib/namedVars.js';
2
+ const isStepWithGwta = (step) => {
3
+ return typeof step.gwta === 'string';
4
+ };
5
+ const interpolateGwta = (gwta, args) => {
6
+ let interpolated = gwta;
7
+ // First, remove optional regex patterns like '( empty)?' from the gwta
8
+ // These are used for matching but shouldn't appear in the final output
9
+ interpolated = interpolated.replace(/\([^)]*\)\?/g, '');
10
+ for (const key in args) {
11
+ const placeholder = `{${key}}`;
12
+ const placeholderWithDomain = new RegExp(`\\{${key}:[^}]+\\}`, 'g');
13
+ interpolated = interpolated.replace(placeholderWithDomain, args[key]);
14
+ interpolated = interpolated.replace(placeholder, args[key]);
15
+ }
16
+ return interpolated;
17
+ };
18
+ const resolveArgValue = (value) => {
19
+ if (value === null) {
20
+ return 'null';
21
+ }
22
+ if (typeof value === 'function') {
23
+ const executed = value();
24
+ return executed.gwta;
25
+ }
26
+ if (Array.isArray(value)) {
27
+ return value.map(resolveArgValue).join(' ');
28
+ }
29
+ if (typeof value === 'object') {
30
+ const entries = Object.entries(value).map(([key, nested]) => `${key}: ${resolveArgValue(nested)}`);
31
+ return `{ ${entries.join(', ')} }`;
32
+ }
33
+ // Escape newlines in string values for BDD format
34
+ return String(value).replace(/\n/g, '\\n');
35
+ };
36
+ export const withAction = (stepper) => {
37
+ const actions = {};
38
+ for (const actionName in stepper.steps) {
39
+ const step = stepper.steps[actionName];
40
+ if (isStepWithGwta(step)) {
41
+ // Strip optional patterns before extracting placeholders to match type-level behavior
42
+ const strippedGwta = step.gwta.replace(/\([^)]*\)\?/g, '');
43
+ const { stepValuesMap } = namedInterpolation(strippedGwta);
44
+ const argNames = stepValuesMap ? Object.keys(stepValuesMap) : [];
45
+ actions[actionName] = (args) => {
46
+ // Re-introducing runtime validation for missing arguments.
47
+ for (const name of argNames) {
48
+ if (args[name] === undefined) {
49
+ throw new Error(`Missing argument "${name}" for action "${actionName}"`);
50
+ }
51
+ }
52
+ const normalizedArgs = {};
53
+ for (const name of argNames) {
54
+ normalizedArgs[name] = resolveArgValue(args[name]);
55
+ }
56
+ return () => ({
57
+ actionName,
58
+ args: normalizedArgs,
59
+ gwta: interpolateGwta(step.gwta, normalizedArgs),
60
+ });
61
+ };
62
+ }
63
+ }
64
+ return actions;
65
+ };
66
+ //# sourceMappingURL=withAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAction.js","sourceRoot":"","sources":["../../src/kireji/withAction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { TFeatureStep } from './defs.js';
2
+ /**
3
+ * Thrown when execution depth exceeds MAX_EXECUTE_SEQPATH.
4
+ * This is a fatal error that should immediately stop all execution
5
+ * and trigger the debugger (if enabled) or fail the feature.
6
+ */
7
+ export declare class ExecutionDepthError extends Error {
8
+ depth: number;
9
+ maxDepth: number;
10
+ featureStep: TFeatureStep;
11
+ constructor(depth: number, maxDepth: number, featureStep: TFeatureStep);
12
+ }
13
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAErC,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,YAAY;gBAFzB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,YAAY;CAKjC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Thrown when execution depth exceeds MAX_EXECUTE_SEQPATH.
3
+ * This is a fatal error that should immediately stop all execution
4
+ * and trigger the debugger (if enabled) or fail the feature.
5
+ */
6
+ export class ExecutionDepthError extends Error {
7
+ depth;
8
+ maxDepth;
9
+ featureStep;
10
+ constructor(depth, maxDepth, featureStep) {
11
+ super(`Execution depth limit exceeded (${depth} > ${maxDepth}). Possible infinite recursion in step: ${featureStep.in}`);
12
+ this.depth = depth;
13
+ this.maxDepth = maxDepth;
14
+ this.featureStep = featureStep;
15
+ this.name = 'ExecutionDepthError';
16
+ }
17
+ }
18
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAErC;IACA;IACA;IAHR,YACQ,KAAa,EACb,QAAgB,EAChB,WAAyB;QAEhC,KAAK,CAAC,mCAAmC,KAAK,MAAM,QAAQ,2CAA2C,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QAJlH,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAQ;QAChB,gBAAW,GAAX,WAAW,CAAc;QAGhC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACnC,CAAC;CACD"}
@@ -0,0 +1,73 @@
1
+ import { AStepper, IHasCycles, TStepperSteps } from '../lib/astepper.js';
2
+ import { TStepArgs, TFeatureStep, TWorld, IStepperCycles, TStepperStep, TFeatures } from '../lib/defs.js';
3
+ type TActivitiesFixedSteps = {
4
+ activity: TStepperStep;
5
+ waypoint: TStepperStep;
6
+ ensure: TStepperStep;
7
+ showWaypoints: TStepperStep;
8
+ };
9
+ type TActivitiesStepperSteps = TStepperSteps & TActivitiesFixedSteps;
10
+ /**
11
+ * Stepper that dynamically builds virtual steps from `waypoint` statements.
12
+ * implements this logic: P ∨ (¬P ∧ [A]P)
13
+ */
14
+ export declare class ActivitiesStepper extends AStepper implements IHasCycles {
15
+ private steppers;
16
+ private backgroundOutcomePatterns;
17
+ private featureOutcomePatterns;
18
+ private outcomeToFeaturePath;
19
+ private currentFeaturePath;
20
+ private lastFeaturePath;
21
+ private ensuredInstances;
22
+ private registeredOutcomeMetadata;
23
+ cycles: IStepperCycles;
24
+ cyclesWhen: {
25
+ startExecution: number;
26
+ startFeature: number;
27
+ };
28
+ private readonly baseSteps;
29
+ readonly typedSteps: {
30
+ readonly activity: {
31
+ readonly gwta: "Activity: {activity}";
32
+ readonly action: () => import("../lib/defs.js").TOKActionResult;
33
+ };
34
+ readonly waypoint: {
35
+ readonly gwta: "waypoint {outcome} with {proof:statement}";
36
+ readonly resolveFeatureLine: (line: string, path: string, stepper: AStepper, _backgrounds: TFeatures, allLines?: string[], lineIndex?: number) => boolean;
37
+ readonly action: ({ proof }: {
38
+ proof: TFeatureStep[];
39
+ }, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").TOKActionResult | import("../lib/defs.js").TNotOKActionResult>;
40
+ };
41
+ readonly ensure: {
42
+ readonly description: "Ensure a waypoint condition by always running the proof. If proof passes, waypoint is already satisfied. If proof fails, run the full activity to satisfy it.";
43
+ readonly gwta: "ensure {outcome:statement}";
44
+ readonly action: ({ outcome }: {
45
+ outcome: TFeatureStep[];
46
+ }, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").TOKActionResult | import("../lib/defs.js").TNotOKActionResult>;
47
+ };
48
+ readonly showWaypoints: {
49
+ readonly exact: "show waypoints";
50
+ readonly action: (_args: TStepArgs, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").TOKActionResult>;
51
+ };
52
+ };
53
+ steps: TActivitiesStepperSteps;
54
+ setWorld(world: TWorld, steppers: AStepper[]): Promise<void>;
55
+ /**
56
+ * Register a dynamic outcome step.
57
+ * This is called when parsing `waypoint` statements.
58
+ *
59
+ * @param outcome - The outcome pattern (e.g., "Is logged in as {user}")
60
+ * @param proofStatements - Array of statement strings from the DOMAIN_STATEMENT proof
61
+ * @param proofPath - The path of the feature containing the proof
62
+ * @param isBackground - Whether this outcome is defined in a background (persists across features)
63
+ * @param activityBlockSteps - Optional array of all steps in the containing activity block
64
+ */
65
+ registerOutcome(outcome: string, proofStatements: string[], proofPath: string, isBackground?: boolean, activityBlockSteps?: string[]): void;
66
+ /**
67
+ * Re-emit GRAPH_LINK messages for waypoint metadata.
68
+ * MonitorHandler subscribes after resolution, so we retransmit stored metadata.
69
+ */
70
+ sendGraphLinkMessages(): void;
71
+ }
72
+ export default ActivitiesStepper;
73
+ //# sourceMappingURL=activities-stepper.d.ts.map