cloneloop 0.1.0__py3-none-any.whl

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 (118) hide show
  1. cloneloop-0.1.0.dist-info/METADATA +392 -0
  2. cloneloop-0.1.0.dist-info/RECORD +118 -0
  3. cloneloop-0.1.0.dist-info/WHEEL +4 -0
  4. cloneloop-0.1.0.dist-info/entry_points.txt +5 -0
  5. mcp_ai_supervisor/__init__.py +52 -0
  6. mcp_ai_supervisor/__main__.py +551 -0
  7. mcp_ai_supervisor/debug.py +15 -0
  8. mcp_ai_supervisor/desktop_app/__init__.py +29 -0
  9. mcp_ai_supervisor/desktop_app/desktop_app.py +390 -0
  10. mcp_ai_supervisor/helpers/__init__.py +4 -0
  11. mcp_ai_supervisor/helpers/feedback_helpers.py +140 -0
  12. mcp_ai_supervisor/helpers/image_helpers.py +73 -0
  13. mcp_ai_supervisor/i18n.py +14 -0
  14. mcp_ai_supervisor/log_writer.py +16 -0
  15. mcp_ai_supervisor/logging/__init__.py +8 -0
  16. mcp_ai_supervisor/logging/log_parser.py +293 -0
  17. mcp_ai_supervisor/logging/log_tailer.py +367 -0
  18. mcp_ai_supervisor/py.typed +0 -0
  19. mcp_ai_supervisor/server.py +654 -0
  20. mcp_ai_supervisor/utils/__init__.py +28 -0
  21. mcp_ai_supervisor/utils/error_handler.py +10 -0
  22. mcp_ai_supervisor/utils/memory_monitor.py +11 -0
  23. mcp_ai_supervisor/utils/paths.py +7 -0
  24. mcp_ai_supervisor/utils/resource_manager.py +15 -0
  25. mcp_ai_supervisor/utils/structure_checker.py +291 -0
  26. mcp_ai_supervisor/web/__init__.py +26 -0
  27. mcp_ai_supervisor/web/constants/__init__.py +8 -0
  28. mcp_ai_supervisor/web/constants/message_codes.py +173 -0
  29. mcp_ai_supervisor/web/core/__init__.py +30 -0
  30. mcp_ai_supervisor/web/core/agent_bridge.py +957 -0
  31. mcp_ai_supervisor/web/core/auto_responder.py +332 -0
  32. mcp_ai_supervisor/web/core/context_collector.py +124 -0
  33. mcp_ai_supervisor/web/core/conversation_recorder.py +751 -0
  34. mcp_ai_supervisor/web/core/delegate_manager.py +1193 -0
  35. mcp_ai_supervisor/web/core/feedback_mediator.py +259 -0
  36. mcp_ai_supervisor/web/core/message_channel.py +551 -0
  37. mcp_ai_supervisor/web/core/response_builder.py +333 -0
  38. mcp_ai_supervisor/web/core/scene_detector.py +184 -0
  39. mcp_ai_supervisor/web/core/task_state.py +194 -0
  40. mcp_ai_supervisor/web/locales/en/translation.json +643 -0
  41. mcp_ai_supervisor/web/locales/zh-CN/translation.json +629 -0
  42. mcp_ai_supervisor/web/locales/zh-TW/translation.json +648 -0
  43. mcp_ai_supervisor/web/main.py +747 -0
  44. mcp_ai_supervisor/web/managers/__init__.py +8 -0
  45. mcp_ai_supervisor/web/managers/desktop_manager.py +228 -0
  46. mcp_ai_supervisor/web/managers/server_manager.py +170 -0
  47. mcp_ai_supervisor/web/managers/session_manager.py +515 -0
  48. mcp_ai_supervisor/web/managers/workbench_connector.py +186 -0
  49. mcp_ai_supervisor/web/models/__init__.py +13 -0
  50. mcp_ai_supervisor/web/models/feedback_result.py +16 -0
  51. mcp_ai_supervisor/web/models/feedback_session.py +938 -0
  52. mcp_ai_supervisor/web/models/session_cleaner.py +245 -0
  53. mcp_ai_supervisor/web/models/session_commands.py +213 -0
  54. mcp_ai_supervisor/web/models/session_resolver.py +158 -0
  55. mcp_ai_supervisor/web/models/session_timer.py +242 -0
  56. mcp_ai_supervisor/web/routes/__init__.py +12 -0
  57. mcp_ai_supervisor/web/routes/main_routes.py +965 -0
  58. mcp_ai_supervisor/web/routes/settings_routes.py +195 -0
  59. mcp_ai_supervisor/web/routes/ws_handlers.py +270 -0
  60. mcp_ai_supervisor/web/static/css/audio-management.css +545 -0
  61. mcp_ai_supervisor/web/static/css/notification-settings.css +152 -0
  62. mcp_ai_supervisor/web/static/css/prompt-management.css +566 -0
  63. mcp_ai_supervisor/web/static/css/session-management.css +1428 -0
  64. mcp_ai_supervisor/web/static/css/styles.css +2267 -0
  65. mcp_ai_supervisor/web/static/favicon.ico +0 -0
  66. mcp_ai_supervisor/web/static/icon-192.png +0 -0
  67. mcp_ai_supervisor/web/static/icon.svg +11 -0
  68. mcp_ai_supervisor/web/static/index.html +37 -0
  69. mcp_ai_supervisor/web/static/js/app.js +1721 -0
  70. mcp_ai_supervisor/web/static/js/i18n.js +376 -0
  71. mcp_ai_supervisor/web/static/js/modules/audio/audio-manager.js +610 -0
  72. mcp_ai_supervisor/web/static/js/modules/audio/audio-settings-ui.js +732 -0
  73. mcp_ai_supervisor/web/static/js/modules/connection-monitor.js +435 -0
  74. mcp_ai_supervisor/web/static/js/modules/constants/message-codes.js +168 -0
  75. mcp_ai_supervisor/web/static/js/modules/countdown-manager.js +273 -0
  76. mcp_ai_supervisor/web/static/js/modules/drag-drop-handler.js +677 -0
  77. mcp_ai_supervisor/web/static/js/modules/file-upload-manager.js +555 -0
  78. mcp_ai_supervisor/web/static/js/modules/image-handler.js +199 -0
  79. mcp_ai_supervisor/web/static/js/modules/logger.js +404 -0
  80. mcp_ai_supervisor/web/static/js/modules/notification/notification-manager.js +360 -0
  81. mcp_ai_supervisor/web/static/js/modules/notification/notification-settings.js +344 -0
  82. mcp_ai_supervisor/web/static/js/modules/prompt/prompt-input-buttons.js +427 -0
  83. mcp_ai_supervisor/web/static/js/modules/prompt/prompt-manager.js +414 -0
  84. mcp_ai_supervisor/web/static/js/modules/prompt/prompt-modal.js +458 -0
  85. mcp_ai_supervisor/web/static/js/modules/prompt/prompt-settings-ui.js +524 -0
  86. mcp_ai_supervisor/web/static/js/modules/session/session-data-manager.js +1042 -0
  87. mcp_ai_supervisor/web/static/js/modules/session/session-details-modal.js +594 -0
  88. mcp_ai_supervisor/web/static/js/modules/session/session-ui-renderer.js +836 -0
  89. mcp_ai_supervisor/web/static/js/modules/session-manager.js +1059 -0
  90. mcp_ai_supervisor/web/static/js/modules/settings-manager.js +1002 -0
  91. mcp_ai_supervisor/web/static/js/modules/tab-manager.js +235 -0
  92. mcp_ai_supervisor/web/static/js/modules/textarea-height-manager.js +267 -0
  93. mcp_ai_supervisor/web/static/js/modules/ui-manager.js +578 -0
  94. mcp_ai_supervisor/web/static/js/modules/utils/dom-utils.js +392 -0
  95. mcp_ai_supervisor/web/static/js/modules/utils/status-utils.js +403 -0
  96. mcp_ai_supervisor/web/static/js/modules/utils/time-utils.js +440 -0
  97. mcp_ai_supervisor/web/static/js/modules/utils.js +557 -0
  98. mcp_ai_supervisor/web/static/js/modules/websocket-manager.js +875 -0
  99. mcp_ai_supervisor/web/static/js/modules/workbench-notification.js +103 -0
  100. mcp_ai_supervisor/web/static/js/vendor/marked.min.js +6 -0
  101. mcp_ai_supervisor/web/static/js/vendor/purify.min.js +3 -0
  102. mcp_ai_supervisor/web/templates/components/image-upload.html +43 -0
  103. mcp_ai_supervisor/web/templates/components/settings-card.html +58 -0
  104. mcp_ai_supervisor/web/templates/components/status-indicator.html +31 -0
  105. mcp_ai_supervisor/web/templates/components/toggle-switch.html +19 -0
  106. mcp_ai_supervisor/web/templates/feedback.html +1198 -0
  107. mcp_ai_supervisor/web/templates/index.html +378 -0
  108. mcp_ai_supervisor/web/utils/__init__.py +12 -0
  109. mcp_ai_supervisor/web/utils/browser.py +35 -0
  110. mcp_ai_supervisor/web/utils/compression_config.py +195 -0
  111. mcp_ai_supervisor/web/utils/compression_monitor.py +314 -0
  112. mcp_ai_supervisor/web/utils/ide_opener.py +286 -0
  113. mcp_ai_supervisor/web/utils/network.py +66 -0
  114. mcp_ai_supervisor/web/utils/port_manager.py +340 -0
  115. mcp_ai_supervisor/web/utils/session_cleanup_manager.py +543 -0
  116. mcp_ai_supervisor/web/utils/workbench_client.py +899 -0
  117. mcp_ai_supervisor/workbench/__init__.py +5 -0
  118. mcp_ai_supervisor/workbench/__main__.py +5 -0
