@reftrixmcp/mcp-server 0.1.7 → 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
@@ -15,7 +15,14 @@
15
15
  * @module tools/motion/search.tool
16
16
  */
17
17
 
18
+ import { createDIFactory } from "../../utils/di-factory";
18
19
  import { logger, isDevelopment } from "../../utils/logger";
20
+ import { sanitizeErrorMessage } from "../../utils/sanitize-error";
21
+ import {
22
+ generateCacheKey,
23
+ getCachedResult,
24
+ setCachedResult,
25
+ } from "../../services/search-cache.service";
19
26
 
20
27
  import {
21
28
  motionSearchInputSchema,
@@ -30,16 +37,12 @@ import {
30
37
  type MotionPatternInput,
31
38
  type ImplementationFormat,
32
39
  type ImplementationOptions,
33
- type ImplementationMetadata,
34
40
  type JSAnimationFilters,
35
41
  type JSAnimationInfo,
36
42
  type WebGLAnimationFilters,
37
43
  type WebGLAnimationInfo,
38
44
  type GenerationOptions,
39
45
  type DuplicateCheckResult,
40
- type MotionImplementation,
41
- type MotionPattern,
42
- type MotionCategory,
43
46
  } from "./schemas";
44
47
 
45
48
  import {
@@ -49,11 +52,16 @@ import {
49
52
  import { applyPreferenceReranking } from "../../services/preference-rerank.helper";
50
53
  import type { IPrismaClient } from "../../services/preference-profile.service";
51
54
 
55
+ // 分割モジュールからのインポート
56
+ import { generateImplementation, type GenerationResult } from "./code-generators";
57
+ import { applyDiversityFilter, enrichResultsWithImplementation } from "./search-helpers";
58
+
52
59
  // =====================================================
53
60
  // 型定義
54
61
  // =====================================================
55
62
 
56
63
  export type { MotionSearchInput, MotionSearchOutput };
64
+ export type { GenerationResult };
57
65
 
58
66
  /**
59
67
  * 検索パラメータ
@@ -137,14 +145,6 @@ export interface IMotionSearchService {
137
145
  getEmbedding?: (text: string) => Promise<number[]>;
138
146
  }
139
147
 
140
- /**
141
- * コード生成結果インターフェース
142
- */
143
- export interface GenerationResult {
144
- code: string;
145
- metadata: ImplementationMetadata;
146
- }
147
-
148
148
  /**
149
149
  * コード生成サービスインターフェース(Phase3-3統合用)
150
150
  */
@@ -156,1687 +156,19 @@ export interface IMotionImplementationService {
156
156
  ) => GenerationResult | null;
157
157
  }
158
158
 
159
- /**
160
- * サービスファクトリ型
161
- */
162
- type MotionSearchServiceFactory = () => IMotionSearchService;
163
- type MotionImplementationServiceFactory = () => IMotionImplementationService | null;
164
-
165
- let serviceFactory: MotionSearchServiceFactory | null = null;
166
- let implementationServiceFactory: MotionImplementationServiceFactory | null = null;
167
-
168
- /**
169
- * サービスファクトリを設定
170
- */
171
- export function setMotionSearchServiceFactory(factory: MotionSearchServiceFactory): void {
172
- serviceFactory = factory;
173
- }
174
-
175
- /**
176
- * サービスファクトリをリセット
177
- */
178
- export function resetMotionSearchServiceFactory(): void {
179
- serviceFactory = null;
180
- }
181
-
182
- /**
183
- * コード生成サービスファクトリを設定(Phase3-3統合用)
184
- */
185
- export function setMotionImplementationServiceFactory(
186
- factory: MotionImplementationServiceFactory
187
- ): void {
188
- implementationServiceFactory = factory;
189
- }
190
-
191
- /**
192
- * コード生成サービスファクトリをリセット
193
- */
194
- export function resetMotionImplementationServiceFactory(): void {
195
- implementationServiceFactory = null;
196
- }
159
+ const serviceFactoryDI = createDIFactory<IMotionSearchService>("MotionSearchService");
160
+ export const setMotionSearchServiceFactory = serviceFactoryDI.set;
161
+ export const resetMotionSearchServiceFactory = serviceFactoryDI.reset;
197
162
 
198
- /**
199
- * PrismaClientファクトリー(嗜好リランキング用DI)
200
- * PrismaClient factory (DI for preference reranking)
201
- */
202
- let prismaClientFactory: (() => IPrismaClient) | null = null;
163
+ const implementationServiceDI = createDIFactory<IMotionImplementationService | null>(
164
+ "MotionImplementationService"
165
+ );
166
+ export const setMotionImplementationServiceFactory = implementationServiceDI.set;
167
+ export const resetMotionImplementationServiceFactory = implementationServiceDI.reset;
203
168
 
204
- /**
205
- * PrismaClientファクトリーを設定(嗜好リランキング用)
206
- * Set PrismaClient factory (for preference reranking)
207
- */
208
- export function setMotionSearchPrismaClientFactory(factory: () => IPrismaClient): void {
209
- prismaClientFactory = factory;
210
- }
211
-
212
- /**
213
- * PrismaClientファクトリーをリセット(テスト用)
214
- * Reset PrismaClient factory (for testing)
215
- */
216
- export function resetMotionSearchPrismaClientFactory(): void {
217
- prismaClientFactory = null;
218
- }
219
-
220
- // =====================================================
221
- // デフォルトコード生成実装(Phase3-3統合用)
222
- // =====================================================
223
-
224
- /**
225
- * ミリ秒をCSS時間単位に変換
226
- */
227
- function formatDuration(ms: number): string {
228
- if (ms >= 1000 && ms % 1000 === 0) {
229
- return `${ms / 1000}s`;
230
- }
231
- return `${ms}ms`;
232
- }
233
-
234
- /**
235
- * キーフレームのパーセンテージを計算
236
- */
237
- function offsetToPercent(offset: number): string {
238
- return `${Math.round(offset * 100)}%`;
239
- }
240
-
241
- /**
242
- * 行数をカウント
243
- */
244
- function countLines(code: string): number {
245
- return code.split("\n").length;
246
- }
247
-
248
- /**
249
- * PascalCaseに変換
250
- */
251
- function toPascalCase(str: string): string {
252
- return str.replace(/[-_](\w)/g, (_, c) => c.toUpperCase()).replace(/^\w/, (c) => c.toUpperCase());
253
- }
254
-
255
- /**
256
- * CSS生成
257
- */
258
- function generateCSS(
259
- pattern: MotionPatternInput,
260
- options: ImplementationOptions
261
- ): GenerationResult {
262
- const lines: string[] = [];
263
- const selector = options.selector || ".animated";
264
- const hasKeyframes = pattern.properties.some((p) => p.keyframes && p.keyframes.length > 0);
265
-
266
- // @keyframes 生成
267
- if (pattern.type !== "transition") {
268
- lines.push(`@keyframes ${pattern.name} {`);
269
-
270
- if (hasKeyframes) {
271
- const allOffsets = new Set<number>();
272
- pattern.properties.forEach((prop) => {
273
- prop.keyframes?.forEach((kf) => allOffsets.add(kf.offset));
274
- });
275
- allOffsets.add(0);
276
- allOffsets.add(1);
277
-
278
- const sortedOffsets = Array.from(allOffsets).sort((a, b) => a - b);
279
-
280
- for (const offset of sortedOffsets) {
281
- lines.push(` ${offsetToPercent(offset)} {`);
282
- for (const prop of pattern.properties) {
283
- const kf = prop.keyframes?.find((k) => k.offset === offset);
284
- if (kf) {
285
- lines.push(` ${prop.name}: ${kf.value};`);
286
- } else if (offset === 0) {
287
- lines.push(` ${prop.name}: ${prop.from};`);
288
- } else if (offset === 1) {
289
- lines.push(` ${prop.name}: ${prop.to};`);
290
- }
291
- }
292
- lines.push(" }");
293
- }
294
- } else {
295
- lines.push(" from {");
296
- for (const prop of pattern.properties) {
297
- lines.push(` ${prop.name}: ${prop.from};`);
298
- }
299
- lines.push(" }");
300
- lines.push(" to {");
301
- for (const prop of pattern.properties) {
302
- lines.push(` ${prop.name}: ${prop.to};`);
303
- }
304
- lines.push(" }");
305
- }
306
-
307
- lines.push("}");
308
- lines.push("");
309
-
310
- // ベンダープレフィックス
311
- if (options.includeVendorPrefixes) {
312
- lines.push(`@-webkit-keyframes ${pattern.name} {`);
313
- if (hasKeyframes) {
314
- const allOffsets = new Set<number>();
315
- pattern.properties.forEach((prop) => {
316
- prop.keyframes?.forEach((kf) => allOffsets.add(kf.offset));
317
- });
318
- allOffsets.add(0);
319
- allOffsets.add(1);
320
-
321
- const sortedOffsets = Array.from(allOffsets).sort((a, b) => a - b);
322
-
323
- for (const offset of sortedOffsets) {
324
- lines.push(` ${offsetToPercent(offset)} {`);
325
- for (const prop of pattern.properties) {
326
- const kf = prop.keyframes?.find((k) => k.offset === offset);
327
- if (kf) {
328
- lines.push(` ${prop.name}: ${kf.value};`);
329
- } else if (offset === 0) {
330
- lines.push(` ${prop.name}: ${prop.from};`);
331
- } else if (offset === 1) {
332
- lines.push(` ${prop.name}: ${prop.to};`);
333
- }
334
- }
335
- lines.push(" }");
336
- }
337
- } else {
338
- lines.push(" from {");
339
- for (const prop of pattern.properties) {
340
- lines.push(` ${prop.name}: ${prop.from};`);
341
- }
342
- lines.push(" }");
343
- lines.push(" to {");
344
- for (const prop of pattern.properties) {
345
- lines.push(` ${prop.name}: ${prop.to};`);
346
- }
347
- lines.push(" }");
348
- }
349
- lines.push("}");
350
- lines.push("");
351
- }
352
- }
353
-
354
- // セレクタルール
355
- lines.push(`${selector} {`);
356
-
357
- if (pattern.type === "transition") {
358
- const props = pattern.properties.map((p) => p.name).join(", ");
359
- lines.push(` transition: ${props} ${formatDuration(pattern.duration)} ${pattern.easing};`);
360
- if (options.includeVendorPrefixes) {
361
- lines.push(
362
- ` -webkit-transition: ${props} ${formatDuration(pattern.duration)} ${pattern.easing};`
363
- );
364
- }
365
- } else {
366
- const iterations = pattern.iterations === "infinite" ? "infinite" : pattern.iterations;
367
- const animationValue = [
368
- pattern.name,
369
- formatDuration(pattern.duration),
370
- pattern.easing,
371
- pattern.delay > 0 ? formatDuration(pattern.delay) : null,
372
- iterations !== 1 ? iterations : null,
373
- pattern.direction !== "normal" ? pattern.direction : null,
374
- pattern.fillMode !== "none" ? pattern.fillMode : null,
375
- ]
376
- .filter(Boolean)
377
- .join(" ");
378
-
379
- lines.push(` animation: ${animationValue};`);
380
- if (options.includeVendorPrefixes) {
381
- lines.push(` -webkit-animation: ${animationValue};`);
382
- }
383
- }
384
-
385
- lines.push("}");
386
-
387
- // hover/scroll タイプの追加ルール
388
- if (pattern.type === "hover") {
389
- lines.push("");
390
- lines.push(`${selector}:hover {`);
391
- for (const prop of pattern.properties) {
392
- lines.push(` ${prop.name}: ${prop.to};`);
393
- }
394
- lines.push("}");
395
- }
396
-
397
- // prefers-reduced-motion
398
- if (options.includeReducedMotion) {
399
- lines.push("");
400
- lines.push("@media (prefers-reduced-motion: reduce) {");
401
- lines.push(` ${selector} {`);
402
- if (pattern.type === "transition") {
403
- lines.push(" transition: none;");
404
- } else {
405
- lines.push(" animation: none;");
406
- }
407
- lines.push(" }");
408
- lines.push("}");
409
- }
410
-
411
- const code = lines.join("\n");
412
-
413
- return {
414
- code,
415
- metadata: {
416
- linesOfCode: countLines(code),
417
- hasKeyframes: pattern.type !== "transition",
418
- hasReducedMotion: options.includeReducedMotion ?? true,
419
- dependencies: [],
420
- },
421
- };
422
- }
423
-
424
- /**
425
- * CSS Module生成
426
- */
427
- function generateCSSModule(
428
- pattern: MotionPatternInput,
429
- options: ImplementationOptions
430
- ): GenerationResult {
431
- const result = generateCSS(pattern, {
432
- ...options,
433
- selector: `.${pattern.name}`,
434
- });
435
-
436
- return {
437
- ...result,
438
- metadata: {
439
- ...result.metadata,
440
- dependencies: [],
441
- },
442
- };
443
- }
444
-
445
- /**
446
- * Tailwind生成
447
- */
448
- function generateTailwind(
449
- pattern: MotionPatternInput,
450
- options: ImplementationOptions
451
- ): GenerationResult {
452
- const lines: string[] = [];
453
-
454
- lines.push("/* Add to tailwind.config.js */");
455
- lines.push("module.exports = {");
456
- lines.push(" theme: {");
457
- lines.push(" extend: {");
458
-
459
- lines.push(" animation: {");
460
- const iterations = pattern.iterations === "infinite" ? "infinite" : "";
461
- const direction = pattern.direction !== "normal" ? pattern.direction : "";
462
- lines.push(
463
- ` '${pattern.name}': '${pattern.name} ${formatDuration(pattern.duration)} ${pattern.easing} ${iterations} ${direction}'.trim(),`
464
- );
465
- lines.push(" },");
466
-
467
- lines.push(" keyframes: {");
468
- lines.push(` '${pattern.name}': {`);
469
-
470
- if (pattern.properties.some((p) => p.keyframes && p.keyframes.length > 0)) {
471
- const allOffsets = new Set<number>();
472
- pattern.properties.forEach((prop) => {
473
- prop.keyframes?.forEach((kf) => allOffsets.add(kf.offset));
474
- });
475
- allOffsets.add(0);
476
- allOffsets.add(1);
477
-
478
- const sortedOffsets = Array.from(allOffsets).sort((a, b) => a - b);
479
-
480
- for (const offset of sortedOffsets) {
481
- lines.push(` '${offsetToPercent(offset)}': {`);
482
- for (const prop of pattern.properties) {
483
- const kf = prop.keyframes?.find((k) => k.offset === offset);
484
- if (kf) {
485
- lines.push(` ${prop.name}: '${kf.value}',`);
486
- } else if (offset === 0) {
487
- lines.push(` ${prop.name}: '${prop.from}',`);
488
- } else if (offset === 1) {
489
- lines.push(` ${prop.name}: '${prop.to}',`);
490
- }
491
- }
492
- lines.push(" },");
493
- }
494
- } else {
495
- lines.push(" '0%': {");
496
- for (const prop of pattern.properties) {
497
- lines.push(` ${prop.name}: '${prop.from}',`);
498
- }
499
- lines.push(" },");
500
- lines.push(" '100%': {");
501
- for (const prop of pattern.properties) {
502
- lines.push(` ${prop.name}: '${prop.to}',`);
503
- }
504
- lines.push(" },");
505
- }
506
-
507
- lines.push(" },");
508
- lines.push(" },");
509
- lines.push(" },");
510
- lines.push(" },");
511
- lines.push("};");
512
- lines.push("");
513
- lines.push("/* Usage in JSX */");
514
- lines.push(`<div className="animate-${pattern.name}">Content</div>`);
515
-
516
- if (options.includeReducedMotion) {
517
- lines.push("");
518
- lines.push("/* For reduced motion support */");
519
- lines.push(`<div className="animate-${pattern.name} motion-reduce:animate-none">Content</div>`);
520
- }
521
-
522
- const code = lines.join("\n");
523
-
524
- return {
525
- code,
526
- metadata: {
527
- linesOfCode: countLines(code),
528
- hasKeyframes: true,
529
- hasReducedMotion: options.includeReducedMotion ?? true,
530
- dependencies: ["tailwindcss"],
531
- },
532
- };
533
- }
534
-
535
- /**
536
- * styled-components生成
537
- */
538
- function generateStyledComponents(
539
- pattern: MotionPatternInput,
540
- options: ImplementationOptions
541
- ): GenerationResult {
542
- const lines: string[] = [];
543
- const componentName = options.componentName || toPascalCase(pattern.name) + "Animation";
544
- const ts = options.typescript ?? true;
545
-
546
- lines.push("import styled, { keyframes } from 'styled-components';");
547
- if (ts) {
548
- lines.push("import type { FC, ReactNode } from 'react';");
549
- }
550
- lines.push("");
551
-
552
- lines.push(`const ${pattern.name}Keyframes = keyframes\``);
553
-
554
- if (pattern.properties.some((p) => p.keyframes && p.keyframes.length > 0)) {
555
- const allOffsets = new Set<number>();
556
- pattern.properties.forEach((prop) => {
557
- prop.keyframes?.forEach((kf) => allOffsets.add(kf.offset));
558
- });
559
- allOffsets.add(0);
560
- allOffsets.add(1);
561
-
562
- const sortedOffsets = Array.from(allOffsets).sort((a, b) => a - b);
563
-
564
- for (const offset of sortedOffsets) {
565
- lines.push(` ${offsetToPercent(offset)} {`);
566
- for (const prop of pattern.properties) {
567
- const kf = prop.keyframes?.find((k) => k.offset === offset);
568
- if (kf) {
569
- lines.push(` ${prop.name}: ${kf.value};`);
570
- } else if (offset === 0) {
571
- lines.push(` ${prop.name}: ${prop.from};`);
572
- } else if (offset === 1) {
573
- lines.push(` ${prop.name}: ${prop.to};`);
574
- }
575
- }
576
- lines.push(" }");
577
- }
578
- } else {
579
- lines.push(" from {");
580
- for (const prop of pattern.properties) {
581
- lines.push(` ${prop.name}: ${prop.from};`);
582
- }
583
- lines.push(" }");
584
- lines.push(" to {");
585
- for (const prop of pattern.properties) {
586
- lines.push(` ${prop.name}: ${prop.to};`);
587
- }
588
- lines.push(" }");
589
- }
590
-
591
- lines.push("`;");
592
- lines.push("");
593
-
594
- const iterationsVal = pattern.iterations === "infinite" ? "infinite" : pattern.iterations;
595
- const directionVal = pattern.direction !== "normal" ? pattern.direction : "";
596
- const fillModeVal = pattern.fillMode !== "none" ? pattern.fillMode : "";
597
-
598
- lines.push(`const ${componentName}Container = styled.div\``);
599
- lines.push(
600
- ` animation: \${${pattern.name}Keyframes} ${formatDuration(pattern.duration)} ${pattern.easing}${pattern.delay > 0 ? ` ${formatDuration(pattern.delay)}` : ""}${iterationsVal !== 1 ? ` ${iterationsVal}` : ""}${directionVal ? ` ${directionVal}` : ""}${fillModeVal ? ` ${fillModeVal}` : ""};`
601
- );
602
-
603
- if (options.includeReducedMotion) {
604
- lines.push("");
605
- lines.push(" @media (prefers-reduced-motion: reduce) {");
606
- lines.push(" animation: none;");
607
- lines.push(" }");
608
- }
609
-
610
- lines.push("`;");
611
- lines.push("");
612
-
613
- if (ts) {
614
- lines.push(`interface ${componentName}Props {`);
615
- lines.push(" children: ReactNode;");
616
- lines.push(" className?: string;");
617
- lines.push("}");
618
- lines.push("");
619
- lines.push(
620
- `export const ${componentName}: FC<${componentName}Props> = ({ children, className }) => {`
621
- );
622
- } else {
623
- lines.push(`export const ${componentName} = ({ children, className }) => {`);
624
- }
625
- lines.push(
626
- ` return <${componentName}Container className={className}>{children}</${componentName}Container>;`
627
- );
628
- lines.push("};");
629
-
630
- const code = lines.join("\n");
631
-
632
- return {
633
- code,
634
- metadata: {
635
- linesOfCode: countLines(code),
636
- hasKeyframes: true,
637
- hasReducedMotion: options.includeReducedMotion ?? true,
638
- dependencies: ["styled-components"],
639
- },
640
- };
641
- }
642
-
643
- /**
644
- * Emotion生成
645
- */
646
- function generateEmotion(
647
- pattern: MotionPatternInput,
648
- options: ImplementationOptions
649
- ): GenerationResult {
650
- const lines: string[] = [];
651
- const componentName = options.componentName || toPascalCase(pattern.name) + "Animation";
652
- const ts = options.typescript ?? true;
653
-
654
- lines.push("/** @jsxImportSource @emotion/react */");
655
- lines.push("import { css, keyframes } from '@emotion/react';");
656
- if (ts) {
657
- lines.push("import type { FC, ReactNode } from 'react';");
658
- }
659
- lines.push("");
660
-
661
- lines.push(`const ${pattern.name}Keyframes = keyframes\``);
662
-
663
- if (pattern.properties.some((p) => p.keyframes && p.keyframes.length > 0)) {
664
- const allOffsets = new Set<number>();
665
- pattern.properties.forEach((prop) => {
666
- prop.keyframes?.forEach((kf) => allOffsets.add(kf.offset));
667
- });
668
- allOffsets.add(0);
669
- allOffsets.add(1);
670
-
671
- const sortedOffsets = Array.from(allOffsets).sort((a, b) => a - b);
672
-
673
- for (const offset of sortedOffsets) {
674
- lines.push(` ${offsetToPercent(offset)} {`);
675
- for (const prop of pattern.properties) {
676
- const kf = prop.keyframes?.find((k) => k.offset === offset);
677
- if (kf) {
678
- lines.push(` ${prop.name}: ${kf.value};`);
679
- } else if (offset === 0) {
680
- lines.push(` ${prop.name}: ${prop.from};`);
681
- } else if (offset === 1) {
682
- lines.push(` ${prop.name}: ${prop.to};`);
683
- }
684
- }
685
- lines.push(" }");
686
- }
687
- } else {
688
- lines.push(" from {");
689
- for (const prop of pattern.properties) {
690
- lines.push(` ${prop.name}: ${prop.from};`);
691
- }
692
- lines.push(" }");
693
- lines.push(" to {");
694
- for (const prop of pattern.properties) {
695
- lines.push(` ${prop.name}: ${prop.to};`);
696
- }
697
- lines.push(" }");
698
- }
699
-
700
- lines.push("`;");
701
- lines.push("");
702
-
703
- const iterationsVal = pattern.iterations === "infinite" ? "infinite" : pattern.iterations;
704
- const directionVal = pattern.direction !== "normal" ? pattern.direction : "";
705
- const fillModeVal = pattern.fillMode !== "none" ? pattern.fillMode : "";
706
-
707
- lines.push(`const ${pattern.name}Style = css\``);
708
- lines.push(
709
- ` animation: \${${pattern.name}Keyframes} ${formatDuration(pattern.duration)} ${pattern.easing}${pattern.delay > 0 ? ` ${formatDuration(pattern.delay)}` : ""}${iterationsVal !== 1 ? ` ${iterationsVal}` : ""}${directionVal ? ` ${directionVal}` : ""}${fillModeVal ? ` ${fillModeVal}` : ""};`
710
- );
711
-
712
- if (options.includeReducedMotion) {
713
- lines.push("");
714
- lines.push(" @media (prefers-reduced-motion: reduce) {");
715
- lines.push(" animation: none;");
716
- lines.push(" }");
717
- }
718
-
719
- lines.push("`;");
720
- lines.push("");
721
-
722
- if (ts) {
723
- lines.push(`interface ${componentName}Props {`);
724
- lines.push(" children: ReactNode;");
725
- lines.push(" className?: string;");
726
- lines.push("}");
727
- lines.push("");
728
- lines.push(
729
- `export const ${componentName}: FC<${componentName}Props> = ({ children, className }) => {`
730
- );
731
- } else {
732
- lines.push(`export const ${componentName} = ({ children, className }) => {`);
733
- }
734
- lines.push(` return <div css={${pattern.name}Style} className={className}>{children}</div>;`);
735
- lines.push("};");
736
-
737
- const code = lines.join("\n");
738
-
739
- return {
740
- code,
741
- metadata: {
742
- linesOfCode: countLines(code),
743
- hasKeyframes: true,
744
- hasReducedMotion: options.includeReducedMotion ?? true,
745
- dependencies: ["@emotion/react"],
746
- },
747
- };
748
- }
749
-
750
- /**
751
- * Framer Motion生成
752
- */
753
- function generateFramerMotion(
754
- pattern: MotionPatternInput,
755
- options: ImplementationOptions
756
- ): GenerationResult {
757
- const lines: string[] = [];
758
- const componentName = options.componentName || toPascalCase(pattern.name) + "Motion";
759
- const ts = options.typescript ?? true;
760
- const isScroll = pattern.type === "scroll";
761
-
762
- lines.push("import { motion } from 'framer-motion';");
763
- if (ts) {
764
- lines.push("import type { FC, ReactNode } from 'react';");
765
- }
766
- lines.push("");
767
-
768
- lines.push(`const ${pattern.name}Variants = {`);
769
- lines.push(" initial: {");
770
- for (const prop of pattern.properties) {
771
- const cssName = prop.name.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
772
- lines.push(` ${cssName}: ${JSON.stringify(prop.from)},`);
773
- }
774
- lines.push(" },");
775
- lines.push(" animate: {");
776
- for (const prop of pattern.properties) {
777
- const cssName = prop.name.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
778
- lines.push(` ${cssName}: ${JSON.stringify(prop.to)},`);
779
- }
780
- lines.push(" },");
781
- lines.push("};");
782
- lines.push("");
783
-
784
- lines.push(`const ${pattern.name}Transition = {`);
785
- lines.push(` duration: ${pattern.duration / 1000},`);
786
- lines.push(` ease: ${JSON.stringify(pattern.easing)},`);
787
- if (pattern.delay > 0) {
788
- lines.push(` delay: ${pattern.delay / 1000},`);
789
- }
790
- if (pattern.iterations === "infinite") {
791
- lines.push(" repeat: Infinity,");
792
- } else if (pattern.iterations > 1) {
793
- lines.push(` repeat: ${pattern.iterations - 1},`);
794
- }
795
- if (pattern.direction === "alternate" || pattern.direction === "alternate-reverse") {
796
- lines.push(" repeatType: 'reverse',");
797
- }
798
- lines.push("};");
799
- lines.push("");
800
-
801
- if (ts) {
802
- lines.push(`interface ${componentName}Props {`);
803
- lines.push(" children: ReactNode;");
804
- lines.push(" className?: string;");
805
- lines.push("}");
806
- lines.push("");
807
- lines.push(
808
- `export const ${componentName}: FC<${componentName}Props> = ({ children, className }) => {`
809
- );
810
- } else {
811
- lines.push(`export const ${componentName} = ({ children, className }) => {`);
812
- }
813
- lines.push(" return (");
814
- lines.push(" <motion.div");
815
- lines.push(` variants={${pattern.name}Variants}`);
816
- lines.push(' initial="initial"');
817
-
818
- if (isScroll) {
819
- lines.push(' whileInView="animate"');
820
- lines.push(" viewport={{ once: true }}");
821
- } else {
822
- lines.push(' animate="animate"');
823
- }
824
-
825
- lines.push(` transition={${pattern.name}Transition}`);
826
- lines.push(" className={className}");
827
- lines.push(" >");
828
- lines.push(" {children}");
829
- lines.push(" </motion.div>");
830
- lines.push(" );");
831
- lines.push("};");
832
-
833
- if (options.includeReducedMotion) {
834
- lines.push("");
835
- lines.push("/* Note: Framer Motion automatically respects prefers-reduced-motion */");
836
- lines.push(
837
- '/* Set reducedMotion="user" in AnimatePresence or MotionConfig for custom handling */'
838
- );
839
- }
840
-
841
- const code = lines.join("\n");
842
-
843
- return {
844
- code,
845
- metadata: {
846
- linesOfCode: countLines(code),
847
- hasKeyframes: false,
848
- hasReducedMotion: options.includeReducedMotion ?? true,
849
- dependencies: ["framer-motion"],
850
- },
851
- };
852
- }
853
-
854
- /**
855
- * GSAP生成
856
- */
857
- function generateGSAP(
858
- pattern: MotionPatternInput,
859
- options: ImplementationOptions
860
- ): GenerationResult {
861
- const lines: string[] = [];
862
- const componentName = options.componentName || toPascalCase(pattern.name) + "GSAP";
863
- const ts = options.typescript ?? true;
864
- const isScroll = pattern.type === "scroll";
865
-
866
- lines.push("import { gsap } from 'gsap';");
867
- if (isScroll) {
868
- lines.push("import { ScrollTrigger } from 'gsap/ScrollTrigger';");
869
- lines.push("");
870
- lines.push("gsap.registerPlugin(ScrollTrigger);");
871
- }
872
- if (ts) {
873
- lines.push("import { useRef, useEffect } from 'react';");
874
- lines.push("import type { FC, ReactNode } from 'react';");
875
- } else {
876
- lines.push("import { useRef, useEffect } from 'react';");
877
- }
878
- lines.push("");
879
-
880
- lines.push(
881
- `const use${toPascalCase(pattern.name)}Animation = (ref${ts ? ": React.RefObject<HTMLDivElement>" : ""}) => {`
882
- );
883
- lines.push(" useEffect(() => {");
884
- lines.push(" if (!ref.current) return;");
885
- lines.push("");
886
-
887
- const toProps: string[] = [];
888
- for (const prop of pattern.properties) {
889
- const propName = prop.name.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
890
- toProps.push(` ${propName}: ${JSON.stringify(prop.to)}`);
891
- }
892
-
893
- const fromProps: string[] = [];
894
- for (const prop of pattern.properties) {
895
- const propName = prop.name.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
896
- fromProps.push(` ${propName}: ${JSON.stringify(prop.from)}`);
897
- }
898
-
899
- lines.push(" const animation = gsap.fromTo(");
900
- lines.push(" ref.current,");
901
- lines.push(" {");
902
- lines.push(fromProps.join(",\n"));
903
- lines.push(" },");
904
- lines.push(" {");
905
- lines.push(toProps.join(",\n") + ",");
906
- lines.push(` duration: ${pattern.duration / 1000},`);
907
- lines.push(` ease: ${JSON.stringify(pattern.easing)},`);
908
- if (pattern.delay > 0) {
909
- lines.push(` delay: ${pattern.delay / 1000},`);
910
- }
911
- if (pattern.iterations === "infinite") {
912
- lines.push(" repeat: -1,");
913
- } else if (pattern.iterations > 1) {
914
- lines.push(` repeat: ${pattern.iterations - 1},`);
915
- }
916
- if (pattern.direction === "alternate" || pattern.direction === "alternate-reverse") {
917
- lines.push(" yoyo: true,");
918
- }
919
-
920
- if (isScroll) {
921
- lines.push(" scrollTrigger: {");
922
- lines.push(" trigger: ref.current,");
923
- lines.push(" start: 'top 80%',");
924
- lines.push(" end: 'bottom 20%',");
925
- lines.push(" toggleActions: 'play none none reverse',");
926
- lines.push(" },");
927
- }
928
-
929
- lines.push(" }");
930
- lines.push(" );");
931
- lines.push("");
932
- lines.push(" return () => {");
933
- lines.push(" animation.kill();");
934
- lines.push(" };");
935
- lines.push(" }, [ref]);");
936
- lines.push("};");
937
- lines.push("");
938
-
939
- if (ts) {
940
- lines.push(`interface ${componentName}Props {`);
941
- lines.push(" children: ReactNode;");
942
- lines.push(" className?: string;");
943
- lines.push("}");
944
- lines.push("");
945
- lines.push(
946
- `export const ${componentName}: FC<${componentName}Props> = ({ children, className }) => {`
947
- );
948
- } else {
949
- lines.push(`export const ${componentName} = ({ children, className }) => {`);
950
- }
951
- lines.push(` const ref = useRef${ts ? "<HTMLDivElement>" : ""}(null);`);
952
- lines.push(` use${toPascalCase(pattern.name)}Animation(ref);`);
953
- lines.push("");
954
- lines.push(" return (");
955
- lines.push(" <div ref={ref} className={className}>");
956
- lines.push(" {children}");
957
- lines.push(" </div>");
958
- lines.push(" );");
959
- lines.push("};");
960
-
961
- if (options.includeReducedMotion) {
962
- lines.push("");
963
- lines.push("/* Add reduced motion check */");
964
- lines.push(
965
- '// const prefersReducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;'
966
- );
967
- lines.push("// if (prefersReducedMotion) return;");
968
- }
969
-
970
- const code = lines.join("\n");
971
- const dependencies = isScroll ? ["gsap", "gsap/ScrollTrigger"] : ["gsap"];
972
-
973
- return {
974
- code,
975
- metadata: {
976
- linesOfCode: countLines(code),
977
- hasKeyframes: false,
978
- hasReducedMotion: options.includeReducedMotion ?? true,
979
- dependencies,
980
- },
981
- };
982
- }
983
-
984
- /**
985
- * Three.js (React Three Fiber) 生成
986
- *
987
- * @react-three/fiber を使用した3Dアニメーションコードを生成
988
- * - useFrame によるアニメーションループ
989
- * - scroll-driven アニメーション対応
990
- * - TypeScript 型定義付き
991
- */
992
- function generateThreeJS(
993
- pattern: MotionPatternInput,
994
- options: ImplementationOptions
995
- ): GenerationResult {
996
- const lines: string[] = [];
997
- const componentName = options.componentName || toPascalCase(pattern.name) + "Scene";
998
- const ts = options.typescript ?? true;
999
- const isScroll = pattern.type === "scroll";
1000
-
1001
- // Imports
1002
- lines.push("import { useRef } from 'react';");
1003
- lines.push("import { Canvas, useFrame } from '@react-three/fiber';");
1004
- if (isScroll) {
1005
- lines.push("import { useScroll } from '@react-three/drei';");
1006
- }
1007
- if (ts) {
1008
- lines.push("import type { FC } from 'react';");
1009
- lines.push("import type { Mesh, Group } from 'three';");
1010
- }
1011
- lines.push("");
1012
-
1013
- // Extract animation properties and convert to Three.js-compatible values
1014
- const positionProps = pattern.properties.filter((p) =>
1015
- ["translateX", "translateY", "translateZ", "x", "y", "z"].includes(p.name)
1016
- );
1017
- const rotationProps = pattern.properties.filter((p) =>
1018
- ["rotateX", "rotateY", "rotateZ", "rotate"].includes(p.name)
1019
- );
1020
- const scaleProps = pattern.properties.filter((p) =>
1021
- ["scale", "scaleX", "scaleY", "scaleZ"].includes(p.name)
1022
- );
1023
- const opacityProps = pattern.properties.filter((p) => ["opacity"].includes(p.name));
1024
-
1025
- // Helper function name
1026
- const animatedObjectName = toPascalCase(pattern.name) + "Object";
1027
-
1028
- // Animated Object Component
1029
- if (ts) {
1030
- lines.push(`interface ${animatedObjectName}Props {`);
1031
- lines.push(" children?: React.ReactNode;");
1032
- lines.push("}");
1033
- lines.push("");
1034
- }
1035
-
1036
- lines.push(
1037
- `const ${animatedObjectName}${ts ? `: FC<${animatedObjectName}Props>` : ""} = ({ children }) => {`
1038
- );
1039
- lines.push(` const meshRef = useRef${ts ? "<Mesh>" : ""}(null);`);
1040
-
1041
- if (isScroll) {
1042
- lines.push(" const scroll = useScroll();");
1043
- lines.push("");
1044
- lines.push(" useFrame(() => {");
1045
- lines.push(" if (!meshRef.current) return;");
1046
- lines.push(" const progress = scroll.offset;");
1047
- } else {
1048
- lines.push(` const duration = ${pattern.duration / 1000}; // seconds`);
1049
- lines.push(` const startTime = useRef${ts ? "<number>" : ""}(0);`);
1050
- lines.push("");
1051
- lines.push(" useFrame((state) => {");
1052
- lines.push(" if (!meshRef.current) return;");
1053
- lines.push(" if (startTime.current === 0) startTime.current = state.clock.elapsedTime;");
1054
- lines.push("");
1055
- lines.push(" const elapsed = state.clock.elapsedTime - startTime.current;");
1056
- if (pattern.iterations === "infinite") {
1057
- lines.push(" const progress = (elapsed % duration) / duration;");
1058
- } else {
1059
- lines.push(" const progress = Math.min(elapsed / duration, 1);");
1060
- }
1061
- }
1062
-
1063
- lines.push("");
1064
-
1065
- // Apply easing
1066
- lines.push(" // Apply easing function");
1067
- lines.push(
1068
- ` const eased = ease${toPascalCase(pattern.easing.replace(/[^a-zA-Z]/g, ""))}(progress);`
1069
- );
1070
- lines.push("");
1071
-
1072
- // Position animations
1073
- if (positionProps.length > 0) {
1074
- lines.push(" // Position animation");
1075
- for (const prop of positionProps) {
1076
- const axis =
1077
- prop.name.replace(/translate|[XYZ]/gi, "").toLowerCase() ||
1078
- prop.name.charAt(prop.name.length - 1).toLowerCase();
1079
- const fromVal = parseFloat(prop.from) || 0;
1080
- const toVal = parseFloat(prop.to) || 0;
1081
- lines.push(
1082
- ` meshRef.current.position.${axis} = ${fromVal} + (${toVal} - ${fromVal}) * eased;`
1083
- );
1084
- }
1085
- }
1086
-
1087
- // Rotation animations
1088
- if (rotationProps.length > 0) {
1089
- lines.push(" // Rotation animation");
1090
- for (const prop of rotationProps) {
1091
- const axis = prop.name.replace("rotate", "").toLowerCase() || "y";
1092
- const fromVal = parseFloat(prop.from) || 0;
1093
- const toVal = parseFloat(prop.to) || Math.PI * 2;
1094
- lines.push(
1095
- ` meshRef.current.rotation.${axis} = ${fromVal} + (${toVal} - ${fromVal}) * eased;`
1096
- );
1097
- }
1098
- }
1099
-
1100
- // Scale animations
1101
- const scaleProp = scaleProps[0];
1102
- if (scaleProp) {
1103
- lines.push(" // Scale animation");
1104
- const fromVal = parseFloat(scaleProp.from) || 1;
1105
- const toVal = parseFloat(scaleProp.to) || 1;
1106
- lines.push(` const scaleValue = ${fromVal} + (${toVal} - ${fromVal}) * eased;`);
1107
- lines.push(" meshRef.current.scale.setScalar(scaleValue);");
1108
- }
1109
-
1110
- // Opacity animations (material)
1111
- const opacityProp = opacityProps[0];
1112
- if (opacityProp) {
1113
- lines.push(" // Opacity animation");
1114
- const fromVal = parseFloat(opacityProp.from) || 1;
1115
- const toVal = parseFloat(opacityProp.to) || 0;
1116
- lines.push(` if (meshRef.current.material && 'opacity' in meshRef.current.material) {`);
1117
- lines.push(
1118
- ` (meshRef.current.material as any).opacity = ${fromVal} + (${toVal} - ${fromVal}) * eased;`
1119
- );
1120
- lines.push(" }");
1121
- }
1122
-
1123
- lines.push(" });");
1124
- lines.push("");
1125
- lines.push(" return (");
1126
- lines.push(" <mesh ref={meshRef}>");
1127
- lines.push(" {children || (");
1128
- lines.push(" <>");
1129
- lines.push(" <boxGeometry args={[1, 1, 1]} />");
1130
- lines.push(' <meshStandardMaterial color="#4f46e5" transparent />');
1131
- lines.push(" </>");
1132
- lines.push(" )}");
1133
- lines.push(" </mesh>");
1134
- lines.push(" );");
1135
- lines.push("};");
1136
- lines.push("");
1137
-
1138
- // Easing function
1139
- lines.push("// Easing function");
1140
- const easingName = `ease${toPascalCase(pattern.easing.replace(/[^a-zA-Z]/g, ""))}`;
1141
- lines.push(`function ${easingName}(t${ts ? ": number" : ""})${ts ? ": number" : ""} {`);
1142
- switch (pattern.easing) {
1143
- case "ease-in":
1144
- lines.push(" return t * t;");
1145
- break;
1146
- case "ease-out":
1147
- lines.push(" return t * (2 - t);");
1148
- break;
1149
- case "ease-in-out":
1150
- lines.push(" return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;");
1151
- break;
1152
- case "linear":
1153
- lines.push(" return t;");
1154
- break;
1155
- default:
1156
- // Default to ease-out for unknown easing
1157
- lines.push(" return t * (2 - t);");
1158
- }
1159
- lines.push("}");
1160
- lines.push("");
1161
-
1162
- // Main Scene Component
1163
- if (ts) {
1164
- lines.push(`interface ${componentName}Props {`);
1165
- lines.push(" className?: string;");
1166
- lines.push("}");
1167
- lines.push("");
1168
- }
1169
-
1170
- lines.push(
1171
- `export const ${componentName}${ts ? `: FC<${componentName}Props>` : ""} = ({ className }) => {`
1172
- );
1173
-
1174
- if (options.includeReducedMotion) {
1175
- lines.push(" // Check for reduced motion preference");
1176
- lines.push(' const prefersReducedMotion = typeof window !== "undefined"');
1177
- lines.push(' && window.matchMedia("(prefers-reduced-motion: reduce)").matches;');
1178
- lines.push("");
1179
- lines.push(" if (prefersReducedMotion) {");
1180
- lines.push(" return (");
1181
- lines.push(
1182
- ' <div className={className} style={{ width: "100%", height: "400px", background: "#1a1a2e" }}>'
1183
- );
1184
- lines.push(" {/* Static fallback for reduced motion */}");
1185
- lines.push(" </div>");
1186
- lines.push(" );");
1187
- lines.push(" }");
1188
- lines.push("");
1189
- }
1190
-
1191
- lines.push(" return (");
1192
- lines.push(' <div className={className} style={{ width: "100%", height: "400px" }}>');
1193
- lines.push(" <Canvas camera={{ position: [0, 0, 5], fov: 50 }}>");
1194
- lines.push(" <ambientLight intensity={0.5} />");
1195
- lines.push(" <pointLight position={[10, 10, 10]} />");
1196
- lines.push(` <${animatedObjectName} />`);
1197
- lines.push(" </Canvas>");
1198
- lines.push(" </div>");
1199
- lines.push(" );");
1200
- lines.push("};");
1201
-
1202
- const code = lines.join("\n");
1203
- const dependencies = isScroll
1204
- ? ["@react-three/fiber", "@react-three/drei", "three"]
1205
- : ["@react-three/fiber", "three"];
1206
-
1207
- return {
1208
- code,
1209
- metadata: {
1210
- linesOfCode: countLines(code),
1211
- hasKeyframes: false,
1212
- hasReducedMotion: options.includeReducedMotion ?? true,
1213
- dependencies,
1214
- },
1215
- };
1216
- }
1217
-
1218
- /**
1219
- * Lottie (lottie-react) 生成
1220
- *
1221
- * lottie-react を使用したアニメーションコンポーネントを生成
1222
- * - アニメーションデータ構造生成(Lottie JSON形式)
1223
- * - React コンポーネントラッパー
1224
- * - TypeScript 型定義付き
1225
- */
1226
- function generateLottie(
1227
- pattern: MotionPatternInput,
1228
- options: ImplementationOptions
1229
- ): GenerationResult {
1230
- const lines: string[] = [];
1231
- const componentName = options.componentName || toPascalCase(pattern.name) + "Animation";
1232
- const ts = options.typescript ?? true;
1233
-
1234
- // Imports
1235
- lines.push("import Lottie from 'lottie-react';");
1236
- if (ts) {
1237
- lines.push("import type { FC } from 'react';");
1238
- lines.push("import type { LottieComponentProps } from 'lottie-react';");
1239
- }
1240
- lines.push("");
1241
-
1242
- // Convert CSS animation properties to Lottie keyframes format
1243
- // Note: This generates a simplified Lottie JSON structure
1244
- lines.push("/**");
1245
- lines.push(" * Lottie Animation Data");
1246
- lines.push(" * Generated from CSS animation pattern.");
1247
- lines.push(
1248
- " * For complex animations, replace with actual Lottie JSON export from After Effects/Figma."
1249
- );
1250
- lines.push(" */");
1251
-
1252
- // Generate Lottie-like animation data structure
1253
- const durationInFrames = Math.round((pattern.duration / 1000) * 60); // 60fps
1254
- const startFrame = Math.round((pattern.delay / 1000) * 60);
1255
-
1256
- lines.push(`const ${pattern.name}AnimationData = {`);
1257
- lines.push(' v: "5.7.8",');
1258
- lines.push(` fr: 60,`); // Frame rate
1259
- lines.push(` ip: ${startFrame},`); // In point
1260
- lines.push(` op: ${startFrame + durationInFrames},`); // Out point
1261
- lines.push(" w: 200,"); // Width
1262
- lines.push(" h: 200,"); // Height
1263
- lines.push(' nm: "' + pattern.name + '",');
1264
- lines.push(" ddd: 0,");
1265
- lines.push(" assets: [],");
1266
- lines.push(" layers: [");
1267
- lines.push(" {");
1268
- lines.push(" ddd: 0,");
1269
- lines.push(" ind: 1,");
1270
- lines.push(" ty: 4,"); // Shape layer
1271
- lines.push(` nm: "${pattern.name}",`);
1272
- lines.push(` sr: 1,`);
1273
- lines.push(" ks: {"); // Transform
1274
-
1275
- // Opacity animation
1276
- const opacityProp = pattern.properties.find((p) => p.name === "opacity");
1277
- if (opacityProp) {
1278
- const fromOpacity = parseFloat(opacityProp.from) * 100 || 0;
1279
- const toOpacity = parseFloat(opacityProp.to) * 100 || 100;
1280
- lines.push(" o: {"); // Opacity
1281
- lines.push(" a: 1,"); // Animated
1282
- lines.push(" k: [");
1283
- lines.push(
1284
- ` { i: { x: [0.4], y: [1] }, o: { x: [0.6], y: [0] }, t: ${startFrame}, s: [${fromOpacity}] },`
1285
- );
1286
- lines.push(` { t: ${startFrame + durationInFrames}, s: [${toOpacity}] }`);
1287
- lines.push(" ]");
1288
- lines.push(" },");
1289
- } else {
1290
- lines.push(" o: { a: 0, k: 100 },");
1291
- }
1292
-
1293
- // Position animation (transform: translate)
1294
- const translateXProp = pattern.properties.find((p) => p.name === "translateX");
1295
- const translateYProp = pattern.properties.find((p) => p.name === "translateY");
1296
- if (translateXProp || translateYProp) {
1297
- const fromX = translateXProp ? parseFloat(translateXProp.from) || 0 : 0;
1298
- const toX = translateXProp ? parseFloat(translateXProp.to) || 0 : 0;
1299
- const fromY = translateYProp ? parseFloat(translateYProp.from) || 0 : 0;
1300
- const toY = translateYProp ? parseFloat(translateYProp.to) || 0 : 0;
1301
- lines.push(" p: {"); // Position
1302
- lines.push(" a: 1,");
1303
- lines.push(" k: [");
1304
- lines.push(
1305
- ` { i: { x: 0.4, y: 1 }, o: { x: 0.6, y: 0 }, t: ${startFrame}, s: [${100 + fromX}, ${100 + fromY}, 0] },`
1306
- );
1307
- lines.push(
1308
- ` { t: ${startFrame + durationInFrames}, s: [${100 + toX}, ${100 + toY}, 0] }`
1309
- );
1310
- lines.push(" ]");
1311
- lines.push(" },");
1312
- } else {
1313
- lines.push(" p: { a: 0, k: [100, 100, 0] },");
1314
- }
1315
-
1316
- // Scale animation
1317
- const scaleProp = pattern.properties.find((p) => p.name === "scale");
1318
- if (scaleProp) {
1319
- const fromScale = parseFloat(scaleProp.from) * 100 || 100;
1320
- const toScale = parseFloat(scaleProp.to) * 100 || 100;
1321
- lines.push(" s: {"); // Scale
1322
- lines.push(" a: 1,");
1323
- lines.push(" k: [");
1324
- lines.push(
1325
- ` { i: { x: [0.4], y: [1] }, o: { x: [0.6], y: [0] }, t: ${startFrame}, s: [${fromScale}, ${fromScale}, 100] },`
1326
- );
1327
- lines.push(
1328
- ` { t: ${startFrame + durationInFrames}, s: [${toScale}, ${toScale}, 100] }`
1329
- );
1330
- lines.push(" ]");
1331
- lines.push(" },");
1332
- } else {
1333
- lines.push(" s: { a: 0, k: [100, 100, 100] },");
1334
- }
1335
-
1336
- // Rotation animation
1337
- const rotateProp = pattern.properties.find((p) => p.name === "rotate");
1338
- if (rotateProp) {
1339
- const fromRotate = parseFloat(rotateProp.from) || 0;
1340
- const toRotate = parseFloat(rotateProp.to) || 0;
1341
- lines.push(" r: {"); // Rotation
1342
- lines.push(" a: 1,");
1343
- lines.push(" k: [");
1344
- lines.push(
1345
- ` { i: { x: [0.4], y: [1] }, o: { x: [0.6], y: [0] }, t: ${startFrame}, s: [${fromRotate}] },`
1346
- );
1347
- lines.push(` { t: ${startFrame + durationInFrames}, s: [${toRotate}] }`);
1348
- lines.push(" ]");
1349
- lines.push(" },");
1350
- } else {
1351
- lines.push(" r: { a: 0, k: 0 },");
1352
- }
1353
-
1354
- lines.push(" a: { a: 0, k: [100, 100, 0] }"); // Anchor point
1355
- lines.push(" },");
1356
-
1357
- // Shape contents (simple rectangle)
1358
- lines.push(" shapes: [");
1359
- lines.push(" {");
1360
- lines.push(' ty: "rc",'); // Rectangle
1361
- lines.push(" d: 1,");
1362
- lines.push(" s: { a: 0, k: [100, 100] },"); // Size
1363
- lines.push(" p: { a: 0, k: [0, 0] },"); // Position
1364
- lines.push(" r: { a: 0, k: 8 },"); // Corner radius
1365
- lines.push(' nm: "Rectangle"');
1366
- lines.push(" },");
1367
- lines.push(" {");
1368
- lines.push(' ty: "fl",'); // Fill
1369
- lines.push(" c: { a: 0, k: [0.31, 0.275, 0.898, 1] },"); // Color (#4f46e5)
1370
- lines.push(" o: { a: 0, k: 100 },");
1371
- lines.push(' nm: "Fill"');
1372
- lines.push(" }");
1373
- lines.push(" ],");
1374
- lines.push(` ip: ${startFrame},`);
1375
- lines.push(` op: ${startFrame + durationInFrames},`);
1376
- lines.push(" st: 0");
1377
- lines.push(" }");
1378
- lines.push(" ]");
1379
- lines.push("};");
1380
- lines.push("");
1381
-
1382
- // React component
1383
- if (ts) {
1384
- lines.push(`interface ${componentName}Props {`);
1385
- lines.push(" className?: string;");
1386
- lines.push(" loop?: boolean;");
1387
- lines.push(" autoplay?: boolean;");
1388
- lines.push("}");
1389
- lines.push("");
1390
- }
1391
-
1392
- lines.push(`export const ${componentName}${ts ? `: FC<${componentName}Props>` : ""} = ({`);
1393
- lines.push(" className,");
1394
- lines.push(` loop = ${pattern.iterations === "infinite"},`);
1395
- lines.push(" autoplay = true,");
1396
- lines.push("}) => {");
1397
-
1398
- if (options.includeReducedMotion) {
1399
- lines.push(" // Check for reduced motion preference");
1400
- lines.push(' const prefersReducedMotion = typeof window !== "undefined"');
1401
- lines.push(' && window.matchMedia("(prefers-reduced-motion: reduce)").matches;');
1402
- lines.push("");
1403
- lines.push(" if (prefersReducedMotion) {");
1404
- lines.push(" return (");
1405
- lines.push(" <div className={className} style={{ width: 200, height: 200 }}>");
1406
- lines.push(" {/* Static fallback for reduced motion */}");
1407
- lines.push(
1408
- ' <div style={{ width: 100, height: 100, background: "#4f46e5", borderRadius: 8, margin: "auto" }} />'
1409
- );
1410
- lines.push(" </div>");
1411
- lines.push(" );");
1412
- lines.push(" }");
1413
- lines.push("");
1414
- }
1415
-
1416
- lines.push(" return (");
1417
- lines.push(" <Lottie");
1418
- lines.push(` animationData={${pattern.name}AnimationData}`);
1419
- lines.push(" loop={loop}");
1420
- lines.push(" autoplay={autoplay}");
1421
- lines.push(" className={className}");
1422
- lines.push(" style={{ width: 200, height: 200 }}");
1423
- lines.push(" />");
1424
- lines.push(" );");
1425
- lines.push("};");
1426
- lines.push("");
1427
-
1428
- // Usage instructions
1429
- lines.push("/**");
1430
- lines.push(" * Usage:");
1431
- lines.push(` * import { ${componentName} } from './path-to-component';`);
1432
- lines.push(" *");
1433
- lines.push(` * <${componentName} />`);
1434
- lines.push(` * <${componentName} loop={false} autoplay={true} />`);
1435
- lines.push(" *");
1436
- lines.push(" * Note: For production use, export your animation from After Effects with");
1437
- lines.push(" * Bodymovin plugin or from Figma, and replace the animationData above.");
1438
- lines.push(" */");
1439
-
1440
- const code = lines.join("\n");
1441
-
1442
- return {
1443
- code,
1444
- metadata: {
1445
- linesOfCode: countLines(code),
1446
- hasKeyframes: false,
1447
- hasReducedMotion: options.includeReducedMotion ?? true,
1448
- dependencies: ["lottie-react"],
1449
- },
1450
- };
1451
- }
1452
-
1453
- /**
1454
- * メイン生成関数
1455
- */
1456
- function generateImplementation(
1457
- pattern: MotionPatternInput,
1458
- format: ImplementationFormat,
1459
- options: ImplementationOptions
1460
- ): GenerationResult {
1461
- switch (format) {
1462
- case "css":
1463
- return generateCSS(pattern, options);
1464
- case "css-module":
1465
- return generateCSSModule(pattern, options);
1466
- case "tailwind":
1467
- return generateTailwind(pattern, options);
1468
- case "styled-components":
1469
- return generateStyledComponents(pattern, options);
1470
- case "emotion":
1471
- return generateEmotion(pattern, options);
1472
- case "framer-motion":
1473
- return generateFramerMotion(pattern, options);
1474
- case "gsap":
1475
- return generateGSAP(pattern, options);
1476
- case "three-js":
1477
- return generateThreeJS(pattern, options);
1478
- case "lottie":
1479
- return generateLottie(pattern, options);
1480
- default:
1481
- return generateCSS(pattern, options);
1482
- }
1483
- }
1484
-
1485
- // =====================================================
1486
- // 実装コード生成ヘルパー(v0.1.0: include_implementation用)
1487
- // =====================================================
1488
-
1489
- /**
1490
- * MotionTypeをMotionPatternInput用のtypeに変換
1491
- * @param type MotionType
1492
- * @returns MotionPatternInputType
1493
- */
1494
- function mapMotionType(type: MotionPattern["type"]): MotionPatternInput["type"] {
1495
- switch (type) {
1496
- case "css_animation":
1497
- case "library_animation":
1498
- case "video_motion":
1499
- return "animation";
1500
- case "css_transition":
1501
- return "transition";
1502
- case "keyframes":
1503
- return "keyframe";
1504
- default:
1505
- return "animation";
1506
- }
1507
- }
1508
-
1509
- /**
1510
- * MotionPatternからMotionPatternInputに変換
1511
- * @param pattern 検索結果のパターン
1512
- * @returns コード生成用のパターン入力
1513
- */
1514
- function patternToPatternInput(pattern: MotionPattern): MotionPatternInput {
1515
- // animationオブジェクトから値を抽出、easingはオブジェクトの可能性あり
1516
- const duration = pattern.animation?.duration ?? 300;
1517
- const easingConfig = pattern.animation?.easing;
1518
- // easingConfigがオブジェクトの場合はtypeまたはcubicBezierを使用
1519
- let easing = "ease";
1520
- if (easingConfig) {
1521
- if (easingConfig.cubicBezier) {
1522
- easing = `cubic-bezier(${easingConfig.cubicBezier.join(", ")})`;
1523
- } else if (easingConfig.type && easingConfig.type !== "cubic-bezier") {
1524
- easing = easingConfig.type;
1525
- }
1526
- }
1527
- const delay = pattern.animation?.delay ?? 0;
1528
- const iterations = pattern.animation?.iterations ?? 1;
1529
- const direction = pattern.animation?.direction ?? "normal";
1530
- const fillMode = pattern.animation?.fillMode ?? "none";
1531
-
1532
- return {
1533
- type: mapMotionType(pattern.type),
1534
- name: pattern.name ?? "unnamed",
1535
- duration,
1536
- delay,
1537
- easing,
1538
- iterations,
1539
- direction,
1540
- fillMode,
1541
- // propertiesのpropertyをnameに変換
1542
- properties: pattern.properties?.map((p) => ({
1543
- name: p.property ?? "opacity",
1544
- from: String(p.from ?? "0"),
1545
- to: String(p.to ?? "1"),
1546
- })) ?? [{ name: "opacity", from: "0", to: "1" }],
1547
- };
1548
- }
1549
-
1550
- /**
1551
- * 検索結果のパターンから実装コード情報を生成
1552
- * @param pattern 検索結果のパターン
1553
- * @returns 実装コード情報
1554
- */
1555
- function generateImplementationForPattern(pattern: MotionPattern): MotionImplementation {
1556
- const patternInput = patternToPatternInput(pattern);
1557
- const implementation: MotionImplementation = {};
1558
-
1559
- // transitionタイプの場合(css_transition)
1560
- if (pattern.type === "css_transition") {
1561
- const props = patternInput.properties.map((p) => p.name).join(", ");
1562
- implementation.transition = `transition: ${props} ${formatDuration(patternInput.duration)} ${patternInput.easing};`;
1563
- return implementation;
1564
- }
1565
-
1566
- // animation/@keyframesタイプの場合
1567
- // @keyframes生成
1568
- const keyframeLines: string[] = [];
1569
- keyframeLines.push(`@keyframes ${pattern.name} {`);
1570
- keyframeLines.push(" from {");
1571
- for (const prop of patternInput.properties) {
1572
- keyframeLines.push(` ${prop.name}: ${prop.from};`);
1573
- }
1574
- keyframeLines.push(" }");
1575
- keyframeLines.push(" to {");
1576
- for (const prop of patternInput.properties) {
1577
- keyframeLines.push(` ${prop.name}: ${prop.to};`);
1578
- }
1579
- keyframeLines.push(" }");
1580
- keyframeLines.push("}");
1581
- implementation.keyframes = keyframeLines.join("\n");
1582
-
1583
- // animationプロパティ生成
1584
- implementation.animation = `animation: ${pattern.name} ${formatDuration(patternInput.duration)} ${patternInput.easing};`;
1585
-
1586
- // Tailwindクラス生成
1587
- implementation.tailwind = `animate-${pattern.name}`;
1588
-
1589
- return implementation;
1590
- }
1591
-
1592
- // =====================================================
1593
- // 多様性フィルタリング (MMR強化)
1594
- // =====================================================
1595
-
1596
- /**
1597
- * 2つの文字列の類似度を計算(Levenshtein距離ベース)
1598
- * @param a 比較元文字列
1599
- * @param b 比較先文字列
1600
- * @returns 類似度 (0.0-1.0)
1601
- */
1602
- function calculateNameSimilarity(a: string | undefined, b: string | undefined): number {
1603
- if (!a || !b) {
1604
- return 0;
1605
- }
1606
- const normalizedA = a.toLowerCase().replace(/[-_\s]/g, "");
1607
- const normalizedB = b.toLowerCase().replace(/[-_\s]/g, "");
1608
-
1609
- if (normalizedA === normalizedB) {
1610
- return 1.0;
1611
- }
1612
-
1613
- // 共通のプレフィックスをチェック(例: fadeIn, fadeInUp → 高い類似度)
1614
- let commonPrefixLen = 0;
1615
- const minLen = Math.min(normalizedA.length, normalizedB.length);
1616
- for (let i = 0; i < minLen; i++) {
1617
- if (normalizedA[i] === normalizedB[i]) {
1618
- commonPrefixLen++;
1619
- } else {
1620
- break;
1621
- }
1622
- }
1623
-
1624
- // プレフィックス類似度(4文字以上の共通プレフィックスで高い類似度)
1625
- if (commonPrefixLen >= 4) {
1626
- return 0.6 + 0.4 * (commonPrefixLen / Math.max(normalizedA.length, normalizedB.length));
1627
- }
1628
-
1629
- // 部分文字列チェック
1630
- if (normalizedA.includes(normalizedB) || normalizedB.includes(normalizedA)) {
1631
- return 0.7;
1632
- }
1633
-
1634
- return 0;
1635
- }
1636
-
1637
- /**
1638
- * 2つのモーションパターン間の類似度を計算
1639
- * 名前、カテゴリ、トリガー、アニメーション設定を比較
1640
- * @param a 比較元パターン
1641
- * @param b 比較先パターン
1642
- * @returns 類似度 (0.0-1.0)
1643
- */
1644
- function calculatePatternSimilarity(a: MotionSearchResultItem, b: MotionSearchResultItem): number {
1645
- let similarityScore = 0;
1646
- let weightTotal = 0;
1647
-
1648
- // 名前の類似度 (重み: 0.25) - v0.1.0追加
1649
- const nameWeight = 0.25;
1650
- const nameSimilarity = calculateNameSimilarity(a.pattern.name, b.pattern.name);
1651
- similarityScore += nameWeight * nameSimilarity;
1652
- weightTotal += nameWeight;
1653
-
1654
- // カテゴリの一致 (重み: 0.25)
1655
- const categoryWeight = 0.25;
1656
- if (a.pattern.category === b.pattern.category) {
1657
- similarityScore += categoryWeight;
1658
- }
1659
- weightTotal += categoryWeight;
1660
-
1661
- // トリガーの一致 (重み: 0.15)
1662
- const triggerWeight = 0.15;
1663
- if (a.pattern.trigger === b.pattern.trigger) {
1664
- similarityScore += triggerWeight;
1665
- }
1666
- weightTotal += triggerWeight;
1667
-
1668
- // タイプの一致 (重み: 0.1)
1669
- const typeWeight = 0.1;
1670
- if (a.pattern.type === b.pattern.type) {
1671
- similarityScore += typeWeight;
1672
- }
1673
- weightTotal += typeWeight;
1674
-
1675
- // duration類似度 (重み: 0.1)
1676
- const durationWeight = 0.1;
1677
- const durationA = a.pattern.animation?.duration ?? 0;
1678
- const durationB = b.pattern.animation?.duration ?? 0;
1679
- if (durationA > 0 && durationB > 0) {
1680
- const durationRatio = Math.min(durationA, durationB) / Math.max(durationA, durationB);
1681
- similarityScore += durationWeight * durationRatio;
1682
- } else if (durationA === 0 && durationB === 0) {
1683
- similarityScore += durationWeight;
1684
- }
1685
- weightTotal += durationWeight;
1686
-
1687
- // easing類似度 (重み: 0.075)
1688
- const easingWeight = 0.075;
1689
- const easingA = a.pattern.animation?.easing?.type ?? "unknown";
1690
- const easingB = b.pattern.animation?.easing?.type ?? "unknown";
1691
- if (easingA === easingB) {
1692
- similarityScore += easingWeight;
1693
- }
1694
- weightTotal += easingWeight;
1695
-
1696
- // プロパティ類似度 (重み: 0.075)
1697
- const propertiesWeight = 0.075;
1698
- const propsA = new Set(a.pattern.properties?.map((p) => p.property) ?? []);
1699
- const propsB = new Set(b.pattern.properties?.map((p) => p.property) ?? []);
1700
- if (propsA.size > 0 && propsB.size > 0) {
1701
- const intersection = [...propsA].filter((p) => propsB.has(p)).length;
1702
- const union = new Set([...propsA, ...propsB]).size;
1703
- similarityScore += propertiesWeight * (intersection / union);
1704
- } else if (propsA.size === 0 && propsB.size === 0) {
1705
- similarityScore += propertiesWeight;
1706
- }
1707
- weightTotal += propertiesWeight;
1708
-
1709
- return weightTotal > 0 ? similarityScore / weightTotal : 0;
1710
- }
1711
-
1712
- /**
1713
- * MMR (Maximal Marginal Relevance) アルゴリズムで多様性フィルタリングを適用
1714
- *
1715
- * MMRスコア = λ * relevance - (1-λ) * max_similarity_to_selected
1716
- *
1717
- * @param results 検索結果配列(類似度順)
1718
- * @param lambda λ値(0.0-1.0)- 0.0で最大多様性、1.0で関連度のみ
1719
- * @param ensureCategoryDiversity カテゴリ分散を強制するか
1720
- * @param limit 最大結果数
1721
- * @returns フィルタリング後の検索結果
1722
- */
1723
- function applyDiversityFilter(
1724
- results: MotionSearchResultItem[],
1725
- lambda: number,
1726
- ensureCategoryDiversity: boolean,
1727
- limit: number
1728
- ): MotionSearchResultItem[] {
1729
- if (results.length === 0) {
1730
- return results;
1731
- }
1732
-
1733
- // λ=1.0 の場合、多様性フィルタなし(関連度順のまま)
1734
- if (lambda >= 1.0) {
1735
- return results.slice(0, limit);
1736
- }
1737
-
1738
- // λ=0.0 かつ ensureCategoryDiversity=false の場合、類似度順でフィルタリングのみ
1739
- // ただし、同一名パターンは除外
1740
- if (lambda <= 0.0 && !ensureCategoryDiversity) {
1741
- const selected: MotionSearchResultItem[] = [];
1742
- const usedNames = new Set<string>();
1743
-
1744
- for (const result of results) {
1745
- if (selected.length >= limit) break;
1746
-
1747
- const name = result.pattern.name?.toLowerCase() ?? "";
1748
- if (!usedNames.has(name)) {
1749
- selected.push(result);
1750
- if (name) usedNames.add(name);
1751
- }
1752
- }
1753
- return selected;
1754
- }
1755
-
1756
- // MMRアルゴリズムによる選択
1757
- const selected: MotionSearchResultItem[] = [];
1758
- const remaining = [...results];
1759
- const usedCategories = new Map<MotionCategory, number>();
1760
-
1761
- while (remaining.length > 0 && selected.length < limit) {
1762
- let bestIdx = 0;
1763
- let bestScore = -Infinity;
1764
-
1765
- for (let i = 0; i < remaining.length; i++) {
1766
- const candidate = remaining[i];
1767
- if (!candidate) continue;
1768
-
1769
- // 関連度スコア(検索結果の類似度)
1770
- const relevance = candidate.similarity;
1771
-
1772
- // 選択済み結果との最大類似度を計算
1773
- let maxSimilarityToSelected = 0;
1774
- for (const sel of selected) {
1775
- const sim = calculatePatternSimilarity(sel, candidate);
1776
- if (sim > maxSimilarityToSelected) {
1777
- maxSimilarityToSelected = sim;
1778
- }
1779
- }
1780
-
1781
- // MMRスコア計算: λ * relevance - (1-λ) * max_similarity_to_selected
1782
- let mmrScore = lambda * relevance - (1 - lambda) * maxSimilarityToSelected;
1783
-
1784
- // カテゴリ分散ボーナス(ensureCategoryDiversity=true の場合)
1785
- if (ensureCategoryDiversity) {
1786
- const category = candidate.pattern.category;
1787
- const categoryCount = usedCategories.get(category) ?? 0;
1788
-
1789
- // 未使用カテゴリにはボーナス
1790
- if (categoryCount === 0) {
1791
- mmrScore += 0.1;
1792
- } else if (categoryCount >= 2) {
1793
- // 同一カテゴリ3件以上は大きくペナルティ
1794
- mmrScore -= 0.2 * categoryCount;
1795
- }
1796
- }
1797
-
1798
- if (mmrScore > bestScore) {
1799
- bestScore = mmrScore;
1800
- bestIdx = i;
1801
- }
1802
- }
1803
-
1804
- // 最良候補を選択
1805
- const chosenItem = remaining.splice(bestIdx, 1)[0];
1806
- if (!chosenItem) break;
1807
- selected.push(chosenItem);
1808
-
1809
- // カテゴリカウントを更新
1810
- const category = chosenItem.pattern.category;
1811
- usedCategories.set(category, (usedCategories.get(category) ?? 0) + 1);
1812
- }
1813
-
1814
- if (isDevelopment()) {
1815
- logger.info("[MCP Tool] motion.search MMR diversity filter applied", {
1816
- originalCount: results.length,
1817
- filteredCount: selected.length,
1818
- lambda,
1819
- ensureCategoryDiversity,
1820
- categoryDistribution: Object.fromEntries(usedCategories),
1821
- });
1822
- }
1823
-
1824
- return selected;
1825
- }
1826
-
1827
- /**
1828
- * 検索結果に実装コードを付与
1829
- * @param results 検索結果配列
1830
- * @returns 実装コードが付与された検索結果
1831
- */
1832
- function enrichResultsWithImplementation(
1833
- results: MotionSearchResultItem[]
1834
- ): MotionSearchResultItem[] {
1835
- return results.map((result) => ({
1836
- ...result,
1837
- implementation: generateImplementationForPattern(result.pattern),
1838
- }));
1839
- }
169
+ const prismaClientDI = createDIFactory<IPrismaClient>("MotionSearchPrismaClient");
170
+ export const setMotionSearchPrismaClientFactory = prismaClientDI.set;
171
+ export const resetMotionSearchPrismaClientFactory = prismaClientDI.reset;
1840
172
 
1841
173
  // =====================================================
1842
174
  // ハンドラー
@@ -1861,14 +193,12 @@ export async function motionSearchHandler(input: unknown): Promise<MotionSearchO
1861
193
  try {
1862
194
  validated = motionSearchInputSchema.parse(input);
1863
195
  } catch (error) {
1864
- if (isDevelopment()) {
1865
- logger.error("[MCP Tool] motion.search validation error", { error });
1866
- }
196
+ logger.warn("[MCP Tool] motion.search validation error", { error: (error as Error).message });
1867
197
  return {
1868
198
  success: false,
1869
199
  error: {
1870
200
  code: MOTION_SEARCH_ERROR_CODES.VALIDATION_ERROR,
1871
- message: error instanceof Error ? error.message : "Invalid input",
201
+ message: sanitizeErrorMessage(error),
1872
202
  },
1873
203
  };
1874
204
  }
@@ -1889,8 +219,18 @@ export async function motionSearchHandler(input: unknown): Promise<MotionSearchO
1889
219
  * action: 'search' の処理
1890
220
  */
1891
221
  async function handleSearchAction(validated: MotionSearchInput): Promise<MotionSearchOutput> {
222
+ // Search result cache check / 検索キャッシュチェック
223
+ const cacheKey = generateCacheKey(
224
+ "motion.search",
225
+ validated as unknown as Record<string, unknown>
226
+ );
227
+ const cached = getCachedResult<MotionSearchOutput>(cacheKey);
228
+ if (cached) {
229
+ return cached;
230
+ }
231
+
1892
232
  // サービスファクトリのチェック
1893
- if (!serviceFactory) {
233
+ if (!serviceFactoryDI.get()) {
1894
234
  if (isDevelopment()) {
1895
235
  logger.error("[MCP Tool] motion.search service factory not set");
1896
236
  }
@@ -1904,7 +244,7 @@ async function handleSearchAction(validated: MotionSearchInput): Promise<MotionS
1904
244
  }
1905
245
 
1906
246
  try {
1907
- const service = serviceFactory();
247
+ const service = serviceFactoryDI.get()!();
1908
248
 
1909
249
  // 検索パラメータを構築(v0.1.0: JSアニメーション検索パラメータ追加、v0.1.0: WebGLアニメーション検索パラメータ追加、v0.1.0: include_implementation追加)
1910
250
  const searchParams: MotionSearchParams = {
@@ -1964,7 +304,7 @@ async function handleSearchAction(validated: MotionSearchInput): Promise<MotionS
1964
304
  results = (await applyPreferenceReranking(
1965
305
  resultsWithId,
1966
306
  validated.profile_id,
1967
- prismaClientFactory,
307
+ prismaClientDI.get(),
1968
308
  "motion",
1969
309
  "motion.search"
1970
310
  )) as typeof results;
@@ -1980,7 +320,7 @@ async function handleSearchAction(validated: MotionSearchInput): Promise<MotionS
1980
320
  });
1981
321
  }
1982
322
 
1983
- return {
323
+ const result: MotionSearchOutput = {
1984
324
  success: true,
1985
325
  data: {
1986
326
  results,
@@ -1988,10 +328,11 @@ async function handleSearchAction(validated: MotionSearchInput): Promise<MotionS
1988
328
  query: searchResult.query,
1989
329
  },
1990
330
  };
331
+ // Cache successful results / 成功結果をキャッシュ
332
+ setCachedResult(cacheKey, result);
333
+ return result;
1991
334
  } catch (error) {
1992
- if (isDevelopment()) {
1993
- logger.error("[MCP Tool] motion.search error", { error });
1994
- }
335
+ logger.warn("[MCP Tool] motion.search error", { error: (error as Error).message });
1995
336
 
1996
337
  // エラータイプに基づいてエラーコードを決定
1997
338
  const errorCode =
@@ -2003,7 +344,7 @@ async function handleSearchAction(validated: MotionSearchInput): Promise<MotionS
2003
344
  success: false,
2004
345
  error: {
2005
346
  code: errorCode,
2006
- message: error instanceof Error ? error.message : "Search failed",
347
+ message: sanitizeErrorMessage(error),
2007
348
  },
2008
349
  };
2009
350
  }
@@ -2059,31 +400,29 @@ async function handleGenerateAction(validated: MotionSearchInput): Promise<Motio
2059
400
  });
