@next-open-ai/openbot 0.1.10 → 0.2.8

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 (81) hide show
  1. package/README.md +108 -19
  2. package/{desktop → apps/desktop}/README.md +3 -3
  3. package/{desktop/renderer/dist/assets/index-J1y_YkPz.js → apps/desktop/renderer/dist/assets/index-BOS-F8a4.js} +34 -34
  4. package/{desktop/renderer/dist/assets/index-BBoPEPR6.css → apps/desktop/renderer/dist/assets/index-DxqxayUL.css} +2 -2
  5. package/{desktop → apps/desktop}/renderer/dist/index.html +3 -3
  6. package/dist/cli/cli.d.ts +2 -0
  7. package/dist/cli/cli.js +198 -0
  8. package/dist/cli/service.d.ts +13 -0
  9. package/dist/cli/service.js +243 -0
  10. package/dist/cli.d.ts +4 -1
  11. package/dist/cli.js +4 -172
  12. package/dist/gateway/auth-hooks.d.ts +17 -0
  13. package/dist/gateway/auth-hooks.js +19 -0
  14. package/dist/gateway/channel-handler.d.ts +6 -0
  15. package/dist/gateway/channel-handler.js +3 -0
  16. package/dist/gateway/index.d.ts +1 -1
  17. package/dist/gateway/index.js +1 -1
  18. package/dist/gateway/methods/agent-cancel.js +1 -1
  19. package/dist/gateway/methods/agent-chat.js +3 -3
  20. package/dist/gateway/methods/install-skill-from-path.js +1 -1
  21. package/dist/gateway/methods/run-scheduled-task.js +3 -3
  22. package/dist/gateway/paths.d.ts +20 -0
  23. package/dist/gateway/paths.js +19 -0
  24. package/dist/gateway/server.d.ts +2 -4
  25. package/dist/gateway/server.js +99 -208
  26. package/dist/gateway/sse-handler.d.ts +6 -0
  27. package/dist/gateway/sse-handler.js +3 -0
  28. package/dist/gateway/voice-handler.d.ts +12 -0
  29. package/dist/gateway/voice-handler.js +18 -0
  30. package/dist/index.d.ts +5 -5
  31. package/dist/index.js +5 -5
  32. package/dist/server/agents/agents.service.js +1 -1
  33. package/dist/server/bootstrap.d.ts +15 -0
  34. package/dist/server/bootstrap.js +38 -0
  35. package/dist/server/config/config.service.d.ts +1 -1
  36. package/dist/server/config/config.service.js +1 -1
  37. package/dist/server/main.js +6 -19
  38. package/dist/server/skills/skills.service.js +1 -1
  39. package/dist/server/workspace/workspace.service.js +1 -1
  40. package/package.json +17 -12
  41. package/desktop/renderer/dist/assets/logo-RfPiqt5-.png +0 -0
  42. /package/dist/{agent → core/agent}/agent-dir.d.ts +0 -0
  43. /package/dist/{agent → core/agent}/agent-dir.js +0 -0
  44. /package/dist/{agent → core/agent}/agent-manager.d.ts +0 -0
  45. /package/dist/{agent → core/agent}/agent-manager.js +0 -0
  46. /package/dist/{agent → core/agent}/config-manager.d.ts +0 -0
  47. /package/dist/{agent → core/agent}/config-manager.js +0 -0
  48. /package/dist/{agent → core/agent}/run.d.ts +0 -0
  49. /package/dist/{agent → core/agent}/run.js +0 -0
  50. /package/dist/{agent → core/agent}/skills.d.ts +0 -0
  51. /package/dist/{agent → core/agent}/skills.js +0 -0
  52. /package/dist/{config → core/config}/desktop-config.d.ts +0 -0
  53. /package/dist/{config → core/config}/desktop-config.js +0 -0
  54. /package/dist/{config → core/config}/provider-support-default.d.ts +0 -0
  55. /package/dist/{config → core/config}/provider-support-default.js +0 -0
  56. /package/dist/{installer → core/installer}/index.d.ts +0 -0
  57. /package/dist/{installer → core/installer}/index.js +0 -0
  58. /package/dist/{installer → core/installer}/skill-installer.d.ts +0 -0
  59. /package/dist/{installer → core/installer}/skill-installer.js +0 -0
  60. /package/dist/{memory → core/memory}/build-summary.d.ts +0 -0
  61. /package/dist/{memory → core/memory}/build-summary.js +0 -0
  62. /package/dist/{memory → core/memory}/compaction-extension.d.ts +0 -0
  63. /package/dist/{memory → core/memory}/compaction-extension.js +0 -0
  64. /package/dist/{memory → core/memory}/embedding.d.ts +0 -0
  65. /package/dist/{memory → core/memory}/embedding.js +0 -0
  66. /package/dist/{memory → core/memory}/index.d.ts +0 -0
  67. /package/dist/{memory → core/memory}/index.js +0 -0
  68. /package/dist/{memory → core/memory}/remote-embedding.d.ts +0 -0
  69. /package/dist/{memory → core/memory}/remote-embedding.js +0 -0
  70. /package/dist/{memory → core/memory}/types.d.ts +0 -0
  71. /package/dist/{memory → core/memory}/types.js +0 -0
  72. /package/dist/{memory → core/memory}/vector-store.d.ts +0 -0
  73. /package/dist/{memory → core/memory}/vector-store.js +0 -0
  74. /package/dist/{tools → core/tools}/browser-tool.d.ts +0 -0
  75. /package/dist/{tools → core/tools}/browser-tool.js +0 -0
  76. /package/dist/{tools → core/tools}/index.d.ts +0 -0
  77. /package/dist/{tools → core/tools}/index.js +0 -0
  78. /package/dist/{tools → core/tools}/install-skill-tool.d.ts +0 -0
  79. /package/dist/{tools → core/tools}/install-skill-tool.js +0 -0
  80. /package/dist/{tools → core/tools}/save-experience-tool.d.ts +0 -0
  81. /package/dist/{tools → core/tools}/save-experience-tool.js +0 -0
