@12ui/design 0.2.56 → 0.2.58

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 (429) 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/branch-client.d.ts +86 -2
  6. package/dist/branch-client.d.ts.map +1 -1
  7. package/dist/branch-client.js +31 -0
  8. package/dist/branch-client.js.map +1 -1
  9. package/dist/cli-arguments.d.ts.map +1 -1
  10. package/dist/cli-arguments.js +3 -1
  11. package/dist/cli-arguments.js.map +1 -1
  12. package/dist/cli-capabilities.d.ts +1 -1
  13. package/dist/cli-conversion-derivation.js +2 -2
  14. package/dist/cli-conversion-derivation.js.map +1 -1
  15. package/dist/cli-convert-command.d.ts +2 -0
  16. package/dist/cli-convert-command.d.ts.map +1 -1
  17. package/dist/cli-convert-command.js +176 -38
  18. package/dist/cli-convert-command.js.map +1 -1
  19. package/dist/cli-corpus-command.js +2 -2
  20. package/dist/cli-corpus-command.js.map +1 -1
  21. package/dist/cli-corpus-evidence.d.ts.map +1 -1
  22. package/dist/cli-corpus-evidence.js +2 -1
  23. package/dist/cli-corpus-evidence.js.map +1 -1
  24. package/dist/cli-corpus-reference-downloads.d.ts +1 -0
  25. package/dist/cli-corpus-reference-downloads.d.ts.map +1 -1
  26. package/dist/cli-corpus-reference-downloads.js +13 -3
  27. package/dist/cli-corpus-reference-downloads.js.map +1 -1
  28. package/dist/cli-corpus-types.d.ts +2 -0
  29. package/dist/cli-corpus-types.d.ts.map +1 -1
  30. package/dist/cli-draft-command.d.ts +9 -0
  31. package/dist/cli-draft-command.d.ts.map +1 -1
  32. package/dist/cli-draft-command.js +26 -1
  33. package/dist/cli-draft-command.js.map +1 -1
  34. package/dist/cli-help/design.d.ts +7 -4
  35. package/dist/cli-help/design.d.ts.map +1 -1
  36. package/dist/cli-help/design.js +23 -6
  37. package/dist/cli-help/design.js.map +1 -1
  38. package/dist/cli-help/index.d.ts +9 -6
  39. package/dist/cli-help/index.d.ts.map +1 -1
  40. package/dist/cli-help/meta.d.ts +2 -2
  41. package/dist/cli-help/meta.d.ts.map +1 -1
  42. package/dist/cli-help/meta.js +4 -1
  43. package/dist/cli-help/meta.js.map +1 -1
  44. package/dist/cli-improve-command.d.ts.map +1 -1
  45. package/dist/cli-improve-command.js +273 -28
  46. package/dist/cli-improve-command.js.map +1 -1
  47. package/dist/cli-redesign-command.d.ts.map +1 -1
  48. package/dist/cli-redesign-command.js +97 -24
  49. package/dist/cli-redesign-command.js.map +1 -1
  50. package/dist/cli-run.d.ts.map +1 -1
  51. package/dist/cli-run.js +13 -3
  52. package/dist/cli-run.js.map +1 -1
  53. package/dist/cli-spend-command.d.ts +12 -1
  54. package/dist/cli-spend-command.d.ts.map +1 -1
  55. package/dist/cli-spend-command.js +94 -2
  56. package/dist/cli-spend-command.js.map +1 -1
  57. package/dist/cli-usage.js +5 -5
  58. package/dist/cli-usage.js.map +1 -1
  59. package/dist/concept-input.d.ts +6 -56
  60. package/dist/concept-input.d.ts.map +1 -1
  61. package/dist/concept-input.js +6 -65
  62. package/dist/concept-input.js.map +1 -1
  63. package/dist/conversion-client.d.ts +92 -3
  64. package/dist/conversion-client.d.ts.map +1 -1
  65. package/dist/conversion-client.js +317 -23
  66. package/dist/conversion-client.js.map +1 -1
  67. package/dist/corpus-client.d.ts +7 -1
  68. package/dist/corpus-client.d.ts.map +1 -1
  69. package/dist/corpus-client.js +3 -2
  70. package/dist/corpus-client.js.map +1 -1
  71. package/dist/corpus-reference-download-retry.d.ts +68 -0
  72. package/dist/corpus-reference-download-retry.d.ts.map +1 -0
  73. package/dist/corpus-reference-download-retry.js +123 -0
  74. package/dist/corpus-reference-download-retry.js.map +1 -0
  75. package/dist/corpus-request-error.d.ts +17 -0
  76. package/dist/corpus-request-error.d.ts.map +1 -0
  77. package/dist/corpus-request-error.js +21 -0
  78. package/dist/corpus-request-error.js.map +1 -0
  79. package/dist/draft-run.d.ts +15 -0
  80. package/dist/draft-run.d.ts.map +1 -1
  81. package/dist/draft-run.js +32 -5
  82. package/dist/draft-run.js.map +1 -1
  83. package/dist/draft-workspace.d.ts +2 -1
  84. package/dist/draft-workspace.d.ts.map +1 -1
  85. package/dist/draft-workspace.js.map +1 -1
  86. package/dist/hosted-draft-identity.d.ts +9 -0
  87. package/dist/hosted-draft-identity.d.ts.map +1 -1
  88. package/dist/hosted-draft-identity.js +2 -0
  89. package/dist/hosted-draft-identity.js.map +1 -1
  90. package/dist/improve-added-specs.d.ts +12 -31
  91. package/dist/improve-added-specs.d.ts.map +1 -1
  92. package/dist/improve-added-specs.js +64 -152
  93. package/dist/improve-added-specs.js.map +1 -1
  94. package/dist/improve-artifact-writer.d.ts +13 -0
  95. package/dist/improve-artifact-writer.d.ts.map +1 -0
  96. package/dist/improve-artifact-writer.js +27 -0
  97. package/dist/improve-artifact-writer.js.map +1 -0
  98. package/dist/improve-bootstrap-history.d.ts +21 -0
  99. package/dist/improve-bootstrap-history.d.ts.map +1 -0
  100. package/dist/improve-bootstrap-history.js +43 -0
  101. package/dist/improve-bootstrap-history.js.map +1 -0
  102. package/dist/improve-bootstrap-secret.d.ts +35 -0
  103. package/dist/improve-bootstrap-secret.d.ts.map +1 -0
  104. package/dist/improve-bootstrap-secret.js +61 -0
  105. package/dist/improve-bootstrap-secret.js.map +1 -0
  106. package/dist/improve-branch-stage.d.ts +10 -0
  107. package/dist/improve-branch-stage.d.ts.map +1 -0
  108. package/dist/improve-branch-stage.js +325 -0
  109. package/dist/improve-branch-stage.js.map +1 -0
  110. package/dist/improve-capture-redirect.d.ts +65 -0
  111. package/dist/improve-capture-redirect.d.ts.map +1 -0
  112. package/dist/improve-capture-redirect.js +85 -0
  113. package/dist/improve-capture-redirect.js.map +1 -0
  114. package/dist/improve-capture-words.d.ts +43 -0
  115. package/dist/improve-capture-words.d.ts.map +1 -0
  116. package/dist/improve-capture-words.js +25 -0
  117. package/dist/improve-capture-words.js.map +1 -0
  118. package/dist/improve-concept.d.ts +6 -7
  119. package/dist/improve-concept.d.ts.map +1 -1
  120. package/dist/improve-concept.js +12 -38
  121. package/dist/improve-concept.js.map +1 -1
  122. package/dist/improve-conversion-attempts.d.ts +21 -9
  123. package/dist/improve-conversion-attempts.d.ts.map +1 -1
  124. package/dist/improve-conversion-attempts.js +6 -1
  125. package/dist/improve-conversion-attempts.js.map +1 -1
  126. package/dist/improve-conversion-stage.d.ts +20 -2
  127. package/dist/improve-conversion-stage.d.ts.map +1 -1
  128. package/dist/improve-conversion-stage.js +386 -178
  129. package/dist/improve-conversion-stage.js.map +1 -1
  130. package/dist/improve-convert-progress.d.ts +44 -0
  131. package/dist/improve-convert-progress.d.ts.map +1 -0
  132. package/dist/improve-convert-progress.js +47 -0
  133. package/dist/improve-convert-progress.js.map +1 -0
  134. package/dist/improve-convert-resilience.d.ts +96 -58
  135. package/dist/improve-convert-resilience.d.ts.map +1 -1
  136. package/dist/improve-convert-resilience.js +128 -72
  137. package/dist/improve-convert-resilience.js.map +1 -1
  138. package/dist/improve-core/concept-input.d.ts +80 -0
  139. package/dist/improve-core/concept-input.d.ts.map +1 -0
  140. package/dist/improve-core/concept-input.js +92 -0
  141. package/dist/improve-core/concept-input.js.map +1 -0
  142. package/dist/improve-core/improve-added-specs.d.ts +62 -0
  143. package/dist/improve-core/improve-added-specs.d.ts.map +1 -0
  144. package/dist/improve-core/improve-added-specs.js +160 -0
  145. package/dist/improve-core/improve-added-specs.js.map +1 -0
  146. package/dist/improve-core/improve-artifacts.d.ts +18 -0
  147. package/dist/improve-core/improve-artifacts.d.ts.map +1 -0
  148. package/dist/improve-core/improve-artifacts.js +4 -0
  149. package/dist/improve-core/improve-artifacts.js.map +1 -0
  150. package/dist/improve-core/improve-concept.d.ts +7 -0
  151. package/dist/improve-core/improve-concept.d.ts.map +1 -0
  152. package/dist/improve-core/improve-concept.js +185 -0
  153. package/dist/improve-core/improve-concept.js.map +1 -0
  154. package/dist/improve-core/improve-discovery.d.ts +84 -0
  155. package/dist/improve-core/improve-discovery.d.ts.map +1 -0
  156. package/dist/improve-core/improve-discovery.js +154 -0
  157. package/dist/improve-core/improve-discovery.js.map +1 -0
  158. package/dist/improve-core/improve-dom-anchor.d.ts.map +1 -0
  159. package/dist/{improve-dom-anchor.js → improve-core/improve-dom-anchor.js} +2 -0
  160. package/dist/improve-core/improve-dom-anchor.js.map +1 -0
  161. package/dist/improve-core/improve-dom-diff.d.ts +59 -0
  162. package/dist/improve-core/improve-dom-diff.d.ts.map +1 -0
  163. package/dist/improve-core/improve-dom-diff.js +151 -0
  164. package/dist/improve-core/improve-dom-diff.js.map +1 -0
  165. package/dist/improve-core/improve-dom-extract.d.ts.map +1 -0
  166. package/dist/{improve-dom-extract.js → improve-core/improve-dom-extract.js} +2 -0
  167. package/dist/improve-core/improve-dom-extract.js.map +1 -0
  168. package/dist/improve-core/improve-dom-gate.d.ts +49 -0
  169. package/dist/improve-core/improve-dom-gate.d.ts.map +1 -0
  170. package/dist/improve-core/improve-dom-gate.js +99 -0
  171. package/dist/improve-core/improve-dom-gate.js.map +1 -0
  172. package/dist/improve-core/improve-dom-neighbour.d.ts.map +1 -0
  173. package/dist/{improve-dom-neighbour.js → improve-core/improve-dom-neighbour.js} +2 -0
  174. package/dist/improve-core/improve-dom-neighbour.js.map +1 -0
  175. package/dist/improve-core/improve-dom-scale.d.ts.map +1 -0
  176. package/dist/{improve-dom-scale.js → improve-core/improve-dom-scale.js} +2 -0
  177. package/dist/improve-core/improve-dom-scale.js.map +1 -0
  178. package/dist/improve-core/improve-icon-svg.d.ts +29 -0
  179. package/dist/improve-core/improve-icon-svg.d.ts.map +1 -0
  180. package/dist/improve-core/improve-icon-svg.js +85 -0
  181. package/dist/improve-core/improve-icon-svg.js.map +1 -0
  182. package/dist/improve-core/improve-kit-asset-model.d.ts +177 -0
  183. package/dist/improve-core/improve-kit-asset-model.d.ts.map +1 -0
  184. package/dist/improve-core/improve-kit-asset-model.js +269 -0
  185. package/dist/improve-core/improve-kit-asset-model.js.map +1 -0
  186. package/dist/improve-core/improve-layerdoc-diff.d.ts.map +1 -0
  187. package/dist/{improve-layerdoc-diff.js → improve-core/improve-layerdoc-diff.js} +2 -0
  188. package/dist/improve-core/improve-layerdoc-diff.js.map +1 -0
  189. package/dist/{improve-layerdoc-types.d.ts → improve-core/improve-layerdoc-types.d.ts} +9 -0
  190. package/dist/improve-core/improve-layerdoc-types.d.ts.map +1 -0
  191. package/dist/improve-core/improve-layerdoc-types.js +4 -0
  192. package/dist/improve-core/improve-layerdoc-types.js.map +1 -0
  193. package/dist/improve-core/improve-page-words.d.ts +180 -0
  194. package/dist/improve-core/improve-page-words.d.ts.map +1 -0
  195. package/dist/improve-core/improve-page-words.js +303 -0
  196. package/dist/improve-core/improve-page-words.js.map +1 -0
  197. package/dist/{improve-plan-annotated-render.d.ts → improve-core/improve-plan-annotated-render.d.ts} +19 -2
  198. package/dist/improve-core/improve-plan-annotated-render.d.ts.map +1 -0
  199. package/dist/{improve-plan-annotated-render.js → improve-core/improve-plan-annotated-render.js} +77 -28
  200. package/dist/improve-core/improve-plan-annotated-render.js.map +1 -0
  201. package/dist/improve-core/improve-plan-annotator.d.ts +34 -0
  202. package/dist/improve-core/improve-plan-annotator.d.ts.map +1 -0
  203. package/dist/improve-core/improve-plan-annotator.js +52 -0
  204. package/dist/improve-core/improve-plan-annotator.js.map +1 -0
  205. package/dist/{improve-plan-render.d.ts → improve-core/improve-plan-render.d.ts} +2 -1
  206. package/dist/improve-core/improve-plan-render.d.ts.map +1 -0
  207. package/dist/{improve-plan-render.js → improve-core/improve-plan-render.js} +7 -1
  208. package/dist/improve-core/improve-plan-render.js.map +1 -0
  209. package/dist/improve-core/improve-plan-vector-keep.d.ts +29 -0
  210. package/dist/improve-core/improve-plan-vector-keep.d.ts.map +1 -0
  211. package/dist/improve-core/improve-plan-vector-keep.js +68 -0
  212. package/dist/improve-core/improve-plan-vector-keep.js.map +1 -0
  213. package/dist/{improve-raster-layers-section.d.ts → improve-core/improve-raster-layers-section.d.ts} +9 -1
  214. package/dist/improve-core/improve-raster-layers-section.d.ts.map +1 -0
  215. package/dist/{improve-raster-layers-section.js → improve-core/improve-raster-layers-section.js} +5 -2
  216. package/dist/improve-core/improve-raster-layers-section.js.map +1 -0
  217. package/dist/improve-core/improve-refusal.d.ts +6 -0
  218. package/dist/improve-core/improve-refusal.d.ts.map +1 -0
  219. package/dist/improve-core/improve-refusal.js +27 -0
  220. package/dist/improve-core/improve-refusal.js.map +1 -0
  221. package/dist/improve-core/improve-retain.d.ts +121 -0
  222. package/dist/improve-core/improve-retain.d.ts.map +1 -0
  223. package/dist/improve-core/improve-retain.js +115 -0
  224. package/dist/improve-core/improve-retain.js.map +1 -0
  225. package/dist/improve-core/improve-site-plan.d.ts +75 -0
  226. package/dist/improve-core/improve-site-plan.d.ts.map +1 -0
  227. package/dist/improve-core/improve-site-plan.js +135 -0
  228. package/dist/improve-core/improve-site-plan.js.map +1 -0
  229. package/dist/improve-core/improve-site-shell.d.ts +56 -0
  230. package/dist/improve-core/improve-site-shell.d.ts.map +1 -0
  231. package/dist/improve-core/improve-site-shell.js +152 -0
  232. package/dist/improve-core/improve-site-shell.js.map +1 -0
  233. package/dist/improve-core/improve-site-tokens.d.ts +44 -0
  234. package/dist/improve-core/improve-site-tokens.d.ts.map +1 -0
  235. package/dist/improve-core/improve-site-tokens.js +87 -0
  236. package/dist/improve-core/improve-site-tokens.js.map +1 -0
  237. package/dist/improve-core/improve-source-hints.d.ts +25 -0
  238. package/dist/improve-core/improve-source-hints.d.ts.map +1 -0
  239. package/dist/improve-core/improve-source-hints.js +17 -0
  240. package/dist/improve-core/improve-source-hints.js.map +1 -0
  241. package/dist/{improve-token-patch.d.ts → improve-core/improve-token-patch.d.ts} +2 -0
  242. package/dist/improve-core/improve-token-patch.d.ts.map +1 -0
  243. package/dist/{improve-token-patch.js → improve-core/improve-token-patch.js} +25 -5
  244. package/dist/improve-core/improve-token-patch.js.map +1 -0
  245. package/dist/improve-core/index.d.ts +47 -0
  246. package/dist/improve-core/index.d.ts.map +1 -0
  247. package/dist/improve-core/index.js +49 -0
  248. package/dist/improve-core/index.js.map +1 -0
  249. package/dist/improve-delivery-stages.d.ts +6 -0
  250. package/dist/improve-delivery-stages.d.ts.map +1 -1
  251. package/dist/improve-delivery-stages.js +91 -6
  252. package/dist/improve-delivery-stages.js.map +1 -1
  253. package/dist/improve-dom-diff.d.ts +8 -24
  254. package/dist/improve-dom-diff.d.ts.map +1 -1
  255. package/dist/improve-dom-diff.js +23 -123
  256. package/dist/improve-dom-diff.js.map +1 -1
  257. package/dist/improve-dom-gate.d.ts +1 -18
  258. package/dist/improve-dom-gate.d.ts.map +1 -1
  259. package/dist/improve-dom-gate.js +1 -46
  260. package/dist/improve-dom-gate.js.map +1 -1
  261. package/dist/improve-generation-stages.d.ts +0 -2
  262. package/dist/improve-generation-stages.d.ts.map +1 -1
  263. package/dist/improve-generation-stages.js +191 -15
  264. package/dist/improve-generation-stages.js.map +1 -1
  265. package/dist/improve-kit-assets.d.ts +8 -116
  266. package/dist/improve-kit-assets.d.ts.map +1 -1
  267. package/dist/improve-kit-assets.js +9 -229
  268. package/dist/improve-kit-assets.js.map +1 -1
  269. package/dist/improve-kit-ignore.d.ts +32 -0
  270. package/dist/improve-kit-ignore.d.ts.map +1 -0
  271. package/dist/improve-kit-ignore.js +111 -0
  272. package/dist/improve-kit-ignore.js.map +1 -0
  273. package/dist/improve-kit-readme.d.ts +4 -0
  274. package/dist/improve-kit-readme.d.ts.map +1 -1
  275. package/dist/improve-kit-readme.js +155 -24
  276. package/dist/improve-kit-readme.js.map +1 -1
  277. package/dist/improve-kit-stall.d.ts +51 -3
  278. package/dist/improve-kit-stall.d.ts.map +1 -1
  279. package/dist/improve-kit-stall.js +205 -21
  280. package/dist/improve-kit-stall.js.map +1 -1
  281. package/dist/improve-kit-status.d.ts +36 -0
  282. package/dist/improve-kit-status.d.ts.map +1 -1
  283. package/dist/improve-kit-status.js +82 -7
  284. package/dist/improve-kit-status.js.map +1 -1
  285. package/dist/improve-options.d.ts +14 -0
  286. package/dist/improve-options.d.ts.map +1 -1
  287. package/dist/improve-options.js +95 -12
  288. package/dist/improve-options.js.map +1 -1
  289. package/dist/improve-passthrough-flags.d.ts +8 -0
  290. package/dist/improve-passthrough-flags.d.ts.map +1 -0
  291. package/dist/improve-passthrough-flags.js +11 -0
  292. package/dist/improve-passthrough-flags.js.map +1 -0
  293. package/dist/improve-plan-annotator.d.ts +13 -2
  294. package/dist/improve-plan-annotator.d.ts.map +1 -1
  295. package/dist/improve-plan-annotator.js +35 -37
  296. package/dist/improve-plan-annotator.js.map +1 -1
  297. package/dist/improve-pricing-plan.d.ts +3 -0
  298. package/dist/improve-pricing-plan.d.ts.map +1 -1
  299. package/dist/improve-pricing-plan.js +33 -5
  300. package/dist/improve-pricing-plan.js.map +1 -1
  301. package/dist/improve-recheck.d.ts +9 -0
  302. package/dist/improve-recheck.d.ts.map +1 -0
  303. package/dist/improve-recheck.js +200 -0
  304. package/dist/improve-recheck.js.map +1 -0
  305. package/dist/improve-reset.d.ts.map +1 -1
  306. package/dist/improve-reset.js +11 -0
  307. package/dist/improve-reset.js.map +1 -1
  308. package/dist/improve-run-summary.d.ts +6 -0
  309. package/dist/improve-run-summary.d.ts.map +1 -1
  310. package/dist/improve-run-summary.js +77 -7
  311. package/dist/improve-run-summary.js.map +1 -1
  312. package/dist/improve-site-plan.d.ts +57 -0
  313. package/dist/improve-site-plan.d.ts.map +1 -0
  314. package/dist/improve-site-plan.js +79 -0
  315. package/dist/improve-site-plan.js.map +1 -0
  316. package/dist/improve-site-shell.d.ts +11 -0
  317. package/dist/improve-site-shell.d.ts.map +1 -0
  318. package/dist/improve-site-shell.js +24 -0
  319. package/dist/improve-site-shell.js.map +1 -0
  320. package/dist/improve-site-stage.d.ts +10 -0
  321. package/dist/improve-site-stage.d.ts.map +1 -0
  322. package/dist/improve-site-stage.js +84 -0
  323. package/dist/improve-site-stage.js.map +1 -0
  324. package/dist/improve-site-tokens.d.ts +9 -0
  325. package/dist/improve-site-tokens.d.ts.map +1 -0
  326. package/dist/improve-site-tokens.js +17 -0
  327. package/dist/improve-site-tokens.js.map +1 -0
  328. package/dist/improve-source-hints.d.ts +3 -12
  329. package/dist/improve-source-hints.d.ts.map +1 -1
  330. package/dist/improve-source-hints.js +4 -5
  331. package/dist/improve-source-hints.js.map +1 -1
  332. package/dist/improve-spend-ledger.d.ts +69 -0
  333. package/dist/improve-spend-ledger.d.ts.map +1 -0
  334. package/dist/improve-spend-ledger.js +118 -0
  335. package/dist/improve-spend-ledger.js.map +1 -0
  336. package/dist/improve-stage-runners.d.ts +5 -2
  337. package/dist/improve-stage-runners.d.ts.map +1 -1
  338. package/dist/improve-stage-runners.js +5 -2
  339. package/dist/improve-stage-runners.js.map +1 -1
  340. package/dist/improve-stage-shared.d.ts +49 -2
  341. package/dist/improve-stage-shared.d.ts.map +1 -1
  342. package/dist/improve-stage-shared.js +80 -3
  343. package/dist/improve-stage-shared.js.map +1 -1
  344. package/dist/improve-stop-handler.d.ts +15 -0
  345. package/dist/improve-stop-handler.d.ts.map +1 -1
  346. package/dist/improve-stop-handler.js +74 -3
  347. package/dist/improve-stop-handler.js.map +1 -1
  348. package/dist/improve-terminal-event.d.ts.map +1 -1
  349. package/dist/improve-terminal-event.js +13 -4
  350. package/dist/improve-terminal-event.js.map +1 -1
  351. package/dist/improve-workspace.d.ts +282 -9
  352. package/dist/improve-workspace.d.ts.map +1 -1
  353. package/dist/improve-workspace.js +250 -78
  354. package/dist/improve-workspace.js.map +1 -1
  355. package/dist/index.d.ts +2 -1
  356. package/dist/index.d.ts.map +1 -1
  357. package/dist/index.js +1 -0
  358. package/dist/index.js.map +1 -1
  359. package/dist/legacy-skill-catalog.d.ts.map +1 -1
  360. package/dist/legacy-skill-catalog.js +202 -0
  361. package/dist/legacy-skill-catalog.js.map +1 -1
  362. package/dist/mcp-convert.js +1 -1
  363. package/dist/mcp-convert.js.map +1 -1
  364. package/dist/redesign-capture.d.ts +146 -15
  365. package/dist/redesign-capture.d.ts.map +1 -1
  366. package/dist/redesign-capture.js +182 -65
  367. package/dist/redesign-capture.js.map +1 -1
  368. package/dist/redesign-workspace.d.ts +13 -0
  369. package/dist/redesign-workspace.d.ts.map +1 -1
  370. package/dist/redesign-workspace.js +14 -0
  371. package/dist/redesign-workspace.js.map +1 -1
  372. package/dist/responsive-alternative-materializer.d.ts +24 -0
  373. package/dist/responsive-alternative-materializer.d.ts.map +1 -0
  374. package/dist/responsive-alternative-materializer.js +93 -0
  375. package/dist/responsive-alternative-materializer.js.map +1 -0
  376. package/dist/result-integrity.d.ts +38 -0
  377. package/dist/result-integrity.d.ts.map +1 -0
  378. package/dist/result-integrity.js +46 -0
  379. package/dist/result-integrity.js.map +1 -0
  380. package/dist/review-edit-source.d.ts.map +1 -1
  381. package/dist/review-edit-source.js +6 -2
  382. package/dist/review-edit-source.js.map +1 -1
  383. package/dist/review-edit.js +2 -2
  384. package/dist/review-edit.js.map +1 -1
  385. package/dist/review-prototype-gap.js +1 -1
  386. package/dist/review-prototype-gap.js.map +1 -1
  387. package/dist/spend-run-filter.d.ts +21 -0
  388. package/dist/spend-run-filter.d.ts.map +1 -0
  389. package/dist/spend-run-filter.js +65 -0
  390. package/dist/spend-run-filter.js.map +1 -0
  391. package/dist/spend-scoped-report-lines.d.ts +4 -0
  392. package/dist/spend-scoped-report-lines.d.ts.map +1 -0
  393. package/dist/spend-scoped-report-lines.js +46 -0
  394. package/dist/spend-scoped-report-lines.js.map +1 -0
  395. package/dist/spend-scoped-report.d.ts +28 -0
  396. package/dist/spend-scoped-report.d.ts.map +1 -0
  397. package/dist/spend-scoped-report.js +45 -0
  398. package/dist/spend-scoped-report.js.map +1 -0
  399. package/open-design.json +2 -2
  400. package/package.json +5 -5
  401. package/skills/12ui-design/SKILL.md +14 -4
  402. package/skills/12ui-design/improve.md +67 -5
  403. package/skills/12ui-design/inspire.md +1 -1
  404. package/dist/improve-dom-anchor.d.ts.map +0 -1
  405. package/dist/improve-dom-anchor.js.map +0 -1
  406. package/dist/improve-dom-extract.d.ts.map +0 -1
  407. package/dist/improve-dom-extract.js.map +0 -1
  408. package/dist/improve-dom-neighbour.d.ts.map +0 -1
  409. package/dist/improve-dom-neighbour.js.map +0 -1
  410. package/dist/improve-dom-scale.d.ts.map +0 -1
  411. package/dist/improve-dom-scale.js.map +0 -1
  412. package/dist/improve-layerdoc-diff.d.ts.map +0 -1
  413. package/dist/improve-layerdoc-diff.js.map +0 -1
  414. package/dist/improve-layerdoc-types.d.ts.map +0 -1
  415. package/dist/improve-layerdoc-types.js +0 -2
  416. package/dist/improve-layerdoc-types.js.map +0 -1
  417. package/dist/improve-plan-annotated-render.d.ts.map +0 -1
  418. package/dist/improve-plan-annotated-render.js.map +0 -1
  419. package/dist/improve-plan-render.d.ts.map +0 -1
  420. package/dist/improve-plan-render.js.map +0 -1
  421. package/dist/improve-raster-layers-section.d.ts.map +0 -1
  422. package/dist/improve-raster-layers-section.js.map +0 -1
  423. package/dist/improve-token-patch.d.ts.map +0 -1
  424. package/dist/improve-token-patch.js.map +0 -1
  425. /package/dist/{improve-dom-anchor.d.ts → improve-core/improve-dom-anchor.d.ts} +0 -0
  426. /package/dist/{improve-dom-extract.d.ts → improve-core/improve-dom-extract.d.ts} +0 -0
  427. /package/dist/{improve-dom-neighbour.d.ts → improve-core/improve-dom-neighbour.d.ts} +0 -0
  428. /package/dist/{improve-dom-scale.d.ts → improve-core/improve-dom-scale.d.ts} +0 -0
  429. /package/dist/{improve-layerdoc-diff.d.ts → improve-core/improve-layerdoc-diff.d.ts} +0 -0
