@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
|
@@ -3,74 +3,84 @@
|
|
|
3
3
|
* Co-Author: AI Assistant (Claude)
|
|
4
4
|
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
5
5
|
*/
|
|
6
|
-
import { BROWSER_KEYS } from '../../keys.js';
|
|
6
|
+
import { BROWSER_KEYS } from '../../keys/browser.js';
|
|
7
7
|
// 浏览器相关消息 (Browser related messages)
|
|
8
|
-
export
|
|
8
|
+
export default {
|
|
9
|
+
// 浏览器生命周期 (Browser lifecycle)
|
|
9
10
|
[BROWSER_KEYS.closing]: "Closing browser...",
|
|
10
11
|
[BROWSER_KEYS.closed]: "Browser closed",
|
|
11
12
|
[BROWSER_KEYS.starting]: "Starting new browser instance",
|
|
12
13
|
[BROWSER_KEYS.startingFailed]: "Browser startup failed: {{error}}",
|
|
13
14
|
[BROWSER_KEYS.alreadyRunning]: "Browser is starting, waiting...",
|
|
14
|
-
|
|
15
|
-
[BROWSER_KEYS.
|
|
15
|
+
// 页面操作 (Page operations)
|
|
16
|
+
[BROWSER_KEYS.creatingPage]: "Creating new page",
|
|
17
|
+
[BROWSER_KEYS.navigatingTo]: "Navigating to URL: {{url}}",
|
|
16
18
|
[BROWSER_KEYS.waitingForSelector]: "Waiting for selector: {{selector}}",
|
|
17
|
-
[BROWSER_KEYS.waitingForTimeout]: "Waiting for timeout: {{timeout}}",
|
|
19
|
+
[BROWSER_KEYS.waitingForTimeout]: "Waiting for timeout: {{timeout}}ms",
|
|
18
20
|
[BROWSER_KEYS.scrollingToBottom]: "Auto-scrolling page...",
|
|
21
|
+
[BROWSER_KEYS.scrollError]: "Error while scrolling: {{error}}",
|
|
19
22
|
[BROWSER_KEYS.gettingContent]: "Getting page content...",
|
|
20
|
-
[BROWSER_KEYS.
|
|
21
|
-
|
|
22
|
-
[BROWSER_KEYS.
|
|
23
|
-
[BROWSER_KEYS.
|
|
24
|
-
[BROWSER_KEYS.
|
|
23
|
+
[BROWSER_KEYS.contentLength]: "Content length: {{length}} bytes",
|
|
24
|
+
// Cookie 相关 (Cookie related)
|
|
25
|
+
[BROWSER_KEYS.savingCookies]: "Saving cookies for domain: {{domain}}",
|
|
26
|
+
[BROWSER_KEYS.cookiesSaved]: "Cookies saved successfully",
|
|
27
|
+
[BROWSER_KEYS.loadingCookies]: "Loading cookies for domain: {{domain}}",
|
|
28
|
+
[BROWSER_KEYS.cookiesLoaded]: "Cookies loaded successfully",
|
|
29
|
+
[BROWSER_KEYS.noCookiesFound]: "No cookies found for domain: {{domain}}",
|
|
30
|
+
// 错误相关 (Error related)
|
|
25
31
|
[BROWSER_KEYS.errorLoadingCookies]: "Error loading cookies: {{error}}",
|
|
26
32
|
[BROWSER_KEYS.errorSavingCookies]: "Error saving cookies: {{error}}",
|
|
27
|
-
[BROWSER_KEYS.errorNavigating]: "Error navigating: {{error}}",
|
|
28
|
-
[BROWSER_KEYS.errorGettingContent]: "Error
|
|
33
|
+
[BROWSER_KEYS.errorNavigating]: "Error navigating to URL: {{error}}",
|
|
34
|
+
[BROWSER_KEYS.errorGettingContent]: "Error getting content: {{error}}",
|
|
29
35
|
[BROWSER_KEYS.errorClosingBrowser]: "Error closing browser: {{error}}",
|
|
30
36
|
[BROWSER_KEYS.errorCreatingPage]: "Error creating page: {{error}}",
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
37
|
+
[BROWSER_KEYS.closingError]: "Error during browser closing: {{error}}",
|
|
38
|
+
// 额外的浏览器相关键 (Additional browser related keys)
|
|
39
|
+
[BROWSER_KEYS.waiting]: "Browser is starting, waiting...",
|
|
40
|
+
[BROWSER_KEYS.startupSuccess]: "Browser started successfully",
|
|
41
|
+
[BROWSER_KEYS.navigating]: "Navigating to URL: {{url}}",
|
|
42
|
+
[BROWSER_KEYS.scrolling]: "Auto-scrolling page...",
|
|
43
|
+
[BROWSER_KEYS.scrollCompleted]: "Auto-scroll completed",
|
|
44
|
+
[BROWSER_KEYS.contentTruncated]: "Content too large, truncating...",
|
|
45
|
+
[BROWSER_KEYS.pageClosed]: "Page closed",
|
|
46
|
+
[BROWSER_KEYS.fetchError]: "Error in browser fetch: {{error}}",
|
|
47
|
+
[BROWSER_KEYS.highMemory]: "High memory usage detected: {{usage}}MB",
|
|
48
|
+
[BROWSER_KEYS.closingDueToMemory]: "Closing browser due to high memory usage",
|
|
49
|
+
[BROWSER_KEYS.forcingGC]: "Forcing garbage collection",
|
|
50
|
+
[BROWSER_KEYS.memoryCheckError]: "Error checking memory usage: {{error}}",
|
|
51
|
+
[BROWSER_KEYS.usingCookies]: "Using cookies for domain: {{domain}}",
|
|
52
|
+
[BROWSER_KEYS.usingProxy]: "Using proxy: {{proxy}}",
|
|
53
|
+
// Cloudflare 相关 (Cloudflare related)
|
|
54
|
+
[BROWSER_KEYS.checkingCloudflare]: "Checking for Cloudflare protection",
|
|
55
|
+
[BROWSER_KEYS.cloudflareDetected]: "Cloudflare protection detected",
|
|
56
|
+
[BROWSER_KEYS.simulatingHuman]: "Simulating human interaction to bypass Cloudflare",
|
|
57
|
+
[BROWSER_KEYS.simulatingHumanError]: "Error simulating human interaction: {{error}}",
|
|
58
|
+
[BROWSER_KEYS.stillOnCloudflare]: "Still on Cloudflare page after bypass attempt",
|
|
59
|
+
[BROWSER_KEYS.bypassFailed]: "Cloudflare bypass failed",
|
|
60
|
+
[BROWSER_KEYS.cloudflareError]: "Cloudflare error: {{error}}",
|
|
61
|
+
[BROWSER_KEYS.continuingWithoutBypass]: "Continuing without Cloudflare bypass",
|
|
62
|
+
[BROWSER_KEYS.unableToBypassCloudflare]: "Unable to bypass Cloudflare protection",
|
|
63
|
+
// 获取和重试相关 (Fetch and retry related)
|
|
64
|
+
[BROWSER_KEYS.fetchingWithRetry]: "Fetching with retry: attempt {{attempt}} of {{maxAttempts}}",
|
|
65
|
+
[BROWSER_KEYS.memoryUsage]: "Current memory usage: {{usage}}MB",
|
|
66
|
+
[BROWSER_KEYS.memoryTooHigh]: "Memory usage too high: {{usage}}MB",
|
|
67
|
+
[BROWSER_KEYS.contentTooLarge]: "Content too large: {{size}} bytes",
|
|
68
|
+
[BROWSER_KEYS.failedToParseJSON]: "Failed to parse JSON: {{error}}",
|
|
69
|
+
[BROWSER_KEYS.startingBrowserFetchForMarkdown]: "Starting browser fetch for Markdown",
|
|
70
|
+
[BROWSER_KEYS.errorInBrowserFetchForMarkdown]: "Error in browser fetch for Markdown: {{error}}",
|
|
71
|
+
[BROWSER_KEYS.fetchRequest]: "Fetch request: {{url}}",
|
|
72
|
+
[BROWSER_KEYS.usingStoredCookies]: "Using stored cookies for domain: {{domain}}",
|
|
73
|
+
[BROWSER_KEYS.closingInstance]: "Closing browser instance",
|
|
74
|
+
[BROWSER_KEYS.fetchErrorWithAttempt]: "Fetch error (attempt {{attempt}}): {{error}}",
|
|
75
|
+
[BROWSER_KEYS.retryingAfterDelay]: "Retrying after {{delay}}ms delay",
|
|
76
|
+
// 浏览器启动相关 (Browser startup related)
|
|
77
|
+
[BROWSER_KEYS.browserStartupSuccess]: "Browser startup successful",
|
|
78
|
+
[BROWSER_KEYS.browserStartupFailed]: "Browser startup failed: {{error}}",
|
|
79
|
+
[BROWSER_KEYS.usingCustomChromePath]: "Using custom Chrome path: {{path}}",
|
|
80
|
+
[BROWSER_KEYS.browserDisconnected]: "Browser disconnected",
|
|
81
|
+
[BROWSER_KEYS.waitingForBrowserStart]: "Waiting for browser to start...",
|
|
82
|
+
[BROWSER_KEYS.reusingExistingBrowser]: "Reusing existing browser instance",
|
|
83
|
+
[BROWSER_KEYS.startingBrowser]: "Starting browser...",
|
|
84
|
+
[BROWSER_KEYS.browserStarted]: "Browser started",
|
|
85
|
+
[BROWSER_KEYS.browserStartError]: "Browser start error: {{error}}"
|
|
76
86
|
};
|
|
@@ -3,38 +3,62 @@
|
|
|
3
3
|
* Co-Author: AI Assistant (Claude)
|
|
4
4
|
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
5
5
|
*/
|
|
6
|
+
import { CLIENT_KEYS } from '../../keys/client.js';
|
|
6
7
|
// 客户端相关消息 (Client related messages)
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
8
|
+
export default {
|
|
9
|
+
// 连接相关 (Connection related)
|
|
10
|
+
[CLIENT_KEYS.connecting]: 'Connecting to MCP server...',
|
|
11
|
+
[CLIENT_KEYS.connected]: 'Connected to MCP server',
|
|
12
|
+
[CLIENT_KEYS.connectionFailed]: 'Failed to connect to MCP server: {{error}}',
|
|
13
|
+
[CLIENT_KEYS.disconnected]: 'Disconnected from MCP server',
|
|
14
|
+
[CLIENT_KEYS.reconnecting]: 'Reconnecting to MCP server...',
|
|
15
|
+
// 错误相关 (Error related)
|
|
16
|
+
[CLIENT_KEYS.clientError]: 'Client error: {{error}}',
|
|
17
|
+
[CLIENT_KEYS.transportError]: 'Transport error: {{error}}',
|
|
18
|
+
[CLIENT_KEYS.requestError]: 'Request error: {{error}}',
|
|
19
|
+
[CLIENT_KEYS.fetchError]: 'Fetch error: {{error}}',
|
|
20
|
+
// 请求相关 (Request related)
|
|
21
|
+
[CLIENT_KEYS.requestStarted]: 'Request started: {{id}}',
|
|
22
|
+
[CLIENT_KEYS.requestCompleted]: 'Request completed: {{id}}',
|
|
23
|
+
[CLIENT_KEYS.requestCancelled]: 'Request cancelled: {{id}}',
|
|
24
|
+
// 内容相关 (Content related)
|
|
25
|
+
[CLIENT_KEYS.fetchingHtml]: 'Fetching HTML from {{url}}',
|
|
26
|
+
[CLIENT_KEYS.fetchingJson]: 'Fetching JSON from {{url}}',
|
|
27
|
+
[CLIENT_KEYS.fetchingText]: 'Fetching text from {{url}}',
|
|
28
|
+
[CLIENT_KEYS.fetchingMarkdown]: 'Fetching Markdown from {{url}}',
|
|
29
|
+
[CLIENT_KEYS.fetchSuccessful]: 'Fetch successful',
|
|
30
|
+
[CLIENT_KEYS.contentLength]: 'Content length: {{length}} bytes',
|
|
31
|
+
// 调试相关 (Debug related)
|
|
32
|
+
[CLIENT_KEYS.debugMode]: 'Debug mode: {{enabled}}',
|
|
33
|
+
[CLIENT_KEYS.debugInfo]: 'Debug info: {{info}}',
|
|
34
|
+
// 原有键 (Original keys)
|
|
35
|
+
[CLIENT_KEYS.error]: 'Error: {{error}}',
|
|
36
|
+
[CLIENT_KEYS.callTool]: 'Calling tool: {{name}}',
|
|
37
|
+
[CLIENT_KEYS.callToolSuccess]: 'Tool call successful: {{name}}',
|
|
38
|
+
[CLIENT_KEYS.callToolError]: 'Tool call error: {{name}} - {{error}}',
|
|
39
|
+
[CLIENT_KEYS.statusCodeDetected]: 'Status code detected: {{code}}',
|
|
40
|
+
[CLIENT_KEYS.usageInfo]: 'Usage info: {{info}}',
|
|
41
|
+
[CLIENT_KEYS.exampleUsage]: 'Example usage: {{example}}',
|
|
42
|
+
[CLIENT_KEYS.invalidJson]: 'Invalid JSON: {{error}}',
|
|
43
|
+
[CLIENT_KEYS.usingCommandLineProxy]: 'Using command line proxy: {{proxy}}',
|
|
44
|
+
[CLIENT_KEYS.invalidProxyFormat]: 'Invalid proxy format: {{proxy}}',
|
|
45
|
+
[CLIENT_KEYS.usingEnvProxy]: 'Using environment proxy: {{proxy}}',
|
|
46
|
+
[CLIENT_KEYS.usingShellProxy]: 'Using shell proxy: {{proxy}}',
|
|
47
|
+
[CLIENT_KEYS.noShellProxy]: 'No shell proxy found',
|
|
48
|
+
[CLIENT_KEYS.systemProxyDisabled]: 'System proxy disabled',
|
|
49
|
+
[CLIENT_KEYS.usingSystemProxy]: 'Using system proxy: {{proxy}}',
|
|
50
|
+
[CLIENT_KEYS.noSystemProxy]: 'No system proxy found',
|
|
51
|
+
[CLIENT_KEYS.requestFailed]: 'Request failed: {{error}}',
|
|
52
|
+
[CLIENT_KEYS.fatalError]: 'Fatal error: {{error}}',
|
|
53
|
+
[CLIENT_KEYS.startingServer]: 'Starting server...',
|
|
54
|
+
[CLIENT_KEYS.fetchingUrl]: 'Fetching URL: {{url}}',
|
|
55
|
+
[CLIENT_KEYS.usingMode]: 'Using {{mode}} mode',
|
|
56
|
+
[CLIENT_KEYS.fetchFailed]: 'Fetch failed: {{error}}',
|
|
57
|
+
[CLIENT_KEYS.fetchSuccess]: 'Fetch successful',
|
|
58
|
+
[CLIENT_KEYS.browserModeNeeded]: 'Browser mode needed for: {{url}}',
|
|
59
|
+
[CLIENT_KEYS.retryingWithBrowser]: 'Retrying with browser mode',
|
|
60
|
+
[CLIENT_KEYS.browserModeFetchFailed]: 'Browser mode fetch failed: {{error}}',
|
|
61
|
+
[CLIENT_KEYS.browserModeFetchSuccess]: 'Browser mode fetch successful',
|
|
62
|
+
[CLIENT_KEYS.serverClosed]: 'Server closed',
|
|
63
|
+
[CLIENT_KEYS.proxySet]: 'Proxy set: {{proxy}}'
|
|
40
64
|
};
|
|
@@ -3,16 +3,40 @@
|
|
|
3
3
|
* Co-Author: AI Assistant (Claude)
|
|
4
4
|
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
import { ERROR_KEYS } from '../../keys/errors.js';
|
|
7
|
+
export default {
|
|
8
|
+
// 通用错误日志 (Generic error logging)
|
|
9
|
+
[ERROR_KEYS.occurred]: 'Error occurred: type={{type}}, message={{message}}',
|
|
10
|
+
// 参数错误 (Parameter errors)
|
|
11
|
+
[ERROR_KEYS.missingRequiredParam]: 'Missing required parameter: {{param}}',
|
|
12
|
+
[ERROR_KEYS.invalidUrl]: 'Invalid URL: {{url}}',
|
|
13
|
+
// 请求错误 (Request errors)
|
|
14
|
+
[ERROR_KEYS.requestTimeout]: 'Request timed out after {{timeout}}ms',
|
|
15
|
+
[ERROR_KEYS.maxRedirectsExceeded]: 'Maximum redirects exceeded ({{max}})',
|
|
16
|
+
[ERROR_KEYS.requestFailed]: 'Request failed with status {{status}}: {{message}}',
|
|
17
|
+
[ERROR_KEYS.networkError]: 'Network error: {{message}}',
|
|
18
|
+
// 响应错误 (Response errors)
|
|
19
|
+
[ERROR_KEYS.invalidResponse]: 'Invalid response: {{message}}',
|
|
20
|
+
[ERROR_KEYS.invalidContentType]: 'Invalid content type: {{contentType}}',
|
|
21
|
+
[ERROR_KEYS.invalidJson]: 'Invalid JSON response',
|
|
22
|
+
// 浏览器错误 (Browser errors)
|
|
23
|
+
[ERROR_KEYS.browserInitFailed]: 'Browser initialization failed: {{message}}',
|
|
24
|
+
[ERROR_KEYS.pageLoadFailed]: 'Page load failed: {{message}}',
|
|
25
|
+
// 访问限制错误 (Access restriction errors)
|
|
26
|
+
[ERROR_KEYS.forbidden]: 'Access forbidden (403)',
|
|
27
|
+
[ERROR_KEYS.cloudflareProtection]: 'Cloudflare protection detected',
|
|
28
|
+
[ERROR_KEYS.captchaRequired]: 'CAPTCHA verification required',
|
|
29
|
+
// 连接错误 (Connection errors)
|
|
30
|
+
[ERROR_KEYS.timeout]: 'Connection timed out after {{timeout}}',
|
|
31
|
+
[ERROR_KEYS.connectionProblem]: 'Connection problem detected',
|
|
32
|
+
// 通用错误 (Generic errors)
|
|
33
|
+
[ERROR_KEYS.unknownError]: 'Unknown error: {{message}}',
|
|
34
|
+
// 错误类型键 (Error type keys)
|
|
35
|
+
[ERROR_KEYS.network_error]: 'Network error: {{error}}',
|
|
36
|
+
[ERROR_KEYS.access_denied_error]: 'Access denied: {{error}}',
|
|
37
|
+
[ERROR_KEYS.timeout_error]: 'Timeout error: {{error}}',
|
|
38
|
+
[ERROR_KEYS.parse_error]: 'Parse error: {{error}}',
|
|
39
|
+
[ERROR_KEYS.validation_error]: 'Validation error: {{error}}',
|
|
40
|
+
[ERROR_KEYS.browser_error]: 'Browser error: {{error}}',
|
|
41
|
+
[ERROR_KEYS.unknown_error]: 'Unknown error: {{error}}'
|
|
18
42
|
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Author: Martin <lmccc.dev@gmail.com>
|
|
3
|
+
* Co-Author: AI Assistant (Claude)
|
|
4
|
+
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
5
|
+
*/
|
|
6
|
+
import { FACTORY_KEYS } from '../../keys/factory.js';
|
|
7
|
+
export default {
|
|
8
|
+
// 日志消息 (Log messages)
|
|
9
|
+
[FACTORY_KEYS.creating_fetcher]: 'Creating fetcher of type {{type}}',
|
|
10
|
+
[FACTORY_KEYS.fetcher_created]: '{{type}} fetcher created successfully',
|
|
11
|
+
[FACTORY_KEYS.fetcher_creation_failed]: 'Failed to create {{type}} fetcher: {{error}}',
|
|
12
|
+
[FACTORY_KEYS.invalid_fetcher_type]: 'Invalid fetcher type: {{type}}',
|
|
13
|
+
[FACTORY_KEYS.browser_mode_enabled]: 'Browser mode enabled',
|
|
14
|
+
[FACTORY_KEYS.browser_mode_disabled]: 'Browser mode disabled',
|
|
15
|
+
[FACTORY_KEYS.using_default_mode]: 'Using default mode: {{mode}}',
|
|
16
|
+
[FACTORY_KEYS.initializing]: 'Initializing fetcher factory',
|
|
17
|
+
[FACTORY_KEYS.initialization_complete]: 'Fetcher factory initialization complete',
|
|
18
|
+
[FACTORY_KEYS.initialization_failed]: 'Fetcher factory initialization failed: {{error}}',
|
|
19
|
+
[FACTORY_KEYS.auto_detecting_mode]: 'Auto detecting mode',
|
|
20
|
+
[FACTORY_KEYS.using_browser_mode]: 'Using browser mode',
|
|
21
|
+
[FACTORY_KEYS.using_node_mode]: 'Using Node mode',
|
|
22
|
+
[FACTORY_KEYS.defaultingToNodeMode]: 'Defaulting to Node mode',
|
|
23
|
+
// 为了向后兼容,保留旧的键 (For backward compatibility, keep the old keys)
|
|
24
|
+
creating_fetcher: 'Creating fetcher of type {{type}}',
|
|
25
|
+
fetcher_created: '{{type}} fetcher created successfully',
|
|
26
|
+
fetcher_creation_failed: 'Failed to create {{type}} fetcher: {{error}}',
|
|
27
|
+
invalid_fetcher_type: 'Invalid fetcher type: {{type}}',
|
|
28
|
+
browser_mode_enabled: 'Browser mode enabled',
|
|
29
|
+
browser_mode_disabled: 'Browser mode disabled',
|
|
30
|
+
using_default_mode: 'Using default mode: {{mode}}',
|
|
31
|
+
initializing: 'Initializing fetcher factory',
|
|
32
|
+
initialization_complete: 'Fetcher factory initialization complete',
|
|
33
|
+
initialization_failed: 'Fetcher factory initialization failed: {{error}}',
|
|
34
|
+
auto_detecting_mode: 'Auto detecting mode',
|
|
35
|
+
using_browser_mode: 'Using browser mode',
|
|
36
|
+
using_node_mode: 'Using Node mode',
|
|
37
|
+
defaulting_to_node_mode: 'Defaulting to Node mode'
|
|
38
|
+
};
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* Co-Author: AI Assistant (Claude)
|
|
4
4
|
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
5
5
|
*/
|
|
6
|
-
import { FETCHER_KEYS } from '../../keys.js';
|
|
6
|
+
import { FETCHER_KEYS } from '../../keys/fetcher.js';
|
|
7
7
|
// 获取器相关消息 (Fetcher related messages)
|
|
8
|
-
export
|
|
8
|
+
export default {
|
|
9
9
|
[FETCHER_KEYS.addingDelay]: "Adding random delay",
|
|
10
10
|
[FETCHER_KEYS.delayCompleted]: "Delay completed after {{delay}}ms",
|
|
11
11
|
[FETCHER_KEYS.usingProxy]: "Using proxy: {{proxy}}",
|
|
@@ -14,6 +14,8 @@ export const fetcher = {
|
|
|
14
14
|
[FETCHER_KEYS.notUsingProxy]: "Not using any proxy",
|
|
15
15
|
[FETCHER_KEYS.finalProxyUsed]: "Final proxy used: {{proxy}}",
|
|
16
16
|
[FETCHER_KEYS.noProxy]: "No proxy will be used",
|
|
17
|
+
[FETCHER_KEYS.foundNoProxy]: "Found no proxy: {{noProxy}}",
|
|
18
|
+
[FETCHER_KEYS.systemProxyDisabled]: "System proxy disabled",
|
|
17
19
|
[FETCHER_KEYS.fetchingUrl]: "Fetching URL: {{url}} (Redirect: {{redirect}})",
|
|
18
20
|
[FETCHER_KEYS.usingUserAgent]: "Using User-Agent: {{userAgent}}",
|
|
19
21
|
[FETCHER_KEYS.usingHttpsProxy]: "Using HTTPS proxy",
|
|
@@ -35,6 +37,10 @@ export const fetcher = {
|
|
|
35
37
|
[FETCHER_KEYS.fetchFailed]: "Failed to fetch: {{error}}",
|
|
36
38
|
[FETCHER_KEYS.tooManyRedirects]: "Too many redirects ({{redirects}})",
|
|
37
39
|
[FETCHER_KEYS.startingHtmlFetch]: "Starting HTML fetch",
|
|
40
|
+
[FETCHER_KEYS.fetchingHtml]: "Fetching HTML",
|
|
41
|
+
[FETCHER_KEYS.fetchingJson]: "Fetching JSON",
|
|
42
|
+
[FETCHER_KEYS.fetchingTxt]: "Fetching text",
|
|
43
|
+
[FETCHER_KEYS.fetchingMarkdown]: "Fetching Markdown",
|
|
38
44
|
[FETCHER_KEYS.readingText]: "Reading text content",
|
|
39
45
|
[FETCHER_KEYS.htmlContentLength]: "HTML content length: {{length}} bytes",
|
|
40
46
|
[FETCHER_KEYS.startingJsonFetch]: "Starting JSON fetch",
|
|
@@ -3,20 +3,22 @@
|
|
|
3
3
|
* Co-Author: AI Assistant (Claude)
|
|
4
4
|
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
5
5
|
*/
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
6
|
+
import server from './server.js';
|
|
7
|
+
import client from './client.js';
|
|
8
|
+
import fetcher from './fetcher.js';
|
|
9
|
+
import factory from './factory.js';
|
|
10
|
+
import browser from './browser.js';
|
|
11
|
+
import node from './node.js';
|
|
12
|
+
import tools from './tools.js';
|
|
13
|
+
import errors from './errors.js';
|
|
14
|
+
import resources from './resources.js';
|
|
14
15
|
import prompts from './prompts.js';
|
|
15
16
|
// 英文翻译资源 (English translation resources)
|
|
16
17
|
export const enTranslation = {
|
|
17
18
|
server,
|
|
18
19
|
client,
|
|
19
20
|
fetcher,
|
|
21
|
+
factory,
|
|
20
22
|
browser,
|
|
21
23
|
node,
|
|
22
24
|
tools,
|
|
@@ -3,40 +3,62 @@
|
|
|
3
3
|
* Co-Author: AI Assistant (Claude)
|
|
4
4
|
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
5
5
|
*/
|
|
6
|
+
import { NODE_KEYS } from '../../keys/node.js';
|
|
6
7
|
// Node获取器相关消息 (Node fetcher related messages)
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
8
|
+
export default {
|
|
9
|
+
// 延迟和代理相关 (Delay and proxy related)
|
|
10
|
+
[NODE_KEYS.addingDelay]: 'Adding delay: {{delay}}ms',
|
|
11
|
+
[NODE_KEYS.noProxy]: 'No proxy',
|
|
12
|
+
[NODE_KEYS.usingProxy]: 'Using proxy: {{proxy}}',
|
|
13
|
+
[NODE_KEYS.usingHttpsProxy]: 'Using HTTPS proxy',
|
|
14
|
+
[NODE_KEYS.usingHttpProxy]: 'Using HTTP proxy',
|
|
15
|
+
// 系统代理相关 (System proxy related)
|
|
16
|
+
[NODE_KEYS.checkingProxyEnv]: 'Checking proxy environment variables',
|
|
17
|
+
[NODE_KEYS.envVarValue]: 'Environment variable {{envVar}} = {{value}}',
|
|
18
|
+
[NODE_KEYS.foundSystemProxy]: 'Found system proxy: {{proxy}}',
|
|
19
|
+
[NODE_KEYS.checkingSystemEnvVars]: 'Checking system environment variables, platform: {{platform}}',
|
|
20
|
+
[NODE_KEYS.windowsEnvVars]: 'Windows environment variables: {{output}}',
|
|
21
|
+
[NODE_KEYS.foundWindowsEnvProxy]: 'Found Windows environment proxy: {{proxy}}',
|
|
22
|
+
[NODE_KEYS.errorGettingWindowsEnvVars]: 'Error getting Windows environment variables: {{error}}',
|
|
23
|
+
[NODE_KEYS.unixEnvVars]: 'Unix environment variables: {{output}}',
|
|
24
|
+
[NODE_KEYS.foundUnixEnvProxy]: 'Found Unix environment proxy: {{proxy}}',
|
|
25
|
+
[NODE_KEYS.errorGettingUnixEnvVars]: 'Error getting Unix environment variables: {{error}}',
|
|
26
|
+
[NODE_KEYS.noSystemProxyFound]: 'No system proxy found',
|
|
27
|
+
[NODE_KEYS.errorGettingSystemEnvVars]: 'Error getting system environment variables: {{error}}',
|
|
28
|
+
[NODE_KEYS.foundNoProxy]: 'Found NO_PROXY setting: {{noProxy}}',
|
|
29
|
+
// 请求相关 (Request related)
|
|
30
|
+
[NODE_KEYS.usingUserAgent]: "Using User-Agent: {{userAgent}}",
|
|
31
|
+
[NODE_KEYS.requestDetails]: "Request details: method={{method}}, URL={{url}}",
|
|
32
|
+
[NODE_KEYS.requestOptions]: "Request options: {{options}}",
|
|
33
|
+
[NODE_KEYS.startingFetch]: "Starting fetch: {{url}}",
|
|
34
|
+
[NODE_KEYS.fetchingUrl]: "Fetching URL: {{url}}",
|
|
35
|
+
// 响应相关 (Response related)
|
|
36
|
+
[NODE_KEYS.responseStatus]: "Response status: {{status}}",
|
|
37
|
+
[NODE_KEYS.redirectingTo]: "Redirecting to: {{url}}",
|
|
38
|
+
[NODE_KEYS.constructedFullRedirectUrl]: "Constructed full redirect URL: {{url}}",
|
|
39
|
+
[NODE_KEYS.requestSuccess]: "Request successful",
|
|
40
|
+
// 错误相关 (Error related)
|
|
41
|
+
[NODE_KEYS.errorResponse]: "Error response: {{status}}",
|
|
42
|
+
[NODE_KEYS.errorResponseBody]: "Error response body: {{body}}",
|
|
43
|
+
[NODE_KEYS.errorReadingBody]: "Error reading response body: {{error}}",
|
|
44
|
+
[NODE_KEYS.fetchError]: "Fetch error: {{error}}",
|
|
45
|
+
[NODE_KEYS.requestAborted]: "Request aborted",
|
|
46
|
+
[NODE_KEYS.networkError]: "Network error: {{code}}",
|
|
47
|
+
[NODE_KEYS.tooManyRedirects]: "Too many redirects",
|
|
48
|
+
// 内容类型相关 (Content type related)
|
|
49
|
+
[NODE_KEYS.startingHtmlFetch]: 'Starting HTML fetch',
|
|
50
|
+
[NODE_KEYS.readingText]: 'Reading text content',
|
|
51
|
+
[NODE_KEYS.htmlContentLength]: 'HTML content length: {{length}} bytes',
|
|
52
|
+
[NODE_KEYS.htmlFetchError]: 'Error fetching HTML: {{error}}',
|
|
53
|
+
[NODE_KEYS.startingJsonFetch]: 'Starting JSON fetch',
|
|
54
|
+
[NODE_KEYS.parsingJson]: 'Parsing JSON',
|
|
55
|
+
[NODE_KEYS.jsonParsed]: 'JSON parsed successfully',
|
|
56
|
+
[NODE_KEYS.jsonParseError]: 'JSON parse error: {{error}}',
|
|
57
|
+
[NODE_KEYS.jsonFetchError]: 'Error fetching JSON: {{error}}',
|
|
58
|
+
[NODE_KEYS.startingTxtFetch]: 'Starting plain text fetch',
|
|
59
|
+
[NODE_KEYS.textContentLength]: 'Text content length: {{length}} bytes',
|
|
60
|
+
[NODE_KEYS.startingMarkdownFetch]: 'Starting Markdown fetch',
|
|
61
|
+
[NODE_KEYS.creatingTurndown]: 'Creating Turndown service',
|
|
62
|
+
[NODE_KEYS.convertingToMarkdown]: 'Converting HTML to Markdown',
|
|
63
|
+
[NODE_KEYS.markdownContentLength]: 'Markdown content length: {{length}} bytes'
|
|
42
64
|
};
|