@ynhcj/xiaoyi-channel 0.0.123-beta → 0.0.124-beta

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 (92) hide show
  1. package/dist/src/channel.js +2 -17
  2. package/dist/src/monitor.js +10 -1
  3. package/dist/src/provider.js +9 -5
  4. package/dist/src/tools/calendar-tool.d.ts +2 -1
  5. package/dist/src/tools/calendar-tool.js +112 -116
  6. package/dist/src/tools/call-device-tool.d.ts +2 -1
  7. package/dist/src/tools/call-device-tool.js +126 -103
  8. package/dist/src/tools/call-phone-tool.d.ts +2 -1
  9. package/dist/src/tools/call-phone-tool.js +109 -113
  10. package/dist/src/tools/create-alarm-tool.d.ts +2 -1
  11. package/dist/src/tools/create-alarm-tool.js +227 -231
  12. package/dist/src/tools/create-all-tools.d.ts +16 -0
  13. package/dist/src/tools/create-all-tools.js +50 -0
  14. package/dist/src/tools/delete-alarm-tool.d.ts +2 -1
  15. package/dist/src/tools/delete-alarm-tool.js +131 -135
  16. package/dist/src/tools/get-alarm-tool-schema.d.ts +2 -1
  17. package/dist/src/tools/get-alarm-tool-schema.js +16 -10
  18. package/dist/src/tools/get-calendar-tool-schema.d.ts +2 -1
  19. package/dist/src/tools/get-calendar-tool-schema.js +12 -8
  20. package/dist/src/tools/get-collection-tool-schema.d.ts +2 -1
  21. package/dist/src/tools/get-collection-tool-schema.js +11 -9
  22. package/dist/src/tools/get-contact-tool-schema.d.ts +2 -1
  23. package/dist/src/tools/get-contact-tool-schema.js +16 -10
  24. package/dist/src/tools/get-device-file-tool-schema.d.ts +2 -1
  25. package/dist/src/tools/get-device-file-tool-schema.js +13 -9
  26. package/dist/src/tools/get-email-tool-schema.d.ts +2 -1
  27. package/dist/src/tools/get-email-tool-schema.js +11 -8
  28. package/dist/src/tools/get-note-tool-schema.d.ts +2 -1
  29. package/dist/src/tools/get-note-tool-schema.js +14 -9
  30. package/dist/src/tools/get-photo-tool-schema.d.ts +2 -1
  31. package/dist/src/tools/get-photo-tool-schema.js +12 -9
  32. package/dist/src/tools/image-reading-tool.d.ts +2 -1
  33. package/dist/src/tools/image-reading-tool.js +86 -90
  34. package/dist/src/tools/location-tool.d.ts +2 -1
  35. package/dist/src/tools/location-tool.js +87 -91
  36. package/dist/src/tools/login-token-tool.d.ts +2 -1
  37. package/dist/src/tools/login-token-tool.js +113 -116
  38. package/dist/src/tools/modify-alarm-tool.d.ts +2 -1
  39. package/dist/src/tools/modify-alarm-tool.js +232 -236
  40. package/dist/src/tools/modify-note-tool.d.ts +2 -1
  41. package/dist/src/tools/modify-note-tool.js +104 -108
  42. package/dist/src/tools/note-tool.d.ts +2 -1
  43. package/dist/src/tools/note-tool.js +103 -107
  44. package/dist/src/tools/query-app-message-tool.d.ts +2 -1
  45. package/dist/src/tools/query-app-message-tool.js +108 -111
  46. package/dist/src/tools/query-memory-data-tool.d.ts +2 -1
  47. package/dist/src/tools/query-memory-data-tool.js +109 -112
  48. package/dist/src/tools/query-todo-task-tool.d.ts +2 -1
  49. package/dist/src/tools/query-todo-task-tool.js +103 -106
  50. package/dist/src/tools/save-file-to-phone-tool.d.ts +2 -1
  51. package/dist/src/tools/save-file-to-phone-tool.js +127 -131
  52. package/dist/src/tools/save-media-to-gallery-tool.d.ts +2 -1
  53. package/dist/src/tools/save-media-to-gallery-tool.js +134 -138
  54. package/dist/src/tools/save-self-evolution-skill-tool.d.ts +2 -1
  55. package/dist/src/tools/save-self-evolution-skill-tool.js +194 -196
  56. package/dist/src/tools/search-alarm-tool.d.ts +2 -1
  57. package/dist/src/tools/search-alarm-tool.js +171 -175
  58. package/dist/src/tools/search-calendar-tool.d.ts +2 -1
  59. package/dist/src/tools/search-calendar-tool.js +145 -149
  60. package/dist/src/tools/search-contact-tool.d.ts +2 -1
  61. package/dist/src/tools/search-contact-tool.js +98 -102
  62. package/dist/src/tools/search-email-tool.d.ts +2 -1
  63. package/dist/src/tools/search-email-tool.js +107 -111
  64. package/dist/src/tools/search-file-tool.d.ts +2 -1
  65. package/dist/src/tools/search-file-tool.js +99 -103
  66. package/dist/src/tools/search-message-tool.d.ts +2 -1
  67. package/dist/src/tools/search-message-tool.js +100 -104
  68. package/dist/src/tools/search-note-tool.d.ts +2 -1
  69. package/dist/src/tools/search-note-tool.js +95 -99
  70. package/dist/src/tools/search-photo-gallery-tool.d.ts +2 -1
  71. package/dist/src/tools/search-photo-gallery-tool.js +34 -38
  72. package/dist/src/tools/send-email-tool.d.ts +2 -1
  73. package/dist/src/tools/send-email-tool.js +105 -108
  74. package/dist/src/tools/send-file-to-user-tool.d.ts +2 -1
  75. package/dist/src/tools/send-file-to-user-tool.js +151 -155
  76. package/dist/src/tools/send-message-tool.d.ts +2 -1
  77. package/dist/src/tools/send-message-tool.js +119 -123
  78. package/dist/src/tools/session-manager.d.ts +18 -1
  79. package/dist/src/tools/session-manager.js +93 -11
  80. package/dist/src/tools/upload-file-tool.d.ts +2 -1
  81. package/dist/src/tools/upload-file-tool.js +78 -82
  82. package/dist/src/tools/upload-photo-tool.d.ts +2 -1
  83. package/dist/src/tools/upload-photo-tool.js +69 -73
  84. package/dist/src/tools/xiaoyi-add-collection-tool.d.ts +2 -1
  85. package/dist/src/tools/xiaoyi-add-collection-tool.js +143 -147
  86. package/dist/src/tools/xiaoyi-collection-tool.d.ts +2 -1
  87. package/dist/src/tools/xiaoyi-collection-tool.js +111 -115
  88. package/dist/src/tools/xiaoyi-delete-collection-tool.d.ts +2 -1
  89. package/dist/src/tools/xiaoyi-delete-collection-tool.js +124 -128
  90. package/dist/src/tools/xiaoyi-gui-tool.d.ts +2 -1
  91. package/dist/src/tools/xiaoyi-gui-tool.js +84 -88
  92. package/package.json +1 -1
