@reftrixmcp/mcp-server 0.1.7

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 (1614) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +1099 -0
  3. package/dist/api/health.d.ts +122 -0
  4. package/dist/api/health.d.ts.map +1 -0
  5. package/dist/api/health.js +267 -0
  6. package/dist/api/health.js.map +1 -0
  7. package/dist/config/index.d.ts +9 -0
  8. package/dist/config/index.d.ts.map +1 -0
  9. package/dist/config/index.js +27 -0
  10. package/dist/config/index.js.map +1 -0
  11. package/dist/config/redis.d.ts +99 -0
  12. package/dist/config/redis.d.ts.map +1 -0
  13. package/dist/config/redis.js +234 -0
  14. package/dist/config/redis.js.map +1 -0
  15. package/dist/index.d.ts +18 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +247 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/lib/index.d.ts +6 -0
  20. package/dist/lib/index.d.ts.map +1 -0
  21. package/dist/lib/index.js +14 -0
  22. package/dist/lib/index.js.map +1 -0
  23. package/dist/lib/project-context.d.ts +51 -0
  24. package/dist/lib/project-context.d.ts.map +1 -0
  25. package/dist/lib/project-context.js +109 -0
  26. package/dist/lib/project-context.js.map +1 -0
  27. package/dist/middleware/args-type-coercion.d.ts +59 -0
  28. package/dist/middleware/args-type-coercion.d.ts.map +1 -0
  29. package/dist/middleware/args-type-coercion.js +187 -0
  30. package/dist/middleware/args-type-coercion.js.map +1 -0
  31. package/dist/middleware/auth.d.ts +122 -0
  32. package/dist/middleware/auth.d.ts.map +1 -0
  33. package/dist/middleware/auth.js +430 -0
  34. package/dist/middleware/auth.js.map +1 -0
  35. package/dist/middleware/index.d.ts +10 -0
  36. package/dist/middleware/index.d.ts.map +1 -0
  37. package/dist/middleware/index.js +38 -0
  38. package/dist/middleware/index.js.map +1 -0
  39. package/dist/middleware/light-response-controller.d.ts +206 -0
  40. package/dist/middleware/light-response-controller.d.ts.map +1 -0
  41. package/dist/middleware/light-response-controller.js +555 -0
  42. package/dist/middleware/light-response-controller.js.map +1 -0
  43. package/dist/middleware/response-size-warning.d.ts +97 -0
  44. package/dist/middleware/response-size-warning.d.ts.map +1 -0
  45. package/dist/middleware/response-size-warning.js +137 -0
  46. package/dist/middleware/response-size-warning.js.map +1 -0
  47. package/dist/queues/batch-quality-queue.d.ts +225 -0
  48. package/dist/queues/batch-quality-queue.d.ts.map +1 -0
  49. package/dist/queues/batch-quality-queue.js +375 -0
  50. package/dist/queues/batch-quality-queue.js.map +1 -0
  51. package/dist/queues/index.d.ts +10 -0
  52. package/dist/queues/index.d.ts.map +1 -0
  53. package/dist/queues/index.js +28 -0
  54. package/dist/queues/index.js.map +1 -0
  55. package/dist/queues/page-analyze-queue.d.ts +287 -0
  56. package/dist/queues/page-analyze-queue.d.ts.map +1 -0
  57. package/dist/queues/page-analyze-queue.js +219 -0
  58. package/dist/queues/page-analyze-queue.js.map +1 -0
  59. package/dist/router.d.ts +144 -0
  60. package/dist/router.d.ts.map +1 -0
  61. package/dist/router.js +261 -0
  62. package/dist/router.js.map +1 -0
  63. package/dist/schemas/creative/index.d.ts +8 -0
  64. package/dist/schemas/creative/index.d.ts.map +1 -0
  65. package/dist/schemas/creative/index.js +23 -0
  66. package/dist/schemas/creative/index.js.map +1 -0
  67. package/dist/schemas/creative/palette.schema.d.ts +741 -0
  68. package/dist/schemas/creative/palette.schema.d.ts.map +1 -0
  69. package/dist/schemas/creative/palette.schema.js +154 -0
  70. package/dist/schemas/creative/palette.schema.js.map +1 -0
  71. package/dist/schemas/mood-brandtone-filters.d.ts +740 -0
  72. package/dist/schemas/mood-brandtone-filters.d.ts.map +1 -0
  73. package/dist/schemas/mood-brandtone-filters.js +265 -0
  74. package/dist/schemas/mood-brandtone-filters.js.map +1 -0
  75. package/dist/scripts/backfill-embeddings.d.ts +3 -0
  76. package/dist/scripts/backfill-embeddings.d.ts.map +1 -0
  77. package/dist/scripts/backfill-embeddings.js +385 -0
  78. package/dist/scripts/backfill-embeddings.js.map +1 -0
  79. package/dist/scripts/check-embedding-coverage.d.ts +3 -0
  80. package/dist/scripts/check-embedding-coverage.d.ts.map +1 -0
  81. package/dist/scripts/check-embedding-coverage.js +103 -0
  82. package/dist/scripts/check-embedding-coverage.js.map +1 -0
  83. package/dist/scripts/start-workers.d.ts +3 -0
  84. package/dist/scripts/start-workers.d.ts.map +1 -0
  85. package/dist/scripts/start-workers.js +447 -0
  86. package/dist/scripts/start-workers.js.map +1 -0
  87. package/dist/server.d.ts +49 -0
  88. package/dist/server.d.ts.map +1 -0
  89. package/dist/server.js +237 -0
  90. package/dist/server.js.map +1 -0
  91. package/dist/services/background/background-design-db.service.d.ts +65 -0
  92. package/dist/services/background/background-design-db.service.d.ts.map +1 -0
  93. package/dist/services/background/background-design-db.service.js +138 -0
  94. package/dist/services/background/background-design-db.service.js.map +1 -0
  95. package/dist/services/background/background-design-detector.service.d.ts +125 -0
  96. package/dist/services/background/background-design-detector.service.d.ts.map +1 -0
  97. package/dist/services/background/background-design-detector.service.js +1106 -0
  98. package/dist/services/background/background-design-detector.service.js.map +1 -0
  99. package/dist/services/background/background-design-embedding.service.d.ts +188 -0
  100. package/dist/services/background/background-design-embedding.service.d.ts.map +1 -0
  101. package/dist/services/background/background-design-embedding.service.js +386 -0
  102. package/dist/services/background/background-design-embedding.service.js.map +1 -0
  103. package/dist/services/background-search.service.d.ts +43 -0
  104. package/dist/services/background-search.service.d.ts.map +1 -0
  105. package/dist/services/background-search.service.js +235 -0
  106. package/dist/services/background-search.service.js.map +1 -0
  107. package/dist/services/backup-service.d.ts +135 -0
  108. package/dist/services/backup-service.d.ts.map +1 -0
  109. package/dist/services/backup-service.js +357 -0
  110. package/dist/services/backup-service.js.map +1 -0
  111. package/dist/services/brief/brief-parser-service.d.ts +47 -0
  112. package/dist/services/brief/brief-parser-service.d.ts.map +1 -0
  113. package/dist/services/brief/brief-parser-service.js +380 -0
  114. package/dist/services/brief/brief-parser-service.js.map +1 -0
  115. package/dist/services/brief/schemas/brief-parser-schemas.d.ts +278 -0
  116. package/dist/services/brief/schemas/brief-parser-schemas.d.ts.map +1 -0
  117. package/dist/services/brief/schemas/brief-parser-schemas.js +116 -0
  118. package/dist/services/brief/schemas/brief-parser-schemas.js.map +1 -0
  119. package/dist/services/browser-process-manager.d.ts +116 -0
  120. package/dist/services/browser-process-manager.d.ts.map +1 -0
  121. package/dist/services/browser-process-manager.js +259 -0
  122. package/dist/services/browser-process-manager.js.map +1 -0
  123. package/dist/services/cache.d.ts +119 -0
  124. package/dist/services/cache.d.ts.map +1 -0
  125. package/dist/services/cache.js +233 -0
  126. package/dist/services/cache.js.map +1 -0
  127. package/dist/services/checksum-service.d.ts +122 -0
  128. package/dist/services/checksum-service.d.ts.map +1 -0
  129. package/dist/services/checksum-service.js +270 -0
  130. package/dist/services/checksum-service.js.map +1 -0
  131. package/dist/services/css-analysis-cache.service.d.ts +248 -0
  132. package/dist/services/css-analysis-cache.service.d.ts.map +1 -0
  133. package/dist/services/css-analysis-cache.service.js +398 -0
  134. package/dist/services/css-analysis-cache.service.js.map +1 -0
  135. package/dist/services/database-dumper.service.d.ts +181 -0
  136. package/dist/services/database-dumper.service.d.ts.map +1 -0
  137. package/dist/services/database-dumper.service.js +550 -0
  138. package/dist/services/database-dumper.service.js.map +1 -0
  139. package/dist/services/embedding-backfill.service.d.ts +53 -0
  140. package/dist/services/embedding-backfill.service.d.ts.map +1 -0
  141. package/dist/services/embedding-backfill.service.js +672 -0
  142. package/dist/services/embedding-backfill.service.js.map +1 -0
  143. package/dist/services/embedding-validation.service.d.ts +64 -0
  144. package/dist/services/embedding-validation.service.d.ts.map +1 -0
  145. package/dist/services/embedding-validation.service.js +141 -0
  146. package/dist/services/embedding-validation.service.js.map +1 -0
  147. package/dist/services/encryption-service.d.ts +171 -0
  148. package/dist/services/encryption-service.d.ts.map +1 -0
  149. package/dist/services/encryption-service.js +343 -0
  150. package/dist/services/encryption-service.js.map +1 -0
  151. package/dist/services/external-css-fetcher.d.ts +185 -0
  152. package/dist/services/external-css-fetcher.d.ts.map +1 -0
  153. package/dist/services/external-css-fetcher.js +667 -0
  154. package/dist/services/external-css-fetcher.js.map +1 -0
  155. package/dist/services/gpu-resource-manager.d.ts +180 -0
  156. package/dist/services/gpu-resource-manager.d.ts.map +1 -0
  157. package/dist/services/gpu-resource-manager.js +485 -0
  158. package/dist/services/gpu-resource-manager.js.map +1 -0
  159. package/dist/services/index.d.ts +15 -0
  160. package/dist/services/index.d.ts.map +1 -0
  161. package/dist/services/index.js +73 -0
  162. package/dist/services/index.js.map +1 -0
  163. package/dist/services/layout/component-splitter.d.ts +63 -0
  164. package/dist/services/layout/component-splitter.d.ts.map +1 -0
  165. package/dist/services/layout/component-splitter.js +508 -0
  166. package/dist/services/layout/component-splitter.js.map +1 -0
  167. package/dist/services/layout/html-to-jsx-converter.d.ts +40 -0
  168. package/dist/services/layout/html-to-jsx-converter.d.ts.map +1 -0
  169. package/dist/services/layout/html-to-jsx-converter.js +484 -0
  170. package/dist/services/layout/html-to-jsx-converter.js.map +1 -0
  171. package/dist/services/layout/semantic-html-converter.d.ts +67 -0
  172. package/dist/services/layout/semantic-html-converter.d.ts.map +1 -0
  173. package/dist/services/layout/semantic-html-converter.js +247 -0
  174. package/dist/services/layout/semantic-html-converter.js.map +1 -0
  175. package/dist/services/layout/style-to-tailwind-mapper.d.ts +82 -0
  176. package/dist/services/layout/style-to-tailwind-mapper.d.ts.map +1 -0
  177. package/dist/services/layout/style-to-tailwind-mapper.js +1334 -0
  178. package/dist/services/layout/style-to-tailwind-mapper.js.map +1 -0
  179. package/dist/services/layout-embedding.service.d.ts +415 -0
  180. package/dist/services/layout-embedding.service.d.ts.map +1 -0
  181. package/dist/services/layout-embedding.service.js +1147 -0
  182. package/dist/services/layout-embedding.service.js.map +1 -0
  183. package/dist/services/layout-generate-code-service-export.d.ts +38 -0
  184. package/dist/services/layout-generate-code-service-export.d.ts.map +1 -0
  185. package/dist/services/layout-generate-code-service-export.js +77 -0
  186. package/dist/services/layout-generate-code-service-export.js.map +1 -0
  187. package/dist/services/layout-search-service-export.d.ts +31 -0
  188. package/dist/services/layout-search-service-export.d.ts.map +1 -0
  189. package/dist/services/layout-search-service-export.js +43 -0
  190. package/dist/services/layout-search-service-export.js.map +1 -0
  191. package/dist/services/layout-search.service.d.ts +111 -0
  192. package/dist/services/layout-search.service.d.ts.map +1 -0
  193. package/dist/services/layout-search.service.js +716 -0
  194. package/dist/services/layout-search.service.js.map +1 -0
  195. package/dist/services/layout-to-code.service.d.ts +85 -0
  196. package/dist/services/layout-to-code.service.d.ts.map +1 -0
  197. package/dist/services/layout-to-code.service.js +1368 -0
  198. package/dist/services/layout-to-code.service.js.map +1 -0
  199. package/dist/services/metrics-collector.d.ts +189 -0
  200. package/dist/services/metrics-collector.d.ts.map +1 -0
  201. package/dist/services/metrics-collector.js +344 -0
  202. package/dist/services/metrics-collector.js.map +1 -0
  203. package/dist/services/ml/mood-brandtone-embedding.service.d.ts +253 -0
  204. package/dist/services/ml/mood-brandtone-embedding.service.d.ts.map +1 -0
  205. package/dist/services/ml/mood-brandtone-embedding.service.js +678 -0
  206. package/dist/services/ml/mood-brandtone-embedding.service.js.map +1 -0
  207. package/dist/services/motion/analyzers/color-change.analyzer.d.ts +274 -0
  208. package/dist/services/motion/analyzers/color-change.analyzer.d.ts.map +1 -0
  209. package/dist/services/motion/analyzers/color-change.analyzer.js +644 -0
  210. package/dist/services/motion/analyzers/color-change.analyzer.js.map +1 -0
  211. package/dist/services/motion/analyzers/frame-diff.analyzer.d.ts +109 -0
  212. package/dist/services/motion/analyzers/frame-diff.analyzer.d.ts.map +1 -0
  213. package/dist/services/motion/analyzers/frame-diff.analyzer.js +315 -0
  214. package/dist/services/motion/analyzers/frame-diff.analyzer.js.map +1 -0
  215. package/dist/services/motion/analyzers/layout-shift.detector.d.ts +132 -0
  216. package/dist/services/motion/analyzers/layout-shift.detector.d.ts.map +1 -0
  217. package/dist/services/motion/analyzers/layout-shift.detector.js +179 -0
  218. package/dist/services/motion/analyzers/layout-shift.detector.js.map +1 -0
  219. package/dist/services/motion/analyzers/motion-vector.estimator.d.ts +88 -0
  220. package/dist/services/motion/analyzers/motion-vector.estimator.d.ts.map +1 -0
  221. package/dist/services/motion/analyzers/motion-vector.estimator.js +494 -0
  222. package/dist/services/motion/analyzers/motion-vector.estimator.js.map +1 -0
  223. package/dist/services/motion/analyzers/webgl-motion-analyzer.d.ts +167 -0
  224. package/dist/services/motion/analyzers/webgl-motion-analyzer.d.ts.map +1 -0
  225. package/dist/services/motion/analyzers/webgl-motion-analyzer.js +500 -0
  226. package/dist/services/motion/analyzers/webgl-motion-analyzer.js.map +1 -0
  227. package/dist/services/motion/animation-metrics-collector.service.d.ts +215 -0
  228. package/dist/services/motion/animation-metrics-collector.service.d.ts.map +1 -0
  229. package/dist/services/motion/animation-metrics-collector.service.js +502 -0
  230. package/dist/services/motion/animation-metrics-collector.service.js.map +1 -0
  231. package/dist/services/motion/cls-calculator.service.d.ts +186 -0
  232. package/dist/services/motion/cls-calculator.service.d.ts.map +1 -0
  233. package/dist/services/motion/cls-calculator.service.js +329 -0
  234. package/dist/services/motion/cls-calculator.service.js.map +1 -0
  235. package/dist/services/motion/existing-animation-detector.service.d.ts +208 -0
  236. package/dist/services/motion/existing-animation-detector.service.d.ts.map +1 -0
  237. package/dist/services/motion/existing-animation-detector.service.js +591 -0
  238. package/dist/services/motion/existing-animation-detector.service.js.map +1 -0
  239. package/dist/services/motion/fade-detector.service.d.ts +114 -0
  240. package/dist/services/motion/fade-detector.service.d.ts.map +1 -0
  241. package/dist/services/motion/fade-detector.service.js +249 -0
  242. package/dist/services/motion/fade-detector.service.js.map +1 -0
  243. package/dist/services/motion/frame-analysis-save.helper.d.ts +41 -0
  244. package/dist/services/motion/frame-analysis-save.helper.d.ts.map +1 -0
  245. package/dist/services/motion/frame-analysis-save.helper.js +235 -0
  246. package/dist/services/motion/frame-analysis-save.helper.js.map +1 -0
  247. package/dist/services/motion/frame-capture.service.d.ts +170 -0
  248. package/dist/services/motion/frame-capture.service.d.ts.map +1 -0
  249. package/dist/services/motion/frame-capture.service.js +476 -0
  250. package/dist/services/motion/frame-capture.service.js.map +1 -0
  251. package/dist/services/motion/frame-embedding.service.d.ts +315 -0
  252. package/dist/services/motion/frame-embedding.service.d.ts.map +1 -0
  253. package/dist/services/motion/frame-embedding.service.js +1023 -0
  254. package/dist/services/motion/frame-embedding.service.js.map +1 -0
  255. package/dist/services/motion/frame-image-analysis.service.d.ts +126 -0
  256. package/dist/services/motion/frame-image-analysis.service.d.ts.map +1 -0
  257. package/dist/services/motion/frame-image-analysis.service.js +982 -0
  258. package/dist/services/motion/frame-image-analysis.service.js.map +1 -0
  259. package/dist/services/motion/frame-image-analyzer.adapter.d.ts +168 -0
  260. package/dist/services/motion/frame-image-analyzer.adapter.d.ts.map +1 -0
  261. package/dist/services/motion/frame-image-analyzer.adapter.js +520 -0
  262. package/dist/services/motion/frame-image-analyzer.adapter.js.map +1 -0
  263. package/dist/services/motion/frame-worker-pool.service.d.ts +133 -0
  264. package/dist/services/motion/frame-worker-pool.service.d.ts.map +1 -0
  265. package/dist/services/motion/frame-worker-pool.service.js +410 -0
  266. package/dist/services/motion/frame-worker-pool.service.js.map +1 -0
  267. package/dist/services/motion/infrastructure/frame-loader.d.ts +77 -0
  268. package/dist/services/motion/infrastructure/frame-loader.d.ts.map +1 -0
  269. package/dist/services/motion/infrastructure/frame-loader.js +430 -0
  270. package/dist/services/motion/infrastructure/frame-loader.js.map +1 -0
  271. package/dist/services/motion/js-animation-detector.d.ts +382 -0
  272. package/dist/services/motion/js-animation-detector.d.ts.map +1 -0
  273. package/dist/services/motion/js-animation-detector.js +911 -0
  274. package/dist/services/motion/js-animation-detector.js.map +1 -0
  275. package/dist/services/motion/js-animation-embedding.service.d.ts +114 -0
  276. package/dist/services/motion/js-animation-embedding.service.d.ts.map +1 -0
  277. package/dist/services/motion/js-animation-embedding.service.js +289 -0
  278. package/dist/services/motion/js-animation-embedding.service.js.map +1 -0
  279. package/dist/services/motion/js-animation-search.service.d.ts +138 -0
  280. package/dist/services/motion/js-animation-search.service.d.ts.map +1 -0
  281. package/dist/services/motion/js-animation-search.service.js +503 -0
  282. package/dist/services/motion/js-animation-search.service.js.map +1 -0
  283. package/dist/services/motion/motion-db.service.d.ts +231 -0
  284. package/dist/services/motion/motion-db.service.d.ts.map +1 -0
  285. package/dist/services/motion/motion-db.service.js +676 -0
  286. package/dist/services/motion/motion-db.service.js.map +1 -0
  287. package/dist/services/motion/three-js-scene-extractor.d.ts +274 -0
  288. package/dist/services/motion/three-js-scene-extractor.d.ts.map +1 -0
  289. package/dist/services/motion/three-js-scene-extractor.js +1126 -0
  290. package/dist/services/motion/three-js-scene-extractor.js.map +1 -0
  291. package/dist/services/motion/types.d.ts +592 -0
  292. package/dist/services/motion/types.d.ts.map +1 -0
  293. package/dist/services/motion/types.js +121 -0
  294. package/dist/services/motion/types.js.map +1 -0
  295. package/dist/services/motion/visual-category-classifier.d.ts +273 -0
  296. package/dist/services/motion/visual-category-classifier.d.ts.map +1 -0
  297. package/dist/services/motion/visual-category-classifier.js +1060 -0
  298. package/dist/services/motion/visual-category-classifier.js.map +1 -0
  299. package/dist/services/motion/webgl-animation-categorizer.d.ts +151 -0
  300. package/dist/services/motion/webgl-animation-categorizer.d.ts.map +1 -0
  301. package/dist/services/motion/webgl-animation-categorizer.js +568 -0
  302. package/dist/services/motion/webgl-animation-categorizer.js.map +1 -0
  303. package/dist/services/motion/webgl-animation-detector.service.d.ts +204 -0
  304. package/dist/services/motion/webgl-animation-detector.service.d.ts.map +1 -0
  305. package/dist/services/motion/webgl-animation-detector.service.js +518 -0
  306. package/dist/services/motion/webgl-animation-detector.service.js.map +1 -0
  307. package/dist/services/motion/webgl-animation-embedding.service.d.ts +238 -0
  308. package/dist/services/motion/webgl-animation-embedding.service.d.ts.map +1 -0
  309. package/dist/services/motion/webgl-animation-embedding.service.js +368 -0
  310. package/dist/services/motion/webgl-animation-embedding.service.js.map +1 -0
  311. package/dist/services/motion-detect-service-export.d.ts +130 -0
  312. package/dist/services/motion-detect-service-export.d.ts.map +1 -0
  313. package/dist/services/motion-detect-service-export.js +160 -0
  314. package/dist/services/motion-detect-service-export.js.map +1 -0
  315. package/dist/services/motion-persistence.service.d.ts +144 -0
  316. package/dist/services/motion-persistence.service.d.ts.map +1 -0
  317. package/dist/services/motion-persistence.service.js +398 -0
  318. package/dist/services/motion-persistence.service.js.map +1 -0
  319. package/dist/services/motion-search-service.d.ts +10 -0
  320. package/dist/services/motion-search-service.d.ts.map +1 -0
  321. package/dist/services/motion-search-service.js +22 -0
  322. package/dist/services/motion-search-service.js.map +1 -0
  323. package/dist/services/motion-search.service.d.ts +210 -0
  324. package/dist/services/motion-search.service.d.ts.map +1 -0
  325. package/dist/services/motion-search.service.js +900 -0
  326. package/dist/services/motion-search.service.js.map +1 -0
  327. package/dist/services/narrative/analyzers/layout-structure.analyzer.d.ts +75 -0
  328. package/dist/services/narrative/analyzers/layout-structure.analyzer.d.ts.map +1 -0
  329. package/dist/services/narrative/analyzers/layout-structure.analyzer.js +489 -0
  330. package/dist/services/narrative/analyzers/layout-structure.analyzer.js.map +1 -0
  331. package/dist/services/narrative/analyzers/worldview.analyzer.d.ts +92 -0
  332. package/dist/services/narrative/analyzers/worldview.analyzer.d.ts.map +1 -0
  333. package/dist/services/narrative/analyzers/worldview.analyzer.js +477 -0
  334. package/dist/services/narrative/analyzers/worldview.analyzer.js.map +1 -0
  335. package/dist/services/narrative/generators/confidence-calculator.d.ts +65 -0
  336. package/dist/services/narrative/generators/confidence-calculator.d.ts.map +1 -0
  337. package/dist/services/narrative/generators/confidence-calculator.js +316 -0
  338. package/dist/services/narrative/generators/confidence-calculator.js.map +1 -0
  339. package/dist/services/narrative/generators/text-representation.generator.d.ts +67 -0
  340. package/dist/services/narrative/generators/text-representation.generator.d.ts.map +1 -0
  341. package/dist/services/narrative/generators/text-representation.generator.js +312 -0
  342. package/dist/services/narrative/generators/text-representation.generator.js.map +1 -0
  343. package/dist/services/narrative/index.d.ts +16 -0
  344. package/dist/services/narrative/index.d.ts.map +1 -0
  345. package/dist/services/narrative/index.js +63 -0
  346. package/dist/services/narrative/index.js.map +1 -0
  347. package/dist/services/narrative/narrative-analysis.service.d.ts +120 -0
  348. package/dist/services/narrative/narrative-analysis.service.d.ts.map +1 -0
  349. package/dist/services/narrative/narrative-analysis.service.js +479 -0
  350. package/dist/services/narrative/narrative-analysis.service.js.map +1 -0
  351. package/dist/services/narrative/narrative-search.service.d.ts +126 -0
  352. package/dist/services/narrative/narrative-search.service.d.ts.map +1 -0
  353. package/dist/services/narrative/narrative-search.service.js +516 -0
  354. package/dist/services/narrative/narrative-search.service.js.map +1 -0
  355. package/dist/services/narrative/types/narrative.types.d.ts +372 -0
  356. package/dist/services/narrative/types/narrative.types.d.ts.map +1 -0
  357. package/dist/services/narrative/types/narrative.types.js +5 -0
  358. package/dist/services/narrative/types/narrative.types.js.map +1 -0
  359. package/dist/services/orphaned-job-utils.d.ts +62 -0
  360. package/dist/services/orphaned-job-utils.d.ts.map +1 -0
  361. package/dist/services/orphaned-job-utils.js +130 -0
  362. package/dist/services/orphaned-job-utils.js.map +1 -0
  363. package/dist/services/page/css-animation-parser.service.d.ts +173 -0
  364. package/dist/services/page/css-animation-parser.service.d.ts.map +1 -0
  365. package/dist/services/page/css-animation-parser.service.js +537 -0
  366. package/dist/services/page/css-animation-parser.service.js.map +1 -0
  367. package/dist/services/page/fallback-analyzer.service.d.ts +140 -0
  368. package/dist/services/page/fallback-analyzer.service.d.ts.map +1 -0
  369. package/dist/services/page/fallback-analyzer.service.js +289 -0
  370. package/dist/services/page/fallback-analyzer.service.js.map +1 -0
  371. package/dist/services/page/frame-analyzer.service.d.ts +208 -0
  372. package/dist/services/page/frame-analyzer.service.d.ts.map +1 -0
  373. package/dist/services/page/frame-analyzer.service.js +628 -0
  374. package/dist/services/page/frame-analyzer.service.js.map +1 -0
  375. package/dist/services/page/layout-analyzer.service.d.ts +323 -0
  376. package/dist/services/page/layout-analyzer.service.d.ts.map +1 -0
  377. package/dist/services/page/layout-analyzer.service.js +2001 -0
  378. package/dist/services/page/layout-analyzer.service.js.map +1 -0
  379. package/dist/services/page/motion-category-classifier.service.d.ts +72 -0
  380. package/dist/services/page/motion-category-classifier.service.d.ts.map +1 -0
  381. package/dist/services/page/motion-category-classifier.service.js +340 -0
  382. package/dist/services/page/motion-category-classifier.service.js.map +1 -0
  383. package/dist/services/page/motion-detector.service.d.ts +76 -0
  384. package/dist/services/page/motion-detector.service.d.ts.map +1 -0
  385. package/dist/services/page/motion-detector.service.js +255 -0
  386. package/dist/services/page/motion-detector.service.js.map +1 -0
  387. package/dist/services/page/motion-performance-analyzer.service.d.ts +114 -0
  388. package/dist/services/page/motion-performance-analyzer.service.d.ts.map +1 -0
  389. package/dist/services/page/motion-performance-analyzer.service.js +315 -0
  390. package/dist/services/page/motion-performance-analyzer.service.js.map +1 -0
  391. package/dist/services/page/playwright-crawler.service.d.ts +106 -0
  392. package/dist/services/page/playwright-crawler.service.d.ts.map +1 -0
  393. package/dist/services/page/playwright-crawler.service.js +373 -0
  394. package/dist/services/page/playwright-crawler.service.js.map +1 -0
  395. package/dist/services/page/quality-evaluator.service.d.ts +107 -0
  396. package/dist/services/page/quality-evaluator.service.d.ts.map +1 -0
  397. package/dist/services/page/quality-evaluator.service.js +1138 -0
  398. package/dist/services/page/quality-evaluator.service.js.map +1 -0
  399. package/dist/services/page/runtime-animation-detector.service.d.ts +154 -0
  400. package/dist/services/page/runtime-animation-detector.service.d.ts.map +1 -0
  401. package/dist/services/page/runtime-animation-detector.service.js +480 -0
  402. package/dist/services/page/runtime-animation-detector.service.js.map +1 -0
  403. package/dist/services/page/section-postprocessor.service.d.ts +55 -0
  404. package/dist/services/page/section-postprocessor.service.d.ts.map +1 -0
  405. package/dist/services/page/section-postprocessor.service.js +708 -0
  406. package/dist/services/page/section-postprocessor.service.js.map +1 -0
  407. package/dist/services/page/video-recorder.service.d.ts +110 -0
  408. package/dist/services/page/video-recorder.service.d.ts.map +1 -0
  409. package/dist/services/page/video-recorder.service.js +441 -0
  410. package/dist/services/page/video-recorder.service.js.map +1 -0
  411. package/dist/services/page/webgl-detector.service.d.ts +113 -0
  412. package/dist/services/page/webgl-detector.service.d.ts.map +1 -0
  413. package/dist/services/page/webgl-detector.service.js +280 -0
  414. package/dist/services/page/webgl-detector.service.js.map +1 -0
  415. package/dist/services/page-analyze-service.d.ts +30 -0
  416. package/dist/services/page-analyze-service.d.ts.map +1 -0
  417. package/dist/services/page-analyze-service.js +58 -0
  418. package/dist/services/page-analyze-service.js.map +1 -0
  419. package/dist/services/page-ingest-adapter.d.ts +479 -0
  420. package/dist/services/page-ingest-adapter.d.ts.map +1 -0
  421. package/dist/services/page-ingest-adapter.js +1726 -0
  422. package/dist/services/page-ingest-adapter.js.map +1 -0
  423. package/dist/services/palette-service-export.d.ts +26 -0
  424. package/dist/services/palette-service-export.d.ts.map +1 -0
  425. package/dist/services/palette-service-export.js +22 -0
  426. package/dist/services/palette-service-export.js.map +1 -0
  427. package/dist/services/part/index.d.ts +22 -0
  428. package/dist/services/part/index.d.ts.map +1 -0
  429. package/dist/services/part/index.js +72 -0
  430. package/dist/services/part/index.js.map +1 -0
  431. package/dist/services/part/part-backfill.service.d.ts +66 -0
  432. package/dist/services/part/part-backfill.service.d.ts.map +1 -0
  433. package/dist/services/part/part-backfill.service.js +195 -0
  434. package/dist/services/part/part-backfill.service.js.map +1 -0
  435. package/dist/services/part/part-bbox-playwright.service.d.ts +85 -0
  436. package/dist/services/part/part-bbox-playwright.service.d.ts.map +1 -0
  437. package/dist/services/part/part-bbox-playwright.service.js +362 -0
  438. package/dist/services/part/part-bbox-playwright.service.js.map +1 -0
  439. package/dist/services/part/part-db.service.d.ts +41 -0
  440. package/dist/services/part/part-db.service.d.ts.map +1 -0
  441. package/dist/services/part/part-db.service.js +82 -0
  442. package/dist/services/part/part-db.service.js.map +1 -0
  443. package/dist/services/part/part-embedding-db.service.d.ts +52 -0
  444. package/dist/services/part/part-embedding-db.service.d.ts.map +1 -0
  445. package/dist/services/part/part-embedding-db.service.js +122 -0
  446. package/dist/services/part/part-embedding-db.service.js.map +1 -0
  447. package/dist/services/part/part-embedding.service.d.ts +140 -0
  448. package/dist/services/part/part-embedding.service.d.ts.map +1 -0
  449. package/dist/services/part/part-embedding.service.js +276 -0
  450. package/dist/services/part/part-embedding.service.js.map +1 -0
  451. package/dist/services/part/part-extraction.service.d.ts +75 -0
  452. package/dist/services/part/part-extraction.service.d.ts.map +1 -0
  453. package/dist/services/part/part-extraction.service.js +519 -0
  454. package/dist/services/part/part-extraction.service.js.map +1 -0
  455. package/dist/services/part/part-search.service.d.ts +180 -0
  456. package/dist/services/part/part-search.service.d.ts.map +1 -0
  457. package/dist/services/part/part-search.service.js +565 -0
  458. package/dist/services/part/part-search.service.js.map +1 -0
  459. package/dist/services/part/schemas.d.ts +232 -0
  460. package/dist/services/part/schemas.d.ts.map +1 -0
  461. package/dist/services/part/schemas.js +167 -0
  462. package/dist/services/part/schemas.js.map +1 -0
  463. package/dist/services/part/section-screenshot-fallback.service.d.ts +101 -0
  464. package/dist/services/part/section-screenshot-fallback.service.d.ts.map +1 -0
  465. package/dist/services/part/section-screenshot-fallback.service.js +489 -0
  466. package/dist/services/part/section-screenshot-fallback.service.js.map +1 -0
  467. package/dist/services/part/types.d.ts +189 -0
  468. package/dist/services/part/types.d.ts.map +1 -0
  469. package/dist/services/part/types.js +139 -0
  470. package/dist/services/part/types.js.map +1 -0
  471. package/dist/services/persistent-cache.d.ts +209 -0
  472. package/dist/services/persistent-cache.d.ts.map +1 -0
  473. package/dist/services/persistent-cache.js +633 -0
  474. package/dist/services/persistent-cache.js.map +1 -0
  475. package/dist/services/preference-profile.service.d.ts +143 -0
  476. package/dist/services/preference-profile.service.d.ts.map +1 -0
  477. package/dist/services/preference-profile.service.js +604 -0
  478. package/dist/services/preference-profile.service.js.map +1 -0
  479. package/dist/services/preference-rerank.helper.d.ts +128 -0
  480. package/dist/services/preference-rerank.helper.d.ts.map +1 -0
  481. package/dist/services/preference-rerank.helper.js +397 -0
  482. package/dist/services/preference-rerank.helper.js.map +1 -0
  483. package/dist/services/production-guard.d.ts +213 -0
  484. package/dist/services/production-guard.d.ts.map +1 -0
  485. package/dist/services/production-guard.js +357 -0
  486. package/dist/services/production-guard.js.map +1 -0
  487. package/dist/services/project-context-analyzer.d.ts +194 -0
  488. package/dist/services/project-context-analyzer.d.ts.map +1 -0
  489. package/dist/services/project-context-analyzer.js +747 -0
  490. package/dist/services/project-context-analyzer.js.map +1 -0
  491. package/dist/services/quality/axe-accessibility.service.d.ts +87 -0
  492. package/dist/services/quality/axe-accessibility.service.d.ts.map +1 -0
  493. package/dist/services/quality/axe-accessibility.service.js +188 -0
  494. package/dist/services/quality/axe-accessibility.service.js.map +1 -0
  495. package/dist/services/quality/axe-core-shared.d.ts +108 -0
  496. package/dist/services/quality/axe-core-shared.d.ts.map +1 -0
  497. package/dist/services/quality/axe-core-shared.js +136 -0
  498. package/dist/services/quality/axe-core-shared.js.map +1 -0
  499. package/dist/services/quality/benchmark.service.d.ts +178 -0
  500. package/dist/services/quality/benchmark.service.d.ts.map +1 -0
  501. package/dist/services/quality/benchmark.service.js +394 -0
  502. package/dist/services/quality/benchmark.service.js.map +1 -0
  503. package/dist/services/quality/content-gap-detector.service.d.ts +133 -0
  504. package/dist/services/quality/content-gap-detector.service.d.ts.map +1 -0
  505. package/dist/services/quality/content-gap-detector.service.js +364 -0
  506. package/dist/services/quality/content-gap-detector.service.js.map +1 -0
  507. package/dist/services/quality/index.d.ts +12 -0
  508. package/dist/services/quality/index.d.ts.map +1 -0
  509. package/dist/services/quality/index.js +12 -0
  510. package/dist/services/quality/index.js.map +1 -0
  511. package/dist/services/quality/pattern-matcher.service.d.ts +195 -0
  512. package/dist/services/quality/pattern-matcher.service.d.ts.map +1 -0
  513. package/dist/services/quality/pattern-matcher.service.js +630 -0
  514. package/dist/services/quality/pattern-matcher.service.js.map +1 -0
  515. package/dist/services/quality/playwright-axe.service.d.ts +84 -0
  516. package/dist/services/quality/playwright-axe.service.d.ts.map +1 -0
  517. package/dist/services/quality/playwright-axe.service.js +267 -0
  518. package/dist/services/quality/playwright-axe.service.js.map +1 -0
  519. package/dist/services/quality/quality-evaluate.service.interface.d.ts +216 -0
  520. package/dist/services/quality/quality-evaluate.service.interface.d.ts.map +1 -0
  521. package/dist/services/quality/quality-evaluate.service.interface.js +5 -0
  522. package/dist/services/quality/quality-evaluate.service.interface.js.map +1 -0
  523. package/dist/services/quality/visual-design-analyzer.service.d.ts +72 -0
  524. package/dist/services/quality/visual-design-analyzer.service.d.ts.map +1 -0
  525. package/dist/services/quality/visual-design-analyzer.service.js +762 -0
  526. package/dist/services/quality/visual-design-analyzer.service.js.map +1 -0
  527. package/dist/services/quality-evaluate-service-export.d.ts +122 -0
  528. package/dist/services/quality-evaluate-service-export.d.ts.map +1 -0
  529. package/dist/services/quality-evaluate-service-export.js +138 -0
  530. package/dist/services/quality-evaluate-service-export.js.map +1 -0
  531. package/dist/services/quality-search.service.d.ts +20 -0
  532. package/dist/services/quality-search.service.d.ts.map +1 -0
  533. package/dist/services/quality-search.service.js +260 -0
  534. package/dist/services/quality-search.service.js.map +1 -0
  535. package/dist/services/query-analyzer.d.ts +107 -0
  536. package/dist/services/query-analyzer.d.ts.map +1 -0
  537. package/dist/services/query-analyzer.js +222 -0
  538. package/dist/services/query-analyzer.js.map +1 -0
  539. package/dist/services/query-context-analyzer.d.ts +85 -0
  540. package/dist/services/query-context-analyzer.d.ts.map +1 -0
  541. package/dist/services/query-context-analyzer.js +728 -0
  542. package/dist/services/query-context-analyzer.js.map +1 -0
  543. package/dist/services/queue-cleanup.service.d.ts +102 -0
  544. package/dist/services/queue-cleanup.service.d.ts.map +1 -0
  545. package/dist/services/queue-cleanup.service.js +259 -0
  546. package/dist/services/queue-cleanup.service.js.map +1 -0
  547. package/dist/services/responsive/difference-detector.service.d.ts +77 -0
  548. package/dist/services/responsive/difference-detector.service.d.ts.map +1 -0
  549. package/dist/services/responsive/difference-detector.service.js +525 -0
  550. package/dist/services/responsive/difference-detector.service.js.map +1 -0
  551. package/dist/services/responsive/index.d.ts +16 -0
  552. package/dist/services/responsive/index.d.ts.map +1 -0
  553. package/dist/services/responsive/index.js +60 -0
  554. package/dist/services/responsive/index.js.map +1 -0
  555. package/dist/services/responsive/multi-viewport-capture.service.d.ts +103 -0
  556. package/dist/services/responsive/multi-viewport-capture.service.d.ts.map +1 -0
  557. package/dist/services/responsive/multi-viewport-capture.service.js +841 -0
  558. package/dist/services/responsive/multi-viewport-capture.service.js.map +1 -0
  559. package/dist/services/responsive/responsive-analysis-embedding.service.d.ts +114 -0
  560. package/dist/services/responsive/responsive-analysis-embedding.service.d.ts.map +1 -0
  561. package/dist/services/responsive/responsive-analysis-embedding.service.js +232 -0
  562. package/dist/services/responsive/responsive-analysis-embedding.service.js.map +1 -0
  563. package/dist/services/responsive/responsive-analysis.service.d.ts +37 -0
  564. package/dist/services/responsive/responsive-analysis.service.d.ts.map +1 -0
  565. package/dist/services/responsive/responsive-analysis.service.js +262 -0
  566. package/dist/services/responsive/responsive-analysis.service.js.map +1 -0
  567. package/dist/services/responsive/responsive-persistence.service.d.ts +45 -0
  568. package/dist/services/responsive/responsive-persistence.service.d.ts.map +1 -0
  569. package/dist/services/responsive/responsive-persistence.service.js +102 -0
  570. package/dist/services/responsive/responsive-persistence.service.js.map +1 -0
  571. package/dist/services/responsive/responsive-quality-evaluator.service.d.ts +80 -0
  572. package/dist/services/responsive/responsive-quality-evaluator.service.d.ts.map +1 -0
  573. package/dist/services/responsive/responsive-quality-evaluator.service.js +448 -0
  574. package/dist/services/responsive/responsive-quality-evaluator.service.js.map +1 -0
  575. package/dist/services/responsive/shared-browser-manager.d.ts +65 -0
  576. package/dist/services/responsive/shared-browser-manager.d.ts.map +1 -0
  577. package/dist/services/responsive/shared-browser-manager.js +112 -0
  578. package/dist/services/responsive/shared-browser-manager.js.map +1 -0
  579. package/dist/services/responsive/types.d.ts +367 -0
  580. package/dist/services/responsive/types.d.ts.map +1 -0
  581. package/dist/services/responsive/types.js +5 -0
  582. package/dist/services/responsive/types.js.map +1 -0
  583. package/dist/services/responsive/viewport-diff.service.d.ts +49 -0
  584. package/dist/services/responsive/viewport-diff.service.d.ts.map +1 -0
  585. package/dist/services/responsive/viewport-diff.service.js +178 -0
  586. package/dist/services/responsive/viewport-diff.service.js.map +1 -0
  587. package/dist/services/responsive-search.service.d.ts +52 -0
  588. package/dist/services/responsive-search.service.d.ts.map +1 -0
  589. package/dist/services/responsive-search.service.js +136 -0
  590. package/dist/services/responsive-search.service.js.map +1 -0
  591. package/dist/services/search/mood-brandtone-search.service.d.ts +99 -0
  592. package/dist/services/search/mood-brandtone-search.service.d.ts.map +1 -0
  593. package/dist/services/search/mood-brandtone-search.service.js +310 -0
  594. package/dist/services/search/mood-brandtone-search.service.js.map +1 -0
  595. package/dist/services/search-performance.service.d.ts +118 -0
  596. package/dist/services/search-performance.service.d.ts.map +1 -0
  597. package/dist/services/search-performance.service.js +181 -0
  598. package/dist/services/search-performance.service.js.map +1 -0
  599. package/dist/services/section-screenshot.service.d.ts +163 -0
  600. package/dist/services/section-screenshot.service.d.ts.map +1 -0
  601. package/dist/services/section-screenshot.service.js +363 -0
  602. package/dist/services/section-screenshot.service.js.map +1 -0
  603. package/dist/services/service-client.d.ts +181 -0
  604. package/dist/services/service-client.d.ts.map +1 -0
  605. package/dist/services/service-client.js +450 -0
  606. package/dist/services/service-client.js.map +1 -0
  607. package/dist/services/service-initializer.d.ts +174 -0
  608. package/dist/services/service-initializer.d.ts.map +1 -0
  609. package/dist/services/service-initializer.js +942 -0
  610. package/dist/services/service-initializer.js.map +1 -0
  611. package/dist/services/storage/index.d.ts +7 -0
  612. package/dist/services/storage/index.d.ts.map +1 -0
  613. package/dist/services/storage/index.js +14 -0
  614. package/dist/services/storage/index.js.map +1 -0
  615. package/dist/services/storage/local-storage.provider.d.ts +140 -0
  616. package/dist/services/storage/local-storage.provider.d.ts.map +1 -0
  617. package/dist/services/storage/local-storage.provider.js +333 -0
  618. package/dist/services/storage/local-storage.provider.js.map +1 -0
  619. package/dist/services/style/index.d.ts +7 -0
  620. package/dist/services/style/index.d.ts.map +1 -0
  621. package/dist/services/style/index.js +25 -0
  622. package/dist/services/style/index.js.map +1 -0
  623. package/dist/services/style/palette-service.d.ts +212 -0
  624. package/dist/services/style/palette-service.d.ts.map +1 -0
  625. package/dist/services/style/palette-service.js +423 -0
  626. package/dist/services/style/palette-service.js.map +1 -0
  627. package/dist/services/style/prisma-palette-repository.d.ts +35 -0
  628. package/dist/services/style/prisma-palette-repository.d.ts.map +1 -0
  629. package/dist/services/style/prisma-palette-repository.js +165 -0
  630. package/dist/services/style/prisma-palette-repository.js.map +1 -0
  631. package/dist/services/vision/brandtone.analyzer.d.ts +104 -0
  632. package/dist/services/vision/brandtone.analyzer.d.ts.map +1 -0
  633. package/dist/services/vision/brandtone.analyzer.js +279 -0
  634. package/dist/services/vision/brandtone.analyzer.js.map +1 -0
  635. package/dist/services/vision/hardware-detector.d.ts +166 -0
  636. package/dist/services/vision/hardware-detector.d.ts.map +1 -0
  637. package/dist/services/vision/hardware-detector.js +330 -0
  638. package/dist/services/vision/hardware-detector.js.map +1 -0
  639. package/dist/services/vision/image-optimizer.d.ts +152 -0
  640. package/dist/services/vision/image-optimizer.d.ts.map +1 -0
  641. package/dist/services/vision/image-optimizer.js +266 -0
  642. package/dist/services/vision/image-optimizer.js.map +1 -0
  643. package/dist/services/vision/index.d.ts +26 -0
  644. package/dist/services/vision/index.d.ts.map +1 -0
  645. package/dist/services/vision/index.js +80 -0
  646. package/dist/services/vision/index.js.map +1 -0
  647. package/dist/services/vision/llama-vision-adapter.d.ts +178 -0
  648. package/dist/services/vision/llama-vision-adapter.d.ts.map +1 -0
  649. package/dist/services/vision/llama-vision-adapter.js +307 -0
  650. package/dist/services/vision/llama-vision-adapter.js.map +1 -0
  651. package/dist/services/vision/mcp-progress-adapter.d.ts +128 -0
  652. package/dist/services/vision/mcp-progress-adapter.d.ts.map +1 -0
  653. package/dist/services/vision/mcp-progress-adapter.js +150 -0
  654. package/dist/services/vision/mcp-progress-adapter.js.map +1 -0
  655. package/dist/services/vision/mood.analyzer.d.ts +74 -0
  656. package/dist/services/vision/mood.analyzer.d.ts.map +1 -0
  657. package/dist/services/vision/mood.analyzer.js +258 -0
  658. package/dist/services/vision/mood.analyzer.js.map +1 -0
  659. package/dist/services/vision/ollama-readiness-probe.d.ts +87 -0
  660. package/dist/services/vision/ollama-readiness-probe.d.ts.map +1 -0
  661. package/dist/services/vision/ollama-readiness-probe.js +211 -0
  662. package/dist/services/vision/ollama-readiness-probe.js.map +1 -0
  663. package/dist/services/vision/ollama-vision-client.d.ts +129 -0
  664. package/dist/services/vision/ollama-vision-client.d.ts.map +1 -0
  665. package/dist/services/vision/ollama-vision-client.js +478 -0
  666. package/dist/services/vision/ollama-vision-client.js.map +1 -0
  667. package/dist/services/vision/progress-reporter.d.ts +140 -0
  668. package/dist/services/vision/progress-reporter.d.ts.map +1 -0
  669. package/dist/services/vision/progress-reporter.js +306 -0
  670. package/dist/services/vision/progress-reporter.js.map +1 -0
  671. package/dist/services/vision/scroll-vision-capture.service.d.ts +117 -0
  672. package/dist/services/vision/scroll-vision-capture.service.d.ts.map +1 -0
  673. package/dist/services/vision/scroll-vision-capture.service.js +266 -0
  674. package/dist/services/vision/scroll-vision-capture.service.js.map +1 -0
  675. package/dist/services/vision/scroll-vision-persistence.service.d.ts +48 -0
  676. package/dist/services/vision/scroll-vision-persistence.service.d.ts.map +1 -0
  677. package/dist/services/vision/scroll-vision-persistence.service.js +161 -0
  678. package/dist/services/vision/scroll-vision-persistence.service.js.map +1 -0
  679. package/dist/services/vision/scroll-vision.analyzer.d.ts +90 -0
  680. package/dist/services/vision/scroll-vision.analyzer.d.ts.map +1 -0
  681. package/dist/services/vision/scroll-vision.analyzer.js +280 -0
  682. package/dist/services/vision/scroll-vision.analyzer.js.map +1 -0
  683. package/dist/services/vision/theme.analyzer.d.ts +108 -0
  684. package/dist/services/vision/theme.analyzer.d.ts.map +1 -0
  685. package/dist/services/vision/theme.analyzer.js +315 -0
  686. package/dist/services/vision/theme.analyzer.js.map +1 -0
  687. package/dist/services/vision/timeout-calculator.d.ts +85 -0
  688. package/dist/services/vision/timeout-calculator.d.ts.map +1 -0
  689. package/dist/services/vision/timeout-calculator.js +142 -0
  690. package/dist/services/vision/timeout-calculator.js.map +1 -0
  691. package/dist/services/vision/vision-fallback.service.d.ts +121 -0
  692. package/dist/services/vision/vision-fallback.service.d.ts.map +1 -0
  693. package/dist/services/vision/vision-fallback.service.js +253 -0
  694. package/dist/services/vision/vision-fallback.service.js.map +1 -0
  695. package/dist/services/vision/vision.cache.d.ts +124 -0
  696. package/dist/services/vision/vision.cache.d.ts.map +1 -0
  697. package/dist/services/vision/vision.cache.js +261 -0
  698. package/dist/services/vision/vision.cache.js.map +1 -0
  699. package/dist/services/vision/vision.errors.d.ts +104 -0
  700. package/dist/services/vision/vision.errors.d.ts.map +1 -0
  701. package/dist/services/vision/vision.errors.js +133 -0
  702. package/dist/services/vision/vision.errors.js.map +1 -0
  703. package/dist/services/vision/vision.prompts.d.ts +47 -0
  704. package/dist/services/vision/vision.prompts.d.ts.map +1 -0
  705. package/dist/services/vision/vision.prompts.js +272 -0
  706. package/dist/services/vision/vision.prompts.js.map +1 -0
  707. package/dist/services/vision/vram-utils.d.ts +22 -0
  708. package/dist/services/vision/vram-utils.d.ts.map +1 -0
  709. package/dist/services/vision/vram-utils.js +57 -0
  710. package/dist/services/vision/vram-utils.js.map +1 -0
  711. package/dist/services/vision-adapter/index.d.ts +18 -0
  712. package/dist/services/vision-adapter/index.d.ts.map +1 -0
  713. package/dist/services/vision-adapter/index.js +31 -0
  714. package/dist/services/vision-adapter/index.js.map +1 -0
  715. package/dist/services/vision-adapter/interface.d.ts +1434 -0
  716. package/dist/services/vision-adapter/interface.d.ts.map +1 -0
  717. package/dist/services/vision-adapter/interface.js +326 -0
  718. package/dist/services/vision-adapter/interface.js.map +1 -0
  719. package/dist/services/vision-adapter/llama-vision.adapter.d.ts +373 -0
  720. package/dist/services/vision-adapter/llama-vision.adapter.d.ts.map +1 -0
  721. package/dist/services/vision-adapter/llama-vision.adapter.js +1751 -0
  722. package/dist/services/vision-adapter/llama-vision.adapter.js.map +1 -0
  723. package/dist/services/vision-adapter/llama-vision.prompts.d.ts +63 -0
  724. package/dist/services/vision-adapter/llama-vision.prompts.d.ts.map +1 -0
  725. package/dist/services/vision-adapter/llama-vision.prompts.js +234 -0
  726. package/dist/services/vision-adapter/llama-vision.prompts.js.map +1 -0
  727. package/dist/services/vision-adapter/llama-vision.types.d.ts +68 -0
  728. package/dist/services/vision-adapter/llama-vision.types.d.ts.map +1 -0
  729. package/dist/services/vision-adapter/llama-vision.types.js +21 -0
  730. package/dist/services/vision-adapter/llama-vision.types.js.map +1 -0
  731. package/dist/services/vision-adapter/local.adapter.d.ts +185 -0
  732. package/dist/services/vision-adapter/local.adapter.d.ts.map +1 -0
  733. package/dist/services/vision-adapter/local.adapter.js +835 -0
  734. package/dist/services/vision-adapter/local.adapter.js.map +1 -0
  735. package/dist/services/vision-adapter/mock.adapter.d.ts +174 -0
  736. package/dist/services/vision-adapter/mock.adapter.d.ts.map +1 -0
  737. package/dist/services/vision-adapter/mock.adapter.js +812 -0
  738. package/dist/services/vision-adapter/mock.adapter.js.map +1 -0
  739. package/dist/services/vision-embedding-search.service.d.ts +205 -0
  740. package/dist/services/vision-embedding-search.service.d.ts.map +1 -0
  741. package/dist/services/vision-embedding-search.service.js +742 -0
  742. package/dist/services/vision-embedding-search.service.js.map +1 -0
  743. package/dist/services/vision-embedding.service.d.ts +150 -0
  744. package/dist/services/vision-embedding.service.d.ts.map +1 -0
  745. package/dist/services/vision-embedding.service.js +461 -0
  746. package/dist/services/vision-embedding.service.js.map +1 -0
  747. package/dist/services/visual/css-variable-extractor.service.d.ts +97 -0
  748. package/dist/services/visual/css-variable-extractor.service.d.ts.map +1 -0
  749. package/dist/services/visual/css-variable-extractor.service.js +460 -0
  750. package/dist/services/visual/css-variable-extractor.service.js.map +1 -0
  751. package/dist/services/visual/typography-extractor.service.d.ts +137 -0
  752. package/dist/services/visual/typography-extractor.service.d.ts.map +1 -0
  753. package/dist/services/visual/typography-extractor.service.js +539 -0
  754. package/dist/services/visual/typography-extractor.service.js.map +1 -0
  755. package/dist/services/visual-extractor/color-extractor.service.d.ts +55 -0
  756. package/dist/services/visual-extractor/color-extractor.service.d.ts.map +1 -0
  757. package/dist/services/visual-extractor/color-extractor.service.js +281 -0
  758. package/dist/services/visual-extractor/color-extractor.service.js.map +1 -0
  759. package/dist/services/visual-extractor/density-calculator.service.d.ts +85 -0
  760. package/dist/services/visual-extractor/density-calculator.service.d.ts.map +1 -0
  761. package/dist/services/visual-extractor/density-calculator.service.js +369 -0
  762. package/dist/services/visual-extractor/density-calculator.service.js.map +1 -0
  763. package/dist/services/visual-extractor/gradient-detector.service.d.ts +134 -0
  764. package/dist/services/visual-extractor/gradient-detector.service.d.ts.map +1 -0
  765. package/dist/services/visual-extractor/gradient-detector.service.js +1172 -0
  766. package/dist/services/visual-extractor/gradient-detector.service.js.map +1 -0
  767. package/dist/services/visual-extractor/image-utils.d.ts +135 -0
  768. package/dist/services/visual-extractor/image-utils.d.ts.map +1 -0
  769. package/dist/services/visual-extractor/image-utils.js +305 -0
  770. package/dist/services/visual-extractor/image-utils.js.map +1 -0
  771. package/dist/services/visual-extractor/pixel-theme-detector.service.d.ts +58 -0
  772. package/dist/services/visual-extractor/pixel-theme-detector.service.d.ts.map +1 -0
  773. package/dist/services/visual-extractor/pixel-theme-detector.service.js +358 -0
  774. package/dist/services/visual-extractor/pixel-theme-detector.service.js.map +1 -0
  775. package/dist/services/visual-extractor/theme-detector.service.d.ts +101 -0
  776. package/dist/services/visual-extractor/theme-detector.service.d.ts.map +1 -0
  777. package/dist/services/visual-extractor/theme-detector.service.js +463 -0
  778. package/dist/services/visual-extractor/theme-detector.service.js.map +1 -0
  779. package/dist/services/visual-extractor/visual-decoration-detector.service.d.ts +43 -0
  780. package/dist/services/visual-extractor/visual-decoration-detector.service.d.ts.map +1 -0
  781. package/dist/services/visual-extractor/visual-decoration-detector.service.js +628 -0
  782. package/dist/services/visual-extractor/visual-decoration-detector.service.js.map +1 -0
  783. package/dist/services/visual-extractor/visual-feature-merger.service.d.ts +230 -0
  784. package/dist/services/visual-extractor/visual-feature-merger.service.d.ts.map +1 -0
  785. package/dist/services/visual-extractor/visual-feature-merger.service.js +482 -0
  786. package/dist/services/visual-extractor/visual-feature-merger.service.js.map +1 -0
  787. package/dist/services/web-page.service.d.ts +80 -0
  788. package/dist/services/web-page.service.d.ts.map +1 -0
  789. package/dist/services/web-page.service.js +211 -0
  790. package/dist/services/web-page.service.js.map +1 -0
  791. package/dist/services/worker-constants.d.ts +40 -0
  792. package/dist/services/worker-constants.d.ts.map +1 -0
  793. package/dist/services/worker-constants.js +51 -0
  794. package/dist/services/worker-constants.js.map +1 -0
  795. package/dist/services/worker-db-save.service.d.ts +311 -0
  796. package/dist/services/worker-db-save.service.d.ts.map +1 -0
  797. package/dist/services/worker-db-save.service.js +771 -0
  798. package/dist/services/worker-db-save.service.js.map +1 -0
  799. package/dist/services/worker-memory-monitor.service.d.ts +24 -0
  800. package/dist/services/worker-memory-monitor.service.d.ts.map +1 -0
  801. package/dist/services/worker-memory-monitor.service.js +105 -0
  802. package/dist/services/worker-memory-monitor.service.js.map +1 -0
  803. package/dist/services/worker-memory-profile.d.ts +65 -0
  804. package/dist/services/worker-memory-profile.d.ts.map +1 -0
  805. package/dist/services/worker-memory-profile.js +225 -0
  806. package/dist/services/worker-memory-profile.js.map +1 -0
  807. package/dist/services/worker-stall-recovery.service.d.ts +166 -0
  808. package/dist/services/worker-stall-recovery.service.d.ts.map +1 -0
  809. package/dist/services/worker-stall-recovery.service.js +335 -0
  810. package/dist/services/worker-stall-recovery.service.js.map +1 -0
  811. package/dist/services/worker-supervisor.service.d.ts +145 -0
  812. package/dist/services/worker-supervisor.service.d.ts.map +1 -0
  813. package/dist/services/worker-supervisor.service.js +635 -0
  814. package/dist/services/worker-supervisor.service.js.map +1 -0
  815. package/dist/tools/background/schemas.d.ts +85 -0
  816. package/dist/tools/background/schemas.d.ts.map +1 -0
  817. package/dist/tools/background/schemas.js +79 -0
  818. package/dist/tools/background/schemas.js.map +1 -0
  819. package/dist/tools/background/search.tool.d.ts +179 -0
  820. package/dist/tools/background/search.tool.d.ts.map +1 -0
  821. package/dist/tools/background/search.tool.js +318 -0
  822. package/dist/tools/background/search.tool.js.map +1 -0
  823. package/dist/tools/brief/index.d.ts +10 -0
  824. package/dist/tools/brief/index.d.ts.map +1 -0
  825. package/dist/tools/brief/index.js +54 -0
  826. package/dist/tools/brief/index.js.map +1 -0
  827. package/dist/tools/brief/schemas.d.ts +750 -0
  828. package/dist/tools/brief/schemas.d.ts.map +1 -0
  829. package/dist/tools/brief/schemas.js +212 -0
  830. package/dist/tools/brief/schemas.js.map +1 -0
  831. package/dist/tools/brief/validate.handler.d.ts +149 -0
  832. package/dist/tools/brief/validate.handler.d.ts.map +1 -0
  833. package/dist/tools/brief/validate.handler.js +247 -0
  834. package/dist/tools/brief/validate.handler.js.map +1 -0
  835. package/dist/tools/brief/validate.service.d.ts +100 -0
  836. package/dist/tools/brief/validate.service.d.ts.map +1 -0
  837. package/dist/tools/brief/validate.service.js +296 -0
  838. package/dist/tools/brief/validate.service.js.map +1 -0
  839. package/dist/tools/common/error-codes.d.ts +35 -0
  840. package/dist/tools/common/error-codes.d.ts.map +1 -0
  841. package/dist/tools/common/error-codes.js +92 -0
  842. package/dist/tools/common/error-codes.js.map +1 -0
  843. package/dist/tools/common/index.d.ts +7 -0
  844. package/dist/tools/common/index.d.ts.map +1 -0
  845. package/dist/tools/common/index.js +20 -0
  846. package/dist/tools/common/index.js.map +1 -0
  847. package/dist/tools/index.d.ts +2756 -0
  848. package/dist/tools/index.d.ts.map +1 -0
  849. package/dist/tools/index.js +506 -0
  850. package/dist/tools/index.js.map +1 -0
  851. package/dist/tools/layout/batch-ingest.tool.d.ts +82 -0
  852. package/dist/tools/layout/batch-ingest.tool.d.ts.map +1 -0
  853. package/dist/tools/layout/batch-ingest.tool.js +410 -0
  854. package/dist/tools/layout/batch-ingest.tool.js.map +1 -0
  855. package/dist/tools/layout/index.d.ts +13 -0
  856. package/dist/tools/layout/index.d.ts.map +1 -0
  857. package/dist/tools/layout/index.js +62 -0
  858. package/dist/tools/layout/index.js.map +1 -0
  859. package/dist/tools/layout/ingest.tool.d.ts +338 -0
  860. package/dist/tools/layout/ingest.tool.d.ts.map +1 -0
  861. package/dist/tools/layout/ingest.tool.js +1308 -0
  862. package/dist/tools/layout/ingest.tool.js.map +1 -0
  863. package/dist/tools/layout/inspect/index.d.ts +11 -0
  864. package/dist/tools/layout/inspect/index.d.ts.map +1 -0
  865. package/dist/tools/layout/inspect/index.js +55 -0
  866. package/dist/tools/layout/inspect/index.js.map +1 -0
  867. package/dist/tools/layout/inspect/inspect.schemas.d.ts +4130 -0
  868. package/dist/tools/layout/inspect/inspect.schemas.d.ts.map +1 -0
  869. package/dist/tools/layout/inspect/inspect.schemas.js +400 -0
  870. package/dist/tools/layout/inspect/inspect.schemas.js.map +1 -0
  871. package/dist/tools/layout/inspect/inspect.tool.d.ts +164 -0
  872. package/dist/tools/layout/inspect/inspect.tool.d.ts.map +1 -0
  873. package/dist/tools/layout/inspect/inspect.tool.js +738 -0
  874. package/dist/tools/layout/inspect/inspect.tool.js.map +1 -0
  875. package/dist/tools/layout/inspect/inspect.utils.d.ts +200 -0
  876. package/dist/tools/layout/inspect/inspect.utils.d.ts.map +1 -0
  877. package/dist/tools/layout/inspect/inspect.utils.js +1104 -0
  878. package/dist/tools/layout/inspect/inspect.utils.js.map +1 -0
  879. package/dist/tools/layout/inspect/visual-extractors.schemas.d.ts +3372 -0
  880. package/dist/tools/layout/inspect/visual-extractors.schemas.d.ts.map +1 -0
  881. package/dist/tools/layout/inspect/visual-extractors.schemas.js +558 -0
  882. package/dist/tools/layout/inspect/visual-extractors.schemas.js.map +1 -0
  883. package/dist/tools/layout/inspect/visual-extractors.utils.d.ts +86 -0
  884. package/dist/tools/layout/inspect/visual-extractors.utils.d.ts.map +1 -0
  885. package/dist/tools/layout/inspect/visual-extractors.utils.js +231 -0
  886. package/dist/tools/layout/inspect/visual-extractors.utils.js.map +1 -0
  887. package/dist/tools/layout/schemas.d.ts +11074 -0
  888. package/dist/tools/layout/schemas.d.ts.map +1 -0
  889. package/dist/tools/layout/schemas.js +1497 -0
  890. package/dist/tools/layout/schemas.js.map +1 -0
  891. package/dist/tools/layout/search.tool.d.ts +470 -0
  892. package/dist/tools/layout/search.tool.d.ts.map +1 -0
  893. package/dist/tools/layout/search.tool.js +1582 -0
  894. package/dist/tools/layout/search.tool.js.map +1 -0
  895. package/dist/tools/layout/to-code.tool.d.ts +280 -0
  896. package/dist/tools/layout/to-code.tool.d.ts.map +1 -0
  897. package/dist/tools/layout/to-code.tool.js +317 -0
  898. package/dist/tools/layout/to-code.tool.js.map +1 -0
  899. package/dist/tools/motion/analyze-frames.handler.d.ts +157 -0
  900. package/dist/tools/motion/analyze-frames.handler.d.ts.map +1 -0
  901. package/dist/tools/motion/analyze-frames.handler.js +263 -0
  902. package/dist/tools/motion/analyze-frames.handler.js.map +1 -0
  903. package/dist/tools/motion/analyze-frames.schema.d.ts +4599 -0
  904. package/dist/tools/motion/analyze-frames.schema.d.ts.map +1 -0
  905. package/dist/tools/motion/analyze-frames.schema.js +420 -0
  906. package/dist/tools/motion/analyze-frames.schema.js.map +1 -0
  907. package/dist/tools/motion/css-mode-handler.d.ts +70 -0
  908. package/dist/tools/motion/css-mode-handler.d.ts.map +1 -0
  909. package/dist/tools/motion/css-mode-handler.js +754 -0
  910. package/dist/tools/motion/css-mode-handler.js.map +1 -0
  911. package/dist/tools/motion/detect.schemas.d.ts +14288 -0
  912. package/dist/tools/motion/detect.schemas.d.ts.map +1 -0
  913. package/dist/tools/motion/detect.schemas.js +1715 -0
  914. package/dist/tools/motion/detect.schemas.js.map +1 -0
  915. package/dist/tools/motion/detect.tool.d.ts +195 -0
  916. package/dist/tools/motion/detect.tool.d.ts.map +1 -0
  917. package/dist/tools/motion/detect.tool.js +1421 -0
  918. package/dist/tools/motion/detect.tool.js.map +1 -0
  919. package/dist/tools/motion/detection-modes.d.ts +72 -0
  920. package/dist/tools/motion/detection-modes.d.ts.map +1 -0
  921. package/dist/tools/motion/detection-modes.js +353 -0
  922. package/dist/tools/motion/detection-modes.js.map +1 -0
  923. package/dist/tools/motion/di-factories.d.ts +341 -0
  924. package/dist/tools/motion/di-factories.d.ts.map +1 -0
  925. package/dist/tools/motion/di-factories.js +376 -0
  926. package/dist/tools/motion/di-factories.js.map +1 -0
  927. package/dist/tools/motion/index.d.ts +12 -0
  928. package/dist/tools/motion/index.d.ts.map +1 -0
  929. package/dist/tools/motion/index.js +146 -0
  930. package/dist/tools/motion/index.js.map +1 -0
  931. package/dist/tools/motion/pattern-converter.d.ts +49 -0
  932. package/dist/tools/motion/pattern-converter.d.ts.map +1 -0
  933. package/dist/tools/motion/pattern-converter.js +493 -0
  934. package/dist/tools/motion/pattern-converter.js.map +1 -0
  935. package/dist/tools/motion/schemas.d.ts +10 -0
  936. package/dist/tools/motion/schemas.d.ts.map +1 -0
  937. package/dist/tools/motion/schemas.js +28 -0
  938. package/dist/tools/motion/schemas.js.map +1 -0
  939. package/dist/tools/motion/search.schemas.d.ts +7500 -0
  940. package/dist/tools/motion/search.schemas.d.ts.map +1 -0
  941. package/dist/tools/motion/search.schemas.js +596 -0
  942. package/dist/tools/motion/search.schemas.js.map +1 -0
  943. package/dist/tools/motion/search.tool.d.ts +416 -0
  944. package/dist/tools/motion/search.tool.d.ts.map +1 -0
  945. package/dist/tools/motion/search.tool.js +2088 -0
  946. package/dist/tools/motion/search.tool.js.map +1 -0
  947. package/dist/tools/motion/shared.schemas.d.ts +994 -0
  948. package/dist/tools/motion/shared.schemas.d.ts.map +1 -0
  949. package/dist/tools/motion/shared.schemas.js +354 -0
  950. package/dist/tools/motion/shared.schemas.js.map +1 -0
  951. package/dist/tools/narrative/analyze.tool.d.ts +96 -0
  952. package/dist/tools/narrative/analyze.tool.d.ts.map +1 -0
  953. package/dist/tools/narrative/analyze.tool.js +396 -0
  954. package/dist/tools/narrative/analyze.tool.js.map +1 -0
  955. package/dist/tools/narrative/index.d.ts +15 -0
  956. package/dist/tools/narrative/index.d.ts.map +1 -0
  957. package/dist/tools/narrative/index.js +83 -0
  958. package/dist/tools/narrative/index.js.map +1 -0
  959. package/dist/tools/narrative/schemas.d.ts +5553 -0
  960. package/dist/tools/narrative/schemas.d.ts.map +1 -0
  961. package/dist/tools/narrative/schemas.js +747 -0
  962. package/dist/tools/narrative/schemas.js.map +1 -0
  963. package/dist/tools/narrative/search.tool.d.ts +160 -0
  964. package/dist/tools/narrative/search.tool.d.ts.map +1 -0
  965. package/dist/tools/narrative/search.tool.js +434 -0
  966. package/dist/tools/narrative/search.tool.js.map +1 -0
  967. package/dist/tools/page/analyze.tool.d.ts +502 -0
  968. package/dist/tools/page/analyze.tool.d.ts.map +1 -0
  969. package/dist/tools/page/analyze.tool.js +875 -0
  970. package/dist/tools/page/analyze.tool.js.map +1 -0
  971. package/dist/tools/page/get-job-status.tool.d.ts +43 -0
  972. package/dist/tools/page/get-job-status.tool.d.ts.map +1 -0
  973. package/dist/tools/page/get-job-status.tool.js +178 -0
  974. package/dist/tools/page/get-job-status.tool.js.map +1 -0
  975. package/dist/tools/page/handlers/db-handler.d.ts +155 -0
  976. package/dist/tools/page/handlers/db-handler.d.ts.map +1 -0
  977. package/dist/tools/page/handlers/db-handler.js +368 -0
  978. package/dist/tools/page/handlers/db-handler.js.map +1 -0
  979. package/dist/tools/page/handlers/embedding-handler.d.ts +200 -0
  980. package/dist/tools/page/handlers/embedding-handler.d.ts.map +1 -0
  981. package/dist/tools/page/handlers/embedding-handler.js +541 -0
  982. package/dist/tools/page/handlers/embedding-handler.js.map +1 -0
  983. package/dist/tools/page/handlers/execution-status-tracker.d.ts +146 -0
  984. package/dist/tools/page/handlers/execution-status-tracker.d.ts.map +1 -0
  985. package/dist/tools/page/handlers/execution-status-tracker.js +348 -0
  986. package/dist/tools/page/handlers/execution-status-tracker.js.map +1 -0
  987. package/dist/tools/page/handlers/js-animation-handler.d.ts +197 -0
  988. package/dist/tools/page/handlers/js-animation-handler.d.ts.map +1 -0
  989. package/dist/tools/page/handlers/js-animation-handler.js +952 -0
  990. package/dist/tools/page/handlers/js-animation-handler.js.map +1 -0
  991. package/dist/tools/page/handlers/layout-handler.d.ts +31 -0
  992. package/dist/tools/page/handlers/layout-handler.d.ts.map +1 -0
  993. package/dist/tools/page/handlers/layout-handler.js +1181 -0
  994. package/dist/tools/page/handlers/layout-handler.js.map +1 -0
  995. package/dist/tools/page/handlers/motion-handler.d.ts +31 -0
  996. package/dist/tools/page/handlers/motion-handler.d.ts.map +1 -0
  997. package/dist/tools/page/handlers/motion-handler.js +940 -0
  998. package/dist/tools/page/handlers/motion-handler.js.map +1 -0
  999. package/dist/tools/page/handlers/narrative-handler.d.ts +23 -0
  1000. package/dist/tools/page/handlers/narrative-handler.d.ts.map +1 -0
  1001. package/dist/tools/page/handlers/narrative-handler.js +279 -0
  1002. package/dist/tools/page/handlers/narrative-handler.js.map +1 -0
  1003. package/dist/tools/page/handlers/phased-db-handler.d.ts +83 -0
  1004. package/dist/tools/page/handlers/phased-db-handler.d.ts.map +1 -0
  1005. package/dist/tools/page/handlers/phased-db-handler.js +120 -0
  1006. package/dist/tools/page/handlers/phased-db-handler.js.map +1 -0
  1007. package/dist/tools/page/handlers/phased-executor.d.ts +123 -0
  1008. package/dist/tools/page/handlers/phased-executor.d.ts.map +1 -0
  1009. package/dist/tools/page/handlers/phased-executor.js +205 -0
  1010. package/dist/tools/page/handlers/phased-executor.js.map +1 -0
  1011. package/dist/tools/page/handlers/quality-handler.d.ts +9 -0
  1012. package/dist/tools/page/handlers/quality-handler.d.ts.map +1 -0
  1013. package/dist/tools/page/handlers/quality-handler.js +100 -0
  1014. package/dist/tools/page/handlers/quality-handler.js.map +1 -0
  1015. package/dist/tools/page/handlers/result-builder.d.ts +105 -0
  1016. package/dist/tools/page/handlers/result-builder.d.ts.map +1 -0
  1017. package/dist/tools/page/handlers/result-builder.js +447 -0
  1018. package/dist/tools/page/handlers/result-builder.js.map +1 -0
  1019. package/dist/tools/page/handlers/retry-strategy.d.ts +106 -0
  1020. package/dist/tools/page/handlers/retry-strategy.d.ts.map +1 -0
  1021. package/dist/tools/page/handlers/retry-strategy.js +169 -0
  1022. package/dist/tools/page/handlers/retry-strategy.js.map +1 -0
  1023. package/dist/tools/page/handlers/sync-processing.d.ts +26 -0
  1024. package/dist/tools/page/handlers/sync-processing.d.ts.map +1 -0
  1025. package/dist/tools/page/handlers/sync-processing.js +1659 -0
  1026. package/dist/tools/page/handlers/sync-processing.js.map +1 -0
  1027. package/dist/tools/page/handlers/timeout-utils.d.ts +278 -0
  1028. package/dist/tools/page/handlers/timeout-utils.d.ts.map +1 -0
  1029. package/dist/tools/page/handlers/timeout-utils.js +600 -0
  1030. package/dist/tools/page/handlers/timeout-utils.js.map +1 -0
  1031. package/dist/tools/page/handlers/types.d.ts +1229 -0
  1032. package/dist/tools/page/handlers/types.d.ts.map +1 -0
  1033. package/dist/tools/page/handlers/types.js +21 -0
  1034. package/dist/tools/page/handlers/types.js.map +1 -0
  1035. package/dist/tools/page/handlers/video-handler.d.ts +11 -0
  1036. package/dist/tools/page/handlers/video-handler.d.ts.map +1 -0
  1037. package/dist/tools/page/handlers/video-handler.js +235 -0
  1038. package/dist/tools/page/handlers/video-handler.js.map +1 -0
  1039. package/dist/tools/page/handlers/webgl-animation-handler.d.ts +48 -0
  1040. package/dist/tools/page/handlers/webgl-animation-handler.d.ts.map +1 -0
  1041. package/dist/tools/page/handlers/webgl-animation-handler.js +237 -0
  1042. package/dist/tools/page/handlers/webgl-animation-handler.js.map +1 -0
  1043. package/dist/tools/page/handlers/webgl-detector.d.ts +184 -0
  1044. package/dist/tools/page/handlers/webgl-detector.d.ts.map +1 -0
  1045. package/dist/tools/page/handlers/webgl-detector.js +680 -0
  1046. package/dist/tools/page/handlers/webgl-detector.js.map +1 -0
  1047. package/dist/tools/page/handlers/webgl-domains.d.ts +133 -0
  1048. package/dist/tools/page/handlers/webgl-domains.d.ts.map +1 -0
  1049. package/dist/tools/page/handlers/webgl-domains.js +420 -0
  1050. package/dist/tools/page/handlers/webgl-domains.js.map +1 -0
  1051. package/dist/tools/page/handlers/webgl-pre-detector.d.ts +100 -0
  1052. package/dist/tools/page/handlers/webgl-pre-detector.d.ts.map +1 -0
  1053. package/dist/tools/page/handlers/webgl-pre-detector.js +248 -0
  1054. package/dist/tools/page/handlers/webgl-pre-detector.js.map +1 -0
  1055. package/dist/tools/page/index.d.ts +10 -0
  1056. package/dist/tools/page/index.d.ts.map +1 -0
  1057. package/dist/tools/page/index.js +84 -0
  1058. package/dist/tools/page/index.js.map +1 -0
  1059. package/dist/tools/page/input.schemas.d.ts +2223 -0
  1060. package/dist/tools/page/input.schemas.d.ts.map +1 -0
  1061. package/dist/tools/page/input.schemas.js +853 -0
  1062. package/dist/tools/page/input.schemas.js.map +1 -0
  1063. package/dist/tools/page/output.schemas.d.ts +26026 -0
  1064. package/dist/tools/page/output.schemas.d.ts.map +1 -0
  1065. package/dist/tools/page/output.schemas.js +1414 -0
  1066. package/dist/tools/page/output.schemas.js.map +1 -0
  1067. package/dist/tools/page/schemas.d.ts +10 -0
  1068. package/dist/tools/page/schemas.d.ts.map +1 -0
  1069. package/dist/tools/page/schemas.js +28 -0
  1070. package/dist/tools/page/schemas.js.map +1 -0
  1071. package/dist/tools/page/shared.schemas.d.ts +38 -0
  1072. package/dist/tools/page/shared.schemas.d.ts.map +1 -0
  1073. package/dist/tools/page/shared.schemas.js +69 -0
  1074. package/dist/tools/page/shared.schemas.js.map +1 -0
  1075. package/dist/tools/part/compare.tool.d.ts +106 -0
  1076. package/dist/tools/part/compare.tool.d.ts.map +1 -0
  1077. package/dist/tools/part/compare.tool.js +421 -0
  1078. package/dist/tools/part/compare.tool.js.map +1 -0
  1079. package/dist/tools/part/inspect.tool.d.ts +108 -0
  1080. package/dist/tools/part/inspect.tool.d.ts.map +1 -0
  1081. package/dist/tools/part/inspect.tool.js +279 -0
  1082. package/dist/tools/part/inspect.tool.js.map +1 -0
  1083. package/dist/tools/part/search.tool.d.ts +121 -0
  1084. package/dist/tools/part/search.tool.d.ts.map +1 -0
  1085. package/dist/tools/part/search.tool.js +381 -0
  1086. package/dist/tools/part/search.tool.js.map +1 -0
  1087. package/dist/tools/preference/get.tool.d.ts +74 -0
  1088. package/dist/tools/preference/get.tool.d.ts.map +1 -0
  1089. package/dist/tools/preference/get.tool.js +175 -0
  1090. package/dist/tools/preference/get.tool.js.map +1 -0
  1091. package/dist/tools/preference/hear.tool.d.ts +267 -0
  1092. package/dist/tools/preference/hear.tool.d.ts.map +1 -0
  1093. package/dist/tools/preference/hear.tool.js +268 -0
  1094. package/dist/tools/preference/hear.tool.js.map +1 -0
  1095. package/dist/tools/preference/index.d.ts +16 -0
  1096. package/dist/tools/preference/index.d.ts.map +1 -0
  1097. package/dist/tools/preference/index.js +43 -0
  1098. package/dist/tools/preference/index.js.map +1 -0
  1099. package/dist/tools/preference/reset.tool.d.ts +71 -0
  1100. package/dist/tools/preference/reset.tool.d.ts.map +1 -0
  1101. package/dist/tools/preference/reset.tool.js +205 -0
  1102. package/dist/tools/preference/reset.tool.js.map +1 -0
  1103. package/dist/tools/preference/schemas.d.ts +174 -0
  1104. package/dist/tools/preference/schemas.d.ts.map +1 -0
  1105. package/dist/tools/preference/schemas.js +142 -0
  1106. package/dist/tools/preference/schemas.js.map +1 -0
  1107. package/dist/tools/project-get.d.ts +42 -0
  1108. package/dist/tools/project-get.d.ts.map +1 -0
  1109. package/dist/tools/project-get.js +152 -0
  1110. package/dist/tools/project-get.js.map +1 -0
  1111. package/dist/tools/project-list.d.ts +66 -0
  1112. package/dist/tools/project-list.d.ts.map +1 -0
  1113. package/dist/tools/project-list.js +201 -0
  1114. package/dist/tools/project-list.js.map +1 -0
  1115. package/dist/tools/quality/batch-evaluate.tool.d.ts +101 -0
  1116. package/dist/tools/quality/batch-evaluate.tool.d.ts.map +1 -0
  1117. package/dist/tools/quality/batch-evaluate.tool.js +393 -0
  1118. package/dist/tools/quality/batch-evaluate.tool.js.map +1 -0
  1119. package/dist/tools/quality/evaluate-engine.d.ts +166 -0
  1120. package/dist/tools/quality/evaluate-engine.d.ts.map +1 -0
  1121. package/dist/tools/quality/evaluate-engine.js +1061 -0
  1122. package/dist/tools/quality/evaluate-engine.js.map +1 -0
  1123. package/dist/tools/quality/evaluate.tool.d.ts +286 -0
  1124. package/dist/tools/quality/evaluate.tool.d.ts.map +1 -0
  1125. package/dist/tools/quality/evaluate.tool.js +815 -0
  1126. package/dist/tools/quality/evaluate.tool.js.map +1 -0
  1127. package/dist/tools/quality/get-job-status.tool.d.ts +44 -0
  1128. package/dist/tools/quality/get-job-status.tool.d.ts.map +1 -0
  1129. package/dist/tools/quality/get-job-status.tool.js +291 -0
  1130. package/dist/tools/quality/get-job-status.tool.js.map +1 -0
  1131. package/dist/tools/quality/improvement-utils.d.ts +24 -0
  1132. package/dist/tools/quality/improvement-utils.d.ts.map +1 -0
  1133. package/dist/tools/quality/improvement-utils.js +307 -0
  1134. package/dist/tools/quality/improvement-utils.js.map +1 -0
  1135. package/dist/tools/quality/index.d.ts +11 -0
  1136. package/dist/tools/quality/index.d.ts.map +1 -0
  1137. package/dist/tools/quality/index.js +49 -0
  1138. package/dist/tools/quality/index.js.map +1 -0
  1139. package/dist/tools/quality/schemas.d.ts +14098 -0
  1140. package/dist/tools/quality/schemas.d.ts.map +1 -0
  1141. package/dist/tools/quality/schemas.js +950 -0
  1142. package/dist/tools/quality/schemas.js.map +1 -0
  1143. package/dist/tools/responsive/schemas.d.ts +156 -0
  1144. package/dist/tools/responsive/schemas.d.ts.map +1 -0
  1145. package/dist/tools/responsive/schemas.js +86 -0
  1146. package/dist/tools/responsive/schemas.js.map +1 -0
  1147. package/dist/tools/responsive/search.tool.d.ts +130 -0
  1148. package/dist/tools/responsive/search.tool.d.ts.map +1 -0
  1149. package/dist/tools/responsive/search.tool.js +324 -0
  1150. package/dist/tools/responsive/search.tool.js.map +1 -0
  1151. package/dist/tools/schemas/index.d.ts +10 -0
  1152. package/dist/tools/schemas/index.d.ts.map +1 -0
  1153. package/dist/tools/schemas/index.js +45 -0
  1154. package/dist/tools/schemas/index.js.map +1 -0
  1155. package/dist/tools/schemas/layout-schemas.d.ts +521 -0
  1156. package/dist/tools/schemas/layout-schemas.d.ts.map +1 -0
  1157. package/dist/tools/schemas/layout-schemas.js +281 -0
  1158. package/dist/tools/schemas/layout-schemas.js.map +1 -0
  1159. package/dist/tools/schemas/project-schemas.d.ts +417 -0
  1160. package/dist/tools/schemas/project-schemas.d.ts.map +1 -0
  1161. package/dist/tools/schemas/project-schemas.js +159 -0
  1162. package/dist/tools/schemas/project-schemas.js.map +1 -0
  1163. package/dist/tools/schemas/shared.d.ts +107 -0
  1164. package/dist/tools/schemas/shared.d.ts.map +1 -0
  1165. package/dist/tools/schemas/shared.js +150 -0
  1166. package/dist/tools/schemas/shared.js.map +1 -0
  1167. package/dist/tools/schemas/style-schemas.d.ts +114 -0
  1168. package/dist/tools/schemas/style-schemas.d.ts.map +1 -0
  1169. package/dist/tools/schemas/style-schemas.js +61 -0
  1170. package/dist/tools/schemas/style-schemas.js.map +1 -0
  1171. package/dist/tools/style-get-palette.d.ts +136 -0
  1172. package/dist/tools/style-get-palette.d.ts.map +1 -0
  1173. package/dist/tools/style-get-palette.js +259 -0
  1174. package/dist/tools/style-get-palette.js.map +1 -0
  1175. package/dist/tools/system-health.d.ts +255 -0
  1176. package/dist/tools/system-health.d.ts.map +1 -0
  1177. package/dist/tools/system-health.js +463 -0
  1178. package/dist/tools/system-health.js.map +1 -0
  1179. package/dist/transport.d.ts +29 -0
  1180. package/dist/transport.d.ts.map +1 -0
  1181. package/dist/transport.js +50 -0
  1182. package/dist/transport.js.map +1 -0
  1183. package/dist/types/creative/index.d.ts +8 -0
  1184. package/dist/types/creative/index.d.ts.map +1 -0
  1185. package/dist/types/creative/index.js +5 -0
  1186. package/dist/types/creative/index.js.map +1 -0
  1187. package/dist/types/creative/palette.d.ts +142 -0
  1188. package/dist/types/creative/palette.d.ts.map +1 -0
  1189. package/dist/types/creative/palette.js +5 -0
  1190. package/dist/types/creative/palette.js.map +1 -0
  1191. package/dist/types/reftrix-window.d.ts +124 -0
  1192. package/dist/types/reftrix-window.d.ts.map +1 -0
  1193. package/dist/types/reftrix-window.js +68 -0
  1194. package/dist/types/reftrix-window.js.map +1 -0
  1195. package/dist/utils/actionable-warning.d.ts +170 -0
  1196. package/dist/utils/actionable-warning.d.ts.map +1 -0
  1197. package/dist/utils/actionable-warning.js +818 -0
  1198. package/dist/utils/actionable-warning.js.map +1 -0
  1199. package/dist/utils/blank-image-detector.d.ts +22 -0
  1200. package/dist/utils/blank-image-detector.d.ts.map +1 -0
  1201. package/dist/utils/blank-image-detector.js +133 -0
  1202. package/dist/utils/blank-image-detector.js.map +1 -0
  1203. package/dist/utils/color.d.ts +203 -0
  1204. package/dist/utils/color.d.ts.map +1 -0
  1205. package/dist/utils/color.js +442 -0
  1206. package/dist/utils/color.js.map +1 -0
  1207. package/dist/utils/deprecation-warning.d.ts +43 -0
  1208. package/dist/utils/deprecation-warning.d.ts.map +1 -0
  1209. package/dist/utils/deprecation-warning.js +112 -0
  1210. package/dist/utils/deprecation-warning.js.map +1 -0
  1211. package/dist/utils/error-messages.d.ts +233 -0
  1212. package/dist/utils/error-messages.d.ts.map +1 -0
  1213. package/dist/utils/error-messages.js +721 -0
  1214. package/dist/utils/error-messages.js.map +1 -0
  1215. package/dist/utils/errors.d.ts +64 -0
  1216. package/dist/utils/errors.d.ts.map +1 -0
  1217. package/dist/utils/errors.js +82 -0
  1218. package/dist/utils/errors.js.map +1 -0
  1219. package/dist/utils/gpu-browser-args.d.ts +27 -0
  1220. package/dist/utils/gpu-browser-args.d.ts.map +1 -0
  1221. package/dist/utils/gpu-browser-args.js +42 -0
  1222. package/dist/utils/gpu-browser-args.js.map +1 -0
  1223. package/dist/utils/html-sanitizer.d.ts +116 -0
  1224. package/dist/utils/html-sanitizer.d.ts.map +1 -0
  1225. package/dist/utils/html-sanitizer.js +630 -0
  1226. package/dist/utils/html-sanitizer.js.map +1 -0
  1227. package/dist/utils/logger.d.ts +141 -0
  1228. package/dist/utils/logger.d.ts.map +1 -0
  1229. package/dist/utils/logger.js +249 -0
  1230. package/dist/utils/logger.js.map +1 -0
  1231. package/dist/utils/mcp-response.d.ts +317 -0
  1232. package/dist/utils/mcp-response.d.ts.map +1 -0
  1233. package/dist/utils/mcp-response.js +270 -0
  1234. package/dist/utils/mcp-response.js.map +1 -0
  1235. package/dist/utils/path-security.d.ts +73 -0
  1236. package/dist/utils/path-security.d.ts.map +1 -0
  1237. package/dist/utils/path-security.js +389 -0
  1238. package/dist/utils/path-security.js.map +1 -0
  1239. package/dist/utils/prisma-wrapper-factory.d.ts +152 -0
  1240. package/dist/utils/prisma-wrapper-factory.d.ts.map +1 -0
  1241. package/dist/utils/prisma-wrapper-factory.js +124 -0
  1242. package/dist/utils/prisma-wrapper-factory.js.map +1 -0
  1243. package/dist/utils/safe-parse-int.d.ts +41 -0
  1244. package/dist/utils/safe-parse-int.d.ts.map +1 -0
  1245. package/dist/utils/safe-parse-int.js +49 -0
  1246. package/dist/utils/safe-parse-int.js.map +1 -0
  1247. package/dist/utils/url-normalizer.d.ts +38 -0
  1248. package/dist/utils/url-normalizer.d.ts.map +1 -0
  1249. package/dist/utils/url-normalizer.js +103 -0
  1250. package/dist/utils/url-normalizer.js.map +1 -0
  1251. package/dist/utils/url-validator.d.ts +86 -0
  1252. package/dist/utils/url-validator.d.ts.map +1 -0
  1253. package/dist/utils/url-validator.js +533 -0
  1254. package/dist/utils/url-validator.js.map +1 -0
  1255. package/dist/workers/batch-quality-worker.d.ts +87 -0
  1256. package/dist/workers/batch-quality-worker.d.ts.map +1 -0
  1257. package/dist/workers/batch-quality-worker.js +300 -0
  1258. package/dist/workers/batch-quality-worker.js.map +1 -0
  1259. package/dist/workers/page-analyze-worker.d.ts +63 -0
  1260. package/dist/workers/page-analyze-worker.d.ts.map +1 -0
  1261. package/dist/workers/page-analyze-worker.js +872 -0
  1262. package/dist/workers/page-analyze-worker.js.map +1 -0
  1263. package/dist/workers/phases/phase-0-ingest.d.ts +42 -0
  1264. package/dist/workers/phases/phase-0-ingest.d.ts.map +1 -0
  1265. package/dist/workers/phases/phase-0-ingest.js +197 -0
  1266. package/dist/workers/phases/phase-0-ingest.js.map +1 -0
  1267. package/dist/workers/phases/phase-1-layout.d.ts +63 -0
  1268. package/dist/workers/phases/phase-1-layout.d.ts.map +1 -0
  1269. package/dist/workers/phases/phase-1-layout.js +362 -0
  1270. package/dist/workers/phases/phase-1-layout.js.map +1 -0
  1271. package/dist/workers/phases/phase-2-motion.d.ts +93 -0
  1272. package/dist/workers/phases/phase-2-motion.d.ts.map +1 -0
  1273. package/dist/workers/phases/phase-2-motion.js +408 -0
  1274. package/dist/workers/phases/phase-2-motion.js.map +1 -0
  1275. package/dist/workers/phases/phase-3-quality.d.ts +61 -0
  1276. package/dist/workers/phases/phase-3-quality.d.ts.map +1 -0
  1277. package/dist/workers/phases/phase-3-quality.js +191 -0
  1278. package/dist/workers/phases/phase-3-quality.js.map +1 -0
  1279. package/dist/workers/phases/phase-4-narrative.d.ts +37 -0
  1280. package/dist/workers/phases/phase-4-narrative.d.ts.map +1 -0
  1281. package/dist/workers/phases/phase-4-narrative.js +309 -0
  1282. package/dist/workers/phases/phase-4-narrative.js.map +1 -0
  1283. package/dist/workers/phases/phase-5-embedding.d.ts +56 -0
  1284. package/dist/workers/phases/phase-5-embedding.d.ts.map +1 -0
  1285. package/dist/workers/phases/phase-5-embedding.js +1350 -0
  1286. package/dist/workers/phases/phase-5-embedding.js.map +1 -0
  1287. package/dist/workers/phases/types.d.ts +411 -0
  1288. package/dist/workers/phases/types.d.ts.map +1 -0
  1289. package/dist/workers/phases/types.js +540 -0
  1290. package/dist/workers/phases/types.js.map +1 -0
  1291. package/package.json +117 -0
  1292. package/src/api/health.ts +372 -0
  1293. package/src/config/index.ts +12 -0
  1294. package/src/config/redis.ts +280 -0
  1295. package/src/index.ts +360 -0
  1296. package/src/lib/index.ts +9 -0
  1297. package/src/lib/project-context.ts +109 -0
  1298. package/src/middleware/args-type-coercion.ts +220 -0
  1299. package/src/middleware/auth.ts +558 -0
  1300. package/src/middleware/index.ts +56 -0
  1301. package/src/middleware/light-response-controller.ts +723 -0
  1302. package/src/middleware/response-size-warning.ts +196 -0
  1303. package/src/queues/batch-quality-queue.ts +580 -0
  1304. package/src/queues/index.ts +13 -0
  1305. package/src/queues/page-analyze-queue.ts +472 -0
  1306. package/src/router.ts +343 -0
  1307. package/src/schemas/creative/index.ts +34 -0
  1308. package/src/schemas/creative/palette.schema.ts +191 -0
  1309. package/src/schemas/mood-brandtone-filters.ts +306 -0
  1310. package/src/scripts/backfill-embeddings.ts +454 -0
  1311. package/src/scripts/check-embedding-coverage.ts +119 -0
  1312. package/src/scripts/start-workers.ts +560 -0
  1313. package/src/server.ts +290 -0
  1314. package/src/services/background/background-design-db.service.ts +206 -0
  1315. package/src/services/background/background-design-detector.service.ts +1442 -0
  1316. package/src/services/background/background-design-embedding.service.ts +599 -0
  1317. package/src/services/background-search.service.ts +372 -0
  1318. package/src/services/backup-service.ts +441 -0
  1319. package/src/services/brief/brief-parser-service.ts +435 -0
  1320. package/src/services/brief/schemas/brief-parser-schemas.ts +138 -0
  1321. package/src/services/browser-process-manager.ts +334 -0
  1322. package/src/services/cache.ts +297 -0
  1323. package/src/services/checksum-service.ts +293 -0
  1324. package/src/services/css-analysis-cache.service.ts +547 -0
  1325. package/src/services/database-dumper.service.ts +675 -0
  1326. package/src/services/embedding-backfill.service.ts +1055 -0
  1327. package/src/services/embedding-validation.service.ts +194 -0
  1328. package/src/services/encryption-service.ts +433 -0
  1329. package/src/services/external-css-fetcher.ts +872 -0
  1330. package/src/services/gpu-resource-manager.ts +615 -0
  1331. package/src/services/index.ts +169 -0
  1332. package/src/services/layout/component-splitter.ts +656 -0
  1333. package/src/services/layout/html-to-jsx-converter.ts +591 -0
  1334. package/src/services/layout/semantic-html-converter.ts +293 -0
  1335. package/src/services/layout/style-to-tailwind-mapper.ts +1530 -0
  1336. package/src/services/layout-embedding.service.ts +1552 -0
  1337. package/src/services/layout-generate-code-service-export.ts +109 -0
  1338. package/src/services/layout-search-service-export.ts +55 -0
  1339. package/src/services/layout-search.service.ts +933 -0
  1340. package/src/services/layout-to-code.service.ts +1631 -0
  1341. package/src/services/metrics-collector.ts +473 -0
  1342. package/src/services/ml/mood-brandtone-embedding.service.ts +1115 -0
  1343. package/src/services/motion/analyzers/color-change.analyzer.ts +935 -0
  1344. package/src/services/motion/analyzers/frame-diff.analyzer.ts +372 -0
  1345. package/src/services/motion/analyzers/layout-shift.detector.ts +296 -0
  1346. package/src/services/motion/analyzers/motion-vector.estimator.ts +698 -0
  1347. package/src/services/motion/analyzers/webgl-motion-analyzer.ts +700 -0
  1348. package/src/services/motion/animation-metrics-collector.service.ts +726 -0
  1349. package/src/services/motion/cls-calculator.service.ts +519 -0
  1350. package/src/services/motion/existing-animation-detector.service.ts +751 -0
  1351. package/src/services/motion/fade-detector.service.ts +383 -0
  1352. package/src/services/motion/frame-analysis-save.helper.ts +333 -0
  1353. package/src/services/motion/frame-capture.service.ts +654 -0
  1354. package/src/services/motion/frame-embedding.service.ts +1419 -0
  1355. package/src/services/motion/frame-image-analysis.service.ts +1271 -0
  1356. package/src/services/motion/frame-image-analyzer.adapter.ts +747 -0
  1357. package/src/services/motion/frame-worker-pool.service.ts +519 -0
  1358. package/src/services/motion/infrastructure/frame-loader.ts +450 -0
  1359. package/src/services/motion/js-animation-detector.ts +1563 -0
  1360. package/src/services/motion/js-animation-embedding.service.ts +423 -0
  1361. package/src/services/motion/js-animation-search.service.ts +715 -0
  1362. package/src/services/motion/motion-db.service.ts +952 -0
  1363. package/src/services/motion/three-js-scene-extractor.ts +1556 -0
  1364. package/src/services/motion/types.ts +820 -0
  1365. package/src/services/motion/visual-category-classifier.ts +1426 -0
  1366. package/src/services/motion/webgl-animation-categorizer.ts +761 -0
  1367. package/src/services/motion/webgl-animation-detector.service.ts +772 -0
  1368. package/src/services/motion/webgl-animation-embedding.service.ts +558 -0
  1369. package/src/services/motion-detect-service-export.ts +300 -0
  1370. package/src/services/motion-persistence.service.ts +541 -0
  1371. package/src/services/motion-search-service.ts +38 -0
  1372. package/src/services/motion-search.service.ts +1159 -0
  1373. package/src/services/narrative/analyzers/layout-structure.analyzer.ts +628 -0
  1374. package/src/services/narrative/analyzers/worldview.analyzer.ts +639 -0
  1375. package/src/services/narrative/generators/confidence-calculator.ts +419 -0
  1376. package/src/services/narrative/generators/text-representation.generator.ts +362 -0
  1377. package/src/services/narrative/index.ts +72 -0
  1378. package/src/services/narrative/narrative-analysis.service.ts +610 -0
  1379. package/src/services/narrative/narrative-search.service.ts +704 -0
  1380. package/src/services/narrative/types/narrative.types.ts +451 -0
  1381. package/src/services/orphaned-job-utils.ts +160 -0
  1382. package/src/services/page/css-animation-parser.service.ts +650 -0
  1383. package/src/services/page/fallback-analyzer.service.ts +435 -0
  1384. package/src/services/page/frame-analyzer.service.ts +824 -0
  1385. package/src/services/page/layout-analyzer.service.ts +2534 -0
  1386. package/src/services/page/motion-category-classifier.service.ts +463 -0
  1387. package/src/services/page/motion-detector.service.ts +430 -0
  1388. package/src/services/page/motion-performance-analyzer.service.ts +390 -0
  1389. package/src/services/page/playwright-crawler.service.ts +478 -0
  1390. package/src/services/page/quality-evaluator.service.ts +1473 -0
  1391. package/src/services/page/runtime-animation-detector.service.ts +743 -0
  1392. package/src/services/page/section-postprocessor.service.ts +874 -0
  1393. package/src/services/page/video-recorder.service.ts +516 -0
  1394. package/src/services/page/webgl-detector.service.ts +361 -0
  1395. package/src/services/page-analyze-service.ts +83 -0
  1396. package/src/services/page-ingest-adapter.ts +2256 -0
  1397. package/src/services/palette-service-export.ts +50 -0
  1398. package/src/services/part/index.ts +81 -0
  1399. package/src/services/part/part-backfill.service.ts +308 -0
  1400. package/src/services/part/part-bbox-playwright.service.ts +502 -0
  1401. package/src/services/part/part-db.service.ts +121 -0
  1402. package/src/services/part/part-embedding-db.service.ts +184 -0
  1403. package/src/services/part/part-embedding.service.ts +406 -0
  1404. package/src/services/part/part-extraction.service.ts +612 -0
  1405. package/src/services/part/part-search.service.ts +806 -0
  1406. package/src/services/part/schemas.ts +194 -0
  1407. package/src/services/part/section-screenshot-fallback.service.ts +644 -0
  1408. package/src/services/part/types.ts +299 -0
  1409. package/src/services/persistent-cache.ts +760 -0
  1410. package/src/services/preference-profile.service.ts +862 -0
  1411. package/src/services/preference-rerank.helper.ts +549 -0
  1412. package/src/services/production-guard.ts +423 -0
  1413. package/src/services/project-context-analyzer.ts +915 -0
  1414. package/src/services/quality/axe-accessibility.service.ts +253 -0
  1415. package/src/services/quality/axe-core-shared.ts +203 -0
  1416. package/src/services/quality/benchmark.service.ts +657 -0
  1417. package/src/services/quality/content-gap-detector.service.ts +485 -0
  1418. package/src/services/quality/index.ts +45 -0
  1419. package/src/services/quality/pattern-matcher.service.ts +941 -0
  1420. package/src/services/quality/playwright-axe.service.ts +343 -0
  1421. package/src/services/quality/quality-evaluate.service.interface.ts +262 -0
  1422. package/src/services/quality/visual-design-analyzer.service.ts +918 -0
  1423. package/src/services/quality-evaluate-service-export.ts +268 -0
  1424. package/src/services/quality-search.service.ts +406 -0
  1425. package/src/services/query-analyzer.ts +306 -0
  1426. package/src/services/query-context-analyzer.ts +843 -0
  1427. package/src/services/queue-cleanup.service.ts +376 -0
  1428. package/src/services/responsive/difference-detector.service.ts +647 -0
  1429. package/src/services/responsive/index.ts +64 -0
  1430. package/src/services/responsive/multi-viewport-capture.service.ts +943 -0
  1431. package/src/services/responsive/responsive-analysis-embedding.service.ts +413 -0
  1432. package/src/services/responsive/responsive-analysis.service.ts +325 -0
  1433. package/src/services/responsive/responsive-persistence.service.ts +133 -0
  1434. package/src/services/responsive/responsive-quality-evaluator.service.ts +515 -0
  1435. package/src/services/responsive/shared-browser-manager.ts +118 -0
  1436. package/src/services/responsive/types.ts +387 -0
  1437. package/src/services/responsive/viewport-diff.service.ts +236 -0
  1438. package/src/services/responsive-search.service.ts +230 -0
  1439. package/src/services/search/mood-brandtone-search.service.ts +400 -0
  1440. package/src/services/search-performance.service.ts +252 -0
  1441. package/src/services/section-screenshot.service.ts +581 -0
  1442. package/src/services/service-client.ts +643 -0
  1443. package/src/services/service-initializer.ts +1386 -0
  1444. package/src/services/storage/index.ts +15 -0
  1445. package/src/services/storage/local-storage.provider.ts +370 -0
  1446. package/src/services/style/index.ts +10 -0
  1447. package/src/services/style/palette-service.ts +655 -0
  1448. package/src/services/style/prisma-palette-repository.ts +216 -0
  1449. package/src/services/vision/brandtone.analyzer.ts +371 -0
  1450. package/src/services/vision/hardware-detector.ts +436 -0
  1451. package/src/services/vision/image-optimizer.ts +377 -0
  1452. package/src/services/vision/index.ts +131 -0
  1453. package/src/services/vision/llama-vision-adapter.ts +526 -0
  1454. package/src/services/vision/mcp-progress-adapter.ts +221 -0
  1455. package/src/services/vision/mood.analyzer.ts +332 -0
  1456. package/src/services/vision/ollama-readiness-probe.ts +271 -0
  1457. package/src/services/vision/ollama-vision-client.ts +631 -0
  1458. package/src/services/vision/progress-reporter.ts +377 -0
  1459. package/src/services/vision/scroll-vision-capture.service.ts +409 -0
  1460. package/src/services/vision/scroll-vision-persistence.service.ts +216 -0
  1461. package/src/services/vision/scroll-vision.analyzer.ts +416 -0
  1462. package/src/services/vision/theme.analyzer.ts +443 -0
  1463. package/src/services/vision/timeout-calculator.ts +155 -0
  1464. package/src/services/vision/vision-fallback.service.ts +368 -0
  1465. package/src/services/vision/vision.cache.ts +332 -0
  1466. package/src/services/vision/vision.errors.ts +186 -0
  1467. package/src/services/vision/vision.prompts.ts +298 -0
  1468. package/src/services/vision/vram-utils.ts +80 -0
  1469. package/src/services/vision-adapter/index.ts +71 -0
  1470. package/src/services/vision-adapter/interface.ts +911 -0
  1471. package/src/services/vision-adapter/llama-vision.adapter.ts +2254 -0
  1472. package/src/services/vision-adapter/llama-vision.prompts.ts +242 -0
  1473. package/src/services/vision-adapter/llama-vision.types.ts +103 -0
  1474. package/src/services/vision-adapter/local.adapter.ts +1079 -0
  1475. package/src/services/vision-adapter/mock.adapter.ts +978 -0
  1476. package/src/services/vision-embedding-search.service.ts +1071 -0
  1477. package/src/services/vision-embedding.service.ts +631 -0
  1478. package/src/services/visual/css-variable-extractor.service.ts +655 -0
  1479. package/src/services/visual/typography-extractor.service.ts +767 -0
  1480. package/src/services/visual-extractor/color-extractor.service.ts +397 -0
  1481. package/src/services/visual-extractor/density-calculator.service.ts +616 -0
  1482. package/src/services/visual-extractor/gradient-detector.service.ts +1794 -0
  1483. package/src/services/visual-extractor/image-utils.ts +333 -0
  1484. package/src/services/visual-extractor/pixel-theme-detector.service.ts +487 -0
  1485. package/src/services/visual-extractor/theme-detector.service.ts +697 -0
  1486. package/src/services/visual-extractor/visual-decoration-detector.service.ts +800 -0
  1487. package/src/services/visual-extractor/visual-feature-merger.service.ts +831 -0
  1488. package/src/services/web-page.service.ts +275 -0
  1489. package/src/services/worker-constants.ts +52 -0
  1490. package/src/services/worker-db-save.service.ts +1098 -0
  1491. package/src/services/worker-memory-monitor.service.ts +126 -0
  1492. package/src/services/worker-memory-profile.ts +336 -0
  1493. package/src/services/worker-stall-recovery.service.ts +486 -0
  1494. package/src/services/worker-supervisor.service.ts +746 -0
  1495. package/src/tools/background/schemas.ts +93 -0
  1496. package/src/tools/background/search.tool.ts +484 -0
  1497. package/src/tools/brief/index.ts +76 -0
  1498. package/src/tools/brief/schemas.ts +247 -0
  1499. package/src/tools/brief/validate.handler.ts +278 -0
  1500. package/src/tools/brief/validate.service.ts +409 -0
  1501. package/src/tools/common/error-codes.ts +116 -0
  1502. package/src/tools/common/index.ts +25 -0
  1503. package/src/tools/index.ts +723 -0
  1504. package/src/tools/layout/batch-ingest.tool.ts +466 -0
  1505. package/src/tools/layout/index.ts +72 -0
  1506. package/src/tools/layout/ingest.tool.ts +1564 -0
  1507. package/src/tools/layout/inspect/index.ts +49 -0
  1508. package/src/tools/layout/inspect/inspect.schemas.ts +518 -0
  1509. package/src/tools/layout/inspect/inspect.tool.ts +844 -0
  1510. package/src/tools/layout/inspect/inspect.utils.ts +1278 -0
  1511. package/src/tools/layout/inspect/visual-extractors.schemas.ts +642 -0
  1512. package/src/tools/layout/inspect/visual-extractors.utils.ts +328 -0
  1513. package/src/tools/layout/schemas.ts +1670 -0
  1514. package/src/tools/layout/search.tool.ts +2088 -0
  1515. package/src/tools/layout/to-code.tool.ts +503 -0
  1516. package/src/tools/motion/analyze-frames.handler.ts +388 -0
  1517. package/src/tools/motion/analyze-frames.schema.ts +484 -0
  1518. package/src/tools/motion/css-mode-handler.ts +939 -0
  1519. package/src/tools/motion/detect.schemas.ts +2005 -0
  1520. package/src/tools/motion/detect.tool.ts +1914 -0
  1521. package/src/tools/motion/detection-modes.ts +480 -0
  1522. package/src/tools/motion/di-factories.ts +767 -0
  1523. package/src/tools/motion/index.ts +229 -0
  1524. package/src/tools/motion/pattern-converter.ts +619 -0
  1525. package/src/tools/motion/schemas.ts +12 -0
  1526. package/src/tools/motion/search.schemas.ts +694 -0
  1527. package/src/tools/motion/search.tool.ts +2518 -0
  1528. package/src/tools/motion/shared.schemas.ts +414 -0
  1529. package/src/tools/narrative/PAGE_ANALYZE_INTEGRATION.md +249 -0
  1530. package/src/tools/narrative/analyze.tool.ts +460 -0
  1531. package/src/tools/narrative/index.ts +133 -0
  1532. package/src/tools/narrative/schemas.ts +886 -0
  1533. package/src/tools/narrative/search.tool.ts +536 -0
  1534. package/src/tools/page/analyze.tool.ts +992 -0
  1535. package/src/tools/page/get-job-status.tool.ts +217 -0
  1536. package/src/tools/page/handlers/db-handler.ts +638 -0
  1537. package/src/tools/page/handlers/embedding-handler.ts +813 -0
  1538. package/src/tools/page/handlers/execution-status-tracker.ts +461 -0
  1539. package/src/tools/page/handlers/js-animation-handler.ts +1229 -0
  1540. package/src/tools/page/handlers/layout-handler.ts +1423 -0
  1541. package/src/tools/page/handlers/motion-handler.ts +1156 -0
  1542. package/src/tools/page/handlers/narrative-handler.ts +345 -0
  1543. package/src/tools/page/handlers/phased-db-handler.ts +186 -0
  1544. package/src/tools/page/handlers/phased-executor.ts +356 -0
  1545. package/src/tools/page/handlers/quality-handler.ts +114 -0
  1546. package/src/tools/page/handlers/result-builder.ts +551 -0
  1547. package/src/tools/page/handlers/retry-strategy.ts +223 -0
  1548. package/src/tools/page/handlers/sync-processing.ts +2084 -0
  1549. package/src/tools/page/handlers/timeout-utils.ts +835 -0
  1550. package/src/tools/page/handlers/types.ts +1333 -0
  1551. package/src/tools/page/handlers/video-handler.ts +299 -0
  1552. package/src/tools/page/handlers/webgl-animation-handler.ts +309 -0
  1553. package/src/tools/page/handlers/webgl-detector.ts +833 -0
  1554. package/src/tools/page/handlers/webgl-domains.ts +482 -0
  1555. package/src/tools/page/handlers/webgl-pre-detector.ts +308 -0
  1556. package/src/tools/page/index.ts +142 -0
  1557. package/src/tools/page/input.schemas.ts +945 -0
  1558. package/src/tools/page/output.schemas.ts +1636 -0
  1559. package/src/tools/page/schemas.ts +12 -0
  1560. package/src/tools/page/shared.schemas.ts +86 -0
  1561. package/src/tools/part/compare.tool.ts +542 -0
  1562. package/src/tools/part/inspect.tool.ts +400 -0
  1563. package/src/tools/part/search.tool.ts +470 -0
  1564. package/src/tools/preference/get.tool.ts +238 -0
  1565. package/src/tools/preference/hear.tool.ts +504 -0
  1566. package/src/tools/preference/index.ts +65 -0
  1567. package/src/tools/preference/reset.tool.ts +264 -0
  1568. package/src/tools/preference/schemas.ts +161 -0
  1569. package/src/tools/project-get.ts +194 -0
  1570. package/src/tools/project-list.ts +240 -0
  1571. package/src/tools/quality/batch-evaluate.tool.ts +480 -0
  1572. package/src/tools/quality/evaluate-engine.ts +1329 -0
  1573. package/src/tools/quality/evaluate.tool.ts +981 -0
  1574. package/src/tools/quality/get-job-status.tool.ts +344 -0
  1575. package/src/tools/quality/improvement-utils.ts +361 -0
  1576. package/src/tools/quality/index.ts +49 -0
  1577. package/src/tools/quality/schemas.ts +1114 -0
  1578. package/src/tools/responsive/schemas.ts +103 -0
  1579. package/src/tools/responsive/search.tool.ts +421 -0
  1580. package/src/tools/schemas/index.ts +67 -0
  1581. package/src/tools/schemas/layout-schemas.ts +334 -0
  1582. package/src/tools/schemas/project-schemas.ts +233 -0
  1583. package/src/tools/schemas/shared.ts +176 -0
  1584. package/src/tools/schemas/style-schemas.ts +74 -0
  1585. package/src/tools/style-get-palette.ts +344 -0
  1586. package/src/tools/system-health.ts +729 -0
  1587. package/src/transport.ts +54 -0
  1588. package/src/types/creative/index.ts +22 -0
  1589. package/src/types/creative/palette.ts +197 -0
  1590. package/src/types/reftrix-window.ts +175 -0
  1591. package/src/utils/actionable-warning.ts +997 -0
  1592. package/src/utils/blank-image-detector.ts +143 -0
  1593. package/src/utils/color.ts +534 -0
  1594. package/src/utils/deprecation-warning.ts +146 -0
  1595. package/src/utils/error-messages.ts +965 -0
  1596. package/src/utils/errors.ts +95 -0
  1597. package/src/utils/gpu-browser-args.ts +41 -0
  1598. package/src/utils/html-sanitizer.ts +753 -0
  1599. package/src/utils/logger.ts +292 -0
  1600. package/src/utils/mcp-response.ts +397 -0
  1601. package/src/utils/path-security.ts +412 -0
  1602. package/src/utils/prisma-wrapper-factory.ts +283 -0
  1603. package/src/utils/safe-parse-int.ts +74 -0
  1604. package/src/utils/url-normalizer.ts +115 -0
  1605. package/src/utils/url-validator.ts +615 -0
  1606. package/src/workers/batch-quality-worker.ts +419 -0
  1607. package/src/workers/page-analyze-worker.ts +1056 -0
  1608. package/src/workers/phases/phase-0-ingest.ts +249 -0
  1609. package/src/workers/phases/phase-1-layout.ts +522 -0
  1610. package/src/workers/phases/phase-2-motion.ts +674 -0
  1611. package/src/workers/phases/phase-3-quality.ts +293 -0
  1612. package/src/workers/phases/phase-4-narrative.ts +409 -0
  1613. package/src/workers/phases/phase-5-embedding.ts +1816 -0
  1614. package/src/workers/phases/types.ts +909 -0
