@moltzap/client 2026.1001.2 → 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 (486) hide show
  1. package/README.md +11 -6
  2. package/bin/moltzapd +2 -2
  3. package/dist/{harness-mcp-contract.d.ts → delivery/history-export.d.ts} +94 -136
  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 -2
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +21 -3
  98. package/dist/index.js.map +1 -1
  99. package/dist/{contract.types-check.d.ts → index.types-check.d.ts} +21 -18
  100. package/dist/index.types-check.d.ts.map +1 -0
  101. package/dist/{contract.types-check.js → index.types-check.js} +6 -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/transport/collectives/message-text.d.ts +52 -0
  212. package/dist/transport/collectives/message-text.d.ts.map +1 -0
  213. package/dist/transport/collectives/message-text.js +118 -0
  214. package/dist/transport/collectives/message-text.js.map +1 -0
  215. package/dist/{endpoint/collective → transport/collectives}/operation.d.ts +30 -21
  216. package/dist/transport/collectives/operation.d.ts.map +1 -0
  217. package/dist/{endpoint/collective → transport/collectives}/operation.js +135 -143
  218. package/dist/transport/collectives/operation.js.map +1 -0
  219. package/dist/transport/collectives/received-request.d.ts +41 -0
  220. package/dist/transport/collectives/received-request.d.ts.map +1 -0
  221. package/dist/transport/collectives/received-request.js +56 -0
  222. package/dist/transport/collectives/received-request.js.map +1 -0
  223. package/dist/transport/collectives/request-sends.d.ts +42 -0
  224. package/dist/transport/collectives/request-sends.d.ts.map +1 -0
  225. package/dist/transport/collectives/request-sends.js +46 -0
  226. package/dist/transport/collectives/request-sends.js.map +1 -0
  227. package/dist/{endpoint/collective → transport/collectives}/shared-answers.d.ts +3 -2
  228. package/dist/transport/collectives/shared-answers.d.ts.map +1 -0
  229. package/dist/transport/collectives/shared-answers.js.map +1 -0
  230. package/dist/{endpoint/collective → transport/collectives}/validation.d.ts +8 -10
  231. package/dist/transport/collectives/validation.d.ts.map +1 -0
  232. package/dist/{endpoint/collective → transport/collectives}/validation.js +10 -21
  233. package/dist/transport/collectives/validation.js.map +1 -0
  234. package/dist/{endpoint/collective → transport/collectives}/wire.d.ts +18 -13
  235. package/dist/transport/collectives/wire.d.ts.map +1 -0
  236. package/dist/{endpoint/collective → transport/collectives}/wire.js +19 -38
  237. package/dist/transport/collectives/wire.js.map +1 -0
  238. package/dist/{endpoint/addressing/index.d.ts → transport/messaging/address.d.ts} +38 -5
  239. package/dist/transport/messaging/address.d.ts.map +1 -0
  240. package/dist/{endpoint/addressing/index.js → transport/messaging/address.js} +100 -21
  241. package/dist/transport/messaging/address.js.map +1 -0
  242. package/dist/{endpoint/protocol/index.d.ts → transport/messaging/certification.d.ts} +4 -4
  243. package/dist/transport/messaging/certification.d.ts.map +1 -0
  244. package/dist/{endpoint/protocol/index.js → transport/messaging/certification.js} +7 -5
  245. package/dist/transport/messaging/certification.js.map +1 -0
  246. package/dist/{endpoint/engine-dissemination.d.ts → transport/messaging/dissemination.d.ts} +3 -3
  247. package/dist/transport/messaging/dissemination.d.ts.map +1 -0
  248. package/dist/{endpoint/engine-dissemination.js → transport/messaging/dissemination.js} +5 -5
  249. package/dist/transport/messaging/dissemination.js.map +1 -0
  250. package/dist/{endpoint/engine-durability.d.ts → transport/messaging/durability.d.ts} +4 -4
  251. package/dist/{endpoint/engine-durability.d.ts.map → transport/messaging/durability.d.ts.map} +1 -1
  252. package/dist/{endpoint/engine-durability.js → transport/messaging/durability.js} +4 -13
  253. package/dist/transport/messaging/durability.js.map +1 -0
  254. package/dist/transport/messaging/errors.d.ts +50 -0
  255. package/dist/transport/messaging/errors.d.ts.map +1 -0
  256. package/dist/transport/messaging/errors.js +64 -0
  257. package/dist/transport/messaging/errors.js.map +1 -0
  258. package/dist/{endpoint/protocol → transport/messaging}/evidence.d.ts +3 -3
  259. package/dist/{endpoint/protocol → transport/messaging}/evidence.d.ts.map +1 -1
  260. package/dist/{endpoint/protocol → transport/messaging}/evidence.js +1 -1
  261. package/dist/transport/messaging/evidence.js.map +1 -0
  262. package/dist/{endpoint/engine.d.ts → transport/messaging/index.d.ts} +4 -4
  263. package/dist/transport/messaging/index.d.ts.map +1 -0
  264. package/dist/{endpoint/engine.js → transport/messaging/index.js} +14 -9
  265. package/dist/transport/messaging/index.js.map +1 -0
  266. package/dist/transport/messaging/message.d.ts +112 -0
  267. package/dist/transport/messaging/message.d.ts.map +1 -0
  268. package/dist/transport/messaging/message.js +39 -0
  269. package/dist/transport/messaging/message.js.map +1 -0
  270. package/dist/{endpoint → transport/messaging}/recovery/barrier.d.ts +1 -1
  271. package/dist/transport/messaging/recovery/barrier.d.ts.map +1 -0
  272. package/dist/transport/messaging/recovery/barrier.js.map +1 -0
  273. package/dist/{endpoint/recovery/store-evidence.d.ts → transport/messaging/recovery/evidence.d.ts} +5 -5
  274. package/dist/transport/messaging/recovery/evidence.d.ts.map +1 -0
  275. package/dist/{endpoint/recovery/store-evidence.js → transport/messaging/recovery/evidence.js} +3 -3
  276. package/dist/transport/messaging/recovery/evidence.js.map +1 -0
  277. package/dist/{endpoint → transport/messaging}/recovery/index.d.ts +4 -4
  278. package/dist/transport/messaging/recovery/index.d.ts.map +1 -0
  279. package/dist/{endpoint → transport/messaging}/recovery/index.js +29 -25
  280. package/dist/transport/messaging/recovery/index.js.map +1 -0
  281. package/dist/{endpoint/recovery/store.d.ts → transport/messaging/recovery/persistence.d.ts} +5 -5
  282. package/dist/transport/messaging/recovery/persistence.d.ts.map +1 -0
  283. package/dist/{endpoint/recovery/store.js → transport/messaging/recovery/persistence.js} +4 -4
  284. package/dist/transport/messaging/recovery/persistence.js.map +1 -0
  285. package/dist/{endpoint/recovery/reanchor/empty.d.ts → transport/messaging/recovery/reanchor-empty.d.ts} +6 -6
  286. package/dist/transport/messaging/recovery/reanchor-empty.d.ts.map +1 -0
  287. package/dist/{endpoint/recovery/reanchor/empty.js → transport/messaging/recovery/reanchor-empty.js} +4 -4
  288. package/dist/transport/messaging/recovery/reanchor-empty.js.map +1 -0
  289. package/dist/{endpoint/recovery/reanchor/index.d.ts → transport/messaging/recovery/reanchor.d.ts} +4 -4
  290. package/dist/transport/messaging/recovery/reanchor.d.ts.map +1 -0
  291. package/dist/{endpoint/recovery/reanchor/index.js → transport/messaging/recovery/reanchor.js} +29 -14
  292. package/dist/transport/messaging/recovery/reanchor.js.map +1 -0
  293. package/dist/{endpoint → transport/messaging}/recovery/state.d.ts +5 -5
  294. package/dist/transport/messaging/recovery/state.d.ts.map +1 -0
  295. package/dist/{endpoint → transport/messaging}/recovery/state.js +2 -2
  296. package/dist/transport/messaging/recovery/state.js.map +1 -0
  297. package/dist/{endpoint/engine-send.d.ts → transport/messaging/send.d.ts} +5 -4
  298. package/dist/transport/messaging/send.d.ts.map +1 -0
  299. package/dist/{endpoint/engine-send.js → transport/messaging/send.js} +4 -4
  300. package/dist/transport/messaging/send.js.map +1 -0
  301. package/dist/{endpoint/engine-types.d.ts → transport/messaging/types.d.ts} +7 -5
  302. package/dist/transport/messaging/types.d.ts.map +1 -0
  303. package/dist/{endpoint/engine-types.js → transport/messaging/types.js} +1 -1
  304. package/dist/{endpoint/engine-types.js.map → transport/messaging/types.js.map} +1 -1
  305. package/dist/transport/router/index.d.ts.map +1 -0
  306. package/dist/{endpoint/router-worker → transport/router}/index.js +1 -1
  307. package/dist/transport/router/index.js.map +1 -0
  308. package/dist/transport/router/outage.d.ts.map +1 -0
  309. package/dist/transport/router/outage.js.map +1 -0
  310. package/dist/{endpoint/router-worker → transport/router}/types.d.ts +2 -2
  311. package/dist/transport/router/types.d.ts.map +1 -0
  312. package/dist/transport/router/types.js.map +1 -0
  313. package/dist/{endpoint/representation-canonical.d.ts → transport/wire/canonical.d.ts} +1 -1
  314. package/dist/transport/wire/canonical.d.ts.map +1 -0
  315. package/dist/{endpoint/representation-canonical.js → transport/wire/canonical.js} +1 -1
  316. package/dist/transport/wire/canonical.js.map +1 -0
  317. package/dist/{endpoint/representation-codec.d.ts → transport/wire/codec.d.ts} +5 -6
  318. package/dist/transport/wire/codec.d.ts.map +1 -0
  319. package/dist/{endpoint/representation-codec.js → transport/wire/codec.js} +5 -24
  320. package/dist/transport/wire/codec.js.map +1 -0
  321. package/dist/transport/wire/index.d.ts +7 -0
  322. package/dist/transport/wire/index.d.ts.map +1 -0
  323. package/dist/transport/wire/index.js +10 -0
  324. package/dist/transport/wire/index.js.map +1 -0
  325. package/dist/{endpoint/representation-schemas.d.ts → transport/wire/schemas.d.ts} +76 -98
  326. package/dist/transport/wire/schemas.d.ts.map +1 -0
  327. package/dist/{endpoint/representation-schemas.js → transport/wire/schemas.js} +7 -19
  328. package/dist/transport/wire/schemas.js.map +1 -0
  329. package/dist/transport/wire/values.d.ts +79 -0
  330. package/dist/transport/wire/values.d.ts.map +1 -0
  331. package/dist/transport/wire/values.js +115 -0
  332. package/dist/transport/wire/values.js.map +1 -0
  333. package/dist/{endpoint/representation-verification.d.ts → transport/wire/verification.d.ts} +4 -4
  334. package/dist/transport/wire/verification.d.ts.map +1 -0
  335. package/dist/{endpoint/representation-verification.js → transport/wire/verification.js} +5 -4
  336. package/dist/transport/wire/verification.js.map +1 -0
  337. package/package.json +6 -6
  338. package/dist/client-runtime.d.ts.map +0 -1
  339. package/dist/client-runtime.js.map +0 -1
  340. package/dist/contract.d.ts +0 -721
  341. package/dist/contract.d.ts.map +0 -1
  342. package/dist/contract.js +0 -451
  343. package/dist/contract.js.map +0 -1
  344. package/dist/contract.types-check.d.ts.map +0 -1
  345. package/dist/contract.types-check.js.map +0 -1
  346. package/dist/daemon/configuration.d.ts.map +0 -1
  347. package/dist/daemon/configuration.js.map +0 -1
  348. package/dist/daemon/management.d.ts.map +0 -1
  349. package/dist/daemon/management.js.map +0 -1
  350. package/dist/daemon/registration.d.ts.map +0 -1
  351. package/dist/daemon/registration.js.map +0 -1
  352. package/dist/daemon/runtime/activation.d.ts.map +0 -1
  353. package/dist/daemon/runtime/activation.js.map +0 -1
  354. package/dist/daemon/runtime/controller.d.ts.map +0 -1
  355. package/dist/daemon/runtime/controller.js +0 -140
  356. package/dist/daemon/runtime/controller.js.map +0 -1
  357. package/dist/daemon/runtime/history-export.d.ts +0 -33
  358. package/dist/daemon/runtime/history-export.d.ts.map +0 -1
  359. package/dist/daemon/runtime/history-export.js.map +0 -1
  360. package/dist/daemon/runtime/index.d.ts.map +0 -1
  361. package/dist/daemon/runtime/index.js.map +0 -1
  362. package/dist/daemon/runtime/pending-delivery.d.ts +0 -49
  363. package/dist/daemon/runtime/pending-delivery.d.ts.map +0 -1
  364. package/dist/daemon/runtime/pending-delivery.js.map +0 -1
  365. package/dist/daemon/runtime/protocol.d.ts.map +0 -1
  366. package/dist/daemon/runtime/protocol.js.map +0 -1
  367. package/dist/endpoint/addressing/index.d.ts.map +0 -1
  368. package/dist/endpoint/addressing/index.js.map +0 -1
  369. package/dist/endpoint/collective/operation.d.ts.map +0 -1
  370. package/dist/endpoint/collective/operation.js.map +0 -1
  371. package/dist/endpoint/collective/shared-answers.d.ts.map +0 -1
  372. package/dist/endpoint/collective/shared-answers.js.map +0 -1
  373. package/dist/endpoint/collective/validation.d.ts.map +0 -1
  374. package/dist/endpoint/collective/validation.js.map +0 -1
  375. package/dist/endpoint/collective/wire.d.ts.map +0 -1
  376. package/dist/endpoint/collective/wire.js.map +0 -1
  377. package/dist/endpoint/engine-dissemination.d.ts.map +0 -1
  378. package/dist/endpoint/engine-dissemination.js.map +0 -1
  379. package/dist/endpoint/engine-durability.js.map +0 -1
  380. package/dist/endpoint/engine-send.d.ts.map +0 -1
  381. package/dist/endpoint/engine-send.js.map +0 -1
  382. package/dist/endpoint/engine-types.d.ts.map +0 -1
  383. package/dist/endpoint/engine.d.ts.map +0 -1
  384. package/dist/endpoint/engine.js.map +0 -1
  385. package/dist/endpoint/protocol/evidence.js.map +0 -1
  386. package/dist/endpoint/protocol/index.d.ts.map +0 -1
  387. package/dist/endpoint/protocol/index.js.map +0 -1
  388. package/dist/endpoint/recovery/barrier.d.ts.map +0 -1
  389. package/dist/endpoint/recovery/barrier.js.map +0 -1
  390. package/dist/endpoint/recovery/index.d.ts.map +0 -1
  391. package/dist/endpoint/recovery/index.js.map +0 -1
  392. package/dist/endpoint/recovery/reanchor/empty.d.ts.map +0 -1
  393. package/dist/endpoint/recovery/reanchor/empty.js.map +0 -1
  394. package/dist/endpoint/recovery/reanchor/index.d.ts.map +0 -1
  395. package/dist/endpoint/recovery/reanchor/index.js.map +0 -1
  396. package/dist/endpoint/recovery/state.d.ts.map +0 -1
  397. package/dist/endpoint/recovery/state.js.map +0 -1
  398. package/dist/endpoint/recovery/store-evidence.d.ts.map +0 -1
  399. package/dist/endpoint/recovery/store-evidence.js.map +0 -1
  400. package/dist/endpoint/recovery/store.d.ts.map +0 -1
  401. package/dist/endpoint/recovery/store.js.map +0 -1
  402. package/dist/endpoint/representation-canonical.d.ts.map +0 -1
  403. package/dist/endpoint/representation-canonical.js.map +0 -1
  404. package/dist/endpoint/representation-codec.d.ts.map +0 -1
  405. package/dist/endpoint/representation-codec.js.map +0 -1
  406. package/dist/endpoint/representation-schemas.d.ts.map +0 -1
  407. package/dist/endpoint/representation-schemas.js.map +0 -1
  408. package/dist/endpoint/representation-verification.d.ts.map +0 -1
  409. package/dist/endpoint/representation-verification.js.map +0 -1
  410. package/dist/endpoint/representation.d.ts +0 -6
  411. package/dist/endpoint/representation.d.ts.map +0 -1
  412. package/dist/endpoint/representation.js +0 -8
  413. package/dist/endpoint/representation.js.map +0 -1
  414. package/dist/endpoint/router-worker/index.d.ts.map +0 -1
  415. package/dist/endpoint/router-worker/index.js.map +0 -1
  416. package/dist/endpoint/router-worker/outage.d.ts.map +0 -1
  417. package/dist/endpoint/router-worker/outage.js.map +0 -1
  418. package/dist/endpoint/router-worker/types.d.ts.map +0 -1
  419. package/dist/endpoint/router-worker/types.js.map +0 -1
  420. package/dist/endpoint/store/anchors.d.ts.map +0 -1
  421. package/dist/endpoint/store/anchors.js.map +0 -1
  422. package/dist/endpoint/store/database/index.d.ts.map +0 -1
  423. package/dist/endpoint/store/database/index.js.map +0 -1
  424. package/dist/endpoint/store/database/schema.d.ts.map +0 -1
  425. package/dist/endpoint/store/database/schema.js.map +0 -1
  426. package/dist/endpoint/store/database/values.d.ts.map +0 -1
  427. package/dist/endpoint/store/database/values.js.map +0 -1
  428. package/dist/endpoint/store/deliveries.d.ts.map +0 -1
  429. package/dist/endpoint/store/deliveries.js.map +0 -1
  430. package/dist/endpoint/store/dissemination.d.ts.map +0 -1
  431. package/dist/endpoint/store/dissemination.js.map +0 -1
  432. package/dist/endpoint/store/index.d.ts.map +0 -1
  433. package/dist/endpoint/store/index.js.map +0 -1
  434. package/dist/endpoint/store/management.d.ts.map +0 -1
  435. package/dist/endpoint/store/management.js.map +0 -1
  436. package/dist/endpoint/store/outbound.d.ts.map +0 -1
  437. package/dist/endpoint/store/outbound.js.map +0 -1
  438. package/dist/endpoint/store/records.d.ts.map +0 -1
  439. package/dist/endpoint/store/records.js.map +0 -1
  440. package/dist/endpoint/store/rows/index.d.ts.map +0 -1
  441. package/dist/endpoint/store/rows/index.js.map +0 -1
  442. package/dist/endpoint/store/types.d.ts.map +0 -1
  443. package/dist/endpoint/store/types.js.map +0 -1
  444. package/dist/endpoint/store.d.ts +0 -10
  445. package/dist/endpoint/store.d.ts.map +0 -1
  446. package/dist/endpoint/store.js +0 -6
  447. package/dist/endpoint/store.js.map +0 -1
  448. package/dist/harness-mcp-contract.d.ts.map +0 -1
  449. package/dist/harness-mcp-contract.js +0 -113
  450. package/dist/harness-mcp-contract.js.map +0 -1
  451. package/dist/harness-mcp-http.d.ts.map +0 -1
  452. package/dist/harness-mcp-http.js.map +0 -1
  453. package/dist/harness-mcp-subscription.d.ts +0 -30
  454. package/dist/harness-mcp-subscription.d.ts.map +0 -1
  455. package/dist/harness-mcp-subscription.js +0 -361
  456. package/dist/harness-mcp-subscription.js.map +0 -1
  457. package/dist/harness-mcp-wire.d.ts.map +0 -1
  458. package/dist/harness-mcp-wire.js.map +0 -1
  459. package/dist/management-runtime.d.ts.map +0 -1
  460. package/dist/management-runtime.js.map +0 -1
  461. package/dist/server.d.ts.map +0 -1
  462. package/dist/server.js.map +0 -1
  463. package/dist/server.types-check.d.ts.map +0 -1
  464. package/dist/server.types-check.js.map +0 -1
  465. /package/dist/{endpoint/store → store}/anchors.d.ts +0 -0
  466. /package/dist/{endpoint/store → store}/anchors.js +0 -0
  467. /package/dist/{endpoint/store → store}/database/index.d.ts +0 -0
  468. /package/dist/{endpoint/store → store}/database/index.js +0 -0
  469. /package/dist/{endpoint/store → store}/database/schema.d.ts +0 -0
  470. /package/dist/{endpoint/store → store}/database/values.d.ts +0 -0
  471. /package/dist/{endpoint/store → store}/database/values.js +0 -0
  472. /package/dist/{endpoint/store → store}/dissemination.d.ts +0 -0
  473. /package/dist/{endpoint/store → store}/dissemination.js +0 -0
  474. /package/dist/{endpoint/store → store}/outbound.d.ts +0 -0
  475. /package/dist/{endpoint/store → store}/outbound.js +0 -0
  476. /package/dist/{endpoint/store → store}/records.d.ts +0 -0
  477. /package/dist/{endpoint/store → store}/records.js +0 -0
  478. /package/dist/{endpoint/store → store}/rows/index.d.ts +0 -0
  479. /package/dist/{endpoint/store → store}/rows/index.js +0 -0
  480. /package/dist/{endpoint/store → store}/types.js +0 -0
  481. /package/dist/{endpoint/collective → transport/collectives}/shared-answers.js +0 -0
  482. /package/dist/{endpoint → transport/messaging}/recovery/barrier.js +0 -0
  483. /package/dist/{endpoint/router-worker → transport/router}/index.d.ts +0 -0
  484. /package/dist/{endpoint/router-worker → transport/router}/outage.d.ts +0 -0
  485. /package/dist/{endpoint/router-worker → transport/router}/outage.js +0 -0
  486. /package/dist/{endpoint/router-worker → transport/router}/types.js +0 -0