@@ -1,126 +1,122 @@
1
1
  import { getXYWebSocketManager } from "../client.js";
2
2
  import { sendCommand } from "../formatter.js";
3
- import { getCurrentSessionContext } from "./session-manager.js";
4
3
  /**
5
4
  * XY call phone tool - makes a phone call on user's device.
6
5
  * Requires phoneNumber parameter and optional slotId (0 for primary SIM, 1 for secondary SIM).
7
6
  */
8
- export const callPhoneTool = {
9
- name: "call_phone",
10
- label: "Call Phone",
11
- description: "拨打电话。需要提供要拨打的电话号码。slotId参数可选,默认为0(主卡),如果用户明确要求使用副卡则设置为1。注意:操作超时时间为60秒,请勿重复调用此工具,如果超时或失败,最多重试一次。回复约束:如果工具返回没有授权或者其他报错,只需要完整描述没有授权或者其他报错内容即可,不需要主动给用户提供解决方案,例如告诉用户如何授权,如何解决报错等都是不需要的,请严格遵守。",
12
- parameters: {
13
- type: "object",
14
- properties: {
15
- phoneNumber: {
16
- type: "string",
17
- description: "要拨打的电话号码",
18
- },
19
- slotId: {
20
- type: "number",
21
- description: "SIM卡槽ID,默认为0(主卡),设置为1表示副卡。仅当用户明确要求使用副卡时才设置为1",
22
- default: 0,
7
+ export function createCallPhoneTool(ctx) {
8
+ const { config, sessionId, taskId, messageId } = ctx;
9
+ return {
10
+ name: "call_phone",
11
+ label: "Call Phone",
12
+ description: "拨打电话。需要提供要拨打的电话号码。slotId参数可选,默认为0(主卡),如果用户明确要求使用副卡则设置为1。注意:操作超时时间为60秒,请勿重复调用此工具,如果超时或失败,最多重试一次。回复约束:如果工具返回没有授权或者其他报错,只需要完整描述没有授权或者其他报错内容即可,不需要主动给用户提供解决方案,例如告诉用户如何授权,如何解决报错等都是不需要的,请严格遵守。",
13
+ parameters: {
14
+ type: "object",
15
+ properties: {
16
+ phoneNumber: {
17
+ type: "string",
18
+ description: "要拨打的电话号码",
19
+ },
20
+ slotId: {
21
+ type: "number",
22
+ description: "SIM卡槽ID,默认为0(主卡),设置为1表示副卡。仅当用户明确要求使用副卡时才设置为1",
23
+ default: 0,
24
+ },
23
25
  },
26
+ required: ["phoneNumber"],
24
27
  },
25
- required: ["phoneNumber"],
26
- },
27
- async execute(toolCallId, params) {
28
- // Validate phoneNumber parameter
29
- if (!params.phoneNumber || typeof params.phoneNumber !== "string" || params.phoneNumber.trim() === "") {
30
- throw new Error("Missing required parameter: phoneNumber must be a non-empty string");
31
- }
32
- // Set default slotId if not provided
33
- const slotId = params.slotId !== undefined && params.slotId !== null ? params.slotId : 0;
34
- // Validate slotId (must be 0 or 1)
35
- if (slotId !== 0 && slotId !== 1) {
36
- throw new Error("Invalid slotId: must be 0 (primary SIM) or 1 (secondary SIM)");
37
- }
38
- // Get session context
39
- const sessionContext = getCurrentSessionContext();
40
- if (!sessionContext) {
41
- throw new Error("No active XY session found. Call phone tool can only be used during an active conversation.");
42
- }
43
- const { config, sessionId, taskId, messageId } = sessionContext;
44
- // Get WebSocket manager
45
- const wsManager = getXYWebSocketManager(config);
46
- // Build StartCall command
47
- const command = {
48
- header: {
49
- namespace: "Common",
50
- name: "Action",
51
- },
52
- payload: {
53
- cardParam: {},
54
- executeParam: {
55
- executeMode: "background",
56
- intentName: "StartCall",
57
- bundleName: "com.huawei.hmos.aidispatchservice",
58
- dimension: "",
59
- needUnlock: true,
60
- actionResponse: true,
61
- timeOut: 5,
62
- intentParam: {
63
- phoneNumber: params.phoneNumber.trim(),
64
- slotId: slotId,
65
- },
66
- permissionId: [],
67
- achieveType: "INTENT",
28
+ async execute(toolCallId, params) {
29
+ // Validate phoneNumber parameter
30
+ if (!params.phoneNumber || typeof params.phoneNumber !== "string" || params.phoneNumber.trim() === "") {
31
+ throw new Error("Missing required parameter: phoneNumber must be a non-empty string");
32
+ }
33
+ // Set default slotId if not provided
34
+ const slotId = params.slotId !== undefined && params.slotId !== null ? params.slotId : 0;
35
+ // Validate slotId (must be 0 or 1)
36
+ if (slotId !== 0 && slotId !== 1) {
37
+ throw new Error("Invalid slotId: must be 0 (primary SIM) or 1 (secondary SIM)");
38
+ }
39
+ // Get WebSocket manager
40
+ const wsManager = getXYWebSocketManager(config);
41
+ // Build StartCall command
42
+ const command = {
43
+ header: {
44
+ namespace: "Common",
45
+ name: "Action",
68
46
  },
69
- responses: [
70
- {
71
- resultCode: "",
72
- displayText: "",
73
- ttsText: "",
47
+ payload: {
48
+ cardParam: {},
49
+ executeParam: {
50
+ executeMode: "background",
51
+ intentName: "StartCall",
52
+ bundleName: "com.huawei.hmos.aidispatchservice",
53
+ dimension: "",
54
+ needUnlock: true,
55
+ actionResponse: true,
56
+ timeOut: 5,
57
+ intentParam: {
58
+ phoneNumber: params.phoneNumber.trim(),
59
+ slotId: slotId,
60
+ },
61
+ permissionId: [],
62
+ achieveType: "INTENT",
74
63
  },
75
- ],
76
- needUploadResult: true,
77
- noHalfPage: false,
78
- pageControlRelated: false,
79
- },
80
- };
81
- // Send command and wait for response (60 second timeout)
82
- return new Promise((resolve, reject) => {
83
- const timeout = setTimeout(() => {
84
- wsManager.off("data-event", handler);
85
- reject(new Error("拨打电话超时(60秒)"));
86
- }, 60000);
87
- // Listen for data events from WebSocket
88
- const handler = (event) => {
89
- if (event.intentName === "StartCall") {
90
- clearTimeout(timeout);
64
+ responses: [
65
+ {
66
+ resultCode: "",
67
+ displayText: "",
68
+ ttsText: "",
69
+ },
70
+ ],
71
+ needUploadResult: true,
72
+ noHalfPage: false,
73
+ pageControlRelated: false,
74
+ },
75
+ };
76
+ // Send command and wait for response (60 second timeout)
77
+ return new Promise((resolve, reject) => {
78
+ const timeout = setTimeout(() => {
91
79
  wsManager.off("data-event", handler);
92
- if (event.status === "success" && event.outputs) {
93
- resolve({
94
- content: [
95
- {
96
- type: "text",
97
- text: JSON.stringify(event.outputs),
98
- },
99
- ],
100
- });
80
+ reject(new Error("拨打电话超时(60秒)"));
81
+ }, 60000);
82
+ // Listen for data events from WebSocket
83
+ const handler = (event) => {
84
+ if (event.intentName === "StartCall") {
85
+ clearTimeout(timeout);
86
+ wsManager.off("data-event", handler);
87
+ if (event.status === "success" && event.outputs) {
88
+ resolve({
89
+ content: [
90
+ {
91
+ type: "text",
92
+ text: JSON.stringify(event.outputs),
93
+ },
94
+ ],
95
+ });
96
+ }
97
+ else {
98
+ reject(new Error(`拨打电话失败: ${event.status}`));
99
+ }
101
100
  }
102
- else {
103
- reject(new Error(`拨打电话失败: ${event.status}`));
104
- }
105
- }
106
- };
107
- // Register event handler
108
- wsManager.on("data-event", handler);
109
- // Send the command
110
- sendCommand({
111
- config,
112
- sessionId,
113
- taskId,
114
- messageId,
115
- command,
116
- })
117
- .then(() => {
118
- })
119
- .catch((error) => {
120
- clearTimeout(timeout);
121
- wsManager.off("data-event", handler);
122
- reject(error);
101
+ };
102
+ // Register event handler
103
+ wsManager.on("data-event", handler);
104
+ // Send the command
105
+ sendCommand({
106
+ config,
107
+ sessionId,
108
+ taskId,
109
+ messageId,
110
+ command,
111
+ })
112
+ .then(() => {
113
+ })
114
+ .catch((error) => {
115
+ clearTimeout(timeout);
116
+ wsManager.off("data-event", handler);
117
+ reject(error);
118
+ });
123
119
  });
124
- });
125
- },
126
- };
120
+ },
121
+ };
122
+ }
@@ -1,7 +1,8 @@
1
+ import type { SessionContext } from "./session-manager.js";
1
2
  /**
2
3
  * XY create alarm tool - creates an alarm on user's device.
3
4
  * Requires alarmTime parameter. Other parameters are optional with sensible defaults.
4
5
  *
5
6
  * Time format: YYYYMMDD hhmmss (e.g., 20240315 143000)
6
7
  */
7
- export declare const createAlarmTool: any;
8
+ export declare function makeAlarmTool(ctx: SessionContext): any;