@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
package/dist/cli-progress.js
CHANGED
|
@@ -9,11 +9,17 @@
|
|
|
9
9
|
export const CONVERSION_DURATION_HINTS = {
|
|
10
10
|
/** image -> LayerDoc. Extraction plus materialization. */
|
|
11
11
|
convert: 240,
|
|
12
|
+
/**
|
|
13
|
+
* The same conversion at --model fast. Four measured runs on the progress
|
|
14
|
+
* boards (2026-08-20/21): 87s, 98s, 97s, 87s. Quoting the standard-model
|
|
15
|
+
* median for a fast run overstated by ~2m30 on every fast capture.
|
|
16
|
+
*/
|
|
17
|
+
convertFast: 100,
|
|
12
18
|
/** A responsive HTML export run on its own, after the conversion finished. */
|
|
13
19
|
export: 240,
|
|
14
20
|
/**
|
|
15
21
|
* Fused convert + export. The export's reference and anchor conversions run
|
|
16
|
-
* alongside the conversion, so the bundle
|
|
22
|
+
* alongside the conversion, so the bundle takes about the slower half plus
|
|
17
23
|
* assembly rather than the sum of both.
|
|
18
24
|
*/
|
|
19
25
|
fused: 300,
|
|
@@ -25,10 +31,8 @@ export const CONVERSION_DURATION_HINTS = {
|
|
|
25
31
|
*/
|
|
26
32
|
export const OPERATION_DURATION_HINTS = {
|
|
27
33
|
...CONVERSION_DURATION_HINTS,
|
|
28
|
-
/** One
|
|
29
|
-
|
|
30
|
-
/** Four candidates, started concurrently. */
|
|
31
|
-
imageBatch: 90,
|
|
34
|
+
/** One hosted draft candidate; candidate slots run concurrently. */
|
|
35
|
+
hostedDraftCandidate: 150,
|
|
32
36
|
/** The build claim: the planner runs inline and buys no image. */
|
|
33
37
|
branchClaim: 15,
|
|
34
38
|
/** One branch screen. The server's own provider budget is 150 s. */
|
|
@@ -53,13 +57,19 @@ export const OPERATION_DURATION_HINTS = {
|
|
|
53
57
|
branchSite: 492,
|
|
54
58
|
/** One `12ui convert package` submission, whose page count is not known here. */
|
|
55
59
|
package: 360,
|
|
60
|
+
/** Recorded 1.7-6.4 s across 10 Stage A corpus-inspire invocations. */
|
|
61
|
+
corpusInspire: 10,
|
|
62
|
+
/** A resume replays the same corpus request and completes missing downloads. */
|
|
63
|
+
corpusResume: 10,
|
|
64
|
+
/** A derivation which dispatches is one export operation per requested format. */
|
|
65
|
+
derivation: 240,
|
|
56
66
|
};
|
|
57
67
|
/**
|
|
58
|
-
* Three pages convert at a time.
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
68
|
+
* Three pages convert at a time. Continuous web pages may hold several
|
|
69
|
+
* viewport children; complete app states hold one. A brief queue at the
|
|
70
|
+
* account admission boundary is visible in the package's own published
|
|
71
|
+
* progress rather than looking like a stall. It lives beside the duration
|
|
72
|
+
* hints because the run estimate is a function of it.
|
|
63
73
|
*/
|
|
64
74
|
export const BRANCH_PAGE_CONCURRENCY_DEFAULT = 3;
|
|
65
75
|
/**
|
|
@@ -94,12 +104,373 @@ export const formatDuration = (seconds) => {
|
|
|
94
104
|
const rest = whole % 60;
|
|
95
105
|
return rest === 0 ? `${minutes}m` : `${minutes}m ${rest}s`;
|
|
96
106
|
};
|
|
97
|
-
export const durationHint = (kind) => (`expect about ${formatDuration(CONVERSION_DURATION_HINTS[kind])}`);
|
|
98
107
|
/**
|
|
99
108
|
* `45s elapsed, ~90s typical`. A bare elapsed time reads as a stall; the pair
|
|
100
109
|
* is what tells a caller the wait is still inside the expected envelope.
|
|
101
110
|
*/
|
|
102
111
|
export const elapsedAgainstTypical = (elapsedSeconds, typicalSeconds) => (`${formatDuration(elapsedSeconds)} elapsed, ~${formatDuration(typicalSeconds)} typical`);
|
|
112
|
+
/**
|
|
113
|
+
* The service projects stage and percent, but no replacement completion time.
|
|
114
|
+
* Say that limitation instead of pairing an expired promise with reassurance.
|
|
115
|
+
*/
|
|
116
|
+
export const REVISED_ETA_UNAVAILABLE = 'No revised ETA is available because the service does not publish one.';
|
|
117
|
+
/**
|
|
118
|
+
* A scope whose typical is under this quotes no numeric expectation at all.
|
|
119
|
+
*
|
|
120
|
+
* MEASURED on the 17-capture board: a bare fused resume quoted ~5m and
|
|
121
|
+
* finished in 4s (+4m56 overstatement), and free derivations quoted ~4m for
|
|
122
|
+
* 13s of collection. Work that is typically over in seconds cannot carry an
|
|
123
|
+
* honest minutes-scale promise, and saying nothing is more accurate than any
|
|
124
|
+
* number the table has for the paid path the resume happens to share.
|
|
125
|
+
*/
|
|
126
|
+
export const QUICK_SCOPE_SUPPRESSION_SECONDS = 30;
|
|
127
|
+
/** Human-readable name for a pipeline lane, for progress facts. */
|
|
128
|
+
const LANE_LABELS = {
|
|
129
|
+
prepare: { one: 'prepare step', many: 'prepare steps' },
|
|
130
|
+
extract: { one: 'extraction pass', many: 'extraction passes' },
|
|
131
|
+
clean: { one: 'clean pass', many: 'clean passes' },
|
|
132
|
+
crop_1x: { one: 'crop', many: 'crops' },
|
|
133
|
+
upscale_2x: { one: 'upscale', many: 'upscales' },
|
|
134
|
+
cutout: { one: 'cutout', many: 'cutouts' },
|
|
135
|
+
edit: { one: 'edit', many: 'edits' },
|
|
136
|
+
responsive_anchor: { one: 'anchor', many: 'anchors' },
|
|
137
|
+
html_flow: { one: 'page flow', many: 'page flows' },
|
|
138
|
+
export: { one: 'export', many: 'exports' },
|
|
139
|
+
publish: { one: 'publish step', many: 'publish steps' },
|
|
140
|
+
};
|
|
141
|
+
const laneLabel = (kind, count) => {
|
|
142
|
+
const entry = LANE_LABELS[kind];
|
|
143
|
+
if (!entry)
|
|
144
|
+
return kind.replaceAll('_', ' ');
|
|
145
|
+
return count === 1 ? entry.one : entry.many;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* `12 of 14 cutouts, 3 anchors retrying`. The moving lanes only: a lane that
|
|
149
|
+
* is complete stopped being information the tick it completed, and a waiting
|
|
150
|
+
* lane has nothing to say yet. At most three, largest total first, so a busy
|
|
151
|
+
* pipeline stays one readable clause.
|
|
152
|
+
*/
|
|
153
|
+
export const laneFacts = (lanes) => {
|
|
154
|
+
const moving = lanes
|
|
155
|
+
.filter((lane) => lane.status === 'running' || lane.status === 'retrying')
|
|
156
|
+
.sort((a, b) => b.total - a.total)
|
|
157
|
+
.slice(0, 3);
|
|
158
|
+
return moving.map((lane) => (`${lane.completed} of ${lane.total} ${laneLabel(lane.kind, lane.total)}`
|
|
159
|
+
+ `${lane.status === 'retrying' ? ' (retrying)' : ''}`));
|
|
160
|
+
};
|
|
161
|
+
/** `p0-home converting responsive anchors` — at most two, so a fan-out stays a clause. */
|
|
162
|
+
export const childFacts = (children) => (children.slice(0, 2).map((child) => `${child.id} ${stageLabel(child.stage)}`));
|
|
163
|
+
export const secondsSince = (iso, now) => {
|
|
164
|
+
if (!iso)
|
|
165
|
+
return undefined;
|
|
166
|
+
const started = Date.parse(iso);
|
|
167
|
+
return Number.isFinite(started) ? Math.max(0, (now - started) / 1000) : undefined;
|
|
168
|
+
};
|
|
169
|
+
export const renderProgressTick = (line) => {
|
|
170
|
+
const head = `${line.waiting ? 'still ' : ''}${line.scope ? `${line.scope}: ` : ''}`
|
|
171
|
+
+ stageLabel(line.stage);
|
|
172
|
+
const facts = line.facts.filter((fact) => fact.length > 0);
|
|
173
|
+
return `[${formatDuration(line.elapsedSeconds)}] ${head}`
|
|
174
|
+
+ `${facts.length === 0 ? '' : ` — ${facts.join(', ')}`}`;
|
|
175
|
+
};
|
|
176
|
+
export const renderRunBrief = (brief, heartbeatSeconds = 15) => {
|
|
177
|
+
const lines = [brief.request];
|
|
178
|
+
if (brief.identity && brief.identity.length > 0) {
|
|
179
|
+
lines.push(` identity: ${brief.identity.join('; ')}`);
|
|
180
|
+
}
|
|
181
|
+
if (brief.paid)
|
|
182
|
+
lines.push(` paid: ${brief.paid}`);
|
|
183
|
+
if (brief.free)
|
|
184
|
+
lines.push(` free: ${brief.free}`);
|
|
185
|
+
if (brief.done)
|
|
186
|
+
lines.push(` done: ${brief.done}`);
|
|
187
|
+
if (brief.expectation
|
|
188
|
+
&& brief.expectation.typicalSeconds >= QUICK_SCOPE_SUPPRESSION_SECONDS) {
|
|
189
|
+
lines.push(` expect: ~${formatDuration(brief.expectation.typicalSeconds)}`
|
|
190
|
+
+ `${brief.expectation.basis ? ` (${brief.expectation.basis})` : ''}`);
|
|
191
|
+
}
|
|
192
|
+
if (brief.blocking) {
|
|
193
|
+
lines.push(` this command blocks until done; progress ticks at least every ${heartbeatSeconds}s`);
|
|
194
|
+
}
|
|
195
|
+
return lines;
|
|
196
|
+
};
|
|
197
|
+
const TERMINAL_HEADLINES = {
|
|
198
|
+
succeeded: 'done',
|
|
199
|
+
partial: 'partial',
|
|
200
|
+
failed: 'failed',
|
|
201
|
+
stopped: 'stopped',
|
|
202
|
+
deadline: 'not finished',
|
|
203
|
+
detached: 'detached',
|
|
204
|
+
};
|
|
205
|
+
export const renderTerminalReport = (report) => {
|
|
206
|
+
const headline = `${TERMINAL_HEADLINES[report.status]}: ${report.label}`
|
|
207
|
+
+ `${report.status === 'succeeded' ? ' succeeded' : ''}`
|
|
208
|
+
+ ` in ${formatDuration(report.elapsedSeconds)}`
|
|
209
|
+
+ `${report.detail ? ` — ${report.detail}` : ''}`;
|
|
210
|
+
const lines = [headline];
|
|
211
|
+
for (const artifact of report.artifacts ?? []) {
|
|
212
|
+
lines.push(` ${artifact.name}: ${artifact.state}`
|
|
213
|
+
+ `${artifact.path ? ` — ${artifact.path}` : ''}`
|
|
214
|
+
+ `${artifact.note ? ` (${artifact.note})` : ''}`);
|
|
215
|
+
}
|
|
216
|
+
if (report.spend)
|
|
217
|
+
lines.push(` spend: ${report.spend}`);
|
|
218
|
+
if (report.next)
|
|
219
|
+
lines.push(` next: ${report.next}`);
|
|
220
|
+
return lines;
|
|
221
|
+
};
|
|
222
|
+
/**
|
|
223
|
+
* One clock, estimate policy, cadence, scope ledger, and terminal deduper for
|
|
224
|
+
* all long work. The sole rendering policy for every long-running command
|
|
225
|
+
* (CLAUDE.md item 9): commands publish structured facts only and own no
|
|
226
|
+
* punctuation, elapsed clocks, estimates, overrun wording, or terminal lines.
|
|
227
|
+
*
|
|
228
|
+
* Emission policy, in the order a reader experiences it:
|
|
229
|
+
* - the brief prints once, carrying identity and the only initial estimate;
|
|
230
|
+
* - a semantic change (stage, percent, counts, lanes, children, milestone)
|
|
231
|
+
* prints immediately;
|
|
232
|
+
* - silence never exceeds the cadence: a `still` tick names what is being
|
|
233
|
+
* waited on and how long, which is the information a repeated
|
|
234
|
+
* stage-and-percent frame pretended to carry;
|
|
235
|
+
* - the first tick past a scope's typical says so, once, in words, and no
|
|
236
|
+
* number counts down at any point;
|
|
237
|
+
* - stages never render backwards: a late update from an earlier stage folds
|
|
238
|
+
* its facts into the current stage instead.
|
|
239
|
+
*/
|
|
240
|
+
export const createLongRunningProgress = (args) => {
|
|
241
|
+
const write = args.write ?? ((line) => { process.stderr.write(`${line}\n`); });
|
|
242
|
+
const now = args.now ?? Date.now;
|
|
243
|
+
const startedAt = now();
|
|
244
|
+
const heartbeatMs = args.heartbeatMs ?? 15_000;
|
|
245
|
+
let elapsedAnchor = Math.max(0, args.initialElapsedSeconds ?? 0);
|
|
246
|
+
let elapsedAnchorAt = startedAt;
|
|
247
|
+
let observation = { stage: 'starting' };
|
|
248
|
+
let scopeName;
|
|
249
|
+
let scopeTypical = args.typicalSeconds;
|
|
250
|
+
let scopeStartedAt = startedAt;
|
|
251
|
+
let overrunAnnounced = false;
|
|
252
|
+
let stageOrder = [stageLabel('starting')];
|
|
253
|
+
let currentStage = 'starting';
|
|
254
|
+
let currentStageAt = startedAt;
|
|
255
|
+
let semantic = '';
|
|
256
|
+
let lastRenderedBody = '';
|
|
257
|
+
let lastWrittenAt = Number.NEGATIVE_INFINITY;
|
|
258
|
+
let terminal = false;
|
|
259
|
+
let timer;
|
|
260
|
+
const elapsedSeconds = () => (elapsedAnchor + Math.max(0, now() - elapsedAnchorAt) / 1_000);
|
|
261
|
+
const scopeElapsedSeconds = () => Math.max(0, (now() - scopeStartedAt) / 1_000);
|
|
262
|
+
const inStageSeconds = () => (secondsSince(observation.stageSince, now()) ?? Math.max(0, (now() - currentStageAt) / 1_000));
|
|
263
|
+
const emitLine = (line) => {
|
|
264
|
+
if (!args.quiet)
|
|
265
|
+
write(line);
|
|
266
|
+
lastWrittenAt = now();
|
|
267
|
+
};
|
|
268
|
+
const recordHeartbeat = () => {
|
|
269
|
+
args.heartbeat?.({
|
|
270
|
+
stage: observation.stage,
|
|
271
|
+
elapsedSeconds: elapsedSeconds(),
|
|
272
|
+
typicalSeconds: scopeTypical,
|
|
273
|
+
});
|
|
274
|
+
};
|
|
275
|
+
/**
|
|
276
|
+
* The monotonic stage guard. Stage order is the order this run first saw
|
|
277
|
+
* its stages; an update naming an earlier stage keeps the current stage's
|
|
278
|
+
* words and contributes its facts, because a pipeline whose display stage
|
|
279
|
+
* walks backwards reads as lost work (`publishing 99%` ->
|
|
280
|
+
* `materializing assets` on the board).
|
|
281
|
+
*/
|
|
282
|
+
// Folding compares RENDERED labels: two raw keys that read as the same
|
|
283
|
+
// stage ('materialize', 'materializing_assets') must fold together, or a
|
|
284
|
+
// late alias lands as a fresh stage and walks the display backwards.
|
|
285
|
+
const foldStage = (stage) => {
|
|
286
|
+
const label = stageLabel(stage);
|
|
287
|
+
const currentLabel = stageLabel(currentStage);
|
|
288
|
+
const knownIndex = stageOrder.indexOf(label);
|
|
289
|
+
if (knownIndex === -1) {
|
|
290
|
+
stageOrder.push(label);
|
|
291
|
+
return stage;
|
|
292
|
+
}
|
|
293
|
+
return knownIndex < stageOrder.indexOf(currentLabel) ? currentStage : stage;
|
|
294
|
+
};
|
|
295
|
+
const factsFor = (value, waiting) => {
|
|
296
|
+
const facts = [];
|
|
297
|
+
if (value.total !== undefined) {
|
|
298
|
+
facts.push(`${value.completed ?? 0} of ${value.total} ${value.unit ?? 'complete'}`);
|
|
299
|
+
}
|
|
300
|
+
if (value.running !== undefined && value.running > 0)
|
|
301
|
+
facts.push(`${value.running} running`);
|
|
302
|
+
if (value.lanes)
|
|
303
|
+
facts.push(...laneFacts(value.lanes));
|
|
304
|
+
if (value.children)
|
|
305
|
+
facts.push(...childFacts(value.children));
|
|
306
|
+
// A first attempt is not news; a consumed retry is (a measured package
|
|
307
|
+
// burned three anchor-attempt windows with no client-visible word).
|
|
308
|
+
if (value.attempt !== undefined && value.attempt > 1)
|
|
309
|
+
facts.push(`attempt ${value.attempt}`);
|
|
310
|
+
if (value.milestone)
|
|
311
|
+
facts.push(value.milestone.replaceAll('_', ' '));
|
|
312
|
+
if (value.detail)
|
|
313
|
+
facts.push(value.detail);
|
|
314
|
+
// The wait itself is the news of a cadence tick; on a semantic tick the
|
|
315
|
+
// in-stage clock earns its place once the stage has held long enough for
|
|
316
|
+
// the reader to wonder.
|
|
317
|
+
const inStage = inStageSeconds();
|
|
318
|
+
if (waiting || inStage >= heartbeatMs / 1_000) {
|
|
319
|
+
facts.push(`${formatDuration(inStage)} in stage`);
|
|
320
|
+
}
|
|
321
|
+
return facts;
|
|
322
|
+
};
|
|
323
|
+
const announceOverrunIfCrossed = () => {
|
|
324
|
+
if (overrunAnnounced || terminal)
|
|
325
|
+
return;
|
|
326
|
+
if (scopeTypical < QUICK_SCOPE_SUPPRESSION_SECONDS)
|
|
327
|
+
return;
|
|
328
|
+
// Until a scope begins, the subject is the whole run — measured on the
|
|
329
|
+
// run's own age, so a waiter attaching to a twenty-minute-old run does
|
|
330
|
+
// not re-promise the typical it already passed.
|
|
331
|
+
const running = scopeName === undefined ? elapsedSeconds() : scopeElapsedSeconds();
|
|
332
|
+
if (running <= scopeTypical)
|
|
333
|
+
return;
|
|
334
|
+
overrunAnnounced = true;
|
|
335
|
+
const subject = scopeName ?? args.label;
|
|
336
|
+
const best = factsFor(observation, false).filter((fact) => !fact.endsWith('in stage'));
|
|
337
|
+
emitLine(`[${formatDuration(elapsedSeconds())}] ${subject} has been running`
|
|
338
|
+
+ ` ${formatDuration(running)}, past its ~${formatDuration(scopeTypical)}`
|
|
339
|
+
+ ` typical${best.length > 0 ? ` — still advancing: ${best.join(', ')}` : ''}.`
|
|
340
|
+
+ ' The service reports stage facts, not a completion time; ticks continue.');
|
|
341
|
+
};
|
|
342
|
+
const semanticKey = (value, stage) => JSON.stringify({
|
|
343
|
+
stage,
|
|
344
|
+
scope: scopeName,
|
|
345
|
+
completed: value.completed,
|
|
346
|
+
total: value.total,
|
|
347
|
+
running: value.running,
|
|
348
|
+
lanes: value.lanes?.map((lane) => [lane.kind, lane.completed, lane.total, lane.status]),
|
|
349
|
+
attempt: value.attempt,
|
|
350
|
+
children: value.children?.map((child) => [child.id, child.stage]),
|
|
351
|
+
milestone: value.milestone,
|
|
352
|
+
detail: value.detail,
|
|
353
|
+
});
|
|
354
|
+
const emitTick = (waiting) => {
|
|
355
|
+
recordHeartbeat();
|
|
356
|
+
announceOverrunIfCrossed();
|
|
357
|
+
const line = renderProgressTick({
|
|
358
|
+
elapsedSeconds: elapsedSeconds(),
|
|
359
|
+
...(scopeName ? { scope: scopeName } : {}),
|
|
360
|
+
stage: currentStage,
|
|
361
|
+
...(waiting ? { waiting } : {}),
|
|
362
|
+
facts: factsFor(observation, waiting),
|
|
363
|
+
});
|
|
364
|
+
// Dedupe on what the READER sees: raw lane churn that changes no
|
|
365
|
+
// rendered fact must not print the same sentence again (measured:
|
|
366
|
+
// 'materializing assets — structure ready' twice, 6s apart). Cadence
|
|
367
|
+
// ticks carry an advancing in-stage clock, so liveness still prints.
|
|
368
|
+
const body = line.replace(/^\[[^\]]+\] /u, '');
|
|
369
|
+
if (body === lastRenderedBody)
|
|
370
|
+
return;
|
|
371
|
+
lastRenderedBody = body;
|
|
372
|
+
emitLine(line);
|
|
373
|
+
};
|
|
374
|
+
const clear = () => {
|
|
375
|
+
if (timer)
|
|
376
|
+
clearInterval(timer);
|
|
377
|
+
timer = undefined;
|
|
378
|
+
};
|
|
379
|
+
// The promise is a tick AT LEAST every heartbeat. A timer at the full
|
|
380
|
+
// interval that also skips recent writes lets the worst gap approach two
|
|
381
|
+
// intervals (measured 20-30s on the v2 draft capture); polling at a third
|
|
382
|
+
// with a two-thirds gate keeps every gap inside the promised interval.
|
|
383
|
+
const tick = () => {
|
|
384
|
+
if (terminal)
|
|
385
|
+
return;
|
|
386
|
+
if (now() - lastWrittenAt < (heartbeatMs * 2) / 3)
|
|
387
|
+
return;
|
|
388
|
+
emitTick(true);
|
|
389
|
+
};
|
|
390
|
+
if (heartbeatMs > 0) {
|
|
391
|
+
timer = setInterval(tick, Math.max(250, Math.round(heartbeatMs / 3)));
|
|
392
|
+
timer.unref?.();
|
|
393
|
+
}
|
|
394
|
+
return {
|
|
395
|
+
brief: (brief) => {
|
|
396
|
+
if (terminal)
|
|
397
|
+
return;
|
|
398
|
+
recordHeartbeat();
|
|
399
|
+
for (const line of renderRunBrief(brief, Math.round(heartbeatMs / 1_000)))
|
|
400
|
+
emitLine(line);
|
|
401
|
+
},
|
|
402
|
+
beginScope: (scope) => {
|
|
403
|
+
if (terminal)
|
|
404
|
+
return;
|
|
405
|
+
scopeName = scope.name;
|
|
406
|
+
scopeTypical = scope.typicalSeconds ?? args.typicalSeconds;
|
|
407
|
+
scopeStartedAt = now();
|
|
408
|
+
overrunAnnounced = false;
|
|
409
|
+
stageOrder = [];
|
|
410
|
+
currentStage = 'starting';
|
|
411
|
+
currentStageAt = now();
|
|
412
|
+
const sentence = scope.sentence ?? (`now ${scope.name ?? args.label}`
|
|
413
|
+
+ `${scope.typicalSeconds !== undefined
|
|
414
|
+
&& scope.typicalSeconds >= QUICK_SCOPE_SUPPRESSION_SECONDS
|
|
415
|
+
? ` (~${formatDuration(scope.typicalSeconds)} typical`
|
|
416
|
+
+ `${scope.basis ? `, ${scope.basis}` : ''})`
|
|
417
|
+
: ''}`);
|
|
418
|
+
emitLine(`[${formatDuration(elapsedSeconds())}] ${sentence}`);
|
|
419
|
+
},
|
|
420
|
+
update: (next) => {
|
|
421
|
+
if (terminal)
|
|
422
|
+
return;
|
|
423
|
+
if (next.elapsedSeconds !== undefined) {
|
|
424
|
+
elapsedAnchor = Math.max(0, next.elapsedSeconds);
|
|
425
|
+
elapsedAnchorAt = now();
|
|
426
|
+
}
|
|
427
|
+
const stage = foldStage(next.stage);
|
|
428
|
+
if (stage !== currentStage) {
|
|
429
|
+
currentStage = stage;
|
|
430
|
+
currentStageAt = now();
|
|
431
|
+
}
|
|
432
|
+
observation = { ...next };
|
|
433
|
+
const nextSemantic = semanticKey(next, stage);
|
|
434
|
+
if (nextSemantic === semantic) {
|
|
435
|
+
// Nothing material moved; the cadence timer owns liveness. Recording
|
|
436
|
+
// the heartbeat keeps the journal's clock honest between lines.
|
|
437
|
+
recordHeartbeat();
|
|
438
|
+
announceOverrunIfCrossed();
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
semantic = nextSemantic;
|
|
442
|
+
emitTick(false);
|
|
443
|
+
},
|
|
444
|
+
tick,
|
|
445
|
+
note: (sentence) => {
|
|
446
|
+
if (terminal)
|
|
447
|
+
return;
|
|
448
|
+
emitLine(`[${formatDuration(elapsedSeconds())}] ${sentence}`);
|
|
449
|
+
},
|
|
450
|
+
finish: (status, report = {}) => {
|
|
451
|
+
if (terminal)
|
|
452
|
+
return;
|
|
453
|
+
terminal = true;
|
|
454
|
+
clear();
|
|
455
|
+
if (report.elapsedSeconds !== undefined) {
|
|
456
|
+
elapsedAnchor = Math.max(0, report.elapsedSeconds);
|
|
457
|
+
elapsedAnchorAt = now();
|
|
458
|
+
}
|
|
459
|
+
recordHeartbeat();
|
|
460
|
+
for (const line of renderTerminalReport({
|
|
461
|
+
status,
|
|
462
|
+
label: args.label,
|
|
463
|
+
elapsedSeconds: elapsedSeconds(),
|
|
464
|
+
...(report.artifacts ? { artifacts: report.artifacts } : {}),
|
|
465
|
+
...(report.spend ? { spend: report.spend } : {}),
|
|
466
|
+
...(report.next ? { next: report.next } : {}),
|
|
467
|
+
...(report.detail ? { detail: report.detail } : {}),
|
|
468
|
+
}))
|
|
469
|
+
emitLine(line);
|
|
470
|
+
},
|
|
471
|
+
dispose: clear,
|
|
472
|
+
};
|
|
473
|
+
};
|
|
103
474
|
/**
|
|
104
475
|
* THE mandatory closing line of any output that is not yet terminal.
|
|
105
476
|
*
|
|
@@ -115,11 +486,11 @@ export const nextActionLine = (args) => {
|
|
|
115
486
|
// A typical the run has already passed is a stale promise, and a caller that
|
|
116
487
|
// reads one concludes the work is wedged. A measured run was abandoned at six
|
|
117
488
|
// minutes against a five-minute quote and settled at eleven. Past the quote
|
|
118
|
-
// the line reports the elapsed time and
|
|
489
|
+
// the line reports the elapsed time and why it cannot replace the estimate.
|
|
119
490
|
const elapsed = args.elapsedSeconds;
|
|
120
491
|
const opening = elapsed !== undefined && elapsed > args.typicalSeconds
|
|
121
492
|
? `${args.what} has been running ${formatDuration(elapsed)}, past the`
|
|
122
|
-
+ ` ~${formatDuration(args.typicalSeconds)} typical
|
|
493
|
+
+ ` ~${formatDuration(args.typicalSeconds)} typical. ${REVISED_ETA_UNAVAILABLE}`
|
|
123
494
|
: `${args.what} typically takes about ${formatDuration(args.typicalSeconds)}.`;
|
|
124
495
|
return `${opening} Check again in ${checkAgain} with \`${args.statusCommand}\`, ${wait}.`;
|
|
125
496
|
};
|
|
@@ -127,16 +498,30 @@ export const nextActionLine = (args) => {
|
|
|
127
498
|
export const narrateCounts = (counts) => counts
|
|
128
499
|
.map((entry) => `${entry.count} ${entry.label}${entry.detail ? ` (${entry.detail})` : ''}`)
|
|
129
500
|
.join(', ');
|
|
130
|
-
export const secondsSince = (iso, now) => {
|
|
131
|
-
if (!iso)
|
|
132
|
-
return undefined;
|
|
133
|
-
const started = Date.parse(iso);
|
|
134
|
-
return Number.isFinite(started) ? Math.max(0, (now - started) / 1000) : undefined;
|
|
135
|
-
};
|
|
136
501
|
/** Human-readable name for a pipeline stage, for progress lines. */
|
|
137
502
|
const STAGE_LABELS = {
|
|
503
|
+
starting: 'starting',
|
|
504
|
+
claiming: 'claiming the run',
|
|
505
|
+
claim: 'claiming planned screens',
|
|
506
|
+
plan: 'planning screens',
|
|
507
|
+
dispatching: 'dispatching',
|
|
508
|
+
resuming: 'resuming recorded work',
|
|
509
|
+
background_start: 'starting background worker',
|
|
510
|
+
collecting: 'collecting artifacts',
|
|
511
|
+
download: 'downloading screens',
|
|
512
|
+
downloading: 'downloading screens',
|
|
513
|
+
convert: 'converting pages',
|
|
514
|
+
converting: 'converting pages',
|
|
515
|
+
branch: 'running branch',
|
|
516
|
+
package: 'running package conversion',
|
|
517
|
+
draft: 'running hosted draft',
|
|
518
|
+
resume: 'resuming recorded work',
|
|
138
519
|
queued: 'queued',
|
|
139
520
|
prepare: 'preparing',
|
|
521
|
+
retrieving_corpus: 'retrieving corpus references',
|
|
522
|
+
searching_corpus: 'searching the corpus',
|
|
523
|
+
downloading_references: 'downloading references',
|
|
524
|
+
generating: 'generating',
|
|
140
525
|
extract_merge_snap: 'extracting layers',
|
|
141
526
|
materialize: 'materializing assets',
|
|
142
527
|
// The operation projection substitutes these display stages for the raw
|
|
@@ -151,6 +536,12 @@ const STAGE_LABELS = {
|
|
|
151
536
|
static_export: 'rendering export',
|
|
152
537
|
project_export: 'building project',
|
|
153
538
|
publish: 'publishing',
|
|
539
|
+
terminal: 'complete',
|
|
540
|
+
settled: 'settled',
|
|
541
|
+
interrupted: 'interrupted',
|
|
542
|
+
stopped: 'stopped',
|
|
543
|
+
idle: 'idle',
|
|
544
|
+
running: 'running',
|
|
154
545
|
// The package coordinator's own phases.
|
|
155
546
|
convert_viewports: 'converting viewports',
|
|
156
547
|
compose_pages: 'composing pages',
|
|
@@ -165,19 +556,24 @@ const STAGE_UNITS = {
|
|
|
165
556
|
publish: 'page',
|
|
166
557
|
};
|
|
167
558
|
/**
|
|
168
|
-
*
|
|
559
|
+
* The unit phrase for a package phase's counts. The convert_viewports phase
|
|
560
|
+
* counts VIEWPORTS: labelling them pages read `1 of 3 pages` on a one-page
|
|
561
|
+
* run (measured on the v2 board's branch worker log).
|
|
562
|
+
*/
|
|
563
|
+
export const packageStageUnit = (stage) => (`${STAGE_UNITS[stage] ?? 'item'}s`);
|
|
564
|
+
/**
|
|
565
|
+
* `converting viewports — 1 of 3 viewports, 2 running, 1m 20s in stage`.
|
|
169
566
|
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
* them
|
|
567
|
+
* The percent field on the durable record is accepted but never rendered
|
|
568
|
+
* (owner, 2026-08-21): the package percent is the measured stuck metric —
|
|
569
|
+
* 93% across a 17m58 anchor wait — and a frozen number beside advancing
|
|
570
|
+
* facts reads as a wedge. The counts and the time in phase are facts that
|
|
571
|
+
* keep advancing while the percent does not. Every fact is optional, because
|
|
572
|
+
* a server that predates them answers without them and a renderer that
|
|
573
|
+
* demanded them would print nothing at all.
|
|
176
574
|
*/
|
|
177
575
|
export const packageProgressLine = (progress, now = Date.now()) => {
|
|
178
|
-
const head = progress.
|
|
179
|
-
? stageLabel(progress.stage)
|
|
180
|
-
: `${stageLabel(progress.stage)} ${progress.percent}%`;
|
|
576
|
+
const head = stageLabel(progress.stage);
|
|
181
577
|
const unit = STAGE_UNITS[progress.stage];
|
|
182
578
|
const facts = [];
|
|
183
579
|
if (progress.total !== undefined) {
|
|
@@ -192,73 +588,4 @@ export const packageProgressLine = (progress, now = Date.now()) => {
|
|
|
192
588
|
facts.push(`${progress.pagesAvailable} page(s) ready`);
|
|
193
589
|
return facts.length === 0 ? head : `${head} — ${facts.join(', ')}`;
|
|
194
590
|
};
|
|
195
|
-
/**
|
|
196
|
-
* One writer for every package progress line, deduplicated per page.
|
|
197
|
-
*
|
|
198
|
-
* The poll revalidates every few seconds and mostly sees the same facts;
|
|
199
|
-
* repeating an unchanged line is how a stream stops reading as motion. When the
|
|
200
|
-
* server publishes its time in phase the line advances on its own, which is the
|
|
201
|
-
* point — a percent that has not moved is exactly when a caller needs to see
|
|
202
|
-
* that something still is.
|
|
203
|
-
*/
|
|
204
|
-
export const createPackageProgressReporter = (args) => {
|
|
205
|
-
const last = new Map();
|
|
206
|
-
return (pageId, progress) => {
|
|
207
|
-
const line = packageProgressLine(progress, (args.now ?? Date.now)());
|
|
208
|
-
if (last.get(pageId ?? '') === line)
|
|
209
|
-
return;
|
|
210
|
-
last.set(pageId ?? '', line);
|
|
211
|
-
args.write(`[${args.elapsed()}] package${pageId ? ` ${pageId}` : ''}: ${line}`);
|
|
212
|
-
};
|
|
213
|
-
};
|
|
214
|
-
/**
|
|
215
|
-
* Streams stage progress to stderr, one line per distinct stage/percent.
|
|
216
|
-
*
|
|
217
|
-
* stderr, not stdout, so the command's machine-readable result stays a single
|
|
218
|
-
* clean JSON document that a caller can pipe. Deduplicated because the poll
|
|
219
|
-
* loop revalidates every couple of seconds and mostly sees no change.
|
|
220
|
-
*/
|
|
221
|
-
export const createProgressReporter = (args) => {
|
|
222
|
-
const write = args.write ?? ((line) => { process.stderr.write(`${line}\n`); });
|
|
223
|
-
const startedAt = (args.now ?? Date.now)();
|
|
224
|
-
let last = '';
|
|
225
|
-
let saidPastTypical = false;
|
|
226
|
-
const seconds = () => ((args.now ?? Date.now)() - startedAt) / 1000;
|
|
227
|
-
const elapsed = () => formatDuration(seconds());
|
|
228
|
-
return {
|
|
229
|
-
onProgress: (operation) => {
|
|
230
|
-
const observed = operation.progress?.stage ?? operation.status;
|
|
231
|
-
args.heartbeat?.({
|
|
232
|
-
stage: observed,
|
|
233
|
-
elapsedSeconds: seconds(),
|
|
234
|
-
...(args.typicalSeconds === undefined ? {} : { typicalSeconds: args.typicalSeconds }),
|
|
235
|
-
});
|
|
236
|
-
if (args.quiet)
|
|
237
|
-
return;
|
|
238
|
-
const stage = observed;
|
|
239
|
-
const percent = operation.progress?.percent;
|
|
240
|
-
const line = percent === undefined
|
|
241
|
-
? `${args.label}: ${stageLabel(stage)}`
|
|
242
|
-
: `${args.label}: ${stageLabel(stage)} ${percent}%`;
|
|
243
|
-
const passing = !saidPastTypical
|
|
244
|
-
&& args.typicalSeconds !== undefined
|
|
245
|
-
&& seconds() > args.typicalSeconds;
|
|
246
|
-
if (line === last && !passing)
|
|
247
|
-
return;
|
|
248
|
-
last = line;
|
|
249
|
-
if (!passing) {
|
|
250
|
-
write(`[${elapsed()}] ${line}`);
|
|
251
|
-
return;
|
|
252
|
-
}
|
|
253
|
-
saidPastTypical = true;
|
|
254
|
-
write(`[${elapsed()}] ${line}`
|
|
255
|
-
+ `, past the ~${formatDuration(args.typicalSeconds)} typical and still working`);
|
|
256
|
-
},
|
|
257
|
-
done: (operation) => {
|
|
258
|
-
if (args.quiet)
|
|
259
|
-
return;
|
|
260
|
-
write(`[${elapsed()}] ${args.label}: ${operation.status}`);
|
|
261
|
-
},
|
|
262
|
-
};
|
|
263
|
-
};
|
|
264
591
|
//# sourceMappingURL=cli-progress.js.map
|
package/dist/cli-progress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-progress.js","sourceRoot":"","sources":["../src/cli-progress.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-progress.js","sourceRoot":"","sources":["../src/cli-progress.ts"],"names":[],"mappings":"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"}
|