@reftrixmcp/mcp-server 0.1.8 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1424) hide show
  1. package/README.md +36 -6
  2. package/package.json +46 -41
  3. package/src/admin/bull-board.ts +177 -0
  4. package/src/index.ts +32 -1
  5. package/src/middleware/auth.ts +6 -0
  6. package/src/middleware/index.ts +13 -0
  7. package/src/middleware/rate-limiter.ts +525 -0
  8. package/src/router.ts +36 -3
  9. package/src/schemas/common-search-filters.ts +42 -0
  10. package/src/services/background/background-design-db.service.ts +4 -6
  11. package/src/services/background/background-design-embedding.service.ts +6 -8
  12. package/src/services/background-search.service.ts +44 -16
  13. package/src/services/browser-process-manager.ts +29 -24
  14. package/src/services/layout-embedding.service.ts +18 -28
  15. package/src/services/layout-search.service.ts +52 -31
  16. package/src/services/layout-to-code.service.ts +13 -21
  17. package/src/services/ml/mood-brandtone-embedding.service.ts +4 -10
  18. package/src/services/motion/analyzers/webgl-motion-analyzer.ts +1 -3
  19. package/src/services/motion/existing-animation-detector.service.ts +11 -17
  20. package/src/services/motion/frame-analysis-save.helper.ts +3 -8
  21. package/src/services/motion/frame-capture.service.ts +5 -5
  22. package/src/services/motion/frame-embedding.service.ts +30 -46
  23. package/src/services/motion/js-animation-detector.ts +5 -15
  24. package/src/services/motion/js-animation-search.service.ts +12 -20
  25. package/src/services/motion/motion-db.service.ts +21 -31
  26. package/src/services/motion/three-js-scene-extractor.ts +1 -3
  27. package/src/services/motion/webgl-animation-detector.service.ts +5 -9
  28. package/src/services/motion/webgl-animation-embedding.service.ts +3 -5
  29. package/src/services/motion-persistence.service.ts +13 -19
  30. package/src/services/motion-search.service.ts +72 -57
  31. package/src/services/narrative/analyzers/worldview.analyzer.ts +6 -10
  32. package/src/services/narrative/narrative-analysis.service.ts +10 -16
  33. package/src/services/narrative/narrative-search.service.ts +89 -40
  34. package/src/services/narrative/types/narrative.types.ts +24 -6
  35. package/src/services/page/frame-analyzer.service.ts +1 -3
  36. package/src/services/page/layout-analyzer.service.ts +224 -303
  37. package/src/services/page/playwright-crawler.service.ts +14 -20
  38. package/src/services/page/quality-evaluator.service.ts +1 -3
  39. package/src/services/page/runtime-animation-detector.service.ts +7 -17
  40. package/src/services/page/video-recorder.service.ts +2 -6
  41. package/src/services/page/webgl-detector.service.ts +3 -5
  42. package/src/services/page-ingest-adapter.ts +269 -251
  43. package/src/services/part/part-search.service.ts +43 -22
  44. package/src/services/part/schemas.ts +6 -0
  45. package/src/services/project-context-analyzer.ts +3 -5
  46. package/src/services/quality/axe-accessibility.service.ts +3 -5
  47. package/src/services/quality/benchmark.service.ts +4 -16
  48. package/src/services/quality/pattern-matcher.service.ts +11 -21
  49. package/src/services/quality/playwright-axe.service.ts +10 -18
  50. package/src/services/quality-search.service.ts +16 -17
  51. package/src/services/responsive/multi-viewport-capture.service.ts +11 -17
  52. package/src/services/responsive/responsive-analysis-embedding.service.ts +7 -11
  53. package/src/services/responsive/responsive-analysis.service.ts +7 -11
  54. package/src/services/responsive/responsive-quality-evaluator.service.ts +4 -6
  55. package/src/services/responsive-search.service.ts +40 -5
  56. package/src/services/search-cache.service.ts +166 -0
  57. package/src/services/service-client.ts +16 -24
  58. package/src/services/service-initializer.ts +49 -945
  59. package/src/services/service-registrar-analysis.ts +679 -0
  60. package/src/services/service-registrar-search.ts +464 -0
  61. package/src/services/vision/scroll-vision-persistence.service.ts +4 -6
  62. package/src/services/vision-embedding-search.service.ts +57 -45
  63. package/src/services/vision-embedding.service.ts +8 -12
  64. package/src/services/worker-supervisor.service.ts +2 -6
  65. package/src/tools/background/schemas.ts +2 -1
  66. package/src/tools/background/search.tool.ts +93 -53
  67. package/src/tools/brief/validate.handler.ts +11 -26
  68. package/src/tools/design/search-by-image.tool.ts +891 -0
  69. package/src/tools/index.ts +42 -1
  70. package/src/tools/layout/batch-ingest.tool.ts +14 -21
  71. package/src/tools/layout/ingest.tool.ts +38 -88
  72. package/src/tools/layout/inspect/inspect.tool.ts +32 -59
  73. package/src/tools/layout/inspect/visual-extractors.utils.ts +3 -9
  74. package/src/tools/layout/schemas.ts +11 -8
  75. package/src/tools/layout/search-executor.ts +699 -0
  76. package/src/tools/layout/search-helpers.ts +620 -0
  77. package/src/tools/layout/search.tool.ts +148 -1371
  78. package/src/tools/layout/to-code.tool.ts +21 -42
  79. package/src/tools/motion/analyze-frames.handler.ts +19 -37
  80. package/src/tools/motion/code-generators.ts +1363 -0
  81. package/src/tools/motion/css-mode-handler.ts +14 -23
  82. package/src/tools/motion/detect.tool.ts +38 -60
  83. package/src/tools/motion/detection-modes.ts +4 -8
  84. package/src/tools/motion/di-factories.ts +87 -110
  85. package/src/tools/motion/search-helpers.ts +376 -0
  86. package/src/tools/motion/search.schemas.ts +9 -6
  87. package/src/tools/motion/search.tool.ts +81 -1717
  88. package/src/tools/narrative/analyze.tool.ts +14 -30
  89. package/src/tools/narrative/schemas.ts +14 -11
  90. package/src/tools/narrative/search.tool.ts +91 -77
  91. package/src/tools/page/analyze.tool.ts +21 -33
  92. package/src/tools/page/get-job-status.tool.ts +8 -12
  93. package/src/tools/page/handlers/db-handler.ts +3 -6
  94. package/src/tools/page/handlers/embedding-handler.ts +48 -81
  95. package/src/tools/page/handlers/execution-status-tracker.ts +3 -5
  96. package/src/tools/page/handlers/js-animation-handler.ts +29 -53
  97. package/src/tools/page/handlers/layout-handler.ts +45 -73
  98. package/src/tools/page/handlers/motion-handler.ts +24 -35
  99. package/src/tools/page/handlers/narrative-handler.ts +12 -24
  100. package/src/tools/page/handlers/phased-executor.ts +13 -16
  101. package/src/tools/page/handlers/quality-handler.ts +3 -4
  102. package/src/tools/page/handlers/result-builder.ts +21 -18
  103. package/src/tools/page/handlers/sync-helpers.ts +597 -0
  104. package/src/tools/page/handlers/sync-phase-handlers.ts +1170 -0
  105. package/src/tools/page/handlers/sync-processing.ts +192 -1542
  106. package/src/tools/page/handlers/timeout-utils.ts +23 -30
  107. package/src/tools/page/handlers/video-handler.ts +9 -9
  108. package/src/tools/page/handlers/webgl-animation-handler.ts +10 -13
  109. package/src/tools/part/compare.tool.ts +2 -20
  110. package/src/tools/part/inspect.tool.ts +11 -41
  111. package/src/tools/part/search.tool.ts +50 -28
  112. package/src/tools/preference/get.tool.ts +6 -19
  113. package/src/tools/preference/hear.tool.ts +6 -19
  114. package/src/tools/preference/reset.tool.ts +6 -19
  115. package/src/tools/project-get.ts +12 -14
  116. package/src/tools/project-list.ts +10 -22
  117. package/src/tools/quality/batch-evaluate.tool.ts +17 -23
  118. package/src/tools/quality/evaluate.tool.ts +42 -131
  119. package/src/tools/quality/get-job-status.tool.ts +2 -1
  120. package/src/tools/responsive/schemas.ts +2 -2
  121. package/src/tools/responsive/search.tool.ts +73 -46
  122. package/src/tools/search-unified.tool.ts +582 -0
  123. package/src/tools/style-get-palette.ts +18 -33
  124. package/src/tools/system-health.ts +24 -33
  125. package/src/utils/di-factory.ts +64 -0
  126. package/src/utils/prisma-wrapper-factory.ts +18 -17
  127. package/src/utils/sanitize-error.ts +132 -0
  128. package/src/utils/url-validator.ts +1 -3
  129. package/src/workers/batch-quality-worker.ts +5 -7
  130. package/src/workers/page-analyze-worker.ts +38 -24
  131. package/src/workers/phases/phase-0-ingest.ts +1 -1
  132. package/src/workers/phases/phase-1-layout.ts +10 -7
  133. package/src/workers/phases/phase-2-motion.ts +22 -23
  134. package/src/workers/phases/phase-4-narrative.ts +8 -12
  135. package/src/workers/phases/phase-5-embedding.ts +669 -457
  136. package/LICENSE +0 -661
  137. package/dist/api/health.d.ts +0 -122
  138. package/dist/api/health.d.ts.map +0 -1
  139. package/dist/api/health.js +0 -267
  140. package/dist/api/health.js.map +0 -1
  141. package/dist/config/index.d.ts +0 -9
  142. package/dist/config/index.d.ts.map +0 -1
  143. package/dist/config/index.js +0 -27
  144. package/dist/config/index.js.map +0 -1
  145. package/dist/config/redis.d.ts +0 -99
  146. package/dist/config/redis.d.ts.map +0 -1
  147. package/dist/config/redis.js +0 -234
  148. package/dist/config/redis.js.map +0 -1
  149. package/dist/index.d.ts +0 -18
  150. package/dist/index.d.ts.map +0 -1
  151. package/dist/index.js +0 -247
  152. package/dist/index.js.map +0 -1
  153. package/dist/lib/index.d.ts +0 -6
  154. package/dist/lib/index.d.ts.map +0 -1
  155. package/dist/lib/index.js +0 -14
  156. package/dist/lib/index.js.map +0 -1
  157. package/dist/lib/project-context.d.ts +0 -51
  158. package/dist/lib/project-context.d.ts.map +0 -1
  159. package/dist/lib/project-context.js +0 -109
  160. package/dist/lib/project-context.js.map +0 -1
  161. package/dist/middleware/args-type-coercion.d.ts +0 -59
  162. package/dist/middleware/args-type-coercion.d.ts.map +0 -1
  163. package/dist/middleware/args-type-coercion.js +0 -187
  164. package/dist/middleware/args-type-coercion.js.map +0 -1
  165. package/dist/middleware/auth.d.ts +0 -122
  166. package/dist/middleware/auth.d.ts.map +0 -1
  167. package/dist/middleware/auth.js +0 -430
  168. package/dist/middleware/auth.js.map +0 -1
  169. package/dist/middleware/index.d.ts +0 -10
  170. package/dist/middleware/index.d.ts.map +0 -1
  171. package/dist/middleware/index.js +0 -38
  172. package/dist/middleware/index.js.map +0 -1
  173. package/dist/middleware/light-response-controller.d.ts +0 -206
  174. package/dist/middleware/light-response-controller.d.ts.map +0 -1
  175. package/dist/middleware/light-response-controller.js +0 -555
  176. package/dist/middleware/light-response-controller.js.map +0 -1
  177. package/dist/middleware/response-size-warning.d.ts +0 -97
  178. package/dist/middleware/response-size-warning.d.ts.map +0 -1
  179. package/dist/middleware/response-size-warning.js +0 -137
  180. package/dist/middleware/response-size-warning.js.map +0 -1
  181. package/dist/queues/batch-quality-queue.d.ts +0 -225
  182. package/dist/queues/batch-quality-queue.d.ts.map +0 -1
  183. package/dist/queues/batch-quality-queue.js +0 -375
  184. package/dist/queues/batch-quality-queue.js.map +0 -1
  185. package/dist/queues/index.d.ts +0 -10
  186. package/dist/queues/index.d.ts.map +0 -1
  187. package/dist/queues/index.js +0 -28
  188. package/dist/queues/index.js.map +0 -1
  189. package/dist/queues/page-analyze-queue.d.ts +0 -287
  190. package/dist/queues/page-analyze-queue.d.ts.map +0 -1
  191. package/dist/queues/page-analyze-queue.js +0 -219
  192. package/dist/queues/page-analyze-queue.js.map +0 -1
  193. package/dist/router.d.ts +0 -144
  194. package/dist/router.d.ts.map +0 -1
  195. package/dist/router.js +0 -261
  196. package/dist/router.js.map +0 -1
  197. package/dist/schemas/creative/index.d.ts +0 -8
  198. package/dist/schemas/creative/index.d.ts.map +0 -1
  199. package/dist/schemas/creative/index.js +0 -23
  200. package/dist/schemas/creative/index.js.map +0 -1
  201. package/dist/schemas/creative/palette.schema.d.ts +0 -741
  202. package/dist/schemas/creative/palette.schema.d.ts.map +0 -1
  203. package/dist/schemas/creative/palette.schema.js +0 -154
  204. package/dist/schemas/creative/palette.schema.js.map +0 -1
  205. package/dist/schemas/mood-brandtone-filters.d.ts +0 -740
  206. package/dist/schemas/mood-brandtone-filters.d.ts.map +0 -1
  207. package/dist/schemas/mood-brandtone-filters.js +0 -265
  208. package/dist/schemas/mood-brandtone-filters.js.map +0 -1
  209. package/dist/scripts/backfill-embeddings.d.ts +0 -3
  210. package/dist/scripts/backfill-embeddings.d.ts.map +0 -1
  211. package/dist/scripts/backfill-embeddings.js +0 -385
  212. package/dist/scripts/backfill-embeddings.js.map +0 -1
  213. package/dist/scripts/check-embedding-coverage.d.ts +0 -3
  214. package/dist/scripts/check-embedding-coverage.d.ts.map +0 -1
  215. package/dist/scripts/check-embedding-coverage.js +0 -103
  216. package/dist/scripts/check-embedding-coverage.js.map +0 -1
  217. package/dist/scripts/start-workers.d.ts +0 -3
  218. package/dist/scripts/start-workers.d.ts.map +0 -1
  219. package/dist/scripts/start-workers.js +0 -447
  220. package/dist/scripts/start-workers.js.map +0 -1
  221. package/dist/server.d.ts +0 -49
  222. package/dist/server.d.ts.map +0 -1
  223. package/dist/server.js +0 -237
  224. package/dist/server.js.map +0 -1
  225. package/dist/services/background/background-design-db.service.d.ts +0 -65
  226. package/dist/services/background/background-design-db.service.d.ts.map +0 -1
  227. package/dist/services/background/background-design-db.service.js +0 -138
  228. package/dist/services/background/background-design-db.service.js.map +0 -1
  229. package/dist/services/background/background-design-detector.service.d.ts +0 -125
  230. package/dist/services/background/background-design-detector.service.d.ts.map +0 -1
  231. package/dist/services/background/background-design-detector.service.js +0 -1106
  232. package/dist/services/background/background-design-detector.service.js.map +0 -1
  233. package/dist/services/background/background-design-embedding.service.d.ts +0 -188
  234. package/dist/services/background/background-design-embedding.service.d.ts.map +0 -1
  235. package/dist/services/background/background-design-embedding.service.js +0 -386
  236. package/dist/services/background/background-design-embedding.service.js.map +0 -1
  237. package/dist/services/background-search.service.d.ts +0 -43
  238. package/dist/services/background-search.service.d.ts.map +0 -1
  239. package/dist/services/background-search.service.js +0 -235
  240. package/dist/services/background-search.service.js.map +0 -1
  241. package/dist/services/backup-service.d.ts +0 -135
  242. package/dist/services/backup-service.d.ts.map +0 -1
  243. package/dist/services/backup-service.js +0 -357
  244. package/dist/services/backup-service.js.map +0 -1
  245. package/dist/services/brief/brief-parser-service.d.ts +0 -47
  246. package/dist/services/brief/brief-parser-service.d.ts.map +0 -1
  247. package/dist/services/brief/brief-parser-service.js +0 -380
  248. package/dist/services/brief/brief-parser-service.js.map +0 -1
  249. package/dist/services/brief/schemas/brief-parser-schemas.d.ts +0 -278
  250. package/dist/services/brief/schemas/brief-parser-schemas.d.ts.map +0 -1
  251. package/dist/services/brief/schemas/brief-parser-schemas.js +0 -116
  252. package/dist/services/brief/schemas/brief-parser-schemas.js.map +0 -1
  253. package/dist/services/browser-process-manager.d.ts +0 -116
  254. package/dist/services/browser-process-manager.d.ts.map +0 -1
  255. package/dist/services/browser-process-manager.js +0 -259
  256. package/dist/services/browser-process-manager.js.map +0 -1
  257. package/dist/services/cache.d.ts +0 -119
  258. package/dist/services/cache.d.ts.map +0 -1
  259. package/dist/services/cache.js +0 -233
  260. package/dist/services/cache.js.map +0 -1
  261. package/dist/services/checksum-service.d.ts +0 -122
  262. package/dist/services/checksum-service.d.ts.map +0 -1
  263. package/dist/services/checksum-service.js +0 -270
  264. package/dist/services/checksum-service.js.map +0 -1
  265. package/dist/services/css-analysis-cache.service.d.ts +0 -248
  266. package/dist/services/css-analysis-cache.service.d.ts.map +0 -1
  267. package/dist/services/css-analysis-cache.service.js +0 -398
  268. package/dist/services/css-analysis-cache.service.js.map +0 -1
  269. package/dist/services/database-dumper.service.d.ts +0 -181
  270. package/dist/services/database-dumper.service.d.ts.map +0 -1
  271. package/dist/services/database-dumper.service.js +0 -550
  272. package/dist/services/database-dumper.service.js.map +0 -1
  273. package/dist/services/embedding-backfill.service.d.ts +0 -53
  274. package/dist/services/embedding-backfill.service.d.ts.map +0 -1
  275. package/dist/services/embedding-backfill.service.js +0 -672
  276. package/dist/services/embedding-backfill.service.js.map +0 -1
  277. package/dist/services/embedding-validation.service.d.ts +0 -64
  278. package/dist/services/embedding-validation.service.d.ts.map +0 -1
  279. package/dist/services/embedding-validation.service.js +0 -141
  280. package/dist/services/embedding-validation.service.js.map +0 -1
  281. package/dist/services/encryption-service.d.ts +0 -171
  282. package/dist/services/encryption-service.d.ts.map +0 -1
  283. package/dist/services/encryption-service.js +0 -343
  284. package/dist/services/encryption-service.js.map +0 -1
  285. package/dist/services/external-css-fetcher.d.ts +0 -185
  286. package/dist/services/external-css-fetcher.d.ts.map +0 -1
  287. package/dist/services/external-css-fetcher.js +0 -667
  288. package/dist/services/external-css-fetcher.js.map +0 -1
  289. package/dist/services/gpu-resource-manager.d.ts +0 -180
  290. package/dist/services/gpu-resource-manager.d.ts.map +0 -1
  291. package/dist/services/gpu-resource-manager.js +0 -485
  292. package/dist/services/gpu-resource-manager.js.map +0 -1
  293. package/dist/services/index.d.ts +0 -15
  294. package/dist/services/index.d.ts.map +0 -1
  295. package/dist/services/index.js +0 -73
  296. package/dist/services/index.js.map +0 -1
  297. package/dist/services/layout/component-splitter.d.ts +0 -63
  298. package/dist/services/layout/component-splitter.d.ts.map +0 -1
  299. package/dist/services/layout/component-splitter.js +0 -508
  300. package/dist/services/layout/component-splitter.js.map +0 -1
  301. package/dist/services/layout/html-to-jsx-converter.d.ts +0 -40
  302. package/dist/services/layout/html-to-jsx-converter.d.ts.map +0 -1
  303. package/dist/services/layout/html-to-jsx-converter.js +0 -484
  304. package/dist/services/layout/html-to-jsx-converter.js.map +0 -1
  305. package/dist/services/layout/semantic-html-converter.d.ts +0 -67
  306. package/dist/services/layout/semantic-html-converter.d.ts.map +0 -1
  307. package/dist/services/layout/semantic-html-converter.js +0 -247
  308. package/dist/services/layout/semantic-html-converter.js.map +0 -1
  309. package/dist/services/layout/style-to-tailwind-mapper.d.ts +0 -82
  310. package/dist/services/layout/style-to-tailwind-mapper.d.ts.map +0 -1
  311. package/dist/services/layout/style-to-tailwind-mapper.js +0 -1334
  312. package/dist/services/layout/style-to-tailwind-mapper.js.map +0 -1
  313. package/dist/services/layout-embedding.service.d.ts +0 -415
  314. package/dist/services/layout-embedding.service.d.ts.map +0 -1
  315. package/dist/services/layout-embedding.service.js +0 -1147
  316. package/dist/services/layout-embedding.service.js.map +0 -1
  317. package/dist/services/layout-generate-code-service-export.d.ts +0 -38
  318. package/dist/services/layout-generate-code-service-export.d.ts.map +0 -1
  319. package/dist/services/layout-generate-code-service-export.js +0 -77
  320. package/dist/services/layout-generate-code-service-export.js.map +0 -1
  321. package/dist/services/layout-search-service-export.d.ts +0 -31
  322. package/dist/services/layout-search-service-export.d.ts.map +0 -1
  323. package/dist/services/layout-search-service-export.js +0 -43
  324. package/dist/services/layout-search-service-export.js.map +0 -1
  325. package/dist/services/layout-search.service.d.ts +0 -111
  326. package/dist/services/layout-search.service.d.ts.map +0 -1
  327. package/dist/services/layout-search.service.js +0 -716
  328. package/dist/services/layout-search.service.js.map +0 -1
  329. package/dist/services/layout-to-code.service.d.ts +0 -85
  330. package/dist/services/layout-to-code.service.d.ts.map +0 -1
  331. package/dist/services/layout-to-code.service.js +0 -1368
  332. package/dist/services/layout-to-code.service.js.map +0 -1
  333. package/dist/services/metrics-collector.d.ts +0 -189
  334. package/dist/services/metrics-collector.d.ts.map +0 -1
  335. package/dist/services/metrics-collector.js +0 -344
  336. package/dist/services/metrics-collector.js.map +0 -1
  337. package/dist/services/ml/mood-brandtone-embedding.service.d.ts +0 -253
  338. package/dist/services/ml/mood-brandtone-embedding.service.d.ts.map +0 -1
  339. package/dist/services/ml/mood-brandtone-embedding.service.js +0 -678
  340. package/dist/services/ml/mood-brandtone-embedding.service.js.map +0 -1
  341. package/dist/services/motion/analyzers/color-change.analyzer.d.ts +0 -274
  342. package/dist/services/motion/analyzers/color-change.analyzer.d.ts.map +0 -1
  343. package/dist/services/motion/analyzers/color-change.analyzer.js +0 -644
  344. package/dist/services/motion/analyzers/color-change.analyzer.js.map +0 -1
  345. package/dist/services/motion/analyzers/frame-diff.analyzer.d.ts +0 -109
  346. package/dist/services/motion/analyzers/frame-diff.analyzer.d.ts.map +0 -1
  347. package/dist/services/motion/analyzers/frame-diff.analyzer.js +0 -315
  348. package/dist/services/motion/analyzers/frame-diff.analyzer.js.map +0 -1
  349. package/dist/services/motion/analyzers/layout-shift.detector.d.ts +0 -132
  350. package/dist/services/motion/analyzers/layout-shift.detector.d.ts.map +0 -1
  351. package/dist/services/motion/analyzers/layout-shift.detector.js +0 -179
  352. package/dist/services/motion/analyzers/layout-shift.detector.js.map +0 -1
  353. package/dist/services/motion/analyzers/motion-vector.estimator.d.ts +0 -88
  354. package/dist/services/motion/analyzers/motion-vector.estimator.d.ts.map +0 -1
  355. package/dist/services/motion/analyzers/motion-vector.estimator.js +0 -494
  356. package/dist/services/motion/analyzers/motion-vector.estimator.js.map +0 -1
  357. package/dist/services/motion/analyzers/webgl-motion-analyzer.d.ts +0 -167
  358. package/dist/services/motion/analyzers/webgl-motion-analyzer.d.ts.map +0 -1
  359. package/dist/services/motion/analyzers/webgl-motion-analyzer.js +0 -500
  360. package/dist/services/motion/analyzers/webgl-motion-analyzer.js.map +0 -1
  361. package/dist/services/motion/animation-metrics-collector.service.d.ts +0 -215
  362. package/dist/services/motion/animation-metrics-collector.service.d.ts.map +0 -1
  363. package/dist/services/motion/animation-metrics-collector.service.js +0 -502
  364. package/dist/services/motion/animation-metrics-collector.service.js.map +0 -1
  365. package/dist/services/motion/cls-calculator.service.d.ts +0 -186
  366. package/dist/services/motion/cls-calculator.service.d.ts.map +0 -1
  367. package/dist/services/motion/cls-calculator.service.js +0 -329
  368. package/dist/services/motion/cls-calculator.service.js.map +0 -1
  369. package/dist/services/motion/existing-animation-detector.service.d.ts +0 -208
  370. package/dist/services/motion/existing-animation-detector.service.d.ts.map +0 -1
  371. package/dist/services/motion/existing-animation-detector.service.js +0 -591
  372. package/dist/services/motion/existing-animation-detector.service.js.map +0 -1
  373. package/dist/services/motion/fade-detector.service.d.ts +0 -114
  374. package/dist/services/motion/fade-detector.service.d.ts.map +0 -1
  375. package/dist/services/motion/fade-detector.service.js +0 -249
  376. package/dist/services/motion/fade-detector.service.js.map +0 -1
  377. package/dist/services/motion/frame-analysis-save.helper.d.ts +0 -41
  378. package/dist/services/motion/frame-analysis-save.helper.d.ts.map +0 -1
  379. package/dist/services/motion/frame-analysis-save.helper.js +0 -235
  380. package/dist/services/motion/frame-analysis-save.helper.js.map +0 -1
  381. package/dist/services/motion/frame-capture.service.d.ts +0 -170
  382. package/dist/services/motion/frame-capture.service.d.ts.map +0 -1
  383. package/dist/services/motion/frame-capture.service.js +0 -476
  384. package/dist/services/motion/frame-capture.service.js.map +0 -1
  385. package/dist/services/motion/frame-embedding.service.d.ts +0 -315
  386. package/dist/services/motion/frame-embedding.service.d.ts.map +0 -1
  387. package/dist/services/motion/frame-embedding.service.js +0 -1023
  388. package/dist/services/motion/frame-embedding.service.js.map +0 -1
  389. package/dist/services/motion/frame-image-analysis.service.d.ts +0 -126
  390. package/dist/services/motion/frame-image-analysis.service.d.ts.map +0 -1
  391. package/dist/services/motion/frame-image-analysis.service.js +0 -982
  392. package/dist/services/motion/frame-image-analysis.service.js.map +0 -1
  393. package/dist/services/motion/frame-image-analyzer.adapter.d.ts +0 -168
  394. package/dist/services/motion/frame-image-analyzer.adapter.d.ts.map +0 -1
  395. package/dist/services/motion/frame-image-analyzer.adapter.js +0 -520
  396. package/dist/services/motion/frame-image-analyzer.adapter.js.map +0 -1
  397. package/dist/services/motion/frame-worker-pool.service.d.ts +0 -133
  398. package/dist/services/motion/frame-worker-pool.service.d.ts.map +0 -1
  399. package/dist/services/motion/frame-worker-pool.service.js +0 -410
  400. package/dist/services/motion/frame-worker-pool.service.js.map +0 -1
  401. package/dist/services/motion/infrastructure/frame-loader.d.ts +0 -77
  402. package/dist/services/motion/infrastructure/frame-loader.d.ts.map +0 -1
  403. package/dist/services/motion/infrastructure/frame-loader.js +0 -430
  404. package/dist/services/motion/infrastructure/frame-loader.js.map +0 -1
  405. package/dist/services/motion/js-animation-detector.d.ts +0 -382
  406. package/dist/services/motion/js-animation-detector.d.ts.map +0 -1
  407. package/dist/services/motion/js-animation-detector.js +0 -911
  408. package/dist/services/motion/js-animation-detector.js.map +0 -1
  409. package/dist/services/motion/js-animation-embedding.service.d.ts +0 -114
  410. package/dist/services/motion/js-animation-embedding.service.d.ts.map +0 -1
  411. package/dist/services/motion/js-animation-embedding.service.js +0 -289
  412. package/dist/services/motion/js-animation-embedding.service.js.map +0 -1
  413. package/dist/services/motion/js-animation-search.service.d.ts +0 -138
  414. package/dist/services/motion/js-animation-search.service.d.ts.map +0 -1
  415. package/dist/services/motion/js-animation-search.service.js +0 -503
  416. package/dist/services/motion/js-animation-search.service.js.map +0 -1
  417. package/dist/services/motion/motion-db.service.d.ts +0 -231
  418. package/dist/services/motion/motion-db.service.d.ts.map +0 -1
  419. package/dist/services/motion/motion-db.service.js +0 -676
  420. package/dist/services/motion/motion-db.service.js.map +0 -1
  421. package/dist/services/motion/three-js-scene-extractor.d.ts +0 -274
  422. package/dist/services/motion/three-js-scene-extractor.d.ts.map +0 -1
  423. package/dist/services/motion/three-js-scene-extractor.js +0 -1126
  424. package/dist/services/motion/three-js-scene-extractor.js.map +0 -1
  425. package/dist/services/motion/types.d.ts +0 -592
  426. package/dist/services/motion/types.d.ts.map +0 -1
  427. package/dist/services/motion/types.js +0 -121
  428. package/dist/services/motion/types.js.map +0 -1
  429. package/dist/services/motion/visual-category-classifier.d.ts +0 -273
  430. package/dist/services/motion/visual-category-classifier.d.ts.map +0 -1
  431. package/dist/services/motion/visual-category-classifier.js +0 -1060
  432. package/dist/services/motion/visual-category-classifier.js.map +0 -1
  433. package/dist/services/motion/webgl-animation-categorizer.d.ts +0 -151
  434. package/dist/services/motion/webgl-animation-categorizer.d.ts.map +0 -1
  435. package/dist/services/motion/webgl-animation-categorizer.js +0 -568
  436. package/dist/services/motion/webgl-animation-categorizer.js.map +0 -1
  437. package/dist/services/motion/webgl-animation-detector.service.d.ts +0 -204
  438. package/dist/services/motion/webgl-animation-detector.service.d.ts.map +0 -1
  439. package/dist/services/motion/webgl-animation-detector.service.js +0 -518
  440. package/dist/services/motion/webgl-animation-detector.service.js.map +0 -1
  441. package/dist/services/motion/webgl-animation-embedding.service.d.ts +0 -238
  442. package/dist/services/motion/webgl-animation-embedding.service.d.ts.map +0 -1
  443. package/dist/services/motion/webgl-animation-embedding.service.js +0 -368
  444. package/dist/services/motion/webgl-animation-embedding.service.js.map +0 -1
  445. package/dist/services/motion-detect-service-export.d.ts +0 -130
  446. package/dist/services/motion-detect-service-export.d.ts.map +0 -1
  447. package/dist/services/motion-detect-service-export.js +0 -160
  448. package/dist/services/motion-detect-service-export.js.map +0 -1
  449. package/dist/services/motion-persistence.service.d.ts +0 -144
  450. package/dist/services/motion-persistence.service.d.ts.map +0 -1
  451. package/dist/services/motion-persistence.service.js +0 -398
  452. package/dist/services/motion-persistence.service.js.map +0 -1
  453. package/dist/services/motion-search-service.d.ts +0 -10
  454. package/dist/services/motion-search-service.d.ts.map +0 -1
  455. package/dist/services/motion-search-service.js +0 -22
  456. package/dist/services/motion-search-service.js.map +0 -1
  457. package/dist/services/motion-search.service.d.ts +0 -210
  458. package/dist/services/motion-search.service.d.ts.map +0 -1
  459. package/dist/services/motion-search.service.js +0 -900
  460. package/dist/services/motion-search.service.js.map +0 -1
  461. package/dist/services/narrative/analyzers/layout-structure.analyzer.d.ts +0 -75
  462. package/dist/services/narrative/analyzers/layout-structure.analyzer.d.ts.map +0 -1
  463. package/dist/services/narrative/analyzers/layout-structure.analyzer.js +0 -489
  464. package/dist/services/narrative/analyzers/layout-structure.analyzer.js.map +0 -1
  465. package/dist/services/narrative/analyzers/worldview.analyzer.d.ts +0 -92
  466. package/dist/services/narrative/analyzers/worldview.analyzer.d.ts.map +0 -1
  467. package/dist/services/narrative/analyzers/worldview.analyzer.js +0 -477
  468. package/dist/services/narrative/analyzers/worldview.analyzer.js.map +0 -1
  469. package/dist/services/narrative/generators/confidence-calculator.d.ts +0 -65
  470. package/dist/services/narrative/generators/confidence-calculator.d.ts.map +0 -1
  471. package/dist/services/narrative/generators/confidence-calculator.js +0 -316
  472. package/dist/services/narrative/generators/confidence-calculator.js.map +0 -1
  473. package/dist/services/narrative/generators/text-representation.generator.d.ts +0 -67
  474. package/dist/services/narrative/generators/text-representation.generator.d.ts.map +0 -1
  475. package/dist/services/narrative/generators/text-representation.generator.js +0 -312
  476. package/dist/services/narrative/generators/text-representation.generator.js.map +0 -1
  477. package/dist/services/narrative/index.d.ts +0 -16
  478. package/dist/services/narrative/index.d.ts.map +0 -1
  479. package/dist/services/narrative/index.js +0 -63
  480. package/dist/services/narrative/index.js.map +0 -1
  481. package/dist/services/narrative/narrative-analysis.service.d.ts +0 -120
  482. package/dist/services/narrative/narrative-analysis.service.d.ts.map +0 -1
  483. package/dist/services/narrative/narrative-analysis.service.js +0 -479
  484. package/dist/services/narrative/narrative-analysis.service.js.map +0 -1
  485. package/dist/services/narrative/narrative-search.service.d.ts +0 -126
  486. package/dist/services/narrative/narrative-search.service.d.ts.map +0 -1
  487. package/dist/services/narrative/narrative-search.service.js +0 -516
  488. package/dist/services/narrative/narrative-search.service.js.map +0 -1
  489. package/dist/services/narrative/types/narrative.types.d.ts +0 -372
  490. package/dist/services/narrative/types/narrative.types.d.ts.map +0 -1
  491. package/dist/services/narrative/types/narrative.types.js +0 -5
  492. package/dist/services/narrative/types/narrative.types.js.map +0 -1
  493. package/dist/services/orphaned-job-utils.d.ts +0 -62
  494. package/dist/services/orphaned-job-utils.d.ts.map +0 -1
  495. package/dist/services/orphaned-job-utils.js +0 -130
  496. package/dist/services/orphaned-job-utils.js.map +0 -1
  497. package/dist/services/page/css-animation-parser.service.d.ts +0 -173
  498. package/dist/services/page/css-animation-parser.service.d.ts.map +0 -1
  499. package/dist/services/page/css-animation-parser.service.js +0 -537
  500. package/dist/services/page/css-animation-parser.service.js.map +0 -1
  501. package/dist/services/page/fallback-analyzer.service.d.ts +0 -140
  502. package/dist/services/page/fallback-analyzer.service.d.ts.map +0 -1
  503. package/dist/services/page/fallback-analyzer.service.js +0 -289
  504. package/dist/services/page/fallback-analyzer.service.js.map +0 -1
  505. package/dist/services/page/frame-analyzer.service.d.ts +0 -208
  506. package/dist/services/page/frame-analyzer.service.d.ts.map +0 -1
  507. package/dist/services/page/frame-analyzer.service.js +0 -628
  508. package/dist/services/page/frame-analyzer.service.js.map +0 -1
  509. package/dist/services/page/layout-analyzer.service.d.ts +0 -323
  510. package/dist/services/page/layout-analyzer.service.d.ts.map +0 -1
  511. package/dist/services/page/layout-analyzer.service.js +0 -2001
  512. package/dist/services/page/layout-analyzer.service.js.map +0 -1
  513. package/dist/services/page/motion-category-classifier.service.d.ts +0 -72
  514. package/dist/services/page/motion-category-classifier.service.d.ts.map +0 -1
  515. package/dist/services/page/motion-category-classifier.service.js +0 -340
  516. package/dist/services/page/motion-category-classifier.service.js.map +0 -1
  517. package/dist/services/page/motion-detector.service.d.ts +0 -76
  518. package/dist/services/page/motion-detector.service.d.ts.map +0 -1
  519. package/dist/services/page/motion-detector.service.js +0 -255
  520. package/dist/services/page/motion-detector.service.js.map +0 -1
  521. package/dist/services/page/motion-performance-analyzer.service.d.ts +0 -114
  522. package/dist/services/page/motion-performance-analyzer.service.d.ts.map +0 -1
  523. package/dist/services/page/motion-performance-analyzer.service.js +0 -315
  524. package/dist/services/page/motion-performance-analyzer.service.js.map +0 -1
  525. package/dist/services/page/playwright-crawler.service.d.ts +0 -106
  526. package/dist/services/page/playwright-crawler.service.d.ts.map +0 -1
  527. package/dist/services/page/playwright-crawler.service.js +0 -373
  528. package/dist/services/page/playwright-crawler.service.js.map +0 -1
  529. package/dist/services/page/quality-evaluator.service.d.ts +0 -107
  530. package/dist/services/page/quality-evaluator.service.d.ts.map +0 -1
  531. package/dist/services/page/quality-evaluator.service.js +0 -1138
  532. package/dist/services/page/quality-evaluator.service.js.map +0 -1
  533. package/dist/services/page/runtime-animation-detector.service.d.ts +0 -154
  534. package/dist/services/page/runtime-animation-detector.service.d.ts.map +0 -1
  535. package/dist/services/page/runtime-animation-detector.service.js +0 -480
  536. package/dist/services/page/runtime-animation-detector.service.js.map +0 -1
  537. package/dist/services/page/section-postprocessor.service.d.ts +0 -55
  538. package/dist/services/page/section-postprocessor.service.d.ts.map +0 -1
  539. package/dist/services/page/section-postprocessor.service.js +0 -708
  540. package/dist/services/page/section-postprocessor.service.js.map +0 -1
  541. package/dist/services/page/video-recorder.service.d.ts +0 -110
  542. package/dist/services/page/video-recorder.service.d.ts.map +0 -1
  543. package/dist/services/page/video-recorder.service.js +0 -441
  544. package/dist/services/page/video-recorder.service.js.map +0 -1
  545. package/dist/services/page/webgl-detector.service.d.ts +0 -113
  546. package/dist/services/page/webgl-detector.service.d.ts.map +0 -1
  547. package/dist/services/page/webgl-detector.service.js +0 -280
  548. package/dist/services/page/webgl-detector.service.js.map +0 -1
  549. package/dist/services/page-analyze-service.d.ts +0 -30
  550. package/dist/services/page-analyze-service.d.ts.map +0 -1
  551. package/dist/services/page-analyze-service.js +0 -58
  552. package/dist/services/page-analyze-service.js.map +0 -1
  553. package/dist/services/page-ingest-adapter.d.ts +0 -479
  554. package/dist/services/page-ingest-adapter.d.ts.map +0 -1
  555. package/dist/services/page-ingest-adapter.js +0 -1726
  556. package/dist/services/page-ingest-adapter.js.map +0 -1
  557. package/dist/services/palette-service-export.d.ts +0 -26
  558. package/dist/services/palette-service-export.d.ts.map +0 -1
  559. package/dist/services/palette-service-export.js +0 -22
  560. package/dist/services/palette-service-export.js.map +0 -1
  561. package/dist/services/part/index.d.ts +0 -22
  562. package/dist/services/part/index.d.ts.map +0 -1
  563. package/dist/services/part/index.js +0 -72
  564. package/dist/services/part/index.js.map +0 -1
  565. package/dist/services/part/part-backfill.service.d.ts +0 -66
  566. package/dist/services/part/part-backfill.service.d.ts.map +0 -1
  567. package/dist/services/part/part-backfill.service.js +0 -195
  568. package/dist/services/part/part-backfill.service.js.map +0 -1
  569. package/dist/services/part/part-bbox-playwright.service.d.ts +0 -85
  570. package/dist/services/part/part-bbox-playwright.service.d.ts.map +0 -1
  571. package/dist/services/part/part-bbox-playwright.service.js +0 -362
  572. package/dist/services/part/part-bbox-playwright.service.js.map +0 -1
  573. package/dist/services/part/part-db.service.d.ts +0 -41
  574. package/dist/services/part/part-db.service.d.ts.map +0 -1
  575. package/dist/services/part/part-db.service.js +0 -82
  576. package/dist/services/part/part-db.service.js.map +0 -1
  577. package/dist/services/part/part-embedding-db.service.d.ts +0 -52
  578. package/dist/services/part/part-embedding-db.service.d.ts.map +0 -1
  579. package/dist/services/part/part-embedding-db.service.js +0 -122
  580. package/dist/services/part/part-embedding-db.service.js.map +0 -1
  581. package/dist/services/part/part-embedding.service.d.ts +0 -140
  582. package/dist/services/part/part-embedding.service.d.ts.map +0 -1
  583. package/dist/services/part/part-embedding.service.js +0 -276
  584. package/dist/services/part/part-embedding.service.js.map +0 -1
  585. package/dist/services/part/part-extraction.service.d.ts +0 -75
  586. package/dist/services/part/part-extraction.service.d.ts.map +0 -1
  587. package/dist/services/part/part-extraction.service.js +0 -519
  588. package/dist/services/part/part-extraction.service.js.map +0 -1
  589. package/dist/services/part/part-search.service.d.ts +0 -180
  590. package/dist/services/part/part-search.service.d.ts.map +0 -1
  591. package/dist/services/part/part-search.service.js +0 -565
  592. package/dist/services/part/part-search.service.js.map +0 -1
  593. package/dist/services/part/schemas.d.ts +0 -232
  594. package/dist/services/part/schemas.d.ts.map +0 -1
  595. package/dist/services/part/schemas.js +0 -167
  596. package/dist/services/part/schemas.js.map +0 -1
  597. package/dist/services/part/section-screenshot-fallback.service.d.ts +0 -101
  598. package/dist/services/part/section-screenshot-fallback.service.d.ts.map +0 -1
  599. package/dist/services/part/section-screenshot-fallback.service.js +0 -489
  600. package/dist/services/part/section-screenshot-fallback.service.js.map +0 -1
  601. package/dist/services/part/types.d.ts +0 -189
  602. package/dist/services/part/types.d.ts.map +0 -1
  603. package/dist/services/part/types.js +0 -139
  604. package/dist/services/part/types.js.map +0 -1
  605. package/dist/services/persistent-cache.d.ts +0 -209
  606. package/dist/services/persistent-cache.d.ts.map +0 -1
  607. package/dist/services/persistent-cache.js +0 -633
  608. package/dist/services/persistent-cache.js.map +0 -1
  609. package/dist/services/preference-profile.service.d.ts +0 -143
  610. package/dist/services/preference-profile.service.d.ts.map +0 -1
  611. package/dist/services/preference-profile.service.js +0 -604
  612. package/dist/services/preference-profile.service.js.map +0 -1
  613. package/dist/services/preference-rerank.helper.d.ts +0 -128
  614. package/dist/services/preference-rerank.helper.d.ts.map +0 -1
  615. package/dist/services/preference-rerank.helper.js +0 -397
  616. package/dist/services/preference-rerank.helper.js.map +0 -1
  617. package/dist/services/production-guard.d.ts +0 -213
  618. package/dist/services/production-guard.d.ts.map +0 -1
  619. package/dist/services/production-guard.js +0 -357
  620. package/dist/services/production-guard.js.map +0 -1
  621. package/dist/services/project-context-analyzer.d.ts +0 -194
  622. package/dist/services/project-context-analyzer.d.ts.map +0 -1
  623. package/dist/services/project-context-analyzer.js +0 -747
  624. package/dist/services/project-context-analyzer.js.map +0 -1
  625. package/dist/services/quality/axe-accessibility.service.d.ts +0 -87
  626. package/dist/services/quality/axe-accessibility.service.d.ts.map +0 -1
  627. package/dist/services/quality/axe-accessibility.service.js +0 -188
  628. package/dist/services/quality/axe-accessibility.service.js.map +0 -1
  629. package/dist/services/quality/axe-core-shared.d.ts +0 -108
  630. package/dist/services/quality/axe-core-shared.d.ts.map +0 -1
  631. package/dist/services/quality/axe-core-shared.js +0 -136
  632. package/dist/services/quality/axe-core-shared.js.map +0 -1
  633. package/dist/services/quality/benchmark.service.d.ts +0 -178
  634. package/dist/services/quality/benchmark.service.d.ts.map +0 -1
  635. package/dist/services/quality/benchmark.service.js +0 -394
  636. package/dist/services/quality/benchmark.service.js.map +0 -1
  637. package/dist/services/quality/content-gap-detector.service.d.ts +0 -133
  638. package/dist/services/quality/content-gap-detector.service.d.ts.map +0 -1
  639. package/dist/services/quality/content-gap-detector.service.js +0 -364
  640. package/dist/services/quality/content-gap-detector.service.js.map +0 -1
  641. package/dist/services/quality/index.d.ts +0 -12
  642. package/dist/services/quality/index.d.ts.map +0 -1
  643. package/dist/services/quality/index.js +0 -12
  644. package/dist/services/quality/index.js.map +0 -1
  645. package/dist/services/quality/pattern-matcher.service.d.ts +0 -195
  646. package/dist/services/quality/pattern-matcher.service.d.ts.map +0 -1
  647. package/dist/services/quality/pattern-matcher.service.js +0 -630
  648. package/dist/services/quality/pattern-matcher.service.js.map +0 -1
  649. package/dist/services/quality/playwright-axe.service.d.ts +0 -84
  650. package/dist/services/quality/playwright-axe.service.d.ts.map +0 -1
  651. package/dist/services/quality/playwright-axe.service.js +0 -267
  652. package/dist/services/quality/playwright-axe.service.js.map +0 -1
  653. package/dist/services/quality/quality-evaluate.service.interface.d.ts +0 -216
  654. package/dist/services/quality/quality-evaluate.service.interface.d.ts.map +0 -1
  655. package/dist/services/quality/quality-evaluate.service.interface.js +0 -5
  656. package/dist/services/quality/quality-evaluate.service.interface.js.map +0 -1
  657. package/dist/services/quality/visual-design-analyzer.service.d.ts +0 -72
  658. package/dist/services/quality/visual-design-analyzer.service.d.ts.map +0 -1
  659. package/dist/services/quality/visual-design-analyzer.service.js +0 -762
  660. package/dist/services/quality/visual-design-analyzer.service.js.map +0 -1
  661. package/dist/services/quality-evaluate-service-export.d.ts +0 -122
  662. package/dist/services/quality-evaluate-service-export.d.ts.map +0 -1
  663. package/dist/services/quality-evaluate-service-export.js +0 -138
  664. package/dist/services/quality-evaluate-service-export.js.map +0 -1
  665. package/dist/services/quality-search.service.d.ts +0 -20
  666. package/dist/services/quality-search.service.d.ts.map +0 -1
  667. package/dist/services/quality-search.service.js +0 -260
  668. package/dist/services/quality-search.service.js.map +0 -1
  669. package/dist/services/query-analyzer.d.ts +0 -107
  670. package/dist/services/query-analyzer.d.ts.map +0 -1
  671. package/dist/services/query-analyzer.js +0 -222
  672. package/dist/services/query-analyzer.js.map +0 -1
  673. package/dist/services/query-context-analyzer.d.ts +0 -85
  674. package/dist/services/query-context-analyzer.d.ts.map +0 -1
  675. package/dist/services/query-context-analyzer.js +0 -728
  676. package/dist/services/query-context-analyzer.js.map +0 -1
  677. package/dist/services/queue-cleanup.service.d.ts +0 -102
  678. package/dist/services/queue-cleanup.service.d.ts.map +0 -1
  679. package/dist/services/queue-cleanup.service.js +0 -259
  680. package/dist/services/queue-cleanup.service.js.map +0 -1
  681. package/dist/services/responsive/difference-detector.service.d.ts +0 -77
  682. package/dist/services/responsive/difference-detector.service.d.ts.map +0 -1
  683. package/dist/services/responsive/difference-detector.service.js +0 -525
  684. package/dist/services/responsive/difference-detector.service.js.map +0 -1
  685. package/dist/services/responsive/index.d.ts +0 -16
  686. package/dist/services/responsive/index.d.ts.map +0 -1
  687. package/dist/services/responsive/index.js +0 -60
  688. package/dist/services/responsive/index.js.map +0 -1
  689. package/dist/services/responsive/multi-viewport-capture.service.d.ts +0 -103
  690. package/dist/services/responsive/multi-viewport-capture.service.d.ts.map +0 -1
  691. package/dist/services/responsive/multi-viewport-capture.service.js +0 -841
  692. package/dist/services/responsive/multi-viewport-capture.service.js.map +0 -1
  693. package/dist/services/responsive/responsive-analysis-embedding.service.d.ts +0 -114
  694. package/dist/services/responsive/responsive-analysis-embedding.service.d.ts.map +0 -1
  695. package/dist/services/responsive/responsive-analysis-embedding.service.js +0 -232
  696. package/dist/services/responsive/responsive-analysis-embedding.service.js.map +0 -1
  697. package/dist/services/responsive/responsive-analysis.service.d.ts +0 -37
  698. package/dist/services/responsive/responsive-analysis.service.d.ts.map +0 -1
  699. package/dist/services/responsive/responsive-analysis.service.js +0 -262
  700. package/dist/services/responsive/responsive-analysis.service.js.map +0 -1
  701. package/dist/services/responsive/responsive-persistence.service.d.ts +0 -45
  702. package/dist/services/responsive/responsive-persistence.service.d.ts.map +0 -1
  703. package/dist/services/responsive/responsive-persistence.service.js +0 -102
  704. package/dist/services/responsive/responsive-persistence.service.js.map +0 -1
  705. package/dist/services/responsive/responsive-quality-evaluator.service.d.ts +0 -80
  706. package/dist/services/responsive/responsive-quality-evaluator.service.d.ts.map +0 -1
  707. package/dist/services/responsive/responsive-quality-evaluator.service.js +0 -448
  708. package/dist/services/responsive/responsive-quality-evaluator.service.js.map +0 -1
  709. package/dist/services/responsive/shared-browser-manager.d.ts +0 -65
  710. package/dist/services/responsive/shared-browser-manager.d.ts.map +0 -1
  711. package/dist/services/responsive/shared-browser-manager.js +0 -112
  712. package/dist/services/responsive/shared-browser-manager.js.map +0 -1
  713. package/dist/services/responsive/types.d.ts +0 -367
  714. package/dist/services/responsive/types.d.ts.map +0 -1
  715. package/dist/services/responsive/types.js +0 -5
  716. package/dist/services/responsive/types.js.map +0 -1
  717. package/dist/services/responsive/viewport-diff.service.d.ts +0 -49
  718. package/dist/services/responsive/viewport-diff.service.d.ts.map +0 -1
  719. package/dist/services/responsive/viewport-diff.service.js +0 -178
  720. package/dist/services/responsive/viewport-diff.service.js.map +0 -1
  721. package/dist/services/responsive-search.service.d.ts +0 -52
  722. package/dist/services/responsive-search.service.d.ts.map +0 -1
  723. package/dist/services/responsive-search.service.js +0 -136
  724. package/dist/services/responsive-search.service.js.map +0 -1
  725. package/dist/services/search/mood-brandtone-search.service.d.ts +0 -99
  726. package/dist/services/search/mood-brandtone-search.service.d.ts.map +0 -1
  727. package/dist/services/search/mood-brandtone-search.service.js +0 -310
  728. package/dist/services/search/mood-brandtone-search.service.js.map +0 -1
  729. package/dist/services/search-performance.service.d.ts +0 -118
  730. package/dist/services/search-performance.service.d.ts.map +0 -1
  731. package/dist/services/search-performance.service.js +0 -181
  732. package/dist/services/search-performance.service.js.map +0 -1
  733. package/dist/services/section-screenshot.service.d.ts +0 -163
  734. package/dist/services/section-screenshot.service.d.ts.map +0 -1
  735. package/dist/services/section-screenshot.service.js +0 -363
  736. package/dist/services/section-screenshot.service.js.map +0 -1
  737. package/dist/services/service-client.d.ts +0 -181
  738. package/dist/services/service-client.d.ts.map +0 -1
  739. package/dist/services/service-client.js +0 -450
  740. package/dist/services/service-client.js.map +0 -1
  741. package/dist/services/service-initializer.d.ts +0 -174
  742. package/dist/services/service-initializer.d.ts.map +0 -1
  743. package/dist/services/service-initializer.js +0 -942
  744. package/dist/services/service-initializer.js.map +0 -1
  745. package/dist/services/storage/index.d.ts +0 -7
  746. package/dist/services/storage/index.d.ts.map +0 -1
  747. package/dist/services/storage/index.js +0 -14
  748. package/dist/services/storage/index.js.map +0 -1
  749. package/dist/services/storage/local-storage.provider.d.ts +0 -140
  750. package/dist/services/storage/local-storage.provider.d.ts.map +0 -1
  751. package/dist/services/storage/local-storage.provider.js +0 -333
  752. package/dist/services/storage/local-storage.provider.js.map +0 -1
  753. package/dist/services/style/index.d.ts +0 -7
  754. package/dist/services/style/index.d.ts.map +0 -1
  755. package/dist/services/style/index.js +0 -25
  756. package/dist/services/style/index.js.map +0 -1
  757. package/dist/services/style/palette-service.d.ts +0 -212
  758. package/dist/services/style/palette-service.d.ts.map +0 -1
  759. package/dist/services/style/palette-service.js +0 -423
  760. package/dist/services/style/palette-service.js.map +0 -1
  761. package/dist/services/style/prisma-palette-repository.d.ts +0 -35
  762. package/dist/services/style/prisma-palette-repository.d.ts.map +0 -1
  763. package/dist/services/style/prisma-palette-repository.js +0 -165
  764. package/dist/services/style/prisma-palette-repository.js.map +0 -1
  765. package/dist/services/vision/brandtone.analyzer.d.ts +0 -104
  766. package/dist/services/vision/brandtone.analyzer.d.ts.map +0 -1
  767. package/dist/services/vision/brandtone.analyzer.js +0 -279
  768. package/dist/services/vision/brandtone.analyzer.js.map +0 -1
  769. package/dist/services/vision/hardware-detector.d.ts +0 -166
  770. package/dist/services/vision/hardware-detector.d.ts.map +0 -1
  771. package/dist/services/vision/hardware-detector.js +0 -330
  772. package/dist/services/vision/hardware-detector.js.map +0 -1
  773. package/dist/services/vision/image-optimizer.d.ts +0 -152
  774. package/dist/services/vision/image-optimizer.d.ts.map +0 -1
  775. package/dist/services/vision/image-optimizer.js +0 -266
  776. package/dist/services/vision/image-optimizer.js.map +0 -1
  777. package/dist/services/vision/index.d.ts +0 -26
  778. package/dist/services/vision/index.d.ts.map +0 -1
  779. package/dist/services/vision/index.js +0 -80
  780. package/dist/services/vision/index.js.map +0 -1
  781. package/dist/services/vision/llama-vision-adapter.d.ts +0 -178
  782. package/dist/services/vision/llama-vision-adapter.d.ts.map +0 -1
  783. package/dist/services/vision/llama-vision-adapter.js +0 -307
  784. package/dist/services/vision/llama-vision-adapter.js.map +0 -1
  785. package/dist/services/vision/mcp-progress-adapter.d.ts +0 -128
  786. package/dist/services/vision/mcp-progress-adapter.d.ts.map +0 -1
  787. package/dist/services/vision/mcp-progress-adapter.js +0 -150
  788. package/dist/services/vision/mcp-progress-adapter.js.map +0 -1
  789. package/dist/services/vision/mood.analyzer.d.ts +0 -74
  790. package/dist/services/vision/mood.analyzer.d.ts.map +0 -1
  791. package/dist/services/vision/mood.analyzer.js +0 -258
  792. package/dist/services/vision/mood.analyzer.js.map +0 -1
  793. package/dist/services/vision/ollama-readiness-probe.d.ts +0 -87
  794. package/dist/services/vision/ollama-readiness-probe.d.ts.map +0 -1
  795. package/dist/services/vision/ollama-readiness-probe.js +0 -211
  796. package/dist/services/vision/ollama-readiness-probe.js.map +0 -1
  797. package/dist/services/vision/ollama-vision-client.d.ts +0 -129
  798. package/dist/services/vision/ollama-vision-client.d.ts.map +0 -1
  799. package/dist/services/vision/ollama-vision-client.js +0 -478
  800. package/dist/services/vision/ollama-vision-client.js.map +0 -1
  801. package/dist/services/vision/progress-reporter.d.ts +0 -140
  802. package/dist/services/vision/progress-reporter.d.ts.map +0 -1
  803. package/dist/services/vision/progress-reporter.js +0 -306
  804. package/dist/services/vision/progress-reporter.js.map +0 -1
  805. package/dist/services/vision/scroll-vision-capture.service.d.ts +0 -117
  806. package/dist/services/vision/scroll-vision-capture.service.d.ts.map +0 -1
  807. package/dist/services/vision/scroll-vision-capture.service.js +0 -266
  808. package/dist/services/vision/scroll-vision-capture.service.js.map +0 -1
  809. package/dist/services/vision/scroll-vision-persistence.service.d.ts +0 -48
  810. package/dist/services/vision/scroll-vision-persistence.service.d.ts.map +0 -1
  811. package/dist/services/vision/scroll-vision-persistence.service.js +0 -161
  812. package/dist/services/vision/scroll-vision-persistence.service.js.map +0 -1
  813. package/dist/services/vision/scroll-vision.analyzer.d.ts +0 -90
  814. package/dist/services/vision/scroll-vision.analyzer.d.ts.map +0 -1
  815. package/dist/services/vision/scroll-vision.analyzer.js +0 -280
  816. package/dist/services/vision/scroll-vision.analyzer.js.map +0 -1
  817. package/dist/services/vision/theme.analyzer.d.ts +0 -108
  818. package/dist/services/vision/theme.analyzer.d.ts.map +0 -1
  819. package/dist/services/vision/theme.analyzer.js +0 -315
  820. package/dist/services/vision/theme.analyzer.js.map +0 -1
  821. package/dist/services/vision/timeout-calculator.d.ts +0 -85
  822. package/dist/services/vision/timeout-calculator.d.ts.map +0 -1
  823. package/dist/services/vision/timeout-calculator.js +0 -142
  824. package/dist/services/vision/timeout-calculator.js.map +0 -1
  825. package/dist/services/vision/vision-fallback.service.d.ts +0 -121
  826. package/dist/services/vision/vision-fallback.service.d.ts.map +0 -1
  827. package/dist/services/vision/vision-fallback.service.js +0 -253
  828. package/dist/services/vision/vision-fallback.service.js.map +0 -1
  829. package/dist/services/vision/vision.cache.d.ts +0 -124
  830. package/dist/services/vision/vision.cache.d.ts.map +0 -1
  831. package/dist/services/vision/vision.cache.js +0 -261
  832. package/dist/services/vision/vision.cache.js.map +0 -1
  833. package/dist/services/vision/vision.errors.d.ts +0 -104
  834. package/dist/services/vision/vision.errors.d.ts.map +0 -1
  835. package/dist/services/vision/vision.errors.js +0 -133
  836. package/dist/services/vision/vision.errors.js.map +0 -1
  837. package/dist/services/vision/vision.prompts.d.ts +0 -47
  838. package/dist/services/vision/vision.prompts.d.ts.map +0 -1
  839. package/dist/services/vision/vision.prompts.js +0 -272
  840. package/dist/services/vision/vision.prompts.js.map +0 -1
  841. package/dist/services/vision/vram-utils.d.ts +0 -22
  842. package/dist/services/vision/vram-utils.d.ts.map +0 -1
  843. package/dist/services/vision/vram-utils.js +0 -57
  844. package/dist/services/vision/vram-utils.js.map +0 -1
  845. package/dist/services/vision-adapter/index.d.ts +0 -18
  846. package/dist/services/vision-adapter/index.d.ts.map +0 -1
  847. package/dist/services/vision-adapter/index.js +0 -31
  848. package/dist/services/vision-adapter/index.js.map +0 -1
  849. package/dist/services/vision-adapter/interface.d.ts +0 -1434
  850. package/dist/services/vision-adapter/interface.d.ts.map +0 -1
  851. package/dist/services/vision-adapter/interface.js +0 -326
  852. package/dist/services/vision-adapter/interface.js.map +0 -1
  853. package/dist/services/vision-adapter/llama-vision.adapter.d.ts +0 -373
  854. package/dist/services/vision-adapter/llama-vision.adapter.d.ts.map +0 -1
  855. package/dist/services/vision-adapter/llama-vision.adapter.js +0 -1751
  856. package/dist/services/vision-adapter/llama-vision.adapter.js.map +0 -1
  857. package/dist/services/vision-adapter/llama-vision.prompts.d.ts +0 -63
  858. package/dist/services/vision-adapter/llama-vision.prompts.d.ts.map +0 -1
  859. package/dist/services/vision-adapter/llama-vision.prompts.js +0 -234
  860. package/dist/services/vision-adapter/llama-vision.prompts.js.map +0 -1
  861. package/dist/services/vision-adapter/llama-vision.types.d.ts +0 -68
  862. package/dist/services/vision-adapter/llama-vision.types.d.ts.map +0 -1
  863. package/dist/services/vision-adapter/llama-vision.types.js +0 -21
  864. package/dist/services/vision-adapter/llama-vision.types.js.map +0 -1
  865. package/dist/services/vision-adapter/local.adapter.d.ts +0 -185
  866. package/dist/services/vision-adapter/local.adapter.d.ts.map +0 -1
  867. package/dist/services/vision-adapter/local.adapter.js +0 -835
  868. package/dist/services/vision-adapter/local.adapter.js.map +0 -1
  869. package/dist/services/vision-adapter/mock.adapter.d.ts +0 -174
  870. package/dist/services/vision-adapter/mock.adapter.d.ts.map +0 -1
  871. package/dist/services/vision-adapter/mock.adapter.js +0 -812
  872. package/dist/services/vision-adapter/mock.adapter.js.map +0 -1
  873. package/dist/services/vision-embedding-search.service.d.ts +0 -205
  874. package/dist/services/vision-embedding-search.service.d.ts.map +0 -1
  875. package/dist/services/vision-embedding-search.service.js +0 -742
  876. package/dist/services/vision-embedding-search.service.js.map +0 -1
  877. package/dist/services/vision-embedding.service.d.ts +0 -150
  878. package/dist/services/vision-embedding.service.d.ts.map +0 -1
  879. package/dist/services/vision-embedding.service.js +0 -461
  880. package/dist/services/vision-embedding.service.js.map +0 -1
  881. package/dist/services/visual/css-variable-extractor.service.d.ts +0 -97
  882. package/dist/services/visual/css-variable-extractor.service.d.ts.map +0 -1
  883. package/dist/services/visual/css-variable-extractor.service.js +0 -460
  884. package/dist/services/visual/css-variable-extractor.service.js.map +0 -1
  885. package/dist/services/visual/typography-extractor.service.d.ts +0 -137
  886. package/dist/services/visual/typography-extractor.service.d.ts.map +0 -1
  887. package/dist/services/visual/typography-extractor.service.js +0 -539
  888. package/dist/services/visual/typography-extractor.service.js.map +0 -1
  889. package/dist/services/visual-extractor/color-extractor.service.d.ts +0 -55
  890. package/dist/services/visual-extractor/color-extractor.service.d.ts.map +0 -1
  891. package/dist/services/visual-extractor/color-extractor.service.js +0 -281
  892. package/dist/services/visual-extractor/color-extractor.service.js.map +0 -1
  893. package/dist/services/visual-extractor/density-calculator.service.d.ts +0 -85
  894. package/dist/services/visual-extractor/density-calculator.service.d.ts.map +0 -1
  895. package/dist/services/visual-extractor/density-calculator.service.js +0 -369
  896. package/dist/services/visual-extractor/density-calculator.service.js.map +0 -1
  897. package/dist/services/visual-extractor/gradient-detector.service.d.ts +0 -134
  898. package/dist/services/visual-extractor/gradient-detector.service.d.ts.map +0 -1
  899. package/dist/services/visual-extractor/gradient-detector.service.js +0 -1172
  900. package/dist/services/visual-extractor/gradient-detector.service.js.map +0 -1
  901. package/dist/services/visual-extractor/image-utils.d.ts +0 -135
  902. package/dist/services/visual-extractor/image-utils.d.ts.map +0 -1
  903. package/dist/services/visual-extractor/image-utils.js +0 -305
  904. package/dist/services/visual-extractor/image-utils.js.map +0 -1
  905. package/dist/services/visual-extractor/pixel-theme-detector.service.d.ts +0 -58
  906. package/dist/services/visual-extractor/pixel-theme-detector.service.d.ts.map +0 -1
  907. package/dist/services/visual-extractor/pixel-theme-detector.service.js +0 -358
  908. package/dist/services/visual-extractor/pixel-theme-detector.service.js.map +0 -1
  909. package/dist/services/visual-extractor/theme-detector.service.d.ts +0 -101
  910. package/dist/services/visual-extractor/theme-detector.service.d.ts.map +0 -1
  911. package/dist/services/visual-extractor/theme-detector.service.js +0 -463
  912. package/dist/services/visual-extractor/theme-detector.service.js.map +0 -1
  913. package/dist/services/visual-extractor/visual-decoration-detector.service.d.ts +0 -43
  914. package/dist/services/visual-extractor/visual-decoration-detector.service.d.ts.map +0 -1
  915. package/dist/services/visual-extractor/visual-decoration-detector.service.js +0 -628
  916. package/dist/services/visual-extractor/visual-decoration-detector.service.js.map +0 -1
  917. package/dist/services/visual-extractor/visual-feature-merger.service.d.ts +0 -230
  918. package/dist/services/visual-extractor/visual-feature-merger.service.d.ts.map +0 -1
  919. package/dist/services/visual-extractor/visual-feature-merger.service.js +0 -482
  920. package/dist/services/visual-extractor/visual-feature-merger.service.js.map +0 -1
  921. package/dist/services/web-page.service.d.ts +0 -80
  922. package/dist/services/web-page.service.d.ts.map +0 -1
  923. package/dist/services/web-page.service.js +0 -211
  924. package/dist/services/web-page.service.js.map +0 -1
  925. package/dist/services/worker-constants.d.ts +0 -40
  926. package/dist/services/worker-constants.d.ts.map +0 -1
  927. package/dist/services/worker-constants.js +0 -51
  928. package/dist/services/worker-constants.js.map +0 -1
  929. package/dist/services/worker-db-save.service.d.ts +0 -311
  930. package/dist/services/worker-db-save.service.d.ts.map +0 -1
  931. package/dist/services/worker-db-save.service.js +0 -771
  932. package/dist/services/worker-db-save.service.js.map +0 -1
  933. package/dist/services/worker-memory-monitor.service.d.ts +0 -24
  934. package/dist/services/worker-memory-monitor.service.d.ts.map +0 -1
  935. package/dist/services/worker-memory-monitor.service.js +0 -105
  936. package/dist/services/worker-memory-monitor.service.js.map +0 -1
  937. package/dist/services/worker-memory-profile.d.ts +0 -65
  938. package/dist/services/worker-memory-profile.d.ts.map +0 -1
  939. package/dist/services/worker-memory-profile.js +0 -225
  940. package/dist/services/worker-memory-profile.js.map +0 -1
  941. package/dist/services/worker-stall-recovery.service.d.ts +0 -166
  942. package/dist/services/worker-stall-recovery.service.d.ts.map +0 -1
  943. package/dist/services/worker-stall-recovery.service.js +0 -335
  944. package/dist/services/worker-stall-recovery.service.js.map +0 -1
  945. package/dist/services/worker-supervisor.service.d.ts +0 -145
  946. package/dist/services/worker-supervisor.service.d.ts.map +0 -1
  947. package/dist/services/worker-supervisor.service.js +0 -635
  948. package/dist/services/worker-supervisor.service.js.map +0 -1
  949. package/dist/tools/background/schemas.d.ts +0 -85
  950. package/dist/tools/background/schemas.d.ts.map +0 -1
  951. package/dist/tools/background/schemas.js +0 -79
  952. package/dist/tools/background/schemas.js.map +0 -1
  953. package/dist/tools/background/search.tool.d.ts +0 -179
  954. package/dist/tools/background/search.tool.d.ts.map +0 -1
  955. package/dist/tools/background/search.tool.js +0 -318
  956. package/dist/tools/background/search.tool.js.map +0 -1
  957. package/dist/tools/brief/index.d.ts +0 -10
  958. package/dist/tools/brief/index.d.ts.map +0 -1
  959. package/dist/tools/brief/index.js +0 -54
  960. package/dist/tools/brief/index.js.map +0 -1
  961. package/dist/tools/brief/schemas.d.ts +0 -750
  962. package/dist/tools/brief/schemas.d.ts.map +0 -1
  963. package/dist/tools/brief/schemas.js +0 -212
  964. package/dist/tools/brief/schemas.js.map +0 -1
  965. package/dist/tools/brief/validate.handler.d.ts +0 -149
  966. package/dist/tools/brief/validate.handler.d.ts.map +0 -1
  967. package/dist/tools/brief/validate.handler.js +0 -247
  968. package/dist/tools/brief/validate.handler.js.map +0 -1
  969. package/dist/tools/brief/validate.service.d.ts +0 -100
  970. package/dist/tools/brief/validate.service.d.ts.map +0 -1
  971. package/dist/tools/brief/validate.service.js +0 -296
  972. package/dist/tools/brief/validate.service.js.map +0 -1
  973. package/dist/tools/common/error-codes.d.ts +0 -35
  974. package/dist/tools/common/error-codes.d.ts.map +0 -1
  975. package/dist/tools/common/error-codes.js +0 -92
  976. package/dist/tools/common/error-codes.js.map +0 -1
  977. package/dist/tools/common/index.d.ts +0 -7
  978. package/dist/tools/common/index.d.ts.map +0 -1
  979. package/dist/tools/common/index.js +0 -20
  980. package/dist/tools/common/index.js.map +0 -1
  981. package/dist/tools/index.d.ts +0 -2756
  982. package/dist/tools/index.d.ts.map +0 -1
  983. package/dist/tools/index.js +0 -506
  984. package/dist/tools/index.js.map +0 -1
  985. package/dist/tools/layout/batch-ingest.tool.d.ts +0 -82
  986. package/dist/tools/layout/batch-ingest.tool.d.ts.map +0 -1
  987. package/dist/tools/layout/batch-ingest.tool.js +0 -410
  988. package/dist/tools/layout/batch-ingest.tool.js.map +0 -1
  989. package/dist/tools/layout/index.d.ts +0 -13
  990. package/dist/tools/layout/index.d.ts.map +0 -1
  991. package/dist/tools/layout/index.js +0 -62
  992. package/dist/tools/layout/index.js.map +0 -1
  993. package/dist/tools/layout/ingest.tool.d.ts +0 -338
  994. package/dist/tools/layout/ingest.tool.d.ts.map +0 -1
  995. package/dist/tools/layout/ingest.tool.js +0 -1308
  996. package/dist/tools/layout/ingest.tool.js.map +0 -1
  997. package/dist/tools/layout/inspect/index.d.ts +0 -11
  998. package/dist/tools/layout/inspect/index.d.ts.map +0 -1
  999. package/dist/tools/layout/inspect/index.js +0 -55
  1000. package/dist/tools/layout/inspect/index.js.map +0 -1
  1001. package/dist/tools/layout/inspect/inspect.schemas.d.ts +0 -4130
  1002. package/dist/tools/layout/inspect/inspect.schemas.d.ts.map +0 -1
  1003. package/dist/tools/layout/inspect/inspect.schemas.js +0 -400
  1004. package/dist/tools/layout/inspect/inspect.schemas.js.map +0 -1
  1005. package/dist/tools/layout/inspect/inspect.tool.d.ts +0 -164
  1006. package/dist/tools/layout/inspect/inspect.tool.d.ts.map +0 -1
  1007. package/dist/tools/layout/inspect/inspect.tool.js +0 -738
  1008. package/dist/tools/layout/inspect/inspect.tool.js.map +0 -1
  1009. package/dist/tools/layout/inspect/inspect.utils.d.ts +0 -200
  1010. package/dist/tools/layout/inspect/inspect.utils.d.ts.map +0 -1
  1011. package/dist/tools/layout/inspect/inspect.utils.js +0 -1104
  1012. package/dist/tools/layout/inspect/inspect.utils.js.map +0 -1
  1013. package/dist/tools/layout/inspect/visual-extractors.schemas.d.ts +0 -3372
  1014. package/dist/tools/layout/inspect/visual-extractors.schemas.d.ts.map +0 -1
  1015. package/dist/tools/layout/inspect/visual-extractors.schemas.js +0 -558
  1016. package/dist/tools/layout/inspect/visual-extractors.schemas.js.map +0 -1
  1017. package/dist/tools/layout/inspect/visual-extractors.utils.d.ts +0 -86
  1018. package/dist/tools/layout/inspect/visual-extractors.utils.d.ts.map +0 -1
  1019. package/dist/tools/layout/inspect/visual-extractors.utils.js +0 -231
  1020. package/dist/tools/layout/inspect/visual-extractors.utils.js.map +0 -1
  1021. package/dist/tools/layout/schemas.d.ts +0 -11074
  1022. package/dist/tools/layout/schemas.d.ts.map +0 -1
  1023. package/dist/tools/layout/schemas.js +0 -1497
  1024. package/dist/tools/layout/schemas.js.map +0 -1
  1025. package/dist/tools/layout/search.tool.d.ts +0 -470
  1026. package/dist/tools/layout/search.tool.d.ts.map +0 -1
  1027. package/dist/tools/layout/search.tool.js +0 -1582
  1028. package/dist/tools/layout/search.tool.js.map +0 -1
  1029. package/dist/tools/layout/to-code.tool.d.ts +0 -280
  1030. package/dist/tools/layout/to-code.tool.d.ts.map +0 -1
  1031. package/dist/tools/layout/to-code.tool.js +0 -317
  1032. package/dist/tools/layout/to-code.tool.js.map +0 -1
  1033. package/dist/tools/motion/analyze-frames.handler.d.ts +0 -157
  1034. package/dist/tools/motion/analyze-frames.handler.d.ts.map +0 -1
  1035. package/dist/tools/motion/analyze-frames.handler.js +0 -263
  1036. package/dist/tools/motion/analyze-frames.handler.js.map +0 -1
  1037. package/dist/tools/motion/analyze-frames.schema.d.ts +0 -4599
  1038. package/dist/tools/motion/analyze-frames.schema.d.ts.map +0 -1
  1039. package/dist/tools/motion/analyze-frames.schema.js +0 -420
  1040. package/dist/tools/motion/analyze-frames.schema.js.map +0 -1
  1041. package/dist/tools/motion/css-mode-handler.d.ts +0 -70
  1042. package/dist/tools/motion/css-mode-handler.d.ts.map +0 -1
  1043. package/dist/tools/motion/css-mode-handler.js +0 -754
  1044. package/dist/tools/motion/css-mode-handler.js.map +0 -1
  1045. package/dist/tools/motion/detect.schemas.d.ts +0 -14288
  1046. package/dist/tools/motion/detect.schemas.d.ts.map +0 -1
  1047. package/dist/tools/motion/detect.schemas.js +0 -1715
  1048. package/dist/tools/motion/detect.schemas.js.map +0 -1
  1049. package/dist/tools/motion/detect.tool.d.ts +0 -195
  1050. package/dist/tools/motion/detect.tool.d.ts.map +0 -1
  1051. package/dist/tools/motion/detect.tool.js +0 -1421
  1052. package/dist/tools/motion/detect.tool.js.map +0 -1
  1053. package/dist/tools/motion/detection-modes.d.ts +0 -72
  1054. package/dist/tools/motion/detection-modes.d.ts.map +0 -1
  1055. package/dist/tools/motion/detection-modes.js +0 -353
  1056. package/dist/tools/motion/detection-modes.js.map +0 -1
  1057. package/dist/tools/motion/di-factories.d.ts +0 -341
  1058. package/dist/tools/motion/di-factories.d.ts.map +0 -1
  1059. package/dist/tools/motion/di-factories.js +0 -376
  1060. package/dist/tools/motion/di-factories.js.map +0 -1
  1061. package/dist/tools/motion/index.d.ts +0 -12
  1062. package/dist/tools/motion/index.d.ts.map +0 -1
  1063. package/dist/tools/motion/index.js +0 -146
  1064. package/dist/tools/motion/index.js.map +0 -1
  1065. package/dist/tools/motion/pattern-converter.d.ts +0 -49
  1066. package/dist/tools/motion/pattern-converter.d.ts.map +0 -1
  1067. package/dist/tools/motion/pattern-converter.js +0 -493
  1068. package/dist/tools/motion/pattern-converter.js.map +0 -1
  1069. package/dist/tools/motion/schemas.d.ts +0 -10
  1070. package/dist/tools/motion/schemas.d.ts.map +0 -1
  1071. package/dist/tools/motion/schemas.js +0 -28
  1072. package/dist/tools/motion/schemas.js.map +0 -1
  1073. package/dist/tools/motion/search.schemas.d.ts +0 -7500
  1074. package/dist/tools/motion/search.schemas.d.ts.map +0 -1
  1075. package/dist/tools/motion/search.schemas.js +0 -596
  1076. package/dist/tools/motion/search.schemas.js.map +0 -1
  1077. package/dist/tools/motion/search.tool.d.ts +0 -416
  1078. package/dist/tools/motion/search.tool.d.ts.map +0 -1
  1079. package/dist/tools/motion/search.tool.js +0 -2088
  1080. package/dist/tools/motion/search.tool.js.map +0 -1
  1081. package/dist/tools/motion/shared.schemas.d.ts +0 -994
  1082. package/dist/tools/motion/shared.schemas.d.ts.map +0 -1
  1083. package/dist/tools/motion/shared.schemas.js +0 -354
  1084. package/dist/tools/motion/shared.schemas.js.map +0 -1
  1085. package/dist/tools/narrative/analyze.tool.d.ts +0 -96
  1086. package/dist/tools/narrative/analyze.tool.d.ts.map +0 -1
  1087. package/dist/tools/narrative/analyze.tool.js +0 -396
  1088. package/dist/tools/narrative/analyze.tool.js.map +0 -1
  1089. package/dist/tools/narrative/index.d.ts +0 -15
  1090. package/dist/tools/narrative/index.d.ts.map +0 -1
  1091. package/dist/tools/narrative/index.js +0 -83
  1092. package/dist/tools/narrative/index.js.map +0 -1
  1093. package/dist/tools/narrative/schemas.d.ts +0 -5553
  1094. package/dist/tools/narrative/schemas.d.ts.map +0 -1
  1095. package/dist/tools/narrative/schemas.js +0 -747
  1096. package/dist/tools/narrative/schemas.js.map +0 -1
  1097. package/dist/tools/narrative/search.tool.d.ts +0 -160
  1098. package/dist/tools/narrative/search.tool.d.ts.map +0 -1
  1099. package/dist/tools/narrative/search.tool.js +0 -434
  1100. package/dist/tools/narrative/search.tool.js.map +0 -1
  1101. package/dist/tools/page/analyze.tool.d.ts +0 -502
  1102. package/dist/tools/page/analyze.tool.d.ts.map +0 -1
  1103. package/dist/tools/page/analyze.tool.js +0 -875
  1104. package/dist/tools/page/analyze.tool.js.map +0 -1
  1105. package/dist/tools/page/get-job-status.tool.d.ts +0 -43
  1106. package/dist/tools/page/get-job-status.tool.d.ts.map +0 -1
  1107. package/dist/tools/page/get-job-status.tool.js +0 -178
  1108. package/dist/tools/page/get-job-status.tool.js.map +0 -1
  1109. package/dist/tools/page/handlers/db-handler.d.ts +0 -155
  1110. package/dist/tools/page/handlers/db-handler.d.ts.map +0 -1
  1111. package/dist/tools/page/handlers/db-handler.js +0 -368
  1112. package/dist/tools/page/handlers/db-handler.js.map +0 -1
  1113. package/dist/tools/page/handlers/embedding-handler.d.ts +0 -200
  1114. package/dist/tools/page/handlers/embedding-handler.d.ts.map +0 -1
  1115. package/dist/tools/page/handlers/embedding-handler.js +0 -541
  1116. package/dist/tools/page/handlers/embedding-handler.js.map +0 -1
  1117. package/dist/tools/page/handlers/execution-status-tracker.d.ts +0 -146
  1118. package/dist/tools/page/handlers/execution-status-tracker.d.ts.map +0 -1
  1119. package/dist/tools/page/handlers/execution-status-tracker.js +0 -348
  1120. package/dist/tools/page/handlers/execution-status-tracker.js.map +0 -1
  1121. package/dist/tools/page/handlers/js-animation-handler.d.ts +0 -197
  1122. package/dist/tools/page/handlers/js-animation-handler.d.ts.map +0 -1
  1123. package/dist/tools/page/handlers/js-animation-handler.js +0 -952
  1124. package/dist/tools/page/handlers/js-animation-handler.js.map +0 -1
  1125. package/dist/tools/page/handlers/layout-handler.d.ts +0 -31
  1126. package/dist/tools/page/handlers/layout-handler.d.ts.map +0 -1
  1127. package/dist/tools/page/handlers/layout-handler.js +0 -1181
  1128. package/dist/tools/page/handlers/layout-handler.js.map +0 -1
  1129. package/dist/tools/page/handlers/motion-handler.d.ts +0 -31
  1130. package/dist/tools/page/handlers/motion-handler.d.ts.map +0 -1
  1131. package/dist/tools/page/handlers/motion-handler.js +0 -940
  1132. package/dist/tools/page/handlers/motion-handler.js.map +0 -1
  1133. package/dist/tools/page/handlers/narrative-handler.d.ts +0 -23
  1134. package/dist/tools/page/handlers/narrative-handler.d.ts.map +0 -1
  1135. package/dist/tools/page/handlers/narrative-handler.js +0 -279
  1136. package/dist/tools/page/handlers/narrative-handler.js.map +0 -1
  1137. package/dist/tools/page/handlers/phased-db-handler.d.ts +0 -83
  1138. package/dist/tools/page/handlers/phased-db-handler.d.ts.map +0 -1
  1139. package/dist/tools/page/handlers/phased-db-handler.js +0 -120
  1140. package/dist/tools/page/handlers/phased-db-handler.js.map +0 -1
  1141. package/dist/tools/page/handlers/phased-executor.d.ts +0 -123
  1142. package/dist/tools/page/handlers/phased-executor.d.ts.map +0 -1
  1143. package/dist/tools/page/handlers/phased-executor.js +0 -205
  1144. package/dist/tools/page/handlers/phased-executor.js.map +0 -1
  1145. package/dist/tools/page/handlers/quality-handler.d.ts +0 -9
  1146. package/dist/tools/page/handlers/quality-handler.d.ts.map +0 -1
  1147. package/dist/tools/page/handlers/quality-handler.js +0 -100
  1148. package/dist/tools/page/handlers/quality-handler.js.map +0 -1
  1149. package/dist/tools/page/handlers/result-builder.d.ts +0 -105
  1150. package/dist/tools/page/handlers/result-builder.d.ts.map +0 -1
  1151. package/dist/tools/page/handlers/result-builder.js +0 -447
  1152. package/dist/tools/page/handlers/result-builder.js.map +0 -1
  1153. package/dist/tools/page/handlers/retry-strategy.d.ts +0 -106
  1154. package/dist/tools/page/handlers/retry-strategy.d.ts.map +0 -1
  1155. package/dist/tools/page/handlers/retry-strategy.js +0 -169
  1156. package/dist/tools/page/handlers/retry-strategy.js.map +0 -1
  1157. package/dist/tools/page/handlers/sync-processing.d.ts +0 -26
  1158. package/dist/tools/page/handlers/sync-processing.d.ts.map +0 -1
  1159. package/dist/tools/page/handlers/sync-processing.js +0 -1659
  1160. package/dist/tools/page/handlers/sync-processing.js.map +0 -1
  1161. package/dist/tools/page/handlers/timeout-utils.d.ts +0 -278
  1162. package/dist/tools/page/handlers/timeout-utils.d.ts.map +0 -1
  1163. package/dist/tools/page/handlers/timeout-utils.js +0 -600
  1164. package/dist/tools/page/handlers/timeout-utils.js.map +0 -1
  1165. package/dist/tools/page/handlers/types.d.ts +0 -1229
  1166. package/dist/tools/page/handlers/types.d.ts.map +0 -1
  1167. package/dist/tools/page/handlers/types.js +0 -21
  1168. package/dist/tools/page/handlers/types.js.map +0 -1
  1169. package/dist/tools/page/handlers/video-handler.d.ts +0 -11
  1170. package/dist/tools/page/handlers/video-handler.d.ts.map +0 -1
  1171. package/dist/tools/page/handlers/video-handler.js +0 -235
  1172. package/dist/tools/page/handlers/video-handler.js.map +0 -1
  1173. package/dist/tools/page/handlers/webgl-animation-handler.d.ts +0 -48
  1174. package/dist/tools/page/handlers/webgl-animation-handler.d.ts.map +0 -1
  1175. package/dist/tools/page/handlers/webgl-animation-handler.js +0 -237
  1176. package/dist/tools/page/handlers/webgl-animation-handler.js.map +0 -1
  1177. package/dist/tools/page/handlers/webgl-detector.d.ts +0 -184
  1178. package/dist/tools/page/handlers/webgl-detector.d.ts.map +0 -1
  1179. package/dist/tools/page/handlers/webgl-detector.js +0 -680
  1180. package/dist/tools/page/handlers/webgl-detector.js.map +0 -1
  1181. package/dist/tools/page/handlers/webgl-domains.d.ts +0 -133
  1182. package/dist/tools/page/handlers/webgl-domains.d.ts.map +0 -1
  1183. package/dist/tools/page/handlers/webgl-domains.js +0 -420
  1184. package/dist/tools/page/handlers/webgl-domains.js.map +0 -1
  1185. package/dist/tools/page/handlers/webgl-pre-detector.d.ts +0 -100
  1186. package/dist/tools/page/handlers/webgl-pre-detector.d.ts.map +0 -1
  1187. package/dist/tools/page/handlers/webgl-pre-detector.js +0 -248
  1188. package/dist/tools/page/handlers/webgl-pre-detector.js.map +0 -1
  1189. package/dist/tools/page/index.d.ts +0 -10
  1190. package/dist/tools/page/index.d.ts.map +0 -1
  1191. package/dist/tools/page/index.js +0 -84
  1192. package/dist/tools/page/index.js.map +0 -1
  1193. package/dist/tools/page/input.schemas.d.ts +0 -2223
  1194. package/dist/tools/page/input.schemas.d.ts.map +0 -1
  1195. package/dist/tools/page/input.schemas.js +0 -853
  1196. package/dist/tools/page/input.schemas.js.map +0 -1
  1197. package/dist/tools/page/output.schemas.d.ts +0 -26026
  1198. package/dist/tools/page/output.schemas.d.ts.map +0 -1
  1199. package/dist/tools/page/output.schemas.js +0 -1414
  1200. package/dist/tools/page/output.schemas.js.map +0 -1
  1201. package/dist/tools/page/schemas.d.ts +0 -10
  1202. package/dist/tools/page/schemas.d.ts.map +0 -1
  1203. package/dist/tools/page/schemas.js +0 -28
  1204. package/dist/tools/page/schemas.js.map +0 -1
  1205. package/dist/tools/page/shared.schemas.d.ts +0 -38
  1206. package/dist/tools/page/shared.schemas.d.ts.map +0 -1
  1207. package/dist/tools/page/shared.schemas.js +0 -69
  1208. package/dist/tools/page/shared.schemas.js.map +0 -1
  1209. package/dist/tools/part/compare.tool.d.ts +0 -106
  1210. package/dist/tools/part/compare.tool.d.ts.map +0 -1
  1211. package/dist/tools/part/compare.tool.js +0 -421
  1212. package/dist/tools/part/compare.tool.js.map +0 -1
  1213. package/dist/tools/part/inspect.tool.d.ts +0 -108
  1214. package/dist/tools/part/inspect.tool.d.ts.map +0 -1
  1215. package/dist/tools/part/inspect.tool.js +0 -279
  1216. package/dist/tools/part/inspect.tool.js.map +0 -1
  1217. package/dist/tools/part/search.tool.d.ts +0 -121
  1218. package/dist/tools/part/search.tool.d.ts.map +0 -1
  1219. package/dist/tools/part/search.tool.js +0 -381
  1220. package/dist/tools/part/search.tool.js.map +0 -1
  1221. package/dist/tools/preference/get.tool.d.ts +0 -74
  1222. package/dist/tools/preference/get.tool.d.ts.map +0 -1
  1223. package/dist/tools/preference/get.tool.js +0 -175
  1224. package/dist/tools/preference/get.tool.js.map +0 -1
  1225. package/dist/tools/preference/hear.tool.d.ts +0 -267
  1226. package/dist/tools/preference/hear.tool.d.ts.map +0 -1
  1227. package/dist/tools/preference/hear.tool.js +0 -268
  1228. package/dist/tools/preference/hear.tool.js.map +0 -1
  1229. package/dist/tools/preference/index.d.ts +0 -16
  1230. package/dist/tools/preference/index.d.ts.map +0 -1
  1231. package/dist/tools/preference/index.js +0 -43
  1232. package/dist/tools/preference/index.js.map +0 -1
  1233. package/dist/tools/preference/reset.tool.d.ts +0 -71
  1234. package/dist/tools/preference/reset.tool.d.ts.map +0 -1
  1235. package/dist/tools/preference/reset.tool.js +0 -205
  1236. package/dist/tools/preference/reset.tool.js.map +0 -1
  1237. package/dist/tools/preference/schemas.d.ts +0 -174
  1238. package/dist/tools/preference/schemas.d.ts.map +0 -1
  1239. package/dist/tools/preference/schemas.js +0 -142
  1240. package/dist/tools/preference/schemas.js.map +0 -1
  1241. package/dist/tools/project-get.d.ts +0 -42
  1242. package/dist/tools/project-get.d.ts.map +0 -1
  1243. package/dist/tools/project-get.js +0 -152
  1244. package/dist/tools/project-get.js.map +0 -1
  1245. package/dist/tools/project-list.d.ts +0 -66
  1246. package/dist/tools/project-list.d.ts.map +0 -1
  1247. package/dist/tools/project-list.js +0 -201
  1248. package/dist/tools/project-list.js.map +0 -1
  1249. package/dist/tools/quality/batch-evaluate.tool.d.ts +0 -101
  1250. package/dist/tools/quality/batch-evaluate.tool.d.ts.map +0 -1
  1251. package/dist/tools/quality/batch-evaluate.tool.js +0 -393
  1252. package/dist/tools/quality/batch-evaluate.tool.js.map +0 -1
  1253. package/dist/tools/quality/evaluate-engine.d.ts +0 -166
  1254. package/dist/tools/quality/evaluate-engine.d.ts.map +0 -1
  1255. package/dist/tools/quality/evaluate-engine.js +0 -1061
  1256. package/dist/tools/quality/evaluate-engine.js.map +0 -1
  1257. package/dist/tools/quality/evaluate.tool.d.ts +0 -286
  1258. package/dist/tools/quality/evaluate.tool.d.ts.map +0 -1
  1259. package/dist/tools/quality/evaluate.tool.js +0 -815
  1260. package/dist/tools/quality/evaluate.tool.js.map +0 -1
  1261. package/dist/tools/quality/get-job-status.tool.d.ts +0 -44
  1262. package/dist/tools/quality/get-job-status.tool.d.ts.map +0 -1
  1263. package/dist/tools/quality/get-job-status.tool.js +0 -291
  1264. package/dist/tools/quality/get-job-status.tool.js.map +0 -1
  1265. package/dist/tools/quality/improvement-utils.d.ts +0 -24
  1266. package/dist/tools/quality/improvement-utils.d.ts.map +0 -1
  1267. package/dist/tools/quality/improvement-utils.js +0 -307
  1268. package/dist/tools/quality/improvement-utils.js.map +0 -1
  1269. package/dist/tools/quality/index.d.ts +0 -11
  1270. package/dist/tools/quality/index.d.ts.map +0 -1
  1271. package/dist/tools/quality/index.js +0 -49
  1272. package/dist/tools/quality/index.js.map +0 -1
  1273. package/dist/tools/quality/schemas.d.ts +0 -14098
  1274. package/dist/tools/quality/schemas.d.ts.map +0 -1
  1275. package/dist/tools/quality/schemas.js +0 -950
  1276. package/dist/tools/quality/schemas.js.map +0 -1
  1277. package/dist/tools/responsive/schemas.d.ts +0 -156
  1278. package/dist/tools/responsive/schemas.d.ts.map +0 -1
  1279. package/dist/tools/responsive/schemas.js +0 -86
  1280. package/dist/tools/responsive/schemas.js.map +0 -1
  1281. package/dist/tools/responsive/search.tool.d.ts +0 -130
  1282. package/dist/tools/responsive/search.tool.d.ts.map +0 -1
  1283. package/dist/tools/responsive/search.tool.js +0 -324
  1284. package/dist/tools/responsive/search.tool.js.map +0 -1
  1285. package/dist/tools/schemas/index.d.ts +0 -10
  1286. package/dist/tools/schemas/index.d.ts.map +0 -1
  1287. package/dist/tools/schemas/index.js +0 -45
  1288. package/dist/tools/schemas/index.js.map +0 -1
  1289. package/dist/tools/schemas/layout-schemas.d.ts +0 -521
  1290. package/dist/tools/schemas/layout-schemas.d.ts.map +0 -1
  1291. package/dist/tools/schemas/layout-schemas.js +0 -281
  1292. package/dist/tools/schemas/layout-schemas.js.map +0 -1
  1293. package/dist/tools/schemas/project-schemas.d.ts +0 -417
  1294. package/dist/tools/schemas/project-schemas.d.ts.map +0 -1
  1295. package/dist/tools/schemas/project-schemas.js +0 -159
  1296. package/dist/tools/schemas/project-schemas.js.map +0 -1
  1297. package/dist/tools/schemas/shared.d.ts +0 -107
  1298. package/dist/tools/schemas/shared.d.ts.map +0 -1
  1299. package/dist/tools/schemas/shared.js +0 -150
  1300. package/dist/tools/schemas/shared.js.map +0 -1
  1301. package/dist/tools/schemas/style-schemas.d.ts +0 -114
  1302. package/dist/tools/schemas/style-schemas.d.ts.map +0 -1
  1303. package/dist/tools/schemas/style-schemas.js +0 -61
  1304. package/dist/tools/schemas/style-schemas.js.map +0 -1
  1305. package/dist/tools/style-get-palette.d.ts +0 -136
  1306. package/dist/tools/style-get-palette.d.ts.map +0 -1
  1307. package/dist/tools/style-get-palette.js +0 -259
  1308. package/dist/tools/style-get-palette.js.map +0 -1
  1309. package/dist/tools/system-health.d.ts +0 -255
  1310. package/dist/tools/system-health.d.ts.map +0 -1
  1311. package/dist/tools/system-health.js +0 -463
  1312. package/dist/tools/system-health.js.map +0 -1
  1313. package/dist/transport.d.ts +0 -29
  1314. package/dist/transport.d.ts.map +0 -1
  1315. package/dist/transport.js +0 -50
  1316. package/dist/transport.js.map +0 -1
  1317. package/dist/types/creative/index.d.ts +0 -8
  1318. package/dist/types/creative/index.d.ts.map +0 -1
  1319. package/dist/types/creative/index.js +0 -5
  1320. package/dist/types/creative/index.js.map +0 -1
  1321. package/dist/types/creative/palette.d.ts +0 -142
  1322. package/dist/types/creative/palette.d.ts.map +0 -1
  1323. package/dist/types/creative/palette.js +0 -5
  1324. package/dist/types/creative/palette.js.map +0 -1
  1325. package/dist/types/reftrix-window.d.ts +0 -124
  1326. package/dist/types/reftrix-window.d.ts.map +0 -1
  1327. package/dist/types/reftrix-window.js +0 -68
  1328. package/dist/types/reftrix-window.js.map +0 -1
  1329. package/dist/utils/actionable-warning.d.ts +0 -170
  1330. package/dist/utils/actionable-warning.d.ts.map +0 -1
  1331. package/dist/utils/actionable-warning.js +0 -818
  1332. package/dist/utils/actionable-warning.js.map +0 -1
  1333. package/dist/utils/blank-image-detector.d.ts +0 -22
  1334. package/dist/utils/blank-image-detector.d.ts.map +0 -1
  1335. package/dist/utils/blank-image-detector.js +0 -133
  1336. package/dist/utils/blank-image-detector.js.map +0 -1
  1337. package/dist/utils/color.d.ts +0 -203
  1338. package/dist/utils/color.d.ts.map +0 -1
  1339. package/dist/utils/color.js +0 -442
  1340. package/dist/utils/color.js.map +0 -1
  1341. package/dist/utils/deprecation-warning.d.ts +0 -43
  1342. package/dist/utils/deprecation-warning.d.ts.map +0 -1
  1343. package/dist/utils/deprecation-warning.js +0 -112
  1344. package/dist/utils/deprecation-warning.js.map +0 -1
  1345. package/dist/utils/error-messages.d.ts +0 -233
  1346. package/dist/utils/error-messages.d.ts.map +0 -1
  1347. package/dist/utils/error-messages.js +0 -721
  1348. package/dist/utils/error-messages.js.map +0 -1
  1349. package/dist/utils/errors.d.ts +0 -64
  1350. package/dist/utils/errors.d.ts.map +0 -1
  1351. package/dist/utils/errors.js +0 -82
  1352. package/dist/utils/errors.js.map +0 -1
  1353. package/dist/utils/gpu-browser-args.d.ts +0 -27
  1354. package/dist/utils/gpu-browser-args.d.ts.map +0 -1
  1355. package/dist/utils/gpu-browser-args.js +0 -42
  1356. package/dist/utils/gpu-browser-args.js.map +0 -1
  1357. package/dist/utils/html-sanitizer.d.ts +0 -116
  1358. package/dist/utils/html-sanitizer.d.ts.map +0 -1
  1359. package/dist/utils/html-sanitizer.js +0 -630
  1360. package/dist/utils/html-sanitizer.js.map +0 -1
  1361. package/dist/utils/logger.d.ts +0 -141
  1362. package/dist/utils/logger.d.ts.map +0 -1
  1363. package/dist/utils/logger.js +0 -249
  1364. package/dist/utils/logger.js.map +0 -1
  1365. package/dist/utils/mcp-response.d.ts +0 -317
  1366. package/dist/utils/mcp-response.d.ts.map +0 -1
  1367. package/dist/utils/mcp-response.js +0 -270
  1368. package/dist/utils/mcp-response.js.map +0 -1
  1369. package/dist/utils/path-security.d.ts +0 -73
  1370. package/dist/utils/path-security.d.ts.map +0 -1
  1371. package/dist/utils/path-security.js +0 -389
  1372. package/dist/utils/path-security.js.map +0 -1
  1373. package/dist/utils/prisma-wrapper-factory.d.ts +0 -152
  1374. package/dist/utils/prisma-wrapper-factory.d.ts.map +0 -1
  1375. package/dist/utils/prisma-wrapper-factory.js +0 -124
  1376. package/dist/utils/prisma-wrapper-factory.js.map +0 -1
  1377. package/dist/utils/safe-parse-int.d.ts +0 -41
  1378. package/dist/utils/safe-parse-int.d.ts.map +0 -1
  1379. package/dist/utils/safe-parse-int.js +0 -49
  1380. package/dist/utils/safe-parse-int.js.map +0 -1
  1381. package/dist/utils/url-normalizer.d.ts +0 -38
  1382. package/dist/utils/url-normalizer.d.ts.map +0 -1
  1383. package/dist/utils/url-normalizer.js +0 -103
  1384. package/dist/utils/url-normalizer.js.map +0 -1
  1385. package/dist/utils/url-validator.d.ts +0 -86
  1386. package/dist/utils/url-validator.d.ts.map +0 -1
  1387. package/dist/utils/url-validator.js +0 -533
  1388. package/dist/utils/url-validator.js.map +0 -1
  1389. package/dist/workers/batch-quality-worker.d.ts +0 -87
  1390. package/dist/workers/batch-quality-worker.d.ts.map +0 -1
  1391. package/dist/workers/batch-quality-worker.js +0 -300
  1392. package/dist/workers/batch-quality-worker.js.map +0 -1
  1393. package/dist/workers/page-analyze-worker.d.ts +0 -63
  1394. package/dist/workers/page-analyze-worker.d.ts.map +0 -1
  1395. package/dist/workers/page-analyze-worker.js +0 -872
  1396. package/dist/workers/page-analyze-worker.js.map +0 -1
  1397. package/dist/workers/phases/phase-0-ingest.d.ts +0 -42
  1398. package/dist/workers/phases/phase-0-ingest.d.ts.map +0 -1
  1399. package/dist/workers/phases/phase-0-ingest.js +0 -197
  1400. package/dist/workers/phases/phase-0-ingest.js.map +0 -1
  1401. package/dist/workers/phases/phase-1-layout.d.ts +0 -63
  1402. package/dist/workers/phases/phase-1-layout.d.ts.map +0 -1
  1403. package/dist/workers/phases/phase-1-layout.js +0 -362
  1404. package/dist/workers/phases/phase-1-layout.js.map +0 -1
  1405. package/dist/workers/phases/phase-2-motion.d.ts +0 -93
  1406. package/dist/workers/phases/phase-2-motion.d.ts.map +0 -1
  1407. package/dist/workers/phases/phase-2-motion.js +0 -408
  1408. package/dist/workers/phases/phase-2-motion.js.map +0 -1
  1409. package/dist/workers/phases/phase-3-quality.d.ts +0 -61
  1410. package/dist/workers/phases/phase-3-quality.d.ts.map +0 -1
  1411. package/dist/workers/phases/phase-3-quality.js +0 -191
  1412. package/dist/workers/phases/phase-3-quality.js.map +0 -1
  1413. package/dist/workers/phases/phase-4-narrative.d.ts +0 -37
  1414. package/dist/workers/phases/phase-4-narrative.d.ts.map +0 -1
  1415. package/dist/workers/phases/phase-4-narrative.js +0 -309
  1416. package/dist/workers/phases/phase-4-narrative.js.map +0 -1
  1417. package/dist/workers/phases/phase-5-embedding.d.ts +0 -56
  1418. package/dist/workers/phases/phase-5-embedding.d.ts.map +0 -1
  1419. package/dist/workers/phases/phase-5-embedding.js +0 -1350
  1420. package/dist/workers/phases/phase-5-embedding.js.map +0 -1
  1421. package/dist/workers/phases/types.d.ts +0 -411
  1422. package/dist/workers/phases/types.d.ts.map +0 -1
  1423. package/dist/workers/phases/types.js +0 -540
  1424. package/dist/workers/phases/types.js.map +0 -1
