@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
@@ -0,0 +1,110 @@
1
+ /**
2
+ * sse-subscriber — EventSource client shared by every consumer of a
3
+ * haibun host's /sse event stream.
4
+ *
5
+ * Browser SPAs connect to their own origin's /sse; Node-side peers
6
+ * connect to another host's /sse. Both need the same primitives: open,
7
+ * dispatch parsed events to listeners, reconnect on error with backoff,
8
+ * filter subscriptions, close cleanly. This class centralises that.
9
+ *
10
+ * Transport-agnostic within the EventSource contract: the caller
11
+ * supplies the URL; whether it resolves to the same origin or a
12
+ * remote host is the caller's concern.
13
+ *
14
+ * The SSE message format this subscriber decodes is the one
15
+ * web-server-hono's SSETransport emits: each `message` event's
16
+ * `data` field is a JSON envelope with `{ type, event, ... }` or a
17
+ * plain event payload. Payloads that don't parse as JSON are passed
18
+ * through verbatim so callers can handle wire-format variants.
19
+ */
20
+ export class SseSubscriber {
21
+ url;
22
+ reconnectDelayMs;
23
+ EventSourceCtor;
24
+ clientId;
25
+ // biome-ignore lint/suspicious/noExplicitAny: dynamic
26
+ source = null;
27
+ reconnectTimer = null;
28
+ listeners = [];
29
+ closed = false;
30
+ constructor(config) {
31
+ this.url = config.url;
32
+ this.reconnectDelayMs = config.reconnectDelayMs ?? 2000;
33
+ const ctor = config.EventSourceCtor ?? globalThis.EventSource;
34
+ if (!ctor) {
35
+ throw new Error("SseSubscriber: no EventSource constructor available (set SseSubscriberConfig.EventSourceCtor)");
36
+ }
37
+ this.EventSourceCtor = ctor;
38
+ this.clientId = config.clientId ?? `sse-${Math.random().toString(36).slice(2, 8)}`;
39
+ }
40
+ /** Open the stream. Subsequent subscribe/close calls operate on this connection. Idempotent. */
41
+ connect() {
42
+ if (this.closed)
43
+ return;
44
+ if (this.source)
45
+ return;
46
+ this.source = new this.EventSourceCtor(this.url);
47
+ this.source.onmessage = (sseEvent) => {
48
+ let msg;
49
+ try {
50
+ msg = JSON.parse(sseEvent.data);
51
+ }
52
+ catch {
53
+ this.dispatch({ raw: sseEvent.data });
54
+ return;
55
+ }
56
+ // web-server-hono wraps events as { type: "event", event: {...} };
57
+ // un-wrap when present, pass through otherwise.
58
+ if (msg.type === "event" && msg.event)
59
+ this.dispatch(msg.event);
60
+ else
61
+ this.dispatch(msg);
62
+ };
63
+ this.source.onerror = () => {
64
+ this.source?.close?.();
65
+ this.source = null;
66
+ if (this.closed || this.reconnectTimer)
67
+ return;
68
+ this.reconnectTimer = setTimeout(() => {
69
+ this.reconnectTimer = null;
70
+ this.connect();
71
+ }, this.reconnectDelayMs);
72
+ };
73
+ }
74
+ /** Register a listener. Returns an unsubscribe function. */
75
+ subscribe(handler, filter) {
76
+ const entry = { handler, filter };
77
+ this.listeners.push(entry);
78
+ return () => {
79
+ const idx = this.listeners.indexOf(entry);
80
+ if (idx >= 0)
81
+ this.listeners.splice(idx, 1);
82
+ };
83
+ }
84
+ /** Tag for log correlation. */
85
+ get id() {
86
+ return this.clientId;
87
+ }
88
+ /** Close the connection and stop reconnecting. */
89
+ close() {
90
+ this.closed = true;
91
+ if (this.reconnectTimer) {
92
+ clearTimeout(this.reconnectTimer);
93
+ this.reconnectTimer = null;
94
+ }
95
+ this.source?.close?.();
96
+ this.source = null;
97
+ }
98
+ dispatch(event) {
99
+ for (const { handler, filter } of this.listeners) {
100
+ try {
101
+ if (!filter || filter(event))
102
+ handler(event);
103
+ }
104
+ catch {
105
+ // Listener errors don't take down the subscriber.
106
+ }
107
+ }
108
+ }
109
+ }
110
+ //# sourceMappingURL=sse-subscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-subscriber.js","sourceRoot":"","sources":["../../src/lib/sse-subscriber.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,9 @@
1
- import { z } from 'zod';
2
- import { AStepper } from './astepper.js';
3
- import type { TWorld, TStepperStep } from './defs.js';
4
- import { type StepDescriptor } from './stepper-registry.js';
5
- /** Clean result type for transport consumers (SSE, MCP). Hides haibun internals. */
6
- export type StepHandlerResult = {
7
- ok: true;
8
- products: Record<string, unknown>;
9
- } | {
10
- ok: false;
11
- error: string;
12
- };
1
+ import { z } from "zod";
2
+ import { AStepper } from "./astepper.js";
3
+ import type { TWorld, TStepperStep, TFeatureStep, TStepAction } from "./execution.js";
4
+ import { type TConcernCatalog } from "./hypermedia.js";
5
+ import type { TActionResult, TStepResult, TSeqPath } from "../schema/protocol.js";
6
+ import { type StepDescriptor } from "./stepper-registry.js";
13
7
  /**
14
8
  * A registered step tool — the unit of dispatch for any transport (MCP, SSE, etc.).
15
9
  */
