react-native-mcp-kit 2.3.1 → 3.0.1
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.
- package/README.md +12 -7
- package/dist/babel/stripPlugin.d.ts.map +1 -1
- package/dist/babel/stripPlugin.js +18 -3
- package/dist/babel/stripPlugin.js.map +1 -1
- package/dist/babel/testIdPlugin.d.ts.map +1 -1
- package/dist/babel/testIdPlugin.js +466 -7
- package/dist/babel/testIdPlugin.js.map +1 -1
- package/dist/bin/ios-hid +0 -0
- package/dist/client/contexts/McpContext/McpProvider.d.ts.map +1 -1
- package/dist/client/contexts/McpContext/McpProvider.js +0 -6
- package/dist/client/contexts/McpContext/McpProvider.js.map +1 -1
- package/dist/client/contexts/McpContext/types.d.ts +0 -2
- package/dist/client/contexts/McpContext/types.d.ts.map +1 -1
- package/dist/client/core/McpClient.d.ts +0 -2
- package/dist/client/core/McpClient.d.ts.map +1 -1
- package/dist/client/core/McpClient.js +1 -17
- package/dist/client/core/McpClient.js.map +1 -1
- package/dist/client/index.d.ts +0 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -3
- package/dist/client/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/fiberTree/fiberTree.d.ts +17 -0
- package/dist/modules/fiberTree/fiberTree.d.ts.map +1 -1
- package/dist/modules/fiberTree/fiberTree.js +554 -2
- package/dist/modules/fiberTree/fiberTree.js.map +1 -1
- package/dist/modules/fiberTree/utils.d.ts +1 -0
- package/dist/modules/fiberTree/utils.d.ts.map +1 -1
- package/dist/modules/fiberTree/utils.js +7 -6
- package/dist/modules/fiberTree/utils.js.map +1 -1
- package/dist/server/bridge.d.ts +0 -1
- package/dist/server/bridge.d.ts.map +1 -1
- package/dist/server/bridge.js +0 -15
- package/dist/server/bridge.js.map +1 -1
- package/dist/server/canonicalize.d.ts +8 -0
- package/dist/server/canonicalize.d.ts.map +1 -0
- package/dist/server/canonicalize.js +23 -0
- package/dist/server/canonicalize.js.map +1 -0
- package/dist/server/host/tools/connectionStatus.d.ts +9 -0
- package/dist/server/host/tools/connectionStatus.d.ts.map +1 -0
- package/dist/server/host/tools/connectionStatus.js +39 -0
- package/dist/server/host/tools/connectionStatus.js.map +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +35 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/inputSchemaToZod.d.ts +19 -0
- package/dist/server/inputSchemaToZod.d.ts.map +1 -0
- package/dist/server/inputSchemaToZod.js +89 -0
- package/dist/server/inputSchemaToZod.js.map +1 -0
- package/dist/server/mcpServer.d.ts.map +1 -1
- package/dist/server/mcpServer.js +3 -86
- package/dist/server/mcpServer.js.map +1 -1
- package/dist/shared/protocol.d.ts +9 -10
- package/dist/shared/protocol.d.ts.map +1 -1
- package/dist/shared/protocol.js +9 -1
- package/dist/shared/protocol.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,17 +10,370 @@ const DEFAULT_EXCLUDE = [
|
|
|
10
10
|
'StrictMode',
|
|
11
11
|
'Suspense',
|
|
12
12
|
];
|
|
13
|
+
// Map of built-in React hook names → agent-friendly `kind` labels. Anything
|
|
14
|
+
// matching `/^use[A-Z]/` that is NOT in this table is treated as "Custom".
|
|
15
|
+
const HOOK_KIND = {
|
|
16
|
+
useCallback: 'Callback',
|
|
17
|
+
useContext: 'Context',
|
|
18
|
+
useDebugValue: 'DebugValue',
|
|
19
|
+
useDeferredValue: 'DeferredValue',
|
|
20
|
+
useEffect: 'Effect',
|
|
21
|
+
useId: 'Id',
|
|
22
|
+
useImperativeHandle: 'ImperativeHandle',
|
|
23
|
+
useInsertionEffect: 'InsertionEffect',
|
|
24
|
+
useLayoutEffect: 'LayoutEffect',
|
|
25
|
+
useMemo: 'Memo',
|
|
26
|
+
useReducer: 'Reducer',
|
|
27
|
+
useRef: 'Ref',
|
|
28
|
+
useState: 'State',
|
|
29
|
+
useSyncExternalStore: 'SyncExternalStore',
|
|
30
|
+
useTransition: 'Transition',
|
|
31
|
+
};
|
|
32
|
+
// Cheap, conservative component detector: the binding name starts with a
|
|
33
|
+
// capital letter and the function body mentions JSX somewhere. Covers
|
|
34
|
+
// `function LoginForm() { return <View />; }` and
|
|
35
|
+
// `const LoginForm = (props) => <View />;`. HOC-wrapped components
|
|
36
|
+
// (memo / forwardRef / observer) are handled in `VariableDeclarator` by
|
|
37
|
+
// unwrapping the call expression first via `findInnerFunctionBodyPath`.
|
|
38
|
+
const isCapitalized = (name) => {
|
|
39
|
+
return (!!name &&
|
|
40
|
+
name.length > 0 &&
|
|
41
|
+
name[0] === name[0]?.toUpperCase() &&
|
|
42
|
+
name[0] !== name[0]?.toLowerCase());
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Walk a function body collecting hook-call metadata in source order. Names
|
|
46
|
+
* come from the consuming binding:
|
|
47
|
+
* const [count, setCount] = useState(0) → "count"
|
|
48
|
+
* const memoValue = useMemo(...) → "memoValue"
|
|
49
|
+
* useEffect(...) → "effect:<index>"
|
|
50
|
+
* The `kind` is taken from HOOK_KIND for built-ins, or "Custom" for any
|
|
51
|
+
* other identifier matching `/^use[A-Z]/`.
|
|
52
|
+
*/
|
|
53
|
+
const collectHooksInBody = (body, t) => {
|
|
54
|
+
const hooks = [];
|
|
55
|
+
const anonCounters = {};
|
|
56
|
+
body.traverse({
|
|
57
|
+
CallExpression(callPath) {
|
|
58
|
+
const callee = callPath.node.callee;
|
|
59
|
+
// Three call shapes:
|
|
60
|
+
// useState(x) — direct identifier
|
|
61
|
+
// React.useState(x) — MemberExpression (compiled react libs)
|
|
62
|
+
// _React2.useState(x) — MemberExpression (bundler-mangled)
|
|
63
|
+
let hookIdent;
|
|
64
|
+
let isMemberCall = false;
|
|
65
|
+
if (t.isIdentifier(callee)) {
|
|
66
|
+
hookIdent = callee.name;
|
|
67
|
+
}
|
|
68
|
+
else if (t.isMemberExpression(callee) &&
|
|
69
|
+
!callee.computed &&
|
|
70
|
+
t.isIdentifier(callee.property)) {
|
|
71
|
+
hookIdent = callee.property.name;
|
|
72
|
+
isMemberCall = true;
|
|
73
|
+
}
|
|
74
|
+
if (!hookIdent || !/^use[A-Z]/.test(hookIdent))
|
|
75
|
+
return;
|
|
76
|
+
const kind = HOOK_KIND[hookIdent] ?? 'Custom';
|
|
77
|
+
// Resolve hook name from the consuming binding when possible.
|
|
78
|
+
let hookName;
|
|
79
|
+
const parent = callPath.parent;
|
|
80
|
+
if (t.isVariableDeclarator(parent)) {
|
|
81
|
+
const id = parent.id;
|
|
82
|
+
if (t.isIdentifier(id)) {
|
|
83
|
+
hookName = id.name;
|
|
84
|
+
}
|
|
85
|
+
else if (t.isArrayPattern(id)) {
|
|
86
|
+
// const [value, setter] = useState(0) → pick the first binding
|
|
87
|
+
const first = id.elements[0];
|
|
88
|
+
if (first && t.isIdentifier(first)) {
|
|
89
|
+
hookName = first.name;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else if (t.isObjectPattern(id)) {
|
|
93
|
+
// const { foo } = useCustomHook() — rare, name it after the first key
|
|
94
|
+
const firstProp = id.properties[0];
|
|
95
|
+
if (firstProp && t.isObjectProperty(firstProp) && t.isIdentifier(firstProp.key)) {
|
|
96
|
+
hookName = firstProp.key.name;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (!hookName) {
|
|
101
|
+
// Naked hook call (typical for useEffect). Generate a positional name
|
|
102
|
+
// keyed by the hook kind so "effect:0" / "effect:1" don't collide
|
|
103
|
+
// with state hooks if user has multiple effects.
|
|
104
|
+
const counterKey = kind.toLowerCase();
|
|
105
|
+
const index = anonCounters[counterKey] ?? 0;
|
|
106
|
+
anonCounters[counterKey] = index + 1;
|
|
107
|
+
hookName = `${counterKey}:${index}`;
|
|
108
|
+
}
|
|
109
|
+
const entry = { hook: hookIdent, kind, name: hookName };
|
|
110
|
+
if (kind === 'Custom' && !isMemberCall) {
|
|
111
|
+
// Only attach a function reference for direct-identifier calls where
|
|
112
|
+
// we can verify the binding is module-scoped (import / top-level
|
|
113
|
+
// const/let/var/function). MemberExpression calls (React.useX) are
|
|
114
|
+
// always built-in hooks anyway — kind ends up mapped, no expansion
|
|
115
|
+
// needed. Local/parameter names would throw ReferenceError at the
|
|
116
|
+
// injection site (which is module-level).
|
|
117
|
+
const binding = callPath.scope.getBinding(hookIdent);
|
|
118
|
+
if (binding && binding.scope.block.type === 'Program') {
|
|
119
|
+
entry.fnIdent = hookIdent;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
hooks.push(entry);
|
|
123
|
+
},
|
|
124
|
+
Function(innerPath) {
|
|
125
|
+
// Don't descend into nested functions — their hooks are not this
|
|
126
|
+
// component's hooks. `useCallback(() => {...})` is still traversed
|
|
127
|
+
// because the wrapper call is a call expression visited before we
|
|
128
|
+
// skip into the body (we only skip the nested function's own
|
|
129
|
+
// declaration/body traversal).
|
|
130
|
+
innerPath.skip();
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
return hooks;
|
|
134
|
+
};
|
|
135
|
+
const buildHooksArrayExpr = (hooks, t) => {
|
|
136
|
+
return t.arrayExpression(hooks.map((h) => {
|
|
137
|
+
const props = [
|
|
138
|
+
t.objectProperty(t.identifier('name'), t.stringLiteral(h.name)),
|
|
139
|
+
t.objectProperty(t.identifier('kind'), t.stringLiteral(h.kind)),
|
|
140
|
+
t.objectProperty(t.identifier('hook'), t.stringLiteral(h.hook)),
|
|
141
|
+
];
|
|
142
|
+
if (h.fnIdent) {
|
|
143
|
+
// fn: useAuth (runtime reads .__mcp_hooks off this identifier)
|
|
144
|
+
props.push(t.objectProperty(t.identifier('fn'), t.identifier(h.fnIdent)));
|
|
145
|
+
}
|
|
146
|
+
return t.objectExpression(props);
|
|
147
|
+
}));
|
|
148
|
+
};
|
|
149
|
+
// Build:
|
|
150
|
+
// try {
|
|
151
|
+
// Object.defineProperty(Outer, '__mcp_hooks', {
|
|
152
|
+
// configurable: true,
|
|
153
|
+
// get: () => Inner.__mcp_hooks,
|
|
154
|
+
// });
|
|
155
|
+
// } catch {}
|
|
156
|
+
// Used for the identifier-ref HOC case (`const Outer = memo(Inner)`) where
|
|
157
|
+
// we can't statically collect hooks from the wrapped function. The getter
|
|
158
|
+
// forwards to the inner binding's metadata at read time, sidestepping
|
|
159
|
+
// declaration order, hoisting, scope, and custom-HOC return shape.
|
|
160
|
+
//
|
|
161
|
+
// The try/catch is mandatory: the HOC's return value is statically unknown
|
|
162
|
+
// — it could be a primitive (number / string), `null`/`undefined`, or a
|
|
163
|
+
// frozen / sealed object. Any of those make `Object.defineProperty` throw
|
|
164
|
+
// `TypeError` in strict mode (which ES modules always are). A throw at
|
|
165
|
+
// module-init kills the bundle. Swallowing here is harmless: the worst
|
|
166
|
+
// outcome is metadata not being attached to that one binding, exactly as
|
|
167
|
+
// if the plugin had skipped it.
|
|
168
|
+
const buildHooksGetterStmt = (outer, inner, t) => {
|
|
169
|
+
const defineCall = t.expressionStatement(t.callExpression(t.memberExpression(t.identifier('Object'), t.identifier('defineProperty')), [
|
|
170
|
+
t.identifier(outer),
|
|
171
|
+
t.stringLiteral('__mcp_hooks'),
|
|
172
|
+
t.objectExpression([
|
|
173
|
+
t.objectProperty(t.identifier('configurable'), t.booleanLiteral(true)),
|
|
174
|
+
t.objectProperty(t.identifier('get'), t.arrowFunctionExpression([], t.memberExpression(t.identifier(inner), t.identifier('__mcp_hooks')))),
|
|
175
|
+
]),
|
|
176
|
+
]));
|
|
177
|
+
// Optional-catch-binding (ES2019): `catch {}` — supported by Hermes.
|
|
178
|
+
return t.tryStatement(t.blockStatement([defineCall]), t.catchClause(null, t.blockStatement([])));
|
|
179
|
+
};
|
|
180
|
+
// Build the `ComponentName.__mcp_hooks = [...]` statement. Used at
|
|
181
|
+
// `Program:exit` time when we drain the deferred queue.
|
|
182
|
+
const buildAssignmentStmt = (componentName, hooks, t) => {
|
|
183
|
+
return t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.identifier(componentName), t.identifier('__mcp_hooks')), buildHooksArrayExpr(hooks, t)));
|
|
184
|
+
};
|
|
185
|
+
// Queue a `ComponentName.__mcp_hooks = [...]` insertion for `Program:exit`.
|
|
186
|
+
// Inserting during the main traversal is unsafe: react-refresh's babel
|
|
187
|
+
// plugin replaces HOC-wrapped function expressions via `replaceWith`, which
|
|
188
|
+
// re-traverses the rebuilt subtree and (in our experience) drops sibling
|
|
189
|
+
// statements we'd inserted via `insertAfter` on the original declarator.
|
|
190
|
+
// Deferring to `Program:exit` keeps our writes visible to the final output
|
|
191
|
+
// without interfering with replaceWith semantics.
|
|
192
|
+
const queueHooksAssignment = (state, statementPath, componentName, hooks) => {
|
|
193
|
+
if (hooks.length === 0)
|
|
194
|
+
return;
|
|
195
|
+
const queue = (state.pendingInjects ??= []);
|
|
196
|
+
queue.push({ hooks, kind: 'assignment', outer: componentName, statementPath });
|
|
197
|
+
};
|
|
198
|
+
const queueHooksGetter = (state, statementPath, outer, inner) => {
|
|
199
|
+
const queue = (state.pendingInjects ??= []);
|
|
200
|
+
queue.push({ inner, kind: 'getter', outer, statementPath });
|
|
201
|
+
};
|
|
202
|
+
// Heuristic: the function body must reference JSX. Otherwise it's just a
|
|
203
|
+
// plain capitalized helper that happens to share the naming convention.
|
|
204
|
+
const bodyUsesJSX = (bodyPath) => {
|
|
205
|
+
let uses = false;
|
|
206
|
+
bodyPath.traverse({
|
|
207
|
+
JSXElement() {
|
|
208
|
+
uses = true;
|
|
209
|
+
},
|
|
210
|
+
JSXFragment() {
|
|
211
|
+
uses = true;
|
|
212
|
+
},
|
|
213
|
+
});
|
|
214
|
+
return uses;
|
|
215
|
+
};
|
|
216
|
+
// Is this a candidate custom hook definition? Name matches `use[A-Z]...`
|
|
217
|
+
// and the body contains at least one built-in or custom hook call. Matches
|
|
218
|
+
// userland hooks AND library hook sources that happen to pass through our
|
|
219
|
+
// babel transform (Metro runs plugins on node_modules by default).
|
|
220
|
+
const isCustomHookName = (name) => {
|
|
221
|
+
return !!name && /^use[A-Z]/.test(name);
|
|
222
|
+
};
|
|
223
|
+
// Recognize callee shapes that look like an HOC application without locking
|
|
224
|
+
// to a hardcoded name list. Two shapes pass:
|
|
225
|
+
// 1. `memo(fn)` / `forwardRef(fn)` / `withAuth(fn)` — bare Identifier callee.
|
|
226
|
+
// 2. `React.memo(fn)` / `Mobx.observer(fn)` — MemberExpression where the
|
|
227
|
+
// object identifier resolves to a module (import) binding. This rules
|
|
228
|
+
// out `arr.map(fn)` and similar local-method calls, which would
|
|
229
|
+
// otherwise produce harmless-but-noisy metadata on a non-component
|
|
230
|
+
// binding. Property access on a deep chain (`a.b.c(fn)`) is rejected.
|
|
231
|
+
const isLikelyHocCallee = (callPath, t) => {
|
|
232
|
+
const callee = callPath.node.callee;
|
|
233
|
+
if (t.isIdentifier(callee))
|
|
234
|
+
return true;
|
|
235
|
+
if (t.isMemberExpression(callee) &&
|
|
236
|
+
!callee.computed &&
|
|
237
|
+
t.isIdentifier(callee.property) &&
|
|
238
|
+
t.isIdentifier(callee.object)) {
|
|
239
|
+
const binding = callPath.scope.getBinding(callee.object.name);
|
|
240
|
+
return !!binding && binding.kind === 'module';
|
|
241
|
+
}
|
|
242
|
+
return false;
|
|
243
|
+
};
|
|
244
|
+
// Walk down a CallExpression chain (`memo(forwardRef(...))`,
|
|
245
|
+
// `withAuth(observer(...))`, etc.) to whatever the chain bottoms out at.
|
|
246
|
+
// Returns null if no unwrap happened (the start was not a recognized HOC
|
|
247
|
+
// chain). Each link must look like a plausible HOC application via
|
|
248
|
+
// `isLikelyHocCallee`, so non-HOC calls that happen to take a function
|
|
249
|
+
// argument (e.g. `arr.map(fn)`) don't trigger metadata attachment on the
|
|
250
|
+
// outer binding.
|
|
251
|
+
//
|
|
252
|
+
// Transparently steps through `AssignmentExpression` and `SequenceExpression`
|
|
253
|
+
// wrappers — react-refresh injects `_c = <fn>` and similar synthetic
|
|
254
|
+
// expression wraps around the inner component during its `VariableDeclaration`
|
|
255
|
+
// enter visitor (which runs before our `VariableDeclarator` visitor). Without
|
|
256
|
+
// the step-through, our unwrap would dead-end at the AssignmentExpression
|
|
257
|
+
// and miss the inner arrow / function expression entirely.
|
|
258
|
+
const unwrapTransparentExpr = (path) => {
|
|
259
|
+
let cur = path;
|
|
260
|
+
// Bound the loop to defend against pathological ASTs.
|
|
261
|
+
for (let i = 0; i < 8; i++) {
|
|
262
|
+
if (cur.isAssignmentExpression() && cur.node.operator === '=') {
|
|
263
|
+
cur = cur.get('right');
|
|
264
|
+
continue;
|
|
265
|
+
}
|
|
266
|
+
if (cur.isSequenceExpression()) {
|
|
267
|
+
const exprs = cur.get('expressions');
|
|
268
|
+
if (exprs.length === 0)
|
|
269
|
+
break;
|
|
270
|
+
cur = exprs[exprs.length - 1];
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
return cur;
|
|
276
|
+
};
|
|
277
|
+
const unwrapHocChainToBottom = (startPath, t) => {
|
|
278
|
+
let cur = unwrapTransparentExpr(startPath);
|
|
279
|
+
let unwrapped = false;
|
|
280
|
+
while (cur.isCallExpression() && cur.node.arguments.length > 0 && isLikelyHocCallee(cur, t)) {
|
|
281
|
+
const arg0 = cur.get('arguments.0');
|
|
282
|
+
if (!arg0.node)
|
|
283
|
+
return null;
|
|
284
|
+
cur = unwrapTransparentExpr(arg0);
|
|
285
|
+
unwrapped = true;
|
|
286
|
+
}
|
|
287
|
+
return unwrapped ? cur : null;
|
|
288
|
+
};
|
|
289
|
+
// Two consumers of the unwrap walk:
|
|
290
|
+
// 1. Inline-function case (`memo(() => <JSX />)`) — find the body so we can
|
|
291
|
+
// collect hooks and attach metadata directly to the outer binding.
|
|
292
|
+
// 2. Identifier-ref case (`memo(InnerFn)`) — record `{ outer, inner }` so a
|
|
293
|
+
// deferred copy `Outer.__mcp_hooks = Inner.__mcp_hooks` can be emitted
|
|
294
|
+
// at Program:exit. The inline case can't use the deferred copy approach
|
|
295
|
+
// because there's no name to copy from.
|
|
296
|
+
const findInnerFunctionBodyPath = (startPath, t) => {
|
|
297
|
+
const bottom = unwrapHocChainToBottom(startPath, t);
|
|
298
|
+
if (!bottom)
|
|
299
|
+
return null;
|
|
300
|
+
if (bottom.isArrowFunctionExpression() || bottom.isFunctionExpression()) {
|
|
301
|
+
return bottom.get('body');
|
|
302
|
+
}
|
|
303
|
+
return null;
|
|
304
|
+
};
|
|
305
|
+
const findInnerIdentifier = (startPath, t) => {
|
|
306
|
+
const bottom = unwrapHocChainToBottom(startPath, t);
|
|
307
|
+
if (!bottom)
|
|
308
|
+
return null;
|
|
309
|
+
return bottom.isIdentifier() ? bottom : null;
|
|
310
|
+
};
|
|
311
|
+
const bodyCallsHook = (bodyPath, t) => {
|
|
312
|
+
let hit = false;
|
|
313
|
+
bodyPath.traverse({
|
|
314
|
+
CallExpression(callPath) {
|
|
315
|
+
if (hit)
|
|
316
|
+
return;
|
|
317
|
+
const callee = callPath.node.callee;
|
|
318
|
+
if (t.isIdentifier(callee) && /^use[A-Z]/.test(callee.name)) {
|
|
319
|
+
hit = true;
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
if (t.isMemberExpression(callee) &&
|
|
323
|
+
!callee.computed &&
|
|
324
|
+
t.isIdentifier(callee.property) &&
|
|
325
|
+
/^use[A-Z]/.test(callee.property.name)) {
|
|
326
|
+
hit = true;
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
Function(innerPath) {
|
|
330
|
+
innerPath.skip();
|
|
331
|
+
},
|
|
332
|
+
});
|
|
333
|
+
return hit;
|
|
334
|
+
};
|
|
13
335
|
function testIdPlugin({ types: t }) {
|
|
14
336
|
return {
|
|
15
337
|
name: 'react-native-mcp-test-id',
|
|
16
338
|
visitor: {
|
|
339
|
+
// === Part 2: attach __mcp_hooks metadata. ===
|
|
340
|
+
// Two candidate shapes per function declaration:
|
|
341
|
+
// 1. Component — capitalized name + JSX in body (React component).
|
|
342
|
+
// 2. Custom hook — name matches /^use[A-Z]/ + body contains hook calls.
|
|
343
|
+
// The VariableDeclarator visitor below covers the
|
|
344
|
+
// `const Foo = (...) => {...}` / `const useX = (...) => {...}` forms,
|
|
345
|
+
// plus HOC-wrapped components: `const Foo = anyHoc((props) => <JSX />)`
|
|
346
|
+
// and nested chains thereof.
|
|
347
|
+
FunctionDeclaration(path, state) {
|
|
348
|
+
const id = path.node.id;
|
|
349
|
+
if (!id)
|
|
350
|
+
return;
|
|
351
|
+
const bodyPath = path.get('body');
|
|
352
|
+
const pluginState = state;
|
|
353
|
+
// Component: capitalized name + (JSX in body OR hook calls in body).
|
|
354
|
+
// The hook-call branch covers components that legitimately return
|
|
355
|
+
// null / non-JSX values — portal-like, context-only, or
|
|
356
|
+
// imperative-handle wrappers. Under the Rules of Hooks, only
|
|
357
|
+
// components and custom hooks may call hooks, so a capitalized
|
|
358
|
+
// function that calls them is unambiguously a component.
|
|
359
|
+
if (isCapitalized(id.name) && (bodyUsesJSX(bodyPath) || bodyCallsHook(bodyPath, t))) {
|
|
360
|
+
const hooks = collectHooksInBody(bodyPath, t);
|
|
361
|
+
queueHooksAssignment(pluginState, path, id.name, hooks);
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
// Custom hook: name matches use[A-Z] + body calls at least one hook.
|
|
365
|
+
if (isCustomHookName(id.name) && bodyCallsHook(bodyPath, t)) {
|
|
366
|
+
const hooks = collectHooksInBody(bodyPath, t);
|
|
367
|
+
queueHooksAssignment(pluginState, path, id.name, hooks);
|
|
368
|
+
}
|
|
369
|
+
},
|
|
370
|
+
// === Part 1: stamp data-mcp-id on capitalized JSX elements. ===
|
|
17
371
|
JSXOpeningElement(path, state) {
|
|
18
372
|
const opts = (state.opts ?? {});
|
|
19
373
|
const attrName = opts.attr ?? DEFAULT_ATTR;
|
|
20
374
|
const separator = opts.separator ?? ':';
|
|
21
375
|
const exclude = opts.exclude ?? DEFAULT_EXCLUDE;
|
|
22
376
|
const include = opts.include;
|
|
23
|
-
// Get component name
|
|
24
377
|
const nameNode = path.node.name;
|
|
25
378
|
let componentName;
|
|
26
379
|
if (t.isJSXIdentifier(nameNode)) {
|
|
@@ -32,15 +385,12 @@ function testIdPlugin({ types: t }) {
|
|
|
32
385
|
else {
|
|
33
386
|
return;
|
|
34
387
|
}
|
|
35
|
-
// Skip lowercase elements
|
|
36
388
|
if (componentName[0] === componentName[0]?.toLowerCase())
|
|
37
389
|
return;
|
|
38
|
-
// Check include/exclude
|
|
39
390
|
if (include && !include.includes(componentName))
|
|
40
391
|
return;
|
|
41
392
|
if (exclude.includes(componentName))
|
|
42
393
|
return;
|
|
43
|
-
// Get file info
|
|
44
394
|
const filename = state.filename ?? 'unknown';
|
|
45
395
|
const relativePath = filename.includes('/src/')
|
|
46
396
|
? (filename.split('/src/').pop() ?? filename)
|
|
@@ -48,21 +398,130 @@ function testIdPlugin({ types: t }) {
|
|
|
48
398
|
const shortFile = relativePath.replace(/\.(tsx?|jsx?)$/, '');
|
|
49
399
|
const line = path.node.loc?.start.line ?? 0;
|
|
50
400
|
const generatedId = `${componentName}${separator}${shortFile}${separator}${line}`;
|
|
51
|
-
// Check if attr already exists
|
|
52
401
|
const existingAttr = path.node.attributes.find((attr) => {
|
|
53
402
|
return t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name, { name: attrName });
|
|
54
403
|
});
|
|
55
404
|
if (existingAttr && t.isJSXAttribute(existingAttr)) {
|
|
56
|
-
// Augment existing value with file:line
|
|
57
405
|
if (t.isStringLiteral(existingAttr.value)) {
|
|
58
406
|
const existing = existingAttr.value.value;
|
|
59
407
|
existingAttr.value = t.stringLiteral(`${existing}${separator}${shortFile}${separator}${line}`);
|
|
60
408
|
}
|
|
61
409
|
return;
|
|
62
410
|
}
|
|
63
|
-
// Add attribute
|
|
64
411
|
path.node.attributes.push(t.jsxAttribute(t.jsxIdentifier(attrName), t.stringLiteral(generatedId)));
|
|
65
412
|
},
|
|
413
|
+
// === Part 3: drain deferred-injection queue at module end. ===
|
|
414
|
+
// Runs after all other plugins' visitors (in particular react-refresh's
|
|
415
|
+
// replaceWith on HOC-wrapped components) have finished mutating the
|
|
416
|
+
// tree. Each queued entry's `statementPath` is the original declaration
|
|
417
|
+
// statement — still valid at this point because none of the upstream
|
|
418
|
+
// plugins replace top-level statements, only their inner expressions.
|
|
419
|
+
// We dedupe by `outer` name to defend against multiple visitor passes
|
|
420
|
+
// queuing the same component twice.
|
|
421
|
+
Program: {
|
|
422
|
+
exit(_programPath, state) {
|
|
423
|
+
const pluginState = state;
|
|
424
|
+
const queue = pluginState.pendingInjects;
|
|
425
|
+
if (!queue || queue.length === 0)
|
|
426
|
+
return;
|
|
427
|
+
const seen = new Set();
|
|
428
|
+
for (const entry of queue) {
|
|
429
|
+
if (seen.has(entry.outer))
|
|
430
|
+
continue;
|
|
431
|
+
seen.add(entry.outer);
|
|
432
|
+
if (!entry.statementPath.node)
|
|
433
|
+
continue; // statement was removed by another pass
|
|
434
|
+
if (entry.kind === 'assignment') {
|
|
435
|
+
entry.statementPath.insertAfter(buildAssignmentStmt(entry.outer, entry.hooks, t));
|
|
436
|
+
}
|
|
437
|
+
else {
|
|
438
|
+
entry.statementPath.insertAfter(buildHooksGetterStmt(entry.outer, entry.inner, t));
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
pluginState.pendingInjects = [];
|
|
442
|
+
},
|
|
443
|
+
},
|
|
444
|
+
VariableDeclarator(path, state) {
|
|
445
|
+
const id = path.node.id;
|
|
446
|
+
if (!t.isIdentifier(id))
|
|
447
|
+
return;
|
|
448
|
+
let initNode = path.node.init;
|
|
449
|
+
if (!initNode)
|
|
450
|
+
return;
|
|
451
|
+
const pluginState = state;
|
|
452
|
+
// Unwrap TypeScript casts: `as Foo`, `as const`, `<Foo>x` (legacy
|
|
453
|
+
// angle-bracket assertion), and `x satisfies Foo`. Without this,
|
|
454
|
+
// `const Wrapped = memo(arrow) as { ... }` fails our HOC unwrap
|
|
455
|
+
// because we'd see TSAsExpression instead of the inner CallExpression.
|
|
456
|
+
// Pattern in the wild: 21vek's PageFlashListWithBanner /
|
|
457
|
+
// ListProductRow / RangeFilter use `as` to attach generic call
|
|
458
|
+
// signatures + displayName onto memo'd components.
|
|
459
|
+
let initPathForUnwrap = path.get('init');
|
|
460
|
+
for (let i = 0; i < 4; i++) {
|
|
461
|
+
if (t.isTSAsExpression(initNode) ||
|
|
462
|
+
t.isTSTypeAssertion(initNode) ||
|
|
463
|
+
t.isTSSatisfiesExpression(initNode) ||
|
|
464
|
+
t.isTSNonNullExpression(initNode)) {
|
|
465
|
+
initPathForUnwrap = initPathForUnwrap.get('expression');
|
|
466
|
+
initNode = initPathForUnwrap.node;
|
|
467
|
+
continue;
|
|
468
|
+
}
|
|
469
|
+
break;
|
|
470
|
+
}
|
|
471
|
+
const init = initNode;
|
|
472
|
+
// Resolve the function body to inspect. Three shapes:
|
|
473
|
+
// const Foo = (props) => <JSX /> — direct arrow / fn
|
|
474
|
+
// const Foo = memo((props) => <JSX />) — single-HOC wrap
|
|
475
|
+
// const Foo = memo(forwardRef((p, r) => ...)) — nested HOC chain
|
|
476
|
+
// For HOC wrappers, attaching `Foo.__mcp_hooks = [...]` on the outer
|
|
477
|
+
// binding works because `memo()` / `forwardRef()` return plain JS
|
|
478
|
+
// objects that React stores in `fiber.type` — the runtime read path
|
|
479
|
+
// is identical to the bare-component case. The unwrap is name-
|
|
480
|
+
// agnostic (any Identifier or import-namespaced MemberExpression
|
|
481
|
+
// callee qualifies), so custom HOCs like `withAuth(...)` work too.
|
|
482
|
+
let bodyPath = null;
|
|
483
|
+
if (t.isArrowFunctionExpression(init) || t.isFunctionExpression(init)) {
|
|
484
|
+
bodyPath = initPathForUnwrap.get('body');
|
|
485
|
+
}
|
|
486
|
+
else if (t.isCallExpression(init)) {
|
|
487
|
+
bodyPath = findInnerFunctionBodyPath(initPathForUnwrap, t);
|
|
488
|
+
// Identifier-ref HOC case: `const Foo = memo(InnerFn)`. The inner
|
|
489
|
+
// arg is a name, not an inline function — so we can't statically
|
|
490
|
+
// collect hooks here. Instead, install a getter on `Foo` that
|
|
491
|
+
// forwards to `Inner.__mcp_hooks` at read time.
|
|
492
|
+
if (!bodyPath && isCapitalized(id.name)) {
|
|
493
|
+
const inner = findInnerIdentifier(initPathForUnwrap, t);
|
|
494
|
+
if (inner && inner.scope.getBinding(inner.node.name)) {
|
|
495
|
+
const stmt = path.getStatementParent();
|
|
496
|
+
if (stmt) {
|
|
497
|
+
queueHooksGetter(pluginState, stmt, id.name, inner.node.name);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
if (!bodyPath || !bodyPath.node)
|
|
503
|
+
return;
|
|
504
|
+
// Component: capitalized + (JSX in body OR hook calls). Same
|
|
505
|
+
// rationale as FunctionDeclaration above — Rules of Hooks pin a
|
|
506
|
+
// capitalized hook-calling function to "component", so JSX is
|
|
507
|
+
// sufficient but not necessary (covers `return null` portals).
|
|
508
|
+
if (isCapitalized(id.name) && (bodyUsesJSX(bodyPath) || bodyCallsHook(bodyPath, t))) {
|
|
509
|
+
const hooks = collectHooksInBody(bodyPath, t);
|
|
510
|
+
const statement = path.getStatementParent();
|
|
511
|
+
if (!statement)
|
|
512
|
+
return;
|
|
513
|
+
queueHooksAssignment(pluginState, statement, id.name, hooks);
|
|
514
|
+
return;
|
|
515
|
+
}
|
|
516
|
+
// Custom hook: use[A-Z] + body calls hooks.
|
|
517
|
+
if (isCustomHookName(id.name) && bodyCallsHook(bodyPath, t)) {
|
|
518
|
+
const hooks = collectHooksInBody(bodyPath, t);
|
|
519
|
+
const statement = path.getStatementParent();
|
|
520
|
+
if (!statement)
|
|
521
|
+
return;
|
|
522
|
+
queueHooksAssignment(pluginState, statement, id.name, hooks);
|
|
523
|
+
}
|
|
524
|
+
},
|
|
66
525
|
},
|
|
67
526
|
};
|
|
68
527
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testIdPlugin.js","sourceRoot":"","sources":["../../src/babel/testIdPlugin.ts"],"names":[],"mappings":";;AAwBA,+BA+DC;AA1ED,MAAM,YAAY,GAAG,aAAa,CAAC;AAEnC,MAAM,eAAe,GAAG;IACtB,UAAU;IACV,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IACZ,UAAU;CACX,CAAC;AAEF,SAAwB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,EAAgC;IAC7E,OAAO;QACL,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE;YACP,iBAAiB,CAAC,IAAI,EAAE,KAAK;gBAC3B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAkB,CAAC;gBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;gBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;gBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAE7B,qBAAqB;gBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,IAAI,aAAqB,CAAC;gBAE1B,IAAI,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAChC,CAAC;qBAAM,IAAI,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,aAAa,GAAG,GAAI,QAAQ,CAAC,MAAmC,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpG,CAAC;qBAAM,CAAC;oBACN,OAAO;gBACT,CAAC;gBAED,0BAA0B;gBAC1B,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;oBAAE,OAAO;gBAEjE,wBAAwB;gBACxB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;oBAAE,OAAO;gBACxD,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;oBAAE,OAAO;gBAE5C,gBAAgB;gBAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;gBAC7C,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAC7C,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;oBAC7C,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,CAAC;gBAC5C,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;gBAE5C,MAAM,WAAW,GAAG,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC;gBAElF,+BAA+B;gBAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtD,OAAO,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACpF,CAAC,CAAC,CAAC;gBAEH,IAAI,YAAY,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;oBACnD,wCAAwC;oBACxC,IAAI,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;wBAC1C,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,CAClC,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,EAAE,CACzD,CAAC;oBACJ,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,gBAAgB;gBAChB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CACvB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CACxE,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"testIdPlugin.js","sourceRoot":"","sources":["../../src/babel/testIdPlugin.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/ios-hid
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpProvider.d.ts","sourceRoot":"","sources":["../../../../src/client/contexts/McpContext/McpProvider.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAiBtE,eAAO,MAAM,WAAW,8EAQrB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"McpProvider.d.ts","sourceRoot":"","sources":["../../../../src/client/contexts/McpContext/McpProvider.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAiBtE,eAAO,MAAM,WAAW,8EAQrB,gBAAgB,oGAgElB,CAAC"}
|
|
@@ -75,12 +75,6 @@ const McpProvider = ({ children, debug, i18n, modules, navigationRef, queryClien
|
|
|
75
75
|
registerTool: (name, tool) => {
|
|
76
76
|
client.registerTool(name, tool);
|
|
77
77
|
},
|
|
78
|
-
removeState: (key) => {
|
|
79
|
-
client.removeState(key);
|
|
80
|
-
},
|
|
81
|
-
setState: (key, value) => {
|
|
82
|
-
client.setState(key, value);
|
|
83
|
-
},
|
|
84
78
|
unregisterTool: (name) => {
|
|
85
79
|
client.unregisterTool(name);
|
|
86
80
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpProvider.js","sourceRoot":"","sources":["../../../../src/client/contexts/McpContext/McpProvider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"McpProvider.js","sourceRoot":"","sources":["../../../../src/client/contexts/McpContext/McpProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,6 @@ import { type QueryClientLike } from '../../../modules/reactQuery/types';
|
|
|
6
6
|
import { type NamedStorage } from '../../../modules/storage/types';
|
|
7
7
|
export interface McpContextValue {
|
|
8
8
|
registerTool: (name: string, tool: ToolHandler) => void;
|
|
9
|
-
removeState: (key: string) => void;
|
|
10
|
-
setState: (key: string, value: unknown) => void;
|
|
11
9
|
unregisterTool: (name: string) => void;
|
|
12
10
|
}
|
|
13
11
|
export interface McpProviderProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/client/contexts/McpContext/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACxD,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/client/contexts/McpContext/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACxD,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,CAAC;IAEpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAKhB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B"}
|
|
@@ -26,8 +26,6 @@ export declare class McpClient {
|
|
|
26
26
|
registerModule(module: McpModule): void;
|
|
27
27
|
registerModules(modules: McpModule[]): void;
|
|
28
28
|
registerTool(name: string, tool: ToolHandler): void;
|
|
29
|
-
removeState(key: string): void;
|
|
30
|
-
setState(key: string, value: unknown): void;
|
|
31
29
|
unregisterTool(name: string): void;
|
|
32
30
|
private log;
|
|
33
31
|
private sendRegistration;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpClient.d.ts","sourceRoot":"","sources":["../../../src/client/core/McpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzE,OAAO,
|
|
1
|
+
{"version":3,"file":"McpClient.d.ts","sourceRoot":"","sources":["../../../src/client/core/McpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAEL,KAAK,aAAa,EAKnB,MAAM,mBAAmB,CAAC;AAiJ3B,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IAEjD,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO;IAuCP,OAAO,CAAC,iBAAiB;IAsBzB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,SAAS,CAAC,EAAE,aAAa,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,SAAS;IA2Bb,MAAM,CAAC,WAAW,IAAI,SAAS;IAS/B,OAAO,IAAI,IAAI;IAMf,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAMvC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IAa3C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAcnD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAUlC,OAAO,CAAC,GAAG;IASX,OAAO,CAAC,gBAAgB;CAuBzB"}
|