@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.
Files changed (127) hide show
  1. package/SKILL.md +1 -1
  2. package/dist/cli-arguments.d.ts.map +1 -1
  3. package/dist/cli-arguments.js +1 -0
  4. package/dist/cli-arguments.js.map +1 -1
  5. package/dist/cli-conversion-derivation.d.ts +2 -1
  6. package/dist/cli-conversion-derivation.d.ts.map +1 -1
  7. package/dist/cli-conversion-derivation.js +9 -1
  8. package/dist/cli-conversion-derivation.js.map +1 -1
  9. package/dist/cli-convert-command.js +1 -1
  10. package/dist/cli-convert-command.js.map +1 -1
  11. package/dist/cli-draft-command.d.ts +11 -0
  12. package/dist/cli-draft-command.d.ts.map +1 -1
  13. package/dist/cli-draft-command.js +10 -1
  14. package/dist/cli-draft-command.js.map +1 -1
  15. package/dist/cli-help/design.d.ts +1 -1
  16. package/dist/cli-help/design.d.ts.map +1 -1
  17. package/dist/cli-help/design.js +7 -1
  18. package/dist/cli-help/design.js.map +1 -1
  19. package/dist/cli-help/index.d.ts +1 -1
  20. package/dist/cli-improve-command.d.ts.map +1 -1
  21. package/dist/cli-improve-command.js +252 -68
  22. package/dist/cli-improve-command.js.map +1 -1
  23. package/dist/cli-next-command.d.ts.map +1 -1
  24. package/dist/cli-next-command.js +44 -4
  25. package/dist/cli-next-command.js.map +1 -1
  26. package/dist/cli-usage.js +1 -1
  27. package/dist/improve-conversion-attempts.d.ts +92 -0
  28. package/dist/improve-conversion-attempts.d.ts.map +1 -0
  29. package/dist/improve-conversion-attempts.js +88 -0
  30. package/dist/improve-conversion-attempts.js.map +1 -0
  31. package/dist/improve-conversion-stage.d.ts +7 -0
  32. package/dist/improve-conversion-stage.d.ts.map +1 -1
  33. package/dist/improve-conversion-stage.js +197 -30
  34. package/dist/improve-conversion-stage.js.map +1 -1
  35. package/dist/improve-convert-resilience.d.ts +125 -0
  36. package/dist/improve-convert-resilience.d.ts.map +1 -1
  37. package/dist/improve-convert-resilience.js +165 -1
  38. package/dist/improve-convert-resilience.js.map +1 -1
  39. package/dist/improve-delivery-stages.d.ts.map +1 -1
  40. package/dist/improve-delivery-stages.js +1 -0
  41. package/dist/improve-delivery-stages.js.map +1 -1
  42. package/dist/improve-dom-diff.d.ts +2 -0
  43. package/dist/improve-dom-diff.d.ts.map +1 -1
  44. package/dist/improve-dom-diff.js +7 -0
  45. package/dist/improve-dom-diff.js.map +1 -1
  46. package/dist/improve-dom-gate.d.ts +7 -0
  47. package/dist/improve-dom-gate.d.ts.map +1 -1
  48. package/dist/improve-dom-gate.js +13 -0
  49. package/dist/improve-dom-gate.js.map +1 -1
  50. package/dist/improve-generation-stages.d.ts +3 -0
  51. package/dist/improve-generation-stages.d.ts.map +1 -1
  52. package/dist/improve-generation-stages.js +24 -7
  53. package/dist/improve-generation-stages.js.map +1 -1
  54. package/dist/improve-kit-assets.d.ts +129 -0
  55. package/dist/improve-kit-assets.d.ts.map +1 -0
  56. package/dist/improve-kit-assets.js +333 -0
  57. package/dist/improve-kit-assets.js.map +1 -0
  58. package/dist/improve-kit-readme.d.ts +11 -2
  59. package/dist/improve-kit-readme.d.ts.map +1 -1
  60. package/dist/improve-kit-readme.js +192 -26
  61. package/dist/improve-kit-readme.js.map +1 -1
  62. package/dist/improve-kit-stall.d.ts +67 -0
  63. package/dist/improve-kit-stall.d.ts.map +1 -0
  64. package/dist/improve-kit-stall.js +159 -0
  65. package/dist/improve-kit-stall.js.map +1 -0
  66. package/dist/improve-kit-status.d.ts +69 -0
  67. package/dist/improve-kit-status.d.ts.map +1 -0
  68. package/dist/improve-kit-status.js +145 -0
  69. package/dist/improve-kit-status.js.map +1 -0
  70. package/dist/improve-options.d.ts +10 -1
  71. package/dist/improve-options.d.ts.map +1 -1
  72. package/dist/improve-options.js +62 -15
  73. package/dist/improve-options.js.map +1 -1
  74. package/dist/improve-plan-annotated-render.d.ts +33 -0
  75. package/dist/improve-plan-annotated-render.d.ts.map +1 -0
  76. package/dist/improve-plan-annotated-render.js +175 -0
  77. package/dist/improve-plan-annotated-render.js.map +1 -0
  78. package/dist/improve-plan-annotator.d.ts +2 -1
  79. package/dist/improve-plan-annotator.d.ts.map +1 -1
  80. package/dist/improve-plan-annotator.js +21 -45
  81. package/dist/improve-plan-annotator.js.map +1 -1
  82. package/dist/improve-raster-layers-section.d.ts +21 -0
  83. package/dist/improve-raster-layers-section.d.ts.map +1 -0
  84. package/dist/improve-raster-layers-section.js +45 -0
  85. package/dist/improve-raster-layers-section.js.map +1 -0
  86. package/dist/improve-reset.d.ts +122 -0
  87. package/dist/improve-reset.d.ts.map +1 -0
  88. package/dist/improve-reset.js +141 -0
  89. package/dist/improve-reset.js.map +1 -0
  90. package/dist/improve-run-summary.d.ts +35 -0
  91. package/dist/improve-run-summary.d.ts.map +1 -0
  92. package/dist/improve-run-summary.js +134 -0
  93. package/dist/improve-run-summary.js.map +1 -0
  94. package/dist/improve-stage-shared.d.ts +5 -0
  95. package/dist/improve-stage-shared.d.ts.map +1 -1
  96. package/dist/improve-stage-shared.js.map +1 -1
  97. package/dist/improve-stop-handler.d.ts +73 -0
  98. package/dist/improve-stop-handler.d.ts.map +1 -0
  99. package/dist/improve-stop-handler.js +126 -0
  100. package/dist/improve-stop-handler.js.map +1 -0
  101. package/dist/improve-terminal-event.d.ts +118 -0
  102. package/dist/improve-terminal-event.d.ts.map +1 -0
  103. package/dist/improve-terminal-event.js +81 -0
  104. package/dist/improve-terminal-event.js.map +1 -0
  105. package/dist/improve-workspace.d.ts +15 -0
  106. package/dist/improve-workspace.d.ts.map +1 -1
  107. package/dist/improve-workspace.js +3 -0
  108. package/dist/improve-workspace.js.map +1 -1
  109. package/dist/legacy-skill-catalog.d.ts.map +1 -1
  110. package/dist/legacy-skill-catalog.js +20 -0
  111. package/dist/legacy-skill-catalog.js.map +1 -1
  112. package/dist/redesign-capture.d.ts +16 -0
  113. package/dist/redesign-capture.d.ts.map +1 -1
  114. package/dist/redesign-capture.js +49 -3
  115. package/dist/redesign-capture.js.map +1 -1
  116. package/dist/run-journal-unfinished.d.ts +56 -0
  117. package/dist/run-journal-unfinished.d.ts.map +1 -0
  118. package/dist/run-journal-unfinished.js +126 -0
  119. package/dist/run-journal-unfinished.js.map +1 -0
  120. package/dist/run-journal.d.ts +25 -1
  121. package/dist/run-journal.d.ts.map +1 -1
  122. package/dist/run-journal.js +15 -1
  123. package/dist/run-journal.js.map +1 -1
  124. package/open-design.json +2 -2
  125. package/package.json +1 -1
  126. package/skills/12ui-design/SKILL.md +2 -0
  127. package/skills/12ui-design/improve.md +67 -5
