@tangle-network/browser-agent-driver 0.33.3 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/README.md +42 -1
  2. package/discovery/llms.txt +27 -0
  3. package/discovery/tangle-agent.json +36 -0
  4. package/dist/brain/action-parse.d.ts +16 -0
  5. package/dist/brain/action-parse.d.ts.map +1 -0
  6. package/dist/brain/action-parse.js +191 -0
  7. package/dist/brain/action-parse.js.map +1 -0
  8. package/dist/brain/decide.d.ts +58 -0
  9. package/dist/brain/decide.d.ts.map +1 -0
  10. package/dist/brain/decide.js +418 -0
  11. package/dist/brain/decide.js.map +1 -0
  12. package/dist/brain/history-compact.d.ts +19 -0
  13. package/dist/brain/history-compact.d.ts.map +1 -0
  14. package/dist/brain/history-compact.js +153 -0
  15. package/dist/brain/history-compact.js.map +1 -0
  16. package/dist/brain/index.d.ts +78 -152
  17. package/dist/brain/index.d.ts.map +1 -1
  18. package/dist/brain/index.js +62 -2268
  19. package/dist/brain/index.js.map +1 -1
  20. package/dist/brain/model-client.d.ts +101 -0
  21. package/dist/brain/model-client.d.ts.map +1 -0
  22. package/dist/brain/model-client.js +391 -0
  23. package/dist/brain/model-client.js.map +1 -0
  24. package/dist/brain/plan.d.ts +57 -0
  25. package/dist/brain/plan.d.ts.map +1 -0
  26. package/dist/brain/plan.js +194 -0
  27. package/dist/brain/plan.js.map +1 -0
  28. package/dist/brain/prompts.d.ts +37 -0
  29. package/dist/brain/prompts.d.ts.map +1 -0
  30. package/dist/brain/prompts.js +455 -0
  31. package/dist/brain/prompts.js.map +1 -0
  32. package/dist/brain/provider-fetch.d.ts +26 -0
  33. package/dist/brain/provider-fetch.d.ts.map +1 -0
  34. package/dist/brain/provider-fetch.js +45 -0
  35. package/dist/brain/provider-fetch.js.map +1 -0
  36. package/dist/brain/snapshot-budget.d.ts +20 -0
  37. package/dist/brain/snapshot-budget.d.ts.map +1 -0
  38. package/dist/brain/snapshot-budget.js +202 -0
  39. package/dist/brain/snapshot-budget.js.map +1 -0
  40. package/dist/brain/system-prompt.d.ts +67 -0
  41. package/dist/brain/system-prompt.d.ts.map +1 -0
  42. package/dist/brain/system-prompt.js +128 -0
  43. package/dist/brain/system-prompt.js.map +1 -0
  44. package/dist/brain/tasks/design-audit.d.ts +33 -0
  45. package/dist/brain/tasks/design-audit.d.ts.map +1 -0
  46. package/dist/brain/tasks/design-audit.js +100 -0
  47. package/dist/brain/tasks/design-audit.js.map +1 -0
  48. package/dist/brain/tasks/evaluate.d.ts +25 -0
  49. package/dist/brain/tasks/evaluate.d.ts.map +1 -0
  50. package/dist/brain/tasks/evaluate.js +55 -0
  51. package/dist/brain/tasks/evaluate.js.map +1 -0
  52. package/dist/brain/tasks/goal-verification.d.ts +32 -0
  53. package/dist/brain/tasks/goal-verification.d.ts.map +1 -0
  54. package/dist/brain/tasks/goal-verification.js +68 -0
  55. package/dist/brain/tasks/goal-verification.js.map +1 -0
  56. package/dist/brain/tasks/knowledge.d.ts +26 -0
  57. package/dist/brain/tasks/knowledge.d.ts.map +1 -0
  58. package/dist/brain/tasks/knowledge.js +56 -0
  59. package/dist/brain/tasks/knowledge.js.map +1 -0
  60. package/dist/brain/tasks/link-scout.d.ts +37 -0
  61. package/dist/brain/tasks/link-scout.d.ts.map +1 -0
  62. package/dist/brain/tasks/link-scout.js +69 -0
  63. package/dist/brain/tasks/link-scout.js.map +1 -0
  64. package/dist/brain/types.d.ts +55 -0
  65. package/dist/brain/types.d.ts.map +1 -0
  66. package/dist/brain/types.js +7 -0
  67. package/dist/brain/types.js.map +1 -0
  68. package/dist/browser/stealth-init-script.d.ts +9 -0
  69. package/dist/browser/stealth-init-script.d.ts.map +1 -0
  70. package/dist/browser/stealth-init-script.js +128 -0
  71. package/dist/browser/stealth-init-script.js.map +1 -0
  72. package/dist/browser/storage-state.d.ts +29 -0
  73. package/dist/browser/storage-state.d.ts.map +1 -0
  74. package/dist/browser/storage-state.js +47 -0
  75. package/dist/browser/storage-state.js.map +1 -0
  76. package/dist/browser-launch.d.ts +6 -0
  77. package/dist/browser-launch.d.ts.map +1 -1
  78. package/dist/browser-launch.js +3 -0
  79. package/dist/browser-launch.js.map +1 -1
  80. package/dist/cli/args.d.ts +141 -0
  81. package/dist/cli/args.d.ts.map +1 -0
  82. package/dist/cli/args.js +167 -0
  83. package/dist/cli/args.js.map +1 -0
  84. package/dist/cli/benchmark-sync.d.ts +9 -0
  85. package/dist/cli/benchmark-sync.d.ts.map +1 -0
  86. package/dist/cli/benchmark-sync.js +43 -0
  87. package/dist/cli/benchmark-sync.js.map +1 -0
  88. package/dist/cli/build-config.d.ts +11 -0
  89. package/dist/cli/build-config.d.ts.map +1 -0
  90. package/dist/cli/build-config.js +355 -0
  91. package/dist/cli/build-config.js.map +1 -0
  92. package/dist/cli/commands/auth.d.ts +3 -0
  93. package/dist/cli/commands/auth.d.ts.map +1 -0
  94. package/dist/cli/commands/auth.js +36 -0
  95. package/dist/cli/commands/auth.js.map +1 -0
  96. package/dist/cli/commands/chrome-debug.d.ts +7 -0
  97. package/dist/cli/commands/chrome-debug.d.ts.map +1 -0
  98. package/dist/cli/commands/chrome-debug.js +11 -0
  99. package/dist/cli/commands/chrome-debug.js.map +1 -0
  100. package/dist/cli/commands/design-audit.d.ts +3 -0
  101. package/dist/cli/commands/design-audit.d.ts.map +1 -0
  102. package/dist/cli/commands/design-audit.js +68 -0
  103. package/dist/cli/commands/design-audit.js.map +1 -0
  104. package/dist/cli/commands/preview.d.ts +14 -0
  105. package/dist/cli/commands/preview.d.ts.map +1 -0
  106. package/dist/cli/commands/preview.js +31 -0
  107. package/dist/cli/commands/preview.js.map +1 -0
  108. package/dist/cli/commands/run.d.ts +3 -0
  109. package/dist/cli/commands/run.d.ts.map +1 -0
  110. package/dist/cli/commands/run.js +740 -0
  111. package/dist/cli/commands/run.js.map +1 -0
  112. package/dist/cli/commands/runs.d.ts +8 -0
  113. package/dist/cli/commands/runs.d.ts.map +1 -0
  114. package/dist/cli/commands/runs.js +35 -0
  115. package/dist/cli/commands/runs.js.map +1 -0
  116. package/dist/cli/commands/share.d.ts +10 -0
  117. package/dist/cli/commands/share.d.ts.map +1 -0
  118. package/dist/cli/commands/share.js +32 -0
  119. package/dist/cli/commands/share.js.map +1 -0
  120. package/dist/cli/commands/showcase.d.ts +17 -0
  121. package/dist/cli/commands/showcase.d.ts.map +1 -0
  122. package/dist/cli/commands/showcase.js +20 -0
  123. package/dist/cli/commands/showcase.js.map +1 -0
  124. package/dist/cli/commands/snapshot.d.ts +12 -0
  125. package/dist/cli/commands/snapshot.d.ts.map +1 -0
  126. package/dist/cli/commands/snapshot.js +24 -0
  127. package/dist/cli/commands/snapshot.js.map +1 -0
  128. package/dist/cli/commands/view.d.ts +7 -0
  129. package/dist/cli/commands/view.d.ts.map +1 -0
  130. package/dist/cli/commands/view.js +23 -0
  131. package/dist/cli/commands/view.js.map +1 -0
  132. package/dist/cli/constants.d.ts +6 -0
  133. package/dist/cli/constants.d.ts.map +1 -0
  134. package/dist/cli/constants.js +3 -0
  135. package/dist/cli/constants.js.map +1 -0
  136. package/dist/cli/version.d.ts +7 -0
  137. package/dist/cli/version.d.ts.map +1 -0
  138. package/dist/cli/version.js +16 -0
  139. package/dist/cli/version.js.map +1 -0
  140. package/dist/cli-design-audit.d.ts +44 -36
  141. package/dist/cli-design-audit.d.ts.map +1 -1
  142. package/dist/cli-design-audit.js +137 -1646
  143. package/dist/cli-design-audit.js.map +1 -1
  144. package/dist/cli-jobs.js +2 -1
  145. package/dist/cli-jobs.js.map +1 -1
  146. package/dist/cli.js +66 -1697
  147. package/dist/cli.js.map +1 -1
  148. package/dist/config.d.ts +12 -0
  149. package/dist/config.d.ts.map +1 -1
  150. package/dist/config.js +20 -2
  151. package/dist/config.js.map +1 -1
  152. package/dist/design/audit/evolve/agent.d.ts +23 -0
  153. package/dist/design/audit/evolve/agent.d.ts.map +1 -0
  154. package/dist/design/audit/evolve/agent.js +273 -0
  155. package/dist/design/audit/evolve/agent.js.map +1 -0
  156. package/dist/design/audit/evolve/css.d.ts +10 -0
  157. package/dist/design/audit/evolve/css.d.ts.map +1 -0
  158. package/dist/design/audit/evolve/css.js +206 -0
  159. package/dist/design/audit/evolve/css.js.map +1 -0
  160. package/dist/design/audit/evolve/index.d.ts +13 -0
  161. package/dist/design/audit/evolve/index.d.ts.map +1 -0
  162. package/dist/design/audit/evolve/index.js +12 -0
  163. package/dist/design/audit/evolve/index.js.map +1 -0
  164. package/dist/design/audit/evolve/report.d.ts +3 -0
  165. package/dist/design/audit/evolve/report.d.ts.map +1 -0
  166. package/dist/design/audit/evolve/report.js +45 -0
  167. package/dist/design/audit/evolve/report.js.map +1 -0
  168. package/dist/design/audit/evolve/types.d.ts +14 -0
  169. package/dist/design/audit/evolve/types.d.ts.map +1 -0
  170. package/dist/design/audit/evolve/types.js +2 -0
  171. package/dist/design/audit/evolve/types.js.map +1 -0
  172. package/dist/design/audit/pipeline.d.ts +12 -0
  173. package/dist/design/audit/pipeline.d.ts.map +1 -1
  174. package/dist/design/audit/pipeline.js +43 -27
  175. package/dist/design/audit/pipeline.js.map +1 -1
  176. package/dist/design/audit/reference/artifact/build.d.ts +33 -0
  177. package/dist/design/audit/reference/artifact/build.d.ts.map +1 -0
  178. package/dist/design/audit/reference/artifact/build.js +64 -0
  179. package/dist/design/audit/reference/artifact/build.js.map +1 -0
  180. package/dist/design/audit/reference/artifact/render.d.ts +39 -0
  181. package/dist/design/audit/reference/artifact/render.d.ts.map +1 -0
  182. package/dist/design/audit/reference/artifact/render.js +213 -0
  183. package/dist/design/audit/reference/artifact/render.js.map +1 -0
  184. package/dist/design/audit/reference/artifact/text.d.ts +11 -0
  185. package/dist/design/audit/reference/artifact/text.d.ts.map +1 -0
  186. package/dist/design/audit/reference/artifact/text.js +20 -0
  187. package/dist/design/audit/reference/artifact/text.js.map +1 -0
  188. package/dist/design/audit/reference/artifact/to-findings.d.ts +57 -0
  189. package/dist/design/audit/reference/artifact/to-findings.d.ts.map +1 -0
  190. package/dist/design/audit/reference/artifact/to-findings.js +314 -0
  191. package/dist/design/audit/reference/artifact/to-findings.js.map +1 -0
  192. package/dist/design/audit/reference/config.d.ts +50 -0
  193. package/dist/design/audit/reference/config.d.ts.map +1 -0
  194. package/dist/design/audit/reference/config.js +108 -0
  195. package/dist/design/audit/reference/config.js.map +1 -0
  196. package/dist/design/audit/reference/contracts.d.ts +1030 -0
  197. package/dist/design/audit/reference/contracts.d.ts.map +1 -0
  198. package/dist/design/audit/reference/contracts.js +28 -0
  199. package/dist/design/audit/reference/contracts.js.map +1 -0
  200. package/dist/design/audit/reference/corpus/build.d.ts +115 -0
  201. package/dist/design/audit/reference/corpus/build.d.ts.map +1 -0
  202. package/dist/design/audit/reference/corpus/build.js +152 -0
  203. package/dist/design/audit/reference/corpus/build.js.map +1 -0
  204. package/dist/design/audit/reference/corpus/schema.d.ts +33 -0
  205. package/dist/design/audit/reference/corpus/schema.d.ts.map +1 -0
  206. package/dist/design/audit/reference/corpus/schema.js +249 -0
  207. package/dist/design/audit/reference/corpus/schema.js.map +1 -0
  208. package/dist/design/audit/reference/corpus/store.d.ts +26 -0
  209. package/dist/design/audit/reference/corpus/store.d.ts.map +1 -0
  210. package/dist/design/audit/reference/corpus/store.js +104 -0
  211. package/dist/design/audit/reference/corpus/store.js.map +1 -0
  212. package/dist/design/audit/reference/dna/delta.d.ts +21 -0
  213. package/dist/design/audit/reference/dna/delta.d.ts.map +1 -0
  214. package/dist/design/audit/reference/dna/delta.js +126 -0
  215. package/dist/design/audit/reference/dna/delta.js.map +1 -0
  216. package/dist/design/audit/reference/dna/derive.d.ts +31 -0
  217. package/dist/design/audit/reference/dna/derive.d.ts.map +1 -0
  218. package/dist/design/audit/reference/dna/derive.js +381 -0
  219. package/dist/design/audit/reference/dna/derive.js.map +1 -0
  220. package/dist/design/audit/reference/dna/descriptor.d.ts +36 -0
  221. package/dist/design/audit/reference/dna/descriptor.d.ts.map +1 -0
  222. package/dist/design/audit/reference/dna/descriptor.js +209 -0
  223. package/dist/design/audit/reference/dna/descriptor.js.map +1 -0
  224. package/dist/design/audit/reference/dna/page-adapter.d.ts +17 -0
  225. package/dist/design/audit/reference/dna/page-adapter.d.ts.map +1 -0
  226. package/dist/design/audit/reference/dna/page-adapter.js +35 -0
  227. package/dist/design/audit/reference/dna/page-adapter.js.map +1 -0
  228. package/dist/design/audit/reference/dna/scroll-capture.d.ts +93 -0
  229. package/dist/design/audit/reference/dna/scroll-capture.d.ts.map +1 -0
  230. package/dist/design/audit/reference/dna/scroll-capture.js +374 -0
  231. package/dist/design/audit/reference/dna/scroll-capture.js.map +1 -0
  232. package/dist/design/audit/reference/engine/budget.d.ts +63 -0
  233. package/dist/design/audit/reference/engine/budget.d.ts.map +1 -0
  234. package/dist/design/audit/reference/engine/budget.js +110 -0
  235. package/dist/design/audit/reference/engine/budget.js.map +1 -0
  236. package/dist/design/audit/reference/engine/core.d.ts +32 -0
  237. package/dist/design/audit/reference/engine/core.d.ts.map +1 -0
  238. package/dist/design/audit/reference/engine/core.js +261 -0
  239. package/dist/design/audit/reference/engine/core.js.map +1 -0
  240. package/dist/design/audit/reference/engine/guard.d.ts +43 -0
  241. package/dist/design/audit/reference/engine/guard.d.ts.map +1 -0
  242. package/dist/design/audit/reference/engine/guard.js +43 -0
  243. package/dist/design/audit/reference/engine/guard.js.map +1 -0
  244. package/dist/design/audit/reference/engine/score-core.d.ts +48 -0
  245. package/dist/design/audit/reference/engine/score-core.d.ts.map +1 -0
  246. package/dist/design/audit/reference/engine/score-core.js +134 -0
  247. package/dist/design/audit/reference/engine/score-core.js.map +1 -0
  248. package/dist/design/audit/reference/engine/wiring.d.ts +35 -0
  249. package/dist/design/audit/reference/engine/wiring.d.ts.map +1 -0
  250. package/dist/design/audit/reference/engine/wiring.js +80 -0
  251. package/dist/design/audit/reference/engine/wiring.js.map +1 -0
  252. package/dist/design/audit/reference/eval/taste-core.d.ts +77 -0
  253. package/dist/design/audit/reference/eval/taste-core.d.ts.map +1 -0
  254. package/dist/design/audit/reference/eval/taste-core.js +95 -0
  255. package/dist/design/audit/reference/eval/taste-core.js.map +1 -0
  256. package/dist/design/audit/reference/generate/generator.d.ts +49 -0
  257. package/dist/design/audit/reference/generate/generator.d.ts.map +1 -0
  258. package/dist/design/audit/reference/generate/generator.js +100 -0
  259. package/dist/design/audit/reference/generate/generator.js.map +1 -0
  260. package/dist/design/audit/reference/generate/parse.d.ts +28 -0
  261. package/dist/design/audit/reference/generate/parse.d.ts.map +1 -0
  262. package/dist/design/audit/reference/generate/parse.js +220 -0
  263. package/dist/design/audit/reference/generate/parse.js.map +1 -0
  264. package/dist/design/audit/reference/generate/prompt.d.ts +36 -0
  265. package/dist/design/audit/reference/generate/prompt.d.ts.map +1 -0
  266. package/dist/design/audit/reference/generate/prompt.js +172 -0
  267. package/dist/design/audit/reference/generate/prompt.js.map +1 -0
  268. package/dist/design/audit/reference/index.d.ts +26 -0
  269. package/dist/design/audit/reference/index.d.ts.map +1 -0
  270. package/dist/design/audit/reference/index.js +31 -0
  271. package/dist/design/audit/reference/index.js.map +1 -0
  272. package/dist/design/audit/reference/judge/image-clamp.d.ts +34 -0
  273. package/dist/design/audit/reference/judge/image-clamp.d.ts.map +1 -0
  274. package/dist/design/audit/reference/judge/image-clamp.js +88 -0
  275. package/dist/design/audit/reference/judge/image-clamp.js.map +1 -0
  276. package/dist/design/audit/reference/judge/pairwise.d.ts +34 -0
  277. package/dist/design/audit/reference/judge/pairwise.d.ts.map +1 -0
  278. package/dist/design/audit/reference/judge/pairwise.js +105 -0
  279. package/dist/design/audit/reference/judge/pairwise.js.map +1 -0
  280. package/dist/design/audit/reference/judge/parse.d.ts +31 -0
  281. package/dist/design/audit/reference/judge/parse.d.ts.map +1 -0
  282. package/dist/design/audit/reference/judge/parse.js +113 -0
  283. package/dist/design/audit/reference/judge/parse.js.map +1 -0
  284. package/dist/design/audit/reference/judge/prompt.d.ts +38 -0
  285. package/dist/design/audit/reference/judge/prompt.d.ts.map +1 -0
  286. package/dist/design/audit/reference/judge/prompt.js +123 -0
  287. package/dist/design/audit/reference/judge/prompt.js.map +1 -0
  288. package/dist/design/audit/reference/judge/quality.d.ts +28 -0
  289. package/dist/design/audit/reference/judge/quality.d.ts.map +1 -0
  290. package/dist/design/audit/reference/judge/quality.js +62 -0
  291. package/dist/design/audit/reference/judge/quality.js.map +1 -0
  292. package/dist/design/audit/reference/judge/rank.d.ts +41 -0
  293. package/dist/design/audit/reference/judge/rank.d.ts.map +1 -0
  294. package/dist/design/audit/reference/judge/rank.js +196 -0
  295. package/dist/design/audit/reference/judge/rank.js.map +1 -0
  296. package/dist/design/audit/reference/judge/text-judge.d.ts +31 -0
  297. package/dist/design/audit/reference/judge/text-judge.d.ts.map +1 -0
  298. package/dist/design/audit/reference/judge/text-judge.js +43 -0
  299. package/dist/design/audit/reference/judge/text-judge.js.map +1 -0
  300. package/dist/design/audit/reference/judge/vision-judge.d.ts +59 -0
  301. package/dist/design/audit/reference/judge/vision-judge.d.ts.map +1 -0
  302. package/dist/design/audit/reference/judge/vision-judge.js +150 -0
  303. package/dist/design/audit/reference/judge/vision-judge.js.map +1 -0
  304. package/dist/design/audit/reference/judge/vision-model.d.ts +65 -0
  305. package/dist/design/audit/reference/judge/vision-model.d.ts.map +1 -0
  306. package/dist/design/audit/reference/judge/vision-model.js +110 -0
  307. package/dist/design/audit/reference/judge/vision-model.js.map +1 -0
  308. package/dist/design/audit/reference/pipeline/evaluate-reference.d.ts +68 -0
  309. package/dist/design/audit/reference/pipeline/evaluate-reference.d.ts.map +1 -0
  310. package/dist/design/audit/reference/pipeline/evaluate-reference.js +52 -0
  311. package/dist/design/audit/reference/pipeline/evaluate-reference.js.map +1 -0
  312. package/dist/design/audit/reference/reference-context.d.ts +31 -0
  313. package/dist/design/audit/reference/reference-context.d.ts.map +1 -0
  314. package/dist/design/audit/reference/reference-context.js +73 -0
  315. package/dist/design/audit/reference/reference-context.js.map +1 -0
  316. package/dist/design/audit/reference/retrieval/embedding-hash.d.ts +30 -0
  317. package/dist/design/audit/reference/retrieval/embedding-hash.d.ts.map +1 -0
  318. package/dist/design/audit/reference/retrieval/embedding-hash.js +87 -0
  319. package/dist/design/audit/reference/retrieval/embedding-hash.js.map +1 -0
  320. package/dist/design/audit/reference/retrieval/embedding-openai.d.ts +38 -0
  321. package/dist/design/audit/reference/retrieval/embedding-openai.d.ts.map +1 -0
  322. package/dist/design/audit/reference/retrieval/embedding-openai.js +73 -0
  323. package/dist/design/audit/reference/retrieval/embedding-openai.js.map +1 -0
  324. package/dist/design/audit/reference/retrieval/matcher.d.ts +34 -0
  325. package/dist/design/audit/reference/retrieval/matcher.d.ts.map +1 -0
  326. package/dist/design/audit/reference/retrieval/matcher.js +107 -0
  327. package/dist/design/audit/reference/retrieval/matcher.js.map +1 -0
  328. package/dist/design/audit/reference/run.d.ts +59 -0
  329. package/dist/design/audit/reference/run.d.ts.map +1 -0
  330. package/dist/design/audit/reference/run.js +99 -0
  331. package/dist/design/audit/reference/run.js.map +1 -0
  332. package/dist/design/audit/report.d.ts +35 -0
  333. package/dist/design/audit/report.d.ts.map +1 -0
  334. package/dist/design/audit/report.js +195 -0
  335. package/dist/design/audit/report.js.map +1 -0
  336. package/dist/design/audit/tokens/extract.d.ts +71 -0
  337. package/dist/design/audit/tokens/extract.d.ts.map +1 -0
  338. package/dist/design/audit/tokens/extract.js +1034 -0
  339. package/dist/design/audit/tokens/extract.js.map +1 -0
  340. package/dist/design/audit/types.d.ts +8 -0
  341. package/dist/design/audit/types.d.ts.map +1 -1
  342. package/dist/design/compare.d.ts.map +1 -1
  343. package/dist/design/compare.js +2 -6
  344. package/dist/design/compare.js.map +1 -1
  345. package/dist/design/cookie-consent.d.ts +3 -0
  346. package/dist/design/cookie-consent.d.ts.map +1 -0
  347. package/dist/design/cookie-consent.js +26 -0
  348. package/dist/design/cookie-consent.js.map +1 -0
  349. package/dist/design/viewports.d.ts +18 -0
  350. package/dist/design/viewports.d.ts.map +1 -0
  351. package/dist/design/viewports.js +10 -0
  352. package/dist/design/viewports.js.map +1 -0
  353. package/dist/index.d.ts +2 -2
  354. package/dist/index.d.ts.map +1 -1
  355. package/dist/index.js +1 -1
  356. package/dist/index.js.map +1 -1
  357. package/dist/memory/store.d.ts +19 -1
  358. package/dist/memory/store.d.ts.map +1 -1
  359. package/dist/memory/store.js +47 -0
  360. package/dist/memory/store.js.map +1 -1
  361. package/dist/provider-defaults.d.ts +18 -0
  362. package/dist/provider-defaults.d.ts.map +1 -1
  363. package/dist/provider-defaults.js +33 -0
  364. package/dist/provider-defaults.js.map +1 -1
  365. package/dist/runner/allowed-domains.d.ts +11 -0
  366. package/dist/runner/allowed-domains.d.ts.map +1 -0
  367. package/dist/runner/allowed-domains.js +14 -0
  368. package/dist/runner/allowed-domains.js.map +1 -0
  369. package/dist/runner/batch-fill.d.ts +28 -0
  370. package/dist/runner/batch-fill.d.ts.map +1 -0
  371. package/dist/runner/batch-fill.js +80 -0
  372. package/dist/runner/batch-fill.js.map +1 -0
  373. package/dist/runner/completion-policy.d.ts +26 -0
  374. package/dist/runner/completion-policy.d.ts.map +1 -0
  375. package/dist/runner/completion-policy.js +76 -0
  376. package/dist/runner/completion-policy.js.map +1 -0
  377. package/dist/runner/constants.d.ts +14 -0
  378. package/dist/runner/constants.d.ts.map +1 -0
  379. package/dist/runner/constants.js +23 -0
  380. package/dist/runner/constants.js.map +1 -0
  381. package/dist/runner/decision-screenshot.d.ts +24 -0
  382. package/dist/runner/decision-screenshot.d.ts.map +1 -0
  383. package/dist/runner/decision-screenshot.js +23 -0
  384. package/dist/runner/decision-screenshot.js.map +1 -0
  385. package/dist/runner/domain-boundary.d.ts +36 -0
  386. package/dist/runner/domain-boundary.d.ts.map +1 -0
  387. package/dist/runner/domain-boundary.js +81 -0
  388. package/dist/runner/domain-boundary.js.map +1 -0
  389. package/dist/runner/effect-verify.d.ts +28 -0
  390. package/dist/runner/effect-verify.d.ts.map +1 -0
  391. package/dist/runner/effect-verify.js +42 -0
  392. package/dist/runner/effect-verify.js.map +1 -0
  393. package/dist/runner/execute-plan.d.ts +58 -0
  394. package/dist/runner/execute-plan.d.ts.map +1 -0
  395. package/dist/runner/execute-plan.js +426 -0
  396. package/dist/runner/execute-plan.js.map +1 -0
  397. package/dist/runner/max-turns-extension.d.ts +19 -0
  398. package/dist/runner/max-turns-extension.d.ts.map +1 -0
  399. package/dist/runner/max-turns-extension.js +25 -0
  400. package/dist/runner/max-turns-extension.js.map +1 -0
  401. package/dist/runner/micro-plan.d.ts +11 -0
  402. package/dist/runner/micro-plan.d.ts.map +1 -0
  403. package/dist/runner/micro-plan.js +29 -0
  404. package/dist/runner/micro-plan.js.map +1 -0
  405. package/dist/runner/prompt-snippets.d.ts +5 -0
  406. package/dist/runner/prompt-snippets.d.ts.map +1 -0
  407. package/dist/runner/prompt-snippets.js +13 -0
  408. package/dist/runner/prompt-snippets.js.map +1 -0
  409. package/dist/runner/replay/contracts.d.ts +300 -0
  410. package/dist/runner/replay/contracts.d.ts.map +1 -0
  411. package/dist/runner/replay/contracts.js +42 -0
  412. package/dist/runner/replay/contracts.js.map +1 -0
  413. package/dist/runner/replay/controller.d.ts +27 -0
  414. package/dist/runner/replay/controller.d.ts.map +1 -0
  415. package/dist/runner/replay/controller.js +197 -0
  416. package/dist/runner/replay/controller.js.map +1 -0
  417. package/dist/runner/replay/guard.d.ts +28 -0
  418. package/dist/runner/replay/guard.d.ts.map +1 -0
  419. package/dist/runner/replay/guard.js +100 -0
  420. package/dist/runner/replay/guard.js.map +1 -0
  421. package/dist/runner/runner.d.ts +44 -51
  422. package/dist/runner/runner.d.ts.map +1 -1
  423. package/dist/runner/runner.js +155 -851
  424. package/dist/runner/runner.js.map +1 -1
  425. package/dist/runner/scout-feedback.d.ts +51 -0
  426. package/dist/runner/scout-feedback.d.ts.map +1 -0
  427. package/dist/runner/scout-feedback.js +149 -0
  428. package/dist/runner/scout-feedback.js.map +1 -0
  429. package/dist/skills/macro-loader.d.ts +1 -1
  430. package/dist/test-runner.d.ts.map +1 -1
  431. package/dist/test-runner.js +27 -1
  432. package/dist/test-runner.js.map +1 -1
  433. package/dist/types/actions.d.ts +241 -0
  434. package/dist/types/actions.d.ts.map +1 -0
  435. package/dist/types/actions.js +5 -0
  436. package/dist/types/actions.js.map +1 -0
  437. package/dist/types/config.d.ts +211 -0
  438. package/dist/types/config.d.ts.map +1 -0
  439. package/dist/types/config.js +2 -0
  440. package/dist/types/config.js.map +1 -0
  441. package/dist/types/design-audit.d.ts +92 -0
  442. package/dist/types/design-audit.d.ts.map +1 -0
  443. package/dist/types/design-audit.js +5 -0
  444. package/dist/types/design-audit.js.map +1 -0
  445. package/dist/types/design-tokens.d.ts +138 -0
  446. package/dist/types/design-tokens.d.ts.map +1 -0
  447. package/dist/types/design-tokens.js +5 -0
  448. package/dist/types/design-tokens.js.map +1 -0
  449. package/dist/types/page.d.ts +16 -0
  450. package/dist/types/page.d.ts.map +1 -0
  451. package/dist/types/page.js +2 -0
  452. package/dist/types/page.js.map +1 -0
  453. package/dist/types/plan.d.ts +50 -0
  454. package/dist/types/plan.d.ts.map +1 -0
  455. package/dist/types/plan.js +2 -0
  456. package/dist/types/plan.js.map +1 -0
  457. package/dist/types/preview.d.ts +9 -0
  458. package/dist/types/preview.d.ts.map +1 -0
  459. package/dist/types/preview.js +5 -0
  460. package/dist/types/preview.js.map +1 -0
  461. package/dist/types/result.d.ts +62 -0
  462. package/dist/types/result.d.ts.map +1 -0
  463. package/dist/types/result.js +2 -0
  464. package/dist/types/result.js.map +1 -0
  465. package/dist/types/scenario.d.ts +20 -0
  466. package/dist/types/scenario.d.ts.map +1 -0
  467. package/dist/types/scenario.js +5 -0
  468. package/dist/types/scenario.js.map +1 -0
  469. package/dist/types/test-runner.d.ts +145 -0
  470. package/dist/types/test-runner.d.ts.map +1 -0
  471. package/dist/types/test-runner.js +10 -0
  472. package/dist/types/test-runner.js.map +1 -0
  473. package/dist/types/trajectory.d.ts +38 -0
  474. package/dist/types/trajectory.d.ts.map +1 -0
  475. package/dist/types/trajectory.js +2 -0
  476. package/dist/types/trajectory.js.map +1 -0
  477. package/dist/types/turn.d.ts +50 -0
  478. package/dist/types/turn.d.ts.map +1 -0
  479. package/dist/types/turn.js +2 -0
  480. package/dist/types/turn.js.map +1 -0
  481. package/dist/types.d.ts +16 -1017
  482. package/dist/types.d.ts.map +1 -1
  483. package/dist/types.js +15 -8
  484. package/dist/types.js.map +1 -1
  485. package/dist/wallet/rpc-interception.d.ts +15 -0
  486. package/dist/wallet/rpc-interception.d.ts.map +1 -0
  487. package/dist/wallet/rpc-interception.js +95 -0
  488. package/dist/wallet/rpc-interception.js.map +1 -0
  489. package/package.json +23 -5