2060
401
  }
2061
402
  } catch (error) {
2062
- if (isDevelopment()) {
2063
- logger.warn("[MCP Tool] motion.search duplicate check failed, continuing generation", {
2064
- error: error instanceof Error ? error.message : "Unknown error",
2065
- });
2066
- }
403
+ logger.warn("[MCP Tool] motion.search duplicate check failed, continuing generation", {
404
+ error: (error as Error).message,
405
+ });
2067
406
  // 重複チェック失敗時は警告のみでコード生成は続行
2068
407
  }
2069
408
  }
2070
409
 
2071
410
  // サービス経由で生成(DIパターン)
2072
411
  let result: GenerationResult | null = null;
2073
- const service = implementationServiceFactory?.();
412
+ const service = implementationServiceDI.get()?.();
2074
413
 
2075
414
  if (service?.generate) {
2076
415
  try {
2077
416
  result = service.generate(pattern, format, options);
2078
417
  } catch (error) {
2079
- if (isDevelopment()) {
2080
- logger.error("[MCP Tool] motion.search generate service error", { error });
2081
- }
418
+ logger.warn("[MCP Tool] motion.search generate service error", {
419
+ error: (error as Error).message,
420
+ });
2082
421
  return {
2083
422
  success: false,
2084
423
  error: {
2085
424
  code: MOTION_MCP_ERROR_CODES.INTERNAL_ERROR,
2086
- message: error instanceof Error ? error.message : "Generation failed",
425
+ message: sanitizeErrorMessage(error),
2087
426
  },
2088
427
  };
2089
428
  }
@@ -2120,14 +459,12 @@ async function handleGenerateAction(validated: MotionSearchInput): Promise<Motio
2120
459
  },
