@honor-claw/yoyo 2026.6.9 → 2026.7.1-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.
Files changed (228) hide show
  1. package/dist/apis/claw-cloud.mjs +39 -9
  2. package/dist/apis/helpers.mjs +4 -1
  3. package/dist/apis/hosts.mjs +9 -12
  4. package/dist/apis/http-client.mjs +5 -6
  5. package/dist/capabilities/cloud-invoke/index.mjs +1 -0
  6. package/dist/capabilities/cloud-invoke/invoke.mjs +43 -0
  7. package/dist/capabilities/node/invoke.mjs +2 -2
  8. package/dist/capabilities/node/types.mjs +1 -1
  9. package/dist/capabilities/remote-file/errors.mjs +22 -0
  10. package/dist/capabilities/remote-file/index.mjs +5 -0
  11. package/dist/capabilities/remote-file/normalize.mjs +27 -0
  12. package/dist/capabilities/remote-file/obs-transfer.mjs +52 -0
  13. package/dist/capabilities/remote-file/paths.mjs +73 -0
  14. package/dist/capabilities/remote-file/progress.mjs +31 -0
  15. package/dist/capabilities/remote-file/remote-file.mjs +71 -0
  16. package/dist/cli/env/impl.mjs +3 -3
  17. package/dist/cloud-channel/handlers/context/handler.mjs +6 -3
  18. package/dist/core/hooks/tool-trace.mjs +10 -6
  19. package/dist/core/prompt/builder.mjs +13 -8
  20. package/dist/core/prompt/cloud-tool.mjs +7 -0
  21. package/dist/diagnose/collectors/account.mjs +15 -18
  22. package/dist/gateway/client/auth/index.mjs +0 -1
  23. package/dist/messaging/dispatchers/stream/controller.mjs +91 -27
  24. package/dist/messaging/dispatchers/stream/emitters.mjs +62 -0
  25. package/dist/messaging/dispatchers/stream/error.mjs +1 -2
  26. package/dist/messaging/dispatchers/stream/index.mjs +1 -1
  27. package/dist/messaging/dispatchers/stream/resolvers.mjs +27 -16
  28. package/dist/messaging/dispatchers/stream/session.mjs +20 -7
  29. package/dist/messaging/target/outbound.mjs +13 -13
  30. package/dist/messaging/trace/lifecycle.mjs +16 -3
  31. package/dist/messaging/trace/tool-context.mjs +30 -17
  32. package/dist/modules/configs/plugin-init.mjs +4 -1
  33. package/dist/provisioning/registration/register.mjs +34 -39
  34. package/dist/schemas.mjs +4 -0
  35. package/dist/tools/cloud-invoke/index.mjs +1 -0
  36. package/dist/tools/cloud-invoke/tool.mjs +48 -0
  37. package/dist/tools/index.mjs +12 -6
  38. package/dist/tools/node-invoke/status-mapper.mjs +14 -10
  39. package/dist/tools/node-invoke/task-result-query.mjs +22 -0
  40. package/dist/tools/node-invoke/tool.mjs +19 -18
  41. package/dist/tools/remote-file-download/helpers.mjs +30 -0
  42. package/dist/tools/remote-file-download/index.mjs +1 -0
  43. package/dist/tools/remote-file-download/run.mjs +137 -0
  44. package/dist/tools/remote-file-download/tool.mjs +37 -0
  45. package/dist/tools/remote-file-upload/helpers.mjs +67 -0
  46. package/dist/tools/remote-file-upload/index.mjs +1 -0
  47. package/dist/tools/remote-file-upload/run.mjs +278 -0
  48. package/dist/tools/remote-file-upload/tool.mjs +23 -0
  49. package/dist/utils/env.mjs +2 -0
  50. package/openclaw.plugin.json +10 -3
  51. package/package.json +1 -1
  52. package/skills/yoyo-file-transfer/SKILL.md +143 -0
  53. package/skills/yoyo-file-transfer/references/pc-to-phone.md +148 -0
  54. package/skills/yoyo-file-transfer/references/phone-to-pc.md +157 -0
  55. package/skills/yoyo-phone-control/SKILL.md +12 -1
  56. package/skills/yoyo-phone-control/mcptools/about_device.json +72 -0
  57. package/skills/yoyo-phone-control/mcptools/adjust_brightness.json +84 -0
  58. package/skills/yoyo-phone-control/mcptools/ai_caption.json +89 -0
  59. package/skills/yoyo-phone-control/mcptools/airplane_mode.json +1 -1
  60. package/skills/yoyo-phone-control/mcptools/answer_phone.json +35 -0
  61. package/skills/yoyo-phone-control/mcptools/aod.json +68 -0
  62. package/skills/yoyo-phone-control/mcptools/app_clone.json +77 -0
  63. package/skills/yoyo-phone-control/mcptools/app_lock.json +28 -0
  64. package/skills/yoyo-phone-control/mcptools/app_manager.json +88 -0
  65. package/skills/yoyo-phone-control/mcptools/auto_intercept_one_ring_call.json +64 -0
  66. package/skills/yoyo-phone-control/mcptools/auto_rotate.json +58 -0
  67. package/skills/yoyo-phone-control/mcptools/battery.json +1 -1
  68. package/skills/yoyo-phone-control/mcptools/bluetooth.json +1 -1
  69. package/skills/yoyo-phone-control/mcptools/book_train_ticket.json +59 -0
  70. package/skills/yoyo-phone-control/mcptools/camera.json +3 -0
  71. package/skills/yoyo-phone-control/mcptools/cancel_countdown_timer.json +9 -2
  72. package/skills/yoyo-phone-control/mcptools/cancel_countup_timer.json +41 -0
  73. package/skills/yoyo-phone-control/mcptools/capture_screenshot.json +7 -50
  74. package/skills/yoyo-phone-control/mcptools/check_alarm.json +5 -25
  75. package/skills/yoyo-phone-control/mcptools/check_countdown_timer.json +1 -1
  76. package/skills/yoyo-phone-control/mcptools/check_countup_timer.json +41 -0
  77. package/skills/yoyo-phone-control/mcptools/check_schedule.json +17 -14
  78. package/skills/yoyo-phone-control/mcptools/check_todo.json +11 -12
  79. package/skills/yoyo-phone-control/mcptools/clean_dirty.json +1 -1
  80. package/skills/yoyo-phone-control/mcptools/close_alarm.json +9 -2
  81. package/skills/yoyo-phone-control/mcptools/close_app.json +1 -1
  82. package/skills/yoyo-phone-control/mcptools/close_countdown_timer.json +6 -2
  83. package/skills/yoyo-phone-control/mcptools/close_countup_timer.json +45 -0
  84. package/skills/yoyo-phone-control/mcptools/close_ring.json +53 -0
  85. package/skills/yoyo-phone-control/mcptools/close_schedule.json +37 -0
  86. package/skills/yoyo-phone-control/mcptools/color_temp.json +70 -0
  87. package/skills/yoyo-phone-control/mcptools/configure_auto_record.json +66 -0
  88. package/skills/yoyo-phone-control/mcptools/control_center.json +28 -0
  89. package/skills/yoyo-phone-control/mcptools/copy_file.json +70 -0
  90. package/skills/yoyo-phone-control/mcptools/create_alarm.json +13 -1
  91. package/skills/yoyo-phone-control/mcptools/create_countdown_timer.json +1 -1
  92. package/skills/yoyo-phone-control/mcptools/create_countup_timer.json +45 -0
  93. package/skills/yoyo-phone-control/mcptools/create_file.json +63 -0
  94. package/skills/yoyo-phone-control/mcptools/create_schedule.json +30 -4
  95. package/skills/yoyo-phone-control/mcptools/create_todo.json +22 -6
  96. package/skills/yoyo-phone-control/mcptools/dark_mode.json +1 -1
  97. package/skills/yoyo-phone-control/mcptools/delay_ring.json +59 -0
  98. package/skills/yoyo-phone-control/mcptools/delete_alarm.json +9 -2
  99. package/skills/yoyo-phone-control/mcptools/delete_schedule.json +22 -3
  100. package/skills/yoyo-phone-control/mcptools/delete_todo.json +91 -8
  101. package/skills/yoyo-phone-control/mcptools/desktop.json +20 -150
  102. package/skills/yoyo-phone-control/mcptools/digital_balance.json +72 -0
  103. package/skills/yoyo-phone-control/mcptools/display_and_brightness.json +75 -0
  104. package/skills/yoyo-phone-control/mcptools/download_app.json +67 -0
  105. package/skills/yoyo-phone-control/mcptools/express_logistics_query.json +4 -5
  106. package/skills/yoyo-phone-control/mcptools/eyecomfort.json +4 -1
  107. package/skills/yoyo-phone-control/mcptools/find_device.json +38 -0
  108. package/skills/yoyo-phone-control/mcptools/find_phone.json +47 -0
  109. package/skills/yoyo-phone-control/mcptools/flashlight.json +1 -1
  110. package/skills/yoyo-phone-control/mcptools/free_screen.json +76 -0
  111. package/skills/yoyo-phone-control/mcptools/get_address_lat_lng.json +86 -0
  112. package/skills/yoyo-phone-control/mcptools/get_user_location.json +3 -22
  113. package/skills/yoyo-phone-control/mcptools/gui_task_create.json +116 -0
  114. package/skills/yoyo-phone-control/mcptools/gui_task_pause.json +1 -2
  115. package/skills/yoyo-phone-control/mcptools/gui_task_terminate.json +70 -0
  116. package/skills/yoyo-phone-control/mcptools/hang_up_phone.json +35 -0
  117. package/skills/yoyo-phone-control/mcptools/harassment.json +55 -0
  118. package/skills/yoyo-phone-control/mcptools/honor_board.json +92 -0
  119. package/skills/yoyo-phone-control/mcptools/honor_share.json +72 -0
  120. package/skills/yoyo-phone-control/mcptools/hotspot.json +1 -1
  121. package/skills/yoyo-phone-control/mcptools/hover_button.json +1 -1
  122. package/skills/yoyo-phone-control/mcptools/identify_food_calories.json +60 -0
  123. package/skills/yoyo-phone-control/mcptools/image_search_commodity.json +74 -0
  124. package/skills/yoyo-phone-control/mcptools/image_to_document_router.json +73 -0
  125. package/skills/yoyo-phone-control/mcptools/input_method.json +42 -0
  126. package/skills/yoyo-phone-control/mcptools/jump_video_progress.json +55 -0
  127. package/skills/yoyo-phone-control/mcptools/language.json +59 -0
  128. package/skills/yoyo-phone-control/mcptools/local_user_data_qa.json +124 -0
  129. package/skills/yoyo-phone-control/mcptools/local_user_file_search.json +35 -27
  130. package/skills/yoyo-phone-control/mcptools/location_service.json +1 -1
  131. package/skills/yoyo-phone-control/mcptools/magazine_unlock.json +80 -0
  132. package/skills/yoyo-phone-control/mcptools/magic_portal.json +58 -0
  133. package/skills/yoyo-phone-control/mcptools/migrate.json +84 -0
  134. package/skills/yoyo-phone-control/mcptools/mobile_data.json +12 -16
  135. package/skills/yoyo-phone-control/mcptools/modify_alarm.json +146 -0
  136. package/skills/yoyo-phone-control/mcptools/modify_schedule.json +33 -9
  137. package/skills/yoyo-phone-control/mcptools/modify_todo.json +94 -7
  138. package/skills/yoyo-phone-control/mcptools/motion_sickness_relief.json +76 -0
  139. package/skills/yoyo-phone-control/mcptools/move_file.json +73 -0
  140. package/skills/yoyo-phone-control/mcptools/multi_screen.json +169 -0
  141. package/skills/yoyo-phone-control/mcptools/multi_window.json +99 -0
  142. package/skills/yoyo-phone-control/mcptools/multimodal_dialogue.json +73 -0
  143. package/skills/yoyo-phone-control/mcptools/musicFeedbackAction.json +1 -1
  144. package/skills/yoyo-phone-control/mcptools/navigation_bar.json +60 -0
  145. package/skills/yoyo-phone-control/mcptools/navigation_service.json +129 -0
  146. package/skills/yoyo-phone-control/mcptools/net_accelerate.json +72 -0
  147. package/skills/yoyo-phone-control/mcptools/nfc.json +1 -1
  148. package/skills/yoyo-phone-control/mcptools/no_disturb.json +1 -1
  149. package/skills/yoyo-phone-control/mcptools/no_disturb_schedule.json +84 -0
  150. package/skills/yoyo-phone-control/mcptools/notification_sound.json +83 -0
  151. package/skills/yoyo-phone-control/mcptools/onehanded_mode.json +5 -26
  152. package/skills/yoyo-phone-control/mcptools/open_alarm.json +9 -2
  153. package/skills/yoyo-phone-control/mcptools/open_app.json +1 -1
  154. package/skills/yoyo-phone-control/mcptools/open_countdown_timer.json +0 -1
  155. package/skills/yoyo-phone-control/mcptools/open_countup_timer.json +47 -0
  156. package/skills/yoyo-phone-control/mcptools/open_schedule.json +35 -0
  157. package/skills/yoyo-phone-control/mcptools/open_transport_code.json +1 -1
  158. package/skills/yoyo-phone-control/mcptools/operateMusic.json +1 -1
  159. package/skills/yoyo-phone-control/mcptools/operateRhythm.json +1 -2
  160. package/skills/yoyo-phone-control/mcptools/operateVideo.json +2 -2
  161. package/skills/yoyo-phone-control/mcptools/operate_audio.json +64 -0
  162. package/skills/yoyo-phone-control/mcptools/outdoor_mode.json +68 -0
  163. package/skills/yoyo-phone-control/mcptools/parallel_space.json +59 -0
  164. package/skills/yoyo-phone-control/mcptools/pause_countdown_timer.json +9 -2
  165. package/skills/yoyo-phone-control/mcptools/pause_countup_timer.json +45 -0
  166. package/skills/yoyo-phone-control/mcptools/phone_service.json +83 -0
  167. package/skills/yoyo-phone-control/mcptools/playMusic.json +1 -1
  168. package/skills/yoyo-phone-control/mcptools/playVideo.json +11 -3
  169. package/skills/yoyo-phone-control/mcptools/play_audio.json +66 -0
  170. package/skills/yoyo-phone-control/mcptools/print_file.json +60 -0
  171. package/skills/yoyo-phone-control/mcptools/ptz_control.json +62 -0
  172. package/skills/yoyo-phone-control/mcptools/query_group_buy.json +86 -0
  173. package/skills/yoyo-phone-control/mcptools/quiet_mode.json +1 -1
  174. package/skills/yoyo-phone-control/mcptools/read_schedule.json +77 -0
  175. package/skills/yoyo-phone-control/mcptools/recognitionMusic.json +1 -1
  176. package/skills/yoyo-phone-control/mcptools/record.json +1 -1
  177. package/skills/yoyo-phone-control/mcptools/remote_control.json +98 -0
  178. package/skills/yoyo-phone-control/mcptools/renewal_query.json +63 -0
  179. package/skills/yoyo-phone-control/mcptools/restart_countdown_timer.json +9 -2
  180. package/skills/yoyo-phone-control/mcptools/restart_countup_timer.json +49 -0
  181. package/skills/yoyo-phone-control/mcptools/restore_screen_display.json +55 -0
  182. package/skills/yoyo-phone-control/mcptools/resume_countdown_timer.json +9 -2
  183. package/skills/yoyo-phone-control/mcptools/resume_countup_timer.json +41 -0
  184. package/skills/yoyo-phone-control/mcptools/ring_tone.json +102 -0
  185. package/skills/yoyo-phone-control/mcptools/ringing_mode.json +1 -1
  186. package/skills/yoyo-phone-control/mcptools/save_file.json +70 -0
  187. package/skills/yoyo-phone-control/mcptools/scan_code.json +1 -1
  188. package/skills/yoyo-phone-control/mcptools/scheduled_power_operation.json +76 -0
  189. package/skills/yoyo-phone-control/mcptools/screen_saver.json +72 -0
  190. package/skills/yoyo-phone-control/mcptools/scroll_page.json +30 -0
  191. package/skills/yoyo-phone-control/mcptools/search_nearby_share_device.json +63 -0
  192. package/skills/yoyo-phone-control/mcptools/search_notification.json +64 -0
  193. package/skills/yoyo-phone-control/mcptools/send_express.json +51 -0
  194. package/skills/yoyo-phone-control/mcptools/send_message.json +5 -6
  195. package/skills/yoyo-phone-control/mcptools/setMusicPlayMode.json +1 -1
  196. package/skills/yoyo-phone-control/mcptools/set_auto_record.json +53 -0
  197. package/skills/yoyo-phone-control/mcptools/set_specified_number_auto_record.json +77 -0
  198. package/skills/yoyo-phone-control/mcptools/set_video_clarity.json +63 -0
  199. package/skills/yoyo-phone-control/mcptools/set_video_play_mode.json +46 -0
  200. package/skills/yoyo-phone-control/mcptools/set_video_playback_speed.json +42 -0
  201. package/skills/yoyo-phone-control/mcptools/simple_mode.json +75 -0
  202. package/skills/yoyo-phone-control/mcptools/smart_call.json +99 -0
  203. package/skills/yoyo-phone-control/mcptools/smart_cover.json +68 -0
  204. package/skills/yoyo-phone-control/mcptools/sound_and_vibration.json +71 -0
  205. package/skills/yoyo-phone-control/mcptools/status_bar_show.json +1 -1
  206. package/skills/yoyo-phone-control/mcptools/storage.json +117 -0
  207. package/skills/yoyo-phone-control/mcptools/switchMusic.json +1 -1
  208. package/skills/yoyo-phone-control/mcptools/switch_audio.json +50 -0
  209. package/skills/yoyo-phone-control/mcptools/switch_video.json +60 -0
  210. package/skills/yoyo-phone-control/mcptools/system_update.json +48 -0
  211. package/skills/yoyo-phone-control/mcptools/theme.json +65 -0
  212. package/skills/yoyo-phone-control/mcptools/toAntiVirusActivity.json +82 -0
  213. package/skills/yoyo-phone-control/mcptools/toggle_auto_brightness.json +58 -0
  214. package/skills/yoyo-phone-control/mcptools/uninstall_app.json +1 -1
  215. package/skills/yoyo-phone-control/mcptools/update_app.json +65 -0
  216. package/skills/yoyo-phone-control/mcptools/usb_debug.json +68 -0
  217. package/skills/yoyo-phone-control/mcptools/usb_shared_network.json +4 -3
  218. package/skills/yoyo-phone-control/mcptools/wlan.json +1 -1
  219. package/skills/yoyo-phone-control/mcptools/yoyo_calendar.json +56 -0
  220. package/skills/yoyo-phone-control/mcptools/yoyo_suggestions.json +115 -0
  221. package/skills/yoyo-phone-control/references/local-user-file-search.md +7 -0
  222. package/skills/yoyo-smart-home/SKILL.md +78 -0
  223. package/skills/yoyo-smart-home/mcptools/device_control.json +136 -0
  224. package/skills/yoyo-smart-home/mcptools/device_query.json +114 -0
  225. package/skills/yoyo-smart-home/mcptools/skill_exit.json +6 -0
  226. package/dist/gateway/client/auth/gateway-auth.mjs +0 -16
  227. package/dist/messaging/dispatchers/stream/hooks.mjs +0 -48
  228. package/dist/utils/hash.mjs +0 -10
