@j0hanz/superfetch 1.1.1 → 1.1.3

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.
Files changed (206) hide show
  1. package/README.md +57 -32
  2. package/dist/config/formatting.d.ts +9 -0
  3. package/dist/config/formatting.d.ts.map +1 -0
  4. package/dist/config/formatting.js +11 -0
  5. package/dist/config/formatting.js.map +1 -0
  6. package/dist/config/index.d.ts +16 -2
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/index.js +43 -14
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/config/types/content.d.ts +107 -0
  11. package/dist/config/types/content.d.ts.map +1 -0
  12. package/dist/config/types/content.js +2 -0
  13. package/dist/config/types/content.js.map +1 -0
  14. package/dist/config/types/runtime.d.ts +78 -0
  15. package/dist/config/types/runtime.d.ts.map +1 -0
  16. package/dist/config/types/runtime.js +2 -0
  17. package/dist/config/types/runtime.js.map +1 -0
  18. package/dist/config/types/tools.d.ts +99 -0
  19. package/dist/config/types/tools.d.ts.map +1 -0
  20. package/dist/config/types/tools.js +2 -0
  21. package/dist/config/types/tools.js.map +1 -0
  22. package/dist/config/types.d.ts +3 -296
  23. package/dist/config/types.d.ts.map +1 -1
  24. package/dist/http/auth.d.ts +3 -0
  25. package/dist/http/auth.d.ts.map +1 -0
  26. package/dist/http/auth.js +34 -0
  27. package/dist/http/auth.js.map +1 -0
  28. package/dist/http/cors.d.ts +8 -0
  29. package/dist/http/cors.d.ts.map +1 -0
  30. package/dist/http/cors.js +47 -0
  31. package/dist/http/cors.js.map +1 -0
  32. package/dist/http/mcp-routes.d.ts +5 -0
  33. package/dist/http/mcp-routes.d.ts.map +1 -0
  34. package/dist/http/mcp-routes.js +110 -0
  35. package/dist/http/mcp-routes.js.map +1 -0
  36. package/dist/http/mcp-session.d.ts +12 -0
  37. package/dist/http/mcp-session.d.ts.map +1 -0
  38. package/dist/http/mcp-session.js +209 -0
  39. package/dist/http/mcp-session.js.map +1 -0
  40. package/dist/http/mcp-validation.d.ts +3 -0
  41. package/dist/http/mcp-validation.d.ts.map +1 -0
  42. package/dist/http/mcp-validation.js +34 -0
  43. package/dist/http/mcp-validation.js.map +1 -0
  44. package/dist/http/rate-limit.d.ts +13 -0
  45. package/dist/http/rate-limit.d.ts.map +1 -0
  46. package/dist/http/rate-limit.js +91 -0
  47. package/dist/http/rate-limit.js.map +1 -0
  48. package/dist/http/server.d.ts +4 -0
  49. package/dist/http/server.d.ts.map +1 -0
  50. package/dist/http/server.js +183 -0
  51. package/dist/http/server.js.map +1 -0
  52. package/dist/http/sessions.d.ts +15 -0
  53. package/dist/http/sessions.d.ts.map +1 -0
  54. package/dist/http/sessions.js +64 -0
  55. package/dist/http/sessions.js.map +1 -0
  56. package/dist/index.js +26 -223
  57. package/dist/index.js.map +1 -1
  58. package/dist/middleware/error-handler.d.ts +2 -2
  59. package/dist/middleware/error-handler.d.ts.map +1 -1
  60. package/dist/middleware/error-handler.js +46 -15
  61. package/dist/middleware/error-handler.js.map +1 -1
  62. package/dist/resources/cached-content.d.ts.map +1 -1
  63. package/dist/resources/cached-content.js +104 -44
  64. package/dist/resources/cached-content.js.map +1 -1
  65. package/dist/resources/index.d.ts.map +1 -1
  66. package/dist/resources/index.js +77 -69
  67. package/dist/resources/index.js.map +1 -1
  68. package/dist/server.d.ts.map +1 -1
  69. package/dist/server.js +9 -3
  70. package/dist/server.js.map +1 -1
  71. package/dist/services/cache.d.ts +13 -1
  72. package/dist/services/cache.d.ts.map +1 -1
  73. package/dist/services/cache.js +90 -13
  74. package/dist/services/cache.js.map +1 -1
  75. package/dist/services/context.d.ts +9 -0
  76. package/dist/services/context.d.ts.map +1 -0
  77. package/dist/services/context.js +9 -0
  78. package/dist/services/context.js.map +1 -0
  79. package/dist/services/extractor.d.ts.map +1 -1
  80. package/dist/services/extractor.js +122 -87
  81. package/dist/services/extractor.js.map +1 -1
  82. package/dist/services/fetcher/agents.d.ts +4 -0
  83. package/dist/services/fetcher/agents.d.ts.map +1 -0
  84. package/dist/services/fetcher/agents.js +111 -0
  85. package/dist/services/fetcher/agents.js.map +1 -0
  86. package/dist/services/fetcher/errors.d.ts +5 -0
  87. package/dist/services/fetcher/errors.d.ts.map +1 -0
  88. package/dist/services/fetcher/errors.js +71 -0
  89. package/dist/services/fetcher/errors.js.map +1 -0
  90. package/dist/services/fetcher/headers.d.ts +2 -0
  91. package/dist/services/fetcher/headers.d.ts.map +1 -0
  92. package/dist/services/fetcher/headers.js +28 -0
  93. package/dist/services/fetcher/headers.js.map +1 -0
  94. package/dist/services/fetcher/interceptors.d.ts +10 -0
  95. package/dist/services/fetcher/interceptors.d.ts.map +1 -0
  96. package/dist/services/fetcher/interceptors.js +82 -0
  97. package/dist/services/fetcher/interceptors.js.map +1 -0
  98. package/dist/services/fetcher/redirects.d.ts +6 -0
  99. package/dist/services/fetcher/redirects.d.ts.map +1 -0
  100. package/dist/services/fetcher/redirects.js +67 -0
  101. package/dist/services/fetcher/redirects.js.map +1 -0
  102. package/dist/services/fetcher/response.d.ts +5 -0
  103. package/dist/services/fetcher/response.d.ts.map +1 -0
  104. package/dist/services/fetcher/response.js +39 -0
  105. package/dist/services/fetcher/response.js.map +1 -0
  106. package/dist/services/fetcher/retry-policy.d.ts +28 -0
  107. package/dist/services/fetcher/retry-policy.d.ts.map +1 -0
  108. package/dist/services/fetcher/retry-policy.js +138 -0
  109. package/dist/services/fetcher/retry-policy.js.map +1 -0
  110. package/dist/services/fetcher.d.ts +2 -1
  111. package/dist/services/fetcher.d.ts.map +1 -1
  112. package/dist/services/fetcher.js +61 -254
  113. package/dist/services/fetcher.js.map +1 -1
  114. package/dist/services/logger.d.ts.map +1 -1
  115. package/dist/services/logger.js +14 -5
  116. package/dist/services/logger.js.map +1 -1
  117. package/dist/services/parser.d.ts +1 -0
  118. package/dist/services/parser.d.ts.map +1 -1
  119. package/dist/services/parser.js +55 -35
  120. package/dist/services/parser.js.map +1 -1
  121. package/dist/tools/handlers/fetch-links/link-extractor.d.ts +4 -0
  122. package/dist/tools/handlers/fetch-links/link-extractor.d.ts.map +1 -0
  123. package/dist/tools/handlers/fetch-links/link-extractor.js +163 -0
  124. package/dist/tools/handlers/fetch-links/link-extractor.js.map +1 -0
  125. package/dist/tools/handlers/fetch-links.tool.d.ts.map +1 -1
  126. package/dist/tools/handlers/fetch-links.tool.js +78 -116
  127. package/dist/tools/handlers/fetch-links.tool.js.map +1 -1
  128. package/dist/tools/handlers/fetch-markdown.tool.d.ts +3 -13
  129. package/dist/tools/handlers/fetch-markdown.tool.d.ts.map +1 -1
  130. package/dist/tools/handlers/fetch-markdown.tool.js +74 -83
  131. package/dist/tools/handlers/fetch-markdown.tool.js.map +1 -1
  132. package/dist/tools/handlers/fetch-single.shared.d.ts +26 -0
  133. package/dist/tools/handlers/fetch-single.shared.d.ts.map +1 -0
  134. package/dist/tools/handlers/fetch-single.shared.js +49 -0
  135. package/dist/tools/handlers/fetch-single.shared.js.map +1 -0
  136. package/dist/tools/handlers/fetch-url.tool.d.ts.map +1 -1
  137. package/dist/tools/handlers/fetch-url.tool.js +82 -54
  138. package/dist/tools/handlers/fetch-url.tool.js.map +1 -1
  139. package/dist/tools/handlers/fetch-urls/processor.d.ts +13 -0
  140. package/dist/tools/handlers/fetch-urls/processor.d.ts.map +1 -0
  141. package/dist/tools/handlers/fetch-urls/processor.js +153 -0
  142. package/dist/tools/handlers/fetch-urls/processor.js.map +1 -0
  143. package/dist/tools/handlers/fetch-urls/response.d.ts +3 -0
  144. package/dist/tools/handlers/fetch-urls/response.d.ts.map +1 -0
  145. package/dist/tools/handlers/fetch-urls/response.js +58 -0
  146. package/dist/tools/handlers/fetch-urls/response.js.map +1 -0
  147. package/dist/tools/handlers/fetch-urls/validation.d.ts +6 -0
  148. package/dist/tools/handlers/fetch-urls/validation.d.ts.map +1 -0
  149. package/dist/tools/handlers/fetch-urls/validation.js +18 -0
  150. package/dist/tools/handlers/fetch-urls/validation.js.map +1 -0
  151. package/dist/tools/handlers/fetch-urls.tool.d.ts.map +1 -1
  152. package/dist/tools/handlers/fetch-urls.tool.js +104 -197
  153. package/dist/tools/handlers/fetch-urls.tool.js.map +1 -1
  154. package/dist/tools/index.d.ts.map +1 -1
  155. package/dist/tools/index.js +36 -237
  156. package/dist/tools/index.js.map +1 -1
  157. package/dist/tools/schemas.d.ts +357 -0
  158. package/dist/tools/schemas.d.ts.map +1 -0
  159. package/dist/tools/schemas.js +272 -0
  160. package/dist/tools/schemas.js.map +1 -0
  161. package/dist/tools/utils/cache-vary.d.ts +3 -0
  162. package/dist/tools/utils/cache-vary.d.ts.map +1 -0
  163. package/dist/tools/utils/cache-vary.js +44 -0
  164. package/dist/tools/utils/cache-vary.js.map +1 -0
  165. package/dist/tools/utils/common.d.ts +2 -2
  166. package/dist/tools/utils/common.d.ts.map +1 -1
  167. package/dist/tools/utils/common.js +5 -1
  168. package/dist/tools/utils/common.js.map +1 -1
  169. package/dist/tools/utils/content-transform.d.ts +16 -0
  170. package/dist/tools/utils/content-transform.d.ts.map +1 -0
  171. package/dist/tools/utils/content-transform.js +49 -0
  172. package/dist/tools/utils/content-transform.js.map +1 -0
  173. package/dist/tools/utils/fetch-pipeline.d.ts.map +1 -1
  174. package/dist/tools/utils/fetch-pipeline.js +32 -18
  175. package/dist/tools/utils/fetch-pipeline.js.map +1 -1
  176. package/dist/tools/utils/inline-content.d.ts +11 -0
  177. package/dist/tools/utils/inline-content.d.ts.map +1 -0
  178. package/dist/tools/utils/inline-content.js +39 -0
  179. package/dist/tools/utils/inline-content.js.map +1 -0
  180. package/dist/tools/utils/markdown-toc.d.ts +3 -0
  181. package/dist/tools/utils/markdown-toc.d.ts.map +1 -0
  182. package/dist/tools/utils/markdown-toc.js +35 -0
  183. package/dist/tools/utils/markdown-toc.js.map +1 -0
  184. package/dist/tools/utils/tool-response.d.ts +9 -0
  185. package/dist/tools/utils/tool-response.d.ts.map +1 -0
  186. package/dist/tools/utils/tool-response.js +19 -0
  187. package/dist/tools/utils/tool-response.js.map +1 -0
  188. package/dist/transformers/jsonl.transformer.d.ts.map +1 -1
  189. package/dist/transformers/jsonl.transformer.js +51 -28
  190. package/dist/transformers/jsonl.transformer.js.map +1 -1
  191. package/dist/transformers/markdown.transformer.d.ts.map +1 -1
  192. package/dist/transformers/markdown.transformer.js +82 -111
  193. package/dist/transformers/markdown.transformer.js.map +1 -1
  194. package/dist/utils/header-normalizer.d.ts +5 -0
  195. package/dist/utils/header-normalizer.d.ts.map +1 -0
  196. package/dist/utils/header-normalizer.js +25 -0
  197. package/dist/utils/header-normalizer.js.map +1 -0
  198. package/dist/utils/tool-error-handler.d.ts +1 -0
  199. package/dist/utils/tool-error-handler.d.ts.map +1 -1
  200. package/dist/utils/tool-error-handler.js +29 -1
  201. package/dist/utils/tool-error-handler.js.map +1 -1
  202. package/dist/utils/url-validator.d.ts +0 -3
  203. package/dist/utils/url-validator.d.ts.map +1 -1
  204. package/dist/utils/url-validator.js +98 -18
  205. package/dist/utils/url-validator.js.map +1 -1
  206. package/package.json +11 -6
