@astrale-os/kernel-protocol 0.5.0-beta.4 → 0.5.0-beta.40

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 (449) hide show
  1. package/dist/artifact/index.d.ts +0 -1
  2. package/dist/artifact/index.js +0 -1
  3. package/dist/artifact/ref.d.ts +0 -1
  4. package/dist/artifact/ref.js +0 -1
  5. package/dist/codecs/codec.d.ts +0 -1
  6. package/dist/codecs/codec.js +0 -1
  7. package/dist/codecs/index.d.ts +0 -1
  8. package/dist/codecs/index.js +0 -1
  9. package/dist/codecs/json.d.ts +0 -1
  10. package/dist/codecs/json.js +0 -1
  11. package/dist/codecs/media-types.d.ts +0 -1
  12. package/dist/codecs/media-types.js +0 -1
  13. package/dist/codecs/msgpack.d.ts +0 -1
  14. package/dist/codecs/msgpack.js +1 -5
  15. package/dist/errors/codes.d.ts +0 -1
  16. package/dist/errors/codes.js +0 -1
  17. package/dist/errors/http-status.d.ts +0 -1
  18. package/dist/errors/http-status.js +0 -1
  19. package/dist/errors/index.d.ts +0 -1
  20. package/dist/errors/index.js +0 -1
  21. package/dist/errors/payload.d.ts +0 -1
  22. package/dist/errors/payload.js +3 -3
  23. package/dist/errors/protocol-error.d.ts +0 -1
  24. package/dist/errors/protocol-error.js +4 -3
  25. package/dist/errors/reason.d.ts +0 -1
  26. package/dist/errors/reason.js +0 -1
  27. package/dist/index.d.ts +0 -1
  28. package/dist/index.js +0 -1
  29. package/dist/invocation/admission.d.ts +0 -1
  30. package/dist/invocation/admission.js +2 -6
  31. package/dist/invocation/binary.d.ts +1 -1
  32. package/dist/invocation/binary.js +14 -2
  33. package/dist/invocation/binding-codecs.d.ts +0 -1
  34. package/dist/invocation/binding-codecs.js +0 -1
  35. package/dist/invocation/cancellation.d.ts +0 -1
  36. package/dist/invocation/cancellation.js +0 -1
  37. package/dist/invocation/correlation.d.ts +0 -1
  38. package/dist/invocation/correlation.js +0 -1
  39. package/dist/invocation/delegate.d.ts +0 -1
  40. package/dist/invocation/delegate.js +0 -1
  41. package/dist/invocation/http/binary.d.ts +3 -2
  42. package/dist/invocation/http/binary.js +4 -2
  43. package/dist/invocation/http/index.d.ts +1 -2
  44. package/dist/invocation/http/index.js +1 -2
  45. package/dist/invocation/http/negotiation.d.ts +0 -1
  46. package/dist/invocation/http/negotiation.js +0 -1
  47. package/dist/invocation/http/stream.d.ts +0 -1
  48. package/dist/invocation/http/stream.js +0 -1
  49. package/dist/invocation/http/trace.d.ts +0 -1
  50. package/dist/invocation/http/trace.js +0 -1
  51. package/dist/invocation/idempotency.d.ts +0 -1
  52. package/dist/invocation/idempotency.js +0 -1
  53. package/dist/invocation/identity.d.ts +0 -1
  54. package/dist/invocation/identity.js +0 -1
  55. package/dist/invocation/index.d.ts +1 -2
  56. package/dist/invocation/index.js +1 -2
  57. package/dist/invocation/miss.d.ts +0 -1
  58. package/dist/invocation/miss.js +0 -1
  59. package/dist/invocation/redirect.d.ts +0 -1
  60. package/dist/invocation/redirect.js +0 -1
  61. package/dist/invocation/request.d.ts +0 -1
  62. package/dist/invocation/request.js +0 -1
  63. package/dist/invocation/response.d.ts +0 -1
  64. package/dist/invocation/response.js +0 -1
  65. package/dist/invocation/routing.d.ts +0 -1
  66. package/dist/invocation/routing.js +0 -1
  67. package/dist/invocation/schema.d.ts +1 -2
  68. package/dist/invocation/schema.js +0 -1
  69. package/dist/invocation/service-reason.d.ts +3 -11
  70. package/dist/invocation/service-reason.js +0 -12
  71. package/dist/invocation/stale-route.d.ts +0 -1
  72. package/dist/invocation/stale-route.js +0 -1
  73. package/dist/invocation/stream.d.ts +0 -1
  74. package/dist/invocation/stream.js +0 -1
  75. package/dist/invocation/target.d.ts +2 -3
  76. package/dist/invocation/target.js +0 -1
  77. package/dist/invocation/trace.d.ts +0 -1
  78. package/dist/invocation/trace.js +0 -1
  79. package/dist/invocation/version.d.ts +0 -1
  80. package/dist/invocation/version.js +0 -1
  81. package/dist/invocation/websocket/binary.d.ts +0 -1
  82. package/dist/invocation/websocket/binary.js +2 -2
  83. package/dist/invocation/websocket/index.d.ts +0 -1
  84. package/dist/invocation/websocket/index.js +0 -1
  85. package/dist/invocation/websocket/subprotocol.d.ts +0 -1
  86. package/dist/invocation/websocket/subprotocol.js +0 -1
  87. package/dist/issuer/configuration.d.ts +0 -1
  88. package/dist/issuer/configuration.js +0 -1
  89. package/dist/issuer/error.d.ts +0 -1
  90. package/dist/issuer/error.js +0 -1
  91. package/dist/issuer/exchange.d.ts +0 -1
  92. package/dist/issuer/exchange.js +0 -1
  93. package/dist/issuer/hosted.d.ts +0 -1
  94. package/dist/issuer/hosted.js +0 -1
  95. package/dist/issuer/index.d.ts +0 -1
  96. package/dist/issuer/index.js +0 -1
  97. package/dist/issuer/key-set.d.ts +0 -1
  98. package/dist/issuer/key-set.js +0 -1
  99. package/dist/issuer/paths.d.ts +0 -1
  100. package/dist/issuer/paths.js +0 -1
  101. package/dist/issuer/url.d.ts +0 -1
  102. package/dist/issuer/url.js +0 -1
  103. package/dist/publication/bindings/callable.d.ts +0 -1
  104. package/dist/publication/bindings/callable.js +8 -6
  105. package/dist/publication/bindings/index.d.ts +1 -2
  106. package/dist/publication/bindings/index.js +0 -1
  107. package/dist/publication/bindings/invocation.d.ts +0 -1
  108. package/dist/publication/bindings/invocation.js +0 -1
  109. package/dist/publication/bindings/view.d.ts +7 -1
  110. package/dist/publication/bindings/view.js +111 -3
  111. package/dist/publication/bundle-admission.d.ts +0 -1
  112. package/dist/publication/bundle-admission.js +12 -13
  113. package/dist/publication/bundle-descriptor.d.ts +0 -1
  114. package/dist/publication/bundle-descriptor.js +0 -1
  115. package/dist/publication/bundle-evidence.d.ts +0 -1
  116. package/dist/publication/bundle-evidence.js +0 -1
  117. package/dist/publication/bundle.d.ts +1 -2
  118. package/dist/publication/bundle.js +3 -4
  119. package/dist/publication/content.d.ts +0 -1
  120. package/dist/publication/content.js +0 -1
  121. package/dist/publication/declaration.d.ts +0 -1
  122. package/dist/publication/declaration.js +0 -1
  123. package/dist/publication/delivery/attestation.d.ts +0 -1
  124. package/dist/publication/delivery/attestation.js +0 -1
  125. package/dist/publication/delivery/claims.d.ts +1 -2
  126. package/dist/publication/delivery/claims.js +0 -1
  127. package/dist/publication/delivery/delivery.d.ts +0 -1
  128. package/dist/publication/delivery/delivery.js +0 -1
  129. package/dist/publication/delivery/error.d.ts +0 -1
  130. package/dist/publication/delivery/error.js +0 -1
  131. package/dist/publication/delivery/index.d.ts +0 -1
  132. package/dist/publication/delivery/index.js +0 -1
  133. package/dist/publication/delivery/limits.d.ts +0 -1
  134. package/dist/publication/delivery/limits.js +0 -1
  135. package/dist/publication/delivery/request.d.ts +0 -1
  136. package/dist/publication/delivery/request.js +0 -1
  137. package/dist/publication/delivery-declaration.d.ts +0 -1
  138. package/dist/publication/delivery-declaration.js +0 -1
  139. package/dist/publication/delivery-endpoint.d.ts +0 -1
  140. package/dist/publication/delivery-endpoint.js +0 -1
  141. package/dist/publication/error.d.ts +0 -1
  142. package/dist/publication/error.js +0 -1
  143. package/dist/publication/etag.d.ts +0 -1
  144. package/dist/publication/etag.js +0 -1
  145. package/dist/publication/index.d.ts +2 -3
  146. package/dist/publication/index.js +0 -1
  147. package/dist/publication/manifest.d.ts +2 -3
  148. package/dist/publication/manifest.js +10 -6
  149. package/dist/publication/publication.d.ts +0 -1
  150. package/dist/publication/publication.js +9 -5
  151. package/dist/publication/reference.d.ts +1 -2
  152. package/dist/publication/reference.js +0 -1
  153. package/dist/publication/requirements.d.ts +14 -7
  154. package/dist/publication/requirements.js +141 -44
  155. package/dist/publication/route.d.ts +0 -1
  156. package/dist/publication/route.js +0 -1
  157. package/dist/publication/schema.d.ts +1 -2
  158. package/dist/publication/schema.js +0 -1
  159. package/dist/routes/admission.d.ts +0 -1
  160. package/dist/routes/admission.js +5 -6
  161. package/dist/routes/binding.d.ts +3 -4
  162. package/dist/routes/binding.js +5 -6
  163. package/dist/routes/collision.d.ts +0 -1
  164. package/dist/routes/collision.js +0 -1
  165. package/dist/routes/compiler.d.ts +2 -3
  166. package/dist/routes/compiler.js +12 -10
  167. package/dist/routes/credential.d.ts +0 -1
  168. package/dist/routes/credential.js +0 -1
  169. package/dist/routes/decode.d.ts +2 -3
  170. package/dist/routes/decode.js +15 -20
  171. package/dist/routes/encode.d.ts +2 -3
  172. package/dist/routes/encode.js +10 -15
  173. package/dist/routes/error-response.d.ts +0 -1
  174. package/dist/routes/error-response.js +0 -1
  175. package/dist/routes/error.d.ts +0 -1
  176. package/dist/routes/error.js +0 -1
  177. package/dist/routes/evidence.d.ts +3 -4
  178. package/dist/routes/evidence.js +14 -14
  179. package/dist/routes/index.d.ts +0 -1
  180. package/dist/routes/index.js +0 -1
  181. package/dist/routes/mapping.d.ts +0 -1
  182. package/dist/routes/mapping.js +0 -1
  183. package/dist/routes/match.d.ts +0 -1
  184. package/dist/routes/match.js +0 -1
  185. package/dist/routes/placement.d.ts +0 -1
  186. package/dist/routes/placement.js +1 -2
  187. package/dist/routes/plan.d.ts +5 -5
  188. package/dist/routes/plan.js +0 -1
  189. package/dist/routes/release-unavailable.d.ts +0 -1
  190. package/dist/routes/release-unavailable.js +0 -1
  191. package/dist/routes/request.d.ts +0 -1
  192. package/dist/routes/request.js +3 -2
  193. package/dist/routes/reservation.d.ts +0 -1
  194. package/dist/routes/reservation.js +5 -2
  195. package/dist/routes/routing.d.ts +0 -1
  196. package/dist/routes/routing.js +0 -1
  197. package/dist/routes/scalar.d.ts +3 -4
  198. package/dist/routes/scalar.js +5 -6
  199. package/dist/routes/select.d.ts +0 -1
  200. package/dist/routes/select.js +0 -1
  201. package/dist/routes/stream.d.ts +0 -1
  202. package/dist/routes/stream.js +0 -1
  203. package/dist/routes/table.d.ts +0 -1
  204. package/dist/routes/table.js +0 -1
  205. package/dist/routes/target.d.ts +0 -1
  206. package/dist/routes/target.js +0 -1
  207. package/dist/routes/template.d.ts +0 -1
  208. package/dist/routes/template.js +0 -1
  209. package/dist/runtime/artifact.d.ts +2 -3
  210. package/dist/runtime/artifact.js +3 -4
  211. package/dist/runtime/index.d.ts +0 -1
  212. package/dist/runtime/index.js +0 -1
  213. package/dist/schema/index.d.ts +0 -1
  214. package/dist/schema/index.js +0 -1
  215. package/dist/schema/installation/codec.d.ts +4 -0
  216. package/dist/schema/installation/codec.js +70 -0
  217. package/dist/schema/installation/index.d.ts +2 -1
  218. package/dist/schema/installation/index.js +1 -1
  219. package/dist/schema/installation/introspection/codec.d.ts +3 -3
  220. package/dist/schema/installation/introspection/codec.js +144 -204
  221. package/dist/schema/installation/introspection/index.d.ts +2 -3
  222. package/dist/schema/installation/introspection/index.js +1 -2
  223. package/dist/schema/installation/introspection/result.d.ts +18 -23
  224. package/dist/schema/installation/introspection/result.js +0 -1
  225. package/dist/schema/installation/result.d.ts +9 -0
  226. package/dist/schema/installation/result.js +1 -0
  227. package/package.json +23 -13
  228. package/dist/artifact/index.d.ts.map +0 -1
  229. package/dist/artifact/index.js.map +0 -1
  230. package/dist/artifact/ref.d.ts.map +0 -1
  231. package/dist/artifact/ref.js.map +0 -1
  232. package/dist/codecs/codec.d.ts.map +0 -1
  233. package/dist/codecs/codec.js.map +0 -1
  234. package/dist/codecs/index.d.ts.map +0 -1
  235. package/dist/codecs/index.js.map +0 -1
  236. package/dist/codecs/json.d.ts.map +0 -1
  237. package/dist/codecs/json.js.map +0 -1
  238. package/dist/codecs/media-types.d.ts.map +0 -1
  239. package/dist/codecs/media-types.js.map +0 -1
  240. package/dist/codecs/msgpack.d.ts.map +0 -1
  241. package/dist/codecs/msgpack.js.map +0 -1
  242. package/dist/errors/codes.d.ts.map +0 -1
  243. package/dist/errors/codes.js.map +0 -1
  244. package/dist/errors/http-status.d.ts.map +0 -1
  245. package/dist/errors/http-status.js.map +0 -1
  246. package/dist/errors/index.d.ts.map +0 -1
  247. package/dist/errors/index.js.map +0 -1
  248. package/dist/errors/payload.d.ts.map +0 -1
  249. package/dist/errors/payload.js.map +0 -1
  250. package/dist/errors/protocol-error.d.ts.map +0 -1
  251. package/dist/errors/protocol-error.js.map +0 -1
  252. package/dist/errors/reason.d.ts.map +0 -1
  253. package/dist/errors/reason.js.map +0 -1
  254. package/dist/index.d.ts.map +0 -1
  255. package/dist/index.js.map +0 -1
  256. package/dist/invocation/admission.d.ts.map +0 -1
  257. package/dist/invocation/admission.js.map +0 -1
  258. package/dist/invocation/binary.d.ts.map +0 -1
  259. package/dist/invocation/binary.js.map +0 -1
  260. package/dist/invocation/binding-codecs.d.ts.map +0 -1
  261. package/dist/invocation/binding-codecs.js.map +0 -1
  262. package/dist/invocation/cancellation.d.ts.map +0 -1
  263. package/dist/invocation/cancellation.js.map +0 -1
  264. package/dist/invocation/correlation.d.ts.map +0 -1
  265. package/dist/invocation/correlation.js.map +0 -1
  266. package/dist/invocation/delegate.d.ts.map +0 -1
  267. package/dist/invocation/delegate.js.map +0 -1
  268. package/dist/invocation/http/binary.d.ts.map +0 -1
  269. package/dist/invocation/http/binary.js.map +0 -1
  270. package/dist/invocation/http/index.d.ts.map +0 -1
  271. package/dist/invocation/http/index.js.map +0 -1
  272. package/dist/invocation/http/negotiation.d.ts.map +0 -1
  273. package/dist/invocation/http/negotiation.js.map +0 -1
  274. package/dist/invocation/http/stream.d.ts.map +0 -1
  275. package/dist/invocation/http/stream.js.map +0 -1
  276. package/dist/invocation/http/trace.d.ts.map +0 -1
  277. package/dist/invocation/http/trace.js.map +0 -1
  278. package/dist/invocation/idempotency.d.ts.map +0 -1
  279. package/dist/invocation/idempotency.js.map +0 -1
  280. package/dist/invocation/identity.d.ts.map +0 -1
  281. package/dist/invocation/identity.js.map +0 -1
  282. package/dist/invocation/index.d.ts.map +0 -1
  283. package/dist/invocation/index.js.map +0 -1
  284. package/dist/invocation/miss.d.ts.map +0 -1
  285. package/dist/invocation/miss.js.map +0 -1
  286. package/dist/invocation/redirect.d.ts.map +0 -1
  287. package/dist/invocation/redirect.js.map +0 -1
  288. package/dist/invocation/request.d.ts.map +0 -1
  289. package/dist/invocation/request.js.map +0 -1
  290. package/dist/invocation/response.d.ts.map +0 -1
  291. package/dist/invocation/response.js.map +0 -1
  292. package/dist/invocation/routing.d.ts.map +0 -1
  293. package/dist/invocation/routing.js.map +0 -1
  294. package/dist/invocation/schema.d.ts.map +0 -1
  295. package/dist/invocation/schema.js.map +0 -1
  296. package/dist/invocation/service-reason.d.ts.map +0 -1
  297. package/dist/invocation/service-reason.js.map +0 -1
  298. package/dist/invocation/stale-route.d.ts.map +0 -1
  299. package/dist/invocation/stale-route.js.map +0 -1
  300. package/dist/invocation/stream.d.ts.map +0 -1
  301. package/dist/invocation/stream.js.map +0 -1
  302. package/dist/invocation/target.d.ts.map +0 -1
  303. package/dist/invocation/target.js.map +0 -1
  304. package/dist/invocation/trace.d.ts.map +0 -1
  305. package/dist/invocation/trace.js.map +0 -1
  306. package/dist/invocation/version.d.ts.map +0 -1
  307. package/dist/invocation/version.js.map +0 -1
  308. package/dist/invocation/websocket/binary.d.ts.map +0 -1
  309. package/dist/invocation/websocket/binary.js.map +0 -1
  310. package/dist/invocation/websocket/index.d.ts.map +0 -1
  311. package/dist/invocation/websocket/index.js.map +0 -1
  312. package/dist/invocation/websocket/subprotocol.d.ts.map +0 -1
  313. package/dist/invocation/websocket/subprotocol.js.map +0 -1
  314. package/dist/issuer/configuration.d.ts.map +0 -1
  315. package/dist/issuer/configuration.js.map +0 -1
  316. package/dist/issuer/error.d.ts.map +0 -1
  317. package/dist/issuer/error.js.map +0 -1
  318. package/dist/issuer/exchange.d.ts.map +0 -1
  319. package/dist/issuer/exchange.js.map +0 -1
  320. package/dist/issuer/hosted.d.ts.map +0 -1
  321. package/dist/issuer/hosted.js.map +0 -1
  322. package/dist/issuer/index.d.ts.map +0 -1
  323. package/dist/issuer/index.js.map +0 -1
  324. package/dist/issuer/key-set.d.ts.map +0 -1
  325. package/dist/issuer/key-set.js.map +0 -1
  326. package/dist/issuer/paths.d.ts.map +0 -1
  327. package/dist/issuer/paths.js.map +0 -1
  328. package/dist/issuer/url.d.ts.map +0 -1
  329. package/dist/issuer/url.js.map +0 -1
  330. package/dist/publication/bindings/callable.d.ts.map +0 -1
  331. package/dist/publication/bindings/callable.js.map +0 -1
  332. package/dist/publication/bindings/index.d.ts.map +0 -1
  333. package/dist/publication/bindings/index.js.map +0 -1
  334. package/dist/publication/bindings/invocation.d.ts.map +0 -1
  335. package/dist/publication/bindings/invocation.js.map +0 -1
  336. package/dist/publication/bindings/view.d.ts.map +0 -1
  337. package/dist/publication/bindings/view.js.map +0 -1
  338. package/dist/publication/bundle-admission.d.ts.map +0 -1
  339. package/dist/publication/bundle-admission.js.map +0 -1
  340. package/dist/publication/bundle-descriptor.d.ts.map +0 -1
  341. package/dist/publication/bundle-descriptor.js.map +0 -1
  342. package/dist/publication/bundle-evidence.d.ts.map +0 -1
  343. package/dist/publication/bundle-evidence.js.map +0 -1
  344. package/dist/publication/bundle.d.ts.map +0 -1
  345. package/dist/publication/bundle.js.map +0 -1
  346. package/dist/publication/content.d.ts.map +0 -1
  347. package/dist/publication/content.js.map +0 -1
  348. package/dist/publication/declaration.d.ts.map +0 -1
  349. package/dist/publication/declaration.js.map +0 -1
  350. package/dist/publication/delivery/attestation.d.ts.map +0 -1
  351. package/dist/publication/delivery/attestation.js.map +0 -1
  352. package/dist/publication/delivery/claims.d.ts.map +0 -1
  353. package/dist/publication/delivery/claims.js.map +0 -1
  354. package/dist/publication/delivery/delivery.d.ts.map +0 -1
  355. package/dist/publication/delivery/delivery.js.map +0 -1
  356. package/dist/publication/delivery/error.d.ts.map +0 -1
  357. package/dist/publication/delivery/error.js.map +0 -1
  358. package/dist/publication/delivery/index.d.ts.map +0 -1
  359. package/dist/publication/delivery/index.js.map +0 -1
  360. package/dist/publication/delivery/limits.d.ts.map +0 -1
  361. package/dist/publication/delivery/limits.js.map +0 -1
  362. package/dist/publication/delivery/request.d.ts.map +0 -1
  363. package/dist/publication/delivery/request.js.map +0 -1
  364. package/dist/publication/delivery-declaration.d.ts.map +0 -1
  365. package/dist/publication/delivery-declaration.js.map +0 -1
  366. package/dist/publication/delivery-endpoint.d.ts.map +0 -1
  367. package/dist/publication/delivery-endpoint.js.map +0 -1
  368. package/dist/publication/error.d.ts.map +0 -1
  369. package/dist/publication/error.js.map +0 -1
  370. package/dist/publication/etag.d.ts.map +0 -1
  371. package/dist/publication/etag.js.map +0 -1
  372. package/dist/publication/index.d.ts.map +0 -1
  373. package/dist/publication/index.js.map +0 -1
  374. package/dist/publication/manifest.d.ts.map +0 -1
  375. package/dist/publication/manifest.js.map +0 -1
  376. package/dist/publication/publication.d.ts.map +0 -1
  377. package/dist/publication/publication.js.map +0 -1
  378. package/dist/publication/reference.d.ts.map +0 -1
  379. package/dist/publication/reference.js.map +0 -1
  380. package/dist/publication/requirements.d.ts.map +0 -1
  381. package/dist/publication/requirements.js.map +0 -1
  382. package/dist/publication/route.d.ts.map +0 -1
  383. package/dist/publication/route.js.map +0 -1
  384. package/dist/publication/schema.d.ts.map +0 -1
  385. package/dist/publication/schema.js.map +0 -1
  386. package/dist/routes/admission.d.ts.map +0 -1
  387. package/dist/routes/admission.js.map +0 -1
  388. package/dist/routes/binding.d.ts.map +0 -1
  389. package/dist/routes/binding.js.map +0 -1
  390. package/dist/routes/collision.d.ts.map +0 -1
  391. package/dist/routes/collision.js.map +0 -1
  392. package/dist/routes/compiler.d.ts.map +0 -1
  393. package/dist/routes/compiler.js.map +0 -1
  394. package/dist/routes/credential.d.ts.map +0 -1
  395. package/dist/routes/credential.js.map +0 -1
  396. package/dist/routes/decode.d.ts.map +0 -1
  397. package/dist/routes/decode.js.map +0 -1
  398. package/dist/routes/encode.d.ts.map +0 -1
  399. package/dist/routes/encode.js.map +0 -1
  400. package/dist/routes/error-response.d.ts.map +0 -1
  401. package/dist/routes/error-response.js.map +0 -1
  402. package/dist/routes/error.d.ts.map +0 -1
  403. package/dist/routes/error.js.map +0 -1
  404. package/dist/routes/evidence.d.ts.map +0 -1
  405. package/dist/routes/evidence.js.map +0 -1
  406. package/dist/routes/index.d.ts.map +0 -1
  407. package/dist/routes/index.js.map +0 -1
  408. package/dist/routes/mapping.d.ts.map +0 -1
  409. package/dist/routes/mapping.js.map +0 -1
  410. package/dist/routes/match.d.ts.map +0 -1
  411. package/dist/routes/match.js.map +0 -1
  412. package/dist/routes/placement.d.ts.map +0 -1
  413. package/dist/routes/placement.js.map +0 -1
  414. package/dist/routes/plan.d.ts.map +0 -1
  415. package/dist/routes/plan.js.map +0 -1
  416. package/dist/routes/release-unavailable.d.ts.map +0 -1
  417. package/dist/routes/release-unavailable.js.map +0 -1
  418. package/dist/routes/request.d.ts.map +0 -1
  419. package/dist/routes/request.js.map +0 -1
  420. package/dist/routes/reservation.d.ts.map +0 -1
  421. package/dist/routes/reservation.js.map +0 -1
  422. package/dist/routes/routing.d.ts.map +0 -1
  423. package/dist/routes/routing.js.map +0 -1
  424. package/dist/routes/scalar.d.ts.map +0 -1
  425. package/dist/routes/scalar.js.map +0 -1
  426. package/dist/routes/select.d.ts.map +0 -1
  427. package/dist/routes/select.js.map +0 -1
  428. package/dist/routes/stream.d.ts.map +0 -1
  429. package/dist/routes/stream.js.map +0 -1
  430. package/dist/routes/table.d.ts.map +0 -1
  431. package/dist/routes/table.js.map +0 -1
  432. package/dist/routes/target.d.ts.map +0 -1
  433. package/dist/routes/target.js.map +0 -1
  434. package/dist/routes/template.d.ts.map +0 -1
  435. package/dist/routes/template.js.map +0 -1
  436. package/dist/runtime/artifact.d.ts.map +0 -1
  437. package/dist/runtime/artifact.js.map +0 -1
  438. package/dist/runtime/index.d.ts.map +0 -1
  439. package/dist/runtime/index.js.map +0 -1
  440. package/dist/schema/index.d.ts.map +0 -1
  441. package/dist/schema/index.js.map +0 -1
  442. package/dist/schema/installation/index.d.ts.map +0 -1
  443. package/dist/schema/installation/index.js.map +0 -1
  444. package/dist/schema/installation/introspection/codec.d.ts.map +0 -1
  445. package/dist/schema/installation/introspection/codec.js.map +0 -1
  446. package/dist/schema/installation/introspection/index.d.ts.map +0 -1
  447. package/dist/schema/installation/introspection/index.js.map +0 -1
  448. package/dist/schema/installation/introspection/result.d.ts.map +0 -1
  449. package/dist/schema/installation/introspection/result.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import type { Subject } from '@astrale-os/kernel-core/auth/identity';
