@ggui-ai/protocol-conformance 0.25.0 → 0.26.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 (40) hide show
  1. package/README.md +45 -25
  2. package/dist/cli.d.ts +4 -2
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +13 -8
  5. package/dist/dispatch-idempotency-conformance/index.d.ts +78 -0
  6. package/dist/dispatch-idempotency-conformance/index.d.ts.map +1 -0
  7. package/dist/dispatch-idempotency-conformance/index.js +173 -0
  8. package/dist/fixtures/index.d.ts +22 -4
  9. package/dist/fixtures/index.d.ts.map +1 -1
  10. package/dist/fixtures/index.js +23 -3
  11. package/dist/fixtures/reserved-channel-replay/fresh-subscribe-replays-reserved-preview.json +30 -0
  12. package/dist/fixtures/reserved-channel-replay/index.d.ts +4 -0
  13. package/dist/fixtures/reserved-channel-replay/index.d.ts.map +1 -0
  14. package/dist/fixtures/reserved-channel-replay/index.js +18 -0
  15. package/dist/host-helper-conformance/index.d.ts +144 -2
  16. package/dist/host-helper-conformance/index.d.ts.map +1 -1
  17. package/dist/host-helper-conformance/index.js +309 -1
  18. package/dist/index.d.ts +4 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -2
  21. package/dist/match-behavior.d.ts.map +1 -1
  22. package/dist/match-behavior.js +47 -8
  23. package/dist/n1-compat-conformance/cases/forward-app-theme-carry-uninterpretable.json +21 -0
  24. package/dist/n1-compat-conformance/cases/forward-ops-list-blueprints-cloned.json +88 -0
  25. package/dist/n1-compat-conformance/cases/forward-ops-list-blueprints-stamped.json +77 -0
  26. package/dist/n1-compat-conformance/cases/forward-view-proof-later-version.json +14 -0
  27. package/dist/n1-compat-conformance/cases/forward-view-proof-root-later-claim.json +14 -0
  28. package/dist/n1-compat-conformance/cases/release-14-ops-list-blueprints.json +41 -0
  29. package/dist/n1-compat-conformance/index.d.ts +1 -1
  30. package/dist/n1-compat-conformance/index.d.ts.map +1 -1
  31. package/dist/n1-compat-conformance/index.js +128 -22
  32. package/dist/reporter.d.ts +5 -0
  33. package/dist/reporter.d.ts.map +1 -1
  34. package/dist/reporter.js +30 -4
  35. package/dist/run-conformance.d.ts +37 -1
  36. package/dist/run-conformance.d.ts.map +1 -1
  37. package/dist/run-conformance.js +32 -17
  38. package/dist/types.d.ts +16 -0
  39. package/dist/types.d.ts.map +1 -1
  40. package/package.json +8 -3
@@ -20,7 +20,7 @@
20
20
  *
21
21
  * ## Current coverage
22
22
  *
23
- * Six WebSocket sub-modules with content (12 fixtures). Additional sub-modules
23
+ * Seven WebSocket sub-modules with content (13 fixtures). Additional sub-modules
24
24
  * (`data-contract`, `tool-name-uniqueness`)
25
25
  * are reserved for additive fixture expansion and not yet
26
26
  * materialized — adding fixtures there is a kit minor version.
@@ -90,8 +90,8 @@
90
90
  * false fail: the runner dispatches every setup directive BEFORE it
91
91
  * opens the WebSocket and subscribes, and `emit-envelope` fans out to
92
92
  * live subscribers only — a fresh, `fromSeq`-less subscribe replays
