@openclaw/qqbot 2026.5.31-beta.3 → 2026.6.1-beta.1

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/api.js CHANGED
@@ -1,9 +1,9 @@
1
- import { C as getMessageReplyStats, D as setOutboundAudioPort, E as OUTBOUND_ERROR_CODES, S as getMessageReplyConfig, T as DEFAULT_MEDIA_SEND_ERROR, _ as sendVideoMsg, a as sendText, b as MESSAGE_REPLY_LIMIT, f as buildMediaTarget, g as sendPhoto, h as sendDocument, i as sendProactiveMessage, m as resolveOutboundMediaPath, n as sendCronMessage, p as parseTarget, r as sendMedia, v as sendVoice, w as recordMessageReply, x as checkMessageReplyLimit, y as resolveUserFacingMediaError } from "./outbound-CgW0-dMd.js";
2
- import { c as listQQBotAccountIds, l as resolveDefaultQQBotAccountId, o as DEFAULT_ACCOUNT_ID, s as applyQQBotAccountConfig, u as resolveQQBotAccount } from "./config-schema-Bc-ArbIT.js";
3
- import { t as qqbotPlugin } from "./channel-DsUMS0Az.js";
4
- import { C as debugError, l as getAccessToken, w as debugLog, z as formatErrorMessage } from "./runtime-DDu_1bny.js";
5
- import { t as qqbotSetupPlugin } from "./channel.setup-_OAH-xmU.js";
6
- import { r as getFrameworkCommands, t as getRequestContext } from "./request-context-DNbuU0Co.js";
1
+ import { C as getMessageReplyStats, D as setOutboundAudioPort, E as OUTBOUND_ERROR_CODES, S as getMessageReplyConfig, T as DEFAULT_MEDIA_SEND_ERROR, _ as sendVideoMsg, a as sendText, b as MESSAGE_REPLY_LIMIT, f as buildMediaTarget, g as sendPhoto, h as sendDocument, i as sendProactiveMessage, m as resolveOutboundMediaPath, n as sendCronMessage, p as parseTarget, r as sendMedia, v as sendVoice, w as recordMessageReply, x as checkMessageReplyLimit, y as resolveUserFacingMediaError } from "./outbound-BNWSEG_7.js";
2
+ import { c as listQQBotAccountIds, l as resolveDefaultQQBotAccountId, o as DEFAULT_ACCOUNT_ID, s as applyQQBotAccountConfig, u as resolveQQBotAccount } from "./config-schema-BI7AYP6Q.js";
3
+ import { t as qqbotPlugin } from "./channel-CELcXJfZ.js";
4
+ import { C as debugError, l as getAccessToken, w as debugLog, z as formatErrorMessage } from "./runtime-CwW75z2d.js";
5
+ import { t as qqbotSetupPlugin } from "./channel.setup-xBlmSU4X.js";
6
+ import { r as getFrameworkCommands, t as getRequestContext } from "./request-context-CDEdBceh.js";
7
7
  import { resolveExpiresAtMsFromDurationMs } from "openclaw/plugin-sdk/number-runtime";
8
8
  import { callGatewayTool } from "openclaw/plugin-sdk/agent-harness-runtime";
9
9
  //#region extensions/qqbot/src/engine/tools/channel-api.ts
@@ -1,6 +1,6 @@
1
1
  import { c as getPlatformAdapter, t as asOptionalObjectRecord } from "./string-normalize-R_0cKO7Q.js";