@@ -1,217 +1,124 @@
1
- import * as cache from '../../services/cache.js';
2
- import { extractContent } from '../../services/extractor.js';
3
- import { fetchUrlWithRetry } from '../../services/fetcher.js';
4
- import { logDebug, logError, logWarn } from '../../services/logger.js';
5
- import { parseHtml } from '../../services/parser.js';
1
+ import { logDebug, logError } from '../../services/logger.js';
6
2
  import { createToolErrorResponse } from '../../utils/tool-error-handler.js';
7
- import { validateAndNormalizeUrl } from '../../utils/url-validator.js';
8
- import { createContentMetadataBlock, determineContentExtractionSource, enforceContentLengthLimit, } from '../utils/common.js';
9
- import { toJsonl } from '../../transformers/jsonl.transformer.js';
10
- import { htmlToMarkdown } from '../../transformers/markdown.transformer.js';
11
- const MAX_URLS_PER_BATCH = 10;
12
- const DEFAULT_CONCURRENCY = 3;
13
- const MAX_CONCURRENCY = 5;
3
+ import { processSingleUrl, } from './fetch-urls/processor.js';
4
+ import { createBatchResponse } from './fetch-urls/response.js';
5
+ import { DEFAULT_CONCURRENCY, MAX_CONCURRENCY, validateBatchInput, } from './fetch-urls/validation.js';
14
6
  export const FETCH_URLS_TOOL_NAME = 'fetch-urls';