package/README.md CHANGED
@@ -36,7 +36,7 @@
36
36
  ▼ ▼ ▼
37
37
  ┌─────────────────────────────────────────────────────────────────────────────┐
38
38
  │ Gateway Server (Node) │
39
- │ • 静态资源 自动发现端口子进程拉起 Desktop Server
39
+ │ • 内嵌 Nest(/server-api)• path 分流 静态资源 自动发现端口
40
40
  └────────────────────────────────────┬────────────────────────────────────────┘
41
41
 
42
42
  ┌────────────────────────────┼────────────────────────────┐
@@ -55,21 +55,55 @@
55
55
  └─────────────────────────────────────────────────────────────────────────────┘
56
56
  ```
57
57
 
58
- - **CLI**:直接调用 Agent 核心,单次提示或批量脚本。
59
- - **WebSocket Gateway**(`src/gateway/`):对外提供 WebSocket(JSON-RPC),供 Web/移动端连接;负责起端口、拉 Nest 后端子进程、代理 `/server-api` 请求。**与「Desktop 后端」是不同进程。**
60
- - **Desktop 后端**(`src/server/`):NestJS HTTP API,即 **server-api**;默认端口 38081。会话、智能体配置、技能、任务、工作区、鉴权等由本模块提供。
58
+ - **CLI**:直接调用 Agent 核心,单次提示或批量脚本;可启动 Gateway(`openbot gateway`)及配置开机自启(`openbot service install/uninstall`)。
59
+ - **WebSocket Gateway**(`src/gateway/`):单进程内嵌 Nest,对外提供 WebSocket(JSON-RPC)与 HTTP;按 path 分流:`/server-api` Nest、`/ws` 为 Agent 对话、`/ws/voice`/`/sse`/`/channel` 为扩展占位,其余为静态资源。供 Web/移动端连接;支持以开机/登录自启方式常驻(Linux cron、macOS LaunchAgent、Windows 计划任务)。
60
+ - **Desktop 后端**(`src/server/`):NestJS HTTP API,即 **server-api**;可被 Gateway 内嵌或独立监听(默认端口 38081)。会话、智能体配置、技能、任务、工作区、鉴权等由本模块提供。
61
61
  - **Desktop**:Electron 包一层 Vue 前端 + 上述后端;通过 Gateway 或直连 Desktop 后端与 Agent 通信。
62
62
  - **Agent 核心**:统一由 `AgentManager` 管理会话、技能注入与工具注册;记忆与 compaction 作为扩展参与 system prompt 与经验写入。
63
63
 
64
+ ### 项目目录结构
65
+
66
+ ```
67
+ openbot/
68
+ ├── src/ # 源码(构建输出 dist/)
69
+ │ ├── core/ # 公共核心,CLI 与 Gateway 共用
70
+ │ │ ├── agent/ # AgentManager、run、技能与配置
71
+ │ │ ├── config/ # 桌面配置(~/.openbot/desktop)
72
+ │ │ ├── memory/ # 向量存储、嵌入、compaction
73
+ │ │ ├── installer/ # 技能安装
74
+ │ │ └── tools/ # 内置工具(browser、install-skill、save-experience 等)
75
+ │ ├── cli/ # CLI 入口与 service 子命令
76
+ │ │ ├── cli.ts # 主入口,构建为 dist/cli/cli.js
77
+ │ │ └── service.ts # 开机自启 install/uninstall/stop
78
+ │ ├── gateway/ # WebSocket 网关(内嵌 Nest、path 分流)
79
+ │ ├── server/ # Desktop 后端(NestJS)
80
+ │ ├── cli.ts # 兼容入口,仅转发到 cli/cli.js
81
+ │ └── index.ts # 包导出
82
+ ├── apps/
83
+ │ ├── desktop/ # Electron + Vue 桌面端
84
+ │ ├── web/ # 预留
85
+ │ ├── mobile/ # 预留
86
+ │ ├── miniprogram/ # 预留
87
+ │ └── browser-extension/ # 预留
88
+ ├── deploy/ # Docker、K8s 等部署
89
+ ├── test/ # 单元与 e2e 测试
90
+ ├── examples/ # 示例(含 workspace、gateway-client)
91
+ └── skills/ # 内置技能(find-skills、agent-browser)
92
+ ```
93
+
64
94
  ### 目录与模块对应
65
95
 
66
96
  | 目录 | 说明 |
67
97
  |------|------|
68
- | `src/server/` | **Desktop 后端**(NestJS),HTTP API,前缀 `server-api`。 |
69
- | `src/gateway/` | **WebSocket 网关**,独立进程,提供 WS JSON-RPC 并代理到 Desktop 后端。 |
70
- | `src/agent/` | Agent 核心(CLI Gateway 共用)。 |
71
- | `src/config/` | 桌面配置(~/.openbot/desktop):config.json、agents.json、provider-support.json;CLI Gateway 共用。 |
72
- | `examples/workspace/` | 示例工作区数据(仅示例/测试用)。真实工作区根目录为 `~/.openbot/workspace/`。 |
98
+ | `src/core/` | **公共核心**:`agent/`(AgentManager、pi-coding-agent)、`config/`(桌面配置)、`memory/`、`installer/`、`tools/`;CLI Gateway 共用。 |
99
+ | `src/cli/` | **CLI**:`cli.ts` 主入口(构建为 `dist/cli/cli.js`),`service.ts` 提供开机自启(install/uninstall/stop)。 |
100
+ | `src/gateway/` | **WebSocket 网关**:单进程内嵌 Nest,按 path 分流:`/server-api`、`/ws`、`/ws/voice`、`/sse`、`/channel`、`/health`、静态资源(`apps/desktop/renderer/dist`)。 |
101
+ | `src/server/` | **Desktop 后端**(NestJS),HTTP API 前缀 `server-api`;可内嵌到 Gateway 或独立监听。 |
102
+ | `apps/desktop/` | **桌面端**(Electron + Vue),前端构建产物由 Gateway 提供。 |
103
+ | `deploy/` | Dockerfile、K8s 等部署配置。 |
104
+ | `test/` | 单元与 e2e 测试(config、gateway、server、installer)。 |
105
+ | `examples/` | 示例工作区、gateway 客户端等。真实工作区根目录为 `~/.openbot/workspace/`。 |
106
+ | `skills/` | 内置技能(SKILL.md 规范)。 |
73
107
 
74
108
  ---
75
109
 
@@ -81,9 +115,10 @@
81
115
  |------|------|
82
116
  | 运行时 | Node.js 20+ |
83
117
  | 语言 | TypeScript 5.7 |
84
- | 入口 | `openbot`(bin → `dist/cli.js`) |
85
- | 框架 | Commander(子命令:`gateway`、`login`、`config`) |
86
- | 配置 | `~/.openbot/agent`(API Key、模型、技能等) |
118
+ | 入口 | `openbot`(bin → `dist/cli/cli.js`) |
119
+ | 框架 | Commander(子命令:`gateway`、`login`、`config`、`service`) |
120
+ | 配置 | `~/.openbot/agent`(API Key、模型、技能等);`~/.openbot/desktop`(与桌面共用) |
121
+ | 开机自启 | `openbot service install` / `uninstall`(Linux cron、macOS LaunchAgent、Windows 计划任务);`openbot service stop` 停止当前 gateway |
87
122
 
88
123
  ### WebSocket Gateway
89
124
 
@@ -91,7 +126,8 @@
91
126
  |------|------|
92
127
  | 协议 | JSON-RPC over WebSocket(`ws`) |
93
128
  | 端口 | 默认 38080,可 `-p` 指定 |
94
- | 职责 | 连接管理、消息路由、静态资源、拉 Nest 子进程 |
129
+ | 架构 | 单进程内嵌 Nest;按 path 分流:`/server-api`、`/ws`、`/ws/voice`、`/sse`、`/channel`、`/health`、静态资源 |
130
+ | 职责 | 连接管理、消息路由、鉴权钩子、静态资源(Desktop 前端) |
95
131
  | 方法 | `connect`、`agent.chat`、`agent.cancel`、`subscribe_session`、`unsubscribe_session` 等 |
96
132
 
97
133
  ### Agent 核心
@@ -156,8 +192,29 @@
156
192
 
157
193
  适用于:使用 **CLI**,或在自有环境中运行 **Gateway(Web)**。
158
194
 
195
+ ### 前置环境准备
196
+
197
+ 需先安装 **Node.js 20+**(Node >=20)。任选一种方式安装即可:
198
+
199
+ | 方式 | 说明 |
200
+ |------|------|
201
+ | **官网安装包** | 打开 [nodejs.org](https://nodejs.org/),下载 LTS 并安装;安装后终端执行 `node -v` 应显示 v20.x 或更高。 |
202
+ | **nvm(推荐)** | 多版本切换方便:`curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh \| bash`,重启终端后 `nvm install 20`、`nvm use 20`。 |
203
+ | **macOS (Homebrew)** | `brew install node@20`,或 `brew install nvm` 再用 nvm 安装 20。 |
204
+ | **Windows** | 使用 [nodejs.org](https://nodejs.org/) 安装包,或 `winget install OpenJS.NodeJS.LTS`。 |
205
+ | **Linux** | 使用发行版包管理器(如 `apt install nodejs`)或 [nvm](https://github.com/nvm-sh/nvm) 安装。 |
206
+
207
+ 安装后请确认:
208
+
209
+ ```bash
210
+ node -v # 应为 v20.x 或 v22.x
211
+ npm -v # 能正常输出版本号
212
+ ```
213
+
214
+ ### 安装命令
215
+
159
216
  ```bash
