shipmyagent 1.0.257 → 1.0.258

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.
@@ -1 +1 @@
1
- {"version":3,"file":"TuiApi.d.ts","sourceRoot":"","sources":["../../../src/console/ui/TuiApi.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAKjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAkBxE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,GAAG,EAAE,IAAI,CAAC;IACV,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,sBAAsB,EAAE,MAAM,cAAc,CAAC;CAC9C,GAAG,IAAI,CAkPP"}
1
+ {"version":3,"file":"TuiApi.d.ts","sourceRoot":"","sources":["../../../src/console/ui/TuiApi.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAMjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AA8ExE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,GAAG,EAAE,IAAI,CAAC;IACV,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,sBAAsB,EAAE,MAAM,cAAc,CAAC;CAC9C,GAAG,IAAI,CA0QP"}
@@ -8,8 +8,57 @@
8
8
  import { listServiceRuntimes, runServiceCommand, } from "../../agent/service/Manager.js";
9
9
  import { listTaskDefinitions } from "../../services/task/Action.js";
10
10
  import { isValidTaskId } from "../../services/task/runtime/Paths.js";
11
+ import { resolveAgentSystemMessages } from "../../agent/prompts/system/SystemDomain.js";
11
12
  import { TASK_RUN_DIR_REGEX, decodeMaybe, executeByContextId, listContextSummaries, listTaskRuns, loadContextMessagesFromFile, readRecentLogs, readTaskRunDetail, toLimit, toOptionalString, toUiMessageTimeline, } from "./tui/Helpers.js";
12
13
  import { getShipContextMessagesPath } from "../../console/env/Paths.js";
14
+ const LOCAL_UI_CONTEXT_ID = "local_ui";
15
+ function normalizeSystemText(input) {
16
+ return String(input || "").trim();
17
+ }
18
+ function toSystemMessageText(message) {
19
+ const content = message.content;
20
+ if (typeof content === "string")
21
+ return normalizeSystemText(content);
22
+ if (!Array.isArray(content))
23
+ return "";
24
+ const parts = content;
25
+ const texts = [];
26
+ for (const part of parts) {
27
+ if (!part || typeof part !== "object")
28
+ continue;
29
+ const text = normalizeSystemText(String(part.text || ""));
30
+ if (!text)
31
+ continue;
32
+ texts.push(text);
33
+ }
34
+ return texts.join("\n").trim();
35
+ }
36
+ /**
37
+ * 把 Prompter 直接产出的 system messages 转成 UI 可渲染结构。
38
+ *
39
+ * 关键点(中文)
40
+ * - 只做“展示层映射”,不在 UI 层重建 system 业务规则。
41
+ */
42
+ function toSystemPromptPayload(messages) {
43
+ const items = messages
44
+ .map((message, index) => ({
45
+ index: index + 1,
46
+ content: toSystemMessageText(message),
47
+ }))
48
+ .filter((item) => item.content);
49
+ const totalChars = items.reduce((acc, item) => acc + String(item.content || "").length, 0);
50
+ return {
51
+ sections: [
52
+ {
53
+ key: "resolved",
54
+ title: "Resolved System Messages",
55
+ items,
56
+ },
57
+ ],
58
+ totalMessages: items.length,
59
+ totalChars,
60
+ };
61
+ }
13
62
  export function registerTuiApiRoutes(params) {
14
63
  const app = params.app;
15
64
  app.get("/api/tui/overview", async (c) => {
@@ -105,6 +154,29 @@ export function registerTuiApiRoutes(params) {
105
154
  return c.json({ success: false, error: String(error) }, 500);
106
155
  }
107
156
  });
157
+ app.get("/api/tui/system-prompt", async (c) => {
158
+ try {
159
+ const runtime = params.getRuntimeState();
160
+ const contextId = decodeMaybe(String(c.req.query("contextId") || "").trim()) ||
161
+ LOCAL_UI_CONTEXT_ID;
162
+ const systemMessages = await resolveAgentSystemMessages({
163
+ projectRoot: runtime.rootPath,
164
+ contextId,
165
+ requestId: `ui-system-preview-${Date.now()}`,
166
+ profile: "chat",
167
+ staticSystemPrompts: runtime.systems,
168
+ runtime: params.getServiceRuntimeState(),
169
+ });
170
+ return c.json({
171
+ success: true,
172
+ contextId,
173
+ ...toSystemPromptPayload(systemMessages),
174
+ });
175
+ }
176
+ catch (error) {
177
+ return c.json({ success: false, error: String(error) }, 500);
178
+ }
179
+ });
108
180
  app.post("/api/tui/contexts/:contextId/execute", async (c) => {
109
181
  try {
110
182
  const runtime = params.getRuntimeState();
@@ -1 +1 @@
1
- {"version":3,"file":"TuiApi.js","sourceRoot":"","sources":["../../../src/console/ui/TuiApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TuiApi.js","sourceRoot":"","sources":["../../../src/console/ui/TuiApi.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../../../src/services/chat/Index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,OAAO,KAAK,EACV,OAAO,EAER,MAAM,kCAAkC,CAAC;AA2pB1C,eAAO,MAAM,WAAW,EAAE,OAkMzB,CAAC"}
1
+ {"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../../../src/services/chat/Index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,OAAO,KAAK,EACV,OAAO,EAER,MAAM,kCAAkC,CAAC;AA28B1C,eAAO,MAAM,WAAW,EAAE,OAmQzB,CAAC"}
@@ -15,6 +15,7 @@ import { resolveChatMethod } from "./runtime/ChatMethod.js";
15
15
  import { createTelegramBot } from "./channels/telegram/Bot.js";
16
16
  import { createFeishuBot } from "./channels/feishu/Feishu.js";
17
17
  import { createQQBot } from "./channels/qq/QQ.js";
18
+ const CHAT_CHANNEL_NAMES = ["telegram", "feishu", "qq"];
18
19
  const CHAT_PROMPT_FILE_URL = new URL("./PROMPT.txt", import.meta.url);
19
20
  const CHAT_DIRECT_PROMPT_FILE_URL = new URL("./PROMPT.direct.txt", import.meta.url);
20
21
  const TELEGRAM_PROMPT_FILE_URL = new URL("./channels/telegram/PROMPT.txt", import.meta.url);
@@ -107,76 +108,140 @@ function resetChannelState() {
107
108
  function isPlaceholder(value) {
108
109
  return value === "${}";
109
110
  }
110
- async function startChatChannels(context) {
111
- if (channelState.telegram || channelState.feishu || channelState.qq) {
112
- await stopChatChannels();
111
+ function resolveChatChannelNameOrThrow(value) {
112
+ const normalized = String(value || "")
113
+ .trim()
114
+ .toLowerCase();
115
+ if (normalized === "telegram" ||
116
+ normalized === "feishu" ||
117
+ normalized === "qq") {
118
+ return normalized;
113
119
  }
114
- const channels = context.config.services?.chat?.channels || {};
115
- if (channels.telegram?.enabled) {
116
- context.logger.info("Telegram channel enabled");
117
- channelState.telegram = createTelegramBot(channels.telegram, context);
118
- if (channelState.telegram) {
119
- await channelState.telegram.start();
120
- }
120
+ throw new Error(`Invalid channel: ${value}. Use telegram|feishu|qq.`);
121
+ }
122
+ function resolveTelegramToken(context) {
123
+ const token = context.config.services?.chat?.channels?.telegram?.botToken;
124
+ if (token && !isPlaceholder(token))
125
+ return token;
126
+ return "";
127
+ }
128
+ function resolveFeishuCredentials(context) {
129
+ const channel = context.config.services?.chat?.channels?.feishu;
130
+ return {
131
+ appId: (channel?.appId && !isPlaceholder(channel.appId) ? channel.appId : "") ||
132
+ String(process.env.FEISHU_APP_ID || "").trim(),
133
+ appSecret: (channel?.appSecret && !isPlaceholder(channel.appSecret)
134
+ ? channel.appSecret
135
+ : "") || String(process.env.FEISHU_APP_SECRET || "").trim(),
136
+ };
137
+ }
138
+ function resolveQQCredentials(context) {
139
+ const channel = context.config.services?.chat?.channels?.qq;
140
+ return {
141
+ appId: (channel?.appId && !isPlaceholder(channel.appId) ? channel.appId : "") ||
142
+ String(process.env.QQ_APP_ID || "").trim(),
143
+ appSecret: (channel?.appSecret && !isPlaceholder(channel.appSecret)
144
+ ? channel.appSecret
145
+ : "") || String(process.env.QQ_APP_SECRET || "").trim(),
146
+ };
147
+ }
148
+ async function startTelegramChannel(context) {
149
+ if (!context.config.services?.chat?.channels?.telegram?.enabled)
150
+ return;
151
+ context.logger.info("Telegram channel enabled");
152
+ channelState.telegram = createTelegramBot({
153
+ ...(context.config.services?.chat?.channels?.telegram || {}),
154
+ enabled: true,
155
+ botToken: resolveTelegramToken(context),
156
+ }, context);
157
+ if (channelState.telegram) {
158
+ await channelState.telegram.start();
121
159
  }
122
- if (channels.feishu?.enabled) {
123
- context.logger.info("Feishu channel enabled");
124
- const feishuChannel = channels.feishu;
125
- const feishuConfig = {
126
- enabled: true,
127
- appId: (channels.feishu?.appId && !isPlaceholder(channels.feishu.appId)
128
- ? channels.feishu.appId
129
- : undefined) ||
130
- process.env.FEISHU_APP_ID ||
131
- "",
132
- appSecret: (channels.feishu?.appSecret && !isPlaceholder(channels.feishu.appSecret)
133
- ? channels.feishu.appSecret
134
- : undefined) ||
135
- process.env.FEISHU_APP_SECRET ||
136
- "",
137
- domain: feishuChannel?.domain || "https://open.feishu.cn",
138
- adminUserIds: Array.isArray(feishuChannel?.adminUserIds)
139
- ? feishuChannel.adminUserIds
140
- : undefined,
141
- };
142
- channelState.feishu = await createFeishuBot(feishuConfig, context);
143
- if (channelState.feishu) {
144
- await channelState.feishu.start();
145
- }
160
+ }
161
+ async function startFeishuChannel(context) {
162
+ if (!context.config.services?.chat?.channels?.feishu?.enabled)
163
+ return;
164
+ context.logger.info("Feishu channel enabled");
165
+ const feishuChannel = context.config.services?.chat?.channels?.feishu;
166
+ const credentials = resolveFeishuCredentials(context);
167
+ channelState.feishu = await createFeishuBot({
168
+ enabled: true,
169
+ appId: credentials.appId,
170
+ appSecret: credentials.appSecret,
171
+ domain: feishuChannel?.domain || "https://open.feishu.cn",
172
+ adminUserIds: Array.isArray(feishuChannel?.adminUserIds)
173
+ ? feishuChannel.adminUserIds
174
+ : undefined,
175
+ }, context);
176
+ if (channelState.feishu) {
177
+ await channelState.feishu.start();
146
178
  }
147
- if (channels.qq?.enabled) {
148
- context.logger.info("QQ channel enabled");
149
- const envQqGroupAccess = (process.env.QQ_GROUP_ACCESS || "")
150
- .trim()
151
- .toLowerCase();
152
- const qqGroupAccess = channels.qq?.groupAccess === "anyone"
153
- ? "anyone"
154
- : channels.qq?.groupAccess === "initiator_or_admin"
179
+ }
180
+ async function startQQChannel(context) {
181
+ if (!context.config.services?.chat?.channels?.qq?.enabled)
182
+ return;
183
+ context.logger.info("QQ channel enabled");
184
+ const qqChannel = context.config.services?.chat?.channels?.qq;
185
+ const envQqGroupAccess = (process.env.QQ_GROUP_ACCESS || "")
186
+ .trim()
187
+ .toLowerCase();
188
+ const qqGroupAccess = qqChannel?.groupAccess === "anyone"
189
+ ? "anyone"
190
+ : qqChannel?.groupAccess === "initiator_or_admin"
191
+ ? "initiator_or_admin"
192
+ : envQqGroupAccess === "initiator_or_admin"
155
193
  ? "initiator_or_admin"
156
- : envQqGroupAccess === "initiator_or_admin"
157
- ? "initiator_or_admin"
158
- : "anyone";
159
- const qqConfig = {
160
- enabled: true,
161
- appId: (channels.qq?.appId && !isPlaceholder(channels.qq.appId)
162
- ? channels.qq.appId
163
- : undefined) ||
164
- process.env.QQ_APP_ID ||
165
- "",
166
- appSecret: (channels.qq?.appSecret && !isPlaceholder(channels.qq.appSecret)
167
- ? channels.qq.appSecret
168
- : undefined) ||
169
- process.env.QQ_APP_SECRET ||
170
- "",
171
- sandbox: typeof channels.qq?.sandbox === "boolean"
172
- ? channels.qq.sandbox
173
- : (process.env.QQ_SANDBOX || "").toLowerCase() === "true",
174
- groupAccess: qqGroupAccess,
175
- };
176
- channelState.qq = await createQQBot(qqConfig, context);
177
- if (channelState.qq) {
178
- await channelState.qq.start();
179
- }
194
+ : "anyone";
195
+ const credentials = resolveQQCredentials(context);
196
+ channelState.qq = await createQQBot({
197
+ enabled: true,
198
+ appId: credentials.appId,
199
+ appSecret: credentials.appSecret,
200
+ sandbox: typeof qqChannel?.sandbox === "boolean"
201
+ ? qqChannel.sandbox
202
+ : (process.env.QQ_SANDBOX || "").toLowerCase() === "true",
203
+ groupAccess: qqGroupAccess,
204
+ }, context);
205
+ if (channelState.qq) {
206
+ await channelState.qq.start();
207
+ }
208
+ }
209
+ async function startSingleChatChannel(context, channel) {
210
+ if (channel === "telegram") {
211
+ await startTelegramChannel(context);
212
+ return;
213
+ }
214
+ if (channel === "feishu") {
215
+ await startFeishuChannel(context);
216
+ return;
217
+ }
218
+ await startQQChannel(context);
219
+ }
220
+ async function stopSingleChatChannel(channel) {
221
+ if (channel === "telegram" && channelState.telegram) {
222
+ const bot = channelState.telegram;
223
+ channelState.telegram = null;
224
+ await bot.stop();
225
+ return;
226
+ }
227
+ if (channel === "feishu" && channelState.feishu) {
228
+ const bot = channelState.feishu;
229
+ channelState.feishu = null;
230
+ await bot.stop();
231
+ return;
232
+ }
233
+ if (channel === "qq" && channelState.qq) {
234
+ const bot = channelState.qq;
235
+ channelState.qq = null;
236
+ await bot.stop();
237
+ }
238
+ }
239
+ async function startChatChannels(context) {
240
+ if (channelState.telegram || channelState.feishu || channelState.qq) {
241
+ await stopChatChannels();
242
+ }
243
+ for (const channel of CHAT_CHANNEL_NAMES) {
244
+ await startSingleChatChannel(context, channel);
180
245
  }
181
246
  }
182
247
  async function stopChatChannels() {
@@ -192,12 +257,174 @@ async function stopChatChannels() {
192
257
  await current.qq.stop();
193
258
  }
194
259
  }
260
+ function resolveTargetChannels(channel) {
261
+ return channel ? [channel] : [...CHAT_CHANNEL_NAMES];
262
+ }
263
+ function getChatChannelStatus(context, channel) {
264
+ const channels = context.config.services?.chat?.channels || {};
265
+ const enabled = channels[channel]?.enabled === true;
266
+ const configured = channel === "telegram"
267
+ ? !!resolveTelegramToken(context)
268
+ : channel === "feishu"
269
+ ? (() => {
270
+ const c = resolveFeishuCredentials(context);
271
+ return !!c.appId && !!c.appSecret;
272
+ })()
273
+ : (() => {
274
+ const c = resolveQQCredentials(context);
275
+ return !!c.appId && !!c.appSecret;
276
+ })();
277
+ const runtime = channel === "telegram"
278
+ ? channelState.telegram?.getRuntimeStatus()
279
+ : channel === "feishu"
280
+ ? channelState.feishu?.getRuntimeStatus()
281
+ : channelState.qq?.getRuntimeStatus();
282
+ const linkState = !enabled
283
+ ? "disconnected"
284
+ : !configured
285
+ ? "disconnected"
286
+ : runtime?.linkState || "unknown";
287
+ const statusText = !enabled
288
+ ? "disabled"
289
+ : !configured
290
+ ? "config_missing"
291
+ : runtime?.statusText || "not_started";
292
+ return {
293
+ channel,
294
+ enabled,
295
+ configured,
296
+ running: runtime?.running === true,
297
+ linkState,
298
+ statusText,
299
+ detail: {
300
+ ...(runtime?.detail || {}),
301
+ },
302
+ };
303
+ }
304
+ async function executeChatStatusAction(params) {
305
+ const channels = resolveTargetChannels(params.payload.channel);
306
+ const items = channels.map((channel) => getChatChannelStatus(params.context, channel));
307
+ return {
308
+ success: true,
309
+ data: {
310
+ channels: items,
311
+ },
312
+ };
313
+ }
314
+ async function executeChatTestAction(params) {
315
+ const channels = resolveTargetChannels(params.payload.channel);
316
+ const results = [];
317
+ for (const channel of channels) {
318
+ const snapshot = getChatChannelStatus(params.context, channel);
319
+ if (!snapshot.enabled) {
320
+ results.push({
321
+ channel,
322
+ success: false,
323
+ testedAtMs: Date.now(),
324
+ message: "Channel is disabled",
325
+ });
326
+ continue;
327
+ }
328
+ if (!snapshot.configured) {
329
+ results.push({
330
+ channel,
331
+ success: false,
332
+ testedAtMs: Date.now(),
333
+ message: "Channel credentials are missing",
334
+ });
335
+ continue;
336
+ }
337
+ const bot = channel === "telegram"
338
+ ? channelState.telegram
339
+ : channel === "feishu"
340
+ ? channelState.feishu
341
+ : channelState.qq;
342
+ if (!bot) {
343
+ results.push({
344
+ channel,
345
+ success: false,
346
+ testedAtMs: Date.now(),
347
+ message: "Channel is not running. Use reconnect first.",
348
+ });
349
+ continue;
350
+ }
351
+ results.push(await bot.testConnection());
352
+ }
353
+ return {
354
+ success: true,
355
+ data: {
356
+ results,
357
+ total: results.length,
358
+ failed: results.filter((item) => !item.success).length,
359
+ },
360
+ };
361
+ }
362
+ async function executeChatReconnectAction(params) {
363
+ const targets = resolveTargetChannels(params.payload.channel);
364
+ for (const channel of targets) {
365
+ const snapshot = getChatChannelStatus(params.context, channel);
366
+ if (!snapshot.enabled) {
367
+ return {
368
+ success: false,
369
+ error: `Channel ${channel} is disabled`,
370
+ };
371
+ }
372
+ if (!snapshot.configured) {
373
+ return {
374
+ success: false,
375
+ error: `Channel ${channel} credentials are missing`,
376
+ };
377
+ }
378
+ }
379
+ for (const channel of targets) {
380
+ await stopSingleChatChannel(channel);
381
+ }
382
+ for (const channel of targets) {
383
+ await startSingleChatChannel(params.context, channel);
384
+ }
385
+ const channels = targets.map((channel) => getChatChannelStatus(params.context, channel));
386
+ return {
387
+ success: true,
388
+ data: {
389
+ channels,
390
+ },
391
+ };
392
+ }
195
393
  function getStringOpt(opts, key) {
196
394
  return typeof opts[key] === "string" ? String(opts[key]).trim() : "";
197
395
  }
198
396
  function getBooleanOpt(opts, key) {
199
397
  return opts[key] === true;
200
398
  }
399
+ function mapChatChannelCommandInput(input) {
400
+ const channelRaw = getStringOpt(input.opts, "channel");
401
+ if (!channelRaw)
402
+ return {};
403
+ return {
404
+ channel: resolveChatChannelNameOrThrow(channelRaw),
405
+ };
406
+ }
407
+ function mapChatChannelApiInput(body) {
408
+ if (!body || typeof body !== "object" || Array.isArray(body)) {
409
+ return {};
410
+ }
411
+ const channelRaw = typeof body.channel === "string"
412
+ ? String(body.channel).trim()
413
+ : "";
414
+ if (!channelRaw)
415
+ return {};
416
+ return {
417
+ channel: resolveChatChannelNameOrThrow(channelRaw),
418
+ };
419
+ }
420
+ function mapChatChannelApiQueryInput(query) {
421
+ const channelRaw = String(query?.channel || "").trim();
422
+ if (!channelRaw)
423
+ return {};
424
+ return {
425
+ channel: resolveChatChannelNameOrThrow(channelRaw),
426
+ };
427
+ }
201
428
  function parsePositiveIntOptionOrThrow(value, fieldName) {
202
429
  const text = String(value || "").trim();
203
430
  if (!text) {
@@ -529,6 +756,71 @@ export const chatService = {
529
756
  .join("\n\n");
530
757
  },
531
758
  actions: {
759
+ status: {
760
+ command: {
761
+ description: "查看 chat 渠道连接状态",
762
+ configure(command) {
763
+ command.option("--channel <name>", "指定渠道(telegram|feishu|qq)");
764
+ },
765
+ mapInput: mapChatChannelCommandInput,
766
+ },
767
+ api: {
768
+ method: "GET",
769
+ mapInput(c) {
770
+ return mapChatChannelApiQueryInput({
771
+ channel: c.req.query("channel"),
772
+ });
773
+ },
774
+ },
775
+ async execute(params) {
776
+ return executeChatStatusAction({
777
+ context: params.context,
778
+ payload: params.payload,
779
+ });
780
+ },
781
+ },
782
+ test: {
783
+ command: {
784
+ description: "测试 chat 渠道连通性",
785
+ configure(command) {
786
+ command.option("--channel <name>", "指定渠道(telegram|feishu|qq)");
787
+ },
788
+ mapInput: mapChatChannelCommandInput,
789
+ },
790
+ api: {
791
+ method: "POST",
792
+ async mapInput(c) {
793
+ return mapChatChannelApiInput(await c.req.json().catch(() => ({})));
794
+ },
795
+ },
796
+ async execute(params) {
797
+ return executeChatTestAction({
798
+ context: params.context,
799
+ payload: params.payload,
800
+ });
801
+ },
802
+ },
803
+ reconnect: {
804
+ command: {
805
+ description: "重连 chat 渠道(默认全部)",
806
+ configure(command) {
807
+ command.option("--channel <name>", "指定渠道(telegram|feishu|qq)");
808
+ },
809
+ mapInput: mapChatChannelCommandInput,
810
+ },
811
+ api: {
812
+ method: "POST",
813
+ async mapInput(c) {
814
+ return mapChatChannelApiInput(await c.req.json().catch(() => ({})));
815
+ },
816
+ },
817
+ async execute(params) {
818
+ return executeChatReconnectAction({
819
+ context: params.context,
820
+ payload: params.payload,
821
+ });
822
+ },
823
+ },
532
824
  send: {
533
825
  command: {
534
826
  description: "发送消息到目标 chatKey",