openvibe 0.63.2 → 0.63.3
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.
- package/CHANGELOG.md +81 -0
- package/README.md +39 -0
- package/README_CN.md +1 -1
- package/dist/cli/args.d.ts +3 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +22 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +5 -3
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/companion/executor/bash-executor.d.ts +30 -0
- package/dist/core/companion/executor/bash-executor.d.ts.map +1 -0
- package/dist/core/companion/executor/bash-executor.js +105 -0
- package/dist/core/companion/executor/bash-executor.js.map +1 -0
- package/dist/core/companion/executor/code-executor.d.ts +33 -0
- package/dist/core/companion/executor/code-executor.d.ts.map +1 -0
- package/dist/core/companion/executor/code-executor.js +144 -0
- package/dist/core/companion/executor/code-executor.js.map +1 -0
- package/dist/core/companion/executor/resource-monitor.d.ts +55 -0
- package/dist/core/companion/executor/resource-monitor.d.ts.map +1 -0
- package/dist/core/companion/executor/resource-monitor.js +141 -0
- package/dist/core/companion/executor/resource-monitor.js.map +1 -0
- package/dist/core/companion/http-server.d.ts +92 -0
- package/dist/core/companion/http-server.d.ts.map +1 -0
- package/dist/core/companion/http-server.js +229 -0
- package/dist/core/companion/http-server.js.map +1 -0
- package/dist/core/companion/index.d.ts +29 -0
- package/dist/core/companion/index.d.ts.map +1 -0
- package/dist/core/companion/index.js +48 -0
- package/dist/core/companion/index.js.map +1 -0
- package/dist/core/companion/scheduler/resource-scheduler.d.ts +82 -0
- package/dist/core/companion/scheduler/resource-scheduler.d.ts.map +1 -0
- package/dist/core/companion/scheduler/resource-scheduler.js +333 -0
- package/dist/core/companion/scheduler/resource-scheduler.js.map +1 -0
- package/dist/core/companion/scheduler/workers/base-worker.d.ts +87 -0
- package/dist/core/companion/scheduler/workers/base-worker.d.ts.map +1 -0
- package/dist/core/companion/scheduler/workers/base-worker.js +70 -0
- package/dist/core/companion/scheduler/workers/base-worker.js.map +1 -0
- package/dist/core/companion/scheduler/workers/cpu-worker.d.ts +12 -0
- package/dist/core/companion/scheduler/workers/cpu-worker.d.ts.map +1 -0
- package/dist/core/companion/scheduler/workers/cpu-worker.js +134 -0
- package/dist/core/companion/scheduler/workers/cpu-worker.js.map +1 -0
- package/dist/core/companion/scheduler/workers/gpu-worker.d.ts +16 -0
- package/dist/core/companion/scheduler/workers/gpu-worker.d.ts.map +1 -0
- package/dist/core/companion/scheduler/workers/gpu-worker.js +167 -0
- package/dist/core/companion/scheduler/workers/gpu-worker.js.map +1 -0
- package/dist/core/companion/scheduler/workers/index.d.ts +6 -0
- package/dist/core/companion/scheduler/workers/index.d.ts.map +1 -0
- package/dist/core/companion/scheduler/workers/index.js +6 -0
- package/dist/core/companion/scheduler/workers/index.js.map +1 -0
- package/dist/core/companion/scheduler/workers/io-worker.d.ts +17 -0
- package/dist/core/companion/scheduler/workers/io-worker.d.ts.map +1 -0
- package/dist/core/companion/scheduler/workers/io-worker.js +197 -0
- package/dist/core/companion/scheduler/workers/io-worker.js.map +1 -0
- package/dist/core/companion/scheduler/workers/network-worker.d.ts +13 -0
- package/dist/core/companion/scheduler/workers/network-worker.d.ts.map +1 -0
- package/dist/core/companion/scheduler/workers/network-worker.js +167 -0
- package/dist/core/companion/scheduler/workers/network-worker.js.map +1 -0
- package/dist/core/companion/security/security-manager.d.ts +50 -0
- package/dist/core/companion/security/security-manager.d.ts.map +1 -0
- package/dist/core/companion/security/security-manager.js +102 -0
- package/dist/core/companion/security/security-manager.js.map +1 -0
- package/dist/core/hybrid-cloud/extension.d.ts +8 -0
- package/dist/core/hybrid-cloud/extension.d.ts.map +1 -0
- package/dist/core/hybrid-cloud/extension.js +64 -0
- package/dist/core/hybrid-cloud/extension.js.map +1 -0
- package/dist/core/hybrid-cloud/index.d.ts +98 -0
- package/dist/core/hybrid-cloud/index.d.ts.map +1 -0
- package/dist/core/hybrid-cloud/index.js +211 -0
- package/dist/core/hybrid-cloud/index.js.map +1 -0
- package/dist/core/keybindings.d.ts +1 -1
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +3 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +6 -1
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +13 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +35 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +7 -0
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +46 -0
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/todo-manager.d.ts +32 -0
- package/dist/core/todo-manager.d.ts.map +1 -0
- package/dist/core/todo-manager.js +117 -0
- package/dist/core/todo-manager.js.map +1 -0
- package/dist/core/tools/batch-write.d.ts +42 -0
- package/dist/core/tools/batch-write.d.ts.map +1 -0
- package/dist/core/tools/batch-write.js +267 -0
- package/dist/core/tools/batch-write.js.map +1 -0
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +10 -2
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/fast-executor.d.ts +6 -1
- package/dist/core/tools/fast-executor.d.ts.map +1 -1
- package/dist/core/tools/fast-executor.js +83 -4
- package/dist/core/tools/fast-executor.js.map +1 -1
- package/dist/core/tools/index.d.ts +141 -0
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +30 -0
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/todo.d.ts +47 -0
- package/dist/core/tools/todo.d.ts.map +1 -0
- package/dist/core/tools/todo.js +212 -0
- package/dist/core/tools/todo.js.map +1 -0
- package/dist/core/tools/unified.d.ts +121 -0
- package/dist/core/tools/unified.d.ts.map +1 -0
- package/dist/core/tools/unified.js +481 -0
- package/dist/core/tools/unified.js.map +1 -0
- package/dist/core/tools/write.d.ts +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +20 -5
- package/dist/core/tools/write.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +63 -1
- package/dist/main.js.map +1 -1
- package/dist/modes/index.d.ts +2 -0
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js +2 -0
- package/dist/modes/index.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +1 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +1 -0
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/todo-display.d.ts +9 -0
- package/dist/modes/interactive/components/todo-display.d.ts.map +1 -0
- package/dist/modes/interactive/components/todo-display.js +60 -0
- package/dist/modes/interactive/components/todo-display.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +8 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +151 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/plan-mode.d.ts +14 -0
- package/dist/modes/plan-mode.d.ts.map +1 -0
- package/dist/modes/plan-mode.js +107 -0
- package/dist/modes/plan-mode.js.map +1 -0
- package/dist/modes/spec-mode.d.ts +16 -0
- package/dist/modes/spec-mode.d.ts.map +1 -0
- package/dist/modes/spec-mode.js +186 -0
- package/dist/modes/spec-mode.js.map +1 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +2 -2
- package/dist/utils/version-check.js.map +1 -1
- package/docs/HYBRID_CLOUD_README.md +188 -0
- package/docs/hybrid-architecture-design.md +317 -0
- package/docs/todo.md +71 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# OpenVibe Hybrid Cloud Architecture
|
|
2
|
+
|
|
3
|
+
## 云端-本地混合 AI 架构实现
|
|
4
|
+
|
|
5
|
+
此架构实现了云端 AI (Claude Code) 与本地计算资源的协同工作,支持将计算密集型任务卸载到本地执行。
|
|
6
|
+
|
|
7
|
+
## 当前实现状态
|
|
8
|
+
|
|
9
|
+
### MVP 版本 (HTTP 实现)
|
|
10
|
+
|
|
11
|
+
OpenVibe 当前通过内置 HTTP 服务提供本地执行能力:
|
|
12
|
+
|
|
13
|
+
- **协议**: HTTP REST API
|
|
14
|
+
- **服务**: CompanionHttpServer (TypeScript)
|
|
15
|
+
- **端口**: 默认 50051
|
|
16
|
+
- **主机**: 127.0.0.1 (本地绑定)
|
|
17
|
+
|
|
18
|
+
### 配置方式
|
|
19
|
+
|
|
20
|
+
在 `~/.openvibe/settings.json` 中添加:
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"companion": {
|
|
25
|
+
"enabled": true,
|
|
26
|
+
"autoStart": true,
|
|
27
|
+
"port": 50051,
|
|
28
|
+
"host": "127.0.0.1",
|
|
29
|
+
"apiKey": "optional-api-key"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 可用功能
|
|
35
|
+
|
|
36
|
+
| 功能 | 说明 |
|
|
37
|
+
|------|------|
|
|
38
|
+
| 资源监控 | CPU/内存/磁盘实时状态 |
|
|
39
|
+
| 命令执行 | 安全沙箱内执行白名单命令 |
|
|
40
|
+
| 任务调度 | 优先级队列与超时管理 |
|
|
41
|
+
|
|
42
|
+
### Slash 命令
|
|
43
|
+
|
|
44
|
+
| 命令 | 功能 |
|
|
45
|
+
|------|------|
|
|
46
|
+
| `/local-status` | 显示本地资源状态 |
|
|
47
|
+
| `/local-execute <cmd>` | 在沙箱中执行本地命令 |
|
|
48
|
+
|
|
49
|
+
### 安全机制
|
|
50
|
+
|
|
51
|
+
当前实现包含以下安全措施:
|
|
52
|
+
|
|
53
|
+
- **命令白名单**: 仅允许预定义的安全命令
|
|
54
|
+
- **路径访问控制**: 阻止访问敏感系统路径
|
|
55
|
+
- **资源限制**: 执行时间与内存使用上限
|
|
56
|
+
- **网络隔离**: 默认禁止网络访问
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 架构设计 (未来规划)
|
|
61
|
+
|
|
62
|
+
以下架构计划在后续版本实现:
|
|
63
|
+
|
|
64
|
+
### 目标架构图
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
68
|
+
│ 云端层 │
|
|
69
|
+
│ OpenVibe (Claude Code) │
|
|
70
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
|
|
71
|
+
│ │ 推理引擎 │ │ Hybrid Cloud │ │ Local Agent Client │ │
|
|
72
|
+
│ │ (Claude) │ │ Manager │ │ (TypeScript/gRPC) │ │
|
|
73
|
+
│ └──────┬───────┘ └──────┬───────┘ └──────────┬───────────┘ │
|
|
74
|
+
│ └─────────────────┼─────────────────────┘ │
|
|
75
|
+
│ │ WebSocket / gRPC │
|
|
76
|
+
└───────────────────────────┼────────────────────────────────────┘
|
|
77
|
+
│ TLS 1.3 + mTLS
|
|
78
|
+
▼
|
|
79
|
+
┌───────────────────────────┼────────────────────────────────────┐
|
|
80
|
+
│ 本地代理层 (Local Agent) │
|
|
81
|
+
│ Rust + Tokio │
|
|
82
|
+
│ ┌────────────────────────┴─────────────────────────────────┐ │
|
|
83
|
+
│ │ Local Agent Daemon │ │
|
|
84
|
+
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ │
|
|
85
|
+
│ │ │ 调度器 │ │ 执行器 │ │ 安全模块 │ │ │
|
|
86
|
+
│ │ │(Scheduler) │ │ (Executor) │ │ (Sandbox) │ │ │
|
|
87
|
+
│ │ └──────┬──────┘ └──────┬──────┘ └─────────────────┘ │ │
|
|
88
|
+
│ │ └────────────────┼───────────────────────────── │ │
|
|
89
|
+
│ │ ▼ │ │
|
|
90
|
+
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
|
|
91
|
+
│ │ │ CPU 池 │ │ GPU 池 │ │ 磁盘 I/O │ │ 网络 │ │ │
|
|
92
|
+
│ │ │(多线程) │ │(CUDA) │ │(异步) │ │(流式) │ │ │
|
|
93
|
+
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
|
|
94
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
95
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 目标特性
|
|
99
|
+
|
|
100
|
+
1. **gRPC 通信协议**
|
|
101
|
+
- 双向流式通信
|
|
102
|
+
- 更低延迟
|
|
103
|
+
- 更高吞吐量
|
|
104
|
+
|
|
105
|
+
2. **Rust 本地代理**
|
|
106
|
+
- 高性能任务执行
|
|
107
|
+
- GPU 计算支持 (CUDA/ROCm)
|
|
108
|
+
- 智能调度算法
|
|
109
|
+
|
|
110
|
+
3. **增强安全**
|
|
111
|
+
- mTLS 认证
|
|
112
|
+
- seccomp 沙箱
|
|
113
|
+
- 完整审计日志
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 多语言执行支持
|
|
118
|
+
|
|
119
|
+
| 语言 | 执行环境 | 沙箱 |
|
|
120
|
+
|------|---------|------|
|
|
121
|
+
| Python | python3 | 受限文件访问 |
|
|
122
|
+
| JavaScript | Node.js | 受限文件访问 |
|
|
123
|
+
| Rust | cargo | 编译沙箱 |
|
|
124
|
+
| Bash | bash | 命令白名单 |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 性能目标
|
|
129
|
+
|
|
130
|
+
| 指标 | 当前 (HTTP) | 目标 (gRPC) |
|
|
131
|
+
|------|-------------|-------------|
|
|
132
|
+
| 任务调度延迟 | ~20ms | < 10ms |
|
|
133
|
+
| 云端-本地延迟 | ~50ms | < 20ms |
|
|
134
|
+
| 任务吞吐量 | ~500 TPS | > 1000 TPS |
|
|
135
|
+
| 故障恢复时间 | ~5s | < 2s |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 故障排查
|
|
140
|
+
|
|
141
|
+
### 常见问题
|
|
142
|
+
|
|
143
|
+
1. **服务未启动**
|
|
144
|
+
```bash
|
|
145
|
+
# 检查服务状态
|
|
146
|
+
netstat -an | grep 50051
|
|
147
|
+
|
|
148
|
+
# 手动启动
|
|
149
|
+
openvibe --enable-companion
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
2. **命令被拒绝**
|
|
153
|
+
- 检查命令是否在白名单中
|
|
154
|
+
- 查看 `~/.openvibe/agent-debug.log` 获取详情
|
|
155
|
+
|
|
156
|
+
3. **资源不足**
|
|
157
|
+
- 检查本地资源状态: `/local-status`
|
|
158
|
+
- 调整 `companion.port` 或 `companion.host`
|
|
159
|
+
|
|
160
|
+
### 日志位置
|
|
161
|
+
|
|
162
|
+
- OpenVibe: `~/.openvibe/agent-debug.log`
|
|
163
|
+
- 配置文件: `~/.openvibe/settings.json`
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 路线图
|
|
168
|
+
|
|
169
|
+
### Phase 1: MVP ✅ (当前)
|
|
170
|
+
- [x] HTTP REST API 服务
|
|
171
|
+
- [x] 基础命令执行
|
|
172
|
+
- [x] 资源监控
|
|
173
|
+
|
|
174
|
+
### Phase 2: 核心功能 (计划中)
|
|
175
|
+
- [ ] gRPC 协议迁移
|
|
176
|
+
- [ ] Rust 本地代理
|
|
177
|
+
- [ ] GPU 计算支持
|
|
178
|
+
|
|
179
|
+
### Phase 3: 生产就绪
|
|
180
|
+
- [ ] 高可用部署
|
|
181
|
+
- [ ] 多租户支持
|
|
182
|
+
- [ ] 企业安全合规
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## 许可证
|
|
187
|
+
|
|
188
|
+
MIT License - 详见 LICENSE 文件
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# 云端-本地混合 AI 架构设计
|
|
2
|
+
|
|
3
|
+
## 1. 架构总览
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
┌─────────────────────────────────────────────────────────────────────────┐
|
|
7
|
+
│ 云端层 (Cloud Layer) │
|
|
8
|
+
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
|
9
|
+
│ │ Claude Code (云端推理引擎) │ │
|
|
10
|
+
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │
|
|
11
|
+
│ │ │ 推理规划 │ │ 代码生成 │ │ Tool 调用编排 │ │ │
|
|
12
|
+
│ │ │ (Reasoning)│ │ (Codegen) │ │ (Tool Orchestration) │ │ │
|
|
13
|
+
│ │ └──────┬──────┘ └──────┬──────┘ └───────────┬─────────────┘ │ │
|
|
14
|
+
│ │ └─────────────────┼─────────────────────┘ │ │
|
|
15
|
+
│ │ ▼ │ │
|
|
16
|
+
│ │ ┌─────────────────────────┐ │ │
|
|
17
|
+
│ │ │ 本地资源代理客户端 │ │ │
|
|
18
|
+
│ │ │ (Local Agent Client) │ │ │
|
|
19
|
+
│ │ └───────────┬─────────────┘ │ │
|
|
20
|
+
│ └──────────────────────────┼──────────────────────────────────────┘ │
|
|
21
|
+
└─────────────────────────────┼───────────────────────────────────────────┘
|
|
22
|
+
│ WebSocket / gRPC / HTTP/2
|
|
23
|
+
│ (双向流式通信)
|
|
24
|
+
┌─────────────────────────────┼───────────────────────────────────────────┐
|
|
25
|
+
│ 本地代理层 (Local Agent Layer) │
|
|
26
|
+
│ ┌──────────────────────────┼──────────────────────────────────────┐ │
|
|
27
|
+
│ │ ▼ │ │
|
|
28
|
+
│ │ ┌─────────────────────────┐ │ │
|
|
29
|
+
│ │ │ 本地代理服务 │ │ │
|
|
30
|
+
│ │ │ (Local Agent Daemon) │ │ │
|
|
31
|
+
│ │ │ - 安全沙箱执行环境 │ │ │
|
|
32
|
+
│ │ │ - 资源调度管理器 │ │ │
|
|
33
|
+
│ │ │ - 任务队列处理器 │ │ │
|
|
34
|
+
│ │ └───────────┬─────────────┘ │ │
|
|
35
|
+
│ │ │ │ │
|
|
36
|
+
│ │ ┌──────────────┼──────────────┐ │ │
|
|
37
|
+
│ │ ▼ ▼ ▼ │ │
|
|
38
|
+
│ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │
|
|
39
|
+
│ │ │ CPU 池 │ │ GPU 池 │ │ 磁盘 I/O │ │ │
|
|
40
|
+
│ │ │(计算密集型)│ │(CUDA/ROCm) │ │(异步读写) │ │ │
|
|
41
|
+
│ │ └──────┬─────┘ └──────┬─────┘ └──────┬─────┘ │ │
|
|
42
|
+
│ │ │ │ │ │ │
|
|
43
|
+
│ │ └──────────────┼──────────────┘ │ │
|
|
44
|
+
│ │ ▼ │ │
|
|
45
|
+
│ │ ┌─────────────────┐ │ │
|
|
46
|
+
│ │ │ 结果聚合器 │ │ │
|
|
47
|
+
│ │ │ (Aggregator) │ │ │
|
|
48
|
+
│ │ └────────┬────────┘ │ │
|
|
49
|
+
│ └───────────────────────┼────────────────────────────────────────┘ │
|
|
50
|
+
└──────────────────────────┼────────────────────────────────────────────┘
|
|
51
|
+
│
|
|
52
|
+
▼ WebSocket / gRPC Response
|
|
53
|
+
┌─────────────────────────┐
|
|
54
|
+
│ 云端结果接收 & 展示 │
|
|
55
|
+
└─────────────────────────┘
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## 2. 核心组件详解
|
|
59
|
+
|
|
60
|
+
### 2.1 云端层 (Cloud Layer)
|
|
61
|
+
|
|
62
|
+
| 模块 | 职责 | 技术栈 |
|
|
63
|
+
|------|------|--------|
|
|
64
|
+
| Reasoning Engine | 复杂推理规划 | Claude 3.5/4 |
|
|
65
|
+
| Code Generator | 代码生成与优化 | 多语言支持 |
|
|
66
|
+
| Tool Orchestrator | 工具调用编排 | 动态调度 |
|
|
67
|
+
| Local Agent Client | 与本地代理通信 | gRPC/WebSocket |
|
|
68
|
+
|
|
69
|
+
### 2.2 本地代理层 (Local Agent Layer)
|
|
70
|
+
|
|
71
|
+
| 模块 | 职责 | 技术栈 |
|
|
72
|
+
|------|------|--------|
|
|
73
|
+
| Agent Daemon | 核心服务进程 | Node.js / Rust |
|
|
74
|
+
| Security Sandbox | 安全执行环境 | seccomp / gVisor |
|
|
75
|
+
| Resource Manager | 资源调度管理 | 自定义调度器 |
|
|
76
|
+
| Task Queue | 任务队列处理 | Bull / RabbitMQ |
|
|
77
|
+
| CPU Pool | 多线程计算 | Worker Threads |
|
|
78
|
+
| GPU Pool | GPU 计算 | CUDA / ROCm |
|
|
79
|
+
| I/O Scheduler | 异步磁盘 I/O | libuv / io_uring |
|
|
80
|
+
|
|
81
|
+
## 3. 通信协议设计
|
|
82
|
+
|
|
83
|
+
### 3.1 消息类型
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
// 任务请求
|
|
87
|
+
interface TaskRequest {
|
|
88
|
+
taskId: string;
|
|
89
|
+
type: 'compute' | 'io' | 'gpu';
|
|
90
|
+
priority: number;
|
|
91
|
+
payload: {
|
|
92
|
+
code?: string;
|
|
93
|
+
files?: string[];
|
|
94
|
+
parameters?: Record<string, unknown>;
|
|
95
|
+
};
|
|
96
|
+
resourceRequirements: {
|
|
97
|
+
minCpuCores?: number;
|
|
98
|
+
minGpuMemory?: number;
|
|
99
|
+
timeout: number;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// 任务响应
|
|
104
|
+
interface TaskResponse {
|
|
105
|
+
taskId: string;
|
|
106
|
+
status: 'pending' | 'running' | 'completed' | 'failed';
|
|
107
|
+
result?: unknown;
|
|
108
|
+
error?: string;
|
|
109
|
+
metrics: {
|
|
110
|
+
cpuTime: number;
|
|
111
|
+
gpuTime?: number;
|
|
112
|
+
memoryUsed: number;
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// 资源状态
|
|
117
|
+
interface ResourceStatus {
|
|
118
|
+
timestamp: number;
|
|
119
|
+
cpu: {
|
|
120
|
+
cores: number;
|
|
121
|
+
usage: number[];
|
|
122
|
+
available: number;
|
|
123
|
+
};
|
|
124
|
+
gpu: {
|
|
125
|
+
devices: Array<{
|
|
126
|
+
id: number;
|
|
127
|
+
name: string;
|
|
128
|
+
memoryTotal: number;
|
|
129
|
+
memoryUsed: number;
|
|
130
|
+
utilization: number;
|
|
131
|
+
}>;
|
|
132
|
+
};
|
|
133
|
+
disk: {
|
|
134
|
+
readSpeed: number;
|
|
135
|
+
writeSpeed: number;
|
|
136
|
+
queueDepth: number;
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 3.2 通信流程
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
1. 云端发起任务请求 (TaskRequest)
|
|
145
|
+
↓ WebSocket/gRPC 流
|
|
146
|
+
2. 本地代理接收任务,进行资源评估
|
|
147
|
+
↓
|
|
148
|
+
3. 根据资源需求调度到合适执行器
|
|
149
|
+
↓
|
|
150
|
+
4. 实时推送进度更新 (Stream)
|
|
151
|
+
↓ WebSocket/gRPC 双向流
|
|
152
|
+
5. 任务完成,返回结果 (TaskResponse)
|
|
153
|
+
↓
|
|
154
|
+
6. 云端接收结果,继续推理
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## 4. 安全架构
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
161
|
+
│ 安全边界设计 │
|
|
162
|
+
├─────────────────────────────────────────────────────────────┤
|
|
163
|
+
│ │
|
|
164
|
+
│ ┌─────────────┐ TLS 1.3 ┌─────────────┐ │
|
|
165
|
+
│ │ 云端 │◄───────────────────────►│ 本地网关 │ │
|
|
166
|
+
│ └─────────────┘ 双向认证 └──────┬──────┘ │
|
|
167
|
+
│ │ │
|
|
168
|
+
│ 本地防火墙 │
|
|
169
|
+
│ │ │
|
|
170
|
+
│ ┌──────▼──────┐ │
|
|
171
|
+
│ │ 本地代理 │ │
|
|
172
|
+
│ │ (沙箱内) │ │
|
|
173
|
+
│ └──────┬──────┘ │
|
|
174
|
+
│ │ │
|
|
175
|
+
│ seccomp-bpf │
|
|
176
|
+
│ │ │
|
|
177
|
+
│ ┌──────▼──────┐ │
|
|
178
|
+
│ │ 资源执行器 │ │
|
|
179
|
+
│ │ (受限权限) │ │
|
|
180
|
+
│ └─────────────┘ │
|
|
181
|
+
│ │
|
|
182
|
+
└─────────────────────────────────────────────────────────────┘
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## 5. 资源调度策略
|
|
186
|
+
|
|
187
|
+
### 5.1 调度算法
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
┌───────────────────────────────────────────────────────────────┐
|
|
191
|
+
│ 智能调度器 (Scheduler) │
|
|
192
|
+
├───────────────────────────────────────────────────────────────┤
|
|
193
|
+
│ │
|
|
194
|
+
│ 1. 任务分类 │
|
|
195
|
+
│ ├── CPU 密集型 (编译、数据处理) │
|
|
196
|
+
│ ├── GPU 密集型 (模型推理、训练) │
|
|
197
|
+
│ └── I/O 密集型 (文件操作、网络请求) │
|
|
198
|
+
│ │
|
|
199
|
+
│ 2. 资源匹配 │
|
|
200
|
+
│ └── 根据任务类型匹配最优资源池 │
|
|
201
|
+
│ │
|
|
202
|
+
│ 3. 优先级队列 │
|
|
203
|
+
│ ├── P0: 用户交互响应 (实时性要求) │
|
|
204
|
+
│ ├── P1: 计算任务 (性能要求) │
|
|
205
|
+
│ └── P2: 后台任务 (资源空闲时执行) │
|
|
206
|
+
│ │
|
|
207
|
+
│ 4. 动态扩缩容 │
|
|
208
|
+
│ └── 根据负载自动调整工作线程数 │
|
|
209
|
+
│ │
|
|
210
|
+
└───────────────────────────────────────────────────────────────┘
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## 6. 部署架构
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
217
|
+
│ 云端部署 │
|
|
218
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
219
|
+
│ │ Kubernetes Cluster │ │
|
|
220
|
+
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
|
|
221
|
+
│ │ │ Claude Pod │ │ Claude Pod │ │ Claude Pod │ │ │
|
|
222
|
+
│ │ │ (推理) │ │ (推理) │ │ (推理) │ │ │
|
|
223
|
+
│ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │
|
|
224
|
+
│ │ └─────────────────┼─────────────────┘ │ │
|
|
225
|
+
│ │ ▼ │ │
|
|
226
|
+
│ │ ┌─────────────────┐ │ │
|
|
227
|
+
│ │ │ Load Balancer │ │ │
|
|
228
|
+
│ │ └─────────────────┘ │ │
|
|
229
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
230
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
231
|
+
│
|
|
232
|
+
│ Internet
|
|
233
|
+
│ (WebSocket/WSS)
|
|
234
|
+
▼
|
|
235
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
236
|
+
│ 用户本地 │
|
|
237
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
238
|
+
│ │ Local Agent Service │ │
|
|
239
|
+
│ │ ┌─────────────────────────────────────────────────┐ │ │
|
|
240
|
+
│ │ │ Systemd / Windows Service / macOS LaunchAgent │ │ │
|
|
241
|
+
│ │ │ - 开机自启动 │ │ │
|
|
242
|
+
│ │ │ - 自动重连 │ │ │
|
|
243
|
+
│ │ │ - 资源监控 │ │ │
|
|
244
|
+
│ │ └─────────────────────────────────────────────────┘ │ │
|
|
245
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
246
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## 7. 技术选型建议
|
|
250
|
+
|
|
251
|
+
| 层次 | 方案 A (Node.js) | 方案 B (Rust) | 推荐 |
|
|
252
|
+
|------|-----------------|---------------|------|
|
|
253
|
+
| 本地代理 | Node.js + TypeScript | Rust + Tokio | Rust (性能) |
|
|
254
|
+
| 通信协议 | Socket.io | gRPC + Tonic | gRPC |
|
|
255
|
+
| 任务队列 | BullMQ | Apache Kafka | BullMQ |
|
|
256
|
+
| GPU 计算 | CUDA Node.js bindings | Rust CUDA | 混合方案 |
|
|
257
|
+
| 沙箱 | vm2 + seccomp | Firecracker | Firecracker |
|
|
258
|
+
|
|
259
|
+
## 8. 核心代码结构
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
local-agent/
|
|
263
|
+
├── src/
|
|
264
|
+
│ ├── main.rs # 入口
|
|
265
|
+
│ ├── server/
|
|
266
|
+
│ │ ├── grpc.rs # gRPC 服务
|
|
267
|
+
│ │ └── websocket.rs # WebSocket 服务
|
|
268
|
+
│ ├── scheduler/
|
|
269
|
+
│ │ ├── mod.rs # 调度器
|
|
270
|
+
│ │ ├── cpu_pool.rs # CPU 池
|
|
271
|
+
│ │ ├── gpu_pool.rs # GPU 池
|
|
272
|
+
│ │ └── io_pool.rs # I/O 池
|
|
273
|
+
│ ├── executor/
|
|
274
|
+
│ │ ├── mod.rs # 执行器
|
|
275
|
+
│ │ ├── sandbox.rs # 沙箱
|
|
276
|
+
│ │ └── monitor.rs # 监控
|
|
277
|
+
│ ├── security/
|
|
278
|
+
│ │ ├── auth.rs # 认证
|
|
279
|
+
│ │ └── acl.rs # 权限
|
|
280
|
+
│ └── proto/
|
|
281
|
+
│ └── agent.proto # Protocol Buffers
|
|
282
|
+
├── Cargo.toml
|
|
283
|
+
└── config.yaml
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## 9. 性能指标目标
|
|
287
|
+
|
|
288
|
+
| 指标 | 目标值 |
|
|
289
|
+
|------|--------|
|
|
290
|
+
| 任务调度延迟 | < 10ms |
|
|
291
|
+
| 云端-本地通信延迟 | < 50ms (同城) |
|
|
292
|
+
| CPU 利用率 | > 80% (满负载) |
|
|
293
|
+
| GPU 内存利用率 | > 70% |
|
|
294
|
+
| 任务吞吐量 | > 1000 TPS |
|
|
295
|
+
| 故障恢复时间 | < 5s |
|
|
296
|
+
|
|
297
|
+
## 10. 实现路线图
|
|
298
|
+
|
|
299
|
+
### Phase 1: MVP (4周)
|
|
300
|
+
- [ ] 基础 gRPC 通信
|
|
301
|
+
- [ ] 简单任务执行 (bash)
|
|
302
|
+
- [ ] 基础资源监控
|
|
303
|
+
|
|
304
|
+
### Phase 2: 核心功能 (6周)
|
|
305
|
+
- [ ] CPU/GPU 资源池
|
|
306
|
+
- [ ] 任务调度器
|
|
307
|
+
- [ ] 安全沙箱
|
|
308
|
+
|
|
309
|
+
### Phase 3: 优化 (4周)
|
|
310
|
+
- [ ] 智能调度算法
|
|
311
|
+
- [ ] 性能优化
|
|
312
|
+
- [ ] 监控告警
|
|
313
|
+
|
|
314
|
+
### Phase 4: 生产就绪 (4周)
|
|
315
|
+
- [ ] 高可用部署
|
|
316
|
+
- [ ] 多租户支持
|
|
317
|
+
- [ ] 企业安全合规
|
package/docs/todo.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Todo 列表功能
|
|
2
|
+
|
|
3
|
+
OpenVibe 内置了智能的待办事项管理功能,AI 会自动为复杂任务创建和管理任务列表。
|
|
4
|
+
|
|
5
|
+
## AI 自动任务管理
|
|
6
|
+
|
|
7
|
+
当 AI 检测到复杂或多步骤任务时,会自动创建 todo 列表来跟踪进度:
|
|
8
|
+
|
|
9
|
+
### 自动创建任务的场景
|
|
10
|
+
|
|
11
|
+
AI 会在以下情况自动创建任务列表:
|
|
12
|
+
- 复杂功能实现
|
|
13
|
+
- 多文件重构
|
|
14
|
+
- 需要多个步骤的 bug 修复
|
|
15
|
+
- 项目设置或配置
|
|
16
|
+
- 包含多个问题的代码审查
|
|
17
|
+
|
|
18
|
+
### 工作流程示例
|
|
19
|
+
|
|
20
|
+
**用户:** 帮我添加用户认证功能
|
|
21
|
+
|
|
22
|
+
**AI:** (自动创建任务列表)
|
|
23
|
+
```
|
|
24
|
+
I'll create a todo list to track our progress on this task:
|
|
25
|
+
|
|
26
|
+
1. [ ] Analyze current codebase structure
|
|
27
|
+
2. [ ] Design authentication flow
|
|
28
|
+
3. [ ] Create auth middleware (high priority)
|
|
29
|
+
4. [ ] Implement login endpoint
|
|
30
|
+
5. [ ] Add session/token management
|
|
31
|
+
6. [ ] Test complete implementation
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
然后 AI 会在完成每个步骤时自动标记为完成。
|
|
35
|
+
|
|
36
|
+
## 斜杠命令
|
|
37
|
+
|
|
38
|
+
你也可以手动管理任务:
|
|
39
|
+
|
|
40
|
+
| 命令 | 功能 |
|
|
41
|
+
|------|------|
|
|
42
|
+
| `/todo` | 显示所有待办事项 |
|
|
43
|
+
| `/todo:add <text>` | 添加任务 |
|
|
44
|
+
| `/todo:done <id/text>` | 完成任务 |
|
|
45
|
+
| `/todo:undo <id/text>` | 重新打开任务 |
|
|
46
|
+
| `/todo:remove <id/text>` | 删除任务 |
|
|
47
|
+
| `/todo:clear` | 清除已完成任务 |
|
|
48
|
+
| `/todo:clear-all` | 清除所有任务 |
|
|
49
|
+
|
|
50
|
+
## 优先级说明
|
|
51
|
+
|
|
52
|
+
任务支持三种优先级:
|
|
53
|
+
- `high` / `!!!` - 关键路径项目,阻塞依赖
|
|
54
|
+
- `medium` / `!!` - 重要但不阻塞(默认)
|
|
55
|
+
- `low` / `!` - 可选改进
|
|
56
|
+
|
|
57
|
+
添加任务时指定优先级:
|
|
58
|
+
```
|
|
59
|
+
/todo:add 修复关键bug priority:high
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 数据存储
|
|
63
|
+
|
|
64
|
+
Todo 列表数据存储在 `~/.openvibe/agent/todo.json`,会在会话间保持同步。
|
|
65
|
+
|
|
66
|
+
## 提示 AI 使用任务管理
|
|
67
|
+
|
|
68
|
+
如果你想让 AI 为特定任务创建 todo 列表,可以说:
|
|
69
|
+
- "创建一个任务列表来跟踪这个"
|
|
70
|
+
- "帮我分解这个任务"
|
|
71
|
+
- "使用 todo 来管理这个任务"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-custom-provider",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-custom-provider",
|
|
9
|
-
"version": "1.8.
|
|
9
|
+
"version": "1.8.2",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sdk": "^0.52.0"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-with-deps",
|
|
3
|
-
"version": "1.21.
|
|
3
|
+
"version": "1.21.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-with-deps",
|
|
9
|
-
"version": "1.21.
|
|
9
|
+
"version": "1.21.2",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"ms": "^2.1.3"
|
|
12
12
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openvibe",
|
|
3
|
-
"version": "0.63.
|
|
3
|
+
"version": "0.63.3",
|
|
4
4
|
"description": "OpenVibe - AI Coding Assistant CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"piConfig": {
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@mariozechner/jiti": "^2.6.2",
|
|
45
|
-
"@boxiaolanya2008/pi-agent-core": "^0.
|
|
46
|
-
"@boxiaolanya2008/pi-ai": "^0.
|
|
47
|
-
"@boxiaolanya2008/pi-tui": "^0.
|
|
45
|
+
"@boxiaolanya2008/pi-agent-core": "^0.63.3",
|
|
46
|
+
"@boxiaolanya2008/pi-ai": "^0.63.3",
|
|
47
|
+
"@boxiaolanya2008/pi-tui": "^0.63.3",
|
|
48
48
|
"@silvia-odwyer/photon-node": "^0.3.4",
|
|
49
49
|
"chalk": "^5.5.0",
|
|
50
50
|
"cli-highlight": "^2.1.11",
|