@ggui-ai/protocol 0.8.0 → 0.10.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 (75) hide show
  1. package/dist/gadgets/stdlib-gadgets.d.ts +1 -1
  2. package/dist/gadgets/stdlib-gadgets.d.ts.map +1 -1
  3. package/dist/gadgets/stdlib-gadgets.js +1 -1
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +7 -0
  7. package/dist/integrations/epoch-uri.d.ts +42 -0
  8. package/dist/integrations/epoch-uri.d.ts.map +1 -0
  9. package/dist/integrations/epoch-uri.js +48 -0
  10. package/dist/integrations/mcp-apps.d.ts +139 -6
  11. package/dist/integrations/mcp-apps.d.ts.map +1 -1
  12. package/dist/integrations/mcp-apps.js +117 -2
  13. package/dist/registry/props-schema-hash.d.ts +3 -0
  14. package/dist/registry/props-schema-hash.d.ts.map +1 -0
  15. package/dist/registry/props-schema-hash.js +23 -0
  16. package/dist/schemas/blueprint.d.ts +2 -0
  17. package/dist/schemas/blueprint.d.ts.map +1 -1
  18. package/dist/schemas/blueprint.js +9 -0
  19. package/dist/schemas/data-contract.d.ts +61 -7
  20. package/dist/schemas/data-contract.d.ts.map +1 -1
  21. package/dist/schemas/data-contract.js +73 -14
  22. package/dist/schemas/handshake-suggestion.d.ts +3 -6
  23. package/dist/schemas/handshake-suggestion.d.ts.map +1 -1
  24. package/dist/schemas/handshake-suggestion.js +11 -9
  25. package/dist/schemas/invoke.d.ts +1 -1
  26. package/dist/schemas/invoke.js +1 -1
  27. package/dist/schemas/mcp.d.ts +238 -6
  28. package/dist/schemas/mcp.d.ts.map +1 -1
  29. package/dist/schemas/mcp.js +286 -14
  30. package/dist/schemas/ops-blueprint.d.ts +19 -10
  31. package/dist/schemas/ops-blueprint.d.ts.map +1 -1
  32. package/dist/schemas/ops-blueprint.js +39 -10
  33. package/dist/types/blueprint.d.ts +12 -0
  34. package/dist/types/blueprint.d.ts.map +1 -1
  35. package/dist/types/contract-inference.d.ts +5 -1
  36. package/dist/types/contract-inference.d.ts.map +1 -1
  37. package/dist/types/data-contract.d.ts +14 -4
  38. package/dist/types/data-contract.d.ts.map +1 -1
  39. package/dist/types/ggui-session-event.d.ts +42 -1
  40. package/dist/types/ggui-session-event.d.ts.map +1 -1
  41. package/dist/types/ggui-session-event.js +16 -1
  42. package/dist/types/live-channel.d.ts +8 -0
  43. package/dist/types/live-channel.d.ts.map +1 -1
  44. package/dist/types/llm-route.d.ts +3 -3
  45. package/dist/types/llm-route.d.ts.map +1 -1
  46. package/dist/types/llm-route.js +27 -8
  47. package/dist/types/llm.d.ts +1 -1
  48. package/dist/types/llm.d.ts.map +1 -1
  49. package/dist/types/llm.js +22 -5
  50. package/dist/types/mcp.d.ts +53 -3
  51. package/dist/types/mcp.d.ts.map +1 -1
  52. package/dist/types/render.d.ts +45 -0
  53. package/dist/types/render.d.ts.map +1 -1
  54. package/dist/types/render.js +26 -1
  55. package/dist/types/ui-generator.d.ts +20 -3
  56. package/dist/types/ui-generator.d.ts.map +1 -1
  57. package/dist/validation/ajv-runtime.d.ts +26 -6
  58. package/dist/validation/ajv-runtime.d.ts.map +1 -1
  59. package/dist/validation/ajv-runtime.js +87 -9
  60. package/dist/validation/contract-validator.d.ts +106 -35
  61. package/dist/validation/contract-validator.d.ts.map +1 -1
  62. package/dist/validation/contract-validator.js +152 -42
  63. package/dist/validation/enforced-props-schema.d.ts +56 -0
  64. package/dist/validation/enforced-props-schema.d.ts.map +1 -0
  65. package/dist/validation/enforced-props-schema.js +232 -0
  66. package/dist/validation/resolve-stream-channel.d.ts +2 -2
  67. package/dist/validation/resolve-stream-channel.js +2 -2
  68. package/dist/validation/schema-subset.d.ts.map +1 -1
  69. package/dist/validation/schema-subset.js +27 -10
  70. package/dist/validation/ui-security.d.ts +2 -2
  71. package/dist/validation/ui-security.js +2 -2
  72. package/dist/version.d.ts +319 -2
  73. package/dist/version.d.ts.map +1 -1
  74. package/dist/version.js +318 -1
  75. package/package.json +7 -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.10.0";