160
- # 全局安装(测试过node版本:20/22 24太新,有一些库要本地编译环境)
217
+ # 全局安装(测试过 node 版本:20/22;24 太新,部分库需本地编译环境)
161
218
  npm install -g @next-open-ai/openbot
162
219
  ```
163
220
 
@@ -196,6 +253,8 @@ npm link # 或 npm install -g . 本地全局安装
196
253
  - 从 [Releases](https://github.com/next-open-ai/openbot/releases) 下载对应平台的安装包(macOS / Windows)。
197
254
  - 安装后启动 OpenBot Desktop,按界面引导配置 API Key 与默认模型即可使用。
198
255
 
256
+ 安装包由仓库通过 **Desktop 打包** 流程生成(见下方「三、开发 → 3.3 Desktop 开发 → Desktop 打包」)。
257
+
199
258
  首次使用建议在设置中配置默认 Provider/模型,或通过 CLI 执行 `openbot login <provider> <apiKey> [model]` / `openbot config set-model <provider> <modelId>`(与桌面端共用 `~/.openbot/desktop/` 配置)。
200
259
 
201
260
  ---
@@ -268,6 +327,8 @@ openbot "总结一下当前有哪些技能"
268
327
  openbot gateway --port 38080
269
328
  ```
270
329
 