@@ -0,0 +1,127 @@
1
+ /**
2
+ * @file The string formats a form-mode string field may require of an answer.
3
+ *
4
+ * Every endpoint must judge one answer the same way, since an all_gather's
5
+ * members agree on its result, so each format is the JSON Schema 2020-12
6
+ * format exactly as the full-mode `ajv-formats` validator judges it: `date`
7
+ * and `date-time` per RFC 3339 with a time zone required and a leap second
8
+ * only at 23:59 UTC, `email` as an RFC 5322 dot-atom at a dotted host name,
9
+ * and `uri` as an RFC 3986 absolute URI. The URI grammar also admits a single
10
+ * slash before an authority, which that validator admits.
11
+ */
12
+ const DAYS_IN_MONTH = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
13
+ const DATE = /^(\d{4})-(\d{2})-(\d{2})$/;
14
+ const TIME = /^(\d{2}):(\d{2}):(\d{2}(?:\.\d+)?)(z|([+-])(\d{2})(?::?(\d{2}))?)$/i;
15
+ const DATE_TIME_SEPARATOR = /t|\s/i;
16
+ const atom = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+";
17
+ const hostLabel = "[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";
18
+ const EMAIL = new RegExp(`^${atom}(?:\\.${atom})*@(?:${hostLabel}\\.)+${hostLabel}$`, "i");
19
+ const hex = "[0-9a-f]";
20
+ const pctEncoded = `%${hex}{2}`;
21
+ const unreserved = "a-z0-9\\-._~";
22
+ const subDelims = "!$&'()*+,;=";
23
+ const decOctet = "(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)";
24
+ const ipv4 = `(?:${decOctet}\\.){3}${decOctet}`;
25
+ const h16 = `${hex}{1,4}`;
26
+ const ls32 = `(?:${h16}:${h16}|${ipv4})`;
27
+ const ipv6 = [
28
+ `(?:${h16}:){6}${ls32}`,
29
+ `::(?:${h16}:){5}${ls32}`,
30
+ `(?:${h16})?::(?:${h16}:){4}${ls32}`,
31
+ `(?:(?:${h16}:){0,1}${h16})?::(?:${h16}:){3}${ls32}`,
32
+ `(?:(?:${h16}:){0,2}${h16})?::(?:${h16}:){2}${ls32}`,
33
+ `(?:(?:${h16}:){0,3}${h16})?::${h16}:${ls32}`,
34
+ `(?:(?:${h16}:){0,4}${h16})?::${ls32}`,
35
+ `(?:(?:${h16}:){0,5}${h16})?::${h16}`,
36
+ `(?:(?:${h16}:){0,6}${h16})?::`,
37
+ ].join("|");
38
+ const ipFuture = `v${hex}+\\.[${unreserved}${subDelims}:]+`;
39
+ const host = `(?:\\[(?:${ipv6}|${ipFuture})\\]|${ipv4}|(?:[${unreserved}${subDelims}]|${pctEncoded})*)`;
40
+ const userinfo = `(?:[${unreserved}${subDelims}:]|${pctEncoded})*`;
41
+ const pchar = `(?:[${unreserved}${subDelims}:@]|${pctEncoded})`;
42
+ const segments = `(?:\\/${pchar}*)*`;
43
+ const hierPart = [
44
+ `\\/?\\/(?:${userinfo}@)?${host}(?::\\d*)?${segments}`,
45
+ `\\/(?:${pchar}+${segments})?`,
46
+ `${pchar}+${segments}`,
47
+ ].join("|");
48
+ const queryOrFragment = `(?:[${unreserved}${subDelims}:@/?]|${pctEncoded})*`;
49
+ const URI = new RegExp(`^[a-z][a-z0-9+\\-.]*:(?:${hierPart})(?:\\?${queryOrFragment})?(?:#${queryOrFragment})?$`, "i");
50
+ /**
51
+ * Whether a string satisfies a format.
52
+ * @param format The format a string field names.
53
+ * @param text The answer's string.
54
+ * @returns True when the string is in the format.
55
+ */
56
+ export function matchesFormat(format, text) {
57
+ switch (format) {
58
+ case "email":
59
+ return EMAIL.test(text);
60
+ case "uri":
61
+ return URI.test(text);
62
+ case "date":
63
+ return isDate(text);
64
+ case "date-time":
65
+ return isDateTime(text);
66
+ default: {
67
+ const exhaustive = format;
68
+ return exhaustive;
69
+ }
70
+ }
71
+ }
72
+ /** An RFC 3339 date and time, split at `T` or whitespace. */
73
+ function isDateTime(text) {
74
+ const parts = text.split(DATE_TIME_SEPARATOR);
75
+ if (parts.length !== 2) {
76
+ return false;
77
+ }
78
+ const [date = "", time = ""] = parts;
79
+ return isDate(date) && isTime(time);
80
+ }
81
+ function isDate(text) {
82
+ const match = DATE.exec(text);
83
+ return (match !== null &&
84
+ isCalendarDay(Number(match[1]), Number(match[2]), Number(match[3])));
85
+ }
86
+ function isCalendarDay(year, month, day) {
87
+ return month >= 1 && month <= 12 && day >= 1 && day <= daysIn(year, month);
88
+ }
89
+ function daysIn(year, month) {
90
+ return month === 2 && isLeapYear(year) ? 29 : (DAYS_IN_MONTH[month] ?? 0);
91
+ }
92
+ function isLeapYear(year) {
93
+ return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
94
+ }
95
+ /** An RFC 3339 full-time, offset included. */
96
+ function isTime(text) {
97
+ const match = TIME.exec(text);
98
+ if (match === null) {
99
+ return false;
100
+ }
101
+ const time = {
102
+ hour: Number(match[1]),
103
+ minute: Number(match[2]),
104
+ second: Number(match[3]),
105
+ offsetSign: match[5] === "-" ? -1 : 1,
106
+ offsetHour: Number(match[6] ?? 0),
107
+ offsetMinute: Number(match[7] ?? 0),
108
+ };
109
+ return (time.offsetHour <= 23 &&
110
+ time.offsetMinute <= 59 &&
111
+ (isOrdinaryTime(time) || isLeapSecond(time)));
112
+ }
113
+ function isOrdinaryTime({ hour, minute, second }) {
114
+ return hour <= 23 && minute <= 59 && second < 60;
115
+ }
116
+ /**
117
+ * A second numbered 60 is a leap second only when the reading, shifted to
118
+ * UTC, is 23:59; -1 is that instant reached by borrowing across midnight.
119
+ */
120
+ function isLeapSecond(time) {
121
+ const utcMinute = time.minute - time.offsetMinute * time.offsetSign;
122
+ const utcHour = time.hour - time.offsetHour * time.offsetSign - (utcMinute < 0 ? 1 : 0);
123
+ const lastHour = utcHour === 23 || utcHour === -1;
124
+ const lastMinute = utcMinute === 59 || utcMinute === -1;
125
+ return lastHour && lastMinute && time.second < 61;
126
+ }
127
+ //# sourceMappingURL=answer-formats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-formats.js","sourceRoot":"","sources":["../../../src/transport/collectives/answer-formats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /** @file How a collective send reports failure: a refused send, routed to its result or inbound, and an emitted item the service cannot keep. */
2
+ import { Effect } from "effect";
3
+ import type { MessageAddressInput } from "../messaging/address.js";
4
+ import type { EngineSentPost } from "../messaging/index.js";
5
+ import type { InboundItem } from "./inbound.js";
6
+ import { SendError } from "../messaging/errors.js";
7
+ import { CollectiveEmitError, type CollectiveError, type CollectiveId, type FailureDelivery, type SendResult } from "./forms.js";
8
+ /** Fail a send whose emitted item could not be kept as persistence-failed. */
9
+ export declare function emitFailureAsSendError<A, E, R>(effect: Effect.Effect<A, E | CollectiveEmitError, R>): Effect.Effect<A, Exclude<E, CollectiveEmitError> | SendError, R>;
10
+ /** One completed send: the posts certified by its return, and a collective id. */
11
+ export interface CollectiveSendOutcome extends SendResult {
12
+ readonly postIds: ReadonlyArray<EngineSentPost["postId"]>;
13
+ }
14
+ /**
15
+ * A refused collective send, with the address its failure item routes to.
16
+ * The address is the operation's own, or the requester's for a response.
17
+ */
18
+ export interface RefusedSend<E> {
19
+ readonly id: CollectiveId;
20
+ readonly to: MessageAddressInput;
21
+ readonly error: E;
22
+ }
23
+ /**
24
+ * Deliver a refused collective send's error where the host wants it. With
25
+ * `inbound` the send completes, naming the operation, and the error arrives
26
+ * as an `operationFailed` item carrying the same text.
27
+ */
28
+ export declare function reportFailure(emit: (item: InboundItem) => Effect.Effect<void, CollectiveEmitError>, failureDelivery: FailureDelivery, send: Effect.Effect<CollectiveSendOutcome, RefusedSend<SendError | CollectiveError>>): Effect.Effect<CollectiveSendOutcome, SendError | CollectiveError>;
29
+ /**
30
+ * Tag a send's error with the operation id and the address its failure item
31
+ * routes to.
32
+ */
33
+ export declare function refusedAs<E>(id: CollectiveId, to: MessageAddressInput): (error: E) => RefusedSend<E>;
34
+ //# sourceMappingURL=failures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failures.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/failures.ts"],"names":[],"mappings":"AAAA,iJAAiJ;AAEjJ,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAEpB,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,mBAAmB,EAAE,CAAC,CAAC,GACnD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,mBAAmB,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAOlE;AAED,kFAAkF;AAClF,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC3D;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,EACrE,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,MAAM,CAAC,MAAM,CACjB,qBAAqB,EACrB,WAAW,CAAC,SAAS,GAAG,eAAe,CAAC,CACzC,GACA,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,SAAS,GAAG,eAAe,CAAC,CAuBnE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,mBAAmB,WACrD,CAAC,KAAG,WAAW,CAAC,CAAC,CAAC,CAClC"}
@@ -0,0 +1,40 @@
1
+ /** @file How a collective send reports failure: a refused send, routed to its result or inbound, and an emitted item the service cannot keep. */
2
+ import { Effect } from "effect";
3
+ import { SendError } from "../messaging/errors.js";
4
+ import { CollectiveEmitError, } from "./forms.js";
5
+ /** Fail a send whose emitted item could not be kept as persistence-failed. */
6
+ export function emitFailureAsSendError(effect) {
7
+ return Effect.catchIf(effect, (error) => error instanceof CollectiveEmitError, () => Effect.fail(new SendError({ reason: "persistence-failed" })));
8
+ }
9
+ /**
10
+ * Deliver a refused collective send's error where the host wants it. With
11
+ * `inbound` the send completes, naming the operation, and the error arrives
12
+ * as an `operationFailed` item carrying the same text.
13
+ */
14
+ export function reportFailure(emit, failureDelivery, send) {
15
+ return send.pipe(Effect.catchAll((refused) => {
16
+ switch (failureDelivery) {
17
+ case "result":
18
+ return Effect.fail(refused.error);
19
+ case "inbound":
20
+ return emit({
21
+ kind: "operationFailed",
22
+ id: refused.id,
23
+ to: refused.to,
24
+ error: refused.error.message,
25
+ }).pipe(emitFailureAsSendError, Effect.as({ operationId: refused.id, postIds: [] }));
26
+ default: {
27
+ const exhaustive = failureDelivery;
28
+ return exhaustive;
29
+ }
30
+ }
31
+ }));
32
+ }
33
+ /**
34
+ * Tag a send's error with the operation id and the address its failure item
35
+ * routes to.
36
+ */
37
+ export function refusedAs(id, to) {
38
+ return (error) => ({ id, to, error });
39
+ }
40
+ //# sourceMappingURL=failures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failures.js","sourceRoot":"","sources":["../../../src/transport/collectives/failures.ts"],"names":[],"mappings":"AAAA,iJAAiJ;AAEjJ,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,mBAAmB,GAKpB,MAAM,YAAY,CAAC;AAEpB,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB,CACpC,MAAoD;IAEpD,OAAO,MAAM,CAAC,OAAO,CACnB,MAAM,EACN,CAAC,KAAK,EAAgC,EAAE,CACtC,KAAK,YAAY,mBAAmB,EACtC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC,CACnE,CAAC;AACJ,CAAC;AAiBD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAqE,EACrE,eAAgC,EAChC,IAGC;IAED,OAAO,IAAI,CAAC,IAAI,CACd,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;QAC1B,QAAQ,eAAe,EAAE,CAAC;YACxB,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC;oBACV,IAAI,EAAE,iBAAiB;oBACvB,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;iBAC7B,CAAC,CAAC,IAAI,CACL,sBAAsB,EACtB,MAAM,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACpD,CAAC;YACJ,SAAS,CAAC;gBACR,MAAM,UAAU,GAAU,eAAe,CAAC;gBAC1C,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAI,EAAgB,EAAE,EAAuB;IACpE,OAAO,CAAC,KAAQ,EAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * @file The MCP form-mode grammar for one property of a `requestedSchema`.
3
+ *
4
+ * Each shape is the MCP specification's primitive schema definition for one
5
+ * kind of form field. Decoding tries the shapes in the specification's union
6
+ * order and keeps the first that admits the property, without the keywords
7
+ * that shape does not declare, so keywords outside the grammar never travel
8
+ * or reach answer validation. A property no shape admits fails with the
9
+ * failing keywords of the shape it most plausibly meant, so a requester can
10
+ * repair the property it meant to write.
11
+ */
12
+ import { Schema } from "effect";
13
+ /** A single-select whose options carry display names in `enumNames`. */
14
+ declare const LegacyTitledEnumSchema: Schema.Struct<{
15
+ title: Schema.optionalWith<Schema.Schema<string, string, never>, {
16
+ exact: true;
17
+ }>;
18
+ description: Schema.optionalWith<Schema.Schema<string, string, never>, {
19
+ exact: true;
20
+ }>;
21
+ type: Schema.propertySignature<Schema.Schema<"string", "string", never>>;
22
+ enum: Schema.propertySignature<Schema.Schema<readonly string[], readonly string[], never>>;
23
+ enumNames: Schema.optionalWith<Schema.Schema<readonly string[], readonly string[], never>, {
24
+ exact: true;
25
+ }>;
26
+ default: Schema.optionalWith<Schema.Schema<string, string, never>, {
27
+ exact: true;
28
+ }>;
29
+ }>;
30
+ declare const UntitledSingleSelectEnumSchema: Schema.Struct<{
31
+ title: Schema.optionalWith<Schema.Schema<string, string, never>, {
32
+ exact: true;
33
+ }>;
34
+ description: Schema.optionalWith<Schema.Schema<string, string, never>, {
35
+ exact: true;
36
+ }>;
37
+ type: Schema.propertySignature<Schema.Schema<"string", "string", never>>;
38
+ enum: Schema.propertySignature<Schema.Schema<readonly string[], readonly string[], never>>;
39
+ default: Schema.optionalWith<Schema.Schema<string, string, never>, {
40
+ exact: true;
41
+ }>;
42
+ }>;
43
+ declare const TitledSingleSelectEnumSchema: Schema.Struct<{
44
+ title: Schema.optionalWith<Schema.Schema<string, string, never>, {
45
+ exact: true;
46
+ }>;
47
+ description: Schema.optionalWith<Schema.Schema<string, string, never>, {
48
+ exact: true;
49
+ }>;
50
+ type: Schema.propertySignature<Schema.Schema<"string", "string", never>>;
51
+ oneOf: Schema.propertySignature<Schema.Schema<readonly {
52
+ readonly const: string;
53
+ readonly title: string;
54
+ }[], readonly {
55
+ readonly const: string;
56
+ readonly title: string;
57
+ }[], never>>;
58
+ default: Schema.optionalWith<Schema.Schema<string, string, never>, {
59
+ exact: true;
60
+ }>;
61
+ }>;
62
+ declare const UntitledMultiSelectEnumSchema: Schema.Struct<{
63
+ title: Schema.optionalWith<Schema.Schema<string, string, never>, {
64
+ exact: true;
65
+ }>;
66
+ description: Schema.optionalWith<Schema.Schema<string, string, never>, {
67
+ exact: true;
68
+ }>;
69
+ type: Schema.propertySignature<Schema.Schema<"array", "array", never>>;
70
+ minItems: Schema.optionalWith<Schema.Schema<number, number, never>, {
71
+ exact: true;
72
+ }>;
73
+ maxItems: Schema.optionalWith<Schema.Schema<number, number, never>, {
74
+ exact: true;
75
+ }>;
76
+ default: Schema.optionalWith<Schema.Schema<readonly string[], readonly string[], never>, {
77
+ exact: true;
78
+ }>;
79
+ items: Schema.propertySignature<Schema.Schema<{
80
+ readonly type: "string";
81
+ readonly enum: readonly string[];
82
+ }, {
83
+ readonly enum: readonly string[];
84
+ readonly type: "string";
85
+ }, never>>;
86
+ }>;
87
+ declare const TitledMultiSelectEnumSchema: Schema.Struct<{
88
+ title: Schema.optionalWith<Schema.Schema<string, string, never>, {
89
+ exact: true;
90
+ }>;
91
+ description: Schema.optionalWith<Schema.Schema<string, string, never>, {
92
+ exact: true;
93
+ }>;
94
+ type: Schema.propertySignature<Schema.Schema<"array", "array", never>>;
95
+ minItems: Schema.optionalWith<Schema.Schema<number, number, never>, {
96
+ exact: true;
97
+ }>;
98
+ maxItems: Schema.optionalWith<Schema.Schema<number, number, never>, {
99
+ exact: true;
100
+ }>;
101
+ default: Schema.optionalWith<Schema.Schema<readonly string[], readonly string[], never>, {
102
+ exact: true;
103
+ }>;
104
+ items: Schema.propertySignature<Schema.Schema<{
105
+ readonly anyOf: readonly {
106
+ readonly const: string;
107
+ readonly title: string;
108
+ }[];
109
+ }, {
110
+ readonly anyOf: readonly {
111
+ readonly const: string;
112
+ readonly title: string;
113
+ }[];
114
+ }, never>>;
115
+ }>;
116
+ declare const BooleanSchema: Schema.Struct<{
117
+ title: Schema.optionalWith<Schema.Schema<string, string, never>, {
118
+ exact: true;
119
+ }>;
120
+ description: Schema.optionalWith<Schema.Schema<string, string, never>, {
121
+ exact: true;
122
+ }>;
123
+ type: Schema.propertySignature<Schema.Schema<"boolean", "boolean", never>>;
124
+ default: Schema.optionalWith<Schema.Schema<boolean, boolean, never>, {
125
+ exact: true;
126
+ }>;
127
+ }>;
128
+ declare const StringSchema: Schema.Struct<{
129
+ title: Schema.optionalWith<Schema.Schema<string, string, never>, {
130
+ exact: true;
131
+ }>;
132
+ description: Schema.optionalWith<Schema.Schema<string, string, never>, {
133
+ exact: true;
134
+ }>;
135
+ type: Schema.propertySignature<Schema.Schema<"string", "string", never>>;
136
+ minLength: Schema.optionalWith<Schema.Schema<number, number, never>, {
137
+ exact: true;
138
+ }>;
139
+ maxLength: Schema.optionalWith<Schema.Schema<number, number, never>, {
140
+ exact: true;
141
+ }>;
142
+ format: Schema.optionalWith<Schema.Schema<"date" | "date-time" | "email" | "uri", "date" | "date-time" | "email" | "uri", never>, {
143
+ exact: true;
144
+ }>;
145
+ default: Schema.optionalWith<Schema.Schema<string, string, never>, {
146
+ exact: true;
147
+ }>;
148
+ }>;
149
+ declare const NumberSchema: Schema.Struct<{
150
+ title: Schema.optionalWith<Schema.Schema<string, string, never>, {
151
+ exact: true;
152
+ }>;
153
+ description: Schema.optionalWith<Schema.Schema<string, string, never>, {
154
+ exact: true;
155
+ }>;
156
+ type: Schema.propertySignature<Schema.Schema<"integer" | "number", "integer" | "number", never>>;
157
+ minimum: Schema.optionalWith<Schema.Schema<number, number, never>, {
158
+ exact: true;
159
+ }>;
160
+ maximum: Schema.optionalWith<Schema.Schema<number, number, never>, {
161
+ exact: true;
162
+ }>;
163
+ default: Schema.optionalWith<Schema.Schema<number, number, never>, {
164
+ exact: true;
165
+ }>;
166
+ }>;
167
+ /** One admitted form field: a primitive property of a form-mode schema. */
168
+ export type FormField = typeof LegacyTitledEnumSchema.Type | typeof UntitledSingleSelectEnumSchema.Type | typeof TitledSingleSelectEnumSchema.Type | typeof UntitledMultiSelectEnumSchema.Type | typeof TitledMultiSelectEnumSchema.Type | typeof BooleanSchema.Type | typeof StringSchema.Type | typeof NumberSchema.Type;
169
+ /**
170
+ * One property of an MCP form-mode `requestedSchema`. Decoding keeps only the
171
+ * keywords of the shape that admitted the property.
172
+ */
173
+ export declare const FormFieldSchema: Schema.transformOrFail<typeof Schema.Unknown, Schema.declare<FormField, FormField, readonly [], never>, never>;
174
+ export {};
175
+ //# sourceMappingURL=form-grammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-grammar.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/form-grammar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAML,MAAM,EACP,MAAM,QAAQ,CAAC;AAwDhB,wEAAwE;AACxE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;EAM1B,CAAC;AAEH,QAAA,MAAM,8BAA8B;;;;;;;;;;;;EAKlC,CAAC;AAEH,QAAA,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;EAKhC,CAAC;AAUH,QAAA,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;EAUjC,CAAC;AAEH,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG/B,CAAC;AAEH,QAAA,MAAM,aAAa;;;;;;;;;;;EAIjB,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;EAUhB,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;EAMhB,CAAC;AAEH,2EAA2E;AAC3E,MAAM,MAAM,SAAS,GACjB,OAAO,sBAAsB,CAAC,IAAI,GAClC,OAAO,8BAA8B,CAAC,IAAI,GAC1C,OAAO,4BAA4B,CAAC,IAAI,GACxC,OAAO,6BAA6B,CAAC,IAAI,GACzC,OAAO,2BAA2B,CAAC,IAAI,GACvC,OAAO,aAAa,CAAC,IAAI,GACzB,OAAO,YAAY,CAAC,IAAI,GACxB,OAAO,YAAY,CAAC,IAAI,CAAC;AAwG7B;;;GAGG;AACH,eAAO,MAAM,eAAe,gHAe3B,CAAC"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * @file The MCP form-mode grammar for one property of a `requestedSchema`.
3
+ *
4
+ * Each shape is the MCP specification's primitive schema definition for one
5
+ * kind of form field. Decoding tries the shapes in the specification's union
6
+ * order and keeps the first that admits the property, without the keywords
7
+ * that shape does not declare, so keywords outside the grammar never travel
8
+ * or reach answer validation. A property no shape admits fails with the
9
+ * failing keywords of the shape it most plausibly meant, so a requester can
10
+ * repair the property it meant to write.
11
+ */
12
+ import { Array as Arr, Either, Option, ParseResult, Predicate, Schema, } from "effect";
13
+ /* eslint-disable @typescript-eslint/naming-convention -- Effect Schemas take the names of the MCP specification shapes they mirror. */
14
+ const expectedText = (expected) => `Invalid input: expected ${expected}`;
15
+ /**
16
+ * A keyword whose failure, ill-typed or missing, names what it expects.
17
+ * `whole` reports a failure inside the keyword's value as one failure of the
18
+ * keyword; a nested object keeps its own keywords' paths instead.
19
+ */
20
+ const expecting = (schema, expected, whole = true) => schema.annotations({
21
+ message: () => ({ message: expectedText(expected), override: whole }),
22
+ });
23
+ function keyword(schema, expected, whole = true) {
24
+ return Schema.propertySignature(expecting(schema, expected, whole)).annotations({ missingMessage: () => expectedText(expected) });
25
+ }
26
+ function optionalKeyword(schema, expected) {
27
+ return Schema.optionalWith(expecting(schema, expected), { exact: true });
28
+ }
29
+ const FiniteNumber = Schema.Number.pipe(Schema.finite());
30
+ const StringList = Schema.Array(Schema.String);
31
+ const STRING_LIST = "an array of strings";
32
+ /** Labels every field shape may carry; neither constrains an answer. */
33
+ const labels = {
34
+ title: optionalKeyword(Schema.String, "string"),
35
+ description: optionalKeyword(Schema.String, "string"),
36
+ };
37
+ const stringType = keyword(Schema.Literal("string"), '"string"');
38
+ const arrayType = keyword(Schema.Literal("array"), '"array"');
39
+ const optionalString = optionalKeyword(Schema.String, "string");
40
+ const optionalNumber = optionalKeyword(FiniteNumber, "number");
41
+ /** One titled option of a titled select: the value and its display title. */
42
+ const titledOptions = keyword(Schema.Array(Schema.Struct({ const: Schema.String, title: Schema.String })), 'an array of {"const": string, "title": string}');
43
+ /** A single-select whose options carry display names in `enumNames`. */
44
+ const LegacyTitledEnumSchema = Schema.Struct({
45
+ type: stringType,
46
+ ...labels,
47
+ enum: keyword(StringList, STRING_LIST),
48
+ enumNames: optionalKeyword(StringList, STRING_LIST),
49
+ default: optionalString,
50
+ });
51
+ const UntitledSingleSelectEnumSchema = Schema.Struct({
52
+ type: stringType,
53
+ ...labels,
54
+ enum: keyword(StringList, STRING_LIST),
55
+ default: optionalString,
56
+ });
57
+ const TitledSingleSelectEnumSchema = Schema.Struct({
58
+ type: stringType,
59
+ ...labels,
60
+ oneOf: titledOptions,
61
+ default: optionalString,
62
+ });
63
+ const multiSelect = {
64
+ type: arrayType,
65
+ ...labels,
66
+ minItems: optionalNumber,
67
+ maxItems: optionalNumber,
68
+ default: optionalKeyword(StringList, STRING_LIST),
69
+ };
70
+ const UntitledMultiSelectEnumSchema = Schema.Struct({
71
+ ...multiSelect,
72
+ items: keyword(Schema.Struct({
73
+ type: stringType,
74
+ enum: keyword(StringList, STRING_LIST),
75
+ }), "an object", false),
76
+ });
77
+ const TitledMultiSelectEnumSchema = Schema.Struct({
78
+ ...multiSelect,
79
+ items: keyword(Schema.Struct({ anyOf: titledOptions }), "an object", false),
80
+ });
81
+ const BooleanSchema = Schema.Struct({
82
+ type: keyword(Schema.Literal("boolean"), '"boolean"'),
83
+ ...labels,
84
+ default: optionalKeyword(Schema.Boolean, "boolean"),
85
+ });
86
+ const StringSchema = Schema.Struct({
87
+ type: stringType,
88
+ ...labels,
89
+ minLength: optionalNumber,
90
+ maxLength: optionalNumber,
91
+ format: optionalKeyword(Schema.Literal("email", "uri", "date", "date-time"), 'one of "email", "uri", "date" or "date-time"'),
92
+ default: optionalString,
93
+ });
94
+ const NumberSchema = Schema.Struct({
95
+ type: keyword(Schema.Literal("number", "integer"), '"number" or "integer"'),
96
+ ...labels,
97
+ minimum: optionalNumber,
98
+ maximum: optionalNumber,
99
+ default: optionalNumber,
100
+ });
101
+ /** Shape outputs keep only declared keywords; failures report every keyword. */
102
+ const shapeOptions = {
103
+ onExcessProperty: "ignore",
104
+ errors: "all",
105
+ };
106
+ const decoderOf = (schema) => (property) => Schema.decodeUnknownEither(schema)(property, shapeOptions);
107
+ /** The shapes in the specification's union order; the first match wins. */
108
+ const fieldShapes = [
109
+ decoderOf(LegacyTitledEnumSchema),
110
+ decoderOf(UntitledSingleSelectEnumSchema),
111
+ decoderOf(TitledSingleSelectEnumSchema),
112
+ decoderOf(UntitledMultiSelectEnumSchema),
113
+ decoderOf(TitledMultiSelectEnumSchema),
114
+ decoderOf(BooleanSchema),
115
+ decoderOf(StringSchema),
116
+ decoderOf(NumberSchema),
117
+ ];
118
+ const declares = (property, ...types) => Predicate.hasProperty(property, "type") &&
119
+ types.some((type) => type === property.type);
120
+ /** Shapes by intent, each listed before any shape it refines. */
121
+ const intendedShapes = [
122
+ {
123
+ expected: 'a titled single-select is {"type":"string","oneOf":[{"const":"a","title":"A"}]}',
124
+ decode: decoderOf(TitledSingleSelectEnumSchema),
125
+ intends: (property) => declares(property, "string") && Predicate.hasProperty(property, "oneOf"),
126
+ },
127
+ {
128
+ expected: 'a single-select is {"type":"string","enum":["a","b"]}',
129
+ decode: decoderOf(UntitledSingleSelectEnumSchema),
130
+ intends: (property) => declares(property, "string") && Predicate.hasProperty(property, "enum"),
131
+ },
132
+ {
133
+ expected: 'a string is {"type":"string"} with optional minLength, maxLength or format',
134
+ decode: decoderOf(StringSchema),
135
+ intends: (property) => declares(property, "string"),
136
+ },
137
+ {
138
+ expected: 'a number is {"type":"number"} or {"type":"integer"} with optional minimum and maximum',
139
+ decode: decoderOf(NumberSchema),
140
+ intends: (property) => declares(property, "number", "integer"),
141
+ },
142
+ {
143
+ expected: 'a boolean is {"type":"boolean"}',
144
+ decode: decoderOf(BooleanSchema),
145
+ intends: (property) => declares(property, "boolean"),
146
+ },
147
+ {
148
+ expected: 'a titled multi-select is {"type":"array","items":{"anyOf":[{"const":"a","title":"A"}]}}',
149
+ decode: decoderOf(TitledMultiSelectEnumSchema),
150
+ intends: (property) => declares(property, "array") &&
151
+ Predicate.hasProperty(property, "items") &&
152
+ Predicate.hasProperty(property.items, "anyOf"),
153
+ },
154
+ {
155
+ expected: 'a multi-select is {"type":"array","items":{"type":"string","enum":["a","b"]}}',
156
+ decode: decoderOf(UntitledMultiSelectEnumSchema),
157
+ intends: (property) => declares(property, "array"),
158
+ },
159
+ ];
160
+ const issueAt = (path, message) => path.length === 0 ? message : `${path.map(String).join(".")}: ${message}`;
161
+ const FormFieldValue = Schema.declare((value) => Either.match(admitFormField(value), {
162
+ onLeft: () => false,
163
+ onRight: () => true,
164
+ }), { identifier: "PrimitiveSchemaDefinition" });
165
+ /**
166
+ * One property of an MCP form-mode `requestedSchema`. Decoding keeps only the
167
+ * keywords of the shape that admitted the property.
168
+ */
169
+ export const FormFieldSchema = Schema.transformOrFail(Schema.Unknown, FormFieldValue, {
170
+ strict: true,
171
+ decode: (value) => Either.match(admitFormField(value), {
172
+ onLeft: (message) => ParseResult.fail(new ParseResult.Type(FormFieldValue.ast, value, message)),
173
+ onRight: (field) => ParseResult.succeed(field),
174
+ }),
175
+ encode: (field) => ParseResult.succeed(field),
176
+ });
177
+ /**
178
+ * Admit one property under the first shape that matches it.
179
+ * @param property An untrusted property of a requested schema.
180
+ * @returns The admitted field, or the text naming each failing keyword.
181
+ */
182
+ function admitFormField(property) {
183
+ return Option.match(Arr.findFirst(fieldShapes, (decode) => Either.getRight(decode(property))), {
184
+ onNone: () => Either.left(formFieldViolation(property)),
185
+ onSome: offersOptions,
186
+ });
187
+ }
188
+ /**
189
+ * Say why no shape admits a property: each keyword its intended shape
190
+ * rejects, by path within the property, then that shape.
191
+ * @param property A property every shape rejected.
192
+ * @returns For example `items.type: Invalid input: expected "string"; a
193
+ * multi-select is {"type":"array","items":{"type":"string","enum":["a","b"]}}`.
194
+ */
195
+ function formFieldViolation(property) {
196
+ const shape = intendedShapes.find(({ intends }) => intends(property));
197
+ if (shape === undefined) {
198
+ return '"type" must be "string", "number", "integer", "boolean" or "array"';
199
+ }
200
+ const issues = Either.match(shape.decode(property), {
201
+ onLeft: (error) => ParseResult.ArrayFormatter.formatErrorSync(error),
202
+ onRight: () => [],
203
+ });
204
+ return [
205
+ ...issues.map(({ path, message }) => issueAt(path, message)),
206
+ shape.expected,
207
+ ].join("; ");
208
+ }
209
+ /**
210
+ * Refuse an admitted select that lists no option to choose. JSON Schema
211
+ * requires a non-empty `enum`, so such a field could accept no answer.
212
+ */
213
+ function offersOptions(field) {
214
+ const noOptions = (path) => Either.left(issueAt(path, expectedText("at least one option")));
215
+ if ("enum" in field && field.enum.length === 0) {
216
+ return noOptions(["enum"]);
217
+ }
218
+ if ("items" in field && "enum" in field.items) {
219
+ return field.items.enum.length === 0
220
+ ? noOptions(["items", "enum"])
221
+ : Either.right(field);
222
+ }
223
+ return Either.right(field);
224
+ }
225
+ /* eslint-enable @typescript-eslint/naming-convention -- Restore the package naming rules after the shapes. */
226
+ //# sourceMappingURL=form-grammar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-grammar.js","sourceRoot":"","sources":["../../../src/transport/collectives/form-grammar.ts"],"names":[],"mappings":"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"}