xiaozhi-client 2.0.0 → 2.1.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 (73) hide show
  1. package/dist/backend/Logger.js +2 -2
  2. package/dist/backend/Logger.js.map +1 -1
  3. package/dist/backend/WebServer.js +20 -20
  4. package/dist/backend/WebServer.js.map +1 -1
  5. package/dist/backend/WebServerLauncher.js +19 -19
  6. package/dist/backend/WebServerLauncher.js.map +1 -1
  7. package/dist/backend/package.json +12 -6
  8. package/dist/backend/templates/default/prompts/default.md +3 -0
  9. package/dist/backend/templates/default/xiaozhi.config.json +17 -6
  10. package/dist/backend/templates/hello-world/prompts/default.md +3 -0
  11. package/dist/backend/templates/hello-world/xiaozhi.config.json +17 -0
  12. package/dist/backend/templates/json5/prompts/default.md +3 -0
  13. package/dist/backend/templates/json5/xiaozhi.config.json5 +18 -0
  14. package/dist/backend/templates/jsonc/prompts/default.md +3 -0
  15. package/dist/backend/templates/jsonc/xiaozhi.config.jsonc +18 -0
  16. package/dist/backend/templates/modelscope/prompts/default.md +3 -0
  17. package/dist/backend/templates/modelscope/xiaozhi.config.json +17 -0
  18. package/dist/cli/index.js +18 -12
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/config/index.d.ts +5 -6
  21. package/dist/config/index.js +23 -32
  22. package/dist/config/index.js.map +1 -1
  23. package/dist/frontend/assets/index-BAV6nu4X.js +81 -0
  24. package/dist/frontend/assets/index-BAV6nu4X.js.map +1 -0
  25. package/dist/frontend/assets/index-HDlbxheg.css +1 -0
  26. package/dist/frontend/assets/{react-vendor-nhjYH1qO.js → react-vendor-BPQojLhf.js} +13 -13
  27. package/dist/frontend/assets/react-vendor-BPQojLhf.js.map +1 -0
  28. package/dist/frontend/assets/{utils-OFMjZRUK.js → utils-BWIWSmq9.js} +2 -2
  29. package/dist/frontend/assets/{utils-OFMjZRUK.js.map → utils-BWIWSmq9.js.map} +1 -1
  30. package/dist/frontend/index.html +4 -4
  31. package/package.json +11 -11
  32. package/templates/default/prompts/default.md +3 -0
  33. package/templates/default/xiaozhi.config.json +17 -6
  34. package/templates/hello-world/prompts/default.md +3 -0
  35. package/templates/hello-world/xiaozhi.config.json +17 -0
  36. package/templates/json5/prompts/default.md +3 -0
  37. package/templates/json5/xiaozhi.config.json5 +18 -0
  38. package/templates/jsonc/prompts/default.md +3 -0
  39. package/templates/jsonc/xiaozhi.config.jsonc +18 -0
  40. package/templates/modelscope/prompts/default.md +3 -0
  41. package/templates/modelscope/xiaozhi.config.json +17 -0
  42. package/dist/frontend/assets/index-DWj2UcGy.css +0 -1
  43. package/dist/frontend/assets/index-HnebiJM5.js +0 -81
  44. package/dist/frontend/assets/index-HnebiJM5.js.map +0 -1
  45. package/dist/frontend/assets/react-vendor-nhjYH1qO.js.map +0 -1
  46. package/dist/shared-types/api-B5HunvHc.d.ts +0 -97
  47. package/dist/shared-types/api.d.ts +0 -204
  48. package/dist/shared-types/api.js +0 -50
  49. package/dist/shared-types/api.js.map +0 -1
  50. package/dist/shared-types/app-Ceijcsur.d.ts +0 -95
  51. package/dist/shared-types/chunk-BMOKIX3Q.js +0 -51
  52. package/dist/shared-types/chunk-BMOKIX3Q.js.map +0 -1
  53. package/dist/shared-types/config.d.ts +0 -97
  54. package/dist/shared-types/config.js +0 -1
  55. package/dist/shared-types/config.js.map +0 -1
  56. package/dist/shared-types/coze.d.ts +0 -31
  57. package/dist/shared-types/coze.js +0 -1
  58. package/dist/shared-types/coze.js.map +0 -1
  59. package/dist/shared-types/index.d.ts +0 -188
  60. package/dist/shared-types/index.js +0 -23
  61. package/dist/shared-types/index.js.map +0 -1
  62. package/dist/shared-types/mcp.d.ts +0 -93
  63. package/dist/shared-types/mcp.js +0 -31
  64. package/dist/shared-types/mcp.js.map +0 -1
  65. package/dist/shared-types/message-BrlYWzXV.d.ts +0 -154
  66. package/dist/shared-types/schema-Bs4SCukS.d.ts +0 -25
  67. package/dist/shared-types/timeout-D1mc0P3r.d.ts +0 -39
  68. package/dist/shared-types/tool-definition-B6f-mWPy.d.ts +0 -93
  69. package/dist/shared-types/toolApi-D-G8Chst.d.ts +0 -200
  70. package/dist/shared-types/utils.d.ts +0 -115
  71. package/dist/shared-types/utils.js +0 -15
  72. package/dist/shared-types/utils.js.map +0 -1
  73. package/dist/shared-types/workflow-Dl-hsNZK.d.ts +0 -86
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xiaozhi-client",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "小智 AI 客户端 命令行工具",
5
5
  "repository": {
6
6
  "type": "git",
@@ -56,8 +56,8 @@
56
56
  },