2
- import type { Revision } from '@astrale-os/kernel-dsl/v1/schema';
2
+ import type { Revision } from '@astrale-os/kernel-dsl/v1/addressing';
3
3
  import { type IssuerId } from '@astrale-os/kernel-core/auth/issuer';
4
4
  import type { Etag } from '../etag.js';
5
5
  import { PURPOSE } from './limits.js';
@@ -14,4 +14,3 @@ export interface Claims {
14
14
  readonly exp: number;
15
15
  }
16
16
  export declare function acceptClaims(input: unknown): Claims;
17
- //# sourceMappingURL=claims.d.ts.map
@@ -59,4 +59,3 @@ function deepFreeze(value) {
59
59
  deepFreeze(nested);
60
60
  return Object.freeze(value);
61
61
  }
62
- //# sourceMappingURL=claims.js.map
@@ -7,4 +7,3 @@ export interface Delivery {
7
7
  readonly attestation: Attestation;
8
8
  }
9
9
  export declare function accept(input: unknown): Delivery;
10
- //# sourceMappingURL=delivery.d.ts.map
@@ -27,4 +27,3 @@ function deepFreeze(value) {
27
27
  deepFreeze(nested);
28
28
  return Object.freeze(value);
29
29
  }
30
- //# sourceMappingURL=delivery.js.map
@@ -5,4 +5,3 @@ export declare class DeliveryError extends Error {
5
5
  constructor(code: DeliveryErrorCode, message: string, options?: ErrorOptions);
6
6
  }
