@moltzap/client 2026.1002.0 → 2026.1005.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 (515) hide show
  1. package/NOTICE +1 -6
  2. package/README.md +2 -2
  3. package/bin/moltzapd +2 -2
  4. package/dist/{harness-mcp-contract.d.ts → delivery/history-export.d.ts} +96 -136
  5. package/dist/delivery/history-export.d.ts.map +1 -0
  6. package/dist/{daemon/runtime → delivery}/history-export.js +36 -3
  7. package/dist/delivery/history-export.js.map +1 -0
  8. package/dist/delivery/host-delivery.d.ts +51 -0
  9. package/dist/delivery/host-delivery.d.ts.map +1 -0
  10. package/dist/delivery/host-delivery.js +109 -0
  11. package/dist/delivery/host-delivery.js.map +1 -0
  12. package/dist/delivery/inbox.d.ts +142 -0
  13. package/dist/delivery/inbox.d.ts.map +1 -0
  14. package/dist/delivery/inbox.js +130 -0
  15. package/dist/delivery/inbox.js.map +1 -0
  16. package/dist/delivery/index.d.ts +4 -0
  17. package/dist/delivery/index.d.ts.map +1 -0
  18. package/dist/delivery/index.js +4 -0
  19. package/dist/delivery/index.js.map +1 -0
  20. package/dist/delivery/operations.d.ts +787 -0
  21. package/dist/delivery/operations.d.ts.map +1 -0
  22. package/dist/delivery/operations.js +162 -0
  23. package/dist/delivery/operations.js.map +1 -0
  24. package/dist/delivery/pass.d.ts +91 -0
  25. package/dist/delivery/pass.d.ts.map +1 -0
  26. package/dist/{daemon/runtime/pending-delivery.js → delivery/pass.js} +61 -34
  27. package/dist/delivery/pass.js.map +1 -0
  28. package/dist/delivery/send-invocations.d.ts +106 -0
  29. package/dist/delivery/send-invocations.d.ts.map +1 -0
  30. package/dist/delivery/send-invocations.js +109 -0
  31. package/dist/delivery/send-invocations.js.map +1 -0
  32. package/dist/endpoint/harness-endpoint/capability.d.ts +39 -0
  33. package/dist/endpoint/harness-endpoint/capability.d.ts.map +1 -0
  34. package/dist/endpoint/harness-endpoint/capability.js +9 -0
  35. package/dist/endpoint/harness-endpoint/capability.js.map +1 -0
  36. package/dist/endpoint/harness-endpoint/events.d.ts +12 -0
  37. package/dist/endpoint/harness-endpoint/events.d.ts.map +1 -0
  38. package/dist/endpoint/harness-endpoint/events.js +199 -0
  39. package/dist/endpoint/harness-endpoint/events.js.map +1 -0
  40. package/dist/{client-runtime.d.ts → endpoint/harness-endpoint/index.d.ts} +4 -2
  41. package/dist/endpoint/harness-endpoint/index.d.ts.map +1 -0
  42. package/dist/{client-runtime.js → endpoint/harness-endpoint/index.js} +115 -115
  43. package/dist/endpoint/harness-endpoint/index.js.map +1 -0
  44. package/dist/endpoint/implementation.d.ts +4 -0
  45. package/dist/endpoint/implementation.d.ts.map +1 -0
  46. package/dist/endpoint/implementation.js +5 -0
  47. package/dist/endpoint/implementation.js.map +1 -0
  48. package/dist/endpoint/mcp/auth.d.ts +31 -0
  49. package/dist/endpoint/mcp/auth.d.ts.map +1 -0
  50. package/dist/endpoint/mcp/auth.js +42 -0
  51. package/dist/endpoint/mcp/auth.js.map +1 -0
  52. package/dist/endpoint/mcp/event-schemas.d.ts +151 -0
  53. package/dist/endpoint/mcp/event-schemas.d.ts.map +1 -0
  54. package/dist/endpoint/mcp/event-schemas.js +72 -0
  55. package/dist/endpoint/mcp/event-schemas.js.map +1 -0
  56. package/dist/endpoint/mcp/event-signing.d.ts +62 -0
  57. package/dist/endpoint/mcp/event-signing.d.ts.map +1 -0
  58. package/dist/endpoint/mcp/event-signing.js +185 -0
  59. package/dist/endpoint/mcp/event-signing.js.map +1 -0
  60. package/dist/endpoint/mcp/events.d.ts +45 -0
  61. package/dist/endpoint/mcp/events.d.ts.map +1 -0
  62. package/dist/endpoint/mcp/events.js +308 -0
  63. package/dist/endpoint/mcp/events.js.map +1 -0
  64. package/dist/{harness-mcp-http.d.ts → endpoint/mcp/http.d.ts} +1 -1
  65. package/dist/endpoint/mcp/http.d.ts.map +1 -0
  66. package/dist/{harness-mcp-http.js → endpoint/mcp/http.js} +1 -1
  67. package/dist/endpoint/mcp/http.js.map +1 -0
  68. package/dist/endpoint/mcp/index.d.ts +10 -0
  69. package/dist/endpoint/mcp/index.d.ts.map +1 -0
  70. package/dist/endpoint/mcp/index.js +8 -0
  71. package/dist/endpoint/mcp/index.js.map +1 -0
  72. package/dist/endpoint/mcp/names.d.ts +18 -0
  73. package/dist/endpoint/mcp/names.d.ts.map +1 -0
  74. package/dist/endpoint/mcp/names.js +18 -0
  75. package/dist/endpoint/mcp/names.js.map +1 -0
  76. package/dist/{management-runtime.d.ts → endpoint/mcp/owner-tools.d.ts} +7 -7
  77. package/dist/endpoint/mcp/owner-tools.d.ts.map +1 -0
  78. package/dist/{management-runtime.js → endpoint/mcp/owner-tools.js} +2 -4
  79. package/dist/endpoint/mcp/owner-tools.js.map +1 -0
  80. package/dist/endpoint/mcp/schemas.d.ts +42 -0
  81. package/dist/endpoint/mcp/schemas.d.ts.map +1 -0
  82. package/dist/endpoint/mcp/schemas.js +89 -0
  83. package/dist/endpoint/mcp/schemas.js.map +1 -0
  84. package/dist/{harness-mcp-wire.d.ts → endpoint/mcp/tools.d.ts} +17 -14
  85. package/dist/endpoint/mcp/tools.d.ts.map +1 -0
  86. package/dist/{harness-mcp-wire.js → endpoint/mcp/tools.js} +230 -110
  87. package/dist/endpoint/mcp/tools.js.map +1 -0
  88. package/dist/endpoint/mcp/webhook.d.ts +15 -0
  89. package/dist/endpoint/mcp/webhook.d.ts.map +1 -0
  90. package/dist/endpoint/mcp/webhook.js +359 -0
  91. package/dist/endpoint/mcp/webhook.js.map +1 -0
  92. package/dist/identity/credentials.d.ts +46 -0
  93. package/dist/identity/credentials.d.ts.map +1 -0
  94. package/dist/identity/credentials.js +55 -0
  95. package/dist/identity/credentials.js.map +1 -0
  96. package/dist/identity/index.d.ts +4 -0
  97. package/dist/identity/index.d.ts.map +1 -0
  98. package/dist/identity/index.js +4 -0
  99. package/dist/identity/index.js.map +1 -0
  100. package/dist/index.d.ts +21 -4
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +23 -5
  103. package/dist/index.js.map +1 -1
  104. package/dist/{contract.types-check.d.ts → index.types-check.d.ts} +12 -7
  105. package/dist/index.types-check.d.ts.map +1 -0
  106. package/dist/{contract.types-check.js → index.types-check.js} +6 -5
  107. package/dist/index.types-check.js.map +1 -0
  108. package/dist/{daemon/runtime/activation.d.ts → service/activation/index.d.ts} +11 -13
  109. package/dist/service/activation/index.d.ts.map +1 -0
  110. package/dist/{daemon/runtime/activation.js → service/activation/index.js} +3 -3
  111. package/dist/service/activation/index.js.map +1 -0
  112. package/dist/{daemon/configuration.d.ts → service/bootstrap.d.ts} +9 -17
  113. package/dist/service/bootstrap.d.ts.map +1 -0
  114. package/dist/service/bootstrap.js +6 -0
  115. package/dist/service/bootstrap.js.map +1 -0
  116. package/dist/service/configuration.d.ts +13 -0
  117. package/dist/service/configuration.d.ts.map +1 -0
  118. package/dist/service/configuration.js +75 -0
  119. package/dist/service/configuration.js.map +1 -0
  120. package/dist/{daemon/runtime → service}/controller.d.ts +9 -7
  121. package/dist/service/controller.d.ts.map +1 -0
  122. package/dist/service/controller.js +106 -0
  123. package/dist/service/controller.js.map +1 -0
  124. package/dist/{server.d.ts → service/index.d.ts} +7 -4
  125. package/dist/service/index.d.ts.map +1 -0
  126. package/dist/{server.js → service/index.js} +17 -15
  127. package/dist/service/index.js.map +1 -0
  128. package/dist/{server.types-check.d.ts → service/index.types-check.d.ts} +7 -7
  129. package/dist/service/index.types-check.d.ts.map +1 -0
  130. package/dist/{server.types-check.js → service/index.types-check.js} +1 -1
  131. package/dist/service/index.types-check.js.map +1 -0
  132. package/dist/{daemon/runtime/index.d.ts → service/lifecycle.d.ts} +4 -4
  133. package/dist/service/lifecycle.d.ts.map +1 -0
  134. package/dist/{daemon/runtime/index.js → service/lifecycle.js} +29 -26
  135. package/dist/service/lifecycle.js.map +1 -0
  136. package/dist/{daemon → service}/management.d.ts +3 -3
  137. package/dist/service/management.d.ts.map +1 -0
  138. package/dist/{daemon → service}/management.js +4 -14
  139. package/dist/service/management.js.map +1 -0
  140. package/dist/{daemon/registration.d.ts → service/registration/index.d.ts} +3 -3
  141. package/dist/service/registration/index.d.ts.map +1 -0
  142. package/dist/{daemon/registration.js → service/registration/index.js} +2 -3
  143. package/dist/service/registration/index.js.map +1 -0
  144. package/dist/{daemon/runtime/protocol.d.ts → service/supervision.d.ts} +17 -25
  145. package/dist/service/supervision.d.ts.map +1 -0
  146. package/dist/{daemon/runtime/protocol.js → service/supervision.js} +34 -37
  147. package/dist/service/supervision.js.map +1 -0
  148. package/dist/store/anchors.d.ts.map +1 -0
  149. package/dist/store/anchors.js.map +1 -0
  150. package/dist/store/database/index.d.ts.map +1 -0
  151. package/dist/store/database/index.js.map +1 -0
  152. package/dist/store/database/schema.d.ts.map +1 -0
  153. package/dist/{endpoint/store → store}/database/schema.js +42 -6
  154. package/dist/store/database/schema.js.map +1 -0
  155. package/dist/store/database/values.d.ts.map +1 -0
  156. package/dist/store/database/values.js.map +1 -0
  157. package/dist/store/inbox.d.ts +86 -0
  158. package/dist/store/inbox.d.ts.map +1 -0
  159. package/dist/store/inbox.js +269 -0
  160. package/dist/store/inbox.js.map +1 -0
  161. package/dist/store/index.d.ts +12 -0
  162. package/dist/store/index.d.ts.map +1 -0
  163. package/dist/store/index.js +8 -0
  164. package/dist/store/index.js.map +1 -0
  165. package/dist/{endpoint/store → store/queues}/deliveries.d.ts +9 -1
  166. package/dist/store/queues/deliveries.d.ts.map +1 -0
  167. package/dist/{endpoint/store → store/queues}/deliveries.js +19 -3
  168. package/dist/store/queues/deliveries.js.map +1 -0
  169. package/dist/{endpoint/store → store/queues}/dissemination.d.ts +4 -2
  170. package/dist/store/queues/dissemination.d.ts.map +1 -0
  171. package/dist/{endpoint/store → store/queues}/dissemination.js +5 -4
  172. package/dist/store/queues/dissemination.js.map +1 -0
  173. package/dist/store/queues/index.d.ts +5 -0
  174. package/dist/store/queues/index.d.ts.map +1 -0
  175. package/dist/store/queues/index.js +7 -0
  176. package/dist/store/queues/index.js.map +1 -0
  177. package/dist/{endpoint/store → store/queues}/outbound.d.ts +1 -1
  178. package/dist/store/queues/outbound.d.ts.map +1 -0
  179. package/dist/{endpoint/store → store/queues}/outbound.js +1 -1
  180. package/dist/store/queues/outbound.js.map +1 -0
  181. package/dist/{endpoint/store/management.d.ts → store/reads.d.ts} +1 -1
  182. package/dist/store/reads.d.ts.map +1 -0
  183. package/dist/{endpoint/store/management.js → store/reads.js} +2 -4
  184. package/dist/store/reads.js.map +1 -0
  185. package/dist/store/records.d.ts.map +1 -0
  186. package/dist/{endpoint/store → store}/records.js +1 -2
  187. package/dist/store/records.js.map +1 -0
  188. package/dist/store/rows/index.d.ts.map +1 -0
  189. package/dist/store/rows/index.js.map +1 -0
  190. package/dist/store/runtime-codec.d.ts +17 -0
  191. package/dist/store/runtime-codec.d.ts.map +1 -0
  192. package/dist/store/runtime-codec.js +32 -0
  193. package/dist/store/runtime-codec.js.map +1 -0
  194. package/dist/{endpoint/store/index.d.ts → store/store.d.ts} +2 -2
  195. package/dist/store/store.d.ts.map +1 -0
  196. package/dist/{endpoint/store/index.js → store/store.js} +34 -7
  197. package/dist/store/store.js.map +1 -0
  198. package/dist/{endpoint/store → store}/types.d.ts +41 -0
  199. package/dist/store/types.d.ts.map +1 -0
  200. package/dist/store/types.js.map +1 -0
  201. package/dist/transport/collectives/answer-formats.d.ts +21 -0
  202. package/dist/transport/collectives/answer-formats.d.ts.map +1 -0
  203. package/dist/transport/collectives/answer-formats.js +127 -0
  204. package/dist/transport/collectives/answer-formats.js.map +1 -0
  205. package/dist/transport/collectives/failures.d.ts +34 -0
  206. package/dist/transport/collectives/failures.d.ts.map +1 -0
  207. package/dist/transport/collectives/failures.js +40 -0
  208. package/dist/transport/collectives/failures.js.map +1 -0
  209. package/dist/transport/collectives/forms.d.ts +260 -0
  210. package/dist/transport/collectives/forms.d.ts.map +1 -0
  211. package/dist/transport/collectives/forms.js +214 -0
  212. package/dist/transport/collectives/forms.js.map +1 -0
  213. package/dist/transport/collectives/inbound.d.ts +129 -0
  214. package/dist/transport/collectives/inbound.d.ts.map +1 -0
  215. package/dist/transport/collectives/inbound.js +81 -0
  216. package/dist/transport/collectives/inbound.js.map +1 -0
  217. package/dist/transport/collectives/index.d.ts +10 -0
  218. package/dist/transport/collectives/index.d.ts.map +1 -0
  219. package/dist/transport/collectives/index.js +8 -0
  220. package/dist/transport/collectives/index.js.map +1 -0
  221. package/dist/{message-text.d.ts → transport/collectives/message-text.d.ts} +8 -4
  222. package/dist/transport/collectives/message-text.d.ts.map +1 -0
  223. package/dist/{message-text.js → transport/collectives/message-text.js} +23 -47
  224. package/dist/transport/collectives/message-text.js.map +1 -0
  225. package/dist/{endpoint/collective → transport/collectives}/operation.d.ts +35 -24
  226. package/dist/transport/collectives/operation.d.ts.map +1 -0
  227. package/dist/{endpoint/collective → transport/collectives}/operation.js +70 -105
  228. package/dist/transport/collectives/operation.js.map +1 -0
  229. package/dist/transport/collectives/part/grammar.d.ts +175 -0
  230. package/dist/transport/collectives/part/grammar.d.ts.map +1 -0
  231. package/dist/transport/collectives/part/grammar.js +222 -0
  232. package/dist/transport/collectives/part/grammar.js.map +1 -0
  233. package/dist/{endpoint/collective/wire.d.ts → transport/collectives/part/index.d.ts} +38 -51
  234. package/dist/transport/collectives/part/index.d.ts.map +1 -0
  235. package/dist/{endpoint/collective/wire.js → transport/collectives/part/index.js} +20 -122
  236. package/dist/transport/collectives/part/index.js.map +1 -0
  237. package/dist/{endpoint/collective → transport/collectives}/received-request.d.ts +2 -1
  238. package/dist/transport/collectives/received-request.d.ts.map +1 -0
  239. package/dist/transport/collectives/received-request.js.map +1 -0
  240. package/dist/transport/collectives/render.d.ts +40 -0
  241. package/dist/transport/collectives/render.d.ts.map +1 -0
  242. package/dist/transport/collectives/render.js +74 -0
  243. package/dist/transport/collectives/render.js.map +1 -0
  244. package/dist/{endpoint/collective → transport/collectives}/request-sends.d.ts +3 -2
  245. package/dist/transport/collectives/request-sends.d.ts.map +1 -0
  246. package/dist/transport/collectives/request-sends.js.map +1 -0
  247. package/dist/{endpoint/collective → transport/collectives}/shared-answers.d.ts +4 -3
  248. package/dist/transport/collectives/shared-answers.d.ts.map +1 -0
  249. package/dist/transport/collectives/shared-answers.js.map +1 -0
  250. package/dist/transport/collectives/validation.d.ts +31 -0
  251. package/dist/transport/collectives/validation.d.ts.map +1 -0
  252. package/dist/transport/collectives/validation.js +239 -0
  253. package/dist/transport/collectives/validation.js.map +1 -0
  254. package/dist/{endpoint/addressing/index.d.ts → transport/messaging/address.d.ts} +7 -4
  255. package/dist/transport/messaging/address.d.ts.map +1 -0
  256. package/dist/{endpoint/addressing/index.js → transport/messaging/address.js} +30 -26
  257. package/dist/transport/messaging/address.js.map +1 -0
  258. package/dist/{endpoint/protocol/index.d.ts → transport/messaging/certification.d.ts} +4 -4
  259. package/dist/transport/messaging/certification.d.ts.map +1 -0
  260. package/dist/{endpoint/protocol/index.js → transport/messaging/certification.js} +15 -10
  261. package/dist/transport/messaging/certification.js.map +1 -0
  262. package/dist/{endpoint/engine-dissemination.d.ts → transport/messaging/dissemination.d.ts} +3 -3
  263. package/dist/transport/messaging/dissemination.d.ts.map +1 -0
  264. package/dist/{endpoint/engine-dissemination.js → transport/messaging/dissemination.js} +7 -6
  265. package/dist/transport/messaging/dissemination.js.map +1 -0
  266. package/dist/transport/messaging/errors.d.ts +50 -0
  267. package/dist/transport/messaging/errors.d.ts.map +1 -0
  268. package/dist/transport/messaging/errors.js +64 -0
  269. package/dist/transport/messaging/errors.js.map +1 -0
  270. package/dist/{endpoint/protocol → transport/messaging}/evidence.d.ts +3 -3
  271. package/dist/transport/messaging/evidence.d.ts.map +1 -0
  272. package/dist/{endpoint/protocol → transport/messaging}/evidence.js +1 -1
  273. package/dist/transport/messaging/evidence.js.map +1 -0
  274. package/dist/{endpoint/engine.d.ts → transport/messaging/index.d.ts} +4 -4
  275. package/dist/transport/messaging/index.d.ts.map +1 -0
  276. package/dist/{endpoint/engine.js → transport/messaging/index.js} +25 -9
  277. package/dist/transport/messaging/index.js.map +1 -0
  278. package/dist/transport/messaging/message.d.ts +112 -0
  279. package/dist/transport/messaging/message.d.ts.map +1 -0
  280. package/dist/transport/messaging/message.js +38 -0
  281. package/dist/transport/messaging/message.js.map +1 -0
  282. package/dist/{endpoint/recovery → transport/messaging}/reanchor/empty.d.ts +5 -5
  283. package/dist/transport/messaging/reanchor/empty.d.ts.map +1 -0
  284. package/dist/{endpoint/recovery → transport/messaging}/reanchor/empty.js +3 -3
  285. package/dist/transport/messaging/reanchor/empty.js.map +1 -0
  286. package/dist/{endpoint/recovery → transport/messaging}/reanchor/index.d.ts +3 -3
  287. package/dist/transport/messaging/reanchor/index.d.ts.map +1 -0
  288. package/dist/{endpoint/recovery → transport/messaging}/reanchor/index.js +27 -12
  289. package/dist/transport/messaging/reanchor/index.js.map +1 -0
  290. package/dist/{endpoint/engine-durability.d.ts → transport/messaging/records/index.d.ts} +9 -6
  291. package/dist/transport/messaging/records/index.d.ts.map +1 -0
  292. package/dist/{endpoint/engine-durability.js → transport/messaging/records/index.js} +9 -15
  293. package/dist/transport/messaging/records/index.js.map +1 -0
  294. package/dist/{endpoint → transport/messaging}/recovery/barrier.d.ts +1 -1
  295. package/dist/transport/messaging/recovery/barrier.d.ts.map +1 -0
  296. package/dist/transport/messaging/recovery/barrier.js.map +1 -0
  297. package/dist/{endpoint/recovery/store-evidence.d.ts → transport/messaging/recovery/evidence.d.ts} +5 -5
  298. package/dist/transport/messaging/recovery/evidence.d.ts.map +1 -0
  299. package/dist/{endpoint/recovery/store-evidence.js → transport/messaging/recovery/evidence.js} +3 -3
  300. package/dist/transport/messaging/recovery/evidence.js.map +1 -0
  301. package/dist/{endpoint → transport/messaging}/recovery/index.d.ts +4 -4
  302. package/dist/transport/messaging/recovery/index.d.ts.map +1 -0
  303. package/dist/{endpoint → transport/messaging}/recovery/index.js +41 -32
  304. package/dist/transport/messaging/recovery/index.js.map +1 -0
  305. package/dist/{endpoint/recovery/store.d.ts → transport/messaging/recovery/persistence.d.ts} +5 -5
  306. package/dist/transport/messaging/recovery/persistence.d.ts.map +1 -0
  307. package/dist/{endpoint/recovery/store.js → transport/messaging/recovery/persistence.js} +4 -4
  308. package/dist/transport/messaging/recovery/persistence.js.map +1 -0
  309. package/dist/{endpoint/recovery/state.d.ts → transport/messaging/recovery-session/index.d.ts} +6 -6
  310. package/dist/transport/messaging/recovery-session/index.d.ts.map +1 -0
  311. package/dist/{endpoint/recovery/state.js → transport/messaging/recovery-session/index.js} +3 -3
  312. package/dist/transport/messaging/recovery-session/index.js.map +1 -0
  313. package/dist/{endpoint/engine-types.d.ts → transport/messaging/runtime/index.d.ts} +22 -5
  314. package/dist/transport/messaging/runtime/index.d.ts.map +1 -0
  315. package/dist/{endpoint/engine-types.js → transport/messaging/runtime/index.js} +1 -1
  316. package/dist/transport/messaging/runtime/index.js.map +1 -0
  317. package/dist/{endpoint/engine-send.d.ts → transport/messaging/send.d.ts} +5 -4
  318. package/dist/transport/messaging/send.d.ts.map +1 -0
  319. package/dist/{endpoint/engine-send.js → transport/messaging/send.js} +4 -4
  320. package/dist/transport/messaging/send.js.map +1 -0
  321. package/dist/transport/router/index.d.ts.map +1 -0
  322. package/dist/{endpoint/router-worker → transport/router}/index.js +1 -1
  323. package/dist/transport/router/index.js.map +1 -0
  324. package/dist/transport/router/outage.d.ts.map +1 -0
  325. package/dist/transport/router/outage.js.map +1 -0
  326. package/dist/{endpoint/router-worker → transport/router}/types.d.ts +3 -4
  327. package/dist/transport/router/types.d.ts.map +1 -0
  328. package/dist/transport/router/types.js.map +1 -0
  329. package/dist/{endpoint/representation-canonical.d.ts → transport/wire/encoding/canonical.d.ts} +1 -2
  330. package/dist/transport/wire/encoding/canonical.d.ts.map +1 -0
  331. package/dist/{endpoint/representation-canonical.js → transport/wire/encoding/canonical.js} +2 -2
  332. package/dist/transport/wire/encoding/canonical.js.map +1 -0
  333. package/dist/{endpoint/representation-codec.d.ts → transport/wire/encoding/codec.d.ts} +5 -9
  334. package/dist/transport/wire/encoding/codec.d.ts.map +1 -0
  335. package/dist/{endpoint/representation-codec.js → transport/wire/encoding/codec.js} +7 -27
  336. package/dist/transport/wire/encoding/codec.js.map +1 -0
  337. package/dist/transport/wire/encoding/index.d.ts +4 -0
  338. package/dist/transport/wire/encoding/index.d.ts.map +1 -0
  339. package/dist/transport/wire/encoding/index.js +6 -0
  340. package/dist/transport/wire/encoding/index.js.map +1 -0
  341. package/dist/transport/wire/index.d.ts +6 -0
  342. package/dist/transport/wire/index.d.ts.map +1 -0
  343. package/dist/transport/wire/index.js +9 -0
  344. package/dist/transport/wire/index.js.map +1 -0
  345. package/dist/{endpoint/representation-schemas.d.ts → transport/wire/schemas.d.ts} +76 -98
  346. package/dist/transport/wire/schemas.d.ts.map +1 -0
  347. package/dist/{endpoint/representation-schemas.js → transport/wire/schemas.js} +7 -19
  348. package/dist/transport/wire/schemas.js.map +1 -0
  349. package/dist/transport/wire/values.d.ts +114 -0
  350. package/dist/transport/wire/values.d.ts.map +1 -0
  351. package/dist/transport/wire/values.js +192 -0
  352. package/dist/transport/wire/values.js.map +1 -0
  353. package/dist/{endpoint/representation-verification.d.ts → transport/wire/verification.d.ts} +3 -4
  354. package/dist/transport/wire/verification.d.ts.map +1 -0
  355. package/dist/{endpoint/representation-verification.js → transport/wire/verification.js} +4 -4
  356. package/dist/transport/wire/verification.js.map +1 -0
  357. package/package.json +6 -6
  358. package/dist/client-runtime.d.ts.map +0 -1
  359. package/dist/client-runtime.js.map +0 -1
  360. package/dist/contract.d.ts +0 -721
  361. package/dist/contract.d.ts.map +0 -1
  362. package/dist/contract.js +0 -441
  363. package/dist/contract.js.map +0 -1
  364. package/dist/contract.types-check.d.ts.map +0 -1
  365. package/dist/contract.types-check.js.map +0 -1
  366. package/dist/daemon/configuration.d.ts.map +0 -1
  367. package/dist/daemon/configuration.js +0 -75
  368. package/dist/daemon/configuration.js.map +0 -1
  369. package/dist/daemon/management.d.ts.map +0 -1
  370. package/dist/daemon/management.js.map +0 -1
  371. package/dist/daemon/registration.d.ts.map +0 -1
  372. package/dist/daemon/registration.js.map +0 -1
  373. package/dist/daemon/runtime/activation.d.ts.map +0 -1
  374. package/dist/daemon/runtime/activation.js.map +0 -1
  375. package/dist/daemon/runtime/controller.d.ts.map +0 -1
  376. package/dist/daemon/runtime/controller.js +0 -138
  377. package/dist/daemon/runtime/controller.js.map +0 -1
  378. package/dist/daemon/runtime/history-export.d.ts +0 -33
  379. package/dist/daemon/runtime/history-export.d.ts.map +0 -1
  380. package/dist/daemon/runtime/history-export.js.map +0 -1
  381. package/dist/daemon/runtime/index.d.ts.map +0 -1
  382. package/dist/daemon/runtime/index.js.map +0 -1
  383. package/dist/daemon/runtime/pending-delivery.d.ts +0 -49
  384. package/dist/daemon/runtime/pending-delivery.d.ts.map +0 -1
  385. package/dist/daemon/runtime/pending-delivery.js.map +0 -1
  386. package/dist/daemon/runtime/protocol.d.ts.map +0 -1
  387. package/dist/daemon/runtime/protocol.js.map +0 -1
  388. package/dist/endpoint/addressing/index.d.ts.map +0 -1
  389. package/dist/endpoint/addressing/index.js.map +0 -1
  390. package/dist/endpoint/collective/operation.d.ts.map +0 -1
  391. package/dist/endpoint/collective/operation.js.map +0 -1
  392. package/dist/endpoint/collective/received-request.d.ts.map +0 -1
  393. package/dist/endpoint/collective/received-request.js.map +0 -1
  394. package/dist/endpoint/collective/request-sends.d.ts.map +0 -1
  395. package/dist/endpoint/collective/request-sends.js.map +0 -1
  396. package/dist/endpoint/collective/shared-answers.d.ts.map +0 -1
  397. package/dist/endpoint/collective/shared-answers.js.map +0 -1
  398. package/dist/endpoint/collective/validation.d.ts +0 -49
  399. package/dist/endpoint/collective/validation.d.ts.map +0 -1
  400. package/dist/endpoint/collective/validation.js +0 -97
  401. package/dist/endpoint/collective/validation.js.map +0 -1
  402. package/dist/endpoint/collective/wire.d.ts.map +0 -1
  403. package/dist/endpoint/collective/wire.js.map +0 -1
  404. package/dist/endpoint/engine-dissemination.d.ts.map +0 -1
  405. package/dist/endpoint/engine-dissemination.js.map +0 -1
  406. package/dist/endpoint/engine-durability.d.ts.map +0 -1
  407. package/dist/endpoint/engine-durability.js.map +0 -1
  408. package/dist/endpoint/engine-send.d.ts.map +0 -1
  409. package/dist/endpoint/engine-send.js.map +0 -1
  410. package/dist/endpoint/engine-types.d.ts.map +0 -1
  411. package/dist/endpoint/engine-types.js.map +0 -1
  412. package/dist/endpoint/engine.d.ts.map +0 -1
  413. package/dist/endpoint/engine.js.map +0 -1
  414. package/dist/endpoint/protocol/evidence.d.ts.map +0 -1
  415. package/dist/endpoint/protocol/evidence.js.map +0 -1
  416. package/dist/endpoint/protocol/index.d.ts.map +0 -1
  417. package/dist/endpoint/protocol/index.js.map +0 -1
  418. package/dist/endpoint/recovery/barrier.d.ts.map +0 -1
  419. package/dist/endpoint/recovery/barrier.js.map +0 -1
  420. package/dist/endpoint/recovery/index.d.ts.map +0 -1
  421. package/dist/endpoint/recovery/index.js.map +0 -1
  422. package/dist/endpoint/recovery/reanchor/empty.d.ts.map +0 -1
  423. package/dist/endpoint/recovery/reanchor/empty.js.map +0 -1
  424. package/dist/endpoint/recovery/reanchor/index.d.ts.map +0 -1
  425. package/dist/endpoint/recovery/reanchor/index.js.map +0 -1
  426. package/dist/endpoint/recovery/state.d.ts.map +0 -1
  427. package/dist/endpoint/recovery/state.js.map +0 -1
  428. package/dist/endpoint/recovery/store-evidence.d.ts.map +0 -1
  429. package/dist/endpoint/recovery/store-evidence.js.map +0 -1
  430. package/dist/endpoint/recovery/store.d.ts.map +0 -1
  431. package/dist/endpoint/recovery/store.js.map +0 -1
  432. package/dist/endpoint/representation-canonical.d.ts.map +0 -1
  433. package/dist/endpoint/representation-canonical.js.map +0 -1
  434. package/dist/endpoint/representation-codec.d.ts.map +0 -1
  435. package/dist/endpoint/representation-codec.js.map +0 -1
  436. package/dist/endpoint/representation-schemas.d.ts.map +0 -1
  437. package/dist/endpoint/representation-schemas.js.map +0 -1
  438. package/dist/endpoint/representation-verification.d.ts.map +0 -1
  439. package/dist/endpoint/representation-verification.js.map +0 -1
  440. package/dist/endpoint/representation.d.ts +0 -6
  441. package/dist/endpoint/representation.d.ts.map +0 -1
  442. package/dist/endpoint/representation.js +0 -8
  443. package/dist/endpoint/representation.js.map +0 -1
  444. package/dist/endpoint/router-worker/index.d.ts.map +0 -1
  445. package/dist/endpoint/router-worker/index.js.map +0 -1
  446. package/dist/endpoint/router-worker/outage.d.ts.map +0 -1
  447. package/dist/endpoint/router-worker/outage.js.map +0 -1
  448. package/dist/endpoint/router-worker/types.d.ts.map +0 -1
  449. package/dist/endpoint/router-worker/types.js.map +0 -1
  450. package/dist/endpoint/store/anchors.d.ts.map +0 -1
  451. package/dist/endpoint/store/anchors.js.map +0 -1
  452. package/dist/endpoint/store/database/index.d.ts.map +0 -1
  453. package/dist/endpoint/store/database/index.js.map +0 -1
  454. package/dist/endpoint/store/database/schema.d.ts.map +0 -1
  455. package/dist/endpoint/store/database/schema.js.map +0 -1
  456. package/dist/endpoint/store/database/values.d.ts.map +0 -1
  457. package/dist/endpoint/store/database/values.js.map +0 -1
  458. package/dist/endpoint/store/deliveries.d.ts.map +0 -1
  459. package/dist/endpoint/store/deliveries.js.map +0 -1
  460. package/dist/endpoint/store/dissemination.d.ts.map +0 -1
  461. package/dist/endpoint/store/dissemination.js.map +0 -1
  462. package/dist/endpoint/store/index.d.ts.map +0 -1
  463. package/dist/endpoint/store/index.js.map +0 -1
  464. package/dist/endpoint/store/management.d.ts.map +0 -1
  465. package/dist/endpoint/store/management.js.map +0 -1
  466. package/dist/endpoint/store/outbound.d.ts.map +0 -1
  467. package/dist/endpoint/store/outbound.js.map +0 -1
  468. package/dist/endpoint/store/records.d.ts.map +0 -1
  469. package/dist/endpoint/store/records.js.map +0 -1
  470. package/dist/endpoint/store/rows/index.d.ts.map +0 -1
  471. package/dist/endpoint/store/rows/index.js.map +0 -1
  472. package/dist/endpoint/store/types.d.ts.map +0 -1
  473. package/dist/endpoint/store/types.js.map +0 -1
  474. package/dist/endpoint/store.d.ts +0 -10
  475. package/dist/endpoint/store.d.ts.map +0 -1
  476. package/dist/endpoint/store.js +0 -6
  477. package/dist/endpoint/store.js.map +0 -1
  478. package/dist/harness-mcp-contract.d.ts.map +0 -1
  479. package/dist/harness-mcp-contract.js +0 -113
  480. package/dist/harness-mcp-contract.js.map +0 -1
  481. package/dist/harness-mcp-http.d.ts.map +0 -1
  482. package/dist/harness-mcp-http.js.map +0 -1
  483. package/dist/harness-mcp-subscription.d.ts +0 -30
  484. package/dist/harness-mcp-subscription.d.ts.map +0 -1
  485. package/dist/harness-mcp-subscription.js +0 -361
  486. package/dist/harness-mcp-subscription.js.map +0 -1
  487. package/dist/harness-mcp-wire.d.ts.map +0 -1
  488. package/dist/harness-mcp-wire.js.map +0 -1
  489. package/dist/management-runtime.d.ts.map +0 -1
  490. package/dist/management-runtime.js.map +0 -1
  491. package/dist/message-text.d.ts.map +0 -1
  492. package/dist/message-text.js.map +0 -1
  493. package/dist/server.d.ts.map +0 -1
  494. package/dist/server.js.map +0 -1
  495. package/dist/server.types-check.d.ts.map +0 -1
  496. package/dist/server.types-check.js.map +0 -1
  497. /package/dist/{endpoint/store → store}/anchors.d.ts +0 -0
  498. /package/dist/{endpoint/store → store}/anchors.js +0 -0
  499. /package/dist/{endpoint/store → store}/database/index.d.ts +0 -0
  500. /package/dist/{endpoint/store → store}/database/index.js +0 -0
  501. /package/dist/{endpoint/store → store}/database/schema.d.ts +0 -0
  502. /package/dist/{endpoint/store → store}/database/values.d.ts +0 -0
  503. /package/dist/{endpoint/store → store}/database/values.js +0 -0
  504. /package/dist/{endpoint/store → store}/records.d.ts +0 -0
  505. /package/dist/{endpoint/store → store}/rows/index.d.ts +0 -0
  506. /package/dist/{endpoint/store → store}/rows/index.js +0 -0
  507. /package/dist/{endpoint/store → store}/types.js +0 -0
  508. /package/dist/{endpoint/collective → transport/collectives}/received-request.js +0 -0
  509. /package/dist/{endpoint/collective → transport/collectives}/request-sends.js +0 -0
  510. /package/dist/{endpoint/collective → transport/collectives}/shared-answers.js +0 -0
  511. /package/dist/{endpoint → transport/messaging}/recovery/barrier.js +0 -0
  512. /package/dist/{endpoint/router-worker → transport/router}/index.d.ts +0 -0
  513. /package/dist/{endpoint/router-worker → transport/router}/outage.d.ts +0 -0
  514. /package/dist/{endpoint/router-worker → transport/router}/outage.js +0 -0
  515. /package/dist/{endpoint/router-worker → transport/router}/types.js +0 -0