330
+ 若需网关开机/登录自启,可执行 `openbot service install`(支持 Linux / macOS / Windows);移除自启用 `openbot service uninstall`,停止当前网关用 `openbot service stop`。
331
+
271
332
  客户端连接 `ws://localhost:38080`,使用 JSON-RPC 调用 `connect`、`agent.chat`、`agent.cancel` 等(详见下方「Gateway API 简述」)。
272
333
  前端可自行实现或使用仓库内 Web 示例(若有)。
273
334
 
@@ -325,9 +386,10 @@ npm run build
325
386
 
326
387
  ## 3.1 CLI 开发
327
388
 
328
- - 入口:`openbot` → bin → `dist/cli.js`
329
- - 技术:Commander(子命令 `gateway`、`login`、`config`)、TypeScript 5.7
389
+ - 入口:`openbot` → bin → `dist/cli/cli.js`
390
+ - 技术:Commander(子命令 `gateway`、`login`、`config`、`service`)、TypeScript 5.7
330
391
  - 配置与数据:`~/.openbot/agent`、`~/.openbot/desktop`(与桌面共用)
392
+ - Gateway 开机自启:`openbot service install` / `uninstall` / `stop`(见 `src/cli/service.ts`)
331
393
 
332
394
  修改 CLI 后重新构建并本地安装:
