@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.
- 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/branch-client.d.ts +86 -2
- package/dist/branch-client.d.ts.map +1 -1
- package/dist/branch-client.js +31 -0
- package/dist/branch-client.js.map +1 -1
- package/dist/cli-arguments.d.ts.map +1 -1
- package/dist/cli-arguments.js +3 -1
- package/dist/cli-arguments.js.map +1 -1
- package/dist/cli-capabilities.d.ts +1 -1
- package/dist/cli-conversion-derivation.js +2 -2
- 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 +176 -38
- package/dist/cli-convert-command.js.map +1 -1
- package/dist/cli-corpus-command.js +2 -2
- package/dist/cli-corpus-command.js.map +1 -1
- package/dist/cli-corpus-evidence.d.ts.map +1 -1
- package/dist/cli-corpus-evidence.js +2 -1
- package/dist/cli-corpus-evidence.js.map +1 -1
- package/dist/cli-corpus-reference-downloads.d.ts +1 -0
- package/dist/cli-corpus-reference-downloads.d.ts.map +1 -1
- package/dist/cli-corpus-reference-downloads.js +13 -3
- package/dist/cli-corpus-reference-downloads.js.map +1 -1
- package/dist/cli-corpus-types.d.ts +2 -0
- package/dist/cli-corpus-types.d.ts.map +1 -1
- package/dist/cli-draft-command.d.ts +9 -0
- package/dist/cli-draft-command.d.ts.map +1 -1
- package/dist/cli-draft-command.js +26 -1
- 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 +23 -6
- 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 +273 -28
- 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 +97 -24
- 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 -56
- package/dist/concept-input.d.ts.map +1 -1
- package/dist/concept-input.js +6 -65
- package/dist/concept-input.js.map +1 -1
- package/dist/conversion-client.d.ts +92 -3
- package/dist/conversion-client.d.ts.map +1 -1
- package/dist/conversion-client.js +317 -23
- package/dist/conversion-client.js.map +1 -1
- package/dist/corpus-client.d.ts +7 -1
- package/dist/corpus-client.d.ts.map +1 -1
- package/dist/corpus-client.js +3 -2
- package/dist/corpus-client.js.map +1 -1
- package/dist/corpus-reference-download-retry.d.ts +68 -0
- package/dist/corpus-reference-download-retry.d.ts.map +1 -0
- package/dist/corpus-reference-download-retry.js +123 -0
- package/dist/corpus-reference-download-retry.js.map +1 -0
- package/dist/corpus-request-error.d.ts +17 -0
- package/dist/corpus-request-error.d.ts.map +1 -0
- package/dist/corpus-request-error.js +21 -0
- package/dist/corpus-request-error.js.map +1 -0
- package/dist/draft-run.d.ts +15 -0
- package/dist/draft-run.d.ts.map +1 -1
- package/dist/draft-run.js +32 -5
- package/dist/draft-run.js.map +1 -1
- package/dist/draft-workspace.d.ts +2 -1
- package/dist/draft-workspace.d.ts.map +1 -1
- package/dist/draft-workspace.js.map +1 -1
- package/dist/hosted-draft-identity.d.ts +9 -0
- package/dist/hosted-draft-identity.d.ts.map +1 -1
- package/dist/hosted-draft-identity.js +2 -0
- package/dist/hosted-draft-identity.js.map +1 -1
- package/dist/improve-added-specs.d.ts +12 -31
- package/dist/improve-added-specs.d.ts.map +1 -1
- package/dist/improve-added-specs.js +64 -152
- 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-bootstrap-secret.d.ts +35 -0
- package/dist/improve-bootstrap-secret.d.ts.map +1 -0
- package/dist/improve-bootstrap-secret.js +61 -0
- package/dist/improve-bootstrap-secret.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 +65 -0
- package/dist/improve-capture-redirect.d.ts.map +1 -0
- package/dist/improve-capture-redirect.js +85 -0
- package/dist/improve-capture-redirect.js.map +1 -0
- 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 -7
- package/dist/improve-concept.d.ts.map +1 -1
- package/dist/improve-concept.js +12 -38
- package/dist/improve-concept.js.map +1 -1
- package/dist/improve-conversion-attempts.d.ts +21 -9
- package/dist/improve-conversion-attempts.d.ts.map +1 -1
- package/dist/improve-conversion-attempts.js +6 -1
- package/dist/improve-conversion-attempts.js.map +1 -1
- package/dist/improve-conversion-stage.d.ts +20 -2
- package/dist/improve-conversion-stage.d.ts.map +1 -1
- package/dist/improve-conversion-stage.js +386 -178
- package/dist/improve-conversion-stage.js.map +1 -1
- package/dist/improve-convert-progress.d.ts +44 -0
- package/dist/improve-convert-progress.d.ts.map +1 -0
- package/dist/improve-convert-progress.js +47 -0
- package/dist/improve-convert-progress.js.map +1 -0
- package/dist/improve-convert-resilience.d.ts +96 -58
- package/dist/improve-convert-resilience.d.ts.map +1 -1
- package/dist/improve-convert-resilience.js +128 -72
- 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 +7 -0
- package/dist/improve-core/improve-concept.d.ts.map +1 -0
- package/dist/improve-core/improve-concept.js +185 -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-core/improve-icon-svg.js +85 -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} +19 -2
- 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} +77 -28
- package/dist/improve-core/improve-plan-annotated-render.js.map +1 -0
- 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-token-patch.d.ts → improve-core/improve-token-patch.d.ts} +2 -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} +25 -5
- 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 +91 -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 +191 -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-ignore.d.ts +32 -0
- package/dist/improve-kit-ignore.d.ts.map +1 -0
- package/dist/improve-kit-ignore.js +111 -0
- package/dist/improve-kit-ignore.js.map +1 -0
- 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 +155 -24
- package/dist/improve-kit-readme.js.map +1 -1
- package/dist/improve-kit-stall.d.ts +51 -3
- package/dist/improve-kit-stall.d.ts.map +1 -1
- package/dist/improve-kit-stall.js +205 -21
- package/dist/improve-kit-stall.js.map +1 -1
- package/dist/improve-kit-status.d.ts +36 -0
- package/dist/improve-kit-status.d.ts.map +1 -1
- package/dist/improve-kit-status.js +82 -7
- package/dist/improve-kit-status.js.map +1 -1
- package/dist/improve-options.d.ts +14 -0
- package/dist/improve-options.d.ts.map +1 -1
- package/dist/improve-options.js +95 -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 +13 -2
- package/dist/improve-plan-annotator.d.ts.map +1 -1
- package/dist/improve-plan-annotator.js +35 -37
- 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 +77 -7
- 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 +49 -2
- package/dist/improve-stage-shared.d.ts.map +1 -1
- package/dist/improve-stage-shared.js +80 -3
- 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 +13 -4
- package/dist/improve-terminal-event.js.map +1 -1
- package/dist/improve-workspace.d.ts +282 -9
- package/dist/improve-workspace.d.ts.map +1 -1
- package/dist/improve-workspace.js +250 -78
- package/dist/improve-workspace.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/legacy-skill-catalog.d.ts.map +1 -1
- package/dist/legacy-skill-catalog.js +202 -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/redesign-capture.d.ts +146 -15
- package/dist/redesign-capture.d.ts.map +1 -1
- package/dist/redesign-capture.js +182 -65
- package/dist/redesign-capture.js.map +1 -1
- package/dist/redesign-workspace.d.ts +13 -0
- package/dist/redesign-workspace.d.ts.map +1 -1
- package/dist/redesign-workspace.js +14 -0
- package/dist/redesign-workspace.js.map +1 -1
- package/dist/responsive-alternative-materializer.d.ts +24 -0
- package/dist/responsive-alternative-materializer.d.ts.map +1 -0
- package/dist/responsive-alternative-materializer.js +93 -0
- package/dist/responsive-alternative-materializer.js.map +1 -0
- 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/spend-run-filter.d.ts +21 -0
- package/dist/spend-run-filter.d.ts.map +1 -0
- package/dist/spend-run-filter.js +65 -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 +14 -4
- package/skills/12ui-design/improve.md +67 -5
- package/skills/12ui-design/inspire.md +1 -1
- 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-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-annotated-render.js.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-added-specs.d.ts","sourceRoot":"","sources":["../src/improve-added-specs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"improve-added-specs.d.ts","sourceRoot":"","sources":["../src/improve-added-specs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AAUjC;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,GAAI,YAAY,MAAM,KAAG,oBAgD/D,CAAC"}
|
|
@@ -1,162 +1,74 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readdirSync, readFileSync, statSync } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
&& Array.isArray(document.layers) ? document.layers : [];
|
|
8
|
-
const output = [];
|
|
9
|
-
const visit = (nodes, parents) => {
|
|
10
|
-
nodes.forEach((node, index) => {
|
|
11
|
-
if (!node || typeof node !== 'object')
|
|
12
|
-
return;
|
|
13
|
-
const leaf = node;
|
|
14
|
-
if (leaf.kind === 'group' && Array.isArray(leaf.children)) {
|
|
15
|
-
visit(leaf.children, [...parents, `${leaf.name ?? 'group'}[${index}]`]);
|
|
16
|
-
}
|
|
17
|
-
else
|
|
18
|
-
output.push({ leaf, parentPath: parents });
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
visit(layers, []);
|
|
22
|
-
return output;
|
|
23
|
-
};
|
|
24
|
-
const commonDepth = (left, right) => {
|
|
25
|
-
let index = 0;
|
|
26
|
-
while (index < left.length && left[index] === right[index])
|
|
27
|
-
index += 1;
|
|
28
|
-
return index;
|
|
29
|
-
};
|
|
30
|
-
const insertionFor = (args) => {
|
|
31
|
-
const target = args.normalizedTarget[args.designIndex];
|
|
32
|
-
const siblings = args.diff.matched.filter((entry) => args.before[entry.beforeIndex]?.dom)
|
|
33
|
-
.map((entry) => ({
|
|
34
|
-
entry,
|
|
35
|
-
depth: commonDepth(args.hierarchy[args.designIndex]?.parentPath ?? [], args.hierarchy[entry.afterIndex]?.parentPath ?? []),
|
|
36
|
-
distance: target?.box && args.normalizedTarget[entry.afterIndex]?.box
|
|
37
|
-
? Math.hypot(target.box[0] - args.normalizedTarget[entry.afterIndex].box[0], target.box[1] - args.normalizedTarget[entry.afterIndex].box[1])
|
|
38
|
-
: Number.POSITIVE_INFINITY,
|
|
39
|
-
}))
|
|
40
|
-
.sort((left, right) => right.depth - left.depth || left.distance - right.distance);
|
|
41
|
-
const sibling = siblings[0];
|
|
42
|
-
if (sibling) {
|
|
43
|
-
const siblingBox = args.normalizedTarget[sibling.entry.afterIndex]?.box;
|
|
44
|
-
const relation = target?.box && siblingBox
|
|
45
|
-
&& (target.box[1] < siblingBox[1] || (target.box[1] === siblingBox[1] && target.box[0] < siblingBox[0]))
|
|
46
|
-
? 'before'
|
|
47
|
-
: 'after';
|
|
48
|
-
return `${relation} ${selectorLabel(args.before[sibling.entry.beforeIndex])}`;
|
|
3
|
+
export { buildImproveAddedElementSpecs, flattenImproveHierarchy, improveArtifactIds, } from './improve-core/index.js';
|
|
4
|
+
const exists = (file) => {
|
|
5
|
+
try {
|
|
6
|
+
return statSync(file).isFile();
|
|
49
7
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (fallback.container >= 0)
|
|
53
|
-
return `inside ${selectorLabel(args.before[fallback.container])}`;
|
|
8
|
+
catch {
|
|
9
|
+
return false;
|
|
54
10
|
}
|
|
55
|
-
return 'unresolved — no matched parent or sibling selector';
|
|
56
|
-
};
|
|
57
|
-
const shown = (value, suffix = '') => value === undefined || value === null || value === ''
|
|
58
|
-
? 'not specified'
|
|
59
|
-
: `${typeof value === 'object' ? JSON.stringify(value) : String(value)}${suffix}`;
|
|
60
|
-
const exists = async (file) => Boolean(await stat(file).then(() => true).catch(() => false));
|
|
61
|
-
const artifactIds = (leaf) => {
|
|
62
|
-
const artifacts = leaf.artifacts;
|
|
63
|
-
if (!artifacts || typeof artifacts !== 'object' || Array.isArray(artifacts))
|
|
64
|
-
return [];
|
|
65
|
-
const preference = ['cutout', 'region2x', 'crop'];
|
|
66
|
-
return Object.entries(artifacts).flatMap(([name, value]) => (value && typeof value === 'object' && !Array.isArray(value)
|
|
67
|
-
&& typeof value.artifactId === 'string'
|
|
68
|
-
? [{ name, id: value.artifactId }]
|
|
69
|
-
: [])).sort((left, right) => {
|
|
70
|
-
const leftIndex = preference.indexOf(left.name);
|
|
71
|
-
const rightIndex = preference.indexOf(right.name);
|
|
72
|
-
return (leftIndex < 0 ? preference.length : leftIndex)
|
|
73
|
-
- (rightIndex < 0 ? preference.length : rightIndex);
|
|
74
|
-
}).map((entry) => entry.id);
|
|
75
11
|
};
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Resolves an added element's extracted raster against what the conversion left
|
|
14
|
+
* beside the target design.
|
|
15
|
+
*
|
|
16
|
+
* The manifest is the declaration and the directory is the fact, so a declared
|
|
17
|
+
* `localPath` only wins if it is really there; otherwise the artifact id's own
|
|
18
|
+
* file is looked up by prefix. Both reads happen once per plan rather than once
|
|
19
|
+
* per leaf, and synchronously, because the plan core is synchronous by design.
|
|
20
|
+
*/
|
|
21
|
+
export const createImproveAssetResolver = (designPath) => {
|
|
80
22
|
const directory = `${designPath}.assets`;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
: undefined;
|
|
89
|
-
if (declaredPath && await exists(declaredPath)) {
|
|
90
|
-
return {
|
|
91
|
-
kind: `extracted artifact ${id}`,
|
|
92
|
-
path: declaredPath,
|
|
93
|
-
destination: `src/assets/design/${path.basename(declaredPath)}`,
|
|
94
|
-
resolvable: true,
|
|
95
|
-
};
|
|
23
|
+
let manifest;
|
|
24
|
+
let names;
|
|
25
|
+
const readManifest = () => {
|
|
26
|
+
if (manifest)
|
|
27
|
+
return manifest;
|
|
28
|
+
try {
|
|
29
|
+
manifest = JSON.parse(readFileSync(path.join(directory, 'manifest.json'), 'utf8'));
|
|
96
30
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
.catch(() => undefined);
|
|
100
|
-
if (fallback) {
|
|
101
|
-
const assetPath = path.resolve(directory, fallback);
|
|
102
|
-
return {
|
|
103
|
-
kind: `extracted artifact ${id}`,
|
|
104
|
-
path: assetPath,
|
|
105
|
-
destination: `src/assets/design/${fallback}`,
|
|
106
|
-
resolvable: true,
|
|
107
|
-
};
|
|
31
|
+
catch {
|
|
32
|
+
manifest = { artifacts: [] };
|
|
108
33
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
for (const [designIndex, entry] of hierarchy.entries()) {
|
|
117
|
-
if (matched.has(designIndex))
|
|
118
|
-
continue;
|
|
119
|
-
const leaf = entry.leaf;
|
|
120
|
-
let asset = await rasterAsset(leaf, args.designPath);
|
|
121
|
-
if (typeof leaf.iconSvg === 'string' && leaf.iconSvg.trim()) {
|
|
122
|
-
const assetDir = path.join(args.outDir, 'assets');
|
|
123
|
-
const name = `added-${String(designIndex).padStart(3, '0')}-${(leaf.content ?? 'icon')
|
|
124
|
-
.toLowerCase().replace(/[^a-z0-9]+/gu, '-').replace(/^-+|-+$/gu, '') || 'icon'}.svg`;
|
|
125
|
-
await mkdir(assetDir, { recursive: true });
|
|
126
|
-
const assetPath = path.join(assetDir, name);
|
|
127
|
-
await writeFile(assetPath, `${leaf.iconSvg.trim()}\n`, 'utf8');
|
|
128
|
-
asset = {
|
|
129
|
-
kind: 'inline iconSvg materialized as SVG',
|
|
130
|
-
path: assetPath,
|
|
131
|
-
destination: `src/assets/design/${name}`,
|
|
132
|
-
resolvable: true,
|
|
133
|
-
};
|
|
34
|
+
return manifest;
|
|
35
|
+
};
|
|
36
|
+
const readNames = () => {
|
|
37
|
+
if (names)
|
|
38
|
+
return names;
|
|
39
|
+
try {
|
|
40
|
+
names = readdirSync(directory);
|
|
134
41
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
42
|
+
catch {
|
|
43
|
+
names = [];
|
|
44
|
+
}
|
|
45
|
+
return names;
|
|
46
|
+
};
|
|
47
|
+
return (artifactIds) => {
|
|
48
|
+
for (const id of artifactIds) {
|
|
49
|
+
const declared = readManifest().artifacts?.find((entry) => entry.id === id)?.localPath;
|
|
50
|
+
const declaredPath = declared
|
|
51
|
+
? (path.isAbsolute(declared) ? declared : path.resolve(directory, declared))
|
|
52
|
+
: undefined;
|
|
53
|
+
if (declaredPath && exists(declaredPath)) {
|
|
54
|
+
return {
|
|
55
|
+
kind: `extracted artifact ${id}`,
|
|
56
|
+
path: declaredPath,
|
|
57
|
+
destination: `src/assets/design/${path.basename(declaredPath)}`,
|
|
58
|
+
resolvable: true,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const fallback = readNames().find((name) => name.startsWith(`${id}-`));
|
|
62
|
+
if (fallback) {
|
|
63
|
+
return {
|
|
64
|
+
kind: `extracted artifact ${id}`,
|
|
65
|
+
path: path.resolve(directory, fallback),
|
|
66
|
+
destination: `src/assets/design/${fallback}`,
|
|
67
|
+
resolvable: true,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
72
|
+
};
|
|
161
73
|
};
|
|
162
74
|
//# sourceMappingURL=improve-added-specs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-added-specs.js","sourceRoot":"","sources":["../src/improve-added-specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"improve-added-specs.js","sourceRoot":"","sources":["../src/improve-added-specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,kBAAkB,GAGnB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAW,EAAE;IACvC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,UAAkB,EAAwB,EAAE;IACrF,MAAM,SAAS,GAAG,GAAG,UAAU,SAAS,CAAC;IACzC,IAAI,QAAgF,CAAC;IACrF,IAAI,KAA2B,CAAC;IAChC,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAoB,CAAC;QACxG,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,QAAS,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC;YACH,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO,CAAC,WAAW,EAA6B,EAAE;QAChD,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC;YACvF,MAAM,YAAY,GAAG,QAAQ;gBAC3B,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC5E,CAAC,CAAC,SAAS,CAAC;YACd,IAAI,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzC,OAAO;oBACL,IAAI,EAAE,sBAAsB,EAAE,EAAE;oBAChC,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,qBAAqB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oBAC/D,UAAU,EAAE,IAAI;iBACjB,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACvE,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;oBACL,IAAI,EAAE,sBAAsB,EAAE,EAAE;oBAChC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC;oBACvC,WAAW,EAAE,qBAAqB,QAAQ,EAAE;oBAC5C,UAAU,EAAE,IAAI;iBACjB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ImproveArtifactMap } from './improve-core/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Realizes a plan-core artifact map under a run directory.
|
|
4
|
+
*
|
|
5
|
+
* The core decides every byte and every relative path; this decides only where
|
|
6
|
+
* the directory is. The returned absolute paths keep the order the map declared
|
|
7
|
+
* them in, because the improve record lists artifacts in the order a reader
|
|
8
|
+
* should meet them.
|
|
9
|
+
*/
|
|
10
|
+
export declare const writeImproveArtifactMap: (outDir: string, map: ImproveArtifactMap) => Promise<string[]>;
|
|
11
|
+
/** The absolute path a relative artifact key will land on, for rendered prose. */
|
|
12
|
+
export declare const improveDescribePath: (outDir: string) => (relativePath: string) => string;
|
|
13
|
+
//# sourceMappingURL=improve-artifact-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-artifact-writer.d.ts","sourceRoot":"","sources":["../src/improve-artifact-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,MAAM,EACd,KAAK,kBAAkB,KACtB,OAAO,CAAC,MAAM,EAAE,CAiBlB,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,MAAM,cAAc,MAAM,KAAG,MAE9E,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { mkdir, rm, writeFile } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Realizes a plan-core artifact map under a run directory.
|
|
5
|
+
*
|
|
6
|
+
* The core decides every byte and every relative path; this decides only where
|
|
7
|
+
* the directory is. The returned absolute paths keep the order the map declared
|
|
8
|
+
* them in, because the improve record lists artifacts in the order a reader
|
|
9
|
+
* should meet them.
|
|
10
|
+
*/
|
|
11
|
+
export const writeImproveArtifactMap = async (outDir, map) => {
|
|
12
|
+
await mkdir(outDir, { recursive: true });
|
|
13
|
+
await Promise.all(map.remove.map((relativePath) => (rm(path.join(outDir, ...relativePath.split('/')), { force: true }))));
|
|
14
|
+
const entries = Object.entries(map.files).map(([relativePath, contents]) => ({
|
|
15
|
+
absolute: path.join(outDir, ...relativePath.split('/')),
|
|
16
|
+
contents,
|
|
17
|
+
}));
|
|
18
|
+
await Promise.all([...new Set(entries.map((entry) => path.dirname(entry.absolute)))]
|
|
19
|
+
.map((directory) => mkdir(directory, { recursive: true })));
|
|
20
|
+
await Promise.all(entries.map((entry) => (typeof entry.contents === 'string'
|
|
21
|
+
? writeFile(entry.absolute, entry.contents, 'utf8')
|
|
22
|
+
: writeFile(entry.absolute, entry.contents))));
|
|
23
|
+
return entries.map((entry) => entry.absolute);
|
|
24
|
+
};
|
|
25
|
+
/** The absolute path a relative artifact key will land on, for rendered prose. */
|
|
26
|
+
export const improveDescribePath = (outDir) => (relativePath) => (path.join(outDir, ...relativePath.split('/')));
|
|
27
|
+
//# sourceMappingURL=improve-artifact-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-artifact-writer.js","sourceRoot":"","sources":["../src/improve-artifact-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,MAAc,EACd,GAAuB,EACJ,EAAE;IACrB,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CACjD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CACnE,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,QAAQ;KACT,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACjF,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACvC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAChC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;QACnD,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAC9C,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,kFAAkF;AAClF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,YAAoB,EAAU,EAAE,CAAC,CACvF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAC9C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ImproveRecord } from './improve-workspace.js';
|
|
2
|
+
/** Does the supplied live bootstrap name the same free capture identity? */
|
|
3
|
+
export declare const improveBootstrapChanged: (record: ImproveRecord, values: readonly string[]) => boolean;
|
|
4
|
+
/**
|
|
5
|
+
* The stage ledger is the durable authority for whether the capture has become
|
|
6
|
+
* the input to paid work. Older draft records settle without `dispatchedAt`,
|
|
7
|
+
* so price is the portable fact rather than a timestamp implementation detail.
|
|
8
|
+
*/
|
|
9
|
+
export declare const hasImprovePaidStage: (record: ImproveRecord) => boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Replacing a bootstrap is safe only before its free capture has fed paid
|
|
12
|
+
* work. Keep the old redacted/digested identity for audit, invalidate every
|
|
13
|
+
* capture-derived record, and let the ordinary capture stage overwrite files
|
|
14
|
+
* in the same kit.
|
|
15
|
+
*/
|
|
16
|
+
export declare const rebootstrapImproveRecord: (args: {
|
|
17
|
+
record: ImproveRecord;
|
|
18
|
+
bootstrapValues: readonly string[];
|
|
19
|
+
now?: () => string;
|
|
20
|
+
}) => ImproveRecord;
|
|
21
|
+
//# sourceMappingURL=improve-bootstrap-history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-bootstrap-history.d.ts","sourceRoot":"","sources":["../src/improve-bootstrap-history.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,GAAI,QAAQ,aAAa,EAAE,QAAQ,SAAS,MAAM,EAAE,KAAG,OAE1F,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,aAAa,KAAG,OAS3D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,MAAM;IAC7C,MAAM,EAAE,aAAa,CAAC;IACtB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,KAAG,aAkBH,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { improveBootstrapDigest, improveBootstrapRecordFields } from './improve-bootstrap-secret.js';
|
|
2
|
+
import { withoutImproveStages } from './improve-reset.js';
|
|
3
|
+
/** Does the supplied live bootstrap name the same free capture identity? */
|
|
4
|
+
export const improveBootstrapChanged = (record, values) => (JSON.stringify(record.bootstrapSha256 ?? []) !== JSON.stringify(values.map(improveBootstrapDigest)));
|
|
5
|
+
/**
|
|
6
|
+
* The stage ledger is the durable authority for whether the capture has become
|
|
7
|
+
* the input to paid work. Older draft records settle without `dispatchedAt`,
|
|
8
|
+
* so price is the portable fact rather than a timestamp implementation detail.
|
|
9
|
+
*/
|
|
10
|
+
export const hasImprovePaidStage = (record) => (Object.values(record.stages).some((stage) => (stage?.priceCeilingUsd ?? 0) > 0)
|
|
11
|
+
// A pre-ledger kit can still prove that a paid stage settled. Treat those
|
|
12
|
+
// artifacts as immutable too rather than trusting an absent old price.
|
|
13
|
+
|| record.draft !== undefined
|
|
14
|
+
|| record.branch !== undefined
|
|
15
|
+
|| (record.convert?.purchaseIds.length ?? 0) > 0
|
|
16
|
+
|| (record.sourceConvert?.purchaseIds.length ?? 0) > 0
|
|
17
|
+
|| (record.plan?.purchaseIds.length ?? 0) > 0);
|
|
18
|
+
/**
|
|
19
|
+
* Replacing a bootstrap is safe only before its free capture has fed paid
|
|
20
|
+
* work. Keep the old redacted/digested identity for audit, invalidate every
|
|
21
|
+
* capture-derived record, and let the ordinary capture stage overwrite files
|
|
22
|
+
* in the same kit.
|
|
23
|
+
*/
|
|
24
|
+
export const rebootstrapImproveRecord = (args) => {
|
|
25
|
+
const reset = withoutImproveStages(args.record, ['draft', 'pick', 'branch', 'convert', 'plan', 'site']);
|
|
26
|
+
const stages = Object.fromEntries(Object.entries(reset.stages).filter(([stage]) => stage !== 'capture'));
|
|
27
|
+
return {
|
|
28
|
+
...reset,
|
|
29
|
+
...improveBootstrapRecordFields(args.bootstrapValues),
|
|
30
|
+
bootstrapHistory: [
|
|
31
|
+
...(args.record.bootstrapHistory ?? []),
|
|
32
|
+
{
|
|
33
|
+
bootstrap: [...args.record.bootstrap],
|
|
34
|
+
...(args.record.bootstrapSha256 === undefined ? {} : { bootstrapSha256: [...args.record.bootstrapSha256] }),
|
|
35
|
+
replacedAt: (args.now ?? (() => new Date().toISOString()))(),
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
capture: undefined,
|
|
39
|
+
pages: reset.pages.map((page) => ({ ...page, capture: undefined })),
|
|
40
|
+
stages,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=improve-bootstrap-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-bootstrap-history.js","sourceRoot":"","sources":["../src/improve-bootstrap-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AACrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAqB,EAAE,MAAyB,EAAW,EAAE,CAAC,CACpG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CACpG,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAqB,EAAW,EAAE,CAAC,CACrE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/E,0EAA0E;IAC1E,uEAAuE;OACpE,MAAM,CAAC,KAAK,KAAK,SAAS;OAC1B,MAAM,CAAC,MAAM,KAAK,SAAS;OAC3B,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;OAC7C,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;OACnD,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAC9C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAIxC,EAAiB,EAAE;IAClB,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxG,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;IACzG,OAAO;QACL,GAAG,KAAK;QACR,GAAG,4BAA4B,CAAC,IAAI,CAAC,eAAe,CAAC;QACrD,gBAAgB,EAAE;YAChB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;YACvC;gBACE,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;gBACrC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC3G,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;aAC7D;SACF;QACD,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QACnE,MAAM;KACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bootstrap triple is a credential, and the kit is written inside a
|
|
3
|
+
* repository (F31).
|
|
4
|
+
*
|
|
5
|
+
* `--bootstrap 'http://host/auth/callback?token=…||**\/app'` is how a lane
|
|
6
|
+
* seats an authenticated session before capture, and it worked — zendesk's app
|
|
7
|
+
* route is the wave's first successful authenticated capture. But the value
|
|
8
|
+
* was persisted verbatim into `improve.json`, and `improve.json` sits at
|
|
9
|
+
* `.improve/<surface>/` inside the working tree. Mode 0600 does not survive a
|
|
10
|
+
* commit, and F17 is the standing proof that kits get swept in by `git add -A`
|
|
11
|
+
* (typeform, 100.8 MiB); a committed kit would put a live session token in
|
|
12
|
+
* history permanently.
|
|
13
|
+
*
|
|
14
|
+
* So the durable record keeps the shape and not the secret: origin and path as
|
|
15
|
+
* written, every query value and any fragment replaced, plus a sha256 of the
|
|
16
|
+
* original so a later run can tell whether it was handed the same value. The
|
|
17
|
+
* live triple exists only in the parsed options for the length of the capture.
|
|
18
|
+
* Redaction is idempotent, so re-writing an older record scrubs it.
|
|
19
|
+
*/
|
|
20
|
+
export declare const IMPROVE_REDACTED = "<redacted>";
|
|
21
|
+
/** The durable form of one `--bootstrap` triple: shape kept, secrets removed. */
|
|
22
|
+
export declare const redactImproveBootstrap: (value: string) => string;
|
|
23
|
+
/** Identity of the original value, so a replay can tell it was handed the same one. */
|
|
24
|
+
export declare const improveBootstrapDigest: (value: string) => string;
|
|
25
|
+
/** The two record fields, built together so neither can be written without the other. */
|
|
26
|
+
export declare const improveBootstrapRecordFields: (values: readonly string[]) => {
|
|
27
|
+
bootstrap: string[];
|
|
28
|
+
bootstrapSha256: string[];
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* What a resume is told when the kit captured with `--bootstrap` and this run
|
|
32
|
+
* passed none. The record cannot replay it: the live value was never stored.
|
|
33
|
+
*/
|
|
34
|
+
export declare const IMPROVE_BOOTSTRAP_NOT_STORED: string;
|
|
35
|
+
//# sourceMappingURL=improve-bootstrap-secret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-bootstrap-secret.d.ts","sourceRoot":"","sources":["../src/improve-bootstrap-secret.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAyB7C,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,KAAG,MACf,CAAC;AAEzC,uFAAuF;AACvF,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,KAAG,MACjB,CAAC;AAEvC,yFAAyF;AACzF,eAAO,MAAM,4BAA4B,GAAI,QAAQ,SAAS,MAAM,EAAE,KAAG;IACvE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;CAI1B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAGkC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
/**
|
|
3
|
+
* The bootstrap triple is a credential, and the kit is written inside a
|
|
4
|
+
* repository (F31).
|
|
5
|
+
*
|
|
6
|
+
* `--bootstrap 'http://host/auth/callback?token=…||**\/app'` is how a lane
|
|
7
|
+
* seats an authenticated session before capture, and it worked — zendesk's app
|
|
8
|
+
* route is the wave's first successful authenticated capture. But the value
|
|
9
|
+
* was persisted verbatim into `improve.json`, and `improve.json` sits at
|
|
10
|
+
* `.improve/<surface>/` inside the working tree. Mode 0600 does not survive a
|
|
11
|
+
* commit, and F17 is the standing proof that kits get swept in by `git add -A`
|
|
12
|
+
* (typeform, 100.8 MiB); a committed kit would put a live session token in
|
|
13
|
+
* history permanently.
|
|
14
|
+
*
|
|
15
|
+
* So the durable record keeps the shape and not the secret: origin and path as
|
|
16
|
+
* written, every query value and any fragment replaced, plus a sha256 of the
|
|
17
|
+
* original so a later run can tell whether it was handed the same value. The
|
|
18
|
+
* live triple exists only in the parsed options for the length of the capture.
|
|
19
|
+
* Redaction is idempotent, so re-writing an older record scrubs it.
|
|
20
|
+
*/
|
|
21
|
+
export const IMPROVE_REDACTED = '<redacted>';
|
|
22
|
+
const redactUserInfo = (field) => field.replace(/^(https?:\/\/)[^/@]+@/iu, `$1${IMPROVE_REDACTED}@`);
|
|
23
|
+
/**
|
|
24
|
+
* String surgery rather than URL parsing: a wait glob (`**\/app?token=…`) is
|
|
25
|
+
* not a URL, and re-serializing one would percent-encode the placeholder.
|
|
26
|
+
*/
|
|
27
|
+
const redactField = (field) => {
|
|
28
|
+
const hash = field.indexOf('#');
|
|
29
|
+
const base = redactUserInfo(hash < 0 ? field : field.slice(0, hash));
|
|
30
|
+
const fragment = hash < 0 ? '' : `#${IMPROVE_REDACTED}`;
|
|
31
|
+
const query = base.indexOf('?');
|
|
32
|
+
if (query < 0)
|
|
33
|
+
return `${base}${fragment}`;
|
|
34
|
+
const redacted = base.slice(query + 1).split('&').map((pair) => {
|
|
35
|
+
if (!pair)
|
|
36
|
+
return pair;
|
|
37
|
+
const equals = pair.indexOf('=');
|
|
38
|
+
return equals < 0 ? IMPROVE_REDACTED : `${pair.slice(0, equals)}=${IMPROVE_REDACTED}`;
|
|
39
|
+
}).join('&');
|
|
40
|
+
return `${base.slice(0, query)}?${redacted}${fragment}`;
|
|
41
|
+
};
|
|
42
|
+
/** The durable form of one `--bootstrap` triple: shape kept, secrets removed. */
|
|
43
|
+
export const redactImproveBootstrap = (value) => value
|
|
44
|
+
.split('|').map(redactField).join('|');
|
|
45
|
+
/** Identity of the original value, so a replay can tell it was handed the same one. */
|
|
46
|
+
export const improveBootstrapDigest = (value) => createHash('sha256')
|
|
47
|
+
.update(value, 'utf8').digest('hex');
|
|
48
|
+
/** The two record fields, built together so neither can be written without the other. */
|
|
49
|
+
export const improveBootstrapRecordFields = (values) => ({
|
|
50
|
+
bootstrap: values.map(redactImproveBootstrap),
|
|
51
|
+
bootstrapSha256: values.map(improveBootstrapDigest),
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* What a resume is told when the kit captured with `--bootstrap` and this run
|
|
55
|
+
* passed none. The record cannot replay it: the live value was never stored.
|
|
56
|
+
*/
|
|
57
|
+
export const IMPROVE_BOOTSTRAP_NOT_STORED = 'This kit captured with --bootstrap, and the live'
|
|
58
|
+
+ ' bootstrap value is never stored: improve.json keeps only a redacted form and a sha256, so a'
|
|
59
|
+
+ ' session token cannot leak through the kit. Nothing was captured or bought.'
|
|
60
|
+
+ ' Pass --bootstrap again with the same triple to re-capture this page.';
|
|
61
|
+
//# sourceMappingURL=improve-bootstrap-secret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-bootstrap-secret.js","sourceRoot":"","sources":["../src/improve-bootstrap-secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAC7D,yBAAyB,EACzB,KAAK,gBAAgB,GAAG,CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;IACxF,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF,iFAAiF;AACjF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK;KACnE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEzC,uFAAuF;AACvF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;KAClF,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEvC,yFAAyF;AACzF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,MAAyB,EAGpE,EAAE,CAAC,CAAC;IACJ,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;CACpD,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,kDAAkD;MAC1F,8FAA8F;MAC9F,6EAA6E;MAC7E,uEAAuE,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 runImproveBranchStage: (args: {
|
|
5
|
+
record: ImproveRecord;
|
|
6
|
+
options: ImproveOptions;
|
|
7
|
+
dependencies: ImproveCommandDependencies;
|
|
8
|
+
price: number;
|
|
9
|
+
}) => Promise<ImproveRecord>;
|
|
10
|
+
//# sourceMappingURL=improve-branch-stage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-branch-stage.d.ts","sourceRoot":"","sources":["../src/improve-branch-stage.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAmC,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC7G,OAAO,EAAwC,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA6KlG,eAAO,MAAM,qBAAqB,GAAU,MAAM;IAChD,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,0BAA0B,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf,KAAG,OAAO,CAAC,aAAa,CAqLxB,CAAC"}
|