@@ -0,0 +1,26 @@
1
+ /**
2
+ * File-backed corpus store — the ONLY module that touches the corpus directory.
3
+ * Implements the full `CorpusStore` (`CorpusReader` + `CorpusWriter`) as a
4
+ * JSON-record directory: one `<id>.json` exemplar per file plus a `screenshots/`
5
+ * sidecar. The audit hot path receives only the `CorpusReader` half (so it can
6
+ * never reach `upsert`/`saveScreenshot`); offline `corpus/build` holds the writer.
7
+ *
8
+ * Fail-closed by construction:
9
+ * - a missing corpus dir loads as an EMPTY corpus, never an error or a fabricated
10
+ * row, and `get` returns `null` on a miss;
11
+ * - a record that fails `parseExemplar` (corrupt / hand-edited / foreign) is
12
+ * skipped on load rather than poisoning the whole corpus — one bad row never
13
+ * nukes retrieval, and nothing is ever invented to fill the gap;
14
+ * - writes are atomic-ish (temp file + `rename`) and validate through the schema
15
+ * BEFORE landing, so a malformed exemplar can never reach disk;
16
+ * - ids are constrained to a filename-safe charset, so neither `get` nor a write
17
+ * can escape the corpus dir via path traversal.
18
+ */
19
+ import type { CorpusStore } from '../contracts.js';
20
+ /**
21
+ * Build a file-backed `CorpusStore` rooted at `dir`. The returned object's
22
+ * `CorpusReader` half is what the engine consumes; the `CorpusWriter` half is for
23
+ * the offline authoring path only.
24
+ */
25
+ export declare function createFileCorpusStore(dir: string): CorpusStore;
26
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../../src/design/audit/reference/corpus/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,iBAAiB,CAAA;AAW5D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAoE9D"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * File-backed corpus store — the ONLY module that touches the corpus directory.
3
+ * Implements the full `CorpusStore` (`CorpusReader` + `CorpusWriter`) as a
4
+ * JSON-record directory: one `<id>.json` exemplar per file plus a `screenshots/`
5
+ * sidecar. The audit hot path receives only the `CorpusReader` half (so it can
6
+ * never reach `upsert`/`saveScreenshot`); offline `corpus/build` holds the writer.
7
+ *
8
+ * Fail-closed by construction:
9
+ * - a missing corpus dir loads as an EMPTY corpus, never an error or a fabricated
10
+ * row, and `get` returns `null` on a miss;
11
+ * - a record that fails `parseExemplar` (corrupt / hand-edited / foreign) is
12
+ * skipped on load rather than poisoning the whole corpus — one bad row never
13
+ * nukes retrieval, and nothing is ever invented to fill the gap;
14
+ * - writes are atomic-ish (temp file + `rename`) and validate through the schema
15
+ * BEFORE landing, so a malformed exemplar can never reach disk;
16
+ * - ids are constrained to a filename-safe charset, so neither `get` nor a write
17
+ * can escape the corpus dir via path traversal.
18
+ */
19
+ import { promises as fs } from 'node:fs';
20
+ import path from 'node:path';
21
+ import { parseExemplar, serializeExemplar } from './schema.js';
22
+ const RECORD_EXT = '.json';
23
+ const SCREENSHOT_DIR = 'screenshots';
24
+ // Exemplar ids are slugs (`[a-z0-9-]`); this guard keeps `get`/write inside the
25
+ // corpus dir even when handed a hostile id, blocking `..`/separator traversal.
26
+ const SAFE_ID = /^[A-Za-z0-9_-]+$/;
27
+ const isSafeId = (id) => SAFE_ID.test(id);
28
+ /**
29
+ * Build a file-backed `CorpusStore` rooted at `dir`. The returned object's
30
+ * `CorpusReader` half is what the engine consumes; the `CorpusWriter` half is for
31
+ * the offline authoring path only.
32
+ */
33
+ export function createFileCorpusStore(dir) {
34
+ const recordPath = (id) => path.join(dir, `${id}${RECORD_EXT}`);
35
+ async function readRecord(file) {
36
+ let text;
37
+ try {
38
+ text = await fs.readFile(file, 'utf8');
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ try {
44
+ return parseExemplar(JSON.parse(text));
45
+ }
46
+ catch {
47
+ // Corrupt / foreign record — skip it rather than fail the whole load.
48
+ return null;
49
+ }
50
+ }
51
+ return {
52
+ async load() {
53
+ let entries;
54
+ try {
55
+ entries = await fs.readdir(dir);
56
+ }
57
+ catch {
58
+ return [];
59
+ }
60
+ const out = [];
61
+ // Sort by filename for a deterministic load order across machines.
62
+ for (const name of entries.filter((n) => n.endsWith(RECORD_EXT)).sort()) {
63
+ const exemplar = await readRecord(path.join(dir, name));
64
+ if (exemplar)
65
+ out.push(exemplar);
66
+ }
67
+ return out;
68
+ },
69
+ async get(id) {
70
+ if (!isSafeId(id))
71
+ return null;
72
+ return readRecord(recordPath(id));
73
+ },
74
+ resolveScreenshot(exemplar) {
75
+ const p = exemplar.screenshotPath;
76
+ if (!p)
77
+ return '';
78
+ return path.isAbsolute(p) ? p : path.resolve(dir, p);
79
+ },
80
+ async upsert(exemplar) {
81
+ // Validate + normalise at the IO boundary: malformed exemplars never land.
82
+ const valid = parseExemplar(exemplar);
83
+ if (!isSafeId(valid.id))
84
+ throw new Error(`corpus upsert: unsafe exemplar id '${valid.id}'`);
85
+ await fs.mkdir(dir, { recursive: true });
86
+ const final = recordPath(valid.id);
87
+ const tmp = `${final}.tmp-${process.pid}-${Date.now()}`;
88
+ await fs.writeFile(tmp, serializeExemplar(valid), 'utf8');
89
+ await fs.rename(tmp, final);
90
+ },
91
+ async saveScreenshot(id, png) {
92
+ if (!isSafeId(id))
93
+ throw new Error(`corpus saveScreenshot: unsafe exemplar id '${id}'`);
94
+ const rel = path.join(SCREENSHOT_DIR, `${id}.png`);
95
+ const abs = path.join(dir, rel);
96
+ await fs.mkdir(path.dirname(abs), { recursive: true });
97
+ await fs.writeFile(abs, png);
98
+ // Return the corpus-relative path so it stores portably in the exemplar
99
+ // record; `resolveScreenshot` turns it back into an absolute path.
100
+ return rel;
101
+ },
102
+ };
103
+ }
104
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../../src/design/audit/reference/corpus/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Structural delta between two `DesignDNA`s — PURE, at DNA altitude only.
3
+ *
4
+ * `dnaDelta(current, target)` describes the transformation FROM the audited page
5
+ * (`current`) TO a reference/winner (`target`): what the target adds, drops or
6
+ * reshapes relative to the page. It diffs ONLY normalised `DesignDNA` fields
7
+ * (colour roles, type scale, spacing rhythm, component economy) — it never diffs
8
+ * raw `DesignTokens` (a different altitude owned by `compare.ts`). The result
9
+ * grounds judge feedback and mints DNA-gap findings.
10
+ *
11
+ * No IO, no LLM; identical inputs always yield a deeply-equal delta.
12
+ */
13
+ import type { DesignDNA, DnaDelta } from '../contracts.js';
14
+ /**
15
+ * Compute the DNA-altitude delta from `current` (audited page) to `target`
16
+ * (reference/winner). Component deltas are signed `target − current`: a NEGATIVE
17
+ * value means the current page uses MORE of that pattern than the reference
18
+ * (a consolidation opportunity); positive means fewer.
19
+ */
20
+ export declare function dnaDelta(current: DesignDNA, target: DesignDNA): DnaDelta;
21
+ //# sourceMappingURL=delta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../../../../src/design/audit/reference/dna/delta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAa,MAAM,iBAAiB,CAAA;AAkFrE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,CAmBxE"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Structural delta between two `DesignDNA`s — PURE, at DNA altitude only.
3
+ *
4
+ * `dnaDelta(current, target)` describes the transformation FROM the audited page
5
+ * (`current`) TO a reference/winner (`target`): what the target adds, drops or
6
+ * reshapes relative to the page. It diffs ONLY normalised `DesignDNA` fields
7
+ * (colour roles, type scale, spacing rhythm, component economy) — it never diffs
8
+ * raw `DesignTokens` (a different altitude owned by `compare.ts`). The result
9
+ * grounds judge feedback and mints DNA-gap findings.
10
+ *
11
+ * No IO, no LLM; identical inputs always yield a deeply-equal delta.
12
+ */
13
+ const round2 = (n) => Math.round(n * 100) / 100;
14
+ const COLOR_ROLE_ORDER = ['primary', 'secondary', 'accent', 'neutral', 'background', 'border'];
15
+ /** A colour role is "present" when it carries at least one hex. */
16
+ function presentRoles(dna) {
17
+ const set = new Set();
18
+ for (const role of COLOR_ROLE_ORDER) {
19
+ if (dna.color.roles[role].length > 0)
20
+ set.add(role);
21
+ }
22
+ return set;
23
+ }
24
+ /** Whether two role hex sets differ, order-independent. */
25
+ function hexSetChanged(a, b) {
26
+ if (a.length !== b.length)
27
+ return true;
28
+ const sb = new Set(b);
29
+ return a.some((hex) => !sb.has(hex));
30
+ }
31
+ function diffColor(current, target) {
32
+ const cur = presentRoles(current);
33
+ const tgt = presentRoles(target);
34
+ const added = [];
35
+ const removed = [];
36
+ const changed = [];
37
+ for (const role of COLOR_ROLE_ORDER) {
38
+ const inCur = cur.has(role);
39
+ const inTgt = tgt.has(role);
40
+ if (inTgt && !inCur)
41
+ added.push(role);
42
+ else if (inCur && !inTgt)
43
+ removed.push(role);
44
+ else if (inCur && inTgt && hexSetChanged(current.color.roles[role], target.color.roles[role]))
45
+ changed.push(role);
46
+ }
47
+ return { added, removed, changed };
48
+ }
49
+ function diffType(current, target) {
50
+ const curSizes = new Set(current.type.steps.map((s) => s.fontSizePx));
51
+ const tgtSizes = new Set(target.type.steps.map((s) => s.fontSizePx));
52
+ let stepsAdded = 0;
53
+ let stepsRemoved = 0;
54
+ for (const size of tgtSizes)
55
+ if (!curSizes.has(size))
56
+ stepsAdded++;
57
+ for (const size of curSizes)
58
+ if (!tgtSizes.has(size))
59
+ stepsRemoved++;
60
+ let ratioDelta;
61
+ if (current.type.ratio !== undefined && target.type.ratio !== undefined) {
62
+ const d = round2(target.type.ratio - current.type.ratio);
63
+ ratioDelta = Math.abs(d) < 0.005 ? undefined : d;
64
+ }
65
+ return { stepsAdded, stepsRemoved, ratioDelta };
66
+ }
67
+ function buildSummary(delta) {
68
+ const parts = [];
69
+ if (delta.color.added.length)
70
+ parts.push(`+${delta.color.added.length} colour role(s) (${delta.color.added.join(', ')})`);
71
+ if (delta.color.removed.length)
72
+ parts.push(`−${delta.color.removed.length} colour role(s) (${delta.color.removed.join(', ')})`);
73
+ if (delta.color.changed.length)
74
+ parts.push(`recoloured ${delta.color.changed.join(', ')}`);
75
+ const stepBits = [];
76
+ if (delta.type.stepsAdded)
77
+ stepBits.push(`+${delta.type.stepsAdded}`);
78
+ if (delta.type.stepsRemoved)
79
+ stepBits.push(`−${delta.type.stepsRemoved}`);
80
+ if (stepBits.length)
81
+ parts.push(`type scale ${stepBits.join('/')} step(s)`);
82
+ if (delta.type.ratioDelta !== undefined) {
83
+ parts.push(`scale ratio ${delta.type.ratioDelta > 0 ? '+' : ''}${delta.type.ratioDelta}`);
84
+ }
85
+ if (delta.spacing.baseUnitFrom !== delta.spacing.baseUnitTo) {
86
+ parts.push(`grid ${delta.spacing.baseUnitFrom ?? 'none'}→${delta.spacing.baseUnitTo ?? 'none'}px`);
87
+ }
88
+ if (delta.spacing.densityChanged)
89
+ parts.push('spacing density shift');
90
+ const comp = delta.components;
91
+ const compBits = [];
92
+ for (const [kind, n] of Object.entries(comp)) {
93
+ if (n !== 0)
94
+ compBits.push(`${kind} ${n > 0 ? '+' : ''}${n}`);
95
+ }
96
+ if (compBits.length)
97
+ parts.push(`components ${compBits.join(', ')}`);
98
+ return parts.length ? parts.join('; ') : 'no structural difference';
99
+ }
100
+ /**
101
+ * Compute the DNA-altitude delta from `current` (audited page) to `target`
102
+ * (reference/winner). Component deltas are signed `target − current`: a NEGATIVE
103
+ * value means the current page uses MORE of that pattern than the reference
104
+ * (a consolidation opportunity); positive means fewer.
105
+ */
106
+ export function dnaDelta(current, target) {
107
+ const delta = {
108
+ color: diffColor(current, target),
109
+ type: diffType(current, target),
110
+ spacing: {
111
+ baseUnitFrom: current.spacing.baseUnit,
112
+ baseUnitTo: target.spacing.baseUnit,
113
+ densityChanged: current.spacing.density !== target.spacing.density,
114
+ },
115
+ components: {
116
+ buttons: target.components.buttons - current.components.buttons,
117
+ inputs: target.components.inputs - current.components.inputs,
118
+ cards: target.components.cards - current.components.cards,
119
+ nav: target.components.nav - current.components.nav,
120
+ },
121
+ summary: '',
122
+ };
123
+ delta.summary = buildSummary(delta);
124
+ return delta;
125
+ }
126
+ //# sourceMappingURL=delta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delta.js","sourceRoot":"","sources":["../../../../../src/design/audit/reference/dna/delta.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Design-DNA derivation — the PURE core of the reference engine's FOUNDATION.
3
+ *
4
+ * `toDesignDNA` folds an already-extracted `DesignTokens` record (+ optional
5
+ * deterministic `MeasurementBundle`) into the normalised, browser-free
6
+ * `DesignDNA` identity. It performs NO IO, NO LLM, NO browser work and is fully
7
+ * deterministic, so it unit-tests on static token fixtures alone.
8
+ *
9
+ * Altitude discipline (per ARCHITECTURE.md §0): this is a LOSSY normalisation of
10
+ * tokens. It CARRIES THROUGH the already-computed `ColorToken.cluster` and
11
+ * `ViewportTokens.gridBaseUnit` rather than re-clustering colours or re-detecting
12
+ * a grid — those decisions belong to the token extractor, not here.
13
+ */
14
+ import type { DesignTokens, MeasurementBundle, DesignDNA, RawScrollCapture } from '../contracts.js';
15
+ /**
16
+ * Fold a `DesignTokens` record (+ optional measurements + optional live
17
+ * `RawScrollCapture`) into a `DesignDNA`. Pure and deterministic: identical
18
+ * inputs always yield an identical DNA. `scroll` is attached as `motion.scroll`
19
+ * only when supplied — the browser layer captures it; this fold never observes a
20
+ * page.
21
+ */
22
+ export declare function toDesignDNA(tokens: DesignTokens, measurements?: MeasurementBundle, scroll?: RawScrollCapture): DesignDNA;
23
+ /**
24
+ * A budget-bounded, prompt-ready summary of a `DesignDNA`. Deterministic and
25
+ * IO-free; truncates to `maxChars` so an injected reference can never blow the
26
+ * generation/judge token budget.
27
+ */
28
+ export declare function summarizeDNA(dna: DesignDNA, opts?: {
29
+ maxChars?: number;
30
+ }): string;
31
+ //# sourceMappingURL=derive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../../../../src/design/audit/reference/dna/derive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,YAAY,EAEZ,iBAAiB,EACjB,SAAS,EAOT,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AA+NxB;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,EACpB,YAAY,CAAC,EAAE,iBAAiB,EAChC,MAAM,CAAC,EAAE,gBAAgB,GACxB,SAAS,CAyFX;AAiBD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAyBrF"}