@moltzap/client 2026.812.0 → 2026.902.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/LICENSE +202 -21
  2. package/NOTICE +19 -0
  3. package/README.md +50 -0
  4. package/bin/moltzapd +9 -0
  5. package/dist/client-runtime.d.ts +10 -0
  6. package/dist/client-runtime.d.ts.map +1 -0
  7. package/dist/client-runtime.js +218 -0
  8. package/dist/client-runtime.js.map +1 -0
  9. package/dist/contract.d.ts +338 -0
  10. package/dist/contract.d.ts.map +1 -0
  11. package/dist/contract.js +213 -0
  12. package/dist/contract.js.map +1 -0
  13. package/dist/contract.types-check.d.ts +99 -0
  14. package/dist/contract.types-check.d.ts.map +1 -0
  15. package/dist/contract.types-check.js +7 -0
  16. package/dist/contract.types-check.js.map +1 -0
  17. package/dist/daemon/configuration.d.ts +46 -0
  18. package/dist/daemon/configuration.d.ts.map +1 -0
  19. package/dist/daemon/configuration.js +69 -0
  20. package/dist/daemon/configuration.js.map +1 -0
  21. package/dist/daemon/management.d.ts +23 -0
  22. package/dist/daemon/management.d.ts.map +1 -0
  23. package/dist/daemon/management.js +489 -0
  24. package/dist/daemon/management.js.map +1 -0
  25. package/dist/daemon/registration.d.ts +72 -0
  26. package/dist/daemon/registration.d.ts.map +1 -0
  27. package/dist/daemon/registration.js +109 -0
  28. package/dist/daemon/registration.js.map +1 -0
  29. package/dist/daemon/runtime/activation.d.ts +95 -0
  30. package/dist/daemon/runtime/activation.d.ts.map +1 -0
  31. package/dist/daemon/runtime/activation.js +99 -0
  32. package/dist/daemon/runtime/activation.js.map +1 -0
  33. package/dist/daemon/runtime/controller.d.ts +34 -0
  34. package/dist/daemon/runtime/controller.d.ts.map +1 -0
  35. package/dist/daemon/runtime/controller.js +106 -0
  36. package/dist/daemon/runtime/controller.js.map +1 -0
  37. package/dist/daemon/runtime/history-export.d.ts +23 -0
  38. package/dist/daemon/runtime/history-export.d.ts.map +1 -0
  39. package/dist/daemon/runtime/history-export.js +47 -0
  40. package/dist/daemon/runtime/history-export.js.map +1 -0
  41. package/dist/daemon/runtime/index.d.ts +24 -0
  42. package/dist/daemon/runtime/index.d.ts.map +1 -0
  43. package/dist/daemon/runtime/index.js +65 -0
  44. package/dist/daemon/runtime/index.js.map +1 -0
  45. package/dist/daemon/runtime/protocol.d.ts +63 -0
  46. package/dist/daemon/runtime/protocol.d.ts.map +1 -0
  47. package/dist/daemon/runtime/protocol.js +133 -0
  48. package/dist/daemon/runtime/protocol.js.map +1 -0
  49. package/dist/endpoint/addressing/index.d.ts +39 -0
  50. package/dist/endpoint/addressing/index.d.ts.map +1 -0
  51. package/dist/endpoint/addressing/index.js +114 -0
  52. package/dist/endpoint/addressing/index.js.map +1 -0
  53. package/dist/endpoint/engine-dissemination.d.ts +11 -0
  54. package/dist/endpoint/engine-dissemination.d.ts.map +1 -0
  55. package/dist/endpoint/engine-dissemination.js +71 -0
  56. package/dist/endpoint/engine-dissemination.js.map +1 -0
  57. package/dist/endpoint/engine-durability.d.ts +69 -0
  58. package/dist/endpoint/engine-durability.d.ts.map +1 -0
  59. package/dist/endpoint/engine-durability.js +210 -0
  60. package/dist/endpoint/engine-durability.js.map +1 -0
  61. package/dist/endpoint/engine-send.d.ts +50 -0
  62. package/dist/endpoint/engine-send.d.ts.map +1 -0
  63. package/dist/endpoint/engine-send.js +422 -0
  64. package/dist/endpoint/engine-send.js.map +1 -0
  65. package/dist/endpoint/engine-types.d.ts +132 -0
  66. package/dist/endpoint/engine-types.d.ts.map +1 -0
  67. package/dist/endpoint/engine-types.js +13 -0
  68. package/dist/endpoint/engine-types.js.map +1 -0
  69. package/dist/endpoint/engine.d.ts +14 -0
  70. package/dist/endpoint/engine.d.ts.map +1 -0
  71. package/dist/endpoint/engine.js +280 -0
  72. package/dist/endpoint/engine.js.map +1 -0
  73. package/dist/endpoint/protocol/evidence.d.ts +37 -0
  74. package/dist/endpoint/protocol/evidence.d.ts.map +1 -0
  75. package/dist/endpoint/protocol/evidence.js +80 -0
  76. package/dist/endpoint/protocol/evidence.js.map +1 -0
  77. package/dist/endpoint/protocol/index.d.ts +26 -0
  78. package/dist/endpoint/protocol/index.d.ts.map +1 -0
  79. package/dist/endpoint/protocol/index.js +543 -0
  80. package/dist/endpoint/protocol/index.js.map +1 -0
  81. package/dist/endpoint/recovery/barrier.d.ts +23 -0
  82. package/dist/endpoint/recovery/barrier.d.ts.map +1 -0
  83. package/dist/endpoint/recovery/barrier.js +47 -0
  84. package/dist/endpoint/recovery/barrier.js.map +1 -0
  85. package/dist/endpoint/recovery/index.d.ts +29 -0
  86. package/dist/endpoint/recovery/index.d.ts.map +1 -0
  87. package/dist/endpoint/recovery/index.js +489 -0
  88. package/dist/endpoint/recovery/index.js.map +1 -0
  89. package/dist/endpoint/recovery/reanchor/empty.d.ts +22 -0
  90. package/dist/endpoint/recovery/reanchor/empty.d.ts.map +1 -0
  91. package/dist/endpoint/recovery/reanchor/empty.js +163 -0
  92. package/dist/endpoint/recovery/reanchor/empty.js.map +1 -0
  93. package/dist/endpoint/recovery/reanchor/index.d.ts +30 -0
  94. package/dist/endpoint/recovery/reanchor/index.d.ts.map +1 -0
  95. package/dist/endpoint/recovery/reanchor/index.js +479 -0
  96. package/dist/endpoint/recovery/reanchor/index.js.map +1 -0
  97. package/dist/endpoint/recovery/state.d.ts +130 -0
  98. package/dist/endpoint/recovery/state.d.ts.map +1 -0
  99. package/dist/endpoint/recovery/state.js +296 -0
  100. package/dist/endpoint/recovery/state.js.map +1 -0
  101. package/dist/endpoint/recovery/store-evidence.d.ts +17 -0
  102. package/dist/endpoint/recovery/store-evidence.d.ts.map +1 -0
  103. package/dist/endpoint/recovery/store-evidence.js +79 -0
  104. package/dist/endpoint/recovery/store-evidence.js.map +1 -0
  105. package/dist/endpoint/recovery/store.d.ts +56 -0
  106. package/dist/endpoint/recovery/store.d.ts.map +1 -0
  107. package/dist/endpoint/recovery/store.js +499 -0
  108. package/dist/endpoint/recovery/store.js.map +1 -0
  109. package/dist/endpoint/representation-canonical.d.ts +17 -0
  110. package/dist/endpoint/representation-canonical.d.ts.map +1 -0
  111. package/dist/endpoint/representation-canonical.js +48 -0
  112. package/dist/endpoint/representation-canonical.js.map +1 -0
  113. package/dist/endpoint/representation-codec.d.ts +51 -0
  114. package/dist/endpoint/representation-codec.d.ts.map +1 -0
  115. package/dist/endpoint/representation-codec.js +159 -0
  116. package/dist/endpoint/representation-codec.js.map +1 -0
  117. package/dist/endpoint/representation-schemas.d.ts +1831 -0
  118. package/dist/endpoint/representation-schemas.d.ts.map +1 -0
  119. package/dist/endpoint/representation-schemas.js +195 -0
  120. package/dist/endpoint/representation-schemas.js.map +1 -0
  121. package/dist/endpoint/representation-verification.d.ts +79 -0
  122. package/dist/endpoint/representation-verification.d.ts.map +1 -0
  123. package/dist/endpoint/representation-verification.js +420 -0
  124. package/dist/endpoint/representation-verification.js.map +1 -0
  125. package/dist/endpoint/representation.d.ts +6 -0
  126. package/dist/endpoint/representation.d.ts.map +1 -0
  127. package/dist/endpoint/representation.js +8 -0
  128. package/dist/endpoint/representation.js.map +1 -0
  129. package/dist/endpoint/router-worker/index.d.ts +16 -0
  130. package/dist/endpoint/router-worker/index.d.ts.map +1 -0
  131. package/dist/endpoint/router-worker/index.js +547 -0
  132. package/dist/endpoint/router-worker/index.js.map +1 -0
  133. package/dist/endpoint/router-worker/types.d.ts +183 -0
  134. package/dist/endpoint/router-worker/types.d.ts.map +1 -0
  135. package/dist/endpoint/router-worker/types.js +31 -0
  136. package/dist/endpoint/router-worker/types.js.map +1 -0
  137. package/dist/endpoint/store/anchors.d.ts +83 -0
  138. package/dist/endpoint/store/anchors.d.ts.map +1 -0
  139. package/dist/endpoint/store/anchors.js +471 -0
  140. package/dist/endpoint/store/anchors.js.map +1 -0
  141. package/dist/endpoint/store/database/index.d.ts +6 -0
  142. package/dist/endpoint/store/database/index.d.ts.map +1 -0
  143. package/dist/endpoint/store/database/index.js +6 -0
  144. package/dist/endpoint/store/database/index.js.map +1 -0
  145. package/dist/endpoint/store/database/schema.d.ts +44 -0
  146. package/dist/endpoint/store/database/schema.d.ts.map +1 -0
  147. package/dist/endpoint/store/database/schema.js +345 -0
  148. package/dist/endpoint/store/database/schema.js.map +1 -0
  149. package/dist/endpoint/store/database/values.d.ts +119 -0
  150. package/dist/endpoint/store/database/values.d.ts.map +1 -0
  151. package/dist/endpoint/store/database/values.js +194 -0
  152. package/dist/endpoint/store/database/values.js.map +1 -0
  153. package/dist/endpoint/store/deliveries.d.ts +38 -0
  154. package/dist/endpoint/store/deliveries.d.ts.map +1 -0
  155. package/dist/endpoint/store/deliveries.js +124 -0
  156. package/dist/endpoint/store/deliveries.js.map +1 -0
  157. package/dist/endpoint/store/dissemination.d.ts +27 -0
  158. package/dist/endpoint/store/dissemination.d.ts.map +1 -0
  159. package/dist/endpoint/store/dissemination.js +139 -0
  160. package/dist/endpoint/store/dissemination.js.map +1 -0
  161. package/dist/endpoint/store/index.d.ts +15 -0
  162. package/dist/endpoint/store/index.d.ts.map +1 -0
  163. package/dist/endpoint/store/index.js +76 -0
  164. package/dist/endpoint/store/index.js.map +1 -0
  165. package/dist/endpoint/store/management.d.ts +42 -0
  166. package/dist/endpoint/store/management.d.ts.map +1 -0
  167. package/dist/endpoint/store/management.js +259 -0
  168. package/dist/endpoint/store/management.js.map +1 -0
  169. package/dist/endpoint/store/outbound.d.ts +62 -0
  170. package/dist/endpoint/store/outbound.d.ts.map +1 -0
  171. package/dist/endpoint/store/outbound.js +278 -0
  172. package/dist/endpoint/store/outbound.js.map +1 -0
  173. package/dist/endpoint/store/records.d.ts +56 -0
  174. package/dist/endpoint/store/records.d.ts.map +1 -0
  175. package/dist/endpoint/store/records.js +352 -0
  176. package/dist/endpoint/store/records.js.map +1 -0
  177. package/dist/endpoint/store/rows/index.d.ts +138 -0
  178. package/dist/endpoint/store/rows/index.d.ts.map +1 -0
  179. package/dist/endpoint/store/rows/index.js +307 -0
  180. package/dist/endpoint/store/rows/index.js.map +1 -0
  181. package/dist/endpoint/store/types.d.ts +223 -0
  182. package/dist/endpoint/store/types.d.ts.map +1 -0
  183. package/dist/endpoint/store/types.js +15 -0
  184. package/dist/endpoint/store/types.js.map +1 -0
  185. package/dist/endpoint/store.d.ts +10 -0
  186. package/dist/endpoint/store.d.ts.map +1 -0
  187. package/dist/endpoint/store.js +6 -0
  188. package/dist/endpoint/store.js.map +1 -0
  189. package/dist/harness-mcp-contract.d.ts +101 -0
  190. package/dist/harness-mcp-contract.d.ts.map +1 -0
  191. package/dist/harness-mcp-contract.js +61 -0
  192. package/dist/harness-mcp-contract.js.map +1 -0
  193. package/dist/{harness-mcp-server.d.ts → harness-mcp-http.d.ts} +9 -8
  194. package/dist/harness-mcp-http.d.ts.map +1 -0
  195. package/dist/{harness-mcp-server.js → harness-mcp-http.js} +38 -60
  196. package/dist/harness-mcp-http.js.map +1 -0
  197. package/dist/harness-mcp-subscription.d.ts +12 -7
  198. package/dist/harness-mcp-subscription.d.ts.map +1 -1
  199. package/dist/harness-mcp-subscription.js +113 -100
  200. package/dist/harness-mcp-subscription.js.map +1 -1
  201. package/dist/harness-mcp-wire.d.ts +24 -49
  202. package/dist/harness-mcp-wire.d.ts.map +1 -1
  203. package/dist/harness-mcp-wire.js +381 -124
  204. package/dist/harness-mcp-wire.js.map +1 -1
  205. package/dist/index.d.ts +4 -10
  206. package/dist/index.d.ts.map +1 -1
  207. package/dist/index.js +6 -10
  208. package/dist/index.js.map +1 -1
  209. package/dist/management-runtime.d.ts +217 -0
  210. package/dist/management-runtime.d.ts.map +1 -0
  211. package/dist/management-runtime.js +127 -0
  212. package/dist/management-runtime.js.map +1 -0
  213. package/dist/server.d.ts +16 -0
  214. package/dist/server.d.ts.map +1 -0
  215. package/dist/server.js +46 -0
  216. package/dist/server.js.map +1 -0
  217. package/dist/server.types-check.d.ts +23 -0
  218. package/dist/server.types-check.d.ts.map +1 -0
  219. package/dist/server.types-check.js +7 -0
  220. package/dist/server.types-check.js.map +1 -0
  221. package/package.json +24 -52
  222. package/dist/agent-client.d.ts +0 -5
  223. package/dist/agent-client.d.ts.map +0 -1
  224. package/dist/agent-client.js +0 -3
  225. package/dist/agent-client.js.map +0 -1
  226. package/dist/auth.d.ts +0 -37
  227. package/dist/auth.d.ts.map +0 -1
  228. package/dist/auth.js +0 -79
  229. package/dist/auth.js.map +0 -1
  230. package/dist/bounded-map.d.ts +0 -32
  231. package/dist/bounded-map.d.ts.map +0 -1
  232. package/dist/bounded-map.js +0 -79
  233. package/dist/bounded-map.js.map +0 -1
  234. package/dist/channel-base/format-cross-conv.d.ts +0 -43
  235. package/dist/channel-base/format-cross-conv.d.ts.map +0 -1
  236. package/dist/channel-base/format-cross-conv.js +0 -65
  237. package/dist/channel-base/format-cross-conv.js.map +0 -1
  238. package/dist/channel-base/format-group-block.d.ts +0 -48
  239. package/dist/channel-base/format-group-block.d.ts.map +0 -1
  240. package/dist/channel-base/format-group-block.js +0 -62
  241. package/dist/channel-base/format-group-block.js.map +0 -1
  242. package/dist/channel-base/index.d.ts +0 -12
  243. package/dist/channel-base/index.d.ts.map +0 -1
  244. package/dist/channel-base/index.js +0 -16
  245. package/dist/channel-base/index.js.map +0 -1
  246. package/dist/channel-core-enrichment.d.ts +0 -38
  247. package/dist/channel-core-enrichment.d.ts.map +0 -1
  248. package/dist/channel-core-enrichment.js +0 -217
  249. package/dist/channel-core-enrichment.js.map +0 -1
  250. package/dist/channel-core-test-support.d.ts +0 -75
  251. package/dist/channel-core-test-support.d.ts.map +0 -1
  252. package/dist/channel-core-test-support.js +0 -74
  253. package/dist/channel-core-test-support.js.map +0 -1
  254. package/dist/channel-core.d.ts +0 -306
  255. package/dist/channel-core.d.ts.map +0 -1
  256. package/dist/channel-core.js +0 -365
  257. package/dist/channel-core.js.map +0 -1
  258. package/dist/config.d.ts +0 -33
  259. package/dist/config.d.ts.map +0 -1
  260. package/dist/config.js +0 -51
  261. package/dist/config.js.map +0 -1
  262. package/dist/config.test-utils.d.ts +0 -24
  263. package/dist/config.test-utils.d.ts.map +0 -1
  264. package/dist/config.test-utils.js +0 -57
  265. package/dist/config.test-utils.js.map +0 -1
  266. package/dist/harness/client-runtime.d.ts +0 -31
  267. package/dist/harness/client-runtime.d.ts.map +0 -1
  268. package/dist/harness/client-runtime.js +0 -121
  269. package/dist/harness/client-runtime.js.map +0 -1
  270. package/dist/harness/index.d.ts +0 -5
  271. package/dist/harness/index.d.ts.map +0 -1
  272. package/dist/harness/index.js +0 -5
  273. package/dist/harness/index.js.map +0 -1
  274. package/dist/harness/runtime.d.ts +0 -301
  275. package/dist/harness/runtime.d.ts.map +0 -1
  276. package/dist/harness/runtime.js +0 -165
  277. package/dist/harness/runtime.js.map +0 -1
  278. package/dist/harness-client.d.ts +0 -47
  279. package/dist/harness-client.d.ts.map +0 -1
  280. package/dist/harness-client.js +0 -76
  281. package/dist/harness-client.js.map +0 -1
  282. package/dist/harness-context-projection.d.ts +0 -35
  283. package/dist/harness-context-projection.d.ts.map +0 -1
  284. package/dist/harness-context-projection.js +0 -123
  285. package/dist/harness-context-projection.js.map +0 -1
  286. package/dist/harness-mcp-server.d.ts.map +0 -1
  287. package/dist/harness-mcp-server.js.map +0 -1
  288. package/dist/local-paths.d.ts +0 -11
  289. package/dist/local-paths.d.ts.map +0 -1
  290. package/dist/local-paths.js +0 -21
  291. package/dist/local-paths.js.map +0 -1
  292. package/dist/message-rendering.d.ts +0 -4
  293. package/dist/message-rendering.d.ts.map +0 -1
  294. package/dist/message-rendering.js +0 -8
  295. package/dist/message-rendering.js.map +0 -1
  296. package/dist/moltzapd-catalog.d.ts +0 -35
  297. package/dist/moltzapd-catalog.d.ts.map +0 -1
  298. package/dist/moltzapd-catalog.js +0 -117
  299. package/dist/moltzapd-catalog.js.map +0 -1
  300. package/dist/moltzapd-child-ipc.d.ts +0 -26
  301. package/dist/moltzapd-child-ipc.d.ts.map +0 -1
  302. package/dist/moltzapd-child-ipc.js +0 -31
  303. package/dist/moltzapd-child-ipc.js.map +0 -1
  304. package/dist/moltzapd-child.d.ts +0 -55
  305. package/dist/moltzapd-child.d.ts.map +0 -1
  306. package/dist/moltzapd-child.js +0 -225
  307. package/dist/moltzapd-child.js.map +0 -1
  308. package/dist/moltzapd-main.d.ts +0 -3
  309. package/dist/moltzapd-main.d.ts.map +0 -1
  310. package/dist/moltzapd-main.js +0 -18
  311. package/dist/moltzapd-main.js.map +0 -1
  312. package/dist/moltzapd-registration.d.ts +0 -40
  313. package/dist/moltzapd-registration.d.ts.map +0 -1
  314. package/dist/moltzapd-registration.js +0 -59
  315. package/dist/moltzapd-registration.js.map +0 -1
  316. package/dist/moltzapd.d.ts +0 -85
  317. package/dist/moltzapd.d.ts.map +0 -1
  318. package/dist/moltzapd.js +0 -150
  319. package/dist/moltzapd.js.map +0 -1
  320. package/dist/notification/__tests__/subscribe-signatures.types-check.d.ts +0 -53
  321. package/dist/notification/__tests__/subscribe-signatures.types-check.d.ts.map +0 -1
  322. package/dist/notification/__tests__/subscribe-signatures.types-check.js +0 -29
  323. package/dist/notification/__tests__/subscribe-signatures.types-check.js.map +0 -1
  324. package/dist/notification/errors.d.ts +0 -41
  325. package/dist/notification/errors.d.ts.map +0 -1
  326. package/dist/notification/errors.js +0 -24
  327. package/dist/notification/errors.js.map +0 -1
  328. package/dist/notification/index.d.ts +0 -6
  329. package/dist/notification/index.d.ts.map +0 -1
  330. package/dist/notification/index.js +0 -6
  331. package/dist/notification/index.js.map +0 -1
  332. package/dist/notification/stream.d.ts +0 -75
  333. package/dist/notification/stream.d.ts.map +0 -1
  334. package/dist/notification/stream.js +0 -30
  335. package/dist/notification/stream.js.map +0 -1
  336. package/dist/notification/trace.d.ts +0 -10
  337. package/dist/notification/trace.d.ts.map +0 -1
  338. package/dist/notification/trace.js +0 -34
  339. package/dist/notification/trace.js.map +0 -1
  340. package/dist/pagination.d.ts +0 -52
  341. package/dist/pagination.d.ts.map +0 -1
  342. package/dist/pagination.js +0 -51
  343. package/dist/pagination.js.map +0 -1
  344. package/dist/presentation/index.d.ts +0 -3
  345. package/dist/presentation/index.d.ts.map +0 -1
  346. package/dist/presentation/index.js +0 -3
  347. package/dist/presentation/index.js.map +0 -1
  348. package/dist/presentation/state.d.ts +0 -77
  349. package/dist/presentation/state.d.ts.map +0 -1
  350. package/dist/presentation/state.js +0 -211
  351. package/dist/presentation/state.js.map +0 -1
  352. package/dist/profile.d.ts +0 -106
  353. package/dist/profile.d.ts.map +0 -1
  354. package/dist/profile.js +0 -171
  355. package/dist/profile.js.map +0 -1
  356. package/dist/service-event-trace.d.ts +0 -15
  357. package/dist/service-event-trace.d.ts.map +0 -1
  358. package/dist/service-event-trace.js +0 -35
  359. package/dist/service-event-trace.js.map +0 -1
  360. package/dist/service.d.ts +0 -228
  361. package/dist/service.d.ts.map +0 -1
  362. package/dist/service.js +0 -485
  363. package/dist/service.js.map +0 -1
  364. package/dist/test-utils/channel-service-fixture.d.ts +0 -53
  365. package/dist/test-utils/channel-service-fixture.d.ts.map +0 -1
  366. package/dist/test-utils/channel-service-fixture.js +0 -178
  367. package/dist/test-utils/channel-service-fixture.js.map +0 -1
  368. package/dist/test-utils/fake-service.d.ts +0 -82
  369. package/dist/test-utils/fake-service.d.ts.map +0 -1
  370. package/dist/test-utils/fake-service.js +0 -108
  371. package/dist/test-utils/fake-service.js.map +0 -1
  372. package/dist/test-utils/harness.d.ts +0 -27
  373. package/dist/test-utils/harness.d.ts.map +0 -1
  374. package/dist/test-utils/harness.js +0 -33
  375. package/dist/test-utils/harness.js.map +0 -1
  376. package/dist/test-utils/ids.d.ts +0 -21
  377. package/dist/test-utils/ids.d.ts.map +0 -1
  378. package/dist/test-utils/ids.js +0 -68
  379. package/dist/test-utils/ids.js.map +0 -1
  380. package/dist/test-utils/index.d.ts +0 -56
  381. package/dist/test-utils/index.d.ts.map +0 -1
  382. package/dist/test-utils/index.js +0 -67
  383. package/dist/test-utils/index.js.map +0 -1
  384. package/dist/test-utils/process/reserve-port.d.ts +0 -20
  385. package/dist/test-utils/process/reserve-port.d.ts.map +0 -1
  386. package/dist/test-utils/process/reserve-port.js +0 -41
  387. package/dist/test-utils/process/reserve-port.js.map +0 -1
  388. package/dist/test-utils/standalone-provisioning.d.ts +0 -22
  389. package/dist/test-utils/standalone-provisioning.d.ts.map +0 -1
  390. package/dist/test-utils/standalone-provisioning.js +0 -17
  391. package/dist/test-utils/standalone-provisioning.js.map +0 -1
  392. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,101 @@
