@moltzap/client 2026.1002.0 → 2026.1004.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 (492) hide show
  1. package/README.md +2 -2
  2. package/bin/moltzapd +2 -2
  3. package/dist/{harness-mcp-contract.d.ts → delivery/history-export.d.ts} +94 -133
  4. package/dist/delivery/history-export.d.ts.map +1 -0
  5. package/dist/{daemon/runtime → delivery}/history-export.js +36 -3
  6. package/dist/delivery/history-export.js.map +1 -0
  7. package/dist/delivery/host-delivery.d.ts +51 -0
  8. package/dist/delivery/host-delivery.d.ts.map +1 -0
  9. package/dist/delivery/host-delivery.js +109 -0
  10. package/dist/delivery/host-delivery.js.map +1 -0
  11. package/dist/delivery/inbox.d.ts +141 -0
  12. package/dist/delivery/inbox.d.ts.map +1 -0
  13. package/dist/delivery/inbox.js +129 -0
  14. package/dist/delivery/inbox.js.map +1 -0
  15. package/dist/delivery/index.d.ts +4 -0
  16. package/dist/delivery/index.d.ts.map +1 -0
  17. package/dist/delivery/index.js +4 -0
  18. package/dist/delivery/index.js.map +1 -0
  19. package/dist/delivery/operations.d.ts +789 -0
  20. package/dist/delivery/operations.d.ts.map +1 -0
  21. package/dist/delivery/operations.js +162 -0
  22. package/dist/delivery/operations.js.map +1 -0
  23. package/dist/delivery/pass.d.ts +91 -0
  24. package/dist/delivery/pass.d.ts.map +1 -0
  25. package/dist/{daemon/runtime/pending-delivery.js → delivery/pass.js} +61 -34
  26. package/dist/delivery/pass.js.map +1 -0
  27. package/dist/delivery/send-invocations.d.ts +106 -0
  28. package/dist/delivery/send-invocations.d.ts.map +1 -0
  29. package/dist/delivery/send-invocations.js +109 -0
  30. package/dist/delivery/send-invocations.js.map +1 -0
  31. package/dist/endpoint/harness-endpoint/capability.d.ts +39 -0
  32. package/dist/endpoint/harness-endpoint/capability.d.ts.map +1 -0
  33. package/dist/endpoint/harness-endpoint/capability.js +9 -0
  34. package/dist/endpoint/harness-endpoint/capability.js.map +1 -0
  35. package/dist/endpoint/harness-endpoint/events.d.ts +12 -0
  36. package/dist/endpoint/harness-endpoint/events.d.ts.map +1 -0
  37. package/dist/endpoint/harness-endpoint/events.js +199 -0
  38. package/dist/endpoint/harness-endpoint/events.js.map +1 -0
  39. package/dist/{client-runtime.d.ts → endpoint/harness-endpoint/index.d.ts} +4 -2
  40. package/dist/endpoint/harness-endpoint/index.d.ts.map +1 -0
  41. package/dist/{client-runtime.js → endpoint/harness-endpoint/index.js} +115 -115
  42. package/dist/endpoint/harness-endpoint/index.js.map +1 -0
  43. package/dist/endpoint/implementation.d.ts +4 -0
  44. package/dist/endpoint/implementation.d.ts.map +1 -0
  45. package/dist/endpoint/implementation.js +5 -0
  46. package/dist/endpoint/implementation.js.map +1 -0
  47. package/dist/endpoint/mcp/auth.d.ts +31 -0
  48. package/dist/endpoint/mcp/auth.d.ts.map +1 -0
  49. package/dist/endpoint/mcp/auth.js +42 -0
  50. package/dist/endpoint/mcp/auth.js.map +1 -0
  51. package/dist/endpoint/mcp/event-schemas.d.ts +151 -0
  52. package/dist/endpoint/mcp/event-schemas.d.ts.map +1 -0
  53. package/dist/endpoint/mcp/event-schemas.js +72 -0
  54. package/dist/endpoint/mcp/event-schemas.js.map +1 -0
  55. package/dist/endpoint/mcp/event-signing.d.ts +62 -0
  56. package/dist/endpoint/mcp/event-signing.d.ts.map +1 -0
  57. package/dist/endpoint/mcp/event-signing.js +185 -0
  58. package/dist/endpoint/mcp/event-signing.js.map +1 -0
  59. package/dist/endpoint/mcp/events.d.ts +45 -0
  60. package/dist/endpoint/mcp/events.d.ts.map +1 -0
  61. package/dist/endpoint/mcp/events.js +296 -0
  62. package/dist/endpoint/mcp/events.js.map +1 -0
  63. package/dist/{harness-mcp-http.d.ts → endpoint/mcp/http.d.ts} +1 -1
  64. package/dist/endpoint/mcp/http.d.ts.map +1 -0
  65. package/dist/{harness-mcp-http.js → endpoint/mcp/http.js} +1 -1
  66. package/dist/endpoint/mcp/http.js.map +1 -0
  67. package/dist/endpoint/mcp/index.d.ts +10 -0
  68. package/dist/endpoint/mcp/index.d.ts.map +1 -0
  69. package/dist/endpoint/mcp/index.js +8 -0
  70. package/dist/endpoint/mcp/index.js.map +1 -0
  71. package/dist/{management-runtime.d.ts → endpoint/mcp/owner-tools.d.ts} +7 -7
  72. package/dist/endpoint/mcp/owner-tools.d.ts.map +1 -0
  73. package/dist/{management-runtime.js → endpoint/mcp/owner-tools.js} +3 -4
  74. package/dist/endpoint/mcp/owner-tools.js.map +1 -0
  75. package/dist/endpoint/mcp/schemas.d.ts +60 -0
  76. package/dist/endpoint/mcp/schemas.d.ts.map +1 -0
  77. package/dist/endpoint/mcp/schemas.js +116 -0
  78. package/dist/endpoint/mcp/schemas.js.map +1 -0
  79. package/dist/{harness-mcp-wire.d.ts → endpoint/mcp/tools.d.ts} +17 -14
  80. package/dist/endpoint/mcp/tools.d.ts.map +1 -0
  81. package/dist/{harness-mcp-wire.js → endpoint/mcp/tools.js} +229 -110
  82. package/dist/endpoint/mcp/tools.js.map +1 -0
  83. package/dist/endpoint/mcp/webhook.d.ts +15 -0
  84. package/dist/endpoint/mcp/webhook.d.ts.map +1 -0
  85. package/dist/endpoint/mcp/webhook.js +359 -0
  86. package/dist/endpoint/mcp/webhook.js.map +1 -0
  87. package/dist/identity/credentials.d.ts +46 -0
  88. package/dist/identity/credentials.d.ts.map +1 -0
  89. package/dist/identity/credentials.js +55 -0
  90. package/dist/identity/credentials.js.map +1 -0
  91. package/dist/identity/index.d.ts +4 -0
  92. package/dist/identity/index.d.ts.map +1 -0
  93. package/dist/identity/index.js +4 -0
  94. package/dist/identity/index.js.map +1 -0
  95. package/dist/index.d.ts +19 -4
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +21 -5
  98. package/dist/index.js.map +1 -1
  99. package/dist/{contract.types-check.d.ts → index.types-check.d.ts} +8 -4
  100. package/dist/index.types-check.d.ts.map +1 -0
  101. package/dist/{contract.types-check.js → index.types-check.js} +4 -3
  102. package/dist/index.types-check.js.map +1 -0
  103. package/dist/{daemon/runtime → service}/activation.d.ts +9 -12
  104. package/dist/service/activation.d.ts.map +1 -0
  105. package/dist/{daemon/runtime → service}/activation.js +3 -3
  106. package/dist/service/activation.js.map +1 -0
  107. package/dist/{daemon → service}/configuration.d.ts +8 -7
  108. package/dist/service/configuration.d.ts.map +1 -0
  109. package/dist/{daemon → service}/configuration.js +30 -28
  110. package/dist/service/configuration.js.map +1 -0
  111. package/dist/{daemon/runtime → service}/controller.d.ts +8 -6
  112. package/dist/service/controller.d.ts.map +1 -0
  113. package/dist/service/controller.js +106 -0
  114. package/dist/service/controller.js.map +1 -0
  115. package/dist/{server.d.ts → service/index.d.ts} +7 -4
  116. package/dist/service/index.d.ts.map +1 -0
  117. package/dist/{server.js → service/index.js} +17 -15
  118. package/dist/service/index.js.map +1 -0
  119. package/dist/{server.types-check.d.ts → service/index.types-check.d.ts} +7 -7
  120. package/dist/service/index.types-check.d.ts.map +1 -0
  121. package/dist/{server.types-check.js → service/index.types-check.js} +1 -1
  122. package/dist/service/index.types-check.js.map +1 -0
  123. package/dist/{daemon/runtime/index.d.ts → service/lifecycle.d.ts} +3 -3
  124. package/dist/service/lifecycle.d.ts.map +1 -0
  125. package/dist/{daemon/runtime/index.js → service/lifecycle.js} +28 -25
  126. package/dist/service/lifecycle.js.map +1 -0
  127. package/dist/{daemon → service}/management.d.ts +2 -2
  128. package/dist/service/management.d.ts.map +1 -0
  129. package/dist/{daemon → service}/management.js +2 -13
  130. package/dist/service/management.js.map +1 -0
  131. package/dist/{daemon → service}/registration.d.ts +1 -1
  132. package/dist/service/registration.d.ts.map +1 -0
  133. package/dist/{daemon → service}/registration.js +1 -2
  134. package/dist/service/registration.js.map +1 -0
  135. package/dist/{daemon/runtime/protocol.d.ts → service/supervision.d.ts} +16 -24
  136. package/dist/service/supervision.d.ts.map +1 -0
  137. package/dist/{daemon/runtime/protocol.js → service/supervision.js} +33 -36
  138. package/dist/service/supervision.js.map +1 -0
  139. package/dist/store/anchors.d.ts.map +1 -0
  140. package/dist/store/anchors.js.map +1 -0
  141. package/dist/store/database/index.d.ts.map +1 -0
  142. package/dist/store/database/index.js.map +1 -0
  143. package/dist/store/database/schema.d.ts.map +1 -0
  144. package/dist/{endpoint/store → store}/database/schema.js +42 -6
  145. package/dist/store/database/schema.js.map +1 -0
  146. package/dist/store/database/values.d.ts.map +1 -0
  147. package/dist/store/database/values.js.map +1 -0
  148. package/dist/{endpoint/store → store}/deliveries.d.ts +8 -0
  149. package/dist/store/deliveries.d.ts.map +1 -0
  150. package/dist/{endpoint/store → store}/deliveries.js +16 -0
  151. package/dist/store/deliveries.js.map +1 -0
  152. package/dist/store/dissemination.d.ts.map +1 -0
  153. package/dist/store/dissemination.js.map +1 -0
  154. package/dist/store/inbox.d.ts +86 -0
  155. package/dist/store/inbox.d.ts.map +1 -0
  156. package/dist/store/inbox.js +269 -0
  157. package/dist/store/inbox.js.map +1 -0
  158. package/dist/store/index.d.ts +12 -0
  159. package/dist/store/index.d.ts.map +1 -0
  160. package/dist/store/index.js +8 -0
  161. package/dist/store/index.js.map +1 -0
  162. package/dist/store/outbound.d.ts.map +1 -0
  163. package/dist/store/outbound.js.map +1 -0
  164. package/dist/{endpoint/store/management.d.ts → store/reads.d.ts} +1 -1
  165. package/dist/store/reads.d.ts.map +1 -0
  166. package/dist/{endpoint/store/management.js → store/reads.js} +1 -1
  167. package/dist/store/reads.js.map +1 -0
  168. package/dist/store/records.d.ts.map +1 -0
  169. package/dist/store/records.js.map +1 -0
  170. package/dist/store/rows/index.d.ts.map +1 -0
  171. package/dist/store/rows/index.js.map +1 -0
  172. package/dist/store/runtime-codec.d.ts +17 -0
  173. package/dist/store/runtime-codec.d.ts.map +1 -0
  174. package/dist/store/runtime-codec.js +32 -0
  175. package/dist/store/runtime-codec.js.map +1 -0
  176. package/dist/{endpoint/store/index.d.ts → store/store.d.ts} +2 -2
  177. package/dist/store/store.d.ts.map +1 -0
  178. package/dist/{endpoint/store/index.js → store/store.js} +33 -4
  179. package/dist/store/store.js.map +1 -0
  180. package/dist/{endpoint/store → store}/types.d.ts +41 -0
  181. package/dist/store/types.d.ts.map +1 -0
  182. package/dist/store/types.js.map +1 -0
  183. package/dist/transport/collectives/answer-check.d.ts +22 -0
  184. package/dist/transport/collectives/answer-check.d.ts.map +1 -0
  185. package/dist/transport/collectives/answer-check.js +166 -0
  186. package/dist/transport/collectives/answer-check.js.map +1 -0
  187. package/dist/transport/collectives/answer-formats.d.ts +21 -0
  188. package/dist/transport/collectives/answer-formats.d.ts.map +1 -0
  189. package/dist/transport/collectives/answer-formats.js +127 -0
  190. package/dist/transport/collectives/answer-formats.js.map +1 -0
  191. package/dist/transport/collectives/failures.d.ts +34 -0
  192. package/dist/transport/collectives/failures.d.ts.map +1 -0
  193. package/dist/transport/collectives/failures.js +40 -0
  194. package/dist/transport/collectives/failures.js.map +1 -0
  195. package/dist/transport/collectives/form-grammar.d.ts +175 -0
  196. package/dist/transport/collectives/form-grammar.d.ts.map +1 -0
  197. package/dist/transport/collectives/form-grammar.js +226 -0
  198. package/dist/transport/collectives/form-grammar.js.map +1 -0
  199. package/dist/transport/collectives/forms.d.ts +224 -0
  200. package/dist/transport/collectives/forms.d.ts.map +1 -0
  201. package/dist/transport/collectives/forms.js +183 -0
  202. package/dist/transport/collectives/forms.js.map +1 -0
  203. package/dist/transport/collectives/inbound.d.ts +130 -0
  204. package/dist/transport/collectives/inbound.d.ts.map +1 -0
  205. package/dist/transport/collectives/inbound.js +80 -0
  206. package/dist/transport/collectives/inbound.js.map +1 -0
  207. package/dist/transport/collectives/index.d.ts +10 -0
  208. package/dist/transport/collectives/index.d.ts.map +1 -0
  209. package/dist/transport/collectives/index.js +8 -0
  210. package/dist/transport/collectives/index.js.map +1 -0
  211. package/dist/{message-text.d.ts → transport/collectives/message-text.d.ts} +4 -3
  212. package/dist/transport/collectives/message-text.d.ts.map +1 -0
  213. package/dist/{message-text.js → transport/collectives/message-text.js} +4 -6
  214. package/dist/transport/collectives/message-text.js.map +1 -0
  215. package/dist/{endpoint/collective → transport/collectives}/operation.d.ts +17 -11
  216. package/dist/transport/collectives/operation.d.ts.map +1 -0
  217. package/dist/{endpoint/collective → transport/collectives}/operation.js +20 -48
  218. package/dist/transport/collectives/operation.js.map +1 -0
  219. package/dist/{endpoint/collective → transport/collectives}/received-request.d.ts +2 -1
  220. package/dist/transport/collectives/received-request.d.ts.map +1 -0
  221. package/dist/transport/collectives/received-request.js.map +1 -0
  222. package/dist/{endpoint/collective → transport/collectives}/request-sends.d.ts +3 -2
  223. package/dist/transport/collectives/request-sends.d.ts.map +1 -0
  224. package/dist/transport/collectives/request-sends.js.map +1 -0
  225. package/dist/{endpoint/collective → transport/collectives}/shared-answers.d.ts +3 -2
  226. package/dist/transport/collectives/shared-answers.d.ts.map +1 -0
  227. package/dist/transport/collectives/shared-answers.js.map +1 -0
  228. package/dist/{endpoint/collective → transport/collectives}/validation.d.ts +8 -10
  229. package/dist/transport/collectives/validation.d.ts.map +1 -0
  230. package/dist/{endpoint/collective → transport/collectives}/validation.js +10 -19
  231. package/dist/transport/collectives/validation.js.map +1 -0
  232. package/dist/{endpoint/collective → transport/collectives}/wire.d.ts +14 -9
  233. package/dist/transport/collectives/wire.d.ts.map +1 -0
  234. package/dist/{endpoint/collective → transport/collectives}/wire.js +11 -99
  235. package/dist/transport/collectives/wire.js.map +1 -0
  236. package/dist/{endpoint/addressing/index.d.ts → transport/messaging/address.d.ts} +38 -5
  237. package/dist/transport/messaging/address.d.ts.map +1 -0
  238. package/dist/{endpoint/addressing/index.js → transport/messaging/address.js} +100 -21
  239. package/dist/transport/messaging/address.js.map +1 -0
  240. package/dist/{endpoint/protocol/index.d.ts → transport/messaging/certification.d.ts} +4 -4
  241. package/dist/transport/messaging/certification.d.ts.map +1 -0
  242. package/dist/{endpoint/protocol/index.js → transport/messaging/certification.js} +7 -5
  243. package/dist/transport/messaging/certification.js.map +1 -0
  244. package/dist/{endpoint/engine-dissemination.d.ts → transport/messaging/dissemination.d.ts} +3 -3
  245. package/dist/transport/messaging/dissemination.d.ts.map +1 -0
  246. package/dist/{endpoint/engine-dissemination.js → transport/messaging/dissemination.js} +5 -5
  247. package/dist/transport/messaging/dissemination.js.map +1 -0
  248. package/dist/{endpoint/engine-durability.d.ts → transport/messaging/durability.d.ts} +4 -4
  249. package/dist/{endpoint/engine-durability.d.ts.map → transport/messaging/durability.d.ts.map} +1 -1
  250. package/dist/{endpoint/engine-durability.js → transport/messaging/durability.js} +4 -13
  251. package/dist/transport/messaging/durability.js.map +1 -0
  252. package/dist/transport/messaging/errors.d.ts +50 -0
  253. package/dist/transport/messaging/errors.d.ts.map +1 -0
  254. package/dist/transport/messaging/errors.js +64 -0
  255. package/dist/transport/messaging/errors.js.map +1 -0
  256. package/dist/{endpoint/protocol → transport/messaging}/evidence.d.ts +3 -3
  257. package/dist/{endpoint/protocol → transport/messaging}/evidence.d.ts.map +1 -1
  258. package/dist/{endpoint/protocol → transport/messaging}/evidence.js +1 -1
  259. package/dist/transport/messaging/evidence.js.map +1 -0
  260. package/dist/{endpoint/engine.d.ts → transport/messaging/index.d.ts} +4 -4
  261. package/dist/transport/messaging/index.d.ts.map +1 -0
  262. package/dist/{endpoint/engine.js → transport/messaging/index.js} +14 -9
  263. package/dist/transport/messaging/index.js.map +1 -0
  264. package/dist/transport/messaging/message.d.ts +112 -0
  265. package/dist/transport/messaging/message.d.ts.map +1 -0
  266. package/dist/transport/messaging/message.js +39 -0
  267. package/dist/transport/messaging/message.js.map +1 -0
  268. package/dist/{endpoint → transport/messaging}/recovery/barrier.d.ts +1 -1
  269. package/dist/transport/messaging/recovery/barrier.d.ts.map +1 -0
  270. package/dist/transport/messaging/recovery/barrier.js.map +1 -0
  271. package/dist/{endpoint/recovery/store-evidence.d.ts → transport/messaging/recovery/evidence.d.ts} +5 -5
  272. package/dist/transport/messaging/recovery/evidence.d.ts.map +1 -0
  273. package/dist/{endpoint/recovery/store-evidence.js → transport/messaging/recovery/evidence.js} +3 -3
  274. package/dist/transport/messaging/recovery/evidence.js.map +1 -0
  275. package/dist/{endpoint → transport/messaging}/recovery/index.d.ts +4 -4
  276. package/dist/transport/messaging/recovery/index.d.ts.map +1 -0
  277. package/dist/{endpoint → transport/messaging}/recovery/index.js +29 -25
  278. package/dist/transport/messaging/recovery/index.js.map +1 -0
  279. package/dist/{endpoint/recovery/store.d.ts → transport/messaging/recovery/persistence.d.ts} +5 -5
  280. package/dist/transport/messaging/recovery/persistence.d.ts.map +1 -0
  281. package/dist/{endpoint/recovery/store.js → transport/messaging/recovery/persistence.js} +4 -4
  282. package/dist/transport/messaging/recovery/persistence.js.map +1 -0
  283. package/dist/{endpoint/recovery/reanchor/empty.d.ts → transport/messaging/recovery/reanchor-empty.d.ts} +6 -6
  284. package/dist/transport/messaging/recovery/reanchor-empty.d.ts.map +1 -0
  285. package/dist/{endpoint/recovery/reanchor/empty.js → transport/messaging/recovery/reanchor-empty.js} +4 -4
  286. package/dist/transport/messaging/recovery/reanchor-empty.js.map +1 -0
  287. package/dist/{endpoint/recovery/reanchor/index.d.ts → transport/messaging/recovery/reanchor.d.ts} +4 -4
  288. package/dist/transport/messaging/recovery/reanchor.d.ts.map +1 -0
  289. package/dist/{endpoint/recovery/reanchor/index.js → transport/messaging/recovery/reanchor.js} +29 -14
  290. package/dist/transport/messaging/recovery/reanchor.js.map +1 -0
  291. package/dist/{endpoint → transport/messaging}/recovery/state.d.ts +5 -5
  292. package/dist/transport/messaging/recovery/state.d.ts.map +1 -0
  293. package/dist/{endpoint → transport/messaging}/recovery/state.js +2 -2
  294. package/dist/transport/messaging/recovery/state.js.map +1 -0
  295. package/dist/{endpoint/engine-send.d.ts → transport/messaging/send.d.ts} +5 -4
  296. package/dist/transport/messaging/send.d.ts.map +1 -0
  297. package/dist/{endpoint/engine-send.js → transport/messaging/send.js} +4 -4
  298. package/dist/transport/messaging/send.js.map +1 -0
  299. package/dist/{endpoint/engine-types.d.ts → transport/messaging/types.d.ts} +7 -5
  300. package/dist/transport/messaging/types.d.ts.map +1 -0
  301. package/dist/{endpoint/engine-types.js → transport/messaging/types.js} +1 -1
  302. package/dist/{endpoint/engine-types.js.map → transport/messaging/types.js.map} +1 -1
  303. package/dist/transport/router/index.d.ts.map +1 -0
  304. package/dist/{endpoint/router-worker → transport/router}/index.js +1 -1
  305. package/dist/transport/router/index.js.map +1 -0
  306. package/dist/transport/router/outage.d.ts.map +1 -0
  307. package/dist/transport/router/outage.js.map +1 -0
  308. package/dist/{endpoint/router-worker → transport/router}/types.d.ts +2 -2
  309. package/dist/transport/router/types.d.ts.map +1 -0
  310. package/dist/transport/router/types.js.map +1 -0
  311. package/dist/{endpoint/representation-canonical.d.ts → transport/wire/canonical.d.ts} +1 -1
  312. package/dist/transport/wire/canonical.d.ts.map +1 -0
  313. package/dist/{endpoint/representation-canonical.js → transport/wire/canonical.js} +1 -1
  314. package/dist/transport/wire/canonical.js.map +1 -0
  315. package/dist/{endpoint/representation-codec.d.ts → transport/wire/codec.d.ts} +5 -6
  316. package/dist/transport/wire/codec.d.ts.map +1 -0
  317. package/dist/{endpoint/representation-codec.js → transport/wire/codec.js} +5 -24
  318. package/dist/transport/wire/codec.js.map +1 -0
  319. package/dist/transport/wire/index.d.ts +7 -0
  320. package/dist/transport/wire/index.d.ts.map +1 -0
  321. package/dist/transport/wire/index.js +10 -0
  322. package/dist/transport/wire/index.js.map +1 -0
  323. package/dist/{endpoint/representation-schemas.d.ts → transport/wire/schemas.d.ts} +76 -98
  324. package/dist/transport/wire/schemas.d.ts.map +1 -0
  325. package/dist/{endpoint/representation-schemas.js → transport/wire/schemas.js} +7 -19
  326. package/dist/transport/wire/schemas.js.map +1 -0
  327. package/dist/transport/wire/values.d.ts +79 -0
  328. package/dist/transport/wire/values.d.ts.map +1 -0
  329. package/dist/transport/wire/values.js +115 -0
  330. package/dist/transport/wire/values.js.map +1 -0
  331. package/dist/{endpoint/representation-verification.d.ts → transport/wire/verification.d.ts} +4 -4
  332. package/dist/transport/wire/verification.d.ts.map +1 -0
  333. package/dist/{endpoint/representation-verification.js → transport/wire/verification.js} +5 -4
  334. package/dist/transport/wire/verification.js.map +1 -0
  335. package/package.json +6 -6
  336. package/dist/client-runtime.d.ts.map +0 -1
  337. package/dist/client-runtime.js.map +0 -1
  338. package/dist/contract.d.ts +0 -721
  339. package/dist/contract.d.ts.map +0 -1
  340. package/dist/contract.js +0 -441
  341. package/dist/contract.js.map +0 -1
  342. package/dist/contract.types-check.d.ts.map +0 -1
  343. package/dist/contract.types-check.js.map +0 -1
  344. package/dist/daemon/configuration.d.ts.map +0 -1
  345. package/dist/daemon/configuration.js.map +0 -1
  346. package/dist/daemon/management.d.ts.map +0 -1
  347. package/dist/daemon/management.js.map +0 -1
  348. package/dist/daemon/registration.d.ts.map +0 -1
  349. package/dist/daemon/registration.js.map +0 -1
  350. package/dist/daemon/runtime/activation.d.ts.map +0 -1
  351. package/dist/daemon/runtime/activation.js.map +0 -1
  352. package/dist/daemon/runtime/controller.d.ts.map +0 -1
  353. package/dist/daemon/runtime/controller.js +0 -138
  354. package/dist/daemon/runtime/controller.js.map +0 -1
  355. package/dist/daemon/runtime/history-export.d.ts +0 -33
  356. package/dist/daemon/runtime/history-export.d.ts.map +0 -1
  357. package/dist/daemon/runtime/history-export.js.map +0 -1
  358. package/dist/daemon/runtime/index.d.ts.map +0 -1
  359. package/dist/daemon/runtime/index.js.map +0 -1
  360. package/dist/daemon/runtime/pending-delivery.d.ts +0 -49
  361. package/dist/daemon/runtime/pending-delivery.d.ts.map +0 -1
  362. package/dist/daemon/runtime/pending-delivery.js.map +0 -1
  363. package/dist/daemon/runtime/protocol.d.ts.map +0 -1
  364. package/dist/daemon/runtime/protocol.js.map +0 -1
  365. package/dist/endpoint/addressing/index.d.ts.map +0 -1
  366. package/dist/endpoint/addressing/index.js.map +0 -1
  367. package/dist/endpoint/collective/operation.d.ts.map +0 -1
  368. package/dist/endpoint/collective/operation.js.map +0 -1
  369. package/dist/endpoint/collective/received-request.d.ts.map +0 -1
  370. package/dist/endpoint/collective/received-request.js.map +0 -1
  371. package/dist/endpoint/collective/request-sends.d.ts.map +0 -1
  372. package/dist/endpoint/collective/request-sends.js.map +0 -1
  373. package/dist/endpoint/collective/shared-answers.d.ts.map +0 -1
  374. package/dist/endpoint/collective/shared-answers.js.map +0 -1
  375. package/dist/endpoint/collective/validation.d.ts.map +0 -1
  376. package/dist/endpoint/collective/validation.js.map +0 -1
  377. package/dist/endpoint/collective/wire.d.ts.map +0 -1
  378. package/dist/endpoint/collective/wire.js.map +0 -1
  379. package/dist/endpoint/engine-dissemination.d.ts.map +0 -1
  380. package/dist/endpoint/engine-dissemination.js.map +0 -1
  381. package/dist/endpoint/engine-durability.js.map +0 -1
  382. package/dist/endpoint/engine-send.d.ts.map +0 -1
  383. package/dist/endpoint/engine-send.js.map +0 -1
  384. package/dist/endpoint/engine-types.d.ts.map +0 -1
  385. package/dist/endpoint/engine.d.ts.map +0 -1
  386. package/dist/endpoint/engine.js.map +0 -1
  387. package/dist/endpoint/protocol/evidence.js.map +0 -1
  388. package/dist/endpoint/protocol/index.d.ts.map +0 -1
  389. package/dist/endpoint/protocol/index.js.map +0 -1
  390. package/dist/endpoint/recovery/barrier.d.ts.map +0 -1
  391. package/dist/endpoint/recovery/barrier.js.map +0 -1
  392. package/dist/endpoint/recovery/index.d.ts.map +0 -1
  393. package/dist/endpoint/recovery/index.js.map +0 -1
  394. package/dist/endpoint/recovery/reanchor/empty.d.ts.map +0 -1
  395. package/dist/endpoint/recovery/reanchor/empty.js.map +0 -1
  396. package/dist/endpoint/recovery/reanchor/index.d.ts.map +0 -1
  397. package/dist/endpoint/recovery/reanchor/index.js.map +0 -1
  398. package/dist/endpoint/recovery/state.d.ts.map +0 -1
  399. package/dist/endpoint/recovery/state.js.map +0 -1
  400. package/dist/endpoint/recovery/store-evidence.d.ts.map +0 -1
  401. package/dist/endpoint/recovery/store-evidence.js.map +0 -1
  402. package/dist/endpoint/recovery/store.d.ts.map +0 -1
  403. package/dist/endpoint/recovery/store.js.map +0 -1
  404. package/dist/endpoint/representation-canonical.d.ts.map +0 -1
  405. package/dist/endpoint/representation-canonical.js.map +0 -1
  406. package/dist/endpoint/representation-codec.d.ts.map +0 -1
  407. package/dist/endpoint/representation-codec.js.map +0 -1
  408. package/dist/endpoint/representation-schemas.d.ts.map +0 -1
  409. package/dist/endpoint/representation-schemas.js.map +0 -1
  410. package/dist/endpoint/representation-verification.d.ts.map +0 -1
  411. package/dist/endpoint/representation-verification.js.map +0 -1
  412. package/dist/endpoint/representation.d.ts +0 -6
  413. package/dist/endpoint/representation.d.ts.map +0 -1
  414. package/dist/endpoint/representation.js +0 -8
  415. package/dist/endpoint/representation.js.map +0 -1
  416. package/dist/endpoint/router-worker/index.d.ts.map +0 -1
  417. package/dist/endpoint/router-worker/index.js.map +0 -1
  418. package/dist/endpoint/router-worker/outage.d.ts.map +0 -1
  419. package/dist/endpoint/router-worker/outage.js.map +0 -1
  420. package/dist/endpoint/router-worker/types.d.ts.map +0 -1
  421. package/dist/endpoint/router-worker/types.js.map +0 -1
  422. package/dist/endpoint/store/anchors.d.ts.map +0 -1
  423. package/dist/endpoint/store/anchors.js.map +0 -1
  424. package/dist/endpoint/store/database/index.d.ts.map +0 -1
  425. package/dist/endpoint/store/database/index.js.map +0 -1
  426. package/dist/endpoint/store/database/schema.d.ts.map +0 -1
  427. package/dist/endpoint/store/database/schema.js.map +0 -1
  428. package/dist/endpoint/store/database/values.d.ts.map +0 -1
  429. package/dist/endpoint/store/database/values.js.map +0 -1
  430. package/dist/endpoint/store/deliveries.d.ts.map +0 -1
  431. package/dist/endpoint/store/deliveries.js.map +0 -1
  432. package/dist/endpoint/store/dissemination.d.ts.map +0 -1
  433. package/dist/endpoint/store/dissemination.js.map +0 -1
  434. package/dist/endpoint/store/index.d.ts.map +0 -1
  435. package/dist/endpoint/store/index.js.map +0 -1
  436. package/dist/endpoint/store/management.d.ts.map +0 -1
  437. package/dist/endpoint/store/management.js.map +0 -1
  438. package/dist/endpoint/store/outbound.d.ts.map +0 -1
  439. package/dist/endpoint/store/outbound.js.map +0 -1
  440. package/dist/endpoint/store/records.d.ts.map +0 -1
  441. package/dist/endpoint/store/records.js.map +0 -1
  442. package/dist/endpoint/store/rows/index.d.ts.map +0 -1
  443. package/dist/endpoint/store/rows/index.js.map +0 -1
  444. package/dist/endpoint/store/types.d.ts.map +0 -1
  445. package/dist/endpoint/store/types.js.map +0 -1
  446. package/dist/endpoint/store.d.ts +0 -10
  447. package/dist/endpoint/store.d.ts.map +0 -1
  448. package/dist/endpoint/store.js +0 -6
  449. package/dist/endpoint/store.js.map +0 -1
  450. package/dist/harness-mcp-contract.d.ts.map +0 -1
  451. package/dist/harness-mcp-contract.js +0 -113
  452. package/dist/harness-mcp-contract.js.map +0 -1
  453. package/dist/harness-mcp-http.d.ts.map +0 -1
  454. package/dist/harness-mcp-http.js.map +0 -1
  455. package/dist/harness-mcp-subscription.d.ts +0 -30
  456. package/dist/harness-mcp-subscription.d.ts.map +0 -1
  457. package/dist/harness-mcp-subscription.js +0 -361
  458. package/dist/harness-mcp-subscription.js.map +0 -1
  459. package/dist/harness-mcp-wire.d.ts.map +0 -1
  460. package/dist/harness-mcp-wire.js.map +0 -1
  461. package/dist/management-runtime.d.ts.map +0 -1
  462. package/dist/management-runtime.js.map +0 -1
  463. package/dist/message-text.d.ts.map +0 -1
  464. package/dist/message-text.js.map +0 -1
  465. package/dist/server.d.ts.map +0 -1
  466. package/dist/server.js.map +0 -1
  467. package/dist/server.types-check.d.ts.map +0 -1
  468. package/dist/server.types-check.js.map +0 -1
  469. /package/dist/{endpoint/store → store}/anchors.d.ts +0 -0
  470. /package/dist/{endpoint/store → store}/anchors.js +0 -0
  471. /package/dist/{endpoint/store → store}/database/index.d.ts +0 -0
  472. /package/dist/{endpoint/store → store}/database/index.js +0 -0
  473. /package/dist/{endpoint/store → store}/database/schema.d.ts +0 -0
  474. /package/dist/{endpoint/store → store}/database/values.d.ts +0 -0
  475. /package/dist/{endpoint/store → store}/database/values.js +0 -0
  476. /package/dist/{endpoint/store → store}/dissemination.d.ts +0 -0
  477. /package/dist/{endpoint/store → store}/dissemination.js +0 -0
  478. /package/dist/{endpoint/store → store}/outbound.d.ts +0 -0
  479. /package/dist/{endpoint/store → store}/outbound.js +0 -0
  480. /package/dist/{endpoint/store → store}/records.d.ts +0 -0
  481. /package/dist/{endpoint/store → store}/records.js +0 -0
  482. /package/dist/{endpoint/store → store}/rows/index.d.ts +0 -0
  483. /package/dist/{endpoint/store → store}/rows/index.js +0 -0
  484. /package/dist/{endpoint/store → store}/types.js +0 -0
  485. /package/dist/{endpoint/collective → transport/collectives}/received-request.js +0 -0
  486. /package/dist/{endpoint/collective → transport/collectives}/request-sends.js +0 -0
  487. /package/dist/{endpoint/collective → transport/collectives}/shared-answers.js +0 -0
  488. /package/dist/{endpoint → transport/messaging}/recovery/barrier.js +0 -0
  489. /package/dist/{endpoint/router-worker → transport/router}/index.d.ts +0 -0
  490. /package/dist/{endpoint/router-worker → transport/router}/outage.d.ts +0 -0
  491. /package/dist/{endpoint/router-worker → transport/router}/outage.js +0 -0
  492. /package/dist/{endpoint/router-worker → transport/router}/types.js +0 -0
