{"ast":null,"code":"var _jsxFileName = \"/home/node/.openclaw/workspace/flying-hero/projects/meeting-room/frontend/src/App.js\",\n _s = $RefreshSig$(),\n _s2 = $RefreshSig$(),\n _s3 = $RefreshSig$();\nimport React, { useState, useEffect } from 'react';\nimport { BrowserRouter as Router, Routes, Route, Link, useNavigate, useParams } from 'react-router-dom';\nimport axios from 'axios';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst API_BASE = 'http://localhost:8000/api/v1';\naxios.interceptors.request.use(config => {\n const token = localStorage.getItem('token');\n if (token) config.headers.Authorization = `Bearer ${token}`;\n return config;\n});\n\n// ============ 登录页面 ============\nfunction LoginPage() {\n _s();\n const [username, setUsername] = useState('test');\n const [password, setPassword] = useState('test123');\n const navigate = useNavigate();\n const handleLogin = async e => {\n e.preventDefault();\n try {\n const res = await axios.post(`${API_BASE}/auth/login/`, {\n username,\n password\n });\n localStorage.setItem('token', res.data.token);\n localStorage.setItem('user', JSON.stringify(res.data.user));\n navigate('/meetings');\n } catch (error) {\n var _error$response, _error$response$data;\n alert('登录失败:' + (((_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.detail) || error.message));\n }\n };\n return /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.center,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.card,\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n style: styles.title,\n children: \"\\uD83C\\uDFDB\\uFE0F \\u9F99\\u867E\\u8BAE\\u4E8B\\u5385\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleLogin,\n style: styles.form,\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n placeholder: \"\\u7528\\u6237\\u540D\",\n value: username,\n onChange: e => setUsername(e.target.value),\n style: styles.input,\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"password\",\n placeholder: \"\\u5BC6\\u7801\",\n value: password,\n onChange: e => setPassword(e.target.value),\n style: styles.input,\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n style: styles.btn,\n children: \"\\u767B\\u5F55\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 5\n }, this);\n}\n\n// ============ 会议列表 ============\n_s(LoginPage, \"WanfkaV1NzEawnKhDcLGBl0+1vs=\", false, function () {\n return [useNavigate];\n});\n_c = LoginPage;\nfunction MeetingList() {\n _s2();\n const [meetings, setMeetings] = useState([]);\n const [topic, setTopic] = useState('');\n const navigate = useNavigate();\n const token = localStorage.getItem('token');\n useEffect(() => {\n if (!token) {\n navigate('/login');\n return;\n }\n fetchMeetings();\n }, []);\n const fetchMeetings = async () => {\n try {\n const res = await axios.get(`${API_BASE}/meetings/`);\n setMeetings(res.data);\n } catch (error) {\n console.error(error);\n }\n };\n const createMeeting = async e => {\n e.preventDefault();\n try {\n const res = await axios.post(`${API_BASE}/meetings/`, {\n topic\n });\n navigate(`/meeting/${res.data.id}`);\n } catch (error) {\n var _error$response2, _error$response2$data;\n alert('创建失败:' + (((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.detail) || error.message));\n }\n };\n const logout = () => {\n localStorage.removeItem('token');\n navigate('/login');\n };\n return /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.container,\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.header,\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"\\uD83D\\uDCCB \\u6211\\u7684\\u4F1A\\u8BAE\\u5BA4\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: logout,\n style: styles.smallBtn,\n children: \"\\u9000\\u51FA\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.card,\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"\\u521B\\u5EFA\\u4F1A\\u8BAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: createMeeting,\n style: styles.form,\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n placeholder: \"\\u4F1A\\u8BAE\\u4E3B\\u9898\",\n value: topic,\n onChange: e => setTopic(e.target.value),\n style: styles.input,\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n style: styles.btn,\n children: \"\\u521B\\u5EFA\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.list,\n children: meetings.map(m => /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.item,\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: m.topic\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n children: [\"\\u72B6\\u6001\\uFF1A\", m.status, \" | \\u9080\\u8BF7\\u7801\\uFF1A\", m.invite_code]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => navigate(`/meeting/${m.id}`),\n style: styles.smallBtn,\n children: \"\\u8FDB\\u5165\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this)]\n }, m.id, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 11\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 5\n }, this);\n}\n\n// ============ 会议室 ============\n_s2(MeetingList, \"tK3+oPj0joarPP+hW/mM1th/td0=\", false, function () {\n return [useNavigate];\n});\n_c2 = MeetingList;\nfunction MeetingRoom() {\n _s3();\n const {\n id\n } = useParams();\n const [messages, setMessages] = useState([]);\n const [content, setContent] = useState('');\n const [participants, setParticipants] = useState([]);\n const [meeting, setMeeting] = useState(null);\n const [hoveredSeat, setHoveredSeat] = useState(null);\n const token = localStorage.getItem('token');\n useEffect(() => {\n if (!token) return;\n fetchMeeting();\n fetchParticipants();\n fetchMessages();\n const interval = setInterval(fetchMessages, 1000);\n return () => clearInterval(interval);\n }, [id]);\n const fetchMeeting = async () => {\n try {\n const res = await axios.get(`${API_BASE}/meetings/${id}/`);\n setMeeting(res.data);\n } catch (error) {\n console.error(error);\n }\n };\n const fetchParticipants = async () => {\n try {\n const res = await axios.get(`${API_BASE}/meetings/${id}/participants/`);\n setParticipants(res.data);\n } catch (error) {\n console.error(error);\n }\n };\n const fetchMessages = async () => {\n try {\n const res = await axios.get(`${API_BASE}/meetings/${id}/messages/?last_id=0`);\n setMessages(res.data.messages || []);\n } catch (error) {\n console.error(error);\n }\n };\n const sendMessage = async e => {\n e.preventDefault();\n if (!content.trim()) return;\n try {\n await axios.post(`${API_BASE}/meetings/${id}/send_message/`, {\n content\n });\n setContent('');\n fetchMessages();\n } catch (error) {\n var _error$response3, _error$response3$data;\n alert('发送失败:' + (((_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : (_error$response3$data = _error$response3.data) === null || _error$response3$data === void 0 ? void 0 : _error$response3$data.detail) || error.message));\n }\n };\n const mentionAgent = async (targetAgentId, agentName) => {\n const target = targetAgentId || prompt('@哪个 Agent?输入 agent_id:');\n if (!target || !content.trim()) return;\n const name = agentName || target;\n try {\n await axios.post(`${API_BASE}/meetings/${id}/mention_agent/`, {\n target_agent_id: target,\n content,\n sender_name: localStorage.getItem('user') ? JSON.parse(localStorage.getItem('user')).username : 'User'\n });\n setContent('');\n fetchMessages();\n alert(`✅ 已 @${name}`);\n } catch (error) {\n var _error$response4, _error$response4$data;\n alert('发送失败:' + (((_error$response4 = error.response) === null || _error$response4 === void 0 ? void 0 : (_error$response4$data = _error$response4.data) === null || _error$response4$data === void 0 ? void 0 : _error$response4$data.error) || error.message));\n }\n };\n const startMeeting = async () => {\n try {\n await axios.post(`${API_BASE}/meetings/${id}/start/`);\n fetchMeeting();\n alert('✅ 会议已开始');\n } catch (error) {\n var _error$response5, _error$response5$data;\n alert('开始失败:' + (((_error$response5 = error.response) === null || _error$response5 === void 0 ? void 0 : (_error$response5$data = _error$response5.data) === null || _error$response5$data === void 0 ? void 0 : _error$response5$data.error) || error.message));\n }\n };\n const endMeeting = async () => {\n if (!confirm('确定结束会议?')) return;\n try {\n await axios.post(`${API_BASE}/meetings/${id}/end/`);\n fetchMeeting();\n alert('✅ 会议已结束');\n } catch (error) {\n var _error$response6, _error$response6$data;\n alert('结束失败:' + (((_error$response6 = error.response) === null || _error$response6 === void 0 ? void 0 : (_error$response6$data = _error$response6.data) === null || _error$response6$data === void 0 ? void 0 : _error$response6$data.error) || error.message));\n }\n };\n const generateMinutes = async () => {\n try {\n const res = await axios.get(`${API_BASE}/meetings/${id}/minutes/?output=markdown`);\n const blob = new Blob([res.data.markdown], {\n type: 'text/markdown'\n });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `meeting-${id.slice(0, 8)}.md`;\n a.click();\n URL.revokeObjectURL(url);\n alert('✅ 纪要已导出');\n } catch (error) {\n alert('导出失败:' + error.message);\n }\n };\n return /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.container,\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.header,\n children: [/*#__PURE__*/_jsxDEV(Link, {\n to: \"/meetings\",\n style: styles.link,\n children: \"\\u2190 \\u8FD4\\u56DE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h1\", {\n children: (meeting === null || meeting === void 0 ? void 0 : meeting.topic) || '会议室'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 9\n }, this), meeting && /*#__PURE__*/_jsxDEV(\"span\", {\n style: styles.badge,\n children: meeting.status\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 21\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 7\n }, this), meeting && /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.infoCard,\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n children: \"ID:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 14\n }, this), \" \", meeting.id]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n children: \"\\u9080\\u8BF7\\u7801:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 14\n }, this), \" \", meeting.invite_code]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.btnGroup,\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n onClick: startMeeting,\n style: styles.btnGreen,\n children: \"\\u25B6\\uFE0F \\u5F00\\u59CB\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: endMeeting,\n style: styles.btnRed,\n children: \"\\u23F9\\uFE0F \\u7ED3\\u675F\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: generateMinutes,\n style: styles.btnBlue,\n children: \"\\uD83D\\uDCCB \\u7EAA\\u8981\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.card,\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n children: [\"\\uD83E\\uDE91 \\u5EA7\\u4F4D\\u56FE \", /*#__PURE__*/_jsxDEV(\"span\", {\n style: styles.badge,\n children: participants.length\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 20\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.seats,\n children: participants.map(p => /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.seat,\n onClick: () => {\n if (p.agent_id) {\n var _document$querySelect;\n setContent(`@${p.nickname} `);\n (_document$querySelect = document.querySelector('input[placeholder=\"输入消息...\"]')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.focus();\n }\n },\n title: p.agent_id ? '点击 @ 此人' : '',\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.seatEmoji,\n children: p.agent_emoji || '👤'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.seatName,\n children: p.nickname\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 15\n }, this), p.is_host && /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.hostBadge,\n children: \"\\uD83D\\uDC51\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 243,\n columnNumber: 29\n }, this)]\n }, p.id, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.card,\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n children: [\"\\uD83D\\uDCAC \\u804A\\u5929 \", /*#__PURE__*/_jsxDEV(\"span\", {\n style: styles.badge,\n children: messages.length\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.messages,\n children: messages.map(msg => /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.msg,\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.msgHeader,\n children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n children: [msg.sender_emoji, \" \", msg.sender_name]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n style: styles.msgTime,\n children: new Date(msg.created_at).toLocaleTimeString()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n style: styles.msgContent,\n children: msg.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 15\n }, this), msg.in_reply_to && /*#__PURE__*/_jsxDEV(\"div\", {\n style: styles.replyTag,\n children: [\"\\u21A9\\uFE0F \\u56DE\\u590D #\", msg.in_reply_to]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 35\n }, this)]\n }, msg.id, true, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: sendMessage,\n style: styles.form,\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n placeholder: \"\\u8F93\\u5165\\u6D88\\u606F...\",\n value: content,\n onChange: e => setContent(e.target.value),\n style: styles.input\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n style: styles.btn,\n children: \"\\u53D1\\u9001\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n onClick: mentionAgent,\n style: styles.btnPink,\n children: \"\\uD83D\\uDCCD @Agent\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 5\n }, this);\n}\n\n// ============ App ============\n_s3(MeetingRoom, \"fh+UC+M8I83D9S4VTUsmF3cRwwg=\", false, function () {\n return [useParams];\n});\n_c3 = MeetingRoom;\nfunction App() {\n return /*#__PURE__*/_jsxDEV(Router, {\n children: /*#__PURE__*/_jsxDEV(Routes, {\n children: [/*#__PURE__*/_jsxDEV(Route, {\n path: \"/login\",\n element: /*#__PURE__*/_jsxDEV(LoginPage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 39\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/meetings\",\n element: /*#__PURE__*/_jsxDEV(MeetingList, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 42\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/meeting/:id\",\n element: /*#__PURE__*/_jsxDEV(MeetingRoom, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 281,\n columnNumber: 45\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 281,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/\",\n element: /*#__PURE__*/_jsxDEV(LoginPage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 282,\n columnNumber: 34\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 282,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n// ============ 样式 ============\n_c4 = App;\nconst styles = {\n center: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: '100vh',\n background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)'\n },\n container: {\n maxWidth: '900px',\n margin: '0 auto',\n padding: '20px',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif'\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n gap: '15px',\n marginBottom: '20px'\n },\n card: {\n background: 'white',\n borderRadius: '12px',\n padding: '20px',\n marginBottom: '20px',\n boxShadow: '0 4px 6px rgba(0,0,0,0.1)'\n },\n infoCard: {\n background: '#e7f3ff',\n border: '1px solid #2196f3',\n borderRadius: '12px',\n padding: '15px',\n marginBottom: '20px'\n },\n title: {\n margin: '0 0 20px',\n color: '#1a365d',\n textAlign: 'center'\n },\n form: {\n display: 'flex',\n gap: '10px'\n },\n input: {\n flex: 1,\n padding: '12px',\n border: '2px solid #e2e8f0',\n borderRadius: '8px',\n fontSize: '14px'\n },\n btn: {\n padding: '12px 20px',\n background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',\n color: 'white',\n border: 'none',\n borderRadius: '8px',\n cursor: 'pointer',\n fontWeight: '600'\n },\n btnGreen: {\n padding: '8px 16px',\n background: 'linear-gradient(135deg, #11998e 0%, #38ef7d 100%)',\n color: 'white',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer',\n marginRight: '8px'\n },\n btnRed: {\n padding: '8px 16px',\n background: 'linear-gradient(135deg, #eb3349 0%, #f45c43 100%)',\n color: 'white',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer',\n marginRight: '8px'\n },\n btnBlue: {\n padding: '8px 16px',\n background: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',\n color: 'white',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer'\n },\n btnPink: {\n padding: '8px 16px',\n background: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)',\n color: 'white',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer'\n },\n smallBtn: {\n padding: '8px 16px',\n background: '#edf2f7',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer'\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: '15px'\n },\n item: {\n background: 'white',\n borderRadius: '12px',\n padding: '20px',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n boxShadow: '0 4px 6px rgba(0,0,0,0.1)'\n },\n link: {\n color: '#4299e1',\n textDecoration: 'none',\n fontSize: '16px'\n },\n badge: {\n background: '#667eea',\n color: 'white',\n padding: '4px 10px',\n borderRadius: '20px',\n fontSize: '12px',\n fontWeight: '600'\n },\n btnGroup: {\n display: 'flex',\n marginTop: '10px'\n },\n seats: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '15px',\n justifyContent: 'center'\n },\n seat: {\n background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',\n color: 'white',\n padding: '15px',\n borderRadius: '50%',\n width: '90px',\n height: '90px',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n cursor: 'pointer',\n transition: 'transform 0.2s',\n ':hover': {\n transform: 'scale(1.1)'\n }\n },\n seatHover: {\n transform: 'scale(1.05)'\n },\n seatEmoji: {\n fontSize: '28px',\n marginBottom: '5px'\n },\n seatName: {\n fontSize: '12px',\n fontWeight: '600'\n },\n hostBadge: {\n fontSize: '10px',\n opacity: '0.8'\n },\n messages: {\n maxHeight: '400px',\n overflowY: 'auto',\n marginBottom: '15px'\n },\n msg: {\n padding: '12px',\n background: '#f7fafc',\n borderRadius: '8px',\n marginBottom: '10px'\n },\n msgHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: '5px'\n },\n msgContent: {\n margin: '5px 0',\n color: '#4a5568'\n },\n msgTime: {\n fontSize: '12px',\n color: '#a0aec0'\n },\n replyTag: {\n fontSize: '11px',\n color: '#a0aec0',\n marginTop: '5px'\n }\n};\nexport default App;\nvar _c, _c2, _c3, _c4;\n$RefreshReg$(_c, \"LoginPage\");\n$RefreshReg$(_c2, \"MeetingList\");\n$RefreshReg$(_c3, \"MeetingRoom\");\n$RefreshReg$(_c4, \"App\");","map":{"version":3,"names":["React","useState","useEffect","BrowserRouter","Router","Routes","Route","Link","useNavigate","useParams","axios","jsxDEV","_jsxDEV","API_BASE","interceptors","request","use","config","token","localStorage","getItem","headers","Authorization","LoginPage","_s","username","setUsername","password","setPassword","navigate","handleLogin","e","preventDefault","res","post","setItem","data","JSON","stringify","user","error","_error$response","_error$response$data","alert","response","detail","message","style","styles","center","children","card","title","fileName","_jsxFileName","lineNumber","columnNumber","onSubmit","form","type","placeholder","value","onChange","target","input","required","btn","_c","MeetingList","_s2","meetings","setMeetings","topic","setTopic","fetchMeetings","get","console","createMeeting","id","_error$response2","_error$response2$data","logout","removeItem","container","header","onClick","smallBtn","list","map","m","item","status","invite_code","_c2","MeetingRoom","_s3","messages","setMessages","content","setContent","participants","setParticipants","meeting","setMeeting","hoveredSeat","setHoveredSeat","fetchMeeting","fetchParticipants","fetchMessages","interval","setInterval","clearInterval","sendMessage","trim","_error$response3","_error$response3$data","mentionAgent","targetAgentId","agentName","prompt","name","target_agent_id","sender_name","parse","_error$response4","_error$response4$data","startMeeting","_error$response5","_error$response5$data","endMeeting","confirm","_error$response6","_error$response6$data","generateMinutes","blob","Blob","markdown","url","URL","createObjectURL","a","document","createElement","href","download","slice","click","revokeObjectURL","to","link","badge","infoCard","btnGroup","btnGreen","btnRed","btnBlue","length","seats","p","seat","agent_id","_document$querySelect","nickname","querySelector","focus","seatEmoji","agent_emoji","seatName","is_host","hostBadge","msg","msgHeader","sender_emoji","msgTime","Date","created_at","toLocaleTimeString","msgContent","in_reply_to","replyTag","btnPink","_c3","App","path","element","_c4","display","justifyContent","alignItems","minHeight","background","maxWidth","margin","padding","fontFamily","gap","marginBottom","borderRadius","boxShadow","border","color","textAlign","flex","fontSize","cursor","fontWeight","marginRight","flexDirection","textDecoration","marginTop","flexWrap","width","height","transition","transform","seatHover","opacity","maxHeight","overflowY","$RefreshReg$"],"sources":["/home/node/.openclaw/workspace/flying-hero/projects/meeting-room/frontend/src/App.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { BrowserRouter as Router, Routes, Route, Link, useNavigate, useParams } from 'react-router-dom';\nimport axios from 'axios';\n\nconst API_BASE = 'http://localhost:8000/api/v1';\n\naxios.interceptors.request.use(config => {\n const token = localStorage.getItem('token');\n if (token) config.headers.Authorization = `Bearer ${token}`;\n return config;\n});\n\n// ============ 登录页面 ============\nfunction LoginPage() {\n const [username, setUsername] = useState('test');\n const [password, setPassword] = useState('test123');\n const navigate = useNavigate();\n\n const handleLogin = async (e) => {\n e.preventDefault();\n try {\n const res = await axios.post(`${API_BASE}/auth/login/`, { username, password });\n localStorage.setItem('token', res.data.token);\n localStorage.setItem('user', JSON.stringify(res.data.user));\n navigate('/meetings');\n } catch (error) {\n alert('登录失败:' + (error.response?.data?.detail || error.message));\n }\n };\n\n return (\n
\n
\n

🏛️ 龙虾议事厅

\n
\n setUsername(e.target.value)} style={styles.input} required />\n setPassword(e.target.value)} style={styles.input} required />\n \n
\n
\n
\n );\n}\n\n// ============ 会议列表 ============\nfunction MeetingList() {\n const [meetings, setMeetings] = useState([]);\n const [topic, setTopic] = useState('');\n const navigate = useNavigate();\n const token = localStorage.getItem('token');\n\n useEffect(() => {\n if (!token) { navigate('/login'); return; }\n fetchMeetings();\n }, []);\n\n const fetchMeetings = async () => {\n try {\n const res = await axios.get(`${API_BASE}/meetings/`);\n setMeetings(res.data);\n } catch (error) { console.error(error); }\n };\n\n const createMeeting = async (e) => {\n e.preventDefault();\n try {\n const res = await axios.post(`${API_BASE}/meetings/`, { topic });\n navigate(`/meeting/${res.data.id}`);\n } catch (error) {\n alert('创建失败:' + (error.response?.data?.detail || error.message));\n }\n };\n\n const logout = () => { localStorage.removeItem('token'); navigate('/login'); };\n\n return (\n
\n
\n