16
16
  /**
17
17
  * v1 catalog of stdlib gadget descriptors. Every entry's
18
18
  * `package` defaults to {@link STDLIB_GADGETS_PACKAGE}; the
@@ -1 +1 @@
1
- {"version":3,"file":"stdlib-gadgets.d.ts","sourceRoot":"","sources":["../../src/gadgets/stdlib-gadgets.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,QAAQ,CAAC,gBAAgB,CAAC,EAkH/D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAUnD,CAAC"}
1
+ {"version":3,"file":"stdlib-gadgets.d.ts","sourceRoot":"","sources":["../../src/gadgets/stdlib-gadgets.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAE/C;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,QAAQ,CAAC,gBAAgB,CAAC,EAkH/D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAUnD,CAAC"}
@@ -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.10.0';
43
43
  /**
44
44
  * v1 catalog of stdlib gadget descriptors. Every entry's
45
45
  * `package` defaults to {@link STDLIB_GADGETS_PACKAGE}; the
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export * from "./schemas/data-contract";
13
13
  export * from "./schemas/app-theme";
14
14
  export { canonicalizeContracts, canonicalizeValue } from "./registry/canonicalize-contract";
15
15
  export { summarizeContract } from "./registry/summarize-contract";
16
+ export { buildEnforcedPropsSchema, canonicalPropsSchemaBytes, classifyPropsSchemaProfile, GRAMMAR_SAFE_FORMATS, GRAMMAR_SAFE_KEYWORDS, type PropsSchemaProfile, } from "./validation/enforced-props-schema";
16
17
  export type { TextBlock, ToolUseBlock, ToolResultBlock, ContentBlock, InvokeEvent, InvokeErrorCode, InvokeTurn, } from "./types/invoke";
17
18
  export * from "./types/llm";
18
19
  export * from "./types/llm-route";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAI/B,cAAc,sBAAsB,CAAC;AAOrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAIxC,cAAc,qBAAqB,CAAC;AAIpC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAK5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAMlE,YAAY,EAEV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EAEZ,WAAW,EACX,eAAe,EAEf,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAI/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AAKnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AAGjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAI/B,cAAc,sBAAsB,CAAC;AAOrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAIxC,cAAc,qBAAqB,CAAC;AAIpC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAK5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAOlE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,kBAAkB,GACxB,MAAM,oCAAoC,CAAC;AAM5C,YAAY,EAEV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EAEZ,WAAW,EACX,eAAe,EAEf,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAI/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AAKnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AAGjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oCAAoC,CAAC"}
package/dist/index.js CHANGED
@@ -32,6 +32,13 @@ export { canonicalizeContracts, canonicalizeValue } from "./registry/canonicaliz
32
32
  // as `./content-hash`. Server consumers import from the subpath:
33
33
  // import { blueprintKey } from '@ggui-ai/protocol/blueprint-key';
34
34
  export { summarizeContract } from "./registry/summarize-contract.js";
35
+ // Enforced props schema — the schema-precise render wire artifact
36
+ // (P1): the exact schema ggui_render enforces for a handshake, in
37
+ // emission form, plus the grammar-safe profile classifier and the
38
+ // RFC 8785 canonical serializer. Browser-safe (pure). The sha256
39
+ // hash helper is server-only at `@ggui-ai/protocol/props-schema-hash`
40
+ // (node:crypto — same convention as `./blueprint-key`).
41
+ export { buildEnforcedPropsSchema, canonicalPropsSchemaBytes, classifyPropsSchemaProfile, GRAMMAR_SAFE_FORMATS, GRAMMAR_SAFE_KEYWORDS, } from "./validation/enforced-props-schema.js";
35
42
  export * from "./types/llm.js";
36
43
  export * from "./types/llm-route.js";
37
44
  export * from "./types/interface-context.js";
@@ -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,12 +274,34 @@ 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;
245
289
  readonly validatorsUrl?: string;
246
290
  readonly codeUrl?: string;
247
291
  readonly codeHash?: string;
292
+ /**
293
+ * Strict-CSP module variant of {@link codeUrl} (ggui#522 slice 2):
294
+ * the SAME component bytes, server-side import-rewritten so every
295
+ * bare specifier resolves to a static shim asset on the code origin
296
+ * — directly `import()`able under a `script-src` that allows only
297
+ * that origin (no `blob:`, no `data:`, no `'unsafe-eval'`). The
298
+ * renderer tries this FIRST when present and falls back to the
299
+ * codeB64/codeUrl blob ladder on any failure. Never a mode
300
+ * discriminator on its own — always accompanies `codeUrl`/`codeB64`
301
+ * (the raw bytes remain the fallback), so its presence adds a load
302
+ * path without changing mountability.
303
+ */
304
+ readonly codeModuleUrl?: string;
248
305
  /**
249
306
  * Base64-encoded compiled ES-module source of the component — the
250
307
  * fetch-free twin of {@link codeUrl}. Produced by servers whose
@@ -296,6 +353,39 @@ export declare function parseMcpAppAiGguiRenderMeta(meta: unknown): ParseMcpAppA
296
353
  * @public
297
354
  */