@@ -0,0 +1,1670 @@
1
+ // SPDX-FileCopyrightText: 2026 TKMD and Reftrix Contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+
4
+ /**
5
+ * layout.* MCP Tools Zod Schema Definitions
6
+ * Webデザインレイアウト解析ツールの入力/出力バリデーションスキーマ
7
+ *
8
+ * @module @reftrixmcp/mcp-server/tools/layout/schemas
9
+ *
10
+ * 対応ツール:
11
+ * - layout.ingest: URLからWebページを取得しレイアウト解析用データを準備
12
+ * - layout.inspect: HTMLを解析しセクション・グリッド・タイポグラフィを抽出
13
+ * - layout.search: レイアウトパターンをセマンティック検索
14
+ * - layout.generate_code: パターンからReact/Vue/HTMLコードを生成
15
+ * - layout.batch_ingest: 複数URLを一括取得しレイアウト解析用データを準備
16
+ */
17
+ import { z } from "zod";
18
+ import { moodFilterSchema, brandToneFilterSchema } from "../../schemas/mood-brandtone-filters";
19
+
20
+ // ============================================================================
21
+ // Enum Schemas
22
+ // ============================================================================
23
+
24
+ /**
25
+ * ソースタイプ
26
+ * - award_gallery: アワードサイトからの収集
27
+ * - user_provided: ユーザーが提供
28
+ */
29
+ export const sourceTypeSchema = z.enum(["award_gallery", "user_provided"]);
30
+ export type SourceType = z.infer<typeof sourceTypeSchema>;
31
+
32
+ /**
33
+ * 利用範囲
34
+ * - inspiration_only: インスピレーションのみ(商用利用不可)
35
+ * - owned_asset: 所有アセット(商用利用可)
36
+ */
37
+ export const usageScopeSchema = z.enum(["inspiration_only", "owned_asset"]);
38
+ export type UsageScope = z.infer<typeof usageScopeSchema>;
39
+
40
+ /**
41
+ * セクションタイプ(検索用 - unknownを除外)
42
+ * Webページの主要セクションタイプ
43
+ *
44
+ * 基本タイプ(10種):
45
+ * - hero: ヒーローセクション
46
+ * - feature: 機能・特徴紹介
47
+ * - cta: コールトゥアクション
48
+ * - testimonial: お客様の声
49
+ * - pricing: 料金プラン
50
+ * - footer: フッター
51
+ * - navigation: ナビゲーション
52
+ * - about: 会社・サービス紹介
53
+ * - contact: お問い合わせ
54
+ * - gallery: ギャラリー
55
+ *
56
+ * 拡張タイプ(8種):
57
+ * - partners: パートナー・クライアントロゴ
58
+ * - portfolio: ポートフォリオ・実績
59
+ * - team: チーム・メンバー紹介
60
+ * - stories: ストーリー・事例紹介
61
+ * - research: リサーチ・調査結果
62
+ * - subscribe: 購読・ニュースレター登録
63
+ * - stats: 統計・数値実績
64
+ * - faq: よくある質問
65
+ */
66
+ export const sectionTypeForSearchSchema = z.enum([
67
+ // 基本タイプ(10種)
68
+ "hero",
69
+ "feature",
70
+ "cta",
71
+ "testimonial",
72
+ "pricing",
73
+ "footer",
74
+ "navigation",
75
+ "about",
76
+ "contact",
77
+ "gallery",
78
+ // 拡張タイプ(8種)
79
+ "partners",
80
+ "portfolio",
81
+ "team",
82
+ "stories",
83
+ "research",
84
+ "subscribe",
85
+ "stats",
86
+ "faq",
87
+ ]);
88
+ export type SectionTypeForSearch = z.infer<typeof sectionTypeForSearchSchema>;
89
+
90
+ /**
91
+ * フレームワーク
92
+ * コード生成時のターゲットフレームワーク
93
+ */
94
+ export const frameworkSchema = z.enum(["react", "vue", "html"]);
95
+ export type Framework = z.infer<typeof frameworkSchema>;
96
+
97
+ /**
98
+ * ソート対象フィールド
99
+ */
100
+ export const sortBySchema = z.enum(["createdAt", "usageCount", "quality"]);
101
+ export type SortBy = z.infer<typeof sortBySchema>;
102
+
103
+ /**
104
+ * ソート順序
105
+ */
106
+ export const sortOrderSchema = z.enum(["asc", "desc"]);
107
+ export type SortOrder = z.infer<typeof sortOrderSchema>;
108
+
109
+ // ============================================================================
110
+ // layout.ingest Schemas
111
+ // ============================================================================
112
+
113
+ /**
114
+ * ビューポート設定スキーマ
115
+ *
116
+ * @property width - 幅(320-4096px)
117
+ * @property height - 高さ(240-16384px)
118
+ */
119
+ export const viewportSchema = z.object({
120
+ width: z
121
+ .number()
122
+ .int({ message: "widthは整数である必要があります" })
123
+ .min(320, { message: "widthは320以上4096以下である必要があります" })
124
+ .max(4096, { message: "widthは320以上4096以下である必要があります" }),
125
+ height: z
126
+ .number()
127
+ .int({ message: "heightは整数である必要があります" })
128
+ .min(240, { message: "heightは240以上16384以下である必要があります" })
129
+ .max(16384, { message: "heightは240以上16384以下である必要があります" }),
130
+ });
131
+ export type Viewport = z.infer<typeof viewportSchema>;
132
+
133
+ // ============================================================================
134
+ // Responsive Viewport Schemas (v0.1.0)
135
+ // ============================================================================
136
+
137
+ /**
138
+ * 名前付きビューポートスキーマ
139
+ * マルチビューポートキャプチャ用
140
+ *
141
+ * @property name - ビューポート名(desktop/tablet/mobile等)
142
+ * @property width - 幅(320-4096px)
143
+ * @property height - 高さ(240-16384px)
144
+ */
145
+ export const responsiveViewportSchema = z.object({
146
+ name: z
147
+ .string()
148
+ .min(1, { message: "nameは1文字以上必要です" })
149
+ .max(50, { message: "nameは50文字以下にしてください" }),
150
+ width: z
151
+ .number()
152
+ .int({ message: "widthは整数である必要があります" })
153
+ .min(320, { message: "widthは320以上4096以下である必要があります" })
154
+ .max(4096, { message: "widthは320以上4096以下である必要があります" }),
155
+ height: z
156
+ .number()
157
+ .int({ message: "heightは整数である必要があります" })
158
+ .min(240, { message: "heightは240以上16384以下である必要があります" })
159
+ .max(16384, { message: "heightは240以上16384以下である必要があります" }),
160
+ });
161
+ export type ResponsiveViewport = z.infer<typeof responsiveViewportSchema>;
162
+
163
+ /**
164
+ * デフォルトビューポートプリセット
165
+ * - desktop: 1920x1080 (Full HD)
166
+ * - tablet: 768x1024 (iPad Portrait)
167
+ * - mobile: 375x667 (iPhone SE)
168
+ */
169
+ export const DEFAULT_VIEWPORTS: ResponsiveViewport[] = [
170
+ { name: "desktop", width: 1920, height: 1080 },
171
+ { name: "tablet", width: 768, height: 1024 },
172
+ { name: "mobile", width: 375, height: 667 },
173
+ ];
174
+
175
+ /**
176
+ * ナビゲーションタイプ
177
+ * レスポンシブデザインでのナビゲーション表示パターン
178
+ */
179
+ export const navigationTypeSchema = z.enum([
180
+ "horizontal-menu", // 水平メニュー(デスクトップ向け)
181
+ "hamburger-menu", // ハンバーガーメニュー(モバイル向け)
182
+ "drawer", // ドロワーメニュー
183
+ "bottom-nav", // ボトムナビゲーション
184
+ "tab-bar", // タブバー
185
+ "hidden", // 非表示
186
+ "other", // その他
187
+ ]);
188
+ export type NavigationType = z.infer<typeof navigationTypeSchema>;
189
+
190
+ /**
191
+ * 要素の可視性情報スキーマ
192
+ */
193
+ export const elementVisibilitySchema = z.object({
194
+ visible: z.boolean(),
195
+ type: navigationTypeSchema.optional(),
196
+ displayMode: z.string().optional(), // CSS display値
197
+ reason: z.string().optional(), // 非表示の理由(display:none, visibility:hidden等)
198
+ });
199
+ export type ElementVisibility = z.infer<typeof elementVisibilitySchema>;
200
+
201
+ /**
202
+ * レスポンシブ差異アイテムスキーマ
203
+ * 各ビューポート間での要素の差異を記録
204
+ *
205
+ * @property element - CSSセレクタ
206
+ * @property description - 差異の説明
207
+ * @property category - 差異のカテゴリ
208
+ */
209
+ export const responsiveDifferenceSchema = z.object({
210
+ element: z.string(),
211
+ description: z.string().optional(),
212
+ category: z.enum([
213
+ "visibility", // 表示/非表示の変化
214
+ "layout", // レイアウト構造の変化
215
+ "navigation", // ナビゲーションパターンの変化
216
+ "typography", // タイポグラフィの変化
217
+ "spacing", // 間隔の変化
218
+ "order", // 要素順序の変化
219
+ "other", // その他
220
+ ]),
221
+ desktop: z.record(z.unknown()).optional(),
222
+ tablet: z.record(z.unknown()).optional(),
223
+ mobile: z.record(z.unknown()).optional(),
224
+ });
225
+ export type ResponsiveDifference = z.infer<typeof responsiveDifferenceSchema>;
226
+
227
+ /**
228
+ * ビューポート別スクリーンショットスキーマ
229
+ */
230
+ export const viewportScreenshotSchema = z.object({
231
+ name: z.string(),
232
+ width: z.number().int().positive(),
233
+ height: z.number().int().positive(),
234
+ screenshot: z
235
+ .object({
236
+ base64: z.string(),
237
+ format: z.enum(["png", "jpeg"]),
238
+ width: z.number().int().positive(),
239
+ height: z.number().int().positive(),
240
+ })
241
+ .optional(),
242
+ });
243
+ export type ViewportScreenshot = z.infer<typeof viewportScreenshotSchema>;
244
+
245
+ /**
246
+ * レスポンシブ解析結果スキーマ
247
+ * layout.ingestのレスポンシブ解析結果
248
+ *
249
+ * @property viewportsAnalyzed - 解析したビューポート名配列
250
+ * @property differences - 検出された差異配列
251
+ * @property breakpoints - 検出されたブレークポイント
252
+ * @property screenshots - ビューポート別スクリーンショット
253
+ */
254
+ export const responsiveAnalysisSchema = z.object({
255
+ viewportsAnalyzed: z.array(z.string()),
256
+ differences: z.array(responsiveDifferenceSchema),
257
+ breakpoints: z.array(z.string()),
258
+ screenshots: z.array(viewportScreenshotSchema).optional(),
259
+ analysisTimeMs: z.number().nonnegative().optional(),
260
+ /** DB保存時のレコードID(save_to_db: true 時のみ) */
261
+ responsiveAnalysisId: z.string().uuid().optional(),
262
+ });
263
+ export type ResponsiveAnalysis = z.infer<typeof responsiveAnalysisSchema>;
264
+
265
+ /**
266
+ * レスポンシブ解析オプションスキーマ
267
+ *
268
+ * @property enabled - レスポンシブ解析を有効化(デフォルトfalse)
269
+ * @property viewports - カスタムビューポート配列(省略時はデフォルト3種)
270
+ * @property include_screenshots - 各ビューポートのスクリーンショットを含める(デフォルトtrue)
271
+ * @property detect_navigation - ナビゲーションパターン検出(デフォルトtrue)
272
+ * @property detect_visibility - 要素の表示/非表示変化検出(デフォルトtrue)
273
+ * @property detect_layout - レイアウト構造変化検出(デフォルトtrue)
274
+ */
275
+ export const responsiveAnalysisOptionsSchema = z.object({
276
+ enabled: z.boolean().optional().default(false),
277
+ viewports: z
278
+ .array(responsiveViewportSchema)
279
+ .min(1, { message: "viewportsは1つ以上指定してください" })
280
+ .max(10, { message: "viewportsは10個以下にしてください" })
281
+ .optional(),
282
+ include_screenshots: z.boolean().optional().default(true),
283
+ /** ビューポート差分画像を結果に含めるか(デフォルトfalse) */
284
+ include_diff_images: z.boolean().optional().default(false),
285
+ /** ビューポート差分の閾値(0-1、デフォルト0.1) */
286
+ diff_threshold: z.number().min(0).max(1).optional().default(0.1),
287
+ /** DB保存するか(デフォルトtrue、save_to_db連動) */
288
+ save_to_db: z.boolean().optional().default(true),
289
+ detect_navigation: z.boolean().optional().default(true),
290
+ detect_visibility: z.boolean().optional().default(true),
291
+ detect_layout: z.boolean().optional().default(true),
292
+ });
293
+ export type ResponsiveAnalysisOptions = z.infer<typeof responsiveAnalysisOptionsSchema>;
294
+
295
+ /**
296
+ * layout.ingest オプションスキーマ
297
+ *
298
+ * @property fullPage - フルページキャプチャ(デフォルトtrue)
299
+ * @property viewport - ビューポート設定(オプション)
300
+ * @property waitForSelector - 待機セレクタ(オプション)
301
+ * @property timeout - タイムアウト(1000-120000ms、デフォルト30000)
302
+ * @property disableJavaScript - JavaScript無効化(デフォルトfalse)
303
+ * @property include_html - HTMLを返却に含めるか(デフォルトfalse)
304
+ * @property include_screenshot - スクリーンショットを返却に含めるか(デフォルトfalse)
305
+ * @property truncate_html_bytes - HTMLを切り詰めるバイト数(100-10000000、オプション)
306
+ * @property screenshot_format - スクリーンショット形式(png/jpeg、デフォルトpng)
307
+ * @property screenshot_quality - JPEG品質(1-100、オプション)
308
+ * @property screenshot_max_width - スクリーンショット最大幅(オプション)
309
+ * @property screenshot_max_height - スクリーンショット最大高さ(オプション)
310
+ * @property auto_optimize - レスポンス自動最適化(デフォルトfalse)
311
+ * @property response_size_limit - レスポンスサイズ上限(10000-50000000、オプション)
312
+ * @property wait_until - ページ読み込み完了判定(load/domcontentloaded/networkidle、デフォルトload)
313
+ */
314
+ export const layoutIngestOptionsSchema = z.object({
315
+ // snake_case parameters (MCP standard)
316
+ full_page: z.boolean().optional().default(true),
317
+ viewport: viewportSchema.optional(),
318
+ wait_for_selector: z.string().optional(),
319
+ wait_until: z.enum(["load", "domcontentloaded", "networkidle"]).optional().default("load"),
320
+ /** DOM安定化待機(React/Vue/Next.js対応、デフォルトtrue) */
321
+ wait_for_dom_stable: z.boolean().optional().default(true),
322
+ /** DOM安定化判定の無変更時間(ms)(デフォルト500) */
323
+ dom_stable_timeout: z
324
+ .number()
325
+ .int({ message: "dom_stable_timeoutは整数である必要があります" })
326
+ .min(100, { message: "dom_stable_timeoutは100以上5000以下である必要があります" })
327
+ .max(5000, { message: "dom_stable_timeoutは100以上5000以下である必要があります" })
328
+ .optional()
329
+ .default(500),
330
+ /** ローディング完了後の追加待機時間(ms)(0-30000) */
331
+ wait_for_timeout: z
332
+ .number()
333
+ .int({ message: "wait_for_timeoutは整数である必要があります" })
334
+ .min(0, { message: "wait_for_timeoutは0以上30000以下である必要があります" })
335
+ .max(30000, { message: "wait_for_timeoutは0以上30000以下である必要があります" })
336
+ .optional(),
337
+ /** 非表示待機セレクター(ローディング要素など) */
338
+ wait_for_selector_hidden: z.string().optional(),
339
+ timeout: z
340
+ .number()
341
+ .int({ message: "timeoutは整数である必要があります" })
342
+ .min(1000, { message: "timeoutは1000以上120000以下である必要があります" })
343
+ .max(120000, { message: "timeoutは1000以上120000以下である必要があります" })
344
+ .optional()
345
+ .default(30000),
346
+ disable_javascript: z.boolean().optional().default(false),
347
+ // レスポンス最適化オプション(DB-first: レスポンスサイズ削減)
348
+ include_html: z.boolean().optional().default(false),
349
+ include_screenshot: z.boolean().optional().default(false),
350
+ truncate_html_bytes: z
351
+ .number()
352
+ .int({ message: "truncate_html_bytesは整数である必要があります" })
353
+ .min(100, { message: "truncate_html_bytesは100以上10000000以下である必要があります" })
354
+ .max(10000000, { message: "truncate_html_bytesは100以上10000000以下である必要があります" })
355
+ .optional(),
356
+ screenshot_format: z.enum(["png", "jpeg"]).optional().default("png"),
357
+ screenshot_quality: z
358
+ .number()
359
+ .int({ message: "screenshot_qualityは整数である必要があります" })
360
+ .min(1, { message: "screenshot_qualityは1以上100以下である必要があります" })
361
+ .max(100, { message: "screenshot_qualityは1以上100以下である必要があります" })
362
+ .optional(),
363
+ screenshot_max_width: z
364
+ .number()
365
+ .int({ message: "screenshot_max_widthは整数である必要があります" })
366
+ .min(1, { message: "screenshot_max_widthは1以上16384以下である必要があります" })
367
+ .max(16384, { message: "screenshot_max_widthは1以上16384以下である必要があります" })
368
+ .optional(),
369
+ screenshot_max_height: z
370
+ .number()
371
+ .int({ message: "screenshot_max_heightは整数である必要があります" })
372
+ .min(1, { message: "screenshot_max_heightは1以上16384以下である必要があります" })
373
+ .max(16384, { message: "screenshot_max_heightは1以上16384以下である必要があります" })
374
+ .optional(),
375
+ auto_optimize: z.boolean().optional().default(false),
376
+ response_size_limit: z
377
+ .number()
378
+ .int({ message: "response_size_limitは整数である必要があります" })
379
+ .min(10000, { message: "response_size_limitは10000以上50000000以下である必要があります" })
380
+ .max(50000000, { message: "response_size_limitは10000以上50000000以下である必要があります" })
381
+ .optional(),
382
+ // DB保存オプション(DB-first: デフォルトで保存)
383
+ save_to_db: z.boolean().optional().default(true),
384
+ // 自動解析オプション(DB-first: Embedding自動生成)
385
+ auto_analyze: z.boolean().optional().default(true),
386
+ // Computed Stylesオプション
387
+ include_computed_styles: z.boolean().optional().default(false),
388
+ // 外部CSS取得オプション
389
+ /** 外部CSSファイルの内容を取得するか(デフォルト: true) */
390
+ fetch_external_css: z.boolean().optional().default(true),
391
+ /** 外部CSS取得のタイムアウト(ミリ秒、デフォルト: 5000) */
392
+ external_css_timeout: z
393
+ .number()
394
+ .int({ message: "external_css_timeoutは整数である必要があります" })
395
+ .min(1000, { message: "external_css_timeoutは1000以上30000以下である必要があります" })
396
+ .max(30000, { message: "external_css_timeoutは1000以上30000以下である必要があります" })
397
+ .optional()
398
+ .default(5000),
399
+ /** 外部CSS1ファイルあたりの最大サイズ(バイト、デフォルト: 5MB) */
400
+ external_css_max_size: z
401
+ .number()
402
+ .int({ message: "external_css_max_sizeは整数である必要があります" })
403
+ .min(1024, { message: "external_css_max_sizeは1024以上10485760以下である必要があります" })
404
+ .max(10485760, { message: "external_css_max_sizeは1024以上10485760以下である必要があります" })
405
+ .optional()
406
+ .default(5242880),
407
+ /** 外部CSS取得の最大並列数(デフォルト: 5) */
408
+ external_css_max_concurrent: z
409
+ .number()
410
+ .int({ message: "external_css_max_concurrentは整数である必要があります" })
411
+ .min(1, { message: "external_css_max_concurrentは1以上10以下である必要があります" })
412
+ .max(10, { message: "external_css_max_concurrentは1以上10以下である必要があります" })
413
+ .optional()
414
+ .default(5),
415
+ /** 外部CSS取得の最大ファイル数(デフォルト: 20) */
416
+ external_css_max_files: z
417
+ .number()
418
+ .int({ message: "external_css_max_filesは整数である必要があります" })
419
+ .min(1, { message: "external_css_max_filesは1以上50以下である必要があります" })
420
+ .max(50, { message: "external_css_max_filesは1以上50以下である必要があります" })
421
+ .optional()
422
+ .default(20),
423
+ /**
424
+ * WebGLを完全に無効化
425
+ * 重い3Dサイト(Three.js、WebGL等)でタイムアウトが発生する場合に使用
426
+ * true設定時: 専用ブラウザインスタンスを起動し、WebGL関連機能を無効化
427
+ * @default false
428
+ */
429
+ disable_webgl: z.boolean().optional().default(false),
430
+ /**
431
+ * タイムアウト時にブラウザプロセスを強制終了
432
+ * WebGLサイトでハングした場合の最終手段として使用
433
+ * @default false
434
+ */
435
+ force_kill_on_timeout: z.boolean().optional().default(false),
436
+ /**
437
+ * レスポンシブ解析オプション
438
+ * 複数ビューポートでのレイアウト差異を検出
439
+ * @see responsiveAnalysisOptionsSchema
440
+ */
441
+ responsive: responsiveAnalysisOptionsSchema.optional(),
442
+ });
443
+ export type LayoutIngestOptions = z.infer<typeof layoutIngestOptionsSchema>;
444
+
445
+ /**
446
+ * layout.ingest 入力スキーマ
447
+ *
448
+ * @property url - 取得対象URL(必須)
449
+ * @property source_type - ソースタイプ(デフォルトuser_provided)
450
+ * @property usage_scope - 利用範囲(デフォルトinspiration_only)
451
+ * @property options - オプション設定(オプション)
452
+ */
453
+ export const layoutIngestInputSchema = z.object({
454
+ url: z.string().url({ message: "有効なURL形式を指定してください" }),
455
+ source_type: sourceTypeSchema.optional().default("user_provided"),
456
+ usage_scope: usageScopeSchema.optional().default("inspiration_only"),
457
+ options: layoutIngestOptionsSchema.optional(),
458
+ /** robots.txtを尊重するかどうか(RFC 9309)。falseで無視 */
459
+ respect_robots_txt: z.boolean().optional(),
460
+ });
461
+ export type LayoutIngestInput = z.infer<typeof layoutIngestInputSchema>;
462
+
463
+ /**
464
+ * スクリーンショット情報スキーマ
465
+ */
466
+ export const screenshotInfoSchema = z.object({
467
+ base64: z.string(),
468
+ format: z.enum(["png", "jpeg"]),
469
+ width: z.number().int().positive(),
470
+ height: z.number().int().positive(),
471
+ });
472
+ export type ScreenshotInfo = z.infer<typeof screenshotInfoSchema>;
473
+
474
+ /**
475
+ * 要素のComputed Stylesスキーマ
476
+ * 取得するCSSプロパティのセット
477
+ */
478
+ export const elementComputedStylesSchema = z.object({
479
+ // 背景
480
+ backgroundColor: z.string(),
481
+ backgroundImage: z.string(),
482
+ // テキスト
483
+ color: z.string(),
484
+ fontSize: z.string(),
485
+ fontFamily: z.string(),
486
+ fontWeight: z.string(),
487
+ lineHeight: z.string(),
488
+ letterSpacing: z.string(),
489
+ textAlign: z.string(),
490
+ textDecoration: z.string(),
491
+ textTransform: z.string(),
492
+ // レイアウト
493
+ display: z.string(),
494
+ position: z.string(),
495
+ flexDirection: z.string(),
496
+ justifyContent: z.string(),
497
+ alignItems: z.string(),
498
+ padding: z.string(),
499
+ paddingTop: z.string(),
500
+ paddingRight: z.string(),
501
+ paddingBottom: z.string(),
502
+ paddingLeft: z.string(),
503
+ margin: z.string(),
504
+ marginTop: z.string(),
505
+ marginRight: z.string(),
506
+ marginBottom: z.string(),
507
+ marginLeft: z.string(),
508
+ gap: z.string(),
509
+ width: z.string(),
510
+ height: z.string(),
511
+ maxWidth: z.string(),
512
+ minHeight: z.string(),
513
+ // 視覚効果
514
+ border: z.string(),
515
+ borderRadius: z.string(),
516
+ boxShadow: z.string(),
517
+ backdropFilter: z.string(),
518
+ opacity: z.string(),
519
+ overflow: z.string(),
520
+ // トランジション・アニメーション
521
+ transition: z.string(),
522
+ transform: z.string(),
523
+ });
524
+ export type ElementComputedStyles = z.infer<typeof elementComputedStylesSchema>;
525
+
526
+ /**
527
+ * 子要素のComputed Styles情報スキーマ
528
+ */
529
+ export const childElementStyleInfoSchema = z.object({
530
+ /** CSSセレクタ(ユニーク識別用) */
531
+ selector: z.string(),
532
+ /** HTML要素タグ名 */
533
+ tagName: z.string(),
534
+ /** class属性値 */
535
+ className: z.string(),
536
+ /** 親セクションからの相対パス */
537
+ path: z.string(),
538
+ /** 要素のテキストコンテンツ(ボタンやリンクの場合) */
539
+ textContent: z.string().optional(),
540
+ /** Computed Styles */
541
+ styles: elementComputedStylesSchema,
542
+ });
543
+ export type ChildElementStyleInfo = z.infer<typeof childElementStyleInfoSchema>;
544
+
545
+ /**
546
+ * Computed Styles情報スキーマ
547
+ * ブラウザがレンダリングした実際のスタイル値
548
+ */
549
+ export const computedStyleInfoSchema = z.object({
550
+ /** セクションのインデックス */
551
+ index: z.number().int().nonnegative(),
552
+ /** HTML要素タグ名 */
553
+ tagName: z.string(),
554
+ /** class属性値 */
555
+ className: z.string(),
556
+ /** id属性値 */
557
+ id: z.string(),
558
+ /** role属性値 */
559
+ role: z.string(),
560
+ /** セクション自体のComputed Styles */
561
+ styles: elementComputedStylesSchema,
562
+ /** セクション内の子要素のスタイル(重要な要素のみ) */
563
+ children: z.array(childElementStyleInfoSchema).optional(),
564
+ });
565
+ export type ComputedStyleInfo = z.infer<typeof computedStyleInfoSchema>;
566
+
567
+ /**
568
+ * ページメタデータ出力スキーマ
569
+ */
570
+ export const pageMetadataOutputSchema = z.object({
571
+ title: z.string(),
572
+ description: z.string().optional(),
573
+ favicon: z.string().optional(),
574
+ ogImage: z.string().optional(),
575
+ });
576
+ export type PageMetadataOutput = z.infer<typeof pageMetadataOutputSchema>;
577
+
578
+ /**
579
+ * ソース情報出力スキーマ
580
+ */
581
+ export const sourceInfoOutputSchema = z.object({
582
+ type: sourceTypeSchema,
583
+ usageScope: usageScopeSchema,
584
+ });
585
+ export type SourceInfoOutput = z.infer<typeof sourceInfoOutputSchema>;
586
+
587
+ /**
588
+ * layout.ingest 成功レスポンスデータスキーマ
589
+ * htmlとscreenshotはinclude_html/include_screenshotオプションに応じて省略可能
590
+ */
591
+ export const layoutIngestDataSchema = z.object({
592
+ id: z.string().uuid(),
593
+ url: z.string().url(),
594
+ normalizedUrl: z.string().url(),
595
+ html: z.string().optional(), // include_html: false で省略
596
+ screenshot: screenshotInfoSchema.optional(), // include_screenshot: false で省略
597
+ computedStyles: z.array(computedStyleInfoSchema).optional(), // include_computed_styles: true で取得
598
+ metadata: pageMetadataOutputSchema,
599
+ source: sourceInfoOutputSchema,
600
+ crawledAt: z.string().datetime(),
601
+ // DB保存ステータス
602
+ savedToDb: z.boolean().optional(), // save_to_db: true 時のみ true
603
+ // レスポンシブ解析結果(responsive.enabled: true 時のみ)
604
+ responsiveAnalysis: responsiveAnalysisSchema.optional(),
605
+ });
606
+ export type LayoutIngestData = z.infer<typeof layoutIngestDataSchema>;
607
+
608
+ /**
609
+ * layout.ingest エラー情報スキーマ
610
+ */
611
+ export const layoutIngestErrorInfoSchema = z.object({
612
+ code: z.string(),
613
+ message: z.string(),
614
+ details: z.unknown().optional(),
615
+ });
616
+ export type LayoutIngestErrorInfo = z.infer<typeof layoutIngestErrorInfoSchema>;
617
+
618
+ /**
619
+ * layout.ingest 成功レスポンススキーマ
620
+ */
621
+ export const layoutIngestSuccessOutputSchema = z.object({
622
+ success: z.literal(true),
623
+ data: layoutIngestDataSchema,
624
+ });
625
+
626
+ /**
627
+ * layout.ingest 失敗レスポンススキーマ
628
+ */
629
+ export const layoutIngestErrorOutputSchema = z.object({
630
+ success: z.literal(false),
631
+ error: layoutIngestErrorInfoSchema,
632
+ });
633
+
634
+ /**
635
+ * layout.ingest 出力スキーマ(統合)
636
+ */
637
+ export const layoutIngestOutputSchema = z.discriminatedUnion("success", [
638
+ layoutIngestSuccessOutputSchema,
639
+ layoutIngestErrorOutputSchema,
640
+ ]);
641
+ export type LayoutIngestOutput = z.infer<typeof layoutIngestOutputSchema>;
642
+
643
+ /**
644
+ * layout.ingest シンプル出力スキーマ(後方互換用)
645
+ * @deprecated layoutIngestOutputSchema を使用してください
646
+ */
647
+ export const layoutIngestSimpleOutputSchema = z.object({
648
+ id: z.string().uuid(),
649
+ url: z.string().url(),
650
+ title: z.string().optional(),
651
+ screenshotUrl: z.string().url().optional(),
652
+ htmlSize: z.number().int().nonnegative(),
653
+ sectionsDetected: z.number().int().nonnegative(),
654
+ ingestedAt: z.string().datetime(),
655
+ });
656
+ export type LayoutIngestSimpleOutput = z.infer<typeof layoutIngestSimpleOutputSchema>;
657
+
658
+ // ============================================================================
659
+ // layout.inspect Schemas
660
+ // ============================================================================
661
+
662
+ /**
663
+ * layout.inspect オプションスキーマ
664
+ *
665
+ * @property detectSections - セクション検出(デフォルトtrue)
666
+ * @property extractColors - 色抽出(デフォルトtrue)
667
+ * @property analyzeTypography - タイポグラフィ解析(デフォルトtrue)
668
+ * @property detectGrid - グリッド検出(デフォルトtrue)
669
+ */
670
+ export const layoutInspectOptionsSchema = z.object({
671
+ detectSections: z.boolean().optional().default(true),
672
+ extractColors: z.boolean().optional().default(true),
673
+ analyzeTypography: z.boolean().optional().default(true),
674
+ detectGrid: z.boolean().optional().default(true),
675
+ });
676
+ export type LayoutInspectOptions = z.infer<typeof layoutInspectOptionsSchema>;
677
+
678
+ /**
679
+ * layout.inspect 入力スキーマ
680
+ *
681
+ * @property id - WebページID(UUID形式、htmlと排他)
682
+ * @property html - HTMLコンテンツ(最大10MB、idと排他)
683
+ * @property options - オプション設定(オプション)
684
+ *
685
+ * バリデーション: idまたはhtmlのいずれか一方のみ指定可能
686
+ */
687
+ export const layoutInspectInputSchema = z
688
+ .object({
689
+ id: z.string().uuid({ message: "有効なUUID形式のIDを指定してください" }).optional(),
690
+ html: z
691
+ .string()
692
+ .min(1, { message: "HTMLコンテンツは1文字以上必要です" })
693
+ .max(10_000_000, { message: "HTMLコンテンツは10MB以下にしてください" })
694
+ .optional(),
695
+ options: layoutInspectOptionsSchema.optional(),
696
+ })
697
+ .refine(
698
+ (data) => {
699
+ const hasId = data.id !== undefined;
700
+ const hasHtml = data.html !== undefined;
701
+ // Either id or html must be provided, but not both
702
+ return (hasId || hasHtml) && !(hasId && hasHtml);
703
+ },
704
+ {
705
+ message: "idまたはhtmlのいずれか一方のみを指定してください",
706
+ }
707
+ );
708
+ export type LayoutInspectInput = z.infer<typeof layoutInspectInputSchema>;
709
+
710
+ /**
711
+ * セクション情報スキーマ
712
+ */
713
+ export const sectionInfoSchema = z.object({
714
+ type: z.string(),
715
+ index: z.number().int().nonnegative(),
716
+ confidence: z.number().min(0).max(1),
717
+ htmlSnippet: z.string().optional(),
718
+ });
719
+ export type SectionInfo = z.infer<typeof sectionInfoSchema>;
720
+
721
+ /**
722
+ * タイポグラフィ情報スキーマ
723
+ */
724
+ export const typographyInfoSchema = z.object({
725
+ fonts: z.array(z.string()),
726
+ headingSizes: z.array(z.string()).optional(),
727
+ bodySize: z.string().optional(),
728
+ });
729
+ export type TypographyInfo = z.infer<typeof typographyInfoSchema>;
730
+
731
+ /**
732
+ * グリッド情報スキーマ
733
+ */
734
+ export const gridInfoSchema = z.object({
735
+ columns: z.number().int().positive().optional(),
736
+ gap: z.string().optional(),
737
+ areas: z.array(z.string()).optional(),
738
+ });
739
+ export type GridInfo = z.infer<typeof gridInfoSchema>;
740
+
741
+ /**
742
+ * layout.inspect 出力スキーマ
743
+ */
744
+ export const layoutInspectOutputSchema = z.object({
745
+ webPageId: z.string().uuid(),
746
+ sections: z.array(sectionInfoSchema),
747
+ colors: z.array(z.string()).optional(),
748
+ typography: typographyInfoSchema.optional(),
749
+ grid: gridInfoSchema.optional(),
750
+ });
751
+ export type LayoutInspectOutput = z.infer<typeof layoutInspectOutputSchema>;
752
+
753
+ // ============================================================================
754
+ // layout.search Schemas
755
+ // ============================================================================
756
+
757
+ // ============================================================================
758
+ // Visual Features Filter Schemas (Phase 4-1)
759
+ // ============================================================================
760
+
761
+ /**
762
+ * HEXカラーパターン(#RRGGBB形式)
763
+ */
764
+ const hexColorPattern = /^#[0-9A-Fa-f]{6}$/;
765
+
766
+ /**
767
+ * テーマフィルタースキーマ
768
+ * layoutInfo.visualFeatures.theme に基づくフィルタリング
769
+ *
770
+ * @property type - テーマタイプ(light/dark/mixed)
771
+ * @property minContrastRatio - 最小コントラスト比(1-21、WCAG基準)
772
+ */
773
+ export const visualFeaturesThemeFilterSchema = z.object({
774
+ type: z.enum(["light", "dark", "mixed"]).optional(),
775
+ minContrastRatio: z
776
+ .number()
777
+ .min(1, { message: "minContrastRatioは1以上21以下である必要があります" })
778
+ .max(21, { message: "minContrastRatioは1以上21以下である必要があります" })
779
+ .optional(),
780
+ });
781
+ export type VisualFeaturesThemeFilter = z.infer<typeof visualFeaturesThemeFilterSchema>;
782
+
783
+ /**
784
+ * カラーフィルタースキーマ
785
+ * layoutInfo.visualFeatures.colors に基づくフィルタリング
786
+ *
787
+ * @property dominantColor - 支配色(HEX形式 #RRGGBB)
788
+ * @property colorTolerance - 色許容度(ΔE距離、0-100、デフォルト15)
789
+ */
790
+ export const visualFeaturesColorsFilterSchema = z.object({
791
+ dominantColor: z
792
+ .string()
793
+ .regex(hexColorPattern, {
794
+ message: "dominantColorは#RRGGBB形式である必要があります",
795
+ })
796
+ .optional(),
797
+ colorTolerance: z
798
+ .number()
799
+ .min(0, { message: "colorToleranceは0以上100以下である必要があります" })
800
+ .max(100, { message: "colorToleranceは0以上100以下である必要があります" })
801
+ .default(15)
802
+ .optional(),
803
+ });
804
+ export type VisualFeaturesColorsFilter = z.infer<typeof visualFeaturesColorsFilterSchema>;
805
+
806
+ /**
807
+ * 密度フィルタースキーマ
808
+ * layoutInfo.visualFeatures.density に基づくフィルタリング
809
+ *
810
+ * @property minContentDensity - 最小コンテンツ密度(0-1)
811
+ * @property maxContentDensity - 最大コンテンツ密度(0-1)
812
+ * @property minWhitespaceRatio - 最小ホワイトスペース比率(0-1)
813
+ */
814
+ export const visualFeaturesDensityFilterSchema = z.object({
815
+ minContentDensity: z
816
+ .number()
817
+ .min(0, { message: "minContentDensityは0以上1以下である必要があります" })
818
+ .max(1, { message: "minContentDensityは0以上1以下である必要があります" })
819
+ .optional(),
820
+ maxContentDensity: z
821
+ .number()
822
+ .min(0, { message: "maxContentDensityは0以上1以下である必要があります" })
823
+ .max(1, { message: "maxContentDensityは0以上1以下である必要があります" })
824
+ .optional(),
825
+ minWhitespaceRatio: z
826
+ .number()
827
+ .min(0, { message: "minWhitespaceRatioは0以上1以下である必要があります" })
828
+ .max(1, { message: "minWhitespaceRatioは0以上1以下である必要があります" })
829
+ .optional(),
830
+ });
831
+ export type VisualFeaturesDensityFilter = z.infer<typeof visualFeaturesDensityFilterSchema>;
832
+
833
+ /**
834
+ * ビジュアル特徴フィルタースキーマ(統合)
835
+ * SectionPattern.layoutInfo.visualFeatures に基づくフィルタリング
836
+ *
837
+ * @property theme - テーマフィルター(light/dark/mixed、コントラスト比)
838
+ * @property colors - カラーフィルター(支配色、許容度)
839
+ * @property density - 密度フィルター(コンテンツ密度、ホワイトスペース比率)
840
+ */
841
+ export const visualFeaturesFilterSchema = z.object({
842
+ theme: visualFeaturesThemeFilterSchema.optional(),
843
+ colors: visualFeaturesColorsFilterSchema.optional(),
844
+ density: visualFeaturesDensityFilterSchema.optional(),
845
+ });
846
+ export type VisualFeaturesFilter = z.infer<typeof visualFeaturesFilterSchema>;
847
+
848
+ // ============================================================================
849
+ // layout.search Filters Schema
850
+ // ============================================================================
851
+
852
+ /**
853
+ * layout.search フィルタースキーマ
854
+ *
855
+ * @property sectionType - セクションタイプフィルター(オプション)
856
+ * @property sourceType - ソースタイプフィルター(オプション)
857
+ * @property usageScope - 利用範囲フィルター(オプション)
858
+ * @property visualFeatures - ビジュアル特徴フィルター(Phase 4-1、オプション)
859
+ */
860
+ export const layoutSearchFiltersSchema = z.object({
861
+ sectionType: sectionTypeForSearchSchema.optional(),
862
+ sourceType: sourceTypeSchema.optional(),
863
+ usageScope: usageScopeSchema.optional(),
864
+ visualFeatures: visualFeaturesFilterSchema.optional(),
865
+ mood: moodFilterSchema.optional(),
866
+ brandTone: brandToneFilterSchema.optional(),
867
+ });
868
+ export type LayoutSearchFilters = z.infer<typeof layoutSearchFiltersSchema>;
869
+
870
+ /**
871
+ * Project Context オプションスキーマ
872
+ * プロジェクトのデザインパターンを検出し、検索結果の適合度を評価
873
+ *
874
+ * @property enabled - プロジェクトコンテキスト解析を有効化(デフォルトtrue)
875
+ * @property project_path - スキャン対象のプロジェクトパス(オプション)
876
+ * @property design_tokens_path - デザイントークンファイルの特定パス(オプション)
877
+ */
878
+ export const projectContextOptionsSchema = z.object({
879
+ enabled: z.boolean().optional().default(true),
880
+ project_path: z.string().min(1, { message: "project_pathは空文字列にできません" }).optional(),
881
+ design_tokens_path: z
882
+ .string()
883
+ .min(1, { message: "design_tokens_pathは空文字列にできません" })
884
+ .optional(),
885
+ });
886
+ export type ProjectContextOptions = z.infer<typeof projectContextOptionsSchema>;
887
+
888
+ /**
889
+ * Integration Hints スキーマ
890
+ * 検索結果をプロジェクトに統合するためのヒント情報
891
+ *
892
+ * @property suggested_hooks - 推奨カスタムフック(useScrollAnimation等)
893
+ * @property color_mapping - パターン色からプロジェクトトークンへのマッピング
894
+ * @property existing_animations - 既存アニメーション(globals.css等)
895
+ */
896
+ export const integrationHintsSchema = z.object({
897
+ suggested_hooks: z.array(z.string()),
898
+ color_mapping: z.record(z.string(), z.string()),
899
+ existing_animations: z.array(z.string()),
900
+ });
901
+ export type IntegrationHints = z.infer<typeof integrationHintsSchema>;
902
+
903
+ // ============================================================================
904
+ // Multimodal Search Schemas
905
+ // ============================================================================
906
+
907
+ /**
908
+ * 検索モードスキーマ
909
+ * マルチモーダル検索における検索モードを指定
910
+ *
911
+ * - text_only: text_embeddingのみを使用(デフォルト)
912
+ * - vision_only: vision_embeddingのみを使用
913
+ * - combined: 両方を使用してRRF統合
914
+ */
915
+ export const searchModeSchema = z.enum(["text_only", "vision_only", "combined"]);
916
+ export type SearchMode = z.infer<typeof searchModeSchema>;
917
+
918
+ /**
919
+ * マルチモーダルオプションスキーマ
920
+ * RRF統合検索の重み付け設定
921
+ *
922
+ * @property textWeight - text_embeddingの重み(0-1、デフォルト0.6)
923
+ * @property visionWeight - vision_embeddingの重み(0-1、デフォルト0.4)
924
+ * @property rrfK - RRFのkパラメータ(1-100、デフォルト60)
925
+ */
926
+ export const multimodalOptionsSchema = z.object({
927
+ textWeight: z
928
+ .number()
929
+ .min(0, { message: "textWeightは0以上1以下である必要があります" })
930
+ .max(1, { message: "textWeightは0以上1以下である必要があります" })
931
+ .optional()
932
+ .default(0.6),
933
+ visionWeight: z
934
+ .number()
935
+ .min(0, { message: "visionWeightは0以上1以下である必要があります" })
936
+ .max(1, { message: "visionWeightは0以上1以下である必要があります" })
937
+ .optional()
938
+ .default(0.4),
939
+ rrfK: z
940
+ .number()
941
+ .int({ message: "rrfKは整数である必要があります" })
942
+ .min(1, { message: "rrfKは1以上100以下である必要があります" })
943
+ .max(100, { message: "rrfKは1以上100以下である必要があります" })
944
+ .optional()
945
+ .default(60),
946
+ });
947
+ export type MultimodalOptions = z.infer<typeof multimodalOptionsSchema>;
948
+
949
+ // ============================================================================
950
+ // Vision Search Query Schema (Phase 4-2)
951
+ // ============================================================================
952
+
953
+ /**
954
+ * VisualFeatures検索条件スキーマ
955
+ * vision_embeddingを活用したセマンティック検索用
956
+ *
957
+ * @property theme - テーマ(light/dark/mixed)
958
+ * @property colors - 色指定(HEX形式配列)
959
+ * @property density - 密度(sparse/moderate/dense)
960
+ * @property gradient - グラデーション(none/subtle/prominent)
961
+ * @property mood - 雰囲気(professional/playful/minimal等)
962
+ * @property brandTone - ブランドトーン
963
+ */
964
+ export const visionSearchVisualFeaturesSchema = z.object({
965
+ theme: z.string().optional(),
966
+ colors: z.array(z.string()).optional(),
967
+ density: z.string().optional(),
968
+ gradient: z.string().optional(),
969
+ mood: z.string().optional(),
970
+ brandTone: z.string().optional(),
971
+ });
972
+ export type VisionSearchVisualFeatures = z.infer<typeof visionSearchVisualFeaturesSchema>;
973
+
974
+ /**
975
+ * Vision検索クエリスキーマ
976
+ * vision_embedding列でのセマンティック検索
977
+ *
978
+ * @property textQuery - テキストクエリ(視覚的特徴を自然言語で記述)
979
+ * @property visualFeatures - 構造化された視覚的特徴条件
980
+ * @property sectionPatternId - 既存セクションIDで類似検索
981
+ */
982
+ export const visionSearchQuerySchema = z.object({
983
+ textQuery: z
984
+ .string()
985
+ .min(1, { message: "textQueryは1文字以上必要です" })
986
+ .max(500, { message: "textQueryは500文字以下にしてください" })
987
+ .optional(),
988
+ visualFeatures: visionSearchVisualFeaturesSchema.optional(),
989
+ sectionPatternId: z
990
+ .string()
991
+ .uuid({ message: "有効なUUID形式のsectionPatternIdを指定してください" })
992
+ .optional(),
993
+ });
994
+ export type VisionSearchQuery = z.infer<typeof visionSearchQuerySchema>;
995
+
996
+ /**
997
+ * Vision検索オプションスキーマ
998
+ *
999
+ * @property minSimilarity - 最小類似度(0-1、デフォルト0.5)
1000
+ * @property visionWeight - RRFでのvision_embeddingの重み(0-1、デフォルト0.6)
1001
+ * @property textWeight - RRFでのtext_embeddingの重み(0-1、デフォルト0.4)
1002
+ */
1003
+ export const visionSearchOptionsSchema = z.object({
1004
+ minSimilarity: z
1005
+ .number()
1006
+ .min(0, { message: "minSimilarityは0以上1以下である必要があります" })
1007
+ .max(1, { message: "minSimilarityは0以上1以下である必要があります" })
1008
+ .optional()
1009
+ .default(0.5),
1010
+ visionWeight: z
1011
+ .number()
1012
+ .min(0, { message: "visionWeightは0以上1以下である必要があります" })
1013
+ .max(1, { message: "visionWeightは0以上1以下である必要があります" })
1014
+ .optional()
1015
+ .default(0.6),
1016
+ textWeight: z
1017
+ .number()
1018
+ .min(0, { message: "textWeightは0以上1以下である必要があります" })
1019
+ .max(1, { message: "textWeightは0以上1以下である必要があります" })
1020
+ .optional()
1021
+ .default(0.4),
1022
+ });
1023
+ export type VisionSearchOptions = z.infer<typeof visionSearchOptionsSchema>;
1024
+
1025
+ // ============================================================================
1026
+ // layout.search Input Schema
1027
+ // ============================================================================
1028
+
1029
+ /**
1030
+ * layout.search 入力スキーマ
1031
+ *
1032
+ * @property query - 検索クエリ(1-500文字、必須)
1033
+ * @property filters - 検索フィルター(オプション)
1034
+ * @property limit - 取得件数(1-50、デフォルト10)
1035
+ * @property offset - オフセット(0以上、デフォルト0)
1036
+ * @property include_html - HTMLを含めるか(デフォルトfalse)- snake_case正式形式
1037
+ * @property includeHtml - HTMLを含めるか(デフォルトfalse)- レガシー互換(include_html推奨)
1038
+ * @property include_preview - プレビュー用HTMLスニペットを含めるか(デフォルトtrue)
1039
+ * @property preview_max_length - プレビューの最大文字数(100-1000、デフォルト500)
1040
+ * @property project_context - プロジェクトコンテキスト解析オプション(オプション)
1041
+ * @property use_vision_search - Vision検索を有効化(デフォルトfalse)
1042
+ * @property vision_search_query - Vision検索クエリ(use_vision_search=true時に使用)
1043
+ * @property vision_search_options - Vision検索オプション(use_vision_search=true時に使用)
1044
+ */
1045
+ export const layoutSearchInputSchema = z.object({
1046
+ query: z
1047
+ .string()
1048
+ .min(1, { message: "クエリは1文字以上必要です" })
1049
+ .max(500, { message: "クエリは500文字以下にしてください" }),
1050
+ filters: layoutSearchFiltersSchema.optional(),
1051
+ limit: z
1052
+ .number()
1053
+ .int({ message: "limitは整数である必要があります" })
1054
+ .min(1, { message: "limitは1以上50以下である必要があります" })
1055
+ .max(50, { message: "limitは1以上50以下である必要があります" })
1056
+ .optional()
1057
+ .default(10),
1058
+ offset: z
1059
+ .number()
1060
+ .int({ message: "offsetは整数である必要があります" })
1061
+ .min(0, { message: "offsetは0以上である必要があります" })
1062
+ .optional()
1063
+ .default(0),
1064
+ // MCP-RESP-03: snake_case正式形式(新規オプション推奨形式)
1065
+ // デフォルト値はgetIncludeHtml()で適用(両形式対応のため)
1066
+ include_html: z.boolean().optional(),
1067
+ // レガシー互換: camelCaseは後方互換として維持
1068
+ // デフォルト値はgetIncludeHtml()で適用(両形式対応のため)
1069
+ includeHtml: z.boolean().optional(),
1070
+ include_preview: z.boolean().optional().default(true),
1071
+ preview_max_length: z
1072
+ .number()
1073
+ .int({ message: "preview_max_lengthは整数である必要があります" })
1074
+ .min(100, { message: "preview_max_lengthは100以上1000以下である必要があります" })
1075
+ .max(1000, { message: "preview_max_lengthは100以上1000以下である必要があります" })
1076
+ .optional()
1077
+ .default(500),
1078
+ project_context: projectContextOptionsSchema.optional(),
1079
+ // REFTRIX-LAYOUT-02: Auto-detect context from query
1080
+ /**
1081
+ * クエリから業界・スタイルコンテキストを自動推論
1082
+ * 推論結果に基づいて検索結果をブースト
1083
+ * @default true
1084
+ */
1085
+ auto_detect_context: z.boolean().optional().default(true),
1086
+ // Phase 4-2: Vision Search Parameters
1087
+ use_vision_search: z.boolean().optional().default(false),
1088
+ vision_search_query: visionSearchQuerySchema.optional(),
1089
+ vision_search_options: visionSearchOptionsSchema.optional(),
1090
+ // Multimodal Search Parameters
1091
+ /**
1092
+ * 検索モード
1093
+ * - text_only: text_embeddingのみを使用(デフォルト)
1094
+ * - vision_only: vision_embeddingのみを使用
1095
+ * - combined: 両方を使用してRRF統合
1096
+ * @default 'text_only'
1097
+ */
1098
+ search_mode: searchModeSchema.optional().default("text_only"),
1099
+ /**
1100
+ * マルチモーダルオプション
1101
+ * search_mode='combined'時のRRF統合パラメータ
1102
+ */
1103
+ multimodal_options: multimodalOptionsSchema.optional(),
1104
+ /**
1105
+ * 嗜好プロファイルID(検索結果のリランキングに使用)
1106
+ * Preference profile ID (used for search result reranking)
1107
+ */
1108
+ profile_id: z.string().uuid().optional(),
1109
+ });
1110
+ export type LayoutSearchInput = z.infer<typeof layoutSearchInputSchema>;
1111
+
1112
+ /**
1113
+ * 検索結果プレビュースキーマ
1114
+ */
1115
+ export const layoutSearchPreviewSchema = z.object({
1116
+ heading: z.string().optional(),
1117
+ description: z.string().optional(),
1118
+ thumbnail: z.string().optional(), // Base64エンコード画像(縮小版)
1119
+ });
1120
+ export type LayoutSearchPreview = z.infer<typeof layoutSearchPreviewSchema>;
1121
+
1122
+ /**
1123
+ * 検索結果ソース情報スキーマ
1124
+ */
1125
+ export const layoutSearchSourceSchema = z.object({
1126
+ url: z.string().url(),
1127
+ type: sourceTypeSchema,
1128
+ usageScope: usageScopeSchema,
1129
+ });
1130
+ export type LayoutSearchSource = z.infer<typeof layoutSearchSourceSchema>;
1131
+
1132
+ /**
1133
+ * Vision分析結果の特徴スキーマ
1134
+ */
1135
+ export const visionFeatureSchema = z.object({
1136
+ type: z.string(),
1137
+ confidence: z.number().min(0).max(1),
1138
+ description: z.string().optional(),
1139
+ data: z.unknown().optional(),
1140
+ });
1141
+ export type VisionFeature = z.infer<typeof visionFeatureSchema>;
1142
+
1143
+ /**
1144
+ * Vision分析結果スキーマ(layout.inspect Vision分析の結果)
1145
+ */
1146
+ export const visionAnalysisSchema = z.object({
1147
+ success: z.boolean(),
1148
+ features: z.array(visionFeatureSchema),
1149
+ textRepresentation: z.string().optional(),
1150
+ processingTimeMs: z.number().optional(),
1151
+ modelName: z.string().optional(),
1152
+ rawResponse: z.string().optional(),
1153
+ error: z.string().optional(),
1154
+ });
1155
+ export type VisionAnalysis = z.infer<typeof visionAnalysisSchema>;
1156
+
1157
+ /**
1158
+ * 検索結果アイテムスキーマ(拡張版)
1159
+ */
1160
+ export const layoutSearchResultItemSchema = z.object({
1161
+ id: z.string().uuid(),
1162
+ webPageId: z.string().uuid(),
1163
+ type: z.string(), // sectionType
1164
+ similarity: z.number().min(0).max(1),
1165
+ preview: layoutSearchPreviewSchema,
1166
+ source: layoutSearchSourceSchema,
1167
+ html: z.string().optional(), // includeHtml=true時のみ
1168
+ // HTMLプレビュー(サニタイズ済み短縮HTML)
1169
+ htmlPreview: z.string().optional(), // include_preview=true時のみ(デフォルト)
1170
+ previewLength: z.number().int().nonnegative().optional(), // htmlPreviewの元の文字数
1171
+ visionAnalysis: visionAnalysisSchema.optional(), // Vision分析結果
1172
+ // Mood/BrandTone search results (optional, when mood/brandTone filters applied)
1173
+ moodInfo: z
1174
+ .object({
1175
+ primary: z.string(),
1176
+ secondary: z.string().optional(),
1177
+ })
1178
+ .optional(),
1179
+ brandToneInfo: z
1180
+ .object({
1181
+ primary: z.string(),
1182
+ secondary: z.string().optional(),
1183
+ })
1184
+ .optional(),
1185
+ // Project Context Adaptation fields (optional, when project_context.enabled=true)
1186
+ adaptability_score: z.number().int().min(0).max(100).optional(), // 0-100
1187
+ integration_hints: integrationHintsSchema.optional(),
1188
+ // REFTRIX-LAYOUT-02: Context boost (auto_detect_context=true時)
1189
+ context_boost: z.number().min(0).max(0.15).optional(),
1190
+ // RRF統合検索時の個別結果詳細(combined モード時のみ)
1191
+ rrfDetails: z
1192
+ .object({
1193
+ textRank: z.number().int().nonnegative(), // テキスト検索でのランク(0=含まれない)
1194
+ visionRank: z.number().int().nonnegative(), // Vision検索でのランク(0=含まれない)
1195
+ textScore: z.number().min(0).max(1).optional(), // テキスト類似度スコア
1196
+ visionScore: z.number().min(0).max(1).optional(), // Vision類似度スコア
1197
+ rrfScore: z.number().min(0).optional(), // RRF統合スコア
1198
+ })
1199
+ .optional(),
1200
+ });
1201
+ export type LayoutSearchResultItem = z.infer<typeof layoutSearchResultItemSchema>;
1202
+
1203
+ /**
1204
+ * 推論されたコンテキストスキーマ(REFTRIX-LAYOUT-02)
1205
+ */
1206
+ export const inferredContextSchema = z.object({
1207
+ industry: z.string().nullable(),
1208
+ style: z.string().nullable(),
1209
+ confidence: z.number().min(0).max(1),
1210
+ detected_keywords: z.array(z.string()),
1211
+ });
1212
+ export type InferredContextOutput = z.infer<typeof inferredContextSchema>;
1213
+
1214
+ // ============================================================================
1215
+ // RRF Details Schema
1216
+ // ============================================================================
1217
+
1218
+ /**
1219
+ * RRF(Reciprocal Rank Fusion)詳細情報スキーマ
1220
+ *
1221
+ * @property k - RRFのkパラメータ
1222
+ * @property textWeight - text_embeddingの重み
1223
+ * @property visionWeight - vision_embeddingの重み
1224
+ * @property textResultCount - text検索結果数
1225
+ * @property visionResultCount - vision検索結果数
1226
+ * @property fusedResultCount - 統合後の結果数
1227
+ * @property calculationTimeMs - RRF計算時間(ミリ秒)
1228
+ */
1229
+ export const rrfDetailsSchema = z.object({
1230
+ k: z.number().int().min(1).max(100),
1231
+ textWeight: z.number().min(0).max(1),
1232
+ visionWeight: z.number().min(0).max(1),
1233
+ textResultCount: z.number().int().nonnegative(),
1234
+ visionResultCount: z.number().int().nonnegative(),
1235
+ fusedResultCount: z.number().int().nonnegative(),
1236
+ calculationTimeMs: z.number().nonnegative().optional(),
1237
+ });
1238
+ export type RrfDetails = z.infer<typeof rrfDetailsSchema>;
1239
+
1240
+ /**
1241
+ * layout.search 成功レスポンスデータスキーマ
1242
+ */
1243
+ export const layoutSearchDataSchema = z.object({
1244
+ results: z.array(layoutSearchResultItemSchema),
1245
+ total: z.number().int().nonnegative(),
1246
+ query: z.string(),
1247
+ filters: z.record(z.unknown()).optional(),
1248
+ filtersApplied: z.array(z.string()).optional(),
1249
+ searchTimeMs: z.number().nonnegative().optional(),
1250
+ // REFTRIX-LAYOUT-02: Auto-detected context
1251
+ inferred_context: inferredContextSchema.optional(),
1252
+ context_boost_applied: z.boolean().optional(),
1253
+ // Multimodal Search Output Fields
1254
+ /**
1255
+ * 要求された検索モード
1256
+ */
1257
+ searchMode: searchModeSchema.optional(),
1258
+ /**
1259
+ * 実際に使用された検索モード
1260
+ * vision_embeddingがnullの場合、text_onlyにフォールバック
1261
+ */
1262
+ actualSearchMode: searchModeSchema.optional(),
1263
+ /**
1264
+ * 警告メッセージ(Graceful Degradation時など)
1265
+ */
1266
+ warnings: z.array(z.string()).optional(),
1267
+ /**
1268
+ * RRF統合の詳細情報(search_mode='combined'時のみ)
1269
+ */
1270
+ rrfDetails: rrfDetailsSchema.optional(),
1271
+ /**
1272
+ * フォールバック理由(Graceful Degradation発生時のみ)
1273
+ */
1274
+ fallbackReason: z.string().optional(),
1275
+ });
1276
+ export type LayoutSearchData = z.infer<typeof layoutSearchDataSchema>;
1277
+
1278
+ /**
1279
+ * layout.search エラー情報スキーマ
1280
+ */
1281
+ export const layoutSearchErrorInfoSchema = z.object({
1282
+ code: z.string(),
1283
+ message: z.string(),
1284
+ });
1285
+ export type LayoutSearchErrorInfo = z.infer<typeof layoutSearchErrorInfoSchema>;
1286
+
1287
+ /**
1288
+ * layout.search 成功レスポンススキーマ
1289
+ */
1290
+ export const layoutSearchSuccessOutputSchema = z.object({
1291
+ success: z.literal(true),
1292
+ data: layoutSearchDataSchema,
1293
+ });
1294
+
1295
+ /**
1296
+ * layout.search 失敗レスポンススキーマ
1297
+ */
1298
+ export const layoutSearchErrorOutputSchema = z.object({
1299
+ success: z.literal(false),
1300
+ error: layoutSearchErrorInfoSchema,
1301
+ });
1302
+
1303
+ /**
1304
+ * layout.search 出力スキーマ(統合)
1305
+ */
1306
+ export const layoutSearchOutputSchema = z.discriminatedUnion("success", [
1307
+ layoutSearchSuccessOutputSchema,
1308
+ layoutSearchErrorOutputSchema,
1309
+ ]);
1310
+ export type LayoutSearchOutput = z.infer<typeof layoutSearchOutputSchema>;
1311
+
1312
+ // ============================================================================
1313
+ // layout.generate_code Schemas
1314
+ // ============================================================================
1315
+
1316
+ /**
1317
+ * layout.generate_code オプションスキーマ
1318
+ *
1319
+ * @property framework - フレームワーク(react/vue/html、デフォルトreact)
1320
+ * @property typescript - TypeScript出力(デフォルトtrue)
1321
+ * @property tailwind - Tailwind使用(デフォルトtrue)
1322
+ * @property paletteId - ブランドパレットID(オプション)
1323
+ * @property componentName - コンポーネント名(PascalCase形式、オプション)
1324
+ * @property splitComponents - HTMLを意味のあるサブコンポーネントに分割するか(デフォルトfalse)
1325
+ */
1326
+ export const layoutToCodeOptionsSchema = z.object({
1327
+ framework: frameworkSchema.optional().default("react"),
1328
+ typescript: z.boolean().optional().default(true),
1329
+ tailwind: z.boolean().optional().default(true),
1330
+ paletteId: z.string().uuid({ message: "有効なUUID形式のpaletteIdを指定してください" }).optional(),
1331
+ componentName: z
1332
+ .string()
1333
+ .min(1, { message: "コンポーネント名は1文字以上必要です" })
1334
+ .regex(/^[A-Z][a-zA-Z0-9]*$/, {
1335
+ message: "コンポーネント名はPascalCase形式である必要があります",
1336
+ })
1337
+ .optional(),
1338
+ splitComponents: z.boolean().optional().default(false),
1339
+ /**
1340
+ * レスポンシブブレークポイント自動生成
1341
+ * 大きなサイズのwidth/padding/font-size/flex-directionを
1342
+ * モバイルファーストのレスポンシブクラスに変換します
1343
+ * @default true
1344
+ */
1345
+ responsive: z.boolean().optional().default(true),
1346
+ });
1347
+ export type LayoutToCodeOptions = z.infer<typeof layoutToCodeOptionsSchema>;
1348
+
1349
+ /**
1350
+ * layout.generate_code 入力スキーマ
1351
+ *
1352
+ * @property patternId - パターンID(UUID形式、必須)
1353
+ * @property options - オプション設定(オプション)
1354
+ */
1355
+ export const layoutToCodeInputSchema = z.object({
1356
+ patternId: z.string().uuid({ message: "有効なUUID形式のpatternIdを指定してください" }),
1357
+ options: layoutToCodeOptionsSchema.optional(),
1358
+ });
1359
+ export type LayoutToCodeInput = z.infer<typeof layoutToCodeInputSchema>;
1360
+
1361
+ /**
1362
+ * layout.generate_code データスキーマ
1363
+ */
1364
+ export const layoutToCodeDataSchema = z.object({
1365
+ code: z.string(),
1366
+ framework: frameworkSchema,
1367
+ componentName: z.string(),
1368
+ filename: z.string(),
1369
+ dependencies: z.array(z.string()).optional(),
1370
+ inspirationUrls: z.array(z.string().url()).optional(),
1371
+ usageScope: usageScopeSchema,
1372
+ });
1373
+ export type LayoutToCodeData = z.infer<typeof layoutToCodeDataSchema>;
1374
+
1375
+ /**
1376
+ * layout.generate_code エラー情報スキーマ
1377
+ */
1378
+ export const layoutToCodeErrorInfoSchema = z.object({
1379
+ code: z.string(),
1380
+ message: z.string(),
1381
+ details: z.unknown().optional(),
1382
+ });
1383
+ export type LayoutToCodeErrorInfo = z.infer<typeof layoutToCodeErrorInfoSchema>;
1384
+
1385
+ /**
1386
+ * layout.generate_code 成功レスポンススキーマ
1387
+ */
1388
+ export const layoutToCodeSuccessOutputSchema = z.object({
1389
+ success: z.literal(true),
1390
+ data: layoutToCodeDataSchema,
1391
+ });
1392
+
1393
+ /**
1394
+ * layout.generate_code 失敗レスポンススキーマ
1395
+ */
1396
+ export const layoutToCodeErrorOutputSchema = z.object({
1397
+ success: z.literal(false),
1398
+ error: layoutToCodeErrorInfoSchema,
1399
+ });
1400
+
1401
+ /**
1402
+ * layout.generate_code 出力スキーマ(統合)
1403
+ */
1404
+ export const layoutToCodeOutputSchema = z.discriminatedUnion("success", [
1405
+ layoutToCodeSuccessOutputSchema,
1406
+ layoutToCodeErrorOutputSchema,
1407
+ ]);
1408
+ export type LayoutToCodeOutput = z.infer<typeof layoutToCodeOutputSchema>;
1409
+
1410
+ /**
1411
+ * @deprecated Use layoutToCodeDataSchema instead
1412
+ * 後方互換性のため残す(テスト移行後に削除)
1413
+ */
1414
+ export const layoutToCodeLegacyOutputSchema = layoutToCodeDataSchema;
1415
+
1416
+ // ============================================================================
1417
+ // layout.patterns Schemas (pattern listing, not a registered MCP tool)
1418
+ // ============================================================================
1419
+
1420
+ /**
1421
+ * layout patterns 入力スキーマ(パターン一覧取得用)
1422
+ *
1423
+ * @property sectionType - セクションタイプフィルター(オプション)
1424
+ * @property limit - 取得件数(1-100、デフォルト20)
1425
+ * @property offset - オフセット(0以上、デフォルト0)
1426
+ * @property sortBy - ソート対象(createdAt/usageCount/quality、デフォルトcreatedAt)
1427
+ * @property sortOrder - ソート順序(asc/desc、デフォルトdesc)
1428
+ */
1429
+ export const layoutPatternsInputSchema = z.object({
1430
+ sectionType: sectionTypeForSearchSchema.optional(),
1431
+ limit: z
1432
+ .number()
1433
+ .int({ message: "limitは整数である必要があります" })
1434
+ .min(1, { message: "limitは1以上100以下である必要があります" })
1435
+ .max(100, { message: "limitは1以上100以下である必要があります" })
1436
+ .optional()
1437
+ .default(20),
1438
+ offset: z
1439
+ .number()
1440
+ .int({ message: "offsetは整数である必要があります" })
1441
+ .min(0, { message: "offsetは0以上である必要があります" })
1442
+ .optional()
1443
+ .default(0),
1444
+ sortBy: sortBySchema.optional().default("createdAt"),
1445
+ sortOrder: sortOrderSchema.optional().default("desc"),
1446
+ });
1447
+ export type LayoutPatternsInput = z.infer<typeof layoutPatternsInputSchema>;
1448
+
1449
+ /**
1450
+ * パターンアイテムスキーマ
1451
+ */
1452
+ export const layoutPatternItemSchema = z.object({
1453
+ id: z.string().uuid(),
1454
+ sectionType: z.string(),
1455
+ name: z.string(),
1456
+ previewUrl: z.string().url().optional(),
1457
+ usageCount: z.number().int().nonnegative(),
1458
+ quality: z.number().min(0).max(1),
1459
+ createdAt: z.string().datetime(),
1460
+ });
1461
+ export type LayoutPatternItem = z.infer<typeof layoutPatternItemSchema>;
1462
+
1463
+ /**
1464
+ * layout patterns 出力スキーマ(パターン一覧取得用)
1465
+ */
1466
+ export const layoutPatternsOutputSchema = z.object({
1467
+ patterns: z.array(layoutPatternItemSchema),
1468
+ total: z.number().int().nonnegative(),
1469
+ limit: z.number().int().positive(),
1470
+ offset: z.number().int().nonnegative(),
1471
+ });
1472
+ export type LayoutPatternsOutput = z.infer<typeof layoutPatternsOutputSchema>;
1473
+
1474
+ // ============================================================================
1475
+ // layout.batch_ingest Schemas
1476
+ // ============================================================================
1477
+
1478
+ /**
1479
+ * layout.batch_ingest オプションスキーマ
1480
+ *
1481
+ * @property concurrency - 並列処理数(1-10、デフォルト5)
1482
+ * @property on_error - エラー時の動作(skip/abort、デフォルトskip)
1483
+ * @property save_to_db - DBに保存するか(デフォルトtrue)
1484
+ * @property auto_analyze - 自動解析するか(デフォルトtrue)
1485
+ */
1486
+ export const layoutBatchIngestOptionsSchema = z.object({
1487
+ concurrency: z
1488
+ .number()
1489
+ .int({ message: "concurrencyは整数である必要があります" })
1490
+ .min(1, { message: "concurrencyは1以上10以下である必要があります" })
1491
+ .max(10, { message: "concurrencyは1以上10以下である必要があります" })
1492
+ .optional()
1493
+ .default(5),
1494
+ on_error: z.enum(["skip", "abort"]).optional().default("skip"),
1495
+ save_to_db: z.boolean().optional().default(true),
1496
+ auto_analyze: z.boolean().optional().default(true),
1497
+ });
1498
+ export type LayoutBatchIngestOptions = z.infer<typeof layoutBatchIngestOptionsSchema>;
1499
+
1500
+ /**
1501
+ * layout.batch_ingest 入力スキーマ
1502
+ *
1503
+ * @property urls - インジェスト対象のURL配列(1-100件、必須)
1504
+ * @property options - オプション設定(オプション)
1505
+ */
1506
+ export const layoutBatchIngestInputSchema = z.object({
1507
+ urls: z
1508
+ .array(z.string().url({ message: "有効なURL形式を指定してください" }))
1509
+ .min(1, { message: "URLは1件以上100件以下で指定してください" })
1510
+ .max(100, { message: "URLは1件以上100件以下で指定してください" }),
1511
+ options: layoutBatchIngestOptionsSchema.optional(),
1512
+ /** robots.txtを尊重するかどうか(RFC 9309)。falseで無視 */
1513
+ respect_robots_txt: z.boolean().optional(),
1514
+ });
1515
+ export type LayoutBatchIngestInput = z.infer<typeof layoutBatchIngestInputSchema>;
1516
+
1517
+ /**
1518
+ * バッチインジェスト結果アイテムスキーマ
1519
+ */
1520
+ export const batchIngestResultItemSchema = z.object({
1521
+ url: z.string().url(),
1522
+ status: z.enum(["success", "failed"]),
1523
+ page_id: z.string().uuid().optional(),
1524
+ error: z.string().optional(),
1525
+ patterns_extracted: z.number().int().nonnegative().optional(),
1526
+ });
1527
+ export type BatchIngestResultItem = z.infer<typeof batchIngestResultItemSchema>;
1528
+
1529
+ /**
1530
+ * バッチインジェストサマリースキーマ
1531
+ */
1532
+ export const batchIngestSummarySchema = z.object({
1533
+ success_rate: z.number().min(0).max(100),
1534
+ total_patterns: z.number().int().nonnegative(),
1535
+ processing_time_ms: z.number().nonnegative(),
1536
+ });
1537
+ export type BatchIngestSummary = z.infer<typeof batchIngestSummarySchema>;
1538
+
1539
+ /**
1540
+ * layout.batch_ingest 成功レスポンスデータスキーマ
1541
+ */
1542
+ export const layoutBatchIngestDataSchema = z.object({
1543
+ job_id: z.string().uuid(),
1544
+ total: z.number().int().nonnegative(),
1545
+ completed: z.number().int().nonnegative(),
1546
+ failed: z.number().int().nonnegative(),
1547
+ results: z.array(batchIngestResultItemSchema),
1548
+ summary: batchIngestSummarySchema,
1549
+ });
1550
+ export type LayoutBatchIngestData = z.infer<typeof layoutBatchIngestDataSchema>;
1551
+
1552
+ /**
1553
+ * layout.batch_ingest エラー情報スキーマ
1554
+ */
1555
+ export const layoutBatchIngestErrorInfoSchema = z.object({
1556
+ code: z.string(),
1557
+ message: z.string(),
1558
+ details: z.unknown().optional(),
1559
+ });
1560
+ export type LayoutBatchIngestErrorInfo = z.infer<typeof layoutBatchIngestErrorInfoSchema>;
1561
+
1562
+ /**
1563
+ * layout.batch_ingest 成功レスポンススキーマ
1564
+ */
1565
+ export const layoutBatchIngestSuccessOutputSchema = z.object({
1566
+ success: z.literal(true),
1567
+ data: layoutBatchIngestDataSchema,
1568
+ });
1569
+
1570
+ /**
1571
+ * layout.batch_ingest 失敗レスポンススキーマ
1572
+ */
1573
+ export const layoutBatchIngestErrorOutputSchema = z.object({
1574
+ success: z.literal(false),
1575
+ error: layoutBatchIngestErrorInfoSchema,
1576
+ });
1577
+
1578
+ /**
1579
+ * layout.batch_ingest 出力スキーマ(統合)
1580
+ */
1581
+ export const layoutBatchIngestOutputSchema = z.discriminatedUnion("success", [
1582
+ layoutBatchIngestSuccessOutputSchema,
1583
+ layoutBatchIngestErrorOutputSchema,
1584
+ ]);
1585
+ export type LayoutBatchIngestOutput = z.infer<typeof layoutBatchIngestOutputSchema>;
1586
+
1587
+ // ============================================================================
1588
+ // Error Codes
1589
+ // ============================================================================
1590
+
1591
+ /**
1592
+ * layout.* ツール用エラーコード
1593
+ */
1594
+ export const LAYOUT_MCP_ERROR_CODES = {
1595
+ /** レイアウトが見つからない */
1596
+ LAYOUT_NOT_FOUND: "LAYOUT_NOT_FOUND",
1597
+ /** インジェスト失敗 */
1598
+ INGEST_FAILED: "INGEST_FAILED",
1599
+ /** 検査失敗 */
1600
+ INSPECT_FAILED: "INSPECT_FAILED",
1601
+ /** 検索失敗 */
1602
+ SEARCH_FAILED: "SEARCH_FAILED",
1603
+ /** コード生成失敗 */
1604
+ CODE_GENERATION_FAILED: "CODE_GENERATION_FAILED",
1605
+ /** バリデーションエラー */
1606
+ VALIDATION_ERROR: "VALIDATION_ERROR",
1607
+ /** タイムアウト */
1608
+ TIMEOUT: "TIMEOUT",
1609
+ /** HTMLサイズ超過 */
1610
+ HTML_TOO_LARGE: "HTML_TOO_LARGE",
1611
+ /** パターンが見つからない */
1612
+ PATTERN_NOT_FOUND: "PATTERN_NOT_FOUND",
1613
+ /** SSRF対策によりブロック */
1614
+ SSRF_BLOCKED: "SSRF_BLOCKED",
1615
+ /** タイムアウトエラー */
1616
+ TIMEOUT_ERROR: "TIMEOUT_ERROR",
1617
+ /** ネットワークエラー */
1618
+ NETWORK_ERROR: "NETWORK_ERROR",
1619
+ /** ブラウザエラー */
1620
+ BROWSER_ERROR: "BROWSER_ERROR",
1621
+ /** 内部エラー */
1622
+ INTERNAL_ERROR: "INTERNAL_ERROR",
1623
+ /** HTTPエラー */
1624
+ HTTP_ERROR: "HTTP_ERROR",
1625
+ /** DB保存失敗 */
1626
+ DB_SAVE_FAILED: "DB_SAVE_FAILED",
1627
+ /** バッチ処理中止 */
1628
+ BATCH_ABORTED: "BATCH_ABORTED",
1629
+ } as const;
1630
+
1631
+ export type LayoutMcpErrorCode =
1632
+ (typeof LAYOUT_MCP_ERROR_CODES)[keyof typeof LAYOUT_MCP_ERROR_CODES];
1633
+
1634
+ // ============================================================================
1635
+ // MCP Tool Definitions
1636
+ // ============================================================================
1637
+
1638
+ /**
1639
+ * MCP Tool definitions for layout.* tools
1640
+ * MCPプロトコル準拠のツール定義
1641
+ */
1642
+ export const layoutMcpTools = {
1643
+ "layout.ingest": {
1644
+ name: "layout.ingest",
1645
+ description: "URLからWebページを取得し、レイアウト解析用データを準備します",
1646
+ inputSchema: layoutIngestInputSchema,
1647
+ },
1648
+ "layout.inspect": {
1649
+ name: "layout.inspect",
1650
+ description: "HTMLを解析し、セクション・グリッド・タイポグラフィを抽出します",
1651
+ inputSchema: layoutInspectInputSchema,
1652
+ },
1653
+ "layout.search": {
1654
+ name: "layout.search",
1655
+ description: "レイアウトパターンをセマンティック検索します",
1656
+ inputSchema: layoutSearchInputSchema,
1657
+ },
1658
+ "layout.generate_code": {
1659
+ name: "layout.generate_code",
1660
+ description: "パターンからReact/Vue/HTMLコードを生成します",
1661
+ inputSchema: layoutToCodeInputSchema,
1662
+ },
1663
+ "layout.batch_ingest": {
1664
+ name: "layout.batch_ingest",
1665
+ description: "複数URLを一括取得しレイアウト解析用データを準備します",
1666
+ inputSchema: layoutBatchIngestInputSchema,
1667
+ },
1668
+ } as const;
1669
+
1670
+ export type LayoutMcpToolName = keyof typeof layoutMcpTools;