react-native-mcp-kit 1.0.1 → 2.1.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 (170) hide show
  1. package/README.md +220 -720
  2. package/dist/babel/stripPlugin.d.ts.map +1 -1
  3. package/dist/babel/stripPlugin.js +40 -3
  4. package/dist/babel/stripPlugin.js.map +1 -1
  5. package/dist/bin/ios-hid +0 -0
  6. package/dist/client/contexts/McpContext/McpProvider.d.ts +1 -1
  7. package/dist/client/contexts/McpContext/McpProvider.d.ts.map +1 -1
  8. package/dist/client/contexts/McpContext/McpProvider.js +67 -4
  9. package/dist/client/contexts/McpContext/McpProvider.js.map +1 -1
  10. package/dist/client/contexts/McpContext/types.d.ts +11 -1
  11. package/dist/client/contexts/McpContext/types.d.ts.map +1 -1
  12. package/dist/client/core/McpClient.d.ts +8 -0
  13. package/dist/client/core/McpClient.d.ts.map +1 -1
  14. package/dist/client/core/McpClient.js +112 -22
  15. package/dist/client/core/McpClient.js.map +1 -1
  16. package/dist/client/utils/connection.d.ts +7 -0
  17. package/dist/client/utils/connection.d.ts.map +1 -1
  18. package/dist/client/utils/connection.js +14 -1
  19. package/dist/client/utils/connection.js.map +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -2
  23. package/dist/index.js.map +1 -1
  24. package/dist/modules/device/device.d.ts.map +1 -1
  25. package/dist/modules/device/device.js +16 -4
  26. package/dist/modules/device/device.js.map +1 -1
  27. package/dist/modules/fiberTree/fiberTree.d.ts.map +1 -1
  28. package/dist/modules/fiberTree/fiberTree.js +61 -15
  29. package/dist/modules/fiberTree/fiberTree.js.map +1 -1
  30. package/dist/modules/fiberTree/types.d.ts +9 -0
  31. package/dist/modules/fiberTree/types.d.ts.map +1 -1
  32. package/dist/modules/fiberTree/utils.d.ts +2 -1
  33. package/dist/modules/fiberTree/utils.d.ts.map +1 -1
  34. package/dist/modules/fiberTree/utils.js +57 -1
  35. package/dist/modules/fiberTree/utils.js.map +1 -1
  36. package/dist/modules/index.d.ts +0 -1
  37. package/dist/modules/index.d.ts.map +1 -1
  38. package/dist/modules/index.js +1 -3
  39. package/dist/modules/index.js.map +1 -1
  40. package/dist/modules/navigation/navigation.d.ts.map +1 -1
  41. package/dist/modules/navigation/navigation.js +32 -40
  42. package/dist/modules/navigation/navigation.js.map +1 -1
  43. package/dist/modules/navigation/types.d.ts +2 -1
  44. package/dist/modules/navigation/types.d.ts.map +1 -1
  45. package/dist/server/bridge.d.ts +38 -12
  46. package/dist/server/bridge.d.ts.map +1 -1
  47. package/dist/server/bridge.js +158 -56
  48. package/dist/server/bridge.js.map +1 -1
  49. package/dist/server/cli.js +10 -1
  50. package/dist/server/cli.js.map +1 -1
  51. package/dist/server/host/deviceResolver.d.ts +53 -0
  52. package/dist/server/host/deviceResolver.d.ts.map +1 -0
  53. package/dist/server/host/deviceResolver.js +555 -0
  54. package/dist/server/host/deviceResolver.js.map +1 -0
  55. package/dist/server/host/helpers.d.ts +33 -0
  56. package/dist/server/host/helpers.d.ts.map +1 -0
  57. package/dist/server/host/helpers.js +42 -0
  58. package/dist/server/host/helpers.js.map +1 -0
  59. package/dist/server/host/hostModule.d.ts +4 -0
  60. package/dist/server/host/hostModule.d.ts.map +1 -0
  61. package/dist/server/host/hostModule.js +26 -0
  62. package/dist/server/host/hostModule.js.map +1 -0
  63. package/dist/server/host/index.d.ts +4 -0
  64. package/dist/server/host/index.d.ts.map +1 -0
  65. package/dist/server/host/index.js +8 -0
  66. package/dist/server/host/index.js.map +1 -0
  67. package/dist/server/host/iosInput.d.ts +15 -0
  68. package/dist/server/host/iosInput.d.ts.map +1 -0
  69. package/dist/server/host/iosInput.js +93 -0
  70. package/dist/server/host/iosInput.js.map +1 -0
  71. package/dist/server/host/modules/screenshot.d.ts +4 -0
  72. package/dist/server/host/modules/screenshot.d.ts.map +1 -0
  73. package/dist/server/host/modules/screenshot.js +615 -0
  74. package/dist/server/host/modules/screenshot.js.map +1 -0
  75. package/dist/server/host/processRunner.d.ts +19 -0
  76. package/dist/server/host/processRunner.d.ts.map +1 -0
  77. package/dist/server/host/processRunner.js +58 -0
  78. package/dist/server/host/processRunner.js.map +1 -0
  79. package/dist/server/host/tools/capture.d.ts +6 -0
  80. package/dist/server/host/tools/capture.d.ts.map +1 -0
  81. package/dist/server/host/tools/capture.js +148 -0
  82. package/dist/server/host/tools/capture.js.map +1 -0
  83. package/dist/server/host/tools/devices.d.ts +4 -0
  84. package/dist/server/host/tools/devices.d.ts.map +1 -0
  85. package/dist/server/host/tools/devices.js +17 -0
  86. package/dist/server/host/tools/devices.js.map +1 -0
  87. package/dist/server/host/tools/input.d.ts +7 -0
  88. package/dist/server/host/tools/input.d.ts.map +1 -0
  89. package/dist/server/host/tools/input.js +286 -0
  90. package/dist/server/host/tools/input.js.map +1 -0
  91. package/dist/server/host/tools/lifecycle.d.ts +6 -0
  92. package/dist/server/host/tools/lifecycle.d.ts.map +1 -0
  93. package/dist/server/host/tools/lifecycle.js +271 -0
  94. package/dist/server/host/tools/lifecycle.js.map +1 -0
  95. package/dist/server/host/types.d.ts +17 -0
  96. package/dist/server/host/types.d.ts.map +1 -0
  97. package/dist/{modules/components → server/host}/types.js.map +1 -1
  98. package/dist/server/host/wda.d.ts +15 -0
  99. package/dist/server/host/wda.d.ts.map +1 -0
  100. package/dist/server/host/wda.js +100 -0
  101. package/dist/server/host/wda.js.map +1 -0
  102. package/dist/server/index.d.ts.map +1 -1
  103. package/dist/server/index.js +10 -17
  104. package/dist/server/index.js.map +1 -1
  105. package/dist/server/mcpServer.d.ts +5 -10
  106. package/dist/server/mcpServer.d.ts.map +1 -1
  107. package/dist/server/mcpServer.js +438 -153
  108. package/dist/server/mcpServer.js.map +1 -1
  109. package/dist/server/types.d.ts +2 -8
  110. package/dist/server/types.d.ts.map +1 -1
  111. package/dist/shared/protocol.d.ts +39 -1
  112. package/dist/shared/protocol.d.ts.map +1 -1
  113. package/dist/shared/protocol.js +12 -1
  114. package/dist/shared/protocol.js.map +1 -1
  115. package/package.json +6 -12
  116. package/dist/client/contexts/McpTreeContext/McpTracker.d.ts +0 -10
  117. package/dist/client/contexts/McpTreeContext/McpTracker.d.ts.map +0 -1
  118. package/dist/client/contexts/McpTreeContext/McpTracker.js +0 -101
  119. package/dist/client/contexts/McpTreeContext/McpTracker.js.map +0 -1
  120. package/dist/client/contexts/McpTreeContext/McpTreeContext.d.ts +0 -2
  121. package/dist/client/contexts/McpTreeContext/McpTreeContext.d.ts.map +0 -1
  122. package/dist/client/contexts/McpTreeContext/McpTreeContext.js +0 -6
  123. package/dist/client/contexts/McpTreeContext/McpTreeContext.js.map +0 -1
  124. package/dist/client/contexts/McpTreeContext/McpTreeRegistry.d.ts +0 -16
  125. package/dist/client/contexts/McpTreeContext/McpTreeRegistry.d.ts.map +0 -1
  126. package/dist/client/contexts/McpTreeContext/McpTreeRegistry.js +0 -96
  127. package/dist/client/contexts/McpTreeContext/McpTreeRegistry.js.map +0 -1
  128. package/dist/client/contexts/McpTreeContext/index.d.ts +0 -5
  129. package/dist/client/contexts/McpTreeContext/index.d.ts.map +0 -1
  130. package/dist/client/contexts/McpTreeContext/index.js +0 -10
  131. package/dist/client/contexts/McpTreeContext/index.js.map +0 -1
  132. package/dist/client/contexts/McpTreeContext/types.d.ts +0 -14
  133. package/dist/client/contexts/McpTreeContext/types.d.ts.map +0 -1
  134. package/dist/client/contexts/McpTreeContext/types.js.map +0 -1
  135. package/dist/modules/components/components.d.ts +0 -8
  136. package/dist/modules/components/components.d.ts.map +0 -1
  137. package/dist/modules/components/components.js +0 -315
  138. package/dist/modules/components/components.js.map +0 -1
  139. package/dist/modules/components/index.d.ts +0 -3
  140. package/dist/modules/components/index.d.ts.map +0 -1
  141. package/dist/modules/components/index.js +0 -6
  142. package/dist/modules/components/index.js.map +0 -1
  143. package/dist/modules/components/types.d.ts +0 -18
  144. package/dist/modules/components/types.d.ts.map +0 -1
  145. package/dist/modules/components/types.js +0 -3
  146. package/dist/modules/components/utils.d.ts +0 -18
  147. package/dist/modules/components/utils.d.ts.map +0 -1
  148. package/dist/modules/components/utils.js +0 -386
  149. package/dist/modules/components/utils.js.map +0 -1
  150. package/dist/modules/screenshot/index.d.ts +0 -3
  151. package/dist/modules/screenshot/index.d.ts.map +0 -1
  152. package/dist/modules/screenshot/index.js +0 -6
  153. package/dist/modules/screenshot/index.js.map +0 -1
  154. package/dist/modules/screenshot/screenshot.d.ts +0 -4
  155. package/dist/modules/screenshot/screenshot.d.ts.map +0 -1
  156. package/dist/modules/screenshot/screenshot.js +0 -89
  157. package/dist/modules/screenshot/screenshot.js.map +0 -1
  158. package/dist/modules/screenshot/types.d.ts +0 -5
  159. package/dist/modules/screenshot/types.d.ts.map +0 -1
  160. package/dist/modules/screenshot/types.js +0 -3
  161. package/dist/modules/screenshot/types.js.map +0 -1
  162. package/dist/modules/tree/index.d.ts +0 -2
  163. package/dist/modules/tree/index.d.ts.map +0 -1
  164. package/dist/modules/tree/index.js +0 -6
  165. package/dist/modules/tree/index.js.map +0 -1
  166. package/dist/modules/tree/tree.d.ts +0 -3
  167. package/dist/modules/tree/tree.d.ts.map +0 -1
  168. package/dist/modules/tree/tree.js +0 -274
  169. package/dist/modules/tree/tree.js.map +0 -1
  170. /package/dist/{client/contexts/McpTreeContext → server/host}/types.js +0 -0
