@astrale-os/kernel-client 0.6.0-beta.8 → 0.6.0-beta.80

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 (473) hide show
  1. package/dist/auth/auth.d.ts +25 -10
  2. package/dist/auth/auth.js +5 -7
  3. package/dist/auth/authorization.d.ts +6 -4
  4. package/dist/auth/authorization.js +25 -6
  5. package/dist/auth/credential.d.ts +11 -2
  6. package/dist/auth/credential.js +6 -3
  7. package/dist/auth/identity.d.ts +6 -9
  8. package/dist/auth/identity.js +0 -1
  9. package/dist/auth/index.d.ts +4 -5
  10. package/dist/auth/index.js +2 -4
  11. package/dist/auth/register.d.ts +24 -0
  12. package/dist/auth/register.js +10 -0
  13. package/dist/client/admission.d.ts +4 -2
  14. package/dist/client/admission.js +8 -2
  15. package/dist/client/client.d.ts +4 -3
  16. package/dist/client/client.js +13 -3
  17. package/dist/client/credential.d.ts +4 -3
  18. package/dist/client/credential.js +7 -3
  19. package/dist/client/index.d.ts +1 -2
  20. package/dist/client/index.js +1 -2
  21. package/dist/client/request.d.ts +10 -4
  22. package/dist/client/request.js +33 -6
  23. package/dist/client/result.d.ts +3 -4
  24. package/dist/client/result.js +3 -1
  25. package/dist/client/routing-control.d.ts +0 -1
  26. package/dist/client/routing-control.js +0 -1
  27. package/dist/errors/client-error.d.ts +0 -1
  28. package/dist/errors/client-error.js +2 -1
  29. package/dist/errors/exchange-error.d.ts +19 -0
  30. package/dist/errors/exchange-error.js +9 -0
  31. package/dist/errors/index.d.ts +8 -7
  32. package/dist/errors/index.js +8 -7
  33. package/dist/errors/miss-error.d.ts +0 -1
  34. package/dist/errors/miss-error.js +0 -1
  35. package/dist/errors/protocol-error.d.ts +0 -1
  36. package/dist/errors/protocol-error.js +0 -1
  37. package/dist/errors/response-error.d.ts +0 -1
  38. package/dist/errors/response-error.js +0 -1
  39. package/dist/errors/session-error.d.ts +9 -0
  40. package/dist/errors/session-error.js +9 -0
  41. package/dist/errors/stale-route-error.d.ts +0 -1
  42. package/dist/errors/stale-route-error.js +0 -1
  43. package/dist/errors/transport-error.d.ts +18 -6
  44. package/dist/errors/transport-error.js +11 -7
  45. package/dist/graph/domain/binding.d.ts +22 -0
  46. package/dist/graph/domain/binding.js +123 -0
  47. package/dist/graph/domain/domain.typecheck.d.ts +1 -0
  48. package/dist/graph/domain/domain.typecheck.js +147 -0
  49. package/dist/graph/domain/index.d.ts +3 -0
  50. package/dist/graph/domain/index.js +1 -0
  51. package/dist/graph/domain/model.d.ts +18 -0
  52. package/dist/graph/domain/model.js +1 -0
  53. package/dist/graph/domain/page.d.ts +23 -0
  54. package/dist/graph/domain/page.js +42 -0
  55. package/dist/graph/domain/project.d.ts +8 -0
  56. package/dist/graph/domain/project.js +124 -0
  57. package/dist/graph/domain/provenance.d.ts +6 -0
  58. package/dist/graph/domain/provenance.js +11 -0
  59. package/dist/graph/errors.d.ts +2 -3
  60. package/dist/graph/errors.js +1 -2
  61. package/dist/graph/expectation.d.ts +3 -0
  62. package/dist/graph/expectation.js +6 -0
  63. package/dist/graph/graph.d.ts +12 -8
  64. package/dist/graph/graph.js +0 -1
  65. package/dist/graph/index.d.ts +2 -2
  66. package/dist/graph/index.js +1 -1
  67. package/dist/graph/mutation.d.ts +2 -4
  68. package/dist/graph/mutation.js +10 -2
  69. package/dist/graph/page/index.d.ts +0 -1
  70. package/dist/graph/page/index.js +0 -1
  71. package/dist/graph/page/neighbors.d.ts +4 -5
  72. package/dist/graph/page/neighbors.js +7 -7
  73. package/dist/graph/page/page.d.ts +5 -2
  74. package/dist/graph/page/page.js +0 -1
  75. package/dist/graph/page-contract.d.ts +1 -2
  76. package/dist/graph/page-contract.js +0 -1
  77. package/dist/graph/provenance.d.ts +14 -0
  78. package/dist/graph/provenance.js +42 -0
  79. package/dist/graph/query.d.ts +3 -1
  80. package/dist/graph/query.js +33 -13
  81. package/dist/graph/read.d.ts +3 -4
  82. package/dist/graph/read.js +6 -5
  83. package/dist/index.d.ts +3 -3
  84. package/dist/index.js +2 -2
  85. package/dist/pacer/batcher/batcher.d.ts +0 -1
  86. package/dist/pacer/batcher/batcher.js +0 -1
  87. package/dist/pacer/batcher/defaults.d.ts +0 -1
  88. package/dist/pacer/batcher/defaults.js +0 -1
  89. package/dist/pacer/batcher/index.d.ts +0 -1
  90. package/dist/pacer/batcher/index.js +0 -1
  91. package/dist/pacer/index.d.ts +0 -1
  92. package/dist/pacer/index.js +0 -1
  93. package/dist/pacer/limiter/defaults.d.ts +0 -1
  94. package/dist/pacer/limiter/defaults.js +0 -1
  95. package/dist/pacer/limiter/index.d.ts +0 -1
  96. package/dist/pacer/limiter/index.js +0 -1
  97. package/dist/pacer/limiter/limiter.d.ts +0 -1
  98. package/dist/pacer/limiter/limiter.js +0 -1
  99. package/dist/pacer/queue/defaults.d.ts +0 -1
  100. package/dist/pacer/queue/defaults.js +0 -1
  101. package/dist/pacer/queue/index.d.ts +0 -1
  102. package/dist/pacer/queue/index.js +0 -1
  103. package/dist/pacer/queue/queue.d.ts +0 -1
  104. package/dist/pacer/queue/queue.js +0 -1
  105. package/dist/pacer/retry/defaults.d.ts +0 -1
  106. package/dist/pacer/retry/defaults.js +0 -1
  107. package/dist/pacer/retry/index.d.ts +0 -1
  108. package/dist/pacer/retry/index.js +0 -1
  109. package/dist/pacer/retry/retry.d.ts +0 -1
  110. package/dist/pacer/retry/retry.js +0 -1
  111. package/dist/pool/index.d.ts +0 -1
  112. package/dist/pool/index.js +0 -1
  113. package/dist/pool/pool.d.ts +0 -1
  114. package/dist/pool/pool.js +0 -1
  115. package/dist/pool/target.d.ts +0 -1
  116. package/dist/pool/target.js +0 -1
  117. package/dist/schema/admission.d.ts +1 -2
  118. package/dist/schema/admission.js +0 -1
  119. package/dist/schema/contracts.d.ts +6 -16
  120. package/dist/schema/contracts.js +0 -1
  121. package/dist/schema/index.d.ts +2 -3
  122. package/dist/schema/index.js +1 -2
  123. package/dist/schema/introspection.d.ts +1 -2
  124. package/dist/schema/introspection.js +9 -2
  125. package/dist/schema/operation.d.ts +0 -1
  126. package/dist/schema/operation.js +2 -3
  127. package/dist/schema/schema.d.ts +13 -10
  128. package/dist/schema/schema.js +83 -11
  129. package/dist/session/admission.d.ts +6 -0
  130. package/dist/session/admission.js +59 -0
  131. package/dist/session/bound.d.ts +48 -0
  132. package/dist/session/bound.js +110 -0
  133. package/dist/session/content.d.ts +27 -0
  134. package/dist/session/content.js +158 -0
  135. package/dist/session/context/control.d.ts +0 -1
  136. package/dist/session/context/control.js +0 -1
  137. package/dist/session/context/index.d.ts +0 -1
  138. package/dist/session/context/index.js +0 -1
  139. package/dist/session/context/limits.d.ts +0 -1
  140. package/dist/session/context/limits.js +0 -1
  141. package/dist/session/context/operation.d.ts +5 -2
  142. package/dist/session/context/operation.js +19 -17
  143. package/dist/session/context/policy.d.ts +0 -1
  144. package/dist/session/context/policy.js +0 -1
  145. package/dist/session/credential/index.d.ts +1 -0
  146. package/dist/session/credential/index.js +1 -0
  147. package/dist/session/credential/limits.d.ts +12 -0
  148. package/dist/session/credential/limits.js +12 -0
  149. package/dist/session/credential/provider.d.ts +56 -0
  150. package/dist/session/credential/provider.js +236 -0
  151. package/dist/session/discovery/bundle.d.ts +5 -2
  152. package/dist/session/discovery/bundle.js +34 -15
  153. package/dist/session/discovery/discovery.d.ts +4 -2
  154. package/dist/session/discovery/discovery.js +34 -6
  155. package/dist/session/discovery/index.d.ts +3 -1
  156. package/dist/session/discovery/index.js +1 -1
  157. package/dist/session/discovery/publication.d.ts +0 -1
  158. package/dist/session/discovery/publication.js +4 -4
  159. package/dist/session/discovery/snapshot.d.ts +0 -1
  160. package/dist/session/discovery/snapshot.js +0 -1
  161. package/dist/session/discovery/transport.d.ts +6 -0
  162. package/dist/session/discovery/transport.js +13 -0
  163. package/dist/session/exchange/domain.d.ts +27 -0
  164. package/dist/session/exchange/domain.js +63 -0
  165. package/dist/session/exchange/exchange.d.ts +54 -0
  166. package/dist/session/exchange/exchange.js +58 -0
  167. package/dist/session/exchange/index.d.ts +5 -0
  168. package/dist/session/exchange/index.js +5 -0
  169. package/dist/session/exchange/issuer.d.ts +18 -0
  170. package/dist/session/exchange/issuer.js +149 -0
  171. package/dist/session/exchange/limits.d.ts +10 -0
  172. package/dist/session/exchange/limits.js +10 -0
  173. package/dist/session/exchange/options.d.ts +29 -0
  174. package/dist/session/exchange/options.js +57 -0
  175. package/dist/session/exchange/presentation.d.ts +18 -0
  176. package/dist/session/exchange/presentation.js +73 -0
  177. package/dist/session/exchange/source.d.ts +32 -0
  178. package/dist/session/exchange/source.js +78 -0
  179. package/dist/session/execution.d.ts +65 -0
  180. package/dist/session/execution.js +34 -0
  181. package/dist/session/index.d.ts +9 -4
  182. package/dist/session/index.js +4 -1
  183. package/dist/session/reference.d.ts +40 -12
  184. package/dist/session/reference.js +56 -14
  185. package/dist/session/routing/auth.d.ts +10 -1
  186. package/dist/session/routing/auth.js +8 -2
  187. package/dist/session/routing/cache.d.ts +27 -8
  188. package/dist/session/routing/cache.js +218 -25
  189. package/dist/session/routing/dispatch.d.ts +15 -8
  190. package/dist/session/routing/dispatch.js +121 -48
  191. package/dist/session/routing/envelope.d.ts +2 -1
  192. package/dist/session/routing/envelope.js +14 -10
  193. package/dist/session/routing/index.d.ts +3 -5
  194. package/dist/session/routing/index.js +2 -3
  195. package/dist/session/routing/request.d.ts +9 -1
  196. package/dist/session/routing/request.js +17 -1
  197. package/dist/session/session.d.ts +41 -8
  198. package/dist/session/session.js +129 -41
  199. package/dist/session/session.typecheck.d.ts +0 -1
  200. package/dist/session/session.typecheck.js +172 -3
  201. package/dist/session/views/catalog.d.ts +0 -1
  202. package/dist/session/views/catalog.js +14 -5
  203. package/dist/session/views/index.d.ts +0 -1
  204. package/dist/session/views/index.js +0 -1
  205. package/dist/session/views/resolve.d.ts +0 -1
  206. package/dist/session/views/resolve.js +0 -1
  207. package/dist/store/entity-index.d.ts +0 -1
  208. package/dist/store/entity-index.js +0 -1
  209. package/dist/store/index.d.ts +0 -1
  210. package/dist/store/index.js +0 -1
  211. package/dist/store/memory.d.ts +2 -2
  212. package/dist/store/memory.js +38 -15
  213. package/dist/store/mutation.d.ts +1 -2
  214. package/dist/store/mutation.js +6 -4
  215. package/dist/store/observe.d.ts +0 -1
  216. package/dist/store/observe.js +0 -1
  217. package/dist/store/optimistic.d.ts +0 -1
  218. package/dist/store/optimistic.js +0 -1
  219. package/dist/store/query-key.d.ts +2 -2
  220. package/dist/store/query-key.js +7 -3
  221. package/dist/store/shape.d.ts +4 -2
  222. package/dist/store/shape.js +4 -2
  223. package/dist/store/store.d.ts +2 -4
  224. package/dist/store/store.js +6 -5
  225. package/dist/store/store.typecheck.d.ts +0 -1
  226. package/dist/store/store.typecheck.js +3 -9
  227. package/dist/transport/auto/decision.d.ts +0 -1
  228. package/dist/transport/auto/decision.js +0 -1
  229. package/dist/transport/auto/fallback.d.ts +2 -2
  230. package/dist/transport/auto/fallback.js +10 -11
  231. package/dist/transport/auto/index.d.ts +0 -1
  232. package/dist/transport/auto/index.js +0 -1
  233. package/dist/transport/auto/transport.d.ts +0 -1
  234. package/dist/transport/auto/transport.js +5 -6
  235. package/dist/transport/auto/warning.d.ts +0 -1
  236. package/dist/transport/auto/warning.js +5 -3
  237. package/dist/transport/deadline.d.ts +0 -1
  238. package/dist/transport/deadline.js +0 -1
  239. package/dist/transport/failure.d.ts +7 -0
  240. package/dist/transport/failure.js +9 -0
  241. package/dist/transport/http/byte-stream.d.ts +18 -0
  242. package/dist/transport/http/byte-stream.js +94 -0
  243. package/dist/transport/http/index.d.ts +0 -1
  244. package/dist/transport/http/index.js +0 -1
  245. package/dist/transport/http/response.d.ts +0 -1
  246. package/dist/transport/http/response.js +0 -1
  247. package/dist/transport/http/stream.d.ts +0 -1
  248. package/dist/transport/http/stream.js +7 -7
  249. package/dist/transport/http/transport.d.ts +3 -1
  250. package/dist/transport/http/transport.js +87 -30
  251. package/dist/transport/index.d.ts +0 -1
  252. package/dist/transport/index.js +0 -1
  253. package/dist/transport/transport.d.ts +0 -1
  254. package/dist/transport/transport.js +0 -1
  255. package/dist/transport/websocket/connection.d.ts +0 -1
  256. package/dist/transport/websocket/connection.js +16 -26
  257. package/dist/transport/websocket/exchange.d.ts +0 -1
  258. package/dist/transport/websocket/exchange.js +5 -9
  259. package/dist/transport/websocket/index.d.ts +0 -1
  260. package/dist/transport/websocket/index.js +0 -1
  261. package/dist/transport/websocket/transport.d.ts +0 -1
  262. package/dist/transport/websocket/transport.js +7 -20
  263. package/package.json +12 -14
  264. package/dist/auth/auth.d.ts.map +0 -1
  265. package/dist/auth/auth.js.map +0 -1
  266. package/dist/auth/authorization.d.ts.map +0 -1
  267. package/dist/auth/authorization.js.map +0 -1
  268. package/dist/auth/credential.d.ts.map +0 -1
  269. package/dist/auth/credential.js.map +0 -1
  270. package/dist/auth/identity.d.ts.map +0 -1
  271. package/dist/auth/identity.js.map +0 -1
  272. package/dist/auth/index.d.ts.map +0 -1
  273. package/dist/auth/index.js.map +0 -1
  274. package/dist/auth/provision.d.ts +0 -9
  275. package/dist/auth/provision.d.ts.map +0 -1
  276. package/dist/auth/provision.js +0 -11
  277. package/dist/auth/provision.js.map +0 -1
  278. package/dist/client/admission.d.ts.map +0 -1
  279. package/dist/client/admission.js.map +0 -1
  280. package/dist/client/client.d.ts.map +0 -1
  281. package/dist/client/client.js.map +0 -1
  282. package/dist/client/credential.d.ts.map +0 -1
  283. package/dist/client/credential.js.map +0 -1
  284. package/dist/client/index.d.ts.map +0 -1
  285. package/dist/client/index.js.map +0 -1
  286. package/dist/client/request.d.ts.map +0 -1
  287. package/dist/client/request.js.map +0 -1
  288. package/dist/client/result.d.ts.map +0 -1
  289. package/dist/client/result.js.map +0 -1
  290. package/dist/client/routing-control.d.ts.map +0 -1
  291. package/dist/client/routing-control.js.map +0 -1
  292. package/dist/errors/client-error.d.ts.map +0 -1
  293. package/dist/errors/client-error.js.map +0 -1
  294. package/dist/errors/index.d.ts.map +0 -1
  295. package/dist/errors/index.js.map +0 -1
  296. package/dist/errors/miss-error.d.ts.map +0 -1
  297. package/dist/errors/miss-error.js.map +0 -1
  298. package/dist/errors/protocol-error.d.ts.map +0 -1
  299. package/dist/errors/protocol-error.js.map +0 -1
  300. package/dist/errors/response-error.d.ts.map +0 -1
  301. package/dist/errors/response-error.js.map +0 -1
  302. package/dist/errors/stale-route-error.d.ts.map +0 -1
  303. package/dist/errors/stale-route-error.js.map +0 -1
  304. package/dist/errors/transport-error.d.ts.map +0 -1
  305. package/dist/errors/transport-error.js.map +0 -1
  306. package/dist/graph/errors.d.ts.map +0 -1
  307. package/dist/graph/errors.js.map +0 -1
  308. package/dist/graph/graph.d.ts.map +0 -1
  309. package/dist/graph/graph.js.map +0 -1
  310. package/dist/graph/index.d.ts.map +0 -1
  311. package/dist/graph/index.js.map +0 -1
  312. package/dist/graph/mutation.d.ts.map +0 -1
  313. package/dist/graph/mutation.js.map +0 -1
  314. package/dist/graph/page/index.d.ts.map +0 -1
  315. package/dist/graph/page/index.js.map +0 -1
  316. package/dist/graph/page/neighbors.d.ts.map +0 -1
  317. package/dist/graph/page/neighbors.js.map +0 -1
  318. package/dist/graph/page/page.d.ts.map +0 -1
  319. package/dist/graph/page/page.js.map +0 -1
  320. package/dist/graph/page-contract.d.ts.map +0 -1
  321. package/dist/graph/page-contract.js.map +0 -1
  322. package/dist/graph/query.d.ts.map +0 -1
  323. package/dist/graph/query.js.map +0 -1
  324. package/dist/graph/read.d.ts.map +0 -1
  325. package/dist/graph/read.js.map +0 -1
  326. package/dist/index.d.ts.map +0 -1
  327. package/dist/index.js.map +0 -1
  328. package/dist/pacer/batcher/batcher.d.ts.map +0 -1
  329. package/dist/pacer/batcher/batcher.js.map +0 -1
  330. package/dist/pacer/batcher/defaults.d.ts.map +0 -1
  331. package/dist/pacer/batcher/defaults.js.map +0 -1
  332. package/dist/pacer/batcher/index.d.ts.map +0 -1
  333. package/dist/pacer/batcher/index.js.map +0 -1
  334. package/dist/pacer/index.d.ts.map +0 -1
  335. package/dist/pacer/index.js.map +0 -1
  336. package/dist/pacer/limiter/defaults.d.ts.map +0 -1
  337. package/dist/pacer/limiter/defaults.js.map +0 -1
  338. package/dist/pacer/limiter/index.d.ts.map +0 -1
  339. package/dist/pacer/limiter/index.js.map +0 -1
  340. package/dist/pacer/limiter/limiter.d.ts.map +0 -1
  341. package/dist/pacer/limiter/limiter.js.map +0 -1
  342. package/dist/pacer/queue/defaults.d.ts.map +0 -1
  343. package/dist/pacer/queue/defaults.js.map +0 -1
  344. package/dist/pacer/queue/index.d.ts.map +0 -1
  345. package/dist/pacer/queue/index.js.map +0 -1
  346. package/dist/pacer/queue/queue.d.ts.map +0 -1
  347. package/dist/pacer/queue/queue.js.map +0 -1
  348. package/dist/pacer/retry/defaults.d.ts.map +0 -1
  349. package/dist/pacer/retry/defaults.js.map +0 -1
  350. package/dist/pacer/retry/index.d.ts.map +0 -1
  351. package/dist/pacer/retry/index.js.map +0 -1
  352. package/dist/pacer/retry/retry.d.ts.map +0 -1
  353. package/dist/pacer/retry/retry.js.map +0 -1
  354. package/dist/pool/index.d.ts.map +0 -1
  355. package/dist/pool/index.js.map +0 -1
  356. package/dist/pool/pool.d.ts.map +0 -1
  357. package/dist/pool/pool.js.map +0 -1
  358. package/dist/pool/target.d.ts.map +0 -1
  359. package/dist/pool/target.js.map +0 -1
  360. package/dist/schema/admission.d.ts.map +0 -1
  361. package/dist/schema/admission.js.map +0 -1
  362. package/dist/schema/contracts.d.ts.map +0 -1
  363. package/dist/schema/contracts.js.map +0 -1
  364. package/dist/schema/index.d.ts.map +0 -1
  365. package/dist/schema/index.js.map +0 -1
  366. package/dist/schema/introspection.d.ts.map +0 -1
  367. package/dist/schema/introspection.js.map +0 -1
  368. package/dist/schema/operation.d.ts.map +0 -1
  369. package/dist/schema/operation.js.map +0 -1
  370. package/dist/schema/schema.d.ts.map +0 -1
  371. package/dist/schema/schema.js.map +0 -1
  372. package/dist/session/context/control.d.ts.map +0 -1
  373. package/dist/session/context/control.js.map +0 -1
  374. package/dist/session/context/index.d.ts.map +0 -1
  375. package/dist/session/context/index.js.map +0 -1
  376. package/dist/session/context/limits.d.ts.map +0 -1
  377. package/dist/session/context/limits.js.map +0 -1
  378. package/dist/session/context/operation.d.ts.map +0 -1
  379. package/dist/session/context/operation.js.map +0 -1
  380. package/dist/session/context/policy.d.ts.map +0 -1
  381. package/dist/session/context/policy.js.map +0 -1
  382. package/dist/session/discovery/bundle.d.ts.map +0 -1
  383. package/dist/session/discovery/bundle.js.map +0 -1
  384. package/dist/session/discovery/discovery.d.ts.map +0 -1
  385. package/dist/session/discovery/discovery.js.map +0 -1
  386. package/dist/session/discovery/index.d.ts.map +0 -1
  387. package/dist/session/discovery/index.js.map +0 -1
  388. package/dist/session/discovery/publication.d.ts.map +0 -1
  389. package/dist/session/discovery/publication.js.map +0 -1
  390. package/dist/session/discovery/snapshot.d.ts.map +0 -1
  391. package/dist/session/discovery/snapshot.js.map +0 -1
  392. package/dist/session/index.d.ts.map +0 -1
  393. package/dist/session/index.js.map +0 -1
  394. package/dist/session/reference.d.ts.map +0 -1
  395. package/dist/session/reference.js.map +0 -1
  396. package/dist/session/routing/auth.d.ts.map +0 -1
  397. package/dist/session/routing/auth.js.map +0 -1
  398. package/dist/session/routing/cache.d.ts.map +0 -1
  399. package/dist/session/routing/cache.js.map +0 -1
  400. package/dist/session/routing/dispatch.d.ts.map +0 -1
  401. package/dist/session/routing/dispatch.js.map +0 -1
  402. package/dist/session/routing/envelope.d.ts.map +0 -1
  403. package/dist/session/routing/envelope.js.map +0 -1
  404. package/dist/session/routing/expectation.d.ts +0 -7
  405. package/dist/session/routing/expectation.d.ts.map +0 -1
  406. package/dist/session/routing/expectation.js +0 -2
  407. package/dist/session/routing/expectation.js.map +0 -1
  408. package/dist/session/routing/index.d.ts.map +0 -1
  409. package/dist/session/routing/index.js.map +0 -1
  410. package/dist/session/routing/request.d.ts.map +0 -1
  411. package/dist/session/routing/request.js.map +0 -1
  412. package/dist/session/session.d.ts.map +0 -1
  413. package/dist/session/session.js.map +0 -1
  414. package/dist/session/session.typecheck.d.ts.map +0 -1
  415. package/dist/session/session.typecheck.js.map +0 -1
  416. package/dist/session/views/catalog.d.ts.map +0 -1
  417. package/dist/session/views/catalog.js.map +0 -1
  418. package/dist/session/views/index.d.ts.map +0 -1
  419. package/dist/session/views/index.js.map +0 -1
  420. package/dist/session/views/resolve.d.ts.map +0 -1
  421. package/dist/session/views/resolve.js.map +0 -1
  422. package/dist/store/entity-index.d.ts.map +0 -1
  423. package/dist/store/entity-index.js.map +0 -1
  424. package/dist/store/index.d.ts.map +0 -1
  425. package/dist/store/index.js.map +0 -1
  426. package/dist/store/memory.d.ts.map +0 -1
  427. package/dist/store/memory.js.map +0 -1
  428. package/dist/store/mutation.d.ts.map +0 -1
  429. package/dist/store/mutation.js.map +0 -1
  430. package/dist/store/observe.d.ts.map +0 -1
  431. package/dist/store/observe.js.map +0 -1
  432. package/dist/store/optimistic.d.ts.map +0 -1
  433. package/dist/store/optimistic.js.map +0 -1
  434. package/dist/store/query-key.d.ts.map +0 -1
  435. package/dist/store/query-key.js.map +0 -1
  436. package/dist/store/shape.d.ts.map +0 -1
  437. package/dist/store/shape.js.map +0 -1
  438. package/dist/store/store.d.ts.map +0 -1
  439. package/dist/store/store.js.map +0 -1
  440. package/dist/store/store.typecheck.d.ts.map +0 -1
  441. package/dist/store/store.typecheck.js.map +0 -1
  442. package/dist/transport/auto/decision.d.ts.map +0 -1
  443. package/dist/transport/auto/decision.js.map +0 -1
  444. package/dist/transport/auto/fallback.d.ts.map +0 -1
  445. package/dist/transport/auto/fallback.js.map +0 -1
  446. package/dist/transport/auto/index.d.ts.map +0 -1
  447. package/dist/transport/auto/index.js.map +0 -1
  448. package/dist/transport/auto/transport.d.ts.map +0 -1
  449. package/dist/transport/auto/transport.js.map +0 -1
  450. package/dist/transport/auto/warning.d.ts.map +0 -1
  451. package/dist/transport/auto/warning.js.map +0 -1
  452. package/dist/transport/deadline.d.ts.map +0 -1
  453. package/dist/transport/deadline.js.map +0 -1
  454. package/dist/transport/http/index.d.ts.map +0 -1
  455. package/dist/transport/http/index.js.map +0 -1
  456. package/dist/transport/http/response.d.ts.map +0 -1
  457. package/dist/transport/http/response.js.map +0 -1
  458. package/dist/transport/http/stream.d.ts.map +0 -1
  459. package/dist/transport/http/stream.js.map +0 -1
  460. package/dist/transport/http/transport.d.ts.map +0 -1
  461. package/dist/transport/http/transport.js.map +0 -1
  462. package/dist/transport/index.d.ts.map +0 -1
  463. package/dist/transport/index.js.map +0 -1
  464. package/dist/transport/transport.d.ts.map +0 -1
  465. package/dist/transport/transport.js.map +0 -1
  466. package/dist/transport/websocket/connection.d.ts.map +0 -1
  467. package/dist/transport/websocket/connection.js.map +0 -1
  468. package/dist/transport/websocket/exchange.d.ts.map +0 -1
  469. package/dist/transport/websocket/exchange.js.map +0 -1
  470. package/dist/transport/websocket/index.d.ts.map +0 -1
  471. package/dist/transport/websocket/index.js.map +0 -1
  472. package/dist/transport/websocket/transport.d.ts.map +0 -1
  473. package/dist/transport/websocket/transport.js.map +0 -1
