@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 +1 @@
1
- {"version":3,"file":"fetch-markdown.tool.js","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-markdown.tool.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EACL,uBAAuB,EACvB,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAE5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AACzD,MAAM,CAAC,MAAM,+BAA+B,GAC1C,oIAAoI,CAAC;AASvI,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAE3C,OAAO,SAAS;SACb,WAAW,EAAE;SACb,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB;IAClC,MAAM,YAAY,GAAG,qBAAqB,CAAC;IAC3C,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEzB,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;YAAE,SAAS;QAErC,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,SAAS,CAAC,MAAM;YACvB,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAY,EACZ,GAAW,EACX,OAAyB;IAEzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;QACrE,cAAc,EAAE,OAAO,CAAC,kBAAkB;KAC3C,CAAC,CAAC;IAEH,MAAM,wBAAwB,GAAG,gCAAgC,CAC/D,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CACR,CAAC;IAEF,MAAM,QAAQ,GAAG,0BAA0B,CACzC,GAAG,EACH,OAAO,EACP,aAAa,EACb,wBAAwB,EACxB,OAAO,CAAC,eAAe,CACxB,CAAC;IAEF,MAAM,UAAU,GAAG,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,MAAM,KAAK,GAAG,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;IAE7E,IAAI,QAAQ,GAAG,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnE,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,OAAO,CAAC,gBAAgB,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC3E,QAAQ,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;QAClF,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAyB;IAEzB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACf,OAAO,uBAAuB,CAAC,iBAAiB,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,OAAO,GAAqB;QAChC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,IAAI;QACpD,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;QAC9C,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK;QACvC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;KACzC,CAAC;IAEF,QAAQ,CAAC,mBAAmB,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAA0B;YACjE,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,cAAc,EAAE,UAAU;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC;YACjE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ;YAClC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACxB,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,SAAS;gBACd,SAAS,EAAE,KAAK;aACjB,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG;YACxB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAChD,MAAM,EAAE,MAAM,CAAC,SAAS;YACxB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;SACnE,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAC/B,iBAAiB,EACjB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EACnC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACjC,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACtD,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CACN,2BAA2B,EAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACF,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fetch-markdown.tool.js","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-markdown.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { PipelineResult, ToolContentBlock } from '../../config/types.js';
2
+ import { applyInlineContentLimit } from '../utils/inline-content.js';
3
+ type SharedFetchFormat = 'jsonl' | 'markdown';
4
+ interface SharedFetchOptions<T extends {
5
+ content: string;
6
+ }> {
7
+ readonly url: string;
8
+ readonly format: SharedFetchFormat;
9
+ readonly extractMainContent: boolean;
10
+ readonly includeMetadata: boolean;
11
+ readonly maxContentLength?: number;
12
+ readonly customHeaders?: Record<string, string>;
13
+ readonly retries?: number;
14
+ readonly timeout?: number;
15
+ readonly transform: (html: string, normalizedUrl: string) => T;
16
+ }
17
+ export declare function performSharedFetch<T extends {
18
+ content: string;
19
+ }>(options: SharedFetchOptions<T>): Promise<{
20
+ pipeline: PipelineResult<T>;
21
+ inlineResult: ReturnType<typeof applyInlineContentLimit>;
22
+ }>;
23
+ export type InlineResult = ReturnType<typeof applyInlineContentLimit>;
24
+ export declare function buildToolContentBlocks(structuredContent: Record<string, unknown>, fromCache: boolean, inlineResult: InlineResult, resourceName: string): ToolContentBlock[];
25
+ export {};
26
+ //# sourceMappingURL=fetch-single.shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-single.shared.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-single.shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,KAAK,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9C,UAAU,kBAAkB,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE;IACxD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC,CAAC;CAChE;AAED,wBAAsB,kBAAkB,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EACpE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC;IACT,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC5B,YAAY,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;CAC1D,CAAC,CA8BD;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AA8BtE,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM,GACnB,gBAAgB,EAAE,CAQpB"}
@@ -0,0 +1,49 @@
1
+ import { config } from '../../config/index.js';
2
+ import { appendHeaderVary } from '../utils/cache-vary.js';
3
+ import { executeFetchPipeline } from '../utils/fetch-pipeline.js';
4
+ import { applyInlineContentLimit } from '../utils/inline-content.js';
5
+ export async function performSharedFetch(options) {
6
+ const cacheNamespace = options.format === 'markdown' ? 'markdown' : 'url';
7
+ const cacheVary = appendHeaderVary({
8
+ format: options.format,
9
+ extractMainContent: options.extractMainContent,
10
+ includeMetadata: options.includeMetadata,
11
+ maxContentLength: options.maxContentLength,
12
+ ...(options.format === 'markdown' ? {} : { contentBlocks: true }),
13
+ }, options.customHeaders);
14
+ const pipeline = await executeFetchPipeline({
15
+ url: options.url,
16
+ cacheNamespace,
17
+ customHeaders: options.customHeaders,
18
+ retries: options.retries,
19
+ timeout: options.timeout,
20
+ cacheVary,
21
+ transform: options.transform,
22
+ });
23
+ const inlineResult = applyInlineContentLimit(pipeline.data.content, pipeline.cacheKey ?? null, options.format);
24
+ return { pipeline, inlineResult };
25
+ }
26
+ function serializeStructuredContent(structuredContent, fromCache) {
27
+ return JSON.stringify(structuredContent, fromCache ? undefined : null, fromCache ? undefined : 2);
28
+ }
29
+ function buildResourceLink(inlineResult, name) {
30
+ if (!inlineResult.resourceUri) {
31
+ return null;
32
+ }
33
+ return {
34
+ type: 'resource_link',
35
+ uri: inlineResult.resourceUri,
36
+ name,
37
+ mimeType: inlineResult.resourceMimeType,
38
+ description: `Content exceeds inline limit (${config.constants.maxInlineContentChars} chars)`,
39
+ };
40
+ }
41
+ export function buildToolContentBlocks(structuredContent, fromCache, inlineResult, resourceName) {
42
+ const textBlock = {
43
+ type: 'text',
44
+ text: serializeStructuredContent(structuredContent, fromCache),
45
+ };
46
+ const resourceLink = buildResourceLink(inlineResult, resourceName);
47
+ return resourceLink ? [textBlock, resourceLink] : [textBlock];
48
+ }
49
+ //# sourceMappingURL=fetch-single.shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-single.shared.js","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-single.shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAgBrE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA8B;IAK9B,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1E,MAAM,SAAS,GAAG,gBAAgB,CAChC;QACE,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;KAClE,EACD,OAAO,CAAC,aAAa,CACtB,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAI;QAC7C,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,cAAc;QACd,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS;QACT,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,uBAAuB,CAC1C,QAAQ,CAAC,IAAI,CAAC,OAAO,EACrB,QAAQ,CAAC,QAAQ,IAAI,IAAI,EACzB,OAAO,CAAC,MAAM,CACf,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACpC,CAAC;AAID,SAAS,0BAA0B,CACjC,iBAA0C,EAC1C,SAAkB;IAElB,OAAO,IAAI,CAAC,SAAS,CACnB,iBAAiB,EACjB,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAC5B,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,YAA0B,EAC1B,IAAY;IAEZ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,YAAY,CAAC,WAAW;QAC7B,IAAI;QACJ,QAAQ,EAAE,YAAY,CAAC,gBAAgB;QACvC,WAAW,EAAE,iCAAiC,MAAM,CAAC,SAAS,CAAC,qBAAqB,SAAS;KAC9F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,iBAA0C,EAC1C,SAAkB,EAClB,YAA0B,EAC1B,YAAoB;IAEpB,MAAM,SAAS,GAAqB;QAClC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,0BAA0B,CAAC,iBAAiB,EAAE,SAAS,CAAC;KAC/D,CAAC;IAEF,MAAM,YAAY,GAAG,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACnE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAChE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-url.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-url.tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAEb,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAmB/B,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,0BAA0B,6JACqH,CAAC;AAoC7J,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA+D3B"}
1
+ {"version":3,"file":"fetch-url.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-url.tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAGb,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAmB/B,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,0BAA0B,6JACqH,CAAC;AA0H7J,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAU3B"}
@@ -1,72 +1,100 @@
1
- import { extractContent } from '../../services/extractor.js';
2
1
  import { logDebug, logError } from '../../services/logger.js';
3
- import { parseHtml } from '../../services/parser.js';
4
2
  import { createToolErrorResponse, handleToolError, } from '../../utils/tool-error-handler.js';
5
- import { createContentMetadataBlock, determineContentExtractionSource, enforceContentLengthLimit, } from '../utils/common.js';
6
- import { executeFetchPipeline } from '../utils/fetch-pipeline.js';
7
- import { toJsonl } from '../../transformers/jsonl.transformer.js';
3
+ import { transformHtmlToJsonl, transformHtmlToMarkdownWithBlocks, } from '../utils/content-transform.js';
4
+ import { buildToolContentBlocks, performSharedFetch, } from './fetch-single.shared.js';
8
5
  export const FETCH_URL_TOOL_NAME = 'fetch-url';
9
6
  export const FETCH_URL_TOOL_DESCRIPTION = 'Fetches a webpage and converts it to AI-readable JSONL format with semantic content blocks. Supports custom headers, retries, and content length limits.';
10
- function transformToJsonl(html, url, options) {
11
- const { article, metadata: extractedMeta } = extractContent(html, url, {
12
- extractArticle: options.extractMainContent,
13
- });
14
- const shouldExtractFromArticle = determineContentExtractionSource(options.extractMainContent, article);
15
- const sourceHtml = shouldExtractFromArticle ? article.content : html;
16
- const contentBlocks = parseHtml(sourceHtml);
17
- const metadata = createContentMetadataBlock(url, article, extractedMeta, shouldExtractFromArticle, options.includeMetadata);
18
- const title = shouldExtractFromArticle ? article.title : extractedMeta.title;
7
+ function resolveFetchUrlOptions(input) {
19
8
  return {
20
- content: toJsonl(contentBlocks, metadata),
21
- contentBlocks: contentBlocks.length,
22
- title,
9
+ extractMainContent: input.extractMainContent ?? true,
10
+ includeMetadata: input.includeMetadata ?? true,
11
+ maxContentLength: input.maxContentLength,
12
+ format: input.format ?? 'jsonl',
23
13
  };
24
14
  }
25
- export async function fetchUrlToolHandler(input) {
26
- if (!input.url) {
27
- return createToolErrorResponse('URL is required', '', 'VALIDATION_ERROR');
15
+ function buildFetchUrlTransform(options) {
16
+ return (html, url) => options.format === 'markdown'
17
+ ? transformHtmlToMarkdownWithBlocks(html, url, options)
18
+ : transformHtmlToJsonl(html, url, options);
19
+ }
20
+ function buildFetchUrlStructuredContent(format, pipeline, inlineResult) {
21
+ const structuredContent = {
22
+ url: pipeline.url,
23
+ title: pipeline.data.title,
24
+ contentBlocks: pipeline.data.contentBlocks,
25
+ fetchedAt: pipeline.fetchedAt,
26
+ format,
27
+ contentSize: inlineResult.contentSize,
28
+ cached: pipeline.fromCache,
29
+ };
30
+ if (pipeline.data.truncated) {
31
+ structuredContent.truncated = true;
28
32
  }
29
- const extractMainContent = input.extractMainContent ?? true;
30
- const includeMetadata = input.includeMetadata ?? true;
33
+ if (inlineResult.truncated) {
34
+ structuredContent.truncated = true;
35
+ }
36
+ if (typeof inlineResult.content === 'string') {
37
+ structuredContent.content = inlineResult.content;
38
+ }
39
+ if (inlineResult.resourceUri) {
40
+ structuredContent.resourceUri = inlineResult.resourceUri;
41
+ structuredContent.resourceMimeType = inlineResult.resourceMimeType;
42
+ }
43
+ return structuredContent;
44
+ }
45
+ function getInlineErrorResponse(inlineResult, url) {
46
+ if (!inlineResult.error)
47
+ return null;
48
+ return createToolErrorResponse(inlineResult.error, url, 'INTERNAL_ERROR');
49
+ }
50
+ function logFetchUrlStart(url, options) {
31
51
  logDebug('Fetching URL', {
32
- url: input.url,
33
- extractMainContent,
34
- includeMetadata,
52
+ url,
53
+ extractMainContent: options.extractMainContent,
54
+ includeMetadata: options.includeMetadata,
55
+ format: options.format,
35
56
  });
57
+ }
58
+ async function fetchUrlPipeline(url, input, options) {
59
+ return performSharedFetch({
60
+ url,
61
+ format: options.format,
62
+ extractMainContent: options.extractMainContent,
63
+ includeMetadata: options.includeMetadata,
64
+ maxContentLength: options.maxContentLength,
65
+ customHeaders: input.customHeaders,
66
+ retries: input.retries,
67
+ timeout: input.timeout,
68
+ transform: buildFetchUrlTransform(options),
69
+ });
70
+ }
71
+ function buildFetchUrlResponse(pipeline, inlineResult, format) {
72
+ const structuredContent = buildFetchUrlStructuredContent(format, pipeline, inlineResult);
73
+ return {
74
+ content: buildToolContentBlocks(structuredContent, pipeline.fromCache, inlineResult, 'Fetched content'),
75
+ structuredContent,
76
+ };
77
+ }
78
+ export async function fetchUrlToolHandler(input) {
36
79
  try {
37
- const result = await executeFetchPipeline({
38
- url: input.url,
39
- cacheNamespace: 'url',
40
- customHeaders: input.customHeaders,
41
- retries: input.retries,
42
- transform: (html, url) => transformToJsonl(html, url, { extractMainContent, includeMetadata }),
43
- serialize: (data) => data.content,
44
- deserialize: (cached) => ({
45
- content: cached,
46
- contentBlocks: 0,
47
- title: undefined,
48
- }),
49
- });
50
- const { content, truncated } = enforceContentLengthLimit(result.data.content, input.maxContentLength);
51
- const structuredContent = {
52
- url: result.url,
53
- title: result.data.title,
54
- contentBlocks: result.data.contentBlocks,
55
- fetchedAt: result.fetchedAt,
56
- format: 'jsonl',
57
- content,
58
- cached: result.fromCache,
59
- ...(truncated && { truncated }),
60
- };
61
- const jsonOutput = JSON.stringify(structuredContent, result.fromCache ? undefined : null, result.fromCache ? undefined : 2);
62
- return {
63
- content: [{ type: 'text', text: jsonOutput }],
64
- structuredContent,
65
- };
80
+ return await executeFetchUrl(input);
66
81
  }
67
82
  catch (error) {
68
83
  logError('fetch-url tool error', error instanceof Error ? error : undefined);
69
84
  return handleToolError(error, input.url, 'Failed to fetch URL');
70
85
  }
71
86
  }
87
+ async function executeFetchUrl(input) {
88
+ const { url } = input;
89
+ if (!url) {
90
+ return createToolErrorResponse('URL is required', '', 'VALIDATION_ERROR');
91
+ }
92
+ const options = resolveFetchUrlOptions(input);
93
+ logFetchUrlStart(url, options);
94
+ const { pipeline, inlineResult } = await fetchUrlPipeline(url, input, options);
95
+ const inlineError = getInlineErrorResponse(inlineResult, url);
96
+ if (inlineError)
97
+ return inlineError;
98
+ return buildFetchUrlResponse(pipeline, inlineResult, options.format);
99
+ }
72
100
  //# sourceMappingURL=fetch-url.tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-url.tool.js","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-url.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-url.tool.js","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-url.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { BatchUrlResult, FetchOptions, FetchUrlsInput } from '../../../config/types.js';
2
+ type Format = NonNullable<FetchUrlsInput['format']>;
3
+ interface SingleUrlProcessOptions {
4
+ readonly extractMainContent: boolean;
5
+ readonly includeMetadata: boolean;
6
+ readonly maxContentLength?: number;
7
+ readonly format: Format;
8
+ readonly requestOptions?: FetchOptions;
9
+ readonly maxRetries?: number;
10
+ }
11
+ export declare function processSingleUrl(url: string, options: SingleUrlProcessOptions): Promise<BatchUrlResult>;
12
+ export type { SingleUrlProcessOptions };
13
+ //# sourceMappingURL=processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../../src/tools/handlers/fetch-urls/processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAalC,KAAK,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEpD,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA0ED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAMzB;AAuGD,YAAY,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,153 @@
1
+ import { logWarn } from '../../../services/logger.js';
2
+ import { appendHeaderVary } from '../../utils/cache-vary.js';
3
+ import { enforceContentLengthLimit } from '../../utils/common.js';
4
+ import { transformHtmlToJsonl, transformHtmlToMarkdown, } from '../../utils/content-transform.js';
5
+ import { executeFetchPipeline } from '../../utils/fetch-pipeline.js';
6
+ import { applyInlineContentLimit } from '../../utils/inline-content.js';
7
+ function isCachedUrlEntry(value) {
8
+ if (!isRecord(value))
9
+ return false;
10
+ return hasValidCachedFields(value);
11
+ }
12
+ function hasValidCachedFields(value) {
13
+ if (!isString(value.content))
14
+ return false;
15
+ if (!isOptionalString(value.title))
16
+ return false;
17
+ if (!isOptionalNumber(value.contentBlocks))
18
+ return false;
19
+ if (!isOptionalBoolean(value.truncated))
20
+ return false;
21
+ return true;
22
+ }
23
+ function deserializeCachedEntry(payload) {
24
+ try {
25
+ const parsed = JSON.parse(payload);
26
+ return isCachedUrlEntry(parsed) ? parsed : undefined;
27
+ }
28
+ catch {
29
+ return undefined;
30
+ }
31
+ }
32
+ function buildCacheVary(options, customHeaders) {
33
+ return appendHeaderVary({
34
+ format: options.format,
35
+ extractMainContent: options.extractMainContent,
36
+ includeMetadata: options.includeMetadata,
37
+ maxContentLength: options.maxContentLength ?? null,
38
+ ...(options.format === 'markdown' ? {} : { contentBlocks: true }),
39
+ }, customHeaders);
40
+ }
41
+ function transformHtmlForBatch(html, url, options) {
42
+ if (options.format === 'markdown') {
43
+ const { markdown, title, truncated } = transformHtmlToMarkdown(html, url, {
44
+ extractMainContent: options.extractMainContent,
45
+ includeMetadata: options.includeMetadata,
46
+ maxContentLength: options.maxContentLength,
47
+ generateToc: false,
48
+ });
49
+ return { content: markdown, title, truncated };
50
+ }
51
+ const { content, contentBlocks, title, truncated } = transformHtmlToJsonl(html, url, {
52
+ extractMainContent: options.extractMainContent,
53
+ includeMetadata: options.includeMetadata,
54
+ maxContentLength: options.maxContentLength,
55
+ });
56
+ return { content, contentBlocks, title, truncated };
57
+ }
58
+ export async function processSingleUrl(url, options) {
59
+ try {
60
+ return await processSingleUrlInternal(url, options);
61
+ }
62
+ catch (error) {
63
+ return mapProcessError(url, error);
64
+ }
65
+ }
66
+ async function processSingleUrlInternal(url, options) {
67
+ const result = await runBatchPipeline(url, options);
68
+ const inlineResult = applyInlineContentLimit(result.data.content, result.cacheKey ?? null, options.format);
69
+ if (inlineResult.error) {
70
+ return mapInlineFailure(result.url, inlineResult.error);
71
+ }
72
+ return mapInlineSuccess(result, inlineResult);
73
+ }
74
+ function mapProcessError(url, error) {
75
+ const errorMessage = resolveErrorMessage(error);
76
+ const errorCode = resolveErrorCode(error);
77
+ logWarn('Batch URL processing failed', { url, error: errorMessage });
78
+ return {
79
+ url,
80
+ success: false,
81
+ cached: false,
82
+ error: errorMessage,
83
+ errorCode,
84
+ };
85
+ }
86
+ function resolveErrorMessage(error) {
87
+ return error instanceof Error ? error.message : 'Unknown error';
88
+ }
89
+ function resolveErrorCode(error) {
90
+ if (!isRecord(error))
91
+ return 'FETCH_ERROR';
92
+ const { code } = error;
93
+ return typeof code === 'string' ? code : 'FETCH_ERROR';
94
+ }
95
+ async function runBatchPipeline(url, options) {
96
+ const cacheVary = buildCacheVary(options, options.requestOptions?.customHeaders);
97
+ const cacheNamespace = options.format === 'markdown' ? 'markdown' : 'url';
98
+ return executeFetchPipeline({
99
+ url,
100
+ cacheNamespace,
101
+ customHeaders: options.requestOptions?.customHeaders,
102
+ retries: options.maxRetries,
103
+ timeout: options.requestOptions?.timeout,
104
+ cacheVary,
105
+ serialize: JSON.stringify,
106
+ deserialize: deserializeCachedEntry,
107
+ transform: (html, normalizedUrl) => {
108
+ const transformed = transformHtmlForBatch(html, normalizedUrl, options);
109
+ const { content } = enforceContentLengthLimit(transformed.content, options.maxContentLength);
110
+ return { ...transformed, content };
111
+ },
112
+ });
113
+ }
114
+ function mapInlineSuccess(result, inlineResult) {
115
+ const truncated = result.data.truncated ?? inlineResult.truncated;
116
+ return {
117
+ url: result.url,
118
+ success: true,
119
+ title: result.data.title,
120
+ content: inlineResult.content,
121
+ contentSize: inlineResult.contentSize,
122
+ resourceUri: inlineResult.resourceUri,
123
+ resourceMimeType: inlineResult.resourceMimeType,
124
+ contentBlocks: result.data.contentBlocks,
125
+ cached: result.fromCache,
126
+ ...(truncated ? { truncated: true } : {}),
127
+ };
128
+ }
129
+ function mapInlineFailure(url, errorMessage) {
130
+ return {
131
+ url,
132
+ success: false,
133
+ cached: false,
134
+ error: errorMessage,
135
+ errorCode: 'INTERNAL_ERROR',
136
+ };
137
+ }
138
+ function isRecord(value) {
139
+ return value !== null && typeof value === 'object';
140
+ }
141
+ function isString(value) {
142
+ return typeof value === 'string';
143
+ }
144
+ function isOptionalString(value) {
145
+ return value === undefined || isString(value);
146
+ }
147
+ function isOptionalNumber(value) {
148
+ return value === undefined || typeof value === 'number';
149
+ }
150
+ function isOptionalBoolean(value) {
151
+ return value === undefined || typeof value === 'boolean';
152
+ }
153
+ //# sourceMappingURL=processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../../src/tools/handlers/fetch-urls/processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { BatchResponseContent, BatchUrlResult, ToolResponse } from '../../../config/types.js';
2
+ export declare function createBatchResponse(results: BatchUrlResult[]): ToolResponse<BatchResponseContent>;
3
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../src/tools/handlers/fetch-urls/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,cAAc,EACd,YAAY,EACb,MAAM,0BAA0B,CAAC;AAelC,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EAAE,GACxB,YAAY,CAAC,oBAAoB,CAAC,CAqBpC"}
@@ -0,0 +1,58 @@
1
+ import { normalizeToolErrorCode } from '../../../utils/tool-error-handler.js';
2
+ function normalizeBatchResults(results) {
3
+ return results.map((result) => {
4
+ if (!result.errorCode)
5
+ return result;
6
+ const normalized = normalizeToolErrorCode(result.errorCode);
7
+ return normalized === result.errorCode
8
+ ? result
9
+ : { ...result, errorCode: normalized };
10
+ });
11
+ }
12
+ export function createBatchResponse(results) {
13
+ const normalizedResults = normalizeBatchResults(results);
14
+ const summary = buildBatchSummary(normalizedResults);
15
+ const structuredContent = {
16
+ results: normalizedResults,
17
+ summary,
18
+ fetchedAt: new Date().toISOString(),
19
+ };
20
+ const resourceLinks = buildResourceLinks(normalizedResults);
21
+ return {
22
+ content: [
23
+ {
24
+ type: 'text',
25
+ text: JSON.stringify(structuredContent, null, 2),
26
+ },
27
+ ...resourceLinks,
28
+ ],
29
+ structuredContent,
30
+ };
31
+ }
32
+ function buildBatchSummary(results) {
33
+ return {
34
+ total: results.length,
35
+ successful: countBy(results, (result) => result.success),
36
+ failed: countBy(results, (result) => !result.success),
37
+ cached: countBy(results, (result) => Boolean(result.cached)),
38
+ totalContentBlocks: sumBy(results, (result) => result.contentBlocks ?? 0),
39
+ };
40
+ }
41
+ function buildResourceLinks(results) {
42
+ return results.filter(hasResourceUri).map((result) => ({
43
+ type: 'resource_link',
44
+ uri: result.resourceUri,
45
+ name: `Fetched content for ${result.url}`,
46
+ mimeType: result.resourceMimeType,
47
+ }));
48
+ }
49
+ function hasResourceUri(result) {
50
+ return typeof result.resourceUri === 'string';
51
+ }
52
+ function countBy(items, predicate) {
53
+ return items.reduce((count, item) => (predicate(item) ? count + 1 : count), 0);
54
+ }
55
+ function sumBy(items, selector) {
56
+ return items.reduce((total, item) => total + selector(item), 0);
57
+ }
58
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../../src/tools/handlers/fetch-urls/response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { FetchUrlsInput, ToolResponseBase } from '../../../config/types.js';
2
+ export declare const MAX_URLS_PER_BATCH = 10;
3
+ export declare const DEFAULT_CONCURRENCY = 3;
4
+ export declare const MAX_CONCURRENCY = 5;
5
+ export declare function validateBatchInput(input: FetchUrlsInput): string[] | ToolResponseBase;
6
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/tools/handlers/fetch-urls/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAIlC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,GACpB,MAAM,EAAE,GAAG,gBAAgB,CA8B7B"}
@@ -0,0 +1,18 @@
1
+ import { createToolErrorResponse } from '../../../utils/tool-error-handler.js';
2
+ export const MAX_URLS_PER_BATCH = 10;
3
+ export const DEFAULT_CONCURRENCY = 3;
4
+ export const MAX_CONCURRENCY = 5;
5
+ export function validateBatchInput(input) {
6
+ if (input.urls.length === 0) {
7
+ return createToolErrorResponse('At least one URL is required', '', 'VALIDATION_ERROR');
8
+ }
9
+ if (input.urls.length > MAX_URLS_PER_BATCH) {
10
+ return createToolErrorResponse(`Maximum ${MAX_URLS_PER_BATCH} URLs allowed per batch`, '', 'VALIDATION_ERROR');
11
+ }
12
+ const validUrls = input.urls.filter((url) => typeof url === 'string' && url.trim().length > 0);
13
+ if (validUrls.length === 0) {
14
+ return createToolErrorResponse('No valid URLs provided', '', 'VALIDATION_ERROR');
15
+ }
16
+ return validUrls;
17
+ }
18
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/tools/handlers/fetch-urls/validation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,MAAM,UAAU,kBAAkB,CAChC,KAAqB;IAErB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,uBAAuB,CAC5B,8BAA8B,EAC9B,EAAE,EACF,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QAC3C,OAAO,uBAAuB,CAC5B,WAAW,kBAAkB,yBAAyB,EACtD,EAAE,EACF,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAC1D,CAAC;IAEF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,uBAAuB,CAC5B,wBAAwB,EACxB,EAAE,EACF,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-urls.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-urls.tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,cAAc,EAGd,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAuB/B,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,2BAA2B,sKAC6H,CAAC;AAuQtK,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAyF3B"}
1
+ {"version":3,"file":"fetch-urls.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/fetch-urls.tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EACd,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAmB/B,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,2BAA2B,sKAC6H,CAAC;AA6CtK,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAe3B"}