@xopcai/xopcbot 0.1.3 → 0.2.0

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 (292) hide show
  1. package/README.md +57 -52
  2. package/README.zh-CN.md +56 -49
  3. package/dist/agent/__tests__/media-processing.test.d.ts +6 -0
  4. package/dist/agent/__tests__/media-processing.test.js +385 -0
  5. package/dist/agent/__tests__/media-processing.test.js.map +1 -0
  6. package/dist/agent/fallback/__tests__/index.test.js +16 -5
  7. package/dist/agent/fallback/__tests__/index.test.js.map +1 -1
  8. package/dist/agent/fallback/candidates.d.ts +2 -4
  9. package/dist/agent/fallback/candidates.js +19 -26
  10. package/dist/agent/fallback/candidates.js.map +1 -1
  11. package/dist/agent/helpers.d.ts +1 -0
  12. package/dist/agent/helpers.js.map +1 -1
  13. package/dist/agent/index.d.ts +6 -1
  14. package/dist/agent/index.js +10 -1
  15. package/dist/agent/index.js.map +1 -1
  16. package/dist/agent/models/compat.d.ts +35 -0
  17. package/dist/agent/models/compat.js +110 -0
  18. package/dist/agent/models/compat.js.map +1 -0
  19. package/dist/agent/models/fallback.d.ts +38 -0
  20. package/dist/agent/models/fallback.js +133 -0
  21. package/dist/agent/models/fallback.js.map +1 -0
  22. package/dist/agent/models/index.d.ts +10 -0
  23. package/dist/agent/models/index.js +11 -0
  24. package/dist/agent/models/index.js.map +1 -0
  25. package/dist/agent/{model-manager.d.ts → models/manager.d.ts} +2 -8
  26. package/dist/agent/{model-manager.js → models/manager.js} +38 -24
  27. package/dist/agent/models/manager.js.map +1 -0
  28. package/dist/agent/models/scan.d.ts +46 -0
  29. package/dist/agent/models/scan.js +177 -0
  30. package/dist/agent/models/scan.js.map +1 -0
  31. package/dist/agent/models/selection.d.ts +44 -0
  32. package/dist/agent/models/selection.js +141 -0
  33. package/dist/agent/models/selection.js.map +1 -0
  34. package/dist/agent/prompt/index.js +1 -1
  35. package/dist/agent/prompt/index.js.map +1 -1
  36. package/dist/agent/service.js +34 -16
  37. package/dist/agent/service.js.map +1 -1
  38. package/dist/agent/skills/__tests__/test-framework.test.js +15 -7
  39. package/dist/agent/skills/__tests__/test-framework.test.js.map +1 -1
  40. package/dist/agent/skills/config.d.ts +1 -1
  41. package/dist/agent/skills/config.js +2 -2
  42. package/dist/agent/skills/config.js.map +1 -1
  43. package/dist/agent/skills/index.js +15 -28
  44. package/dist/agent/skills/index.js.map +1 -1
  45. package/dist/agent/skills/installer.d.ts +1 -1
  46. package/dist/agent/skills/installer.js +1 -1
  47. package/dist/agent/skills/scanner.d.ts +1 -1
  48. package/dist/agent/skills/scanner.js +1 -1
  49. package/dist/agent/skills/test-framework.js +24 -23
  50. package/dist/agent/skills/test-framework.js.map +1 -1
  51. package/dist/agent/skills/types.d.ts +3 -3
  52. package/dist/agent/skills/types.js +1 -1
  53. package/dist/agent/skills/watcher.d.ts +1 -1
  54. package/dist/agent/skills/watcher.js +1 -1
  55. package/dist/agent/system-prompt.d.ts +67 -0
  56. package/dist/agent/system-prompt.js +351 -0
  57. package/dist/agent/system-prompt.js.map +1 -0
  58. package/dist/agent/tools/__tests__/send-media.test.d.ts +6 -0
  59. package/dist/agent/tools/__tests__/send-media.test.js +251 -0
  60. package/dist/agent/tools/__tests__/send-media.test.js.map +1 -0
  61. package/dist/agent/types.agent-defaults.d.ts +48 -0
  62. package/dist/agent/types.agent-defaults.js +5 -0
  63. package/dist/agent/types.agent-defaults.js.map +1 -0
  64. package/dist/agent/types.d.ts +14 -6
  65. package/dist/agent/types.js +5 -0
  66. package/dist/agent/types.js.map +1 -1
  67. package/dist/agent/workspace.d.ts +94 -0
  68. package/dist/agent/workspace.js +625 -0
  69. package/dist/agent/workspace.js.map +1 -0
  70. package/dist/auth/index.js +1 -1
  71. package/dist/auth/index.js.map +1 -1
  72. package/dist/auth/oauth/index.d.ts +1 -0
  73. package/dist/auth/oauth/index.js +1 -0
  74. package/dist/auth/oauth/index.js.map +1 -1
  75. package/dist/auth/oauth/kimi.d.ts +2 -1
  76. package/dist/auth/oauth/kimi.js +51 -48
  77. package/dist/auth/oauth/kimi.js.map +1 -1
  78. package/dist/auth/oauth/minimax-cn.d.ts +12 -0
  79. package/dist/auth/oauth/minimax-cn.js +111 -0
  80. package/dist/auth/oauth/minimax-cn.js.map +1 -0
  81. package/dist/auth/oauth/qwen.d.ts +5 -0
  82. package/dist/auth/oauth/qwen.js +54 -84
  83. package/dist/auth/oauth/qwen.js.map +1 -1
  84. package/dist/auth/profiles/index.d.ts +0 -2
  85. package/dist/auth/profiles/index.js +0 -2
  86. package/dist/auth/profiles/index.js.map +1 -1
  87. package/dist/auth/storage.js +7 -1
  88. package/dist/auth/storage.js.map +1 -1
  89. package/dist/channels/__tests__/media-integration.test.d.ts +6 -0
  90. package/dist/channels/__tests__/media-integration.test.js +398 -0
  91. package/dist/channels/__tests__/media-integration.test.js.map +1 -0
  92. package/dist/channels/__tests__/media.test.d.ts +6 -0
  93. package/dist/channels/__tests__/media.test.js +251 -0
  94. package/dist/channels/__tests__/media.test.js.map +1 -0
  95. package/dist/channels/access-control.d.ts +1 -1
  96. package/dist/channels/access-control.js +1 -1
  97. package/dist/channels/draft-stream.d.ts +1 -1
  98. package/dist/channels/draft-stream.js +1 -1
  99. package/dist/channels/format.d.ts +1 -1
  100. package/dist/channels/format.js +1 -1
  101. package/dist/channels/telegram/command-handler.js +15 -48
  102. package/dist/channels/telegram/command-handler.js.map +1 -1
  103. package/dist/channels/telegram/plugin.js +3 -2
  104. package/dist/channels/telegram/plugin.js.map +1 -1
  105. package/dist/channels/telegram/webhook.d.ts +1 -1
  106. package/dist/channels/telegram/webhook.js +1 -1
  107. package/dist/channels/types.d.ts +1 -1
  108. package/dist/channels/types.js +1 -1
  109. package/dist/channels/update-offset-store.d.ts +1 -1
  110. package/dist/channels/update-offset-store.js +1 -1
  111. package/dist/cli/commands/auth.js +8 -23
  112. package/dist/cli/commands/auth.js.map +1 -1
  113. package/dist/cli/commands/gateway.js +9 -1
  114. package/dist/cli/commands/gateway.js.map +1 -1
  115. package/dist/cli/commands/models.js +35 -29
  116. package/dist/cli/commands/models.js.map +1 -1
  117. package/dist/cli/commands/onboard.js +166 -115
  118. package/dist/cli/commands/onboard.js.map +1 -1
  119. package/dist/cli/commands/setup.js +123 -0
  120. package/dist/cli/commands/setup.js.map +1 -0
  121. package/dist/cli/commands/skills.js +6 -6
  122. package/dist/cli/commands/skills.js.map +1 -1
  123. package/dist/cli/index.d.ts +1 -1
  124. package/dist/cli/index.js +1 -1
  125. package/dist/cli/index.js.map +1 -1
  126. package/dist/cli/templates.d.ts +2 -0
  127. package/dist/cli/templates.js +1 -1
  128. package/dist/cli/templates.js.map +1 -1
  129. package/dist/config/defaults.d.ts +19 -0
  130. package/dist/config/defaults.js +168 -0
  131. package/dist/config/defaults.js.map +1 -0
  132. package/dist/config/index.d.ts +5 -0
  133. package/dist/config/index.js +4 -0
  134. package/dist/config/index.js.map +1 -1
  135. package/dist/config/integration.d.ts +12 -0
  136. package/dist/config/integration.js +14 -0
  137. package/dist/config/integration.js.map +1 -0
  138. package/dist/config/models-json.d.ts +454 -0
  139. package/dist/config/models-json.js +323 -0
  140. package/dist/config/models-json.js.map +1 -0
  141. package/dist/config/paths.d.ts +2 -0
  142. package/dist/config/paths.js +4 -0
  143. package/dist/config/paths.js.map +1 -1
  144. package/dist/config/reload.d.ts +1 -1
  145. package/dist/config/reload.js +3 -3
  146. package/dist/config/reload.js.map +1 -1
  147. package/dist/config/resolve-config-value.d.ts +36 -0
  148. package/dist/config/resolve-config-value.js +218 -0
  149. package/dist/config/resolve-config-value.js.map +1 -0
  150. package/dist/config/rules.js +3 -2
  151. package/dist/config/rules.js.map +1 -1
  152. package/dist/config/schema.d.ts +17 -884
  153. package/dist/config/schema.js +36 -312
  154. package/dist/config/schema.js.map +1 -1
  155. package/dist/config/types.models.d.ts +54 -0
  156. package/dist/config/types.models.js +2 -0
  157. package/dist/config/types.models.js.map +1 -0
  158. package/dist/cron/validation.d.ts +4 -4
  159. package/dist/gateway/hono/app.js +232 -78
  160. package/dist/gateway/hono/app.js.map +1 -1
  161. package/dist/gateway/hono/oauth-async.d.ts +14 -0
  162. package/dist/gateway/hono/oauth-async.js +285 -0
  163. package/dist/gateway/hono/oauth-async.js.map +1 -0
  164. package/dist/gateway/hono/oauth.d.ts +9 -0
  165. package/dist/gateway/hono/oauth.js +157 -0
  166. package/dist/gateway/hono/oauth.js.map +1 -0
  167. package/dist/gateway/hono/sse.js +5 -2
  168. package/dist/gateway/hono/sse.js.map +1 -1
  169. package/dist/gateway/process-manager.js +12 -10
  170. package/dist/gateway/process-manager.js.map +1 -1
  171. package/dist/gateway/service.d.ts +6 -2
  172. package/dist/gateway/service.js +20 -6
  173. package/dist/gateway/service.js.map +1 -1
  174. package/dist/gateway/static/root/assets/flow-BqIEBwW6.js +2 -0
  175. package/dist/gateway/static/root/assets/flow-BqIEBwW6.js.map +1 -0
  176. package/dist/gateway/static/root/assets/main-Br2tw-87.js +5168 -0
  177. package/dist/gateway/static/root/assets/main-Br2tw-87.js.map +1 -0
  178. package/dist/gateway/static/root/assets/main-DwlbPf8Z.css +1 -0
  179. package/dist/gateway/static/root/index.html +2 -2
  180. package/dist/plugins/index.d.ts +0 -2
  181. package/dist/plugins/index.js +0 -2
  182. package/dist/plugins/index.js.map +1 -1
  183. package/dist/plugins/types.d.ts +0 -2
  184. package/dist/plugins/types.js +0 -2
  185. package/dist/plugins/types.js.map +1 -1
  186. package/dist/providers/index.d.ts +50 -22
  187. package/dist/providers/index.js +276 -50
  188. package/dist/providers/index.js.map +1 -1
  189. package/dist/providers/model-registry.d.ts +84 -0
  190. package/dist/providers/model-registry.js +385 -0
  191. package/dist/providers/model-registry.js.map +1 -0
  192. package/dist/types/providers.d.ts +2 -63
  193. package/dist/types/providers.js +1 -1
  194. package/dist/utils/__tests__/frontmatter.test.d.ts +4 -0
  195. package/dist/utils/__tests__/frontmatter.test.js +150 -0
  196. package/dist/utils/__tests__/frontmatter.test.js.map +1 -0
  197. package/dist/utils/diagnostic-events.d.ts +230 -0
  198. package/dist/utils/diagnostic-events.js +189 -0
  199. package/dist/utils/diagnostic-events.js.map +1 -0
  200. package/dist/utils/frontmatter.d.ts +0 -1
  201. package/dist/utils/frontmatter.js +15 -79
  202. package/dist/utils/frontmatter.js.map +1 -1
  203. package/dist/utils/log-stream.d.ts +95 -0
  204. package/dist/utils/log-stream.js +229 -0
  205. package/dist/utils/log-stream.js.map +1 -0
  206. package/dist/utils/logger.d.ts +5 -0
  207. package/dist/utils/logger.js +25 -0
  208. package/dist/utils/logger.js.map +1 -1
  209. package/dist/utils/redact.d.ts +73 -0
  210. package/dist/utils/redact.js +245 -0
  211. package/dist/utils/redact.js.map +1 -0
  212. package/package.json +6 -4
  213. package/skills/find-skills/SKILL.md +0 -9
  214. package/dist/__tests__/core.test.js +0 -72
  215. package/dist/__tests__/core.test.js.map +0 -1
  216. package/dist/agent/model-manager.js.map +0 -1
  217. package/dist/cli/commands/configure.d.ts +0 -1
  218. package/dist/cli/commands/configure.js +0 -173
  219. package/dist/cli/commands/configure.js.map +0 -1
  220. package/dist/cli/commands/gateway-daemon.d.ts +0 -1
  221. package/dist/cli/commands/gateway-daemon.js +0 -141
  222. package/dist/cli/commands/gateway-daemon.js.map +0 -1
  223. package/dist/config/__tests__/diff.test.d.ts +0 -1
  224. package/dist/config/__tests__/diff.test.js +0 -192
  225. package/dist/config/__tests__/diff.test.js.map +0 -1
  226. package/dist/config/__tests__/loader.test.d.ts +0 -1
  227. package/dist/config/__tests__/loader.test.js +0 -356
  228. package/dist/config/__tests__/loader.test.js.map +0 -1
  229. package/dist/config/__tests__/paths.test.d.ts +0 -1
  230. package/dist/config/__tests__/paths.test.js +0 -192
  231. package/dist/config/__tests__/paths.test.js.map +0 -1
  232. package/dist/config/__tests__/reload.test.d.ts +0 -1
  233. package/dist/config/__tests__/reload.test.js +0 -374
  234. package/dist/config/__tests__/reload.test.js.map +0 -1
  235. package/dist/config/__tests__/rules.test.d.ts +0 -1
  236. package/dist/config/__tests__/rules.test.js +0 -204
  237. package/dist/config/__tests__/rules.test.js.map +0 -1
  238. package/dist/config/__tests__/schema.test.d.ts +0 -1
  239. package/dist/config/__tests__/schema.test.js +0 -672
  240. package/dist/config/__tests__/schema.test.js.map +0 -1
  241. package/dist/daemon/background-start.d.ts +0 -33
  242. package/dist/daemon/background-start.js +0 -89
  243. package/dist/daemon/background-start.js.map +0 -1
  244. package/dist/daemon/gateway-manager.d.ts +0 -87
  245. package/dist/daemon/gateway-manager.js +0 -324
  246. package/dist/daemon/gateway-manager.js.map +0 -1
  247. package/dist/daemon/index.d.ts +0 -5
  248. package/dist/daemon/index.js +0 -6
  249. package/dist/daemon/index.js.map +0 -1
  250. package/dist/gateway/static/root/assets/main-DevbZW9K.js +0 -2227
  251. package/dist/gateway/static/root/assets/main-DevbZW9K.js.map +0 -1
  252. package/dist/gateway/static/root/assets/main-DxZg1Nmz.css +0 -1
  253. package/dist/providers/__tests__/registry.test.d.ts +0 -1
  254. package/dist/providers/__tests__/registry.test.js +0 -110
  255. package/dist/providers/__tests__/registry.test.js.map +0 -1
  256. package/dist/providers/api-strategies.d.ts +0 -15
  257. package/dist/providers/api-strategies.js +0 -96
  258. package/dist/providers/api-strategies.js.map +0 -1
  259. package/dist/providers/auto-discovery.d.ts +0 -84
  260. package/dist/providers/auto-discovery.js +0 -236
  261. package/dist/providers/auto-discovery.js.map +0 -1
  262. package/dist/providers/config.d.ts +0 -25
  263. package/dist/providers/config.js +0 -42
  264. package/dist/providers/config.js.map +0 -1
  265. package/dist/providers/model-catalog.d.ts +0 -205
  266. package/dist/providers/model-catalog.js +0 -1071
  267. package/dist/providers/model-catalog.js.map +0 -1
  268. package/dist/providers/models-dev-data.d.ts +0 -11
  269. package/dist/providers/models-dev-data.js +0 -1035
  270. package/dist/providers/models-dev-data.js.map +0 -1
  271. package/dist/providers/models-dev.d.ts +0 -30
  272. package/dist/providers/models-dev.js +0 -42
  273. package/dist/providers/models-dev.js.map +0 -1
  274. package/dist/providers/pi-ai.d.ts +0 -62
  275. package/dist/providers/pi-ai.js +0 -221
  276. package/dist/providers/pi-ai.js.map +0 -1
  277. package/dist/providers/provider-catalog.d.ts +0 -173
  278. package/dist/providers/provider-catalog.js +0 -834
  279. package/dist/providers/provider-catalog.js.map +0 -1
  280. package/dist/providers/registry.d.ts +0 -155
  281. package/dist/providers/registry.js +0 -524
  282. package/dist/providers/registry.js.map +0 -1
  283. package/dist/providers/types.d.ts +0 -95
  284. package/dist/providers/types.js +0 -7
  285. package/dist/providers/types.js.map +0 -1
  286. package/dist/session/chat-manager.d.ts +0 -49
  287. package/dist/session/chat-manager.js +0 -167
  288. package/dist/session/chat-manager.js.map +0 -1
  289. package/dist/session/chat-types.d.ts +0 -53
  290. package/dist/session/chat-types.js +0 -63
  291. package/dist/session/chat-types.js.map +0 -1
  292. /package/dist/{__tests__/core.test.d.ts → cli/commands/setup.d.ts} +0 -0