@@ -1,2 +1 @@
1
1
  export { createBatcher } from './batcher.js';
2
- //# sourceMappingURL=index.js.map
@@ -2,4 +2,3 @@ export { retry, type RetryOptions } from './retry/index.js';
2
2
  export { createQueue, type QueueOptions } from './queue/index.js';
3
3
  export { createBatcher, type BatchOptions } from './batcher/index.js';
4
4
  export { createRateLimiter, type RateLimitOptions } from './limiter/index.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -2,4 +2,3 @@ export { retry } from './retry/index.js';
2
2
  export { createQueue } from './queue/index.js';
3
3
  export { createBatcher } from './batcher/index.js';
4
4
  export { createRateLimiter } from './limiter/index.js';
5
- //# sourceMappingURL=index.js.map
@@ -1,3 +1,2 @@
1
1
  export declare const DEFAULT_RATE_LIMIT = 10;
2
2
  export declare const DEFAULT_RATE_WINDOW_MS = 1000;
3
- //# sourceMappingURL=defaults.d.ts.map
@@ -1,3 +1,2 @@
1
1
  export const DEFAULT_RATE_LIMIT = 10;
2
2
  export const DEFAULT_RATE_WINDOW_MS = 1_000;
3
- //# sourceMappingURL=defaults.js.map
@@ -1,2 +1 @@
1
1
  export { createRateLimiter, type RateLimitOptions } from './limiter.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { createRateLimiter } from './limiter.js';
