recker 1.0.20-next.de24f7d → 1.0.20-next.e194d90

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 (433) hide show
  1. package/README.md +31 -0
  2. package/dist/ai/adaptive-timeout.d.ts +0 -1
  3. package/dist/ai/client.d.ts +0 -1
  4. package/dist/ai/client.js +6 -0
  5. package/dist/ai/index.d.ts +3 -1
  6. package/dist/ai/index.js +3 -0
  7. package/dist/ai/providers/anthropic.d.ts +0 -1
  8. package/dist/ai/providers/base.d.ts +0 -1
  9. package/dist/ai/providers/google.d.ts +59 -0
  10. package/dist/ai/providers/google.js +305 -0
  11. package/dist/ai/providers/index.d.ts +4 -1
  12. package/dist/ai/providers/index.js +2 -0
  13. package/dist/ai/providers/ollama.d.ts +44 -0
  14. package/dist/ai/providers/ollama.js +240 -0
  15. package/dist/ai/providers/openai.d.ts +0 -1
  16. package/dist/ai/rate-limiter.d.ts +0 -1
  17. package/dist/ai/vector/index.d.ts +2 -0
  18. package/dist/ai/vector/index.js +2 -0
  19. package/dist/ai/vector/similarity.d.ts +2 -0
  20. package/dist/ai/vector/similarity.js +27 -0
  21. package/dist/ai/vector/store.d.ts +27 -0
  22. package/dist/ai/vector/store.js +82 -0
  23. package/dist/bench/generator.d.ts +0 -1
  24. package/dist/bench/stats.d.ts +0 -1
  25. package/dist/cache/basic-file-storage.d.ts +12 -0
  26. package/dist/cache/basic-file-storage.js +50 -0
  27. package/dist/cache/file-storage.d.ts +25 -11
  28. package/dist/cache/file-storage.js +175 -30
  29. package/dist/cache/memory-limits.d.ts +0 -1
  30. package/dist/cache/memory-storage.d.ts +0 -1
  31. package/dist/cache/redis-storage.d.ts +0 -1
  32. package/dist/cli/handler.d.ts +2 -1
  33. package/dist/cli/handler.js +36 -5
  34. package/dist/cli/index.d.ts +0 -2
  35. package/dist/cli/index.js +559 -6
  36. package/dist/cli/presets.d.ts +0 -1
  37. package/dist/cli/tui/ai-chat.d.ts +0 -1
  38. package/dist/cli/tui/load-dashboard.d.ts +0 -1
  39. package/dist/cli/tui/scroll-buffer.d.ts +0 -1
  40. package/dist/cli/tui/search-panel.d.ts +0 -1
  41. package/dist/cli/tui/shell-search.d.ts +0 -1
  42. package/dist/cli/tui/shell.d.ts +0 -1
  43. package/dist/cli/tui/shell.js +1 -1
  44. package/dist/cli/tui/websocket.d.ts +0 -1
  45. package/dist/constants/http-status.d.ts +0 -1
  46. package/dist/constants.d.ts +0 -1
  47. package/dist/contract/index.d.ts +0 -1
  48. package/dist/cookies/memory-cookie-jar.d.ts +0 -1
  49. package/dist/core/client.d.ts +0 -1
  50. package/dist/core/client.js +1 -1
  51. package/dist/core/errors.d.ts +0 -1
  52. package/dist/core/index.d.ts +0 -1
  53. package/dist/core/request-promise.d.ts +0 -1
  54. package/dist/core/request.d.ts +0 -1
  55. package/dist/core/response.d.ts +0 -1
  56. package/dist/dns/index.d.ts +0 -1
  57. package/dist/dns/propagation.d.ts +0 -1
  58. package/dist/events/request-events.d.ts +0 -1
  59. package/dist/index.d.ts +1 -1
  60. package/dist/index.js +1 -0
  61. package/dist/mcp/client.d.ts +0 -1
  62. package/dist/mcp/contract.d.ts +0 -1
  63. package/dist/mcp/embeddings-loader.d.ts +0 -1
  64. package/dist/mcp/geoip-loader.d.ts +0 -1
  65. package/dist/mcp/index.d.ts +0 -1
  66. package/dist/mcp/ip-intel.d.ts +0 -1
  67. package/dist/mcp/search/hybrid-search.d.ts +0 -1
  68. package/dist/mcp/search/index.d.ts +0 -1
  69. package/dist/mcp/search/math.d.ts +0 -1
  70. package/dist/mcp/search/types.d.ts +0 -1
  71. package/dist/mcp/server.d.ts +6 -2
  72. package/dist/mcp/server.js +193 -151
  73. package/dist/mcp/tools/loader.d.ts +2 -0
  74. package/dist/mcp/tools/loader.js +41 -0
  75. package/dist/mcp/tools/network.d.ts +3 -0
  76. package/dist/mcp/tools/network.js +267 -0
  77. package/dist/mcp/tools/registry.d.ts +17 -0
  78. package/dist/mcp/tools/registry.js +37 -0
  79. package/dist/mcp/types.d.ts +0 -1
  80. package/dist/plugins/auth/api-key.d.ts +8 -0
  81. package/dist/plugins/auth/api-key.js +27 -0
  82. package/dist/plugins/auth/auth0.d.ts +33 -0
  83. package/dist/plugins/auth/auth0.js +94 -0
  84. package/dist/plugins/auth/aws-sigv4.d.ts +10 -0
  85. package/dist/plugins/auth/aws-sigv4.js +88 -0
  86. package/dist/plugins/auth/azure-ad.d.ts +48 -0
  87. package/dist/plugins/auth/azure-ad.js +152 -0
  88. package/dist/plugins/auth/basic.d.ts +7 -0
  89. package/dist/plugins/auth/basic.js +13 -0
  90. package/dist/plugins/auth/bearer.d.ts +8 -0
  91. package/dist/plugins/auth/bearer.js +17 -0
  92. package/dist/plugins/auth/cognito.d.ts +45 -0
  93. package/dist/plugins/auth/cognito.js +208 -0
  94. package/dist/plugins/auth/digest.d.ts +8 -0
  95. package/dist/plugins/auth/digest.js +100 -0
  96. package/dist/plugins/auth/firebase.d.ts +32 -0
  97. package/dist/plugins/auth/firebase.js +195 -0
  98. package/dist/plugins/auth/github-app.d.ts +36 -0
  99. package/dist/plugins/auth/github-app.js +170 -0
  100. package/dist/plugins/auth/google-service-account.d.ts +49 -0
  101. package/dist/plugins/auth/google-service-account.js +172 -0
  102. package/dist/plugins/auth/index.d.ts +15 -0
  103. package/dist/plugins/auth/index.js +15 -0
  104. package/dist/plugins/auth/mtls.d.ts +37 -0
  105. package/dist/plugins/auth/mtls.js +140 -0
  106. package/dist/plugins/auth/oauth2.d.ts +8 -0
  107. package/dist/plugins/auth/oauth2.js +26 -0
  108. package/dist/plugins/auth/oidc.d.ts +55 -0
  109. package/dist/plugins/auth/oidc.js +222 -0
  110. package/dist/plugins/auth/okta.d.ts +47 -0
  111. package/dist/plugins/auth/okta.js +157 -0
  112. package/dist/plugins/auth.d.ts +1 -45
  113. package/dist/plugins/auth.js +1 -268
  114. package/dist/plugins/cache.d.ts +0 -1
  115. package/dist/plugins/cache.js +1 -1
  116. package/dist/plugins/certificate-pinning.d.ts +59 -0
  117. package/dist/plugins/certificate-pinning.js +236 -0
  118. package/dist/plugins/circuit-breaker.d.ts +0 -1
  119. package/dist/plugins/compression.d.ts +0 -1
  120. package/dist/plugins/cookie-jar.d.ts +0 -1
  121. package/dist/plugins/dedup.d.ts +0 -1
  122. package/dist/plugins/graphql.d.ts +0 -1
  123. package/dist/plugins/grpc-web.d.ts +0 -1
  124. package/dist/plugins/har-player.d.ts +0 -1
  125. package/dist/plugins/har-recorder.d.ts +0 -1
  126. package/dist/plugins/hls.d.ts +0 -1
  127. package/dist/plugins/http2-push.d.ts +0 -1
  128. package/dist/plugins/http3.d.ts +0 -1
  129. package/dist/plugins/index.d.ts +27 -0
  130. package/dist/plugins/index.js +27 -0
  131. package/dist/plugins/interface-rotator.d.ts +0 -1
  132. package/dist/plugins/jsonrpc.d.ts +0 -1
  133. package/dist/plugins/logger.d.ts +0 -1
  134. package/dist/plugins/odata.d.ts +0 -1
  135. package/dist/plugins/pagination.d.ts +0 -1
  136. package/dist/plugins/proxy-rotator.d.ts +0 -1
  137. package/dist/plugins/rate-limit.d.ts +15 -0
  138. package/dist/plugins/rate-limit.js +162 -0
  139. package/dist/plugins/retry.d.ts +0 -1
  140. package/dist/plugins/retry.js +2 -2
  141. package/dist/plugins/scrape.d.ts +0 -1
  142. package/dist/plugins/server-timing.d.ts +0 -1
  143. package/dist/plugins/soap.d.ts +0 -1
  144. package/dist/plugins/user-agent.d.ts +0 -1
  145. package/dist/plugins/xml.d.ts +0 -1
  146. package/dist/plugins/xsrf.d.ts +0 -1
  147. package/dist/presets/anthropic.d.ts +0 -1
  148. package/dist/presets/aws.d.ts +0 -1
  149. package/dist/presets/azure-openai.d.ts +0 -1
  150. package/dist/presets/azure.d.ts +0 -1
  151. package/dist/presets/cloudflare.d.ts +0 -1
  152. package/dist/presets/cohere.d.ts +0 -1
  153. package/dist/presets/deepseek.d.ts +0 -1
  154. package/dist/presets/digitalocean.d.ts +0 -1
  155. package/dist/presets/discord.d.ts +0 -1
  156. package/dist/presets/fireworks.d.ts +0 -1
  157. package/dist/presets/gcp.d.ts +0 -1
  158. package/dist/presets/gemini.d.ts +0 -1
  159. package/dist/presets/github.d.ts +0 -1
  160. package/dist/presets/gitlab.d.ts +0 -1
  161. package/dist/presets/groq.d.ts +0 -1
  162. package/dist/presets/huggingface.d.ts +0 -1
  163. package/dist/presets/index.d.ts +0 -1
  164. package/dist/presets/linear.d.ts +0 -1
  165. package/dist/presets/mailgun.d.ts +0 -1
  166. package/dist/presets/meta.d.ts +0 -1
  167. package/dist/presets/mistral.d.ts +0 -1
  168. package/dist/presets/notion.d.ts +0 -1
  169. package/dist/presets/openai.d.ts +0 -1
  170. package/dist/presets/oracle.d.ts +0 -1
  171. package/dist/presets/perplexity.d.ts +0 -1
  172. package/dist/presets/registry.d.ts +0 -1
  173. package/dist/presets/replicate.d.ts +0 -1
  174. package/dist/presets/sinch.d.ts +0 -1
  175. package/dist/presets/slack.d.ts +0 -1
  176. package/dist/presets/stripe.d.ts +0 -1
  177. package/dist/presets/supabase.d.ts +0 -1
  178. package/dist/presets/tiktok.d.ts +0 -1
  179. package/dist/presets/together.d.ts +0 -1
  180. package/dist/presets/twilio.d.ts +0 -1
  181. package/dist/presets/vercel.d.ts +0 -1
  182. package/dist/presets/vultr.d.ts +0 -1
  183. package/dist/presets/xai.d.ts +0 -1
  184. package/dist/presets/youtube.d.ts +0 -1
  185. package/dist/protocols/ftp.d.ts +0 -1
  186. package/dist/protocols/index.d.ts +0 -1
  187. package/dist/protocols/sftp.d.ts +0 -1
  188. package/dist/protocols/telnet.d.ts +0 -1
  189. package/dist/recker.d.ts +0 -1
  190. package/dist/runner/request-runner.d.ts +0 -1
  191. package/dist/scrape/document.d.ts +0 -1
  192. package/dist/scrape/element.d.ts +0 -1
  193. package/dist/scrape/extractors.d.ts +0 -1
  194. package/dist/scrape/index.d.ts +0 -1
  195. package/dist/scrape/types.d.ts +0 -1
  196. package/dist/testing/index.d.ts +16 -1
  197. package/dist/testing/index.js +8 -0
  198. package/dist/testing/mock-dns-server.d.ts +69 -0
  199. package/dist/testing/mock-dns-server.js +269 -0
  200. package/dist/testing/mock-ftp-server.d.ts +89 -0
  201. package/dist/testing/mock-ftp-server.js +562 -0
  202. package/dist/testing/mock-hls-server.d.ts +80 -0
  203. package/dist/testing/mock-hls-server.js +381 -0
  204. package/dist/testing/mock-http-server.d.ts +99 -0
  205. package/dist/testing/mock-http-server.js +298 -0
  206. package/dist/testing/mock-sse-server.d.ts +76 -0
  207. package/dist/testing/mock-sse-server.js +291 -0
  208. package/dist/testing/mock-telnet-server.d.ts +59 -0
  209. package/dist/testing/mock-telnet-server.js +273 -0
  210. package/dist/testing/mock-udp-server.d.ts +0 -1
  211. package/dist/testing/mock-websocket-server.d.ts +77 -0
  212. package/dist/testing/mock-websocket-server.js +316 -0
  213. package/dist/testing/mock-whois-server.d.ts +56 -0
  214. package/dist/testing/mock-whois-server.js +234 -0
  215. package/dist/testing/mock.d.ts +0 -1
  216. package/dist/transport/base-udp.d.ts +0 -1
  217. package/dist/transport/fetch.d.ts +0 -1
  218. package/dist/transport/udp-response.d.ts +0 -1
  219. package/dist/transport/udp.d.ts +0 -1
  220. package/dist/transport/undici.d.ts +0 -1
  221. package/dist/transport/undici.js +1 -1
  222. package/dist/types/ai.d.ts +0 -1
  223. package/dist/types/index.d.ts +0 -1
  224. package/dist/types/logger.d.ts +0 -1
  225. package/dist/types/udp.d.ts +0 -1
  226. package/dist/udp/index.d.ts +0 -1
  227. package/dist/utils/agent-manager.d.ts +0 -1
  228. package/dist/utils/body.d.ts +0 -1
  229. package/dist/utils/cert.d.ts +0 -1
  230. package/dist/utils/charset.d.ts +0 -1
  231. package/dist/utils/chart.d.ts +0 -1
  232. package/dist/utils/client-pool.d.ts +0 -1
  233. package/dist/utils/colors.d.ts +0 -1
  234. package/dist/utils/concurrency.d.ts +0 -1
  235. package/dist/utils/dns-toolkit.d.ts +0 -1
  236. package/dist/utils/dns-toolkit.js +1 -1
  237. package/dist/utils/dns.d.ts +0 -1
  238. package/dist/utils/dns.js +2 -2
  239. package/dist/utils/doh.d.ts +0 -1
  240. package/dist/utils/download.d.ts +0 -1
  241. package/dist/utils/env-proxy.d.ts +0 -1
  242. package/dist/utils/header-parser.d.ts +0 -1
  243. package/dist/utils/html-cleaner.d.ts +0 -1
  244. package/dist/utils/link-header.d.ts +0 -1
  245. package/dist/utils/optional-require.d.ts +0 -1
  246. package/dist/utils/optional-require.js +1 -1
  247. package/dist/utils/progress.d.ts +0 -1
  248. package/dist/utils/rdap.d.ts +0 -1
  249. package/dist/utils/request-pool.d.ts +0 -1
  250. package/dist/utils/security-grader.d.ts +0 -1
  251. package/dist/utils/sparkline.d.ts +0 -1
  252. package/dist/utils/sse.d.ts +0 -1
  253. package/dist/utils/streaming.d.ts +0 -1
  254. package/dist/utils/system-metrics.d.ts +0 -1
  255. package/dist/utils/tls-inspector.d.ts +0 -1
  256. package/dist/utils/try-fn.d.ts +0 -1
  257. package/dist/utils/upload.d.ts +0 -1
  258. package/dist/utils/user-agent.d.ts +0 -1
  259. package/dist/utils/whois.d.ts +0 -1
  260. package/dist/webrtc/index.d.ts +0 -1
  261. package/dist/webrtc/index.js +1 -1
  262. package/dist/websocket/client.d.ts +0 -1
  263. package/package.json +12 -3
  264. package/dist/ai/adaptive-timeout.d.ts.map +0 -1
  265. package/dist/ai/client.d.ts.map +0 -1
  266. package/dist/ai/index.d.ts.map +0 -1
  267. package/dist/ai/providers/anthropic.d.ts.map +0 -1
  268. package/dist/ai/providers/base.d.ts.map +0 -1
  269. package/dist/ai/providers/index.d.ts.map +0 -1
  270. package/dist/ai/providers/openai.d.ts.map +0 -1
  271. package/dist/ai/rate-limiter.d.ts.map +0 -1
  272. package/dist/bench/generator.d.ts.map +0 -1
  273. package/dist/bench/stats.d.ts.map +0 -1
  274. package/dist/cache/file-storage.d.ts.map +0 -1
  275. package/dist/cache/memory-limits.d.ts.map +0 -1
  276. package/dist/cache/memory-storage.d.ts.map +0 -1
  277. package/dist/cache/redis-storage.d.ts.map +0 -1
  278. package/dist/cli/handler.d.ts.map +0 -1
  279. package/dist/cli/index.d.ts.map +0 -1
  280. package/dist/cli/presets.d.ts.map +0 -1
  281. package/dist/cli/tui/ai-chat.d.ts.map +0 -1
  282. package/dist/cli/tui/load-dashboard.d.ts.map +0 -1
  283. package/dist/cli/tui/scroll-buffer.d.ts.map +0 -1
  284. package/dist/cli/tui/search-panel.d.ts.map +0 -1
  285. package/dist/cli/tui/shell-search.d.ts.map +0 -1
  286. package/dist/cli/tui/shell.d.ts.map +0 -1
  287. package/dist/cli/tui/websocket.d.ts.map +0 -1
  288. package/dist/constants/http-status.d.ts.map +0 -1
  289. package/dist/constants.d.ts.map +0 -1
  290. package/dist/contract/index.d.ts.map +0 -1
  291. package/dist/cookies/memory-cookie-jar.d.ts.map +0 -1
  292. package/dist/core/client.d.ts.map +0 -1
  293. package/dist/core/errors.d.ts.map +0 -1
  294. package/dist/core/index.d.ts.map +0 -1
  295. package/dist/core/request-promise.d.ts.map +0 -1
  296. package/dist/core/request.d.ts.map +0 -1
  297. package/dist/core/response.d.ts.map +0 -1
  298. package/dist/dns/index.d.ts.map +0 -1
  299. package/dist/dns/propagation.d.ts.map +0 -1
  300. package/dist/events/request-events.d.ts.map +0 -1
  301. package/dist/index.d.ts.map +0 -1
  302. package/dist/mcp/client.d.ts.map +0 -1
  303. package/dist/mcp/contract.d.ts.map +0 -1
  304. package/dist/mcp/embeddings-loader.d.ts.map +0 -1
  305. package/dist/mcp/geoip-loader.d.ts.map +0 -1
  306. package/dist/mcp/index.d.ts.map +0 -1
  307. package/dist/mcp/ip-intel.d.ts.map +0 -1
  308. package/dist/mcp/search/hybrid-search.d.ts.map +0 -1
  309. package/dist/mcp/search/index.d.ts.map +0 -1
  310. package/dist/mcp/search/math.d.ts.map +0 -1
  311. package/dist/mcp/search/types.d.ts.map +0 -1
  312. package/dist/mcp/server.d.ts.map +0 -1
  313. package/dist/mcp/types.d.ts.map +0 -1
  314. package/dist/plugins/auth.d.ts.map +0 -1
  315. package/dist/plugins/cache.d.ts.map +0 -1
  316. package/dist/plugins/circuit-breaker.d.ts.map +0 -1
  317. package/dist/plugins/compression.d.ts.map +0 -1
  318. package/dist/plugins/cookie-jar.d.ts.map +0 -1
  319. package/dist/plugins/dedup.d.ts.map +0 -1
  320. package/dist/plugins/graphql.d.ts.map +0 -1
  321. package/dist/plugins/grpc-web.d.ts.map +0 -1
  322. package/dist/plugins/har-player.d.ts.map +0 -1
  323. package/dist/plugins/har-recorder.d.ts.map +0 -1
  324. package/dist/plugins/hls.d.ts.map +0 -1
  325. package/dist/plugins/http2-push.d.ts.map +0 -1
  326. package/dist/plugins/http3.d.ts.map +0 -1
  327. package/dist/plugins/interface-rotator.d.ts.map +0 -1
  328. package/dist/plugins/jsonrpc.d.ts.map +0 -1
  329. package/dist/plugins/logger.d.ts.map +0 -1
  330. package/dist/plugins/odata.d.ts.map +0 -1
  331. package/dist/plugins/pagination.d.ts.map +0 -1
  332. package/dist/plugins/proxy-rotator.d.ts.map +0 -1
  333. package/dist/plugins/retry.d.ts.map +0 -1
  334. package/dist/plugins/scrape.d.ts.map +0 -1
  335. package/dist/plugins/server-timing.d.ts.map +0 -1
  336. package/dist/plugins/soap.d.ts.map +0 -1
  337. package/dist/plugins/user-agent.d.ts.map +0 -1
  338. package/dist/plugins/xml.d.ts.map +0 -1
  339. package/dist/plugins/xsrf.d.ts.map +0 -1
  340. package/dist/presets/anthropic.d.ts.map +0 -1
  341. package/dist/presets/aws.d.ts.map +0 -1
  342. package/dist/presets/azure-openai.d.ts.map +0 -1
  343. package/dist/presets/azure.d.ts.map +0 -1
  344. package/dist/presets/cloudflare.d.ts.map +0 -1
  345. package/dist/presets/cohere.d.ts.map +0 -1
  346. package/dist/presets/deepseek.d.ts.map +0 -1
  347. package/dist/presets/digitalocean.d.ts.map +0 -1
  348. package/dist/presets/discord.d.ts.map +0 -1
  349. package/dist/presets/fireworks.d.ts.map +0 -1
  350. package/dist/presets/gcp.d.ts.map +0 -1
  351. package/dist/presets/gemini.d.ts.map +0 -1
  352. package/dist/presets/github.d.ts.map +0 -1
  353. package/dist/presets/gitlab.d.ts.map +0 -1
  354. package/dist/presets/groq.d.ts.map +0 -1
  355. package/dist/presets/huggingface.d.ts.map +0 -1
  356. package/dist/presets/index.d.ts.map +0 -1
  357. package/dist/presets/linear.d.ts.map +0 -1
  358. package/dist/presets/mailgun.d.ts.map +0 -1
  359. package/dist/presets/meta.d.ts.map +0 -1
  360. package/dist/presets/mistral.d.ts.map +0 -1
  361. package/dist/presets/notion.d.ts.map +0 -1
  362. package/dist/presets/openai.d.ts.map +0 -1
  363. package/dist/presets/oracle.d.ts.map +0 -1
  364. package/dist/presets/perplexity.d.ts.map +0 -1
  365. package/dist/presets/registry.d.ts.map +0 -1
  366. package/dist/presets/replicate.d.ts.map +0 -1
  367. package/dist/presets/sinch.d.ts.map +0 -1
  368. package/dist/presets/slack.d.ts.map +0 -1
  369. package/dist/presets/stripe.d.ts.map +0 -1
  370. package/dist/presets/supabase.d.ts.map +0 -1
  371. package/dist/presets/tiktok.d.ts.map +0 -1
  372. package/dist/presets/together.d.ts.map +0 -1
  373. package/dist/presets/twilio.d.ts.map +0 -1
  374. package/dist/presets/vercel.d.ts.map +0 -1
  375. package/dist/presets/vultr.d.ts.map +0 -1
  376. package/dist/presets/xai.d.ts.map +0 -1
  377. package/dist/presets/youtube.d.ts.map +0 -1
  378. package/dist/protocols/ftp.d.ts.map +0 -1
  379. package/dist/protocols/index.d.ts.map +0 -1
  380. package/dist/protocols/sftp.d.ts.map +0 -1
  381. package/dist/protocols/telnet.d.ts.map +0 -1
  382. package/dist/recker.d.ts.map +0 -1
  383. package/dist/runner/request-runner.d.ts.map +0 -1
  384. package/dist/scrape/document.d.ts.map +0 -1
  385. package/dist/scrape/element.d.ts.map +0 -1
  386. package/dist/scrape/extractors.d.ts.map +0 -1
  387. package/dist/scrape/index.d.ts.map +0 -1
  388. package/dist/scrape/types.d.ts.map +0 -1
  389. package/dist/testing/index.d.ts.map +0 -1
  390. package/dist/testing/mock-udp-server.d.ts.map +0 -1
  391. package/dist/testing/mock.d.ts.map +0 -1
  392. package/dist/transport/base-udp.d.ts.map +0 -1
  393. package/dist/transport/fetch.d.ts.map +0 -1
  394. package/dist/transport/udp-response.d.ts.map +0 -1
  395. package/dist/transport/udp.d.ts.map +0 -1
  396. package/dist/transport/undici.d.ts.map +0 -1
  397. package/dist/types/ai.d.ts.map +0 -1
  398. package/dist/types/index.d.ts.map +0 -1
  399. package/dist/types/logger.d.ts.map +0 -1
  400. package/dist/types/udp.d.ts.map +0 -1
  401. package/dist/udp/index.d.ts.map +0 -1
  402. package/dist/utils/agent-manager.d.ts.map +0 -1
  403. package/dist/utils/body.d.ts.map +0 -1
  404. package/dist/utils/cert.d.ts.map +0 -1
  405. package/dist/utils/charset.d.ts.map +0 -1
  406. package/dist/utils/chart.d.ts.map +0 -1
  407. package/dist/utils/client-pool.d.ts.map +0 -1
  408. package/dist/utils/colors.d.ts.map +0 -1
  409. package/dist/utils/concurrency.d.ts.map +0 -1
  410. package/dist/utils/dns-toolkit.d.ts.map +0 -1
  411. package/dist/utils/dns.d.ts.map +0 -1
  412. package/dist/utils/doh.d.ts.map +0 -1
  413. package/dist/utils/download.d.ts.map +0 -1
  414. package/dist/utils/env-proxy.d.ts.map +0 -1
  415. package/dist/utils/header-parser.d.ts.map +0 -1
  416. package/dist/utils/html-cleaner.d.ts.map +0 -1
  417. package/dist/utils/link-header.d.ts.map +0 -1
  418. package/dist/utils/optional-require.d.ts.map +0 -1
  419. package/dist/utils/progress.d.ts.map +0 -1
  420. package/dist/utils/rdap.d.ts.map +0 -1
  421. package/dist/utils/request-pool.d.ts.map +0 -1
  422. package/dist/utils/security-grader.d.ts.map +0 -1
  423. package/dist/utils/sparkline.d.ts.map +0 -1
  424. package/dist/utils/sse.d.ts.map +0 -1
  425. package/dist/utils/streaming.d.ts.map +0 -1
  426. package/dist/utils/system-metrics.d.ts.map +0 -1
  427. package/dist/utils/tls-inspector.d.ts.map +0 -1
  428. package/dist/utils/try-fn.d.ts.map +0 -1
  429. package/dist/utils/upload.d.ts.map +0 -1
  430. package/dist/utils/user-agent.d.ts.map +0 -1
  431. package/dist/utils/whois.d.ts.map +0 -1
  432. package/dist/webrtc/index.d.ts.map +0 -1
  433. package/dist/websocket/client.d.ts.map +0 -1