@@ -10,27 +10,24 @@ var o = class {
10
10
  constructor(e, t) {
11
11
  this.httpClient = new i(e, t);
12
12
  }
13
- async registerDevice(n, r, i) {
14
- let a = {
13
+ async registerDevice(n, r) {
14
+ let i = {
15
15
  "x-trace-id": t(),
16
16
  "x-jwt-token": r.token,
17
17
  "x-device-id": n.deviceId
18
- }, o = {
18
+ }, a = {
19
19
  businessTag: "YOYO_CLAW",
20
20
  role: "yoyoclaw",
21
21
  deviceInfo: {
22
22
  ...n,
23
23
  manufacture: n.manufacture,
24
24
  brand: n.brand,
25
- bizExtInfo: {
26
- ...i,
27
- pluginVersionCode: String(e())
28
- }
25
+ bizExtInfo: { pluginVersionCode: String(e()) }
29
26
  }
30
27
  };
31
28
  return this.httpClient.post("/v1/device/registry", {
32
- headers: a,
33
- body: o
29
+ headers: i,
30
+ body: a
34
31
  });
35
32
  }
36
33
  async logoutDevice(e, n) {
@@ -69,6 +66,39 @@ var o = class {
69
66
  timeout: r?.timeoutMs ?? 3e4
70
67
  });
71
68
  }
69
+ async invokeCloudTool(e, n, r) {
70
+ let i = {
71
+ "x-trace-id": t(),
72
+ "x-jwt-token": n.token
73
+ }, a = {
74
+ pluginService: { serviceId: r.serviceId },
75
+ pluginParams: r.pluginParams,
76
+ device: {
77
+ deviceId: e.deviceId,
78
+ role: "yoyoclaw",
79
+ port: e.port
80
+ }
81
+ };
82
+ return this.httpClient.post("/icsplugin/execute", {
83
+ headers: i,
84
+ body: a,
85
+ timeout: r?.timeoutMs ?? 3e4
86
+ });
87
+ }
88
+ async getUploadLink(e, n, r, i) {
89
+ let a = {
90
+ "x-trace-id": t(),
91
+ "x-jwt-token": n.token,
92
+ "x-device-id": e.deviceId,
93
+ "x-udid": e.deviceId
94
+ };
95
+ return this.httpClient.post("/v1/files/upload/link", {
96
+ headers: a,
97
+ body: r,
98
+ timeout: i?.timeoutMs ?? 3e4,
99
+ ...i?.signal ? { signal: i.signal } : {}
100
+ });
101
+ }
72
102
  async exchangeToken(e, r) {
73
103
  let i = t(), o = {
74
104
  "Content-Type": "application/json",
@@ -2,5 +2,8 @@
2
2
  function e(e) {
3
3
  return e.status >= 200 && e.status < 300 && e.data.code === "1";
4
4
  }
5
+ function t(e) {
6
+ return e.status >= 200 && e.status < 300 && e.data.code === "YOYO_CLAW_100000";
7
+ }
5
8
  //#endregion
6
- export { e as isOKResponse };
9
+ export { t as isClawResponseOk, e as isOKResponse };
@@ -5,22 +5,19 @@ function t() {
5
5
  let { envInfo: t, grayTag: n } = e(), r;
6
6
  switch (t.env) {
7
7
  case "dev":
8
- r = {
9
- clawCloud: "omni-dev-drcn.hiboard.hihonorcloud.com",
10
- ics: "api-agd-test-drcn.hiboard.hihonorcloud.com"
11
- };
8
+ r = { clawCloud: "omni-dev-drcn.hiboard.hihonorcloud.com" };
12
9
  break;
13
10
  case "test":
14
- r = {
15
- clawCloud: "omni-pre-drcn.hiboard.hihonorcloud.com",
16
- ics: "api-agd-test-drcn.hiboard.hihonorcloud.com"
17
- };
11
+ r = { clawCloud: "omni-pre-drcn.hiboard.hihonorcloud.com" };
12
+ break;
13
+ case "sit":
14
+ r = { clawCloud: "omni-sit-drcn.hiboard.hihonorcloud.com" };
15
+ break;
16
+ case "auto":
17
+ r = { clawCloud: "omni-auto-drcn.hiboard.hihonorcloud.com" };
18
18
  break;
19
19
  default:
20
- r = {
21
- clawCloud: "yoyoclaw-drcn.hiboard.hihonorcloud.com",
22
- ics: "api-prd-drcn.hiboard.hihonorcloud.com"
23
- };
20
+ r = { clawCloud: "yoyoclaw-drcn.hiboard.hihonorcloud.com" };
24
21
  break;
25
22
  }
26
23
  return n && (r.grayTag = n), r;
@@ -31,18 +31,17 @@ var a = class extends Error {
31
31
  let f = {
32
32
  ...this.defaultHeaders,
33
33
  ...s
34
- };
35
- c && !f["Content-Type"] && (f["Content-Type"] = "application/json");
36
- let p;
37
- c != null && (p = typeof c == "string" ? c : JSON.stringify(c));
34
+ }, p = typeof c == "object" && !!c && (typeof c.read == "function" || Buffer.isBuffer(c)), m;
35
+ c != null && (m = p || typeof c == "string" ? c : JSON.stringify(c)), c && !p && !f["Content-Type"] && (f["Content-Type"] = "application/json");
38
36
  try {
39
37
  let e = n(t(), r.disableProxy) && this.proxyAgent ? this.proxyAgent : void 0, s = await i(d, {
40
38
  method: o,
41
39
  headers: f,
42
- body: p,
40
+ body: m,
43
41
  headersTimeout: l,
44
42
  bodyTimeout: l,
45
- dispatcher: e
43
+ dispatcher: e,
44
+ ...r.signal ? { signal: r.signal } : {}
46
45
  }), c = await s.body.text(), u;
47
46
  try {
48
47
  u = c ? JSON.parse(c) : {};
@@ -0,0 +1 @@
1
+ import "./invoke.mjs";
@@ -0,0 +1,43 @@
1
+ import { toErrorMessage as e } from "../../utils/error.mjs";
2
+ import { clawLogger as t } from "../../utils/claw-logger.mjs";
3
+ import { HonorAccount as n } from "../../honor-auth/vault/impl.mjs";
4
+ import { createClawCloudClient as r } from "../../apis/claw-cloud.mjs";
5
+ import { loadDeviceInfo as i } from "../../modules/device/device-info.mjs";
6
+ import "../../modules/device/index.mjs";
7
+ import "../../honor-auth/vault/index.mjs";
8
+ import "../../apis/index.mjs";
9
+ import { ToolError as a } from "../../tools/error.mjs";
10
+ //#region src/capabilities/cloud-invoke/invoke.ts
11
+ var o = t("capabilities");
12
+ async function s(t) {
13
+ let s = await n.fromUser().current();
14
+ if (!s?.token || !s.userId) throw o.error("cloud invoke skipped: no current user"), new a("unauthorized", "missing current user token");
15
+ let c;
16
+ try {
17
+ c = await i();
18
+ } catch (e) {
19
+ throw o.error("cloud invoke failed to get device info", e), new a("ctx missing", "failed to get device info", { cause: e });
20
+ }
21
+ try {
22
+ let e = await r().invokeCloudTool(c, s, {
23
+ serviceId: t.toolId,
24
+ pluginParams: t.params ?? {},
25
+ ...t.timeoutMs === void 0 ? {} : { timeoutMs: t.timeoutMs }
26
+ }), n = e.data, i = e.status >= 200 && e.status < 300, l = n?.code === "0", u = n?.code === "ICS-500";
27
+ if (!i || !l && !u) throw o.error("cloud invoke response not ok", null, {
28
+ status: e.status,
29
+ code: n?.code,
30
+ cnMessage: n?.cnMessage,
31
+ cpErrorCode: n?.data?.cpErrorCode
32
+ }), new a("api_failed", `code=${n?.code ?? "-"} cpErrorCode=${n?.data?.cpErrorCode ?? "-"} message=${n?.cnMessage ?? "-"}`);
33
+ return {
34
+ ...n.data === void 0 ? {} : { pluginResponse: n.data },
35
+ code: e.data.code,
36
+ cnMessage: e.data.cnMessage
37
+ };
38
+ } catch (t) {
39
+ throw t instanceof a ? t : (o.error("cloud invoke failed", t), new a("network_error", e(t), { cause: t }));
40
+ }
41
+ }
42
+ //#endregion
43
+ export { s as invokeCloudToolService };
@@ -2,12 +2,12 @@ import { clawLogger as e } from "../../utils/claw-logger.mjs";
2
2
  import { buildEndpoint as t } from "../../cloud-channel/protocol/target.mjs";
3
3
  import { resolveEnabledYoyoAccountId as n } from "../../modules/configs/channel.mjs";
4
4
  import { ClawClient as r } from "../../connection/registry.mjs";
5
- import { getToolCallContext as i } from "../../messaging/trace/tool-context.mjs";
5
+ import { resolveOutboundTraceInfo as i } from "../../messaging/trace/tool-context.mjs";
6
6
  import "../../messaging/trace/index.mjs";
7
7
  //#region src/capabilities/node/invoke.ts
8
8
  var a = e("capabilities");
9
9
  async function o(e) {
10
- let a = i(e.toolCallId) ?? void 0, o = {
10
+ let a = i(e.toolCallId), o = {
11
11
  to: t("node", e.nodeId),
12
12
  msgType: "nodeInvokeRequest",
13
13
  data: { node: {
@@ -1,6 +1,6 @@
1
1
  //#region src/capabilities/node/types.ts
2
2
  var e = /* @__PURE__ */ function(e) {
3
- return e[e.Processing = 0] = "Processing", e[e.ProcessingAlt = 100] = "ProcessingAlt", e[e.Suspended = 101] = "Suspended", e[e.Success = 200] = "Success", e[e.InternalError = 300] = "InternalError", e[e.CompensationFailed = 400] = "CompensationFailed", e;
3
+ return e[e.Processing = 0] = "Processing", e[e.ProcessingAlt = 100] = "ProcessingAlt", e[e.Suspended = 101] = "Suspended", e[e.Success = 200] = "Success", e[e.InternalError = 300] = "InternalError", e[e.CompensationFailed = 400] = "CompensationFailed", e[e.UserRejected = 403] = "UserRejected", e;
4
4
  }({});
5
5
  //#endregion
6
6
  export { e as NodeInvokeRunStatusE };
@@ -0,0 +1,22 @@
1
+ //#region src/capabilities/remote-file/errors.ts
2
+ var e = class extends Error {
3
+ kind;
4
+ retryable;
5
+ meta;
6
+ constructor(e, t, n) {
7
+ super(t, n), this.name = "RemoteFileCapabilityError", this.kind = e, this.retryable = n?.retryable ?? e === "rate_limited", this.meta = n?.meta ?? {};
8
+ }
9
+ toRemoteFileError() {
10
+ return {
11
+ kind: this.kind,
12
+ message: this.message,
13
+ retryable: this.retryable,
14
+ meta: this.meta
15
+ };
16
+ }
17
+ };
18
+ function t(e) {
19
+ return e instanceof Error ? e.name === "AbortError" || /aborted/i.test(e.message) : !1;
20
+ }
21
+ //#endregion
22
+ export { e as RemoteFileCapabilityError, t as isAbortError };
@@ -0,0 +1,5 @@
1
+ import "./errors.mjs";
2
+ import "./remote-file.mjs";
3
+ import "./obs-transfer.mjs";
4
+ import "./paths.mjs";
5
+ import "./progress.mjs";
@@ -0,0 +1,27 @@
1
+ import { HttpError as e } from "../../apis/http-client.mjs";
2
+ import { RemoteFileCapabilityError as t, isAbortError as n } from "./errors.mjs";
3
+ //#region src/capabilities/remote-file/normalize.ts
4
+ function r(r) {
5
+ if (n(r)) return new t("network", "已取消本次传输", { cause: r });
6
+ if (r instanceof e) {
7
+ let e = typeof r.data == "string" ? r.data : JSON.stringify(r.data), n = e ? ` body=${e.slice(0, 200)}` : "";
8
+ return new t("business", `HTTP ${r.status}${n}`, { cause: r });
9
+ }
10
+ return new t("network", r instanceof Error ? r.message : String(r), { cause: r });
11
+ }
12
+ function i(t) {
13
+ if (t instanceof e) {
14
+ let e = typeof t.data == "string" ? t.data : JSON.stringify(t.data);
15
+ return {
16
+ httpStatus: t.status,
17
+ body: e ? e.slice(0, 200) : void 0
18
+ };
19
+ }
20
+ return { error: t instanceof Error ? t.message : String(t) };
21
+ }
22
+ function a(e) {
23
+ let n = e.data?.code ?? "", r = e.data?.cnMessage ?? "";
24
+ return n === "FUS-RATE_LIMIT_EXCEEDED" ? new t("rate_limited", "文件上传触发频率限制") : new t("business", r || `文件上传失败 (code: ${n})`);
25
+ }
26
+ //#endregion
27
+ export { i as errorLogMeta, r as normalizeNetworkError, a as normalizeUploadLinkError };
@@ -0,0 +1,52 @@
1
+ import { clawLogger as e } from "../../utils/claw-logger.mjs";
2
+ import { getProxyUrl as t, shouldUseProxy as n } from "../../utils/proxy.mjs";
3
+ import { RemoteFileCapabilityError as r } from "./errors.mjs";
4
+ import { errorLogMeta as i, normalizeNetworkError as a } from "./normalize.mjs";
5
+ import { createReadStream as o } from "node:fs";
6
+ import { ProxyAgent as s, request as c } from "undici";
7
+ //#region src/capabilities/remote-file/obs-transfer.ts
8
+ var l = e("capabilities"), u;
9
+ function d() {
10
+ if (u) return u;
11
+ let e = t();
12
+ return e && (u = new s(e)), u;
13
+ }
14
+ async function f(e, s, u) {
15
+ let f = o(s);
16
+ try {
17
+ let i = await c(e, {
18
+ method: "PUT",
19
+ body: f,
20
+ headersTimeout: 3e4,
21
+ bodyTimeout: 3e5,
22
+ dispatcher: n(t()) ? d() : void 0,
23
+ ...u ? { signal: u } : {}
24
+ });
25
+ if (await i.body.dump(), i.statusCode < 200 || i.statusCode >= 300) throw l.error("OBS upload failed: non success status", null, {
26
+ status: i.statusCode,
27
+ file: s
28
+ }), new r("obs", `OBS 上传失败 (status: ${i.statusCode})`, { meta: { statusCode: i.statusCode } });
29
+ } catch (e) {
30
+ throw e instanceof r ? e : (l.error("OBS upload request failed", e, {
31
+ file: s,
32
+ ...i(e)
33
+ }), a(e));
34
+ }
35
+ }
36
+ async function p(e, o) {
37
+ try {
38
+ let i = await c(e, {
39
+ method: "GET",
40
+ headersTimeout: 3e4,
41
+ bodyTimeout: 3e5,
42
+ dispatcher: n(t()) ? d() : void 0,
43
+ ...o ? { signal: o } : {}
44
+ });
45
+ if (i.statusCode < 200 || i.statusCode >= 300) throw await i.body.dump(), l.error("OBS download failed: non success status", null, { status: i.statusCode }), new r("obs", `OBS 下载失败 (status: ${i.statusCode})`, { meta: { statusCode: i.statusCode } });
46
+ return i;
47
+ } catch (e) {
48
+ throw e instanceof r ? e : (l.error("OBS download request failed", e, i(e)), a(e));
49
+ }
50
+ }
51
+ //#endregion
52
+ export { p as getFromObs, f as putToObs };
@@ -0,0 +1,73 @@
1
+ import { toErrorMessage as e } from "../../utils/error.mjs";
2
+ import { clawLogger as t } from "../../utils/claw-logger.mjs";
3
+ import { existsSync as n, readdirSync as r } from "node:fs";
4
+ import i from "node:path";
5
+ import a from "node:os";
6
+ import { canonicalPathFromExistingAncestor as o, ensureAbsoluteDirectory as s, resolveAbsolutePathForRead as c, resolveAbsolutePathForWrite as l, sanitizeUntrustedFileName as u } from "openclaw/plugin-sdk/security-runtime";
7
+ //#region src/capabilities/remote-file/paths.ts
8
+ var d = t("capabilities");
9
+ function f(e) {
10
+ if (!e) throw Error("path is required");
11
+ if (e.includes("\0")) throw Error("path must not contain NUL bytes");
12
+ if (!i.isAbsolute(e)) throw Error("path must be absolute");
13
+ }
14
+ var p = i.join(a.homedir(), ".openclaw", "downloads");
15
+ async function m(t) {
16
+ try {
17
+ return f(t), { absolutePath: await o((await c(t)).path) };
18
+ } catch (n) {
19
+ return d.error("resolve read path failed", n, { localPath: t }), {
20
+ error: !0,
21
+ message: `文件不存在或不可读: ${e(n)}`
22
+ };
23
+ }
24
+ }
25
+ async function h(e, t) {
26
+ let r = e && e.trim().length > 0 ? e : p, i;
27
+ try {
28
+ f(r), i = (await l(r)).path;
29
+ } catch {
30
+ return {
31
+ ok: !1,
32
+ message: "目标目录路径格式不正确"
33
+ };
34
+ }
35
+ if (t === !1) return n(i) ? {
36
+ ok: !0,
37
+ dir: i
38
+ } : {
39
+ ok: !1,
40
+ message: "目标目录不存在"
41
+ };
42
+ try {
43
+ let e = await s(i);
44
+ return e.ok ? {
45
+ ok: !0,
46
+ dir: e.path
47
+ } : {
48
+ ok: !1,
49
+ message: "目标端权限不足"
50
+ };
51
+ } catch {
52
+ return {
53
+ ok: !1,
54
+ message: "目标端权限不足"
55
+ };
56
+ }
57
+ }
58
+ function g(e, t) {
59
+ let n = u(e, "download"), r = i.extname(n), a = r ? n.slice(0, -r.length) : n;
60
+ if (!t.has(n)) return n;
61
+ let o = 1;
62
+ for (; t.has(`${a} (${o})${r}`);) o++;
63
+ return `${a} (${o})${r}`;
64
+ }
65
+ function _(e) {
66
+ try {
67
+ return new Set(r(e));
68
+ } catch {
69
+ return /* @__PURE__ */ new Set();
70
+ }
71
+ }
72
+ //#endregion
73
+ export { p as DEFAULT_DOWNLOAD_DIR, g as nextAvailableName, h as prepareSaveDir, _ as readExistingNames, m as resolveReadPath };
@@ -0,0 +1,31 @@
1
+ //#region src/capabilities/remote-file/progress.ts
2
+ var e = class {
3
+ taskType;
4
+ totalCount;
5
+ files = [];
6
+ constructor(e, t) {
7
+ this.taskType = e, this.totalCount = t;
8
+ }
9
+ start() {
10
+ return {
11
+ taskType: this.taskType,
12
+ currentFileIndex: 0,
13
+ totalCount: this.totalCount,
14
+ successCount: 0,
15
+ failCount: 0,
16
+ files: []
17
+ };
18
+ }
19
+ complete(e) {
20
+ return this.files.push(e), {
21
+ taskType: this.taskType,
22
+ currentFileIndex: this.files.length,
23
+ totalCount: this.totalCount,
24
+ successCount: this.files.filter((e) => e.status === "SUCCEEDED").length,
25
+ failCount: this.files.filter((e) => e.status === "FAILED").length,
26
+ files: [...this.files]
27
+ };
28
+ }
29
+ };
30
+ //#endregion
31
+ export { e as RemoteFileTaskProgress };
@@ -0,0 +1,71 @@
1
+ import { clawLogger as e } from "../../utils/claw-logger.mjs";
2
+ import { HonorAccount as t } from "../../honor-auth/vault/impl.mjs";
3
+ import { isClawResponseOk as n } from "../../apis/helpers.mjs";
4
+ import { createClawCloudClient as r } from "../../apis/claw-cloud.mjs";
5
+ import { loadDeviceInfo as i } from "../../modules/device/device-info.mjs";
6
+ import "../../modules/device/index.mjs";
7
+ import "../../honor-auth/vault/index.mjs";
8
+ import "../../apis/index.mjs";
9
+ import { ToolError as a } from "../../tools/error.mjs";
10
+ import { errorLogMeta as o, normalizeNetworkError as s, normalizeUploadLinkError as c } from "./normalize.mjs";
11
+ //#region src/capabilities/remote-file/remote-file.ts
12
+ var l = e("capabilities");
13
+ async function u() {
14
+ let e = await t.fromUser().current();
15
+ if (!e?.token || !e.userId) throw l.error("remote file skipped: no current user"), new a("unauthorized", "missing current user token");
16
+ let n;
17
+ try {
18
+ n = await i();
19
+ } catch (e) {
20
+ throw l.error("remote file failed to get device info", e), new a("device_info", "failed to get device info", { cause: e });
21
+ }
22
+ return {
23
+ deviceInfo: n,
24
+ token: e.token,
25
+ userId: e.userId
26
+ };
27
+ }
28
+ async function d(e, t) {
29
+ let { deviceInfo: i, token: d } = await u(), f = { token: d }, p;
30
+ try {
31
+ p = await r().getUploadLink(i, f, { fileList: e }, { signal: t });
32
+ } catch (t) {
33
+ throw t instanceof a ? t : (l.error("upload link request failed", t, {
34
+ fileCount: e.length,
35
+ ...o(t)
36
+ }), s(t));
37
+ }
38
+ if (n(p)) {
39
+ let e = p.data.data;
40
+ return {
41
+ code: "OK",
42
+ fileCountLimit: e?.fileCountLimit,
43
+ fileSizeLimit: e?.fileSizeLimit,
44
+ linkList: Array.isArray(e?.linkList) ? e.linkList : []
45
+ };
46
+ }
47
+ let m = p.data?.code ?? "";
48
+ if (l.error("upload link response not ok", null, {
49
+ status: p.status,
50
+ code: m,
51
+ cnMessage: p.data?.cnMessage,
52
+ fileCount: e.length
53
+ }), m === "FUS-RATE_LIMIT_EXCEEDED") throw c(p);
54
+ return m === "YOYO_CLAW_100019" ? {
55
+ code: "COUNT_LIMIT",
56
+ fileCountLimit: p.data.data?.fileCountLimit,
57
+ fileSizeLimit: p.data.data?.fileSizeLimit,
58
+ linkList: [],
59
+ message: "文件数量超过上限"
60
+ } : m === "YOYO_CLAW_100016" ? {
61
+ code: "INTERNAL_ERROR",
62
+ linkList: [],
63
+ message: "文件上传失败"
64
+ } : {
65
+ code: "BUSINESS_ERROR",
66
+ linkList: [],
67
+ message: p.data?.cnMessage || `文件上传失败 (code: ${m})`
68
+ };
69
+ }
70
+ //#endregion
71
+ export { d as getUploadLink };
@@ -7,12 +7,12 @@ var a = {
7
7
  manual: "manual config"
8
8
  };
9
9
  function o(o, s) {
10
- s.command("env").description("Manage runtime environment (dev/test/production)").option("--set <env>", "Set environment: dev, test or production").option("--gray <tag>", "Set gray header").option("--reset", "Reset env source to environment variable").action(async (s) => e(o.runtime, async () => {
10
+ s.command("env").description("Manage runtime environment (dev/test/sit/auto/production)").option("--set <env>", "Set environment: dev, test, sit, auto or production").option("--gray <tag>", "Set gray header").option("--reset", "Reset env source to environment variable").action(async (s) => e(o.runtime, async () => {
11
11
  let { set: e, gray: o, reset: c } = s;
12
12
  try {
13
13
  if (c && (await n(), console.log("✅ Environment source reset to environment variable")), e) {
14
- if (e !== "test" && e !== "dev" && e !== "production") {
15
- console.error("❌ Invalid environment. Use 'dev', 'test' or 'production'.");
14
+ if (e !== "test" && e !== "dev" && e !== "sit" && e !== "auto" && e !== "production") {
15
+ console.error("❌ Invalid environment. Use 'dev', 'test', 'sit', 'auto' or 'production'.");
16
16
  return;
17
17
  }
18
18
  await r(e), console.log(`✅ Environment set to: ${e}`);
@@ -47,9 +47,12 @@ async function p(e, t) {
47
47
  });
48
48
  return {
49
49
  ok: !0,
50
- data: {
51
- provider: o.provider,
52
- model: o.model
50
+ responsePayload: {
51
+ ok: !0,
52
+ resolved: {
53
+ provider: o.provider,
54
+ id: o.model
55
+ }
53
56
  }
54
57
  };
55
58
  }
@@ -1,20 +1,24 @@
1
1
  import { bindToolCallContext as e, releaseToolCallContext as t } from "../../messaging/trace/tool-context.mjs";
2
2
  import { resolveTurnSessionBySessionKey as n } from "../../messaging/trace/lifecycle.mjs";
3
3
  import "../../messaging/trace/index.mjs";
4
- import { recordToolCallEnd as r, recordToolCallStart as i } from "../../messaging/dispatchers/stream/hooks.mjs";
4
+ import { recordToolCallEnd as r, recordToolCallStart as i } from "../../messaging/dispatchers/stream/emitters.mjs";
5
5
  //#region src/core/hooks/tool-trace.ts
6
6
  function a(a) {
7
7
  a.on("before_tool_call", (t, r) => {
8
- let a = t.toolCallId ?? r.toolCallId;
9
- i({
8
+ let a = t.toolCallId ?? r.toolCallId, o = t.runId ?? r.runId;
9
+ if (i({
10
10
  sessionKey: r.sessionKey,
11
11
  toolName: t.toolName,
12
12
  params: t.params,
13
13
  toolCallId: a,
14
- runId: t.runId ?? r.runId
14
+ runId: o
15
+ }), !a) return;
16
+ let s = n(r.sessionKey), c = s && o ? s.runId === o : !1;
17
+ !c && !r.sessionKey || e(a, {
18
+ ...c ? s : {},
19
+ ...r.sessionKey ? { sessionKey: r.sessionKey } : {},
20
+ ...o ? { runId: o } : {}
15
21
  });
16
- let o = n(r.sessionKey);
17
- a && o && e(a, o);
18
22
  }), a.on("after_tool_call", (e, n) => {
19
23
  r({
20
24
  sessionKey: n.sessionKey,
@@ -1,19 +1,24 @@
1
1
  import { resolveAgentPromptContribution as e } from "./agent.mjs";
2
- import { resolveSkillPromptContribution as t } from "./skill.mjs";
2
+ import { resolveCloudToolPromptContribution as t } from "./cloud-tool.mjs";
3
+ import { resolveSkillPromptContribution as n } from "./skill.mjs";
3
4
  //#region src/core/prompt/builder.ts
4
- function n(e) {
5
+ function r(e) {
5
6
  let t = e.filter((e) => !!e);
6
7
  return t.length > 0 ? t.join("\n\n") : void 0;
7
8
  }
8
- function r(e) {
9
- let t = n(e.map((e) => e.prependSystemContext)), r = n(e.map((e) => e.prependContext));
9
+ function i(e) {
10
+ let t = r(e.map((e) => e.prependSystemContext)), n = r(e.map((e) => e.prependContext));
10
11
  return {
11
12
  ...t ? { prependSystemContext: t } : {},
12
- ...r ? { prependContext: r } : {}
13
+ ...n ? { prependContext: n } : {}
13
14
  };
14
15
  }
15
- async function i() {
16
- return r([e(), await t()]);
16
+ async function a() {
17
+ return i([
18
+ t(),
19
+ e(),
20
+ await n()
21
+ ]);
17
22
  }
18
23
  //#endregion
19
- export { i as resolvePromptBuildContribution };
24
+ export { a as resolvePromptBuildContribution };
@@ -0,0 +1,7 @@
1
+ //#region src/core/prompt/cloud-tool.ts
2
+ var e = "## Skill 使用云工具调用规则\n\n当已读取的 SKILL.md frontmatter 包含 allowed-tools 声明时:\n\n1. 根据用户意图和 SKILL.md 正文,从 allowed-tools 中选定工具名。\n2. 工具名对应当前 Skill 目录下的 mcptools/<工具名>.json;选定后直接使用 read 读取该文件,无需先查看 mcptools 目录。\n3. 使用 JSON 顶层 id 作为 cloud_invoke.toolId,并按 inputSchema 提取 params。allowed-tools 中的名称、<tool> 信息中的 toolName 和 JSON 的 name 仅用于定位工具,不作为 toolId。\n4. 若工具定义说明不可实际调用,则按其说明处理;否则调用 cloud_invoke,传入 { toolId: JSON.id, params }。\n\n例如,选中 demo_tool 后直接读取 mcptools/demo_tool.json;若其中 id 为 service-123,则 cloud_invoke.toolId 使用 service-123。\n\n明确属于 yoyo-phone-control 等设备控制 Skill(走 node_invoke 通道)的工具,不得通过 cloud_invoke 调用。";
3
+ function t() {
4
+ return { prependSystemContext: e };
5
+ }
6
+ //#endregion
7
+ export { t as resolveCloudToolPromptContribution };
@@ -1,32 +1,29 @@
1
1
  import { getPersistedIdentity as e } from "../../modules/configs/identity-persist.mjs";
2
- import { createGatewayAuthMd5 as t, isSameGatewayAuthMd5 as n } from "../../gateway/client/auth/gateway-auth.mjs";
3
- import "../../gateway/client/auth/index.mjs";
4
- import { getGatewayAuthConfig as r } from "../../modules/configs/gateway.mjs";
5
2
  import "../../modules/configs/index.mjs";
6
- import { HonorAccount as i } from "../../honor-auth/vault/impl.mjs";
3
+ import { HonorAccount as t } from "../../honor-auth/vault/impl.mjs";
7
4
  import "../../honor-auth/vault/index.mjs";
8
5
  //#region src/diagnose/collectors/account.ts
9
- async function a(a, o, s) {
10
- let c = new Set(a.enabledAccountIds), l = a.configuredAccountIds.map((e) => ({
6
+ async function n(n, r, i) {
7
+ let a = new Set(n.enabledAccountIds), o = n.configuredAccountIds.map((e) => ({
11
8
  accountId: e,
12
- enabled: c.has(e)
13
- })), u = await e(), d = t(r()), f = !!(u?.gatewayAuthMd5 && u.pluginVersionCode !== void 0), p = !!(f && n(u?.gatewayAuthMd5, d) && u?.pluginVersionCode === s);
14
- if (!o) return { accounts: l };
15
- let m = await i.fromUser(o).getTokenStatus();
9
+ enabled: a.has(e)
10
+ })), s = await e(), c = s?.pluginVersionCode !== void 0, l = !!(c && !s?.gatewayAuthMd5 && s?.pluginVersionCode === i);
11
+ if (!r) return { accounts: o };
12
+ let u = await t.fromUser(r).getTokenStatus();
16
13
  return {
17
- accounts: l,
14
+ accounts: o,
18
15
  selected: {
19
- accountId: o,
16
+ accountId: r,
20
17
  enabled: !0,
21
- loggedIn: m.status !== "absent",
22
- token: m,
18
+ loggedIn: u.status !== "absent",
19
+ token: u,
23
20
  registration: {
24
- registered: f,
25
- matchesCurrent: p,
26
- ...u?.pluginVersionCode === void 0 ? {} : { pluginVersionCode: u.pluginVersionCode }
21
+ registered: c,
22
+ matchesCurrent: l,
23
+ ...s?.pluginVersionCode === void 0 ? {} : { pluginVersionCode: s.pluginVersionCode }
27
24
  }
28
25
  }
29
26
  };
30
27
  }
31
28
  //#endregion
32
- export { a as collectAccount };
29
+ export { n as collectAccount };