package/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # 🐈 xopcbot: Ultra-Lightweight Personal AI Assistant
2
2
 
3
- [中文](./README.zh-CN.md) | English
4
-
5
3
  <div align="center">
6
4
  <p>
7
5
  <strong>An ultra-lightweight, plugin-driven personal AI assistant built with Node.js and TypeScript.</strong>
@@ -16,106 +14,113 @@
16
14
  <a href="#">
17
15
  <img src="https://img.shields.io/badge/Node-%3E%3D22.0.0-brightgreen" alt="Node">
18
16
  </a>
19
- <a href="#">
20
- <img src="https://img.shields.io/badge/TypeScript-5.x-blue" alt="TypeScript">
21
- </a>
22
17
  <a href="#">
23
18
  <img src="https://img.shields.io/badge/License-MIT-green" alt="License">
24
19
  </a>
25
20
  </p>
26
21
  </div>
27
22
 
28
- **xopcbot** provides the core functionality of a personal AI agent in a minimal footprint (~6,000 lines of TypeScript). It's designed to be simple, extensible, and easy to understand.
23
+ ## What can xopcbot do?
29
24
 
30
- ## Features
25
+ xopcbot is your personal AI assistant that runs locally. It can help you with:
31
26
 
32
- - **🤖 Unified LLM API** - Supports 20+ providers (OpenAI, Anthropic, Google, Groq, DeepSeek, MiniMax, Qwen, Kimi, etc.)
33
- - **🔌 Extensible Plugins** - Add custom tools, hooks, and commands with hot-reloading
34
- - **📱 Multi-Channel Support** - Telegram, WhatsApp, Feishu/Lark, or Web UI
35
- - **🧠 Persistent Memory** - Conversation history with automatic context compaction
36
- - **📂 Session Management** - Browse, search, archive, and manage conversations via CLI or Web UI
37
- - **🔧 Rich Built-in Tools** - Filesystem, shell, web search, grep, find, edit, and more
38
- - **⏰ Scheduled Tasks** - Cron-based automation
39
- - **🖥️ Powerful CLI** - Manage agent, config, and plugins from command line
40
- - **🌐 Modern Web UI** - Chat, sessions, cron, subagents, logs, and settings
27
+ | Use Case | Example |
28
+ |----------|---------|
29
+ | **Coding assistant** | Debug code, explain snippets, write functions |
30
+ | **Task automation** | Schedule recurring tasks with cron |
31
+ | **File operations** | Search, read, edit files in your workspace |
32
+ | **Web research** | Search the web and summarize results |
33
+ | **Multi-channel chat** | Talk via Telegram, WhatsApp, Feishu, or Web UI |
34
+
35
+ ```bash
36
+ # Chat interactively in your terminal
37
+ xopcbot agent -i
38
+
39
+ # Or send a single message
40
+ xopcbot agent -m "Explain what this code does: function foo() { return 42; }"
41
+
42
+ # Let xopcbot help with a git task
43
+ xopcbot agent -m "Show me the recent commits and create a PR summary"
44
+ ```
41
45
 
