@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
@@ -3,16 +3,20 @@ import { mkdir, readFile, stat, writeFile } from 'node:fs/promises';
3
3
  import path from 'node:path';
4
4
  import { parseHTML } from 'linkedom';
5
5
  import { CliRefusal } from './cli-refusal.js';
6
+ import { redactImproveBootstrap } from './improve-bootstrap-secret.js';
6
7
  import { resolvePrototypeBrowserProvisioning } from './prototype-browsers.js';
7
- import { extractImproveDomInPage } from './improve-dom-extract.js';
8
+ import { collectRenderedLinksInPage, collectLinksFromDocument, discoverSameOriginPages, extractImproveDomInPage, IMPROVE_DISCOVERY_DEFAULT_MAX_PAGES, rankRenderedLinks, } from './improve-core/index.js';
9
+ import { withImproveFullPageWords } from './improve-capture-words.js';
8
10
  /**
9
11
  * Stage 1: full-height screenshots of a target site's key pages.
10
12
  *
11
- * Discovery reads one page's HTML over `fetch` and keeps same-origin links
12
- * found in `nav`/`header`/`footer` (where a site states its own key pages),
13
- * falling back to the whole document when none of those hold a link. It never
14
- * launches a browser: link discovery is free and must stay that way so
15
- * `--dry-run` can report a page count without paying for a screenshot.
13
+ * A real capture discovers rendered links inside its own browser context,
14
+ * after any `--bootstrap` flow has seated authentication. It ranks those links
15
+ * with the shared improve ranker (`layerdoc/improve-core/improve-discovery.ts`)
16
+ * so the CLI and hosted capture service agree on a site's page inventory.
17
+ * The fetch-only helper below remains for dry-run/reporting callers that do
18
+ * not need a browser session; it cannot see routes that anonymous HTML does
19
+ * not link.
16
20
  *
17
21
  * Screenshotting is the one real Playwright dependency in this package (every
18
22
  * other stage buys through the hosted API). `capturePage` is injected so
@@ -20,10 +24,10 @@ import { extractImproveDomInPage } from './improve-dom-extract.js';
20
24
  * without a real browser or network call; the default implementation is only
21
25
  * reached in production.
22
26
  */
23
- export const REDESIGN_DEFAULT_MAX_PAGES = 5;
27
+ export const REDESIGN_DEFAULT_MAX_PAGES = IMPROVE_DISCOVERY_DEFAULT_MAX_PAGES;
24
28
  const CAPTURE_VIEWPORT = { width: 1440, height: 900 };