@@ -1,274 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.treeModule = void 0;
4
- const McpTreeContext_1 = require("../../client/contexts/McpTreeContext");
5
- const serializeNode = (node, depth, maxDepth) => {
6
- const serialized = {
7
- id: node.id,
8
- name: node.name,
9
- };
10
- if (node.text) {
11
- serialized.text = node.text;
12
- }
13
- // Serialize props (functions as [Function: name], objects with depth limit)
14
- const serializedProps = {};
15
- for (const [key, value] of Object.entries(node.props)) {
16
- if (typeof value === 'function') {
17
- serializedProps[key] = `[Function: ${value.name || 'anonymous'}]`;
18
- }
19
- else if (typeof value === 'object' && value !== null) {
20
- try {
21
- serializedProps[key] = JSON.parse(JSON.stringify(value));
22
- }
23
- catch {
24
- serializedProps[key] = '[Object]';
25
- }
26
- }
27
- else {
28
- serializedProps[key] = value;
29
- }
30
- }
31
- if (Object.keys(serializedProps).length > 0) {
32
- serialized.props = serializedProps;
33
- }
34
- if (depth < maxDepth) {
35
- const children = McpTreeContext_1.McpTreeRegistry.getChildren(node.id);
36
- if (children.length > 0) {
37
- serialized.children = children.map((child) => {
38
- return serializeNode(child, depth + 1, maxDepth);
39
- });
40
- }
41
- }
42
- return serialized;
43
- };
44
- const findNode = (args) => {
45
- const { id, name, text } = args;
46
- if (id) {
47
- return McpTreeContext_1.McpTreeRegistry.findById(id);
48
- }
49
- if (name) {
50
- const nodes = McpTreeContext_1.McpTreeRegistry.findByName(name);
51
- const index = args.index ?? 0;
52
- return nodes[index];
53
- }
54
- if (text) {
55
- const nodes = McpTreeContext_1.McpTreeRegistry.findByText(text);
56
- return nodes[0];
57
- }
58
- return undefined;
59
- };
60
- const treeModule = () => {
61
- return {
62
- name: 'tree',
63
- tools: {
64
- call_ref: {
65
- description: 'Call a method on the native ref of a component',
66
- handler: (args) => {
67
- const node = findNode(args);
68
- if (!node) {
69
- return { error: 'Component not found' };
70
- }
71
- if (!node.ref?.current) {
72
- return { error: 'No ref available for this component' };
73
- }
74
- const method = args.method;
75
- const methodArgs = args.args ?? [];
76
- const instance = node.ref.current;
77
- if (typeof instance[method] !== 'function') {
78
- return { error: `Method "${method}" not found on ref` };
79
- }
80
- const result = instance[method](...methodArgs);
81
- return { method, result, success: true };
82
- },
83
- inputSchema: {
84
- args: { description: 'Arguments to pass to the method', type: 'array' },
85
- id: { description: 'Node ID', type: 'string' },
86
- method: { description: 'Method name to call', type: 'string' },
87
- name: { description: 'Component name', type: 'string' },
88
- },
89
- },
90
- find_all: {
91
- description: 'Find all components matching a query',
92
- handler: (args) => {
93
- let results = [];
94
- if (args.name) {
95
- results = McpTreeContext_1.McpTreeRegistry.findByName(args.name);
96
- }
97
- else if (args.text) {
98
- results = McpTreeContext_1.McpTreeRegistry.findByText(args.text);
99
- }
100
- else {
101
- // Return all nodes
102
- results = McpTreeContext_1.McpTreeRegistry.getRoots();
103
- }
104
- if (args.hasProps) {
105
- const requiredProps = args.hasProps;
106
- results = results.filter((node) => {
107
- return requiredProps.every((prop) => {
108
- return prop in node.props;
109
- });
110
- });
111
- }
112
- return results.map((node) => {
113
- return {
114
- id: node.id,
115
- name: node.name,
116
- props: Object.keys(node.props),
117
- text: node.text,
118
- };
119
- });
120
- },
121
- inputSchema: {
122
- hasProps: {
123
- description: 'Filter by prop names',
124
- items: { type: 'string' },
125
- type: 'array',
126
- },
127
- name: { description: 'Component name', type: 'string' },
128
- text: { description: 'Text content', type: 'string' },
129
- },
130
- },
131
- get_children: {
132
- description: 'Get children of a component',
133
- handler: (args) => {
134
- const node = findNode(args);
135
- if (!node) {
136
- return { error: 'Component not found' };
137
- }
138
- const depth = args.depth ?? 3;
139
- const children = McpTreeContext_1.McpTreeRegistry.getChildren(node.id);
140
- return children.map((child) => {
141
- return serializeNode(child, 0, depth);
142
- });
143
- },
144
- inputSchema: {
145
- depth: { description: 'Max depth (default: 3)', type: 'number' },
146
- id: { description: 'Node ID', type: 'string' },
147
- name: { description: 'Component name', type: 'string' },
148
- },
149
- },
150
- get_node: {
151
- description: 'Find a component by id, name, or text',
152
- handler: (args) => {
153
- const node = findNode(args);
154
- if (!node) {
155
- return { error: 'Component not found' };
156
- }
157
- const depth = args.depth ?? 3;
158
- return serializeNode(node, 0, depth);
159
- },
160
- inputSchema: {
161
- depth: { description: 'Max depth (default: 3)', type: 'number' },
162
- id: { description: 'Node ID', type: 'string' },
163
- index: { description: 'Index for multiple matches (0-based)', type: 'number' },
164
- name: { description: 'Component name', type: 'string' },
165
- text: { description: 'Text content to search', type: 'string' },
166
- },
167
- },
168
- get_props: {
169
- description: 'Get live props of a component',
170
- handler: (args) => {
171
- const node = findNode(args);
172
- if (!node) {
173
- return { error: 'Component not found' };
174
- }
175
- const serializedProps = {};
176
- for (const [key, value] of Object.entries(node.props)) {
177
- if (typeof value === 'function') {
178
- serializedProps[key] = `[Function: ${value.name || 'anonymous'}]`;
179
- }
180
- else if (typeof value === 'object' && value !== null) {
181
- try {
182
- serializedProps[key] = JSON.parse(JSON.stringify(value));
183
- }
184
- catch {
185
- serializedProps[key] = '[Object]';
186
- }
187
- }
188
- else {
189
- serializedProps[key] = value;
190
- }
191
- }
192
- return { id: node.id, name: node.name, props: serializedProps };
193
- },
194
- inputSchema: {
195
- id: { description: 'Node ID', type: 'string' },
196
- name: { description: 'Component name', type: 'string' },
197
- },
198
- },
199
- get_ref_methods: {
200
- description: 'List available methods on native ref',
201
- handler: (args) => {
202
- const node = findNode(args);
203
- if (!node) {
204
- return { error: 'Component not found' };
205
- }
206
- if (!node.ref?.current) {
207
- return { error: 'No ref available for this component' };
208
- }
209
- const methods = [];
210
- let proto = Object.getPrototypeOf(node.ref.current);
211
- while (proto && proto !== Object.prototype) {
212
- for (const key of Object.getOwnPropertyNames(proto)) {
213
- if (key !== 'constructor' &&
214
- typeof proto[key] === 'function') {
215
- methods.push(key);
216
- }
217
- }
218
- proto = Object.getPrototypeOf(proto);
219
- }
220
- return { component: node.name, id: node.id, methods: [...new Set(methods)].sort() };
221
- },
222
- inputSchema: {
223
- id: { description: 'Node ID', type: 'string' },
224
- name: { description: 'Component name', type: 'string' },
225
- },
226
- },
227
- get_tree: {
228
- description: 'Get the full virtual component tree',
229
- handler: (args) => {
230
- const depth = args.depth ?? 10;
231
- const roots = McpTreeContext_1.McpTreeRegistry.getRoots();
232
- return roots.map((root) => {
233
- return serializeNode(root, 0, depth);
234
- });
235
- },
236
- inputSchema: {
237
- depth: { description: 'Max depth (default: 10)', type: 'number' },
238
- },
239
- },
240
- invoke: {
241
- description: 'Call a callback prop on a component (e.g. onPress, onChangeText)',
242
- handler: (args) => {
243
- const node = findNode(args);
244
- if (!node) {
245
- return { error: 'Component not found' };
246
- }
247
- const callback = args.callback;
248
- const callbackArgs = args.args ?? [];
249
- if (typeof node.props[callback] !== 'function') {
250
- const available = Object.keys(node.props).filter((key) => {
251
- return typeof node.props[key] === 'function';
252
- });
253
- return {
254
- available,
255
- error: `Callback "${callback}" not found or not a function`,
256
- };
257
- }
258
- const result = node.props[callback](...callbackArgs);
259
- return { callback, component: node.name, result, success: true };
260
- },
261
- inputSchema: {
262
- args: { description: 'Arguments to pass to the callback', type: 'array' },
263
- callback: { description: 'Callback prop name (e.g. "onPress")', type: 'string' },
264
- id: { description: 'Node ID', type: 'string' },
265
- index: { description: 'Index for multiple matches (0-based)', type: 'number' },
266
- name: { description: 'Component name', type: 'string' },
267
- text: { description: 'Text content to search', type: 'string' },
268
- },
269
- },
270
- },
271
- };
272
- };
273
- exports.treeModule = treeModule;
274
- //# sourceMappingURL=tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../src/modules/tree/tree.ts"],"names":[],"mappings":"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"}