42
46
  ---
43
47
 
44
48
  ## 🚀 Quick Start
45
49
 
46
- ### Option 1: Install from npm
50
+ ### 1️⃣ Install
47
51
 
48
52
  ```bash
49
- # Install globally
53
+ # From npm (recommended)
50
54
  npm install -g @xopcai/xopcbot
51
55
 
52
- # Configure (interactive setup)
53
- xopcbot configure
54
-
55
- # Start chatting!
56
- xopcbot agent -i
56
+ # Or from source
57
+ git clone https://github.com/xopcai/xopcbot.git
58
+ cd xopcbot && npm install && npm build
57
59
  ```
58
60
 
59
- ### Option 2: Build from source
61
+ ### 2️⃣ Setup (interactive wizard)
60
62
 
61
63
  ```bash
62
- # Clone and install
63
- git clone https://github.com/xopcai/xopcbot.git
64
- cd xopcbot
65
- pnpm install
64
+ xopcbot onboard
65
+ # or: npm run dev -- onboard
66
+ ```
66
67
 
67
- # Configure (interactive setup)
68
- pnpm run dev -- configure
68
+ The wizard will guide you through:
69
+ - Choosing your preferred AI model (20+ providers supported)
70
+ - Configuring API keys
71
+ - Setting up chat channels (Telegram, WhatsApp, etc.)
69
72
 
