@mcp-native/a2ui 0.1.0 → 0.3.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 (83) hide show
  1. package/README.md +100 -13
  2. package/dist/binding.d.ts +33 -0
  3. package/dist/binding.d.ts.map +1 -0
  4. package/dist/binding.js +83 -0
  5. package/dist/binding.js.map +1 -0
  6. package/dist/errors.d.ts +7 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +13 -0
  9. package/dist/errors.js.map +1 -0
  10. package/dist/index.d.ts +9 -12
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +7 -13
  13. package/dist/index.js.map +1 -1
  14. package/dist/mime.d.ts +6 -0
  15. package/dist/mime.d.ts.map +1 -0
  16. package/dist/mime.js +2 -0
  17. package/dist/mime.js.map +1 -0
  18. package/dist/schema-revision.d.ts +3 -0
  19. package/dist/schema-revision.d.ts.map +1 -0
  20. package/dist/schema-revision.js +3 -0
  21. package/dist/schema-revision.js.map +1 -0
  22. package/dist/v1/action.d.ts +7 -0
  23. package/dist/v1/action.d.ts.map +1 -0
  24. package/dist/v1/action.js +86 -0
  25. package/dist/v1/action.js.map +1 -0
  26. package/dist/v1/capabilities.d.ts +13 -0
  27. package/dist/v1/capabilities.d.ts.map +1 -0
  28. package/dist/v1/capabilities.js +134 -0
  29. package/dist/v1/capabilities.js.map +1 -0
  30. package/dist/v1/format-string.d.ts +21 -0
  31. package/dist/v1/format-string.d.ts.map +1 -0
  32. package/dist/v1/format-string.js +487 -0
  33. package/dist/v1/format-string.js.map +1 -0
  34. package/dist/v1/index.d.ts +13 -0
  35. package/dist/v1/index.d.ts.map +1 -0
  36. package/dist/v1/index.js +9 -0
  37. package/dist/v1/index.js.map +1 -0
  38. package/dist/v1/parse.d.ts +12 -0
  39. package/dist/v1/parse.d.ts.map +1 -0
  40. package/dist/v1/parse.js +96 -0
  41. package/dist/v1/parse.js.map +1 -0
  42. package/dist/v1/resolve.d.ts +19 -0
  43. package/dist/v1/resolve.d.ts.map +1 -0
  44. package/dist/v1/resolve.js +112 -0
  45. package/dist/v1/resolve.js.map +1 -0
  46. package/dist/v1/schemas.d.ts +16 -0
  47. package/dist/v1/schemas.d.ts.map +1 -0
  48. package/dist/v1/schemas.js +133 -0
  49. package/dist/v1/schemas.js.map +1 -0
  50. package/dist/v1/store.d.ts +21 -0
  51. package/dist/v1/store.d.ts.map +1 -0
  52. package/dist/v1/store.js +305 -0
  53. package/dist/v1/store.js.map +1 -0
  54. package/dist/v1/types.d.ts +109 -0
  55. package/dist/v1/types.d.ts.map +1 -0
  56. package/dist/v1/types.js +10 -0
  57. package/dist/v1/types.js.map +1 -0
  58. package/dist/v1/validate.d.ts +26 -0
  59. package/dist/v1/validate.d.ts.map +1 -0
  60. package/dist/v1/validate.js +449 -0
  61. package/dist/v1/validate.js.map +1 -0
  62. package/dist/v1/vendor/agent_capabilities.json +26 -0
  63. package/dist/v1/vendor/agent_to_renderer.json +216 -0
  64. package/dist/v1/vendor/catalog.json +1346 -0
  65. package/dist/v1/vendor/common_types.json +395 -0
  66. package/dist/v1/vendor/renderer_capabilities.json +29 -0
  67. package/dist/v1/vendor/renderer_to_agent.json +161 -0
  68. package/package.json +5 -2
  69. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/CHECKSUMS.sha256 +13 -0
  70. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/PROVENANCE.md +12 -0
  71. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/catalogs/basic/catalog.json +1346 -0
  72. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/agent_capabilities.json +26 -0
  73. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/agent_to_renderer.json +216 -0
  74. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/agent_to_renderer_list.json +10 -0
  75. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/agent_to_renderer_list_wrapper.json +14 -0
  76. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/catalog_definition.json +267 -0
  77. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/common_types.json +395 -0
  78. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/renderer_capabilities.json +29 -0
  79. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/renderer_data_model.json +22 -0
  80. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/renderer_to_agent.json +161 -0
  81. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/renderer_to_agent_list.json +10 -0
  82. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/renderer_to_agent_list_wrapper.json +14 -0
  83. package/schemas/7541f953050cd58b80f0bf5d85fe2d63192af305/json/sample.json +22 -0
package/README.md CHANGED
@@ -91,7 +91,74 @@ Other tool content and non-A2UI resource links may coexist with the surface link
91
91
 
92
92
  The prototype's `application/a2ui+json` resource convention comes from earlier A2UI-over-MCP work. The [A2UI v1.0 Candidate protocol](https://github.com/a2ui-project/a2ui/blob/7541f953050cd58b80f0bf5d85fe2d63192af305/specification/v1_0/docs/a2ui_protocol.md) is transport-agnostic and uses a stream of `v1.0` envelopes. Recognizing this media type does not establish v1.0 conformance.
93
93
 
