diff --git a/src/components/AppToolbar.vue b/src/components/AppToolbar.vue index 74efdcf..e71a0f1 100644 --- a/src/components/AppToolbar.vue +++ b/src/components/AppToolbar.vue @@ -8,7 +8,7 @@
- + + +
@@ -102,7 +118,7 @@ + + diff --git a/src/components/ContentLayout.vue b/src/components/ContentLayout.vue new file mode 100644 index 0000000..4d4e65f --- /dev/null +++ b/src/components/ContentLayout.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/src/components/DashboardPane.vue b/src/components/DashboardPane.vue new file mode 100644 index 0000000..99f1e61 --- /dev/null +++ b/src/components/DashboardPane.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/components/FilesPane.vue b/src/components/FilesPane.vue new file mode 100644 index 0000000..11e0660 --- /dev/null +++ b/src/components/FilesPane.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/composables/usePanels.ts b/src/composables/usePanels.ts index 9614c47..e27fb96 100644 --- a/src/composables/usePanels.ts +++ b/src/composables/usePanels.ts @@ -15,7 +15,7 @@ import { ref, computed, type Component } from 'vue'; import tenant from '../tenant'; // Top-level panes (columns) -export type PaneId = 'chat' | 'workspace'; +export type PaneId = 'chat' | 'dashboard' | 'files' | 'artifacts'; // Debug panels (stacked inside the debug column) export type PanelId = 'graph' | 'trace' | 'nodes' | 'awareness'; export type PanelLocation = 'side' | 'bottom'; @@ -77,7 +77,7 @@ function saveSet(key: string, ids: Set) { // Module-level state (survives HMR) const openPanelIds = ref>(loadSet(PANELS_KEY, [])); -const openPaneIds = ref>(loadSet(PANES_KEY, ['chat'])); +const openPaneIds = ref>(loadSet(PANES_KEY, ['chat', 'dashboard'])); export function usePanels() { // Current role @@ -108,8 +108,10 @@ export function usePanels() { const hasDebugColumn = hasSidePanels; // Pane state - const isChatOpen = computed(() => openPaneIds.value.has('chat')); - const isWorkspaceOpen = computed(() => openPaneIds.value.has('workspace')); + const isChatOpen = computed(() => openPaneIds.value.has('chat')); + const isDashboardOpen = computed(() => openPaneIds.value.has('dashboard')); + const isFilesOpen = computed(() => openPaneIds.value.has('files')); + const isArtifactsOpen = computed(() => openPaneIds.value.has('artifacts')); function togglePanel(id: PanelId) { const next = new Set(openPanelIds.value); @@ -158,7 +160,9 @@ export function usePanels() { openPanelIds, // Top-level panes isChatOpen, - isWorkspaceOpen, + isDashboardOpen, + isFilesOpen, + isArtifactsOpen, togglePane, isPaneOpen, openPaneIds, diff --git a/src/views/AgentsView.vue b/src/views/AgentsView.vue index 267dc59..552aaa1 100644 --- a/src/views/AgentsView.vue +++ b/src/views/AgentsView.vue @@ -24,33 +24,39 @@
- +
- - - - + + + + + + + - + {