70
- # Start chatting!
71
- pnpm run dev -- agent -i
72
- ```
73
+ > **Tip:** Use `xopcbot onboard --quick` for quick model setup only.
74
+
75
+ ### 3️⃣ Start chatting!
73
76
 
74
- > **Tip:** Run `xopcbot configure` (or `pnpm run dev -- configure`) to set up your LLM provider API key interactively.
77
+ ```bash
78
+ # Interactive chat mode
79
+ xopcbot agent -i
80
+
81
+ # Or use specific channels
82
+ xopcbot agent -m "Hello!" --channel telegram --chat-id 123456
83
+ ```
75
84
 
76
85
  ---
77
86
 
78
87
  ## 📖 Documentation
79
88
 
80
- Full documentation is available at **[xopcai.github.io/xopcbot](https://xopcai.github.io/xopcbot/)**
81
-
82
89
  | Guide | Description |
83
90
  |-------|-------------|
84
91
  | [Getting Started](https://xopcai.github.io/xopcbot/getting-started) | Setup and basic usage |
85
92
  | [Configuration](https://xopcai.github.io/xopcbot/configuration) | Full config reference |
86
93
  | [CLI Reference](https://xopcai.github.io/xopcbot/cli) | All available commands |
87
94
  | [Channels](https://xopcai.github.io/xopcbot/channels) | Telegram, WhatsApp, Feishu setup |
88
- | [Plugins](https://xopcai.github.io/xopcbot/plugins) | Build your own plugins |
89
95
  | [Tools](https://xopcai.github.io/xopcbot/tools) | Built-in tools reference |
90
- | [Architecture](https://xopcai.github.io/xopcbot/architecture) | Under the hood |
91
96
 
92
97
  ---
93
98
 
94
- ## 💬 Supported Channels
99
+ ## 🔌 Supported Channels
95
100
 
96
- | Channel | Status | Description |
97
- |---------|--------|-------------|
98
- | Telegram | ✅ | Bot API with polling/webhook |
99
- | WhatsApp | ✅ | Baileys WebSocket |
100
- | Feishu/Lark | ✅ | WebSocket events |
101
- | Web UI | ✅ | Modern browser interface |
101
+ | Channel | Status | Install |
102
+ |---------|--------|---------|
103
+ | Telegram | ✅ | [Setup Guide](https://xopcai.github.io/xopcbot/channels#telegram) |
104
+ | WhatsApp | ✅ | [Setup Guide](https://xopcai.github.io/xopcbot/channels#whatsapp) |
105
+ | Feishu/Lark | ✅ | [Setup Guide](https://xopcai.github.io/xopcbot/channels#feishu) |
106
+ | Web UI | ✅ | Built-in, run `xopcbot gateway` |
102
107
 
103
108
  ---
104
109
 
105
110
  ## 🛠️ Development
106
111
 
107
112
  ```bash