15
7
  export const FETCH_URLS_TOOL_DESCRIPTION = 'Fetches multiple URLs in parallel and converts them to AI-readable format (JSONL or Markdown). Supports concurrency control and continues on individual failures.';
16
- function createBatchResponse(results) {
17
- const summary = {
18
- total: results.length,
19
- successful: results.filter((result) => result.success).length,
20
- failed: results.filter((result) => !result.success).length,
21
- cached: results.filter((result) => result.cached).length,
22
- totalContentBlocks: results.reduce((sum, result) => sum + (result.contentBlocks ?? 0), 0),
23
- };
24
- const structuredContent = {
25
- results,
26
- summary,
27
- fetchedAt: new Date().toISOString(),
28
- };
29
- return {
30
- content: [
31
- {
32
- type: 'text',
33
- text: JSON.stringify(structuredContent, null, 2),
34
- },
35
- ],
36
- structuredContent,
37
- };
8
+ function extractRejectionMessage({ reason }) {
9
+ return toErrorMessage(reason);
38
10
  }
39
- function attemptCacheRetrievalForUrl(normalizedUrl, format) {
40
- const cacheNamespace = format === 'markdown' ? 'markdown' : 'url';
41
- const cacheKey = cache.createCacheKey(cacheNamespace, normalizedUrl);
42
- if (!cacheKey)
43
- return null;
44
- const cached = cache.get(cacheKey);
45
- if (!cached)
46
- return null;
47
- logDebug('Batch cache hit', { url: normalizedUrl });
48
- return {
49
- url: normalizedUrl,
50
- success: true,
51
- content: cached.content,
52
- cached: true,
53
- };
11
+ function toErrorMessage(reason) {
12
+ if (reason instanceof Error)
13
+ return reason.message;
14
+ if (typeof reason === 'string')
15
+ return reason;
16
+ if (hasMessage(reason))
17
+ return reason.message;
18
+ return 'Unknown error';
54
19
  }
55
- function transformContentForFormat(html, normalizedUrl, metadata, format) {
56
- if (format === 'markdown') {
57
- return {
58
- content: htmlToMarkdown(html, metadata),
59
- };
60
- }
61
- const blocks = parseHtml(html);
62
- return {
63
- content: toJsonl(blocks, metadata),
64
- contentBlocks: blocks.length,
65
- };
20
+ function isRecord(value) {
21
+ return value !== null && typeof value === 'object';
66
22
  }
67
- function processContentExtraction(html, normalizedUrl, options) {
68
- if (!options.extractMainContent) {
69
- const { metadata: extractedMeta } = extractContent(html, normalizedUrl, {
70
- extractArticle: false,
71
- });
72
- return {
73
- sourceHtml: html,
74
- title: extractedMeta.title,
75
- metadata: createContentMetadataBlock(normalizedUrl, null, extractedMeta, false, options.includeMetadata),
76
- };
77
- }
78
- const { article, metadata: extractedMeta } = extractContent(html, normalizedUrl, { extractArticle: true });
79
- const shouldExtractFromArticle = determineContentExtractionSource(true, article);
80
- return {
81
- sourceHtml: shouldExtractFromArticle ? article.content : html,
82
- title: shouldExtractFromArticle ? article.title : extractedMeta.title,
83
- metadata: createContentMetadataBlock(normalizedUrl, article, extractedMeta, shouldExtractFromArticle, options.includeMetadata),
84
- };
23
+ function hasMessage(value) {
24
+ if (!isRecord(value))
25
+ return false;
26
+ return typeof value.message === 'string';
27
+ }
28
+ function normalizeConcurrency(input, urlCount) {
29
+ const requested = input.concurrency ?? DEFAULT_CONCURRENCY;
30
+ return Math.min(Math.max(1, requested), MAX_CONCURRENCY, urlCount);
31
+ }
32
+ async function processBatch(urls, options, batchIndex, total) {
33
+ logDebug('Processing batch', {
34
+ batch: batchIndex,
35
+ urls: urls.length,
36
+ total,
37
+ });
38
+ const tasks = urls.map((url) => processSingleUrl(url, options));
39
+ return Promise.allSettled(tasks);
85
40
  }
86
- async function processSingleUrl(url, options) {
41
+ export async function fetchUrlsToolHandler(input) {
87
42
  try {
88
- const normalizedUrl = validateAndNormalizeUrl(url);
89
- const cachedResult = attemptCacheRetrievalForUrl(normalizedUrl, options.format);
90
- if (cachedResult)
91
- return cachedResult;
92
- const html = await fetchUrlWithRetry(normalizedUrl);
93
- const { sourceHtml, title, metadata } = processContentExtraction(html, normalizedUrl, options);
94
- const { content, contentBlocks } = transformContentForFormat(sourceHtml, normalizedUrl, metadata, options.format);
95
- const { content: finalContent } = enforceContentLengthLimit(content, options.maxContentLength);
96
- const cacheNamespace = options.format === 'markdown' ? 'markdown' : 'url';
97
- const cacheKey = cache.createCacheKey(cacheNamespace, normalizedUrl);
98
- if (cacheKey) {
99
- cache.set(cacheKey, finalContent);
100
- }
101
- return {
102
- url: normalizedUrl,
103
- success: true,
104
- title,
105
- content: finalContent,
106
- contentBlocks,
107
- cached: false,
108
- };
43
+ return await executeFetchUrls(input);
109
44
  }
110
45
  catch (error) {
111
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
112
- const errorCode = error instanceof Error &&
113
- 'code' in error &&
114
- typeof error.code === 'string'
115
- ? error.code
116
- : 'FETCH_ERROR';
117
- logWarn('Batch URL processing failed', { url, error: errorMessage });
118
- return {
119
- url,
120
- success: false,
121
- cached: false,
122
- error: errorMessage,
123
- errorCode,
124
- };
46
+ logError('fetch-urls tool error', error instanceof Error ? error : undefined);
47
+ return createToolErrorResponse(error instanceof Error ? error.message : 'Failed to fetch URLs', '', 'BATCH_ERROR');
125
48
  }
126
49
  }
127
- function extractRejectionMessage({ reason }) {
128
- if (reason instanceof Error) {
129
- return reason.message;
130
- }
131
- if (typeof reason === 'string') {
132
- return reason;
50
+ async function executeFetchUrls(input) {
51
+ const validUrls = resolveValidUrls(input);
52
+ if (!Array.isArray(validUrls))
53
+ return validUrls;
54
+ const batchConfig = buildBatchConfig(input, validUrls.length);
55
+ logDebug('Starting batch URL fetch', {
56
+ urlCount: validUrls.length,
57
+ concurrency: batchConfig.concurrency,
58
+ format: batchConfig.format,
59
+ });
60
+ const processOptions = buildSingleUrlOptions(input, batchConfig.format);
61
+ const results = await collectBatchResults(validUrls, processOptions, batchConfig.concurrency, batchConfig.continueOnError);
62
+ if (!batchConfig.continueOnError) {
63
+ const failureResponse = buildBatchFailure(results);
64
+ if (failureResponse)
65
+ return failureResponse;
133
66
  }
134
- if (reason &&
135
- typeof reason === 'object' &&
136
- 'message' in reason &&
137
- typeof reason.message === 'string') {
138
- const msg = reason.message;
139
- return msg;
140
- }
141
- return 'Unknown error';
67
+ return createBatchResponse(results);
142
68
  }
143
- function validateBatchInput(input) {
144
- if (input.urls.length === 0) {
145
- return createToolErrorResponse('At least one URL is required', '', 'VALIDATION_ERROR');
146
- }
147
- if (input.urls.length > MAX_URLS_PER_BATCH) {
148
- return createToolErrorResponse(`Maximum ${MAX_URLS_PER_BATCH} URLs allowed per batch`, '', 'VALIDATION_ERROR');
149
- }
150
- const validUrls = input.urls.filter((url) => typeof url === 'string' && url.trim().length > 0);
151
- if (validUrls.length === 0) {
152
- return createToolErrorResponse('No valid URLs provided', '', 'VALIDATION_ERROR');
153
- }
154
- return validUrls;
69
+ function resolveValidUrls(input) {
70
+ return validateBatchInput(input);
155
71
  }
156
- export async function fetchUrlsToolHandler(input) {
157
- try {
158
- const validationResult = validateBatchInput(input);
159
- if (!Array.isArray(validationResult)) {
160
- return validationResult;
161
- }
162
- const validUrls = validationResult;
163
- const concurrency = Math.min(Math.max(1, input.concurrency ?? DEFAULT_CONCURRENCY), MAX_CONCURRENCY);
164
- const continueOnError = input.continueOnError ?? true;
165
- const format = input.format ?? 'jsonl';
166
- logDebug('Starting batch URL fetch', {
167
- urlCount: validUrls.length,
168
- concurrency,
169
- format,
72
+ function buildBatchConfig(input, urlCount) {
73
+ return {
74
+ concurrency: normalizeConcurrency(input, urlCount),
75
+ continueOnError: input.continueOnError ?? true,
76
+ format: input.format ?? 'jsonl',
77
+ };
78
+ }
79
+ function buildSingleUrlOptions(input, format) {
80
+ return {
81
+ extractMainContent: input.extractMainContent ?? true,
82
+ includeMetadata: input.includeMetadata ?? true,
83
+ maxContentLength: input.maxContentLength,
84
+ format,
85
+ requestOptions: {
86
+ customHeaders: input.customHeaders,
87
+ timeout: input.timeout,
88
+ },
89
+ maxRetries: input.retries,
90
+ };
91
+ }
92
+ function mapSettledResults(batch, settledResults) {
93
+ return settledResults.map((result, index) => result.status === 'fulfilled'
94
+ ? result.value
95
+ : {
96
+ url: batch[index] ?? 'unknown',
97
+ success: false,
98
+ cached: false,
99
+ error: extractRejectionMessage(result),
100
+ errorCode: 'PROMISE_REJECTED',
170
101
  });
171
- const processOptions = {
172
- extractMainContent: input.extractMainContent ?? true,
173
- includeMetadata: input.includeMetadata ?? true,
174
- maxContentLength: input.maxContentLength,
175
- format,
176
- };
177
- // Process URLs in batches using native Promise.allSettled
178
- const results = [];
179
- const batchSize = Math.min(concurrency, validUrls.length);
180
- for (let i = 0; i < validUrls.length; i += batchSize) {
181
- const batch = validUrls.slice(i, i + batchSize);
182
- const batchTasks = batch.map((url) => processSingleUrl(url, processOptions));
183
- logDebug('Processing batch', {
184
- batch: i / batchSize + 1,
185
- urls: batch.length,
186
- total: validUrls.length,
187
- });
188
- const settledResults = await Promise.allSettled(batchTasks);
189
- const batchResults = settledResults.map((result, index) => {
190
- if (result.status === 'fulfilled') {
191
- return result.value;
192
- }
193
- return {
194
- url: batch[index] ?? 'unknown',
195
- success: false,
196
- cached: false,
197
- error: extractRejectionMessage(result),
198
- errorCode: 'PROMISE_REJECTED',
199
- };
200
- });
201
- results.push(...batchResults);
202
- }
203
- if (!continueOnError) {
204
- const firstError = results.find((result) => !result.success);
205
- if (firstError && !firstError.success) {
206
- const errorMsg = firstError.error ?? 'Unknown error';
207
- return createToolErrorResponse(`Batch failed: ${errorMsg}`, firstError.url, firstError.errorCode ?? 'BATCH_ERROR');
208
- }
102
+ }
103
+ async function collectBatchResults(validUrls, processOptions, concurrency, continueOnError) {
104
+ const results = [];
105
+ const batchSize = Math.min(concurrency, validUrls.length);
106
+ for (let i = 0; i < validUrls.length; i += batchSize) {
107
+ const batch = validUrls.slice(i, i + batchSize);
108
+ const settledResults = await processBatch(batch, processOptions, i / batchSize + 1, validUrls.length);
109
+ const mapped = mapSettledResults(batch, settledResults);
110
+ results.push(...mapped);
111
+ if (!continueOnError && mapped.some((result) => !result.success)) {
112
+ break;
209
113
  }
210
- return createBatchResponse(results);
211
- }
212
- catch (error) {
213
- logError('fetch-urls tool error', error instanceof Error ? error : undefined);
214
- return createToolErrorResponse(error instanceof Error ? error.message : 'Failed to fetch URLs', '', 'BATCH_ERROR');
215
114
  }
115
+ return results;
116
+ }
117
+ function buildBatchFailure(results) {
118
+ const firstError = results.find((result) => !result.success);
119
+ if (!firstError)
120
+ return null;
121
+ const errorMsg = firstError.error ?? 'Unknown error';
122
+ return createToolErrorResponse(`Batch failed: ${errorMsg}`, firstError.url, firstError.errorCode ?? 'BATCH_ERROR');
216
123
  }
217
124
  //# sourceMappingURL=fetch-urls.tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-urls.tool.js","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-urls.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-urls.tool.js","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-urls.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiQzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4CrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoEzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAarD"}