@astrale-os/kernel-server 0.4.13 → 0.4.15

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 (71) hide show
  1. package/dist/app/create.d.ts +3 -3
  2. package/dist/app/create.d.ts.map +1 -1
  3. package/dist/app/create.js +8 -7
  4. package/dist/app/create.js.map +1 -1
  5. package/dist/app/index.d.ts +1 -1
  6. package/dist/app/index.d.ts.map +1 -1
  7. package/dist/app/multiplexed.d.ts +11 -11
  8. package/dist/app/multiplexed.d.ts.map +1 -1
  9. package/dist/app/multiplexed.js +16 -15
  10. package/dist/app/multiplexed.js.map +1 -1
  11. package/dist/app/ws-upgrade.d.ts +7 -8
  12. package/dist/app/ws-upgrade.d.ts.map +1 -1
  13. package/dist/app/ws-upgrade.js +10 -9
  14. package/dist/app/ws-upgrade.js.map +1 -1
  15. package/dist/capabilities/contract.d.ts +8 -0
  16. package/dist/capabilities/contract.d.ts.map +1 -0
  17. package/dist/capabilities/contract.js +2 -0
  18. package/dist/capabilities/contract.js.map +1 -0
  19. package/dist/capabilities/defer.d.ts +4 -0
  20. package/dist/capabilities/defer.d.ts.map +1 -0
  21. package/dist/capabilities/defer.js +2 -0
  22. package/dist/capabilities/defer.js.map +1 -0
  23. package/dist/capabilities/hono.d.ts +8 -0
  24. package/dist/capabilities/hono.d.ts.map +1 -0
  25. package/dist/capabilities/hono.js +13 -0
  26. package/dist/capabilities/hono.js.map +1 -0
  27. package/dist/capabilities/index.d.ts +6 -0
  28. package/dist/capabilities/index.d.ts.map +1 -0
  29. package/dist/capabilities/index.js +3 -0
  30. package/dist/capabilities/index.js.map +1 -0
  31. package/dist/capabilities/lifecycle.d.ts +17 -0
  32. package/dist/capabilities/lifecycle.d.ts.map +1 -0
  33. package/dist/capabilities/lifecycle.js +37 -0
  34. package/dist/capabilities/lifecycle.js.map +1 -0
  35. package/dist/capabilities/sleep.d.ts +4 -0
  36. package/dist/capabilities/sleep.d.ts.map +1 -0
  37. package/dist/capabilities/sleep.js +8 -0
  38. package/dist/capabilities/sleep.js.map +1 -0
  39. package/dist/envelope/batch.d.ts +3 -2
  40. package/dist/envelope/batch.d.ts.map +1 -1
  41. package/dist/envelope/batch.js +9 -3
  42. package/dist/envelope/batch.js.map +1 -1
  43. package/dist/envelope/http.d.ts +7 -6
  44. package/dist/envelope/http.d.ts.map +1 -1
  45. package/dist/envelope/http.js +17 -13
  46. package/dist/envelope/http.js.map +1 -1
  47. package/dist/envelope/ws.d.ts +6 -3
  48. package/dist/envelope/ws.d.ts.map +1 -1
  49. package/dist/envelope/ws.js +15 -9
  50. package/dist/envelope/ws.js.map +1 -1
  51. package/dist/index.d.ts +4 -3
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +3 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/invocation/dispatch.d.ts +32 -0
  56. package/dist/invocation/dispatch.d.ts.map +1 -0
  57. package/dist/invocation/dispatch.js +68 -0
  58. package/dist/invocation/dispatch.js.map +1 -0
  59. package/dist/invocation/dispatcher.d.ts +19 -0
  60. package/dist/invocation/dispatcher.d.ts.map +1 -0
  61. package/dist/invocation/dispatcher.js +9 -0
  62. package/dist/invocation/dispatcher.js.map +1 -0
  63. package/dist/invocation/index.d.ts +3 -0
  64. package/dist/invocation/index.d.ts.map +1 -0
  65. package/dist/invocation/index.js +3 -0
  66. package/dist/invocation/index.js.map +1 -0
  67. package/dist/routed/handler.d.ts +5 -3
  68. package/dist/routed/handler.d.ts.map +1 -1
  69. package/dist/routed/handler.js +11 -7
  70. package/dist/routed/handler.js.map +1 -1
  71. package/package.json +3 -3
@@ -6,11 +6,12 @@
6
6
  * collected into an array. Notifications are dropped from the response;
7
7
  * streams and binary results are rejected (those need their own connection).
8
8
  */