@@ -4,6 +4,7 @@ import sharp from 'sharp';
4
4
  import { runDraftCommand } from './cli-draft-command.js';
5
5
  import { CliRefusal } from './cli-refusal.js';
6
6
  import { draftPaths, readDraftRecord } from './draft-workspace.js';
7
+ import { abandonImproveConversions, withoutImproveStages } from './improve-reset.js';
7
8
  import { captureImprovePage, parseImproveBootstrap } from './redesign-capture.js';
8
9
  import { improveSha256, noteImproveStage, } from './improve-stage-shared.js';
9
10
  import { writeImproveRecord, } from './improve-workspace.js';
@@ -108,6 +109,10 @@ export const runImproveDraftStage = async (args) => {
108
109
  workspaceRoot: stateRoot,
109
110
  write: () => undefined,
110
111
  warn: args.dependencies.warn,
112
+ // The reference is `capture/source.png`, which improve just took of the page
113
+ // being improved. Draft's build-route notice would tell every improve run to
114
+ // convert that screenshot instead — the one thing the run is not for.
115
+ referenceFromCapture: true,
111
116
  });
112
117
  const materialized = await materializedCandidates(result);
113
118
  await mkdir(args.options.paths.candidatesDir, { recursive: true });
@@ -135,27 +140,39 @@ export const runImproveDraftStage = async (args) => {
135
140
  export const runImprovePickStage = async (args) => {
136
141
  if (!args.record.draft)
137
142
  throw new Error('Cannot pick before draft');
138
- const candidate = args.record.draft.candidates.find((entry) => entry.slot === args.options.pick);
143
+ const candidate = args.record.draft.candidates.find((entry) => entry.slot === args.pick);
139
144
  if (!candidate)
140
- throw new CliRefusal(`Candidate ${args.options.pick} was not materialized`, 'improve_pick_missing');
145
+ throw new CliRefusal(`Candidate ${args.pick} was not materialized`, 'improve_pick_missing');
141
146
  if (args.record.pick?.slot === candidate.slot)
142
147
  return noteImproveStage({
143
148
  record: args.record, stage: 'pick', priceCeilingUsd: args.price, replayed: true, write: true,
144
149
  });
145
150
  await copyFile(candidate.path, args.options.paths.winnerImage);
151
+ // Changing the winner discards a conversion somebody paid for. It used to be
152
+ // deleted with `target/` and never written down; notion's kit shows the shape
153
+ // of the cost — an abandoned conversion emitted paid progress for 55 minutes
154
+ // while a second process converted the candidate that was actually chosen.
155
+ // Nothing here can stop it: the hosted API has no cancel verb, and the polls
156
+ // it stops making were free. All this can do is name what was dropped.
157
+ let carried = args.record;
146
158
  if (args.record.pick) {
159
+ const abandoned = await abandonImproveConversions({
160
+ record: carried,
161
+ reason: `pick changed from ${args.record.pick.slot} to ${candidate.slot}`,
162
+ warn: args.dependencies?.warn ?? ((line) => { console.warn(line); }),
163
+ });
164
+ carried = abandoned.record;
165
+ if (abandoned.id) {
166
+ args.dependencies?.journal?.note({ degradations: ['improve_pick_abandoned_conversion'] });
167
+ }
147
168
  await Promise.all([
148
169
  rm(args.options.paths.targetDir, { recursive: true, force: true }),
149
170
  rm(args.options.paths.planDir, { recursive: true, force: true }),
150
171
  ]);
151
172
  }
152
173
  let record = {
153
- ...args.record,
174
+ ...(args.record.pick ? withoutImproveStages(carried, ['convert', 'plan']) : carried),
154
175
  pick: { slot: candidate.slot, imagePath: args.options.paths.winnerImage, sha256: candidate.sha256 },
155
- ...(args.record.pick ? { convert: undefined, plan: undefined } : {}),
156
- stages: args.record.pick
157
- ? Object.fromEntries(Object.entries(args.record.stages).filter(([stage]) => !['convert', 'plan'].includes(stage)))
158
- : args.record.stages,
159
176
  };
160
177
  record = await noteImproveStage({
161
178
  record, stage: 'pick', priceCeilingUsd: args.price, replayed: false, write: false,
@@ -1 +1 @@
1
- {"version":3,"file":"improve-generation-stages.js","sourceRoot":"","sources":["../src/improve-generation-stages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"improve-generation-stages.js","sourceRoot":"","sources":["../src/improve-generation-stages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import type { LayerBox } from './improve-layerdoc-types.js';
2
+ /**
3
+ * What the kit's extracted files ARE, named once.
4
+ *
5
+ * Two overnight lanes threw the design away because nothing in the kit said
6
+ * that `cutout-1-….png` was the hero artwork and `clean-0-….png` was the same
7
+ * backdrop with that artwork removed. One of them hand-drew the ribbon in CSS
8
+ * and crushed the plate under a 64% scrim. The role wording below is the fixed
9
+ * answer, and every renderer — README, plan, stall report — reads it from here
10
+ * so no two surfaces can describe the same file differently.
11
+ */
12
+ /** A layer covering at least this share of the canvas is the page's imagery, not a detail. */
13
+ export declare const IMPROVE_HERO_COVERAGE = 0.25;
14
+ /** The most a readability scrim may dim a plate before it is destroying the design. */
15
+ export declare const IMPROVE_SCRIM_MAX_OPACITY_PCT = 35;
16
+ export type ImproveAssetRole = 'clean-plate' | 'cutout' | 'upscaled-plate' | 'upscaled-region' | 'source-crop' | 'prepared-source' | 'design' | 'other';
17
+ export type ImproveAssetRoleCopy = {
18
+ label: string;
19
+ instruction: string;
20
+ };
21
+ /**
22
+ * Whether a reader copies this file into the repository.
23
+ *
24
+ * The kit's first instruction used to be "copy the files the table names",
25
+ * which named `winner.png` and both resolutions of every layer alongside the
26
+ * one file that actually carries a layer's pixels. Each row now says which of
27
+ * the three it is, so the instruction and the guardrails agree.
28
+ */
29
+ export type ImproveShipDisposition = 'ship' | 'alternate resolution' | typeof IMPROVE_ALTERNATE_BACKDROP | 'reference only';
30
+ /**
31
+ * The disposition of every clean plate that is not the page's backdrop.
32
+ *
33
+ * A conversion can emit several: `clean-0` is the backdrop with the artwork
34
+ * removed, `clean-1` is that same backdrop with a further layer removed too.
35
+ * Both used to read `ship`, with no layer and no placement, and a lane shipped
36
+ * `clean-1` — a page whose backdrop had erased the layer nothing else replaced.
37
+ */
38
+ export declare const IMPROVE_ALTERNATE_BACKDROP: "alternate backdrop (only if that layer is omitted)";
39
+ export declare const IMPROVE_ASSET_ROLE_COPY: Record<ImproveAssetRole, ImproveAssetRoleCopy>;
40
+ export type ImproveBoundsPct = {
41
+ x: number;
42
+ y: number;
43
+ width: number;
44
+ height: number;
45
+ };
46
+ export type ImproveKitAsset = {
47
+ /** Manifest artifact id, e.g. `cutout-1`. */
48
+ id: string;
49
+ /** Kit-relative path, so the row is copy-pasteable from the kit root. */
50
+ file: string;
51
+ role: ImproveAssetRole;
52
+ roleLabel: string;
53
+ instruction: string;
54
+ /** The LayerDoc layer this file belongs to, when the document declares one. */
55
+ layer?: {
56
+ kind: string;
57
+ name: string;
58
+ index: number;
59
+ };
60
+ bounds?: ImproveBoundsPct;
61
+ /** Share of the canvas the owning layer covers, 0-1. */
62
+ coverage?: number;
63
+ hero: boolean;
64
+ /** The declared file is actually in the kit. */
65
+ present: boolean;
66
+ /** Copy it in, keep it as an alternate, or read it only. */
67
+ ship: ImproveShipDisposition;
68
+ };
69
+ export type ImproveRasterLayer = {
70
+ /** Index into `flattenLayerDoc(document)`, which is the diff's `afterIndex`. */
71
+ index: number;
72
+ kind: string;
73
+ name: string;
74
+ bounds: ImproveBoundsPct;
75
+ coverage: number;
76
+ hero: boolean;
77
+ /** The one file that carries this layer's pixels. */
78
+ asset?: ImproveKitAsset;
79
+ /** Other resolutions or lineages of the same layer; ship one, not all. */
80
+ alternates: ImproveKitAsset[];
81
+ };
82
+ export type ImproveKitAssetIndex = {
83
+ canvas?: {
84
+ width: number;
85
+ height: number;
86
+ };
87
+ assets: ImproveKitAsset[];
88
+ rasterLayers: ImproveRasterLayer[];
89
+ layerDocPresent: boolean;
90
+ manifestPresent: boolean;
91
+ };
92
+ export declare const boundsPct: (box: LayerBox, canvas: {
93
+ width: number;
94
+ height: number;
95
+ }) => ImproveBoundsPct;
96
+ /**
97
+ * Which frame the percentages above belong to.
98
+ *
99
+ * A lane read the plan's bounds as pixels of `winner.png` and placed every
100
+ * layer short: the design is its own size (1536x1024 in that run) while the
101
+ * page being rebuilt is the capture frame (1440x900). A percentage is the same
102
+ * number in both frames, so the fix is one line naming the frame — rendered
103
+ * from here so the README and the plan cannot word it differently.
104
+ */
105
+ export declare const improveFrameMappingLine: (args: {
106
+ frame?: {
107
+ width: number;
108
+ height: number;
109
+ };
110
+ design?: {
111
+ width: number;
112
+ height: number;
113
+ };
114
+ }) => string;
115
+ export declare const formatImproveBounds: (bounds: ImproveBoundsPct) => string;
116
+ /** A plate the README calls an alternate must never be listed as one to carry. */
117
+ export declare const isImproveAlternateBackdrop: (asset?: ImproveKitAsset) => boolean;
118
+ /** The raster layers a plan tells a reader to copy in: alternates are not among them. */
119
+ export declare const improveCarriedRasterLayers: (layers: readonly ImproveRasterLayer[]) => ImproveRasterLayer[];
120
+ /**
121
+ * Read the kit's LayerDoc and asset manifest into one table the README, the
122
+ * plan, and the stall report all render from.
123
+ */
124
+ export declare const readImproveKitAssets: (args: {
125
+ runDir: string;
126
+ layerDocPath: string;
127
+ document?: unknown;
128
+ }) => Promise<ImproveKitAssetIndex>;
129
+ //# sourceMappingURL=improve-kit-assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-kit-assets.d.ts","sourceRoot":"","sources":["../src/improve-kit-assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,333 @@
1
+ import { readFile, readdir, stat } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { flattenLayerDoc, isRecord } from './improve-layerdoc-diff.js';
4
+ /**
5
+ * What the kit's extracted files ARE, named once.
6
+ *
7
+ * Two overnight lanes threw the design away because nothing in the kit said
8
+ * that `cutout-1-….png` was the hero artwork and `clean-0-….png` was the same
9
+ * backdrop with that artwork removed. One of them hand-drew the ribbon in CSS
10
+ * and crushed the plate under a 64% scrim. The role wording below is the fixed
11
+ * answer, and every renderer — README, plan, stall report — reads it from here
12
+ * so no two surfaces can describe the same file differently.
13
+ */
14
+ /** A layer covering at least this share of the canvas is the page's imagery, not a detail. */
15
+ export const IMPROVE_HERO_COVERAGE = 0.25;
16
+ /** The most a readability scrim may dim a plate before it is destroying the design. */
17
+ export const IMPROVE_SCRIM_MAX_OPACITY_PCT = 35;
18
+ /**
19
+ * The disposition of every clean plate that is not the page's backdrop.
20
+ *
21
+ * A conversion can emit several: `clean-0` is the backdrop with the artwork
22
+ * removed, `clean-1` is that same backdrop with a further layer removed too.
23
+ * Both used to read `ship`, with no layer and no placement, and a lane shipped
24
+ * `clean-1` — a page whose backdrop had erased the layer nothing else replaced.
25
+ */
26
+ export const IMPROVE_ALTERNATE_BACKDROP = 'alternate backdrop (only if that layer is omitted)';
27
+ export const IMPROVE_ASSET_ROLE_COPY = {
28
+ 'clean-plate': {
29
+ label: 'clean plate',
30
+ instruction: 'the backdrop with the foreground artwork removed.'
31
+ + ' Use it as the background layer, at full strength.',
32
+ },
33
+ cutout: {
34
+ label: 'cutout',
35
+ instruction: 'the foreground artwork as an alpha PNG. This is the imagery.'
36
+ + ' Copy it into the repo and place it at its bounds; never redraw it in CSS.',
37
+ },
38
+ 'upscaled-plate': {
39
+ label: 'upscaled plate',
40
+ instruction: 'a higher-resolution copy of a plate for crisp rendering;'
41
+ + ' pick one resolution, do not ship both.',
42
+ },
43
+ 'upscaled-region': {
44
+ label: 'upscaled region',
45
+ instruction: 'a higher-resolution copy of a region for crisp rendering;'
46
+ + ' pick one resolution, do not ship both.',
47
+ },
48
+ 'source-crop': {
49
+ label: 'source crop',
50
+ instruction: 'the layer cropped straight out of the source image.'
51
+ + ' Prefer that layer\'s cutout when one exists.',
52
+ },
53
+ 'prepared-source': {
54
+ label: 'prepared source',
55
+ instruction: 'the normalized image the conversion read; the same picture as `winner.png`.',
56
+ },
57
+ design: {
58
+ label: 'winner.png',
59
+ instruction: 'the whole design; the reference for every visual decision.',
60
+ },
61
+ other: {
62
+ label: 'extracted artifact',
63
+ instruction: 'an extracted artifact the conversion produced for a layer.',
64
+ },
65
+ };
66
+ /** Artifact keys a LayerDoc leaf may carry, best carrier first. */
67
+ const CARRIER_PREFERENCE = ['cutout', 'plate', 'crop', 'region2x', 'plate2x'];
68
+ const ROLE_BY_MANIFEST = {
69
+ 'cleaned-plate': 'clean-plate',
70
+ 'layer-cutout': 'cutout',
71
+ 'layer-crop': 'source-crop',
72
+ 'upscaled-plate': 'upscaled-plate',
73
+ 'upscaled-region': 'upscaled-region',
74
+ source: 'prepared-source',
75
+ };
76
+ const ROLE_BY_ID_PREFIX = [
77
+ ['upscaled-plate-', 'upscaled-plate'],
78
+ ['upscaled-region-', 'upscaled-region'],
79
+ ['clean-', 'clean-plate'],
80
+ ['cutout-', 'cutout'],
81
+ ['crop-', 'source-crop'],
82
+ ];
83
+ /**
84
+ * What a file is for before the LayerDoc's layers are known. A carrier that no
85
+ * layer claims is still a carrier: only the resolution aids and the two
86
+ * whole-design references are never copied in.
87
+ */
88
+ const dispositionByRole = (role) => {
89
+ if (role === 'design' || role === 'prepared-source')
90
+ return 'reference only';
91
+ if (role === 'upscaled-plate' || role === 'upscaled-region')
92
+ return 'alternate resolution';
93
+ return 'ship';
94
+ };
95
+ const assetRole = (id, manifestRole) => {
96
+ if (typeof manifestRole === 'string' && ROLE_BY_MANIFEST[manifestRole]) {
97
+ return ROLE_BY_MANIFEST[manifestRole];
98
+ }
99
+ if (id === 'source')
100
+ return 'prepared-source';
101
+ return ROLE_BY_ID_PREFIX.find(([prefix]) => id.startsWith(prefix))?.[1] ?? 'other';
102
+ };
103
+ const boxOfLeaf = (leaf) => (Array.isArray(leaf.box) && leaf.box.length === 4
104
+ && leaf.box.every((value) => typeof value === 'number' && Number.isFinite(value))
105
+ ? leaf.box
106
+ : undefined);
107
+ const layerName = (leaf) => {
108
+ const named = leaf.name;
109
+ const content = typeof leaf.content === 'string' && leaf.content.trim() ? leaf.content.trim() : undefined;
110
+ if (content)
111
+ return content;
112
+ if (typeof named === 'string' && named.trim())
113
+ return named.trim();
114
+ return leaf.kind ?? 'layer';
115
+ };
116
+ const artifactIdsOf = (leaf) => {
117
+ const artifacts = leaf.artifacts;
118
+ if (!isRecord(artifacts))
119
+ return [];
120
+ return Object.entries(artifacts).flatMap(([key, value]) => (isRecord(value) && typeof value.artifactId === 'string'
121
+ ? [{ key, id: value.artifactId }]
122
+ : [])).sort((left, right) => {
123
+ const rank = (key) => {
124
+ const index = CARRIER_PREFERENCE.indexOf(key);
125
+ return index < 0 ? CARRIER_PREFERENCE.length : index;
126
+ };
127
+ return rank(left.key) - rank(right.key);
128
+ });
129
+ };
130
+ export const boundsPct = (box, canvas) => ({
131
+ x: (box[0] / canvas.width) * 100,
132
+ y: (box[1] / canvas.height) * 100,
133
+ width: (box[2] / canvas.width) * 100,
134
+ height: (box[3] / canvas.height) * 100,
135
+ });
136
+ /**
137
+ * Which frame the percentages above belong to.
138
+ *
139
+ * A lane read the plan's bounds as pixels of `winner.png` and placed every
140
+ * layer short: the design is its own size (1536x1024 in that run) while the
141
+ * page being rebuilt is the capture frame (1440x900). A percentage is the same
142
+ * number in both frames, so the fix is one line naming the frame — rendered
143
+ * from here so the README and the plan cannot word it differently.
144
+ */
145
+ export const improveFrameMappingLine = (args) => {
146
+ const size = (value) => (value ? ` (${value.width}\u00d7${value.height})` : '');
147
+ return `Bounds are % of the capture frame${size(args.frame)};`
148
+ + ` \`winner.png\` is the design at its own size${size(args.design)};`
149
+ + ' place by percentage, not by pixel.';
150
+ };
151
+ export const formatImproveBounds = (bounds) => (`x ${bounds.x.toFixed(1)}%, y ${bounds.y.toFixed(1)}%,`
152
+ + ` ${bounds.width.toFixed(1)}% × ${bounds.height.toFixed(1)}% of the canvas`);
153
+ const canvasOf = (document) => {
154
+ if (!isRecord(document) || !isRecord(document.canvas))
155
+ return undefined;
156
+ const { width, height } = document.canvas;
157
+ return typeof width === 'number' && typeof height === 'number' && width > 0 && height > 0
158
+ ? { width, height }
159
+ : undefined;
160
+ };
161
+ const readJson = async (file) => {
162
+ try {
163
+ return JSON.parse(await readFile(file, 'utf8'));
164
+ }
165
+ catch {
166
+ return undefined;
167
+ }
168
+ };
169
+ const fileExists = async (file) => Boolean(await stat(file).then(() => true).catch(() => false));
170
+ /**
171
+ * Resolve one manifest artifact to a file that is actually in this kit.
172
+ *
173
+ * `localPath` is absolute and recorded where the conversion ran, so a moved or
174
+ * copied kit resolves through the basename first. A directory scan closes the
175
+ * remaining gap: freshdesk's kit holds two files for `clean-0` from two
176
+ * attempts, and only the manifest says which one the LayerDoc means.
177
+ */
178
+ const resolveAssetFile = async (args) => {
179
+ const declared = typeof args.localPath === 'string' && args.localPath ? args.localPath : undefined;
180
+ const basename = declared ? path.basename(declared) : undefined;
181
+ if (basename) {
182
+ const local = path.join(args.assetsDir, basename);
183
+ if (await fileExists(local))
184
+ return { absolute: local, present: true };
185
+ }
186
+ const scanned = args.names.find((name) => name.startsWith(`${args.id}-`) || name === args.id);
187
+ if (scanned)
188
+ return { absolute: path.join(args.assetsDir, scanned), present: true };
189
+ if (declared && await fileExists(declared))
190
+ return { absolute: declared, present: true };
191
+ return { absolute: path.join(args.assetsDir, basename ?? args.id), present: false };
192
+ };
193
+ /** The number a `clean-N`, `cutout-N`, or `crop-N` id carries. */
194
+ const artifactNumber = (id) => {
195
+ const match = /-(\d+)$/u.exec(id);
196
+ return match ? Number(match[1]) : undefined;
197
+ };
198
+ /**
199
+ * Exactly one clean plate is the page's backdrop; the rest are alternates.
200
+ *
201
+ * The document settles which: the plate a background layer references, or —
202
+ * when no layer references one at all — the plate whose number pairs with the
203
+ * largest decoration, because that is the layer it erased. Everything else is
204
+ * the same backdrop minus a further layer, so it is only the background if that
205
+ * layer is left out. Marking them all `ship` is what let a lane ship `clean-1`.
206
+ */
207
+ const classifyCleanPlates = (args) => {
208
+ const plates = args.assets.filter((asset) => asset.role === 'clean-plate');
209
+ if (plates.length < 2)
210
+ return;
211
+ const layerByNumber = new Map();
212
+ for (const layer of args.rasterLayers) {
213
+ for (const asset of [layer.asset, ...layer.alternates]) {
214
+ const number = asset ? artifactNumber(asset.id) : undefined;
215
+ if (number !== undefined && !layerByNumber.has(number))
216
+ layerByNumber.set(number, layer);
217
+ }
218
+ }
219
+ const pairedWith = (plate) => {
220
+ const number = artifactNumber(plate.id);
221
+ return number === undefined ? undefined : layerByNumber.get(number);
222
+ };
223
+ const carried = new Set(args.rasterLayers.flatMap((layer) => (layer.asset ? [layer.asset.id] : [])));
224
+ const base = plates.find((plate) => plate.layer?.kind === 'background' && carried.has(plate.id))
225
+ ?? [...plates].sort((left, right) => ((pairedWith(right)?.coverage ?? -1) - (pairedWith(left)?.coverage ?? -1)
226
+ || left.id.localeCompare(right.id)))[0];
227
+ for (const plate of plates) {
228
+ if (plate.id === base?.id) {
229
+ plate.ship = 'ship';
230
+ continue;
231
+ }
232
+ const paired = pairedWith(plate);
233
+ plate.ship = IMPROVE_ALTERNATE_BACKDROP;
234
+ plate.instruction = 'the same backdrop with '
235
+ + (paired ? `the ${paired.kind} \`${paired.name}\`` : 'a further layer')
236
+ + ' removed as well. It is the background only if you omit that layer;'
237
+ + ' otherwise ship the base clean plate.';
238
+ }
239
+ };
240
+ /** A plate the README calls an alternate must never be listed as one to carry. */
241
+ export const isImproveAlternateBackdrop = (asset) => (asset?.ship === IMPROVE_ALTERNATE_BACKDROP);
242
+ /** The raster layers a plan tells a reader to copy in: alternates are not among them. */
243
+ export const improveCarriedRasterLayers = (layers) => layers.filter((layer) => !isImproveAlternateBackdrop(layer.asset));
244
+ /**
245
+ * Read the kit's LayerDoc and asset manifest into one table the README, the
246
+ * plan, and the stall report all render from.
247
+ */
248
+ export const readImproveKitAssets = async (args) => {
249
+ const document = args.document ?? await readJson(args.layerDocPath);
250
+ const layerDocPresent = document !== undefined;
251
+ const canvas = canvasOf(document);
252
+ const assetsDir = `${args.layerDocPath}.assets`;
253
+ const manifest = await readJson(path.join(assetsDir, 'manifest.json'));
254
+ const declared = isRecord(manifest) && Array.isArray(manifest.artifacts)
255
+ ? manifest.artifacts
256
+ : [];
257
+ const names = await readdir(assetsDir).catch(() => []);
258
+ const leaves = flattenLayerDoc(document);
259
+ const ownerById = new Map();
260
+ leaves.forEach((leaf, index) => {
261
+ for (const { key, id } of artifactIdsOf(leaf)) {
262
+ if (!ownerById.has(id))
263
+ ownerById.set(id, { leaf, index, key });
264
+ }
265
+ });
266
+ const assets = [];
267
+ for (const artifact of declared) {
268
+ const id = typeof artifact.id === 'string' ? artifact.id : undefined;
269
+ if (!id)
270
+ continue;
271
+ const resolved = await resolveAssetFile({ id, localPath: artifact.localPath, assetsDir, names });
272
+ const owner = ownerById.get(id);
273
+ const box = owner ? boxOfLeaf(owner.leaf) : undefined;
274
+ const bounds = box && canvas ? boundsPct(box, canvas) : undefined;
275
+ const coverage = bounds ? (bounds.width / 100) * (bounds.height / 100) : undefined;
276
+ const role = assetRole(id, artifact.role);
277
+ assets.push({
278
+ id,
279
+ file: path.relative(args.runDir, resolved.absolute),
280
+ role,
281
+ roleLabel: IMPROVE_ASSET_ROLE_COPY[role].label,
282
+ instruction: IMPROVE_ASSET_ROLE_COPY[role].instruction,
283
+ ...(owner ? { layer: { kind: owner.leaf.kind ?? 'layer', name: layerName(owner.leaf), index: owner.index } } : {}),
284
+ ...(bounds ? { bounds } : {}),
285
+ ...(coverage === undefined ? {} : { coverage }),
286
+ hero: coverage !== undefined && coverage >= IMPROVE_HERO_COVERAGE,
287
+ present: resolved.present,
288
+ ship: dispositionByRole(role),
289
+ });
290
+ }
291
+ assets.sort((left, right) => ((right.coverage ?? -1) - (left.coverage ?? -1) || left.id.localeCompare(right.id)));
292
+ const byId = new Map(assets.map((asset) => [asset.id, asset]));
293
+ const rasterLayers = [];
294
+ leaves.forEach((leaf, index) => {
295
+ const ids = artifactIdsOf(leaf);
296
+ if (ids.length === 0)
297
+ return;
298
+ const box = boxOfLeaf(leaf);
299
+ if (!box || !canvas)
300
+ return;
301
+ const bounds = boundsPct(box, canvas);
302
+ const coverage = (bounds.width / 100) * (bounds.height / 100);
303
+ const carried = ids.map(({ id }) => byId.get(id)).filter((asset) => Boolean(asset));
304
+ rasterLayers.push({
305
+ index,
306
+ kind: leaf.kind ?? 'layer',
307
+ name: layerName(leaf),
308
+ bounds,
309
+ coverage,
310
+ hero: coverage >= IMPROVE_HERO_COVERAGE,
311
+ ...(carried[0] ? { asset: carried[0] } : {}),
312
+ alternates: carried.slice(1),
313
+ });
314
+ });
315
+ rasterLayers.sort((left, right) => right.coverage - left.coverage || left.index - right.index);
316
+ // The LayerDoc settles it: the carrier a layer names is the file to ship, and
317
+ // every other artifact of that layer is an alternate resolution of it.
318
+ for (const layer of rasterLayers) {
319
+ if (layer.asset)
320
+ layer.asset.ship = 'ship';
321
+ for (const alternate of layer.alternates)
322
+ alternate.ship = 'alternate resolution';
323
+ }
324
+ classifyCleanPlates({ assets, rasterLayers });
325
+ return {
326
+ ...(canvas ? { canvas } : {}),
327
+ assets,
328
+ rasterLayers,
329
+ layerDocPresent,
330
+ manifestPresent: declared.length > 0,
331
+ };
332
+ };
333
+ //# sourceMappingURL=improve-kit-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-kit-assets.js","sourceRoot":"","sources":["../src/improve-kit-assets.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,12 @@
1
- import type { ImproveRecord } from './improve-workspace.js';
2
- export declare const writeImproveReadme: (record: ImproveRecord) => Promise<string>;
1
+ import { type ImproveKitAssetIndex } from './improve-kit-assets.js';
2
+ import { type ImproveKitStatus } from './improve-kit-status.js';
3
+ import { type ImproveRecord, type ImproveStage } from './improve-workspace.js';
4
+ export declare const renderImproveReadme: (args: {
5
+ record: ImproveRecord;
6
+ status: ImproveKitStatus;
7
+ index: ImproveKitAssetIndex;
8
+ }) => string;
9
+ export declare const writeImproveReadme: (record: ImproveRecord, context?: {
10
+ requestedTo?: ImproveStage;
11
+ }) => Promise<string>;
3
12
  //# sourceMappingURL=improve-kit-readme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"improve-kit-readme.d.ts","sourceRoot":"","sources":["../src/improve-kit-readme.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,eAAO,MAAM,kBAAkB,GAAU,QAAQ,aAAa,KAAG,OAAO,CAAC,MAAM,CA4B9E,CAAC"}
1
+ {"version":3,"file":"improve-kit-readme.d.ts","sourceRoot":"","sources":["../src/improve-kit-readme.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAgB,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AA+N7F,eAAO,MAAM,mBAAmB,GAAI,MAAM;IACxC,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,oBAAoB,CAAC;CAC7B,KAAG,MAkBQ,CAAC;AAEb,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,aAAa,EACrB,UAAS;IAAE,WAAW,CAAC,EAAE,YAAY,CAAA;CAAO,KAC3C,OAAO,CAAC,MAAM,CAQhB,CAAC"}