@@ -19,14 +13,49 @@ export type StepTool = {
19
13
  inputSchema: StepToolInputSchema;
20
14
  /** Zod schemas for each input parameter, keyed by parameter name. Used for runtime validation. */
21
15
  paramSchemas: Map<string, z.ZodType>;
16
+ /** Domain key for each parameter, keyed by parameter name. Used for domain.coerce() after Zod validation. */
17
+ paramDomainKeys: Map<string, string>;
22
18
  /** JSON Schema describing the products this step returns. Built from outputSchema on step definition. */
23
19
  outputSchema?: Record<string, unknown>;
24
20
  stepperName: string;
25
21
  stepName: string;
26
- handler: (input: Record<string, unknown>) => Promise<StepHandlerResult>;
22
+ /**
23
+ * Optional capability label for permission gating (ZCAP-LD hook).
24
+ * Transports check this before dispatching. e.g. "GraphStepper:read", "LlmStepper:*"
25
+ */
26
+ capability?: string;
27
+ /** Transport type — set by proxy transports (remote, subprocess). Defaults to "local". */
28
+ transport?: "local" | "remote" | "subprocess";
29
+ /** Remote host URL — set by RemoteStepperProxy for dispatch tracing. */
30
+ remoteHost?: string;
31
+ /** True if the step action is an async function (observable execution time). */
32
+ isAsync: boolean;
33
+ handler: (featureStep: TFeatureStep, world: TWorld) => Promise<TActionResult>;
27
34
  };