108
- # Development
109
- pnpm run dev
113
+ # Development (with hot reload)
114
+ npm run dev
110
115
 
111
- # Build
112
- pnpm run build
116
+ # Build for production
117
+ npm run build
113
118
 
114
- # Test
115
- pnpm test
119
+ # Run tests
120
+ npm test
116
121
 
117
122
  # Lint
118
- pnpm run lint
123
+ npm run lint
119
124
  ```
120
125
 
121
126
  ---
package/README.zh-CN.md CHANGED
@@ -14,106 +14,113 @@
14
14
  <a href="#">
15
15
  <img src="https://img.shields.io/badge/Node-%3E%3D22.0.0-brightgreen" alt="Node">
16
16
  </a>
17
- <a href="#">
18
- <img src="https://img.shields.io/badge/TypeScript-5.x-blue" alt="TypeScript">
19
- </a>
20
17
  <a href="#">
21
18
  <img src="https://img.shields.io/badge/License-MIT-green" alt="License">
22
19
  </a>
23
20
  </p>
24
21
  </div>
25
22
 
26
- **xopcbot** 以极简的代码量(约 6,000 行 TypeScript)提供个人 AI 代理的核心功能。设计简洁、可扩展、易于理解。
23
+ ## xopcbot 能做什么?
24
+
25
+ xopcbot 是运行在本地 的个人 AI 助手,可以帮助你:
26
+
27
+ | 使用场景 | 示例 |
28
+ |----------|------|
29
+ | **编程助手** | 调试代码、解释代码片段、编写函数 |
30
+ | **任务自动化** | 使用 cron 设置定时任务 |
31
+ | **文件操作** | 在工作区中搜索、读取、编辑文件 |
32
+ | **网络搜索** | 搜索网页并总结结果 |
33
+ | **多渠道聊天** | 通过 Telegram、WhatsApp、飞书或网页 UI 交流 |
34
+
35
+ ```bash
36
+ # 在终端中交互式聊天
37
+ xopcbot agent -i
27
38
 
