@iflow-mcp/jakeliume-webpeel 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (547) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +313 -0
  3. package/dist/cache.d.ts +30 -0
  4. package/dist/cache.js +139 -0
  5. package/dist/cli/commands/auth.d.ts +5 -0
  6. package/dist/cli/commands/auth.js +411 -0
  7. package/dist/cli/commands/doctor.d.ts +37 -0
  8. package/dist/cli/commands/doctor.js +371 -0
  9. package/dist/cli/commands/fetch.d.ts +6 -0
  10. package/dist/cli/commands/fetch.js +1345 -0
  11. package/dist/cli/commands/guide.d.ts +2 -0
  12. package/dist/cli/commands/guide.js +183 -0
  13. package/dist/cli/commands/interact.d.ts +5 -0
  14. package/dist/cli/commands/interact.js +840 -0
  15. package/dist/cli/commands/jobs.d.ts +5 -0
  16. package/dist/cli/commands/jobs.js +997 -0
  17. package/dist/cli/commands/monitor.d.ts +12 -0
  18. package/dist/cli/commands/monitor.js +197 -0
  19. package/dist/cli/commands/observe.d.ts +12 -0
  20. package/dist/cli/commands/observe.js +158 -0
  21. package/dist/cli/commands/screenshot.d.ts +5 -0
  22. package/dist/cli/commands/screenshot.js +282 -0
  23. package/dist/cli/commands/search.d.ts +5 -0
  24. package/dist/cli/commands/search.js +1021 -0
  25. package/dist/cli/commands/setup.d.ts +13 -0
  26. package/dist/cli/commands/setup.js +244 -0
  27. package/dist/cli/commands/skill.d.ts +15 -0
  28. package/dist/cli/commands/skill.js +195 -0
  29. package/dist/cli/utils.d.ts +84 -0
  30. package/dist/cli/utils.js +806 -0
  31. package/dist/cli-auth.d.ts +75 -0
  32. package/dist/cli-auth.js +369 -0
  33. package/dist/cli.d.ts +17 -0
  34. package/dist/cli.js +99 -0
  35. package/dist/core/actions.d.ts +69 -0
  36. package/dist/core/actions.js +495 -0
  37. package/dist/core/agent.d.ts +98 -0
  38. package/dist/core/agent.js +558 -0
  39. package/dist/core/answer.d.ts +42 -0
  40. package/dist/core/answer.js +395 -0
  41. package/dist/core/application-tracker.d.ts +84 -0
  42. package/dist/core/application-tracker.js +184 -0
  43. package/dist/core/apply.d.ts +162 -0
  44. package/dist/core/apply.js +816 -0
  45. package/dist/core/auth-detection.d.ts +35 -0
  46. package/dist/core/auth-detection.js +358 -0
  47. package/dist/core/auto-extract.d.ts +82 -0
  48. package/dist/core/auto-extract.js +604 -0
  49. package/dist/core/auto-interact.d.ts +23 -0
  50. package/dist/core/auto-interact.js +246 -0
  51. package/dist/core/bm25-filter.d.ts +66 -0
  52. package/dist/core/bm25-filter.js +288 -0
  53. package/dist/core/branding.d.ts +54 -0
  54. package/dist/core/branding.js +234 -0
  55. package/dist/core/browser-fetch.d.ts +323 -0
  56. package/dist/core/browser-fetch.js +1600 -0
  57. package/dist/core/browser-pool.d.ts +91 -0
  58. package/dist/core/browser-pool.js +550 -0
  59. package/dist/core/budget.d.ts +42 -0
  60. package/dist/core/budget.js +324 -0
  61. package/dist/core/business-intel.d.ts +47 -0
  62. package/dist/core/business-intel.js +279 -0
  63. package/dist/core/cache.d.ts +13 -0
  64. package/dist/core/cache.js +121 -0
  65. package/dist/core/cf-worker-proxy.d.ts +32 -0
  66. package/dist/core/cf-worker-proxy.js +87 -0
  67. package/dist/core/challenge-detection.d.ts +26 -0
  68. package/dist/core/challenge-detection.js +468 -0
  69. package/dist/core/change-tracking.d.ts +75 -0
  70. package/dist/core/change-tracking.js +276 -0
  71. package/dist/core/chunker.d.ts +46 -0
  72. package/dist/core/chunker.js +249 -0
  73. package/dist/core/chunking.d.ts +42 -0
  74. package/dist/core/chunking.js +181 -0
  75. package/dist/core/circuit-breaker.d.ts +44 -0
  76. package/dist/core/circuit-breaker.js +85 -0
  77. package/dist/core/content-pruner.d.ts +47 -0
  78. package/dist/core/content-pruner.js +425 -0
  79. package/dist/core/cookie-cache.d.ts +60 -0
  80. package/dist/core/cookie-cache.js +163 -0
  81. package/dist/core/crawl-checkpoint.d.ts +54 -0
  82. package/dist/core/crawl-checkpoint.js +104 -0
  83. package/dist/core/crawler.d.ts +84 -0
  84. package/dist/core/crawler.js +349 -0
  85. package/dist/core/cross-verify.d.ts +27 -0
  86. package/dist/core/cross-verify.js +93 -0
  87. package/dist/core/deep-fetch.d.ts +74 -0
  88. package/dist/core/deep-fetch.js +405 -0
  89. package/dist/core/deep-research.d.ts +141 -0
  90. package/dist/core/deep-research.js +972 -0
  91. package/dist/core/design-analysis.d.ts +70 -0
  92. package/dist/core/design-analysis.js +490 -0
  93. package/dist/core/design-compare.d.ts +38 -0
  94. package/dist/core/design-compare.js +264 -0
  95. package/dist/core/diff.d.ts +61 -0
  96. package/dist/core/diff.js +289 -0
  97. package/dist/core/dns-cache.d.ts +20 -0
  98. package/dist/core/dns-cache.js +198 -0
  99. package/dist/core/documents.d.ts +23 -0
  100. package/dist/core/documents.js +123 -0
  101. package/dist/core/domain-memory.d.ts +66 -0
  102. package/dist/core/domain-memory.js +163 -0
  103. package/dist/core/domain-verify.d.ts +40 -0
  104. package/dist/core/domain-verify.js +379 -0
  105. package/dist/core/engine-ranker.d.ts +112 -0
  106. package/dist/core/engine-ranker.js +395 -0
  107. package/dist/core/extract-inline.d.ts +38 -0
  108. package/dist/core/extract-inline.js +215 -0
  109. package/dist/core/extract-listings.d.ts +38 -0
  110. package/dist/core/extract-listings.js +461 -0
  111. package/dist/core/extract.d.ts +9 -0
  112. package/dist/core/extract.js +139 -0
  113. package/dist/core/fetch-cache.d.ts +57 -0
  114. package/dist/core/fetch-cache.js +95 -0
  115. package/dist/core/fetcher.d.ts +13 -0
  116. package/dist/core/fetcher.js +12 -0
  117. package/dist/core/google-cache.d.ts +29 -0
  118. package/dist/core/google-cache.js +180 -0
  119. package/dist/core/google-serp-parser.d.ts +82 -0
  120. package/dist/core/google-serp-parser.js +287 -0
  121. package/dist/core/hotel-search.d.ts +122 -0
  122. package/dist/core/hotel-search.js +382 -0
  123. package/dist/core/http-fetch.d.ts +72 -0
  124. package/dist/core/http-fetch.js +820 -0
  125. package/dist/core/human.d.ts +175 -0
  126. package/dist/core/human.js +680 -0
  127. package/dist/core/image-caption.d.ts +44 -0
  128. package/dist/core/image-caption.js +271 -0
  129. package/dist/core/jobs.d.ts +75 -0
  130. package/dist/core/jobs.js +634 -0
  131. package/dist/core/json-ld.d.ts +15 -0
  132. package/dist/core/json-ld.js +617 -0
  133. package/dist/core/language-detect.d.ts +18 -0
  134. package/dist/core/language-detect.js +135 -0
  135. package/dist/core/links.d.ts +10 -0
  136. package/dist/core/links.js +44 -0
  137. package/dist/core/llm-extract.d.ts +71 -0
  138. package/dist/core/llm-extract.js +507 -0
  139. package/dist/core/llm-provider.d.ts +100 -0
  140. package/dist/core/llm-provider.js +702 -0
  141. package/dist/core/local-search.d.ts +60 -0
  142. package/dist/core/local-search.js +308 -0
  143. package/dist/core/logger.d.ts +28 -0
  144. package/dist/core/logger.js +104 -0
  145. package/dist/core/map.d.ts +33 -0
  146. package/dist/core/map.js +127 -0
  147. package/dist/core/markdown.d.ts +92 -0
  148. package/dist/core/markdown.js +809 -0
  149. package/dist/core/metadata.d.ts +34 -0
  150. package/dist/core/metadata.js +422 -0
  151. package/dist/core/observe.d.ts +113 -0
  152. package/dist/core/observe.js +395 -0
  153. package/dist/core/ocr.d.ts +12 -0
  154. package/dist/core/ocr.js +33 -0
  155. package/dist/core/paginate.d.ts +31 -0
  156. package/dist/core/paginate.js +106 -0
  157. package/dist/core/pdf.d.ts +8 -0
  158. package/dist/core/pdf.js +25 -0
  159. package/dist/core/peel-tls.d.ts +25 -0
  160. package/dist/core/peel-tls.js +220 -0
  161. package/dist/core/pipeline.d.ts +132 -0
  162. package/dist/core/pipeline.js +1666 -0
  163. package/dist/core/profiles.d.ts +61 -0
  164. package/dist/core/profiles.js +350 -0
  165. package/dist/core/prompt-guard.d.ts +30 -0
  166. package/dist/core/prompt-guard.js +119 -0
  167. package/dist/core/proxy-config.d.ts +90 -0
  168. package/dist/core/proxy-config.js +172 -0
  169. package/dist/core/quick-answer.d.ts +53 -0
  170. package/dist/core/quick-answer.js +833 -0
  171. package/dist/core/rate-governor.d.ts +80 -0
  172. package/dist/core/rate-governor.js +238 -0
  173. package/dist/core/readability.d.ts +57 -0
  174. package/dist/core/readability.js +533 -0
  175. package/dist/core/research.d.ts +66 -0
  176. package/dist/core/research.js +270 -0
  177. package/dist/core/retry.d.ts +60 -0
  178. package/dist/core/retry.js +119 -0
  179. package/dist/core/safe-browsing.d.ts +30 -0
  180. package/dist/core/safe-browsing.js +206 -0
  181. package/dist/core/schema-extraction.d.ts +66 -0
  182. package/dist/core/schema-extraction.js +352 -0
  183. package/dist/core/schema-postprocess.d.ts +32 -0
  184. package/dist/core/schema-postprocess.js +469 -0
  185. package/dist/core/schema-templates.d.ts +19 -0
  186. package/dist/core/schema-templates.js +143 -0
  187. package/dist/core/screenshot.d.ts +224 -0
  188. package/dist/core/screenshot.js +207 -0
  189. package/dist/core/search-engines.d.ts +25 -0
  190. package/dist/core/search-engines.js +182 -0
  191. package/dist/core/search-provider.d.ts +243 -0
  192. package/dist/core/search-provider.js +1629 -0
  193. package/dist/core/searxng-provider.d.ts +35 -0
  194. package/dist/core/searxng-provider.js +105 -0
  195. package/dist/core/selective-evidence.d.ts +151 -0
  196. package/dist/core/selective-evidence.js +389 -0
  197. package/dist/core/site-search.d.ts +44 -0
  198. package/dist/core/site-search.js +252 -0
  199. package/dist/core/sitemap.d.ts +23 -0
  200. package/dist/core/sitemap.js +105 -0
  201. package/dist/core/source-credibility.d.ts +29 -0
  202. package/dist/core/source-credibility.js +584 -0
  203. package/dist/core/source-scoring.d.ts +166 -0
  204. package/dist/core/source-scoring.js +396 -0
  205. package/dist/core/stemmer.d.ts +38 -0
  206. package/dist/core/stemmer.js +509 -0
  207. package/dist/core/strategies.d.ts +104 -0
  208. package/dist/core/strategies.js +1044 -0
  209. package/dist/core/strategy-hooks.d.ts +145 -0
  210. package/dist/core/strategy-hooks.js +74 -0
  211. package/dist/core/structured-extract.d.ts +43 -0
  212. package/dist/core/structured-extract.js +550 -0
  213. package/dist/core/summarize.d.ts +17 -0
  214. package/dist/core/summarize.js +78 -0
  215. package/dist/core/synonyms.d.ts +42 -0
  216. package/dist/core/synonyms.js +184 -0
  217. package/dist/core/system-monitor.d.ts +61 -0
  218. package/dist/core/system-monitor.js +133 -0
  219. package/dist/core/table-format.d.ts +30 -0
  220. package/dist/core/table-format.js +146 -0
  221. package/dist/core/threat-feeds.d.ts +23 -0
  222. package/dist/core/threat-feeds.js +104 -0
  223. package/dist/core/timing.d.ts +21 -0
  224. package/dist/core/timing.js +33 -0
  225. package/dist/core/transcript-export.d.ts +47 -0
  226. package/dist/core/transcript-export.js +107 -0
  227. package/dist/core/user-agents.d.ts +82 -0
  228. package/dist/core/user-agents.js +239 -0
  229. package/dist/core/vertical-search.d.ts +54 -0
  230. package/dist/core/vertical-search.js +158 -0
  231. package/dist/core/watch-manager.d.ts +175 -0
  232. package/dist/core/watch-manager.js +416 -0
  233. package/dist/core/watch.d.ts +101 -0
  234. package/dist/core/watch.js +389 -0
  235. package/dist/core/youtube.d.ts +130 -0
  236. package/dist/core/youtube.js +1175 -0
  237. package/dist/ee/challenge-re-export.d.ts +1 -0
  238. package/dist/ee/challenge-re-export.js +1 -0
  239. package/dist/ee/challenge-solver.d.ts +72 -0
  240. package/dist/ee/challenge-solver.js +720 -0
  241. package/dist/ee/domain-extractors.d.ts +8 -0
  242. package/dist/ee/domain-extractors.js +8 -0
  243. package/dist/ee/domain-intel.d.ts +16 -0
  244. package/dist/ee/domain-intel.js +133 -0
  245. package/dist/ee/extractors/allrecipes.d.ts +2 -0
  246. package/dist/ee/extractors/allrecipes.js +120 -0
  247. package/dist/ee/extractors/amazon.d.ts +2 -0
  248. package/dist/ee/extractors/amazon.js +78 -0
  249. package/dist/ee/extractors/arxiv.d.ts +2 -0
  250. package/dist/ee/extractors/arxiv.js +137 -0
  251. package/dist/ee/extractors/bestbuy.d.ts +2 -0
  252. package/dist/ee/extractors/bestbuy.js +78 -0
  253. package/dist/ee/extractors/carscom.d.ts +2 -0
  254. package/dist/ee/extractors/carscom.js +121 -0
  255. package/dist/ee/extractors/coingecko.d.ts +2 -0
  256. package/dist/ee/extractors/coingecko.js +134 -0
  257. package/dist/ee/extractors/craigslist.d.ts +2 -0
  258. package/dist/ee/extractors/craigslist.js +92 -0
  259. package/dist/ee/extractors/devto.d.ts +2 -0
  260. package/dist/ee/extractors/devto.js +135 -0
  261. package/dist/ee/extractors/ebay.d.ts +2 -0
  262. package/dist/ee/extractors/ebay.js +90 -0
  263. package/dist/ee/extractors/espn.d.ts +2 -0
  264. package/dist/ee/extractors/espn.js +260 -0
  265. package/dist/ee/extractors/etsy.d.ts +2 -0
  266. package/dist/ee/extractors/etsy.js +52 -0
  267. package/dist/ee/extractors/facebook.d.ts +2 -0
  268. package/dist/ee/extractors/facebook.js +46 -0
  269. package/dist/ee/extractors/github.d.ts +2 -0
  270. package/dist/ee/extractors/github.js +196 -0
  271. package/dist/ee/extractors/google-flights.d.ts +2 -0
  272. package/dist/ee/extractors/google-flights.js +176 -0
  273. package/dist/ee/extractors/hackernews.d.ts +2 -0
  274. package/dist/ee/extractors/hackernews.js +147 -0
  275. package/dist/ee/extractors/imdb.d.ts +2 -0
  276. package/dist/ee/extractors/imdb.js +172 -0
  277. package/dist/ee/extractors/index.d.ts +26 -0
  278. package/dist/ee/extractors/index.js +247 -0
  279. package/dist/ee/extractors/instagram.d.ts +2 -0
  280. package/dist/ee/extractors/instagram.js +102 -0
  281. package/dist/ee/extractors/kalshi.d.ts +2 -0
  282. package/dist/ee/extractors/kalshi.js +121 -0
  283. package/dist/ee/extractors/kayak-cars.d.ts +2 -0
  284. package/dist/ee/extractors/kayak-cars.js +270 -0
  285. package/dist/ee/extractors/linkedin.d.ts +2 -0
  286. package/dist/ee/extractors/linkedin.js +113 -0
  287. package/dist/ee/extractors/medium.d.ts +2 -0
  288. package/dist/ee/extractors/medium.js +130 -0
  289. package/dist/ee/extractors/news.d.ts +4 -0
  290. package/dist/ee/extractors/news.js +173 -0
  291. package/dist/ee/extractors/npm.d.ts +2 -0
  292. package/dist/ee/extractors/npm.js +86 -0
  293. package/dist/ee/extractors/pdf.d.ts +2 -0
  294. package/dist/ee/extractors/pdf.js +108 -0
  295. package/dist/ee/extractors/pinterest.d.ts +2 -0
  296. package/dist/ee/extractors/pinterest.js +34 -0
  297. package/dist/ee/extractors/polymarket.d.ts +2 -0
  298. package/dist/ee/extractors/polymarket.js +358 -0
  299. package/dist/ee/extractors/producthunt.d.ts +2 -0
  300. package/dist/ee/extractors/producthunt.js +88 -0
  301. package/dist/ee/extractors/pubmed.d.ts +2 -0
  302. package/dist/ee/extractors/pubmed.js +162 -0
  303. package/dist/ee/extractors/pypi.d.ts +2 -0
  304. package/dist/ee/extractors/pypi.js +80 -0
  305. package/dist/ee/extractors/reddit.d.ts +2 -0
  306. package/dist/ee/extractors/reddit.js +438 -0
  307. package/dist/ee/extractors/redfin.d.ts +2 -0
  308. package/dist/ee/extractors/redfin.js +156 -0
  309. package/dist/ee/extractors/semanticscholar.d.ts +2 -0
  310. package/dist/ee/extractors/semanticscholar.js +131 -0
  311. package/dist/ee/extractors/shared.d.ts +12 -0
  312. package/dist/ee/extractors/shared.js +76 -0
  313. package/dist/ee/extractors/soundcloud.d.ts +2 -0
  314. package/dist/ee/extractors/soundcloud.js +34 -0
  315. package/dist/ee/extractors/sportsbetting.d.ts +2 -0
  316. package/dist/ee/extractors/sportsbetting.js +37 -0
  317. package/dist/ee/extractors/spotify.d.ts +2 -0
  318. package/dist/ee/extractors/spotify.js +34 -0
  319. package/dist/ee/extractors/stackoverflow.d.ts +2 -0
  320. package/dist/ee/extractors/stackoverflow.js +61 -0
  321. package/dist/ee/extractors/substack.d.ts +2 -0
  322. package/dist/ee/extractors/substack.js +115 -0
  323. package/dist/ee/extractors/substackroot.d.ts +2 -0
  324. package/dist/ee/extractors/substackroot.js +46 -0
  325. package/dist/ee/extractors/tiktok.d.ts +2 -0
  326. package/dist/ee/extractors/tiktok.js +29 -0
  327. package/dist/ee/extractors/tradingview.d.ts +2 -0
  328. package/dist/ee/extractors/tradingview.js +182 -0
  329. package/dist/ee/extractors/twitch.d.ts +2 -0
  330. package/dist/ee/extractors/twitch.js +36 -0
  331. package/dist/ee/extractors/twitter.d.ts +2 -0
  332. package/dist/ee/extractors/twitter.js +327 -0
  333. package/dist/ee/extractors/types.d.ts +14 -0
  334. package/dist/ee/extractors/types.js +1 -0
  335. package/dist/ee/extractors/walmart.d.ts +2 -0
  336. package/dist/ee/extractors/walmart.js +50 -0
  337. package/dist/ee/extractors/weather.d.ts +2 -0
  338. package/dist/ee/extractors/weather.js +133 -0
  339. package/dist/ee/extractors/wikipedia.d.ts +4 -0
  340. package/dist/ee/extractors/wikipedia.js +235 -0
  341. package/dist/ee/extractors/yelp.d.ts +2 -0
  342. package/dist/ee/extractors/yelp.js +216 -0
  343. package/dist/ee/extractors/youtube.d.ts +2 -0
  344. package/dist/ee/extractors/youtube.js +189 -0
  345. package/dist/ee/extractors/zillow.d.ts +54 -0
  346. package/dist/ee/extractors/zillow.js +247 -0
  347. package/dist/ee/extractors-re-export.d.ts +1 -0
  348. package/dist/ee/extractors-re-export.js +1 -0
  349. package/dist/ee/premium-hooks.d.ts +20 -0
  350. package/dist/ee/premium-hooks.js +50 -0
  351. package/dist/ee/spa-detection.d.ts +2 -0
  352. package/dist/ee/spa-detection.js +2 -0
  353. package/dist/ee/stability.d.ts +4 -0
  354. package/dist/ee/stability.js +29 -0
  355. package/dist/ee/swr-cache.d.ts +14 -0
  356. package/dist/ee/swr-cache.js +34 -0
  357. package/dist/index.d.ts +143 -0
  358. package/dist/index.js +291 -0
  359. package/dist/integrations/index.d.ts +2 -0
  360. package/dist/integrations/index.js +2 -0
  361. package/dist/integrations/langchain.d.ts +64 -0
  362. package/dist/integrations/langchain.js +115 -0
  363. package/dist/integrations/llamaindex.d.ts +50 -0
  364. package/dist/integrations/llamaindex.js +91 -0
  365. package/dist/mcp/handlers/act.d.ts +5 -0
  366. package/dist/mcp/handlers/act.js +34 -0
  367. package/dist/mcp/handlers/definitions.d.ts +6 -0
  368. package/dist/mcp/handlers/definitions.js +395 -0
  369. package/dist/mcp/handlers/extract.d.ts +7 -0
  370. package/dist/mcp/handlers/extract.js +135 -0
  371. package/dist/mcp/handlers/fetch.d.ts +6 -0
  372. package/dist/mcp/handlers/fetch.js +98 -0
  373. package/dist/mcp/handlers/find.d.ts +5 -0
  374. package/dist/mcp/handlers/find.js +137 -0
  375. package/dist/mcp/handlers/index.d.ts +13 -0
  376. package/dist/mcp/handlers/index.js +63 -0
  377. package/dist/mcp/handlers/legacy.d.ts +25 -0
  378. package/dist/mcp/handlers/legacy.js +450 -0
  379. package/dist/mcp/handlers/meta.d.ts +6 -0
  380. package/dist/mcp/handlers/meta.js +40 -0
  381. package/dist/mcp/handlers/monitor.d.ts +5 -0
  382. package/dist/mcp/handlers/monitor.js +41 -0
  383. package/dist/mcp/handlers/observe.d.ts +8 -0
  384. package/dist/mcp/handlers/observe.js +37 -0
  385. package/dist/mcp/handlers/read.d.ts +6 -0
  386. package/dist/mcp/handlers/read.js +78 -0
  387. package/dist/mcp/handlers/see.d.ts +5 -0
  388. package/dist/mcp/handlers/see.js +75 -0
  389. package/dist/mcp/handlers/types.d.ts +29 -0
  390. package/dist/mcp/handlers/types.js +28 -0
  391. package/dist/mcp/server.d.ts +7 -0
  392. package/dist/mcp/server.js +108 -0
  393. package/dist/mcp/smart-router.d.ts +23 -0
  394. package/dist/mcp/smart-router.js +178 -0
  395. package/dist/server/app.d.ts +14 -0
  396. package/dist/server/app.js +632 -0
  397. package/dist/server/auth-store.d.ts +28 -0
  398. package/dist/server/auth-store.js +88 -0
  399. package/dist/server/bull-queues.d.ts +60 -0
  400. package/dist/server/bull-queues.js +90 -0
  401. package/dist/server/email-service.d.ts +55 -0
  402. package/dist/server/email-service.js +291 -0
  403. package/dist/server/job-queue.d.ts +100 -0
  404. package/dist/server/job-queue.js +145 -0
  405. package/dist/server/logger.d.ts +10 -0
  406. package/dist/server/logger.js +37 -0
  407. package/dist/server/middleware/audit-log.d.ts +14 -0
  408. package/dist/server/middleware/audit-log.js +73 -0
  409. package/dist/server/middleware/auth.d.ts +35 -0
  410. package/dist/server/middleware/auth.js +225 -0
  411. package/dist/server/middleware/rate-limit.d.ts +50 -0
  412. package/dist/server/middleware/rate-limit.js +270 -0
  413. package/dist/server/middleware/scope-guard.d.ts +25 -0
  414. package/dist/server/middleware/scope-guard.js +45 -0
  415. package/dist/server/middleware/url-validator.d.ts +15 -0
  416. package/dist/server/middleware/url-validator.js +201 -0
  417. package/dist/server/openapi.yaml +6418 -0
  418. package/dist/server/pg-auth-store.d.ts +146 -0
  419. package/dist/server/pg-auth-store.js +576 -0
  420. package/dist/server/pg-job-queue.d.ts +59 -0
  421. package/dist/server/pg-job-queue.js +375 -0
  422. package/dist/server/routes/activity.d.ts +6 -0
  423. package/dist/server/routes/activity.js +79 -0
  424. package/dist/server/routes/admin-active.d.ts +7 -0
  425. package/dist/server/routes/admin-active.js +120 -0
  426. package/dist/server/routes/admin-stats.d.ts +7 -0
  427. package/dist/server/routes/admin-stats.js +176 -0
  428. package/dist/server/routes/agent.d.ts +24 -0
  429. package/dist/server/routes/agent.js +480 -0
  430. package/dist/server/routes/answer.d.ts +5 -0
  431. package/dist/server/routes/answer.js +125 -0
  432. package/dist/server/routes/ask.d.ts +28 -0
  433. package/dist/server/routes/ask.js +295 -0
  434. package/dist/server/routes/batch.d.ts +6 -0
  435. package/dist/server/routes/batch.js +493 -0
  436. package/dist/server/routes/cache-warm.d.ts +25 -0
  437. package/dist/server/routes/cache-warm.js +212 -0
  438. package/dist/server/routes/cli-usage.d.ts +6 -0
  439. package/dist/server/routes/cli-usage.js +127 -0
  440. package/dist/server/routes/compat.d.ts +23 -0
  441. package/dist/server/routes/compat.js +652 -0
  442. package/dist/server/routes/crawl.d.ts +13 -0
  443. package/dist/server/routes/crawl.js +287 -0
  444. package/dist/server/routes/deep-fetch.d.ts +8 -0
  445. package/dist/server/routes/deep-fetch.js +57 -0
  446. package/dist/server/routes/deep-research.d.ts +11 -0
  447. package/dist/server/routes/deep-research.js +232 -0
  448. package/dist/server/routes/demo.d.ts +24 -0
  449. package/dist/server/routes/demo.js +517 -0
  450. package/dist/server/routes/do.d.ts +8 -0
  451. package/dist/server/routes/do.js +72 -0
  452. package/dist/server/routes/extract.d.ts +14 -0
  453. package/dist/server/routes/extract.js +325 -0
  454. package/dist/server/routes/feed.d.ts +15 -0
  455. package/dist/server/routes/feed.js +311 -0
  456. package/dist/server/routes/fetch-queue.d.ts +13 -0
  457. package/dist/server/routes/fetch-queue.js +357 -0
  458. package/dist/server/routes/fetch.d.ts +7 -0
  459. package/dist/server/routes/fetch.js +1274 -0
  460. package/dist/server/routes/go.d.ts +14 -0
  461. package/dist/server/routes/go.js +81 -0
  462. package/dist/server/routes/health.d.ts +11 -0
  463. package/dist/server/routes/health.js +141 -0
  464. package/dist/server/routes/jobs.d.ts +7 -0
  465. package/dist/server/routes/jobs.js +574 -0
  466. package/dist/server/routes/map.d.ts +11 -0
  467. package/dist/server/routes/map.js +116 -0
  468. package/dist/server/routes/mcp.d.ts +14 -0
  469. package/dist/server/routes/mcp.js +197 -0
  470. package/dist/server/routes/metrics.d.ts +37 -0
  471. package/dist/server/routes/metrics.js +149 -0
  472. package/dist/server/routes/oauth.d.ts +9 -0
  473. package/dist/server/routes/oauth.js +396 -0
  474. package/dist/server/routes/playground.d.ts +17 -0
  475. package/dist/server/routes/playground.js +283 -0
  476. package/dist/server/routes/reader.d.ts +18 -0
  477. package/dist/server/routes/reader.js +192 -0
  478. package/dist/server/routes/research.d.ts +14 -0
  479. package/dist/server/routes/research.js +482 -0
  480. package/dist/server/routes/screenshot.d.ts +22 -0
  481. package/dist/server/routes/screenshot.js +820 -0
  482. package/dist/server/routes/search.d.ts +6 -0
  483. package/dist/server/routes/search.js +874 -0
  484. package/dist/server/routes/session.d.ts +17 -0
  485. package/dist/server/routes/session.js +548 -0
  486. package/dist/server/routes/share.d.ts +18 -0
  487. package/dist/server/routes/share.js +462 -0
  488. package/dist/server/routes/smart-search/handlers/cars.d.ts +2 -0
  489. package/dist/server/routes/smart-search/handlers/cars.js +102 -0
  490. package/dist/server/routes/smart-search/handlers/flights.d.ts +2 -0
  491. package/dist/server/routes/smart-search/handlers/flights.js +72 -0
  492. package/dist/server/routes/smart-search/handlers/general.d.ts +13 -0
  493. package/dist/server/routes/smart-search/handlers/general.js +717 -0
  494. package/dist/server/routes/smart-search/handlers/hotels.d.ts +2 -0
  495. package/dist/server/routes/smart-search/handlers/hotels.js +88 -0
  496. package/dist/server/routes/smart-search/handlers/products.d.ts +2 -0
  497. package/dist/server/routes/smart-search/handlers/products.js +1309 -0
  498. package/dist/server/routes/smart-search/handlers/rental.d.ts +2 -0
  499. package/dist/server/routes/smart-search/handlers/rental.js +154 -0
  500. package/dist/server/routes/smart-search/handlers/restaurants.d.ts +2 -0
  501. package/dist/server/routes/smart-search/handlers/restaurants.js +225 -0
  502. package/dist/server/routes/smart-search/handlers/transit-verdict.d.ts +41 -0
  503. package/dist/server/routes/smart-search/handlers/transit-verdict.js +224 -0
  504. package/dist/server/routes/smart-search/index.d.ts +19 -0
  505. package/dist/server/routes/smart-search/index.js +546 -0
  506. package/dist/server/routes/smart-search/intent.d.ts +3 -0
  507. package/dist/server/routes/smart-search/intent.js +264 -0
  508. package/dist/server/routes/smart-search/llm.d.ts +16 -0
  509. package/dist/server/routes/smart-search/llm.js +70 -0
  510. package/dist/server/routes/smart-search/sources/reddit.d.ts +18 -0
  511. package/dist/server/routes/smart-search/sources/reddit.js +34 -0
  512. package/dist/server/routes/smart-search/sources/yelp.d.ts +25 -0
  513. package/dist/server/routes/smart-search/sources/yelp.js +171 -0
  514. package/dist/server/routes/smart-search/sources/youtube.d.ts +8 -0
  515. package/dist/server/routes/smart-search/sources/youtube.js +9 -0
  516. package/dist/server/routes/smart-search/types.d.ts +81 -0
  517. package/dist/server/routes/smart-search/types.js +1 -0
  518. package/dist/server/routes/smart-search/utils.d.ts +20 -0
  519. package/dist/server/routes/smart-search/utils.js +146 -0
  520. package/dist/server/routes/stats.d.ts +6 -0
  521. package/dist/server/routes/stats.js +71 -0
  522. package/dist/server/routes/stripe.d.ts +15 -0
  523. package/dist/server/routes/stripe.js +296 -0
  524. package/dist/server/routes/transcript-export.d.ts +10 -0
  525. package/dist/server/routes/transcript-export.js +178 -0
  526. package/dist/server/routes/usage.d.ts +9 -0
  527. package/dist/server/routes/usage.js +279 -0
  528. package/dist/server/routes/users.d.ts +8 -0
  529. package/dist/server/routes/users.js +1867 -0
  530. package/dist/server/routes/watch.d.ts +15 -0
  531. package/dist/server/routes/watch.js +309 -0
  532. package/dist/server/routes/webhooks.d.ts +26 -0
  533. package/dist/server/routes/webhooks.js +170 -0
  534. package/dist/server/routes/youtube.d.ts +6 -0
  535. package/dist/server/routes/youtube.js +130 -0
  536. package/dist/server/sentry.d.ts +14 -0
  537. package/dist/server/sentry.js +104 -0
  538. package/dist/server/types.d.ts +15 -0
  539. package/dist/server/types.js +7 -0
  540. package/dist/server/utils/response.d.ts +44 -0
  541. package/dist/server/utils/response.js +69 -0
  542. package/dist/server/utils/sse.d.ts +22 -0
  543. package/dist/server/utils/sse.js +38 -0
  544. package/dist/types.d.ts +552 -0
  545. package/dist/types.js +39 -0
  546. package/llms.txt +105 -0
  547. package/package.json +189 -0
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Branding and design system extraction from web pages
3
+ * Extracts colors, fonts, typography, spacing, components, and CSS variables
4
+ */
5
+ /**
6
+ * Extract branding and design system from a webpage
7
+ * This must run inside a Playwright browser context to access computed styles
8
+ *
9
+ * @param page - Playwright Page object
10
+ * @returns Complete branding profile
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const browser = await chromium.launch();
15
+ * const page = await browser.newPage();
16
+ * await page.goto('https://example.com');
17
+ * const branding = await extractBranding(page);
18
+ * console.log(branding.colors.primary);
19
+ * ```
20
+ */
21
+ export async function extractBranding(page) {
22
+ try {
23
+ // Run extraction in browser context to access computed styles
24
+ const extracted = await page.evaluate(() => {
25
+ const result = {
26
+ colorScheme: 'light',
27
+ colors: {},
28
+ fonts: [],
29
+ typography: {
30
+ fontFamilies: {},
31
+ fontSizes: {},
32
+ fontWeights: {},
33
+ lineHeights: {},
34
+ },
35
+ spacing: {},
36
+ components: {},
37
+ cssVariables: {},
38
+ };
39
+ // Helper to parse RGB/RGBA to hex
40
+ function rgbToHex(rgb) {
41
+ const match = rgb.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/);
42
+ if (!match)
43
+ return rgb;
44
+ const [, r, g, b] = match;
45
+ return '#' + [r, g, b].map(x => parseInt(x).toString(16).padStart(2, '0')).join('');
46
+ }
47
+ // Extract all CSS variables from :root
48
+ const rootStyles = getComputedStyle(document.documentElement);
49
+ for (let i = 0; i < rootStyles.length; i++) {
50
+ const prop = rootStyles[i];
51
+ if (prop.startsWith('--')) {
52
+ const value = rootStyles.getPropertyValue(prop).trim();
53
+ result.cssVariables[prop] = value;
54
+ // Detect color variables
55
+ if (value.match(/^#[0-9a-f]{3,8}$/i) || value.match(/^rgba?\(/i) || value.match(/^hsla?\(/i)) {
56
+ const colorKey = prop.replace(/^--/, '').replace(/-/g, '_');
57
+ result.colors[colorKey] = value.startsWith('rgb') ? rgbToHex(value) : value;
58
+ }
59
+ }
60
+ }
61
+ // Detect color scheme (light/dark)
62
+ const bgColor = rootStyles.backgroundColor || getComputedStyle(document.body).backgroundColor;
63
+ if (bgColor) {
64
+ const rgb = bgColor.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);
65
+ if (rgb) {
66
+ const [, r, g, b] = rgb.map(Number);
67
+ const brightness = (r * 299 + g * 587 + b * 114) / 1000;
68
+ result.colorScheme = brightness < 128 ? 'dark' : 'light';
69
+ result.colors.background = rgbToHex(bgColor);
70
+ }
71
+ }
72
+ // Extract text colors
73
+ const bodyStyles = getComputedStyle(document.body);
74
+ result.colors.textPrimary = rgbToHex(bodyStyles.color);
75
+ // Find headings for secondary text color
76
+ const heading = document.querySelector('h1, h2, h3, h4, h5, h6');
77
+ if (heading) {
78
+ const headingColor = getComputedStyle(heading).color;
79
+ if (headingColor !== bodyStyles.color) {
80
+ result.colors.textSecondary = rgbToHex(headingColor);
81
+ }
82
+ }
83
+ // Try to detect primary/accent colors from buttons, links, etc.
84
+ const button = document.querySelector('button, .btn, [role="button"], a.button');
85
+ if (button) {
86
+ const btnStyles = getComputedStyle(button);
87
+ const btnBg = btnStyles.backgroundColor;
88
+ if (btnBg && !btnBg.includes('rgba(0, 0, 0, 0)')) {
89
+ result.colors.primary = rgbToHex(btnBg);
90
+ }
91
+ }
92
+ const link = document.querySelector('a');
93
+ if (link) {
94
+ const linkColor = getComputedStyle(link).color;
95
+ if (!result.colors.primary && linkColor !== bodyStyles.color) {
96
+ result.colors.accent = rgbToHex(linkColor);
97
+ }
98
+ }
99
+ // Extract fonts
100
+ const fontFamiliesSet = new Set();
101
+ const fontElements = [document.body, ...Array.from(document.querySelectorAll('h1, h2, h3, h4, h5, h6, p, button, input'))];
102
+ for (const el of fontElements) {
103
+ if (el) {
104
+ const styles = getComputedStyle(el);
105
+ const family = styles.fontFamily.split(',')[0].replace(/['"]/g, '').trim();
106
+ fontFamiliesSet.add(family);
107
+ const tagName = el.tagName.toLowerCase();
108
+ result.typography.fontFamilies[tagName] = family;
109
+ result.typography.fontSizes[tagName] = styles.fontSize;
110
+ result.typography.fontWeights[tagName] = parseInt(styles.fontWeight) || 400;
111
+ result.typography.lineHeights[tagName] = styles.lineHeight;
112
+ }
113
+ }
114
+ // Build fonts array with sources
115
+ fontFamiliesSet.forEach(family => {
116
+ const fontObj = { family };
117
+ // Detect Google Fonts
118
+ const links = document.querySelectorAll('link[href*="fonts.googleapis.com"]');
119
+ for (const link of links) {
120
+ const href = link.getAttribute('href') || '';
121
+ if (href.includes(family.replace(/\s+/g, '+'))) {
122
+ fontObj.source = 'Google Fonts';
123
+ // Extract weights from URL
124
+ const weightMatch = href.match(/wght@([0-9;]+)/);
125
+ if (weightMatch) {
126
+ fontObj.weights = weightMatch[1].split(';').map(Number);
127
+ }
128
+ break;
129
+ }
130
+ }
131
+ if (!fontObj.source) {
132
+ fontObj.source = 'system';
133
+ }
134
+ result.fonts.push(fontObj);
135
+ });
136
+ // Extract spacing values
137
+ const container = document.querySelector('main, .container, .wrapper, #content, [class*="container"]');
138
+ if (container) {
139
+ const containerStyles = getComputedStyle(container);
140
+ result.spacing.containerMaxWidth = containerStyles.maxWidth;
141
+ result.spacing.borderRadius = containerStyles.borderRadius;
142
+ // Try to detect base spacing unit
143
+ const padding = containerStyles.padding;
144
+ const paddingMatch = padding.match(/(\d+)px/);
145
+ if (paddingMatch) {
146
+ const px = parseInt(paddingMatch[1]);
147
+ // Common spacing systems use multiples of 4 or 8
148
+ if (px % 8 === 0)
149
+ result.spacing.baseUnit = 8;
150
+ else if (px % 4 === 0)
151
+ result.spacing.baseUnit = 4;
152
+ }
153
+ }
154
+ // Extract common component patterns
155
+ const componentSelectors = {
156
+ button: 'button, .btn, [role="button"]',
157
+ input: 'input[type="text"], input[type="email"], textarea',
158
+ card: '.card, [class*="card"]',
159
+ nav: 'nav, .nav, .navigation',
160
+ header: 'header, .header',
161
+ footer: 'footer, .footer',
162
+ };
163
+ for (const [name, selector] of Object.entries(componentSelectors)) {
164
+ const el = document.querySelector(selector);
165
+ if (el) {
166
+ const styles = getComputedStyle(el);
167
+ result.components[name] = {
168
+ backgroundColor: styles.backgroundColor.includes('rgba(0, 0, 0, 0)') ? 'transparent' : rgbToHex(styles.backgroundColor),
169
+ color: rgbToHex(styles.color),
170
+ borderRadius: styles.borderRadius,
171
+ padding: styles.padding,
172
+ fontSize: styles.fontSize,
173
+ fontWeight: styles.fontWeight,
174
+ };
175
+ }
176
+ }
177
+ return result;
178
+ });
179
+ // Extract logo and favicon using Playwright
180
+ const logo = await page.evaluate(() => {
181
+ const logoSelectors = [
182
+ 'img[alt*="logo" i]',
183
+ 'img[class*="logo" i]',
184
+ 'img[id*="logo" i]',
185
+ 'a.logo img',
186
+ 'a[class*="logo"] img',
187
+ 'header img',
188
+ '.header img',
189
+ 'nav img:first-of-type',
190
+ ];
191
+ for (const selector of logoSelectors) {
192
+ const img = document.querySelector(selector);
193
+ if (img?.src)
194
+ return img.src;
195
+ }
196
+ return undefined;
197
+ });
198
+ const favicon = await page.evaluate(() => {
199
+ const faviconSelectors = [
200
+ 'link[rel="icon"]',
201
+ 'link[rel="shortcut icon"]',
202
+ 'link[rel="apple-touch-icon"]',
203
+ ];
204
+ for (const selector of faviconSelectors) {
205
+ const link = document.querySelector(selector);
206
+ if (link?.href)
207
+ return link.href;
208
+ }
209
+ return undefined;
210
+ });
211
+ return {
212
+ ...extracted,
213
+ logo,
214
+ favicon,
215
+ };
216
+ }
217
+ catch (error) {
218
+ // Return minimal branding profile on error
219
+ console.error('Branding extraction failed:', error);
220
+ return {
221
+ colorScheme: 'light',
222
+ colors: {},
223
+ fonts: [],
224
+ typography: {
225
+ fontFamilies: {},
226
+ fontSizes: {},
227
+ fontWeights: {},
228
+ },
229
+ spacing: {},
230
+ components: {},
231
+ cssVariables: {},
232
+ };
233
+ }
234
+ }
@@ -0,0 +1,323 @@
1
+ /**
2
+ * Browser-based fetching — uses Playwright via the browser pool.
3
+ * Handles browserFetch, browserScreenshot, retryFetch, and scrollAndWait.
4
+ */
5
+ import type { Page } from 'playwright';
6
+ import type { PageAction } from '../types.js';
7
+ import { type FetchResult } from './http-fetch.js';
8
+ /**
9
+ * Fetch using headless Chromium via Playwright
10
+ * Slower but can handle JavaScript-heavy sites and bypass some bot detection
11
+ */
12
+ export declare function browserFetch(url: string, options?: {
13
+ userAgent?: string;
14
+ waitMs?: number;
15
+ timeoutMs?: number;
16
+ screenshot?: boolean;
17
+ screenshotFullPage?: boolean;
18
+ headers?: Record<string, string>;
19
+ cookies?: string[];
20
+ stealth?: boolean;
21
+ actions?: PageAction[];
22
+ /** Keep the browser page open after fetch (caller must close page + browser) */
23
+ keepPageOpen?: boolean;
24
+ /** Abort signal for internal races/cancellation */
25
+ signal?: AbortSignal;
26
+ /**
27
+ * Path to a persistent Chrome user-data-dir.
28
+ * When set, bypasses the shared browser pool and keeps the browser alive
29
+ * between fetches so cookies / session data persist.
30
+ */
31
+ profileDir?: string;
32
+ /** Launch browser in headed (visible) mode. Only meaningful with profileDir or for debugging. */
33
+ headed?: boolean;
34
+ /**
35
+ * Playwright storage state (cookies + localStorage) to inject into the browser context.
36
+ * When provided, a new BrowserContext is created with this state, which is more reliable
37
+ * than --user-data-dir for session injection.
38
+ */
39
+ storageState?: any;
40
+ /**
41
+ * Proxy URL for routing browser requests through a proxy server.
42
+ * Supports HTTP, HTTPS, and SOCKS5 proxies.
43
+ * Format: protocol://[user:pass@]host:port
44
+ * Examples: 'http://proxy.example.com:8080', 'socks5://user:pass@host:1080'
45
+ */
46
+ proxy?: string;
47
+ /** Device emulation: 'desktop' (default), 'mobile', 'tablet' */
48
+ device?: 'desktop' | 'mobile' | 'tablet';
49
+ /** Browser viewport width in pixels */
50
+ viewportWidth?: number;
51
+ /** Browser viewport height in pixels */
52
+ viewportHeight?: number;
53
+ /** Device scale factor (pixel density) for screenshots. Defaults to device profile value. */
54
+ deviceScaleFactor?: number;
55
+ /** Wait condition: 'domcontentloaded' (default), 'networkidle', 'load', 'commit' */
56
+ waitUntil?: string;
57
+ /** CSS selector to wait for before extracting content */
58
+ waitSelector?: string;
59
+ /** Block resource types for faster loading: 'image', 'stylesheet', 'font', 'media', 'script' */
60
+ blockResources?: string[];
61
+ /**
62
+ * Whether the target is a Single-Page Application (Kayak, Google Flights, Expedia, etc).
63
+ * When true, the DOM stability check uses a longer timeout (12s) to wait for async data loads.
64
+ * When false (default), a shorter 3s stability window is used.
65
+ */
66
+ isSPA?: boolean;
67
+ /** Language preferences for browser navigator.languages and locale (e.g. ['ja', 'en']) */
68
+ languages?: string[];
69
+ }): Promise<FetchResult>;
70
+ /**
71
+ * Capture a screenshot of a URL using headless Chromium via Playwright.
72
+ */
73
+ export declare function browserScreenshot(url: string, options?: {
74
+ fullPage?: boolean;
75
+ width?: number;
76
+ height?: number;
77
+ format?: 'png' | 'jpeg';
78
+ quality?: number;
79
+ waitMs?: number;
80
+ timeoutMs?: number;
81
+ userAgent?: string;
82
+ headers?: Record<string, string>;
83
+ cookies?: string[];
84
+ stealth?: boolean;
85
+ actions?: Array<{
86
+ type: 'wait' | 'click' | 'scroll' | 'type' | 'fill' | 'select' | 'press' | 'hover' | 'waitForSelector' | 'screenshot';
87
+ selector?: string;
88
+ value?: string;
89
+ key?: string;
90
+ ms?: number;
91
+ to?: 'top' | 'bottom' | number | {
92
+ x: number;
93
+ y: number;
94
+ };
95
+ timeout?: number;
96
+ }>;
97
+ scrollThrough?: boolean;
98
+ selector?: string;
99
+ }): Promise<{
100
+ buffer: Buffer;
101
+ finalUrl: string;
102
+ }>;
103
+ /**
104
+ * Capture screenshots of two URLs and compute a pixel-level visual diff.
105
+ */
106
+ export declare function browserDiff(url1: string, url2: string, options?: {
107
+ width?: number;
108
+ height?: number;
109
+ fullPage?: boolean;
110
+ threshold?: number;
111
+ format?: 'png' | 'jpeg';
112
+ quality?: number;
113
+ stealth?: boolean;
114
+ waitMs?: number;
115
+ timeoutMs?: number;
116
+ }): Promise<{
117
+ diffBuffer: Buffer;
118
+ diffPixels: number;
119
+ totalPixels: number;
120
+ diffPercent: number;
121
+ dimensions: {
122
+ width: number;
123
+ height: number;
124
+ };
125
+ }>;
126
+ /**
127
+ * Retry a fetch operation with exponential backoff
128
+ */
129
+ export declare function retryFetch<T>(fn: () => Promise<T>, maxAttempts?: number, baseDelayMs?: number): Promise<T>;
130
+ /**
131
+ * Scroll to the bottom of the page N times, waiting for the network to
132
+ * settle between each scroll. Useful for triggering lazy-loaded content
133
+ * (infinite scroll, deferred images, etc.).
134
+ *
135
+ * @param page - Playwright Page instance.
136
+ * @param times - Number of scroll-and-wait cycles (default: 3).
137
+ * @returns The final page HTML after all scrolls complete.
138
+ */
139
+ export declare function scrollAndWait(page: Page, times?: number): Promise<string>;
140
+ /**
141
+ * Capture multiple screenshots at evenly distributed scroll positions.
142
+ * Returns an array of Buffers (one per frame).
143
+ */
144
+ export declare function browserFilmstrip(url: string, options?: {
145
+ frames?: number;
146
+ width?: number;
147
+ height?: number;
148
+ format?: 'png' | 'jpeg';
149
+ quality?: number;
150
+ waitMs?: number;
151
+ timeoutMs?: number;
152
+ userAgent?: string;
153
+ headers?: Record<string, string>;
154
+ cookies?: string[];
155
+ stealth?: boolean;
156
+ }): Promise<{
157
+ frames: Buffer[];
158
+ finalUrl: string;
159
+ }>;
160
+ /**
161
+ * Section-aware audit screenshots.
162
+ * Finds all elements matching a CSS selector and captures a viewport screenshot
163
+ * scrolled to each one. Returns one image buffer per matching element.
164
+ */
165
+ export declare function browserAudit(url: string, options?: {
166
+ width?: number;
167
+ height?: number;
168
+ format?: 'png' | 'jpeg';
169
+ quality?: number;
170
+ selector?: string;
171
+ waitMs?: number;
172
+ timeoutMs?: number;
173
+ userAgent?: string;
174
+ headers?: Record<string, string>;
175
+ cookies?: string[];
176
+ stealth?: boolean;
177
+ scrollThrough?: boolean;
178
+ }): Promise<{
179
+ frames: {
180
+ index: number;
181
+ tag: string;
182
+ id: string;
183
+ className: string;
184
+ top: number;
185
+ height: number;
186
+ buffer: Buffer;
187
+ }[];
188
+ finalUrl: string;
189
+ }>;
190
+ /**
191
+ * Capture N viewport screenshots at fixed intervals to record CSS animation states.
192
+ */
193
+ export declare function browserAnimationCapture(url: string, options?: {
194
+ frames?: number;
195
+ intervalMs?: number;
196
+ scrollTo?: number;
197
+ selector?: string;
198
+ width?: number;
199
+ height?: number;
200
+ format?: 'png' | 'jpeg';
201
+ quality?: number;
202
+ waitMs?: number;
203
+ timeoutMs?: number;
204
+ userAgent?: string;
205
+ headers?: Record<string, string>;
206
+ cookies?: string[];
207
+ stealth?: boolean;
208
+ }): Promise<{
209
+ frames: {
210
+ index: number;
211
+ timestampMs: number;
212
+ buffer: Buffer;
213
+ }[];
214
+ finalUrl: string;
215
+ }>;
216
+ /**
217
+ * Capture screenshots at multiple viewport widths in a single browser session.
218
+ * Resizes the viewport between each capture.
219
+ */
220
+ export declare function browserViewports(url: string, options: {
221
+ viewports: {
222
+ width: number;
223
+ height: number;
224
+ label?: string;
225
+ }[];
226
+ fullPage?: boolean;
227
+ format?: 'png' | 'jpeg';
228
+ quality?: number;
229
+ waitMs?: number;
230
+ timeoutMs?: number;
231
+ userAgent?: string;
232
+ headers?: Record<string, string>;
233
+ cookies?: string[];
234
+ stealth?: boolean;
235
+ scrollThrough?: boolean;
236
+ }): Promise<{
237
+ frames: {
238
+ width: number;
239
+ height: number;
240
+ label: string;
241
+ buffer: Buffer;
242
+ }[];
243
+ finalUrl: string;
244
+ }>;
245
+ export interface DesignAuditResult {
246
+ score: number;
247
+ colorScheme: 'light' | 'dark' | 'unknown';
248
+ spacingViolations: {
249
+ element: string;
250
+ property: string;
251
+ value: number;
252
+ nearestGridValue: number;
253
+ }[];
254
+ touchTargetViolations: {
255
+ element: string;
256
+ width: number;
257
+ height: number;
258
+ minRequired: number;
259
+ }[];
260
+ contrastViolations: {
261
+ element: string;
262
+ textColor: string;
263
+ bgColor: string;
264
+ ratio: number;
265
+ required: number;
266
+ bgResolved?: boolean;
267
+ }[];
268
+ typography: {
269
+ fontSizes: string[];
270
+ lineHeights: string[];
271
+ letterSpacings: string[];
272
+ };
273
+ spacingScale: number[];
274
+ accessibilityViolations: {
275
+ type: 'missing-alt' | 'missing-label' | 'missing-aria' | 'heading-skip' | 'empty-link' | 'empty-button';
276
+ element: string;
277
+ details: string;
278
+ }[];
279
+ headingStructure: string[];
280
+ summary: string;
281
+ }
282
+ /**
283
+ * Extract computed CSS values and validate against design rules.
284
+ * Returns structured JSON instead of pixel images.
285
+ */
286
+ export declare function browserDesignAudit(url: string, options?: {
287
+ rules?: {
288
+ spacingGrid?: number;
289
+ minTouchTarget?: number;
290
+ minContrast?: number;
291
+ };
292
+ selector?: string;
293
+ width?: number;
294
+ height?: number;
295
+ waitMs?: number;
296
+ timeoutMs?: number;
297
+ userAgent?: string;
298
+ headers?: Record<string, string>;
299
+ cookies?: string[];
300
+ stealth?: boolean;
301
+ }): Promise<{
302
+ audit: DesignAuditResult;
303
+ finalUrl: string;
304
+ }>;
305
+ /**
306
+ * Extract structured visual design intelligence from a URL using a browser.
307
+ * Returns a DesignAnalysis object with effects, palette, layout, type scale,
308
+ * and quality signals.
309
+ */
310
+ export declare function browserDesignAnalysis(url: string, options?: {
311
+ selector?: string;
312
+ width?: number;
313
+ height?: number;
314
+ waitMs?: number;
315
+ timeoutMs?: number;
316
+ userAgent?: string;
317
+ headers?: Record<string, string>;
318
+ cookies?: string[];
319
+ stealth?: boolean;
320
+ }): Promise<{
321
+ analysis: import('./design-analysis.js').DesignAnalysis;
322
+ finalUrl: string;
323
+ }>;