@@ -1,1726 +0,0 @@
1
- "use strict";
2
- // SPDX-FileCopyrightText: 2026 TKMD and Reftrix Contributors
3
- // SPDX-License-Identifier: AGPL-3.0-only
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.pageIngestAdapter = exports.DNS_RETRY_CONFIG = void 0;
6
- exports.isDnsRelatedError = isDnsRelatedError;
7
- exports.calculateRetryDelay = calculateRetryDelay;
8
- /**
9
- * PageIngestAdapter
10
- * Playwrightを直接使用してWebページをインジェストするサービス
11
- *
12
- * Crawler依存を排除し、MCP Server内で完結するPlaywright統合
13
- *
14
- * @module services/page-ingest-adapter
15
- */
16
- const playwright_1 = require("playwright");
17
- const logger_1 = require("../utils/logger");
18
- const gpu_browser_args_1 = require("../utils/gpu-browser-args");
19
- const browser_process_manager_1 = require("./browser-process-manager");
20
- const core_1 = require("@reftrixmcp/core");
21
- const errors_1 = require("../utils/errors");
22
- // =============================================
23
- // DNS リトライ定数・関数
24
- // =============================================
25
- /**
26
- * DNS関連エラーのリトライ設定
27
- *
28
- * ローカルDNSリゾルバ(systemd-resolved等)が断続的にEAI_AGAINを返す
29
- * 環境に対応するため、DNS解決エラー時のみリトライを行う。
30
- */
31
- exports.DNS_RETRY_CONFIG = {
32
- /** 最大リトライ回数 */
33
- MAX_RETRIES: 3,
34
- /** 基本遅延(ms) - exponential backoffの基本値 */
35
- BASE_DELAY_MS: 5000,
36
- /** 最大遅延(ms) - exponential backoffの上限 */
37
- MAX_DELAY_MS: 20000,
38
- };
39
- /**
40
- * リトライ可能なDNS関連エラーパターン
41
- *
42
- * NXDOMAINは永続的なエラー(ドメインが存在しない)のためリトライ対象外。
43
- * 一時的なDNSリゾルバ障害のみリトライする。
44
- */
45
- const DNS_ERROR_PATTERNS = [
46
- "ERR_NAME_NOT_RESOLVED",
47
- "ERR_NAME_RESOLUTION_FAILED",
48
- "EAI_AGAIN",
49
- "ENOTFOUND",
50
- ];
51
- /**
52
- * エラーがリトライ可能なDNS関連エラーかどうかを判定する
53
- *
54
- * NXDOMAINは永続的エラー(ドメインが存在しない)のため対象外。
55
- * 一時的なDNSリゾルバ障害(EAI_AGAIN, ERR_NAME_NOT_RESOLVED等)のみリトライ。
56
- *
57
- * @param error - 判定するエラー
58
- * @returns DNS関連の一時的エラーであればtrue
59
- */
60
- function isDnsRelatedError(error) {
61
- if (error === null || error === undefined) {
62
- return false;
63
- }
64
- const message = error instanceof Error ? error.message : "";
65
- if (!message) {
66
- return false;
67
- }
68
- return DNS_ERROR_PATTERNS.some((pattern) => message.includes(pattern));
69
- }
70
- /**
71
- * リトライ遅延を計算する(exponential backoff)
72
- *
73
- * @param attempt - リトライ試行番号(0-indexed)
74
- * @returns 遅延時間(ms)
75
- */
76
- function calculateRetryDelay(attempt) {
77
- const delay = exports.DNS_RETRY_CONFIG.BASE_DELAY_MS * Math.pow(2, attempt);
78
- return Math.min(delay, exports.DNS_RETRY_CONFIG.MAX_DELAY_MS);
79
- }
80
- // =============================================
81
- // 定数
82
- // =============================================
83
- /**
84
- * デフォルトタイムアウト(ms)
85
- */
86
- const DEFAULT_TIMEOUT = 30000;
87
- /**
88
- * デフォルトビューポート
89
- */
90
- const DEFAULT_VIEWPORT = {
91
- width: 1920,
92
- height: 1080,
93
- };
94
- /** Lazy Loadingスクロール最小ステップ幅(px) / Min scroll step for lazy loading (px) */
95
- const LAZY_SCROLL_MIN_STEP_PX = 500;
96
- /** Lazy Loadingスクロール最大反復回数 / Max lazy loading scroll iterations */
97
- const LAZY_SCROLL_MAX_ITERATIONS = 50;
98
- /** スクロール後描画安定待ち(ms) / Paint stabilization wait after scroll (ms) */
99
- const LAZY_SCROLL_STABILIZE_MS = 500;
100
- /** rAFタイムアウト(ms) / requestAnimationFrame timeout (ms) */
101
- const RAF_TIMEOUT_MS = 2000;
102
- /**
103
- * WebGL関連定数
104
- */
105
- const WEBGL_CONSTANTS = {
106
- /** デフォルトの追加待機時間(ms) */
107
- DEFAULT_EXTRA_WAIT_MS: 5000,
108
- /** フレームレート安定化の最大待機時間(ms) */
109
- MAX_FRAME_RATE_WAIT_MS: 10000,
110
- /** 安定判定に必要な連続安定フレーム数 */
111
- STABLE_FRAME_COUNT: 3,
112
- /** 最小許容フレームレート(fps) */
113
- MIN_STABLE_FPS: 20,
114
- /** 最大許容フレームレート(fps) */
115
- MAX_STABLE_FPS: 120,
116
- /** フレーム間隔の許容変動率(±50%) */
117
- FRAME_INTERVAL_TOLERANCE: 0.5,
118
- /** waitForWebGLモードのCanvas検出タイムアウト(ms) */
119
- CANVAS_WAIT_TIMEOUT_MS: 10000,
120
- /** waitForWebGLモードのデフォルト待機時間(ms) */
121
- DEFAULT_WEBGL_WAIT_MS: 3000,
122
- };
123
- /**
124
- * 操作レベルタイムアウト定数(WebGLサイト用)
125
- */
126
- const OPERATION_TIMEOUTS = {
127
- /** page.content()のタイムアウト(ms) */
128
- CONTENT_EXTRACTION: 30000,
129
- /** metadata抽出のタイムアウト(ms) */
130
- METADATA_EXTRACTION: 15000,
131
- /** viewport情報取得のタイムアウト(ms) */
132
- VIEWPORT_INFO: 10000,
133
- /** WebGLサイト用のタイムアウト乗数(通常の2倍) */
134
- WEBGL_MULTIPLIER: 2,
135
- };
136
- // =============================================
137
- // ヘルパー関数
138
- // =============================================
139
- /**
140
- * Promiseにタイムアウトを追加
141
- * WebGLサイトなど重い処理がハングする場合の保護
142
- *
143
- * @param promise - 実行するPromise
144
- * @param timeoutMs - タイムアウト時間(ms)
145
- * @param operationName - 操作名(エラーメッセージ用)
146
- * @returns Promise結果またはタイムアウトエラー
147
- */
148
- async function withTimeout(promise, timeoutMs, operationName) {
149
- let timeoutId;
150
- const timeoutPromise = new Promise((_, reject) => {
151
- timeoutId = setTimeout(() => {
152
- reject(new Error(`Operation '${operationName}' timed out after ${timeoutMs}ms`));
153
- }, timeoutMs);
154
- });
155
- try {
156
- const result = await Promise.race([promise, timeoutPromise]);
157
- clearTimeout(timeoutId);
158
- return result;
159
- }
160
- catch (error) {
161
- clearTimeout(timeoutId);
162
- throw error;
163
- }
164
- }
165
- // =============================================
166
- // PageIngestAdapter クラス
167
- // =============================================
168
- /**
169
- * ページインジェストアダプター
170
- *
171
- * Playwrightを使用してWebページをキャプチャする
172
- *
173
- * @example
174
- * ```typescript
175
- * const result = await pageIngestAdapter.ingest({
176
- * url: 'https://example.com',
177
- * fullPage: true,
178
- * timeout: 30000,
179
- * });
180
- * ```
181
- */
182
- class PageIngestAdapter {
183
- browser = null;
184
- /**
185
- * ローディング要素の完全非表示を待機(CSS opacity/visibility対応)
186
- *
187
- * Playwrightの`state: 'hidden'`はCSSアニメーション(opacity変化)を検知しないため、
188
- * JavaScript でcomputed styleを直接チェックする
189
- *
190
- * @param page - Playwrightページ
191
- * @param selector - ローディング要素のセレクター(カンマ区切り複数可)
192
- * @param timeout - 最大待機時間(ms)
193
- */
194
- async waitForLoadingElementHidden(page, selector, timeout = 30000) {
195
- const startTime = Date.now();
196
- // セレクターを分割(カンマ区切り対応)
197
- const selectors = selector
198
- .split(",")
199
- .map((s) => s.trim())
200
- .filter(Boolean);
201
- const result = await page.evaluate(`(async function() {
202
- var startTime = Date.now();
203
- var timeout = ${timeout};
204
- var selectors = ${JSON.stringify(selectors)};
205
- var checkInterval = 100; // 100ms間隔でチェック
206
-
207
- function isElementHidden(el) {
208
- if (!el) return true;
209
-
210
- var style = window.getComputedStyle(el);
211
-
212
- // display: none
213
- if (style.display === 'none') return true;
214
-
215
- // visibility: hidden
216
- if (style.visibility === 'hidden') return true;
217
-
218
- // opacity: 0 (またはほぼ0)
219
- var opacity = parseFloat(style.opacity);
220
- if (opacity < 0.01) return true;
221
-
222
- // サイズが0
223
- var rect = el.getBoundingClientRect();
224
- if (rect.width === 0 || rect.height === 0) return true;
225
-
226
- // pointer-events: none かつ opacity < 0.1 はフェードアウト中とみなす
227
- if (style.pointerEvents === 'none' && opacity < 0.1) return true;
228
-
229
- return false;
230
- }
231
-
232
- function checkAllHidden() {
233
- for (var i = 0; i < selectors.length; i++) {
234
- var elements = document.querySelectorAll(selectors[i]);
235
- for (var j = 0; j < elements.length; j++) {
236
- if (!isElementHidden(elements[j])) {
237
- return false; // まだ可視の要素がある
238
- }
239
- }
240
- }
241
- return true; // すべて非表示(または要素なし)
242
- }
243
-
244
- return new Promise(function(resolve) {
245
- // 初回チェック
246
- if (checkAllHidden()) {
247
- resolve({
248
- hidden: true,
249
- waitTime: Date.now() - startTime,
250
- reason: 'already_hidden'
251
- });
252
- return;
253
- }
254
-
255
- // ポーリングでチェック
256
- var intervalId = setInterval(function() {
257
- if (checkAllHidden()) {
258
- clearInterval(intervalId);
259
- resolve({
260
- hidden: true,
261
- waitTime: Date.now() - startTime,
262
- reason: 'became_hidden'
263
- });
264
- return;
265
- }
266
-
267
- if (Date.now() - startTime >= timeout) {
268
- clearInterval(intervalId);
269
- resolve({
270
- hidden: false,
271
- waitTime: Date.now() - startTime,
272
- reason: 'timeout'
273
- });
274
- }
275
- }, checkInterval);
276
- });
277
- })()`);
278
- const typedResult = result;
279
- if ((0, logger_1.isDevelopment)()) {
280
- logger_1.logger.debug("[PageIngestAdapter] Loading element visibility check", {
281
- hidden: typedResult.hidden,
282
- waitTime: typedResult.waitTime,
283
- reason: typedResult.reason,
284
- elapsedTotal: Date.now() - startTime,
285
- });
286
- }
287
- return typedResult;
288
- }
289
- /**
290
- * DOM安定化を待機(React/Vue/Next.js ハイドレーション対応)
291
- *
292
- * MutationObserverを使用してDOMの変更を監視し、
293
- * 指定時間内に変更がなくなったら安定したと判断
294
- *
295
- * @param page - Playwrightページ
296
- * @param stableTimeout - 安定判定の無変更時間(ms)
297
- * @param maxWait - 最大待機時間(ms)
298
- */
299
- async waitForDomStable(page, stableTimeout = 500, maxWait = 10000) {
300
- if ((0, logger_1.isDevelopment)()) {
301
- logger_1.logger.debug("[PageIngestAdapter] Waiting for DOM to stabilize...", {
302
- stableTimeout,
303
- maxWait,
304
- });
305
- }
306
- const result = await page.evaluate(`(async function() {
307
- const stableTimeout = ${stableTimeout};
308
- const maxWait = ${maxWait};
309
- const startTime = Date.now();
310
- let mutationCount = 0;
311
- let lastMutationTime = Date.now();
312
-
313
- return new Promise((resolve) => {
314
- // 最大待機タイムアウト
315
- const maxWaitTimer = setTimeout(() => {
316
- observer.disconnect();
317
- resolve({
318
- stable: false,
319
- mutations: mutationCount,
320
- waitTime: Date.now() - startTime,
321
- reason: 'max_wait_exceeded'
322
- });
323
- }, maxWait);
324
-
325
- // 安定化チェック用インターバル
326
- const checkInterval = setInterval(() => {
327
- const timeSinceLastMutation = Date.now() - lastMutationTime;
328
- if (timeSinceLastMutation >= stableTimeout) {
329
- clearInterval(checkInterval);
330
- clearTimeout(maxWaitTimer);
331
- observer.disconnect();
332
- resolve({
333
- stable: true,
334
- mutations: mutationCount,
335
- waitTime: Date.now() - startTime,
336
- reason: 'dom_stable'
337
- });
338
- }
339
- }, 100);
340
-
341
- // MutationObserver設定
342
- const observer = new MutationObserver((mutations) => {
343
- // 重要な変更のみカウント(テキストノードの軽微な変更を除外)
344
- const significantMutations = mutations.filter(m => {
345
- // 追加・削除されたノードがある
346
- if (m.addedNodes.length > 0 || m.removedNodes.length > 0) {
347
- // スクリプトタグやスタイルタグは除外
348
- for (const node of m.addedNodes) {
349
- if (node.nodeType === 1) {
350
- const el = node;
351
- if (el.tagName !== 'SCRIPT' && el.tagName !== 'STYLE') {
352
- return true;
353
- }
354
- }
355
- }
356
- for (const node of m.removedNodes) {
357
- if (node.nodeType === 1) {
358
- const el = node;
359
- if (el.tagName !== 'SCRIPT' && el.tagName !== 'STYLE') {
360
- return true;
361
- }
362
- }
363
- }
364
- return false;
365
- }
366
- // 属性変更(class, style等)
367
- if (m.type === 'attributes') {
368
- return true;
369
- }
370
- return false;
371
- });
372
-
373
- if (significantMutations.length > 0) {
374
- mutationCount += significantMutations.length;
375
- lastMutationTime = Date.now();
376
- }
377
- });
378
-
379
- observer.observe(document.body || document.documentElement, {
380
- childList: true,
381
- subtree: true,
382
- attributes: true,
383
- attributeFilter: ['class', 'style', 'data-loaded', 'data-hydrated'],
384
- });
385
- });
386
- })()`);
387
- const typedResult = result;
388
- if ((0, logger_1.isDevelopment)()) {
389
- logger_1.logger.info("[PageIngestAdapter] DOM stability check completed", {
390
- stable: typedResult.stable,
391
- mutations: typedResult.mutations,
392
- waitTime: typedResult.waitTime,
393
- reason: typedResult.reason,
394
- });
395
- }
396
- return typedResult;
397
- }
398
- /**
399
- * WebGL/Canvas要素を検出
400
- *
401
- * Canvas要素とWebGLコンテキストの存在を確認し、
402
- * Three.js等の3Dライブラリの検出も行う
403
- *
404
- * @param page - Playwrightページ
405
- * @returns WebGL検出結果
406
- */
407
- async detectWebGL(page) {
408
- const startTime = Date.now();
409
- if ((0, logger_1.isDevelopment)()) {
410
- logger_1.logger.debug("[PageIngestAdapter] Detecting WebGL/Canvas elements...");
411
- }
412
- const result = await page.evaluate(`
413
- (function() {
414
- var canvases = document.querySelectorAll('canvas');
415
- var webgl1Count = 0;
416
- var webgl2Count = 0;
417
-
418
- // 各Canvasに対してWebGLコンテキストをチェック
419
- for (var i = 0; i < canvases.length; i++) {
420
- var canvas = canvases[i];
421
- try {
422
- // WebGL2をまず試行
423
- var gl2 = canvas.getContext('webgl2');
424
- if (gl2) {
425
- webgl2Count++;
426
- continue;
427
- }
428
- // WebGL1を試行
429
- var gl1 = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
430
- if (gl1) {
431
- webgl1Count++;
432
- }
433
- } catch (e) {
434
- // コンテキスト取得エラーは無視
435
- }
436
- }
437
-
438
- // Three.js検出
439
- var threeJsDetected = !!(
440
- window.THREE ||
441
- window.__THREE__ ||
442
- window.__THREE_DEVTOOLS__ ||
443
- document.querySelector('[data-three]') ||
444
- document.querySelector('[data-engine*="three"]')
445
- );
446
-
447
- // R3F (React Three Fiber) 検出
448
- if (!threeJsDetected) {
449
- threeJsDetected = !!(
450
- document.querySelector('[class*="r3f"]') ||
451
- document.querySelector('[data-r3f]')
452
- );
453
- }
454
-
455
- return {
456
- detected: canvases.length > 0 && (webgl1Count > 0 || webgl2Count > 0),
457
- canvasCount: canvases.length,
458
- webgl1Count: webgl1Count,
459
- webgl2Count: webgl2Count,
460
- threeJsDetected: threeJsDetected
461
- };
462
- })()
463
- `);
464
- const typedResult = result;
465
- const detectionTimeMs = Date.now() - startTime;
466
- if ((0, logger_1.isDevelopment)()) {
467
- logger_1.logger.info("[PageIngestAdapter] WebGL detection completed", {
468
- ...typedResult,
469
- detectionTimeMs,
470
- });
471
- }
472
- return {
473
- ...typedResult,
474
- detectionTimeMs,
475
- };
476
- }
477
- /**
478
- * requestAnimationFrameでフレームレート安定化を待機
479
- *
480
- * WebGLサイトの初期化完了を判定するため、
481
- * 3フレーム連続で安定したフレームレート(20-120fps)になるまで待機
482
- *
483
- * @param page - Playwrightページ
484
- * @param maxWaitMs - 最大待機時間(ms)
485
- * @returns WebGL待機結果
486
- */
487
- async waitForStableFrameRate(page, maxWaitMs = WEBGL_CONSTANTS.MAX_FRAME_RATE_WAIT_MS) {
488
- const startTime = Date.now();
489
- if ((0, logger_1.isDevelopment)()) {
490
- logger_1.logger.debug("[PageIngestAdapter] Waiting for stable frame rate...", {
491
- maxWaitMs,
492
- });
493
- }
494
- try {
495
- const result = await page.evaluate(`(async function() {
496
- var maxWait = ${maxWaitMs};
497
- var startTime = performance.now();
498
- var stableFrameCount = ${WEBGL_CONSTANTS.STABLE_FRAME_COUNT};
499
- var minFps = ${WEBGL_CONSTANTS.MIN_STABLE_FPS};
500
- var maxFps = ${WEBGL_CONSTANTS.MAX_STABLE_FPS};
501
- var tolerance = ${WEBGL_CONSTANTS.FRAME_INTERVAL_TOLERANCE};
502
-
503
- // フレーム間隔の期待値(60fps基準: 16.67ms)
504
- var expectedInterval = 1000 / 60;
505
- var minInterval = 1000 / maxFps; // 8.33ms (120fps)
506
- var maxInterval = 1000 / minFps; // 50ms (20fps)
507
-
508
- return new Promise(function(resolve) {
509
- var frameCount = 0;
510
- var lastTime = performance.now();
511
- var stableFrames = 0;
512
- var lastFps = 0;
513
- var rafId = null;
514
-
515
- function checkFrame(currentTime) {
516
- var now = currentTime || performance.now();
517
- var delta = now - lastTime;
518
- lastTime = now;
519
- frameCount++;
520
-
521
- // 初回フレームはスキップ
522
- if (frameCount === 1) {
523
- rafId = requestAnimationFrame(checkFrame);
524
- return;
525
- }
526
-
527
- // フレームレートを計算
528
- var currentFps = delta > 0 ? 1000 / delta : 0;
529
- lastFps = currentFps;
530
-
531
- // 安定判定: フレーム間隔が許容範囲内か
532
- var isStable = delta >= minInterval && delta <= maxInterval;
533
-
534
- // さらに厳密に: 前回との変動率をチェック
535
- if (frameCount > 2 && isStable) {
536
- isStable = true;
537
- }
538
-
539
- if (isStable) {
540
- stableFrames++;
541
- } else {
542
- stableFrames = 0;
543
- }
544
-
545
- // 安定判定達成
546
- if (stableFrames >= stableFrameCount) {
547
- cancelAnimationFrame(rafId);
548
- resolve({
549
- stable: true,
550
- waitTimeMs: Math.round(now - startTime),
551
- frameRateStable: true,
552
- lastFrameRate: Math.round(lastFps),
553
- reason: 'stable'
554
- });
555
- return;
556
- }
557
-
558
- // タイムアウトチェック
559
- if (now - startTime >= maxWait) {
560
- cancelAnimationFrame(rafId);
561
- resolve({
562
- stable: false,
563
- waitTimeMs: Math.round(now - startTime),
564
- frameRateStable: false,
565
- lastFrameRate: Math.round(lastFps),
566
- reason: 'timeout'
567
- });
568
- return;
569
- }
570
-
571
- rafId = requestAnimationFrame(checkFrame);
572
- }
573
-
574
- rafId = requestAnimationFrame(checkFrame);
575
- });
576
- })()`);
577
- const typedResult = result;
578
- if ((0, logger_1.isDevelopment)()) {
579
- logger_1.logger.info("[PageIngestAdapter] Frame rate stabilization check completed", {
580
- ...typedResult,
581
- totalElapsed: Date.now() - startTime,
582
- });
583
- }
584
- return typedResult;
585
- }
586
- catch (error) {
587
- const errorMessage = error instanceof Error ? error.message : String(error);
588
- if ((0, logger_1.isDevelopment)()) {
589
- logger_1.logger.warn("[PageIngestAdapter] Frame rate check failed", {
590
- error: errorMessage,
591
- elapsed: Date.now() - startTime,
592
- });
593
- }
594
- return {
595
- stable: false,
596
- waitTimeMs: Date.now() - startTime,
597
- frameRateStable: false,
598
- reason: "error",
599
- };
600
- }
601
- }
602
- /**
603
- * WebGL初期化完了を待機(適応的待機戦略)
604
- *
605
- * 1. WebGL/Canvas検出
606
- * 2. 検出時: requestAnimationFrame同期で安定化待機
607
- * 3. 必要に応じてnetworkidleにフォールバック
608
- * 4. 追加の固定待機時間
609
- *
610
- * @param page - Playwrightページ
611
- * @param options - インジェストオプション
612
- * @param warnings - 警告配列(Graceful Degradation時に追加)
613
- * @returns WebGL検出・待機結果
614
- */
615
- async waitForWebGLReady(page, options, warnings) {
616
- // Step 1: WebGL検出
617
- const detection = await this.detectWebGL(page);
618
- // WebGL未検出の場合は早期リターン
619
- if (!detection.detected) {
620
- if ((0, logger_1.isDevelopment)()) {
621
- logger_1.logger.debug("[PageIngestAdapter] No WebGL detected, skipping adaptive wait");
622
- }
623
- return { detection };
624
- }
625
- // Step 2: フレームレート安定化待機
626
- const maxWaitMs = Math.min(WEBGL_CONSTANTS.MAX_FRAME_RATE_WAIT_MS, (options.timeout ?? DEFAULT_TIMEOUT) / 3);
627
- const waitResult = await this.waitForStableFrameRate(page, maxWaitMs);
628
- // Step 3: Graceful Degradation - 安定化失敗時は警告を追加
629
- if (!waitResult.stable) {
630
- warnings.push({
631
- code: "WEBGL_FRAME_RATE_UNSTABLE",
632
- message: `WebGL frame rate not stabilized after ${waitResult.waitTimeMs}ms, continuing with current state`,
633
- });
634
- if ((0, logger_1.isDevelopment)()) {
635
- logger_1.logger.warn("[PageIngestAdapter] WebGL frame rate not stabilized, continuing with current state", {
636
- waitResult,
637
- });
638
- }
639
- }
640
- // Step 4: 追加の固定待機時間
641
- const extraWaitMs = options.webglExtraWaitMs ?? WEBGL_CONSTANTS.DEFAULT_EXTRA_WAIT_MS;
642
- if (extraWaitMs > 0) {
643
- if ((0, logger_1.isDevelopment)()) {
644
- logger_1.logger.debug("[PageIngestAdapter] Additional WebGL wait", { extraWaitMs });
645
- }
646
- await page.waitForTimeout(extraWaitMs);
647
- }
648
- return { detection, wait: waitResult };
649
- }
650
- /**
651
- * 共有ブラウザインスタンスを取得(Worker pipeline用)
652
- * PageIngestAdapterが管理するシングルトンブラウザを外部サービスと共有し、
653
- * Chromiumプロセス数を削減する(4→1)
654
- */
655
- async getSharedBrowser() {
656
- return this.getBrowser();
657
- }
658
- /**
659
- * ブラウザを起動(遅延初期化)
660
- *
661
- * v0.1.0改善:
662
- * - ブラウザが閉じられている場合を検出し、自動的に再起動
663
- * - isConnected()チェックで陳腐化した参照を検出
664
- *
665
- * v0.1.0セキュリティ改善:
666
- * - --no-sandboxを削除(セキュリティリスク軽減)
667
- * - --gpu-sandbox-start-earlyを追加(GPUプロセスのサンドボックス強化)
668
- */
669
- async getBrowser() {
670
- // ブラウザが存在するが閉じられている場合は参照をクリア
671
- if (this.browser && !this.browser.isConnected()) {
672
- if ((0, logger_1.isDevelopment)()) {
673
- logger_1.logger.warn("[PageIngestAdapter] Browser disconnected, will re-launch...");
674
- }
675
- this.browser = null;
676
- }
677
- if (!this.browser) {
678
- if ((0, logger_1.isDevelopment)()) {
679
- logger_1.logger.info("[PageIngestAdapter] Launching Chromium browser...");
680
- }
681
- this.browser = await playwright_1.chromium.launch({
682
- headless: true,
683
- args: [
684
- "--disable-gpu",
685
- "--disable-dev-shm-usage",
686
- "--disable-setuid-sandbox",
687
- // セキュリティ強化: --no-sandboxを削除し、GPUサンドボックスを早期起動
688
- "--gpu-sandbox-start-early",
689
- ],
690
- });
691
- }
692
- return this.browser;
693
- }
694
- /**
695
- * GPU有効化ブラウザを起動(専用インスタンス、共有しない)
696
- * WebGL重サイト(Linear、Vercel、Notion等)のレンダリングパフォーマンス向上のため使用
697
- * --use-angle=glでOpenGL ESバックエンドを使用し、GPUアクセラレーションを有効化
698
- * このブラウザは使用後に必ず閉じる必要がある
699
- *
700
- * Phase1-1: GPU有効化オプション追加
701
- */
702
- async launchGPUEnabledBrowser() {
703
- if ((0, logger_1.isDevelopment)()) {
704
- logger_1.logger.info("[PageIngestAdapter] Launching GPU-enabled Chromium browser...");
705
- }
706
- return playwright_1.chromium.launch({
707
- headless: true,
708
- args: [...gpu_browser_args_1.GPU_BROWSER_BASE_ARGS],
709
- });
710
- }
711
- /**
712
- * WebGL無効化ブラウザを起動(専用インスタンス、共有しない)
713
- * 重い3Dサイトでハングを防止するため、WebGL関連機能を完全に無効化
714
- * このブラウザは使用後に必ず閉じる必要がある
715
- */
716
- async launchWebGLDisabledBrowser() {
717
- if ((0, logger_1.isDevelopment)()) {
718
- logger_1.logger.info("[PageIngestAdapter] Launching WebGL-disabled Chromium browser...");
719
- }
720
- return playwright_1.chromium.launch({
721
- headless: true,
722
- args: [
723
- // 標準のセキュリティ/パフォーマンス設定
724
- "--disable-gpu",
725
- "--disable-dev-shm-usage",
726
- "--disable-setuid-sandbox",
727
- // セキュリティ強化: --no-sandboxを削除し、GPUサンドボックスを早期起動
728
- "--gpu-sandbox-start-early",
729
- // WebGL/3D関連を完全に無効化
730
- "--disable-webgl",
731
- "--disable-webgl2",
732
- "--disable-3d-apis",
733
- "--disable-software-rasterizer",
734
- "--disable-accelerated-2d-canvas",
735
- "--disable-accelerated-video-decode",
736
- // 追加のパフォーマンス最適化
737
- "--disable-background-timer-throttling",
738
- "--disable-renderer-backgrounding",
739
- // タイムアウト強制用
740
- "--disable-hang-monitor",
741
- ],
742
- });
743
- }
744
- /**
745
- * ページからメタデータを抽出
746
- */
747
- async extractMetadata(page) {
748
- // page.evaluate内でTypeScriptヘルパー関数(__name)が使用されないよう、
749
- // シンプルな構造で記述
750
- const result = await page.evaluate(`
751
- (function() {
752
- function getMetaContent(name) {
753
- var el = document.querySelector('meta[name="' + name + '"]') ||
754
- document.querySelector('meta[property="' + name + '"]');
755
- return el ? el.getAttribute('content') : undefined;
756
- }
757
-
758
- function getFavicon() {
759
- var link = document.querySelector('link[rel="icon"]') ||
760
- document.querySelector('link[rel="shortcut icon"]');
761
- return link ? link.getAttribute('href') : undefined;
762
- }
763
-
764
- var canonicalEl = document.querySelector('link[rel="canonical"]');
765
- var keywordsStr = getMetaContent('keywords');
766
-
767
- return {
768
- title: document.title || '',
769
- description: getMetaContent('description') || getMetaContent('og:description'),
770
- ogImage: getMetaContent('og:image'),
771
- favicon: getFavicon(),
772
- lang: document.documentElement.lang || undefined,
773
- canonical: canonicalEl ? canonicalEl.getAttribute('href') : undefined,
774
- keywords: keywordsStr ? keywordsStr.split(',').map(function(k) { return k.trim(); }) : undefined,
775
- };
776
- })()
777
- `);
778
- return result;
779
- }
780
- /**
781
- * ビューポート情報を取得
782
- */
783
- async getViewportInfo(page, viewport) {
784
- // page.evaluate内でTypeScriptヘルパー関数(__name)が使用されないよう、
785
- // 文字列形式で記述し、パラメータは別途渡す
786
- const result = await page.evaluate(`
787
- (function() {
788
- return {
789
- documentWidth: document.documentElement.scrollWidth,
790
- documentHeight: document.documentElement.scrollHeight,
791
- viewportWidth: ${viewport.width},
792
- viewportHeight: ${viewport.height},
793
- scrollHeight: document.body ? document.body.scrollHeight : 0,
794
- };
795
- })()
796
- `);
797
- return result;
798
- }
799
- /**
800
- * セクション要素とその子要素のComputed Stylesを抽出
801
- *
802
- * ブラウザがレンダリングした実際のスタイル値を取得し、
803
- * デザインの正確な再現を可能にする
804
- *
805
- * 取得する子要素:
806
- * - 見出し: h1-h6
807
- * - ボタン: button, a.btn, [role="button"]
808
- * - リンク: a(主要なもの)
809
- * - 入力: input, select, textarea
810
- * - コンテナ: div(直接の子のみ、display: flex/gridのもの)
811
- * - 画像: img
812
- * - 段落: p(最初の3つのみ)
813
- *
814
- * @param page - Playwrightページ
815
- * @returns Computed Styles配列
816
- */
817
- async extractComputedStyles(page) {
818
- if ((0, logger_1.isDevelopment)()) {
819
- logger_1.logger.debug("[PageIngestAdapter] Extracting computed styles...");
820
- }
821
- const result = await page.evaluate(`
822
- (function() {
823
- // ユニークなセレクタを生成
824
- function getUniqueSelector(el) {
825
- if (el.id) {
826
- return '#' + el.id;
827
- }
828
- if (el.className && typeof el.className === 'string') {
829
- var classes = el.className.trim().split(/\\s+/).filter(function(c) {
830
- return c.length > 0 && !c.startsWith('_') && c.length < 50;
831
- }).slice(0, 3);
832
- if (classes.length > 0) {
833
- return el.tagName.toLowerCase() + '.' + classes.join('.');
834
- }
835
- }
836
- return el.tagName.toLowerCase();
837
- }
838
-
839
- // 親セクションからの相対パスを取得
840
- function getRelativePath(el, sectionEl) {
841
- var path = [];
842
- var current = el;
843
- while (current && current !== sectionEl) {
844
- var tagName = current.tagName.toLowerCase();
845
- var siblings = current.parentElement ? Array.from(current.parentElement.children).filter(function(s) {
846
- return s.tagName === current.tagName;
847
- }) : [];
848
- if (siblings.length > 1) {
849
- var index = siblings.indexOf(current) + 1;
850
- path.unshift(tagName + '[' + index + ']');
851
- } else {
852
- path.unshift(tagName);
853
- }
854
- current = current.parentElement;
855
- }
856
- return path.join(' > ');
857
- }
858
-
859
- // 要素のComputed Stylesを取得
860
- function getElementStyles(el) {
861
- var style = window.getComputedStyle(el);
862
- return {
863
- // 背景
864
- backgroundColor: style.backgroundColor,
865
- backgroundImage: style.backgroundImage,
866
- // テキスト
867
- color: style.color,
868
- fontSize: style.fontSize,
869
- fontFamily: style.fontFamily,
870
- fontWeight: style.fontWeight,
871
- lineHeight: style.lineHeight,
872
- letterSpacing: style.letterSpacing,
873
- textAlign: style.textAlign,
874
- textDecoration: style.textDecoration,
875
- textTransform: style.textTransform,
876
- // レイアウト
877
- display: style.display,
878
- position: style.position,
879
- flexDirection: style.flexDirection,
880
- justifyContent: style.justifyContent,
881
- alignItems: style.alignItems,
882
- padding: style.padding,
883
- paddingTop: style.paddingTop,
884
- paddingRight: style.paddingRight,
885
- paddingBottom: style.paddingBottom,
886
- paddingLeft: style.paddingLeft,
887
- margin: style.margin,
888
- marginTop: style.marginTop,
889
- marginRight: style.marginRight,
890
- marginBottom: style.marginBottom,
891
- marginLeft: style.marginLeft,
892
- gap: style.gap,
893
- width: style.width,
894
- height: style.height,
895
- maxWidth: style.maxWidth,
896
- minHeight: style.minHeight,
897
- // 視覚効果
898
- border: style.border,
899
- borderRadius: style.borderRadius,
900
- boxShadow: style.boxShadow,
901
- backdropFilter: style.backdropFilter,
902
- opacity: style.opacity,
903
- overflow: style.overflow,
904
- // トランジション・アニメーション
905
- transition: style.transition,
906
- transform: style.transform
907
- };
908
- }
909
-
910
- // 子要素のスタイルを取得
911
- function getChildrenStyles(sectionEl, maxChildren) {
912
- var children = [];
913
- var childSelectors = 'h1, h2, h3, h4, h5, h6, button, a[href], input, select, textarea, img, p, [role="button"], [class*="btn"], [class*="button"]';
914
- var childElements = sectionEl.querySelectorAll(childSelectors);
915
-
916
- // 直接の子divでflex/gridレイアウトのものも追加
917
- var directDivs = Array.from(sectionEl.children).filter(function(el) {
918
- if (el.tagName !== 'DIV') return false;
919
- var style = window.getComputedStyle(el);
920
- return style.display === 'flex' || style.display === 'grid';
921
- });
922
-
923
- var allElements = Array.from(childElements).concat(directDivs);
924
- var processed = new Set();
925
-
926
- // 段落は最初の3つのみ
927
- var pCount = 0;
928
- var MAX_P = 3;
929
-
930
- for (var i = 0; i < allElements.length && children.length < maxChildren; i++) {
931
- var el = allElements[i];
932
-
933
- // 重複チェック
934
- if (processed.has(el)) continue;
935
- processed.add(el);
936
-
937
- // 非表示要素はスキップ
938
- var style = window.getComputedStyle(el);
939
- if (style.display === 'none' || style.visibility === 'hidden') continue;
940
-
941
- // 段落の制限
942
- if (el.tagName === 'P') {
943
- if (pCount >= MAX_P) continue;
944
- pCount++;
945
- }
946
-
947
- var textContent = '';
948
- if (el.tagName === 'BUTTON' || el.tagName === 'A' || el.getAttribute('role') === 'button') {
949
- textContent = (el.textContent || '').trim().substring(0, 100);
950
- } else if (el.tagName.match(/^H[1-6]$/)) {
951
- textContent = (el.textContent || '').trim().substring(0, 200);
952
- }
953
-
954
- children.push({
955
- selector: getUniqueSelector(el),
956
- tagName: el.tagName,
957
- className: el.className || '',
958
- path: getRelativePath(el, sectionEl),
959
- textContent: textContent || undefined,
960
- styles: getElementStyles(el)
961
- });
962
- }
963
-
964
- return children;
965
- }
966
-
967
- var sectionSelectors = 'section, header, footer, main, nav, article, aside, [role="banner"], [role="main"], [role="contentinfo"], [role="navigation"]';
968
- var sections = document.querySelectorAll(sectionSelectors);
969
- var MAX_CHILDREN_PER_SECTION = 30;
970
-
971
- return Array.from(sections).map(function(el, index) {
972
- var children = getChildrenStyles(el, MAX_CHILDREN_PER_SECTION);
973
-
974
- return {
975
- index: index,
976
- tagName: el.tagName,
977
- className: el.className || '',
978
- id: el.id || '',
979
- role: el.getAttribute('role') || '',
980
- styles: getElementStyles(el),
981
- children: children.length > 0 ? children : undefined
982
- };
983
- });
984
- })()
985
- `);
986
- const computedStyles = result;
987
- if ((0, logger_1.isDevelopment)()) {
988
- const totalChildren = computedStyles.reduce((sum, s) => sum + (s.children?.length ?? 0), 0);
989
- logger_1.logger.debug("[PageIngestAdapter] Computed styles extracted", {
990
- sectionCount: computedStyles.length,
991
- totalChildElements: totalChildren,
992
- });
993
- }
994
- return computedStyles;
995
- }
996
- /**
997
- * URLからWebページをインジェストする
998
- *
999
- * @param options - インジェストオプション
1000
- * @returns インジェスト結果
1001
- */
1002
- async ingest(options) {
1003
- const { url, ...ingestOptions } = options;
1004
- const viewport = ingestOptions.viewport ?? DEFAULT_VIEWPORT;
1005
- const timeout = ingestOptions.timeout ?? DEFAULT_TIMEOUT;
1006
- // disableWebGLはenableGPUより優先される
1007
- const useWebGLDisabledBrowser = ingestOptions.disableWebGL === true;
1008
- // GPU有効化(disableWebGLがtrueの場合は無効)
1009
- const useGPUEnabledBrowser = !useWebGLDisabledBrowser && ingestOptions.enableGPU === true;
1010
- const forceKillOnTimeout = ingestOptions.forceKillOnTimeout === true;
1011
- if ((0, logger_1.isDevelopment)()) {
1012
- logger_1.logger.info("[PageIngestAdapter] Starting ingest", {
1013
- url,
1014
- viewport,
1015
- timeout,
1016
- disableWebGL: useWebGLDisabledBrowser,
1017
- enableGPU: useGPUEnabledBrowser,
1018
- forceKillOnTimeout,
1019
- });
1020
- }
1021
- // robots.txt チェック(RFC 9309準拠)
1022
- const robotsResult = await (0, core_1.isUrlAllowedByRobotsTxt)(url, ingestOptions.respectRobotsTxt);
1023
- if (!robotsResult.allowed) {
1024
- throw new errors_1.McpError(errors_1.ErrorCode.ROBOTS_TXT_BLOCKED, `Blocked by robots.txt: ${url} (domain: ${robotsResult.domain}, reason: ${robotsResult.reason}). ` +
1025
- `Use respect_robots_txt: false to override. ` +
1026
- `Note: Overriding robots.txt may have legal implications depending on jurisdiction (e.g., EU DSM Directive Article 4).`, { domain: robotsResult.domain, reason: robotsResult.reason });
1027
- }
1028
- let context = null;
1029
- let page = null;
1030
- let globalTimeoutId = null;
1031
- // WebGL無効化またはGPU有効化ブラウザを使用する場合は専用インスタンス
1032
- let dedicatedBrowser = null;
1033
- // プロセス強制終了用のPID
1034
- let browserPid;
1035
- // タイムアウトreject関数(グローバルタイムアウト時にPromiseをrejectするため)
1036
- let timeoutReject = null;
1037
- // BrowserProcessManager(専用ブラウザ使用時のみ作成)
1038
- let processManager = null;
1039
- try {
1040
- // ブラウザを取得
1041
- // 優先順位: disableWebGL > enableGPU > 通常ブラウザ
1042
- let browser;
1043
- if (useWebGLDisabledBrowser) {
1044
- dedicatedBrowser = await this.launchWebGLDisabledBrowser();
1045
- browser = dedicatedBrowser;
1046
- // browser.process() はPlaywrightの型定義に含まれていないが、実行時に存在
1047
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1048
- browserPid = browser.process?.()?.pid;
1049
- if ((0, logger_1.isDevelopment)()) {
1050
- logger_1.logger.debug("[PageIngestAdapter] Using dedicated WebGL-disabled browser", {
1051
- pid: browserPid,
1052
- });
1053
- }
1054
- }
1055
- else if (useGPUEnabledBrowser) {
1056
- // GPU有効化ブラウザ(専用インスタンス)
1057
- dedicatedBrowser = await this.launchGPUEnabledBrowser();
1058
- browser = dedicatedBrowser;
1059
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1060
- browserPid = browser.process?.()?.pid;
1061
- if ((0, logger_1.isDevelopment)()) {
1062
- logger_1.logger.debug("[PageIngestAdapter] Using dedicated GPU-enabled browser", {
1063
- pid: browserPid,
1064
- });
1065
- }
1066
- }
1067
- else {
1068
- browser = await this.getBrowser();
1069
- // 共有ブラウザのPIDも取得(強制終了時に必要)
1070
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1071
- browserPid = browser.process?.()?.pid;
1072
- }
1073
- // BrowserProcessManagerを作成(専用ブラウザ使用時またはforceKillOnTimeout有効時)
1074
- if (dedicatedBrowser && forceKillOnTimeout) {
1075
- processManager = new browser_process_manager_1.BrowserProcessManager({
1076
- browser: dedicatedBrowser,
1077
- forceKillOnTimeout: true,
1078
- killGracePeriodMs: 5000,
1079
- });
1080
- if ((0, logger_1.isDevelopment)()) {
1081
- logger_1.logger.debug("[PageIngestAdapter] BrowserProcessManager created for dedicated browser");
1082
- }
1083
- }
1084
- // 新しいコンテキストを作成
1085
- context = await browser.newContext({
1086
- viewport,
1087
- javaScriptEnabled: !ingestOptions.disableJavaScript,
1088
- userAgent: core_1.ROBOTS_TXT.USER_AGENT,
1089
- });
1090
- page = await context.newPage();
1091
- // ページレベルのデフォルトタイムアウトを設定
1092
- // page.evaluate()等にはネイティブタイムアウトオプションがないため、
1093
- // ページ全体のタイムアウトを設定することでハング防止
1094
- page.setDefaultTimeout(timeout);
1095
- // グローバルタイムアウトハンドラー: タイムアウト時にページ/ブラウザを強制クローズ
1096
- // これにより、ハングしたpage.evaluate()も中断される
1097
- // Note: page.evaluate()にはネイティブタイムアウトがないため、この方法でハングを防止
1098
- // さらに、timeoutRejectを呼び出してメインのPromiseもrejectする
1099
- const timeoutPromise = new Promise((_, reject) => {
1100
- timeoutReject = reject;
1101
- });
1102
- const globalTimeoutMs = timeout + 5000;
1103
- globalTimeoutId = setTimeout(async () => {
1104
- const timeoutError = new Error(`Global timeout: ingest operation exceeded ${timeout}ms for ${url}`);
1105
- if ((0, logger_1.isDevelopment)()) {
1106
- logger_1.logger.error("[PageIngestAdapter] Global timeout triggered, force closing", {
1107
- url,
1108
- timeout,
1109
- forceKillOnTimeout,
1110
- browserPid,
1111
- });
1112
- }
1113
- // Phase 1: ページをクローズ
1114
- try {
1115
- await Promise.race([
1116
- page?.close(),
1117
- new Promise((_, reject) => setTimeout(() => reject(new Error("page.close timeout")), 5000)),
1118
- ]);
1119
- }
1120
- catch {
1121
- if ((0, logger_1.isDevelopment)()) {
1122
- logger_1.logger.warn("[PageIngestAdapter] page.close() failed or timed out");
1123
- }
1124
- }
1125
- // Phase 2: 専用ブラウザを使用している場合はブラウザをクローズ
1126
- // BrowserProcessManagerを使用してタイムアウト付きクローズと強制終了を処理
1127
- if (dedicatedBrowser) {
1128
- if (processManager) {
1129
- // BrowserProcessManagerを使用: タイムアウト付きクローズ(失敗時は自動で強制終了)
1130
- const closed = await processManager.closeWithTimeout(5000);
1131
- if (!closed && (0, logger_1.isDevelopment)()) {
1132
- logger_1.logger.warn("[PageIngestAdapter] browser.close() timed out, force kill attempted");
1133
- }
1134
- }
1135
- else {
1136
- // processManagerがない場合は従来の方法でクローズ
1137
- try {
1138
- await Promise.race([
1139
- dedicatedBrowser.close(),
1140
- new Promise((_, reject) => setTimeout(() => reject(new Error("browser.close timeout")), 5000)),
1141
- ]);
1142
- }
1143
- catch {
1144
- if ((0, logger_1.isDevelopment)()) {
1145
- logger_1.logger.warn("[PageIngestAdapter] browser.close() failed or timed out");
1146
- }
1147
- // forceKillOnTimeoutが有効な場合は手動でkill
1148
- if (forceKillOnTimeout && browserPid) {
1149
- try {
1150
- if ((0, logger_1.isDevelopment)()) {
1151
- logger_1.logger.warn("[PageIngestAdapter] Force killing browser process", {
1152
- pid: browserPid,
1153
- });
1154
- }
1155
- process.kill(browserPid, "SIGKILL");
1156
- }
1157
- catch {
1158
- // プロセスが既に終了している場合は無視
1159
- }
1160
- }
1161
- }
1162
- }
1163
- }
1164
- // Phase 4: メインのPromiseをrejectしてエラーを伝播
1165
- // これにより、ハングしている操作があっても関数がエラーで返る
1166
- if (timeoutReject) {
1167
- timeoutReject(timeoutError);
1168
- }
1169
- }, globalTimeoutMs);
1170
- // グローバルタイムアウトとレースするためのヘルパー関数
1171
- // 既存のwithTimeout関数とは異なり、グローバルタイムアウトPromiseとレースする
1172
- const withGlobalTimeout = async (operation, operationName) => {
1173
- return Promise.race([
1174
- operation,
1175
- timeoutPromise.then(() => {
1176
- // This branch never executes (timeoutPromise only rejects, never resolves)
1177
- throw new Error(`${operationName} timed out`);
1178
- }),
1179
- ]);
1180
- };
1181
- // ページに移動
1182
- // waitForWebGL: trueの場合は'domcontentloaded'を使用(networkidleは永遠に完了しない問題への対応)
1183
- // adaptiveWebGLWait有効時も'domcontentloaded'を使用(WebGLサイトは'load'が発火しない場合がある)
1184
- // WebGL検出とフレームレート安定化で追加待機を処理するため、早期のDOM準備完了で十分
1185
- let waitUntil = ingestOptions.waitUntil ?? "load";
1186
- if (ingestOptions.waitForWebGL === true) {
1187
- // waitForWebGL: trueが明示的に指定された場合、常にdomcontentloadedを使用
1188
- waitUntil = "domcontentloaded";
1189
- if ((0, logger_1.isDevelopment)()) {
1190
- logger_1.logger.debug("[PageIngestAdapter] Using domcontentloaded for waitForWebGL mode");
1191
- }
1192
- }
1193
- else if (ingestOptions.adaptiveWebGLWait !== false && waitUntil === "load") {
1194
- waitUntil = "domcontentloaded";
1195
- if ((0, logger_1.isDevelopment)()) {
1196
- logger_1.logger.debug("[PageIngestAdapter] Using domcontentloaded for adaptive WebGL wait");
1197
- }
1198
- }
1199
- if ((0, logger_1.isDevelopment)()) {
1200
- logger_1.logger.debug("[PageIngestAdapter] Navigating with waitUntil", { url, waitUntil, timeout });
1201
- }
1202
- // DNS不安定対策: リトライ機構付きpage.goto
1203
- // ERR_NAME_NOT_RESOLVED, EAI_AGAIN等のDNSエラー時のみリトライする
1204
- let response = null;
1205
- let lastError = null;
1206
- for (let attempt = 0; attempt <= exports.DNS_RETRY_CONFIG.MAX_RETRIES; attempt++) {
1207
- try {
1208
- response = await withGlobalTimeout(page.goto(url, {
1209
- timeout,
1210
- waitUntil,
1211
- }), "page.goto");
1212
- lastError = null;
1213
- break; // 成功したらループを抜ける
1214
- }
1215
- catch (gotoError) {
1216
- lastError = gotoError instanceof Error ? gotoError : new Error(String(gotoError));
1217
- // DNSエラーでない場合はリトライしない(即座に再throw)
1218
- if (!isDnsRelatedError(gotoError)) {
1219
- throw lastError;
1220
- }
1221
- // 最後のリトライで失敗した場合は再throw
1222
- if (attempt >= exports.DNS_RETRY_CONFIG.MAX_RETRIES) {
1223
- logger_1.logger.error("[PageIngestAdapter] DNS retry exhausted", {
1224
- url,
1225
- attempts: attempt + 1,
1226
- error: lastError.message,
1227
- });
1228
- throw lastError;
1229
- }
1230
- // リトライ遅延(exponential backoff)
1231
- const retryDelay = calculateRetryDelay(attempt);
1232
- // 残りタイムアウトをチェック: リトライ遅延 + 次の試行がタイムアウトを超えないこと
1233
- // グローバルタイムアウトが管理しているため、ここでは警告ログのみ
1234
- logger_1.logger.warn("[PageIngestAdapter] DNS error, retrying", {
1235
- url,
1236
- attempt: attempt + 1,
1237
- maxRetries: exports.DNS_RETRY_CONFIG.MAX_RETRIES,
1238
- retryDelayMs: retryDelay,
1239
- error: lastError.message,
1240
- });
1241
- await new Promise((resolve) => setTimeout(resolve, retryDelay));
1242
- }
1243
- }
1244
- if (!response) {
1245
- throw lastError ?? new Error("No response received from page");
1246
- }
1247
- const finalUrl = page.url();
1248
- // 特定のセレクターを待機(オプション)
1249
- if (ingestOptions.waitForSelector) {
1250
- await page.waitForSelector(ingestOptions.waitForSelector, {
1251
- timeout: timeout / 2,
1252
- });
1253
- }
1254
- // ステップ0: ユーザーインタラクション模倣(ローディング解除トリガー)
1255
- // マウス移動でローディングアニメーションを解除するサイト対応
1256
- if (ingestOptions.simulateUserInteraction !== false) {
1257
- if ((0, logger_1.isDevelopment)()) {
1258
- logger_1.logger.debug("[PageIngestAdapter] Step 0: Simulating user interaction");
1259
- }
1260
- try {
1261
- // ビューポート中央にマウスを移動
1262
- const vp = page.viewportSize() ?? { width: 1440, height: 900 };
1263
- await page.mouse.move(vp.width / 2, vp.height / 2);
1264
- // 少しスクロール
1265
- await page.mouse.wheel(0, 100);
1266
- await page.waitForTimeout(500);
1267
- // 元に戻す
1268
- await page.mouse.wheel(0, -100);
1269
- if ((0, logger_1.isDevelopment)()) {
1270
- logger_1.logger.debug("[PageIngestAdapter] User interaction simulation completed");
1271
- }
1272
- }
1273
- catch (e) {
1274
- if ((0, logger_1.isDevelopment)()) {
1275
- logger_1.logger.warn("[PageIngestAdapter] User interaction simulation failed", {
1276
- error: String(e),
1277
- });
1278
- }
1279
- }
1280
- }
1281
- // ステップ0.5: waitForWebGLモードのCanvas待機(Phase1-2)
1282
- // networkidleが永遠に完了しないWebGLサイト向けの最適化
1283
- if (ingestOptions.waitForWebGL === true) {
1284
- if ((0, logger_1.isDevelopment)()) {
1285
- logger_1.logger.debug("[PageIngestAdapter] Step 0.5: waitForWebGL mode - waiting for canvas element");
1286
- }
1287
- try {
1288
- // Canvas要素の出現を待機(最大10秒)
1289
- await page.waitForSelector("canvas", { timeout: WEBGL_CONSTANTS.CANVAS_WAIT_TIMEOUT_MS });
1290
- // WebGLコンテキスト取得確認
1291
- const hasWebGL = await page.evaluate(`
1292
- (function() {
1293
- var canvas = document.querySelector('canvas');
1294
- if (!canvas) return false;
1295
- var gl = canvas.getContext('webgl') || canvas.getContext('webgl2');
1296
- return !!gl;
1297
- })()
1298
- `);
1299
- // WebGL初期化待機
1300
- if (hasWebGL) {
1301
- const webglWaitMs = ingestOptions.webglWaitMs ?? WEBGL_CONSTANTS.DEFAULT_WEBGL_WAIT_MS;
1302
- if (webglWaitMs > 0) {
1303
- if ((0, logger_1.isDevelopment)()) {
1304
- logger_1.logger.debug("[PageIngestAdapter] WebGL context found, waiting for initialization", {
1305
- webglWaitMs,
1306
- });
1307
- }
1308
- await page.waitForTimeout(webglWaitMs);
1309
- }
1310
- }
1311
- else {
1312
- if ((0, logger_1.isDevelopment)()) {
1313
- logger_1.logger.debug("[PageIngestAdapter] Canvas found but no WebGL context, skipping wait");
1314
- }
1315
- }
1316
- }
1317
- catch (e) {
1318
- // Canvas未検出やエラー時もエラーにしない(Graceful Degradation)
1319
- if ((0, logger_1.isDevelopment)()) {
1320
- logger_1.logger.debug("[PageIngestAdapter] waitForWebGL canvas/context check failed, continuing", {
1321
- error: e instanceof Error ? e.message : String(e),
1322
- });
1323
- }
1324
- }
1325
- }
1326
- // ステップ1: ローディング要素の完全非表示を待機(最優先)
1327
- // CSSアニメーション(opacity, transform)で隠れるローディング要素対応
1328
- if (ingestOptions.waitForSelectorHidden) {
1329
- if ((0, logger_1.isDevelopment)()) {
1330
- logger_1.logger.debug("[PageIngestAdapter] Step 1: Waiting for loading element to become invisible", {
1331
- selector: ingestOptions.waitForSelectorHidden,
1332
- });
1333
- }
1334
- const loadingHiddenResult = await this.waitForLoadingElementHidden(page, ingestOptions.waitForSelectorHidden, Math.min(timeout / 2, 30000));
1335
- if ((0, logger_1.isDevelopment)()) {
1336
- logger_1.logger.debug("[PageIngestAdapter] Loading element check completed", loadingHiddenResult);
1337
- }
1338
- }
1339
- // ステップ1.5: コンテンツ要素の可視性待機
1340
- // 実際のコンテンツが描画されるまで待機(sr-only以外の可視要素)
1341
- if (ingestOptions.waitForContentVisible) {
1342
- if ((0, logger_1.isDevelopment)()) {
1343
- logger_1.logger.debug("[PageIngestAdapter] Step 1.5: Waiting for content to become visible", {
1344
- selector: ingestOptions.waitForContentVisible,
1345
- });
1346
- }
1347
- try {
1348
- await page.waitForSelector(ingestOptions.waitForContentVisible, {
1349
- state: "visible",
1350
- timeout: Math.min(timeout / 2, 30000),
1351
- });
1352
- if ((0, logger_1.isDevelopment)()) {
1353
- logger_1.logger.debug("[PageIngestAdapter] Content element visible");
1354
- }
1355
- }
1356
- catch {
1357
- if ((0, logger_1.isDevelopment)()) {
1358
- logger_1.logger.warn("[PageIngestAdapter] Content element not found or timeout", {
1359
- selector: ingestOptions.waitForContentVisible,
1360
- });
1361
- }
1362
- }
1363
- }
1364
- // ステップ2: DOM安定化待機(React/Vue/Next.js hydration対応)
1365
- // ローディング完了後のコンテンツ描画を待つ
1366
- if (ingestOptions.waitForDomStable !== false) {
1367
- const domStableTimeout = ingestOptions.domStableTimeout ?? 500;
1368
- const maxWait = Math.min(timeout / 2, 10000);
1369
- if ((0, logger_1.isDevelopment)()) {
1370
- logger_1.logger.debug("[PageIngestAdapter] Step 2: Waiting for DOM stability", {
1371
- domStableTimeout,
1372
- maxWait,
1373
- });
1374
- }
1375
- const result = await withGlobalTimeout(this.waitForDomStable(page, domStableTimeout, maxWait), "waitForDomStable");
1376
- if ((0, logger_1.isDevelopment)()) {
1377
- logger_1.logger.debug("[PageIngestAdapter] DOM stability check completed", result);
1378
- }
1379
- }
1380
- // ステップ2.5: WebGL/3Dサイト適応的待機(デフォルト有効)
1381
- // Canvas/WebGLを検出し、フレームレート安定化を待機
1382
- // disableWebGL=trueの場合はスキップ(WebGLが無効化されているため検出不要)
1383
- const warnings = [];
1384
- let webglDetection;
1385
- let webglWait;
1386
- // disableWebGL使用時は警告を追加
1387
- if (useWebGLDisabledBrowser) {
1388
- warnings.push({
1389
- code: "WEBGL_DISABLED",
1390
- message: "WebGL has been disabled for this ingest. 3D/WebGL content will not render correctly.",
1391
- });
1392
- if ((0, logger_1.isDevelopment)()) {
1393
- logger_1.logger.info("[PageIngestAdapter] Skipping WebGL detection (disableWebGL=true)");
1394
- }
1395
- }
1396
- else if (ingestOptions.adaptiveWebGLWait !== false) {
1397
- if ((0, logger_1.isDevelopment)()) {
1398
- logger_1.logger.debug("[PageIngestAdapter] Step 2.5: Adaptive WebGL wait (enabled by default)");
1399
- }
1400
- try {
1401
- const webglResult = await withGlobalTimeout(this.waitForWebGLReady(page, ingestOptions, warnings), "waitForWebGLReady");
1402
- webglDetection = webglResult.detection;
1403
- webglWait = webglResult.wait;
1404
- if (webglDetection.detected && (0, logger_1.isDevelopment)()) {
1405
- logger_1.logger.info("[PageIngestAdapter] WebGL site detected", {
1406
- canvasCount: webglDetection.canvasCount,
1407
- webgl1Count: webglDetection.webgl1Count,
1408
- webgl2Count: webglDetection.webgl2Count,
1409
- threeJsDetected: webglDetection.threeJsDetected,
1410
- frameRateStable: webglWait?.frameRateStable,
1411
- lastFrameRate: webglWait?.lastFrameRate,
1412
- });
1413
- }
1414
- }
1415
- catch (e) {
1416
- // Graceful Degradation: WebGL待機失敗時も処理を継続
1417
- const errorMessage = e instanceof Error ? e.message : String(e);
1418
- warnings.push({
1419
- code: "WEBGL_WAIT_ERROR",
1420
- message: `WebGL adaptive wait failed: ${errorMessage}`,
1421
- });
1422
- if ((0, logger_1.isDevelopment)()) {
1423
- logger_1.logger.warn("[PageIngestAdapter] WebGL adaptive wait failed, continuing", {
1424
- error: errorMessage,
1425
- });
1426
- }
1427
- }
1428
- }
1429
- // ステップ3: 追加の固定待機時間(アニメーション完了用)
1430
- if (ingestOptions.waitForTimeout && ingestOptions.waitForTimeout > 0) {
1431
- if ((0, logger_1.isDevelopment)()) {
1432
- logger_1.logger.debug("[PageIngestAdapter] Step 3: Additional wait", {
1433
- waitForTimeout: ingestOptions.waitForTimeout,
1434
- });
1435
- }
1436
- await page.waitForTimeout(ingestOptions.waitForTimeout);
1437
- }
1438
- // WebGLサイトかどうかでタイムアウトを調整
1439
- const isWebGLSiteForTimeout = webglDetection?.detected ?? false;
1440
- const timeoutMultiplier = isWebGLSiteForTimeout ? OPERATION_TIMEOUTS.WEBGL_MULTIPLIER : 1;
1441
- // HTML取得(操作レベルタイムアウト付き)
1442
- const html = await withTimeout(page.content(), OPERATION_TIMEOUTS.CONTENT_EXTRACTION * timeoutMultiplier, "page.content()");
1443
- // メタデータ抽出(操作レベルタイムアウト付き)
1444
- const metadata = await withTimeout(this.extractMetadata(page), OPERATION_TIMEOUTS.METADATA_EXTRACTION * timeoutMultiplier, "extractMetadata");
1445
- // ビューポート情報取得(操作レベルタイムアウト付き)
1446
- const viewportInfo = await withTimeout(this.getViewportInfo(page, viewport), OPERATION_TIMEOUTS.VIEWPORT_INFO * timeoutMultiplier, "getViewportInfo");
1447
- // スクリーンショット取得(skipScreenshot: true の場合はスキップ)
1448
- let screenshots;
1449
- if (!ingestOptions.skipScreenshot) {
1450
- // WebGLサイトの場合はスクリーンショットタイムアウトを延長(120秒)
1451
- // 重い3Dサイトはフォント読み込みやレンダリングに時間がかかるため
1452
- const isWebGLSite = webglDetection?.detected ?? false;
1453
- const screenshotTimeout = isWebGLSite ? 120000 : 30000;
1454
- try {
1455
- // WebGLサイトではfullPageを強制無効化(SwiftShaderで極めて遅いため)
1456
- // フルページスクロール+レンダリングはSwiftShaderで数分〜タイムアウトになる
1457
- const effectiveFullPage = isWebGLSite ? false : (ingestOptions.fullPage ?? true);
1458
- if ((0, logger_1.isDevelopment)()) {
1459
- if (isWebGLSite) {
1460
- logger_1.logger.debug("[PageIngestAdapter] WebGL site detected: using viewport-only screenshot (fullPage disabled)", {
1461
- timeout: screenshotTimeout,
1462
- originalFullPage: ingestOptions.fullPage ?? true,
1463
- effectiveFullPage,
1464
- });
1465
- }
1466
- else {
1467
- logger_1.logger.debug("[PageIngestAdapter] Taking screenshot", {
1468
- timeout: screenshotTimeout,
1469
- fullPage: effectiveFullPage,
1470
- });
1471
- }
1472
- }
1473
- // Lazy Loading発火: fullPage screenshot前にページ全体をスクロール
1474
- // Trigger Lazy Loading: scroll through entire page before fullPage screenshot
1475
- // IntersectionObserverベースのLazy Loadingはビューポート外では発火しないため、
1476
- // スクロールで各セクションをビューポート内に入れてコンテンツを描画させる
1477
- if (effectiveFullPage) {
1478
- try {
1479
- const scrollHeight = await page.evaluate(() => document.documentElement.scrollHeight);
1480
- const viewportHeight = await page.evaluate(() => window.innerHeight);
1481
- // SEC: NaN/Infinity防御 — 無効値の場合はスクロールスキップ
1482
- // SEC: NaN/Infinity defense — skip scroll on invalid dimensions
1483
- if (!Number.isFinite(scrollHeight) ||
1484
- !Number.isFinite(viewportHeight) ||
1485
- scrollHeight <= 0) {
1486
- if ((0, logger_1.isDevelopment)()) {
1487
- logger_1.logger.debug("[PageIngestAdapter] Skipping lazy loading scroll: invalid dimensions", {
1488
- scrollHeight,
1489
- viewportHeight,
1490
- });
1491
- }
1492
- }
1493
- else {
1494
- const scrollStep = Math.max(viewportHeight, LAZY_SCROLL_MIN_STEP_PX);
1495
- const maxScrollIterations = LAZY_SCROLL_MAX_ITERATIONS;
1496
- let iterations = 0;
1497
- for (let y = 0; y < scrollHeight && iterations < maxScrollIterations; y += scrollStep) {
1498
- await page.evaluate((sy) => window.scrollTo(0, sy), y);
1499
- // requestAnimationFrame 2フレーム完了待ち + 2秒タイムアウトガード
1500
- // Wait for 2 rAF frames + 2s timeout guard (consistent with section-screenshot-fallback.service.ts)
1501
- await Promise.race([
1502
- page.evaluate(() => new Promise((resolve) => {
1503
- requestAnimationFrame(() => requestAnimationFrame(() => resolve()));
1504
- })),
1505
- page.waitForTimeout(RAF_TIMEOUT_MS),
1506
- ]).catch(() => {
1507
- /* non-fatal */
1508
- });
1509
- iterations++;
1510
- }
1511
- // 先頭に戻す / Scroll back to top
1512
- await page.evaluate(() => window.scrollTo(0, 0));
1513
- // 描画安定待ち / Wait for paint stabilization
1514
- await page.waitForTimeout(LAZY_SCROLL_STABILIZE_MS);
1515
- if ((0, logger_1.isDevelopment)()) {
1516
- logger_1.logger.debug("[PageIngestAdapter] Lazy loading scroll completed", {
1517
- scrollHeight,
1518
- viewportHeight,
1519
- iterations,
1520
- });
1521
- }
1522
- }
1523
- }
1524
- catch (scrollError) {
1525
- // Graceful Degradation: スクロール失敗時もスクリーンショットは続行
1526
- // Graceful Degradation: continue screenshot even if scroll fails
1527
- logger_1.logger.warn("[PageIngestAdapter] Pre-screenshot scroll failed (non-fatal)", {
1528
- error: scrollError instanceof Error ? scrollError.message : String(scrollError),
1529
- });
1530
- }
1531
- }
1532
- const screenshotBuffer = await withGlobalTimeout(page.screenshot({
1533
- fullPage: effectiveFullPage,
1534
- type: "png",
1535
- timeout: screenshotTimeout,
1536
- }), "page.screenshot");
1537
- const screenshotBase64 = screenshotBuffer.toString("base64");
1538
- screenshots = [
1539
- {
1540
- viewportName: "desktop",
1541
- viewport,
1542
- data: screenshotBase64,
1543
- format: "png",
1544
- fullPage: effectiveFullPage,
1545
- size: screenshotBuffer.length,
1546
- },
1547
- ];
1548
- }
1549
- catch (screenshotError) {
1550
- // Graceful Degradation: スクリーンショット失敗時も続行
1551
- const errorMessage = screenshotError instanceof Error ? screenshotError.message : String(screenshotError);
1552
- warnings.push({
1553
- code: "SCREENSHOT_FAILED",
1554
- message: `Screenshot capture failed: ${errorMessage}. Analysis will continue without screenshot.`,
1555
- });
1556
- if ((0, logger_1.isDevelopment)()) {
1557
- logger_1.logger.warn("[PageIngestAdapter] Screenshot failed, continuing without screenshot", {
1558
- error: errorMessage,
1559
- isWebGLSite,
1560
- fullPage: ingestOptions.fullPage ?? true,
1561
- });
1562
- }
1563
- }
1564
- }
1565
- // Computed Styles取得(includeComputedStyles: true の場合のみ)
1566
- let computedStyles;
1567
- if (ingestOptions.includeComputedStyles) {
1568
- computedStyles = await this.extractComputedStyles(page);
1569
- }
1570
- if ((0, logger_1.isDevelopment)()) {
1571
- logger_1.logger.info("[PageIngestAdapter] Ingest completed", {
1572
- url,
1573
- finalUrl,
1574
- htmlSize: html.length,
1575
- hasScreenshot: !!screenshots,
1576
- hasComputedStyles: !!computedStyles,
1577
- computedStylesCount: computedStyles?.length ?? 0,
1578
- webglDetected: webglDetection?.detected ?? false,
1579
- warningCount: warnings.length,
1580
- });
1581
- }
1582
- // 結果オブジェクトを構築(undefinedプロパティを除外)
1583
- const result = {
1584
- success: true,
1585
- url,
1586
- finalUrl,
1587
- html,
1588
- htmlSize: html.length,
1589
- viewportInfo,
1590
- metadata,
1591
- ingestedAt: new Date(),
1592
- source: {
1593
- type: ingestOptions.sourceType ?? "user_provided",
1594
- usageScope: ingestOptions.usageScope ?? "inspiration_only",
1595
- },
1596
- };
1597
- // screenshotsは値がある場合のみ設定
1598
- if (screenshots) {
1599
- result.screenshots = screenshots;
1600
- }
1601
- // computedStylesは値がある場合のみ設定
1602
- if (computedStyles) {
1603
- result.computedStyles = computedStyles;
1604
- }
1605
- // WebGL検出結果(検出された場合のみ設定)
1606
- if (webglDetection?.detected) {
1607
- result.webglDetection = webglDetection;
1608
- if (webglWait) {
1609
- result.webglWait = webglWait;
1610
- }
1611
- }
1612
- // 警告がある場合のみ設定
1613
- if (warnings.length > 0) {
1614
- result.warnings = warnings;
1615
- }
1616
- // 正常完了時はグローバルタイムアウトをクリア
1617
- if (globalTimeoutId) {
1618
- clearTimeout(globalTimeoutId);
1619
- }
1620
- return result;
1621
- }
1622
- catch (error) {
1623
- // エラー発生時もグローバルタイムアウトをクリア
1624
- if (globalTimeoutId) {
1625
- clearTimeout(globalTimeoutId);
1626
- }
1627
- // エラー処理
1628
- const errorMessage = error instanceof Error ? error.message : String(error);
1629
- if ((0, logger_1.isDevelopment)()) {
1630
- logger_1.logger.error("[PageIngestAdapter] Ingest failed", {
1631
- url,
1632
- error: errorMessage,
1633
- });
1634
- }
1635
- // エラー結果を返す
1636
- return {
1637
- success: false,
1638
- error: errorMessage,
1639
- url,
1640
- finalUrl: url,
1641
- html: "",
1642
- htmlSize: 0,
1643
- viewportInfo: {
1644
- documentWidth: 0,
1645
- documentHeight: 0,
1646
- viewportWidth: 0,
1647
- viewportHeight: 0,
1648
- scrollHeight: 0,
1649
- },
1650
- metadata: { title: "" },
1651
- ingestedAt: new Date(),
1652
- source: {
1653
- type: options.sourceType ?? "user_provided",
1654
- usageScope: options.usageScope ?? "inspiration_only",
1655
- },
1656
- };
1657
- }
1658
- finally {
1659
- // リソースクリーンアップ
1660
- if (page) {
1661
- await page.close().catch(() => { });
1662
- }
1663
- if (context) {
1664
- await context.close().catch(() => { });
1665
- }
1666
- // 専用ブラウザを使用した場合はブラウザも閉じる
1667
- // BrowserProcessManagerを使用して安全にクローズ
1668
- if (dedicatedBrowser) {
1669
- if ((0, logger_1.isDevelopment)()) {
1670
- logger_1.logger.debug("[PageIngestAdapter] Closing dedicated browser");
1671
- }
1672
- if (processManager) {
1673
- // BrowserProcessManagerを使用して安全にクローズ(タイムアウト10秒)
1674
- const closed = await processManager.closeWithTimeout(10000);
1675
- if (!closed && (0, logger_1.isDevelopment)()) {
1676
- logger_1.logger.warn("[PageIngestAdapter] Dedicated browser close timed out in finally block");
1677
- }
1678
- }
1679
- else {
1680
- // processManagerがない場合は従来の方法でクローズ
1681
- await dedicatedBrowser.close().catch(() => { });
1682
- }
1683
- dedicatedBrowser = null;
1684
- processManager = null;
1685
- }
1686
- }
1687
- }
1688
- /**
1689
- * ブラウザを終了
1690
- */
1691
- async close() {
1692
- if (this.browser) {
1693
- await this.browser.close();
1694
- this.browser = null;
1695
- if ((0, logger_1.isDevelopment)()) {
1696
- logger_1.logger.info("[PageIngestAdapter] Browser closed");
1697
- }
1698
- }
1699
- }
1700
- }
1701
- // シングルトンインスタンス
1702
- exports.pageIngestAdapter = new PageIngestAdapter();
1703
- // プロセスイベントリスナー重複登録防止フラグ
1704
- let processListenersRegistered = false;
1705
- // プロセス終了時にブラウザを閉じる(1回だけ登録)
1706
- if (!processListenersRegistered) {
1707
- processListenersRegistered = true;
1708
- process.on("beforeExit", async () => {
1709
- await exports.pageIngestAdapter.close();
1710
- });
1711
- process.on("SIGINT", async () => {
1712
- await exports.pageIngestAdapter.close();
1713
- process.exit(0);
1714
- });
1715
- process.on("SIGTERM", async () => {
1716
- await exports.pageIngestAdapter.close();
1717
- process.exit(0);
1718
- });
1719
- }
1720
- // =============================================
1721
- // 開発環境ログ
1722
- // =============================================
1723
- if ((0, logger_1.isDevelopment)()) {
1724
- logger_1.logger.debug("[PageIngestAdapter] Module loaded (Playwright direct integration)");
1725
- }
1726
- //# sourceMappingURL=page-ingest-adapter.js.map