@ggui-ai/protocol 0.11.0 → 0.12.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.
- package/dist/gadgets/stdlib-gadgets.d.ts +1 -1
- package/dist/gadgets/stdlib-gadgets.js +1 -1
- package/dist/integrations/theme-binding.d.ts +106 -0
- package/dist/integrations/theme-binding.d.ts.map +1 -0
- package/dist/integrations/theme-binding.js +73 -0
- package/dist/schemas/app-theme.d.ts +5 -0
- package/dist/schemas/app-theme.d.ts.map +1 -1
- package/dist/schemas/app-theme.js +25 -3
- package/dist/schemas/mcp.d.ts +4 -0
- package/dist/schemas/mcp.d.ts.map +1 -1
- package/dist/schemas/mcp.js +15 -0
- package/dist/validation/enforced-props-schema.d.ts.map +1 -1
- package/dist/validation/enforced-props-schema.js +16 -0
- package/dist/version.d.ts +17 -0
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +17 -0
- 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.
|
|
15
|
+
export declare const STDLIB_GADGETS_VERSION = "0.12.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.
|
|
42
|
+
export const STDLIB_GADGETS_VERSION = '0.12.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,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme-binding resolution — THE one normative total order for the
|
|
3
|
+
* `ai.ggui/render` slice's `themeId` / `themeMode` facts, and the two
|
|
4
|
+
* projections of it that run on either side of the wire (ggui#598
|
|
5
|
+
* leg 4; one-projection doctrine per MCP Apps Compliance).
|
|
6
|
+
*
|
|
7
|
+
* ## The normative total order
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* themeMode: consolePick > staticConfig > sessionSidecar > hostAnnounced
|
|
11
|
+
* themeId: consolePick > renderOverride > staticConfig > sidecarName
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* - `consolePick` — the live operator pick (console theme provider).
|
|
15
|
+
* - `renderOverride` — the agent's per-render `ggui_render({ themeId })`.
|
|
16
|
+
* - `staticConfig` — the app's static `ggui.json#theme` deps.
|
|
17
|
+
* - `sessionSidecar` — the per-app `App.theme` sidecar snapshotted at
|
|
18
|
+
* render-commit: its `mode` (for `themeMode`) / its `name` (for
|
|
19
|
+
* `themeId`, the registered-theme base-ladder binding).
|
|
20
|
+
* - `hostAnnounced` — the embedding host's `hostContext.theme`
|
|
21
|
+
* (mode only; hosts announce no theme id).
|
|
22
|
+
*
|
|
23
|
+
* An unresolved fact is `undefined` — NEVER defaulted to `'light'`.
|
|
24
|
+
* Absence is load-bearing: it is the signal that lets the next layer
|
|
25
|
+
* down (ultimately the host) fill the fact (ggui#551).
|
|
26
|
+
*
|
|
27
|
+
* ## The two projections and the composition law
|
|
28
|
+
*
|
|
29
|
+
* The server cannot see `hostAnnounced`; the client cannot see the
|
|
30
|
+
* server-only layers except through the stamp. So the order ships as
|
|
31
|
+
* two projections:
|
|
32
|
+
*
|
|
33
|
+
* - {@link stampThemeMode} / {@link stampThemeId} — the SERVER
|
|
34
|
+
* projection: folds the server-visible layers into the stamped
|
|
35
|
+
* top-level slice field.
|
|
36
|
+
* - {@link effectiveThemeMode} / {@link effectiveThemeId} — the
|
|
37
|
+
* CLIENT projection: stamped field first, then the layers the client
|
|
38
|
+
* can see directly.
|
|
39
|
+
*
|
|
40
|
+
* **Composition law (pinned by the test suite for every input
|
|
41
|
+
* combination):** `effective(stamp(server-layers), client-layers)`
|
|
42
|
+
* MUST equal the normative total order applied to all layers at once.
|
|
43
|
+
* The law is what makes cross-side precedence drift structurally
|
|
44
|
+
* impossible — before this module the two sides ranked the sidecar at
|
|
45
|
+
* different local positions and coherence silently depended on every
|
|
46
|
+
* transport threading every layer (the ggui#595 RCA's "two resolvers,
|
|
47
|
+
* two ranks" finding).
|
|
48
|
+
*
|
|
49
|
+
* The client's direct `sessionSidecar` leg is NOT redundant with the
|
|
50
|
+
* stamp: a transport that fails to thread the sidecar server-side
|
|
51
|
+
* (e.g. an envelope minted outside the render path) still resolves the
|
|
52
|
+
* sidecar at the correct rank client-side, because the law holds
|
|
53
|
+
* per-projection, not per-thread.
|
|
54
|
+
*
|
|
55
|
+
* Pure functions, no I/O — safe for both the node server and the
|
|
56
|
+
* browser runtime bundle.
|
|
57
|
+
*/
|
|
58
|
+
/** A resolved color-scheme opinion. Absent = no opinion (never 'light'). */
|
|
59
|
+
export type ThemeModeOpinion = 'light' | 'dark';
|
|
60
|
+
/** Server-visible `themeMode` layers, highest rank first. */
|
|
61
|
+
export interface ThemeModeStampSources {
|
|
62
|
+
/** Live operator pick (console theme provider) — highest rank. */
|
|
63
|
+
readonly consolePick?: ThemeModeOpinion | undefined;
|
|
64
|
+
/** Static `ggui.json#theme` deps. */
|
|
65
|
+
readonly staticConfig?: ThemeModeOpinion | undefined;
|
|
66
|
+
/** The session theme sidecar's own `mode` — lowest server rank. */
|
|
67
|
+
readonly sessionSidecar?: ThemeModeOpinion | undefined;
|
|
68
|
+
}
|
|
69
|
+
/** Client-visible `themeMode` layers, highest rank first. */
|
|
70
|
+
export interface ThemeModeEffectiveSources {
|
|
71
|
+
/** The slice's stamped top-level `themeMode` (the server projection's output). */
|
|
72
|
+
readonly stamped?: ThemeModeOpinion | undefined;
|
|
73
|
+
/** The slice theme OBJECT's own `mode` (the sidecar, read directly). */
|
|
74
|
+
readonly sessionSidecar?: ThemeModeOpinion | undefined;
|
|
75
|
+
/** The embedding host's `hostContext.theme` announce — final fallback. */
|
|
76
|
+
readonly hostAnnounced?: ThemeModeOpinion | undefined;
|
|
77
|
+
}
|
|
78
|
+
/** Server projection of the `themeMode` total order → the stamped field. */
|
|
79
|
+
export declare function stampThemeMode(s: ThemeModeStampSources): ThemeModeOpinion | undefined;
|
|
80
|
+
/** Client projection of the `themeMode` total order → the effective mode. */
|
|
81
|
+
export declare function effectiveThemeMode(s: ThemeModeEffectiveSources): ThemeModeOpinion | undefined;
|
|
82
|
+
/** Server-visible `themeId` layers, highest rank first. */
|
|
83
|
+
export interface ThemeIdStampSources {
|
|
84
|
+
/** Live operator pick (console theme provider) — highest rank. */
|
|
85
|
+
readonly consolePick?: string | undefined;
|
|
86
|
+
/** The agent's per-render `ggui_render({ themeId })` override. */
|
|
87
|
+
readonly renderOverride?: string | undefined;
|
|
88
|
+
/** Static `ggui.json#theme` deps. */
|
|
89
|
+
readonly staticConfig?: string | undefined;
|
|
90
|
+
}
|
|
91
|
+
/** Client-visible `themeId` layers, highest rank first. */
|
|
92
|
+
export interface ThemeIdEffectiveSources {
|
|
93
|
+
/** The slice's stamped top-level `themeId`. */
|
|
94
|
+
readonly stamped?: string | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* The slice theme OBJECT's `name` — the registered-theme base-ladder
|
|
97
|
+
* binding (ggui#589 ask 3): an unregistered name is harmless by
|
|
98
|
+
* construction (renderer falls back to the default ladder).
|
|
99
|
+
*/
|
|
100
|
+
readonly sidecarName?: string | undefined;
|
|
101
|
+
}
|
|
102
|
+
/** Server projection of the `themeId` total order → the stamped field. */
|
|
103
|
+
export declare function stampThemeId(s: ThemeIdStampSources): string | undefined;
|
|
104
|
+
/** Client projection of the `themeId` total order → the effective id. */
|
|
105
|
+
export declare function effectiveThemeId(s: ThemeIdEffectiveSources): string | undefined;
|
|
106
|
+
//# sourceMappingURL=theme-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-binding.d.ts","sourceRoot":"","sources":["../../src/integrations/theme-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhD,6DAA6D;AAC7D,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpD,qCAAqC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrD,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACxD;AAED,6DAA6D;AAC7D,MAAM,WAAW,yBAAyB;IACxC,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,wEAAwE;IACxE,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACvD,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACvD;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAC5B,CAAC,EAAE,qBAAqB,GACvB,gBAAgB,GAAG,SAAS,CAE9B;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,yBAAyB,GAC3B,gBAAgB,GAAG,SAAS,CAE9B;AAED,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,kEAAkE;IAClE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,qCAAqC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAEvE;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,uBAAuB,GAAG,MAAM,GAAG,SAAS,CAE/E"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme-binding resolution — THE one normative total order for the
|
|
3
|
+
* `ai.ggui/render` slice's `themeId` / `themeMode` facts, and the two
|
|
4
|
+
* projections of it that run on either side of the wire (ggui#598
|
|
5
|
+
* leg 4; one-projection doctrine per MCP Apps Compliance).
|
|
6
|
+
*
|
|
7
|
+
* ## The normative total order
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* themeMode: consolePick > staticConfig > sessionSidecar > hostAnnounced
|
|
11
|
+
* themeId: consolePick > renderOverride > staticConfig > sidecarName
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* - `consolePick` — the live operator pick (console theme provider).
|
|
15
|
+
* - `renderOverride` — the agent's per-render `ggui_render({ themeId })`.
|
|
16
|
+
* - `staticConfig` — the app's static `ggui.json#theme` deps.
|
|
17
|
+
* - `sessionSidecar` — the per-app `App.theme` sidecar snapshotted at
|
|
18
|
+
* render-commit: its `mode` (for `themeMode`) / its `name` (for
|
|
19
|
+
* `themeId`, the registered-theme base-ladder binding).
|
|
20
|
+
* - `hostAnnounced` — the embedding host's `hostContext.theme`
|
|
21
|
+
* (mode only; hosts announce no theme id).
|
|
22
|
+
*
|
|
23
|
+
* An unresolved fact is `undefined` — NEVER defaulted to `'light'`.
|
|
24
|
+
* Absence is load-bearing: it is the signal that lets the next layer
|
|
25
|
+
* down (ultimately the host) fill the fact (ggui#551).
|
|
26
|
+
*
|
|
27
|
+
* ## The two projections and the composition law
|
|
28
|
+
*
|
|
29
|
+
* The server cannot see `hostAnnounced`; the client cannot see the
|
|
30
|
+
* server-only layers except through the stamp. So the order ships as
|
|
31
|
+
* two projections:
|
|
32
|
+
*
|
|
33
|
+
* - {@link stampThemeMode} / {@link stampThemeId} — the SERVER
|
|
34
|
+
* projection: folds the server-visible layers into the stamped
|
|
35
|
+
* top-level slice field.
|
|
36
|
+
* - {@link effectiveThemeMode} / {@link effectiveThemeId} — the
|
|
37
|
+
* CLIENT projection: stamped field first, then the layers the client
|
|
38
|
+
* can see directly.
|
|
39
|
+
*
|
|
40
|
+
* **Composition law (pinned by the test suite for every input
|
|
41
|
+
* combination):** `effective(stamp(server-layers), client-layers)`
|
|
42
|
+
* MUST equal the normative total order applied to all layers at once.
|
|
43
|
+
* The law is what makes cross-side precedence drift structurally
|
|
44
|
+
* impossible — before this module the two sides ranked the sidecar at
|
|
45
|
+
* different local positions and coherence silently depended on every
|
|
46
|
+
* transport threading every layer (the ggui#595 RCA's "two resolvers,
|
|
47
|
+
* two ranks" finding).
|
|
48
|
+
*
|
|
49
|
+
* The client's direct `sessionSidecar` leg is NOT redundant with the
|
|
50
|
+
* stamp: a transport that fails to thread the sidecar server-side
|
|
51
|
+
* (e.g. an envelope minted outside the render path) still resolves the
|
|
52
|
+
* sidecar at the correct rank client-side, because the law holds
|
|
53
|
+
* per-projection, not per-thread.
|
|
54
|
+
*
|
|
55
|
+
* Pure functions, no I/O — safe for both the node server and the
|
|
56
|
+
* browser runtime bundle.
|
|
57
|
+
*/
|
|
58
|
+
/** Server projection of the `themeMode` total order → the stamped field. */
|
|
59
|
+
export function stampThemeMode(s) {
|
|
60
|
+
return s.consolePick ?? s.staticConfig ?? s.sessionSidecar;
|
|
61
|
+
}
|
|
62
|
+
/** Client projection of the `themeMode` total order → the effective mode. */
|
|
63
|
+
export function effectiveThemeMode(s) {
|
|
64
|
+
return s.stamped ?? s.sessionSidecar ?? s.hostAnnounced;
|
|
65
|
+
}
|
|
66
|
+
/** Server projection of the `themeId` total order → the stamped field. */
|
|
67
|
+
export function stampThemeId(s) {
|
|
68
|
+
return s.consolePick ?? s.renderOverride ?? s.staticConfig;
|
|
69
|
+
}
|
|
70
|
+
/** Client projection of the `themeId` total order → the effective id. */
|
|
71
|
+
export function effectiveThemeId(s) {
|
|
72
|
+
return s.stamped ?? s.sidecarName;
|
|
73
|
+
}
|
|
@@ -33,6 +33,11 @@ export declare const appThemeSchema: z.ZodObject<{
|
|
|
33
33
|
}>;
|
|
34
34
|
cssVariables: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
35
35
|
name: z.ZodOptional<z.ZodString>;
|
|
36
|
+
base: z.ZodOptional<z.ZodObject<{
|
|
37
|
+
documentHash: z.ZodString;
|
|
38
|
+
light: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
39
|
+
dark: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
40
|
+
}, z.core.$strict>>;
|
|
36
41
|
}, z.core.$strict>;
|
|
37
42
|
export type AppTheme = z.infer<typeof appThemeSchema>;
|
|
38
43
|
//# sourceMappingURL=app-theme.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-theme.d.ts","sourceRoot":"","sources":["../../src/schemas/app-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,QAA2B,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,QAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"app-theme.d.ts","sourceRoot":"","sources":["../../src/schemas/app-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,QAA2B,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,QAAiB,CAAC;AAahD,eAAO,MAAM,cAAc;;;;;;;;;;;;kBA2BhB,CAAC;AAEZ,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -32,12 +32,34 @@ const cssValue = z
|
|
|
32
32
|
.max(256)
|
|
33
33
|
.regex(CSS_VALUE_SAFE_RE, 'css value contains a disallowed character')
|
|
34
34
|
.refine((v) => !v.includes('/*'), 'css value may not contain a comment');
|
|
35
|
+
const cssVariableMap = z
|
|
36
|
+
.record(z.string().regex(GGUI_CSS_VAR_KEY_RE, 'css var key must be --ggui-*'), cssValue)
|
|
37
|
+
.refine((m) => Object.keys(m).length <= 200, 'too many css variables (max 200)');
|
|
35
38
|
export const appThemeSchema = z
|
|
36
39
|
.object({
|
|
37
40
|
mode: z.enum(['light', 'dark']),
|
|
38
|
-
cssVariables:
|
|
39
|
-
.record(z.string().regex(GGUI_CSS_VAR_KEY_RE, 'css var key must be --ggui-*'), cssValue)
|
|
40
|
-
.refine((m) => Object.keys(m).length <= 200, 'too many css variables (max 200)'),
|
|
41
|
+
cssVariables: cssVariableMap,
|
|
41
42
|
name: z.string().min(1).max(64).optional(),
|
|
43
|
+
/**
|
|
44
|
+
* The REGISTERED base ladder, delivered (runtime theme
|
|
45
|
+
* registration): both modes' resolved variable sets ride the
|
|
46
|
+
* envelope so a mid-session mode switch is a local operation and
|
|
47
|
+
* delivery never depends on the iframe being able to fetch. The
|
|
48
|
+
* renderer injects the mode-selected set BELOW `cssVariables` (the
|
|
49
|
+
* per-app overlay) in the documented precedence. `documentHash` is
|
|
50
|
+
* the registration's identity: it joins painted ladders to
|
|
51
|
+
* registration records, and a receiver holding the hash may be
|
|
52
|
+
* served a future envelope without the variable sets.
|
|
53
|
+
*/
|
|
54
|
+
base: z
|
|
55
|
+
.object({
|
|
56
|
+
documentHash: z
|
|
57
|
+
.string()
|
|
58
|
+
.regex(/^[0-9a-f]{64}$/, 'documentHash must be sha256 lowercase hex'),
|
|
59
|
+
light: cssVariableMap,
|
|
60
|
+
dark: cssVariableMap,
|
|
61
|
+
})
|
|
62
|
+
.strict()
|
|
63
|
+
.optional(),
|
|
42
64
|
})
|
|
43
65
|
.strict();
|
package/dist/schemas/mcp.d.ts
CHANGED
|
@@ -578,6 +578,8 @@ export declare const updateOutputSchema: z.ZodObject<{
|
|
|
578
578
|
resourceUri: z.ZodString;
|
|
579
579
|
epoch: z.ZodNumber;
|
|
580
580
|
warning: z.ZodOptional<z.ZodString>;
|
|
581
|
+
propsSchemaHash: z.ZodOptional<z.ZodString>;
|
|
582
|
+
propsSchemaProfile: z.ZodOptional<z.ZodString>;
|
|
581
583
|
}, z.core.$strip>;
|
|
582
584
|
/**
|
|
583
585
|
* `ggui_amend` wire output (#483) — acknowledgement only. `resourceUri`
|
|
@@ -591,6 +593,8 @@ export declare const amendOutputSchema: z.ZodObject<{
|
|
|
591
593
|
updated: z.ZodBoolean;
|
|
592
594
|
resourceUri: z.ZodString;
|
|
593
595
|
warning: z.ZodOptional<z.ZodString>;
|
|
596
|
+
propsSchemaHash: z.ZodOptional<z.ZodString>;
|
|
597
|
+
propsSchemaProfile: z.ZodOptional<z.ZodString>;
|
|
594
598
|
}, z.core.$strip>;
|
|
595
599
|
/**
|
|
596
600
|
* `ggui_runtime_declare_tool_catalog` — the host runtime declares its
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/schemas/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,cAAc;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUnB,CAAC;AAYjB;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;CAgBpB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;iBAA8B,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;iBAA2B,CAAC;AAExD,eAAO,MAAM,oBAAoB;;CAKvB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;iBAAiC,CAAC;AAEpE;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;CAK5B,CAAC;AAEX,eAAO,MAAM,0BAA0B;;iBAAsC,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,IAAc,CAAC;AAE5D,eAAO,MAAM,iCAAiC,gCAE7C,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;CAwB7B,CAAC;AAEX,eAAO,MAAM,2BAA2B;;;;;iBAAuC,CAAC;AAEhF,eAAO,MAAM,yBAAyB;;CAO5B,CAAC;AAEX,eAAO,MAAM,0BAA0B;;iBAAsC,CAAC;AAE9E,eAAO,MAAM,kBAAkB,IAAc,CAAC;AAE9C,eAAO,MAAM,mBAAmB,gCAA+B,CAAC;AAahE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,oBAAoB;;;;kBA0BtB,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;iBAgChC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,gBAAgB;;IAO3B;;;;;;;;OAQG;;IAEH;;;;;OAKG;;IAQH;;;;;;;;;;OAUG;;;;IAaH;;;;;;;;;;;OAWG;;;;;CAuBK,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBAA6B,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAyBlC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,qBAAqB;;;;;;EAMhC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;iBAS5B,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,2BAA2B;;;;;EAKtC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;iBAalC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6E7B,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;4BAa5B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;4BAa3B,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/schemas/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas/mcp.js
CHANGED
|
@@ -699,6 +699,17 @@ export const updateOutputSchema = z.object({
|
|
|
699
699
|
* its feedback channel.
|
|
700
700
|
*/
|
|
701
701
|
warning: z.string().optional(),
|
|
702
|
+
/**
|
|
703
|
+
* Schema attestation (ggui#560): identity hash of the enforced props
|
|
704
|
+
* schema this mutation was validated against — the same schema the
|
|
705
|
+
* paired handshake disclosed. Present when the session declares a
|
|
706
|
+
* `propsSpec`; equal to the handshake's `propsSchemaHash` under the
|
|
707
|
+
* session-continuity guarantee, so a mismatch is the observable form
|
|
708
|
+
* of a contract changing mid-session.
|
|
709
|
+
*/
|
|
710
|
+
propsSchemaHash: z.string().optional(),
|
|
711
|
+
/** Present with `propsSchemaHash`; same profile classifier as the handshake's. */
|
|
712
|
+
propsSchemaProfile: z.string().optional(),
|
|
702
713
|
});
|
|
703
714
|
/**
|
|
704
715
|
* `ggui_amend` wire output (#483) — acknowledgement only. `resourceUri`
|
|
@@ -713,6 +724,10 @@ export const amendOutputSchema = z.object({
|
|
|
713
724
|
resourceUri: z.string(),
|
|
714
725
|
/** Same no-op feedback channel as ggui_update's `warning`. */
|
|
715
726
|
warning: z.string().optional(),
|
|
727
|
+
/** Schema attestation (ggui#560) — same semantics as ggui_update's. */
|
|
728
|
+
propsSchemaHash: z.string().optional(),
|
|
729
|
+
/** Present with `propsSchemaHash`. */
|
|
730
|
+
propsSchemaProfile: z.string().optional(),
|
|
716
731
|
});
|
|
717
732
|
/**
|
|
718
733
|
* `ggui_runtime_declare_tool_catalog` — the host runtime declares its
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enforced-props-schema.d.ts","sourceRoot":"","sources":["../../src/validation/enforced-props-schema.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAIvE,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,MAAM,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAcpD,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAWnD,CAAC;AAEH;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAEpE;
|
|
1
|
+
{"version":3,"file":"enforced-props-schema.d.ts","sourceRoot":"","sources":["../../src/validation/enforced-props-schema.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAIvE,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,MAAM,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAcpD,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAWnD,CAAC;AAEH;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAEpE;AAuFD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAIpE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,UAAU,GACjB,kBAAkB,CAiCpB"}
|
|
@@ -151,6 +151,22 @@ function canonicalizeSchemaNode(node) {
|
|
|
151
151
|
continue;
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
+
if (key === 'required' && Array.isArray(node.required)) {
|
|
155
|
+
// `required` is SET-semantics in JSON Schema — member order never
|
|
156
|
+
// affects validation — but it is an ARRAY on the wire, and JCS
|
|
157
|
+
// rightly preserves array order while sorting only object keys.
|
|
158
|
+
// The wrapper's `required` is derived from properties ITERATION
|
|
159
|
+
// order, an order-unstable source (a DynamoDB Map round-trip
|
|
160
|
+
// legally reorders object keys), so without this sort one
|
|
161
|
+
// contract stored under two representations rebuilt to two
|
|
162
|
+
// different propsSchemaHashes (production incident 2026-08-20:
|
|
163
|
+
// ca204076… vs d130e5b9… for the same Deskly contract). Sorting
|
|
164
|
+
// here — for derived AND authored arrays at every depth — makes
|
|
165
|
+
// the canonical bytes (and therefore the hash) canonical over the
|
|
166
|
+
// keyword's actual semantics.
|
|
167
|
+
out.required = [...node.required].sort();
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
154
170
|
out[key] = value;
|
|
155
171
|
}
|
|
156
172
|
return out;
|
package/dist/version.d.ts
CHANGED
|
@@ -3074,6 +3074,23 @@
|
|
|
3074
3074
|
* sample).
|
|
3075
3075
|
*/
|
|
3076
3076
|
export declare const PROTOCOL_VERSION = "draft-2026-08-19";
|
|
3077
|
+
/**
|
|
3078
|
+
* The shipped `@ggui-ai/*` WAVE version — bare semver, identical to
|
|
3079
|
+
* `package.json#version` on every published package (the lockstep
|
|
3080
|
+
* cohort; `@ggui-ai/protocol` is its anchor). Distinct from
|
|
3081
|
+
* {@link PROTOCOL_VERSION}: that names the WIRE draft (what the
|
|
3082
|
+
* messages mean), this names the SHIPPED BUILD (which release an agent
|
|
3083
|
+
* is actually talking to). Runtime surfaces that identify themselves
|
|
3084
|
+
* — MCP `serverInfo.version`, the MCP Apps `appInfo.version` — report
|
|
3085
|
+
* this, never a hand-typed literal (ggui#622: a hard-coded `0.0.1`
|
|
3086
|
+
* told every connected agent the wrong thing for four waves).
|
|
3087
|
+
*
|
|
3088
|
+
* Moves with every wave: `version.test.ts` pins it to this package's
|
|
3089
|
+
* `package.json#version` (the same parity pattern as
|
|
3090
|
+
* `STDLIB_GADGETS_VERSION` and `agent-server`'s `CLIENT_INFO`), and the
|
|
3091
|
+
* `/release:cut` straggler list names it so the bump is mechanical.
|
|
3092
|
+
*/
|
|
3093
|
+
export declare const GGUI_WAVE_VERSION = "0.12.0";
|
|
3077
3094
|
/**
|
|
3078
3095
|
* Schema version stamped onto wire envelopes that opt into the
|
|
3079
3096
|
* `schemaVersion` forward-compat field (see {@link ActionEnvelope},
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkgGG;AACH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,uBAAuB,qBAAmB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAErD,CAAC"}
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkgGG;AACH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,uBAAuB,qBAAmB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAErD,CAAC"}
|
package/dist/version.js
CHANGED
|
@@ -3074,6 +3074,23 @@
|
|
|
3074
3074
|
* sample).
|
|
3075
3075
|
*/
|
|
3076
3076
|
export const PROTOCOL_VERSION = "draft-2026-08-19";
|
|
3077
|
+
/**
|
|
3078
|
+
* The shipped `@ggui-ai/*` WAVE version — bare semver, identical to
|
|
3079
|
+
* `package.json#version` on every published package (the lockstep
|
|
3080
|
+
* cohort; `@ggui-ai/protocol` is its anchor). Distinct from
|
|
3081
|
+
* {@link PROTOCOL_VERSION}: that names the WIRE draft (what the
|
|
3082
|
+
* messages mean), this names the SHIPPED BUILD (which release an agent
|
|
3083
|
+
* is actually talking to). Runtime surfaces that identify themselves
|
|
3084
|
+
* — MCP `serverInfo.version`, the MCP Apps `appInfo.version` — report
|
|
3085
|
+
* this, never a hand-typed literal (ggui#622: a hard-coded `0.0.1`
|
|
3086
|
+
* told every connected agent the wrong thing for four waves).
|
|
3087
|
+
*
|
|
3088
|
+
* Moves with every wave: `version.test.ts` pins it to this package's
|
|
3089
|
+
* `package.json#version` (the same parity pattern as
|
|
3090
|
+
* `STDLIB_GADGETS_VERSION` and `agent-server`'s `CLIENT_INFO`), and the
|
|
3091
|
+
* `/release:cut` straggler list names it so the bump is mechanical.
|
|
3092
|
+
*/
|
|
3093
|
+
export const GGUI_WAVE_VERSION = "0.12.0";
|
|
3077
3094
|
/**
|
|
3078
3095
|
* Schema version stamped onto wire envelopes that opt into the
|
|
3079
3096
|
* `schemaVersion` forward-compat field (see {@link ActionEnvelope},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ggui-ai/protocol",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "ggui protocol types — events, renders, WebSocket, MCP, LLM models",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"keywords": [
|
|
@@ -68,6 +68,12 @@
|
|
|
68
68
|
"require": "./dist/integrations/mcp-apps.js",
|
|
69
69
|
"default": "./dist/integrations/mcp-apps.js"
|
|
70
70
|
},
|
|
71
|
+
"./integrations/theme-binding": {
|
|
72
|
+
"types": "./dist/integrations/theme-binding.d.ts",
|
|
73
|
+
"import": "./dist/integrations/theme-binding.js",
|
|
74
|
+
"require": "./dist/integrations/theme-binding.js",
|
|
75
|
+
"default": "./dist/integrations/theme-binding.js"
|
|
76
|
+
},
|
|
71
77
|
"./version": {
|
|
72
78
|
"types": "./dist/version.d.ts",
|
|
73
79
|
"import": "./dist/version.js",
|