@honor-claw/yoyo 2026.6.9-alpha.1 → 2026.6.9-alpha.2
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/channel/setup-wizard.mjs +4 -4
- package/dist/commands/login/impl.mjs +14 -10
- package/dist/connection/manager.mjs +10 -16
- package/dist/honor-auth/login/impl.mjs +15 -17
- package/dist/modules/configs/provider.mjs +1 -4
- package/package.json +1 -1
- package/skills/yoyo-phone-control/SKILL.md +51 -1
|
@@ -12,7 +12,7 @@ var s = {
|
|
|
12
12
|
return {
|
|
13
13
|
channel: e,
|
|
14
14
|
configured: r,
|
|
15
|
-
statusLines: [r ? "Honor account is logged in. Selecting
|
|
15
|
+
statusLines: [r ? "Honor account is logged in. Selecting yoyo can switch to another account" : "Honor account is not logged in. Selecting yoyo will start Honor login."],
|
|
16
16
|
selectionHint: r ? "Ready" : "Login Required"
|
|
17
17
|
};
|
|
18
18
|
},
|
|
@@ -21,16 +21,16 @@ var s = {
|
|
|
21
21
|
try {
|
|
22
22
|
s.update("Opening Honor login flow..."), r = (await o({})).userId, s.stop("Honor login completed.");
|
|
23
23
|
} catch (t) {
|
|
24
|
-
return s.stop("Honor login failed."), await e.prompter.note(
|
|
24
|
+
return s.stop("Honor login failed."), await e.prompter.note(n(t)), {
|
|
25
25
|
cfg: a,
|
|
26
26
|
accountId: r
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
let c = await e.prompter.confirm({
|
|
30
|
-
message: "Enable
|
|
30
|
+
message: "Enable yoyo channel?",
|
|
31
31
|
initialValue: !0
|
|
32
32
|
});
|
|
33
|
-
return a = i(a, r, c), await e.prompter.note(c ? "
|
|
33
|
+
return a = i(a, r, c), await e.prompter.note(c ? "yoyo channel enabled." : "yoyo channel saved as disabled."), {
|
|
34
34
|
cfg: a,
|
|
35
35
|
accountId: r
|
|
36
36
|
};
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { clawLogger as e } from "../../utils/claw-logger.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { setYoyoChannelAccountEnabled as t } from "../../modules/configs/channel.mjs";
|
|
3
|
+
import { loadConfig as n, saveConfig as r } from "../../modules/configs/config-store.mjs";
|
|
4
|
+
import "../../modules/configs/index.mjs";
|
|
5
|
+
import { performLogin as i } from "../../honor-auth/login/impl.mjs";
|
|
3
6
|
import "../../honor-auth/index.mjs";
|
|
4
7
|
//#region src/commands/login/impl.ts
|
|
5
|
-
var
|
|
6
|
-
function
|
|
7
|
-
|
|
8
|
-
let { uid:
|
|
9
|
-
if (
|
|
10
|
-
await
|
|
11
|
-
userId:
|
|
12
|
-
token:
|
|
8
|
+
var a = e("login-cli");
|
|
9
|
+
function o(e, o) {
|
|
10
|
+
o.command("login").description("login to yoyoclaw and register devices").option("-u, --uid <userId>", "login with a specific user ID").option("--token <token>", "login with a specific token").action(async (e) => {
|
|
11
|
+
let { uid: o, token: s } = e;
|
|
12
|
+
if (a.debug("login CLI command called"), o && s) throw Error("please provide either --uid or --token, not both");
|
|
13
|
+
let c = await i({
|
|
14
|
+
userId: o,
|
|
15
|
+
token: s
|
|
13
16
|
});
|
|
17
|
+
c && (await r(t(n(), c.userId, !0)), console.log("✅ yoyo channel account enabled."));
|
|
14
18
|
});
|
|
15
19
|
}
|
|
16
20
|
//#endregion
|
|
17
|
-
export {
|
|
21
|
+
export { o as registerLoginCommand };
|
|
@@ -19,17 +19,17 @@ async function d(e) {
|
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
21
|
let a = e ?? await i();
|
|
22
|
-
u.info("creating new channel", { deviceId: a.deviceId }), await l(a, n),
|
|
22
|
+
u.info("creating new channel", { deviceId: a.deviceId }), await l(a, n), h("connecting"), t.channel = new s({
|
|
23
23
|
deviceInfo: a,
|
|
24
24
|
credentialProvider: async () => {
|
|
25
25
|
let e = await r();
|
|
26
26
|
return e?.token ? { token: e.token } : null;
|
|
27
27
|
},
|
|
28
28
|
onOpen: () => {
|
|
29
|
-
|
|
29
|
+
h("connected"), u.info("channel connected successfully");
|
|
30
30
|
},
|
|
31
31
|
onClose: () => {
|
|
32
|
-
|
|
32
|
+
h("idle"), u.info("channel closed");
|
|
33
33
|
},
|
|
34
34
|
onError: (e) => {
|
|
35
35
|
switch (e.type) {
|
|
@@ -45,7 +45,7 @@ async function d(e) {
|
|
|
45
45
|
try {
|
|
46
46
|
t.channel.start();
|
|
47
47
|
} catch (e) {
|
|
48
|
-
|
|
48
|
+
h("idle"), t.channel = null, u.error("failed to launch channel", e);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
async function f() {
|
|
@@ -62,18 +62,12 @@ async function f() {
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
async function p() {
|
|
65
|
-
await n(),
|
|
65
|
+
await n(), g();
|
|
66
66
|
}
|
|
67
67
|
async function m(e) {
|
|
68
|
-
await g(e);
|
|
69
|
-
}
|
|
70
|
-
async function h(e) {
|
|
71
|
-
await g(e ?? await i());
|
|
72
|
-
}
|
|
73
|
-
async function g(e) {
|
|
74
68
|
t.channel &&= (u.info("destroying existing channel before recreate"), t.channel.destroy(), null), await d(e);
|
|
75
69
|
}
|
|
76
|
-
function
|
|
70
|
+
function h(e) {
|
|
77
71
|
let n = t.status;
|
|
78
72
|
n !== e && (t.status = e, o({
|
|
79
73
|
type: a.CONNECTION_STATUS_CHANGED,
|
|
@@ -83,16 +77,16 @@ function _(e) {
|
|
|
83
77
|
}
|
|
84
78
|
}));
|
|
85
79
|
}
|
|
86
|
-
function
|
|
80
|
+
function g() {
|
|
87
81
|
try {
|
|
88
82
|
if (!t.channel) {
|
|
89
|
-
u.warn("no channel to destroy"),
|
|
83
|
+
u.warn("no channel to destroy"), h("idle");
|
|
90
84
|
return;
|
|
91
85
|
}
|
|
92
|
-
u.info("destroying channel"), t.channel.destroy(), t.channel = null,
|
|
86
|
+
u.info("destroying channel"), t.channel.destroy(), t.channel = null, h("idle"), u.info("channel destroyed successfully");
|
|
93
87
|
} catch (e) {
|
|
94
88
|
u.error("failed to destroy channel", e);
|
|
95
89
|
}
|
|
96
90
|
}
|
|
97
91
|
//#endregion
|
|
98
|
-
export { d as createConnection,
|
|
92
|
+
export { d as createConnection, g as destroyConnection };
|
|
@@ -6,13 +6,11 @@ import "../../modules/device/index.mjs";
|
|
|
6
6
|
import "../vault/index.mjs";
|
|
7
7
|
import { registerDevice as i } from "../../provisioning/registration/register.mjs";
|
|
8
8
|
import "../../provisioning/registration/index.mjs";
|
|
9
|
-
import {
|
|
10
|
-
import "../../connection/index.mjs";
|
|
11
|
-
import { performBrowserLogin as o } from "../browser/flow.mjs";
|
|
9
|
+
import { performBrowserLogin as a } from "../browser/flow.mjs";
|
|
12
10
|
import "../browser/index.mjs";
|
|
13
11
|
//#region src/honor-auth/login/impl.ts
|
|
14
|
-
var
|
|
15
|
-
async function
|
|
12
|
+
var o = e("login");
|
|
13
|
+
async function s(e, r) {
|
|
16
14
|
let i = await n().exchangeToken(r, { userId: e });
|
|
17
15
|
if (!i.jwtToken) throw Error("failed to get jwt token from userId exchange");
|
|
18
16
|
let a = Date.now();
|
|
@@ -27,7 +25,7 @@ async function c(e, r) {
|
|
|
27
25
|
}
|
|
28
26
|
});
|
|
29
27
|
}
|
|
30
|
-
async function
|
|
28
|
+
async function c(e, r) {
|
|
31
29
|
let i = await n().exchangeToken(r, { token: e });
|
|
32
30
|
if (!i.jwtToken || !i.userId) throw Error("failed to exchange token for userId");
|
|
33
31
|
let a = Date.now();
|
|
@@ -42,22 +40,22 @@ async function l(e, r) {
|
|
|
42
40
|
}
|
|
43
41
|
});
|
|
44
42
|
}
|
|
45
|
-
async function
|
|
46
|
-
let { userId: n, token:
|
|
47
|
-
|
|
48
|
-
let
|
|
49
|
-
return
|
|
43
|
+
async function l(e, t) {
|
|
44
|
+
let { userId: n, token: l } = e;
|
|
45
|
+
o.debug("starting login process");
|
|
46
|
+
let u = await r(), d;
|
|
47
|
+
return d = l ? await c(l, u) : n ? await s(n, u) : await a(u, { print: t.print }), t.print("📡 Registering device to Claw Cloud..."), await i(u, d), t.print("✅ Device registered successfully"), t.print("✅ Login finished. The channel service will connect after the account starts."), d;
|
|
50
48
|
}
|
|
51
|
-
async function
|
|
49
|
+
async function u(e = {}) {
|
|
52
50
|
try {
|
|
53
|
-
await
|
|
51
|
+
return await l(e, { print: (e) => console.log(e) });
|
|
54
52
|
} catch (e) {
|
|
55
53
|
let t = e instanceof Error ? e.message : String(e);
|
|
56
|
-
console.error("🚫 Login failed:", t);
|
|
54
|
+
return console.error("🚫 Login failed:", t), null;
|
|
57
55
|
}
|
|
58
56
|
}
|
|
59
|
-
async function
|
|
60
|
-
return await
|
|
57
|
+
async function d(e = {}) {
|
|
58
|
+
return await l(e, { print: () => void 0 });
|
|
61
59
|
}
|
|
62
60
|
//#endregion
|
|
63
|
-
export {
|
|
61
|
+
export { u as performLogin, d as performSilentLogin };
|
|
@@ -5,10 +5,7 @@ function n(e) {
|
|
|
5
5
|
let t = {};
|
|
6
6
|
if (!e.models?.providers) return t;
|
|
7
7
|
let n = Object.keys(e.models.providers);
|
|
8
|
-
for (let e of n)
|
|
9
|
-
let n = e.trim().toLowerCase();
|
|
10
|
-
n.includes("minimax") && (t[e] = n.replace("minimax", "mini_max"));
|
|
11
|
-
}
|
|
8
|
+
for (let e of n) e.trim().toLowerCase() === "mini_max" && (t[e] = "minimax");
|
|
12
9
|
return t;
|
|
13
10
|
}
|
|
14
11
|
function r(e, t) {
|
package/package.json
CHANGED
|
@@ -150,7 +150,57 @@ metadata: { "openclaw": { "emoji": "📱", "always": true } }
|
|
|
150
150
|
|
|
151
151
|
| 工具名称 | 工具说明 | 支持的设备ID |
|
|
152
152
|
| ------- | ------- | --------------- |
|
|
153
|
-
|
|
153
|
+
<!-- yoyo-mcp-tools:start -->
|
|
154
|
+
| check_alarm | 用于查看闹钟的工具。当用户意图涉及查询闹钟或闹铃时,可以使用该工具。支持按日期时间、事件、序号、启用状态、是否跳过节假日,以及查询最近一个闹钟等条件进行查询。不适用于创建、修改、删除、开启、关闭闹钟等非查询操作场景。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
155
|
+
| check_in | 参加店铺的打卡活动、给店铺进行收藏打卡、给店铺写点评。①当用户说要参加打卡活动或者进行收藏打卡时,需要根据画面中的步骤完成任务活动 ②当用户只要求写评价时,收藏和打卡操作都不需要执行 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
156
|
+
| check_in | 参加店铺的打卡活动、给店铺进行收藏打卡、给店铺写点评。①当用户说要参加打卡活动或者进行收藏打卡时,需要根据画面中的步骤完成任务活动 ②当用户只要求写评价时,收藏和打卡操作都不需要执行 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
157
|
+
| check_schedule | 用于查看日程的工具。当用户意图涉及查询日程、安排、计划、行程时,属于查询日程。查询日程支持日期、日期段、时间、时间段、标题的查询。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
158
|
+
| check_todo | 用于查询待办事项的工具。适用于用户想查看待办事项、待办工作、待做事情的场景,支持按标题、日期、日期段、时间、时间段查询,也可结合范围词如刚才、全部、下一个进行筛选。仅用于查询已有待办,不支持创建、修改、删除、完成待办,也不用于处理提醒设置、日程新增或其他非待办信息查询。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
159
|
+
| close_alarm | 用于关闭闹钟的工具,可根据标题、时间、最近一次引用及当前开关状态筛选目标闹钟,支持关闭单个或多个闹钟。当用户意图涉及关闭闹钟或闹铃时,可以使用该工具。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
160
|
+
| create_todo | 用于创建待办的工具。当用户意图涉及创建待办事项、待办工作、待做的事情时,属于创建待办。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
161
|
+
| delete_todo | 打开日历应用的待办界面。用于处理删除待办相关意图。当用户表达删除待办事项、待办工作或待做的事情时调用。当前能力无法直接删除待办,而是跳转到日历应用的待办界面,用户可以在应用内手动选择并删除对应待办。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
162
|
+
| desk_companion | 该工具用于启动或退出桌面陪伴功能。桌面陪伴是一种动态桌面交互体验,在桌面上展示虚拟角色或宠物,与用户进行实时互动。当用户想要开启桌面陪伴体验或结束桌面陪伴时使用。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
163
|
+
| desk_companion | 该工具用于启动或退出桌面陪伴功能。桌面陪伴是一种动态桌面交互体验,在桌面上展示虚拟角色或宠物,与用户进行实时互动。当用户想要开启桌面陪伴体验或结束桌面陪伴时使用。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
164
|
+
| download_app | 支持用户从应用市场下载安装应用。工具会根据应用名称(app)和下载渠道(path,默认为官方应用市场)进行搜索;当匹配到多个应用时,会返回候选列表供用户选择,此时可通过 sequenceList 指定要下载的应用序号。如果用户想从某个应用市场(本地已安装)下载指定应用,可以使用该工具。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
165
|
+
| get_user_location | 本工具用于获取用户的当前地理位置信息,返回当前位置的经纬度坐标(GCJ02坐标系)和结构化地址信息,包括省份、城市、区/县、详细地址等。仅在用户授予位置权限时可用。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
166
|
+
| get_user_location | 本工具用于获取用户的当前地理位置信息,返回当前位置的经纬度坐标(GCJ02坐标系)和结构化地址信息,包括省份、城市、区/县、详细地址等。仅在用户授予位置权限时可用。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
167
|
+
| hover_button | 该工具用于管理设备悬浮按钮功能(桌面小白点),支持打开悬浮按钮、关闭悬浮按钮以及进入悬浮按钮设置页面查看或调整相关设置。当actionType为查询或设置时,通过跳转闭环,只能打开悬浮按钮设置页面,不能返回具体数据。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
168
|
+
| modify_todo | 打开日历应用的待办界面。如果用户想查看、选择或手动修改待办事项,可以使用该工具进入对应页面进行操作。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
169
|
+
| musicFeedbackAction | 支持用户对当前播放的音乐媒体进行收藏或取消收藏操作,仅限QQ/网易云/酷狗/荣耀音乐。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
170
|
+
| musicFeedbackAction | 支持用户对当前播放的音乐媒体进行收藏或取消收藏操作,仅限QQ/网易云/酷狗/荣耀音乐。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
171
|
+
| navigation_service | 本工具用于发起导航请求,支持根据用户设定目的地、出发地、出行方式及途径地点规划路线,地址仅支持中国境内,并可指定特定的导航应用。支持指定高德地图、百度地图。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
172
|
+
| navigation_service | 本工具用于发起导航请求,支持根据用户设定目的地、出发地、出行方式及途径地点规划路线,地址仅支持中国境内,并可指定特定的导航应用。支持指定高德地图、百度地图。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
173
|
+
| open_payment_code | 本工具用于打开支付宝或微信的付款相关页面,以及支付宝收款页面。当用户询问我要付款、我要收款、打开付款码、打开收款码等支付相关问题时调用。注意:本工具为跳转类工具,仅能打开对应页面,无法直接完成支付或返回交易结果。支付支持支付宝和微信直接打开;收款支持支付宝直接打开收款页面,若选择微信收款,则实际打开微信收付款主页面。未指定应用时,默认使用支付宝。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
174
|
+
| open_payment_code | 本工具用于打开支付宝或微信的付款相关页面,以及支付宝收款页面。当用户询问我要付款、我要收款、打开付款码、打开收款码等支付相关问题时调用。注意:本工具为跳转类工具,仅能打开对应页面,无法直接完成支付或返回交易结果。支付支持支付宝和微信直接打开;收款支持支付宝直接打开收款页面,若选择微信收款,则实际打开微信收付款主页面。未指定应用时,默认使用支付宝。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
175
|
+
| open_transport_code | 本工具用于快速打开支付宝、微信和云闪付的公交/地铁乘车码页面,方便用户快捷出行,并可指定使用的应用。仅支持指定支付宝、微信和云闪付。注意:支付宝支持指定打开公交码或地铁码;微信和云闪付仅支持跳转至上一次打开的乘车码页面,不支持指定打开公交码或地铁。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
176
|
+
| open_transport_code | 本工具用于快速打开支付宝、微信和云闪付的公交/地铁乘车码页面,方便用户快捷出行,并可指定使用的应用。仅支持指定支付宝、微信和云闪付。注意:支付宝支持指定打开公交码或地铁码;微信和云闪付仅支持跳转至上一次打开的乘车码页面,不支持指定打开公交码或地铁。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
177
|
+
| operateMusic | 该工具用于控制音乐的播放行为,仅限QQ音乐/网易云音乐/酷狗音乐/荣耀音乐,支持音乐的关闭播放、暂停播放、重新播放、继续播放" | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
178
|
+
| operateMusic | 该工具用于控制音乐的播放行为,仅限QQ音乐/网易云音乐/酷狗音乐/荣耀音乐,支持音乐的关闭播放、暂停播放、重新播放、继续播放" | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
179
|
+
| operateRhythm | 该工具用于控制Robotphone手机云台的律动状态,支持开启或关闭律动功能。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
180
|
+
| operateRhythm | 该工具用于控制Robotphone手机云台的律动状态,支持开启或关闭律动功能。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
181
|
+
| operateVideo | 该工具用于控制视频播放行为,仅限爱奇艺/优酷视频/腾讯视频/荣耀视频,支持视频的关闭播放、暂停播放、重新播放、继续播放。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
182
|
+
| operateVideo | 该工具用于控制视频播放行为,仅限爱奇艺/优酷视频/腾讯视频/荣耀视频,支持视频的关闭播放、暂停播放、重新播放、继续播放。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
183
|
+
| playMusic | 该API是一个音乐领域的播放接口,仅限于QQ音乐、网易云音乐、酷狗音乐和荣耀音乐四个平台,用于对各类音乐资源进行查找与检索,并默认播放音乐。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
184
|
+
| playMusic | 该API是一个音乐领域的播放接口,仅限于QQ音乐、网易云音乐、酷狗音乐和荣耀音乐四个平台,用于对各类音乐资源进行查找与检索,并默认播放音乐。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
185
|
+
| playNews | 用于新闻内容的语音播报。支持早报、晚报、日报、简报等预置新闻播报内容,当用户说'播放早报'、'我想听YOYO日报'、'来点午间简报'等触发词时可调用。不适用于:新闻检索、指定主题新闻查询、新闻摘要生成、实时新闻获取等场景。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
186
|
+
| playNews | 用于新闻内容的语音播报。支持早报、晚报、日报、简报等预置新闻播报内容,当用户说'播放早报'、'我想听YOYO日报'、'来点午间简报'等触发词时可调用。不适用于:新闻检索、指定主题新闻查询、新闻摘要生成、实时新闻获取等场景。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
187
|
+
| playVideo | 该API 用于在爱奇艺、优酷视频、腾讯视频、荣耀视频中查找、检索或播放视频内容,支持按内容类型、人物、来源等条件筛选;当用户有播放意图时可直接跳转到视频应用并播放视频,无播放意图时仅跳到视频应用并执行搜索或查找。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
188
|
+
| playVideo | 该API 用于在爱奇艺、优酷视频、腾讯视频、荣耀视频中查找、检索或播放视频内容,支持按内容类型、人物、来源等条件筛选;当用户有播放意图时可直接跳转到视频应用并播放视频,无播放意图时仅跳到视频应用并执行搜索或查找。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
189
|
+
| recognitionMusic | 打开指定音乐应用的听歌识曲功能入口。如果用户想识别周围环境中的音乐,可以使用该工具跳到对应应用进行识别。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
190
|
+
| redial_recall | 用于从通话记录中查找最近符合条件的通话,并返回重拨/回拨的二次确认卡片。支持以下场景: 1. 重拨:查找最近一次呼出记录 2. 回拨已接听来电:查找最近一次已接听来电 3. 回拨未接听来电:查找最近一次未接/拒接来电 4. 回拨全部来电:查找最近一次来电(含已接、未接、拒接) 如果用户想重拨最近呼出或回拨最近来电,可以使用该工具进入确认后拨打流程。工具会先返回二次确认卡片,用户确认后执行拨打;支持通过 confirmState 表示确认或取消。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
191
|
+
| renewal_query | 本工具用于打开支付宝APP的自动续费管理页面。当用户想查看、管理或取消本人的自动续费项目时,可调用该工具跳转到支付宝自动续费页面进行操作。注意:该工具为跳转类工具,仅支持跳转支付宝应用,无法返回具体的自动续费项目数据。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
192
|
+
| renewal_query | 本工具用于打开支付宝APP的自动续费管理页面。当用户想查看、管理或取消本人的自动续费项目时,可调用该工具跳转到支付宝自动续费页面进行操作。注意:该工具为跳转类工具,仅支持跳转支付宝应用,无法返回具体的自动续费项目数据。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
193
|
+
| role_play | 用于开启角色扮演对话模式,仅在用户明确提出角色扮演、情境模拟或要求助手扮演特定身份时调用。该工具只负责触发角色扮演会话入口,不负责执行信息检索、任务处理或生成工具外部结果,具体对话内容由后续对话系统处理。普通闲聊、常规问答、事实查询或非角色扮演类请求不适用该工具。通过跳转闭环,只能打开角色扮演会话入口,不能返回具体数据。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
194
|
+
| role_play | 用于开启角色扮演对话模式,仅在用户明确提出角色扮演、情境模拟或要求助手扮演特定身份时调用。该工具只负责触发角色扮演会话入口,不负责执行信息检索、任务处理或生成工具外部结果,具体对话内容由后续对话系统处理。普通闲聊、常规问答、事实查询或非角色扮演类请求不适用该工具。通过跳转闭环,只能打开角色扮演会话入口,不能返回具体数据。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
195
|
+
| search_app | 支持用户在应用市场搜索或推荐APP应用。工具会根据应用名称或类别关键词在指定渠道进行搜索,返回匹配结果或推荐列表。不涉及下载、安装、打开、升级或任何App内部操作。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
196
|
+
| setMusicPlayMode | 该工具用于切换音乐媒体播放模式,仅限QQ/网易云/酷狗/荣耀音乐,支持对正在播放的音乐内容进行顺序播放、随机播放、单曲循环播放、列表循环等播放模式调整。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
197
|
+
| setMusicPlayMode | 该工具用于切换音乐媒体播放模式,仅限QQ/网易云/酷狗/荣耀音乐,支持对正在播放的音乐内容进行顺序播放、随机播放、单曲循环播放、列表循环等播放模式调整。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
198
|
+
| switchMusic | 对音乐进行“上一首/个”或“下一首/个”的切换操作,仅限QQ/网易云/酷狗/荣耀音乐。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
199
|
+
| switchMusic | 对音乐进行“上一首/个”或“下一首/个”的切换操作,仅限QQ/网易云/酷狗/荣耀音乐。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
200
|
+
| update_app | 打开指定应用市场中的应用升级页面或升级入口。可根据应用名称和渠道进入对应应用市场页面;如果用户想升级某个已安装的APP,可以使用该工具进入相应页面进行后续操作。仅用于页面跳转,不涉及升级后的打开、配置或任何App内部功能操作,也不能返回具体数据。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
201
|
+
| vision_image_generate | 图像创作工具,用于根据文字描述生成图片,或基于输入图片进行再创作与图片融合。适用场景包括:文生图片为仅基于文字生成图片;图生图片为基于至少一张输入图片并结合文字进行编辑或再创作;图片融合为基于两张及以上输入图片合成为一张新图。不适用于:图片内容识别、视觉问答、OCR识别、目标检测、纯图片理解。 | 71aaee031dccf276e55f2b6b9e447921b86427a2806c90762f97b1f03f622222 |
|
|
202
|
+
| vision_image_generate | 图像创作工具,用于根据文字描述生成图片,或基于输入图片进行再创作与图片融合。适用场景包括:文生图片为仅基于文字生成图片;图生图片为基于至少一张输入图片并结合文字进行编辑或再创作;图片融合为基于两张及以上输入图片合成为一张新图。不适用于:图片内容识别、视觉问答、OCR识别、目标检测、纯图片理解。 | dd9990c720b30929153d7976784d819d23a49ffd132a37f30c29c85ec5a09e80 |
|
|
203
|
+
<!-- yoyo-mcp-tools:end -->
|
|
154
204
|
|
|
155
205
|
**当工具支持的设备ID列表中包含当前设备ID时,该工具才可被调用。**
|
|
156
206
|
|