diff --git a/src/api.js b/src/api.js
index 6bedae5..c6e3018 100644
--- a/src/api.js
+++ b/src/api.js
@@ -588,3 +588,14 @@ export function deleteBrandLink(id) {
return apiDelete(`/api/blog-marketing/links/${id}`);
}
+// ── Agent Office ──────────────────────────────────
+export const getAgents = () => apiGet('/api/agent-office/agents');
+export const getAgentDetail = (id) => apiGet(`/api/agent-office/agents/${id}`);
+export const updateAgentConfig = (id, body) => apiPut(`/api/agent-office/agents/${id}`, body);
+export const getAgentTasks = (id, limit=20) => apiGet(`/api/agent-office/agents/${id}/tasks?limit=${limit}`);
+export const getAgentLogs = (id, limit=50) => apiGet(`/api/agent-office/agents/${id}/logs?limit=${limit}`);
+export const getPendingTasks = () => apiGet('/api/agent-office/tasks/pending');
+export const sendAgentCommand = (agent, action, params={}) => apiPost('/api/agent-office/command', { agent, action, params });
+export const approveAgentTask = (agent, task_id, approved, feedback='') => apiPost('/api/agent-office/approve', { agent, task_id, approved, feedback });
+export const getAgentStates = () => apiGet('/api/agent-office/states');
+
diff --git a/src/pages/effect-lab/EffectLab.jsx b/src/pages/effect-lab/EffectLab.jsx
index 2ee715c..acca1de 100644
--- a/src/pages/effect-lab/EffectLab.jsx
+++ b/src/pages/effect-lab/EffectLab.jsx
@@ -25,6 +25,17 @@ const LAB_ITEMS = [
icon: '📅',
status: 'live',
},
+ {
+ id: 'agent-office',
+ path: '/agent-office',
+ title: 'Agent Office',
+ category: 'AI · 자동화',
+ desc: 'AI 에이전트들이 사무실에서 자동으로 작업하는 가상 오피스',
+ tags: ['Canvas 2D', 'WebSocket', 'AI Agent', 'Telegram'],
+ accent: '#8b5cf6',
+ icon: '🏢',
+ status: 'wip',
+ },
];
const STATUS_LABEL = {
diff --git a/src/routes.jsx b/src/routes.jsx
index 8a530e5..189c34d 100644
--- a/src/routes.jsx
+++ b/src/routes.jsx
@@ -117,6 +117,15 @@ export const navLinks = [
icon: ,
accent: '#f472b6',
},
+ {
+ id: 'agent-office',
+ label: 'Agent Office',
+ path: '/agent-office',
+ subtitle: 'AI LAB',
+ description: 'AI 에이전트 사무실',
+ icon: 🏢,
+ accent: '#8b5cf6',
+ },
];
export const appRoutes = [
@@ -172,4 +181,8 @@ export const appRoutes = [
path: 'todo',
element: ,
},
+ {
+ path: 'agent-office',
+ lazy: () => import('./pages/agent-office/AgentOffice'),
+ },
];