@astrale-os/kernel-protocol 0.5.0-beta.2 → 0.5.0-beta.21

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 (426) hide show
  1. package/CHANGELOG.md +476 -0
  2. package/dist/artifact/index.d.ts +0 -1
  3. package/dist/artifact/index.js +0 -1
  4. package/dist/artifact/ref.d.ts +0 -1
  5. package/dist/artifact/ref.js +0 -1
  6. package/dist/codecs/codec.d.ts +0 -1
  7. package/dist/codecs/codec.js +0 -1
  8. package/dist/codecs/index.d.ts +0 -1
  9. package/dist/codecs/index.js +0 -1
  10. package/dist/codecs/json.d.ts +0 -1
  11. package/dist/codecs/json.js +0 -1
  12. package/dist/codecs/media-types.d.ts +0 -1
  13. package/dist/codecs/media-types.js +0 -1
  14. package/dist/codecs/msgpack.d.ts +0 -1
  15. package/dist/codecs/msgpack.js +1 -5
  16. package/dist/errors/codes.d.ts +0 -1
  17. package/dist/errors/codes.js +0 -1
  18. package/dist/errors/http-status.d.ts +0 -1
  19. package/dist/errors/http-status.js +0 -1
  20. package/dist/errors/index.d.ts +0 -1
  21. package/dist/errors/index.js +0 -1
  22. package/dist/errors/payload.d.ts +0 -1
  23. package/dist/errors/payload.js +3 -3
  24. package/dist/errors/protocol-error.d.ts +0 -1
  25. package/dist/errors/protocol-error.js +4 -3
  26. package/dist/errors/reason.d.ts +0 -1
  27. package/dist/errors/reason.js +0 -1
  28. package/dist/index.d.ts +0 -1
  29. package/dist/index.js +0 -1
  30. package/dist/invocation/admission.d.ts +4 -3
  31. package/dist/invocation/admission.js +16 -8
  32. package/dist/invocation/binary.d.ts +4 -2
  33. package/dist/invocation/binary.js +18 -5
  34. package/dist/invocation/binding-codecs.d.ts +0 -1
  35. package/dist/invocation/binding-codecs.js +0 -1
  36. package/dist/invocation/cancellation.d.ts +1 -2
  37. package/dist/invocation/cancellation.js +3 -4
  38. package/dist/invocation/correlation.d.ts +0 -1
  39. package/dist/invocation/correlation.js +0 -1
  40. package/dist/invocation/delegate.d.ts +0 -1
  41. package/dist/invocation/delegate.js +0 -1
  42. package/dist/invocation/http/binary.d.ts +9 -1
  43. package/dist/invocation/http/binary.js +49 -3
  44. package/dist/invocation/http/index.d.ts +1 -2
  45. package/dist/invocation/http/index.js +1 -2
  46. package/dist/invocation/http/negotiation.d.ts +0 -1
  47. package/dist/invocation/http/negotiation.js +0 -1
  48. package/dist/invocation/http/stream.d.ts +0 -1
  49. package/dist/invocation/http/stream.js +0 -1
  50. package/dist/invocation/http/trace.d.ts +0 -1
  51. package/dist/invocation/http/trace.js +0 -1
  52. package/dist/invocation/idempotency.d.ts +0 -1
  53. package/dist/invocation/idempotency.js +0 -1
  54. package/dist/invocation/identity.d.ts +16 -0
  55. package/dist/invocation/identity.js +55 -0
  56. package/dist/invocation/index.d.ts +4 -4
  57. package/dist/invocation/index.js +3 -3
  58. package/dist/invocation/miss.d.ts +4 -3
  59. package/dist/invocation/miss.js +10 -7
  60. package/dist/invocation/redirect.d.ts +19 -12
  61. package/dist/invocation/redirect.js +30 -17
  62. package/dist/invocation/request.d.ts +1 -2
  63. package/dist/invocation/request.js +3 -4
  64. package/dist/invocation/response.d.ts +9 -7
  65. package/dist/invocation/response.js +14 -10
  66. package/dist/invocation/routing.d.ts +3 -3
  67. package/dist/invocation/routing.js +4 -4
  68. package/dist/invocation/schema.d.ts +2 -3
  69. package/dist/invocation/schema.js +2 -3
  70. package/dist/invocation/service-reason.d.ts +13 -13
  71. package/dist/invocation/service-reason.js +14 -14
  72. package/dist/invocation/stale-route.d.ts +4 -3
  73. package/dist/invocation/stale-route.js +7 -7
  74. package/dist/invocation/stream.d.ts +6 -5
  75. package/dist/invocation/stream.js +17 -14
  76. package/dist/invocation/target.d.ts +2 -8
  77. package/dist/invocation/target.js +0 -1
  78. package/dist/invocation/trace.d.ts +0 -1
  79. package/dist/invocation/trace.js +0 -1
  80. package/dist/invocation/version.d.ts +0 -1
  81. package/dist/invocation/version.js +0 -1
  82. package/dist/invocation/websocket/binary.d.ts +0 -1
  83. package/dist/invocation/websocket/binary.js +4 -3
  84. package/dist/invocation/websocket/index.d.ts +0 -1
  85. package/dist/invocation/websocket/index.js +0 -1
  86. package/dist/invocation/websocket/subprotocol.d.ts +0 -1
  87. package/dist/invocation/websocket/subprotocol.js +0 -1
  88. package/dist/issuer/configuration.d.ts +1 -2
  89. package/dist/issuer/configuration.js +0 -1
  90. package/dist/issuer/error.d.ts +0 -1
  91. package/dist/issuer/error.js +0 -1
  92. package/dist/issuer/exchange.d.ts +0 -1
  93. package/dist/issuer/exchange.js +0 -1
  94. package/dist/issuer/hosted.d.ts +1 -2
  95. package/dist/issuer/hosted.js +0 -1
  96. package/dist/issuer/index.d.ts +0 -1
  97. package/dist/issuer/index.js +0 -1
  98. package/dist/issuer/key-set.d.ts +1 -2
  99. package/dist/issuer/key-set.js +3 -3
  100. package/dist/issuer/paths.d.ts +0 -1
  101. package/dist/issuer/paths.js +0 -1
  102. package/dist/issuer/url.d.ts +1 -2
  103. package/dist/issuer/url.js +3 -3
  104. package/dist/publication/bindings/callable.d.ts +1 -2
  105. package/dist/publication/bindings/callable.js +8 -6
  106. package/dist/publication/bindings/index.d.ts +0 -1
  107. package/dist/publication/bindings/index.js +0 -1
  108. package/dist/publication/bindings/invocation.d.ts +0 -1
  109. package/dist/publication/bindings/invocation.js +0 -1
  110. package/dist/publication/bindings/view.d.ts +1 -2
  111. package/dist/publication/bindings/view.js +2 -3
  112. package/dist/publication/bundle-admission.d.ts +4 -0
  113. package/dist/publication/bundle-admission.js +65 -0
  114. package/dist/publication/bundle-descriptor.d.ts +9 -0
  115. package/dist/publication/bundle-descriptor.js +19 -0
  116. package/dist/publication/bundle-evidence.d.ts +3 -0
  117. package/dist/publication/bundle-evidence.js +13 -0
  118. package/dist/publication/bundle.d.ts +5 -12
  119. package/dist/publication/bundle.js +8 -29
  120. package/dist/publication/content.d.ts +0 -1
  121. package/dist/publication/content.js +0 -1
  122. package/dist/publication/declaration.d.ts +11 -0
  123. package/dist/publication/declaration.js +1 -0
  124. package/dist/publication/delivery/attestation.d.ts +0 -1
  125. package/dist/publication/delivery/attestation.js +0 -1
  126. package/dist/publication/delivery/claims.d.ts +8 -8
  127. package/dist/publication/delivery/claims.js +6 -7
  128. package/dist/publication/delivery/delivery.d.ts +1 -2
  129. package/dist/publication/delivery/delivery.js +1 -2
  130. package/dist/publication/delivery/error.d.ts +0 -1
  131. package/dist/publication/delivery/error.js +0 -1
  132. package/dist/publication/delivery/index.d.ts +0 -1
  133. package/dist/publication/delivery/index.js +0 -1
  134. package/dist/publication/delivery/limits.d.ts +0 -1
  135. package/dist/publication/delivery/limits.js +0 -1
  136. package/dist/publication/delivery/request.d.ts +3 -4
  137. package/dist/publication/delivery/request.js +4 -4
  138. package/dist/publication/delivery-declaration.d.ts +4 -0
  139. package/dist/publication/delivery-declaration.js +25 -0
  140. package/dist/publication/delivery-endpoint.d.ts +0 -1
  141. package/dist/publication/delivery-endpoint.js +0 -1
  142. package/dist/publication/error.d.ts +0 -1
  143. package/dist/publication/error.js +0 -1
  144. package/dist/publication/etag.d.ts +0 -1
  145. package/dist/publication/etag.js +0 -1
  146. package/dist/publication/index.d.ts +6 -3
  147. package/dist/publication/index.js +4 -2
  148. package/dist/publication/manifest.d.ts +2 -3
  149. package/dist/publication/manifest.js +10 -6
  150. package/dist/publication/publication.d.ts +3 -6
  151. package/dist/publication/publication.js +11 -68
  152. package/dist/publication/reference.d.ts +3 -3
  153. package/dist/publication/reference.js +7 -7
  154. package/dist/publication/requirements.d.ts +4 -4
  155. package/dist/publication/requirements.js +34 -34
  156. package/dist/publication/route.d.ts +6 -2
  157. package/dist/publication/route.js +31 -9
  158. package/dist/publication/schema.d.ts +3 -4
  159. package/dist/publication/schema.js +3 -4
  160. package/dist/routes/admission.d.ts +3 -0
  161. package/dist/routes/admission.js +89 -0
  162. package/dist/routes/binding.d.ts +6 -0
  163. package/dist/routes/binding.js +27 -0
  164. package/dist/routes/collision.d.ts +2 -0
  165. package/dist/routes/collision.js +16 -0
  166. package/dist/routes/compiler.d.ts +8 -0
  167. package/dist/routes/compiler.js +50 -0
  168. package/dist/routes/credential.d.ts +7 -8
  169. package/dist/routes/credential.js +7 -8
  170. package/dist/routes/decode.d.ts +4 -3
  171. package/dist/routes/decode.js +42 -42
  172. package/dist/routes/encode.d.ts +3 -3
  173. package/dist/routes/encode.js +31 -33
  174. package/dist/routes/error-response.d.ts +0 -1
  175. package/dist/routes/error-response.js +0 -1
  176. package/dist/routes/error.d.ts +0 -1
  177. package/dist/routes/error.js +0 -1
  178. package/dist/routes/evidence.d.ts +5 -0
  179. package/dist/routes/evidence.js +38 -0
  180. package/dist/routes/index.d.ts +9 -3
  181. package/dist/routes/index.js +6 -3
  182. package/dist/routes/mapping.d.ts +1 -2
  183. package/dist/routes/mapping.js +4 -13
  184. package/dist/routes/match.d.ts +3 -4
  185. package/dist/routes/match.js +3 -5
  186. package/dist/routes/placement.d.ts +5 -0
  187. package/dist/routes/placement.js +18 -0
  188. package/dist/routes/plan.d.ts +24 -0
  189. package/dist/routes/plan.js +1 -0
  190. package/dist/routes/release-unavailable.d.ts +8 -0
  191. package/dist/routes/release-unavailable.js +32 -0
  192. package/dist/routes/request.d.ts +0 -1
  193. package/dist/routes/request.js +3 -2
  194. package/dist/routes/reservation.d.ts +3 -4
  195. package/dist/routes/reservation.js +8 -5
  196. package/dist/routes/routing.d.ts +0 -1
  197. package/dist/routes/routing.js +0 -1
  198. package/dist/routes/scalar.d.ts +4 -4
  199. package/dist/routes/scalar.js +14 -11
  200. package/dist/routes/select.d.ts +2 -3
  201. package/dist/routes/select.js +2 -3
  202. package/dist/routes/stream.d.ts +0 -1
  203. package/dist/routes/stream.js +0 -1
  204. package/dist/routes/table.d.ts +9 -0
  205. package/dist/routes/table.js +1 -0
  206. package/dist/routes/target.d.ts +13 -0
  207. package/dist/routes/target.js +3 -0
  208. package/dist/routes/template.d.ts +0 -1
  209. package/dist/routes/template.js +0 -1
  210. package/dist/runtime/artifact.d.ts +3 -4
  211. package/dist/runtime/artifact.js +5 -6
  212. package/dist/runtime/index.d.ts +0 -1
  213. package/dist/runtime/index.js +0 -1
  214. package/dist/schema/index.d.ts +0 -1
  215. package/dist/schema/index.js +0 -1
  216. package/dist/schema/installation/codec.d.ts +4 -0
  217. package/dist/schema/installation/codec.js +70 -0
  218. package/dist/schema/installation/index.d.ts +2 -1
  219. package/dist/schema/installation/index.js +1 -1
  220. package/dist/schema/installation/introspection/codec.d.ts +3 -3
  221. package/dist/schema/installation/introspection/codec.js +144 -204
  222. package/dist/schema/installation/introspection/index.d.ts +2 -3
  223. package/dist/schema/installation/introspection/index.js +1 -2
  224. package/dist/schema/installation/introspection/result.d.ts +18 -23
  225. package/dist/schema/installation/introspection/result.js +0 -1
  226. package/dist/schema/installation/result.d.ts +9 -0
  227. package/dist/schema/installation/result.js +1 -0
  228. package/package.json +116 -13
  229. package/dist/artifact/index.d.ts.map +0 -1
  230. package/dist/artifact/index.js.map +0 -1
  231. package/dist/artifact/ref.d.ts.map +0 -1
  232. package/dist/artifact/ref.js.map +0 -1
  233. package/dist/codecs/codec.d.ts.map +0 -1
  234. package/dist/codecs/codec.js.map +0 -1
  235. package/dist/codecs/index.d.ts.map +0 -1
  236. package/dist/codecs/index.js.map +0 -1
  237. package/dist/codecs/json.d.ts.map +0 -1
  238. package/dist/codecs/json.js.map +0 -1
  239. package/dist/codecs/media-types.d.ts.map +0 -1
  240. package/dist/codecs/media-types.js.map +0 -1
  241. package/dist/codecs/msgpack.d.ts.map +0 -1
  242. package/dist/codecs/msgpack.js.map +0 -1
  243. package/dist/errors/codes.d.ts.map +0 -1
  244. package/dist/errors/codes.js.map +0 -1
  245. package/dist/errors/http-status.d.ts.map +0 -1
  246. package/dist/errors/http-status.js.map +0 -1
  247. package/dist/errors/index.d.ts.map +0 -1
  248. package/dist/errors/index.js.map +0 -1
  249. package/dist/errors/payload.d.ts.map +0 -1
  250. package/dist/errors/payload.js.map +0 -1
  251. package/dist/errors/protocol-error.d.ts.map +0 -1
  252. package/dist/errors/protocol-error.js.map +0 -1
  253. package/dist/errors/reason.d.ts.map +0 -1
  254. package/dist/errors/reason.js.map +0 -1
  255. package/dist/index.d.ts.map +0 -1
  256. package/dist/index.js.map +0 -1
  257. package/dist/invocation/admission.d.ts.map +0 -1
  258. package/dist/invocation/admission.js.map +0 -1
  259. package/dist/invocation/binary.d.ts.map +0 -1
  260. package/dist/invocation/binary.js.map +0 -1
  261. package/dist/invocation/binding-codecs.d.ts.map +0 -1
  262. package/dist/invocation/binding-codecs.js.map +0 -1
  263. package/dist/invocation/cancellation.d.ts.map +0 -1
  264. package/dist/invocation/cancellation.js.map +0 -1
  265. package/dist/invocation/correlation.d.ts.map +0 -1
  266. package/dist/invocation/correlation.js.map +0 -1
  267. package/dist/invocation/delegate.d.ts.map +0 -1
  268. package/dist/invocation/delegate.js.map +0 -1
  269. package/dist/invocation/http/binary.d.ts.map +0 -1
  270. package/dist/invocation/http/binary.js.map +0 -1
  271. package/dist/invocation/http/index.d.ts.map +0 -1
  272. package/dist/invocation/http/index.js.map +0 -1
  273. package/dist/invocation/http/negotiation.d.ts.map +0 -1
  274. package/dist/invocation/http/negotiation.js.map +0 -1
  275. package/dist/invocation/http/stream.d.ts.map +0 -1
  276. package/dist/invocation/http/stream.js.map +0 -1
  277. package/dist/invocation/http/trace.d.ts.map +0 -1
  278. package/dist/invocation/http/trace.js.map +0 -1
  279. package/dist/invocation/idempotency.d.ts.map +0 -1
  280. package/dist/invocation/idempotency.js.map +0 -1
  281. package/dist/invocation/index.d.ts.map +0 -1
  282. package/dist/invocation/index.js.map +0 -1
  283. package/dist/invocation/miss.d.ts.map +0 -1
  284. package/dist/invocation/miss.js.map +0 -1
  285. package/dist/invocation/redirect.d.ts.map +0 -1
  286. package/dist/invocation/redirect.js.map +0 -1
  287. package/dist/invocation/request.d.ts.map +0 -1
  288. package/dist/invocation/request.js.map +0 -1
  289. package/dist/invocation/response.d.ts.map +0 -1
  290. package/dist/invocation/response.js.map +0 -1
  291. package/dist/invocation/routing.d.ts.map +0 -1
  292. package/dist/invocation/routing.js.map +0 -1
  293. package/dist/invocation/schema.d.ts.map +0 -1
  294. package/dist/invocation/schema.js.map +0 -1
  295. package/dist/invocation/service-reason.d.ts.map +0 -1
  296. package/dist/invocation/service-reason.js.map +0 -1
  297. package/dist/invocation/stale-route.d.ts.map +0 -1
  298. package/dist/invocation/stale-route.js.map +0 -1
  299. package/dist/invocation/stream.d.ts.map +0 -1
  300. package/dist/invocation/stream.js.map +0 -1
  301. package/dist/invocation/target.d.ts.map +0 -1
  302. package/dist/invocation/target.js.map +0 -1
  303. package/dist/invocation/trace.d.ts.map +0 -1
  304. package/dist/invocation/trace.js.map +0 -1
  305. package/dist/invocation/version.d.ts.map +0 -1
  306. package/dist/invocation/version.js.map +0 -1
  307. package/dist/invocation/websocket/binary.d.ts.map +0 -1
  308. package/dist/invocation/websocket/binary.js.map +0 -1
  309. package/dist/invocation/websocket/index.d.ts.map +0 -1
  310. package/dist/invocation/websocket/index.js.map +0 -1
  311. package/dist/invocation/websocket/subprotocol.d.ts.map +0 -1
  312. package/dist/invocation/websocket/subprotocol.js.map +0 -1
  313. package/dist/issuer/configuration.d.ts.map +0 -1
  314. package/dist/issuer/configuration.js.map +0 -1
  315. package/dist/issuer/error.d.ts.map +0 -1
  316. package/dist/issuer/error.js.map +0 -1
  317. package/dist/issuer/exchange.d.ts.map +0 -1
  318. package/dist/issuer/exchange.js.map +0 -1
  319. package/dist/issuer/hosted.d.ts.map +0 -1
  320. package/dist/issuer/hosted.js.map +0 -1
  321. package/dist/issuer/index.d.ts.map +0 -1
  322. package/dist/issuer/index.js.map +0 -1
  323. package/dist/issuer/key-set.d.ts.map +0 -1
  324. package/dist/issuer/key-set.js.map +0 -1
  325. package/dist/issuer/paths.d.ts.map +0 -1
  326. package/dist/issuer/paths.js.map +0 -1
  327. package/dist/issuer/url.d.ts.map +0 -1
  328. package/dist/issuer/url.js.map +0 -1
  329. package/dist/publication/bindings/callable.d.ts.map +0 -1
  330. package/dist/publication/bindings/callable.js.map +0 -1
  331. package/dist/publication/bindings/index.d.ts.map +0 -1
  332. package/dist/publication/bindings/index.js.map +0 -1
  333. package/dist/publication/bindings/invocation.d.ts.map +0 -1
  334. package/dist/publication/bindings/invocation.js.map +0 -1
  335. package/dist/publication/bindings/view.d.ts.map +0 -1
  336. package/dist/publication/bindings/view.js.map +0 -1
  337. package/dist/publication/bundle.d.ts.map +0 -1
  338. package/dist/publication/bundle.js.map +0 -1
  339. package/dist/publication/content.d.ts.map +0 -1
  340. package/dist/publication/content.js.map +0 -1
  341. package/dist/publication/delivery/attestation.d.ts.map +0 -1
  342. package/dist/publication/delivery/attestation.js.map +0 -1
  343. package/dist/publication/delivery/claims.d.ts.map +0 -1
  344. package/dist/publication/delivery/claims.js.map +0 -1
  345. package/dist/publication/delivery/delivery.d.ts.map +0 -1
  346. package/dist/publication/delivery/delivery.js.map +0 -1
  347. package/dist/publication/delivery/error.d.ts.map +0 -1
  348. package/dist/publication/delivery/error.js.map +0 -1
  349. package/dist/publication/delivery/index.d.ts.map +0 -1
  350. package/dist/publication/delivery/index.js.map +0 -1
  351. package/dist/publication/delivery/limits.d.ts.map +0 -1
  352. package/dist/publication/delivery/limits.js.map +0 -1
  353. package/dist/publication/delivery/request.d.ts.map +0 -1
  354. package/dist/publication/delivery/request.js.map +0 -1
  355. package/dist/publication/delivery-endpoint.d.ts.map +0 -1
  356. package/dist/publication/delivery-endpoint.js.map +0 -1
  357. package/dist/publication/error.d.ts.map +0 -1
  358. package/dist/publication/error.js.map +0 -1
  359. package/dist/publication/etag.d.ts.map +0 -1
  360. package/dist/publication/etag.js.map +0 -1
  361. package/dist/publication/index.d.ts.map +0 -1
  362. package/dist/publication/index.js.map +0 -1
  363. package/dist/publication/manifest.d.ts.map +0 -1
  364. package/dist/publication/manifest.js.map +0 -1
  365. package/dist/publication/publication.d.ts.map +0 -1
  366. package/dist/publication/publication.js.map +0 -1
  367. package/dist/publication/reference.d.ts.map +0 -1
  368. package/dist/publication/reference.js.map +0 -1
  369. package/dist/publication/requirements.d.ts.map +0 -1
  370. package/dist/publication/requirements.js.map +0 -1
  371. package/dist/publication/route.d.ts.map +0 -1
  372. package/dist/publication/route.js.map +0 -1
  373. package/dist/publication/schema.d.ts.map +0 -1
  374. package/dist/publication/schema.js.map +0 -1
  375. package/dist/routes/compile.d.ts +0 -5
  376. package/dist/routes/compile.d.ts.map +0 -1
  377. package/dist/routes/compile.js +0 -69
  378. package/dist/routes/compile.js.map +0 -1
  379. package/dist/routes/credential.d.ts.map +0 -1
  380. package/dist/routes/credential.js.map +0 -1
  381. package/dist/routes/decode.d.ts.map +0 -1
  382. package/dist/routes/decode.js.map +0 -1
  383. package/dist/routes/encode.d.ts.map +0 -1
  384. package/dist/routes/encode.js.map +0 -1
  385. package/dist/routes/error-response.d.ts.map +0 -1
  386. package/dist/routes/error-response.js.map +0 -1
  387. package/dist/routes/error.d.ts.map +0 -1
  388. package/dist/routes/error.js.map +0 -1
  389. package/dist/routes/index.d.ts.map +0 -1
  390. package/dist/routes/index.js.map +0 -1
  391. package/dist/routes/mapping.d.ts.map +0 -1
  392. package/dist/routes/mapping.js.map +0 -1
  393. package/dist/routes/match.d.ts.map +0 -1
  394. package/dist/routes/match.js.map +0 -1
  395. package/dist/routes/request.d.ts.map +0 -1
  396. package/dist/routes/request.js.map +0 -1
  397. package/dist/routes/reservation.d.ts.map +0 -1
  398. package/dist/routes/reservation.js.map +0 -1
  399. package/dist/routes/route.d.ts +0 -13
  400. package/dist/routes/route.d.ts.map +0 -1
  401. package/dist/routes/route.js +0 -6
  402. package/dist/routes/route.js.map +0 -1
  403. package/dist/routes/routing.d.ts.map +0 -1
  404. package/dist/routes/routing.js.map +0 -1
  405. package/dist/routes/scalar.d.ts.map +0 -1
  406. package/dist/routes/scalar.js.map +0 -1
  407. package/dist/routes/select.d.ts.map +0 -1
  408. package/dist/routes/select.js.map +0 -1
  409. package/dist/routes/stream.d.ts.map +0 -1
  410. package/dist/routes/stream.js.map +0 -1
  411. package/dist/routes/template.d.ts.map +0 -1
  412. package/dist/routes/template.js.map +0 -1
  413. package/dist/runtime/artifact.d.ts.map +0 -1
  414. package/dist/runtime/artifact.js.map +0 -1
  415. package/dist/runtime/index.d.ts.map +0 -1
  416. package/dist/runtime/index.js.map +0 -1
  417. package/dist/schema/index.d.ts.map +0 -1
  418. package/dist/schema/index.js.map +0 -1
  419. package/dist/schema/installation/index.d.ts.map +0 -1
  420. package/dist/schema/installation/index.js.map +0 -1
  421. package/dist/schema/installation/introspection/codec.d.ts.map +0 -1
  422. package/dist/schema/installation/introspection/codec.js.map +0 -1
  423. package/dist/schema/installation/introspection/index.d.ts.map +0 -1
  424. package/dist/schema/installation/introspection/index.js.map +0 -1
  425. package/dist/schema/installation/introspection/result.d.ts.map +0 -1
  426. package/dist/schema/installation/introspection/result.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -6,4 +6,3 @@ export * as publication from './publication/index.js';
