android-dev-mcp 1.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/LICENSE +21 -0
- package/README.md +90 -0
- package/dist/adb/accessibility.d.ts +10 -0
- package/dist/adb/accessibility.d.ts.map +1 -0
- package/dist/adb/accessibility.js +52 -0
- package/dist/adb/accessibility.js.map +1 -0
- package/dist/adb/index.d.ts +4 -0
- package/dist/adb/index.d.ts.map +1 -0
- package/dist/adb/index.js +4 -0
- package/dist/adb/index.js.map +1 -0
- package/dist/adb/liveTest.d.ts +39 -0
- package/dist/adb/liveTest.d.ts.map +1 -0
- package/dist/adb/liveTest.js +148 -0
- package/dist/adb/liveTest.js.map +1 -0
- package/dist/adb/logcatAnalysis.d.ts +17 -0
- package/dist/adb/logcatAnalysis.d.ts.map +1 -0
- package/dist/adb/logcatAnalysis.js +85 -0
- package/dist/adb/logcatAnalysis.js.map +1 -0
- package/dist/adb/ocr.d.ts +6 -0
- package/dist/adb/ocr.d.ts.map +1 -0
- package/dist/adb/ocr.js +16 -0
- package/dist/adb/ocr.js.map +1 -0
- package/dist/adb/operations.d.ts +48 -0
- package/dist/adb/operations.d.ts.map +1 -0
- package/dist/adb/operations.js +119 -0
- package/dist/adb/operations.js.map +1 -0
- package/dist/adb/runner.d.ts +57 -0
- package/dist/adb/runner.d.ts.map +1 -0
- package/dist/adb/runner.js +135 -0
- package/dist/adb/runner.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +2 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +4 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +567 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/security/allowlist.d.ts +4 -0
- package/dist/security/allowlist.d.ts.map +1 -0
- package/dist/security/allowlist.js +59 -0
- package/dist/security/allowlist.js.map +1 -0
- package/dist/security/index.d.ts +3 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +3 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/timeout.d.ts +3 -0
- package/dist/security/timeout.d.ts.map +1 -0
- package/dist/security/timeout.js +25 -0
- package/dist/security/timeout.js.map +1 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server-http.d.ts +3 -0
- package/dist/server-http.d.ts.map +1 -0
- package/dist/server-http.js +51 -0
- package/dist/server-http.js.map +1 -0
- package/dist/tools/definitions.d.ts +3 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +110 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/handlers.d.ts +139 -0
- package/dist/tools/handlers.d.ts.map +1 -0
- package/dist/tools/handlers.js +155 -0
- package/dist/tools/handlers.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/schemas.d.ts +462 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +164 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { listDevices, shell, shellBuffer, adbLogcat } from './runner.js';
|
|
2
|
+
import { extractTextFromImage } from './ocr.js';
|
|
3
|
+
import { analyzeLogcat, } from './logcatAnalysis.js';
|
|
4
|
+
import { findNodeCenterByText } from './accessibility.js';
|
|
5
|
+
import { isCommandAllowed } from '../security/allowlist.js';
|
|
6
|
+
export { listDevices };
|
|
7
|
+
export async function execShell(command, options = {}) {
|
|
8
|
+
if (!isCommandAllowed(command)) {
|
|
9
|
+
throw new Error(`Shell command not allowed by allowlist: "${command.slice(0, 80)}..."`);
|
|
10
|
+
}
|
|
11
|
+
return shell(command, options);
|
|
12
|
+
}
|
|
13
|
+
export async function launchApp(packageName, activity, options = {}) {
|
|
14
|
+
const pkg = packageName.trim();
|
|
15
|
+
if (!pkg || /[^a-zA-Z0-9._]/.test(pkg)) {
|
|
16
|
+
throw new Error(`Invalid package name: ${packageName}`);
|
|
17
|
+
}
|
|
18
|
+
const cmd = activity
|
|
19
|
+
? `am start -n ${pkg}/${activity}`
|
|
20
|
+
: `am start -a android.intent.action.MAIN -p ${pkg}`;
|
|
21
|
+
return shell(cmd, options);
|
|
22
|
+
}
|
|
23
|
+
export async function tap(x, y, options = {}) {
|
|
24
|
+
return shell(`input tap ${Math.round(x)} ${Math.round(y)}`, options);
|
|
25
|
+
}
|
|
26
|
+
export async function swipe(x1, y1, x2, y2, durationMs, options = {}) {
|
|
27
|
+
const d = durationMs != null && durationMs > 0 ? Math.round(durationMs) : 300;
|
|
28
|
+
return shell(`input swipe ${Math.round(x1)} ${Math.round(y1)} ${Math.round(x2)} ${Math.round(y2)} ${d}`, options);
|
|
29
|
+
}
|
|
30
|
+
export async function inputText(text, options = {}) {
|
|
31
|
+
const escaped = text
|
|
32
|
+
.replace(/\\/g, '\\\\')
|
|
33
|
+
.replace(/"/g, '\\"')
|
|
34
|
+
.replace(/\s/g, '%s');
|
|
35
|
+
return shell(`input text "${escaped}"`, options);
|
|
36
|
+
}
|
|
37
|
+
export async function screencap(options = {}) {
|
|
38
|
+
const buf = await shellBuffer('screencap -p', options);
|
|
39
|
+
return buf.toString('base64');
|
|
40
|
+
}
|
|
41
|
+
/** Screenshot + optional OCR. */
|
|
42
|
+
export async function screencapAnalyze(options = {}) {
|
|
43
|
+
const { extractText = true, ...adbOpts } = options;
|
|
44
|
+
const buf = await shellBuffer('screencap -p', adbOpts);
|
|
45
|
+
const imageBase64 = buf.toString('base64');
|
|
46
|
+
if (!extractText) {
|
|
47
|
+
return { imageBase64, extractedText: '' };
|
|
48
|
+
}
|
|
49
|
+
const ocr = await extractTextFromImage(buf);
|
|
50
|
+
return {
|
|
51
|
+
imageBase64,
|
|
52
|
+
extractedText: ocr.text,
|
|
53
|
+
confidence: ocr.confidence,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export async function currentActivity(options = {}) {
|
|
57
|
+
const out = await shell('dumpsys window windows', options);
|
|
58
|
+
const focusMatch = out.match(/mCurrentFocus[=\s]*Window\{[^}]*\s+(\S+\/\S+)/);
|
|
59
|
+
if (focusMatch)
|
|
60
|
+
return focusMatch[1].trim();
|
|
61
|
+
const focusedMatch = out.match(/mFocusedApp[=\s]*.*?(\S+\/\S+)/s);
|
|
62
|
+
if (focusedMatch)
|
|
63
|
+
return focusedMatch[1].trim();
|
|
64
|
+
return '';
|
|
65
|
+
}
|
|
66
|
+
export async function keyevent(keycode, options = {}) {
|
|
67
|
+
return shell(`input keyevent ${Math.round(keycode)}`, options);
|
|
68
|
+
}
|
|
69
|
+
export async function screenrecord(path, durationSec, options = {}) {
|
|
70
|
+
const d = durationSec != null ? Math.min(Math.max(1, Math.round(durationSec)), 180) : 180;
|
|
71
|
+
return shell(`screenrecord --time-limit ${d} ${path}`, options);
|
|
72
|
+
}
|
|
73
|
+
export async function homeButton(options = {}) {
|
|
74
|
+
return shell('am start -W -c android.intent.category.HOME -a android.intent.action.MAIN', options);
|
|
75
|
+
}
|
|
76
|
+
export async function logcatErrors(level = 'EF', maxLines, options = {}) {
|
|
77
|
+
const filter = level === 'EF' ? '*:E' : `*:${level}`;
|
|
78
|
+
const output = await adbLogcat(['-d', '-v', 'brief', filter], options);
|
|
79
|
+
const lines = output.split('\n').filter((l) => l.trim().length > 0);
|
|
80
|
+
const limited = maxLines != null && maxLines > 0 ? lines.slice(-maxLines) : lines;
|
|
81
|
+
return { output: limited.join('\n'), lines: limited };
|
|
82
|
+
}
|
|
83
|
+
export async function logcatCrashes(options = {}) {
|
|
84
|
+
const output = await adbLogcat(['-d', '-v', 'brief'], options);
|
|
85
|
+
const analysis = analyzeLogcat(output);
|
|
86
|
+
return {
|
|
87
|
+
output,
|
|
88
|
+
hasCrash: analysis.hasCrash,
|
|
89
|
+
crashSnippet: analysis.crashSnippet,
|
|
90
|
+
summary: analysis.summary,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export async function logcatAnalyze(options = {}) {
|
|
94
|
+
const output = await adbLogcat(['-d', '-v', 'brief'], options);
|
|
95
|
+
const analysis = analyzeLogcat(output);
|
|
96
|
+
return {
|
|
97
|
+
errorCount: analysis.errorCount,
|
|
98
|
+
fatalCount: analysis.fatalCount,
|
|
99
|
+
hasCrash: analysis.hasCrash,
|
|
100
|
+
crashSnippet: analysis.crashSnippet,
|
|
101
|
+
summary: analysis.summary,
|
|
102
|
+
errorLines: analysis.errorLines,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
const UI_DUMP_PATH = '/sdcard/window_dump.xml';
|
|
106
|
+
export async function uiDump(options = {}) {
|
|
107
|
+
await shell(`uiautomator dump ${UI_DUMP_PATH}`, options);
|
|
108
|
+
return shell(`cat ${UI_DUMP_PATH}`, options);
|
|
109
|
+
}
|
|
110
|
+
export async function findAndTap(text, options = {}) {
|
|
111
|
+
const xml = await uiDump(options);
|
|
112
|
+
const center = findNodeCenterByText(xml, text);
|
|
113
|
+
if (!center) {
|
|
114
|
+
return { tapped: false, error: `No node found with text matching: ${text}` };
|
|
115
|
+
}
|
|
116
|
+
await shell(`input tap ${center.x} ${center.y}`, options);
|
|
117
|
+
return { tapped: true, x: center.x, y: center.y };
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/adb/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { DeviceInfo } from '../types.js';
|
|
2
|
+
import type { AdbOptions } from '../types.js';
|
|
3
|
+
export declare function runAdb(args: string[], options?: AdbOptions): Promise<{
|
|
4
|
+
stdout: string;
|
|
5
|
+
stderr: string;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function listDevices(options?: AdbOptions): Promise<DeviceInfo[]>;
|
|
8
|
+
export declare function shell(command: string, options?: AdbOptions): Promise<string>;
|
|
9
|
+
export declare function shellBuffer(command: string, options?: AdbOptions): Promise<Buffer>;
|
|
10
|
+
export declare function adbConnect(host: string, options?: AdbOptions): Promise<{
|
|
11
|
+
stdout: string;
|
|
12
|
+
stderr: string;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function adbDisconnect(host?: string, options?: AdbOptions): Promise<{
|
|
15
|
+
stdout: string;
|
|
16
|
+
stderr: string;
|
|
17
|
+
}>;
|
|
18
|
+
export declare function adbKillServer(options?: AdbOptions): Promise<{
|
|
19
|
+
stdout: string;
|
|
20
|
+
stderr: string;
|
|
21
|
+
}>;
|
|
22
|
+
export declare function adbStartServer(options?: AdbOptions): Promise<{
|
|
23
|
+
stdout: string;
|
|
24
|
+
stderr: string;
|
|
25
|
+
}>;
|
|
26
|
+
export declare function adbPush(localPath: string, remotePath: string, options?: AdbOptions): Promise<{
|
|
27
|
+
stdout: string;
|
|
28
|
+
stderr: string;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function adbPull(remotePath: string, options?: AdbOptions): Promise<{
|
|
31
|
+
stdout: string;
|
|
32
|
+
stderr: string;
|
|
33
|
+
}>;
|
|
34
|
+
export declare function adbInstall(apkPath: string, flags?: string[], options?: AdbOptions): Promise<{
|
|
35
|
+
stdout: string;
|
|
36
|
+
stderr: string;
|
|
37
|
+
}>;
|
|
38
|
+
export declare function adbUninstall(packageName: string, keepData?: boolean, options?: AdbOptions): Promise<{
|
|
39
|
+
stdout: string;
|
|
40
|
+
stderr: string;
|
|
41
|
+
}>;
|
|
42
|
+
export declare function adbLogcat(args?: string[], options?: AdbOptions): Promise<string>;
|
|
43
|
+
export declare function adbBackup(args: string[], options?: AdbOptions): Promise<{
|
|
44
|
+
stdout: string;
|
|
45
|
+
stderr: string;
|
|
46
|
+
}>;
|
|
47
|
+
export declare function adbRestore(backupPath: string, options?: AdbOptions): Promise<{
|
|
48
|
+
stdout: string;
|
|
49
|
+
stderr: string;
|
|
50
|
+
}>;
|
|
51
|
+
export declare function adbReboot(mode?: 'recovery' | 'bootloader', options?: AdbOptions): Promise<{
|
|
52
|
+
stdout: string;
|
|
53
|
+
stderr: string;
|
|
54
|
+
}>;
|
|
55
|
+
export declare function adbGetState(options?: AdbOptions): Promise<string>;
|
|
56
|
+
export declare function adbGetSerialNo(options?: AdbOptions): Promise<string>;
|
|
57
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/adb/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { withTimeout, clampTimeout } from '../security/index.js';
|
|
3
|
+
const ADB_BINARY = 'adb';
|
|
4
|
+
function buildArgs(deviceId, ...rest) {
|
|
5
|
+
const args = [];
|
|
6
|
+
if (deviceId) {
|
|
7
|
+
args.push('-s', deviceId);
|
|
8
|
+
}
|
|
9
|
+
args.push(...rest);
|
|
10
|
+
return args;
|
|
11
|
+
}
|
|
12
|
+
export async function runAdb(args, options = {}) {
|
|
13
|
+
const timeoutMs = clampTimeout(options.timeoutMs);
|
|
14
|
+
return withTimeout(new Promise((resolve, reject) => {
|
|
15
|
+
const proc = spawn(ADB_BINARY, args, {
|
|
16
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
17
|
+
});
|
|
18
|
+
let stdout = '';
|
|
19
|
+
let stderr = '';
|
|
20
|
+
proc.stdout?.on('data', (d) => (stdout += d.toString()));
|
|
21
|
+
proc.stderr?.on('data', (d) => (stderr += d.toString()));
|
|
22
|
+
proc.on('error', (err) => reject(err));
|
|
23
|
+
proc.on('close', (code) => {
|
|
24
|
+
if (code === 0)
|
|
25
|
+
resolve({ stdout, stderr });
|
|
26
|
+
else
|
|
27
|
+
reject(new Error(`adb exited ${code}: ${stderr || stdout}`));
|
|
28
|
+
});
|
|
29
|
+
}), timeoutMs);
|
|
30
|
+
}
|
|
31
|
+
export async function listDevices(options = {}) {
|
|
32
|
+
const args = buildArgs(undefined, 'devices', '-l');
|
|
33
|
+
const { stdout } = await runAdb(args, options);
|
|
34
|
+
const lines = stdout.split('\n').filter((l) => l.trim());
|
|
35
|
+
const devices = [];
|
|
36
|
+
for (let i = 0; i < lines.length; i++) {
|
|
37
|
+
const line = lines[i];
|
|
38
|
+
if (line.startsWith('List of devices'))
|
|
39
|
+
continue;
|
|
40
|
+
const parts = line.split(/\s+/).filter(Boolean);
|
|
41
|
+
if (parts.length < 2)
|
|
42
|
+
continue;
|
|
43
|
+
const [id, status] = parts;
|
|
44
|
+
const info = { id, status: status };
|
|
45
|
+
for (let j = 2; j < parts.length; j++) {
|
|
46
|
+
const kv = parts[j];
|
|
47
|
+
const idx = kv.indexOf(':');
|
|
48
|
+
if (idx > 0) {
|
|
49
|
+
const k = kv.slice(0, idx);
|
|
50
|
+
const v = kv.slice(idx + 1);
|
|
51
|
+
if (k === 'model')
|
|
52
|
+
info.model = v;
|
|
53
|
+
else if (k === 'product')
|
|
54
|
+
info.product = v;
|
|
55
|
+
else if (k === 'transport_id')
|
|
56
|
+
info.transportId = v;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
devices.push(info);
|
|
60
|
+
}
|
|
61
|
+
return devices;
|
|
62
|
+
}
|
|
63
|
+
export async function shell(command, options = {}) {
|
|
64
|
+
const args = buildArgs(options.deviceId, 'shell', command);
|
|
65
|
+
const { stdout } = await runAdb(args, options);
|
|
66
|
+
return stdout;
|
|
67
|
+
}
|
|
68
|
+
export async function shellBuffer(command, options = {}) {
|
|
69
|
+
const timeoutMs = clampTimeout(options.timeoutMs);
|
|
70
|
+
return withTimeout(new Promise((resolve, reject) => {
|
|
71
|
+
const args = buildArgs(options.deviceId, 'shell', command);
|
|
72
|
+
const proc = spawn(ADB_BINARY, args, { stdio: ['ignore', 'pipe', 'pipe'] });
|
|
73
|
+
const chunks = [];
|
|
74
|
+
proc.stdout?.on('data', (d) => chunks.push(d));
|
|
75
|
+
proc.stderr?.on('data', (d) => {
|
|
76
|
+
if (d.length)
|
|
77
|
+
reject(new Error(`adb stderr: ${d.toString()}`));
|
|
78
|
+
});
|
|
79
|
+
proc.on('error', reject);
|
|
80
|
+
proc.on('close', (code) => {
|
|
81
|
+
if (code === 0)
|
|
82
|
+
resolve(Buffer.concat(chunks));
|
|
83
|
+
else
|
|
84
|
+
reject(new Error(`adb exited ${code}`));
|
|
85
|
+
});
|
|
86
|
+
}), timeoutMs);
|
|
87
|
+
}
|
|
88
|
+
export async function adbConnect(host, options = {}) {
|
|
89
|
+
return runAdb(['connect', host], options);
|
|
90
|
+
}
|
|
91
|
+
export async function adbDisconnect(host, options = {}) {
|
|
92
|
+
return runAdb(host ? ['disconnect', host] : ['disconnect'], options);
|
|
93
|
+
}
|
|
94
|
+
export async function adbKillServer(options = {}) {
|
|
95
|
+
return runAdb(['kill-server'], options);
|
|
96
|
+
}
|
|
97
|
+
export async function adbStartServer(options = {}) {
|
|
98
|
+
return runAdb(['start-server'], options);
|
|
99
|
+
}
|
|
100
|
+
export async function adbPush(localPath, remotePath, options = {}) {
|
|
101
|
+
return runAdb(buildArgs(options.deviceId, 'push', localPath, remotePath), options);
|
|
102
|
+
}
|
|
103
|
+
export async function adbPull(remotePath, options = {}) {
|
|
104
|
+
return runAdb(buildArgs(options.deviceId, 'pull', remotePath), options);
|
|
105
|
+
}
|
|
106
|
+
export async function adbInstall(apkPath, flags = [], options = {}) {
|
|
107
|
+
return runAdb(buildArgs(options.deviceId, 'install', ...flags, apkPath), options);
|
|
108
|
+
}
|
|
109
|
+
export async function adbUninstall(packageName, keepData = false, options = {}) {
|
|
110
|
+
const args = buildArgs(options.deviceId, 'uninstall', ...(keepData ? ['-k'] : []), packageName);
|
|
111
|
+
return runAdb(args, options);
|
|
112
|
+
}
|
|
113
|
+
export async function adbLogcat(args = [], options = {}) {
|
|
114
|
+
const { stdout } = await runAdb(buildArgs(options.deviceId, 'logcat', ...args), options);
|
|
115
|
+
return stdout;
|
|
116
|
+
}
|
|
117
|
+
export async function adbBackup(args, options = {}) {
|
|
118
|
+
return runAdb(buildArgs(options.deviceId, 'backup', ...args), options);
|
|
119
|
+
}
|
|
120
|
+
export async function adbRestore(backupPath, options = {}) {
|
|
121
|
+
return runAdb(buildArgs(options.deviceId, 'restore', backupPath), options);
|
|
122
|
+
}
|
|
123
|
+
export async function adbReboot(mode, options = {}) {
|
|
124
|
+
const args = mode ? ['reboot', mode] : ['reboot'];
|
|
125
|
+
return runAdb(buildArgs(options.deviceId, ...args), { ...options, timeoutMs: 15000 });
|
|
126
|
+
}
|
|
127
|
+
export async function adbGetState(options = {}) {
|
|
128
|
+
const { stdout } = await runAdb(buildArgs(options.deviceId, 'get-state'), options);
|
|
129
|
+
return stdout.trim();
|
|
130
|
+
}
|
|
131
|
+
export async function adbGetSerialNo(options = {}) {
|
|
132
|
+
const { stdout } = await runAdb(buildArgs(options.deviceId, 'get-serialno'), options);
|
|
133
|
+
return stdout.trim();
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/adb/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACvB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAapE,wBAAgB,YAAY,IAAI,SAAS,CAgtBxC;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAI9C"}
|