@ggui-ai/protocol 0.8.0 → 0.9.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.
Files changed (38) hide show
  1. package/dist/gadgets/stdlib-gadgets.d.ts +1 -1
  2. package/dist/gadgets/stdlib-gadgets.js +1 -1
  3. package/dist/integrations/epoch-uri.d.ts +42 -0
  4. package/dist/integrations/epoch-uri.d.ts.map +1 -0
  5. package/dist/integrations/epoch-uri.js +48 -0
  6. package/dist/integrations/mcp-apps.d.ts +89 -5
  7. package/dist/integrations/mcp-apps.d.ts.map +1 -1
  8. package/dist/integrations/mcp-apps.js +50 -1
  9. package/dist/schemas/invoke.d.ts +1 -1
  10. package/dist/schemas/invoke.js +1 -1
  11. package/dist/schemas/mcp.d.ts +218 -6
  12. package/dist/schemas/mcp.d.ts.map +1 -1
  13. package/dist/schemas/mcp.js +271 -13
  14. package/dist/types/data-contract.d.ts +2 -2
  15. package/dist/types/ggui-session-event.d.ts +42 -1
  16. package/dist/types/ggui-session-event.d.ts.map +1 -1
  17. package/dist/types/ggui-session-event.js +16 -1
  18. package/dist/types/live-channel.d.ts +8 -0
  19. package/dist/types/live-channel.d.ts.map +1 -1
  20. package/dist/types/llm-route.d.ts +2 -2
  21. package/dist/types/llm-route.d.ts.map +1 -1
  22. package/dist/types/llm-route.js +26 -8
  23. package/dist/types/mcp.d.ts +28 -1
  24. package/dist/types/mcp.d.ts.map +1 -1
  25. package/dist/types/render.d.ts +12 -0
  26. package/dist/types/render.d.ts.map +1 -1
  27. package/dist/types/ui-generator.d.ts +20 -3
  28. package/dist/types/ui-generator.d.ts.map +1 -1
  29. package/dist/validation/contract-validator.d.ts +2 -2
  30. package/dist/validation/contract-validator.d.ts.map +1 -1
  31. package/dist/validation/resolve-stream-channel.d.ts +2 -2
  32. package/dist/validation/resolve-stream-channel.js +2 -2
  33. package/dist/validation/ui-security.d.ts +2 -2
  34. package/dist/validation/ui-security.js +2 -2
  35. package/dist/version.d.ts +150 -0
  36. package/dist/version.d.ts.map +1 -1
  37. package/dist/version.js +150 -0
  38. package/package.json +1 -1
@@ -12,7 +12,7 @@ export declare const STDLIB_GADGETS_PACKAGE = "@ggui-ai/gadgets";
12
12
  * in `@ggui-ai/gadgets` asserts the two stay in sync, so a release-time
13
13
  * bump to the runtime package without updating this constant fails CI.
14
14
  */
15
- export declare const STDLIB_GADGETS_VERSION = "0.8.0";
15
+ export declare const STDLIB_GADGETS_VERSION = "0.9.0";
16
16
  /**
17
17
  * v1 catalog of stdlib gadget descriptors. Every entry's
18
18
  * `package` defaults to {@link STDLIB_GADGETS_PACKAGE}; the
@@ -39,7 +39,7 @@ export const STDLIB_GADGETS_PACKAGE = '@ggui-ai/gadgets';
39
39
  * in `@ggui-ai/gadgets` asserts the two stay in sync, so a release-time
40
40
  * bump to the runtime package without updating this constant fails CI.
41
41
  */
