diff --git a/src/agentkit/server/frontend/src/App.vue b/src/agentkit/server/frontend/src/App.vue
index 91809fc..f3fd2b6 100644
--- a/src/agentkit/server/frontend/src/App.vue
+++ b/src/agentkit/server/frontend/src/App.vue
@@ -1,13 +1,12 @@
-
+
diff --git a/src/agentkit/server/frontend/src/components/layout/AgentLayout.vue b/src/agentkit/server/frontend/src/components/layout/AgentLayout.vue
new file mode 100644
index 0000000..6860183
--- /dev/null
+++ b/src/agentkit/server/frontend/src/components/layout/AgentLayout.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/agentkit/server/frontend/src/components/layout/QuadrantPanel.vue b/src/agentkit/server/frontend/src/components/layout/QuadrantPanel.vue
new file mode 100644
index 0000000..84887f7
--- /dev/null
+++ b/src/agentkit/server/frontend/src/components/layout/QuadrantPanel.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
diff --git a/src/agentkit/server/frontend/src/components/layout/SplitPane.vue b/src/agentkit/server/frontend/src/components/layout/SplitPane.vue
new file mode 100644
index 0000000..5179031
--- /dev/null
+++ b/src/agentkit/server/frontend/src/components/layout/SplitPane.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
diff --git a/src/agentkit/server/frontend/src/components/layout/TopNav.vue b/src/agentkit/server/frontend/src/components/layout/TopNav.vue
new file mode 100644
index 0000000..a963ac0
--- /dev/null
+++ b/src/agentkit/server/frontend/src/components/layout/TopNav.vue
@@ -0,0 +1,138 @@
+
+
+
+
+ Fischer
+ AgentKit
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/agentkit/server/frontend/src/router/index.ts b/src/agentkit/server/frontend/src/router/index.ts
index 9421ffe..842a6ed 100644
--- a/src/agentkit/server/frontend/src/router/index.ts
+++ b/src/agentkit/server/frontend/src/router/index.ts
@@ -2,96 +2,135 @@ import { createRouter, createWebHistory } from 'vue-router'
import type { RouteRecordRaw } from 'vue-router'
const routes: RouteRecordRaw[] = [
+ // Agent-First 四象限布局 (新)
+ {
+ path: '/agent',
+ name: 'agent',
+ component: () => import('@/components/layout/AgentLayout.vue'),
+ meta: { title: 'AgentKit' },
+ children: [
+ {
+ path: '',
+ redirect: '/agent/chat',
+ },
+ {
+ path: 'chat',
+ name: 'agent-chat',
+ meta: { title: '对话', quadrant: 'tl', tab: 'chat' },
+ component: () => import('@/views/ChatView.vue'),
+ },
+ {
+ path: 'code',
+ name: 'agent-code',
+ meta: { title: '代码', quadrant: 'tr', tab: 'code' },
+ component: () => import('@/views/ChatView.vue'),
+ },
+ {
+ path: 'terminal',
+ name: 'agent-terminal',
+ meta: { title: '终端', quadrant: 'bl', tab: 'terminal' },
+ component: () => import('@/views/TerminalView.vue'),
+ },
+ {
+ path: 'monitor',
+ name: 'agent-monitor',
+ meta: { title: '监控', quadrant: 'br', tab: 'monitor' },
+ component: () => import('@/views/EvolutionView.vue'),
+ },
+ ],
+ },
+
+ // Default redirect to agent layout
{
path: '/',
- name: 'chat',
- component: () => import('@/views/ChatView.vue'),
- meta: { title: '智能对话' },
+ redirect: '/agent',
},
+
+ // Legacy route redirects → agent quadrant routes
{
path: '/workflow',
- name: 'workflow',
- component: () => import('@/views/WorkflowView.vue'),
- meta: { title: '工作流' },
+ redirect: '/agent/code?tab=workflow',
},
{
path: '/knowledge',
- name: 'knowledge',
- component: () => import('@/views/KnowledgeBaseView.vue'),
- meta: { title: '知识库' },
+ redirect: '/agent/code?tab=knowledge',
},
{
path: '/skills',
- name: 'skills',
- component: () => import('@/views/SkillsView.vue'),
- meta: { title: '技能' },
+ redirect: '/agent/monitor?tab=skills',
+ },
+ {
+ path: '/evolution',
+ redirect: '/agent/monitor?tab=monitor',
+ },
+ {
+ path: '/settings',
+ redirect: '/agent/monitor?tab=settings',
},
{
path: '/terminal',
- name: 'terminal',
- component: () => import('@/views/TerminalView.vue'),
- meta: { title: '终端' },
+ redirect: '/agent/terminal',
},
+
+ // Computer Use (保留独立路由,显示"即将推出")
{
path: '/computer-use',
name: 'computer-use',
component: () => import('@/views/ComputerUseView.vue'),
meta: { title: 'Computer Use' },
},
+
+ // Legacy layout (fallback)
{
- path: '/evolution',
- name: 'evolution',
- component: () => import('@/views/EvolutionView.vue'),
- meta: { title: '自进化' },
+ path: '/legacy',
+ name: 'legacy',
+ component: () => import('@/components/layout/AppLayout.vue'),
+ meta: { title: 'Fischer AgentKit (Legacy)' },
children: [
{
- path: '',
- redirect: '/evolution/overview',
+ path: 'chat',
+ name: 'legacy-chat',
+ component: () => import('@/views/ChatView.vue'),
+ meta: { title: '智能对话' },
},
{
- path: 'overview',
- name: 'evolution-overview',
- component: () => import('@/components/evolution/DashboardOverview.vue'),
- meta: { title: '概览 - 自进化' },
+ path: 'workflow',
+ name: 'legacy-workflow',
+ component: () => import('@/views/WorkflowView.vue'),
+ meta: { title: '工作流' },
},
{
- path: 'experiences',
- name: 'evolution-experiences',
- component: () => import('@/components/evolution/ExperiencePanel.vue'),
- meta: { title: '经验记录 - 自进化' },
+ path: 'knowledge',
+ name: 'legacy-knowledge',
+ component: () => import('@/views/KnowledgeBaseView.vue'),
+ meta: { title: '知识库' },
},
{
- path: 'metrics',
- name: 'evolution-metrics',
- component: () => import('@/components/evolution/MetricsPanel.vue'),
- meta: { title: '指标趋势 - 自进化' },
+ path: 'skills',
+ name: 'legacy-skills',
+ component: () => import('@/views/SkillsView.vue'),
+ meta: { title: '技能' },
},
{
- path: 'pitfalls',
- name: 'evolution-pitfalls',
- component: () => import('@/components/evolution/PitfallRoutePanel.vue'),
- meta: { title: '避坑预警 - 自进化' },
+ path: 'terminal',
+ name: 'legacy-terminal',
+ component: () => import('@/views/TerminalView.vue'),
+ meta: { title: '终端' },
},
{
- path: 'optimizations',
- name: 'evolution-optimizations',
- component: () => import('@/components/evolution/OptimizationPanel.vue'),
- meta: { title: '路径优化 - 自进化' },
+ path: 'evolution',
+ name: 'legacy-evolution',
+ component: () => import('@/views/EvolutionView.vue'),
+ meta: { title: '自进化' },
},
{
- path: 'usage',
- name: 'evolution-usage',
- component: () => import('@/components/evolution/UsagePanel.vue'),
- meta: { title: '用量统计 - 自进化' },
+ path: 'settings',
+ name: 'legacy-settings',
+ component: () => import('@/views/SettingsView.vue'),
+ meta: { title: '设置' },
},
],
},
- {
- path: '/settings',
- name: 'settings',
- component: () => import('@/views/SettingsView.vue'),
- meta: { title: '设置' },
- },
]
const router = createRouter({