@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,69 @@
|
|
|
1
|
+
import { type RunJournalEntry } from './run-journal.js';
|
|
2
|
+
import type { ImproveRecord, ImproveStage } from './improve-workspace.js';
|
|
3
|
+
/**
|
|
4
|
+
* The per-run spend ledger: every purchase this kit made, by id (F33).
|
|
5
|
+
*
|
|
6
|
+
* WHY THIS EXISTS. `improve.json` already listed purchase ids — `draft.runId`,
|
|
7
|
+
* `convert.purchaseIds`, `sourceConvert.purchaseIds` — and the journal already
|
|
8
|
+
* carried the same ids on every `end` line. Nothing put them in front of a
|
|
9
|
+
* reader, so the wave-2 B4 lanes wrote spend tables with ids missing from them:
|
|
10
|
+
* airtable dropped `6c2017b1`, mailchimp dropped `ed57c987`, `29fac748` and
|
|
11
|
+
* `aa8031d7`. A report cannot reconcile what it was never shown.
|
|
12
|
+
*
|
|
13
|
+
* THE JOURNAL IS THE SOURCE, the record is the enrichment. The journal is
|
|
14
|
+
* append-only and spans every invocation against the kit, so it is the only
|
|
15
|
+
* thing that sees a purchase made by a run that later stopped, crashed, or was
|
|
16
|
+
* resumed from — exactly the runs whose ids went missing. The record supplies
|
|
17
|
+
* the stage each id belongs to and the pre-dispatch ceiling that stage
|
|
18
|
+
* declared. An id the record cannot place is still printed, as `unattributed`:
|
|
19
|
+
* an unexplained purchase is the one line that must never be dropped.
|
|
20
|
+
*
|
|
21
|
+
* CEILINGS ARE PER STAGE, NOT PER PURCHASE. One convert stage buys a
|
|
22
|
+
* conversion, an export and a derivation under a single $0.55 bound, so the
|
|
23
|
+
* ceiling is reported once against the stage and every row says how many
|
|
24
|
+
* purchases share it. Multiplying it out would invent spend.
|
|
25
|
+
*
|
|
26
|
+
* ACTUAL PRICES ARE NOT LOCAL. Settlement happens server-side; nothing in the
|
|
27
|
+
* kit knows what a call finally cost. The ledger therefore names where the
|
|
28
|
+
* actual comes from — `12ui spend`, whose `runs` are keyed by exactly these
|
|
29
|
+
* ids — instead of printing a number it would have to guess.
|
|
30
|
+
*/
|
|
31
|
+
export type ImproveSpendStage = ImproveStage | 'unattributed';
|
|
32
|
+
export type ImproveSpendLedgerRow = {
|
|
33
|
+
purchaseId: string;
|
|
34
|
+
stage: ImproveSpendStage;
|
|
35
|
+
/** The CLI invocation that recorded it — the journal's `run_id`. */
|
|
36
|
+
runId?: string;
|
|
37
|
+
/** When it first appears in the journal. */
|
|
38
|
+
at?: string;
|
|
39
|
+
/** The stage's pre-dispatch bound, shared by every purchase of that stage. */
|
|
40
|
+
stagePriceCeilingUsd?: number;
|
|
41
|
+
/** How many purchases that one ceiling covers, this row included. */
|
|
42
|
+
stagePurchases: number;
|
|
43
|
+
};
|
|
44
|
+
export type ImproveSpendLedger = {
|
|
45
|
+
rows: ImproveSpendLedgerRow[];
|
|
46
|
+
/** Distinct CLI invocations that bought something. */
|
|
47
|
+
runs: number;
|
|
48
|
+
/** The sum of the distinct stage ceilings that actually bought something. */
|
|
49
|
+
ceilingUsdTotal: number;
|
|
50
|
+
/** Purchases no stage of the record claims. */
|
|
51
|
+
unattributed: number;
|
|
52
|
+
};
|
|
53
|
+
export declare const buildImproveSpendLedger: (args: {
|
|
54
|
+
entries: readonly RunJournalEntry[];
|
|
55
|
+
record?: Partial<ImproveRecord>;
|
|
56
|
+
}) => ImproveSpendLedger;
|
|
57
|
+
export declare const readImproveSpendLedger: (record: Pick<ImproveRecord, "runDir"> & Partial<ImproveRecord>) => Promise<ImproveSpendLedger>;
|
|
58
|
+
/**
|
|
59
|
+
* The reconciliation instruction, printed wherever the ledger is. It names the
|
|
60
|
+
* one command that turns a ceiling into a settled price, so a report has no
|
|
61
|
+
* reason to leave the actual column blank without saying why.
|
|
62
|
+
*/
|
|
63
|
+
export declare const IMPROVE_SPEND_LEDGER_ACTUAL_NOTE: string;
|
|
64
|
+
export declare const IMPROVE_SPEND_LEDGER_TITLE = "Spend ledger";
|
|
65
|
+
/** The terminal form: one line per purchase, under a heading the eye catches. */
|
|
66
|
+
export declare const renderImproveSpendLedgerLines: (ledger: ImproveSpendLedger) => string[];
|
|
67
|
+
/** The kit form: a table a report can paste without retyping an id. */
|
|
68
|
+
export declare const renderImproveSpendLedgerSection: (ledger: ImproveSpendLedger) => string[];
|
|
69
|
+
//# sourceMappingURL=improve-spend-ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-spend-ledger.d.ts","sourceRoot":"","sources":["../src/improve-spend-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,cAAc,CAAC;AAE9D,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,iBAAiB,CAAC;IACzB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAkBF,eAAO,MAAM,uBAAuB,GAAI,MAAM;IAC5C,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACjC,KAAG,kBAwCH,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,KAC7D,OAAO,CAAC,kBAAkB,CAG3B,CAAC;AAWH;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,QACsC,CAAC;AAEpF,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAEzD,iFAAiF;AACjF,eAAO,MAAM,6BAA6B,GAAI,QAAQ,kBAAkB,KAAG,MAAM,EAUhF,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,GAAI,QAAQ,kBAAkB,KAAG,MAAM,EA6BlF,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { readRunJournal } from './run-journal.js';
|
|
2
|
+
/** Which stage each recorded id belongs to, read off the durable record. */
|
|
3
|
+
const stagesByPurchaseId = (record) => {
|
|
4
|
+
const stages = new Map();
|
|
5
|
+
if (!record)
|
|
6
|
+
return stages;
|
|
7
|
+
if (record.draft?.runId)
|
|
8
|
+
stages.set(record.draft.runId, 'draft');
|
|
9
|
+
for (const attempt of record.conversionAttempts ?? []) {
|
|
10
|
+
if (attempt.conversionId)
|
|
11
|
+
stages.set(attempt.conversionId, 'convert');
|
|
12
|
+
}
|
|
13
|
+
for (const id of record.convert?.purchaseIds ?? [])
|
|
14
|
+
stages.set(id, 'convert');
|
|
15
|
+
// The source conversion a `--plan-source-convert` run buys belongs to the
|
|
16
|
+
// plan stage, which is where its ceiling is declared.
|
|
17
|
+
for (const id of record.sourceConvert?.purchaseIds ?? [])
|
|
18
|
+
stages.set(id, 'plan');
|
|
19
|
+
for (const id of record.plan?.purchaseIds ?? [])
|
|
20
|
+
stages.set(id, 'plan');
|
|
21
|
+
return stages;
|
|
22
|
+
};
|
|
23
|
+
export const buildImproveSpendLedger = (args) => {
|
|
24
|
+
const stages = stagesByPurchaseId(args.record);
|
|
25
|
+
const rows = new Map();
|
|
26
|
+
const runs = new Set();
|
|
27
|
+
for (const entry of args.entries) {
|
|
28
|
+
for (const purchaseId of entry.purchased ?? []) {
|
|
29
|
+
if (entry.run_id)
|
|
30
|
+
runs.add(entry.run_id);
|
|
31
|
+
if (rows.has(purchaseId))
|
|
32
|
+
continue;
|
|
33
|
+
const stage = stages.get(purchaseId) ?? 'unattributed';
|
|
34
|
+
const ceiling = stage === 'unattributed'
|
|
35
|
+
? undefined
|
|
36
|
+
: args.record?.stages?.[stage]?.priceCeilingUsd;
|
|
37
|
+
rows.set(purchaseId, {
|
|
38
|
+
purchaseId,
|
|
39
|
+
stage,
|
|
40
|
+
...(entry.run_id ? { runId: entry.run_id } : {}),
|
|
41
|
+
...(entry.ts ? { at: entry.ts } : {}),
|
|
42
|
+
...(ceiling === undefined ? {} : { stagePriceCeilingUsd: ceiling }),
|
|
43
|
+
stagePurchases: 0,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const perStage = new Map();
|
|
48
|
+
for (const row of rows.values())
|
|
49
|
+
perStage.set(row.stage, (perStage.get(row.stage) ?? 0) + 1);
|
|
50
|
+
const ordered = [...rows.values()].map((row) => ({
|
|
51
|
+
...row,
|
|
52
|
+
stagePurchases: perStage.get(row.stage) ?? 1,
|
|
53
|
+
}));
|
|
54
|
+
const ceilings = new Map();
|
|
55
|
+
for (const row of ordered) {
|
|
56
|
+
if (row.stagePriceCeilingUsd !== undefined)
|
|
57
|
+
ceilings.set(row.stage, row.stagePriceCeilingUsd);
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
rows: ordered,
|
|
61
|
+
runs: runs.size,
|
|
62
|
+
ceilingUsdTotal: Number([...ceilings.values()].reduce((total, value) => total + value, 0).toFixed(6)),
|
|
63
|
+
unattributed: ordered.filter((row) => row.stage === 'unattributed').length,
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
export const readImproveSpendLedger = async (record) => buildImproveSpendLedger({
|
|
67
|
+
entries: (await readRunJournal({ workspace: record.runDir })).entries,
|
|
68
|
+
record,
|
|
69
|
+
});
|
|
70
|
+
const usd = (value) => `$${value.toFixed(value < 0.01 && value > 0 ? 4 : 2)}`;
|
|
71
|
+
const ceilingCell = (row) => {
|
|
72
|
+
if (row.stagePriceCeilingUsd === undefined)
|
|
73
|
+
return 'no ceiling recorded';
|
|
74
|
+
return `${usd(row.stagePriceCeilingUsd)} ${row.stagePurchases === 1
|
|
75
|
+
? '(stage ceiling)'
|
|
76
|
+
: `(stage ceiling, shared by ${row.stagePurchases} purchases)`}`;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* The reconciliation instruction, printed wherever the ledger is. It names the
|
|
80
|
+
* one command that turns a ceiling into a settled price, so a report has no
|
|
81
|
+
* reason to leave the actual column blank without saying why.
|
|
82
|
+
*/
|
|
83
|
+
export const IMPROVE_SPEND_LEDGER_ACTUAL_NOTE = 'Actual prices settle server-side and are not in'
|
|
84
|
+
+ ' the kit; read them with `12ui spend`, whose runs are keyed by the ids above.';
|
|
85
|
+
export const IMPROVE_SPEND_LEDGER_TITLE = 'Spend ledger';
|
|
86
|
+
/** The terminal form: one line per purchase, under a heading the eye catches. */
|
|
87
|
+
export const renderImproveSpendLedgerLines = (ledger) => {
|
|
88
|
+
if (ledger.rows.length === 0)
|
|
89
|
+
return ['- Spend: nothing purchased against this kit'];
|
|
90
|
+
return [
|
|
91
|
+
`- Spend: ${ledger.rows.length} purchase${ledger.rows.length === 1 ? '' : 's'}`
|
|
92
|
+
+ ` across ${ledger.runs} run${ledger.runs === 1 ? '' : 's'};`
|
|
93
|
+
+ ` ceiling ${usd(ledger.ceilingUsdTotal)} total`
|
|
94
|
+
+ (ledger.unattributed > 0 ? `; ${ledger.unattributed} unattributed` : ''),
|
|
95
|
+
...ledger.rows.map((row) => ` - ${row.purchaseId} — ${row.stage}, ${ceilingCell(row)}`),
|
|
96
|
+
` - ${IMPROVE_SPEND_LEDGER_ACTUAL_NOTE}`,
|
|
97
|
+
];
|
|
98
|
+
};
|
|
99
|
+
/** The kit form: a table a report can paste without retyping an id. */
|
|
100
|
+
export const renderImproveSpendLedgerSection = (ledger) => {
|
|
101
|
+
const lines = [`## ${IMPROVE_SPEND_LEDGER_TITLE}`, ''];
|
|
102
|
+
if (ledger.rows.length === 0) {
|
|
103
|
+
lines.push('Nothing was purchased against this kit.', '');
|
|
104
|
+
return lines;
|
|
105
|
+
}
|
|
106
|
+
lines.push('Every purchase this kit made, from the run journal. Paste it into the report as it is;'
|
|
107
|
+
+ ' an id that is here and not in the report is spend nobody accounted for.', '', '| purchase | stage | run | price ceiling |', '| --- | --- | --- | --- |', ...ledger.rows.map((row) => (`| \`${row.purchaseId}\` | ${row.stage} | \`${row.runId ?? 'unrecorded'}\``
|
|
108
|
+
+ ` | ${ceilingCell(row)} |`)), '', `${ledger.rows.length} purchase${ledger.rows.length === 1 ? '' : 's'}`
|
|
109
|
+
+ ` across ${ledger.runs} run${ledger.runs === 1 ? '' : 's'}.`
|
|
110
|
+
+ ` Ceilings are per stage, not per purchase; the distinct ceilings above total`
|
|
111
|
+
+ ` ${usd(ledger.ceilingUsdTotal)}. ${IMPROVE_SPEND_LEDGER_ACTUAL_NOTE}`, ...(ledger.unattributed > 0
|
|
112
|
+
? ['', `${ledger.unattributed} purchase${ledger.unattributed === 1 ? ' is' : 's are'}`
|
|
113
|
+
+ ' marked `unattributed`: the journal recorded it but no stage of `improve.json` claims'
|
|
114
|
+
+ ' it. Report it anyway — it was bought.']
|
|
115
|
+
: []), '');
|
|
116
|
+
return lines;
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=improve-spend-ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-spend-ledger.js","sourceRoot":"","sources":["../src/improve-spend-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { runImproveCaptureStage, runImproveDraftStage, runImprovePickStage, } from './improve-generation-stages.js';
|
|
2
|
-
export { runImprovePlanStage, } from './improve-delivery-stages.js';
|
|
3
|
-
export { runImproveConvertStage } from './improve-conversion-stage.js';
|
|
2
|
+
export { runImprovePlanStage, runImproveSitePlanPagesStage, } from './improve-delivery-stages.js';
|
|
3
|
+
export { runImproveConvertStage, runImproveSiteConvertStage, } from './improve-conversion-stage.js';
|
|
4
|
+
export { runImproveBranchStage } from './improve-branch-stage.js';
|
|
5
|
+
export { runImproveSiteRecheck } from './improve-recheck.js';
|
|
6
|
+
export { runImproveSiteStage } from './improve-site-stage.js';
|
|
4
7
|
export { writeImproveReadme } from './improve-kit-readme.js';
|
|
5
8
|
export { markImproveStageSkipped } from './improve-stage-shared.js';
|
|
6
9
|
export type { ImproveCommandDependencies } from './improve-stage-shared.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-stage-runners.d.ts","sourceRoot":"","sources":["../src/improve-stage-runners.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,
|
|
1
|
+
{"version":3,"file":"improve-stage-runners.d.ts","sourceRoot":"","sources":["../src/improve-stage-runners.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { runImproveCaptureStage, runImproveDraftStage, runImprovePickStage, } from './improve-generation-stages.js';
|
|
2
|
-
export { runImprovePlanStage, } from './improve-delivery-stages.js';
|
|
3
|
-
export { runImproveConvertStage } from './improve-conversion-stage.js';
|
|
2
|
+
export { runImprovePlanStage, runImproveSitePlanPagesStage, } from './improve-delivery-stages.js';
|
|
3
|
+
export { runImproveConvertStage, runImproveSiteConvertStage, } from './improve-conversion-stage.js';
|
|
4
|
+
export { runImproveBranchStage } from './improve-branch-stage.js';
|
|
5
|
+
export { runImproveSiteRecheck } from './improve-recheck.js';
|
|
6
|
+
export { runImproveSiteStage } from './improve-site-stage.js';
|
|
4
7
|
export { writeImproveReadme } from './improve-kit-readme.js';
|
|
5
8
|
export { markImproveStageSkipped } from './improve-stage-shared.js';
|
|
6
9
|
//# sourceMappingURL=improve-stage-runners.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-stage-runners.js","sourceRoot":"","sources":["../src/improve-stage-runners.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,
|
|
1
|
+
{"version":3,"file":"improve-stage-runners.js","sourceRoot":"","sources":["../src/improve-stage-runners.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { runConversionCommand } from './cli-convert-command.js';
|
|
2
2
|
import { runDraftCommand } from './cli-draft-command.js';
|
|
3
|
-
import {
|
|
3
|
+
import type { TwelveUiBranchClient } from './branch-client.js';
|
|
4
|
+
import { readConversionConfig } from './config.js';
|
|
5
|
+
import { captureImprovePage, captureImproveSite, discoverRedesignPageUrls } from './redesign-capture.js';
|
|
4
6
|
import type { ImproveStopTarget } from './improve-stop-handler.js';
|
|
5
7
|
import type { RunJournalNotes } from './run-journal.js';
|
|
6
8
|
import { type ImproveRecord, type ImproveStage, type ImproveStageOutcome } from './improve-workspace.js';
|
|
7
9
|
export type ImproveCommandDependencies = {
|
|
8
10
|
capture?: typeof captureImprovePage;
|
|
11
|
+
captureSite?: typeof captureImproveSite;
|
|
12
|
+
discoverPages?: typeof discoverRedesignPageUrls;
|
|
9
13
|
runDraft?: typeof runDraftCommand;
|
|
10
14
|
runConvert?: typeof runConversionCommand;
|
|
15
|
+
branchClient?: Pick<TwelveUiBranchClient, 'startImproveRun' | 'dispatchScreen' | 'getRun' | 'downloadScreen'>;
|
|
16
|
+
readConfig?: typeof readConversionConfig;
|
|
17
|
+
createBranchClient?: (config: ReturnType<typeof readConversionConfig>) => TwelveUiBranchClient;
|
|
18
|
+
/** Test seam for deadline accounting; production uses the wall clock. */
|
|
19
|
+
now?: () => number;
|
|
11
20
|
workspaceRoot?: string;
|
|
12
21
|
write?: (line: string) => void;
|
|
13
22
|
warn?: (line: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-stage-shared.d.ts","sourceRoot":"","sources":["../src/improve-stage-shared.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"improve-stage-shared.d.ts","sourceRoot":"","sources":["../src/improve-stage-shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-stage-shared.js","sourceRoot":"","sources":["../src/improve-stage-shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"improve-stage-shared.js","sourceRoot":"","sources":["../src/improve-stage-shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,23 @@ import { type ImproveRecord, type ImproveStage } from './improve-workspace.js';
|
|
|
23
23
|
* BEFORE it dispatches (`improve-conversion-attempts.ts`) — so by the time a
|
|
24
24
|
* signal arrives the fact is already durable, and a record write racing a
|
|
25
25
|
* second signal after the journal end line buys nothing.
|
|
26
|
+
*
|
|
27
|
+
* WHAT IT DOES OWE: draining. Not every durable fact is written before its
|
|
28
|
+
* dispatch — the hosted conversion id only exists once the run reports one, and
|
|
29
|
+
* it arrives on a callback the stage cannot await, so the stage chains the
|
|
30
|
+
* write and drains the chain when it ends. A signal ends the stage the other
|
|
31
|
+
* way, through `exit`, and a write still in flight at that moment is simply
|
|
32
|
+
* lost. See `drainImproveDurableWrites` below.
|
|
26
33
|
*/
|
|
27
34
|
export type { ImproveStopSignal };
|
|
35
|
+
/** Chain a durable write the stop path must wait for. Never rejects. */
|
|
36
|
+
export declare const trackImproveDurableWrite: (write: Promise<unknown>) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Wait for every tracked write to SETTLE. Failures belong to whoever chained
|
|
39
|
+
* the write — it reports them in its own words — and must not stop the kit.
|
|
40
|
+
* The loop catches a write chained while an earlier one was draining.
|
|
41
|
+
*/
|
|
42
|
+
export declare const drainImproveDurableWrites: () => Promise<void>;
|
|
28
43
|
export type ImproveStopArtifacts = {
|
|
29
44
|
/** Absent when nothing was in flight and every stage in range had settled. */
|
|
30
45
|
stage?: ImproveStage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-stop-handler.d.ts","sourceRoot":"","sources":["../src/improve-stop-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAEhC
|
|
1
|
+
{"version":3,"file":"improve-stop-handler.d.ts","sourceRoot":"","sources":["../src/improve-stop-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAoBlC,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,CAAC,OAAO,CAAC,KAAG,IAElE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC,IAAI,CAM9D,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAKF,eAAO,MAAM,yBAAyB,GAAU,MAAM;IACpD,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,sFAAsF;IACtF,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,KAAG,OAAO,CAAC,oBAAoB,CAgF/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC;IACnE,GAAG,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC;CACnE,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,GAAI,MAAM;IAC/C,SAAS,EAAE,MAAM,aAAa,CAAC;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACnD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,KAAG,CAAC,MAAM,IAAI,CAyDd,CAAC"}
|
|
@@ -4,6 +4,39 @@ import { writeImproveStallReport } from './improve-kit-stall.js';
|
|
|
4
4
|
import { buildImproveRunSummary } from './improve-run-summary.js';
|
|
5
5
|
import { improveUnsettledStage, IMPROVE_SIGNALLED_AFTER_COMPLETION, noteImproveTerminalEvent, } from './improve-terminal-event.js';
|
|
6
6
|
import { improvePaths, readImproveRecord, } from './improve-workspace.js';
|
|
7
|
+
/**
|
|
8
|
+
* The durable writes the signal path owes before the process ends.
|
|
9
|
+
*
|
|
10
|
+
* A stage that learns a fact from a callback it cannot await records it by
|
|
11
|
+
* chaining a write here rather than dropping it. The ordinary path drains the
|
|
12
|
+
* chain when the stage finishes; this path drains it because `exit` is the end
|
|
13
|
+
* of the process, and anything unlanded at that point never lands at all.
|
|
14
|
+
*
|
|
15
|
+
* THE LEAK THIS CLOSES. The convert stage stamps the hosted conversion id onto
|
|
16
|
+
* its ledger entry the moment the run reports one — the ONE writer of that
|
|
17
|
+
* field. Killed mid-conversion, `improve.json` carried a key and a price and no
|
|
18
|
+
* id, so the kit priced a conversion that was still running and still billing
|
|
19
|
+
* and could not name it; `plan/STALL.md` had to name it from the journal
|
|
20
|
+
* instead (`improve-kit-stall.ts`). The chain is process-wide because the
|
|
21
|
+
* process is what a signal ends — one `improve` invocation, one drain.
|
|
22
|
+
*/
|
|
23
|
+
let pendingDurableWrites = Promise.resolve();
|
|
24
|
+
/** Chain a durable write the stop path must wait for. Never rejects. */
|
|
25
|
+
export const trackImproveDurableWrite = (write) => {
|
|
26
|
+
pendingDurableWrites = Promise.all([pendingDurableWrites, write]).catch(() => undefined);
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Wait for every tracked write to SETTLE. Failures belong to whoever chained
|
|
30
|
+
* the write — it reports them in its own words — and must not stop the kit.
|
|
31
|
+
* The loop catches a write chained while an earlier one was draining.
|
|
32
|
+
*/
|
|
33
|
+
export const drainImproveDurableWrites = async () => {
|
|
34
|
+
let drained;
|
|
35
|
+
do {
|
|
36
|
+
drained = pendingDurableWrites;
|
|
37
|
+
await drained.catch(() => undefined);
|
|
38
|
+
} while (drained !== pendingDurableWrites);
|
|
39
|
+
};
|
|
7
40
|
/** Exit codes for a signalled stop are 128 plus the signal number. */
|
|
8
41
|
const EXIT_CODE = { SIGINT: 130, SIGTERM: 143 };
|
|
9
42
|
export const writeImproveStopArtifacts = async (args) => {
|
|
@@ -52,12 +85,29 @@ export const writeImproveStopArtifacts = async (args) => {
|
|
|
52
85
|
...(args.live ? { inFlight: true } : {}),
|
|
53
86
|
...(args.journal ? { journal: args.journal } : {}),
|
|
54
87
|
});
|
|
88
|
+
// Everything the live stage has in flight lands FIRST, so the record read
|
|
89
|
+
// below is the whole truth and not a snapshot of a half-written ledger. Here
|
|
90
|
+
// rather than before the end line, because the end line is the one write a
|
|
91
|
+
// second signal must never be able to cut short.
|
|
92
|
+
await drainImproveDurableWrites();
|
|
55
93
|
// The kit is written from the DURABLE record, the way the stall path in
|
|
56
94
|
// `cli-improve-command.ts` already does: a stage in flight has written down
|
|
57
95
|
// what it abandoned and what it cleared, and the in-memory copy predates
|
|
58
96
|
// that. It is read only AFTER the end line, so the one-read-before-the-end
|
|
59
97
|
// rule this module's header states still holds.
|
|
60
|
-
|
|
98
|
+
//
|
|
99
|
+
// The fallback is a real case, not a formality: `writeImproveRecord`
|
|
100
|
+
// truncates in place, so a read landing mid-write parses nothing and answers
|
|
101
|
+
// `undefined`. The drain above is what stops that read from ever landing
|
|
102
|
+
// mid-write — without it this fell back to a record the CLI had not
|
|
103
|
+
// reassigned since before the stage began, which named no attempt at all.
|
|
104
|
+
// `improve.json` is a best-effort snapshot, not a precondition for a clean
|
|
105
|
+
// signal exit. A SIGTERM can land while the kit is being created, and a
|
|
106
|
+
// supervisor can remove the kit after the journal was opened. The workspace
|
|
107
|
+
// reader currently absorbs filesystem and parse failures itself, but keep the
|
|
108
|
+
// signal boundary defensive as well: this path still owes the terminal
|
|
109
|
+
// journal line and a STALL.md wherever the directory remains writable.
|
|
110
|
+
const durable = await readImproveRecord(paths.record).catch(() => undefined) ?? args.record;
|
|
61
111
|
const stall = await writeImproveStallReport({
|
|
62
112
|
record: durable,
|
|
63
113
|
stage,
|
|
@@ -113,9 +163,30 @@ export const registerImproveStopHandler = (args) => {
|
|
|
113
163
|
catch (error) {
|
|
114
164
|
// Say so rather than exiting quietly: an unwritten kit that also
|
|
115
165
|
// said nothing is the failure this whole path exists to end.
|
|
116
|
-
|
|
166
|
+
// `write` is usually stdout, but it can itself be gone during a
|
|
167
|
+
// supervised stop. It must never prevent the documented signal exit.
|
|
168
|
+
try {
|
|
169
|
+
args.write(`Could not write the stopped kit: ${error instanceof Error ? error.message : String(error)}`);
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
// There is nowhere left to report this; still exit with the signal
|
|
173
|
+
// code below.
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
finally {
|
|
177
|
+
// Keep this in `finally`: a missing or unreadable improve.json (or a
|
|
178
|
+
// later kit-write failure) records what it can and then exits 143.
|
|
179
|
+
// The production exit does not return; catching makes a test or
|
|
180
|
+
// supervisor-provided exit hook unable to create an unhandled signal
|
|
181
|
+
// rejection after that exit was attempted.
|
|
182
|
+
try {
|
|
183
|
+
exit(EXIT_CODE[signal]);
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
// Nothing follows a failed injected exit hook. The real process
|
|
187
|
+
// exit above was still invoked with the documented code.
|
|
188
|
+
}
|
|
117
189
|
}
|
|
118
|
-
exit(EXIT_CODE[signal]);
|
|
119
190
|
})();
|
|
120
191
|
};
|
|
121
192
|
listeners.set(signal, listener);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-stop-handler.js","sourceRoot":"","sources":["../src/improve-stop-handler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,kCAAkC,EAClC,wBAAwB,GAGzB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,YAAY,EACZ,iBAAiB,GAGlB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"improve-stop-handler.js","sourceRoot":"","sources":["../src/improve-stop-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-terminal-event.d.ts","sourceRoot":"","sources":["../src/improve-terminal-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"improve-terminal-event.d.ts","sourceRoot":"","sources":["../src/improve-terminal-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD,eAAO,MAAM,yBAAyB,GAAI,MAAM;IAC9C,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B,KAAG,MAEgC,CAAC;AAErC;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC,uCAAuC,CAAC;AAEvF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,YAAY,GAAG,SAAS,CAAC;AAE9D;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,aAAa,EACrB,cAAc,YAAY,KACzB,YAAY,GAAG,SAajB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAU,MAAM;IACnD,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,sEAAsE;IACtE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,KAAG,OAAO,CAAC,MAAM,CA0CjB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { collectImproveStallFacts } from './improve-kit-stall.js';
|
|
2
2
|
import { hostedRunAgeSeconds } from './run-journal-unfinished.js';
|
|
3
3
|
import { readRunJournal } from './run-journal.js';
|
|
4
|
-
import {
|
|
4
|
+
import { improveStagesForScope, } from './improve-workspace.js';
|
|
5
5
|
export const improveTerminalErrorClass = (args) => (args.kind === 'stopped'
|
|
6
6
|
? `improve_stopped_${(args.signal ?? 'SIGTERM').toLowerCase()}`
|
|
7
7
|
: `improve_stalled_${args.stage}`);
|
|
@@ -25,12 +25,15 @@ export const IMPROVE_SIGNALLED_AFTER_COMPLETION = 'improve_signalled_after_compl
|
|
|
25
25
|
* that had settled.
|
|
26
26
|
*/
|
|
27
27
|
export const improveUnsettledStage = (record, requestedTo) => {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
// Only the stages this kit's scope runs: a page kit has no branch and no
|
|
29
|
+
// site stage, so counting them unsettled gave a finished run a STALL.md.
|
|
30
|
+
const stages = improveStagesForScope(record.scope);
|
|
31
|
+
const last = requestedTo ?? stages[stages.length - 1];
|
|
32
|
+
const bound = stages.indexOf(last);
|
|
30
33
|
// A stage whose entry was written at DISPATCH has not settled either: the
|
|
31
34
|
// entry exists to price a paid call that is still out (F19), and reading it
|
|
32
35
|
// as a settlement would name the NEXT stage as the one a stalled run died in.
|
|
33
|
-
return
|
|
36
|
+
return (bound < 0 ? stages : stages.slice(0, bound + 1)).find((stage) => {
|
|
34
37
|
const entry = record.stages[stage];
|
|
35
38
|
return !entry || entry.outcome === 'dispatched' || entry.outcome === 'stalled';
|
|
36
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-terminal-event.js","sourceRoot":"","sources":["../src/improve-terminal-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAyB,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAwB,MAAM,kBAAkB,CAAC;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"improve-terminal-event.js","sourceRoot":"","sources":["../src/improve-terminal-event.ts"],"names":[],"mappings":"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"}
|