42
- export const STDLIB_GADGETS_VERSION = '0.8.0';
42
+ export const STDLIB_GADGETS_VERSION = '0.9.0';
43
43
  /**
44
44
  * v1 catalog of stdlib gadget descriptors. Every entry's
45
45
  * `package` defaults to {@link STDLIB_GADGETS_PACKAGE}; the
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Epoch-pinned resource URIs (#483).
3
+ *
4
+ * A session's history is a linear chain of epoch-numbered render
5
+ * records: `ggui_render` mints epoch 0; every `ggui_update` advances
6
+ * the head by one (`ggui_amend` never does). The epoch rides the
7
+ * resource URI:
8
+ *
9
+ * - **Bare URI** (`ui://ggui/render/<sessionId>[/<contractKey>]`) —
10
+ * the LIVE HEAD. Reads track the session's current state.
11
+ * - **Pinned URI** (`…#N`) — the immutable epoch-N record. Reads
12
+ * MUST serve identical content forever (conformance-pinned).
13
+ *
14
+ * This module is the ONE encoding seam: every producer (result-meta
15
+ * stamping, resource templates) and consumer (iframe-runtime latch,
16
+ * pinned reads) routes through these two functions, so the encoding
17
+ * (URI fragment today) can flip to a path segment after the
18
+ * host-transport probe without touching call sites. Do not hand-roll
19
+ * `#${n}` anywhere else.
20
+ */
21
+ export declare const EPOCH_URI_SEPARATOR = "#";
22
+ /**
23
+ * Compose the pinned URI for an epoch. Throws on non-integer or
24
+ * negative epochs — a producer stamping a bogus epoch is a bug that
25
+ * must be loud, not a tolerable wire variant.
26
+ */
27
+ export declare function composeEpochUri(baseUri: string, epoch: number): string;
28
+ export interface ParsedEpochUri {
29
+ /** The URI with any epoch pin removed — the live-head address. */
30
+ readonly baseUri: string;
31
+ /** Present iff the URI carried a well-formed epoch pin. */
32
+ readonly epoch?: number;
33
+ }
34
+ /**
35
+ * Tolerant read — never throws. A malformed suffix (non-canonical
36
+ * number, leading zeros, empty) is NOT an epoch: the whole input
37
+ * passes through as `baseUri` so an exotic-but-legal URI is never
38
+ * mangled by mis-parsing. Canonical epochs only: `0` or a digit
39
+ * string with no leading zero.
40
+ */
41
+ export declare function parseEpochUri(uri: string): ParsedEpochUri;
42
+ //# sourceMappingURL=epoch-uri.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epoch-uri.d.ts","sourceRoot":"","sources":["../../src/integrations/epoch-uri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKtE;AAED,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAMzD"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Epoch-pinned resource URIs (#483).
3
+ *
4
+ * A session's history is a linear chain of epoch-numbered render
5
+ * records: `ggui_render` mints epoch 0; every `ggui_update` advances
6
+ * the head by one (`ggui_amend` never does). The epoch rides the
7
+ * resource URI:
8
+ *
9
+ * - **Bare URI** (`ui://ggui/render/<sessionId>[/<contractKey>]`) —
10
+ * the LIVE HEAD. Reads track the session's current state.
11
+ * - **Pinned URI** (`…#N`) — the immutable epoch-N record. Reads
12
+ * MUST serve identical content forever (conformance-pinned).
13
+ *
14
+ * This module is the ONE encoding seam: every producer (result-meta
15
+ * stamping, resource templates) and consumer (iframe-runtime latch,
16
+ * pinned reads) routes through these two functions, so the encoding
17
+ * (URI fragment today) can flip to a path segment after the
18
+ * host-transport probe without touching call sites. Do not hand-roll
19
+ * `#${n}` anywhere else.
20
+ */
21
+ export const EPOCH_URI_SEPARATOR = '#';
22
+ /**
23
+ * Compose the pinned URI for an epoch. Throws on non-integer or
24
+ * negative epochs — a producer stamping a bogus epoch is a bug that
25
+ * must be loud, not a tolerable wire variant.
26
+ */
27
+ export function composeEpochUri(baseUri, epoch) {
28
+ if (!Number.isInteger(epoch) || epoch < 0) {
29
+ throw new Error(`epoch must be a non-negative integer, got ${epoch}`);
30
+ }
31
+ return `${baseUri}${EPOCH_URI_SEPARATOR}${epoch}`;
32
+ }
33
+ /**
34
+ * Tolerant read — never throws. A malformed suffix (non-canonical
35
+ * number, leading zeros, empty) is NOT an epoch: the whole input
36
+ * passes through as `baseUri` so an exotic-but-legal URI is never
37
+ * mangled by mis-parsing. Canonical epochs only: `0` or a digit
38
+ * string with no leading zero.
39
+ */
40
+ export function parseEpochUri(uri) {
41
+ const idx = uri.lastIndexOf(EPOCH_URI_SEPARATOR);
42
+ if (idx < 0)
43
+ return { baseUri: uri };
44
+ const suffix = uri.slice(idx + 1);
45
+ if (!/^(0|[1-9][0-9]*)$/.test(suffix))
46
+ return { baseUri: uri };
47
+ return { baseUri: uri.slice(0, idx), epoch: Number(suffix) };
48
+ }
@@ -49,6 +49,7 @@ export declare const GGUI_RENDER_RESOURCE_URI: "ui://ggui/render";
49
49
  * render them as plain HTML.
