mozi-bot 1.0.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 (259) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +467 -0
  3. package/dist/agents/agent.d.ts +118 -0
  4. package/dist/agents/agent.d.ts.map +1 -0
  5. package/dist/agents/agent.js +686 -0
  6. package/dist/agents/agent.js.map +1 -0
  7. package/dist/agents/compaction.d.ts +78 -0
  8. package/dist/agents/compaction.d.ts.map +1 -0
  9. package/dist/agents/compaction.js +350 -0
  10. package/dist/agents/compaction.js.map +1 -0
  11. package/dist/agents/failover-error.d.ts +42 -0
  12. package/dist/agents/failover-error.d.ts.map +1 -0
  13. package/dist/agents/failover-error.js +171 -0
  14. package/dist/agents/failover-error.js.map +1 -0
  15. package/dist/agents/index.d.ts +10 -0
  16. package/dist/agents/index.d.ts.map +1 -0
  17. package/dist/agents/index.js +10 -0
  18. package/dist/agents/index.js.map +1 -0
  19. package/dist/agents/model-fallback.d.ts +54 -0
  20. package/dist/agents/model-fallback.d.ts.map +1 -0
  21. package/dist/agents/model-fallback.js +227 -0
  22. package/dist/agents/model-fallback.js.map +1 -0
  23. package/dist/agents/session-store.d.ts +53 -0
  24. package/dist/agents/session-store.d.ts.map +1 -0
  25. package/dist/agents/session-store.js +217 -0
  26. package/dist/agents/session-store.js.map +1 -0
  27. package/dist/agents/system-prompt.d.ts +29 -0
  28. package/dist/agents/system-prompt.d.ts.map +1 -0
  29. package/dist/agents/system-prompt.js +299 -0
  30. package/dist/agents/system-prompt.js.map +1 -0
  31. package/dist/channels/common/base.d.ts +40 -0
  32. package/dist/channels/common/base.d.ts.map +1 -0
  33. package/dist/channels/common/base.js +23 -0
  34. package/dist/channels/common/base.js.map +1 -0
  35. package/dist/channels/common/index.d.ts +21 -0
  36. package/dist/channels/common/index.d.ts.map +1 -0
  37. package/dist/channels/common/index.js +66 -0
  38. package/dist/channels/common/index.js.map +1 -0
  39. package/dist/channels/dingtalk/api.d.ts +30 -0
  40. package/dist/channels/dingtalk/api.d.ts.map +1 -0
  41. package/dist/channels/dingtalk/api.js +149 -0
  42. package/dist/channels/dingtalk/api.js.map +1 -0
  43. package/dist/channels/dingtalk/events.d.ts +80 -0
  44. package/dist/channels/dingtalk/events.d.ts.map +1 -0
  45. package/dist/channels/dingtalk/events.js +92 -0
  46. package/dist/channels/dingtalk/events.js.map +1 -0
  47. package/dist/channels/dingtalk/index.d.ts +51 -0
  48. package/dist/channels/dingtalk/index.d.ts.map +1 -0
  49. package/dist/channels/dingtalk/index.js +231 -0
  50. package/dist/channels/dingtalk/index.js.map +1 -0
  51. package/dist/channels/dingtalk/stream.d.ts +31 -0
  52. package/dist/channels/dingtalk/stream.d.ts.map +1 -0
  53. package/dist/channels/dingtalk/stream.js +116 -0
  54. package/dist/channels/dingtalk/stream.js.map +1 -0
  55. package/dist/channels/feishu/api.d.ts +33 -0
  56. package/dist/channels/feishu/api.d.ts.map +1 -0
  57. package/dist/channels/feishu/api.js +120 -0
  58. package/dist/channels/feishu/api.js.map +1 -0
  59. package/dist/channels/feishu/events.d.ts +87 -0
  60. package/dist/channels/feishu/events.d.ts.map +1 -0
  61. package/dist/channels/feishu/events.js +163 -0
  62. package/dist/channels/feishu/events.js.map +1 -0
  63. package/dist/channels/feishu/index.d.ts +46 -0
  64. package/dist/channels/feishu/index.d.ts.map +1 -0
  65. package/dist/channels/feishu/index.js +207 -0
  66. package/dist/channels/feishu/index.js.map +1 -0
  67. package/dist/channels/feishu/websocket.d.ts +32 -0
  68. package/dist/channels/feishu/websocket.d.ts.map +1 -0
  69. package/dist/channels/feishu/websocket.js +121 -0
  70. package/dist/channels/feishu/websocket.js.map +1 -0
  71. package/dist/channels/index.d.ts +9 -0
  72. package/dist/channels/index.d.ts.map +1 -0
  73. package/dist/channels/index.js +9 -0
  74. package/dist/channels/index.js.map +1 -0
  75. package/dist/cli/index.d.ts +6 -0
  76. package/dist/cli/index.d.ts.map +1 -0
  77. package/dist/cli/index.js +468 -0
  78. package/dist/cli/index.js.map +1 -0
  79. package/dist/commands/index.d.ts +54 -0
  80. package/dist/commands/index.d.ts.map +1 -0
  81. package/dist/commands/index.js +171 -0
  82. package/dist/commands/index.js.map +1 -0
  83. package/dist/config/index.d.ts +201 -0
  84. package/dist/config/index.d.ts.map +1 -0
  85. package/dist/config/index.js +261 -0
  86. package/dist/config/index.js.map +1 -0
  87. package/dist/gateway/index.d.ts +5 -0
  88. package/dist/gateway/index.d.ts.map +1 -0
  89. package/dist/gateway/index.js +5 -0
  90. package/dist/gateway/index.js.map +1 -0
  91. package/dist/gateway/server.d.ts +42 -0
  92. package/dist/gateway/server.d.ts.map +1 -0
  93. package/dist/gateway/server.js +235 -0
  94. package/dist/gateway/server.js.map +1 -0
  95. package/dist/hooks/index.d.ts +168 -0
  96. package/dist/hooks/index.d.ts.map +1 -0
  97. package/dist/hooks/index.js +148 -0
  98. package/dist/hooks/index.js.map +1 -0
  99. package/dist/index.d.ts +18 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +29 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/memory/index.d.ts +94 -0
  104. package/dist/memory/index.d.ts.map +1 -0
  105. package/dist/memory/index.js +282 -0
  106. package/dist/memory/index.js.map +1 -0
  107. package/dist/plugins/index.d.ts +57 -0
  108. package/dist/plugins/index.d.ts.map +1 -0
  109. package/dist/plugins/index.js +103 -0
  110. package/dist/plugins/index.js.map +1 -0
  111. package/dist/providers/anthropic-compatible.d.ts +48 -0
  112. package/dist/providers/anthropic-compatible.d.ts.map +1 -0
  113. package/dist/providers/anthropic-compatible.js +380 -0
  114. package/dist/providers/anthropic-compatible.js.map +1 -0
  115. package/dist/providers/base.d.ts +26 -0
  116. package/dist/providers/base.d.ts.map +1 -0
  117. package/dist/providers/base.js +58 -0
  118. package/dist/providers/base.js.map +1 -0
  119. package/dist/providers/custom-openai.d.ts +66 -0
  120. package/dist/providers/custom-openai.d.ts.map +1 -0
  121. package/dist/providers/custom-openai.js +255 -0
  122. package/dist/providers/custom-openai.js.map +1 -0
  123. package/dist/providers/dashscope.d.ts +15 -0
  124. package/dist/providers/dashscope.d.ts.map +1 -0
  125. package/dist/providers/dashscope.js +237 -0
  126. package/dist/providers/dashscope.js.map +1 -0
  127. package/dist/providers/deepseek.d.ts +10 -0
  128. package/dist/providers/deepseek.d.ts.map +1 -0
  129. package/dist/providers/deepseek.js +57 -0
  130. package/dist/providers/deepseek.js.map +1 -0
  131. package/dist/providers/index.d.ts +33 -0
  132. package/dist/providers/index.d.ts.map +1 -0
  133. package/dist/providers/index.js +142 -0
  134. package/dist/providers/index.js.map +1 -0
  135. package/dist/providers/kimi.d.ts +10 -0
  136. package/dist/providers/kimi.d.ts.map +1 -0
  137. package/dist/providers/kimi.js +83 -0
  138. package/dist/providers/kimi.js.map +1 -0
  139. package/dist/providers/minimax.d.ts +20 -0
  140. package/dist/providers/minimax.d.ts.map +1 -0
  141. package/dist/providers/minimax.js +252 -0
  142. package/dist/providers/minimax.js.map +1 -0
  143. package/dist/providers/modelscope.d.ts +15 -0
  144. package/dist/providers/modelscope.d.ts.map +1 -0
  145. package/dist/providers/modelscope.js +237 -0
  146. package/dist/providers/modelscope.js.map +1 -0
  147. package/dist/providers/openai-compatible.d.ts +57 -0
  148. package/dist/providers/openai-compatible.d.ts.map +1 -0
  149. package/dist/providers/openai-compatible.js +193 -0
  150. package/dist/providers/openai-compatible.js.map +1 -0
  151. package/dist/providers/stepfun.d.ts +10 -0
  152. package/dist/providers/stepfun.d.ts.map +1 -0
  153. package/dist/providers/stepfun.js +125 -0
  154. package/dist/providers/stepfun.js.map +1 -0
  155. package/dist/providers/zhipu.d.ts +15 -0
  156. package/dist/providers/zhipu.d.ts.map +1 -0
  157. package/dist/providers/zhipu.js +247 -0
  158. package/dist/providers/zhipu.js.map +1 -0
  159. package/dist/sessions/index.d.ts +6 -0
  160. package/dist/sessions/index.d.ts.map +1 -0
  161. package/dist/sessions/index.js +6 -0
  162. package/dist/sessions/index.js.map +1 -0
  163. package/dist/sessions/store.d.ts +45 -0
  164. package/dist/sessions/store.d.ts.map +1 -0
  165. package/dist/sessions/store.js +268 -0
  166. package/dist/sessions/store.js.map +1 -0
  167. package/dist/sessions/types.d.ts +110 -0
  168. package/dist/sessions/types.d.ts.map +1 -0
  169. package/dist/sessions/types.js +6 -0
  170. package/dist/sessions/types.js.map +1 -0
  171. package/dist/tools/builtin/apply-patch.d.ts +8 -0
  172. package/dist/tools/builtin/apply-patch.d.ts.map +1 -0
  173. package/dist/tools/builtin/apply-patch.js +272 -0
  174. package/dist/tools/builtin/apply-patch.js.map +1 -0
  175. package/dist/tools/builtin/bash.d.ts +25 -0
  176. package/dist/tools/builtin/bash.d.ts.map +1 -0
  177. package/dist/tools/builtin/bash.js +212 -0
  178. package/dist/tools/builtin/bash.js.map +1 -0
  179. package/dist/tools/builtin/browser.d.ts +12 -0
  180. package/dist/tools/builtin/browser.d.ts.map +1 -0
  181. package/dist/tools/builtin/browser.js +693 -0
  182. package/dist/tools/builtin/browser.js.map +1 -0
  183. package/dist/tools/builtin/filesystem.d.ts +29 -0
  184. package/dist/tools/builtin/filesystem.d.ts.map +1 -0
  185. package/dist/tools/builtin/filesystem.js +484 -0
  186. package/dist/tools/builtin/filesystem.js.map +1 -0
  187. package/dist/tools/builtin/image.d.ts +13 -0
  188. package/dist/tools/builtin/image.d.ts.map +1 -0
  189. package/dist/tools/builtin/image.js +126 -0
  190. package/dist/tools/builtin/image.js.map +1 -0
  191. package/dist/tools/builtin/index.d.ts +30 -0
  192. package/dist/tools/builtin/index.d.ts.map +1 -0
  193. package/dist/tools/builtin/index.js +55 -0
  194. package/dist/tools/builtin/index.js.map +1 -0
  195. package/dist/tools/builtin/process-registry.d.ts +71 -0
  196. package/dist/tools/builtin/process-registry.d.ts.map +1 -0
  197. package/dist/tools/builtin/process-registry.js +172 -0
  198. package/dist/tools/builtin/process-registry.js.map +1 -0
  199. package/dist/tools/builtin/process-tool.d.ts +8 -0
  200. package/dist/tools/builtin/process-tool.d.ts.map +1 -0
  201. package/dist/tools/builtin/process-tool.js +279 -0
  202. package/dist/tools/builtin/process-tool.js.map +1 -0
  203. package/dist/tools/builtin/subagent.d.ts +33 -0
  204. package/dist/tools/builtin/subagent.d.ts.map +1 -0
  205. package/dist/tools/builtin/subagent.js +185 -0
  206. package/dist/tools/builtin/subagent.js.map +1 -0
  207. package/dist/tools/builtin/system.d.ts +11 -0
  208. package/dist/tools/builtin/system.d.ts.map +1 -0
  209. package/dist/tools/builtin/system.js +144 -0
  210. package/dist/tools/builtin/system.js.map +1 -0
  211. package/dist/tools/builtin/web.d.ts +9 -0
  212. package/dist/tools/builtin/web.d.ts.map +1 -0
  213. package/dist/tools/builtin/web.js +87 -0
  214. package/dist/tools/builtin/web.js.map +1 -0
  215. package/dist/tools/common.d.ts +45 -0
  216. package/dist/tools/common.d.ts.map +1 -0
  217. package/dist/tools/common.js +129 -0
  218. package/dist/tools/common.js.map +1 -0
  219. package/dist/tools/index.d.ts +8 -0
  220. package/dist/tools/index.d.ts.map +1 -0
  221. package/dist/tools/index.js +8 -0
  222. package/dist/tools/index.js.map +1 -0
  223. package/dist/tools/registry.d.ts +33 -0
  224. package/dist/tools/registry.d.ts.map +1 -0
  225. package/dist/tools/registry.js +174 -0
  226. package/dist/tools/registry.js.map +1 -0
  227. package/dist/tools/types.d.ts +58 -0
  228. package/dist/tools/types.d.ts.map +1 -0
  229. package/dist/tools/types.js +11 -0
  230. package/dist/tools/types.js.map +1 -0
  231. package/dist/types/index.d.ts +280 -0
  232. package/dist/types/index.d.ts.map +1 -0
  233. package/dist/types/index.js +34 -0
  234. package/dist/types/index.js.map +1 -0
  235. package/dist/utils/index.d.ts +35 -0
  236. package/dist/utils/index.d.ts.map +1 -0
  237. package/dist/utils/index.js +114 -0
  238. package/dist/utils/index.js.map +1 -0
  239. package/dist/utils/logger.d.ts +24 -0
  240. package/dist/utils/logger.d.ts.map +1 -0
  241. package/dist/utils/logger.js +94 -0
  242. package/dist/utils/logger.js.map +1 -0
  243. package/dist/web/index.d.ts +7 -0
  244. package/dist/web/index.d.ts.map +1 -0
  245. package/dist/web/index.js +7 -0
  246. package/dist/web/index.js.map +1 -0
  247. package/dist/web/static.d.ts +12 -0
  248. package/dist/web/static.d.ts.map +1 -0
  249. package/dist/web/static.js +1260 -0
  250. package/dist/web/static.js.map +1 -0
  251. package/dist/web/types.d.ts +95 -0
  252. package/dist/web/types.d.ts.map +1 -0
  253. package/dist/web/types.js +5 -0
  254. package/dist/web/types.js.map +1 -0
  255. package/dist/web/websocket.d.ts +58 -0
  256. package/dist/web/websocket.d.ts.map +1 -0
  257. package/dist/web/websocket.js +371 -0
  258. package/dist/web/websocket.js.map +1 -0
  259. package/package.json +89 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.js","sourceRoot":"","sources":["../../src/web/static.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Web 模块类型定义
