@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,1659 +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.executeSyncProcessing = executeSyncProcessing;
6
- /**
7
- * page.analyze 同期処理ロジック
8
- *
9
- * analyze.tool.ts から分離された executeSyncProcessing 関数。
10
- * MCP Tool handler(入力バリデーション・SSRF・async判定)は呼び出し元に残し、
11
- * ここでは同期モードの分析処理本体を担当する。
12
- *
13
- * @module tools/page/handlers/sync-processing
14
- */
15
- const uuid_1 = require("uuid");
16
- const logger_1 = require("../../../utils/logger");
17
- const url_normalizer_1 = require("../../../utils/url-normalizer");
18
- const url_validator_1 = require("../../../utils/url-validator");
19
- const html_sanitizer_1 = require("../../../utils/html-sanitizer");
20
- const core_1 = require("@reftrixmcp/core");
21
- const page_ingest_adapter_1 = require("../../../services/page-ingest-adapter");
22
- const external_css_fetcher_1 = require("../../../services/external-css-fetcher");
23
- // Responsive Analysis Services
24
- const responsive_1 = require("../../../services/responsive");
25
- // Embedding統合用インポート
26
- const embedding_handler_1 = require("./embedding-handler");
27
- // DB保存ロジック
28
- const db_handler_1 = require("./db-handler");
29
- // Layout Handler (Phase2)
30
- const layout_handler_1 = require("./layout-handler");
31
- // Result Builder (Phase3)
32
- const result_builder_1 = require("./result-builder");
33
- // Narrative Handler (v0.1.0)
34
- const narrative_handler_1 = require("./narrative-handler");
35
- // Motion Handler (Phase4)
36
- const motion_handler_1 = require("./motion-handler");
37
- // JS Animation Handler(DB保存用 + Embedding生成)
38
- const js_animation_handler_1 = require("./js-animation-handler");
39
- // Quality Handler (Phase4)
40
- const quality_handler_1 = require("./quality-handler");
41
- // VideoMode DB保存用ヘルパー(同期/非同期モード共有)
42
- const frame_analysis_save_helper_1 = require("../../../services/motion/frame-analysis-save.helper");
43
- const schemas_1 = require("../schemas");
44
- // タイムアウトユーティリティ
45
- const timeout_utils_1 = require("./timeout-utils");
46
- // Vision CPU完走保証 Phase 4: 早期ハードウェア検出
47
- const hardware_detector_1 = require("../../../services/vision/hardware-detector");
48
- // WebGL検出ユーティリティ
49
- const webgl_detector_1 = require("./webgl-detector");
50
- // WebGL事前推定
51
- const webgl_pre_detector_1 = require("./webgl-pre-detector");
52
- // Pre-flight Probe Service
53
- const webdesign_core_1 = require("@reftrixmcp/webdesign-core");
54
- // リトライ戦略
55
- const retry_strategy_1 = require("./retry-strategy");
56
- // =====================================================
57
- // デフォルトサービス実装
58
- // =====================================================
59
- /**
60
- * デフォルトのHTML取得(PageIngestAdapter実装)
61
- * React/Vue/Next.js等のJS駆動サイトに対応するため、DOM安定化待機を使用
62
- */
63
- async function defaultFetchHtml(url, options) {
64
- if ((0, logger_1.isDevelopment)()) {
65
- logger_1.logger.debug("[page.analyze] defaultFetchHtml called", {
66
- url,
67
- timeout: options.timeout,
68
- waitUntil: options.waitUntil,
69
- hasViewport: !!options.viewport,
70
- });
71
- }
72
- // PageIngestAdapterを使用(DOM安定化待機、ローディング要素待機対応)
73
- // exactOptionalPropertyTypes対応: undefinedの可能性がある値は条件付きで含める
74
- const ingestOptions = {
75
- url,
76
- fullPage: true,
77
- // React/Vue/Next.js対応: DOM安定化待機(デフォルト有効)
78
- waitForDomStable: true,
79
- domStableTimeout: 1000, // 1秒間DOMが安定するまで待機
80
- // ローディングアニメーション対応: 一般的なローディング要素を待機
81
- waitForSelectorHidden: '.loading, .loader, .loadingElement, [data-loading], [aria-busy="true"]',
82
- // コンテンツ要素の可視性待機: 実際のコンテンツ(見出し、セクション)が表示されるまで待機
83
- waitForContentVisible: "h1:not(.sr-only), h2:not(.sr-only), section:not(.sr-only), [data-section], article",
84
- // ユーザーインタラクション模倣: マウス移動でローディング解除するサイト対応
85
- simulateUserInteraction: true,
86
- // 追加の固定待機(アニメーション完了用)
87
- waitForTimeout: 3000, // 3秒に増加
88
- // Computed Styles取得(htmlSnippetにインラインスタイル適用用)
89
- includeComputedStyles: options.includeComputedStyles ?? true,
90
- // WebGL/3Dサイト対応: 適応的待機戦略(デフォルト有効)
91
- // Canvas/WebGL検出、Three.js等3Dライブラリ検出、フレームレート安定化待機
92
- adaptiveWebGLWait: true,
93
- };
94
- // オプショナルなプロパティを条件付きで追加
95
- if (options.timeout !== undefined) {
96
- ingestOptions.timeout = options.timeout;
97
- }
98
- if (options.waitUntil !== undefined) {
99
- ingestOptions.waitUntil = options.waitUntil;
100
- }
101
- if (options.viewport !== undefined) {
102
- ingestOptions.viewport = options.viewport;
103
- }
104
- // スクリーンショットをスキップ(WebGL/3Dサイトでのタイムアウト防止)
105
- if (options.skipScreenshot) {
106
- ingestOptions.skipScreenshot = true;
107
- }
108
- // グローバルタイムアウトを計算(ユーザー指定 or デフォルト30秒)
109
- // 内部操作にはバッファを持たせるため、フェッチタイムアウトは指定値の1.5倍を使用
110
- const fetchTimeout = (options.timeout ?? 30000) * 1.5;
111
- if ((0, logger_1.isDevelopment)()) {
112
- logger_1.logger.debug("[page.analyze] defaultFetchHtml starting with timeout", {
113
- url,
114
- userTimeout: options.timeout,
115
- fetchTimeout,
116
- });
117
- }
118
- // グローバルタイムアウトラッパーで囲む
119
- // WebGLサイトでChromiumがハングした場合でもタイムアウトを強制する
120
- const result = await (0, timeout_utils_1.withTimeout)(page_ingest_adapter_1.pageIngestAdapter.ingest(ingestOptions), fetchTimeout, `page.analyze fetchHtml for ${url}`);
121
- if (!result.success) {
122
- throw new Error(result.error || "Failed to fetch page");
123
- }
124
- if ((0, logger_1.isDevelopment)()) {
125
- logger_1.logger.debug("[page.analyze] defaultFetchHtml completed", {
126
- url,
127
- htmlLength: result.html.length,
128
- hasTitle: !!result.metadata.title,
129
- hasDescription: !!result.metadata.description,
130
- hasScreenshot: !!result.screenshots?.length,
131
- hasComputedStyles: !!result.computedStyles?.length,
132
- computedStylesCount: result.computedStyles?.length ?? 0,
133
- });
134
- }
135
- // 戻り値を構築(exactOptionalPropertyTypes対応)
136
- const returnValue = {
137
- html: result.html,
138
- title: result.metadata.title || undefined,
139
- description: result.metadata.description || undefined,
140
- screenshot: result.screenshots?.[0]?.data,
141
- };
142
- // computedStylesがある場合のみ含める
143
- if (result.computedStyles && result.computedStyles.length > 0) {
144
- returnValue.computedStyles = result.computedStyles;
145
- }
146
- return returnValue;
147
- }
148
- /**
149
- * HTMLからメタデータを抽出
150
- */
151
- function extractMetadata(html, fetchedTitle, fetchedDescription) {
152
- const metadata = {};
153
- // タイトル
154
- if (fetchedTitle) {
155
- metadata.title = fetchedTitle;
156
- }
157
- else {
158
- const titleMatch = html.match(/<title[^>]*>([^<]*)<\/title>/i);
159
- if (titleMatch && titleMatch[1]) {
160
- metadata.title = titleMatch[1].trim();
161
- }
162
- }
163
- // description
164
- if (fetchedDescription) {
165
- metadata.description = fetchedDescription;
166
- }
167
- else {
168
- const descMatch = html.match(/<meta[^>]*name=["']description["'][^>]*content=["']([^"']*)["']/i);
169
- if (descMatch && descMatch[1]) {
170
- metadata.description = descMatch[1].trim();
171
- }
172
- }
173
- // OG image
174
- const ogImageMatch = html.match(/<meta[^>]*property=["']og:image["'][^>]*content=["']([^"']*)["']/i);
175
- if (ogImageMatch && ogImageMatch[1]) {
176
- try {
177
- new URL(ogImageMatch[1]);
178
- metadata.ogImage = ogImageMatch[1];
179
- }
180
- catch {
181
- // 無効なURLは無視
182
- }
183
- }
184
- // Favicon
185
- const faviconMatch = html.match(/<link[^>]*rel=["'](?:shortcut )?icon["'][^>]*href=["']([^"']*)["']/i);
186
- if (faviconMatch && faviconMatch[1]) {
187
- try {
188
- new URL(faviconMatch[1]);
189
- metadata.favicon = faviconMatch[1];
190
- }
191
- catch {
192
- // 相対パスや無効なURLは無視
193
- }
194
- }
195
- return metadata;
196
- }
197
- // =====================================================
198
- // メイン同期処理関数
199
- // =====================================================
200
- /**
201
- * page.analyze 同期処理の本体
202
- *
203
- * pageAnalyzeHandler から分離され、570秒ハードタイムアウトガードで保護される。
204
- * 入力バリデーション・SSRF・async mode 判定は呼び出し元で完了済み。
205
- *
206
- * @param validated - バリデーション済みの入力
207
- * @param normalizedUrl - SSRF検証済みの正規化URL
208
- * @param overallStartTime - 処理開始時刻(ms)
209
- * @param deps - DI依存(サービスファクトリ、Prismaクライアント)
210
- * @param progressContext - MCP進捗報告コンテキスト
211
- */
212
- async function executeSyncProcessing(validated, normalizedUrl, overallStartTime, deps, progressContext) {
213
- // サービス取得
214
- const service = deps.getService();
215
- const fetchHtml = service.fetchHtml ?? defaultFetchHtml;
216
- const analyzeLayout = service.analyzeLayout ?? layout_handler_1.defaultAnalyzeLayout;
217
- const detectMotion = service.detectMotion ?? motion_handler_1.defaultDetectMotion;
218
- const evaluateQuality = service.evaluateQuality ?? quality_handler_1.defaultEvaluateQuality;
219
- // HTML取得結果(リトライループで設定される)
220
- // attemptSucceeded=true の場合のみ有効な値が入る
221
- let html = ""; // TypeScript definite assignment のため初期化
222
- let fetchedTitle;
223
- let fetchedDescription;
224
- let fetchedScreenshot;
225
- let fetchedComputedStyles;
226
- // =====================================================
227
- // 事前WebGL推定とタイムアウト先制設定(v0.1.0)
228
- // =====================================================
229
- // HTML取得前にURLパターンからWebGLサイトかを推定し、
230
- // タイムアウトを先制的に延長することで、WebGLサイトでの
231
- // HTML取得タイムアウトを防止する
232
- const preDetection = (0, webgl_pre_detector_1.preDetectWebGL)(validated.url);
233
- const preAdjustedTimeout = preDetection.isLikelyWebGL
234
- ? Math.min((validated.timeout ?? 120000) * preDetection.timeoutMultiplier, 600000 // 最大10分
235
- )
236
- : (validated.timeout ?? 120000);
237
- if ((0, logger_1.isDevelopment)() && preDetection.isLikelyWebGL) {
238
- logger_1.logger.info("[page.analyze] WebGL pre-detection triggered", {
239
- url: validated.url,
240
- confidence: preDetection.confidence,
241
- matchedDomain: preDetection.matchedDomain,
242
- matchedPattern: preDetection.matchedPattern,
243
- originalTimeout: validated.timeout,
244
- preAdjustedTimeout,
245
- timeoutMultiplier: preDetection.timeoutMultiplier,
246
- });
247
- }
248
- // =====================================================
249
- // Pre-flight Probe による自動タイムアウト調整(v0.1.0)
250
- // =====================================================
251
- // auto_timeout=true の場合、URLの複雑度を事前分析して最適なタイムアウトを計算
252
- // WebGL、SPA、重いフレームワークを検出し、タイムアウトを動的に調整
253
- let probeResult = null;
254
- let probeCalculatedTimeout = preAdjustedTimeout;
255
- if (validated.auto_timeout === true) {
256
- try {
257
- if ((0, logger_1.isDevelopment)()) {
258
- logger_1.logger.info("[page.analyze] Pre-flight probe started", { url: validated.url });
259
- }
260
- probeResult = await webdesign_core_1.preflightProbeService.probe(validated.url);
261
- // プローブ結果からタイムアウトを決定
262
- // ユーザー指定がある場合はそれを上限として使用
263
- const userTimeout = validated.timeout ?? 120000;
264
- probeCalculatedTimeout = Math.min(Math.max(probeResult.calculatedTimeoutMs, 30000), // 最低30秒
265
- Math.max(userTimeout, 600000) // ユーザー指定または最大10分のどちらか大きい方
266
- );
267
- if ((0, logger_1.isDevelopment)()) {
268
- logger_1.logger.info("[page.analyze] Pre-flight probe completed", {
269
- url: validated.url,
270
- calculatedTimeoutMs: probeResult.calculatedTimeoutMs,
271
- complexityScore: probeResult.complexityScore,
272
- hasWebGL: probeResult.hasWebGL,
273
- hasSPA: probeResult.hasSPA,
274
- hasHeavyFramework: probeResult.hasHeavyFramework,
275
- probeCalculatedTimeout,
276
- userTimeout,
277
- responseTimeMs: probeResult.responseTimeMs,
278
- });
279
- }
280
- }
281
- catch (probeError) {
282
- // プローブ失敗時はフォールバック(preAdjustedTimeoutを使用)
283
- logger_1.logger.warn("[page.analyze] Pre-flight probe failed, using fallback timeout", {
284
- url: validated.url,
285
- error: probeError instanceof Error ? probeError.message : String(probeError),
286
- fallbackTimeout: preAdjustedTimeout,
287
- });
288
- // probeResultはnullのまま、probeCalculatedTimeoutはpreAdjustedTimeoutのまま
289
- }
290
- }
291
- // auto_timeout=falseまたはプローブ失敗時はpreAdjustedTimeoutを使用
292
- const finalBaseTimeout = validated.auto_timeout === true && probeResult ? probeCalculatedTimeout : preAdjustedTimeout;
293
- // =====================================================
294
- // HTML取得(自動リトライ対応 v0.1.0)
295
- // =====================================================
296
- // サイト種別(SiteTier)に基づくリトライ戦略を適用
297
- // - ultra-heavy/heavy: タイムアウト累積なし、ネットワークエラーのみリトライ
298
- // - webgl: 軽い累積(1.2倍)、全エラーでリトライ
299
- // - normal: 従来動作(1.5倍累積)
300
- const viewport = validated.layoutOptions?.viewport;
301
- // useVision=true の場合はスクリーンショットが必要(visualFeatures抽出のため)
302
- // Phase 4-2: Decision 019bd65f-29c5-795e-9c81-cea829b3d9fe
303
- const useVision = validated.layoutOptions?.useVision === true;
304
- // narrativeOptions.includeVision=true の場合もスクリーンショットが必要(世界観分析用)
305
- const useNarrativeVision = validated.narrativeOptions?.includeVision === true;
306
- const skipScreenshot = useVision || useNarrativeVision
307
- ? false // useVision または narrativeOptions.includeVision 時は常にスクリーンショット取得
308
- : validated.layoutOptions?.includeScreenshot !== true;
309
- // サイト種別を検出してリトライ戦略を取得
310
- const siteTier = (0, webgl_pre_detector_1.detectSiteTier)(validated.url, preDetection);
311
- const retryStrategy = (0, retry_strategy_1.getRetryStrategy)(siteTier);
312
- // ユーザー指定がある場合はそちらを優先
313
- const effectiveRetryStrategy = {
314
- ...retryStrategy,
315
- autoRetry: validated.auto_retry ?? retryStrategy.autoRetry,
316
- maxRetries: validated.max_retries ?? retryStrategy.maxRetries,
317
- };
318
- // MCP 600秒上限チェック(警告ログ)
319
- const maxTotalTime = (0, retry_strategy_1.calculateMaxTotalTime)(finalBaseTimeout, effectiveRetryStrategy);
320
- if ((0, logger_1.isDevelopment)() && maxTotalTime > 600000) {
321
- logger_1.logger.warn("[page.analyze] Max total time may exceed MCP 600s limit", {
322
- siteTier,
323
- baseTimeout: finalBaseTimeout,
324
- maxTotalTime,
325
- maxRetries: effectiveRetryStrategy.maxRetries,
326
- timeoutMultiplier: effectiveRetryStrategy.timeoutMultiplier,
327
- autoTimeout: validated.auto_timeout,
328
- probeUsed: probeResult !== null,
329
- });
330
- }
331
- /**
332
- * リトライ設定を取得
333
- * @param attempt 試行回数(0-indexed)
334
- */
335
- const getRetryConfig = (attempt) => {
336
- // 1回目: 元の設定(auto_timeout時はprobeで計算されたタイムアウト)
337
- if (attempt === 0) {
338
- return {
339
- timeout: finalBaseTimeout,
340
- waitUntil: validated.waitUntil !== "load" ? validated.waitUntil : undefined,
341
- };
342
- }
343
- // リトライ時: 乗数を累積適用(MCP 600秒上限を考慮)
344
- // timeoutMultiplier=1.0の場合は累積なし
345
- const multiplier = Math.pow(effectiveRetryStrategy.timeoutMultiplier, attempt);
346
- const newTimeout = Math.min(Math.round(finalBaseTimeout * multiplier), 600000 // MCP 600秒上限
347
- );
348
- return {
349
- timeout: newTimeout,
350
- waitUntil: "domcontentloaded",
351
- };
352
- };
353
- let lastError = null;
354
- const attemptCount = effectiveRetryStrategy.autoRetry ? effectiveRetryStrategy.maxRetries + 1 : 1;
355
- let attemptSucceeded = false;
356
- if ((0, logger_1.isDevelopment)()) {
357
- logger_1.logger.info("[page.analyze] Retry strategy determined", {
358
- url: validated.url,
359
- siteTier,
360
- autoRetry: effectiveRetryStrategy.autoRetry,
361
- maxRetries: effectiveRetryStrategy.maxRetries,
362
- timeoutMultiplier: effectiveRetryStrategy.timeoutMultiplier,
363
- retryOnlyOnNetworkError: effectiveRetryStrategy.retryOnlyOnNetworkError,
364
- baseTimeout: finalBaseTimeout,
365
- maxTotalTime,
366
- autoTimeout: validated.auto_timeout,
367
- probeUsed: probeResult !== null,
368
- });
369
- }
370
- for (let attempt = 0; attempt < attemptCount; attempt++) {
371
- const retryConfig = getRetryConfig(attempt);
372
- if ((0, logger_1.isDevelopment)() && attempt > 0) {
373
- logger_1.logger.info("[page.analyze] Retrying HTML fetch", {
374
- attempt: attempt + 1,
375
- maxAttempts: attemptCount,
376
- timeout: retryConfig.timeout,
377
- waitUntil: retryConfig.waitUntil ?? "load",
378
- previousError: lastError?.message,
379
- isNetworkError: lastError ? (0, retry_strategy_1.isNetworkError)(lastError) : false,
380
- });
381
- }
382
- try {
383
- const fetchResult = await fetchHtml(validated.url, {
384
- timeout: retryConfig.timeout,
385
- ...(retryConfig.waitUntil && { waitUntil: retryConfig.waitUntil }),
386
- ...(viewport && { viewport }),
387
- includeComputedStyles: true,
388
- skipScreenshot,
389
- });
390
- html = fetchResult.html;
391
- fetchedTitle = fetchResult.title;
392
- fetchedDescription = fetchResult.description;
393
- fetchedScreenshot = fetchResult.screenshot;
394
- fetchedComputedStyles = fetchResult.computedStyles;
395
- attemptSucceeded = true;
396
- if ((0, logger_1.isDevelopment)() && attempt > 0) {
397
- logger_1.logger.info("[page.analyze] Retry succeeded", {
398
- attempt: attempt + 1,
399
- timeout: retryConfig.timeout,
400
- waitUntil: retryConfig.waitUntil ?? "load",
401
- });
402
- }
403
- break; // 成功したらループを抜ける
404
- }
405
- catch (error) {
406
- lastError = error instanceof Error ? error : new Error(String(error));
407
- logger_1.logger.warn("[page.analyze] Fetch attempt failed", {
408
- attempt: attempt + 1,
409
- maxAttempts: attemptCount,
410
- error: lastError.message,
411
- url: validated.url,
412
- isNetworkError: (0, retry_strategy_1.isNetworkError)(lastError),
413
- });
414
- // shouldRetry で次の試行を判定
415
- if ((0, retry_strategy_1.shouldRetry)(lastError, attempt, effectiveRetryStrategy)) {
416
- // 待機時間を挟む
417
- await new Promise((resolve) => setTimeout(resolve, effectiveRetryStrategy.waitBetweenRetriesMs));
418
- continue;
419
- }
420
- // リトライしない場合はループを抜ける
421
- break;
422
- }
423
- }
424
- // 全試行失敗
425
- if (!attemptSucceeded) {
426
- if ((0, logger_1.isDevelopment)()) {
427
- logger_1.logger.error("[MCP Tool] page.analyze fetch error (all retries failed)", {
428
- error: lastError,
429
- url: validated.url,
430
- attempts: attemptCount,
431
- });
432
- }
433
- const errorMessage = lastError?.message ?? "Failed to fetch page";
434
- return {
435
- success: false,
436
- error: {
437
- code: (0, result_builder_1.determineErrorCode)(errorMessage),
438
- message: `${errorMessage} (after ${attemptCount} attempt${attemptCount > 1 ? "s" : ""})`,
439
- },
440
- };
441
- }
442
- // 外部CSS URLを抽出(サニタイズ前のHTMLから)
443
- // DOMPurifyで<link>タグが除去される問題の回避策
444
- const preExtractedCssUrls = (0, external_css_fetcher_1.extractCssUrls)(html, normalizedUrl).map((u) => u.url);
445
- if ((0, logger_1.isDevelopment)()) {
446
- logger_1.logger.debug("[page.analyze] Pre-extracted external CSS URLs", {
447
- count: preExtractedCssUrls.length,
448
- urls: preExtractedCssUrls.slice(0, 5), // 最初の5件のみログ
449
- });
450
- }
451
- // HTMLサニタイズ(XSS対策)
452
- // preserveDocumentStructure: true でドキュメント構造を保持
453
- // - <html lang>: aXe html-has-lang ルール(WCAG 2.1 AA)
454
- // - <title>: aXe document-title ルール
455
- // - 安全な<meta>: description, viewport, charset
456
- const sanitizedHtml = (0, html_sanitizer_1.sanitizeHtml)(html, { preserveDocumentStructure: true });
457
- // メタデータ抽出(サニタイズ前のHTMLからメタデータを取得)
458
- const metadata = extractMetadata(html, fetchedTitle, fetchedDescription);
459
- // =====================================================
460
- // WebGL検出とタイムアウト調整(v0.1.0)
461
- // =====================================================
462
- // WebGL/3Dコンテンツを早期検出
463
- const webglResult = (0, webgl_detector_1.detectWebGL)(html);
464
- // 元のタイムアウト値
465
- const originalTimeout = validated.timeout ?? 60000;
466
- // WebGL検出に基づいてタイムアウトを調整
467
- const timeoutAdjustment = (0, webgl_detector_1.adjustTimeoutForWebGL)(originalTimeout, webglResult);
468
- const effectiveTimeout = timeoutAdjustment.effectiveTimeout;
469
- if ((0, logger_1.isDevelopment)() && webglResult.detected) {
470
- logger_1.logger.info("[page.analyze] WebGL content detected", {
471
- libraries: webglResult.libraries,
472
- confidence: webglResult.confidence,
473
- originalTimeout,
474
- effectiveTimeout,
475
- timeoutExtended: timeoutAdjustment.extended,
476
- });
477
- }
478
- // =====================================================
479
- // Vision CPU完走保証 Phase 4: 早期ハードウェア検出とタイムアウト拡張
480
- // CPU環境でVision分析を使用する場合、全体タイムアウトを自動延長
481
- // useVisionは既に上で定義済み
482
- // =====================================================
483
- let cpuTimeoutExtended = false;
484
- let cpuEffectiveTimeout = effectiveTimeout;
485
- let hardwareInfoForTimeout;
486
- let detectedHardwareType = timeout_utils_1.HardwareType.GPU; // デフォルトはGPU(高速)
487
- if (useVision) {
488
- try {
489
- const hardwareDetector = new hardware_detector_1.HardwareDetector();
490
- const hardwareInfo = await hardwareDetector.detect();
491
- detectedHardwareType = hardwareInfo.type;
492
- if ((0, logger_1.isDevelopment)()) {
493
- logger_1.logger.info("[page.analyze] Early hardware detection for Vision CPU timeout", {
494
- hardwareType: hardwareInfo.type,
495
- vramBytes: hardwareInfo.vramBytes,
496
- isGpuAvailable: hardwareInfo.isGpuAvailable,
497
- useVision,
498
- });
499
- }
500
- // CPU環境かつVision有効時はタイムアウト拡張を計算
501
- const screenshotSizeBytes = fetchedScreenshot
502
- ? Buffer.from(fetchedScreenshot, "base64").length
503
- : undefined;
504
- // HardwareInfoForTimeout: imageSizeBytesはオプショナル
505
- hardwareInfoForTimeout =
506
- screenshotSizeBytes !== undefined
507
- ? {
508
- type: hardwareInfo.type,
509
- isVisionEnabled: true,
510
- imageSizeBytes: screenshotSizeBytes,
511
- }
512
- : {
513
- type: hardwareInfo.type,
514
- isVisionEnabled: true,
515
- };
516
- // CalculateEffectiveTimeoutOptions: imageSizeBytesはオプショナル
517
- const cpuTimeoutResult = screenshotSizeBytes !== undefined
518
- ? (0, timeout_utils_1.calculateEffectiveTimeout)({
519
- originalTimeout: effectiveTimeout, // WebGL調整後のタイムアウトをベースに
520
- hardwareType: hardwareInfo.type,
521
- isVisionEnabled: true,
522
- imageSizeBytes: screenshotSizeBytes,
523
- })
524
- : (0, timeout_utils_1.calculateEffectiveTimeout)({
525
- originalTimeout: effectiveTimeout,
526
- hardwareType: hardwareInfo.type,
527
- isVisionEnabled: true,
528
- });
529
- if (cpuTimeoutResult.extended) {
530
- cpuTimeoutExtended = true;
531
- cpuEffectiveTimeout = cpuTimeoutResult.effectiveTimeout;
532
- if ((0, logger_1.isDevelopment)()) {
533
- logger_1.logger.info("[page.analyze] CPU Vision timeout extended", {
534
- originalTimeout: effectiveTimeout,
535
- extendedTimeout: cpuEffectiveTimeout,
536
- reason: cpuTimeoutResult.reason,
537
- imageSizeBytes: screenshotSizeBytes,
538
- });
539
- }
540
- }
541
- }
542
- catch (hwError) {
543
- // ハードウェア検出失敗時はCPUと仮定(安全側)
544
- detectedHardwareType = timeout_utils_1.HardwareType.CPU;
545
- logger_1.logger.warn("[page.analyze] Early hardware detection failed, assuming CPU", {
546
- error: hwError instanceof Error ? hwError.message : "Unknown error",
547
- });
548
- // CPU仮定でタイムアウト拡張
549
- hardwareInfoForTimeout = {
550
- type: timeout_utils_1.HardwareType.CPU,
551
- isVisionEnabled: true,
552
- };
553
- const cpuTimeoutResult = (0, timeout_utils_1.calculateEffectiveTimeout)({
554
- originalTimeout: effectiveTimeout,
555
- hardwareType: timeout_utils_1.HardwareType.CPU,
556
- isVisionEnabled: true,
557
- });
558
- if (cpuTimeoutResult.extended) {
559
- cpuTimeoutExtended = true;
560
- cpuEffectiveTimeout = cpuTimeoutResult.effectiveTimeout;
561
- }
562
- }
563
- }
564
- // Vision CPU完走保証を考慮した最終的な有効タイムアウト
565
- // MCP 600秒ハードリミット対策: フェーズタイムアウト配分の元になる値を570秒に制限
566
- // これにより distributeTimeout() が各フェーズに過大なタイムアウトを割り当てることを防止
567
- // CPU Vision延長で600秒以上に膨らんでも、フェーズ配分は570秒ベースで計算される
568
- const MCP_HARD_LIMIT_MS = 570000; // MCP 600秒 - 30秒安全マージン
569
- const rawFinalEffectiveTimeout = cpuTimeoutExtended ? cpuEffectiveTimeout : effectiveTimeout;
570
- const finalEffectiveTimeout = Math.min(rawFinalEffectiveTimeout, MCP_HARD_LIMIT_MS);
571
- if ((0, logger_1.isDevelopment)() && rawFinalEffectiveTimeout > MCP_HARD_LIMIT_MS) {
572
- logger_1.logger.info("[page.analyze] finalEffectiveTimeout capped to MCP hard limit", {
573
- rawFinalEffectiveTimeout,
574
- cappedTo: MCP_HARD_LIMIT_MS,
575
- cpuTimeoutExtended,
576
- });
577
- }
578
- // =====================================================
579
- // ExecutionStatusTracker初期化(v0.1.0)
580
- // Vision CPU完走保証 Phase 4: cpuModeExtended, hardwareInfoを追加
581
- // =====================================================
582
- const timeoutStrategy = validated.timeout_strategy ?? "progressive";
583
- const partialResultsEnabled = validated.partial_results ?? true;
584
- // Vision CPU完走保証 Phase 4: hardwareInfoを条件付きで設定
585
- const executionTracker = hardwareInfoForTimeout
586
- ? new timeout_utils_1.ExecutionStatusTracker({
587
- originalTimeoutMs: originalTimeout,
588
- effectiveTimeoutMs: finalEffectiveTimeout,
589
- strategy: timeoutStrategy,
590
- partialResultsEnabled,
591
- webglDetected: webglResult.detected,
592
- timeoutExtended: timeoutAdjustment.extended || cpuTimeoutExtended,
593
- cpuModeExtended: cpuTimeoutExtended,
594
- hardwareInfo: {
595
- type: detectedHardwareType,
596
- vramBytes: 0, // 詳細情報はlayout-handler内で取得
597
- isGpuAvailable: detectedHardwareType === timeout_utils_1.HardwareType.GPU,
598
- },
599
- })
600
- : new timeout_utils_1.ExecutionStatusTracker({
601
- originalTimeoutMs: originalTimeout,
602
- effectiveTimeoutMs: finalEffectiveTimeout,
603
- strategy: timeoutStrategy,
604
- partialResultsEnabled,
605
- webglDetected: webglResult.detected,
606
- timeoutExtended: timeoutAdjustment.extended || cpuTimeoutExtended,
607
- cpuModeExtended: cpuTimeoutExtended,
608
- });
609
- // HTML取得成功を記録
610
- executionTracker.markCompleted("html");
611
- // スクリーンショット取得成功を記録(取得できた場合)
612
- if (fetchedScreenshot) {
613
- executionTracker.markCompleted("screenshot");
614
- }
615
- // 並列分析処理
616
- const features = validated.features ?? { layout: true, motion: true, quality: true };
617
- const warnings = [];
618
- // タイムアウト配分を計算(調整後のタイムアウトを使用)
619
- // 注意: enable_frame_capture はデフォルトで false
620
- // detect_js_animations / detect_webgl_animations はデフォルトで true (v0.1.0)
621
- // タイムアウト分配もこのデフォルト値を反映する必要がある
622
- const hasFrameCapture = validated.motionOptions?.enable_frame_capture === true; // デフォルト false
623
- const hasJsAnimation = validated.motionOptions?.detect_js_animations !== false; // デフォルト true (v0.1.0)
624
- // WebGL乗数を計算(adjustTimeoutForWebGLと同じロジック)
625
- // v0.1.0: JSアニメーション検出有効時にモーション検出タイムアウトも延長
626
- const webglMultiplier = webglResult.detected
627
- ? webglResult.confidence >= 0.9
628
- ? 2.5
629
- : webglResult.confidence >= 0.7
630
- ? 2.0
631
- : 1.5
632
- : 1.0;
633
- // 事前推定(preDetection)とHTML解析(webglResult)の両方を考慮して最大乗数を使用
634
- const effectiveWebglMultiplier = preDetection.isLikelyWebGL
635
- ? Math.max(webglMultiplier, preDetection.timeoutMultiplier)
636
- : webglMultiplier;
637
- // Vision CPU完走保証 Phase 4: finalEffectiveTimeoutとhardwareInfoForTimeoutを使用
638
- const phaseTimeouts = (0, timeout_utils_1.distributeTimeout)(finalEffectiveTimeout, // WebGL + CPU Vision拡張後のタイムアウト
639
- hasFrameCapture, hasJsAnimation, {
640
- detected: webglResult.detected || preDetection.isLikelyWebGL,
641
- multiplier: effectiveWebglMultiplier,
642
- }, hardwareInfoForTimeout // Vision CPU完走保証 Phase 4: ハードウェア情報を渡す
643
- );
644
- // =====================================================
645
- // Per-Phase Timeout Override (v0.1.0)
646
- // ユーザー指定の個別タイムアウトで計算値をオーバーライド
647
- // =====================================================
648
- if (validated.layoutTimeout !== undefined) {
649
- phaseTimeouts.layoutAnalysis = validated.layoutTimeout;
650
- }
651
- if (validated.motionTimeout !== undefined) {
652
- phaseTimeouts.motionDetection = validated.motionTimeout;
653
- }
654
- if (validated.qualityTimeout !== undefined) {
655
- phaseTimeouts.qualityEvaluation = validated.qualityTimeout;
656
- }
657
- // ExecutionStatusTrackerにフェーズタイムアウト設定を反映(v0.1.0)
658
- executionTracker.setPhaseTimeouts({
659
- layout: phaseTimeouts.layoutAnalysis,
660
- motion: phaseTimeouts.motionDetection,
661
- quality: phaseTimeouts.qualityEvaluation,
662
- });
663
- if ((0, logger_1.isDevelopment)()) {
664
- logger_1.logger.debug("[page.analyze] Phase timeouts calculated", {
665
- originalTimeout,
666
- effectiveTimeout,
667
- finalEffectiveTimeout, // Vision CPU完走保証 Phase 4
668
- hasFrameCapture,
669
- hasJsAnimation,
670
- phaseTimeouts,
671
- timeoutStrategy,
672
- partialResultsEnabled,
673
- userOverrides: {
674
- layoutTimeout: validated.layoutTimeout,
675
- motionTimeout: validated.motionTimeout,
676
- qualityTimeout: validated.qualityTimeout,
677
- },
678
- // Vision CPU完走保証 Phase 4
679
- cpuVisionExtension: {
680
- useVision,
681
- cpuTimeoutExtended,
682
- hardwareType: detectedHardwareType,
683
- },
684
- });
685
- }
686
- // 並列分析用の結果格納変数
687
- let layoutServiceResult = null;
688
- let motionServiceResult = null;
689
- let qualityServiceResult = null;
690
- // =====================================================
691
- // layout_first モード判定(v0.1.0)
692
- // WebGLサイトでレイアウト抽出を最優先し、モーション検出を軽量化
693
- // =====================================================
694
- const layoutFirstMode = validated.layout_first ?? "auto";
695
- const useLayoutFirst = layoutFirstMode === "always" ||
696
- (layoutFirstMode === "auto" && (webglResult.detected || preDetection.isLikelyWebGL));
697
- if ((0, logger_1.isDevelopment)() && useLayoutFirst) {
698
- logger_1.logger.info("[page.analyze] layout_first mode activated", {
699
- layoutFirstMode,
700
- webglDetected: webglResult.detected,
701
- preDetectionLikelyWebGL: preDetection.isLikelyWebGL,
702
- webglLibraries: webglResult.libraries,
703
- });
704
- }
705
- // =====================================================
706
- // layout_first モード時のタイムアウト再分配(v0.1.0)
707
- // モーション検出が軽量化されるため、その分をレイアウト分析に回す
708
- // =====================================================
709
- let effectivePhaseTimeouts = phaseTimeouts;
710
- if (useLayoutFirst) {
711
- // layout_first モードでは:
712
- // - モーション検出: ライブラリ検出 + CSS静的解析(45秒必要)
713
- // - レイアウト分析: 余った時間を追加
714
- // v0.1.0: 15秒→45秒に増加(CSS解析に時間がかかるWebGLサイト対応)
715
- const LAYOUT_FIRST_MOTION_TIMEOUT = 45000; // 45秒(CSS解析 + ライブラリ検出)
716
- const savedTime = phaseTimeouts.motionDetection - LAYOUT_FIRST_MOTION_TIMEOUT;
717
- const bonusLayoutTime = Math.max(0, savedTime);
718
- effectivePhaseTimeouts = {
719
- ...phaseTimeouts,
720
- motionDetection: LAYOUT_FIRST_MOTION_TIMEOUT,
721
- layoutAnalysis: phaseTimeouts.layoutAnalysis + bonusLayoutTime,
722
- };
723
- if ((0, logger_1.isDevelopment)()) {
724
- logger_1.logger.info("[page.analyze] layout_first: timeout reallocation", {
725
- originalMotionTimeout: phaseTimeouts.motionDetection,
726
- newMotionTimeout: LAYOUT_FIRST_MOTION_TIMEOUT,
727
- originalLayoutTimeout: phaseTimeouts.layoutAnalysis,
728
- newLayoutTimeout: effectivePhaseTimeouts.layoutAnalysis,
729
- savedTime,
730
- });
731
- }
732
- }
733
- // 並列分析Promiseを構築
734
- const analysisPromises = [];
735
- if (features.layout !== false) {
736
- // Vision解析用スクリーンショートを準備(useVision=true時のみ必要)
737
- const screenshotForVision = fetchedScreenshot
738
- ? { base64: fetchedScreenshot, mimeType: "image/png" }
739
- : undefined;
740
- // Computed StylesをhtmlSnippetにインラインスタイルとして適用するために渡す
741
- // preExtractedCssUrlsはサニタイズ前のHTMLから抽出した外部CSS URL
742
- // Vision CPU完走保証 Phase 3: visionOptionsを渡す
743
- // Vision CPU完走保証 Phase 4: progressContextを渡す
744
- const layoutPromise = analyzeLayout(sanitizedHtml, validated.layoutOptions, screenshotForVision, fetchedComputedStyles, normalizedUrl, preExtractedCssUrls, validated.visionOptions, progressContext);
745
- // withTimeoutAndTracking で Layout 分析にタイムアウトを適用(ExecutionStatusTracker統合)
746
- analysisPromises.push((0, timeout_utils_1.withTimeoutAndTracking)(layoutPromise, effectivePhaseTimeouts.layoutAnalysis, "layout-analysis", "layout", executionTracker, warnings).then((result) => {
747
- layoutServiceResult = result;
748
- }));
749
- }
750
- if (features.motion !== false) {
751
- // preExtractedCssUrlsをモーション検出にも渡す(サニタイズ前のHTMLから抽出済み)
752
- // DOMPurifyで<link>タグが除去される問題の回避策
753
- // =====================================================
754
- // layout_first モード時のモーション検出軽量化(v0.1.0)
755
- // WebGLサイトでは library_only モードで高速検出
756
- // =====================================================
757
- let effectiveMotionOptions = validated.motionOptions;
758
- if (useLayoutFirst) {
759
- // ユーザーが明示的にfetchExternalCss: trueを指定した場合は尊重(v0.1.0)
760
- // これにより、デザインデータ抽出目的での外部CSS取得が可能
761
- const userExplicitFetchExternalCss = validated.motionOptions?.fetchExternalCss;
762
- const effectiveFetchExternalCss = userExplicitFetchExternalCss === true ? true : false;
763
- effectiveMotionOptions = {
764
- ...validated.motionOptions,
765
- // library_only モードでライブラリ検出のみ実行(CDP/WebAnimations無効)
766
- // これにより 264秒 → 5-15秒 に短縮
767
- detect_js_animations: true,
768
- js_animation_options: {
769
- ...validated.motionOptions?.js_animation_options,
770
- enableCDP: false, // CDP無効(高速化)
771
- enableWebAnimations: false, // Web Animations API無効(高速化)
772
- enableLibraryDetection: true, // ライブラリ検出のみ有効
773
- waitTime: 500, // 短縮待機
774
- },
775
- // CSS解析は維持(高速)
776
- // v0.1.0: ユーザーが明示的に指定した場合は尊重、それ以外はデフォルトfalse(タイムアウト防止)
777
- fetchExternalCss: effectiveFetchExternalCss,
778
- maxPatterns: 50, // パターン数制限(メモリ節約)
779
- };
780
- if ((0, logger_1.isDevelopment)()) {
781
- logger_1.logger.info("[page.analyze] layout_first: motion detection using lightweight mode", {
782
- originalOptions: {
783
- detect_js_animations: validated.motionOptions?.detect_js_animations,
784
- fetchExternalCss: validated.motionOptions?.fetchExternalCss,
785
- },
786
- effectiveOptions: {
787
- detect_js_animations: true,
788
- enableCDP: false,
789
- enableWebAnimations: false,
790
- enableLibraryDetection: true,
791
- fetchExternalCss: effectiveFetchExternalCss,
792
- },
793
- });
794
- }
795
- }
796
- // extendedContextにlayout_firstモード情報を含める
797
- const motionExtendedContext = useLayoutFirst ? { layoutFirstModeEnabled: true } : undefined;
798
- const motionPromise = detectMotion(sanitizedHtml, validated.url, effectiveMotionOptions, undefined, // dbContext
799
- motionExtendedContext, // extendedContext(layout_firstモード情報を含む)
800
- preExtractedCssUrls // サニタイズ前に抽出した外部CSS URL
801
- );
802
- // withTimeoutAndTracking で Motion 検出にタイムアウトを適用(ExecutionStatusTracker統合)
803
- analysisPromises.push((0, timeout_utils_1.withTimeoutAndTracking)(motionPromise, effectivePhaseTimeouts.motionDetection, "motion-detection", "motion", executionTracker, warnings).then((result) => {
804
- motionServiceResult = result;
805
- }));
806
- }
807
- if (features.quality !== false) {
808
- const qualityPromise = evaluateQuality(sanitizedHtml, validated.qualityOptions);
809
- // withTimeoutAndTracking で Quality 評価にタイムアウトを適用(ExecutionStatusTracker統合)
810
- analysisPromises.push((0, timeout_utils_1.withTimeoutAndTracking)(qualityPromise, effectivePhaseTimeouts.qualityEvaluation, "quality-evaluation", "quality", executionTracker, warnings).then((result) => {
811
- qualityServiceResult = result;
812
- }));
813
- }
814
- // 並列分析を実行(withTimeoutAndTrackingで個別にハンドリング済み)
815
- // Strict戦略でエラーがスローされた場合はここでcatchされる
816
- try {
817
- await Promise.all(analysisPromises);
818
- }
819
- catch (error) {
820
- // Strict戦略でタイムアウトまたはエラーが発生した場合
821
- if (timeoutStrategy === "strict") {
822
- const errorMessage = error instanceof Error ? error.message : "Analysis failed";
823
- logger_1.logger.error("[page.analyze] Strict strategy: analysis failed", {
824
- error: errorMessage,
825
- executionStatus: executionTracker.toExecutionStatus(),
826
- });
827
- return {
828
- success: false,
829
- error: {
830
- code: schemas_1.PAGE_ANALYZE_ERROR_CODES.TIMEOUT_ERROR,
831
- message: "Analysis failed due to timeout or internal error",
832
- },
833
- };
834
- }
835
- // Progressive戦略では例外は発生しないはずだが、念のため無視して継続
836
- }
837
- // 結果を統合
838
- let layoutResult;
839
- let motionResult;
840
- let qualityResult;
841
- let narrativeResult;
842
- let layoutServiceResultForSave;
843
- let motionServiceResultForSave;
844
- let qualityServiceResultForSave;
845
- let narrativeHandlerResult;
846
- const isSummary = validated.summary ?? true;
847
- // Layout結果の処理
848
- if (layoutServiceResult) {
849
- layoutServiceResultForSave = layoutServiceResult;
850
- layoutResult = (0, result_builder_1.buildLayoutResult)(layoutServiceResult, isSummary, validated.layoutOptions);
851
- const warning = (0, result_builder_1.extractWarning)("layout", layoutServiceResult);
852
- if (warning)
853
- warnings.push(warning);
854
- }
855
- // Motion結果の処理
856
- // Note: TypeScript control flow analysis doesn't track Promise.then() assignments,
857
- // so we use explicit type assertion after the truthy check
858
- if (motionServiceResult !== null) {
859
- const motion = motionServiceResult;
860
- motionServiceResultForSave = motion;
861
- motionResult = (0, result_builder_1.buildMotionResult)(motion, isSummary);
862
- const warning = (0, result_builder_1.extractWarning)("motion", motion);
863
- if (warning)
864
- warnings.push(warning);
865
- // WebGL/Canvas検出警告(patternCount=0件 かつ detect_js_animations=false の場合)
866
- const detectJsAnimations = validated.motionOptions?.detect_js_animations ?? true; // v0.1.0: デフォルトtrue
867
- if (motion.patternCount === 0 && detectJsAnimations === false) {
868
- warnings.push({
869
- feature: "motion",
870
- code: "WEBGL_DETECTION_DISABLED",
871
- message: "WebGL/Canvas animations may not be detected with current settings. Enable motionOptions.detect_js_animations: true for Three.js, GSAP, Lottie detection.",
872
- });
873
- if ((0, logger_1.isDevelopment)()) {
874
- logger_1.logger.info("[MCP Tool] page.analyze WebGL detection warning added", {
875
- patternCount: motion.patternCount,
876
- detectJsAnimations,
877
- });
878
- }
879
- }
880
- }
881
- // Quality結果の処理
882
- if (qualityServiceResult) {
883
- qualityServiceResultForSave = qualityServiceResult;
884
- qualityResult = (0, result_builder_1.buildQualityResult)(qualityServiceResult, isSummary, validated.qualityOptions);
885
- const warning = (0, result_builder_1.extractWarning)("quality", qualityServiceResult);
886
- if (warning)
887
- warnings.push(warning);
888
- }
889
- // =====================================================
890
- // DB保存処理(saveToDb=true の場合、デフォルトでtrue)
891
- // =====================================================
892
- const layoutSaveToDb = validated.layoutOptions?.saveToDb !== false;
893
- const motionSaveToDb = validated.motionOptions?.saveToDb !== false;
894
- let savedWebPageId;
895
- // sectionIdMapping: 元のセクションID(section-0等)→ DB保存後のUUIDv7のマッピング
896
- let savedSectionIdMapping;
897
- // motionPatternIdMapping: 元のモーションパターンID(motion-0等)→ DB保存後のUUIDv7のマッピング
898
- let savedMotionPatternIdMapping;
899
- // backgroundDesignCount: DB保存された背景デザインの件数
900
- let savedBackgroundDesignCount = 0;
901
- if (layoutSaveToDb || motionSaveToDb) {
902
- const prisma = deps.getPrismaClient();
903
- if (prisma) {
904
- // Vision分析結果を取得(全セクションで共有)
905
- const visionFeaturesFromLayout = layoutServiceResultForSave?.visionFeatures;
906
- // ページ全体のCSSスニペットを取得(全セクションで共有)
907
- const pageCssSnippet = layoutServiceResultForSave?.cssSnippet;
908
- // ページ全体の外部CSSコンテンツを取得(全セクションで共有)
909
- const pageExternalCssContent = layoutServiceResultForSave?.externalCssContent;
910
- // ページ全体の外部CSSメタ情報を取得(全セクションで共有)
911
- const pageExternalCssMeta = layoutServiceResultForSave?.externalCssMeta;
912
- // ページ全体のCSSフレームワーク検出結果を取得(全セクションで共有)
913
- const pageCssFramework = layoutServiceResultForSave?.cssFramework;
914
- if ((0, logger_1.isDevelopment)()) {
915
- logger_1.logger.debug("[page.analyze] CSS info from layout analysis", {
916
- hasCssSnippet: !!pageCssSnippet,
917
- cssSnippetLength: pageCssSnippet?.length ?? 0,
918
- hasExternalCssContent: !!pageExternalCssContent,
919
- externalCssContentLength: pageExternalCssContent?.length ?? 0,
920
- cssFramework: pageCssFramework?.framework,
921
- cssFrameworkConfidence: pageCssFramework?.confidence,
922
- });
923
- }
924
- // sectionsをDB保存用に変換(Vision分析結果 + CSSスニペット + CSSフレームワークを含む)
925
- if ((0, logger_1.isDevelopment)()) {
926
- logger_1.logger.debug("[page.analyze] sectionsForSave preparation", {
927
- hasSections: !!layoutServiceResultForSave?.sections,
928
- sectionCount: layoutServiceResultForSave?.sections?.length ?? 0,
929
- pageCssFrameworkDetails: pageCssFramework
930
- ? {
931
- framework: pageCssFramework.framework,
932
- confidence: pageCssFramework.confidence,
933
- evidenceCount: pageCssFramework.evidence?.length ?? 0,
934
- }
935
- : null,
936
- });
937
- }
938
- const sectionsForSave = layoutServiceResultForSave?.sections?.map((section) => {
939
- const sectionForSave = {
940
- id: section.id,
941
- type: section.type,
942
- positionIndex: section.positionIndex,
943
- heading: section.heading,
944
- confidence: section.confidence,
945
- // htmlSnippetはLayoutServiceResult経由でSectionDetectorから取得
946
- htmlSnippet: section.htmlSnippet,
947
- };
948
- // ページ全体のCSSスニペットを各セクションに設定
949
- // NOTE: CSS情報はページ全体から抽出されるため、各セクションに同じCSSを含める
950
- if (pageCssSnippet !== undefined && pageCssSnippet.length > 0) {
951
- sectionForSave.cssSnippet = pageCssSnippet;
952
- }
953
- if (pageExternalCssContent !== undefined && pageExternalCssContent.length > 0) {
954
- sectionForSave.externalCssContent = pageExternalCssContent;
955
- }
956
- if (pageExternalCssMeta !== undefined) {
957
- sectionForSave.externalCssMeta = pageExternalCssMeta;
958
- }
959
- // ページ全体のCSSフレームワーク検出結果を各セクションに設定
960
- // NOTE: CSSフレームワークはページ全体で検出されるため、各セクションに同じ値を含める
961
- if (pageCssFramework !== undefined) {
962
- sectionForSave.cssFramework = pageCssFramework.framework;
963
- sectionForSave.cssFrameworkMeta = {
964
- confidence: pageCssFramework.confidence,
965
- evidence: pageCssFramework.evidence,
966
- };
967
- }
968
- // Vision分析結果がある場合はセクションに含める
969
- // NOTE: Vision分析はページ全体の解析結果のため、各セクションに同じ結果を含める
970
- // 将来的にはセクションごとの分析結果を持つように拡張可能
971
- if (visionFeaturesFromLayout && visionFeaturesFromLayout.success) {
972
- const visionFeatures = {
973
- success: visionFeaturesFromLayout.success,
974
- features: visionFeaturesFromLayout.features,
975
- };
976
- // exactOptionalPropertyTypes対応: undefinedの場合はプロパティを含めない
977
- if (layoutServiceResultForSave?.textRepresentation !== undefined) {
978
- visionFeatures.textRepresentation = layoutServiceResultForSave.textRepresentation;
979
- }
980
- if (visionFeaturesFromLayout.processingTimeMs !== undefined) {
981
- visionFeatures.processingTimeMs = visionFeaturesFromLayout.processingTimeMs;
982
- }
983
- if (visionFeaturesFromLayout.modelName !== undefined) {
984
- visionFeatures.modelName = visionFeaturesFromLayout.modelName;
985
- }
986
- sectionForSave.visionFeatures = visionFeatures;
987
- }
988
- return sectionForSave;
989
- }) ?? [];
990
- // sectionsForSaveの内容を確認(cssFrameworkが設定されているか)
991
- if ((0, logger_1.isDevelopment)()) {
992
- const sectionsWithCssFramework = sectionsForSave.filter((s) => s.cssFramework !== undefined);
993
- logger_1.logger.debug("[page.analyze] sectionsForSave created", {
994
- totalSections: sectionsForSave.length,
995
- sectionsWithCssFramework: sectionsWithCssFramework.length,
996
- firstSectionCssFramework: sectionsForSave[0]?.cssFramework ?? "not set",
997
- firstSectionHasCssFrameworkMeta: !!sectionsForSave[0]?.cssFrameworkMeta,
998
- });
999
- }
1000
- // motionPatternsをDB保存用に変換
1001
- const motionPatternsForSave = motionServiceResultForSave?.patterns?.map((pattern) => ({
1002
- id: pattern.id,
1003
- name: pattern.name,
1004
- type: pattern.type,
1005
- category: pattern.category,
1006
- trigger: pattern.trigger,
1007
- duration: pattern.duration,
1008
- easing: pattern.easing,
1009
- properties: pattern.properties,
1010
- propertiesDetailed: pattern.propertiesDetailed,
1011
- rawCss: undefined, // MotionServiceResultにはrawCssが含まれていない
1012
- performance: pattern.performance,
1013
- accessibility: pattern.accessibility,
1014
- })) ?? [];
1015
- // ページ全体のvisualFeatures(Phase 3-2追加)
1016
- // layoutServiceResultForSaveから取得し、各セクションのvisualFeaturesカラムに保存
1017
- const pageVisualFeatures = layoutServiceResultForSave?.visualFeatures;
1018
- if ((0, logger_1.isDevelopment)() && pageVisualFeatures) {
1019
- logger_1.logger.debug("[page.analyze] visualFeatures from layout analysis", {
1020
- hasColors: !!pageVisualFeatures.colors,
1021
- hasTheme: !!pageVisualFeatures.theme,
1022
- hasDensity: !!pageVisualFeatures.density,
1023
- hasGradient: !!pageVisualFeatures.gradient,
1024
- hasMood: !!pageVisualFeatures.mood,
1025
- hasBrandTone: !!pageVisualFeatures.brandTone,
1026
- });
1027
- }
1028
- // 背景デザイン検出結果をDB保存用に変換
1029
- const backgroundDesignsForSave = layoutServiceResultForSave?.backgroundDesigns?.map((bg) => ({
1030
- name: bg.name,
1031
- designType: bg.designType,
1032
- cssValue: bg.cssValue,
1033
- selector: bg.selector,
1034
- positionIndex: bg.positionIndex,
1035
- colorInfo: bg.colorInfo,
1036
- gradientInfo: bg.gradientInfo,
1037
- visualProperties: bg.visualProperties,
1038
- animationInfo: bg.animationInfo,
1039
- cssImplementation: bg.cssImplementation,
1040
- performance: bg.performance,
1041
- confidence: bg.confidence,
1042
- sourceUrl: validated.url,
1043
- usageScope: validated.usageScope ?? "inspiration_only",
1044
- }));
1045
- const saveResult = await (0, db_handler_1.saveToDatabase)(prisma, {
1046
- url: (0, url_normalizer_1.normalizeUrlForStorage)(normalizedUrl),
1047
- title: metadata.title,
1048
- htmlContent: sanitizedHtml,
1049
- screenshot: fetchedScreenshot,
1050
- sourceType: validated.sourceType ?? "user_provided",
1051
- usageScope: validated.usageScope ?? "inspiration_only",
1052
- layoutSaveToDb,
1053
- motionSaveToDb,
1054
- sections: sectionsForSave,
1055
- motionPatterns: motionPatternsForSave,
1056
- qualityResult: qualityServiceResultForSave,
1057
- visualFeatures: pageVisualFeatures,
1058
- backgroundDesigns: backgroundDesignsForSave,
1059
- });
1060
- if (saveResult.success) {
1061
- savedWebPageId = saveResult.webPageId;
1062
- savedSectionIdMapping = saveResult.sectionIdMapping;
1063
- savedMotionPatternIdMapping = saveResult.motionPatternIdMapping;
1064
- savedBackgroundDesignCount = saveResult.backgroundDesignCount ?? 0;
1065
- if ((0, logger_1.isDevelopment)()) {
1066
- logger_1.logger.info("[page.analyze] DB save completed", {
1067
- webPageId: saveResult.webPageId,
1068
- sectionPatternCount: saveResult.sectionPatternCount,
1069
- motionPatternCount: saveResult.motionPatternCount,
1070
- backgroundDesignCount: saveResult.backgroundDesignCount,
1071
- qualityEvaluationId: saveResult.qualityEvaluationId,
1072
- sectionIdMappingSize: savedSectionIdMapping?.size ?? 0,
1073
- motionPatternIdMappingSize: savedMotionPatternIdMapping?.size ?? 0,
1074
- });
1075
- }
1076
- }
1077
- else {
1078
- // Graceful Degradation: 保存失敗を警告に記録
1079
- warnings.push({
1080
- feature: "layout", // DB保存はlayout機能の一部として扱う
1081
- code: schemas_1.PAGE_ANALYZE_ERROR_CODES.DB_SAVE_FAILED,
1082
- message: saveResult.error ?? "Failed to save to database",
1083
- });
1084
- if ((0, logger_1.isDevelopment)()) {
1085
- logger_1.logger.warn("[page.analyze] DB save failed (graceful degradation)", {
1086
- error: saveResult.error,
1087
- });
1088
- }
1089
- }
1090
- }
1091
- else {
1092
- // PrismaClientが未設定の場合はスキップ(Graceful Degradation)
1093
- logger_1.logger.warn("[page.analyze] DB save skipped: database connection not configured");
1094
- warnings.push({
1095
- feature: "layout",
1096
- code: schemas_1.PAGE_ANALYZE_ERROR_CODES.DB_NOT_CONFIGURED,
1097
- message: "DB save skipped: database connection not configured. Data will not be persisted.",
1098
- });
1099
- }
1100
- }
1101
- // layoutResultにpageIdを設定(保存成功時)
1102
- if (savedWebPageId && layoutResult) {
1103
- layoutResult.pageId = savedWebPageId;
1104
- }
1105
- // =====================================================
1106
- // Embedding生成・保存(autoAnalyze / saveToDb オプション時)
1107
- // =====================================================
1108
- // SectionEmbedding生成・保存(autoAnalyze=true(デフォルト) かつ saveToDb=true かつ IDマッピングがある場合)
1109
- // ロジックはembedding-handler.tsに分離
1110
- const autoAnalyze = validated.layoutOptions?.autoAnalyze !== false;
1111
- if (autoAnalyze &&
1112
- layoutSaveToDb &&
1113
- layoutServiceResultForSave?.success &&
1114
- layoutServiceResultForSave.sections &&
1115
- savedSectionIdMapping &&
1116
- savedSectionIdMapping.size > 0) {
1117
- // ページレベルのvisualFeaturesを取得(Phase 3-3: visualFeatures伝播)
1118
- const pageVisualFeaturesForEmbedding = layoutServiceResultForSave.visualFeatures;
1119
- // sectionsにvisualFeaturesを伝播してSectionDataForEmbedding[]を作成
1120
- // db-handler.tsと同様に、ページレベルのvisualFeaturesを各セクションに適用
1121
- const sectionsWithVisualFeatures = layoutServiceResultForSave.sections.map((section) => {
1122
- // exactOptionalPropertyTypes対応: 明示的にオブジェクトを構築
1123
- const sectionForEmbedding = {
1124
- id: section.id,
1125
- type: section.type,
1126
- positionIndex: section.positionIndex,
1127
- confidence: section.confidence,
1128
- };
1129
- // オプショナルフィールドは存在する場合のみ設定
1130
- if (section.heading !== undefined) {
1131
- sectionForEmbedding.heading = section.heading;
1132
- }
1133
- if (section.htmlSnippet !== undefined) {
1134
- sectionForEmbedding.htmlSnippet = section.htmlSnippet;
1135
- }
1136
- // セクション固有のvisualFeaturesがある場合はそれを使用、なければページレベルを使用
1137
- // NOTE: 現在はセクション固有のvisualFeaturesはないため、常にページレベルを使用
1138
- if (pageVisualFeaturesForEmbedding !== undefined) {
1139
- sectionForEmbedding.visualFeatures = pageVisualFeaturesForEmbedding;
1140
- }
1141
- return sectionForEmbedding;
1142
- });
1143
- if ((0, logger_1.isDevelopment)()) {
1144
- logger_1.logger.debug("[page.analyze] Propagating visualFeatures to sections for embedding", {
1145
- sectionCount: sectionsWithVisualFeatures.length,
1146
- hasPageVisualFeatures: !!pageVisualFeaturesForEmbedding,
1147
- pageVisualFeaturesKeys: pageVisualFeaturesForEmbedding
1148
- ? Object.keys(pageVisualFeaturesForEmbedding)
1149
- : [],
1150
- });
1151
- }
1152
- // 分離されたハンドラーを呼び出し(visualFeatures伝播済みのセクションを渡す)
1153
- // MCP 600秒ガード: 残り時間が不足していればスキップ
1154
- const sectionEmbeddingRemaining = Math.max(0, 570000 - (Date.now() - overallStartTime));
1155
- if (sectionEmbeddingRemaining < 10000) {
1156
- warnings.push({
1157
- feature: "layout",
1158
- code: "EMBEDDING_SKIPPED",
1159
- message: `Section embedding generation skipped: insufficient time remaining (${sectionEmbeddingRemaining}ms)`,
1160
- });
1161
- }
1162
- else {
1163
- try {
1164
- await (0, timeout_utils_1.withTimeout)((0, embedding_handler_1.generateSectionEmbeddings)(sectionsWithVisualFeatures, savedSectionIdMapping, {
1165
- webPageId: savedWebPageId,
1166
- }), Math.min(60000, sectionEmbeddingRemaining), "section-embedding-generation");
1167
- }
1168
- catch (embeddingError) {
1169
- const msg = embeddingError instanceof Error ? embeddingError.message : String(embeddingError);
1170
- warnings.push({
1171
- feature: "layout",
1172
- code: "EMBEDDING_TIMEOUT",
1173
- message: `Section embedding generation failed: ${msg}`,
1174
- });
1175
- logger_1.logger.warn("[page.analyze] Section embedding generation failed", { error: msg });
1176
- }
1177
- }
1178
- }
1179
- // MotionEmbedding生成・保存(saveToDb=true かつ IDマッピングがある場合)
1180
- // ロジックはembedding-handler.tsに分離
1181
- // 注意: db-handler.tsでMotionPatternは既に保存済み。ここではEmbedding生成・保存のみ実行
1182
- if (motionSaveToDb &&
1183
- motionServiceResultForSave?.success &&
1184
- motionServiceResultForSave.patterns &&
1185
- savedMotionPatternIdMapping &&
1186
- savedMotionPatternIdMapping.size > 0) {
1187
- const patterns = motionServiceResultForSave.patterns;
1188
- // 分離されたハンドラーを呼び出し(motionPatternIdMappingを渡してEmbedding生成のみ実行)
1189
- // MCP 600秒ガード: 残り時間が不足していればスキップ
1190
- const motionEmbeddingRemaining = Math.max(0, 570000 - (Date.now() - overallStartTime));
1191
- if (motionEmbeddingRemaining < 10000) {
1192
- warnings.push({
1193
- feature: "motion",
1194
- code: "EMBEDDING_SKIPPED",
1195
- message: `Motion embedding generation skipped: insufficient time remaining (${motionEmbeddingRemaining}ms)`,
1196
- });
1197
- }
1198
- else {
1199
- try {
1200
- await (0, timeout_utils_1.withTimeout)((0, embedding_handler_1.generateMotionEmbeddings)(patterns, {
1201
- webPageId: savedWebPageId,
1202
- sourceUrl: validated.url,
1203
- motionPatternIdMapping: savedMotionPatternIdMapping,
1204
- }), Math.min(60000, motionEmbeddingRemaining), "motion-embedding-generation");
1205
- }
1206
- catch (embeddingError) {
1207
- const msg = embeddingError instanceof Error ? embeddingError.message : String(embeddingError);
1208
- warnings.push({
1209
- feature: "motion",
1210
- code: "EMBEDDING_TIMEOUT",
1211
- message: `Motion embedding generation failed: ${msg}`,
1212
- });
1213
- logger_1.logger.warn("[page.analyze] Motion embedding generation failed", { error: msg });
1214
- }
1215
- }
1216
- }
1217
- // =====================================================
1218
- // VideoMode DB保存処理(motionOptions.saveToDb=true かつ frame_analysis あり)
1219
- // =====================================================
1220
- // 共有ヘルパー関数でフレーム画像分析結果(AnimationZone, LayoutShift, MotionVector)を保存
1221
- // MotionDbService は Embedding を自動生成するため、明示的な生成は不要
1222
- if (motionSaveToDb && motionServiceResultForSave?.success) {
1223
- const frameAnalysis = motionServiceResultForSave.frame_analysis;
1224
- if (frameAnalysis && savedWebPageId) {
1225
- const frameAnalysisSaveResult = await (0, frame_analysis_save_helper_1.saveFrameAnalysisToDb)({
1226
- frameAnalysis,
1227
- frameCapture: motionServiceResultForSave.frame_capture,
1228
- webPageId: savedWebPageId,
1229
- sourceUrl: validated.url,
1230
- });
1231
- // 保存失敗時はwarningsに記録(Graceful Degradation)
1232
- if (!frameAnalysisSaveResult.saved) {
1233
- if (frameAnalysisSaveResult.error) {
1234
- warnings.push({
1235
- feature: "motion",
1236
- code: "FRAME_ANALYSIS_DB_SAVE_ERROR",
1237
- message: frameAnalysisSaveResult.error,
1238
- });
1239
- }
1240
- else if (frameAnalysisSaveResult.skipped) {
1241
- if ((0, logger_1.isDevelopment)()) {
1242
- logger_1.logger.warn("[page.analyze] Frame analysis DB save skipped", {
1243
- reason: frameAnalysisSaveResult.skipped,
1244
- });
1245
- }
1246
- }
1247
- else if (frameAnalysisSaveResult.batchResult?.reason) {
1248
- warnings.push({
1249
- feature: "motion",
1250
- code: "FRAME_ANALYSIS_DB_SAVE_FAILED",
1251
- message: frameAnalysisSaveResult.batchResult.reason,
1252
- });
1253
- }
1254
- }
1255
- }
1256
- // =====================================================
1257
- // JSアニメーションパターン DB保存処理(saveToDb=true かつ js_animations あり)
1258
- // =====================================================
1259
- // JSアニメーション検出結果をJSAnimationPatternテーブルに保存
1260
- const jsAnimations = motionServiceResultForSave?.js_animations;
1261
- const jsAnimationPrisma = deps.getPrismaClient();
1262
- if (jsAnimations && savedWebPageId && jsAnimationPrisma) {
1263
- try {
1264
- if ((0, logger_1.isDevelopment)()) {
1265
- logger_1.logger.info("[page.analyze] Starting JS animation patterns DB save", {
1266
- webPageId: savedWebPageId,
1267
- cdpAnimationCount: jsAnimations.cdpAnimations?.length ?? 0,
1268
- webAnimationCount: jsAnimations.webAnimations?.length ?? 0,
1269
- totalDetected: jsAnimations.totalDetected ?? 0,
1270
- });
1271
- }
1272
- // JSAnimationFullResultをJSAnimationPatternCreateDataの配列に変換
1273
- const jsAnimationPatterns = (0, js_animation_handler_1.mapJSAnimationResultToPatterns)(jsAnimations, savedWebPageId, validated.url);
1274
- // DBに保存(Embedding生成含む)
1275
- if (jsAnimationPatterns.length > 0) {
1276
- const saveResult = await (0, js_animation_handler_1.saveJSAnimationPatternsWithEmbeddings)(jsAnimationPrisma, jsAnimationPatterns, savedWebPageId, { generateEmbedding: true } // Embedding生成を有効化
1277
- );
1278
- if ((0, logger_1.isDevelopment)()) {
1279
- logger_1.logger.info("[page.analyze] JS animation patterns DB save completed", {
1280
- savedPatternCount: saveResult.savedPatternCount,
1281
- embeddingCount: saveResult.embeddingCount,
1282
- totalPatterns: jsAnimationPatterns.length,
1283
- webPageId: savedWebPageId,
1284
- });
1285
- }
1286
- }
1287
- }
1288
- catch (jsAnimDbError) {
1289
- // JSアニメーションDB保存失敗(Graceful Degradation)
1290
- logger_1.logger.warn("[page.analyze] JS animation patterns DB save failed (graceful degradation)", {
1291
- error: jsAnimDbError instanceof Error ? jsAnimDbError.message : "Unknown error",
1292
- });
1293
- warnings.push({
1294
- feature: "motion",
1295
- code: "JS_ANIMATION_DB_SAVE_ERROR",
1296
- message: jsAnimDbError instanceof Error ? jsAnimDbError.message : "JS animation DB save failed",
1297
- });
1298
- }
1299
- }
1300
- }
1301
- // =====================================================
1302
- // Narrative分析(v0.1.0: narrativeOptions.enabled=true の場合)
1303
- // =====================================================
1304
- // NarrativeAnalysisServiceを使用してWebページの
1305
- // 「世界観・雰囲気(WorldView)」と「レイアウト構成(LayoutStructure)」を分析
1306
- // NOTE: DB保存後に実行することで、saveToDb=trueの場合にwebPageIdを利用可能
1307
- // NOTE: narrativeOptions.enabledはデフォルトでtrue(Zodスキーマで設定)
1308
- // v0.1.0: ?.演算子ではなく !== false でチェック(undefined/true の両方で有効化)
1309
- const narrativeEnabled = validated.narrativeOptions?.enabled !== false;
1310
- if (narrativeEnabled) {
1311
- if ((0, logger_1.isDevelopment)()) {
1312
- logger_1.logger.info("[page.analyze] Starting narrative analysis", {
1313
- saveToDb: validated.narrativeOptions.saveToDb,
1314
- includeVision: validated.narrativeOptions.includeVision,
1315
- visionTimeoutMs: validated.narrativeOptions.visionTimeoutMs,
1316
- generateEmbedding: validated.narrativeOptions.generateEmbedding,
1317
- webPageId: savedWebPageId,
1318
- });
1319
- }
1320
- // Narrative分析用の入力を準備
1321
- const narrativeInput = {
1322
- html,
1323
- narrativeOptions: validated.narrativeOptions,
1324
- };
1325
- // exactOptionalPropertyTypes対応: undefinedのプロパティは含めない
1326
- if (fetchedScreenshot !== undefined) {
1327
- narrativeInput.screenshot = fetchedScreenshot;
1328
- }
1329
- // webPageIdがある場合は渡す(saveToDb=trueの場合に必要)
1330
- if (savedWebPageId !== undefined) {
1331
- narrativeInput.webPageId = savedWebPageId;
1332
- }
1333
- // 既存の分析結果を渡す(Narrative分析の精度向上のため)
1334
- // NOTE: layoutServiceResultForSaveを使用(DB保存用に保持された結果)
1335
- if (layoutServiceResultForSave || motionServiceResultForSave) {
1336
- narrativeInput.existingAnalysis = {};
1337
- if (layoutServiceResultForSave?.cssVariables) {
1338
- narrativeInput.existingAnalysis.cssVariables = layoutServiceResultForSave.cssVariables;
1339
- }
1340
- if (motionServiceResultForSave) {
1341
- narrativeInput.existingAnalysis.motionPatterns = motionServiceResultForSave;
1342
- }
1343
- if (layoutServiceResultForSave?.sections) {
1344
- narrativeInput.existingAnalysis.sections = layoutServiceResultForSave.sections;
1345
- }
1346
- if (layoutServiceResultForSave?.visionFeatures) {
1347
- narrativeInput.existingAnalysis.visualFeatures = layoutServiceResultForSave.visionFeatures;
1348
- }
1349
- }
1350
- // 外部CSSがある場合は渡す
1351
- if (layoutServiceResultForSave?.externalCssContent) {
1352
- narrativeInput.externalCss = layoutServiceResultForSave.externalCssContent;
1353
- }
1354
- try {
1355
- // MCP 600秒ガード: Narrative分析のタイムアウトを残り時間に基づいて設定
1356
- const narrativeRemaining = Math.max(0, 570000 - (Date.now() - overallStartTime));
1357
- if (narrativeRemaining < 15000) {
1358
- // 残り時間が15秒未満ならNarrative分析をスキップ
1359
- warnings.push({
1360
- feature: "quality",
1361
- code: "NARRATIVE_SKIPPED",
1362
- message: `Narrative analysis skipped: insufficient time remaining (${narrativeRemaining}ms)`,
1363
- });
1364
- if ((0, logger_1.isDevelopment)()) {
1365
- logger_1.logger.warn("[page.analyze] Narrative analysis skipped due to insufficient time", {
1366
- remainingMs: narrativeRemaining,
1367
- elapsedMs: Date.now() - overallStartTime,
1368
- });
1369
- }
1370
- }
1371
- else {
1372
- // Narrative分析のタイムアウト: 残り時間とvisionTimeoutMsの小さい方を使用
1373
- const narrativeTimeout = Math.min(validated.narrativeOptions?.visionTimeoutMs ?? 300000, narrativeRemaining);
1374
- narrativeHandlerResult = await (0, timeout_utils_1.withTimeout)((0, narrative_handler_1.handleNarrativeAnalysis)(narrativeInput), narrativeTimeout, "narrative-analysis");
1375
- }
1376
- if (narrativeHandlerResult?.success && narrativeHandlerResult.narrative) {
1377
- narrativeResult = (0, result_builder_1.buildNarrativeResult)(narrativeHandlerResult, isSummary);
1378
- if ((0, logger_1.isDevelopment)() && narrativeResult) {
1379
- logger_1.logger.info("[page.analyze] Narrative analysis completed", {
1380
- moodCategory: narrativeResult.worldView?.moodCategory,
1381
- confidence: narrativeResult.confidence,
1382
- processingTimeMs: narrativeHandlerResult.processingTimeMs,
1383
- savedId: narrativeHandlerResult.savedId,
1384
- });
1385
- }
1386
- }
1387
- else if (narrativeHandlerResult?.skipped) {
1388
- if ((0, logger_1.isDevelopment)()) {
1389
- logger_1.logger.debug("[page.analyze] Narrative analysis skipped (enabled=false)");
1390
- }
1391
- }
1392
- else if (narrativeHandlerResult?.error) {
1393
- // Narrative分析失敗は警告として記録し、他の分析結果は返す
1394
- // NOTE: narrativeはfeature enumに含まれていないため、コード + メッセージのみ記録
1395
- warnings.push({
1396
- feature: "quality", // narrativeはQuality系機能として分類
1397
- code: narrativeHandlerResult.error.code,
1398
- message: `Narrative analysis failed: ${narrativeHandlerResult.error.message}`,
1399
- });
1400
- if ((0, logger_1.isDevelopment)()) {
1401
- logger_1.logger.warn("[page.analyze] Narrative analysis failed", {
1402
- code: narrativeHandlerResult.error.code,
1403
- message: narrativeHandlerResult.error.message,
1404
- });
1405
- }
1406
- }
1407
- }
1408
- catch (narrativeError) {
1409
- // タイムアウトまたは予期しないエラーは警告として記録
1410
- const isTimeout = narrativeError instanceof timeout_utils_1.PhaseTimeoutError;
1411
- const errorMessage = narrativeError instanceof Error ? narrativeError.message : String(narrativeError);
1412
- warnings.push({
1413
- feature: "quality", // narrativeはQuality系機能として分類
1414
- code: isTimeout ? "NARRATIVE_TIMEOUT" : "NARRATIVE_UNEXPECTED_ERROR",
1415
- message: isTimeout
1416
- ? `Narrative analysis timed out: ${errorMessage}`
1417
- : `Unexpected error in narrative analysis: ${errorMessage}`,
1418
- });
1419
- if ((0, logger_1.isDevelopment)()) {
1420
- logger_1.logger.error("[page.analyze] Unexpected narrative analysis error", {
1421
- error: errorMessage,
1422
- });
1423
- }
1424
- }
1425
- }
1426
- // =====================================================
1427
- // 注: ExecutionStatus更新はwithTimeoutAndTracking内で自動的に行われる
1428
- // markCompleted/markFailedがPromise完了/失敗時に呼び出される
1429
- // =====================================================
1430
- // =====================================================
1431
- // レスポンシブ分析(responsiveOptions.enabled=true の場合)
1432
- // =====================================================
1433
- let responsiveAnalysisResult;
1434
- let responsiveAnalysisId;
1435
- if (validated.responsiveOptions?.enabled === true) {
1436
- const responsiveRemaining = Math.max(0, 570000 - (Date.now() - overallStartTime));
1437
- if (responsiveRemaining < 15000) {
1438
- warnings.push({
1439
- feature: "layout",
1440
- code: "RESPONSIVE_SKIPPED",
1441
- message: `Responsive analysis skipped: insufficient time remaining (${responsiveRemaining}ms)`,
1442
- });
1443
- }
1444
- else {
1445
- try {
1446
- // SSRF対策: URLを検証
1447
- const urlValidation = (0, url_validator_1.validateExternalUrl)(validated.url);
1448
- if (!urlValidation.valid) {
1449
- warnings.push({
1450
- feature: "layout",
1451
- code: "RESPONSIVE_SSRF_BLOCKED",
1452
- message: `レスポンシブ分析スキップ: ${urlValidation.error}`,
1453
- });
1454
- }
1455
- else {
1456
- // robots.txt チェック
1457
- const robotsResult = await (0, core_1.isUrlAllowedByRobotsTxt)(validated.url, validated.respect_robots_txt);
1458
- if (!robotsResult.allowed) {
1459
- warnings.push({
1460
- feature: "layout",
1461
- code: "RESPONSIVE_ROBOTS_BLOCKED",
1462
- message: `レスポンシブ分析スキップ: robots.txtによりブロック (${robotsResult.reason})`,
1463
- });
1464
- }
1465
- else {
1466
- if ((0, logger_1.isDevelopment)()) {
1467
- logger_1.logger.info("[page.analyze] Starting responsive analysis", {
1468
- url: validated.url,
1469
- viewports: validated.responsiveOptions.viewports?.map((v) => v.name) ?? [
1470
- "desktop",
1471
- "tablet",
1472
- "mobile",
1473
- ],
1474
- });
1475
- }
1476
- // crawl-delay を取得(秒→ミリ秒変換、上限30秒)
1477
- const MAX_CRAWL_DELAY_MS = 30000;
1478
- const crawlDelayMs = robotsResult.crawlDelay !== undefined
1479
- ? Math.min(robotsResult.crawlDelay * 1000, MAX_CRAWL_DELAY_MS)
1480
- : undefined;
1481
- // レスポンシブ分析オプションを構築
1482
- const responsiveOpts = { enabled: true };
1483
- if (validated.responsiveOptions.viewports !== undefined) {
1484
- responsiveOpts.viewports = validated.responsiveOptions.viewports;
1485
- }
1486
- if (validated.responsiveOptions.include_screenshots !== undefined) {
1487
- responsiveOpts.include_screenshots = validated.responsiveOptions.include_screenshots;
1488
- }
1489
- if (validated.responsiveOptions.include_diff_images !== undefined) {
1490
- responsiveOpts.include_diff_images = validated.responsiveOptions.include_diff_images;
1491
- }
1492
- if (validated.responsiveOptions.diff_threshold !== undefined) {
1493
- responsiveOpts.diff_threshold = validated.responsiveOptions.diff_threshold;
1494
- }
1495
- if (validated.responsiveOptions.detect_navigation !== undefined) {
1496
- responsiveOpts.detect_navigation = validated.responsiveOptions.detect_navigation;
1497
- }
1498
- if (validated.responsiveOptions.detect_visibility !== undefined) {
1499
- responsiveOpts.detect_visibility = validated.responsiveOptions.detect_visibility;
1500
- }
1501
- if (validated.responsiveOptions.detect_layout !== undefined) {
1502
- responsiveOpts.detect_layout = validated.responsiveOptions.detect_layout;
1503
- }
1504
- if (crawlDelayMs !== undefined) {
1505
- responsiveOpts.crawlDelayMs = crawlDelayMs;
1506
- }
1507
- responsiveAnalysisResult = await (0, timeout_utils_1.withTimeout)(responsive_1.responsiveAnalysisService.analyze(validated.url, responsiveOpts), Math.min(responsiveRemaining, 120000), // 最大2分
1508
- "responsive-analysis");
1509
- if ((0, logger_1.isDevelopment)()) {
1510
- logger_1.logger.info("[page.analyze] Responsive analysis completed", {
1511
- viewportsAnalyzed: responsiveAnalysisResult.viewportsAnalyzed.length,
1512
- differencesFound: responsiveAnalysisResult.differences.length,
1513
- breakpointsDetected: responsiveAnalysisResult.breakpoints.length,
1514
- analysisTimeMs: responsiveAnalysisResult.analysisTimeMs,
1515
- });
1516
- }
1517
- // DB保存(save_to_db=true かつ webPageIdがある場合)
1518
- const responsiveSaveToDb = validated.responsiveOptions.save_to_db ?? true;
1519
- if (responsiveSaveToDb && savedWebPageId) {
1520
- try {
1521
- responsiveAnalysisId = await responsive_1.responsivePersistenceService.save(savedWebPageId, responsiveAnalysisResult);
1522
- if ((0, logger_1.isDevelopment)()) {
1523
- logger_1.logger.info("[page.analyze] Responsive analysis saved to DB", {
1524
- responsiveAnalysisId,
1525
- webPageId: savedWebPageId,
1526
- });
1527
- }
1528
- }
1529
- catch (responsiveDbError) {
1530
- logger_1.logger.warn("[page.analyze] Responsive DB save failed (graceful degradation)", {
1531
- error: responsiveDbError instanceof Error
1532
- ? responsiveDbError.message
1533
- : "Unknown error",
1534
- });
1535
- warnings.push({
1536
- feature: "layout",
1537
- code: "RESPONSIVE_DB_SAVE_FAILED",
1538
- message: responsiveDbError instanceof Error
1539
- ? responsiveDbError.message
1540
- : "Responsive DB save failed",
1541
- });
1542
- }
1543
- }
1544
- }
1545
- }
1546
- }
1547
- catch (responsiveError) {
1548
- const isTimeout = responsiveError instanceof timeout_utils_1.PhaseTimeoutError;
1549
- const errorMessage = responsiveError instanceof Error ? responsiveError.message : String(responsiveError);
1550
- warnings.push({
1551
- feature: "layout",
1552
- code: isTimeout ? "RESPONSIVE_TIMEOUT" : "RESPONSIVE_ERROR",
1553
- message: isTimeout
1554
- ? `Responsive analysis timed out: ${errorMessage}`
1555
- : `Responsive analysis failed: ${errorMessage}`,
1556
- });
1557
- if ((0, logger_1.isDevelopment)()) {
1558
- logger_1.logger.warn("[page.analyze] Responsive analysis failed (graceful degradation)", {
1559
- error: errorMessage,
1560
- });
1561
- }
1562
- }
1563
- }
1564
- }
1565
- // レスポンス構築
1566
- const data = {
1567
- id: (0, uuid_1.v7)(),
1568
- url: validated.url,
1569
- normalizedUrl,
1570
- metadata,
1571
- source: {
1572
- type: validated.sourceType ?? "user_provided",
1573
- usageScope: validated.usageScope ?? "inspiration_only",
1574
- },
1575
- totalProcessingTimeMs: Date.now() - overallStartTime,
1576
- analyzedAt: new Date().toISOString(),
1577
- // v0.1.0: ExecutionStatusを追加
1578
- execution_status: executionTracker.toExecutionStatus(),
1579
- };
1580
- if (layoutResult) {
1581
- data.layout = layoutResult;
1582
- }
1583
- if (motionResult) {
1584
- data.motion = motionResult;
1585
- }
1586
- if (qualityResult) {
1587
- data.quality = qualityResult;
1588
- }
1589
- // v0.1.0: Narrative結果を追加
1590
- if (narrativeResult) {
1591
- data.narrative = narrativeResult;
1592
- }
1593
- // 背景デザイン検出サマリーを追加
1594
- const backgroundDesignsSummary = (0, result_builder_1.buildBackgroundDesignsSummary)(layoutServiceResultForSave?.backgroundDesigns, savedBackgroundDesignCount);
1595
- if (backgroundDesignsSummary) {
1596
- data.backgroundDesigns = backgroundDesignsSummary;
1597
- }
1598
- // レスポンシブ分析結果を追加(responsiveOptions.enabled=true時のみ)
1599
- if (responsiveAnalysisResult) {
1600
- // ResponsiveDifference[] → Zodスキーマ互換の型に変換(passthrough index signature対応)
1601
- const differences = responsiveAnalysisResult.differences.map((d) => ({
1602
- element: d.element,
1603
- description: d.description,
1604
- category: d.category,
1605
- ...(d.desktop !== undefined ? { desktop: d.desktop } : {}),
1606
- ...(d.tablet !== undefined ? { tablet: d.tablet } : {}),
1607
- ...(d.mobile !== undefined ? { mobile: d.mobile } : {}),
1608
- }));
1609
- const responsiveData = {
1610
- viewportsAnalyzed: responsiveAnalysisResult.viewportsAnalyzed.map((v) => v.name),
1611
- differences,
1612
- breakpoints: responsiveAnalysisResult.breakpoints,
1613
- analysisTimeMs: responsiveAnalysisResult.analysisTimeMs,
1614
- };
1615
- if (responsiveAnalysisId) {
1616
- responsiveData.responsiveAnalysisId = responsiveAnalysisId;
1617
- }
1618
- data.responsiveAnalysis = responsiveData;
1619
- }
1620
- if (warnings.length > 0) {
1621
- data.warnings = warnings;
1622
- }
1623
- // v0.1.0: Pre-flight Probe結果を追加(auto_timeout=true時のみ)
1624
- if (probeResult) {
1625
- data.preflightProbe = {
1626
- calculatedTimeoutMs: probeResult.calculatedTimeoutMs,
1627
- complexityScore: probeResult.complexityScore,
1628
- hasWebGL: probeResult.hasWebGL,
1629
- hasSPA: probeResult.hasSPA,
1630
- hasHeavyFramework: probeResult.hasHeavyFramework,
1631
- probedAt: probeResult.probedAt,
1632
- probeVersion: probeResult.probeVersion,
1633
- htmlSizeBytes: probeResult.htmlSizeBytes,
1634
- scriptCount: probeResult.scriptCount,
1635
- externalResourceCount: probeResult.externalResourceCount,
1636
- responseTimeMs: probeResult.responseTimeMs,
1637
- };
1638
- }
1639
- if ((0, logger_1.isDevelopment)()) {
1640
- logger_1.logger.info("[MCP Tool] page.analyze completed", {
1641
- url: validated.url,
1642
- hasLayout: !!layoutResult,
1643
- hasMotion: !!motionResult,
1644
- hasQuality: !!qualityResult,
1645
- hasNarrative: !!narrativeResult,
1646
- hasResponsive: !!responsiveAnalysisResult,
1647
- backgroundDesignCount: backgroundDesignsSummary?.count ?? 0,
1648
- warningCount: warnings.length,
1649
- totalProcessingTimeMs: data.totalProcessingTimeMs,
1650
- autoTimeout: validated.auto_timeout,
1651
- probeUsed: probeResult !== null,
1652
- });
1653
- }
1654
- return {
1655
- success: true,
1656
- data,
1657
- };
1658
- }
1659
- //# sourceMappingURL=sync-processing.js.map