28
- ## ✨ 特性
39
+ # 或发送单条消息
40
+ xopcbot agent -m "解释这段代码:function foo() { return 42; }"
29
41
 
30
- - **🤖 统一 LLM API** - 支持 20+ 提供商(OpenAI、Anthropic、Google、Groq、DeepSeek、Minimax、Qwen、Kimi 等)
31
- - **🔌 可扩展插件** - 支持热加载的自定义工具、钩子和命令
32
- - **📱 多渠道支持** - Telegram、WhatsApp、飞书/Lark 或 Web UI
33
- - **🧠 持久记忆** - 对话历史,自动上下文压缩
34
- - **📂 会话管理** - 通过 CLI 或 Web UI 浏览、搜索、归档和管理对话
35
- - **🔧 丰富的内置工具** - 文件系统、Shell、Web 搜索、grep、查找、编辑等
36
- - **⏰ 定时任务** - 基于 Cron 的自动化
37
- - **🖥️ 强大的 CLI** - 从命令行管理代理、配置和插件
38
- - **🌐 现代 Web UI** - 聊天、会话、Cron、子代理、日志和设置
42
+ # xopcbot 帮你处理 git 任务
43
+ xopcbot agent -m "查看最近的提交并创建 PR 摘要"
44
+ ```
39
45
 
40
46
  ---
41
47
 
42
48
  ## 🚀 快速开始
43
49
 
44
- ### 方式一:从 npm 安装
50
+ ### 1️⃣ 安装
45
51
 
46
52
  ```bash
