@haibun/core 4.0.0-alpha.1 → 4.0.0-alpha.3

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 (297) hide show
  1. package/build/currentVersion.d.ts +1 -1
  2. package/build/currentVersion.js +1 -1
  3. package/build/index.d.ts +1 -1
  4. package/build/index.d.ts.map +1 -1
  5. package/build/index.js +1 -1
  6. package/build/index.js.map +1 -1
  7. package/build/kireji/converter.d.ts +2 -2
  8. package/build/kireji/converter.d.ts.map +1 -1
  9. package/build/kireji/converter.js +12 -9
  10. package/build/kireji/converter.js.map +1 -1
  11. package/build/kireji/withAction.d.ts +16 -4
  12. package/build/kireji/withAction.d.ts.map +1 -1
  13. package/build/kireji/withAction.js +40 -11
  14. package/build/kireji/withAction.js.map +1 -1
  15. package/build/lib/EventLogger.d.ts +5 -5
  16. package/build/lib/EventLogger.d.ts.map +1 -1
  17. package/build/lib/EventLogger.js +39 -37
  18. package/build/lib/EventLogger.js.map +1 -1
  19. package/build/lib/PhaseRunner.d.ts +3 -3
  20. package/build/lib/PhaseRunner.d.ts.map +1 -1
  21. package/build/lib/PhaseRunner.js +7 -5
  22. package/build/lib/PhaseRunner.js.map +1 -1
  23. package/build/lib/astepper.d.ts +90 -13
  24. package/build/lib/astepper.d.ts.map +1 -1
  25. package/build/lib/astepper.js +35 -6
  26. package/build/lib/astepper.js.map +1 -1
  27. package/build/lib/base-prompt-manager.d.ts +1 -1
  28. package/build/lib/base-prompt-manager.d.ts.map +1 -1
  29. package/build/lib/base-prompt-manager.js.map +1 -1
  30. package/build/lib/capture-locator.d.ts +1 -1
  31. package/build/lib/capture-locator.d.ts.map +1 -1
  32. package/build/lib/capture-locator.js +5 -5
  33. package/build/lib/capture-locator.js.map +1 -1
  34. package/build/lib/core/flow-runner.d.ts +8 -7
  35. package/build/lib/core/flow-runner.d.ts.map +1 -1
  36. package/build/lib/core/flow-runner.js +42 -71
  37. package/build/lib/core/flow-runner.js.map +1 -1
  38. package/build/lib/core-domains.d.ts +2 -2
  39. package/build/lib/core-domains.d.ts.map +1 -1
  40. package/build/lib/core-domains.js +17 -18
  41. package/build/lib/core-domains.js.map +1 -1
  42. package/build/lib/defs.d.ts +2 -13
  43. package/build/lib/defs.d.ts.map +1 -1
  44. package/build/lib/defs.js.map +1 -1
  45. package/build/lib/document-content.d.ts +18 -0
  46. package/build/lib/document-content.d.ts.map +1 -0
  47. package/build/lib/document-content.js +158 -0
  48. package/build/lib/document-content.js.map +1 -0
  49. package/build/lib/domains.d.ts +31 -0
  50. package/build/lib/domains.d.ts.map +1 -0
  51. package/build/lib/domains.js +105 -0
  52. package/build/lib/domains.js.map +1 -0
  53. package/build/lib/execution.d.ts +304 -0
  54. package/build/lib/execution.d.ts.map +1 -0
  55. package/build/lib/execution.js +23 -0
  56. package/build/lib/execution.js.map +1 -0
  57. package/build/lib/feature-variables.d.ts +22 -49
  58. package/build/lib/feature-variables.d.ts.map +1 -1
  59. package/build/lib/feature-variables.js +143 -210
  60. package/build/lib/feature-variables.js.map +1 -1
  61. package/build/lib/features.d.ts +2 -2
  62. package/build/lib/features.d.ts.map +1 -1
  63. package/build/lib/features.js +13 -17
  64. package/build/lib/features.js.map +1 -1
  65. package/build/lib/fixme.d.ts.map +1 -1
  66. package/build/lib/host-id.d.ts +44 -0
  67. package/build/lib/host-id.d.ts.map +1 -0
  68. package/build/lib/host-id.js +51 -0
  69. package/build/lib/host-id.js.map +1 -0
  70. package/build/lib/http-observations.d.ts +15 -2
  71. package/build/lib/http-observations.d.ts.map +1 -1
  72. package/build/lib/http-observations.js +40 -23
  73. package/build/lib/http-observations.js.map +1 -1
  74. package/build/lib/hypermedia.d.ts +62 -0
  75. package/build/lib/hypermedia.d.ts.map +1 -0
  76. package/build/lib/hypermedia.js +228 -0
  77. package/build/lib/hypermedia.js.map +1 -0
  78. package/build/lib/namedVars.d.ts +2 -2
  79. package/build/lib/namedVars.d.ts.map +1 -1
  80. package/build/lib/namedVars.js +25 -30
  81. package/build/lib/namedVars.js.map +1 -1
  82. package/build/lib/node-http-events.d.ts +3 -3
  83. package/build/lib/node-http-events.d.ts.map +1 -1
  84. package/build/lib/node-http-events.js +26 -26
  85. package/build/lib/node-http-events.js.map +1 -1
  86. package/build/lib/populateActionArgs.d.ts +4 -4
  87. package/build/lib/populateActionArgs.d.ts.map +1 -1
  88. package/build/lib/populateActionArgs.js +4 -6
  89. package/build/lib/populateActionArgs.js.map +1 -1
  90. package/build/lib/prompter.d.ts.map +1 -1
  91. package/build/lib/prompter.js +10 -7
  92. package/build/lib/prompter.js.map +1 -1
  93. package/build/lib/quad-store.d.ts +34 -10
  94. package/build/lib/quad-store.d.ts.map +1 -1
  95. package/build/lib/quad-store.js +169 -21
  96. package/build/lib/quad-store.js.map +1 -1
  97. package/build/lib/quad-types.d.ts +80 -9
  98. package/build/lib/quad-types.d.ts.map +1 -1
  99. package/build/lib/quad-types.js +46 -2
  100. package/build/lib/quad-types.js.map +1 -1
  101. package/build/lib/readline-prompter.d.ts +1 -1
  102. package/build/lib/readline-prompter.js +4 -4
  103. package/build/lib/remote-stepper-proxy.d.ts +56 -0
  104. package/build/lib/remote-stepper-proxy.d.ts.map +1 -0
  105. package/build/lib/remote-stepper-proxy.js +123 -0
  106. package/build/lib/remote-stepper-proxy.js.map +1 -0
  107. package/build/lib/resolver-features.d.ts +1 -1
  108. package/build/lib/resolver-features.d.ts.map +1 -1
  109. package/build/lib/resolver-features.js +2 -2
  110. package/build/lib/resolver-features.js.map +1 -1
  111. package/build/lib/resources.d.ts +461 -0
  112. package/build/lib/resources.d.ts.map +1 -0
  113. package/build/lib/resources.js +249 -0
  114. package/build/lib/resources.js.map +1 -0
  115. package/build/lib/rpc-client.d.ts +68 -0
  116. package/build/lib/rpc-client.d.ts.map +1 -0
  117. package/build/lib/rpc-client.js +186 -0
  118. package/build/lib/rpc-client.js.map +1 -0
  119. package/build/lib/sse-subscriber.d.ts +57 -0
  120. package/build/lib/sse-subscriber.d.ts.map +1 -0
  121. package/build/lib/sse-subscriber.js +110 -0
  122. package/build/lib/sse-subscriber.js.map +1 -0
  123. package/build/lib/step-dispatch.d.ts +92 -28
  124. package/build/lib/step-dispatch.d.ts.map +1 -1
  125. package/build/lib/step-dispatch.js +331 -75
  126. package/build/lib/step-dispatch.js.map +1 -1
  127. package/build/lib/step-validation.d.ts +3 -3
  128. package/build/lib/step-validation.d.ts.map +1 -1
  129. package/build/lib/step-validation.js +2 -2
  130. package/build/lib/step-validation.js.map +1 -1
  131. package/build/lib/stepper-cycles.d.ts +5 -0
  132. package/build/lib/stepper-cycles.d.ts.map +1 -0
  133. package/build/lib/stepper-cycles.js +31 -0
  134. package/build/lib/stepper-cycles.js.map +1 -0
  135. package/build/lib/stepper-registry.d.ts +6 -3
  136. package/build/lib/stepper-registry.d.ts.map +1 -1
  137. package/build/lib/stepper-registry.js +9 -8
  138. package/build/lib/stepper-registry.js.map +1 -1
  139. package/build/lib/subprocess-runner.d.ts +35 -0
  140. package/build/lib/subprocess-runner.d.ts.map +1 -0
  141. package/build/lib/subprocess-runner.js +60 -0
  142. package/build/lib/subprocess-runner.js.map +1 -0
  143. package/build/lib/subprocess-transport.d.ts +37 -0
  144. package/build/lib/subprocess-transport.d.ts.map +1 -0
  145. package/build/lib/subprocess-transport.js +113 -0
  146. package/build/lib/subprocess-transport.js.map +1 -0
  147. package/build/lib/test/EventCollectorStepper.d.ts +3 -3
  148. package/build/lib/test/EventCollectorStepper.d.ts.map +1 -1
  149. package/build/lib/test/EventCollectorStepper.js +3 -3
  150. package/build/lib/test/EventCollectorStepper.js.map +1 -1
  151. package/build/lib/test/SetTimeStepper.d.ts +3 -3
  152. package/build/lib/test/SetTimeStepper.d.ts.map +1 -1
  153. package/build/lib/test/SetTimeStepper.js +7 -7
  154. package/build/lib/test/SetTimeStepper.js.map +1 -1
  155. package/build/lib/test/TestSteps.d.ts +7 -7
  156. package/build/lib/test/TestSteps.d.ts.map +1 -1
  157. package/build/lib/test/TestSteps.js +7 -7
  158. package/build/lib/test/TestSteps.js.map +1 -1
  159. package/build/lib/test/TestStepsWithOptions.d.ts +6 -6
  160. package/build/lib/test/TestStepsWithOptions.js +7 -7
  161. package/build/lib/test/lib.d.ts +3 -3
  162. package/build/lib/test/lib.d.ts.map +1 -1
  163. package/build/lib/test/lib.js +27 -21
  164. package/build/lib/test/lib.js.map +1 -1
  165. package/build/lib/test/resolvedTestFeatures.d.ts +6 -6
  166. package/build/lib/test/resolvedTestFeatures.d.ts.map +1 -1
  167. package/build/lib/test/resolvedTestFeatures.js +5 -5
  168. package/build/lib/test/subprocess-fixture.d.ts +8 -0
  169. package/build/lib/test/subprocess-fixture.d.ts.map +1 -0
  170. package/build/lib/test/subprocess-fixture.js +27 -0
  171. package/build/lib/test/subprocess-fixture.js.map +1 -0
  172. package/build/lib/ttag.d.ts +7 -1
  173. package/build/lib/ttag.d.ts.map +1 -1
  174. package/build/lib/ttag.js +5 -4
  175. package/build/lib/ttag.js.map +1 -1
  176. package/build/lib/util/dot-path.d.ts +14 -0
  177. package/build/lib/util/dot-path.d.ts.map +1 -0
  178. package/build/lib/util/dot-path.js +51 -0
  179. package/build/lib/util/dot-path.js.map +1 -0
  180. package/build/lib/util/index.d.ts +10 -24
  181. package/build/lib/util/index.d.ts.map +1 -1
  182. package/build/lib/util/index.js +43 -93
  183. package/build/lib/util/index.js.map +1 -1
  184. package/build/lib/util/node/actualURI.d.ts +4 -0
  185. package/build/lib/util/node/actualURI.d.ts.map +1 -0
  186. package/build/lib/util/node/actualURI.js +10 -0
  187. package/build/lib/util/node/actualURI.js.map +1 -0
  188. package/build/lib/util/node/module-loader.d.ts +14 -0
  189. package/build/lib/util/node/module-loader.d.ts.map +1 -0
  190. package/build/lib/util/node/module-loader.js +51 -0
  191. package/build/lib/util/node/module-loader.js.map +1 -0
  192. package/build/lib/util/node/workspace-lib.d.ts +15 -0
  193. package/build/lib/util/node/workspace-lib.d.ts.map +1 -0
  194. package/build/lib/util/node/workspace-lib.js +119 -0
  195. package/build/lib/util/node/workspace-lib.js.map +1 -0
  196. package/build/lib/util/secret-utils.d.ts.map +1 -1
  197. package/build/lib/util/secret-utils.js +2 -2
  198. package/build/lib/util/secret-utils.js.map +1 -1
  199. package/build/lib/vertex-crud.d.ts +22 -0
  200. package/build/lib/vertex-crud.d.ts.map +1 -0
  201. package/build/lib/vertex-crud.js +73 -0
  202. package/build/lib/vertex-crud.js.map +1 -0
  203. package/build/lib/workspace-discovery.d.ts +1 -1
  204. package/build/lib/workspace-discovery.d.ts.map +1 -1
  205. package/build/lib/workspace-discovery.js +10 -10
  206. package/build/lib/workspace-discovery.js.map +1 -1
  207. package/build/lib/zcap-like-authority.d.ts +38 -0
  208. package/build/lib/zcap-like-authority.d.ts.map +1 -0
  209. package/build/lib/zcap-like-authority.js +56 -0
  210. package/build/lib/zcap-like-authority.js.map +1 -0
  211. package/build/monitor/index.d.ts +1 -1
  212. package/build/monitor/index.d.ts.map +1 -1
  213. package/build/monitor/index.js +1 -1
  214. package/build/monitor/index.js.map +1 -1
  215. package/build/phases/Executor.d.ts +31 -7
  216. package/build/phases/Executor.d.ts.map +1 -1
  217. package/build/phases/Executor.js +202 -217
  218. package/build/phases/Executor.js.map +1 -1
  219. package/build/phases/Resolver.d.ts +2 -2
  220. package/build/phases/Resolver.d.ts.map +1 -1
  221. package/build/phases/Resolver.js +35 -30
  222. package/build/phases/Resolver.js.map +1 -1
  223. package/build/phases/collector.d.ts +3 -3
  224. package/build/phases/collector.d.ts.map +1 -1
  225. package/build/phases/collector.js +19 -17
  226. package/build/phases/collector.js.map +1 -1
  227. package/build/run-policy/run-policy-schema.d.ts +3 -5
  228. package/build/run-policy/run-policy-schema.d.ts.map +1 -1
  229. package/build/run-policy/run-policy-schema.js +41 -37
  230. package/build/run-policy/run-policy-schema.js.map +1 -1
  231. package/build/run-policy/run-policy-types.d.ts +1 -1
  232. package/build/run-policy/run-policy-types.d.ts.map +1 -1
  233. package/build/run-policy/run-policy-types.js +19 -16
  234. package/build/run-policy/run-policy-types.js.map +1 -1
  235. package/build/runner.d.ts +4 -4
  236. package/build/runner.d.ts.map +1 -1
  237. package/build/runner.js +15 -13
  238. package/build/runner.js.map +1 -1
  239. package/build/schema/protocol.d.ts +155 -63
  240. package/build/schema/protocol.d.ts.map +1 -1
  241. package/build/schema/protocol.js +177 -148
  242. package/build/schema/protocol.js.map +1 -1
  243. package/build/steps/activities-stepper.d.ts +14 -13
  244. package/build/steps/activities-stepper.d.ts.map +1 -1
  245. package/build/steps/activities-stepper.js +116 -78
  246. package/build/steps/activities-stepper.js.map +1 -1
  247. package/build/steps/conformance.d.ts +5 -5
  248. package/build/steps/conformance.js +4 -4
  249. package/build/steps/console-monitor-stepper.d.ts +2 -2
  250. package/build/steps/console-monitor-stepper.d.ts.map +1 -1
  251. package/build/steps/console-monitor-stepper.js +22 -22
  252. package/build/steps/console-monitor-stepper.js.map +1 -1
  253. package/build/steps/debugger-stepper.d.ts +11 -11
  254. package/build/steps/debugger-stepper.d.ts.map +1 -1
  255. package/build/steps/debugger-stepper.js +65 -64
  256. package/build/steps/debugger-stepper.js.map +1 -1
  257. package/build/steps/finalizer-stepper.d.ts +3 -4
  258. package/build/steps/finalizer-stepper.d.ts.map +1 -1
  259. package/build/steps/finalizer-stepper.js +16 -19
  260. package/build/steps/finalizer-stepper.js.map +1 -1
  261. package/build/steps/haibun.d.ts +27 -20
  262. package/build/steps/haibun.d.ts.map +1 -1
  263. package/build/steps/haibun.js +76 -67
  264. package/build/steps/haibun.js.map +1 -1
  265. package/build/steps/lib/tts.d.ts +1 -1
  266. package/build/steps/lib/tts.d.ts.map +1 -1
  267. package/build/steps/lib/tts.js +28 -28
  268. package/build/steps/lib/tts.js.map +1 -1
  269. package/build/steps/logic-stepper.d.ts +5 -5
  270. package/build/steps/logic-stepper.d.ts.map +1 -1
  271. package/build/steps/logic-stepper.js +76 -76
  272. package/build/steps/logic-stepper.js.map +1 -1
  273. package/build/steps/narrator.d.ts +9 -9
  274. package/build/steps/narrator.d.ts.map +1 -1
  275. package/build/steps/narrator.js +32 -28
  276. package/build/steps/narrator.js.map +1 -1
  277. package/build/steps/resources-stepper.d.ts +47 -0
  278. package/build/steps/resources-stepper.d.ts.map +1 -0
  279. package/build/steps/resources-stepper.js +100 -0
  280. package/build/steps/resources-stepper.js.map +1 -0
  281. package/build/steps/variables-stepper.d.ts +82 -54
  282. package/build/steps/variables-stepper.d.ts.map +1 -1
  283. package/build/steps/variables-stepper.js +264 -216
  284. package/build/steps/variables-stepper.js.map +1 -1
  285. package/build/steps/zcap-like-stepper.d.ts +50 -0
  286. package/build/steps/zcap-like-stepper.d.ts.map +1 -0
  287. package/build/steps/zcap-like-stepper.js +113 -0
  288. package/build/steps/zcap-like-stepper.js.map +1 -0
  289. package/package.json +1 -1
  290. package/build/lib/consts.d.ts +0 -5
  291. package/build/lib/consts.d.ts.map +0 -1
  292. package/build/lib/consts.js +0 -5
  293. package/build/lib/consts.js.map +0 -1
  294. package/build/lib/step-helpers.d.ts +0 -10
  295. package/build/lib/step-helpers.d.ts.map +0 -1
  296. package/build/lib/step-helpers.js +0 -16
  297. package/build/lib/step-helpers.js.map +0 -1