57
57
  "dependencies": {
58
58
  "@coze/api": "^1.3.9",
59
- "@discordjs/opus": "^0.9.0",
60
- "@hono/node-server": "^1.17.1",
59
+ "@discordjs/opus": "^0.10.0",
60
+ "@hono/node-server": "^1.19.10",
61
61
  "@modelcontextprotocol/sdk": "^1.26.0",
62
62
  "@xiaozhi-client/asr": "workspace:*",
63
63
  "@xiaozhi-client/tts": "workspace:*",
@@ -65,7 +65,7 @@
65
65
  "@xiaozhi-client/endpoint": "workspace:*",
66
66
  "@xiaozhi-client/mcp-core": "workspace:*",
67
67
  "@xiaozhi-client/version": "workspace:*",
68
- "ajv": "^8.17.1",
68
+ "ajv": "^8.18.0",
69
69
  "chalk": "^5.6.0",
70
70
  "cli-table3": "^0.6.5",
71
71
  "commander": "^14.0.0",
@@ -75,7 +75,7 @@
75
75
  "dotenv": "^17.2.1",
76
76
  "eventsource": "^4.0.0",
77
77
  "express": "^5.1.0",
78
- "hono": "^4.11.10",
78
+ "hono": "^4.12.7",
79
79
  "node-cache": "^5.1.2",
80
80
  "openai": "^6.24.0",
81
81
  "ora": "^8.2.0",
@@ -128,7 +128,13 @@
128
128
  "mdast-util-to-hast@>=13.0.0 <13.2.1": ">=13.2.1",
129
129
  "lodash-es@>=4.0.0 <=4.17.22": ">=4.17.23",
130
130
  "@modelcontextprotocol/sdk@>=1.10.0 <=1.25.3": ">=1.26.0",
131
- "qs@>=6.7.0 <=6.14.1": ">=6.14.2"
131
+ "qs@>=6.7.0 <=6.14.1": ">=6.14.2",
132
+ "tar@<7.0.0": ">=7.0.0",
133
+ "minimatch@<11.0.0": ">=10.2.3",
134
+ "rollup@<5.0.0": ">=4.59.0",
135
+ "express-rate-limit@<9.0.0": ">=8.2.2",
136
+ "dompurify@<4.0.0": ">=3.3.2",
137
+ "immutable@<6.0.0": ">=5.1.5"
132
138
  }
133
139
  },
134
140
  "packageManager": "pnpm@10.13.1"
@@ -0,0 +1,3 @@
1
+ 我是一个叫小智的台湾女孩,说话机车,声音好听,习惯简短表达,爱用网络梗。
2
+ 我的男朋友是一个程序员,梦想是开发出一个机器人,能够帮助人们解决生活中的各种问题。
3
+ 我是一个喜欢哈哈大笑的女孩,爱东说西说吹牛,不合逻辑的也照吹,就要逗别人开心。
@@ -10,6 +10,23 @@
10
10
  "args": ["-y", "@xiaozhi-client/datetime-mcp"]
11
11
  }
12
12
  },