35
+ /**
36
+ * Live-refreshable step registry. Single source of truth for all transports (SSE, MCP, subprocess).
37
+ * Call refresh() to rebuild in-place when steppers change without restarting.
38
+ */
39
+ export declare class StepRegistry {
40
+ private tools;
41
+ /** Names injected via set() — survive refresh() so transports (RemoteStepperProxy, subprocess) register once and stay live across per-feature rebuilds. */
42
+ private injectedNames;
43
+ constructor(steppers: AStepper[], world: TWorld);
44
+ /** Rebuild stepper-owned entries in-place. Externally-injected tools (via set()) are preserved. */
45
+ refresh(steppers: AStepper[], world: TWorld): void;
46
+ get(name: string): StepTool | undefined;
47
+ list(): StepTool[];
48
+ get size(): number;
49
+ has(name: string): boolean;
50
+ /** Inject or overwrite a single tool (used by transports to register remote/child steps). Survives refresh(). */
51
+ set(tool: StepTool): void;
52
+ /** Remove an injected tool. Used by transport detach(). */
53
+ unset(name: string): void;
54
+ }
55
+ /** Registry key for a step routed at a specific hostId: `${hostId}:${method}`. */
56
+ export declare function hostScopedMethodName(hostId: number, bareMethod: string): string;
28
57
  export type StepToolInputSchema = {
29
- type: 'object';
58
+ type: "object";
30
59
  properties?: Record<string, {
31
60
  type?: string;
32
61
  description?: string;
@@ -38,16 +67,16 @@ export type StepToolInputSchema = {
38
67
  /**
39
68
  * Build a registry of step tools from the given steppers.
40
69
  * Each key is `${stepperName}-${stepName}` (e.g. `MuskegStepper-getTypes`).
41
- * Steps with `expose: false` are excluded.
42
- *
43
- * Used by MCP, SSE, and any future transport.
70
+ * All steps are included. MCP filters `exposeMCP: false` separately.
44
71
  */
45
72
  export declare function buildStepRegistry(steppers: AStepper[], world: TWorld): Map<string, StepTool>;
73
+ export declare function createStepTool(stepperName: string, stepName: string, stepDef: TStepperStep, world: TWorld): StepTool;
46
74
  /**
47
- * Validate input against a step tool's Zod schemas.
48
- * Returns validated (parsed) input on success, throws with descriptive errors on failure.
75
+ * Validate input against a step tool's Zod schemas, then apply domain.coerce() if available.
76
+ * Returns validated (and coerced) input on success, throws with descriptive errors on failure.
77
+ * Pass world to enable domain coercion (aligns RPC dispatch with feature-file execution).
49
78
  */
50
- export declare function validateToolInput(tool: StepTool, input: Record<string, unknown>): Record<string, unknown>;
79
+ export declare function validateToolInput(tool: StepTool, input: Record<string, unknown>, world?: TWorld): Record<string, unknown>;
51
80
  /**
52
81
  * Generate the canonical RPC method name for a step.
53
82
  * Used by both server (registry keys) and client (typed imports).
@@ -58,19 +87,42 @@ export declare function stepMethodName(stepperOrName: string | AStepper | {
58
87
  name: string;
59
88
  }, stepName: string): string;
60
89
  /**
61
- * Create a handler that calls the step action directly with validated input.
62
- * RPC transports validate input via validateToolInput() then call this handler.
63
- * The action receives typed values directly — no string round-tripping through
64
- * mapInputToStepValues/resolveVariable. A minimal featureStep is provided for provenance.
90
+ * Create a handler that populates args from featureStep.action.stepValuesMap,
91
+ * calls stepDef.action, and returns TActionResult.
92
+ *
93
+ * All callers (feature loop, FlowRunner, RPC, MCP, subprocess) use the same signature.
94
+ * External transports build a synthetic featureStep before calling.
65
95
  */
66
- export declare function createStepHandler(stepperName: string, stepName: string, stepDef: TStepperStep): (input: Record<string, unknown>) => Promise<StepHandlerResult>;
96
+ export declare function createStepHandler(stepperName: string, stepName: string, stepDef: TStepperStep): (featureStep: TFeatureStep, world: TWorld) => Promise<TActionResult>;
97
+ /**
98
+ * Build a synthetic featureStep from raw RPC input params.
99
+ * Used by external transports (SSE, MCP, subprocess) that don't have a real featureStep.
100
+ */
101
+ export declare function buildSyntheticFeatureStep(tool: StepTool, input: Record<string, unknown>, seqPath: TSeqPath): TFeatureStep;
102
+ export type DispatchContext = {
103
+ registry: StepRegistry;
104
+ world: TWorld;
105
+ steppers: AStepper[];
106
+ grantedCapability?: string | string[];
107
+ };
108
+ /**
109
+ * Unified step dispatch. Every step invocation — feature execution, FlowRunner,
110
+ * RPC, MCP, subprocess — enters through here. Applies capability auth, lifecycle
111
+ * cycles (beforeStep/afterStep), event logging, and result tracking uniformly.
112
+ */
113
+ export declare function dispatchStep(ctx: DispatchContext, featureStep: TFeatureStep): Promise<TStepResult>;
114
+ export declare function stepResultFromActionResult(actionResult: TActionResult, action: TStepAction, start: number, end: number, featureStep: TFeatureStep, ok: boolean): TStepResult;
115
+ export declare function capabilityAllows(granted: string | string[] | undefined, required: string): boolean;
116
+ export declare function authorizeToolCapability(tool: Pick<StepTool, "name" | "capability">, granted?: string | string[]): void;
67
117
  /** Incoming JSON-RPC 2.0 request from client (POST /rpc/:method). */
68
118
  export declare const RpcRequestSchema: z.ZodObject<{
69
119
  jsonrpc: z.ZodLiteral<"2.0">;
70
120
  id: z.ZodString;
71
121
  method: z.ZodString;
72
122
  params: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
123
+ capability: z.ZodOptional<z.ZodString>;
73
124
  stream: z.ZodOptional<z.ZodBoolean>;
125
+ seqPath: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
74
126
  }, z.core.$strip>;
75
127
  export type TRpcRequest = z.infer<typeof RpcRequestSchema>;
76
128
  /** Outgoing JSON-RPC 2.0 response to client. */
@@ -94,13 +146,25 @@ export type TRpcStream = z.infer<typeof RpcStreamSchema>;
94
146
  * Returns the parsed request or null if the message is not an RPC request.
95
147
  */
96
148
  export declare function parseRpcRequest(raw: unknown): TRpcRequest | null;
149
+ export type DomainDiscoveryInfo = {
150
+ description?: string;
151
+ values?: string[];
152
+ stepperName?: string;
153
+ vertexLabel?: string;
154
+ };
97
155
  export type StepDiscovery = {
98
- registry: Map<string, StepTool>;
99
- metadata: StepDescriptor[];
156
+ steps: StepDescriptor[];
157
+ /** Domain definitions from world.domains, serializable for SPA/RPC consumers. */
158
+ domains: Record<string, DomainDiscoveryInfo>;
159
+ /** Hypermedia concern catalog — vertex types with ActivityStreams/JSON-LD metadata. */
160
+ concerns: TConcernCatalog;
100
161
  };
101
162
  /**
102
163
  * Build a step registry and enrich metadata with input/output schemas.
103
164
  * Single entry point for both SSE and MCP transports.
165
+ * Accepts an existing StepRegistry instance to update in-place (for live refresh).
104
166
  */
105
- export declare function discoverSteps(steppers: AStepper[], world: TWorld): StepDiscovery;
167
+ export declare function discoverSteps(steppers: AStepper[], world: TWorld, stepRegistry?: StepRegistry, options?: {
168
+ grantedCapability?: string | string[];
169
+ }): StepDiscovery;
106
170
  //# sourceMappingURL=step-dispatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"step-dispatch.d.ts","sourceRoot":"","sources":["../../src/lib/step-dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-dispatch.d.ts","sourceRoot":"","sources":["../../src/lib/step-dispatch.ts"],"names":[],"mappings":"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"}