@12ui/design 0.2.57 → 0.2.59

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 (456) hide show
  1. package/SKILL.md +1 -1
  2. package/dist/artifact-materializer.d.ts.map +1 -1
  3. package/dist/artifact-materializer.js +4 -1
  4. package/dist/artifact-materializer.js.map +1 -1
  5. package/dist/atomic-file-replace.d.ts +21 -0
  6. package/dist/atomic-file-replace.d.ts.map +1 -0
  7. package/dist/atomic-file-replace.js +48 -0
  8. package/dist/atomic-file-replace.js.map +1 -0
  9. package/dist/branch-client.d.ts +84 -2
  10. package/dist/branch-client.d.ts.map +1 -1
  11. package/dist/branch-client.js +30 -0
  12. package/dist/branch-client.js.map +1 -1
  13. package/dist/cli-arguments.d.ts.map +1 -1
  14. package/dist/cli-arguments.js +2 -1
  15. package/dist/cli-arguments.js.map +1 -1
  16. package/dist/cli-capabilities.d.ts +1 -1
  17. package/dist/cli-conversion-derivation.d.ts +14 -1
  18. package/dist/cli-conversion-derivation.d.ts.map +1 -1
  19. package/dist/cli-conversion-derivation.js +14 -7
  20. package/dist/cli-conversion-derivation.js.map +1 -1
  21. package/dist/cli-convert-command.d.ts +2 -0
  22. package/dist/cli-convert-command.d.ts.map +1 -1
  23. package/dist/cli-convert-command.js +86 -34
  24. package/dist/cli-convert-command.js.map +1 -1
  25. package/dist/cli-corpus-command.d.ts.map +1 -1
  26. package/dist/cli-corpus-command.js +0 -3
  27. package/dist/cli-corpus-command.js.map +1 -1
  28. package/dist/cli-draft-command.d.ts +16 -0
  29. package/dist/cli-draft-command.d.ts.map +1 -1
  30. package/dist/cli-draft-command.js +47 -9
  31. package/dist/cli-draft-command.js.map +1 -1
  32. package/dist/cli-help/design.d.ts +7 -4
  33. package/dist/cli-help/design.d.ts.map +1 -1
  34. package/dist/cli-help/design.js +20 -7
  35. package/dist/cli-help/design.js.map +1 -1
  36. package/dist/cli-help/index.d.ts +9 -6
  37. package/dist/cli-help/index.d.ts.map +1 -1
  38. package/dist/cli-help/meta.d.ts +2 -2
  39. package/dist/cli-help/meta.d.ts.map +1 -1
  40. package/dist/cli-help/meta.js +4 -1
  41. package/dist/cli-help/meta.js.map +1 -1
  42. package/dist/cli-improve-command.d.ts.map +1 -1
  43. package/dist/cli-improve-command.js +215 -33
  44. package/dist/cli-improve-command.js.map +1 -1
  45. package/dist/cli-redesign-command.d.ts.map +1 -1
  46. package/dist/cli-redesign-command.js +268 -156
  47. package/dist/cli-redesign-command.js.map +1 -1
  48. package/dist/cli-run.d.ts.map +1 -1
  49. package/dist/cli-run.js +13 -3
  50. package/dist/cli-run.js.map +1 -1
  51. package/dist/cli-spend-command.d.ts +12 -1
  52. package/dist/cli-spend-command.d.ts.map +1 -1
  53. package/dist/cli-spend-command.js +94 -2
  54. package/dist/cli-spend-command.js.map +1 -1
  55. package/dist/cli-usage.js +5 -5
  56. package/dist/cli-usage.js.map +1 -1
  57. package/dist/concept-input.d.ts +6 -77
  58. package/dist/concept-input.d.ts.map +1 -1
  59. package/dist/concept-input.js +6 -87
  60. package/dist/concept-input.js.map +1 -1
  61. package/dist/conversion-client.d.ts +106 -17
  62. package/dist/conversion-client.d.ts.map +1 -1
  63. package/dist/conversion-client.js +244 -80
  64. package/dist/conversion-client.js.map +1 -1
  65. package/dist/corpus-client.d.ts.map +1 -1
  66. package/dist/corpus-client.js +0 -3
  67. package/dist/corpus-client.js.map +1 -1
  68. package/dist/draft-identity.d.ts +7 -0
  69. package/dist/draft-identity.d.ts.map +1 -1
  70. package/dist/draft-identity.js +4 -0
  71. package/dist/draft-identity.js.map +1 -1
  72. package/dist/draft-run.d.ts +13 -0
  73. package/dist/draft-run.d.ts.map +1 -1
  74. package/dist/draft-run.js +20 -2
  75. package/dist/draft-run.js.map +1 -1
  76. package/dist/draft-workspace.d.ts +4 -0
  77. package/dist/draft-workspace.d.ts.map +1 -1
  78. package/dist/draft-workspace.js.map +1 -1
  79. package/dist/hosted-draft-identity.d.ts +18 -0
  80. package/dist/hosted-draft-identity.d.ts.map +1 -1
  81. package/dist/hosted-draft-identity.js +8 -0
  82. package/dist/hosted-draft-identity.js.map +1 -1
  83. package/dist/hosted-draft-run.d.ts +15 -0
  84. package/dist/hosted-draft-run.d.ts.map +1 -1
  85. package/dist/hosted-draft-run.js +27 -0
  86. package/dist/hosted-draft-run.js.map +1 -1
  87. package/dist/improve-added-specs.d.ts +12 -40
  88. package/dist/improve-added-specs.d.ts.map +1 -1
  89. package/dist/improve-added-specs.js +63 -172
  90. package/dist/improve-added-specs.js.map +1 -1
  91. package/dist/improve-artifact-writer.d.ts +13 -0
  92. package/dist/improve-artifact-writer.d.ts.map +1 -0
  93. package/dist/improve-artifact-writer.js +27 -0
  94. package/dist/improve-artifact-writer.js.map +1 -0
  95. package/dist/improve-bootstrap-history.d.ts +21 -0
  96. package/dist/improve-bootstrap-history.d.ts.map +1 -0
  97. package/dist/improve-bootstrap-history.js +43 -0
  98. package/dist/improve-bootstrap-history.js.map +1 -0
  99. package/dist/improve-branch-stage.d.ts +10 -0
  100. package/dist/improve-branch-stage.d.ts.map +1 -0
  101. package/dist/improve-branch-stage.js +325 -0
  102. package/dist/improve-branch-stage.js.map +1 -0
  103. package/dist/improve-capture-redirect.d.ts +19 -0
  104. package/dist/improve-capture-redirect.d.ts.map +1 -1
  105. package/dist/improve-capture-redirect.js +18 -1
  106. package/dist/improve-capture-redirect.js.map +1 -1
  107. package/dist/improve-capture-words.d.ts +43 -0
  108. package/dist/improve-capture-words.d.ts.map +1 -0
  109. package/dist/improve-capture-words.js +25 -0
  110. package/dist/improve-capture-words.js.map +1 -0
  111. package/dist/improve-concept.d.ts +6 -20
  112. package/dist/improve-concept.d.ts.map +1 -1
  113. package/dist/improve-concept.js +12 -59
  114. package/dist/improve-concept.js.map +1 -1
  115. package/dist/improve-conversion-attempts.d.ts +12 -4
  116. package/dist/improve-conversion-attempts.d.ts.map +1 -1
  117. package/dist/improve-conversion-attempts.js.map +1 -1
  118. package/dist/improve-conversion-stage.d.ts +13 -2
  119. package/dist/improve-conversion-stage.d.ts.map +1 -1
  120. package/dist/improve-conversion-stage.js +211 -20
  121. package/dist/improve-conversion-stage.js.map +1 -1
  122. package/dist/improve-convert-progress.d.ts +10 -2
  123. package/dist/improve-convert-progress.d.ts.map +1 -1
  124. package/dist/improve-convert-progress.js +7 -3
  125. package/dist/improve-convert-progress.js.map +1 -1
  126. package/dist/improve-convert-resilience.d.ts +60 -13
  127. package/dist/improve-convert-resilience.d.ts.map +1 -1
  128. package/dist/improve-convert-resilience.js +85 -22
  129. package/dist/improve-convert-resilience.js.map +1 -1
  130. package/dist/improve-core/concept-input.d.ts +80 -0
  131. package/dist/improve-core/concept-input.d.ts.map +1 -0
  132. package/dist/improve-core/concept-input.js +92 -0
  133. package/dist/improve-core/concept-input.js.map +1 -0
  134. package/dist/improve-core/improve-added-specs.d.ts +62 -0
  135. package/dist/improve-core/improve-added-specs.d.ts.map +1 -0
  136. package/dist/improve-core/improve-added-specs.js +160 -0
  137. package/dist/improve-core/improve-added-specs.js.map +1 -0
  138. package/dist/improve-core/improve-artifacts.d.ts +18 -0
  139. package/dist/improve-core/improve-artifacts.d.ts.map +1 -0
  140. package/dist/improve-core/improve-artifacts.js +4 -0
  141. package/dist/improve-core/improve-artifacts.js.map +1 -0
  142. package/dist/improve-core/improve-concept.d.ts +11 -0
  143. package/dist/improve-core/improve-concept.d.ts.map +1 -0
  144. package/dist/improve-core/improve-concept.js +190 -0
  145. package/dist/improve-core/improve-concept.js.map +1 -0
  146. package/dist/improve-core/improve-discovery.d.ts +84 -0
  147. package/dist/improve-core/improve-discovery.d.ts.map +1 -0
  148. package/dist/improve-core/improve-discovery.js +154 -0
  149. package/dist/improve-core/improve-discovery.js.map +1 -0
  150. package/dist/improve-core/improve-dom-anchor.d.ts.map +1 -0
  151. package/dist/{improve-dom-anchor.js → improve-core/improve-dom-anchor.js} +2 -0
  152. package/dist/improve-core/improve-dom-anchor.js.map +1 -0
  153. package/dist/improve-core/improve-dom-diff.d.ts +59 -0
  154. package/dist/improve-core/improve-dom-diff.d.ts.map +1 -0
  155. package/dist/improve-core/improve-dom-diff.js +151 -0
  156. package/dist/improve-core/improve-dom-diff.js.map +1 -0
  157. package/dist/improve-core/improve-dom-extract.d.ts.map +1 -0
  158. package/dist/{improve-dom-extract.js → improve-core/improve-dom-extract.js} +2 -0
  159. package/dist/improve-core/improve-dom-extract.js.map +1 -0
  160. package/dist/improve-core/improve-dom-gate.d.ts +49 -0
  161. package/dist/improve-core/improve-dom-gate.d.ts.map +1 -0
  162. package/dist/improve-core/improve-dom-gate.js +99 -0
  163. package/dist/improve-core/improve-dom-gate.js.map +1 -0
  164. package/dist/improve-core/improve-dom-neighbour.d.ts.map +1 -0
  165. package/dist/{improve-dom-neighbour.js → improve-core/improve-dom-neighbour.js} +2 -0
  166. package/dist/improve-core/improve-dom-neighbour.js.map +1 -0
  167. package/dist/improve-core/improve-dom-scale.d.ts.map +1 -0
  168. package/dist/{improve-dom-scale.js → improve-core/improve-dom-scale.js} +2 -0
  169. package/dist/improve-core/improve-dom-scale.js.map +1 -0
  170. package/dist/improve-core/improve-icon-svg.d.ts +29 -0
  171. package/dist/improve-core/improve-icon-svg.d.ts.map +1 -0
  172. package/dist/{improve-icon-svg.js → improve-core/improve-icon-svg.js} +2 -0
  173. package/dist/improve-core/improve-icon-svg.js.map +1 -0
  174. package/dist/improve-core/improve-kit-asset-model.d.ts +177 -0
  175. package/dist/improve-core/improve-kit-asset-model.d.ts.map +1 -0
  176. package/dist/improve-core/improve-kit-asset-model.js +269 -0
  177. package/dist/improve-core/improve-kit-asset-model.js.map +1 -0
  178. package/dist/improve-core/improve-layerdoc-diff.d.ts.map +1 -0
  179. package/dist/{improve-layerdoc-diff.js → improve-core/improve-layerdoc-diff.js} +2 -0
  180. package/dist/improve-core/improve-layerdoc-diff.js.map +1 -0
  181. package/dist/{improve-layerdoc-types.d.ts → improve-core/improve-layerdoc-types.d.ts} +9 -0
  182. package/dist/improve-core/improve-layerdoc-types.d.ts.map +1 -0
  183. package/dist/improve-core/improve-layerdoc-types.js +4 -0
  184. package/dist/improve-core/improve-layerdoc-types.js.map +1 -0
  185. package/dist/improve-core/improve-page-words.d.ts +180 -0
  186. package/dist/improve-core/improve-page-words.d.ts.map +1 -0
  187. package/dist/improve-core/improve-page-words.js +303 -0
  188. package/dist/improve-core/improve-page-words.js.map +1 -0
  189. package/dist/{improve-plan-annotated-render.d.ts → improve-core/improve-plan-annotated-render.d.ts} +6 -1
  190. package/dist/improve-core/improve-plan-annotated-render.d.ts.map +1 -0
  191. package/dist/{improve-plan-annotated-render.js → improve-core/improve-plan-annotated-render.js} +56 -28
  192. package/dist/{improve-plan-annotated-render.js.map → improve-core/improve-plan-annotated-render.js.map} +1 -1
  193. package/dist/improve-core/improve-plan-annotator.d.ts +34 -0
  194. package/dist/improve-core/improve-plan-annotator.d.ts.map +1 -0
  195. package/dist/improve-core/improve-plan-annotator.js +52 -0
  196. package/dist/improve-core/improve-plan-annotator.js.map +1 -0
  197. package/dist/{improve-plan-render.d.ts → improve-core/improve-plan-render.d.ts} +2 -1
  198. package/dist/improve-core/improve-plan-render.d.ts.map +1 -0
  199. package/dist/{improve-plan-render.js → improve-core/improve-plan-render.js} +7 -1
  200. package/dist/improve-core/improve-plan-render.js.map +1 -0
  201. package/dist/improve-core/improve-plan-vector-keep.d.ts +29 -0
  202. package/dist/improve-core/improve-plan-vector-keep.d.ts.map +1 -0
  203. package/dist/improve-core/improve-plan-vector-keep.js +68 -0
  204. package/dist/improve-core/improve-plan-vector-keep.js.map +1 -0
  205. package/dist/{improve-raster-layers-section.d.ts → improve-core/improve-raster-layers-section.d.ts} +9 -1
  206. package/dist/improve-core/improve-raster-layers-section.d.ts.map +1 -0
  207. package/dist/{improve-raster-layers-section.js → improve-core/improve-raster-layers-section.js} +5 -2
  208. package/dist/improve-core/improve-raster-layers-section.js.map +1 -0
  209. package/dist/improve-core/improve-refusal.d.ts +6 -0
  210. package/dist/improve-core/improve-refusal.d.ts.map +1 -0
  211. package/dist/improve-core/improve-refusal.js +27 -0
  212. package/dist/improve-core/improve-refusal.js.map +1 -0
  213. package/dist/improve-core/improve-retain.d.ts +121 -0
  214. package/dist/improve-core/improve-retain.d.ts.map +1 -0
  215. package/dist/improve-core/improve-retain.js +115 -0
  216. package/dist/improve-core/improve-retain.js.map +1 -0
  217. package/dist/improve-core/improve-site-plan.d.ts +75 -0
  218. package/dist/improve-core/improve-site-plan.d.ts.map +1 -0
  219. package/dist/improve-core/improve-site-plan.js +135 -0
  220. package/dist/improve-core/improve-site-plan.js.map +1 -0
  221. package/dist/improve-core/improve-site-shell.d.ts +56 -0
  222. package/dist/improve-core/improve-site-shell.d.ts.map +1 -0
  223. package/dist/improve-core/improve-site-shell.js +152 -0
  224. package/dist/improve-core/improve-site-shell.js.map +1 -0
  225. package/dist/improve-core/improve-site-tokens.d.ts +44 -0
  226. package/dist/improve-core/improve-site-tokens.d.ts.map +1 -0
  227. package/dist/improve-core/improve-site-tokens.js +87 -0
  228. package/dist/improve-core/improve-site-tokens.js.map +1 -0
  229. package/dist/improve-core/improve-source-hints.d.ts +25 -0
  230. package/dist/improve-core/improve-source-hints.d.ts.map +1 -0
  231. package/dist/improve-core/improve-source-hints.js +17 -0
  232. package/dist/improve-core/improve-source-hints.js.map +1 -0
  233. package/dist/improve-core/improve-token-patch.d.ts.map +1 -0
  234. package/dist/{improve-token-patch.js → improve-core/improve-token-patch.js} +2 -0
  235. package/dist/improve-core/improve-token-patch.js.map +1 -0
  236. package/dist/improve-core/index.d.ts +47 -0
  237. package/dist/improve-core/index.d.ts.map +1 -0
  238. package/dist/improve-core/index.js +49 -0
  239. package/dist/improve-core/index.js.map +1 -0
  240. package/dist/improve-delivery-stages.d.ts +6 -0
  241. package/dist/improve-delivery-stages.d.ts.map +1 -1
  242. package/dist/improve-delivery-stages.js +87 -6
  243. package/dist/improve-delivery-stages.js.map +1 -1
  244. package/dist/improve-dom-diff.d.ts +8 -24
  245. package/dist/improve-dom-diff.d.ts.map +1 -1
  246. package/dist/improve-dom-diff.js +23 -123
  247. package/dist/improve-dom-diff.js.map +1 -1
  248. package/dist/improve-dom-gate.d.ts +1 -18
  249. package/dist/improve-dom-gate.d.ts.map +1 -1
  250. package/dist/improve-dom-gate.js +1 -46
  251. package/dist/improve-dom-gate.js.map +1 -1
  252. package/dist/improve-generation-stages.d.ts +0 -2
  253. package/dist/improve-generation-stages.d.ts.map +1 -1
  254. package/dist/improve-generation-stages.js +162 -15
  255. package/dist/improve-generation-stages.js.map +1 -1
  256. package/dist/improve-kit-assets.d.ts +8 -116
  257. package/dist/improve-kit-assets.d.ts.map +1 -1
  258. package/dist/improve-kit-assets.js +9 -229
  259. package/dist/improve-kit-assets.js.map +1 -1
  260. package/dist/improve-kit-readme.d.ts +4 -0
  261. package/dist/improve-kit-readme.d.ts.map +1 -1
  262. package/dist/improve-kit-readme.js +57 -16
  263. package/dist/improve-kit-readme.js.map +1 -1
  264. package/dist/improve-kit-stall.d.ts +3 -1
  265. package/dist/improve-kit-stall.d.ts.map +1 -1
  266. package/dist/improve-kit-stall.js +46 -14
  267. package/dist/improve-kit-stall.js.map +1 -1
  268. package/dist/improve-kit-status.d.ts.map +1 -1
  269. package/dist/improve-kit-status.js +8 -3
  270. package/dist/improve-kit-status.js.map +1 -1
  271. package/dist/improve-options.d.ts +8 -0
  272. package/dist/improve-options.d.ts.map +1 -1
  273. package/dist/improve-options.js +92 -12
  274. package/dist/improve-options.js.map +1 -1
  275. package/dist/improve-passthrough-flags.d.ts +8 -0
  276. package/dist/improve-passthrough-flags.d.ts.map +1 -0
  277. package/dist/improve-passthrough-flags.js +11 -0
  278. package/dist/improve-passthrough-flags.js.map +1 -0
  279. package/dist/improve-plan-annotator.d.ts +8 -2
  280. package/dist/improve-plan-annotator.d.ts.map +1 -1
  281. package/dist/improve-plan-annotator.js +35 -38
  282. package/dist/improve-plan-annotator.js.map +1 -1
  283. package/dist/improve-pricing-plan.d.ts +3 -0
  284. package/dist/improve-pricing-plan.d.ts.map +1 -1
  285. package/dist/improve-pricing-plan.js +33 -5
  286. package/dist/improve-pricing-plan.js.map +1 -1
  287. package/dist/improve-recheck.d.ts +9 -0
  288. package/dist/improve-recheck.d.ts.map +1 -0
  289. package/dist/improve-recheck.js +200 -0
  290. package/dist/improve-recheck.js.map +1 -0
  291. package/dist/improve-reset.d.ts.map +1 -1
  292. package/dist/improve-reset.js +11 -0
  293. package/dist/improve-reset.js.map +1 -1
  294. package/dist/improve-run-summary.d.ts +6 -0
  295. package/dist/improve-run-summary.d.ts.map +1 -1
  296. package/dist/improve-run-summary.js +29 -5
  297. package/dist/improve-run-summary.js.map +1 -1
  298. package/dist/improve-site-plan.d.ts +57 -0
  299. package/dist/improve-site-plan.d.ts.map +1 -0
  300. package/dist/improve-site-plan.js +79 -0
  301. package/dist/improve-site-plan.js.map +1 -0
  302. package/dist/improve-site-shell.d.ts +11 -0
  303. package/dist/improve-site-shell.d.ts.map +1 -0
  304. package/dist/improve-site-shell.js +24 -0
  305. package/dist/improve-site-shell.js.map +1 -0
  306. package/dist/improve-site-stage.d.ts +10 -0
  307. package/dist/improve-site-stage.d.ts.map +1 -0
  308. package/dist/improve-site-stage.js +84 -0
  309. package/dist/improve-site-stage.js.map +1 -0
  310. package/dist/improve-site-tokens.d.ts +9 -0
  311. package/dist/improve-site-tokens.d.ts.map +1 -0
  312. package/dist/improve-site-tokens.js +17 -0
  313. package/dist/improve-site-tokens.js.map +1 -0
  314. package/dist/improve-source-hints.d.ts +3 -12
  315. package/dist/improve-source-hints.d.ts.map +1 -1
  316. package/dist/improve-source-hints.js +4 -5
  317. package/dist/improve-source-hints.js.map +1 -1
  318. package/dist/improve-spend-ledger.d.ts +69 -0
  319. package/dist/improve-spend-ledger.d.ts.map +1 -0
  320. package/dist/improve-spend-ledger.js +118 -0
  321. package/dist/improve-spend-ledger.js.map +1 -0
  322. package/dist/improve-stage-runners.d.ts +5 -2
  323. package/dist/improve-stage-runners.d.ts.map +1 -1
  324. package/dist/improve-stage-runners.js +5 -2
  325. package/dist/improve-stage-runners.js.map +1 -1
  326. package/dist/improve-stage-shared.d.ts +10 -1
  327. package/dist/improve-stage-shared.d.ts.map +1 -1
  328. package/dist/improve-stage-shared.js.map +1 -1
  329. package/dist/improve-stop-handler.d.ts +15 -0
  330. package/dist/improve-stop-handler.d.ts.map +1 -1
  331. package/dist/improve-stop-handler.js +74 -3
  332. package/dist/improve-stop-handler.js.map +1 -1
  333. package/dist/improve-terminal-event.d.ts.map +1 -1
  334. package/dist/improve-terminal-event.js +7 -4
  335. package/dist/improve-terminal-event.js.map +1 -1
  336. package/dist/improve-workspace.d.ts +198 -2
  337. package/dist/improve-workspace.d.ts.map +1 -1
  338. package/dist/improve-workspace.js +249 -92
  339. package/dist/improve-workspace.js.map +1 -1
  340. package/dist/legacy-skill-catalog.d.ts.map +1 -1
  341. package/dist/legacy-skill-catalog.js +79 -0
  342. package/dist/legacy-skill-catalog.js.map +1 -1
  343. package/dist/mcp-convert.js +1 -1
  344. package/dist/mcp-convert.js.map +1 -1
  345. package/dist/mcp-tool-definitions.js +1 -1
  346. package/dist/mcp-tool-definitions.js.map +1 -1
  347. package/dist/mcp-tool-handler.d.ts.map +1 -1
  348. package/dist/mcp-tool-handler.js +0 -3
  349. package/dist/mcp-tool-handler.js.map +1 -1
  350. package/dist/redesign-branch-adoption.d.ts +29 -0
  351. package/dist/redesign-branch-adoption.d.ts.map +1 -0
  352. package/dist/redesign-branch-adoption.js +183 -0
  353. package/dist/redesign-branch-adoption.js.map +1 -0
  354. package/dist/redesign-branch-identity.d.ts +23 -0
  355. package/dist/redesign-branch-identity.d.ts.map +1 -0
  356. package/dist/redesign-branch-identity.js +27 -0
  357. package/dist/redesign-branch-identity.js.map +1 -0
  358. package/dist/redesign-branch-record-verification.d.ts +51 -0
  359. package/dist/redesign-branch-record-verification.d.ts.map +1 -0
  360. package/dist/redesign-branch-record-verification.js +127 -0
  361. package/dist/redesign-branch-record-verification.js.map +1 -0
  362. package/dist/redesign-branch-stage.d.ts +17 -0
  363. package/dist/redesign-branch-stage.d.ts.map +1 -0
  364. package/dist/redesign-branch-stage.js +218 -0
  365. package/dist/redesign-branch-stage.js.map +1 -0
  366. package/dist/redesign-capture.d.ts +145 -15
  367. package/dist/redesign-capture.d.ts.map +1 -1
  368. package/dist/redesign-capture.js +182 -71
  369. package/dist/redesign-capture.js.map +1 -1
  370. package/dist/redesign-page-candidates.d.ts +40 -0
  371. package/dist/redesign-page-candidates.d.ts.map +1 -0
  372. package/dist/redesign-page-candidates.js +131 -0
  373. package/dist/redesign-page-candidates.js.map +1 -0
  374. package/dist/redesign-page-ownership.d.ts +36 -0
  375. package/dist/redesign-page-ownership.d.ts.map +1 -0
  376. package/dist/redesign-page-ownership.js +174 -0
  377. package/dist/redesign-page-ownership.js.map +1 -0
  378. package/dist/redesign-plan-identity.d.ts +3 -1
  379. package/dist/redesign-plan-identity.d.ts.map +1 -1
  380. package/dist/redesign-plan-identity.js +4 -1
  381. package/dist/redesign-plan-identity.js.map +1 -1
  382. package/dist/redesign-plan.d.ts.map +1 -1
  383. package/dist/redesign-plan.js +12 -6
  384. package/dist/redesign-plan.js.map +1 -1
  385. package/dist/redesign-record-validation.d.ts +4 -0
  386. package/dist/redesign-record-validation.d.ts.map +1 -0
  387. package/dist/redesign-record-validation.js +210 -0
  388. package/dist/redesign-record-validation.js.map +1 -0
  389. package/dist/redesign-workspace.d.ts +43 -5
  390. package/dist/redesign-workspace.d.ts.map +1 -1
  391. package/dist/redesign-workspace.js +66 -7
  392. package/dist/redesign-workspace.js.map +1 -1
  393. package/dist/responsive-alternative-materializer.d.ts +8 -3
  394. package/dist/responsive-alternative-materializer.d.ts.map +1 -1
  395. package/dist/responsive-alternative-materializer.js +68 -51
  396. package/dist/responsive-alternative-materializer.js.map +1 -1
  397. package/dist/result-integrity.d.ts +38 -0
  398. package/dist/result-integrity.d.ts.map +1 -0
  399. package/dist/result-integrity.js +46 -0
  400. package/dist/result-integrity.js.map +1 -0
  401. package/dist/review-edit-source.d.ts.map +1 -1
  402. package/dist/review-edit-source.js +6 -2
  403. package/dist/review-edit-source.js.map +1 -1
  404. package/dist/review-edit.js +2 -2
  405. package/dist/review-edit.js.map +1 -1
  406. package/dist/review-prototype-gap.js +1 -1
  407. package/dist/review-prototype-gap.js.map +1 -1
  408. package/dist/run-journal.d.ts +3 -1
  409. package/dist/run-journal.d.ts.map +1 -1
  410. package/dist/run-journal.js +7 -1
  411. package/dist/run-journal.js.map +1 -1
  412. package/dist/spend-run-filter.d.ts +21 -0
  413. package/dist/spend-run-filter.d.ts.map +1 -0
  414. package/dist/spend-run-filter.js +67 -0
  415. package/dist/spend-run-filter.js.map +1 -0
  416. package/dist/spend-scoped-report-lines.d.ts +4 -0
  417. package/dist/spend-scoped-report-lines.d.ts.map +1 -0
  418. package/dist/spend-scoped-report-lines.js +46 -0
  419. package/dist/spend-scoped-report-lines.js.map +1 -0
  420. package/dist/spend-scoped-report.d.ts +28 -0
  421. package/dist/spend-scoped-report.d.ts.map +1 -0
  422. package/dist/spend-scoped-report.js +45 -0
  423. package/dist/spend-scoped-report.js.map +1 -0
  424. package/open-design.json +2 -2
  425. package/package.json +5 -5
  426. package/skills/12ui-design/SKILL.md +8 -4
  427. package/skills/12ui-design/improve.md +50 -3
  428. package/dist/improve-dom-anchor.d.ts.map +0 -1
  429. package/dist/improve-dom-anchor.js.map +0 -1
  430. package/dist/improve-dom-extract.d.ts.map +0 -1
  431. package/dist/improve-dom-extract.js.map +0 -1
  432. package/dist/improve-dom-neighbour.d.ts.map +0 -1
  433. package/dist/improve-dom-neighbour.js.map +0 -1
  434. package/dist/improve-dom-scale.d.ts.map +0 -1
  435. package/dist/improve-dom-scale.js.map +0 -1
  436. package/dist/improve-icon-svg.d.ts +0 -47
  437. package/dist/improve-icon-svg.d.ts.map +0 -1
  438. package/dist/improve-icon-svg.js.map +0 -1
  439. package/dist/improve-layerdoc-diff.d.ts.map +0 -1
  440. package/dist/improve-layerdoc-diff.js.map +0 -1
  441. package/dist/improve-layerdoc-types.d.ts.map +0 -1
  442. package/dist/improve-layerdoc-types.js +0 -2
  443. package/dist/improve-layerdoc-types.js.map +0 -1
  444. package/dist/improve-plan-annotated-render.d.ts.map +0 -1
  445. package/dist/improve-plan-render.d.ts.map +0 -1
  446. package/dist/improve-plan-render.js.map +0 -1
  447. package/dist/improve-raster-layers-section.d.ts.map +0 -1
  448. package/dist/improve-raster-layers-section.js.map +0 -1
  449. package/dist/improve-token-patch.d.ts.map +0 -1
  450. package/dist/improve-token-patch.js.map +0 -1
  451. /package/dist/{improve-dom-anchor.d.ts → improve-core/improve-dom-anchor.d.ts} +0 -0
  452. /package/dist/{improve-dom-extract.d.ts → improve-core/improve-dom-extract.d.ts} +0 -0
  453. /package/dist/{improve-dom-neighbour.d.ts → improve-core/improve-dom-neighbour.d.ts} +0 -0
  454. /package/dist/{improve-dom-scale.d.ts → improve-core/improve-dom-scale.d.ts} +0 -0
  455. /package/dist/{improve-layerdoc-diff.d.ts → improve-core/improve-layerdoc-diff.d.ts} +0 -0
  456. /package/dist/{improve-token-patch.d.ts → improve-core/improve-token-patch.d.ts} +0 -0