@@ -1,44 +1,21 @@
1
1
  /** @file Scoped MCP implementation of the public semantic HarnessEndpoint. */
2
2
  import { Client, fromJsonSchema, ProtocolError, StreamableHTTPClientTransport, } from "@modelcontextprotocol/client";
3
- import { Data, Effect, Queue, Ref, Stream, Take } from "effect";
4
- import packageJson from "../package.json" with { type: "json" };
5
- import { CollectiveError, ConnectError, DeliveryAcknowledgeError, ListenError, SendError, } from "./contract.js";
6
- import { decodeHarnessEventsExtensionDeclaration, decodeHarnessMessageReadyEvent, decodeHarnessSendErrorData, decodeHarnessSendResult, HARNESS_ACKNOWLEDGE_DELIVERY_TOOL, HARNESS_EVENTS_EXTENSION, HARNESS_MESSAGE_READY_FILTER, HARNESS_MESSAGE_READY_NOTIFICATION, HARNESS_SEND_TOOL, } from "./harness-mcp-contract.js";
3
+ import { Data, Effect, Ref, Stream } from "effect";
4
+ import { decodeHarnessReadInboxResult, decodeHarnessSendErrorData, decodeHarnessSendResult, } from "../../delivery/operations.js";
5
+ import { CollectiveError, } from "../../transport/collectives/forms.js";
6
+ import { DeliveryAcknowledgeError, deliveryAcknowledgeFailureReasons, ListenError, SendError, sendFailureReasons, } from "../../transport/messaging/errors.js";
7
+ import { packageVersion } from "../implementation.js";
8
+ import { HARNESS_ACKNOWLEDGE_DELIVERY_TOOL, HARNESS_READ_INBOX_TOOL, HARNESS_SEND_META_KEY, HARNESS_SEND_TOOL, INBOX_PENDING_EVENT, } from "../mcp/schemas.js";
9
+ import { ConnectError, } from "./capability.js";
10
+ import { inboxWakeups } from "./events.js";
7
11
  /* eslint-disable agent-code-guard/promise-type, @typescript-eslint/no-invalid-void-type -- The official MCP client lifecycle is Promise-native and is converted to Effect at this private edge. */
