@12ui/design 0.2.11 → 0.2.13
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/README.md +9 -0
- package/dist/cli-arguments.d.ts.map +1 -1
- package/dist/cli-arguments.js +2 -0
- package/dist/cli-arguments.js.map +1 -1
- package/dist/cli-capabilities.d.ts +13 -0
- package/dist/cli-capabilities.d.ts.map +1 -1
- package/dist/cli-capabilities.js +16 -0
- package/dist/cli-capabilities.js.map +1 -1
- package/dist/cli-image-batch-command.d.ts.map +1 -1
- package/dist/cli-image-batch-command.js +104 -53
- package/dist/cli-image-batch-command.js.map +1 -1
- package/dist/cli-image-batch-materialize.d.ts +27 -0
- package/dist/cli-image-batch-materialize.d.ts.map +1 -0
- package/dist/cli-image-batch-materialize.js +41 -0
- package/dist/cli-image-batch-materialize.js.map +1 -0
- package/dist/cli-image-batch-resume.d.ts +27 -0
- package/dist/cli-image-batch-resume.d.ts.map +1 -0
- package/dist/cli-image-batch-resume.js +158 -0
- package/dist/cli-image-batch-resume.js.map +1 -0
- package/dist/cli-image-command.d.ts.map +1 -1
- package/dist/cli-image-command.js +14 -2
- package/dist/cli-image-command.js.map +1 -1
- package/dist/cli-progress.d.ts +44 -0
- package/dist/cli-progress.d.ts.map +1 -0
- package/dist/cli-progress.js +83 -0
- package/dist/cli-progress.js.map +1 -0
- package/dist/cli.js +92 -6
- package/dist/cli.js.map +1 -1
- package/dist/conversion-client.d.ts +32 -12
- package/dist/conversion-client.d.ts.map +1 -1
- package/dist/conversion-client.js +14 -0
- package/dist/conversion-client.js.map +1 -1
- package/dist/image-generation-batch-attempt.d.ts +28 -0
- package/dist/image-generation-batch-attempt.d.ts.map +1 -0
- package/dist/image-generation-batch-attempt.js +48 -0
- package/dist/image-generation-batch-attempt.js.map +1 -0
- package/dist/image-generation-completion.d.ts +43 -0
- package/dist/image-generation-completion.d.ts.map +1 -0
- package/dist/image-generation-completion.js +54 -0
- package/dist/image-generation-completion.js.map +1 -0
- package/dist/image-generation-fs.d.ts +3 -0
- package/dist/image-generation-fs.d.ts.map +1 -0
- package/dist/image-generation-fs.js +23 -0
- package/dist/image-generation-fs.js.map +1 -0
- package/dist/image-generation-request.d.ts +13 -3
- package/dist/image-generation-request.d.ts.map +1 -1
- package/dist/image-generation-request.js +21 -19
- package/dist/image-generation-request.js.map +1 -1
- package/dist/image-generation-resume.d.ts +36 -0
- package/dist/image-generation-resume.d.ts.map +1 -0
- package/dist/image-generation-resume.js +83 -0
- package/dist/image-generation-resume.js.map +1 -0
- package/dist/image-generation-run.d.ts +11 -0
- package/dist/image-generation-run.d.ts.map +1 -1
- package/dist/image-generation-run.js +23 -9
- package/dist/image-generation-run.js.map +1 -1
- package/dist/image-generation-staging.d.ts +25 -0
- package/dist/image-generation-staging.d.ts.map +1 -0
- package/dist/image-generation-staging.js +80 -0
- package/dist/image-generation-staging.js.map +1 -0
- package/dist/legacy-skill-catalog.d.ts.map +1 -1
- package/dist/legacy-skill-catalog.js +34 -0
- package/dist/legacy-skill-catalog.js.map +1 -1
- package/package.json +1 -1
- package/skills/design/SKILL.md +54 -7
- package/skills/design/references/selection-contract.md +16 -0
- package/skills/design-convert/SKILL.md +55 -2
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { materializeImageBatch, publishImageBatchCompletion, } from './cli-image-batch-materialize.js';
|
|
2
|
+
import { writeBatchAttempt, } from './image-generation-batch-attempt.js';
|
|
3
|
+
import { prepareImageGenerationRequest } from './image-generation-request.js';
|
|
4
|
+
import { classifyImageGenerationResume, describeResumeState, resumeStateSummary, } from './image-generation-resume.js';
|
|
5
|
+
import { dispatchImageGeneration, markImageGenerationDispatched, resumeReservedImageGeneration, } from './image-generation-run.js';
|
|
6
|
+
import { materializeImageGeneration } from './image-generation-staging.js';
|
|
7
|
+
import { summarizeImageGenerationUsage } from './image-generation-usage.js';
|
|
8
|
+
import { preflightImageProvider } from './image-provider-preflight.js';
|
|
9
|
+
const errorMessage = (error) => (error instanceof Error ? error.message : String(error));
|
|
10
|
+
const identities = (requests) => requests.map((request) => ({
|
|
11
|
+
...(request.candidateId ? { candidateId: request.candidateId } : {}),
|
|
12
|
+
outputPath: request.outputPath,
|
|
13
|
+
idempotencyKey: request.idempotencyKey,
|
|
14
|
+
}));
|
|
15
|
+
export const describeBatchRecovery = (states) => {
|
|
16
|
+
const summary = resumeStateSummary(states);
|
|
17
|
+
const parts = [
|
|
18
|
+
`${summary.materialized} already on disk`,
|
|
19
|
+
`${summary.stageable} generated and awaiting delivery`,
|
|
20
|
+
`${summary.redispatchable} recoverable without new spend`,
|
|
21
|
+
`${summary.unrecoverable} unrecoverable`,
|
|
22
|
+
];
|
|
23
|
+
return `${states.length} candidate(s): ${parts.join(', ')}`;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Recover a batch whose candidates were dispatched but never delivered.
|
|
27
|
+
*
|
|
28
|
+
* Every candidate is classified from its own durable ledger entry first. Work
|
|
29
|
+
* that was already bought is delivered from staging; work that provably was not
|
|
30
|
+
* bought, or that the provider will return again for free under the recorded
|
|
31
|
+
* idempotency key, is re-requested under that same identity. Anything else is
|
|
32
|
+
* refused rather than bought a second time.
|
|
33
|
+
*/
|
|
34
|
+
export const resumeImageBatchCommand = async (args) => {
|
|
35
|
+
const { batchAttempt, batchAttemptFile, manifestPath, manifestSha256, requests } = args;
|
|
36
|
+
const states = await Promise.all(requests.map((request) => classifyImageGenerationResume({
|
|
37
|
+
outputPath: request.outputPath,
|
|
38
|
+
...(request.candidateId ? { candidateId: request.candidateId } : {}),
|
|
39
|
+
})));
|
|
40
|
+
const summary = resumeStateSummary(states);
|
|
41
|
+
const candidates = identities(requests);
|
|
42
|
+
if (summary.stageable === 0 && summary.redispatchable === 0 && summary.unrecoverable === 0) {
|
|
43
|
+
// Nothing is outstanding. This is the state the eleven benchmark runs were
|
|
44
|
+
// actually in when they gave up: the batch had finished. Republish the
|
|
45
|
+
// sentinel so the caller can read what it already owns, then refuse — a
|
|
46
|
+
// completed batch is never re-run, because that would be a second purchase.
|
|
47
|
+
const { completionPath, completion } = await publishImageBatchCompletion({
|
|
48
|
+
manifestPath,
|
|
49
|
+
manifestSha256,
|
|
50
|
+
batchAttemptFile,
|
|
51
|
+
provider: batchAttempt.provider,
|
|
52
|
+
model: batchAttempt.model,
|
|
53
|
+
resumed: true,
|
|
54
|
+
status: 'succeeded',
|
|
55
|
+
candidates,
|
|
56
|
+
});
|
|
57
|
+
throw new Error(`Image batch already completed; every candidate is on disk and nothing can be resumed.`
|
|
58
|
+
+ ` Re-running it would be a second paid call. Candidates: ${completion.candidates
|
|
59
|
+
.map((candidate) => `${candidate.id} ${candidate.outputPath}`
|
|
60
|
+
+ ` sha256=${candidate.sha256 ?? 'unknown'} bytes=${candidate.bytes ?? 0}`)
|
|
61
|
+
.join('; ')}. Completion sentinel: ${completionPath}`);
|
|
62
|
+
}
|
|
63
|
+
const delivered = states.filter((state) => state.disposition === 'stageable');
|
|
64
|
+
await Promise.all(delivered.map((state) => materializeImageGeneration(state.outputPath)));
|
|
65
|
+
const redispatch = states.filter((state) => state.disposition === 'redispatchable');
|
|
66
|
+
const results = [];
|
|
67
|
+
const errors = [];
|
|
68
|
+
if (redispatch.length > 0) {
|
|
69
|
+
const outstanding = new Map(redispatch.map((state) => [state.outputPath, state]));
|
|
70
|
+
const pending = requests.filter((request) => outstanding.has(request.outputPath));
|
|
71
|
+
const preflight = await (args.dependencies.preflight ?? preflightImageProvider)({
|
|
72
|
+
provider: batchAttempt.requestedProvider,
|
|
73
|
+
projectRoot: batchAttempt.projectRoot,
|
|
74
|
+
});
|
|
75
|
+
if (preflight.provider !== batchAttempt.provider) {
|
|
76
|
+
throw new Error(`Refusing to resume with ${preflight.provider} because the batch was dispatched to`
|
|
77
|
+
+ ` ${batchAttempt.provider}; switching providers after dispatch is never a resume.`);
|
|
78
|
+
}
|
|
79
|
+
const prepared = await Promise.all(pending.map((request) => (prepareImageGenerationRequest(request, { mode: 'resume' }))));
|
|
80
|
+
const reserved = prepared.map((request) => resumeReservedImageGeneration({
|
|
81
|
+
request,
|
|
82
|
+
preflight,
|
|
83
|
+
attempt: outstanding.get(request.outputPath)?.attempt ?? {
|
|
84
|
+
schemaVersion: 4,
|
|
85
|
+
status: 'prepared',
|
|
86
|
+
idempotencyKey: request.idempotencyKey,
|
|
87
|
+
provider: preflight.provider,
|
|
88
|
+
model: preflight.model,
|
|
89
|
+
providerIdempotencyEnforced: preflight.provider === 'openai',
|
|
90
|
+
providerEvidence: preflight.provider === 'codex'
|
|
91
|
+
? { codexVersion: preflight.codexVersion }
|
|
92
|
+
: { keySource: preflight.keySource },
|
|
93
|
+
prompt: request.prompt,
|
|
94
|
+
promptSource: request.promptSource,
|
|
95
|
+
promptSha256: request.promptSha256,
|
|
96
|
+
reference: { path: request.reference.path, sha256: request.reference.sha256 },
|
|
97
|
+
referenceMode: request.referenceMode,
|
|
98
|
+
outputPath: request.outputPath,
|
|
99
|
+
preparedAt: new Date().toISOString(),
|
|
100
|
+
},
|
|
101
|
+
}));
|
|
102
|
+
await Promise.all(reserved.map((item) => markImageGenerationDispatched(item)));
|
|
103
|
+
const settled = await Promise.allSettled(reserved.map((item) => (dispatchImageGeneration(item, { generate: args.dependencies.generate }))));
|
|
104
|
+
for (const outcome of settled) {
|
|
105
|
+
if (outcome.status === 'fulfilled')
|
|
106
|
+
results.push(outcome.value);
|
|
107
|
+
else
|
|
108
|
+
errors.push(errorMessage(outcome.reason));
|
|
109
|
+
}
|
|
110
|
+
batchAttempt.accounting = summarizeImageGenerationUsage(reserved.map((item) => item.attempt.usage), preflight.provider);
|
|
111
|
+
}
|
|
112
|
+
await materializeImageBatch(candidates);
|
|
113
|
+
const unrecoverable = states.filter((state) => state.disposition === 'unrecoverable');
|
|
114
|
+
const failed = errors.length > 0 || unrecoverable.length > 0;
|
|
115
|
+
const { completionPath, completion } = await publishImageBatchCompletion({
|
|
116
|
+
manifestPath,
|
|
117
|
+
manifestSha256,
|
|
118
|
+
batchAttemptFile,
|
|
119
|
+
provider: batchAttempt.provider,
|
|
120
|
+
model: batchAttempt.model,
|
|
121
|
+
resumed: true,
|
|
122
|
+
status: failed ? 'failed' : 'succeeded',
|
|
123
|
+
candidates,
|
|
124
|
+
});
|
|
125
|
+
batchAttempt.status = failed ? 'failed' : 'succeeded';
|
|
126
|
+
batchAttempt.completedAt = new Date().toISOString();
|
|
127
|
+
batchAttempt.completionPath = completionPath;
|
|
128
|
+
batchAttempt.resumedAt = [...batchAttempt.resumedAt ?? [], new Date().toISOString()];
|
|
129
|
+
if (results.length > 0)
|
|
130
|
+
batchAttempt.results = [...batchAttempt.results ?? [], ...results];
|
|
131
|
+
if (failed) {
|
|
132
|
+
batchAttempt.errors = [
|
|
133
|
+
...errors,
|
|
134
|
+
...unrecoverable.map((state) => describeResumeState(state)),
|
|
135
|
+
];
|
|
136
|
+
}
|
|
137
|
+
await writeBatchAttempt(batchAttemptFile, batchAttempt);
|
|
138
|
+
if (failed) {
|
|
139
|
+
throw new AggregateError(batchAttempt.errors ?? [], `Image batch resume recovered ${completion.succeededCount} of ${completion.candidateCount}`
|
|
140
|
+
+ ` candidate(s) without new spend, and cannot recover the rest.`
|
|
141
|
+
+ ` ${describeBatchRecovery(states)}. Give any unrecoverable candidate a new output path and`
|
|
142
|
+
+ ` idempotency key to buy it again. Evidence: ${batchAttemptFile}.`
|
|
143
|
+
+ ` Completion sentinel: ${completionPath}`);
|
|
144
|
+
}
|
|
145
|
+
console.log(JSON.stringify({
|
|
146
|
+
provider: batchAttempt.provider,
|
|
147
|
+
model: batchAttempt.model,
|
|
148
|
+
manifestPath,
|
|
149
|
+
batchAttemptFile,
|
|
150
|
+
completionPath,
|
|
151
|
+
resumed: true,
|
|
152
|
+
deliveredFromStaging: delivered.length,
|
|
153
|
+
redispatchedWithoutNewSpend: results.length,
|
|
154
|
+
accounting: batchAttempt.accounting,
|
|
155
|
+
candidates: completion.candidates,
|
|
156
|
+
}, null, 2));
|
|
157
|
+
};
|
|
158
|
+
//# sourceMappingURL=cli-image-batch-resume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-image-batch-resume.js","sourceRoot":"","sources":["../src/cli-image-batch-resume.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAE5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,iBAAiB,GAElB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,GAEnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,GAE9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,YAAY,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,CAC/C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,QAA2C,EACZ,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,UAAU,EAAE,OAAO,CAAC,UAAU;IAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;CACvC,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAA6C,EACrC,EAAE;IACV,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG;QACZ,GAAG,OAAO,CAAC,YAAY,kBAAkB;QACzC,GAAG,OAAO,CAAC,SAAS,kCAAkC;QACtD,GAAG,OAAO,CAAC,cAAc,gCAAgC;QACzD,GAAG,OAAO,CAAC,aAAa,gBAAgB;KACzC,CAAC;IACF,OAAO,GAAG,MAAM,CAAC,MAAM,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9D,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,IAU7C,EAAiB,EAAE;IAClB,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACxF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,6BAA6B,CAAC;QACvF,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC,CAAC,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,IAAI,OAAO,CAAC,cAAc,KAAK,CAAC,IAAI,OAAO,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAC3F,2EAA2E;QAC3E,uEAAuE;QACvE,wEAAwE;QACxE,4EAA4E;QAC5E,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,2BAA2B,CAAC;YACvE,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,WAAW;YACnB,UAAU;SACX,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CACb,uFAAuF;cACrF,2DAA2D,UAAU,CAAC,UAAU;iBAC/E,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,UAAU,EAAE;kBACzD,WAAW,SAAS,CAAC,MAAM,IAAI,SAAS,UAAU,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;iBAC5E,IAAI,CAAC,IAAI,CAAC,0BAA0B,cAAc,EAAE,CACxD,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;IAC9E,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAE1F,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,gBAAgB,CAAC,CAAC;IACpF,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,sBAAsB,CAAC,CAAC;YAC9E,QAAQ,EAAE,YAAY,CAAC,iBAAiB;YACxC,WAAW,EAAE,YAAY,CAAC,WAAW;SACtC,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,QAAQ,KAAK,YAAY,CAAC,QAAQ,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,2BAA2B,SAAS,CAAC,QAAQ,sCAAsC;kBACjF,IAAI,YAAY,CAAC,QAAQ,yDAAyD,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC1D,6BAA6B,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAC3D,CAAC,CAAC,CAAC;QACJ,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,6BAA6B,CAAC;YACvE,OAAO;YACP,SAAS;YACT,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,IAAI;gBACvD,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,UAAU;gBAClB,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,2BAA2B,EAAE,SAAS,CAAC,QAAQ,KAAK,QAAQ;gBAC5D,gBAAgB,EAAE,SAAS,CAAC,QAAQ,KAAK,OAAO;oBAC9C,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE;oBAC1C,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE;gBACtC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;gBAC7E,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC;SACF,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9D,uBAAuB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CACxE,CAAC,CAAC,CAAC;QACJ,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;;gBAC3D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,YAAY,CAAC,UAAU,GAAG,6BAA6B,CACrD,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAC1C,SAAS,CAAC,QAAQ,CACnB,CAAC;IACJ,CAAC;IAED,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAExC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,eAAe,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7D,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,2BAA2B,CAAC;QACvE,YAAY;QACZ,cAAc;QACd,gBAAgB;QAChB,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;QACvC,UAAU;KACX,CAAC,CAAC;IAEH,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;IACtD,YAAY,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpD,YAAY,CAAC,cAAc,GAAG,cAAc,CAAC;IAC7C,YAAY,CAAC,SAAS,GAAG,CAAC,GAAG,YAAY,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACrF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,YAAY,CAAC,OAAO,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;IAC3F,IAAI,MAAM,EAAE,CAAC;QACX,YAAY,CAAC,MAAM,GAAG;YACpB,GAAG,MAAM;YACT,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAC5D,CAAC;IACJ,CAAC;IACD,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAExD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,cAAc,CACtB,YAAY,CAAC,MAAM,IAAI,EAAE,EACzB,gCAAgC,UAAU,CAAC,cAAc,OAAO,UAAU,CAAC,cAAc,EAAE;cACzF,+DAA+D;cAC/D,IAAI,qBAAqB,CAAC,MAAM,CAAC,0DAA0D;cAC3F,+CAA+C,gBAAgB,GAAG;cAClE,yBAAyB,cAAc,EAAE,CAC5C,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACzB,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,YAAY;QACZ,gBAAgB;QAChB,cAAc;QACd,OAAO,EAAE,IAAI;QACb,oBAAoB,EAAE,SAAS,CAAC,MAAM;QACtC,2BAA2B,EAAE,OAAO,CAAC,MAAM;QAC3C,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,UAAU,EAAE,UAAU,CAAC,UAAU;KAClC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-image-command.d.ts","sourceRoot":"","sources":["../src/cli-image-command.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-image-command.d.ts","sourceRoot":"","sources":["../src/cli-image-command.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAiB/D,OAAO,EAGL,sBAAsB,EACvB,MAAM,+BAA+B,CAAC;AAoCvC,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,GAAG,SAAS,EAC1B,OAAO,QAAQ,EACf,eAAc;IACZ,QAAQ,CAAC,EAAE,OAAO,aAAa,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,sBAAsB,CAAC;CACtC,KACL,OAAO,CAAC,IAAI,CAoEd,CAAC"}
|
|
@@ -3,6 +3,7 @@ import path from 'node:path';
|
|
|
3
3
|
import { stringFlag } from './cli-arguments.js';
|
|
4
4
|
import { dispatchImageGeneration, markImageGenerationDispatched, reserveImageGeneration, } from './image-generation-run.js';
|
|
5
5
|
import { IMAGE_GENERATION_ASPECTS, IMAGE_GENERATION_REFERENCE_MODES, isImageGenerationAspect, isImageGenerationReferenceMode, prepareImageGenerationRequest, } from './image-generation-request.js';
|
|
6
|
+
import { materializeImageGeneration } from './image-generation-staging.js';
|
|
6
7
|
import { IMAGE_GENERATION_PROVIDERS, isImageGenerationProvider, preflightImageProvider, } from './image-provider-preflight.js';
|
|
7
8
|
import { normalizeOptionalIdempotencyKey } from './idempotency-key.js';
|
|
8
9
|
const referenceFlag = (flags) => {
|
|
@@ -86,7 +87,18 @@ export const runImageCommand = async (action, flags, dependencies = {}) => {
|
|
|
86
87
|
});
|
|
87
88
|
const reserved = await reserveImageGeneration({ request, preflight });
|
|
88
89
|
await markImageGenerationDispatched(reserved);
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
try {
|
|
91
|
+
const result = await dispatchImageGeneration(reserved, { generate: dependencies.generate });
|
|
92
|
+
// The PNG and its completed ledger entry appear together. Until this
|
|
93
|
+
// returns, the destination directory holds neither.
|
|
94
|
+
await materializeImageGeneration(outputPath);
|
|
95
|
+
console.log(JSON.stringify(result, null, 2));
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
// Terminal failures still owe the caller their evidence at the documented
|
|
99
|
+
// path, even though there is no image to deliver.
|
|
100
|
+
await materializeImageGeneration(outputPath).catch(() => undefined);
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
91
103
|
};
|
|
92
104
|
//# sourceMappingURL=cli-image-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-image-command.js","sourceRoot":"","sources":["../src/cli-image-command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-image-command.js","sourceRoot":"","sources":["../src/cli-image-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ConversionOperation } from './conversion-client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Expected wall time, in seconds, for the long conversion operations.
|
|
4
|
+
*
|
|
5
|
+
* These are measured medians on 1440px-wide sources at `--model standard`, not
|
|
6
|
+
* guarantees. They exist because the alternative — a command that prints
|
|
7
|
+
* nothing for four minutes — reads as a hang, and an agent that believes a
|
|
8
|
+
* command hung retries it, which buys the work twice.
|
|
9
|
+
*/
|
|
10
|
+
export declare const CONVERSION_DURATION_HINTS: {
|
|
11
|
+
/** image -> LayerDoc. Extraction plus materialization. */
|
|
12
|
+
readonly convert: 240;
|
|
13
|
+
/** A responsive HTML export run on its own, after the conversion finished. */
|
|
14
|
+
readonly export: 240;
|
|
15
|
+
/**
|
|
16
|
+
* Fused convert + export. The export's reference and anchor conversions run
|
|
17
|
+
* alongside the conversion, so the bundle costs about the slower half plus
|
|
18
|
+
* assembly rather than the sum of both.
|
|
19
|
+
*/
|
|
20
|
+
readonly fused: 300;
|
|
21
|
+
};
|
|
22
|
+
export type ConversionDurationHintKind = keyof typeof CONVERSION_DURATION_HINTS;
|
|
23
|
+
export declare const formatDuration: (seconds: number) => string;
|
|
24
|
+
export declare const durationHint: (kind: ConversionDurationHintKind) => string;
|
|
25
|
+
export declare const stageLabel: (stage: string) => string;
|
|
26
|
+
export type ProgressReporter = {
|
|
27
|
+
onProgress: (operation: ConversionOperation) => void;
|
|
28
|
+
/** Final line for a finished operation. */
|
|
29
|
+
done: (operation: ConversionOperation) => void;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Streams stage progress to stderr, one line per distinct stage/percent.
|
|
33
|
+
*
|
|
34
|
+
* stderr, not stdout, so the command's machine-readable result stays a single
|
|
35
|
+
* clean JSON document that a caller can pipe. Deduplicated because the poll
|
|
36
|
+
* loop revalidates every couple of seconds and mostly sees no change.
|
|
37
|
+
*/
|
|
38
|
+
export declare const createProgressReporter: (args: {
|
|
39
|
+
label: string;
|
|
40
|
+
quiet?: boolean;
|
|
41
|
+
write?: (line: string) => void;
|
|
42
|
+
now?: () => number;
|
|
43
|
+
}) => ProgressReporter;
|
|
44
|
+
//# sourceMappingURL=cli-progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-progress.d.ts","sourceRoot":"","sources":["../src/cli-progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB;IACpC,0DAA0D;;IAE1D,8EAA8E;;IAE9E;;;;OAIG;;CAEK,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,yBAAyB,CAAC;AAEhF,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,MAMhD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,0BAA0B,KAAG,MAE/D,CAAC;AAsBF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAAsC,CAAC;AAElF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrD,2CAA2C;IAC3C,IAAI,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,KAAG,gBAsBH,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Expected wall time, in seconds, for the long conversion operations.
|
|
3
|
+
*
|
|
4
|
+
* These are measured medians on 1440px-wide sources at `--model standard`, not
|
|
5
|
+
* guarantees. They exist because the alternative — a command that prints
|
|
6
|
+
* nothing for four minutes — reads as a hang, and an agent that believes a
|
|
7
|
+
* command hung retries it, which buys the work twice.
|
|
8
|
+
*/
|
|
9
|
+
export const CONVERSION_DURATION_HINTS = {
|
|
10
|
+
/** image -> LayerDoc. Extraction plus materialization. */
|
|
11
|
+
convert: 240,
|
|
12
|
+
/** A responsive HTML export run on its own, after the conversion finished. */
|
|
13
|
+
export: 240,
|
|
14
|
+
/**
|
|
15
|
+
* Fused convert + export. The export's reference and anchor conversions run
|
|
16
|
+
* alongside the conversion, so the bundle costs about the slower half plus
|
|
17
|
+
* assembly rather than the sum of both.
|
|
18
|
+
*/
|
|
19
|
+
fused: 300,
|
|
20
|
+
};
|
|
21
|
+
export const formatDuration = (seconds) => {
|
|
22
|
+
const whole = Math.max(0, Math.round(seconds));
|
|
23
|
+
if (whole < 90)
|
|
24
|
+
return `${whole}s`;
|
|
25
|
+
const minutes = Math.floor(whole / 60);
|
|
26
|
+
const rest = whole % 60;
|
|
27
|
+
return rest === 0 ? `${minutes}m` : `${minutes}m ${rest}s`;
|
|
28
|
+
};
|
|
29
|
+
export const durationHint = (kind) => (`expect about ${formatDuration(CONVERSION_DURATION_HINTS[kind])}`);
|
|
30
|
+
/** Human-readable name for a pipeline stage, for progress lines. */
|
|
31
|
+
const STAGE_LABELS = {
|
|
32
|
+
queued: 'queued',
|
|
33
|
+
prepare: 'preparing',
|
|
34
|
+
extract_merge_snap: 'extracting layers',
|
|
35
|
+
materialize: 'materializing assets',
|
|
36
|
+
// The operation projection substitutes these display stages for the raw
|
|
37
|
+
// pipeline stage while a conversion is extracting or materializing.
|
|
38
|
+
extracting_layers: 'extracting layers',
|
|
39
|
+
materializing_assets: 'materializing assets',
|
|
40
|
+
enhancing_2x: 'enhancing assets (2x)',
|
|
41
|
+
edit: 'applying edit',
|
|
42
|
+
responsive_reference: 'generating responsive references',
|
|
43
|
+
responsive_anchors: 'converting responsive anchors',
|
|
44
|
+
flow_emit_sanitize: 'emitting HTML',
|
|
45
|
+
static_export: 'rendering export',
|
|
46
|
+
project_export: 'building project',
|
|
47
|
+
publish: 'publishing',
|
|
48
|
+
};
|
|
49
|
+
export const stageLabel = (stage) => STAGE_LABELS[stage] ?? stage;
|
|
50
|
+
/**
|
|
51
|
+
* Streams stage progress to stderr, one line per distinct stage/percent.
|
|
52
|
+
*
|
|
53
|
+
* stderr, not stdout, so the command's machine-readable result stays a single
|
|
54
|
+
* clean JSON document that a caller can pipe. Deduplicated because the poll
|
|
55
|
+
* loop revalidates every couple of seconds and mostly sees no change.
|
|
56
|
+
*/
|
|
57
|
+
export const createProgressReporter = (args) => {
|
|
58
|
+
const write = args.write ?? ((line) => { process.stderr.write(`${line}\n`); });
|
|
59
|
+
const startedAt = (args.now ?? Date.now)();
|
|
60
|
+
let last = '';
|
|
61
|
+
const elapsed = () => formatDuration(((args.now ?? Date.now)() - startedAt) / 1000);
|
|
62
|
+
return {
|
|
63
|
+
onProgress: (operation) => {
|
|
64
|
+
if (args.quiet)
|
|
65
|
+
return;
|
|
66
|
+
const stage = operation.progress?.stage ?? operation.status;
|
|
67
|
+
const percent = operation.progress?.percent;
|
|
68
|
+
const line = percent === undefined
|
|
69
|
+
? `${args.label}: ${stageLabel(stage)}`
|
|
70
|
+
: `${args.label}: ${stageLabel(stage)} ${percent}%`;
|
|
71
|
+
if (line === last)
|
|
72
|
+
return;
|
|
73
|
+
last = line;
|
|
74
|
+
write(`[${elapsed()}] ${line}`);
|
|
75
|
+
},
|
|
76
|
+
done: (operation) => {
|
|
77
|
+
if (args.quiet)
|
|
78
|
+
return;
|
|
79
|
+
write(`[${elapsed()}] ${args.label}: ${operation.status}`);
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=cli-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-progress.js","sourceRoot":"","sources":["../src/cli-progress.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -13,6 +13,7 @@ import { runImageCommand } from './cli-image-command.js';
|
|
|
13
13
|
import { runSkillCommand } from './cli-skill-command.js';
|
|
14
14
|
import { isConversionModel } from './conversion-models.js';
|
|
15
15
|
import { TwelveUiConversionClient, } from './conversion-client.js';
|
|
16
|
+
import { createProgressReporter, durationHint } from './cli-progress.js';
|
|
16
17
|
import { CONVERSION_OUTPUTS, isConversionOutput } from './conversion-outputs.js';
|
|
17
18
|
import { readConversionConfig } from './config.js';
|
|
18
19
|
import { classifyLocalConversionInput, createInputForLocalFile, defaultConversionOutputPath, } from './local-conversion-input.js';
|
|
@@ -36,14 +37,19 @@ const usage = (exitCode = 1) => {
|
|
|
36
37
|
12ui corpus inspire --query <text>|--query-file <file> --out-dir <directory> [--mode direct|balanced|adventurer] [--count <1-48>] [--reference-image <png|jpeg|webp>] [--idempotency-key <key>] [--origin <url>] [--api-key <key>]
|
|
37
38
|
12ui corpus resume --out-dir <directory> [--origin <url>] [--api-key <key>]
|
|
38
39
|
12ui image generate --prompt <text>|--prompt-file <file> --reference <file> --out <file.png> [--aspect landscape|portrait|square] [--reference-mode inspiration|preserve-structure] [--provider auto|codex|openai] --project-root <directory> --idempotency-key <key>
|
|
39
|
-
12ui image generate-batch --manifest <batch.json>
|
|
40
|
+
12ui image generate-batch --manifest <batch.json> [--resume]
|
|
40
41
|
12ui capabilities [--json]
|
|
41
|
-
12ui convert <image.png|jpg|webp|layerdoc.json> --output ${outputs} [--model fast|standard|pro] [--width <px>] [--responsive-quality standard|pro] [--profile <json|file>] [--out <file>] [--detach] [--timeout-ms <ms>] [--idempotency-key <key>] [--origin <url>] [--api-key <key>]
|
|
42
|
+
12ui convert <image.png|jpg|webp|layerdoc.json> --output ${outputs} [--model fast|standard|pro] [--width <px>] [--export html] [--export-quality standard|pro] [--export-out <file>] [--responsive-quality standard|pro] [--profile <json|file>] [--out <file>] [--detach] [--quiet] [--timeout-ms <ms>] [--idempotency-key <key>] [--origin <url>] [--api-key <key>]
|
|
42
43
|
12ui export <source-conversion-id> --output <comma-separated-formats> --out-dir <directory> --idempotency-key <key> [--responsive-quality standard|pro] [--web-profile <json|file>] [--app-profile <json|file>] [--timeout-ms <ms>] [--origin <url>] [--api-key <key>]
|
|
43
44
|
12ui resume <conversion-id> --output ${outputs} --out <file> [--timeout-ms <ms>] [--origin <url>] [--api-key <key>]
|
|
44
45
|
12ui mcp [--origin <url>] [--api-key <key>]
|
|
45
46
|
12ui --version
|
|
46
47
|
|
|
48
|
+
--export html converts and exports responsive HTML in ONE blocking command; the
|
|
49
|
+
export runs alongside the conversion, so the pair finishes in about the time of
|
|
50
|
+
the conversion alone (~5m) instead of ~8m. Progress goes to stderr; --quiet
|
|
51
|
+
silences it.
|
|
52
|
+
|
|
47
53
|
Omit --client to discover and target every supported CLI installation.`);
|
|
48
54
|
process.exit(exitCode);
|
|
49
55
|
};
|
|
@@ -77,16 +83,19 @@ const parseProjectProfileFlag = async (output, value) => {
|
|
|
77
83
|
}
|
|
78
84
|
return parseConversionOutputProfile(output, parsed);
|
|
79
85
|
};
|
|
80
|
-
const
|
|
86
|
+
const downloadCompletedConversion = async (args) => {
|
|
81
87
|
const downloaded = await args.client.downloadResult(args.operation.id, args.output);
|
|
82
88
|
await writeFile(args.outFile, downloaded.bytes);
|
|
83
89
|
const artifactManifest = await materializeConversionArtifacts(args.client, args.operation, args.outFile);
|
|
84
|
-
|
|
90
|
+
return {
|
|
85
91
|
id: args.operation.id,
|
|
86
92
|
output: args.output,
|
|
87
93
|
outFile: args.outFile,
|
|
88
94
|
artifactManifest,
|
|
89
|
-
}
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
const writeCompletedConversion = async (args) => {
|
|
98
|
+
console.log(JSON.stringify(await downloadCompletedConversion(args), null, 2));
|
|
90
99
|
};
|
|
91
100
|
const printCapabilities = () => {
|
|
92
101
|
console.log(JSON.stringify(CLI_CAPABILITIES, null, 2));
|
|
@@ -184,14 +193,43 @@ const runConversionCommand = async (command, flags) => {
|
|
|
184
193
|
if (responsiveValue && output !== 'html') {
|
|
185
194
|
throw new Error('--responsive-quality is only valid with --output html');
|
|
186
195
|
}
|
|
196
|
+
// --export asks for the responsive HTML export to run ALONGSIDE the
|
|
197
|
+
// conversion in one blocking command, instead of the create-then-export
|
|
198
|
+
// choreography that costs the two runs back to back.
|
|
199
|
+
const exportValue = stringFlag(flags, 'export');
|
|
200
|
+
if (exportValue !== undefined && exportValue !== 'html') {
|
|
201
|
+
throw new Error('--export must be html');
|
|
202
|
+
}
|
|
203
|
+
const exportQualityValue = stringFlag(flags, 'export-quality');
|
|
204
|
+
if (exportQualityValue !== undefined && !isResponsiveConversionQuality(exportQualityValue)) {
|
|
205
|
+
throw new Error(`--export-quality must be one of: ${RESPONSIVE_CONVERSION_QUALITIES.join(', ')}`);
|
|
206
|
+
}
|
|
207
|
+
if (exportQualityValue !== undefined && exportValue === undefined) {
|
|
208
|
+
throw new Error('--export-quality requires --export html');
|
|
209
|
+
}
|
|
210
|
+
const exportOutValue = stringFlag(flags, 'export-out');
|
|
211
|
+
if (exportOutValue !== undefined && exportValue === undefined) {
|
|
212
|
+
throw new Error('--export-out requires --export html');
|
|
213
|
+
}
|
|
214
|
+
if (exportValue !== undefined) {
|
|
215
|
+
if (input.layerdoc !== undefined)
|
|
216
|
+
throw new Error('--export requires image input');
|
|
217
|
+
if (output !== 'layerdoc')
|
|
218
|
+
throw new Error('--export requires --output layerdoc');
|
|
219
|
+
}
|
|
220
|
+
const exportHtml = exportValue === 'html'
|
|
221
|
+
? { ...(exportQualityValue ? { responsiveQuality: exportQualityValue } : {}) }
|
|
222
|
+
: undefined;
|
|
187
223
|
const conversionInput = input.layerdoc !== undefined
|
|
188
224
|
? input
|
|
189
225
|
: {
|
|
190
226
|
...input,
|
|
191
227
|
...(model ? { model } : {}),
|
|
192
228
|
...(responsiveValue ? { responsiveQuality: responsiveValue } : {}),
|
|
229
|
+
...(exportHtml ? { exportHtml } : {}),
|
|
193
230
|
};
|
|
194
231
|
const detach = booleanFlag(flags, 'detach');
|
|
232
|
+
const quiet = booleanFlag(flags, 'quiet');
|
|
195
233
|
const created = await client.createConversion({
|
|
196
234
|
...conversionInput,
|
|
197
235
|
...(idempotencyKey ? { idempotencyKey } : {}),
|
|
@@ -202,10 +240,17 @@ const runConversionCommand = async (command, flags) => {
|
|
|
202
240
|
id: created.id,
|
|
203
241
|
status: created.status,
|
|
204
242
|
output: created.output,
|
|
243
|
+
...(created.export ? { export: created.export } : {}),
|
|
205
244
|
expiresAt: created.expires_at,
|
|
206
245
|
}, null, 2));
|
|
207
246
|
return;
|
|
208
247
|
}
|
|
248
|
+
const exportOperationId = created.export?.conversion_id ?? null;
|
|
249
|
+
if (!quiet) {
|
|
250
|
+
process.stderr.write(`12ui convert ${created.id}${exportOperationId ? ` (+ export ${exportOperationId})` : ''}`
|
|
251
|
+
+ ` — ${durationHint(exportOperationId ? 'fused' : 'convert')}\n`);
|
|
252
|
+
}
|
|
253
|
+
const reporter = createProgressReporter({ label: 'convert', quiet });
|
|
209
254
|
let operation;
|
|
210
255
|
try {
|
|
211
256
|
operation = created.status === 'succeeded'
|
|
@@ -213,14 +258,55 @@ const runConversionCommand = async (command, flags) => {
|
|
|
213
258
|
: await client.waitForConversion(created.id, {
|
|
214
259
|
expiresAt: created.expires_at,
|
|
215
260
|
timeoutMs,
|
|
261
|
+
onProgress: reporter.onProgress,
|
|
216
262
|
});
|
|
217
263
|
}
|
|
218
264
|
catch (error) {
|
|
219
265
|
const detail = error instanceof Error ? error.message : String(error);
|
|
220
266
|
throw new Error(`Conversion ${created.id} failed: ${detail}`, { cause: error });
|
|
221
267
|
}
|
|
268
|
+
reporter.done(operation);
|
|
222
269
|
const outFile = path.resolve(stringFlag(flags, 'out') || defaultConversionOutputPath(inputPath, output));
|
|
223
|
-
await
|
|
270
|
+
const result = await downloadCompletedConversion({ client, operation, output, outFile });
|
|
271
|
+
if (!exportOperationId) {
|
|
272
|
+
console.log(JSON.stringify(result, null, 2));
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
// The conversion is already on disk. An export that fails or is still
|
|
276
|
+
// running after the budget must not take it back: the two halves are
|
|
277
|
+
// separate operations and the conversion is the authoritative answer for its
|
|
278
|
+
// own half.
|
|
279
|
+
const exportReporter = createProgressReporter({ label: 'export', quiet });
|
|
280
|
+
const exportOutFile = path.resolve(exportOutValue || defaultConversionOutputPath(inputPath, 'html'));
|
|
281
|
+
let exportResult = null;
|
|
282
|
+
let exportError = null;
|
|
283
|
+
try {
|
|
284
|
+
const exportOperation = await client.waitForConversion(exportOperationId, {
|
|
285
|
+
expiresAt: created.expires_at,
|
|
286
|
+
timeoutMs,
|
|
287
|
+
onProgress: exportReporter.onProgress,
|
|
288
|
+
});
|
|
289
|
+
exportReporter.done(exportOperation);
|
|
290
|
+
exportResult = await downloadCompletedConversion({
|
|
291
|
+
client,
|
|
292
|
+
operation: exportOperation,
|
|
293
|
+
output: 'html',
|
|
294
|
+
outFile: exportOutFile,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
exportError = error instanceof Error ? error.message : String(error);
|
|
299
|
+
}
|
|
300
|
+
console.log(JSON.stringify({
|
|
301
|
+
...result,
|
|
302
|
+
export: exportResult
|
|
303
|
+
? { ...exportResult, status: 'succeeded' }
|
|
304
|
+
: { id: exportOperationId, output: 'html', status: 'failed', error: exportError },
|
|
305
|
+
}, null, 2));
|
|
306
|
+
if (!exportResult) {
|
|
307
|
+
throw new Error(`Conversion ${created.id} succeeded and was written to ${outFile}, but its responsive HTML`
|
|
308
|
+
+ ` export ${exportOperationId} did not: ${exportError}`);
|
|
309
|
+
}
|
|
224
310
|
};
|
|
225
311
|
const main = async () => {
|
|
226
312
|
const { command, flags } = parseCliArguments(process.argv.slice(2));
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|