50
50
  */
51
51
  export declare const GGUI_RENDER_RESOURCE_MIME: "text/html;profile=mcp-app";
52
+ export { composeEpochUri, parseEpochUri, EPOCH_URI_SEPARATOR, type ParsedEpochUri, } from './epoch-uri.js';
52
53
  /**
53
54
  * The single `_meta.ui.resourceUri` value ggui uses across every MCP Apps
54
55
  * host surface. Exposed as a named constant so tool-declaration code,
@@ -192,11 +193,44 @@ export interface McpAppContextSlot {
192
193
  * WS auth credential the iframe threads on the WebSocket upgrade as
193
194
  * `?wsToken=<encoded>` and inside `SubscribePayload.wsToken`.
194
195
  *
195
- * **Polling-fallback URL.** When WS is blocked at the host CSP layer
196
- * the iframe polls `pollingUrl` (server-stamped post-Phase-B as
197
- * `/api/sessions/<sessionId>/events?wsToken=<token>`). The iframe-runtime
198
- * composes per-tick `&sinceSequence=<cursor>&limit=<N>` against this
199
- * base; companion to `lastSequence` which seeds the initial cursor.
196
+ * **Failover ladder (WS → SSE → polling).** `sseUrl` and `pollingUrl`
197
+ * are the two HTTP fallback rungs the iframe-runtime descends when the
198
+ * WS rung fails (host CSP block, proxy, network policy). Both are
199
+ * stamped by the SERVER via {@link composeSessionApiUrls} — one
200
+ * composer for every stamping surface — and consumed by the
201
+ * IFRAME-RUNTIME. Auth for both is the embedded `wsToken` query
202
+ * credential (`EventSource` cannot set request headers, so the query
203
+ * string is the only channel — same posture on both rungs), which is
204
+ * why each URL is stamped ONLY when the live trio was minted.
205
+ * Absence semantics: `sseUrl` absent ⇒ no SSE rung (ladder is
206
+ * WS → polling); `pollingUrl` absent ⇒ no polling rung.
207
+ *
208
+ * `pollingUrl` (server-stamped
209
+ * `/api/sessions/<sessionId>/events?wsToken=<token>`): the
210
+ * iframe-runtime composes per-tick `&sinceSequence=<cursor>&limit=<N>`
211
+ * against this base; companion to `lastSequence` which seeds the
212
+ * initial cursor.
213
+ *
214
+ * `sseUrl` (server-stamped
215
+ * `/api/sessions/<sessionId>/stream?wsToken=<token>`): consumed via
216
+ * `EventSource`. Server obligations — the endpoint serves
217
+ * `text/event-stream` where each SSE message's `data:` is EXACTLY one
218
+ * ChannelFrame JSON (`{type, payload}` — byte-same shape as the WS
219
+ * push); a message's `id:` is the decimal event-ledger `seq` (the SAME
220
+ * cursor space as `lastSequence`/`sinceSequence`), stamped ONLY on
221
+ * ledger-backed `render_event` replay frames — live frames are id-less
222
+ * (same ephemeral posture as WS) — so the browser's automatic
223
+ * `Last-Event-ID` reconnect header IS the existing cursor replay; the
224
+ * server emits a comment heartbeat (`: hb`, no `id:`) at least every
225
+ * ~25s (proxy/ALB idle-timeout floor) and `retry: 3000` as the first
226
+ * write after headers. Client obligations — append
227
+ * `&sinceSequence=<lastSequence>` on FIRST connect (before any
228
+ * `Last-Event-ID` exists); on reconnect the header WINS over the
229
+ * query. Failure modes mirror `/events`: 401 invalid token; 404
230
+ * evicted → stop; 410 expired / `REPLAY_HORIZON_PASSED` →
231
+ * re-bootstrap (the horizon violation is an in-band error frame
232
+ * carrying `resumeId: String(lastSequence)`, so the browser cursor
233
+ * advances and the ack snapshot re-mounts state).
200
234
  *
201
235
  * **Mode discriminator.** At least one of `{ codeUrl, codeB64, kind,
202
236
  * wsUrl-with-token }` MUST be present for the iframe to mount. `kind` is
@@ -214,6 +248,7 @@ export interface McpAppAiGguiRenderMeta {
214
248
  readonly wsToken?: string;
215
249
  readonly expiresAt?: string;
216
250
  readonly pollingUrl?: string;
251
+ readonly sseUrl?: string;
217
252
  readonly themeId?: string;
218
253
  readonly themeMode?: 'light' | 'dark';
219
254
  /**
@@ -239,6 +274,15 @@ export interface McpAppAiGguiRenderMeta {
239
274
  * from a cursor.
240
275
  */