8
12
  const MODERN_PROTOCOL_VERSION = "2026-07-28";
9
13
  const CLIENT_IMPLEMENTATION = {
10
14
  name: "moltzap-harness-endpoint",
11
- version: packageJson.version,
15
+ version: packageVersion,
12
16
  };
13
17
  class CloseError extends Data.TaggedError("CloseError") {
14
18
  }
15
- const MESSAGE_READY_FILTER = {
16
- [HARNESS_MESSAGE_READY_FILTER]: true,
17
- };
18
- const unknownNotificationParams = fromJsonSchema({});
19
- const sendReasons = [
20
- "invalid-address",
21
- "unknown-agent",
22
- "membership-invalid",
23
- "content-invalid",
24
- "not-registered",
25
- "version-mismatch",
26
- "certification-unavailable",
27
- "persistence-failed",
28
- "network-unavailable",
29
- ];
30
- const acknowledgeReasons = [
31
- "unknown-delivery",
32
- "delivery-conflict",
33
- "persistence-failed",
34
- "transport-failed",
35
- ];
36
- const listenReasons = [
37
- "already-listening",
38
- "incompatible-daemon",
39
- "decode-failed",
40
- "transport-failed",
41
- ];
42
19
  /**
43
20
  * Acquire one real MCP-backed endpoint and its scoped connection.
44
21
  * @param endpoint Loopback MCP URL for the configured endpoint daemon.
@@ -50,33 +27,33 @@ export function acquireHarnessEndpoint(endpoint) {
50
27
  function closeClient(client) {
51
28
  return closeQuietly(() => client.close());
52
29
  }
53
- function closeSubscription(subscription) {
54
- return closeQuietly(() => subscription.close());
55
- }
56
30
  function closeQuietly(close) {
57
31
  return Effect.tryPromise({ try: close, catch: () => new CloseError() }).pipe(Effect.ignore);
58
32
  }
59
33
  /**
60
34
  * Rebuild the typed error of a refused send from its JSON-RPC error data: a
61
35
  * collective failure with its id and detail, or a closed send reason.
36
+ * @param cause Upstream rejection at the MCP tool boundary.
37
+ * @returns A closed send failure without transport details.
62
38
  */