@@ -0,0 +1,240 @@
1
+ import { BaseAIProvider, AIError, RateLimitError, OverloadedError, } from './base.js';
2
+ import { StreamError } from '../../core/errors.js';
3
+ export class OllamaProvider extends BaseAIProvider {
4
+ ollamaConfig;
5
+ constructor(config = {}) {
6
+ super({ ...config, name: 'ollama' });
7
+ this.ollamaConfig = config;
8
+ }
9
+ getEnvApiKey() {
10
+ return undefined;
11
+ }
12
+ getBaseUrl() {
13
+ return this.config.baseUrl || 'http://127.0.0.1:11434/api';
14
+ }
15
+ buildHeaders() {
16
+ return {
17
+ 'Content-Type': 'application/json',
18
+ ...this.config.headers,
19
+ };
20
+ }
21
+ transformMessages(messages) {
22
+ return messages.map((msg) => {
23
+ const { content, images } = this.extractContentAndImages(msg.content);
24
+ return {
25
+ role: msg.role,
26
+ content,
27
+ images: images.length > 0 ? images : undefined,
28
+ };
29
+ });
30
+ }
31
+ extractContentAndImages(content) {
32
+ if (typeof content === 'string') {
33
+ return { content, images: [] };
34
+ }
35
+ let text = '';
36
+ const images = [];
37
+ for (const part of content) {
38
+ if (part.type === 'text') {
39
+ text += part.text;
40
+ }
41
+ else if (part.type === 'image') {
42
+ images.push(Buffer.from(part.data).toString('base64'));
43
+ }
44
+ else if (part.type === 'image_url') {
45
+ if (part.image_url.url.startsWith('data:')) {
46
+ const base64 = part.image_url.url.split(',')[1];
47
+ if (base64)
48
+ images.push(base64);
49
+ }
50
+ }
51
+ }
52
+ return { content: text, images };
53
+ }
54
+ async chat(options) {
55
+ const context = {
56
+ startTime: performance.now(),
57
+ tokenCount: 0,
58
+ };
59
+ const body = this.buildChatBody(options, false);
60
+ const response = await this.makeRequest('/chat', body, options.signal);
61
+ const data = await response.json();
62
+ return this.parseResponse(data, context);
63
+ }
64
+ async stream(options) {
65
+ const context = {
66
+ startTime: performance.now(),
67
+ tokenCount: 0,
68
+ };
69
+ const body = this.buildChatBody(options, true);
70
+ const response = await this.makeRequest('/chat', body, options.signal);
71
+ return this.parseNDJSONStream(response, context);
72
+ }
73
+ async embed(options) {
74
+ const startTime = performance.now();
75
+ const body = {
76
+ model: options.model || this.config.defaultModel || 'nomic-embed-text',
77
+ input: options.input,
78
+ };
79
+ if (this.ollamaConfig.keepAlive) {
80
+ body.keep_alive = this.ollamaConfig.keepAlive;
81
+ }
82
+ const response = await this.makeRequest('/embed', body, options.signal);
83
+ const data = await response.json();
84
+ const latency = {
85
+ ttft: performance.now() - startTime,
86
+ tps: 0,
87
+ total: performance.now() - startTime,
88
+ };
89
+ const usage = {
90
+ inputTokens: data.prompt_eval_count || 0,
91
+ outputTokens: 0,
92
+ totalTokens: data.prompt_eval_count || 0,
93
+ };
94
+ return {
95
+ embeddings: data.embeddings,
96
+ usage,
97
+ model: data.model,
98
+ provider: 'ollama',
99
+ latency,
100
+ };
101
+ }
102
+ buildChatBody(options, stream) {
103
+ const body = {
104
+ model: options.model || this.config.defaultModel || 'llama3',
105
+ messages: this.transformMessages(options.messages),
106
+ stream,
107
+ options: {},
108
+ };
109
+ if (options.responseFormat?.type === 'json_object') {
110
+ body.format = 'json';
111
+ }
112
+ if (this.ollamaConfig.keepAlive) {
113
+ body.keep_alive = this.ollamaConfig.keepAlive;
114
+ }
115
+ if (options.temperature !== undefined)
116
+ body.options.temperature = options.temperature;
117
+ if (options.topP !== undefined)
118
+ body.options.top_p = options.topP;
119
+ if (options.maxTokens !== undefined)
120
+ body.options.num_predict = options.maxTokens;
121
+ if (options.stop)
122
+ body.options.stop = options.stop;
123
+ return body;
124
+ }
125
+ async makeRequest(endpoint, body, signal) {
126
+ const url = `${this.getBaseUrl()}${endpoint}`;
127
+ const headers = this.buildHeaders();
128
+ const response = await fetch(url, {
129
+ method: 'POST',
130
+ headers,
131
+ body: JSON.stringify(body),
132
+ signal,
133
+ });
134
+ if (!response.ok) {
135
+ let errorMsg = response.statusText;
136
+ try {
137
+ const err = await response.json();
138
+ if (err.error)
139
+ errorMsg = err.error;
140
+ }
141
+ catch { }
142
+ if (response.status === 429)
143
+ throw new RateLimitError('ollama');
144
+ if (response.status === 503)
145
+ throw new OverloadedError('ollama');
146
+ throw new AIError(errorMsg, 'ollama', String(response.status), response.status);
147
+ }
148
+ return response;
149
+ }
150
+ parseResponse(data, context) {
151
+ const usage = {
152
+ inputTokens: data.prompt_eval_count || 0,
153
+ outputTokens: data.eval_count || 0,
154
+ totalTokens: (data.prompt_eval_count || 0) + (data.eval_count || 0),
155
+ };
156
+ context.tokenCount = usage.outputTokens;
157
+ return {
158
+ content: data.message.content,
159
+ usage,
160
+ latency: this.calculateLatency(context),
161
+ model: data.model,
162
+ provider: 'ollama',
163
+ cached: false,
164
+ finishReason: data.done ? 'stop' : undefined,
165
+ raw: data,
166
+ };
167
+ }
168
+ parseStreamEvent(_chunk, _context) {
169
+ return null;
170
+ }
171
+ async *parseNDJSONStream(response, context) {
172
+ const reader = response.body?.getReader();
173
+ if (!reader)
174
+ throw new StreamError('Response body is not readable', { streamType: 'ndjson' });
175
+ const decoder = new TextDecoder();
176
+ let buffer = '';
177
+ try {
178
+ while (true) {
179
+ const { done, value } = await reader.read();
180
+ if (done)
181
+ break;
182
+ buffer += decoder.decode(value, { stream: true });
183
+ const lines = buffer.split('\n');
184
+ buffer = lines.pop() || '';
185
+ for (const line of lines) {
186
+ if (!line.trim())
187
+ continue;
188
+ try {
189
+ const data = JSON.parse(line);
190
+ if (data.message?.content) {
191
+ if (!context.firstTokenTime)
192
+ context.firstTokenTime = performance.now();
193
+ context.tokenCount++;
194
+ yield { type: 'text', content: data.message.content };
195
+ }
196
+ if (data.done) {
197
+ const usage = {
198
+ inputTokens: data.prompt_eval_count || 0,
199
+ outputTokens: data.eval_count || 0,
200
+ totalTokens: (data.prompt_eval_count || 0) + (data.eval_count || 0),
201
+ };
202
+ yield { type: 'done', finishReason: 'stop', usage };
203
+ }
204
+ }
205
+ catch (e) {
206
+ }
207
+ }
208
+ }
209
+ if (buffer.trim()) {
210
+ const lines = buffer.split('\n');
211
+ for (const line of lines) {
212
+ if (!line.trim())
213
+ continue;
214
+ try {
215
+ const data = JSON.parse(line);
216
+ if (data.message?.content) {
217
+ if (!context.firstTokenTime)
218
+ context.firstTokenTime = performance.now();
219
+ context.tokenCount++;
220
+ yield { type: 'text', content: data.message.content };
221
+ }
222
+ if (data.done) {
223
+ const usage = {
224
+ inputTokens: data.prompt_eval_count || 0,
225
+ outputTokens: data.eval_count || 0,
226
+ totalTokens: (data.prompt_eval_count || 0) + (data.eval_count || 0),
227
+ };
228
+ yield { type: 'done', finishReason: 'stop', usage };
229
+ }
230
+ }
231
+ catch (e) {
232
+ }
233
+ }
234
+ }
235
+ }
236
+ finally {
237
+ reader.releaseLock();
238
+ }
239
+ }
240
+ }
@@ -62,4 +62,3 @@ export declare class OpenAIProvider extends BaseAIProvider {
62
62
  protected parseStreamEvent(chunk: string, context: ProviderRequestContext): StreamEvent | null;
63
63
  }