@@ -0,0 +1,392 @@
1
+ Metadata-Version: 2.4
2
+ Name: cloneloop
3
+ Version: 0.1.0
4
+ Summary: CloneLoop - Clone your work patterns from conversations, let AI execute by your standards continuously.
5
+ Author: 淘日本技术团队
6
+ Keywords: ai,cloneloop,development,interactive,mcp,skill,supervisor
7
+ Requires-Python: >=3.11
8
+ Requires-Dist: fastapi>=0.115.0
9
+ Requires-Dist: fastmcp>=2.0.0
10
+ Requires-Dist: jinja2>=3.1.0
11
+ Requires-Dist: mcp-supervisor-core>=0.1.0
12
+ Requires-Dist: mcp-supervisor-workbench>=0.1.0
13
+ Requires-Dist: mcp>=1.9.3
14
+ Requires-Dist: psutil>=7.0.0
15
+ Requires-Dist: uvicorn>=0.30.0
16
+ Requires-Dist: websockets>=13.0.0
17
+ Description-Content-Type: text/markdown
18
+
19
+ # MCP AI Supervisor
20
+
21
+ > AI 智能监工系统 —— 让 AI 不再半途而废
22
+
23
+ MCP AI Supervisor 是一个基于 [MCP(Model Context Protocol)](https://modelcontextprotocol.io/) 的 AI 任务监督工具。它通过 `interactive_feedback` MCP 工具在 AI 和用户之间建立持续的反馈循环,确保 AI 完整地完成任务。
24
+
25
+ ## 工作原理
26
+
27
+ ```
28
+ AI 执行任务 → 调用 interactive_feedback → 监工系统处理 → 返回反馈 → AI 继续工作
29
+ ↑ |
30
+ └────────────────────── 循环直到任务完成 ──────────────────────────┘
31
+ ```
32
+
33
+ ## 核心特性
34
+
35
+ - **三种运行模式** — `semi`(半自动,默认)/ `auto`(全自动)/ `manual`(手动)
36
+ - **Tauri 桌面弹窗** — 原生弹窗提醒(macOS / Linux / Windows),比浏览器更醒目
37
+ - **Workbench 控制台** — React + WebSocket 实时多项目管理面板(V4.0)
38
+ - **监工 Agent** — 可选的 AI 监工(qodercli),自动评估主 AI 的产出质量
39
+ - **Timeout 自动重试** — 超时不中断,自动提醒 AI 继续等待(可配置最大重试次数和退避策略)
40
+ - **消息队列** — AI 忙碌时消息自动排队,空闲时优先投递,支持置顶/编辑/重试
41
+ - **多 IDE 支持** — Cursor、Qoder、Claude Code
42
+ - **多语言界面** — 简体中文 / 繁体中文 / English
43
+
44
+ ## 快速安装
45
+
46
+ ### 方式一:PyPI 安装(推荐)
47
+
48
+ ```bash
49
+ pip install mcp-ai-supervisor
50
+ ```
51
+
52
+ 安装后在 `~/.cursor/mcp.json` 中配置:
53
+
54
+ ```json
55
+ {
56
+ "mcpServers": {
57
+ "mcp-ai-supervisor": {
58
+ "command": "uvx",
59
+ "args": ["mcp-ai-supervisor"],
60
+ "timeout": 600,
61
+ "env": {
62
+ "MCP_DESKTOP_MODE": "true",
63
+ "MCP_DELEGATE_MODE": "semi",
64
+ "MCP_LANGUAGE": "zh-CN"
65
+ },
66
+ "autoApprove": ["interactive_feedback"]
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ 也可以直接使用 `uvx`,无需预先安装:
73
+
74
+ ```json
75
+ {
76
+ "mcpServers": {
77
+ "mcp-ai-supervisor": {
78
+ "command": "uvx",
79
+ "args": ["mcp-ai-supervisor"],
80
+ "timeout": 600
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ ### 方式二:脚本安装
87
+
88
+ ```bash
89
+ # 一键远程安装
90
+ curl -fsSL https://gitlab.alibaba-inc.com/AIPlayer_TaoJp/mcp-ai-supervisor/raw/main/scripts/install.sh | bash
91
+
92
+ # 或本地安装
93
+ git clone https://gitlab.alibaba-inc.com/AIPlayer_TaoJp/mcp-ai-supervisor.git
94
+ cd mcp-ai-supervisor && ./scripts/install.sh
95
+ ```
96
+
97
+ ### 方式三:手动配置
98
+
99
+ 编辑 `~/.cursor/mcp.json`:
100
+
101
+ ```json
102
+ {
103
+ "mcpServers": {
104
+ "mcp-ai-supervisor": {
105
+ "command": "/path/to/mcp-ai-supervisor/.venv/bin/python",
106
+ "args": ["-m", "mcp_ai_supervisor"],
107
+ "timeout": 600,
108
+ "env": {
109
+ "MCP_DESKTOP_MODE": "true",
110
+ "MCP_DELEGATE_MODE": "semi",
111
+ "MCP_LANGUAGE": "zh-CN"
112
+ },
113
+ "autoApprove": ["interactive_feedback"]
114
+ }
115
+ }
116
+ }
117
+ ```
118
+
119
+ **关键说明**:
120
+ - `command` 必须指向项目 `.venv/bin/python`(项目虚拟环境中的 Python)
121
+ - `args` 使用 `-m mcp_ai_supervisor` 启动 MCP Server
122
+ - 安装后运行 `bash scripts/verify.sh` 验证配置是否正确
123
+ - 完整环境变量参考见 [配置与部署文档](docs/项目介绍/08-配置与部署.md)
124
+
125
+ ## 三种模式对比
126
+
127
+ | 模式 | 用户介入 | Agent 评估 | 适用场景 |
128
+ |------|----------|-----------|----------|
129
+ | **semi**(默认) | 弹窗倒计时,可随时介入 | 倒计时到期后自动触发 | 日常开发 |
130
+ | **auto** | 无 UI 弹窗 | 每轮必须评估 | 批量任务、夜间跑批 |
131
+ | **manual** | 每次等待用户输入 | 用户可选触发 | 精细控制场景 |
132
+
133
+ ---
134
+
135
+ ## 系统架构
136
+
137
+ 系统分为 **MCP Server**、**Workbench 后端**、**Workbench 前端**、**桌面弹窗** 四大部分:
138
+
139
+ ```
140
+ ┌──────────────────────────────────────────────────────────┐
141
+ │ Cursor / IDE 中的 AI │
142
+ │ 调用 interactive_feedback MCP 工具 │
143
+ └───────────────────────┬──────────────────────────────────┘
144
+ │ MCP Protocol (stdio)
145
+ ┌───────────────────────▼──────────────────────────────────┐
146
+ │ MCP Server (packages/mcp-server) │
147
+ │ • interactive_feedback / get_system_info │
148
+ │ • DelegateManager 核心编排 │
149
+ │ • WorkbenchClient → 上报消息到 Workbench │
150
+ └───────────────────────┬──────────────────────────────────┘
151
+ │ HTTP API
152
+ ┌───────────────────────▼──────────────────────────────────┐
153
+ │ Workbench Server (packages/workbench-server) │
154
+ │ ┌─────────────┬──────────────┬──────────────────────┐ │
155
+ │ │ AgentRegistry│ ProjectQueue │ ConversationStore │ │
156
+ │ │ UnreadTracker│ WSManager │ LogWriter/Parser │ │
157
+ │ └─────────────┴──────────────┴──────────────────────┘ │
158
+ │ REST API: /api/projects, /api/messages, /api/queue ... │
159
+ │ WebSocket: /ws (init_snapshot, new_message, ...) │
160
+ └───────────────────────┬──────────────────────────────────┘
161
+ │ HTTP + WebSocket
162
+ ┌───────────────────────▼──────────────────────────────────┐
163
+ │ Workbench UI (packages/workbench-ui) │
164
+ │ React 19 + TypeScript + Vite │
165
+ │ 状态管理: useReducer + Context │
166
+ │ 实时通信: WebSocket (自动重连/心跳) │
167
+ │ 组件: ProjectList / MessageList / QueuePanel / LogViewer │
168
+ └──────────────────────────────────────────────────────────┘
169
+ ```
170
+
171
+ ## 项目结构
172
+
173
+ ```
174
+ mcp-ai-supervisor/ # Monorepo (uv workspace)
175
+ ├── packages/ # 5 个子包
176
+ │ ├── core/ # mcp-supervisor-core:基础设施(日志/路径/i18n/错误处理)
177
+ │ ├── mcp-server/ # mcp-ai-supervisor:MCP Server 核心(交互反馈/Web UI)
178
+ │ ├── workbench-server/ # mcp-supervisor-workbench:Workbench 后端(多项目控制台)
179
+ │ ├── workbench-ui/ # Workbench 前端(React 19 + TypeScript + Vite)
180
+ │ └── desktop/ # Tauri 桌面应用(Rust + PyO3)
181
+ ├── artifacts/desktop/ # 预编译桌面应用二进制(构建产物)
182
+ ├── tests/ # 后端测试(pytest,1020+ 用例,~11s 并行)
183
+ ├── scripts/ # 安装/部署/工具脚本
184
+ │ ├── dev/ # 开发工具(代码分析/对话提取/迁移)
185
+ │ └── test/ # 测试工具(E2E 轮询/消息投递验证)
186
+ ├── docs/ # 项目文档
187
+ │ ├── 项目介绍/ # 模块技术文档(渐进式阅读指南)
188
+ │ ├── 工程重构/ # Monorepo 重构方案与进度
189
+ │ ├── 控制台方案/ # Workbench V4.0 设计
190
+ │ ├── AI监工方案/ # AI 监工功能设计
191
+ │ ├── 配置模板/ # Cursor/Qoder Rule 和 Command 模板
192
+ │ ├── 相关资料/ # 外部参考文档
193
+ │ └── temp/ # 临时方案文档(实施完成后归档或删除)
194
+ └── .cursor/rules/ # Cursor AI 规则配置
195
+ ```
196
+
197
+ 各子包的详细设计见:
198
+ - [`packages/core/README.md`](packages/core/README.md) — 基础设施包
199
+ - [`packages/mcp-server/README.md`](packages/mcp-server/README.md) — MCP Server
200
+ - [`packages/workbench-server/README.md`](packages/workbench-server/README.md) — Workbench 后端
201
+ - [`packages/workbench-ui/README.md`](packages/workbench-ui/README.md) — Workbench 前端
202
+ - [`packages/desktop/README.md`](packages/desktop/README.md) — 桌面应用
203
+
204
+ ## Workbench 控制台(V4.0)
205
+
206
+ Workbench 是一个实时多项目管理面板,核心能力:
207
+
208
+ | 功能 | 说明 |
209
+ |------|------|
210
+ | **项目列表** | 实时显示在线/离线项目,WS 广播状态变化 |
211
+ | **对话消息** | AI/用户消息实时展示,支持历史翻页 |
212
+ | **消息队列** | Agent 忙碌时消息排队,空闲时自动投递,支持置顶 |
213
+ | **未读角标** | 按项目追踪未读数,切换自动标记已读 |
214
+ | **日志查看** | 多日志源、级别过滤、关键词搜索、日期切换 |
215
+ | **会话浏览** | 历史对话按日期/项目浏览,可打开本地文件夹 |
216
+ | **主题切换** | dark / light / system 三种主题 |
217
+ | **WebSocket** | init_snapshot、5 种上行、心跳保活、自动重连 |
218
+
219
+ 详细架构文档见 [11-Workbench 控制台](docs/项目介绍/11-Workbench控制台.md)。
220
+
221
+ ### 启动 Workbench
222
+
223
+ ```bash
224
+ # 1. 启动后端服务(端口 9765)
225
+ .venv/bin/python3 -m mcp_supervisor_workbench --port 9765
226
+
227
+ # 2. 启动前端开发服务器(端口 9766)
228
+ cd packages/workbench-ui && npm run dev
229
+ ```
230
+
231
+ 前端通过 Vite proxy 将 `/api/*` 和 `/ws` 请求转发到后端。详见 [packages/workbench-ui/README.md](packages/workbench-ui/README.md)。
232
+
233
+ ### Workbench 设计文档
234
+
235
+ | 文档 | 内容 |
236
+ |------|------|
237
+ | [总体设计](docs/控制台方案/技术方案/总体设计.md) | 架构总览与数据流 |
238
+ | [后端架构](docs/控制台方案/技术方案/后端架构/README.md) | 6 大核心模块设计 |
239
+ | [前端架构](docs/控制台方案/技术方案/前端架构/README.md) | 状态管理/组件/Hooks/WebSocket |
240
+ | [API 设计](docs/控制台方案/技术方案/API/README.md) | 8 组 API(A1-A8)规范 |
241
+ | [日志系统](docs/控制台方案/技术方案/日志系统/README.md) | LogWriter/Parser/Tailer/API |
242
+ | [落地实施顺序](docs/控制台方案/落地实施顺序.md) | 5 阶段实施路线图 |
243
+ | [系统集成分析](docs/控制台方案/系统集成完整性分析.md) | 端到端集成状态 |
244
+
245
+ ## 测试
246
+
247
+ ```bash
248
+ # 后端测试(pytest,1020+ 用例,~11s 并行执行)
249
+ cd /path/to/mcp-ai-supervisor
250
+ .venv/bin/python3 -m pytest # 默认并行(-n auto)
251
+ .venv/bin/python3 -m pytest -n 0 # 串行执行
252
+ .venv/bin/python3 -m pytest -m unit # 仅 unit 测试(876 个)
253
+
254
+ # 前端测试(vitest,210+ 用例)
255
+ cd packages/workbench-ui && npm test
256
+
257
+ # 测试优化详情见 docs/工程重构/09-后端测试优化方案.md
258
+ ```
259
+
260
+ ## 对话历史工具
261
+
262
+ `scripts/dev/conversation_extract.py` 用于提取、统计、搜索和管理对话历史,零外部依赖。
263
+
264
+ ### 查看项目列表
265
+
266
+ ```bash
267
+ python scripts/dev/conversation_extract.py list
268
+ ```
269
+
270
+ ### 提取对话内容
271
+
272
+ 以 AI 问 + 用户答的成对方式清晰展示完整对话:
273
+
274
+ ```bash
275
+ # 今天的对话(默认 pair 模式,AI/用户成对展示)
276
+ python scripts/dev/conversation_extract.py extract mcp-ai-supervisor --today
277
+
278
+ # 最近 3 天
279
+ python scripts/dev/conversation_extract.py extract mcp-ai-supervisor --days 3
280
+
281
+ # 只看用户回复
282
+ python scripts/dev/conversation_extract.py extract mcp-ai-supervisor --today --mode user
283
+
284
+ # 只看 AI 回复
285
+ python scripts/dev/conversation_extract.py extract mcp-ai-supervisor --today --mode ai
286
+
287
+ # 看原始任务列表
288
+ python scripts/dev/conversation_extract.py extract mcp-ai-supervisor --today --mode task
289
+
290
+ # 按日期范围
291
+ python scripts/dev/conversation_extract.py extract mcp-ai-supervisor --from 07-10 --to 07-15
292
+
293
+ # 输出到文件(支持 text / json / markdown / csv)
294
+ python scripts/dev/conversation_extract.py extract mcp-ai-supervisor --days 7 --format json -o output.json
295
+ python scripts/dev/conversation_extract.py extract mcp-ai-supervisor --days 7 --format markdown -o report.md
296
+
297
+ # 项目支持模糊匹配:名称、hash、序号均可
298
+ python scripts/dev/conversation_extract.py extract 1 --today # 用序号
299
+ python scripts/dev/conversation_extract.py extract tao --days 3 # 模糊匹配
300
+ ```
301
+
302
+ ### 查看统计
303
+
304
+ ```bash
305
+ # 项目统计(按天汇总会话数/轮次/来源分布/高频修改文件)
306
+ python scripts/dev/conversation_extract.py stats mcp-ai-supervisor --days 7
307
+
308
+ # 全局统计(所有项目活跃度排名 + 柱状图)
309
+ python scripts/dev/conversation_extract.py stats --days 7
310
+ ```
311
+
312
+ ### 搜索对话
313
+
314
+ ```bash
315
+ # 全局搜索
316
+ python scripts/dev/conversation_extract.py search "心跳"
317
+
318
+ # 限定项目搜索
319
+ python scripts/dev/conversation_extract.py search "心跳" mcp-ai-supervisor --today
320
+
321
+ # 正则搜索
322
+ python scripts/dev/conversation_extract.py search "bug|fix" --regex
323
+ ```
324
+
325
+ ### 删除对话数据
326
+
327
+ ```bash
328
+ # 删除整个项目数据(交互确认)
329
+ python scripts/dev/conversation_extract.py delete dir
330
+
331
+ # 删除指定日期范围
332
+ python scripts/dev/conversation_extract.py delete dir --days 30 # 删除最近 30 天
333
+ python scripts/dev/conversation_extract.py delete dir --from 07-01 --to 07-10
334
+
335
+ # 跳过确认
336
+ python scripts/dev/conversation_extract.py delete dir --days 30 -y
337
+ ```
338
+
339
+ ## 其他辅助工具
340
+
341
+ | 命令 | 说明 |
342
+ |------|------|
343
+ | `bash scripts/verify.sh` | 验证安装完整性 |
344
+ | `bash scripts/view_logs.sh` | 查看日志指引 |
345
+ | `bash scripts/uninstall.sh` | 完全卸载 |
346
+
347
+ ## 深入了解
348
+
349
+ 项目按模块组织了详细的技术文档,建议按以下顺序渐进式阅读:
350
+
351
+ | 顺序 | 文档 | 内容 | 建议阅读时机 |
352
+ |------|------|------|-------------|
353
+ | 0 | [项目概述](docs/项目介绍/README.md) | 架构总览、模块关系图 | 初次了解项目 |
354
+ | 1 | [MCP 服务层](docs/项目介绍/01-MCP服务层.md) | server.py、工具定义、编码初始化 | 理解入口和 MCP 协议 |
355
+ | 2 | [核心编排引擎](docs/项目介绍/02-核心编排引擎.md) | DelegateManager、TaskState、模式分发 | 理解核心逻辑 |
356
+ | 3 | [监工 Agent 系统](docs/项目介绍/03-监工Agent系统.md) | AgentBridge、AutoResponder、评估流程 | 理解 Agent 评估机制 |
357
+ | 4 | [Web 通信层](docs/项目介绍/04-Web通信层.md) | FastAPI、WebSocket、REST API | 理解前后端通信 |
358
+ | 5 | [前端 UI](docs/项目介绍/05-前端UI.md) | JS 模块架构、模板系统 | 需要修改弹窗 UI 时 |
359
+ | 6 | [桌面应用](docs/项目介绍/06-桌面应用.md) | Tauri、Rust-Python 桥接 | 需要修改桌面弹窗时 |
360
+ | 7 | [基础设施](docs/项目介绍/07-基础设施.md) | 资源管理、内存监控、日志、错误处理、i18n | 需要了解底层机制时 |
361
+ | 8 | [配置与部署](docs/项目介绍/08-配置与部署.md) | 环境变量、MCP 配置、安装脚本 | 部署或自定义配置时 |
362
+ | 11 | [Workbench 控制台](docs/项目介绍/11-Workbench控制台.md) | Workbench 后端/前端架构、消息队列、WebSocket | 需要了解 Workbench 时 |
363
+
364
+ ## Cursor MCP 进程机制
365
+
366
+ Cursor 在启动时会为配置了 MCP 的项目创建 MCP 进程(通过 stdio 协议)。以下是关键机制:
367
+
368
+ - **进程共享**:同一个 Cursor 窗口中的多个 Agent 对话 **共享同一个 MCP 进程**。不同项目如果在同一个 Cursor 窗口中打开,也共享同一个 MCP 进程
369
+ - **Web Server 端口**:MCP 进程启动时会绑定一个动态端口(`port=0` 由 OS 分配),用于接收 Workbench 投递的用户消息。所有项目共用同一个 `web_url`
370
+ - **进程重启**:部署脚本 (`deploy.sh`) 通过修改 `~/.cursor/mcp.json` 中的 `MCP_RELOAD_TS` 环境变量触发 Cursor 重启 MCP 进程。旧进程会短暂残留,新进程逐步替代
371
+ - **Agent 注册**:每个项目在调用 `interactive_feedback` 时自动向 Workbench 注册 Agent,上报 `project_directory`、`agent_id`、`web_url` 等信息,Workbench 通过 `project_directory` 区分不同项目
372
+ - **心跳**:MCP 进程内的 `WorkbenchClient` 每 30 秒发送心跳;Workbench 的 `AgentRegistry` 在 90 秒无心跳后标记 Agent 为 offline
373
+
374
+ ## 项目规则
375
+
376
+ 1. **所有文档统一存放在 `docs/` 目录下**,按主题组织子目录
377
+ 2. **文档采用渐进式写法**:主文档写概要并链接子文档,子文档详细展开
378
+ 3. **文件名使用中文**,便于快速识别内容
379
+ 4. **代码注释使用中文**,核心方法需要有注释,类文件头部要有注释
380
+
381
+ ## 技术栈
382
+
383
+ - **后端**: Python 3.11+, FastMCP, FastAPI, WebSocket, aiohttp
384
+ - **Workbench 前端**: React 19, TypeScript, Vite 8, CSS Modules
385
+ - **原版弹窗前端**: HTML/CSS/JS(模块化 IIFE)
386
+ - **桌面**: Tauri (Rust), 预编译二进制
387
+ - **测试**: pytest (后端 1020+), vitest + @testing-library/react (前端 210+)
388
+ - **协议**: MCP (Model Context Protocol)
389
+
390
+ ## 许可证
391
+
392
+ MIT License
@@ -0,0 +1,118 @@
1
+ mcp_ai_supervisor/__init__.py,sha256=JoXrKD7lz-fFfeNFS-NcKamIN35-qlkUL0x3o1tNkTE,1046
2
+ mcp_ai_supervisor/__main__.py,sha256=rSvCEJUHk1hoqAlG--cSAvfW7AwCkvyhziPkXF4EVd0,18523
3
+ mcp_ai_supervisor/debug.py,sha256=bTxAxjTyZDhFq8AIqfVDGdNwl9w9aA0tJfWitG2u4DQ,405
4
+ mcp_ai_supervisor/i18n.py,sha256=JEsnUULmgUa7NeTgevfq1DcmS-mpG2TIlJt4QWR9xds,374
5
+ mcp_ai_supervisor/log_writer.py,sha256=T_kc_1Sdjx9zgQdvOnMq99yIPxDr62NK75TBdIprVKg,458
6
+ mcp_ai_supervisor/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ mcp_ai_supervisor/server.py,sha256=AjYBqT8BN2R2WoUriI4UH7wEBdcRGAyLZknLC6PwWmQ,25264
8
+ mcp_ai_supervisor/desktop_app/__init__.py,sha256=Y3jfwhJQ-UnzN6sGAMMLFef5b7wyxzBDxsaglWe0eKo,614
9
+ mcp_ai_supervisor/desktop_app/desktop_app.py,sha256=GLdPxqxcDEhOH9kKikNJdRzBHJcUjC6NWROkd7JyXTY,13449
10
+ mcp_ai_supervisor/helpers/__init__.py,sha256=24EFRsMHi6INirwyssB6ErezUESaidRVicEH_ofHfgE,95
11
+ mcp_ai_supervisor/helpers/feedback_helpers.py,sha256=zN1WX5qQcY11tEur9xklpkEgNXq7FWP_4nYmMEk376w,5063
12
+ mcp_ai_supervisor/helpers/image_helpers.py,sha256=3Dy6VpeeikKOtFpjU3l5JZadztTaH1OyohAHQTwX_Jo,2528
13
+ mcp_ai_supervisor/logging/__init__.py,sha256=0OwU3L2vb04o3zuAxmH7LEi_SUKuY9vaNLTf0kCZJrk,197
14
+ mcp_ai_supervisor/logging/log_parser.py,sha256=e4344-tsF-dnz1zHfKaYoO6ZdRQYD6d8x7gsyo0Ms8c,9670
15
+ mcp_ai_supervisor/logging/log_tailer.py,sha256=isFKJX7bfEaZUPubG9xfKcER083siYXx_xt700cI6MA,12168
16
+ mcp_ai_supervisor/utils/__init__.py,sha256=AXMZlTsNWIYlefePjsQzE5t3RwsjL_iyJiV_la94uqA,571
17
+ mcp_ai_supervisor/utils/error_handler.py,sha256=Xgi-pzQ-QMI5O8XW6zQbehLdPWtsG06rrPQiJTgm6wA,319
18
+ mcp_ai_supervisor/utils/memory_monitor.py,sha256=F-j6GZ8a0B-CmV2Y6WJuNKb1XFMDWSJ2cYLMZeKu7Z4,352
19
+ mcp_ai_supervisor/utils/paths.py,sha256=rdgrgR4oZtbXhTunzowoSGyDp6A4_Ix3EnT1O-FukWw,287
20
+ mcp_ai_supervisor/utils/resource_manager.py,sha256=oUyS03XdN7JazkREn304PQfdMpBNEMo4QnVuOS9_5mA,452
21
+ mcp_ai_supervisor/utils/structure_checker.py,sha256=iw0o8-cxgFZtIOUyrhkp8kFq1-0wUrTAVO_NhEiyTOM,10447
22
+ mcp_ai_supervisor/web/__init__.py,sha256=SksgoS6Myu7GiFTqINcTAA3ZN24jW8mGTAtG2UEOXjU,653
23
+ mcp_ai_supervisor/web/main.py,sha256=8eT4j4xmaMVTPpxxox_agTs2NGdia6-fbQCZHP_cYu4,30078
24
+ mcp_ai_supervisor/web/constants/__init__.py,sha256=XxyJBVe59K4_sx97_51rqO27pk97kXbKlzkDUhIXkbM,133
25
+ mcp_ai_supervisor/web/constants/message_codes.py,sha256=80WugHWGlAz-blkyPlfEc-SoC_MwdIuDunu9cG7Jf5U,6911
26
+ mcp_ai_supervisor/web/core/__init__.py,sha256=xh0F-BgcIbvs3gN5dMvR6leQIlAkiIy0kAwJP4AV-nE,851
27
+ mcp_ai_supervisor/web/core/agent_bridge.py,sha256=5SUVuFoVUknYXF81tFKDj1gNcuAckavurNgBYnAOi1k,40523
28
+ mcp_ai_supervisor/web/core/auto_responder.py,sha256=EZ0mqPssGfESrvLPWtxBBNKgrTA_Te860G7B5F3xUAg,10256
29
+ mcp_ai_supervisor/web/core/context_collector.py,sha256=_Vwa1QmiX_HUKKrcbQU46binboZiTM7F5vWklGGlDys,5138
30
+ mcp_ai_supervisor/web/core/conversation_recorder.py,sha256=De063ZZdMO9dIdOzAmRMr0PSrjYPdtyV-Ygo2r0N7-E,28932
31
+ mcp_ai_supervisor/web/core/delegate_manager.py,sha256=T39-Mt-dTjNwYLiZlICKadrNMNMZK0LPnZ4trnzZieo,48673
32
+ mcp_ai_supervisor/web/core/feedback_mediator.py,sha256=4PSCQp_2CaayYupk7tgjd6Okj47WV20J9pZhVDq2mhs,9426
33
+ mcp_ai_supervisor/web/core/message_channel.py,sha256=dluSnOVBjN-FwdZ29G1SDrbUUxudqDnVFFltU44kJpI,20647
34
+ mcp_ai_supervisor/web/core/response_builder.py,sha256=0q9TuJs_h8TuQTEtwq3fHfhwhxxK4gWn3N5wmzybge4,12103
35
+ mcp_ai_supervisor/web/core/scene_detector.py,sha256=CVhPSMHQQ3ZQ23uD-9P3GlfOnYVFUws7DB_B7t_B1Jw,6047
36
+ mcp_ai_supervisor/web/core/task_state.py,sha256=VBayMTHotebjUhgA9yITHlrbM6j-prutN1q_fj43tX8,6179
37
+ mcp_ai_supervisor/web/locales/en/translation.json,sha256=a9ZBixl2tvN6buIElcFBkhq3JWaFdopA3IId9iOc64U,29702
38
+ mcp_ai_supervisor/web/locales/zh-CN/translation.json,sha256=JgdIj5LLhttlZZam01GIuXaV8Wckr6HStAzh8q-Cxj0,27595
39
+ mcp_ai_supervisor/web/locales/zh-TW/translation.json,sha256=syVImezfjOLRO8oQ4R1d4BZnzAhFgw47d9pQxuhqaHE,29049
40
+ mcp_ai_supervisor/web/managers/__init__.py,sha256=BPGIRXsV9rUewxLRuVbukqZhCUXIIPhZuO2tZ2ug1sM,320
41
+ mcp_ai_supervisor/web/managers/desktop_manager.py,sha256=aYA0XlHH0uep-Eclica36jiII1Auz9jmmZLpvj1Rt_s,9223
42
+ mcp_ai_supervisor/web/managers/server_manager.py,sha256=M8_GwcgwyToDFlU0PNqUrKqBEZdFSJ6eZimRCILnnMw,6648
43
+ mcp_ai_supervisor/web/managers/session_manager.py,sha256=tmOAfuAeyJwkcYOZpTkkJL0GzcUd5gUARtP9GVkgM4U,20162
44
+ mcp_ai_supervisor/web/managers/workbench_connector.py,sha256=DOPFhCpz9-zqE8k8AaqPBWJznd6cKnGx18aPPJgUGhg,7130
45
+ mcp_ai_supervisor/web/models/__init__.py,sha256=eUp-a-KpZOkJx_X-hV4zfff98XK8mQkvjw3Q2V4grUg,336
46
+ mcp_ai_supervisor/web/models/feedback_result.py,sha256=XP7sK5yuHCs21vVE73VYsLLQ_n6fUCrUN5fom8gfEyQ,314
47
+ mcp_ai_supervisor/web/models/feedback_session.py,sha256=vajnWUco1ac469zvEvPWAAOOdl_1_iyspYyh5oBgXKk,33390
48
+ mcp_ai_supervisor/web/models/session_cleaner.py,sha256=p6bI6WtxjtriXrFS7JlxVtEi03P9cNUxtp2L7p7j2UY,8960
49
+ mcp_ai_supervisor/web/models/session_commands.py,sha256=dhfdYbuiuHIqfhBGx4qbvsfxhb2c5b6zTBO5BIXPNT8,8000
50
+ mcp_ai_supervisor/web/models/session_resolver.py,sha256=4lTjigLzcpoiLlGiaeqnrEAxcjXVBb0xHWHqoi9XcF8,6566
51
+ mcp_ai_supervisor/web/models/session_timer.py,sha256=yCqpEeNXNEqeUtM1VvNC9PZyPkVpXvR74x4SiNYFJSc,8808
52
+ mcp_ai_supervisor/web/routes/__init__.py,sha256=SreRzMigIh6JE5izQ6WFPtqSB9fqJwlXEvxgk9ERrl0,177
53
+ mcp_ai_supervisor/web/routes/main_routes.py,sha256=j28d1QVQ5NNaIak9U2fKtNG3FtJinPP7iKGOdUDF7lM,38683
54
+ mcp_ai_supervisor/web/routes/settings_routes.py,sha256=GgbcKYuwyHpA6QKX9Y2PYTRLk-KWyVz5pBHYLjPcRg4,6864
55
+ mcp_ai_supervisor/web/routes/ws_handlers.py,sha256=ddLpnoFrvo_Gws7OuNvPcaZNMLvZG2HMPmbMrjduPSE,8958
56
+ mcp_ai_supervisor/web/static/favicon.ico,sha256=UsNBKoWAkzlMmoQIdAfJcK_88l8jMpY3V-RwUoxvStc,2238
57
+ mcp_ai_supervisor/web/static/icon-192.png,sha256=jXpgTqCp9rnlpIccrJu9nsRxEGJSslvWOk0WR6-zw18,1067
58
+ mcp_ai_supervisor/web/static/icon.svg,sha256=A04jrX6PaQNw5Em2uFl_G2DEX3I5nPW38D39DBwOXzo,542
59
+ mcp_ai_supervisor/web/static/index.html,sha256=-Ws4YVK_DqR62nTHGBw1ldaFJ8-maLTLGSvfeONv_K0,1593
60
+ mcp_ai_supervisor/web/static/css/audio-management.css,sha256=KDwgWfb0JIXEb7JBv6qdKvzdHrbwYtEl4mgTABH-R-4,10595
61
+ mcp_ai_supervisor/web/static/css/notification-settings.css,sha256=LpNbJ20KbllqENERc_KnZjBJ2tWs_1y2-YKc-NwWw90,2917
62
+ mcp_ai_supervisor/web/static/css/prompt-management.css,sha256=l7fa9xsUHjRhJ57zaeyoOBH_PZR_Bm9R_VhwpHU7mMg,11441
63
+ mcp_ai_supervisor/web/static/css/session-management.css,sha256=HwQeDJ6HFAsaj7IWT9bKtduST-qu1UHEBuGeIPZVZSs,28617
64
+ mcp_ai_supervisor/web/static/css/styles.css,sha256=NEDqoW0nAObNDE_AB1iWWEIdzJpRDDGDWPgUBXUhPx4,49482
65
+ mcp_ai_supervisor/web/static/js/app.js,sha256=CGQDVsbmF7YrHblUm_Fsk6vyc42dNgvd8ASYYqxRDPY,67795
66
+ mcp_ai_supervisor/web/static/js/i18n.js,sha256=l4y6JKcR1YJVBKs9a6cOriyDU7EZBq9_zQOcE2Awc14,14752
67
+ mcp_ai_supervisor/web/static/js/modules/connection-monitor.js,sha256=aVpqMGwjBY8twhthjkyJTSv2TVIASQqTADZE1RQuShI,14792
68
+ mcp_ai_supervisor/web/static/js/modules/countdown-manager.js,sha256=RLzKDTRniLuw__Egze28iELDFmQT7YY0zeyibitGFKM,7782
69
+ mcp_ai_supervisor/web/static/js/modules/drag-drop-handler.js,sha256=tHDgihGJ7XTCLPreKC82OeaC9IutC14Vo9rYwI4tQJg,25516
70
+ mcp_ai_supervisor/web/static/js/modules/file-upload-manager.js,sha256=je9-sHNTtodFMCRsazAJTM2bF7Q7Um4JTiEvbPCMC4w,19032
71
+ mcp_ai_supervisor/web/static/js/modules/image-handler.js,sha256=NBQ2pbbjtb9p3zowWq3rhiw6mJ6OZdqJ0gYpolFXR60,6091
72
+ mcp_ai_supervisor/web/static/js/modules/logger.js,sha256=JUlD2Kuuq5jRrq_7mvRBJrUwNS-LTOrQdEXW1yZt6CI,12082
73
+ mcp_ai_supervisor/web/static/js/modules/session-manager.js,sha256=jmQcll9yfe1qDwRHMlBdIJPuFNIKk0YRQDWg-LkoDVw,39376
74
+ mcp_ai_supervisor/web/static/js/modules/settings-manager.js,sha256=sUXQvoG_yvlKKeqZtSPhvrkym-qL9jSS9ZPICeDHl5k,39762
75
+ mcp_ai_supervisor/web/static/js/modules/tab-manager.js,sha256=nQSfKZbTX8vD2h4AonP3K5dkqC-epcWbwm8pZaIR-IM,6443
76
+ mcp_ai_supervisor/web/static/js/modules/textarea-height-manager.js,sha256=lKz1OAYIkGd_Lc9yL83_9BhBHIp30xnVQ7HqkhZXU5E,8379
77
+ mcp_ai_supervisor/web/static/js/modules/ui-manager.js,sha256=Dy-nrVkFtY5SsdjPS4YmMH3Pixt5wM7G6bQEfvznICk,20274
78
+ mcp_ai_supervisor/web/static/js/modules/utils.js,sha256=6_-77OaN75eCxFgyRqhcemqd6h-u_HZ2znYK2wDudQQ,21964
79
+ mcp_ai_supervisor/web/static/js/modules/websocket-manager.js,sha256=3xBmPdaMGrDn0ydXv7Uq8-MmGXn0kNxcXAwp3DN4Pg0,32752
80
+ mcp_ai_supervisor/web/static/js/modules/workbench-notification.js,sha256=7RKpU7PyKdneZIhtZXeBROrWO7zC0tPI7V6W0DprpBI,3193
81
+ mcp_ai_supervisor/web/static/js/modules/audio/audio-manager.js,sha256=gG_x9SHz-hLU1X7XwisYD_ln6KEv9uHBMrPRPLbALhw,20636
82
+ mcp_ai_supervisor/web/static/js/modules/audio/audio-settings-ui.js,sha256=lb_bd8rW6dNzMpLVnHicS_b5KUK0PX9KO3VhuazJQpA,27592
83
+ mcp_ai_supervisor/web/static/js/modules/constants/message-codes.js,sha256=29Dy11QOdoMDuiGWsK-Mycp592ipLo3W2i-NeQzJ_UM,5691
84
+ mcp_ai_supervisor/web/static/js/modules/notification/notification-manager.js,sha256=sdwWARN3uTSyJw1I_f6uDq4RiUzrYdGJYjx9eVfldi8,11304
85
+ mcp_ai_supervisor/web/static/js/modules/notification/notification-settings.js,sha256=jjJ6lm9ChgRb1Q9uzb6AouVgagDBjE5-cmOTWgQjcyQ,12607
86
+ mcp_ai_supervisor/web/static/js/modules/prompt/prompt-input-buttons.js,sha256=_7zlN3CoXPUDJLNWacjPCqyfTE_BWhk7AfLfcy1shf8,14312
87
+ mcp_ai_supervisor/web/static/js/modules/prompt/prompt-manager.js,sha256=zkov3pcAi5qsYc3PjmckZABrYWbHF_87LY34uonQMDA,12486
88
+ mcp_ai_supervisor/web/static/js/modules/prompt/prompt-modal.js,sha256=ZGW5nLoYC98vO41Al6dD1zMFSVlY3rfgE31-Xh0AtQU,14660
89
+ mcp_ai_supervisor/web/static/js/modules/prompt/prompt-settings-ui.js,sha256=Pt8c9G-pXa3ExMyJDartM7joG7cYG0RlHd_XnCm9H9U,20057
90
+ mcp_ai_supervisor/web/static/js/modules/session/session-data-manager.js,sha256=An_pS1bxvHIEuocHY2EHcs6qlnU3id3obRemP__J2UA,36916
91
+ mcp_ai_supervisor/web/static/js/modules/session/session-details-modal.js,sha256=r19qb5DVgoM7CVzCULssNkVI5HbPjX7htVpn7l1rB9Q,22770
92
+ mcp_ai_supervisor/web/static/js/modules/session/session-ui-renderer.js,sha256=Io8ddP95CkxqKTCLa4EzkcoXZS_LHcEq5NNODEqe30U,31620
93
+ mcp_ai_supervisor/web/static/js/modules/utils/dom-utils.js,sha256=XDyciie9WLdRdGrXoGTofYNpWRUF5AdGmt9T7mre9o8,11734
94
+ mcp_ai_supervisor/web/static/js/modules/utils/status-utils.js,sha256=l9iE7ogB0fkIeRo71cObnrkqm5w9iQHZ7ltvJ19n6z4,14041
95
+ mcp_ai_supervisor/web/static/js/modules/utils/time-utils.js,sha256=N2NUAWo7-Q436ttZCCyxkD4GLrtAP_nxJjFi97slVok,15010
96
+ mcp_ai_supervisor/web/static/js/vendor/marked.min.js,sha256=EJLDzjPdc37dAueAJj8Udr8YJ42BgXr2QD32hA-ANKs,36521
97
+ mcp_ai_supervisor/web/static/js/vendor/purify.min.js,sha256=ZmeLA8z1rRu0v45aC-vdRjYeJBXejDnZiDjfSJmj36Q,22064
98
+ mcp_ai_supervisor/web/templates/feedback.html,sha256=yNtK9Wv0ZT5ajvQ2Es9N9Q6G6n_FfA0BzOEV5XcStK4,66125
99
+ mcp_ai_supervisor/web/templates/index.html,sha256=W2tpDwXF1bCUnMO3d2cdNvq0FhSS5Wr7I8sE66NcQyg,11270
100
+ mcp_ai_supervisor/web/templates/components/image-upload.html,sha256=hlxtB9mBiA-XXMY_b-rmZBgmiJ8pI-Dyp9UuHxmz0gg,1805
101
+ mcp_ai_supervisor/web/templates/components/settings-card.html,sha256=ZxQMv0Fq_fxMn2HUJKzg4c8dDzq2ePa-r2U9o2k0KUI,1542
102
+ mcp_ai_supervisor/web/templates/components/status-indicator.html,sha256=jXYDstGN7SyK5xJ1VetyY1CzGC1q_fcKNpobP8wrw8k,962
103
+ mcp_ai_supervisor/web/templates/components/toggle-switch.html,sha256=CctM_xMyxg0TCUyEZ149Drmq9vtBLQGwGwU9sqMNXlY,469
104
+ mcp_ai_supervisor/web/utils/__init__.py,sha256=O7zcwK8NVIpb21lsUyWYT0W7n-4HDqjyxGb4l0R_MR8,174
105
+ mcp_ai_supervisor/web/utils/browser.py,sha256=pY8B5L5UM0kQqFrqfDPQbS3doHcwLKovEk41s_vRs-0,839
106
+ mcp_ai_supervisor/web/utils/compression_config.py,sha256=rW6fuirijyg9l1UX92xUA2SLOm7D_s7ceiyGKEqaSb8,6616
107
+ mcp_ai_supervisor/web/utils/compression_monitor.py,sha256=irY4UOCNZSpPdKAIO1dxw4HphMeIt3zpGppXcF99Hgo,11203
108
+ mcp_ai_supervisor/web/utils/ide_opener.py,sha256=zoxKOrKDGKjjh5r5pROLCW2soWYx06eIoll5Oy509HU,9557
109
+ mcp_ai_supervisor/web/utils/network.py,sha256=zXZe8hwPXHxn7-EuVhJ7MViGadSOtPwEqDZKo7SzmQc,1665
110
+ mcp_ai_supervisor/web/utils/port_manager.py,sha256=NXvR9ZASD8RjwQTooVS8EogO7ySkw1AIHOvws2Oup30,12014
111
+ mcp_ai_supervisor/web/utils/session_cleanup_manager.py,sha256=NopejcPQpNSkSdVMX2bhM0GiEYOfLJ8Rv9nHqK8UIG8,19837
112
+ mcp_ai_supervisor/web/utils/workbench_client.py,sha256=4AvEt_AbMaHezazumEtwj8CTSmlvQJNv6g4jV3zDBSQ,35948
113
+ mcp_ai_supervisor/workbench/__init__.py,sha256=UNPbkQllKNrgSgRm66RWfnnRXFKOPz_8-bhXON0aHVg,189
114
+ mcp_ai_supervisor/workbench/__main__.py,sha256=-s72XtWoCJ4oSZKvy3mBdnFkptj7Fm2GkRk5_5YwlpM,114
115
+ cloneloop-0.1.0.dist-info/METADATA,sha256=VOdGId4Ex0uzEUVdU3cQ90-k6Qg-fOF4pYxgutN3fbw,18389
116
+ cloneloop-0.1.0.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
117
+ cloneloop-0.1.0.dist-info/entry_points.txt,sha256=BhdXqmCdlF9OJ9V8kZpagFZDav2VFbnZpyJcSistt4o,223
118
+ cloneloop-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.31.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,5 @@
1
+ [console_scripts]
2
+ cloneloop = mcp_ai_supervisor.__main__:main
3
+ mcp-ai-supervisor = mcp_ai_supervisor.__main__:main
4
+ mcp-ai-supervisor-workbench = mcp_supervisor_workbench:main
5
+ mcp-supervisor = mcp_ai_supervisor.__main__:main
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ MCP AI Supervisor
4
+ ==================
5
+
6
+ AI 監工 MCP 伺服器,提供 AI 輔助開發中的互動回饋與任務監督功能。
7
+
8
+ 基於 mcp-feedback-enhanced 項目移植,專注於桌面應用交互模式。
9
+
10
+ 特色:
11
+ - 桌面應用(Tauri)交互支援
12
+ - Web UI 介面支援
13
+ - 智慧環境檢測
14
+ - 命令執行功能
15
+ - 圖片上傳支援
16
+ - 現代化深色主題
17
+ - 重構的模組化架構
18
+ """
19
+
20
+ __version__ = "0.1.0"
21
+ __author__ = "淘日本技术团队"
22
+ __email__ = ""
23
+
24
+ import os
25
+
26
+ from .server import main as run_server
27
+
28
+ # 導入新的 Web UI 模組
29
+ from .web import WebUIManager, get_web_ui_manager, launch_web_feedback_ui, stop_web_ui
30
+
31
+
32
+ # 保持向後兼容性
33
+ feedback_ui = None
34
+
35
+ # 主要導出介面
36
+ __all__ = [
37
+ "WebUIManager",
38
+ "__author__",
39
+ "__version__",
40
+ "feedback_ui",
41
+ "get_web_ui_manager",
42
+ "launch_web_feedback_ui",
43
+ "run_server",
44
+ "stop_web_ui",
45
+ ]
46
+
47
+
48
+ def main():
49
+ """主要入口點,用於 uvx 執行"""
50
+ from .__main__ import main as cli_main
51
+
52
+ return cli_main()