2
- //# sourceMappingURL=index.js.map
@@ -5,4 +5,3 @@ export type RateLimitOptions<Operation extends AnyAsyncFunction> = Omit<AsyncRat
5
5
  readonly window?: number;
6
6
  };
7
7
  export declare function createRateLimiter<Operation extends AnyAsyncFunction>(operation: Operation, options?: RateLimitOptions<Operation>): AsyncRateLimiter<Operation>;
8
- //# sourceMappingURL=limiter.d.ts.map
@@ -12,4 +12,3 @@ export function createRateLimiter(operation, options = {}) {
12
12
  window: options.window ?? DEFAULT_RATE_WINDOW_MS,
13
13
  });
14
14
  }
15
- //# sourceMappingURL=limiter.js.map
@@ -1,2 +1 @@
1
1
  export declare const DEFAULT_QUEUE_CONCURRENCY = 4;
2
- //# sourceMappingURL=defaults.d.ts.map
@@ -1,2 +1 @@
1
1
  export const DEFAULT_QUEUE_CONCURRENCY = 4;
2
- //# sourceMappingURL=defaults.js.map
@@ -1,2 +1 @@
1
1
  export { createQueue, type QueueOptions } from './queue.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { createQueue } from './queue.js';
2
- //# sourceMappingURL=index.js.map
@@ -4,4 +4,3 @@ export type QueueOptions<Value> = Omit<AsyncQueuerOptions<Value>, 'concurrency'>
4
4
  readonly concurrency?: number;
