@hachej/boring-workspace 0.1.71 → 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.
Files changed (325) hide show
  1. package/dist/{FileTree-B_fRS4Om.js → FileTree-C8JPlZtS.js} +1 -1
  2. package/dist/{MarkdownEditor-C55gVDyW.js → MarkdownEditor-B9wN6tGH.js} +14 -14
  3. package/dist/{WorkspaceLoadingState-D3i4X-eH.js → WorkspaceLoadingState-TgOWTNJC.js} +350 -203
  4. package/dist/{WorkspaceProvider-Ddx7GByq.js → WorkspaceProvider-DcOiZU24.js} +9 -9
  5. package/dist/app-front.d.ts +2 -883
  6. package/dist/app-front.js +1049 -1033
  7. package/dist/app-server.d.ts +4 -4
  8. package/dist/bridge-client.d.ts +2 -2
  9. package/dist/charts.d.ts +2 -119
  10. package/dist/plugin.d.ts +3 -3
  11. package/dist/{runtimeEnv-CU-c4kaV.d.ts → runtimeEnv-DKtVLBXo.d.ts} +2 -2
  12. package/dist/server.d.ts +6 -6
  13. package/dist/shared.d.ts +3 -3
  14. package/dist/src/__tests__/WorkspaceProvider.test.d.ts +1 -0
  15. package/dist/src/__tests__/exploration.property.test.d.ts +1 -0
  16. package/dist/src/__tests__/plugin-integration.test.d.ts +1 -0
  17. package/dist/src/__tests__/public-api.test.d.ts +1 -0
  18. package/dist/src/__tests__/publicFileStateApi.test.d.ts +1 -0
  19. package/dist/src/__tests__/theme-system.test.d.ts +1 -0
  20. package/dist/src/app/front/CloseLeftPaneOnAttention.d.ts +10 -0
  21. package/dist/src/app/front/PluginAppLeftHost.d.ts +18 -0
  22. package/dist/src/app/front/WorkspaceAgentFront.d.ts +174 -0
  23. package/dist/src/app/front/WorkspaceAgentStatusStates.d.ts +5 -0
  24. package/dist/src/app/front/WorkspaceBackgroundBoot.d.ts +10 -0
  25. package/dist/src/app/front/WorkspaceBootGate.d.ts +12 -0
  26. package/dist/src/app/front/WorkspaceFullPagePanel.d.ts +5 -0
  27. package/dist/src/app/front/WorkspaceShellCapabilitiesHost.d.ts +20 -0
  28. package/dist/src/app/front/WorkspaceUiStateSync.d.ts +9 -0
  29. package/dist/src/app/front/__tests__/WorkspaceAgentFront.test.d.ts +1 -0
  30. package/dist/src/app/front/__tests__/WorkspaceBackgroundBoot.test.d.ts +1 -0
  31. package/dist/src/app/front/__tests__/WorkspaceBootGate.test.d.ts +1 -0
  32. package/dist/src/app/front/__tests__/WorkspaceFullPagePanel.test.d.ts +1 -0
  33. package/dist/src/app/front/__tests__/chatPaneState.property.test.d.ts +1 -0
  34. package/dist/src/app/front/__tests__/useWorkspaceShellCapabilitiesController.test.d.ts +1 -0
  35. package/dist/src/app/front/__tests__/workspacePreload.test.d.ts +1 -0
  36. package/dist/src/app/front/chatPaneState.d.ts +8 -0
  37. package/dist/src/app/front/fullPageRoute.d.ts +10 -0
  38. package/dist/src/app/front/fullPageRouteErrors.d.ts +7 -0
  39. package/dist/src/app/front/index.d.ts +8 -0
  40. package/dist/src/app/front/localStorageSessions.d.ts +18 -0
  41. package/dist/src/app/front/useWorkspaceShellCapabilitiesController.d.ts +8 -0
  42. package/dist/src/app/front/workspaceBuiltinPlugins.d.ts +6 -0
  43. package/dist/src/app/front/workspacePreload.d.ts +64 -0
  44. package/dist/src/bridge-client/__tests__/client.test.d.ts +1 -0
  45. package/dist/src/bridge-client/index.d.ts +65 -0
  46. package/dist/src/front/agentPlugins/__tests__/registerAgentPlugin.test.d.ts +1 -0
  47. package/dist/src/front/agentPlugins/registerAgentPlugin.d.ts +26 -0
  48. package/dist/src/front/agentPlugins/reloadEvent.d.ts +7 -0
  49. package/dist/src/front/attention/WorkspaceAttentionProvider.d.ts +71 -0
  50. package/dist/src/front/attention/__tests__/WorkspaceAttentionProvider.test.d.ts +1 -0
  51. package/dist/src/front/attention/index.d.ts +2 -0
  52. package/dist/src/front/bridge/WorkspaceLink.d.ts +35 -0
  53. package/dist/src/front/bridge/__tests__/WorkspaceLink.test.d.ts +1 -0
  54. package/dist/src/front/bridge/__tests__/bridge.property.test.d.ts +1 -0
  55. package/dist/src/front/bridge/__tests__/bridge.test.d.ts +1 -0
  56. package/dist/src/front/bridge/__tests__/client.test.d.ts +1 -0
  57. package/dist/src/front/bridge/__tests__/uiCommandDispatcher.test.d.ts +1 -0
  58. package/dist/src/front/bridge/__tests__/uiCommandStream.test.d.ts +1 -0
  59. package/dist/src/front/bridge/client.d.ts +33 -0
  60. package/dist/src/front/bridge/createBridge.d.ts +8 -0
  61. package/dist/src/front/bridge/index.d.ts +12 -0
  62. package/dist/src/front/bridge/types.d.ts +92 -0
  63. package/dist/src/front/bridge/uiCommandBus.d.ts +3 -0
  64. package/dist/src/front/bridge/uiCommandDispatcher.d.ts +44 -0
  65. package/dist/src/front/bridge/uiCommandStream.d.ts +41 -0
  66. package/dist/src/front/bridge/validation.d.ts +66 -0
  67. package/dist/src/front/charts/__tests__/charts.test.d.ts +1 -0
  68. package/dist/src/front/charts/index.d.ts +92 -0
  69. package/dist/src/front/chrome/artifact-surface/ArtifactSurfacePane.d.ts +18 -0
  70. package/dist/src/front/chrome/artifact-surface/SurfaceShell.d.ts +84 -0
  71. package/dist/src/front/chrome/artifact-surface/__tests__/ArtifactSurfacePane.persistence.test.d.ts +1 -0
  72. package/dist/src/front/chrome/artifact-surface/__tests__/ArtifactSurfacePane.test.d.ts +1 -0
  73. package/dist/src/front/chrome/artifact-surface/__tests__/SurfaceShell.test.d.ts +1 -0
  74. package/dist/src/front/chrome/artifact-surface/__tests__/resolvePanelForPath.test.d.ts +1 -0
  75. package/dist/src/front/chrome/artifact-surface/definition.d.ts +12 -0
  76. package/dist/src/front/chrome/artifact-surface/surfaceShellHelpers.d.ts +10 -0
  77. package/dist/src/front/chrome/chat/ChatPanelHost.d.ts +16 -0
  78. package/dist/src/front/chrome/chat/DetachedChatPopover.d.ts +11 -0
  79. package/dist/src/front/chrome/chat/__tests__/ChatPanelHost.test.d.ts +1 -0
  80. package/dist/src/front/chrome/chat/composerStop.d.ts +19 -0
  81. package/dist/src/front/chrome/chat/definition.d.ts +16 -0
  82. package/dist/src/front/chrome/chat/types.d.ts +30 -0
  83. package/dist/src/front/chrome/empty-pane/EmptyPane.d.ts +5 -0
  84. package/dist/src/front/chrome/empty-pane/__tests__/EmptyPane.test.d.ts +1 -0
  85. package/dist/src/front/chrome/management/ManagementOverlaySurface.d.ts +16 -0
  86. package/dist/src/front/chrome/plugins/PluginsOverlay.d.ts +16 -0
  87. package/dist/src/front/chrome/session-list/SessionBrowser.d.ts +20 -0
  88. package/dist/src/front/chrome/session-list/__tests__/SessionBrowser.test.d.ts +1 -0
  89. package/dist/src/front/chrome/session-list/definition.d.ts +28 -0
  90. package/dist/src/front/chrome/skills/SkillsPage.d.ts +11 -0
  91. package/dist/src/front/chrome/skills/definition.d.ts +3 -0
  92. package/dist/src/front/chrome/workbench-left/WorkbenchLeftPane.d.ts +28 -0
  93. package/dist/src/front/chrome/workbench-left/__tests__/WorkbenchLeftPane.test.d.ts +1 -0
  94. package/dist/src/front/chrome/workbench-left/definition.d.ts +12 -0
  95. package/dist/src/front/chrome/workbench-left/useWorkspaceLeftPaneActions.d.ts +48 -0
  96. package/dist/src/front/components/CommandPalette.d.ts +21 -0
  97. package/dist/src/front/components/ControlTooltip.d.ts +12 -0
  98. package/dist/src/front/components/ErrorChip.d.ts +6 -0
  99. package/dist/src/front/components/PanelErrorBoundary.d.ts +22 -0
  100. package/dist/src/front/components/SessionList.d.ts +15 -0
  101. package/dist/src/front/components/WorkspaceLoadingState.d.ts +8 -0
  102. package/dist/src/front/components/__tests__/CommandPalette.test.d.ts +1 -0
  103. package/dist/src/front/components/__tests__/PanelErrorBoundary.test.d.ts +1 -0
  104. package/dist/src/front/components/__tests__/SessionList.test.d.ts +1 -0
  105. package/dist/src/front/components/__tests__/WorkspaceLoadingState.test.d.ts +1 -0
  106. package/dist/src/front/components/commandPaletteHelpers.d.ts +16 -0
  107. package/dist/src/front/components/recent/__tests__/migrate.test.d.ts +1 -0
  108. package/dist/src/front/components/recent/__tests__/recentStore.test.d.ts +1 -0
  109. package/dist/src/front/components/recent/index.d.ts +2 -0
  110. package/dist/src/front/components/recent/recentStore.d.ts +9 -0
  111. package/dist/src/front/components/recent/types.d.ts +23 -0
  112. package/dist/src/front/components/useCommandPaletteCatalogSearch.d.ts +7 -0
  113. package/dist/src/front/components/useCommandPaletteChrome.d.ts +14 -0
  114. package/dist/src/front/components/useCommandPaletteSelection.d.ts +15 -0
  115. package/dist/src/front/detached/DetachedPanelPopover.d.ts +2 -0
  116. package/dist/src/front/detached/detachedPanelTypes.d.ts +21 -0
  117. package/dist/src/front/detached/useDetachedPanelPosition.d.ts +10 -0
  118. package/dist/src/front/dock/DockviewShell.d.ts +6 -0
  119. package/dist/src/front/dock/PanelChrome.d.ts +16 -0
  120. package/dist/src/front/dock/ShadcnTab.d.ts +2 -0
  121. package/dist/src/front/dock/__tests__/dock.test.d.ts +1 -0
  122. package/dist/src/front/dock/index.d.ts +3 -0
  123. package/dist/src/front/dock/types.d.ts +69 -0
  124. package/dist/src/front/events/__tests__/agentBridge.test.d.ts +1 -0
  125. package/dist/src/front/events/__tests__/bus.test.d.ts +1 -0
  126. package/dist/src/front/events/__tests__/types.test.d.ts +1 -0
  127. package/dist/src/front/events/__tests__/useEvent.test.d.ts +1 -0
  128. package/dist/src/front/events/agentBridge.d.ts +1 -0
  129. package/dist/src/front/events/bus.d.ts +21 -0
  130. package/dist/src/front/events/index.d.ts +7 -0
  131. package/dist/src/front/events/types.d.ts +137 -0
  132. package/dist/src/front/events/useEvent.d.ts +7 -0
  133. package/dist/src/front/fullPage.d.ts +24 -0
  134. package/dist/src/front/hooks/__tests__/useArtifactPanels.test.d.ts +1 -0
  135. package/dist/src/front/hooks/__tests__/useArtifactRouting.test.d.ts +1 -0
  136. package/dist/src/front/hooks/__tests__/useEditorLifecycle.test.d.ts +1 -0
  137. package/dist/src/front/hooks/__tests__/useKeyboardShortcuts.test.d.ts +1 -0
  138. package/dist/src/front/hooks/__tests__/useViewportBreakpoint.test.d.ts +1 -0
  139. package/dist/src/front/hooks/index.d.ts +6 -0
  140. package/dist/src/front/hooks/useArtifactPanels.d.ts +14 -0
  141. package/dist/src/front/hooks/useArtifactRouting.d.ts +12 -0
  142. package/dist/src/front/hooks/useEditorLifecycle.d.ts +27 -0
  143. package/dist/src/front/hooks/useKeyboardShortcuts.d.ts +13 -0
  144. package/dist/src/front/hooks/useResponsiveSidebarCollapse.d.ts +6 -0
  145. package/dist/src/front/hooks/useViewportBreakpoint.d.ts +1 -0
  146. package/dist/src/front/layout/ChatLayout.d.ts +4 -0
  147. package/dist/src/front/layout/ChatPaneStage.d.ts +59 -0
  148. package/dist/src/front/layout/ChatPaneStageDock.d.ts +5 -0
  149. package/dist/src/front/layout/IdeLayout.d.ts +4 -0
  150. package/dist/src/front/layout/ResponsiveDockviewShell.d.ts +6 -0
  151. package/dist/src/front/layout/ThemeToggle.d.ts +10 -0
  152. package/dist/src/front/layout/TopBar.d.ts +17 -0
  153. package/dist/src/front/layout/__tests__/ChatPaneStageDock.test.d.ts +1 -0
  154. package/dist/src/front/layout/__tests__/TopBar.test.d.ts +1 -0
  155. package/dist/src/front/layout/__tests__/presets.test.d.ts +1 -0
  156. package/dist/src/front/layout/cornerChrome.d.ts +10 -0
  157. package/dist/src/front/layout/index.d.ts +9 -0
  158. package/dist/src/front/layout/mobileShell.d.ts +18 -0
  159. package/dist/src/front/layout/paneCollapseButton.d.ts +15 -0
  160. package/dist/src/front/layout/plugin-tabs/AppLeftOverlayChromeContext.d.ts +1 -0
  161. package/dist/src/front/layout/plugin-tabs/AppLeftPane.d.ts +75 -0
  162. package/dist/src/front/layout/plugin-tabs/AppLeftPaneActions.d.ts +13 -0
  163. package/dist/src/front/layout/plugin-tabs/AppLeftPaneHeader.d.ts +7 -0
  164. package/dist/src/front/layout/plugin-tabs/AppLeftPaneProjects.d.ts +18 -0
  165. package/dist/src/front/layout/plugin-tabs/AppLeftPaneSections.d.ts +6 -0
  166. package/dist/src/front/layout/plugin-tabs/AppLeftPaneSessionRow.d.ts +18 -0
  167. package/dist/src/front/layout/plugin-tabs/PluginTabsWorkspaceShell.d.ts +15 -0
  168. package/dist/src/front/layout/plugin-tabs/__tests__/AppLeftPane.test.d.ts +1 -0
  169. package/dist/src/front/layout/types.d.ts +40 -0
  170. package/dist/src/front/layout/useViewportWidth.d.ts +1 -0
  171. package/dist/src/front/lib/utils.d.ts +2 -0
  172. package/dist/src/front/lib/utils.test.d.ts +1 -0
  173. package/dist/src/front/lib/validation.d.ts +189 -0
  174. package/dist/src/front/plugin/PluginErrorBoundary.d.ts +21 -0
  175. package/dist/src/front/plugin/PluginErrorContext.d.ts +19 -0
  176. package/dist/src/front/plugin/PluginInspector.d.ts +8 -0
  177. package/dist/src/front/plugin/__tests__/CatalogRegistry.test.d.ts +1 -0
  178. package/dist/src/front/plugin/__tests__/PluginErrorBoundary.test.d.ts +1 -0
  179. package/dist/src/front/plugin/__tests__/PluginInspector.test.d.ts +1 -0
  180. package/dist/src/front/plugin/__tests__/useWorkspacePluginClient.test.d.ts +1 -0
  181. package/dist/src/front/plugin/index.d.ts +10 -0
  182. package/dist/src/front/plugin/useActivePanels.d.ts +2 -0
  183. package/dist/src/front/plugin/useCatalogs.d.ts +2 -0
  184. package/dist/src/front/plugin/useCommands.d.ts +2 -0
  185. package/dist/src/front/plugin/useWorkspacePluginClient.d.ts +29 -0
  186. package/dist/src/front/provider/WorkspaceProvider.d.ts +84 -0
  187. package/dist/src/front/provider/index.d.ts +9 -0
  188. package/dist/src/front/provider/workspaceTitle.d.ts +5 -0
  189. package/dist/src/front/registry/PanelRegistry.d.ts +39 -0
  190. package/dist/src/front/registry/PanelRenderStatusBoundary.d.ts +38 -0
  191. package/dist/src/front/registry/RegistryProvider.d.ts +21 -0
  192. package/dist/src/front/registry/WorkspaceSourceRegistry.d.ts +25 -0
  193. package/dist/src/front/registry/__tests__/registry.test.d.ts +1 -0
  194. package/dist/src/front/registry/__tests__/replaceByPluginId.test.d.ts +1 -0
  195. package/dist/src/front/registry/__tests__/subscribe.test.d.ts +1 -0
  196. package/dist/src/front/registry/coreRegistrations.d.ts +2 -0
  197. package/dist/src/front/registry/getFileIcon.d.ts +2 -0
  198. package/dist/src/front/registry/index.d.ts +7 -0
  199. package/dist/src/front/registry/types.d.ts +2 -0
  200. package/dist/src/front/shell/WorkspaceShellCapabilitiesContext.d.ts +1 -0
  201. package/dist/src/front/store/__tests__/store.property.test.d.ts +1 -0
  202. package/dist/src/front/store/__tests__/store.test.d.ts +1 -0
  203. package/dist/src/front/store/index.d.ts +35 -0
  204. package/dist/src/front/store/localStorageValues.d.ts +4 -0
  205. package/dist/src/front/store/selectors.d.ts +21 -0
  206. package/dist/src/front/store/types.d.ts +53 -0
  207. package/dist/src/front/testing/TestWorkspaceProvider.d.ts +13 -0
  208. package/dist/src/front/testing/__tests__/testing.test.d.ts +1 -0
  209. package/dist/src/front/testing/createLocalStorageSessions.d.ts +16 -0
  210. package/dist/src/front/testing/createMockBridge.d.ts +20 -0
  211. package/dist/src/front/testing/createMockPaneProps.d.ts +11 -0
  212. package/dist/src/front/testing/createMockRegistry.d.ts +7 -0
  213. package/dist/src/front/testing/createMockSessions.d.ts +24 -0
  214. package/dist/src/front/testing/e2e.d.ts +61 -0
  215. package/dist/src/front/testing/index.d.ts +17 -0
  216. package/dist/src/front/testing/mockApi.d.ts +9 -0
  217. package/dist/src/front/testing/renderPane.d.ts +20 -0
  218. package/dist/src/front/theme/codemirror-theme.d.ts +4 -0
  219. package/dist/src/front/theme/index.d.ts +1 -0
  220. package/dist/src/front/toast/__tests__/toast.test.d.ts +1 -0
  221. package/dist/src/front/toast/index.d.ts +1 -0
  222. package/dist/src/index.d.ts +90 -0
  223. package/dist/src/plugin.d.ts +19 -0
  224. package/dist/src/plugins/filesystemPlugin/front/ConflictBanner.d.ts +14 -0
  225. package/dist/src/plugins/filesystemPlugin/front/FilePaneShell.d.ts +73 -0
  226. package/dist/src/plugins/filesystemPlugin/front/__tests__/agentFileBridge.test.d.ts +1 -0
  227. package/dist/src/plugins/filesystemPlugin/front/__tests__/filePanelBinding.test.d.ts +1 -0
  228. package/dist/src/plugins/filesystemPlugin/front/__tests__/filesystemPlugin.test.d.ts +1 -0
  229. package/dist/src/plugins/filesystemPlugin/front/__tests__/search.test.d.ts +1 -0
  230. package/dist/src/plugins/filesystemPlugin/front/__tests__/useFilePane.test.d.ts +1 -0
  231. package/dist/src/plugins/filesystemPlugin/front/agentFileBridge.d.ts +12 -0
  232. package/dist/src/plugins/filesystemPlugin/front/catalogs.d.ts +9 -0
  233. package/dist/src/plugins/filesystemPlugin/front/code-editor/CodeEditor.d.ts +10 -0
  234. package/dist/src/plugins/filesystemPlugin/front/code-editor/CodeEditorPane.d.ts +8 -0
  235. package/dist/src/plugins/filesystemPlugin/front/code-editor/__tests__/CodeEditor.test.d.ts +1 -0
  236. package/dist/src/plugins/filesystemPlugin/front/code-editor/__tests__/CodeEditorPane.test.d.ts +1 -0
  237. package/dist/src/plugins/filesystemPlugin/front/data/DataProvider.d.ts +16 -0
  238. package/dist/src/plugins/filesystemPlugin/front/data/__tests__/fetchClient.integration.test.d.ts +1 -0
  239. package/dist/src/plugins/filesystemPlugin/front/data/__tests__/fetchClient.test.d.ts +1 -0
  240. package/dist/src/plugins/filesystemPlugin/front/data/__tests__/fileRecords.test.d.ts +1 -0
  241. package/dist/src/plugins/filesystemPlugin/front/data/__tests__/hooks.test.d.ts +1 -0
  242. package/dist/src/plugins/filesystemPlugin/front/data/__tests__/useFileEventInvalidation.test.d.ts +1 -0
  243. package/dist/src/plugins/filesystemPlugin/front/data/__tests__/useFileEventStream.test.d.ts +1 -0
  244. package/dist/src/plugins/filesystemPlugin/front/data/__tests__/useFileUpload.test.d.ts +1 -0
  245. package/dist/src/plugins/filesystemPlugin/front/data/fetchClient.d.ts +63 -0
  246. package/dist/src/plugins/filesystemPlugin/front/data/fileRecords.d.ts +34 -0
  247. package/dist/src/plugins/filesystemPlugin/front/data/filesystemErrorRedaction.d.ts +2 -0
  248. package/dist/src/plugins/filesystemPlugin/front/data/hooks.d.ts +48 -0
  249. package/dist/src/plugins/filesystemPlugin/front/data/index.d.ts +9 -0
  250. package/dist/src/plugins/filesystemPlugin/front/data/treePreloadCache.d.ts +3 -0
  251. package/dist/src/plugins/filesystemPlugin/front/data/types.d.ts +37 -0
  252. package/dist/src/plugins/filesystemPlugin/front/data/useFileEventInvalidation.d.ts +28 -0
  253. package/dist/src/plugins/filesystemPlugin/front/data/useFileEventStream.d.ts +27 -0
  254. package/dist/src/plugins/filesystemPlugin/front/data/useFileUpload.d.ts +12 -0
  255. package/dist/src/plugins/filesystemPlugin/front/empty-file-panel/EmptyFilePanel.d.ts +6 -0
  256. package/dist/src/plugins/filesystemPlugin/front/empty-file-panel/definition.d.ts +8 -0
  257. package/dist/src/plugins/filesystemPlugin/front/events.d.ts +6 -0
  258. package/dist/src/plugins/filesystemPlugin/front/file-tree/FileTree.d.ts +59 -0
  259. package/dist/src/plugins/filesystemPlugin/front/file-tree/FileTreeView.d.ts +83 -0
  260. package/dist/src/plugins/filesystemPlugin/front/file-tree/__tests__/FileTree.test.d.ts +1 -0
  261. package/dist/src/plugins/filesystemPlugin/front/file-tree/__tests__/FileTreePane.test.d.ts +1 -0
  262. package/dist/src/plugins/filesystemPlugin/front/file-tree/__tests__/copyToClipboard.test.d.ts +1 -0
  263. package/dist/src/plugins/filesystemPlugin/front/file-tree/clipboard.d.ts +6 -0
  264. package/dist/src/plugins/filesystemPlugin/front/file-tree/dndManager.d.ts +8 -0
  265. package/dist/src/plugins/filesystemPlugin/front/file-tree/treeModel.d.ts +20 -0
  266. package/dist/src/plugins/filesystemPlugin/front/filePanelBinding.d.ts +1 -0
  267. package/dist/src/plugins/filesystemPlugin/front/html-viewer/HtmlViewer.d.ts +18 -0
  268. package/dist/src/plugins/filesystemPlugin/front/html-viewer/HtmlViewer.test.d.ts +1 -0
  269. package/dist/src/plugins/filesystemPlugin/front/html-viewer/HtmlViewerPane.d.ts +7 -0
  270. package/dist/src/plugins/filesystemPlugin/front/index.d.ts +11 -0
  271. package/dist/src/plugins/filesystemPlugin/front/markdown-editor/MarkdownEditor.d.ts +44 -0
  272. package/dist/src/plugins/filesystemPlugin/front/markdown-editor/MarkdownEditorPane.d.ts +8 -0
  273. package/dist/src/plugins/filesystemPlugin/front/markdown-editor/ResizableImage.d.ts +10 -0
  274. package/dist/src/plugins/filesystemPlugin/front/markdown-editor/__tests__/MarkdownEditor.test.d.ts +1 -0
  275. package/dist/src/plugins/filesystemPlugin/front/markdown-editor/__tests__/MarkdownEditorPane.test.d.ts +1 -0
  276. package/dist/src/plugins/filesystemPlugin/front/media-viewer/MediaViewer.d.ts +9 -0
  277. package/dist/src/plugins/filesystemPlugin/front/media-viewer/MediaViewer.test.d.ts +1 -0
  278. package/dist/src/plugins/filesystemPlugin/front/media-viewer/MediaViewerPane.d.ts +8 -0
  279. package/dist/src/plugins/filesystemPlugin/front/media-viewer/useMediaViewerReload.d.ts +8 -0
  280. package/dist/src/plugins/filesystemPlugin/front/media-viewer/useMediaViewerReload.test.d.ts +1 -0
  281. package/dist/src/plugins/filesystemPlugin/front/search.d.ts +5 -0
  282. package/dist/src/plugins/filesystemPlugin/front/search.test.d.ts +1 -0
  283. package/dist/src/plugins/filesystemPlugin/front/surfaceResolver.d.ts +10 -0
  284. package/dist/src/plugins/filesystemPlugin/front/useFilePane.d.ts +61 -0
  285. package/dist/src/plugins/filesystemPlugin/shared/constants.d.ts +12 -0
  286. package/dist/src/plugins/filesystemPlugin/shared/events.d.ts +39 -0
  287. package/dist/src/shared/__tests__/filesystem.test.d.ts +1 -0
  288. package/dist/src/shared/__tests__/telemetry.test.d.ts +1 -0
  289. package/dist/src/shared/__tests__/workspaceBridgeRpc.test.d.ts +1 -0
  290. package/dist/src/shared/index.d.ts +25 -0
  291. package/dist/src/shared/plugins/CatalogRegistry.d.ts +28 -0
  292. package/dist/src/shared/plugins/CommandRegistry.d.ts +23 -0
  293. package/dist/src/shared/plugins/SurfaceResolverRegistry.d.ts +24 -0
  294. package/dist/src/shared/plugins/__tests__/bootstrap.test.d.ts +1 -0
  295. package/dist/src/shared/plugins/__tests__/frontFactory.test.d.ts +1 -0
  296. package/dist/src/shared/plugins/__tests__/manifest.test.d.ts +1 -0
  297. package/dist/src/shared/plugins/__tests__/uiBridgeRegistry.test.d.ts +1 -0
  298. package/dist/src/shared/plugins/appLeftOverlayChrome.d.ts +10 -0
  299. package/dist/src/shared/plugins/bootstrap.d.ts +41 -0
  300. package/dist/src/shared/plugins/errors.d.ts +5 -0
  301. package/dist/src/shared/plugins/frontFactory.d.ts +166 -0
  302. package/dist/src/shared/plugins/index.d.ts +5 -0
  303. package/dist/src/shared/plugins/manifest.d.ts +58 -0
  304. package/dist/src/shared/plugins/runtimePluginTypes.d.ts +51 -0
  305. package/dist/src/shared/plugins/types.d.ts +84 -0
  306. package/dist/src/shared/plugins/uiBridgeRegistry.d.ts +44 -0
  307. package/dist/src/shared/plugins/workspaceShellCapabilities.d.ts +44 -0
  308. package/dist/src/shared/telemetry.d.ts +11 -0
  309. package/dist/src/shared/types/agent-tool.d.ts +30 -0
  310. package/dist/src/shared/types/boring-core-front.d.ts +2 -0
  311. package/dist/src/shared/types/filesystem.d.ts +15 -0
  312. package/dist/src/shared/types/panel.d.ts +123 -0
  313. package/dist/src/shared/types/surface.d.ts +42 -0
  314. package/dist/src/shared/ui-bridge.d.ts +77 -0
  315. package/dist/src/shared/workspace-bridge-rpc.d.ts +122 -0
  316. package/dist/{surface-aLQ_Hryw.d.ts → surface-h6IgrsK5.d.ts} +1 -1
  317. package/dist/testing-e2e.d.ts +2 -73
  318. package/dist/testing.d.ts +2 -433
  319. package/dist/testing.js +11 -11
  320. package/dist/{ui-bridge-D2eO3epD.d.ts → ui-bridge-C4CyIrQA.d.ts} +1 -1
  321. package/dist/{workspace-bridge-rpc-A98RA5o6.d.ts → workspace-bridge-rpc-BHsOJMlW.d.ts} +1 -1
  322. package/dist/workspace.css +21 -0
  323. package/dist/workspace.d.ts +2 -2649
  324. package/dist/workspace.js +40 -40
  325. package/package.json +4 -4