@@ -0,0 +1,79 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { writeImproveArtifactMap } from './improve-artifact-writer.js';
4
+ import { parseImproveSiteDiffFacts, parseImproveSourceHintRefs, planImproveSiteArtifacts, } from './improve-core/index.js';
5
+ import { readImproveSiteShellChanges } from './improve-site-shell.js';
6
+ import { readImproveSiteTokenPatches } from './improve-site-tokens.js';
7
+ export { planImproveSiteArtifacts, renderImproveSiteApply, renderImproveSitePages, } from './improve-core/index.js';
8
+ const optionalRead = async (file) => {
9
+ try {
10
+ return await readFile(file, 'utf8');
11
+ }
12
+ catch (error) {
13
+ if (error.code === 'ENOENT')
14
+ return undefined;
15
+ throw error;
16
+ }
17
+ };
18
+ /** Every page artifact sits at a conventional place under its own plan dir. */
19
+ const resolvePage = async (page) => {
20
+ const currentDomDocPath = page.currentDomDocPath ?? path.resolve(page.planDir, '..', 'current.domdoc.json');
21
+ const tokenPatchPath = page.tokenPatchPath ?? path.join(page.planDir, 'token-patch.css');
22
+ const diffPath = page.diffPath ?? path.join(page.planDir, 'diff.json');
23
+ const planPath = page.planPath ?? path.join(page.planDir, 'plan-annotated.md');
24
+ const [diffText, planMarkdown] = await Promise.all([optionalRead(diffPath), optionalRead(planPath)]);
25
+ const diff = parseImproveSiteDiffFacts(diffText);
26
+ return {
27
+ ...page,
28
+ currentDomDocPath,
29
+ tokenPatchPath,
30
+ diffPath,
31
+ planPath,
32
+ ...(page.coverage === undefined && diff.coverage !== undefined ? { coverage: diff.coverage } : {}),
33
+ ...(page.matchedCount === undefined && diff.matchedCount !== undefined ? { matchedCount: diff.matchedCount } : {}),
34
+ ...(page.addedCount === undefined && diff.addedCount !== undefined ? { addedCount: diff.addedCount } : {}),
35
+ ...(page.removedCount === undefined && diff.removedCount !== undefined ? { removedCount: diff.removedCount } : {}),
36
+ sourceHints: planMarkdown ? parseImproveSourceHintRefs(planMarkdown) : [],
37
+ };
38
+ };
39
+ /**
40
+ * Writes the free site-stage deliverables from settled page plan artifacts.
41
+ * Missing token/diff artifacts are expected for blocked pages and are shown
42
+ * honestly in pages.md rather than preventing the rest of the site roll-up.
43
+ */
44
+ export const writeImproveSitePlan = async (args) => {
45
+ const pages = await Promise.all(args.pages.map(resolvePage));
46
+ const [tokenPatches, shellChanges] = await Promise.all([
47
+ readImproveSiteTokenPatches(pages.map((page) => ({
48
+ pageId: page.id,
49
+ tokenPatchPath: page.tokenPatchPath,
50
+ }))),
51
+ readImproveSiteShellChanges(pages.map((page) => ({
52
+ pageId: page.id,
53
+ diffPath: page.diffPath,
54
+ currentDomDocPath: page.currentDomDocPath,
55
+ planPath: page.planPath,
56
+ }))),
57
+ ]);
58
+ const planned = planImproveSiteArtifacts({
59
+ pages,
60
+ tokenPatches,
61
+ shellChanges,
62
+ relativePath: (file) => {
63
+ const relative = path.isAbsolute(file) ? path.relative(args.outDir, file) : file;
64
+ return relative.split(path.sep).join('/');
65
+ },
66
+ ...(args.repo ? { repo: args.repo } : {}),
67
+ ...(args.sourceUrl ? { sourceUrl: args.sourceUrl } : {}),
68
+ });
69
+ return {
70
+ outDir: args.outDir,
71
+ artifacts: await writeImproveArtifactMap(args.outDir, planned.artifacts),
72
+ pages,
73
+ tokens: planned.tokens,
74
+ sharedShell: planned.sharedShell,
75
+ };
76
+ };
77
+ /** Alias for an orchestration layer that names stages by their action. */
78
+ export const runImproveSitePlanStage = writeImproveSitePlan;
79
+ //# sourceMappingURL=improve-site-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-site-plan.js","sourceRoot":"","sources":["../src/improve-site-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type ImproveSiteShellChange } from './improve-core/index.js';
2
+ export { detectImproveSiteSharedShell, findImproveSiteSharedShell, parseImproveSiteShellChanges, renderImproveSiteSharedShell, IMPROVE_SITE_SHARED_SHELL_FILE, type ImproveSiteSharedShellChange, type ImproveSiteSharedShellRollup, type ImproveSiteShellChange, type ImproveSiteShellSelectorKind, type ImproveSiteShellSource, } from './improve-core/index.js';
3
+ export type ImproveSiteShellInput = {
4
+ pageId: string;
5
+ diffPath: string;
6
+ currentDomDocPath?: string;
7
+ planPath?: string;
8
+ };
9
+ /** Loads each page's settled plan JSON; the core decides what it means. */
10
+ export declare const readImproveSiteShellChanges: (inputs: readonly ImproveSiteShellInput[]) => Promise<ImproveSiteShellChange[]>;
11
+ //# sourceMappingURL=improve-site-shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-site-shell.d.ts","sourceRoot":"","sources":["../src/improve-site-shell.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,8BAA8B,EAC9B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAYF,2EAA2E;AAC3E,eAAO,MAAM,2BAA2B,GACtC,QAAQ,SAAS,qBAAqB,EAAE,KACvC,OAAO,CAAC,sBAAsB,EAAE,CAQlC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { parseImproveSiteShellChanges, } from './improve-core/index.js';
3
+ export { detectImproveSiteSharedShell, findImproveSiteSharedShell, parseImproveSiteShellChanges, renderImproveSiteSharedShell, IMPROVE_SITE_SHARED_SHELL_FILE, } from './improve-core/index.js';
4
+ const optionalRead = async (file) => {
5
+ if (!file)
6
+ return undefined;
7
+ try {
8
+ return await readFile(file, 'utf8');
9
+ }
10
+ catch (error) {
11
+ if (error.code === 'ENOENT')
12
+ return undefined;
13
+ throw error;
14
+ }
15
+ };
16
+ /** Loads each page's settled plan JSON; the core decides what it means. */
17
+ export const readImproveSiteShellChanges = async (inputs) => parseImproveSiteShellChanges(await Promise.all(inputs.map(async (input) => ({
18
+ pageId: input.pageId,
19
+ ...await optionalRead(input.diffPath).then((diffText) => (diffText ? { diffText } : {})),
20
+ ...await optionalRead(input.currentDomDocPath)
21
+ .then((currentDomDocText) => (currentDomDocText ? { currentDomDocText } : {})),
22
+ ...(input.planPath ? { planPath: input.planPath } : {}),
23
+ }))));
24
+ //# sourceMappingURL=improve-site-shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-site-shell.js","sourceRoot":"","sources":["../src/improve-site-shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EACL,4BAA4B,GAE7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,8BAA8B,GAM/B,MAAM,yBAAyB,CAAC;AASjC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAwB,EAA+B,EAAE;IACnF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAC9C,MAAwC,EACL,EAAE,CAAC,4BAA4B,CAClE,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7C,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxF,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,iBAAiB,CAAC;SAC3C,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACxD,CAAC,CAAC,CAAC,CACL,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ImproveOptions } from './improve-options.js';
2
+ import { type ImproveCommandDependencies } from './improve-stage-shared.js';
3
+ import { type ImproveRecord } from './improve-workspace.js';
4
+ export declare const runImproveSiteStage: (args: {
5
+ record: ImproveRecord;
6
+ options: ImproveOptions;
7
+ dependencies: ImproveCommandDependencies;
8
+ price: number;
9
+ }) => Promise<ImproveRecord>;
10
+ //# sourceMappingURL=improve-site-stage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-site-stage.d.ts","sourceRoot":"","sources":["../src/improve-site-stage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAoB,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,mBAAmB,GAAU,MAAM;IAC9C,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,0BAA0B,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf,KAAG,OAAO,CAAC,aAAa,CA4ExB,CAAC"}
@@ -0,0 +1,84 @@
1
+ import path from 'node:path';
2
+ import { writeImproveSitePlan } from './improve-site-plan.js';
3
+ import { noteImproveStage } from './improve-stage-shared.js';
4
+ import { IMPROVE_SITE_ROOT_ID, improvePagePaths, writeImproveRecord, } from './improve-workspace.js';
5
+ export const runImproveSiteStage = async (args) => {
6
+ if (args.record.scope === 'page')
7
+ return noteImproveStage({
8
+ record: args.record,
9
+ stage: 'site',
10
+ priceCeilingUsd: 0,
11
+ replayed: args.record.stages.site?.outcome === 'skipped',
12
+ outcome: 'skipped',
13
+ write: true,
14
+ });
15
+ if (args.record.site)
16
+ return noteImproveStage({
17
+ record: args.record, stage: 'site', priceCeilingUsd: args.price, replayed: true, write: true,
18
+ });
19
+ if (!args.record.plan || !args.record.convert
20
+ || args.record.pages.some((page) => page.branch?.status !== 'failed'
21
+ && (!page.plan || !page.convert || !page.branch))) {
22
+ throw new Error('Cannot roll up the site before every page plan has settled');
23
+ }
24
+ const result = await writeImproveSitePlan({
25
+ outDir: args.options.paths.sitePlanDir,
26
+ // Root is the original accepted design, never a branch candidate. It
27
+ // still appears first in the site deliverable with its literal stable id.
28
+ pages: [{
29
+ id: IMPROVE_SITE_ROOT_ID,
30
+ url: args.record.input.value,
31
+ gate: args.record.plan.gate,
32
+ planDir: args.options.paths.planDir,
33
+ polishedImagePath: args.options.paths.winnerImage,
34
+ targetHtmlPath: args.record.convert.html || undefined,
35
+ targetLayout: args.record.convert.layout,
36
+ responsiveWarning: args.record.convert.responsiveWarning,
37
+ currentDomDocPath: args.options.paths.currentDomDoc,
38
+ tokenPatchPath: path.join(args.options.paths.planDir, 'token-patch.css'),
39
+ diffPath: path.join(args.options.paths.planDir, 'diff.json'),
40
+ planPath: path.join(args.options.paths.planDir, 'plan-annotated.md'),
41
+ coverage: args.record.plan.coverage?.dom,
42
+ matchedCount: args.record.plan.counts?.matched,
43
+ addedCount: args.record.plan.counts?.added,
44
+ removedCount: args.record.plan.counts?.removed,
45
+ }, ...args.record.pages.map((page) => {
46
+ const paths = improvePagePaths(args.record.runDir, page.id);
47
+ if (page.branch?.status === 'failed') {
48
+ return {
49
+ id: page.id,
50
+ url: page.url,
51
+ gate: 'failed',
52
+ planDir: paths.planDir,
53
+ failure: page.branch.error,
54
+ };
55
+ }
56
+ return {
57
+ id: page.id,
58
+ url: page.url,
59
+ gate: page.plan.gate,
60
+ planDir: paths.planDir,
61
+ polishedImagePath: paths.polishedImage,
62
+ targetHtmlPath: page.convert.html || undefined,
63
+ targetLayout: page.convert.layout,
64
+ responsiveWarning: page.convert.responsiveWarning,
65
+ tokenPatchPath: path.join(paths.planDir, 'token-patch.css'),
66
+ diffPath: path.join(paths.planDir, 'diff.json'),
67
+ planPath: path.join(paths.planDir, 'plan-annotated.md'),
68
+ coverage: page.plan.coverage.dom,
69
+ matchedCount: page.plan.counts.matched,
70
+ addedCount: page.plan.counts.added,
71
+ removedCount: page.plan.counts.removed,
72
+ };
73
+ })],
74
+ ...(args.record.repo ? { repo: args.record.repo } : {}),
75
+ sourceUrl: args.record.input.value,
76
+ });
77
+ let record = { ...args.record, site: { artifacts: result.artifacts } };
78
+ record = await noteImproveStage({
79
+ record, stage: 'site', priceCeilingUsd: args.price, replayed: false, write: false,
80
+ });
81
+ await writeImproveRecord(args.options.paths.record, record);
82
+ return record;
83
+ };
84
+ //# sourceMappingURL=improve-site-stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-site-stage.js","sourceRoot":"","sources":["../src/improve-site-stage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ImproveSiteTokenPatch } from './improve-core/index.js';
2
+ export { mergeImproveSiteTokens, mergeSiteImproveTokens, IMPROVE_SITE_TOKENS_FILE, type ImproveSiteToken, type ImproveSiteTokenConflict, type ImproveSiteTokenPatch, type ImproveSiteTokenRollup, } from './improve-core/index.js';
3
+ export type ImproveSiteTokenInput = {
4
+ pageId: string;
5
+ tokenPatchPath: string;
6
+ };
7
+ /** A page with no token patch simply contributed none; that is not an error. */
8
+ export declare const readImproveSiteTokenPatches: (inputs: readonly ImproveSiteTokenInput[]) => Promise<ImproveSiteTokenPatch[]>;
9
+ //# sourceMappingURL=improve-site-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-site-tokens.d.ts","sourceRoot":"","sources":["../src/improve-site-tokens.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,GACtC,QAAQ,SAAS,qBAAqB,EAAE,KACvC,OAAO,CAAC,qBAAqB,EAAE,CAUjC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ export { mergeImproveSiteTokens, mergeSiteImproveTokens, IMPROVE_SITE_TOKENS_FILE, } from './improve-core/index.js';
3
+ /** A page with no token patch simply contributed none; that is not an error. */
4
+ export const readImproveSiteTokenPatches = async (inputs) => {
5
+ const patches = await Promise.all(inputs.map(async (input) => {
6
+ try {
7
+ return { pageId: input.pageId, css: await readFile(input.tokenPatchPath, 'utf8') };
8
+ }
9
+ catch (error) {
10
+ if (error.code === 'ENOENT')
11
+ return undefined;
12
+ throw error;
13
+ }
14
+ }));
15
+ return patches.filter((patch) => patch !== undefined);
16
+ };
17
+ //# sourceMappingURL=improve-site-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-site-tokens.js","sourceRoot":"","sources":["../src/improve-site-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,GAKzB,MAAM,yBAAyB,CAAC;AAOjC,gFAAgF;AAChF,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAC9C,MAAwC,EACN,EAAE;IACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3D,IAAI,CAAC;YACH,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC;QACrF,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAC;YACzE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAkC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AACxF,CAAC,CAAC"}
@@ -1,4 +1,6 @@
1
- import type { LayerLeaf } from './improve-layerdoc-types.js';
1
+ import { type SourceHint } from './improve-core/index.js';
2
+ import type { LayerLeaf } from './improve-core/index.js';
3
+ export { formatImproveSourceHint, parseImproveSourceHintRefs, UNRESOLVED_IMPROVE_SOURCE_HINT, type SourceHint, } from './improve-core/index.js';
2
4
  /**
3
5
  * Source hints are evidence, never certainty. Only src/ TSX, JSX, and CSS are
4
6
  * indexed. Exact rendered class combinations rank above distinctive classes,
@@ -15,17 +17,6 @@ export type SourceIndex = {
15
17
  repo?: string;
16
18
  files: SourceFile[];
17
19
  };
18
- export type SourceHint = {
19
- confidence: 'high' | 'medium' | 'low' | 'unresolved';
20
- evidence: string;
21
- relativePath?: string;
22
- line?: number;
23
- sourceLine?: string;
24
- candidateCount?: number;
25
- ancestorDepth?: number;
26
- };
27
20
  export declare const indexImproveSourceRepo: (repoPath: string) => SourceIndex;
28
21
  export declare const resolveImproveSourceHint: (leaf: LayerLeaf | undefined, index: SourceIndex, leaves?: readonly LayerLeaf[]) => SourceHint;
29
- export declare const formatImproveSourceHint: (hint: SourceHint) => string;
30
- export {};
31
22
  //# sourceMappingURL=improve-source-hints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"improve-source-hints.d.ts","sourceRoot":"","sources":["../src/improve-source-hints.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;;GAIG;AAEH,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AACjE,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,YAAY,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAiBF,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,WAiBzD,CAAC;AA8FF,eAAO,MAAM,wBAAwB,GACnC,MAAM,SAAS,GAAG,SAAS,EAC3B,OAAO,WAAW,EAClB,SAAQ,SAAS,SAAS,EAAO,KAChC,UAuBF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,MAAM,UAAU,KAAG,MAI1D,CAAC"}
1
+ {"version":3,"file":"improve-source-hints.d.ts","sourceRoot":"","sources":["../src/improve-source-hints.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,UAAU,GAChB,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AAEH,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AAiBjE,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,WAiBzD,CAAC;AA8FF,eAAO,MAAM,wBAAwB,GACnC,MAAM,SAAS,GAAG,SAAS,EAC3B,OAAO,WAAW,EAClB,SAAQ,SAAS,SAAS,EAAO,KAChC,UAuBF,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { readdirSync, readFileSync, statSync } from 'node:fs';
2
2
  import { extname, relative, resolve } from 'node:path';
3
+ import { UNRESOLVED_IMPROVE_SOURCE_HINT } from './improve-core/index.js';
4
+ export { formatImproveSourceHint, parseImproveSourceHintRefs, UNRESOLVED_IMPROVE_SOURCE_HINT, } from './improve-core/index.js';
3
5
  const EXTENSIONS = new Set(['.tsx', '.jsx', '.css']);
4
6
  const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
5
7
  const tokenPattern = (token) => new RegExp(`(^|[^A-Za-z0-9_-])${escapeRegExp(token)}([^A-Za-z0-9_-]|$)`, 'u');
@@ -100,7 +102,7 @@ const directHint = (leaf, index, contextClasses, allowText = true) => {
100
102
  };
101
103
  export const resolveImproveSourceHint = (leaf, index, leaves = []) => {
102
104
  if (!leaf || index.files.length === 0)
103
- return { confidence: 'unresolved', evidence: 'unresolved' };
105
+ return UNRESOLVED_IMPROVE_SOURCE_HINT;
104
106
  const contextClasses = [];
105
107
  const visited = new Set();
106
108
  let parent = leaf.dom?.parentIndex;
@@ -123,9 +125,6 @@ export const resolveImproveSourceHint = (leaf, index, leaves = []) => {
123
125
  parent = leaves[parent]?.dom?.parentIndex;
124
126
  depth += 1;
125
127
  }
126
- return { confidence: 'unresolved', evidence: 'unresolved' };
128
+ return UNRESOLVED_IMPROVE_SOURCE_HINT;
127
129
  };
128
- export const formatImproveSourceHint = (hint) => (hint.confidence === 'unresolved'
129
- ? 'file: unresolved _(confidence: unresolved)_'
130
- : `file: \`${hint.relativePath}:${hint.line}\` _(confidence: ${hint.confidence}; ${hint.evidence})_`);
131
130
  //# sourceMappingURL=improve-source-hints.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"improve-source-hints.js","sourceRoot":"","sources":["../src/improve-source-hints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"improve-source-hints.js","sourceRoot":"","sources":["../src/improve-source-hints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { type RunJournalEntry } from './run-journal.js';
2
+ import type { ImproveRecord, ImproveStage } from './improve-workspace.js';
3
+ /**
4
+ * The per-run spend ledger: every purchase this kit made, by id (F33).
5
+ *
6
+ * WHY THIS EXISTS. `improve.json` already listed purchase ids — `draft.runId`,
7
+ * `convert.purchaseIds`, `sourceConvert.purchaseIds` — and the journal already
8
+ * carried the same ids on every `end` line. Nothing put them in front of a
9
+ * reader, so the wave-2 B4 lanes wrote spend tables with ids missing from them:
10
+ * airtable dropped `6c2017b1`, mailchimp dropped `ed57c987`, `29fac748` and
11
+ * `aa8031d7`. A report cannot reconcile what it was never shown.
12
+ *
13
+ * THE JOURNAL IS THE SOURCE, the record is the enrichment. The journal is
14
+ * append-only and spans every invocation against the kit, so it is the only
15
+ * thing that sees a purchase made by a run that later stopped, crashed, or was
16
+ * resumed from — exactly the runs whose ids went missing. The record supplies
17
+ * the stage each id belongs to and the pre-dispatch ceiling that stage
18
+ * declared. An id the record cannot place is still printed, as `unattributed`:
19
+ * an unexplained purchase is the one line that must never be dropped.
20
+ *
21
+ * CEILINGS ARE PER STAGE, NOT PER PURCHASE. One convert stage buys a
22
+ * conversion, an export and a derivation under a single $0.55 bound, so the
23
+ * ceiling is reported once against the stage and every row says how many
24
+ * purchases share it. Multiplying it out would invent spend.
25
+ *
26
+ * ACTUAL PRICES ARE NOT LOCAL. Settlement happens server-side; nothing in the
27
+ * kit knows what a call finally cost. The ledger therefore names where the
28
+ * actual comes from — `12ui spend`, whose `runs` are keyed by exactly these
29
+ * ids — instead of printing a number it would have to guess.
30
+ */
31
+ export type ImproveSpendStage = ImproveStage | 'unattributed';
32
+ export type ImproveSpendLedgerRow = {
33
+ purchaseId: string;
34
+ stage: ImproveSpendStage;
35
+ /** The CLI invocation that recorded it — the journal's `run_id`. */
36
+ runId?: string;
37
+ /** When it first appears in the journal. */
38
+ at?: string;
39
+ /** The stage's pre-dispatch bound, shared by every purchase of that stage. */
40
+ stagePriceCeilingUsd?: number;
41
+ /** How many purchases that one ceiling covers, this row included. */
42
+ stagePurchases: number;
43
+ };
44
+ export type ImproveSpendLedger = {
45
+ rows: ImproveSpendLedgerRow[];
46
+ /** Distinct CLI invocations that bought something. */
47
+ runs: number;
48
+ /** The sum of the distinct stage ceilings that actually bought something. */
49
+ ceilingUsdTotal: number;
50
+ /** Purchases no stage of the record claims. */
51
+ unattributed: number;
52
+ };
53
+ export declare const buildImproveSpendLedger: (args: {
54
+ entries: readonly RunJournalEntry[];
55
+ record?: Partial<ImproveRecord>;
56
+ }) => ImproveSpendLedger;
57
+ export declare const readImproveSpendLedger: (record: Pick<ImproveRecord, "runDir"> & Partial<ImproveRecord>) => Promise<ImproveSpendLedger>;
58
+ /**
59
+ * The reconciliation instruction, printed wherever the ledger is. It names the
60
+ * one command that turns a ceiling into a settled price, so a report has no
61
+ * reason to leave the actual column blank without saying why.
62
+ */
63
+ export declare const IMPROVE_SPEND_LEDGER_ACTUAL_NOTE: string;
64
+ export declare const IMPROVE_SPEND_LEDGER_TITLE = "Spend ledger";
65
+ /** The terminal form: one line per purchase, under a heading the eye catches. */
66
+ export declare const renderImproveSpendLedgerLines: (ledger: ImproveSpendLedger) => string[];
67
+ /** The kit form: a table a report can paste without retyping an id. */
68
+ export declare const renderImproveSpendLedgerSection: (ledger: ImproveSpendLedger) => string[];
69
+ //# sourceMappingURL=improve-spend-ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-spend-ledger.d.ts","sourceRoot":"","sources":["../src/improve-spend-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,cAAc,CAAC;AAE9D,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,iBAAiB,CAAC;IACzB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAkBF,eAAO,MAAM,uBAAuB,GAAI,MAAM;IAC5C,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACjC,KAAG,kBAwCH,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,KAC7D,OAAO,CAAC,kBAAkB,CAG3B,CAAC;AAWH;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,QACsC,CAAC;AAEpF,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAEzD,iFAAiF;AACjF,eAAO,MAAM,6BAA6B,GAAI,QAAQ,kBAAkB,KAAG,MAAM,EAUhF,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,GAAI,QAAQ,kBAAkB,KAAG,MAAM,EA6BlF,CAAC"}
@@ -0,0 +1,118 @@
1
+ import { readRunJournal } from './run-journal.js';
2
+ /** Which stage each recorded id belongs to, read off the durable record. */
3
+ const stagesByPurchaseId = (record) => {
4
+ const stages = new Map();
5
+ if (!record)
6
+ return stages;
7
+ if (record.draft?.runId)
8
+ stages.set(record.draft.runId, 'draft');
9
+ for (const attempt of record.conversionAttempts ?? []) {
10
+ if (attempt.conversionId)
11
+ stages.set(attempt.conversionId, 'convert');
12
+ }
13
+ for (const id of record.convert?.purchaseIds ?? [])
14
+ stages.set(id, 'convert');
15
+ // The source conversion a `--plan-source-convert` run buys belongs to the
16
+ // plan stage, which is where its ceiling is declared.
17
+ for (const id of record.sourceConvert?.purchaseIds ?? [])
18
+ stages.set(id, 'plan');
19
+ for (const id of record.plan?.purchaseIds ?? [])
20
+ stages.set(id, 'plan');
21
+ return stages;
22
+ };
23
+ export const buildImproveSpendLedger = (args) => {
24
+ const stages = stagesByPurchaseId(args.record);
25
+ const rows = new Map();
26
+ const runs = new Set();
27
+ for (const entry of args.entries) {
28
+ for (const purchaseId of entry.purchased ?? []) {
29
+ if (entry.run_id)
30
+ runs.add(entry.run_id);
31
+ if (rows.has(purchaseId))
32
+ continue;
33
+ const stage = stages.get(purchaseId) ?? 'unattributed';
34
+ const ceiling = stage === 'unattributed'
35
+ ? undefined
36
+ : args.record?.stages?.[stage]?.priceCeilingUsd;
37
+ rows.set(purchaseId, {
38
+ purchaseId,
39
+ stage,
40
+ ...(entry.run_id ? { runId: entry.run_id } : {}),
41
+ ...(entry.ts ? { at: entry.ts } : {}),
42
+ ...(ceiling === undefined ? {} : { stagePriceCeilingUsd: ceiling }),
43
+ stagePurchases: 0,
44
+ });
45
+ }
46
+ }
47
+ const perStage = new Map();
48
+ for (const row of rows.values())
49
+ perStage.set(row.stage, (perStage.get(row.stage) ?? 0) + 1);
50
+ const ordered = [...rows.values()].map((row) => ({
51
+ ...row,
52
+ stagePurchases: perStage.get(row.stage) ?? 1,
53
+ }));
54
+ const ceilings = new Map();
55
+ for (const row of ordered) {
56
+ if (row.stagePriceCeilingUsd !== undefined)
57
+ ceilings.set(row.stage, row.stagePriceCeilingUsd);
58
+ }
59
+ return {
60
+ rows: ordered,
61
+ runs: runs.size,
62
+ ceilingUsdTotal: Number([...ceilings.values()].reduce((total, value) => total + value, 0).toFixed(6)),
63
+ unattributed: ordered.filter((row) => row.stage === 'unattributed').length,
64
+ };
65
+ };
66
+ export const readImproveSpendLedger = async (record) => buildImproveSpendLedger({
67
+ entries: (await readRunJournal({ workspace: record.runDir })).entries,
68
+ record,
69
+ });
70
+ const usd = (value) => `$${value.toFixed(value < 0.01 && value > 0 ? 4 : 2)}`;
71
+ const ceilingCell = (row) => {
72
+ if (row.stagePriceCeilingUsd === undefined)
73
+ return 'no ceiling recorded';
74
+ return `${usd(row.stagePriceCeilingUsd)} ${row.stagePurchases === 1
75
+ ? '(stage ceiling)'
76
+ : `(stage ceiling, shared by ${row.stagePurchases} purchases)`}`;
77
+ };
78
+ /**
79
+ * The reconciliation instruction, printed wherever the ledger is. It names the
80
+ * one command that turns a ceiling into a settled price, so a report has no
81
+ * reason to leave the actual column blank without saying why.
82
+ */
83
+ export const IMPROVE_SPEND_LEDGER_ACTUAL_NOTE = 'Actual prices settle server-side and are not in'
84
+ + ' the kit; read them with `12ui spend`, whose runs are keyed by the ids above.';
85
+ export const IMPROVE_SPEND_LEDGER_TITLE = 'Spend ledger';
86
+ /** The terminal form: one line per purchase, under a heading the eye catches. */
87
+ export const renderImproveSpendLedgerLines = (ledger) => {
88
+ if (ledger.rows.length === 0)
89
+ return ['- Spend: nothing purchased against this kit'];
90
+ return [
91
+ `- Spend: ${ledger.rows.length} purchase${ledger.rows.length === 1 ? '' : 's'}`
92
+ + ` across ${ledger.runs} run${ledger.runs === 1 ? '' : 's'};`
93
+ + ` ceiling ${usd(ledger.ceilingUsdTotal)} total`
94
+ + (ledger.unattributed > 0 ? `; ${ledger.unattributed} unattributed` : ''),
95
+ ...ledger.rows.map((row) => ` - ${row.purchaseId} — ${row.stage}, ${ceilingCell(row)}`),
96
+ ` - ${IMPROVE_SPEND_LEDGER_ACTUAL_NOTE}`,
97
+ ];
98
+ };
99
+ /** The kit form: a table a report can paste without retyping an id. */
100
+ export const renderImproveSpendLedgerSection = (ledger) => {
101
+ const lines = [`## ${IMPROVE_SPEND_LEDGER_TITLE}`, ''];
102
+ if (ledger.rows.length === 0) {
103
+ lines.push('Nothing was purchased against this kit.', '');
104
+ return lines;
105
+ }
106
+ lines.push('Every purchase this kit made, from the run journal. Paste it into the report as it is;'
107
+ + ' an id that is here and not in the report is spend nobody accounted for.', '', '| purchase | stage | run | price ceiling |', '| --- | --- | --- | --- |', ...ledger.rows.map((row) => (`| \`${row.purchaseId}\` | ${row.stage} | \`${row.runId ?? 'unrecorded'}\``
108
+ + ` | ${ceilingCell(row)} |`)), '', `${ledger.rows.length} purchase${ledger.rows.length === 1 ? '' : 's'}`
109
+ + ` across ${ledger.runs} run${ledger.runs === 1 ? '' : 's'}.`
110
+ + ` Ceilings are per stage, not per purchase; the distinct ceilings above total`
111
+ + ` ${usd(ledger.ceilingUsdTotal)}. ${IMPROVE_SPEND_LEDGER_ACTUAL_NOTE}`, ...(ledger.unattributed > 0
112
+ ? ['', `${ledger.unattributed} purchase${ledger.unattributed === 1 ? ' is' : 's are'}`
113
+ + ' marked `unattributed`: the journal recorded it but no stage of `improve.json` claims'
114
+ + ' it. Report it anyway — it was bought.']
115
+ : []), '');
116
+ return lines;
117
+ };
118
+ //# sourceMappingURL=improve-spend-ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-spend-ledger.js","sourceRoot":"","sources":["../src/improve-spend-ledger.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  export { runImproveCaptureStage, runImproveDraftStage, runImprovePickStage, } from './improve-generation-stages.js';
2
- export { runImprovePlanStage, } from './improve-delivery-stages.js';
3
- export { runImproveConvertStage } from './improve-conversion-stage.js';
2
+ export { runImprovePlanStage, runImproveSitePlanPagesStage, } from './improve-delivery-stages.js';
3
+ export { runImproveConvertStage, runImproveSiteConvertStage, } from './improve-conversion-stage.js';
4
+ export { runImproveBranchStage } from './improve-branch-stage.js';
5
+ export { runImproveSiteRecheck } from './improve-recheck.js';
6
+ export { runImproveSiteStage } from './improve-site-stage.js';
4
7
  export { writeImproveReadme } from './improve-kit-readme.js';
