zidane-ui 9.1.16 → 9.1.17
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/dist/adapters/browser-keybindings-host.d.ts +10 -2
- package/dist/adapters/browser-keybindings-host.js +40 -2
- package/dist/adapters/index.d.ts +3 -2
- package/dist/adapters/index.js +3 -2
- package/dist/adapters/server-custom-frame.d.ts +22 -0
- package/dist/adapters/server-custom-frame.js +163 -0
- package/dist/adapters/server-host.js +8 -3
- package/dist/adapters/server-machines-host.js +1 -0
- package/dist/adapters/server-views-host.d.ts +24 -0
- package/dist/adapters/server-views-host.js +78 -0
- package/dist/app/AppHostProvider.d.ts +4 -1
- package/dist/app/AppHostProvider.js +11 -5
- package/dist/app/ModalProvider.js +2 -2
- package/dist/app/NoticeStack.js +1 -1
- package/dist/app/headless/app-host.d.ts +3 -0
- package/dist/app/useConfirm.js +1 -1
- package/dist/appearance/AppearanceProvider.js +1 -1
- package/dist/approvals/ApprovalBar.js +27 -15
- package/dist/approvals/ApprovalShell.js +1 -1
- package/dist/approvals/ApprovalsProvider.js +1 -1
- package/dist/approvals/FileEditApproval.js +1 -1
- package/dist/approvals/HunkPreviews.js +2 -2
- package/dist/approvals/SafelistPanel.js +2 -2
- package/dist/approvals/headless/labels.d.ts +3 -0
- package/dist/approvals/headless/labels.js +3 -0
- package/dist/chat/ChatProvider.js +1 -1
- package/dist/chat/DaemonOrb.js +1 -1
- package/dist/chat/HostBadge.js +1 -1
- package/dist/chat/HostTranscript.js +1 -1
- package/dist/chat/PdfPreview.js +1 -1
- package/dist/chat/RunEstimateChip.js +1 -1
- package/dist/chat/SessionFilterMenu.js +2 -2
- package/dist/chat/SessionList.js +1 -1
- package/dist/chat/SessionListRow.js +2 -2
- package/dist/chat/SessionStreamsProvider.d.ts +3 -1
- package/dist/chat/SessionStreamsProvider.js +6 -2
- package/dist/chat/StatusDot.js +1 -1
- package/dist/chat/TextPreview.js +1 -1
- package/dist/chat/Throbber.js +1 -1
- package/dist/chat/Transcript.d.ts +1 -1
- package/dist/chat/Transcript.js +95 -26
- package/dist/chat/composer/AgentPicker.js +1 -1
- package/dist/chat/composer/AgentPickerDialog.js +1 -1
- package/dist/chat/composer/ApprovalDock.js +1 -1
- package/dist/chat/composer/AttachmentTiles.js +2 -2
- package/dist/chat/composer/Composer.js +1 -1
- package/dist/chat/composer/ComposerBadges.js +2 -2
- package/dist/chat/composer/ComposerControls.js +1 -1
- package/dist/chat/composer/ComposerEditor.js +1 -1
- package/dist/chat/composer/ComposerHostProvider.js +1 -1
- package/dist/chat/composer/ComposerShell.js +1 -1
- package/dist/chat/composer/ContextBreakdown.js +23 -23
- package/dist/chat/composer/ConversationBadges.js +1 -1
- package/dist/chat/composer/DraftPickers.d.ts +38 -0
- package/dist/chat/composer/DraftPickers.js +72 -0
- package/dist/chat/composer/EffortPickerDialog.js +1 -1
- package/dist/chat/composer/HostComposer.js +2 -2
- package/dist/chat/composer/HostContextOrb.js +2 -2
- package/dist/chat/composer/HostModelChainList.js +1 -1
- package/dist/chat/composer/HostPickers.js +1 -1
- package/dist/chat/composer/ImageModelList.js +1 -1
- package/dist/chat/composer/ModelChainList.js +1 -1
- package/dist/chat/composer/ModelChainParts.js +1 -1
- package/dist/chat/composer/ModelChainRow.js +1 -1
- package/dist/chat/composer/ModelChainRows.js +1 -1
- package/dist/chat/composer/ModelOptionsPicker.js +1 -1
- package/dist/chat/composer/ModelPicker.js +2 -2
- package/dist/chat/composer/ModelPickerDialog.js +1 -1
- package/dist/chat/composer/ModelProviderPills.js +1 -1
- package/dist/chat/composer/PickerPill.js +1 -1
- package/dist/chat/composer/ProjectMenu.js +1 -1
- package/dist/chat/composer/PromptHistoryProvider.js +1 -1
- package/dist/chat/composer/RunStatusChip.js +1 -1
- package/dist/chat/composer/attachment-ingest.js +4 -2
- package/dist/chat/composer/heif.d.ts +12 -0
- package/dist/chat/composer/heif.js +115 -0
- package/dist/chat/composer/index.d.ts +5 -3
- package/dist/chat/composer/index.js +4 -2
- package/dist/chat/composer/suggestions.js +1 -1
- package/dist/chat/composer/use-composer-stores.d.ts +3 -1
- package/dist/chat/composer/use-composer-stores.js +7 -2
- package/dist/chat/composer/use-draft-target.d.ts +5 -0
- package/dist/chat/composer/use-draft-target.js +10 -8
- package/dist/chat/composer/use-new-chats-default.d.ts +25 -0
- package/dist/chat/composer/use-new-chats-default.js +32 -0
- package/dist/chat/composer/use-send-prompt.d.ts +11 -1
- package/dist/chat/composer/use-send-prompt.js +5 -3
- package/dist/chat/headless/host.d.ts +9 -0
- package/dist/chat/headless/index.d.ts +5 -4
- package/dist/chat/headless/index.js +5 -3
- package/dist/chat/headless/labels.d.ts +82 -1
- package/dist/chat/headless/labels.js +11 -1
- package/dist/chat/headless/notifications.d.ts +2 -0
- package/dist/chat/headless/notifications.js +1 -0
- package/dist/chat/headless/prompt-origin.d.ts +53 -2
- package/dist/chat/headless/prompt-origin.js +55 -5
- package/dist/chat/headless/session-list.d.ts +79 -0
- package/dist/chat/headless/sidebar/index.js +1 -1
- package/dist/chat/headless/sidebar/labels.d.ts +80 -1
- package/dist/chat/headless/transcript/batch.d.ts +12 -1
- package/dist/chat/headless/transcript/batch.js +47 -1
- package/dist/chat/headless/transcript/collapse.js +11 -0
- package/dist/chat/headless/transcript/fold.js +23 -7
- package/dist/chat/headless/transcript/index.d.ts +3 -3
- package/dist/chat/headless/transcript/index.js +2 -2
- package/dist/chat/headless/transcript/rows.d.ts +31 -2
- package/dist/chat/headless/transcript/select-stops.js +4 -0
- package/dist/chat/headless/transcript-labels.d.ts +1 -0
- package/dist/chat/headless/turn-labels.d.ts +2 -0
- package/dist/chat/headless/turn-labels.js +2 -0
- package/dist/chat/index.d.ts +10 -5
- package/dist/chat/index.js +9 -4
- package/dist/chat/interactions/HostInteractions.js +1 -1
- package/dist/chat/interactions/InboxPanel.js +2 -2
- package/dist/chat/interactions/PlanCard.js +4 -4
- package/dist/chat/interactions/QuestionField.js +2 -2
- package/dist/chat/interactions/QuestionForm.js +1 -1
- package/dist/chat/interactions/SecretInput.js +1 -1
- package/dist/chat/interactions/card-ui.js +1 -1
- package/dist/chat/rich-composer/MentionList.js +1 -1
- package/dist/chat/rich-composer/RichComposer.js +1 -1
- package/dist/chat/sidebar/MainSessionRow.js +1 -1
- package/dist/chat/sidebar/ProjectIcon.js +3 -3
- package/dist/chat/sidebar/SessionSidebar.js +2 -2
- package/dist/chat/sidebar/SidebarDecoration.js +2 -2
- package/dist/chat/sidebar/SidebarFilterMenu.js +1 -1
- package/dist/chat/sidebar/SidebarFooter.js +1 -1
- package/dist/chat/sidebar/SidebarFrame.js +2 -2
- package/dist/chat/sidebar/SidebarGroupHeader.js +3 -3
- package/dist/chat/sidebar/SidebarHostProvider.js +1 -1
- package/dist/chat/sidebar/SidebarRowView.js +1 -1
- package/dist/chat/sidebar/SidebarSessionRow.js +6 -6
- package/dist/chat/sidebar/SpaceSwitcher.js +1 -1
- package/dist/chat/sidebar/SpacesSection.js +2 -2
- package/dist/chat/sidebar/sidebar-live.js +3 -3
- package/dist/chat/transcript/AnsiText.js +4 -4
- package/dist/chat/transcript/AuthFailureCard.js +2 -2
- package/dist/chat/transcript/BadgeMenu.js +1 -1
- package/dist/chat/transcript/CardMarkdown.js +1 -1
- package/dist/chat/transcript/ChipCards.js +1 -1
- package/dist/chat/transcript/CodemodeScript.js +11 -6
- package/dist/chat/transcript/DiffLines.js +1 -1
- package/dist/chat/transcript/EarlierHistory.js +1 -1
- package/dist/chat/transcript/EditDiffBlock.js +1 -1
- package/dist/chat/transcript/FileChip.js +5 -5
- package/dist/chat/transcript/ImageGenerationBlock.js +1 -1
- package/dist/chat/transcript/LazyRow.js +1 -1
- package/dist/chat/transcript/LiveOutput.js +1 -1
- package/dist/chat/transcript/MermaidDiagram.d.ts +68 -2
- package/dist/chat/transcript/MermaidDiagram.js +344 -32
- package/dist/chat/transcript/PromptEcho.js +1 -1
- package/dist/chat/transcript/ProseMarkdown.js +1 -1
- package/dist/chat/transcript/ReferenceText.js +8 -8
- package/dist/chat/transcript/SelectCursor.js +1 -1
- package/dist/chat/transcript/SelectTurnProvider.js +1 -1
- package/dist/chat/transcript/SubagentBlock.js +1 -1
- package/dist/chat/transcript/TranscriptRow.js +20 -5
- package/dist/chat/transcript/TranscriptSearch.js +1 -1
- package/dist/chat/transcript/TurnMenu.js +1 -1
- package/dist/chat/transcript/actions.js +1 -1
- package/dist/chat/transcript/diagrams-scope.d.ts +4 -0
- package/dist/chat/transcript/diagrams-scope.js +11 -0
- package/dist/chat/transcript/extension-renderers.js +1 -1
- package/dist/chat/transcript/fold-attachments.js +1 -1
- package/dist/chat/transcript/fold-status.js +1 -1
- package/dist/chat/transcript/fold-worker.js +1 -1
- package/dist/chat/transcript/fold.js +5 -5
- package/dist/chat/transcript/frame.js +1 -1
- package/dist/chat/transcript/index.d.ts +5 -2
- package/dist/chat/transcript/index.js +5 -2
- package/dist/chat/transcript/markdown.js +95 -14
- package/dist/chat/transcript/messages.js +19 -10
- package/dist/chat/transcript/notices.js +2 -2
- package/dist/chat/transcript/prompt-lines.js +5 -5
- package/dist/chat/transcript/prompt.js +2 -2
- package/dist/chat/transcript/prose.js +1 -1
- package/dist/chat/transcript/renderer-slots.js +1 -1
- package/dist/chat/transcript/renderers.js +3 -3
- package/dist/chat/transcript/row-estimate.js +5 -1
- package/dist/chat/transcript/run-rows.js +2 -2
- package/dist/chat/transcript/script-input.d.ts +1 -1
- package/dist/chat/transcript/shell-block.js +4 -4
- package/dist/chat/transcript/tasks.d.ts +35 -0
- package/dist/chat/transcript/tasks.js +100 -0
- package/dist/chat/transcript/tool-batch.js +2 -2
- package/dist/chat/transcript/tool-media.js +1 -1
- package/dist/chat/transcript/tool-parts.js +1 -1
- package/dist/chat/transcript/tool-row.js +8 -8
- package/dist/chat/transcript/turn-commands.d.ts +15 -1
- package/dist/chat/transcript/turn-commands.js +43 -4
- package/dist/chat/transcript/use-host-turn-menu.d.ts +25 -0
- package/dist/chat/transcript/use-host-turn-menu.js +57 -0
- package/dist/chat/transcript/use-transcript-rows.js +2 -2
- package/dist/chat/transcript/useStickToBottom.js +1 -1
- package/dist/chat/transcript/useTranscriptSearch.js +1 -1
- package/dist/chat/transcript/user-bash.js +1 -1
- package/dist/chat/transcript/view-scope.d.ts +163 -0
- package/dist/chat/transcript/view-scope.js +224 -0
- package/dist/chat/transcript-options.d.ts +1 -1
- package/dist/chat/transcript-options.js +4 -1
- package/dist/code/CodeHighlightProvider.js +1 -1
- package/dist/code/HighlightedCode.js +1 -1
- package/dist/code/editor/CodeCompletion.js +3 -3
- package/dist/code/editor/CodeEditor.js +1 -1
- package/dist/code/editor/CodeHover.js +1 -1
- package/dist/code/editor/DiffView.js +1 -1
- package/dist/code/editor/EditorColumn.js +1 -1
- package/dist/code/editor/FileIcon.js +1 -1
- package/dist/code/editor/FileTree.js +1 -1
- package/dist/code/editor/FileView.js +1 -1
- package/dist/code/editor/HighlightWorkers.js +2 -2
- package/dist/code/editor/LanguageEditor.js +1 -1
- package/dist/code/editor/environment.js +1 -1
- package/dist/code/editor/find/FindBar.js +1 -1
- package/dist/components/Accordion.d.ts +30 -0
- package/dist/components/Accordion.js +96 -0
- package/dist/components/Breadcrumb.js +1 -1
- package/dist/components/Breakdown.d.ts +82 -0
- package/dist/components/Breakdown.js +212 -0
- package/dist/components/BrowserChrome.js +1 -1
- package/dist/components/BrowserSignIn.js +4 -4
- package/dist/components/Callout.d.ts +29 -0
- package/dist/components/Callout.js +60 -0
- package/dist/components/Checklist.d.ts +53 -0
- package/dist/components/Checklist.js +189 -0
- package/dist/components/ChoiceCards.d.ts +7 -1
- package/dist/components/ChoiceCards.js +11 -7
- package/dist/components/CodeFrame.js +1 -1
- package/dist/components/Compare.d.ts +65 -0
- package/dist/components/Compare.js +242 -0
- package/dist/components/ConfirmDialog.js +1 -1
- package/dist/components/CopyButton.js +1 -1
- package/dist/components/EditableTitle.js +1 -1
- package/dist/components/ErrorBoundary.js +1 -1
- package/dist/components/Form.d.ts +3 -1
- package/dist/components/Form.js +2 -1
- package/dist/components/HowItWorks.js +2 -2
- package/dist/components/IconButton.js +2 -2
- package/dist/components/KeyValue.d.ts +37 -0
- package/dist/components/KeyValue.js +43 -0
- package/dist/components/Lightbox.js +2 -2
- package/dist/components/Menu.js +2 -2
- package/dist/components/Overlay.js +2 -2
- package/dist/components/Progress.d.ts +55 -0
- package/dist/components/Progress.js +94 -0
- package/dist/components/ReorderTabs.js +1 -1
- package/dist/components/RowActionsMenu.js +3 -3
- package/dist/components/RowMenuButton.d.ts +24 -0
- package/dist/components/RowMenuButton.js +42 -0
- package/dist/components/Segmented.js +1 -1
- package/dist/components/Stat.d.ts +105 -0
- package/dist/components/Stat.js +131 -0
- package/dist/components/StepFrame.js +1 -1
- package/dist/components/Steps.d.ts +38 -0
- package/dist/components/Steps.js +49 -0
- package/dist/components/Surface.d.ts +1 -1
- package/dist/components/Surface.js +1 -1
- package/dist/components/SwatchPicker.js +1 -1
- package/dist/components/Table.d.ts +123 -0
- package/dist/components/Table.js +437 -0
- package/dist/components/Tabs.d.ts +41 -0
- package/dist/components/Tabs.js +103 -0
- package/dist/components/ToggleCard.js +3 -3
- package/dist/components/Tooltip.js +2 -2
- package/dist/components/ZidaneMark.js +1 -1
- package/dist/components/ZoomableImage.js +1 -1
- package/dist/components/charts/AreaChart.d.ts +24 -0
- package/dist/components/charts/AreaChart.js +210 -0
- package/dist/components/charts/BarChart.d.ts +112 -0
- package/dist/components/charts/BarChart.js +686 -0
- package/dist/components/charts/LineChart.d.ts +34 -0
- package/dist/components/charts/LineChart.js +299 -0
- package/dist/components/charts/ScatterChart.d.ts +83 -0
- package/dist/components/charts/ScatterChart.js +702 -0
- package/dist/components/charts/Sparkline.d.ts +31 -0
- package/dist/components/charts/Sparkline.js +82 -0
- package/dist/components/charts/Trend.d.ts +86 -0
- package/dist/components/charts/Trend.js +233 -0
- package/dist/components/charts/frame.d.ts +225 -0
- package/dist/components/charts/frame.js +475 -0
- package/dist/components/charts/index.d.ts +10 -0
- package/dist/components/charts/index.js +9 -0
- package/dist/components/charts/interact.d.ts +89 -0
- package/dist/components/charts/interact.js +296 -0
- package/dist/components/charts/measure.d.ts +29 -0
- package/dist/components/charts/measure.js +79 -0
- package/dist/components/charts/xy.d.ts +230 -0
- package/dist/components/charts/xy.js +488 -0
- package/dist/components/charts/zoom-reset.d.ts +7 -0
- package/dist/components/charts/zoom-reset.js +23 -0
- package/dist/components/floating/FloatingSurface.js +1 -1
- package/dist/components/floating/HoverCard.js +2 -2
- package/dist/components/floating/Popover.js +2 -2
- package/dist/components/lazy-part.d.ts +17 -0
- package/dist/components/lazy-part.js +33 -0
- package/dist/components/numbers.d.ts +74 -0
- package/dist/components/numbers.js +157 -0
- package/dist/components/palette/PaletteList.js +5 -5
- package/dist/components/palette/PalettePanel.js +2 -2
- package/dist/core.css +517 -3
- package/dist/dist/index-BUHcyEqA.d.ts +1 -0
- package/dist/dist/{index-BZM8tu4L.d.ts → index-CGCMyhB3.d.ts} +182 -126
- package/dist/dist/index.d.ts +4 -4
- package/dist/dist/sandbox-Cib3Qf4t.d.ts +2 -0
- package/dist/extensions/ExtensionComponent.js +6 -5
- package/dist/extensions/ExtensionDialogHost.js +1 -1
- package/dist/extensions/ExtensionRenderer.js +1 -1
- package/dist/extensions/ExtensionScreen.js +1 -1
- package/dist/extensions/ExtensionSettingsPage.js +1 -1
- package/dist/extensions/ExtensionSettingsSection.js +1 -1
- package/dist/extensions/ExtensionSettingsSidebar.js +1 -1
- package/dist/extensions/ExtensionSlot.js +2 -2
- package/dist/extensions/ExtensionWebview.js +1 -1
- package/dist/extensions/ExtensionsProvider.js +1 -1
- package/dist/extensions/headless/index.d.ts +2 -2
- package/dist/extensions/headless/wire.d.ts +5 -1
- package/dist/extensions/headless/wire.js +2 -1
- package/dist/extensions/links.js +1 -1
- package/dist/files/CodeViewer.js +1 -1
- package/dist/files/DiffFileViewer.js +1 -1
- package/dist/files/DiffsTab.js +2 -2
- package/dist/files/EditorColumn.js +62 -28
- package/dist/files/EditorEnvironmentRoot.js +1 -1
- package/dist/files/FilePreview.d.ts +24 -0
- package/dist/files/FilePreview.js +283 -0
- package/dist/files/FilesProvider.js +1 -1
- package/dist/files/FilesTab.js +2 -2
- package/dist/files/MediaDiff.js +1 -1
- package/dist/files/MediaView.js +1 -1
- package/dist/files/ReviewDraft.js +1 -1
- package/dist/files/ReviewableDiff.js +2 -2
- package/dist/files/SearchPanel.js +2 -2
- package/dist/files/TreeColumn.js +2 -2
- package/dist/files/file-actions.js +1 -0
- package/dist/files/headless/labels.d.ts +5 -0
- package/dist/files/headless/labels.js +5 -0
- package/dist/files/headless/preview.d.ts +44 -0
- package/dist/files/headless/preview.js +103 -0
- package/dist/files/lazy-tabs.js +1 -1
- package/dist/files/useCodeReview.js +1 -1
- package/dist/files/useLsp.js +1 -1
- package/dist/files/useOpenFiles.d.ts +2 -0
- package/dist/files/useOpenFiles.js +14 -0
- package/dist/git/BranchMenu.js +7 -7
- package/dist/git/GitBar.js +1 -1
- package/dist/git/GitProvider.js +1 -1
- package/dist/git/ImportRepoDialog.js +1 -1
- package/dist/git/MoveSessionDialog.js +2 -2
- package/dist/git/RemoteFolderPicker.js +4 -4
- package/dist/git/SyncChip.js +1 -1
- package/dist/git/WherePicker.d.ts +2 -0
- package/dist/git/WherePicker.js +15 -12
- package/dist/git/index.d.ts +1 -1
- package/dist/git/index.js +1 -1
- package/dist/hooks/useDisplayPath.js +1 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +16 -3
- package/dist/keybindings/KeyCommands.js +1 -1
- package/dist/keybindings/KeybindingsProvider.js +4 -2
- package/dist/keybindings/headless/host.d.ts +5 -0
- package/dist/keybindings/headless/overrides.d.ts +2 -1
- package/dist/keybindings/headless/overrides.js +2 -1
- package/dist/keybindings/testing/contract.js +1 -0
- package/dist/labels.d.ts +97 -0
- package/dist/labels.js +104 -1
- package/dist/machines/AddMachineDialog.js +3 -3
- package/dist/machines/AddServerForm.js +1 -1
- package/dist/machines/DaemonMenu.js +3 -3
- package/dist/machines/HostCapabilities.js +5 -5
- package/dist/machines/HostIcon.d.ts +21 -0
- package/dist/machines/HostIcon.js +19 -0
- package/dist/machines/HostSignIn.js +1 -1
- package/dist/machines/HostSyncPanel.js +1 -1
- package/dist/machines/HostsSection.d.ts +27 -1
- package/dist/machines/HostsSection.js +60 -46
- package/dist/machines/MachinesProvider.js +1 -1
- package/dist/machines/ServerCard.d.ts +1 -2
- package/dist/machines/ServerCard.js +4 -9
- package/dist/machines/ServerMachinesPanel.js +161 -196
- package/dist/machines/ServerUpdatePanel.js +94 -111
- package/dist/machines/ShareThisComputerForm.js +1 -1
- package/dist/machines/SyncAccounts.js +1 -1
- package/dist/machines/SyncMarker.js +2 -2
- package/dist/machines/TokensPanel.js +225 -124
- package/dist/machines/headless/index.d.ts +2 -1
- package/dist/machines/headless/index.js +2 -1
- package/dist/machines/headless/labels.d.ts +22 -0
- package/dist/machines/headless/labels.js +25 -0
- package/dist/machines/headless/update-store.d.ts +29 -0
- package/dist/machines/headless/update-store.js +83 -0
- package/dist/machines/index.d.ts +5 -3
- package/dist/machines/index.js +5 -3
- package/dist/machines/server-update.d.ts +23 -0
- package/dist/machines/server-update.js +106 -0
- package/dist/motion/grow.js +1 -1
- package/dist/motion/provider.js +1 -1
- package/dist/motion/roll.js +2 -2
- package/dist/motion/size.js +1 -1
- package/dist/motion/springs.js +1 -1
- package/dist/motion/swap.js +1 -1
- package/dist/motion/title-text.js +2 -2
- package/dist/onboarding/OnboardingFlow.js +1 -1
- package/dist/onboarding/OnboardingProvider.js +1 -1
- package/dist/onboarding/conversation.js +1 -1
- package/dist/onboarding/demos/features.js +1 -1
- package/dist/onboarding/demos/index.js +1 -1
- package/dist/onboarding/demos/tour.js +1 -1
- package/dist/onboarding/headless/labels.d.ts +74 -0
- package/dist/onboarding/index.js +3 -3
- package/dist/onboarding/skills/SkillSourceBrowser.js +1 -1
- package/dist/onboarding/skills/parts.js +1 -1
- package/dist/onboarding/sources/SourceBrowser.js +4 -4
- package/dist/onboarding/steps/ConnectStep.js +1 -1
- package/dist/onboarding/steps/ConnectorsStep.js +3 -3
- package/dist/onboarding/steps/ConversationStep.js +2 -2
- package/dist/onboarding/steps/FeatureExample.js +2 -2
- package/dist/onboarding/steps/ImportStep.js +2 -2
- package/dist/onboarding/steps/LookStep.js +1 -1
- package/dist/onboarding/steps/ReadyStep.js +2 -2
- package/dist/onboarding/steps/SkillsStep.js +1 -1
- package/dist/onboarding/steps/connect/KeyForm.js +1 -1
- package/dist/onboarding/steps/connect/ProviderPanel.js +1 -1
- package/dist/onboarding/steps/connect/ProviderReady.js +2 -2
- package/dist/palette/CommandPalette.d.ts +3 -1
- package/dist/palette/CommandPalette.js +11 -3
- package/dist/palette/PaletteDialog.js +25 -2
- package/dist/palette/PaletteProvider.js +1 -1
- package/dist/palette/PaletteRows.js +5 -5
- package/dist/palette/headless/index.d.ts +2 -2
- package/dist/palette/headless/index.js +2 -2
- package/dist/palette/headless/labels.d.ts +2 -0
- package/dist/palette/headless/labels.js +2 -0
- package/dist/palette/headless/sources.d.ts +26 -2
- package/dist/palette/headless/sources.js +40 -1
- package/dist/session/ArtifactsPanel.js +2 -2
- package/dist/session/DiffFileTree.js +1 -1
- package/dist/session/PlanTracker.js +1 -1
- package/dist/session/ProjectHome.js +4 -4
- package/dist/session/ProviderUsageProvider.js +2 -2
- package/dist/session/QueueTab.js +6 -6
- package/dist/session/RemindersPanel.js +2 -2
- package/dist/session/RunningWorkDialog.js +3 -2
- package/dist/session/SecretsPanel.js +2 -2
- package/dist/session/SessionCacheFacts.js +56 -57
- package/dist/session/SessionDetailsDialog.js +29 -17
- package/dist/session/SessionHeader.js +1 -1
- package/dist/session/SessionProvider.js +1 -1
- package/dist/session/SessionShell.js +2 -2
- package/dist/session/SideChat.js +1 -1
- package/dist/session/StepStatusIcon.js +1 -1
- package/dist/session/TurnDetailsDialog.js +1 -1
- package/dist/session/UsagePanel.js +9 -5
- package/dist/session/WelcomeScreen.js +1 -1
- package/dist/session/headless/host.d.ts +1 -1
- package/dist/session/headless/index.js +1 -1
- package/dist/session/headless/labels.d.ts +1 -0
- package/dist/session/headless/labels.js +4 -2
- package/dist/settings/SettingsFooter.d.ts +51 -0
- package/dist/settings/SettingsFooter.js +91 -0
- package/dist/settings/SettingsHeadingText.js +1 -1
- package/dist/settings/SettingsNav.js +1 -1
- package/dist/settings/SettingsProvider.js +1 -1
- package/dist/settings/SettingsRestricted.js +2 -2
- package/dist/settings/SettingsRowsPage.js +2 -2
- package/dist/settings/SettingsShell.js +3 -3
- package/dist/settings/headless/app-update.d.ts +27 -0
- package/dist/settings/headless/app-update.js +0 -0
- package/dist/settings/headless/catalog.js +61 -1
- package/dist/settings/headless/fixture-accounts.js +7 -0
- package/dist/settings/headless/index.d.ts +2 -1
- package/dist/settings/headless/index.js +2 -2
- package/dist/settings/headless/labels.d.ts +13 -0
- package/dist/settings/headless/labels.js +16 -1
- package/dist/settings/headless/layout.js +30 -12
- package/dist/settings/headless/mcp.d.ts +4 -0
- package/dist/settings/headless/search.d.ts +1 -1
- package/dist/settings/index.d.ts +3 -1
- package/dist/settings/index.js +11 -9
- package/dist/settings/section.js +1 -1
- package/dist/settings/sections/appearance/AppearanceSection.js +1 -1
- package/dist/settings/sections/claude-import/ClaudeImportDialog.js +2 -2
- package/dist/settings/sections/descriptors.js +4 -4
- package/dist/settings/sections/editor/EditorSection.js +2 -2
- package/dist/settings/sections/enabled-list/EnabledListSection.js +1 -1
- package/dist/settings/sections/environments/EnvironmentsSection.js +3 -3
- package/dist/settings/sections/extensions/ChangeOriginDialog.js +1 -1
- package/dist/settings/sections/extensions/CreateExtensionDialog.js +1 -1
- package/dist/settings/sections/extensions/ExtensionConfigRows.js +2 -2
- package/dist/settings/sections/extensions/ExtensionOptionsSection.js +2 -2
- package/dist/settings/sections/extensions/ExtensionPicksBar.js +1 -1
- package/dist/settings/sections/extensions/ExtensionSourceBrowser.js +1 -1
- package/dist/settings/sections/extensions/ExtensionsSection.js +2 -2
- package/dist/settings/sections/host-catalog/HostCatalogSection.js +4 -4
- package/dist/settings/sections/index.js +8 -8
- package/dist/settings/sections/instructions/InstructionsSection.js +3 -3
- package/dist/settings/sections/keybindings/KeybindingsSection.js +2 -2
- package/dist/settings/sections/logs/LogsSection.js +1 -1
- package/dist/settings/sections/mcp/McpAddForm.js +48 -22
- package/dist/settings/sections/mcp/McpSection.js +14 -2
- package/dist/settings/sections/mcp/McpServerRow.d.ts +3 -1
- package/dist/settings/sections/mcp/McpServerRow.js +104 -10
- package/dist/settings/sections/mcp/labels.d.ts +18 -0
- package/dist/settings/sections/mcp/labels.js +18 -0
- package/dist/settings/sections/models/AgentDefaults.js +4 -4
- package/dist/settings/sections/models/ModelListPicker.js +1 -1
- package/dist/settings/sections/models/ModelPickField.js +1 -1
- package/dist/settings/sections/models/ModelRows.js +2 -2
- package/dist/settings/sections/models/model-test.js +1 -1
- package/dist/settings/sections/performance/PerfSparkline.js +1 -1
- package/dist/settings/sections/performance/PerformanceSection.js +14 -14
- package/dist/settings/sections/plugins/PluginsSection.js +1 -1
- package/dist/settings/sections/providers/CredentialSources.js +3 -3
- package/dist/settings/sections/providers/ProvidersSection.js +1 -1
- package/dist/settings/sections/providers/ServerProvidersSection.js +1 -1
- package/dist/settings/sections/providers/ServerSignIn.js +2 -2
- package/dist/settings/sections/shared/catalog.js +2 -2
- package/dist/settings/sections/skills/SkillList.js +5 -5
- package/dist/settings/sections/skills/SkillsSection.js +3 -3
- package/dist/settings/server-app.d.ts +41 -0
- package/dist/settings/server-app.js +155 -0
- package/dist/settings/testing/accounts.contract.d.ts +1 -1
- package/dist/settings/testing/accounts.contract.js +10 -1
- package/dist/styles.css +686 -30
- package/dist/terminal/HostTerminalSurface.js +4 -3
- package/dist/terminal/TerminalDrawer.js +2 -2
- package/dist/terminal/TerminalPanel.js +3 -3
- package/dist/terminal/TerminalProvider.d.ts +13 -2
- package/dist/terminal/TerminalProvider.js +15 -7
- package/dist/terminal/TerminalSurface.d.ts +3 -1
- package/dist/terminal/TerminalSurface.js +5 -4
- package/dist/terminal/assets.d.ts +10 -0
- package/dist/terminal/assets.js +23 -0
- package/dist/terminal/fonts/LICENSE +21 -0
- package/dist/terminal/fonts/SymbolsNerdFontMono-Regular.woff2 +0 -0
- package/dist/terminal/ghostty.d.ts +3 -1
- package/dist/terminal/ghostty.js +25 -4
- package/dist/terminal/index.d.ts +2 -2
- package/dist/theme/derive.d.ts +3 -2
- package/dist/theme/derive.js +3 -2
- package/dist/uno.js +2 -1
- package/dist/url-imports.d.ts +6 -0
- package/dist/views/BoolMark.d.ts +15 -0
- package/dist/views/BoolMark.js +28 -0
- package/dist/views/SvgImage.d.ts +19 -0
- package/dist/views/SvgImage.js +89 -0
- package/dist/views/TranscriptViews.d.ts +31 -0
- package/dist/views/TranscriptViews.js +59 -0
- package/dist/views/ViewAutoRefresh.d.ts +23 -0
- package/dist/views/ViewAutoRefresh.js +73 -0
- package/dist/views/ViewBlock.d.ts +40 -0
- package/dist/views/ViewBlock.js +482 -0
- package/dist/views/ViewCharts.d.ts +20 -0
- package/dist/views/ViewCharts.js +331 -0
- package/dist/views/ViewControls.d.ts +49 -0
- package/dist/views/ViewControls.js +208 -0
- package/dist/views/ViewCustom.d.ts +40 -0
- package/dist/views/ViewCustom.js +354 -0
- package/dist/views/ViewExpanded.d.ts +32 -0
- package/dist/views/ViewExpanded.js +107 -0
- package/dist/views/ViewExtension.d.ts +21 -0
- package/dist/views/ViewExtension.js +125 -0
- package/dist/views/ViewInputs.d.ts +24 -0
- package/dist/views/ViewInputs.js +561 -0
- package/dist/views/ViewMcpApp.d.ts +26 -0
- package/dist/views/ViewMcpApp.js +569 -0
- package/dist/views/ViewNodes.d.ts +92 -0
- package/dist/views/ViewNodes.js +1073 -0
- package/dist/views/ViewPreviewPage.d.ts +42 -0
- package/dist/views/ViewPreviewPage.js +214 -0
- package/dist/views/ViewTables.d.ts +15 -0
- package/dist/views/ViewTables.js +305 -0
- package/dist/views/ViewsProvider.d.ts +32 -0
- package/dist/views/ViewsProvider.js +50 -0
- package/dist/views/badge-tone.d.ts +20 -0
- package/dist/views/badge-tone.js +100 -0
- package/dist/views/expanded.d.ts +7 -0
- package/dist/views/expanded.js +14 -0
- package/dist/views/format.d.ts +18 -0
- package/dist/views/format.js +37 -0
- package/dist/views/headless/answers.d.ts +50 -0
- package/dist/views/headless/answers.js +85 -0
- package/dist/views/headless/custom-slots.d.ts +35 -0
- package/dist/views/headless/custom-slots.js +59 -0
- package/dist/views/headless/download.d.ts +10 -0
- package/dist/views/headless/download.js +26 -0
- package/dist/views/headless/frame-name.d.ts +17 -0
- package/dist/views/headless/frame-name.js +24 -0
- package/dist/views/headless/host.d.ts +197 -0
- package/dist/views/headless/host.js +0 -0
- package/dist/views/headless/index.d.ts +13 -0
- package/dist/views/headless/index.js +12 -0
- package/dist/views/headless/labels.d.ts +144 -0
- package/dist/views/headless/labels.js +147 -0
- package/dist/views/headless/live.d.ts +12 -0
- package/dist/views/headless/live.js +50 -0
- package/dist/views/headless/lru.d.ts +31 -0
- package/dist/views/headless/lru.js +62 -0
- package/dist/views/headless/mcp-app-bridge.d.ts +128 -0
- package/dist/views/headless/mcp-app-bridge.js +330 -0
- package/dist/views/headless/placement.d.ts +98 -0
- package/dist/views/headless/placement.js +227 -0
- package/dist/views/headless/records.d.ts +53 -0
- package/dist/views/headless/records.js +114 -0
- package/dist/views/headless/refs.d.ts +10 -0
- package/dist/views/headless/refs.js +13 -0
- package/dist/views/headless/safe.d.ts +35 -0
- package/dist/views/headless/safe.js +58 -0
- package/dist/views/headless/store.d.ts +54 -0
- package/dist/views/headless/store.js +228 -0
- package/dist/views/headless/streaming.d.ts +43 -0
- package/dist/views/headless/streaming.js +136 -0
- package/dist/views/headless/view-state.d.ts +20 -0
- package/dist/views/headless/view-state.js +55 -0
- package/dist/views/index.d.ts +2 -0
- package/dist/views/index.js +1 -0
- package/dist/views/input-preview.d.ts +5 -0
- package/dist/views/input-preview.js +11 -0
- package/dist/views/preview-style.d.ts +10 -0
- package/dist/views/preview-style.js +262 -0
- package/dist/views/preview.d.ts +2 -0
- package/dist/views/preview.js +1 -0
- package/dist/views/testing/contract.d.ts +50 -0
- package/dist/views/testing/contract.js +266 -0
- package/dist/views/testing/fixture-host.d.ts +29 -0
- package/dist/views/testing/fixture-host.js +77 -0
- package/dist/views/testing/index.d.ts +2 -0
- package/dist/views/testing/index.js +1 -0
- package/dist/views/theme-watch.d.ts +28 -0
- package/dist/views/theme-watch.js +65 -0
- package/dist/views/trusted.d.ts +17 -0
- package/dist/views/trusted.js +17 -0
- package/dist/views/viewport.d.ts +30 -0
- package/dist/views/viewport.js +87 -0
- package/dist/workspace/LayoutBudget.js +1 -1
- package/dist/workspace/PanelContentView.js +2 -2
- package/dist/workspace/PanelGroups.js +1 -1
- package/dist/workspace/PanelHome.js +1 -1
- package/dist/workspace/PanelItems.js +2 -2
- package/dist/workspace/PanelStrip.js +2 -2
- package/dist/workspace/PanelToolbar.js +2 -2
- package/dist/workspace/SidePanel.js +4 -4
- package/dist/workspace/TabParking.js +2 -2
- package/dist/workspace/WorkspaceProvider.js +1 -1
- package/dist/workspace/dnd/parking.js +2 -2
- package/dist/workspace/extension-tabs.js +2 -2
- package/package.json +49 -2
- package/src/styles/components.css +421 -0
- package/src/styles/files.css +15 -0
- package/src/styles/primitives.css +10 -0
- package/src/styles/tokens.css +20 -1
- package/src/styles/transcript.css +174 -18
- package/dist/dist/index-f-XWIoYo.d.ts +0 -1
- package/dist/dist/sandbox-B4OW6oNx.d.ts +0 -2
- /package/dist/dist/{types-2HrgolQz.d.ts → types-CgfAUN48.d.ts} +0 -0
|
@@ -8,8 +8,8 @@ import { useModelCatalog } from "../../../chat/composer/use-composer-stores.js";
|
|
|
8
8
|
import { useModelRowsLabels } from "./model-test.js";
|
|
9
9
|
import { ValueChip } from "../../rows.js";
|
|
10
10
|
import { ModelPickField } from "./ModelPickField.js";
|
|
11
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
12
11
|
import { useEffect, useState } from "react";
|
|
12
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { DEFAULT_MODEL_PICK, formatModelSetting, parseModelSetting } from "zidane/chat/pure";
|
|
14
14
|
//#region src/settings/sections/models/AgentDefaults.tsx
|
|
15
15
|
/**
|
|
@@ -61,7 +61,7 @@ function AgentDefaultsRows({ value, onChange, cwd, inherited, className, style }
|
|
|
61
61
|
const l = useModelRowsLabels();
|
|
62
62
|
const where = inherited ? l.modelRowsNewSessionsInSpace : l.modelRowsNewSessions;
|
|
63
63
|
const lastUsed = useLastUsedModel();
|
|
64
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
64
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
65
65
|
/* @__PURE__ */ jsx(AgentRow, {
|
|
66
66
|
label: l.modelRowsDefaultAgent,
|
|
67
67
|
description: l.modelRowsStartOn(where),
|
|
@@ -227,8 +227,8 @@ function KnobsLabel({ effort, options, enabled }) {
|
|
|
227
227
|
const on = options.filter((o) => enabled[o.id]);
|
|
228
228
|
const words = [...effort ? [effort] : [], ...on.filter((o) => !OPTION_ICON[o.id]).map((o) => o.id)];
|
|
229
229
|
const glyphs = on.filter((o) => OPTION_ICON[o.id]);
|
|
230
|
-
if (words.length === 0 && glyphs.length === 0) return /* @__PURE__ */ jsx(Fragment, { children: l.modelRowsLastUsed });
|
|
231
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [words.length > 0 && /* @__PURE__ */ jsx("span", {
|
|
230
|
+
if (words.length === 0 && glyphs.length === 0) return /* @__PURE__ */ jsx(Fragment$1, { children: l.modelRowsLastUsed });
|
|
231
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [words.length > 0 && /* @__PURE__ */ jsx("span", {
|
|
232
232
|
className: "truncate",
|
|
233
233
|
children: words.join(", ")
|
|
234
234
|
}), glyphs.map((o) => /* @__PURE__ */ jsx("span", {
|
|
@@ -3,8 +3,8 @@ import { MenuNote } from "../../../components/Menu.js";
|
|
|
3
3
|
import { FloatingSurface } from "../../../components/floating/FloatingSurface.js";
|
|
4
4
|
import { providerColor, providerTint } from "../../../chat/provider-color.js";
|
|
5
5
|
import { useModelRowsLabels } from "./model-test.js";
|
|
6
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
6
|
import { forwardRef, useEffect, useMemo, useRef, useState } from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { modelDisplayName } from "zidane/chat/pure";
|
|
9
9
|
//#region src/settings/sections/models/ModelListPicker.tsx
|
|
10
10
|
/**
|
|
@@ -7,8 +7,8 @@ import { useModelCatalog } from "../../../chat/composer/use-composer-stores.js";
|
|
|
7
7
|
import { HostModelChainList } from "../../../chat/composer/HostModelChainList.js";
|
|
8
8
|
import { ModelTestButton, ModelTestLine, useModelRowsLabels, useModelTest } from "./model-test.js";
|
|
9
9
|
import { ValueChip } from "../../rows.js";
|
|
10
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
10
|
import { useEffect, useRef, useState } from "react";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { formatModelSetting, modelDisplayName } from "zidane/chat/pure";
|
|
13
13
|
//#region src/settings/sections/models/ModelPickField.tsx
|
|
14
14
|
/**
|
|
@@ -6,12 +6,12 @@ import { useSettingsHost } from "../../SettingsProvider.js";
|
|
|
6
6
|
import { useComposerModelName, useModelCatalog } from "../../../chat/composer/use-composer-stores.js";
|
|
7
7
|
import { ModelTestButton, ModelTestLine, useModelRowsLabels, useModelTest } from "./model-test.js";
|
|
8
8
|
import { ModelListPicker } from "./ModelListPicker.js";
|
|
9
|
-
import { ConversationPresetPreview } from "../../../onboarding/conversation.js";
|
|
10
9
|
import { useSettingsResource } from "../shared/catalog.js";
|
|
10
|
+
import { ConversationPresetPreview } from "../../../onboarding/conversation.js";
|
|
11
11
|
import { SelectRow, ValueChip } from "../../rows.js";
|
|
12
12
|
import { ModelPickField } from "./ModelPickField.js";
|
|
13
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
13
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
14
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
15
|
import { APPROVAL_MODE_OPTIONS, autoTextModelId, formatModelSetting, modelDisplayName, parseModelSetting, transcriptPreset } from "zidane/chat/pure";
|
|
16
16
|
//#region src/settings/sections/models/ModelRows.tsx
|
|
17
17
|
/**
|
|
@@ -5,8 +5,8 @@ import { toSettingsError } from "../../headless/host.js";
|
|
|
5
5
|
import { useComposerModelName, useComposerProviderLabel } from "../../../chat/composer/use-composer-stores.js";
|
|
6
6
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
7
7
|
import { DEFAULT_MODEL_ROWS_LABELS } from "./labels.js";
|
|
8
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
8
|
import { useState } from "react";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
//#region src/settings/sections/models/model-test.tsx
|
|
11
11
|
/**
|
|
12
12
|
* A model row's Test: one tiny request to the model the row names, with the
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useStaysMounted } from "../../../motion/collapse.js";
|
|
1
2
|
import { IconButton } from "../../../components/IconButton.js";
|
|
2
3
|
import { BTN_PRIMARY, BTN_SECONDARY } from "../../../components/button.js";
|
|
3
4
|
import { Notice } from "../../../components/Notice.js";
|
|
@@ -6,7 +7,6 @@ import { EmptyState, Tray } from "../../../components/Surface.js";
|
|
|
6
7
|
import { MetaChip } from "../../../components/Form.js";
|
|
7
8
|
import { errorMessage } from "../../../components/report-error.js";
|
|
8
9
|
import { CountBadge } from "../../../components/TabPill.js";
|
|
9
|
-
import { useStaysMounted } from "../../../motion/collapse.js";
|
|
10
10
|
import { useSettingsHost, useSettingsLabels } from "../../SettingsProvider.js";
|
|
11
11
|
import { Caret } from "../../../chat/transcript/frame.js";
|
|
12
12
|
import { SettingsPanel, SettingsPanelActions, SettingsPanelBody, useSettingsSection } from "../../section.js";
|
|
@@ -16,8 +16,8 @@ import { formatDuration, formatMemory, formatPercent, hasLaunched, nestProcesses
|
|
|
16
16
|
import { DEFAULT_PERFORMANCE_SECTION_LABELS } from "./labels.js";
|
|
17
17
|
import { PerfSparkline } from "./PerfSparkline.js";
|
|
18
18
|
import { usePerfMonitor } from "./use-perf-monitor.js";
|
|
19
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
20
19
|
import { memo, useCallback, useMemo, useState } from "react";
|
|
20
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
21
21
|
//#region src/settings/sections/performance/PerformanceSection.tsx
|
|
22
22
|
/**
|
|
23
23
|
* Settings › Performance: what the app's processes and threads use, live, over
|
|
@@ -96,7 +96,7 @@ function PerformanceSection({ className, style }) {
|
|
|
96
96
|
host
|
|
97
97
|
}),
|
|
98
98
|
/* @__PURE__ */ jsx(Threads, { latest }),
|
|
99
|
-
host.resetCounters && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Frames, { latest }), /* @__PURE__ */ jsx(Channels, { latest })] }),
|
|
99
|
+
host.resetCounters && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Frames, { latest }), /* @__PURE__ */ jsx(Channels, { latest })] }),
|
|
100
100
|
host.profile && /* @__PURE__ */ jsx(Profile, {
|
|
101
101
|
host,
|
|
102
102
|
reveal: settings.paths?.reveal
|
|
@@ -310,7 +310,7 @@ function ProcessViews({ samples, latest, host }) {
|
|
|
310
310
|
span: samples.length,
|
|
311
311
|
threads: host.threads
|
|
312
312
|
};
|
|
313
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Processes, {
|
|
313
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Processes, {
|
|
314
314
|
latest,
|
|
315
315
|
tree
|
|
316
316
|
}), /* @__PURE__ */ jsx(Sessions, {
|
|
@@ -363,7 +363,7 @@ function Sessions({ latest, tree }) {
|
|
|
363
363
|
tone: "neutral",
|
|
364
364
|
text: String(sessions.length)
|
|
365
365
|
}),
|
|
366
|
-
children: sessions.length === 0 ? /* @__PURE__ */ jsx(Empty, { text: l.perfSessionsEmpty }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Heads, { names: [l.perfColCpu, l.perfColMemory] }), sessions.map((session) => /* @__PURE__ */ jsx(ProcessGroup, {
|
|
366
|
+
children: sessions.length === 0 ? /* @__PURE__ */ jsx(Empty, { text: l.perfSessionsEmpty }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Heads, { names: [l.perfColCpu, l.perfColMemory] }), sessions.map((session) => /* @__PURE__ */ jsx(ProcessGroup, {
|
|
367
367
|
label: session.title ?? l.perfSessionUntitled,
|
|
368
368
|
...session.title ? { title: session.title } : {},
|
|
369
369
|
roots: session.roots,
|
|
@@ -374,7 +374,7 @@ function Sessions({ latest, tree }) {
|
|
|
374
374
|
}
|
|
375
375
|
/** CPU and memory as chips, with the icons every list uses for them. */
|
|
376
376
|
function UsageChips({ totals, cpuTitle, memoryTitle }) {
|
|
377
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(MetaChip, {
|
|
377
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(MetaChip, {
|
|
378
378
|
title: cpuTitle,
|
|
379
379
|
children: [/* @__PURE__ */ jsx("span", {
|
|
380
380
|
className: "i-ph-cpu",
|
|
@@ -442,13 +442,13 @@ const ProcessNode = memo(function ProcessNode({ node, depth, tree }) {
|
|
|
442
442
|
tree.threads(process.pid).then(setThreads, () => setThreads([]));
|
|
443
443
|
}
|
|
444
444
|
};
|
|
445
|
-
const label = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
445
|
+
const label = /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
446
446
|
children.length > 0 ? /* @__PURE__ */ jsx(Caret, { open }) : /* @__PURE__ */ jsx("span", { className: "w-3 shrink-0" }),
|
|
447
447
|
/* @__PURE__ */ jsx("span", {
|
|
448
448
|
className: "text-sm text-[var(--zg-text)] truncate",
|
|
449
449
|
children: process.label
|
|
450
450
|
}),
|
|
451
|
-
!open && descendants > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(CountBadge, {
|
|
451
|
+
!open && descendants > 0 && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(CountBadge, {
|
|
452
452
|
tone: "neutral",
|
|
453
453
|
text: String(descendants)
|
|
454
454
|
}), /* @__PURE__ */ jsx(UsageChips, {
|
|
@@ -529,7 +529,7 @@ function Threads({ latest }) {
|
|
|
529
529
|
const busiest = threads[0];
|
|
530
530
|
return /* @__PURE__ */ jsxs(Section, {
|
|
531
531
|
title: l.perfThreads,
|
|
532
|
-
badges: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(CountBadge, {
|
|
532
|
+
badges: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(CountBadge, {
|
|
533
533
|
tone: "neutral",
|
|
534
534
|
text: String(threads.length)
|
|
535
535
|
}), busiest && /* @__PURE__ */ jsx(MetaChip, {
|
|
@@ -567,7 +567,7 @@ function Frames({ latest }) {
|
|
|
567
567
|
const windows = new Set(frames.map((frame) => frame.window)).size;
|
|
568
568
|
return /* @__PURE__ */ jsx(Section, {
|
|
569
569
|
title: l.perfFrames,
|
|
570
|
-
badges: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
570
|
+
badges: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
571
571
|
/* @__PURE__ */ jsx(CountBadge, {
|
|
572
572
|
tone: "neutral",
|
|
573
573
|
text: String(latest.frames.length)
|
|
@@ -575,7 +575,7 @@ function Frames({ latest }) {
|
|
|
575
575
|
total > 0 && /* @__PURE__ */ jsx(MetaChip, { children: formatDuration(total) }),
|
|
576
576
|
/* @__PURE__ */ jsx(MetaChip, { children: l.perfSince(since(latest.countersSince)) })
|
|
577
577
|
] }),
|
|
578
|
-
children: frames.length === 0 ? /* @__PURE__ */ jsx(Empty, { text: l.perfFramesEmpty }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Heads, { names: [
|
|
578
|
+
children: frames.length === 0 ? /* @__PURE__ */ jsx(Empty, { text: l.perfFramesEmpty }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Heads, { names: [
|
|
579
579
|
l.perfColFrames,
|
|
580
580
|
l.perfColTotal,
|
|
581
581
|
l.perfColWorst
|
|
@@ -620,7 +620,7 @@ function Channels({ latest }) {
|
|
|
620
620
|
const total = latest.channels.reduce((sum, channel) => sum + channel.totalMs, 0);
|
|
621
621
|
return /* @__PURE__ */ jsx(Section, {
|
|
622
622
|
title: l.perfChannels,
|
|
623
|
-
badges: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
623
|
+
badges: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
624
624
|
/* @__PURE__ */ jsx(CountBadge, {
|
|
625
625
|
tone: "neutral",
|
|
626
626
|
text: String(latest.channels.length)
|
|
@@ -628,7 +628,7 @@ function Channels({ latest }) {
|
|
|
628
628
|
total > 0 && /* @__PURE__ */ jsx(MetaChip, { children: formatDuration(total) }),
|
|
629
629
|
/* @__PURE__ */ jsx(MetaChip, { children: l.perfSince(since(latest.countersSince)) })
|
|
630
630
|
] }),
|
|
631
|
-
children: channels.length === 0 ? /* @__PURE__ */ jsx(Empty, { text: l.perfChannelsEmpty }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Heads, { names: [
|
|
631
|
+
children: channels.length === 0 ? /* @__PURE__ */ jsx(Empty, { text: l.perfChannelsEmpty }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Heads, { names: [
|
|
632
632
|
l.perfColCalls,
|
|
633
633
|
l.perfColTotal,
|
|
634
634
|
l.perfColP95,
|
|
@@ -745,7 +745,7 @@ function Profile({ host, reveal }) {
|
|
|
745
745
|
children: l.perfProfileError
|
|
746
746
|
})
|
|
747
747
|
}),
|
|
748
|
-
outcome?.ok && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Heads, { names: [l.perfColShare, l.perfColSelf] }), outcome.profile.top.slice(0, LIST_CAP).map((fn) => /* @__PURE__ */ jsxs("div", {
|
|
748
|
+
outcome?.ok && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Heads, { names: [l.perfColShare, l.perfColSelf] }), outcome.profile.top.slice(0, LIST_CAP).map((fn) => /* @__PURE__ */ jsxs("div", {
|
|
749
749
|
className: ROW,
|
|
750
750
|
title: fn.url ? `${fn.url}:${fn.line}` : void 0,
|
|
751
751
|
children: [
|
|
@@ -6,8 +6,8 @@ import { SettingsPanel, SettingsPanelBody } from "../../section.js";
|
|
|
6
6
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
7
7
|
import { EnabledList, RevealPathButton, useCatalogSharedLabels, useSettingsResource } from "../shared/catalog.js";
|
|
8
8
|
import { DEFAULT_PLUGINS_SECTION_LABELS } from "./labels.js";
|
|
9
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
9
|
import { useCallback, useMemo } from "react";
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
//#region src/settings/sections/plugins/PluginsSection.tsx
|
|
12
12
|
/**
|
|
13
13
|
* Settings › Plugins: the Agent Plugins found near a folder with the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { toSettingsError } from "../../headless/host.js";
|
|
2
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
2
|
import { useState } from "react";
|
|
3
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
//#region src/settings/sections/providers/CredentialSources.tsx
|
|
5
5
|
/**
|
|
6
6
|
* The credential sources of a provider holding more than one stored (an API
|
|
@@ -13,7 +13,7 @@ import { useState } from "react";
|
|
|
13
13
|
* action and is never in use.
|
|
14
14
|
*/
|
|
15
15
|
/** Small ghost action inline with the source it acts on. */
|
|
16
|
-
const SOURCE_BTN = "zg-press ml-1 h-5 px-1.5 shrink-0 rounded-zg-sm text-zg-meta leading-none text-[var(--zg-text-muted)] hover:text-[var(--zg-text)] hover:before:bg-[var(--zg-row-hover)] border-0 bg-transparent cursor-pointer disabled:opacity-zg-disabled
|
|
16
|
+
const SOURCE_BTN = "zg-press ml-1 h-5 px-1.5 shrink-0 rounded-zg-sm text-zg-meta leading-none text-[var(--zg-text-muted)] hover:text-[var(--zg-text)] hover:before:bg-[var(--zg-row-hover)] border-0 bg-transparent cursor-pointer disabled:opacity-zg-disabled zg-focus-ring";
|
|
17
17
|
/**
|
|
18
18
|
* Renders the credential sources of a provider.
|
|
19
19
|
*
|
|
@@ -108,7 +108,7 @@ function CredentialSources({ provider, cwd, host, labels: l, confirm, onError, o
|
|
|
108
108
|
className: "zg-meta shrink-0",
|
|
109
109
|
children: l.accountsInUse
|
|
110
110
|
}),
|
|
111
|
-
isRenaming && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("button", {
|
|
111
|
+
isRenaming && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("button", {
|
|
112
112
|
type: "button",
|
|
113
113
|
onClick: () => void commitRename(method),
|
|
114
114
|
className: SOURCE_BTN,
|
|
@@ -13,8 +13,8 @@ import { SettingsRestricted, useSettingsRestricted } from "../../SettingsRestric
|
|
|
13
13
|
import { useSettingsResource } from "../shared/catalog.js";
|
|
14
14
|
import { CredentialSources } from "./CredentialSources.js";
|
|
15
15
|
import { DEFAULT_ACCOUNTS_SECTION_LABELS } from "./labels.js";
|
|
16
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
17
16
|
import { useContext, useMemo, useRef, useState } from "react";
|
|
17
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
18
|
import { providerBrand } from "zidane/chat/pure";
|
|
19
19
|
//#region src/settings/sections/providers/ProvidersSection.tsx
|
|
20
20
|
/**
|
|
@@ -10,8 +10,8 @@ import { useSettingsResource } from "../shared/catalog.js";
|
|
|
10
10
|
import { CredentialSources } from "./CredentialSources.js";
|
|
11
11
|
import { useAccountsSectionLabels } from "./ProvidersSection.js";
|
|
12
12
|
import { ServerSignIn } from "./ServerSignIn.js";
|
|
13
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
13
|
import { useMemo, useState } from "react";
|
|
14
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
15
|
//#region src/settings/sections/providers/ServerProvidersSection.tsx
|
|
16
16
|
/**
|
|
17
17
|
* Settings › Accounts of a server's session, over the settings host's
|
|
@@ -3,8 +3,8 @@ import { OpLine } from "../../../components/Form.js";
|
|
|
3
3
|
import { RoutedLink } from "../../../extensions/links.js";
|
|
4
4
|
import { useSignIn } from "../../../onboarding/useSignIn.js";
|
|
5
5
|
import { useAccountsSectionLabels } from "./ProvidersSection.js";
|
|
6
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
6
|
import { useEffect, useState } from "react";
|
|
7
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
//#region src/settings/sections/providers/ServerSignIn.tsx
|
|
9
9
|
/**
|
|
10
10
|
* A browser sign-in whose tokens stay on a server (a provider on its
|
|
@@ -66,7 +66,7 @@ function ServerSignIn({ begin, hostName, label, onClose, className, style }) {
|
|
|
66
66
|
kind: line.kind,
|
|
67
67
|
children: line.text
|
|
68
68
|
}),
|
|
69
|
-
!done && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
69
|
+
!done && /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
70
70
|
page?.kind === "device" && /* @__PURE__ */ jsxs("p", {
|
|
71
71
|
className: "m-0 text-xs",
|
|
72
72
|
children: [
|
|
@@ -8,8 +8,8 @@ import { useSectionLabels } from "../use-section-labels.js";
|
|
|
8
8
|
import { SettingsRestricted } from "../../SettingsRestricted.js";
|
|
9
9
|
import { enabledNames, toggleEnabled } from "../../headless/enabled.js";
|
|
10
10
|
import { DEFAULT_CATALOG_SHARED_LABELS } from "./labels.js";
|
|
11
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
12
11
|
import { useCallback, useMemo, useState, useSyncExternalStore } from "react";
|
|
12
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
13
13
|
//#region src/settings/sections/shared/catalog.tsx
|
|
14
14
|
/**
|
|
15
15
|
* The pieces the catalog sections share: the enabled-allowlist hook over the
|
|
@@ -140,7 +140,7 @@ function EnabledList({ catalog, keyOf, labelOf, detailOf, leadOf, badgeOf, statu
|
|
|
140
140
|
const canToggle = forcedEnabled === void 0 && writable;
|
|
141
141
|
const action = actionOf?.(entry);
|
|
142
142
|
const status = statusOf?.(entry);
|
|
143
|
-
const content = /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Checkbox, { checked: enabled }), /* @__PURE__ */ jsxs("div", {
|
|
143
|
+
const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Checkbox, { checked: enabled }), /* @__PURE__ */ jsxs("div", {
|
|
144
144
|
className: "flex-1 min-w-0",
|
|
145
145
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
146
146
|
className: "text-sm flex items-center gap-2",
|
|
@@ -5,14 +5,14 @@ import { EmptyState } from "../../../components/Surface.js";
|
|
|
5
5
|
import { Checkbox, MetaChip } from "../../../components/Form.js";
|
|
6
6
|
import { LoadError } from "../../../components/LoadError.js";
|
|
7
7
|
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
8
|
-
import { useCodeDocument } from "../../../code/editor/useCodeDocument.js";
|
|
9
8
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
10
9
|
import { SettingsRestricted } from "../../SettingsRestricted.js";
|
|
11
10
|
import { OpenFileButton, RevealPathButton, useCatalogSharedLabels, useEnabledList, useSettingsResource } from "../shared/catalog.js";
|
|
11
|
+
import { useCodeDocument } from "../../../code/editor/useCodeDocument.js";
|
|
12
12
|
import { formatTokens } from "../../../session/headless/usage-format.js";
|
|
13
13
|
import { DEFAULT_SKILLS_SECTION_LABELS } from "./labels.js";
|
|
14
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
15
14
|
import { Suspense, lazy, useMemo, useRef, useState } from "react";
|
|
15
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
16
16
|
import { skillTokenWeights } from "zidane/chat/pure";
|
|
17
17
|
//#region src/settings/sections/skills/SkillList.tsx
|
|
18
18
|
/**
|
|
@@ -161,7 +161,7 @@ function SkillActions({ name, dir, armed, onArm, onDelete, onEdit }) {
|
|
|
161
161
|
children: l.skillsSectionKeep
|
|
162
162
|
})]
|
|
163
163
|
});
|
|
164
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
164
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
165
165
|
dir && onEdit && /* @__PURE__ */ jsx(IconButton, {
|
|
166
166
|
icon: "i-ph-pencil-simple",
|
|
167
167
|
label: l.skillsSectionEdit(name),
|
|
@@ -216,7 +216,7 @@ function CatalogBar({ skills, weights }) {
|
|
|
216
216
|
function SkillCard({ cwd, entry, enabled, weight, expanded, canToggle, onToggleEnabled, onToggleExpanded, action, onSaved }) {
|
|
217
217
|
const l = useSkillsSectionLabels();
|
|
218
218
|
const skill = entry.skill;
|
|
219
|
-
const head = /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("span", {
|
|
219
|
+
const head = /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("span", {
|
|
220
220
|
className: "flex items-center gap-2 min-w-0",
|
|
221
221
|
children: [
|
|
222
222
|
skill && /* @__PURE__ */ jsx("span", {
|
|
@@ -228,7 +228,7 @@ function SkillCard({ cwd, entry, enabled, weight, expanded, canToggle, onToggleE
|
|
|
228
228
|
children: entry.name
|
|
229
229
|
}),
|
|
230
230
|
/* @__PURE__ */ jsx(MetaChip, { children: entry.contributed ? l.skillsSectionFrom(entry.contributed.origin, entry.contributed.by) : entry.source ?? "project" }),
|
|
231
|
-
weight && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(MetaChip, {
|
|
231
|
+
weight && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(MetaChip, {
|
|
232
232
|
className: "tabular-nums",
|
|
233
233
|
title: l.skillsSectionInPromptTitle(weight.catalog.toLocaleString("en-US")),
|
|
234
234
|
children: [/* @__PURE__ */ jsx("span", {
|
|
@@ -3,12 +3,12 @@ import { OpLine } from "../../../components/Form.js";
|
|
|
3
3
|
import { toSettingsError } from "../../headless/host.js";
|
|
4
4
|
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
5
5
|
import { SettingsPanel, SettingsPanelActions, SettingsPanelBody } from "../../section.js";
|
|
6
|
-
import { SkillSourceBrowser } from "../../../onboarding/skills/SkillSourceBrowser.js";
|
|
7
6
|
import { ScopePicker, useCatalogSharedLabels, useOpLine, useSettingsResource, useSettingsValues, useWriteSetting } from "../shared/catalog.js";
|
|
8
7
|
import { SettingsTutorial } from "../../SettingsTutorial.js";
|
|
8
|
+
import { SkillSourceBrowser } from "../../../onboarding/skills/SkillSourceBrowser.js";
|
|
9
9
|
import { SkillActions, SkillList, useSkillsSectionLabels } from "./SkillList.js";
|
|
10
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
10
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
11
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { ONBOARDING_WORDS, groupSkillPicks } from "zidane/chat/pure";
|
|
13
13
|
//#region src/settings/sections/skills/SkillsSection.tsx
|
|
14
14
|
/**
|
|
@@ -146,7 +146,7 @@ function SkillsSection({ cwd, onEdit, actions, className, style }) {
|
|
|
146
146
|
return /* @__PURE__ */ jsxs(SettingsPanel, {
|
|
147
147
|
className,
|
|
148
148
|
style,
|
|
149
|
-
children: [/* @__PURE__ */ jsx(SettingsPanelActions, { actions: /* @__PURE__ */ jsxs(Fragment, { children: [cwd && host && /* @__PURE__ */ jsx("button", {
|
|
149
|
+
children: [/* @__PURE__ */ jsx(SettingsPanelActions, { actions: /* @__PURE__ */ jsxs(Fragment$1, { children: [cwd && host && /* @__PURE__ */ jsx("button", {
|
|
150
150
|
type: "button",
|
|
151
151
|
onClick: () => void rescan(),
|
|
152
152
|
title: l.skillsSectionRefreshTitle,
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { SettingsSection } from "./headless/registry.js";
|
|
2
|
+
import { SettingsAction, SettingsTabId } from "./headless/layout.js";
|
|
3
|
+
import { EditorSectionProps } from "./sections/editor/EditorSection.js";
|
|
4
|
+
import { ReactNode } from "react";
|
|
5
|
+
//#region src/settings/server-app.d.ts
|
|
6
|
+
/** Options for {@link useServerAppSettingsSections}. */
|
|
7
|
+
interface ServerAppSettingsOptions {
|
|
8
|
+
/** The server's name: pages that would say "your" name it. */
|
|
9
|
+
hostName: string;
|
|
10
|
+
/** The open session's folder on the server (`null`: none). The catalogs and lists are for it. */
|
|
11
|
+
cwd: string | null;
|
|
12
|
+
/** The open session (`null`: none): Instructions shows its prompt. */
|
|
13
|
+
sessionId: string | null;
|
|
14
|
+
/** Accounts › Hosts: the server's own page (`ServerDetail`, `zidane-ui/machines`). */
|
|
15
|
+
hosts: () => ReactNode;
|
|
16
|
+
/** The app's actions (`{ action }` rows). */
|
|
17
|
+
actions?: readonly SettingsAction[];
|
|
18
|
+
/** The Spaces section of General (the server's spaces). */
|
|
19
|
+
spaces?: () => ReactNode;
|
|
20
|
+
/** The Extensions page. Default: the server's catalog. */
|
|
21
|
+
extensions?: () => ReactNode;
|
|
22
|
+
/** Files & editor shows (the app has a files host). Default: false. */
|
|
23
|
+
files?: boolean;
|
|
24
|
+
/** What Files & editor takes besides the folder. */
|
|
25
|
+
editor?: Omit<EditorSectionProps, 'cwd'>;
|
|
26
|
+
}
|
|
27
|
+
/** The sections and the nav's counts. */
|
|
28
|
+
interface ServerAppSettings {
|
|
29
|
+
/** The shell's sections, in the layout's order. */
|
|
30
|
+
sections: SettingsSection[];
|
|
31
|
+
/** The nav's counts per page. */
|
|
32
|
+
counts: Partial<Record<SettingsTabId, number>>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The sections and counts of an app a server serves (see the module comment).
|
|
36
|
+
*
|
|
37
|
+
* @param options - The server's name, the folder and session, the server page and the app's extras.
|
|
38
|
+
*/
|
|
39
|
+
declare function useServerAppSettingsSections(options: ServerAppSettingsOptions): ServerAppSettings;
|
|
40
|
+
//#endregion
|
|
41
|
+
export { ServerAppSettings, ServerAppSettingsOptions, useServerAppSettingsSections };
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { useSettingsHost, useSettingsLabels } from "./SettingsProvider.js";
|
|
2
|
+
import { SETTINGS_PAGES } from "./headless/layout.js";
|
|
3
|
+
import { SettingsRowsPage } from "./SettingsRowsPage.js";
|
|
4
|
+
import { layoutSections } from "./headless/layout-sections.js";
|
|
5
|
+
import { listLength, settingsPageCounts } from "./headless/page-counts.js";
|
|
6
|
+
import { AppearanceSection } from "./sections/appearance/AppearanceSection.js";
|
|
7
|
+
import { EditorSection } from "./sections/editor/EditorSection.js";
|
|
8
|
+
import { EnvironmentsSection } from "./sections/environments/EnvironmentsSection.js";
|
|
9
|
+
import { HostCatalogSection } from "./sections/host-catalog/HostCatalogSection.js";
|
|
10
|
+
import { InstructionsSection } from "./sections/instructions/InstructionsSection.js";
|
|
11
|
+
import { KEYBINDING_ROW_COUNT } from "./sections/keybindings/rows.js";
|
|
12
|
+
import { KeybindingsSection } from "./sections/keybindings/KeybindingsSection.js";
|
|
13
|
+
import { LogsSection } from "./sections/logs/LogsSection.js";
|
|
14
|
+
import { McpSection } from "./sections/mcp/McpSection.js";
|
|
15
|
+
import { PerformanceSection } from "./sections/performance/PerformanceSection.js";
|
|
16
|
+
import { ServerProvidersSection } from "./sections/providers/ServerProvidersSection.js";
|
|
17
|
+
import { useEffect, useMemo, useState } from "react";
|
|
18
|
+
import { jsx } from "react/jsx-runtime";
|
|
19
|
+
//#region src/settings/server-app.tsx
|
|
20
|
+
/**
|
|
21
|
+
* Settings for an app a server serves (the web app): the layout's pages
|
|
22
|
+
* (`SETTINGS_PAGES`), each worded for that server and grouped as on the
|
|
23
|
+
* desktop, with the server's own sections for the panels. The server is the
|
|
24
|
+
* app's only host: Accounts › Hosts is its page (`hosts`), and the pages the
|
|
25
|
+
* desktop keeps for this computer (Instructions, Environments, Keybindings)
|
|
26
|
+
* are the server's or this browser's. A page the host leaves out hides:
|
|
27
|
+
* Logs, Performance, and Files & editor without a files host.
|
|
28
|
+
*
|
|
29
|
+
* const { sections, counts } = useServerAppSettingsSections({ hostName, cwd, sessionId, hosts: () => <ServerDetail … /> });
|
|
30
|
+
* <SettingsShell sections={sections} counts={counts} … />
|
|
31
|
+
*/
|
|
32
|
+
const EXTENSION_KEYWORDS = [
|
|
33
|
+
"integrations",
|
|
34
|
+
"connections",
|
|
35
|
+
"locked",
|
|
36
|
+
"provenance"
|
|
37
|
+
];
|
|
38
|
+
const NO_ACTIONS = [];
|
|
39
|
+
/**
|
|
40
|
+
* The sections and counts of an app a server serves (see the module comment).
|
|
41
|
+
*
|
|
42
|
+
* @param options - The server's name, the folder and session, the server page and the app's extras.
|
|
43
|
+
*/
|
|
44
|
+
function useServerAppSettingsSections(options) {
|
|
45
|
+
const { hostName, cwd, sessionId, hosts, actions = NO_ACTIONS, spaces, extensions, files = false, editor } = options;
|
|
46
|
+
const host = useSettingsHost();
|
|
47
|
+
const labels = useSettingsLabels();
|
|
48
|
+
const hasLogs = Boolean(host.logs);
|
|
49
|
+
const hasPerformance = Boolean(host.performance);
|
|
50
|
+
const pages = useMemo(() => SETTINGS_PAGES.filter((page) => (page.id !== "logs" || hasLogs) && (page.id !== "performance" || hasPerformance) && (page.id !== "editor" || files)), [
|
|
51
|
+
hasLogs,
|
|
52
|
+
hasPerformance,
|
|
53
|
+
files
|
|
54
|
+
]);
|
|
55
|
+
return {
|
|
56
|
+
sections: useMemo(() => {
|
|
57
|
+
const renderPanel = (page) => {
|
|
58
|
+
switch (page.id) {
|
|
59
|
+
case "hosts": return hosts();
|
|
60
|
+
case "accounts": return /* @__PURE__ */ jsx(ServerProvidersSection, { hostName });
|
|
61
|
+
case "mcp": return /* @__PURE__ */ jsx(McpSection, { cwd });
|
|
62
|
+
case "skills":
|
|
63
|
+
case "plugins": return /* @__PURE__ */ jsx(HostCatalogSection, {
|
|
64
|
+
kind: page.id,
|
|
65
|
+
hostName,
|
|
66
|
+
cwd
|
|
67
|
+
});
|
|
68
|
+
case "extensions": return extensions ? extensions() : /* @__PURE__ */ jsx(HostCatalogSection, {
|
|
69
|
+
kind: "extensions",
|
|
70
|
+
hostName,
|
|
71
|
+
cwd
|
|
72
|
+
});
|
|
73
|
+
case "instructions": return /* @__PURE__ */ jsx(InstructionsSection, {
|
|
74
|
+
sessionId,
|
|
75
|
+
localFiles: false
|
|
76
|
+
});
|
|
77
|
+
case "environments": return /* @__PURE__ */ jsx(EnvironmentsSection, { cwd });
|
|
78
|
+
case "logs": return /* @__PURE__ */ jsx(LogsSection, {});
|
|
79
|
+
case "performance": return /* @__PURE__ */ jsx(PerformanceSection, {});
|
|
80
|
+
case "appearance": return /* @__PURE__ */ jsx(AppearanceSection, {});
|
|
81
|
+
case "editor": return /* @__PURE__ */ jsx(EditorSection, {
|
|
82
|
+
cwd,
|
|
83
|
+
...editor
|
|
84
|
+
});
|
|
85
|
+
case "keybindings": return /* @__PURE__ */ jsx(KeybindingsSection, {});
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
return layoutSections(pages, {
|
|
89
|
+
server: true,
|
|
90
|
+
spacesOnServer: true,
|
|
91
|
+
host: hostName,
|
|
92
|
+
actions,
|
|
93
|
+
renderPanel,
|
|
94
|
+
renderRows: (page) => /* @__PURE__ */ jsx(SettingsRowsPage, {
|
|
95
|
+
page,
|
|
96
|
+
server: true,
|
|
97
|
+
spacesOnServer: true,
|
|
98
|
+
actions,
|
|
99
|
+
...spaces ? { spaces } : {}
|
|
100
|
+
})
|
|
101
|
+
}).map((section) => section.id === "extensions" ? {
|
|
102
|
+
...section,
|
|
103
|
+
keywords: [...section.keywords ?? [], ...EXTENSION_KEYWORDS]
|
|
104
|
+
} : section.id === "hosts" ? {
|
|
105
|
+
...section,
|
|
106
|
+
description: labels.settingsServerHostsDescription(hostName)
|
|
107
|
+
} : section);
|
|
108
|
+
}, [
|
|
109
|
+
pages,
|
|
110
|
+
hosts,
|
|
111
|
+
hostName,
|
|
112
|
+
cwd,
|
|
113
|
+
sessionId,
|
|
114
|
+
actions,
|
|
115
|
+
spaces,
|
|
116
|
+
extensions,
|
|
117
|
+
editor,
|
|
118
|
+
labels
|
|
119
|
+
]),
|
|
120
|
+
counts: useServerAppPageCounts(pages, cwd)
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/** The list pages' lengths on the server, read once per folder. */
|
|
124
|
+
function useServerAppPageCounts(pages, cwd) {
|
|
125
|
+
const host = useSettingsHost();
|
|
126
|
+
const [lists, setLists] = useState({});
|
|
127
|
+
useEffect(() => {
|
|
128
|
+
let live = true;
|
|
129
|
+
const folder = cwd ?? void 0;
|
|
130
|
+
const length = (read) => (read ?? Promise.resolve(void 0)).then(listLength, () => void 0);
|
|
131
|
+
const resource = (r) => r ? r.refresh().then(() => listLength(r.get().data), () => void 0) : Promise.resolve(void 0);
|
|
132
|
+
Promise.all([
|
|
133
|
+
length(host.hostCatalog?.list("skills", folder)),
|
|
134
|
+
length(host.hostCatalog?.list("extensions", folder)),
|
|
135
|
+
length(host.hostCatalog?.list("plugins", folder)),
|
|
136
|
+
resource(host.mcp?.servers(cwd ?? "")),
|
|
137
|
+
cwd ? length(host.environments?.list(cwd)) : Promise.resolve(void 0)
|
|
138
|
+
]).then(([skills, extensions, plugins, mcp, environments]) => {
|
|
139
|
+
if (live) setLists({
|
|
140
|
+
skills,
|
|
141
|
+
extensions,
|
|
142
|
+
plugins,
|
|
143
|
+
mcp,
|
|
144
|
+
environments,
|
|
145
|
+
keybindings: KEYBINDING_ROW_COUNT
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
return () => {
|
|
149
|
+
live = false;
|
|
150
|
+
};
|
|
151
|
+
}, [host, cwd]);
|
|
152
|
+
return useMemo(() => settingsPageCounts(pages, lists, true), [pages, lists]);
|
|
153
|
+
}
|
|
154
|
+
//#endregion
|
|
155
|
+
export { useServerAppSettingsSections };
|
|
@@ -3,7 +3,7 @@ import { SettingsMcpInstance, SettingsMcpServer } from "../headless/mcp.js";
|
|
|
3
3
|
import { SettingsHost } from "../headless/host.js";
|
|
4
4
|
//#region src/settings/testing/accounts.contract.d.ts
|
|
5
5
|
/** A group of `SettingsHost` this suite covers, or one of its optional actions. */
|
|
6
|
-
type SettingsAccountsCapability = 'providers' | 'providers.setApiKey' | 'providers.configure' | 'providers.clear' | 'providers.remove' | 'providers.setPreferred' | 'providers.rename' | 'providers.signIn' | 'mcp' | 'mcp.test' | 'mcp.signIn' | 'mcp.signOut' | 'mcp.add' | 'mcp.remove' | 'mcp.instances' | 'mcp.restart';
|
|
6
|
+
type SettingsAccountsCapability = 'providers' | 'providers.setApiKey' | 'providers.configure' | 'providers.clear' | 'providers.remove' | 'providers.setPreferred' | 'providers.rename' | 'providers.signIn' | 'mcp' | 'mcp.test' | 'mcp.signIn' | 'mcp.signOut' | 'mcp.add' | 'mcp.remove' | 'mcp.instances' | 'mcp.restart' | 'mcp.setToolTimeout';
|
|
7
7
|
/** What the backend behind the host holds. */
|
|
8
8
|
interface SettingsAccountsBackend {
|
|
9
9
|
/** The providers and their credentials. */
|
|
@@ -31,7 +31,8 @@ const MCP_ACTIONS = [
|
|
|
31
31
|
"add",
|
|
32
32
|
"remove",
|
|
33
33
|
"instances",
|
|
34
|
-
"restart"
|
|
34
|
+
"restart",
|
|
35
|
+
"setToolTimeout"
|
|
35
36
|
];
|
|
36
37
|
/** The folder the suite's MCP calls name. */
|
|
37
38
|
const ACCOUNTS_CONTRACT_CWD = "/work/app";
|
|
@@ -232,6 +233,14 @@ function describeSettingsAccountsContract(name, makeHarness, capabilities) {
|
|
|
232
233
|
expect(control.serverNames()).not.toContain("docs");
|
|
233
234
|
expect((await settled(host.mcp.servers(ACCOUNTS_CONTRACT_CWD)))?.map((s) => s.name)).not.toContain("docs");
|
|
234
235
|
});
|
|
236
|
+
it.skipIf(!has("mcp.setToolTimeout"))("setToolTimeout sets a server's timeout; null clears it", async () => {
|
|
237
|
+
const { host } = await setup();
|
|
238
|
+
const servers = host.mcp.servers(ACCOUNTS_CONTRACT_CWD);
|
|
239
|
+
await host.mcp.setToolTimeout(ACCOUNTS_CONTRACT_CWD, "docs", 3e5);
|
|
240
|
+
expect((await settled(servers))?.find((s) => s.name === "docs")?.toolTimeout).toBe(3e5);
|
|
241
|
+
await host.mcp.setToolTimeout(ACCOUNTS_CONTRACT_CWD, "docs", null);
|
|
242
|
+
expect((await settled(servers))?.find((s) => s.name === "docs")?.toolTimeout).toBeUndefined();
|
|
243
|
+
});
|
|
235
244
|
it.skipIf(!has("mcp.signIn"))("a server sign-in opens its page and finishes", async () => {
|
|
236
245
|
const { host, control } = await setup();
|
|
237
246
|
const flow = host.mcp.signIn(ACCOUNTS_CONTRACT_CWD, "linear");
|