2
- import { a as qqbotSetupAdapterShared, c as listQQBotAccountIds, i as qqbotMeta, m as getBridgeLogger, n as qqbotSetupWizard, o as DEFAULT_ACCOUNT_ID$1, p as ensurePlatformAdapter, r as qqbotConfigAdapter, s as applyQQBotAccountConfig, t as qqbotChannelConfigSchema, u as resolveQQBotAccount } from "./config-schema-Bc-ArbIT.js";
3
- import { T as debugWarn, t as getQQBotRuntime, w as debugLog, z as formatErrorMessage } from "./runtime-DDu_1bny.js";
2
+ import { a as qqbotSetupAdapterShared, c as listQQBotAccountIds, i as qqbotMeta, m as getBridgeLogger, n as qqbotSetupWizard, o as DEFAULT_ACCOUNT_ID$1, p as ensurePlatformAdapter, r as qqbotConfigAdapter, s as applyQQBotAccountConfig, t as qqbotChannelConfigSchema, u as resolveQQBotAccount } from "./config-schema-BI7AYP6Q.js";
3
+ import { T as debugWarn, t as getQQBotRuntime, w as debugLog, z as formatErrorMessage } from "./runtime-CwW75z2d.js";
4
4
  import { getExecApprovalReplyMetadata } from "openclaw/plugin-sdk/approval-runtime";
5
5
  import { createMessageReceiptFromOutboundResults, defineChannelMessageAdapter } from "openclaw/plugin-sdk/channel-outbound";
6
6
  import { createChannelApprovalCapability } from "openclaw/plugin-sdk/approval-delivery-runtime";
@@ -374,7 +374,7 @@ function createQQBotApprovalCapability() {
374
374
  },
375
375
  load: async () => {
376
376
  ensurePlatformAdapter();
377
- return (await import("./handler-runtime-TwO5-5cH.js")).qqbotApprovalNativeRuntime;
377
+ return (await import("./handler-runtime-Blcp6PTS.js")).qqbotApprovalNativeRuntime;
378
378
  }
379
379
  })
380
380
  });