298
355
  export declare function toMcpAppEnvelope(render: McpAppAiGguiRenderMeta): Record<string, unknown>;
356
+ /**
357
+ * Token-bearing session-API URL pair — the return shape of
358
+ * {@link composeSessionApiUrls}. Field names deliberately match the
359
+ * {@link McpAppAiGguiRenderMeta} slice fields they stamp, so callers
360
+ * spread the pair straight into a slice literal.
361
+ *
362
+ * @public
363
+ */
364
+ export interface SessionApiUrls {
365
+ /** `${base}/api/sessions/<sessionId>/events?wsToken=<token>` */
366
+ readonly pollingUrl: string;
367
+ /** `${base}/api/sessions/<sessionId>/stream?wsToken=<token>` */
368
+ readonly sseUrl: string;
369
+ }
370
+ /**
371
+ * Compose the token-bearing session-API URL pair — ONE composer for
372
+ * every stamping surface (render resultMeta, update resultMeta, the
373
+ * self-contained shell, the `/api/sessions/:id/state` bootstrap). Same
374
+ * move as `deriveRenderMeta`: because every surface routes through this
375
+ * function, cross-transport drift in the URL shapes is structurally
376
+ * impossible.
377
+ *
378
+ * Pure string composition, no I/O. `base` is the absolute public
379
+ * origin the session API is served on (a trailing `/` is tolerated and
380
+ * stripped); `sessionId` and `wsToken` are URL-encoded into path and
381
+ * query. Callers MUST invoke this only when the live trio was minted —
382
+ * both URLs embed the token, and a token-less URL can only 401 through
383
+ * the fallback composers; omission of both fields is the honest
384
+ * no-HTTP-fallback signal the slice contract defines.
385
+ *
386
+ * @public
387
+ */
388
+ export declare function composeSessionApiUrls(base: string, sessionId: string, wsToken: string): SessionApiUrls;
299
389
  /**
300
390
  * `_meta` key carrying host-supplied conversation-grouping metadata on
301
391
  * every inbound `tools/call` request. Captured ONCE on the first call
@@ -465,6 +555,13 @@ export interface McpAppsGguiSession {
465
555
  readonly type: 'mcpApps';
466
556
  readonly id: string;
467
557
  readonly createdAt: string;
558
+ /**
559
+ * History head epoch (#483) — same semantics as
560
+ * `GguiSessionBase.epoch` (absent ⇒ 0; advanced only by
561
+ * `ggui_update`). Declared here too because this variant does not
562
+ * extend the base.
563
+ */
564
+ readonly epoch?: number;
468
565
  readonly prompt?: string;
