@12ui/design 0.2.55 → 0.2.56
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/cli-arguments.d.ts.map +1 -1
- package/dist/cli-arguments.js +1 -0
- package/dist/cli-arguments.js.map +1 -1
- package/dist/cli-conversion-derivation.d.ts +2 -1
- package/dist/cli-conversion-derivation.d.ts.map +1 -1
- package/dist/cli-conversion-derivation.js +9 -1
- package/dist/cli-conversion-derivation.js.map +1 -1
- package/dist/cli-convert-command.js +1 -1
- package/dist/cli-convert-command.js.map +1 -1
- package/dist/cli-draft-command.d.ts +11 -0
- package/dist/cli-draft-command.d.ts.map +1 -1
- package/dist/cli-draft-command.js +10 -1
- package/dist/cli-draft-command.js.map +1 -1
- package/dist/cli-help/design.d.ts +1 -1
- package/dist/cli-help/design.d.ts.map +1 -1
- package/dist/cli-help/design.js +7 -1
- package/dist/cli-help/design.js.map +1 -1
- package/dist/cli-help/index.d.ts +1 -1
- package/dist/cli-improve-command.d.ts.map +1 -1
- package/dist/cli-improve-command.js +252 -68
- package/dist/cli-improve-command.js.map +1 -1
- package/dist/cli-next-command.d.ts.map +1 -1
- package/dist/cli-next-command.js +44 -4
- package/dist/cli-next-command.js.map +1 -1
- package/dist/cli-usage.js +1 -1
- package/dist/improve-conversion-attempts.d.ts +92 -0
- package/dist/improve-conversion-attempts.d.ts.map +1 -0
- package/dist/improve-conversion-attempts.js +88 -0
- package/dist/improve-conversion-attempts.js.map +1 -0
- package/dist/improve-conversion-stage.d.ts +7 -0
- package/dist/improve-conversion-stage.d.ts.map +1 -1
- package/dist/improve-conversion-stage.js +197 -30
- package/dist/improve-conversion-stage.js.map +1 -1
- package/dist/improve-convert-resilience.d.ts +125 -0
- package/dist/improve-convert-resilience.d.ts.map +1 -1
- package/dist/improve-convert-resilience.js +165 -1
- package/dist/improve-convert-resilience.js.map +1 -1
- package/dist/improve-delivery-stages.d.ts.map +1 -1
- package/dist/improve-delivery-stages.js +1 -0
- package/dist/improve-delivery-stages.js.map +1 -1
- package/dist/improve-dom-diff.d.ts +2 -0
- package/dist/improve-dom-diff.d.ts.map +1 -1
- package/dist/improve-dom-diff.js +7 -0
- package/dist/improve-dom-diff.js.map +1 -1
- package/dist/improve-dom-gate.d.ts +7 -0
- package/dist/improve-dom-gate.d.ts.map +1 -1
- package/dist/improve-dom-gate.js +13 -0
- package/dist/improve-dom-gate.js.map +1 -1
- package/dist/improve-generation-stages.d.ts +3 -0
- package/dist/improve-generation-stages.d.ts.map +1 -1
- package/dist/improve-generation-stages.js +24 -7
- package/dist/improve-generation-stages.js.map +1 -1
- package/dist/improve-kit-assets.d.ts +129 -0
- package/dist/improve-kit-assets.d.ts.map +1 -0
- package/dist/improve-kit-assets.js +333 -0
- package/dist/improve-kit-assets.js.map +1 -0
- package/dist/improve-kit-readme.d.ts +11 -2
- package/dist/improve-kit-readme.d.ts.map +1 -1
- package/dist/improve-kit-readme.js +192 -26
- package/dist/improve-kit-readme.js.map +1 -1
- package/dist/improve-kit-stall.d.ts +67 -0
- package/dist/improve-kit-stall.d.ts.map +1 -0
- package/dist/improve-kit-stall.js +159 -0
- package/dist/improve-kit-stall.js.map +1 -0
- package/dist/improve-kit-status.d.ts +69 -0
- package/dist/improve-kit-status.d.ts.map +1 -0
- package/dist/improve-kit-status.js +145 -0
- package/dist/improve-kit-status.js.map +1 -0
- package/dist/improve-options.d.ts +10 -1
- package/dist/improve-options.d.ts.map +1 -1
- package/dist/improve-options.js +62 -15
- package/dist/improve-options.js.map +1 -1
- package/dist/improve-plan-annotated-render.d.ts +33 -0
- package/dist/improve-plan-annotated-render.d.ts.map +1 -0
- package/dist/improve-plan-annotated-render.js +175 -0
- package/dist/improve-plan-annotated-render.js.map +1 -0
- package/dist/improve-plan-annotator.d.ts +2 -1
- package/dist/improve-plan-annotator.d.ts.map +1 -1
- package/dist/improve-plan-annotator.js +21 -45
- package/dist/improve-plan-annotator.js.map +1 -1
- package/dist/improve-raster-layers-section.d.ts +21 -0
- package/dist/improve-raster-layers-section.d.ts.map +1 -0
- package/dist/improve-raster-layers-section.js +45 -0
- package/dist/improve-raster-layers-section.js.map +1 -0
- package/dist/improve-reset.d.ts +122 -0
- package/dist/improve-reset.d.ts.map +1 -0
- package/dist/improve-reset.js +141 -0
- package/dist/improve-reset.js.map +1 -0
- package/dist/improve-run-summary.d.ts +35 -0
- package/dist/improve-run-summary.d.ts.map +1 -0
- package/dist/improve-run-summary.js +134 -0
- package/dist/improve-run-summary.js.map +1 -0
- package/dist/improve-stage-shared.d.ts +5 -0
- 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 +73 -0
- package/dist/improve-stop-handler.d.ts.map +1 -0
- package/dist/improve-stop-handler.js +126 -0
- package/dist/improve-stop-handler.js.map +1 -0
- package/dist/improve-terminal-event.d.ts +118 -0
- package/dist/improve-terminal-event.d.ts.map +1 -0
- package/dist/improve-terminal-event.js +81 -0
- package/dist/improve-terminal-event.js.map +1 -0
- package/dist/improve-workspace.d.ts +15 -0
- package/dist/improve-workspace.d.ts.map +1 -1
- package/dist/improve-workspace.js +3 -0
- package/dist/improve-workspace.js.map +1 -1
- package/dist/legacy-skill-catalog.d.ts.map +1 -1
- package/dist/legacy-skill-catalog.js +20 -0
- package/dist/legacy-skill-catalog.js.map +1 -1
- package/dist/redesign-capture.d.ts +16 -0
- package/dist/redesign-capture.d.ts.map +1 -1
- package/dist/redesign-capture.js +49 -3
- package/dist/redesign-capture.js.map +1 -1
- package/dist/run-journal-unfinished.d.ts +56 -0
- package/dist/run-journal-unfinished.d.ts.map +1 -0
- package/dist/run-journal-unfinished.js +126 -0
- package/dist/run-journal-unfinished.js.map +1 -0
- package/dist/run-journal.d.ts +25 -1
- package/dist/run-journal.d.ts.map +1 -1
- package/dist/run-journal.js +15 -1
- package/dist/run-journal.js.map +1 -1
- package/open-design.json +2 -2
- package/package.json +1 -1
- package/skills/12ui-design/SKILL.md +2 -0
- package/skills/12ui-design/improve.md +67 -5
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { stat } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { IMPROVE_STAGES, improvePaths } from './improve-workspace.js';
|
|
4
|
+
const isFile = async (file) => Boolean(await stat(file).then((entry) => entry.isFile()).catch(() => false));
|
|
5
|
+
const isDirectory = async (file) => Boolean(await stat(file).then((entry) => entry.isDirectory()).catch(() => false));
|
|
6
|
+
const stageState = (args) => {
|
|
7
|
+
const settled = args.record.stages[args.stage];
|
|
8
|
+
if (!settled) {
|
|
9
|
+
return IMPROVE_STAGES.indexOf(args.stage) > IMPROVE_STAGES.indexOf(args.requestedTo)
|
|
10
|
+
? { stage: args.stage, state: 'not-requested', detail: 'outside the requested stage range' }
|
|
11
|
+
: { stage: args.stage, state: 'incomplete' };
|
|
12
|
+
}
|
|
13
|
+
if (settled.outcome === 'skipped') {
|
|
14
|
+
return { stage: args.stage, state: 'skipped', detail: 'a target was supplied' };
|
|
15
|
+
}
|
|
16
|
+
if (args.blocked) {
|
|
17
|
+
return {
|
|
18
|
+
stage: args.stage,
|
|
19
|
+
state: 'blocked',
|
|
20
|
+
detail: 'the coverage gate blocked the anchored plan; read `plan/GATE.md`',
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
if (!args.delivered)
|
|
24
|
+
return { stage: args.stage, state: 'incomplete', detail: 'recorded, but its files are not in the kit' };
|
|
25
|
+
if (args.stage === 'convert' && args.record.convert?.layout === 'fixed') {
|
|
26
|
+
return {
|
|
27
|
+
stage: 'convert',
|
|
28
|
+
state: 'fallback',
|
|
29
|
+
detail: args.record.convert.responsiveWarning ?? 'Responsive HTML was unavailable.',
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
stage: args.stage,
|
|
34
|
+
state: settled.replayCount > 0 ? 'replayed' : 'settled',
|
|
35
|
+
...(settled.replayCount > 0 ? { detail: `replayed ${settled.replayCount}×, bought once` } : {}),
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export const IMPROVE_NO_APPROXIMATION_RULE = 'Do not approximate the design in CSS from the PNG'
|
|
39
|
+
+ ' while a stage is incomplete; resume or convert first.';
|
|
40
|
+
/**
|
|
41
|
+
* A recovery command is presented as copy-and-run, so it has to survive being
|
|
42
|
+
* pasted. Capture URLs carry query strings and `--out-dir` paths carry spaces;
|
|
43
|
+
* either one unquoted breaks the line or backgrounds it at the `&`.
|
|
44
|
+
*/
|
|
45
|
+
export const shellArg = (value) => (/^[A-Za-z0-9_./:=-]+$/u.test(value) ? value : `'${value.replace(/'/gu, "'\\''")}'`);
|
|
46
|
+
export const improveRecoveryCommands = (args) => {
|
|
47
|
+
const runDir = shellArg(args.record.runDir);
|
|
48
|
+
const input = shellArg(args.record.input.value);
|
|
49
|
+
const design = shellArg(args.designImage);
|
|
50
|
+
return [
|
|
51
|
+
{
|
|
52
|
+
command: `12ui improve ${input} --out-dir ${runDir} --from convert`,
|
|
53
|
+
spends: 'resumes; settled stages replay',
|
|
54
|
+
},
|
|
55
|
+
{ command: `12ui convert ${design} --output html`, spends: 'buys one conversion' },
|
|
56
|
+
// `--target` is documented against a URL input. Offering it for an image
|
|
57
|
+
// input would name a mode the CLI does not document.
|
|
58
|
+
...(args.record.input.kind === 'url'
|
|
59
|
+
? [{
|
|
60
|
+
command: `12ui improve ${input} --target ${design}`,
|
|
61
|
+
spends: 'buys one fused target conversion',
|
|
62
|
+
}]
|
|
63
|
+
: []),
|
|
64
|
+
];
|
|
65
|
+
};
|
|
66
|
+
/** One indented, copy-pasteable line; the cost rides along as a shell comment. */
|
|
67
|
+
export const improveRecoveryLine = (entry) => (` ${entry.command} # ${entry.spends}`);
|
|
68
|
+
export const readImproveKitStatus = async (args) => {
|
|
69
|
+
const paths = improvePaths(args.record.runDir);
|
|
70
|
+
const requestedTo = args.requestedTo ?? IMPROVE_STAGES[IMPROVE_STAGES.length - 1];
|
|
71
|
+
const [winner, sourceImage, layerDoc, assets, plan, gate, stall] = await Promise.all([
|
|
72
|
+
isFile(paths.winnerImage),
|
|
73
|
+
isFile(paths.sourceImage),
|
|
74
|
+
isFile(paths.targetLayerDoc),
|
|
75
|
+
isDirectory(`${paths.targetLayerDoc}.assets`),
|
|
76
|
+
isFile(path.join(paths.planDir, 'plan-annotated.md')),
|
|
77
|
+
isFile(path.join(paths.planDir, 'GATE.md')),
|
|
78
|
+
isFile(path.join(paths.planDir, 'STALL.md')),
|
|
79
|
+
]);
|
|
80
|
+
const recordedHtml = args.record.convert?.html;
|
|
81
|
+
const targetHtml = recordedHtml ? await isFile(recordedHtml) : await isFile(paths.targetHtml);
|
|
82
|
+
// Name a file that is actually here. A `--target <layerdoc>` kit never gets a
|
|
83
|
+
// winner.png, and a run that stalled before pick has only its capture.
|
|
84
|
+
const captured = args.record.capture?.sourceImage;
|
|
85
|
+
const designImage = winner
|
|
86
|
+
? paths.winnerImage
|
|
87
|
+
: sourceImage
|
|
88
|
+
? paths.sourceImage
|
|
89
|
+
: captured && await isFile(captured)
|
|
90
|
+
? captured
|
|
91
|
+
: layerDoc && args.record.target?.kind === 'layerdoc'
|
|
92
|
+
? paths.targetLayerDoc
|
|
93
|
+
: paths.winnerImage;
|
|
94
|
+
const designKind = designImage === paths.targetLayerDoc ? 'layerdoc' : 'image';
|
|
95
|
+
const delivered = {
|
|
96
|
+
capture: Boolean(args.record.capture),
|
|
97
|
+
draft: Boolean(args.record.draft),
|
|
98
|
+
pick: Boolean(args.record.pick),
|
|
99
|
+
convert: layerDoc,
|
|
100
|
+
plan: plan || gate,
|
|
101
|
+
};
|
|
102
|
+
const gateBlocked = gate && !plan;
|
|
103
|
+
const stages = IMPROVE_STAGES.map((stage) => stageState({
|
|
104
|
+
record: args.record,
|
|
105
|
+
stage,
|
|
106
|
+
requestedTo,
|
|
107
|
+
delivered: delivered[stage],
|
|
108
|
+
blocked: stage === 'plan' && gateBlocked,
|
|
109
|
+
}));
|
|
110
|
+
const targetMode = !layerDoc
|
|
111
|
+
? 'none'
|
|
112
|
+
: args.record.convert?.layout === 'fixed'
|
|
113
|
+
? 'fixed-layout fallback'
|
|
114
|
+
: targetHtml ? 'responsive HTML' : 'LayerDoc only';
|
|
115
|
+
// Only stages the caller actually asked for can be missing. `--to pick` is a
|
|
116
|
+
// finished run, not an incomplete one.
|
|
117
|
+
const owed = (stage) => (IMPROVE_STAGES.indexOf(stage) <= IMPROVE_STAGES.indexOf(requestedTo));
|
|
118
|
+
// A supplied `*.layerdoc.json` target buys no conversion, so it owes neither
|
|
119
|
+
// extracted assets nor target HTML: naming them missing would be a false alarm.
|
|
120
|
+
const suppliedDocument = args.record.target?.kind === 'layerdoc';
|
|
121
|
+
const convertOwed = owed('convert') && !suppliedDocument;
|
|
122
|
+
const missing = [
|
|
123
|
+
...(!owed('convert') || layerDoc ? [] : ['no LayerDoc']),
|
|
124
|
+
...(!convertOwed || assets ? [] : ['no assets']),
|
|
125
|
+
...(!convertOwed || targetHtml ? [] : ['no target HTML']),
|
|
126
|
+
...(!owed('plan') || plan || gate ? [] : ['no plan']),
|
|
127
|
+
];
|
|
128
|
+
const complete = stages.every((entry) => entry.state !== 'incomplete') && missing.length === 0;
|
|
129
|
+
return {
|
|
130
|
+
stages,
|
|
131
|
+
complete,
|
|
132
|
+
gateBlocked,
|
|
133
|
+
missing,
|
|
134
|
+
targetMode,
|
|
135
|
+
present: { design: winner || sourceImage, layerDoc, assets, targetHtml, plan, gate, stall },
|
|
136
|
+
designImage,
|
|
137
|
+
designKind,
|
|
138
|
+
recovery: improveRecoveryCommands({ record: args.record, designImage }),
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
export const improveStageStatusLine = (status) => {
|
|
142
|
+
const label = status.state === 'incomplete' ? 'INCOMPLETE' : status.state;
|
|
143
|
+
return `${status.stage}: ${label}${status.detail ? ` — ${status.detail}` : ''}`;
|
|
144
|
+
};
|
|
145
|
+
//# sourceMappingURL=improve-kit-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-kit-status.js","sourceRoot":"","sources":["../src/improve-kit-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,11 @@ export type ImproveOptions = {
|
|
|
18
18
|
candidates: number;
|
|
19
19
|
retain: CreateRetainPolicy;
|
|
20
20
|
retainFlag: string;
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* The chosen candidate. Absent means nobody has chosen yet, which is a state
|
|
23
|
+
* the run stops in rather than a state it guesses its way out of.
|
|
24
|
+
*/
|
|
25
|
+
pick?: string;
|
|
22
26
|
conversionModel: ConversionModel;
|
|
23
27
|
responsiveQuality: ResponsiveConversionQuality;
|
|
24
28
|
viewport: {
|
|
@@ -34,7 +38,12 @@ export type ImproveOptions = {
|
|
|
34
38
|
repo?: string;
|
|
35
39
|
planSourceConvert: boolean;
|
|
36
40
|
dryRun: boolean;
|
|
41
|
+
/** The wait improve gives one half of a fused conversion before it stalls. */
|
|
42
|
+
convertStallSeconds: number;
|
|
43
|
+
/** Re-buy ONE conversion of the settled winner under a new key. */
|
|
37
44
|
fresh: boolean;
|
|
45
|
+
/** Re-buy the whole draw: new candidates, then a new pick. */
|
|
46
|
+
redraw: boolean;
|
|
38
47
|
};
|
|
39
48
|
export declare const parseImproveOptions: (args: {
|
|
40
49
|
command: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-options.d.ts","sourceRoot":"","sources":["../src/improve-options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"improve-options.d.ts","sourceRoot":"","sources":["../src/improve-options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,yBAAyB,CAAC;AAWjC,OAAO,EAAkC,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE;QAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,8EAA8E;IAC9E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,KAAK,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAqGF,eAAO,MAAM,mBAAmB,GAAI,MAAM;IACxC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,KAAG,cA4HH,CAAC"}
|
package/dist/improve-options.js
CHANGED
|
@@ -6,8 +6,14 @@ import { isConversionModel } from './conversion-models.js';
|
|
|
6
6
|
import { isResponsiveConversionQuality, } from './responsive-quality.js';
|
|
7
7
|
import { DRAFT_CANDIDATE_COUNT, DRAFT_CANDIDATE_COUNT_MAXIMUM, DRAFT_CANDIDATE_COUNT_MINIMUM, } from './draft-run.js';
|
|
8
8
|
import { parseDraftRetainFlag } from './draft-retain.js';
|
|
9
|
-
import {
|
|
9
|
+
import { improveConvertStallDefaultSeconds, improveConvertStallFloorSeconds, } from './improve-convert-resilience.js';
|
|
10
|
+
import { httpUrl, parseImproveBootstrap } from './redesign-capture.js';
|
|
10
11
|
import { IMPROVE_STAGES, improvePaths, improveSlug, isImproveStage, } from './improve-workspace.js';
|
|
12
|
+
/**
|
|
13
|
+
* The floor is 2 and stays 2, and the refusal now says why: a draft draws
|
|
14
|
+
* ALTERNATIVES, and a draw of one is not a choice. The one-design mode already
|
|
15
|
+
* exists and is spelled `--target`, which skips draft and pick outright.
|
|
16
|
+
*/
|
|
11
17
|
const candidateCount = (flags) => {
|
|
12
18
|
const value = stringFlag(flags, 'candidates');
|
|
13
19
|
if (value === undefined)
|
|
@@ -17,7 +23,10 @@ const candidateCount = (flags) => {
|
|
|
17
23
|
|| count < DRAFT_CANDIDATE_COUNT_MINIMUM
|
|
18
24
|
|| count > DRAFT_CANDIDATE_COUNT_MAXIMUM) {
|
|
19
25
|
throw new CliRefusal(`--candidates must be an integer between ${DRAFT_CANDIDATE_COUNT_MINIMUM}`
|
|
20
|
-
+ ` and ${DRAFT_CANDIDATE_COUNT_MAXIMUM}
|
|
26
|
+
+ ` and ${DRAFT_CANDIDATE_COUNT_MAXIMUM}.`
|
|
27
|
+
+ ' A draft draws alternatives to choose between, so the floor is'
|
|
28
|
+
+ ` ${DRAFT_CANDIDATE_COUNT_MINIMUM}; to work from a single design you already have,`
|
|
29
|
+
+ ' pass --target <image.png|layerdoc.json>, which skips draft and pick.', 'improve_candidates_invalid');
|
|
21
30
|
}
|
|
22
31
|
return count;
|
|
23
32
|
};
|
|
@@ -45,6 +54,28 @@ const viewport = (flags) => {
|
|
|
45
54
|
}
|
|
46
55
|
return { width, height };
|
|
47
56
|
};
|
|
57
|
+
/**
|
|
58
|
+
* `--convert-stall-seconds` bounds how long improve waits on one half of a
|
|
59
|
+
* fused conversion. It refuses below the conversion's own typical wall for the
|
|
60
|
+
* model in play: a bound inside the typical window would fire the stall retry
|
|
61
|
+
* on a healthy run and buy the same design twice.
|
|
62
|
+
*
|
|
63
|
+
* The default obeys the same rule rather than sitting just above the floor —
|
|
64
|
+
* see `improveConvertStallDefaultSeconds`, which is model-aware.
|
|
65
|
+
*/
|
|
66
|
+
const convertStallSeconds = (flags, model) => {
|
|
67
|
+
const value = stringFlag(flags, 'convert-stall-seconds')?.trim();
|
|
68
|
+
if (value === undefined)
|
|
69
|
+
return improveConvertStallDefaultSeconds(model);
|
|
70
|
+
const seconds = Number(value);
|
|
71
|
+
const floor = improveConvertStallFloorSeconds(model);
|
|
72
|
+
if (!Number.isSafeInteger(seconds) || seconds < floor || seconds > 3_600) {
|
|
73
|
+
throw new CliRefusal(`--convert-stall-seconds must be an integer between ${floor} and 3600.`
|
|
74
|
+
+ ` A ${model} conversion typically takes ${floor}s, and a bound inside that window`
|
|
75
|
+
+ ' would abandon healthy work and buy it again.', 'improve_convert_stall_seconds_invalid');
|
|
76
|
+
}
|
|
77
|
+
return seconds;
|
|
78
|
+
};
|
|
48
79
|
const stageRange = (flags) => {
|
|
49
80
|
const read = (flag, fallback) => {
|
|
50
81
|
const value = stringFlag(flags, flag)?.trim();
|
|
@@ -67,15 +98,7 @@ export const parseImproveOptions = (args) => {
|
|
|
67
98
|
if (!inputValue || args.command.length !== 2) {
|
|
68
99
|
throw new CliRefusal('12ui improve accepts one URL or PNG, JPEG, or WebP path', 'improve_usage');
|
|
69
100
|
}
|
|
70
|
-
const parsedUrl = (
|
|
71
|
-
try {
|
|
72
|
-
const url = new URL(inputValue);
|
|
73
|
-
return /^https?:$/u.test(url.protocol) ? url.toString() : undefined;
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
return undefined;
|
|
77
|
-
}
|
|
78
|
-
})();
|
|
101
|
+
const parsedUrl = httpUrl(inputValue);
|
|
79
102
|
const kind = parsedUrl ? 'url' : 'image';
|
|
80
103
|
const value = parsedUrl ?? path.resolve(inputValue);
|
|
81
104
|
if (kind === 'image' && !/\.(?:png|jpe?g|webp)$/iu.test(value)) {
|
|
@@ -86,8 +109,14 @@ export const parseImproveOptions = (args) => {
|
|
|
86
109
|
const candidates = candidateCount(args.flags);
|
|
87
110
|
const retainFlag = stringFlag(args.flags, 'retain')?.trim() ?? 'layout,content';
|
|
88
111
|
const retain = parseDraftRetainFlag(retainFlag);
|
|
89
|
-
|
|
90
|
-
|
|
112
|
+
// No default. `--pick` used to default to A, and the convert stage ran
|
|
113
|
+
// unconditionally under the default `--to plan`, so a run bought a conversion
|
|
114
|
+
// of candidate A before any human had seen the draw. Notion's improve.json
|
|
115
|
+
// times the two four milliseconds apart. An absent pick now stops the run
|
|
116
|
+
// after draft and prints the command that resumes it.
|
|
117
|
+
const pickValue = stringFlag(args.flags, 'pick')?.trim();
|
|
118
|
+
const pick = pickValue?.toUpperCase();
|
|
119
|
+
if (pick !== undefined && (!/^[A-P]$/u.test(pick) || pick.charCodeAt(0) - 64 > candidates)) {
|
|
91
120
|
throw new CliRefusal(`--pick must name one of A-${String.fromCharCode(64 + candidates)}`, 'improve_pick_invalid');
|
|
92
121
|
}
|
|
93
122
|
const conversion = conversionModel(args.flags);
|
|
@@ -102,7 +131,10 @@ export const parseImproveOptions = (args) => {
|
|
|
102
131
|
kind: /\.layerdoc\.json$/iu.test(targetValue) ? 'layerdoc' : 'image',
|
|
103
132
|
value: path.resolve(targetValue),
|
|
104
133
|
} : undefined;
|
|
134
|
+
const stallSeconds = convertStallSeconds(args.flags, conversion);
|
|
105
135
|
const fresh = booleanFlag(args.flags, 'fresh');
|
|
136
|
+
const redraw = booleanFlag(args.flags, 'redraw');
|
|
137
|
+
const range = stageRange(args.flags);
|
|
106
138
|
if (target && target.kind === 'image' && !/\.(?:png|jpe?g|webp)$/iu.test(target.value)) {
|
|
107
139
|
throw new CliRefusal('--target must be a PNG, JPEG, WebP, or *.layerdoc.json', 'improve_target_invalid');
|
|
108
140
|
}
|
|
@@ -119,6 +151,20 @@ export const parseImproveOptions = (args) => {
|
|
|
119
151
|
if (target.kind === 'layerdoc' && fresh) {
|
|
120
152
|
throw new CliRefusal('--fresh does not apply to a LayerDoc --target', 'improve_target_flag_invalid');
|
|
121
153
|
}
|
|
154
|
+
if (redraw) {
|
|
155
|
+
throw new CliRefusal('--redraw draws new candidates, and --target skips draft and pick entirely.'
|
|
156
|
+
+ ' Drop one of them.', 'improve_target_flag_invalid');
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// A redraw that never reaches the draft stage would print a reassuring
|
|
160
|
+
// summary over a record it had just emptied.
|
|
161
|
+
if (redraw && IMPROVE_STAGES.indexOf(range.from) > IMPROVE_STAGES.indexOf('draft')) {
|
|
162
|
+
throw new CliRefusal(`--redraw buys a new draw of candidates, so it has to run the draft stage;`
|
|
163
|
+
+ ` --from ${range.from} starts after it. Use --from capture or --from draft.`, 'improve_redraw_range_invalid');
|
|
164
|
+
}
|
|
165
|
+
if (redraw && IMPROVE_STAGES.indexOf(range.to) < IMPROVE_STAGES.indexOf('pick')) {
|
|
166
|
+
throw new CliRefusal(`--redraw discards the settled pick, so it has to run at least as far as pick;`
|
|
167
|
+
+ ` --to ${range.to} stops before it.`, 'improve_redraw_range_invalid');
|
|
122
168
|
}
|
|
123
169
|
if (kind === 'image') {
|
|
124
170
|
const urlOnly = [
|
|
@@ -136,7 +182,6 @@ export const parseImproveOptions = (args) => {
|
|
|
136
182
|
}
|
|
137
183
|
const outDir = stringFlag(args.flags, 'out-dir')?.trim()
|
|
138
184
|
?? path.join(args.workspaceRoot ?? process.cwd(), `12ui-improve-${improveSlug(value)}`);
|
|
139
|
-
const range = stageRange(args.flags);
|
|
140
185
|
return {
|
|
141
186
|
input: { kind, value },
|
|
142
187
|
...(target ? { target } : {}),
|
|
@@ -145,7 +190,7 @@ export const parseImproveOptions = (args) => {
|
|
|
145
190
|
candidates,
|
|
146
191
|
retain,
|
|
147
192
|
retainFlag,
|
|
148
|
-
pick,
|
|
193
|
+
...(pick ? { pick } : {}),
|
|
149
194
|
conversionModel: conversion,
|
|
150
195
|
responsiveQuality: responsive,
|
|
151
196
|
viewport: size,
|
|
@@ -157,7 +202,9 @@ export const parseImproveOptions = (args) => {
|
|
|
157
202
|
...(repoFlag ? { repo: path.resolve(repoFlag) } : {}),
|
|
158
203
|
planSourceConvert,
|
|
159
204
|
dryRun: booleanFlag(args.flags, 'dry-run'),
|
|
205
|
+
convertStallSeconds: stallSeconds,
|
|
160
206
|
fresh,
|
|
207
|
+
redraw,
|
|
161
208
|
};
|
|
162
209
|
};
|
|
163
210
|
//# sourceMappingURL=improve-options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-options.js","sourceRoot":"","sources":["../src/improve-options.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EACL,WAAW,EACX,UAAU,EACV,WAAW,GAEZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAC;AACjF,OAAO,EACL,6BAA6B,GAE9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAA+B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"improve-options.js","sourceRoot":"","sources":["../src/improve-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type ImproveKitAssetIndex } from './improve-kit-assets.js';
|
|
2
|
+
import { type SourceHint } from './improve-source-hints.js';
|
|
3
|
+
import type { AddedElementSpec } from './improve-added-specs.js';
|
|
4
|
+
import type { ImproveDomDiff } from './improve-dom-diff.js';
|
|
5
|
+
import type { ImproveTokenPatch } from './improve-token-patch.js';
|
|
6
|
+
import type { LayerDiffMatch } from './improve-layerdoc-types.js';
|
|
7
|
+
/**
|
|
8
|
+
* `plan/plan-annotated.md`, readable in its first screen.
|
|
9
|
+
*
|
|
10
|
+
* The old shape opened with every token, one line each carrying up to 54
|
|
11
|
+
* selectors, and buried the hero raster layer under them. A lane that reads
|
|
12
|
+
* top-down met a wall of CSS variables before it ever learned there was a
|
|
13
|
+
* plate to copy. Order now follows what must happen: raster layers, tokens,
|
|
14
|
+
* matched changes, added elements, then a checklist for the commit.
|
|
15
|
+
*/
|
|
16
|
+
export type AnnotatedEntry = LayerDiffMatch & {
|
|
17
|
+
sourceHint: SourceHint;
|
|
18
|
+
};
|
|
19
|
+
export type ImprovePlanMode = 'dom-anchored' | 'layerdoc-anchored' | 'unanchored';
|
|
20
|
+
/** Tokens shown inline; the rest stay in `token-patch.css`, which keeps them all. */
|
|
21
|
+
export declare const IMPROVE_PLAN_TOKEN_LIMIT = 12;
|
|
22
|
+
/** Selectors per token line. Fifty-four on one line is not a readable plan. */
|
|
23
|
+
export declare const IMPROVE_PLAN_SELECTOR_LIMIT = 3;
|
|
24
|
+
export declare const renderImproveAnnotatedPlan: (args: {
|
|
25
|
+
computed: ImproveDomDiff;
|
|
26
|
+
entries: readonly AnnotatedEntry[];
|
|
27
|
+
tokenPatch: ImproveTokenPatch;
|
|
28
|
+
addedSpecs: readonly AddedElementSpec[];
|
|
29
|
+
index: ImproveKitAssetIndex;
|
|
30
|
+
repo?: string;
|
|
31
|
+
mode: ImprovePlanMode;
|
|
32
|
+
}) => string;
|
|
33
|
+
//# sourceMappingURL=improve-plan-annotated-render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-plan-annotated-render.d.ts","sourceRoot":"","sources":["../src/improve-plan-annotated-render.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,oBAAoB,EAE1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAY,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE5E;;;;;;;;GAQG;AAEH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzE,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,mBAAmB,GAAG,YAAY,CAAC;AAElF,qFAAqF;AACrF,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAyK7C,eAAO,MAAM,0BAA0B,GAAI,MAAM;IAC/C,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IACnC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACxC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;CACvB,KAAG,MA2BH,CAAC"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { selectorLabel } from './improve-dom-anchor.js';
|
|
2
|
+
import { formatImproveBounds, improveCarriedRasterLayers, improveFrameMappingLine, } from './improve-kit-assets.js';
|
|
3
|
+
import { renderImproveRasterLayers } from './improve-raster-layers-section.js';
|
|
4
|
+
import { formatImproveSourceHint } from './improve-source-hints.js';
|
|
5
|
+
/** Tokens shown inline; the rest stay in `token-patch.css`, which keeps them all. */
|
|
6
|
+
export const IMPROVE_PLAN_TOKEN_LIMIT = 12;
|
|
7
|
+
/** Selectors per token line. Fifty-four on one line is not a readable plan. */
|
|
8
|
+
export const IMPROVE_PLAN_SELECTOR_LIMIT = 3;
|
|
9
|
+
const MODE_MEANING = {
|
|
10
|
+
'dom-anchored': 'every change below is anchored to a selector the live page really has.',
|
|
11
|
+
'layerdoc-anchored': 'changes come from comparing the source conversion\'s LayerDoc with the'
|
|
12
|
+
+ ' target\'s; there are no page selectors, so placement is by bounds.',
|
|
13
|
+
unanchored: 'no source conversion was bought, so every target element is an independent'
|
|
14
|
+
+ ' specification rather than a diff.',
|
|
15
|
+
};
|
|
16
|
+
const percent = (value) => `${(value * 100).toFixed(1)}%`;
|
|
17
|
+
const header = (args) => [
|
|
18
|
+
'# Annotated implementation plan',
|
|
19
|
+
'',
|
|
20
|
+
'## How to read this plan',
|
|
21
|
+
'',
|
|
22
|
+
`- Mode: **${args.mode}** — ${MODE_MEANING[args.mode]}`,
|
|
23
|
+
`- Coverage ${percent(args.computed.domCoverage)} before-side:`
|
|
24
|
+
+ ' the share of the existing interface\'s elements the target could be matched to.',
|
|
25
|
+
`- Coverage ${percent(args.computed.designCoverage)} target-side:`
|
|
26
|
+
+ ' the share of the target\'s elements that matched something already there.',
|
|
27
|
+
`- Frame: ${improveFrameMappingLine({
|
|
28
|
+
frame: args.computed.beforeCanvas,
|
|
29
|
+
design: args.computed.targetCanvas,
|
|
30
|
+
})}`,
|
|
31
|
+
'- Precedence: assets → tokens → matched changes → added elements. Work them in that order.',
|
|
32
|
+
'- Skip an item only with a stated reason in your report; never skip a raster layer.',
|
|
33
|
+
`- Source repository: ${args.repo ? `\`${args.repo}\`` : 'not supplied; file hints are unresolved'}`,
|
|
34
|
+
'',
|
|
35
|
+
];
|
|
36
|
+
const tokens = (patch) => {
|
|
37
|
+
const lines = ['## Tokens — apply once', '', '- Apply `token-patch.css` through the existing global token or theme entry point.'];
|
|
38
|
+
if (patch.tokens.length === 0) {
|
|
39
|
+
lines.push('- No recurring CSS-capable delta reached the two-node threshold.', '');
|
|
40
|
+
return lines;
|
|
41
|
+
}
|
|
42
|
+
const shown = patch.tokens.slice(0, IMPROVE_PLAN_TOKEN_LIMIT);
|
|
43
|
+
lines.push(...shown.map((token) => {
|
|
44
|
+
const selectors = token.selectors.slice(0, IMPROVE_PLAN_SELECTOR_LIMIT).join(', ');
|
|
45
|
+
const rest = token.selectors.length - IMPROVE_PLAN_SELECTOR_LIMIT;
|
|
46
|
+
return `- \`${token.name}: ${token.value}\` — ${token.count} matched changes;`
|
|
47
|
+
+ ` selectors: ${selectors}${rest > 0 ? ` and ${rest} more` : ''}.`;
|
|
48
|
+
}));
|
|
49
|
+
const remaining = patch.tokens.length - shown.length;
|
|
50
|
+
if (remaining > 0)
|
|
51
|
+
lines.push(`- … and ${remaining} more in \`token-patch.css\`, which keeps every token and every selector.`);
|
|
52
|
+
lines.push('');
|
|
53
|
+
return lines;
|
|
54
|
+
};
|
|
55
|
+
const changeText = (entry) => [
|
|
56
|
+
...entry.deltas.map((delta) => `${delta.field} ${JSON.stringify(delta.before)}→${JSON.stringify(delta.after)}`),
|
|
57
|
+
...(entry.impliedPadding ?? []).map((delta) => `${delta.field} ${delta.before}px→${delta.after}px (${delta.basis})`),
|
|
58
|
+
].join(', ');
|
|
59
|
+
const matchedChanges = (args) => {
|
|
60
|
+
const lines = ['## Matched changes', ''];
|
|
61
|
+
const changed = args.entries.filter((entry) => entry.changed || (entry.impliedPadding?.length ?? 0) > 0);
|
|
62
|
+
if (changed.length === 0) {
|
|
63
|
+
lines.push('_No actionable matched changes._', '');
|
|
64
|
+
return lines;
|
|
65
|
+
}
|
|
66
|
+
const label = (entry) => selectorLabel(args.computed.beforeLeaves[entry.beforeIndex]);
|
|
67
|
+
if (!args.repo) {
|
|
68
|
+
lines.push(...changed.map((entry) => (`- ${label(entry)} — ${formatImproveSourceHint(entry.sourceHint)}: ${changeText(entry)}`)), '');
|
|
69
|
+
return lines;
|
|
70
|
+
}
|
|
71
|
+
const byFile = new Map();
|
|
72
|
+
for (const entry of changed) {
|
|
73
|
+
const file = entry.sourceHint.relativePath ?? 'unresolved file';
|
|
74
|
+
byFile.set(file, [...byFile.get(file) ?? [], entry]);
|
|
75
|
+
}
|
|
76
|
+
const files = [...byFile.entries()].sort(([left], [right]) => ((left === 'unresolved file' ? 1 : 0) - (right === 'unresolved file' ? 1 : 0)
|
|
77
|
+
|| right[1].length - left[1].length
|
|
78
|
+
|| left.localeCompare(right)));
|
|
79
|
+
for (const [file, group] of files) {
|
|
80
|
+
lines.push(`### \`${file}\``, '');
|
|
81
|
+
lines.push(...group.map((entry) => (`- ${label(entry)} — ${formatImproveSourceHint(entry.sourceHint)}: ${changeText(entry)}`)), '');
|
|
82
|
+
}
|
|
83
|
+
return lines;
|
|
84
|
+
};
|
|
85
|
+
const addedBounds = (box) => (box
|
|
86
|
+
? formatImproveBounds({ x: box[0] * 100, y: box[1] * 100, width: box[2] * 100, height: box[3] * 100 })
|
|
87
|
+
: 'bounds not declared');
|
|
88
|
+
const addedElements = (args) => {
|
|
89
|
+
const lines = ['## Added elements — full target specs', ''];
|
|
90
|
+
if (args.addedSpecs.length === 0) {
|
|
91
|
+
lines.push('_None._', '');
|
|
92
|
+
return lines;
|
|
93
|
+
}
|
|
94
|
+
// A raster layer appears here as well as under "Raster layers to carry".
|
|
95
|
+
// Unlabelled, that reads as two work items over one asset, which is the
|
|
96
|
+
// duplicate defect pole: the same cutout placed twice.
|
|
97
|
+
const repeated = args.addedSpecs.some((spec) => args.rasterByIndex.has(spec.designIndex));
|
|
98
|
+
if (repeated) {
|
|
99
|
+
lines.push('Entries that name an asset above are the same item, specified in full. Place each asset once.', '');
|
|
100
|
+
}
|
|
101
|
+
lines.push(...args.addedSpecs.map((spec) => {
|
|
102
|
+
const raster = args.rasterByIndex.get(spec.designIndex);
|
|
103
|
+
const kind = raster?.kind ?? args.computed.targetLeaves[spec.designIndex]?.kind ?? 'layer';
|
|
104
|
+
const file = raster?.asset?.file ?? spec.asset?.destination;
|
|
105
|
+
const bounds = raster
|
|
106
|
+
? formatImproveBounds(raster.bounds)
|
|
107
|
+
: addedBounds(args.computed.targetLeaves[spec.designIndex]?.box);
|
|
108
|
+
const prefix = raster
|
|
109
|
+
? 'already listed under \'Raster layers to carry\' — full specification, place it once; '
|
|
110
|
+
: '';
|
|
111
|
+
return `- Added ${spec.designIndex} (${kind}): ${prefix}asset ${file ? `\`${file}\`` : 'none'};`
|
|
112
|
+
+ ` ${bounds}.`;
|
|
113
|
+
}), '');
|
|
114
|
+
args.addedSpecs.forEach((spec) => lines.push(spec.markdown, ''));
|
|
115
|
+
return lines;
|
|
116
|
+
};
|
|
117
|
+
const checklist = (rasterLayers) => {
|
|
118
|
+
// The same list the section above printed, so the checklist cannot ask for a
|
|
119
|
+
// plate that section deliberately left out.
|
|
120
|
+
const carried = improveCarriedRasterLayers(rasterLayers);
|
|
121
|
+
return [
|
|
122
|
+
'## Before you commit',
|
|
123
|
+
'',
|
|
124
|
+
carried.length > 0
|
|
125
|
+
? `- Every raster layer above is present in the page: ${carried
|
|
126
|
+
.map((layer) => `${layer.kind}${layer.asset ? ` (\`${layer.asset.id}\`)` : ''}`).join(', ')}.`
|
|
127
|
+
: '- Every raster layer above is present in the page.',
|
|
128
|
+
'- Tokens applied at the token layer, not per element.',
|
|
129
|
+
'- Screenshot the page and put it beside `winner.png`.',
|
|
130
|
+
'- No console errors.',
|
|
131
|
+
'- Real content, data, and controls intact.',
|
|
132
|
+
'',
|
|
133
|
+
];
|
|
134
|
+
};
|
|
135
|
+
const guardrails = () => [
|
|
136
|
+
'## Implementation guardrails',
|
|
137
|
+
'',
|
|
138
|
+
'- Preserve all real content, data, and controls. Do not fabricate product features or copy.',
|
|
139
|
+
'- Never approximate an existing asset with CSS: if the LayerDoc declares a raster layer, ship its file.',
|
|
140
|
+
'- In Tailwind v4, verify arbitrary custom-property forms against the installed compiler before using them.',
|
|
141
|
+
'- Quote CSS `url(...)` values when paths contain punctuation or whitespace.',
|
|
142
|
+
'- Update the page content-security policy before introducing any data URI.',
|
|
143
|
+
'- Implement silently. Log only adapted or skipped items and the reason.',
|
|
144
|
+
'',
|
|
145
|
+
];
|
|
146
|
+
export const renderImproveAnnotatedPlan = (args) => {
|
|
147
|
+
const selectorByTargetIndex = new Map();
|
|
148
|
+
for (const entry of args.computed.result.matched) {
|
|
149
|
+
const leaf = args.computed.beforeLeaves[entry.beforeIndex];
|
|
150
|
+
if (leaf?.dom)
|
|
151
|
+
selectorByTargetIndex.set(entry.afterIndex, selectorLabel(leaf));
|
|
152
|
+
}
|
|
153
|
+
const rasterByIndex = new Map(args.index.rasterLayers.map((layer) => [layer.index, layer]));
|
|
154
|
+
return [
|
|
155
|
+
...header({
|
|
156
|
+
computed: args.computed,
|
|
157
|
+
mode: args.mode,
|
|
158
|
+
...(args.repo ? { repo: args.repo } : {}),
|
|
159
|
+
}),
|
|
160
|
+
...renderImproveRasterLayers({
|
|
161
|
+
layers: args.index.rasterLayers,
|
|
162
|
+
placement: (layer) => selectorByTargetIndex.get(layer.index),
|
|
163
|
+
}),
|
|
164
|
+
...tokens(args.tokenPatch),
|
|
165
|
+
...matchedChanges({
|
|
166
|
+
computed: args.computed,
|
|
167
|
+
entries: args.entries,
|
|
168
|
+
...(args.repo ? { repo: args.repo } : {}),
|
|
169
|
+
}),
|
|
170
|
+
...addedElements({ addedSpecs: args.addedSpecs, computed: args.computed, rasterByIndex }),
|
|
171
|
+
...checklist(args.index.rasterLayers),
|
|
172
|
+
...guardrails(),
|
|
173
|
+
].join('\n');
|
|
174
|
+
};
|
|
175
|
+
//# sourceMappingURL=improve-plan-annotated-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-plan-annotated-render.js","sourceRoot":"","sources":["../src/improve-plan-annotated-render.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ImprovePlanMode } from './improve-plan-annotated-render.js';
|
|
1
2
|
import type { ImproveDomDiff } from './improve-dom-diff.js';
|
|
2
3
|
export declare const writeImproveAnnotatedPlan: (args: {
|
|
3
4
|
computed: ImproveDomDiff;
|
|
@@ -5,7 +6,7 @@ export declare const writeImproveAnnotatedPlan: (args: {
|
|
|
5
6
|
targetPath: string;
|
|
6
7
|
outDir: string;
|
|
7
8
|
repo?: string;
|
|
8
|
-
mode:
|
|
9
|
+
mode: ImprovePlanMode;
|
|
9
10
|
}) => Promise<{
|
|
10
11
|
planPath: string;
|
|
11
12
|
tokenPath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improve-plan-annotator.d.ts","sourceRoot":"","sources":["../src/improve-plan-annotator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"improve-plan-annotator.d.ts","sourceRoot":"","sources":["../src/improve-plan-annotator.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAO5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,yBAAyB,GAAU,MAAM;IACpD,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;CACvB,KAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAuDvE,CAAC"}
|