react-native-mcp-kit 3.0.1 → 4.0.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.
- package/README.md +22 -10
- 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 +5 -5
- package/dist/client/contexts/McpContext/McpProvider.js.map +1 -1
- package/dist/client/core/McpClient.d.ts.map +1 -1
- package/dist/client/core/McpClient.js +26 -32
- package/dist/client/core/McpClient.js.map +1 -1
- package/dist/modules/alert/alert.d.ts.map +1 -1
- package/dist/modules/alert/alert.js +2 -5
- package/dist/modules/alert/alert.js.map +1 -1
- package/dist/modules/console/console.d.ts.map +1 -1
- package/dist/modules/console/console.js +32 -107
- package/dist/modules/console/console.js.map +1 -1
- package/dist/modules/console/types.d.ts +1 -0
- package/dist/modules/console/types.d.ts.map +1 -1
- package/dist/modules/device/device.d.ts.map +1 -1
- package/dist/modules/device/device.js +224 -133
- package/dist/modules/device/device.js.map +1 -1
- package/dist/modules/errors/errors.d.ts.map +1 -1
- package/dist/modules/errors/errors.js +19 -36
- package/dist/modules/errors/errors.js.map +1 -1
- package/dist/modules/fiberTree/children.d.ts +49 -0
- package/dist/modules/fiberTree/children.d.ts.map +1 -0
- package/dist/modules/fiberTree/children.js +182 -0
- package/dist/modules/fiberTree/children.js.map +1 -0
- package/dist/modules/fiberTree/constants.d.ts +13 -0
- package/dist/modules/fiberTree/constants.d.ts.map +1 -0
- package/dist/modules/fiberTree/constants.js +24 -0
- package/dist/modules/fiberTree/constants.js.map +1 -0
- package/dist/modules/fiberTree/fiberTree.d.ts +3 -6
- package/dist/modules/fiberTree/fiberTree.d.ts.map +1 -1
- package/dist/modules/fiberTree/fiberTree.js +219 -1080
- package/dist/modules/fiberTree/fiberTree.js.map +1 -1
- package/dist/modules/fiberTree/finder.d.ts +60 -0
- package/dist/modules/fiberTree/finder.d.ts.map +1 -0
- package/dist/modules/fiberTree/finder.js +107 -0
- package/dist/modules/fiberTree/finder.js.map +1 -0
- package/dist/modules/fiberTree/hooks.d.ts +103 -0
- package/dist/modules/fiberTree/hooks.d.ts.map +1 -0
- package/dist/modules/fiberTree/hooks.js +532 -0
- package/dist/modules/fiberTree/hooks.js.map +1 -0
- package/dist/modules/fiberTree/projection.d.ts +49 -0
- package/dist/modules/fiberTree/projection.d.ts.map +1 -0
- package/dist/modules/fiberTree/projection.js +82 -0
- package/dist/modules/fiberTree/projection.js.map +1 -0
- package/dist/modules/fiberTree/query.d.ts +56 -0
- package/dist/modules/fiberTree/query.d.ts.map +1 -0
- package/dist/modules/fiberTree/query.js +151 -0
- package/dist/modules/fiberTree/query.js.map +1 -0
- package/dist/modules/fiberTree/redact.d.ts +24 -0
- package/dist/modules/fiberTree/redact.d.ts.map +1 -0
- package/dist/modules/fiberTree/redact.js +51 -0
- package/dist/modules/fiberTree/redact.js.map +1 -0
- package/dist/modules/fiberTree/types.d.ts +7 -0
- package/dist/modules/fiberTree/types.d.ts.map +1 -1
- package/dist/modules/fiberTree/utils.d.ts +8 -2
- package/dist/modules/fiberTree/utils.d.ts.map +1 -1
- package/dist/modules/fiberTree/utils.js +79 -78
- package/dist/modules/fiberTree/utils.js.map +1 -1
- package/dist/modules/fiberTree/viewport.d.ts +28 -0
- package/dist/modules/fiberTree/viewport.d.ts.map +1 -0
- package/dist/modules/fiberTree/viewport.js +50 -0
- package/dist/modules/fiberTree/viewport.js.map +1 -0
- package/dist/modules/fiberTree/waitFor.d.ts +52 -0
- package/dist/modules/fiberTree/waitFor.d.ts.map +1 -0
- package/dist/modules/fiberTree/waitFor.js +98 -0
- package/dist/modules/fiberTree/waitFor.js.map +1 -0
- package/dist/modules/logBox/logBox.d.ts.map +1 -1
- package/dist/modules/logBox/logBox.js +59 -66
- package/dist/modules/logBox/logBox.js.map +1 -1
- package/dist/modules/navigation/navigation.d.ts.map +1 -1
- package/dist/modules/navigation/navigation.js +115 -114
- package/dist/modules/navigation/navigation.js.map +1 -1
- package/dist/modules/network/network.d.ts.map +1 -1
- package/dist/modules/network/network.js +78 -197
- package/dist/modules/network/network.js.map +1 -1
- package/dist/modules/network/types.d.ts +23 -27
- package/dist/modules/network/types.d.ts.map +1 -1
- package/dist/modules/reactQuery/reactQuery.d.ts.map +1 -1
- package/dist/modules/reactQuery/reactQuery.js +46 -52
- package/dist/modules/reactQuery/reactQuery.js.map +1 -1
- package/dist/modules/storage/storage.d.ts.map +1 -1
- package/dist/modules/storage/storage.js +20 -3
- package/dist/modules/storage/storage.js.map +1 -1
- package/dist/server/host/tools/input.js +2 -2
- package/dist/server/host/tools/input.js.map +1 -1
- package/dist/server/mcpServer.d.ts.map +1 -1
- package/dist/server/mcpServer.js +43 -3
- package/dist/server/mcpServer.js.map +1 -1
- package/dist/server/metro/eventCapture.d.ts +0 -2
- package/dist/server/metro/eventCapture.d.ts.map +1 -1
- package/dist/server/metro/eventCapture.js +1 -2
- package/dist/server/metro/eventCapture.js.map +1 -1
- package/dist/server/metro/tools/events.d.ts.map +1 -1
- package/dist/server/metro/tools/events.js +11 -11
- package/dist/server/metro/tools/events.js.map +1 -1
- package/dist/shared/projection/projectValue.d.ts +90 -0
- package/dist/shared/projection/projectValue.d.ts.map +1 -0
- package/dist/shared/projection/projectValue.js +322 -0
- package/dist/shared/projection/projectValue.js.map +1 -0
- package/dist/shared/projection/redact.d.ts +31 -0
- package/dist/shared/projection/redact.d.ts.map +1 -0
- package/dist/shared/projection/redact.js +78 -0
- package/dist/shared/projection/redact.js.map +1 -0
- package/dist/shared/projection/resolvePath.d.ts +45 -0
- package/dist/shared/projection/resolvePath.d.ts.map +1 -0
- package/dist/shared/projection/resolvePath.js +211 -0
- package/dist/shared/projection/resolvePath.js.map +1 -0
- package/dist/shared/rn/core.d.ts +48 -0
- package/dist/shared/rn/core.d.ts.map +1 -0
- package/dist/shared/rn/core.js +100 -0
- package/dist/shared/rn/core.js.map +1 -0
- package/dist/shared/rn/deviceInfo.d.ts +40 -0
- package/dist/shared/rn/deviceInfo.d.ts.map +1 -0
- package/dist/shared/rn/deviceInfo.js +78 -0
- package/dist/shared/rn/deviceInfo.js.map +1 -0
- package/package.json +2 -2
- package/dist/client/hooks/useMcpState.d.ts +0 -3
- package/dist/client/hooks/useMcpState.d.ts.map +0 -1
- package/dist/client/hooks/useMcpState.js +0 -20
- package/dist/client/hooks/useMcpState.js.map +0 -1
- package/dist/server/canonicalize.d.ts +0 -8
- package/dist/server/canonicalize.d.ts.map +0 -1
- package/dist/server/canonicalize.js +0 -23
- package/dist/server/canonicalize.js.map +0 -1
- package/dist/server/host/modules/screenshot.d.ts +0 -4
- package/dist/server/host/modules/screenshot.d.ts.map +0 -1
- package/dist/server/host/modules/screenshot.js +0 -615
- package/dist/server/host/modules/screenshot.js.map +0 -1
- package/dist/server/host/tools/connectionStatus.d.ts +0 -9
- package/dist/server/host/tools/connectionStatus.d.ts.map +0 -1
- package/dist/server/host/tools/connectionStatus.js +0 -39
- package/dist/server/host/tools/connectionStatus.js.map +0 -1
- package/dist/server/host/tools/symbolicate.d.ts +0 -3
- package/dist/server/host/tools/symbolicate.d.ts.map +0 -1
- package/dist/server/host/tools/symbolicate.js +0 -209
- package/dist/server/host/tools/symbolicate.js.map +0 -1
- package/dist/server/host/wda.d.ts +0 -15
- package/dist/server/host/wda.d.ts.map +0 -1
- package/dist/server/host/wda.js +0 -100
- package/dist/server/host/wda.js.map +0 -1
- package/dist/server/inputSchemaToZod.d.ts +0 -19
- package/dist/server/inputSchemaToZod.d.ts.map +0 -1
- package/dist/server/inputSchemaToZod.js +0 -89
- package/dist/server/inputSchemaToZod.js.map +0 -1
- package/dist/server/metro/tools/openUrl.d.ts +0 -3
- package/dist/server/metro/tools/openUrl.d.ts.map +0 -1
- package/dist/server/metro/tools/openUrl.js +0 -71
- package/dist/server/metro/tools/openUrl.js.map +0 -1
- package/dist/shared/slice.d.ts +0 -16
- package/dist/shared/slice.d.ts.map +0 -1
- package/dist/shared/slice.js +0 -29
- package/dist/shared/slice.js.map +0 -1
package/README.md
CHANGED
|
@@ -259,7 +259,7 @@ Show a native `Alert.alert` from the agent with any combination of `default` / `
|
|
|
259
259
|
|
|
260
260
|
### console
|
|
261
261
|
|
|
262
|
-
Tails `console.log` / `warn` / `error` / `info` / `debug` into a ring buffer the agent can read or clear.
|
|
262
|
+
Tails `console.log` / `warn` / `error` / `info` / `debug` into a ring buffer the agent can read or clear. Each entry carries a monotonic `id`. Args are stored raw and projected at query time — Errors, Dates, class instances, cyclic refs, functions, Symbols, Maps, Sets all collapse to compact `${kind}` markers. Listing tools accept standard `path` / `depth` / `maxBytes` projection args (default depth 3); drill via `path: '[-1:][0].args[1]'` to fetch one specific arg. Buffer size, captured levels, and whether stack traces are collected are all configurable.
|
|
263
263
|
|
|
264
264
|
```ts
|
|
265
265
|
consoleModule({
|
|
@@ -271,24 +271,34 @@ consoleModule({
|
|
|
271
271
|
|
|
272
272
|
### device
|
|
273
273
|
|
|
274
|
-
|
|
274
|
+
Aggregate read of platform facts via `info({ select? })` — returns any subset of: RN-core fields (`platform`, `dimensions`, `pixelRatio`, `appearance`, `appState`, `accessibility`, `keyboard`, `initialUrl`, `dev`) and `react-native-device-info`-backed fields (`identity`, `app`, `battery`, `memoryStorage`); pass `select: ['battery','identity']` to limit to specific fields. `dimensions` carries both DP and physical pixels. `react-native-device-info` is an **optional dependency** — install it to surface battery / memory / disk / extended identity (model, manufacturer, deviceType, isTablet, hasNotch, hasDynamicIsland, systemName/Version) and app metadata (buildNumber, readableVersion, install/update times). Missing package → DI-backed fields return `{ unavailable: true, reason }`. Imperative actions: `open_url({ url, dryRun? })` (dryRun only checks Linking.canOpenURL), `open_settings`, `dismiss_keyboard`, `vibrate`, `reload`.
|
|
275
275
|
|
|
276
276
|
### errors
|
|
277
277
|
|
|
278
|
-
Captures unhandled JS errors (via `ErrorUtils.setGlobalHandler`) and unhandled promise rejections. Each entry has parsed `stackFrames` designed to feed into `metro__symbolicate`
|
|
278
|
+
Captures unhandled JS errors (via `ErrorUtils.setGlobalHandler`) and unhandled promise rejections. Each entry has a monotonic `id`, parsed `stackFrames` designed to feed into `metro__symbolicate` (one call resolves bundle paths back to `src/components/Foo.tsx:42:10`), plus the raw `stack` string. Listing tools accept standard `path` / `depth` / `maxBytes` projection args (default depth 4 — entries + stackFrames expanded; long stacks wrap in `${str}` markers); drill via `path: '[-1:][0].stack'` for the full text.
|
|
279
279
|
|
|
280
280
|
### fiber_tree
|
|
281
281
|
|
|
282
282
|
The heart of UI inspection. Search the component tree via a chained `query`: each step narrows the result by **criteria** within a given **scope**, with multiple matches fanning out into the next step.
|
|
283
283
|
|
|
284
284
|
- **Criteria**: `name`, `testID`, `mcpId`, `text`, `hasProps`, `props` (equality + `contains`), `not`, `any`.
|
|
285
|
-
- **Scopes**: `descendants`, `children`, `parent`, `ancestors`, `siblings`, `self`, `screen` (focused screen fiber from React Navigation), `nearest_host` (closest host component).
|
|
285
|
+
- **Scopes**: `descendants`, `children`, `parent`, `ancestors`, `siblings`, `self`, `root` (the React fiber root — useful as a first step to dump the whole tree), `screen` (focused screen fiber from React Navigation), `nearest_host` (closest host component).
|
|
286
286
|
|
|
287
287
|
Wrapper cascades (`PressableView → Pressable → View → RCTView`) collapse to the topmost by default, so overlapping matches don't drown the result. `bounds` come back in physical pixels and pair directly with `host__tap` — or use `host__tap_fiber` for the locate-and-tap shortcut.
|
|
288
288
|
|
|
289
289
|
Pass `waitFor: { until: 'appear' | 'disappear', timeout?, interval?, stable? }` to poll the same query until the target state is reached — e.g. `waitFor: { until: 'appear', stable: 300 }` waits for a screen to mount and hold stable for 300ms. Response carries `{ waited, attempts, elapsedMs, timedOut, stableFor? }` alongside the usual matches.
|
|
290
290
|
|
|
291
|
-
|
|
291
|
+
**Per-field projection.** Heavy fields — `props` and `hooks` — are projected per-field via `select`, so the rest of the response (mcpId, name, total) stays raw and always visible. Each takes its own `path` / `depth` / `maxBytes` knobs:
|
|
292
|
+
|
|
293
|
+
- `select: [{ props: { path: "data[0:5]", depth: 2 } }]` — drill into props.data[0..5) with 2 levels of expansion.
|
|
294
|
+
- `select: [{ hooks: { kinds: ["State"], names: ["isLoading"], withValues: true, depth: 2, path: "[0].value" } }]` — filter hooks by kind/name + project hook values.
|
|
295
|
+
- `select: [{ children: 5 }]` — recursive light-only walker, dumps a tree of mcpId/name 5 levels deep from each match. At the bottom, sub-children appear as `{ "${arr}": N }` so you see there's more to drill. Heavy fields (`props`/`hooks`) are not allowed inside `select.children` — query a child's mcpId separately when you need them.
|
|
296
|
+
- `select: ['mcpId', 'refMethods']` — list native-ref methods (focus, blur, measure, scrollTo, ...) available for `call({ method })`. `null` when the fiber has no native instance.
|
|
297
|
+
- `query({ steps: [{ scope: 'root' }], select: [{ children: 5 }] })` — the canonical "dump the whole tree" entry point.
|
|
298
|
+
|
|
299
|
+
Heavy nested values render as compact `${kind}`-keyed markers — `{"${arr}":47}`, `{"${fun}":"onPress"}`, `{"${str}":{ "len":1247, "preview":"..." }}` for long strings, `{"${Date}":"iso"}`, `{"${Err}":{ name, msg }}`, `{"${cyc}":true}`, `{"${ref}":{ mcpId, name }}` for component refs. Wide objects/arrays (>30 keys / >50 items) get a `${truncated}` sentinel as the first entry.
|
|
300
|
+
|
|
301
|
+
Hooks pull `useState` / `useMemo` / `useCallback` / `useRef` / `useEffect` / custom hooks with variable names recovered from source (via `__mcp_hooks` metadata from the test-id babel plugin). `withValues: true` adds resolved values; `expansionDepth` caps custom-hook recursion (`0` = top-level only); `format: "tree"` returns nested children instead of flat `via` chains. Sensitive names (password, token, jwt, secret, credential, apiKey, authorization, *Pin) are auto-redacted — override via `fiberTreeModule({ redactHookNames, additionalRedactHookNames })`. Works against any HOC chain (`memo`, `forwardRef`, custom HOCs, `as` casts) and library hooks from react-query, react-redux, reanimated, react-navigation.
|
|
292
302
|
|
|
293
303
|
### i18n
|
|
294
304
|
|
|
@@ -296,15 +306,15 @@ Inspect and manipulate an `i18next` instance: list keys, dump a whole translatio
|
|
|
296
306
|
|
|
297
307
|
### log_box
|
|
298
308
|
|
|
299
|
-
Control the React Native LogBox overlay: inspect current rows, dismiss or clear them, add ignore patterns (substring or `/regex/flags`), globally mute. Useful for clearing warning toasts that block automated UI flows. Dev-only — no-op in production.
|
|
309
|
+
Control the React Native LogBox overlay: inspect current rows, dismiss or clear them, add ignore patterns (substring or `/regex/flags`), globally mute. `get_logs` accepts standard `path` / `depth` / `maxBytes` projection args; drill via `path: '[0].stack[0]'` for a specific frame. Useful for clearing warning toasts that block automated UI flows. Dev-only — no-op in production.
|
|
300
310
|
|
|
301
311
|
### navigation
|
|
302
312
|
|
|
303
|
-
Drive React Navigation from outside
|
|
313
|
+
Drive React Navigation from outside and read the current route, nested state, and the last 100 transitions. Reads — `get_state`, `get_history`, `get_current_route({ withState? })` — accept standard `path` / `depth` / `maxBytes` projection args; current-route responses include a `screen` field identifying the rendering component (`componentName`, `mcpId`, `filePath`, `line`). Actions are collapsed by semantic verb: `navigate({ screen, params?, mode?: 'reuse' | 'push' | 'replace' })` for forward moves (default mode reuses existing screen); `pop({ to? })` accepts a number, a screen name, or `"top"` for the three pop variants; plus `reset({ routes, index? })` and `go_back`. Needs a `createNavigationContainerRef()` passed to both `<NavigationContainer ref={…}>` and `<McpProvider navigationRef={…}>`.
|
|
304
314
|
|
|
305
315
|
### network
|
|
306
316
|
|
|
307
|
-
Intercepts `fetch` and `XMLHttpRequest` into a ring buffer — method, URL, status, duration, headers, bodies. Bodies are
|
|
317
|
+
Intercepts `fetch` and `XMLHttpRequest` into a ring buffer — method, URL, status, duration, headers, bodies. Bodies are stored raw (post JSON-parse + redact) up to `bodyMaxBytes` (default 20KB); larger payloads collapse at capture time to `{ "${str}": { len, preview } }`. Sensitive headers / body keys are redacted at capture time (`Authorization`, `Cookie`, `password`, `token`, etc. — configurable). Listing tools accept standard `path` / `depth` / `maxBytes` projection args (default depth 3 — entries expanded, headers and bodies collapse to `${obj}` markers); drill into a body via `path: '[-1:][0].response.body'` or bump `depth` to expand inline. WebSocket, Metro, and symbolicate traffic are auto-ignored.
|
|
308
318
|
|
|
309
319
|
```ts
|
|
310
320
|
networkModule({
|
|
@@ -318,11 +328,13 @@ networkModule({
|
|
|
318
328
|
|
|
319
329
|
### query
|
|
320
330
|
|
|
321
|
-
React Query cache inspection: list cached queries, fetch cached data by key, get stats, and run `invalidate
|
|
331
|
+
React Query cache inspection + mutation: list cached queries, fetch cached data by key, get stats, and run `mutate({ action: 'invalidate' | 'refetch' | 'remove' | 'reset', key? })` against specific keys or the whole cache. `get_data` accepts standard `path` / `depth` / `maxBytes` projection args — heavy `data` collapses to `${obj}`/`${arr}` markers by default; drill via `path: 'data.user.email'`.
|
|
322
332
|
|
|
323
333
|
### storage
|
|
324
334
|
|
|
325
|
-
Reads and writes to one or more named key-value stores.
|
|
335
|
+
Reads and writes to one or more named key-value stores. Values are JSON-parsed on read when possible. `get_item` and `get_all` accept standard `path` / `depth` / `maxBytes` projection args — heavy nested values collapse to `${obj}`/`${arr}` markers; drill via `path: 'session.user.email'` (for `get_all`) or `path: 'value.user.email'` (for `get_item`, since the response wraps as `{ key, value }`).
|
|
336
|
+
|
|
337
|
+
Each store is a `{ name, adapter }` pair; the adapter can wrap MMKV, AsyncStorage, or any custom implementation that provides at least a `get`:
|
|
326
338
|
|
|
327
339
|
```ts
|
|
328
340
|
interface StorageAdapter {
|
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":"
|
|
1
|
+
{"version":3,"file":"McpProvider.d.ts","sourceRoot":"","sources":["../../../../src/client/contexts/McpContext/McpProvider.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAgBtE,eAAO,MAAM,WAAW,8EAQrB,gBAAgB,oGAgElB,CAAC"}
|
|
@@ -14,15 +14,15 @@ const navigation_1 = require("../../../modules/navigation");
|
|
|
14
14
|
const network_1 = require("../../../modules/network");
|
|
15
15
|
const reactQuery_1 = require("../../../modules/reactQuery");
|
|
16
16
|
const storage_1 = require("../../../modules/storage");
|
|
17
|
+
const core_1 = require("../../../shared/rn/core");
|
|
17
18
|
const McpContext_1 = require("./McpContext");
|
|
18
|
-
// Lazy-
|
|
19
|
-
// not pull react-native into scope.
|
|
20
|
-
//
|
|
19
|
+
// Lazy-resolve View so importing this file from Node (e.g. the server entry)
|
|
20
|
+
// does not pull react-native into scope. `getRN` from shared/rn handles the
|
|
21
|
+
// require + caching.
|
|
21
22
|
let ViewComponent;
|
|
22
23
|
const getView = () => {
|
|
23
24
|
if (!ViewComponent) {
|
|
24
|
-
|
|
25
|
-
ViewComponent = require('react-native').View;
|
|
25
|
+
ViewComponent = (0, core_1.getRN)().View;
|
|
26
26
|
}
|
|
27
27
|
return ViewComponent;
|
|
28
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpProvider.js","sourceRoot":"","sources":["../../../../src/client/contexts/McpContext/McpProvider.ts"],"names":[],"mappings":";;;AAAA,iCAAsF;AAEtF,uDAAoD;AACpD,2CAA8C;AAC9C,+CAAkD;AAClD,6CAAgD;AAChD,6CAAgD;AAChD,mDAAsD;AACtD,+CAAkD;AAClD,6CAAgD;AAChD,qDAAwD;AACxD,+CAAkD;AAClD,qDAAwD;AACxD,+CAAkD;
|
|
1
|
+
{"version":3,"file":"McpProvider.js","sourceRoot":"","sources":["../../../../src/client/contexts/McpContext/McpProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,EAEL,KAAK,aAAa,EAKnB,MAAM,mBAAmB,CAAC;
|
|
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;AAuI3B,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"}
|
|
@@ -4,6 +4,8 @@ exports.McpClient = void 0;
|
|
|
4
4
|
const connection_1 = require("../../client/utils/connection");
|
|
5
5
|
const moduleRunner_1 = require("../../client/utils/moduleRunner");
|
|
6
6
|
const protocol_1 = require("../../shared/protocol");
|
|
7
|
+
const core_1 = require("../../shared/rn/core");
|
|
8
|
+
const deviceInfo_1 = require("../../shared/rn/deviceInfo");
|
|
7
9
|
const TAG = '\x1b[1;35m[rn-mcp-kit]\x1b[0m';
|
|
8
10
|
const ARROW_IN = '\x1b[36m→\x1b[0m';
|
|
9
11
|
const ARROW_OUT = '\x1b[32m←\x1b[0m';
|
|
@@ -49,10 +51,10 @@ const isUsefulString = (value) => {
|
|
|
49
51
|
// script URL is a local file and `bundleLoadedFromServer` is false; we skip
|
|
50
52
|
// the field in that case so Metro-facing tools fail fast.
|
|
51
53
|
const detectDevServer = () => {
|
|
54
|
+
const getDevServer = (0, core_1.loadRNInternal)('Libraries/Core/Devtools/getDevServer');
|
|
55
|
+
if (typeof getDevServer !== 'function')
|
|
56
|
+
return undefined;
|
|
52
57
|
try {
|
|
53
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
54
|
-
const mod = require('react-native/Libraries/Core/Devtools/getDevServer');
|
|
55
|
-
const getDevServer = (mod.default ?? mod);
|
|
56
58
|
const info = getDevServer();
|
|
57
59
|
if (!info.bundleLoadedFromServer || typeof info.url !== 'string') {
|
|
58
60
|
return undefined;
|
|
@@ -73,53 +75,45 @@ const detectDevServer = () => {
|
|
|
73
75
|
};
|
|
74
76
|
const autoDetectIdentity = () => {
|
|
75
77
|
const out = {};
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
// RN is optional at this layer — SDK / tests may pull this module without
|
|
79
|
+
// a React Native runtime. Skip the platform field rather than throwing.
|
|
80
|
+
const RN = (0, core_1.loadRN)();
|
|
81
|
+
if (RN) {
|
|
82
|
+
const os = RN.Platform?.OS;
|
|
80
83
|
if (typeof os === 'string') {
|
|
81
84
|
out.platform = os;
|
|
82
85
|
}
|
|
83
86
|
}
|
|
84
|
-
catch {
|
|
85
|
-
// not running inside a React Native bundle — that's fine
|
|
86
|
-
}
|
|
87
87
|
const devServer = detectDevServer();
|
|
88
88
|
if (devServer) {
|
|
89
89
|
out.devServer = devServer;
|
|
90
90
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
const
|
|
100
|
-
const
|
|
101
|
-
const
|
|
102
|
-
|
|
91
|
+
// react-native-device-info is optional. When absent the identity stays
|
|
92
|
+
// partial (just platform + devServer) — both the handshake and the
|
|
93
|
+
// device module tolerate the missing package the same way.
|
|
94
|
+
const DI = (0, deviceInfo_1.loadDeviceInfo)();
|
|
95
|
+
if (DI) {
|
|
96
|
+
const appName = (0, deviceInfo_1.callDI)(DI.getApplicationName);
|
|
97
|
+
const appVersion = (0, deviceInfo_1.callDI)(DI.getVersion);
|
|
98
|
+
const bundleId = (0, deviceInfo_1.callDI)(DI.getBundleId) ?? (0, deviceInfo_1.callDI)(DI.getBundleIdSync);
|
|
99
|
+
const rawDeviceName = (0, deviceInfo_1.callDI)(DI.getDeviceNameSync);
|
|
100
|
+
const model = (0, deviceInfo_1.callDI)(DI.getModel);
|
|
101
|
+
const manufacturer = (0, deviceInfo_1.callDI)(DI.getManufacturerSync) ?? (0, deviceInfo_1.callDI)(DI.getBrand);
|
|
102
|
+
const deviceId = (0, deviceInfo_1.callDI)(DI.getUniqueIdSync);
|
|
103
|
+
if (typeof appName === 'string')
|
|
103
104
|
out.appName = appName;
|
|
104
|
-
|
|
105
|
-
if (typeof appVersion === 'string') {
|
|
105
|
+
if (typeof appVersion === 'string')
|
|
106
106
|
out.appVersion = appVersion;
|
|
107
|
-
|
|
108
|
-
if (typeof bundleId === 'string') {
|
|
107
|
+
if (typeof bundleId === 'string')
|
|
109
108
|
out.bundleId = bundleId;
|
|
110
|
-
}
|
|
111
109
|
if (isUsefulString(rawDeviceName)) {
|
|
112
110
|
out.label = rawDeviceName;
|
|
113
111
|
}
|
|
114
112
|
else if (isUsefulString(model)) {
|
|
115
113
|
out.label = isUsefulString(manufacturer) ? `${manufacturer} ${model}` : model;
|
|
116
114
|
}
|
|
117
|
-
if (typeof deviceId === 'string')
|
|
115
|
+
if (typeof deviceId === 'string')
|
|
118
116
|
out.deviceId = deviceId;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
catch {
|
|
122
|
-
// react-native-device-info not installed — identity stays partial
|
|
123
117
|
}
|
|
124
118
|
return out;
|
|
125
119
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpClient.js","sourceRoot":"","sources":["../../../src/client/core/McpClient.ts"],"names":[],"mappings":";;;AACA,0DAA0D;AAC1D,8DAA2D;AAC3D,gDAO2B;
|
|
1
|
+
{"version":3,"file":"McpClient.js","sourceRoot":"","sources":["../../../src/client/core/McpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAYvD,eAAO,MAAM,WAAW,QAAO,SA6C9B,CAAC"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.alertModule = void 0;
|
|
4
|
+
const core_1 = require("../../shared/rn/core");
|
|
4
5
|
const ALERT_TIMEOUT = 60_000;
|
|
5
6
|
const alertModule = () => {
|
|
6
|
-
const getRN = () => {
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports
|
|
8
|
-
return require('react-native');
|
|
9
|
-
};
|
|
10
7
|
return {
|
|
11
8
|
description: 'Show native Alert.alert dialogs and get back which button was pressed.',
|
|
12
9
|
name: 'alert',
|
|
@@ -14,7 +11,7 @@ const alertModule = () => {
|
|
|
14
11
|
show: {
|
|
15
12
|
description: 'Show an alert dialog; returns { button, index }.',
|
|
16
13
|
handler: (args) => {
|
|
17
|
-
const { Alert } = getRN();
|
|
14
|
+
const { Alert } = (0, core_1.getRN)();
|
|
18
15
|
const rawButtons = args.buttons;
|
|
19
16
|
const buttons = rawButtons
|
|
20
17
|
? rawButtons.map((b) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AAEzC,MAAM,aAAa,GAAG,MAAM,CAAC;AAStB,MAAM,WAAW,GAAG,GAAc,EAAE;IACzC,OAAO;QACL,WAAW,EAAE,wEAAwE;QACrF,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,WAAW,EAAE,kDAAkD;gBAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,YAAK,GAAE,CAAC;oBAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAkD,CAAC;oBAC3E,MAAM,OAAO,GAAkB,UAAU;wBACvC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;4BACnB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjD,CAAC,CAAC;wBACJ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC7B,KAAK,CAAC,KAAK,CACR,IAAI,CAAC,KAAgB,IAAI,OAAO,EAChC,IAAI,CAAC,OAAkB,IAAI,EAAE,EAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;4BACzB,OAAO;gCACL,OAAO,EAAE,GAAG,EAAE;oCACZ,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gCACvC,CAAC;gCACD,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;gCAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;6BACf,CAAC;wBACJ,CAAC,CAAC,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,WAAW,EAAE;oBACX,OAAO,EAAE;wBACP,WAAW,EAAE,0EAA0E;wBACvF,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAChF,IAAI,EAAE,OAAO;qBACd;oBACD,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACvD,KAAK,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACvD;gBACD,OAAO,EAAE,aAAa;aACvB;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AA7CW,QAAA,WAAW,eA6CtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQvD,OAAO,EAAE,KAAK,oBAAoB,EAAgC,MAAM,SAAS,CAAC;AAkFlF,eAAO,MAAM,aAAa,aAAc,oBAAoB,KAAG,SAuD9D,CAAC"}
|
|
@@ -1,53 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.consoleModule = void 0;
|
|
4
|
-
const
|
|
4
|
+
const projectValue_1 = require("../../shared/projection/projectValue");
|
|
5
5
|
const ALL_LEVELS = ['debug', 'error', 'info', 'log', 'warn'];
|
|
6
6
|
const DEFAULT_MAX_ENTRIES = 100;
|
|
7
7
|
const DEFAULT_STACK_LEVELS = ['error', 'warn'];
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (typeof arg === 'symbol') {
|
|
15
|
-
return arg.toString();
|
|
16
|
-
}
|
|
17
|
-
if (typeof arg !== 'object')
|
|
18
|
-
return arg;
|
|
19
|
-
if (arg instanceof Error) {
|
|
20
|
-
return {
|
|
21
|
-
message: arg.message,
|
|
22
|
-
name: arg.name,
|
|
23
|
-
stack: arg.stack,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
if (arg instanceof Date) {
|
|
27
|
-
return arg.toISOString();
|
|
28
|
-
}
|
|
29
|
-
if (arg instanceof RegExp) {
|
|
30
|
-
return arg.toString();
|
|
31
|
-
}
|
|
32
|
-
if (seen.has(arg)) {
|
|
33
|
-
return '[Circular]';
|
|
34
|
-
}
|
|
35
|
-
seen.add(arg);
|
|
36
|
-
if (Array.isArray(arg)) {
|
|
37
|
-
return arg.map((item) => {
|
|
38
|
-
return serializeArg(item, seen);
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
const className = arg.constructor?.name;
|
|
42
|
-
const serialized = {};
|
|
43
|
-
if (className && className !== 'Object') {
|
|
44
|
-
serialized.__class = className;
|
|
45
|
-
}
|
|
46
|
-
for (const key of Object.keys(arg)) {
|
|
47
|
-
serialized[key] = serializeArg(arg[key], seen);
|
|
48
|
-
}
|
|
49
|
-
return serialized;
|
|
50
|
-
};
|
|
8
|
+
// Default depth 3 — top level is array of entries, level 2 expands each
|
|
9
|
+
// entry (id/level/timestamp inline, args/stack still markers), level 3
|
|
10
|
+
// opens the args array (primitive args inline, nested objects → ${obj}
|
|
11
|
+
// markers). Drill deeper via `path` or bump `depth`.
|
|
12
|
+
const CONSOLE_DEFAULT_DEPTH = 3;
|
|
13
|
+
const PROJECTION_SCHEMA = (0, projectValue_1.makeProjectionSchema)(CONSOLE_DEFAULT_DEPTH);
|
|
51
14
|
const captureStack = () => {
|
|
52
15
|
const stack = new Error().stack;
|
|
53
16
|
if (!stack)
|
|
@@ -64,16 +27,20 @@ const captureStack = () => {
|
|
|
64
27
|
// closes that gap. The factory below adopts the pre-existing buffer and
|
|
65
28
|
// applies caller-supplied options retroactively.
|
|
66
29
|
const buffer = [];
|
|
30
|
+
let nextId = 1;
|
|
67
31
|
let maxEntries = DEFAULT_MAX_ENTRIES;
|
|
68
32
|
let capturedLevels = new Set(ALL_LEVELS);
|
|
69
33
|
let stackLevels = new Set(DEFAULT_STACK_LEVELS);
|
|
70
34
|
const addEntry = (level, args) => {
|
|
71
35
|
if (!capturedLevels.has(level))
|
|
72
36
|
return;
|
|
37
|
+
// Args are stored RAW (no per-arg serializer). Projection — depth walk,
|
|
38
|
+
// marker collapse, cycle / class detection, redaction — runs at query
|
|
39
|
+
// time via the shared `projectValue`. This keeps cold-start capture
|
|
40
|
+
// cheap and lets the agent drill any path / depth at query time.
|
|
73
41
|
const entry = {
|
|
74
|
-
args
|
|
75
|
-
|
|
76
|
-
}),
|
|
42
|
+
args,
|
|
43
|
+
id: nextId++,
|
|
77
44
|
level,
|
|
78
45
|
timestamp: new Date().toISOString(),
|
|
79
46
|
};
|
|
@@ -99,6 +66,14 @@ const installPatches = () => {
|
|
|
99
66
|
}
|
|
100
67
|
};
|
|
101
68
|
installPatches();
|
|
69
|
+
const project = (entries, args) => {
|
|
70
|
+
return (0, projectValue_1.applyProjection)(entries, args, projectValue_1.projectAsValue, CONSOLE_DEFAULT_DEPTH);
|
|
71
|
+
};
|
|
72
|
+
const filterByLevel = (level) => {
|
|
73
|
+
return buffer.filter((entry) => {
|
|
74
|
+
return entry.level === level;
|
|
75
|
+
});
|
|
76
|
+
};
|
|
102
77
|
const consoleModule = (options) => {
|
|
103
78
|
// Apply options retroactively to the already-running buffer.
|
|
104
79
|
if (typeof options?.maxEntries === 'number') {
|
|
@@ -119,23 +94,13 @@ const consoleModule = (options) => {
|
|
|
119
94
|
else if (Array.isArray(options?.stackTrace)) {
|
|
120
95
|
stackLevels = new Set(options.stackTrace);
|
|
121
96
|
}
|
|
122
|
-
const filterByLevel = (level, slice) => {
|
|
123
|
-
const filtered = buffer.filter((entry) => {
|
|
124
|
-
return entry.level === level;
|
|
125
|
-
});
|
|
126
|
-
return (0, slice_1.applySlice)(filtered, (0, slice_1.parseSliceArg)(slice));
|
|
127
|
-
};
|
|
128
|
-
const sliceSchema = {
|
|
129
|
-
description: (0, slice_1.sliceSchemaDescription)('Default omitted → every matching entry is returned.'),
|
|
130
|
-
examples: [[-10], [-20, -10], [0, 50]],
|
|
131
|
-
type: 'array',
|
|
132
|
-
};
|
|
133
97
|
return {
|
|
134
98
|
description: `Ring buffer of console.log/warn/error/info/debug.
|
|
135
99
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
100
|
+
Each entry carries a monotonic numeric \`id\`. Args are stored raw; the
|
|
101
|
+
shared projection runs at query time. Stack traces captured per level
|
|
102
|
+
(default error+warn). Listing tools accept path / depth / maxBytes
|
|
103
|
+
(default depth ${CONSOLE_DEFAULT_DEPTH}). Capture starts at module-import time so cold-start
|
|
139
104
|
logs are not lost. Buffer size and captured levels are configurable via
|
|
140
105
|
consoleModule options.`,
|
|
141
106
|
name: 'console',
|
|
@@ -147,60 +112,20 @@ consoleModule options.`,
|
|
|
147
112
|
return { success: true };
|
|
148
113
|
},
|
|
149
114
|
},
|
|
150
|
-
get_debug: {
|
|
151
|
-
description: 'Return console.debug entries.',
|
|
152
|
-
handler: (args) => {
|
|
153
|
-
return filterByLevel('debug', args.slice);
|
|
154
|
-
},
|
|
155
|
-
inputSchema: {
|
|
156
|
-
slice: sliceSchema,
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
|
-
get_errors: {
|
|
160
|
-
description: 'Return console.error entries.',
|
|
161
|
-
handler: (args) => {
|
|
162
|
-
return filterByLevel('error', args.slice);
|
|
163
|
-
},
|
|
164
|
-
inputSchema: {
|
|
165
|
-
slice: sliceSchema,
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
get_info: {
|
|
169
|
-
description: 'Return console.info entries.',
|
|
170
|
-
handler: (args) => {
|
|
171
|
-
return filterByLevel('info', args.slice);
|
|
172
|
-
},
|
|
173
|
-
inputSchema: {
|
|
174
|
-
slice: sliceSchema,
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
115
|
get_logs: {
|
|
178
|
-
description: 'Return
|
|
116
|
+
description: 'Return log entries, optionally filtered by level.',
|
|
179
117
|
handler: (args) => {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
return entry.level === args.level;
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
return (0, slice_1.applySlice)(result, (0, slice_1.parseSliceArg)(args.slice));
|
|
118
|
+
const level = typeof args.level === 'string' ? args.level : undefined;
|
|
119
|
+
const result = level ? filterByLevel(level) : buffer;
|
|
120
|
+
return project(result, args);
|
|
187
121
|
},
|
|
188
122
|
inputSchema: {
|
|
123
|
+
...PROJECTION_SCHEMA,
|
|
189
124
|
level: {
|
|
190
|
-
description: 'Filter by level.',
|
|
125
|
+
description: 'Filter by level. Omit for all levels.',
|
|
191
126
|
examples: ['log', 'warn', 'error', 'info', 'debug'],
|
|
192
127
|
type: 'string',
|
|
193
128
|
},
|
|
194
|
-
slice: sliceSchema,
|
|
195
|
-
},
|
|
196
|
-
},
|
|
197
|
-
get_warnings: {
|
|
198
|
-
description: 'Return console.warn entries.',
|
|
199
|
-
handler: (args) => {
|
|
200
|
-
return filterByLevel('warn', args.slice);
|
|
201
|
-
},
|
|
202
|
-
inputSchema: {
|
|
203
|
-
slice: sliceSchema,
|
|
204
129
|
},
|
|
205
130
|
},
|
|
206
131
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/console/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;CACnC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/console/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;CACnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/modules/device/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/modules/device/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AA2CvD,eAAO,MAAM,YAAY,QAAO,SAwP/B,CAAC"}
|