469
566
  readonly description?: string;
470
567
  readonly message?: string;
@@ -973,9 +1070,20 @@ export declare function toolResultGguiRender(result: unknown): GguiRenderBootstr
973
1070
  * theme variables at boot; the static dark fallback covers the
974
1071
  * pre-resolve first paint.
975
1072
  *
1073
+ * The chain opens with `--ggui-shell-background` — unset in the
1074
+ * served bytes — as the runtime's override point. The shell stamps
1075
+ * its backdrop as an INLINE style, which no stylesheet `background`
1076
+ * rule can out-cascade; but because the inline value is a `var()`,
1077
+ * a stylesheet that sets the custom property re-resolves it in
1078
+ * place. The layer that knows whether the embedding host composites
1079
+ * its own chrome behind the document (the design system's
1080
+ * `ThemeProvider` in its transparent posture) sets
1081
+ * `--ggui-shell-background: transparent`; every other context keeps
1082
+ * the surface paint and its per-browser consistency.
1083
+ *
976
1084
  * @public
977
1085
  */
978
- export declare const GGUI_RENDER_SHELL_SURFACE = "var(--ggui-color-surface, #1e293b)";
1086
+ export declare const GGUI_RENDER_SHELL_SURFACE = "var(--ggui-shell-background, var(--ggui-color-surface, #1e293b))";
979
1087
  /**
980
1088
  * Options for {@link gguiShellHtml}.
981
1089
  *
@@ -1062,4 +1170,29 @@ export declare function escapeInlineScript(source: string): string;
1062
1170
  * @public
1063
1171
  */
1064
1172
  export declare function gguiShellHtml(bootstrap: GguiRenderBootstrap, options?: GguiShellHtmlOptions): string;
1173
+ /**
1174
+ * The exact prefix {@link gguiShellHtml} writes before the envelope
1175
+ * JSON — shared with {@link readGguiShellEnvelope} so the writer and the
1176
+ * reader cannot drift. ONE line, one marker; the JSON that follows is
1177
+ * angle-bracket-escaped, so the closing script tag can only be the
1178
+ * terminator.
1179
+ */
1180
+ export declare const GGUI_SHELL_META_MARKER = "globalThis.__GGUI_META__ = ";
1181
+ /**
1182
+ * Inverse of {@link gguiShellHtml}: recover the slice envelope
1183
+ * (`{ "ai.ggui/render": {…} }`) a shell document inlines. This is the
1184
+ * host-side half of the read-plane door (ggui#537): a tool result that
1185
+ * carries only the view's identity (`structuredContent.resourceUri` /
1186
+ * `_meta.ui.resourceUri`, no bootstrap material) names a per-render
1187
+ * resource whose document IS a self-contained shell — read it through
1188
+ * `resources/read`, hand the text here, then validate the returned
1189
+ * envelope with {@link parseMcpAppAiGguiRenderMeta}. Returns
1190
+ * `undefined` when the text carries no marker or the JSON does not
1191
+ * parse (a static thin shell, a failure page, a truncated body) —
1192
+ * never throws, so a caller can fall through to its next tier.
1193
+ *
1194
+ * Reads the FIRST marker only. `gguiShellHtml` writes exactly one; a
1195
+ * document with two is not one it produced.
1196
+ */
1197
+ export declare function readGguiShellEnvelope(html: string): unknown;
1065
1198
  //# sourceMappingURL=mcp-apps.d.ts.map