5
5
  };
6
6
  export declare function createQueue<Value>(consume: (value: Value) => Promise<unknown>, options?: QueueOptions<Value>): AsyncQueuer<Value>;
7
- //# sourceMappingURL=queue.d.ts.map
@@ -10,4 +10,3 @@ export function createQueue(consume, options = {}) {
10
10
  concurrency: options.concurrency ?? DEFAULT_QUEUE_CONCURRENCY,
11
11
  });
12
12
  }
13
- //# sourceMappingURL=queue.js.map
@@ -4,4 +4,3 @@ export declare const DEFAULT_RETRY_MAX_WAIT_MS = 5000;
4
4
  export declare const DEFAULT_RETRY_JITTER = 0.2;
5
5
  export declare function positive(input: number, label: string): number;
6
6
  export declare function nonNegative(input: number, label: string): number;
7
- //# sourceMappingURL=defaults.d.ts.map
@@ -14,4 +14,3 @@ export function nonNegative(input, label) {
14
14
  }
15
15
  return input;
16
16
  }
17
- //# sourceMappingURL=defaults.js.map
@@ -1,2 +1 @@
1
1
  export { retry, type RetryOptions } from './retry.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { retry } from './retry.js';
2
- //# sourceMappingURL=index.js.map
@@ -7,4 +7,3 @@ export interface RetryOptions {
7
7
  }
