@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
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one owner of the Branch page-packaging policy (CLAUDE.md item 9).
|
|
3
|
+
*
|
|
4
|
+
* A `web_page` is one continuous document, so every ordered viewport remains
|
|
5
|
+
* in one package page. The other declared surfaces are complete application
|
|
6
|
+
* states: when a logical plan page carries more than one such state, each is
|
|
7
|
+
* exported as its own page while the generation dependency stays on the
|
|
8
|
+
* original screen record.
|
|
9
|
+
*/
|
|
10
|
+
const APP_STATE_SURFACES = new Set(['web_app', 'mobile_app', 'immersive']);
|
|
11
|
+
const TITLE_LIMIT = 200;
|
|
12
|
+
const PURPOSE_LIMIT = 1_000;
|
|
13
|
+
const clamp = (value, limit) => (value.length <= limit ? value : `${value.slice(0, limit - 1)}…`);
|
|
14
|
+
const screenBySlot = (screens) => (new Map(screens.map((screen) => [screen.slot, screen])));
|
|
15
|
+
const orderedSlots = (page, bySlot) => [...page.slots].sort((left, right) => {
|
|
16
|
+
const leftOrdinal = bySlot.get(left)?.viewportOrdinal ?? Number.MAX_SAFE_INTEGER;
|
|
17
|
+
const rightOrdinal = bySlot.get(right)?.viewportOrdinal ?? Number.MAX_SAFE_INTEGER;
|
|
18
|
+
return leftOrdinal - rightOrdinal || left.localeCompare(right);
|
|
19
|
+
});
|
|
20
|
+
const splitAppPage = (page, bySlot) => {
|
|
21
|
+
const slots = orderedSlots(page, bySlot);
|
|
22
|
+
const winner = page.startsFromWinner
|
|
23
|
+
? [{
|
|
24
|
+
...page,
|
|
25
|
+
slots: [],
|
|
26
|
+
packageLineage: {
|
|
27
|
+
pageIndex: page.index,
|
|
28
|
+
pageId: page.id,
|
|
29
|
+
viewportOrdinal: 1,
|
|
30
|
+
state: 'winner',
|
|
31
|
+
},
|
|
32
|
+
}]
|
|
33
|
+
: [];
|
|
34
|
+
const generated = slots.map((slot, slotIndex) => {
|
|
35
|
+
const screen = bySlot.get(slot);
|
|
36
|
+
const stateIndex = winner.length + slotIndex;
|
|
37
|
+
const keepsPageIdentity = stateIndex === 0;
|
|
38
|
+
const fallbackOrdinal = slotIndex + (page.startsFromWinner ? 2 : 1);
|
|
39
|
+
return {
|
|
40
|
+
...page,
|
|
41
|
+
id: keepsPageIdentity ? page.id : `${page.id}-${slot}`,
|
|
42
|
+
// The approved winner is the only source page. A continuation of it is
|
|
43
|
+
// a sibling application state, not a second site entrypoint.
|
|
44
|
+
kind: 'additional',
|
|
45
|
+
title: clamp(screen?.direction?.trim() || `${page.title} (state ${stateIndex + 1})`, TITLE_LIMIT),
|
|
46
|
+
purpose: clamp(screen?.content?.trim() || page.purpose, PURPOSE_LIMIT),
|
|
47
|
+
startsFromWinner: false,
|
|
48
|
+
slots: [slot],
|
|
49
|
+
// `synthesized` describes the restored approved page only.
|
|
50
|
+
synthesized: undefined,
|
|
51
|
+
packageLineage: {
|
|
52
|
+
pageIndex: page.index,
|
|
53
|
+
pageId: page.id,
|
|
54
|
+
viewportOrdinal: screen?.viewportOrdinal ?? fallbackOrdinal,
|
|
55
|
+
state: 'screen',
|
|
56
|
+
slot,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
return [...winner, ...generated];
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Expand only logical pages that contain multiple complete app states. When no
|
|
64
|
+
* page fires, return the original array so the continuous-document path has no
|
|
65
|
+
* normalization or copying step of its own.
|
|
66
|
+
*/
|
|
67
|
+
export const packageBranchPlanPages = (plan) => {
|
|
68
|
+
const bySlot = screenBySlot(plan.screens);
|
|
69
|
+
let split = false;
|
|
70
|
+
const pages = plan.pages.flatMap((page) => {
|
|
71
|
+
const stateCount = page.slots.length + (page.startsFromWinner ? 1 : 0);
|
|
72
|
+
if (!APP_STATE_SURFACES.has(page.surfaceType) || stateCount <= 1)
|
|
73
|
+
return [page];
|
|
74
|
+
split = true;
|
|
75
|
+
return splitAppPage(page, bySlot);
|
|
76
|
+
});
|
|
77
|
+
return split ? pages : plan.pages;
|
|
78
|
+
};
|
|
79
|
+
/** Normalized plans persist the decision; hand-built older fixtures derive it. */
|
|
80
|
+
export const branchConversionPages = (plan) => (plan.packagePages ?? packageBranchPlanPages(plan));
|
|
81
|
+
/** The logical planner page behind one package page. */
|
|
82
|
+
export const branchPackageSourcePage = (page) => ({
|
|
83
|
+
index: page.packageLineage?.pageIndex ?? page.index,
|
|
84
|
+
id: page.packageLineage?.pageId ?? page.id,
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=branch-page-packaging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branch-page-packaging.js","sourceRoot":"","sources":["../src/branch-page-packaging.ts"],"names":[],"mappings":"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"}
|
package/dist/branch-plan.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { BranchRunEnvelope, BranchScreenStatus } from './branch-client.js';
|
|
2
2
|
import type { BranchScope } from './branch-identity.js';
|
|
3
|
+
import { type BranchPackagePage } from './branch-page-packaging.js';
|
|
3
4
|
/**
|
|
4
5
|
* Plan normalisation. The wire envelope keeps ordering and per-screen facts in
|
|
5
6
|
* two different places — `plan.pages[].slots` and `candidates[]` — so this is
|
|
@@ -10,6 +11,20 @@ import type { BranchScope } from './branch-identity.js';
|
|
|
10
11
|
* source page starting at `viewportOrdinal` 2; ordinal 1 of that page is the
|
|
11
12
|
* image the run branched from. Additional pages start at ordinal 1 because
|
|
12
13
|
* every one of their viewports is generated.
|
|
14
|
+
*
|
|
15
|
+
* THE SOURCE PAGE IS NEVER ABSENT CLIENT-SIDE. A wire plan whose approved
|
|
16
|
+
* screen already ends carries no source page at all — the planner drops every
|
|
17
|
+
* page with no viewport, and the source page has none when `sourceEndsHere` —
|
|
18
|
+
* and a run that read `plan.pages` literally then never staged the winner,
|
|
19
|
+
* never converted it, and still reported success. The approved design IS the
|
|
20
|
+
* site's index page, so a missing source page is synthesized here (`slots: []`,
|
|
21
|
+
* `startsFromWinner`, `synthesized`) and every phase downstream sees the same
|
|
22
|
+
* shape whether the server sent it or not.
|
|
23
|
+
*
|
|
24
|
+
* `--max-screens` likewise never leaves a page with nothing to convert: the
|
|
25
|
+
* trim keeps a PREFIX of the plan's slots, and a page the cap emptied leaves
|
|
26
|
+
* `pages` entirely and is named in `trimmed` instead of surviving as a page the
|
|
27
|
+
* conversion would have to skip.
|
|
13
28
|
*/
|
|
14
29
|
export type BranchPlannedScreen = {
|
|
15
30
|
slot: string;
|
|
@@ -40,6 +55,28 @@ export type BranchPlannedPage = {
|
|
|
40
55
|
/** True when viewport 1 of this page is the approved winner, not a slot. */
|
|
41
56
|
startsFromWinner: boolean;
|
|
42
57
|
slots: string[];
|
|
58
|
+
/**
|
|
59
|
+
* Present (always `true`) on a source page the wire plan omitted because the
|
|
60
|
+
* approved screen already ends. The client carries it regardless: the
|
|
61
|
+
* approved design IS the site's index page, and a run that dropped it
|
|
62
|
+
* converted every speculative sibling and lost the one page the user chose.
|
|
63
|
+
* Additive and absent otherwise.
|
|
64
|
+
*/
|
|
65
|
+
synthesized?: true;
|
|
66
|
+
};
|
|
67
|
+
/** What `--max-screens` left out, named rather than silently missing. */
|
|
68
|
+
export type BranchPlanTrim = {
|
|
69
|
+
maxScreens: number;
|
|
70
|
+
/** Every planned slot the cap left out, in plan order. */
|
|
71
|
+
slots: string[];
|
|
72
|
+
/** Pages the cap left out whole, so no page survives with nothing to convert. */
|
|
73
|
+
pages: {
|
|
74
|
+
index: number;
|
|
75
|
+
id: string;
|
|
76
|
+
kind: 'source' | 'additional';
|
|
77
|
+
title: string;
|
|
78
|
+
slots: string[];
|
|
79
|
+
}[];
|
|
43
80
|
};
|
|
44
81
|
export type BranchNormalizedPlan = {
|
|
45
82
|
runId: string;
|
|
@@ -50,7 +87,14 @@ export type BranchNormalizedPlan = {
|
|
|
50
87
|
statusUpdate: string;
|
|
51
88
|
approvedScreenSummary: string;
|
|
52
89
|
pages: BranchPlannedPage[];
|
|
90
|
+
/**
|
|
91
|
+
* The pages conversion will submit. Multi-state app pages are expanded here;
|
|
92
|
+
* continuous web pages remain the same objects in the same order.
|
|
93
|
+
*/
|
|
94
|
+
packagePages?: BranchPackagePage[];
|
|
53
95
|
screens: BranchPlannedScreen[];
|
|
96
|
+
/** Absent when no cap was asked for, or when the cap cut nothing. */
|
|
97
|
+
trimmed?: BranchPlanTrim;
|
|
54
98
|
};
|
|
55
99
|
/** Stable, filesystem-safe, and self-describing: `p0-pricing`, `p2`. */
|
|
56
100
|
export declare const branchPageId: (index: number, title: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-plan.d.ts","sourceRoot":"","sources":["../src/branch-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,
|
|
1
|
+
{"version":3,"file":"branch-plan.d.ts","sourceRoot":"","sources":["../src/branch-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAGjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,iFAAiF;IACjF,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,qEAAqE;IACrE,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,CAAC;AASF,wEAAwE;AACxE,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MAQ3D,CAAC;AA2DF,eAAO,MAAM,mBAAmB,GAC9B,UAAU,iBAAiB,EAC3B,SAAS;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KACnD,oBA8FF,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,GAC9B,MAAM,oBAAoB,EAC1B,UAAU,iBAAiB,KAC1B,oBAWF,CAAC"}
|
package/dist/branch-plan.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { packageBranchPlanPages, } from './branch-page-packaging.js';
|
|
1
2
|
const PAGE_TITLE_LIMIT = 200;
|
|
2
3
|
const PAGE_PURPOSE_LIMIT = 1_000;
|
|
3
4
|
const clamp = (value, limit) => (value.length <= limit ? value : `${value.slice(0, limit - 1)}…`);
|
|
@@ -11,6 +12,41 @@ export const branchPageId = (index, title) => {
|
|
|
11
12
|
.replace(/-+$/u, '');
|
|
12
13
|
return slug ? `p${index}-${slug}` : `p${index}`;
|
|
13
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* The web board's own name for its first column, which is always this page —
|
|
17
|
+
* `SOURCE_COLUMN_TITLE` in `apps/web/src/pages/branch/branchColumns.ts`. The
|
|
18
|
+
* CLI and the board name the same page the same thing.
|
|
19
|
+
*/
|
|
20
|
+
const SOURCE_PAGE_TITLE = 'Source design';
|
|
21
|
+
/**
|
|
22
|
+
* The wire pages, with the source page restored when the planner dropped it.
|
|
23
|
+
*
|
|
24
|
+
* Page 0 is the source page by the server's own construction — indexes are
|
|
25
|
+
* assigned before pages with no viewport are filtered out — so synthesizing at
|
|
26
|
+
* index 0 can never collide with a page the server sent.
|
|
27
|
+
*/
|
|
28
|
+
const wirePages = (plan) => {
|
|
29
|
+
const pages = plan.pages.map((page) => ({ page, synthesized: false }));
|
|
30
|
+
if (pages.some((entry) => entry.page.kind === 'source'))
|
|
31
|
+
return pages;
|
|
32
|
+
return [
|
|
33
|
+
{
|
|
34
|
+
synthesized: true,
|
|
35
|
+
page: {
|
|
36
|
+
index: 0,
|
|
37
|
+
kind: 'source',
|
|
38
|
+
title: SOURCE_PAGE_TITLE,
|
|
39
|
+
pageType: 'other',
|
|
40
|
+
// Whatever the rest of this plan is, the approved design is one of them.
|
|
41
|
+
surfaceType: plan.pages[0]?.surfaceType ?? 'web_page',
|
|
42
|
+
purpose: plan.approvedScreenSummary ?? '',
|
|
43
|
+
sourceEndsHere: true,
|
|
44
|
+
slots: [],
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
...pages,
|
|
48
|
+
];
|
|
49
|
+
};
|
|
14
50
|
const screenFor = (candidate) => {
|
|
15
51
|
if (candidate.pageIndex === undefined || candidate.viewportOrdinal === undefined)
|
|
16
52
|
return null;
|
|
@@ -37,36 +73,50 @@ export const normalizeBranchPlan = (envelope, options) => {
|
|
|
37
73
|
+ ' branched.');
|
|
38
74
|
}
|
|
39
75
|
const bySlot = new Map(envelope.candidates.map((candidate) => [candidate.slot, candidate]));
|
|
76
|
+
const declared = wirePages(plan);
|
|
40
77
|
// Plan order is page order then viewport order, which is also slot order.
|
|
41
78
|
// Everything downstream — the footer seed, the dependency chains, the
|
|
42
79
|
// `--max-screens` trim — depends on keeping exactly that sequence.
|
|
43
|
-
const orderedSlots =
|
|
80
|
+
const orderedSlots = declared.flatMap((entry) => ((entry.page.slots ?? []).filter((slot) => bySlot.has(slot))));
|
|
44
81
|
const scopedPages = options.scope === 'page'
|
|
45
|
-
?
|
|
46
|
-
:
|
|
47
|
-
const scopedSlots = new Set(scopedPages.flatMap((
|
|
48
|
-
const
|
|
82
|
+
? declared.filter((entry) => entry.page.kind === 'source')
|
|
83
|
+
: declared;
|
|
84
|
+
const scopedSlots = new Set(scopedPages.flatMap((entry) => entry.page.slots ?? []));
|
|
85
|
+
const planned = orderedSlots.filter((slot) => scopedSlots.has(slot));
|
|
86
|
+
// A PREFIX, which is dependency-closed: the footer seed is the first
|
|
87
|
+
// footer-bearing slot in plan order and every `dependsOnSlot` points
|
|
88
|
+
// backwards, so keeping the first n can never orphan one that survives.
|
|
89
|
+
const kept = options.maxScreens === undefined
|
|
49
90
|
? null
|
|
50
|
-
: new Set(
|
|
51
|
-
const keeps = (slot) => (scopedSlots.has(slot) && (
|
|
52
|
-
const
|
|
53
|
-
index: page.index,
|
|
54
|
-
id: branchPageId(page.index, page.title ?? ''),
|
|
55
|
-
kind: page.kind,
|
|
56
|
-
title: clamp(page.title ?? `Page ${page.index}`, PAGE_TITLE_LIMIT),
|
|
57
|
-
pageType: page.pageType ?? 'other',
|
|
58
|
-
surfaceType: page.surfaceType ?? 'web_page',
|
|
59
|
-
purpose: clamp(page.purpose ?? '', PAGE_PURPOSE_LIMIT),
|
|
60
|
-
startsFromWinner: page.kind === 'source',
|
|
61
|
-
slots: (page.slots ?? []).filter(keeps),
|
|
91
|
+
: new Set(planned.slice(0, options.maxScreens));
|
|
92
|
+
const keeps = (slot) => (scopedSlots.has(slot) && (kept === null || kept.has(slot)));
|
|
93
|
+
const all = scopedPages.map((entry) => ({
|
|
94
|
+
index: entry.page.index,
|
|
95
|
+
id: branchPageId(entry.page.index, entry.page.title ?? ''),
|
|
96
|
+
kind: entry.page.kind,
|
|
97
|
+
title: clamp(entry.page.title ?? `Page ${entry.page.index}`, PAGE_TITLE_LIMIT),
|
|
98
|
+
pageType: entry.page.pageType ?? 'other',
|
|
99
|
+
surfaceType: entry.page.surfaceType ?? 'web_page',
|
|
100
|
+
purpose: clamp(entry.page.purpose ?? '', PAGE_PURPOSE_LIMIT),
|
|
101
|
+
startsFromWinner: entry.page.kind === 'source',
|
|
102
|
+
slots: (entry.page.slots ?? []).filter(keeps),
|
|
103
|
+
...(entry.synthesized ? { synthesized: true } : {}),
|
|
62
104
|
}));
|
|
105
|
+
// A page the cap emptied has nothing to convert, so it leaves the plan and is
|
|
106
|
+
// named instead. The source page never can: its viewport 1 is the winner.
|
|
107
|
+
const emptied = kept === null
|
|
108
|
+
? []
|
|
109
|
+
: all.filter((page) => !page.startsFromWinner && page.slots.length === 0);
|
|
110
|
+
const emptiedIds = new Set(emptied.map((page) => page.id));
|
|
111
|
+
const leftOut = kept === null ? [] : planned.filter((slot) => !kept.has(slot));
|
|
112
|
+
const pages = all.filter((page) => !emptiedIds.has(page.id));
|
|
63
113
|
const screens = orderedSlots
|
|
64
114
|
.filter(keeps)
|
|
65
115
|
.flatMap((slot) => {
|
|
66
116
|
const screen = screenFor(bySlot.get(slot));
|
|
67
117
|
return screen ? [screen] : [];
|
|
68
118
|
});
|
|
69
|
-
|
|
119
|
+
const normalized = {
|
|
70
120
|
runId: envelope.id,
|
|
71
121
|
concept: envelope.concept,
|
|
72
122
|
aspect: envelope.aspect,
|
|
@@ -76,7 +126,28 @@ export const normalizeBranchPlan = (envelope, options) => {
|
|
|
76
126
|
approvedScreenSummary: plan.approvedScreenSummary ?? '',
|
|
77
127
|
pages,
|
|
78
128
|
screens,
|
|
129
|
+
...(leftOut.length > 0
|
|
130
|
+
? {
|
|
131
|
+
trimmed: {
|
|
132
|
+
maxScreens: options.maxScreens,
|
|
133
|
+
slots: leftOut,
|
|
134
|
+
pages: emptied.map((page) => ({
|
|
135
|
+
index: page.index,
|
|
136
|
+
id: page.id,
|
|
137
|
+
kind: page.kind,
|
|
138
|
+
title: page.title,
|
|
139
|
+
// Every slot it planned in scope, all of them outside the cap.
|
|
140
|
+
slots: (scopedPages.find((entry) => entry.page.index === page.index)?.page.slots ?? [])
|
|
141
|
+
.filter((slot) => scopedSlots.has(slot)),
|
|
142
|
+
})),
|
|
143
|
+
},
|
|
144
|
+
}
|
|
145
|
+
: {}),
|
|
79
146
|
};
|
|
147
|
+
const packagePages = packageBranchPlanPages(normalized);
|
|
148
|
+
// A must-stay-silent `web_page` plan keeps the exact pre-policy record shape.
|
|
149
|
+
// Persist the additive assembly decision only when an app page really split.
|
|
150
|
+
return packagePages === pages ? normalized : { ...normalized, packagePages };
|
|
80
151
|
};
|
|
81
152
|
/** Refresh statuses from a later envelope without re-deriving the structure. */
|
|
82
153
|
export const applyBranchEnvelope = (plan, envelope) => {
|
package/dist/branch-plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-plan.js","sourceRoot":"","sources":["../src/branch-plan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"branch-plan.js","sourceRoot":"","sources":["../src/branch-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BranchScope } from './branch-identity.js';
|
|
1
2
|
import type { BranchNormalizedPlan } from './branch-plan.js';
|
|
2
3
|
import type { BranchCompletion } from './branch-run-record.js';
|
|
3
4
|
/**
|
|
@@ -15,6 +16,8 @@ export type BranchProgressScreen = {
|
|
|
15
16
|
status: 'pending' | 'dispatched' | 'succeeded' | 'failed' | 'blocked';
|
|
16
17
|
pageIndex: number;
|
|
17
18
|
viewportOrdinal: number;
|
|
19
|
+
generationPageIndex?: number;
|
|
20
|
+
generationViewportOrdinal?: number;
|
|
18
21
|
dispatchedAt?: string;
|
|
19
22
|
waitingOn?: string;
|
|
20
23
|
};
|
|
@@ -44,6 +47,10 @@ export type BranchProgressRecord = {
|
|
|
44
47
|
startedAt: string;
|
|
45
48
|
updatedAt: string;
|
|
46
49
|
screens: BranchProgressScreen[];
|
|
50
|
+
/** Exact conversion-page count after surface-aware packaging. */
|
|
51
|
+
pageCount?: number;
|
|
52
|
+
/** Planner page groups before complete app states become separate pages. */
|
|
53
|
+
logicalPageCount?: number;
|
|
47
54
|
/** Absent until the first page starts converting. */
|
|
48
55
|
packages?: BranchProgressPackage[];
|
|
49
56
|
};
|
|
@@ -61,10 +68,17 @@ export type BranchStatusCounts = {
|
|
|
61
68
|
};
|
|
62
69
|
export type BranchStatusReport = {
|
|
63
70
|
outDir: string;
|
|
71
|
+
/** The durable scope selects the whole-run estimate for `next --wait`. */
|
|
72
|
+
scope?: BranchScope;
|
|
64
73
|
runId?: string;
|
|
65
74
|
phase: BranchProgressPhase;
|
|
66
75
|
complete: boolean;
|
|
76
|
+
/** The completion sentinel's outcome; terminal does not imply success. */
|
|
77
|
+
terminalStatus?: BranchCompletion['status'];
|
|
67
78
|
counts: BranchStatusCounts;
|
|
79
|
+
/** Exact conversion-page count after surface-aware packaging. */
|
|
80
|
+
pageCount?: number;
|
|
81
|
+
logicalPageCount?: number;
|
|
68
82
|
screens: BranchProgressScreen[];
|
|
69
83
|
/** Always populated: what is moving, and how long it has been moving. */
|
|
70
84
|
narrative: string;
|
|
@@ -78,6 +92,12 @@ export type BranchStatusReport = {
|
|
|
78
92
|
completionPath?: string;
|
|
79
93
|
planPath?: string;
|
|
80
94
|
pages?: BranchCompletion['pages'];
|
|
95
|
+
/** A local worker closed with an error after the last durable progress. */
|
|
96
|
+
interruption?: {
|
|
97
|
+
command: 'branch execute' | 'branch resume';
|
|
98
|
+
errorClass: string;
|
|
99
|
+
occurredAt: string;
|
|
100
|
+
};
|
|
81
101
|
};
|
|
82
102
|
/**
|
|
83
103
|
* One line of motion plus, while anything remains, one line of instruction.
|
|
@@ -90,6 +110,8 @@ export declare const summarizeBranchProgress: (args: {
|
|
|
90
110
|
phase: BranchProgressPhase;
|
|
91
111
|
screens: readonly BranchProgressScreen[];
|
|
92
112
|
packages?: readonly BranchProgressPackage[];
|
|
113
|
+
pageCount?: number;
|
|
114
|
+
logicalPageCount?: number;
|
|
93
115
|
startedAt?: string;
|
|
94
116
|
updatedAt?: string;
|
|
95
117
|
completion?: BranchCompletion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-progress.d.ts","sourceRoot":"","sources":["../src/branch-progress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"branch-progress.d.ts","sourceRoot":"","sources":["../src/branch-progress.ts"],"names":[],"mappings":"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"}
|
package/dist/branch-progress.js
CHANGED
|
@@ -3,6 +3,7 @@ import { mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { BRANCH_PAGE_CONCURRENCY_DEFAULT, OPERATION_DURATION_HINTS, elapsedAgainstTypical, formatDuration, narrateCounts, nextActionLine, packageProgressLine, secondsSince, } from './cli-progress.js';
|
|
5
5
|
import { branchBlockedSlots } from './branch-schedule.js';
|
|
6
|
+
import { branchConversionPages } from './branch-page-packaging.js';
|
|
6
7
|
/**
|
|
7
8
|
* The motion surface. A long command that answers a poll with bare absence is
|
|
8
9
|
* the measured trigger for a caller deciding the process stalled and improvising
|
|
@@ -37,6 +38,7 @@ export const readBranchProgress = async (file) => {
|
|
|
37
38
|
}
|
|
38
39
|
};
|
|
39
40
|
export const branchProgressScreens = (plan, dispatchedAt) => {
|
|
41
|
+
const packagePlacementBySlot = new Map(branchConversionPages(plan).flatMap((page, index) => (page.slots.map((slot) => [slot, { page, index }]))));
|
|
40
42
|
const blocked = new Map(branchBlockedSlots(plan.screens.map((screen) => ({
|
|
41
43
|
slot: screen.slot,
|
|
42
44
|
status: screen.status,
|
|
@@ -45,11 +47,18 @@ export const branchProgressScreens = (plan, dispatchedAt) => {
|
|
|
45
47
|
}))).map((entry) => [entry.slot, entry]));
|
|
46
48
|
return plan.screens.map((screen) => {
|
|
47
49
|
const block = blocked.get(screen.slot);
|
|
50
|
+
const packaged = packagePlacementBySlot.get(screen.slot);
|
|
51
|
+
const pageIndex = packaged?.index ?? screen.pageIndex;
|
|
52
|
+
const viewportOrdinal = packaged?.page.packageLineage ? 1 : screen.viewportOrdinal;
|
|
48
53
|
return {
|
|
49
54
|
slot: screen.slot,
|
|
50
55
|
status: block ? 'blocked' : screen.status,
|
|
51
|
-
pageIndex
|
|
52
|
-
viewportOrdinal
|
|
56
|
+
pageIndex,
|
|
57
|
+
viewportOrdinal,
|
|
58
|
+
...(pageIndex === screen.pageIndex ? {} : { generationPageIndex: screen.pageIndex }),
|
|
59
|
+
...(viewportOrdinal === screen.viewportOrdinal
|
|
60
|
+
? {}
|
|
61
|
+
: { generationViewportOrdinal: screen.viewportOrdinal }),
|
|
53
62
|
...(dispatchedAt[screen.slot] ? { dispatchedAt: dispatchedAt[screen.slot] } : {}),
|
|
54
63
|
...(block
|
|
55
64
|
? { waitingOn: block.waitingOn }
|
|
@@ -81,17 +90,21 @@ const generatingDetail = (screens, now) => {
|
|
|
81
90
|
* stage`. One line per page still converting, so a poll during the longest half
|
|
82
91
|
* of the run reports advancing facts rather than one unchanging sentence.
|
|
83
92
|
*/
|
|
84
|
-
const packageDetail = (packages, now) => {
|
|
85
|
-
if (packages.length === 0)
|
|
93
|
+
const packageDetail = (packages, pageCount, now) => {
|
|
94
|
+
if (packages.length === 0 && pageCount === undefined)
|
|
86
95
|
return undefined;
|
|
87
96
|
// A settled page has nothing left to narrate, so it becomes a tally and the
|
|
88
97
|
// detail stays on the pages that are still moving.
|
|
89
98
|
const converted = packages.filter((entry) => entry.stage === 'succeeded').length;
|
|
90
99
|
const failed = packages.filter((entry) => entry.stage === 'failed').length;
|
|
91
100
|
const moving = packages.filter((entry) => entry.stage !== 'succeeded' && entry.stage !== 'failed');
|
|
101
|
+
const notStarted = pageCount === undefined ? 0 : Math.max(0, pageCount - packages.length);
|
|
92
102
|
return [
|
|
93
|
-
...(
|
|
103
|
+
...(pageCount === undefined
|
|
104
|
+
? (converted > 0 ? [`${converted} converted`] : [])
|
|
105
|
+
: [`${converted} of ${pageCount} converted`]),
|
|
94
106
|
...(failed > 0 ? [`${failed} failed`] : []),
|
|
107
|
+
...(notStarted > 0 ? [`${notStarted} not started`] : []),
|
|
95
108
|
...moving.map((entry) => `${entry.pageId} ${packageProgressLine(entry, now)}`),
|
|
96
109
|
].join('; ');
|
|
97
110
|
};
|
|
@@ -113,14 +126,35 @@ export const summarizeBranchProgress = (args) => {
|
|
|
113
126
|
? `Branch run ${settled.runId} finished ${settled.status}:`
|
|
114
127
|
+ ` ${settled.succeededCount} of ${settled.screenCount} screen(s) generated,`
|
|
115
128
|
+ ` ${settled.failedCount} failed, ${settled.blockedCount} blocked.`
|
|
129
|
+
+ (settled.pageCount === undefined
|
|
130
|
+
? ''
|
|
131
|
+
: ` ${settled.convertedPageCount ?? 0} of ${settled.pageCount} conversion page(s) landed.`)
|
|
116
132
|
+ ` Screens and pages are on disk under ${settled.outDir}.`
|
|
133
|
+
// Two facts a page-blind tally cannot carry, and both change what the
|
|
134
|
+
// reader should do next: a site without its approved page has no index,
|
|
135
|
+
// and a capped run is short by instruction rather than by failure.
|
|
136
|
+
+ (settled.winnerPageFailed
|
|
137
|
+
? ' The approved page did not convert, so this site has no index page.'
|
|
138
|
+
: '')
|
|
139
|
+
+ (settled.trimmed
|
|
140
|
+
? ` --max-screens ${settled.trimmed.maxScreens} left out`
|
|
141
|
+
+ ` ${settled.trimmed.slots.length} planned screen(s)`
|
|
142
|
+
+ `${settled.trimmed.pages.length > 0
|
|
143
|
+
? ` and ${settled.trimmed.pages.length} planned page(s) whole`
|
|
144
|
+
: ''}.`
|
|
145
|
+
: '')
|
|
117
146
|
: `Branch run ${args.runId ?? '(unclaimed)'} is finished; read the completion sentinel.`;
|
|
118
147
|
return {
|
|
119
148
|
outDir: args.outDir,
|
|
120
149
|
...(args.runId ? { runId: args.runId } : {}),
|
|
121
150
|
phase: 'terminal',
|
|
122
151
|
complete: true,
|
|
152
|
+
...(settled ? { terminalStatus: settled.status } : {}),
|
|
123
153
|
counts,
|
|
154
|
+
...(settled?.pageCount === undefined ? {} : { pageCount: settled.pageCount }),
|
|
155
|
+
...(settled?.logicalPageCount === undefined
|
|
156
|
+
? {}
|
|
157
|
+
: { logicalPageCount: settled.logicalPageCount }),
|
|
124
158
|
screens: [...args.screens],
|
|
125
159
|
narrative,
|
|
126
160
|
...(args.startedAt ? { startedAt: args.startedAt } : {}),
|
|
@@ -130,8 +164,10 @@ export const summarizeBranchProgress = (args) => {
|
|
|
130
164
|
};
|
|
131
165
|
}
|
|
132
166
|
const converting = args.phase === 'converting'
|
|
133
|
-
? `Converting
|
|
134
|
-
+ `
|
|
167
|
+
? `Converting${args.pageCount === undefined ? '' : ` ${args.pageCount}`} page(s) as separate`
|
|
168
|
+
+ ` packages, up to ${BRANCH_PAGE_CONCURRENCY_DEFAULT} at a time; continuous web pages keep`
|
|
169
|
+
+ ` ordered viewports together and complete app states are pages`
|
|
170
|
+
+ ` (${formatDuration(OPERATION_DURATION_HINTS.branchPackage)} typical per page).`
|
|
135
171
|
: null;
|
|
136
172
|
const phaseNarrative = args.phase === 'claiming'
|
|
137
173
|
? `Planning the screens (${elapsedAgainstTypical(elapsedSeconds ?? 0, OPERATION_DURATION_HINTS.branchClaim)}); no image bought yet.`
|
|
@@ -157,7 +193,7 @@ export const summarizeBranchProgress = (args) => {
|
|
|
157
193
|
: OPERATION_DURATION_HINTS.branchScreen;
|
|
158
194
|
// Pages convert as their own screens land, so package motion belongs on a
|
|
159
195
|
// dispatching report too — that is exactly when the two overlap.
|
|
160
|
-
const detail = packageDetail(packages, now);
|
|
196
|
+
const detail = packageDetail(packages, args.pageCount, now);
|
|
161
197
|
const narrated = detail ? `${phaseNarrative} pages: ${detail}` : phaseNarrative;
|
|
162
198
|
return {
|
|
163
199
|
outDir: args.outDir,
|
|
@@ -165,6 +201,8 @@ export const summarizeBranchProgress = (args) => {
|
|
|
165
201
|
phase: args.phase,
|
|
166
202
|
complete: false,
|
|
167
203
|
counts,
|
|
204
|
+
...(args.pageCount === undefined ? {} : { pageCount: args.pageCount }),
|
|
205
|
+
...(args.logicalPageCount === undefined ? {} : { logicalPageCount: args.logicalPageCount }),
|
|
168
206
|
screens: [...args.screens],
|
|
169
207
|
...(packages.length > 0 ? { packages: [...packages] } : {}),
|
|
170
208
|
narrative: elapsedSeconds === undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-progress.js","sourceRoot":"","sources":["../src/branch-progress.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"branch-progress.js","sourceRoot":"","sources":["../src/branch-progress.ts"],"names":[],"mappings":"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"}
|