5
8
  export { markImproveStageSkipped } from './improve-stage-shared.js';
6
9
  export type { ImproveCommandDependencies } from './improve-stage-shared.js';
@@ -1 +1 @@
1
- {"version":3,"file":"improve-stage-runners.d.ts","sourceRoot":"","sources":["../src/improve-stage-runners.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"improve-stage-runners.d.ts","sourceRoot":"","sources":["../src/improve-stage-runners.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,6 +1,9 @@
1
1
  export { runImproveCaptureStage, runImproveDraftStage, runImprovePickStage, } from './improve-generation-stages.js';
2
- export { runImprovePlanStage, } from './improve-delivery-stages.js';
3
- export { runImproveConvertStage } from './improve-conversion-stage.js';
2
+ export { runImprovePlanStage, runImproveSitePlanPagesStage, } from './improve-delivery-stages.js';
3
+ export { runImproveConvertStage, runImproveSiteConvertStage, } from './improve-conversion-stage.js';
4
+ export { runImproveBranchStage } from './improve-branch-stage.js';
5
+ export { runImproveSiteRecheck } from './improve-recheck.js';
6
+ export { runImproveSiteStage } from './improve-site-stage.js';
4
7
  export { writeImproveReadme } from './improve-kit-readme.js';
5
8
  export { markImproveStageSkipped } from './improve-stage-shared.js';
6
9
  //# sourceMappingURL=improve-stage-runners.js.map