@mcp-native/a2ui 0.2.0 → 0.4.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.
@@ -0,0 +1,134 @@
1
+ import { parseJsonObject } from "@mcp-native/core";
2
+ import { A2uiParseError } from "../errors.js";
3
+ import { formatAjvErrors, getA2uiV1AgentCapabilitiesValidator, getA2uiV1RendererCapabilitiesValidator, } from "./schemas.js";
4
+ import { A2UI_V1_MAX_SOURCE_LENGTH } from "./types.js";
5
+ const VERSION_KEY = "v1.0";
6
+ /** Parses untrusted agent capability metadata and applies the normative v1 requirements. */
7
+ export function parseA2uiV1AgentCapabilities(input) {
8
+ const source = reconstructCapabilities(input, "agent capabilities");
9
+ const version = expectClosedVersionObject(source, [
10
+ "acceptsInlineCatalogs",
11
+ "supportedCatalogIds",
12
+ ]);
13
+ const validate = getA2uiV1AgentCapabilitiesValidator();
14
+ if (!validate(source)) {
15
+ throw new A2uiParseError(`A2UI v1 agent capability schema validation failed: ${formatAjvErrors(validate)}`);
16
+ }
17
+ if (!Object.hasOwn(version, "supportedCatalogIds")) {
18
+ throw new A2uiParseError("A2UI v1 agent capabilities must declare supportedCatalogIds as required by the protocol");
19
+ }
20
+ return freezeAgentCapabilities(parseCatalogIds(version.supportedCatalogIds, "agent capabilities.v1.0.supportedCatalogIds"), version.acceptsInlineCatalogs === true);
21
+ }
22
+ /**
23
+ * Parses renderer capability metadata without activating inline catalogs.
24
+ * Catalog IDs are declarations only; callers must advertise only fully implemented host catalogs.
25
+ */
26
+ export function parseA2uiV1RendererCapabilities(input) {
27
+ const source = reconstructCapabilities(input, "renderer capabilities");
28
+ const version = expectClosedVersionObject(source, ["inlineCatalogs", "supportedCatalogIds"]);
29
+ if (Object.hasOwn(version, "inlineCatalogs")) {
30
+ throw new A2uiParseError("A2UI v1 inline renderer catalogs are not supported without an explicit host catalog policy");
31
+ }
32
+ const validate = getA2uiV1RendererCapabilitiesValidator();
33
+ if (!validate(source)) {
34
+ throw new A2uiParseError(`A2UI v1 renderer capability schema validation failed: ${formatAjvErrors(validate)}`);
35
+ }
36
+ return freezeRendererCapabilities(parseCatalogIds(version.supportedCatalogIds, "renderer capabilities.v1.0.supportedCatalogIds"));
37
+ }
38
+ /** Constructs closed renderer metadata from host-owned catalog declarations. */
39
+ export function createA2uiV1RendererCapabilities(options) {
40
+ if (options === null || typeof options !== "object" || Array.isArray(options)) {
41
+ throw new A2uiParseError("Expected A2UI v1 renderer capability options to be an object");
42
+ }
43
+ const source = options;
44
+ rejectUnknownKeys(source, ["supportedCatalogIds"], "renderer capability options");
45
+ return parseA2uiV1RendererCapabilities({
46
+ [VERSION_KEY]: { supportedCatalogIds: source.supportedCatalogIds },
47
+ });
48
+ }
49
+ /** Finds exact catalog IDs that both peers explicitly declare. */
50
+ export function negotiateA2uiV1Capabilities(agentInput, rendererInput) {
51
+ const agent = parseA2uiV1AgentCapabilities(agentInput);
52
+ const renderer = parseA2uiV1RendererCapabilities(rendererInput);
53
+ const agentCatalogIds = new Set(agent[VERSION_KEY].supportedCatalogIds);
54
+ const supportedCatalogIds = renderer[VERSION_KEY].supportedCatalogIds.filter((catalogId) => agentCatalogIds.has(catalogId));
55
+ if (supportedCatalogIds.length === 0) {
56
+ return Object.freeze({
57
+ kind: "fallback",
58
+ protocolVersion: VERSION_KEY,
59
+ reason: "no-shared-catalog",
60
+ });
61
+ }
62
+ return Object.freeze({
63
+ kind: "negotiated",
64
+ protocolVersion: VERSION_KEY,
65
+ supportedCatalogIds: Object.freeze(supportedCatalogIds),
66
+ inlineCatalogsEnabled: false,
67
+ });
68
+ }
69
+ function reconstructCapabilities(input, path) {
70
+ let value = input;
71
+ if (typeof input === "string") {
72
+ if (input.length > A2UI_V1_MAX_SOURCE_LENGTH) {
73
+ throw new A2uiParseError(`A2UI v1 ${path} exceed maximum length of ${A2UI_V1_MAX_SOURCE_LENGTH}`);
74
+ }
75
+ try {
76
+ value = JSON.parse(input);
77
+ }
78
+ catch (error) {
79
+ const message = error instanceof Error ? error.message : "unknown JSON error";
80
+ throw new A2uiParseError(`Invalid A2UI v1 ${path} JSON: ${message}`, { cause: error });
81
+ }
82
+ }
83
+ try {
84
+ return parseJsonObject(value, path);
85
+ }
86
+ catch (error) {
87
+ const message = error instanceof Error ? error.message : `Invalid A2UI v1 ${path}`;
88
+ throw new A2uiParseError(message, { cause: error });
89
+ }
90
+ }
91
+ function expectClosedVersionObject(source, allowedVersionKeys) {
92
+ rejectUnknownKeys(source, [VERSION_KEY], "capabilities");
93
+ const version = source[VERSION_KEY];
94
+ if (version === null || typeof version !== "object" || Array.isArray(version)) {
95
+ throw new A2uiParseError(`Expected an object at capabilities.${VERSION_KEY}`);
96
+ }
97
+ rejectUnknownKeys(version, allowedVersionKeys, `capabilities.${VERSION_KEY}`);
98
+ return version;
99
+ }
100
+ function parseCatalogIds(value, path) {
101
+ if (!Array.isArray(value)) {
102
+ throw new A2uiParseError(`Expected an array at ${path}`);
103
+ }
104
+ const ids = new Set();
105
+ for (const [index, catalogId] of value.entries()) {
106
+ if (typeof catalogId !== "string" || catalogId.length === 0) {
107
+ throw new A2uiParseError(`Expected a non-empty string at ${path}[${index}]`);
108
+ }
109
+ if (ids.has(catalogId)) {
110
+ throw new A2uiParseError(`Duplicate A2UI catalog ID ${JSON.stringify(catalogId)} at ${path}`);
111
+ }
112
+ ids.add(catalogId);
113
+ }
114
+ return Object.freeze([...ids]);
115
+ }
116
+ function freezeAgentCapabilities(supportedCatalogIds, acceptsInlineCatalogs) {
117
+ return Object.freeze({
118
+ [VERSION_KEY]: Object.freeze({ supportedCatalogIds, acceptsInlineCatalogs }),
119
+ });
120
+ }
121
+ function freezeRendererCapabilities(supportedCatalogIds) {
122
+ return Object.freeze({
123
+ [VERSION_KEY]: Object.freeze({ supportedCatalogIds }),
124
+ });
125
+ }
126
+ function rejectUnknownKeys(value, allowed, path) {
127
+ const allowedKeys = new Set(allowed);
128
+ for (const key of Object.keys(value)) {
129
+ if (!allowedKeys.has(key)) {
130
+ throw new A2uiParseError(`Unexpected field ${JSON.stringify(key)} at ${path}`);
131
+ }
132
+ }
133
+ }
134
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/v1/capabilities.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,20 @@ import type { JsonValue } from "@mcp-native/core";
2
2
  export interface A2uiV1ParsedFormatString {
3
3
  readonly expressionCount: number;
4
4
  readonly expressions: readonly JsonValue[];
5
+ readonly parts: readonly A2uiV1FormatStringPart[];
5
6
  }