47
- # 全局安装
53
+ # 从 npm 安装(推荐)
48
54
  npm install -g @xopcai/xopcbot
49
55
 
50
- # 配置(交互式设置)
51
- xopcbot configure
52
-
53
- # 开始聊天!
54
- xopcbot agent -i
56
+ # 或从源码构建
57
+ git clone https://github.com/xopcai/xopcbot.git
58
+ cd xopcbot && npm install && npm build
55
59
  ```
56
60
 
57
- ### 方式二:从源码构建
61
+ ### 2️⃣ 配置(交互式向导)
58
62
 
59
63
  ```bash
60
- # 克隆并安装
61
- git clone https://github.com/xopcai/xopcbot.git
62
- cd xopcbot
63
- pnpm install
64
+ xopcbot onboard
65
+ # 或: npm run dev -- onboard
66
+ ```
64
67
 
65
- # 配置(交互式设置)
66
- pnpm run dev -- configure
68
+ 向导会引导你完成:
69
+ - 选择喜欢的 AI 模型(支持 20+ 提供商)
70
+ - 配置 API 密钥
71
+ - 设置聊天渠道(Telegram、WhatsApp 等)
67
72
 
68
- # 开始聊天!
69
- pnpm run dev -- agent -i
70
- ```
73
+ > **提示:** 使用 `xopcbot onboard --quick` 可快速设置模型。
74
+
75
+ ### 3️⃣ 开始聊天!
71
76
 
