@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,169 +1,204 @@
1
- import { ExecMode } from '../lib/defs.js';
2
- import { STAY, STAY_FAILURE, STEP_DELAY, CONTINUE_AFTER_ERROR, FEATURE_START, Timer, STAY_ALWAYS } from '../schema/protocol.js';
3
- import { LifecycleEvent } from '../schema/protocol.js';
4
- import { actionNotOK, sleep, findStepper, setStepperWorldsAndDomains, } from '../lib/util/index.js';
5
- import { SCENARIO_START } from '../schema/protocol.js';
6
- import { FeatureVariables } from '../lib/feature-variables.js';
7
- import { populateActionArgs } from '../lib/populateActionArgs.js';
8
- import { registerDomains } from '../lib/domain-types.js';
9
- import { basename } from 'path';
10
- export function calculateShouldClose({ thisFeatureOK, isLast, stayOnFailure, continueAfterError, stayAlways }) {
11
- // Determine if this is effectively the "last" feature
12
- // Either: actually last, OR failed and not continuing after error
1
+ import { z } from "zod";
2
+ import { DOMAIN_VERTEX_LABEL } from "../lib/resources.js";
3
+ import { STAY, STAY_FAILURE, STEP_DELAY, CONTINUE_AFTER_ERROR, FEATURE_START, Timer, STAY_ALWAYS, } from "../schema/protocol.js";
4
+ import { LifecycleEvent } from "../schema/protocol.js";
5
+ import { sleep, setStepperWorldsAndDomains, constructorName } from "../lib/util/index.js";
6
+ import { StepRegistry, dispatchStep } from "../lib/step-dispatch.js";
7
+ import { SCENARIO_START } from "../schema/protocol.js";
8
+ import { FeatureVariables } from "../lib/feature-variables.js";
9
+ import { registerDomains } from "../lib/domains.js";
10
+ import { doStepperCycle, doStepperCycleSync } from "../lib/stepper-cycles.js";
11
+ import { basename } from "path";
12
+ export function calculateShouldClose({ thisFeatureOK, isLast, stayOnFailure, continueAfterError, stayAlways, }) {
13
13
  const effectivelyLast = isLast || (!thisFeatureOK && !continueAfterError);
14
- // For non-last features, always close to start fresh for next feature
15
- if (!effectivelyLast) {
14
+ if (!effectivelyLast)
16
15
  return true;
17
- }
18
- // From here, we're on the last feature - apply stay logic
19
- if (stayAlways) {
16
+ if (stayAlways)
20
17
  return false;
21
- }
22
- if (!thisFeatureOK && stayOnFailure) {
18
+ if (!thisFeatureOK && stayOnFailure)
23
19
  return false;
24
- }
25
20
  return true;
26
21
  }
27
- const MAX_EXECUTE_SEQPATH = 50;
22
+ function initExecutionRuntime(world) {
23
+ if (!world.runtime.observations) {
24
+ world.runtime.observations = new Map();
25
+ }
26
+ }
27
+ function initFeatureRuntime(world) {
28
+ if (world.runtime) {
29
+ world.runtime.observations = new Map();
30
+ }
31
+ }
32
+ /**
33
+ * Duck-typed attach() on every stepper that implements a transport
34
+ * (has `attach` and `detach` methods). Called from two places:
35
+ *
36
+ * - Executor, right after it creates world.runtime.stepRegistry,
37
+ * so any stepper transport is live before the first feature runs.
38
+ * This covers pure-client configs (e.g. agent with `{remote}`
39
+ * entry, no webserver).
40
+ *
41
+ * - WebServerStepper's `enable rpc` / `refresh steppers` steps,
42
+ * which create their own registry and must re-attach transports
43
+ * into it. Delegating here keeps both call sites consistent.
44
+ *
45
+ * The webserver argument is whatever the caller has. Core's Executor
46
+ * invocation passes undefined; transports that truly need a webserver
47
+ * (e.g. SSE adding routes) check and no-op when absent. Remote-proxy
48
+ * transports don't use it.
49
+ */
50
+ // biome-ignore lint/suspicious/noExplicitAny: duck-typed webserver shape varies by caller.
51
+ export function attachTransportsToRegistry(steppers, registry, webserver) {
52
+ for (const s of steppers) {
53
+ // biome-ignore lint/suspicious/noExplicitAny: duck-typed IStepTransport check
54
+ const candidate = s;
55
+ if (typeof candidate.attach !== "function" || typeof candidate.detach !== "function")
56
+ continue;
57
+ candidate.attach(registry, webserver);
58
+ }
59
+ }
28
60
  export class Executor {
29
61
  static createExecutionFailure(featureResults) {
30
- const firstFailedFeature = featureResults.find(fr => !fr.ok);
31
- if (!firstFailedFeature) {
62
+ const firstFailedFeature = featureResults.find((fr) => !fr.ok);
63
+ if (!firstFailedFeature)
32
64
  return undefined;
33
- }
34
- const failedStep = firstFailedFeature.stepResults.find(sr => !sr.ok && sr.intent?.mode !== 'speculative');
35
- if (!failedStep) {
65
+ const failedStep = firstFailedFeature.stepResults.find((sr) => !sr.ok && sr.intent?.mode !== "speculative");
66
+ if (!failedStep)
36
67
  return undefined;
37
- }
38
- const errorMessage = failedStep.stepActionResult && 'message' in failedStep.stepActionResult
39
- ? failedStep.stepActionResult.message
40
- : 'Step execution failed';
68
+ const errorMessage = failedStep.errorMessage || "Step execution failed";
41
69
  return {
42
- stage: 'Execute',
70
+ stage: "Execute",
43
71
  error: {
44
72
  message: errorMessage,
45
73
  details: {
46
74
  step: failedStep.in,
47
75
  path: failedStep.path,
48
- seqPath: failedStep.seqPath
49
- }
50
- }
76
+ seqPath: failedStep.seqPath,
77
+ },
78
+ },
51
79
  };
52
80
  }