@@ -868,12 +868,12 @@ function looksLikeQQBotTarget(id) {
868
868
  //#region extensions/qqbot/src/channel.ts
869
869
  let gatewayModulePromise;
870
870
  function loadGatewayModule() {
871
- gatewayModulePromise ??= import("./gateway-Bx-wZKqQ.js");
871
+ gatewayModulePromise ??= import("./gateway-Do-IrU8a.js");
872
872
  return gatewayModulePromise;
873
873
  }
874
874
  let outboundMessagingModulePromise;
875
875
  function loadOutboundMessagingModule() {
876
- outboundMessagingModulePromise ??= import("./outbound-CgW0-dMd.js").then((n) => n.t);
876
+ outboundMessagingModulePromise ??= import("./outbound-BNWSEG_7.js").then((n) => n.t);
877
877
  return outboundMessagingModulePromise;
878
878
  }
879
879
  function createQQBotSendReceipt(params) {
@@ -1,2 +1,2 @@
1
- import { t as qqbotPlugin } from "./channel-DsUMS0Az.js";
1
+ import { t as qqbotPlugin } from "./channel-CELcXJfZ.js";
2
2
  export { qqbotPlugin };
@@ -1,4 +1,4 @@
1
- import { a as qqbotSetupAdapterShared, i as qqbotMeta, n as qqbotSetupWizard, r as qqbotConfigAdapter, t as qqbotChannelConfigSchema } from "./config-schema-Bc-ArbIT.js";
1
+ import { a as qqbotSetupAdapterShared, i as qqbotMeta, n as qqbotSetupWizard, r as qqbotConfigAdapter, t as qqbotChannelConfigSchema } from "./config-schema-BI7AYP6Q.js";
2
2
  //#region extensions/qqbot/src/channel.setup.ts
3
3
  /**
4
4
  * Setup-only QQBot plugin — lightweight subset used during `openclaw onboard`
@@ -198,8 +198,8 @@ function resolveDefaultAccountId(cfg) {
198
198
  function resolveAccountBase(cfg, accountId) {
199
199
  const resolvedAccountId = accountId ?? resolveDefaultAccountId(cfg);
200
200
  const qqbot = readQQBotSection(cfg);
201
- let accountConfig = {};
202
- let appId = "";
201
+ let accountConfig;
202
+ let appId;
203
203
  if (resolvedAccountId === "default") {
204
204
  accountConfig = normalizeAccountConfig(asOptionalObjectRecord(qqbot));
205
205
  appId = normalizeAppId(qqbot?.appId);
@@ -1,9 +1,9 @@
1
- import { D as setOutboundAudioPort, T as DEFAULT_MEDIA_SEND_ERROR, _ as sendVideoMsg, c as isCronReminderPayload, d as normalizeMediaTags, g as sendPhoto, h as sendDocument, l as isMediaPayload, o as decodeMediaPath, r as sendMedia, s as encodePayloadForCron, u as parseQQBotPayload, v as sendVoice, y as resolveUserFacingMediaError } from "./outbound-CgW0-dMd.js";
1
+ import { D as setOutboundAudioPort, T as DEFAULT_MEDIA_SEND_ERROR, _ as sendVideoMsg, c as isCronReminderPayload, d as normalizeMediaTags, g as sendPhoto, h as sendDocument, l as isMediaPayload, o as decodeMediaPath, r as sendMedia, s as encodePayloadForCron, u as parseQQBotPayload, v as sendVoice, y as resolveUserFacingMediaError } from "./outbound-BNWSEG_7.js";
2
2
  import { c as getPlatformAdapter, i as normalizeOptionalString$1, n as normalizeLowercaseStringOrEmpty$1, o as readStringField, s as sanitizeFileName, t as asOptionalObjectRecord } from "./string-normalize-R_0cKO7Q.js";
3
- import { f as resolveAccountBase, h as setBridgeLogger, p as ensurePlatformAdapter } from "./config-schema-Bc-ArbIT.js";
4
- import { C as parseApprovalButtonData, a as getQQBotDataDir, d as isWindows, f as normalizePath, h as authorizeQQBotApprovalAction, i as getHomeDir, l as getTempDir, m as toGatewayAccount, o as getQQBotDataPath, p as resolveQQBotPayloadLocalFilePath, r as checkSilkWasmAvailable, s as getQQBotMediaDir, u as isLocalPath } from "./channel-DsUMS0Az.js";
5
- import { B as StreamContentType, C as debugError, D as getNextMsgSeq, F as getImageMimeType, H as StreamInputState, I as getMaxUploadSize, N as formatFileSize, R as formatDuration, S as withTokenRetry, T as debugWarn, V as StreamInputMode, _ as sendInputNotify, a as acknowledgeInteraction, b as startBackgroundTokenRefresh, c as createRawInputNotifyFn, d as getMessageApi, f as getPluginUserAgent, g as registerAccount, h as onMessageSent, i as accountToCreds, j as downloadFile, k as openLocalFile, l as getAccessToken, m as initSender, n as getQQBotRuntimeForEngine, o as buildDeliveryTarget, p as initApiConfig, s as clearTokenCache, t as getQQBotRuntime, u as getGatewayUrl, v as sendMedia$1, w as debugLog, x as stopBackgroundTokenRefresh, y as sendText, z as formatErrorMessage } from "./runtime-DDu_1bny.js";
6
- import { a as getPluginVersion, i as getFrameworkVersion, n as runWithRequestContext, o as initCommands, s as matchSlashCommand } from "./request-context-DNbuU0Co.js";
3
+ import { f as resolveAccountBase, h as setBridgeLogger, p as ensurePlatformAdapter } from "./config-schema-BI7AYP6Q.js";
4
+ import { C as parseApprovalButtonData, a as getQQBotDataDir, d as isWindows, f as normalizePath, h as authorizeQQBotApprovalAction, i as getHomeDir, l as getTempDir, m as toGatewayAccount, o as getQQBotDataPath, p as resolveQQBotPayloadLocalFilePath, r as checkSilkWasmAvailable, s as getQQBotMediaDir, u as isLocalPath } from "./channel-CELcXJfZ.js";
5
+ import { B as StreamContentType, C as debugError, D as getNextMsgSeq, F as getImageMimeType, H as StreamInputState, I as getMaxUploadSize, N as formatFileSize, R as formatDuration, S as withTokenRetry, T as debugWarn, V as StreamInputMode, _ as sendInputNotify, a as acknowledgeInteraction, b as startBackgroundTokenRefresh, c as createRawInputNotifyFn, d as getMessageApi, f as getPluginUserAgent, g as registerAccount, h as onMessageSent, i as accountToCreds, j as downloadFile, k as openLocalFile, l as getAccessToken, m as initSender, n as getQQBotRuntimeForEngine, o as buildDeliveryTarget, p as initApiConfig, s as clearTokenCache, t as getQQBotRuntime, u as getGatewayUrl, v as sendMedia$1, w as debugLog, x as stopBackgroundTokenRefresh, y as sendText, z as formatErrorMessage } from "./runtime-CwW75z2d.js";
6
+ import { a as getPluginVersion, i as getFrameworkVersion, n as runWithRequestContext, o as initCommands, s as matchSlashCommand } from "./request-context-CDEdBceh.js";
7
7
  import { asBoolean, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { isImplicitSameChatApprovalAuthorization } from "openclaw/plugin-sdk/approval-auth-runtime";
9
9
  import * as fs$1 from "node:fs";
@@ -1367,7 +1367,7 @@ function createMessageQueue(ctx) {
1367
1367
  };
1368
1368
  const executeImmediate = (msg) => {
1369
1369
  if (handleMessageFnRef) handleMessageFnRef(msg).catch((err) => {
1370
- log?.error(`Immediate execution error: ${err}`);
1370
+ log?.error(`Immediate execution error: ${formatErrorMessage(err)}`);
1371
1371
  });
1372
1372
  };
1373
1373
  return {
@@ -1661,7 +1661,7 @@ var GatewayConnection = class {
1661
1661
  this.msgQueue.startProcessor(this.ctx.handleMessage);
1662
1662
  startBackgroundTokenRefresh(account.appId, account.clientSecret, { log });
1663
1663
  });
1664
- ws.on("message", async (data) => {
1664
+ ws.on("message", (data) => {
1665
1665
  try {
1666
1666
  const rawData = decodeGatewayMessageData(data);
1667
1667
  const { op, d, s, t } = JSON.parse(rawData);
@@ -3595,13 +3595,15 @@ async function sendVoiceWithTimeout(target, voicePath, account, mediaSender, log
3595
3595
  };
3596
3596
  }
3597
3597
  return r;
3598
- }), new Promise((resolve) => setTimeout(() => {
3599
- ac.abort();
3600
- resolve({
3601
- channel: "qqbot",
3602
- error: "Voice send timed out and was skipped"
3603
- });
3604
- }, voiceTimeout))]);
3598
+ }), new Promise((resolve) => {
3599
+ setTimeout(() => {
3600
+ ac.abort();
3601
+ resolve({
3602
+ channel: "qqbot",
3603
+ error: "Voice send timed out and was skipped"
3604
+ });
3605
+ }, voiceTimeout);
3606
+ })]);
3605
3607
  if (result.error) log?.error(`sendVoice error: ${result.error}`);
3606
3608
  } catch (err) {
3607
3609
  log?.error(`sendVoice unexpected error: ${formatErrorMessage(err)}`);
@@ -4393,10 +4395,12 @@ async function executeSendQueue(queue, ctx, options = {}) {
4393
4395
  const transcodeEnabled = account.config?.audioFormatPolicy?.transcodeEnabled !== false;
4394
4396
  const voiceTimeout = 45e3;
4395
4397
  try {
4396
- const result = await Promise.race([sendVoice(mediaTarget, item.content, uploadFormats, transcodeEnabled), new Promise((resolve) => setTimeout(() => resolve({
4397
- channel: "qqbot",
4398
- error: "语音发送超时,已跳过"
4399
- }), voiceTimeout))]);
4398
+ const result = await Promise.race([sendVoice(mediaTarget, item.content, uploadFormats, transcodeEnabled), new Promise((resolve) => {
4399
+ setTimeout(() => resolve({
4400
+ channel: "qqbot",
4401
+ error: "语音发送超时,已跳过"
4402
+ }), voiceTimeout);
4403
+ })]);
4400
4404
  if (result.error) {
4401
4405
  log?.error(`${prefix} sendVoice error: ${result.error}`);
4402
4406
  await sendFallbackText(resolveUserFacingMediaError(result));
@@ -4623,7 +4627,9 @@ var FlushController = class {
4623
4627
  /** 等待当前进行中的 flush 完成 */
4624
4628
  waitForFlush() {
4625
4629
  if (!this.flushInProgress) return Promise.resolve();
4626
- return new Promise((resolve) => this.flushResolvers.push(resolve));
4630
+ return new Promise((resolve) => {
4631
+ this.flushResolvers.push(resolve);
4632
+ });
4627
4633
  }
4628
4634
  /** 取消所有 pending timer + 等待正在执行的 flush 完成,确保 flush 活动彻底停止 */
4629
4635
  async cancelPendingAndWait() {
@@ -5480,7 +5486,9 @@ async function waitForFile(filePath, timeoutMs = 3e4, pollMs = 500) {
5480
5486
  return 0;
5481
5487
  }
5482
5488
  }
5483
- await new Promise((r) => setTimeout(r, pollMs));
5489
+ await new Promise((r) => {
5490
+ setTimeout(r, pollMs);
5491
+ });
5484
5492
  }
5485
5493
  try {
5486
5494
  const finalStat = fs$1.statSync(filePath);
@@ -5755,13 +5763,15 @@ async function dispatchOutbound(inbound, deps) {
5755
5763
  error: "suppressed"
5756
5764
  };
5757
5765
  return r;
5758
- }), new Promise((resolve) => setTimeout(() => {
5759
- ac.abort();
5760
- resolve({
5761
- channel: "qqbot",
5762
- error: "timeout"
5763
- });
5764
- }, TOOL_MEDIA_SEND_TIMEOUT))]);
5766
+ }), new Promise((resolve) => {
5767
+ setTimeout(() => {
5768
+ ac.abort();
5769
+ resolve({
5770
+ channel: "qqbot",
5771
+ error: "timeout"
5772
+ });
5773
+ }, TOOL_MEDIA_SEND_TIMEOUT);
5774
+ })]);
5765
5775
  if (result.error) log?.error(`Tool fallback error: ${result.error}`);