8
8
  /** Retry with bounded exponential backoff and never swallow the final failure. */
9
9
  export declare function retry<Result>(operation: () => Promise<Result>, options?: RetryOptions): Promise<Result>;
10
- //# sourceMappingURL=retry.d.ts.map
@@ -53,4 +53,3 @@ export async function retry(operation, options = {}) {
53
53
  }
54
54
  return result;
55
55
  }
56
- //# sourceMappingURL=retry.js.map
@@ -1,3 +1,2 @@
1
1
  export { ClientPool, type ClientFactory, type ClientPoolOptions } from './pool.js';
2
2
  export type { ClientTarget } from './target.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { ClientPool } from './pool.js';
2
- //# sourceMappingURL=index.js.map
@@ -21,4 +21,3 @@ export declare class ClientPool {
21
21
  private evictOldest;
22
22
  private requireOpen;
23
23
  }
24
- //# sourceMappingURL=pool.d.ts.map
package/dist/pool/pool.js CHANGED
@@ -67,4 +67,3 @@ export class ClientPool {
67
67
  throw new ClientError('ClientPool is closed.');
68
68
  }
69
69
  }
70
- //# sourceMappingURL=pool.js.map
@@ -13,4 +13,3 @@ export type ClientTarget = {
13
13
  };
14
14
  export declare function admitTarget(input: ClientTarget): ClientTarget;
15
15
  export declare function targetKey(target: ClientTarget): string;
16
- //# sourceMappingURL=target.d.ts.map
@@ -47,4 +47,3 @@ function endpoint(input, protocols) {
47
47
  }
48
48
  return url.toString();
49
49
  }
50
- //# sourceMappingURL=target.js.map
@@ -8,6 +8,5 @@ interface OutputContract {
8
8
  };
9
9
  }
10
10
  /** Admit one value result through its Core-owned syscall contract. */
11
- export declare function acceptOutput<T extends Value>(contract: OutputContract, input: unknown): T;
11
+ export declare function acceptOutput<T>(contract: OutputContract, input: unknown): T;
12
12
  export {};
13
- //# sourceMappingURL=admission.d.ts.map
@@ -15,4 +15,3 @@ function freeze(input) {
15
15
  }
16
16
  return input;
17
17
  }
18
- //# sourceMappingURL=admission.js.map
@@ -1,22 +1,12 @@
1
- import type { InputOf, OutputOf } from '@astrale-os/kernel-core/domain';
2
- import type { syscalls } from '@astrale-os/kernel-core/schema';
3
1
  import type { installation } from '@astrale-os/kernel-core/schema';
2
+ import type { DomainRequest as CoreDomainRequest, InstallInput, InstallReceipt as CoreInstallReceipt, UninstallInput, UninstallOutput } from '@astrale-os/kernel-core/schema/kernel/syscalls/contracts';
4
3
  export type OperationId = installation.OperationId;
5
4
  /** Canonical caller input accepted by the Kernel install syscall. */
6
- export type InstallRequest = Omit<InputOf<(typeof syscalls.install)['callable']>, 'operation'> & {
7
- readonly operation: OperationId;
8
- };
5
+ export type DomainRequest = CoreDomainRequest;
6
+ export type InstallRequest = InstallInput;
9
7
  /** Admitted terminal install receipt returned by the Kernel. */
10
- export type InstallReceipt = Omit<OutputOf<(typeof syscalls.install)['callable']>, 'operation'> & {
11
- readonly operation: OperationId;
12
- };
8
+ export type InstallReceipt = CoreInstallReceipt;
13
9
  /** Canonical caller input accepted by the Kernel uninstall syscall. */
