@lmcc-dev/mult-fetch-mcp-server 1.1.0 → 1.2.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 +8 -8
- package/README.zh.md +16 -8
- package/dist/i18n-test-report.json +8 -0
- package/dist/i18n-unused-keys-report.json +8 -0
- package/dist/src/client.js +50 -35
- package/dist/src/index.js +0 -0
- package/dist/src/lib/BrowserFetcher.js +12 -12
- package/dist/src/lib/NodeFetcher.js +22 -22
- package/dist/src/lib/fetch.js +40 -0
- package/dist/src/lib/fetchers/FetcherFactory.js +43 -0
- package/dist/src/lib/fetchers/browser/BrowserFetcher.js +381 -0
- package/dist/src/lib/fetchers/browser/BrowserInstance.js +180 -0
- package/dist/src/lib/fetchers/browser/PageOperations.js +168 -0
- package/dist/src/lib/fetchers/common/types.js +41 -0
- package/dist/src/lib/fetchers/common/utils.js +141 -0
- package/dist/src/lib/fetchers/index.js +62 -0
- package/dist/src/lib/fetchers/node/HttpClient.js +239 -0
- package/dist/src/lib/fetchers/node/NodeFetcher.js +180 -0
- package/dist/src/lib/i18n/index.js +105 -17
- package/dist/src/lib/i18n/keys/base.js +41 -0
- package/dist/src/lib/i18n/keys/browser.js +91 -0
- package/dist/src/lib/i18n/keys/client.js +68 -0
- package/dist/src/lib/i18n/keys/errors.js +49 -0
- package/dist/src/lib/i18n/keys/factory.js +46 -0
- package/dist/src/lib/i18n/keys/fetcher.js +87 -0
- package/dist/src/lib/i18n/keys/index.js +16 -0
- package/dist/src/lib/i18n/keys/node.js +69 -0
- package/dist/src/lib/i18n/keys/prompts.js +79 -0
- package/dist/src/lib/i18n/keys/resources.js +53 -0
- package/dist/src/lib/i18n/keys/server.js +67 -0
- package/dist/src/lib/i18n/keys/tools.js +39 -0
- package/dist/src/lib/i18n/keys.js +488 -119
- package/dist/src/lib/i18n/locales/en/browser.js +67 -57
- package/dist/src/lib/i18n/locales/en/client.js +57 -33
- package/dist/src/lib/i18n/locales/en/errors.js +36 -12
- package/dist/src/lib/i18n/locales/en/factory.js +38 -0
- package/dist/src/lib/i18n/locales/en/fetcher.js +8 -2
- package/dist/src/lib/i18n/locales/en/index.js +10 -8
- package/dist/src/lib/i18n/locales/en/node.js +57 -35
- package/dist/src/lib/i18n/locales/en/prompts.js +42 -65
- package/dist/src/lib/i18n/locales/en/resources.js +52 -55
- package/dist/src/lib/i18n/locales/en/server.js +49 -24
- package/dist/src/lib/i18n/locales/en/tools.js +27 -19
- package/dist/src/lib/i18n/locales/zh/browser.js +71 -62
- package/dist/src/lib/i18n/locales/zh/client.js +57 -32
- package/dist/src/lib/i18n/locales/zh/errors.js +36 -12
- package/dist/src/lib/i18n/locales/zh/factory.js +38 -0
- package/dist/src/lib/i18n/locales/zh/fetcher.js +36 -30
- package/dist/src/lib/i18n/locales/zh/index.js +10 -8
- package/dist/src/lib/i18n/locales/zh/node.js +61 -36
- package/dist/src/lib/i18n/locales/zh/prompts.js +35 -57
- package/dist/src/lib/i18n/locales/zh/resources.js +52 -55
- package/dist/src/lib/i18n/locales/zh/server.js +51 -25
- package/dist/src/lib/i18n/locales/zh/tools.js +27 -19
- package/dist/src/lib/i18n/logger.js +90 -19
- package/dist/src/lib/logger.js +135 -14
- package/dist/src/lib/server/browser.js +2 -2
- package/dist/src/lib/server/fetcher.js +13 -34
- package/dist/src/lib/server/index.js +2 -2
- package/dist/src/lib/server/prompts.js +1 -1
- package/dist/src/lib/server/resources.js +1 -1
- package/dist/src/lib/server/tools.js +46 -10
- package/dist/src/lib/utils/ErrorHandler.js +125 -0
- package/dist/src/mcp-server.js +0 -0
- package/dist/src/test-i18n.js +139 -0
- package/dist/tests/BrowserFetcher.test.js +0 -0
- package/dist/tests/NodeFetcher.test.js +0 -0
- package/dist/tests/client.test.js +42 -81
- package/dist/tests/fetch.test.js +70 -0
- package/dist/tests/fetchers/Fetcher.test.js +108 -0
- package/dist/tests/fetchers/browser/BrowserFetcher.test.js +195 -0
- package/dist/tests/fetchers/browser/BrowserInstance.test.js +163 -0
- package/dist/tests/fetchers/node/NodeFetcher.test.js +211 -0
- package/dist/tests/i18n-missing-keys.js +364 -0
- package/dist/tests/i18n-remove-unused-keys.js +236 -0
- package/dist/tests/i18n-test-report.json +2004 -0
- package/dist/tests/i18n-unused-keys.js +425 -0
- package/dist/tests/i18n.test.js +6 -7
- package/dist/tests/logger.test.js +14 -13
- package/dist/tests/mcp-server.test.js +7 -7
- package/dist/tests/server/browser.test.js +25 -21
- package/dist/tests/server/fetcher.test.js +58 -101
- package/dist/tests/server/index.test.js +30 -30
- package/dist/tests/server/prompts.test.js +36 -33
- package/dist/tests/server/resources.test.js +120 -84
- package/dist/tests/server/tools.test.js +7 -6
- package/dist/tests/setup.js +36 -0
- package/dist/tests/src/lib/i18n/index.js +108 -0
- package/dist/tests/src/lib/i18n/keys/base.js +47 -0
- package/dist/tests/src/lib/i18n/keys/browser.js +93 -0
- package/dist/tests/src/lib/i18n/keys/client.js +70 -0
- package/dist/tests/src/lib/i18n/keys/errors.js +34 -0
- package/dist/tests/src/lib/i18n/keys/fetcher.js +84 -0
- package/dist/tests/src/lib/i18n/keys/index.js +31 -0
- package/dist/tests/src/lib/i18n/keys/node.js +56 -0
- package/dist/tests/src/lib/i18n/keys/prompts.js +82 -0
- package/dist/tests/src/lib/i18n/keys/resources.js +50 -0
- package/dist/tests/src/lib/i18n/keys/server.js +64 -0
- package/dist/tests/src/lib/i18n/keys/tools.js +34 -0
- package/dist/tests/src/lib/i18n/locales/en/browser.js +88 -0
- package/dist/tests/src/lib/i18n/locales/en/client.js +66 -0
- package/dist/tests/src/lib/i18n/locales/en/errors.js +28 -0
- package/dist/tests/src/lib/i18n/locales/en/fetcher.js +71 -0
- package/dist/tests/src/lib/i18n/locales/en/index.js +29 -0
- package/dist/tests/src/lib/i18n/locales/en/node.js +51 -0
- package/dist/tests/src/lib/i18n/locales/en/prompts.js +52 -0
- package/dist/tests/src/lib/i18n/locales/en/resources.js +50 -0
- package/dist/tests/src/lib/i18n/locales/en/server.js +56 -0
- package/dist/tests/src/lib/i18n/locales/en/tools.js +28 -0
- package/dist/tests/src/lib/i18n/locales/zh/browser.js +87 -0
- package/dist/tests/src/lib/i18n/locales/zh/client.js +66 -0
- package/dist/tests/src/lib/i18n/locales/zh/errors.js +28 -0
- package/dist/tests/src/lib/i18n/locales/zh/fetcher.js +71 -0
- package/dist/tests/src/lib/i18n/locales/zh/index.js +29 -0
- package/dist/tests/src/lib/i18n/locales/zh/node.js +51 -0
- package/dist/tests/src/lib/i18n/locales/zh/prompts.js +53 -0
- package/dist/tests/src/lib/i18n/locales/zh/resources.js +50 -0
- package/dist/tests/src/lib/i18n/locales/zh/server.js +57 -0
- package/dist/tests/src/lib/i18n/locales/zh/tools.js +28 -0
- package/dist/tests/src/lib/i18n/logger.js +114 -0
- package/dist/tests/src/lib/logger.js +181 -0
- package/dist/tests/test-direct-client.js +0 -0
- package/dist/tests/test-i18n.js +530 -0
- package/dist/tests/test-mcp-methods.js +1 -1
- package/dist/tests/test-mcp.js +0 -0
- package/dist/tests/test-mini4k.js +0 -0
- package/dist/tests/tests/test-i18n.js +588 -0
- package/dist/tests/types.test.js +1 -1
- package/dist/tests/utils/ErrorHandler.test.js +144 -0
- package/dist/vitest.config.js +29 -0
- package/package.json +31 -27
- package/dist/src/cli-language.js +0 -78
- package/dist/src/client.d.ts +0 -6
- package/dist/src/client.js.map +0 -1
- package/dist/src/index.d.ts +0 -15
- package/dist/src/index.js.map +0 -1
- package/dist/src/lib/BrowserFetcher.d.ts +0 -175
- package/dist/src/lib/BrowserFetcher.js.map +0 -1
- package/dist/src/lib/NodeFetcher.d.ts +0 -92
- package/dist/src/lib/NodeFetcher.js.map +0 -1
- package/dist/src/lib/example.js +0 -93
- package/dist/src/lib/i18n/index.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/browser.d.ts +0 -61
- package/dist/src/lib/i18n/locales/en/browser.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/client.d.ts +0 -39
- package/dist/src/lib/i18n/locales/en/client.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/errors.d.ts +0 -17
- package/dist/src/lib/i18n/locales/en/errors.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/fetcher.d.ts +0 -66
- package/dist/src/lib/i18n/locales/en/fetcher.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/index.d.ts +0 -344
- package/dist/src/lib/i18n/locales/en/index.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/node.d.ts +0 -41
- package/dist/src/lib/i18n/locales/en/node.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/prompts.d.ts +0 -65
- package/dist/src/lib/i18n/locales/en/prompts.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/resources.d.ts +0 -41
- package/dist/src/lib/i18n/locales/en/resources.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/server.d.ts +0 -30
- package/dist/src/lib/i18n/locales/en/server.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/tools.d.ts +0 -24
- package/dist/src/lib/i18n/locales/en/tools.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/browser.d.ts +0 -61
- package/dist/src/lib/i18n/locales/zh/browser.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/client.d.ts +0 -38
- package/dist/src/lib/i18n/locales/zh/client.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/errors.d.ts +0 -17
- package/dist/src/lib/i18n/locales/zh/errors.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/fetcher.d.ts +0 -66
- package/dist/src/lib/i18n/locales/zh/fetcher.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/index.d.ts +0 -343
- package/dist/src/lib/i18n/locales/zh/index.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/node.d.ts +0 -41
- package/dist/src/lib/i18n/locales/zh/node.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/prompts.d.ts +0 -65
- package/dist/src/lib/i18n/locales/zh/prompts.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/resources.d.ts +0 -41
- package/dist/src/lib/i18n/locales/zh/resources.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/server.d.ts +0 -30
- package/dist/src/lib/i18n/locales/zh/server.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/tools.d.ts +0 -24
- package/dist/src/lib/i18n/locales/zh/tools.js.map +0 -1
- package/dist/src/lib/i18n/logger.d.ts +0 -38
- package/dist/src/lib/i18n/logger.js.map +0 -1
- package/dist/src/lib/logger.d.ts +0 -32
- package/dist/src/lib/logger.js.map +0 -1
- package/dist/src/lib/server/browser.d.ts +0 -34
- package/dist/src/lib/server/browser.js.map +0 -1
- package/dist/src/lib/server/fetcher.d.ts +0 -20
- package/dist/src/lib/server/fetcher.js.map +0 -1
- package/dist/src/lib/server/index.d.ts +0 -10
- package/dist/src/lib/server/index.js.map +0 -1
- package/dist/src/lib/server/logger.js +0 -23
- package/dist/src/lib/server/prompts.d.ts +0 -11
- package/dist/src/lib/server/prompts.js.map +0 -1
- package/dist/src/lib/server/resources.d.ts +0 -11
- package/dist/src/lib/server/resources.js.map +0 -1
- package/dist/src/lib/server/tools.d.ts +0 -12
- package/dist/src/lib/server/tools.js.map +0 -1
- package/dist/src/lib/server/types.d.ts +0 -71
- package/dist/src/lib/server/types.js.map +0 -1
- package/dist/src/lib/types.d.ts +0 -119
- package/dist/src/lib/types.js.map +0 -1
- package/dist/src/mcp-server.d.ts +0 -6
- package/dist/src/mcp-server.js.map +0 -1
- package/dist/tests/jest.setup.d.ts +0 -6
- package/dist/tests/jest.setup.js +0 -30
- package/dist/tests/jest.setup.js.map +0 -1
- package/dist/tests/test-direct-client.d.ts +0 -6
- package/dist/tests/test-direct-client.js.map +0 -1
- package/dist/tests/test-mcp-methods.d.ts +0 -6
- package/dist/tests/test-mcp-methods.js.map +0 -1
- package/dist/tests/test-mcp.d.ts +0 -6
- package/dist/tests/test-mcp.js.map +0 -1
- package/dist/tests/test-mini4k.d.ts +0 -6
- package/dist/tests/test-mini4k.js.map +0 -1
|
@@ -4,132 +4,501 @@
|
|
|
4
4
|
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* 创建键名生成器 - 用于生成特定模块的键名 (Create key name generator - for generating key names for specific modules)
|
|
8
|
+
* @param module 模块名称 (Module name)
|
|
9
|
+
* @returns 键名生成函数 (Key name generator function)
|
|
9
10
|
*/
|
|
11
|
+
const createKeyGenerator = (module) => (key) => `${module}.${key}`;
|
|
10
12
|
/**
|
|
11
|
-
*
|
|
13
|
+
* 创建资源操作键 - 用于生成资源操作相关的键 (Create resource operation keys - for generating resource operation related keys)
|
|
14
|
+
* @param module 模块名称 (Module name)
|
|
15
|
+
* @param operation 操作名称 (Operation name)
|
|
16
|
+
* @returns 资源操作键对象 (Resource operation keys object)
|
|
12
17
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
fetchingUrl: 'fetcher.fetchingUrl',
|
|
23
|
-
usingUserAgent: 'fetcher.usingUserAgent',
|
|
24
|
-
usingHttpsProxy: 'fetcher.usingHttpsProxy',
|
|
25
|
-
usingHttpProxy: 'fetcher.usingHttpProxy',
|
|
26
|
-
requestOptions: 'fetcher.requestOptions',
|
|
27
|
-
startingFetch: 'fetcher.startingFetch',
|
|
28
|
-
fetchCompleted: 'fetcher.fetchCompleted',
|
|
29
|
-
responseStatus: 'fetcher.responseStatus',
|
|
30
|
-
redirectingTo: 'fetcher.redirectingTo',
|
|
31
|
-
constructedFullRedirectUrl: 'fetcher.constructedFullRedirectUrl',
|
|
32
|
-
requestSuccess: 'fetcher.requestSuccess',
|
|
33
|
-
errorResponse: 'fetcher.errorResponse',
|
|
34
|
-
errorResponseBody: 'fetcher.errorResponseBody',
|
|
35
|
-
errorReadingBody: 'fetcher.errorReadingBody',
|
|
36
|
-
fetchError: 'fetcher.fetchError',
|
|
37
|
-
requestAborted: 'fetcher.requestAborted',
|
|
38
|
-
networkError: 'fetcher.networkError',
|
|
39
|
-
requestTimeout: 'fetcher.requestTimeout',
|
|
40
|
-
fetchFailed: 'fetcher.fetchFailed',
|
|
41
|
-
tooManyRedirects: 'fetcher.tooManyRedirects',
|
|
42
|
-
startingHtmlFetch: 'fetcher.startingHtmlFetch',
|
|
43
|
-
readingText: 'fetcher.readingText',
|
|
44
|
-
htmlContentLength: 'fetcher.htmlContentLength',
|
|
45
|
-
startingJsonFetch: 'fetcher.startingJsonFetch',
|
|
46
|
-
parsingJson: 'fetcher.parsingJson',
|
|
47
|
-
jsonParsed: 'fetcher.jsonParsed',
|
|
48
|
-
jsonParseError: 'fetcher.jsonParseError',
|
|
49
|
-
startingTxtFetch: 'fetcher.startingTxtFetch',
|
|
50
|
-
textContentLength: 'fetcher.textContentLength',
|
|
51
|
-
startingMarkdownFetch: 'fetcher.startingMarkdownFetch',
|
|
52
|
-
creatingTurndown: 'fetcher.creatingTurndown',
|
|
53
|
-
convertingToMarkdown: 'fetcher.convertingToMarkdown',
|
|
54
|
-
markdownContentLength: 'fetcher.markdownContentLength',
|
|
55
|
-
checkingProxyEnv: 'fetcher.checkingProxyEnv',
|
|
56
|
-
envVarValue: 'fetcher.envVarValue',
|
|
57
|
-
foundSystemProxy: 'fetcher.foundSystemProxy',
|
|
58
|
-
systemCommandProxySettings: 'fetcher.systemCommandProxySettings',
|
|
59
|
-
foundProxyFromCommand: 'fetcher.foundProxyFromCommand',
|
|
60
|
-
errorGettingProxyFromCommand: 'fetcher.errorGettingProxyFromCommand',
|
|
61
|
-
checkingSystemEnvVars: 'fetcher.checkingSystemEnvVars',
|
|
62
|
-
windowsEnvVars: 'fetcher.windowsEnvVars',
|
|
63
|
-
foundWindowsEnvProxy: 'fetcher.foundWindowsEnvProxy',
|
|
64
|
-
errorGettingWindowsEnvVars: 'fetcher.errorGettingWindowsEnvVars',
|
|
65
|
-
unixEnvVars: 'fetcher.unixEnvVars',
|
|
66
|
-
foundUnixEnvProxy: 'fetcher.foundUnixEnvProxy',
|
|
67
|
-
errorGettingUnixEnvVars: 'fetcher.errorGettingUnixEnvVars',
|
|
68
|
-
errorGettingSystemEnvVars: 'fetcher.errorGettingSystemEnvVars',
|
|
69
|
-
noSystemProxyFound: 'fetcher.noSystemProxyFound',
|
|
70
|
-
notSet: 'fetcher.notSet',
|
|
71
|
-
debug: 'fetcher.debug',
|
|
72
|
-
none: 'fetcher.none'
|
|
18
|
+
const createResourceOperationKeys = (module, operation) => {
|
|
19
|
+
const keyGen = createKeyGenerator(`${module}.${operation}`);
|
|
20
|
+
return {
|
|
21
|
+
request: keyGen('request'),
|
|
22
|
+
success: keyGen('success'),
|
|
23
|
+
error: keyGen('error'),
|
|
24
|
+
notFound: keyGen('notFound'),
|
|
25
|
+
duplicate: keyGen('duplicate')
|
|
26
|
+
};
|
|
73
27
|
};
|
|
74
28
|
/**
|
|
75
|
-
*
|
|
29
|
+
* 创建资源键 - 用于生成资源相关的键 (Create resource keys - for generating resource related keys)
|
|
30
|
+
* @param module 模块名称 (Module name)
|
|
31
|
+
* @returns 资源键对象 (Resource keys object)
|
|
76
32
|
*/
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
waitingForSelector: 'browser.waitingForSelector',
|
|
86
|
-
waitingForTimeout: 'browser.waitingForTimeout',
|
|
87
|
-
scrollingToBottom: 'browser.scrollingToBottom',
|
|
88
|
-
gettingContent: 'browser.gettingContent',
|
|
89
|
-
contentLength: 'browser.contentLength',
|
|
90
|
-
savingCookies: 'browser.savingCookies',
|
|
91
|
-
cookiesSaved: 'browser.cookiesSaved',
|
|
92
|
-
loadingCookies: 'browser.loadingCookies',
|
|
93
|
-
cookiesLoaded: 'browser.cookiesLoaded',
|
|
94
|
-
noCookiesFound: 'browser.noCookiesFound',
|
|
95
|
-
errorLoadingCookies: 'browser.errorLoadingCookies',
|
|
96
|
-
errorSavingCookies: 'browser.errorSavingCookies',
|
|
97
|
-
errorNavigating: 'browser.errorNavigating',
|
|
98
|
-
errorGettingContent: 'browser.errorGettingContent',
|
|
99
|
-
errorClosingBrowser: 'browser.errorClosingBrowser',
|
|
100
|
-
errorCreatingPage: 'browser.errorCreatingPage'
|
|
33
|
+
const createResourceKeys = (module) => {
|
|
34
|
+
return {
|
|
35
|
+
list: createResourceOperationKeys(module, 'list'),
|
|
36
|
+
get: createResourceOperationKeys(module, 'get'),
|
|
37
|
+
create: createResourceOperationKeys(module, 'create'),
|
|
38
|
+
update: createResourceOperationKeys(module, 'update'),
|
|
39
|
+
delete: createResourceOperationKeys(module, 'delete')
|
|
40
|
+
};
|
|
101
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* 获取器相关键 (Fetcher related keys)
|
|
44
|
+
*/
|
|
45
|
+
export const FETCHER_KEYS = (() => {
|
|
46
|
+
const keyGen = createKeyGenerator('fetcher');
|
|
47
|
+
return {
|
|
48
|
+
// 延迟相关 (Delay related)
|
|
49
|
+
addingDelay: keyGen('addingDelay'),
|
|
50
|
+
delayCompleted: keyGen('delayCompleted'),
|
|
51
|
+
// 代理相关 (Proxy related)
|
|
52
|
+
usingProxy: keyGen('usingProxy'),
|
|
53
|
+
usingSpecifiedProxy: keyGen('usingSpecifiedProxy'),
|
|
54
|
+
attemptingToUseSystemProxy: keyGen('attemptingToUseSystemProxy'),
|
|
55
|
+
notUsingProxy: keyGen('notUsingProxy'),
|
|
56
|
+
finalProxyUsed: keyGen('finalProxyUsed'),
|
|
57
|
+
noProxy: keyGen('noProxy'),
|
|
58
|
+
usingHttpsProxy: keyGen('usingHttpsProxy'),
|
|
59
|
+
usingHttpProxy: keyGen('usingHttpProxy'),
|
|
60
|
+
// 请求相关 (Request related)
|
|
61
|
+
fetchingUrl: keyGen('fetchingUrl'),
|
|
62
|
+
usingUserAgent: keyGen('usingUserAgent'),
|
|
63
|
+
requestOptions: keyGen('requestOptions'),
|
|
64
|
+
startingFetch: keyGen('startingFetch'),
|
|
65
|
+
fetchCompleted: keyGen('fetchCompleted'),
|
|
66
|
+
// 响应相关 (Response related)
|
|
67
|
+
responseStatus: keyGen('responseStatus'),
|
|
68
|
+
redirectingTo: keyGen('redirectingTo'),
|
|
69
|
+
constructedFullRedirectUrl: keyGen('constructedFullRedirectUrl'),
|
|
70
|
+
requestSuccess: keyGen('requestSuccess'),
|
|
71
|
+
// 错误相关 (Error related)
|
|
72
|
+
errorResponse: keyGen('errorResponse'),
|
|
73
|
+
errorResponseBody: keyGen('errorResponseBody'),
|
|
74
|
+
errorReadingBody: keyGen('errorReadingBody'),
|
|
75
|
+
fetchError: keyGen('fetchError'),
|
|
76
|
+
requestAborted: keyGen('requestAborted'),
|
|
77
|
+
networkError: keyGen('networkError'),
|
|
78
|
+
requestTimeout: keyGen('requestTimeout'),
|
|
79
|
+
fetchFailed: keyGen('fetchFailed'),
|
|
80
|
+
tooManyRedirects: keyGen('tooManyRedirects'),
|
|
81
|
+
// 内容类型相关 (Content type related)
|
|
82
|
+
startingHtmlFetch: keyGen('startingHtmlFetch'),
|
|
83
|
+
readingText: keyGen('readingText'),
|
|
84
|
+
htmlContentLength: keyGen('htmlContentLength'),
|
|
85
|
+
startingJsonFetch: keyGen('startingJsonFetch'),
|
|
86
|
+
parsingJson: keyGen('parsingJson'),
|
|
87
|
+
jsonParsed: keyGen('jsonParsed'),
|
|
88
|
+
jsonParseError: keyGen('jsonParseError'),
|
|
89
|
+
startingTxtFetch: keyGen('startingTxtFetch'),
|
|
90
|
+
textContentLength: keyGen('textContentLength'),
|
|
91
|
+
startingMarkdownFetch: keyGen('startingMarkdownFetch'),
|
|
92
|
+
creatingTurndown: keyGen('creatingTurndown'),
|
|
93
|
+
convertingToMarkdown: keyGen('convertingToMarkdown'),
|
|
94
|
+
markdownContentLength: keyGen('markdownContentLength'),
|
|
95
|
+
// 系统代理相关 (System proxy related)
|
|
96
|
+
checkingProxyEnv: keyGen('checkingProxyEnv'),
|
|
97
|
+
envVarValue: keyGen('envVarValue'),
|
|
98
|
+
foundSystemProxy: keyGen('foundSystemProxy'),
|
|
99
|
+
systemCommandProxySettings: keyGen('systemCommandProxySettings'),
|
|
100
|
+
foundProxyFromCommand: keyGen('foundProxyFromCommand'),
|
|
101
|
+
errorGettingProxyFromCommand: keyGen('errorGettingProxyFromCommand'),
|
|
102
|
+
checkingSystemEnvVars: keyGen('checkingSystemEnvVars'),
|
|
103
|
+
windowsEnvVars: keyGen('windowsEnvVars'),
|
|
104
|
+
foundWindowsEnvProxy: keyGen('foundWindowsEnvProxy'),
|
|
105
|
+
errorGettingWindowsEnvVars: keyGen('errorGettingWindowsEnvVars'),
|
|
106
|
+
unixEnvVars: keyGen('unixEnvVars'),
|
|
107
|
+
foundUnixEnvProxy: keyGen('foundUnixEnvProxy'),
|
|
108
|
+
errorGettingUnixEnvVars: keyGen('errorGettingUnixEnvVars'),
|
|
109
|
+
errorGettingSystemEnvVars: keyGen('errorGettingSystemEnvVars'),
|
|
110
|
+
noSystemProxyFound: keyGen('noSystemProxyFound'),
|
|
111
|
+
// 通用 (General)
|
|
112
|
+
notSet: keyGen('notSet'),
|
|
113
|
+
debug: keyGen('debug'),
|
|
114
|
+
none: keyGen('none')
|
|
115
|
+
};
|
|
116
|
+
})();
|
|
117
|
+
/**
|
|
118
|
+
* 浏览器相关键 (Browser related keys)
|
|
119
|
+
*/
|
|
120
|
+
export const BROWSER_KEYS = (() => {
|
|
121
|
+
const keyGen = createKeyGenerator('browser');
|
|
122
|
+
return {
|
|
123
|
+
// 浏览器生命周期 (Browser lifecycle)
|
|
124
|
+
closing: keyGen('closing'),
|
|
125
|
+
closed: keyGen('closed'),
|
|
126
|
+
starting: keyGen('starting'),
|
|
127
|
+
startingFailed: keyGen('startingFailed'),
|
|
128
|
+
alreadyRunning: keyGen('alreadyRunning'),
|
|
129
|
+
// 页面操作 (Page operations)
|
|
130
|
+
creatingPage: keyGen('creatingPage'),
|
|
131
|
+
navigatingTo: keyGen('navigatingTo'),
|
|
132
|
+
waitingForSelector: keyGen('waitingForSelector'),
|
|
133
|
+
waitingForTimeout: keyGen('waitingForTimeout'),
|
|
134
|
+
scrollingToBottom: keyGen('scrollingToBottom'),
|
|
135
|
+
gettingContent: keyGen('gettingContent'),
|
|
136
|
+
contentLength: keyGen('contentLength'),
|
|
137
|
+
// Cookie 相关 (Cookie related)
|
|
138
|
+
savingCookies: keyGen('savingCookies'),
|
|
139
|
+
cookiesSaved: keyGen('cookiesSaved'),
|
|
140
|
+
loadingCookies: keyGen('loadingCookies'),
|
|
141
|
+
cookiesLoaded: keyGen('cookiesLoaded'),
|
|
142
|
+
noCookiesFound: keyGen('noCookiesFound'),
|
|
143
|
+
// 错误相关 (Error related)
|
|
144
|
+
errorLoadingCookies: keyGen('errorLoadingCookies'),
|
|
145
|
+
errorSavingCookies: keyGen('errorSavingCookies'),
|
|
146
|
+
errorNavigating: keyGen('errorNavigating'),
|
|
147
|
+
errorGettingContent: keyGen('errorGettingContent'),
|
|
148
|
+
errorClosingBrowser: keyGen('errorClosingBrowser'),
|
|
149
|
+
errorCreatingPage: keyGen('errorCreatingPage'),
|
|
150
|
+
closingError: keyGen('closingError'),
|
|
151
|
+
// 额外的浏览器相关键 (Additional browser related keys)
|
|
152
|
+
waiting: keyGen('waiting'),
|
|
153
|
+
startupSuccess: keyGen('startupSuccess'),
|
|
154
|
+
navigating: keyGen('navigating'),
|
|
155
|
+
scrolling: keyGen('scrolling'),
|
|
156
|
+
scrollCompleted: keyGen('scrollCompleted'),
|
|
157
|
+
contentTruncated: keyGen('contentTruncated'),
|
|
158
|
+
pageClosed: keyGen('pageClosed'),
|
|
159
|
+
fetchError: keyGen('fetchError'),
|
|
160
|
+
highMemory: keyGen('highMemory'),
|
|
161
|
+
closingDueToMemory: keyGen('closingDueToMemory'),
|
|
162
|
+
forcingGC: keyGen('forcingGC'),
|
|
163
|
+
memoryCheckError: keyGen('memoryCheckError'),
|
|
164
|
+
usingCookies: keyGen('usingCookies'),
|
|
165
|
+
usingProxy: keyGen('usingProxy'),
|
|
166
|
+
// Cloudflare 相关 (Cloudflare related)
|
|
167
|
+
checkingCloudflare: keyGen('checkingCloudflare'),
|
|
168
|
+
cloudflareDetected: keyGen('cloudflareDetected'),
|
|
169
|
+
simulatingHuman: keyGen('simulatingHuman'),
|
|
170
|
+
simulatingHumanError: keyGen('simulatingHumanError'),
|
|
171
|
+
stillOnCloudflare: keyGen('stillOnCloudflare'),
|
|
172
|
+
bypassFailed: keyGen('bypassFailed'),
|
|
173
|
+
cloudflareError: keyGen('cloudflareError'),
|
|
174
|
+
continuingWithoutBypass: keyGen('continuingWithoutBypass'),
|
|
175
|
+
unableToBypassCloudflare: keyGen('unableToBypassCloudflare'),
|
|
176
|
+
// 获取和重试相关 (Fetch and retry related)
|
|
177
|
+
fetchingWithRetry: keyGen('fetchingWithRetry'),
|
|
178
|
+
memoryUsage: keyGen('memoryUsage'),
|
|
179
|
+
memoryTooHigh: keyGen('memoryTooHigh'),
|
|
180
|
+
contentTooLarge: keyGen('contentTooLarge'),
|
|
181
|
+
failedToParseJSON: keyGen('failedToParseJSON'),
|
|
182
|
+
startingBrowserFetchForMarkdown: keyGen('startingBrowserFetchForMarkdown'),
|
|
183
|
+
errorInBrowserFetchForMarkdown: keyGen('errorInBrowserFetchForMarkdown'),
|
|
184
|
+
fetchRequest: keyGen('fetchRequest'),
|
|
185
|
+
usingStoredCookies: keyGen('usingStoredCookies'),
|
|
186
|
+
closingInstance: keyGen('closingInstance'),
|
|
187
|
+
fetchErrorWithAttempt: keyGen('fetchErrorWithAttempt'),
|
|
188
|
+
retryingAfterDelay: keyGen('retryingAfterDelay'),
|
|
189
|
+
// 浏览器启动相关 (Browser startup related)
|
|
190
|
+
browserStartupSuccess: keyGen('browserStartupSuccess'),
|
|
191
|
+
browserStartupFailed: keyGen('browserStartupFailed'),
|
|
192
|
+
usingCustomChromePath: keyGen('usingCustomChromePath'),
|
|
193
|
+
browserDisconnected: keyGen('browserDisconnected'),
|
|
194
|
+
waitingForBrowserStart: keyGen('waitingForBrowserStart'),
|
|
195
|
+
reusingExistingBrowser: keyGen('reusingExistingBrowser'),
|
|
196
|
+
startingBrowser: keyGen('startingBrowser'),
|
|
197
|
+
browserStarted: keyGen('browserStarted'),
|
|
198
|
+
browserStartError: keyGen('browserStartError')
|
|
199
|
+
};
|
|
200
|
+
})();
|
|
102
201
|
/**
|
|
103
202
|
* 资源相关键 (Resources related keys)
|
|
104
203
|
*/
|
|
105
|
-
export const RESOURCES_KEYS = {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
204
|
+
export const RESOURCES_KEYS = (() => {
|
|
205
|
+
const keyGen = createKeyGenerator('resources');
|
|
206
|
+
const resourceKeys = createResourceKeys('resources');
|
|
207
|
+
return {
|
|
208
|
+
...resourceKeys,
|
|
209
|
+
// 额外的资源相关键 (Additional resource related keys)
|
|
210
|
+
fileReadError: keyGen('fileReadError'),
|
|
211
|
+
invalidUri: keyGen('invalidUri'),
|
|
212
|
+
notFound: keyGen('notFound'),
|
|
213
|
+
// 资源描述 (Resource descriptions)
|
|
214
|
+
readme: {
|
|
215
|
+
description: keyGen('readme.description')
|
|
216
|
+
},
|
|
217
|
+
package: {
|
|
218
|
+
description: keyGen('package.description')
|
|
219
|
+
},
|
|
220
|
+
index: {
|
|
221
|
+
description: keyGen('index.description')
|
|
222
|
+
},
|
|
223
|
+
client: {
|
|
224
|
+
description: keyGen('client.description')
|
|
225
|
+
},
|
|
226
|
+
// 资源模板描述 (Resource template descriptions)
|
|
227
|
+
sourceFile: {
|
|
228
|
+
name: keyGen('sourceFile.name'),
|
|
229
|
+
description: keyGen('sourceFile.description')
|
|
230
|
+
},
|
|
231
|
+
docFile: {
|
|
232
|
+
name: keyGen('docFile.name'),
|
|
233
|
+
description: keyGen('docFile.description')
|
|
234
|
+
},
|
|
235
|
+
filename: {
|
|
236
|
+
description: keyGen('filename.description')
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
})();
|
|
240
|
+
/**
|
|
241
|
+
* 服务器相关键 (Server related keys)
|
|
242
|
+
*/
|
|
243
|
+
export const SERVER_KEYS = (() => {
|
|
244
|
+
const keyGen = createKeyGenerator('server');
|
|
245
|
+
return {
|
|
246
|
+
// 服务器状态相关 (Server status related)
|
|
247
|
+
starting: keyGen('starting'),
|
|
248
|
+
started: keyGen('started'),
|
|
249
|
+
stopping: keyGen('stopping'),
|
|
250
|
+
stopped: keyGen('stopped'),
|
|
251
|
+
error: keyGen('error'),
|
|
252
|
+
// 连接相关 (Connection related)
|
|
253
|
+
connecting: keyGen('connecting'),
|
|
254
|
+
connected: keyGen('connected'),
|
|
255
|
+
connectionError: keyGen('connectionError'),
|
|
256
|
+
disconnected: keyGen('disconnected'),
|
|
257
|
+
// 请求处理相关 (Request handling related)
|
|
258
|
+
requestReceived: keyGen('requestReceived'),
|
|
259
|
+
requestProcessed: keyGen('requestProcessed'),
|
|
260
|
+
requestError: keyGen('requestError'),
|
|
261
|
+
// 浏览器相关 (Browser related)
|
|
262
|
+
browser: {
|
|
263
|
+
initializing: keyGen('browser.initializing'),
|
|
264
|
+
initialized: keyGen('browser.initialized'),
|
|
265
|
+
error: keyGen('browser.error'),
|
|
266
|
+
closing: keyGen('browser.closing'),
|
|
267
|
+
closed: keyGen('browser.closed')
|
|
268
|
+
},
|
|
269
|
+
// 工具相关 (Tool related)
|
|
270
|
+
tool: {
|
|
271
|
+
requestReceived: keyGen('tool.requestReceived'),
|
|
272
|
+
requestProcessed: keyGen('tool.requestProcessed'),
|
|
273
|
+
requestError: keyGen('tool.requestError')
|
|
274
|
+
},
|
|
275
|
+
// 原有键 (Original keys)
|
|
276
|
+
receivedRequest: keyGen('receivedRequest'),
|
|
277
|
+
processingRequest: keyGen('processingRequest'),
|
|
278
|
+
requestCompleted: keyGen('requestCompleted'),
|
|
279
|
+
requestFailed: keyGen('requestFailed'),
|
|
280
|
+
receivedInterruptSignal: keyGen('receivedInterruptSignal'),
|
|
281
|
+
receivedTerminateSignal: keyGen('receivedTerminateSignal'),
|
|
282
|
+
uncaughtException: keyGen('uncaughtException'),
|
|
283
|
+
debug: keyGen('debug'),
|
|
284
|
+
listeningOn: keyGen('listeningOn'),
|
|
285
|
+
// 新增的翻译键 (New translation keys)
|
|
286
|
+
initializingBrowser: keyGen('initializingBrowser'),
|
|
287
|
+
closingBrowser: keyGen('closingBrowser'),
|
|
288
|
+
receivedToolRequest: keyGen('receivedToolRequest'),
|
|
289
|
+
processingToolRequestError: keyGen('processingToolRequestError'),
|
|
290
|
+
usingBrowserMode: keyGen('usingBrowserMode'),
|
|
291
|
+
usingAutoDetectMode: keyGen('usingAutoDetectMode'),
|
|
292
|
+
switchingToBrowserMode: keyGen('switchingToBrowserMode'),
|
|
293
|
+
fetchError: keyGen('fetchError')
|
|
294
|
+
};
|
|
295
|
+
})();
|
|
296
|
+
/**
|
|
297
|
+
* 客户端相关键 (Client related keys)
|
|
298
|
+
*/
|
|
299
|
+
export const CLIENT_KEYS = (() => {
|
|
300
|
+
const keyGen = createKeyGenerator('client');
|
|
301
|
+
return {
|
|
302
|
+
connecting: keyGen('connecting'),
|
|
303
|
+
connected: keyGen('connected'),
|
|
304
|
+
disconnecting: keyGen('disconnecting'),
|
|
305
|
+
disconnected: keyGen('disconnected'),
|
|
306
|
+
error: keyGen('error'),
|
|
307
|
+
callTool: keyGen('callTool'),
|
|
308
|
+
callToolSuccess: keyGen('callToolSuccess'),
|
|
309
|
+
callToolError: keyGen('callToolError'),
|
|
310
|
+
statusCodeDetected: keyGen('statusCodeDetected'),
|
|
311
|
+
usageInfo: keyGen('usageInfo'),
|
|
312
|
+
exampleUsage: keyGen('exampleUsage'),
|
|
313
|
+
invalidJson: keyGen('invalidJson'),
|
|
314
|
+
usingCommandLineProxy: keyGen('usingCommandLineProxy'),
|
|
315
|
+
invalidProxyFormat: keyGen('invalidProxyFormat'),
|
|
316
|
+
usingEnvProxy: keyGen('usingEnvProxy'),
|
|
317
|
+
usingShellProxy: keyGen('usingShellProxy'),
|
|
318
|
+
noShellProxy: keyGen('noShellProxy'),
|
|
319
|
+
systemProxyDisabled: keyGen('systemProxyDisabled'),
|
|
320
|
+
usingSystemProxy: keyGen('usingSystemProxy'),
|
|
321
|
+
noSystemProxy: keyGen('noSystemProxy'),
|
|
322
|
+
requestFailed: keyGen('requestFailed'),
|
|
323
|
+
fatalError: keyGen('fatalError'),
|
|
324
|
+
startingServer: keyGen('startingServer'),
|
|
325
|
+
fetchingUrl: keyGen('fetchingUrl'),
|
|
326
|
+
usingMode: keyGen('usingMode'),
|
|
327
|
+
fetchFailed: keyGen('fetchFailed'),
|
|
328
|
+
fetchSuccess: keyGen('fetchSuccess'),
|
|
329
|
+
browserModeNeeded: keyGen('browserModeNeeded'),
|
|
330
|
+
retryingWithBrowser: keyGen('retryingWithBrowser'),
|
|
331
|
+
browserModeFetchFailed: keyGen('browserModeFetchFailed'),
|
|
332
|
+
browserModeFetchSuccess: keyGen('browserModeFetchSuccess'),
|
|
333
|
+
serverClosed: keyGen('serverClosed'),
|
|
334
|
+
proxySet: keyGen('proxySet')
|
|
335
|
+
};
|
|
336
|
+
})();
|
|
337
|
+
/**
|
|
338
|
+
* 错误相关键 (Error related keys)
|
|
339
|
+
*/
|
|
340
|
+
export const ERROR_KEYS = (() => {
|
|
341
|
+
const keyGen = createKeyGenerator('error');
|
|
342
|
+
return {
|
|
343
|
+
unexpected: keyGen('unexpected'),
|
|
344
|
+
validation: keyGen('validation'),
|
|
345
|
+
notFound: keyGen('notFound'),
|
|
346
|
+
unauthorized: keyGen('unauthorized'),
|
|
347
|
+
forbidden: keyGen('forbidden'),
|
|
348
|
+
timeout: keyGen('timeout'),
|
|
349
|
+
// 通用错误消息 (Common error messages)
|
|
350
|
+
missingUrl: keyGen('missingUrl'),
|
|
351
|
+
invalidUrl: keyGen('invalidUrl'),
|
|
352
|
+
networkError: keyGen('networkError'),
|
|
353
|
+
browserError: keyGen('browserError'),
|
|
354
|
+
unexpectedError: keyGen('unexpectedError'),
|
|
355
|
+
cloudflareProtection: keyGen('cloudflareProtection'),
|
|
356
|
+
captchaRequired: keyGen('captchaRequired'),
|
|
357
|
+
connectionProblem: keyGen('connectionProblem')
|
|
358
|
+
};
|
|
359
|
+
})();
|
|
360
|
+
/**
|
|
361
|
+
* 工具相关键 (Tools related keys)
|
|
362
|
+
*/
|
|
363
|
+
export const TOOLS_KEYS = (() => {
|
|
364
|
+
const keyGen = createKeyGenerator('tools');
|
|
365
|
+
return {
|
|
366
|
+
fetchHtml: {
|
|
367
|
+
description: keyGen('fetchHtml.description'),
|
|
368
|
+
error: keyGen('fetchHtml.error')
|
|
369
|
+
},
|
|
370
|
+
fetchJson: {
|
|
371
|
+
description: keyGen('fetchJson.description'),
|
|
372
|
+
error: keyGen('fetchJson.error'),
|
|
373
|
+
invalidJson: keyGen('fetchJson.invalidJson')
|
|
374
|
+
},
|
|
375
|
+
fetchTxt: {
|
|
376
|
+
description: keyGen('fetchTxt.description'),
|
|
377
|
+
error: keyGen('fetchTxt.error')
|
|
378
|
+
},
|
|
379
|
+
fetchMarkdown: {
|
|
380
|
+
description: keyGen('fetchMarkdown.description'),
|
|
381
|
+
error: keyGen('fetchMarkdown.error')
|
|
382
|
+
}
|
|
383
|
+
};
|
|
384
|
+
})();
|
|
385
|
+
/**
|
|
386
|
+
* 提示相关键 (Prompts related keys)
|
|
387
|
+
*/
|
|
388
|
+
export const PROMPTS_KEYS = (() => {
|
|
389
|
+
const keyGen = createKeyGenerator('prompts');
|
|
390
|
+
return {
|
|
391
|
+
// 提示列表和获取 (Prompt list and get)
|
|
392
|
+
list: {
|
|
393
|
+
request: keyGen('list.request')
|
|
394
|
+
},
|
|
395
|
+
get: {
|
|
396
|
+
request: keyGen('get.request')
|
|
397
|
+
},
|
|
398
|
+
// 错误消息 (Error messages)
|
|
399
|
+
notFound: keyGen('notFound'),
|
|
400
|
+
missingRequiredArg: keyGen('missingRequiredArg'),
|
|
401
|
+
useBrowserValue: keyGen('useBrowserValue'),
|
|
402
|
+
// 通用提示 (Generic prompt)
|
|
403
|
+
generic: {
|
|
404
|
+
result: keyGen('generic.result'),
|
|
405
|
+
message: keyGen('generic.message'),
|
|
406
|
+
args: keyGen('generic.args')
|
|
407
|
+
},
|
|
408
|
+
// 是/否 (Yes/No)
|
|
409
|
+
yes: keyGen('yes'),
|
|
410
|
+
no: keyGen('no'),
|
|
411
|
+
// 提示描述和参数 (Prompt descriptions and parameters)
|
|
412
|
+
url: {
|
|
413
|
+
description: keyGen('url.description')
|
|
414
|
+
},
|
|
415
|
+
format: {
|
|
416
|
+
description: keyGen('format.description')
|
|
417
|
+
},
|
|
418
|
+
useBrowser: {
|
|
419
|
+
description: keyGen('useBrowser.description')
|
|
420
|
+
},
|
|
421
|
+
selector: {
|
|
422
|
+
description: keyGen('selector.description')
|
|
423
|
+
},
|
|
424
|
+
dataType: {
|
|
425
|
+
description: keyGen('dataType.description')
|
|
426
|
+
},
|
|
427
|
+
error: {
|
|
428
|
+
description: keyGen('error.description')
|
|
429
|
+
},
|
|
430
|
+
// 获取网站提示 (Fetch website prompt)
|
|
431
|
+
fetchWebsite: {
|
|
432
|
+
description: keyGen('fetchWebsite.description'),
|
|
433
|
+
result: keyGen('fetchWebsite.result'),
|
|
434
|
+
message: keyGen('fetchWebsite.message'),
|
|
435
|
+
response: keyGen('fetchWebsite.response'),
|
|
436
|
+
instruction: keyGen('fetchWebsite.instruction'),
|
|
437
|
+
formatInstruction: keyGen('fetchWebsite.formatInstruction'),
|
|
438
|
+
browserInstruction: keyGen('fetchWebsite.browserInstruction')
|
|
439
|
+
},
|
|
440
|
+
// 提取内容提示 (Extract content prompt)
|
|
441
|
+
extractContent: {
|
|
442
|
+
description: keyGen('extractContent.description'),
|
|
443
|
+
result: keyGen('extractContent.result'),
|
|
444
|
+
message: keyGen('extractContent.message'),
|
|
445
|
+
selectorInstruction: keyGen('extractContent.selectorInstruction'),
|
|
446
|
+
dataTypeInstruction: keyGen('extractContent.dataTypeInstruction')
|
|
447
|
+
},
|
|
448
|
+
// 调试获取提示 (Debug fetch prompt)
|
|
449
|
+
debugFetch: {
|
|
450
|
+
description: keyGen('debugFetch.description'),
|
|
451
|
+
result: keyGen('debugFetch.result'),
|
|
452
|
+
message: keyGen('debugFetch.message'),
|
|
453
|
+
errorDetails: keyGen('debugFetch.errorDetails'),
|
|
454
|
+
instruction: keyGen('debugFetch.instruction')
|
|
455
|
+
}
|
|
456
|
+
};
|
|
457
|
+
})();
|
|
458
|
+
/**
|
|
459
|
+
* 节点相关键 (Node related keys)
|
|
460
|
+
*/
|
|
461
|
+
export const NODE_KEYS = (() => {
|
|
462
|
+
const keyGen = createKeyGenerator('node');
|
|
463
|
+
return {
|
|
464
|
+
// 延迟和代理相关 (Delay and proxy related)
|
|
465
|
+
addingDelay: keyGen('addingDelay'),
|
|
466
|
+
noProxy: keyGen('noProxy'),
|
|
467
|
+
usingProxy: keyGen('usingProxy'),
|
|
468
|
+
usingHttpsProxy: keyGen('usingHttpsProxy'),
|
|
469
|
+
usingHttpProxy: keyGen('usingHttpProxy'),
|
|
470
|
+
// 请求相关 (Request related)
|
|
471
|
+
usingUserAgent: keyGen('usingUserAgent'),
|
|
472
|
+
requestDetails: keyGen('requestDetails'),
|
|
473
|
+
requestOptions: keyGen('requestOptions'),
|
|
474
|
+
startingFetch: keyGen('startingFetch'),
|
|
475
|
+
fetchingUrl: keyGen('fetchingUrl'),
|
|
476
|
+
// 响应相关 (Response related)
|
|
477
|
+
responseStatus: keyGen('responseStatus'),
|
|
478
|
+
redirectingTo: keyGen('redirectingTo'),
|
|
479
|
+
constructedFullRedirectUrl: keyGen('constructedFullRedirectUrl'),
|
|
480
|
+
requestSuccess: keyGen('requestSuccess'),
|
|
481
|
+
// 错误相关 (Error related)
|
|
482
|
+
errorResponse: keyGen('errorResponse'),
|
|
483
|
+
errorResponseBody: keyGen('errorResponseBody'),
|
|
484
|
+
errorReadingBody: keyGen('errorReadingBody'),
|
|
485
|
+
fetchError: keyGen('fetchError'),
|
|
486
|
+
requestAborted: keyGen('requestAborted'),
|
|
487
|
+
networkError: keyGen('networkError'),
|
|
488
|
+
tooManyRedirects: keyGen('tooManyRedirects'),
|
|
489
|
+
// 内容类型相关 (Content type related)
|
|
490
|
+
startingHtmlFetch: keyGen('startingHtmlFetch'),
|
|
491
|
+
readingText: keyGen('readingText'),
|
|
492
|
+
htmlContentLength: keyGen('htmlContentLength'),
|
|
493
|
+
htmlFetchError: keyGen('htmlFetchError'),
|
|
494
|
+
startingJsonFetch: keyGen('startingJsonFetch'),
|
|
495
|
+
parsingJson: keyGen('parsingJson'),
|
|
496
|
+
jsonParsed: keyGen('jsonParsed'),
|
|
497
|
+
jsonParseError: keyGen('jsonParseError'),
|
|
498
|
+
jsonFetchError: keyGen('jsonFetchError'),
|
|
499
|
+
startingTxtFetch: keyGen('startingTxtFetch'),
|
|
500
|
+
startingMarkdownFetch: keyGen('startingMarkdownFetch'),
|
|
501
|
+
creatingTurndown: keyGen('creatingTurndown'),
|
|
502
|
+
convertingToMarkdown: keyGen('convertingToMarkdown')
|
|
503
|
+
};
|
|
504
|
+
})();
|