241
276
  readonly lastSequence?: number;
277
+ /**
278
+ * History head epoch this mount belongs to (#483, SPEC §7.1.2.2).
279
+ * `ggui_render` mints epoch 0; each `ggui_update` result carries its
280
+ * new epoch; a pinned `#N` read carries N. The iframe reads it at
281
+ * boot as its OWN epoch: when a later `props_update` frame carries a
282
+ * HIGHER epoch, this mount has been superseded and freezes (the
283
+ * freeze latch). Absent ⇒ 0.
284
+ */
285
+ readonly epoch?: number;
242
286
  readonly propsJson?: string;
243
287
  readonly contextSlots?: ReadonlyArray<McpAppContextSlot>;
244
288
  readonly contractHash?: string;
@@ -296,6 +340,39 @@ export declare function parseMcpAppAiGguiRenderMeta(meta: unknown): ParseMcpAppA
296
340
  * @public
297
341
  */
298
342
  export declare function toMcpAppEnvelope(render: McpAppAiGguiRenderMeta): Record<string, unknown>;
343
+ /**
344
+ * Token-bearing session-API URL pair — the return shape of
345
+ * {@link composeSessionApiUrls}. Field names deliberately match the
346
+ * {@link McpAppAiGguiRenderMeta} slice fields they stamp, so callers
347
+ * spread the pair straight into a slice literal.
348
+ *
349
+ * @public
350
+ */
351
+ export interface SessionApiUrls {
352
+ /** `${base}/api/sessions/<sessionId>/events?wsToken=<token>` */
353
+ readonly pollingUrl: string;
354
+ /** `${base}/api/sessions/<sessionId>/stream?wsToken=<token>` */
355
+ readonly sseUrl: string;
356
+ }
357
+ /**
358
+ * Compose the token-bearing session-API URL pair — ONE composer for
359
+ * every stamping surface (render resultMeta, update resultMeta, the
360
+ * self-contained shell, the `/api/sessions/:id/state` bootstrap). Same
361
+ * move as `deriveRenderMeta`: because every surface routes through this
362
+ * function, cross-transport drift in the URL shapes is structurally
363
+ * impossible.
364
+ *
365
+ * Pure string composition, no I/O. `base` is the absolute public
366
+ * origin the session API is served on (a trailing `/` is tolerated and
367
+ * stripped); `sessionId` and `wsToken` are URL-encoded into path and
368
+ * query. Callers MUST invoke this only when the live trio was minted —
369
+ * both URLs embed the token, and a token-less URL can only 401 through
370
+ * the fallback composers; omission of both fields is the honest
371
+ * no-HTTP-fallback signal the slice contract defines.
372
+ *
373
+ * @public
374
+ */
375
+ export declare function composeSessionApiUrls(base: string, sessionId: string, wsToken: string): SessionApiUrls;
299
376
  /**
300
377
  * `_meta` key carrying host-supplied conversation-grouping metadata on
301
378
  * every inbound `tools/call` request. Captured ONCE on the first call
@@ -465,6 +542,13 @@ export interface McpAppsGguiSession {
465
542
  readonly type: 'mcpApps';
466
543
  readonly id: string;
467
544
  readonly createdAt: string;
545
+ /**
546
+ * History head epoch (#483) — same semantics as
547
+ * `GguiSessionBase.epoch` (absent ⇒ 0; advanced only by
548
+ * `ggui_update`). Declared here too because this variant does not
549
+ * extend the base.
550
+ */
551
+ readonly epoch?: number;
468
552
  readonly prompt?: string;
469
553
  readonly description?: string;