@@ -0,0 +1,154 @@
1
+ // GENERATED — do not edit. Copied verbatim from
2
+ // packages/layerdoc/src/improve-core by scripts/sync-improve-core.mjs.
3
+ /**
4
+ * Page discovery policy for improve: which same-origin pages a site's root
5
+ * claims are its key screens, and in what order.
6
+ *
7
+ * ONE RANKER, TWO HOSTS. The hosted capture service renders the root in
8
+ * Playwright and collects layout facts (`collectRenderedLinksInPage`); the CLI
9
+ * reads the root's HTML and collects the structural facts a parsed document
10
+ * can state (`collectLinksFromDocument`). Both hand the same fact shape to
11
+ * `rankRenderedLinks`, so the two products cannot disagree about ordering
12
+ * policy — only about how much the page told them.
13
+ *
14
+ * WHY RANK AT ALL. Scoping discovery to `nav`/`header`/`footer` loses whole
15
+ * sites: chargedesk.com states 112 same-origin links, every one of them in
16
+ * div chrome, and landmark-scoped discovery captured the root alone (owner
17
+ * report 2026-09-02). Nothing is dropped here; links are ordered and the
18
+ * caller's `maxPages` cap decides how deep it goes.
19
+ *
20
+ * Every fact is one the page declared or the browser measured — no guessing
21
+ * at a link's importance from its text (CLAUDE.md item 8).
22
+ */
23
+ /** Pages captured for a site when the caller states no cap (root included). */
24
+ export const IMPROVE_DISCOVERY_DEFAULT_MAX_PAGES = 5;
25
+ /**
26
+ * Landmark chrome: where a site states its own key screens. Mirrored as a
27
+ * literal inside `collectRenderedLinksInPage` because Playwright serializes
28
+ * that function into the page — see the note there.
29
+ */
30
+ export const CHROME_LANDMARK_SELECTOR = 'nav, header, footer, [role="navigation"], [role="banner"], [role="contentinfo"]';
31
+ const TOP_BAND_PX = 160;
32
+ const BOTTOM_BAND_PX = 700;
33
+ /** Account plumbing is rarely a "key screen"; it is ranked last, never dropped. */
34
+ const LOW_VALUE_PATH = /(^|\/)(sign-?in|log-?in|sign-?up|sign-?out|log-?out|register|forgot|reset|cart|checkout|connect)(\/|$)/iu;
35
+ /**
36
+ * Runs inside the rendered page: every anchor with its landmark and layout
37
+ * facts. Playwright serializes this function, so it must be self-contained —
38
+ * no module-scope references survive `page.evaluate`. The landmark selector is
39
+ * therefore repeated here as a literal; `improve-discovery.test.ts` asserts it
40
+ * still matches `CHROME_LANDMARK_SELECTOR`.
41
+ */
42
+ export const collectRenderedLinksInPage = () => {
43
+ const scrollY = window.scrollY || 0;
44
+ const links = Array.from(document.querySelectorAll('a[href]')).map((anchor) => {
45
+ const rect = anchor.getBoundingClientRect();
46
+ return {
47
+ href: anchor.getAttribute('href'),
48
+ chrome: Boolean(anchor.closest('nav, header, footer, [role="navigation"], [role="banner"], [role="contentinfo"]')),
49
+ y: Math.round(rect.top + scrollY),
50
+ visible: rect.width > 0 && rect.height > 0,
51
+ };
52
+ }).filter((link) => typeof link.href === 'string');
53
+ return { docHeight: document.documentElement.scrollHeight, links };
54
+ };
55
+ /**
56
+ * The same facts from a parsed document: landmark membership is declared in
57
+ * the markup, position and visibility are not, so they are left absent rather
58
+ * than invented. Absent position ranks a link in the body tier, where document
59
+ * order decides — the only positional fact static HTML actually states.
60
+ */
61
+ export const collectLinksFromDocument = (document) => {
62
+ const links = [];
63
+ for (const anchor of Array.from(document.querySelectorAll('a[href]'))) {
64
+ const href = anchor.getAttribute('href');
65
+ if (typeof href !== 'string')
66
+ continue;
67
+ links.push({ href, chrome: Boolean(anchor.closest(CHROME_LANDMARK_SELECTOR)) });
68
+ }
69
+ return { docHeight: 0, links };
70
+ };
71
+ const tierOf = (link, docHeight) => {
72
+ if (link.chrome)
73
+ return 0;
74
+ if (typeof link.y !== 'number')
75
+ return 3;
76
+ if (link.y < TOP_BAND_PX)
77
+ return 1;
78
+ if (docHeight && link.y > docHeight - BOTTOM_BAND_PX)
79
+ return 2;
80
+ return 3;
81
+ };
82
+ const safePathname = (href) => {
83
+ try {
84
+ return new URL(href, 'https://rank.invalid/').pathname;
85
+ }
86
+ catch {
87
+ return '';
88
+ }
89
+ };
90
+ /**
91
+ * Orders links by how likely they are to be a key screen: landmark chrome
92
+ * first, then the top band (div headers), then the bottom band (div footers),
93
+ * then body links — visible before hidden within a tier, account plumbing
94
+ * last. Document order breaks every remaining tie.
95
+ *
96
+ * Accepts a collection, a bare fact list, or plain href strings (no facts →
97
+ * body tier, document order), so a caller that measured nothing still works.
98
+ */
99
+ export const rankRenderedLinks = (input) => {
100
+ const list = Array.isArray(input)
101
+ ? input
102
+ : input?.links ?? [];
103
+ const docHeight = Array.isArray(input)
104
+ ? 0
105
+ : input?.docHeight ?? 0;
106
+ return list
107
+ .map((raw, index) => (typeof raw === 'string' ? { href: raw, index } : { ...raw, index }))
108
+ .filter((link) => typeof link.href === 'string')
109
+ .map((link) => ({
110
+ href: link.href,
111
+ index: link.index,
112
+ key: [
113
+ LOW_VALUE_PATH.test(safePathname(link.href)) ? 1 : 0,
114
+ tierOf(link, docHeight),
115
+ link.visible === false ? 1 : 0,
116
+ ],
117
+ }))
118
+ .sort((a, b) => (a.key[0] - b.key[0]
119
+ || a.key[1] - b.key[1]
120
+ || a.key[2] - b.key[2]
121
+ || a.index - b.index))
122
+ .map((link) => link.href);
123
+ };
124
+ /** Homepage first, then ranked same-origin links, one per pathname, capped. */
125
+ export const discoverSameOriginPages = (rootUrl, hrefs, maxPages = IMPROVE_DISCOVERY_DEFAULT_MAX_PAGES) => {
126
+ const root = new URL(rootUrl);
127
+ root.hash = '';
128
+ const seen = new Set([root.pathname || '/']);
129
+ const pages = [root.toString()];
130
+ for (const href of hrefs) {
131
+ if (pages.length >= maxPages)
132
+ break;
133
+ if (typeof href !== 'string' || !href || href.startsWith('#')
134
+ || href.startsWith('mailto:') || href.startsWith('tel:'))
135
+ continue;
136
+ let candidate;
137
+ try {
138
+ candidate = new URL(href, root);
139
+ }
140
+ catch {
141
+ continue;
142
+ }
143
+ if (candidate.origin !== root.origin)
144
+ continue;
145
+ candidate.hash = '';
146
+ const key = candidate.pathname || '/';
147
+ if (seen.has(key))
148
+ continue;
149
+ seen.add(key);
150
+ pages.push(candidate.toString());
151
+ }
152
+ return pages;
153
+ };
154
+ //# sourceMappingURL=improve-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-discovery.js","sourceRoot":"","sources":["../../src/improve-core/improve-discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-dom-anchor.d.ts","sourceRoot":"","sources":["../../src/improve-core/improve-dom-anchor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,SAAS,EACV,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,aAAa,GAAI,MAAM,SAAS,GAAG,SAAS,KAAG,MAQ3D,CAAC;AAIF,eAAO,MAAM,WAAW,GAAI,OAAO,QAAQ,GAAG,SAAS,EAAE,OAAO,QAAQ,GAAG,SAAS,KAAG,MAKtF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,SAAS,SAAS,cAAc,EAAE,EAClC,QAAQ,SAAS,SAAS,EAAE,EAC5B,OAAO,SAAS,SAAS,EAAE,EAC3B,mBAAgB,KACf,GAAG,CAAC,MAAM,CAcZ,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,QAAQ,EACb,QAAQ,SAAS,SAAS,EAAE,KAC3B;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CA6BtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,SAAS,cAAc,EAAE,EAClC,QAAQ,SAAS,SAAS,EAAE,EAC5B,OAAO,SAAS,SAAS,EAAE,EAC3B,QAAQ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACzC,WAAW,WAAW,CAAC,MAAM,CAAC,KAC7B,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,CA0CnC,CAAC;AAEF,eAAO,MAAM,KAAK;;;0BAAgB,CAAC"}
@@ -1,3 +1,5 @@
1
+ // GENERATED — do not edit. Copied verbatim from
2
+ // packages/layerdoc/src/improve-core by scripts/sync-improve-core.mjs.
1
3
  import { boxIou } from './improve-layerdoc-diff.js';