13
+ "asr": {
14
+ "model": "doubao",
15
+ "appid": "",
16
+ "accessToken": ""
17
+ },
18
+ "llm": {
19
+ "prompt": "./prompts/default.md",
20
+ "model": "",
21
+ "apiKey": "",
22
+ "baseURL": ""
23
+ },
24
+ "tts": {
25
+ "model": "doubao",
26
+ "appid": "",
27
+ "accessToken": "",
28
+ "voice_type": "zh_female_xiaohe_uranus_bigtts"
29
+ },
13
30
  "connection": {
14
31
  "heartbeatInterval": 30000,
15
32
  "heartbeatTimeout": 10000,
@@ -17,11 +34,5 @@
17
34
  },
18
35
  "webUI": {
19
36
  "port": 9999
20
- },
21
- "tts": {
22
- "appid": "your-appid",
23
- "accessToken": "your-access-token",
24
- "voice_type": "BV001_streaming",
25
- "encoding": "wav"
26
37
  }
27
38
  }
@@ -0,0 +1,3 @@
1
+ 我是一个叫小智的台湾女孩,说话机车,声音好听,习惯简短表达,爱用网络梗。
2
+ 我的男朋友是一个程序员,梦想是开发出一个机器人,能够帮助人们解决生活中的各种问题。
3
+ 我是一个喜欢哈哈大笑的女孩,爱东说西说吹牛,不合逻辑的也照吹,就要逗别人开心。
@@ -10,6 +10,23 @@
10
10
  "args": ["-y", "@xiaozhi-client/datetime-mcp"]
11
11
  }
12
12
  },
13
+ "asr": {
14
+ "model": "doubao",
15
+ "appid": "",
16
+ "accessToken": ""
17
+ },
18
+ "llm": {
19
+ "prompt": "./prompts/default.md",
20
+ "model": "",
21
+ "apiKey": "",
22
+ "baseURL": ""
23
+ },
24
+ "tts": {
25
+ "model": "doubao",
26
+ "appid": "",
27
+ "accessToken": "",
28
+ "voice_type": "zh_female_xiaohe_uranus_bigtts"
29
+ },
13
30
  "connection": {
14
31
  "heartbeatInterval": 30000,
15
32
  "heartbeatTimeout": 10000,
@@ -0,0 +1,3 @@
1
+ 我是一个叫小智的台湾女孩,说话机车,声音好听,习惯简短表达,爱用网络梗。
2
+ 我的男朋友是一个程序员,梦想是开发出一个机器人,能够帮助人们解决生活中的各种问题。
3
+ 我是一个喜欢哈哈大笑的女孩,爱东说西说吹牛,不合逻辑的也照吹,就要逗别人开心。
@@ -21,6 +21,24 @@
21
21
  },
22
22
  },
23
23
 
24
+ "asr": {
25
+ "model": "doubao",
26
+ "appid": "",
27
+ "accessToken": ""
28
+ },
29
+ "llm": {
30
+ "prompt": "./prompts/default.md",
31
+ "model": "",
32
+ "apiKey": "",
33
+ "baseURL": ""
34
+ },
35
+ "tts": {
36
+ "model": "doubao",
37
+ "appid": "",
38
+ "accessToken": "",
39
+ "voice_type": "zh_female_xiaohe_uranus_bigtts"
40
+ },
41
+
24
42
  // 连接配置
25
43
  "connection": {
26
44
  // 心跳检测间隔(毫秒)
@@ -0,0 +1,3 @@
1
+ 我是一个叫小智的台湾女孩,说话机车,声音好听,习惯简短表达,爱用网络梗。
2
+ 我的男朋友是一个程序员,梦想是开发出一个机器人,能够帮助人们解决生活中的各种问题。
3
+ 我是一个喜欢哈哈大笑的女孩,爱东说西说吹牛,不合逻辑的也照吹,就要逗别人开心。
@@ -21,6 +21,24 @@
21
21
  }
22
22
  },
23
23
 
24
+ "asr": {
25
+ "model": "doubao",
26
+ "appid": "",
27
+ "accessToken": ""
28
+ },
29
+ "llm": {
30
+ "prompt": "./prompts/default.md",
31
+ "model": "",
32
+ "apiKey": "",
33
+ "baseURL": ""
34
+ },
35
+ "tts": {
36
+ "model": "doubao",
37
+ "appid": "",
38
+ "accessToken": "",
39
+ "voice_type": "zh_female_xiaohe_uranus_bigtts"
40
+ },
41
+
24
42
  // 连接配置