25
- const NAVIGATION_SELECTORS = ['nav', 'header', 'footer'];
26
- const pageId = (url, index) => {
29
+ /** Stable filesystem-safe slug for a discovered URL. */
30
+ export const pageId = (url, index) => {
27
31
  const pathname = (() => {
28
32
  try {
29
33
  return new URL(url).pathname;
@@ -42,47 +46,29 @@ const defaultFetchHtml = async (url) => {
42
46
  const response = await fetch(url, { redirect: 'follow' });
43
47
  if (!response.ok)
44
48
  throw new Error(`${url} returned HTTP ${response.status}`);
45
- return response.text();
49
+ return { url: response.url || url, html: await response.text() };
46
50
  };
47
51
  /**
48
52
  * Same-origin URLs a caller would call this site's key pages: the homepage
49
- * first, then links found in navigational chrome, deduplicated by pathname
50
- * and capped at `maxPages`.
53
+ * first, then every other same-origin link the root states, ranked by the
54
+ * shared improve ranker (landmark chrome, then the page's bands, account
55
+ * plumbing last), deduplicated by pathname and capped at `maxPages`.
56
+ *
57
+ * A fetched document declares landmark membership but nothing laid it out, so
58
+ * `collectLinksFromDocument` states no position — the ranker then keeps
59
+ * document order inside the body tier rather than inventing geometry. Where a
60
+ * site hides links behind CSS the fetched document cannot resolve (a mega-menu
61
+ * that is `display:none` until hover), the rendered service ranks those below
62
+ * their visible siblings and this list cannot; the site's own origin, after
63
+ * redirects, is the root everything is resolved against.
51
64
  */
52
65
  export const discoverRedesignPageUrls = async (args) => {
53
66
  const maxPages = args.maxPages ?? REDESIGN_DEFAULT_MAX_PAGES;
54
- const origin = new URL(args.url);
55
- const html = await (args.fetchHtml ?? defaultFetchHtml)(args.url);
56
- const { document } = parseHTML(html);
57
- const scopes = NAVIGATION_SELECTORS
58
- .flatMap((selector) => Array.from(document.querySelectorAll(selector)));
59
- const anchors = (scopes.length > 0 ? scopes : [document])
60
- .flatMap((scope) => Array.from(scope.querySelectorAll('a[href]')));
61
- const seen = new Set([origin.pathname || '/']);
62
- const urls = [origin.toString()];
63
- for (const anchor of anchors) {
64
- if (urls.length >= maxPages)
65
- break;
66
- const href = anchor.getAttribute('href');
67
- if (!href || href.startsWith('#') || href.startsWith('mailto:') || href.startsWith('tel:'))
68
- continue;
69
- const resolved = (() => {
70
- try {
71
- return new URL(href, origin);
72
- }
73
- catch {
74
- return null;
75
- }
76
- })();
77
- if (!resolved || resolved.origin !== origin.origin)
78
- continue;
79
- const key = resolved.pathname || '/';
80
- if (seen.has(key))
81
- continue;
82
- seen.add(key);
83
- urls.push(resolved.toString());
84
- }
85
- return urls.slice(0, maxPages);
67
+ const fetched = await (args.fetchHtml ?? defaultFetchHtml)(args.url);
68
+ const root = typeof fetched === 'string' ? { url: args.url, html: fetched } : fetched;
69
+ const { document } = parseHTML(root.html);
70
+ const ranked = rankRenderedLinks(collectLinksFromDocument(document));
71
+ return discoverSameOriginPages(root.url ?? args.url, ranked, maxPages);
86
72
  };
87
73
  const realCapturePage = async (args) => {
88
74
  const provisioning = await resolvePrototypeBrowserProvisioning();
@@ -190,44 +176,169 @@ export const parseImproveBootstrap = (value) => {
190
176
  ...(waitUrl ? { waitUrl } : {}),
191
177
  };
192
178
  };
179
+ /** A bootstrap changed page state, but its requested route never appeared. */
180
+ export class ImproveBootstrapWaitUrlMismatch extends Error {
181
+ waitUrl;
182
+ capturedUrl;
183
+ constructor(args) {
184
+ super(`Bootstrap wait URL ${redactImproveBootstrap(args.waitUrl)} never matched`);
185
+ this.name = 'ImproveBootstrapWaitUrlMismatch';
186
+ this.waitUrl = redactImproveBootstrap(args.waitUrl);
187
+ this.capturedUrl = args.capturedUrl;
188
+ }
189
+ }
190
+ const launchImproveCaptureBrowser = async () => {
191
+ const provisioning = await resolvePrototypeBrowserProvisioning();
192
+ process.env.PLAYWRIGHT_BROWSERS_PATH = provisioning.browsersPath;
193
+ const { chromium } = await import('@playwright/test');
194
+ return await chromium.launch();
195
+ };
196
+ const applyImproveBootstrap = async (page, bootstrap) => {
197
+ for (const action of bootstrap) {
198
+ if (action.url)
199
+ await page.goto(action.url, { waitUntil: 'networkidle' });
200
+ if (action.clickSelector)
201
+ await page.locator(action.clickSelector).click();
202
+ if (action.waitUrl) {
203
+ try {
204
+ await page.waitForURL(action.waitUrl, { waitUntil: 'networkidle' });
205
+ }
206
+ catch {
207
+ throw new ImproveBootstrapWaitUrlMismatch({
208
+ waitUrl: action.waitUrl,
209
+ capturedUrl: page.url(),
210
+ });
211
+ }
212
+ }
213
+ }
214
+ };
215
+ /**
216
+ * Discovers and captures a redesign in one browser context. This is deliberately
217
+ * the same session boundary as improve: an auth/bootstrap flow may land on an
218
+ * app shell whose routes do not exist in the anonymous HTML fetched from the
219
+ * public root. The `maxPages` limit caps the real discovered list; it never
220
+ * invents placeholder URLs to meet the requested count.
221
+ */
222
+ export const captureRedesignSite = async (args) => {
223
+ const browser = await (args.dependencies?.launch ?? launchImproveCaptureBrowser)();
224
+ try {
225
+ const context = await browser.newContext({ viewport: CAPTURE_VIEWPORT });
226
+ const page = await context.newPage();
227
+ await page.goto(args.url, { waitUntil: 'networkidle' });
228
+ await applyImproveBootstrap(page, args.bootstrap);
229
+ const rootUrl = page.url();
230
+ const urls = discoverSameOriginPages(rootUrl, rankRenderedLinks(await page.evaluate(collectRenderedLinksInPage)), args.maxPages);
231
+ const pages = await captureRedesignPages({
232
+ urls,
233
+ outDir: args.outDir,
234
+ dependencies: {
235
+ capturePage: async ({ url, outFile }) => {
236
+ await page.goto(url, { waitUntil: 'networkidle' });
237
+ await page.screenshot({ path: outFile, fullPage: true });
238
+ return await page.evaluate(() => ({
239
+ width: document.documentElement.scrollWidth,
240
+ height: document.documentElement.scrollHeight,
241
+ }));
242
+ },
243
+ },
244
+ });
245
+ return {
246
+ pages,
247
+ discovery: {
248
+ count: urls.length,
249
+ cap: args.maxPages,
250
+ rootUrl,
251
+ context: args.bootstrap.length > 0 ? 'authenticated' : 'public',
252
+ },
253
+ };
254
+ }
255
+ finally {
256
+ await browser.close();
257
+ }
258
+ };
259
+ const captureImproveDocument = async (args) => {
260
+ await Promise.all([
261
+ mkdir(path.dirname(args.target.screenshotFile), { recursive: true }),
262
+ mkdir(path.dirname(args.target.domDocFile), { recursive: true }),
263
+ ]);
264
+ await args.page.screenshot({ path: args.target.screenshotFile, fullPage: args.settings.fullPage });
265
+ // The page that was actually photographed, which is not always the page that
266
+ // was asked for: an auth gate answers `/app` with `/signin?next=/app` and
267
+ // every stage after this one improves the sign-in card (F27). Only capture
268
+ // knows both URLs, so only capture can report the one it landed on.
269
+ const capturedUrl = args.page.url();
270
+ const domDoc = await args.page.evaluate(extractImproveDomInPage, { fullPage: args.settings.fullPage });
271
+ // The kit carries the WHOLE page's words beside this viewport document; the
272
+ // document's own geometry is untouched (improve-capture-words.ts).
273
+ const written = await withImproveFullPageWords({
274
+ page: args.page, domDoc, fullPage: args.settings.fullPage,
275
+ });
276
+ await writeFile(args.target.domDocFile, `${JSON.stringify(written, null, 2)}\n`, 'utf8');
277
+ const canvas = domDoc && typeof domDoc === 'object' && 'canvas' in domDoc
278
+ ? domDoc.canvas
279
+ : undefined;
280
+ return {
281
+ width: typeof canvas?.width === 'number' ? canvas.width : args.settings.viewport.width,
282
+ height: typeof canvas?.height === 'number' ? canvas.height : args.settings.viewport.height,
283
+ capturedUrl,
284
+ };
285
+ };
193
286
  /**
194
287
  * Improve reuses redesign's local Playwright provisioning, but keeps capture,
195
288
  * bootstrap seating, and selector extraction in one browser context. Nothing
196
289
  * in this boundary calls a hosted 12ui surface.
290
+ *
291
+ * This single-page entrypoint deliberately keeps its legacy navigation order:
292
+ * load the requested URL, apply bootstrap, then capture the page where that
293
+ * bootstrap left the session.
197
294
  */
198
295
  export const captureImprovePage = async (args) => {
199
- const provisioning = await resolvePrototypeBrowserProvisioning();
200
- process.env.PLAYWRIGHT_BROWSERS_PATH = provisioning.browsersPath;
201
- const { chromium } = await import('@playwright/test');
202
- const browser = await chromium.launch();
296
+ const browser = await (args.dependencies?.launch ?? launchImproveCaptureBrowser)();
203
297
  try {
204
298
  const context = await browser.newContext({ viewport: args.viewport });
205
299
  const page = await context.newPage();
206
300
  await page.goto(args.url, { waitUntil: 'networkidle' });
207
- for (const action of args.bootstrap) {
208
- if (action.url)
209
- await page.goto(action.url, { waitUntil: 'networkidle' });
210
- if (action.clickSelector)
211
- await page.locator(action.clickSelector).click();
212
- if (action.waitUrl)
213
- await page.waitForURL(action.waitUrl, { waitUntil: 'networkidle' });
214
- }
215
- await page.screenshot({ path: args.screenshotFile, fullPage: args.fullPage });
216
- // The page that was actually photographed, which is not always the page
217
- // that was asked for: an auth gate answers `/app` with `/signin?next=/app`
218
- // and every stage after this one improves the sign-in card (F27). Only
219
- // capture knows both URLs, so only capture can report the one it landed on.
220
- const capturedUrl = page.url();
221
- const domDoc = await page.evaluate(extractImproveDomInPage, { fullPage: args.fullPage });
222
- await writeFile(args.domDocFile, `${JSON.stringify(domDoc, null, 2)}\n`, 'utf8');
223
- const canvas = domDoc && typeof domDoc === 'object' && 'canvas' in domDoc
224
- ? domDoc.canvas
301
+ await applyImproveBootstrap(page, args.bootstrap);
302
+ const { capturedUrl, ...dimensions } = await captureImproveDocument({
303
+ page, target: args, settings: args,
304
+ });
305
+ return { ...dimensions, url: capturedUrl };
306
+ }
307
+ finally {
308
+ await browser.close();
309
+ }
310
+ };
311
+ /**
312
+ * Captures a root screen and its sibling pages through one browser and one
313
+ * context. Bootstrap establishes authenticated/session state once; each URL
314
+ * is then revisited in that same state before its screenshot and DOM document
315
+ * are collected, in the supplied order.
316
+ */
317
+ export const captureImproveSite = async (args) => {
318
+ if (args.pages.length === 0)
319
+ return [];
320
+ const browser = await (args.dependencies?.launch ?? launchImproveCaptureBrowser)();
321
+ try {
322
+ const context = await browser.newContext({ viewport: args.viewport });
323
+ const page = await context.newPage();
324
+ await page.goto(args.pages[0].url, { waitUntil: 'networkidle' });
325
+ await applyImproveBootstrap(page, args.bootstrap);
326
+ // Retain this capture context while resolving its rendered inventory; no
327
+ // second browser gets launched for discovery. The caller provides slots
328
+ // through the page cap, and the root retains its canonical files.
329
+ const discovered = args.discover
330
+ ? discoverSameOriginPages(page.url(), rankRenderedLinks(await page.evaluate(collectRenderedLinksInPage)), args.discover.maxPages)
225
331
  : undefined;
226
- return {
227
- width: typeof canvas?.width === 'number' ? canvas.width : args.viewport.width,
228
- height: typeof canvas?.height === 'number' ? canvas.height : args.viewport.height,
229
- url: capturedUrl,
230
- };
332
+ const targets = discovered
333
+ ? discovered.map((url, index) => ({ ...args.pages[index], url }))
334
+ : args.pages;
335
+ const captured = [];
336
+ for (const target of targets) {
337
+ await page.goto(target.url, { waitUntil: 'networkidle' });
338
+ const dimensions = await captureImproveDocument({ page, target, settings: args });
339
+ captured.push({ ...target, ...dimensions });
340
+ }
341
+ return captured;
231
342
  }
232
343
  finally {
233
344
  await browser.close();
@@ -1 +1 @@
1
- {"version":3,"file":"redesign-capture.js","sourceRoot":"","sources":["../src/redesign-capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mCAAmC,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAGnE;;;;;;;;;;;;;;GAcG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAC5C,MAAM,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtD,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAEzD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,KAAa,EAAU,EAAE;IACpD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,QAAQ,KAAK,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,IAAI,GAAG,QAAQ;SAClB,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC5B,OAAO,IAAI,IAAI,MAAM,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAW,EAAmB,EAAE;IAC9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,kBAAkB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,IAI9C,EAAqB,EAAE;IACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,0BAA0B,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,oBAAoB;SAChC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SACtD,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;YAAE,MAAM;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QACrG,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC;gBACH,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YAAE,SAAS;QAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAmBF,MAAM,eAAe,GAAG,KAAK,EAC3B,IAAsD,EAClB,EAAE;IACtC,MAAM,YAAY,GAAG,MAAM,mCAAmC,EAAE,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,YAAY,CAAC,YAAY,CAAC;IACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5C,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,WAAW;YAC3C,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,YAAY;SAC9C,CAAC,CAAC,CAAC;QACJ,OAAO,UAAU,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,IAI1C,EAAyC,EAAE;IAC1C,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,IAAI,eAAe,CAAC;IAClE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAiC,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/C,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,EAAE,GAAG,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;YAClC,GAAG;YACH,OAAO;YACP,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC;YACT,EAAE;YACF,GAAG;YACH,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACxD,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,MAAM,EAAE,aAAa,CAAC,MAAM;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAQF;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAsB,EAAE;IAC3D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,2CAA2C;MAC7E,+DAA+D;MAC/D,kDAAkD;MAClD,+EAA+E;MAC/E,6FAA6F;MAC7F,+EAA+E;MAC/E,oFAAoF;MACpF,gFAAgF;MAChF,uCAAuC,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAA0B,EAAE;IAC7E,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,UAAU,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IACvE,CAAC;IACD,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAC7C,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAOxC,EAA4D,EAAE;IAC7D,MAAM,YAAY,GAAG,MAAM,mCAAmC,EAAE,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,YAAY,CAAC,YAAY,CAAC;IACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,MAAM,CAAC,GAAG;gBAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;YAC1E,IAAI,MAAM,CAAC,aAAa;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;YAC3E,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E,wEAAwE;QACxE,2EAA2E;QAC3E,uEAAuE;QACvE,4EAA4E;QAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzF,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM;YACvE,CAAC,CAAC,MAAM,CAAC,MAA+C;YACxD,CAAC,CAAC,SAAS,CAAC;QACd,OAAO;YACL,KAAK,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;YAC7E,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;YACjF,GAAG,EAAE,WAAW;SACjB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"redesign-capture.js","sourceRoot":"","sources":["../src/redesign-capture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { RedesignCapturedPageRecord, RedesignDraftPageRecord, RedesignPickPageRecord, RedesignRecord } from './redesign-workspace.js';
2
+ /**
3
+ * Per-page candidate ownership for `12ui redesign`.
4
+ *
5
+ * Capture already knows each page's route and screenshot. Draft and pick must
6
+ * use those facts: a shared homepage winner is not a design for a later
7
+ * captured page. This module is the one place that decides which pages still
8
+ * need their own draw, how that draw is identified, and that a missing pick
9
+ * is a failure rather than a silent reuse of another page's candidate.
10
+ */
11
+ export declare const redesignPrimaryPage: (pages: readonly RedesignCapturedPageRecord[]) => RedesignCapturedPageRecord;
12
+ export declare const isRedesignPrimaryPage: (pages: readonly RedesignCapturedPageRecord[], pageId: string) => boolean;
13
+ /**
14
+ * Primary pages keep the hosted plan concept so an ordinary one-page redesign
15
+ * claims the same draft it always did. Every other page appends its captured
16
+ * route so the image prompt, and therefore the purchase, is page-specific.
17
+ */
18
+ export declare const redesignPageDraftConcept: (args: {
19
+ planConcept: string;
20
+ page: RedesignCapturedPageRecord;
21
+ primary: RedesignCapturedPageRecord;
22
+ }) => string;
23
+ /**
24
+ * Paid-identity extra for a non-primary page. Omitted on the primary so keys
25
+ * claimed before per-page drafts existed still replay (CLAUDE.md item 3).
26
+ */
27
+ export declare const redesignPageDraftRoute: (args: {
28
+ page: RedesignCapturedPageRecord;
29
+ primary: RedesignCapturedPageRecord;
30
+ }) => string | undefined;
31
+ export declare const recordedDraftPages: (record: RedesignRecord) => RedesignDraftPageRecord[];
32
+ export declare const recordedPickPages: (record: RedesignRecord) => RedesignPickPageRecord[];
33
+ export declare const recordedDraftRunIds: (record: RedesignRecord) => string[];
34
+ export declare const pagesNeedingDraft: (record: RedesignRecord) => RedesignCapturedPageRecord[];
35
+ export declare const pagesNeedingPick: (record: RedesignRecord) => RedesignCapturedPageRecord[];
36
+ export declare const draftForPage: (record: RedesignRecord, pageId: string) => RedesignDraftPageRecord;
37
+ export declare const pickForPage: (record: RedesignRecord, pageId: string) => RedesignPickPageRecord;
38
+ export declare const withDraftPages: (pages: readonly RedesignDraftPageRecord[], primaryPageId: string) => NonNullable<RedesignRecord["draft"]>;
39
+ export declare const withPickPages: (pages: readonly RedesignPickPageRecord[], primaryPageId: string) => NonNullable<RedesignRecord["pick"]>;
40
+ //# sourceMappingURL=redesign-page-candidates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redesign-page-candidates.d.ts","sourceRoot":"","sources":["../src/redesign-page-candidates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AAEH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,SAAS,0BAA0B,EAAE,KAC3C,0BAIF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,OAAO,SAAS,0BAA0B,EAAE,EAC5C,QAAQ,MAAM,KACb,OAAkC,CAAC;AAEtC;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,MAAM;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,0BAA0B,CAAC;IACjC,OAAO,EAAE,0BAA0B,CAAC;CACrC,KAAG,MAOH,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM;IAC3C,IAAI,EAAE,0BAA0B,CAAC;IACjC,OAAO,EAAE,0BAA0B,CAAC;CACrC,KAAG,MAAM,GAAG,SAEZ,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,cAAc,KAAG,uBAAuB,EAgBlF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,cAAc,KAAG,sBAAsB,EAmBhF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,QAAQ,cAAc,KAAG,MAAM,EAIlE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,cAAc,KAAG,0BAA0B,EAGpF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,cAAc,KAAG,0BAA0B,EAGnF,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,QAAQ,cAAc,EACtB,QAAQ,MAAM,KACb,uBAQF,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,QAAQ,cAAc,EACtB,QAAQ,MAAM,KACb,sBAQF,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,SAAS,uBAAuB,EAAE,EACzC,eAAe,MAAM,KACpB,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,CAQrC,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,OAAO,SAAS,sBAAsB,EAAE,EACxC,eAAe,MAAM,KACpB,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CASpC,CAAC"}
@@ -0,0 +1,131 @@
1
+ import { readConceptValue } from './concept-input.js';
2
+ /**
3
+ * Per-page candidate ownership for `12ui redesign`.
4
+ *
5
+ * Capture already knows each page's route and screenshot. Draft and pick must
6
+ * use those facts: a shared homepage winner is not a design for a later
7
+ * captured page. This module is the one place that decides which pages still
8
+ * need their own draw, how that draw is identified, and that a missing pick
9
+ * is a failure rather than a silent reuse of another page's candidate.
10
+ */
11
+ export const redesignPrimaryPage = (pages) => {
12
+ const homepage = pages[0];
13
+ if (!homepage)
14
+ throw new Error('Capture recorded no pages');
15
+ return homepage;
16
+ };
17
+ export const isRedesignPrimaryPage = (pages, pageId) => pages[0]?.id === pageId;
18
+ /**
19
+ * Primary pages keep the hosted plan concept so an ordinary one-page redesign
20
+ * claims the same draft it always did. Every other page appends its captured
21
+ * route so the image prompt, and therefore the purchase, is page-specific.
22
+ */
23
+ export const redesignPageDraftConcept = (args) => {
24
+ if (args.page.id === args.primary.id)
25
+ return args.planConcept;
26
+ return readConceptValue({
27
+ value: `${args.planConcept} Rebuild the captured page at ${args.page.url}.`,
28
+ flag: '--direction',
29
+ trimHint: 'Shorten the direction; each page URL is appended automatically.',
30
+ });
31
+ };
32
+ /**
33
+ * Paid-identity extra for a non-primary page. Omitted on the primary so keys
34
+ * claimed before per-page drafts existed still replay (CLAUDE.md item 3).
35
+ */
36
+ export const redesignPageDraftRoute = (args) => (args.page.id === args.primary.id ? undefined : args.page.url);
37
+ export const recordedDraftPages = (record) => {
38
+ if (!record.draft)
39
+ return [];
40
+ const primaryId = record.capture?.pages[0]?.id;
41
+ if (!primaryId)
42
+ return [];
43
+ const primary = {
44
+ pageId: primaryId,
45
+ runDir: record.draft.runDir,
46
+ runId: record.draft.runId,
47
+ };
48
+ if (!record.draft.pages || record.draft.pages.length === 0)
49
+ return [primary];
50
+ const recordedPrimary = record.draft.pages.find((page) => page.pageId === primaryId);
51
+ if (!recordedPrimary)
52
+ return [primary, ...record.draft.pages];
53
+ if (recordedPrimary.runDir !== primary.runDir || recordedPrimary.runId !== primary.runId) {
54
+ throw new Error('Recorded primary draft does not match the durable top-level draft');
55
+ }
56
+ return [...record.draft.pages];
57
+ };
58
+ export const recordedPickPages = (record) => {
59
+ if (!record.pick)
60
+ return [];
61
+ const primaryId = record.capture?.pages[0]?.id;
62
+ if (!primaryId)
63
+ return [];
64
+ const primary = {
65
+ pageId: primaryId,
66
+ slot: record.pick.slot,
67
+ imagePath: record.pick.imagePath,
68
+ sha256: record.pick.sha256,
69
+ };
70
+ if (!record.pick.pages || record.pick.pages.length === 0)
71
+ return [primary];
72
+ const recordedPrimary = record.pick.pages.find((page) => page.pageId === primaryId);
73
+ if (!recordedPrimary)
74
+ return [primary, ...record.pick.pages];
75
+ if (recordedPrimary.slot !== primary.slot
76
+ || recordedPrimary.imagePath !== primary.imagePath
77
+ || recordedPrimary.sha256 !== primary.sha256) {
78
+ throw new Error('Recorded primary pick does not match the durable top-level pick');
79
+ }
80
+ return [...record.pick.pages];
81
+ };
82
+ export const recordedDraftRunIds = (record) => {
83
+ const pages = recordedDraftPages(record);
84
+ if (pages.length > 0)
85
+ return pages.map((page) => page.runId);
86
+ return record.draft ? [record.draft.runId] : [];
87
+ };
88
+ export const pagesNeedingDraft = (record) => {
89
+ const done = new Set(recordedDraftPages(record).map((page) => page.pageId));
90
+ return (record.capture?.pages ?? []).filter((page) => !done.has(page.id));
91
+ };
92
+ export const pagesNeedingPick = (record) => {
93
+ const done = new Set(recordedPickPages(record).map((page) => page.pageId));
94
+ return (record.capture?.pages ?? []).filter((page) => !done.has(page.id));
95
+ };
96
+ export const draftForPage = (record, pageId) => {
97
+ const found = recordedDraftPages(record).find((page) => page.pageId === pageId);
98
+ if (!found) {
99
+ throw new Error(`Captured page ${pageId} has no page-specific draft; re-run from draft so it can buy its own candidates.`);
100
+ }
101
+ return found;
102
+ };
103
+ export const pickForPage = (record, pageId) => {
104
+ const found = recordedPickPages(record).find((page) => page.pageId === pageId);
105
+ if (!found) {
106
+ throw new Error(`Captured page ${pageId} has no page-specific pick; refusing to reuse another page's winner.`);
107
+ }
108
+ return found;
109
+ };
110
+ export const withDraftPages = (pages, primaryPageId) => {
111
+ const primary = pages.find((page) => page.pageId === primaryPageId) ?? pages[0];
112
+ if (!primary)
113
+ throw new Error('Cannot record a draft with no pages');
114
+ return {
115
+ runDir: primary.runDir,
116
+ runId: primary.runId,
117
+ pages: [...pages],
118
+ };
119
+ };
120
+ export const withPickPages = (pages, primaryPageId) => {
121
+ const primary = pages.find((page) => page.pageId === primaryPageId) ?? pages[0];
122
+ if (!primary)
123
+ throw new Error('Cannot record a pick with no pages');
124
+ return {
125
+ slot: primary.slot,
126
+ imagePath: primary.imagePath,
127
+ sha256: primary.sha256,
128
+ pages: [...pages],
129
+ };
130
+ };
131
+ //# sourceMappingURL=redesign-page-candidates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redesign-page-candidates.js","sourceRoot":"","sources":["../src/redesign-page-candidates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { RedesignCapturedPageRecord, RedesignDraftPageRecord, RedesignPickPageRecord, RedesignRecord } from './redesign-workspace.js';
2
+ /**
3
+ * Durable proof that a branch page owns its selected draft. Parent records
4
+ * name file locations for navigation, but those mutable paths are never the
5
+ * identity: the route, capture digest, hosted run ID, completion run ID, and
6
+ * materialized candidate digest must all agree before branch can claim work.
7
+ */
8
+ export declare class InvalidRedesignPageOwnershipError extends Error {
9
+ constructor(pageId: string, detail: string);
10
+ }
11
+ export type VerifiedRedesignPageBranchInput = {
12
+ page: RedesignCapturedPageRecord;
13
+ draft: RedesignDraftPageRecord;
14
+ pick: RedesignPickPageRecord;
15
+ /**
16
+ * The exact DraftCandidateRecord.outputPath, proven owned and read from disk
17
+ * in this verification pass. Child branch artifacts must bind to this value,
18
+ * never merely to a digest that another page could also name.
19
+ */
20
+ winner: {
21
+ path: string;
22
+ sha256: string;
23
+ bytes: number;
24
+ };
25
+ };
26
+ /** Validate one page's draft, completion, and selected materialized candidate. */
27
+ export declare const verifyRedesignPageBranchInput: (args: {
28
+ record: RedesignRecord;
29
+ page: RedesignCapturedPageRecord;
30
+ }) => Promise<VerifiedRedesignPageBranchInput>;
31
+ /** Validate every pending branch input before any page is allowed to dispatch. */
32
+ export declare const verifyRedesignPageBranchInputs: (args: {
33
+ record: RedesignRecord;
34
+ pages: readonly RedesignCapturedPageRecord[];
35
+ }) => Promise<VerifiedRedesignPageBranchInput[]>;
36
+ //# sourceMappingURL=redesign-page-ownership.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redesign-page-ownership.d.ts","sourceRoot":"","sources":["../src/redesign-page-ownership.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC;;;;;GAKG;AAEH,qBAAa,iCAAkC,SAAQ,KAAK;gBAC9C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI3C;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,0BAA0B,CAAC;IACjC,KAAK,EAAE,uBAAuB,CAAC;IAC/B,IAAI,EAAE,sBAAsB,CAAC;IAC7B;;;;OAIG;IACH,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD,CAAC;AAiGF,kFAAkF;AAClF,eAAO,MAAM,6BAA6B,GAAU,MAAM;IACxD,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,0BAA0B,CAAC;CAClC,KAAG,OAAO,CAAC,+BAA+B,CAqG1C,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,8BAA8B,GAAU,MAAM;IACzD,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,SAAS,0BAA0B,EAAE,CAAC;CAC9C,KAAG,OAAO,CAAC,+BAA+B,EAAE,CAE5C,CAAC"}