xiaozuoassistant 0.2.19 → 0.2.21

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 (61) hide show
  1. package/README.md +119 -119
  2. package/bin/cli.js +896 -896
  3. package/config.json +41 -41
  4. package/dist/client/assets/browser-ponyfill-Bcpejndl.js +2 -0
  5. package/dist/client/assets/index-BfvHy-SS.js +201 -0
  6. package/dist/client/assets/index-u0lXmgyZ.css +1 -0
  7. package/dist/client/favicon.svg +4 -0
  8. package/dist/client/index.html +14 -0
  9. package/dist/client/locales/en/translation.json +110 -0
  10. package/dist/client/locales/zh/translation.json +112 -0
  11. package/dist/server/agents/office.js +23 -0
  12. package/dist/server/app.js +50 -0
  13. package/dist/server/channels/base-channel.js +23 -0
  14. package/dist/server/channels/create-channels.js +18 -0
  15. package/dist/server/channels/dingtalk.js +83 -0
  16. package/dist/server/channels/feishu.js +139 -0
  17. package/dist/server/channels/telegram.js +53 -0
  18. package/dist/server/channels/terminal.js +49 -0
  19. package/dist/server/channels/web.js +66 -0
  20. package/dist/server/channels/wechat.js +107 -0
  21. package/dist/server/config/loader.js +111 -0
  22. package/dist/server/config/paths.js +24 -0
  23. package/dist/server/config/prompts.js +12 -0
  24. package/dist/server/core/agents/manager.js +27 -0
  25. package/dist/server/core/agents/runtime.js +92 -0
  26. package/dist/server/core/brain.js +255 -0
  27. package/dist/server/core/event-bus.js +24 -0
  28. package/dist/server/core/logger.js +71 -0
  29. package/dist/server/core/memories/manager.js +238 -0
  30. package/dist/server/core/memories/short-term.js +512 -0
  31. package/dist/server/core/memories/structured.js +357 -0
  32. package/dist/server/core/memories/vector.js +137 -0
  33. package/dist/server/core/memory.js +2 -0
  34. package/dist/server/core/plugin-manager.js +128 -0
  35. package/dist/server/core/plugin.js +1 -0
  36. package/dist/server/core/scheduler.js +85 -0
  37. package/dist/server/core/task-queue.js +104 -0
  38. package/dist/server/core/types.js +1 -0
  39. package/dist/server/index.js +878 -0
  40. package/dist/server/llm/openai.js +23 -0
  41. package/dist/server/plugins/core-skills/src/create-agent.js +58 -0
  42. package/dist/server/plugins/core-skills/src/delegate.js +39 -0
  43. package/dist/server/plugins/core-skills/src/file-system.js +142 -0
  44. package/dist/server/plugins/core-skills/src/index.js +26 -0
  45. package/dist/server/plugins/core-skills/src/list-agents.js +24 -0
  46. package/dist/server/plugins/core-skills/src/search.js +31 -0
  47. package/dist/server/plugins/core-skills/src/system-time.js +27 -0
  48. package/dist/server/plugins/office-skills/src/index.js +19 -0
  49. package/dist/server/plugins/office-skills/src/office-excel.js +84 -0
  50. package/dist/server/plugins/office-skills/src/office-ppt.js +58 -0
  51. package/dist/server/plugins/office-skills/src/office-word.js +90 -0
  52. package/dist/server/routes/auth.js +28 -0
  53. package/dist/server/server/create-http.js +22 -0
  54. package/dist/server/server.js +29 -0
  55. package/dist/server/skills/base-skill.js +20 -0
  56. package/dist/server/skills/registry.js +52 -0
  57. package/package.json +116 -116
  58. package/public/favicon.svg +4 -4
  59. package/public/locales/en/translation.json +110 -110
  60. package/public/locales/zh/translation.json +112 -112
  61. package/scripts/init-app-home.cjs +43 -43
