@pyrokine/mcp-chrome 2.0.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -43
- package/dist/core/browser-driver.d.ts +118 -1
- package/dist/core/browser-driver.d.ts.map +1 -1
- package/dist/core/browser-driver.js +11 -0
- package/dist/core/browser-driver.js.map +1 -1
- package/dist/core/error-sanitizer.js +2 -2
- package/dist/core/error-sanitizer.js.map +1 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +17 -4
- package/dist/core/errors.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/locator.d.ts.map +1 -1
- package/dist/core/locator.js +4 -3
- package/dist/core/locator.js.map +1 -1
- package/dist/core/session.d.ts +5 -2
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +107 -4
- package/dist/core/session.js.map +1 -1
- package/dist/core/types.d.ts +17 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +57 -4
- package/dist/core/types.js.map +1 -1
- package/dist/core/unified-session.d.ts +29 -9
- package/dist/core/unified-session.d.ts.map +1 -1
- package/dist/core/unified-session.js +226 -18
- package/dist/core/unified-session.js.map +1 -1
- package/dist/core/utils.d.ts +13 -0
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +121 -0
- package/dist/core/utils.js.map +1 -1
- package/dist/extension/bridge.d.ts +37 -22
- package/dist/extension/bridge.d.ts.map +1 -1
- package/dist/extension/bridge.js +256 -96
- package/dist/extension/bridge.js.map +1 -1
- package/dist/extension/http-server.d.ts.map +1 -1
- package/dist/extension/http-server.js +39 -10
- package/dist/extension/http-server.js.map +1 -1
- package/dist/tools/browse.d.ts.map +1 -1
- package/dist/tools/browse.js +160 -55
- package/dist/tools/browse.js.map +1 -1
- package/dist/tools/cookies.d.ts.map +1 -1
- package/dist/tools/cookies.js +8 -11
- package/dist/tools/cookies.js.map +1 -1
- package/dist/tools/evaluate.d.ts.map +1 -1
- package/dist/tools/evaluate.js +53 -30
- package/dist/tools/evaluate.js.map +1 -1
- package/dist/tools/extract.d.ts +1 -0
- package/dist/tools/extract.d.ts.map +1 -1
- package/dist/tools/extract.js +476 -244
- package/dist/tools/extract.js.map +1 -1
- package/dist/tools/input.d.ts.map +1 -1
- package/dist/tools/input.js +798 -441
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/logs.d.ts.map +1 -1
- package/dist/tools/logs.js +79 -31
- package/dist/tools/logs.js.map +1 -1
- package/dist/tools/manage.d.ts +0 -3
- package/dist/tools/manage.d.ts.map +1 -1
- package/dist/tools/manage.js +339 -285
- package/dist/tools/manage.js.map +1 -1
- package/dist/tools/png.d.ts +16 -0
- package/dist/tools/png.d.ts.map +1 -0
- package/dist/tools/png.js +197 -0
- package/dist/tools/png.js.map +1 -0
- package/dist/tools/schema.d.ts +14 -112
- package/dist/tools/schema.d.ts.map +1 -1
- package/dist/tools/schema.js +21 -12
- package/dist/tools/schema.js.map +1 -1
- package/dist/tools/wait.d.ts.map +1 -1
- package/dist/tools/wait.js +73 -13
- package/dist/tools/wait.js.map +1 -1
- package/package.json +11 -11
package/dist/tools/cookies.js
CHANGED
|
@@ -7,10 +7,8 @@
|
|
|
7
7
|
* - delete: 删除指定 cookie
|
|
8
8
|
* - clear: 清空 cookies(支持按域名过滤)
|
|
9
9
|
*/
|
|
10
|
-
import { writeFile } from 'fs/promises';
|
|
11
|
-
import { resolve, sep } from 'path';
|
|
12
10
|
import { z } from 'zod';
|
|
13
|
-
import { formatErrorResponse, formatResponse, getUnifiedSession } from '../core/index.js';
|
|
11
|
+
import { CWD_PATH_PREFIX, formatErrorResponse, formatResponse, getUnifiedSession, resolveScopedOutputPath, TMP_PATH_PREFIX, writePrivateFile, } from '../core/index.js';
|
|
14
12
|
/**
|
|
15
13
|
* cookies 参数 schema
|
|
16
14
|
*/
|
|
@@ -26,7 +24,10 @@ const cookiesSchema = z.object({
|
|
|
26
24
|
httpOnly: z.boolean().optional().describe('httpOnly 属性(set)'),
|
|
27
25
|
sameSite: z.enum(['Strict', 'Lax', 'None']).optional().describe('SameSite 属性(set)'),
|
|
28
26
|
expirationDate: z.number().optional().describe('过期时间戳(set)'),
|
|
29
|
-
output: z
|
|
27
|
+
output: z
|
|
28
|
+
.string()
|
|
29
|
+
.optional()
|
|
30
|
+
.describe(`输出文件路径(get),相对路径默认写入 ${TMP_PATH_PREFIX},持久化到仓库请显式写 ${CWD_PATH_PREFIX}`),
|
|
30
31
|
});
|
|
31
32
|
/**
|
|
32
33
|
* cookies 工具处理器
|
|
@@ -58,16 +59,12 @@ async function handleCookies(args) {
|
|
|
58
59
|
}
|
|
59
60
|
const cookies = (await unifiedSession.getCookies(filter));
|
|
60
61
|
if (args.output) {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
if (!safeOutput.startsWith(cwd + sep) && safeOutput !== cwd) {
|
|
64
|
-
return formatErrorResponse(new Error(`output 路径超出工作目录范围: ${args.output}`));
|
|
65
|
-
}
|
|
66
|
-
await writeFile(safeOutput, JSON.stringify(cookies, null, 2), 'utf-8');
|
|
62
|
+
const outputPath = (await resolveScopedOutputPath(args.output, 'mcp-chrome')).absolutePath;
|
|
63
|
+
await writePrivateFile(outputPath, JSON.stringify(cookies, null, 2), 'utf-8');
|
|
67
64
|
return formatResponse({
|
|
68
65
|
success: true,
|
|
69
66
|
action: 'get',
|
|
70
|
-
output:
|
|
67
|
+
output: outputPath,
|
|
71
68
|
count: cookies.length,
|
|
72
69
|
});
|
|
73
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../src/tools/cookies.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../src/tools/cookies.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/tools/evaluate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/tools/evaluate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AA0MxE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAS5D"}
|
package/dist/tools/evaluate.js
CHANGED
|
@@ -3,12 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 在页面上下文执行 JavaScript
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
import { readFile, writeFile } from 'fs/promises';
|
|
8
|
-
import { tmpdir } from 'os';
|
|
9
|
-
import { join, resolve, sep } from 'path';
|
|
6
|
+
import { readFile } from 'fs/promises';
|
|
10
7
|
import { z } from 'zod';
|
|
11
|
-
import { formatErrorResponse, formatResponse, getUnifiedSession } from '../core/index.js';
|
|
8
|
+
import { CWD_PATH_PREFIX, formatErrorResponse, formatResponse, getUnifiedSession, resolveScopedInputPath, resolveScopedOutputPath, TMP_PATH_PREFIX, writePrivateFile, } from '../core/index.js';
|
|
12
9
|
/**
|
|
13
10
|
* evaluate 参数 schema
|
|
14
11
|
*/
|
|
@@ -17,7 +14,7 @@ const evaluateSchema = z.object({
|
|
|
17
14
|
scriptFile: z
|
|
18
15
|
.string()
|
|
19
16
|
.optional()
|
|
20
|
-
.describe(
|
|
17
|
+
.describe(`从文件读取 JavaScript 代码(与 script 二选一),相对路径默认从 ${TMP_PATH_PREFIX} 解析,仓库内文件请显式写 ${CWD_PATH_PREFIX}`),
|
|
21
18
|
args: z
|
|
22
19
|
.array(z.unknown())
|
|
23
20
|
.optional()
|
|
@@ -25,7 +22,7 @@ const evaluateSchema = z.object({
|
|
|
25
22
|
output: z
|
|
26
23
|
.string()
|
|
27
24
|
.optional()
|
|
28
|
-
.describe(
|
|
25
|
+
.describe(`输出文件路径(可选),相对路径默认写入 ${TMP_PATH_PREFIX},持久化到仓库请显式写 ${CWD_PATH_PREFIX},字符串结果直接写原始文本,其他类型写 JSON`),
|
|
29
26
|
timeout: z
|
|
30
27
|
.number()
|
|
31
28
|
.optional()
|
|
@@ -34,6 +31,7 @@ const evaluateSchema = z.object({
|
|
|
34
31
|
.enum(['stealth', 'precise'])
|
|
35
32
|
.optional()
|
|
36
33
|
.describe('执行模式,precise(默认)使用 debugger API,可绕过 CSP;stealth 使用 JS 注入,不触发调试提示但受 CSP 限制'),
|
|
34
|
+
diagnostics: z.boolean().optional().describe('执行后返回新增 console error/warning 和失败网络请求摘要'),
|
|
37
35
|
tabId: z
|
|
38
36
|
.string()
|
|
39
37
|
.optional()
|
|
@@ -43,30 +41,46 @@ const evaluateSchema = z.object({
|
|
|
43
41
|
.optional()
|
|
44
42
|
.describe('iframe 定位(可选,仅 Extension 模式),CSS 选择器(如 "iframe#main")或索引(如 0),不指定则在主框架执行'),
|
|
45
43
|
});
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
async function captureDiagnosticsStart(unifiedSession) {
|
|
45
|
+
await unifiedSession.enableConsole();
|
|
46
|
+
await unifiedSession.enableNetwork();
|
|
47
|
+
const consoleLogs = await unifiedSession.getConsoleLogs();
|
|
48
|
+
const network = await unifiedSession.getNetworkRequests();
|
|
49
|
+
return { consoleCount: consoleLogs.length, networkCount: network.length };
|
|
50
|
+
}
|
|
51
|
+
async function captureDiagnosticsDelta(unifiedSession, start) {
|
|
52
|
+
const consoleLogs = await unifiedSession.getConsoleLogs();
|
|
53
|
+
const network = await unifiedSession.getNetworkRequests();
|
|
54
|
+
return {
|
|
55
|
+
console: consoleLogs
|
|
56
|
+
.slice(start.consoleCount)
|
|
57
|
+
.filter((item) => ['error', 'warning', 'warn'].includes(item.level))
|
|
58
|
+
.slice(-20),
|
|
59
|
+
failedRequests: network
|
|
60
|
+
.slice(start.networkCount)
|
|
61
|
+
.filter((item) => item.errorText || (item.status !== undefined && item.status >= 400))
|
|
62
|
+
.slice(-20),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
49
65
|
async function handleEvaluate(args) {
|
|
50
66
|
// 输入校验:在 try 外提前返回,避免 throw-catch-in-place
|
|
51
67
|
let script = args.script;
|
|
52
|
-
|
|
68
|
+
let outputPath;
|
|
53
69
|
if (args.scriptFile) {
|
|
54
|
-
const safePath = resolve(cwd, args.scriptFile);
|
|
55
|
-
// 用尾部分隔符确保是路径边界,防止前缀同名目录绕过(如 ../cwd-evil/x.js)
|
|
56
|
-
if (!safePath.startsWith(cwd + sep) && safePath !== cwd) {
|
|
57
|
-
return formatErrorResponse(new Error(`scriptFile 路径超出工作目录范围: ${args.scriptFile}`));
|
|
58
|
-
}
|
|
59
70
|
try {
|
|
60
|
-
|
|
71
|
+
const resolvedScriptFile = await resolveScopedInputPath(args.scriptFile, 'mcp-chrome');
|
|
72
|
+
script = await readFile(resolvedScriptFile.absolutePath, 'utf-8');
|
|
61
73
|
}
|
|
62
74
|
catch (error) {
|
|
63
75
|
return formatErrorResponse(error);
|
|
64
76
|
}
|
|
65
77
|
}
|
|
66
78
|
if (args.output) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
79
|
+
try {
|
|
80
|
+
outputPath = (await resolveScopedOutputPath(args.output, 'mcp-chrome')).absolutePath;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
return formatErrorResponse(error);
|
|
70
84
|
}
|
|
71
85
|
}
|
|
72
86
|
if (!script) {
|
|
@@ -76,34 +90,43 @@ async function handleEvaluate(args) {
|
|
|
76
90
|
const unifiedSession = getUnifiedSession();
|
|
77
91
|
return await unifiedSession.withTabId(args.tabId, async () => {
|
|
78
92
|
return await unifiedSession.withFrame(args.frame, async () => {
|
|
93
|
+
const diagnosticsStart = args.diagnostics ? await captureDiagnosticsStart(unifiedSession) : undefined;
|
|
79
94
|
const result = await unifiedSession.evaluate(script, args.mode, args.timeout, args.args);
|
|
80
95
|
const normalizedResult = result === undefined ? null : result;
|
|
81
|
-
|
|
82
|
-
|
|
96
|
+
const diagnostics = diagnosticsStart
|
|
97
|
+
? await captureDiagnosticsDelta(unifiedSession, diagnosticsStart)
|
|
98
|
+
: undefined;
|
|
99
|
+
if (outputPath) {
|
|
83
100
|
// string 类型直接写入原始文本,其他类型 JSON 序列化
|
|
84
101
|
const content = typeof result === 'string' ? result : JSON.stringify(normalizedResult, null, 2);
|
|
85
|
-
await
|
|
102
|
+
await writePrivateFile(outputPath, content, 'utf-8');
|
|
86
103
|
return formatResponse({
|
|
87
104
|
success: true,
|
|
88
|
-
output:
|
|
105
|
+
output: outputPath,
|
|
106
|
+
...(diagnostics ? { diagnostics } : {}),
|
|
89
107
|
});
|
|
90
108
|
}
|
|
91
109
|
const serialized = JSON.stringify({ success: true, result: normalizedResult }, null, 2);
|
|
92
|
-
// 检测结果大小,超过 100KB
|
|
110
|
+
// 检测结果大小,超过 100KB 自动保存到受控临时目录
|
|
93
111
|
if (serialized.length > 100_000) {
|
|
94
112
|
const suffix = typeof result === 'string' ? 'txt' : 'json';
|
|
95
|
-
const
|
|
113
|
+
const autoSavedPath = (await resolveScopedOutputPath(`${TMP_PATH_PREFIX}evaluate/auto-${Date.now()}.${suffix}`, 'mcp-chrome')).absolutePath;
|
|
96
114
|
const fileContent = typeof result === 'string' ? result : JSON.stringify(normalizedResult, null, 2);
|
|
97
|
-
await
|
|
115
|
+
await writePrivateFile(autoSavedPath, fileContent, 'utf-8');
|
|
98
116
|
return formatResponse({
|
|
99
117
|
success: true,
|
|
100
118
|
autoSaved: true,
|
|
101
|
-
path:
|
|
119
|
+
path: autoSavedPath,
|
|
102
120
|
size: fileContent.length,
|
|
103
|
-
hint: '
|
|
121
|
+
hint: '结果过大已自动保存到受控临时目录,请使用 Read 工具读取',
|
|
122
|
+
...(diagnostics ? { diagnostics } : {}),
|
|
104
123
|
});
|
|
105
124
|
}
|
|
106
|
-
return formatResponse({
|
|
125
|
+
return formatResponse({
|
|
126
|
+
success: true,
|
|
127
|
+
result: normalizedResult,
|
|
128
|
+
...(diagnostics ? { diagnostics } : {}),
|
|
129
|
+
});
|
|
107
130
|
});
|
|
108
131
|
}); // withTabId
|
|
109
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/tools/evaluate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/tools/evaluate.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/extract.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/tools/extract.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/tools/extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAo5CxE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAS3D"}
|