64
64
  export {};
65
- //# sourceMappingURL=openai.d.ts.map
@@ -41,4 +41,3 @@ export declare const tokenEstimators: {
41
41
  estimateMessage(content: string): number;
42
42
  estimateChatTokens(options: ChatOptions): number;
43
43
  };
44
- //# sourceMappingURL=rate-limiter.d.ts.map
@@ -0,0 +1,2 @@
1
+ export * from './similarity.js';
2
+ export * from './store.js';
@@ -0,0 +1,2 @@
1
+ export * from './similarity.js';
2
+ export * from './store.js';
@@ -0,0 +1,2 @@
1
+ export declare function cosineSimilarity(a: number[], b: number[]): number;
2
+ export declare function euclideanDistance(a: number[], b: number[]): number;
@@ -0,0 +1,27 @@
1
+ export function cosineSimilarity(a, b) {
2
+ if (a.length !== b.length) {
3
+ throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
4
+ }
5
+ let dot = 0;
6
+ let normA = 0;
7
+ let normB = 0;
8
+ for (let i = 0; i < a.length; i++) {
9
+ dot += a[i] * b[i];
10
+ normA += a[i] * a[i];
11
+ normB += b[i] * b[i];
12
+ }
13
+ if (normA === 0 || normB === 0)
14
+ return 0;
15
+ return dot / (Math.sqrt(normA) * Math.sqrt(normB));
16
+ }
17
+ export function euclideanDistance(a, b) {
18
+ if (a.length !== b.length) {
19
+ throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
20
+ }
21
+ let sum = 0;
22
+ for (let i = 0; i < a.length; i++) {
23
+ const diff = a[i] - b[i];
24
+ sum += diff * diff;
25
+ }
26
+ return Math.sqrt(sum);
27
+ }
@@ -0,0 +1,27 @@
1
+ import type { AIClient } from '../../types/ai.js';
2
+ export interface VectorDocument {
3
+ id: string;
4
+ content: string;
5
+ embedding?: number[];
6
+ metadata?: Record<string, unknown>;
7
+ }
8
+ export interface SearchResult extends VectorDocument {
9
+ score: number;
10
+ }
11
+ export interface VectorStoreOptions {
12
+ client?: AIClient;
13
+ model?: string;
14
+ }
15
+ export declare class MemoryVectorStore {
16
+ private documents;
17
+ private client?;
18
+ private model?;
19
+ constructor(options?: VectorStoreOptions);
20
+ add(docs: Array<Partial<VectorDocument> & {
21
+ content: string;
22
+ }>): Promise<void>;
23
+ search(query: string, limit?: number, threshold?: number): Promise<SearchResult[]>;
24
+ delete(id: string): boolean;
25
+ clear(): void;
26
+ get count(): number;
27
+ }
@@ -0,0 +1,82 @@
1
+ import { cosineSimilarity } from './similarity.js';
2
+ export class MemoryVectorStore {
3
+ documents = new Map();
4
+ client;
5
+ model;
6
+ constructor(options = {}) {
7
+ this.client = options.client;
8
+ this.model = options.model;
9
+ }
10
+ async add(docs) {
11
+ const docsToEmbed = [];
12
+ const readyDocs = [];
13
+ for (const doc of docs) {
14
+ const id = doc.id || Math.random().toString(36).substring(7);
15
+ const fullDoc = {
16
+ id,
17
+ content: doc.content,
18
+ metadata: doc.metadata || {},
19
+ embedding: doc.embedding,
20
+ };
21
+ if (!fullDoc.embedding) {
22
+ docsToEmbed.push(fullDoc);
23
+ }
24
+ else {
25
+ readyDocs.push(fullDoc);
26
+ }
27
+ }
28
+ if (docsToEmbed.length > 0) {
29
+ if (!this.client) {
30
+ throw new Error('AI Client required to generate embeddings. Pass "client" to constructor or provide "embedding" in document.');
31
+ }
32
+ const contents = docsToEmbed.map(d => d.content);
33
+ const response = await this.client.embed({
34
+ model: this.model,
35
+ input: contents,
36
+ });
37
+ docsToEmbed.forEach((doc, i) => {
38
+ doc.embedding = response.embeddings[i];
39
+ readyDocs.push(doc);
40
+ });
41
+ }
42
+ for (const doc of readyDocs) {
43
+ this.documents.set(doc.id, doc);
44
+ }
45
+ }
46
+ async search(query, limit = 3, threshold = 0.0) {
47
+ if (this.documents.size === 0)
48
+ return [];
49
+ if (!this.client) {
50
+ throw new Error('AI Client required to search by text query.');
51
+ }
52
+ const response = await this.client.embed({
53
+ model: this.model,
54
+ input: query,
55
+ });
56
+ const queryEmbedding = response.embeddings[0];
57
+ const results = [];
58
+ for (const doc of this.documents.values()) {
59
+ if (!doc.embedding)
60
+ continue;
61
+ const score = cosineSimilarity(queryEmbedding, doc.embedding);
62
+ if (score >= threshold) {
63
+ results.push({
64
+ ...doc,
65
+ score,
66
+ });
67
+ }
68
+ }
69
+ return results
70
+ .sort((a, b) => b.score - a.score)
71
+ .slice(0, limit);
72
+ }
73
+ delete(id) {
74
+ return this.documents.delete(id);
75
+ }
76
+ clear() {
77
+ this.documents.clear();
78
+ }
79
+ get count() {
80
+ return this.documents.size;
81
+ }
82
+ }
@@ -16,4 +16,3 @@ export declare class LoadGenerator {
16
16
  start(): Promise<void[]>;
17
17
  stop(): void;
18
18
  }