470
554
  readonly message?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-apps.d.ts","sourceRoot":"","sources":["../../src/integrations/mcp-apps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAG,4BAAqC,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAG,kBAA2B,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAG,2BAAoC,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;IAC9B,kFAAkF;;IAElF,kEAAkE;;CAE1D,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,KAAK,CAAC;AAEpD;;;;;;;;;GASG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,0BAA0B;IACzC,sEAAsE;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGzD;AA0CD;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,EAAG,gBAAyB,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B;;;oEAGgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;mEAE+D;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;yDAGqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;yDACqD;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;4EACwE;IACxE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B;uEACmE;IACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,sBAAsB;IAGrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAG5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAI5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAG7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACtC;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAG1B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE/C;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAG/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAMzD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAOhC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iCAAiC,GACzC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,sBAAsB,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,OAAO,GACZ,iCAAiC,CAiJnC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AAYD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qCAAqC,EAAG,sBAA+B,CAAC;AAErF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,sCAAsC,GAC9C;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,2BAA2B,CAAA;CAAE,GACzE;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAEtE;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,OAAO,GACZ,sCAAsC,CA2BxC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAMD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;gCAC4B;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;iCAC6B;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAGzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;IAE1D;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAOlC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAMhF;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,kBAAkB,GAAG,IAAI,CAE3B;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,YAAY,GACZ,OAAO,GACP,cAAc,CAAC;AAEnB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;CACtC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,oBAAoB,EAK1D,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,sBAAsB,CA2BnC;AA4BD,6EAA6E;AAC7E,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AAEjE,0EAA0E;AAC1E,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAErE,uEAAuE;AACvE,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,sBAAsB,CAAC,MAAM,CAChD,CAAC;AAEnB;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,OAAO,2BAA2B,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,IAAI,EAAE,OAAO,6BAA6B,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,UAAU,GACV,oBAAoB,GACpB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE;QAChB,yDAAyD;QACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB;;;WAGG;QACH,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;QACtC;;;;;;;;;WASG;QACH,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;KAChC,CAAC;CACH,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;KAChE,CAAC;CACH,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,GAAG;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,yDAIgB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,qBAAqB,CAoChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;QAC9B,QAAQ,CAAC,IAAI,EAAE;YAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;CACH;AAmCD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnD;AAmBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,GACZ,mBAAmB,GAAG,SAAS,CAUjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,GACd,mBAAmB,GAAG,SAAS,CAGjC;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,uCAAuC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;IAChD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,mBAAmB,EAC9B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,CAyCR"}