7
7
  export declare function fail(code: DeliveryErrorCode, message: string, cause?: unknown): never;
8
- //# sourceMappingURL=error.d.ts.map
@@ -9,4 +9,3 @@ export class DeliveryError extends Error {
9
9
  export function fail(code, message, cause) {
10
10
  throw new DeliveryError(code, message, cause === undefined ? undefined : { cause });
11
11
  }
12
- //# sourceMappingURL=error.js.map
@@ -4,4 +4,3 @@ export { DeliveryError as Error, type DeliveryErrorCode as ErrorCode } from './e
4
4
  export { accept, type Delivery } from './delivery.js';
5
5
  export { ATTESTATION_MAX_BYTES, NONCE_MAX_LENGTH, NONCE_MIN_LENGTH, PURPOSE } from './limits.js';
6
6
  export { acceptRequest, type Token, type Request } from './request.js';
7
- //# sourceMappingURL=index.d.ts.map
@@ -4,4 +4,3 @@ export { DeliveryError as Error } from './error.js';
4
4
  export { accept } from './delivery.js';
5
5
  export { ATTESTATION_MAX_BYTES, NONCE_MAX_LENGTH, NONCE_MIN_LENGTH, PURPOSE } from './limits.js';
6
6
  export { acceptRequest } from './request.js';
7
- //# sourceMappingURL=index.js.map
@@ -2,4 +2,3 @@ export declare const PURPOSE: 'astrale.domain.delivery.v1';
2
2
  export declare const NONCE_MIN_LENGTH = 16;
3
3
  export declare const NONCE_MAX_LENGTH = 256;
4
4
  export declare const ATTESTATION_MAX_BYTES = 16384;
5
- //# sourceMappingURL=limits.d.ts.map
@@ -2,4 +2,3 @@ export const PURPOSE = 'astrale.domain.delivery.v1';
2
2
  export const NONCE_MIN_LENGTH = 16;
3
3
  export const NONCE_MAX_LENGTH = 256;
4
4
  export const ATTESTATION_MAX_BYTES = 16_384;
5
- //# sourceMappingURL=limits.js.map
@@ -13,4 +13,3 @@ export interface Token {
13
13
  }
14
14
  /** Admit the exact request representation accepted by a Delivery transport boundary. */
15
15
  export declare function acceptRequest(input: unknown): Request;
16
- //# sourceMappingURL=request.d.ts.map
@@ -50,4 +50,3 @@ export function acceptRequest(input) {
50
50
  etag: value.etag,
51
51
  });