333
395
 
@@ -341,7 +403,7 @@ openbot --help
341
403
 
342
404
  ## 3.2 Web 开发(Gateway + 前端)
343
405
 
344
- - **Gateway**:`src/gateway/`,默认端口 38080,可 `-p` 指定;协议 JSON-RPC over WebSocket;职责包括连接管理、消息路由、静态资源、拉 Nest 子进程。
406
+ - **Gateway**:`src/gateway/`,默认端口 38080,可 `-p` 指定;单进程内嵌 Nest,按 path 分流(`/server-api`、`/ws`、静态资源等);协议 JSON-RPC over WebSocket;职责包括连接管理、消息路由、鉴权、静态资源。
345
407
  - **方法**:`connect`、`agent.chat`、`agent.cancel`、`subscribe_session`、`unsubscribe_session` 等。
346
408
 
347
409
  本地启动网关:
@@ -357,8 +419,8 @@ openbot gateway --port 38080
357
419
 
358
420
  ## 3.3 Desktop 开发
359
421
 
360
- - **后端**:NestJS(`src/server/`),前缀 `server-api`,默认端口 38081;Gateway 启动时会拉该子进程并代理 `/server-api`。
361
- - **前端**:Electron 28 + Vue 3 + Pinia + Vite 5,位于 `desktop/`。
422
+ - **后端**:NestJS(`src/server/`),前缀 `server-api`,默认端口 38081;Gateway 内嵌时直接挂载该 Express,无独立子进程。
423
+ - **前端**:Electron 28 + Vue 3 + Pinia + Vite 5,位于 `apps/desktop/`。
362
424
 
363
425
  ```bash
364
426
  # 先构建核心(若未构建)
@@ -371,6 +433,33 @@ npm run desktop:dev
371
433
  npm run desktop:install
372
434
  ```
373
435
 
436
+ ### Desktop 打包
437
+
438
+ 从源码构建可安装的桌面安装包(DMG/NSIS/AppImage),供发布或本地安装使用。
439
+
440
+ **命令(在仓库根目录执行):**
441
+
442
+ ```bash
443
+ npm run desktop:pack
444
+ ```
445
+
446
+ 该命令会依次执行:
447
+
448
+ 1. **根目录构建**:`npm run build`,生成 `dist/`(含 Gateway、Server、Agent 等)。
449
+ 2. **桌面构建**:`cd apps/desktop && npm run build`,其中包含:
450
+ - **build:gateway**:若需则再次构建根目录 `dist`;
451
+ - **build:copy-gateway**:将根目录 `dist` 复制到 `apps/desktop/gateway-dist`,写入 `package.json`(`type: "module"` + 生产依赖),并执行 `npm install --production`,得到带 `node_modules` 的 gateway 运行时;
452
+ - **build:renderer**:Vite 构建前端到 `renderer/dist`;
453
+ - **electron-builder**:打包为各平台安装包,并将 `gateway-dist` 作为 **extraResources** 拷贝到应用内 `Contents/Resources/dist`(含 Gateway 代码与依赖),无需用户安装 Node 即可运行。
454
+
455
+ **产出物:**
456
+
457
+ - **macOS**:`apps/desktop/dist/` 下生成 `.dmg`、`.zip`(如 `OpenBot Desktop-0.1.1-arm64.dmg`);
458
+ - **Windows**:nsis 安装程序;
459
+ - **Linux**:AppImage。
460
+
461
+ 安装包安装后,Gateway 与前端均内嵌在应用内,用户无需单独安装 Node.js。
462
+
374
463
  ---
375
464
 
376
465
  ## 测试
@@ -106,7 +106,7 @@ Agent Manager
106
106
  ## 📁 Directory Structure
107
107
 
108
108
  ```
109
- desktop/
109
+ apps/desktop/
110
110
  ├── main.js # Electron main process
111
111
  ├── preload.js # Electron preload script
112
112
  ├── package.json # Root dependencies
@@ -199,11 +199,11 @@ All three services support hot reload:
199
199
  ## 🚢 Building for Production
200
200
 
201
201
  ```bash
202
- cd desktop
202
+ cd apps/desktop
203
203
  npm run build
204
204
  ```
205
205
 
206
- This creates platform-specific installers in `desktop/dist/`.
206
+ This creates platform-specific installers in `apps/desktop/dist/`.
207
207
 
208
208
  ## 📄 License
209
209