@contentful/experience-design-system-cli 2.35.0-alpha.0 → 2.35.1-dev-build-041b6e0a.0
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/bin/cli.js +1 -57
- package/dist/app.d.ts +9 -0
- package/dist/app.js +997 -0
- package/dist/index.js +1216 -0
- package/dist/package.json +11 -15
- package/dist/program.d.ts +2 -0
- package/dist/src/legacy/legacy-cli-path.d.ts +1 -0
- package/dist/src/legacy/run-legacy.d.ts +1 -0
- package/dist/src/tui/debug-store.d.ts +14 -0
- package/dist/src/tui/help/PageContainer.d.ts +4 -0
- package/dist/src/tui/home/home.d.ts +5 -0
- package/dist/src/tui/home/home.theme.d.ts +14 -0
- package/dist/src/tui/import/PageContainer.d.ts +5 -0
- package/dist/src/tui/import/spawn-v1-import.d.ts +28 -0
- package/dist/src/tui/import/terminal-input.d.ts +2 -0
- package/dist/src/tui/package-root.d.ts +9 -0
- package/dist/src/tui/settings/PageContainer.d.ts +6 -0
- package/dist/src/tui/settings/contentful-configuration/ContentfulConfigScreen.d.ts +4 -0
- package/dist/src/tui/settings/contentful-configuration/config-store.d.ts +9 -0
- package/dist/src/tui/settings/debug-mode/debug-mode-store.d.ts +5 -0
- package/dist/src/tui/settings/debug-mode/screen.d.ts +4 -0
- package/dist/src/tui/settings/opt-in-analytics/analytics-store.d.ts +5 -0
- package/dist/src/tui/settings/opt-in-analytics/screen.d.ts +4 -0
- package/dist/src/tui/settings/utils/v1-store.d.ts +2 -0
- package/dist/src/tui/upgrade/PageContainer.d.ts +4 -0
- package/dist/src/tui/upgrade/version.d.ts +12 -0
- package/dist/src/tui/use-terminal-width.d.ts +1 -0
- package/legacy/bin/cli.js +58 -0
- package/legacy/dist/package.json +73 -0
- package/legacy/dist/src/analyze/composition/interchange-schema.d.ts +17 -0
- package/legacy/dist/src/analyze/composition/resolve-mapping-cli.d.ts +10 -0
- package/{dist → legacy/dist}/src/analyze/composition/resolve-mapping.d.ts +5 -7
- package/{dist → legacy/dist}/src/analyze/extract-command.d.ts +4 -0
- package/{dist → legacy/dist}/src/analyze/select/tui/components/FieldEditor.d.ts +3 -1
- package/{dist → legacy/dist}/src/analyze/select/tui/components/FinalizeDialog.d.ts +2 -2
- package/{dist → legacy/dist}/src/analyze/select/tui/components/GroupedSidebar.d.ts +3 -0
- package/{dist → legacy/dist}/src/analyze/select/tui/components/HelpOverlay.d.ts +2 -0
- package/{dist → legacy/dist}/src/analyze/select/tui/components/Sidebar.d.ts +2 -1
- package/{dist → legacy/dist}/src/analyze/select/tui/hooks/scroll-offset.d.ts +4 -3
- package/{dist → legacy/dist}/src/analyze/select/tui/hooks/useImmediateInput.d.ts +1 -1
- package/legacy/dist/src/credentials-store.d.ts +18 -0
- package/legacy/dist/src/doctor/checks.d.ts +5 -0
- package/legacy/dist/src/doctor/command.d.ts +2 -0
- package/legacy/dist/src/doctor/report.d.ts +7 -0
- package/{dist → legacy/dist}/src/import/agent-model-resolve.d.ts +8 -4
- package/{dist → legacy/dist}/src/import/composition-options.d.ts +0 -2
- package/{dist → legacy/dist}/src/import/tui/WizardApp.d.ts +21 -4
- package/legacy/dist/src/import/tui/components/CompactControlBar.d.ts +4 -0
- package/{dist → legacy/dist}/src/import/tui/components/ReviewStatus.d.ts +0 -5
- package/{dist → legacy/dist}/src/import/tui/hooks/review-input.d.ts +1 -1
- package/{dist → legacy/dist}/src/import/tui/lineage-layout.d.ts +18 -25
- package/legacy/dist/src/import/tui/run-selection-agent.d.ts +9 -0
- package/{dist → legacy/dist}/src/import/tui/scope-gate-columns.d.ts +14 -8
- package/{dist → legacy/dist}/src/import/tui/steps/CredentialsStep.d.ts +4 -1
- package/{dist → legacy/dist}/src/import/tui/steps/GateStep.d.ts +1 -1
- package/{dist → legacy/dist}/src/import/tui/steps/GenerateReviewStep.d.ts +14 -3
- package/legacy/dist/src/import/tui/steps/RunningStep.d.ts +24 -0
- package/{dist → legacy/dist}/src/import/tui/steps/ScopeGateStep.d.ts +1 -1
- package/{dist → legacy/dist}/src/import/tui/steps/WizardPreviewStep.d.ts +2 -2
- package/{dist → legacy/dist}/src/import/tui/wizard-state-transitions.d.ts +5 -7
- package/legacy/dist/src/index.d.ts +1 -0
- package/{dist → legacy/dist}/src/index.js +25284 -24282
- package/legacy/dist/src/lib/agent-definitions.d.ts +14 -0
- package/{dist → legacy/dist}/src/lib/agent-model-options.d.ts +4 -4
- package/{dist → legacy/dist}/src/lib/command-options.d.ts +0 -1
- package/{dist → legacy/dist}/src/lib/debug-logger.d.ts +1 -9
- package/legacy/dist/src/lib/debug-preamble.d.ts +7 -0
- package/{dist → legacy/dist}/src/program.d.ts +3 -3
- package/{dist → legacy/dist}/src/runs/store.d.ts +0 -5
- package/{dist → legacy/dist}/src/session/db.d.ts +32 -2
- package/legacy/dist/src/setup/SetupScreen.d.ts +28 -0
- package/legacy/dist/src/setup/SetupStepper.d.ts +7 -0
- package/legacy/dist/src/setup/command.d.ts +3 -0
- package/legacy/dist/src/setup/lib/checks.d.ts +57 -0
- package/legacy/dist/src/setup/lib/shell.d.ts +12 -0
- package/legacy/dist/src/setup/steps/CodingAgentScreen.d.ts +20 -0
- package/legacy/dist/src/setup/steps/ContentfulCredentialsScreen.d.ts +11 -0
- package/legacy/dist/src/setup/steps/StepLayout.d.ts +20 -0
- package/legacy/dist/src/setup/steps/preferences/AnalyticsScreen.d.ts +5 -0
- package/legacy/dist/src/setup/steps/preferences/BooleanInput.d.ts +21 -0
- package/legacy/dist/src/setup/steps/preferences/ColorPreferenceScreen.d.ts +5 -0
- package/legacy/dist/src/setup/steps/preferences/CustomPromptScreen.d.ts +14 -0
- package/legacy/dist/src/setup/steps/preferences/DebugLogsScreen.d.ts +5 -0
- package/legacy/dist/src/setup/steps/preferences/PreferencesMenu.d.ts +26 -0
- package/legacy/dist/src/setup/steps/prerequisites/PrerequisitesScreen.d.ts +16 -0
- package/legacy/dist/src/setup/steps/prerequisites/build.d.ts +2 -0
- package/legacy/dist/src/setup/steps/prerequisites/deps.d.ts +33 -0
- package/legacy/dist/src/setup/steps/prerequisites/index.d.ts +4 -0
- package/legacy/dist/src/setup/steps/prerequisites/node.d.ts +2 -0
- package/legacy/dist/src/setup/steps/prerequisites/pnpm.d.ts +2 -0
- package/legacy/dist/src/tui/render-with-goodbye.d.ts +7 -0
- package/legacy/dist/src/tui/use-terminal-size.d.ts +6 -0
- package/legacy/dist/src/tui/windowed-panel.d.ts +37 -0
- package/legacy/package.json +77 -0
- package/{skills → legacy/skills}/generate-components.md +99 -65
- package/package.json +13 -17
- package/README.md +0 -263
- package/dist/src/analyze/composition/interchange-schema.d.ts +0 -37
- package/dist/src/analyze/composition/resolve-mapping-cli.d.ts +0 -19
- package/dist/src/analyze/select/tui/components/LineagePanel.d.ts +0 -14
- package/dist/src/credentials-store.d.ts +0 -38
- package/dist/src/import/strip-allowed-components.d.ts +0 -18
- package/dist/src/import/tui/final-review-host.d.ts +0 -8
- package/dist/src/import/tui/hooks/useLineage.d.ts +0 -32
- package/dist/src/import/tui/lineage-input.d.ts +0 -18
- package/dist/src/import/tui/push-decision-gate-helpers.d.ts +0 -8
- package/dist/src/import/tui/review-step-props.d.ts +0 -13
- package/dist/src/import/tui/scope-gate-host.d.ts +0 -21
- package/dist/src/import/tui/steps/AtomicGenerateReviewStep.d.ts +0 -28
- package/dist/src/import/tui/steps/AtomicScopeGateStep.d.ts +0 -3
- package/dist/src/import/tui/steps/PushDecisionGateStep.d.ts +0 -12
- package/dist/src/import/tui/steps/RunningStep.d.ts +0 -13
- package/dist/src/import/tui/steps/useTerminalColumns.d.ts +0 -1
- package/dist/src/lib/composition-mode.d.ts +0 -21
- package/dist/src/lib/debug-preamble.d.ts +0 -14
- package/dist/src/runs/save-conflict.d.ts +0 -8
- package/dist/src/setup/analytics-prompt.d.ts +0 -13
- package/dist/src/setup/command.d.ts +0 -9
- package/dist/src/setup/composition-mode-prompt.d.ts +0 -14
- package/dist/src/setup/debug-mode-prompt.d.ts +0 -11
- package/dist/src/setup/prompt-helpers.d.ts +0 -1
- /package/dist/{src/index.d.ts → index.d.ts} +0 -0
- /package/{dist → legacy/dist}/src/analytics/apply.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analytics/client.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analytics/constants.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analytics/exit.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analytics/index.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analytics/normalize.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analytics/os.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analytics/session.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analytics/tracker.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analytics/types.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/composite-closure.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/composition/apply-mapping.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/composition/candidate-files.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/composition/composition-cache-key.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/composition/manifest-doc-evidence.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/composition/merge-edges.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/composition/parse-map-edges.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/composition/prompt-loader.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/cycle-detection.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/cycle-view.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/fuzzy-search.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/issue-inheritance.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/lineage.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/scope-gate-cascade.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/search-neighborhood.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/command.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/parser.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/persistence.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/preview-annotations.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/LegacySelectApp.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/ComponentDetail.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/ComponentRationalePanel.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/GotoBanner.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/HighlightedLine.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/JsonEditor.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/JsonPanel.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/PreviewSummaryBar.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/QuitDialog.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/RationaleLine.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/RationalePanel.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/ScrollablePanel.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/SourcePanel.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/StatusBar.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/TokenReviewPanel.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/TopBar.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/removed-components-text.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/components/wrap-text.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/hooks/list-scroll-input.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/hooks/useKeymap.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/hooks/useSession.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/hooks/useUndo.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/tui/theme.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/select/types.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/selection-cascade.d.ts +0 -0
- /package/{dist → legacy/dist}/src/analyze/slot-graph.d.ts +0 -0
- /package/{dist → legacy/dist}/src/apply/api-client.d.ts +0 -0
- /package/{dist → legacy/dist}/src/apply/command.d.ts +0 -0
- /package/{dist → legacy/dist}/src/apply/preview-utils.d.ts +0 -0
- /package/{dist → legacy/dist}/src/apply/tokens.d.ts +0 -0
- /package/{dist → legacy/dist}/src/apply/tui/ServerApplyView.d.ts +0 -0
- /package/{dist → legacy/dist}/src/apply/tui/ServerPreviewView.d.ts +0 -0
- /package/{dist → legacy/dist}/src/generate/command.d.ts +0 -0
- /package/{dist → legacy/dist}/src/generate/tui/GenerateView.d.ts +0 -0
- /package/{dist → legacy/dist}/src/helpers/build-contentful-management-client.d.ts +0 -0
- /package/{dist → legacy/dist}/src/helpers/fetch-and-persist-existing-contentful-entities.d.ts +0 -0
- /package/{dist → legacy/dist}/src/helpers/fetch-existing-contentful-entities.d.ts +0 -0
- /package/{dist → legacy/dist}/src/helpers/find-nearly-matching-component.d.ts +0 -0
- /package/{dist → legacy/dist}/src/helpers/read-existing-contentful-entities-from-session.d.ts +0 -0
- /package/{dist → legacy/dist}/src/helpers/summarize-existing-contentful-entities.d.ts +0 -0
- /package/{dist → legacy/dist}/src/host-utils.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/command.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/cycle-auto-reject.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/path-utils.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/CustomPromptBanner.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/ai-flag.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/autocomplete.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/components/CounterStrip.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/components/LegendEntry.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/components/LivePreviewSummary.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/components/ReviewComponentPanel.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/components/ReviewDetailsEditor.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/components/ReviewDialogs.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/components/SearchMatchSummary.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/components/SpaceEnvironment.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/components/StepHeader.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/cycle-panel-scroll.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/group-collapse.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/history.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/hooks/sidebar-search-state.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/hooks/useOverlayPanel.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/hooks/useReviewEditor.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/hooks/useReviewPreview.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/hooks/useReviewSession.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/hooks/useReviewSurfaceState.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/preview-confirmation-input.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/push-progress.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/run-print-files-helpers.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/run-teaser.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/runLivePreview.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/runScopeGate.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/sidebar-help.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/sidebar-input.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/sidebar-navigation.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/sidebar-width.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/spawn-generate.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/step-filters.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/DoneStep.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/ErrorStep.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/PathValidationStep.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/PreviewValidationErrorStep.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/PushingStep.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/TokenInputStep.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/WelcomeStep.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/auto-reject-decision.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/breaking-change-format.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/enumerate-cycle-breaks.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/preview-diff.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/review-details-panel.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/steps/review-json-panel.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/useFinalizePreview.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/useLivePreview.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/wizard-422-helpers.d.ts +0 -0
- /package/{dist → legacy/dist}/src/import/tui/wizard-generate-progress.d.ts +0 -0
- /package/{dist → legacy/dist}/src/lib/agent-output.d.ts +0 -0
- /package/{dist → legacy/dist}/src/lib/cli-errors.d.ts +0 -0
- /package/{dist → legacy/dist}/src/lib/cli-path.d.ts +0 -0
- /package/{dist → legacy/dist}/src/lib/component-patch.d.ts +0 -0
- /package/{dist → legacy/dist}/src/lib/contentful-urls.d.ts +0 -0
- /package/{dist → legacy/dist}/src/lib/error-parser.d.ts +0 -0
- /package/{dist → legacy/dist}/src/lib/path-exists.d.ts +0 -0
- /package/{dist → legacy/dist}/src/lib/prompt-overrides.d.ts +0 -0
- /package/{dist → legacy/dist}/src/lib/terminal-capabilities.d.ts +0 -0
- /package/{dist → legacy/dist}/src/lib/user-agent.d.ts +0 -0
- /package/{dist → legacy/dist}/src/map-tokens/apply.d.ts +0 -0
- /package/{dist → legacy/dist}/src/map-tokens/command.d.ts +0 -0
- /package/{dist → legacy/dist}/src/map-tokens/resolve-defaults.d.ts +0 -0
- /package/{dist → legacy/dist}/src/map-tokens/tui/MapTokensView.d.ts +0 -0
- /package/{dist → legacy/dist}/src/output/format.d.ts +0 -0
- /package/{dist → legacy/dist}/src/print/command.d.ts +0 -0
- /package/{dist → legacy/dist}/src/print/validate/tui/ValidateView.d.ts +0 -0
- /package/{dist → legacy/dist}/src/print/validate/validators/cdf-validator.d.ts +0 -0
- /package/{dist → legacy/dist}/src/print/validate/validators/dtcg-validator.d.ts +0 -0
- /package/{dist → legacy/dist}/src/print/validate/validators/format-errors.d.ts +0 -0
- /package/{dist → legacy/dist}/src/print/validate/validators/read-json-file.d.ts +0 -0
- /package/{dist → legacy/dist}/src/runs/fingerprint.d.ts +0 -0
- /package/{dist → legacy/dist}/src/runs/path-prompt.d.ts +0 -0
- /package/{dist → legacy/dist}/src/runs/save-path-resolver.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/cache-keys.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/core/cdf/cdf-mappers.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/core/components/derive-component-id.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/core/components/hash-component-shape.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/core/shared/index-rows-by-key.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/core/tokens/build-dtcg-groups.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/core/tokens/build-dtcg-tokens.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/core/tokens/hash-token-content.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/migration.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/repositories/sessions/read.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/repositories/sessions/write.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/repositories/shared/with-transaction.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/repositories/steps/read.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/repositories/steps/write.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/repositories/tokens/read.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/repositories/tokens/write.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/resolve-session-id.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/services/session-resolver.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/services/tokens/apply-tool-calls.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/services/tokens/replace-raw-prop-token-paths.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/services/tokens/replace-raw-token-name-paths.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/services/tokens/store-dtcg-tokens.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/session-id.d.ts +0 -0
- /package/{dist → legacy/dist}/src/session/source-excerpt.d.ts +0 -0
- /package/{dist → legacy/dist}/src/tui/CommandCompletionView.d.ts +0 -0
- /package/{dist → legacy/dist}/src/tui/use-blinking-cursor.d.ts +0 -0
- /package/{dist → legacy/dist}/src/tui/use-timed-spinner.d.ts +0 -0
- /package/{dist → legacy/dist}/src/types.d.ts +0 -0
- /package/{prompts → legacy/prompts}/composition-edges.md +0 -0
- /package/{skills → legacy/skills}/generate-tokens.md +0 -0
- /package/{skills → legacy/skills}/map-tokens.md +0 -0
- /package/{skills → legacy/skills}/select-components.md +0 -0
package/README.md
DELETED
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
# @contentful/experience-design-system-cli
|
|
2
|
-
|
|
3
|
-
CLI for extracting, reviewing, generating, validating, and pushing Contentful Experience Design System component definitions into Experiences.
|
|
4
|
-
|
|
5
|
-
## Binaries
|
|
6
|
-
|
|
7
|
-
The package installs three equivalent binaries:
|
|
8
|
-
|
|
9
|
-
| Binary | Notes |
|
|
10
|
-
| ------------------------------- | -------------------------------------------------------------------- |
|
|
11
|
-
| `experiences` | Preferred entry point — short and operator-facing |
|
|
12
|
-
| `exo` | Shorthand for Experience Orchestration |
|
|
13
|
-
| `experience-design-system-cli` | Full name; used in CI / scripts where clarity matters |
|
|
14
|
-
|
|
15
|
-
The rest of this README uses `experiences`.
|
|
16
|
-
|
|
17
|
-
## CLI Overview
|
|
18
|
-
|
|
19
|
-
The CLI has two primary workflows:
|
|
20
|
-
|
|
21
|
-
1. **`experiences import`** — the wizard. Drives the full pipeline (extract → AI select → scope-gate → internal generation → final-review → save/push) from a single command in a full-screen interactive TUI. **This is the recommended path for almost everyone.**
|
|
22
|
-
|
|
23
|
-
2. **`experiences apply`** — applies generated component and token definitions to Contentful.
|
|
24
|
-
|
|
25
|
-
The import wizard owns extraction, selection, generation, validation, and apply orchestration internally; those implementation stages are not exposed as standalone commands.
|
|
26
|
-
|
|
27
|
-
All intermediate data flows through a local SQLite session database (`~/.contentful/experience-design-system-cli/pipeline.db`). No JSON files are written between steps — each pipeline step reads its inputs from the session and writes its outputs back to it.
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Composite components & composition
|
|
32
|
-
|
|
33
|
-
A **composite component** is one that renders other components inside it — a `Card` that slots a `Button` and an `Icon`, a `Tabs` that slots `Tab` panels. When you import composite components, the CLI can populate each slot's `$allowedComponents` so the parent→child relationships survive into Contentful.
|
|
34
|
-
|
|
35
|
-
### Atomic vs. composite
|
|
36
|
-
|
|
37
|
-
Imports are **atomic by default** — flat components, no embedded hierarchy. This is the right choice when you just want each component registered on its own. Opt into hierarchy resolution with `--composite` (or any composition flag, which implies it).
|
|
38
|
-
|
|
39
|
-
| Mode | Flag | Behavior |
|
|
40
|
-
|---|---|---|
|
|
41
|
-
| Atomic | default | Flat import; composition stripped before push |
|
|
42
|
-
| Composite | `--composite` | Resolve and import the parent→child hierarchy |
|
|
43
|
-
|
|
44
|
-
### How composition is resolved
|
|
45
|
-
|
|
46
|
-
Under `--composite`, relationships are resolved from the highest-confidence source available, in this precedence order:
|
|
47
|
-
|
|
48
|
-
1. **Typed slots (code)** — slots the source already declares, e.g. React `ReactElement<XProps>` / `children`, Svelte `Snippet<[XProps]>`, or an explicit `@allowedComponents` JSDoc tag. Fully deterministic; picked up automatically.
|
|
49
|
-
2. **Agent** — direct edge emission for codebases that encode composition in *code patterns* rather than typed slots (common in real-world design systems). It is enabled automatically in composite mode and only runs when the deterministic sources above find nothing.
|
|
50
|
-
|
|
51
|
-
When more than one source speaks to the same relationship, the higher-precedence one wins (**code slots > agent**).
|
|
52
|
-
|
|
53
|
-
### The composition agent
|
|
54
|
-
|
|
55
|
-
The composition agent emits one structured edge per relationship. The CLI validates component names and merges those edges with deterministic sources by provenance and precedence.
|
|
56
|
-
|
|
57
|
-
- `--no-cache` — ignore caches and re-resolve composition from scratch, forcing the agent to run.
|
|
58
|
-
- `--agent <name>` — which coding agent authors the parser (`claude`, `codex`, `opencode`, `cursor`, `copilot`).
|
|
59
|
-
- `--prompt composition=<file-or-text>` — override the composition stage's prompt.
|
|
60
|
-
|
|
61
|
-
Because the agent path spawns a coding agent, it adds latency and cost and is best-effort.
|
|
62
|
-
|
|
63
|
-
### Slot cycles
|
|
64
|
-
|
|
65
|
-
If the resolved graph contains a circular slot dependency (A slots B, B slots A), it is detected before push. `apply` and the wizard's push path **refuse to send a manifest with cycles**; the cycle path is reported so you can break it.
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Prerequisites
|
|
70
|
-
|
|
71
|
-
### Coding agent
|
|
72
|
-
|
|
73
|
-
The import wizard's generation steps require a coding agent CLI in your `$PATH`. Choose one:
|
|
74
|
-
|
|
75
|
-
| Agent | Install | Auth |
|
|
76
|
-
|---|---|---|
|
|
77
|
-
| **Claude Code** (`claude`) | `npm install -g @anthropic-ai/claude-code` | `claude login` (browser OAuth) **or** set `ANTHROPIC_API_KEY` |
|
|
78
|
-
| **OpenAI Codex** (`codex`) | `npm install -g @openai/codex` | Set `OPENAI_API_KEY` |
|
|
79
|
-
| **OpenCode** (`opencode`) | `npm install -g opencode-ai` | Configure via `opencode auth` (supports multiple providers) |
|
|
80
|
-
| **Cursor** (`cursor`) | Install [Cursor](https://cursor.com) | Sign in to Cursor; exposes `cursor-agent` binary |
|
|
81
|
-
| **GitHub Copilot** (`copilot`) | `npm install -g @github/copilot` | Run `copilot` once to complete GitHub OAuth login. Free plan uses Auto model selection by default. Paid plans can pin a specific model via `EDS_AGENT_MODEL_COPILOT=<model-id>` (e.g. `claude-sonnet-4.6`) |
|
|
82
|
-
|
|
83
|
-
The CLI invokes the agent non-interactively in a subprocess. If the binary is not found in `$PATH`, the command exits 1 and prints manual fallback instructions.
|
|
84
|
-
|
|
85
|
-
`experiences setup` persists your chosen agent (and optional model + custom prompt paths) to `~/.config/experiences/credentials.json`; later commands pick them up automatically.
|
|
86
|
-
|
|
87
|
-
### Contentful credentials
|
|
88
|
-
|
|
89
|
-
`apply` and `import` (when pushing) require access to a Contentful space. Set these environment variables or pass the equivalent flags:
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
export CONTENTFUL_MANAGEMENT_TOKEN=<your-cma-token> # required
|
|
93
|
-
export CONTENTFUL_SPACE_ID=<your-space-id> # required
|
|
94
|
-
export CONTENTFUL_ENVIRONMENT_ID=master # required
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Or run `experiences setup` once and they get saved to `credentials.json` and pre-filled in the wizard.
|
|
98
|
-
|
|
99
|
-
In the wizard's credentials step you can press `[s] Skip` to save-only without pushing — useful when you want a checked-in `components.json` without a live push.
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## The `import` wizard
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
experiences import [flags]
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
`experiences import` is the primary entry point and launches a full-screen wizard in a supported interactive terminal.
|
|
110
|
-
|
|
111
|
-
### Wizard step machine
|
|
112
|
-
|
|
113
|
-
```
|
|
114
|
-
welcome
|
|
115
|
-
↓
|
|
116
|
-
extracting — runs analyze extract (atomic by default; resolves composition
|
|
117
|
-
under --composite, see below); spawns internal generation in parallel (prefetch)
|
|
118
|
-
↓
|
|
119
|
-
[auto-filter] — analyze select-agent runs automatically
|
|
120
|
-
↓
|
|
121
|
-
scope-gate — single human review gate: confirm AI selection, toggle components
|
|
122
|
-
↓
|
|
123
|
-
credentials — operator reviews the prefilled space-id / env / token (internal generation is already running)
|
|
124
|
-
press [s] Skip to save-only without pushing
|
|
125
|
-
↓
|
|
126
|
-
final-review — minimum-viable port of the JsonEditor; edit names, $description,
|
|
127
|
-
$default, $allowedComponents per slot, $values, source/rationale panels
|
|
128
|
-
↓
|
|
129
|
-
preview — diff vs. live Contentful
|
|
130
|
-
↓
|
|
131
|
-
push-decision-gate — choose Save AND push (default) or one of the alternatives
|
|
132
|
-
↓
|
|
133
|
-
pushing → done — push emits a Contentful webapp view URL for the imported components
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
There is now a single human review gate (`scope-gate`) before generation; the legacy two-step extract-review + select-review flow has been collapsed.
|
|
137
|
-
|
|
138
|
-
### Configurable AI auto-filter
|
|
139
|
-
|
|
140
|
-
The auto-filter (`analyze select-agent` invoked before scope-gate) is on by default; the value selected in setup is persisted to `credentials.json` so subsequent runs default to your saved preference.
|
|
141
|
-
|
|
142
|
-
### Save-and-push default
|
|
143
|
-
|
|
144
|
-
The push-decision-gate defaults to **save AND push**: it writes `components.json` and `tokens.json` to disk *and* pushes to Contentful in one step.
|
|
145
|
-
|
|
146
|
-
### Custom skill prompts
|
|
147
|
-
|
|
148
|
-
Custom `.md` skill prompt paths can be saved via `experiences setup`; the CLI emits a banner at agent invocation when an override is active.
|
|
149
|
-
|
|
150
|
-
### Flag reference — `experiences import`
|
|
151
|
-
|
|
152
|
-
| Flag | Default | Description |
|
|
153
|
-
| --------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
154
|
-
| `--project <path>` | `.` | Project root to analyze |
|
|
155
|
-
| `--agent <name>` | saved by setup / `claude` | Agent for `analyze select-agent` and internal generation |
|
|
156
|
-
| `--model <name>` | agent default | Model name |
|
|
157
|
-
| `--composite` | — | Import the embedded-component hierarchy (any composition flag implies this) |
|
|
158
|
-
| `--composition-map <path>` | — | Consume a hand-authored parent→children interchange map (implies `--composite`) |
|
|
159
|
-
| `--prompt <stage=value>` | — | Override a stage prompt (repeatable); value is a file path or literal text, e.g. `--prompt composition=./p.md` |
|
|
160
|
-
| `--skip-map-tokens` | — | Skip the `map tokens` step between internal generation and apply |
|
|
161
|
-
| `--no-cache` | cache on | Bypass extract/select/internal-generation/map-tokens/composition caches and force re-run |
|
|
162
|
-
|
|
163
|
-
### `--model` and `--agent` overrides
|
|
164
|
-
|
|
165
|
-
`--model <name>` overrides the stored model for this run. The resolution order is:
|
|
166
|
-
|
|
167
|
-
1. `--model <name>` flag
|
|
168
|
-
2. `model` field saved in `~/.config/experiences/credentials.json`
|
|
169
|
-
3. Built-in default for the chosen agent
|
|
170
|
-
|
|
171
|
-
`--agent <name>` works the same way and is a fully functional wizard override — earlier releases plumbed the flag but the commander default shadowed it; the flag now wins over the saved value as expected.
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
### `print components` / `print tokens` / `print validate`
|
|
176
|
-
|
|
177
|
-
Unchanged from prior releases.
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
experiences print components [--session <id>] [--out <path>]
|
|
181
|
-
experiences print tokens [--session <id>] [--out <path>]
|
|
182
|
-
experiences print validate [--components <path>] [--tokens <path>]
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
`print validate` exits `0` on success, `1` on validation errors.
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
### `apply`
|
|
190
|
-
|
|
191
|
-
This command is the non-wizard route to the same diff and push logic. Its flag surface is unchanged.
|
|
192
|
-
|
|
193
|
-
`apply` emits a Contentful webapp view URL for the imported components in its JSON summary (`viewUrl`) so callers can deep-link into the management UI after a successful push.
|
|
194
|
-
|
|
195
|
-
```bash
|
|
196
|
-
experiences apply
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
Shared flags: `--components`, `--tokens`. `apply` is interactive and loads credentials from `experiences setup` or environment variables. Remote ComponentTypes and DesignTokens missing from the pushed manifest are always skipped.
|
|
200
|
-
|
|
201
|
-
Design tokens are written first (component types may reference token kinds). Each entity write is recorded in the session database atomically — interrupted pushes resume from where they left off.
|
|
202
|
-
|
|
203
|
-
---
|
|
204
|
-
|
|
205
|
-
## Session Database
|
|
206
|
-
|
|
207
|
-
All pipeline state is stored in `~/.contentful/experience-design-system-cli/pipeline.db` (SQLite). The path can be overridden with the `EDS_PIPELINE_DB_PATH` environment variable. The push-resumption database is at `~/.contentful/experience-design-system-cli/import.db` (override with `EDS_IMPORT_DB_PATH`).
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
## Terminal Compatibility
|
|
212
|
-
|
|
213
|
-
- Minimum 60 columns required for the wizard and the `analyze select` TUI
|
|
214
|
-
- 80+ columns recommended for full sidebar + detail view
|
|
215
|
-
- 120+ columns required to show the source code panel in `analyze select`
|
|
216
|
-
- `NO_COLOR=1` suppresses all ANSI color output
|
|
217
|
-
- Interactive views require both stdin and stdout to be TTYs and stdin to support raw mode.
|
|
218
|
-
- On Windows, use Windows Terminal with PowerShell. Older ConEmu and cmd.exe hosts may not provide the raw-mode support the interactive UI needs.
|
|
219
|
-
- `experiences import` does not provide a non-interactive execution mode.
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
## Usage data
|
|
224
|
-
|
|
225
|
-
The CLI collects **anonymous usage data** to help us understand which commands are used and where the import workflow succeeds or fails. This data does **not** include your source code, file paths, credentials, prompts, or any content you author.
|
|
226
|
-
|
|
227
|
-
What may be included:
|
|
228
|
-
|
|
229
|
-
- Command name and duration
|
|
230
|
-
- CLI, Node.js, and operating-system version
|
|
231
|
-
- Anonymous session identifiers that link steps within a single import run
|
|
232
|
-
- Structural counts (for example, how many components were extracted or accepted)
|
|
233
|
-
- Space and environment IDs you pass on the command line
|
|
234
|
-
- Contentful request IDs from API responses (to correlate failures with server logs)
|
|
235
|
-
|
|
236
|
-
You can turn this off two ways:
|
|
237
|
-
|
|
238
|
-
- Persistently: run `experiences setup` and answer "yes" at the analytics prompt. This writes an opt-out to `~/.config/experiences/credentials.json` that persists across invocations until you change it again — it will not silently re-enable itself.
|
|
239
|
-
- Per invocation:
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
DISABLE_ANALYTICS=1 experiences import --project ./my-app
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
Setting `DISABLE_ANALYTICS` to any value disables collection for that invocation. This is additive with the persisted opt-out — it can only disable, never re-enable, collection that setup has turned off.
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## Development
|
|
250
|
-
|
|
251
|
-
```bash
|
|
252
|
-
# Install dependencies from repo root
|
|
253
|
-
pnpm install
|
|
254
|
-
|
|
255
|
-
# Build
|
|
256
|
-
pnpm -F @contentful/experience-design-system-cli build
|
|
257
|
-
|
|
258
|
-
# Run tests
|
|
259
|
-
pnpm -F @contentful/experience-design-system-cli test
|
|
260
|
-
|
|
261
|
-
# Typecheck
|
|
262
|
-
pnpm -F @contentful/experience-design-system-cli typecheck
|
|
263
|
-
```
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The CLI-owned composition interchange format (spec T1).
|
|
3
|
-
*
|
|
4
|
-
* Two views of the same data:
|
|
5
|
-
* - `InterchangeMap` — the human-authored / on-disk `{ version, groups }`
|
|
6
|
-
* shape (parent → children), consumed by the composition-map option.
|
|
7
|
-
* `--composition-map` consumes and the resolver can emit.
|
|
8
|
-
* - `CompositionEdge[]` — the flat internal runtime view, one edge per
|
|
9
|
-
* parent→child relationship, carrying optional `slot` (T7), `confidence`,
|
|
10
|
-
* and `provenance`. Easier to merge/dedupe across sources (T2).
|
|
11
|
-
*
|
|
12
|
-
* This module owns both shapes and the converters between them.
|
|
13
|
-
*/
|
|
14
|
-
export type EdgeProvenance = 'user' | 'typed-slot' | 'structural' | 'manifest' | 'doc' | `adapter:${string}` | 'agent';
|
|
15
|
-
export type CompositionEdge = {
|
|
16
|
-
parent: string;
|
|
17
|
-
child: string;
|
|
18
|
-
/** Optional named slot (T7). Default slot when omitted. */
|
|
19
|
-
slot?: string;
|
|
20
|
-
/** 1–5 scale, same as select/reject agent tools. */
|
|
21
|
-
confidence?: number;
|
|
22
|
-
provenance: EdgeProvenance;
|
|
23
|
-
};
|
|
24
|
-
export type InterchangeMap = {
|
|
25
|
-
version: 1;
|
|
26
|
-
groups: Record<string, string[]>;
|
|
27
|
-
};
|
|
28
|
-
export type ValidateResult = {
|
|
29
|
-
valid: true;
|
|
30
|
-
map: InterchangeMap;
|
|
31
|
-
} | {
|
|
32
|
-
valid: false;
|
|
33
|
-
errors: string[];
|
|
34
|
-
};
|
|
35
|
-
export declare function validateInterchangeMap(input: unknown): ValidateResult;
|
|
36
|
-
export declare function groupsToEdges(map: InterchangeMap, provenance: EdgeProvenance): CompositionEdge[];
|
|
37
|
-
export declare function edgesToGroups(edges: CompositionEdge[]): InterchangeMap;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { type InterchangeMap } from './interchange-schema.js';
|
|
2
|
-
export type CompositionCliOptions = {
|
|
3
|
-
/** `--composition-map <path>` — hand-authored interchange file. */
|
|
4
|
-
compositionMap?: string;
|
|
5
|
-
/** `--composition-refresh` — force edge emission to run even over resolved residue. */
|
|
6
|
-
compositionRefresh?: boolean;
|
|
7
|
-
};
|
|
8
|
-
export type LoadUserMapResult = {
|
|
9
|
-
ok: true;
|
|
10
|
-
map: InterchangeMap;
|
|
11
|
-
} | {
|
|
12
|
-
ok: false;
|
|
13
|
-
error: string;
|
|
14
|
-
};
|
|
15
|
-
export declare function loadUserMap(path: string): Promise<LoadUserMapResult>;
|
|
16
|
-
export type ResolvedCompositionSources = {
|
|
17
|
-
forceAgent: boolean;
|
|
18
|
-
};
|
|
19
|
-
export declare function resolveCompositionSources(opts: CompositionCliOptions): ResolvedCompositionSources;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { LineageEntry, LineageJumpable } from '../../../../import/tui/hooks/useLineage.js';
|
|
3
|
-
export interface LineagePanelProps {
|
|
4
|
-
focusedComponentKey: string;
|
|
5
|
-
entries: LineageEntry[];
|
|
6
|
-
/** Index into the jumpables list — NOT into entries. */
|
|
7
|
-
cursor: number;
|
|
8
|
-
jumpables: LineageJumpable[];
|
|
9
|
-
/** Max entry rows rendered at once. Larger lineages window around the cursor. */
|
|
10
|
-
maxRows?: number;
|
|
11
|
-
/** Constrain the panel box to a fixed column width (e.g. the sidebar slot). */
|
|
12
|
-
width?: number;
|
|
13
|
-
}
|
|
14
|
-
export declare function LineagePanel({ focusedComponentKey, entries, cursor, jumpables, maxRows, width, }: LineagePanelProps): React.ReactElement;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { type CompositionMode } from './lib/composition-mode.js';
|
|
2
|
-
export type ExperiencesCredentials = {
|
|
3
|
-
spaceId: string;
|
|
4
|
-
environmentId: string;
|
|
5
|
-
cmaToken: string;
|
|
6
|
-
host?: string;
|
|
7
|
-
agent?: string;
|
|
8
|
-
agentModel?: string;
|
|
9
|
-
/** Feature 8: persisted custom prompt path for `generate components`. */
|
|
10
|
-
generatePromptPath?: string;
|
|
11
|
-
/** Feature: default debug-mode (writes JSONL trace of every decision) for all commands. */
|
|
12
|
-
debug?: boolean;
|
|
13
|
-
/** Persisted opt-out for anonymous CLI usage analytics, set via `experiences setup`. */
|
|
14
|
-
analyticsDisabled?: boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Feature (atomic mode): default composition mode. `atomic` (default) imports
|
|
17
|
-
* flat components with no embedded-component hierarchy; `composite` opts into
|
|
18
|
-
* the slot-graph machinery. Resolved `flag > env > this > default`.
|
|
19
|
-
*/
|
|
20
|
-
compositionMode?: CompositionMode;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Read persisted Contentful credentials.
|
|
24
|
-
*
|
|
25
|
-
* Precedence (INTEG-4410): what the operator saved on disk via
|
|
26
|
-
* `experiences setup` or the wizard's credentials step wins over ambient
|
|
27
|
-
* `CONTENTFUL_*` / `EDS_HOST` env vars. Env vars are still consulted as a
|
|
28
|
-
* fallback when the field on disk is missing or empty — this preserves
|
|
29
|
-
* back-compat for CI / scripts that only export env and never call setup.
|
|
30
|
-
*
|
|
31
|
-
* The pre-INTEG-4410 order (env-first) silently shadowed saved values, so
|
|
32
|
-
* operators who saved a different space via setup kept seeing the env one
|
|
33
|
-
* pre-filled in the wizard. The saved value now wins; the env fallback only
|
|
34
|
-
* fires when the on-disk field is empty.
|
|
35
|
-
*/
|
|
36
|
-
export declare function readExperiencesCredentials(): Promise<ExperiencesCredentials>;
|
|
37
|
-
export declare function writeExperiencesCredentials(creds: ExperiencesCredentials): Promise<void>;
|
|
38
|
-
export declare function experiencesCredentialsPath(): string;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { CDFComponentEntry } from '@contentful/experience-design-system-types';
|
|
2
|
-
/**
|
|
3
|
-
* Atomic-mode normalization (spec T8, option a): keep every slot's structure
|
|
4
|
-
* but drop its `$allowedComponents` composition constraint. Applied over the
|
|
5
|
-
* loaded component array regardless of source (`--session` or `--components`),
|
|
6
|
-
* so the atomic bypass cannot leak a live composition link into the pushed
|
|
7
|
-
* CDF document. Starving `$allowedComponents` at this single point also makes
|
|
8
|
-
* slot-cycle detection structurally return zero (see T12).
|
|
9
|
-
*
|
|
10
|
-
* Returns a new array with cloned entries; inputs are not mutated.
|
|
11
|
-
*/
|
|
12
|
-
export declare function stripAllowedComponents(components: Array<{
|
|
13
|
-
key: string;
|
|
14
|
-
entry: CDFComponentEntry;
|
|
15
|
-
}>): Array<{
|
|
16
|
-
key: string;
|
|
17
|
-
entry: CDFComponentEntry;
|
|
18
|
-
}>;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { CompositionMode } from '../../lib/composition-mode.js';
|
|
3
|
-
import type { ReviewStepProps } from './review-step-props.js';
|
|
4
|
-
export type FinalReviewHostProps = Omit<ReviewStepProps, 'extractSessionId'> & {
|
|
5
|
-
extractSessionId: string | null;
|
|
6
|
-
compositionMode?: CompositionMode;
|
|
7
|
-
};
|
|
8
|
-
export declare function FinalReviewHost({ extractSessionId, tokenSessionId, compositionMode, onFinalize, onQuit, livePreview, spaceId, environmentId, cmaToken, host, tokensPath, initialFinalizeError, }: FinalReviewHostProps): React.ReactElement;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { type ComponentGraphNode } from '../../../analyze/composite-closure.js';
|
|
2
|
-
export type LineageEntry = {
|
|
3
|
-
kind: 'section';
|
|
4
|
-
label: string;
|
|
5
|
-
} | {
|
|
6
|
-
kind: 'ancestor';
|
|
7
|
-
label: string;
|
|
8
|
-
jumpTarget: string;
|
|
9
|
-
} | {
|
|
10
|
-
kind: 'descendant';
|
|
11
|
-
label: string;
|
|
12
|
-
jumpTarget: string;
|
|
13
|
-
} | {
|
|
14
|
-
kind: 'empty';
|
|
15
|
-
label: string;
|
|
16
|
-
};
|
|
17
|
-
export interface LineageJumpable {
|
|
18
|
-
/** Original index into the `entries` array — callers highlight the source row. */
|
|
19
|
-
i: number;
|
|
20
|
-
entry: LineageEntry;
|
|
21
|
-
}
|
|
22
|
-
export interface UseLineageResult {
|
|
23
|
-
entries: LineageEntry[];
|
|
24
|
-
/**
|
|
25
|
-
* Jumpable entries — those the operator can Tab/Enter to. Excludes
|
|
26
|
-
* `section` / `empty` rows. Order matches `entries` minus the non-jumpable
|
|
27
|
-
* rows; each item carries the original `entries` index so callers can
|
|
28
|
-
* highlight the source row.
|
|
29
|
-
*/
|
|
30
|
-
jumpables: LineageJumpable[];
|
|
31
|
-
}
|
|
32
|
-
export declare function useLineage(focusedKey: string | null, graph: ComponentGraphNode[]): UseLineageResult;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { LineageJumpable } from './hooks/useLineage.js';
|
|
2
|
-
type LineageInputKey = {
|
|
3
|
-
upArrow: boolean;
|
|
4
|
-
downArrow: boolean;
|
|
5
|
-
tab: boolean;
|
|
6
|
-
return: boolean;
|
|
7
|
-
};
|
|
8
|
-
export declare function handleLineageNavigation({ input, key, cursor, jumpables, onCursorChange, onJump, onClose, allowTab, }: {
|
|
9
|
-
input: string;
|
|
10
|
-
key: LineageInputKey;
|
|
11
|
-
cursor: number;
|
|
12
|
-
jumpables: LineageJumpable[];
|
|
13
|
-
onCursorChange: (update: number | ((current: number) => number)) => void;
|
|
14
|
-
onJump: (name: string) => void;
|
|
15
|
-
onClose: () => void;
|
|
16
|
-
allowTab: boolean;
|
|
17
|
-
}): boolean;
|
|
18
|
-
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { PushDecisionChoice } from './steps/PushDecisionGateStep.js';
|
|
2
|
-
export type GateAction = 'save-and-push' | 'push-only' | 'save-only';
|
|
3
|
-
/**
|
|
4
|
-
* Maps a `PushDecisionGateStep` choice to the wizard action it triggers.
|
|
5
|
-
* Centralizing this keeps the gate component free of wizard-side semantics
|
|
6
|
-
* and gives us a unit-testable seam between UI choice and side-effect.
|
|
7
|
-
*/
|
|
8
|
-
export declare function chooseGateAction(choice: PushDecisionChoice): GateAction;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export type ReviewStepProps = {
|
|
2
|
-
extractSessionId: string;
|
|
3
|
-
tokenSessionId?: string | null;
|
|
4
|
-
onFinalize: (accepted: number, rejected: number, unresolved: number) => void;
|
|
5
|
-
onQuit: () => void;
|
|
6
|
-
livePreview?: boolean;
|
|
7
|
-
spaceId?: string;
|
|
8
|
-
environmentId?: string;
|
|
9
|
-
cmaToken?: string;
|
|
10
|
-
host?: string;
|
|
11
|
-
tokensPath?: string;
|
|
12
|
-
initialFinalizeError?: string | null;
|
|
13
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { ScopeComponent } from './steps/ScopeGateStep.js';
|
|
3
|
-
import type { CompositionMode } from '../../lib/composition-mode.js';
|
|
4
|
-
export type { ScopeComponent };
|
|
5
|
-
export type ScopeGateHostProps = {
|
|
6
|
-
components: ReadonlyArray<ScopeComponent>;
|
|
7
|
-
compositionMode?: CompositionMode;
|
|
8
|
-
onConfirm: (decisions: {
|
|
9
|
-
accepted: string[];
|
|
10
|
-
rejected: string[];
|
|
11
|
-
}) => void;
|
|
12
|
-
onQuit: () => void;
|
|
13
|
-
/** Retained for fixture compatibility; filtering is no longer performed here. */
|
|
14
|
-
aiFilterStatus?: string;
|
|
15
|
-
aiFilterProgress?: {
|
|
16
|
-
done: number;
|
|
17
|
-
total: number;
|
|
18
|
-
} | null;
|
|
19
|
-
aiFilterError?: string | null;
|
|
20
|
-
};
|
|
21
|
-
export declare function ScopeGateHost({ components, compositionMode, onConfirm, onQuit, }: ScopeGateHostProps): React.ReactElement;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
type GenerateReviewStepProps = {
|
|
3
|
-
extractSessionId: string;
|
|
4
|
-
tokenSessionId?: string | null;
|
|
5
|
-
onFinalize: (accepted: number, rejected: number, unresolved: number) => void;
|
|
6
|
-
onQuit: () => void;
|
|
7
|
-
/**
|
|
8
|
-
* Feature 2 (live preview after every save). When `true` (default), the
|
|
9
|
-
* wizard re-runs `previewImport` after each successful FieldEditor Ctrl+S
|
|
10
|
-
* (debounced 500ms) and refreshes the sidebar's previewAnnotation badges.
|
|
11
|
-
* Live preview is enabled for the wizard flow.
|
|
12
|
-
*/
|
|
13
|
-
livePreview?: boolean;
|
|
14
|
-
spaceId?: string;
|
|
15
|
-
environmentId?: string;
|
|
16
|
-
cmaToken?: string;
|
|
17
|
-
host?: string;
|
|
18
|
-
tokensPath?: string;
|
|
19
|
-
/**
|
|
20
|
-
* INTEG-4411 refined: initial value for the inline `finalizeError` banner.
|
|
21
|
-
* The wizard sets this when it routes back to `final-review` after the
|
|
22
|
-
* preview API returned an empty diff (pure no-op push). Cleared on the
|
|
23
|
-
* next `a` / `A` keystroke.
|
|
24
|
-
*/
|
|
25
|
-
initialFinalizeError?: string | null;
|
|
26
|
-
};
|
|
27
|
-
export declare function AtomicGenerateReviewStep({ extractSessionId, tokenSessionId, onFinalize, onQuit, livePreview, spaceId, environmentId, cmaToken, host, tokensPath, initialFinalizeError, }: GenerateReviewStepProps): React.ReactElement;
|
|
28
|
-
export {};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type PushDecisionChoice = 'both' | 'push-only' | 'save-only';
|
|
3
|
-
type PushDecisionGateStepProps = {
|
|
4
|
-
summary: string;
|
|
5
|
-
context: string;
|
|
6
|
-
fileList: string;
|
|
7
|
-
onChoice: (choice: PushDecisionChoice) => void;
|
|
8
|
-
onQuit: () => void;
|
|
9
|
-
pushDisabled?: boolean;
|
|
10
|
-
};
|
|
11
|
-
export declare function PushDecisionGateStep({ summary, context, onChoice, onQuit, pushDisabled, }: PushDecisionGateStepProps): React.ReactElement;
|
|
12
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
type RunningStepProps = {
|
|
3
|
-
stepNumber: number;
|
|
4
|
-
totalSteps: number;
|
|
5
|
-
title: string;
|
|
6
|
-
description: string;
|
|
7
|
-
detail?: string;
|
|
8
|
-
/** Optional second progress line (own spinner) — e.g. composition resolution
|
|
9
|
-
* running after the file scan on the extracting screen. */
|
|
10
|
-
secondaryDetail?: string;
|
|
11
|
-
};
|
|
12
|
-
export declare function RunningStep({ stepNumber, totalSteps, title, description, detail, secondaryDetail, }: RunningStepProps): React.ReactElement;
|
|
13
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function useTerminalColumns(): number;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export declare const COMPOSITION_MODES: readonly ["composite", "atomic"];
|
|
2
|
-
export type CompositionMode = (typeof COMPOSITION_MODES)[number];
|
|
3
|
-
export declare function isCompositionMode(value: string): value is CompositionMode;
|
|
4
|
-
/**
|
|
5
|
-
* Options that, when present, IMPLY composite mode — passing any of them is a
|
|
6
|
-
* clear opt-in, so requiring an explicit `--composite` alongside is redundant.
|
|
7
|
-
*/
|
|
8
|
-
export type CompositionSourceOptions = {
|
|
9
|
-
compositionRefresh?: boolean;
|
|
10
|
-
compositionMap?: string;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Resolve the effective composition mode with precedence
|
|
14
|
-
* `explicit flag > implied source > env > persisted config > default`.
|
|
15
|
-
* Default is `atomic` (composition OFF); opting into composite mode enables
|
|
16
|
-
* the hierarchy machinery. Passing a composition source implies composite.
|
|
17
|
-
*/
|
|
18
|
-
export declare function resolveCompositionMode(opts: {
|
|
19
|
-
composite?: boolean;
|
|
20
|
-
atomic?: boolean;
|
|
21
|
-
} & CompositionSourceOptions, configMode?: CompositionMode): CompositionMode;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { type DebugLogger } from './debug-logger.js';
|
|
2
|
-
/**
|
|
3
|
-
* Preamble every top-level command action should call before doing work.
|
|
4
|
-
*
|
|
5
|
-
* Resolves the effective debug decision (flag > env > persisted config),
|
|
6
|
-
* initializes the singleton, and prints the bright-green start banner.
|
|
7
|
-
* Registers a process-exit handler that prints the end banner once.
|
|
8
|
-
*
|
|
9
|
-
* Returns the logger so the caller can emit events without a second import.
|
|
10
|
-
* When debug is disabled, the returned logger is a no-op.
|
|
11
|
-
*/
|
|
12
|
-
export declare function beginCommand(command: string, opts: {
|
|
13
|
-
debug?: boolean;
|
|
14
|
-
}): Promise<DebugLogger>;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type SaveConflictGateProps = {
|
|
3
|
-
path: string;
|
|
4
|
-
onOverwrite: () => void;
|
|
5
|
-
onNew: () => void;
|
|
6
|
-
onCancel: () => void;
|
|
7
|
-
};
|
|
8
|
-
export declare function SaveConflictGate({ path, onOverwrite, onNew, onCancel }: SaveConflictGateProps): React.ReactElement;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Ask the operator whether to persist an opt-out of anonymous usage analytics.
|
|
3
|
-
*
|
|
4
|
-
* The helper is injectable so it can be unit-tested without a TTY. The caller
|
|
5
|
-
* provides an `ask` function that yields one line of input per call.
|
|
6
|
-
*
|
|
7
|
-
* Behavior:
|
|
8
|
-
* - Empty input returns `current` if defined, else `false` (default: enabled).
|
|
9
|
-
* - Input starting with 'y' or 'Y' returns `true` (disabled).
|
|
10
|
-
* - Input starting with 'n' or 'N' returns `false` (enabled).
|
|
11
|
-
* - Any other input falls back to the same rule as empty input.
|
|
12
|
-
*/
|
|
13
|
-
export declare function promptAnalyticsPreference(ask: (q: string) => Promise<string>, current?: boolean): Promise<boolean>;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { Command } from 'commander';
|
|
2
|
-
export declare function promptCodexModel(ask?: (q: string) => Promise<string>): Promise<string | undefined>;
|
|
3
|
-
/**
|
|
4
|
-
* Prompt the operator for a custom skill prompt path. Returns the resolved
|
|
5
|
-
* trimmed value, or `undefined` to leave the current value unchanged, or `null`
|
|
6
|
-
* to clear it. `ask` is injectable so tests can stub stdin.
|
|
7
|
-
*/
|
|
8
|
-
export declare function promptCustomSkillPath(current: string | undefined, ask?: (q: string) => Promise<string>): Promise<string | undefined | null>;
|
|
9
|
-
export declare function registerSetupCommand(program: Command): void;
|