14
- export type UninstallRequest = Omit<InputOf<(typeof syscalls.uninstall)['callable']>, 'operation'> & {
15
- readonly operation: OperationId;
16
- };
10
+ export type UninstallRequest = UninstallInput;
17
11
  /** Admitted terminal uninstall receipt returned by the Kernel. */
18
- export type UninstallReceipt = Omit<OutputOf<(typeof syscalls.uninstall)['callable']>, 'operation'> & {
19
- readonly operation: OperationId;
20
- };
21
- export type DesiredInstallation = InstallRequest['domains'][number];
22
- //# sourceMappingURL=contracts.d.ts.map
12
+ export type UninstallReceipt = UninstallOutput;
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=contracts.js.map
@@ -1,4 +1,3 @@
1
- export { createSchema, type SchemaApi, type SchemaCall, type SchemaOptions, type ReadyInstallation, } from './schema.js';
1
+ export { createSchema, DEFAULT_SCHEMA_LIFECYCLE_TIMEOUT_MS, type SchemaApi, type SchemaCall, type SchemaOptions, type DomainBundle, type DomainDependencies, type DomainInfo, type InstallResult, } from './schema.js';
2
2
  export { acceptOperationId, createOperationId } from './operation.js';
3
- export type { DesiredInstallation, InstallReceipt, InstallRequest, OperationId, UninstallReceipt, UninstallRequest, } from './contracts.js';
4
- //# sourceMappingURL=index.d.ts.map
3
+ export type { DomainRequest, InstallReceipt, InstallRequest, OperationId, UninstallReceipt, UninstallRequest, } from './contracts.js';
@@ -1,3 +1,2 @@
1
- export { createSchema, } from './schema.js';
1
+ export { createSchema, DEFAULT_SCHEMA_LIFECYCLE_TIMEOUT_MS, } from './schema.js';
2
2
  export { acceptOperationId, createOperationId } from './operation.js';
3
- //# sourceMappingURL=index.js.map
@@ -1,6 +1,5 @@
1
1
  import type { introspection as language } from '@astrale-os/kernel-core/schema';
2
- import type { schema as protocol } from '@astrale-os/kernel-protocol';
2
+ import type * as protocol from '@astrale-os/kernel-protocol/schema';
3
3
  import type { RequestOptions } from '../transport/index.js';
4
4
  import type { SchemaCall, SchemaOptions } from './schema.js';
5
5
  export declare function introspect<InputType extends language.Introspection>(invoke: SchemaCall, limits: SchemaOptions, request: InputType, options?: RequestOptions): Promise<protocol.installation.introspection.ResultFor<InputType>>;
6
- //# sourceMappingURL=introspection.d.ts.map
@@ -1,9 +1,13 @@
1
1
  import { Path } from '@astrale-os/kernel-core/path';
2
2
  import { introspect as introspectRef } from '@astrale-os/kernel-core/schema/kernel/syscalls/references';
3
- import { schema } from '@astrale-os/kernel-protocol';
3
+ import { loadMsgpack } from '@astrale-os/kernel-protocol/codecs';
4
+ import * as schema from '@astrale-os/kernel-protocol/schema';
4
5
  import { call } from '../client/index.js';
5
6
  const INTROSPECT_PATH = Path.project(introspectRef).raw;