94
- The next protocol milestone will parse official v1.0 envelopes and schemas into an internal trusted render plan. It will not evolve the custom `0.1` object into a competing wire protocol. See the [compatibility matrix and conformance roadmap](https://github.com/pablospaniard/mcp-native/blob/main/docs/standards-compatibility.md).
94
+ The official v1.0 surface-store state now has a strict adapter, including bounded dynamic lists, into the internal trusted render plan. This does not evolve the custom `0.1` object into a competing wire protocol. See the [compatibility matrix and conformance roadmap](https://github.com/pablospaniard/mcp-native/blob/main/docs/standards-compatibility.md).
95
+
96
+ ## A2UI-over-MCP capability binding
97
+
98
+ The package exports an experimental project-owned binding under `io.github.pablospaniard/mcp-native-a2ui`. It is enabled only when both peers advertise the exact binding version, A2UI Candidate revision, JSONL resource transport, and MIME type:
99
+
100
+ ```ts
101
+ import { A2UI_MCP_EXTENSION_CAPABILITIES, negotiateA2uiMcpBinding } from "@mcp-native/a2ui";
102
+
103
+ const result = negotiateA2uiMcpBinding(
104
+ adapter.getClientExtensionSettings(),
105
+ adapter.getServerExtensionSettings(),
106
+ );
107
+ ```
108
+
109
+ A fallback result means the host uses ordinary MCP text or structured data. A resource link, MIME type, or `_meta` value never activates the binding by itself. The exact capability exchange, ordered `resource-text-jsonl` mapping, and failure behavior are documented in the [project binding contract](https://github.com/pablospaniard/mcp-native/blob/main/docs/a2ui-mcp-binding.md).
110
+
111
+ ## A2UI v1 catalog capabilities
112
+
113
+ A2UI's agent and renderer capability objects are separate from the project-owned MCP binding settings. Parse peer metadata and negotiate only exact shared catalog IDs:
114
+
115
+ ```ts
116
+ import {
117
+ createA2uiV1RendererCapabilities,
118
+ negotiateA2uiV1Capabilities,
119
+ parseA2uiV1AgentCapabilities,
120
+ } from "@mcp-native/a2ui";
121
+
122
+ const rendererCapabilities = createA2uiV1RendererCapabilities({
123
+ supportedCatalogIds: ["https://example.com/catalogs/native-v1"],
124
+ });
125
+ const agentCapabilities = parseA2uiV1AgentCapabilities(untrustedAgentMetadata);
126
+ const catalogs = negotiateA2uiV1Capabilities(agentCapabilities, rendererCapabilities);
127
+ ```
128
+
129
+ These APIs close fields the pinned schemas leave permissive, require the protocol's normative agent catalog list, reject empty or duplicate IDs, and keep inline catalogs disabled. A host must advertise only catalogs it fully implements. The current React Native adapter supports only a subset of the pinned basic catalog, so that subset alone is not grounds to advertise the complete basic catalog ID.
130
+
131
+ ## Official v1.0 envelopes and surface store
132
+
133
+ After mutual negotiation, hosts can resolve a JSONL resource and apply lifecycle envelopes:
134
+
135
+ ```ts
136
+ import {
137
+ A2UI_MCP_EXTENSION_CAPABILITIES,
138
+ A2uiSurfaceStore,
139
+ createA2uiV1BasicCatalogPolicy,
140
+ negotiateA2uiMcpBinding,
141
+ resolveA2uiV1JsonlFromToolResult,
142
+ } from "@mcp-native/a2ui";
143
+
144
+ const binding = negotiateA2uiMcpBinding(
145
+ A2UI_MCP_EXTENSION_CAPABILITIES,
146
+ adapter.getServerExtensionSettings(),
147
+ );
148
+ const { envelopes } = await resolveA2uiV1JsonlFromToolResult(runtime, toolResult, binding);
149
+ const store = new A2uiSurfaceStore();
150
+ store.applyAll(envelopes);
151
+
152
+ const surface = store.getValidated(
153
+ "surface-id",
154
+ createA2uiV1BasicCatalogPolicy({
155
+ allowedComponentNames: ["Column", "Text", "Button"],
156
+ allowedEventNames: ["continue"],
157
+ }),
158
+ );
159
+ ```
160
+
161
+ Only `createSurface`, `updateComponents`, `updateDataModel`, and `deleteSurface` agent-to-renderer envelopes are accepted by the lifecycle parser. Raw store snapshots may be incomplete while ordered updates arrive. Store snapshots include a host-owned `dataModelRevision` that changes only after an accepted agent data-model update, allowing renderers to preserve local edits across equivalent fresh snapshots. The store bounds retained surfaces and components; `getValidated` is the required pre-render boundary for the pinned basic catalog, explicit host component/event/function allowlists, reachable child references and cycles, template-aware binding paths, and component placement rules. The React Native package adapts and mounts the supported subset, including bounded dynamic lists, supported formatting functions, and pure boolean functions, after revalidation. `createA2uiV1ActionEnvelope` constructs the supported renderer-to-agent action envelope from resolved, host-owned input; the host remains responsible for transport delivery. Function-call envelopes, remaining renderer functions and checks, and the remaining renderer-to-agent message kinds remain deferred. The custom `0.1` resolver is unchanged and never receives a failed v1 stream.
95
162
 
96
163
  ## Supported surface
97
164
 
@@ -106,17 +173,31 @@ The only supported action is `{ type: "tool", name, arguments? }`. Arguments mus
106
173
 
107
174
  ## Public API
108
175
 
109
- | Export | Purpose |
110
- | -------------------------------------------------- | ---------------------------------------------------------------- |
111
- | `resolveA2uiResourceFromToolResult` | Reads and parses the single explicit A2UI link in a tool result. |
112
- | `parseA2uiSurface` | Validates input and returns a typed `A2uiSurface`. |
113
- | `A2uiResourceError`, `A2uiParseError` | Specific resolution and parsing failures. |
114
- | `A2UI_MIME_TYPE`, `A2UI_VERSION` | Exact media type and current proof-of-concept version. |
115
- | `A2UI_MAX_DEPTH`, `A2UI_MAX_NODES` | Container-tree complexity limits. |
116
- | `A2UI_MAX_SOURCE_LENGTH`, `A2UI_MAX_STRING_LENGTH` | Serialized-input and string-field limits. |
117
- | `ResolvedA2uiResource` | URI, MIME type, and validated surface returned by the resolver. |
118
- | `A2uiSurface`, `A2uiNode` | Validated surface and node unions. |
119
- | Node interfaces | Typed container, text, button, and text-input nodes. |
176
+ | Export | Purpose |
177
+ | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
178
+ | `resolveA2uiResourceFromToolResult` | Reads and parses the single explicit A2UI link in a tool result. |
179
+ | `parseA2uiSurface` | Validates input and returns a typed `A2uiSurface`. |
180
+ | `A2uiResourceError`, `A2uiParseError` | Specific resolution and parsing failures. |
181
+ | `A2UI_MIME_TYPE`, `A2UI_VERSION` | Exact media type and current proof-of-concept version. |
182
+ | `A2UI_MAX_DEPTH`, `A2UI_MAX_NODES` | Container-tree complexity limits. |
183
+ | `A2UI_MAX_SOURCE_LENGTH`, `A2UI_MAX_STRING_LENGTH` | Serialized-input and string-field limits. |
184
+ | `A2UI_MCP_EXTENSION_ID`, `A2UI_MCP_EXTENSION_CAPABILITIES` | Exact project-owned extension declaration. |
185
+ | `negotiateA2uiMcpBinding`, `A2uiMcpBindingNegotiation`, `A2uiMcpBindingGrant` | Exact-match negotiation with typed fallback reasons. |
186
+ | `A2UI_MCP_BINDING_VERSION`, `A2UI_MCP_PROTOCOL_VERSION`, `A2UI_MCP_SCHEMA_REVISION`, `A2UI_MCP_TRANSPORT` | Pinned binding and Candidate transport values. |
187
+ | `parseA2uiV1AgentCapabilities`, `parseA2uiV1RendererCapabilities` | Strict pinned-schema capability metadata boundaries. |
188
+ | `createA2uiV1RendererCapabilities`, `negotiateA2uiV1Capabilities` | Host-owned declarations and exact shared-catalog negotiation. |
189
+ | `parseA2uiV1Envelope`, `parseA2uiV1Jsonl` | Schema-validate v1 lifecycle envelopes and JSONL batches. |
190
+ | `A2uiSurfaceStore` | Ordered lifecycle state plus policy-gated `getValidated`. |
191
+ | `createA2uiV1BasicCatalogPolicy`, `A2uiV1SurfaceValidationPolicy` | Explicit host allowlists for components, events, and functions. |
192
+ | `validateA2uiV1SurfaceState` | Revalidate a complete snapshot at another public trust boundary. |
193
+ | `createA2uiV1ActionEnvelope`, `A2uiV1ActionEnvelope` | Construct an owned, pinned-schema renderer action for host transport. |
194
+ | `evaluateA2uiV1FormatString` | Evaluate interpolation and report parser-counted work to budgets. |
195
+ | `A2UI_V1_BASIC_CATALOG_ID`, catalog name constants | Exact pinned catalog identity and selectable host capabilities. |
196
+ | `resolveA2uiV1JsonlFromToolResult`, `ResolvedA2uiV1JsonlResource` | Resolve a JSONL A2UI resource without using the `0.1` parser. |
197
+ | `A2UI_V1_PROTOCOL_VERSION`, `A2UI_V1_MAX_SOURCE_LENGTH`, `A2UI_V1_MAX_ENVELOPES`, store limit constants | v1 protocol and complexity limits. |
198
+ | `ResolvedA2uiResource` | URI, MIME type, and validated surface returned by the resolver. |
199
+ | `A2uiSurface`, `A2uiNode` | Validated surface and node unions. |
200
+ | Node interfaces | Typed container, text, button, and text-input nodes. |
120
201
 
121
202
  ## Security behavior
122
203
 
@@ -128,11 +209,17 @@ The only supported action is `{ type: "tool", name, arguments? }`. Arguments mus
128
209
  - Tool arguments are recursively constrained to finite, acyclic JSON values in plain objects.
129
210
  - JSON keys such as `__proto__` are preserved as ordinary own data properties without changing object prototypes.
130
211
  - Parsing never resolves components or executes server-provided code.
212
+ - Renderer action construction selects a closed field set, owns its JSON context and metadata, and validates the official pinned renderer-to-agent schema.
213
+ - Renderer-ready v1 snapshots require a complete acyclic root-reachable graph and explicit host allowlists.
214
+ - Capability metadata rejects unknown versions and fields, empty or duplicate catalog IDs, non-JSON values, and inline catalog definitions.
215
+ - Relative bindings and `@index` are accepted only inside dynamic-list template context.
216
+ - Catalog functions and agent events are denied unless named by host policy.
217
+ - `formatString` is accepted only when explicitly allowlisted and its `value` is a literal string. Its interpolation language is parsed with depth, expression-count, cumulative-source, per-result, and expanded-plan limits; every embedded binding and named function call is validated against template scope, the host allowlist, and the pinned catalog schema. Runtime-provided format sources are rejected because their interpolations cannot be inspected before rendering. The evaluator coerces null to an empty string, primitives conventionally, and arrays or objects through bounded JSON serialization; callers still own expression resolution.
131
218
  - Successful parsing does not grant device capabilities or permission to call a tool; the host still owns those decisions.
132
219
 
133
220
  ## Next layer
134
221
 
135
- Use [`@mcp-native/react-native`](https://www.npmjs.com/package/@mcp-native/react-native) to convert a validated surface into a trusted native render plan, or install [`mcp-native`](https://www.npmjs.com/package/mcp-native) for the combined runtime and UI APIs.
222
+ Use [`@mcp-native/react-native`](https://www.npmjs.com/package/@mcp-native/react-native) to adapt the supported v1 subset or the custom `0.1` surface into a trusted native render plan. Install [`mcp-native`](https://www.npmjs.com/package/mcp-native) for the combined runtime and UI APIs.
136
223
 
137
224
  ## License
138
225
 
@@ -0,0 +1,33 @@
1
+ import type { McpExtensionSettings } from "@mcp-native/core";
2
+ import { A2UI_MIME_TYPE } from "./mime.js";
3
+ import { A2UI_MCP_SCHEMA_REVISION } from "./schema-revision.js";
4
+ /** Project-owned MCP binding for carrying ordered official A2UI messages. */
5
+ export declare const A2UI_MCP_EXTENSION_ID: "io.github.pablospaniard/mcp-native-a2ui";
6
+ export declare const A2UI_MCP_BINDING_VERSION: "0.1";
7
+ export declare const A2UI_MCP_PROTOCOL_VERSION: "v1.0";
8
+ export declare const A2UI_MCP_TRANSPORT: "resource-text-jsonl";
9
+ /** Reuse this exact map for SDK advertisement and local negotiation. */
10
+ export declare const A2UI_MCP_EXTENSION_CAPABILITIES: McpExtensionSettings;
11
+ export type A2uiMcpBindingNegotiation = {
12
+ readonly kind: "fallback";
13
+ readonly identifier: typeof A2UI_MCP_EXTENSION_ID;
14
+ readonly reason: "client-unsupported" | "server-unsupported" | "incompatible-settings";
15
+ } | {
16
+ readonly kind: "negotiated";
17
+ readonly identifier: typeof A2UI_MCP_EXTENSION_ID;
18
+ readonly bindingVersion: typeof A2UI_MCP_BINDING_VERSION;
19
+ readonly protocolVersion: typeof A2UI_MCP_PROTOCOL_VERSION;
20
+ readonly schemaRevision: typeof A2UI_MCP_SCHEMA_REVISION;
21
+ readonly transport: typeof A2UI_MCP_TRANSPORT;
22
+ readonly mimeType: typeof A2UI_MIME_TYPE;
23
+ };
24
+ export type A2uiMcpBindingGrant = Extract<A2uiMcpBindingNegotiation, {
25
+ kind: "negotiated";
26
+ }>;
27
+ /**
28
+ * Enables the project A2UI binding only for an exact, mutual settings match.
29
+ * A fallback result means callers must use ordinary MCP text/structured data.
30
+ */
31
+ export declare function negotiateA2uiMcpBinding(clientExtensions: unknown, serverExtensions: unknown): A2uiMcpBindingNegotiation;
32
+ export declare function isA2uiMcpBindingGrant(value: unknown): value is A2uiMcpBindingGrant;
33
+ //# sourceMappingURL=binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,EAAG,yCAAkD,CAAC;AACxF,eAAO,MAAM,wBAAwB,EAAG,KAAc,CAAC;AACvD,eAAO,MAAM,yBAAyB,EAAG,MAAe,CAAC;AACzD,eAAO,MAAM,kBAAkB,EAAG,qBAA8B,CAAC;AAoBjE,wEAAwE;AACxE,eAAO,MAAM,+BAA+B,EAAE,oBAE5C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GACjC;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,qBAAqB,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;CACxF,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,qBAAqB,CAAC;IAClD,QAAQ,CAAC,cAAc,EAAE,OAAO,wBAAwB,CAAC;IACzD,QAAQ,CAAC,eAAe,EAAE,OAAO,yBAAyB,CAAC;IAC3D,QAAQ,CAAC,cAAc,EAAE,OAAO,wBAAwB,CAAC;IACzD,QAAQ,CAAC,SAAS,EAAE,OAAO,kBAAkB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,cAAc,CAAC;CAC1C,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC;AAE7F;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,OAAO,GACxB,yBAAyB,CAgC3B;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAgBlF"}
@@ -0,0 +1,83 @@
1
+ import { negotiateMcpExtension } from "@mcp-native/core";
2
+ import { A2UI_MIME_TYPE } from "./mime.js";
3
+ import { A2UI_MCP_SCHEMA_REVISION } from "./schema-revision.js";
4
+ /** Project-owned MCP binding for carrying ordered official A2UI messages. */
5
+ export const A2UI_MCP_EXTENSION_ID = "io.github.pablospaniard/mcp-native-a2ui";
6
+ export const A2UI_MCP_BINDING_VERSION = "0.1";
7
+ export const A2UI_MCP_PROTOCOL_VERSION = "v1.0";
8
+ export const A2UI_MCP_TRANSPORT = "resource-text-jsonl";
9
+ const a2uiMcpSettings = Object.freeze({
10
+ bindingVersion: A2UI_MCP_BINDING_VERSION,
11
+ protocolVersion: A2UI_MCP_PROTOCOL_VERSION,
12
+ schemaRevision: A2UI_MCP_SCHEMA_REVISION,
13
+ transport: A2UI_MCP_TRANSPORT,
14
+ mimeType: A2UI_MIME_TYPE,
15
+ });
16
+ const A2UI_MCP_BINDING_GRANT_KEYS = [
17
+ "kind",
18
+ "identifier",
19
+ "bindingVersion",
20
+ "protocolVersion",
21
+ "schemaRevision",
22
+ "transport",
23
+ "mimeType",
24
+ ];
25
+ /** Reuse this exact map for SDK advertisement and local negotiation. */
26
+ export const A2UI_MCP_EXTENSION_CAPABILITIES = Object.freeze({
27
+ [A2UI_MCP_EXTENSION_ID]: a2uiMcpSettings,
28
+ });
29
+ /**
30
+ * Enables the project A2UI binding only for an exact, mutual settings match.
31
+ * A fallback result means callers must use ordinary MCP text/structured data.
32
+ */
33
+ export function negotiateA2uiMcpBinding(clientExtensions, serverExtensions) {
34
+ const negotiation = negotiateMcpExtension(A2UI_MCP_EXTENSION_ID, clientExtensions, serverExtensions);
35
+ if (negotiation.kind === "fallback") {
36
+ return {
37
+ kind: "fallback",
38
+ identifier: A2UI_MCP_EXTENSION_ID,
39
+ reason: negotiation.reason,
40
+ };
41
+ }
42
+ if (!matchesA2uiMcpSettings(negotiation.clientSettings) ||
43
+ !matchesA2uiMcpSettings(negotiation.serverSettings)) {
44
+ return {
45
+ kind: "fallback",
46
+ identifier: A2UI_MCP_EXTENSION_ID,
47
+ reason: "incompatible-settings",
48
+ };
49
+ }
50
+ return {
51
+ kind: "negotiated",
52
+ identifier: A2UI_MCP_EXTENSION_ID,
53
+ bindingVersion: A2UI_MCP_BINDING_VERSION,
54
+ protocolVersion: A2UI_MCP_PROTOCOL_VERSION,
55
+ schemaRevision: A2UI_MCP_SCHEMA_REVISION,
56
+ transport: A2UI_MCP_TRANSPORT,
57
+ mimeType: A2UI_MIME_TYPE,
58
+ };
59
+ }
60
+ export function isA2uiMcpBindingGrant(value) {
61
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
62
+ return false;
63
+ }
64
+ const grant = value;
65
+ return (Object.keys(grant).length === A2UI_MCP_BINDING_GRANT_KEYS.length &&
66
+ A2UI_MCP_BINDING_GRANT_KEYS.every((key) => Object.hasOwn(grant, key)) &&
67
+ grant.kind === "negotiated" &&
68
+ grant.identifier === A2UI_MCP_EXTENSION_ID &&
69
+ grant.bindingVersion === A2UI_MCP_BINDING_VERSION &&
70
+ grant.protocolVersion === A2UI_MCP_PROTOCOL_VERSION &&
71
+ grant.schemaRevision === A2UI_MCP_SCHEMA_REVISION &&
72
+ grant.transport === A2UI_MCP_TRANSPORT &&
73
+ grant.mimeType === A2UI_MIME_TYPE);
74
+ }
75
+ function matchesA2uiMcpSettings(settings) {
76
+ return (Object.keys(settings).length === 5 &&
77
+ settings.bindingVersion === A2UI_MCP_BINDING_VERSION &&
78
+ settings.protocolVersion === A2UI_MCP_PROTOCOL_VERSION &&
79
+ settings.schemaRevision === A2UI_MCP_SCHEMA_REVISION &&
80
+ settings.transport === A2UI_MCP_TRANSPORT &&
81
+ settings.mimeType === A2UI_MIME_TYPE);
82
+ }
83
+ //# sourceMappingURL=binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class A2uiParseError extends Error {
2
+ constructor(message: string, options?: ErrorOptions);
3
+ }
4
+ export declare class A2uiResourceError extends Error {
5
+ constructor(message: string, options?: ErrorOptions);
6
+ }
7
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAGlD;CACF;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAGlD;CACF"}
package/dist/errors.js ADDED
@@ -0,0 +1,13 @@
1
+ export class A2uiParseError extends Error {
2
+ constructor(message, options) {
3
+ super(message, options);
4
+ this.name = "A2uiParseError";
5
+ }
6
+ }
7
+ export class A2uiResourceError extends Error {
8
+ constructor(message, options) {
9
+ super(message, options);
10
+ this.name = "A2uiResourceError";
11
+ }
12
+ }
13
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,13 @@
1
- import type { McpReadResourceResult, McpToolCallResult, ToolAction } from "@mcp-native/core";
1
+ import type { McpToolCallResult, ToolAction } from "@mcp-native/core";
2
+ import { A2UI_MIME_TYPE, type A2uiResourceReader } from "./mime.js";
3
+ export { A2uiParseError, A2uiResourceError } from "./errors.js";
4
+ export { A2UI_MIME_TYPE, type A2uiResourceReader } from "./mime.js";
5
+ export { A2UI_MCP_SCHEMA_REVISION } from "./schema-revision.js";
6
+ export { A2UI_MCP_BINDING_VERSION, A2UI_MCP_EXTENSION_CAPABILITIES, A2UI_MCP_EXTENSION_ID, A2UI_MCP_PROTOCOL_VERSION, A2UI_MCP_TRANSPORT, isA2uiMcpBindingGrant, negotiateA2uiMcpBinding, } from "./binding.js";
7
+ export type { A2uiMcpBindingGrant, A2uiMcpBindingNegotiation } from "./binding.js";
8
+ export { A2UI_V1_MAX_ENVELOPES, A2UI_V1_MAX_SOURCE_LENGTH, A2UI_V1_PROTOCOL_VERSION, A2UI_V1_BASIC_CATALOG_ID, A2UI_V1_BASIC_COMPONENT_NAMES, A2UI_V1_BASIC_FUNCTION_NAMES, A2UI_V1_SYSTEM_FUNCTION_NAMES, A2UI_V1_MAX_COMPONENTS, A2UI_V1_MAX_SURFACES, A2uiSurfaceStore, createA2uiV1ActionEnvelope, createA2uiV1BasicCatalogPolicy, createA2uiV1RendererCapabilities, evaluateA2uiV1FormatString, negotiateA2uiV1Capabilities, parseA2uiV1AgentCapabilities, parseA2uiV1Envelope, parseA2uiV1Jsonl, parseA2uiV1RendererCapabilities, resolveA2uiV1JsonlFromToolResult, validateA2uiV1SurfaceState, } from "./v1/index.js";
9
+ export type { A2uiV1Action, A2uiV1ActionEnvelope, A2uiV1ActionEnvelopeInput, A2uiV1AgentCapabilities, A2uiV1BasicCatalogPolicyOptions, A2uiV1CapabilityNegotiation, A2uiV1Component, A2uiV1CreateSurfaceEnvelope, A2uiV1DeleteSurfaceEnvelope, A2uiV1Envelope, A2uiV1EnvelopeKind, A2uiV1FormatStringExpressionBudgetConsumer, A2uiV1FormatStringExpressionResolver, A2uiV1RendererCapabilities, A2uiV1RendererCapabilitiesOptions, A2uiV1SurfaceState, A2uiV1SurfaceValidationPolicy, A2uiV1UpdateComponentsEnvelope, A2uiV1UpdateDataModelEnvelope, ResolvedA2uiV1JsonlResource, } from "./v1/index.js";
2
10
  export declare const A2UI_VERSION: "0.1";
3
- export declare const A2UI_MIME_TYPE: "application/a2ui+json";
4
11
  /** Maximum nesting depth for container trees (root is depth 0). */
5
12
  export declare const A2UI_MAX_DEPTH = 32;
6
13
  /** Maximum number of nodes allowed in a single surface. */
@@ -36,25 +43,15 @@ export interface A2uiSurface {
36
43
  readonly version: typeof A2UI_VERSION;
37
44
  readonly root: A2uiNode;
38
45
  }
39
- export interface A2uiResourceReader {
40
- readResource(uri: string): Promise<McpReadResourceResult>;
41
- }
42
46
  export interface ResolvedA2uiResource {
43
47
  readonly uri: string;
44
48
  readonly mimeType: typeof A2UI_MIME_TYPE;
45
49
  readonly surface: A2uiSurface;
46
50
  }
47
- export declare class A2uiParseError extends Error {
48
- constructor(message: string, options?: ErrorOptions);
49
- }
50
- export declare class A2uiResourceError extends Error {
51
- constructor(message: string);
52
- }
53
51
  /**
54
52
  * Resolves the single explicitly typed A2UI resource link in a successful
55
53
  * tool result, reads it through the host client, and validates its surface.
56
54
  */
57
55
  export declare function resolveA2uiResourceFromToolResult(reader: A2uiResourceReader, toolResult: McpToolCallResult): Promise<ResolvedA2uiResource>;
58
56
  export declare function parseA2uiSurface(input: string | unknown): A2uiSurface;
59
- export {};
60
57
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,qBAAqB,EACrB,iBAAiB,EACjB,UAAU,EACX,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,YAAY,EAAG,KAAc,CAAC;AAC3C,eAAO,MAAM,cAAc,EAAG,uBAAgC,CAAC;AAE/D,mEAAmE;AACnE,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,2DAA2D;AAC3D,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,kEAAkE;AAClE,eAAO,MAAM,sBAAsB,UAAY,CAAC;AAChD,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAE7F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,YAAY,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,cAAc,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAGlD;CACF;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;GAGG;AACH,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,iBAAiB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAuC/B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CA2BrE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,12 @@
1
1
  import { parseMcpNativeAction } from "@mcp-native/core";
2
+ import { A2uiParseError, A2uiResourceError } from "./errors.js";
3
+ import { A2UI_MIME_TYPE } from "./mime.js";
4
+ export { A2uiParseError, A2uiResourceError } from "./errors.js";
5
+ export { A2UI_MIME_TYPE } from "./mime.js";
6
+ export { A2UI_MCP_SCHEMA_REVISION } from "./schema-revision.js";
7
+ export { A2UI_MCP_BINDING_VERSION, A2UI_MCP_EXTENSION_CAPABILITIES, A2UI_MCP_EXTENSION_ID, A2UI_MCP_PROTOCOL_VERSION, A2UI_MCP_TRANSPORT, isA2uiMcpBindingGrant, negotiateA2uiMcpBinding, } from "./binding.js";
8
+ export { A2UI_V1_MAX_ENVELOPES, A2UI_V1_MAX_SOURCE_LENGTH, A2UI_V1_PROTOCOL_VERSION, A2UI_V1_BASIC_CATALOG_ID, A2UI_V1_BASIC_COMPONENT_NAMES, A2UI_V1_BASIC_FUNCTION_NAMES, A2UI_V1_SYSTEM_FUNCTION_NAMES, A2UI_V1_MAX_COMPONENTS, A2UI_V1_MAX_SURFACES, A2uiSurfaceStore, createA2uiV1ActionEnvelope, createA2uiV1BasicCatalogPolicy, createA2uiV1RendererCapabilities, evaluateA2uiV1FormatString, negotiateA2uiV1Capabilities, parseA2uiV1AgentCapabilities, parseA2uiV1Envelope, parseA2uiV1Jsonl, parseA2uiV1RendererCapabilities, resolveA2uiV1JsonlFromToolResult, validateA2uiV1SurfaceState, } from "./v1/index.js";
2
9
  export const A2UI_VERSION = "0.1";
3
- export const A2UI_MIME_TYPE = "application/a2ui+json";
4
10
  /** Maximum nesting depth for container trees (root is depth 0). */
5
11
  export const A2UI_MAX_DEPTH = 32;
6
12
  /** Maximum number of nodes allowed in a single surface. */
@@ -9,18 +15,6 @@ export const A2UI_MAX_NODES = 256;
9
15
  export const A2UI_MAX_SOURCE_LENGTH = 1_048_576;
10
16
  /** Maximum UTF-16 code units accepted in one surface string field. */
11
17
  export const A2UI_MAX_STRING_LENGTH = 65_536;
12
- export class A2uiParseError extends Error {
13
- constructor(message, options) {
14
- super(message, options);
15
- this.name = "A2uiParseError";
16
- }
17
- }
18
- export class A2uiResourceError extends Error {
19
- constructor(message) {
20
- super(message);
21
- this.name = "A2uiResourceError";
22
- }
23
- }
24
18
  /**
25
19
  * Resolves the single explicitly typed A2UI resource link in a successful
26
20
  * tool result, reads it through the host client, and validates its surface.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/mime.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import type { McpReadResourceResult } from "@mcp-native/core";
2
+ export declare const A2UI_MIME_TYPE: "application/a2ui+json";
3
+ export interface A2uiResourceReader {
4
+ readResource(uri: string): Promise<McpReadResourceResult>;
5
+ }
6
+ //# sourceMappingURL=mime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime.d.ts","sourceRoot":"","sources":["../src/mime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,eAAO,MAAM,cAAc,EAAG,uBAAgC,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC3D"}
package/dist/mime.js ADDED
@@ -0,0 +1,2 @@
1
+ export const A2UI_MIME_TYPE = "application/a2ui+json";
2
+ //# sourceMappingURL=mime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime.js","sourceRoot":"","sources":["../src/mime.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Exact A2UI Candidate commit vendored under packages/a2ui/schemas/. */
2
+ export declare const A2UI_MCP_SCHEMA_REVISION: "7541f953050cd58b80f0bf5d85fe2d63192af305";
3
+ //# sourceMappingURL=schema-revision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-revision.d.ts","sourceRoot":"","sources":["../src/schema-revision.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,EAAG,0CAAmD,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Exact A2UI Candidate commit vendored under packages/a2ui/schemas/. */
2
+ export const A2UI_MCP_SCHEMA_REVISION = "7541f953050cd58b80f0bf5d85fe2d63192af305";
3
+ //# sourceMappingURL=schema-revision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-revision.js","sourceRoot":"","sources":["../src/schema-revision.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0CAAmD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { A2uiV1ActionEnvelope, A2uiV1ActionEnvelopeInput } from "./types.js";
2
+ /**
3
+ * Constructs an owned, schema-validated A2UI renderer-to-agent action envelope.
4
+ * Delivery remains the host transport's responsibility.
5
+ */
6
+ export declare function createA2uiV1ActionEnvelope(input: A2uiV1ActionEnvelopeInput): A2uiV1ActionEnvelope;
7
+ //# sourceMappingURL=action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/v1/action.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAYlF;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,yBAAyB,GAAG,oBAAoB,CA2CjG"}
@@ -0,0 +1,86 @@
1
+ import { parseJsonObject } from "@mcp-native/core";
2
+ import { A2uiParseError } from "../errors.js";
3
+ import { formatAjvErrors, getA2uiV1RendererToAgentValidator } from "./schemas.js";
4
+ import { A2UI_V1_PROTOCOL_VERSION } from "./types.js";
5
+ const ACTION_KEYS = [
6
+ "context",
7
+ "metadata",
8
+ "name",
9
+ "sourceComponentId",
10
+ "surfaceId",
11
+ "timestamp",
12
+ "userMessage",
13
+ ];
14
+ /**
15
+ * Constructs an owned, schema-validated A2UI renderer-to-agent action envelope.
16
+ * Delivery remains the host transport's responsibility.
17
+ */
18
+ export function createA2uiV1ActionEnvelope(input) {
19
+ const source = expectPlainObject(input, "A2UI action input");
20
+ rejectUnknownKeys(source, ACTION_KEYS, "A2UI action input");
21
+ const name = expectNonEmptyString(source.name, "action.name");
22
+ const surfaceId = expectNonEmptyString(source.surfaceId, "action.surfaceId");
23
+ const sourceComponentId = expectNonEmptyString(source.sourceComponentId, "action.sourceComponentId");
24
+ const context = parseJsonObject(source.context, "action.context");
25
+ const timestamp = source.timestamp === undefined
26
+ ? new Date().toISOString()
27
+ : expectNonEmptyString(source.timestamp, "action.timestamp");
28
+ const userMessage = optionalString(source.userMessage, "action.userMessage");
29
+ const metadata = source.metadata === undefined ? undefined : parseJsonObject(source.metadata, "action.metadata");
30
+ const action = {
31
+ name,
32
+ surfaceId,
33
+ sourceComponentId,
34
+ timestamp,
35
+ context,
36
+ };
37
+ if (userMessage !== undefined) {
38
+ action.userMessage = userMessage;
39
+ }
40
+ if (metadata !== undefined) {
41
+ action.metadata = metadata;
42
+ }
43
+ const envelope = {
44
+ version: A2UI_V1_PROTOCOL_VERSION,
45
+ action,
46
+ };
47
+ const validate = getA2uiV1RendererToAgentValidator();
48
+ if (!validate(envelope)) {
49
+ throw new A2uiParseError(`A2UI renderer-to-agent action schema validation failed: ${formatAjvErrors(validate)}`);
50
+ }
51
+ return envelope;
52
+ }
53
+ function expectPlainObject(value, path) {
54
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
55
+ throw new A2uiParseError(`Expected an object at ${path}`);
56
+ }
57
+ const prototype = Object.getPrototypeOf(value);
58
+ if (prototype !== Object.prototype && prototype !== null) {
59
+ throw new A2uiParseError(`Expected a plain object at ${path}`);
60
+ }
61
+ return value;
62
+ }
63
+ function rejectUnknownKeys(value, allowed, path) {
64
+ const allowedKeys = new Set(allowed);
65
+ for (const key of Object.keys(value)) {
66
+ if (!allowedKeys.has(key)) {
67
+ throw new A2uiParseError(`Unexpected field ${JSON.stringify(key)} at ${path}`);
68
+ }
69
+ }
70
+ }
71
+ function expectNonEmptyString(value, path) {
72
+ if (typeof value !== "string" || value.length === 0) {
73
+ throw new A2uiParseError(`Expected a non-empty string at ${path}`);
74
+ }
75
+ return value;
76
+ }
77
+ function optionalString(value, path) {
78
+ if (value === undefined) {
79
+ return undefined;
80
+ }
81
+ if (typeof value !== "string") {
82
+ throw new A2uiParseError(`Expected a string at ${path}`);
83
+ }
84
+ return value;
85
+ }
86
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/v1/action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { A2uiV1AgentCapabilities, A2uiV1CapabilityNegotiation, A2uiV1RendererCapabilities, A2uiV1RendererCapabilitiesOptions } from "./types.js";
2
+ /** Parses untrusted agent capability metadata and applies the normative v1 requirements. */
3
+ export declare function parseA2uiV1AgentCapabilities(input: string | unknown): A2uiV1AgentCapabilities;
4
+ /**
5
+ * Parses renderer capability metadata without activating inline catalogs.
6
+ * Catalog IDs are declarations only; callers must advertise only fully implemented host catalogs.
7
+ */
8
+ export declare function parseA2uiV1RendererCapabilities(input: string | unknown): A2uiV1RendererCapabilities;
9
+ /** Constructs closed renderer metadata from host-owned catalog declarations. */
10
+ export declare function createA2uiV1RendererCapabilities(options: A2uiV1RendererCapabilitiesOptions): A2uiV1RendererCapabilities;
11
+ /** Finds exact catalog IDs that both peers explicitly declare. */
12
+ export declare function negotiateA2uiV1Capabilities(agentInput: string | unknown, rendererInput: string | unknown): A2uiV1CapabilityNegotiation;
13
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/v1/capabilities.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,iCAAiC,EAClC,MAAM,YAAY,CAAC;AAIpB,4FAA4F;AAC5F,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,uBAAuB,CAsB7F;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GAAG,OAAO,GACtB,0BAA0B,CAkB5B;AAED,gFAAgF;AAChF,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,iCAAiC,GACzC,0BAA0B,CAS5B;AAED,kEAAkE;AAClE,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,GAAG,OAAO,EAC5B,aAAa,EAAE,MAAM,GAAG,OAAO,GAC9B,2BAA2B,CAoB7B"}