@mcp-native/react-native 0.6.0 → 0.8.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.
@@ -1,4 +1,67 @@
1
+ import { getA2uiV1HostExtensionManifestFingerprint, parseA2uiV1HostExtensionManifest, } from "@mcp-native/a2ui";
1
2
  import { createElement } from "react";
3
+ export const A2UI_V1_NATIVE_ICON_NAMES = Object.freeze([
4
+ "accountCircle",
5
+ "add",
6
+ "arrowBack",
7
+ "arrowForward",
8
+ "attachFile",
9
+ "calendarToday",
10
+ "call",
11
+ "camera",
12
+ "check",
13
+ "close",
14
+ "delete",
15
+ "download",
16
+ "edit",
17
+ "event",
18
+ "error",
19
+ "fastForward",
20
+ "favorite",
21
+ "favoriteOff",
22
+ "folder",
23
+ "help",
24
+ "home",
25
+ "info",
26
+ "locationOn",
27
+ "lock",
28
+ "lockOpen",
29
+ "mail",
30
+ "menu",
31
+ "moreVert",
32
+ "moreHoriz",
33
+ "notificationsOff",
34
+ "notifications",
35
+ "pause",
36
+ "payment",
37
+ "person",
38
+ "phone",
39
+ "photo",
40
+ "play",
41
+ "print",
42
+ "refresh",
43
+ "rewind",
44
+ "search",
45
+ "send",
46
+ "settings",
47
+ "share",
48
+ "shoppingCart",
49
+ "skipNext",
50
+ "skipPrevious",
51
+ "star",
52
+ "starHalf",
53
+ "starOff",
54
+ "stop",
55
+ "upload",
56
+ "visibility",
57
+ "visibilityOff",
58
+ "volumeDown",
59
+ "volumeMute",
60
+ "volumeOff",
61
+ "volumeUp",
62
+ "warning",
63
+ ]);
64
+ const nativeHostExtensionRegistrationStates = new WeakMap();
2
65
  function createComponentAdapter(primitiveName, component, mapProps) {
3
66
  function NativeComponentAdapter(props) {
4
67
  return createElement(component, mapProps(props));
@@ -23,4 +86,84 @@ export function createNativeButtonAdapter(component, mapProps) {
23
86
  export function createNativeTextInputAdapter(component, mapProps) {
24
87
  return createComponentAdapter("TextInput", component, mapProps);
25
88
  }
89
+ /** Adapts trusted MCP Native image props to a host image component. */
90
+ export function createNativeImageAdapter(component, mapProps) {
91
+ return createComponentAdapter("Image", component, mapProps);
92
+ }
93
+ /** Adapts a complete, policy-bearing video source to one local media component. */
94
+ export function createNativeVideoAdapter(component, mapProps) {
95
+ return createComponentAdapter("Video", component, mapProps);
96
+ }
97
+ /** Adapts a complete, policy-bearing audio source to one local media component. */
98
+ export function createNativeAudioPlayerAdapter(component, mapProps) {
99
+ return createComponentAdapter("AudioPlayer", component, mapProps);
100
+ }
101
+ /**
102
+ * Registers one locally imported semantic native component. The mapper receives only validated
103
+ * semantic props, a closed capability grant, accessibility fields, and a validated event seam.
104
+ */
105
+ export function createNativeHostExtensionRegistration(manifestInput, component, mapProps) {
106
+ const runtimeComponent = component;
107
+ if (typeof runtimeComponent !== "function" &&
108
+ (runtimeComponent === null || typeof runtimeComponent !== "object")) {
109
+ throw new TypeError("Expected a locally imported host-extension component");
110
+ }
111
+ if (typeof mapProps !== "function") {
112
+ throw new TypeError("Expected a host-extension prop mapper");
113
+ }
114
+ const manifest = parseA2uiV1HostExtensionManifest(manifestInput);
115
+ const registration = Object.freeze({
116
+ manifest,
117
+ manifestFingerprint: getA2uiV1HostExtensionManifestFingerprint(manifest),
118
+ });
119
+ nativeHostExtensionRegistrationStates.set(registration, {
120
+ render: (props, key) => createElement(component, { ...mapProps(props), key }),
121
+ });
122
+ return registration;
123
+ }
124
+ export function isNativeHostExtensionRegistration(value) {
125
+ return (value !== null &&
126
+ typeof value === "object" &&
127
+ nativeHostExtensionRegistrationStates.has(value));
128
+ }
129
+ /** Internal renderer seam for an opaque, helper-created local registration. */
130
+ export function renderNativeHostExtensionRegistration(registration, props, key) {
131
+ const state = nativeHostExtensionRegistrationStates.get(registration);
132
+ if (state === undefined) {
133
+ throw new TypeError("Expected an opaque host-extension registration created by this package");
134
+ }
135
+ return state.render(props, key);
136
+ }
137
+ /** Adapts a pinned semantic icon name to a host icon component. */
138
+ export function createNativeIconAdapter(component, mapProps) {
139
+ return createComponentAdapter("Icon", component, mapProps);
140
+ }
141
+ /** Adapts a trusted divider axis to a host divider component. */
142
+ export function createNativeDividerAdapter(component, mapProps) {
143
+ return createComponentAdapter("Divider", component, mapProps);
144
+ }
145
+ /** Adapts trusted checkbox props to a host checkbox component. */
146
+ export function createNativeCheckBoxAdapter(component, mapProps) {
147
+ return createComponentAdapter("CheckBox", component, mapProps);
148
+ }
149
+ /** Adapts trusted choice-picker props to a host selection component. */
150
+ export function createNativeChoicePickerAdapter(component, mapProps) {
151
+ return createComponentAdapter("ChoicePicker", component, mapProps);
152
+ }
153
+ /** Adapts trusted bounded slider props to a host slider component. */
154
+ export function createNativeSliderAdapter(component, mapProps) {
155
+ return createComponentAdapter("Slider", component, mapProps);
156
+ }
157
+ /** Adapts trusted ISO date/time props to a host date/time component. */
158
+ export function createNativeDateTimeInputAdapter(component, mapProps) {
159
+ return createComponentAdapter("DateTimeInput", component, mapProps);
160
+ }
161
+ /** Adapts trusted tab titles and rendered content to a host tabs component. */
162
+ export function createNativeTabsAdapter(component, mapProps) {
163
+ return createComponentAdapter("Tabs", component, mapProps);
164
+ }
165
+ /** Adapts trusted modal state and rendered regions to a host modal component. */
166
+ export function createNativeModalAdapter(component, mapProps) {
167
+ return createComponentAdapter("Modal", component, mapProps);
168
+ }
26
169
  //# sourceMappingURL=component-adapters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-adapters.js","sourceRoot":"","sources":["../src/component-adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAsC,MAAM,OAAO,CAAC;AAuG1E,SAAS,sBAAsB,CAC7B,aAAuD,EACvD,SAAmC,EACnC,QAA4D;IAE5D,SAAS,sBAAsB,CAAC,KAAmB;QACjD,OAAO,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,aAAa,GAAG,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,IAAI,WAAW,CAAC;IAC7E,sBAAsB,CAAC,WAAW,GAAG,YAAY,aAAa,WAAW,aAAa,GAAG,CAAC;IAC1F,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CACrC,SAAmC,EACnC,QAAwE;IAExE,OAAO,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CACrC,SAAmC,EACnC,QAAwE;IAExE,OAAO,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,yBAAyB,CACvC,SAAmC,EACnC,QAA0E;IAE1E,OAAO,sBAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,4BAA4B,CAC1C,SAAmC,EACnC,QAA6E;IAE7E,OAAO,sBAAsB,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"component-adapters.js","sourceRoot":"","sources":["../src/component-adapters.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,25 @@
1
- import type { A2uiSurface, A2uiV1ActionEnvelope, A2uiV1SurfaceState, A2uiV1SurfaceValidationPolicy } from "@mcp-native/a2ui";
1
+ import type { A2uiSurface, A2uiV1ActionEnvelope, A2uiV1HostExtensionRegistry, A2uiV1SurfaceState, A2uiV1SurfaceValidationPolicy } from "@mcp-native/a2ui";
2
2
  import type { JsonObject, McpNativeAction, McpToolCallResult } from "@mcp-native/core";
3
3
  import { type ReactElement } from "react";
4
4
  import type { NativeComponentCatalog } from "./component-adapters.js";
5
- import { type A2uiV1NativeOpenUrlDescriptor } from "./v1.js";
6
- export { createNativeButtonAdapter, createNativeTextAdapter, createNativeTextInputAdapter, createNativeViewAdapter, } from "./component-adapters.js";
5
+ import { type A2uiV1NativeImagePolicy, type A2uiV1NativeHostExtensionPolicy, type A2uiV1NativeMediaPolicy, type A2uiV1NativeOpenUrlDescriptor } from "./v1.js";
6
+ export { A2UI_V1_NATIVE_ICON_NAMES, createNativeButtonAdapter, createNativeAudioPlayerAdapter, createNativeCheckBoxAdapter, createNativeChoicePickerAdapter, createNativeDateTimeInputAdapter, createNativeDividerAdapter, createNativeIconAdapter, createNativeImageAdapter, createNativeHostExtensionRegistration, createNativeModalAdapter, createNativeSliderAdapter, createNativeTabsAdapter, createNativeTextAdapter, createNativeTextInputAdapter, createNativeViewAdapter, createNativeVideoAdapter, } from "./component-adapters.js";
7
7
  export type { NativeComponentPropMapper } from "./component-adapters.js";
8
- export type { NativeAccessibilityProps, NativeAccessibilityRole, NativeAccessibilityState, NativeButtonComponentProps, NativeButtonVariant, NativeComponentCatalog, NativeComponentVariants, NativeTextComponentProps, NativeTextInputComponentProps, NativeTextInputVariant, NativeTextVariant, NativeViewComponentProps, NativeViewStyle, NativeViewVariant, } from "./component-adapters.js";
9
- export type NativeComponentName = "Button" | "Text" | "TextInput" | "View";
8
+ export type { NativeAccessibilityProps, NativeAccessibilityRole, NativeAccessibilityState, NativeAudioPlayerComponentProps, NativeButtonComponentProps, NativeButtonVariant, NativeCheckBoxComponentProps, NativeChoicePickerComponentProps, NativeChoicePickerDisplayStyle, NativeChoicePickerOption, NativeChoicePickerVariant, NativeComponentCatalog, NativeComponentVariants, NativeDateTimeInputComponentProps, NativeDividerComponentProps, NativeIconComponentProps, NativeIconName, NativeImageComponentProps, NativeImageFit, NativeImageResourcePolicy, NativeImageVariant, NativeHostExtensionCapabilityGrant, NativeHostExtensionComponentProps, NativeHostExtensionEventOptions, NativeHostExtensionRegistration, NativeMediaResourcePolicy, NativeModalComponentProps, NativeSliderComponentProps, NativeTabItem, NativeTabsComponentProps, NativeTextComponentProps, NativeTextInputComponentProps, NativeTextInputVariant, NativeTextVariant, NativeViewComponentProps, NativeViewStyle, NativeViewVariant, NativeVideoComponentProps, } from "./component-adapters.js";
9
+ export type NativeComponentName = "AudioPlayer" | "Button" | "CheckBox" | "ChoicePicker" | "DateTimeInput" | "Divider" | "Icon" | "Image" | "HostExtension" | "Modal" | "Slider" | "Tabs" | "Text" | "TextInput" | "Video" | "View";
10
+ export interface A2uiV1NativeCatalogCapabilities {
11
+ /** Required before Image can be advertised as an installed capability. */
12
+ readonly imagePolicy?: A2uiV1NativeImagePolicy;
13
+ /** Required before Video or AudioPlayer can be advertised as installed capabilities. */
14
+ readonly mediaPolicy?: A2uiV1NativeMediaPolicy;
15
+ }
16
+ /** Returns the exact A2UI subset backed by one locally installed and policy-ready host catalog. */
17
+ export declare function getA2uiV1NativeSupportedComponentNames(components: NativeComponentCatalog, capabilities?: A2uiV1NativeCatalogCapabilities): readonly string[];
18
+ /**
19
+ * Returns only extension catalogs backed by an exact helper-created local registration and a host
20
+ * capability policy. These IDs can be combined with the basic catalog in renderer capabilities.
21
+ */
22
+ export declare function getA2uiV1NativeSupportedHostExtensionCatalogIds(components: NativeComponentCatalog, registry: A2uiV1HostExtensionRegistry, hostExtensionPolicy: A2uiV1NativeHostExtensionPolicy | undefined): readonly string[];
10
23
  /**
11
24
  * A serializable render plan. A React Native host maps these trusted component
12
25
  * names to locally bundled components; the MCP server never supplies code.
@@ -33,6 +46,17 @@ export type A2uiV1NativeActionHandler = (envelope: A2uiV1ActionEnvelope, dataMod
33
46
  export type A2uiV1NativeOpenUrlPolicy = (request: A2uiV1NativeOpenUrlDescriptor) => boolean;
34
47
  /** Host-owned platform opener. The library never invokes a browser or URL handler directly. */
35
48
  export type A2uiV1NativeOpenUrlHandler = (request: A2uiV1NativeOpenUrlDescriptor) => void;
49
+ export interface A2uiV1NativeHostExtensionEventDescriptor {
50
+ readonly extensionId: string;
51
+ readonly catalogId: string;
52
+ readonly schemaVersion: string;
53
+ readonly componentName: string;
54
+ readonly surfaceId: string;
55
+ readonly sourceComponentId: string;
56
+ readonly name: string;
57
+ readonly payload: JsonObject;
58
+ readonly userActivated: boolean;
59
+ }
36
60
  export interface A2uiV1NativeSurfaceProps {
37
61
  readonly surface: A2uiV1SurfaceState;
38
62
  readonly policy: A2uiV1SurfaceValidationPolicy;
@@ -43,6 +67,14 @@ export interface A2uiV1NativeSurfaceProps {
43
67
  readonly openUrlPolicy?: A2uiV1NativeOpenUrlPolicy;
44
68
  /** Executes an authorized URL while the originating Button press is still active. */
45
69
  readonly onOpenUrl?: A2uiV1NativeOpenUrlHandler;
70
+ /** Required when the reachable surface contains an Image component. */
71
+ readonly imagePolicy?: A2uiV1NativeImagePolicy;
72
+ /** Required when the reachable surface contains Video or AudioPlayer. */
73
+ readonly mediaPolicy?: A2uiV1NativeMediaPolicy;
74
+ /** Required when the reachable surface contains a negotiated host extension. */
75
+ readonly hostExtensionPolicy?: A2uiV1NativeHostExtensionPolicy;
76
+ /** Receives only manifest-declared, schema-valid events from a local extension component. */
77
+ readonly onHostExtensionEvent?: (event: A2uiV1NativeHostExtensionEventDescriptor) => void;
46
78
  /** Observes renderer-local state changes without turning keystrokes into network calls. */
47
79
  readonly onDataModelChange?: (dataModel: JsonObject) => void;
48
80
  readonly actionMetadata?: JsonObject;
@@ -74,7 +106,7 @@ export declare function McpNativeSurface({ surface, components, onAction, onBind
74
106
  * Mounts the supported A2UI v1 subset with renderer-local two-way bindings.
75
107
  * Agent events are resolved against the latest local model at press time.
76
108
  */
77
- export declare function A2uiV1NativeSurface({ surface, policy, components, onAction, openUrlPolicy, onOpenUrl, onDataModelChange, actionMetadata, locale, now, }: A2uiV1NativeSurfaceProps): ReactElement;
78
- export { A2UI_V1_NATIVE_COMPONENT_NAMES, A2UI_V1_NATIVE_MAX_OPEN_URL_LENGTH, A2UI_V1_NATIVE_MAX_RENDER_NODES, createA2uiV1NativeRenderPlan, resolveA2uiV1NativeEvent, resolveA2uiV1NativeOpenUrl, } from "./v1.js";
79
- export type { A2uiV1NativeEventDescriptor, A2uiV1NativeEventResolutionOptions, A2uiV1NativeOpenUrlDescriptor, A2uiV1NativeOpenUrlResolutionOptions, A2uiV1NativeRenderPlanOptions, } from "./v1.js";
109
+ export declare function A2uiV1NativeSurface({ surface, policy, components, onAction, openUrlPolicy, onOpenUrl, imagePolicy, mediaPolicy, hostExtensionPolicy, onHostExtensionEvent, onDataModelChange, actionMetadata, locale, now, }: A2uiV1NativeSurfaceProps): ReactElement;
110
+ export { A2UI_V1_NATIVE_COMPONENT_NAMES, A2UI_V1_NATIVE_MAX_CHOICE_OPTIONS, A2UI_V1_NATIVE_MAX_IMAGE_BYTES, A2UI_V1_NATIVE_MAX_IMAGE_DIMENSION, A2UI_V1_NATIVE_MAX_IMAGE_PIXELS, A2UI_V1_NATIVE_MAX_IMAGE_REDIRECT_ORIGINS, A2UI_V1_NATIVE_MAX_IMAGE_REDIRECTS, A2UI_V1_NATIVE_MAX_IMAGE_URL_LENGTH, A2UI_V1_NATIVE_MAX_IMAGES, A2UI_V1_NATIVE_MAX_MEDIA, A2UI_V1_NATIVE_MAX_MEDIA_BYTES, A2UI_V1_NATIVE_MAX_MEDIA_MIME_TYPES, A2UI_V1_NATIVE_MAX_MEDIA_REDIRECT_ORIGINS, A2UI_V1_NATIVE_MAX_MEDIA_REDIRECTS, A2UI_V1_NATIVE_MAX_MEDIA_URL_LENGTH, A2UI_V1_NATIVE_MAX_OPEN_URL_LENGTH, A2UI_V1_NATIVE_MAX_RENDER_NODES, A2UI_V1_NATIVE_MAX_TOTAL_IMAGE_BYTES, A2UI_V1_NATIVE_MAX_TOTAL_IMAGE_PIXELS, A2UI_V1_NATIVE_MAX_TOTAL_MEDIA_BYTES, createA2uiV1NativeRenderPlan, resolveA2uiV1NativeEvent, resolveA2uiV1NativeOpenUrl, } from "./v1.js";
111
+ export type { A2uiV1NativeEventDescriptor, A2uiV1NativeEventResolutionOptions, A2uiV1NativeImagePolicy, A2uiV1NativeImageGrant, A2uiV1NativeImageRequest, A2uiV1NativeHostExtensionPolicy, A2uiV1NativeHostExtensionRequest, A2uiV1NativeMediaGrant, A2uiV1NativeMediaKind, A2uiV1NativeMediaPolicy, A2uiV1NativeMediaRequest, A2uiV1NativeOpenUrlDescriptor, A2uiV1NativeOpenUrlResolutionOptions, A2uiV1NativeRenderPlanOptions, } from "./v1.js";
80
112
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}