@@ -1,883 +1,2 @@
1
- import { ComponentType } from 'react';
2
- import { DockviewApi } from 'dockview-react';
3
- import { DockviewPanelApi } from 'dockview-react';
4
- import { JSX } from 'react';
5
- import { PiChatPanelProps } from '@hachej/boring-agent/front';
6
- import { ReactNode } from 'react';
7
- import { SlashCommand } from '@hachej/boring-agent/front';
8
-
9
- declare interface BoringFrontAPI {
10
- registerProvider(registration: BoringFrontProviderRegistration): void;
11
- registerBinding(registration: BoringFrontBindingRegistration): void;
12
- registerCatalog(registration: CatalogConfig): void;
13
- registerPanel<T = unknown>(registration: BoringFrontPanelRegistration<T>): void;
14
- registerWorkspaceSource<T = unknown>(registration: BoringFrontWorkspaceSourceRegistration<T>): void;
15
- registerPanelCommand(registration: BoringFrontPanelCommandRegistration): void;
16
- registerAppLeftAction(registration: BoringFrontAppLeftActionRegistration): void;
17
- registerSurfaceResolver(registration: BoringFrontSurfaceResolverRegistration): void;
18
- registerToolRenderer(registration: BoringFrontToolRendererRegistration): void;
19
- }
20
-
21
- declare interface BoringFrontAppLeftActionRegistration {
22
- id: string;
23
- label: string;
24
- icon?: ComponentType<{
25
- className?: string;
26
- }>;
27
- trailing?: ComponentType;
28
- overlay: ComponentType<BoringFrontAppLeftOverlayProps>;
29
- order?: number;
30
- emphasis?: boolean;
31
- }
32
-
33
- declare interface BoringFrontAppLeftOverlayProps {
34
- onClose: () => void;
35
- }
36
-
37
- declare interface BoringFrontBindingRegistration {
38
- id: string;
39
- component: PluginBinding;
40
- }
41
-
42
- declare type BoringFrontFactory = (api: BoringFrontAPI) => void | Promise<void>;
43
-
44
- /**
45
- * A `BoringFrontFactory` that carries its own plugin id (and optional
46
- * label) as static properties. Produced by `definePlugin({ ... })` and used
47
- * directly by `WorkspaceProvider.plugins`.
48
- */
49
- declare type BoringFrontFactoryWithId = BoringFrontFactory & {
50
- pluginId: string;
51
- pluginLabel?: string;
52
- };
53
-
54
- declare interface BoringFrontPanelCommandRegistration {
55
- id: string;
56
- title: string;
57
- panelId?: string;
58
- run?: () => void;
59
- keywords?: string[];
60
- shortcut?: string;
61
- when?: () => boolean;
62
- }
63
-
64
- declare interface BoringFrontPanelRegistration<T = unknown> {
65
- id: string;
66
- component: ComponentType<PaneProps<T>> | (() => Promise<{
67
- default: ComponentType<PaneProps<T>>;
68
- }>);
69
- label?: string;
70
- icon?: ComponentType<{
71
- className?: string;
72
- }>;
73
- placement?: PanelConfig["placement"];
74
- requiresCapabilities?: string[];
75
- essential?: boolean;
76
- lazy?: boolean;
77
- chromeless?: boolean;
78
- supportsFullPage?: boolean;
79
- source?: string;
80
- }
81
-
82
- declare interface BoringFrontProviderRegistration {
83
- id: string;
84
- component: PluginProvider;
85
- }
86
-
87
- declare interface BoringFrontSurfaceResolverRegistration {
88
- id?: string;
89
- kind: string;
90
- title?: string;
91
- description?: string;
92
- targetHint?: string;
93
- examples?: SurfaceResolverExample[];
94
- metaSchema?: Record<string, unknown>;
95
- source?: string;
96
- resolve: (request: SurfaceOpenRequest) => SurfacePanelResolution | null | undefined;
97
- }
98
-
99
- declare type BoringFrontToolRenderer = (part: unknown) => ReactNode;
100
-
101
- declare interface BoringFrontToolRendererRegistration {
102
- id: string;
103
- render: BoringFrontToolRenderer;
104
- }
105
-
106
- declare interface BoringFrontWorkspaceSourceRegistration<T = unknown> {
107
- id: string;
108
- component: ComponentType<WorkspaceSourceProps<T>> | (() => Promise<{
109
- default: ComponentType<WorkspaceSourceProps<T>>;
110
- }>);
111
- label?: string;
112
- icon?: ComponentType<{
113
- className?: string;
114
- }>;
115
- requiresCapabilities?: string[];
116
- lazy?: boolean;
117
- chromeless?: boolean;
118
- defaultPanelId?: string;
119
- source?: string;
120
- }
121
-
122
- declare interface CapturedBoringFrontRegistrations {
123
- providers: BoringFrontProviderRegistration[];
124
- bindings: BoringFrontBindingRegistration[];
125
- catalogs: CatalogConfig[];
126
- panels: BoringFrontPanelRegistration<any>[];
127
- workspaceSources: BoringFrontWorkspaceSourceRegistration<any>[];
128
- panelCommands: BoringFrontPanelCommandRegistration[];
129
- appLeftActions: BoringFrontAppLeftActionRegistration[];
130
- surfaceResolvers: BoringFrontSurfaceResolverRegistration[];
131
- toolRenderers: BoringFrontToolRendererRegistration[];
132
- }
133
-
134
- declare interface CapturedFrontPlugin {
135
- id: string;
136
- label?: string;
137
- registrations: CapturedBoringFrontRegistrations;
138
- }
139
-
140
- declare type CatalogAdapter = {
141
- search(args: CatalogSearchArgs): Promise<CatalogSearchResult>;
142
- fetchFacets?(args: CatalogFacetsArgs): Promise<CatalogFacets>;
143
- };
144
-
145
- declare type CatalogBadge = {
146
- /** 1–4 char mono code rendered as a chip. */
147
- code: string;
148
- tooltip?: string;
149
- };
150
-
151
- declare interface CatalogConfig {
152
- id: string;
153
- label: string;
154
- adapter: CatalogAdapter;
155
- onSelect: (row: CatalogRow) => void;
156
- pluginId?: string;
157
- }
158
-
159
- declare type CatalogFacets = Record<string, CatalogFacetValue[]>;
160
-
161
- declare type CatalogFacetsArgs = {
162
- filters: Record<string, string[]>;
163
- signal?: AbortSignal;
164
- };
165
-
166
- declare type CatalogFacetValue = {
167
- value: string;
168
- count: number;
169
- };
170
-
171
- declare type CatalogRow = {
172
- id: string;
173
- title: string;
174
- subtitle?: string;
175
- group?: string;
176
- leading?: CatalogBadge;
177
- trailing?: CatalogBadge[];
178
- meta?: string;
179
- };
180
-
181
- declare type CatalogSearchArgs = {
182
- query: string;
183
- filters: Record<string, string[]>;
184
- group?: {
185
- key: string;
186
- value: string;
187
- };
188
- limit: number;
189
- offset: number;
190
- signal?: AbortSignal;
191
- };
192
-
193
- declare type CatalogSearchResult = {
194
- items: CatalogRow[];
195
- total: number;
196
- hasMore: boolean;
197
- };
198
-
199
- declare interface ChatLayoutProps {
200
- nav?: string | null;
201
- navParams?: Record<string, unknown>;
202
- center?: string;
203
- centerParams?: Record<string, unknown>;
204
- chatPanes?: ChatPaneDescriptor[];
205
- /** Optional host actions rendered in the active chat pane header. */
206
- chatTopActions?: ReactNode;
207
- activeChatPaneId?: string | null;
208
- onActiveChatPaneChange?: (id: string) => void;
209
- onCloseChatPane?: (id: string) => void;
210
- onCreateChatPaneAfter?: (id: string) => void;
211
- onDropChatSession?: (sessionId: string) => void;
212
- flashChatPaneId?: string | null;
213
- surface?: string | null;
214
- surfaceParams?: Record<string, unknown>;
215
- /** Opaque overlay rendered over the full chat stage only (not over the workbench). */
216
- chatOverlay?: ReactNode;
217
- /** Called when shell chrome needs to dismiss the chat overlay before collapsing chat. */
218
- onCloseChatOverlay?: () => void;
219
- surfaceOverlay?: ReactNode;
220
- sidebar?: string | null;
221
- sidebarParams?: Record<string, unknown>;
222
- storageKey?: string;
223
- onOpenNav?: () => void;
224
- onOpenSurface?: () => void;
225
- surfaceButtonBottomOffset?: number;
226
- onOpenSidebar?: () => void;
227
- className?: string;
228
- }
229
-
230
- declare interface ChatPaneDescriptor {
231
- id: string;
232
- title?: string | null;
233
- panel?: string;
234
- params?: Record<string, unknown>;
235
- }
236
-
237
- declare interface CommandConfig {
238
- id: string;
239
- title: string;
240
- run: () => void;
241
- keywords?: string[];
242
- shortcut?: string;
243
- when?: () => boolean;
244
- pluginId?: string;
245
- }
246
-
247
- declare interface CommandPaletteSessionItem {
248
- id: string;
249
- title?: string | null;
250
- updatedAt?: string | number;
251
- turnCount?: number;
252
- }
253
-
254
- declare interface CommandPaletteSessionSearchConfig {
255
- sessions: CommandPaletteSessionItem[];
256
- activeId?: string | null;
257
- openIds?: readonly string[];
258
- search?: (sessions: readonly CommandPaletteSessionItem[], query: string) => CommandPaletteSessionItem[];
259
- onSwitch: (id: string) => void;
260
- onOpenAsTab: (id: string) => void;
261
- }
262
-
263
- export declare function createLocalStorageSessions(opts?: CreateLocalStorageSessionsOptions): WorkspaceLocalSessionsStore;
264
-
265
- export declare interface CreateLocalStorageSessionsOptions {
266
- storageKey?: string;
267
- initial?: () => WorkspaceLocalSessionsState;
268
- }
269
-
270
- declare type FilesystemId = "user" | "company_context" | (string & {});
271
-
272
- declare type FrontPluginHotReloadMode = "vite" | false;
273
-
274
- export declare const FULL_PAGE_PANEL_INVALID_PARAMS_JSON = "FULL_PAGE_PANEL_INVALID_PARAMS_JSON";
275
-
276
- export declare const FULL_PAGE_PANEL_MISSING_COMPONENT = "FULL_PAGE_PANEL_MISSING_COMPONENT";
277
-
278
- export declare const FULL_PAGE_PANEL_NOT_SUPPORTED = "FULL_PAGE_PANEL_NOT_SUPPORTED";
279
-
280
- export declare const FULL_PAGE_PANEL_PARAMS_NOT_OBJECT = "FULL_PAGE_PANEL_PARAMS_NOT_OBJECT";
281
-
282
- export declare const FULL_PAGE_PANEL_RENDER_FAILED = "FULL_PAGE_PANEL_RENDER_FAILED";
283
-
284
- export declare const FULL_PAGE_PANEL_UNKNOWN_COMPONENT = "FULL_PAGE_PANEL_UNKNOWN_COMPONENT";
285
-
286
- declare type OpenArtifactHandler = (path: string, options?: {
287
- filesystem?: FilesystemId;
288
- }) => void;
289
-
290
- declare interface OpenPanelConfig {
291
- /** Panel instance id. If a panel with this id is already open, it's re-activated instead of duplicated. */
292
- id: string;
293
- /** Registered component id (must match a `PanelConfig.id` in WorkspaceProvider's panel registry). */
294
- component: string;
295
- /** Tab title. Defaults to `id`. */
296
- title?: string;
297
- /** Arbitrary params passed to the pane component. */
298
- params?: Record<string, unknown>;
299
- }
300
-
301
- declare interface PanelConfig<T = any> {
302
- id: string;
303
- title: string;
304
- icon?: ComponentType<{
305
- className?: string;
306
- }>;
307
- /** Placement hint. Public plugin placements: "workspace-page" | "shared-dockview". */
308
- placement?: PanelPlacement | string;
309
- requiresCapabilities?: string[];
310
- essential?: boolean;
311
- chromeless?: boolean;
312
- supportsFullPage?: boolean;
313
- /** Source: "builtin" | "app" */
314
- source?: string;
315
- pluginId?: string;
316
- /** Revision emitted by the runtime plugin asset manager for hot-loaded panels. */
317
- pluginRevision?: number;
318
- /**
319
- * Whether to wrap the component with React.lazy + Suspense. Omit to let
320
- * the registry auto-detect: zero-arg functions (factories) are treated as
321
- * lazy; components that accept a props argument are treated as eager.
322
- */
323
- lazy?: boolean;
324
- component: ComponentType<PaneProps<T>> | (() => Promise<{
325
- default: ComponentType<PaneProps<T>>;
326
- }>);
327
- }
328
-
329
- declare type PanelPlacement = "left" | "center" | "right" | "bottom" | "shared-dockview" | "workspace-page" | "right-tab";
330
-
331
- /**
332
- * Unified prop shape for panel components rendered inside DockviewShell.
333
- *
334
- * Structurally mirrors dockview's `IDockviewPanelProps<T>` so dockview
335
- * can render registered components directly — no wrapper, no field
336
- * renaming, no `as` casts. We re-state the shape (rather than re-export
337
- * dockview's type) so the workspace package owns its public contract:
338
- * if dockview's type ever drifts, only the wiring inside DockviewShell
339
- * needs to change.
340
- *
341
- * Use {@link definePanel} for type-safe registration.
342
- *
343
- * @typeParam T - Shape of the panel-specific `params` payload. Defaults
344
- * to `unknown` because layouts restored from JSON are inherently
345
- * un-typed at runtime; use a generic param when you control the
346
- * addPanel call site, otherwise read defensively.
347
- */
348
- declare interface PaneProps<T = unknown> {
349
- /** App-supplied data for this panel instance (e.g. `{ path: string }`). */
350
- params: T;
351
- /** Per-panel control surface (close, setActive, setTitle, …). */
352
- api: DockviewPanelApi;
353
- /** Top-level dockview API (groups, addPanel, removePanel, fromJSON, …). */
354
- containerApi: DockviewApi;
355
- /** Optional className forwarded to the pane's root element. */
356
- className?: string;
357
- }
358
-
359
- export declare interface ParsedFullPagePanelLocation {
360
- componentId: string | null;
361
- params: Record<string, unknown>;
362
- error?: {
363
- code: WorkspaceFullPageRouteErrorCode;
364
- message: string;
365
- };
366
- }
367
-
368
- export declare function parseFullPagePanelLocation(search: string): ParsedFullPagePanelLocation;
369
-
370
- declare type PluginBinding = ComponentType<unknown>;
371
-
372
- declare type PluginProvider = ComponentType<PluginProviderProps>;
373
-
374
- declare interface PluginProviderProps {
375
- apiBaseUrl: string;
376
- authHeaders?: Record<string, string>;
377
- onAuthError?: (statusCode: number) => void;
378
- apiTimeout?: number;
379
- activeSessionId?: string | null;
380
- openSessionIds?: readonly string[];
381
- children: ReactNode;
382
- }
383
-
384
- declare interface SessionItem {
385
- id: string;
386
- title: string;
387
- updatedAt?: string | number;
388
- }
389
-
390
- declare interface SurfaceOpenRequest {
391
- kind: string;
392
- target: string;
393
- filesystem?: FilesystemId;
394
- meta?: Record<string, unknown>;
395
- }
396
-
397
- declare interface SurfacePanelResolution {
398
- component: string;
399
- id?: string;
400
- title?: string;
401
- params?: Record<string, unknown>;
402
- score?: number;
403
- }
404
-
405
- declare interface SurfaceResolverExample {
406
- target: string;
407
- label?: string;
408
- meta?: Record<string, unknown>;
409
- }
410
-
411
- declare interface SurfaceShellApi {
412
- /** Open a file in the workbench. Idempotent — re-activates an existing pane for the same filesystem/path. */
413
- openFile: (path: string, options?: SurfaceShellOpenFileOptions) => void;
414
- /** Open a plugin-defined surface target through the registered surface resolvers. */
415
- openSurface: (request: SurfaceOpenRequest) => void;
416
- /**
417
- * Open a non-file pane in the workbench. Idempotent on `id` —
418
- * re-activates an existing panel with the same id rather than duplicating.
419
- * Use this for app-specific panes (charts, dashboards, log viewers, …) that
420
- * aren't anchored to a filesystem path.
421
- */
422
- openPanel: (config: OpenPanelConfig) => void;
423
- /** Hide the workbench's left sources/files pane while leaving the workbench open. */
424
- closeWorkbenchLeftPane: () => void;
425
- /** Reveal/select a file-tree path without opening an editor pane. */
426
- expandToFile: (path: string) => void;
427
- /** Current snapshot of open tabs + active tab. */
428
- getSnapshot: () => SurfaceShellSnapshot;
429
- }
430
-
431
- declare interface SurfaceShellOpenFileOptions {
432
- filesystem?: FilesystemId;
433
- mode?: "view" | "edit" | "diff";
434
- }
435
-
436
- declare interface SurfaceShellProps {
437
- rootDir?: string;
438
- sidebarDefaultWidth?: number;
439
- sidebarMinWidth?: number;
440
- sidebarMaxWidth?: number;
441
- storageKey?: string;
442
- /** Called once when the surface dockview becomes ready, with an imperative handle. */
443
- onReady?: (api: SurfaceShellApi) => void;
444
- /** Called on every panel add/remove/active-change with the current snapshot. */
445
- onChange?: (snapshot: SurfaceShellSnapshot) => void;
446
- /** Optional close action for hosts that model the workbench as collapsible. */
447
- onClose?: () => void;
448
- /** Render the built-in top-right close affordance. Hosts can set false when they provide their own chrome. */
449
- showCloseAction?: boolean;
450
- /**
451
- * Extra panel ids (registered via WorkspaceProvider's `panels` prop) that
452
- * this workbench is allowed to render. Defaults to the built-in
453
- * editor/viewer panels only. Pass app-specific pane ids here so calls
454
- * like `surface.openPanel({ component: "chart-canvas" })` actually
455
- * instantiate — without this, dockview's components map filters them
456
- * out and you get an empty tab. Two-layer defense: SurfaceShell.openPanel
457
- * validates against the registry (loud throw on unknown), AND the
458
- * dockview allowlist below filters which registered panels can mount
459
- * inside THIS surface (so a host can gate panels per shell instance).
460
- */
461
- extraPanels?: string[];
462
- defaultLeftTab?: string;
463
- onReloadAgentPlugins?: () => void | Promise<unknown>;
464
- initialPanels?: Array<{
465
- id: string;
466
- component: string;
467
- title?: string;
468
- params?: Record<string, unknown>;
469
- }>;
470
- className?: string;
471
- }
472
-
473
- declare interface SurfaceShellSnapshot {
474
- openTabs: SurfaceShellTab[];
475
- activeTab: string | null;
476
- }
477
-
478
- declare interface SurfaceShellTab {
479
- id: string;
480
- /** Registered panel component id for this tab. May differ from the tab instance id. */
481
- component?: string;
482
- title: string;
483
- params?: Record<string, unknown>;
484
- }
485
-
486
- export declare function useLocalStorageSessions(store: WorkspaceLocalSessionsStore): WorkspaceLocalSessionsState;
487
-
488
- export declare type UseWorkspaceAgentSessions<TSession extends WorkspaceAgentSession = WorkspaceAgentSession> = (options: {
489
- requestHeaders: Record<string, string>;
490
- storageKey: string;
491
- workspaceId?: string;
492
- apiBaseUrl?: string;
493
- enabled?: boolean;
494
- refreshKey?: unknown;
495
- }) => WorkspaceAgentSessionsApi<TSession>;
496
-
497
- declare interface WorkspaceAgentAppLeftAction {
498
- id: string;
499
- label: string;
500
- icon: ReactNode;
501
- onClick: () => void;
502
- trailing?: ReactNode;
503
- emphasis?: boolean;
504
- }
505
-
506
- declare type WorkspaceAgentAppLeftHeaderMode = "full" | "workspace" | "hidden";
507
-
508
- declare type WorkspaceAgentAppLeftLayoutMode = "single-project" | "multi-project";
509
-
510
- declare interface WorkspaceAgentAppLeftOverlayAction {
511
- id: string;
512
- label: string;
513
- icon: ReactNode;
514
- trailing?: ReactNode;
515
- emphasis?: boolean;
516
- render: (props: WorkspaceAgentAppLeftOverlayRenderProps) => ReactNode;
517
- }
518
-
519
- declare interface WorkspaceAgentAppLeftOverlayRenderProps {
520
- onClose: () => void;
521
- headerInsetStart: boolean;
522
- headerInsetEnd: boolean;
523
- workspaceId: string;
524
- }
525
-
526
- declare interface WorkspaceAgentAppLeftProject {
527
- id: string;
528
- name: string;
529
- available?: boolean;
530
- sessionCount?: number;
531
- blockedCount?: number;
532
- sessions?: WorkspaceAgentAppLeftProjectSession[];
533
- hasMoreSessions?: boolean;
534
- loadingSessions?: boolean;
535
- }
536
-
537
- declare interface WorkspaceAgentAppLeftProjectSession {
538
- id: string;
539
- title?: string | null;
540
- updatedAt?: string | number;
541
- }
542
-
543
- export declare function WorkspaceAgentFront<TSession extends WorkspaceAgentSession = WorkspaceAgentSession>({ workspaceId, chatPanel: chatPanelProp, useSessions: useSessionsProp, requestHeaders, sessionStorageKey, providerStorageKey, surfaceStorageKey, beforeShell, afterShell, panels, commands, catalogs, plugins, excludeDefaults, capabilities, apiBaseUrl, authHeaders, apiTimeout, defaultTheme, onThemeChange, persistenceEnabled, debug, bridgeEndpoint, fullPageBasePath, onAuthError, sessions, activeSessionId, onSwitchSession, onCreateSession, onDeleteSession, onActiveSessionIdChange, appTitle, workspaceLabel, workspaceSectionTitle, appLeftLayoutMode, appLeftHeaderMode, appLeftProjects, appLeftActiveProjectId, onSwitchAppLeftProject, onOpenAppLeftProjectSession, onShowMoreAppLeftProjectSessions, onCreateAppLeftProject, onOpenAppLeftProjectSettings, onOpenAppLeftProjectInNewTab, defaultSessionTitle, workspaceLayout, navEnabled, defaultNavOpen, defaultAppLeftPaneCollapsed, defaultSurfaceOpen, defaultWorkbenchLeftTab, defaultWorkbenchLeftOpen, surfaceInitialPanels, topBarLeft, topBarRight, showThemeToggle, defaultLeftOverlay, showSkills, showPlugins, appLeftActions, appLeftOverlayActions, chatParams, externalPlugins, hotReloadEnabled, frontPluginHotReload, extraPanels, extraCommands, provisionWorkspace, bootPreloadPaths, onWorkspaceWarmupStatusChange, onOpenNav, onOpenSurface, surfaceButtonBottomOffset, className, }: WorkspaceAgentFrontProps<TSession>): JSX.Element;
544
-
545
- export declare interface WorkspaceAgentFrontProps<TSession extends WorkspaceAgentSession = WorkspaceAgentSession> extends Omit<WorkspaceProviderProps, "children" | "workspaceId" | "storageKey" | "chatPanel" | "commandPaletteSessionSearch">, Omit<ChatLayoutProps, "nav" | "navParams" | "center" | "centerParams" | "chatPanes" | "chatTopActions" | "activeChatPaneId" | "onActiveChatPaneChange" | "onCloseChatPane" | "onCreateChatPaneAfter" | "onDropChatSession" | "flashChatPaneId" | "surface" | "surfaceParams" | "sidebar" | "sidebarParams" | "storageKey"> {
546
- workspaceId: string;
547
- chatPanel?: ComponentType<WorkspaceChatPanelProps>;
548
- useSessions?: UseWorkspaceAgentSessions<TSession>;
549
- requestHeaders?: Record<string, string>;
550
- sessionStorageKey?: string;
551
- providerStorageKey?: string;
552
- surfaceStorageKey?: string;
553
- beforeShell?: ReactNode;
554
- afterShell?: ReactNode;
555
- appTitle?: string;
556
- workspaceLabel?: string;
557
- /** App-left workspace/project section title. Defaults to "Workspaces". */
558
- workspaceSectionTitle?: string;
559
- /** App-left layout mode. single-project uses the workspace dropdown; multi-project renders workspaces inline. */
560
- appLeftLayoutMode?: WorkspaceAgentAppLeftLayoutMode;
561
- /** App-left header mode: full brand, workspace picker only, or hidden with collapse-button clearance. */
562
- appLeftHeaderMode?: WorkspaceAgentAppLeftHeaderMode;
563
- /** Optional cross-project overview rendered in the app-left workspace/project section. */
564
- appLeftProjects?: WorkspaceAgentAppLeftProject[];
565
- appLeftActiveProjectId?: string | null;
566
- onSwitchAppLeftProject?: (projectId: string) => void;
567
- onOpenAppLeftProjectSession?: (projectId: string, sessionId: string) => void;
568
- onShowMoreAppLeftProjectSessions?: (projectId: string) => void;
569
- onCreateAppLeftProject?: () => void;
570
- /** Open a project's workspace settings (host wires routing — workspace pkg has no router). */
571
- onOpenAppLeftProjectSettings?: (projectId: string) => void;
572
- /** Open a project in a new browser tab (host builds the href). */
573
- onOpenAppLeftProjectInNewTab?: (projectId: string) => void;
574
- defaultSessionTitle?: string;
575
- /**
576
- * Opt into the Phase 2 app/session left-pane shell. Defaults to the
577
- * existing classic top-bar + session-drawer workspace layout.
578
- */
579
- workspaceLayout?: WorkspaceAgentLayout;
580
- navEnabled?: boolean;
581
- defaultNavOpen?: boolean;
582
- /** Initial collapsed state for the plugin-tabs app-left pane. */
583
- defaultAppLeftPaneCollapsed?: boolean;
584
- defaultSurfaceOpen?: boolean;
585
- defaultWorkbenchLeftTab?: string;
586
- defaultWorkbenchLeftOpen?: boolean;
587
- surfaceInitialPanels?: SurfaceShellProps["initialPanels"];
588
- topBarLeft?: ReactNode;
589
- topBarRight?: ReactNode;
590
- /**
591
- * Show the built-in top-bar theme toggle. Defaults to true for standalone
592
- * hosts (e.g. the workspace playground) that have no other theme control.
593
- * Full apps that already expose theme switching elsewhere (e.g. the core
594
- * UserMenu) should set this to false to avoid a duplicate control.
595
- */
596
- showThemeToggle?: boolean;
597
- /** Initial plugin-tabs overlay, useful for demos/deep links. */
598
- defaultLeftOverlay?: string | null;
599
- /** Show the plugin-tabs Skills action/overlay. Defaults to true. */
600
- showSkills?: boolean;
601
- /** Show the plugin-tabs Plugins action/overlay. Defaults to true. */
602
- showPlugins?: boolean;
603
- /** Extra actions inserted into the app-left primary action list before built-in management actions. */
604
- appLeftActions?: readonly WorkspaceAgentAppLeftAction[];
605
- /** Extra chat-hosted management overlays opened from the app-left primary action list. */
606
- appLeftOverlayActions?: readonly WorkspaceAgentAppLeftOverlayAction[];
607
- sessions?: Array<{
608
- id: string;
609
- title?: string | null;
610
- updatedAt?: string | number;
611
- turnCount?: number;
612
- }>;
613
- activeSessionId?: string | null;
614
- onSwitchSession?: (id: string) => void;
615
- onCreateSession?: () => unknown | Promise<unknown>;
616
- onDeleteSession?: (id: string) => void;
617
- onActiveSessionIdChange?: (sessionId: string | null) => void;
618
- chatParams?: Record<string, unknown>;
619
- /**
620
- * Enable user-authored external plugin UX in the frontend. When `false`,
621
- * disables front plugin hot reload and hides the chat `/reload` UX. App/
622
- * internal statically composed plugins still work.
623
- */
624
- externalPlugins?: boolean;
625
- /**
626
- * Forward to ChatPanel — when `false`, the `/reload` slash command is
627
- * hidden and the PluginUpdateStatus banner above the composer is
628
- * suppressed. Production apps that don't ship live plugin editing
629
- * should pass `false`. Defaults to `true` (dev/playground default).
630
- */
631
- hotReloadEnabled?: boolean;
632
- extraPanels?: string[];
633
- extraCommands?: SlashCommand[];
634
- provisionWorkspace?: boolean;
635
- bootPreloadPaths?: string[];
636
- onWorkspaceWarmupStatusChange?: (status: WorkspaceWarmupStatus) => void;
637
- }
638
-
639
- export declare type WorkspaceAgentLayout = "classic" | "plugin-tabs";
640
-
641
- export declare interface WorkspaceAgentSession {
642
- id: string;
643
- title?: string | null;
644
- updatedAt?: string | number;
645
- turnCount?: number;
646
- }
647
-
648
- export declare interface WorkspaceAgentSessionsApi<TSession extends WorkspaceAgentSession = WorkspaceAgentSession> {
649
- sessions: TSession[];
650
- loading: boolean;
651
- loadingMore?: boolean;
652
- hasMore?: boolean;
653
- error?: Error | null;
654
- activeSessionId?: string | null;
655
- activeSession?: TSession | null;
656
- workspaceId?: string | null;
657
- switch: (id: string) => void;
658
- create: (input?: {
659
- title?: string;
660
- }) => void | Promise<unknown>;
661
- delete: (id: string) => void | Promise<unknown>;
662
- loadMore?: () => void | Promise<unknown>;
663
- refresh?: (options?: {
664
- background?: boolean;
665
- }) => void | Promise<unknown>;
666
- }
667
-
668
- declare type WorkspaceAttentionBlocker = {
669
- id: string;
670
- /** Plugin/domain-specific reason, e.g. "ask-user.question" or "pr-review.review". */
671
- reason: string;
672
- surfaceKind?: string;
673
- target?: string;
674
- label?: string;
675
- sessionId?: string;
676
- /** Optional generic session-row badge contributed by the plugin that owns this attention. */
677
- sessionBadge?: WorkspaceAttentionSessionBadge;
678
- /**
679
- * Remove this blocker once its workspace chat session disappears from the
680
- * authoritative session list. Leave unset for external inbox items whose
681
- * `sessionId` is a source/thread identifier rather than a local chat id.
682
- */
683
- pruneWhenSessionMissing?: boolean;
684
- /** Explicit inbox projection metadata. New inbox-aware plugins should provide this instead of relying on reason parsing. */
685
- inbox?: WorkspaceAttentionInboxMetadata;
686
- /** Optional shell focus behavior requested by the plugin that owns this blocker. */
687
- focus?: WorkspaceAttentionFocusMetadata;
688
- actions?: WorkspaceAttentionBlockerAction[];
689
- };
690
-
691
- declare type WorkspaceAttentionBlockerAction = {
692
- id: string;
693
- label: string;
694
- };
695
-
696
- declare type WorkspaceAttentionFocusMetadata = {
697
- /** Close the workbench left pane when this blocker becomes active for the current session. */
698
- closeWorkbenchLeftPane?: boolean;
699
- };
700
-
701
- declare type WorkspaceAttentionInboxMetadata = {
702
- kind: "question" | "review" | "approval" | "notice";
703
- sourceLabel: string;
704
- createdAt?: string | number | Date;
705
- updatedAt?: string | number | Date;
706
- priority?: number;
707
- };
708
-
709
- declare type WorkspaceAttentionSessionBadge = {
710
- /** Stable badge kind for data attributes and plugin-specific styling hooks. */
711
- kind: string;
712
- /** Short text rendered on the session row, e.g. "question", "review", "approval". */
713
- label: string;
714
- /** Visual tone only; semantics are owned by the plugin-specific kind/reason. */
715
- tone?: "attention" | "danger" | "neutral" | "warning";
716
- /** Higher priority wins when several plugins mark the same session. */
717
- priority?: number;
718
- };
719
-
720
- export declare function WorkspaceBackgroundBoot({ workspaceId, requestHeaders, apiBaseUrl, preloadPaths, provisionWorkspace, onStatusChange, }: WorkspaceBackgroundBootProps): null;
721
-
722
- export declare interface WorkspaceBackgroundBootProps {
723
- workspaceId: string;
724
- requestHeaders?: Record<string, string>;
725
- apiBaseUrl?: string | null;
726
- preloadPaths?: string[];
727
- provisionWorkspace?: boolean;
728
- onStatusChange?: (status: WorkspaceWarmupStatus) => void;
729
- }
730
-
731
- export declare function WorkspaceBootGate({ workspaceId, requestHeaders, apiBaseUrl, preloadPaths, provisionWorkspace, loadingFallback, errorFallback, children, }: WorkspaceBootGateProps): JSX.Element;
732
-
733
- export declare interface WorkspaceBootGateProps {
734
- workspaceId: string;
735
- requestHeaders?: Record<string, string>;
736
- apiBaseUrl?: string | null;
737
- preloadPaths?: string[];
738
- provisionWorkspace?: boolean;
739
- loadingFallback?: ReactNode | ((status: string) => ReactNode);
740
- errorFallback?: ReactNode | ((message: string) => ReactNode);
741
- children: ReactNode;
742
- }
743
-
744
- declare type WorkspaceChatPanelComponent = ComponentType<any>;
745
-
746
- declare interface WorkspaceChatPanelProps extends Omit<PiChatPanelProps<WorkspaceAttentionBlocker>, "onOpenArtifact"> {
747
- sessionId: string;
748
- onOpenArtifact?: OpenArtifactHandler;
749
- /** Endpoint base for agent → visible-workbench UI commands. */
750
- bridgeEndpoint?: string | null;
751
- /** Imperative handle getter for the visible workbench surface. */
752
- getSurface?: () => SurfaceShellApi | null;
753
- /** Reads whether the visible workbench surface should be open. */
754
- isWorkbenchOpen?: () => boolean;
755
- /** Opens the visible workbench surface before dispatching a command. */
756
- openWorkbench?: () => void;
757
- /** Opens the visible workbench sources/file-tree pane before dispatching a reveal. */
758
- openWorkbenchSources?: () => void;
759
- /** Closes the visible workbench surface after an ephemeral command finishes. */
760
- closeWorkbench?: () => void;
761
- /** Host-injected composer blockers (for shell policies such as detached read-only chat). */
762
- composerBlockers?: WorkspaceAttentionBlocker[];
763
- onComposerStop?: () => void;
764
- onComposerBlockerAction?: (blocker: WorkspaceAttentionBlocker, action: string) => void;
765
- onData?: (part: unknown) => void;
766
- }
767
-
768
- export declare function WorkspaceFullPagePanel({ componentId, params }: WorkspaceFullPagePanelProps): JSX.Element;
769
-
770
- export declare interface WorkspaceFullPagePanelProps {
771
- componentId: string;
772
- params?: Record<string, unknown>;
773
- }
774
-
775
- export declare type WorkspaceFullPageRouteErrorCode = typeof FULL_PAGE_PANEL_MISSING_COMPONENT | typeof FULL_PAGE_PANEL_INVALID_PARAMS_JSON | typeof FULL_PAGE_PANEL_PARAMS_NOT_OBJECT | typeof FULL_PAGE_PANEL_UNKNOWN_COMPONENT | typeof FULL_PAGE_PANEL_NOT_SUPPORTED | typeof FULL_PAGE_PANEL_RENDER_FAILED;
776
-
777
- export declare interface WorkspaceLocalSessionsState {
778
- sessions: SessionItem[];
779
- activeId: string;
780
- }
781
-
782
- export declare interface WorkspaceLocalSessionsStore {
783
- getState: () => WorkspaceLocalSessionsState;
784
- subscribe: (fn: () => void) => () => void;
785
- switchTo: (id: string) => void;
786
- create: () => void;
787
- remove: (id: string) => void;
788
- }
789
-
790
- declare interface WorkspaceProviderProps {
791
- children: ReactNode;
792
- chatPanel?: WorkspaceChatPanelComponent;
793
- /**
794
- * Front plugin entries produced by `definePlugin({ id, ... })` from
795
- * `@hachej/boring-workspace/plugin`.
796
- */
797
- plugins?: BoringFrontFactoryWithId[];
798
- capturedPlugins?: CapturedFrontPlugin[];
799
- excludeDefaults?: string[];
800
- panels?: PanelConfig[];
801
- commands?: CommandConfig[];
802
- catalogs?: CatalogConfig[];
803
- capabilities?: Record<string, boolean>;
804
- apiBaseUrl?: string;
805
- authHeaders?: Record<string, string>;
806
- /** Per-request timeout for the data layer's FetchClient, in ms. */
807
- apiTimeout?: number;
808
- /** Active chat/session scope shared with plugin providers that need session-scoped data. */
809
- activeSessionId?: string | null;
810
- /** Session ids that are currently open in chat panes, for plugins that must avoid opening closed-session UI. */
811
- openSessionIds?: readonly string[];
812
- /** Authoritative chat session ids used to drop stale session-scoped Inbox/attention entries. */
813
- attentionSessionIds?: readonly string[];
814
- /** False while session data is loading or paginated; prevents pruning valid off-page attention entries. */
815
- attentionSessionsAuthoritative?: boolean;
816
- defaultTheme?: "light" | "dark" | undefined;
817
- onThemeChange?: (theme: "light" | "dark") => void;
818
- workspaceId?: string;
819
- workspaceLabel?: string;
820
- appTitle?: string;
821
- storageKey?: string;
822
- persistenceEnabled?: boolean;
823
- manageDocumentTitle?: boolean;
824
- bridgeEndpoint?: string | null;
825
- onAuthError?: (statusCode: number) => void;
826
- onOpenFile?: (path: string) => void;
827
- debug?: boolean;
828
- /**
829
- * Hot-load dynamically discovered front plugin modules. The current
830
- * implementation relies on Vite's /@fs transform endpoint, so it defaults to
831
- * dev-only. Production hosts should keep this false until they provide their
832
- * own module asset endpoint.
833
- */
834
- frontPluginHotReload?: FrontPluginHotReloadMode;
835
- fullPageBasePath?: string;
836
- commandPaletteSessionSearch?: CommandPaletteSessionSearchConfig;
837
- }
838
-
839
- declare type WorkspaceRuntimeDependenciesWarmupStatus = {
840
- state: "preparing" | "ready" | "failed";
841
- message?: string;
842
- requirement?: string;
843
- };
844
-
845
- declare interface WorkspaceSourceOpenPanelConfig {
846
- id: string;
847
- component: string;
848
- title?: string;
849
- params?: Record<string, unknown>;
850
- }
851
-
852
- /**
853
- * Props for workspace source panes hosted in the left workspace rail.
854
- * These are not Dockview panels: they receive only source-pane params and
855
- * the explicit actions that the source host supports.
856
- */
857
- declare interface WorkspaceSourceProps<T = unknown> {
858
- params: T;
859
- className?: string;
860
- openPanel?: (config: WorkspaceSourceOpenPanelConfig) => void;
861
- }
862
-
863
- export declare type WorkspaceWarmupStatus = {
864
- status: "preparing";
865
- requirement?: "workspace-fs" | "sandbox-exec" | "ui-bridge";
866
- message?: string;
867
- runtimeDependencies?: WorkspaceRuntimeDependenciesWarmupStatus;
868
- } | {
869
- status: "ready";
870
- runtimeDependencies?: WorkspaceRuntimeDependenciesWarmupStatus;
871
- } | {
872
- status: "failed";
873
- message: string;
874
- requirement?: "workspace-fs" | "sandbox-exec" | "ui-bridge";
875
- runtimeDependencies?: WorkspaceRuntimeDependenciesWarmupStatus;
876
- };
877
-
878
- export { }
879
-
880
-
881
- declare global {
882
- var __BORING_RUNTIME_SINGLETONS__: Record<string, unknown> | undefined;
883
- }
1
+ export * from './src/app/front/index.js'
2
+ export {}