@@ -1,6 +1,7 @@
1
- import { matchGwtaToAction, getMatch } from '../lib/namedVars.js';
2
- import { getActionable, dePolite, constructorName } from '../lib/util/index.js';
3
- import { expandLine } from '../lib/features.js';
1
+ import { FEATURE_START, SCENARIO_START } from "../schema/protocol.js";
2
+ import { matchGwtaToAction, getMatch } from "../lib/namedVars.js";
3
+ import { getActionable, dePolite, constructorName, actionNotOK } from "../lib/util/index.js";
4
+ import { expandLine } from "../lib/features.js";
4
5
  export class Resolver {
5
6
  steppers;
6
7
  backgrounds;
@@ -10,7 +11,7 @@ export class Resolver {
10
11
  this.backgrounds = backgrounds;
11
12
  // Process backgrounds to allow steppers to register metadata (e.g., waypoint statements)
12
13
  for (const background of backgrounds) {
13
- const lines = background.content.split('\n');
14
+ const lines = background.content.split("\n");
14
15
  const actualSourcePath = background.base && background.path ? background.base + background.path : undefined;
15
16
  for (let i = 0; i < lines.length; i++) {
16
17
  const actionable = getActionable(lines[i]);
@@ -26,7 +27,7 @@ export class Resolver {
26
27
  this.backgroundWarnings.push({
27
28
  path: background.path,
28
29
  line: lines[i],
29
- error: e.message
30
+ error: e.message,
30
31
  });
31
32
  }
32
33
  }
@@ -64,7 +65,7 @@ export class Resolver {
64
65
  */
65
66
  startFeatureResolution(path) {
66
67
  for (const stepper of this.steppers) {
67
- if (typeof stepper.startFeatureResolution === 'function') {
68
+ if (typeof stepper.startFeatureResolution === "function") {
68
69
  stepper.startFeatureResolution(path);
69
70
  }
70
71
  }
@@ -75,7 +76,7 @@ export class Resolver {
75
76
  const firstError = errors[0];
76
77
  throw Error(`findFeatureStep for "${firstError.featureLine.line}": ${firstError.error.message} in ${feature.path}\nUse --show-steppers for more details`);
77
78
  }
78
- return steps.filter(s => s.action.stepperName !== 'Directive');
79
+ return steps.filter((s) => s.action.stepperName !== "Directive");
79
80
  }
80
81
  findFeatureStepsTolerant(feature) {
81
82
  return Promise.resolve(this.findFeatureStepsTolerantSync(feature));
@@ -83,13 +84,13 @@ export class Resolver {
83
84
  findFeatureStepsTolerantSync(feature) {
84
85
  const steps = [];
85
86
  const errors = [];
86
- const allLines = feature.expanded.map(fl => fl.line);
87
+ const allLines = feature.expanded.map((fl) => fl.line);
87
88
  let seq = 0;
88
89
  let inCodeBlock = false;
89
90
  for (let i = 0; i < feature.expanded.length; i++) {
90
91
  const featureLine = feature.expanded[i];
91
92
  const line = featureLine.line.trim();
92
- if (line.startsWith('```')) {
93
+ if (line.startsWith("```")) {
93
94
  inCodeBlock = !inCodeBlock;
94
95
  continue;
95
96
  }
@@ -97,9 +98,7 @@ export class Resolver {
97
98
  continue;
98
99
  }
99
100
  const actionable = getActionable(featureLine.line);
100
- const actualSourcePath = featureLine.feature?.base && featureLine.feature?.path
101
- ? featureLine.feature.base + featureLine.feature.path
102
- : undefined;
101
+ const actualSourcePath = featureLine.feature?.base && featureLine.feature?.path ? featureLine.feature.base + featureLine.feature.path : undefined;
103
102
  if (this.callResolveFeatureLine(actionable, feature.path, allLines, i, actualSourcePath)) {
104
103
  steps.push({
105
104
  source: {
@@ -109,10 +108,10 @@ export class Resolver {
109
108
  in: featureLine.line,
110
109
  seqPath: [seq],
111
110
  action: {
112
- stepperName: 'Directive',
113
- actionName: 'directive',
114
- step: { exact: actionable, action: async () => ({ ok: true, message: 'Directive' }) }
115
- }
111
+ stepperName: "Directive",
112
+ actionName: "directive",
113
+ step: { exact: actionable, action: async () => ({ ok: true }) },
114
+ },
116
115
  });
117
116
  continue;
118
117
  }
@@ -122,8 +121,11 @@ export class Resolver {
122
121
  seq++;
123
122
  try {
124
123
  const stepAction = this.findSingleStepAction(actionable);
124
+ if (stepAction.actionName === FEATURE_START || stepAction.actionName === SCENARIO_START) {
125
+ seq = 0;
126
+ }
125
127
  if (stepAction.stepValuesMap) {
126
- const statements = Object.values(stepAction.stepValuesMap).filter((v) => v.domain === 'statement' && v.term);
128
+ const statements = Object.values(stepAction.stepValuesMap).filter((v) => v.domain === "statement" && v.term);
127
129
  for (const ph of statements) {
128
130
  const rawVal = ph.term;
129
131
  try {
@@ -147,19 +149,22 @@ export class Resolver {
147
149
  findSingleStepAction(line) {
148
150
  let stepActions = this.findActionableSteps(line);
149
151
  if (stepActions.length > 1) {
150
- const unique = stepActions.filter(a => a.step.unique);
152
+ const unique = stepActions.filter((a) => a.step.unique);
151
153
  if (unique.length === 1) {
152
154
  return unique[0];
153
155
  }
154
156
  // Filter out fallback steps if there are non-fallback alternatives
155
- const nonFallback = stepActions.filter(a => !a.step.fallback);
157
+ const nonFallback = stepActions.filter((a) => !a.step.fallback);
156
158
  if (nonFallback.length > 0) {
157
159
  stepActions = nonFallback;
158
160
  }
159
161
  // If still multiple matches, use precludes
160
162
  if (stepActions.length > 1) {
161
- const precludes = stepActions.filter(a => a.step.precludes).map(a => a.step.precludes).reduce((acc, cur) => [...acc, ...cur], []);
162
- stepActions = stepActions.filter(a => !precludes.includes(`${a.stepperName}.${a.actionName}`));
163
+ const precludes = stepActions
164
+ .filter((a) => a.step.precludes)
165
+ .map((a) => a.step.precludes)
166
+ .reduce((acc, cur) => [...acc, ...cur], []);
167
+ stepActions = stepActions.filter((a) => !precludes.includes(`${a.stepperName}.${a.actionName}`));
163
168
  }
164
169
  if (stepActions.length !== 1) {
165
170
  throw Error(`not one step found for "${line}": ${JSON.stringify(stepActions.map((a) => a.actionName))}`);
@@ -174,7 +179,7 @@ export class Resolver {
174
179
  // For virtual steps (like waypoints), use the step's source location if available
175
180
  const step = action.step;
176
181
  const lineNumber = step?.source?.lineNumber ?? featureLine.lineNumber;
177
- const path = step?.source?.path ?? (featureLine.feature.base + featureLine.feature.path);
182
+ const path = step?.source?.path ?? featureLine.feature.base + featureLine.feature.path;
178
183
  return {
179
184
  source: {
180
185
  path,
@@ -208,7 +213,7 @@ export class Resolver {
208
213
  // Exception: patterns starting with {variable} placeholders can match any input.
209
214
  const startsWithUpper = /^[A-Z]/.test(curt);
210
215
  const gwtaStartsUpper = /^[A-Z]/.test(step.gwta);
211
- const gwtaStartsWithPlaceholder = step.gwta.startsWith('{');
216
+ const gwtaStartsWithPlaceholder = step.gwta.startsWith("{");
212
217
  if (startsWithUpper && !gwtaStartsUpper && !gwtaStartsWithPlaceholder) {
213
218
  return undefined;
214
219
  }
@@ -240,13 +245,13 @@ export function getActionableStatement(steppers, statement, path, seqPath, lineN
240
245
  export function findFeatureStepsFromStatement(statement, steppers, world, base, seqStart, inc = 1) {
241
246
  const featureSteps = [];
242
247
  if (!world.runtime.backgrounds) {
243
- throw new Error('runtime.backgrounds is undefined; cannot expand inline Backgrounds');
248
+ throw new Error("runtime.backgrounds is undefined; cannot expand inline Backgrounds");
244
249
  }
245
250
  // For expandLine, we need to provide a feature context. If the statement is a Backgrounds: directive,
246
251
  // expandLine will ignore this feature and use the actual background files. If it's a regular statement,
247
252
  // expandLine will use this feature's path. So we pass the base (feature path) here.
248
253
  // Note: 'base' parameter is actually the full path, so we set feature.base to it and feature.path to empty
249
- const contextFeature = { path: '', base, name: 'statement-context', content: statement };
254
+ const contextFeature = { path: "", base, name: "statement-context", content: statement };
250
255
  const expanded = expandLine(statement, undefined, world.runtime.backgrounds, contextFeature);
251
256
  // Increment the last segment of seqStart by inc for each expanded step
252
257
  const prefix = seqStart.slice(0, -1);
@@ -268,12 +273,12 @@ export function findFeatureStepsFromStatement(statement, steppers, world, base,
268
273
  in: x.line,
269
274
  seqPath,
270
275
  action: {
271
- actionName: 'error',
272
- stepperName: 'Resolver',
276
+ actionName: "error",
277
+ stepperName: "Resolver",
273
278
  step: {
274
- action: async () => ({ ok: false, message: e.message })
275
- }
276
- }
279
+ action: async () => actionNotOK(e.message),
280
+ },
281
+ },
277
282
  });
278
283
  }
279
284
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Resolver.js","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Resolver.js","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { TBase, TFeature } from '../lib/defs.js';
2
- import { TFileSystem } from '../lib/util/workspace-lib.js';
3
- import { type TRunPolicyConfig, type TDirFilter } from '../run-policy/run-policy-types.js';
1
+ import { TBase, TFeature } from "../lib/execution.js";
2
+ import { TFileSystem } from "../lib/util/node/workspace-lib.js";
3
+ import { type TRunPolicyConfig, type TDirFilter } from "../run-policy/run-policy-types.js";
4
4
  export type TFeaturesBackgrounds = {
5
5
  features: TFeature[];
6
6
  backgrounds: TFeature[];
@@ -1 +1 @@
1
- {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/phases/collector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAwB,MAAM,mCAAmC,CAAC;AAEjH,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,WAAW,EAAE,QAAQ,EAAE,CAAC;CACzB,CAAC;AAEF,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,gBAAgB,EAAE,EAAE,GAAE,WAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAyB/K;AA0CD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,WAqBjJ;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;;;;;;IAEzD"}
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/phases/collector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAwB,MAAM,mCAAmC,CAAC;AAEjH,MAAM,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,WAAW,EAAE,QAAQ,EAAE,CAAC;CACxB,CAAC;AAEF,wBAAsB,yBAAyB,CAC9C,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,YAAY,CAAC,EAAE,gBAAgB,EAC/B,EAAE,GAAE,WAAoB,GACtB,OAAO,CAAC,oBAAoB,CAAC,CAyB/B;AAiDD,wBAAgB,aAAa,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,GAAG,MAAM,EACxB,aAAa,EAAE,MAAM,EAAE,GAAG,SAAS,EACnC,GAAG,CAAC,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,UAAU,EAAE,WAyBzB;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;;;;;;IAEzD"}
@@ -1,15 +1,15 @@
1
- import nodeFS from 'fs';
2
- import path from 'path';
3
- import { withNameType } from '../lib/features.js';
4
- import { toBdd } from '../kireji/converter.js';
5
- import { featureMatchesFilter } from '../run-policy/run-policy-types.js';
1
+ import nodeFS from "fs";
2
+ import path from "path";
3
+ import { withNameType } from "../lib/features.js";
4
+ import { toBdd } from "../kireji/converter.js";
5
+ import { featureMatchesFilter } from "../run-policy/run-policy-types.js";
6
6
  export async function getFeaturesAndBackgrounds(bases, featureFilter, policyConfig, fs = nodeFS) {
7
7
  const ret = { features: [], backgrounds: [] };
8
8
  for (const abase of bases) {
9
9
  // Only filter features, not backgrounds - backgrounds should always be loaded
10
10
  const ff = { feature: featureFilter, background: [] };
11
11
  const rawFeaturesAndBackgrounds = { features: [], backgrounds: [] };
12
- for (const t of ['feature', 'background']) {
12
+ for (const t of ["feature", "background"]) {
13
13
  const p = `${t}s`;
14
14
  const checkPath = `${abase}/${p}`;
15
15
  if (fs.existsSync(checkPath)) {
@@ -39,10 +39,10 @@ async function recurse(base, dir, type, featureFilter = undefined, policyConfig,
39
39
  else if (shouldProcess(here, type, featureFilter, dir, policyConfig?.dirFilters)) {
40
40
  let contents;
41
41
  let kirejiLineMap;
42
- if (here.endsWith('.feature.ts')) {
42
+ if (here.endsWith(".feature.ts")) {
43
43
  const module = await import(path.resolve(here));
44
44
  let kirejiContent;
45
- if (type === 'background') {
45
+ if (type === "background") {
46
46
  // For backgrounds directory: prefer 'backgrounds' export, fallback to 'features'
47
47
  kirejiContent = module.backgrounds || module.features;
48
48
  if (!kirejiContent) {
@@ -61,7 +61,7 @@ async function recurse(base, dir, type, featureFilter = undefined, policyConfig,
61
61
  kirejiLineMap = bddResult.lineMap;
62
62
  }
63
63
  else {
64
- contents = fs.readFileSync(here, 'utf-8');
64
+ contents = fs.readFileSync(here, "utf-8");
65
65
  }
66
66
  all.push(withNameType(base, here, contents, kirejiLineMap));
67
67
  }
@@ -69,26 +69,28 @@ async function recurse(base, dir, type, featureFilter = undefined, policyConfig,
69
69
  return all;
70
70
  }
71
71
  export function shouldProcess(file, type, featureFilter, dir, dirFilters) {
72
- const iskireji = file.endsWith('.feature.ts');
72
+ const iskireji = file.endsWith(".feature.ts");
73
73
  // For kireji files, always process regardless of type
74
74
  // For .feature files, check if type matches or is undefined
75
75
  // Note: both 'feature' and 'background' types use .feature extension
76
- const isType = iskireji || !type || file.endsWith(`.${type}`) || (type === 'background' && file.endsWith('.feature'));
77
- const matchesFilter = (featureFilter === undefined || featureFilter.every(f => f === '')) || featureFilter.length < 1 ? true : !!featureFilter.find((f) => file.replace(/\/.*?\/([^.*?/])/, '$1').match(f));
76
+ const isType = iskireji || !type || file.endsWith(`.${type}`) || (type === "background" && file.endsWith(".feature"));
77
+ const matchesFilter = featureFilter === undefined || featureFilter.every((f) => f === "") || featureFilter.length < 1
78
+ ? true
79
+ : !!featureFilter.find((f) => file.replace(/\/.*?\/([^.*?/])/, "$1").match(f));
78
80
  if (!isType || !matchesFilter)
79
81
  return false;
80
82
  // When --run-policy is active, apply prefix-based access filtering (features only, not backgrounds)
81
- if (dirFilters && type === 'feature') {
83
+ if (dirFilters && type === "feature") {
82
84
  // Extract relative path from features root (e.g. "/features/smoke/r_health.feature" → "/smoke/r_health.feature")
83
- const featuresIdx = dir.indexOf('/features');
84
- const relativePath = featuresIdx >= 0 ? dir.substring(featuresIdx + '/features'.length) : dir;
85
- const filename = file.split('/').pop() || file;
85
+ const featuresIdx = dir.indexOf("/features");
86
+ const relativePath = featuresIdx >= 0 ? dir.substring(featuresIdx + "/features".length) : dir;
87
+ const filename = file.split("/").pop() || file;
86
88
  const fullRelative = `${relativePath}/${filename}`;
87
89
  return featureMatchesFilter(fullRelative, dirFilters);
88
90
  }
89
91
  return true;
90
92
  }
91
93
  export function debase(abase, features) {
92
- return features.map((f) => ({ ...f, path: f.path.replace(abase, '') }));
94
+ return features.map((f) => ({ ...f, path: f.path.replace(abase, "") }));
93
95
  }
94
96
  //# sourceMappingURL=collector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/phases/collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/phases/collector.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { z } from 'zod';
2
- import { type TRunPolicyConfig } from './run-policy-types.js';
1
+ import { z } from "zod";
2
+ import { type TRunPolicyConfig } from "./run-policy-types.js";
3
3
  /**
4
4
  * Validates the policy file structure itself.
5
5
  * The structure mirrors TRunPolicyConfig (place + dirFilters array).
@@ -31,9 +31,7 @@ export declare function loadRunPolicy(schemaPath: string): TRunPolicy;
31
31
  * Validate a runtime config against a loaded policy.
32
32
  * Builds a strict Zod schema dynamically from the policy definition.
33
33
  */
34
- export declare function buildConfigValidator(policy: TRunPolicy): z.ZodObject<{
35
- [x: string]: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
36
- }, z.core.$loose>;
34
+ export declare function buildConfigValidator(policy: TRunPolicy): z.ZodObject<Record<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.core.$loose>;
37
35
  /**
38
36
  * Validate a config against a loaded policy, returning array of error strings.
39
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"run-policy-schema.d.ts","sourceRoot":"","sources":["../../src/run-policy/run-policy-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAY7E;;;GAGG;AACH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;iBAWN,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAQ5D;AAsID;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU;;kBA6EtD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAMlH;AAED,sDAAsD;AACtD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAQjG"}
1
+ {"version":3,"file":"run-policy-schema.d.ts","sourceRoot":"","sources":["../../src/run-policy/run-policy-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAY7E;;;GAGG;AACH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;iBAWpB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAQ5D;AA4ID;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,uHA8FtD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAMlH;AAED,sDAAsD;AACtD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAQjG"}
@@ -1,6 +1,6 @@
1
- import { z } from 'zod';
2
- import { readFileSync } from 'fs';
3
- import { ACCESS_LEVELS } from './run-policy-types.js';
1
+ import { z } from "zod";
2
+ import { readFileSync } from "fs";
3
+ import { ACCESS_LEVELS } from "./run-policy-types.js";
4
4
  // ============================================================================
5
5
  // Policy File Schema — Hierarchical JSON Schema
6
6
  // ============================================================================
@@ -13,23 +13,23 @@ const DenyRuleSchema = z.object({
13
13
  * Validates the policy file structure itself.
14
14
  * The structure mirrors TRunPolicyConfig (place + dirFilters array).
15
15
  */
16
- const PolicyFileSchema = z.object({
16
+ const PolicyFileSchema = z.looseObject({
17
17
  $schema: z.string().optional(),
18
- type: z.literal('object').default('object'),
19
- properties: z.object({}).passthrough().optional(),
20
- definitions: z.object({}).passthrough().optional(),
21
- $defs: z.object({}).passthrough().optional(),
18
+ type: z.literal("object").default("object"),
19
+ properties: z.looseObject({}).optional(),
20
+ definitions: z.looseObject({}).optional(),
21
+ $defs: z.looseObject({}).optional(),
22
22
  required: z.array(z.string()).optional(),
23
23
  allOf: z.array(z.unknown()).optional(),
24
24
  anyOf: z.array(z.unknown()).optional(),
25
25
  oneOf: z.array(z.unknown()).optional(),
26
26
  deny: z.array(DenyRuleSchema).default([]),
27
- }).passthrough();
27
+ });
28
28
  /** Load and parse a policy file */
29
29
  export function loadRunPolicy(schemaPath) {
30
30
  let raw;
31
31
  try {
32
- raw = readFileSync(schemaPath, 'utf-8');
32
+ raw = readFileSync(schemaPath, "utf-8");
33
33
  }
34
34
  catch (err) {
35
35
  throw new Error(`Cannot read run policy "${schemaPath}": ${err.message}`);
@@ -37,15 +37,15 @@ export function loadRunPolicy(schemaPath) {
37
37
  return PolicyFileSchema.parse(JSON.parse(raw));
38
38
  }
39
39
  function resolveRef(ref, rootDocs) {
40
- if (!ref.startsWith('#/'))
40
+ if (!ref.startsWith("#/"))
41
41
  return undefined;
42
- const parts = ref.substring(2).split('/');
42
+ const parts = ref.substring(2).split("/");
43
43
  for (const doc of rootDocs) {
44
44
  if (!doc)
45
45
  continue;
46
46
  let curr = doc;
47
47
  for (const part of parts) {
48
- if (typeof curr === 'object' && curr !== null && part in curr) {
48
+ if (typeof curr === "object" && curr !== null && part in curr) {
49
49
  curr = curr[part];
50
50
  }
51
51
  else {
@@ -63,7 +63,7 @@ function evaluateCondition(conditionObj, config, ctx, rootDocs, allowedKeys) {
63
63
  return true;
64
64
  let ok = true;
65
65
  // 1. resolve $ref
66
- if (typeof conditionObj.$ref === 'string') {
66
+ if (typeof conditionObj.$ref === "string") {
67
67
  const resolved = resolveRef(conditionObj.$ref, rootDocs);
68
68
  if (resolved) {
69
69
  ok = evaluateCondition(resolved, config, ctx, rootDocs, allowedKeys) && ok;
@@ -84,7 +84,7 @@ function evaluateCondition(conditionObj, config, ctx, rootDocs, allowedKeys) {
84
84
  const results = conditionObj.anyOf.map((rule) => evaluateBranch(rule, config, rootDocs));
85
85
  const passing = results.filter((result) => result.ok);
86
86
  if (passing.length === 0) {
87
- ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'must match at least one schema in anyOf', path: [] });
87
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: "must match at least one schema in anyOf", path: [] });
88
88
  ok = false;
89
89
  }
90
90
  else {
@@ -99,7 +99,7 @@ function evaluateCondition(conditionObj, config, ctx, rootDocs, allowedKeys) {
99
99
  const results = conditionObj.oneOf.map((rule) => evaluateBranch(rule, config, rootDocs));
100
100
  const passing = results.filter((result) => result.ok);
101
101
  if (passing.length !== 1) {
102
- ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'must match exactly one schema in oneOf', path: [] });
102
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: "must match exactly one schema in oneOf", path: [] });
103
103
  ok = false;
104
104
  }
105
105
  else {
@@ -109,7 +109,7 @@ function evaluateCondition(conditionObj, config, ctx, rootDocs, allowedKeys) {
109
109
  }
110
110
  }
111
111
  // 3. process if/then
112
- if (conditionObj.if && typeof conditionObj.if === 'object' && 'properties' in conditionObj.if) {
112
+ if (conditionObj.if && typeof conditionObj.if === "object" && "properties" in conditionObj.if) {
113
113
  let matchesIf = true;
114
114
  for (const [k, v] of Object.entries(conditionObj.if.properties)) {
115
115
  const castV = v;
@@ -131,7 +131,7 @@ function evaluateCondition(conditionObj, config, ctx, rootDocs, allowedKeys) {
131
131
  }
132
132
  }
133
133
  }
134
- if (conditionObj.properties && typeof conditionObj.properties === 'object') {
134
+ if (conditionObj.properties && typeof conditionObj.properties === "object") {
135
135
  for (const [k, v] of Object.entries(conditionObj.properties)) {
136
136
  allowedKeys.add(k);
137
137
  const castV = v;
@@ -140,9 +140,9 @@ function evaluateCondition(conditionObj, config, ctx, rootDocs, allowedKeys) {
140
140
  ctx.addIssue({ code: z.ZodIssueCode.custom, message: `must be equal to constant "${castV.const}"`, path: [k] });
141
141
  ok = false;
142
142
  }
143
- if (castV.type === 'number' && typeof config[k] !== 'number') {
143
+ if (castV.type === "number" && typeof config[k] !== "number") {
144
144
  // if it's string from env, parse it dynamically
145
- if (typeof config[k] === 'string' && !isNaN(Number(config[k]))) {
145
+ if (typeof config[k] === "string" && !isNaN(Number(config[k]))) {
146
146
  config[k] = Number(config[k]);
147
147
  }
148
148
  else {
@@ -161,7 +161,7 @@ function evaluateBranch(conditionObj, config, rootDocs) {
161
161
  const ctx = {
162
162
  addIssue: (issue) => {
163
163
  issues.push(issue);
164
- }
164
+ },
165
165
  };
166
166
  const ok = evaluateCondition(conditionObj, config, ctx, rootDocs, branchAllowed);
167
167
  return { ok: ok && issues.length === 0, allowedKeys: branchAllowed, issues };
@@ -171,12 +171,16 @@ function evaluateBranch(conditionObj, config, rootDocs) {
171
171
  * Builds a strict Zod schema dynamically from the policy definition.
172
172
  */
173
173
  export function buildConfigValidator(policy) {
174
- const validPlaces = policy.properties?.place && policy.properties.place.enum;
174
+ const validPlaces = policy.properties?.place &&
175
+ policy.properties.place.enum;
175
176
  const validDirs = policy.properties?.dirFilters &&
176
177
  policy.properties.dirFilters.items &&
177
- policy.properties.dirFilters.items.properties &&
178
- policy.properties.dirFilters.items.properties.dir &&
179
- policy.properties.dirFilters.items.properties.dir.enum;
178
+ policy.properties.dirFilters.items
179
+ .properties &&
180
+ policy.properties.dirFilters.items
181
+ .properties.dir &&
182
+ policy.properties.dirFilters.items
183
+ .properties.dir.enum;
180
184
  const baseSchema = {};
181
185
  if (validPlaces) {
182
186
  baseSchema.place = z.enum(validPlaces);
@@ -186,7 +190,7 @@ export function buildConfigValidator(policy) {
186
190
  }
187
191
  if (validDirs) {
188
192
  baseSchema.dirFilters = z.array(z.object({
189
- dir: z.union([z.enum(validDirs), z.literal('*')]),
193
+ dir: z.union([z.enum(validDirs), z.literal("*")]),
190
194
  access: z.enum(ACCESS_LEVELS),
191
195
  }));
192
196
  }
@@ -196,17 +200,17 @@ export function buildConfigValidator(policy) {
196
200
  access: z.enum(ACCESS_LEVELS),
197
201
  }));
198
202
  }
199
- const ConfigValidator = z.object(baseSchema).passthrough();
203
+ const ConfigValidator = z.looseObject(baseSchema);
200
204
  return ConfigValidator.superRefine((config, ctx) => {
201
205
  // 1. Evaluate policy rules dynamically
202
206
  const rootDocs = [policy];
203
207
  // keys that are always allowed by the base schema
204
208
  const allowedKeys = new Set();
205
209
  // Pre-populate allowedKeys with root properties
206
- allowedKeys.add('place');
207
- allowedKeys.add('dirFilters');
210
+ allowedKeys.add("place");
211
+ allowedKeys.add("dirFilters");
208
212
  if (policy.properties)
209
- Object.keys(policy.properties).forEach(k => allowedKeys.add(k));
213
+ Object.keys(policy.properties).forEach((k) => allowedKeys.add(k));
210
214
  evaluateCondition(policy, config, ctx, rootDocs, allowedKeys);
211
215
  // Validate strictness: block non-existent parameters
212
216
  for (const key of Object.keys(config)) {
@@ -215,7 +219,7 @@ export function buildConfigValidator(policy) {
215
219
  code: z.ZodIssueCode.unrecognized_keys,
216
220
  keys: [key],
217
221
  message: `Unrecognized key(s) in object: '${key}'`,
218
- path: []
222
+ path: [],
219
223
  });
220
224
  }
221
225
  }
@@ -225,14 +229,14 @@ export function buildConfigValidator(policy) {
225
229
  dirFilters.forEach((filter, index) => {
226
230
  const flat = { place: config.place, dir: filter.dir, access: filter.access };
227
231
  for (const rule of policy.deny) {
228
- const match = (!rule.place || rule.place === flat.place)
229
- && (!rule.dir || rule.dir === flat.dir)
230
- && (!rule.access || rule.access === flat.access);
232
+ const match = (!rule.place || rule.place === flat.place) &&
233
+ (!rule.dir || rule.dir === flat.dir) &&
234
+ (!rule.access || rule.access === flat.access);
231
235
  if (match) {
232
236
  ctx.addIssue({
233
237
  code: z.ZodIssueCode.custom,
234
238
  message: `Filter "${filter.dir}:${filter.access}" in "${config.place}": Denied by policy: ${JSON.stringify(rule)}`,
235
- path: ['dirFilters', index]
239
+ path: ["dirFilters", index],
236
240
  });
237
241
  }
238
242
  }
@@ -248,7 +252,7 @@ export function validateRunPolicyConfig(config, policy, schemaPath) {
248
252
  const result = validator.safeParse(config);
249
253
  if (result.success)
250
254
  return [];
251
- return result.error.issues.map((err) => `${err.path.length ? '/' + err.path.join('/') + ' ' : ''}${err.message}`);
255
+ return result.error.issues.map((err) => `${err.path.length ? "/" + err.path.join("/") + " " : ""}${err.message}`);
252
256
  }
253
257
  /** Load policy, validate config, throw on failure. */
254
258
  export function loadAndValidateRunPolicy(config, schemaPath) {
@@ -256,7 +260,7 @@ export function loadAndValidateRunPolicy(config, schemaPath) {
256
260
  const errors = validateRunPolicyConfig(config, policy, schemaPath);
257
261
  if (errors.length > 0) {
258
262
  const jsonContext = JSON.stringify({ $schema: schemaPath, ...config }, null, 2);
259
- throw new Error(`Run policy validation failed:\n${jsonContext}\n\nErrors:\n${errors.map((e) => ` • ${e}`).join('\\n')}`);
263
+ throw new Error(`Run policy validation failed:\n${jsonContext}\n\nErrors:\n${errors.map((e) => ` • ${e}`).join("\\n")}`);
260
264
  }
261
265
  return policy;
262
266
  }