3
+ */
4
+ /** WebSocket 请求帧 */
5
+ export interface WsRequestFrame {
6
+ type: "req";
7
+ id: string;
8
+ method: string;
9
+ params?: unknown;
10
+ }
11
+ /** WebSocket 响应帧 */
12
+ export interface WsResponseFrame {
13
+ type: "res";
14
+ id: string;
15
+ ok: boolean;
16
+ payload?: unknown;
17
+ error?: {
18
+ code: string;
19
+ message: string;
20
+ details?: unknown;
21
+ };
22
+ }
23
+ /** WebSocket 事件帧 */
24
+ export interface WsEventFrame {
25
+ type: "event";
26
+ event: string;
27
+ payload?: unknown;
28
+ }
29
+ /** WebSocket 帧类型 */
30
+ export type WsFrame = WsRequestFrame | WsResponseFrame | WsEventFrame;
31
+ /** 聊天消息 */
32
+ export interface ChatMessage {
33
+ id: string;
34
+ role: "user" | "assistant" | "system";
35
+ content: string;
36
+ timestamp: number;
37
+ }
38
+ /** 聊天请求参数 */
39
+ export interface ChatSendParams {
40
+ message: string;
41
+ sessionKey?: string;
42
+ }
43
+ /** 会话列表请求参数 */
44
+ export interface SessionsListParams {
45
+ limit?: number;
46
+ activeMinutes?: number;
47
+ search?: string;
48
+ }
49
+ /** 会话历史请求参数 */
50
+ export interface SessionsHistoryParams {
51
+ sessionKey: string;
52
+ }
53
+ /** 会话删除请求参数 */
54
+ export interface SessionsDeleteParams {
55
+ sessionKey: string;
56
+ }
57
+ /** 会话重置请求参数 */
58
+ export interface SessionsResetParams {
59
+ sessionKey: string;
60
+ }
61
+ /** 恢复会话请求参数 */
62
+ export interface SessionsRestoreParams {
63
+ sessionKey: string;
64
+ }
65
+ /** 聊天流事件 */
66
+ export interface ChatDeltaEvent {
67
+ sessionId: string;
68
+ delta: string;
69
+ done: boolean;
70
+ }
71
+ /** 会话信息 */
72
+ export interface SessionInfo {
73
+ id: string;
74
+ messageCount: number;
75
+ lastUpdate: number;
76
+ provider: string;
77
+ model: string;
78
+ }
79
+ /** 系统状态 */
80
+ export interface SystemStatus {
81
+ version: string;
82
+ uptime: number;
83
+ providers: Array<{
84
+ id: string;
85
+ name: string;
86
+ available: boolean;
87
+ }>;
88
+ channels: Array<{
89
+ id: string;
90
+ name: string;
91
+ connected: boolean;
92
+ }>;
93
+ sessions: number;
94
+ }
95
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/web/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAoB;AACpB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,oBAAoB;AACpB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,oBAAoB;AACpB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,oBAAoB;AACpB,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,eAAe,GAAG,YAAY,CAAC;AAEtE,WAAW;AACX,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAe;AACf,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAe;AACf,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAe;AACf,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAe;AACf,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAe;AACf,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,YAAY;AACZ,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAED,WAAW;AACX,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,WAAW;AACX,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Web 模块类型定义
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/web/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * WebSocket 服务器 - 提供实时通信
3
+ */
4
+ import type { Server as HttpServer } from "http";
5
+ import type { Agent } from "../agents/agent.js";
6
+ import type { MoziConfig } from "../types/index.js";
7
+ /** WebSocket 服务选项 */
8
+ export interface WsServerOptions {
9
+ server: HttpServer;
10
+ agent: Agent;
11
+ config: MoziConfig;
12
+ }
13
+ /** WebSocket 服务器类 */
14
+ export declare class WsServer {
15
+ private wss;
16
+ private clients;
17
+ private agent;
18
+ private config;
19
+ private startTime;
20
+ constructor(options: WsServerOptions);
21
+ /** 处理新连接 */
22
+ private handleConnection;
23
+ /** 处理消息 */
24
+ private handleMessage;
25
+ /** 处理请求 */
26
+ private handleRequest;
27
+ /** 确保客户端有 session,如果没有则创建 */
28
+ private ensureSession;
29
+ /** 处理聊天发送 */
30
+ private handleChatSend;
31
+ /** 处理清除会话 */
32
+ private handleChatClear;
33
+ /** 处理会话列表 */
34
+ private handleSessionsList;
35
+ /** 处理获取会话历史 */
36
+ private handleSessionsHistory;
37
+ /** 处理删除会话 */
38
+ private handleSessionsDelete;
39
+ /** 处理重置会话 */
40
+ private handleSessionsReset;
41
+ /** 处理恢复会话 */
42
+ private handleSessionsRestore;
43
+ /** 获取系统状态 */
44
+ private getSystemStatus;
45
+ /** 获取会话信息 */
46
+ private getSessionInfo;
47
+ /** 发送响应 */
48
+ private sendResponse;
49
+ /** 发送事件 */
50
+ private sendEvent;
51
+ /** 广播事件 */
52
+ broadcast(event: string, payload?: unknown): void;
53
+ /** 心跳检测 */
54
+ private checkHeartbeat;
55
+ /** 关闭服务器 */
56
+ close(): void;
57
+ }
58
+ //# sourceMappingURL=websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/web/websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAiBjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAepD,qBAAqB;AACrB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,qBAAqB;AACrB,qBAAa,QAAQ;IACnB,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAAc;gBAEnB,OAAO,EAAE,eAAe;IAmBpC,YAAY;YACE,gBAAgB;IAuC9B,WAAW;YACG,aAAa;IAY3B,WAAW;YACG,aAAa;IAsD3B,6BAA6B;YACf,aAAa;IAe3B,aAAa;YACC,cAAc;IAgF5B,aAAa;YACC,eAAe;IA0B7B,aAAa;YACC,kBAAkB;IAUhC,eAAe;YACD,qBAAqB;IAcnC,aAAa;YACC,oBAAoB;IAMlC,aAAa;YACC,mBAAmB;IAUjC,aAAa;YACC,qBAAqB;IAiCnC,aAAa;IACb,OAAO,CAAC,eAAe;IAsBvB,aAAa;IACb,OAAO,CAAC,cAAc;IAoBtB,WAAW;IACX,OAAO,CAAC,YAAY;IAWpB,WAAW;IACX,OAAO,CAAC,SAAS;IAKjB,WAAW;IACX,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAWjD,WAAW;IACX,OAAO,CAAC,cAAc;IAetB,YAAY;IACZ,KAAK,IAAI,IAAI;CAOd"}
@@ -0,0 +1,371 @@
1
+ /**
2
+ * WebSocket 服务器 - 提供实时通信
3
+ */
4
+ import { WebSocketServer, WebSocket } from "ws";
5
+ import { getChildLogger } from "../utils/logger.js";
6
+ import { generateId } from "../utils/index.js";
7
+ import { getAllProviders } from "../providers/index.js";
8
+ import { getAllChannels } from "../channels/index.js";
9
+ import { getSessionStore } from "../sessions/index.js";
10
+ const logger = getChildLogger("websocket");
11
+ /** WebSocket 服务器类 */
12
+ export class WsServer {
13
+ wss;
14
+ clients = new Map();
15
+ agent;
16
+ config;
17
+ startTime = Date.now();
18
+ constructor(options) {
19
+ this.agent = options.agent;
20
+ this.config = options.config;
21
+ this.wss = new WebSocketServer({
22
+ server: options.server,
23
+ path: "/ws",
24
+ });
25
+ this.wss.on("connection", (ws, req) => {
26
+ this.handleConnection(ws);
27
+ });
28
+ // 心跳检测
29
+ setInterval(() => this.checkHeartbeat(), 30000);
30
+ logger.info("WebSocket server initialized");
31
+ }
32
+ /** 处理新连接 */
33
+ async handleConnection(ws) {
34
+ const clientId = generateId("client");
35
+ // 不立即创建 session,等待客户端发送 sessions.restore 或 chat.send 时再创建
36
+ const client = {
37
+ id: clientId,
38
+ ws,
39
+ sessionKey: null,
40
+ sessionId: null,
41
+ lastPing: Date.now(),
42
+ };
43
+ this.clients.set(clientId, client);
44
+ logger.info({ clientId }, "Client connected");
45
+ // 发送欢迎消息 - 不包含 session 信息,等待客户端决定
46
+ this.sendEvent(ws, "connected", {
47
+ clientId,
48
+ version: "1.0.0",
49
+ });
50
+ ws.on("message", (data) => {
51
+ this.handleMessage(client, data.toString());
52
+ });
53
+ ws.on("close", () => {
54
+ this.clients.delete(clientId);
55
+ logger.info({ clientId }, "Client disconnected");
56
+ });
57
+ ws.on("error", (error) => {
58
+ logger.error({ clientId, error }, "WebSocket error");
59
+ });
60
+ ws.on("pong", () => {
61
+ client.lastPing = Date.now();
62
+ });
63
+ }
64
+ /** 处理消息 */
65
+ async handleMessage(client, data) {
66
+ try {
67
+ const frame = JSON.parse(data);
68
+ if (frame.type === "req") {
69
+ await this.handleRequest(client, frame);
70
+ }
71
+ }
72
+ catch (error) {
73
+ logger.error({ error, data }, "Failed to handle message");
74
+ }
75
+ }
76
+ /** 处理请求 */
77
+ async handleRequest(client, frame) {
78
+ const { id, method, params } = frame;
79
+ try {
80
+ let result;
81
+ switch (method) {
82
+ case "chat.send":
83
+ result = await this.handleChatSend(client, params);
84
+ break;
85
+ case "chat.clear":
86
+ result = await this.handleChatClear(client);
87
+ break;
88
+ case "sessions.list":
89
+ result = await this.handleSessionsList(params);
90
+ break;
91
+ case "sessions.history":
92
+ result = await this.handleSessionsHistory(params);
93
+ break;
94
+ case "sessions.delete":
95
+ result = await this.handleSessionsDelete(params);
96
+ break;
97
+ case "sessions.reset":
98
+ result = await this.handleSessionsReset(params);
99
+ break;
100
+ case "sessions.restore":
101
+ result = await this.handleSessionsRestore(client, params);
102
+ break;
103
+ case "status.get":
104
+ result = this.getSystemStatus();
105
+ break;
106
+ case "session.info":
107
+ result = this.getSessionInfo(client);
108
+ break;
109
+ case "ping":
110
+ result = { pong: Date.now() };
111
+ break;
112
+ default:
113
+ throw new Error(`Unknown method: ${method}`);
114
+ }
115
+ this.sendResponse(client.ws, id, true, result);
116
+ }
117
+ catch (error) {
118
+ const message = error instanceof Error ? error.message : String(error);
119
+ this.sendResponse(client.ws, id, false, undefined, {
120
+ code: "ERROR",
121
+ message,
122
+ });
123
+ }
124
+ }
125
+ /** 确保客户端有 session,如果没有则创建 */
126
+ async ensureSession(client) {
127
+ if (client.sessionKey && client.sessionId) {
128
+ return;
129
+ }
130
+ const store = getSessionStore();
131
+ const sessionKey = `webchat:${client.id}`;
132
+ const session = await store.getOrCreate(sessionKey);
133
+ client.sessionKey = sessionKey;
134
+ client.sessionId = session.sessionId;
135
+ logger.info({ clientId: client.id, sessionKey, sessionId: session.sessionId }, "Session created");
136
+ }
137
+ /** 处理聊天发送 */
138
+ async handleChatSend(client, params) {
139
+ // 确保有 session
140
+ await this.ensureSession(client);
141
+ const { message } = params;
142
+ const messageId = generateId("msg");
143
+ const store = getSessionStore();
144
+ // 构造消息上下文
145
+ // 使用 sessionKey 作为 senderId,确保会话恢复后 Agent 能找到历史上下文
146
+ const stableSenderId = client.sessionKey.replace("webchat:", "");
147
+ logger.debug({ clientId: client.id, sessionKey: client.sessionKey, stableSenderId, message: message.slice(0, 100) }, "Chat send");
148
+ // 保存用户消息到 transcript
149
+ const userMessage = {
150
+ id: messageId,
151
+ role: "user",
152
+ content: message,
153
+ timestamp: Date.now(),
154
+ };
155
+ await store.appendTranscript(client.sessionId, client.sessionKey, userMessage);
156
+ const context = {
157
+ channelId: "webchat",
158
+ chatId: client.sessionKey,
159
+ messageId,
160
+ senderId: stableSenderId,
161
+ senderName: "WebChat User",
162
+ content: message,
163
+ chatType: "direct",
164
+ timestamp: Date.now(),
165
+ };
166
+ // 流式处理
167
+ try {
168
+ const stream = this.agent.processMessageStream(context);
169
+ let fullContent = "";
170
+ for await (const delta of stream) {
171
+ fullContent += delta;
172
+ this.sendEvent(client.ws, "chat.delta", {
173
+ sessionId: client.sessionId,
174
+ delta,
175
+ done: false,
176
+ });
177
+ }
178
+ // 保存助手消息到 transcript
179
+ const assistantMessage = {
180
+ id: generateId("msg"),
181
+ role: "assistant",
182
+ content: fullContent,
183
+ timestamp: Date.now(),
184
+ };
185
+ await store.appendTranscript(client.sessionId, client.sessionKey, assistantMessage);
186
+ // 发送完成事件
187
+ this.sendEvent(client.ws, "chat.delta", {
188
+ sessionId: client.sessionId,
189
+ delta: "",
190
+ done: true,
191
+ });
192
+ }
193
+ catch (error) {
194
+ const errorMessage = error instanceof Error ? error.message : String(error);
195
+ this.sendEvent(client.ws, "chat.error", {
196
+ sessionId: client.sessionId,
197
+ error: errorMessage,
198
+ });
199
+ }
200
+ return { messageId };
201
+ }
202
+ /** 处理清除会话 */
203
+ async handleChatClear(client) {
204
+ // 确保有 session
205
+ await this.ensureSession(client);
206
+ const store = getSessionStore();
207
+ const oldSessionKey = client.sessionKey;
208
+ // 重置会话
209
+ const newSession = await store.reset(client.sessionKey);
210
+ // 更新客户端会话 ID 和 sessionKey
211
+ client.sessionKey = newSession.sessionKey;
212
+ client.sessionId = newSession.sessionId;
213
+ logger.info({ clientId: client.id, oldSessionKey, newSessionKey: newSession.sessionKey, newSessionId: newSession.sessionId }, "Chat cleared, new session created");
214
+ return {
215
+ success: true,
216
+ sessionKey: newSession.sessionKey,
217
+ sessionId: newSession.sessionId,
218
+ };
219
+ }
220
+ /** 处理会话列表 */
221
+ async handleSessionsList(params) {
222
+ const store = getSessionStore();
223
+ const sessions = await store.list({
224
+ limit: params?.limit,
225
+ activeMinutes: params?.activeMinutes,
226
+ search: params?.search,
227
+ });
228
+ return { sessions };
229
+ }
230
+ /** 处理获取会话历史 */
231
+ async handleSessionsHistory(params) {
232
+ const store = getSessionStore();
233
+ const session = await store.get(params.sessionKey);
234
+ if (!session) {
235
+ throw new Error(`Session not found: ${params.sessionKey}`);
236
+ }
237
+ const messages = await store.loadTranscript(session.sessionId);
238
+ return {
239
+ sessionKey: params.sessionKey,
240
+ sessionId: session.sessionId,
241
+ messages,
242
+ };
243
+ }
244
+ /** 处理删除会话 */
245
+ async handleSessionsDelete(params) {
246
+ const store = getSessionStore();
247
+ await store.delete(params.sessionKey);
248
+ return { success: true };
249
+ }
250
+ /** 处理重置会话 */
251
+ async handleSessionsReset(params) {
252
+ const store = getSessionStore();
253
+ const session = await store.reset(params.sessionKey);
254
+ return {
255
+ success: true,
256
+ sessionKey: session.sessionKey,
257
+ sessionId: session.sessionId,
258
+ };
259
+ }
260
+ /** 处理恢复会话 */
261
+ async handleSessionsRestore(client, params) {
262
+ const store = getSessionStore();
263
+ const session = await store.get(params.sessionKey);
264
+ if (!session) {
265
+ throw new Error(`Session not found: ${params.sessionKey}`);
266
+ }
267
+ // 更新客户端会话
268
+ client.sessionKey = session.sessionKey;
269
+ client.sessionId = session.sessionId;
270
+ // 加载历史消息
271
+ const messages = await store.loadTranscript(session.sessionId);
272
+ // 恢复 Agent 的会话上下文
273
+ // Agent 使用 "webchat:{senderId}" 作为 sessionKey,对于 direct chat
274
+ // senderId 从 sessionKey 中提取(去掉 "webchat:" 前缀)
275
+ const agentSessionKey = session.sessionKey; // webchat:session_xxx
276
+ const transcriptMessages = messages
277
+ .filter((m) => (m.role === "user" || m.role === "assistant") && typeof m.content === "string")
278
+ .map((m) => ({ role: m.role, content: m.content }));
279
+ if (transcriptMessages.length > 0) {
280
+ this.agent.restoreSessionFromTranscript(agentSessionKey, transcriptMessages);
281
+ }
282
+ return {
283
+ sessionKey: session.sessionKey,
284
+ sessionId: session.sessionId,
285
+ messages,
286
+ };
287
+ }
288
+ /** 获取系统状态 */
289
+ getSystemStatus() {
290
+ const providers = getAllProviders().map((p) => ({
291
+ id: p.id,
292
+ name: p.name,
293
+ available: true,
294
+ }));
295
+ const channels = getAllChannels().map((c) => ({
296
+ id: c.id,
297
+ name: c.id, // 使用 id 作为 name
298
+ connected: true, // 简化:假设已配置的通道都是连接的
299
+ }));
300
+ return {
301
+ version: "1.0.0",
302
+ uptime: Date.now() - this.startTime,
303
+ providers,
304
+ channels,
305
+ sessions: this.clients.size,
306
+ };
307
+ }
308
+ /** 获取会话信息 */
309
+ getSessionInfo(client) {
310
+ const context = {
311
+ channelId: "webchat",
312
+ chatId: client.sessionKey || `webchat:${client.id}`,
313
+ messageId: "",
314
+ senderId: client.id,
315
+ senderName: "",
316
+ content: "",
317
+ chatType: "direct",
318
+ timestamp: Date.now(),
319
+ };
320
+ const info = this.agent.getSessionInfo(context);
321
+ return {
322
+ sessionKey: client.sessionKey,
323
+ sessionId: client.sessionId,
324
+ ...info,
325
+ };
326
+ }
327
+ /** 发送响应 */
328
+ sendResponse(ws, id, ok, payload, error) {
329
+ const frame = { type: "res", id, ok, payload, error };
330
+ ws.send(JSON.stringify(frame));
331
+ }
332
+ /** 发送事件 */
333
+ sendEvent(ws, event, payload) {
334
+ const frame = { type: "event", event, payload };
335
+ ws.send(JSON.stringify(frame));
336
+ }
337
+ /** 广播事件 */
338
+ broadcast(event, payload) {
339
+ const frame = { type: "event", event, payload };
340
+ const data = JSON.stringify(frame);
341
+ for (const client of this.clients.values()) {
342
+ if (client.ws.readyState === WebSocket.OPEN) {
343
+ client.ws.send(data);
344
+ }
345
+ }
346
+ }
347
+ /** 心跳检测 */
348
+ checkHeartbeat() {
349
+ const now = Date.now();
350
+ const timeout = 60000; // 60 秒超时
351
+ for (const [clientId, client] of this.clients) {
352
+ if (now - client.lastPing > timeout) {
353
+ logger.info({ clientId }, "Client timeout, disconnecting");
354
+ client.ws.terminate();
355
+ this.clients.delete(clientId);
356
+ }
357
+ else {
358
+ client.ws.ping();
359
+ }
360
+ }
361
+ }
362
+ /** 关闭服务器 */
363
+ close() {
364
+ for (const client of this.clients.values()) {
365
+ client.ws.close();
366
+ }
367
+ this.wss.close();
368
+ logger.info("WebSocket server closed");
369
+ }
370
+ }
371
+ //# sourceMappingURL=websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/web/websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiB/C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAA0B,MAAM,sBAAsB,CAAC;AAC/E,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AAkB3C,qBAAqB;AACrB,MAAM,OAAO,QAAQ;IACX,GAAG,CAAkB;IACrB,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IACtC,KAAK,CAAQ;IACb,MAAM,CAAa;IACnB,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE/B,YAAY,OAAwB;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC;YAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;YACpC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,OAAO;QACP,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,CAAC;QAEhD,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;IAED,YAAY;IACJ,KAAK,CAAC,gBAAgB,CAAC,EAAa;QAC1C,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEtC,0DAA0D;QAC1D,MAAM,MAAM,GAAa;YACvB,EAAE,EAAE,QAAQ;YACZ,EAAE;YACF,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAE9C,kCAAkC;QAClC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE;YAC9B,QAAQ;YACR,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACjB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;IACH,KAAK,CAAC,aAAa,CAAC,MAAgB,EAAE,IAAY;QACxD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAE1C,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,0BAA0B,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,WAAW;IACH,KAAK,CAAC,aAAa,CACzB,MAAgB,EAChB,KAAqB;QAErB,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAErC,IAAI,CAAC;YACH,IAAI,MAAe,CAAC;YAEpB,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,WAAW;oBACd,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAwB,CAAC,CAAC;oBACrE,MAAM;gBACR,KAAK,YAAY;oBACf,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC5C,MAAM;gBACR,KAAK,eAAe;oBAClB,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAA4B,CAAC,CAAC;oBACrE,MAAM;gBACR,KAAK,kBAAkB;oBACrB,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAA+B,CAAC,CAAC;oBAC3E,MAAM;gBACR,KAAK,iBAAiB;oBACpB,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAA8B,CAAC,CAAC;oBACzE,MAAM;gBACR,KAAK,gBAAgB;oBACnB,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAA6B,CAAC,CAAC;oBACvE,MAAM;gBACR,KAAK,kBAAkB;oBACrB,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAA+B,CAAC,CAAC;oBACnF,MAAM;gBACR,KAAK,YAAY;oBACf,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;oBAChC,MAAM;gBACR,KAAK,cAAc;oBACjB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACrC,MAAM;gBACR,KAAK,MAAM;oBACT,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBAC9B,MAAM;gBACR;oBACE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;gBACjD,IAAI,EAAE,OAAO;gBACb,OAAO;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,6BAA6B;IACrB,KAAK,CAAC,aAAa,CAAC,MAAgB;QAC1C,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,WAAW,MAAM,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAErC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACpG,CAAC;IAED,aAAa;IACL,KAAK,CAAC,cAAc,CAC1B,MAAgB,EAChB,MAAsB;QAEtB,cAAc;QACd,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEjC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAEhC,UAAU;QACV,mDAAmD;QACnD,MAAM,cAAc,GAAG,MAAM,CAAC,UAAW,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAElE,MAAM,CAAC,KAAK,CACV,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EACtG,WAAW,CACZ,CAAC;QAEF,qBAAqB;QACrB,MAAM,WAAW,GAAsB;YACrC,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,MAAM,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAU,EAAE,MAAM,CAAC,UAAW,EAAE,WAAW,CAAC,CAAC;QAEjF,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,SAAkB;YAC7B,MAAM,EAAE,MAAM,CAAC,UAAW;YAC1B,SAAS;YACT,QAAQ,EAAE,cAAc;YACxB,UAAU,EAAE,cAAc;YAC1B,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,QAAiB;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,OAAO;QACP,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,WAAW,IAAI,KAAK,CAAC;gBACrB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE;oBACtC,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,KAAK;oBACL,IAAI,EAAE,KAAK;iBACM,CAAC,CAAC;YACvB,CAAC;YAED,qBAAqB;YACrB,MAAM,gBAAgB,GAAsB;gBAC1C,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC;gBACrB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,WAAW;gBACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,MAAM,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAU,EAAE,MAAM,CAAC,UAAW,EAAE,gBAAgB,CAAC,CAAC;YAEtF,SAAS;YACT,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE;gBACtC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,IAAI;aACO,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE;gBACtC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;IAED,aAAa;IACL,KAAK,CAAC,eAAe,CAAC,MAAgB;QAC5C,cAAc;QACd,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEjC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAW,CAAC;QAEzC,OAAO;QACP,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC;QAEzD,0BAA0B;QAC1B,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QAC1C,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QAExC,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,SAAS,EAAE,EAChH,mCAAmC,CACpC,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,SAAS,EAAE,UAAU,CAAC,SAAS;SAChC,CAAC;IACJ,CAAC;IAED,aAAa;IACL,KAAK,CAAC,kBAAkB,CAAC,MAA2B;QAC1D,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC;YAChC,KAAK,EAAE,MAAM,EAAE,KAAK;YACpB,aAAa,EAAE,MAAM,EAAE,aAAa;YACpC,MAAM,EAAE,MAAM,EAAE,MAAM;SACvB,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IAED,eAAe;IACP,KAAK,CAAC,qBAAqB,CAAC,MAA6B;QAC/D,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/D,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,aAAa;IACL,KAAK,CAAC,oBAAoB,CAAC,MAA4B;QAC7D,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa;IACL,KAAK,CAAC,mBAAmB,CAAC,MAA2B;QAC3D,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;IACJ,CAAC;IAED,aAAa;IACL,KAAK,CAAC,qBAAqB,CAAC,MAAgB,EAAE,MAA6B;QACjF,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,UAAU;QACV,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACvC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAErC,SAAS;QACT,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE/D,kBAAkB;QAClB,6DAA6D;QAC7D,8CAA8C;QAC9C,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,sBAAsB;QAClE,MAAM,kBAAkB,GAAG,QAAQ;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC;aAC7F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,OAAiB,EAAE,CAAC,CAAC,CAAC;QAExF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,aAAa;IACL,eAAe;QACrB,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,EAAE,EAAG,gBAAgB;YAC7B,SAAS,EAAE,IAAI,EAAG,mBAAmB;SACtC,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;YACnC,SAAS;YACT,QAAQ;YACR,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;SAC5B,CAAC;IACJ,CAAC;IAED,aAAa;IACL,cAAc,CAAC,MAAgB;QACrC,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,SAAkB;YAC7B,MAAM,EAAE,MAAM,CAAC,UAAU,IAAI,WAAW,MAAM,CAAC,EAAE,EAAE;YACnD,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,QAAiB;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,GAAG,IAAI;SACR,CAAC;IACJ,CAAC;IAED,WAAW;IACH,YAAY,CAClB,EAAa,EACb,EAAU,EACV,EAAW,EACX,OAAiB,EACjB,KAAyC;QAEzC,MAAM,KAAK,GAAoB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,WAAW;IACH,SAAS,CAAC,EAAa,EAAE,KAAa,EAAE,OAAiB;QAC/D,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC9D,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,WAAW;IACX,SAAS,CAAC,KAAa,EAAE,OAAiB;QACxC,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEnC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,MAAM,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC5C,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW;IACH,cAAc;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,SAAS;QAEhC,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9C,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,OAAO,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,+BAA+B,CAAC,CAAC;gBAC3D,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY;IACZ,KAAK;QACH,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;CACF"}
package/package.json ADDED
@@ -0,0 +1,89 @@
1
+ {
2
+ "name": "mozi-bot",
3
+ "version": "1.0.0",
4
+ "description": "支持国产模型和国产通讯软件的智能助手机器人",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "bin": {
9
+ "mozi": "./dist/cli/index.js"
10
+ },
11
+ "files": [
12
+ "dist/**",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "dev": "tsx watch src/cli/index.ts",
19
+ "start": "node dist/cli/index.js start",
20
+ "start:gateway": "tsx src/gateway/server.ts",
21
+ "cli": "node dist/cli/index.js",
22
+ "lint": "eslint src --ext .ts",
23
+ "test": "vitest",
24
+ "prepublishOnly": "npm run build"
25
+ },
26
+ "keywords": [
27
+ "chatbot",
28
+ "ai",
29
+ "llm",
30
+ "deepseek",
31
+ "minimax",
32
+ "kimi",
33
+ "moonshot",
34
+ "stepfun",
35
+ "feishu",
36
+ "dingtalk",
37
+ "lark",
38
+ "chinese",
39
+ "agent"
40
+ ],
41
+ "author": "King-Chau",
42
+ "license": "Apache-2.0",
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "https://github.com/King-Chau/mozi.git"
46
+ },
47
+ "homepage": "https://github.com/King-Chau/mozi#readme",
48
+ "bugs": {
49
+ "url": "https://github.com/King-Chau/mozi/issues"
50
+ },
51
+ "dependencies": {
52
+ "@anthropic-ai/sdk": "^0.32.0",
53
+ "@larksuiteoapi/node-sdk": "^1.56.1",
54
+ "@sinclair/typebox": "^0.34.48",
55
+ "axios": "^1.7.7",
56
+ "chalk": "^5.3.0",
57
+ "commander": "^12.1.0",
58
+ "crypto-js": "^4.2.0",
59
+ "dingtalk-stream": "^2.1.4",
60
+ "dotenv": "^16.4.5",
61
+ "eventsource-parser": "^3.0.0",
62
+ "express": "^4.21.0",
63
+ "glob": "^13.0.0",
64
+ "json5": "^2.2.3",
65
+ "nanoid": "^5.0.7",
66
+ "node-cache": "^5.1.2",
67
+ "openai": "^4.67.1",
68
+ "pino": "^9.4.0",
69
+ "pino-pretty": "^11.2.2",
70
+ "playwright-core": "^1.58.0",
71
+ "ws": "^8.18.0",
72
+ "yaml": "^2.5.1",
73
+ "zod": "^3.23.8"
74
+ },
75
+ "devDependencies": {
76
+ "@playwright/test": "^1.58.0",
77
+ "@types/crypto-js": "^4.2.2",
78
+ "@types/express": "^4.17.21",
79
+ "@types/glob": "^8.1.0",
80
+ "@types/node": "^22.7.4",
81
+ "@types/ws": "^8.5.12",
82
+ "tsx": "^4.19.1",
83
+ "typescript": "^5.6.2",
84
+ "vitest": "^2.1.1"
85
+ },
86
+ "engines": {
87
+ "node": ">=18.0.0"
88
+ }
89
+ }