52
52
  }
53
- //# sourceMappingURL=request.js.map
@@ -2,4 +2,3 @@ import type { DeliveryDeclaration } from './declaration.js';
2
2
  import type { Endpoint } from './delivery-endpoint.js';
3
3
  /** Place one provider-neutral Delivery declaration beneath an exact serving issuer. */
4
4
  export declare function placeDelivery(input: DeliveryDeclaration, issuer: string, bundleHref: string): Endpoint;
5
- //# sourceMappingURL=delivery-declaration.d.ts.map
@@ -23,4 +23,3 @@ export function placeDelivery(input, issuer, bundleHref) {
23
23
  }
24
24
  return admitEndpoint({ href, method: 'POST', authentication: input.authentication }, bundleHref);
25
25
  }
26
- //# sourceMappingURL=delivery-declaration.js.map
@@ -9,4 +9,3 @@ export interface Endpoint {
9
9
  readonly authentication: Authentication;
10
10
  }
11
11
  export declare function admitEndpoint(input: unknown, publicUrl: string): Endpoint | undefined;
12
- //# sourceMappingURL=delivery-endpoint.d.ts.map
@@ -20,4 +20,3 @@ export function admitEndpoint(input, publicUrl) {
20
20
  authentication: Object.freeze({ kind: authentication.kind }),
21
21
  });