📋 我的会议室

\n \n
\n
\n

创建会议

\n
\n setTopic(e.target.value)} style={styles.input} required />\n \n
\n
\n
\n {meetings.map(m => (\n
\n
\n

{m.topic}

\n

状态:{m.status} | 邀请码:{m.invite_code}

\n
\n \n
\n ))}\n
\n
\n );\n}\n\n// ============ 会议室 ============\nfunction MeetingRoom() {\n const { id } = useParams();\n const [messages, setMessages] = useState([]);\n const [content, setContent] = useState('');\n const [participants, setParticipants] = useState([]);\n const [meeting, setMeeting] = useState(null);\n const [hoveredSeat, setHoveredSeat] = useState(null);\n const token = localStorage.getItem('token');\n\n useEffect(() => {\n if (!token) return;\n fetchMeeting();\n fetchParticipants();\n fetchMessages();\n const interval = setInterval(fetchMessages, 1000);\n return () => clearInterval(interval);\n }, [id]);\n\n const fetchMeeting = async () => {\n try {\n const res = await axios.get(`${API_BASE}/meetings/${id}/`);\n setMeeting(res.data);\n } catch (error) { console.error(error); }\n };\n\n const fetchParticipants = async () => {\n try {\n const res = await axios.get(`${API_BASE}/meetings/${id}/participants/`);\n setParticipants(res.data);\n } catch (error) { console.error(error); }\n };\n\n const fetchMessages = async () => {\n try {\n const res = await axios.get(`${API_BASE}/meetings/${id}/messages/?last_id=0`);\n setMessages(res.data.messages || []);\n } catch (error) { console.error(error); }\n };\n\n const sendMessage = async (e) => {\n e.preventDefault();\n if (!content.trim()) return;\n try {\n await axios.post(`${API_BASE}/meetings/${id}/send_message/`, { content });\n setContent('');\n fetchMessages();\n } catch (error) {\n alert('发送失败:' + (error.response?.data?.detail || error.message));\n }\n };\n\n const mentionAgent = async (targetAgentId, agentName) => {\n const target = targetAgentId || prompt('@哪个 Agent?输入 agent_id:');\n if (!target || !content.trim()) return;\n const name = agentName || target;\n try {\n await axios.post(`${API_BASE}/meetings/${id}/mention_agent/`, {\n target_agent_id: target, content,\n sender_name: localStorage.getItem('user') ? JSON.parse(localStorage.getItem('user')).username : 'User'\n });\n setContent('');\n fetchMessages();\n alert(`✅ 已 @${name}`);\n } catch (error) {\n alert('发送失败:' + (error.response?.data?.error || error.message));\n }\n };\n\n const startMeeting = async () => {\n try {\n await axios.post(`${API_BASE}/meetings/${id}/start/`);\n fetchMeeting();\n alert('✅ 会议已开始');\n } catch (error) {\n alert('开始失败:' + (error.response?.data?.error || error.message));\n }\n };\n\n const endMeeting = async () => {\n if (!confirm('确定结束会议?')) return;\n try {\n await axios.post(`${API_BASE}/meetings/${id}/end/`);\n fetchMeeting();\n alert('✅ 会议已结束');\n } catch (error) {\n alert('结束失败:' + (error.response?.data?.error || error.message));\n }\n };\n\n const generateMinutes = async () => {\n try {\n const res = await axios.get(`${API_BASE}/meetings/${id}/minutes/?output=markdown`);\n const blob = new Blob([res.data.markdown], { type: 'text/markdown' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `meeting-${id.slice(0, 8)}.md`;\n a.click();\n URL.revokeObjectURL(url);\n alert('✅ 纪要已导出');\n } catch (error) {\n alert('导出失败:' + error.message);\n }\n };\n\n return (\n
\n
\n ← 返回\n

