agentstudio 0.1.8 → 0.1.10

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 (182) hide show
  1. package/README.md +481 -37
  2. package/README.zh-CN.md +525 -0
  3. package/{dist → backend/dist}/bin/agentstudio.js +7 -5
  4. package/backend/dist/bin/agentstudio.js.map +1 -0
  5. package/backend/dist/index.d.ts +3 -0
  6. package/backend/dist/index.d.ts.map +1 -0
  7. package/{dist → backend/dist}/index.js +9 -28
  8. package/{dist → backend/dist}/index.js.map +1 -1
  9. package/{dist → backend/dist}/routes/settings.js +1 -1
  10. package/{dist → backend/dist}/routes/settings.js.map +1 -1
  11. package/package.json +35 -43
  12. package/.cc-sessions/ppt-editor/session_1756253549429_uau1hm6lh.json +0 -665
  13. package/.cc-sessions/ppt-editor/session_1756257240855_v0wa26mde.json +0 -394
  14. package/.env +0 -15
  15. package/dist/bin/agentstudio.js.map +0 -1
  16. package/dist/index.d.ts +0 -2
  17. package/dist/index.d.ts.map +0 -1
  18. package/docs/chat-clean-1.svg +0 -1
  19. package/docs/chat-clean.md +0 -60
  20. package/docs/chat-comprehensive-1.svg +0 -1
  21. package/docs/chat-comprehensive.md +0 -166
  22. package/docs/chat_api_sequence_diagram.md +0 -58
  23. package/docs/command-detection-logic.md +0 -306
  24. package/docs/command-detection-sequence.md +0 -186
  25. package/frontend/dist/assets/AgentsPage-Dqb_aqAA.js +0 -1
  26. package/frontend/dist/assets/ChatPage-BvQmXfcP.css +0 -1
  27. package/frontend/dist/assets/ChatPage-L8Paywyc.js +0 -91
  28. package/frontend/dist/assets/CommandForm-DLl7EIMS.js +0 -7
  29. package/frontend/dist/assets/CommandsPage-Bzavq0Ec.js +0 -1
  30. package/frontend/dist/assets/DashboardPage-B3o4AYFT.js +0 -15
  31. package/frontend/dist/assets/FileBrowser-DL3ayaqb.js +0 -1
  32. package/frontend/dist/assets/GeneralSettingsPage-CBN_de-V.js +0 -1
  33. package/frontend/dist/assets/LandingPage-Dl4ioKos.js +0 -1
  34. package/frontend/dist/assets/LoginPage-4QqRdiSi.js +0 -12
  35. package/frontend/dist/assets/McpPage-CY3tYiqj.js +0 -39
  36. package/frontend/dist/assets/MemorySettingsPage-DGxrok5K.js +0 -1
  37. package/frontend/dist/assets/ProjectSelector-hgmGYVFh.js +0 -1
  38. package/frontend/dist/assets/ProjectsPage-D399IM0c.js +0 -14
  39. package/frontend/dist/assets/SettingsLayout-CL_K-lzJ.js +0 -1
  40. package/frontend/dist/assets/SubagentForm-DXtTTIKg.js +0 -7
  41. package/frontend/dist/assets/SubagentsPage-Chbhj8p2.js +0 -1
  42. package/frontend/dist/assets/ToastTestPage-DT4wuN5C.js +0 -1
  43. package/frontend/dist/assets/UnifiedToolSelector-CsM9qBvs.js +0 -1
  44. package/frontend/dist/assets/VersionSettingsPage-74Q-LVgA.js +0 -5
  45. package/frontend/dist/assets/agents-ClAzIJTw.js +0 -1
  46. package/frontend/dist/assets/agents-DwCY2K8p.css +0 -1
  47. package/frontend/dist/assets/authFetch-BATQyPG5.js +0 -1
  48. package/frontend/dist/assets/data-structures-DLJedtzx.js +0 -27
  49. package/frontend/dist/assets/dateFormat-CXa8VnEC.js +0 -1
  50. package/frontend/dist/assets/index-B9YHa7XT.css +0 -1
  51. package/frontend/dist/assets/index-B_CTNvca.js +0 -268
  52. package/frontend/dist/assets/monaco-editor-C7Z4sOhS.js +0 -19
  53. package/frontend/dist/assets/syntax-highlighting-YWvMU4Hm.js +0 -24
  54. package/frontend/dist/assets/tabManager-DV8urRBM.js +0 -30
  55. package/frontend/dist/assets/table-D6q1rytw.js +0 -1
  56. package/frontend/dist/assets/tools-C4EPanYi.js +0 -1
  57. package/frontend/dist/assets/ui-components-Cw21Epuw.js +0 -481
  58. package/frontend/dist/assets/useAgents-DwnOE1_k.js +0 -2
  59. package/frontend/dist/assets/useClaudeVersions-CQdGnCqv.js +0 -1
  60. package/frontend/dist/assets/useCommands-CCVaurbt.js +0 -1
  61. package/frontend/dist/cc-studio.png +0 -0
  62. package/frontend/dist/index.html +0 -70
  63. package/frontend/dist/vite.svg +0 -1
  64. package/scripts/README.md +0 -76
  65. package/scripts/fix-project-names.js +0 -113
  66. package/scripts/migrate-projects.js +0 -159
  67. package/shared/index.d.ts +0 -6
  68. package/shared/index.d.ts.map +0 -1
  69. package/shared/index.js +0 -7
  70. package/shared/types/agents.d.ts +0 -80
  71. package/shared/types/agents.d.ts.map +0 -1
  72. package/shared/types/agents.js +0 -145
  73. package/shared/types/claude-history.d.ts +0 -61
  74. package/shared/types/claude-history.d.ts.map +0 -1
  75. package/shared/types/claude-history.js +0 -2
  76. package/shared/types/claude-versions.d.ts +0 -40
  77. package/shared/types/claude-versions.d.ts.map +0 -1
  78. package/shared/types/claude-versions.js +0 -1
  79. package/shared/types/commands.d.ts +0 -48
  80. package/shared/types/commands.d.ts.map +0 -1
  81. package/shared/types/commands.js +0 -19
  82. package/shared/types/projects.d.ts +0 -35
  83. package/shared/types/projects.d.ts.map +0 -1
  84. package/shared/types/projects.js +0 -2
  85. package/shared/types/subagents.d.ts +0 -26
  86. package/shared/types/subagents.d.ts.map +0 -1
  87. package/shared/types/subagents.js +0 -1
  88. package/shared/utils/agentStorage.d.ts +0 -27
  89. package/shared/utils/agentStorage.d.ts.map +0 -1
  90. package/shared/utils/agentStorage.js +0 -392
  91. package/shared/utils/claudeVersionStorage.d.ts +0 -16
  92. package/shared/utils/claudeVersionStorage.d.ts.map +0 -1
  93. package/shared/utils/claudeVersionStorage.js +0 -230
  94. package/shared/utils/projectMetadataStorage.d.ts +0 -94
  95. package/shared/utils/projectMetadataStorage.d.ts.map +0 -1
  96. package/shared/utils/projectMetadataStorage.js +0 -422
  97. package/shared/utils/toolMapping.d.ts +0 -56
  98. package/shared/utils/toolMapping.d.ts.map +0 -1
  99. package/shared/utils/toolMapping.js +0 -71
  100. package/src/bin/agentstudio.ts +0 -130
  101. package/src/index.ts +0 -183
  102. package/src/middleware/auth.ts +0 -26
  103. package/src/routes/agents.ts +0 -884
  104. package/src/routes/auth.ts +0 -73
  105. package/src/routes/commands.ts +0 -441
  106. package/src/routes/files.ts +0 -352
  107. package/src/routes/mcp.ts +0 -751
  108. package/src/routes/media.ts +0 -140
  109. package/src/routes/projects.ts +0 -601
  110. package/src/routes/sessions.ts +0 -809
  111. package/src/routes/settings.ts +0 -718
  112. package/src/routes/slides.ts +0 -170
  113. package/src/routes/subagents.ts +0 -364
  114. package/src/services/claudeSession.ts +0 -293
  115. package/src/services/messageQueue.ts +0 -71
  116. package/src/services/sessionManager.ts +0 -532
  117. package/src/utils/jwt.ts +0 -36
  118. package/tsconfig.json +0 -27
  119. /package/{dist → backend/dist}/bin/agentstudio.d.ts +0 -0
  120. /package/{dist → backend/dist}/bin/agentstudio.d.ts.map +0 -0
  121. /package/{dist → backend/dist}/middleware/auth.d.ts +0 -0
  122. /package/{dist → backend/dist}/middleware/auth.d.ts.map +0 -0
  123. /package/{dist → backend/dist}/middleware/auth.js +0 -0
  124. /package/{dist → backend/dist}/middleware/auth.js.map +0 -0
  125. /package/{dist → backend/dist}/routes/agents.d.ts +0 -0
  126. /package/{dist → backend/dist}/routes/agents.d.ts.map +0 -0
  127. /package/{dist → backend/dist}/routes/agents.js +0 -0
  128. /package/{dist → backend/dist}/routes/agents.js.map +0 -0
  129. /package/{dist → backend/dist}/routes/auth.d.ts +0 -0
  130. /package/{dist → backend/dist}/routes/auth.d.ts.map +0 -0
  131. /package/{dist → backend/dist}/routes/auth.js +0 -0
  132. /package/{dist → backend/dist}/routes/auth.js.map +0 -0
  133. /package/{dist → backend/dist}/routes/commands.d.ts +0 -0
  134. /package/{dist → backend/dist}/routes/commands.d.ts.map +0 -0
  135. /package/{dist → backend/dist}/routes/commands.js +0 -0
  136. /package/{dist → backend/dist}/routes/commands.js.map +0 -0
  137. /package/{dist → backend/dist}/routes/files.d.ts +0 -0
  138. /package/{dist → backend/dist}/routes/files.d.ts.map +0 -0
  139. /package/{dist → backend/dist}/routes/files.js +0 -0
  140. /package/{dist → backend/dist}/routes/files.js.map +0 -0
  141. /package/{dist → backend/dist}/routes/mcp.d.ts +0 -0
  142. /package/{dist → backend/dist}/routes/mcp.d.ts.map +0 -0
  143. /package/{dist → backend/dist}/routes/mcp.js +0 -0
  144. /package/{dist → backend/dist}/routes/mcp.js.map +0 -0
  145. /package/{dist → backend/dist}/routes/media.d.ts +0 -0
  146. /package/{dist → backend/dist}/routes/media.d.ts.map +0 -0
  147. /package/{dist → backend/dist}/routes/media.js +0 -0
  148. /package/{dist → backend/dist}/routes/media.js.map +0 -0
  149. /package/{dist → backend/dist}/routes/projects.d.ts +0 -0
  150. /package/{dist → backend/dist}/routes/projects.d.ts.map +0 -0
  151. /package/{dist → backend/dist}/routes/projects.js +0 -0
  152. /package/{dist → backend/dist}/routes/projects.js.map +0 -0
  153. /package/{dist → backend/dist}/routes/sessions.d.ts +0 -0
  154. /package/{dist → backend/dist}/routes/sessions.d.ts.map +0 -0
  155. /package/{dist → backend/dist}/routes/sessions.js +0 -0
  156. /package/{dist → backend/dist}/routes/sessions.js.map +0 -0
  157. /package/{dist → backend/dist}/routes/settings.d.ts +0 -0
  158. /package/{dist → backend/dist}/routes/settings.d.ts.map +0 -0
  159. /package/{dist → backend/dist}/routes/slides.d.ts +0 -0
  160. /package/{dist → backend/dist}/routes/slides.d.ts.map +0 -0
  161. /package/{dist → backend/dist}/routes/slides.js +0 -0
  162. /package/{dist → backend/dist}/routes/slides.js.map +0 -0
  163. /package/{dist → backend/dist}/routes/subagents.d.ts +0 -0
  164. /package/{dist → backend/dist}/routes/subagents.d.ts.map +0 -0
  165. /package/{dist → backend/dist}/routes/subagents.js +0 -0
  166. /package/{dist → backend/dist}/routes/subagents.js.map +0 -0
  167. /package/{dist → backend/dist}/services/claudeSession.d.ts +0 -0
  168. /package/{dist → backend/dist}/services/claudeSession.d.ts.map +0 -0
  169. /package/{dist → backend/dist}/services/claudeSession.js +0 -0
  170. /package/{dist → backend/dist}/services/claudeSession.js.map +0 -0
  171. /package/{dist → backend/dist}/services/messageQueue.d.ts +0 -0
  172. /package/{dist → backend/dist}/services/messageQueue.d.ts.map +0 -0
  173. /package/{dist → backend/dist}/services/messageQueue.js +0 -0
  174. /package/{dist → backend/dist}/services/messageQueue.js.map +0 -0
  175. /package/{dist → backend/dist}/services/sessionManager.d.ts +0 -0
  176. /package/{dist → backend/dist}/services/sessionManager.d.ts.map +0 -0
  177. /package/{dist → backend/dist}/services/sessionManager.js +0 -0
  178. /package/{dist → backend/dist}/services/sessionManager.js.map +0 -0
  179. /package/{dist → backend/dist}/utils/jwt.d.ts +0 -0
  180. /package/{dist → backend/dist}/utils/jwt.d.ts.map +0 -0
  181. /package/{dist → backend/dist}/utils/jwt.js +0 -0
  182. /package/{dist → backend/dist}/utils/jwt.js.map +0 -0