63
39
  function sendFailure(cause) {
64
40
  const data = ProtocolError.isInstance(cause) ? cause.data : cause;
65
41
  return decodeHarnessSendErrorData(data).pipe(Effect.map((decoded) => "failure" in decoded
66
42
  ? new CollectiveError({ id: decoded.id, failure: decoded.failure })
67
43
  : new SendError({
68
- reason: isReason(decoded.reason, sendReasons)
44
+ reason: isReason(decoded.reason, sendFailureReasons)
69
45
  ? decoded.reason
70
46
  : "network-unavailable",
47
+ ...("detail" in decoded && decoded.detail !== undefined
48
+ ? { detail: decoded.detail }
49
+ : {}),
71
50
  })), Effect.orElseSucceed(() => new SendError({ reason: "network-unavailable" })), Effect.runSync);
72
51
  }
73
52
  function acknowledgeReason(cause) {
74
53
  const reason = operationReason(cause);
75
- return isReason(reason, acknowledgeReasons) ? reason : "transport-failed";
76
- }
77
- function listenReason(cause) {
78
- const reason = operationReason(cause);
79
- return isReason(reason, listenReasons) ? reason : "transport-failed";
54
+ return isReason(reason, deliveryAcknowledgeFailureReasons)
55
+ ? reason
56
+ : "transport-failed";
80
57
  }