19
- //# sourceMappingURL=generator.d.ts.map
@@ -46,4 +46,3 @@ export declare class LoadStats {
46
46
  errors: Record<string, number>;
47
47
  };
48
48
  }
49
- //# sourceMappingURL=stats.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { CacheEntry, CacheStorage } from '../types/index.js';
2
+ export declare class FileStorage implements CacheStorage {
3
+ private dir;
4
+ constructor(baseDir?: string);
5
+ private getHash;
6
+ private getPath;
7
+ private ensureDir;
8
+ get(key: string): Promise<CacheEntry | undefined>;
9
+ set(key: string, entry: CacheEntry, ttl?: number): Promise<void>;
10
+ delete(key: string): Promise<void>;
11
+ clear(): Promise<void>;
12
+ }
@@ -0,0 +1,50 @@
1
+ import { mkdir, readFile, writeFile, unlink, rm } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { createHash } from 'node:crypto';
4
+ import { existsSync } from 'node:fs';
5
+ export class FileStorage {
6
+ dir;
7
+ constructor(baseDir = '.recker/cache') {
8
+ this.dir = baseDir;
9
+ }
10
+ getHash(key) {
11
+ return createHash('md5').update(key).digest('hex');
12
+ }
13
+ getPath(key) {
14
+ return join(this.dir, `${this.getHash(key)}.json`);
15
+ }
16
+ async ensureDir() {
17
+ if (!existsSync(this.dir)) {
18
+ await mkdir(this.dir, { recursive: true });
19
+ }
20
+ }
21
+ async get(key) {
22
+ try {
23
+ const path = this.getPath(key);
24
+ if (!existsSync(path))
25
+ return undefined;
26
+ const content = await readFile(path, 'utf-8');
27
+ const data = JSON.parse(content);
28
+ return data;
29
+ }
30
+ catch (error) {
31
+ return undefined;
32
+ }
33
+ }
34
+ async set(key, entry, ttl) {
35
+ await this.ensureDir();
36
+ const path = this.getPath(key);
37
+ await writeFile(path, JSON.stringify(entry), 'utf-8');
38
+ }
39
+ async delete(key) {
40
+ const path = this.getPath(key);
41
+ if (existsSync(path)) {
42
+ await unlink(path);
43
+ }
44
+ }
45
+ async clear() {
46
+ if (existsSync(this.dir)) {
47
+ await rm(this.dir, { recursive: true, force: true });
48
+ }
49
+ }
50
+ }
@@ -1,13 +1,27 @@
1
- import { CacheEntry, CacheStorage } from '../types/index.js';
2
- export declare class FileStorage implements CacheStorage {
3
- private dir;
4
- constructor(baseDir?: string);
5
- private getHash;
6
- private getPath;
7
- private ensureDir;
8
- get(key: string): Promise<CacheEntry | undefined>;
9
- set(key: string, entry: CacheEntry, ttl?: number): Promise<void>;
1
+ import type { CacheStorage, CacheEntry } from '../types/index.js';
2
+ export interface FileSystemStorageOptions {
3
+ path?: string;
4
+ ttl?: number;
5
+ cleanupInterval?: number;
6
+ maxSize?: number;
7
+ }
8
+ export declare class FileSystemStorage implements CacheStorage {
9
+ private cacheDir;
10
+ private defaultTtl;
11
+ private cleanupInterval;
12
+ private maxSize;
13
+ private cleanupTimer;
14
+ constructor(options?: FileSystemStorageOptions);
15
+ private initCacheDir;
16
+ private getFilePath;
17
+ private isExpired;
18
+ get(key: string): Promise<CacheEntry | undefined | null>;
19
+ set(key: string, value: CacheEntry, ttl?: number): Promise<void>;
10
20
  delete(key: string): Promise<void>;
11
- clear(): Promise<void>;
21
+ clear(prefix?: string): Promise<void>;
22
+ size(): Promise<number>;
23
+ keys(): Promise<string[]>;
24
+ private cleanupExpired;
25
+ private enforceMaxSize;
26
+ shutdown(): void;
12
27
  }
13
- //# sourceMappingURL=file-storage.d.ts.map