72
- > **提示:** 运行 `xopcbot configure`(或 `pnpm run dev -- configure`)交互式设置 LLM 提供商 API 密钥。
77
+ ```bash
78
+ # 交互式聊天模式
79
+ xopcbot agent -i
80
+
81
+ # 或使用特定渠道
82
+ xopcbot agent -m "你好!" --channel telegram --chat-id 123456
83
+ ```
73
84
 
74
85
  ---
75
86
 
76
87
  ## 📖 文档
77
88
 
78
- 完整文档请访问 **[xopcai.github.io/xopcbot](https://xopcai.github.io/xopcbot/)**
79
-
80
89
  | 指南 | 描述 |
81
90
  |------|------|
82
91
  | [快速开始](https://xopcai.github.io/xopcbot/getting-started) | 安装和基本用法 |
83
92
  | [配置](https://xopcai.github.io/xopcbot/configuration) | 完整配置参考 |
84
93
  | [CLI 参考](https://xopcai.github.io/xopcbot/cli) | 所有可用命令 |
85
94
  | [渠道](https://xopcai.github.io/xopcbot/channels) | Telegram、WhatsApp、飞书设置 |
86
- | [插件](https://xopcai.github.io/xopcbot/plugins) | 构建你自己的插件 |
87
95
  | [工具](https://xopcai.github.io/xopcbot/tools) | 内置工具参考 |
88
- | [架构](https://xopcai.github.io/xopcbot/architecture) | 底层实现 |
89
96
 
90
97
  ---
91
98
 
92
- ## 💬 支持的渠道
99
+ ## 🔌 支持的渠道
93
100
 
94
- | 渠道 | 状态 | 描述 |
101
+ | 渠道 | 状态 | 安装 |
95
102
  |------|------|------|
96
- | Telegram | ✅ | Bot API,支持轮询/webhook |
97
- | WhatsApp | ✅ | Baileys WebSocket |
98
- | 飞书/Lark | ✅ | WebSocket 事件 |
99
- | Web UI | ✅ | 现代浏览器界面 |
103
+ | Telegram | ✅ | [设置指南](https://xopcai.github.io/xopcbot/channels#telegram) |
104
+ | WhatsApp | ✅ | [设置指南](https://xopcai.github.io/xopcbot/channels#whatsapp) |
105
+ | 飞书/Lark | ✅ | [设置指南](https://xopcai.github.io/xopcbot/channels#feishu) |
106
+ | 网页 UI | ✅ | 内置,运行 `xopcbot gateway` 即可 |
100
107
 
101
108
  ---
102
109
 
103
110
  ## 🛠️ 开发
104
111
 
105
112
  ```bash
106
- # 开发模式
107
- pnpm run dev
113
+ # 开发模式(热重载)
114
+ npm run dev
108
115
 
109
- # 构建
110
- pnpm run build
116
+ # 构建生产版本
117
+ npm run build
111
118
 
112
- # 测试
113
- pnpm test
119
+ # 运行测试
120
+ npm test
114
121
 
115
122
  # 代码检查
116
- pnpm run lint
123
+ npm run lint
117
124
  ```
118
125
 
119
126
  ---
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Agent Media Processing Tests
3
+ *
4
+ * Tests for media message handling in AgentService.
5
+ */
6
+ export {};