22
22
  }
23
- //# sourceMappingURL=delivery-endpoint.js.map
@@ -5,4 +5,3 @@ export declare class PublicationError extends Error {
5
5
  constructor(code: PublicationErrorCode, message: string, options?: ErrorOptions);
6
6
  }
7
7
  export declare function fail(code: PublicationErrorCode, message: string, cause?: unknown): never;
8
- //# sourceMappingURL=error.d.ts.map
@@ -9,4 +9,3 @@ export class PublicationError extends Error {
9
9
  export function fail(code, message, cause) {
10
10
  throw new PublicationError(code, message, cause === undefined ? undefined : { cause });
11
11
  }
12
- //# sourceMappingURL=error.js.map
@@ -4,4 +4,3 @@ export type Etag = Sha256Digest;
4
4
  export declare function admitDigest(input: unknown): Sha256Digest;
5
5
  export declare function computeEtag(input: Content): Etag;
6
6
  export declare function sha256Hex(input: Uint8Array): string;
7
- //# sourceMappingURL=etag.d.ts.map
@@ -77,4 +77,3 @@ const ROUND = new Uint32Array([
77
77
  0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
78
78
  0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
79
79
  ]);
80
- //# sourceMappingURL=etag.js.map
@@ -10,9 +10,8 @@ export { PublicationError, type PublicationErrorCode } from './error.js';
10
10
  export * as delivery from './delivery/index.js';
11
11
  export type { Authentication as DeliveryAuthentication, Endpoint as DeliveryEndpoint, } from './delivery-endpoint.js';
12
12
  export type { Manifest } from './manifest.js';
13
- export { ClassOperationOrder, admitRequirements, validateRequirements, type CapabilityAdminRequirements, type CapabilityRequirements, type ClassCapabilityRequirement, type ClassOperation, type NonEmpty, type PublicationRequirements, } from './requirements.js';
13
+ export { ClassOperationOrder, admitRequirements, validateRequirements, type CapabilityAuthorityRequirements, type CapabilityProfileRequirement, type CapabilityRequirements, type ClassCapabilityRequirement, type ClassOperation, type NonEmpty, type PublicationRequirements, } from './requirements.js';
14
14
  export { acceptReference, compareReference, compareReferences, matchesReference, reference, type PublicationRef, type PublicationReferenceRelation, } from './reference.js';
15
15
  export type { BodyPick, CredentialSource, HttpMethod, HttpRoute, HttpRouteDeclaration, RouteBody, RouteHeaders, SingleCredentialSource, } from './route.js';
16
16
  export type { Schema } from './schema.js';
17
- export { acceptInvocationEndpoints, type CallableBinding, type InvocationEndpoints, type ViewBinding, } from './bindings/index.js';
18
- //# sourceMappingURL=index.d.ts.map
17
+ export { acceptInvocationEndpoints, type CallableBinding, type IframeRequirements, type InvocationEndpoints, type ViewBinding, } from './bindings/index.js';
@@ -8,4 +8,3 @@ export * as delivery from './delivery/index.js';
8
8
  export { ClassOperationOrder, admitRequirements, validateRequirements, } from './requirements.js';
9
9
  export { acceptReference, compareReference, compareReferences, matchesReference, reference, } from './reference.js';
10
10
  export { acceptInvocationEndpoints, } from './bindings/index.js';
11
- //# sourceMappingURL=index.js.map
@@ -1,7 +1,6 @@
1
- import { Ref } from '@astrale-os/kernel-dsl/v1/addressing';
1
+ import { type ViewRef } from '@astrale-os/kernel-dsl/v1/addressing';
2
2
  export interface Manifest {
3
3
  readonly logo?: string;
4
- readonly entrypoint?: Ref.View;
4
+ readonly entrypoint?: ViewRef;
5
5
  }
6
6
  export declare function admitManifest(input: unknown): Manifest | undefined;
7
- //# sourceMappingURL=manifest.d.ts.map
@@ -1,4 +1,4 @@
1
- import { Ref } from '@astrale-os/kernel-dsl/v1/addressing';
1
+ import { acceptDefinitionRef } from '@astrale-os/kernel-dsl/v1/addressing';
2
2
  import { exact, record } from './content.js';
3
3
  import { fail } from './error.js';
4
4
  export function admitManifest(input) {
@@ -11,16 +11,20 @@ export function admitManifest(input) {
11
11
  }
12
12
  let entrypoint;
13
13
  if (value.entrypoint !== undefined) {
14
- if (typeof value.entrypoint !== 'string' ||
15
- !Ref.isDefinition(value.entrypoint) ||
16
- !value.entrypoint.startsWith('view.')) {
14
+ let ref;
15
+ try {
16
+ ref = acceptDefinitionRef(value.entrypoint);
17
+ }
18
+ catch (cause) {
19
+ return fail('PUBLICATION_INVALID', 'Manifest entrypoint must be a root View reference.', cause);
20
+ }
21
+ if (ref.kind !== 'view') {
17
22
  fail('PUBLICATION_INVALID', 'Manifest entrypoint must be a root View reference.');
18
23
  }
19
- entrypoint = value.entrypoint;
24
+ entrypoint = ref;
20
25
  }
21
26
  return Object.freeze({
22
27
  ...(value.logo === undefined ? {} : { logo: value.logo }),
23
28
  ...(entrypoint === undefined ? {} : { entrypoint }),
24
29
  });
25
30
  }
26
- //# sourceMappingURL=manifest.js.map
@@ -34,4 +34,3 @@ export interface Publication {
34
34
  export declare function seal(input: Content): Publication;
35
35
  export declare function accept(input: unknown): Publication;
36
36
  export declare function encode(input: Publication): Uint8Array;
37
- //# sourceMappingURL=publication.d.ts.map
@@ -3,6 +3,7 @@ import { accept as acceptIssuerId } from '@astrale-os/kernel-core/auth/issuer';
3
3
  import { Key, patterns } from '@astrale-os/kernel-dsl/v1/addressing';
4
4
  import * as portable from '@astrale-os/kernel-dsl/value';
5
5
  import { admitCallableBinding, admitViewBinding } from './bindings/index.js';
6
+ import { canonicalizeViewBinding } from './bindings/view.js';
6
7
  import { array, deepFreeze, exact, record, unique } from './content.js';
7
8
  import { admitEndpoint as admitDeliveryEndpoint } from './delivery-endpoint.js';
8
9
  import { fail } from './error.js';
@@ -33,7 +34,8 @@ export function url(input) {
33
34
  return `${admitted.replace(/\/+$/u, '')}${PATH}`;
34
35
  }
35
36
  export function seal(input) {
36
- return acceptPublication({ ...input, etag: computeEtag(input) }, false);
37
+ const canonical = withoutEtag(acceptPublication({ ...input, etag: 'canonicalizing' }, false, true));
38
+ return acceptPublication({ ...canonical, etag: computeEtag(canonical) }, false);
37
39
  }
38
40
  export function accept(input) {
39
41
  const publication = acceptPublication(input, true);
@@ -45,7 +47,7 @@ export function accept(input) {
45
47
  export function encode(input) {
46
48
  return portable.json.encode(input);
47
49
  }
48
- function acceptPublication(input, requireEtag) {
50
+ function acceptPublication(input, requireEtag, canonicalizeViews = false) {
49
51
  const value = record(input, 'PUBLICATION_INVALID', 'Expected a Publication object.');
50
52
  exact(value, [
51
53
  'format',
@@ -80,7 +82,7 @@ function acceptPublication(input, requireEtag) {
80
82
  exact(bindingSet, ['callables', 'views'], 'PUBLICATION_BINDING_INVALID');
81
83
  const callables = array(bindingSet.callables, 'PUBLICATION_BINDING_INVALID').map((entry) => admitCallableBinding(entry, origin));
82
84
  unique(callables.map(({ callable }) => callable), 'PUBLICATION_BINDING_INVALID', 'callable binding');
83
- const views = array(bindingSet.views, 'PUBLICATION_VIEW_INVALID').map((entry) => admitViewBinding(entry, origin));
85
+ const views = array(bindingSet.views, 'PUBLICATION_VIEW_INVALID').map((entry) => canonicalizeViews ? canonicalizeViewBinding(entry, origin) : admitViewBinding(entry, origin));
84
86
  unique(views.map(({ view }) => view), 'PUBLICATION_VIEW_INVALID', 'View binding');
85
87
  const routes = array(value.routes, 'PUBLICATION_ROUTE_INVALID').map((entry) => admitRoute(entry, origin));
86
88
  unique(routes.map(({ name }) => name), 'PUBLICATION_ROUTE_INVALID', 'route name');
@@ -90,7 +92,10 @@ function acceptPublication(input, requireEtag) {
90
92
  }
91
93
  }
92
94
  if (manifest?.entrypoint !== undefined) {
93
- const key = Key.of(origin, manifest.entrypoint);
95
+ if (manifest.entrypoint.origin !== origin) {
96
+ fail('PUBLICATION_VIEW_INVALID', 'Manifest entrypoint must belong to the root origin.');
97
+ }
98
+ const key = Key.of(manifest.entrypoint);
94
99
  if (!views.some(({ view }) => view === key)) {
95
100
  fail('PUBLICATION_VIEW_INVALID', 'Manifest entrypoint must have a published View binding.');
96
101
  }
@@ -128,4 +133,3 @@ function withoutEtag(input) {
128
133
  const { etag: _etag, ...content } = input;
129
134
  return content;
130
135
  }
131
- //# sourceMappingURL=publication.js.map
@@ -1,4 +1,4 @@
1
- import type { Revision } from '@astrale-os/kernel-dsl/v1/schema';
1
+ import type { Revision } from '@astrale-os/kernel-dsl/v1/addressing';
2
2
  import { type Key } from '@astrale-os/kernel-dsl/v1/addressing';
3
3
  import type { Etag } from './etag.js';
4
4
  import type { Publication } from './publication.js';
@@ -15,4 +15,3 @@ export declare function acceptReference(input: unknown): PublicationRef;
15
15
  export declare function compareReferences(input: PublicationRef, expected: PublicationRef): PublicationReferenceRelation;
16
16
  export declare function compareReference(input: Publication, expected: PublicationRef): PublicationReferenceRelation;
17
17
  export declare function matchesReference(input: Publication, expected: PublicationRef): boolean;
18
- //# sourceMappingURL=reference.d.ts.map
@@ -66,4 +66,3 @@ function acceptIssuer(input) {
66
66
  throw cause;
67
67
  }
68
68
  }
69
- //# sourceMappingURL=reference.js.map
@@ -1,21 +1,29 @@
1
1
  import type { AuthorityOperation } from '@astrale-os/kernel-core/schema/authority/operation';
2
- import type { schema } from '@astrale-os/kernel-dsl/v1';
3
- import type { Key as SemanticKey } from '@astrale-os/kernel-dsl/v1/addressing';
2
+ import type { schema as schemaLanguage } from '@astrale-os/kernel-dsl/v1';
3
+ import type { ClassRef, CoreRef, Key as SemanticKey } from '@astrale-os/kernel-dsl/v1/addressing';
4
4
  export type NonEmpty<Value> = readonly [Value, ...Value[]];
5
5
  export declare const ClassOperationOrder: readonly ["create", "read", "traverse", "update", "delete"];
6
6
  export type ClassOperation = (typeof ClassOperationOrder)[number];
7
7
  export interface ClassCapabilityRequirement {
8
- readonly class: schema.ClassRef;
8
+ readonly class: ClassRef;
9
9
  readonly operations: NonEmpty<ClassOperation>;
10
10
  }
11
- export interface CapabilityAdminRequirements {
11
+ export interface CapabilityAuthorityRequirements {
12
12
  readonly grant?: NonEmpty<AuthorityOperation>;
13
13
  readonly revoke?: NonEmpty<AuthorityOperation>;
14
14
  }
15
15
  export interface CapabilityRequirements {
16
16
  readonly functions?: NonEmpty<SemanticKey.Callable>;
17
17
  readonly classes?: NonEmpty<ClassCapabilityRequirement>;
18
- readonly admin?: CapabilityAdminRequirements;
18
+ readonly authority?: CapabilityAuthorityRequirements;
19
+ readonly profiles?: NonEmpty<CapabilityProfileRequirement>;
20
+ }
21
+ /** Installation-owned authority materialized onto one local Core Identity. */
22
+ export interface CapabilityProfileRequirement {
23
+ readonly subject: CoreRef;
24
+ readonly functions?: NonEmpty<SemanticKey.Callable>;
25
+ readonly classes?: NonEmpty<ClassCapabilityRequirement>;
26
+ readonly authority?: CapabilityAuthorityRequirements;
19
27
  }
20
28
  export interface PublicationRequirements {
21
29
  readonly capabilities: CapabilityRequirements;
@@ -23,5 +31,4 @@ export interface PublicationRequirements {
23
31
  /** Admit the exact closed Publication v2 requirements object. */
24
32
  export declare function admitRequirements(input: unknown): PublicationRequirements;
25
33
  /** Bind explicit capability targets to exact functional dependencies in the bundle closure. */
26
- export declare function validateRequirements(root: schema.DomainSchema, closure: readonly schema.DomainSchema[], requirements: PublicationRequirements): void;
27
- //# sourceMappingURL=requirements.d.ts.map
34
+ export declare function validateRequirements(root: schemaLanguage.DomainSchema, closure: readonly schemaLanguage.DomainSchema[], requirements: PublicationRequirements): void;
@@ -1,9 +1,13 @@
1
- import { KernelSchema } from '@astrale-os/kernel-core/schema';
2
1
  import { AuthorityOperationOrder } from '@astrale-os/kernel-core/schema/authority/operation';
3
- import { Key, patterns, Ref } from '@astrale-os/kernel-dsl/v1/addressing';
4
- import { revisionOfDomainSchema } from '@astrale-os/kernel-dsl/v1/schema/revision';
2
+ import { acceptDefinitionRef, callableAddress, Key } from '@astrale-os/kernel-dsl/v1/addressing';
3
+ import { revision } from '@astrale-os/kernel-dsl/v1/schema/revision';
5
4
  import { array, deepFreeze, exact, record, unique } from './content.js';
6
5
  import { fail } from './error.js';
6
+ const KernelIdentityClass = Object.freeze({
7
+ origin: 'kernel.astrale.ai',
8
+ kind: 'class',
9
+ name: 'Identity',
10
+ });
7
11
  export const ClassOperationOrder = Object.freeze([
8
12
  'create',
9
13
  'read',
@@ -16,7 +20,7 @@ export function admitRequirements(input) {
16
20
  const requirements = record(input, 'PUBLICATION_INVALID', 'Publication requirements are invalid.');
17
21
  exact(requirements, ['capabilities'], 'PUBLICATION_INVALID');
18
22
  const capabilities = record(requirements.capabilities, 'PUBLICATION_INVALID', 'Publication capability requirements are invalid.');
19
- exact(capabilities, ['admin', 'classes', 'functions'], 'PUBLICATION_INVALID');
23
+ exact(capabilities, ['authority', 'classes', 'functions', 'profiles'], 'PUBLICATION_INVALID');
20
24
  const functions = capabilities.functions === undefined
21
25
  ? undefined
22
26
  : nonEmpty(capabilities.functions, 'Function capability requirements').map(admitCallable);
@@ -31,7 +35,16 @@ export function admitRequirements(input) {
31
35
  unique(classes.map((entry) => classKey(entry.class)), 'PUBLICATION_INVALID', 'Class capability requirement');
32
36
  canonical(classes, (left, right) => compare(classKey(left.class), classKey(right.class)), 'Class capability requirements');
33
37
  }
34
- const admin = capabilities.admin === undefined ? undefined : admitAdminRequirements(capabilities.admin);
38
+ const authority = capabilities.authority === undefined
39
+ ? undefined
40
+ : admitAuthorityRequirements(capabilities.authority);
41
+ const profiles = capabilities.profiles === undefined
42
+ ? undefined
43
+ : nonEmpty(capabilities.profiles, 'Capability profiles').map(admitCapabilityProfile);
44
+ if (profiles !== undefined) {
45
+ unique(profiles.map(({ subject }) => Key.of(subject)), 'PUBLICATION_INVALID', 'Capability profile subject');
46
+ canonical(profiles, (left, right) => compare(Key.of(left.subject), Key.of(right.subject)), 'Capability profiles');
47
+ }
35
48
  return deepFreeze({
36
49
  capabilities: {
37
50
  ...(functions === undefined
@@ -40,35 +53,109 @@ export function admitRequirements(input) {
40
53
  ...(classes === undefined
41
54
  ? {}
42
55
  : { classes: Object.freeze(classes) }),
43
- ...(admin === undefined ? {} : { admin }),
56
+ ...(authority === undefined ? {} : { authority }),
57
+ ...(profiles === undefined
58
+ ? {}
59
+ : { profiles: Object.freeze(profiles) }),
44
60
  },
45
61
  });
46
62
  }
63
+ function admitCapabilityProfile(input) {
64
+ const profile = record(input, 'PUBLICATION_INVALID', 'Capability profile requirement is invalid.');
65
+ exact(profile, ['authority', 'classes', 'functions', 'subject'], 'PUBLICATION_INVALID');
66
+ const subject = admitCoreRef(profile.subject);
67
+ const functions = profile.functions === undefined
68
+ ? undefined
69
+ : nonEmpty(profile.functions, 'Capability profile Function requirements').map(admitCallable);
70
+ if (functions !== undefined) {
71
+ unique(functions, 'PUBLICATION_INVALID', 'Capability profile Function requirement');
72
+ canonical(functions, compare, 'Capability profile Function requirements');
73
+ }
74
+ const classes = profile.classes === undefined
75
+ ? undefined
76
+ : nonEmpty(profile.classes, 'Capability profile Class requirements').map(admitClassRequirement);
77
+ if (classes !== undefined) {
78
+ unique(classes.map((entry) => classKey(entry.class)), 'PUBLICATION_INVALID', 'Capability profile Class requirement');
79
+ canonical(classes, (left, right) => compare(classKey(left.class), classKey(right.class)), 'Capability profile Class requirements');
80
+ }
81
+ const authority = profile.authority === undefined ? undefined : admitAuthorityRequirements(profile.authority);
82
+ if (functions === undefined && classes === undefined && authority === undefined) {
83
+ fail('PUBLICATION_INVALID', 'Capability profile requirements cannot be empty.');
84
+ }
85
+ return Object.freeze({
86
+ subject,
87
+ ...(functions === undefined
88
+ ? {}
89
+ : { functions: Object.freeze(functions) }),
90
+ ...(classes === undefined
91
+ ? {}
92
+ : { classes: Object.freeze(classes) }),
93
+ ...(authority === undefined ? {} : { authority }),
94
+ });
95
+ }
47
96
  /** Bind explicit capability targets to exact functional dependencies in the bundle closure. */
48
97
  export function validateRequirements(root, closure, requirements) {
49
98
  const dependencies = exactDependencyClosure(root, closure);
50
99
  for (const callable of requirements.capabilities.functions ?? []) {
51
100
  const dependency = capabilityOwner(root, dependencies, callable, 'Function');
52
- const reference = Key.ref(callable);
53
- if (!hasCallable(dependency, reference)) {
101
+ if (!hasCallable(dependency, callable)) {
54
102
  fail('PUBLICATION_INVALID', 'Function capability requirement names an unknown dependency callable.');
55
103
  }
56
104
  }
57
105
  for (const requirement of requirements.capabilities.classes ?? []) {
58
- const key = Key.fromSchema(requirement.class);
106
+ const key = Key.of(requirement.class);
59
107
  const dependency = capabilityOwner(root, dependencies, key, 'Class');
60
108
  if (dependency.classes[requirement.class.name] === undefined) {
61
109
  fail('PUBLICATION_INVALID', 'Class capability requirement names an unknown dependency Class.');
62
110
  }
63
111
  }
112
+ for (const profile of requirements.capabilities.profiles ?? []) {
113
+ const subject = root.core.nodes[profile.subject.name];
114
+ if (profile.subject.origin !== root.origin ||
115
+ subject === undefined ||
116
+ !classSatisfies(root, dependencies, subject.class, KernelIdentityClass)) {
117
+ fail('PUBLICATION_INVALID', 'Capability profile subject must name one local Core Identity.');
118
+ }
119
+ for (const callable of profile.functions ?? []) {
120
+ const dependency = capabilityOwner(root, dependencies, callable, 'Function');
121
+ if (!hasCallable(dependency, callable)) {
122
+ fail('PUBLICATION_INVALID', 'Capability profile Function requirement names an unknown dependency callable.');
123
+ }
124
+ }
125
+ for (const requirement of profile.classes ?? []) {
126
+ const key = Key.of(requirement.class);
127
+ const owner = requirement.class.origin === root.origin
128
+ ? root
129
+ : capabilityOwner(root, dependencies, key, 'Class');
130
+ if (owner.classes[requirement.class.name] === undefined) {
131
+ fail('PUBLICATION_INVALID', 'Capability profile Class requirement names an unknown dependency Class.');
132
+ }
133
+ }
134
+ }
135
+ }
136
+ function classSatisfies(root, dependencies, candidate, expected) {
137
+ const expectedKey = Key.of(expected);
138
+ const visited = new Set();
139
+ const visit = (reference) => {
140
+ const key = Key.of(reference);
141
+ if (key === expectedKey)
142
+ return true;
143
+ if (visited.has(key))
144
+ return false;
145
+ visited.add(key);
146
+ const owner = reference.origin === root.origin ? root : dependencies.get(reference.origin);
147
+ const definition = owner?.classes[reference.name];
148
+ return definition?.kind === 'node' && definition.extends.some(visit);
149
+ };
150
+ return visit(candidate);
64
151
  }
65
152
  function exactDependencyClosure(root, closure) {
66
153
  const supplied = new Map(closure.map((dependency) => [dependency.origin, dependency]));
67
154
  const reachable = new Map();
68
155
  const visit = (owner) => {
69
- for (const coordinate of owner.dependencies) {
156
+ for (const coordinate of Object.values(owner.dependencies)) {
70
157
  const dependency = supplied.get(coordinate.origin);
71
- if (dependency === undefined || revisionOfDomainSchema(dependency) !== coordinate.revision) {
158
+ if (dependency === undefined || revision(dependency) !== coordinate.revision) {
72
159
  fail('PUBLICATION_INVALID', 'Publication Bundle omits an exact dependency.');
73
160
  }
74
161
  if (reachable.has(dependency.origin))
@@ -84,8 +171,10 @@ function admitCallable(input) {
84
171
  if (typeof input !== 'string' || !Key.is(input)) {
85
172
  return fail('PUBLICATION_INVALID', 'Function capability reference is invalid.');
86
173
  }
87
- const reference = Key.ref(input);
88
- if (!reference.startsWith('function.') && !Ref.isMethod(reference)) {
174
+ try {
175
+ callableAddress(input);
176
+ }
177
+ catch {
89
178
  return fail('PUBLICATION_INVALID', 'Function capability reference must name a Function or Method.');
90
179
  }
91
180
  return input;
@@ -101,14 +190,14 @@ function admitClassRequirement(input) {
101
190
  operations: Object.freeze(operations),
102
191
  });
103
192
  }
104
- function admitAdminRequirements(input) {
105
- const admin = record(input, 'PUBLICATION_INVALID', 'Administrative capability requirements are invalid.');
106
- exact(admin, ['grant', 'revoke'], 'PUBLICATION_INVALID');
107
- if (admin.grant === undefined && admin.revoke === undefined) {
108
- fail('PUBLICATION_INVALID', 'Administrative capability requirements cannot be empty.');
193
+ function admitAuthorityRequirements(input) {
194
+ const authority = record(input, 'PUBLICATION_INVALID', 'Authority capability requirements are invalid.');
195
+ exact(authority, ['grant', 'revoke'], 'PUBLICATION_INVALID');
196
+ if (authority.grant === undefined && authority.revoke === undefined) {
197
+ fail('PUBLICATION_INVALID', 'Authority capability requirements cannot be empty.');
109
198
  }
110
- const grant = admitAuthorityOperations(admin.grant, 'grant');
111
- const revoke = admitAuthorityOperations(admin.revoke, 'revoke');
199
+ const grant = admitAuthorityOperations(authority.grant, 'grant');
200
+ const revoke = admitAuthorityOperations(authority.revoke, 'revoke');
112
201
  return Object.freeze({
113
202
  ...(grant === undefined ? {} : { grant }),
114
203
  ...(revoke === undefined ? {} : { revoke }),
@@ -117,22 +206,35 @@ function admitAdminRequirements(input) {
117
206
  function admitAuthorityOperations(input, kind) {
118
207
  if (input === undefined)
119
208
  return undefined;
120
- const values = nonEmpty(input, `Administrative ${kind} operations`).map((entry) => admitOperation(entry, AuthorityOperationOrder, `Administrative ${kind} operation`));
121
- unique(values, 'PUBLICATION_INVALID', `administrative ${kind} operation`);
122
- canonical(values, ordered(AuthorityOperationOrder), `Administrative ${kind} operations`);
209
+ const values = nonEmpty(input, `Authority ${kind} operations`).map((entry) => admitOperation(entry, AuthorityOperationOrder, `Authority ${kind} operation`));
210
+ unique(values, 'PUBLICATION_INVALID', `authority ${kind} operation`);
211
+ canonical(values, ordered(AuthorityOperationOrder), `Authority ${kind} operations`);
123
212
  return Object.freeze(values);
124
213
  }
125
214
  function admitClassRef(input) {
126
- const value = record(input, 'PUBLICATION_INVALID', 'Class capability reference is invalid.');
127
- exact(value, ['kind', 'name', 'origin'], 'PUBLICATION_INVALID');
128
- if (value.kind !== 'class' ||
129
- typeof value.origin !== 'string' ||
130
- !patterns.origin.test(value.origin) ||
131
- typeof value.name !== 'string' ||
132
- !patterns.memberName.test(value.name)) {
215
+ let value;
216
+ try {
217
+ value = acceptDefinitionRef(input);
218
+ }
219
+ catch {
133
220
  fail('PUBLICATION_INVALID', 'Class capability reference is invalid.');
134
221
  }
135
- return Object.freeze({ origin: value.origin, kind: 'class', name: value.name });
222
+ if (value.kind !== 'class')
223
+ fail('PUBLICATION_INVALID', 'Class capability reference is invalid.');
224
+ return value;
225
+ }
226
+ function admitCoreRef(input) {
227
+ let value;
228
+ try {
229
+ value = acceptDefinitionRef(input);
230
+ }
231
+ catch {
232
+ fail('PUBLICATION_INVALID', 'Capability profile subject is invalid.');
233
+ }
234
+ if (value.kind !== 'core') {
235
+ fail('PUBLICATION_INVALID', 'Capability profile subject must be one local Core reference.');
236
+ }
237
+ return value;
136
238
  }
137
239
  function nonEmpty(input, label) {
138
240
  const values = [...array(input, 'PUBLICATION_INVALID')];
@@ -158,28 +260,23 @@ function compare(left, right) {
158
260
  return left < right ? -1 : left > right ? 1 : 0;
159
261
  }
160
262
  function classKey(input) {
161
- return String(Key.fromSchema(input));
263
+ return String(Key.of(input));
162
264
  }
163
265
  function capabilityOwner(root, dependencies, key, label) {
164
266
  const origin = Key.origin(key);
165
267
  if (origin === root.origin)
166
268
  fail('PUBLICATION_INVALID', `${label} capability target cannot be local.`);
167
- if (origin === KernelSchema.origin)
168
- return KernelSchema;
169
269
  const dependency = dependencies.get(origin);
170
270
  if (dependency === undefined) {
171
271
  fail('PUBLICATION_INVALID', `${label} capability target must belong to the exact dependency closure.`);
172
272
  }
173
273
  return dependency;
174
274
  }
175
- function hasCallable(dependency, reference) {
176
- if (reference.startsWith('function.')) {
177
- return dependency.functions[Ref.member(reference)] !== undefined;
178
- }
179
- const ownerKind = Ref.namespace(reference);
180
- const owner = Ref.member(reference);
181
- const method = Ref.child(reference);
182
- const declaration = ownerKind === 'class' ? dependency.classes[owner] : dependency.interfaces[owner];
183
- return declaration?.family === 'node' && declaration.methods[method] !== undefined;
275
+ function hasCallable(dependency, callable) {
276
+ const coordinate = callableAddress(callable);
277
+ if (coordinate.kind === 'function')
278
+ return dependency.functions[coordinate.name] !== undefined;
279
+ const declaration = dependency.classes[coordinate.owner.name];
280
+ const method = declaration?.kind === 'node' ? declaration.methods[coordinate.name] : undefined;
281
+ return method !== undefined && method.inheritance !== 'abstract';
184
282
  }
185
- //# sourceMappingURL=requirements.js.map
@@ -35,4 +35,3 @@ export interface HttpRouteDeclaration extends Omit<HttpRoute, 'href'> {
35
35
  }
36
36
  export declare function admitRoute(input: unknown, origin: string): HttpRoute;
37
37
  export declare function admitRouteDeclaration(input: unknown, origin: string): HttpRouteDeclaration;
38
- //# sourceMappingURL=route.d.ts.map
@@ -152,4 +152,3 @@ function stringRecord(input) {
152
152
  }
153
153
  return Object.freeze(output);
154
154
  }
155
- //# sourceMappingURL=route.js.map
@@ -1,8 +1,7 @@
1
- import type { Revision } from '@astrale-os/kernel-dsl/v1/schema';
1
+ import type { Revision } from '@astrale-os/kernel-dsl/v1/addressing';
2
2
  import type { BundleDescriptor } from './bundle-descriptor.js';
3
3
  export interface Schema {
4
4
  readonly revision: Revision;
5
5
  readonly bundle: BundleDescriptor;
6
6
  }
7
7
  export declare function admitSchema(input: unknown): Schema;
8
- //# sourceMappingURL=schema.d.ts.map
@@ -13,4 +13,3 @@ export function admitSchema(input) {
13
13
  bundle: admitBundleDescriptor(value.bundle),
14
14
  });
15
15
  }
16
- //# sourceMappingURL=schema.js.map
@@ -1,4 +1,3 @@
1
1
  import type { Table } from './table.js';
2
2
  /** Admit one emitted portable Table before Server composition. */
3
3
  export declare function acceptTable(input: unknown): Table;
4
- //# sourceMappingURL=admission.d.ts.map