@@ -0,0 +1,525 @@
1
+ # AgentStudio
2
+
3
+ <div align="center">
4
+
5
+ ![AgentStudio](./frontend/public/cc-studio.png)
6
+
7
+ **基于 Claude Code 的个人智能体工作平台**
8
+
9
+ [![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)
10
+ [![GitHub stars](https://img.shields.io/github/stars/git-men/agentstudio.svg)](https://github.com/git-men/agentstudio/stargazers)
11
+ [![GitHub issues](https://img.shields.io/github/issues/git-men/agentstudio.svg)](https://github.com/git-men/agentstudio/issues)
12
+
13
+ [English](README.md) | [中文](README.zh-CN.md)
14
+
15
+ </div>
16
+
17
+ ---
18
+
19
+ ## 概述
20
+
21
+ AgentStudio 是一个基于 Claude Code SDK 构建的现代化个人智能体工作平台。它通过专业的 Web 界面扩展了 Claude Code 的功能,让 AI 驱动的开发对所有人都变得触手可及。
22
+
23
+ ## ✨ 核心特性
24
+
25
+ ### 🎨 **现代化 Web 界面**
26
+ - 专业直观的 Web UI,适合开发者和普通用户
27
+ - 实时流式响应,提供即时反馈
28
+ - 分屏布局,聊天界面与实时预览
29
+ - 响应式设计,支持桌面和移动端
30
+
31
+ ### 🤖 **多模型支持**
32
+ - **Claude 集成**:基于 Claude Code SDK,全面 API 支持
33
+ - **多厂商支持**:支持 OpenAI、GLM、DeepSeek 等主流 LLM
34
+ - **灵活配置**:轻松切换不同 AI 模型
35
+ - **流式输入**:实时响应流,提升用户体验
36
+
37
+ ### 🛠️ **高级智能体系统**
38
+ - **内置智能体**:PPT 编辑器、代码助手、文档写作器
39
+ - **自定义智能体**:创建和配置专门的智能体
40
+ - **子智能体**:用户定义的 AI 智能体,支持自定义系统提示词
41
+ - **智能体市场**:可扩展的智能体开发框架
42
+ - **消息级工具定制**:精细化控制智能体能力
43
+
44
+ ### 📁 **集成文件管理**
45
+ - **内置文件浏览器**:无缝导航和管理项目文件
46
+ - **文件内容查看器**:直接在界面中预览和编辑文件
47
+ - **项目感知操作**:上下文敏感的文件操作
48
+ - **版本控制集成**:支持 Git 的文件管理
49
+
50
+ ### 🎯 **专业工具**
51
+ - **幻灯片智能体**:AI 辅助创建和编辑演示文稿
52
+ - **代码探索器**:智能搜索导航代码库
53
+ - **文档大纲**:结构化文档编辑和管理
54
+ - **图片上传**:支持视觉内容分析
55
+ - **工具渲染器**:动态可视化工具使用和结果
56
+
57
+ ### 🔧 **开发者友好**
58
+ - **全栈 TypeScript**:完整类型安全,提升开发体验
59
+ - **现代技术栈**:React 18、Vite、TailwindCSS、Zustand
60
+ - **测试套件**:Vitest 全面测试覆盖
61
+ - **热重载**:即时代码更新的快速开发
62
+
63
+ ### 🌐 **部署就绪**
64
+ - **本地开发**:开发环境简易设置
65
+ - **一键安装**:终端用户简化部署
66
+ - **生产构建**:性能优化的构建
67
+ - **跨平台**:支持 Linux、macOS 和 Windows
68
+
69
+ ## 🚀 快速开始
70
+
71
+ ### 🐳 Docker 部署(推荐快速测试)
72
+
73
+ **一行命令启动:**
74
+
75
+ ```bash
76
+ # 构建并运行
77
+ docker build -t agentstudio:latest .
78
+ docker-compose up -d
79
+ ```
80
+
81
+ 然后在浏览器中打开 http://localhost
82
+
83
+ **你将获得:**
84
+ - ✅ **一体化容器**:前端 + 后端在单个容器中
85
+ - ✅ **数据持久化**:通过 Docker volume 自动备份数据
86
+ - ✅ **零配置**:开箱即用
87
+ - ✅ **轻松更新**:简单的重新构建和重启
88
+
89
+ 📖 **完整文档:**
90
+ - [Docker 部署指南](DOCKER.md) - 详细的设置和配置说明
91
+ - [快速入门指南](QUICKSTART.md) - 包含示例的分步教程
92
+
93
+ ---
94
+
95
+ ### 普通用户(一键安装)
96
+
97
+ **🐧 Linux & 🍎 macOS - 用户空间安装(推荐 - 无需 sudo)**
98
+
99
+ ```bash
100
+ # 在用户空间安装 Agent Studio 后端
101
+ curl -fsSL https://raw.githubusercontent.com/git-men/agentstudio/main/scripts/remote-install.sh | bash
102
+ ```
103
+
104
+ 安装程序会:
105
+ - ✅ **自动检测并安装 Node.js 18+**(通过系统包管理器或 NVM)
106
+ - ✅ **自动安装 pnpm** 以获得更快的包管理性能(可选)
107
+ - ✅ **自动处理所有依赖项**
108
+ - ✅ **支持所有主流 Linux 发行版**(Ubuntu、CentOS、Fedora、Arch 等)
109
+ - ✅ **支持 root 用户和普通用户**
110
+
111
+ 安装程序会询问是否立即启动后端。如果选择暂不启动,稍后可以手动启动:
112
+
113
+ ```bash
114
+ # 启动后端
115
+ ~/.agent-studio/start.sh
116
+
117
+ # 停止后端
118
+ ~/.agent-studio/stop.sh
119
+ ```
120
+
121
+ **🪟 Windows - PowerShell 安装**
122
+
123
+ ```powershell
124
+ # 以管理员身份在 PowerShell 中运行
125
+ PowerShell -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/git-men/agentstudio/main/scripts/windows-install.ps1'))"
126
+ ```
127
+
128
+ Windows 安装程序会:
129
+ - ✅ **自动安装 Node.js**(通过 Chocolatey、winget 或直接下载)
130
+ - ✅ **自动安装 Git**(如果未安装)
131
+ - ✅ **自动处理所有依赖项**
132
+ - ✅ **创建启动/停止批处理脚本**
133
+
134
+ **Windows 备选方案 - 简化批处理脚本**
135
+ 如果您已经安装了 Node.js 和 Git:
136
+
137
+ ```batch
138
+ # 下载并运行简化安装程序
139
+ curl -o windows-install-simple.bat https://raw.githubusercontent.com/git-men/agentstudio/main/scripts/windows-install-simple.bat
140
+ windows-install-simple.bat
141
+ ```
142
+
143
+ **访问应用:**
144
+ 1. 打开浏览器访问:**https://agentstudio-frontend.vercel.app/**
145
+ 2. 在 Web 界面中,进入 **设置 → API 配置**
146
+ 3. 输入后端地址:`http://localhost:4936`
147
+ 4. 点击"测试连接"验证
148
+
149
+ **方式二:系统服务安装(需要 sudo)**
150
+
151
+ 用于生产部署,支持开机自动启动:
152
+
153
+ ```bash
154
+ # 安装为系统服务,支持开机自启
155
+ curl -fsSL https://raw.githubusercontent.com/git-men/agentstudio/main/scripts/remote-install.sh | sudo bash
156
+ ```
157
+
158
+ 安装完成后,管理服务:
159
+ ```bash
160
+ agent-studio start # 启动服务
161
+ agent-studio stop # 停止服务
162
+ agent-studio restart # 重启服务
163
+ agent-studio status # 查看状态
164
+ agent-studio logs # 查看日志
165
+ agent-studio config # 编辑配置
166
+ ```
167
+
168
+ 然后访问 **https://agentstudio-frontend.vercel.app/** 并在设置中配置后端地址。
169
+
170
+ ### 开发者(开发环境设置)
171
+
172
+ **前置要求:**
173
+ - Node.js 18+
174
+ - pnpm(推荐)或 npm
175
+ - Git
176
+
177
+ **安装步骤:**
178
+ ```bash
179
+ # 克隆仓库
180
+ git clone https://github.com/git-men/agentstudio.git
181
+ cd agentstudio
182
+
183
+ # 安装依赖
184
+ pnpm install
185
+
186
+ # 启动开发服务器(前后端同时启动)
187
+ pnpm run dev
188
+
189
+ # 或者分别启动
190
+ pnpm run dev:frontend # 仅前端(端口 3000)
191
+ pnpm run dev:backend # 仅后端(端口 4936)
192
+ ```
193
+
194
+ **生产构建:**
195
+ ```bash
196
+ pnpm run build
197
+ pnpm start
198
+ ```
199
+
200
+ ## 📁 项目结构
201
+
202
+ ```
203
+ agentstudio/
204
+ ├── frontend/ # React 前端应用
205
+ │ ├── src/
206
+ │ │ ├── components/ # 可复用 UI 组件
207
+ │ │ ├── pages/ # 页面组件
208
+ │ │ ├── agents/ # 智能体相关组件
209
+ │ │ ├── hooks/ # React hooks 和数据获取
210
+ │ │ └── stores/ # 状态管理(Zustand)
211
+ │ └── public/ # 静态资源
212
+ ├── backend/ # Node.js 后端服务
213
+ │ ├── src/
214
+ │ │ ├── routes/ # API 端点
215
+ │ │ ├── services/ # 业务逻辑
216
+ │ │ └── index.ts # 服务入口
217
+ │ └── dist/ # 构建后的代码
218
+ ├── shared/ # 共享类型和工具
219
+ └── scripts/ # 安装和部署脚本
220
+ ```
221
+
222
+ ## ⚙️ 配置
223
+
224
+ ### 环境变量
225
+
226
+ **开发环境:**
227
+ 在 `backend/` 目录创建 `.env` 文件:
228
+
229
+ ```env
230
+ # AI 提供商配置(选择一个或多个)
231
+ ANTHROPIC_API_KEY=your_anthropic_api_key_here
232
+ OPENAI_API_KEY=your_openai_api_key_here
233
+
234
+ # 服务器配置
235
+ PORT=4936
236
+ NODE_ENV=development
237
+
238
+ # 文件系统
239
+ SLIDES_DIR=../slides
240
+
241
+ # CORS 配置(生产环境)
242
+ CORS_ORIGINS=https://your-frontend-domain.com
243
+ ```
244
+
245
+ **系统服务安装:**
246
+ 编辑配置文件 `~/.agent-studio-config/config.env`:
247
+
248
+ ```bash
249
+ # 编辑配置(仅系统服务安装)
250
+ agent-studio config
251
+ ```
252
+
253
+ 配置选项:
254
+ ```env
255
+ # 服务器配置
256
+ NODE_ENV=production
257
+ PORT=4936
258
+ SLIDES_DIR=~/slides
259
+
260
+ # 可选:AI 提供商密钥(按需配置)
261
+ # ANTHROPIC_API_KEY=your_anthropic_api_key_here
262
+ # OPENAI_API_KEY=your_openai_api_key_here
263
+
264
+ # 可选:CORS 配置(自定义前端)
265
+ # CORS_ORIGINS=https://your-frontend.vercel.app,https://custom-domain.com
266
+ ```
267
+
268
+ ### API 配置
269
+
270
+ 前端托管在 **https://agentstudio-frontend.vercel.app/**,可以连接不同的后端实例:
271
+
272
+ **本地后端:**
273
+ 1. 在 Web 界面中打开 **设置 → API 配置**
274
+ 2. 输入:`http://localhost:4936`(或自定义端口)
275
+ 3. 点击"测试连接"验证
276
+
277
+ **远程后端:**
278
+ 1. 将后端部署到具有公网 IP 或域名的服务器
279
+ 2. 在设置中配置后端地址(例如:`https://your-backend.com`)
280
+ 3. 确保后端的 `.env` 文件中正确配置了 CORS
281
+
282
+ ## 📋 服务管理
283
+
284
+ ### 系统服务命令(使用 sudo 安装时)
285
+
286
+ ```bash
287
+ # 基本服务操作
288
+ agent-studio start # 启动服务
289
+ agent-studio stop # 停止服务
290
+ agent-studio restart # 重启服务
291
+ agent-studio status # 查看状态
292
+
293
+ # 监控和日志
294
+ agent-studio logs # 查看实时日志
295
+
296
+ # 配置管理
297
+ agent-studio config # 编辑配置文件
298
+
299
+ # 服务管理
300
+ agent-studio uninstall # 卸载服务
301
+ ```
302
+
303
+ ### 服务详情
304
+
305
+ **安装目录:**
306
+
307
+ 用户空间安装(无 sudo):
308
+ - 应用程序:`~/.agent-studio`
309
+ - 配置文件:`~/.agent-studio-config/config.env`
310
+ - 日志目录:`~/.agent-studio-logs/`
311
+ - 幻灯片:`~/slides`
312
+ - 启动脚本:`~/.agent-studio/start.sh`
313
+ - 停止脚本:`~/.agent-studio/stop.sh`
314
+
315
+ 系统服务安装(使用 sudo):
316
+ - 应用程序:`~/.agent-studio`
317
+ - 配置文件:`~/.agent-studio-config/config.env`
318
+ - 日志目录:`~/.agent-studio-logs/`
319
+ - 幻灯片:`~/slides`
320
+
321
+ **日志文件:**
322
+ - 输出日志:`~/.agent-studio-logs/output.log`
323
+ - 错误日志:`~/.agent-studio-logs/error.log`
324
+ - 日志轮转:每日(保留 30 天)
325
+
326
+ **服务集成:**
327
+ - Linux:systemd 服务(`/etc/systemd/system/agent-studio.service`)
328
+ - macOS:launchd 服务(`/Library/LaunchDaemons/com.agent-studio.backend.plist`)
329
+ - 默认开机自启
330
+
331
+ ## 🔧 故障排除
332
+
333
+ ### 安装问题
334
+
335
+ **Node.js 安装问题:**
336
+ 安装程序会自动处理 Node.js 安装,但如果遇到问题:
337
+
338
+ ```bash
339
+ # Linux/macOS - 通过 NVM 手动安装 Node.js
340
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
341
+ source ~/.bashrc
342
+ nvm install --lts
343
+ nvm use --lts
344
+
345
+ # Windows - 从官网下载
346
+ # 访问:https://nodejs.org/
347
+ ```
348
+
349
+ **Ubuntu/Debian 特定问题:**
350
+ - **Root 用户检测**:最新安装程序已修复 - 现在正确支持 root 用户和普通用户
351
+ - **TTY 问题**:安装程序设置 `CI=true` 处理非交互式环境
352
+ - **构建失败**:安装程序自动使用开发依赖重试
353
+
354
+ **Windows 安装问题:**
355
+ - **PowerShell 执行策略**:运行 `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser`
356
+ - **缺少依赖**:安装程序会提示安装 Node.js、Git 和其他必需组件
357
+ - **权限问题**:以管理员身份运行 PowerShell 进行系统级安装
358
+
359
+ ### 服务无法启动
360
+
361
+ **用户空间安装:**
362
+ ```bash
363
+ # 检查后端是否运行
364
+ curl http://localhost:4936/api/health
365
+
366
+ # 查看日志
367
+ cat ~/.agent-studio-logs/output.log
368
+ cat ~/.agent-studio-logs/error.log
369
+
370
+ # 重启后端
371
+ ~/.agent-studio/stop.sh
372
+ ~/.agent-studio/start.sh
373
+ ```
374
+
375
+ **系统服务安装:**
376
+ ```bash
377
+ # 检查服务状态
378
+ agent-studio status
379
+
380
+ # 查看日志中的错误
381
+ agent-studio logs
382
+
383
+ # 验证配置
384
+ agent-studio config
385
+
386
+ # 检查端口是否可用
387
+ lsof -i :4936
388
+ ```
389
+
390
+ ### 常见问题
391
+
392
+ **权限错误(用户安装):**
393
+ ```bash
394
+ # 修复脚本权限
395
+ chmod +x ~/.agent-studio/start.sh
396
+ chmod +x ~/.agent-studio/stop.sh
397
+
398
+ # 修复目录权限
399
+ chmod -R 755 ~/.agent-studio
400
+ ```
401
+
402
+ **权限错误(系统服务):**
403
+ ```bash
404
+ sudo chown -R agent-studio:agent-studio /opt/agent-studio
405
+ sudo chown -R agent-studio:agent-studio /var/log/agent-studio
406
+ ```
407
+
408
+ **端口被占用:**
409
+ ```bash
410
+ # 查找占用端口的进程
411
+ lsof -i :4936
412
+
413
+ # 终止进程(将 PID 替换为实际进程 ID)
414
+ kill -9 <PID>
415
+
416
+ # 或在配置中更改端口
417
+ # 编辑 ~/.agent-studio-config/config.env 并更改 PORT=8080
418
+ ```
419
+
420
+ **构建失败:**
421
+ 安装程序现在自动处理构建失败:
422
+ 1. 安装开发依赖
423
+ 2. 重试构建
424
+ 3. 如果构建仍然失败,回退到开发模式
425
+
426
+ **健康检查:**
427
+ ```bash
428
+ # 用户安装
429
+ curl http://localhost:4936/api/health
430
+
431
+ # 系统服务
432
+ agent-studio health
433
+ ```
434
+
435
+ **Windows 特定问题:**
436
+ ```batch
437
+ REM 检查 Node.js 是否可用
438
+ node --version
439
+
440
+ REM 检查后端是否运行
441
+ curl http://localhost:4936/api/health
442
+
443
+ REM 手动启动后端
444
+ cd %USERPROFILE%\.agent-studio
445
+ start.bat
446
+
447
+ REM 停止后端
448
+ stop.bat
449
+ ```
450
+
451
+ ## 📦 更新
452
+
453
+ 更新已安装的服务:
454
+
455
+ ```bash
456
+ # 停止服务
457
+ ~/.agent-studio/stop.sh
458
+
459
+ # 更新代码
460
+ cd ~/.agent-studio
461
+ git pull
462
+ pnpm install
463
+ pnpm run build:backend
464
+
465
+ # 启动服务
466
+ ~/.agent-studio/start.sh
467
+ ```
468
+
469
+ ## 🧪 测试
470
+
471
+ ```bash
472
+ # 运行所有测试
473
+ pnpm test
474
+
475
+ # 仅运行前端测试
476
+ cd frontend && pnpm test
477
+
478
+ # 运行测试并生成覆盖率报告
479
+ cd frontend && pnpm run test:coverage
480
+
481
+ # 使用 UI 运行测试
482
+ cd frontend && pnpm run test:ui
483
+ ```
484
+
485
+ ## 🛡️ 安全
486
+
487
+ - **API 密钥保护**:基于环境变量的 API 密钥管理
488
+ - **CORS 配置**:可配置的跨域策略
489
+ - **输入验证**:全面的输入清理
490
+ - **安全文件操作**:沙箱化的文件系统访问
491
+
492
+ ## 🤝 贡献
493
+
494
+ 我们欢迎贡献!请查看我们的[贡献指南](CONTRIBUTING.md)了解详情。
495
+
496
+ 1. Fork 仓库
497
+ 2. 创建特性分支(`git checkout -b feature/amazing-feature`)
498
+ 3. 提交更改(`git commit -m 'Add amazing feature'`)
499
+ 4. 推送到分支(`git push origin feature/amazing-feature`)
500
+ 5. 开启 Pull Request
501
+
502
+ ## 📄 许可证
503
+
504
+ 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
505
+
506
+ ## 🙏 致谢
507
+
508
+ - 基于 [Claude Code SDK](https://claude.ai/code) 构建
509
+ - 受现代开发工作流启发
510
+ - 社区反馈和贡献
511
+
512
+ ---
513
+
514
+ ## 📞 支持
515
+
516
+ - 📖 [文档](https://github.com/git-men/agentstudio/wiki)
517
+ - 🐛 [问题报告](https://github.com/git-men/agentstudio/issues)
518
+ - 💬 [讨论区](https://github.com/git-men/agentstudio/discussions)
519
+
520
+
521
+ ## Links
522
+
523
+ | link | type | service | description |
524
+ |:---|:---|:---|:---|
525
+ | **[ctok.ai](https://ctok.ai/)** | 🤝 community | <small>✅ Claude Code<br>✅ Codex CLI</small> | 热心网友提供 Claude Code / Codex CLI 拼车服务
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { program } from 'commander';
3
- import { startServer } from '../index.js';
3
+ import app from '../index.js';
4
4
  import path from 'path';
5
5
  import { fileURLToPath } from 'url';
6
6
  const __filename = fileURLToPath(import.meta.url);
@@ -35,8 +35,9 @@ program
35
35
  }
36
36
  try {
37
37
  // Start backend server
38
- await startServer(options.port);
39
- console.log(`✅ Backend running on http://${options.host}:${options.port}`);
38
+ app.listen(options.port, options.host, () => {
39
+ console.log(`✅ Backend running on http://${options.host}:${options.port}`);
40
+ });
40
41
  // Serve frontend static files
41
42
  console.log(`✅ Frontend available at http://${options.host}:${options.port}`);
42
43
  console.log('📖 Open your browser to start using AgentStudio');
@@ -69,8 +70,9 @@ program
69
70
  process.env.NO_AUTH = 'true';
70
71
  }
71
72
  try {
72
- await startServer();
73
- console.log(`✅ Backend running on http://${options.host}:${options.port}`);
73
+ app.listen(options.port, options.host, () => {
74
+ console.log(`✅ Backend running on http://${options.host}:${options.port}`);
75
+ });
74
76
  }
75
77
  catch (error) {
76
78
  console.error('❌ Failed to start backend:', error);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentstudio.js","sourceRoot":"","sources":["../../src/bin/agentstudio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const app: import("express-serve-static-core").Express;
2
+ export default app;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwBA,QAAA,MAAM,GAAG,6CAAY,CAAC;AAwItB,eAAe,GAAG,CAAC"}
@@ -100,15 +100,6 @@ app.use(express.urlencoded({ extended: true, limit: '10mb' }));
100
100
  // Static files - serve slides directory
101
101
  const slidesDir = join(__dirname, '../..', process.env.SLIDES_DIR || 'slides');
102
102
  app.use('/slides', express.static(slidesDir));
103
- // Serve frontend static files in production
104
- const frontendDir = join(__dirname, '../frontend/dist');
105
- if (process.env.NODE_ENV === 'production') {
106
- app.use(express.static(frontendDir));
107
- // Handle SPA routing - serve index.html for all other routes
108
- app.get('*', (req, res) => {
109
- res.sendFile(join(frontendDir, 'index.html'));
110
- });
111
- }
112
103
  // Routes - Public routes
113
104
  app.use('/api/auth', authRouter);
114
105
  // Protected routes - Require authentication
@@ -133,25 +124,15 @@ app.use((err, req, res, next) => {
133
124
  message: process.env.NODE_ENV === 'development' ? err.message : 'Something went wrong'
134
125
  });
135
126
  });
136
- // 404 handler - only for API routes in production
137
- if (process.env.NODE_ENV !== 'production') {
138
- app.use('*', (req, res) => {
139
- res.status(404).json({ error: 'Route not found' });
140
- });
141
- }
142
- export function startServer(port) {
143
- return new Promise((resolve, reject) => {
144
- const serverPort = port || PORT;
145
- const server = app.listen(serverPort, () => {
146
- console.log(`AI PPT Editor backend running on http://localhost:${serverPort}`);
147
- console.log(`Serving slides from: ${slidesDir}`);
148
- resolve(server);
149
- });
150
- server.on('error', reject);
127
+ // 404 handler
128
+ app.use('*', (req, res) => {
129
+ res.status(404).json({ error: 'Route not found' });
130
+ });
131
+ if (require.main === module) {
132
+ app.listen(PORT, () => {
133
+ console.log(`AI PPT Editor backend running on http://localhost:${PORT}`);
134
+ console.log(`Serving slides from: ${slidesDir}`);
151
135
  });
152
136
  }
153
- // Start server if this file is run directly
154
- if (import.meta.url === `file://${process.argv[1]}`) {
155
- startServer().catch(console.error);
156
- }
137
+ export default app;
157
138
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -632,7 +632,7 @@ router.post('/claude-versions/init-system', async (req, res) => {
632
632
  environmentVariables.ANTHROPIC_AUTH_TOKEN = authToken;
633
633
  }
634
634
  // 创建或更新系统版本
635
- const storage = await import('../../shared/utils/claudeVersionStorage.js');
635
+ const storage = await import('agentstudio-shared/utils/claudeVersionStorage');
636
636
  let systemVersion = await storage.initializeSystemVersion(claudePath);
637
637
  // 更新环境变量
638
638
  if (Object.keys(environmentVariables).length > 0) {