6
6
  export * as schema from './schema/index.js';
7
7
  export * as routes from './routes/index.js';
8
8
  export * as issuer from './issuer/index.js';
9
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -6,4 +6,3 @@ export * as publication from './publication/index.js';
6
6
  export * as schema from './schema/index.js';
7
7
  export * as routes from './routes/index.js';
8
8
  export * as issuer from './issuer/index.js';
9
- //# sourceMappingURL=index.js.map
@@ -1,15 +1,17 @@
1
- import { type IssuerId } from '@astrale-os/kernel-core/auth';
1
+ import { type IssuerId } from '@astrale-os/kernel-core/auth/issuer';
2
2
  import { NodePath } from '@astrale-os/kernel-core/path';
3
- import { Key } from '@astrale-os/kernel-dsl/v1';
3
+ import { Key } from '@astrale-os/kernel-dsl/v1/addressing';
4
4
  import { type Object as ValueObject } from '@astrale-os/kernel-dsl/value';
5
5
  import type { ErrorPayload } from '../errors/index.js';
6
6
  import type { Etag } from '../publication/index.js';
7
7
  import { type RequestId } from './correlation.js';
8
+ import { type InvocationId } from './identity.js';
8
9
  export declare function portableObject(input: unknown, label: string): ValueObject;
