@hachej/boring-workspace 0.1.70 → 0.1.72
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/{FileTree-B_fRS4Om.js → FileTree-C8JPlZtS.js} +1 -1
- package/dist/{MarkdownEditor-C55gVDyW.js → MarkdownEditor-B9wN6tGH.js} +14 -14
- package/dist/{WorkspaceLoadingState-D3i4X-eH.js → WorkspaceLoadingState-TgOWTNJC.js} +350 -203
- package/dist/{WorkspaceProvider-Ddx7GByq.js → WorkspaceProvider-DcOiZU24.js} +9 -9
- package/dist/app-front.d.ts +2 -883
- package/dist/app-front.js +1049 -1033
- package/dist/app-server.d.ts +4 -4
- package/dist/bridge-client.d.ts +2 -2
- package/dist/charts.d.ts +2 -119
- package/dist/plugin.d.ts +3 -3
- package/dist/{runtimeEnv-CU-c4kaV.d.ts → runtimeEnv-DKtVLBXo.d.ts} +2 -2
- package/dist/server.d.ts +6 -6
- package/dist/shared.d.ts +3 -3
- package/dist/src/__tests__/WorkspaceProvider.test.d.ts +1 -0
- package/dist/src/__tests__/exploration.property.test.d.ts +1 -0
- package/dist/src/__tests__/plugin-integration.test.d.ts +1 -0
- package/dist/src/__tests__/public-api.test.d.ts +1 -0
- package/dist/src/__tests__/publicFileStateApi.test.d.ts +1 -0
- package/dist/src/__tests__/theme-system.test.d.ts +1 -0
- package/dist/src/app/front/CloseLeftPaneOnAttention.d.ts +10 -0
- package/dist/src/app/front/PluginAppLeftHost.d.ts +18 -0
- package/dist/src/app/front/WorkspaceAgentFront.d.ts +174 -0
- package/dist/src/app/front/WorkspaceAgentStatusStates.d.ts +5 -0
- package/dist/src/app/front/WorkspaceBackgroundBoot.d.ts +10 -0
- package/dist/src/app/front/WorkspaceBootGate.d.ts +12 -0
- package/dist/src/app/front/WorkspaceFullPagePanel.d.ts +5 -0
- package/dist/src/app/front/WorkspaceShellCapabilitiesHost.d.ts +20 -0
- package/dist/src/app/front/WorkspaceUiStateSync.d.ts +9 -0
- package/dist/src/app/front/__tests__/WorkspaceAgentFront.test.d.ts +1 -0
- package/dist/src/app/front/__tests__/WorkspaceBackgroundBoot.test.d.ts +1 -0
- package/dist/src/app/front/__tests__/WorkspaceBootGate.test.d.ts +1 -0
- package/dist/src/app/front/__tests__/WorkspaceFullPagePanel.test.d.ts +1 -0
- package/dist/src/app/front/__tests__/chatPaneState.property.test.d.ts +1 -0
- package/dist/src/app/front/__tests__/useWorkspaceShellCapabilitiesController.test.d.ts +1 -0
- package/dist/src/app/front/__tests__/workspacePreload.test.d.ts +1 -0
- package/dist/src/app/front/chatPaneState.d.ts +8 -0
- package/dist/src/app/front/fullPageRoute.d.ts +10 -0
- package/dist/src/app/front/fullPageRouteErrors.d.ts +7 -0
- package/dist/src/app/front/index.d.ts +8 -0
- package/dist/src/app/front/localStorageSessions.d.ts +18 -0
- package/dist/src/app/front/useWorkspaceShellCapabilitiesController.d.ts +8 -0
- package/dist/src/app/front/workspaceBuiltinPlugins.d.ts +6 -0
- package/dist/src/app/front/workspacePreload.d.ts +64 -0
- package/dist/src/bridge-client/__tests__/client.test.d.ts +1 -0
- package/dist/src/bridge-client/index.d.ts +65 -0
- package/dist/src/front/agentPlugins/__tests__/registerAgentPlugin.test.d.ts +1 -0
- package/dist/src/front/agentPlugins/registerAgentPlugin.d.ts +26 -0
- package/dist/src/front/agentPlugins/reloadEvent.d.ts +7 -0
- package/dist/src/front/attention/WorkspaceAttentionProvider.d.ts +71 -0
- package/dist/src/front/attention/__tests__/WorkspaceAttentionProvider.test.d.ts +1 -0
- package/dist/src/front/attention/index.d.ts +2 -0
- package/dist/src/front/bridge/WorkspaceLink.d.ts +35 -0
- package/dist/src/front/bridge/__tests__/WorkspaceLink.test.d.ts +1 -0
- package/dist/src/front/bridge/__tests__/bridge.property.test.d.ts +1 -0
- package/dist/src/front/bridge/__tests__/bridge.test.d.ts +1 -0
- package/dist/src/front/bridge/__tests__/client.test.d.ts +1 -0
- package/dist/src/front/bridge/__tests__/uiCommandDispatcher.test.d.ts +1 -0
- package/dist/src/front/bridge/__tests__/uiCommandStream.test.d.ts +1 -0
- package/dist/src/front/bridge/client.d.ts +33 -0
- package/dist/src/front/bridge/createBridge.d.ts +8 -0
- package/dist/src/front/bridge/index.d.ts +12 -0
- package/dist/src/front/bridge/types.d.ts +92 -0
- package/dist/src/front/bridge/uiCommandBus.d.ts +3 -0
- package/dist/src/front/bridge/uiCommandDispatcher.d.ts +44 -0
- package/dist/src/front/bridge/uiCommandStream.d.ts +41 -0
- package/dist/src/front/bridge/validation.d.ts +66 -0
- package/dist/src/front/charts/__tests__/charts.test.d.ts +1 -0
- package/dist/src/front/charts/index.d.ts +92 -0
- package/dist/src/front/chrome/artifact-surface/ArtifactSurfacePane.d.ts +18 -0
- package/dist/src/front/chrome/artifact-surface/SurfaceShell.d.ts +84 -0
- package/dist/src/front/chrome/artifact-surface/__tests__/ArtifactSurfacePane.persistence.test.d.ts +1 -0
- package/dist/src/front/chrome/artifact-surface/__tests__/ArtifactSurfacePane.test.d.ts +1 -0
- package/dist/src/front/chrome/artifact-surface/__tests__/SurfaceShell.test.d.ts +1 -0
- package/dist/src/front/chrome/artifact-surface/__tests__/resolvePanelForPath.test.d.ts +1 -0
- package/dist/src/front/chrome/artifact-surface/definition.d.ts +12 -0
- package/dist/src/front/chrome/artifact-surface/surfaceShellHelpers.d.ts +10 -0
- package/dist/src/front/chrome/chat/ChatPanelHost.d.ts +16 -0
- package/dist/src/front/chrome/chat/DetachedChatPopover.d.ts +11 -0
- package/dist/src/front/chrome/chat/__tests__/ChatPanelHost.test.d.ts +1 -0
- package/dist/src/front/chrome/chat/composerStop.d.ts +19 -0
- package/dist/src/front/chrome/chat/definition.d.ts +16 -0
- package/dist/src/front/chrome/chat/types.d.ts +30 -0
- package/dist/src/front/chrome/empty-pane/EmptyPane.d.ts +5 -0
- package/dist/src/front/chrome/empty-pane/__tests__/EmptyPane.test.d.ts +1 -0
- package/dist/src/front/chrome/management/ManagementOverlaySurface.d.ts +16 -0
- package/dist/src/front/chrome/plugins/PluginsOverlay.d.ts +16 -0
- package/dist/src/front/chrome/session-list/SessionBrowser.d.ts +20 -0
- package/dist/src/front/chrome/session-list/__tests__/SessionBrowser.test.d.ts +1 -0
- package/dist/src/front/chrome/session-list/definition.d.ts +28 -0
- package/dist/src/front/chrome/skills/SkillsPage.d.ts +11 -0
- package/dist/src/front/chrome/skills/definition.d.ts +3 -0
- package/dist/src/front/chrome/workbench-left/WorkbenchLeftPane.d.ts +28 -0
- package/dist/src/front/chrome/workbench-left/__tests__/WorkbenchLeftPane.test.d.ts +1 -0
- package/dist/src/front/chrome/workbench-left/definition.d.ts +12 -0
- package/dist/src/front/chrome/workbench-left/useWorkspaceLeftPaneActions.d.ts +48 -0
- package/dist/src/front/components/CommandPalette.d.ts +21 -0
- package/dist/src/front/components/ControlTooltip.d.ts +12 -0
- package/dist/src/front/components/ErrorChip.d.ts +6 -0
- package/dist/src/front/components/PanelErrorBoundary.d.ts +22 -0
- package/dist/src/front/components/SessionList.d.ts +15 -0
- package/dist/src/front/components/WorkspaceLoadingState.d.ts +8 -0
- package/dist/src/front/components/__tests__/CommandPalette.test.d.ts +1 -0
- package/dist/src/front/components/__tests__/PanelErrorBoundary.test.d.ts +1 -0
- package/dist/src/front/components/__tests__/SessionList.test.d.ts +1 -0
- package/dist/src/front/components/__tests__/WorkspaceLoadingState.test.d.ts +1 -0
- package/dist/src/front/components/commandPaletteHelpers.d.ts +16 -0
- package/dist/src/front/components/recent/__tests__/migrate.test.d.ts +1 -0
- package/dist/src/front/components/recent/__tests__/recentStore.test.d.ts +1 -0
- package/dist/src/front/components/recent/index.d.ts +2 -0
- package/dist/src/front/components/recent/recentStore.d.ts +9 -0
- package/dist/src/front/components/recent/types.d.ts +23 -0
- package/dist/src/front/components/useCommandPaletteCatalogSearch.d.ts +7 -0
- package/dist/src/front/components/useCommandPaletteChrome.d.ts +14 -0
- package/dist/src/front/components/useCommandPaletteSelection.d.ts +15 -0
- package/dist/src/front/detached/DetachedPanelPopover.d.ts +2 -0
- package/dist/src/front/detached/detachedPanelTypes.d.ts +21 -0
- package/dist/src/front/detached/useDetachedPanelPosition.d.ts +10 -0
- package/dist/src/front/dock/DockviewShell.d.ts +6 -0
- package/dist/src/front/dock/PanelChrome.d.ts +16 -0
- package/dist/src/front/dock/ShadcnTab.d.ts +2 -0
- package/dist/src/front/dock/__tests__/dock.test.d.ts +1 -0
- package/dist/src/front/dock/index.d.ts +3 -0
- package/dist/src/front/dock/types.d.ts +69 -0
- package/dist/src/front/events/__tests__/agentBridge.test.d.ts +1 -0
- package/dist/src/front/events/__tests__/bus.test.d.ts +1 -0
- package/dist/src/front/events/__tests__/types.test.d.ts +1 -0
- package/dist/src/front/events/__tests__/useEvent.test.d.ts +1 -0
- package/dist/src/front/events/agentBridge.d.ts +1 -0
- package/dist/src/front/events/bus.d.ts +21 -0
- package/dist/src/front/events/index.d.ts +7 -0
- package/dist/src/front/events/types.d.ts +137 -0
- package/dist/src/front/events/useEvent.d.ts +7 -0
- package/dist/src/front/fullPage.d.ts +24 -0
- package/dist/src/front/hooks/__tests__/useArtifactPanels.test.d.ts +1 -0
- package/dist/src/front/hooks/__tests__/useArtifactRouting.test.d.ts +1 -0
- package/dist/src/front/hooks/__tests__/useEditorLifecycle.test.d.ts +1 -0
- package/dist/src/front/hooks/__tests__/useKeyboardShortcuts.test.d.ts +1 -0
- package/dist/src/front/hooks/__tests__/useViewportBreakpoint.test.d.ts +1 -0
- package/dist/src/front/hooks/index.d.ts +6 -0
- package/dist/src/front/hooks/useArtifactPanels.d.ts +14 -0
- package/dist/src/front/hooks/useArtifactRouting.d.ts +12 -0
- package/dist/src/front/hooks/useEditorLifecycle.d.ts +27 -0
- package/dist/src/front/hooks/useKeyboardShortcuts.d.ts +13 -0
- package/dist/src/front/hooks/useResponsiveSidebarCollapse.d.ts +6 -0
- package/dist/src/front/hooks/useViewportBreakpoint.d.ts +1 -0
- package/dist/src/front/layout/ChatLayout.d.ts +4 -0
- package/dist/src/front/layout/ChatPaneStage.d.ts +59 -0
- package/dist/src/front/layout/ChatPaneStageDock.d.ts +5 -0
- package/dist/src/front/layout/IdeLayout.d.ts +4 -0
- package/dist/src/front/layout/ResponsiveDockviewShell.d.ts +6 -0
- package/dist/src/front/layout/ThemeToggle.d.ts +10 -0
- package/dist/src/front/layout/TopBar.d.ts +17 -0
- package/dist/src/front/layout/__tests__/ChatPaneStageDock.test.d.ts +1 -0
- package/dist/src/front/layout/__tests__/TopBar.test.d.ts +1 -0
- package/dist/src/front/layout/__tests__/presets.test.d.ts +1 -0
- package/dist/src/front/layout/cornerChrome.d.ts +10 -0
- package/dist/src/front/layout/index.d.ts +9 -0
- package/dist/src/front/layout/mobileShell.d.ts +18 -0
- package/dist/src/front/layout/paneCollapseButton.d.ts +15 -0
- package/dist/src/front/layout/plugin-tabs/AppLeftOverlayChromeContext.d.ts +1 -0
- package/dist/src/front/layout/plugin-tabs/AppLeftPane.d.ts +75 -0
- package/dist/src/front/layout/plugin-tabs/AppLeftPaneActions.d.ts +13 -0
- package/dist/src/front/layout/plugin-tabs/AppLeftPaneHeader.d.ts +7 -0
- package/dist/src/front/layout/plugin-tabs/AppLeftPaneProjects.d.ts +18 -0
- package/dist/src/front/layout/plugin-tabs/AppLeftPaneSections.d.ts +6 -0
- package/dist/src/front/layout/plugin-tabs/AppLeftPaneSessionRow.d.ts +18 -0
- package/dist/src/front/layout/plugin-tabs/PluginTabsWorkspaceShell.d.ts +15 -0
- package/dist/src/front/layout/plugin-tabs/__tests__/AppLeftPane.test.d.ts +1 -0
- package/dist/src/front/layout/types.d.ts +40 -0
- package/dist/src/front/layout/useViewportWidth.d.ts +1 -0
- package/dist/src/front/lib/utils.d.ts +2 -0
- package/dist/src/front/lib/utils.test.d.ts +1 -0
- package/dist/src/front/lib/validation.d.ts +189 -0
- package/dist/src/front/plugin/PluginErrorBoundary.d.ts +21 -0
- package/dist/src/front/plugin/PluginErrorContext.d.ts +19 -0
- package/dist/src/front/plugin/PluginInspector.d.ts +8 -0
- package/dist/src/front/plugin/__tests__/CatalogRegistry.test.d.ts +1 -0
- package/dist/src/front/plugin/__tests__/PluginErrorBoundary.test.d.ts +1 -0
- package/dist/src/front/plugin/__tests__/PluginInspector.test.d.ts +1 -0
- package/dist/src/front/plugin/__tests__/useWorkspacePluginClient.test.d.ts +1 -0
- package/dist/src/front/plugin/index.d.ts +10 -0
- package/dist/src/front/plugin/useActivePanels.d.ts +2 -0
- package/dist/src/front/plugin/useCatalogs.d.ts +2 -0
- package/dist/src/front/plugin/useCommands.d.ts +2 -0
- package/dist/src/front/plugin/useWorkspacePluginClient.d.ts +29 -0
- package/dist/src/front/provider/WorkspaceProvider.d.ts +84 -0
- package/dist/src/front/provider/index.d.ts +9 -0
- package/dist/src/front/provider/workspaceTitle.d.ts +5 -0
- package/dist/src/front/registry/PanelRegistry.d.ts +39 -0
- package/dist/src/front/registry/PanelRenderStatusBoundary.d.ts +38 -0
- package/dist/src/front/registry/RegistryProvider.d.ts +21 -0
- package/dist/src/front/registry/WorkspaceSourceRegistry.d.ts +25 -0
- package/dist/src/front/registry/__tests__/registry.test.d.ts +1 -0
- package/dist/src/front/registry/__tests__/replaceByPluginId.test.d.ts +1 -0
- package/dist/src/front/registry/__tests__/subscribe.test.d.ts +1 -0
- package/dist/src/front/registry/coreRegistrations.d.ts +2 -0
- package/dist/src/front/registry/getFileIcon.d.ts +2 -0
- package/dist/src/front/registry/index.d.ts +7 -0
- package/dist/src/front/registry/types.d.ts +2 -0
- package/dist/src/front/shell/WorkspaceShellCapabilitiesContext.d.ts +1 -0
- package/dist/src/front/store/__tests__/store.property.test.d.ts +1 -0
- package/dist/src/front/store/__tests__/store.test.d.ts +1 -0
- package/dist/src/front/store/index.d.ts +35 -0
- package/dist/src/front/store/localStorageValues.d.ts +4 -0
- package/dist/src/front/store/selectors.d.ts +21 -0
- package/dist/src/front/store/types.d.ts +53 -0
- package/dist/src/front/testing/TestWorkspaceProvider.d.ts +13 -0
- package/dist/src/front/testing/__tests__/testing.test.d.ts +1 -0
- package/dist/src/front/testing/createLocalStorageSessions.d.ts +16 -0
- package/dist/src/front/testing/createMockBridge.d.ts +20 -0
- package/dist/src/front/testing/createMockPaneProps.d.ts +11 -0
- package/dist/src/front/testing/createMockRegistry.d.ts +7 -0
- package/dist/src/front/testing/createMockSessions.d.ts +24 -0
- package/dist/src/front/testing/e2e.d.ts +61 -0
- package/dist/src/front/testing/index.d.ts +17 -0
- package/dist/src/front/testing/mockApi.d.ts +9 -0
- package/dist/src/front/testing/renderPane.d.ts +20 -0
- package/dist/src/front/theme/codemirror-theme.d.ts +4 -0
- package/dist/src/front/theme/index.d.ts +1 -0
- package/dist/src/front/toast/__tests__/toast.test.d.ts +1 -0
- package/dist/src/front/toast/index.d.ts +1 -0
- package/dist/src/index.d.ts +90 -0
- package/dist/src/plugin.d.ts +19 -0
- package/dist/src/plugins/filesystemPlugin/front/ConflictBanner.d.ts +14 -0
- package/dist/src/plugins/filesystemPlugin/front/FilePaneShell.d.ts +73 -0
- package/dist/src/plugins/filesystemPlugin/front/__tests__/agentFileBridge.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/__tests__/filePanelBinding.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/__tests__/filesystemPlugin.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/__tests__/search.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/__tests__/useFilePane.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/agentFileBridge.d.ts +12 -0
- package/dist/src/plugins/filesystemPlugin/front/catalogs.d.ts +9 -0
- package/dist/src/plugins/filesystemPlugin/front/code-editor/CodeEditor.d.ts +10 -0
- package/dist/src/plugins/filesystemPlugin/front/code-editor/CodeEditorPane.d.ts +8 -0
- package/dist/src/plugins/filesystemPlugin/front/code-editor/__tests__/CodeEditor.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/code-editor/__tests__/CodeEditorPane.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/data/DataProvider.d.ts +16 -0
- package/dist/src/plugins/filesystemPlugin/front/data/__tests__/fetchClient.integration.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/data/__tests__/fetchClient.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/data/__tests__/fileRecords.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/data/__tests__/hooks.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/data/__tests__/useFileEventInvalidation.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/data/__tests__/useFileEventStream.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/data/__tests__/useFileUpload.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/data/fetchClient.d.ts +63 -0
- package/dist/src/plugins/filesystemPlugin/front/data/fileRecords.d.ts +34 -0
- package/dist/src/plugins/filesystemPlugin/front/data/filesystemErrorRedaction.d.ts +2 -0
- package/dist/src/plugins/filesystemPlugin/front/data/hooks.d.ts +48 -0
- package/dist/src/plugins/filesystemPlugin/front/data/index.d.ts +9 -0
- package/dist/src/plugins/filesystemPlugin/front/data/treePreloadCache.d.ts +3 -0
- package/dist/src/plugins/filesystemPlugin/front/data/types.d.ts +37 -0
- package/dist/src/plugins/filesystemPlugin/front/data/useFileEventInvalidation.d.ts +28 -0
- package/dist/src/plugins/filesystemPlugin/front/data/useFileEventStream.d.ts +27 -0
- package/dist/src/plugins/filesystemPlugin/front/data/useFileUpload.d.ts +12 -0
- package/dist/src/plugins/filesystemPlugin/front/empty-file-panel/EmptyFilePanel.d.ts +6 -0
- package/dist/src/plugins/filesystemPlugin/front/empty-file-panel/definition.d.ts +8 -0
- package/dist/src/plugins/filesystemPlugin/front/events.d.ts +6 -0
- package/dist/src/plugins/filesystemPlugin/front/file-tree/FileTree.d.ts +59 -0
- package/dist/src/plugins/filesystemPlugin/front/file-tree/FileTreeView.d.ts +83 -0
- package/dist/src/plugins/filesystemPlugin/front/file-tree/__tests__/FileTree.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/file-tree/__tests__/FileTreePane.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/file-tree/__tests__/copyToClipboard.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/file-tree/clipboard.d.ts +6 -0
- package/dist/src/plugins/filesystemPlugin/front/file-tree/dndManager.d.ts +8 -0
- package/dist/src/plugins/filesystemPlugin/front/file-tree/treeModel.d.ts +20 -0
- package/dist/src/plugins/filesystemPlugin/front/filePanelBinding.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/html-viewer/HtmlViewer.d.ts +18 -0
- package/dist/src/plugins/filesystemPlugin/front/html-viewer/HtmlViewer.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/html-viewer/HtmlViewerPane.d.ts +7 -0
- package/dist/src/plugins/filesystemPlugin/front/index.d.ts +11 -0
- package/dist/src/plugins/filesystemPlugin/front/markdown-editor/MarkdownEditor.d.ts +44 -0
- package/dist/src/plugins/filesystemPlugin/front/markdown-editor/MarkdownEditorPane.d.ts +8 -0
- package/dist/src/plugins/filesystemPlugin/front/markdown-editor/ResizableImage.d.ts +10 -0
- package/dist/src/plugins/filesystemPlugin/front/markdown-editor/__tests__/MarkdownEditor.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/markdown-editor/__tests__/MarkdownEditorPane.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/media-viewer/MediaViewer.d.ts +9 -0
- package/dist/src/plugins/filesystemPlugin/front/media-viewer/MediaViewer.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/media-viewer/MediaViewerPane.d.ts +8 -0
- package/dist/src/plugins/filesystemPlugin/front/media-viewer/useMediaViewerReload.d.ts +8 -0
- package/dist/src/plugins/filesystemPlugin/front/media-viewer/useMediaViewerReload.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/search.d.ts +5 -0
- package/dist/src/plugins/filesystemPlugin/front/search.test.d.ts +1 -0
- package/dist/src/plugins/filesystemPlugin/front/surfaceResolver.d.ts +10 -0
- package/dist/src/plugins/filesystemPlugin/front/useFilePane.d.ts +61 -0
- package/dist/src/plugins/filesystemPlugin/shared/constants.d.ts +12 -0
- package/dist/src/plugins/filesystemPlugin/shared/events.d.ts +39 -0
- package/dist/src/shared/__tests__/filesystem.test.d.ts +1 -0
- package/dist/src/shared/__tests__/telemetry.test.d.ts +1 -0
- package/dist/src/shared/__tests__/workspaceBridgeRpc.test.d.ts +1 -0
- package/dist/src/shared/index.d.ts +25 -0
- package/dist/src/shared/plugins/CatalogRegistry.d.ts +28 -0
- package/dist/src/shared/plugins/CommandRegistry.d.ts +23 -0
- package/dist/src/shared/plugins/SurfaceResolverRegistry.d.ts +24 -0
- package/dist/src/shared/plugins/__tests__/bootstrap.test.d.ts +1 -0
- package/dist/src/shared/plugins/__tests__/frontFactory.test.d.ts +1 -0
- package/dist/src/shared/plugins/__tests__/manifest.test.d.ts +1 -0
- package/dist/src/shared/plugins/__tests__/uiBridgeRegistry.test.d.ts +1 -0
- package/dist/src/shared/plugins/appLeftOverlayChrome.d.ts +10 -0
- package/dist/src/shared/plugins/bootstrap.d.ts +41 -0
- package/dist/src/shared/plugins/errors.d.ts +5 -0
- package/dist/src/shared/plugins/frontFactory.d.ts +166 -0
- package/dist/src/shared/plugins/index.d.ts +5 -0
- package/dist/src/shared/plugins/manifest.d.ts +58 -0
- package/dist/src/shared/plugins/runtimePluginTypes.d.ts +51 -0
- package/dist/src/shared/plugins/types.d.ts +84 -0
- package/dist/src/shared/plugins/uiBridgeRegistry.d.ts +44 -0
- package/dist/src/shared/plugins/workspaceShellCapabilities.d.ts +44 -0
- package/dist/src/shared/telemetry.d.ts +11 -0
- package/dist/src/shared/types/agent-tool.d.ts +30 -0
- package/dist/src/shared/types/boring-core-front.d.ts +2 -0
- package/dist/src/shared/types/filesystem.d.ts +15 -0
- package/dist/src/shared/types/panel.d.ts +123 -0
- package/dist/src/shared/types/surface.d.ts +42 -0
- package/dist/src/shared/ui-bridge.d.ts +77 -0
- package/dist/src/shared/workspace-bridge-rpc.d.ts +122 -0
- package/dist/{surface-aLQ_Hryw.d.ts → surface-h6IgrsK5.d.ts} +1 -1
- package/dist/testing-e2e.d.ts +2 -73
- package/dist/testing.d.ts +2 -433
- package/dist/testing.js +11 -11
- package/dist/{ui-bridge-D2eO3epD.d.ts → ui-bridge-C4CyIrQA.d.ts} +1 -1
- package/dist/{workspace-bridge-rpc-A98RA5o6.d.ts → workspace-bridge-rpc-BHsOJMlW.d.ts} +1 -1
- package/dist/workspace.css +21 -0
- package/dist/workspace.d.ts +2 -2649
- package/dist/workspace.js +40 -40
- package/package.json +5 -5
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface BoringChartTheme {
|
|
3
|
+
background: string;
|
|
4
|
+
foreground: string;
|
|
5
|
+
mutedForeground: string;
|
|
6
|
+
border: string;
|
|
7
|
+
grid: string;
|
|
8
|
+
tooltipBackground: string;
|
|
9
|
+
tooltipBorder: string;
|
|
10
|
+
tooltipForeground: string;
|
|
11
|
+
palette: readonly string[];
|
|
12
|
+
}
|
|
13
|
+
export declare const boringChartPalette: readonly string[];
|
|
14
|
+
export declare const boringChartTheme: BoringChartTheme;
|
|
15
|
+
export declare function getBoringChartColor(index: number, theme?: BoringChartTheme): string;
|
|
16
|
+
export declare function defaultBoringChartValueFormatter(value: unknown): string;
|
|
17
|
+
export type BoringChartValueFormatter = (value: unknown) => string;
|
|
18
|
+
export interface BoringTooltipPayloadItem {
|
|
19
|
+
color?: string;
|
|
20
|
+
dataKey?: string | number;
|
|
21
|
+
name?: string | number;
|
|
22
|
+
value?: unknown;
|
|
23
|
+
}
|
|
24
|
+
export interface BoringTooltipProps {
|
|
25
|
+
active?: boolean;
|
|
26
|
+
payload?: BoringTooltipPayloadItem[];
|
|
27
|
+
label?: unknown;
|
|
28
|
+
valueFormatter?: BoringChartValueFormatter;
|
|
29
|
+
}
|
|
30
|
+
export declare function BoringTooltip({ active, payload, label, valueFormatter, }: BoringTooltipProps): import("react").JSX.Element | null;
|
|
31
|
+
export interface BoringChartFrameProps {
|
|
32
|
+
title?: string;
|
|
33
|
+
subtitle?: string;
|
|
34
|
+
source?: string;
|
|
35
|
+
height?: number | string;
|
|
36
|
+
className?: string;
|
|
37
|
+
children: ReactNode;
|
|
38
|
+
}
|
|
39
|
+
export declare function BoringChartFrame({ title, subtitle, source, height, className, children, }: BoringChartFrameProps): import("react").JSX.Element;
|
|
40
|
+
export declare const boringCartesianAxisProps: {
|
|
41
|
+
readonly tick: {
|
|
42
|
+
readonly fill: string;
|
|
43
|
+
readonly fontSize: 11;
|
|
44
|
+
};
|
|
45
|
+
readonly axisLine: {
|
|
46
|
+
readonly stroke: string;
|
|
47
|
+
};
|
|
48
|
+
readonly tickLine: {
|
|
49
|
+
readonly stroke: string;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export declare const boringCartesianGridProps: {
|
|
53
|
+
readonly stroke: string;
|
|
54
|
+
readonly strokeDasharray: "3 3";
|
|
55
|
+
readonly vertical: false;
|
|
56
|
+
};
|
|
57
|
+
export declare const boringLegendProps: {
|
|
58
|
+
readonly wrapperStyle: {
|
|
59
|
+
readonly color: string;
|
|
60
|
+
readonly fontSize: 12;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
export declare const boringLineProps: {
|
|
64
|
+
readonly type: "monotone";
|
|
65
|
+
readonly strokeWidth: 2;
|
|
66
|
+
readonly dot: false;
|
|
67
|
+
readonly activeDot: {
|
|
68
|
+
readonly r: 4;
|
|
69
|
+
};
|
|
70
|
+
readonly connectNulls: true;
|
|
71
|
+
readonly isAnimationActive: false;
|
|
72
|
+
};
|
|
73
|
+
export declare const boringAreaProps: {
|
|
74
|
+
readonly type: "monotone";
|
|
75
|
+
readonly strokeWidth: 2;
|
|
76
|
+
readonly dot: false;
|
|
77
|
+
readonly connectNulls: true;
|
|
78
|
+
readonly isAnimationActive: false;
|
|
79
|
+
};
|
|
80
|
+
export declare const boringBarProps: {
|
|
81
|
+
readonly radius: [number, number, number, number];
|
|
82
|
+
readonly isAnimationActive: false;
|
|
83
|
+
};
|
|
84
|
+
export declare const boringPieProps: {
|
|
85
|
+
readonly innerRadius: "58%";
|
|
86
|
+
readonly outerRadius: "82%";
|
|
87
|
+
readonly paddingAngle: 2;
|
|
88
|
+
readonly isAnimationActive: false;
|
|
89
|
+
};
|
|
90
|
+
export declare const boringReferenceAreaProps: {
|
|
91
|
+
readonly fill: "oklch(from var(--accent) l c h / 0.20)";
|
|
92
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DockviewApi } from 'dockview-react';
|
|
2
|
+
import { SerializedLayout } from '../../dock';
|
|
3
|
+
export interface ArtifactSurfacePaneProps {
|
|
4
|
+
visible?: boolean;
|
|
5
|
+
storageKey?: string;
|
|
6
|
+
allowedPanels?: string[];
|
|
7
|
+
persistedLayout?: SerializedLayout;
|
|
8
|
+
onLayoutChange?: (layout: SerializedLayout) => void;
|
|
9
|
+
onReady?: (api: DockviewApi) => void;
|
|
10
|
+
prefixHeaderActions?: React.FunctionComponent<unknown>;
|
|
11
|
+
rightHeaderActions?: React.FunctionComponent<unknown>;
|
|
12
|
+
watermarkComponent?: React.FunctionComponent<unknown>;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function ArtifactSurfacePane({ visible, storageKey, allowedPanels, persistedLayout, onLayoutChange, onReady, prefixHeaderActions, rightHeaderActions, watermarkComponent, className, }: ArtifactSurfacePaneProps): import("react").JSX.Element | null;
|
|
16
|
+
export declare namespace ArtifactSurfacePane {
|
|
17
|
+
var defaultAllowedPanels: string[];
|
|
18
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { FilesystemId } from '../../../shared/types/filesystem';
|
|
2
|
+
import { SurfaceOpenRequest } from '../../../shared/types/surface';
|
|
3
|
+
export { normalizeSurfaceOpenRequest, resolvePanelForPath } from './surfaceShellHelpers';
|
|
4
|
+
export interface SurfaceShellTab {
|
|
5
|
+
id: string;
|
|
6
|
+
/** Registered panel component id for this tab. May differ from the tab instance id. */
|
|
7
|
+
component?: string;
|
|
8
|
+
title: string;
|
|
9
|
+
params?: Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
export interface SurfaceShellSnapshot {
|
|
12
|
+
openTabs: SurfaceShellTab[];
|
|
13
|
+
activeTab: string | null;
|
|
14
|
+
}
|
|
15
|
+
export interface OpenPanelConfig {
|
|
16
|
+
/** Panel instance id. If a panel with this id is already open, it's re-activated instead of duplicated. */
|
|
17
|
+
id: string;
|
|
18
|
+
/** Registered component id (must match a `PanelConfig.id` in WorkspaceProvider's panel registry). */
|
|
19
|
+
component: string;
|
|
20
|
+
/** Tab title. Defaults to `id`. */
|
|
21
|
+
title?: string;
|
|
22
|
+
/** Arbitrary params passed to the pane component. */
|
|
23
|
+
params?: Record<string, unknown>;
|
|
24
|
+
}
|
|
25
|
+
export interface SurfaceShellOpenFileOptions {
|
|
26
|
+
filesystem?: FilesystemId;
|
|
27
|
+
mode?: "view" | "edit" | "diff";
|
|
28
|
+
}
|
|
29
|
+
export interface SurfaceShellApi {
|
|
30
|
+
/** Open a file in the workbench. Idempotent — re-activates an existing pane for the same filesystem/path. */
|
|
31
|
+
openFile: (path: string, options?: SurfaceShellOpenFileOptions) => void;
|
|
32
|
+
/** Open a plugin-defined surface target through the registered surface resolvers. */
|
|
33
|
+
openSurface: (request: SurfaceOpenRequest) => void;
|
|
34
|
+
/**
|
|
35
|
+
* Open a non-file pane in the workbench. Idempotent on `id` —
|
|
36
|
+
* re-activates an existing panel with the same id rather than duplicating.
|
|
37
|
+
* Use this for app-specific panes (charts, dashboards, log viewers, …) that
|
|
38
|
+
* aren't anchored to a filesystem path.
|
|
39
|
+
*/
|
|
40
|
+
openPanel: (config: OpenPanelConfig) => void;
|
|
41
|
+
/** Hide the workbench's left sources/files pane while leaving the workbench open. */
|
|
42
|
+
closeWorkbenchLeftPane: () => void;
|
|
43
|
+
/** Reveal/select a file-tree path without opening an editor pane. */
|
|
44
|
+
expandToFile: (path: string) => void;
|
|
45
|
+
/** Current snapshot of open tabs + active tab. */
|
|
46
|
+
getSnapshot: () => SurfaceShellSnapshot;
|
|
47
|
+
}
|
|
48
|
+
export interface SurfaceShellProps {
|
|
49
|
+
rootDir?: string;
|
|
50
|
+
sidebarDefaultWidth?: number;
|
|
51
|
+
sidebarMinWidth?: number;
|
|
52
|
+
sidebarMaxWidth?: number;
|
|
53
|
+
storageKey?: string;
|
|
54
|
+
/** Called once when the surface dockview becomes ready, with an imperative handle. */
|
|
55
|
+
onReady?: (api: SurfaceShellApi) => void;
|
|
56
|
+
/** Called on every panel add/remove/active-change with the current snapshot. */
|
|
57
|
+
onChange?: (snapshot: SurfaceShellSnapshot) => void;
|
|
58
|
+
/** Optional close action for hosts that model the workbench as collapsible. */
|
|
59
|
+
onClose?: () => void;
|
|
60
|
+
/** Render the built-in top-right close affordance. Hosts can set false when they provide their own chrome. */
|
|
61
|
+
showCloseAction?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Extra panel ids (registered via WorkspaceProvider's `panels` prop) that
|
|
64
|
+
* this workbench is allowed to render. Defaults to the built-in
|
|
65
|
+
* editor/viewer panels only. Pass app-specific pane ids here so calls
|
|
66
|
+
* like `surface.openPanel({ component: "chart-canvas" })` actually
|
|
67
|
+
* instantiate — without this, dockview's components map filters them
|
|
68
|
+
* out and you get an empty tab. Two-layer defense: SurfaceShell.openPanel
|
|
69
|
+
* validates against the registry (loud throw on unknown), AND the
|
|
70
|
+
* dockview allowlist below filters which registered panels can mount
|
|
71
|
+
* inside THIS surface (so a host can gate panels per shell instance).
|
|
72
|
+
*/
|
|
73
|
+
extraPanels?: string[];
|
|
74
|
+
defaultLeftTab?: string;
|
|
75
|
+
onReloadAgentPlugins?: () => void | Promise<unknown>;
|
|
76
|
+
initialPanels?: Array<{
|
|
77
|
+
id: string;
|
|
78
|
+
component: string;
|
|
79
|
+
title?: string;
|
|
80
|
+
params?: Record<string, unknown>;
|
|
81
|
+
}>;
|
|
82
|
+
className?: string;
|
|
83
|
+
}
|
|
84
|
+
export declare function SurfaceShell({ rootDir, sidebarDefaultWidth, sidebarMinWidth, sidebarMaxWidth, storageKey, onReady, onChange, onClose, showCloseAction, extraPanels, defaultLeftTab, onReloadAgentPlugins, initialPanels, className, }: SurfaceShellProps): import("react").JSX.Element;
|
package/dist/src/front/chrome/artifact-surface/__tests__/ArtifactSurfacePane.persistence.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PaneProps } from '../../registry/types';
|
|
2
|
+
import { SurfaceShellProps } from './SurfaceShell';
|
|
3
|
+
import { FunctionComponentElement } from 'react';
|
|
4
|
+
declare function ArtifactSurfacePanel({ params }: PaneProps<SurfaceShellProps | undefined>): FunctionComponentElement<SurfaceShellProps>;
|
|
5
|
+
export declare const artifactSurfacePanel: {
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
component: typeof ArtifactSurfacePanel;
|
|
9
|
+
placement: string;
|
|
10
|
+
source: string;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DockviewApi, IDockviewPanel } from 'dockview-react';
|
|
2
|
+
import { SurfaceOpenRequest, SurfacePanelResolution, SurfaceResolverConfig } from '../../../shared/types/surface';
|
|
3
|
+
import { FilesystemId } from '../../../shared';
|
|
4
|
+
export declare function resolvePanelForPath(path: string, registry: {
|
|
5
|
+
resolve: SurfaceResolverConfig["resolve"];
|
|
6
|
+
}): SurfacePanelResolution | undefined;
|
|
7
|
+
export declare function normalizeWorkbenchPath(path: string): string;
|
|
8
|
+
export declare function findOpenFilePanel(api: DockviewApi, path: string, filesystem?: FilesystemId): IDockviewPanel | undefined;
|
|
9
|
+
export declare function normalizeSurfaceOpenRequest(request: SurfaceOpenRequest): SurfaceOpenRequest;
|
|
10
|
+
export declare function surfacePanelId(request: SurfaceOpenRequest, resolved: SurfacePanelResolution): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DispatchContext } from '../../bridge';
|
|
2
|
+
import { WorkspaceChatPanelProps } from './types';
|
|
3
|
+
export interface ChatPanelHostShellProps {
|
|
4
|
+
/** Headers forwarded to the embedded ChatPanel's agent API requests. */
|
|
5
|
+
requestHeaders?: Record<string, string>;
|
|
6
|
+
/** Endpoint base for agent → UI commands. Empty string = same origin. */
|
|
7
|
+
bridgeEndpoint?: string | null;
|
|
8
|
+
/**
|
|
9
|
+
* Agent → UI command dispatch context (surface handle, open/close workbench,
|
|
10
|
+
* and the pending-op queue). Built once by the host and shared by every
|
|
11
|
+
* dispatch site here. Absent when the workbench surface isn't available.
|
|
12
|
+
*/
|
|
13
|
+
surfaceDispatch?: DispatchContext;
|
|
14
|
+
}
|
|
15
|
+
export type ChatPanelHostProps = WorkspaceChatPanelProps & ChatPanelHostShellProps;
|
|
16
|
+
export declare function ChatPanelHost(props: ChatPanelHostProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DetachedPanelPosition } from '../../detached/detachedPanelTypes';
|
|
2
|
+
import { ChatPanelHostProps } from './ChatPanelHost';
|
|
3
|
+
export declare function DetachedChatPopover({ sessionId, title, chatParams, initialPosition, onClose, onDock, composingEnabled, }: {
|
|
4
|
+
sessionId: string;
|
|
5
|
+
title: string;
|
|
6
|
+
chatParams: ChatPanelHostProps;
|
|
7
|
+
initialPosition: DetachedPanelPosition;
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
onDock: () => void;
|
|
10
|
+
composingEnabled?: boolean;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const WORKSPACE_COMPOSER_STOP_EVENT: "boring:workspace-composer-stop";
|
|
2
|
+
export declare const WORKSPACE_COMPOSER_STOP_REASONS: {
|
|
3
|
+
readonly sessionSwitch: "session-switch";
|
|
4
|
+
readonly userStop: "user-stop";
|
|
5
|
+
};
|
|
6
|
+
export type WorkspaceComposerStopReason = typeof WORKSPACE_COMPOSER_STOP_REASONS[keyof typeof WORKSPACE_COMPOSER_STOP_REASONS];
|
|
7
|
+
export type WorkspaceComposerStopDetail = {
|
|
8
|
+
sessionId?: string;
|
|
9
|
+
reason: WorkspaceComposerStopReason;
|
|
10
|
+
};
|
|
11
|
+
export declare function emitWorkspaceComposerStop(detail: WorkspaceComposerStopDetail): void;
|
|
12
|
+
export declare function isWorkspaceComposerStopDetail(value: unknown): value is WorkspaceComposerStopDetail;
|
|
13
|
+
export declare function isWorkspaceComposerStopReason(value: unknown): value is WorkspaceComposerStopReason;
|
|
14
|
+
export type WorkspaceComposerStopMatchOptions = {
|
|
15
|
+
fallbackSessionId?: string | null;
|
|
16
|
+
ignoredReasons?: readonly WorkspaceComposerStopReason[];
|
|
17
|
+
};
|
|
18
|
+
export declare function workspaceComposerStopTargetSessionId(detail: unknown, fallbackSessionId?: string | null): string | undefined;
|
|
19
|
+
export declare function workspaceComposerStopAppliesToSession(detail: unknown, sessionId: string, options?: WorkspaceComposerStopMatchOptions): boolean;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PaneProps } from '../../registry/types';
|
|
2
|
+
import { ChatPanelHostShellProps, ChatPanelHostProps } from './ChatPanelHost';
|
|
3
|
+
import { WorkspaceChatPanelProps } from './types';
|
|
4
|
+
import { FunctionComponentElement } from 'react';
|
|
5
|
+
type ChatPaneParams = (Partial<WorkspaceChatPanelProps> & ChatPanelHostShellProps & {
|
|
6
|
+
debug?: boolean;
|
|
7
|
+
}) | undefined;
|
|
8
|
+
declare function ChatPane({ params }: PaneProps<ChatPaneParams>): FunctionComponentElement<ChatPanelHostProps>;
|
|
9
|
+
export declare const chatPanel: {
|
|
10
|
+
id: string;
|
|
11
|
+
title: string;
|
|
12
|
+
component: typeof ChatPane;
|
|
13
|
+
placement: string;
|
|
14
|
+
source: string;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { PiChatPanelProps } from '@hachej/boring-agent/front';
|
|
2
|
+
import { FilesystemId } from '../../../shared/types/filesystem';
|
|
3
|
+
import { ComponentType } from 'react';
|
|
4
|
+
import { WorkspaceAttentionBlocker } from '../../provider';
|
|
5
|
+
import { SurfaceShellApi } from '../artifact-surface/SurfaceShell';
|
|
6
|
+
export type OpenArtifactHandler = (path: string, options?: {
|
|
7
|
+
filesystem?: FilesystemId;
|
|
8
|
+
}) => void;
|
|
9
|
+
export interface WorkspaceChatPanelProps extends Omit<PiChatPanelProps<WorkspaceAttentionBlocker>, "onOpenArtifact"> {
|
|
10
|
+
sessionId: string;
|
|
11
|
+
onOpenArtifact?: OpenArtifactHandler;
|
|
12
|
+
/** Endpoint base for agent → visible-workbench UI commands. */
|
|
13
|
+
bridgeEndpoint?: string | null;
|
|
14
|
+
/** Imperative handle getter for the visible workbench surface. */
|
|
15
|
+
getSurface?: () => SurfaceShellApi | null;
|
|
16
|
+
/** Reads whether the visible workbench surface should be open. */
|
|
17
|
+
isWorkbenchOpen?: () => boolean;
|
|
18
|
+
/** Opens the visible workbench surface before dispatching a command. */
|
|
19
|
+
openWorkbench?: () => void;
|
|
20
|
+
/** Opens the visible workbench sources/file-tree pane before dispatching a reveal. */
|
|
21
|
+
openWorkbenchSources?: () => void;
|
|
22
|
+
/** Closes the visible workbench surface after an ephemeral command finishes. */
|
|
23
|
+
closeWorkbench?: () => void;
|
|
24
|
+
/** Host-injected composer blockers (for shell policies such as detached read-only chat). */
|
|
25
|
+
composerBlockers?: WorkspaceAttentionBlocker[];
|
|
26
|
+
onComposerStop?: () => void;
|
|
27
|
+
onComposerBlockerAction?: (blocker: WorkspaceAttentionBlocker, action: string) => void;
|
|
28
|
+
onData?: (part: unknown) => void;
|
|
29
|
+
}
|
|
30
|
+
export type WorkspaceChatPanelComponent = ComponentType<any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface ManagementOverlaySurfaceProps {
|
|
3
|
+
part: string;
|
|
4
|
+
icon: ReactNode;
|
|
5
|
+
title: string;
|
|
6
|
+
description: string;
|
|
7
|
+
actions?: ReactNode;
|
|
8
|
+
headerInsetStart?: boolean;
|
|
9
|
+
headerInsetEnd?: boolean;
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Shared shell for app-left management overlays (Skills, Plugins, and host/
|
|
14
|
+
* plugin-provided tools) so they use one header/content surface contract.
|
|
15
|
+
*/
|
|
16
|
+
export declare function ManagementOverlaySurface({ part, icon, title, description, actions, headerInsetStart, headerInsetEnd, children, }: ManagementOverlaySurfaceProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface PluginsOverlayProps {
|
|
2
|
+
onClose: () => void;
|
|
3
|
+
/** Reload external/runtime plugins. The host owns the exact session-aware
|
|
4
|
+
* reload payload; this overlay owns only the chrome. */
|
|
5
|
+
onReloadExternalPlugins?: () => Promise<string | undefined> | string | undefined;
|
|
6
|
+
/** Reserve room for shell-level chrome that floats over collapsed app nav. */
|
|
7
|
+
headerInsetStart?: boolean;
|
|
8
|
+
/** Reserve room for shell-level top-right controls floating over the overlay. */
|
|
9
|
+
headerInsetEnd?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* External plugins overlay — hosted as a chat overlay, not as a workbench panel.
|
|
13
|
+
* Lists only runtime/external plugins; statically bundled app plugins (Deck,
|
|
14
|
+
* Questions, etc.) are intentionally hidden here.
|
|
15
|
+
*/
|
|
16
|
+
export declare function PluginsOverlay({ onClose, onReloadExternalPlugins, headerInsetStart, headerInsetEnd }: PluginsOverlayProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SessionItem } from '../../components/SessionList';
|
|
2
|
+
export interface SessionBrowserProps {
|
|
3
|
+
sessions: SessionItem[];
|
|
4
|
+
activeId?: string | null;
|
|
5
|
+
/** Session ids currently open as chat panes, in pane order. */
|
|
6
|
+
openIds?: string[];
|
|
7
|
+
/** Session ids the user pinned; surfaced in a Pinned section on top. */
|
|
8
|
+
pinnedIds?: string[];
|
|
9
|
+
onTogglePin?: (id: string) => void;
|
|
10
|
+
onSwitch?: (id: string) => void;
|
|
11
|
+
onOpenAsTab?: (id: string) => void;
|
|
12
|
+
onCreate?: () => void;
|
|
13
|
+
onDelete?: (id: string) => void;
|
|
14
|
+
onLoadMore?: () => void;
|
|
15
|
+
hasMore?: boolean;
|
|
16
|
+
loadingMore?: boolean;
|
|
17
|
+
onClose?: () => void;
|
|
18
|
+
className?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function SessionBrowser({ sessions, activeId, openIds, pinnedIds, onTogglePin, onSwitch, onOpenAsTab, onCreate, onDelete, onLoadMore, hasMore, loadingMore, onClose, className, }: SessionBrowserProps): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PaneProps } from '../../registry/types';
|
|
2
|
+
import { SessionItem } from '../../components/SessionList';
|
|
3
|
+
import { FunctionComponentElement } from 'react';
|
|
4
|
+
import { SessionBrowserProps } from './SessionBrowser';
|
|
5
|
+
interface SessionListPaneParams {
|
|
6
|
+
sessions?: SessionItem[];
|
|
7
|
+
activeId?: string | null;
|
|
8
|
+
openIds?: string[];
|
|
9
|
+
pinnedIds?: string[];
|
|
10
|
+
onTogglePin?: (id: string) => void;
|
|
11
|
+
onSwitch?: (id: string) => void;
|
|
12
|
+
onOpenAsTab?: (id: string) => void;
|
|
13
|
+
onCreate?: () => void;
|
|
14
|
+
onDelete?: (id: string) => void;
|
|
15
|
+
onLoadMore?: () => void;
|
|
16
|
+
hasMore?: boolean;
|
|
17
|
+
loadingMore?: boolean;
|
|
18
|
+
onClose?: () => void;
|
|
19
|
+
}
|
|
20
|
+
declare function SessionListPane({ params }: PaneProps<SessionListPaneParams | undefined>): FunctionComponentElement<SessionBrowserProps>;
|
|
21
|
+
export declare const sessionListPanel: {
|
|
22
|
+
id: string;
|
|
23
|
+
title: string;
|
|
24
|
+
component: typeof SessionListPane;
|
|
25
|
+
placement: string;
|
|
26
|
+
source: string;
|
|
27
|
+
};
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PaneProps } from '../../registry/types';
|
|
2
|
+
export type SkillsPageProps = Partial<PaneProps> & {
|
|
3
|
+
/** When provided, renders a close control in the header — used when Skills
|
|
4
|
+
* is hosted as a chat left overlay rather than a workspace panel. */
|
|
5
|
+
onClose?: () => void;
|
|
6
|
+
/** Reserve room for shell-level chrome that floats over collapsed app nav. */
|
|
7
|
+
headerInsetStart?: boolean;
|
|
8
|
+
/** Reserve room for shell-level top-right controls floating over the overlay. */
|
|
9
|
+
headerInsetEnd?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function SkillsPage({ onClose, headerInsetStart, headerInsetEnd }: SkillsPageProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FileTreeBridge } from '../../bridge/types';
|
|
2
|
+
import { WorkbenchLeftTabId, WorkspaceLeftPaneOpenPanelConfig as WorkbenchLeftPaneOpenPanelConfig } from './useWorkspaceLeftPaneActions';
|
|
3
|
+
export type { WorkbenchLeftTabId, WorkspaceLeftPaneOpenPanelConfig as WorkbenchLeftPaneOpenPanelConfig } from './useWorkspaceLeftPaneActions';
|
|
4
|
+
export interface WorkbenchLeftPaneProps {
|
|
5
|
+
rootDir?: string;
|
|
6
|
+
bridge?: FileTreeBridge;
|
|
7
|
+
defaultTab?: WorkbenchLeftTabId;
|
|
8
|
+
activeTab?: WorkbenchLeftTabId;
|
|
9
|
+
/**
|
|
10
|
+
* Id of the currently-focused surface tab (dockview's active panel). Drives the
|
|
11
|
+
* accent for "workspace-page" rail icons so a page only glows while it's the open
|
|
12
|
+
* tab — `activeTab` is the rail's own click state and goes stale on tab switches.
|
|
13
|
+
*/
|
|
14
|
+
activePanelId?: string | null;
|
|
15
|
+
onActiveTabChange?: (tab: WorkbenchLeftTabId) => void;
|
|
16
|
+
revealFileTreeRequest?: {
|
|
17
|
+
path: string;
|
|
18
|
+
seq: number;
|
|
19
|
+
} | null;
|
|
20
|
+
onOpenPanel?: (config: WorkbenchLeftPaneOpenPanelConfig) => void;
|
|
21
|
+
onReloadAgentPlugins?: () => void | Promise<unknown>;
|
|
22
|
+
onCollapse?: () => void;
|
|
23
|
+
onExpand?: (tab?: WorkbenchLeftTabId) => void;
|
|
24
|
+
onCloseSourcePane?: () => void;
|
|
25
|
+
railOnly?: boolean;
|
|
26
|
+
className?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function WorkbenchLeftPane({ rootDir, bridge, defaultTab, activeTab: controlledActiveTab, activePanelId, onActiveTabChange, revealFileTreeRequest, onOpenPanel, onReloadAgentPlugins, onCollapse, onExpand, onCloseSourcePane, railOnly, className, }: WorkbenchLeftPaneProps): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PaneProps } from '../../registry/types';
|
|
2
|
+
import { WorkbenchLeftPaneProps } from './WorkbenchLeftPane';
|
|
3
|
+
import { FunctionComponentElement } from 'react';
|
|
4
|
+
declare function WorkbenchLeftPanel({ params }: PaneProps<WorkbenchLeftPaneProps | undefined>): FunctionComponentElement<WorkbenchLeftPaneProps>;
|
|
5
|
+
export declare const workbenchLeftPanel: {
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
component: typeof WorkbenchLeftPanel;
|
|
9
|
+
placement: string;
|
|
10
|
+
source: string;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { PanelConfig, WorkspaceSourceConfig } from '../../registry/types';
|
|
3
|
+
export type WorkbenchLeftTabId = string;
|
|
4
|
+
export interface WorkspaceLeftPaneOpenPanelConfig {
|
|
5
|
+
id: string;
|
|
6
|
+
component: string;
|
|
7
|
+
title?: string;
|
|
8
|
+
params?: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
export interface UseWorkspaceLeftPaneActionsOptions {
|
|
11
|
+
defaultTab?: WorkbenchLeftTabId;
|
|
12
|
+
activeTab?: WorkbenchLeftTabId;
|
|
13
|
+
activePanelId?: string | null;
|
|
14
|
+
onActiveTabChange?: (tab: WorkbenchLeftTabId) => void;
|
|
15
|
+
revealFileTreeRequest?: {
|
|
16
|
+
path: string;
|
|
17
|
+
seq: number;
|
|
18
|
+
} | null;
|
|
19
|
+
onOpenPanel?: (config: WorkspaceLeftPaneOpenPanelConfig) => void;
|
|
20
|
+
onReloadAgentPlugins?: () => void | Promise<unknown>;
|
|
21
|
+
onExpand?: (tab?: WorkbenchLeftTabId) => void;
|
|
22
|
+
onCloseSourcePane?: () => void;
|
|
23
|
+
railOnly?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface WorkspaceLeftPaneAction {
|
|
26
|
+
id: WorkbenchLeftTabId;
|
|
27
|
+
title: string;
|
|
28
|
+
icon: ReactNode;
|
|
29
|
+
kind: "source" | "workspace-page";
|
|
30
|
+
active: boolean;
|
|
31
|
+
select: () => void;
|
|
32
|
+
reloadAgentPlugins?: () => void | Promise<unknown>;
|
|
33
|
+
}
|
|
34
|
+
interface WorkbenchLeftPaneActionModel extends WorkspaceLeftPaneAction {
|
|
35
|
+
source?: WorkspaceSourceConfig;
|
|
36
|
+
panel?: PanelConfig;
|
|
37
|
+
focused: boolean;
|
|
38
|
+
}
|
|
39
|
+
interface WorkbenchLeftPaneModel {
|
|
40
|
+
actions: WorkbenchLeftPaneActionModel[];
|
|
41
|
+
publicActions: WorkspaceLeftPaneAction[];
|
|
42
|
+
activeTab: WorkbenchLeftTabId;
|
|
43
|
+
activeAction?: WorkbenchLeftPaneActionModel;
|
|
44
|
+
activeSource?: WorkspaceSourceConfig;
|
|
45
|
+
}
|
|
46
|
+
export declare function useWorkspaceLeftPaneActions(options?: UseWorkspaceLeftPaneActionsOptions): WorkspaceLeftPaneAction[];
|
|
47
|
+
export declare function useWorkbenchLeftPaneModel({ defaultTab, activeTab: controlledActiveTab, activePanelId, onActiveTabChange, revealFileTreeRequest, onOpenPanel, onReloadAgentPlugins, onExpand, onCloseSourcePane, railOnly, }?: UseWorkspaceLeftPaneActionsOptions): WorkbenchLeftPaneModel;
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface CommandPaletteSessionItem {
|
|
2
|
+
id: string;
|
|
3
|
+
title?: string | null;
|
|
4
|
+
updatedAt?: string | number;
|
|
5
|
+
turnCount?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface CommandPaletteSessionSearchConfig {
|
|
8
|
+
sessions: CommandPaletteSessionItem[];
|
|
9
|
+
activeId?: string | null;
|
|
10
|
+
openIds?: readonly string[];
|
|
11
|
+
search?: (sessions: readonly CommandPaletteSessionItem[], query: string) => CommandPaletteSessionItem[];
|
|
12
|
+
onSwitch: (id: string) => void;
|
|
13
|
+
onOpenAsTab: (id: string) => void;
|
|
14
|
+
}
|
|
15
|
+
export interface CommandPaletteProps {
|
|
16
|
+
sessionSearch?: CommandPaletteSessionSearchConfig;
|
|
17
|
+
apiBaseUrl?: string;
|
|
18
|
+
authHeaders?: Record<string, string>;
|
|
19
|
+
}
|
|
20
|
+
export declare function CommandPalette({ sessionSearch, apiBaseUrl, authHeaders }?: CommandPaletteProps): import("react").JSX.Element;
|
|
21
|
+
export { formatShortcut } from '../hooks/useKeyboardShortcuts';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactElement, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Instant tooltip for icon-only chrome controls — no OS hover delay, with
|
|
4
|
+
* an optional keyboard hint rendered after the label. Wrap the control and
|
|
5
|
+
* drop its native `title` (the two together double up).
|
|
6
|
+
*/
|
|
7
|
+
export declare function ControlTooltip({ label, hint, side, children, }: {
|
|
8
|
+
label: ReactNode;
|
|
9
|
+
hint?: string;
|
|
10
|
+
side?: "top" | "bottom" | "left" | "right";
|
|
11
|
+
children: ReactElement;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface ErrorChipProps {
|
|
2
|
+
pluginId: string;
|
|
3
|
+
message: string;
|
|
4
|
+
kind: "panel" | "workspace-source" | "catalog-row" | "chat-suggestion" | "app-left-action";
|
|
5
|
+
}
|
|
6
|
+
export declare function ErrorChip({ pluginId, message, kind }: ErrorChipProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component, ErrorInfo, ReactNode, ReactPortal, ReactElement, JSXElementConstructor } from 'react';
|
|
2
|
+
export interface PanelErrorBoundaryProps {
|
|
3
|
+
panelId: string;
|
|
4
|
+
onError?: (data: {
|
|
5
|
+
panelId: string;
|
|
6
|
+
error: string;
|
|
7
|
+
stack?: string;
|
|
8
|
+
}) => void;
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
interface State {
|
|
12
|
+
hasError: boolean;
|
|
13
|
+
error: Error | null;
|
|
14
|
+
}
|
|
15
|
+
export declare class PanelErrorBoundary extends Component<PanelErrorBoundaryProps, State> {
|
|
16
|
+
state: State;
|
|
17
|
+
static getDerivedStateFromError(error: Error): State;
|
|
18
|
+
componentDidCatch(error: Error, info: ErrorInfo): void;
|
|
19
|
+
handleRetry: () => void;
|
|
20
|
+
render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | ReactPortal | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface SessionItem {
|
|
2
|
+
id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
updatedAt?: string | number;
|
|
5
|
+
}
|
|
6
|
+
export interface SessionListProps {
|
|
7
|
+
sessions: SessionItem[];
|
|
8
|
+
activeId?: string | null;
|
|
9
|
+
onSwitch?: (id: string) => void;
|
|
10
|
+
onCreate?: () => void;
|
|
11
|
+
onDelete?: (id: string) => void;
|
|
12
|
+
onRename?: (id: string, newTitle: string) => void;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function SessionList({ sessions, activeId, onSwitch, onCreate, onDelete, className, }: SessionListProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface WorkspaceLoadingStateProps {
|
|
2
|
+
title?: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
status?: string;
|
|
5
|
+
fullscreen?: boolean;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function WorkspaceLoadingState({ title, description, status, fullscreen, className, }: WorkspaceLoadingStateProps): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|