53
- static async action(steppers, featureStep, found, args, world) {
54
- const stepper = findStepper(steppers, found.stepperName);
55
- const action = stepper.steps[found.actionName].action;
56
- // Track step usage for observation pattern
57
- const usageKey = `${found.stepperName}.${found.actionName}`;
58
- // Ensure observations map exists (it should be initialized in executeFeatures)
59
- if (!world.runtime.observations) {
60
- world.runtime.observations = new Map();
61
- }
62
- const stepUsage = world.runtime.observations.get('stepUsage') || new Map();
63
- stepUsage.set(usageKey, (stepUsage.get(usageKey) || 0) + 1);
64
- world.runtime.observations.set('stepUsage', stepUsage);
65
- try {
66
- return await action(args, featureStep);
67
- }
68
- catch (caught) {
69
- if (featureStep.intent?.mode !== 'speculative') {
70
- world.eventLogger.log(featureStep, 'error', caught.stack || caught.message);
71
- }
72
- return actionNotOK(`in ${featureStep.in}: ${caught.message}`);
73
- }
74
- }
75
81
  static async executeFeatures(steppers, world, features) {
76
- if (!world.runtime.observations) {
77
- world.runtime.observations = new Map();
78
- }
79
- await addStepperConcerns(world, steppers);
80
- world.eventLogger.subscribe((event) => {
81
- doStepperCycleSync(steppers, 'onEvent', event);
82
- });
83
- // Emit resolved features artifact once at the start
82
+ initExecutionRuntime(world);
83
+ world.runtime.steppers = steppers;
84
+ const stepRegistry = new StepRegistry(steppers, world);
85
+ world.runtime.stepRegistry = stepRegistry;
86
+ // Any stepper that implements IStepTransport (duck-typed: has `attach`
87
+ // and `detach` methods) injects its tools into the registry now. This
88
+ // covers RemoteStepperProxy entries from `{remote}` config lines,
89
+ // subprocess transports, and any future transport. WebServerStepper's
90
+ // enable-rpc step re-attaches into a fresh registry when it builds
91
+ // one; the registry.set is keyed by method name so duplicate
92
+ // injections are idempotent.
93
+ attachTransportsToRegistry(steppers, stepRegistry);
94
+ const onEventHandler = (event) => {
95
+ doStepperCycleSync(steppers, "onEvent", event);
96
+ };
97
+ world.eventLogger.subscribe(onEventHandler);
84
98
  try {
85
- const { ResolvedFeaturesArtifact } = await import('../schema/protocol.js');
99
+ const { ResolvedFeaturesArtifact } = await import("../schema/protocol.js");
100
+ const outcomeResults = await doStepperCycle(steppers, "getRegisteredOutcomes", undefined);
101
+ const registeredOutcomes = outcomeResults.find(Boolean);
86
102
  const resolvedFeaturesEvent = ResolvedFeaturesArtifact.parse({
87
103
  id: `artifact.resolvedFeatures`,
88
104
  timestamp: Date.now(),
89
- kind: 'artifact',
90
- artifactType: 'resolvedFeatures',
105
+ kind: "artifact",
106
+ artifactType: "resolvedFeatures",
91
107
  resolvedFeatures: features,
92
- mimetype: 'application/json',
108
+ ...(registeredOutcomes ? { registeredOutcomes } : {}),
109
+ mimetype: "application/json",
93
110
  });
94
111
  world.eventLogger.emit(resolvedFeaturesEvent);
95
112
  }
96
113
  catch {
97
114
  // Silently continue if artifact emission fails
98
115
  }
99
- await doStepperCycle(steppers, 'startExecution', features);
116
+ await doStepperCycle(steppers, "startExecution", features);
100
117
  let okSoFar = true;
101
118
  const stayOnFailure = world.options[STAY] === STAY_FAILURE;
102
119
  const stayAlways = world.options[STAY] === STAY_ALWAYS;
103
120
  const featureResults = [];
104
121
  let featureNum = 0;
105
- const continueAfterError = !!(world.options[CONTINUE_AFTER_ERROR]);
106
- // Create a synthetic featureStep for logging outside of step context
107
- const syntheticStep = { source: { path: '' }, in: '', seqPath: [0], action: { actionName: 'runner', stepperName: 'Executor', step: { action: async () => ({ ok: true }) } } };
122
+ const continueAfterError = !!world.options[CONTINUE_AFTER_ERROR];
108
123
  for (const feature of features) {
109
124
  featureNum++;
110
125
  const isLast = featureNum === features.length;
111
126
  world.runtime.exhaustionError = undefined;
112
- const featureName = basename(feature.path).replace(/\..*$/, '');
113
- const newWorld = { ...world, tag: { ...world.tag, featureNum: featureNum, featureName } };
114
- const featureExecutor = new FeatureExecutor(steppers, newWorld);
115
- // Reset observations for the new feature
116
- if (newWorld.runtime) {
117
- newWorld.runtime.observations = new Map();
118
- }
127
+ const featureName = basename(feature.path).replace(/\..*$/, "");
128
+ const newWorld = {
129
+ ...world,
130
+ tag: { ...world.tag, featureNum, featureName },
131
+ };
132
+ initFeatureRuntime(newWorld);
133
+ const featureExecutor = new FeatureExecutor(steppers, stepRegistry, newWorld);
119
134
  await setStepperWorldsAndDomains(steppers, newWorld);
120
- await doStepperCycle(steppers, 'startFeature', { resolvedFeature: feature, index: featureNum });
121
- world.eventLogger.log(syntheticStep, 'info', `feature ${featureNum}/${features.length}: ${feature.path}`);
135
+ await doStepperCycle(steppers, "startFeature", { resolvedFeature: feature, index: featureNum });
136
+ stepRegistry.refresh(steppers, newWorld);
137
+ world.eventLogger.info(`feature ${featureNum}/${features.length}: ${feature.path}`);
122
138
  const featureResult = await featureExecutor.doFeature(feature);
123
- if (newWorld.runtime && newWorld.runtime.exhaustionError) {
139
+ if (newWorld.runtime?.exhaustionError) {
124
140
  world.runtime.exhaustionError = newWorld.runtime.exhaustionError;
125
141
  }
126
142
  const thisFeatureOK = featureResult.ok;
127
143
  if (!thisFeatureOK) {
128
144
  const failedStep = featureResult.stepResults.find((s) => !s.ok);
129
- await doStepperCycle(steppers, 'onFailure', { featureResult, failedStep });
145
+ await doStepperCycle(steppers, "onFailure", { featureResult, failedStep });
130
146
  }
131
147
  okSoFar = okSoFar && thisFeatureOK;
132
148
  featureResults.push(featureResult);
133
- const shouldCloseFactors = { thisFeatureOK: featureResult.ok, okSoFar, isLast, continueAfterError, stayOnFailure, stayAlways };
134
- const shouldClose = calculateShouldClose(shouldCloseFactors);
135
- await doStepperCycle(steppers, 'endFeature', { world: newWorld, shouldClose, isLast, okSoFar, continueAfterError, stayOnFailure, thisFeatureOK: featureResult.ok });
136
- if (!okSoFar) {
137
- if (!continueAfterError && !isLast) {
138
- break;
139
- }
140
- }
149
+ const shouldClose = calculateShouldClose({
150
+ thisFeatureOK: featureResult.ok,
151
+ isLast,
152
+ continueAfterError,
153
+ stayOnFailure,
154
+ stayAlways,
155
+ });
156
+ await doStepperCycle(steppers, "endFeature", {
157
+ featurePath: feature.path,
158
+ shouldClose,
159
+ isLast,
160
+ okSoFar,
161
+ continueAfterError,
162
+ stayOnFailure,
163
+ thisFeatureOK: featureResult.ok,
164
+ });
165
+ if (!okSoFar && !continueAfterError && !isLast)
166
+ break;
141
167
  }
142
- const results = { ok: okSoFar, featureResults: featureResults, tag: world.tag, shared: world.shared, steppers, failure: undefined };
168
+ const results = {
169
+ ok: okSoFar,
170
+ featureResults,
171
+ tag: world.tag,
172
+ shared: world.shared,
173
+ steppers,
174
+ failure: undefined,
175
+ };
143
176
  if (!okSoFar) {
144
177
  const failure = this.createExecutionFailure(featureResults);
145
- if (failure) {
178
+ if (failure)
146
179
  results.failure = failure;
147
- }
148
180
  }
149
181
  world.eventLogger.emit(LifecycleEvent.parse({
150
182
  id: `execution-end`,
151
183
  timestamp: Date.now(),
152
- kind: 'lifecycle',
153
- type: 'execution',
154
- stage: 'end',
155
- status: okSoFar ? 'completed' : 'failed',
184
+ kind: "lifecycle",
185
+ type: "execution",
186
+ stage: "end",
187
+ status: okSoFar ? "completed" : "failed",
156
188
  }));
157
- await doStepperCycle(steppers, 'endExecution', results);
189
+ await doStepperCycle(steppers, "endExecution", results);
190
+ world.eventLogger.unsubscribe(onEventHandler);
158
191
  return results;
159
192
  }
160
193
  }