93
- * nothing on declared channels (SPEC §12.2.1 invariant 1: "`fromSeq`
94
- * absent always means empty replay"), so the setup-time emission is
93
+ * nothing on declared channels (SPEC §12.2.1 invariant 1: a fresh
94
+ * subscribe replays no agent-declared channel), so the setup-time emission is
95
95
  * gone before the runner can observe it. The fixture's
96
96
  * `inputEnvelope` cannot carry the emission either: an input envelope
97
97
  * is by contract a Client→Server wire frame the runner sends on the
@@ -102,17 +102,36 @@
102
102
  * driver bound to `tools/call`. The `resources/read` driver above is
103
103
  * NOT that driver. Declared here rather than papered over with a
104
104
  * fixture that fails conformant servers on sequencing alone.
105
+ *
106
+ * A KNOWN-RESERVED channel is different, and that case IS authored
107
+ * (`reserved-channel-replay`, ggui#1526): a fresh subscribe SHOULD
108
+ * replay its retained envelopes after the ack (SPEC §12.2.1, the
109
+ * ggui#1521 erratum), so the setup-time emission is observable as that
110
+ * replay. It is graded at `level: 'should'`: a server that declines it
111
+ * is warned, never failed.
112
+ *
113
+ * ## What is NOT here — the client side of invariant 3
114
+ *
115
+ * SPEC §12.2.1 invariant 3 is a CLIENT obligation: after a fresh ack,
116
+ * apply every frame, including those at `seq ≤ streamSeq`, and dedupe
117
+ * against the highest `seq` applied, never against `streamSeq`. The kit
118
+ * has no driver for a live-channel CLIENT (the runner IS the client
119
+ * here, and the host-helper kit grades MCP Apps host helpers, not a
120
+ * view's channel), so it cannot grade that obligation. Declared as a
121
+ * gap, not implied as covered.
105
122
  */
106
123
  export { bootstrapProtocolFixtures } from './bootstrap-protocol/index.js';
107
124
  export { consumeBufferFixtures } from './consume-buffer/index.js';
108
125
  export { hostContextFixtures } from './host-context/index.js';
109
126
  export { reservedChannelAuthorityFixtures } from './reserved-channel-authority/index.js';
127
+ export { reservedChannelReplayFixtures } from './reserved-channel-replay/index.js';
110
128
  export { schemaVersionHandshakeFixtures } from './schema-version-handshake/index.js';
111
129
  export { subscribeAppScopeFixtures } from './subscribe-app-scope/index.js';
112
130
  import { bootstrapProtocolFixtures } from './bootstrap-protocol/index.js';
113
131
  import { consumeBufferFixtures } from './consume-buffer/index.js';
114
132
  import { hostContextFixtures } from './host-context/index.js';
115
133
  import { reservedChannelAuthorityFixtures } from './reserved-channel-authority/index.js';
134
+ import { reservedChannelReplayFixtures } from './reserved-channel-replay/index.js';
116
135
  import { schemaVersionHandshakeFixtures } from './schema-version-handshake/index.js';
117
136
  import { subscribeAppScopeFixtures } from './subscribe-app-scope/index.js';
118
137
  /**
@@ -128,6 +147,7 @@ export const fixturesByContract = {
128
147
  'consume-buffer': consumeBufferFixtures,
129
148
  'host-context': hostContextFixtures,
130
149
  'reserved-channel-authority': reservedChannelAuthorityFixtures,
150
+ 'reserved-channel-replay': reservedChannelReplayFixtures,
131
151
  'schema-version-handshake': schemaVersionHandshakeFixtures,
132
152
  'subscribe-app-scope': subscribeAppScopeFixtures,
133
153
  };
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "fresh-subscribe-replays-reserved-preview",
3
+ "description": "A SHOULD (SPEC §12.2.1, the ggui#1521 erratum): a fresh subscribe (no `fromSeq`) replays a known-reserved channel's retained envelopes after the ack, at `seq ≤ streamSeq`, so a view that attaches after a lifecycle envelope was sent still sees it. The server emits an A2UI `createSurface` on `_ggui:preview` (a known-reserved channel) BEFORE the runner opens the socket and subscribes; the runner-owned fresh subscribe IS the probe (the inputEnvelope is descriptive, not dispatched), and nothing is emitted after it, so a matching `data` frame can only be the replay. Expected: a `data` frame on `_ggui:preview` carrying the emitted body, after the subscribe's `ack` and at a `seq` at or below its `streamSeq` (`replayAfterAck`); a frame above `streamSeq` would be a live emission, not the replay. One emission is graded, so the case does not tell a full replay of every retained envelope from a latest-only one. A server that does not replay is graded a WARNING, never a failure: agent-declared channels replay nothing on a fresh subscribe (invariant 1), and a server may decline the SHOULD.",
4
+ "level": "should",
5
+ "skipReason": null,
6
+ "setup": [
7
+ { "type": "create-session", "sessionId": "ck-reserved-replay-1" },
8
+ {
9
+ "type": "emit-envelope",
10
+ "channel": "_ggui:preview",
11
+ "payload": {
12
+ "version": "v0.9",
13
+ "createSurface": { "surfaceId": "ck-preview-1", "catalogId": "ggui.preview.v1" }
14
+ }
15
+ }
16
+ ],
17
+ "inputEnvelope": {
18
+ "type": "handshake",
19
+ "sessionId": "ck-reserved-replay-1"
20
+ },
21
+ "expectedBehavior": {
22
+ "kind": "stream-update",
23
+ "channel": "_ggui:preview",
24
+ "replayAfterAck": true,
25
+ "value": {
26
+ "version": "v0.9",
27
+ "createSurface": { "surfaceId": "ck-preview-1", "catalogId": "ggui.preview.v1" }
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,4 @@
1
+ import type { TestCase } from '../../types.js';
2
+ /** All fixtures asserting what a fresh subscribe replays (SPEC §12.2.1). */
3
+ export declare const reservedChannelReplayFixtures: readonly TestCase[];
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fixtures/reserved-channel-replay/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,4EAA4E;AAC5E,eAAO,MAAM,6BAA6B,EAAE,SAAS,QAAQ,EAE5D,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Reserved-channel replay (SPEC §12.2.1, ggui#1521, ggui#1526): what a
3
+ * fresh subscribe replays. Agent-declared channels replay nothing
4
+ * without `fromSeq` (invariant 1); known-reserved channels' retained
5
+ * envelopes SHOULD be replayed after the ack, at `seq ≤ streamSeq`.
6
+ * The case here is a SHOULD (`level: 'should'`): a server that declines
7
+ * it is graded a warning.
8
+ *
9
+ * The runner dispatches setup before it subscribes, which is exactly
10
+ * the order this obligation needs: the envelope is emitted before any
11
+ * viewer is attached, so a frame observed after the subscribe can only
12
+ * be the replay.
13
+ */
14
+ import freshSubscribeReplaysReservedPreview from './fresh-subscribe-replays-reserved-preview.json' with { type: 'json' };
15
+ /** All fixtures asserting what a fresh subscribe replays (SPEC §12.2.1). */
16
+ export const reservedChannelReplayFixtures = [
17
+ freshSubscribeReplaysReservedPreview,
18
+ ];
@@ -69,6 +69,27 @@
69
69
  * view-issued and a model-issued call are indistinguishable on the wire
70
70
  * — so the kit is where a host proves it. Absent ⇒ `skip`.
71
71
  *
72
+ * - `V1-view-material-withheld` — OPTIONAL (ggui#1415, SPEC §4.7): the
73
+ * host keeps view-delivered material out of the model's context. The
74
+ * kit feeds the host's own context rules a render result and a render
75
+ * read body whose `_meta["ai.ggui/render"]` slice carries a unique
76
+ * marker in every string value, and requires none of them (raw,
77
+ * JSON-escaped, percent-encoded, or inside a base64 / base64url run) in
78
+ * what the model sees, while the
79
+ * model still sees the result's model-visible marker; and the host's
80
+ * model-facing resource list, when it has one, must withhold
81
+ * `ui://ggui/render/*` while keeping an ordinary resource. Absent ⇒
82
+ * `skip`.
83
+ * - `L1-view-locator-binding` — OPTIONAL (ggui#1415, SPEC §4.7): the host
84
+ * binds a view's calls and reads to its own locator. The kit feeds the
85
+ * host's own relay decision a view mounted for one session, and reads
86
+ * (every locator form) and every session-naming call a view may make,
87
+ * for that session (relay) and another (refuse). Absent ⇒ `skip`.
88
+ *
89
+ * The three host-rule grades (M1, V1, L1) grade the host's RULE, fed
90
+ * fixtures: they prove the rule is right, not that a running host applies
91
+ * it (self-certification; the V1 and L1 pass details say so).
92
+ *
72
93
  * A helper that refuses the relay honestly is graded **tier
73
94
  * `read-only`** — a LEGAL grade, with the R cases skipped, never
74
95
  * failed. `nonconforming` means a dishonesty case failed.
@@ -181,7 +202,7 @@ export interface ModelToolSetOptions {
181
202
  * A served-equivalent shape the M1 grade feeds a host's filter (ggui#1414):
182
203
  * agent tools as ggui declares them — `ggui_render` and `ggui_update` stamp
183
204
  * `visibility: ['model']`, the others carry no marker (the spec's default)
184
- * — and ggui's six app-only `ggui_runtime_*` tools. The list is static and
205
+ * — and ggui's seven app-only `ggui_runtime_*` tools. The list is static and
185
206
  * the names are the protocol's own, so it grades the FILTER a host applies,
186
207
  * never the host's live `tools/list`: a host that filters by name rather
187
208
  * than by visibility passes only as long as this list matches what its
@@ -189,6 +210,117 @@ export interface ModelToolSetOptions {
189
210
  * points at the predicate.
190
211
  */
191
212
  export declare const MODEL_TOOL_SET_FIXTURE: readonly ServedToolDeclaration[];
213
+ /** A tool result as a host receives it: what the model may see, and the `_meta` the view gets. */
214
+ export interface ToolResultFixture {
215
+ readonly structuredContent?: Readonly<Record<string, unknown>>;
216
+ readonly content: readonly {
217
+ readonly type: 'text';
218
+ readonly text: string;
219
+ }[];
220
+ readonly _meta: Readonly<Record<string, unknown>>;
221
+ }
222
+ /** A resource or resource template as a host sees it on the server's lists. */
223
+ export interface ServedResourceDeclaration {
224
+ readonly name: string;
225
+ readonly uri?: string;
226
+ readonly uriTemplate?: string;
227
+ }
228
+ /** The V1 grade's input: the host's own rules for what the model sees. */
229
+ export interface ModelContextOptions {
230
+ /** What the host places in the MODEL's context for one tool result, in any shape, sync or async. */
231
+ readonly modelContextOf: (result: ToolResultFixture) => unknown;
232
+ /**
233
+ * What the host places in the MODEL's context for one `resources/read`
234
+ * result of a render locator (a view's read, or one the host made), in any
235
+ * shape, sync or async. A host that never shows the model a read body
236
+ * returns nothing.
237
+ */
238
+ readonly modelContextOfRead: (read: ReadResultFixture) => unknown;
239
+ /**
240
+ * The resource URIs or templates the host offers the model to read.
241
+ * Absent: the host offers the model no resource reads at all, which
242
+ * meets the obligation by construction.
243
+ */
244
+ readonly resourcesOfferedToModel?: (served: readonly ServedResourceDeclaration[]) => readonly string[];
245
+ }
246
+ /** A `resources/read` result as a host receives it. */
247
+ export interface ReadResultFixture {
248
+ readonly contents: readonly {
249
+ readonly uri: string;
250
+ readonly mimeType: string;
251
+ readonly text: string;
252
+ }[];
253
+ }
254
+ /** The view a request comes from: the locator it mounted and its session. */
255
+ export interface MountedView {
256
+ readonly locator: string;
257
+ readonly sessionId: string;
258
+ }
259
+ /** One request a view makes through its host. */
260
+ export type ViewRequestFixture = {
261
+ readonly kind: 'resources/read';
262
+ readonly uri: string;
263
+ } | {
264
+ readonly kind: 'tools/call';
265
+ readonly name: string;
266
+ readonly arguments: Readonly<Record<string, unknown>>;
267
+ };
268
+ /** The L1 grade's input: the host's own decision for one request a view makes. */
269
+ export interface ViewBindingOptions {
270
+ readonly decide: (mounted: MountedView, request: ViewRequestFixture) => 'relay' | 'refuse';
271
+ }
272
+ /**
273
+ * The render result V1 feeds a host's context builder (ggui#1415). Every
274
+ * string value in the `_meta["ai.ggui/render"]` slice is a unique marker
275
+ * ({@link VIEW_MATERIAL_CANARIES}); the model-visible parts carry values of
276
+ * their own, so a host that shows them cannot trip a canary, and one marker
277
+ * ({@link VIEW_MATERIAL_VISIBLE_MARKER}) the model must still see.
278
+ */
279
+ export declare const VIEW_MATERIAL_RESULT_FIXTURE: ToolResultFixture;
280
+ /**
281
+ * The marker V1 requires in the model's context: the result itself is not
282
+ * withheld. Both model-visible parts carry it, so a host that shows either
283
+ * one passes.
284
+ */
285
+ export declare const VIEW_MATERIAL_VISIBLE_MARKER = "vmx-visible-marker-5e1b";
286
+ /**
287
+ * One canary per string value of the fixture's `ai.ggui/render` slice: the
288
+ * value's unique `vmx-slice-…` mark, which survives JSON escaping and
289
+ * encoding, or the whole value when it carries none. None may reach the model.
290
+ */
291
+ export declare const VIEW_MATERIAL_CANARIES: readonly string[];
292
+ /** The resources V1 feeds a host's model-facing resource list: the render template and one ordinary resource. */
293
+ export declare const MODEL_RESOURCE_FIXTURE: readonly ServedResourceDeclaration[];
294
+ /**
295
+ * A render locator's `resources/read` result as a server answers it: the
296
+ * self-contained shell, with the view's slice inlined, canaries included.
297
+ */
298
+ export declare const VIEW_MATERIAL_READ_FIXTURE: ReadResultFixture;
299
+ /** The view L1's requests come from. */
300
+ export declare const VIEW_BINDING_MOUNT: MountedView;
301
+ /**
302
+ * Every tool a view may call (no `model`-only marker) that names a session in
303
+ * its arguments, with arguments its input schema accepts. Left out:
304
+ * `ggui_runtime_declare_tool_catalog` (app-scoped, names none),
305
+ * `ggui_runtime_refresh_ws_token` (its session is inside the envelope, and
306
+ * the server admits the caller to it), `ggui_handshake` and
307
+ * `ggui_list_sessions` (name none), and `ggui_render` / `ggui_update`
308
+ * (model-only).
309
+ */
310
+ export declare const VIEW_SESSION_BOUND_CALLS: readonly {
311
+ readonly name: string;
312
+ readonly args: (sessionId: string) => Readonly<Record<string, unknown>>;
313
+ }[];
314
+ /**
315
+ * L1's requests and the decision each must get (ggui#1415). A view's own
316
+ * session relays and another's refuses, for a read of either locator form
317
+ * (`{sessionId}`, `{sessionId}/{blueprintKey}`, and an epoch pin `#N`) and
318
+ * for every call in {@link VIEW_SESSION_BOUND_CALLS}.
319
+ */
320
+ export declare const VIEW_BINDING_CASES: readonly {
321
+ readonly request: ViewRequestFixture;
322
+ readonly expect: 'relay' | 'refuse';
323
+ }[];
192
324
  export interface HostHelperConformanceOptions {
193
325
  /**
194
326
  * How long a refusal may take before it counts as a hang (H4 /
@@ -199,7 +331,7 @@ export interface HostHelperConformanceOptions {
199
331
  /**
200
332
  * Chrome audit for the C-grades. Absent ⇒ C cases report `skip`
201
333
  * (self-certification pending) — the tier is decided by H/R and by
202
- * whichever optional grades (C1, T1, M1) were supplied.
334
+ * whichever optional grades (C1, T1, M1, V1, L1) were supplied.
203
335
  */
204
336
  readonly chromeAudit?: ChromeAudit;
205
337
  /**
@@ -214,6 +346,16 @@ export interface HostHelperConformanceOptions {
214
346
  * it is just not graded here.
215
347
  */
216
348
  readonly modelToolSet?: ModelToolSetOptions;
349
+ /**
350
+ * The host's rules for what the model sees, for the V1 grade (ggui#1415).
351
+ * Absent ⇒ V1 reports `skip`.
352
+ */
353
+ readonly modelContext?: ModelContextOptions;
354
+ /**
355
+ * The host's relay decision for a view's requests, for the L1 grade
356
+ * (ggui#1415). Absent ⇒ L1 reports `skip`.
357
+ */
358
+ readonly viewBinding?: ViewBindingOptions;
217
359
  }
218
360
  export type HostHelperCaseOutcome = 'pass' | 'fail' | 'skip' | 'warn';
219
361
  export interface HostHelperCaseResult {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host-helper-conformance/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host-helper-conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AAEH,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,yCAAyC,CAAC;AAGjD,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;CAChE;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,4DAA4D;IAC5D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;KAClC,CAAC;IACF,0DAA0D;IAC1D,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,6BAA6B,CAAC;CAC7E;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,EAAE,CAAC,EAAE;YAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;SAAE,CAAC;KAC1E,CAAC;CACH;AAED,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,MAAM,EAAE,SAAS,qBAAqB,EAAE,KACrC,SAAS,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,qBAAqB,EAalE,CAAC;AAEF,kGAAkG;AAClG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9E,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnD;AAED,+EAA+E;AAC/E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,oGAAoG;IACpG,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC;IAChE;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC;IAClE;;;;OAIG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,KAAK,SAAS,MAAM,EAAE,CAAC;CACxG;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1G;AAED,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,iDAAiD;AACjD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,CAAC;AAElH,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,KAAK,OAAO,GAAG,QAAQ,CAAC;CAC5F;AAED;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,EAAE,iBAe1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AAkCtE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAIkB,CAAC;AAEvE,iHAAiH;AACjH,eAAO,MAAM,sBAAsB,EAAE,SAAS,yBAAyB,EAGtE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAQxC,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,kBAAkB,EAAE,WAAiF,CAAC;AAInH;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,EAwBjJ,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS;IAAE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,EAWtH,CAAC;AAsEF,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAC3C;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,eAAe,CAAC;AAExE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAkID;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,2BAA2B,CAAC,CA8btC"}