@hachej/boring-workspace 0.1.71 → 0.1.73
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 +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CatalogConfig, CatalogRow } from '../../shared/plugins/types';
|
|
2
|
+
import { CommandConfig } from '../registry/types';
|
|
3
|
+
import { RecentEntry } from './recent';
|
|
4
|
+
export declare const MAX_RESULTS = 50;
|
|
5
|
+
export declare const CATALOG_MODE_LABEL = "Sources";
|
|
6
|
+
export type PaletteMode = 'chats' | 'catalogs' | 'commands';
|
|
7
|
+
export interface CatalogSearchGroup {
|
|
8
|
+
catalog: CatalogConfig;
|
|
9
|
+
rows: CatalogRow[];
|
|
10
|
+
loading: boolean;
|
|
11
|
+
error?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function errorMessage(error: unknown): string;
|
|
14
|
+
export declare function isActiveCommand(cmd: CommandConfig): boolean;
|
|
15
|
+
export declare function searchCommands(commands: readonly CommandConfig[], searchQuery: string): CommandConfig[];
|
|
16
|
+
export declare function filterAvailableRecentEntries(entries: RecentEntry[], catalogs: readonly CatalogConfig[], commands: readonly CommandConfig[]): RecentEntry[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RecentEntry } from './types';
|
|
2
|
+
import { CatalogRow } from '../../../shared/plugins/types';
|
|
3
|
+
declare const STORAGE_KEY = "boring-ui-v2:command-palette:recent";
|
|
4
|
+
declare const MAX_ENTRIES = 50;
|
|
5
|
+
export declare function loadRecent(): RecentEntry[];
|
|
6
|
+
export declare function saveRecent(entries: RecentEntry[]): void;
|
|
7
|
+
export declare function addCatalogToRecent(catalogId: string, row: CatalogRow): void;
|
|
8
|
+
export declare function addCommandToRecent(commandId: string, title: string): void;
|
|
9
|
+
export { STORAGE_KEY, MAX_ENTRIES };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CatalogRow } from '../../../shared/plugins/types';
|
|
2
|
+
/**
|
|
3
|
+
* Discriminated union for Recent entries in CommandPalette.
|
|
4
|
+
*
|
|
5
|
+
* **Serialization invariant:** `rowSnapshot` is round-tripped through
|
|
6
|
+
* `JSON.stringify` / `JSON.parse` via localStorage. Any `CatalogRow`
|
|
7
|
+
* participating in Recent MUST be 100% JSON-serializable. Adapters with
|
|
8
|
+
* non-serializable values (Date, Map, Set, functions, React nodes, class
|
|
9
|
+
* instances) must serialize at row construction time and re-hydrate in
|
|
10
|
+
* their renderer.
|
|
11
|
+
*/
|
|
12
|
+
export type RecentEntry = {
|
|
13
|
+
type: "catalog";
|
|
14
|
+
catalogId: string;
|
|
15
|
+
rowId: string;
|
|
16
|
+
rowSnapshot: CatalogRow;
|
|
17
|
+
selectedAt: number;
|
|
18
|
+
} | {
|
|
19
|
+
type: "command";
|
|
20
|
+
commandId: string;
|
|
21
|
+
titleSnapshot: string;
|
|
22
|
+
selectedAt: number;
|
|
23
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CatalogConfig } from '../../shared/plugins/types';
|
|
2
|
+
import { CatalogSearchGroup } from './commandPaletteHelpers';
|
|
3
|
+
export declare function useCommandPaletteCatalogSearch({ catalogs, isCommandMode, searchQuery, }: {
|
|
4
|
+
catalogs: readonly CatalogConfig[];
|
|
5
|
+
isCommandMode: boolean;
|
|
6
|
+
searchQuery: string;
|
|
7
|
+
}): CatalogSearchGroup[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Dispatch, KeyboardEvent, SetStateAction, RefObject } from 'react';
|
|
2
|
+
import { PaletteMode } from './commandPaletteHelpers';
|
|
3
|
+
export declare function useCommandPaletteChrome({ open, setOpen, mode, setMode, setQuery, defaultMode, }: {
|
|
4
|
+
open: boolean;
|
|
5
|
+
setOpen: Dispatch<SetStateAction<boolean>>;
|
|
6
|
+
mode: PaletteMode;
|
|
7
|
+
setMode: Dispatch<SetStateAction<PaletteMode>>;
|
|
8
|
+
setQuery: Dispatch<SetStateAction<string>>;
|
|
9
|
+
defaultMode?: PaletteMode;
|
|
10
|
+
}): {
|
|
11
|
+
inputRef: RefObject<HTMLInputElement | null>;
|
|
12
|
+
switchMode: (nextMode: PaletteMode) => void;
|
|
13
|
+
handleInputKeyDown: (event: KeyboardEvent<HTMLInputElement>) => void;
|
|
14
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CatalogConfig, CatalogRow } from '../../shared/plugins/types';
|
|
2
|
+
import { CommandConfig } from '../registry/types';
|
|
3
|
+
import { RecentEntry } from './recent';
|
|
4
|
+
export declare function useCommandPaletteSelection({ catalogs, commands, isCommandMode, searchQuery, close, }: {
|
|
5
|
+
catalogs: readonly CatalogConfig[];
|
|
6
|
+
commands: readonly CommandConfig[];
|
|
7
|
+
isCommandMode: boolean;
|
|
8
|
+
searchQuery: string;
|
|
9
|
+
close: () => void;
|
|
10
|
+
}): {
|
|
11
|
+
recentEntries: RecentEntry[];
|
|
12
|
+
handleCatalogSelect: (catalog: CatalogConfig, row: CatalogRow) => void;
|
|
13
|
+
handleCommandSelect: (cmd: CommandConfig) => void;
|
|
14
|
+
handleRecentSelect: (entry: RecentEntry) => void;
|
|
15
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface DetachedPanelPosition {
|
|
3
|
+
left: number;
|
|
4
|
+
top: number;
|
|
5
|
+
}
|
|
6
|
+
export interface DetachedPanelSize {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
}
|
|
10
|
+
export interface DetachedPanelPopoverProps {
|
|
11
|
+
title: ReactNode;
|
|
12
|
+
subtitle?: ReactNode;
|
|
13
|
+
icon?: ReactNode;
|
|
14
|
+
initialPosition: DetachedPanelPosition;
|
|
15
|
+
size?: Partial<DetachedPanelSize>;
|
|
16
|
+
ariaLabel: string;
|
|
17
|
+
onClose: () => void;
|
|
18
|
+
onDock?: () => void;
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
footer?: ReactNode;
|
|
21
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PointerEvent as ReactPointerEvent } from 'react';
|
|
2
|
+
import { DetachedPanelPosition, DetachedPanelSize } from './detachedPanelTypes';
|
|
3
|
+
export declare function useDetachedPanelPosition(initialPosition: DetachedPanelPosition, size?: Partial<DetachedPanelSize>): {
|
|
4
|
+
position: DetachedPanelPosition;
|
|
5
|
+
size: {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
};
|
|
9
|
+
startDrag: (event: ReactPointerEvent<HTMLElement>) => void;
|
|
10
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DockviewShellApi, DockviewShellProps } from './types';
|
|
2
|
+
import { Context } from 'react';
|
|
3
|
+
declare const DockviewApiContext: Context<DockviewShellApi | null>;
|
|
4
|
+
export declare function useDockviewApi(): DockviewShellApi;
|
|
5
|
+
export declare function DockviewShell({ layout, persistedLayout, onReady, onLayoutChange, allowedPanels, className, prefixHeaderActions, rightHeaderActions, watermarkComponent, }: DockviewShellProps): import("react").JSX.Element;
|
|
6
|
+
export { DockviewApiContext };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
|
+
import { DockviewPanelApi } from 'dockview-react';
|
|
3
|
+
import { PanelLifecycleApi } from './types';
|
|
4
|
+
export interface PanelChromeProps {
|
|
5
|
+
title: string;
|
|
6
|
+
icon?: ComponentType<{
|
|
7
|
+
className?: string;
|
|
8
|
+
}>;
|
|
9
|
+
essential?: boolean;
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
className?: string;
|
|
12
|
+
panelApi?: DockviewPanelApi;
|
|
13
|
+
}
|
|
14
|
+
declare function createLifecycleApi(panelApi: DockviewPanelApi): PanelLifecycleApi;
|
|
15
|
+
export declare function PanelChrome({ title, icon: Icon, essential, children, className, panelApi, }: PanelChromeProps): import("react").JSX.Element;
|
|
16
|
+
export { createLifecycleApi };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { DockviewApi } from 'dockview-react';
|
|
2
|
+
export interface LayoutConfig {
|
|
3
|
+
version: string;
|
|
4
|
+
groups: GroupConfig[];
|
|
5
|
+
}
|
|
6
|
+
export interface GroupConfig {
|
|
7
|
+
id: string;
|
|
8
|
+
position: "left" | "center" | "right" | "bottom";
|
|
9
|
+
panel?: string;
|
|
10
|
+
params?: Record<string, unknown>;
|
|
11
|
+
locked?: boolean;
|
|
12
|
+
hideHeader?: boolean;
|
|
13
|
+
dynamic?: boolean;
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
collapsible?: boolean;
|
|
16
|
+
collapsedWidth?: number;
|
|
17
|
+
constraints?: {
|
|
18
|
+
minWidth?: number;
|
|
19
|
+
maxWidth?: number;
|
|
20
|
+
maxWidthViewportRatio?: number;
|
|
21
|
+
minHeight?: number;
|
|
22
|
+
maxHeight?: number;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface DockviewShellProps {
|
|
26
|
+
layout: LayoutConfig;
|
|
27
|
+
persistedLayout?: SerializedLayout;
|
|
28
|
+
onReady?: (api: DockviewApi) => void;
|
|
29
|
+
onLayoutChange?: (layout: SerializedLayout) => void;
|
|
30
|
+
storageKey?: string;
|
|
31
|
+
allowedPanels?: string[];
|
|
32
|
+
className?: string;
|
|
33
|
+
/** Component rendered in the tab strip BEFORE the tabs. Useful for inline controls. */
|
|
34
|
+
prefixHeaderActions?: React.FunctionComponent<unknown>;
|
|
35
|
+
/** Component rendered in the tab strip on the far right. */
|
|
36
|
+
rightHeaderActions?: React.FunctionComponent<unknown>;
|
|
37
|
+
/** Component used as the empty-state watermark when a group has no panels. */
|
|
38
|
+
watermarkComponent?: React.FunctionComponent<unknown>;
|
|
39
|
+
}
|
|
40
|
+
export type SerializedLayout = Parameters<DockviewApi["fromJSON"]>[0];
|
|
41
|
+
export interface PanelLifecycleApi {
|
|
42
|
+
panelId: string;
|
|
43
|
+
title: string;
|
|
44
|
+
setTitle(title: string): void;
|
|
45
|
+
close(): void;
|
|
46
|
+
focus(): void;
|
|
47
|
+
isActive: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface DockviewShellApi {
|
|
50
|
+
addPanel(groupId: string, config: {
|
|
51
|
+
id: string;
|
|
52
|
+
component: string;
|
|
53
|
+
title?: string;
|
|
54
|
+
params?: Record<string, unknown>;
|
|
55
|
+
}): void;
|
|
56
|
+
removePanel(panelId: string): void;
|
|
57
|
+
activatePanel(panelId: string): void;
|
|
58
|
+
movePanel(panelId: string, target: {
|
|
59
|
+
groupId: string;
|
|
60
|
+
} | {
|
|
61
|
+
direction: "left" | "right" | "above" | "below";
|
|
62
|
+
referencePanelId: string;
|
|
63
|
+
}): void;
|
|
64
|
+
updatePanelParams(panelId: string, params: Record<string, unknown>): void;
|
|
65
|
+
setPanelTitle(panelId: string, title: string): void;
|
|
66
|
+
findPanelsByParam(key: string, value: unknown): string[];
|
|
67
|
+
getActivePanel(): string | null;
|
|
68
|
+
toJSON(): SerializedLayout;
|
|
69
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function emitAgentData(part: unknown): void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tiny typed event bus. ~30 lines, no runtime deps.
|
|
3
|
+
*
|
|
4
|
+
* Design constraints (locked by reviewer feedback in
|
|
5
|
+
* `packages/workspace/docs/plans/archive/UNIFIED_EVENT_BUS.md`):
|
|
6
|
+
*
|
|
7
|
+
* - Synchronous emit only. Slow subscribers fire-and-forget their own async work.
|
|
8
|
+
* - Snapshot listeners before iterating so subscribe / unsubscribe
|
|
9
|
+
* during dispatch is safe.
|
|
10
|
+
* - One thrown listener does not stop the chain. Errors go to console.error.
|
|
11
|
+
* - Bus emits transitions only — no replay-on-subscribe.
|
|
12
|
+
*/
|
|
13
|
+
export interface EventBus<TMap extends Record<string, any>> {
|
|
14
|
+
/** Subscribe to one event name. Returns an unsubscribe function. */
|
|
15
|
+
on<K extends keyof TMap>(name: K, fn: (payload: TMap[K]) => void): () => void;
|
|
16
|
+
/** Synchronously dispatch to every matching listener. */
|
|
17
|
+
emit<K extends keyof TMap>(name: K, payload: TMap[K]): void;
|
|
18
|
+
/** Test-only — never call from production code. Underscore-prefixed by convention. */
|
|
19
|
+
_reset(): void;
|
|
20
|
+
}
|
|
21
|
+
export declare function createEventBus<TMap extends Record<string, any>>(): EventBus<TMap>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { WorkspaceEventMap } from './types';
|
|
2
|
+
import { EventBus } from './bus';
|
|
3
|
+
export declare const events: EventBus<WorkspaceEventMap>;
|
|
4
|
+
export { userMeta, agentMeta, remoteMeta, workspaceEvents, WORKSPACE_PLUGIN_ID, WORKSPACE_UI_COMMAND_EVENT, WORKSPACE_EDITOR_SAVE_START_EVENT, WORKSPACE_EDITOR_SAVE_END_EVENT, WORKSPACE_PANEL_UPDATE_EVENT, WORKSPACE_PANEL_CLOSE_EVENT, WORKSPACE_AGENT_DATA_EVENT, } from './types';
|
|
5
|
+
export type { Origin, EventMeta, WorkspacePanelMatch, WorkspacePluginEventMap, WorkspaceEventMap, WorkspaceEventName, } from './types';
|
|
6
|
+
export { useEvent } from './useEvent';
|
|
7
|
+
export { emitAgentData } from './agentBridge';
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { FilesystemId } from '../../shared/types/filesystem';
|
|
2
|
+
import { UiCommand } from '../bridge/types';
|
|
3
|
+
export declare const WORKSPACE_PLUGIN_ID = "workspace";
|
|
4
|
+
export declare const WORKSPACE_UI_COMMAND_EVENT = "workspace:ui.command";
|
|
5
|
+
export declare const WORKSPACE_EDITOR_SAVE_START_EVENT = "workspace:editor.save.start";
|
|
6
|
+
export declare const WORKSPACE_EDITOR_SAVE_END_EVENT = "workspace:editor.save.end";
|
|
7
|
+
export declare const WORKSPACE_PANEL_UPDATE_EVENT = "workspace:panel.update";
|
|
8
|
+
export declare const WORKSPACE_PANEL_CLOSE_EVENT = "workspace:panel.close";
|
|
9
|
+
export declare const WORKSPACE_AGENT_DATA_EVENT = "workspace:agent.data";
|
|
10
|
+
export declare const workspaceEvents: {
|
|
11
|
+
readonly uiCommand: "workspace:ui.command";
|
|
12
|
+
readonly editorSaveStart: "workspace:editor.save.start";
|
|
13
|
+
readonly editorSaveEnd: "workspace:editor.save.end";
|
|
14
|
+
readonly panelUpdate: "workspace:panel.update";
|
|
15
|
+
readonly panelClose: "workspace:panel.close";
|
|
16
|
+
readonly agentData: "workspace:agent.data";
|
|
17
|
+
};
|
|
18
|
+
export type WorkspacePanelMatch = {
|
|
19
|
+
id: string;
|
|
20
|
+
} | {
|
|
21
|
+
param: string;
|
|
22
|
+
value: unknown;
|
|
23
|
+
} | {
|
|
24
|
+
params: Record<string, unknown>;
|
|
25
|
+
} | {
|
|
26
|
+
paramPrefix: string;
|
|
27
|
+
value: string;
|
|
28
|
+
params?: Record<string, unknown>;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Discriminated origin metadata. Encoded as a union (rather than a
|
|
32
|
+
* flat `cause` + optional `toolCallId`) so the type system enforces
|
|
33
|
+
* that agent-originated events always carry a tool call id.
|
|
34
|
+
*/
|
|
35
|
+
export type Origin = {
|
|
36
|
+
cause: "user";
|
|
37
|
+
} | {
|
|
38
|
+
cause: "agent";
|
|
39
|
+
toolCallId: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Anything observed via the server-side fs watcher: a collaborator
|
|
43
|
+
* editing the same workspace, a git pull, an external editor, the
|
|
44
|
+
* agent in another tab. Carries the tool call id ONLY when the
|
|
45
|
+
* server can attribute the change (sandbox emits its own writes
|
|
46
|
+
* with attribution; chokidar can't). Consumers that want to
|
|
47
|
+
* suppress UX side-effects on self-echo compare `actorClientId` (a
|
|
48
|
+
* future field) against their own.
|
|
49
|
+
*/
|
|
50
|
+
| {
|
|
51
|
+
cause: "remote";
|
|
52
|
+
toolCallId?: string;
|
|
53
|
+
};
|
|
54
|
+
/** Common envelope on every payload. */
|
|
55
|
+
export type EventMeta = Origin & {
|
|
56
|
+
ts: number;
|
|
57
|
+
};
|
|
58
|
+
/** Helper for emitting a user-originated event payload. */
|
|
59
|
+
export declare function userMeta(): {
|
|
60
|
+
cause: "user";
|
|
61
|
+
ts: number;
|
|
62
|
+
};
|
|
63
|
+
export declare function agentMeta(toolCallId: string): {
|
|
64
|
+
cause: "agent";
|
|
65
|
+
toolCallId: string;
|
|
66
|
+
ts: number;
|
|
67
|
+
};
|
|
68
|
+
export declare function remoteMeta(toolCallId?: string): {
|
|
69
|
+
cause: "remote";
|
|
70
|
+
toolCallId?: string;
|
|
71
|
+
ts: number;
|
|
72
|
+
};
|
|
73
|
+
export interface WorkspaceHostEventMap {
|
|
74
|
+
/** Shared UI manipulation contract used by the agent stream and plugin bindings. */
|
|
75
|
+
[WORKSPACE_UI_COMMAND_EVENT]: EventMeta & {
|
|
76
|
+
command: UiCommand;
|
|
77
|
+
};
|
|
78
|
+
[WORKSPACE_EDITOR_SAVE_START_EVENT]: {
|
|
79
|
+
panelId: string;
|
|
80
|
+
};
|
|
81
|
+
[WORKSPACE_EDITOR_SAVE_END_EVENT]: {
|
|
82
|
+
panelId: string;
|
|
83
|
+
ok?: boolean;
|
|
84
|
+
error?: string;
|
|
85
|
+
};
|
|
86
|
+
[WORKSPACE_PANEL_UPDATE_EVENT]: EventMeta & {
|
|
87
|
+
match: WorkspacePanelMatch | WorkspacePanelMatch[];
|
|
88
|
+
params?: Record<string, unknown>;
|
|
89
|
+
title?: string;
|
|
90
|
+
};
|
|
91
|
+
[WORKSPACE_PANEL_CLOSE_EVENT]: EventMeta & {
|
|
92
|
+
match: WorkspacePanelMatch | WorkspacePanelMatch[];
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Raw agent stream data observed by ChatPanelHost. Core treats this as an
|
|
96
|
+
* opaque packet; plugins translate packets they understand into their own
|
|
97
|
+
* plugin-keyed events.
|
|
98
|
+
*/
|
|
99
|
+
[WORKSPACE_AGENT_DATA_EVENT]: {
|
|
100
|
+
ts: number;
|
|
101
|
+
part: unknown;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Built-in plugin events baked into the public workspace event map.
|
|
106
|
+
*
|
|
107
|
+
* Filesystem events are declared inline (using EventMeta which is structurally
|
|
108
|
+
* identical to FilesystemEventMeta) so the keys survive vite's rollupTypes
|
|
109
|
+
* bundling without importing plugin-domain modules.
|
|
110
|
+
*
|
|
111
|
+
* Third-party plugins can extend this interface via declare module augmentation,
|
|
112
|
+
* though that only works in source compilation — it does not survive dist bundling.
|
|
113
|
+
*/
|
|
114
|
+
export interface WorkspacePluginEventMap {
|
|
115
|
+
"filesystem:file.changed": EventMeta & {
|
|
116
|
+
filesystem?: FilesystemId;
|
|
117
|
+
path: string;
|
|
118
|
+
};
|
|
119
|
+
"filesystem:file.created": EventMeta & {
|
|
120
|
+
filesystem?: FilesystemId;
|
|
121
|
+
path: string;
|
|
122
|
+
kind: "file" | "dir";
|
|
123
|
+
};
|
|
124
|
+
"filesystem:file.moved": EventMeta & {
|
|
125
|
+
filesystem?: FilesystemId;
|
|
126
|
+
from: string;
|
|
127
|
+
to: string;
|
|
128
|
+
};
|
|
129
|
+
"filesystem:file.deleted": EventMeta & {
|
|
130
|
+
filesystem?: FilesystemId;
|
|
131
|
+
path: string;
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
export interface WorkspaceEventMap extends WorkspaceHostEventMap, WorkspacePluginEventMap {
|
|
135
|
+
}
|
|
136
|
+
/** Names that share a prefix can be filtered with `startsWith`. */
|
|
137
|
+
export type WorkspaceEventName = keyof WorkspaceEventMap;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { WorkspaceEventMap } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* React hook: subscribe to a workspace event for the lifetime of the
|
|
4
|
+
* component. The handler ref is stable across renders so changing the
|
|
5
|
+
* handler doesn't tear down and re-subscribe.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useEvent<K extends keyof WorkspaceEventMap>(name: K, handler: (payload: WorkspaceEventMap[K]) => void): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type PanelRenderMode = "dock" | "full-page";
|
|
3
|
+
export interface FullPageBasePathProviderProps {
|
|
4
|
+
basePath?: string;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare function FullPageBasePathProvider({ basePath, children }: FullPageBasePathProviderProps): import("react").JSX.Element;
|
|
8
|
+
export interface PanelRenderModeProviderProps {
|
|
9
|
+
mode: PanelRenderMode;
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare function PanelRenderModeProvider({ mode, children }: PanelRenderModeProviderProps): import("react").JSX.Element;
|
|
13
|
+
export interface BuildFullPagePanelHrefInput {
|
|
14
|
+
componentId: string;
|
|
15
|
+
params?: Record<string, unknown>;
|
|
16
|
+
basePath: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function buildFullPagePanelHref({ componentId, params, basePath }: BuildFullPagePanelHrefInput): string;
|
|
19
|
+
export declare function useFullPagePanelHref(input: {
|
|
20
|
+
componentId: string;
|
|
21
|
+
params?: Record<string, unknown>;
|
|
22
|
+
}): string | null;
|
|
23
|
+
export declare function usePanelRenderMode(): PanelRenderMode;
|
|
24
|
+
export declare function useIsFullPagePanel(): boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { useEditorLifecycle, type EditorLifecycleAdapter, type UseEditorLifecycleOptions, type UseEditorLifecycleReturn, } from './useEditorLifecycle';
|
|
2
|
+
export { useViewportBreakpoint } from './useViewportBreakpoint';
|
|
3
|
+
export { useResponsiveSidebarCollapse, type UseResponsiveSidebarCollapseOptions, } from './useResponsiveSidebarCollapse';
|
|
4
|
+
export { useArtifactPanels, type ArtifactPanel, type UseArtifactPanelsReturn, } from './useArtifactPanels';
|
|
5
|
+
export { useArtifactRouting, type UseArtifactRoutingOptions, type UseArtifactRoutingReturn, } from './useArtifactRouting';
|
|
6
|
+
export { useKeyboardShortcuts, formatShortcut, type ShortcutBinding, type UseKeyboardShortcutsOptions, } from './useKeyboardShortcuts';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DockviewShellApi } from '../dock';
|
|
2
|
+
export interface ArtifactPanel {
|
|
3
|
+
id: string;
|
|
4
|
+
component: string;
|
|
5
|
+
params?: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
export interface UseArtifactPanelsReturn {
|
|
8
|
+
panels: ArtifactPanel[];
|
|
9
|
+
open: (panel: ArtifactPanel) => void;
|
|
10
|
+
close: (panelId: string) => void;
|
|
11
|
+
activate: (panelId: string) => void;
|
|
12
|
+
isOpen: (panelId: string) => boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function useArtifactPanels(surfaceApi: DockviewShellApi | null): UseArtifactPanelsReturn;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { UseArtifactPanelsReturn } from './useArtifactPanels';
|
|
2
|
+
export interface UseArtifactRoutingOptions {
|
|
3
|
+
toolPanelMap?: Record<string, string>;
|
|
4
|
+
}
|
|
5
|
+
export interface UseArtifactRoutingReturn {
|
|
6
|
+
openForTool: (toolName: string, params: {
|
|
7
|
+
path: string;
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}) => void;
|
|
10
|
+
resolvePanel: (toolName: string) => string | undefined;
|
|
11
|
+
}
|
|
12
|
+
export declare function useArtifactRouting(artifactPanels: UseArtifactPanelsReturn, opts?: UseArtifactRoutingOptions): UseArtifactRoutingReturn;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface EditorLifecycleAdapter {
|
|
2
|
+
isDirty: () => boolean;
|
|
3
|
+
save: () => Promise<void>;
|
|
4
|
+
getContent: () => string;
|
|
5
|
+
}
|
|
6
|
+
export interface UseEditorLifecycleOptions {
|
|
7
|
+
adapter: EditorLifecycleAdapter | null;
|
|
8
|
+
panelId: string;
|
|
9
|
+
onDirtyChange?: (path: string, dirty: boolean) => void;
|
|
10
|
+
serverMtime?: number | null;
|
|
11
|
+
}
|
|
12
|
+
export interface UseEditorLifecycleReturn {
|
|
13
|
+
isDirty: boolean;
|
|
14
|
+
isSaving: boolean;
|
|
15
|
+
lastSavedAt: number | null;
|
|
16
|
+
markDirty: () => void;
|
|
17
|
+
markClean: () => void;
|
|
18
|
+
flushSave: () => Promise<void>;
|
|
19
|
+
shouldSync: boolean;
|
|
20
|
+
ackSync: () => void;
|
|
21
|
+
/** True when the file was modified externally while the editor has unsaved changes. */
|
|
22
|
+
externalChangeWhileDirty: boolean;
|
|
23
|
+
ackExternalChange: () => void;
|
|
24
|
+
/** Call after a successful save with the mtime the server returned. */
|
|
25
|
+
notifySaved: (mtime: number) => void;
|
|
26
|
+
}
|
|
27
|
+
export declare function useEditorLifecycle(path: string | null, opts: UseEditorLifecycleOptions): UseEditorLifecycleReturn;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ShortcutBinding {
|
|
2
|
+
key: string;
|
|
3
|
+
mod?: boolean;
|
|
4
|
+
shift?: boolean;
|
|
5
|
+
allowInEditable?: boolean;
|
|
6
|
+
handler: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface UseKeyboardShortcutsOptions {
|
|
9
|
+
shortcuts: ShortcutBinding[];
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function useKeyboardShortcuts({ shortcuts, enabled }: UseKeyboardShortcutsOptions): void;
|
|
13
|
+
export declare function formatShortcut(binding: Pick<ShortcutBinding, "key" | "mod" | "shift">): string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface UseResponsiveSidebarCollapseOptions {
|
|
2
|
+
isNarrowViewport: boolean;
|
|
3
|
+
isCollapsed: boolean;
|
|
4
|
+
setCollapsed: (collapsed: boolean) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function useResponsiveSidebarCollapse({ isNarrowViewport, isCollapsed, setCollapsed, }: UseResponsiveSidebarCollapseOptions): () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useViewportBreakpoint(maxWidth?: number): boolean;
|