161
194
  export class FeatureExecutor {
162
195
  steppers;
196
+ registry;
163
197
  world;
164
198
  startOffset;
165
- constructor(steppers, world, startOffset = Timer.since()) {
199
+ constructor(steppers, registry, world, startOffset = Timer.since()) {
166
200
  this.steppers = steppers;
201
+ this.registry = registry;
167
202
  this.world = world;
168
203
  this.startOffset = startOffset;
169
204
  }
@@ -177,156 +212,106 @@ export class FeatureExecutor {
177
212
  for (const step of feature.featureSteps) {
178
213
  if (step.action.actionName === FEATURE_START) {
179
214
  if (currentScenario) {
180
- await doStepperCycle(this.steppers, 'endScenario', undefined);
181
- world.shared = new FeatureVariables(world, baseVars.all());
182
- scopedVars = new FeatureVariables(world, world.shared.all());
215
+ await doStepperCycle(this.steppers, "endScenario", undefined);
216
+ world.shared = new FeatureVariables(world, await baseVars.all());
217
+ scopedVars = new FeatureVariables(world, await world.shared.all());
183
218
  currentScenario = 0;
184
219
  }
185
- // Set current feature path for dynamic statement execution (debugger, quantifiers, etc.)
186
220
  world.runtime.currentFeaturePath = feature.path;
187
221
  world.eventLogger.emit(LifecycleEvent.parse({
188
222
  id: `feat-${world.tag.featureNum}`,
189
223
  timestamp: Date.now(),
190
- kind: 'lifecycle',
191
- type: 'feature',
192
- stage: 'start',
224
+ kind: "lifecycle",
225
+ type: "feature",
226
+ stage: "start",
193
227
  featurePath: feature.path,
194
- status: 'running',
228
+ featureName: feature.name,
229
+ status: "running",
195
230
  }));
196
231
  }
197
232
  if (step.action.actionName === SCENARIO_START) {
198
233
  if (currentScenario) {
199
- await doStepperCycle(this.steppers, 'endScenario', undefined);
200
- scopedVars = new FeatureVariables(world, world.shared.all());
234
+ await doStepperCycle(this.steppers, "endScenario", undefined);
235
+ scopedVars = new FeatureVariables(world, await world.shared.all());
201
236
  }
202
237
  currentScenario = currentScenario + 1;
203
238
  world.eventLogger.emit(LifecycleEvent.parse({
204
239
  id: `feat-${world.tag.featureNum}.scen-${currentScenario + 1}`,
205
240
  timestamp: Date.now(),
206
- kind: 'lifecycle',
207
- type: 'scenario',
208
- stage: 'start',
209
- scenarioName: step.in,
210
- status: 'running',
241
+ kind: "lifecycle",
242
+ type: "scenario",
243
+ stage: "start",
244
+ scenarioName: step.in.replace(/^Scenario:\s*/i, ""),
245
+ status: "running",
211
246
  }));
212
- await doStepperCycle(this.steppers, 'startScenario', { scopedVars });
247
+ await doStepperCycle(this.steppers, "startScenario", { scopedVars });
213
248
  }
214
- const augmentedStep = { ...step, seqPath: [world.tag.featureNum, currentScenario + 1, ...step.seqPath] };
215
- const result = await FeatureExecutor.doFeatureStep(this.steppers, augmentedStep, world);
249
+ const augmentedStep = {
250
+ ...step,
251
+ // Root on [hostId, featureNum, scenarioNum, ...resolverStepSeq] so
252
+ // observations from different haibun instances can never collide
253
+ // and a multi-host cross-host join can union by seqPath safely.
254
+ seqPath: [world.tag.hostId, world.tag.featureNum, currentScenario + 1, ...step.seqPath],
255
+ };
256
+ const result = await dispatchStep({ registry: this.registry, world, steppers: this.steppers }, augmentedStep);
216
257
  ok = ok && result.ok;
217
- if (!ok) {
258
+ if (!ok)
218
259
  break;
219
- }
220
260
  if (world.options[STEP_DELAY]) {
221
261
  await sleep(world.options[STEP_DELAY]);
222
262
  }
223
263
  if (!currentScenario) {
224
- scopedVars = new FeatureVariables(world, world.shared.all());
225
- baseVars = new FeatureVariables(world, world.shared.all());
264
+ scopedVars = new FeatureVariables(world, await world.shared.all());
265
+ baseVars = new FeatureVariables(world, await world.shared.all());
226
266
  }
227
267
  }
228
268
  if (currentScenario) {
229
- await doStepperCycle(this.steppers, 'endScenario', undefined);
230
- }
231
- const featureResult = { path: feature.path, ok, stepResults: world.runtime.stepResults };
232
- return featureResult;
233
- }
234
- static async doFeatureStep(steppers, featureStep, world, execMode = ExecMode.WITH_CYCLES) {
235
- const { action } = featureStep;
236
- const currentTime = Timer.since();
237
- const createFailedStepResult = (message) => {
238
- return stepResultFromActionResult(actionNotOK(message), action, currentTime, Timer.since(), featureStep, false);
239
- };
240
- if (world.runtime.exhaustionError) {
241
- return createFailedStepResult(`Execution halted: ${world.runtime.exhaustionError}`);
242
- }
243
- if (featureStep.seqPath.length > MAX_EXECUTE_SEQPATH) {
244
- const errorMessage = `Execution depth limit exceeded (${featureStep.seqPath.length} > ${MAX_EXECUTE_SEQPATH}). Possible infinite recursion in step: ${featureStep.in}`;
245
- world.runtime.exhaustionError = errorMessage;
246
- return createFailedStepResult(errorMessage);
247
- }
248
- let ok = true;
249
- const start = Timer.since();
250
- const args = await populateActionArgs(featureStep, world, steppers);
251
- const isFullCycles = execMode === ExecMode.WITH_CYCLES;
252
- let actionResult;
253
- if (isFullCycles) {
254
- if (action.actionName !== FEATURE_START && action.actionName !== SCENARIO_START) {
255
- world.eventLogger.stepStart(featureStep, action.stepperName, action.actionName, args, featureStep.action.stepValuesMap);
256
- }
257
- let doAction = true;
258
- while (doAction) {
259
- await doStepperCycle(steppers, 'beforeStep', ({ featureStep }));
260
- actionResult = await Executor.action(steppers, featureStep, action, args, world);
261
- if (action.actionName !== FEATURE_START && action.actionName !== SCENARIO_START) {
262
- const errorMessage = !actionResult.ok ? actionResult.message : undefined;
263
- const products = 'products' in actionResult ? actionResult.products : undefined;
264
- world.eventLogger.stepEnd(featureStep, action.stepperName, action.actionName, actionResult.ok, errorMessage, args, featureStep.action.stepValuesMap, products);
265
- }
266
- world.runtime.stepResults.push(stepResultFromActionResult(actionResult, action, start, Timer.since(), featureStep, ok && actionResult.ok));
267
- const instructions = await doStepperCycle(steppers, 'afterStep', ({ featureStep, actionResult }), action.actionName);
268
- doAction = instructions.some(i => i?.rerunStep);
269
- const failed = instructions.some(i => i?.failed);
270
- if (failed) {
271
- ok = false;
272
- }
273
- else {
274
- const doNext = instructions.some(i => i?.nextStep);
275
- if (doNext) {
276
- actionResult = { ...actionResult, ok: true };
277
- }
278
- }
279
- }
280
- }
281
- else {
282
- actionResult = await Executor.action(steppers, featureStep, action, args, world);
269
+ await doStepperCycle(this.steppers, "endScenario", undefined);
283
270
  }
284
- ok = ok && actionResult.ok;
285
- const stepResult = stepResultFromActionResult(actionResult, action, start, Timer.since(), featureStep, ok);
286
- return stepResult;
271
+ return { path: feature.path, ok, stepResults: world.runtime.stepResults };
287
272
  }
288
273
  }
289
- const doStepperCycle = async (steppers, method, args, guidance = '') => {
290
- const results = [];
291
- const hasCycles = steppers.filter(c => c.cycles && c.cycles[method])
292
- .sort((a, b) => {
293
- const key = method;
294
- const aVal = a.cyclesWhen?.[key];
295
- const bVal = b.cyclesWhen?.[key];
296
- return (aVal ?? 0) - (bVal ?? 0);
297
- });
298
- for (const cycling of hasCycles) {
299
- const cycle = cycling.cycles[method];
300
- if (cycle) {
301
- const paramsForApply = args === undefined ? [] : [args];
302
- const result = await cycle.apply(cycling, paramsForApply);
303
- results.push(result);
274
+ export const addStepperConcerns = (world, steppers) => {
275
+ const allDomains = [];
276
+ for (const stepper of steppers) {
277
+ const hasCycles = stepper;
278
+ if (!hasCycles.cycles?.getConcerns)
279
+ continue;
280
+ const concerns = hasCycles.cycles.getConcerns();
281
+ if (concerns?.domains) {
282
+ const name = constructorName(stepper);
283
+ for (const domain of concerns.domains) {
284
+ allDomains.push({ ...domain, stepperName: domain.stepperName ?? name });
285
+ }
304
286
  }
305
287
  }
306
- return results;
307
- };
308
- const doStepperCycleSync = (steppers, method, args) => {
309
- const hasCycles = steppers.filter(c => c.cycles && c.cycles[method]);
310
- for (const cycling of hasCycles) {
311
- const cycle = cycling.cycles[method];
312
- if (cycle) {
313
- const paramsForApply = args === undefined ? [] : [args];
314
- cycle.apply(cycling, paramsForApply);
315
- }
288
+ registerDomains(world, [allDomains]);
289
+ // Register vertex-label domain from all registered vertex types
290
+ const vertexLabels = Object.values(world.domains)
291
+ .filter((d) => d.topology?.vertexLabel)
292
+ .map((d) => d.topology?.vertexLabel);
293
+ if (vertexLabels.length > 0) {
294
+ registerDomains(world, [
295
+ [{ selectors: [DOMAIN_VERTEX_LABEL], schema: z.enum(vertexLabels), description: "Vertex type" }],
296
+ ]);
316
297
  }
317
298
  };
318
- const addStepperConcerns = async (world, steppers) => {
319
- const results = await doStepperCycle(steppers, 'getConcerns', undefined);
320
- // Extract and register domains from concerns
321
- const domains = results.filter(r => r?.domains).flatMap(r => r.domains);
322
- registerDomains(world, [domains]);
323
- // Sources are registered separately (looked up by name when needed)
324
- };
325
- function stepResultFromActionResult(actionResult, action, start, end, featureStep, ok) {
326
- const stepActionResult = { ...actionResult, name: action.actionName, start, end };
327
- const seqPath = featureStep.seqPath;
328
- const stepResult = { in: featureStep.in, path: featureStep.source.path, lineNumber: featureStep.source.lineNumber, ok, stepActionResult, seqPath, intent: featureStep.intent };
329
- return stepResult;
299
+ // SeqPath conventions:
300
+ // - Normal feature execution uses [feature, scenario, step, ...].
301
+ // - Feature-scoped synthetic work uses [feature, 0, ordinal].
302
+ // - Speculative/debug branches extend a real step path with negative suffixes.
303
+ // - Top-level ad hoc transport calls use [0, ordinal].
304
+ export function syntheticSeqPathDirection(speculative = false) {
305
+ return speculative ? -1 : 1;
306
+ }
307
+ export function featureSyntheticSeqPath(featureNum, ordinal, branch = 0, hostId = 0) {
308
+ return [hostId, featureNum, branch, ordinal];
309
+ }
310
+ export function syntheticBranchSeqPath(parentSeqPath, dir = 1) {
311
+ return [...parentSeqPath, dir === -1 ? -1 : 1];
312
+ }
313
+ export function advanceSyntheticSeqPath(seqPath, dir = 1) {
314
+ return [...seqPath.slice(0, -1), seqPath[seqPath.length - 1] + dir];
330
315
  }
331
316
  export function incSeqPath(withSeqPath, seqPath, dir = 1) {
332
317
  const prefix = seqPath.slice(0, -1);
@@ -334,7 +319,7 @@ export function incSeqPath(withSeqPath, seqPath, dir = 1) {
334
319
  let candidate = [...prefix, last];
335
320
  let found = true;
336
321
  while (found) {
337
- found = withSeqPath.some(r => JSON.stringify(r.seqPath) === JSON.stringify(candidate));
322
+ found = withSeqPath.some((r) => JSON.stringify(r.seqPath) === JSON.stringify(candidate));
338
323
  if (found) {
339
324
  last += dir;
340
325
  candidate = [...prefix, last];
@@ -1 +1 @@
1
- {"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { TStepAction, TResolvedFeature, TExpandedFeature, TFeatureStep, TExpandedLine, TFeatures, TWorld } from '../lib/defs.js';
2
- import { AStepper } from '../lib/astepper.js';
1
+ import { TStepAction, TResolvedFeature, TExpandedFeature, TFeatureStep, TExpandedLine, TFeatures, TWorld } from "../lib/execution.js";
2
+ import { AStepper } from "../lib/astepper.js";
3
3
  export declare class Resolver {
4
4
  private steppers;
5
5
  private backgrounds;
@@ -1 +1 @@
1
- {"version":3,"file":"Resolver.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAgB,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAY,MAAM,gBAAgB,CAAC;AAEzJ,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,qBAAa,QAAQ;IAGR,OAAO,CAAC,QAAQ;IAAc,OAAO,CAAC,WAAW;IAFtD,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAM;gBAE5D,QAAQ,EAAE,QAAQ,EAAE,EAAU,WAAW,GAAE,SAAc;IA0B7E,OAAO,CAAC,sBAAsB;IAcjB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;IAclE;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAQjB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAS1E,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,MAAM,EAAE;YAAE,WAAW,EAAE,aAAa,CAAC;YAAC,KAAK,EAAE,KAAK,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;IAI/I,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,MAAM,EAAE;YAAE,WAAW,EAAE,aAAa,CAAC;YAAC,KAAK,EAAE,KAAK,CAAA;SAAE,EAAE,CAAA;KAAE;IAqEjJ,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IA2B/C,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY;IAgBnF,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE;IAkB7D,OAAO,CAAC,WAAW;CAoBnB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM;;;EAgBnI;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,SAAI,GAAG,YAAY,EAAE,CAwC/J"}
1
+ {"version":3,"file":"Resolver.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAgB,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAY,MAAM,qBAAqB,CAAC;AAE9J,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,qBAAa,QAAQ;IAInB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;IAJb,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAM;gBAGvE,QAAQ,EAAE,QAAQ,EAAE,EACpB,WAAW,GAAE,SAAc;IA2BpC,OAAO,CAAC,sBAAsB;IAoBjB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;IAalE;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAQjB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAW1E,wBAAwB,CAC9B,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,MAAM,EAAE;YAAE,WAAW,EAAE,aAAa,CAAC;YAAC,KAAK,EAAE,KAAK,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;IAItF,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAC/D,KAAK,EAAE,YAAY,EAAE,CAAC;QACtB,MAAM,EAAE;YAAE,WAAW,EAAE,aAAa,CAAC;YAAC,KAAK,EAAE,KAAK,CAAA;SAAE,EAAE,CAAC;KACvD;IA0ED,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IA8B/C,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY;IAgBnF,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE;IAkB7D,OAAO,CAAC,WAAW;CAoBnB;AAED,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,QAAQ,EAAE,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,MAAM;;;EAiBnB;AAED,wBAAgB,6BAA6B,CAC5C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAAE,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,SAAI,GACL,YAAY,EAAE,CAwChB"}