@12ui/design 0.2.48 → 0.2.49

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 (119) hide show
  1. package/SKILL.md +1 -1
  2. package/dist/branch-page-conversion.d.ts +4 -1
  3. package/dist/branch-page-conversion.d.ts.map +1 -1
  4. package/dist/branch-page-conversion.js +27 -17
  5. package/dist/branch-page-conversion.js.map +1 -1
  6. package/dist/branch-run-record.d.ts +2 -0
  7. package/dist/branch-run-record.d.ts.map +1 -1
  8. package/dist/branch-run-record.js.map +1 -1
  9. package/dist/cli-draft-command.d.ts +11 -5
  10. package/dist/cli-draft-command.d.ts.map +1 -1
  11. package/dist/cli-draft-command.js +37 -35
  12. package/dist/cli-draft-command.js.map +1 -1
  13. package/dist/cli-help/design.d.ts +10 -0
  14. package/dist/cli-help/design.d.ts.map +1 -1
  15. package/dist/cli-help/design.js +29 -0
  16. package/dist/cli-help/design.js.map +1 -1
  17. package/dist/cli-help/index.d.ts +11 -0
  18. package/dist/cli-help/index.d.ts.map +1 -1
  19. package/dist/cli-help/index.js +18 -2
  20. package/dist/cli-help/index.js.map +1 -1
  21. package/dist/cli-next-command.d.ts.map +1 -1
  22. package/dist/cli-next-command.js +26 -14
  23. package/dist/cli-next-command.js.map +1 -1
  24. package/dist/cli-progress.d.ts +2 -0
  25. package/dist/cli-progress.d.ts.map +1 -1
  26. package/dist/cli-progress.js +2 -0
  27. package/dist/cli-progress.js.map +1 -1
  28. package/dist/cli-redesign-command.d.ts +42 -0
  29. package/dist/cli-redesign-command.d.ts.map +1 -0
  30. package/dist/cli-redesign-command.js +520 -0
  31. package/dist/cli-redesign-command.js.map +1 -0
  32. package/dist/cli-run.d.ts.map +1 -1
  33. package/dist/cli-run.js +8 -0
  34. package/dist/cli-run.js.map +1 -1
  35. package/dist/cli-usage.d.ts.map +1 -1
  36. package/dist/cli-usage.js +8 -1
  37. package/dist/cli-usage.js.map +1 -1
  38. package/dist/draft-dispatch-attempt.d.ts +0 -7
  39. package/dist/draft-dispatch-attempt.d.ts.map +1 -1
  40. package/dist/draft-dispatch-attempt.js +1 -25
  41. package/dist/draft-dispatch-attempt.js.map +1 -1
  42. package/dist/draft-identity.d.ts +2 -0
  43. package/dist/draft-identity.d.ts.map +1 -1
  44. package/dist/draft-identity.js +1 -0
  45. package/dist/draft-identity.js.map +1 -1
  46. package/dist/draft-run.d.ts +2 -0
  47. package/dist/draft-run.d.ts.map +1 -1
  48. package/dist/draft-run.js +4 -3
  49. package/dist/draft-run.js.map +1 -1
  50. package/dist/package-client.d.ts +11 -0
  51. package/dist/package-client.d.ts.map +1 -1
  52. package/dist/package-client.js.map +1 -1
  53. package/dist/package-submission.d.ts +12 -0
  54. package/dist/package-submission.d.ts.map +1 -1
  55. package/dist/package-submission.js +5 -0
  56. package/dist/package-submission.js.map +1 -1
  57. package/dist/redesign-brand-asset-inventory.d.ts +71 -0
  58. package/dist/redesign-brand-asset-inventory.d.ts.map +1 -0
  59. package/dist/redesign-brand-asset-inventory.js +318 -0
  60. package/dist/redesign-brand-asset-inventory.js.map +1 -0
  61. package/dist/redesign-capture.d.ts +57 -0
  62. package/dist/redesign-capture.d.ts.map +1 -0
  63. package/dist/redesign-capture.js +181 -0
  64. package/dist/redesign-capture.js.map +1 -0
  65. package/dist/redesign-pinned-asset.d.ts +20 -0
  66. package/dist/redesign-pinned-asset.d.ts.map +1 -0
  67. package/dist/redesign-pinned-asset.js +35 -0
  68. package/dist/redesign-pinned-asset.js.map +1 -0
  69. package/dist/redesign-plan-client.d.ts +49 -0
  70. package/dist/redesign-plan-client.d.ts.map +1 -0
  71. package/dist/redesign-plan-client.js +90 -0
  72. package/dist/redesign-plan-client.js.map +1 -0
  73. package/dist/redesign-plan-identity.d.ts +8 -0
  74. package/dist/redesign-plan-identity.d.ts.map +1 -0
  75. package/dist/redesign-plan-identity.js +16 -0
  76. package/dist/redesign-plan-identity.js.map +1 -0
  77. package/dist/redesign-plan.d.ts +30 -0
  78. package/dist/redesign-plan.d.ts.map +1 -0
  79. package/dist/redesign-plan.js +99 -0
  80. package/dist/redesign-plan.js.map +1 -0
  81. package/dist/redesign-workspace.d.ts +142 -0
  82. package/dist/redesign-workspace.d.ts.map +1 -0
  83. package/dist/redesign-workspace.js +82 -0
  84. package/dist/redesign-workspace.js.map +1 -0
  85. package/dist/run-journal-commands.d.ts.map +1 -1
  86. package/dist/run-journal-commands.js +10 -0
  87. package/dist/run-journal-commands.js.map +1 -1
  88. package/open-design.json +2 -2
  89. package/package.json +2 -2
  90. package/prototype-kit/build.mjs +9 -3
  91. package/prototype-kit/lib/action-target.mjs +26 -0
  92. package/prototype-kit/lib/local-document.mjs +16 -0
  93. package/prototype-kit/lib/runtime-check.mjs +83 -19
  94. package/prototype-kit/lib/shell-runtime-equivalence.mjs +41 -0
  95. package/prototype-kit/polish/harm.mjs +27 -5
  96. package/prototype-kit/polish/measure.mjs +101 -5
  97. package/prototype-kit/polish/overrides.mjs +32 -3
  98. package/prototype-kit/polish/polish.mjs +23 -11
  99. package/prototype-kit/polish/rules/align.mjs +73 -3
  100. package/prototype-kit/polish/rules/left-rail.mjs +2 -3
  101. package/prototype-kit/polish/rules/section-breathing.mjs +0 -1
  102. package/prototype-kit/polish/tests/fixtures/align/expect.json +1 -1
  103. package/prototype-kit/polish/tests/fixtures/align/fire.html +4 -1
  104. package/prototype-kit/polish/tests/fixtures/align/silent.html +8 -0
  105. package/prototype-kit/polish/tests/fixtures/align/zoom-constrained.html +17 -0
  106. package/prototype-kit/polish/tests/fixtures/harm/left-rail-contained.html +16 -0
  107. package/prototype-kit/polish/tests/fixtures/harm/left-rail-overflow.html +16 -0
  108. package/prototype-kit/polish/tests/fixtures/harm/nested-actions.html +6 -0
  109. package/prototype-kit/polish/tests/fixtures/harm/unidentified-parent.html +3 -0
  110. package/prototype-kit/polish/tests/fixtures/shell-seam/fire.html +1 -1
  111. package/prototype-kit/polish/tests/harm-check.mjs +131 -2
  112. package/prototype-kit/polish/tests/rules-check.mjs +7 -2
  113. package/prototype-kit/runtime/proto.js +4 -1
  114. package/prototype-kit/tests/adversarial-runtime.mjs +3 -0
  115. package/prototype-kit/tests/align-rule-check.mjs +105 -0
  116. package/prototype-kit/tests/fixtures/interaction-runtime/review-bottom-action.html +8 -0
  117. package/prototype-kit/tests/offline-check.mjs +17 -1
  118. package/prototype-kit/tests/rules-check.mjs +67 -1
  119. package/prototype-kit/tests/shell-stitching-runtime.mjs +15 -8