9
- import { KERNEL_ERROR_CODES, decodeKernelRequest, dispatch, encodeKernelError, encodeKernelRedirect, encodeKernelResponse, isBinaryResult, } from '@astrale-os/kernel-api';
9
+ import { KERNEL_ERROR_CODES, decodeKernelRequest, encodeKernelError, encodeKernelRedirect, encodeKernelResponse, isBinaryResult, } from '@astrale-os/kernel-api';
10
+ import { dispatchInvocation } from '../invocation/index.js';
10
11
  import { toBody } from '../render/index.js';
11
12
  import {} from './codec.js';
12
13
  import { extractCredential } from './credential.js';
13
- export async function handleBatch(raw, kernel, codecEntry, req, corsHeaders) {
14
+ export async function handleBatch(raw, dispatcher, codecEntry, req, corsHeaders, host) {
14
15
  if (raw.length === 0) {
15
16
  return errorResponse(codecEntry, { code: KERNEL_ERROR_CODES.INVALID_REQUEST, message: 'Empty batch' }, corsHeaders, 400);
16
17
  }
@@ -43,7 +44,12 @@ export async function handleBatch(raw, kernel, codecEntry, req, corsHeaders) {
43
44
  else {
44
45
  cred = auth.credential;
45
46
  }
46
- const res = await dispatch(request.method, request.params, cred, kernel, isAck ? { ack: true } : { id: request.id, isStream: false });
47
+ const res = await dispatchInvocation(dispatcher, {
48
+ path: request.method,
49
+ credential: cred,
50
+ params: request.params,
51
+ ...(request.self === undefined ? {} : { self: request.self }),
52
+ }, isAck ? { ack: true } : { id: request.id }, host);
47
53
  if (res.kind === 'ack')
48
54
  return;
49
55
  if (res.kind === 'stream') {
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../envelope/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../envelope/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,GACf,MAAM,wBAAwB,CAAA;AAK/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAmB,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAc,EACd,UAAsB,EACtB,UAAsB,EACtB,GAAY,EACZ,WAAmC,EACnC,IAAqB;IAErB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,aAAa,CAClB,UAAU,EACV,EAAE,IAAI,EAAE,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,EACpE,WAAW,EACX,GAAG,CACJ,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACzC,MAAM,OAAO,GAAuB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAElF,MAAM,OAAO,CAAC,GAAG,CACf,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,OAA+C,CAAA;QACnD,IAAI,CAAC;YACH,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE;gBACnC,IAAI,EAAE,kBAAkB,CAAC,eAAe;gBACxC,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB;aAC5D,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,KAAK,SAAS,CAAA;QACtC,IAAI,IAAY,CAAA;QAChB,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAA;QACtB,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE;gBACjD,IAAI,EAAE,kBAAkB,CAAC,YAAY;gBACrC,OAAO,EAAE,qCAAqC,IAAI,CAAC,MAAM,EAAE;aAC5D,CAAC,CAAA;YACF,OAAM;QACR,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,IAAI,CAAC,UAAU,CAAA;QACxB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAClC,UAAU,EACV;YACE,IAAI,EAAE,OAAO,CAAC,MAAM;YACpB,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;SAC9D,EACD,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAG,EAAE,EAC3C,IAAI,CACL,CAAA;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;YAAE,OAAM;QAC9B,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAG,EAAE;gBAC1C,IAAI,EAAE,kBAAkB,CAAC,eAAe;gBACxC,OAAO,EAAE,2CAA2C;aACrD,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;YAC1D,OAAM;QACR,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE;oBACrC,IAAI,EAAE,kBAAkB,CAAC,eAAe;oBACxC,OAAO,EAAE,+CAA+C;iBACzD,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACnD,OAAM;QACR,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;IACnD,CAAC,CAAC,CACH,CAAA;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAgB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;IAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;IAClE,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC9C,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACjC,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,UAAU,EAAE;KACnE,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,UAAsB,EACtB,KAAyB,EACzB,WAAmC,EACnC,UAAkB;IAElB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IACrE,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACjC,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,UAAU,EAAE;KACnE,CAAC,CAAA;AACJ,CAAC"}
@@ -6,12 +6,13 @@
6
6
  * Routes single requests, batches, acks, streams, and binary results.
7
7
  *
8
8
  * The dispatcher is built once with `(cors, options)` and then invoked per
9
- * request with `(req, kernel)`. Single-kernel servers wrap once at startup;
10
- * multi-instance servers reuse the same dispatcher across all kernels with
9
+ * request with `(req, dispatcher)`. Single-instance servers bind once at startup;
10
+ * multi-instance servers reuse the same HTTP handler across all dispatchers with
11
11
  * zero per-request allocation.
12
12
  */
13
- import type { KernelAPI } from '@astrale-os/kernel-api';
13
+ import type { CapabilityHost } from '../capabilities/index.js';
14
14
  import type { CorsConfig } from '../cors.js';
15
+ import type { Dispatcher } from '../invocation/index.js';
15
16
  export type KernelDispatcherOptions = {
16
17
  /**
17
18
  * Optional function to extract host placeholder values from the incoming
@@ -22,9 +23,9 @@ export type KernelDispatcherOptions = {
22
23
  };
23
24
  /**
24
25
  * Build a kernel-envelope HTTP dispatcher. Call once at startup; the returned
25
- * function takes `(req, kernel)` and produces a Response. The kernel argument
26
- * is supplied per request so a single dispatcher can serve many kernels
26
+ * function takes `(req, dispatcher)` and produces a Response. The dispatcher
27
+ * is supplied per request so a single HTTP handler can serve many instances
27
28
  * (multi-instance hosting).
28
29
  */
29
- export declare function createKernelDispatcher(cors: CorsConfig, options?: KernelDispatcherOptions): (req: Request, kernel: KernelAPI) => Promise<Response>;
30
+ export declare function createKernelDispatcher(cors: CorsConfig, options?: KernelDispatcherOptions): (req: Request, dispatcher: Dispatcher, host?: CapabilityHost) => Promise<Response>;
30
31
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../envelope/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiC,MAAM,wBAAwB,CAAA;AAatF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAU5C,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;CAC7D,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,uBAA4B,GACpC,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,CAyIxD"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../envelope/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAWxD,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;CAC7D,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,uBAA4B,GACpC,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,QAAQ,CAAC,CAwIpF"}
@@ -6,12 +6,13 @@
6
6
  * Routes single requests, batches, acks, streams, and binary results.
7
7
  *
8
8
  * The dispatcher is built once with `(cors, options)` and then invoked per
9
- * request with `(req, kernel)`. Single-kernel servers wrap once at startup;
10
- * multi-instance servers reuse the same dispatcher across all kernels with
9
+ * request with `(req, dispatcher)`. Single-instance servers bind once at startup;
10
+ * multi-instance servers reuse the same HTTP handler across all dispatchers with
11
11
  * zero per-request allocation.
12
12
  */
13
- import { KERNEL_ERROR_CODES, decodeKernelRequest, dispatch, encodeKernelError, encodeKernelRedirect, encodeKernelResponse, isBatch, isBinaryResult, } from '@astrale-os/kernel-api';
13
+ import { KERNEL_ERROR_CODES, decodeKernelRequest, encodeKernelError, encodeKernelRedirect, encodeKernelResponse, isBatch, isBinaryResult, } from '@astrale-os/kernel-api';
14
14
  import { buildCorsHeaders } from '../cors.js';
15
+ import { dispatchInvocation } from '../invocation/index.js';
15
16
  import { buildBinaryResponse, toBody } from '../render/index.js';
16
17
  import { handleBatch } from './batch.js';
17
18
  import { resolveRequestCodec, resolveResponseCodec } from './codec.js';
@@ -19,14 +20,14 @@ import { extractCredential } from './credential.js';
19
20
  import { buildKernelStreamResponse } from './sse.js';
20
21
  /**
21
22
  * Build a kernel-envelope HTTP dispatcher. Call once at startup; the returned
22
- * function takes `(req, kernel)` and produces a Response. The kernel argument
23
- * is supplied per request so a single dispatcher can serve many kernels
23
+ * function takes `(req, dispatcher)` and produces a Response. The dispatcher
24
+ * is supplied per request so a single HTTP handler can serve many instances
24
25
  * (multi-instance hosting).
25
26
  */
26
27
  export function createKernelDispatcher(cors, options = {}) {
27
28
  const corsHeaders = buildCorsHeaders(cors);
28
29
  const hostParamsFn = options.hostParams;
29
- return async (req, kernel) => {
30
+ return async (req, dispatcher, host) => {
30
31
  if (req.method === 'OPTIONS') {
31
32
  return new Response(null, { status: 204, headers: corsHeaders });
32
33
  }
@@ -51,7 +52,7 @@ export function createKernelDispatcher(cors, options = {}) {
51
52
  const responseCodec = resolveResponseCodec(req.headers.get('accept'), requestCodec);
52
53
  // 4. Batch?
53
54
  if (isBatch(raw)) {
54
- return handleBatch(raw, kernel, responseCodec, req, corsHeaders);
55
+ return handleBatch(raw, dispatcher, responseCodec, req, corsHeaders, host);
55
56
  }
56
57
  // 5. Decode envelope
57
58
  let request;
@@ -86,16 +87,19 @@ export function createKernelDispatcher(cors, options = {}) {
86
87
  }
87
88
  cred = auth.credential;
88
89
  }
89
- // 7. Stream detection: Accept: text/event-stream OR top-level stream:true
90
- const isStream = request.stream === true || req.headers.get('accept')?.includes('text/event-stream') === true;
91
- // 8. Dispatch — host params merged at lowest priority (body wins).
90
+ // 7. Dispatch — host params merged at lowest priority (body wins).
92
91
  const mergedParams = {
93
92
  ...hostParams,
94
- ...(request.params ?? {}),
93
+ ...request.params,
95
94
  };
96
95
  const isAck = request.id === undefined;
97
- const result = await dispatch(request.method, mergedParams, cred, kernel, isAck ? { ack: true } : { id: request.id, isStream }, request.self);
98
- // 9. Render result
96
+ const result = await dispatchInvocation(dispatcher, {
97
+ path: request.method,
98
+ credential: cred,
99
+ params: mergedParams,
100
+ ...(request.self === undefined ? {} : { self: request.self }),
101
+ }, isAck ? { ack: true } : { id: request.id }, host);
102
+ // 8. Render result
99
103
  switch (result.kind) {
100
104
  case 'ack':
101
105
  return new Response(null, { status: 204, headers: corsHeaders });
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../envelope/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../envelope/http.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,9 @@
10
10
  * delivered as a single stream chunk + end frame; ReadableStream bodies are
11
11
  * marked TODO and rejected with INTERNAL_ERROR for now.
12
12
  */
13
- import type { Codec, KernelAPI } from '@astrale-os/kernel-api';
13
+ import type { Codec } from '@astrale-os/kernel-api';
14
+ import type { CapabilityHost } from '../capabilities/index.js';
15
+ import type { Dispatcher } from '../invocation/index.js';
14
16
  export interface WebSocketLike {
15
17
  send(data: string | Uint8Array): void;
16
18
  close(code?: number, reason?: string): void;
@@ -19,8 +21,9 @@ export interface WebSocketLike {
19
21
  export declare class KernelWsConnection {
20
22
  private readonly ws;
21
23
  private readonly codec;
22
- private readonly kernel;
23
- constructor(ws: WebSocketLike, codec: Codec, kernel: KernelAPI);
24
+ private readonly dispatcher;
25
+ private readonly host?;
26
+ constructor(ws: WebSocketLike, codec: Codec, dispatcher: Dispatcher, host?: CapabilityHost | undefined);
24
27
  start(): void;
25
28
  handleMessage(data: string | ArrayBuffer | Uint8Array): void;
26
29
  private processMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../envelope/ws.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAiC,MAAM,wBAAwB,CAAA;AAkB7F,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAA;IACrC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAMD,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,YACmB,EAAE,EAAE,aAAa,EACjB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,SAAS,EAChC;IAEJ,KAAK,IAAI,IAAI,CAEZ;IAED,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,CAK3D;YAEa,cAAc;YA4Fd,UAAU;IAcxB,OAAO,CAAC,SAAS;IAKjB,WAAW,IAAI,IAAI,CAElB;IAED,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAG9B;CACF"}
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../envelope/ws.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAiC,MAAM,wBAAwB,CAAA;AAelF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAMxD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAA;IACrC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAMD,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAJxB,YACmB,EAAE,EAAE,aAAa,EACjB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,IAAI,CAAC,EAAE,cAAc,YAAA,EACpC;IAEJ,KAAK,IAAI,IAAI,CAEZ;IAED,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,CAK3D;YAEa,cAAc;YA6Fd,UAAU;IAcxB,OAAO,CAAC,SAAS;IAKjB,WAAW,IAAI,IAAI,CAElB;IAED,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAG9B;CACF"}
@@ -10,17 +10,20 @@
10
10
  * delivered as a single stream chunk + end frame; ReadableStream bodies are
11
11
  * marked TODO and rejected with INTERNAL_ERROR for now.
12
12
  */
13
- import { KERNEL_ERROR_CODES, classifyError, decodeKernelRequest, dispatch, encodeKernelError, encodeKernelRedirect, encodeKernelResponse, encodeStreamChunk, encodeStreamEnd, encodeStreamError, isBinaryResult, } from '@astrale-os/kernel-api';
13
+ import { KERNEL_ERROR_CODES, classifyError, decodeKernelRequest, encodeKernelError, encodeKernelRedirect, encodeKernelResponse, encodeStreamChunk, encodeStreamEnd, encodeStreamError, isBinaryResult, } from '@astrale-os/kernel-api';
14
+ import { dispatchInvocation } from '../invocation/index.js';
14
15
  const WS_OPEN = 1;
15
16
  // ─── Connection ─────────────────────────────────────────────────────────────
16
17
  export class KernelWsConnection {
17
18
  ws;
18
19
  codec;
19
- kernel;
20
- constructor(ws, codec, kernel) {
20
+ dispatcher;
21
+ host;
22
+ constructor(ws, codec, dispatcher, host) {
21
23
  this.ws = ws;
22
24
  this.codec = codec;
23
- this.kernel = kernel;
25
+ this.dispatcher = dispatcher;
26
+ this.host = host;
24
27
  }
25
28
  start() {
26
29
  /* no-op — protocol-level ping handled by transport */
@@ -59,12 +62,15 @@ export class KernelWsConnection {
59
62
  }
60
63
  // 3. Credential — fixed `creds` top-level field on each frame.
61
64
  const cred = request.creds ?? '';
62
- // 4. Stream detection — top-level `stream` flag.
63
- const isStream = request.stream === true;
64
- // 5. Dispatch
65
+ // 4. Dispatch
65
66
  const isAck = request.id === undefined;
66
- const result = await dispatch(request.method, request.params, cred, this.kernel, isAck ? { ack: true } : { id: request.id, isStream });
67
- // 6. Send result
67
+ const result = await dispatchInvocation(this.dispatcher, {
68
+ path: request.method,
69
+ credential: cred,
70
+ params: request.params,
71
+ ...(request.self === undefined ? {} : { self: request.self }),
72
+ }, isAck ? { ack: true } : { id: request.id }, this.host);
73
+ // 5. Send result
68
74
  switch (result.kind) {
69
75
  case 'ack':
70
76
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../envelope/ws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../envelope/ws.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  export { createKernelApp, type KernelAppConfig, type WsAdapter } from './app/create.js';
2
- export { createMultiplexedKernelApp, type MultiplexedKernelAppConfig, type KernelResolver, } from './app/multiplexed.js';
2
+ export { createMultiplexedKernelApp, type MultiplexedKernelAppConfig, type DispatcherResolver, } from './app/multiplexed.js';
3
3
  export { walkDomain, type ServerHost, type MountedFunction, type MountedRoute, type MountPlan, } from './plan/index.js';
4
4
  export { buildCorsHeaders, type CorsConfig } from './cors.js';
5
5
  export { createKernelDispatcher, type KernelDispatcherOptions } from './envelope/http.js';
6
6
  export { KernelWsConnection, type WebSocketLike } from './envelope/ws.js';
7
+ export { createCapabilityLifecycle, honoCapabilityHost, type CapabilityHost, type CapabilityLifecycle, type Defer, type DeferredTask, type Capabilities, type Sleep, } from './capabilities/index.js';
8
+ export { dispatchInvocation, executeInvocation, kernelDispatcher, type Invocation, type InvocationPath, type InvocationReply, type InvocationResponse, type Dispatcher, } from './invocation/index.js';
7
9
  export { createRouteHandler, type RouteHandlerConfig } from './routed/index.js';
8
10
  export { mountJwks, mountInstanceJwks, mountIssuerRegistry, mountInstanceIssuerRegistry, type JwksKeys, type MultiplexedJwks, type JwksConfig, type InstanceJwksConfig, type IssuerRegistryConfig, type InstanceIssuerRegistryConfig, } from './jwks/index.js';
9
- export { dispatch, classifyError } from '@astrale-os/kernel-api';
10
- export type { DispatchResponse, DispatchOptions } from '@astrale-os/kernel-api';
11
+ export { classifyError } from '@astrale-os/kernel-api';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACvF,OAAO,EACL,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EACL,UAAU,EACV,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,SAAS,GACf,MAAM,iBAAiB,CAAA;AAIxB,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAA;AAI7D,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AACzF,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAIzE,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAI/E,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,GAClC,MAAM,iBAAiB,CAAA;AAIxB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACvF,OAAO,EACL,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EACL,UAAU,EACV,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,SAAS,GACf,MAAM,iBAAiB,CAAA;AAIxB,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAA;AAI7D,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AACzF,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,KAAK,GACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,UAAU,GAChB,MAAM,uBAAuB,CAAA;AAI9B,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAI/E,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,GAClC,MAAM,iBAAiB,CAAA;AAIxB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA"}
package/dist/index.js CHANGED
@@ -8,10 +8,12 @@ export { buildCorsHeaders } from './cors.js';
8
8
  // ─── Kernel envelope dispatcher ──────────────────────────────────────────────
9
9
  export { createKernelDispatcher } from './envelope/http.js';
10
10
  export { KernelWsConnection } from './envelope/ws.js';
11
+ export { createCapabilityLifecycle, honoCapabilityHost, } from './capabilities/index.js';
12
+ export { dispatchInvocation, executeInvocation, kernelDispatcher, } from './invocation/index.js';
11
13
  // ─── Routed HTTP handler (per-route) ─────────────────────────────────────────
12
14
  export { createRouteHandler } from './routed/index.js';
13
15
  // ─── JWKS (OIDC Discovery + JSON Web Key Set) ───────────────────────────────
14
16
  export { mountJwks, mountInstanceJwks, mountIssuerRegistry, mountInstanceIssuerRegistry, } from './jwks/index.js';
15
17
  // ─── Dispatch (for custom integrations) ──────────────────────────────────────
16
- export { dispatch, classifyError } from '@astrale-os/kernel-api';
18
+ export { classifyError } from '@astrale-os/kernel-api';
17
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAAE,eAAe,EAAwC,MAAM,iBAAiB,CAAA;AACvF,OAAO,EACL,0BAA0B,GAG3B,MAAM,sBAAsB,CAAA;AAE7B,gFAAgF;AAEhF,OAAO,EACL,UAAU,GAKX,MAAM,iBAAiB,CAAA;AAExB,gFAAgF;AAEhF,OAAO,EAAE,gBAAgB,EAAmB,MAAM,WAAW,CAAA;AAE7D,gFAAgF;AAEhF,OAAO,EAAE,sBAAsB,EAAgC,MAAM,oBAAoB,CAAA;AACzF,OAAO,EAAE,kBAAkB,EAAsB,MAAM,kBAAkB,CAAA;AAEzE,gFAAgF;AAEhF,OAAO,EAAE,kBAAkB,EAA2B,MAAM,mBAAmB,CAAA;AAE/E,+EAA+E;AAE/E,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,GAO5B,MAAM,iBAAiB,CAAA;AAExB,gFAAgF;AAEhF,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAAE,eAAe,EAAwC,MAAM,iBAAiB,CAAA;AACvF,OAAO,EACL,0BAA0B,GAG3B,MAAM,sBAAsB,CAAA;AAE7B,gFAAgF;AAEhF,OAAO,EACL,UAAU,GAKX,MAAM,iBAAiB,CAAA;AAExB,gFAAgF;AAEhF,OAAO,EAAE,gBAAgB,EAAmB,MAAM,WAAW,CAAA;AAE7D,gFAAgF;AAEhF,OAAO,EAAE,sBAAsB,EAAgC,MAAM,oBAAoB,CAAA;AACzF,OAAO,EAAE,kBAAkB,EAAsB,MAAM,kBAAkB,CAAA;AACzE,OAAO,EACL,yBAAyB,EACzB,kBAAkB,GAOnB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GAMjB,MAAM,uBAAuB,CAAA;AAE9B,gFAAgF;AAEhF,OAAO,EAAE,kBAAkB,EAA2B,MAAM,mBAAmB,CAAA;AAE/E,+EAA+E;AAE/E,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,GAO5B,MAAM,iBAAiB,CAAA;AAExB,gFAAgF;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,32 @@
1
+ import type { CallRedirection, DispatchResult, KernelErrorPayload, RequestId } from '@astrale-os/kernel-api';
2
+ import type { CapabilityHost } from '../capabilities/index.js';
3
+ import type { Invocation, Dispatcher } from './dispatcher.js';
4
+ export type InvocationResponse = {
5
+ kind: 'success';
6
+ id: RequestId;
7
+ data: unknown;
8
+ } | {
9
+ kind: 'error';
10
+ id: RequestId;
11
+ error: KernelErrorPayload;
12
+ } | {
13
+ kind: 'stream';
14
+ id: RequestId;
15
+ generator: AsyncGenerator<unknown>;
16
+ } | {
17
+ kind: 'redirect';
18
+ id: RequestId;
19
+ redirection: CallRedirection;
20
+ } | {
21
+ kind: 'ack';
22
+ };
23
+ export type InvocationReply = {
24
+ ack: true;
25
+ } | {
26
+ id: RequestId;
27
+ };
28
+ /** Execute one invocation with unconditional, host-adapted capabilities. */
29
+ export declare function executeInvocation(dispatcher: Dispatcher, invocation: Invocation, host?: CapabilityHost): Promise<DispatchResult>;
30
+ /** Add request correlation, acknowledgement, and error classification. */
31
+ export declare function dispatchInvocation(dispatcher: Dispatcher, invocation: Invocation, reply: InvocationReply, host?: CapabilityHost): Promise<InvocationResponse>;
32
+ //# sourceMappingURL=dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../invocation/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,SAAS,EACV,MAAM,wBAAwB,CAAA;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI7D,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,eAAe,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAA;AAEnB,MAAM,MAAM,eAAe,GAAG;IAAE,GAAG,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,SAAS,CAAA;CAAE,CAAA;AAE/D,4EAA4E;AAC5E,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,cAAc,CAAC,CAgBzB;AAED,0EAA0E;AAC1E,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,eAAe,EACtB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,kBAAkB,CAAC,CA+B7B"}
@@ -0,0 +1,68 @@
1
+ import { classifyError } from '@astrale-os/kernel-api';
2
+ import { createCapabilityLifecycle } from '../capabilities/index.js';
3
+ /** Execute one invocation with unconditional, host-adapted capabilities. */
4
+ export async function executeInvocation(dispatcher, invocation, host) {
5
+ const lifecycle = createCapabilityLifecycle(host);
6
+ try {
7
+ const result = await dispatcher.invoke(invocation, lifecycle.capabilities);
8
+ if (result.kind === 'stream') {
9
+ return {
10
+ kind: 'stream',
11
+ generator: settleStream(result.generator, lifecycle.settle),
12
+ };
13
+ }
14
+ await lifecycle.settle();
15
+ return result;
16
+ }
17
+ catch (error) {
18
+ await lifecycle.settle();
19
+ throw error;
20
+ }
21
+ }
22
+ /** Add request correlation, acknowledgement, and error classification. */
23
+ export async function dispatchInvocation(dispatcher, invocation, reply, host) {
24
+ if ('ack' in reply) {
25
+ const lifecycle = createCapabilityLifecycle(host);
26
+ const background = Promise.resolve().then(async () => {
27
+ try {
28
+ await dispatcher.invoke(invocation, lifecycle.capabilities);
29
+ }
30
+ catch (error) {
31
+ // There is no response channel for acknowledged invocations.
32
+ // oxlint-disable-next-line no-console
33
+ console.error(`[invocation] Ack-mode error (${pathToString(invocation.path)}):`, error);
34
+ }
35
+ finally {
36
+ await lifecycle.settle();
37
+ }
38
+ });
39
+ host?.register(background);
40
+ return { kind: 'ack' };
41
+ }
42
+ try {
43
+ const result = await executeInvocation(dispatcher, invocation, host);
44
+ switch (result.kind) {
45
+ case 'value':
46
+ return { kind: 'success', id: reply.id, data: result.value };
47
+ case 'stream':
48
+ return { kind: 'stream', id: reply.id, generator: result.generator };
49
+ case 'redirect':
50
+ return { kind: 'redirect', id: reply.id, redirection: result.redirection };
51
+ }
52
+ }
53
+ catch (error) {
54
+ return { kind: 'error', id: reply.id, error: classifyError(error) };
55
+ }
56
+ }
57
+ async function* settleStream(generator, settle) {
58
+ try {
59
+ yield* generator;
60
+ }
61
+ finally {
62
+ await settle();
63
+ }
64
+ }
65
+ function pathToString(path) {
66
+ return typeof path === 'string' ? path : path.raw;
67
+ }
68
+ //# sourceMappingURL=dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../invocation/dispatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { DispatchResult, KernelAPI } from '@astrale-os/kernel-api';
2
+ import type { CredentialInput, Path } from '@astrale-os/kernel-core';
3
+ import type { Capabilities } from '../capabilities/index.js';
4
+ /** Accepts canonical strings and any Path implementation exposing its raw form. */
5
+ export type InvocationPath = string | Pick<Path, 'raw'>;
6
+ /** A transport-neutral call entering a hosted Astrale dispatcher. */
7
+ export type Invocation = {
8
+ path: InvocationPath;
9
+ credential: CredentialInput;
10
+ params: unknown;
11
+ self?: string;
12
+ };
13
+ /** The sole invocation contract required by kernel-server transports. */
14
+ export type Dispatcher = {
15
+ invoke(invocation: Invocation, caps: Capabilities): Promise<DispatchResult>;
16
+ };
17
+ /** Adapt a canonical kernel dispatcher to the narrower hosting contract. */
18
+ export declare function kernelDispatcher(kernel: Pick<KernelAPI, 'dispatch'>): Dispatcher;
19
+ //# sourceMappingURL=dispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../invocation/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAEvD,qEAAqE;AACrE,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,cAAc,CAAA;IACpB,UAAU,EAAE,eAAe,CAAA;IAC3B,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,yEAAyE;AACzE,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAC5E,CAAA;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,UAAU,CAMhF"}
@@ -0,0 +1,9 @@
1
+ /** Adapt a canonical kernel dispatcher to the narrower hosting contract. */
2
+ export function kernelDispatcher(kernel) {
3
+ return {
4
+ invoke({ path, credential, params, self }) {
5
+ return kernel.dispatch(typeof path === 'string' ? path : path.raw, credential, params, self);
6
+ },
7
+ };
8
+ }
9
+ //# sourceMappingURL=dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../invocation/dispatcher.ts"],"names":[],"mappings":"AAqBA,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,MAAmC;IAClE,OAAO;QACL,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;YACvC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAC9F,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { dispatchInvocation, executeInvocation, type InvocationReply, type InvocationResponse, } from './dispatch.js';
2
+ export { kernelDispatcher, type Invocation, type InvocationPath, type Dispatcher, } from './dispatcher.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../invocation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { dispatchInvocation, executeInvocation, } from './dispatch.js';
2
+ export { kernelDispatcher, } from './dispatcher.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../invocation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAGlB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,gBAAgB,GAIjB,MAAM,iBAAiB,CAAA"}
@@ -11,14 +11,16 @@
11
11
  * for consistency with kernel HTTP. The HTTP status comes from the error code
12
12
  * table (`kernelErrorHttpStatus`).
13
13
  */
14
- import type { KernelAPI, RouteBinding } from '@astrale-os/kernel-api';
14
+ import type { RouteBinding } from '@astrale-os/kernel-api';
15
15
  import type { AuthPolicy } from '@astrale-os/kernel-api/routed';
16
+ import type { CapabilityHost } from '../capabilities/index.js';
16
17
  import type { CorsConfig } from '../cors.js';
18
+ import type { Dispatcher } from '../invocation/index.js';
17
19
  export type RouteHandlerConfig = {
18
20
  /** The full kernel method name to dispatch (e.g. `Task.read`). */
19
21
  method: string;
20
22
  route: RouteBinding;
21
- kernel: KernelAPI;
23
+ dispatcher: Dispatcher;
22
24
  cors: CorsConfig;
23
25
  /**
24
26
  * Optional host placeholder extractor — returned values are merged into
@@ -32,5 +34,5 @@ export type RouteHandlerConfig = {
32
34
  /**
33
35
  * Build a Hono-compatible handler for a single route binding.
34
36
  */
35
- export declare function createRouteHandler(config: RouteHandlerConfig): (req: Request, pathParams: Record<string, string>) => Promise<Response>;
37
+ export declare function createRouteHandler(config: RouteHandlerConfig): (req: Request, pathParams: Record<string, string>, host?: CapabilityHost) => Promise<Response>;
36
38
  //# sourceMappingURL=handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../routed/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiC,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAU/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AA0B5C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,UAAU,CAAA;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC5D,kFAAkF;IAClF,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,GACzB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAuGzE"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../routed/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAiC,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAS/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AA2BxD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;IACnB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,UAAU,CAAA;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC5D,kFAAkF;IAClF,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,GACzB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,QAAQ,CAAC,CAuGhG"}
@@ -11,8 +11,9 @@
11
11
  * for consistency with kernel HTTP. The HTTP status comes from the error code
12
12
  * table (`kernelErrorHttpStatus`).
13
13
  */
14
- import { KERNEL_ERROR_CODES, dispatch, isBinaryResult, jsonCodec, kernelErrorHttpStatus, } from '@astrale-os/kernel-api';
14
+ import { KERNEL_ERROR_CODES, isBinaryResult, jsonCodec, kernelErrorHttpStatus, } from '@astrale-os/kernel-api';
15
15
  import { buildCorsHeaders } from '../cors.js';
16
+ import { dispatchInvocation } from '../invocation/index.js';
16
17
  import { buildBinaryResponse, toBody } from '../render/index.js';
17
18
  import { readCredential } from './credential.js';
18
19
  import { decodeRouteRequest } from './params.js';
@@ -36,7 +37,7 @@ function errorResponse(error, corsHeaders) {
36
37
  export function createRouteHandler(config) {
37
38
  const corsHeaders = buildCorsHeaders(config.cors);
38
39
  const hostParamsFn = config.hostParams;
39
- return async (req, pathParams) => {
40
+ return async (req, pathParams, host) => {
40
41
  if (req.method === 'OPTIONS') {
41
42
  return new Response(null, { status: 204, headers: corsHeaders });
42
43
  }
@@ -74,12 +75,15 @@ export function createRouteHandler(config) {
74
75
  // Configurable via route.credential. Defaults to Authorization header.
75
76
  const credSource = config.route.credential ?? { in: 'header', name: 'authorization' };
76
77
  const credential = readCredential(req, credSource);
77
- // 3. Stream detection (Accept header opt-in)
78
- const isStream = req.headers.get('accept')?.includes('text/event-stream') === true;
79
- // 4. Dispatch
78
+ // 3. Dispatch
80
79
  const requestId = crypto.randomUUID();
81
- const result = await dispatch(config.method, params, credential, config.kernel, { id: requestId, isStream }, decoded.self);
82
- // 5. Render
80
+ const result = await dispatchInvocation(config.dispatcher, {
81
+ path: config.method,
82
+ credential,
83
+ params,
84
+ ...(decoded.self === undefined ? {} : { self: decoded.self }),
85
+ }, { id: requestId }, host);
86
+ // 4. Render
83
87
  switch (result.kind) {
84
88
  case 'ack':
85
89
  return new Response(null, { status: 204, headers: corsHeaders });
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../routed/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../routed/handler.ts"],"names":[],"mappings":"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"}