@12ui/design 0.2.26 → 0.2.28
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 +72 -87
- package/SKILL.md +5 -5
- package/dist/branch-client.d.ts +7 -0
- package/dist/branch-client.d.ts.map +1 -1
- package/dist/branch-client.js +1 -0
- package/dist/branch-client.js.map +1 -1
- package/dist/branch-completion.d.ts +8 -0
- package/dist/branch-completion.d.ts.map +1 -1
- package/dist/branch-completion.js +84 -16
- package/dist/branch-completion.js.map +1 -1
- package/dist/branch-execution.d.ts +8 -0
- package/dist/branch-execution.d.ts.map +1 -1
- package/dist/branch-execution.js +62 -11
- package/dist/branch-execution.js.map +1 -1
- package/dist/branch-identity.d.ts +10 -4
- package/dist/branch-identity.d.ts.map +1 -1
- package/dist/branch-identity.js +9 -6
- package/dist/branch-identity.js.map +1 -1
- package/dist/branch-page-conversion.d.ts +14 -8
- package/dist/branch-page-conversion.d.ts.map +1 -1
- package/dist/branch-page-conversion.js +32 -15
- package/dist/branch-page-conversion.js.map +1 -1
- package/dist/branch-page-packaging.d.ts +31 -0
- package/dist/branch-page-packaging.d.ts.map +1 -0
- package/dist/branch-page-packaging.js +86 -0
- package/dist/branch-page-packaging.js.map +1 -0
- package/dist/branch-plan.d.ts +44 -0
- package/dist/branch-plan.d.ts.map +1 -1
- package/dist/branch-plan.js +89 -18
- package/dist/branch-plan.js.map +1 -1
- package/dist/branch-progress.d.ts +22 -0
- package/dist/branch-progress.d.ts.map +1 -1
- package/dist/branch-progress.js +46 -8
- package/dist/branch-progress.js.map +1 -1
- package/dist/branch-run-record.d.ts +36 -1
- package/dist/branch-run-record.d.ts.map +1 -1
- package/dist/branch-run-record.js.map +1 -1
- package/dist/branch-status.d.ts +2 -0
- package/dist/branch-status.d.ts.map +1 -1
- package/dist/branch-status.js +60 -15
- package/dist/branch-status.js.map +1 -1
- package/dist/branch-winner.d.ts +13 -15
- package/dist/branch-winner.d.ts.map +1 -1
- package/dist/branch-winner.js +25 -77
- package/dist/branch-winner.js.map +1 -1
- package/dist/cli-auth-command.d.ts.map +1 -1
- package/dist/cli-auth-command.js +5 -0
- package/dist/cli-auth-command.js.map +1 -1
- package/dist/cli-auth-onboarding.d.ts +12 -0
- package/dist/cli-auth-onboarding.d.ts.map +1 -0
- package/dist/cli-auth-onboarding.js +21 -0
- package/dist/cli-auth-onboarding.js.map +1 -0
- package/dist/cli-branch-command.d.ts +14 -19
- package/dist/cli-branch-command.d.ts.map +1 -1
- package/dist/cli-branch-command.js +207 -137
- package/dist/cli-branch-command.js.map +1 -1
- package/dist/cli-capabilities.d.ts +10 -51
- package/dist/cli-capabilities.d.ts.map +1 -1
- package/dist/cli-capabilities.js +13 -26
- package/dist/cli-capabilities.js.map +1 -1
- package/dist/cli-cli-command.d.ts +3 -0
- package/dist/cli-cli-command.d.ts.map +1 -1
- package/dist/cli-cli-command.js +15 -3
- package/dist/cli-cli-command.js.map +1 -1
- package/dist/cli-conversion-derivation.d.ts +30 -0
- package/dist/cli-conversion-derivation.d.ts.map +1 -0
- package/dist/{cli-export-command.js → cli-conversion-derivation.js} +178 -110
- package/dist/cli-conversion-derivation.js.map +1 -0
- package/dist/cli-conversion-output-directory.d.ts +5 -0
- package/dist/cli-conversion-output-directory.d.ts.map +1 -0
- package/dist/{cli-export-output-directory.js → cli-conversion-output-directory.js} +10 -10
- package/dist/cli-conversion-output-directory.js.map +1 -0
- package/dist/cli-convert-command.d.ts +9 -0
- package/dist/cli-convert-command.d.ts.map +1 -1
- package/dist/cli-convert-command.js +528 -158
- package/dist/cli-convert-command.js.map +1 -1
- package/dist/cli-corpus-command.d.ts.map +1 -1
- package/dist/cli-corpus-command.js +77 -10
- package/dist/cli-corpus-command.js.map +1 -1
- package/dist/cli-corpus-reference-downloads.d.ts +5 -0
- package/dist/cli-corpus-reference-downloads.d.ts.map +1 -1
- package/dist/cli-corpus-reference-downloads.js +18 -7
- package/dist/cli-corpus-reference-downloads.js.map +1 -1
- package/dist/cli-corpus-run.d.ts +9 -0
- package/dist/cli-corpus-run.d.ts.map +1 -1
- package/dist/cli-corpus-run.js +18 -0
- package/dist/cli-corpus-run.js.map +1 -1
- package/dist/cli-detach.d.ts +12 -4
- package/dist/cli-detach.d.ts.map +1 -1
- package/dist/cli-detach.js +49 -17
- package/dist/cli-detach.js.map +1 -1
- package/dist/cli-draft-command.d.ts +44 -61
- package/dist/cli-draft-command.d.ts.map +1 -1
- package/dist/cli-draft-command.js +307 -180
- package/dist/cli-draft-command.js.map +1 -1
- package/dist/cli-help/conversion.d.ts +30 -0
- package/dist/cli-help/conversion.d.ts.map +1 -0
- package/dist/cli-help/conversion.js +55 -0
- package/dist/cli-help/conversion.js.map +1 -0
- package/dist/cli-help/design.d.ts +74 -0
- package/dist/cli-help/design.d.ts.map +1 -0
- package/dist/cli-help/design.js +131 -0
- package/dist/cli-help/design.js.map +1 -0
- package/dist/cli-help/index.d.ts +224 -0
- package/dist/cli-help/index.d.ts.map +1 -0
- package/dist/cli-help/index.js +32 -0
- package/dist/cli-help/index.js.map +1 -0
- package/dist/cli-help/meta.d.ts +24 -0
- package/dist/cli-help/meta.d.ts.map +1 -0
- package/dist/cli-help/meta.js +30 -0
- package/dist/cli-help/meta.js.map +1 -0
- package/dist/cli-help/render.d.ts +4 -0
- package/dist/cli-help/render.d.ts.map +1 -0
- package/dist/cli-help/render.js +28 -0
- package/dist/cli-help/render.js.map +1 -0
- package/dist/cli-help/setup.d.ts +93 -0
- package/dist/cli-help/setup.d.ts.map +1 -0
- package/dist/cli-help/setup.js +142 -0
- package/dist/cli-help/setup.js.map +1 -0
- package/dist/cli-help/types.d.ts +10 -0
- package/dist/cli-help/types.d.ts.map +1 -0
- package/dist/cli-help/types.js +2 -0
- package/dist/cli-help/types.js.map +1 -0
- package/dist/cli-next-command.d.ts +11 -8
- package/dist/cli-next-command.d.ts.map +1 -1
- package/dist/cli-next-command.js +288 -88
- package/dist/cli-next-command.js.map +1 -1
- package/dist/cli-output-paths.d.ts +2 -23
- package/dist/cli-output-paths.d.ts.map +1 -1
- package/dist/cli-output-paths.js +2 -36
- package/dist/cli-output-paths.js.map +1 -1
- package/dist/cli-package-command.d.ts +1 -0
- package/dist/cli-package-command.d.ts.map +1 -1
- package/dist/cli-package-command.js +107 -34
- package/dist/cli-package-command.js.map +1 -1
- package/dist/cli-pending-auth.d.ts +20 -0
- package/dist/cli-pending-auth.d.ts.map +1 -0
- package/dist/cli-pending-auth.js +160 -0
- package/dist/cli-pending-auth.js.map +1 -0
- package/dist/cli-progress.d.ts +256 -75
- package/dist/cli-progress.d.ts.map +1 -1
- package/dist/cli-progress.js +425 -98
- package/dist/cli-progress.js.map +1 -1
- package/dist/cli-run.d.ts +2 -0
- package/dist/cli-run.d.ts.map +1 -1
- package/dist/cli-run.js +56 -75
- package/dist/cli-run.js.map +1 -1
- package/dist/cli-skill-command.d.ts +3 -0
- package/dist/cli-skill-command.d.ts.map +1 -1
- package/dist/cli-skill-command.js +26 -3
- package/dist/cli-skill-command.js.map +1 -1
- package/dist/cli-usage.d.ts +17 -8
- package/dist/cli-usage.d.ts.map +1 -1
- package/dist/cli-usage.js +55 -40
- package/dist/cli-usage.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -2
- package/dist/config.js.map +1 -1
- package/dist/conversion-client.d.ts +4 -0
- package/dist/conversion-client.d.ts.map +1 -1
- package/dist/conversion-client.js +23 -3
- package/dist/conversion-client.js.map +1 -1
- package/dist/conversion-outputs.d.ts +11 -0
- package/dist/conversion-outputs.d.ts.map +1 -1
- package/dist/conversion-outputs.js +13 -1
- package/dist/conversion-outputs.js.map +1 -1
- package/dist/conversion-receipt.d.ts +1 -1
- package/dist/conversion-receipt.js +1 -1
- package/dist/conversion-recovery.d.ts +20 -0
- package/dist/conversion-recovery.d.ts.map +1 -0
- package/dist/conversion-recovery.js +61 -0
- package/dist/conversion-recovery.js.map +1 -0
- package/dist/conversion-status-contract.js +1 -1
- package/dist/conversion-status-contract.js.map +1 -1
- package/dist/credential-setup.d.ts +9 -1
- package/dist/credential-setup.d.ts.map +1 -1
- package/dist/credential-setup.js +13 -1
- package/dist/credential-setup.js.map +1 -1
- package/dist/draft-adoption.d.ts +9 -3
- package/dist/draft-adoption.d.ts.map +1 -1
- package/dist/draft-adoption.js +26 -41
- package/dist/draft-adoption.js.map +1 -1
- package/dist/draft-identity.d.ts +9 -12
- package/dist/draft-identity.d.ts.map +1 -1
- package/dist/draft-identity.js +0 -0
- package/dist/draft-identity.js.map +1 -1
- package/dist/draft-run.d.ts +9 -19
- package/dist/draft-run.d.ts.map +1 -1
- package/dist/draft-run.js +67 -95
- package/dist/draft-run.js.map +1 -1
- package/dist/draft-workspace.d.ts +26 -18
- package/dist/draft-workspace.d.ts.map +1 -1
- package/dist/draft-workspace.js +16 -5
- package/dist/draft-workspace.js.map +1 -1
- package/dist/hosted-draft-identity.d.ts +20 -0
- package/dist/hosted-draft-identity.d.ts.map +1 -0
- package/dist/hosted-draft-identity.js +30 -0
- package/dist/hosted-draft-identity.js.map +1 -0
- package/dist/hosted-draft-run.d.ts +60 -0
- package/dist/hosted-draft-run.d.ts.map +1 -0
- package/dist/hosted-draft-run.js +97 -0
- package/dist/hosted-draft-run.js.map +1 -0
- package/dist/legacy-codex-cleanup.d.ts +13 -0
- package/dist/legacy-codex-cleanup.d.ts.map +1 -1
- package/dist/legacy-codex-cleanup.js +83 -0
- package/dist/legacy-codex-cleanup.js.map +1 -1
- package/dist/legacy-skill-catalog.d.ts +2 -2
- package/dist/legacy-skill-catalog.d.ts.map +1 -1
- package/dist/legacy-skill-catalog.js +76 -5
- package/dist/legacy-skill-catalog.js.map +1 -1
- package/dist/login-auth.d.ts +38 -0
- package/dist/login-auth.d.ts.map +1 -1
- package/dist/login-auth.js +67 -16
- package/dist/login-auth.js.map +1 -1
- package/dist/mcp-tool-definitions.js +1 -1
- package/dist/mcp-tool-definitions.js.map +1 -1
- package/dist/next-target.d.ts +1 -4
- package/dist/next-target.d.ts.map +1 -1
- package/dist/next-target.js +5 -9
- package/dist/next-target.js.map +1 -1
- package/dist/next-wait-lease.d.ts +17 -0
- package/dist/next-wait-lease.d.ts.map +1 -0
- package/dist/next-wait-lease.js +92 -0
- package/dist/next-wait-lease.js.map +1 -0
- package/dist/operation-poll-policy.d.ts +89 -0
- package/dist/operation-poll-policy.d.ts.map +1 -0
- package/dist/operation-poll-policy.js +99 -0
- package/dist/operation-poll-policy.js.map +1 -0
- package/dist/package-client.d.ts +30 -0
- package/dist/package-client.d.ts.map +1 -1
- package/dist/package-client.js +48 -9
- package/dist/package-client.js.map +1 -1
- package/dist/package-submission.d.ts +17 -0
- package/dist/package-submission.d.ts.map +1 -1
- package/dist/package-submission.js +43 -2
- package/dist/package-submission.js.map +1 -1
- package/dist/pending-auth-store.d.ts +15 -0
- package/dist/pending-auth-store.d.ts.map +1 -0
- package/dist/pending-auth-store.js +90 -0
- package/dist/pending-auth-store.js.map +1 -0
- package/dist/responsive-quality.d.ts +2 -2
- package/dist/responsive-quality.js +2 -2
- package/dist/run-journal-commands.d.ts.map +1 -1
- package/dist/run-journal-commands.js +30 -78
- package/dist/run-journal-commands.js.map +1 -1
- package/dist/run-journal-in-flight.d.ts +2 -2
- package/dist/run-journal-in-flight.d.ts.map +1 -1
- package/dist/run-journal-in-flight.js +0 -0
- package/dist/run-journal-in-flight.js.map +1 -1
- package/dist/skill-installer.d.ts +2 -2
- package/dist/skill-installer.d.ts.map +1 -1
- package/dist/skill-installer.js +2 -2
- package/dist/skill-installer.js.map +1 -1
- package/open-design.json +3 -3
- package/package.json +1 -1
- package/skills/12ui-design/SKILL.md +62 -0
- package/skills/12ui-design/agents/openai.yaml +6 -0
- package/skills/12ui-design/inspire.md +11 -0
- package/dist/cli-create-command.d.ts +0 -59
- package/dist/cli-create-command.d.ts.map +0 -1
- package/dist/cli-create-command.js +0 -354
- package/dist/cli-create-command.js.map +0 -1
- package/dist/cli-export-command.d.ts +0 -26
- package/dist/cli-export-command.d.ts.map +0 -1
- package/dist/cli-export-command.js.map +0 -1
- package/dist/cli-export-output-directory.d.ts +0 -5
- package/dist/cli-export-output-directory.d.ts.map +0 -1
- package/dist/cli-export-output-directory.js.map +0 -1
- package/dist/cli-image-batch-command.d.ts +0 -29
- package/dist/cli-image-batch-command.d.ts.map +0 -1
- package/dist/cli-image-batch-command.js +0 -236
- package/dist/cli-image-batch-command.js.map +0 -1
- package/dist/cli-image-batch-materialize.d.ts +0 -27
- package/dist/cli-image-batch-materialize.d.ts.map +0 -1
- package/dist/cli-image-batch-materialize.js +0 -41
- package/dist/cli-image-batch-materialize.js.map +0 -1
- package/dist/cli-image-batch-resume.d.ts +0 -36
- package/dist/cli-image-batch-resume.d.ts.map +0 -1
- package/dist/cli-image-batch-resume.js +0 -176
- package/dist/cli-image-batch-resume.js.map +0 -1
- package/dist/cli-image-command.d.ts +0 -10
- package/dist/cli-image-command.d.ts.map +0 -1
- package/dist/cli-image-command.js +0 -106
- package/dist/cli-image-command.js.map +0 -1
- package/dist/cli-select-command.d.ts +0 -16
- package/dist/cli-select-command.d.ts.map +0 -1
- package/dist/cli-select-command.js +0 -60
- package/dist/cli-select-command.js.map +0 -1
- package/dist/create-identity.d.ts +0 -25
- package/dist/create-identity.d.ts.map +0 -1
- package/dist/create-identity.js +0 -0
- package/dist/create-identity.js.map +0 -1
- package/dist/draft-prompts.d.ts +0 -35
- package/dist/draft-prompts.d.ts.map +0 -1
- package/dist/draft-prompts.js +0 -51
- package/dist/draft-prompts.js.map +0 -1
- package/dist/image-batch-status.d.ts +0 -42
- package/dist/image-batch-status.d.ts.map +0 -1
- package/dist/image-batch-status.js +0 -143
- package/dist/image-batch-status.js.map +0 -1
- package/dist/image-generation-batch-attempt.d.ts +0 -28
- package/dist/image-generation-batch-attempt.d.ts.map +0 -1
- package/dist/image-generation-batch-attempt.js +0 -48
- package/dist/image-generation-batch-attempt.js.map +0 -1
- package/dist/image-generation-batch-manifest.d.ts +0 -25
- package/dist/image-generation-batch-manifest.d.ts.map +0 -1
- package/dist/image-generation-batch-manifest.js +0 -97
- package/dist/image-generation-batch-manifest.js.map +0 -1
- package/dist/image-generation-completion.d.ts +0 -43
- package/dist/image-generation-completion.d.ts.map +0 -1
- package/dist/image-generation-completion.js +0 -54
- package/dist/image-generation-completion.js.map +0 -1
- package/dist/image-generation-error.d.ts +0 -3
- package/dist/image-generation-error.d.ts.map +0 -1
- package/dist/image-generation-error.js +0 -30
- package/dist/image-generation-error.js.map +0 -1
- package/dist/image-generation-evidence.d.ts +0 -43
- package/dist/image-generation-evidence.d.ts.map +0 -1
- package/dist/image-generation-evidence.js +0 -28
- package/dist/image-generation-evidence.js.map +0 -1
- package/dist/image-generation-fs.d.ts +0 -3
- package/dist/image-generation-fs.d.ts.map +0 -1
- package/dist/image-generation-fs.js +0 -23
- package/dist/image-generation-fs.js.map +0 -1
- package/dist/image-generation-output.d.ts +0 -3
- package/dist/image-generation-output.d.ts.map +0 -1
- package/dist/image-generation-output.js +0 -51
- package/dist/image-generation-output.js.map +0 -1
- package/dist/image-generation-request.d.ts +0 -43
- package/dist/image-generation-request.d.ts.map +0 -1
- package/dist/image-generation-request.js +0 -52
- package/dist/image-generation-request.js.map +0 -1
- package/dist/image-generation-resume.d.ts +0 -49
- package/dist/image-generation-resume.d.ts.map +0 -1
- package/dist/image-generation-resume.js +0 -96
- package/dist/image-generation-resume.js.map +0 -1
- package/dist/image-generation-run.d.ts +0 -46
- package/dist/image-generation-run.d.ts.map +0 -1
- package/dist/image-generation-run.js +0 -158
- package/dist/image-generation-run.js.map +0 -1
- package/dist/image-generation-staging.d.ts +0 -25
- package/dist/image-generation-staging.d.ts.map +0 -1
- package/dist/image-generation-staging.js +0 -80
- package/dist/image-generation-staging.js.map +0 -1
- package/dist/image-generation-usage.d.ts +0 -75
- package/dist/image-generation-usage.d.ts.map +0 -1
- package/dist/image-generation-usage.js +0 -219
- package/dist/image-generation-usage.js.map +0 -1
- package/dist/image-provider-preflight.d.ts +0 -21
- package/dist/image-provider-preflight.d.ts.map +0 -1
- package/dist/image-provider-preflight.js +0 -184
- package/dist/image-provider-preflight.js.map +0 -1
- package/dist/selection-record.d.ts +0 -97
- package/dist/selection-record.d.ts.map +0 -1
- package/dist/selection-record.js +0 -138
- package/dist/selection-record.js.map +0 -1
- package/skills/design/SKILL.md +0 -116
- package/skills/design/agents/openai.yaml +0 -8
- package/skills/design/assets/large-logo.svg +0 -3
- package/skills/design/assets/small-400px.png +0 -0
|
@@ -1,26 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { readFile } from 'node:fs/promises';
|
|
1
|
+
import { writeFile, readFile, stat } from 'node:fs/promises';
|
|
3
2
|
import path from 'node:path';
|
|
3
|
+
import { TwelveUiBranchClient } from './branch-client.js';
|
|
4
4
|
import { booleanFlag, stringFlag } from './cli-arguments.js';
|
|
5
5
|
import { CliRefusal } from './cli-refusal.js';
|
|
6
6
|
import { usageRefusal } from './cli-usage.js';
|
|
7
|
-
import {
|
|
7
|
+
import { createLongRunningProgress, nextActionLine, secondsSince, } from './cli-progress.js';
|
|
8
8
|
import { readConversionConfig } from './config.js';
|
|
9
9
|
import { INSPIRATION_ATTEMPT_FILE } from './cli-corpus-types.js';
|
|
10
10
|
import { TwelveUiCorpusClient } from './corpus-client.js';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { draftPaths, readDraftRecord, } from './draft-workspace.js';
|
|
14
|
-
import { DRAFT_CANDIDATE_COUNT,
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* lives, which references steer which candidate, how the keys are derived,
|
|
21
|
-
* when the batch is done — is the CLI's, because each of those was previously
|
|
22
|
-
* a paragraph of prose that a model could and did paraphrase away.
|
|
23
|
-
*/
|
|
11
|
+
import { acquireDraftRunDirectory, transferDraftRunClaim, } from './draft-adoption.js';
|
|
12
|
+
import { draftLocalRunKey } from './draft-identity.js';
|
|
13
|
+
import { draftPaths, readDraftRecord, writeDraftCompletion, } from './draft-workspace.js';
|
|
14
|
+
import { DRAFT_CANDIDATE_COUNT, DRAFT_CANDIDATE_COUNT_MAXIMUM, DRAFT_CANDIDATE_COUNT_MINIMUM, prepareDraftRun, } from './draft-run.js';
|
|
15
|
+
import { readConceptValue } from './concept-input.js';
|
|
16
|
+
import { loadCorpusReferenceImage } from './cli-corpus-reference-image.js';
|
|
17
|
+
import { dispatchHostedDraftSlots, downloadHostedDraftCandidates, hostedDraftRunIsSettled, HOSTED_DRAFT_CANDIDATE_DURATION_SECONDS, summarizeHostedDraftRun, waitForHostedDraftRun, } from './hosted-draft-run.js';
|
|
18
|
+
/** `12ui draft` owns corpus retrieval, the hosted run, and local image materialization. */
|
|
19
|
+
export const INTERNAL_DRAFT_WORKER_ENV = 'TWELVE_UI_INTERNAL_DRAFT_WORKER';
|
|
24
20
|
const parseMode = (flags, hasSource) => {
|
|
25
21
|
const mode = stringFlag(flags, 'mode')?.trim();
|
|
26
22
|
if (!hasSource) {
|
|
@@ -42,113 +38,298 @@ const parseAspect = (flags) => {
|
|
|
42
38
|
return aspect;
|
|
43
39
|
throw new Error('--aspect must be landscape, portrait, or square');
|
|
44
40
|
};
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
throw new Error('--provider must be auto, codex, or openai');
|
|
41
|
+
const rejectLocalProviderFlags = (flags) => {
|
|
42
|
+
const retired = ['provider', 'project-root'].filter((flag) => flags[flag] !== undefined);
|
|
43
|
+
if (retired.length > 0) {
|
|
44
|
+
throw new Error(`${retired.map((flag) => `--${flag}`).join(', ')} retired from 12ui draft.`
|
|
45
|
+
+ ' Draft image generation is hosted and authenticates only to 12ui.');
|
|
46
|
+
}
|
|
52
47
|
};
|
|
53
|
-
/**
|
|
54
|
-
* The route correction, printed once and before anything paid moves.
|
|
55
|
-
*
|
|
56
|
-
* MEASURED 2026-08-14: the two runs of a ten-run wave that built the wrong
|
|
57
|
-
* thing both typed `--redesign-source <target>.png --mode reskin` while holding
|
|
58
|
-
* the finished design they had been asked to BUILD. They did not skip the
|
|
59
|
-
* existing-image route; they took the only one the skill named, and that route
|
|
60
|
-
* redraws the image instead of converting it. The fact is in this command's own
|
|
61
|
-
* argv, so the correction belongs here rather than in a skill sentence that
|
|
62
|
-
* cannot reach an agent who has already decided.
|
|
63
|
-
*
|
|
64
|
-
* It is not a refusal: `--mode reskin` is a legitimate capability, and a run
|
|
65
|
-
* that genuinely wants a redraw gets one. It is a named alternative, at the
|
|
66
|
-
* only moment it is still free.
|
|
67
|
-
*/
|
|
68
48
|
export const redesignRouteNotice = (source) => (`\`${source}\` is already a finished design. To build it rather than redraw it:`
|
|
69
|
-
+ ` \`12ui convert ${source} --
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
49
|
+
+ ` \`12ui convert ${source} --output html\`. Continuing with a redesign draft.`);
|
|
50
|
+
const readCandidateCount = (flags) => {
|
|
51
|
+
const value = stringFlag(flags, 'candidates');
|
|
52
|
+
if (value === undefined)
|
|
53
|
+
return DRAFT_CANDIDATE_COUNT;
|
|
54
|
+
const count = Number(value);
|
|
55
|
+
if (!Number.isSafeInteger(count)
|
|
56
|
+
|| count < DRAFT_CANDIDATE_COUNT_MINIMUM
|
|
57
|
+
|| count > DRAFT_CANDIDATE_COUNT_MAXIMUM) {
|
|
58
|
+
throw new Error(`--candidates must be an integer between ${DRAFT_CANDIDATE_COUNT_MINIMUM}`
|
|
59
|
+
+ ` and ${DRAFT_CANDIDATE_COUNT_MAXIMUM}`);
|
|
60
|
+
}
|
|
61
|
+
return count;
|
|
62
|
+
};
|
|
63
|
+
const preparedFromRecord = (args) => {
|
|
64
|
+
const paths = draftPaths(args.record.runDir);
|
|
65
|
+
return {
|
|
66
|
+
runDir: paths.runDir,
|
|
67
|
+
recordPath: paths.draftRecord,
|
|
68
|
+
runId: args.record.hosted.runId,
|
|
69
|
+
candidateCount: args.record.hosted.candidates.length,
|
|
70
|
+
adopted: args.adopted,
|
|
71
|
+
runKey: args.runKey,
|
|
72
|
+
record: args.record,
|
|
73
|
+
nextAction: nextActionLine({
|
|
74
|
+
what: `${args.record.hosted.candidates.length} hosted draft candidates`,
|
|
75
|
+
typicalSeconds: HOSTED_DRAFT_CANDIDATE_DURATION_SECONDS,
|
|
76
|
+
statusCommand: `12ui next ${paths.runDir}`,
|
|
77
|
+
waitHint: 'or re-run the draft with --wait to block in this shell instead',
|
|
78
|
+
}),
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
const resumeInternalPreparedDraft = async (runDir, dependencies) => {
|
|
82
|
+
const environment = dependencies.environment ?? process.env;
|
|
83
|
+
if (environment[INTERNAL_DRAFT_WORKER_ENV] !== '1') {
|
|
84
|
+
throw new Error('--resume-run is reserved for the detached draft worker');
|
|
85
|
+
}
|
|
86
|
+
const paths = draftPaths(runDir);
|
|
87
|
+
const record = await readDraftRecord(paths.draftRecord);
|
|
88
|
+
if (!record || record.version !== 2)
|
|
89
|
+
throw new Error(`No resumable hosted draft in ${paths.runDir}`);
|
|
90
|
+
const runKey = draftLocalRunKey({
|
|
91
|
+
query: record.query,
|
|
92
|
+
candidateCount: record.hosted.candidates.length,
|
|
93
|
+
redesignSourceSha256: record.redesignSource?.sha256 ?? null,
|
|
94
|
+
aspect: record.aspect,
|
|
95
|
+
mode: record.mode,
|
|
96
|
+
});
|
|
97
|
+
await transferDraftRunClaim({ runDir: paths.runDir, runKey });
|
|
98
|
+
(dependencies.write ?? ((line) => { process.stdout.write(`${line}\n`); }))(paths.runDir);
|
|
99
|
+
dependencies.onRunDirectory?.(paths.runDir);
|
|
100
|
+
return preparedFromRecord({ record, adopted: true, runKey });
|
|
101
|
+
};
|
|
102
|
+
/** Claim one corpus set and exactly one hosted run, then persist the resumable handle. */
|
|
75
103
|
export const prepareDraftCommand = async (flags, dependencies = {}) => {
|
|
76
|
-
const
|
|
77
|
-
if (
|
|
104
|
+
const internalResume = stringFlag(flags, 'resume-run')?.trim();
|
|
105
|
+
if (internalResume)
|
|
106
|
+
return await resumeInternalPreparedDraft(internalResume, dependencies);
|
|
107
|
+
dependencies.progress?.update({ stage: 'prepare', detail: 'validating draft inputs' });
|
|
108
|
+
rejectLocalProviderFlags(flags);
|
|
109
|
+
const conceptValue = stringFlag(flags, 'concept');
|
|
110
|
+
if (!conceptValue?.trim()) {
|
|
78
111
|
throw usageRefusal({
|
|
79
|
-
reason: 'A draft starts from the design problem in words, and --
|
|
112
|
+
reason: 'A draft starts from the design problem in words, and --concept was not given.',
|
|
80
113
|
code: 'draft_usage',
|
|
81
114
|
verb: ['draft'],
|
|
82
115
|
});
|
|
83
116
|
}
|
|
117
|
+
const query = readConceptValue({
|
|
118
|
+
value: conceptValue,
|
|
119
|
+
flag: '--concept',
|
|
120
|
+
trimHint: 'Keep the product, audience, surface, goal, and personality.',
|
|
121
|
+
});
|
|
122
|
+
const candidateCount = readCandidateCount(flags);
|
|
84
123
|
const write = dependencies.write ?? ((line) => { process.stdout.write(`${line}\n`); });
|
|
85
124
|
const warn = dependencies.warn ?? ((line) => { process.stderr.write(`${line}\n`); });
|
|
86
125
|
const sourceFlag = stringFlag(flags, 'redesign-source')?.trim();
|
|
87
126
|
const mode = parseMode(flags, Boolean(sourceFlag));
|
|
127
|
+
const aspect = parseAspect(flags);
|
|
88
128
|
const redesignSource = sourceFlag
|
|
89
129
|
? await (async () => {
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
return { path: resolved, sha256: createHash('sha256').update(bytes).digest('hex') };
|
|
130
|
+
const loaded = await loadCorpusReferenceImage(sourceFlag);
|
|
131
|
+
return { path: loaded.evidence.sourcePath, sha256: loaded.evidence.sha256 };
|
|
93
132
|
})()
|
|
94
133
|
: undefined;
|
|
95
134
|
if (redesignSource)
|
|
96
135
|
warn(redesignRouteNotice(sourceFlag));
|
|
136
|
+
const runKey = draftLocalRunKey({
|
|
137
|
+
query,
|
|
138
|
+
candidateCount,
|
|
139
|
+
redesignSourceSha256: redesignSource?.sha256 ?? null,
|
|
140
|
+
aspect,
|
|
141
|
+
mode,
|
|
142
|
+
});
|
|
97
143
|
const config = (dependencies.readConfig ?? readConversionConfig)({
|
|
98
144
|
origin: stringFlag(flags, 'origin'),
|
|
99
145
|
apiKey: stringFlag(flags, 'api-key'),
|
|
100
146
|
});
|
|
101
|
-
/**
|
|
102
|
-
* The corpus key is derived here, before the directory exists, because it is
|
|
103
|
-
* what decides whether an incomplete previous run IS this run. A retry of a
|
|
104
|
-
* draft that died after its corpus search continues that directory instead of
|
|
105
|
-
* stranding a same-slug sibling beside it — measured overnight 2026-08-10,
|
|
106
|
-
* where two siblings held different candidates and slug-glob tooling switched
|
|
107
|
-
* between them silently.
|
|
108
|
-
*/
|
|
109
147
|
const { paths, adopted } = await acquireDraftRunDirectory({
|
|
110
148
|
query,
|
|
111
|
-
|
|
112
|
-
query,
|
|
113
|
-
redesignSourceSha256: redesignSource?.sha256 ?? null,
|
|
114
|
-
}),
|
|
149
|
+
runKey,
|
|
115
150
|
...(dependencies.workspaceRoot ? { root: dependencies.workspaceRoot } : {}),
|
|
116
151
|
});
|
|
117
|
-
// FIRST line of output, before anything slow or paid: every later command
|
|
118
|
-
// needs this path, and a run whose directory is never printed is a run the
|
|
119
|
-
// caller cannot continue.
|
|
120
152
|
write(paths.runDir);
|
|
121
153
|
dependencies.onRunDirectory?.(paths.runDir);
|
|
122
|
-
const
|
|
123
|
-
|
|
154
|
+
const existing = adopted ? await readDraftRecord(paths.draftRecord) : undefined;
|
|
155
|
+
if (existing?.version === 2)
|
|
156
|
+
return preparedFromRecord({ record: existing, adopted, runKey });
|
|
157
|
+
const corpusClient = (dependencies.createCorpusClient
|
|
158
|
+
?? ((value) => new TwelveUiCorpusClient(value)))(config);
|
|
159
|
+
const hostedClient = (dependencies.createHostedClient
|
|
160
|
+
?? ((value) => new TwelveUiBranchClient(value)))(config);
|
|
161
|
+
dependencies.progress?.update({
|
|
162
|
+
stage: 'retrieving_corpus',
|
|
163
|
+
detail: 'retrieving references and claiming the hosted run',
|
|
164
|
+
});
|
|
165
|
+
const record = await prepareDraftRun({
|
|
124
166
|
paths,
|
|
125
|
-
client,
|
|
167
|
+
client: corpusClient,
|
|
168
|
+
hostedClient,
|
|
126
169
|
origin: config.origin,
|
|
127
170
|
query,
|
|
128
171
|
mode,
|
|
129
|
-
aspect
|
|
130
|
-
|
|
131
|
-
projectRoot: path.resolve(stringFlag(flags, 'project-root')?.trim() || process.cwd()),
|
|
172
|
+
aspect,
|
|
173
|
+
candidateCount,
|
|
132
174
|
...(redesignSource ? { redesignSource } : {}),
|
|
133
175
|
});
|
|
134
|
-
return {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
176
|
+
return preparedFromRecord({ record, adopted, runKey });
|
|
177
|
+
};
|
|
178
|
+
const writeDispatchAttempt = async (prepared) => {
|
|
179
|
+
const paths = draftPaths(prepared.runDir);
|
|
180
|
+
await writeFile(paths.dispatchAttempt, `${JSON.stringify({
|
|
181
|
+
version: 1,
|
|
182
|
+
runId: prepared.runId,
|
|
183
|
+
pid: process.pid,
|
|
184
|
+
startedAt: new Date().toISOString(),
|
|
185
|
+
}, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
|
|
186
|
+
};
|
|
187
|
+
const runPreparedDraft = async (args) => {
|
|
188
|
+
const config = (args.dependencies.readConfig ?? readConversionConfig)({
|
|
189
|
+
origin: stringFlag(args.flags, 'origin'),
|
|
190
|
+
apiKey: stringFlag(args.flags, 'api-key'),
|
|
191
|
+
});
|
|
192
|
+
const client = args.dependencies.hostedClient
|
|
193
|
+
?? (args.dependencies.createHostedClient
|
|
194
|
+
?? ((value) => new TwelveUiBranchClient(value)))(config);
|
|
195
|
+
const progress = args.dependencies.progress;
|
|
196
|
+
await writeDispatchAttempt(args.prepared);
|
|
197
|
+
// Identity said once; ticks carry counts, not the run id.
|
|
198
|
+
progress?.note(`claimed hosted run ${args.prepared.runId}`);
|
|
199
|
+
progress?.update({
|
|
200
|
+
stage: 'dispatching',
|
|
201
|
+
completed: 0,
|
|
202
|
+
total: args.prepared.candidateCount,
|
|
203
|
+
unit: 'slots settled',
|
|
204
|
+
});
|
|
205
|
+
const dispatched = await dispatchHostedDraftSlots({ client, runId: args.prepared.runId });
|
|
206
|
+
if (dispatched.failures.length > 0
|
|
207
|
+
&& dispatched.run.candidates.some((candidate) => candidate.status === 'pending')) {
|
|
208
|
+
const detail = dispatched.failures
|
|
209
|
+
.map((failure) => `${failure.slot}: ${failure.error}`)
|
|
210
|
+
.join('; ');
|
|
211
|
+
throw new Error(`Hosted draft dispatch did not start: ${detail}`);
|
|
212
|
+
}
|
|
213
|
+
progress?.update({
|
|
214
|
+
stage: 'generating',
|
|
215
|
+
completed: summarizeHostedDraftRun(dispatched.run).succeeded
|
|
216
|
+
+ summarizeHostedDraftRun(dispatched.run).failed,
|
|
217
|
+
total: dispatched.run.candidates.length,
|
|
218
|
+
unit: 'slots settled',
|
|
219
|
+
detail: `${dispatched.dispatched.length} slot(s) dispatched`,
|
|
220
|
+
});
|
|
221
|
+
const run = await waitForHostedDraftRun({
|
|
222
|
+
client,
|
|
223
|
+
run: dispatched.run,
|
|
224
|
+
...(args.dependencies.sleep ? { sleep: args.dependencies.sleep } : {}),
|
|
225
|
+
onProgress: (current) => {
|
|
226
|
+
const counts = summarizeHostedDraftRun(current);
|
|
227
|
+
progress?.update({
|
|
228
|
+
stage: 'generating',
|
|
229
|
+
completed: counts.succeeded + counts.failed,
|
|
230
|
+
total: current.candidates.length,
|
|
231
|
+
unit: 'slots settled',
|
|
232
|
+
running: counts.dispatched,
|
|
233
|
+
detail: `${counts.pending} waiting, ${counts.failed} failed`,
|
|
234
|
+
});
|
|
235
|
+
},
|
|
236
|
+
});
|
|
237
|
+
if (!hostedDraftRunIsSettled(run)) {
|
|
238
|
+
throw new Error(`Hosted draft ${run.id} did not settle within 30 minutes; 12ui next ${args.prepared.runDir}`);
|
|
239
|
+
}
|
|
240
|
+
const failed = run.candidates.filter((candidate) => candidate.status === 'failed');
|
|
241
|
+
if (failed.length > 0) {
|
|
242
|
+
const detail = failed.map((candidate) => (`${candidate.slot}: ${candidate.error?.message ?? 'generation failed'}`)).join('; ');
|
|
243
|
+
throw new Error(`Hosted draft ${run.id} settled with failed slot(s): ${detail}`);
|
|
244
|
+
}
|
|
245
|
+
const files = await downloadHostedDraftCandidates({
|
|
246
|
+
client,
|
|
247
|
+
run,
|
|
248
|
+
candidates: args.prepared.record.hosted.candidates,
|
|
249
|
+
});
|
|
250
|
+
progress?.update({
|
|
251
|
+
stage: 'materialize',
|
|
252
|
+
completed: files.length,
|
|
253
|
+
total: args.prepared.candidateCount,
|
|
254
|
+
unit: 'candidates downloaded',
|
|
255
|
+
detail: 'writing hosted candidates locally',
|
|
256
|
+
});
|
|
257
|
+
if (files.length !== args.prepared.candidateCount) {
|
|
258
|
+
throw new Error(`Hosted draft ${run.id} settled ${args.prepared.candidateCount} slot(s) but downloaded ${files.length}`);
|
|
259
|
+
}
|
|
260
|
+
const paths = draftPaths(args.prepared.runDir);
|
|
261
|
+
await writeDraftCompletion(paths.completion, {
|
|
262
|
+
version: 1,
|
|
263
|
+
runId: run.id,
|
|
264
|
+
completedAt: new Date().toISOString(),
|
|
265
|
+
candidates: files,
|
|
266
|
+
});
|
|
267
|
+
progress?.finish('succeeded', {
|
|
268
|
+
artifacts: [{
|
|
269
|
+
name: `${files.length} candidate image(s)`,
|
|
270
|
+
state: 'succeeded',
|
|
271
|
+
path: paths.candidatesDir,
|
|
272
|
+
}],
|
|
273
|
+
spend: `${files.length} hosted draft candidate(s) purchased`,
|
|
274
|
+
next: 'choose an image, then 12ui branch execute --start <image> or 12ui convert <image>',
|
|
275
|
+
});
|
|
276
|
+
console.log(JSON.stringify({
|
|
277
|
+
runDir: args.prepared.runDir,
|
|
278
|
+
runId: run.id,
|
|
279
|
+
dispatched: dispatched.dispatched,
|
|
280
|
+
candidates: files,
|
|
281
|
+
nextAction: `Choose an image in ${paths.candidatesDir}, then pass it to 12ui branch execute --start or 12ui convert.`,
|
|
282
|
+
}, null, 2));
|
|
283
|
+
return [paths.draftRecord, paths.completion, ...files.map((file) => file.path)];
|
|
284
|
+
};
|
|
285
|
+
export const runDraftCommand = async (flags, dependencies = {}) => {
|
|
286
|
+
const progress = createLongRunningProgress({
|
|
287
|
+
label: 'draft',
|
|
288
|
+
typicalSeconds: HOSTED_DRAFT_CANDIDATE_DURATION_SECONDS,
|
|
289
|
+
quiet: booleanFlag(flags, 'quiet'),
|
|
290
|
+
});
|
|
291
|
+
try {
|
|
292
|
+
const candidateCount = readCandidateCount(flags);
|
|
293
|
+
progress.brief({
|
|
294
|
+
request: `draft: ${candidateCount} hosted candidate(s) from the concept`,
|
|
295
|
+
paid: `${candidateCount} draft candidate slot(s), one hosted run`,
|
|
296
|
+
done: 'one PNG per candidate in <run-dir>/candidates',
|
|
297
|
+
expectation: {
|
|
298
|
+
typicalSeconds: HOSTED_DRAFT_CANDIDATE_DURATION_SECONDS,
|
|
299
|
+
basis: 'measured median per candidate; slots run concurrently',
|
|
300
|
+
},
|
|
301
|
+
blocking: booleanFlag(flags, 'wait') || !dependencies.detach,
|
|
302
|
+
});
|
|
303
|
+
progress.update({ stage: 'prepare', detail: 'preparing the hosted draft' });
|
|
304
|
+
const prepared = await prepareDraftCommand(flags, { ...dependencies, progress });
|
|
305
|
+
if (dependencies.detach && !booleanFlag(flags, 'wait')) {
|
|
306
|
+
const detached = await dependencies.detach(prepared, progress);
|
|
307
|
+
progress.finish('detached', {
|
|
308
|
+
detail: 'generation continues in a background worker; nothing settles in this shell',
|
|
309
|
+
artifacts: [
|
|
310
|
+
{ name: 'hosted run', state: `generating (run ${prepared.runId})` },
|
|
311
|
+
{ name: 'worker log', state: 'streaming', path: detached.logFile },
|
|
312
|
+
],
|
|
313
|
+
next: `12ui next ${prepared.runDir} reports progress; --wait blocks until done`,
|
|
314
|
+
});
|
|
315
|
+
return { prepared, artifacts: [prepared.recordPath, detached.logFile], detached };
|
|
316
|
+
}
|
|
317
|
+
return {
|
|
318
|
+
prepared,
|
|
319
|
+
artifacts: await runPreparedDraft({
|
|
320
|
+
prepared,
|
|
321
|
+
flags,
|
|
322
|
+
dependencies: { ...dependencies, progress },
|
|
323
|
+
}),
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
progress.finish('stopped', {
|
|
328
|
+
detail: error instanceof Error ? error.message : String(error),
|
|
329
|
+
});
|
|
330
|
+
throw error;
|
|
331
|
+
}
|
|
146
332
|
};
|
|
147
|
-
/**
|
|
148
|
-
* The corpus attempt record a draft writes before it spends anything. Its
|
|
149
|
-
* presence without a `draft.json` beside it is proof the run started here and
|
|
150
|
-
* died, which is the difference between "no run" and "a failed run".
|
|
151
|
-
*/
|
|
152
333
|
const readDraftAttemptRecord = async (referencesDir) => {
|
|
153
334
|
try {
|
|
154
335
|
const parsed = JSON.parse(await readFile(path.join(referencesDir, INSPIRATION_ATTEMPT_FILE), 'utf8'));
|
|
@@ -158,110 +339,56 @@ const readDraftAttemptRecord = async (referencesDir) => {
|
|
|
158
339
|
return null;
|
|
159
340
|
}
|
|
160
341
|
};
|
|
161
|
-
|
|
162
|
-
* The draft run's state, read and never printed here.
|
|
163
|
-
*
|
|
164
|
-
* `12ui draft status` was the most-typed of four spellings of "what now" — 18
|
|
165
|
-
* invocations in one measured wave, `--json` on eight of them, a flag it never
|
|
166
|
-
* read. `12ui next` replaced all four, so this is a reader the merge calls.
|
|
167
|
-
*/
|
|
168
|
-
export const readDraftStatus = async (runDirArgument) => {
|
|
342
|
+
export const readDraftStatus = async (runDirArgument, flags = {}, dependencies = {}) => {
|
|
169
343
|
const paths = draftPaths(runDirArgument);
|
|
170
344
|
const record = await readDraftRecord(paths.draftRecord);
|
|
171
|
-
if (!record) {
|
|
172
|
-
/**
|
|
173
|
-
* MEASURED 2026-08-11: a draft whose corpus search died left its directory
|
|
174
|
-
* holding only the attempt record, and this message told the caller that
|
|
175
|
-
* "nothing has failed" — which was false, and sent a driver back to poll a
|
|
176
|
-
* dead handle. A directory that holds an attempt record IS a run that
|
|
177
|
-
* started here and did not finish, and it must say so.
|
|
178
|
-
*/
|
|
345
|
+
if (!record || record.version !== 2) {
|
|
179
346
|
const started = await readDraftAttemptRecord(paths.referencesDir);
|
|
180
347
|
throw new CliRefusal(started
|
|
181
|
-
? `The draft run in ${paths.runDir} failed before its
|
|
182
|
-
+ `
|
|
183
|
-
+
|
|
184
|
-
|
|
185
|
-
+ '
|
|
186
|
-
: `No draft run in ${paths.runDir} — there is no ${path.basename(paths.draftRecord)} here, and`
|
|
187
|
-
+ ' nothing has failed. Start one with `12ui draft --query "<product, audience, surface,'
|
|
188
|
-
+ ' goal, personality>"`, which prints the run directory to use.', started ? 'draft_incomplete' : 'draft_absent');
|
|
348
|
+
? `The draft run in ${paths.runDir} failed before its hosted run was recorded — it started`
|
|
349
|
+
+ ` at ${started.createdAt}. Re-run the same draft command; its corpus key replays rather`
|
|
350
|
+
+ ' than buying the search again.'
|
|
351
|
+
: `No hosted draft run is recorded in ${paths.runDir}. Start one with`
|
|
352
|
+
+ ' `12ui draft --concept "<product, audience, surface, goal, personality>"`.', started ? 'draft_incomplete' : 'draft_absent');
|
|
189
353
|
}
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
354
|
+
const client = dependencies.hostedClient ?? new TwelveUiBranchClient((dependencies.readConfig ?? readConversionConfig)({
|
|
355
|
+
origin: stringFlag(flags, 'origin'),
|
|
356
|
+
apiKey: stringFlag(flags, 'api-key'),
|
|
357
|
+
}));
|
|
358
|
+
const run = await client.getRun(record.hosted.runId);
|
|
359
|
+
if (run.id !== record.hosted.runId)
|
|
360
|
+
throw new Error('The hosted draft service returned the wrong run');
|
|
361
|
+
const bySlot = new Map(run.candidates.map((candidate) => [candidate.slot, candidate]));
|
|
362
|
+
const candidates = record.hosted.candidates.map((candidate) => ({
|
|
193
363
|
id: candidate.id,
|
|
194
|
-
|
|
364
|
+
slot: candidate.slot,
|
|
365
|
+
status: bySlot.get(candidate.slot)?.status ?? 'missing',
|
|
195
366
|
path: candidate.outputPath,
|
|
196
367
|
}));
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
winner: selection.winner,
|
|
205
|
-
narrative: `Candidate ${selection.winner} is selected. Convert it with`
|
|
206
|
-
+ ` \`12ui convert ${paths.candidatesDir}/${selection.winner}.png --export html\` for a`
|
|
207
|
-
+ ` single view, or grow the whole surface with \`12ui branch execute ${paths.runDir}\`.`,
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
if (batch.complete) {
|
|
211
|
-
return {
|
|
212
|
-
runDir: paths.runDir,
|
|
213
|
-
query: record.query,
|
|
214
|
-
phase: 'ready',
|
|
215
|
-
complete: true,
|
|
216
|
-
candidates,
|
|
217
|
-
narrative: `${batch.counts.complete} of ${batch.counts.total} candidates are ready in`
|
|
218
|
-
+ ` ${paths.candidatesDir}. Look at them at original detail, then record the choice with`
|
|
219
|
-
+ ` \`12ui select ${paths.runDir} --winner <id> --reason "<why>"\`.`,
|
|
220
|
-
};
|
|
221
|
-
}
|
|
368
|
+
const counts = summarizeHostedDraftRun(run);
|
|
369
|
+
const settled = hostedDraftRunIsSettled(run);
|
|
370
|
+
const localCount = (await Promise.all(record.hosted.candidates.map((candidate) => (stat(candidate.outputPath).then(() => true).catch(() => false))))).filter(Boolean).length;
|
|
371
|
+
const failed = counts.failed > 0;
|
|
372
|
+
const completionRecorded = await stat(paths.completion).then(() => true).catch(() => false);
|
|
373
|
+
const materialized = localCount === record.hosted.candidates.length && completionRecorded;
|
|
374
|
+
const elapsedSeconds = secondsSince(run.createdAt, Date.now());
|
|
222
375
|
return {
|
|
223
376
|
runDir: paths.runDir,
|
|
377
|
+
runId: run.id,
|
|
224
378
|
query: record.query,
|
|
225
|
-
phase:
|
|
226
|
-
complete:
|
|
379
|
+
phase: failed ? 'failed' : settled ? materialized ? 'ready' : 'materializing' : 'generating',
|
|
380
|
+
complete: settled && (failed || materialized),
|
|
381
|
+
...(elapsedSeconds === undefined ? {} : { elapsedSeconds: Math.round(elapsedSeconds) }),
|
|
227
382
|
candidates,
|
|
228
|
-
narrative:
|
|
229
|
-
?
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
what: `${batch.counts.total} candidates`,
|
|
237
|
-
typicalSeconds: OPERATION_DURATION_HINTS.imageBatch,
|
|
238
|
-
statusCommand: `12ui next ${paths.runDir}`,
|
|
239
|
-
...(batch.elapsedSeconds === undefined ? {} : { elapsedSeconds: batch.elapsedSeconds }),
|
|
240
|
-
waitHint: 'or wait for the dispatch that is already running',
|
|
241
|
-
}),
|
|
383
|
+
narrative: failed
|
|
384
|
+
? `${counts.failed} of ${run.candidates.length} hosted draft slot(s) failed; settled slots are not re-bought.`
|
|
385
|
+
: settled && materialized
|
|
386
|
+
? `${counts.succeeded} hosted candidates settled; ${localCount} image(s) are in ${paths.candidatesDir}.`
|
|
387
|
+
: settled
|
|
388
|
+
? `${counts.succeeded} hosted candidates settled; ${localCount} of`
|
|
389
|
+
+ ` ${record.hosted.candidates.length} image(s) are materialized locally.`
|
|
390
|
+
: `${counts.succeeded + counts.failed} of ${run.candidates.length} hosted candidates settled.`,
|
|
242
391
|
};
|
|
243
392
|
};
|
|
244
|
-
export const
|
|
245
|
-
? 'Continuing the incomplete run already in this directory rather than opening a second one'
|
|
246
|
-
+ ' beside it; the corpus search replayed on its derived key.\n'
|
|
247
|
-
: '')
|
|
248
|
-
+ `${prepared.candidateCount} candidates generating from ${prepared.candidateCount} corpus`
|
|
249
|
-
+ ` references, one each.\n${prepared.nextAction}`);
|
|
250
|
-
export const draftDetachRequested = (flags) => !booleanFlag(flags, 'wait');
|
|
251
|
-
/**
|
|
252
|
-
* The whole explore step. Prepare (one paid corpus search), then hand the
|
|
253
|
-
* generation to `image generate-batch` — detached by default, because an
|
|
254
|
-
* agent's shell cannot hold 90 seconds and a cut dispatch reads as a failure.
|
|
255
|
-
*/
|
|
256
|
-
export const runDraftCommand = async (flags, dependencies) => {
|
|
257
|
-
const prepared = await prepareDraftCommand(flags, dependencies);
|
|
258
|
-
const quiet = booleanFlag(flags, 'quiet');
|
|
259
|
-
if (!quiet)
|
|
260
|
-
process.stderr.write(`${draftBanner(prepared)}\n`);
|
|
261
|
-
await dependencies.generate({
|
|
262
|
-
manifestPath: prepared.manifestPath,
|
|
263
|
-
detach: draftDetachRequested(flags),
|
|
264
|
-
});
|
|
265
|
-
return prepared;
|
|
266
|
-
};
|
|
393
|
+
export const readHostedRunStatus = async (args) => await args.client.getRun(args.runId);
|
|
267
394
|
//# sourceMappingURL=cli-draft-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-draft-command.js","sourceRoot":"","sources":["../src/cli-draft-command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-draft-command.js","sourceRoot":"","sources":["../src/cli-draft-command.ts"],"names":[],"mappings":"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"}
|