@@ -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).
@@ -184,9 +200,19 @@ export function parseMcpAppAiGguiRenderMeta(meta) {
184
200
  const ck = s.kind;
185
201
  const ch = s.codeHash;
186
202
  const cb = s.codeB64;
203
+ const cm = s.codeModuleUrl;
187
204
  if (cu !== undefined && (typeof cu !== 'string' || cu.length === 0)) {
188
205
  return { ok: false, reason: 'MALFORMED_RENDER' };
189
206
  }
207
+ // `codeModuleUrl` rides ALONGSIDE a static-component carrier, never
208
+ // alone — it is a load-path optimization, not a mode. A slice
209
+ // carrying only the variant would leave fallback-less consumers
210
+ // stranded; parse it out unless a raw carrier is present (tolerant
211
+ // drop, matching the optional-field posture — the raw carrier gate
212
+ // below still decides mountability).
213
+ if (cm !== undefined && (typeof cm !== 'string' || cm.length === 0)) {
214
+ return { ok: false, reason: 'MALFORMED_RENDER' };
215
+ }
190
216
  if (ck !== undefined && (typeof ck !== 'string' || ck.length === 0)) {
191
217
  return { ok: false, reason: 'MALFORMED_RENDER' };
192
218
  }
@@ -222,6 +248,11 @@ export function parseMcpAppAiGguiRenderMeta(meta) {
222
248
  ...(hasW && hasT ? { wsUrl: aw, wsToken: at } : {}),
223
249
  ...(ae !== undefined ? { expiresAt: ae } : {}),
224
250
  ...(s.pollingUrl !== undefined ? { pollingUrl: s.pollingUrl } : {}),
251
+ // Same tolerant scalar posture as pollingUrl; deliberately NO
252
+ // wsToken-pairing invariant — the URL is self-authorizing via its
253
+ // embedded token; field-level defense lives downstream in the
254
+ // iframe-runtime's `validateMeta`.
255
+ ...(s.sseUrl !== undefined ? { sseUrl: s.sseUrl } : {}),
225
256
  ...(s.themeId !== undefined ? { themeId: s.themeId } : {}),
226
257
  ...(s.themeMode !== undefined
227
258
  ? { themeMode: s.themeMode }
@@ -247,6 +278,7 @@ export function parseMcpAppAiGguiRenderMeta(meta) {
247
278
  ? { permissionsPolicy: s.permissionsPolicy }
248
279
  : {}),
249
280
  ...(ls !== undefined ? { lastSequence: ls } : {}),
281
+ ...(ep !== undefined ? { epoch: ep } : {}),
250
282
  ...(s.propsJson !== undefined ? { propsJson: s.propsJson } : {}),
251
283
  ...(s.contextSlots !== undefined
252
284
  ? {
@@ -262,6 +294,10 @@ export function parseMcpAppAiGguiRenderMeta(meta) {
262
294
  ...(typeof cu === 'string' && cu.length > 0 ? { codeUrl: cu } : {}),
263
295
  ...(typeof ch === 'string' && ch.length > 0 ? { codeHash: ch } : {}),
264
296
  ...(typeof cb === 'string' && cb.length > 0 ? { codeB64: cb } : {}),
297
+ // Variant only WITH a raw static carrier — see the parse gate above.
298
+ ...(typeof cm === 'string' && cm.length > 0 && hasStaticComponent
299
+ ? { codeModuleUrl: cm }
300
+ : {}),
265
301
  ...(typeof ck === 'string' && ck.length > 0 ? { kind: ck } : {}),
266
302
  };
267
303
  return { ok: true, meta: slice };
@@ -277,6 +313,33 @@ export function toMcpAppEnvelope(render) {
277
313
  [MCP_APP_AI_GGUI_RENDER_META_KEY]: render,
278
314
  };
279
315
  }
316
+ /**
317
+ * Compose the token-bearing session-API URL pair — ONE composer for
318
+ * every stamping surface (render resultMeta, update resultMeta, the
319
+ * self-contained shell, the `/api/sessions/:id/state` bootstrap). Same
320
+ * move as `deriveRenderMeta`: because every surface routes through this
321
+ * function, cross-transport drift in the URL shapes is structurally
322
+ * impossible.
323
+ *
324
+ * Pure string composition, no I/O. `base` is the absolute public
325
+ * origin the session API is served on (a trailing `/` is tolerated and
326
+ * stripped); `sessionId` and `wsToken` are URL-encoded into path and
327
+ * query. Callers MUST invoke this only when the live trio was minted —
328
+ * both URLs embed the token, and a token-less URL can only 401 through
329
+ * the fallback composers; omission of both fields is the honest
330
+ * no-HTTP-fallback signal the slice contract defines.
331
+ *
332
+ * @public
333
+ */
334
+ export function composeSessionApiUrls(base, sessionId, wsToken) {
335
+ const b = base.replace(/\/$/, '');
336
+ const sid = encodeURIComponent(sessionId);
337
+ const tok = encodeURIComponent(wsToken);
338
+ return {
339
+ pollingUrl: `${b}/api/sessions/${sid}/events?wsToken=${tok}`,
340
+ sseUrl: `${b}/api/sessions/${sid}/stream?wsToken=${tok}`,
341
+ };
342
+ }
280
343
  // =============================================================================
281
344
  // Request-side `_meta` — host-supplied metadata on inbound `tools/call`.
282
345
  //
@@ -610,9 +673,20 @@ export function toolResultGguiRender(result) {
610
673
  * theme variables at boot; the static dark fallback covers the
611
674
  * pre-resolve first paint.
612
675
  *
676
+ * The chain opens with `--ggui-shell-background` — unset in the
677
+ * served bytes — as the runtime's override point. The shell stamps
678
+ * its backdrop as an INLINE style, which no stylesheet `background`
679
+ * rule can out-cascade; but because the inline value is a `var()`,
680
+ * a stylesheet that sets the custom property re-resolves it in
681
+ * place. The layer that knows whether the embedding host composites
682
+ * its own chrome behind the document (the design system's
683
+ * `ThemeProvider` in its transparent posture) sets
684
+ * `--ggui-shell-background: transparent`; every other context keeps
685
+ * the surface paint and its per-browser consistency.
686
+ *
613
687
  * @public
614
688
  */
615
- export const GGUI_RENDER_SHELL_SURFACE = 'var(--ggui-color-surface, #1e293b)';
689
+ export const GGUI_RENDER_SHELL_SURFACE = 'var(--ggui-shell-background, var(--ggui-color-surface, #1e293b))';
616
690
  /**
617
691
  * Make raw JS source safe to embed as the text content of an HTML
618
692
  * `<script>` element.
@@ -704,3 +778,44 @@ export function gguiShellHtml(bootstrap, options) {
704
778
  ${runtimeTag}
705
779
  </body></html>`;
706
780
  }
781
+ /**
782
+ * The exact prefix {@link gguiShellHtml} writes before the envelope
783
+ * JSON — shared with {@link readGguiShellEnvelope} so the writer and the
784
+ * reader cannot drift. ONE line, one marker; the JSON that follows is
785
+ * angle-bracket-escaped, so the closing script tag can only be the
786
+ * terminator.
787
+ */
788
+ export const GGUI_SHELL_META_MARKER = 'globalThis.__GGUI_META__ = ';
789
+ /**
790
+ * Inverse of {@link gguiShellHtml}: recover the slice envelope
791
+ * (`{ "ai.ggui/render": {…} }`) a shell document inlines. This is the
792
+ * host-side half of the read-plane door (ggui#537): a tool result that
793
+ * carries only the view's identity (`structuredContent.resourceUri` /
794
+ * `_meta.ui.resourceUri`, no bootstrap material) names a per-render
795
+ * resource whose document IS a self-contained shell — read it through
796
+ * `resources/read`, hand the text here, then validate the returned
797
+ * envelope with {@link parseMcpAppAiGguiRenderMeta}. Returns
798
+ * `undefined` when the text carries no marker or the JSON does not
799
+ * parse (a static thin shell, a failure page, a truncated body) —
800
+ * never throws, so a caller can fall through to its next tier.
801
+ *
802
+ * Reads the FIRST marker only. `gguiShellHtml` writes exactly one; a
803
+ * document with two is not one it produced.
804
+ */
805
+ export function readGguiShellEnvelope(html) {
806
+ const start = html.indexOf(GGUI_SHELL_META_MARKER);
807
+ if (start < 0)
808
+ return undefined;
809
+ const jsonStart = start + GGUI_SHELL_META_MARKER.length;
810
+ // The assembler escapes `<`/`>` inside the JSON, so this sequence
811
+ // cannot occur before the real terminator.
812
+ const end = html.indexOf(';</' + 'script>', jsonStart);
813
+ if (end < 0)
814
+ return undefined;
815
+ try {
816
+ return JSON.parse(html.slice(jsonStart, end));
817
+ }
818
+ catch {
819
+ return undefined;
820
+ }
821
+ }
@@ -0,0 +1,3 @@
1
+ import type { JsonSchema } from '../types/data-contract.js';
2
+ export declare function computePropsSchemaHash(schema: JsonSchema): string;
3
+ //# sourceMappingURL=props-schema-hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props-schema-hash.d.ts","sourceRoot":"","sources":["../../src/registry/props-schema-hash.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAIjE"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * `computePropsSchemaHash` — sha256 over the RFC 8785 (JCS) canonical
3
+ * bytes of an enforced props schema (P3 pin 3, frozen 2026-08-19,
4
+ * guuey#271). Lowercase hex, full 64 characters, no prefix.
5
+ *
6
+ * Server-only — depends on `node:crypto`, so it lives behind its own
7
+ * subpath (`@ggui-ai/protocol/props-schema-hash`) per the
8
+ * `blueprint-key` convention; browsers never bundle it. The pure
9
+ * canonicalization half (`canonicalPropsSchemaBytes`) is browser-safe
10
+ * in `validation/enforced-props-schema.ts`.
11
+ *
12
+ * Consumer verification rule (frozen): re-canonicalize the received
13
+ * `propsSchema` value per RFC 8785 (any JCS library), hash, compare —
14
+ * raw received bytes are equivalent whenever the transport preserves
15
+ * key order.
16
+ */
17
+ import { createHash } from 'node:crypto';
18
+ import { canonicalPropsSchemaBytes } from '../validation/enforced-props-schema.js';
19
+ export function computePropsSchemaHash(schema) {
20
+ return createHash('sha256')
21
+ .update(canonicalPropsSchemaBytes(schema))
22
+ .digest('hex');
23
+ }
@@ -35,6 +35,8 @@ export declare const blueprintSourceSchema: z.ZodType<BlueprintSource>;
35
35
  * metadata via `tools/list`, so they stay mechanism-only and
36
36
  * vendor-neutral.
37
37
  */
38
+ /** The four — and only — variance keys; the strict object names them on rejection. */
39
+ export declare const BLUEPRINT_VARIANCE_KEYS: readonly ["persona", "aesthetic", "context", "seedPrompt"];
38
40
  export declare const blueprintVarianceSchema: z.ZodType<BlueprintVariance>;
39
41
  /**
40
42
  * Zod mirror of {@link Blueprint}. Required fields are listed first;