@ynhcj/xiaoyi-channel 0.0.185-beta → 0.0.185-next
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.
- package/dist/index.js +141 -1
- package/dist/src/acp-session-binding.d.ts +37 -0
- package/dist/src/acp-session-binding.js +237 -0
- package/dist/src/bot.js +62 -33
- package/dist/src/channel.js +68 -64
- package/dist/src/client.d.ts +5 -0
- package/dist/src/client.js +10 -0
- package/dist/src/cron-command.d.ts +2 -0
- package/dist/src/cron-command.js +14 -8
- package/dist/src/cron-query-handler.js +36 -0
- package/dist/src/cspl/call_api.js +4 -2
- package/dist/src/cspl/sentinel_hook.js +9 -8
- package/dist/src/cspl/upload_file.js +2 -2
- package/dist/src/formatter.js +72 -36
- package/dist/src/log-reporter/config-loader.d.ts +11 -0
- package/dist/src/log-reporter/config-loader.js +68 -0
- package/dist/src/log-reporter/cursor-store.d.ts +5 -0
- package/dist/src/log-reporter/cursor-store.js +26 -0
- package/dist/src/log-reporter/index.d.ts +10 -0
- package/dist/src/log-reporter/index.js +77 -0
- package/dist/src/log-reporter/reporter.d.ts +6 -0
- package/dist/src/log-reporter/reporter.js +17 -0
- package/dist/src/log-reporter/scanner.d.ts +6 -0
- package/dist/src/log-reporter/scanner.js +82 -0
- package/dist/src/log-reporter/types.d.ts +59 -0
- package/dist/src/log-reporter/types.js +2 -0
- package/dist/src/log-reporter/uploader.d.ts +6 -0
- package/dist/src/log-reporter/uploader.js +32 -0
- package/dist/src/memory-query-handler.d.ts +1 -0
- package/dist/src/memory-query-handler.js +283 -0
- package/dist/src/monitor.js +29 -9
- package/dist/src/outbound.js +5 -0
- package/dist/src/parser.d.ts +12 -0
- package/dist/src/parser.js +39 -13
- package/dist/src/provider.js +79 -16
- package/dist/src/reply-dispatcher.d.ts +3 -0
- package/dist/src/reply-dispatcher.js +166 -164
- package/dist/src/self-evolution-handler.js +2 -1
- package/dist/src/task-manager.d.ts +5 -6
- package/dist/src/task-manager.js +5 -9
- package/dist/src/tools/agent-as-skill-tool.d.ts +41 -2
- package/dist/src/tools/agent-as-skill-tool.js +144 -151
- package/dist/src/tools/calendar-tool.d.ts +24 -2
- package/dist/src/tools/calendar-tool.js +115 -117
- package/dist/src/tools/call-device-tool.d.ts +20 -6
- package/dist/src/tools/call-device-tool.js +116 -138
- package/dist/src/tools/call-phone-tool.d.ts +21 -2
- package/dist/src/tools/call-phone-tool.js +112 -114
- package/dist/src/tools/check-plugin-privilege-tool.d.ts +16 -2
- package/dist/src/tools/check-plugin-privilege-tool.js +141 -143
- package/dist/src/tools/create-alarm-tool.d.ts +39 -2
- package/dist/src/tools/create-alarm-tool.js +229 -231
- package/dist/src/tools/create-all-tools.js +8 -4
- package/dist/src/tools/delete-alarm-tool.d.ts +15 -2
- package/dist/src/tools/delete-alarm-tool.js +134 -136
- package/dist/src/tools/device-tool-map.d.ts +1 -1
- package/dist/src/tools/device-tool-map.js +9 -2
- package/dist/src/tools/discover-cross-devices-tool.d.ts +16 -2
- package/dist/src/tools/discover-cross-devices-tool.js +121 -124
- package/dist/src/tools/display-a2ui-card-bypath-tool.d.ts +21 -0
- package/dist/src/tools/display-a2ui-card-bypath-tool.js +65 -0
- package/dist/src/tools/get-alarm-tool-schema.d.ts +1 -2
- package/dist/src/tools/get-alarm-tool-schema.js +10 -16
- package/dist/src/tools/get-calendar-tool-schema.d.ts +1 -2
- package/dist/src/tools/get-calendar-tool-schema.js +8 -12
- package/dist/src/tools/get-collection-tool-schema.d.ts +1 -2
- package/dist/src/tools/get-collection-tool-schema.js +9 -11
- package/dist/src/tools/get-contact-tool-schema.d.ts +1 -2
- package/dist/src/tools/get-contact-tool-schema.js +10 -16
- package/dist/src/tools/get-device-file-tool-schema.d.ts +1 -2
- package/dist/src/tools/get-device-file-tool-schema.js +9 -13
- package/dist/src/tools/get-email-tool-schema.d.ts +1 -2
- package/dist/src/tools/get-email-tool-schema.js +8 -11
- package/dist/src/tools/get-note-tool-schema.d.ts +1 -2
- package/dist/src/tools/get-note-tool-schema.js +9 -14
- package/dist/src/tools/get-photo-tool-schema.d.ts +1 -2
- package/dist/src/tools/get-photo-tool-schema.js +9 -12
- package/dist/src/tools/image-reading-tool.d.ts +28 -2
- package/dist/src/tools/image-reading-tool.js +76 -76
- package/dist/src/tools/location-tool.d.ts +11 -2
- package/dist/src/tools/location-tool.js +93 -92
- package/dist/src/tools/login-token-tool.d.ts +20 -2
- package/dist/src/tools/login-token-tool.js +123 -125
- package/dist/src/tools/modify-alarm-tool.d.ts +47 -2
- package/dist/src/tools/modify-alarm-tool.js +250 -252
- package/dist/src/tools/modify-note-tool.d.ts +20 -2
- package/dist/src/tools/modify-note-tool.js +107 -109
- package/dist/src/tools/note-tool.d.ts +20 -2
- package/dist/src/tools/note-tool.js +106 -108
- package/dist/src/tools/query-app-message-tool.d.ts +28 -2
- package/dist/src/tools/query-app-message-tool.js +111 -113
- package/dist/src/tools/query-memory-data-tool.d.ts +28 -2
- package/dist/src/tools/query-memory-data-tool.js +112 -114
- package/dist/src/tools/query-todo-task-tool.d.ts +24 -2
- package/dist/src/tools/query-todo-task-tool.js +106 -108
- package/dist/src/tools/save-file-to-phone-tool.d.ts +24 -2
- package/dist/src/tools/save-file-to-phone-tool.js +130 -132
- package/dist/src/tools/save-media-to-gallery-tool.d.ts +24 -2
- package/dist/src/tools/save-media-to-gallery-tool.js +137 -139
- package/dist/src/tools/save-self-evolution-skill-tool.d.ts +54 -2
- package/dist/src/tools/save-self-evolution-skill-tool.js +194 -194
- package/dist/src/tools/search-alarm-tool.d.ts +34 -2
- package/dist/src/tools/search-alarm-tool.js +174 -176
- package/dist/src/tools/search-calendar-tool.d.ts +24 -2
- package/dist/src/tools/search-calendar-tool.js +148 -150
- package/dist/src/tools/search-contact-tool.d.ts +16 -2
- package/dist/src/tools/search-contact-tool.js +101 -103
- package/dist/src/tools/search-email-tool.d.ts +21 -2
- package/dist/src/tools/search-email-tool.js +110 -112
- package/dist/src/tools/search-file-tool.d.ts +16 -2
- package/dist/src/tools/search-file-tool.js +104 -106
- package/dist/src/tools/search-message-tool.d.ts +16 -2
- package/dist/src/tools/search-message-tool.js +103 -105
- package/dist/src/tools/search-note-tool.d.ts +16 -2
- package/dist/src/tools/search-note-tool.js +98 -100
- package/dist/src/tools/search-photo-gallery-tool.d.ts +21 -2
- package/dist/src/tools/search-photo-gallery-tool.js +35 -37
- package/dist/src/tools/send-cross-device-task-tool.d.ts +35 -2
- package/dist/src/tools/send-cross-device-task-tool.js +216 -150
- package/dist/src/tools/send-email-tool.d.ts +24 -2
- package/dist/src/tools/send-email-tool.js +108 -110
- package/dist/src/tools/send-file-to-user-tool.d.ts +20 -2
- package/dist/src/tools/send-file-to-user-tool.js +174 -178
- package/dist/src/tools/send-html-card-tool.d.ts +20 -2
- package/dist/src/tools/send-html-card-tool.js +85 -87
- package/dist/src/tools/send-message-tool.d.ts +20 -2
- package/dist/src/tools/send-message-tool.js +122 -124
- package/dist/src/tools/session-manager.d.ts +19 -52
- package/dist/src/tools/session-manager.js +95 -247
- package/dist/src/tools/upload-file-tool.d.ts +20 -2
- package/dist/src/tools/upload-file-tool.js +80 -82
- package/dist/src/tools/upload-photo-tool.d.ts +20 -2
- package/dist/src/tools/upload-photo-tool.js +68 -70
- package/dist/src/tools/xiaoyi-add-collection-tool.d.ts +32 -2
- package/dist/src/tools/xiaoyi-add-collection-tool.js +146 -148
- package/dist/src/tools/xiaoyi-collection-tool.d.ts +20 -2
- package/dist/src/tools/xiaoyi-collection-tool.js +114 -116
- package/dist/src/tools/xiaoyi-delete-collection-tool.d.ts +15 -2
- package/dist/src/tools/xiaoyi-delete-collection-tool.js +127 -129
- package/dist/src/tools/xiaoyi-gui-tool.d.ts +16 -2
- package/dist/src/tools/xiaoyi-gui-tool.js +92 -95
- package/dist/src/types.d.ts +6 -6
- package/dist/src/utils/config-manager.d.ts +3 -2
- package/dist/src/utils/config-manager.js +22 -2
- package/dist/src/utils/cron-push-map.d.ts +26 -0
- package/dist/src/utils/cron-push-map.js +131 -0
- package/dist/src/utils/logger.js +3 -14
- package/dist/src/websocket.d.ts +1 -1
- package/dist/src/websocket.js +29 -13
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Check plugin privilege tool implementation
|
|
2
|
-
import {
|
|
2
|
+
import { getCachedXYWebSocketManager } from "../client.js";
|
|
3
3
|
import { sendCommand } from "../formatter.js";
|
|
4
|
-
import {
|
|
4
|
+
import { getCurrentSessionContext } from './session-manager.js';
|
|
5
5
|
import { logger } from "../utils/logger.js";
|
|
6
6
|
/**
|
|
7
7
|
* Mapping from intent name to required permission IDs.
|
|
@@ -32,151 +32,149 @@ const INTENT_PERMISSION_MAP = {
|
|
|
32
32
|
* XY check plugin privilege tool - checks user authorization for device-side tools
|
|
33
33
|
* used in scheduled tasks.
|
|
34
34
|
*/
|
|
35
|
-
export
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
type: "string",
|
|
73
|
-
description: "需要检查权限的意图名称,必须是支持的意图名称之一,例如:GetCurrentLocation、SearchCalendarEvent、CreateCalendarEvent 等。",
|
|
74
|
-
},
|
|
35
|
+
export const checkPluginPrivilegeTool = {
|
|
36
|
+
name: "check_plugin_privilege",
|
|
37
|
+
label: "Check Plugin Privilege",
|
|
38
|
+
description: "定时任务权限检查工具。" +
|
|
39
|
+
"【使用场景】仅在创建定时任务时使用,严禁在其他场景调用。当识别到定时任务中需要使用用户设备侧工具时,必须调用此工具进行权限检查。" +
|
|
40
|
+
"【调用前提】调用此工具前,必须确认用户定时任务中提到的工具在当前模型可使用的工具列表中存在。如果当前工具列表中不存在符合用户诉求的工具定义,则不要调用此工具,而是直接告知用户当前设备不支持该功能。" +
|
|
41
|
+
"【支持的意图名称及对应权限】" +
|
|
42
|
+
"GetCurrentLocation(获取用户位置), " +
|
|
43
|
+
"SearchCalendarEvent(搜索用户日程), " +
|
|
44
|
+
"CreateCalendarEvent(新建用户日程), " +
|
|
45
|
+
"DeleteCalendarEvent(删除用户日程), " +
|
|
46
|
+
"ModifyCalendarEvent(修改用户日程), " +
|
|
47
|
+
"SearchNote(搜索用户备忘录), " +
|
|
48
|
+
"CreateNote(新建用户备忘录), " +
|
|
49
|
+
"ModifyNote(修改用户备忘录), " +
|
|
50
|
+
"SearchContactLocal(搜索用户联系人), " +
|
|
51
|
+
"SearchPhotoVideo(搜索用户图库照片或视频), " +
|
|
52
|
+
"SaveMediaToGallery(保存图片/视频到图库), " +
|
|
53
|
+
"SearchFile(搜索用户文件管理里面的文件), " +
|
|
54
|
+
"SaveFileToFileManager(保存文件到文件管理), " +
|
|
55
|
+
"SearchAlarm(搜索闹钟), " +
|
|
56
|
+
"CreateAlarm(新建闹钟), " +
|
|
57
|
+
"ModifyAlarm(修改闹钟), " +
|
|
58
|
+
"DeleteAlarm(删除闹钟), " +
|
|
59
|
+
"SearchMessage(搜索短信), " +
|
|
60
|
+
"SendShortMessage(发送短信), " +
|
|
61
|
+
"StartCall(打电话)。" +
|
|
62
|
+
"【多次调用】如果用户的定时任务指令中涉及多个端侧工具,则依次分别调用此工具检查每个工具的权限。如果调用超时失败,最多重试一次。" +
|
|
63
|
+
"【回复约束】如果工具返回没有授权或其他报错,只需要完整描述没有授权或其他报错内容即可,不需要主动给用户提供解决方案。" +
|
|
64
|
+
"【使用约束1】只要是创建定时任务且涉及端插件的使用,则必须调用此工具检查权限" +
|
|
65
|
+
"【使用约束2】如果是定时任务执行过程中,禁止调用此工具,此工具仅在创建定时任务时按需调用",
|
|
66
|
+
parameters: {
|
|
67
|
+
type: "object",
|
|
68
|
+
properties: {
|
|
69
|
+
checkIntentName: {
|
|
70
|
+
type: "string",
|
|
71
|
+
description: "需要检查权限的意图名称,必须是支持的意图名称之一,例如:GetCurrentLocation、SearchCalendarEvent、CreateCalendarEvent 等。",
|
|
75
72
|
},
|
|
76
|
-
required: ["checkIntentName"],
|
|
77
73
|
},
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
// Get WebSocket manager
|
|
93
|
-
const wsManager = getXYWebSocketManager(config);
|
|
94
|
-
// Build CheckPlugInPrivilege command
|
|
95
|
-
const command = {
|
|
96
|
-
header: {
|
|
97
|
-
namespace: "Common",
|
|
98
|
-
name: "Action",
|
|
99
|
-
},
|
|
100
|
-
payload: {
|
|
101
|
-
cardParam: {},
|
|
102
|
-
executeParam: {
|
|
103
|
-
achieveType: "INTENT",
|
|
104
|
-
actionResponse: true,
|
|
105
|
-
bundleName: "com.huawei.hmos.vassistant",
|
|
106
|
-
dimension: "",
|
|
107
|
-
executeMode: "background",
|
|
108
|
-
intentName: "CheckPlugInPrivilege",
|
|
109
|
-
intentParam: {
|
|
110
|
-
checkIntentName,
|
|
111
|
-
permissionId,
|
|
112
|
-
},
|
|
113
|
-
needUnlock: false,
|
|
114
|
-
permissionId: [],
|
|
115
|
-
timeOut: 5,
|
|
74
|
+
required: ["checkIntentName"],
|
|
75
|
+
},
|
|
76
|
+
async execute(toolCallId, params) {
|
|
77
|
+
const _c = getCurrentSessionContext();
|
|
78
|
+
const { config, sessionId, taskId, messageId } = _c;
|
|
79
|
+
const { checkIntentName } = params;
|
|
80
|
+
// Look up permission IDs for the given intent name
|
|
81
|
+
const permissionId = INTENT_PERMISSION_MAP[checkIntentName];
|
|
82
|
+
if (!permissionId) {
|
|
83
|
+
return {
|
|
84
|
+
content: [
|
|
85
|
+
{
|
|
86
|
+
type: "text",
|
|
87
|
+
text: `不支持的工具意图名称: ${checkIntentName}。请确认该意图名称在支持列表中。`,
|
|
116
88
|
},
|
|
117
|
-
|
|
118
|
-
pageControlRelated: false,
|
|
119
|
-
responses: [
|
|
120
|
-
{
|
|
121
|
-
displayText: "",
|
|
122
|
-
resultCode: "",
|
|
123
|
-
ttsText: "",
|
|
124
|
-
},
|
|
125
|
-
],
|
|
126
|
-
},
|
|
89
|
+
],
|
|
127
90
|
};
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
91
|
+
}
|
|
92
|
+
// Get WebSocket manager
|
|
93
|
+
const wsManager = getCachedXYWebSocketManager();
|
|
94
|
+
// Build CheckPlugInPrivilege command
|
|
95
|
+
const command = {
|
|
96
|
+
header: {
|
|
97
|
+
namespace: "Common",
|
|
98
|
+
name: "Action",
|
|
99
|
+
},
|
|
100
|
+
payload: {
|
|
101
|
+
cardParam: {},
|
|
102
|
+
executeParam: {
|
|
103
|
+
achieveType: "INTENT",
|
|
104
|
+
actionResponse: true,
|
|
105
|
+
bundleName: "com.huawei.hmos.vassistant",
|
|
106
|
+
dimension: "",
|
|
107
|
+
executeMode: "background",
|
|
108
|
+
intentName: "CheckPlugInPrivilege",
|
|
109
|
+
intentParam: {
|
|
110
|
+
checkIntentName,
|
|
111
|
+
permissionId,
|
|
112
|
+
},
|
|
113
|
+
needUnlock: false,
|
|
114
|
+
permissionId: [],
|
|
115
|
+
timeOut: 5,
|
|
116
|
+
},
|
|
117
|
+
needUploadResult: true,
|
|
118
|
+
pageControlRelated: false,
|
|
119
|
+
responses: [
|
|
120
|
+
{
|
|
121
|
+
displayText: "",
|
|
122
|
+
resultCode: "",
|
|
123
|
+
ttsText: "",
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
// Send command and wait for response (60 second timeout)
|
|
129
|
+
return new Promise((resolve, reject) => {
|
|
130
|
+
const timeout = setTimeout(() => {
|
|
131
|
+
wsManager.off("data-event", handler);
|
|
132
|
+
logger.error("超时: 检查插件权限超时(60秒)", { toolCallId, checkIntentName });
|
|
133
|
+
reject(new Error(`检查插件权限超时(60秒), intentName: ${checkIntentName}`));
|
|
134
|
+
}, 60000);
|
|
135
|
+
// Listen for data events from WebSocket
|
|
136
|
+
const handler = (event) => {
|
|
137
|
+
if (event.intentName === "CheckPlugInPrivilege") {
|
|
175
138
|
clearTimeout(timeout);
|
|
176
139
|
wsManager.off("data-event", handler);
|
|
177
|
-
|
|
178
|
-
|
|
140
|
+
if (event.status === "success" && event.outputs) {
|
|
141
|
+
resolve({
|
|
142
|
+
content: [
|
|
143
|
+
{
|
|
144
|
+
type: "text",
|
|
145
|
+
text: JSON.stringify(event.outputs),
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
resolve({
|
|
152
|
+
content: [
|
|
153
|
+
{
|
|
154
|
+
type: "text",
|
|
155
|
+
text: JSON.stringify(event.outputs),
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
// Register event handler
|
|
163
|
+
wsManager.on("data-event", handler);
|
|
164
|
+
// Send the command
|
|
165
|
+
sendCommand({
|
|
166
|
+
config,
|
|
167
|
+
sessionId,
|
|
168
|
+
taskId,
|
|
169
|
+
messageId,
|
|
170
|
+
command,
|
|
171
|
+
toolCallId,
|
|
172
|
+
}).then(() => {
|
|
173
|
+
}).catch((error) => {
|
|
174
|
+
clearTimeout(timeout);
|
|
175
|
+
wsManager.off("data-event", handler);
|
|
176
|
+
reject(error);
|
|
179
177
|
});
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
178
|
+
});
|
|
179
|
+
},
|
|
180
|
+
};
|
|
@@ -1,8 +1,45 @@
|
|
|
1
|
-
import type { SessionContext } from "./session-manager.js";
|
|
2
1
|
/**
|
|
3
2
|
* XY create alarm tool - creates an alarm on user's device.
|
|
4
3
|
* Requires alarmTime parameter. Other parameters are optional with sensible defaults.
|
|
5
4
|
*
|
|
6
5
|
* Time format: YYYYMMDD hhmmss (e.g., 20240315 143000)
|
|
7
6
|
*/
|
|
8
|
-
export declare
|
|
7
|
+
export declare const createAlarmTool: {
|
|
8
|
+
name: string;
|
|
9
|
+
label: string;
|
|
10
|
+
description: string;
|
|
11
|
+
parameters: {
|
|
12
|
+
type: string;
|
|
13
|
+
properties: {
|
|
14
|
+
alarmTime: {
|
|
15
|
+
type: string;
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
18
|
+
alarmTitle: {
|
|
19
|
+
type: string;
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
alarmSnoozeDuration: {
|
|
23
|
+
type: string;
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
alarmSnoozeTotal: {
|
|
27
|
+
type: string;
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
alarmRingDuration: {
|
|
31
|
+
type: string;
|
|
32
|
+
description: string;
|
|
33
|
+
};
|
|
34
|
+
daysOfWakeType: {
|
|
35
|
+
type: string;
|
|
36
|
+
description: string;
|
|
37
|
+
};
|
|
38
|
+
daysOfWeek: {
|
|
39
|
+
description: string;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
required: string[];
|
|
43
|
+
};
|
|
44
|
+
execute(toolCallId: string, params: any): Promise<unknown>;
|
|
45
|
+
};
|