1
+ /** @file Closed private representation of the loopback HarnessEndpoint MCP wire. */
2
+ import { type Effect, JSONSchema, type ParseResult, Schema } from "effect";
3
+ /** MCP capability carrying addressed message delivery. */
4
+ export declare const HARNESS_EVENTS_EXTENSION = "xyz.moltzap/events-v2";
5
+ /** Subscription filter requesting durable addressed messages. */
6
+ export declare const HARNESS_MESSAGE_READY_FILTER = "xyz.moltzap/messageReady";
7
+ /** Notification method carrying one pending addressed message. */
8
+ export declare const HARNESS_MESSAGE_READY_NOTIFICATION = "notifications/xyz.moltzap/message_ready";
9
+ /** Adapter operation for an explicit addressed send. */
10
+ export declare const HARNESS_SEND_TOOL = "send_message";
11
+ /** Adapter operation acknowledging successful stock host callback completion. */
12
+ export declare const HARNESS_ACKNOWLEDGE_DELIVERY_TOOL = "acknowledge_delivery";
13
+ declare const harnessEventsExtensionDeclarationSchema: Schema.Record$<typeof Schema.String, typeof Schema.Never>;
14
+ declare const harnessAcknowledgeDeliveryRequestSchema: Schema.Struct<{
15
+ deliveryToken: Schema.brand<Schema.filter<typeof Schema.String>, "DeliveryToken">;
16
+ }>;
17
+ declare const harnessEmptyResultSchema: Schema.Record$<typeof Schema.String, typeof Schema.Never>;
18
+ declare const harnessMessageReadyEventSchema: Schema.Struct<{
19
+ deliveryToken: Schema.brand<Schema.filter<typeof Schema.String>, "DeliveryToken">;
20
+ message: Schema.Union<[Schema.filter<Schema.Struct<{
21
+ kind: Schema.Literal<["direct"]>;
22
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
23
+ address: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
24
+ sender: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
25
+ content: Schema.refine<readonly [{
26
+ readonly type: "text";
27
+ readonly text: string;
28
+ } | {
29
+ readonly type: "data";
30
+ readonly value: import("./contract.js").JsonValue;
31
+ }, ...({
32
+ readonly type: "text";
33
+ readonly text: string;
34
+ } | {
35
+ readonly type: "data";
36
+ readonly value: import("./contract.js").JsonValue;
37
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
38
+ type: Schema.Literal<["text"]>;
39
+ text: Schema.filter<typeof Schema.String>;
40
+ }>, Schema.Struct<{
41
+ type: Schema.Literal<["data"]>;
42
+ value: Schema.Schema<import("./contract.js").JsonValue, import("./contract.js").JsonValue, never>;
43
+ }>]>>>;
44
+ }>>, Schema.filter<Schema.Struct<{
45
+ kind: Schema.Literal<["group"]>;
46
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
47
+ address: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "GroupAddress">;
48
+ sender: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
49
+ members: Schema.filter<Schema.TupleType<readonly [Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">, Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">, Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">], [Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">]>>;
50
+ content: Schema.refine<readonly [{
51
+ readonly type: "text";
52
+ readonly text: string;
53
+ } | {
54
+ readonly type: "data";
55
+ readonly value: import("./contract.js").JsonValue;
56
+ }, ...({
57
+ readonly type: "text";
58
+ readonly text: string;
59
+ } | {
60
+ readonly type: "data";
61
+ readonly value: import("./contract.js").JsonValue;
62
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
63
+ type: Schema.Literal<["text"]>;
64
+ text: Schema.filter<typeof Schema.String>;
65
+ }>, Schema.Struct<{
66
+ type: Schema.Literal<["data"]>;
67
+ value: Schema.Schema<import("./contract.js").JsonValue, import("./contract.js").JsonValue, never>;
68
+ }>]>>>;
69
+ }>>]>;
70
+ }>;
71
+ type HarnessEventsExtensionDeclaration = typeof harnessEventsExtensionDeclarationSchema.Type;
72
+ /** Decoded delivery acknowledgment arguments owned by the daemon. */
73
+ export type HarnessAcknowledgeDeliveryRequest = typeof harnessAcknowledgeDeliveryRequestSchema.Type;
74
+ /** Decoded empty adapter-operation result. */
75
+ export type HarnessEmptyResult = typeof harnessEmptyResultSchema.Type;
76
+ /** One stable pending delivery emitted by the daemon. */
77
+ export type HarnessMessageReadyEvent = typeof harnessMessageReadyEventSchema.Type;
78
+ /** JSON Schema advertised for the delivery acknowledgment operation. */
79
+ export declare const harnessAcknowledgeDeliveryRequestJsonSchema: JSONSchema.JsonSchema7Root;
80
+ /** JSON Schema advertised for empty adapter-operation results. */
81
+ export declare const harnessEmptyResultJsonSchema: JSONSchema.JsonSchema7Root;
82
+ /**
83
+ * Decode the exact events-v2 capability declaration.
84
+ * @param value Untrusted capability payload.
85
+ * @returns The validated empty declaration.
86
+ */
87
+ export declare function decodeHarnessEventsExtensionDeclaration(value: unknown): Effect.Effect<HarnessEventsExtensionDeclaration, ParseResult.ParseError>;
88
+ /**
89
+ * Decode one exact delivery acknowledgment request.
90
+ * @param value Untrusted tool arguments.
91
+ * @returns The validated request.
92
+ */
93
+ export declare function decodeHarnessAcknowledgeDeliveryRequest(value: unknown): Effect.Effect<HarnessAcknowledgeDeliveryRequest, ParseResult.ParseError>;
94
+ /**
95
+ * Decode one exact pending-delivery notification payload.
96
+ * @param value Untrusted notification parameters.
97
+ * @returns The validated pending delivery.
98
+ */
99
+ export declare function decodeHarnessMessageReadyEvent(value: unknown): Effect.Effect<HarnessMessageReadyEvent, ParseResult.ParseError>;
100
+ export {};
101
+ //# sourceMappingURL=harness-mcp-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-mcp-contract.d.ts","sourceRoot":"","sources":["../src/harness-mcp-contract.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EACL,KAAK,MAAM,EACX,UAAU,EACV,KAAK,WAAW,EAChB,MAAM,EAEP,MAAM,QAAQ,CAAC;AAIhB,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAEhE,iEAAiE;AACjE,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AAEvE,kEAAkE;AAClE,eAAO,MAAM,kCAAkC,4CACJ,CAAC;AAE5C,wDAAwD;AACxD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAEhD,iFAAiF;AACjF,eAAO,MAAM,iCAAiC,yBAAyB,CAAC;AAexE,QAAA,MAAM,uCAAuC,2DAAmB,CAAC;AACjE,QAAA,MAAM,uCAAuC;;EAE3C,CAAC;AACH,QAAA,MAAM,wBAAwB,2DAAmB,CAAC;AAClD,QAAA,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGlC,CAAC;AAEH,KAAK,iCAAiC,GACpC,OAAO,uCAAuC,CAAC,IAAI,CAAC;AAEtD,qEAAqE;AACrE,MAAM,MAAM,iCAAiC,GAC3C,OAAO,uCAAuC,CAAC,IAAI,CAAC;AAEtD,8CAA8C;AAC9C,MAAM,MAAM,kBAAkB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAC;AAEtE,yDAAyD;AACzD,MAAM,MAAM,wBAAwB,GAClC,OAAO,8BAA8B,CAAC,IAAI,CAAC;AAE7C,wEAAwE;AACxE,eAAO,MAAM,2CAA2C,4BAGvD,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,4BAA4B,4BAGxC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,KAAK,EAAE,OAAO,GACb,MAAM,CAAC,MAAM,CAAC,iCAAiC,EAAE,WAAW,CAAC,UAAU,CAAC,CAK1E;AAED;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,KAAK,EAAE,OAAO,GACb,MAAM,CAAC,MAAM,CAAC,iCAAiC,EAAE,WAAW,CAAC,UAAU,CAAC,CAK1E;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,WAAW,CAAC,UAAU,CAAC,CAEjE"}
@@ -0,0 +1,61 @@
1
+ /** @file Closed private representation of the loopback HarnessEndpoint MCP wire. */
2
+ import { JSONSchema, Schema, } from "effect";
3
+ import { InboundMessage } from "./contract.js";
4
+ import { DeliveryToken } from "./endpoint/store/types.js";
5
+ /** MCP capability carrying addressed message delivery. */
6
+ export const HARNESS_EVENTS_EXTENSION = "xyz.moltzap/events-v2";
7
+ /** Subscription filter requesting durable addressed messages. */
8
+ export const HARNESS_MESSAGE_READY_FILTER = "xyz.moltzap/messageReady";
9
+ /** Notification method carrying one pending addressed message. */
10
+ export const HARNESS_MESSAGE_READY_NOTIFICATION = "notifications/xyz.moltzap/message_ready";
11
+ /** Adapter operation for an explicit addressed send. */
12
+ export const HARNESS_SEND_TOOL = "send_message";
13
+ /** Adapter operation acknowledging successful stock host callback completion. */
14
+ export const HARNESS_ACKNOWLEDGE_DELIVERY_TOOL = "acknowledge_delivery";
15
+ const exact = {
16
+ exact: true,
17
+ onExcessProperty: "error",
18
+ };
19
+ const exactStruct = (fields) => Schema.Struct(fields).annotations({ parseOptions: exact });
20
+ const exactEmptyObject = Schema.Record({
21
+ key: Schema.String,
22
+ value: Schema.Never,
23
+ }).annotations({ parseOptions: exact });
24
+ const harnessEventsExtensionDeclarationSchema = exactEmptyObject;
25
+ const harnessAcknowledgeDeliveryRequestSchema = exactStruct({
26
+ deliveryToken: DeliveryToken,
27
+ });
28
+ const harnessEmptyResultSchema = exactEmptyObject;
29
+ const harnessMessageReadyEventSchema = exactStruct({
30
+ deliveryToken: DeliveryToken,
31
+ message: InboundMessage,
32
+ });
33
+ /** JSON Schema advertised for the delivery acknowledgment operation. */
34
+ export const harnessAcknowledgeDeliveryRequestJsonSchema = JSONSchema.make(harnessAcknowledgeDeliveryRequestSchema, { target: "jsonSchema2020-12" });
35
+ /** JSON Schema advertised for empty adapter-operation results. */
36
+ export const harnessEmptyResultJsonSchema = JSONSchema.make(harnessEmptyResultSchema, { target: "jsonSchema2020-12" });
37
+ /**
38
+ * Decode the exact events-v2 capability declaration.
39
+ * @param value Untrusted capability payload.
40
+ * @returns The validated empty declaration.
41
+ */
42
+ export function decodeHarnessEventsExtensionDeclaration(value) {
43
+ return Schema.decodeUnknown(harnessEventsExtensionDeclarationSchema)(value, exact);
44
+ }
45
+ /**
46
+ * Decode one exact delivery acknowledgment request.
47
+ * @param value Untrusted tool arguments.
48
+ * @returns The validated request.
49
+ */
50
+ export function decodeHarnessAcknowledgeDeliveryRequest(value) {
51
+ return Schema.decodeUnknown(harnessAcknowledgeDeliveryRequestSchema)(value, exact);
52
+ }
53
+ /**
54
+ * Decode one exact pending-delivery notification payload.
55
+ * @param value Untrusted notification parameters.
56
+ * @returns The validated pending delivery.
57
+ */
58
+ export function decodeHarnessMessageReadyEvent(value) {
59
+ return Schema.decodeUnknown(harnessMessageReadyEventSchema)(value, exact);
60
+ }
61
+ //# sourceMappingURL=harness-mcp-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-mcp-contract.js","sourceRoot":"","sources":["../src/harness-mcp-contract.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EAEL,UAAU,EAEV,MAAM,GAEP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,0DAA0D;AAC1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;AAEhE,iEAAiE;AACjE,MAAM,CAAC,MAAM,4BAA4B,GAAG,0BAA0B,CAAC;AAEvE,kEAAkE;AAClE,MAAM,CAAC,MAAM,kCAAkC,GAC7C,yCAAyC,CAAC;AAE5C,wDAAwD;AACxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAEhD,iFAAiF;AACjF,MAAM,CAAC,MAAM,iCAAiC,GAAG,sBAAsB,CAAC;AAExE,MAAM,KAAK,GAA2B;IACpC,KAAK,EAAE,IAAI;IACX,gBAAgB,EAAE,OAAO;CAC1B,CAAC;AAEF,MAAM,WAAW,GAAG,CAAsC,MAAc,EAAE,EAAE,CAC1E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAE7D,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,KAAK,EAAE,MAAM,CAAC,KAAK;CACpB,CAAC,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAExC,MAAM,uCAAuC,GAAG,gBAAgB,CAAC;AACjE,MAAM,uCAAuC,GAAG,WAAW,CAAC;IAC1D,aAAa,EAAE,aAAa;CAC7B,CAAC,CAAC;AACH,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAClD,MAAM,8BAA8B,GAAG,WAAW,CAAC;IACjD,aAAa,EAAE,aAAa;IAC5B,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC;AAgBH,wEAAwE;AACxE,MAAM,CAAC,MAAM,2CAA2C,GAAG,UAAU,CAAC,IAAI,CACxE,uCAAuC,EACvC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAChC,CAAC;AAEF,kEAAkE;AAClE,MAAM,CAAC,MAAM,4BAA4B,GAAG,UAAU,CAAC,IAAI,CACzD,wBAAwB,EACxB,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAChC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,uCAAuC,CACrD,KAAc;IAEd,OAAO,MAAM,CAAC,aAAa,CAAC,uCAAuC,CAAC,CAClE,KAAK,EACL,KAAK,CACN,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uCAAuC,CACrD,KAAc;IAEd,OAAO,MAAM,CAAC,aAAa,CAAC,uCAAuC,CAAC,CAClE,KAAK,EACL,KAAK,CACN,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAc;IAEd,OAAO,MAAM,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5E,CAAC"}
@@ -1,18 +1,19 @@
1
+ /**
2
+ * @file Hosts one official MCP handler on a guarded loopback Node listener and
3
+ * binds request draining and connection teardown to the enclosing scope.
4
+ */
1
5
  import type { McpHttpHandler } from "@modelcontextprotocol/server";
2
- import { type Server as NodeHttpServer } from "node:http";
3
6
  import { Effect, type Scope } from "effect";
7
+ import { type Server as NodeHttpServer } from "node:http";
4
8
  interface HarnessMcpHttpServerOptions {
5
9
  readonly port: number;
6
10
  readonly handler: McpHttpHandler;
7
11
  }
8
12
  /**
9
- * Acquires the guarded loopback HTTP server for one explicitly supplied port.
10
- * The caller owns port selection and keeps the returned server alive by
11
- * retaining the enclosing Scope.
12
- *
13
- * @param options Existing MCP handlers and caller-resolved listener port.
14
- * @returns The listening Node HTTP server.
13
+ * Acquire one guarded loopback `/mcp` server on the explicit configured port.
14
+ * @param options Official MCP handler and nonzero listener port.
15
+ * @returns The live Node server bound to the caller's scope.
15
16
  */
16
17
  export declare const acquireHarnessMcpHttpServer: (options: HarnessMcpHttpServerOptions) => Effect.Effect<NodeHttpServer, Error, Scope.Scope>;
17
18
  export {};
18
- //# sourceMappingURL=harness-mcp-server.d.ts.map
19
+ //# sourceMappingURL=harness-mcp-http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-mcp-http.d.ts","sourceRoot":"","sources":["../src/harness-mcp-http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AASnE,OAAO,EAGL,MAAM,EAIN,KAAK,KAAK,EACX,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAEL,KAAK,MAAM,IAAI,cAAc,EAE9B,MAAM,WAAW,CAAC;AAOnB,UAAU,2BAA2B;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AA0ND;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,YAC7B,2BAA2B,KACnC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CASF,CAAC"}
@@ -1,12 +1,14 @@
1
+ /**
2
+ * @file Hosts one official MCP handler on a guarded loopback Node listener and
3
+ * binds request draining and connection teardown to the enclosing scope.
4
+ */
1
5
  import { localhostHostValidation, localhostOriginValidation, toNodeHandler, } from "@modelcontextprotocol/node";
2
- // eslint-disable-next-line agent-code-guard/prefer-effect-platform -- The official MCP Node adapter supplies a Node RequestListener, so this package-private process boundary must host that exact interface.
3
- import { createServer, } from "node:http";
4
6
  import { Deferred, Duration, Effect, Exit, Fiber, Option, } from "effect";
7
+ // eslint-disable-next-line agent-code-guard/prefer-effect-platform -- The official MCP Node adapter supplies a Node RequestListener, so this process edge hosts that exact interface.
8
+ import { createServer, } from "node:http";
5
9
  const HARNESS_MCP_PATH = "/mcp";
6
10
  const POST_METHOD = "POST";
7
11
  const LOOPBACK_HOST = "127.0.0.1";
8
- // Loopback readers normally drain immediately; one second tolerates scheduler
9
- // delay without allowing a stopped reader to retain the daemon lifetime.
10
12
  const RESPONSE_DRAIN_GRACE_PERIOD = Duration.seconds(1);
11
13
  const respond = (status, body, response, headers = {}) => {
12
14
  response.writeHead(status, {
@@ -20,32 +22,34 @@ const makeResponseTracker = () => {
20
22
  const responseWaiters = new Set();
21
23
  const finish = (response) => {
22
24
  inFlight.delete(response);
23
- if (inFlight.size === 0) {
24
- for (const resume of responseWaiters) {
25
- resume();
26
- }
27
- responseWaiters.clear();
25
+ if (inFlight.size !== 0) {
26
+ return;
27
+ }
28
+ for (const resume of responseWaiters) {
29
+ resume();
28
30
  }
31
+ responseWaiters.clear();
29
32
  };
30
33
  return {
31
34
  track: (response, nodeResponse) => {
32
35
  inFlight.add(response);
33
36
  Effect.runFork(Effect.tryPromise({
34
37
  try: () => response,
35
- catch: (error) => error,
36
- }).pipe(Effect.catchAll((error) => Effect.sync(() => {
37
- nodeResponse.destroy(error instanceof Error ? error : undefined);
38
+ catch: (cause) => cause,
39
+ }).pipe(Effect.catchAll((cause) => Effect.sync(() => {
40
+ nodeResponse.destroy(cause instanceof Error ? cause : undefined);
38
41
  })), Effect.ensuring(Effect.sync(() => {
39
42
  finish(response);
40
43
  }))));
41
44
  },
45
+ // #ignore-sloppy-code-next-line[async-keyword]: This is the Effect callback constructor, not JavaScript asynchronous syntax.
42
46
  waitForResponses: Effect.async((resume) => {
43
47
  if (inFlight.size === 0) {
44
- resume(Effect.succeed(undefined));
48
+ resume(Effect.void);
45
49
  return;
46
50
  }
47
51
  const done = () => {
48
- resume(Effect.succeed(undefined));
52
+ resume(Effect.void);
49
53
  };
50
54
  responseWaiters.add(done);
51
55
  return Effect.sync(() => {
@@ -54,14 +58,6 @@ const makeResponseTracker = () => {
54
58
  }),
55
59
  };
56
60
  };
57
- /**
58
- * Routes the daemon's loopback MCP surface through one Node listener. Host and
59
- * path are fixed: every profile slot is reachable at the same `/mcp` URL
60
- * whether or not it has committed an identity.
61
- *
62
- * @param handler Official SDK handler for the state-gated catalog.
63
- * @returns A guarded Node request listener for that handler.
64
- */
65
61
  const makeHarnessMcpRequestListener = (handler) => {
66
62
  const validateHost = localhostHostValidation();
67
63
  const validateOrigin = localhostOriginValidation();
@@ -83,18 +79,13 @@ const makeHarnessMcpRequestListener = (handler) => {
83
79
  }
84
80
  responses.track(nodeHandler(request, response), response);
85
81
  };
86
- return {
87
- listener,
88
- waitForResponses: responses.waitForResponses,
89
- };
82
+ return { listener, waitForResponses: responses.waitForResponses };
90
83
  };
91
84
  const trackConnections = (server) => {
92
85
  const sockets = new Set();
93
86
  server.on("connection", (socket) => {
94
87
  sockets.add(socket);
95
- socket.once("close", () => {
96
- sockets.delete(socket);
97
- });
88
+ socket.once("close", () => sockets.delete(socket));
98
89
  });
99
90
  return () => {
100
91
  for (const socket of sockets) {
@@ -114,23 +105,25 @@ const listen = (options) => Effect.async((resume) => {
114
105
  server.listen(options.port, LOOPBACK_HOST, () => {
115
106
  server.off("error", onError);
116
107
  resume(Effect.succeed({
117
- destroyConnections,
118
108
  server,
109
+ destroyConnections,
119
110
  waitForResponses: requests.waitForResponses,
120
111
  }));
121
112
  });
113
+ // #ignore-sloppy-code-next-line[async-keyword]: This is the Effect callback constructor, not JavaScript asynchronous syntax.
122
114
  return Effect.async((cancelResume) => {
123
115
  server.off("error", onError);
124
116
  const onClose = () => {
125
- cancelResume(Effect.succeed(undefined));
117
+ cancelResume(Effect.void);
126
118
  };
127
119
  server.once("close", onClose);
128
120
  try {
129
121
  server.close();
130
122
  }
131
- catch (error) {
123
+ catch (cause) {
132
124
  server.off("close", onClose);
133
- cancelResume(Effect.logWarning("Harness MCP startup cancellation failed").pipe(Effect.annotateLogs({ error: String(error) }), Effect.as(undefined)));
125
+ Effect.runSync(Effect.logWarning("MCP startup cancellation failed", cause));
126
+ cancelResume(Effect.void);
134
127
  }
135
128
  });
136
129
  });
@@ -141,49 +134,34 @@ const beginClose = (server) => Effect.gen(function* () {
141
134
  Effect.runSync(Deferred.succeed(completion, error));
142
135
  });
143
136
  });
144
- return Deferred.await(completion).pipe(Effect.flatMap((error) => error === undefined
145
- ? Effect.succeed(undefined)
146
- : Effect.logWarning("Harness MCP HTTP server close failed", error).pipe(Effect.as(undefined))));
137
+ return Deferred.await(completion).pipe(Effect.flatMap((error) => error === undefined ? Effect.void : Effect.logWarning(error)));
147
138
  });
148
139
  const closeHandler = (handler) => Effect.tryPromise({
149
140
  try: () => handler.close(),
150
- catch: (error) => error,
151
- }).pipe(Effect.catchAll((error) => Effect.logWarning("Harness MCP handler close failed").pipe(Effect.annotateLogs({ error: String(error) }))), Effect.asVoid);
152
- const closeHandlers = (options) => closeHandler(options.handler);
141
+ catch: (cause) => cause,
142
+ }).pipe(Effect.ignore);
153
143
  const release = (running, options) => Effect.gen(function* () {
154
144
  const closeCompletion = yield* beginClose(running.server);
155
- // Handler closure finishes the Web stream before the Node adapter drains
156
- // it. A local client that stops reading must not retain the daemon scope,
157
- // so graceful draining is bounded before active connections are closed.
158
- const gracefulClose = yield* Effect.fork(Effect.all([closeHandlers(options), running.waitForResponses], {
145
+ const gracefulClose = yield* Effect.fork(Effect.all([closeHandler(options.handler), running.waitForResponses], {
159
146
  concurrency: 2,
160
147
  discard: true,
161
148
  }));
162
- // acquireRelease finalizers are uninterruptible. Only this observation is
163
- // interruptible so the grace timer can win; the close fiber remains owned
164
- // here and is joined after any forced connection shutdown.
165
149
  const drained = yield* Fiber.join(gracefulClose).pipe(Effect.timeoutOption(RESPONSE_DRAIN_GRACE_PERIOD), Effect.interruptible);
166
150
  if (Option.isNone(drained)) {
167
- yield* Effect.logWarning("Harness MCP response drain timed out; closing active connections");
168
- yield* Effect.sync(running.destroyConnections);
151
+ running.destroyConnections();
152
+ yield* Fiber.join(gracefulClose);
169
153
  }
170
154
  else {
171
155
  running.server.closeAllConnections();
172
156
  }
173
- if (Option.isNone(drained)) {
174
- yield* Fiber.join(gracefulClose);
175
- }
176
157
  yield* closeCompletion;
177
158
  });
178
159
  /**
179
- * Acquires the guarded loopback HTTP server for one explicitly supplied port.
180
- * The caller owns port selection and keeps the returned server alive by
181
- * retaining the enclosing Scope.
182
- *
183
- * @param options Existing MCP handlers and caller-resolved listener port.
184
- * @returns The listening Node HTTP server.
160
+ * Acquire one guarded loopback `/mcp` server on the explicit configured port.
161
+ * @param options Official MCP handler and nonzero listener port.
162
+ * @returns The live Node server bound to the caller's scope.
185
163
  */
186
164
  export const acquireHarnessMcpHttpServer = (options) =>
187
- // eslint-disable-next-line agent-code-guard/acquire-release-requires-scope -- this package-private helper returns the scoped acquisition to its process owner
188
- Effect.acquireRelease(listen(options).pipe(Effect.onExit((exit) => Exit.isSuccess(exit) ? Effect.void : closeHandlers(options))), (running) => release(running, options)).pipe(Effect.map((running) => running.server));
189
- //# sourceMappingURL=harness-mcp-server.js.map
165
+ // eslint-disable-next-line agent-code-guard/acquire-release-requires-scope -- The returned Scope requirement owns listener and response teardown.
166
+ Effect.acquireRelease(listen(options).pipe(Effect.onExit((exit) => Exit.isSuccess(exit) ? Effect.void : closeHandler(options.handler))), (running) => release(running, options)).pipe(Effect.map((running) => running.server));
167
+ //# sourceMappingURL=harness-mcp-http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-mcp-http.js","sourceRoot":"","sources":["../src/harness-mcp-http.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,25 @@
1
+ /**
2
+ * @file Adds the one Client-owned message subscription to the official MCP
3
+ * handler while leaving every standard MCP request with the SDK delegate.
4
+ */
1
5
  import { type Implementation, type McpHttpHandler } from "@modelcontextprotocol/server";
2
6
  interface HarnessMcpSubscriptionOptions {
3
7
  readonly delegate: McpHttpHandler;
4
8
  readonly implementation: Implementation;
9
+ readonly onActiveChange?: (active: boolean) => void;
5
10
  readonly onerror?: (error: Error) => void;
6
11
  }
7
- /** An official MCP handler augmented with one caller-typed event publisher. */
12
+ /** Official MCP handler augmented by the sole daemon delivery sink. */
8
13
  export interface HarnessMcpSubscriptionHandler<Payload extends object> extends McpHttpHandler {
9
- /** Publishes one complete custom notification to the retained POST response. */
14
+ /** Whether one accepted message listener currently owns the daemon. */
15
+ readonly hasActiveSubscription: () => boolean;
16
+ /** Write one complete event frame to the current listener, if it still exists. */
10
17
  readonly publish: (payload: Payload) => boolean;
11
18
  }
12
19
  /**
13
- * Adds the MoltZap turn-ready subscription extension to an official MCP HTTP
14
- * handler. Every non-extension request remains owned by the SDK delegate.
15
- *
16
- * @param options Official handler, server identity, and optional error sink.
17
- * @returns The official handler surface plus a typed custom publisher.
20
+ * Compose the one custom listen route in front of the official MCP handler.
21
+ * @param options Official delegate, server identity, and lifecycle callbacks.
22
+ * @returns The delegated MCP surface plus the private message publisher.
18
23
  */
19
24
  export declare const makeHarnessMcpSubscriptionHandler: <Payload extends object>(options: HarnessMcpSubscriptionOptions) => HarnessMcpSubscriptionHandler<Payload>;
20
25
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"harness-mcp-subscription.d.ts","sourceRoot":"","sources":["../src/harness-mcp-subscription.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAEpB,MAAM,8BAA8B,CAAC;AAyBtC,UAAU,6BAA6B;IACrC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3C;AAED,+EAA+E;AAC/E,MAAM,WAAW,6BAA6B,CAAC,OAAO,SAAS,MAAM,CACnE,SAAQ,cAAc;IACtB,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;CACjD;AA4XD;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,GAAI,OAAO,SAAS,MAAM,WAC7D,6BAA6B,KACrC,6BAA6B,CAAC,OAAO,CACuB,CAAC"}
1
+ {"version":3,"file":"harness-mcp-subscription.d.ts","sourceRoot":"","sources":["../src/harness-mcp-subscription.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,KAAK,cAAc,EAGnB,KAAK,cAAc,EAKpB,MAAM,8BAA8B,CAAC;AAuBtC,UAAU,6BAA6B;IACrC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3C;AAED,uEAAuE;AACvE,MAAM,WAAW,6BAA6B,CAAC,OAAO,SAAS,MAAM,CACnE,SAAQ,cAAc;IACtB,uEAAuE;IACvE,QAAQ,CAAC,qBAAqB,EAAE,MAAM,OAAO,CAAC;IAC9C,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;CACjD;AAsYD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,GAAI,OAAO,SAAS,MAAM,WAC7D,6BAA6B,KACrC,6BAA6B,CAAC,OAAO,CACuB,CAAC"}