{meeting?.topic || '会议室'}

\n {meeting && {meeting.status}}\n
\n\n {meeting && (\n
\n

ID: {meeting.id}

\n

邀请码: {meeting.invite_code}

\n
\n \n \n \n
\n
\n )}\n\n {/* 座位图 */}\n
\n

🪑 座位图 {participants.length}

\n
\n {participants.map(p => (\n
{\n if (p.agent_id) {\n setContent(`@${p.nickname} `);\n document.querySelector('input[placeholder=\"输入消息...\"]')?.focus();\n }\n }} title={p.agent_id ? '点击 @ 此人' : ''}>\n
{p.agent_emoji || '👤'}
\n
{p.nickname}
\n {p.is_host &&
👑
}\n
\n ))}\n
\n
\n\n {/* 聊天 */}\n
\n

💬 聊天 {messages.length}

\n
\n {messages.map(msg => (\n
\n
\n {msg.sender_emoji} {msg.sender_name}\n {new Date(msg.created_at).toLocaleTimeString()}\n
\n

{msg.content}

\n {msg.in_reply_to &&
↩️ 回复 #{msg.in_reply_to}
}\n
\n ))}\n
\n
\n setContent(e.target.value)} style={styles.input} />\n \n \n
\n
\n
\n );\n}\n\n// ============ App ============\nfunction App() {\n return (\n \n \n } />\n } />\n } />\n } />\n \n \n );\n}\n\n// ============ 样式 ============\nconst styles = {\n center: { display: 'flex', justifyContent: 'center', alignItems: 'center', minHeight: '100vh', background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)' },\n container: { maxWidth: '900px', margin: '0 auto', padding: '20px', fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif' },\n header: { display: 'flex', alignItems: 'center', gap: '15px', marginBottom: '20px' },\n card: { background: 'white', borderRadius: '12px', padding: '20px', marginBottom: '20px', boxShadow: '0 4px 6px rgba(0,0,0,0.1)' },\n infoCard: { background: '#e7f3ff', border: '1px solid #2196f3', borderRadius: '12px', padding: '15px', marginBottom: '20px' },\n title: { margin: '0 0 20px', color: '#1a365d', textAlign: 'center' },\n form: { display: 'flex', gap: '10px' },\n input: { flex: 1, padding: '12px', border: '2px solid #e2e8f0', borderRadius: '8px', fontSize: '14px' },\n btn: { padding: '12px 20px', background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)', color: 'white', border: 'none', borderRadius: '8px', cursor: 'pointer', fontWeight: '600' },\n btnGreen: { padding: '8px 16px', background: 'linear-gradient(135deg, #11998e 0%, #38ef7d 100%)', color: 'white', border: 'none', borderRadius: '6px', cursor: 'pointer', marginRight: '8px' },\n btnRed: { padding: '8px 16px', background: 'linear-gradient(135deg, #eb3349 0%, #f45c43 100%)', color: 'white', border: 'none', borderRadius: '6px', cursor: 'pointer', marginRight: '8px' },\n btnBlue: { padding: '8px 16px', background: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)', color: 'white', border: 'none', borderRadius: '6px', cursor: 'pointer' },\n btnPink: { padding: '8px 16px', background: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)', color: 'white', border: 'none', borderRadius: '6px', cursor: 'pointer' },\n smallBtn: { padding: '8px 16px', background: '#edf2f7', border: 'none', borderRadius: '6px', cursor: 'pointer' },\n list: { display: 'flex', flexDirection: 'column', gap: '15px' },\n item: { background: 'white', borderRadius: '12px', padding: '20px', display: 'flex', justifyContent: 'space-between', alignItems: 'center', boxShadow: '0 4px 6px rgba(0,0,0,0.1)' },\n link: { color: '#4299e1', textDecoration: 'none', fontSize: '16px' },\n badge: { background: '#667eea', color: 'white', padding: '4px 10px', borderRadius: '20px', fontSize: '12px', fontWeight: '600' },\n btnGroup: { display: 'flex', marginTop: '10px' },\n seats: { display: 'flex', flexWrap: 'wrap', gap: '15px', justifyContent: 'center' },\n seat: { background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)', color: 'white', padding: '15px', borderRadius: '50%', width: '90px', height: '90px', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', textAlign: 'center', cursor: 'pointer', transition: 'transform 0.2s', ':hover': { transform: 'scale(1.1)' } },\n seatHover: { transform: 'scale(1.05)' },\n seatEmoji: { fontSize: '28px', marginBottom: '5px' },\n seatName: { fontSize: '12px', fontWeight: '600' },\n hostBadge: { fontSize: '10px', opacity: '0.8' },\n messages: { maxHeight: '400px', overflowY: 'auto', marginBottom: '15px' },\n msg: { padding: '12px', background: '#f7fafc', borderRadius: '8px', marginBottom: '10px' },\n msgHeader: { display: 'flex', justifyContent: 'space-between', marginBottom: '5px' },\n msgContent: { margin: '5px 0', color: '#4a5568' },\n msgTime: { fontSize: '12px', color: '#a0aec0' },\n replyTag: { fontSize: '11px', color: '#a0aec0', marginTop: '5px' }\n};\n\nexport default App;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}