@@ -0,0 +1,214 @@
1
+ /** @file Collective operations, answers and the closed errors of a refused collective send. */
2
+ import { Data, ParseResult, Schema } from "effect";
3
+ import { sendFailureReasons, sendFailureText, } from "../messaging/errors.js";
4
+ import { AgentAddress, exactStruct, isCanonicalIdentifier, JsonValue, MessageAddressInput, wellFormedString, } from "../wire/values.js";
5
+ /* eslint-disable @typescript-eslint/naming-convention, @typescript-eslint/no-redeclare -- Effect Schemas share their domain names with the nominal values they decode. */
6
+ /**
7
+ * Identity of one gather or all_gather, minted by the requesting endpoint.
8
+ * The request, each member's answer post, an all_gather's close, the result
9
+ * and any failure carry it. An answer that matches no single open request is
10
+ * refused under an id minted for the refusal, so its failure is named too.
11
+ */
12
+ export const CollectiveId = Schema.String.pipe(Schema.filter((value) => isCanonicalIdentifier("col_", value), {
13
+ description: "A collective operation id: col_ followed by 43 base64url characters",
14
+ }), Schema.brand("CollectiveId"));
15
+ /** One property of a form-mode schema as a caller states it. */
16
+ const formProperty = Schema.Record({ key: Schema.String, value: JsonValue });
17
+ /**
18
+ * The MCP form-mode `requestedSchema` of a collecting operation: a flat object
19
+ * of primitive properties. This schema fixes its outline; the sending endpoint
20
+ * checks each property against the MCP form-mode grammar before any post.
21
+ */
22
+ export const RequestedSchema = exactStruct({
23
+ $schema: Schema.optionalWith(Schema.String, { exact: true }),
24
+ type: Schema.Literal("object"),
25
+ properties: Schema.Record({ key: Schema.String, value: formProperty }),
26
+ required: Schema.optionalWith(Schema.Array(Schema.String), { exact: true }),
27
+ });
28
+ /**
29
+ * One answer to a collecting operation, field by field. Its value space is MCP
30
+ * `ElicitResult` content's; the request's schema decides which fields apply.
31
+ */
32
+ export const AnswerContent = Schema.Record({
33
+ key: Schema.String,
34
+ value: Schema.Union(Schema.String, Schema.Number.pipe(Schema.finite()), Schema.Boolean, Schema.Array(Schema.String)),
35
+ }).annotations({
36
+ description: "The answer, one field per requestedSchema property",
37
+ });
38
+ /** The longest deadline a collecting operation may state: 30 days, in seconds. */
39
+ export const MAXIMUM_DEADLINE_SECONDS = 2_592_000;
40
+ /** A collecting operation's relative deadline: whole seconds, up to 30 days. */
41
+ export const DeadlineSeconds = Schema.Number.pipe(Schema.int(), Schema.between(1, MAXIMUM_DEADLINE_SECONDS));
42
+ /**
43
+ * Multicast: one post to the `to` address, complete when certified. `op`
44
+ * defaults to multicast, so an omitted `op` and an omitted `collective` mean
45
+ * the same operation.
46
+ */
47
+ const multicastOperation = exactStruct({
48
+ op: Schema.optionalWith(Schema.Literal("multicast"), { exact: true }),
49
+ });
50
+ /**
51
+ * A collecting operation: the text is a question to every member of `to`.
52
+ * A gather sends one request post to each member, in that member's direct
53
+ * conversation with the requester, and only the requester receives the
54
+ * result. An all_gather sends one request post to the `group:` conversation
55
+ * `to` names; members answer there, no model sees a peer's answer before the
56
+ * requester's close, and every member receives the same result. The deadline
57
+ * is relative, in whole seconds; the sending endpoint converts it to an
58
+ * absolute time at send.
59
+ */
60
+ const collectingOperation = exactStruct({
61
+ op: Schema.Literal("gather", "all_gather"),
62
+ deadline: DeadlineSeconds,
63
+ requestedSchema: RequestedSchema,
64
+ });
65
+ /** The collective operation one send performs, discriminated by `op`. */
66
+ const CollectiveOperation = Schema.Union(multicastOperation, collectingOperation);
67
+ /** An `accept` answer, the only one that carries content. */
68
+ export const AcceptResponse = exactStruct({
69
+ action: Schema.Literal("accept"),
70
+ content: AnswerContent,
71
+ });
72
+ /** A `decline` answer. */
73
+ export const DeclineResponse = exactStruct({
74
+ action: Schema.Literal("decline"),
75
+ });
76
+ /**
77
+ * A member's answer to the one request open in the conversation it is sent
78
+ * to: the requester's direct conversation for a gather, the group for an
79
+ * all_gather. It is MCP's `ElicitResult`; only `accept` carries content,
80
+ * valid against the request's schema.
81
+ */
82
+ const CollectiveResponse = Schema.Union(AcceptResponse, DeclineResponse);
83
+ /**
84
+ * One send to one address: text with its collective operation, multicast
85
+ * when `collective` is omitted, or an answer to the request open in that
86
+ * address's conversation. `parseMessageText` reads both from a message's
87
+ * text.
88
+ */
89
+ export const SendInput = Schema.Union(exactStruct({
90
+ to: MessageAddressInput,
91
+ text: wellFormedString,
92
+ collective: Schema.optionalWith(CollectiveOperation, { exact: true }),
93
+ }), exactStruct({
94
+ to: MessageAddressInput,
95
+ collectiveResponse: CollectiveResponse,
96
+ })).annotations({ identifier: "SendInput" });
97
+ /** Members a send could not reach, each with its send failure's reason. */
98
+ const unreachableMembers = Schema.NonEmptyArray(exactStruct({
99
+ member: AgentAddress,
100
+ reason: Schema.Literal(...sendFailureReasons),
101
+ }));
102
+ /**
103
+ * Why a collective send was refused, discriminated by `kind`: a gather or
104
+ * all_gather whose schema is outside the form-mode grammar or whose request
105
+ * post some member could not receive, or a response the member's endpoint
106
+ * cannot send.
107
+ */
108
+ const collectiveFailure = Schema.Union(exactStruct({
109
+ kind: Schema.Literal("members-unreachable"),
110
+ members: unreachableMembers,
111
+ }), exactStruct({
112
+ kind: Schema.Literal("schema-invalid"),
113
+ detail: Schema.String,
114
+ }), exactStruct({
115
+ kind: Schema.Literal("answer-invalid"),
116
+ fields: Schema.NonEmptyArray(exactStruct({
117
+ field: Schema.String,
118
+ reason: Schema.Literal("missing", "unexpected", "invalid"),
119
+ detail: Schema.optionalWith(Schema.String, { exact: true }),
120
+ })),
121
+ }), exactStruct({ kind: Schema.Literal("request-none") }), exactStruct({ kind: Schema.Literal("request-ambiguous") }), exactStruct({ kind: Schema.Literal("request-answered") }), exactStruct({ kind: Schema.Literal("request-expired") }));
122
+ /**
123
+ * Decode a collective failure carried across the loopback MCP boundary.
124
+ * @param value Untrusted failure detail from a refused send's error data.
125
+ * @returns The validated failure.
126
+ */
127
+ export const decodeCollectiveFailure = Schema.decodeUnknown(collectiveFailure);
128
+ /**
129
+ * The text of an all_gather whose close could not be certified: no member
130
+ * received a result, so the question ended without one.
131
+ * @param reason Why the close post failed.
132
+ * @returns The `operationFailed` text the asker's model reads.
133
+ */
134
+ export function closeFailureText(reason) {
135
+ return `all_gather failed: the result could not be shared with the group: ${sendFailureText[reason]}`;
136
+ }
137
+ /**
138
+ * One line per issue of a decode failure, each led by its path, such as
139
+ * `requestedSchema.type: Expected "object", actual "obj"`, joined by `; `.
140
+ * A model repairs its input from this text alone.
141
+ * @param error The failed decode.
142
+ * @returns The issues as text.
143
+ */
144
+ export const describeIssues = (error) => ParseResult.ArrayFormatter.formatErrorSync(error)
145
+ .map(({ path, message }) => path.length === 0 ? message : `${path.map(String).join(".")}: ${message}`)
146
+ .join("; ");
147
+ /** What each answer-field problem means. */
148
+ const answerFieldText = {
149
+ missing: "is missing",
150
+ unexpected: "is not in the form",
151
+ invalid: "is invalid",
152
+ };
153
+ /**
154
+ * Name each failing answer field, such as `field "slot" is invalid (enum)`.
155
+ * A refused reply and a member's `invalid` outcome read the same.
156
+ * @param fields The failing fields, in validation order.
157
+ * @returns One clause per field, joined by `; `.
158
+ */
159
+ export function answerFieldsText(fields) {
160
+ return fields
161
+ .map(({ field, reason, detail }) => {
162
+ const problem = answerFieldText[reason];
163
+ return detail === undefined
164
+ ? `field "${field}" ${problem}`
165
+ : `field "${field}" ${problem} (${detail})`;
166
+ })
167
+ .join("; ");
168
+ }
169
+ function describeCollectiveFailure(failure) {
170
+ switch (failure.kind) {
171
+ case "members-unreachable":
172
+ return `send failed: ${failure.members
173
+ .map(({ member, reason }) => reason === "unknown-agent"
174
+ ? `${member} is not a known agent`
175
+ : `${member} could not be reached: ${sendFailureText[reason]}`)
176
+ .join("; ")}`;
177
+ case "schema-invalid":
178
+ return `send failed: the form is invalid (${failure.detail})`;
179
+ case "answer-invalid":
180
+ return `reply failed: ${answerFieldsText(failure.fields)}`;
181
+ case "request-none":
182
+ return "reply failed: no question is open in this conversation";
183
+ case "request-ambiguous":
184
+ return "reply failed: more than one question is open in this conversation, and answering one of several is not supported";
185
+ case "request-answered":
186
+ return "reply failed: the question was already answered";
187
+ case "request-expired":
188
+ return "reply failed: the question's deadline has passed";
189
+ default: {
190
+ const exhaustive = failure;
191
+ return exhaustive;
192
+ }
193
+ }
194
+ }
195
+ /**
196
+ * The service could not keep an item the layer emitted. The service has
197
+ * already reported its own failure, so the layer only stops the work that
198
+ * emitted the item.
199
+ */
200
+ export class CollectiveEmitError extends Data.TaggedError("CollectiveEmitError") {
201
+ }
202
+ /**
203
+ * A gather, all_gather or answer was refused. The message is what a host
204
+ * hands its model as the tool error: the failed action and its cause, naming
205
+ * each unreachable member or failing field. The operation id stays in the
206
+ * error's data, not its message.
207
+ */
208
+ export class CollectiveError extends Data.TaggedError("CollectiveError") {
209
+ get message() {
210
+ return describeCollectiveFailure(this.failure);
211
+ }
212
+ }
213
+ /* eslint-enable @typescript-eslint/naming-convention, @typescript-eslint/no-redeclare -- Restore the package naming rules after the Schema/type pairs. */
214
+ //# sourceMappingURL=forms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/transport/collectives/forms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ /** @file The items an endpoint delivers to its host: messages and collective requests, results and failures. */
2
+ import { Schema } from "effect";
3
+ /**
4
+ * One member's outcome in a completed gather or all_gather, discriminated by
5
+ * `kind`. `no-answer` covers every member that did not answer: one whose
6
+ * request post was refused or not certified in time, and one silent at the
7
+ * deadline.
8
+ */
9
+ declare const memberOutcome: Schema.Union<[Schema.Struct<{
10
+ kind: Schema.Literal<["answered"]>;
11
+ content: Schema.Record$<typeof Schema.String, Schema.Union<[typeof Schema.String, Schema.filter<typeof Schema.Number>, typeof Schema.Boolean, Schema.Array$<typeof Schema.String>]>>;
12
+ }>, Schema.Struct<{
13
+ kind: Schema.Literal<["declined"]>;
14
+ }>, Schema.Struct<{
15
+ kind: Schema.Literal<["invalid"]>;
16
+ reason: typeof Schema.String;
17
+ }>, Schema.Struct<{
18
+ kind: Schema.Literal<["no-answer"]>;
19
+ }>]>;
20
+ /** One member's recorded outcome. */
21
+ export type CollectiveMemberOutcome = typeof memberOutcome.Type;
22
+ /**
23
+ * One inbound item, discriminated by `kind`. The endpoint consumes the
24
+ * collective layer's protocol posts, posts whose collective part is malformed
25
+ * or duplicated, and multicasts that carry nothing besides that part; every
26
+ * other certified post becomes one item, and the endpoint itself emits
27
+ * results and failures.
28
+ */
29
+ export declare const InboundItem: Schema.Union<[Schema.Struct<{
30
+ kind: Schema.Literal<["multicast"]>;
31
+ message: Schema.Union<[Schema.filter<Schema.Struct<{
32
+ kind: Schema.Literal<["direct"]>;
33
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
34
+ address: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
35
+ sender: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
36
+ content: Schema.refine<readonly [{
37
+ readonly type: "text";
38
+ readonly text: string;
39
+ } | {
40
+ readonly type: "data";
41
+ readonly value: import("../wire/values.js").JsonValue;
42
+ }, ...({
43
+ readonly type: "text";
44
+ readonly text: string;
45
+ } | {
46
+ readonly type: "data";
47
+ readonly value: import("../wire/values.js").JsonValue;
48
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
49
+ type: Schema.Literal<["text"]>;
50
+ text: Schema.filter<typeof Schema.String>;
51
+ }>, Schema.Struct<{
52
+ type: Schema.Literal<["data"]>;
53
+ value: Schema.Schema<import("../wire/values.js").JsonValue, import("../wire/values.js").JsonValue, never>;
54
+ }>]>>>;
55
+ }>>, Schema.filter<Schema.Struct<{
56
+ kind: Schema.Literal<["group"]>;
57
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
58
+ address: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "GroupAddress">;
59
+ sender: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
60
+ 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">]>>;
61
+ content: Schema.refine<readonly [{
62
+ readonly type: "text";
63
+ readonly text: string;
64
+ } | {
65
+ readonly type: "data";
66
+ readonly value: import("../wire/values.js").JsonValue;
67
+ }, ...({
68
+ readonly type: "text";
69
+ readonly text: string;
70
+ } | {
71
+ readonly type: "data";
72
+ readonly value: import("../wire/values.js").JsonValue;
73
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
74
+ type: Schema.Literal<["text"]>;
75
+ text: Schema.filter<typeof Schema.String>;
76
+ }>, Schema.Struct<{
77
+ type: Schema.Literal<["data"]>;
78
+ value: Schema.Schema<import("../wire/values.js").JsonValue, import("../wire/values.js").JsonValue, never>;
79
+ }>]>>>;
80
+ }>>]>;
81
+ }>, Schema.Struct<{
82
+ kind: Schema.Literal<["collectiveRequest"]>;
83
+ op: Schema.Literal<["gather", "all_gather"]>;
84
+ id: Schema.brand<Schema.filter<typeof Schema.String>, "CollectiveId">;
85
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
86
+ from: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
87
+ to: Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">;
88
+ question: Schema.filter<typeof Schema.String>;
89
+ requestedSchema: Schema.Struct<{
90
+ $schema: Schema.optionalWith<typeof Schema.String, {
91
+ exact: true;
92
+ }>;
93
+ type: Schema.Literal<["object"]>;
94
+ properties: Schema.Record$<typeof Schema.String, Schema.Record$<typeof Schema.String, Schema.Schema<import("../wire/values.js").JsonValue, import("../wire/values.js").JsonValue, never>>>;
95
+ required: Schema.optionalWith<Schema.Array$<typeof Schema.String>, {
96
+ exact: true;
97
+ }>;
98
+ }>;
99
+ deadlineAt: Schema.filter<Schema.filter<typeof Schema.Number>>;
100
+ }>, Schema.Struct<{
101
+ kind: Schema.Literal<["collectiveResult"]>;
102
+ op: Schema.Literal<["gather", "all_gather"]>;
103
+ id: Schema.brand<Schema.filter<typeof Schema.String>, "CollectiveId">;
104
+ to: Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">;
105
+ question: Schema.filter<typeof Schema.String>;
106
+ outcomes: Schema.NonEmptyArray<Schema.Struct<{
107
+ member: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
108
+ outcome: Schema.Union<[Schema.Struct<{
109
+ kind: Schema.Literal<["answered"]>;
110
+ content: Schema.Record$<typeof Schema.String, Schema.Union<[typeof Schema.String, Schema.filter<typeof Schema.Number>, typeof Schema.Boolean, Schema.Array$<typeof Schema.String>]>>;
111
+ }>, Schema.Struct<{
112
+ kind: Schema.Literal<["declined"]>;
113
+ }>, Schema.Struct<{
114
+ kind: Schema.Literal<["invalid"]>;
115
+ reason: typeof Schema.String;
116
+ }>, Schema.Struct<{
117
+ kind: Schema.Literal<["no-answer"]>;
118
+ }>]>;
119
+ }>>;
120
+ }>, Schema.Struct<{
121
+ kind: Schema.Literal<["operationFailed"]>;
122
+ id: Schema.brand<Schema.filter<typeof Schema.String>, "CollectiveId">;
123
+ to: Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">;
124
+ error: typeof Schema.String;
125
+ }>]>;
126
+ /** A validated inbound item. */
127
+ export type InboundItem = typeof InboundItem.Type;
128
+ export {};
129
+ //# sourceMappingURL=inbound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/inbound.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAEhH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AA8ChC;;;;;GAKG;AACH,QAAA,MAAM,aAAa;;;;;;;;;;IAKlB,CAAC;AACF,qCAAqC;AACrC,MAAM,MAAM,uBAAuB,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAiChE;;;;;;GAMG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOtB,CAAC;AACH,gCAAgC;AAChC,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC"}
@@ -0,0 +1,81 @@
1
+ /** @file The items an endpoint delivers to its host: messages and collective requests, results and failures. */
2
+ import { Schema } from "effect";
3
+ import { InboundMessage } from "../messaging/message.js";
4
+ import { AgentAddress, exactStruct, MessageAddressInput, PostId, wellFormedString, } from "../wire/values.js";
5
+ import { AnswerContent, CollectiveId, RequestedSchema } from "./forms.js";
6
+ /* eslint-disable @typescript-eslint/naming-convention, @typescript-eslint/no-redeclare -- Effect Schemas share their domain names with the nominal values they decode. */
7
+ /**
8
+ * A multicast delivered to this endpoint. The message content is the post's
9
+ * content without the collective layer's part.
10
+ */
11
+ const multicastItem = exactStruct({
12
+ kind: Schema.Literal("multicast"),
13
+ message: InboundMessage,
14
+ });
15
+ /** Absolute epoch milliseconds; endpoints assume zero clock skew. */
16
+ const epochMillis = Schema.Number.pipe(Schema.int(), Schema.positive());
17
+ /** Which collecting operation an item belongs to. */
18
+ const collectingOp = Schema.Literal("gather", "all_gather");
19
+ /**
20
+ * A question another agent asked this one. `postId` is the certified request
21
+ * post's and `to` the conversation it arrived in: the requester's `agent:`
22
+ * address for a gather, the group's `group:` address for an all_gather. The
23
+ * member answers once with a `collectiveResponse` sent to `to`.
24
+ */
25
+ const collectiveRequestItem = exactStruct({
26
+ kind: Schema.Literal("collectiveRequest"),
27
+ op: collectingOp,
28
+ id: CollectiveId,
29
+ postId: PostId,
30
+ from: AgentAddress,
31
+ to: MessageAddressInput,
32
+ question: wellFormedString,
33
+ requestedSchema: RequestedSchema,
34
+ deadlineAt: epochMillis,
35
+ });
36
+ /**
37
+ * One member's outcome in a completed gather or all_gather, discriminated by
38
+ * `kind`. `no-answer` covers every member that did not answer: one whose
39
+ * request post was refused or not certified in time, and one silent at the
40
+ * deadline.
41
+ */
42
+ const memberOutcome = Schema.Union(exactStruct({ kind: Schema.Literal("answered"), content: AnswerContent }), exactStruct({ kind: Schema.Literal("declined") }), exactStruct({ kind: Schema.Literal("invalid"), reason: Schema.String }), exactStruct({ kind: Schema.Literal("no-answer") }));
43
+ /**
44
+ * The result of a gather this endpoint started, or of an all_gather this
45
+ * endpoint started or was asked: exactly one outcome per member, in member
46
+ * order. `to` is the address the operation named. Every member's all_gather
47
+ * result is built from exactly the answers the requester's close lists, so
48
+ * each endpoint's result is the same.
49
+ */
50
+ const collectiveResultItem = exactStruct({
51
+ kind: Schema.Literal("collectiveResult"),
52
+ op: collectingOp,
53
+ id: CollectiveId,
54
+ to: MessageAddressInput,
55
+ question: wellFormedString,
56
+ outcomes: Schema.NonEmptyArray(exactStruct({ member: AgentAddress, outcome: memberOutcome })),
57
+ });
58
+ /**
59
+ * A collective send that failed after the host's tool had returned, or an
60
+ * all_gather whose close could not be certified. `to` is the operation's
61
+ * address, or the request's conversation for a response; `error` is the text
62
+ * a waiting host would have received as the tool error.
63
+ */
64
+ const operationFailedItem = exactStruct({
65
+ kind: Schema.Literal("operationFailed"),
66
+ id: CollectiveId,
67
+ to: MessageAddressInput,
68
+ error: Schema.String,
69
+ });
70
+ /**
71
+ * One inbound item, discriminated by `kind`. The endpoint consumes the
72
+ * collective layer's protocol posts, posts whose collective part is malformed
73
+ * or duplicated, and multicasts that carry nothing besides that part; every
74
+ * other certified post becomes one item, and the endpoint itself emits
75
+ * results and failures.
76
+ */
77
+ export const InboundItem = Schema.Union(multicastItem, collectiveRequestItem, collectiveResultItem, operationFailedItem).annotations({
78
+ identifier: "InboundItem",
79
+ });
80
+ /* eslint-enable @typescript-eslint/naming-convention, @typescript-eslint/no-redeclare -- Restore the package naming rules after the Schema/type pairs. */
81
+ //# sourceMappingURL=inbound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound.js","sourceRoot":"","sources":["../../../src/transport/collectives/inbound.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAEhH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,MAAM,EACN,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1E,0KAA0K;AAE1K;;;GAGG;AACH,MAAM,aAAa,GAAG,WAAW,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;IACjC,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC;AAEH,qEAAqE;AACrE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAExE,qDAAqD;AACrD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,WAAW,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;IACzC,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,mBAAmB;IACvB,QAAQ,EAAE,gBAAgB;IAC1B,eAAe,EAAE,eAAe;IAChC,UAAU,EAAE,WAAW;CACxB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAChC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EACzE,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EACjD,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EACvE,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CACnD,CAAC;AAIF;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,WAAW,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACxC,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,mBAAmB;IACvB,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,MAAM,CAAC,aAAa,CAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAC9D;CACF,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,WAAW,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACvC,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,mBAAmB;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CACrC,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,CACpB,CAAC,WAAW,CAAC;IACZ,UAAU,EAAE,aAAa;CAC1B,CAAC,CAAC;AAIH,0JAA0J"}
@@ -0,0 +1,10 @@
1
+ /** @file The collective operations the daemon service composes. */
2
+ /** The daemon's stateful gather and all_gather operations. */
3
+ export { type CollectiveOperations, makeCollectiveOperations, } from "./operation.js";
4
+ /** The failure an emit port returns when the service cannot keep an item. */
5
+ export { CollectiveEmitError } from "./forms.js";
6
+ /** The items those operations emit. */
7
+ export type { InboundItem } from "./inbound.js";
8
+ /** The collective part carried in a post's content. */
9
+ export { collectiveIdOf, readCollectiveValue } from "./part/index.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE,8DAA8D;AAC9D,OAAO,EACL,KAAK,oBAAoB,EACzB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,6EAA6E;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,uCAAuC;AACvC,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,uDAAuD;AACvD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /** @file The collective operations the daemon service composes. */
2
+ /** The daemon's stateful gather and all_gather operations. */
3
+ export { makeCollectiveOperations, } from "./operation.js";
4
+ /** The failure an emit port returns when the service cannot keep an item. */
5
+ export { CollectiveEmitError } from "./forms.js";
6
+ /** The collective part carried in a post's content. */
7
+ export { collectiveIdOf, readCollectiveValue } from "./part/index.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transport/collectives/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE,8DAA8D;AAC9D,OAAO,EAEL,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,6EAA6E;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,uDAAuD;AACvD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @file Reads the operation a message's text states.
3
3
  *
4
- * A model reaches every operation through its host's ordinary message tool,
5
- * as message text, and every adapter reads that text with
4
+ * In native hosts, a model reaches every operation through the ordinary
5
+ * message tool, as message text. The OpenClaw and NanoClaw adapters use
6
6
  * {@link parseMessageText}, so both hosts accept the same text:
7
7
  *
8
8
  * ```
@@ -20,9 +20,13 @@
20
20
  * the operation and the error names the field to fix.
21
21
  */
22
22
  import { Either } from "effect";
23
- import { type MessageAddressInput, SendInput } from "./contract.js";
23
+ import { type MessageAddressInput } from "../wire/values.js";
24
+ import { SendInput } from "./forms.js";
25
+ /** The operations that ask a question, in the order their keys are read. */
26
+ declare const COLLECTING_OPERATIONS: readonly ["gather", "all_gather"];
27
+ type CollectingOperation = (typeof COLLECTING_OPERATIONS)[number];
24
28
  /** Which operation a refused text stated. */
25
- type StatedOperation = "message" | "gather" | "all_gather" | "answer";
29
+ type StatedOperation = "message" | CollectingOperation | "answer";
26
30
  declare const MessageTextError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
27
31
  readonly _tag: "MessageTextError";
28
32
  } & Readonly<A>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-text.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/message-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAQ,MAAM,EAA6B,MAAM,QAAQ,CAAC;AACjE,OAAO,EAAe,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAOL,SAAS,EACV,MAAM,YAAY,CAAC;AAIpB,4EAA4E;AAC5E,QAAA,MAAM,qBAAqB,YAAI,QAAQ,EAAE,YAAY,CAAU,CAAC;AAEhE,KAAK,mBAAmB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,6CAA6C;AAC7C,KAAK,eAAe,GAAG,SAAS,GAAG,mBAAmB,GAAG,QAAQ,CAAC;;;;AAElE;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,sBAAqC;IACzE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAG7B;CACF;AA0BD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,OACvB,mBAAmB,QACjB,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAKxC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @file Reads the operation a message's text states.
3
3
  *
4
- * A model reaches every operation through its host's ordinary message tool,
5
- * as message text, and every adapter reads that text with
4
+ * In native hosts, a model reaches every operation through the ordinary
5
+ * message tool, as message text. The OpenClaw and NanoClaw adapters use
6
6
  * {@link parseMessageText}, so both hosts accept the same text:
7
7
  *
8
8
  * ```
@@ -19,8 +19,12 @@
19
19
  * fails validation is refused, never sent as text, because the model meant
20
20
  * the operation and the error names the field to fix.
21
21
  */
22
- import { Data, Either, Option, ParseResult, Predicate, Schema } from "effect";
23
- import { AnswerContent, DeadlineSeconds, RequestedSchema, SendInput, } from "./contract.js";
22
+ import { Data, Either, Option, Predicate, Schema } from "effect";
23
+ import { exactStruct } from "../wire/values.js";
24
+ import { AcceptResponse, DeadlineSeconds, DeclineResponse, describeIssues, RequestedSchema, SendInput, } from "./forms.js";
25
+ /* eslint-disable @typescript-eslint/naming-convention -- Effect Schemas are named for the text shapes they decode. */
26
+ /** The operations that ask a question, in the order their keys are read. */
27
+ const COLLECTING_OPERATIONS = ["gather", "all_gather"];
24
28
  /**
25
29
  * A message text states an operation it does not validly carry, or is plain
26
30
  * text that is not well-formed Unicode. The message names each failing field
@@ -28,29 +32,19 @@ import { AnswerContent, DeadlineSeconds, RequestedSchema, SendInput, } from "./c
28
32
  */
29
33
  export class MessageTextError extends Data.TaggedError("MessageTextError") {
30
34
  get message() {
31
- return `${this.operation} not sent: ${this.detail}`;
35
+ const action = this.operation === "answer" ? "reply" : "send";
36
+ return `${action} failed: invalid ${this.operation}: ${this.detail}`;
32
37
  }
33
38
  }
34
- const exactStruct = (fields) => Schema.Struct(fields).annotations({
35
- parseOptions: { exact: true, onExcessProperty: "error" },
36
- });
37
- const GatherText = exactStruct({
38
- gather: Schema.String,
39
- deadline: DeadlineSeconds,
40
- requestedSchema: RequestedSchema,
41
- });
42
- const AllGatherText = exactStruct({
43
- all_gather: Schema.String,
39
+ /**
40
+ * A gather or all_gather, its question under the operation's own key, read
41
+ * as `question` so both share one decode.
42
+ */
43
+ const collectingText = (op) => exactStruct({
44
+ question: Schema.propertySignature(Schema.String).pipe(Schema.fromKey(op)),
44
45
  deadline: DeadlineSeconds,
45
46
  requestedSchema: RequestedSchema,
46
47
  });
47
- const AcceptText = exactStruct({
48
- action: Schema.Literal("accept"),
49
- content: AnswerContent,
50
- });
51
- const DeclineText = exactStruct({
52
- action: Schema.Literal("decline"),
53
- });
54
48
  /** The `action` key alone, so an unknown action is named as that field. */
55
49
  const AnswerAction = Schema.Struct({
56
50
  action: Schema.Literal("accept", "decline"),
@@ -76,30 +70,21 @@ export const parseMessageText = (to, text) => Option.match(jsonObject(text), {
76
70
  * none of `gather`, `all_gather` and `action` and so is plain text.
77
71
  */
78
72
  function statedOperation(to, value) {
79
- if (Object.hasOwn(value, "gather")) {
80
- return decodeText("gather", GatherText, value).pipe(Either.flatMap((stated) => sendInput("gather", {
73
+ const op = COLLECTING_OPERATIONS.find((key) => Object.hasOwn(value, key));
74
+ if (op !== undefined) {
75
+ return decodeText(op, collectingText(op), value).pipe(Either.flatMap(({ question, ...collective }) => sendInput(op, {
81
76
  to,
82
- text: stated.gather,
83
- collective: { ...collecting(stated), op: "gather" },
84
- })));
85
- }
86
- if (Object.hasOwn(value, "all_gather")) {
87
- return decodeText("all_gather", AllGatherText, value).pipe(Either.flatMap((stated) => sendInput("all_gather", {
88
- to,
89
- text: stated.all_gather,
90
- collective: { ...collecting(stated), op: "all_gather" },
77
+ text: question,
78
+ collective: { ...collective, op },
91
79
  })));
92
80
  }
93
81
  return Object.hasOwn(value, "action") ? answer(to, value) : undefined;
94
82
  }
95
- function collecting(stated) {
96
- return { deadline: stated.deadline, requestedSchema: stated.requestedSchema };
97
- }
98
83
  /** An answer: `action` decides which shape the rest must have. */
99
84
  function answer(to, value) {
100
85
  return decodeText("answer", AnswerAction, value).pipe(Either.flatMap(({ action }) => action === "accept"
101
- ? decodeText("answer", AcceptText, value)
102
- : decodeText("answer", DeclineText, value)), Either.flatMap((collectiveResponse) => sendInput("answer", { to, collectiveResponse })));
86
+ ? decodeText("answer", AcceptResponse, value)
87
+ : decodeText("answer", DeclineResponse, value)), Either.flatMap((collectiveResponse) => sendInput("answer", { to, collectiveResponse })));
103
88
  }
104
89
  function sendInput(operation, value) {
105
90
  return decodeText(operation, SendInput, value);
@@ -107,14 +92,5 @@ function sendInput(operation, value) {
107
92
  function decodeText(operation, schema, value) {
108
93
  return Schema.decodeUnknownEither(schema, { errors: "all" })(value).pipe(Either.mapLeft((error) => new MessageTextError({ operation, detail: describeIssues(error) })));
109
94
  }
110
- /**
111
- * One line per issue, each led by its field path, such as
112
- * `requestedSchema.type: Expected "object", actual "obj"`.
113
- */
114
- function describeIssues(error) {
115
- return ParseResult.ArrayFormatter.formatErrorSync(error)
116
- .map(({ path, message }) => path.length === 0 ? message : `${path.map(String).join(".")}: ${message}`)
117
- .join("; ");
118
- }
119
95
  /* eslint-enable @typescript-eslint/naming-convention -- Restore the package naming rules after the text Schemas. */
120
96
  //# sourceMappingURL=message-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-text.js","sourceRoot":"","sources":["../../../src/transport/collectives/message-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACjE,OAAO,EAAE,WAAW,EAA4B,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACL,cAAc,EAEd,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,sHAAsH;AAEtH,4EAA4E;AAC5E,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAU,CAAC;AAOhE;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAGvE;IACA,IAAa,OAAO;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9D,OAAO,GAAG,MAAM,oBAAoB,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;IACvE,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,EAAuB,EAAE,EAAE,CACjD,WAAW,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1E,QAAQ,EAAE,eAAe;IACzB,eAAe,EAAE,eAAe;CACjC,CAAC,CAAC;AAEL,2EAA2E;AAC3E,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAC/C,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CACjC,CAAC;AAEF,qDAAqD;AACrD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAClC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE/D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,EAAuB,EACvB,IAAY,EACgC,EAAE,CAC9C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;IAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAChD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;CACnE,CAAC,CAAC;AAEL;;;GAGG;AACH,SAAS,eAAe,CACtB,EAAuB,EACvB,KAAwC;IAExC,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1E,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,UAAU,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CACnD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE,CAC7C,SAAS,CAAC,EAAE,EAAE;YACZ,EAAE;YACF,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE;SAClC,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED,kEAAkE;AAClE,SAAS,MAAM,CACb,EAAuB,EACvB,KAAwC;IAExC,OAAO,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,IAAI,CACnD,MAAM,CAAC,OAAO,CACZ,CAAC,EAAE,MAAM,EAAE,EAAuD,EAAE,CAClE,MAAM,KAAK,QAAQ;QACjB,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC;QAC7C,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CACnD,EACD,MAAM,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,EAAE,CACpC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAChD,CACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,SAA0B,EAC1B,KAAc;IAEd,OAAO,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,UAAU,CACjB,SAA0B,EAC1B,MAA2B,EAC3B,KAAc;IAEd,OAAO,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CACtE,MAAM,CAAC,OAAO,CACZ,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CACrE,CACF,CAAC;AACJ,CAAC;AAED,oHAAoH"}