@@ -0,0 +1,520 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { mkdir, readFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { TwelveUiBranchClient } from './branch-client.js';
5
+ import { executeBranchRun } from './branch-execution.js';
6
+ import { branchAttemptPath, readBranchAttempt } from './branch-run-record.js';
7
+ import { imageWinner } from './branch-winner.js';
8
+ import { booleanFlag, stringFlag } from './cli-arguments.js';
9
+ import { CliRefusal } from './cli-refusal.js';
10
+ import { prepareOutputDirectory } from './cli-output-paths.js';
11
+ import { usageRefusal } from './cli-usage.js';
12
+ import { readConceptValue } from './concept-input.js';
13
+ import { readConversionConfig } from './config.js';
14
+ import { isConversionModel } from './conversion-models.js';
15
+ import { runDraftCommand } from './cli-draft-command.js';
16
+ import { DRAFT_CANDIDATE_COUNT, DRAFT_CANDIDATE_COUNT_MAXIMUM, DRAFT_CANDIDATE_COUNT_MINIMUM, } from './draft-run.js';
17
+ import { draftPaths, readDraftRecord } from './draft-workspace.js';
18
+ import { TwelveUiConversionPackageClient } from './package-client.js';
19
+ import { TwelveUiPrototypeLabelClient } from './prototype-label-client.js';
20
+ import { isPrototypeSkippedResult, runPrototypePoststep } from './prototype-poststep.js';
21
+ import { captureRedesignPages, discoverRedesignPageUrls, REDESIGN_DEFAULT_MAX_PAGES, } from './redesign-capture.js';
22
+ import { buildRedesignPlan } from './redesign-plan.js';
23
+ import { TwelveUiRedesignPlanClient, } from './redesign-plan-client.js';
24
+ import { redesignPlanIdempotencyKey } from './redesign-plan-identity.js';
25
+ import { resolveRedesignPinnedAsset } from './redesign-pinned-asset.js';
26
+ import { createRedesignWorkspace, isRedesignStage, loadOrStartRedesignRecord, redesignPaths, REDESIGN_STAGES, writeRedesignRecord, } from './redesign-workspace.js';
27
+ /**
28
+ * `12ui redesign <url> --direction <text>`: capture -> plan -> draft -> pick -> branch
29
+ * -> polish, chained through the same library entry points and client
30
+ * injection seams every other command uses, so this differs from typing six
31
+ * commands only in not re-deriving state between them.
32
+ *
33
+ * Every stage is individually invokable and resumable through `--from`/`--to`:
34
+ * the run record at `<run-dir>/redesign.json` says what already settled, so
35
+ * repeating a stage that already ran replays its recorded output rather than
36
+ * buying it again.
37
+ */
38
+ const DEFAULT_CANDIDATE_SLOT = 'A';
39
+ const REDESIGN_PAGES_MINIMUM = 1;
40
+ const REDESIGN_PAGES_MAXIMUM = 10;
41
+ const REDESIGN_MAX_SCREENS_MINIMUM = 1;
42
+ const REDESIGN_MAX_SCREENS_MAXIMUM = 8;
43
+ const readPages = (flags) => {
44
+ const value = stringFlag(flags, 'pages');
45
+ if (value === undefined)
46
+ return REDESIGN_DEFAULT_MAX_PAGES;
47
+ const count = Number(value);
48
+ if (!Number.isSafeInteger(count) || count < REDESIGN_PAGES_MINIMUM || count > REDESIGN_PAGES_MAXIMUM) {
49
+ throw new CliRefusal(`--pages must be an integer between ${REDESIGN_PAGES_MINIMUM} and ${REDESIGN_PAGES_MAXIMUM}`, 'redesign_pages_invalid');
50
+ }
51
+ return count;
52
+ };
53
+ const readCandidateCount = (flags) => {
54
+ const value = stringFlag(flags, 'candidates');
55
+ if (value === undefined)
56
+ return DRAFT_CANDIDATE_COUNT;
57
+ const count = Number(value);
58
+ if (!Number.isSafeInteger(count)
59
+ || count < DRAFT_CANDIDATE_COUNT_MINIMUM
60
+ || count > DRAFT_CANDIDATE_COUNT_MAXIMUM) {
61
+ throw new CliRefusal(`--candidates must be an integer between ${DRAFT_CANDIDATE_COUNT_MINIMUM}`
62
+ + ` and ${DRAFT_CANDIDATE_COUNT_MAXIMUM}`, 'redesign_candidates_invalid');
63
+ }
64
+ return count;
65
+ };
66
+ const readMaxScreens = (flags) => {
67
+ const value = stringFlag(flags, 'max-screens');
68
+ if (value === undefined)
69
+ return REDESIGN_MAX_SCREENS_MAXIMUM;
70
+ const count = Number(value);
71
+ if (!Number.isSafeInteger(count)
72
+ || count < REDESIGN_MAX_SCREENS_MINIMUM
73
+ || count > REDESIGN_MAX_SCREENS_MAXIMUM) {
74
+ throw new CliRefusal(`--max-screens must be an integer between ${REDESIGN_MAX_SCREENS_MINIMUM}`
75
+ + ` and ${REDESIGN_MAX_SCREENS_MAXIMUM}`, 'redesign_max_screens_invalid');
76
+ }
77
+ return count;
78
+ };
79
+ const readConversionModel = (flags) => {
80
+ const value = stringFlag(flags, 'convert-model')?.trim() ?? 'standard';
81
+ if (!isConversionModel(value)) {
82
+ throw new CliRefusal('--convert-model must be fast, standard, or pro', 'redesign_convert_model_invalid');
83
+ }
84
+ return value;
85
+ };
86
+ const assertStage = (value, flag) => {
87
+ if (!isRedesignStage(value)) {
88
+ throw new CliRefusal(`${flag} must be one of ${REDESIGN_STAGES.join(', ')}`, 'redesign_stage_invalid');
89
+ }
90
+ return value;
91
+ };
92
+ const readStageRange = (flags) => {
93
+ const fromValue = stringFlag(flags, 'from')?.trim();
94
+ const toValue = stringFlag(flags, 'to')?.trim();
95
+ const from = fromValue ? assertStage(fromValue, '--from') : REDESIGN_STAGES[0];
96
+ const to = toValue ? assertStage(toValue, '--to') : REDESIGN_STAGES[REDESIGN_STAGES.length - 1];
97
+ if (REDESIGN_STAGES.indexOf(from) > REDESIGN_STAGES.indexOf(to)) {
98
+ throw new CliRefusal(`--from ${from} runs after --to ${to}; stages run in order: ${REDESIGN_STAGES.join(' -> ')}`, 'redesign_stage_range_invalid');
99
+ }
100
+ return { from, to };
101
+ };
102
+ const runCaptureStage = async (args) => {
103
+ if (args.record.capture)
104
+ return args.record;
105
+ const urls = await (args.dependencies.discoverPages ?? discoverRedesignPageUrls)({
106
+ url: args.record.url,
107
+ maxPages: args.pageCount,
108
+ });
109
+ const pages = await captureRedesignPages({
110
+ urls,
111
+ outDir: args.paths.captureDir,
112
+ ...(args.dependencies.capture ? { dependencies: args.dependencies.capture } : {}),
113
+ });
114
+ const record = { ...args.record, capture: { pages } };
115
+ await writeRedesignRecord(args.paths.record, record);
116
+ return record;
117
+ };
118
+ const runDraftStage = async (args) => {
119
+ if (args.record.draft)
120
+ return args.record;
121
+ if (!args.record.capture)
122
+ throw new Error('Cannot draft before capture has run');
123
+ if (!args.record.plan)
124
+ throw new Error('Cannot draft before hosted planning has run');
125
+ const homepage = args.record.capture.pages[0];
126
+ if (!homepage)
127
+ throw new Error('Capture recorded no pages to draft from');
128
+ const draftFlags = {
129
+ concept: args.record.plan.concept,
130
+ reference: homepage.path,
131
+ candidates: String(args.candidateCount),
132
+ wait: true,
133
+ };
134
+ const origin = stringFlag(args.flags, 'origin');
135
+ if (origin)
136
+ draftFlags.origin = origin;
137
+ const apiKey = stringFlag(args.flags, 'api-key');
138
+ if (apiKey)
139
+ draftFlags['api-key'] = apiKey;
140
+ await mkdir(args.paths.draftDir, { recursive: true });
141
+ const result = await runDraftCommand(draftFlags, {
142
+ ...(args.dependencies.readConfig ? { readConfig: args.dependencies.readConfig } : {}),
143
+ ...(args.dependencies.createCorpusClient
144
+ ? { createCorpusClient: args.dependencies.createCorpusClient } : {}),
145
+ ...(args.dependencies.createHostedClient
146
+ ? { createHostedClient: args.dependencies.createHostedClient } : {}),
147
+ plannedDraft: {
148
+ corpusQuery: args.record.plan.corpusQuery,
149
+ retain: args.record.plan.retain,
150
+ },
151
+ workspaceRoot: args.paths.draftDir,
152
+ write: () => { },
153
+ ...(args.dependencies.warn ? { warn: args.dependencies.warn } : {}),
154
+ });
155
+ const record = {
156
+ ...args.record,
157
+ draft: { runDir: result.prepared.runDir, runId: result.prepared.runId },
158
+ };
159
+ await writeRedesignRecord(args.paths.record, record);
160
+ return record;
161
+ };
162
+ const planAssets = (record) => (record.capture?.pages.flatMap((page) => (page.brandAssetInventory ?? []).map((asset) => ({
163
+ inventoryId: asset.inventoryId,
164
+ // The capture record validates this against page.id. Preserve the asset's
165
+ // own frozen namespace in the provider request rather than reconstructing
166
+ // it from the enclosing page.
167
+ pageId: asset.pageId,
168
+ domPath: asset.domPath,
169
+ sourceUrl: asset.sourceUrl,
170
+ inlineSvg: asset.inlineSvg,
171
+ sha256: asset.sha256,
172
+ mediaType: asset.mediaType,
173
+ width: asset.width,
174
+ height: asset.height,
175
+ captureBox: [...asset.captureBox],
176
+ }))) ?? []);
177
+ const runPlanStage = async (args) => {
178
+ if (args.record.plan)
179
+ return args.record;
180
+ const homepage = args.record.capture?.pages[0];
181
+ if (!homepage)
182
+ throw new Error('Cannot plan before capture has recorded a homepage');
183
+ const brandAssetInventory = planAssets(args.record);
184
+ const request = {
185
+ direction: args.record.direction,
186
+ capture: { sha256: homepage.sha256, width: homepage.width, height: homepage.height },
187
+ ...(brandAssetInventory.length > 0 ? { brandAssetInventory } : {}),
188
+ referenceImageAttached: true,
189
+ };
190
+ const client = (args.dependencies.createRedesignPlanClient
191
+ ?? ((config) => new TwelveUiRedesignPlanClient(config)))(args.config);
192
+ const plan = await client.plan(request, redesignPlanIdempotencyKey(request));
193
+ const pinnedAsset = resolveRedesignPinnedAsset({
194
+ pinnedAssetChoice: plan.pinnedAssetChoice,
195
+ pages: args.record.capture?.pages ?? [],
196
+ });
197
+ const record = {
198
+ ...args.record,
199
+ plan: {
200
+ concept: plan.concept,
201
+ retain: plan.retain,
202
+ corpusQuery: plan.corpusQuery,
203
+ pinnedAssetChoice: plan.pinnedAssetChoice,
204
+ effectIdentity: plan.effectIdentity,
205
+ replayed: plan.replayed,
206
+ ...(plan.degradation === undefined ? {} : { degradation: plan.degradation }),
207
+ },
208
+ ...(pinnedAsset ? { pinnedAsset } : {}),
209
+ };
210
+ await writeRedesignRecord(args.paths.record, record);
211
+ return record;
212
+ };
213
+ const runPickStage = async (args) => {
214
+ if (args.record.pick)
215
+ return args.record;
216
+ if (!args.record.draft)
217
+ throw new Error('Cannot pick before draft has run');
218
+ const requestedSlot = stringFlag(args.flags, 'slot')?.trim();
219
+ const slotLetter = requestedSlot || DEFAULT_CANDIDATE_SLOT;
220
+ if (!requestedSlot) {
221
+ args.warn(`--slot was not given; defaulting to candidate ${DEFAULT_CANDIDATE_SLOT}.`);
222
+ }
223
+ const draftRunPaths = draftPaths(args.record.draft.runDir);
224
+ const draftRecord = await readDraftRecord(draftRunPaths.draftRecord);
225
+ if (!draftRecord)
226
+ throw new Error(`No draft record in ${args.record.draft.runDir}`);
227
+ const candidate = draftRecord.hosted.candidates.find((entry) => entry.id === slotLetter);
228
+ if (!candidate) {
229
+ throw new CliRefusal(`--slot must be one of ${draftRecord.hosted.candidates.map((entry) => entry.id).join(', ')}`, 'redesign_slot_invalid');
230
+ }
231
+ const completion = await readFile(draftRunPaths.completion, 'utf8')
232
+ .then((raw) => JSON.parse(raw))
233
+ .catch(() => undefined);
234
+ const materialized = completion?.candidates.find((entry) => entry.slot === candidate.slot);
235
+ if (!materialized) {
236
+ throw new CliRefusal(`Draft candidate ${slotLetter} is not materialized in ${args.record.draft.runDir};`
237
+ + ' run the draft stage again with --from draft --to draft.', 'redesign_pick_not_materialized');
238
+ }
239
+ const record = {
240
+ ...args.record,
241
+ pick: { slot: candidate.id, imagePath: materialized.path, sha256: materialized.sha256 },
242
+ };
243
+ await writeRedesignRecord(args.paths.record, record);
244
+ return record;
245
+ };
246
+ const runBranchStage = async (args) => {
247
+ if (!args.record.capture)
248
+ throw new Error('Cannot branch before capture has run');
249
+ if (!args.record.pick)
250
+ throw new Error('Cannot branch before pick has run');
251
+ const capture = args.record.capture;
252
+ const pick = args.record.pick;
253
+ const alreadyDone = new Map((args.record.branch?.pages ?? []).map((page) => [page.pageId, page]));
254
+ const remaining = capture.pages.filter((page) => !alreadyDone.has(page.id));
255
+ if (remaining.length === 0)
256
+ return args.record;
257
+ const branchClient = (args.dependencies.createBranchClient
258
+ ?? args.dependencies.createHostedClient
259
+ ?? ((value) => new TwelveUiBranchClient(value)))(args.config);
260
+ const packageClient = (args.dependencies.createPackageClient
261
+ ?? ((value) => new TwelveUiConversionPackageClient(value)))(args.config);
262
+ const winner = await imageWinner(pick.imagePath, 'The picked candidate');
263
+ const pinnedAssets = args.record.pinnedAsset
264
+ ? await (async () => {
265
+ const declared = args.record.pinnedAsset;
266
+ const bytes = new Uint8Array(await readFile(declared.bytesPath));
267
+ const sha256 = createHash('sha256').update(bytes).digest('hex');
268
+ if (sha256 !== declared.sha256) {
269
+ throw new CliRefusal(`Pinned asset ${declared.bytesPath} has sha256 ${sha256}; redesign.json declares ${declared.sha256}.`, 'redesign_pinned_asset_integrity');
270
+ }
271
+ const mediaType = declared.mediaType.toLowerCase();
272
+ if (!['image/png', 'image/jpeg', 'image/webp', 'image/svg+xml'].includes(mediaType)) {
273
+ throw new CliRefusal(`Pinned asset media type ${declared.mediaType} is not supported.`, 'redesign_pinned_asset_media_type');
274
+ }
275
+ return [{
276
+ label: `logo:${declared.inventoryId}`,
277
+ semanticKind: 'logo',
278
+ data: Buffer.from(bytes).toString('base64'),
279
+ mediaType: mediaType,
280
+ sha256,
281
+ width: declared.width,
282
+ height: declared.height,
283
+ }];
284
+ })()
285
+ : undefined;
286
+ const pages = [...alreadyDone.values()];
287
+ let record = args.record;
288
+ for (const page of remaining) {
289
+ const branchDir = path.join(args.paths.branchDir, page.id);
290
+ await prepareOutputDirectory(branchDir);
291
+ const concept = readConceptValue({
292
+ value: `${args.direction} Rebuild the page at ${page.url}.`,
293
+ flag: '--direction',
294
+ trimHint: 'Shorten the direction; each page URL is appended automatically.',
295
+ });
296
+ const idempotencyKey = `redesign-branch:v2:${createHash('sha256')
297
+ .update(`${args.record.createdAt}\u0000${page.id}`)
298
+ .digest('hex')}`;
299
+ const resume = Boolean(await readBranchAttempt(branchAttemptPath(branchDir)));
300
+ const result = await (args.dependencies.executeBranch ?? executeBranchRun)({
301
+ branchClient,
302
+ packageClient,
303
+ inputs: {
304
+ outDir: branchDir,
305
+ scope: 'page',
306
+ concept,
307
+ idempotencyKey,
308
+ winner,
309
+ maxScreens: args.maxScreens,
310
+ convert: {
311
+ output: 'html',
312
+ model: args.conversionModel,
313
+ ...(pinnedAssets ? { pinnedAssets } : {}),
314
+ },
315
+ },
316
+ origin: args.config.origin,
317
+ resume,
318
+ pageConcurrency: 1,
319
+ });
320
+ const labelClient = (args.dependencies.createPrototypeLabelClient
321
+ ?? ((value) => new TwelveUiPrototypeLabelClient(value)))(args.config);
322
+ await (args.dependencies.runPrototype ?? runPrototypePoststep)({ branchDir, labelClient });
323
+ pages.push({
324
+ pageId: page.id,
325
+ branchDir,
326
+ status: result.completion.status,
327
+ completionPath: result.completionPath,
328
+ ...(result.completion.pages.some((entry) => entry.conversion?.pinnedAssetUnplaced)
329
+ ? { pinnedAssetUnplaced: true }
330
+ : {}),
331
+ });
332
+ record = { ...record, branch: { pages: [...pages] } };
333
+ await writeRedesignRecord(args.paths.record, record);
334
+ if (result.failure)
335
+ throw result.failure;
336
+ }
337
+ return record;
338
+ };
339
+ const runPolishStage = async (args) => {
340
+ if (!args.record.branch)
341
+ throw new Error('Cannot polish before branch has run');
342
+ const alreadyDone = new Map((args.record.polish?.pages ?? []).map((page) => [page.pageId, page]));
343
+ const remaining = args.record.branch.pages.filter((page) => !alreadyDone.has(page.pageId));
344
+ if (remaining.length === 0)
345
+ return args.record;
346
+ const labelClient = (args.dependencies.createPrototypeLabelClient
347
+ ?? ((value) => new TwelveUiPrototypeLabelClient(value)))(args.config);
348
+ const pages = [...alreadyDone.values()];
349
+ let record = args.record;
350
+ for (const page of remaining) {
351
+ const prototype = await (args.dependencies.runPrototype ?? runPrototypePoststep)({
352
+ branchDir: page.branchDir,
353
+ resume: true,
354
+ polish: true,
355
+ labelClient,
356
+ });
357
+ pages.push({
358
+ pageId: page.pageId,
359
+ branchDir: page.branchDir,
360
+ enabled: !isPrototypeSkippedResult(prototype) && prototype.polish.enabled,
361
+ });
362
+ record = { ...record, polish: { pages: [...pages] } };
363
+ await writeRedesignRecord(args.paths.record, record);
364
+ }
365
+ return record;
366
+ };
367
+ export const runRedesignCommand = async (command, flags, dependencies = {}) => {
368
+ const urlValue = command[1]?.trim();
369
+ if (!urlValue) {
370
+ throw usageRefusal({
371
+ reason: 'A redesign starts from the URL to capture and rebuild, and none was given.',
372
+ code: 'redesign_usage',
373
+ verb: ['redesign'],
374
+ });
375
+ }
376
+ const url = (() => {
377
+ try {
378
+ return new URL(urlValue).toString();
379
+ }
380
+ catch {
381
+ throw new CliRefusal(`${urlValue} is not a valid URL`, 'redesign_url_invalid');
382
+ }
383
+ })();
384
+ const directionValue = stringFlag(flags, 'direction');
385
+ if (!directionValue?.trim()) {
386
+ throw usageRefusal({
387
+ reason: 'A redesign needs a visual direction in words, and --direction was not given.',
388
+ code: 'redesign_usage',
389
+ verb: ['redesign'],
390
+ });
391
+ }
392
+ const direction = readConceptValue({
393
+ value: directionValue,
394
+ flag: '--direction',
395
+ trimHint: 'Keep the visual direction: mood, layout emphasis, and what should change.',
396
+ });
397
+ const pageCount = readPages(flags);
398
+ const candidateCount = readCandidateCount(flags);
399
+ const maxScreens = readMaxScreens(flags);
400
+ const conversionModel = readConversionModel(flags);
401
+ const { from, to } = readStageRange(flags);
402
+ const write = dependencies.write ?? ((line) => { process.stdout.write(`${line}\n`); });
403
+ const warn = dependencies.warn ?? ((line) => { process.stderr.write(`${line}\n`); });
404
+ if (booleanFlag(flags, 'dry-run')) {
405
+ const plan = buildRedesignPlan({
406
+ url, direction, pageCount, candidateCount, maxScreens, conversionModel,
407
+ });
408
+ console.log(JSON.stringify({
409
+ dryRun: true,
410
+ from,
411
+ to,
412
+ ...plan,
413
+ note: 'Nothing was captured, claimed, dispatched, or bought.',
414
+ }, null, 2));
415
+ return {
416
+ version: 1,
417
+ createdAt: new Date().toISOString(),
418
+ runDir: '',
419
+ url,
420
+ direction,
421
+ requestedPages: pageCount,
422
+ requestedMaxScreens: maxScreens,
423
+ requestedConversionModel: conversionModel,
424
+ };
425
+ }
426
+ const outDirFlag = stringFlag(flags, 'out-dir')?.trim();
427
+ let paths;
428
+ if (outDirFlag) {
429
+ paths = redesignPaths(outDirFlag);
430
+ await prepareOutputDirectory(paths.runDir);
431
+ }
432
+ else {
433
+ if (from !== 'capture') {
434
+ throw new CliRefusal('Resuming at a stage other than capture requires --out-dir <run-directory> from a'
435
+ + ' previous redesign run.', 'redesign_run_directory_missing');
436
+ }
437
+ paths = await createRedesignWorkspace({
438
+ url,
439
+ ...(dependencies.workspaceRoot ? { root: dependencies.workspaceRoot } : {}),
440
+ });
441
+ }
442
+ write(paths.runDir);
443
+ dependencies.onRunDirectory?.(paths.runDir);
444
+ dependencies.journal?.note({ workspace: paths.runDir });
445
+ let record = await loadOrStartRedesignRecord({
446
+ paths,
447
+ url,
448
+ direction,
449
+ requestedPages: pageCount,
450
+ requestedMaxScreens: maxScreens,
451
+ requestedConversionModel: conversionModel,
452
+ });
453
+ const config = (dependencies.readConfig ?? readConversionConfig)({
454
+ origin: stringFlag(flags, 'origin'),
455
+ apiKey: stringFlag(flags, 'api-key'),
456
+ });
457
+ const stageIndex = (stage) => REDESIGN_STAGES.indexOf(stage);
458
+ const withinRange = (stage) => (stageIndex(stage) >= stageIndex(from) && stageIndex(stage) <= stageIndex(to));
459
+ const needed = (stage) => stageIndex(stage) <= stageIndex(to);
460
+ if (needed('capture')) {
461
+ if (withinRange('capture')) {
462
+ record = await runCaptureStage({ record, paths, pageCount, dependencies });
463
+ }
464
+ if (!record.capture) {
465
+ throw new CliRefusal(`Stage capture has not run in ${paths.runDir}. Run this command with --to capture first,`
466
+ + ' or omit --from to start from capture.', 'redesign_capture_missing');
467
+ }
468
+ }
469
+ if (needed('plan')) {
470
+ if (withinRange('plan')) {
471
+ record = await runPlanStage({ record, paths, config, dependencies });
472
+ }
473
+ if (!record.plan) {
474
+ throw new CliRefusal(`Stage plan has not run in ${paths.runDir}.`, 'redesign_plan_missing');
475
+ }
476
+ }
477
+ if (needed('draft')) {
478
+ if (withinRange('draft')) {
479
+ record = await runDraftStage({ record, paths, candidateCount, flags, dependencies });
480
+ }
481
+ if (!record.draft) {
482
+ throw new CliRefusal(`Stage draft has not run in ${paths.runDir}.`, 'redesign_draft_missing');
483
+ }
484
+ }
485
+ if (needed('pick')) {
486
+ if (withinRange('pick')) {
487
+ record = await runPickStage({ record, paths, flags, warn });
488
+ }
489
+ if (!record.pick) {
490
+ throw new CliRefusal(`Stage pick has not run in ${paths.runDir}.`, 'redesign_pick_missing');
491
+ }
492
+ }
493
+ if (needed('branch')) {
494
+ if (withinRange('branch')) {
495
+ record = await runBranchStage({
496
+ record,
497
+ paths,
498
+ direction,
499
+ maxScreens: record.requestedMaxScreens ?? maxScreens,
500
+ conversionModel: record.requestedConversionModel ?? conversionModel,
501
+ config,
502
+ dependencies,
503
+ });
504
+ }
505
+ if (!record.branch) {
506
+ throw new CliRefusal(`Stage branch has not run in ${paths.runDir}.`, 'redesign_branch_missing');
507
+ }
508
+ }
509
+ if (needed('polish') && withinRange('polish')) {
510
+ record = await runPolishStage({ record, paths, config, dependencies });
511
+ }
512
+ dependencies.journal?.note({
513
+ workspace: paths.runDir,
514
+ artifacts: [paths.record],
515
+ terminal: to === 'polish',
516
+ });
517
+ console.log(JSON.stringify({ from, to, ...record }, null, 2));
518
+ return record;
519
+ };
520
+ //# sourceMappingURL=cli-redesign-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-redesign-command.js","sourceRoot":"","sources":["../src/cli-redesign-command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-run.d.ts","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AA6I/B,eAAO,MAAM,MAAM,GACjB,MAAM,MAAM,EAAE,EACd,UAAS;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;CAAO,KACnE,OAAO,CAAC,IAAI,CA2Bd,CAAC"}
1
+ {"version":3,"file":"cli-run.d.ts","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAqJ/B,eAAO,MAAM,MAAM,GACjB,MAAM,MAAM,EAAE,EACd,UAAS;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;CAAO,KACnE,OAAO,CAAC,IAAI,CA2Bd,CAAC"}
package/dist/cli-run.js CHANGED
@@ -13,6 +13,7 @@ import { runWithPendingAuthRedemption, } from './cli-pending-auth.js';
13
13
  import { runPackageCommand, runPackageTemplateCommand } from './cli-package-command.js';
14
14
  import { runReviewCommand } from './cli-review-command.js';
15
15
  import { runPrototypeCommand } from './cli-prototype-command.js';
16
+ import { runRedesignCommand } from './cli-redesign-command.js';
16
17
  import { runSkillCommand } from './cli-skill-command.js';
17
18
  import { runSpendCommand } from './cli-spend-command.js';
18
19
  import { printUsage } from './cli-usage.js';
@@ -94,6 +95,13 @@ const dispatch = async (args) => {
94
95
  await runSpendCommand(flags);
95
96
  return;
96
97
  }
98
+ if (command[0] === 'redesign') {
99
+ await runRedesignCommand(command, flags, {
100
+ journal,
101
+ onRunDirectory: (runDir) => { journal.note({ workspace: runDir }); },
102
+ });
103
+ return;
104
+ }
97
105
  if (command[0] === 'capabilities') {
98
106
  printCapabilities();
99
107
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"cli-run.js","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAiB,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,4BAA4B,GAE7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAwB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;;;;;;;;GASG;AAEH,MAAM,iBAAiB,GAAG,GAAS,EAAE;IACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,IAIvB,EAAiB,EAAE;IAClB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,UAAU,CAAC,mDAAmD,EAAE,gBAAgB,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACzB,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IACD,uEAAuE;IACvE,oBAAoB;IACpB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAClB,0FAA0F;kBACxF,8DACA,OAAO,CAAC,CAAC,CAAC,IAAI,WAChB,wDAAwD,EACxD,sBAAsB,CACvB,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;YAC1C,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;SACrE,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;YAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAC1C,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;YACxC,OAAO;YACP,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC1F,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,UAAU,CAAC,qDAAqD,EAAE,iBAAiB,CAAC,CAAC;QACjG,CAAC;QACD,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;QAClC,iBAAiB,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,UAAU,CAAC,0DAA0D,EAAE,0BAA0B,CAAC,CAAC;QAC/G,CAAC;QACD,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,UAAU,CAAC,gDAAgD,EAAE,uBAAuB,CAAC,CAAC;QAClG,CAAC;QACD,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,4EAA4E;IAC5E,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACzD,IAAI,yBAAyB,CAAC,KAAK,CAAC;YAAE,OAAO;QAC7C,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,SAAS,CAAC,SAAS;YAC1B,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,SAAS,EAAE;gBACT,SAAS,CAAC,SAAS;gBACnB,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACrF;SACF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACzB,MAAM,cAAc,CAAC;YACnB,MAAM,EAAE,oBAAoB,CAAC;gBAC3B,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;gBACnC,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;aACrC,CAAC;SACH,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EACzB,IAAc,EACd,UAAkE,EAAE,EACrD,EAAE;IACjB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/B,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,6DAA6D;QAC7D,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO;IACT,CAAC;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9D,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,4BAA4B,CAClE,GAAG,EAAE,CAAC,QAAQ,CAAC;QACb,OAAO;QACP,KAAK;QACL,OAAO;KACR,CAAC,EACF;QACE,GAAG,OAAO,CAAC,WAAW;QACtB,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM;QAClE,WAAW,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW;KACnF,CACF,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"cli-run.js","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-usage.d.ts","sourceRoot":"","sources":["../src/cli-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmD9C,eAAO,MAAM,SAAS,QAiD6C,CAAC;AAEpE,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAER,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAIhD,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAG5C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA2C,CAAC;AAEzF,gFAAgF;AAChF,eAAO,MAAM,eAAe,GAAI,QAAO,SAAS,MAAM,EAAoB,KAAG,GAAG,CAAC,MAAM,CAMtF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EAczE,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,MAEzD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,MAIxD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,KAAG,UAGH,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,WAAW,GAAI,MAAM;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,KAAG,KAEH,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,UAAU,GAAI,UAAS,SAAS,MAAM,EAAO,KAAG,IAE5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,KAAK,QAAO,KAExB,CAAC"}
1
+ {"version":3,"file":"cli-usage.d.ts","sourceRoot":"","sources":["../src/cli-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmD9C,eAAO,MAAM,SAAS,QAkD6C,CAAC;AAEpE,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAER,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAIhD,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAG5C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA2C,CAAC;AAEzF,gFAAgF;AAChF,eAAO,MAAM,eAAe,GAAI,QAAO,SAAS,MAAM,EAAoB,KAAG,GAAG,CAAC,MAAM,CAMtF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EAczE,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,MAEzD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,MAaxD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,KAAG,UAGH,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,WAAW,GAAI,MAAM;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,KAAG,KAEH,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,UAAU,GAAI,UAAS,SAAS,MAAM,EAAO,KAAG,IAE5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,KAAK,QAAO,KAExB,CAAC"}
package/dist/cli-usage.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { CliRefusal } from './cli-refusal.js';
2
- import { helpContextFor, renderHelpContext } from './cli-help/index.js';
2
+ import { helpContextFor, helpTopicsFor, renderHelpContext } from './cli-help/index.js';
3
3
  import { MAX_CONCEPT_CHARACTERS } from './concept-input.js';
4
4
  import { CLI_CONVERSION_OUTPUTS } from './conversion-outputs.js';
5
5
  /**
@@ -62,6 +62,7 @@ export const CLI_USAGE = `Usage:
62
62
  12ui branch execute --start <png|jpeg|webp> --concept ${CONCEPT_PLACEHOLDER}|--concept-file <file> --scope page|site [--convert html] [--prototype] [--polish] [--convert-model fast|standard|pro] [--convert-quality standard|pro] [--source-conversion-id <id>] [--max-screens <n,keeps-the-first-n-planned-screens-and-names-any-page-left-out>] [--page-concurrency <n>] [--idempotency-key <key>] [--out-dir <run-directory>] [--dry-run] [--wait]
63
63
  12ui branch resume <run-dir>
64
64
  12ui prototype <run-dir> [--polish]
65
+ 12ui redesign <url> --direction ${CONCEPT_PLACEHOLDER} [--pages <1-10,default-5>] [--candidates <2-16,default-4>] [--max-screens <1-8,default-8>] [--convert-model fast|standard|pro,default-standard] [--slot <A-P,default-A>] [--from capture|plan|draft|pick|branch|polish] [--to capture|plan|draft|pick|branch|polish] [--out-dir <run-directory>] [--dry-run]
65
66
  12ui next <run-dir|run-id> [--wait] [--timeout-ms <ms>] [--json]
66
67
  12ui review <run-dir>
67
68
  12ui review --all
@@ -171,6 +172,12 @@ export const commandUsage = (...verb) => (`Usage:\n${usageLinesFor(...verb).map(
171
172
  export const commandHelp = (...verb) => {
172
173
  const usageText = commandUsage(...verb);
173
174
  const context = helpContextFor(verb);
175
+ if (!context && verb.length > 0) {
176
+ const topic = verb.join(' ');
177
+ const valid = helpTopicsFor(verb).map((candidate) => `\`${candidate}\``).join(', ');
178
+ throw new CliRefusal(`Unknown help topic \`${topic}\`. Valid topics: ${valid}.`
179
+ + ' Run `12ui --help` for the command summary.', 'help_topic_unknown');
180
+ }
174
181
  return context ? `${usageText}\n\n${renderHelpContext(context)}` : usageText;
175
182
  };
176
183
  /**