2121
460
  };
2122
461
  } catch (error) {
2123
- if (isDevelopment()) {
2124
- logger.error("[MCP Tool] motion.search generate error", { error });
2125
- }
462
+ logger.warn("[MCP Tool] motion.search generate error", { error: (error as Error).message });
2126
463
  return {
2127
464
  success: false,
2128
465
  error: {
2129
466
  code: MOTION_MCP_ERROR_CODES.INTERNAL_ERROR,
2130
- message: error instanceof Error ? error.message : "Generation failed",
467
+ message: sanitizeErrorMessage(error),
2131
468
  },
2132
469
  };
2133
470
  }
@@ -2274,6 +611,33 @@ export const motionSearchToolDefinition = {
2274
611
  enum: ["load", "hover", "scroll", "click", "focus", "custom"],
2275
612
  description: "トリガーでフィルタリング",
2276
613
  },
614
+ webPageId: {
615
+ type: "string",
616
+ format: "uuid",
617
+ description: "WebページIDでフィルター / Filter by web page ID",
618
+ },
619
+ webPageUrl: {
620
+ type: "string",
621
+ format: "uri",
622
+ description: "WebページURLでフィルター / Filter by web page URL",
623
+ },
624
+ industry: {
625
+ type: "string",
626
+ description: "業種フィルター(例: tech, finance, healthcare) / Industry filter",
627
+ maxLength: 100,
628
+ },
629
+ audience: {
630
+ type: "string",
631
+ description:
632
+ "ターゲットオーディエンス(例: b2b, b2c, enterprise) / Target audience filter",
633
+ maxLength: 100,
634
+ },
635
+ tags: {
636
+ type: "array",
637
+ items: { type: "string", maxLength: 50 },
638
+ maxItems: 10,
639
+ description: "タグフィルター / Tag filter",
640
+ },
2277
641
  },
2278
642
  },
2279
643
  limit: {