1
+ {"version":3,"file":"mcp-apps.d.ts","sourceRoot":"","sources":["../../src/integrations/mcp-apps.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,11 @@ export const GGUI_RENDER_RESOURCE_URI = 'ui://ggui/render';
49
49
  * render them as plain HTML.
50
50
  */
51
51
  export const GGUI_RENDER_RESOURCE_MIME = 'text/html;profile=mcp-app';
52
+ // Epoch-pinned resource URIs (#483) — bare URI = live head, `#N` =
53
+ // immutable history record. Re-exported here because this module is
54
+ // the package's MCP-Apps export surface; the seam itself lives in
55
+ // epoch-uri.ts (ONE place to flip the encoding).
56
+ export { composeEpochUri, parseEpochUri, EPOCH_URI_SEPARATOR, } from './epoch-uri.js';
52
57
  /**
53
58
  * The single `_meta.ui.resourceUri` value ggui uses across every MCP Apps
54
59
  * host surface. Exposed as a named constant so tool-declaration code,
@@ -96,7 +101,7 @@ export function deriveContextName(slotKey) {
96
101
  // "ai.ggui/render": {
97
102
  // sessionId, appId, runtimeUrl,
98
103
  // wsUrl?, wsToken?, expiresAt?,
99
- // pollingUrl?,
104
+ // pollingUrl?, sseUrl?,
100
105
  // themeId?, themeMode?, theme?,
101
106
  // gadgets?, publicEnv?, streamWebSocketLocalTools?,
102
107
  // permissionsPolicy?,
@@ -177,6 +182,17 @@ export function parseMcpAppAiGguiRenderMeta(meta) {
177
182
  (typeof ls !== 'number' || !Number.isInteger(ls) || ls < 0)) {
178
183
  return { ok: false, reason: 'MALFORMED_RENDER' };
179
184
  }
185
+ // `epoch` (#483) mirrors lastSequence's invariant: the freeze-latch
186
+ // self-epoch is a non-negative integer when present. This parser
187
+ // REBUILDS the slice field-by-field, so a field missing from the
188
+ // constructor below is silently deleted from every downstream
189
+ // consumer — epoch was exactly such a drop (probe 18 round 3: the
190
+ // head card booted believing epoch 0 and froze on its own amend).
191
+ const ep = s.epoch;
192
+ if (ep !== undefined &&
193
+ (typeof ep !== 'number' || !Number.isInteger(ep) || ep < 0)) {
194
+ return { ok: false, reason: 'MALFORMED_RENDER' };
195
+ }
180
196
  // Component-mode discriminator: kind mutually exclusive with
181
197
  // codeUrl/codeB64 (the two static-component carriers may coexist —
182
198
  // consumers prefer the inline bytes).
@@ -222,6 +238,11 @@ export function parseMcpAppAiGguiRenderMeta(meta) {
222
238
  ...(hasW && hasT ? { wsUrl: aw, wsToken: at } : {}),
223
239
  ...(ae !== undefined ? { expiresAt: ae } : {}),
224
240
  ...(s.pollingUrl !== undefined ? { pollingUrl: s.pollingUrl } : {}),
241
+ // Same tolerant scalar posture as pollingUrl; deliberately NO
242
+ // wsToken-pairing invariant — the URL is self-authorizing via its
243
+ // embedded token; field-level defense lives downstream in the
244
+ // iframe-runtime's `validateMeta`.
245
+ ...(s.sseUrl !== undefined ? { sseUrl: s.sseUrl } : {}),
225
246
  ...(s.themeId !== undefined ? { themeId: s.themeId } : {}),
226
247
  ...(s.themeMode !== undefined
227
248
  ? { themeMode: s.themeMode }
@@ -247,6 +268,7 @@ export function parseMcpAppAiGguiRenderMeta(meta) {
247
268
  ? { permissionsPolicy: s.permissionsPolicy }
248
269
  : {}),
249
270
  ...(ls !== undefined ? { lastSequence: ls } : {}),
271
+ ...(ep !== undefined ? { epoch: ep } : {}),
250
272
  ...(s.propsJson !== undefined ? { propsJson: s.propsJson } : {}),
251
273
  ...(s.contextSlots !== undefined
252
274
  ? {
@@ -277,6 +299,33 @@ export function toMcpAppEnvelope(render) {
277
299
  [MCP_APP_AI_GGUI_RENDER_META_KEY]: render,
278
300
  };
279
301
  }
302
+ /**
303
+ * Compose the token-bearing session-API URL pair — ONE composer for
304
+ * every stamping surface (render resultMeta, update resultMeta, the
305
+ * self-contained shell, the `/api/sessions/:id/state` bootstrap). Same
306
+ * move as `deriveRenderMeta`: because every surface routes through this
307
+ * function, cross-transport drift in the URL shapes is structurally
308
+ * impossible.
309
+ *
310
+ * Pure string composition, no I/O. `base` is the absolute public
311
+ * origin the session API is served on (a trailing `/` is tolerated and
312
+ * stripped); `sessionId` and `wsToken` are URL-encoded into path and
313
+ * query. Callers MUST invoke this only when the live trio was minted —
314
+ * both URLs embed the token, and a token-less URL can only 401 through
315
+ * the fallback composers; omission of both fields is the honest
316
+ * no-HTTP-fallback signal the slice contract defines.
317
+ *
318
+ * @public
319
+ */
320
+ export function composeSessionApiUrls(base, sessionId, wsToken) {
321
+ const b = base.replace(/\/$/, '');
322
+ const sid = encodeURIComponent(sessionId);
323
+ const tok = encodeURIComponent(wsToken);
324
+ return {
325
+ pollingUrl: `${b}/api/sessions/${sid}/events?wsToken=${tok}`,
326
+ sseUrl: `${b}/api/sessions/${sid}/stream?wsToken=${tok}`,
327
+ };
328
+ }
280
329
  // =============================================================================
281
330
  // Request-side `_meta` — host-supplied metadata on inbound `tools/call`.
282
331
  //
@@ -8,7 +8,7 @@
8
8
  * client tools — no ggui-specific block type.
9
9
  *
10
10
  * TS types in types/invoke.ts are derived from these via z.infer. Consumers
11
- * (@ggui-ai/server, @ggui-ai/react) import schemas for runtime validation
11
+ * (@ggui-ai/server, @ggui-ai/mcp-apps-react) import schemas for runtime validation
12
12
  * and types for authoring.
13
13
  */
14
14
  import { z } from 'zod';
@@ -8,7 +8,7 @@
8
8
  * client tools — no ggui-specific block type.
9
9
  *
10
10
  * TS types in types/invoke.ts are derived from these via z.infer. Consumers
11
- * (@ggui-ai/server, @ggui-ai/react) import schemas for runtime validation
11
+ * (@ggui-ai/server, @ggui-ai/mcp-apps-react) import schemas for runtime validation
12
12
  * and types for authoring.
13
13
  */
14
14
  import { z } from 'zod';