81
58
  function operationReason(cause) {
82
59
  if (hasReasonPayload(cause)) {
@@ -94,14 +71,24 @@ function isReason(value, allowed) {
94
71
  return allowed.some((candidate) => candidate === value);
95
72
  }
96
73
  function callSend(client, ...[input, options]) {
97
- const failureDelivery = options?.failureDelivery;
98
74
  return Effect.tryPromise({
99
75
  try: (signal) => client.callTool({
100
76
  name: HARNESS_SEND_TOOL,
101
- arguments: {
102
- input,
103
- ...(failureDelivery === undefined ? {} : { failureDelivery }),
104
- },
77
+ arguments: { input },
78
+ ...(options === undefined
79
+ ? {}
80
+ : {
81
+ _meta: {
82
+ [HARNESS_SEND_META_KEY]: {
83
+ ...(options.idempotencyKey === undefined
84
+ ? {}
85
+ : { idempotencyKey: options.idempotencyKey }),
86
+ ...(options.failureDelivery === undefined
87
+ ? {}
88
+ : { failureDelivery: options.failureDelivery }),
89
+ },
90
+ },
91
+ }),
105
92
  }, { signal }),
106
93
  catch: sendFailure,
107
94
  }).pipe(Effect.flatMap((result) => result.isError === true
@@ -119,13 +106,34 @@ function callAcknowledgeDelivery(client, deliveryToken) {
119
106
  ? Effect.fail(new DeliveryAcknowledgeError({ reason: "transport-failed" }))
120
107
  : Effect.void));
121
108
  }
122
- function hasExactEventsExtension(client) {
123
- const experimental = client.getServerCapabilities()?.experimental;
124
- const extension = experimental?.[HARNESS_EVENTS_EXTENSION];
125
- return Effect.runSync(decodeHarnessEventsExtensionDeclaration(extension).pipe(Effect.match({
126
- onFailure: () => false,
127
- onSuccess: () => true,
128
- })));
109
+ const eventsListOutput = fromJsonSchema({
110
+ type: "object",
111
+ required: ["events"],
112
+ properties: {
113
+ events: {
114
+ type: "array",
115
+ items: {
116
+ type: "object",
117
+ required: ["name", "delivery"],
118
+ properties: {
119
+ name: { type: "string" },
120
+ delivery: { type: "array", items: { type: "string" } },
121
+ },
122
+ },
123
+ },
124
+ },
125
+ });
126
+ function supportsInboxEvents(client) {
127
+ return Effect.tryPromise({
128
+ try: (signal) => client.request({ method: "events/list", params: {} }, eventsListOutput, {
129
+ signal,
130
+ }),
131
+ catch: (cause) => new ConnectError({
132
+ reason: ProtocolError.isInstance(cause) && cause.code === -32601
133
+ ? "incompatible-daemon"
134
+ : "transport-failed",
135
+ }),
136
+ }).pipe(Effect.map((catalog) => catalog.events.some((event) => event.name === INBOX_PENDING_EVENT && event.delivery.includes("push"))));
129
137
  }
130
138
  function acquireConnection(client, endpoint) {
131
139
  return Effect.uninterruptibleMask((restore) => Effect.gen(function* () {
@@ -138,56 +146,55 @@ function connect(client, endpoint) {
138
146
  return Effect.tryPromise({
139
147
  try: (signal) => client.connect(new StreamableHTTPClientTransport(endpoint), { signal }),
140
148
  catch: () => new ConnectError({ reason: "transport-failed" }),
141
- }).pipe(Effect.flatMap(() => hasExactEventsExtension(client)
149
+ }).pipe(Effect.flatMap(() => supportsInboxEvents(client).pipe(Effect.flatMap((supported) => supported
142
150
  ? Effect.succeed(client)
143
- : Effect.fail(new ConnectError({ reason: "incompatible-daemon" }))), Effect.onError(() => closeClient(client)));
144
- }
145
- function acquireSubscription(client) {
146
- return Effect.uninterruptibleMask((restore) => Effect.gen(function* () {
147
- const subscription = yield* restore(listen(client));
148
- yield* Effect.addFinalizer(() => closeSubscription(subscription));
149
- return subscription;
150
- }));
151
- }
152
- function listen(client) {
153
- return Effect.tryPromise({
154
- try: (signal) => client.listen(MESSAGE_READY_FILTER, { signal }),
155
- catch: (cause) => new ListenError({ reason: listenReason(cause) }),
156
- });
157
- }
158
- function observeSubscription(subscription, queue) {
159
- return Effect.tryPromise({
160
- try: () => subscription.closed,
151
+ : Effect.fail(new ConnectError({ reason: "incompatible-daemon" }))))), Effect.onError(() => closeClient(client)));
152
+ }
153
+ const decodeInbox = (result) => result.isError === true
154
+ ? Effect.fail(new ListenError({ reason: "transport-failed" }))
155
+ : decodeHarnessReadInboxResult(result.structuredContent).pipe(Effect.catchTag("ParseError", () => Effect.fail(new ListenError({ reason: "decode-failed" }))));
156
+ const unseenDeliveries = (client, seen, items) => {
157
+ const deliveries = [];
158
+ for (const entry of items) {
159
+ if (seen.has(entry.deliveryToken)) {
160
+ continue;
161
+ }
162
+ seen.add(entry.deliveryToken);
163
+ const acknowledge = callAcknowledgeDelivery(client, entry.deliveryToken);
164
+ deliveries.push({ item: entry.item, acknowledge });
165
+ }
166
+ return deliveries;
167
+ };
168
+ /**
169
+ * Prune completed snapshots so acknowledged history cannot accumulate in a live listener.
170
+ * @param client Scoped connection to the owning daemon.
171
+ * @param seen Tokens already offered by this listener, retained through pending reads.
172
+ * @returns New deliveries from one complete bounded inbox snapshot.
173
+ */
174
+ function pendingInbox(client, seen) {
175
+ const retained = new Set();
176
+ const page = (cursor) => Stream.unwrap(Effect.tryPromise({
177
+ try: (signal) => client.callTool({
178
+ name: HARNESS_READ_INBOX_TOOL,
179
+ arguments: cursor === undefined ? {} : { cursor },
180
+ }, { signal }),
161
181
  catch: () => new ListenError({ reason: "transport-failed" }),
162
- }).pipe(Effect.matchEffect({
163
- onFailure: (error) => Queue.offer(queue, Take.fail(error)),
164
- onSuccess: (closure) => Queue.offer(queue, closure === "local"
165
- ? Take.end
166
- : Take.fail(new ListenError({ reason: "transport-failed" }))),
167
- }), Effect.asVoid);
168
- }
169
- function enqueueDelivery(client, queue, params) {
170
- return readDelivery(client, params).pipe(Effect.matchEffect({
171
- onFailure: (error) => Queue.offer(queue, Take.fail(error)),
172
- onSuccess: (delivery) => Queue.offer(queue, Take.of(delivery)),
173
- }), Effect.asVoid);
174
- }
175
- function readDelivery(client, params) {
176
- return decodeHarnessMessageReadyEvent(notificationPayload(params)).pipe(Effect.catchTag("ParseError", () => Effect.fail(new ListenError({ reason: "decode-failed" }))), Effect.map((event) => ({
177
- item: event.item,
178
- acknowledge: callAcknowledgeDelivery(client, event.deliveryToken),
182
+ }).pipe(Effect.flatMap(decodeInbox), Effect.map((result) => {
183
+ for (const entry of result.items) {
184
+ retained.add(entry.deliveryToken);
185
+ }
186
+ const current = Stream.fromIterable(unseenDeliveries(client, seen, result.items));
187
+ return result.nextCursor === undefined
188
+ ? current
189
+ : Stream.concat(current, Stream.suspend(() => page(result.nextCursor)));
190
+ })));
191
+ return Stream.concat(page(), Stream.execute(Effect.sync(() => {
192
+ for (const token of seen) {
193
+ if (!retained.has(token)) {
194
+ seen.delete(token);
195
+ }
196
+ }
179
197
  })));
180
- }
181
- function notificationPayload(params) {
182
- if (typeof params !== "object" || params === null || Array.isArray(params)) {
183
- return params;
184
- }
185
- const payload = { ...params };
186
- Reflect.deleteProperty(payload, "_meta");
187
- return payload;
188
- }
189
- function registerMessageHandler(client, queue) {
190
- client.setNotificationHandler(HARNESS_MESSAGE_READY_NOTIFICATION, { params: unknownNotificationParams }, (params) => Effect.runPromise(enqueueDelivery(client, queue, params)));
191
198
  }
192
199
  function acquireListenerSlot(active) {
193
200
  return Effect.uninterruptible(Effect.gen(function* () {
@@ -198,25 +205,16 @@ function acquireListenerSlot(active) {
198
205
  return acquired;
199
206
  }).pipe(Effect.asVoid));
200
207
  }
201
- function messages(client, listenerActive) {
208
+ function messages(client, listenerActive, endpoint) {
202
209
  return Stream.unwrapScoped(Effect.gen(function* () {
203
210
  yield* acquireListenerSlot(listenerActive);
204
- const queue = yield* Queue.unbounded();
205
- yield* Effect.addFinalizer(() => Queue.shutdown(queue));
206
- registerMessageHandler(client, queue);
207
- yield* Effect.addFinalizer(() => Effect.sync(() => {
208
- client.removeNotificationHandler(HARNESS_MESSAGE_READY_NOTIFICATION);
209
- }));
210
- const subscription = yield* acquireSubscription(client);
211
- yield* Effect.forkScoped(observeSubscription(subscription, queue));
212
- return Stream.fromQueue(queue).pipe(Stream.flattenTake);
211
+ const seen = new Set();
212
+ return inboxWakeups(endpoint).pipe(Stream.flatMap(() => pendingInbox(client, seen)));
213
213
  }));
214
214
  }
215
215
  function makeMcpClient() {
216
216
  return new Client(CLIENT_IMPLEMENTATION, {
217
- capabilities: {
218
- experimental: { [HARNESS_EVENTS_EXTENSION]: {} },
219
- },
217
+ capabilities: {},
220
218
  versionNegotiation: { mode: { pin: MODERN_PROTOCOL_VERSION } },
221
219
  });
222
220
  }
@@ -227,9 +225,11 @@ function acquireEndpoint(endpoint) {
227
225
  const listenerActive = yield* Ref.make(false);
228
226
  return {
229
227
  send: (input, options) => callSend(client, input, options),
230
- messages: messages(client, listenerActive),
228
+ messages: messages(client, listenerActive, endpoint),
231
229
  };
232
230
  });
233
231
  }
234
232
  /* eslint-enable agent-code-guard/promise-type, @typescript-eslint/no-invalid-void-type -- Restore strict defaults after the Promise-native MCP edge. */
235
- //# sourceMappingURL=client-runtime.js.map
233
+ /** The capability this module acquires, and its connect and delivery types. */
234
+ export { ConnectError, } from "./capability.js";
235
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/endpoint/harness-endpoint/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** @file The package version both loopback MCP peers report as their implementation version. */
2
+ /** The `@moltzap/client` package version, reported in MCP implementation info. */
3
+ export declare const packageVersion: string;
4
+ //# sourceMappingURL=implementation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementation.d.ts","sourceRoot":"","sources":["../../src/endpoint/implementation.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAIhG,kFAAkF;AAClF,eAAO,MAAM,cAAc,EAAE,MAA4B,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** @file The package version both loopback MCP peers report as their implementation version. */
2
+ import packageJson from "../../package.json" with { type: "json" };
3
+ /** The `@moltzap/client` package version, reported in MCP implementation info. */
4
+ export const packageVersion = packageJson.version;
5
+ //# sourceMappingURL=implementation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementation.js","sourceRoot":"","sources":["../../src/endpoint/implementation.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnE,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAW,WAAW,CAAC,OAAO,CAAC"}
@@ -0,0 +1,31 @@
1
+ /** @file Optional credential separation for tunneled runtime and owner requests. */
2
+ import { Redacted } from "effect";
3
+ /** File-loaded credentials never enter a model-visible MCP representation. */
4
+ export interface HarnessMcpCredentials {
5
+ readonly runtime: Redacted.Redacted;
6
+ readonly owner: Redacted.Redacted;
7
+ }
8
+ /** Trusted-local compatibility or an explicitly authenticated authority. */
9
+ export type HarnessMcpRole = "local" | "runtime" | "owner";
10
+ /**
11
+ * Compare fixed-size digests without disclosing credential bytes or lengths.
12
+ * @param supplied Presented bearer value.
13
+ * @param expected File-loaded private credential.
14
+ * @returns Whether both values denote the same authority.
15
+ */
16
+ export declare const credentialMatches: (supplied: string, expected: Redacted.Redacted) => boolean;
17
+ /**
18
+ * Authenticate before SDK or extension dispatch, including discovery and errors.
19
+ * @param request Incoming request on the guarded loopback listener.
20
+ * @param credentials Explicit tunneled-mode authority, absent in trusted-local mode.
21
+ * @returns The authorized role, or no authority for an invalid request.
22
+ */
23
+ export declare const authenticateHarnessRequest: (request: Request, credentials?: HarnessMcpCredentials) => HarnessMcpRole | undefined;
24
+ /**
25
+ * Keep raw protocol history and administrative authority outside the runtime.
26
+ * @param role Authenticated authority, supplied by the server wrapper.
27
+ * @param name Tool selected in the model's request.
28
+ * @returns Whether this role can invoke the selected tool.
29
+ */
30
+ export declare const mayInvokeHarnessTool: (role: HarnessMcpRole, name: string) => boolean;
31
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/endpoint/mcp/auth.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,8EAA8E;AAC9E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACnC;AAED,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAK3D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,aAClB,MAAM,YACN,QAAQ,CAAC,QAAQ,KAC1B,OACkE,CAAC;AAEtE;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,YAC5B,OAAO,gBACF,qBAAqB,KAClC,cAAc,GAAG,SAenB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,SACzB,cAAc,QACd,MAAM,KACX,OAE6D,CAAC"}
@@ -0,0 +1,42 @@
1
+ /** @file Optional credential separation for tunneled runtime and owner requests. */
2
+ import { Redacted } from "effect";
3
+ import { createHash, timingSafeEqual } from "node:crypto";
4
+ const digest = (value) => createHash("sha256").update(value).digest();
5
+ /**
6
+ * Compare fixed-size digests without disclosing credential bytes or lengths.
7
+ * @param supplied Presented bearer value.
8
+ * @param expected File-loaded private credential.
9
+ * @returns Whether both values denote the same authority.
10
+ */
11
+ export const credentialMatches = (supplied, expected) => timingSafeEqual(digest(supplied), digest(Redacted.value(expected)));
12
+ /**
13
+ * Authenticate before SDK or extension dispatch, including discovery and errors.
14
+ * @param request Incoming request on the guarded loopback listener.
15
+ * @param credentials Explicit tunneled-mode authority, absent in trusted-local mode.
16
+ * @returns The authorized role, or no authority for an invalid request.
17
+ */
18
+ export const authenticateHarnessRequest = (request, credentials) => {
19
+ if (credentials === undefined) {
20
+ return "local";
21
+ }
22
+ const authorization = request.headers.get("authorization");
23
+ if (authorization === null || !authorization.startsWith("Bearer ")) {
24
+ return undefined;
25
+ }
26
+ const supplied = authorization.slice("Bearer ".length);
27
+ if (credentialMatches(supplied, credentials.owner)) {
28
+ return "owner";
29
+ }
30
+ return credentialMatches(supplied, credentials.runtime)
31
+ ? "runtime"
32
+ : undefined;
33
+ };
34
+ /**
35
+ * Keep raw protocol history and administrative authority outside the runtime.
36
+ * @param role Authenticated authority, supplied by the server wrapper.
37
+ * @param name Tool selected in the model's request.
38
+ * @returns Whether this role can invoke the selected tool.
39
+ */
40
+ export const mayInvokeHarnessTool = (role, name) => role !== "runtime" ||
41
+ ["send_message", "read_event", "search_agents"].includes(name);
42
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/endpoint/mcp/auth.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAW1D,MAAM,MAAM,GAAG,CAAC,KAAa,EAAc,EAAE,CAC3C,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAAgB,EAChB,QAA2B,EAClB,EAAE,CACX,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,OAAgB,EAChB,WAAmC,EACP,EAAE;IAC9B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3D,IAAI,aAAa,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACnE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC;QACrD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAoB,EACpB,IAAY,EACH,EAAE,CACX,IAAI,KAAK,SAAS;IAClB,CAAC,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,151 @@
1
+ /** @file Shared schema and ports for the experimental MCP Events edge. */
2
+ import { type ProtocolError } from "@modelcontextprotocol/server";
3
+ import { type Effect, JSONSchema, Schema } from "effect";
4
+ /** Maximum complete UTF-8 callback body accepted by the event transport. */
5
+ export declare const maximumEventBytes: number;
6
+ /** Callback failures expose no upstream response or destination details. */
7
+ export declare const callbackReasons: readonly ["connection_refused", "timeout", "tls_error", "http_4xx", "http_5xx", "challenge_failed"];
8
+ /** Owner-visible diagnostics omit callback addresses and signing authority. */
9
+ declare const webhookStatusSchema: Schema.Struct<{
10
+ mode: Schema.Literal<["none", "push", "webhook"]>;
11
+ id: Schema.optional<typeof Schema.String>;
12
+ refreshBefore: Schema.optional<typeof Schema.String>;
13
+ pendingCount: Schema.optional<Schema.refine<number, typeof Schema.NonNegative>>;
14
+ stalled: Schema.optional<Schema.NullOr<Schema.Literal<["callback", "terminal"]>>>;
15
+ lastError: Schema.optional<Schema.NullOr<Schema.Literal<["connection_refused", "timeout", "tls_error", "http_4xx", "http_5xx", "challenge_failed"]>>>;
16
+ }>;
17
+ /** Secret-free diagnostics shared with the owner-only MCP tool. */
18
+ export type WebhookStatus = typeof webhookStatusSchema.Type;
19
+ /** JSON Schema for the owner-only, secret-free event status tool. */
20
+ export declare const webhookStatusJsonSchema: JSONSchema.JsonSchema7Root;
21
+ /** An absent cursor has the draft's explicit null meaning. */
22
+ declare const subscriptionSchema: Schema.Struct<{
23
+ name: typeof Schema.String;
24
+ arguments: Schema.Record$<typeof Schema.String, typeof Schema.Never>;
25
+ cursor: Schema.optionalWith<Schema.NullOr<typeof Schema.String>, {
26
+ exact: true;
27
+ }>;
28
+ maxAgeMs: Schema.optionalWith<Schema.refine<number, typeof Schema.NonNegative>, {
29
+ exact: true;
30
+ }>;
31
+ }>;
32
+ /** Delivery policy checks follow SDK shape validation. */
33
+ declare const subscribeSchema: Schema.Struct<{
34
+ name: typeof Schema.String;
35
+ arguments: Schema.Record$<typeof Schema.String, typeof Schema.Never>;
36
+ cursor: Schema.optionalWith<Schema.NullOr<typeof Schema.String>, {
37
+ exact: true;
38
+ }>;
39
+ maxAgeMs: Schema.optionalWith<Schema.refine<number, typeof Schema.NonNegative>, {
40
+ exact: true;
41
+ }>;
42
+ delivery: Schema.Struct<{
43
+ mode: typeof Schema.String;
44
+ url: typeof Schema.String;
45
+ secret: typeof Schema.String;
46
+ }>;
47
+ ttlMs: Schema.optionalWith<Schema.NullOr<Schema.refine<number, typeof Schema.NonNegative>>, {
48
+ exact: true;
49
+ }>;
50
+ }>;
51
+ /** Cleanup identifies the registration without disclosing its signing secret. */
52
+ declare const unsubscribeSchema: Schema.Struct<{
53
+ name: typeof Schema.String;
54
+ arguments: Schema.Record$<typeof Schema.String, typeof Schema.Never>;
55
+ delivery: Schema.Struct<{
56
+ url: typeof Schema.String;
57
+ }>;
58
+ }>;
59
+ /** Validated webhook subscription parameters before authorization and URL checks. */
60
+ export type EventSubscribeInput = typeof subscribeSchema.Type;
61
+ /** Exact subscription key supplied for eager webhook cleanup. */
62
+ export type EventUnsubscribeInput = typeof unsubscribeSchema.Type;
63
+ /** Server grant for one webhook registration. */
64
+ interface EventSubscriptionGrant {
65
+ readonly id: string;
66
+ readonly refreshBefore: string;
67
+ readonly cursor: null;
68
+ readonly truncated: boolean;
69
+ }
70
+ /** Durable webhook edge, available only for an authenticated runtime principal. */
71
+ export interface HarnessWebhookEvents {
72
+ readonly hasActiveSubscription: () => boolean;
73
+ readonly subscribe: (input: EventSubscribeInput, principal: string, authorize?: Effect.Effect<void, ProtocolError>) => Effect.Effect<EventSubscriptionGrant, ProtocolError>;
74
+ readonly unsubscribe: (input: EventUnsubscribeInput, principal: string) => Effect.Effect<void, ProtocolError>;
75
+ readonly observe: () => Effect.Effect<void, ProtocolError>;
76
+ readonly status: Effect.Effect<WebhookStatus, ProtocolError>;
77
+ readonly revoke: Effect.Effect<void, ProtocolError>;
78
+ readonly resume: Effect.Effect<void, ProtocolError>;
79
+ }
80
+ /** Native streaming uses the same event and replay grammar as callbacks. */
81
+ export type EventStreamInput = typeof subscriptionSchema.Type;
82
+ /** SDK boundary validation keeps schema constructors private. */
83
+ export declare const eventStreamInput: import("@modelcontextprotocol/server").StandardSchemaWithJSON<{
84
+ readonly name: string;
85
+ readonly arguments: {
86
+ readonly [x: string]: never;
87
+ };
88
+ readonly cursor?: string | null | undefined;
89
+ readonly maxAgeMs?: number | undefined;
90
+ }, {
91
+ readonly name: string;
92
+ readonly arguments: {
93
+ readonly [x: string]: never;
94
+ };
95
+ readonly cursor?: string | null | undefined;
96
+ readonly maxAgeMs?: number | undefined;
97
+ }>;
98
+ /** The event catalog has its own pagination grammar. */
99
+ export declare const eventListInput: import("@modelcontextprotocol/server").StandardSchemaWithJSON<{
100
+ readonly cursor?: string | undefined;
101
+ }, {
102
+ readonly cursor?: string | undefined;
103
+ }>;
104
+ /** Callback registration includes the signing authority and lease request. */
105
+ export declare const eventSubscribeInput: import("@modelcontextprotocol/server").StandardSchemaWithJSON<{
106
+ readonly name: string;
107
+ readonly arguments: {
108
+ readonly [x: string]: never;
109
+ };
110
+ readonly cursor?: string | null | undefined;
111
+ readonly maxAgeMs?: number | undefined;
112
+ readonly delivery: {
113
+ readonly mode: string;
114
+ readonly url: string;
115
+ readonly secret: string;
116
+ };
117
+ readonly ttlMs?: number | null | undefined;
118
+ }, {
119
+ readonly name: string;
120
+ readonly arguments: {
121
+ readonly [x: string]: never;
122
+ };
123
+ readonly cursor?: string | null | undefined;
124
+ readonly maxAgeMs?: number | undefined;
125
+ readonly delivery: {
126
+ readonly mode: string;
127
+ readonly url: string;
128
+ readonly secret: string;
129
+ };
130
+ readonly ttlMs?: number | null | undefined;
131
+ }>;
132
+ /** Cleanup uses only the subscription's public key fields. */
133
+ export declare const eventUnsubscribeInput: import("@modelcontextprotocol/server").StandardSchemaWithJSON<{
134
+ readonly name: string;
135
+ readonly arguments: {
136
+ readonly [x: string]: never;
137
+ };
138
+ readonly delivery: {
139
+ readonly url: string;
140
+ };
141
+ }, {
142
+ readonly name: string;
143
+ readonly arguments: {
144
+ readonly [x: string]: never;
145
+ };
146
+ readonly delivery: {
147
+ readonly url: string;
148
+ };
149
+ }>;
150
+ export {};
151
+ //# sourceMappingURL=event-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-schemas.d.ts","sourceRoot":"","sources":["../../../src/endpoint/mcp/event-schemas.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,KAAK,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzD,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,QAAa,CAAC;AAE5C,4EAA4E;AAC5E,eAAO,MAAM,eAAe,YAC1B,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,kBAAkB,CACV,CAAC;AACX,+EAA+E;AAC/E,QAAA,MAAM,mBAAmB;;;;;;;EASvB,CAAC;AAEH,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAC;AAE5D,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,4BAElC,CAAC;AAMH,8DAA8D;AAC9D,QAAA,MAAM,kBAAkB;;;;;;;;;EAKtB,CAAC;AAKH,0DAA0D;AAC1D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;EAUnB,CAAC;AACH,iFAAiF;AACjF,QAAA,MAAM,iBAAiB;;;;;;EAIrB,CAAC;AAEH,qFAAqF;AACrF,MAAM,MAAM,mBAAmB,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAC9D,iEAAiE;AACjE,MAAM,MAAM,qBAAqB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAClE,iDAAiD;AACjD,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,mFAAmF;AACnF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,OAAO,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,CAClB,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,KAC3C,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,CACpB,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;CACrD;AAQD,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC;AAC9D,iEAAiE;AACjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;EAA+B,CAAC;AAC7D,wDAAwD;AACxD,eAAO,MAAM,cAAc;;;;EAAuB,CAAC;AACnD,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;EAA4B,CAAC;AAC7D,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;EAA8B,CAAC"}