@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.
- package/SKILL.md +1 -1
- package/dist/artifact-materializer.d.ts.map +1 -1
- package/dist/artifact-materializer.js +4 -1
- package/dist/artifact-materializer.js.map +1 -1
- package/dist/atomic-file-replace.d.ts +21 -0
- package/dist/atomic-file-replace.d.ts.map +1 -0
- package/dist/atomic-file-replace.js +48 -0
- package/dist/atomic-file-replace.js.map +1 -0
- package/dist/branch-client.d.ts +84 -2
- package/dist/branch-client.d.ts.map +1 -1
- package/dist/branch-client.js +30 -0
- package/dist/branch-client.js.map +1 -1
- package/dist/cli-arguments.d.ts.map +1 -1
- package/dist/cli-arguments.js +2 -1
- package/dist/cli-arguments.js.map +1 -1
- package/dist/cli-capabilities.d.ts +1 -1
- package/dist/cli-conversion-derivation.d.ts +14 -1
- package/dist/cli-conversion-derivation.d.ts.map +1 -1
- package/dist/cli-conversion-derivation.js +14 -7
- package/dist/cli-conversion-derivation.js.map +1 -1
- package/dist/cli-convert-command.d.ts +2 -0
- package/dist/cli-convert-command.d.ts.map +1 -1
- package/dist/cli-convert-command.js +86 -34
- package/dist/cli-convert-command.js.map +1 -1
- package/dist/cli-corpus-command.d.ts.map +1 -1
- package/dist/cli-corpus-command.js +0 -3
- package/dist/cli-corpus-command.js.map +1 -1
- package/dist/cli-draft-command.d.ts +16 -0
- package/dist/cli-draft-command.d.ts.map +1 -1
- package/dist/cli-draft-command.js +47 -9
- package/dist/cli-draft-command.js.map +1 -1
- package/dist/cli-help/design.d.ts +7 -4
- package/dist/cli-help/design.d.ts.map +1 -1
- package/dist/cli-help/design.js +20 -7
- package/dist/cli-help/design.js.map +1 -1
- package/dist/cli-help/index.d.ts +9 -6
- package/dist/cli-help/index.d.ts.map +1 -1
- package/dist/cli-help/meta.d.ts +2 -2
- package/dist/cli-help/meta.d.ts.map +1 -1
- package/dist/cli-help/meta.js +4 -1
- package/dist/cli-help/meta.js.map +1 -1
- package/dist/cli-improve-command.d.ts.map +1 -1
- package/dist/cli-improve-command.js +215 -33
- package/dist/cli-improve-command.js.map +1 -1
- package/dist/cli-redesign-command.d.ts.map +1 -1
- package/dist/cli-redesign-command.js +268 -156
- package/dist/cli-redesign-command.js.map +1 -1
- package/dist/cli-run.d.ts.map +1 -1
- package/dist/cli-run.js +13 -3
- package/dist/cli-run.js.map +1 -1
- package/dist/cli-spend-command.d.ts +12 -1
- package/dist/cli-spend-command.d.ts.map +1 -1
- package/dist/cli-spend-command.js +94 -2
- package/dist/cli-spend-command.js.map +1 -1
- package/dist/cli-usage.js +5 -5
- package/dist/cli-usage.js.map +1 -1
- package/dist/concept-input.d.ts +6 -77
- package/dist/concept-input.d.ts.map +1 -1
- package/dist/concept-input.js +6 -87
- package/dist/concept-input.js.map +1 -1
- package/dist/conversion-client.d.ts +106 -17
- package/dist/conversion-client.d.ts.map +1 -1
- package/dist/conversion-client.js +244 -80
- package/dist/conversion-client.js.map +1 -1
- package/dist/corpus-client.d.ts.map +1 -1
- package/dist/corpus-client.js +0 -3
- package/dist/corpus-client.js.map +1 -1
- package/dist/draft-identity.d.ts +7 -0
- package/dist/draft-identity.d.ts.map +1 -1
- package/dist/draft-identity.js +4 -0
- package/dist/draft-identity.js.map +1 -1
- package/dist/draft-run.d.ts +13 -0
- package/dist/draft-run.d.ts.map +1 -1
- package/dist/draft-run.js +20 -2
- package/dist/draft-run.js.map +1 -1
- package/dist/draft-workspace.d.ts +4 -0
- package/dist/draft-workspace.d.ts.map +1 -1
- package/dist/draft-workspace.js.map +1 -1
- package/dist/hosted-draft-identity.d.ts +18 -0
- package/dist/hosted-draft-identity.d.ts.map +1 -1
- package/dist/hosted-draft-identity.js +8 -0
- package/dist/hosted-draft-identity.js.map +1 -1
- package/dist/hosted-draft-run.d.ts +15 -0
- package/dist/hosted-draft-run.d.ts.map +1 -1
- package/dist/hosted-draft-run.js +27 -0
- package/dist/hosted-draft-run.js.map +1 -1
- package/dist/improve-added-specs.d.ts +12 -40
- package/dist/improve-added-specs.d.ts.map +1 -1
- package/dist/improve-added-specs.js +63 -172
- package/dist/improve-added-specs.js.map +1 -1
- package/dist/improve-artifact-writer.d.ts +13 -0
- package/dist/improve-artifact-writer.d.ts.map +1 -0
- package/dist/improve-artifact-writer.js +27 -0
- package/dist/improve-artifact-writer.js.map +1 -0
- package/dist/improve-bootstrap-history.d.ts +21 -0
- package/dist/improve-bootstrap-history.d.ts.map +1 -0
- package/dist/improve-bootstrap-history.js +43 -0
- package/dist/improve-bootstrap-history.js.map +1 -0
- package/dist/improve-branch-stage.d.ts +10 -0
- package/dist/improve-branch-stage.d.ts.map +1 -0
- package/dist/improve-branch-stage.js +325 -0
- package/dist/improve-branch-stage.js.map +1 -0
- package/dist/improve-capture-redirect.d.ts +19 -0
- package/dist/improve-capture-redirect.d.ts.map +1 -1
- package/dist/improve-capture-redirect.js +18 -1
- package/dist/improve-capture-redirect.js.map +1 -1
- package/dist/improve-capture-words.d.ts +43 -0
- package/dist/improve-capture-words.d.ts.map +1 -0
- package/dist/improve-capture-words.js +25 -0
- package/dist/improve-capture-words.js.map +1 -0
- package/dist/improve-concept.d.ts +6 -20
- package/dist/improve-concept.d.ts.map +1 -1
- package/dist/improve-concept.js +12 -59
- package/dist/improve-concept.js.map +1 -1
- package/dist/improve-conversion-attempts.d.ts +12 -4
- package/dist/improve-conversion-attempts.d.ts.map +1 -1
- package/dist/improve-conversion-attempts.js.map +1 -1
- package/dist/improve-conversion-stage.d.ts +13 -2
- package/dist/improve-conversion-stage.d.ts.map +1 -1
- package/dist/improve-conversion-stage.js +211 -20
- package/dist/improve-conversion-stage.js.map +1 -1
- package/dist/improve-convert-progress.d.ts +10 -2
- package/dist/improve-convert-progress.d.ts.map +1 -1
- package/dist/improve-convert-progress.js +7 -3
- package/dist/improve-convert-progress.js.map +1 -1
- package/dist/improve-convert-resilience.d.ts +60 -13
- package/dist/improve-convert-resilience.d.ts.map +1 -1
- package/dist/improve-convert-resilience.js +85 -22
- package/dist/improve-convert-resilience.js.map +1 -1
- package/dist/improve-core/concept-input.d.ts +80 -0
- package/dist/improve-core/concept-input.d.ts.map +1 -0
- package/dist/improve-core/concept-input.js +92 -0
- package/dist/improve-core/concept-input.js.map +1 -0
- package/dist/improve-core/improve-added-specs.d.ts +62 -0
- package/dist/improve-core/improve-added-specs.d.ts.map +1 -0
- package/dist/improve-core/improve-added-specs.js +160 -0
- package/dist/improve-core/improve-added-specs.js.map +1 -0
- package/dist/improve-core/improve-artifacts.d.ts +18 -0
- package/dist/improve-core/improve-artifacts.d.ts.map +1 -0
- package/dist/improve-core/improve-artifacts.js +4 -0
- package/dist/improve-core/improve-artifacts.js.map +1 -0
- package/dist/improve-core/improve-concept.d.ts +11 -0
- package/dist/improve-core/improve-concept.d.ts.map +1 -0
- package/dist/improve-core/improve-concept.js +190 -0
- package/dist/improve-core/improve-concept.js.map +1 -0
- package/dist/improve-core/improve-discovery.d.ts +84 -0
- package/dist/improve-core/improve-discovery.d.ts.map +1 -0
- package/dist/improve-core/improve-discovery.js +154 -0
- package/dist/improve-core/improve-discovery.js.map +1 -0
- package/dist/improve-core/improve-dom-anchor.d.ts.map +1 -0
- package/dist/{improve-dom-anchor.js → improve-core/improve-dom-anchor.js} +2 -0
- package/dist/improve-core/improve-dom-anchor.js.map +1 -0
- package/dist/improve-core/improve-dom-diff.d.ts +59 -0
- package/dist/improve-core/improve-dom-diff.d.ts.map +1 -0
- package/dist/improve-core/improve-dom-diff.js +151 -0
- package/dist/improve-core/improve-dom-diff.js.map +1 -0
- package/dist/improve-core/improve-dom-extract.d.ts.map +1 -0
- package/dist/{improve-dom-extract.js → improve-core/improve-dom-extract.js} +2 -0
- package/dist/improve-core/improve-dom-extract.js.map +1 -0
- package/dist/improve-core/improve-dom-gate.d.ts +49 -0
- package/dist/improve-core/improve-dom-gate.d.ts.map +1 -0
- package/dist/improve-core/improve-dom-gate.js +99 -0
- package/dist/improve-core/improve-dom-gate.js.map +1 -0
- package/dist/improve-core/improve-dom-neighbour.d.ts.map +1 -0
- package/dist/{improve-dom-neighbour.js → improve-core/improve-dom-neighbour.js} +2 -0
- package/dist/improve-core/improve-dom-neighbour.js.map +1 -0
- package/dist/improve-core/improve-dom-scale.d.ts.map +1 -0
- package/dist/{improve-dom-scale.js → improve-core/improve-dom-scale.js} +2 -0
- package/dist/improve-core/improve-dom-scale.js.map +1 -0
- package/dist/improve-core/improve-icon-svg.d.ts +29 -0
- package/dist/improve-core/improve-icon-svg.d.ts.map +1 -0
- package/dist/{improve-icon-svg.js → improve-core/improve-icon-svg.js} +2 -0
- package/dist/improve-core/improve-icon-svg.js.map +1 -0
- package/dist/improve-core/improve-kit-asset-model.d.ts +177 -0
- package/dist/improve-core/improve-kit-asset-model.d.ts.map +1 -0
- package/dist/improve-core/improve-kit-asset-model.js +269 -0
- package/dist/improve-core/improve-kit-asset-model.js.map +1 -0
- package/dist/improve-core/improve-layerdoc-diff.d.ts.map +1 -0
- package/dist/{improve-layerdoc-diff.js → improve-core/improve-layerdoc-diff.js} +2 -0
- package/dist/improve-core/improve-layerdoc-diff.js.map +1 -0
- package/dist/{improve-layerdoc-types.d.ts → improve-core/improve-layerdoc-types.d.ts} +9 -0
- package/dist/improve-core/improve-layerdoc-types.d.ts.map +1 -0
- package/dist/improve-core/improve-layerdoc-types.js +4 -0
- package/dist/improve-core/improve-layerdoc-types.js.map +1 -0
- package/dist/improve-core/improve-page-words.d.ts +180 -0
- package/dist/improve-core/improve-page-words.d.ts.map +1 -0
- package/dist/improve-core/improve-page-words.js +303 -0
- package/dist/improve-core/improve-page-words.js.map +1 -0
- package/dist/{improve-plan-annotated-render.d.ts → improve-core/improve-plan-annotated-render.d.ts} +6 -1
- package/dist/improve-core/improve-plan-annotated-render.d.ts.map +1 -0
- package/dist/{improve-plan-annotated-render.js → improve-core/improve-plan-annotated-render.js} +56 -28
- package/dist/{improve-plan-annotated-render.js.map → improve-core/improve-plan-annotated-render.js.map} +1 -1
- package/dist/improve-core/improve-plan-annotator.d.ts +34 -0
- package/dist/improve-core/improve-plan-annotator.d.ts.map +1 -0
- package/dist/improve-core/improve-plan-annotator.js +52 -0
- package/dist/improve-core/improve-plan-annotator.js.map +1 -0
- package/dist/{improve-plan-render.d.ts → improve-core/improve-plan-render.d.ts} +2 -1
- package/dist/improve-core/improve-plan-render.d.ts.map +1 -0
- package/dist/{improve-plan-render.js → improve-core/improve-plan-render.js} +7 -1
- package/dist/improve-core/improve-plan-render.js.map +1 -0
- package/dist/improve-core/improve-plan-vector-keep.d.ts +29 -0
- package/dist/improve-core/improve-plan-vector-keep.d.ts.map +1 -0
- package/dist/improve-core/improve-plan-vector-keep.js +68 -0
- package/dist/improve-core/improve-plan-vector-keep.js.map +1 -0
- package/dist/{improve-raster-layers-section.d.ts → improve-core/improve-raster-layers-section.d.ts} +9 -1
- package/dist/improve-core/improve-raster-layers-section.d.ts.map +1 -0
- package/dist/{improve-raster-layers-section.js → improve-core/improve-raster-layers-section.js} +5 -2
- package/dist/improve-core/improve-raster-layers-section.js.map +1 -0
- package/dist/improve-core/improve-refusal.d.ts +6 -0
- package/dist/improve-core/improve-refusal.d.ts.map +1 -0
- package/dist/improve-core/improve-refusal.js +27 -0
- package/dist/improve-core/improve-refusal.js.map +1 -0
- package/dist/improve-core/improve-retain.d.ts +121 -0
- package/dist/improve-core/improve-retain.d.ts.map +1 -0
- package/dist/improve-core/improve-retain.js +115 -0
- package/dist/improve-core/improve-retain.js.map +1 -0
- package/dist/improve-core/improve-site-plan.d.ts +75 -0
- package/dist/improve-core/improve-site-plan.d.ts.map +1 -0
- package/dist/improve-core/improve-site-plan.js +135 -0
- package/dist/improve-core/improve-site-plan.js.map +1 -0
- package/dist/improve-core/improve-site-shell.d.ts +56 -0
- package/dist/improve-core/improve-site-shell.d.ts.map +1 -0
- package/dist/improve-core/improve-site-shell.js +152 -0
- package/dist/improve-core/improve-site-shell.js.map +1 -0
- package/dist/improve-core/improve-site-tokens.d.ts +44 -0
- package/dist/improve-core/improve-site-tokens.d.ts.map +1 -0
- package/dist/improve-core/improve-site-tokens.js +87 -0
- package/dist/improve-core/improve-site-tokens.js.map +1 -0
- package/dist/improve-core/improve-source-hints.d.ts +25 -0
- package/dist/improve-core/improve-source-hints.d.ts.map +1 -0
- package/dist/improve-core/improve-source-hints.js +17 -0
- package/dist/improve-core/improve-source-hints.js.map +1 -0
- package/dist/improve-core/improve-token-patch.d.ts.map +1 -0
- package/dist/{improve-token-patch.js → improve-core/improve-token-patch.js} +2 -0
- package/dist/improve-core/improve-token-patch.js.map +1 -0
- package/dist/improve-core/index.d.ts +47 -0
- package/dist/improve-core/index.d.ts.map +1 -0
- package/dist/improve-core/index.js +49 -0
- package/dist/improve-core/index.js.map +1 -0
- package/dist/improve-delivery-stages.d.ts +6 -0
- package/dist/improve-delivery-stages.d.ts.map +1 -1
- package/dist/improve-delivery-stages.js +87 -6
- package/dist/improve-delivery-stages.js.map +1 -1
- package/dist/improve-dom-diff.d.ts +8 -24
- package/dist/improve-dom-diff.d.ts.map +1 -1
- package/dist/improve-dom-diff.js +23 -123
- package/dist/improve-dom-diff.js.map +1 -1
- package/dist/improve-dom-gate.d.ts +1 -18
- package/dist/improve-dom-gate.d.ts.map +1 -1
- package/dist/improve-dom-gate.js +1 -46
- package/dist/improve-dom-gate.js.map +1 -1
- package/dist/improve-generation-stages.d.ts +0 -2
- package/dist/improve-generation-stages.d.ts.map +1 -1
- package/dist/improve-generation-stages.js +162 -15
- package/dist/improve-generation-stages.js.map +1 -1
- package/dist/improve-kit-assets.d.ts +8 -116
- package/dist/improve-kit-assets.d.ts.map +1 -1
- package/dist/improve-kit-assets.js +9 -229
- package/dist/improve-kit-assets.js.map +1 -1
- package/dist/improve-kit-readme.d.ts +4 -0
- package/dist/improve-kit-readme.d.ts.map +1 -1
- package/dist/improve-kit-readme.js +57 -16
- package/dist/improve-kit-readme.js.map +1 -1
- package/dist/improve-kit-stall.d.ts +3 -1
- package/dist/improve-kit-stall.d.ts.map +1 -1
- package/dist/improve-kit-stall.js +46 -14
- package/dist/improve-kit-stall.js.map +1 -1
- package/dist/improve-kit-status.d.ts.map +1 -1
- package/dist/improve-kit-status.js +8 -3
- package/dist/improve-kit-status.js.map +1 -1
- package/dist/improve-options.d.ts +8 -0
- package/dist/improve-options.d.ts.map +1 -1
- package/dist/improve-options.js +92 -12
- package/dist/improve-options.js.map +1 -1
- package/dist/improve-passthrough-flags.d.ts +8 -0
- package/dist/improve-passthrough-flags.d.ts.map +1 -0
- package/dist/improve-passthrough-flags.js +11 -0
- package/dist/improve-passthrough-flags.js.map +1 -0
- package/dist/improve-plan-annotator.d.ts +8 -2
- package/dist/improve-plan-annotator.d.ts.map +1 -1
- package/dist/improve-plan-annotator.js +35 -38
- package/dist/improve-plan-annotator.js.map +1 -1
- package/dist/improve-pricing-plan.d.ts +3 -0
- package/dist/improve-pricing-plan.d.ts.map +1 -1
- package/dist/improve-pricing-plan.js +33 -5
- package/dist/improve-pricing-plan.js.map +1 -1
- package/dist/improve-recheck.d.ts +9 -0
- package/dist/improve-recheck.d.ts.map +1 -0
- package/dist/improve-recheck.js +200 -0
- package/dist/improve-recheck.js.map +1 -0
- package/dist/improve-reset.d.ts.map +1 -1
- package/dist/improve-reset.js +11 -0
- package/dist/improve-reset.js.map +1 -1
- package/dist/improve-run-summary.d.ts +6 -0
- package/dist/improve-run-summary.d.ts.map +1 -1
- package/dist/improve-run-summary.js +29 -5
- package/dist/improve-run-summary.js.map +1 -1
- package/dist/improve-site-plan.d.ts +57 -0
- package/dist/improve-site-plan.d.ts.map +1 -0
- package/dist/improve-site-plan.js +79 -0
- package/dist/improve-site-plan.js.map +1 -0
- package/dist/improve-site-shell.d.ts +11 -0
- package/dist/improve-site-shell.d.ts.map +1 -0
- package/dist/improve-site-shell.js +24 -0
- package/dist/improve-site-shell.js.map +1 -0
- package/dist/improve-site-stage.d.ts +10 -0
- package/dist/improve-site-stage.d.ts.map +1 -0
- package/dist/improve-site-stage.js +84 -0
- package/dist/improve-site-stage.js.map +1 -0
- package/dist/improve-site-tokens.d.ts +9 -0
- package/dist/improve-site-tokens.d.ts.map +1 -0
- package/dist/improve-site-tokens.js +17 -0
- package/dist/improve-site-tokens.js.map +1 -0
- package/dist/improve-source-hints.d.ts +3 -12
- package/dist/improve-source-hints.d.ts.map +1 -1
- package/dist/improve-source-hints.js +4 -5
- package/dist/improve-source-hints.js.map +1 -1
- package/dist/improve-spend-ledger.d.ts +69 -0
- package/dist/improve-spend-ledger.d.ts.map +1 -0
- package/dist/improve-spend-ledger.js +118 -0
- package/dist/improve-spend-ledger.js.map +1 -0
- package/dist/improve-stage-runners.d.ts +5 -2
- package/dist/improve-stage-runners.d.ts.map +1 -1
- package/dist/improve-stage-runners.js +5 -2
- package/dist/improve-stage-runners.js.map +1 -1
- package/dist/improve-stage-shared.d.ts +10 -1
- package/dist/improve-stage-shared.d.ts.map +1 -1
- package/dist/improve-stage-shared.js.map +1 -1
- package/dist/improve-stop-handler.d.ts +15 -0
- package/dist/improve-stop-handler.d.ts.map +1 -1
- package/dist/improve-stop-handler.js +74 -3
- package/dist/improve-stop-handler.js.map +1 -1
- package/dist/improve-terminal-event.d.ts.map +1 -1
- package/dist/improve-terminal-event.js +7 -4
- package/dist/improve-terminal-event.js.map +1 -1
- package/dist/improve-workspace.d.ts +198 -2
- package/dist/improve-workspace.d.ts.map +1 -1
- package/dist/improve-workspace.js +249 -92
- package/dist/improve-workspace.js.map +1 -1
- package/dist/legacy-skill-catalog.d.ts.map +1 -1
- package/dist/legacy-skill-catalog.js +79 -0
- package/dist/legacy-skill-catalog.js.map +1 -1
- package/dist/mcp-convert.js +1 -1
- package/dist/mcp-convert.js.map +1 -1
- package/dist/mcp-tool-definitions.js +1 -1
- package/dist/mcp-tool-definitions.js.map +1 -1
- package/dist/mcp-tool-handler.d.ts.map +1 -1
- package/dist/mcp-tool-handler.js +0 -3
- package/dist/mcp-tool-handler.js.map +1 -1
- package/dist/redesign-branch-adoption.d.ts +29 -0
- package/dist/redesign-branch-adoption.d.ts.map +1 -0
- package/dist/redesign-branch-adoption.js +183 -0
- package/dist/redesign-branch-adoption.js.map +1 -0
- package/dist/redesign-branch-identity.d.ts +23 -0
- package/dist/redesign-branch-identity.d.ts.map +1 -0
- package/dist/redesign-branch-identity.js +27 -0
- package/dist/redesign-branch-identity.js.map +1 -0
- package/dist/redesign-branch-record-verification.d.ts +51 -0
- package/dist/redesign-branch-record-verification.d.ts.map +1 -0
- package/dist/redesign-branch-record-verification.js +127 -0
- package/dist/redesign-branch-record-verification.js.map +1 -0
- package/dist/redesign-branch-stage.d.ts +17 -0
- package/dist/redesign-branch-stage.d.ts.map +1 -0
- package/dist/redesign-branch-stage.js +218 -0
- package/dist/redesign-branch-stage.js.map +1 -0
- package/dist/redesign-capture.d.ts +145 -15
- package/dist/redesign-capture.d.ts.map +1 -1
- package/dist/redesign-capture.js +182 -71
- package/dist/redesign-capture.js.map +1 -1
- package/dist/redesign-page-candidates.d.ts +40 -0
- package/dist/redesign-page-candidates.d.ts.map +1 -0
- package/dist/redesign-page-candidates.js +131 -0
- package/dist/redesign-page-candidates.js.map +1 -0
- package/dist/redesign-page-ownership.d.ts +36 -0
- package/dist/redesign-page-ownership.d.ts.map +1 -0
- package/dist/redesign-page-ownership.js +174 -0
- package/dist/redesign-page-ownership.js.map +1 -0
- package/dist/redesign-plan-identity.d.ts +3 -1
- package/dist/redesign-plan-identity.d.ts.map +1 -1
- package/dist/redesign-plan-identity.js +4 -1
- package/dist/redesign-plan-identity.js.map +1 -1
- package/dist/redesign-plan.d.ts.map +1 -1
- package/dist/redesign-plan.js +12 -6
- package/dist/redesign-plan.js.map +1 -1
- package/dist/redesign-record-validation.d.ts +4 -0
- package/dist/redesign-record-validation.d.ts.map +1 -0
- package/dist/redesign-record-validation.js +210 -0
- package/dist/redesign-record-validation.js.map +1 -0
- package/dist/redesign-workspace.d.ts +43 -5
- package/dist/redesign-workspace.d.ts.map +1 -1
- package/dist/redesign-workspace.js +66 -7
- package/dist/redesign-workspace.js.map +1 -1
- package/dist/responsive-alternative-materializer.d.ts +8 -3
- package/dist/responsive-alternative-materializer.d.ts.map +1 -1
- package/dist/responsive-alternative-materializer.js +68 -51
- package/dist/responsive-alternative-materializer.js.map +1 -1
- package/dist/result-integrity.d.ts +38 -0
- package/dist/result-integrity.d.ts.map +1 -0
- package/dist/result-integrity.js +46 -0
- package/dist/result-integrity.js.map +1 -0
- package/dist/review-edit-source.d.ts.map +1 -1
- package/dist/review-edit-source.js +6 -2
- package/dist/review-edit-source.js.map +1 -1
- package/dist/review-edit.js +2 -2
- package/dist/review-edit.js.map +1 -1
- package/dist/review-prototype-gap.js +1 -1
- package/dist/review-prototype-gap.js.map +1 -1
- package/dist/run-journal.d.ts +3 -1
- package/dist/run-journal.d.ts.map +1 -1
- package/dist/run-journal.js +7 -1
- package/dist/run-journal.js.map +1 -1
- package/dist/spend-run-filter.d.ts +21 -0
- package/dist/spend-run-filter.d.ts.map +1 -0
- package/dist/spend-run-filter.js +67 -0
- package/dist/spend-run-filter.js.map +1 -0
- package/dist/spend-scoped-report-lines.d.ts +4 -0
- package/dist/spend-scoped-report-lines.d.ts.map +1 -0
- package/dist/spend-scoped-report-lines.js +46 -0
- package/dist/spend-scoped-report-lines.js.map +1 -0
- package/dist/spend-scoped-report.d.ts +28 -0
- package/dist/spend-scoped-report.d.ts.map +1 -0
- package/dist/spend-scoped-report.js +45 -0
- package/dist/spend-scoped-report.js.map +1 -0
- package/open-design.json +2 -2
- package/package.json +5 -5
- package/skills/12ui-design/SKILL.md +8 -4
- package/skills/12ui-design/improve.md +50 -3
- package/dist/improve-dom-anchor.d.ts.map +0 -1
- package/dist/improve-dom-anchor.js.map +0 -1
- package/dist/improve-dom-extract.d.ts.map +0 -1
- package/dist/improve-dom-extract.js.map +0 -1
- package/dist/improve-dom-neighbour.d.ts.map +0 -1
- package/dist/improve-dom-neighbour.js.map +0 -1
- package/dist/improve-dom-scale.d.ts.map +0 -1
- package/dist/improve-dom-scale.js.map +0 -1
- package/dist/improve-icon-svg.d.ts +0 -47
- package/dist/improve-icon-svg.d.ts.map +0 -1
- package/dist/improve-icon-svg.js.map +0 -1
- package/dist/improve-layerdoc-diff.d.ts.map +0 -1
- package/dist/improve-layerdoc-diff.js.map +0 -1
- package/dist/improve-layerdoc-types.d.ts.map +0 -1
- package/dist/improve-layerdoc-types.js +0 -2
- package/dist/improve-layerdoc-types.js.map +0 -1
- package/dist/improve-plan-annotated-render.d.ts.map +0 -1
- package/dist/improve-plan-render.d.ts.map +0 -1
- package/dist/improve-plan-render.js.map +0 -1
- package/dist/improve-raster-layers-section.d.ts.map +0 -1
- package/dist/improve-raster-layers-section.js.map +0 -1
- package/dist/improve-token-patch.d.ts.map +0 -1
- package/dist/improve-token-patch.js.map +0 -1
- /package/dist/{improve-dom-anchor.d.ts → improve-core/improve-dom-anchor.d.ts} +0 -0
- /package/dist/{improve-dom-extract.d.ts → improve-core/improve-dom-extract.d.ts} +0 -0
- /package/dist/{improve-dom-neighbour.d.ts → improve-core/improve-dom-neighbour.d.ts} +0 -0
- /package/dist/{improve-dom-scale.d.ts → improve-core/improve-dom-scale.d.ts} +0 -0
- /package/dist/{improve-layerdoc-diff.d.ts → improve-core/improve-layerdoc-diff.d.ts} +0 -0
- /package/dist/{improve-token-patch.d.ts → improve-core/improve-token-patch.d.ts} +0 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WHAT AN IMPROVE RUN KEEPS. One module owns the answer, because the CLI, the
|
|
3
|
+
* /improve page, and the site-wide branch all have to ask it and all have to
|
|
4
|
+
* get the same one.
|
|
5
|
+
*
|
|
6
|
+
* WHY THIS EXISTS (owner, direct chat 2026-09-02, on a chargedesk.com run):
|
|
7
|
+
* "it's kind of retaining the wrong stuff. Obviously, I would expect the logo
|
|
8
|
+
* to be retained, or at least very similar, whereas it's keeping all of the
|
|
9
|
+
* title, the text, the icons, and stuff in the exact same place and just very
|
|
10
|
+
* slightly altering the background image… It's not giving me a new design."
|
|
11
|
+
*
|
|
12
|
+
* That was the shipped default doing exactly what it was told: improve pinned
|
|
13
|
+
* `layout` and `content` and excluded `assets`, so the geometry was frozen and
|
|
14
|
+
* the brand was the one thing licensed to change. The vocabulary was never
|
|
15
|
+
* wrong — the DEFAULT was inverted, and the four facets were invisible.
|
|
16
|
+
*
|
|
17
|
+
* THE CONTROL IS THE FACETS THEMSELVES (owner, same day): "I feel like it
|
|
18
|
+
* might be better to have retain toggles on the UI. So if we were to remove
|
|
19
|
+
* the layout toggle for example, it might resolve some of the problems?" So
|
|
20
|
+
* there is no invented ladder of level names between the visitor and the
|
|
21
|
+
* service — the four things the service already understands are the four
|
|
22
|
+
* things a visitor turns on and off, and `12ui improve --retain` is the same
|
|
23
|
+
* control on the command line.
|
|
24
|
+
*/
|
|
25
|
+
/** The same shape as the service's `CreateRetainPolicy`, restated here because
|
|
26
|
+
* improve-core may not import from the worker or the CLI. */
|
|
27
|
+
export type ImproveRetainPolicy = {
|
|
28
|
+
include: string[];
|
|
29
|
+
exclude: string[];
|
|
30
|
+
notes?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Improve's reference is always the caller's OWN page, never a design they
|
|
33
|
+
* liked, and the service reads this to decide what an EXCLUSION means: a
|
|
34
|
+
* prohibition against someone else's work, or a licence over your own. Every
|
|
35
|
+
* policy this module hands out declares it, so no improve request can reach
|
|
36
|
+
* the model as "do not reuse its actual content or text".
|
|
37
|
+
*/
|
|
38
|
+
source?: 'inspiration' | 'subject';
|
|
39
|
+
};
|
|
40
|
+
/** The service's vocabulary, in the order the toggles read. */
|
|
41
|
+
export declare const IMPROVE_RETAIN_FACETS: readonly ["layout", "content", "assets", "style"];
|
|
42
|
+
export type ImproveRetainFacet = (typeof IMPROVE_RETAIN_FACETS)[number];
|
|
43
|
+
/**
|
|
44
|
+
* Copy and brand kept; geometry and visual system free.
|
|
45
|
+
*
|
|
46
|
+
* The superseded default was the exact inverse — `include [layout, content]`,
|
|
47
|
+
* `exclude [style, assets]` — which pinned every element in place and licensed
|
|
48
|
+
* the logo to change. Keeping the product's own words and brand while freeing
|
|
49
|
+
* how the page is laid out and how it looks is what "improve" was always meant
|
|
50
|
+
* to mean.
|
|
51
|
+
*/
|
|
52
|
+
export declare const DEFAULT_IMPROVE_RETAIN: Readonly<ImproveRetainPolicy>;
|
|
53
|
+
export declare const improveRetainKeeps: (retain: ImproveRetainPolicy, facet: ImproveRetainFacet) => boolean;
|
|
54
|
+
/** Canonicalize a facet set into the policy the service hashes. */
|
|
55
|
+
export declare const improveRetainFor: (facets: readonly ImproveRetainFacet[]) => ImproveRetainPolicy;
|
|
56
|
+
/** Flip one toggle, returning a fresh canonical policy. */
|
|
57
|
+
export declare const improveRetainToggled: (retain: ImproveRetainPolicy, facet: ImproveRetainFacet, keep: boolean) => ImproveRetainPolicy;
|
|
58
|
+
/**
|
|
59
|
+
* THE STATE IMPROVE MUST NOT BE IN (owner, direct chat 2026-09-02): "maybe we
|
|
60
|
+
* just don't allow all 4 to be enabled at once? At least one gate must not be
|
|
61
|
+
* selected?"
|
|
62
|
+
*
|
|
63
|
+
* With every facet kept there is nothing left for an improvement to be. The
|
|
64
|
+
* measured behaviour on a photo-led page is a near no-op — an image edit handed
|
|
65
|
+
* a full conservation set returns its input (`.tmp/site-improve/polish-study`,
|
|
66
|
+
* chargedesk ink delta 4.6%) — so the request buys a paid call and returns the
|
|
67
|
+
* page it was given. The four facets are exhaustive, so "keep all four" is the
|
|
68
|
+
* one combination that cannot be honoured, and it is refused rather than
|
|
69
|
+
* charged for.
|
|
70
|
+
*
|
|
71
|
+
* Extra labels (`palette`, an unknown semantic note) do not enter into it: the
|
|
72
|
+
* question is only whether all four of the facets the toggles expose are held.
|
|
73
|
+
*/
|
|
74
|
+
export declare const improveRetainKeepsEverything: (retain: ImproveRetainPolicy) => boolean;
|
|
75
|
+
/**
|
|
76
|
+
* The one sentence every surface says when it refuses. `copy` and `brand` are
|
|
77
|
+
* the words the toggles use AND accepted `--retain` aliases for `content` and
|
|
78
|
+
* `assets`, so the same sentence is true on the page and on the command line.
|
|
79
|
+
*/
|
|
80
|
+
export declare const IMPROVE_RETAIN_ALL_KEPT_REFUSAL = "At least one of layout, copy, brand, and style must be left free to change.";
|
|
81
|
+
/**
|
|
82
|
+
* Whether this facet may still be switched on. Three kept is the ceiling, so
|
|
83
|
+
* the fourth box is the only one a page ever has to disable.
|
|
84
|
+
*/
|
|
85
|
+
export declare const improveRetainMayKeep: (retain: ImproveRetainPolicy, facet: ImproveRetainFacet) => boolean;
|
|
86
|
+
/**
|
|
87
|
+
* A policy that arrived from outside this session — restored history, a link
|
|
88
|
+
* someone kept, a stored draft from before this rule — made usable. All four
|
|
89
|
+
* kept is not a request anything can honour, so it resolves to the default
|
|
90
|
+
* (copy + brand) rather than crashing a page or reaching a paid call.
|
|
91
|
+
*/
|
|
92
|
+
export declare const improveRetainResolved: (retain: ImproveRetainPolicy) => ImproveRetainPolicy;
|
|
93
|
+
/**
|
|
94
|
+
* The service derives run mode from retain (layout retained → preserve
|
|
95
|
+
* structure), so a caller that sends a mode has to send the matching one or
|
|
96
|
+
* its request reads as a contradiction it did not intend.
|
|
97
|
+
*/
|
|
98
|
+
export declare const improveRetainMode: (retain: ImproveRetainPolicy) => "preserve-structure" | "inspiration";
|
|
99
|
+
/**
|
|
100
|
+
* The toggle's own label. The owner named these in plain words, and they are
|
|
101
|
+
* the words both the page and `--help` use: a facet is called the same thing
|
|
102
|
+
* wherever a person meets it.
|
|
103
|
+
*/
|
|
104
|
+
export declare const improveRetainFacetLabel: (facet: ImproveRetainFacet) => string;
|
|
105
|
+
/**
|
|
106
|
+
* What turning this one off licenses, for a hover or a help line.
|
|
107
|
+
*
|
|
108
|
+
* `style` says both halves, because "keep style" is the one facet a person
|
|
109
|
+
* reads as "change nothing" (owner, 2026-09-02: "Selecting all the options
|
|
110
|
+
* results in no changes?"). It keeps the style's IDENTITY — palette,
|
|
111
|
+
* typography voice, image treatment — and the page still gets polished.
|
|
112
|
+
*/
|
|
113
|
+
export declare const improveRetainFacetHint: (facet: ImproveRetainFacet) => string;
|
|
114
|
+
/**
|
|
115
|
+
* The `12ui improve --retain` string that asks for exactly this. With nothing
|
|
116
|
+
* kept there is no positive list to write, so it uses the flag's own explicit
|
|
117
|
+
* exclusion spelling (`-layout,…`) rather than a word the parser would read as
|
|
118
|
+
* a label.
|
|
119
|
+
*/
|
|
120
|
+
export declare const improveRetainFlag: (retain: ImproveRetainPolicy) => string;
|
|
121
|
+
//# sourceMappingURL=improve-retain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-retain.d.ts","sourceRoot":"","sources":["../../src/improve-core/improve-retain.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;6DAC6D;AAC7D,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,qBAAqB,mDAAoD,CAAC;AACvF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,mBAAmB,CAIhE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,mBAAmB,EAC3B,OAAO,kBAAkB,KACxB,OAAyC,CAAC;AAE7C,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,SAAS,kBAAkB,EAAE,KACpC,mBAOF,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,mBAAmB,EAC3B,OAAO,kBAAkB,EACzB,MAAM,OAAO,KACZ,mBAEF,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,4BAA4B,GAAI,QAAQ,mBAAmB,KAAG,OAE1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,gFACmC,CAAC;AAEhF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,mBAAmB,EAC3B,OAAO,kBAAkB,KACxB,OAGF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,mBAAmB,KAC1B,mBAMF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,mBAAmB,KAC1B,oBAAoB,GAAG,aAEzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,kBAAkB,KAAG,MAKnE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,kBAAkB,KAAG,MAKlE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,mBAAmB,KAAG,MAI/D,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
// GENERATED — do not edit. Copied verbatim from
|
|
2
|
+
// packages/layerdoc/src/improve-core by scripts/sync-improve-core.mjs.
|
|
3
|
+
/** The service's vocabulary, in the order the toggles read. */
|
|
4
|
+
export const IMPROVE_RETAIN_FACETS = ['layout', 'content', 'assets', 'style'];
|
|
5
|
+
/**
|
|
6
|
+
* Copy and brand kept; geometry and visual system free.
|
|
7
|
+
*
|
|
8
|
+
* The superseded default was the exact inverse — `include [layout, content]`,
|
|
9
|
+
* `exclude [style, assets]` — which pinned every element in place and licensed
|
|
10
|
+
* the logo to change. Keeping the product's own words and brand while freeing
|
|
11
|
+
* how the page is laid out and how it looks is what "improve" was always meant
|
|
12
|
+
* to mean.
|
|
13
|
+
*/
|
|
14
|
+
export const DEFAULT_IMPROVE_RETAIN = {
|
|
15
|
+
include: ['assets', 'content'],
|
|
16
|
+
exclude: ['layout', 'style'],
|
|
17
|
+
source: 'subject',
|
|
18
|
+
};
|
|
19
|
+
export const improveRetainKeeps = (retain, facet) => retain.include.includes(facet);
|
|
20
|
+
/** Canonicalize a facet set into the policy the service hashes. */
|
|
21
|
+
export const improveRetainFor = (facets) => {
|
|
22
|
+
const kept = new Set(facets);
|
|
23
|
+
return {
|
|
24
|
+
include: IMPROVE_RETAIN_FACETS.filter((facet) => kept.has(facet)).sort(),
|
|
25
|
+
exclude: IMPROVE_RETAIN_FACETS.filter((facet) => !kept.has(facet)).sort(),
|
|
26
|
+
source: 'subject',
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
/** Flip one toggle, returning a fresh canonical policy. */
|
|
30
|
+
export const improveRetainToggled = (retain, facet, keep) => improveRetainFor(IMPROVE_RETAIN_FACETS.filter((entry) => (entry === facet ? keep : improveRetainKeeps(retain, entry))));
|
|
31
|
+
/**
|
|
32
|
+
* THE STATE IMPROVE MUST NOT BE IN (owner, direct chat 2026-09-02): "maybe we
|
|
33
|
+
* just don't allow all 4 to be enabled at once? At least one gate must not be
|
|
34
|
+
* selected?"
|
|
35
|
+
*
|
|
36
|
+
* With every facet kept there is nothing left for an improvement to be. The
|
|
37
|
+
* measured behaviour on a photo-led page is a near no-op — an image edit handed
|
|
38
|
+
* a full conservation set returns its input (`.tmp/site-improve/polish-study`,
|
|
39
|
+
* chargedesk ink delta 4.6%) — so the request buys a paid call and returns the
|
|
40
|
+
* page it was given. The four facets are exhaustive, so "keep all four" is the
|
|
41
|
+
* one combination that cannot be honoured, and it is refused rather than
|
|
42
|
+
* charged for.
|
|
43
|
+
*
|
|
44
|
+
* Extra labels (`palette`, an unknown semantic note) do not enter into it: the
|
|
45
|
+
* question is only whether all four of the facets the toggles expose are held.
|
|
46
|
+
*/
|
|
47
|
+
export const improveRetainKeepsEverything = (retain) => (IMPROVE_RETAIN_FACETS.every((facet) => improveRetainKeeps(retain, facet)));
|
|
48
|
+
/**
|
|
49
|
+
* The one sentence every surface says when it refuses. `copy` and `brand` are
|
|
50
|
+
* the words the toggles use AND accepted `--retain` aliases for `content` and
|
|
51
|
+
* `assets`, so the same sentence is true on the page and on the command line.
|
|
52
|
+
*/
|
|
53
|
+
export const IMPROVE_RETAIN_ALL_KEPT_REFUSAL = 'At least one of layout, copy, brand, and style must be left free to change.';
|
|
54
|
+
/**
|
|
55
|
+
* Whether this facet may still be switched on. Three kept is the ceiling, so
|
|
56
|
+
* the fourth box is the only one a page ever has to disable.
|
|
57
|
+
*/
|
|
58
|
+
export const improveRetainMayKeep = (retain, facet) => (improveRetainKeeps(retain, facet)
|
|
59
|
+
|| IMPROVE_RETAIN_FACETS.some((entry) => entry !== facet && !improveRetainKeeps(retain, entry)));
|
|
60
|
+
/**
|
|
61
|
+
* A policy that arrived from outside this session — restored history, a link
|
|
62
|
+
* someone kept, a stored draft from before this rule — made usable. All four
|
|
63
|
+
* kept is not a request anything can honour, so it resolves to the default
|
|
64
|
+
* (copy + brand) rather than crashing a page or reaching a paid call.
|
|
65
|
+
*/
|
|
66
|
+
export const improveRetainResolved = (retain) => (improveRetainKeepsEverything(retain)
|
|
67
|
+
? improveRetainFor(IMPROVE_RETAIN_FACETS.filter((facet) => improveRetainKeeps(DEFAULT_IMPROVE_RETAIN, facet)))
|
|
68
|
+
: retain);
|
|
69
|
+
/**
|
|
70
|
+
* The service derives run mode from retain (layout retained → preserve
|
|
71
|
+
* structure), so a caller that sends a mode has to send the matching one or
|
|
72
|
+
* its request reads as a contradiction it did not intend.
|
|
73
|
+
*/
|
|
74
|
+
export const improveRetainMode = (retain) => (improveRetainKeeps(retain, 'layout') ? 'preserve-structure' : 'inspiration');
|
|
75
|
+
/**
|
|
76
|
+
* The toggle's own label. The owner named these in plain words, and they are
|
|
77
|
+
* the words both the page and `--help` use: a facet is called the same thing
|
|
78
|
+
* wherever a person meets it.
|
|
79
|
+
*/
|
|
80
|
+
export const improveRetainFacetLabel = (facet) => {
|
|
81
|
+
if (facet === 'layout')
|
|
82
|
+
return 'Keep layout';
|
|
83
|
+
if (facet === 'content')
|
|
84
|
+
return 'Keep copy';
|
|
85
|
+
if (facet === 'assets')
|
|
86
|
+
return 'Keep brand';
|
|
87
|
+
return 'Keep style';
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* What turning this one off licenses, for a hover or a help line.
|
|
91
|
+
*
|
|
92
|
+
* `style` says both halves, because "keep style" is the one facet a person
|
|
93
|
+
* reads as "change nothing" (owner, 2026-09-02: "Selecting all the options
|
|
94
|
+
* results in no changes?"). It keeps the style's IDENTITY — palette,
|
|
95
|
+
* typography voice, image treatment — and the page still gets polished.
|
|
96
|
+
*/
|
|
97
|
+
export const improveRetainFacetHint = (facet) => {
|
|
98
|
+
if (facet === 'layout')
|
|
99
|
+
return 'Off: the page may be laid out again from scratch.';
|
|
100
|
+
if (facet === 'content')
|
|
101
|
+
return 'Off: the words may be rewritten, but no fact may be invented.';
|
|
102
|
+
if (facet === 'assets')
|
|
103
|
+
return 'Off: the logo, wordmark, and brand imagery may be replaced.';
|
|
104
|
+
return 'Off: a new palette, typography, and image treatment. On: those stay, and the page is still polished.';
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* The `12ui improve --retain` string that asks for exactly this. With nothing
|
|
108
|
+
* kept there is no positive list to write, so it uses the flag's own explicit
|
|
109
|
+
* exclusion spelling (`-layout,…`) rather than a word the parser would read as
|
|
110
|
+
* a label.
|
|
111
|
+
*/
|
|
112
|
+
export const improveRetainFlag = (retain) => (retain.include.length > 0
|
|
113
|
+
? [...retain.include].sort().join(',')
|
|
114
|
+
: IMPROVE_RETAIN_FACETS.map((facet) => `-${facet}`).join(','));
|
|
115
|
+
//# sourceMappingURL=improve-retain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-retain.js","sourceRoot":"","sources":["../../src/improve-core/improve-retain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { type ImproveSiteShellChange, type ImproveSiteSharedShellRollup } from './improve-site-shell.js';
|
|
2
|
+
import { type ImproveSiteTokenPatch, type ImproveSiteTokenRollup } from './improve-site-tokens.js';
|
|
3
|
+
import type { ImproveArtifactMap } from './improve-artifacts.js';
|
|
4
|
+
export type ImproveSitePageGate = 'passed' | 'blocked' | 'not-applicable' | 'failed';
|
|
5
|
+
/**
|
|
6
|
+
* The site roll-up needs stable page facts and the paths a reader should be
|
|
7
|
+
* linked to; capture, branch, and conversion orchestration stay outside. Paths
|
|
8
|
+
* are opaque to the core — it hands each one to the caller's `relativePath` to
|
|
9
|
+
* be named, so a kit written to disk and a kit zipped in a browser read alike.
|
|
10
|
+
*/
|
|
11
|
+
export type ImproveSitePagePlan = {
|
|
12
|
+
id: string;
|
|
13
|
+
url: string;
|
|
14
|
+
gate: ImproveSitePageGate;
|
|
15
|
+
/** A branch failure has no polished target or implementation plan. */
|
|
16
|
+
failure?: {
|
|
17
|
+
code: string;
|
|
18
|
+
message: string;
|
|
19
|
+
};
|
|
20
|
+
polishedImagePath?: string;
|
|
21
|
+
targetHtmlPath?: string;
|
|
22
|
+
targetLayout?: 'document' | 'responsive' | 'fixed';
|
|
23
|
+
responsiveWarning?: string;
|
|
24
|
+
currentDomDocPath: string;
|
|
25
|
+
tokenPatchPath: string;
|
|
26
|
+
diffPath: string;
|
|
27
|
+
planPath: string;
|
|
28
|
+
coverage?: number;
|
|
29
|
+
matchedCount?: number;
|
|
30
|
+
addedCount?: number;
|
|
31
|
+
removedCount?: number;
|
|
32
|
+
sourceHints: string[];
|
|
33
|
+
};
|
|
34
|
+
export type ImproveSitePlanArtifacts = {
|
|
35
|
+
artifacts: ImproveArtifactMap;
|
|
36
|
+
pages: readonly ImproveSitePagePlan[];
|
|
37
|
+
tokens: ImproveSiteTokenRollup;
|
|
38
|
+
sharedShell: ImproveSiteSharedShellRollup;
|
|
39
|
+
};
|
|
40
|
+
export type ImproveSiteDiffFacts = {
|
|
41
|
+
coverage?: number;
|
|
42
|
+
matchedCount?: number;
|
|
43
|
+
addedCount?: number;
|
|
44
|
+
removedCount?: number;
|
|
45
|
+
};
|
|
46
|
+
/** How the core names a path it did not create: the caller decides. */
|
|
47
|
+
export type ImproveSiteRelativePath = (file: string) => string;
|
|
48
|
+
/** The counts a page plan's `diff.json` contributes to the page inventory. */
|
|
49
|
+
export declare const parseImproveSiteDiffFacts: (text: string | undefined) => ImproveSiteDiffFacts;
|
|
50
|
+
export declare const IMPROVE_SITE_PAGES_FILE = "pages.md";
|
|
51
|
+
export declare const IMPROVE_SITE_APPLY_FILE = "APPLY.md";
|
|
52
|
+
export declare const renderImproveSitePages: (args: {
|
|
53
|
+
pages: readonly ImproveSitePagePlan[];
|
|
54
|
+
relativePath: ImproveSiteRelativePath;
|
|
55
|
+
}) => string;
|
|
56
|
+
export declare const renderImproveSiteApply: (args: {
|
|
57
|
+
pages: readonly ImproveSitePagePlan[];
|
|
58
|
+
relativePath: ImproveSiteRelativePath;
|
|
59
|
+
repo?: string;
|
|
60
|
+
sourceUrl?: string;
|
|
61
|
+
}) => string;
|
|
62
|
+
/**
|
|
63
|
+
* The four free site-stage deliverables. Missing token or diff artifacts are
|
|
64
|
+
* expected for blocked pages and are shown honestly in `pages.md` rather than
|
|
65
|
+
* preventing the rest of the roll-up.
|
|
66
|
+
*/
|
|
67
|
+
export declare const planImproveSiteArtifacts: (args: {
|
|
68
|
+
pages: readonly ImproveSitePagePlan[];
|
|
69
|
+
tokenPatches: readonly ImproveSiteTokenPatch[];
|
|
70
|
+
shellChanges: readonly ImproveSiteShellChange[];
|
|
71
|
+
relativePath: ImproveSiteRelativePath;
|
|
72
|
+
repo?: string;
|
|
73
|
+
sourceUrl?: string;
|
|
74
|
+
}) => ImproveSitePlanArtifacts;
|
|
75
|
+
//# sourceMappingURL=improve-site-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-site-plan.d.ts","sourceRoot":"","sources":["../../src/improve-core/improve-site-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
// GENERATED — do not edit. Copied verbatim from
|
|
2
|
+
// packages/layerdoc/src/improve-core by scripts/sync-improve-core.mjs.
|
|
3
|
+
import { detectImproveSiteSharedShell, renderImproveSiteSharedShell, IMPROVE_SITE_SHARED_SHELL_FILE, } from './improve-site-shell.js';
|
|
4
|
+
import { mergeImproveSiteTokens, IMPROVE_SITE_TOKENS_FILE, } from './improve-site-tokens.js';
|
|
5
|
+
const isRecord = (value) => (Boolean(value) && typeof value === 'object' && !Array.isArray(value));
|
|
6
|
+
const markdownCell = (value) => value.replaceAll('|', '\\|').replaceAll('\n', ' ');
|
|
7
|
+
const markdownLink = (relativePath, file, label) => (file ? `[${label}](${relativePath(file)})` : '—');
|
|
8
|
+
/** The counts a page plan's `diff.json` contributes to the page inventory. */
|
|
9
|
+
export const parseImproveSiteDiffFacts = (text) => {
|
|
10
|
+
if (!text)
|
|
11
|
+
return {};
|
|
12
|
+
const document = JSON.parse(text);
|
|
13
|
+
if (!isRecord(document))
|
|
14
|
+
return {};
|
|
15
|
+
const meta = isRecord(document.meta) ? document.meta : {};
|
|
16
|
+
return {
|
|
17
|
+
...(typeof document.domCoverage === 'number' ? { coverage: document.domCoverage } : {}),
|
|
18
|
+
...(typeof meta.matchedCount === 'number' ? { matchedCount: meta.matchedCount } : {}),
|
|
19
|
+
...(typeof meta.addedCount === 'number' ? { addedCount: meta.addedCount } : {}),
|
|
20
|
+
...(typeof meta.removedCount === 'number' ? { removedCount: meta.removedCount } : {}),
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
const formatCoverage = (coverage) => coverage === undefined
|
|
24
|
+
? '—'
|
|
25
|
+
: `${(coverage * 100).toFixed(1)}%`;
|
|
26
|
+
const formatFailure = (failure) => (failure ? markdownCell(`${failure.code}: ${failure.message}`) : '—');
|
|
27
|
+
const formatTarget = (relativePath, page) => {
|
|
28
|
+
const link = markdownLink(relativePath, page.targetHtmlPath, page.targetLayout === 'fixed' ? 'fixed HTML' : 'target HTML');
|
|
29
|
+
if (!page.responsiveWarning)
|
|
30
|
+
return link;
|
|
31
|
+
return markdownCell(`${link} — ${page.responsiveWarning}`);
|
|
32
|
+
};
|
|
33
|
+
export const IMPROVE_SITE_PAGES_FILE = 'pages.md';
|
|
34
|
+
export const IMPROVE_SITE_APPLY_FILE = 'APPLY.md';
|
|
35
|
+
export const renderImproveSitePages = (args) => {
|
|
36
|
+
const lines = [
|
|
37
|
+
'# Pages', '',
|
|
38
|
+
'| Page | URL | Gate | Failure | Coverage | Matched | Added | Removed | Polished image | Target HTML | Plan |',
|
|
39
|
+
'| --- | --- | --- | --- | ---: | ---: | ---: | ---: | --- | --- | --- |',
|
|
40
|
+
];
|
|
41
|
+
for (const page of args.pages) {
|
|
42
|
+
lines.push([
|
|
43
|
+
page.id,
|
|
44
|
+
markdownCell(page.url),
|
|
45
|
+
page.gate,
|
|
46
|
+
formatFailure(page.failure),
|
|
47
|
+
formatCoverage(page.coverage),
|
|
48
|
+
page.matchedCount ?? '—',
|
|
49
|
+
page.addedCount ?? '—',
|
|
50
|
+
page.removedCount ?? '—',
|
|
51
|
+
markdownLink(args.relativePath, page.polishedImagePath, 'polished.png'),
|
|
52
|
+
formatTarget(args.relativePath, page),
|
|
53
|
+
page.gate === 'failed' ? '—' : markdownLink(args.relativePath, page.planPath, 'annotated plan'),
|
|
54
|
+
].join(' | ').replace(/^/u, '| ').replace(/$/u, ' |'));
|
|
55
|
+
}
|
|
56
|
+
lines.push('');
|
|
57
|
+
return lines.join('\n');
|
|
58
|
+
};
|
|
59
|
+
export const renderImproveSiteApply = (args) => {
|
|
60
|
+
const source = args.sourceUrl ?? args.pages[0]?.url ?? '<root-url>';
|
|
61
|
+
const lines = [
|
|
62
|
+
'# Apply the whole-site polish', '',
|
|
63
|
+
'Use this brief in order. The page plans are implementation evidence, not an invitation to invent a new product.', '',
|
|
64
|
+
'## 1. Apply tokens through the theme entry point', '',
|
|
65
|
+
`- Start with [tokens.css](${IMPROVE_SITE_TOKENS_FILE}). Apply its declarations through the repository's existing global token or theme entry point.`,
|
|
66
|
+
...(args.repo ? [`- Repository supplied with \`--repo\`: \`${args.repo}\`. Prefer its existing theme ownership and avoid parallel token systems.`] : ['- No `--repo` was supplied. Identify the owning theme entry point before changing tokens.']),
|
|
67
|
+
'',
|
|
68
|
+
'## 2. Apply shared shell changes once', '',
|
|
69
|
+
`- Follow [shared-shell.md](${IMPROVE_SITE_SHARED_SHELL_FILE}) for repeated header, navigation, sidebar, and footer changes. Implement each shared item in its shared component once.`,
|
|
70
|
+
'- Do not repeat entries marked **shared — apply once** in page-specific residue.', '',
|
|
71
|
+
'## 3. Apply per-page residue in page order', '',
|
|
72
|
+
];
|
|
73
|
+
for (const page of args.pages) {
|
|
74
|
+
if (page.gate === 'failed') {
|
|
75
|
+
const failure = page.failure
|
|
76
|
+
? `${page.failure.code}: ${page.failure.message}`
|
|
77
|
+
: 'the branch service did not return a failure detail';
|
|
78
|
+
lines.push(`- **${page.id}** (${page.url}) — Skipped: its branch failed (${failure}). No polished target or per-page plan was produced; resolve the branch failure before applying this page.`);
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const plan = markdownLink(args.relativePath, page.planPath, 'plan-annotated.md');
|
|
82
|
+
const state = page.gate === 'blocked'
|
|
83
|
+
? 'Blocked: resolve the gate before applying page-specific changes.'
|
|
84
|
+
: page.gate === 'not-applicable'
|
|
85
|
+
? 'Target-only: implement only the explicitly specified target changes.'
|
|
86
|
+
: 'Apply only the page-specific residue after tokens and shared shell work.';
|
|
87
|
+
lines.push(`- **${page.id}** (${page.url}) — ${plan}. ${state}`);
|
|
88
|
+
if (args.repo && page.sourceHints.length > 0) {
|
|
89
|
+
lines.push(` - Repository hints: ${page.sourceHints.map((hint) => `\`${hint}\``).join(', ')}.`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
lines.push('', '## 4. Implement added-element specs with their assets', '');
|
|
93
|
+
lines.push('- In each annotated page plan, implement every `Added` specification exactly where it says to insert it. Copy or reference the declared asset at its listed destination; do not replace it with a placeholder.');
|
|
94
|
+
lines.push('', '## 5. Guardrails', '');
|
|
95
|
+
lines.push('- No invention: preserve the real content, data, copy, and controls shown by each current page.', '- No dead controls: retain behavior and wire every visible interactive control to its existing action.', '- No hardcoded identity: preserve configurable product, account, and route data instead of baking it into components.', '- Keep configurable data configurable: use the existing data and theme boundaries rather than duplicating literals.');
|
|
96
|
+
lines.push('', '## 6. Verify convergence', '');
|
|
97
|
+
lines.push('- Re-shoot every page at its captured viewport after implementation.', `- Apply this \`APPLY.md\`, then run \`12ui improve ${source} --scope site --out-dir <kit> --recheck\` against the kept targets and compare the residual drift before accepting the implementation.`, '- Treat a blocked page or a structural regression as unresolved even if a coverage metric improves.', '');
|
|
98
|
+
return lines.join('\n');
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* The four free site-stage deliverables. Missing token or diff artifacts are
|
|
102
|
+
* expected for blocked pages and are shown honestly in `pages.md` rather than
|
|
103
|
+
* preventing the rest of the roll-up.
|
|
104
|
+
*/
|
|
105
|
+
export const planImproveSiteArtifacts = (args) => {
|
|
106
|
+
const tokens = mergeImproveSiteTokens(args.tokenPatches);
|
|
107
|
+
const sharedShellChanges = detectImproveSiteSharedShell(args.shellChanges);
|
|
108
|
+
const sharedShell = {
|
|
109
|
+
changes: sharedShellChanges,
|
|
110
|
+
markdown: renderImproveSiteSharedShell(sharedShellChanges, args.relativePath),
|
|
111
|
+
};
|
|
112
|
+
return {
|
|
113
|
+
artifacts: {
|
|
114
|
+
files: {
|
|
115
|
+
[IMPROVE_SITE_TOKENS_FILE]: tokens.css,
|
|
116
|
+
[IMPROVE_SITE_SHARED_SHELL_FILE]: sharedShell.markdown,
|
|
117
|
+
[IMPROVE_SITE_PAGES_FILE]: renderImproveSitePages({
|
|
118
|
+
pages: args.pages,
|
|
119
|
+
relativePath: args.relativePath,
|
|
120
|
+
}),
|
|
121
|
+
[IMPROVE_SITE_APPLY_FILE]: renderImproveSiteApply({
|
|
122
|
+
pages: args.pages,
|
|
123
|
+
relativePath: args.relativePath,
|
|
124
|
+
...(args.repo ? { repo: args.repo } : {}),
|
|
125
|
+
...(args.sourceUrl ? { sourceUrl: args.sourceUrl } : {}),
|
|
126
|
+
}),
|
|
127
|
+
},
|
|
128
|
+
remove: [],
|
|
129
|
+
},
|
|
130
|
+
pages: args.pages,
|
|
131
|
+
tokens,
|
|
132
|
+
sharedShell,
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=improve-site-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-site-plan.js","sourceRoot":"","sources":["../../src/improve-core/improve-site-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { LayerDelta } from './improve-layerdoc-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Shared shell detection. The inputs are the strings a host happens to have —
|
|
4
|
+
* a page `diff.json` and its `current.domdoc.json` — so parsing them is policy
|
|
5
|
+
* and reading them is not.
|
|
6
|
+
*/
|
|
7
|
+
export type ImproveSiteShellSelectorKind = 'id' | 'testid' | 'class' | 'path';
|
|
8
|
+
export type ImproveSiteShellChange = {
|
|
9
|
+
pageId: string;
|
|
10
|
+
selectorKind: ImproveSiteShellSelectorKind;
|
|
11
|
+
selector: string;
|
|
12
|
+
classSelector?: string;
|
|
13
|
+
tag?: string;
|
|
14
|
+
path?: string;
|
|
15
|
+
classList?: readonly string[];
|
|
16
|
+
content?: string;
|
|
17
|
+
deltas: readonly LayerDelta[];
|
|
18
|
+
impliedPadding?: readonly LayerDelta[];
|
|
19
|
+
planPath?: string;
|
|
20
|
+
};
|
|
21
|
+
export type ImproveSiteSharedShellChange = {
|
|
22
|
+
selectorKind: ImproveSiteShellSelectorKind;
|
|
23
|
+
selector: string;
|
|
24
|
+
content: string;
|
|
25
|
+
pages: string[];
|
|
26
|
+
changes: ImproveSiteShellChange[];
|
|
27
|
+
};
|
|
28
|
+
export type ImproveSiteSharedShellRollup = {
|
|
29
|
+
changes: ImproveSiteSharedShellChange[];
|
|
30
|
+
markdown: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Retains only changed, shell-region entries that recur on two or more distinct
|
|
34
|
+
* pages. The signature deliberately includes content so identical selector names
|
|
35
|
+
* do not merge unrelated navigation items.
|
|
36
|
+
*/
|
|
37
|
+
export declare const detectImproveSiteSharedShell: (changes: readonly ImproveSiteShellChange[]) => ImproveSiteSharedShellChange[];
|
|
38
|
+
/** Alias matching the artifact name used by the site stage. */
|
|
39
|
+
export declare const findImproveSiteSharedShell: (changes: readonly ImproveSiteShellChange[]) => ImproveSiteSharedShellChange[];
|
|
40
|
+
export declare const renderImproveSiteSharedShell: (changes: readonly ImproveSiteSharedShellChange[], relativePath?: (file: string) => string) => string;
|
|
41
|
+
export type ImproveSiteShellSource = {
|
|
42
|
+
pageId: string;
|
|
43
|
+
/** The page `diff.json` text; absent when that page never emitted one. */
|
|
44
|
+
diffText?: string;
|
|
45
|
+
/** The page `current.domdoc.json` text, which carries the DOM identities. */
|
|
46
|
+
currentDomDocText?: string;
|
|
47
|
+
planPath?: string;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Turns each page's settled plan JSON into shell-change candidates. A page with
|
|
51
|
+
* no diff contributes nothing — that is the normal shape of a blocked or failed
|
|
52
|
+
* page, not an error.
|
|
53
|
+
*/
|
|
54
|
+
export declare const parseImproveSiteShellChanges: (sources: readonly ImproveSiteShellSource[]) => ImproveSiteShellChange[];
|
|
55
|
+
export declare const IMPROVE_SITE_SHARED_SHELL_FILE = "shared-shell.md";
|
|
56
|
+
//# sourceMappingURL=improve-site-shell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-site-shell.d.ts","sourceRoot":"","sources":["../../src/improve-core/improve-site-shell.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9E,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,4BAA4B,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,EAAE,4BAA4B,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,sBAAsB,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,4BAA4B,EAAE,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAgDF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GACvC,SAAS,SAAS,sBAAsB,EAAE,KACzC,4BAA4B,EAwB9B,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,0BAA0B,YA5B5B,SAAS,sBAAsB,EAAE,KACzC,4BAA4B,EA2BuC,CAAC;AAEvE,eAAO,MAAM,4BAA4B,GACvC,SAAS,SAAS,4BAA4B,EAAE,EAChD,eAAc,CAAC,IAAI,EAAE,MAAM,KAAK,MAAuB,KACtD,MAoBF,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GACvC,SAAS,SAAS,sBAAsB,EAAE,KACzC,sBAAsB,EAiDvB,CAAC;AAEH,eAAO,MAAM,8BAA8B,oBAAoB,CAAC"}
|