7
+ type A2uiV1FormatStringPart = {
8
+ readonly kind: "expression";
9
+ readonly value: JsonValue;
10
+ } | {
11
+ readonly kind: "literal";
12
+ readonly value: string;
13
+ };
14
+ export type A2uiV1FormatStringExpressionResolver = (expression: JsonValue, index: number) => JsonValue | undefined;
15
+ export type A2uiV1FormatStringExpressionBudgetConsumer = (expressionCount: number) => void;
6
16
  /** Parses the expression language embedded in one pinned-catalog formatString value. */
7
17
  export declare function parseA2uiV1FormatString(source: string, path: string): A2uiV1ParsedFormatString;
18
+ /** Evaluates one parsed formatString source with a host-owned expression resolver. */
19
+ export declare function evaluateA2uiV1FormatString(source: string, resolveExpression: A2uiV1FormatStringExpressionResolver, path?: string, consumeExpressionBudget?: A2uiV1FormatStringExpressionBudgetConsumer): string;
20
+ export {};
8
21
  //# sourceMappingURL=format-string.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format-string.d.ts","sourceRoot":"","sources":["../../src/v1/format-string.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAC;CAC5C;AAWD,wFAAwF;AACxF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAG9F"}
1
+ {"version":3,"file":"format-string.d.ts","sourceRoot":"","sources":["../../src/v1/format-string.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACnD;AAED,KAAK,sBAAsB,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,oCAAoC,GAAG,CACjD,UAAU,EAAE,SAAS,EACrB,KAAK,EAAE,MAAM,KACV,SAAS,GAAG,SAAS,CAAC;AAE3B,MAAM,MAAM,0CAA0C,GAAG,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;AAW3F,wFAAwF;AACxF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAG9F;AAED,sFAAsF;AACtF,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,oCAAoC,EACvD,IAAI,SAAiB,EACrB,uBAAuB,CAAC,EAAE,0CAA0C,GACnE,MAAM,CAwCR"}
@@ -1,4 +1,4 @@
1
- import { JSON_MAX_DEPTH, JSON_MAX_VALUES } from "@mcp-native/core";
1
+ import { JSON_MAX_DEPTH, JSON_MAX_STRING_LENGTH, JSON_MAX_VALUES, parseJsonValue, } from "@mcp-native/core";
2
2
  import { A2uiParseError } from "../errors.js";
3
3
  const IDENTIFIER = /^[\p{XID_Start}_][\p{XID_Continue}]*$/u;
4
4
  const JSON_NUMBER = /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/;
@@ -7,6 +7,40 @@ export function parseA2uiV1FormatString(source, path) {
7
7
  const parser = new FormatStringParser(path);
8
8
  return parser.parse(source);
9
9
  }
10
+ /** Evaluates one parsed formatString source with a host-owned expression resolver. */
11
+ export function evaluateA2uiV1FormatString(source, resolveExpression, path = "formatString", consumeExpressionBudget) {
12
+ if (typeof source !== "string") {
13
+ throw new A2uiParseError(`Expected a string at ${path}`);
14
+ }
15
+ if (source.length > JSON_MAX_STRING_LENGTH) {
16
+ throw new A2uiParseError(`A2UI formatString source at ${path} exceeds maximum length of ${JSON_MAX_STRING_LENGTH}`);
17
+ }
18
+ if (typeof resolveExpression !== "function") {
19
+ throw new A2uiParseError(`Expected an A2UI formatString expression resolver at ${path}`);
20
+ }
21
+ if (typeof path !== "string" || path.length === 0) {
22
+ throw new A2uiParseError("Expected a non-empty A2UI formatString diagnostic path");
23
+ }
24
+ if (consumeExpressionBudget !== undefined && typeof consumeExpressionBudget !== "function") {
25
+ throw new A2uiParseError(`Expected an A2UI formatString budget consumer at ${path}`);
26
+ }
27
+ const parsed = parseA2uiV1FormatString(source, path);
28
+ consumeExpressionBudget?.(parsed.expressionCount);
29
+ const chunks = [];
30
+ let outputLength = 0;
31
+ let expressionIndex = 0;
32
+ for (const part of parsed.parts) {
33
+ const chunk = part.kind === "literal"
34
+ ? part.value
35
+ : coerceFormatStringValue(resolveExpression(part.value, expressionIndex++), `${path}.interpolations[${expressionIndex - 1}]`, JSON_MAX_STRING_LENGTH - outputLength);
36
+ outputLength += chunk.length;
37
+ if (outputLength > JSON_MAX_STRING_LENGTH) {
38
+ throwFormatStringOutputLimit(path);
39
+ }
40
+ chunks.push(chunk);
41
+ }
42
+ return chunks.join("");
43
+ }
10
44
  class FormatStringParser {
11
45
  #path;
12
46
  #expressionCount = 0;
@@ -15,17 +49,25 @@ class FormatStringParser {
15
49
  }
16
50
  parse(source) {
17
51
  const expressions = [];
52
+ const parts = [];
53
+ let literalStart = 0;
18
54
  for (let index = 0; index < source.length; index += 1) {
19
55
  if (source[index] !== "$" || source[index + 1] !== "{" || isEscaped(source, index)) {
20
56
  continue;
21
57
  }
22
58
  const interpolation = this.#readInterpolation(source, index);
23
- expressions.push(this.#parseExpression(interpolation.content, interpolation.offset, 1));
59
+ appendLiteralPart(parts, source.slice(literalStart, index));
60
+ const expression = this.#parseExpression(interpolation.content, interpolation.offset, 1);
61
+ expressions.push(expression);
62
+ parts.push({ kind: "expression", value: expression });
24
63
  index = interpolation.end - 1;
64
+ literalStart = interpolation.end;
25
65
  }
66
+ appendLiteralPart(parts, source.slice(literalStart));
26
67
  return {
27
68
  expressionCount: this.#expressionCount,
28
69
  expressions,
70
+ parts,
29
71
  };
30
72
  }
31
73
  #parseExpression(source, offset, depth) {
@@ -179,6 +221,74 @@ class FormatStringParser {
179
221
  throw new A2uiParseError(`A2UI formatString at ${this.#path} ${message} near offset ${offset}`);
180
222
  }
181
223
  }
224
+ function appendLiteralPart(parts, source) {
225
+ if (source.length === 0) {
226
+ return;
227
+ }
228
+ parts.push({ kind: "literal", value: source.replaceAll("\\${", "${") });
229
+ }
230
+ function coerceFormatStringValue(value, path, remainingLength) {
231
+ if (value === undefined || value === null) {
232
+ return "";
233
+ }
234
+ const reconstructed = parseJsonValue(value, path);
235
+ if (typeof reconstructed === "string") {
236
+ return reconstructed;
237
+ }
238
+ if (typeof reconstructed === "number" || typeof reconstructed === "boolean") {
239
+ return String(reconstructed);
240
+ }
241
+ measureJsonSerialization(reconstructed, remainingLength, path);
242
+ const serialized = JSON.stringify(reconstructed);
243
+ if (serialized === undefined) {
244
+ throw new A2uiParseError(`Expected a JSON value at ${path}`);
245
+ }
246
+ return serialized;
247
+ }
248
+ function measureJsonSerialization(value, limit, path) {
249
+ let length;
250
+ if (value === null) {
251
+ length = 4;
252
+ }
253
+ else if (typeof value === "boolean") {
254
+ length = value ? 4 : 5;
255
+ }
256
+ else if (typeof value === "number") {
257
+ length = String(value).length;
258
+ }
259
+ else if (typeof value === "string") {
260
+ length = JSON.stringify(value).length;
261
+ }
262
+ else if (Array.isArray(value)) {
263
+ length = 2;
264
+ for (const [index, child] of value.entries()) {
265
+ length += index === 0 ? 0 : 1;
266
+ length += measureJsonSerialization(child, limit - length, `${path}[${index}]`);
267
+ if (length > limit) {
268
+ throwFormatStringOutputLimit(path);
269
+ }
270
+ }
271
+ }
272
+ else {
273
+ length = 2;
274
+ let index = 0;
275
+ for (const [key, child] of Object.entries(value)) {
276
+ length += index++ === 0 ? 0 : 1;
277
+ length += JSON.stringify(key).length + 1;
278
+ length += measureJsonSerialization(child, limit - length, `${path}.${key}`);
279
+ if (length > limit) {
280
+ throwFormatStringOutputLimit(path);
281
+ }
282
+ }
283
+ }
284
+ if (length > limit) {
285
+ throwFormatStringOutputLimit(path);
286
+ }
287
+ return length;
288
+ }
289
+ function throwFormatStringOutputLimit(path) {
290
+ throw new A2uiParseError(`A2UI formatString output at ${path} exceeds maximum length of ${JSON_MAX_STRING_LENGTH}`);
291
+ }
182
292
  function findFirstParenthesis(source) {
183
293
  for (let index = 0; index < source.length; index += 1) {
184
294
  if (source[index] === "(") {
@@ -1 +1 @@
1
- {"version":3,"file":"format-string.js","sourceRoot":"","sources":["../../src/v1/format-string.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format-string.js","sourceRoot":"","sources":["../../src/v1/format-string.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAyB9C,MAAM,UAAU,GAAG,wCAAwC,CAAC;AAC5D,MAAM,WAAW,GAAG,wDAAwD,CAAC;AAE7E,wFAAwF;AACxF,MAAM,UAAU,uBAAuB,CAAC,MAAc,EAAE,IAAY;IAClE,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,0BAA0B,CACxC,MAAc,EACd,iBAAuD,EACvD,IAAI,GAAG,cAAc,EACrB,uBAAoE;IAEpE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,cAAc,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;QAC3C,MAAM,IAAI,cAAc,CACtB,+BAA+B,IAAI,8BAA8B,sBAAsB,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE,CAAC;QAC5C,MAAM,IAAI,cAAc,CAAC,wDAAwD,IAAI,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,cAAc,CAAC,wDAAwD,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,uBAAuB,KAAK,SAAS,IAAI,OAAO,uBAAuB,KAAK,UAAU,EAAE,CAAC;QAC3F,MAAM,IAAI,cAAc,CAAC,oDAAoD,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrD,uBAAuB,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAClD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,KAAK,GACT,IAAI,CAAC,IAAI,KAAK,SAAS;YACrB,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,uBAAuB,CACrB,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,EAChD,GAAG,IAAI,mBAAmB,eAAe,GAAG,CAAC,GAAG,EAChD,sBAAsB,GAAG,YAAY,CACtC,CAAC;QACR,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC;QAC7B,IAAI,YAAY,GAAG,sBAAsB,EAAE,CAAC;YAC1C,4BAA4B,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,kBAAkB;IACb,KAAK,CAAS;IACvB,gBAAgB,GAAG,CAAC,CAAC;IAErB,YAAY,IAAY;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,MAAc;QAClB,MAAM,WAAW,GAAgB,EAAE,CAAC;QACpC,MAAM,KAAK,GAA6B,EAAE,CAAC;QAC3C,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACtD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;gBACnF,SAAS;YACX,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7D,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACzF,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACtD,KAAK,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;YAC9B,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC;QACnC,CAAC;QACD,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACrD,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,WAAW;YACX,KAAK;SACN,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QAC5D,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,gBAAgB,GAAG,eAAe,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,sBAAsB,eAAe,4BAA4B,EAAE,MAAM,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,uCAAuC,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,4CAA4C,EAAE,MAAM,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC,KAAK,CAAC,qDAAqD,EAAE,MAAM,CAAC,CAAC;YAC5E,CAAC;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACnD,OAAO,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,eAAe,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;QACjE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzF,IAAI,UAAU,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,KAAK,CAAC,iDAAiD,EAAE,MAAM,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAC/B,UAAU,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,EAAE,gBAAgB,CAAC,EACvD,MAAM,GAAG,eAAe,GAAG,CAAC,EAC5B,KAAK,CACN,CAAC;QACF,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QAC3D,MAAM,IAAI,GAA8B,EAAE,CAAC;QAC3C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,8CAA8C,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CACR,kCAAkC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EACxD,MAAM,GAAG,OAAO,CAAC,MAAM,CACxB,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7F,CAAC;YACD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,KAAK,CACR,wCAAwC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAC9D,MAAM,GAAG,OAAO,CAAC,MAAM,CACxB,CAAC;YACJ,CAAC;YACD,kBAAkB,CAChB,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAC1F,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QAC/D,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACzD,IAAI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,KAAK,CAAC,qDAAqD,EAAE,MAAM,CAAC,CAAC;YAC5E,CAAC;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3C,OAAO,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACxF,CAAC;IAED,kBAAkB,CAAC,MAAc,EAAE,KAAa;QAC9C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,KAA4B,CAAC;QACjC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;YACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,GAAG,KAAK,CAAC;gBAClB,CAAC;qBAAM,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBAC9B,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;qBAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;oBAC/B,KAAK,GAAG,SAAS,CAAC;gBACpB,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;gBAC3C,KAAK,GAAG,SAAS,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,IAAI,SAAS,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;gBAChF,OAAO,IAAI,CAAC,CAAC;gBACb,KAAK,IAAI,CAAC,CAAC;gBACX,SAAS;YACX,CAAC;YACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,CAAC;gBACb,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;oBAClB,OAAO;wBACL,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC;wBACvC,GAAG,EAAE,KAAK,GAAG,CAAC;wBACd,MAAM,EAAE,KAAK,GAAG,CAAC;qBAClB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,MAAc;QACnC,MAAM,IAAI,cAAc,CAAC,wBAAwB,IAAI,CAAC,KAAK,IAAI,OAAO,gBAAgB,MAAM,EAAE,CAAC,CAAC;IAClG,CAAC;CACF;AAED,SAAS,iBAAiB,CAAC,KAA+B,EAAE,MAAc;IACxE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAA4B,EAC5B,IAAY,EACZ,eAAuB;IAEvB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,OAAO,aAAa,KAAK,SAAS,EAAE,CAAC;QAC5E,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/B,CAAC;IACD,wBAAwB,CAAC,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACjD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAgB,EAAE,KAAa,EAAE,IAAY;IAC7E,IAAI,MAAc,CAAC;IACnB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,GAAG,CAAC,CAAC;IACb,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAChC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACxC,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,GAAG,CAAC,CAAC;QACX,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,IAAI,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;YAC/E,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;gBACnB,4BAA4B,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,CAAC,CAAC;QACX,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,MAAM,IAAI,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;YAC5E,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;gBACnB,4BAA4B,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;QACnB,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAY;IAChD,MAAM,IAAI,cAAc,CACtB,+BAA+B,IAAI,8BAA8B,sBAAsB,EAAE,CAC1F,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IAC1C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc,EAAE,IAAY,EAAE,IAAY;IACxE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAA4B,CAAC;IACjC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;iBAAM,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC9B,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;iBAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC/B,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC3C,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,cAAc,CAAC,wBAAwB,IAAI,qCAAqC,CAAC,CAAC;AAC9F,CAAC;AAOD,SAAS,aAAa,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAY;IACpE,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QAC1D,IAAI,UAAU,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YACpE,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,MAAc,EAAE,IAAY;IACzE,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QAC1D,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,UAAU,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACxD,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CACnB,MAAc,EACd,IAAY,EACZ,KAAsE;IAEtE,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,KAA4B,CAAC;IACjC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;iBAAM,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC9B,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;iBAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC/B,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;YACD,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC3C,KAAK,GAAG,SAAS,CAAC;YAClB,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACnD,kBAAkB,IAAI,CAAC,CAAC;YACxB,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAChD,kBAAkB,IAAI,CAAC,CAAC;YACxB,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YAClD,gBAAgB,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YACzD,gBAAgB,IAAI,CAAC,CAAC;YACtB,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,cAAc,CAAC,wBAAwB,IAAI,4BAA4B,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QACD,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,kBAAkB,KAAK,CAAC,IAAI,gBAAgB,KAAK,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,IAAI,kBAAkB,KAAK,CAAC,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,cAAc,CAAC,wBAAwB,IAAI,sCAAsC,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,IAAY,EAAE,MAAc;IACtE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;IACzB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QACjC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,cAAc,CACtB,wBAAwB,IAAI,yDAAyD,MAAM,EAAE,CAC9F,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,cAAc,CACtB,wBAAwB,IAAI,6CAA6C,MAAM,GAAG,KAAK,EAAE,CAC1F,CAAC;QACJ,CAAC;QACD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,SAAS,CAAC;YACpB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM;QACR,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;QACX,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC;YACV,KAAK,GAAG;gBACN,MAAM,IAAI,OAAO,CAAC;gBAClB,MAAM;YACR,KAAK,GAAG;gBACN,MAAM,IAAI,GAAG,CAAC;gBACd,MAAM;YACR,KAAK,GAAG;gBACN,MAAM,IAAI,GAAG,CAAC;gBACd,MAAM;YACR,KAAK,GAAG;gBACN,MAAM,IAAI,IAAI,CAAC;gBACf,MAAM;YACR,KAAK,GAAG;gBACN,MAAM,IAAI,IAAI,CAAC;gBACf,MAAM;YACR,KAAK,GAAG;gBACN,MAAM,IAAI,IAAI,CAAC;gBACf,MAAM;YACR,KAAK,GAAG;gBACN,MAAM,IAAI,IAAI,CAAC;gBACf,MAAM;YACR,KAAK,GAAG;gBACN,MAAM,IAAI,IAAI,CAAC;gBACf,MAAM;YACR,KAAK,GAAG,EAAE,CAAC;gBACT,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrC,MAAM,IAAI,cAAc,CACtB,wBAAwB,IAAI,mDAAmD,MAAM,GAAG,KAAK,EAAE,CAChG,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC3D,KAAK,IAAI,CAAC,CAAC;gBACX,MAAM;YACR,CAAC;YACD;gBACE,MAAM,IAAI,cAAc,CACtB,wBAAwB,IAAI,gCAAgC,IAAI,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE,CAAC,gBAAgB,MAAM,GAAG,KAAK,EAAE,CAC3H,CAAC;QACN,CAAC;IACH,CAAC;IACD,MAAM,IAAI,cAAc,CACtB,wBAAwB,IAAI,wDAAwD,MAAM,EAAE,CAC7F,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,KAAa;IAC9C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QACjF,WAAW,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAiC,EACjC,GAAW,EACX,KAAgB;IAEhB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;QACjC,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,KAAK;QACL,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +1,9 @@
1
1
  export { A2UI_V1_MAX_COMPONENTS, A2UI_V1_MAX_ENVELOPES, A2UI_V1_MAX_SURFACES, A2UI_V1_MAX_SOURCE_LENGTH, A2UI_V1_PROTOCOL_VERSION, } from "./types.js";
2
- export type { A2uiV1Component, A2uiV1CreateSurfaceEnvelope, A2uiV1DeleteSurfaceEnvelope, A2uiV1Envelope, A2uiV1EnvelopeKind, A2uiV1SurfaceState, A2uiV1UpdateComponentsEnvelope, A2uiV1UpdateDataModelEnvelope, } from "./types.js";
2
+ export type { A2uiV1Action, A2uiV1ActionEnvelope, A2uiV1ActionEnvelopeInput, A2uiV1AgentCapabilities, A2uiV1CallAgentFunctionEnvelope, A2uiV1CapabilityNegotiation, A2uiV1Component, A2uiV1CreateSurfaceEnvelope, A2uiV1DeleteSurfaceEnvelope, A2uiV1Envelope, A2uiV1EnvelopeKind, A2uiV1RendererCapabilities, A2uiV1RendererCapabilitiesOptions, A2uiV1ErrorEnvelope, A2uiV1FunctionCall, A2uiV1GenericRendererError, A2uiV1RendererError, A2uiV1RendererFunctionResponse, A2uiV1RendererFunctionResponseEnvelope, A2uiV1RendererToAgentEnvelope, A2uiV1RendererToAgentEnvelopeKind, A2uiV1SurfaceState, A2uiV1UpdateComponentsEnvelope, A2uiV1UpdateDataModelEnvelope, A2uiV1ValidationErrorCode, A2uiV1ValidationRendererError, } from "./types.js";
3
+ export { createA2uiV1ActionEnvelope, parseA2uiV1RendererToAgentEnvelope } from "./action.js";
4
+ export { evaluateA2uiV1FormatString } from "./format-string.js";
5
+ export type { A2uiV1FormatStringExpressionBudgetConsumer, A2uiV1FormatStringExpressionResolver, } from "./format-string.js";
6
+ export { createA2uiV1RendererCapabilities, negotiateA2uiV1Capabilities, parseA2uiV1AgentCapabilities, parseA2uiV1RendererCapabilities, } from "./capabilities.js";
3
7
  export { parseA2uiV1Envelope, parseA2uiV1Jsonl } from "./parse.js";
4
8
  export { A2uiSurfaceStore } from "./store.js";
5
9
  export { resolveA2uiV1JsonlFromToolResult } from "./resolve.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC3B,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAChE,YAAY,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,+BAA+B,EAC/B,2BAA2B,EAC3B,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC3B,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,iCAAiC,EACjC,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,8BAA8B,EAC9B,sCAAsC,EACtC,6BAA6B,EAC7B,iCAAiC,EACjC,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,EAC7B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,0BAA0B,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EACV,0CAA0C,EAC1C,oCAAoC,GACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAChE,YAAY,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC"}
package/dist/v1/index.js CHANGED
@@ -1,4 +1,7 @@
1
1
  export { A2UI_V1_MAX_COMPONENTS, A2UI_V1_MAX_ENVELOPES, A2UI_V1_MAX_SURFACES, A2UI_V1_MAX_SOURCE_LENGTH, A2UI_V1_PROTOCOL_VERSION, } from "./types.js";
2
+ export { createA2uiV1ActionEnvelope, parseA2uiV1RendererToAgentEnvelope } from "./action.js";
3
+ export { evaluateA2uiV1FormatString } from "./format-string.js";
4
+ export { createA2uiV1RendererCapabilities, negotiateA2uiV1Capabilities, parseA2uiV1AgentCapabilities, parseA2uiV1RendererCapabilities, } from "./capabilities.js";
2
5
  export { parseA2uiV1Envelope, parseA2uiV1Jsonl } from "./parse.js";
3
6
  export { A2uiSurfaceStore } from "./store.js";
4
7
  export { resolveA2uiV1JsonlFromToolResult } from "./resolve.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAWpB,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AA6BpB,OAAO,EAAE,0BAA0B,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAKhE,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,eAAe,CAAC"}
@@ -1,7 +1,16 @@
1
1
  import type { ValidateFunction } from "ajv/dist/2020.js";
2
+ /** Compiles the pinned agent capability schema. Semantic checks remain caller-owned. */
3
+ export declare function getA2uiV1AgentCapabilitiesValidator(): ValidateFunction;
4
+ /**
5
+ * Compiles the pinned renderer capability schema with inline catalogs disabled.
6
+ * Inline catalog schema execution is deferred until a separate host policy exists.
7
+ */
8
+ export declare function getA2uiV1RendererCapabilitiesValidator(): ValidateFunction;
2
9
  /** Compiles the pinned agent-to-renderer schema once with the basic catalog mapped in. */
3
10
  export declare function getA2uiV1EnvelopeValidator(): ValidateFunction;
4
11
  /** Validates a function reconstructed from the formatString expression language. */
5
12
  export declare function getA2uiV1FunctionCallValidator(): ValidateFunction;
13
+ /** Compiles the pinned renderer-to-agent schema once with its standard references. */
14
+ export declare function getA2uiV1RendererToAgentValidator(): ValidateFunction;
6
15
  export declare function formatAjvErrors(validate: ValidateFunction): string;
7
16
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/v1/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAuDtE,0FAA0F;AAC1F,wBAAgB,0BAA0B,IAAI,gBAAgB,CAa7D;AAED,oFAAoF;AACpF,wBAAgB,8BAA8B,IAAI,gBAAgB,CAejE;AA+BD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAMlE"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/v1/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AA6DtE,wFAAwF;AACxF,wBAAgB,mCAAmC,IAAI,gBAAgB,CAKtE;AAED;;;GAGG;AACH,wBAAgB,sCAAsC,IAAI,gBAAgB,CAUzE;AAED,0FAA0F;AAC1F,wBAAgB,0BAA0B,IAAI,gBAAgB,CAa7D;AAED,oFAAoF;AACpF,wBAAgB,8BAA8B,IAAI,gBAAgB,CAejE;AAED,sFAAsF;AACtF,wBAAgB,iCAAiC,IAAI,gBAAgB,CAUpE;AAmCD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAMlE"}
@@ -1,8 +1,11 @@
1
1
  import Ajv2020Import from "ajv/dist/2020.js";
2
2
  import addFormatsImport from "ajv-formats";
3
+ import agentCapabilities from "./vendor/agent_capabilities.json" with { type: "json" };
3
4
  import agentToRenderer from "./vendor/agent_to_renderer.json" with { type: "json" };
4
5
  import basicCatalog from "./vendor/catalog.json" with { type: "json" };
5
6
  import commonTypes from "./vendor/common_types.json" with { type: "json" };
7
+ import rendererCapabilities from "./vendor/renderer_capabilities.json" with { type: "json" };
8
+ import rendererToAgent from "./vendor/renderer_to_agent.json" with { type: "json" };
6
9
  const Ajv2020 = Ajv2020Import;
7
10
  const addFormats = addFormatsImport;
8
11
  /** Official catalogs ship a discriminator that Ajv cannot map through $ref; drop it. */
@@ -32,6 +35,29 @@ function addSchemaAs(ajv, schema, id) {
32
35
  }
33
36
  let cachedValidate;
34
37
  let cachedFunctionValidate;
38
+ let cachedRendererToAgentValidate;
39
+ let cachedAgentCapabilitiesValidate;
40
+ let cachedRendererCapabilitiesValidate;
41
+ /** Compiles the pinned agent capability schema. Semantic checks remain caller-owned. */
42
+ export function getA2uiV1AgentCapabilitiesValidator() {
43
+ if (cachedAgentCapabilitiesValidate === undefined) {
44
+ cachedAgentCapabilitiesValidate = createAjv().compile(agentCapabilities);
45
+ }
46
+ return cachedAgentCapabilitiesValidate;
47
+ }
48
+ /**
49
+ * Compiles the pinned renderer capability schema with inline catalogs disabled.
50
+ * Inline catalog schema execution is deferred until a separate host policy exists.
51
+ */
52
+ export function getA2uiV1RendererCapabilitiesValidator() {
53
+ if (cachedRendererCapabilitiesValidate === undefined) {
54
+ const schema = cloneJson(rendererCapabilities);
55
+ const versionProperties = schema.properties["v1.0"].properties;
56
+ versionProperties.inlineCatalogs = false;
57
+ cachedRendererCapabilitiesValidate = createAjv().compile(schema);
58
+ }
59
+ return cachedRendererCapabilitiesValidate;
60
+ }
35
61
  /** Compiles the pinned agent-to-renderer schema once with the basic catalog mapped in. */
36
62
  export function getA2uiV1EnvelopeValidator() {
37
63
  if (cachedValidate !== undefined) {
@@ -61,13 +87,19 @@ export function getA2uiV1FunctionCallValidator() {
61
87
  });
62
88
  return cachedFunctionValidate;
63
89
  }
90
+ /** Compiles the pinned renderer-to-agent schema once with its standard references. */
91
+ export function getA2uiV1RendererToAgentValidator() {
92
+ if (cachedRendererToAgentValidate !== undefined) {
93
+ return cachedRendererToAgentValidate;
94
+ }
95
+ const common = commonTypes;
96
+ const catalog = basicCatalog;
97
+ const ajv = createCatalogAjv(common, catalog);
98
+ cachedRendererToAgentValidate = ajv.compile(stripDiscriminator(rendererToAgent));
99
+ return cachedRendererToAgentValidate;
100
+ }
64
101
  function createCatalogAjv(common, catalog) {
65
- const ajv = new Ajv2020({
66
- allErrors: true,
67
- strict: false,
68
- validateSchema: false,
69
- });
70
- addFormats(ajv);
102
+ const ajv = createAjv();
71
103
  const commonId = expectStringId(common);
72
104
  const catalogId = expectStringId(catalog);
73
105
  addSchemaAs(ajv, common, commonId);
@@ -77,6 +109,15 @@ function createCatalogAjv(common, catalog) {
77
109
  addSchemaAs(ajv, catalog, "https://a2ui.org/specification/v1_0/catalog.json");
78
110
  return ajv;
79
111
  }
112
+ function createAjv() {
113
+ const ajv = new Ajv2020({
114
+ allErrors: true,
115
+ strict: false,
116
+ validateSchema: false,
117
+ });
118
+ addFormats(ajv);
119
+ return ajv;
120
+ }
80
121
  function expectStringId(schema) {
81
122
  const id = schema["$id"];
82
123
  if (typeof id !== "string" || id.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/v1/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/v1/schemas.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/v1/store.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAmC,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAWnE;;;GAGG;AACH,qBAAa,gBAAgB;;IAG3B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9B;IAED,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAGrD;IAED,kEAAkE;IAClE,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,6BAA6B,GACpC,kBAAkB,GAAG,SAAS,CAGhC;IAED,IAAI,IAAI,SAAS,kBAAkB,EAAE,CAEpC;IAED,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAE7B;IAsBD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAiB5C;CA4FF"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/v1/store.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAmC,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAYnE;;;GAGG;AACH,qBAAa,gBAAgB;;IAG3B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9B;IAED,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAGrD;IAED,kEAAkE;IAClE,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,6BAA6B,GACpC,kBAAkB,GAAG,SAAS,CAGhC;IAED,IAAI,IAAI,SAAS,kBAAkB,EAAE,CAEpC;IAED,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAE7B;IAsBD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAiB5C;CA8FF"}
package/dist/v1/store.js CHANGED
@@ -88,6 +88,7 @@ export class A2uiSurfaceStore {
88
88
  const surface = {
89
89
  surfaceId: message.surfaceId,
90
90
  sendDataModel: message.sendDataModel === true,
91
+ dataModelRevision: 0,
91
92
  components,
92
93
  dataModel,
93
94
  };
@@ -110,6 +111,7 @@ export class A2uiSurfaceStore {
110
111
  const updatedDataModel = setJsonPointer(surface.dataModel, message.path, parseJsonValue(message.value, "updateDataModel.value"));
111
112
  try {
112
113
  surface.dataModel = parseJsonObject(updatedDataModel, "updateDataModel.result");
114
+ surface.dataModelRevision += 1;
113
115
  }
114
116
  catch (error) {
115
117
  const errorMessage = error instanceof Error ? error.message : "Invalid merged data model";
@@ -156,6 +158,7 @@ function freezeSurface(surface) {
156
158
  surfaceId: surface.surfaceId,
157
159
  ...(surface.catalogId === undefined ? {} : { catalogId: surface.catalogId }),
158
160
  sendDataModel: surface.sendDataModel,
161
+ dataModelRevision: surface.dataModelRevision,
159
162
  components: cloneComponents(surface.components),
160
163
  dataModel: parseJsonObject(surface.dataModel, "surface.dataModel"),
161
164
  ...(surface.metadata === undefined
@@ -170,6 +173,7 @@ function cloneSurfaces(surfaces) {
170
173
  surfaceId: surface.surfaceId,
171
174
  ...(surface.catalogId === undefined ? {} : { catalogId: surface.catalogId }),
172
175
  sendDataModel: surface.sendDataModel,
176
+ dataModelRevision: surface.dataModelRevision,
173
177
  components: cloneComponents(surface.components),
174
178
  dataModel: parseJsonObject(surface.dataModel, "surface.dataModel"),
175
179
  ...(surface.metadata === undefined