5766
5776
  } catch (err) {
5767
5777
  log?.error(`Tool fallback failed: ${String(err)}`);
@@ -5779,12 +5789,10 @@ async function dispatchOutbound(inbound, deps) {
5779
5789
  clearTimeout(toolOnlyTimeoutId);
5780
5790
  toolRenewalCount++;
5781
5791
  }
5782
- toolOnlyTimeoutId = setTimeout(async () => {
5792
+ toolOnlyTimeoutId = setTimeout(() => {
5783
5793
  if (!hasBlockResponse && !toolFallbackSent) {
5784
5794
  toolFallbackSent = true;
5785
- try {
5786
- await sendToolFallback();
5787
- } catch {}
5795
+ sendToolFallback().catch(() => {});
5788
5796
  }
5789
5797
  }, TOOL_ONLY_TIMEOUT);
5790
5798
  return true;
@@ -1,6 +1,6 @@
1
- import { m as getBridgeLogger, p as ensurePlatformAdapter, u as resolveQQBotAccount } from "./config-schema-Bc-ArbIT.js";
2
- import { S as buildPluginApprovalText, _ as matchesQQBotApprovalAccount, b as buildApprovalKeyboard, g as isQQBotExecApprovalClientEnabled, v as resolveQQBotExecApprovalConfig, w as resolveApprovalTarget, x as buildExecApprovalText, y as shouldHandleQQBotExecApprovalRequest } from "./channel-DsUMS0Az.js";
3
- import { d as getMessageApi, i as accountToCreds } from "./runtime-DDu_1bny.js";
1
+ import { m as getBridgeLogger, p as ensurePlatformAdapter, u as resolveQQBotAccount } from "./config-schema-BI7AYP6Q.js";
2
+ import { S as buildPluginApprovalText, _ as matchesQQBotApprovalAccount, b as buildApprovalKeyboard, g as isQQBotExecApprovalClientEnabled, v as resolveQQBotExecApprovalConfig, w as resolveApprovalTarget, x as buildExecApprovalText, y as shouldHandleQQBotExecApprovalRequest } from "./channel-CELcXJfZ.js";
3
+ import { d as getMessageApi, i as accountToCreds } from "./runtime-CwW75z2d.js";
4
4
  import { resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
5
5
  import { createChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-runtime";
6
6
  //#region extensions/qqbot/src/bridge/approval/handler-runtime.ts
@@ -1,6 +1,6 @@
1
1
  import { i as normalizeOptionalString, n as normalizeLowercaseStringOrEmpty, s as sanitizeFileName } from "./string-normalize-R_0cKO7Q.js";
2
- import { a as getQQBotDataDir, f as normalizePath$1, n as parseTarget$1, p as resolveQQBotPayloadLocalFilePath, s as getQQBotMediaDir, u as isLocalPath } from "./channel-DsUMS0Az.js";
3
- import { A as checkFileSize, C as debugError, E as UploadDailyLimitExceededError, F as getImageMimeType, I as getMaxUploadSize, L as readFileAsync, M as fileExistsAsync, N as formatFileSize, O as UPLOAD_PREPARE_FALLBACK_CODE, P as getFileTypeName, T as debugWarn, i as accountToCreds, j as downloadFile, p as initApiConfig, v as sendMedia$1, w as debugLog, y as sendText$1, z as formatErrorMessage } from "./runtime-DDu_1bny.js";
2
+ import { a as getQQBotDataDir, f as normalizePath$1, n as parseTarget$1, p as resolveQQBotPayloadLocalFilePath, s as getQQBotMediaDir, u as isLocalPath } from "./channel-CELcXJfZ.js";
3
+ import { A as checkFileSize, C as debugError, E as UploadDailyLimitExceededError, F as getImageMimeType, I as getMaxUploadSize, L as readFileAsync, M as fileExistsAsync, N as formatFileSize, O as UPLOAD_PREPARE_FALLBACK_CODE, P as getFileTypeName, T as debugWarn, i as accountToCreds, j as downloadFile, p as initApiConfig, v as sendMedia$1, w as debugLog, y as sendText$1, z as formatErrorMessage } from "./runtime-CwW75z2d.js";
4
4
  import { pathExistsSync, resolveLocalPathFromRootsSync } from "openclaw/plugin-sdk/security-runtime";
5
5
  import path from "node:path";
6
6
  import { getFileExtension } from "openclaw/plugin-sdk/media-mime";
@@ -1,5 +1,5 @@
1
- import { a as getQQBotDataDir, c as getQQBotMediaPath, d as isWindows, i as getHomeDir } from "./channel-DsUMS0Az.js";
2
- import { w as debugLog } from "./runtime-DDu_1bny.js";
1
+ import { a as getQQBotDataDir, c as getQQBotMediaPath, d as isWindows, i as getHomeDir } from "./channel-CELcXJfZ.js";
2
+ import { w as debugLog } from "./runtime-CwW75z2d.js";
3
3
  import { uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
@@ -540,7 +540,9 @@ async function persistentRetryLoop(fn, policy, logger) {
540
540
  throw lastError ?? /* @__PURE__ */ new Error(`Persistent retry timed out (${policy.timeoutMs / 1e3}s)`);
541
541
  }
542
542
  function sleep$1(ms) {
543
- return new Promise((resolve) => setTimeout(resolve, ms));
543
+ return new Promise((resolve) => {
544
+ setTimeout(resolve, ms);
545
+ });
544
546
  }
545
547
  /** Standard upload retry: exponential backoff, skip 400/401/timeout errors. */
546
548
  const UPLOAD_RETRY_POLICY = {
@@ -985,7 +987,9 @@ async function runWithConcurrency(tasks, maxConcurrent) {
985
987
  }
986
988
  }
987
989
  function sleep(ms) {
988
- return new Promise((resolve) => setTimeout(resolve, ms));
990
+ return new Promise((resolve) => {
991
+ setTimeout(resolve, ms);
992
+ });
989
993
  }
990
994
  //#endregion
991
995
  //#region extensions/qqbot/src/engine/api/token.ts
@@ -1107,7 +1111,7 @@ var TokenManager = class {
1107
1111
  };
1108
1112
  loop().catch((err) => {
1109
1113
  this.refreshControllers.delete(appId);
1110
- this.logger?.error?.(`[qqbot:token:${appId}] Background refresh crashed: ${err}`);
1114
+ this.logger?.error?.(`[qqbot:token:${appId}] Background refresh crashed: ${formatErrorMessage(err)}`);
1111
1115
  });
1112
1116
  }
1113
1117
  /** Stop background refresh for one appId, or all. */
@@ -1,2 +1,2 @@
1
- import { r as setQQBotRuntime, t as getQQBotRuntime } from "./runtime-DDu_1bny.js";
1
+ import { r as setQQBotRuntime, t as getQQBotRuntime } from "./runtime-CwW75z2d.js";
2
2
  export { getQQBotRuntime, setQQBotRuntime };
@@ -1,2 +1,2 @@
1
- import { t as qqbotSetupPlugin } from "./channel.setup-_OAH-xmU.js";
1
+ import { t as qqbotSetupPlugin } from "./channel.setup-xBlmSU4X.js";
2
2
  export { qqbotSetupPlugin };
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@openclaw/qqbot",
3
- "version": "2026.5.31-beta.3",
3
+ "version": "2026.6.1-beta.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/qqbot",
9
- "version": "2026.5.31-beta.3",
9
+ "version": "2026.6.1-beta.1",
10
10
  "dependencies": {
11
11
  "@tencent-connect/qqbot-connector": "1.1.0",
12
12
  "mpg123-decoder": "1.0.3",
@@ -15,7 +15,7 @@
15
15
  "zod": "4.4.3"
16
16
  },
17
17
  "peerDependencies": {
18
- "openclaw": ">=2026.5.31-beta.3"
18
+ "openclaw": ">=2026.6.1-beta.1"
19
19
  },
20
20
  "peerDependenciesMeta": {
21
21
  "openclaw": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/qqbot",
3
- "version": "2026.5.31-beta.3",
3
+ "version": "2026.6.1-beta.1",
4
4
  "private": false,
5
5
  "description": "OpenClaw QQ Bot channel plugin for group and direct-message workflows.",
6
6
  "repository": {
@@ -16,7 +16,7 @@
16
16
  "zod": "4.4.3"
17
17
  },
18
18
  "peerDependencies": {
19
- "openclaw": ">=2026.5.31-beta.3"
19
+ "openclaw": ">=2026.6.1-beta.1"
20
20
  },
21
21
  "peerDependenciesMeta": {
22
22
  "openclaw": {
@@ -45,10 +45,10 @@
45
45
  "minHostVersion": ">=2026.4.10"
46
46
  },
47
47
  "compat": {
48
- "pluginApi": ">=2026.5.31-beta.3"
48
+ "pluginApi": ">=2026.6.1-beta.1"
49
49
  },
50
50
  "build": {
51
- "openclawVersion": "2026.5.31-beta.3"
51
+ "openclawVersion": "2026.6.1-beta.1"
52
52
  },
53
53
  "release": {
54
54
  "publishToClawHub": true,