9
10
  export declare function exactDataObject(input: unknown, label: string): Record<string, unknown>;
10
11
  export declare function exactFields(object: Record<string, unknown>, allowed: ReadonlySet<string>, label: string): void;
11
12
  export declare function required(object: Record<string, unknown>, fields: readonly string[], label: string): void;
12
13
  export declare function requestId(input: unknown, label: string): RequestId;
14
+ export declare function invocation(input: unknown, label: string): InvocationId;
13
15
  export declare function nodePath(input: unknown, label: string): NodePath;
14
16
  export declare function issuerId(input: unknown, label: string): IssuerId;
15
17
  export declare function string(input: unknown, label: string): string;
@@ -19,4 +21,3 @@ export declare function callableKey(input: unknown, label: string): Key.Callable
19
21
  export declare function errorPayload(input: unknown, label: string): ErrorPayload;
20
22
  export declare function acceptHeaders(input: unknown): Readonly<Record<string, string>>;
21
23
  export declare function invalid(message: string): never;
22
- //# sourceMappingURL=admission.d.ts.map
@@ -1,9 +1,11 @@
1
- import { AuthValueError, issuer } from '@astrale-os/kernel-core/auth';
1
+ import { AuthValueError } from '@astrale-os/kernel-core/auth/error';
2
+ import { accept as acceptIssuer } from '@astrale-os/kernel-core/auth/issuer';
2
3
  import { NodePath, PathError } from '@astrale-os/kernel-core/path';