@@ -1,112 +1,112 @@
1
- {
2
- "welcome": {
3
- "title": "欢迎使用 xiaozuoAssistant",
4
- "subtitle": "您的个人 AI 助手。请从侧边栏选择一个会话或开始一个新的会话。"
5
- },
6
- "chat": {
7
- "title": "聊天",
8
- "empty": "开始一个新的对话...",
9
- "you": "你",
10
- "assistant": "xiaozuoAssistant",
11
- "thinking": "思考中...",
12
- "inputPlaceholder": "给 xiaozuoAssistant 发送消息 (Cmd/Ctrl + Enter 发送)...",
13
- "disclaimer": "xiaozuoAssistant 可能会犯错。请核对重要信息。",
14
- "resetSession": "重置会话",
15
- "confirmReset": "确定要重置当前会话记忆吗?这将清空所有消息历史。"
16
- },
17
- "sessionList": {
18
- "title": "xiaozuoAssistant",
19
- "newChat": "新对话",
20
- "recent": "最近",
21
- "settings": "设置",
22
- "editSession": "编辑会话",
23
- "deleteConfirm": "确定要删除这个会话吗?"
24
- },
25
- "sessionMeta": {
26
- "title": "会话设置",
27
- "aliasLabel": "会话别名(可选)",
28
- "aliasPlaceholder": "例如:项目A / 需求讨论",
29
- "aliasHint": "列表与聊天头部将优先展示别名。留空将回退显示会话 ID。",
30
- "workspaceLabel": "Workspace(工作目录)",
31
- "workspaceHint": "文件相关工具默认以该目录为工作区,并限制访问范围。",
32
- "contextLabel": "上下文数据(可选)",
33
- "contextPlaceholder": "例如:项目背景、术语约定、当前阶段结论、需要长期保持的上下文...",
34
- "contextHint": "该内容会持久化保存,并在复杂任务中作为会话上下文使用。",
35
- "selectWorkspace": "选择工作目录",
36
- "selectCurrentFolder": "选择当前目录",
37
- "persistNow": "立即持久化",
38
- "persisting": "持久化中...",
39
- "persistSuccess": "已持久化",
40
- "delete": "删除会话",
41
- "deleting": "删除中...",
42
- "deleteConfirm": "确定要删除这个会话吗?"
43
- },
44
- "settings": {
45
- "title": "设置",
46
- "tabs": {
47
- "general": "常规",
48
- "identity": "用户身份管理",
49
- "scheduler": "定时任务"
50
- },
51
- "general": {
52
- "provider": "模型提供商",
53
- "apiKey": "API Key",
54
- "baseURL": "Base URL",
55
- "modelName": "模型名称",
56
- "temperature": "温度 (Temperature)"
57
- },
58
- "identity": {
59
- "title": "用户身份",
60
- "userId": "UserId",
61
- "userIdHint": "用于加载该 UserId 对应的身份资料与记忆。",
62
- "name": "姓名",
63
- "role": "岗位",
64
- "company": "公司",
65
- "email": "邮箱",
66
- "promptTitle": "基本提示信息",
67
- "promptPlaceholder": "例如:你希望助手的工作方式、输出格式、约束规则...",
68
- "promptHint": "系统提示词将由“用户身份 + 基本提示信息”自动组成,并在新会话中预先加载。"
69
- },
70
- "prompt": {
71
- "description": "定义 xiaozuoAssistant 的行为和响应方式。",
72
- "placeholder": "你是一个有用的 AI 助手..."
73
- },
74
- "scheduler": {
75
- "memoryMaintenance": "记忆维护",
76
- "description": "配置系统何时压缩旧记忆并删除过期会话。",
77
- "sessionRetentionDays": "会话保留天数",
78
- "sessionRetentionHint": "超过该天数未活跃的会话会在维护任务中被自动删除。",
79
- "days": "天",
80
- "cronSchedule": "Cron 表达式",
81
- "cronHint": "格式: 分 时 日 月 周 (例如 \"0 0 * * *\" 表示每天午夜)",
82
- "manualTrigger": "手动触发",
83
- "manualDescription": "立即强制运行维护任务。",
84
- "runNow": "立即运行维护",
85
- "daily": "每天",
86
- "weekly": "每周",
87
- "custom": "自定义 (Cron)"
88
- },
89
- "buttons": {
90
- "close": "关闭",
91
- "save": "保存更改",
92
- "saving": "保存中...",
93
- "cancel": "取消"
94
- },
95
- "messages": {
96
- "savedSuccess": "配置保存成功!",
97
- "saveFailed": "保存配置失败",
98
- "networkError": "发生网络错误",
99
- "maintenanceSuccess": "维护任务触发成功!"
100
- },
101
- "language": "语言"
102
- },
103
- "weekdays": {
104
- "sunday": "星期日",
105
- "monday": "星期一",
106
- "tuesday": "星期二",
107
- "wednesday": "星期三",
108
- "thursday": "星期四",
109
- "friday": "星期五",
110
- "saturday": "星期六"
111
- }
112
- }
1
+ {
2
+ "welcome": {
3
+ "title": "欢迎使用 xiaozuoAssistant",
4
+ "subtitle": "您的个人 AI 助手。请从侧边栏选择一个会话或开始一个新的会话。"
5
+ },
6
+ "chat": {
7
+ "title": "聊天",
8
+ "empty": "开始一个新的对话...",
9
+ "you": "你",
10
+ "assistant": "xiaozuoAssistant",
11
+ "thinking": "思考中...",
12
+ "inputPlaceholder": "给 xiaozuoAssistant 发送消息 (Cmd/Ctrl + Enter 发送)...",
13
+ "disclaimer": "xiaozuoAssistant 可能会犯错。请核对重要信息。",
14
+ "resetSession": "重置会话",
15
+ "confirmReset": "确定要重置当前会话记忆吗?这将清空所有消息历史。"
16
+ },
17
+ "sessionList": {
18
+ "title": "xiaozuoAssistant",
19
+ "newChat": "新对话",
20
+ "recent": "最近",
21
+ "settings": "设置",
22
+ "editSession": "编辑会话",
23
+ "deleteConfirm": "确定要删除这个会话吗?"
24
+ },
25
+ "sessionMeta": {
26
+ "title": "会话设置",
27
+ "aliasLabel": "会话别名(可选)",
28
+ "aliasPlaceholder": "例如:项目A / 需求讨论",
29
+ "aliasHint": "列表与聊天头部将优先展示别名。留空将回退显示会话 ID。",
30
+ "workspaceLabel": "Workspace(工作目录)",
31
+ "workspaceHint": "文件相关工具默认以该目录为工作区,并限制访问范围。",
32
+ "contextLabel": "上下文数据(可选)",
33
+ "contextPlaceholder": "例如:项目背景、术语约定、当前阶段结论、需要长期保持的上下文...",
34
+ "contextHint": "该内容会持久化保存,并在复杂任务中作为会话上下文使用。",
35
+ "selectWorkspace": "选择工作目录",
36
+ "selectCurrentFolder": "选择当前目录",
37
+ "persistNow": "立即持久化",
38
+ "persisting": "持久化中...",
39
+ "persistSuccess": "已持久化",
40
+ "delete": "删除会话",
41
+ "deleting": "删除中...",
42
+ "deleteConfirm": "确定要删除这个会话吗?"
43
+ },
44
+ "settings": {
45
+ "title": "设置",
46
+ "tabs": {
47
+ "general": "常规",
48
+ "identity": "用户身份管理",
49
+ "scheduler": "定时任务"
50
+ },
51
+ "general": {
52
+ "provider": "模型提供商",
53
+ "apiKey": "API Key",
54
+ "baseURL": "Base URL",
55
+ "modelName": "模型名称",
56
+ "temperature": "温度 (Temperature)"
57
+ },
58
+ "identity": {
59
+ "title": "用户身份",
60
+ "userId": "UserId",
61
+ "userIdHint": "用于加载该 UserId 对应的身份资料与记忆。",
62
+ "name": "姓名",
63
+ "role": "岗位",
64
+ "company": "公司",
65
+ "email": "邮箱",
66
+ "promptTitle": "基本提示信息",
67
+ "promptPlaceholder": "例如:你希望助手的工作方式、输出格式、约束规则...",
68
+ "promptHint": "系统提示词将由“用户身份 + 基本提示信息”自动组成,并在新会话中预先加载。"
69
+ },
70
+ "prompt": {
71
+ "description": "定义 xiaozuoAssistant 的行为和响应方式。",
72
+ "placeholder": "你是一个有用的 AI 助手..."
73
+ },
74
+ "scheduler": {
75
+ "memoryMaintenance": "记忆维护",
76
+ "description": "配置系统何时压缩旧记忆并删除过期会话。",
77
+ "sessionRetentionDays": "会话保留天数",
78
+ "sessionRetentionHint": "超过该天数未活跃的会话会在维护任务中被自动删除。",
79
+ "days": "天",
80
+ "cronSchedule": "Cron 表达式",
81
+ "cronHint": "格式: 分 时 日 月 周 (例如 \"0 0 * * *\" 表示每天午夜)",
82
+ "manualTrigger": "手动触发",
83
+ "manualDescription": "立即强制运行维护任务。",
84
+ "runNow": "立即运行维护",
85
+ "daily": "每天",
86
+ "weekly": "每周",
87
+ "custom": "自定义 (Cron)"
88
+ },
89
+ "buttons": {
90
+ "close": "关闭",
91
+ "save": "保存更改",
92
+ "saving": "保存中...",
93
+ "cancel": "取消"
94
+ },
95
+ "messages": {
96
+ "savedSuccess": "配置保存成功!",
97
+ "saveFailed": "保存配置失败",
98
+ "networkError": "发生网络错误",
99
+ "maintenanceSuccess": "维护任务触发成功!"
100
+ },
101
+ "language": "语言"
102
+ },
103
+ "weekdays": {
104
+ "sunday": "星期日",
105
+ "monday": "星期一",
106
+ "tuesday": "星期二",
107
+ "wednesday": "星期三",
108
+ "thursday": "星期四",
109
+ "friday": "星期五",
110
+ "saturday": "星期六"
111
+ }
112
+ }
@@ -1,43 +1,43 @@
1
- const fs = require('fs');
2
- const os = require('os');
3
- const path = require('path');
4
-
5
- function guessHomeFromSudoUser() {
6
- const sudoUser = process.env.SUDO_USER;
7
- if (!sudoUser) return null;
8
-
9
- const candidates = [
10
- path.join('/Users', sudoUser),
11
- path.join('/home', sudoUser)
12
- ];
13
-
14
- for (const p of candidates) {
15
- try {
16
- if (fs.existsSync(p)) return p;
17
- } catch {
18
- // ignore
19
- }
20
- }
21
-
22
- return null;
23
- }
24
-
25
- function resolveTargetHome() {
26
- const guessed = guessHomeFromSudoUser();
27
- if (guessed) return guessed;
28
- return os.homedir();
29
- }
30
-
31
- function main() {
32
- const home = resolveTargetHome();
33
- const appHome = path.join(home, '.xiaozuoassistant');
34
-
35
- try {
36
- fs.mkdirSync(appHome, { recursive: true });
37
- } catch {
38
- process.exit(0);
39
- }
40
- }
41
-
42
- main();
43
-
1
+ const fs = require('fs');
2
+ const os = require('os');
3
+ const path = require('path');
4
+
5
+ function guessHomeFromSudoUser() {
6
+ const sudoUser = process.env.SUDO_USER;
7
+ if (!sudoUser) return null;
8
+
9
+ const candidates = [
10
+ path.join('/Users', sudoUser),
11
+ path.join('/home', sudoUser)
12
+ ];
13
+
14
+ for (const p of candidates) {
15
+ try {
16
+ if (fs.existsSync(p)) return p;
17
+ } catch {
18
+ // ignore
19
+ }
20
+ }
21
+
22
+ return null;
23
+ }
24
+
25
+ function resolveTargetHome() {
26
+ const guessed = guessHomeFromSudoUser();
27
+ if (guessed) return guessed;
28
+ return os.homedir();
29
+ }
30
+
31
+ function main() {
32
+ const home = resolveTargetHome();
33
+ const appHome = path.join(home, '.xiaozuoassistant');
34
+
35
+ try {
36
+ fs.mkdirSync(appHome, { recursive: true });
37
+ } catch {
38
+ process.exit(0);
39
+ }
40
+ }
41
+
42
+ main();
43
+