@pyrokine/mcp-chrome 2.3.1 → 2.4.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 +38 -11
- package/README_zh.md +35 -8
- package/dist/anti-detection/behavior.d.ts.map +1 -1
- package/dist/anti-detection/behavior.js.map +1 -1
- package/dist/anti-detection/injection.js.map +1 -1
- package/dist/cdp/client.d.ts.map +1 -1
- package/dist/cdp/client.js.map +1 -1
- package/dist/cdp/launcher.d.ts.map +1 -1
- package/dist/cdp/launcher.js.map +1 -1
- package/dist/core/auto-wait.d.ts.map +1 -1
- package/dist/core/auto-wait.js.map +1 -1
- package/dist/core/browser-driver.d.ts.map +1 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/extension-errors.d.ts.map +1 -1
- package/dist/core/locator.d.ts.map +1 -1
- package/dist/core/locator.js.map +1 -1
- package/dist/core/retry.js.map +1 -1
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js.map +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/unified-session.d.ts +7 -0
- package/dist/core/unified-session.d.ts.map +1 -1
- package/dist/core/unified-session.js +21 -6
- package/dist/core/unified-session.js.map +1 -1
- package/dist/extension/bridge.d.ts.map +1 -1
- package/dist/extension/bridge.js.map +1 -1
- package/dist/extension/http-server.d.ts.map +1 -1
- package/dist/extension/http-server.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/browse.d.ts.map +1 -1
- package/dist/tools/browse.js +12 -37
- package/dist/tools/browse.js.map +1 -1
- package/dist/tools/cookies.js.map +1 -1
- package/dist/tools/diagnostics.d.ts +31 -0
- package/dist/tools/diagnostics.d.ts.map +1 -0
- package/dist/tools/diagnostics.js +92 -0
- package/dist/tools/diagnostics.js.map +1 -0
- package/dist/tools/evaluate.d.ts +7 -0
- package/dist/tools/evaluate.d.ts.map +1 -1
- package/dist/tools/evaluate.js +111 -85
- package/dist/tools/evaluate.js.map +1 -1
- package/dist/tools/extract.d.ts.map +1 -1
- package/dist/tools/extract.js +26 -8
- package/dist/tools/extract.js.map +1 -1
- package/dist/tools/input.d.ts +2 -0
- package/dist/tools/input.d.ts.map +1 -1
- package/dist/tools/input.js +320 -181
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/logs.d.ts +14 -0
- package/dist/tools/logs.d.ts.map +1 -1
- package/dist/tools/logs.js +37 -9
- package/dist/tools/logs.js.map +1 -1
- package/dist/tools/post-condition.d.ts +18 -1
- package/dist/tools/post-condition.d.ts.map +1 -1
- package/dist/tools/post-condition.js +49 -83
- package/dist/tools/post-condition.js.map +1 -1
- package/dist/tools/target-diagnostics.d.ts +31 -0
- package/dist/tools/target-diagnostics.d.ts.map +1 -0
- package/dist/tools/target-diagnostics.js +85 -0
- package/dist/tools/target-diagnostics.js.map +1 -0
- package/dist/tools/wait.d.ts.map +1 -1
- package/dist/tools/wait.js +203 -217
- package/dist/tools/wait.js.map +1 -1
- package/extension/dist/assets/content.ts-pEASbjEL.js +6 -0
- package/extension/dist/assets/index.ts-BMmrcSQ6.js +8713 -0
- package/extension/dist/assets/popup-BwuBB9Cz.css +142 -0
- package/extension/dist/assets/popup.html-B81xccfq.js +127 -0
- package/extension/dist/icons/icon128.png +0 -0
- package/extension/dist/icons/icon16.png +0 -0
- package/extension/dist/icons/icon48.png +0 -0
- package/extension/dist/manifest.json +63 -0
- package/extension/dist/public/icons/icon128.png +0 -0
- package/extension/dist/public/icons/icon16.png +0 -0
- package/extension/dist/public/icons/icon48.png +0 -0
- package/extension/dist/service-worker-loader.js +1 -0
- package/extension/dist/src/popup/popup.html +50 -0
- package/package.json +16 -11
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { sanitizeErrorMessage } from '../core/error-sanitizer.js';
|
|
2
|
+
const MAX_CANDIDATES = 10;
|
|
3
|
+
const MAX_LOCATOR_TEXT = 500;
|
|
4
|
+
const MAX_CANDIDATE_TEXT = 160;
|
|
5
|
+
const MAX_DIAGNOSTIC_TIMEOUT_MS = 1000;
|
|
6
|
+
export class TargetTimeoutError extends Error {
|
|
7
|
+
context;
|
|
8
|
+
code = 'TARGET_TIMEOUT';
|
|
9
|
+
suggestion = '请检查 locator、frame 和 nth,或根据候选摘要调整目标;连接不可用时先恢复 Extension';
|
|
10
|
+
constructor(context) {
|
|
11
|
+
super(`等待目标元素超时 (${context.timeout}ms)`);
|
|
12
|
+
this.context = context;
|
|
13
|
+
this.name = 'TargetTimeoutError';
|
|
14
|
+
}
|
|
15
|
+
toJSON() {
|
|
16
|
+
return { error: { code: this.code, message: this.message, suggestion: this.suggestion, context: this.context } };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function targetType(target) {
|
|
20
|
+
return Object.keys(target).find((key) => key !== 'nth') ?? 'unknown';
|
|
21
|
+
}
|
|
22
|
+
function boundedTarget(target) {
|
|
23
|
+
return Object.fromEntries(Object.entries(target).map(([key, value]) => [
|
|
24
|
+
key,
|
|
25
|
+
typeof value === 'string' ? value.slice(0, MAX_LOCATOR_TEXT) : value,
|
|
26
|
+
]));
|
|
27
|
+
}
|
|
28
|
+
export function summarizeTargetCandidates(candidates) {
|
|
29
|
+
return candidates.slice(0, MAX_CANDIDATES).map((candidate) => ({
|
|
30
|
+
...(typeof candidate.tag === 'string' ? { tag: candidate.tag.slice(0, 40) } : {}),
|
|
31
|
+
...(typeof candidate.text === 'string' ? { text: candidate.text.slice(0, MAX_CANDIDATE_TEXT) } : {}),
|
|
32
|
+
...(candidate.rect ? { rect: candidate.rect } : {}),
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
async function collectPageCandidates(unifiedSession, timeout) {
|
|
36
|
+
try {
|
|
37
|
+
const candidates = await unifiedSession.evaluate(`(() => Array.from(document.querySelectorAll('input, textarea, select, button, a, [role], [contenteditable="true"]'))
|
|
38
|
+
.slice(0, ${MAX_CANDIDATES})
|
|
39
|
+
.map((el) => {
|
|
40
|
+
const rect = el.getBoundingClientRect();
|
|
41
|
+
return {
|
|
42
|
+
tag: el.tagName.toLowerCase(),
|
|
43
|
+
id: el.id || undefined,
|
|
44
|
+
role: el.getAttribute('role') || undefined,
|
|
45
|
+
label: (el.getAttribute('aria-label') || el.getAttribute('placeholder') || '').slice(0, 80),
|
|
46
|
+
text: (el.textContent || '').replace(/\\s+/g, ' ').trim().slice(0, ${MAX_CANDIDATE_TEXT}),
|
|
47
|
+
visible: rect.width > 0 && rect.height > 0,
|
|
48
|
+
disabled: Boolean(el.disabled) || el.getAttribute('aria-disabled') === 'true',
|
|
49
|
+
bounds: {x: rect.x, y: rect.y, width: rect.width, height: rect.height}
|
|
50
|
+
};
|
|
51
|
+
}))()`, undefined, Math.min(Math.max(timeout ?? MAX_DIAGNOSTIC_TIMEOUT_MS, 1), MAX_DIAGNOSTIC_TIMEOUT_MS));
|
|
52
|
+
return { candidates };
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
return {
|
|
56
|
+
candidates: [],
|
|
57
|
+
diagnosticError: sanitizeErrorMessage(error).slice(0, 500),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export async function buildTargetDiagnostics(unifiedSession, target, options) {
|
|
62
|
+
const state = unifiedSession.getState();
|
|
63
|
+
const knownCandidates = options.candidates ? summarizeTargetCandidates(options.candidates) : [];
|
|
64
|
+
const pageCandidates = knownCandidates.length > 0
|
|
65
|
+
? { candidates: knownCandidates }
|
|
66
|
+
: await collectPageCandidates(unifiedSession, options.timeout);
|
|
67
|
+
return {
|
|
68
|
+
locator: boundedTarget(target),
|
|
69
|
+
targetType: targetType(target),
|
|
70
|
+
nth: options.nth,
|
|
71
|
+
currentUrl: state?.url?.slice(0, 500),
|
|
72
|
+
tabId: unifiedSession.getCurrentTargetId(),
|
|
73
|
+
managed: state?.managed ?? false,
|
|
74
|
+
frame: options.frame,
|
|
75
|
+
matchCount: options.matchCount,
|
|
76
|
+
candidates: pageCandidates.candidates,
|
|
77
|
+
lastLocatorState: options.lastState,
|
|
78
|
+
timeout: options.timeout,
|
|
79
|
+
mode: unifiedSession.getMode(),
|
|
80
|
+
connection: unifiedSession.isExtensionConnected() ? 'connected' : 'unavailable',
|
|
81
|
+
...(options.lastError ? { lastError: sanitizeErrorMessage(options.lastError).slice(0, 500) } : {}),
|
|
82
|
+
...(pageCandidates.diagnosticError ? { diagnosticError: pageCandidates.diagnosticError } : {}),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=target-diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"target-diagnostics.js","sourceRoot":"","sources":["../../src/tools/target-diagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/wait.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;
|
|
1
|
+
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AA4lBxE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CASxD"}
|