API reference
Cockpit client (features) API
One folder per Cockpit feature: domain, services, workflows, hooks, components, pages.
677 modules, 2184 documented exports. Version v0.8. All packages.
ui/client/features/auth
- GithubMarkGitHub's own mark (Octicons "mark-github", MIT), used inside GitHub's standard "Sign in with GitHub" button. Exports: GithubMark
- LoginBackdropPresentation-only: the full-screen slideshow behind the login card. Exports: LoginBackdrop
- LoginScreenExports: LoginScreen
- UserMenuExports: UserMenu
- AuthGateControllerExports: AuthGateController
- UserMenuControllerExports: UserMenuController
- SessionExports: blocksCockpit, canSignIn, showsAccount
- TypewriterThe login screen's changing tagline (owner request 2026-09-20): a typing effect that cycles through a few short, casual one-liners (not dramatic). Exports: TypewriterPhase, TypewriterState, DELETING_MS, GAP_MS, HOLD_MS, initialTypewriter, LOGIN_PHRASES, TYPING_MS, ...
- UserLabelExports: displayName, initial
- useAuthSessionExports: AuthSessionProvider, useAuthSession
- useTypewriterExports: useTypewriter
- useUserMenuExports: useUserMenu
- AuthGatePageExports: AuthGatePage
- UserMenuPageExports: UserMenuPage
- AuthApiExports: fetchSession, logout
- AuthLoginExports: startGithubLogin, testLogin
- typesExports: AuthId, AuthSession, AuthUser
- AuthSessionExports: AuthSessionAction, AuthSessionState, initialAuthSessionState, authSessionReducer
ui/client/features
- authExports: AuthGateController, AuthId, AuthSession, AuthSessionProvider, AuthUser, blocksCockpit, canSignIn, displayName, ...
- cloneExports: branchProblem, buildJobView, buildRecentRows, CloneAction, CloneController, CloneFormReading, CloneFormState, CloneId, ...
- command-paletteExports: Command, CommandGroup, CommandPaletteController, CommandRegistryProvider, PaletteViewProps, RegistryApi, RegistryContext, ShortcutLike, ...
- component-docsExports: ComponentDescription, ComponentEntry, ComponentsController, DescribeResponse, DocView, EditAction, EditPhase, EditState, ...
- dashboardExports: CommandResult, CreateInput, DashboardController, DashboardId, ImportInput, RefactorInput, ResearchInput, StageAction, ...
- design-reviewExports: isReviewOverlayEnabled, ReviewOverlayController
- dev-serverExports: BranchIndicator, BranchKind, buildDevServerView, describeBranch, DevServerAction, DevServerCard, DevServerCommand, DevServerController, ...
- diagnosticsExports: DiagnosticRow, DiagnosticsAction, DiagnosticsApi, DiagnosticsController, DiagnosticsState, DiagnosticsStatus, DiagnosticsViewModel, DiagnosticsViewProps, ...
- directory-browserExports: BrowseFailure, DirBadge, DirCrumb, DirectoryBrowserController, DirectoryBrowserId, DirectoryPicker, DirectoryPickerProps, DirEntryView, ...
- feature-catalogExports: FeatureFile, FeatureIndexResponse, FeatureLayerView, FeatureListState, FeatureRow, FeaturesScreenController, FeatureSummaryResponse, FeatureView, ...
- flow-browserExports: BrowserView, BrowserViewSwitch, FlowBrowserAction, FlowBrowserController, FlowBrowserState, FlowBrowserView, FlowController, FlowData, ...
- git-sessionExports: AutoCommitSettingsController, AutoCommitView, buildAutoCommitView, buildGitSessionView, canCommitNow, CommitConfig, CommitImpact, CommitIndicatorController, ...
- helpExports: HelpController, HelpData, HelpId, HelpViewState, TopicSection, useHelp
- list-browserExports: countText, filterItems, isSelectKey, ListBrowser, ListBrowserProps, ListItem, listNextIndex, ListStatus, ...
- ollamaExports: fetchOllamaModels, fetchOllamaStatus, OllamaController, OllamaModel, OllamaModelId, OllamaStatus, PullProgress, useOllama
- pages-editorExports: CodeSegment, describeSummary, DiagnosticSeverity, DiagnosticSource, diagnosticsToMarkers, DiagnosticSummary, DiffHunk, DiffRow, ...
- planExports: ApiResult, ArgView, CatalogueProps, Constraints, ConstraintsProps, ConstraintsView, ErrorView, Executor, ...
- processesExports: ArtifactRow, ControlEvent, ControlVerb, DecideResult, DecisionNote, DetailView, DiffLine, DiffResult, ...
- project-gateExports: OpenProjectResult, ProjectGateController, ProjectGateId, ProjectStatus, useProjectGate
- reviewExports: Analysis, AnalysisDone, Badge, BlastEvidence, BlastRadiusProps, BlastRow, BlastView, BranchList, ...
- settingsExports: LlmCapability, LlmProviders, SaveStatus, Settings, SettingsController, SettingsId, useSettings
- shellExports: ActivityBarProps, GateTopBarProps, ModelStatus, NarrowPane, NarrowProps, NarrowTabBarProps, PaneId, PaneLimit, ...
- statesExports: describeError, EmptyState, EmptyStateProps, ErrorDescription, ErrorState, ErrorStateProps, LoadingState, LoadingStateProps, ...
- testsExports: CloneDialog, CloneDialogView, CloneResult, CodeView, Comparison, ComparisonView, CoverageRow, DiffRow, ...
- wizardExports: ChatMessageData, ChatRole, ClientWizardEvent, ServerWizardEvent, useWizard, WizardController, WizardId, WizardStatus
- workflowsExports: DiffHunk, diffSourceLines, InlineSegment, NarrativeFinding, NarrativeMachine, NarrativeMachineView, NarrativeScenario, NarrativeState, ...
ui/client/features/clone
- CloneFormExports: CloneForm
- CloneJobListExports: CloneJobList
- ConnectRemoteFormExports: ConnectRemoteForm
- RecentClonesExports: RecentClones
- CloneControllerExports: CloneController
- CloneJobsControllerExports: CloneJobsController
- ConnectRemoteControllerExports: ConnectRemoteController
- CloneFieldHintsPure (DOMAIN-001): plain-words hints for the optional fields of the clone form. Exports: branchProblem, folderNameProblem, tokenProblem
- CloneFormViewPure (DOMAIN-001): what the clone form shows for the text typed so far, and the rows of the recent list. Exports: CloneFormReading, buildRecentRows, readCloneForm
- CloneInputPure (DOMAIN-001): read whatever a person pastes into the one "repository" field. Exports: CloneInput, CloneInputSource, describeSource, normalizeCloneInput
- CloneJobViewPure (DOMAIN-001): a clone job as the screen shows it. Exports: buildJobView, isLiveJob
- CloneProgressPure (DOMAIN-001): the numbers in a clone's progress, in words a person reads at a glance. Exports: formatBytes, percentOf
- CloneUrlPure (DOMAIN-001): how an address typed into the clone form is read — the folder name it will get and a plain hint when it does not look right. Exports: suggestFolderName, urlProblem
- useCloneExports: useClone
- useCloneJobsExports: useCloneJobs
- useRecentClonesExports: useRecentClones
- useRemoteExports: useRemote
- ClonePageExports: CloneJobsPage, ClonePage, ConnectRemotePage
- RecentClonesPageExports: RecentClonesPage
- CloneReadApiExports: listClones, readClone
- CloneRecentStoreExports: forgetClone, readRecentClones, rememberClone
- CloneStartApiExports: cancelClone, pullClone, startClone
- RemoteApiExports: connectRemote, readRemote
- typesExports: CloneId, CloneJob, CloneJobView, ClonePreview, CloneReadResult, CloneStartInput, CloneStartResult, CloneState, ...
- CloneExports: CloneAction, CloneFormState, initialCloneState, cloneReducer
- RecentExports: RecentAction, RecentState, initialRecentState, recentReducer
- RemoteWorkflows own application state/flow but never import React (WORKFLOW-001): a plain reducer. Exports: RemoteAction, RemoteFormState, initialRemoteState, remoteReducer
ui/client/features/command-palette
- CommandPaletteExports: CommandPalette
- CommandPaletteControllerExports: CommandPaletteController
- CommandGroupsPure (DOMAIN-001): grouping commands under headings for display. Exports: flatten, groupCommands
- CommandRegistryPure (DOMAIN-001): the command registry. Exports: addCommands, removeCommands
- CommandSearchPure (DOMAIN-001): fuzzy filtering of commands by a typed query. Exports: filterCommands, scoreCommand
- PaletteKeysPure (DOMAIN-001): keyboard rules of the palette. Exports: isPaletteShortcut, moveActive
- useCommandPaletteExports: useCommandPalette
- useCommandRegistryExports: RegistryApi, RegistryContext, CommandRegistryProvider, useCommandRegistry
- useOpenPaletteExports: useOpenPalette
- usePaletteLifecycleExports: usePaletteLifecycle
- useRegisterCommandsExports: useRegisterCommands
- CommandPalettePageExports: CommandPalettePage
- PaletteBrowserExports: rememberFocus, subscribePaletteShortcut
- typesA thing the palette can run. Exports: Command, CommandGroup, PaletteViewProps, ShortcutLike
- PaletteStatePure (WORKFLOW-001): the palette's query and highlighted row. Exports: PaletteAction, PaletteState, initialPalette, paletteReducer
ui/client/features/component-docs
- ComponentDocPanelExports: ComponentDocPanel
- ComponentSourcePanelExports: ComponentSourcePanel
- PropsTableExports: PropsTable
- ComponentsControllerExports: ComponentsController
- ComponentListPure (DOMAIN-001): what the Components screen lists and what it says about one component. Exports: docReason, docView, findComponent, toListItems
- useComponentDocExports: useComponentDoc
- useComponentEditorExports: useComponentEditor
- useComponentListExports: useComponentList
- ComponentsPageExports: ComponentsPage
- ComponentsApiExports: commitComponentSave, getComponentDescription, getComponents, getComponentSource, previewComponentSave
- typesExports: ComponentDescription, ComponentEntry, DescribeResponse, DocView, EditAction, EditPhase, EditState, ListState, ...
- ComponentEditPure (WORKFLOW-001): the plain-file edit flow of the Components screen. Exports: initialEditState, editReducer, isDirty
ui/client/features/dashboard
- CreateFormExports: CreateForm
- ImportFormExports: ImportForm
- LayerCheckboxesExports: LayerCheckboxes
- RefactorFormExports: RefactorForm
- ResearchFormExports: ResearchForm
- StageActionsExports: StageActions
- DashboardControllerExports: DashboardController
- StageActionsControllerExports: StageActionsController
- DashboardPure — no external effects (DOMAIN-001). Exports: LAYERS, toggleLayer
- StageActionsPure (DOMAIN-001): the actions the Features stage offers, one per command form of the retired Dashboard (owner decision 2026-09-20: the Dashboard is gone, Create / Refactor / Import become stage actions). Exports: STAGE_ACTIONS, nextOpenAction
- useDashboardExports: useDashboard
- DashboardPageExports: DashboardPage
- CreateCommandExports: createCommand
- ImportCommandExports: importCommand
- RefactorCommandExports: refactorCommand
- ResearchCommandExports: researchCommand
- typesExports: CommandResult, CreateInput, DashboardId, ImportInput, RefactorInput, ResearchInput, StageAction, StageActionId
- CreateFormVisibilityPure (WORKFLOW-001) — which fields the Create form should show, given its current "kind". Exports: createFormVisibility
- ImportFormVisibilityPure (WORKFLOW-001) — which fields the Import form should show, given its current mode. Exports: importFormVisibility
- RefactorFormVisibilityPure (WORKFLOW-001) — which fields the Refactor form should show, given its current action. Exports: refactorFormVisibility
- ResearchFormVisibilityPure (WORKFLOW-001) — which fields the Research form should show, given its current action. Exports: researchFormVisibility
ui/client/features/design-review
- ReviewOverlayControllerExports: ReviewOverlayController
- ReviewOverlayFlagdev-only design-review overlay (threadmark-react): on only when this flag is the exact string "1". Exports: isReviewOverlayEnabled
- ReviewOverlayLoaderloads threadmark-react only when NEXT_PUBLIC_REVIEW_OVERLAY=1 is set at build time. Exports: loadReviewOverlay
- ReviewOverlayLoader.stubbuild-time stand-in for ReviewOverlayLoader.ts, used ONLY when NEXT_PUBLIC_REVIEW_OVERLAY is not "1" at build time (see next.config.ts's webpack `resolve.alias`). Exports: loadReviewOverlay
- reviewOverlayStubbuild-time stand-in for threadmark-react, used ONLY when NEXT_PUBLIC_REVIEW_OVERLAY is not "1" at build time (see next.config.ts's webpack `resolve.alias`).
ui/client/features/dev-server
- BranchProvenanceExports: BranchProvenance
- DevServerActionsExports: DevServerActions
- DevServerCardExports: DevServerCard
- DevServerConfirmExports: DevServerConfirm
- DevServerControllerExports: DevServerController
- DevServerViewPure (DOMAIN-001): one status in, one finished view out. Exports: buildDevServerView, describeBranch, projectName
- useDevServerExports: useDevServer
- useDevServerStatusExports: useDevServerStatus
- useDevServerUrlExports: useDevServerUrl
- DevServerPageExports: DevServerPage
- DevServerAck"Starting a dev server runs your project's code, so you see the exact command once." Remembered per project AND per command text: when package.json's script changes, the question comes back. Exports: hasSeenCommand, rememberCommand
- DevServerActionsDriving the target app's dev server. Exports: restartDevServer, startDevServer, stopDevServer
- DevServerApiReading the target app's dev server status. Exports: fetchDevServer
- typesShapes ui/server's `/api/dev-server` returns (see ui/server/src/devServer.mjs), plus the finished view the domain layer builds from them. Exports: BranchIndicator, BranchKind, DevServerCard, DevServerCommand, DevServerFailure, DevServerHandlers, DevServerRefusal, DevServerState, ...
- DevServerThe dev-server card's own state machine: what has been read, whether a click is in flight, and whether the one-time "this is what will run" question is open. Exports: DevServerAction, DevServerSession, initialDevServerSession, devServerReducer
ui/client/features/diagnostics
- DiagnosticsListExports: DiagnosticsList
- LogsListExports: LogsList
- DiagnosticsControllerExports: DiagnosticsController
- LogsControllerExports: LogsController
- DiagnosticsSummaryPure (DOMAIN-001): the short texts and counts derived from a validate run. Exports: headline, statusText, statusTextChars, statusTexts, tabBadge
- DiagnosticsViewPure (DOMAIN-001): the run state turned into exactly what the Diagnostics tab renders. Exports: buildDiagnosticsView, severityLabel
- LogEntriesPure (DOMAIN-001): merging polled log entries into the list the tab shows. Exports: lastId, mergeEntries
- LogViewPure (DOMAIN-001): log entries in display form. Exports: buildLogRows, clockTime
- ViolationsPure (DOMAIN-001): reading `construct validate` violations. Exports: pageTarget, severityCounts, sortViolations
- useDiagnosticsExports: useDiagnostics
- useLogsExports: useLogs
- DiagnosticsPageExports: DiagnosticsPage
- LogsPageExports: LogsPage
- DiagnosticsApiExports: ValidateResult, fetchValidation
- LogsApiExports: fetchLogs
- typesExports: DiagnosticRow, DiagnosticsAction, DiagnosticsApi, DiagnosticsState, DiagnosticsStatus, DiagnosticsViewModel, DiagnosticsViewProps, LogEntry, ...
- DiagnosticsPure (WORKFLOW-001): the state machine of one validate run. Exports: initialDiagnostics, diagnosticsReducer
ui/client/features/directory-browser
- DirectoryPickerExports: DirectoryPicker
- DirectoryBrowserControllerExports: DirectoryBrowserController
- CrumbsPure (DOMAIN-001): the workspace-relative breadcrumb the folder picker shows. Exports: Crumb, crumbsFor
- DirectoryListingExports: badgesFor, toEntryView, toListingView
- DirectoryPagingExports: appendPage
- useDirectoryBrowserExports: useDirectoryBrowser
- useDirectoryLoaderExports: useDirectoryLoader
- useWorkspaceFolderExports: WorkspaceFolder, useWorkspaceFolder
- DirectoryBrowserPageExports: DirectoryBrowserPage
- DirectoryBrowserExports: browseDirectory
- typesExports: BrowseFailure, DirBadge, DirCrumb, DirectoryBrowserId, DirectoryPickerProps, DirEntryView, DirListingView, RawDirEntry, ...
- DirectoryBrowserExports: DirectoryBrowserAction, DirectoryBrowserState, initialDirectoryBrowserState, directoryBrowserReducer
ui/client/features/feature-catalog
- FeatureDetailsExports: FeatureDetails
- FeaturesScreenControllerExports: FeaturesScreenController
- FeatureViewPure (DOMAIN-001): the Features screen's rows and the details of one feature, made from what `construct summarize` already answers. Exports: buildFeatureView, fileHref, findFeature, toListItems
- useFeatureListExports: useFeatureList
- useFeatureSummaryExports: useFeatureSummary
- FeaturesApiExports: getFeatureIndex, getFeatureSummary
- typesShapes of what the Features screen reads: the feature index (GET /api/features) and one feature's summary (GET /api/features/:name/summary, the same JSON as `construct summarize feature:<name>`). Exports: FeatureFile, FeatureIndexResponse, FeatureLayerView, FeatureListState, FeatureRow, FeatureSummaryResponse, FeatureView, SummaryFile, ...
ui/client/features/flow-browser
- BrowserViewSwitchExports: BrowserViewSwitch
- FlowNotesExports: FlowNotes
- FlowRowItemExports: FlowRowItem
- FlowTreeExports: FlowTree
- FlowBrowserControllerExports: FlowBrowserController
- BrowserViewChoiceExports: browserViewKey, sanitizeBrowserView
- FlowHintsExports: hintFor
- FlowRelationsExports: relationsFor
- FlowRowsExports: fileLabel, flowRows, visibleRows
- useBrowserViewExports: useBrowserView
- useFlowBrowserExports: useFlowBrowser
- FlowBrowserPageExports: FlowBrowserPage
- BrowserViewStorageExports: loadBrowserView, saveBrowserView
- FlowApiExports: fetchFlow, fetchProjectKey
- typesShapes for the Browser pane's Flow view. Exports: BrowserView, FlowBrowserAction, FlowBrowserState, FlowBrowserView, FlowController, FlowData, FlowHint, FlowHover, ...
- FlowBrowserPure (WORKFLOW-001): what the Flow view knows (load state, the selected row, collapsed rows) and how each event changes it. Exports: initialFlowBrowser, flowBrowserReducer
ui/client/features/git-session
- AutoCommitSettingsExports: AutoCommitSettings
- CommitIndicatorExports: CommitIndicator
- DirtyTreePromptExports: DirtyTreePrompt
- AutoCommitSettingsControllerExports: AutoCommitSettingsController
- CommitIndicatorControllerExports: CommitIndicatorController
- CommitImpactTextThe counted impact a commit claims, as text. Exports: describeImpact, describePerFeature
- CommitWordingHow commit-on-save talks about itself: mode names, windows, and what each mode will actually do. Exports: MODE_LABELS, describeMode, formatWindow
- GitSessionViewOne status object in, two finished view models out. Exports: WINDOW_CHOICES, buildAutoCommitView, buildGitSessionView
- SaveStateWhat the commit indicator says, and when the Commit button is offered. Exports: canCommitNow, describeDirtyGroups, describeSaveState
- useGitSessionExports: POLL_MS, useGitSession
- GitSessionPageExports: GitSessionPage
- GitSessionActionsThe two things a user can actively ask commit-on-save to do: answer the dirty-tree question, and commit what is pending without waiting for the window. Exports: answerDirtyTree, commitNow
- GitSessionApiReading and configuring the commit-on-save session. Exports: fetchGitSession, saveCommitConfig
- typesShapes ui/server's `/api/git/*` routes return (see ui/server/src/autoCommit.mjs), plus the finished view models the domain layer builds from them. Exports: AutoCommitView, CommitConfig, CommitImpact, CommitMode, CommitRecord, DirtyAnswer, DirtyPrompt, GitSession, ...
- GitSessionThe commit-on-save session's own small state machine: loading, busy, and the last error. Exports: GitSessionAction, GitSessionState, initialGitSessionState, gitSessionReducer
ui/client/features/help
- AttributionExports: Attribution
- CliReferenceExports: CliReference
- CliTopicExports: CliTopic
- GettingStartedStatic content — no props, no data dependency. Exports: GettingStarted
- HelpTocExports: HelpToc
- ListingDetailsTutorialStatic content — no props, no data dependency. Exports: ListingDetailsTutorial
- RouteImportTutorialStatic content — no props, no data dependency. Exports: RouteImportTutorial
- SetupSettingsTutorialStatic content — no props, no data dependency. Exports: SetupSettingsTutorial
- UiGuideExports: UiGuide
- HelpControllerExports: HelpController
- HelpExports: buildTopicSections
- HelpTopicsPure (DOMAIN-001): the Help screen's top-level topics, shared by the in-page contents nav and the Browser-pane contents tab so they never drift. Exports: HelpTopic, HELP_TOPICS
- useHelpExports: useHelp
- HelpPageExports: HelpPage
- HelpExports: fetchHelp
- typesExports: HelpData, HelpId, HelpViewState, TopicSection
- HelpExports: loadedHelpView
ui/client/features/list-browser
- ListBrowserExports: ListBrowser
- ListFilterPure (DOMAIN-001): the filter box of a Browser-pane list. Exports: countText, filterItems
- ListNavPure (DOMAIN-001): keyboard model of a Browser-pane list (an ARIA listbox with one tab stop). Exports: isSelectKey, listNextIndex, tabStopIndex
- QuerySelectionPure (DOMAIN-001): a selection kept in the URL query (`?feature=billing`), so a reload or a shared link opens the same thing. Exports: readSelection, validSelection, withSelection
- useListKeysExports: useListKeys
- useUrlSelectionExports: useUrlSelection
- typesExports: ListBrowserProps, ListItem, ListStatus
ui/client/features/ollama
- InstallGuidanceExports: InstallGuidance
- ModelListExports: ModelList
- ModelPickerExports: ModelPicker
- OllamaStatusPanelExports: OllamaStatusPanel
- PullFormExports: PullForm
- OllamaControllerExports: OllamaController
- OllamaPure (DOMAIN-001: no external effects anywhere in this file, even in a comment — no React import either) — byte-size and pull-progress formatting for the Ollama status/model-list screens. Exports: formatBytes, pullPercent
- OllamaPlatformPure (DOMAIN-001) — split out of Ollama.tsx to stay under the per-file primary-export threshold. Exports: Platform, detectPlatform, installCommandFor
- QwenModelsPure (DOMAIN-001) — the vetted list of real Qwen2.5-Coder tags from Ollama's own model library (https://ollama.com/library/qwen2.5-coder), verified live on 2026-09-18 rather than guessed: sizes 0.5b/1.5b/3b/7b/14b/32b... Exports: QwenTag, QWEN_CODER_TAGS, recommendedQwenTag
- useOllamaExports: useOllama
- OllamaPageExports: OllamaPage
- OllamaExports: fetchOllamaModels, fetchOllamaStatus
- OllamaModelOpsExports: pullOllamaModel, removeOllamaModel
- OllamaModelSelectionThis feature's chosen "active" local model, persisted per-browser via localStorage — a per-viewer convenience, not shared state, so it lives here rather than round-tripping to ui/server. Exports: loadSelectedModel, saveSelectedModel
- typesExports: OllamaModel, OllamaModelId, OllamaStatus, PullProgress
- OllamaExports: OllamaAction, OllamaState, initialOllamaState, ollamaReducer
ui/client/features/pages-editor
- AutoMapPanelExports: AutoMapPanel
- DiffHunkListExports: DiffHunkList
- DiffTabExports: DiffTab
- DiffViewExports: DiffView
- ExternalChangeNoticeExports: ExternalChangeNotice
- FlowFilePeekExports: FlowFilePeek
- HighlightedSnippetEditorExports: HighlightedSnippetEditor
- InspectorPanelExports: InspectorPanel
- JsxFlowNodeExports: JsxNodeType, WILDCARD_RECEIVED_HANDLE, JsxFlowNode
- LinkedCodeExports: LinkedCode
- LivePreviewEmptyExports: LivePreviewEmpty
- LivePreviewNotesExports: PLUGIN_LINE, LivePreviewNotes
- LivePreviewPanelExports: LivePreviewPanel
- LivePreviewToolbarExports: LivePreviewToolbar
- MonacoSourceEditorExports: MonacoSourceEditor
- NavigatorPanelExports: NavigatorPanel
- PagesBrowserExports: PagesBrowser
- PagesBrowserTabExports: PagesBrowserTab
- PalettePanelExports: PalettePanel
- PreviewPanelExports: PreviewPanel
- PropFlowDiagramExports: PropFlowDiagram
- PropRowExports: PropRow
- ReferenceTrailExports: ReferenceTrail
- SaveStatusExports: SaveStatus
- ScopeLinkGraphExports: ScopeLinkGraph
- ScopePanelExports: ScopePanel
- ScopeTabExports: ScopeTab
- SnippetDiffPreviewExports: SnippetDiffPreview
- SnippetEditorExports: SnippetEditor
- SnippetFlowCanvasExports: SnippetFlowCanvas
- SourceEditorExports: SourceEditor
- SourcePanelExports: SourcePanel
- TextareaSourceEditorExports: TextareaSourceEditor
- TreePanelExports: TreePanel
- WrapPreviewExports: WrapPreview
- FlowFilePeekControllerExports: FlowFilePeekController
- PagesBrowserControllerExports: PagesBrowserController
- PagesEditorControllerExports: PagesEditorController
- AllPagesPure (DOMAIN-001): the rows of the Pages screen's list of all pages. Exports: PageRef, allPageItems, pageOfItem
- CodeLinksExports: linkSegments, unlinkedReferences
- CxSrcPure (DOMAIN-001) — the `data-cx-src="file:line:col"` value written by the core annotator. Exports: CxSrc, isOpenPage, parseCxSrc
- LivePreviewViewPure (DOMAIN-001): what the live preview panel is handed to draw. Exports: LivePreviewView, PreviewPlugin, PreviewReach
- OpenPagePure (DOMAIN-001): a request to open one page file in the Pages editor (e.g. Exports: OpenPageTarget, OPEN_PAGE_EVENT, openPageQuery, parseOpenPage, withOpenPage
- PreviewFrameStylePure (DOMAIN-001): how a chosen preview size becomes a box, and how the frame's real measured size reads. Exports: previewFrameStyle, previewSizeReadout
- PreviewSelectionPure (DOMAIN-001, no runtime imports) — maps a click in the live preview (a `data-cx-src="file:line:col"` value written by the core annotator) onto a node of the parsed page tree. Exports: PreviewSelectResult, findNodeAtPosition, resolvePreviewSelection
- PreviewSizePure (DOMAIN-001): the device sizes the live preview can be shown at. Exports: PreviewSizeId, PreviewSizeOption, PREVIEW_SIZES, previewSizeOption, sanitizePreviewSize
- PreviewUrlPure (DOMAIN-001) Only http(s) URLs may be framed; returns the normalised URL or null. Exports: isLocalPreviewUrl, normalizePreviewUrl
- PropFlowGeometryExports: GeometryOptions, MeasureText, NodeLayout, PillPosition, layoutPillHierarchy, namedProps
- PropFlowLayoutExports: PillEdge, buildPillFlow, colorFor, layoutPillHierarchy, NodeLayout, PillPosition
- PropFlowRenameExports: RenameUnionFind, RenameLink, buildRenameUnionFind, findRenameLinks
- PropFormattingExports: propInputKind, propLabel
- ScopeBindingPure (DOMAIN-001) — the type-fit rule for the Scope tab's click-to-bind flow. Exports: normalizeTypeText, typeFits
- ScopeLinkViewPure (DOMAIN-001) — maps the server's scope/binding graph (core `buildScopeLinks`, #223) to a view model: a left column of the page's in-scope declarations, a right column of the selected element's props, colour-coded... Exports: buildScopeView, scopeColor
- SnippetDiffExports: diffSnippetLines
- SnippetFlowGraphExports: FlowPill, SnippetFlowEdge, SnippetFlowNode, SnippetFlowNodeData, OUTGOING_HANDLE_PREFIX, RECEIVED_HANDLE_PREFIX, buildSnippetFlowGraph
- SnippetHighlightingExports: highlightJsxSnippet
- SourceMarkersPure (DOMAIN-001) — turns the server's diagnostics into the editor-neutral markers a SourceEditor renders, and summarizes them for the panel header. Exports: describeSummary, diagnosticsToMarkers, summarizeDiagnostics
- TrailAvailabilityExports: canBack, canForward
- TrailFoldExports: MAX_VISIBLE_STEPS, foldTrail
- TrailHistoryExports: emptyTrail, fileTitle, startTrail
- TrailMovesExports: goBack, goForward, goTo
- TrailStepsExports: currentStep, pushStep, refreshRoot
- TreeNodesExports: findNode, flattenParentOf
- useAllPagesExports: useAllPages
- useAutoMapExports: useAutoMap
- useFullScreenPreviewExports: useFullScreenPreview
- useLinkedCodeExports: LinkHover, useLinkedCode
- useLivePreviewExports: useLivePreview
- useOpenPageRequestsExports: useOpenPageRequests
- usePageChangeExports: usePageChange
- usePagesEditorExports: usePagesEditor
- usePagesEditorTabsExports: usePagesEditorTabs
- usePageSourceExports: usePageSource
- usePaletteExports: usePalette
- usePaletteInsertExports: usePaletteInsert
- usePaletteWrapExports: usePaletteWrap
- usePreviewMeasureExports: usePreviewMeasure
- usePreviewServerUrlExports: usePreviewServerUrl
- usePreviewSignalsExports: PLUGIN_WAIT_MS, usePreviewSignals
- usePreviewSizeExports: usePreviewSize
- usePropFlowExports: usePropFlow
- usePropRowExports: usePropRow
- useReferenceTrailExports: RootLoader, useReferenceTrail
- useScopeBindExports: useScopeBind
- useScopeLinksExports: useScopeLinks
- useSnippetEditorExports: useSnippetEditor
- useSnippetFlowExports: InteractiveFlowNode, InteractiveNodeData, NodeToolbarActions, useSnippetFlow, SnippetFlowNodeData
- useTrailShortcutsExports: useTrailShortcuts
- PagesEditorPageExports: PagesEditorPage
- AutoMapApiExports: applyAutoMap, getUnmappedProps
- OpenPageRequestExports: requestOpenPage, subscribeOpenPage
- OpenPageUrlExports: writeOpenPageUrl
- PageChangesApiExports: dismissPageChange, getPageChange
- PagesBrowsingExports: getAllPages, getFeatures, getPages, getPageTree
- PageSourceApiExports: PageSourceResult, getPageSource
- PaletteApiExports: confirmWrap, getPalette, getWrapSuggestion, insertPaletteEntry
- PreviewReachabilityIs anything answering at the preview address? Exports: probePreview
- PreviewSizeStorageExports: loadPreviewSize, savePreviewSize
- PreviewSourceThe preview transport behind a small interface, so the iframe + postMessage implementation can be swapped (e.g. Exports: PreviewSource, PreviewSignal, createIframePreviewSource
- ProjectKeyExports: fetchPreviewProjectKey
- PropsApiExports: getNodeProps, saveNodeProp
- ReferenceNavApiExports: getNavFile, getNavPage, openNavReference
- ScopeLinksApiExports: getScopeLinks
- SnippetApiExports: getNodeSnippet, saveNodeSnippet
- SnippetFlowApiExports: parseSnippetTree, rewireSnippetWire
- SnippetStructureApiExports: addSnippetChild, moveSnippetNode, removeSnippetNode
- typesWhat the live preview panel is handed to draw, and what it knows about the preview address. Exports: CodeSegment, DiagnosticSeverity, DiagnosticSource, DiagnosticSummary, DiffHunk, DiffRow, NavReference, NavRelation, ...
- PagesEditorExports: PagesEditorAction, PagesEditorState, initialPagesEditorState, pagesEditorReducer
- ReferenceNavigationExports: ReferenceNavigationAction, ReferenceNavigationState, initialReferenceNavigation, referenceNavigationReducer
ui/client/features/plan
- CatalogueBarExports: CatalogueBar
- ConstraintsListExports: ConstraintsList
- ImpactPaneExports: ImpactPane
- ImpactTableExports: ImpactTable
- PlanPaneExports: PlanPane
- ProposalListExports: ProposalList
- ProvenanceBadgeExports: ProvenanceBadge
- RunBarExports: RunBar
- StepArgsExports: StepArgs
- StepCardExports: StepCard
- TicketFieldsExports: TicketFields
- TicketPaneExports: TicketPane
- UnitPickerExports: UnitPicker
- PlanControllerExports: PlanController
- CommandTextPure (DOMAIN-001): the exact command a step will run, as one line a person can read and copy. Exports: commandLine, quoteWord
- ConstraintsViewPure (DOMAIN-001): what the ticket pane shows about the constraints and the proposals, already as sentences. Exports: constraintsView, proposalView
- ExecutorLabelsPure (DOMAIN-001): the three tags of the design (docs/design/cockpit-layout.md section 4), in one place. Exports: EXECUTORS, executorLabel
- ImpactTextPure (DOMAIN-001): the sentences of the impact pane. Exports: headline, seedNote, whyText
- ImpactViewPure (DOMAIN-001): the impact report as the strings and rows the pane shows. Exports: buildImpactView
- PlanDocumentPure (DOMAIN-001): the plan document sent to the server, and how an argument shows in its box. Exports: argText, buildPlan
- PlanPaneViewPure (DOMAIN-001): the plan pane's props from the screen state. Exports: buildPlanPane
- PlanTypesPlan mode: server shapes (ui/server /api/plan) and the screen state. Exports: ApiResult, Constraints, FlowArg, FlowInfo, ImpactFeature, ImpactFile, ImpactReason, ImpactReport, ...
- RunBarViewPure (DOMAIN-001): the Run bar: where a model will be used, and why Run is off. Exports: blockedReason, modelNotice, runBar
- StepEditPure (DOMAIN-001): edit one step: its tag, an argument, its title. Exports: retagStep, setStepArg, setStepTitle
- StepErrorsPure (DOMAIN-001): which step each named validator error belongs to, so it can be shown next to that step in plain words. Exports: errorLead, errorViews, splitErrors
- StepIdsPure (DOMAIN-001): step ids. Exports: nextStepId
- StepListPure (DOMAIN-001): add, remove and reorder steps. Exports: moveStep, newStep, removeStep
- StepTouchesPure (DOMAIN-001): what a step will touch, worked out from its own arguments. Exports: deriveTouches
- StepViewPure (DOMAIN-001): one step as everything its card shows, already worked out: the tags, the argument boxes, the exact command line, what it touches, and its errors in plain words. Exports: buildStepView
- StepViewInputExports: StepViewInput
- SuggestedStepsPure (DOMAIN-001): read-only steps an impact report suggests. Exports: suggestedSteps
- TicketPaneViewPure (DOMAIN-001): the ticket pane's props from the screen state. Exports: buildTicketPane
- usePlanContextExports: usePlanContext
- usePlanRunExports: usePlanRun
- usePlanScreenExports: usePlanScreen
- usePlanValidationExports: usePlanValidation
- useSeedActionsExports: useSeedActions
- useStepActionsExports: useStepActions
- PlanPageExports: PlanPageProps, PlanPage
- PlanShellTabsExports: planShellTabs
- ContextApiReading the project's constraints, features and flow catalogue from ui/server's /api/plan/context. Exports: fetchContext
- PlanCheckApiThe plan: the server's verdict after every edit (/api/plan/validate) and Run (/api/plan/run). Exports: runPlanOnServer, validatePlanOnServer
- SeedsApiTicket text to units to impact: /api/plan/propose (a text match, no model) and /api/plan/impact. Exports: analyseImpact, proposeSeeds
- typesPlan mode: the shapes every layer shares. Exports: ArgView, CatalogueProps, ConstraintsProps, ConstraintsView, ErrorView, Executor, ImpactPaneProps, ImpactRow, ...
- PlanMachinePure (WORKFLOW-001): what the Plan screen knows, and how each event changes it. Exports: initialScreen, screenReducer
ui/client/features/processes
- ArtifactReviewExports: ArtifactReview
- ProcessArtifactsExports: ProcessArtifacts
- ProcessListExports: ProcessList
- ProcessLogExports: ProcessLog
- ProcessStepsExports: ProcessSteps
- ProcessesControllerExports: ProcessesController
- ControlButtonsPure (DOMAIN-001): the buttons a process shows, derived from the machine's own `controls`. Exports: controlButtons
- DetailViewPure (DOMAIN-001): one process in display form. Exports: artifactRow, buildDetailView
- DiffLinesPure (DOMAIN-001): a unified diff split into lines tagged for colouring. Exports: diffLines
- ListRowsPure (DOMAIN-001): the process list in display form. Exports: buildListRows, pendingNote
- ProcessClockPure (DOMAIN-001): a timestamp as the log shows it. Exports: clock
- ProcessCountsPure (DOMAIN-001): the numbers the top-bar pill and the list show. Exports: progressPercent, progressText, runningCount
- ProvenanceLabelsPure (DOMAIN-001): what each log badge means, as the hover text on the badge. Exports: PROVENANCE_MEANING
- ReviewTypesShapes of the approval gate's review; re-exported from types.ts. Exports: DecideResult, DecisionNote, DiffLine, GateRefusal, GateVerdict, Review, ReviewArtifact, ReviewRow, ...
- ReviewViewPure (DOMAIN-001): the approval gate's review in display form. Exports: buildReviewView, reviewRow, verdictText
- StateLabelsPure (DOMAIN-001): the words for a whole process's state. Exports: STATE_LABEL
- StepLabelsPure (DOMAIN-001): the words for a step, and for who does it. Exports: STEP_STATUS_LABEL, executorLabel
- ValidationTextPure (DOMAIN-001): the check that runs after an approval, in plain words. Exports: validationText
- useProcessesExports: useProcesses
- useProcessesLiveExports: useProcessesLive
- useReviewExports: useReview
- ProcessesPageExports: ProcessesPage
- ProcessActionsApiExports: ControlResult, fetchDiff, sendControl
- ProcessesApiExports: fetchProcess, fetchProcesses
- ProcessesSocketExports: connectProcessesSocket
- ReviewApiExports: fetchReview, sendDecision
- typesShapes of ui/server's /api/processes (see processesService.mjs). Exports: ArtifactRow, ControlEvent, ControlVerb, DetailView, DiffResult, ListRow, LogRow, ProcessArtifact, ...
- ProcessesPure (WORKFLOW-001): what the Processes drawer knows, and how each event changes it. Exports: initialProcesses, processesReducer, summariesOf
ui/client/features/project-gate
- NoProjectScreenExports: NoProjectScreen
- ProjectGateScreenExports: ProjectGateScreen
- ProjectGateControllerExports: ProjectGateController
- ProjectGateExports: isValidProject
- useProjectGateExports: useProjectGate
- ProjectGatePageExports: ProjectGatePage
- ProjectGateExports: fetchProjectStatus, initProject, openProject
- typesExports: OpenProjectResult, ProjectGateId, ProjectStatus
- ProjectGateExports: ProjectGateAction, ProjectGateState, initialProjectGateState, projectGateReducer
ui/client/features/review
- BadgeLegendExports: BadgeLegend
- BlastRadiusExports: BlastRadius
- BranchListExports: BranchList
- ChangeTreeExports: ChangeTree
- FailureNoticeExports: FailureNotice
- FindingDetailExports: FindingDetail
- FindingsPanelExports: FindingsPanel
- FindingsSummaryExports: FindingsSummary
- HealthBadgeExports: HealthBadge
- IndicatorCardsExports: IndicatorCards
- PlanPickerExports: PlanPicker
- ReviewSourcesExports: ReviewSources
- UnitSummariesExports: UnitSummaries
- ReviewChangeControllerExports: ReviewChangeController
- ReviewControllerExports: ReviewController
- ReviewListControllerExports: ReviewListController
- AnalysisStartPure (DOMAIN-001): when does the screen ask for an analysis, and when does it keep waiting for one. Exports: headsToStart, isLive, shouldStart
- BadgeGlossaryPure (DOMAIN-001): the Tools pane of the list, "What the badges mean". Exports: GLOSSARY
- BadgesPure (DOMAIN-001): turn a finished analysis into the badges the list shows. Exports: badgesOf, pendingText
- BlastViewPure (DOMAIN-001): the declared-vs-actual scope of a change. Exports: buildBlastView
- DegradedNoticePure (DOMAIN-001): the engine's `degraded` banner. Exports: degradedNotice
- FailureViewPure (DOMAIN-001): what a failure says and what to do next. Exports: describeFailure
- FeatureGroupingPure (DOMAIN-001): the product of the Review screen. Exports: OUTSIDE_LABEL, groupByFeature, toLayers
- FindingsTypesFindings, blast radius and failure view models and their component props. Exports: BlastRadiusProps, BlastRow, BlastView, FailureAction, FailureNoticeProps, FailureView, FindingDetailProps, FindingDetailView, ...
- FindingsViewPure (DOMAIN-001): the two kinds of finding, kept apart. Exports: buildFindingDetail, buildFindingsView
- IndicatorViewPure (DOMAIN-001): how an indicator reads on its card. Exports: buildIndicatorCard, buildIndicatorCards, changeHeadline
- LayerGroupingPure (DOMAIN-001): the same changed files the other way round: one group per layer, in reading order. Exports: groupByLayer
- LayerOrderPure (DOMAIN-001): the order layers read in, from the core of a feature outward to where it is wired up. Exports: UNCLASSIFIED_LAYER, layerLabel, layerRank
- RankingPure (DOMAIN-001): the order of the list, and the sentence that explains it (the ordering rule is visible, not a hidden score). Exports: orderExplanation, rankBranches, riskScore
- TreeFilesPure (DOMAIN-001): a changed file as the tree shows it (name and status already in words, so the components stay presentation-only). Exports: fileName, flatFiles, toTreeFile
- TreeNavPure (DOMAIN-001): the changed-units tree as data, and the keyboard model over it. Exports: VisibleRow, flattenVisible, navigate, tabStop
- TreeNodesPure (DOMAIN-001): the changed-units tree as data. Exports: buildTreeNodes, findFileNode, findNode
- TreeTypesTypes of the changed-units tree: its nodes, what a key does, and the keyboard state a controller hands the component. Exports: ChangeTreeProps, TreeAction, TreeGrouping, TreeNavProps, TreeNodeView
- UnitRowsPure (DOMAIN-001): the stage's "what each changed unit now does" rows. Exports: buildUnitsView, trimLead
- WorkflowTypesState-machine shapes for the Review screens (list and one change). Exports: ChangeAction, ChangeViewState, ListAction, ListState
- useAnalysisCancelExports: useAnalysisCancel
- useFailureActionsExports: useFailureActions
- useReviewChangeExports: useReviewChange
- useReviewListExports: useReviewList
- useReviewPlansExports: useReviewPlans
- useReviewRouteExports: useReviewRoute
- useTreeNavigationExports: useTreeNavigation
- ReviewChangePageExports: ReviewChangePageProps, ReviewChangePage
- ReviewListPageExports: ReviewListPageProps, ReviewListPage
- ReviewShellTabsExports: ChangeTabsInput, changeShellTabs, listShellTabs
- AnalysisApiStarting and cancelling an analysis (ui/server's POST /api/review/analyze and /cancel). Exports: cancelAnalysis, requestAnalysis
- PlansApiThe saved plans a change can be compared with: read-only, from ui/server's /api/review/plans. Exports: fetchPlans
- ReviewApiReading ui/server's /api/review (read-only). Exports: ApiFailure, fetchBranches, fetchChange
- typesShapes of ui/server's /api/review (reviewApi.mjs) and of the PR-health report it carries (schemas/pr-health.v1.json, src/engine/prHealth.mjs). Exports: Analysis, AnalysisDone, Badge, BlastEvidence, BranchList, BranchListProps, BranchRow, BranchRowView, ...
- ChangeMachinePure (WORKFLOW-001): what the Review screen knows about the ONE change being reviewed, and how each event changes it: waiting while the analysis runs, ready when it is done, failed with the engine's message. Exports: initialChange, changeReducer
- ListMachinePure (WORKFLOW-001): what the Review branch list knows, and how each event changes it. Exports: initialList, listIsSettling, listReducer
ui/client/features/settings
- SettingsFormExports: SettingsForm
- SettingsSummaryExports: SettingsSummary
- SettingsControllerExports: SettingsController
- SettingsPure (DOMAIN-001) — the one derived label the page shows for "no project resolved yet", pulled out instead of an inline ternary in the page/component. Exports: resolvedRootLabel
- useSettingsExports: useSettings
- SettingsPageExports: SettingsPage
- SettingsExports: fetchSettings, saveSettings
- typesExports: LlmCapability, LlmProviders, SaveStatus, Settings, SettingsId
- SettingsExports: SettingsAction, SettingsState, initialSettingsState, settingsReducer
ui/client/features/shell
- ActivityBarExports: ActivityBar
- EmptyPanelA designed empty state (principles #9): says what is missing and what will appear. Exports: EmptyPanel
- GateTopBarExports: GateTopBar
- NarrowTabBarExports: NarrowTabBar
- PaneResizerExports: PaneResizer
- ProfileMenuItemsExports: ProfileMenuItems
- ProjectInfoPanelExports: ProjectInfoPanel
- ProjectSwitcherExports: ProjectSwitcher
- ShellLayoutExports: ShellLayout
- StatusBarExports: StatusBar
- TabHostExports: TabHost
- TopBarExports: TopBar
- ShellControllerExports: ShellController
- ShellFrameExports: ShellFrame
- ContrastPure (DOMAIN-001): WCAG 2.x relative-luminance contrast, used to guard the design tokens. Exports: Rgb, contrastRatio, parseColor
- LayoutDefaultsPure (DOMAIN-001): default pane sizes and their limits. Exports: DEFAULT_LAYOUT, PANE_LIMITS
- LayoutStatePure (DOMAIN-001): persisted-layout validation and the per-project storage key. Exports: layoutStorageKey, sanitizeLayout
- NarrowLayoutPure (DOMAIN-001): the narrow (< 900px) layout shows ONE pane at a time, switched from a bottom tab bar (Design #250, docs/design/cockpit-layout.md). Exports: NARROW_BREAKPOINT, NARROW_MEDIA_QUERY, isNarrowWidth
- NarrowPanesPure (DOMAIN-001): the entries of the narrow layout's bottom tab bar. Exports: DEFAULT_NARROW_PANE, NARROW_PANES, nextNarrowPane
- PaneSizingPure (DOMAIN-001): pane sizing math for the resizers (mouse and keyboard). Exports: clampSize, resizeByKey, sizeFromDrag
- PrimaryScreensPure (DOMAIN-001): the five primary screens of the top bar, Features / Pages / Components / Git / Tests (owner decision 2026-09-20, docs/design/ia-five-screens.md). Exports: PRIMARY_SCREENS, primaryScreenForPath
- ProjectLabelPure (DOMAIN-001): short display name of a project directory. Exports: projectLabel
- ProjectRequirementPure (DOMAIN-001): what the Cockpit frame shows for the state of the open project. Exports: PROJECT_FREE_ROUTES, isProjectFreeRoute, shellMode
- RailKeysPure (DOMAIN-001): keyboard model of the screens rail (the IDE-style activity bar). Exports: railNextIndex
- RailStatePure (DOMAIN-001): whether the screens rail shows icon + label or icons only, and its storage key. Exports: RAIL_STORAGE_KEY, parseRailCollapsed, serializeRailCollapsed
- ScreensPure (DOMAIN-001): the screens the palette lists as "Go to ..." besides the five in the top bar (PrimaryScreens.ts): the Import Wizard, and Settings / Local Model / Help, which the profile menu also opens. Exports: SCREENS, isScreenActive
- ShellCommandsPure (DOMAIN-001): the commands the shell itself puts in the palette, as data. Exports: ShellCommandAction, ShellCommandSpec, shellCommandSpecs
- ShortcutsPure (DOMAIN-001): global keyboard shortcuts of the shell. Exports: SHORTCUTS, shortcutAction
- TabKeysPure (DOMAIN-001): WAI-ARIA tablist keyboard navigation (roving focus). Exports: nextTabId
- TabRegistryPure (DOMAIN-001): the tab registry every region (browser / tools / drawer) uses. Exports: addTab, badgeText, removeTab, resolveActiveTab
- ThemePure (DOMAIN-001): theme parsing and toggling. Exports: DEFAULT_THEME, parseTheme, toggleTheme
- ThemeInitPure (DOMAIN-001): the pre-paint theme bootstrap. Exports: THEME_INIT_SCRIPT, THEME_STORAGE_KEY
- ThemePreferencePure (DOMAIN-001): the Dark / Light / System preference chosen in the profile menu. Exports: parseThemePreference, resolveTheme
- useActiveTabsExports: useActiveTabs
- useDrawerActionsExports: useDrawerActions
- useFocusModeExports: useFocusMode
- useGitBranchCountExports: useGitBranchCount
- useModelStatusExports: useModelStatus
- useNarrowLayoutExports: useNarrowLayout
- useNarrowTabBarExports: useNarrowTabBar
- usePaneResizerExports: usePaneResizer
- useProjectSwitcherExports: useProjectSwitcher
- useRailCollapsedExports: useRailCollapsed
- useRailKeysExports: useRailKeys
- useRevealPanesExports: useRevealPanes
- useShellCommandsExports: useShellCommands
- useShellDrawerExports: ShellDrawerApi, ShellDrawerContext, useShellDrawer
- useShellFocusExports: ShellFocusApi, ShellFocusContext, useShellFocus
- useShellLayoutExports: useShellLayout
- useShellNavigationExports: useShellNavigation
- useShellRouteExports: useShellRoute
- useShellShortcutsExports: useShellShortcuts
- useShellStageExports: ShellStageApi, ShellStageContext, useShellStage
- useShellTabsExports: ShellTabsProvider, useRegisterShellTab, useShellTabs
- useTabHostExports: useTabHost
- useThemeExports: useTheme
- GatePageExports: GatePage
- ShellPageExports: ShellPage
- ShellRootPageExports: ShellRootPage
- LayoutStorageExports: loadLayout, saveLayout
- ProjectApiExports: closeProjectDir, fetchProjectDir, switchProjectDir
- RailStorageExports: loadRailCollapsed, saveRailCollapsed
- ThemeDomExports: applyTheme, resolvePreference, systemPrefersLight
- ThemeStorageExports: loadThemePreference, saveThemePreference
- typesExports: ActivityBarProps, GateTopBarProps, ModelStatus, NarrowPane, NarrowProps, NarrowTabBarProps, PaneId, PaneLimit, ...
- ShellLayoutWorkflow (no React, WORKFLOW-001): the layout state machine. Exports: initialShellLayout, shellLayoutReducer
ui/client/features/states
- EmptyStateExports: EmptyState
- ErrorStateExports: ErrorState
- LoadingStateExports: LoadingState
- OfflineStateExports: OfflineState
- StateCardExports: StateCard
- StatesGalleryControllerExports: StatesGalleryController
- ErrorMessagePure (DOMAIN-001): turn whatever a failed request threw into plain language (principles #6/#9: say what happened and the fix, not a stack trace). Exports: describeError
- useStatesGalleryExports: useStatesGallery
- StatesGalleryPageExports: StatesGalleryPage
- RetryTimerRuns `done` after a short pretend-work delay; returns a cancel function. Exports: scheduleRetry
- typesExports: EmptyStateProps, ErrorDescription, ErrorStateProps, LoadingStateProps, OfflineStateProps, StateAction, StatesGalleryProps
- RetryFlowPure (WORKFLOW-001: no react import): the sample error's retry flow on the /states reference page. Exports: RetryAction, RetryState, initialRetryState, retryReducer
ui/client/features/tests
- BrowsersMissingPlaywright launches Chromium; on a machine that never installed it every run fails at once. Exports: BrowsersMissing
- CloneDialogExports: CloneDialog
- CloneFreshnessExports: CloneFreshness
- CoverageTableExports: CoverageTable
- EmptyTestsNo tests yet: a heading, a plain explanation and a next action. Exports: EmptyTests
- FailureKindsExports: FailureKinds
- NoFlowExports: NoFlow
- RunControlsExports: RunControls
- RunFailureExports: RunFailure
- RunPanelExports: RunPanel
- RunResultsExports: RunResults
- StepDocumentExports: StepDocument
- StepEditorFootExports: StepEditorFoot
- StepEditorHeaderExports: StepEditorHeader
- StepEditorStatusExports: StepEditorStatus
- StepEditPanelExports: StepEditPanel
- StepReviewExports: StepReview
- TestDetailExports: TestDetail
- TestsBannersExports: TestsBanners
- TestsBrowserExports: TestsBrowser
- TestsControllerExports: TestsController
- CloneDialogPure (DOMAIN-001): what the clone dialog opens with, and the plain-language reasons it opens for. Exports: LOCK_REASON, cloneDialogFor, editStepReason
- CoveragePure (DOMAIN-001): the words the screen uses for scenario coverage. Exports: coverageSummary, rowForFile
- FailureKindsExports: FAILURE_KINDS
- FreshnessPure (DOMAIN-001): the words the Tests screen uses for a clone's freshness. Exports: cloneTag, staleOverview
- FreshnessShapesShapes for a clone's freshness: the server's verdict and comparison, and what the banner draws from them. Exports: Comparison, ComparisonView, FailureKind, FlowChange, Freshness, FreshnessModel, FreshnessState, StaleOverview
- FreshnessViewPure (DOMAIN-001): what the clone banner draws, derived from the server's comparison. Exports: freshnessModel
- InlineTextPure (DOMAIN-001): the scenario sentences the enumerator writes mark a state with *asterisks* and a name with `backticks`. Exports: inlineParts
- RunOutcomesPure (DOMAIN-001): the words a test outcome is drawn with. Exports: formatMs, outcomeFor, outcomeView
- RunShapesShapes for running the tests: the server's /api/tests/:feature/runs and what the run panel draws from it. Exports: OutcomeView, ResultMark, RunCounts, RunFailure, RunLive, RunOutcome, RunPanelProps, RunPanelView, ...
- RunTextPure (DOMAIN-001): the sentences of a run. Exports: liveText, problemView, runSummary
- RunViewPure (DOMAIN-001): what the run panel, a test's detail and the coverage table draw from a run snapshot, as plain text and flags, so the components stay presentation-only. Exports: resultCell, runPanelView, testRunView
- StepChangesPure (DOMAIN-001): how many changes a draft is waiting to save, and the plain-language problems that would make the server refuse it (the server stays the authority). Exports: changeCount, problemsOf
- StepCodePure (DOMAIN-001): what a step binds to and the statement it becomes. Exports: CHANGE_LABEL, bindingOf, codeOf
- StepDraftPure (DOMAIN-001): the draft of a step document being edited: its rows, what changed since it was opened, and the list the server is asked to validate. Exports: changeOf, draftOf, payloadOf
- StepMovesPure (DOMAIN-001): moving and inserting rows of a draft. Exports: canMove, insertStep, move
- StepNewPure (DOMAIN-001): a new row, filled with the first thing the flow offers (the user changes it in the panel). Exports: blankStep
- StepTextPure (DOMAIN-001): the words of one step. Exports: humanize, keywordOf, sentenceOf
- StepViewPure (DOMAIN-001): the rows the step document draws, derived from the draft. Exports: stepRows
- TestNamesPure (DOMAIN-001): turning what a person types into a test file name. Exports: clonePath, defaultCloneName, slugify
- TestsViewPure (DOMAIN-001): everything the Tests screen draws that is DERIVED from its state and the server's listing, so components and pages stay presentation-only. Exports: cloneDialogView, selectedTest, summaryOf
- useCloneActionsExports: useCloneActions
- useCloneComparisonExports: useCloneComparison
- useCopyTextExports: useCopyText
- useRunActionsExports: useRunActions
- useRunSnapshotExports: useRunSnapshot
- useStepEditorExports: useStepEditor
- useStepReviewExports: useStepReview
- useTestCodeExports: useTestCode
- useTestRunsExports: useTestRuns
- useTestsExports: useTests
- useTestsListingExports: useTestsListing
- StepEditorPageExports: StepEditorPageProps, StepEditorPage
- TestsPageExports: TestsPageProps, TestsPage
- TestsShellTabsExports: TestsShellTabsInput, testsShellTabs
- ComparisonApiReading ui/server's /api/tests/:feature/compare. Exports: fetchComparison
- RunApiStarting, reading and cancelling a test run (ui/server's /api/tests/:feature/run, runs and run/cancel). Exports: cancelRun, fetchRuns, startRun
- StepsApiThe step document's three calls on ui/server's /api/tests (behind the session). Exports: fetchSteps, previewSteps, saveSteps
- TestsApiReading ui/server's /api/tests. Exports: fetchTestFeatures, fetchTests, fetchTestSource
- TestsPathsThe Tests API's base path for one feature (the name is encoded; the server validates it against the real feature list). Exports: testsBase
- TestsWritesThe two MUTATING calls of ui/server's /api/tests (POST, behind the session). Exports: cloneTest, generateTests
- typesShapes of ui/server's /api/tests (testsApi.mjs, src/engine/testClone.mjs) and the Tests screen's view state. Exports: CloneDialog, CloneDialogView, CloneResult, CodeView, CoverageRow, DiffRow, DraftStep, GeneratedTest, ...
- StepEditorMachinePure (WORKFLOW-001): what the step editor knows (the opened document, the draft, the selection, the review of the diff) and how each event changes it. Exports: initialStepEditor, stepEditorReducer
- TestsMachinePure (WORKFLOW-001): what the Tests screen knows (feature, its listing, the selected test, the clone dialog, a generate run) and how each event changes it. Exports: initialTests, testsReducer
ui/client/features/wizard
- ChatLogExports: ChatLog
- ChatMessageExports: ChatMessage
- WizardAnswerFormExports: WizardAnswerForm
- WizardStartPanelExports: WizardStartPanel
- WizardControllerExports: WizardController
- WizardPure (DOMAIN-001). Exports: parseAttributionLine
- useWizardExports: useWizard
- WizardPageExports: WizardPage
- WizardExports: connectWizardSocket, sendAnswer, sendStart
- typesExports: ChatMessageData, ChatRole, ClientWizardEvent, ServerWizardEvent, WizardId, WizardStatus
- WizardExports: WizardAction, WizardState, initialWizardState, wizardReducer
ui/client/features/workflows
- FlowEdgeExports: FlowEdge
- MachineCanvasExports: MachineCanvas
- MachineContextPanelExports: MachineContextPanel
- MachineNarrativeExports: MachineNarrative
- StateFlowNodeExports: StateFlowNode
- WorkflowDiffPreviewExports: WorkflowDiffPreview
- WorkflowEditPanelExports: WorkflowEditPanel
- WorkflowsBrowserExports: WorkflowsBrowser
- WorkflowsControllerExports: WorkflowsController
- InlineTextExports: parseInline, toNarrativeView
- MachineBehaviorExports: MachineBehavior, NamedUsage, TransitionChoice, describeBehavior
- MachineGraphExports: StateNode, StateNodeData, TransitionEdge, START_NODE_ID, buildMachineFlow, transitionLabel
- SourceDiffExports: diffSourceLines
- useCanvasSelectionExports: useCanvasSelection
- useFitOnResizeExports: useFitOnResize
- useMachineBehaviorExports: useMachineBehavior, MachineBehavior, NamedUsage
- useMachineFlowExports: useMachineFlow, StateNodeData
- useWorkflowEditorExports: useWorkflowEditor
- useWorkflowNarrativeExports: useWorkflowNarrative
- useWorkflowsExports: useWorkflows
- WorkflowsPageExports: WorkflowsPageProps, WorkflowsPage
- WorkflowsShellTabsExports: WorkflowsShellTabs, workflowsShellTabs
- WorkflowEditApiExports: WorkflowEditResponse, postWorkflowEdit
- WorkflowNarrativeApiExports: getWorkflowNarrative
- WorkflowsApiExports: getWorkflowFeatures, getWorkflowFiles, getWorkflowMachines
- typesMirrors src/engine/workflowExtractor.mjs's output (served by ui/server's GET /api/workflows/machines) — extracted fresh from the real source on Exports: DiffHunk, InlineSegment, NarrativeFinding, NarrativeMachine, NarrativeMachineView, NarrativeScenario, NarrativeState, NarrativeView, ...
- WorkflowsExports: WorkflowsAction, initialWorkflowsState, workflowsReducer