3
- import { Key, Ref } from '@astrale-os/kernel-dsl/v1';
4
+ import { callableAddress, Key } from '@astrale-os/kernel-dsl/v1/addressing';
4
5
  import { accept as acceptValue, BoundaryError, } from '@astrale-os/kernel-dsl/value';
5
6
  import { CODES, acceptPayload, ProtocolError } from '../errors/index.js';
6
7
  import { acceptRequestId } from './correlation.js';
8
+ import { acceptInvocationId, InvocationError } from './identity.js';
7
9
  export function portableObject(input, label) {
8
10
  let cloned;
9
11
  try {
@@ -61,6 +63,16 @@ export function requestId(input, label) {
61
63
  throw cause;
62
64
  }
63
65
  }
66
+ export function invocation(input, label) {
67
+ try {
68
+ return acceptInvocationId(input);
69
+ }
70
+ catch (cause) {
71
+ if (cause instanceof InvocationError)
72
+ return invalid(`${label} must be a valid Invocation`);
73
+ throw cause;
74
+ }
75
+ }
64
76
  export function nodePath(input, label) {
65
77
  if (typeof input !== 'string')
66
78
  invalid(`${label} must be a NodePath string`);
@@ -77,7 +89,7 @@ export function issuerId(input, label) {
77
89
  if (typeof input !== 'string')
78
90
  invalid(`${label} must be an issuer identifier`);
79
91
  try {
80
- return issuer.accept(input);
92
+ return acceptIssuer(input);
81
93
  }
82
94
  catch (cause) {
83
95
  if (cause instanceof AuthValueError)
@@ -107,10 +119,7 @@ export function callableKey(input, label) {
107
119
  invalid(`${label} must be a callable Key string`);
108
120
  try {
109
121
  const callable = Key(input);
110
- const reference = Key.ref(callable);
111
- if (!reference.startsWith('function.') && !Ref.isMethod(reference)) {
112
- invalid(`${label} must name a Function or Method`);
113
- }
122
+ callableAddress(callable);
114
123
  return callable;
115
124
  }
116
125
  catch (cause) {
@@ -166,4 +175,3 @@ function hasControlCharacter(input) {
166
175
  }
167
176
  return false;
168
177
  }
169
- //# sourceMappingURL=admission.js.map
@@ -1,10 +1,12 @@
1
1
  import type { RequestId } from './correlation.js';
2
+ import type { InvocationId } from './identity.js';
2
3
  export interface BinaryResponse {
3
4
  readonly kind: 'binary';
4
- readonly id: RequestId;
5
+ readonly requestId: RequestId;
6
+ readonly invocation: InvocationId;
5
7
  readonly body: Uint8Array;
6
8
  readonly mediaType: string;
9
+ readonly status: number;
7
10
  readonly headers?: Readonly<Record<string, string>>;
8
11
  }
9
12
  export declare function decodeBinaryResponse(input: unknown): BinaryResponse;
10
- //# sourceMappingURL=binary.d.ts.map
@@ -1,10 +1,18 @@
1
- import { acceptHeaders, exactDataObject, exactFields, invalid, requestId, required, string, } from './admission.js';
2
- const FIELDS = new Set(['kind', 'id', 'body', 'mediaType', 'headers']);
1
+ import { acceptHeaders, exactDataObject, exactFields, invalid, invocation, requestId, required, string, } from './admission.js';
2
+ const FIELDS = new Set([
3
+ 'kind',
4
+ 'requestId',
5
+ 'invocation',
6
+ 'body',
7
+ 'mediaType',
8
+ 'status',
9
+ 'headers',
10
+ ]);
3
11
  const MEDIA_TYPE = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/u;
4
12
  export function decodeBinaryResponse(input) {
5
13
  const object = exactDataObject(input, 'binary response');
6
14
  exactFields(object, FIELDS, 'binary response');
7
- required(object, ['kind', 'id', 'body', 'mediaType'], 'binary response');
15
+ required(object, ['kind', 'requestId', 'invocation', 'body', 'mediaType'], 'binary response');
8
16
  if (object.kind !== 'binary')
9
17
  invalid('binary response.kind must be "binary"');
10
18
  if (!(object.body instanceof Uint8Array))
@@ -12,13 +20,18 @@ export function decodeBinaryResponse(input) {
12
20
  const mediaType = string(object.mediaType, 'binary response.mediaType');
13
21
  if (!MEDIA_TYPE.test(mediaType))
14
22
  invalid('binary response.mediaType is invalid');
23
+ const status = object.status ?? 200;
24
+ if (!Number.isInteger(status) || status < 200 || status > 599) {
25
+ invalid('binary response.status is invalid');
26
+ }
15
27
  const headers = object.headers === undefined ? undefined : acceptHeaders(object.headers);
16
28
  return Object.freeze({
17
29
  kind: 'binary',
18
- id: requestId(object.id, 'binary response.id'),
30
+ requestId: requestId(object.requestId, 'binary response.requestId'),
31
+ invocation: invocation(object.invocation, 'binary response.invocation'),
19
32
  body: new Uint8Array(object.body),
20
33
  mediaType,
34
+ status: status,
21
35
  ...(headers === undefined ? {} : { headers }),
22
36
  });
23
37
  }
24
- //# sourceMappingURL=binary.js.map
@@ -6,4 +6,3 @@ export interface SupportedCodec {
6
6
  }
7
7
  export declare function codecProfile(codec: Codec): CodecProfile | undefined;
8
8
  export declare function admitSupportedCodecs(supported: readonly Codec[]): readonly SupportedCodec[];
9
- //# sourceMappingURL=binding-codecs.d.ts.map
@@ -25,4 +25,3 @@ export function admitSupportedCodecs(supported) {
25
25
  throw new TypeError('supported must contain the canonical JSON codec.');
26
26
  return Object.freeze(admitted);
27
27
  }
28
- //# sourceMappingURL=binding-codecs.js.map
@@ -3,7 +3,6 @@ import type { Version } from './version.js';
3
3
  export interface CancelRequest {
4
4
  readonly version: Version;
5
5
  readonly kind: 'cancel';
6
- readonly id: RequestId;
6
+ readonly requestId: RequestId;
7
7
  }
8
8
  export declare function decodeCancelRequest(input: unknown): CancelRequest;
9
- //# sourceMappingURL=cancellation.d.ts.map
@@ -1,9 +1,9 @@
1
1
  import { exactFields, invalid, portableObject, requestId, required } from './admission.js';
2
- const FIELDS = new Set(['version', 'kind', 'id']);
2
+ const FIELDS = new Set(['version', 'kind', 'requestId']);
3
3
  export function decodeCancelRequest(input) {
4
4
  const object = portableObject(input, 'cancel request');
5
5
  exactFields(object, FIELDS, 'cancel request');
6
- required(object, ['version', 'kind', 'id'], 'cancel request');
6
+ required(object, ['version', 'kind', 'requestId'], 'cancel request');
7
7
  if (object.version !== 2)
8
8
  invalid('cancel request.version must be 2');
9
9
  if (object.kind !== 'cancel')
@@ -11,7 +11,6 @@ export function decodeCancelRequest(input) {
11
11
  return Object.freeze({
12
12
  version: 2,
13
13
  kind: 'cancel',
14
- id: requestId(object.id, 'cancel request.id'),
14
+ requestId: requestId(object.requestId, 'cancel request.requestId'),
15
15
  });
16
16
  }
17
- //# sourceMappingURL=cancellation.js.map
@@ -1,3 +1,2 @@
1
1
  export type RequestId = string | number | null;
2
2
  export declare function acceptRequestId(input: unknown, label: string): RequestId;
3
- //# sourceMappingURL=correlation.d.ts.map
@@ -5,4 +5,3 @@ export function acceptRequestId(input, label) {
5
5
  return input;
6
6
  throw new TypeError(`${label} must be a string, finite number, or null`);
7
7
  }
8
- //# sourceMappingURL=correlation.js.map
@@ -22,4 +22,3 @@ export interface Delegate {
22
22
  readonly attenuation?: Delegate.Expr;
23
23
  }
24
24
  export declare function acceptDelegate(input: unknown): Delegate;
25
- //# sourceMappingURL=delegate.d.ts.map
@@ -41,4 +41,3 @@ function requireTextCredentials(input) {
41
41
  for (const operand of input.operands)
42
42
  requireTextCredentials(operand);
43
43
  }
44
- //# sourceMappingURL=delegate.js.map
@@ -1,6 +1,14 @@
1
+ import { type InvocationId } from '../identity.js';
1
2
  export declare const BINARY_HEADERS_FIELD: 'x-astrale-binary-headers';
3
+ export declare const BINARY_DELIVERY_FIELD: 'x-astrale-binary-delivery';
4
+ export declare const STREAMING_BINARY_DELIVERY: 'streaming';
2
5
  export declare const REQUEST_ID_FIELD: 'x-astrale-request-id';
6
+ export declare const INVOCATION_FIELD: 'x-astrale-invocation';
7
+ export declare const MAXIMUM_INVOCATION_FIELD_BYTES = 8192;
8
+ /** Encode one admitted InvocationId as percent-encoded source plus opaque ID. */
9
+ export declare function encodeInvocationId(input: InvocationId): string;
10
+ /** Decode one complete binary InvocationId field. */
11
+ export declare function decodeInvocationId(input: string | null): InvocationId;
3
12
  export declare function isApplicationBinaryHeader(name: string): boolean;
4
13
  export declare function encodeBinaryHeaderNames(headers: Readonly<Record<string, string>> | undefined): string;
5
14
  export declare function decodeBinaryHeaderNames(input: string | null): readonly string[];
6
- //# sourceMappingURL=binary.d.ts.map
@@ -1,6 +1,11 @@
1
1
  import { CODES, ProtocolError } from '../../errors/index.js';
2
+ import { acceptInvocationId } from '../identity.js';
2
3
  export const BINARY_HEADERS_FIELD = 'x-astrale-binary-headers';
4
+ export const BINARY_DELIVERY_FIELD = 'x-astrale-binary-delivery';
5
+ export const STREAMING_BINARY_DELIVERY = 'streaming';
3
6
  export const REQUEST_ID_FIELD = 'x-astrale-request-id';
7
+ export const INVOCATION_FIELD = 'x-astrale-invocation';
8
+ export const MAXIMUM_INVOCATION_FIELD_BYTES = 8_192;
4
9
  const HEADER_NAME = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/u;
5
10
  const MAXIMUM_MANIFEST_BYTES = 8_192;
6
11
  const MAXIMUM_MANIFEST_NAMES = 128;
@@ -30,9 +35,51 @@ const RESERVED = new Set([
30
35
  'www-authenticate',
31
36
  EMPTY_MANIFEST,
32
37
  BINARY_HEADERS_FIELD,
38
+ BINARY_DELIVERY_FIELD,
39
+ INVOCATION_FIELD,
33
40
  REQUEST_ID_FIELD,
34
41
  'x-astrale-stream-framing',
35
42
  ]);
43
+ /** Encode one admitted InvocationId as percent-encoded source plus opaque ID. */
44
+ export function encodeInvocationId(input) {
45
+ let source;
46
+ try {
47
+ source = encodeURIComponent(input.source);
48
+ }
49
+ catch {
50
+ return invalid('HTTP binary InvocationId field is invalid.');
51
+ }
52
+ const encoded = `${source};${input.id}`;
53
+ if (new TextEncoder().encode(encoded).byteLength > MAXIMUM_INVOCATION_FIELD_BYTES) {
54
+ invalid('HTTP binary InvocationId field is invalid.');
55
+ }
56
+ return encoded;
57
+ }
58
+ /** Decode one complete binary InvocationId field. */
59
+ export function decodeInvocationId(input) {
60
+ if (input === null ||
61
+ input.length === 0 ||
62
+ new TextEncoder().encode(input).byteLength > MAXIMUM_INVOCATION_FIELD_BYTES) {
63
+ return invalid('HTTP binary InvocationId field is invalid.');
64
+ }
65
+ const separator = input.indexOf(';');
66
+ if (separator < 1 || input.indexOf(';', separator + 1) !== -1) {
67
+ invalid('HTTP binary InvocationId field is invalid.');
68
+ }
69
+ let source;
70
+ try {
71
+ source = decodeURIComponent(input.slice(0, separator));
72
+ }
73
+ catch {
74
+ return invalid('HTTP binary InvocationId field is invalid.');
75
+ }
76
+ try {
77
+ return acceptInvocationId({ source, id: input.slice(separator + 1) });
78
+ }
79
+ catch {
80
+ return invalid('HTTP binary InvocationId field is invalid.');
81
+ }
82
+ }
36
83
  export function isApplicationBinaryHeader(name) {
37
84
  const normalized = name.toLowerCase();
38
85
  return (HEADER_NAME.test(normalized) &&
@@ -80,10 +127,9 @@ export function decodeBinaryHeaderNames(input) {
80
127
  }
81
128
  return Object.freeze(admitted);
82
129
  }
83
- function invalid() {
130
+ function invalid(message = 'HTTP binary application-header manifest is invalid.') {
84
131
  throw new ProtocolError({
85
132
  code: CODES.INVALID_REQUEST,
86
- message: 'HTTP binary application-header manifest is invalid.',
133
+ message,
87
134
  });
88
135
  }
89
- //# sourceMappingURL=binary.js.map
@@ -1,5 +1,4 @@
1
- export { BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, encodeBinaryHeaderNames, isApplicationBinaryHeader, REQUEST_ID_FIELD, } from './binary.js';
1
+ export { BINARY_DELIVERY_FIELD, BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, decodeInvocationId, encodeBinaryHeaderNames, encodeInvocationId, isApplicationBinaryHeader, MAXIMUM_INVOCATION_FIELD_BYTES, INVOCATION_FIELD, REQUEST_ID_FIELD, STREAMING_BINARY_DELIVERY, } from './binary.js';
2
2
  export { codecForContentType, negotiateResponseCodec } from './negotiation.js';
3
3
  export { encodeStreamFrame, LENGTH_PREFIX_V1, STREAM_FRAMING_FIELD } from './stream.js';
4
4
  export { BAGGAGE_FIELD, decodeTraceHeaders, encodeTraceHeaders, TRACEPARENT_FIELD, TRACESTATE_FIELD, } from './trace.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,4 @@
1
- export { BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, encodeBinaryHeaderNames, isApplicationBinaryHeader, REQUEST_ID_FIELD, } from './binary.js';
1
+ export { BINARY_DELIVERY_FIELD, BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, decodeInvocationId, encodeBinaryHeaderNames, encodeInvocationId, isApplicationBinaryHeader, MAXIMUM_INVOCATION_FIELD_BYTES, INVOCATION_FIELD, REQUEST_ID_FIELD, STREAMING_BINARY_DELIVERY, } from './binary.js';
2
2
  export { codecForContentType, negotiateResponseCodec } from './negotiation.js';
3
3
  export { encodeStreamFrame, LENGTH_PREFIX_V1, STREAM_FRAMING_FIELD } from './stream.js';
4
4
  export { BAGGAGE_FIELD, decodeTraceHeaders, encodeTraceHeaders, TRACEPARENT_FIELD, TRACESTATE_FIELD, } from './trace.js';
5
- //# sourceMappingURL=index.js.map
@@ -1,4 +1,3 @@
1
1
  import type { Codec } from '../../codecs/index.js';
2
2
  export declare function codecForContentType(contentType: string | null, supported: readonly Codec[]): Codec | undefined;
3
3
  export declare function negotiateResponseCodec(accept: string | null, requestCodec: Codec, supported: readonly Codec[]): Codec | undefined;
4
- //# sourceMappingURL=negotiation.d.ts.map
@@ -205,4 +205,3 @@ function splitOutsideQuotes(input, separator) {
205
205
  parts.push(input.slice(start));
206
206
  return parts;
207
207
  }
208
- //# sourceMappingURL=negotiation.js.map
@@ -3,4 +3,3 @@ import type { StreamFrame } from '../stream.js';
3
3
  export declare const STREAM_FRAMING_FIELD: 'x-astrale-stream-framing';
4
4
  export declare const LENGTH_PREFIX_V1: 'length-prefix-v1';
5
5
  export declare function encodeStreamFrame(codec: Codec, frame: StreamFrame): Uint8Array;
6
- //# sourceMappingURL=stream.d.ts.map
@@ -13,4 +13,3 @@ export function encodeStreamFrame(codec, frame) {
13
13
  output.set(payload, 4);
14
14
  return output;
15
15
  }
16
- //# sourceMappingURL=stream.js.map
@@ -4,4 +4,3 @@ export declare const TRACESTATE_FIELD = "tracestate";
4
4
  export declare const BAGGAGE_FIELD = "baggage";
5
5
  export declare function decodeTraceHeaders(traceparent: string | null, tracestate: string | null): Trace | undefined;
6
6
  export declare function encodeTraceHeaders(carrier: Trace | undefined): Readonly<Record<string, string>>;
7
- //# sourceMappingURL=trace.d.ts.map
@@ -22,4 +22,3 @@ export function encodeTraceHeaders(carrier) {
22
22
  ...(admitted.tracestate === undefined ? {} : { [TRACESTATE_FIELD]: admitted.tracestate }),
23
23
  });
24
24
  }
25
- //# sourceMappingURL=trace.js.map
@@ -8,4 +8,3 @@ export declare const MAXIMUM_IDEMPOTENCY_KEY_LENGTH = 128;
8
8
  /** Admit an opaque URL-safe ASCII key without assigning it semantic structure. */
9
9
  export declare function acceptIdempotencyKey(input: unknown, label?: string): IdempotencyKey;
10
10
  export {};
11
- //# sourceMappingURL=idempotency.d.ts.map
@@ -11,4 +11,3 @@ export function acceptIdempotencyKey(input, label = 'idempotency key') {
11
11
  }
12
12
  return input;
13
13
  }
14
- //# sourceMappingURL=idempotency.js.map
@@ -0,0 +1,16 @@
1
+ import type { IssuerId } from '@astrale-os/kernel-core/auth';
2
+ export declare const MAXIMUM_INVOCATION_ID_LENGTH = 255;
3
+ /** Portable identity of one source-owned Invocation attempt; it grants no authority. */
4
+ export interface InvocationId {
5
+ readonly source: IssuerId;
6
+ readonly id: string;
7
+ }
8
+ export declare class InvocationError extends TypeError {
9
+ readonly input: unknown;
10
+ readonly code: 'INVOCATION_INVALID';
11
+ constructor(input: unknown, message?: string, options?: ErrorOptions);
12
+ }
13
+ /** Admit, canonicalize, detach, and freeze one exact source-qualified Invocation identity. */
14
+ export declare function acceptInvocationId(input: unknown): InvocationId;
15
+ /** Compare both canonical coordinate fields exactly. */
16
+ export declare function sameInvocationId(left: InvocationId, right: InvocationId): boolean;
@@ -0,0 +1,55 @@
1
+ import { issuer } from '@astrale-os/kernel-core/auth';
2
+ export const MAXIMUM_INVOCATION_ID_LENGTH = 255;
3
+ const INVALID_ID_CHARACTER = /[^A-Za-z0-9._-]/u;
4
+ const ID_ERROR_MESSAGE = 'InvocationId must contain 1-255 ASCII characters drawn from [A-Za-z0-9._-].';
5
+ export class InvocationError extends TypeError {
6
+ input;
7
+ code = 'INVOCATION_INVALID';
8
+ constructor(input, message = 'Invocation is invalid.', options) {
9
+ super(message, options);
10
+ this.input = input;
11
+ this.name = 'InvocationError';
12
+ }
13
+ }
14
+ /** Admit, canonicalize, detach, and freeze one exact source-qualified Invocation identity. */
15
+ export function acceptInvocationId(input) {
16
+ if (input === null || typeof input !== 'object' || Array.isArray(input))
17
+ invalid(input);
18
+ const candidate = input;
19
+ const source = Object.getOwnPropertyDescriptor(candidate, 'source');
20
+ const id = Object.getOwnPropertyDescriptor(candidate, 'id');
21
+ if (Reflect.ownKeys(candidate).some((key) => key !== 'source' && key !== 'id') ||
22
+ source === undefined ||
23
+ id === undefined ||
24
+ !source.enumerable ||
25
+ !id.enumerable ||
26
+ !('value' in source) ||
27
+ !('value' in id) ||
28
+ typeof source.value !== 'string' ||
29
+ typeof id.value !== 'string') {
30
+ invalid(input);
31
+ }
32
+ let admittedSource;
33
+ try {
34
+ admittedSource = issuer.accept(source.value);
35
+ }
36
+ catch (cause) {
37
+ throw new InvocationError(input, 'Invocation source is invalid.', { cause });
38
+ }
39
+ if (!isLocalInvocationId(id.value))
40
+ throw new InvocationError(input, ID_ERROR_MESSAGE);
41
+ return Object.freeze({ source: admittedSource, id: id.value });
42
+ }
43
+ /** Compare both canonical coordinate fields exactly. */
44
+ export function sameInvocationId(left, right) {
45
+ return left.source === right.source && left.id === right.id;
46
+ }
47
+ function isLocalInvocationId(input) {
48
+ return (typeof input === 'string' &&
49
+ input.length > 0 &&
50
+ input.length <= MAXIMUM_INVOCATION_ID_LENGTH &&
51
+ !INVALID_ID_CHARACTER.test(input));
52
+ }
53
+ function invalid(input) {
54
+ throw new InvocationError(input);
55
+ }
@@ -2,19 +2,19 @@ export { decodeBinaryResponse, type BinaryResponse } from './binary.js';
2
2
  export { decodeCancelRequest, type CancelRequest } from './cancellation.js';
3
3
  export { type RequestId } from './correlation.js';
4
4
  export { acceptIdempotencyKey, HTTP_IDEMPOTENCY_KEY, MAXIMUM_IDEMPOTENCY_KEY_LENGTH, type IdempotencyKey, } from './idempotency.js';
5
+ export { acceptInvocationId, InvocationError, MAXIMUM_INVOCATION_ID_LENGTH, sameInvocationId, type InvocationId, } from './identity.js';
5
6
  export * as http from './http/index.js';
6
7
  export { acceptDelegate, type Delegate } from './delegate.js';
7
8
  export { decodeMiss, miss, type Miss } from './miss.js';
8
- export { acceptRoute, decodeRedirect, remoteRoute, type RemoteBindingInput, type Redirect, type Route, } from './redirect.js';
9
+ export { acceptRoute, acceptRedirection, decodeRedirectResponse, remoteRoute, type RemoteBindingInput, type Redirection, type RedirectResponse, type Route, } from './redirect.js';
9
10
  export { decodeRequest, type Request } from './request.js';
10
11
  export { admitTrace, MAXIMUM_TRACEPARENT_BYTES, MAXIMUM_TRACESTATE_BYTES, MAXIMUM_TRACESTATE_MEMBERS, type Trace, } from './trace.js';
11
12
  export { acceptRouting, type Refresh, type Routing, type Via } from './routing.js';
12
13
  export { acceptSchemaTarget, type SchemaTarget } from './schema.js';
13
- export { decodeResponse, type ErrorResponse, type Response, type SuccessResponse, } from './response.js';
14
- export { SCHEMA_UPGRADE_REQUIRED, SERVICE_CANDIDATE_INVALID, SERVICE_TRUST_REQUIRED, SERVICE_UNAVAILABLE, serviceErrorOf, type SchemaUpgradeRequiredDetails, type SchemaUpgradeRequiredReason, type ServiceCandidateInvalidDetails, type ServiceCandidateInvalidReason, type ServiceErrorPayload, type ServiceReason, type ServiceTrustRequiredDetails, type ServiceTrustRequiredReason, type ServiceUnavailableDetails, type ServiceUnavailableReason, } from './service-reason.js';
14
+ export { decodeResponse, type ErrorResponse, type Response, type ResponseContext, type SuccessResponse, } from './response.js';
15
+ export { SCHEMA_REVISION_MISMATCH, SERVICE_CANDIDATE_INVALID, SERVICE_TRUST_REQUIRED, SERVICE_UNAVAILABLE, serviceErrorOf, type SchemaRevisionMismatchDetails, type SchemaRevisionMismatchReason, type ServiceCandidateInvalidDetails, type ServiceCandidateInvalidReason, type ServiceErrorPayload, type ServiceReason, type ServiceTrustRequiredDetails, type ServiceTrustRequiredReason, type ServiceUnavailableDetails, type ServiceUnavailableReason, } from './service-reason.js';
15
16
  export { decodeStale, stale, type Stale } from './stale-route.js';
16
17
  export { decodeStreamFrame, type StreamEndFrame, type StreamErrorFrame, type StreamFrame, type StreamItemFrame, type StreamStartFrame, } from './stream.js';
17
18
  export { acceptCall, type Call } from './target.js';
18
19
  export { VERSION, type Version } from './version.js';
19
20
  export * as websocket from './websocket/index.js';
20
- //# sourceMappingURL=index.d.ts.map
@@ -2,19 +2,19 @@ export { decodeBinaryResponse } from './binary.js';
2
2
  export { decodeCancelRequest } from './cancellation.js';
3
3
  export {} from './correlation.js';
4
4
  export { acceptIdempotencyKey, HTTP_IDEMPOTENCY_KEY, MAXIMUM_IDEMPOTENCY_KEY_LENGTH, } from './idempotency.js';
5
+ export { acceptInvocationId, InvocationError, MAXIMUM_INVOCATION_ID_LENGTH, sameInvocationId, } from './identity.js';
5
6
  export * as http from './http/index.js';
6
7
  export { acceptDelegate } from './delegate.js';
7
8
  export { decodeMiss, miss } from './miss.js';
8
- export { acceptRoute, decodeRedirect, remoteRoute, } from './redirect.js';
9
+ export { acceptRoute, acceptRedirection, decodeRedirectResponse, remoteRoute, } from './redirect.js';
9
10
  export { decodeRequest } from './request.js';
10
11
  export { admitTrace, MAXIMUM_TRACEPARENT_BYTES, MAXIMUM_TRACESTATE_BYTES, MAXIMUM_TRACESTATE_MEMBERS, } from './trace.js';
11
12
  export { acceptRouting } from './routing.js';
12
13
  export { acceptSchemaTarget } from './schema.js';
13
14
  export { decodeResponse, } from './response.js';
14
- export { SCHEMA_UPGRADE_REQUIRED, SERVICE_CANDIDATE_INVALID, SERVICE_TRUST_REQUIRED, SERVICE_UNAVAILABLE, serviceErrorOf, } from './service-reason.js';
15
+ export { SCHEMA_REVISION_MISMATCH, SERVICE_CANDIDATE_INVALID, SERVICE_TRUST_REQUIRED, SERVICE_UNAVAILABLE, serviceErrorOf, } from './service-reason.js';
15
16
  export { decodeStale, stale } from './stale-route.js';
16
17
  export { decodeStreamFrame, } from './stream.js';
17
18
  export { acceptCall } from './target.js';
18
19
  export { VERSION } from './version.js';
19
20
  export * as websocket from './websocket/index.js';
20
- //# sourceMappingURL=index.js.map
@@ -1,8 +1,9 @@
1
1
  import type { RequestId } from './correlation.js';
2
+ import type { InvocationId } from './identity.js';
2
3
  export interface Miss {
3
4
  readonly kind: 'miss';
4
- readonly id: RequestId;
5
+ readonly requestId: RequestId;
6
+ readonly invocation: InvocationId;
5
7
  }
6
8
  export declare function decodeMiss(input: unknown): Miss;
7
- export declare function miss(id: RequestId): Miss;
8
- //# sourceMappingURL=miss.d.ts.map
9
+ export declare function miss(requestId: RequestId, assigned: InvocationId): Miss;
@@ -1,14 +1,17 @@
1
- import { exactFields, invalid, portableObject, requestId, required } from './admission.js';
2
- const FIELDS = new Set(['kind', 'id']);
1
+ import { exactFields, invalid, invocation, portableObject, requestId, required, } from './admission.js';
2
+ const FIELDS = new Set(['kind', 'requestId', 'invocation']);
3
3
  export function decodeMiss(input) {
4
4
  const object = portableObject(input, 'miss control');
5
5
  exactFields(object, FIELDS, 'miss control');
6
- required(object, ['kind', 'id'], 'miss control');
6
+ required(object, ['kind', 'requestId', 'invocation'], 'miss control');
7
7
  if (object.kind !== 'miss')
8
8
  invalid('miss control.kind must be "miss"');
9
- return Object.freeze({ kind: 'miss', id: requestId(object.id, 'miss control.id') });
9
+ return Object.freeze({
10
+ kind: 'miss',
11
+ requestId: requestId(object.requestId, 'miss control.requestId'),
12
+ invocation: invocation(object.invocation, 'miss control.invocation'),
13
+ });
10
14
  }
11
- export function miss(id) {
12
- return Object.freeze({ kind: 'miss', id });
15
+ export function miss(requestId, assigned) {
16
+ return decodeMiss({ kind: 'miss', requestId, invocation: assigned });
13
17
  }
14
- //# sourceMappingURL=miss.js.map
@@ -1,33 +1,40 @@
1
- import type { IssuerId } from '@astrale-os/kernel-core/auth';
1
+ import type { IssuerId } from '@astrale-os/kernel-core/auth/issuer';
2
2
  import type { Key } from '@astrale-os/kernel-dsl/v1';
3
+ import type { InvocationEndpoints } from '../publication/bindings/invocation.js';
4
+ import type { Etag } from '../publication/etag.js';
5
+ import type { PublicationRef } from '../publication/reference.js';
3
6
  import type { RequestId } from './correlation.js';
7
+ import type { InvocationId } from './identity.js';
4
8
  import type { Trace } from './trace.js';
5
- import * as publication from '../publication/index.js';
6
9
  export interface Route {
7
- readonly endpoint: publication.InvocationEndpoints;
10
+ readonly endpoint: InvocationEndpoints;
8
11
  readonly via: {
9
12
  readonly kind: 'via';
10
- readonly publication: publication.PublicationRef;
13
+ readonly publication: PublicationRef;
11
14
  readonly issuer: IssuerId;
12
15
  };
13
16
  }
14
- export interface Redirect {
15
- readonly kind: 'redirect';
16
- readonly id: RequestId;
17
+ export interface Redirection {
17
18
  readonly route: Route;
18
19
  readonly credential?: string;
19
20
  /** Ephemeral one-hop correlation hint; never cached or treated as authority. */
20
21
  readonly trace?: Trace;
21
22
  }
23
+ export interface RedirectResponse {
24
+ readonly kind: 'redirect';
25
+ readonly requestId: RequestId;
26
+ readonly invocation: InvocationId;
27
+ readonly redirect: Redirection;
28
+ }
22
29
  export interface RemoteBindingInput {
23
- readonly endpoint: publication.InvocationEndpoints;
30
+ readonly endpoint: InvocationEndpoints;
24
31
  readonly issuer: IssuerId;
25
32
  readonly subject: string;
26
- readonly revision: publication.PublicationRef['revision'];
27
- readonly etag: publication.Etag;
33
+ readonly revision: PublicationRef['revision'];
34
+ readonly etag: Etag;
28
35
  }
29
36
  export declare function acceptRoute(input: unknown): Route;
30
37
  /** Project one semantic remote binding into its admitted protocol route representation. */
31
38
  export declare function remoteRoute(origin: Key.Origin, binding: RemoteBindingInput, issuer: IssuerId): Route;
32
- export declare function decodeRedirect(input: unknown): Redirect;
33
- //# sourceMappingURL=redirect.d.ts.map
39
+ export declare function acceptRedirection(input: unknown): Redirection;
40
+ export declare function decodeRedirectResponse(input: unknown): RedirectResponse;