@substrat-run/vertical-host 0.118.0 → 0.119.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,14 +41,57 @@
41
41
  *
42
42
  * Rate limiting the exchange is the neighbouring control and is not here (#130). With 256
43
43
  * bits of entropy a secret cannot be guessed; what a limit would bound is load.
44
+ *
45
+ * **One browser holds several links (#1686).** Each exchange sets a cookie of its own,
46
+ * `sb_capability_<capabilityId>`, so opening a second link no longer drops the first. A page
47
+ * holding several says which one a call acts as — the `capabilityId` the exchange answered
48
+ * with — in the `X-Substrat-Capability` header, or as `?capability=<id>` on a plain link (a
49
+ * download `<a href>` cannot set a header). The name only SELECTS: the session behind it is
50
+ * resolved by the host to its own capability row, so a session for share A acts within A's
51
+ * narrowing whatever it is called, and nothing ever falls back from one session to another.
52
+ * See `capabilitySessionOf` for the selection rule and `CAPABILITY_SESSIONS_MAX` for the cap.
44
53
  */
45
54
  import type { Context, Env, Hono } from 'hono';
46
- import { type ScopeId, type TenantId } from '@substrat-run/contracts';
47
- import type { ScopeHost, ScopeStub, ScopeStubOptions } from '@substrat-run/kernel';
48
- /** The cookie a capability session rides in. Named beside oidc-rp's `sb_session`. */
55
+ import { type PrincipalId, type ScopeId, type TenantId } from '@substrat-run/contracts';
56
+ import type { ScopeAttachments, ScopeHost, ScopeStub, ScopeStubOptions } from '@substrat-run/kernel';
57
+ /**
58
+ * The cookie a capability session rides in. Named beside oidc-rp's `sb_session`.
59
+ *
60
+ * Since #1686 this is a PREFIX: an exchange sets `sb_capability_<capabilityId>`, one cookie
61
+ * per link. A bare `sb_capability` cookie is the one-link format set before that, and is
62
+ * still read (see `capabilitySessionOf`), so a browser that exchanged before the deploy keeps
63
+ * working without opening its link again; the next exchange deletes it.
64
+ */
49
65
  export declare const CAPABILITY_COOKIE = "sb_capability";
66
+ /**
67
+ * The request header naming which of a browser's capability sessions a call acts as — the
68
+ * `capabilityId` the exchange answered with. `?capability=<id>` says the same on a plain link.
69
+ */
70
+ export declare const CAPABILITY_HEADER = "x-substrat-capability";
71
+ /** The query-string twin of `CAPABILITY_HEADER`, for a link a browser follows unaided. */
72
+ export declare const CAPABILITY_QUERY = "capability";
73
+ /**
74
+ * The most capability sessions one browser holds for one vertical host. An exchange beyond
75
+ * it evicts the OLDEST (by when it was exchanged): that cookie is deleted, a call naming its
76
+ * capability is then refused exactly as a revoked link is (`unauthenticated`), and opening
77
+ * the link again re-exchanges it if it has uses left. The session row itself is not revoked
78
+ * — the browser no longer holds its token, and the row lapses at its own expiry (≤24 h).
79
+ *
80
+ * Why 8, and why a cookie each rather than one cookie holding a set: a cookie is
81
+ * `sb_capability_` + a 26-character id + a ~60-character value — under 100 bytes — so eight
82
+ * are well under 1 KB of `Cookie` header, far from the 4 KB-per-cookie and ~50-per-domain
83
+ * floors RFC 6265 asks browsers to support, with room beside the sign-in session. One cookie
84
+ * per link keeps every attribute (`HttpOnly`, `Secure`, `SameSite=Lax`, `Path=/`) exactly as
85
+ * the one-link cookie had them, lets each expire at its OWN session's end rather than the
86
+ * longest one's, and — the deciding reason — needs no read-modify-write: two links opened at
87
+ * once in two tabs each set their own cookie, where a shared set would be rewritten by
88
+ * whichever response landed last and silently lose the other, the bug this replaces.
89
+ */
90
+ export declare const CAPABILITY_SESSIONS_MAX = 8;
50
91
  /** Where `mountCapabilityExchange` listens unless told otherwise. */
51
92
  export declare const CAPABILITY_EXCHANGE_PATH = "/api/capability/exchange";
93
+ /** Where `mountLinkShareDownload` listens unless told otherwise (#1686). */
94
+ export declare const LINK_SHARE_DOWNLOAD_PATH = "/api/capability/attachments/:attachmentId";
52
95
  type Awaitable<T> = T | Promise<T>;
53
96
  /** The scope a request is for — the router-asserted (tenant, scope) the vertical already resolves. */
54
97
  export interface CapabilityNode {
@@ -73,7 +116,40 @@ export interface CapabilityExchangeOptions<E extends Env = Env> {
73
116
  * and for a `become` secret, all alike. 400 (`validation_failed`) without a JSON content type.
74
117
  */
75
118
  export declare function mountCapabilityExchange<E extends Env>(app: Hono<E>, options: CapabilityExchangeOptions<E>): void;
76
- /** The capability session this request carries, or `undefined`. */
119
+ /** One of the capability sessions a browser holds (#1686) — the id is the cookie's name. */
120
+ export interface HeldCapabilitySession {
121
+ capabilityId: string;
122
+ /** When this browser exchanged it (epoch ms), from the cookie's value — the eviction order. */
123
+ exchangedAt: number;
124
+ sessionToken: string;
125
+ }
126
+ /**
127
+ * Every per-link capability session this request carries, OLDEST first — the order an
128
+ * exchange evicts in. The one-link `sb_capability` cookie is not among them: it names no
129
+ * capability, so nothing can select it by name (see `capabilitySessionOf`).
130
+ */
131
+ export declare function capabilitySessionsOf(c: Context, cookieName?: string): HeldCapabilitySession[];
132
+ /**
133
+ * The capability this request NAMES — `X-Substrat-Capability`, or `?capability=` — or
134
+ * `undefined` when it names none. Both, disagreeing, is refused rather than picked between.
135
+ */
136
+ export declare function namedCapabilityOf(c: Context): string | undefined;
137
+ /**
138
+ * The capability session this request acts through, or `undefined` when it carries none.
139
+ *
140
+ * Deterministic, and never a search (#1686):
141
+ * - **The request names a capability** (`namedCapabilityOf`): that capability's own cookie,
142
+ * and nothing else. A name this browser holds no session for — never exchanged here,
143
+ * evicted, cleared, or not an id at all — THROWS `unauthenticated`, the refusal a revoked
144
+ * link gets. It never falls back to another session, nor to the one-link cookie (which
145
+ * names no capability, so cannot be shown to be the named one), nor to the signed-in
146
+ * principal: trying the next credential until one is allowed would turn a share someone
147
+ * was sent into ambient authority over every share the browser holds.
148
+ * - **It names none**: the most recently exchanged session, else the one-link
149
+ * `sb_capability` cookie — exactly what the single cookie held before #1686, where each
150
+ * exchange replaced the last. So a page that names nothing behaves as it always did, and
151
+ * a browser holding only a pre-#1686 cookie keeps working with no re-exchange.
152
+ */
77
153
  export declare function capabilitySessionOf(c: Context, cookieName?: string): string | undefined;
78
154
  /**
79
155
  * The stub a request's capability session acts through, or `undefined` when it carries
@@ -105,7 +181,75 @@ export declare function capabilityStubOf(c: Context, host: Pick<ScopeHost, 'getC
105
181
  export declare function linkShareStub(c: Context, host: Pick<ScopeHost, 'getCapabilityScope'>, node: CapabilityNode, principal: () => Awaitable<ScopeStub | undefined>, options?: ScopeStubOptions & {
106
182
  cookieName?: string;
107
183
  }): Promise<ScopeStub | undefined>;
108
- /** Forget this browser's capability session — so a signed-in visitor acts as themselves again. */
109
- export declare function clearCapabilitySession(c: Context, cookieName?: string): void;
184
+ export interface ClearCapabilitySessionOptions {
185
+ /** The one link to forget. Defaults to the one the request names (`namedCapabilityOf`). */
186
+ capabilityId?: string;
187
+ /** Defaults to `CAPABILITY_COOKIE`. */
188
+ cookieName?: string;
189
+ }
190
+ /**
191
+ * Forget a capability session.
192
+ *
193
+ * With a capability named — `options.capabilityId`, else the request's
194
+ * `X-Substrat-Capability` / `?capability=` — exactly that link's session is forgotten and
195
+ * every other link this browser holds stays open. With none named, every capability session
196
+ * is forgotten, the one-link cookie included, so a signed-in visitor acts as themselves again
197
+ * — what this did when a browser could hold only one. A string argument is the cookie name,
198
+ * as before #1686.
199
+ */
200
+ export declare function clearCapabilitySession(c: Context, options?: string | ClearCapabilitySessionOptions): void;
201
+ /**
202
+ * The attachment surface a LINK-SHARE route reads through: **the capability first, then the
203
+ * principal** — `linkShareStub`'s precedence, for files. With the capability cookie present
204
+ * the surface is the host's `getCapabilityAttachments`: every read checked as the
205
+ * capability (its keys, its subtree, its minter's authority now), every write refused. With
206
+ * no cookie, `principal` decides, and a signed-in visitor reads as themselves.
207
+ *
208
+ * A host without `getCapabilityAttachments` (it is optional on `ScopeHost`) REFUSES a
209
+ * request carrying the cookie rather than falling back to the principal: the precedence is
210
+ * what a link-share route promises, and quietly answering as someone else would break it.
211
+ */
212
+ export declare function linkShareAttachments(c: Context, host: Pick<ScopeHost, 'getCapabilityAttachments' | 'attachments'>, node: CapabilityNode, principal: () => Awaitable<PrincipalId | undefined>, options?: {
213
+ cookieName?: string;
214
+ }): Promise<ScopeAttachments | undefined>;
215
+ export interface LinkShareDownloadOptions<E extends Env = Env> {
216
+ /** The host serving the scope — any host with the two attachment doors. */
217
+ host: (c: Context<E>) => Awaitable<Pick<ScopeHost, 'getCapabilityAttachments' | 'attachments'>>;
218
+ /** Which scope this request is for. */
219
+ node: (c: Context<E>) => Awaitable<CapabilityNode>;
220
+ /** The signed-in principal, for a request carrying no capability. Omitted: links only. */
221
+ principal?: (c: Context<E>) => Awaitable<PrincipalId | undefined>;
222
+ /** Defaults to `LINK_SHARE_DOWNLOAD_PATH`; must carry an `:attachmentId` parameter. */
223
+ path?: string;
224
+ /** Defaults to `CAPABILITY_COOKIE`. */
225
+ cookieName?: string;
226
+ }
227
+ /**
228
+ * `Content-Disposition` for a stored filename: always `attachment`, so the browser saves
229
+ * the file rather than rendering it on this origin, with an ASCII fallback (quotes,
230
+ * backslashes, control and non-ASCII characters replaced) and the exact name as RFC 5987
231
+ * `filename*`. The filename is the uploader's text, so nothing of it reaches the header raw.
232
+ */
233
+ export declare function attachmentDisposition(filename: string): string;
234
+ /**
235
+ * Mount `GET <path>`: download one attachment through `linkShareAttachments` — the file a
236
+ * link share of its folder or document reaches, or, with no capability cookie, one the
237
+ * signed-in visitor may read themselves.
238
+ *
239
+ * 200 with the bytes; 404 for an id the scope does not know; 403 for a file outside the
240
+ * capability's subtree, or one its minter can no longer read (recorded in the denial log
241
+ * against the capability); 401 for a revoked or expired link, or no session at all.
242
+ *
243
+ * **Nothing about the response may leak.** `Cache-Control: private, no-store` — a shared
244
+ * cache must never hold a private file, and neither should the browser's once the link is
245
+ * gone — plus `Referrer-Policy: no-referrer`, `X-Content-Type-Options: nosniff`, and a
246
+ * `sandbox` CSP, so a file that is secretly HTML cannot run as this origin even if opened
247
+ * directly. `Content-Disposition` is always `attachment` (`attachmentDisposition`). All of
248
+ * it is set before anything can fail, so a refusal carries it too.
249
+ *
250
+ * A download is not a use: `maxUses` counts exchanges, and reading a file through a session
251
+ * takes nothing from the link.
252
+ */
253
+ export declare function mountLinkShareDownload<E extends Env>(app: Hono<E>, options: LinkShareDownloadOptions<E>): void;
110
254
  export {};
111
255
  //# sourceMappingURL=capability-exchange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-exchange.d.ts","sourceRoot":"","sources":["../src/capability-exchange.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE/C,OAAO,EAAoB,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGnF,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AACjD,qEAAqE;AACrE,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnC,sGAAsG;AACtG,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG;IAC5D,wFAAwF;IACxF,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC1E,uCAAuC;IACvC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,cAAc,CAAC,CAAC;IACnD,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,GAAG,EACnD,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EACZ,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC,GACpC,IAAI,CAqCN;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,GAAE,MAA0B,GAAG,MAAM,GAAG,SAAS,CAE1G;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAC3C,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAGhC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CACjC,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAC3C,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,EACjD,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAEhC;AAED,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,GAAE,MAA0B,GAAG,IAAI,CAE/F"}
1
+ {"version":3,"file":"capability-exchange.d.ts","sourceRoot":"","sources":["../src/capability-exchange.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE/C,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC1G,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGrG;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AACjD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,0BAA0B,CAAC;AACzD,0FAA0F;AAC1F,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,qEAAqE;AACrE,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,8CAA8C,CAAC;AAEpF,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnC,sGAAsG;AACtG,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG;IAC5D,wFAAwF;IACxF,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC1E,uCAAuC;IACvC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,cAAc,CAAC,CAAC;IACnD,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,GAAG,EACnD,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EACZ,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC,GACpC,IAAI,CA+CN;AAED,4FAA4F;AAC5F,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AASD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,GAAE,MAA0B,GAAG,qBAAqB,EAAE,CAchH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAShE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,GAAE,MAA0B,GAAG,MAAM,GAAG,SAAS,CAe1G;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAC3C,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAGhC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CACjC,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAC3C,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,EACjD,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAEhC;AAED,MAAM,WAAW,6BAA6B;IAC5C,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,OAAO,EACV,OAAO,GAAE,MAAM,GAAG,6BAAkC,GACnD,IAAI,CAcN;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,0BAA0B,GAAG,aAAa,CAAC,EACjE,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,EACnD,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAavC;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG;IAC3D,2EAA2E;IAC3E,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,GAAG,aAAa,CAAC,CAAC,CAAC;IAChG,uCAAuC;IACvC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,cAAc,CAAC,CAAC;IACnD,0FAA0F;IAC1F,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAClE,uFAAuF;IACvF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO9D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,GAAG,EAClD,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EACZ,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACnC,IAAI,CAgCN"}
@@ -1,10 +1,44 @@
1
1
  import { deleteCookie, getCookie, setCookie } from 'hono/cookie';
2
2
  import { substratError, z } from '@substrat-run/contracts';
3
3
  import { problemResponse } from './errors.js';
4
- /** The cookie a capability session rides in. Named beside oidc-rp's `sb_session`. */
4
+ /**
5
+ * The cookie a capability session rides in. Named beside oidc-rp's `sb_session`.
6
+ *
7
+ * Since #1686 this is a PREFIX: an exchange sets `sb_capability_<capabilityId>`, one cookie
8
+ * per link. A bare `sb_capability` cookie is the one-link format set before that, and is
9
+ * still read (see `capabilitySessionOf`), so a browser that exchanged before the deploy keeps
10
+ * working without opening its link again; the next exchange deletes it.
11
+ */
5
12
  export const CAPABILITY_COOKIE = 'sb_capability';
13
+ /**
14
+ * The request header naming which of a browser's capability sessions a call acts as — the
15
+ * `capabilityId` the exchange answered with. `?capability=<id>` says the same on a plain link.
16
+ */
17
+ export const CAPABILITY_HEADER = 'x-substrat-capability';
18
+ /** The query-string twin of `CAPABILITY_HEADER`, for a link a browser follows unaided. */
19
+ export const CAPABILITY_QUERY = 'capability';
20
+ /**
21
+ * The most capability sessions one browser holds for one vertical host. An exchange beyond
22
+ * it evicts the OLDEST (by when it was exchanged): that cookie is deleted, a call naming its
23
+ * capability is then refused exactly as a revoked link is (`unauthenticated`), and opening
24
+ * the link again re-exchanges it if it has uses left. The session row itself is not revoked
25
+ * — the browser no longer holds its token, and the row lapses at its own expiry (≤24 h).
26
+ *
27
+ * Why 8, and why a cookie each rather than one cookie holding a set: a cookie is
28
+ * `sb_capability_` + a 26-character id + a ~60-character value — under 100 bytes — so eight
29
+ * are well under 1 KB of `Cookie` header, far from the 4 KB-per-cookie and ~50-per-domain
30
+ * floors RFC 6265 asks browsers to support, with room beside the sign-in session. One cookie
31
+ * per link keeps every attribute (`HttpOnly`, `Secure`, `SameSite=Lax`, `Path=/`) exactly as
32
+ * the one-link cookie had them, lets each expire at its OWN session's end rather than the
33
+ * longest one's, and — the deciding reason — needs no read-modify-write: two links opened at
34
+ * once in two tabs each set their own cookie, where a shared set would be rewritten by
35
+ * whichever response landed last and silently lose the other, the bug this replaces.
36
+ */
37
+ export const CAPABILITY_SESSIONS_MAX = 8;
6
38
  /** Where `mountCapabilityExchange` listens unless told otherwise. */
7
39
  export const CAPABILITY_EXCHANGE_PATH = '/api/capability/exchange';
40
+ /** Where `mountLinkShareDownload` listens unless told otherwise (#1686). */
41
+ export const LINK_SHARE_DOWNLOAD_PATH = '/api/capability/attachments/:attachmentId';
8
42
  const exchangeBody = z.object({ secret: z.string().min(1).max(256) });
9
43
  /** One refusal for every way an exchange can fail, so a probe learns nothing it can act on. */
10
44
  const invalidLink = () => substratError('not_found', 'This link is not valid, or no longer is.');
@@ -37,8 +71,19 @@ export function mountCapabilityExchange(app, options) {
37
71
  });
38
72
  if (!outcome || outcome.kind !== 'session')
39
73
  throw invalidLink();
40
- const maxAge = Math.max(0, Math.floor((Date.parse(outcome.expiresAt) - Date.now()) / 1000));
41
- setCookie(c, cookieName, outcome.sessionToken, {
74
+ const now = Date.now();
75
+ const maxAge = Math.max(0, Math.floor((Date.parse(outcome.expiresAt) - now) / 1000));
76
+ // Make room: keep the newest MAX-1 OTHER sessions, so this one is the MAX-th. The same
77
+ // link opened again replaces its own cookie and evicts nothing. Two exchanges racing
78
+ // can each keep MAX-1 and briefly leave MAX+1; the next exchange trims back.
79
+ const others = capabilitySessionsOf(c, cookieName).filter((s) => s.capabilityId !== outcome.capabilityId);
80
+ for (const evicted of others.slice(0, Math.max(0, others.length - (CAPABILITY_SESSIONS_MAX - 1)))) {
81
+ deleteCookie(c, sessionCookieName(cookieName, evicted.capabilityId), { path: '/' });
82
+ }
83
+ // The one-link cookie this format replaces: an exchange replaced it before, and does now.
84
+ if (getCookie(c, cookieName))
85
+ deleteCookie(c, cookieName, { path: '/' });
86
+ setCookie(c, sessionCookieName(cookieName, outcome.capabilityId), `${now.toString(36)}.${outcome.sessionToken}`, {
42
87
  httpOnly: true,
43
88
  sameSite: 'Lax',
44
89
  path: '/',
@@ -56,9 +101,79 @@ export function mountCapabilityExchange(app, options) {
56
101
  }
57
102
  });
58
103
  }
59
- /** The capability session this request carries, or `undefined`. */
104
+ const ULID_SHAPE = /^[0-9A-HJKMNP-TV-Z]{26}$/;
105
+ const sessionCookieName = (cookieName, capabilityId) => `${cookieName}_${capabilityId}`;
106
+ /** A named capability this browser holds no session for: refused as a revoked link is. */
107
+ const noSuchSession = () => substratError('unauthenticated', 'This link is not open in this browser, or no longer is. Open it again.');
108
+ /**
109
+ * Every per-link capability session this request carries, OLDEST first — the order an
110
+ * exchange evicts in. The one-link `sb_capability` cookie is not among them: it names no
111
+ * capability, so nothing can select it by name (see `capabilitySessionOf`).
112
+ */
113
+ export function capabilitySessionsOf(c, cookieName = CAPABILITY_COOKIE) {
114
+ const prefix = `${cookieName}_`;
115
+ const held = [];
116
+ for (const [name, value] of Object.entries(getCookie(c))) {
117
+ if (!name.startsWith(prefix) || !value)
118
+ continue;
119
+ const capabilityId = name.slice(prefix.length);
120
+ if (!ULID_SHAPE.test(capabilityId))
121
+ continue;
122
+ const dot = value.indexOf('.');
123
+ const exchangedAt = dot > 0 ? parseInt(value.slice(0, dot), 36) : NaN;
124
+ const sessionToken = dot > 0 ? value.slice(dot + 1) : value;
125
+ if (!sessionToken)
126
+ continue;
127
+ held.push({ capabilityId, exchangedAt: Number.isFinite(exchangedAt) ? exchangedAt : 0, sessionToken });
128
+ }
129
+ return held.sort((a, b) => a.exchangedAt - b.exchangedAt || (a.capabilityId < b.capabilityId ? -1 : 1));
130
+ }
131
+ /**
132
+ * The capability this request NAMES — `X-Substrat-Capability`, or `?capability=` — or
133
+ * `undefined` when it names none. Both, disagreeing, is refused rather than picked between.
134
+ */
135
+ export function namedCapabilityOf(c) {
136
+ // Presence, not truthiness: an EMPTY selector is a name — a malformed one, refused 401 —
137
+ // and must not read as "named nothing", which would act as the newest link or clear all.
138
+ const header = c.req.header(CAPABILITY_HEADER);
139
+ const query = c.req.query(CAPABILITY_QUERY);
140
+ if (header !== undefined && query !== undefined && header !== query) {
141
+ throw substratError('validation_failed', `${CAPABILITY_HEADER} and ?${CAPABILITY_QUERY}= name different links`);
142
+ }
143
+ return header ?? query;
144
+ }
145
+ /**
146
+ * The capability session this request acts through, or `undefined` when it carries none.
147
+ *
148
+ * Deterministic, and never a search (#1686):
149
+ * - **The request names a capability** (`namedCapabilityOf`): that capability's own cookie,
150
+ * and nothing else. A name this browser holds no session for — never exchanged here,
151
+ * evicted, cleared, or not an id at all — THROWS `unauthenticated`, the refusal a revoked
152
+ * link gets. It never falls back to another session, nor to the one-link cookie (which
153
+ * names no capability, so cannot be shown to be the named one), nor to the signed-in
154
+ * principal: trying the next credential until one is allowed would turn a share someone
155
+ * was sent into ambient authority over every share the browser holds.
156
+ * - **It names none**: the most recently exchanged session, else the one-link
157
+ * `sb_capability` cookie — exactly what the single cookie held before #1686, where each
158
+ * exchange replaced the last. So a page that names nothing behaves as it always did, and
159
+ * a browser holding only a pre-#1686 cookie keeps working with no re-exchange.
160
+ */
60
161
  export function capabilitySessionOf(c, cookieName = CAPABILITY_COOKIE) {
61
- return getCookie(c, cookieName) || undefined;
162
+ const named = namedCapabilityOf(c);
163
+ if (named !== undefined) {
164
+ // The name is the caller's text. It is held to the capability-id shape first and then
165
+ // only COMPARED with the ids parsed off cookie names — never spliced into one — so no
166
+ // `;`, `=`, space or non-ASCII character in it reaches a header; anything else is the
167
+ // 401 an unknown id gets.
168
+ const held = ULID_SHAPE.test(named) ? capabilitySessionsOf(c, cookieName).find((s) => s.capabilityId === named) : undefined;
169
+ if (!held)
170
+ throw noSuchSession();
171
+ return held.sessionToken;
172
+ }
173
+ // Naming nothing can only NARROW: the token chosen is one session, resolved by the host to
174
+ // its own capability row, so the call acts within that link's entity subtree and keys or
175
+ // is refused — it never unions two links, and never widens past the newest one's grant.
176
+ return capabilitySessionsOf(c, cookieName).at(-1)?.sessionToken ?? (getCookie(c, cookieName) || undefined);
62
177
  }
63
178
  /**
64
179
  * The stub a request's capability session acts through, or `undefined` when it carries
@@ -91,8 +206,116 @@ export async function capabilityStubOf(c, host, node, options) {
91
206
  export async function linkShareStub(c, host, node, principal, options) {
92
207
  return (await capabilityStubOf(c, host, node, options)) ?? (await principal());
93
208
  }
94
- /** Forget this browser's capability session — so a signed-in visitor acts as themselves again. */
95
- export function clearCapabilitySession(c, cookieName = CAPABILITY_COOKIE) {
209
+ /**
210
+ * Forget a capability session.
211
+ *
212
+ * With a capability named — `options.capabilityId`, else the request's
213
+ * `X-Substrat-Capability` / `?capability=` — exactly that link's session is forgotten and
214
+ * every other link this browser holds stays open. With none named, every capability session
215
+ * is forgotten, the one-link cookie included, so a signed-in visitor acts as themselves again
216
+ * — what this did when a browser could hold only one. A string argument is the cookie name,
217
+ * as before #1686.
218
+ */
219
+ export function clearCapabilitySession(c, options = {}) {
220
+ const { capabilityId, cookieName = CAPABILITY_COOKIE } = typeof options === 'string' ? { cookieName: options } : options;
221
+ const named = capabilityId ?? namedCapabilityOf(c);
222
+ if (named !== undefined) {
223
+ // The one place a caller's text becomes part of a cookie NAME, so it must be an id first:
224
+ // anything else (`;`, `=`, spaces, non-ASCII) names no cookie this module set, and
225
+ // clearing it is a no-op with no `Set-Cookie` at all — forgetting is idempotent.
226
+ if (ULID_SHAPE.test(named))
227
+ deleteCookie(c, sessionCookieName(cookieName, named), { path: '/' });
228
+ return;
229
+ }
230
+ for (const held of capabilitySessionsOf(c, cookieName)) {
231
+ deleteCookie(c, sessionCookieName(cookieName, held.capabilityId), { path: '/' });
232
+ }
96
233
  deleteCookie(c, cookieName, { path: '/' });
97
234
  }
235
+ // ---------------------------------------------------------------------------
236
+ // Files through a link share (#1686).
237
+ // ---------------------------------------------------------------------------
238
+ /**
239
+ * The attachment surface a LINK-SHARE route reads through: **the capability first, then the
240
+ * principal** — `linkShareStub`'s precedence, for files. With the capability cookie present
241
+ * the surface is the host's `getCapabilityAttachments`: every read checked as the
242
+ * capability (its keys, its subtree, its minter's authority now), every write refused. With
243
+ * no cookie, `principal` decides, and a signed-in visitor reads as themselves.
244
+ *
245
+ * A host without `getCapabilityAttachments` (it is optional on `ScopeHost`) REFUSES a
246
+ * request carrying the cookie rather than falling back to the principal: the precedence is
247
+ * what a link-share route promises, and quietly answering as someone else would break it.
248
+ */
249
+ export async function linkShareAttachments(c, host, node, principal, options) {
250
+ const token = capabilitySessionOf(c, options?.cookieName);
251
+ if (token) {
252
+ if (!host.getCapabilityAttachments) {
253
+ throw substratError('unavailable', 'this scope host serves no files through a link share (getCapabilityAttachments)');
254
+ }
255
+ return host.getCapabilityAttachments(token, node.tenantId, node.scopeId);
256
+ }
257
+ const who = await principal();
258
+ return who ? host.attachments(who, node.tenantId, node.scopeId) : undefined;
259
+ }
260
+ /**
261
+ * `Content-Disposition` for a stored filename: always `attachment`, so the browser saves
262
+ * the file rather than rendering it on this origin, with an ASCII fallback (quotes,
263
+ * backslashes, control and non-ASCII characters replaced) and the exact name as RFC 5987
264
+ * `filename*`. The filename is the uploader's text, so nothing of it reaches the header raw.
265
+ */
266
+ export function attachmentDisposition(filename) {
267
+ const fallback = filename.replace(/[^\x20-\x7e]|["\\]/g, '_') || 'download';
268
+ const exact = encodeURIComponent(filename).replace(/['()*]/g, (ch) => `%${ch.charCodeAt(0).toString(16).toUpperCase()}`);
269
+ return `attachment; filename="${fallback}"; filename*=UTF-8''${exact}`;
270
+ }
271
+ /**
272
+ * Mount `GET <path>`: download one attachment through `linkShareAttachments` — the file a
273
+ * link share of its folder or document reaches, or, with no capability cookie, one the
274
+ * signed-in visitor may read themselves.
275
+ *
276
+ * 200 with the bytes; 404 for an id the scope does not know; 403 for a file outside the
277
+ * capability's subtree, or one its minter can no longer read (recorded in the denial log
278
+ * against the capability); 401 for a revoked or expired link, or no session at all.
279
+ *
280
+ * **Nothing about the response may leak.** `Cache-Control: private, no-store` — a shared
281
+ * cache must never hold a private file, and neither should the browser's once the link is
282
+ * gone — plus `Referrer-Policy: no-referrer`, `X-Content-Type-Options: nosniff`, and a
283
+ * `sandbox` CSP, so a file that is secretly HTML cannot run as this origin even if opened
284
+ * directly. `Content-Disposition` is always `attachment` (`attachmentDisposition`). All of
285
+ * it is set before anything can fail, so a refusal carries it too.
286
+ *
287
+ * A download is not a use: `maxUses` counts exchanges, and reading a file through a session
288
+ * takes nothing from the link.
289
+ */
290
+ export function mountLinkShareDownload(app, options) {
291
+ const path = options.path ?? LINK_SHARE_DOWNLOAD_PATH;
292
+ app.get(path, async (c) => {
293
+ c.header('Cache-Control', 'private, no-store');
294
+ c.header('Referrer-Policy', 'no-referrer');
295
+ c.header('X-Content-Type-Options', 'nosniff');
296
+ c.header('Content-Security-Policy', "default-src 'none'; sandbox");
297
+ // Generic until there is a file to name — the 200 replaces it with the sanitised name.
298
+ c.header('Content-Disposition', 'attachment');
299
+ try {
300
+ const attachmentId = c.req.param('attachmentId');
301
+ if (!attachmentId)
302
+ throw substratError('not_found', 'no attachment named');
303
+ const [host, node] = await Promise.all([options.host(c), options.node(c)]);
304
+ const files = await linkShareAttachments(c, host, node, () => options.principal?.(c), { cookieName: options.cookieName });
305
+ if (!files)
306
+ throw substratError('unauthenticated', 'sign in, or open the link you were sent');
307
+ const opened = await files.open(attachmentId);
308
+ if (!opened)
309
+ throw substratError('not_found', 'no such file');
310
+ return c.body(opened.body, 200, {
311
+ 'Content-Type': opened.contentType,
312
+ 'Content-Length': String(opened.body.byteLength),
313
+ 'Content-Disposition': attachmentDisposition(opened.record.filename),
314
+ });
315
+ }
316
+ catch (err) {
317
+ return problemResponse(c, err);
318
+ }
319
+ });
320
+ }
98
321
  //# sourceMappingURL=capability-exchange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-exchange.js","sourceRoot":"","sources":["../src/capability-exchange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-exchange.js","sourceRoot":"","sources":["../src/capability-exchange.ts"],"names":[],"mappings":"AAsDA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAiD,MAAM,yBAAyB,CAAC;AAE1G,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AACjD;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AACzD,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,qEAAqE;AACrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AACnE,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,2CAA2C,CAAC;AAqBpF,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAEtE,+FAA+F;AAC/F,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,0CAA0C,CAAC,CAAC;AAEjG;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAY,EACZ,OAAqC;IAErC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,wBAAwB,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzB,oFAAoF;QACpF,oDAAoD;QACpD,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACvF,MAAM,aAAa,CAAC,mBAAmB,EAAE,mDAAmD,CAAC,CAAC;YAChG,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,WAAW,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC7F,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,MAAM,WAAW,EAAE,CAAC;YAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACrF,uFAAuF;YACvF,qFAAqF;YACrF,6EAA6E;YAC7E,MAAM,MAAM,GAAG,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;YAC1G,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClG,YAAY,CAAC,CAAC,EAAE,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YACtF,CAAC;YACD,0FAA0F;YAC1F,IAAI,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC;gBAAE,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YACzE,SAAS,CAAC,CAAC,EAAE,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;gBAC/G,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ;gBAChD,MAAM;aACP,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAUD,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAC9C,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAE,YAAoB,EAAE,EAAE,CAAC,GAAG,UAAU,IAAI,YAAY,EAAE,CAAC;AAExG,0FAA0F;AAC1F,MAAM,aAAa,GAAG,GAAG,EAAE,CACzB,aAAa,CAAC,iBAAiB,EAAE,wEAAwE,CAAC,CAAC;AAE7G;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,CAAU,EAAE,UAAU,GAAW,iBAAiB;IACrF,MAAM,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC;IAChC,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;YAAE,SAAS;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;YAAE,SAAS;QAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,MAAM,YAAY,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5D,IAAI,CAAC,YAAY;YAAE,SAAS;QAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAU;IAC1C,yFAAyF;IACzF,yFAAyF;IACzF,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC5C,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACpE,MAAM,aAAa,CAAC,mBAAmB,EAAE,GAAG,iBAAiB,SAAS,gBAAgB,wBAAwB,CAAC,CAAC;IAClH,CAAC;IACD,OAAO,MAAM,IAAI,KAAK,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAU,EAAE,UAAU,GAAW,iBAAiB;IACpF,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,sFAAsF;QACtF,sFAAsF;QACtF,sFAAsF;QACtF,0BAA0B;QAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5H,IAAI,CAAC,IAAI;YAAE,MAAM,aAAa,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,2FAA2F;IAC3F,yFAAyF;IACzF,wFAAwF;IACxF,OAAO,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,SAAS,CAAC,CAAC;AAC7G,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,CAAU,EACV,IAA2C,EAC3C,IAAoB,EACpB,OAAoD;IAEpD,MAAM,KAAK,GAAG,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClG,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,CAAU,EACV,IAA2C,EAC3C,IAAoB,EACpB,SAAiD,EACjD,OAAoD;IAEpD,OAAO,CAAC,MAAM,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;AACjF,CAAC;AASD;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,CAAU,EACV,OAAO,GAA2C,EAAE;IAEpD,MAAM,EAAE,YAAY,EAAE,UAAU,GAAG,iBAAiB,EAAE,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACzH,MAAM,KAAK,GAAG,YAAY,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,0FAA0F;QAC1F,mFAAmF;QACnF,iFAAiF;QACjF,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,YAAY,CAAC,CAAC,EAAE,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACjG,OAAO;IACT,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QACvD,YAAY,CAAC,CAAC,EAAE,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,8EAA8E;AAC9E,sCAAsC;AACtC,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,CAAU,EACV,IAAiE,EACjE,IAAoB,EACpB,SAAmD,EACnD,OAAiC;IAEjC,MAAM,KAAK,GAAG,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1D,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,MAAM,aAAa,CACjB,aAAa,EACb,iFAAiF,CAClF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;IAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAeD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC;IAC5E,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAChD,SAAS,EACT,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAC1D,CAAC;IACF,OAAO,yBAAyB,QAAQ,uBAAuB,KAAK,EAAE,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAY,EACZ,OAAoC;IAEpC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,wBAAwB,CAAC;IACtD,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxB,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAC/C,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAC3C,CAAC,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAC;QACnE,uFAAuF;QACvF,CAAC,CAAC,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY;gBAAE,MAAM,aAAa,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;YAC3E,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,KAAK,GAAG,MAAM,oBAAoB,CACtC,CAAC,EACD,IAAI,EACJ,IAAI,EACJ,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAC5B,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CACnC,CAAC;YACF,IAAI,CAAC,KAAK;gBAAE,MAAM,aAAa,CAAC,iBAAiB,EAAE,yCAAyC,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM;gBAAE,MAAM,aAAa,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAC9D,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAA8B,EAAE,GAAG,EAAE;gBACxD,cAAc,EAAE,MAAM,CAAC,WAAW;gBAClC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBAChD,qBAAqB,EAAE,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;aACrE,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -23,8 +23,8 @@
23
23
  * adapter satisfies the same interface.
24
24
  */
25
25
  import type { Hono } from 'hono';
26
- import { type UndrainedEvents } from '@substrat-run/kernel';
27
- import { z, ownerSeat, type DenialFilter, type DenialSummary, type PermissionDenial, readScopeTableInput, type EntityHistoryInput, type EventFacetInput, type EventCauseInput, type EventEffectsInput, type EffectsTree, type InvocationEventsInput, type InvocationEvents, type DeadLettersInput, type DeadLetter, type CauseChain, type EventFacetResult, type HistoryEntry, type Page, type ScopeId, type TenantId, type PrincipalId, type ConnectionId, type PermissionKey, type EntityRef, type Visibility, type RoleDefinition, type ScopeDumpTable, type ScopeTable, type ScopeQueryResult, type EntitlementGrant, type ProjectedConnectionGrant, type ProjectedConnectionKey, type ProjectedIdentityLink, type OwnerClaimLink, type PlatformRequest, type PlatformRequestFilter, type PlatformRequestId, type PlatformRequestStatus, type PlatformRequestFailure, type ModuleId, type SystemSwitchOutcome } from '@substrat-run/contracts';
26
+ import { type InvokeOptions, type UndrainedEvents } from '@substrat-run/kernel';
27
+ import { z, ownerSeat, type DenialFilter, type DenialSummary, type PermissionDenial, readScopeTableInput, type EntityHistoryInput, type EventFacetInput, type EventCauseInput, type EventEffectsInput, type EffectsTree, type InvocationEventsInput, type InvocationEvents, type DeadLettersInput, type DeadLetter, type CauseChain, type EventFacetResult, type HistoryEntry, type Page, type ScopeId, type TenantId, type PrincipalId, type ConnectionId, type PermissionKey, type EntityRef, type Visibility, type RoleDefinition, type ScopeDumpTable, type ScopeTable, type ScopeQueryResult, type EntitlementGrant, type ProjectedConnectionGrant, type ProjectedConnectionKey, type ProjectedIdentityLink, type OwnerClaimLink, type PlatformRequest, type PlatformRequestFilter, type PlatformRequestId, type PlatformRequestStatus, type PlatformRequestFailure, type ModuleId, type SystemSwitchOutcome, type PeerGrantsEntry, type SystemScheduleEntry, type PeerSwitchOutcome, type VerticalCaller } from '@substrat-run/contracts';
28
28
  /**
29
29
  * The slice of the scope host the platform surface delegates to. Structural on purpose:
30
30
  * this package names behaviour, never the concrete `CloudflareScopeHost`. Every method
@@ -139,6 +139,30 @@ export interface VerticalScopeHost {
139
139
  * control plane reports as "redeploy", never as a switch that moved.
140
140
  */
141
141
  systemSwitchLocal?(scopeId: ScopeId, moduleId: ModuleId, to: 'on' | 'off'): Promise<SystemSwitchOutcome>;
142
+ /**
143
+ * The far end of the schedule kill switch's status read (#1674): every module this
144
+ * scope holds or has held system authority for, and where each stands. Optional for the
145
+ * same reason `systemSwitchLocal` is: a host built before it satisfies this interface
146
+ * without it, and the route answers 501, which the control plane reports as "redeploy",
147
+ * never a wrong `on`.
148
+ */
149
+ systemGrantsStatusLocal?(scopeId: ScopeId): Promise<SystemScheduleEntry[]>;
150
+ /**
151
+ * The far end of the PEER kill switch's status read (#1706): every peer this scope holds
152
+ * or has held grants for, and where each stands. Optional for the same reason the two
153
+ * above are — a host built before it satisfies this interface without it, and the route
154
+ * answers 501, which the control plane reports as "redeploy", never a wrong `on`.
155
+ */
156
+ peerGrantsStatusLocal?(scopeId: ScopeId): Promise<PeerGrantsEntry[]>;
157
+ /**
158
+ * The far end of a PEER call (#1706): invoke one operation in this deployment as another
159
+ * vertical of the same tenant, which the platform identified and resolved this scope for.
160
+ * Admission (declared, switched on, allowlisted) and every check run in the scope's own
161
+ * storage. OPTIONAL like the switch above — a host built before it answers 501.
162
+ */
163
+ verticalInvokeLocal?(caller: VerticalCaller, tenantId: TenantId, scopeId: ScopeId, operation: string, input?: unknown, options?: InvokeOptions): Promise<unknown>;
164
+ /** The far end of the peer kill switch (#1706). Optional, 501 when absent, like the rest. */
165
+ peerSwitchLocal?(scopeId: ScopeId, vertical: string, to: 'on' | 'off'): Promise<PeerSwitchOutcome>;
142
166
  }
143
167
  /** `/internal/provision` body. `slug`/`name` ride along so `onProvision` can register a site (M2). */
144
168
  declare const provisionBody: z.ZodObject<{
@@ -274,6 +298,7 @@ export type { ConnectUrlRequest } from './connect-url.js';
274
298
  export * from './mcp.js';
275
299
  export * from './public-surface.js';
276
300
  export * from './capability-exchange.js';
301
+ export * from './peer-client.js';
277
302
  export { classifyError, isPlatformFault, messageOf, problemFor, problemOf, problemResponse, } from './errors.js';
278
303
  export type { ClassifiedProblem, ErrorClassification } from './errors.js';
279
304
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { HTTPException } from 'hono/http-exception';
2
2
  import { classifyError, messageOf, problemOf } from './errors.js';
3
3
  import { assertPlatformCall, CONNECTOR_ATTACHMENT_RECORD_HEADER, PlatformCallError, } from '@substrat-run/kernel';
4
- import { z, PROBLEM_CONTENT_TYPE, scopeId as scopeIdOf, tenantId as tenantIdOf, principalId as principalIdOf, connectionId as connectionIdOf, permissionKey as permissionKeyOf, moduleId as moduleIdOf, entityRef, visibility, instant, entitlementGrant, projectedConnectionGrant, projectedConnectionKey, projectedIdentityLink, ownerSeat, ownerClaimLink, platformRequestFilter, denialFilter, platformRequestId, platformRequestStatus, platformRequestFailure, readScopeTableInput, entityHistoryInput, eventFacetInput, eventCauseInput, eventEffectsInput, invocationEventsInput, deadLettersInput, queryScopeInput, } from '@substrat-run/contracts';
4
+ import { z, PROBLEM_CONTENT_TYPE, scopeId as scopeIdOf, tenantId as tenantIdOf, principalId as principalIdOf, connectionId as connectionIdOf, permissionKey as permissionKeyOf, moduleId as moduleIdOf, entityRef, visibility, instant, entitlementGrant, projectedConnectionGrant, projectedConnectionKey, projectedIdentityLink, ownerSeat, ownerClaimLink, platformRequestFilter, denialFilter, platformRequestId, platformRequestStatus, platformRequestFailure, readScopeTableInput, entityHistoryInput, eventFacetInput, eventCauseInput, eventEffectsInput, invocationEventsInput, deadLettersInput, queryScopeInput, verticalCaller, verticalSlug as verticalSlugOf, } from '@substrat-run/contracts';
5
5
  /**
6
6
  * The denial-log filter, off the query string (#867). Both denial routes take the same
7
7
  * one, and it is PARSED here rather than forwarded: what arrives is text, and what it
@@ -110,6 +110,29 @@ const systemSwitchBody = z.object({
110
110
  moduleId: moduleIdOf,
111
111
  to: z.enum(['on', 'off']),
112
112
  });
113
+ /**
114
+ * `/internal/vertical-invoke` body (#1706) — one operation, invoked as a PEER vertical.
115
+ *
116
+ * STRICT, and that is part of the contract rather than tidiness: the caller is `caller` and
117
+ * nothing else. A body that also names a principal, a session or a capability is refused,
118
+ * so no field a future caller adds can make a peer call act as a person.
119
+ */
120
+ const verticalInvokeBody = z
121
+ .object({
122
+ caller: verticalCaller,
123
+ tenantId: tenantIdOf,
124
+ scopeId: scopeIdOf,
125
+ operation: z.string().min(1),
126
+ input: z.unknown().optional(),
127
+ idempotencyKey: z.string().min(1).optional(),
128
+ })
129
+ .strict();
130
+ /** `/internal/peer-switch` body (#1706) — the far end of `revokeFromPeer` / `restoreToPeer`. */
131
+ const peerSwitchBody = z.object({
132
+ scopeId: scopeIdOf,
133
+ vertical: verticalSlugOf,
134
+ to: z.enum(['on', 'off']),
135
+ });
113
136
  /** `/internal/connector-grant` body (#574) — the delivery half of `grantToConnection`. */
114
137
  const connectorGrantBody = z.object({
115
138
  connectionId: connectionIdOf,
@@ -455,6 +478,57 @@ export function mountPlatformSurface(app, deps) {
455
478
  }
456
479
  return c.json(await host.systemSwitchLocal(body.scopeId, body.moduleId, body.to));
457
480
  });
481
+ // The status read (#1674): the far end of `HostAdmin.systemGrantsStatus` for a scope
482
+ // served HERE. Bare positions only — no admin-log join, since this deployment holds no
483
+ // admin log; the platform joins its own onto this by moduleId once it returns. Same
484
+ // "route exists, host method doesn't" 501 as the switch above, and the same reason for
485
+ // it: a deployment built before this shipped satisfies `VerticalScopeHost` without it.
486
+ app.get('/internal/system-grants', async (c) => {
487
+ const scopeId = scopeIdOf.parse(c.req.query('scopeId'));
488
+ const host = deps.hostFor(c.env);
489
+ if (!host.systemGrantsStatusLocal) {
490
+ return c.json({ error: 'this deployment cannot read schedule switches (#1674) — redeploy it' }, 501);
491
+ }
492
+ return c.json(await host.systemGrantsStatusLocal(scopeId));
493
+ });
494
+ // The peer kill switch's status read for a scope served HERE (#1706). The same shape as
495
+ // the route above and for the same reasons: bare positions, no admin-log join (this
496
+ // deployment holds no admin log), and a 501 naming the redeploy when the host predates it.
497
+ app.get('/internal/peer-grants', async (c) => {
498
+ const scopeId = scopeIdOf.parse(c.req.query('scopeId'));
499
+ const host = deps.hostFor(c.env);
500
+ if (!host.peerGrantsStatusLocal) {
501
+ return c.json({ error: 'this deployment cannot read peer switches (#1706) — redeploy it' }, 501);
502
+ }
503
+ return c.json(await host.peerGrantsStatusLocal(scopeId));
504
+ });
505
+ // The peer door's far end (#1706). The platform — the router, at the hop a calling
506
+ // deployment cannot forge — identified the caller and resolved THIS scope as the instance
507
+ // of this vertical in the caller's tenant; it reaches here behind the platform secret like
508
+ // every `/internal` verb, and a public request cannot (the router strips the header). The
509
+ // body names the caller and nothing that could act as a person (strict). Admission and every
510
+ // check then run in the scope's own storage, on every call. Enveloped for connector-invoke's
511
+ // reason: an operation may legitimately return undefined.
512
+ app.post('/internal/vertical-invoke', async (c) => {
513
+ const body = verticalInvokeBody.parse(await c.req.json());
514
+ const host = deps.hostFor(c.env);
515
+ if (!host.verticalInvokeLocal) {
516
+ return c.json({ error: 'this deployment cannot take peer calls (#1706) — redeploy it' }, 501);
517
+ }
518
+ const result = await host.verticalInvokeLocal(body.caller, body.tenantId, body.scopeId, body.operation, body.input, body.idempotencyKey !== undefined ? { idempotencyKey: body.idempotencyKey } : undefined);
519
+ return c.json({ result: result ?? null });
520
+ });
521
+ // The peer kill switch's far end (#1706), for a scope served HERE — the mirror of
522
+ // `/internal/system-switch`: the platform writes the audit rows around this call, and a 404
523
+ // from this path means a deployment built before it, which the platform reads as exactly that.
524
+ app.post('/internal/peer-switch', async (c) => {
525
+ const body = peerSwitchBody.parse(await c.req.json());
526
+ const host = deps.hostFor(c.env);
527
+ if (!host.peerSwitchLocal) {
528
+ return c.json({ error: 'this deployment cannot switch peers (#1706) — redeploy it' }, 501);
529
+ }
530
+ return c.json(await host.peerSwitchLocal(body.scopeId, body.vertical, body.to));
531
+ });
458
532
  app.post('/internal/platform-requests/settle', async (c) => {
459
533
  const body = settleBody.parse(await c.req.json());
460
534
  await deps.hostFor(c.env).settlePlatformRequest(body.tenantId, body.scopeId, body.id, {
@@ -626,5 +700,7 @@ export * from './mcp.js';
626
700
  export * from './public-surface.js';
627
701
  // #1672: the link-share exchange — a capability's secret traded for an HttpOnly session.
628
702
  export * from './capability-exchange.js';
703
+ // #1706: calling another vertical of the same tenant, from harness code.
704
+ export * from './peer-client.js';
629
705
  export { classifyError, isPlatformFault, messageOf, problemFor, problemOf, problemResponse, } from './errors.js';
630
706
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EACL,kBAAkB,EAClB,kCAAkC,EAClC,iBAAiB,GAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,CAAC,EACD,oBAAoB,EACpB,OAAO,IAAI,SAAS,EACpB,QAAQ,IAAI,UAAU,EACtB,WAAW,IAAI,aAAa,EAC5B,YAAY,IAAI,cAAc,EAC9B,aAAa,IAAI,eAAe,EAChC,QAAQ,IAAI,UAAU,EACtB,SAAS,EACT,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,YAAY,EAIZ,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAchB,eAAe,GAwBhB,MAAM,yBAAyB,CAAC;AA8IjC;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,CAAwD,EAAgB,EAAE,CAC7F,YAAY,CAAC,KAAK,CAAC;IACjB,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3B,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IACtE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;CAChC,CAAC,CAAC;AAEL,sGAAsG;AACtG,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAClD,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IACxD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE;IAC9D,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC,CAAC;AAIH,qGAAqG;AACrG,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAClD,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IACxD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE;IAC9D,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC/B,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KACpC,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACjF,CAAC,CAAC;AAIH;uGACuG;AACvG,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,EAAE,EAAE,iBAAiB;IACrB,MAAM,EAAE,qBAAqB;IAC7B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,oFAAoF;IACpF,gFAAgF;IAChF,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAEH,kFAAkF;AAClF,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9C,SAAS,EAAE,OAAO;CACnB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;AAEnF,2FAA2F;AAC3F,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,oFAAoF;AACpF,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,UAAU;CACX,CAAC,CAAC;AAEH,sGAAsG;AACtG,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAC1B,CAAC,CAAC;AAEH,0FAA0F;AAC1F,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,YAAY,EAAE,cAAc;IAC5B,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,eAAe;IAC3B,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAqEH;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAA4B,EAC5B,IAA8B;IAE9B,uFAAuF;IACvF,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,iBAAiB;gBAAE,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzF,MAAM,CAAC,CAAC;QACV,CAAC;QACD,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,uFAAuF;IAEvF,sFAAsF;IACtF,yFAAyF;IACzF,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACtC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAC5F,CAAC;IAEF,qFAAqF;IACrF,kFAAkF;IAClF,wFAAwF;IACxF,qFAAqF;IACrF,iFAAiF;IACjF,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,gFAAgF;IAChF,+EAA+E;IAC/E,+EAA+E;IAC/E,4DAA4D;IAC5D,gFAAgF;IAChF,mFAAmF;IACnF,sCAAsC;IACtC,0EAA0E;IAC1E,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACvC,CAAC,CAAC,IAAI,CACJ,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,iBAAiB,CACzC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EACvC,iBAAiB,CAAC,KAAK,CAAC;QACtB,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KAChF,CAAC,CACH,CACF,CACF,CAAC;IAEF,qFAAqF;IACrF,uFAAuF;IACvF,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAC1C,CAAC,CAAC,IAAI,CACJ,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAC7C,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EACvC,qBAAqB,CAAC,KAAK,CAAC;QAC1B,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;QACzC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KACvE,CAAC,CACH,CACF,CACF,CAAC;IAEF,mFAAmF;IACnF,sFAAsF;IACtF,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAC5C,CAAC,CAAC,IAAI,CACJ,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CACxC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EACvC,gBAAgB,CAAC,KAAK,CAAC;QACrB,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACtE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS;KAC3C,CAAC,CACH,CACF,CACF,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACrC,CAAC,CAAC,IAAI,CACJ,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,CACvC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EACvC,eAAe,CAAC,KAAK,CAAC;QACpB,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KAChF,CAAC,CACH,CACF,CACF,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACtC,CAAC,CAAC,IAAI,CACJ,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CACxC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EACvC,eAAe,CAAC,KAAK,CAAC;QACpB,OAAO,EACL,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS;YAChC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAClD,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QACtC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS;QACtC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,SAAS;QACxC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,SAAS;QACxC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KACvE,CAAC,CACH,CACF,CACF,CAAC;IAEF,mFAAmF;IACnF,mFAAmF;IACnF,mFAAmF;IACnF,6CAA6C;IAC7C,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACvC,CAAC,CAAC,IAAI,CACJ,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAC1C,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EACvC,kBAAkB,CAAC,KAAK,CAAC;QACvB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;QACrC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;QACjC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACtE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS;KAC3C,CAAC,CACH,CACF,CACF,CAAC;IAEF,qFAAqF;IACrF,gFAAgF;IAChF,qFAAqF;IACrF,uFAAuF;IACvF,+EAA+E;IAC/E,+EAA+E;IAC/E,EAAE;IACF,4FAA4F;IAC5F,wFAAwF;IACxF,wFAAwF;IACxF,uFAAuF;IACvF,kCAAkC;IAClC,GAAG,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI;aACtB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;aACd,oBAAoB,CACnB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EACvC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,CAC/F,CAAC;QACJ,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,GAAG;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9G,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,wFAAwF;IACxF,0EAA0E;IAC1E,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAY,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACxC,uFAAuF;QACvF,yFAAyF;QACzF,wFAAwF;QACxF,wFAAwF;QACxF,yFAAyF;QACzF,uFAAuF;QACvF,QAAQ;QACR,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;YAClE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0EAA0E,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5G,CAAC;QACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACjG,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,wFAAwF;IACxF,yFAAyF;IACzF,qFAAqF;IACrF,uFAAuF;IACvF,yFAAyF;IACzF,qFAAqF;IACrF,oCAAoC;IACpC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjC,sFAAsF;QACtF,qFAAqF;QACrF,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qEAAqE,EAAE,EAAE,GAAG,CAAC,CAAC;QACvG,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IAEH,iFAAiF;IACjF,0EAA0E;IAC1E,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAC1C,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAClG,CAAC;IAEF,iFAAiF;IACjF,uFAAuF;IACvF,kFAAkF;IAClF,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kEAAkE,EAAE,EAAE,GAAG,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,uFAAuF;IACvF,6EAA6E;IAC7E,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACzC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACnG,CAAC;IAEF,6EAA6E;IAC7E,uFAAuF;IACvF,0FAA0F;IAC1F,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,CAAC;aACX,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;aAC1F,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC,IAAI,CACX,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAC/F,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,0FAA0F;IAC1F,iFAAiF;IACjF,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrG,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,oFAAoF;IACpF,qFAAqF;IACrF,wEAAwE;IACxE,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACtC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACjG,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;YACtC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;YAC3B,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACtE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SAC1E,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,wFAAwF;IACxF,yFAAyF;IACzF,8DAA8D;IAC9D,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAClE,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,qFAAqF;IACrF,oFAAoF;IACpF,qFAAqF;IACrF,mFAAmF;IACnF,+EAA+E;IAC/E,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,mFAAmF;IACnF,qFAAqF;IACrF,GAAG,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/C,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,oFAAoF;IACpF,uFAAuF;IACvF,2EAA2E;IAC3E,GAAG,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACjD,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,sFAAsF;IACtF,0FAA0F;IAC1F,0FAA0F;IAC1F,4FAA4F;IAC5F,+EAA+E;IAC/E,2DAA2D;IAC3D,GAAG,CAAC,GAAG,CAAC,qCAAqC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzD,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC;YACzC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YACzB,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC7B,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SACvE,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,oFAAoF;IACpF,uFAAuF;IACvF,mFAAmF;IACnF,qFAAqF;IACrF,uFAAuF;IACvF,sFAAsF;IACtF,wEAAwE;IACxE,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAI;aACtB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;aACd,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpG,wFAAwF;QACxF,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,oFAAoF;IACpF,iFAAiF;IACjF,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,8BAA8B,CACrE,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,OAAO,EACZ;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;SAC/C,CACF,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAiC,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,kFAAkF;IAClF,iFAAiF;IACjF,6EAA6E;IAC7E,4EAA4E;IAC5E,8BAA8B;IAC9B,EAAE;IACF,4EAA4E;IAC5E,mFAAmF;IACnF,gFAAgF;IAChF,qCAAqC;IACrC,GAAG,CAAC,GAAG,CAAC,8CAA8C,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAClE,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI;aACtB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;aACd,4BAA4B,CAC3B,UAAU,EACV,CAAC,EACD,CAAC,EACD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAC3B,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CACvB,CAAC;QACJ,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAA8B,EAAE,GAAG,EAAE;YACxD,cAAc,EAAE,MAAM,CAAC,WAAW;YAClC,CAAC,kCAAkC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;SACpE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,qFAAqF;IACrF,+EAA+E;IAC/E,kFAAkF;IAClF,+DAA+D;IAC/D,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI;aACP,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;aACd,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzF,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,oFAAoF;IACpF,yFAAyF;IACzF,0FAA0F;IAC1F,oFAAoF;IACpF,sFAAsF;IACtF,wFAAwF;IACxF,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+DAA+D,EAAE,EAAE,GAAG,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YACpF,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;SAC9B,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,2FAA2F;IAE3F,wFAAwF;IACxF,uFAAuF;IACvF,2EAA2E;IAC3E,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,wFAAwF;IACxF,oFAAoF;IACpF,oFAAoF;IACpF,gFAAgF;IAChF,8EAA8E;IAC9E,yFAAyF;IACzF,qFAAqF;IACrF,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,0DAA0D,EAAE,CAAC,CAAC;QACxG,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjG,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE;gBAC3B,OAAO,EAAE,gCAAgC,IAAI,CAAC,OAAO,8CAA8C;aACpG,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QACH;;;;;;;;;;;;;;;;WAgBG;QACH,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK;YACL,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,oFAAoF;IACpF,0FAA0F;IAC1F,6DAA6D;IAC7D,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,yFAAyF;IACzF,0FAA0F;IAC1F,0FAA0F;IAC1F,yFAAyF;IACzF,2FAA2F;IAC3F,yFAAyF;IACzF,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,GAAG,GAAG;YACV,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACnD,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACjD,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CACpC,CAAC,CAAC,GAAG,EACL,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAClD,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE;gBAC3B,OAAO,EAAE,2BAA2B,IAAI,CAAC,OAAO,wDAAwD;aACzG,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,wFAAwF;IACxF,uFAAuF;IACvF,2FAA2F;IAC3F,2FAA2F;IAC3F,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACrB,gFAAgF;QAChF,+EAA+E;QAC/E,gFAAgF;QAChF,sFAAsF;QACtF,+EAA+E;QAC/E,oFAAoF;QACpF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM;YACjB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAA8B,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;YAC5E,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI;gBACrB,MAAM,EAAE,GAA2B;gBACnC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;aACxB,CAAC,CAAC;QACP,sFAAsF;QACtF,kFAAkF;QAClF,iFAAiF;QACjF,kFAAkF;QAClF,8EAA8E;QAC9E,gFAAgF;QAChF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBAC5C,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;gBACpB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI;gBAChB,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACpD,CAAC,CAAC;QACL,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE;YAC/C,cAAc,EAAE,oBAAoB;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,yFAAyF;AACzF,cAAc,0BAA0B,CAAC;AACzC,OAAO,EACL,aAAa,EACb,eAAe,EACf,SAAS,EACT,UAAU,EACV,SAAS,EACT,eAAe,GAChB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAW1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,YAAI,YAAY,EAAE,YAAY,EAAE,YAAY,CAAU,CAAC;AAEzF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAc1D,wDAAwD;AACxD,MAAM,WAAW,OAAO;IACtB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;QAClC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;KAClC,CAAC;IACF,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErD;AAsED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,CAkDlF;AA0BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,oBAAoB,EACzB,SAAS,MAAM,EAAE,GACjB,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,iGAAiG;IACjG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,+FAA+F;IAC/F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IACtD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAuGD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAEtB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxB,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC5C,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,EAC/C,OAAO,GAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA6QjC"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAW1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,YAAI,YAAY,EAAE,YAAY,EAAE,YAAY,CAAU,CAAC;AAEzF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAc1D,wDAAwD;AACxD,MAAM,WAAW,OAAO;IACtB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;QAClC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;KAClC,CAAC;IACF,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErD;AAsED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,CAkDlF;AA0BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,oBAAoB,EACzB,SAAS,MAAM,EAAE,GACjB,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,iGAAiG;IACjG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,+FAA+F;IAC/F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IACtD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAuGD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAEtB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxB,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC5C,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,EAC/C,OAAO,GAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAuRjC"}
package/dist/mcp.js CHANGED
@@ -422,24 +422,34 @@ app, operations, resolveStub, options = {}) {
422
422
  catch {
423
423
  return c.json(rpcError(null, -32700, 'Parse error'), 400);
424
424
  }
425
+ // Batching left the protocol in 2025-06-18 but earlier clients still send arrays,
426
+ // and answering one is cheaper than explaining why we will not.
427
+ const messages = Array.isArray(body) ? body : [body];
428
+ if (messages.length === 0)
429
+ return c.json(rpcError(null, -32600, 'Invalid Request'), 400);
425
430
  /**
426
431
  * A client pins the revision it negotiated on every later request. One we do not
427
432
  * speak is a 400 BEFORE anything is dispatched: the alternative is answering a call
428
433
  * under a contract we never agreed to, whose framing we would then be guessing at.
429
434
  * Absent is not an error — a client that never sends it is the pre-header behaviour
430
435
  * the transport still allows.
436
+ *
437
+ * **Except on `initialize`, where nothing has been negotiated yet** (#1711). The
438
+ * header there is a proposal, and the body's `protocolVersion` is the negotiation
439
+ * that answers it — with our own latest when we do not speak theirs. Refusing it
440
+ * here stopped every client newer than this list at a 400 before the resolver, so it
441
+ * never saw the 401 challenge that starts sign-in. The skip holds only when EVERY
442
+ * message is `initialize`, which dispatches nothing: a batch carrying any other
443
+ * message is judged by its pin as before. `notifications/initialized` is not
444
+ * included — the client sends it after reading our answer, pinned to what we said.
431
445
  */
446
+ const handshakeOnly = messages.every((m) => !!m && typeof m === 'object' && m.method === 'initialize');
432
447
  const pinned = c.req.header(MCP_PROTOCOL_HEADER);
433
- if (pinned !== undefined && !MCP_PROTOCOL_VERSIONS.includes(pinned)) {
448
+ if (!handshakeOnly && pinned !== undefined && !MCP_PROTOCOL_VERSIONS.includes(pinned)) {
434
449
  return c.json(rpcError(null, -32600, `Unsupported ${MCP_PROTOCOL_HEADER}: ${pinned}`, {
435
450
  supported: [...MCP_PROTOCOL_VERSIONS],
436
451
  }), 400);
437
452
  }
438
- // Batching left the protocol in 2025-06-18 but earlier clients still send arrays,
439
- // and answering one is cheaper than explaining why we will not.
440
- const messages = Array.isArray(body) ? body : [body];
441
- if (messages.length === 0)
442
- return c.json(rpcError(null, -32600, 'Invalid Request'), 400);
443
453
  /**
444
454
  * A token minted for some other audience is refused BEFORE the resolver, so a
445
455
  * resolver that verifies only the signature and the issuer cannot let it through. See
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAkDA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,CAAC,EACD,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAU,CAAC;AAEzF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAiC1D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,OAAO,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,YAAY,CAAC,MAAiB;IACrC,qEAAqE;IACrE,2EAA2E;IAC3E,IAAI,CAAE,MAAyC,EAAE,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACjG,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAG1E,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,SAAS,WAAW,CAAC,KAA6C;IAChE,MAAM,KAAK,GAAI,KAAoE,EAAE,KAAK,CAAC;IAC3F,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAI,MAAsF,EAAE,IAAI,EAAE,GAAG,CAAC;QAC/G,IAAI,GAAG,EAAE,IAAI,KAAK,SAAS;YAAE,SAAS;QACtC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,OAA2B;IAC7C,OAAO;QACL,mFAAmF;QACnF,kFAAkF;QAClF,6EAA6E;QAC7E,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,iCAAiC,aAAa,aAAa,iBAAiB,8CAA8C;SACxI;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oDAAoD,EAAE;QAC7F,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE;QAChF,GAAG,CAAC,OAAO,KAAK,SAAS;YACvB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,OAAO,GAAG,EAAE,EAAE,CAAC;KACpG,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,UAA4C;IACrE,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACvD,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAwB,CAAC;QACxD,6EAA6E;QAC7E,IAAI,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,KAAK;YAAE,SAAS;QAE5C,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,gBAAgB,SAAS,UAAU,KAAK,mCAAmC,IAAI,MAAM;gBACnF,2EAA2E,CAC9E,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE5B,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QACxF,MAAM,KAAK,GAAG,QAAyE,CAAC;QACxF,MAAM,WAAW,GAA4B;YAC3C,GAAG,QAAQ;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC3B,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI;YACJ,SAAS;YACT,gFAAgF;YAChF,+EAA+E;YAC/E,iCAAiC;YACjC,WAAW,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,IAAI,SAAS;YACtE,WAAW;YACX,WAAW,EAAE;gBACX,YAAY,EAAE,MAAM,KAAK,KAAK;gBAC9B,eAAe,EAAE,MAAM,KAAK,QAAQ;gBACpC,cAAc,EAAE,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ;aAC5E;YACD,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC;YAC7B,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAgB;IACpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,IAAI,GAAG,mBAAmB,CAAC;IAC/B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YACb,IAAI,GAAG,MAAM,CAAC;YACd,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAsED,MAAM,SAAS,GAAG,CAAC,EAAM,EAAE,MAAe,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAChF,MAAM,QAAQ,GAAG,CAAC,EAAM,EAAE,IAAY,EAAE,OAAe,EAAE,IAAc,EAAE,EAAE,CAAC,CAAC;IAC3E,OAAO,EAAE,KAAK;IACd,EAAE;IACF,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;CAClE,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,KAAc;IAChC,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACzE,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE;KAC/F,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,eAAe,CAAC,aAAiC,EAAE,QAAgB;IAC1E,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CACrG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CACjB,CAAC;QACF,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,oEAAoE;IACnF,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,GAAG,GAAI,MAA4B,CAAC,GAAG,CAAC;IAC9C,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,qFAAqF;IACrF,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iCAAiC,QAAQ,EAAE,CAAC;AAC3F,CAAC;AAED,qFAAqF;AACrF,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,QAAQ,CAAC,GAAY;IAC5B,MAAM,MAAM,GAAI,GAAmC,EAAE,MAAM,CAAC;IAC5D,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ;AACtB,8DAA8D;AAC9D,GAAwB,EACxB,UAA4C,EAC5C,WAA+C,EAC/C,OAAO,GAAqD,EAAE;IAE9D,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,wCAAwC,IAAI,EAAE,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC;QACrD,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,IAAI,GAAG;KAC5C,CAAC;IAEF,kEAAkE;IAClE,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,IAA6B,EAAuC,EAAE;QACtG,iFAAiF;QACjF,oFAAoF;QACpF,IAAI,OAAO,GAA4B,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,0EAA0E;YAC1E,qEAAqE;YACrE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC;gBAC/B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;gBACvB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;gBACzB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;aACxB,CAAC,CAAC;YACH,OAAO,GAAG;gBACR,GAAG,OAAO;gBACV,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7D,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;aAC3D,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,mFAAmF;YACnF,+EAA+E;YAC/E,iFAAiF;YACjF,mFAAmF;YACnF,wEAAwE;YACxE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,EAAE,EAAM,EAAE,MAA2C,EAAE,IAAe,EAAE,EAAE;QAC1F,MAAM,IAAI,GAAG,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAM,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,IAAI,CAAC,IAAI;YAAE,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,iBAAiB,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;QAE5E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACrF,CAAC,CAAE,OAAmC;YACtC,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACxE,OAAO,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,2EAA2E;YAC3E,6EAA6E;YAC7E,6EAA6E;YAC7E,2EAA2E;YAC3E,2EAA2E;YAC3E,mFAAmF;YACnF,mFAAmF;YACnF,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG;gBAAE,MAAM,GAAG,CAAC;YACrC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,EAAE,GAAQ,EAAE,IAAe,EAA0B,EAAE;QACzE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC;QAC1B,MAAM,cAAc,GAAG,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC;QAC5C,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,YAAY,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,CAAC;gBAC9C,MAAM,OAAO,GACX,OAAO,KAAK,KAAK,QAAQ,IAAK,qBAA2C,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACvF,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC/B,OAAO,SAAS,CAAC,EAAE,EAAE;oBACnB,eAAe,EAAE,OAAO;oBACxB,mEAAmE;oBACnE,0EAA0E;oBAC1E,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE;oBAC/C,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;YACD,KAAK,2BAA2B,CAAC;YACjC,KAAK,yBAAyB;gBAC5B,OAAO,IAAI,CAAC;YACd,KAAK,MAAM;gBACT,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACnD,KAAK,YAAY,EAAE,CAAC;gBAClB,OAAO,SAAS,CAAC,EAAE,EAAE;oBACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACvB,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;qBAC3B,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YACD,KAAK,YAAY;gBACf,OAAO,MAAM,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1C;gBACE,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,qBAAqB,GAAG,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;QACvG,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAErC;;;;;;OAMG;IACH,MAAM,WAAW,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,EAAE,EAAE,QAAQ,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE3G;;;;;;;OAOG;IACH,MAAM,YAAY,GAAG,CAAC,CAAU,EAAE,GAAG,MAAgB,EAAU,EAAE;QAC/D,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QACzG,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChE,CAAC,CAAC;IAEF,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAU,EAAE,EAAE;YACpC,MAAM,OAAO,GACX,OAAO,EAAE,CAAC,oBAAoB,KAAK,UAAU;gBAC3C,CAAC,CAAC,MAAM,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAClC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC;YAC9B,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;gBACxB,gFAAgF;gBAChF,+EAA+E;gBAC/E,uEAAuE;gBACvE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,wBAAwB,EAAE,CAAC,QAAQ,CAAC;gBACpC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7E,CAAC,CAAC;QACL,CAAC,CAAC;QACF,kFAAkF;QAClF,8EAA8E;QAC9E,+EAA+E;QAC/E,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7B,GAAG,CAAC,GAAG,CAAC,uCAAuC,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzB,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,kFAAkF;QAClF,gEAAgE;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAc,CAAC,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC;QACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,CAAC;QAEzF;;;;;;;;;;;;;;;WAeG;QACH,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;QACvG,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,IAAI,MAAM,KAAK,SAAS,IAAI,CAAE,qBAA2C,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7G,OAAO,CAAC,CAAC,IAAI,CACX,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,eAAe,mBAAmB,KAAK,MAAM,EAAE,EAAE;gBACtE,SAAS,EAAE,CAAC,GAAG,qBAAqB,CAAC;aACtC,CAAC,EACF,GAAG,CACJ,CAAC;QACJ,CAAC;QAED;;;;;;WAMG;QACH,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7E,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/C,UAAU,CAAC,OAAO,CAAC,GAAG,CACpB,kBAAkB,EAClB,YAAY,CAAC,CAAC,EAAE,uBAAuB,EAAE,sBAAsB,OAAO,GAAG,CAAC,CAC3E,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH;;;;;;;;;eASG;YACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;oBACxD,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACtC,IAAI,KAAK;oBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mFAAmF;YACnF,2DAA2D;YAC3D,EAAE;YACF,iFAAiF;YACjF,wEAAwE;YACxE,iFAAiF;YACjF,oFAAoF;YACpF,8EAA8E;YAC9E,oFAAoF;YACpF,iFAAiF;YACjF,+EAA+E;YAC/E,kFAAkF;YAClF,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG;gBAAE,MAAM,GAAG,CAAC;YACrC,kFAAkF;YAClF,oFAAoF;YACpF,iFAAiF;YACjF,+EAA+E;YAC/E,4EAA4E;YAC5E,wBAAwB;YACxB,EAAE;YACF,6EAA6E;YAC7E,kFAAkF;YAClF,2EAA2E;YAC3E,gFAAgF;YAChF,wCAAwC;YACxC,MAAM,QAAQ,GAAI,GAAgC,EAAE,GAAG,CAAC;YACxD,MAAM,MAAM,GACV,QAAQ,YAAY,QAAQ;gBAC1B,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9E,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;gBAAE,OAAO,MAAM,CAAC;YAC1D,6EAA6E;YAC7E,wEAAwE;YACxE,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9C,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,0EAA0E;QAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,CAAY,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,iFAAiF;IACjF,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,mCAAmC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAE/F,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACvC,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Calling another vertical of the same tenant, from a vertical's own harness (#1706).
3
+ *
4
+ * ```ts
5
+ * const crm = peerClient('acme/crm');
6
+ * const { items } = await crm.invoke<{ items: Customer[] }>('customer/list', { limit: 50 });
7
+ * ```
8
+ *
9
+ * There is no credential here, and no address: the call goes to one reserved, unroutable
10
+ * address, and the platform fills in WHO is calling from the dispatch the harness is running
11
+ * under. What the caller declares is `substrat.calls` in its package.json; what it may do is
12
+ * the target's own `peers` declaration, whose permissions its permission diff reviews.
13
+ *
14
+ * **Where it may be called from.** Harness code — a route handler, or work a route handler
15
+ * starts. NOT module code: an operation, a consumer and a schedule run inside the scope's
16
+ * Durable Object, which has no network by rule, and the platform does not police a fetch
17
+ * raised there. A handler that needs a peer asks for one through a platform intent instead
18
+ * (`ctx.requestPlatform`), which is delivered with the same identity and at-least-once.
19
+ *
20
+ * `fetch` is injectable for one reason: the pure host has no egress worker in front of it, so
21
+ * a dev server or a test passes the local broker's transport instead
22
+ * (`createLocalVerticalBroker` from `@substrat-run/adapter-sqlite/vertical-broker`). A hosted
23
+ * deployment passes nothing and gets the runtime's own `fetch`, which is what carries the
24
+ * call through egress.
25
+ */
26
+ export interface PeerClient {
27
+ /** Invoke one operation on that vertical's instance in this tenant. */
28
+ invoke<O = unknown>(operation: string, input?: unknown, options?: {
29
+ idempotencyKey?: string;
30
+ }): Promise<O>;
31
+ }
32
+ export interface PeerClientOptions {
33
+ /** The transport. Defaults to the runtime's `fetch`, which egress intercepts. */
34
+ fetch?: typeof fetch;
35
+ }
36
+ export declare function peerClient(vertical: string, options?: PeerClientOptions): PeerClient;
37
+ //# sourceMappingURL=peer-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer-client.d.ts","sourceRoot":"","sources":["../src/peer-client.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC5G;AAED,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAaD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAkCxF"}
@@ -0,0 +1,46 @@
1
+ import { globalFetch } from '@substrat-run/kernel';
2
+ import { PEER_CALL_URL, peerCallResponse, substratError } from '@substrat-run/contracts';
3
+ /** What a refused peer call throws: the platform's code and the reason, not a bare status. */
4
+ const REFUSAL_BY_STATUS = {
5
+ 400: 'validation_failed',
6
+ 403: 'forbidden',
7
+ 404: 'not_found',
8
+ 409: 'conflict',
9
+ 429: 'rate_limited',
10
+ 502: 'unavailable',
11
+ 503: 'unavailable',
12
+ };
13
+ export function peerClient(vertical, options = {}) {
14
+ const call = options.fetch ?? globalFetch;
15
+ return {
16
+ async invoke(operation, input, invokeOptions) {
17
+ const response = await call(PEER_CALL_URL, {
18
+ method: 'POST',
19
+ headers: { 'content-type': 'application/json' },
20
+ body: JSON.stringify({
21
+ vertical,
22
+ operation,
23
+ ...(input === undefined ? {} : { input }),
24
+ ...(invokeOptions?.idempotencyKey === undefined
25
+ ? {}
26
+ : { idempotencyKey: invokeOptions.idempotencyKey }),
27
+ }),
28
+ });
29
+ const body = (await response.json().catch(() => null));
30
+ if (!response.ok) {
31
+ // The platform's own words reach the caller: an undeclared target says what to
32
+ // declare, a preview says to use the local broker, an ambiguous tenant says to bind
33
+ // the instance. Swallowing them into "peer call failed" would cost exactly the
34
+ // sentence a builder needs.
35
+ throw substratError(REFUSAL_BY_STATUS[response.status] ?? 'internal', typeof body?.error === 'string'
36
+ ? body.error
37
+ : `the call to '${vertical}' was refused (${response.status})`);
38
+ }
39
+ const parsed = peerCallResponse.safeParse(body);
40
+ if (!parsed.success)
41
+ throw substratError('unavailable', `invalid peer response from '${vertical}'`);
42
+ return parsed.data.result;
43
+ },
44
+ };
45
+ }
46
+ //# sourceMappingURL=peer-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer-client.js","sourceRoot":"","sources":["../src/peer-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAkB,MAAM,yBAAyB,CAAC;AAqCzG,8FAA8F;AAC9F,MAAM,iBAAiB,GAA8B;IACnD,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,aAAa;CACnB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,OAAO,GAAsB,EAAE;IAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC;IAC1C,OAAO;QACL,KAAK,CAAC,MAAM,CAAI,SAAiB,EAAE,KAAe,EAAE,aAA2C;YAC7F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE;gBACzC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,QAAQ;oBACR,SAAS;oBACT,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;oBACzC,GAAG,CAAC,aAAa,EAAE,cAAc,KAAK,SAAS;wBAC7C,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,cAAc,EAAE,aAAa,CAAC,cAAc,EAAE,CAAC;iBACtD,CAAC;aACH,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAiD,CAAC;YACvG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,+EAA+E;gBAC/E,oFAAoF;gBACpF,+EAA+E;gBAC/E,4BAA4B;gBAC5B,MAAM,aAAa,CACjB,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,EAChD,OAAO,IAAI,EAAE,KAAK,KAAK,QAAQ;oBAC7B,CAAC,CAAC,IAAI,CAAC,KAAK;oBACZ,CAAC,CAAC,gBAAgB,QAAQ,kBAAkB,QAAQ,CAAC,MAAM,GAAG,CACjE,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,aAAa,CAAC,aAAa,EAAE,+BAA+B,QAAQ,GAAG,CAAC,CAAC;YACpG,OAAO,MAAM,CAAC,IAAI,CAAC,MAAW,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/vertical-host",
3
- "version": "0.118.0",
3
+ "version": "0.119.0",
4
4
  "description": "The platform's /internal/* surface + error envelope, authored once — mount it in a vertical worker instead of re-copying the control-plane contract",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -29,15 +29,15 @@
29
29
  "ai": "7.0.62",
30
30
  "hono": "^4.6.0",
31
31
  "workers-ai-provider": "^4.0.0",
32
- "@substrat-run/contracts": "^0.118.0",
33
- "@substrat-run/model-providers": "^0.5.8",
34
- "@substrat-run/kernel": "^0.118.0"
32
+ "@substrat-run/contracts": "^0.119.0",
33
+ "@substrat-run/kernel": "^0.119.0",
34
+ "@substrat-run/model-providers": "^0.5.9"
35
35
  },
36
36
  "devDependencies": {
37
37
  "typescript": "^7.0.0",
38
38
  "vitest": "^3.2.7",
39
- "@substrat-run/adapter-sqlite": "^0.118.0",
40
- "@substrat-run/contract-tests": "^0.118.0"
39
+ "@substrat-run/adapter-sqlite": "^0.119.0",
40
+ "@substrat-run/contract-tests": "^0.119.0"
41
41
  },
42
42
  "publishConfig": {
43
43
  "access": "public"