6
7
  export async function introspect(invoke, limits, request, options) {
8
+ // The evidence is MessagePack behind a lazy import: fetch it with the request, not after it.
9
+ // A failed preload is surfaced by decode, which imports the same modules again.
10
+ void loadMsgpack().catch(() => undefined);
7
11
  const result = await invoke(call(INTROSPECT_PATH, request), options);
8
12
  if (result.kind !== 'binary') {
9
13
  throw new TypeError('Schema introspection returned a non-binary result.');
@@ -11,6 +15,9 @@ export async function introspect(invoke, limits, request, options) {
11
15
  if (result.value.mediaType !== schema.installation.introspection.MEDIA_TYPE) {
12
16
  throw new TypeError('Schema introspection returned an unsupported media type.');
13
17
  }
18
+ if (!(result.value.body instanceof Uint8Array)) {
19
+ await result.value.body[Symbol.asyncIterator]().return?.();
20
+ throw new TypeError('Schema introspection returned a streaming binary result.');
21
+ }
14
22
  return schema.installation.introspection.decode(request, result.value.body, limits);
15
23
  }
16
- //# sourceMappingURL=introspection.js.map
@@ -3,4 +3,3 @@ import type { OperationId } from './contracts.js';
3
3
  export declare function acceptOperationId(input: unknown): OperationId;
4
4
  /** Allocate one cryptographically generated operation identity for a new lifecycle request. */
5
5
  export declare function createOperationId(): OperationId;
6
- //# sourceMappingURL=operation.d.ts.map
@@ -1,10 +1,9 @@
1
- import { installation } from '@astrale-os/kernel-core/schema';
1
+ import * as installation from '@astrale-os/kernel-core/schema/installation';
2
2
  /** Accept one canonical lowercase RFC 9562 UUIDv4 operation identity. */
3
3
  export function acceptOperationId(input) {
4
4
  return installation.acceptOperationId(input);
5
5
  }
6
6
  /** Allocate one cryptographically generated operation identity for a new lifecycle request. */
7
7
  export function createOperationId() {
8
- return acceptOperationId(globalThis.crypto.randomUUID());
8
+ return acceptOperationId(crypto.randomUUID());
9
9
  }
10
- //# sourceMappingURL=operation.js.map
@@ -1,20 +1,23 @@
1
- import type { introspection } from '@astrale-os/kernel-core/schema';
2
- import type { schema as protocolSchema } from '@astrale-os/kernel-protocol';
1
+ import type { Key } from '@astrale-os/kernel-dsl/v1';
2
+ import * as protocolSchema from '@astrale-os/kernel-protocol/schema';
3
3
  import type { Call, Result } from '../client/index.js';
4
4
  import type { RequestOptions } from '../transport/index.js';
5
- import type { InstallReceipt, InstallRequest, UninstallReceipt, UninstallRequest } from './contracts.js';
5
+ import type { InstallRequest, UninstallReceipt, UninstallRequest } from './contracts.js';
6
6
  export type SchemaCall = (call: Call, options?: RequestOptions) => Promise<Result>;
7
7
  export interface SchemaOptions extends protocolSchema.installation.introspection.Limits {
8
+ readonly lifecycleTimeoutMs?: number;
8
9
  }
9
- export type ReadyInstallation = protocolSchema.installation.introspection.Installation & {
10
- readonly state: 'ready';
11
- readonly readiness: protocolSchema.installation.introspection.Digest;
12
- };
10
+ export type DomainInfo = protocolSchema.installation.introspection.DomainInfo;
11
+ export type DomainBundle = protocolSchema.installation.introspection.DomainBundle;
12
+ export type DomainDependencies = protocolSchema.installation.introspection.DomainDependencies;
13
+ export type InstallResult = protocolSchema.installation.InstallResult;
13
14
  export interface SchemaApi {
14
- install(request: InstallRequest, options?: RequestOptions): Promise<InstallReceipt>;
15
+ install(request: InstallRequest, options?: RequestOptions): Promise<InstallResult>;
15
16
  uninstall(request: UninstallRequest, options?: RequestOptions): Promise<UninstallReceipt>;
16
- introspect<Input extends introspection.Introspection>(request: Input, options?: RequestOptions): Promise<protocolSchema.installation.introspection.ResultFor<Input>>;
17
+ inspect(origin: Key.Origin, options?: RequestOptions): Promise<DomainInfo>;
18
+ bundle(origin: Key.Origin, options?: RequestOptions): Promise<DomainBundle>;
19
+ dependencies(origin: Key.Origin, options?: RequestOptions): Promise<DomainDependencies>;
17
20
  }
21
+ export declare const DEFAULT_SCHEMA_LIFECYCLE_TIMEOUT_MS = 110000;
18
22
  /** Bind the canonical Schema lifecycle syscalls to one caller-scoped value-call capability. */
19
23
  export declare function createSchema(call: SchemaCall, limits: SchemaOptions): SchemaApi;
20
- //# sourceMappingURL=schema.d.ts.map
@@ -1,11 +1,13 @@
1
1
  import { Path } from '@astrale-os/kernel-core/path';
2
- import { installOutput, uninstallOutput, } from '@astrale-os/kernel-core/schema/kernel/syscalls/contracts';
2
+ import { uninstallOutput } from '@astrale-os/kernel-core/schema/kernel/syscalls/contracts';
3
3
  import { install, uninstall } from '@astrale-os/kernel-core/schema/kernel/syscalls/references';
4
+ import * as protocolSchema from '@astrale-os/kernel-protocol/schema';
4
5
  import { call as invocation } from '../client/index.js';
5
6
  import { acceptOutput } from './admission.js';
6
- import { introspect as inspect } from './introspection.js';
7
+ import { introspect } from './introspection.js';
7
8
  const INSTALL_PATH = Path.project(install).raw;
8
9
  const UNINSTALL_PATH = Path.project(uninstall).raw;
10
+ export const DEFAULT_SCHEMA_LIFECYCLE_TIMEOUT_MS = 110_000;
9
11
  /** Bind the canonical Schema lifecycle syscalls to one caller-scoped value-call capability. */
10
12
  export function createSchema(call, limits) {
11
13
  if (typeof call !== 'function')
@@ -13,32 +15,102 @@ export function createSchema(call, limits) {
13
15
  const admittedLimits = admitLimits(limits);
14
16
  return Object.freeze({
15
17
  async install(request, options) {
16
- const output = value(await call(invocation(INSTALL_PATH, request), options));
17
- return acceptOutput(installOutput, output);
18
+ const result = await call(invocation(INSTALL_PATH, request), lifecycleOptions(options, admittedLimits.lifecycleTimeoutMs));
19
+ if (result.kind !== 'binary') {
20
+ throw new TypeError('Schema install returned a non-binary result.');
21
+ }
22
+ if (result.value.mediaType !== protocolSchema.installation.MEDIA_TYPE) {
23
+ throw new TypeError('Schema install returned an unsupported media type.');
24
+ }
25
+ if (!(result.value.body instanceof Uint8Array)) {
26
+ await result.value.body[Symbol.asyncIterator]().return?.();
27
+ throw new TypeError('Schema install returned a streaming binary result.');
28
+ }
29
+ const decoded = await protocolSchema.installation.decode(result.value.body, installationResultLimit(admittedLimits.maximumPublicationBytes, request.domains.length));
30
+ proveInstallResult(request, decoded);
31
+ return decoded;
18
32
  },
19
33
  async uninstall(request, options) {
20
- const output = value(await call(invocation(UNINSTALL_PATH, request), options));
21
- return acceptOutput(uninstallOutput, output);
34
+ const snapshot = snapshotUninstallRequest(request);
35
+ const output = value(await call(invocation(UNINSTALL_PATH, snapshot), lifecycleOptions(options, admittedLimits.lifecycleTimeoutMs)));
36
+ const receipt = acceptOutput(uninstallOutput, output);
37
+ proveUninstallReceipt(snapshot, receipt);
38
+ return receipt;
22
39
  },
23
- async introspect(request, options) {
24
- return inspect(call, admittedLimits, request, options);
40
+ async inspect(origin, options) {
41
+ return introspect(call, admittedLimits, { kind: 'inspect', origin }, options);
25
42
  },
43
+ async bundle(origin, options) {
44
+ return introspect(call, admittedLimits, { kind: 'bundle', origin }, options);
45
+ },
46
+ async dependencies(origin, options) {
47
+ return introspect(call, admittedLimits, { kind: 'dependencies', origin }, options);
48
+ },
49
+ });
50
+ }
51
+ function snapshotUninstallRequest(request) {
52
+ return Object.freeze({
53
+ operation: request.operation,
54
+ domains: Object.freeze([...new Set(request.domains)].sort(compare)),
55
+ data: Object.freeze({ mode: request.data.mode }),
26
56
  });
27
57
  }
58
+ function proveUninstallReceipt(request, receipt) {
59
+ if (receipt.operation !== request.operation) {
60
+ throw new TypeError('Schema uninstall result does not match the requested operation.');
61
+ }
62
+ const actual = receipt.transitions.map((transition) => transition.intent.origin);
63
+ if (actual.length !== request.domains.length ||
64
+ actual.some((origin, index) => origin !== request.domains[index])) {
65
+ throw new TypeError('Schema uninstall result does not match the requested Domains.');
66
+ }
67
+ }
68
+ function compare(left, right) {
69
+ return left < right ? -1 : left > right ? 1 : 0;
70
+ }
71
+ function installationResultLimit(maximumDomainBytes, roots) {
72
+ const perDomain = maximumDomainBytes + 4_096;
73
+ if (roots > Math.floor((Number.MAX_SAFE_INTEGER - 4_096) / perDomain)) {
74
+ return Number.MAX_SAFE_INTEGER;
75
+ }
76
+ return perDomain * roots + 4_096;
77
+ }
78
+ function proveInstallResult(request, result) {
79
+ if (result.changed) {
80
+ if (result.receipt.operation !== request.operation) {
81
+ throw new TypeError('Schema install result does not match the requested operation.');
82
+ }
83
+ if (result.receipt.transitions.length > request.domains.length) {
84
+ throw new TypeError('Schema install result contains more transitions than requested Domains.');
85
+ }
86
+ return;
87
+ }
88
+ if (result.domains.length !== request.domains.length) {
89
+ throw new TypeError('Schema unchanged result does not match the requested Domain count.');
90
+ }
91
+ }
28
92
  function value(result) {
29
93
  if (result.kind !== 'value')
30
94
  throw new TypeError('Schema syscall returned a non-value result.');
31
95
  return result.value;
32
96
  }
33
97
  function admitLimits(input) {
98
+ const lifecycleTimeoutMs = input?.lifecycleTimeoutMs ?? DEFAULT_SCHEMA_LIFECYCLE_TIMEOUT_MS;
34
99
  if (input === null ||
35
100
  typeof input !== 'object' ||
36
101
  !Number.isSafeInteger(input.maximumPublicationBytes) ||
37
102
  input.maximumPublicationBytes < 1 ||
38
103
  !Number.isSafeInteger(input.maximumBundleBytes) ||
39
- input.maximumBundleBytes < 1) {
104
+ input.maximumBundleBytes < 1 ||
105
+ !Number.isSafeInteger(lifecycleTimeoutMs) ||
106
+ lifecycleTimeoutMs < 1 ||
107
+ lifecycleTimeoutMs > 2_147_483_647) {
40
108
  throw new TypeError('Schema introspection limits are invalid.');
41
109
  }
42
- return Object.freeze({ ...input });
110
+ return Object.freeze({ ...input, lifecycleTimeoutMs });
111
+ }
112
+ function lifecycleOptions(options, timeoutMs) {
113
+ if (options?.timeoutMs !== undefined)
114
+ return options;
115
+ return Object.freeze({ ...options, timeoutMs });
43
116
  }
44
- //# sourceMappingURL=schema.js.map
@@ -0,0 +1,6 @@
1
+ import type { invocation } from '@astrale-os/kernel-protocol';
2
+ import type { AdmissionOptions, FunctionAdmission } from '../auth/index.js';
3
+ import type { SessionOperation } from './context/index.js';
4
+ import type { ExchangeDependencies } from './exchange/index.js';
5
+ /** Check a remote Call through the existing Domain exchange and Kernel admission protocols. */
6
+ export declare function admitFunction(dependencies: ExchangeDependencies, call: invocation.Call, options: AdmissionOptions | undefined, operation: SessionOperation): Promise<FunctionAdmission>;
@@ -0,0 +1,59 @@
1
+ import { grant } from '@astrale-os/kernel-core/auth';
2
+ import { targetPath } from '@astrale-os/kernel-core/callable';
3
+ import { Path } from '@astrale-os/kernel-core/path';
4
+ import { admitOutput } from '@astrale-os/kernel-core/schema/kernel/syscalls/contracts';
5
+ import { function as functions } from '@astrale-os/kernel-core/schema/kernel/syscalls/references';
6
+ import { Key } from '@astrale-os/kernel-dsl/v1/addressing';
7
+ import { ClientError } from '../errors/index.js';
8
+ import { runSessionOperation, sessionTransportOptions } from './context/index.js';
9
+ import { callableOrigin, exchangeDomainCredential, installedIssuer, isAuthority, SELF_ATTENUATION, } from './exchange/index.js';
10
+ import { matchesCallable } from './reference.js';
11
+ import { requireResultKind, resolveAuth } from './routing/index.js';
12
+ const ADMIT = Path.staticMethod(Path.project(functions.admit.owner), functions.admit.name);
13
+ /** Check a remote Call through the existing Domain exchange and Kernel admission protocols. */
14
+ export async function admitFunction(dependencies, call, options, operation) {
15
+ const target = Path.parse(targetPath(call.target));
16
+ const origin = callableOrigin(target);
17
+ if (origin === undefined) {
18
+ throw new ClientError('Function admission requires a Domain-qualified callable target.');
19
+ }
20
+ const attenuation = options?.attenuation === undefined
21
+ ? undefined
22
+ : grant.acceptUnresolved({ v: 1, expr: options.attenuation }).expr;
23
+ const effective = await resolveAuth(dependencies.auth, call, operation);
24
+ if (!isAuthority(effective)) {
25
+ throw new ClientError('Function admission requires an authenticated session.');
26
+ }
27
+ // Resolve once for the intended Call, then retain that exact caller across every helper syscall.
28
+ const domain = await installedIssuer(dependencies, origin, effective, operation);
29
+ if (domain === undefined) {
30
+ throw new ClientError('Function admission through token exchange requires a remote Domain.');
31
+ }
32
+ const exchanged = await exchangeDomainCredential(dependencies, effective, {
33
+ issuer: domain,
34
+ ttlSeconds: effective.delegate.ttlSeconds,
35
+ attenuation: attenuation ?? effective.delegate.attenuation ?? SELF_ATTENUATION,
36
+ }, operation);
37
+ const result = await runSessionOperation(operation, () => dependencies
38
+ .source()
39
+ .as(exchanged.credential)
40
+ .dispatch({ target: ADMIT, input: { call, credential: exchanged.delegation } }, { ...sessionTransportOptions(operation), delegate: effective.delegate }));
41
+ const output = admitOutput.parse(requireResultKind('value', result).value);
42
+ const callable = Key(output.callable);
43
+ if (!matchesCallable(target, callable)) {
44
+ throw new ClientError('Function admission returned a different callable.');
45
+ }
46
+ const receiver = output.receiver === undefined ? undefined : Path.parse(output.receiver);
47
+ const method = target.ast.steps.at(-1);
48
+ const instance = method?.kind === 'method' && method.dispatch === 'instance';
49
+ if (instance !== (receiver !== undefined) ||
50
+ (receiver !== undefined &&
51
+ (receiver.ast.anchor.kind !== 'id' ||
52
+ receiver.ast.steps.length !== 0 ||
53
+ (target.ast.anchor.kind === 'id' &&
54
+ target.ast.steps.length === 1 &&
55
+ receiver.ast.anchor.id !== target.ast.anchor.id)))) {
56
+ throw new ClientError('Function admission returned a different receiver.');
57
+ }
58
+ return Object.freeze({ callable, ...(receiver === undefined ? {} : { receiver: receiver.raw }) });
59
+ }
@@ -0,0 +1,48 @@
1
+ import type { IssuerId } from '@astrale-os/kernel-core/auth';
2
+ import type { AuthApi } from '../auth/index.js';
3
+ import type { SchemaApi } from '../schema/index.js';
4
+ import type { ContentApi } from './content.js';
5
+ import type { SessionControlOptions } from './context/index.js';
6
+ import type { SessionRequestOptions } from './routing/index.js';
7
+ import type { ClientSession } from './session.js';
8
+ import type { ViewCatalog } from './views/index.js';
9
+ import { type Binary, type Call, type Stream } from '../client/index.js';
10
+ import { type GraphApi } from '../graph/index.js';
11
+ /** Exact live Session surface captured by one credential-bound Kernel view. */
12
+ export interface BoundSessionSource {
13
+ readonly kernel: IssuerId;
14
+ readonly schema: SchemaApi;
15
+ readonly auth: Pick<AuthApi, 'admit'>;
16
+ readonly content?: ContentApi;
17
+ dispatch: ClientSession['dispatch'];
18
+ call: ClientSession['call'];
19
+ invoke: ClientSession['invoke'];
20
+ stream(call: Call, options?: SessionRequestOptions): Promise<Stream>;
21
+ binary(call: Call, options?: SessionRequestOptions): Promise<Binary>;
22
+ viewsFor(target: Parameters<ClientSession['viewsFor']>[0], options?: SessionControlOptions): Promise<ViewCatalog>;
23
+ }
24
+ export interface BoundSessionControls {
25
+ readonly signal: AbortSignal;
26
+ /** Absolute Unix time in milliseconds. */
27
+ readonly deadline: number;
28
+ }
29
+ /**
30
+ * Credential-bound Kernel operations over one caller-owned ClientSession.
31
+ *
32
+ * The view owns no credential, transport, route cache, or lifecycle. Its source Session owns all of
33
+ * those concerns and closing that Session invalidates every operation exposed here.
34
+ */
35
+ export interface BoundClientSession extends GraphApi {
36
+ readonly kernel: IssuerId;
37
+ readonly auth: AuthApi;
38
+ readonly schema: SchemaApi;
39
+ readonly content: ContentApi;
40
+ dispatch: ClientSession['dispatch'];
41
+ call: ClientSession['call'];
42
+ invoke: ClientSession['invoke'];
43
+ stream(call: Call, options?: SessionRequestOptions): Promise<Stream>;
44
+ binary(call: Call, options?: SessionRequestOptions): Promise<Binary>;
45
+ viewsFor: BoundSessionSource['viewsFor'];
46
+ }
47
+ /** Capture one Session into the ordinary graph, auth, and invocation Kernel journey. */
48
+ export declare function bindSession(source: BoundSessionSource, controls?: BoundSessionControls): BoundClientSession;