2
4
  import { toCanvasFrame } from './improve-dom-scale.js';
3
5
  export const selectorLabel = (leaf) => {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-dom-anchor.js","sourceRoot":"","sources":["../../src/improve-core/improve-dom-anchor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { ImproveArtifactMap } from './improve-artifacts.js';
2
+ import { type ImproveRasterLayer } from './improve-kit-asset-model.js';
3
+ import type { ImproveCaptureIdentity, ImproveGate, LayerDiffResult, LayerLeaf } from './improve-layerdoc-types.js';
4
+ export type ImproveDomDiff = {
5
+ result: LayerDiffResult;
6
+ beforeLeaves: LayerLeaf[];
7
+ targetLeaves: LayerLeaf[];
8
+ beforeCanvas: {
9
+ width: number;
10
+ height: number;
11
+ };
12
+ targetCanvas: {
13
+ width: number;
14
+ height: number;
15
+ };
16
+ lengthScale: number;
17
+ domCoverage: number;
18
+ designCoverage: number;
19
+ gate: ImproveGate;
20
+ markdown: string;
21
+ };
22
+ export declare const computeImproveDomDiff: (args: {
23
+ beforeDoc: unknown;
24
+ targetDoc: unknown;
25
+ gatePct?: number;
26
+ captureIdentity?: ImproveCaptureIdentity;
27
+ }) => ImproveDomDiff;
28
+ /** The kit names for the four files a DOM-anchored plan owns. */
29
+ export declare const IMPROVE_GATE_FILE = "GATE.md";
30
+ export declare const IMPROVE_DIFF_FILE = "diff.json";
31
+ export declare const IMPROVE_CHANGES_FILE = "changes.md";
32
+ /**
33
+ * A blocked gate emits the refusal and removes every artifact that would imply
34
+ * a plan exists; a passing gate emits the machine diff and its readable half
35
+ * and removes the stale gate. `generatedAt` is injected because a run that
36
+ * stamps its own clock cannot be compared byte-for-byte against another host.
37
+ * `labels` name the two inputs as the reader should see them — the CLI passes
38
+ * the paths it read, the web passes the capture and target it converted.
39
+ */
40
+ export declare const planImproveDomDiffArtifacts: (args: {
41
+ beforeDoc: unknown;
42
+ targetDoc: unknown;
43
+ labels: {
44
+ beforePath: string;
45
+ targetPath: string;
46
+ };
47
+ gatePct?: number;
48
+ captureIdentity?: ImproveCaptureIdentity;
49
+ generatedAt: string;
50
+ /**
51
+ * The target's raster layers, when the host can see the kit's files. A
52
+ * blocked gate names them in `GATE.md` because it deletes the plan that
53
+ * otherwise carries them.
54
+ */
55
+ rasterLayers?: readonly ImproveRasterLayer[];
56
+ }) => ImproveDomDiff & {
57
+ artifacts: ImproveArtifactMap;
58
+ };
59
+ //# sourceMappingURL=improve-dom-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-dom-diff.d.ts","sourceRoot":"","sources":["../../src/improve-core/improve-dom-diff.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAiC,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACtG,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,eAAe,EACf,SAAS,EACV,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,MAAM;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C,KAAG,cA4EH,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAIjD;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,GAAI,MAAM;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9C,KAAG,cAAc,GAAG;IAAE,SAAS,EAAE,kBAAkB,CAAA;CAiDnD,CAAC"}
@@ -0,0 +1,151 @@
1
+ // GENERATED — do not edit. Copied verbatim from
2
+ // packages/layerdoc/src/improve-core by scripts/sync-improve-core.mjs.
3
+ import { canvasOfDoc, computeLayerDeltas, diffLayerDocs, flattenLayerDoc, } from './improve-layerdoc-diff.js';
4
+ import { confidentMatches, impliedPaddingDeltas } from './improve-dom-anchor.js';
5
+ import { evaluateImproveGate, renderImproveGate } from './improve-dom-gate.js';
6
+ import { repairByNeighbourOffset } from './improve-dom-neighbour.js';
7
+ import { normalizeLayerDoc } from './improve-dom-scale.js';
8
+ import { renderDomChanges } from './improve-plan-render.js';
9
+ import { improveRasterLayersOfDocument } from './improve-kit-asset-model.js';
10
+ export const computeImproveDomDiff = (args) => {
11
+ const beforeCanvas = canvasOfDoc(args.beforeDoc);
12
+ const targetCanvas = canvasOfDoc(args.targetDoc);
13
+ const viewport = args.beforeDoc && typeof args.beforeDoc === 'object' && 'source' in args.beforeDoc
14
+ && args.beforeDoc.source && typeof args.beforeDoc.source === 'object' && 'viewport' in args.beforeDoc.source
15
+ && args.beforeDoc.source.viewport && typeof args.beforeDoc.source.viewport === 'object'
16
+ ? args.beforeDoc.source.viewport
17
+ : undefined;
18
+ const anchoredHeight = typeof viewport?.height === 'number' && viewport.height !== beforeCanvas.height
19
+ ? viewport.height
20
+ : 0;
21
+ const lengthScale = beforeCanvas.width / targetCanvas.width;
22
+ const normalizedBefore = normalizeLayerDoc(args.beforeDoc, 1, anchoredHeight);
23
+ const normalizedTarget = normalizeLayerDoc(args.targetDoc, lengthScale);
24
+ const beforeLeaves = flattenLayerDoc(normalizedBefore);
25
+ const targetLeaves = flattenLayerDoc(normalizedTarget);
26
+ const result = diffLayerDocs(normalizedBefore, normalizedTarget, {
27
+ strategy: 'fallback',
28
+ contentKeyMode: 'family',
29
+ });
30
+ const firstConfidence = confidentMatches(result.matched, beforeLeaves, targetLeaves);
31
+ const neighbour = repairByNeighbourOffset({
32
+ result,
33
+ before: beforeLeaves,
34
+ after: targetLeaves,
35
+ confident: firstConfidence,
36
+ canvas: beforeCanvas,
37
+ });
38
+ for (const entry of result.matched.filter((candidate) => candidate.matchStrategy === 'neighbour')) {
39
+ entry.deltas = computeLayerDeltas(beforeLeaves[entry.beforeIndex], targetLeaves[entry.afterIndex]);
40
+ entry.changed = entry.deltas.length > 0;
41
+ }
42
+ const confident = confidentMatches(result.matched, beforeLeaves, targetLeaves);
43
+ result.matched.filter((entry) => entry.matchStrategy === 'neighbour')
44
+ .forEach((entry) => confident.add(entry.beforeIndex));
45
+ const padding = impliedPaddingDeltas(result.matched, beforeLeaves, targetLeaves, beforeCanvas, confident);
46
+ result.matched.forEach((entry) => {
47
+ entry.selector = beforeLeaves[entry.beforeIndex]?.dom?.selector;
48
+ entry.confident = confident.has(entry.beforeIndex);
49
+ entry.impliedPadding = padding.get(entry.beforeIndex);
50
+ });
51
+ result.meta = {
52
+ ...result.meta,
53
+ matchedCount: result.matched.length,
54
+ plausibleMatchedCount: confident.size,
55
+ changedCount: result.matched.filter((entry) => entry.changed).length,
56
+ unchangedCount: result.matched.filter((entry) => !entry.changed).length,
57
+ addedCount: result.added.length,
58
+ removedCount: result.removed.length,
59
+ matchCoverage: confident.size / Math.max(beforeLeaves.length, targetLeaves.length, 1),
60
+ neighbourRepaired: neighbour.repaired,
61
+ neighbourReleased: neighbour.released,
62
+ };
63
+ const domCoverage = confident.size / Math.max(beforeLeaves.length, 1);
64
+ const designCoverage = confident.size / Math.max(targetLeaves.length, 1);
65
+ const gate = evaluateImproveGate(domCoverage, args.gatePct, args.captureIdentity);
66
+ return {
67
+ result,
68
+ beforeLeaves,
69
+ targetLeaves,
70
+ beforeCanvas,
71
+ targetCanvas,
72
+ lengthScale,
73
+ domCoverage,
74
+ designCoverage,
75
+ gate,
76
+ markdown: renderDomChanges({
77
+ result,
78
+ beforeLeaves,
79
+ beforePath: 'current.domdoc.json',
80
+ targetPath: 'target/winner.layerdoc.json',
81
+ domCoverage,
82
+ designCoverage,
83
+ gate,
84
+ }),
85
+ };
86
+ };
87
+ /** The kit names for the four files a DOM-anchored plan owns. */
88
+ export const IMPROVE_GATE_FILE = 'GATE.md';
89
+ export const IMPROVE_DIFF_FILE = 'diff.json';
90
+ export const IMPROVE_CHANGES_FILE = 'changes.md';
91
+ const IMPROVE_ANNOTATED_PLAN_FILE = 'plan-annotated.md';
92
+ const IMPROVE_TOKEN_PATCH_FILE = 'token-patch.css';
93
+ /**
94
+ * A blocked gate emits the refusal and removes every artifact that would imply
95
+ * a plan exists; a passing gate emits the machine diff and its readable half
96
+ * and removes the stale gate. `generatedAt` is injected because a run that
97
+ * stamps its own clock cannot be compared byte-for-byte against another host.
98
+ * `labels` name the two inputs as the reader should see them — the CLI passes
99
+ * the paths it read, the web passes the capture and target it converted.
100
+ */
101
+ export const planImproveDomDiffArtifacts = (args) => {
102
+ const computed = computeImproveDomDiff({
103
+ beforeDoc: args.beforeDoc,
104
+ targetDoc: args.targetDoc,
105
+ ...(args.gatePct === undefined ? {} : { gatePct: args.gatePct }),
106
+ ...(args.captureIdentity === undefined ? {} : { captureIdentity: args.captureIdentity }),
107
+ });
108
+ if (!computed.gate.passed) {
109
+ return {
110
+ ...computed,
111
+ artifacts: {
112
+ files: {
113
+ [IMPROVE_GATE_FILE]: renderImproveGate({
114
+ gate: computed.gate,
115
+ result: computed.result,
116
+ beforePath: args.labels.beforePath,
117
+ targetPath: args.labels.targetPath,
118
+ designCoverage: computed.designCoverage,
119
+ rasterLayers: args.rasterLayers ?? improveRasterLayersOfDocument(args.targetDoc),
120
+ }),
121
+ },
122
+ remove: [
123
+ IMPROVE_DIFF_FILE,
124
+ IMPROVE_CHANGES_FILE,
125
+ IMPROVE_ANNOTATED_PLAN_FILE,
126
+ IMPROVE_TOKEN_PATCH_FILE,
127
+ ],
128
+ },
129
+ };
130
+ }
131
+ return {
132
+ ...computed,
133
+ artifacts: {
134
+ files: {
135
+ [IMPROVE_DIFF_FILE]: `${JSON.stringify({
136
+ generatedAt: args.generatedAt,
137
+ before: args.labels.beforePath,
138
+ after: args.labels.targetPath,
139
+ frames: { lengthScale: computed.lengthScale },
140
+ gate: computed.gate,
141
+ domCoverage: computed.domCoverage,
142
+ designCoverage: computed.designCoverage,
143
+ ...computed.result,
144
+ }, null, 2)}\n`,
145
+ [IMPROVE_CHANGES_FILE]: computed.markdown,
146
+ },
147
+ remove: [IMPROVE_GATE_FILE],
148
+ },
149
+ };
150
+ };
151
+ //# sourceMappingURL=improve-dom-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-dom-diff.js","sourceRoot":"","sources":["../../src/improve-core/improve-dom-diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-dom-extract.d.ts","sourceRoot":"","sources":["../../src/improve-core/improve-dom-extract.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,KAAG,OA2UxE,CAAC"}
@@ -1,3 +1,5 @@
1
+ // GENERATED — do not edit. Copied verbatim from
2
+ // packages/layerdoc/src/improve-core by scripts/sync-improve-core.mjs.
1
3
  /**
2
4
  * Browser-side DOM walker. Playwright serializes this function, so it must be
3
5
  * self-contained. It emits a LayerDoc-v2-shaped document whose leaves carry
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-dom-extract.js","sourceRoot":"","sources":["../../src/improve-core/improve-dom-extract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { ImproveRasterLayer } from './improve-kit-asset-model.js';
2
+ import type { ImproveCaptureIdentity, ImproveGate, LayerDiffResult } from './improve-layerdoc-types.js';
3
+ /** Measured pilot separator: good route/state pairs were ~82%; the bad pair was ~25%. */
4
+ export declare const IMPROVE_DEFAULT_GATE_PCT = 60;
5
+ /**
6
+ * Low overlap is only a capture mismatch when the capture is unproven (F42).
7
+ *
8
+ * The threshold alone was measured over the 28 wave-2 kits that reached it and
9
+ * scored 0 for 6 on its own hypothesis: every one of its 6 blocks landed on a
10
+ * capture whose URL identity matched the request, and all 5 runs that really
11
+ * had captured another page passed — notion `/app` captured `/signin` and was
12
+ * certified at 100.0%, because coverage scores the target against the capture
13
+ * and both halves were the sign-in page.
14
+ *
15
+ * Two mechanisms produced the false alarms, neither of them a mismatch. The
16
+ * statuspage landing carries 267 `.no-data` uptime ticks in a 305-leaf DOM
17
+ * against a 44-leaf design, so its arithmetic ceiling is 14.4% and no design
18
+ * could ever clear 60% (F10). The sparse landings (7-13 leaves) move 8-14
19
+ * points per element, and a full-bleed redesign replaces most of them — which
20
+ * is the direction the run was asked for. Both delivered: the ledger's
21
+ * verification block records notion "landing went letterboxed-card -> full-
22
+ * bleed", improved, on a kit the gate had blocked at 55.6%.
23
+ *
24
+ * The gate also runs after draft and convert have settled, so blocking buys no
25
+ * money back; it only withholds the anchored plan. The pre-spend refusal in
26
+ * `improve-capture-redirect.ts` is what protects spend. So: arbitrate on the
27
+ * declared fact, and keep the threshold for the runs where that fact is
28
+ * missing — `--allow-redirect`, an unrecorded capture URL, or an image input.
29
+ */
30
+ export declare const evaluateImproveGate: (coverage: number, thresholdPct?: number, captureIdentity?: ImproveCaptureIdentity) => ImproveGate;
31
+ /**
32
+ * The low-overlap sentence carried by an emitted plan (`lowOverlap`), so the
33
+ * plan and `changes.md` cannot describe the same situation two ways.
34
+ */
35
+ export declare const improveLowOverlapNote: (gate: ImproveGate) => string | undefined;
36
+ /**
37
+ * A blocked gate deletes `plan-annotated.md`, and with it the only copy of
38
+ * "Raster layers to carry". The assets are still on disk and still the design,
39
+ * so the instruction to carry them has to survive here or it exists nowhere.
40
+ */
41
+ export declare const renderImproveGate: (args: {
42
+ gate: ImproveGate;
43
+ result: LayerDiffResult;
44
+ beforePath: string;
45
+ targetPath: string;
46
+ designCoverage: number;
47
+ rasterLayers?: readonly ImproveRasterLayer[];
48
+ }) => string;
49
+ //# sourceMappingURL=improve-dom-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-dom-gate.d.ts","sourceRoot":"","sources":["../../src/improve-core/improve-dom-gate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAExG,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,qBAAuC,EACvC,kBAAiB,sBAAqC,KACrD,WAeF,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,WAAW,KAAG,MAAM,GAAG,SAQlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM;IACtC,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9C,KAAG,MA4BQ,CAAC"}
@@ -0,0 +1,99 @@
1
+ // GENERATED — do not edit. Copied verbatim from
2
+ // packages/layerdoc/src/improve-core by scripts/sync-improve-core.mjs.
3
+ import { renderImproveRasterLayers } from './improve-raster-layers-section.js';
4
+ /** Measured pilot separator: good route/state pairs were ~82%; the bad pair was ~25%. */
5
+ export const IMPROVE_DEFAULT_GATE_PCT = 60;
6
+ /**
7
+ * Low overlap is only a capture mismatch when the capture is unproven (F42).
8
+ *
9
+ * The threshold alone was measured over the 28 wave-2 kits that reached it and
10
+ * scored 0 for 6 on its own hypothesis: every one of its 6 blocks landed on a
11
+ * capture whose URL identity matched the request, and all 5 runs that really
12
+ * had captured another page passed — notion `/app` captured `/signin` and was
13
+ * certified at 100.0%, because coverage scores the target against the capture
14
+ * and both halves were the sign-in page.
15
+ *
16
+ * Two mechanisms produced the false alarms, neither of them a mismatch. The
17
+ * statuspage landing carries 267 `.no-data` uptime ticks in a 305-leaf DOM
18
+ * against a 44-leaf design, so its arithmetic ceiling is 14.4% and no design
19
+ * could ever clear 60% (F10). The sparse landings (7-13 leaves) move 8-14
20
+ * points per element, and a full-bleed redesign replaces most of them — which
21
+ * is the direction the run was asked for. Both delivered: the ledger's
22
+ * verification block records notion "landing went letterboxed-card -> full-
23
+ * bleed", improved, on a kit the gate had blocked at 55.6%.
24
+ *
25
+ * The gate also runs after draft and convert have settled, so blocking buys no
26
+ * money back; it only withholds the anchored plan. The pre-spend refusal in
27
+ * `improve-capture-redirect.ts` is what protects spend. So: arbitrate on the
28
+ * declared fact, and keep the threshold for the runs where that fact is
29
+ * missing — `--allow-redirect`, an unrecorded capture URL, or an image input.
30
+ */
31
+ export const evaluateImproveGate = (coverage, thresholdPct = IMPROVE_DEFAULT_GATE_PCT, captureIdentity = 'unrecorded') => {
32
+ if (!Number.isFinite(thresholdPct) || thresholdPct < 0 || thresholdPct > 100) {
33
+ throw new Error(`gate must be a percentage from 0 to 100; received ${thresholdPct}`);
34
+ }
35
+ const normalized = Number.isFinite(coverage) ? coverage : 0;
36
+ const meetsThreshold = normalized * 100 >= thresholdPct;
37
+ const proven = captureIdentity === 'matched';
38
+ return {
39
+ passed: meetsThreshold || proven,
40
+ lowOverlap: !meetsThreshold && proven,
41
+ captureIdentity,
42
+ coverage: normalized,
43
+ coveragePct: normalized * 100,
44
+ thresholdPct,
45
+ };
46
+ };
47
+ /** Why this run could not prove the capture is the requested page. */
48
+ const UNPROVEN_CAUSE = {
49
+ redirected: 'the capture landed on a different URL than the one requested and'
50
+ + ' `--allow-redirect` waived the pre-spend refusal, so nothing here knows which page the target describes',
51
+ unrecorded: 'this kit records no captured URL, so the requested page and the photographed page cannot be compared',
52
+ image: 'the input was an image rather than a URL, so there is no page identity to compare',
53
+ };
54
+ /**
55
+ * The low-overlap sentence carried by an emitted plan (`lowOverlap`), so the
56
+ * plan and `changes.md` cannot describe the same situation two ways.
57
+ */
58
+ export const improveLowOverlapNote = (gate) => (gate.lowOverlap
59
+ ? `Anchor overlap is low: ${gate.coveragePct.toFixed(1)}% of the existing page's elements`
60
+ + ` matched, under the ${gate.thresholdPct.toFixed(1)}% gate. The capture was verified to be the`
61
+ + ' page that was requested, so this is a design delta, not a capture mismatch: most of the'
62
+ + ' target is new and arrives as added elements and raster layers. The anchored items below'
63
+ + ' are still real selectors — treat the rest as new work rather than as edits.'
64
+ : undefined);
65
+ /**
66
+ * A blocked gate deletes `plan-annotated.md`, and with it the only copy of
67
+ * "Raster layers to carry". The assets are still on disk and still the design,
68
+ * so the instruction to carry them has to survive here or it exists nowhere.
69
+ */
70
+ export const renderImproveGate = (args) => [
71
+ '# DOM diff coverage gate',
72
+ '',
73
+ '**BLOCKED — no selector-anchored plan emitted**',
74
+ '',
75
+ `- Before: \`${args.beforePath}\``,
76
+ `- Target: \`${args.targetPath}\``,
77
+ `- DOM-side confident coverage: **${args.gate.coveragePct.toFixed(1)}%** (${args.result.meta.plausibleMatchedCount}/${args.result.meta.beforeLeafCount})`,
78
+ `- Required coverage: **${args.gate.thresholdPct.toFixed(1)}%**`,
79
+ `- Design-side confident coverage: ${(args.designCoverage * 100).toFixed(1)}%`,
80
+ `- Capture identity: **${args.gate.captureIdentity}**`,
81
+ '',
82
+ `Low overlap blocks here because ${UNPROVEN_CAUSE[args.gate.captureIdentity]}.`
83
+ + ' A run whose capture is provably the requested page emits the plan with a low-overlap note'
84
+ + ' instead of blocking, because a full-bleed redesign scores low against the page it replaces.',
85
+ '',
86
+ '## Recommended fallback',
87
+ '',
88
+ '- Re-capture the current page in the exact state depicted by the target, then run improve again.',
89
+ '- Otherwise use the responsive target and LayerDoc as an unanchored sidecar reference.',
90
+ '',
91
+ ...(args.rasterLayers && args.rasterLayers.length > 0
92
+ ? [
93
+ 'No plan was emitted, but the target\'s raster layers are extracted and usable without one.',
94
+ '',
95
+ ...renderImproveRasterLayers({ layers: args.rasterLayers }),
96
+ ]
97
+ : []),
98
+ ].join('\n');
99
+ //# sourceMappingURL=improve-dom-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-dom-gate.js","sourceRoot":"","sources":["../../src/improve-core/improve-dom-gate.ts"],"names":[],"mappings":"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"}