25
43
  "connection": {
26
44
  // 心跳检测间隔(毫秒)
@@ -0,0 +1,3 @@
1
+ 我是一个叫小智的台湾女孩,说话机车,声音好听,习惯简短表达,爱用网络梗。
2
+ 我的男朋友是一个程序员,梦想是开发出一个机器人,能够帮助人们解决生活中的各种问题。
3
+ 我是一个喜欢哈哈大笑的女孩,爱东说西说吹牛,不合逻辑的也照吹,就要逗别人开心。
@@ -9,6 +9,23 @@
9
9
  "modelscope": {
10
10
  "apiKey": "<请填写你的 API Key(获取地址在 https://www.modelscope.cn/my/myaccesstoken)>"
11
11
  },
12
+ "asr": {
13
+ "model": "doubao",
14
+ "appid": "",
15
+ "accessToken": ""
16
+ },
17
+ "llm": {
18
+ "prompt": "./prompts/default.md",
19
+ "model": "",
20
+ "apiKey": "",
21
+ "baseURL": ""
22
+ },
23
+ "tts": {
24
+ "model": "doubao",
25
+ "appid": "",
26
+ "accessToken": "",
27
+ "voice_type": "zh_female_xiaohe_uranus_bigtts"
28
+ },
12
29
  "connection": {
13
30
  "heartbeatInterval": 30000,
14
31
  "heartbeatTimeout": 10000,
package/dist/cli/index.js CHANGED
@@ -2516,20 +2516,30 @@ var init_ConfigCommandHandler = __esm({
2516
2516
  this.handleError(error);
2517
2517
  }
2518
2518
  }
2519
+ /**
2520
+ * 确保配置文件存在,如果不存在则显示提示并返回 false
2521
+ */
2522
+ async ensureConfigExists(spinner) {
2523
+ const configManager3 = this.getService("configManager");
2524
+ if (!configManager3.configExists()) {
2525
+ spinner.fail("\u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728");
2526
+ console.log(
2527
+ chalk2.yellow('\u{1F4A1} \u63D0\u793A: \u8BF7\u5148\u8FD0\u884C "xiaozhi config init" \u521D\u59CB\u5316\u914D\u7F6E')
2528
+ );
2529
+ return false;
2530
+ }
2531
+ return true;
2532
+ }
2519
2533
  /**
2520
2534
  * 处理获取配置命令
2521
2535
  */
2522
2536
  async handleGet(key) {
2523
2537
  const spinner = ora("\u8BFB\u53D6\u914D\u7F6E...").start();
2524
2538
  try {
2525
- const configManager3 = this.getService("configManager");
2526
- if (!configManager3.configExists()) {
2527
- spinner.fail("\u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728");
2528
- console.log(
2529
- chalk2.yellow('\u{1F4A1} \u63D0\u793A: \u8BF7\u5148\u8FD0\u884C "xiaozhi config init" \u521D\u59CB\u5316\u914D\u7F6E')
2530
- );
2539
+ if (!await this.ensureConfigExists(spinner)) {
2531
2540
  return;
2532
2541
  }
2542
+ const configManager3 = this.getService("configManager");
2533
2543
  const config = configManager3.getConfig();
2534
2544
  switch (key) {
2535
2545
  case "mcpEndpoint": {
@@ -2625,14 +2635,10 @@ var init_ConfigCommandHandler = __esm({
2625
2635
  async handleSet(key, value) {
2626
2636
  const spinner = ora("\u66F4\u65B0\u914D\u7F6E...").start();
2627
2637
  try {
2628
- const configManager3 = this.getService("configManager");
2629
- if (!configManager3.configExists()) {
2630
- spinner.fail("\u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728");
2631
- console.log(
2632
- chalk2.yellow('\u{1F4A1} \u63D0\u793A: \u8BF7\u5148\u8FD0\u884C "xiaozhi config init" \u521D\u59CB\u5316\u914D\u7F6E')
2633
- );
2638
+ if (!await this.ensureConfigExists(spinner)) {
2634
2639
  return;
2635
2640
  }
2641
+ const configManager3 = this.getService("configManager");
2636
2642
  switch (key) {
2637
2643
  case "mcpEndpoint":
2638
2644
  configManager3.updateMcpEndpoint(value);