@openclaw/qqbot 2026.5.10-beta.2 → 2026.5.10-beta.3

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 recordMessageReply, E as setOutboundAudioPort, S as getMessageReplyStats, T as OUTBOUND_ERROR_CODES, _ as sendVoice, a as sendText, b as checkMessageReplyLimit, d as buildMediaTarget, f as parseTarget, g as sendVideoMsg, h as sendPhoto, i as sendProactiveMessage, m as sendDocument, n as sendCronMessage, p as resolveOutboundMediaPath, r as sendMedia, v as resolveUserFacingMediaError, w as DEFAULT_MEDIA_SEND_ERROR, x as getMessageReplyConfig, y as MESSAGE_REPLY_LIMIT } from "./outbound-DL154TS6.js";
2
- import { a as resolveQQBotAccount, i as resolveDefaultQQBotAccountId, n as applyQQBotAccountConfig, r as listQQBotAccountIds, t as DEFAULT_ACCOUNT_ID } from "./config-BNAanXEH.js";
3
- import { t as qqbotPlugin } from "./channel-Cl-NJpPD.js";
4
- import { L as formatErrorMessage, S as debugLog, o as getAccessToken, x as debugError } from "./sender-C-TmIFow.js";
5
- import { t as qqbotSetupPlugin } from "./channel.setup-BDM8y3aD.js";
6
- import { r as getFrameworkCommands, t as getRequestContext } from "./request-context-Bn63CUkr.js";
1
+ import { C as recordMessageReply, E as setOutboundAudioPort, S as getMessageReplyStats, T as OUTBOUND_ERROR_CODES, _ as sendVoice, a as sendText, b as checkMessageReplyLimit, d as buildMediaTarget, f as parseTarget, g as sendVideoMsg, h as sendPhoto, i as sendProactiveMessage, m as sendDocument, n as sendCronMessage, p as resolveOutboundMediaPath, r as sendMedia, v as resolveUserFacingMediaError, w as DEFAULT_MEDIA_SEND_ERROR, x as getMessageReplyConfig, y as MESSAGE_REPLY_LIMIT } from "./outbound-BLWish89.js";
2
+ import { a as resolveQQBotAccount, i as resolveDefaultQQBotAccountId, n as applyQQBotAccountConfig, r as listQQBotAccountIds, t as DEFAULT_ACCOUNT_ID } from "./config-BT8KP_H1.js";
3
+ import { t as qqbotPlugin } from "./channel-BEb3xDcc.js";
4
+ import { L as formatErrorMessage, S as debugLog, o as getAccessToken, x as debugError } from "./sender-BrpzCcXA.js";
5
+ import { t as qqbotSetupPlugin } from "./channel.setup-D_GS95Pk.js";
6
+ import { r as getFrameworkCommands, t as getRequestContext } from "./request-context-BwSBFANU.js";
7
7
  import { callGatewayTool } from "openclaw/plugin-sdk/agent-harness-runtime";
8
8
  //#region extensions/qqbot/src/engine/tools/channel-api.ts
9
9
  /**
@@ -1,18 +1,18 @@
1
- import { t as asOptionalObjectRecord } from "./string-normalize-BzzzPOeb.js";
2
- import { l as ensurePlatformAdapter, u as getBridgeLogger } from "./resolve-Cm33TWZp.js";
1
+ import { t as asOptionalObjectRecord } from "./string-normalize-C46CS-F1.js";
2
+ import { l as ensurePlatformAdapter, u as getBridgeLogger } from "./resolve-D3lCbUze.js";
3
3
  import { a as resolveApprovalTarget } from "./approval-cg0SVahb.js";
4
- import { a as resolveQQBotAccount, n as applyQQBotAccountConfig, t as DEFAULT_ACCOUNT_ID$1 } from "./config-BNAanXEH.js";
5
- import { a as resolveQQBotExecApprovalConfig, i as matchesQQBotApprovalAccount, n as isQQBotExecApprovalAuthorizedSender, o as shouldHandleQQBotExecApprovalRequest, r as isQQBotExecApprovalClientEnabled, t as isQQBotExecApprovalApprover } from "./exec-approvals-DgO1msIB.js";
6
- import { a as qqbotSetupAdapterShared, i as qqbotMeta, n as qqbotSetupWizard, r as qqbotConfigAdapter, t as qqbotChannelConfigSchema } from "./config-schema-BTV9NZbt.js";
4
+ import { a as resolveQQBotAccount, n as applyQQBotAccountConfig, t as DEFAULT_ACCOUNT_ID$1 } from "./config-BT8KP_H1.js";
5
+ import { a as resolveQQBotExecApprovalConfig, i as matchesQQBotApprovalAccount, n as isQQBotExecApprovalAuthorizedSender, o as shouldHandleQQBotExecApprovalRequest, r as isQQBotExecApprovalClientEnabled, t as isQQBotExecApprovalApprover } from "./exec-approvals-W4oL9R6C.js";
6
+ import { a as qqbotSetupAdapterShared, i as qqbotMeta, n as qqbotSetupWizard, r as qqbotConfigAdapter, t as qqbotChannelConfigSchema } from "./config-schema-BCxobX3l.js";
7
7
  import { n as writeOpenClawConfigThroughRuntime, t as toGatewayAccount } from "./narrowing-BoieBTIU.js";
8
- import { t as getQQBotRuntime } from "./runtime-CHGblcVc.js";
9
- import { n as normalizeTarget, s as getQQBotDataPath, t as looksLikeQQBotTarget } from "./target-parser-CTNFSKb1.js";
8
+ import { t as getQQBotRuntime } from "./runtime-CZyFkpnB.js";
9
+ import { n as normalizeTarget, s as getQQBotDataPath, t as looksLikeQQBotTarget } from "./target-parser-C8HaD-ik.js";
10
10
  import { getExecApprovalReplyMetadata } from "openclaw/plugin-sdk/approval-runtime";
11
11
  import { createMessageReceiptFromOutboundResults, defineChannelMessageAdapter } from "openclaw/plugin-sdk/channel-message";
12
12
  import { createChannelApprovalCapability } from "openclaw/plugin-sdk/approval-delivery-runtime";
13
13
  import { createLazyChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
14
14
  import { resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
15
- import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
15
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
16
16
  import fs from "node:fs";
17
17
  import { replaceFileAtomicSync } from "openclaw/plugin-sdk/security-runtime";
18
18
  import path from "node:path";
@@ -156,7 +156,7 @@ function createQQBotApprovalCapability() {
156
156
  },
157
157
  load: async () => {
158
158
  ensurePlatformAdapter();
159
- return (await import("./handler-runtime-C9SrM2gR.js")).qqbotApprovalNativeRuntime;
159
+ return (await import("./handler-runtime-ZgvjnyoH.js")).qqbotApprovalNativeRuntime;
160
160
  }
161
161
  })
162
162
  });
@@ -345,7 +345,7 @@ function clearAccountCredentials(cfg, accountId) {
345
345
  //#region extensions/qqbot/src/channel.ts
346
346
  let gatewayModulePromise;
347
347
  function loadGatewayModule() {
348
- gatewayModulePromise ??= import("./gateway-OhbnW8Uq.js");
348
+ gatewayModulePromise ??= import("./gateway-B6EZg_Ia.js");
349
349
  return gatewayModulePromise;
350
350
  }
351
351
  function createQQBotSendReceipt(params) {
@@ -363,7 +363,7 @@ function createQQBotSendReceipt(params) {
363
363
  async function sendQQBotText(params) {
364
364
  await loadGatewayModule();
365
365
  const account = resolveQQBotAccount(params.cfg, params.accountId);
366
- const { sendText } = await import("./outbound-DL154TS6.js").then((n) => n.t);
366
+ const { sendText } = await import("./outbound-BLWish89.js").then((n) => n.t);
367
367
  const result = await sendText({
368
368
  to: params.to,
369
369
  text: params.text,
@@ -385,7 +385,7 @@ async function sendQQBotText(params) {
385
385
  async function sendQQBotMedia(params) {
386
386
  await loadGatewayModule();
387
387
  const account = resolveQQBotAccount(params.cfg, params.accountId);
388
- const { sendMedia } = await import("./outbound-DL154TS6.js").then((n) => n.t);
388
+ const { sendMedia } = await import("./outbound-BLWish89.js").then((n) => n.t);
389
389
  const result = await sendMedia({
390
390
  to: params.to,
391
391
  text: params.text ?? "",
@@ -1,2 +1,2 @@
1
- import { t as qqbotPlugin } from "./channel-Cl-NJpPD.js";
1
+ import { t as qqbotPlugin } from "./channel-BEb3xDcc.js";
2
2
  export { qqbotPlugin };
@@ -1,5 +1,5 @@
1
- import "./resolve-Cm33TWZp.js";
2
- import { a as qqbotSetupAdapterShared, i as qqbotMeta, n as qqbotSetupWizard, r as qqbotConfigAdapter, t as qqbotChannelConfigSchema } from "./config-schema-BTV9NZbt.js";
1
+ import "./resolve-D3lCbUze.js";
2
+ import { a as qqbotSetupAdapterShared, i as qqbotMeta, n as qqbotSetupWizard, r as qqbotConfigAdapter, t as qqbotChannelConfigSchema } from "./config-schema-BCxobX3l.js";
3
3
  //#region extensions/qqbot/src/channel.setup.ts
4
4
  /**
5
5
  * Setup-only QQBot plugin — lightweight subset used during `openclaw onboard`
@@ -1,5 +1,5 @@
1
- import { c as getPlatformAdapter } from "./string-normalize-BzzzPOeb.js";
2
- import { c as resolveDefaultAccountId, n as applyAccountConfig, o as listAccountIds, s as resolveAccountBase, t as DEFAULT_ACCOUNT_ID$1 } from "./resolve-Cm33TWZp.js";
1
+ import { c as getPlatformAdapter } from "./string-normalize-C46CS-F1.js";
2
+ import { c as resolveDefaultAccountId, n as applyAccountConfig, o as listAccountIds, s as resolveAccountBase, t as DEFAULT_ACCOUNT_ID$1 } from "./resolve-D3lCbUze.js";
3
3
  import { coerceSecretRef, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
4
4
  import fs from "node:fs";
5
5
  import { resolveDefaultSecretProviderAlias } from "openclaw/plugin-sdk/provider-auth";
@@ -1,12 +1,12 @@
1
- import { n as normalizeLowercaseStringOrEmpty } from "./string-normalize-BzzzPOeb.js";
2
- import { a as isAccountConfigured, i as formatAllowFrom, n as applyAccountConfig, r as describeAccount } from "./resolve-Cm33TWZp.js";
3
- import { a as resolveQQBotAccount, i as resolveDefaultQQBotAccountId, n as applyQQBotAccountConfig, r as listQQBotAccountIds } from "./config-BNAanXEH.js";
1
+ import { n as normalizeLowercaseStringOrEmpty } from "./string-normalize-C46CS-F1.js";
2
+ import { a as isAccountConfigured, i as formatAllowFrom, n as applyAccountConfig, r as describeAccount } from "./resolve-D3lCbUze.js";
3
+ import { a as resolveQQBotAccount, i as resolveDefaultQQBotAccountId, n as applyQQBotAccountConfig, r as listQQBotAccountIds } from "./config-BT8KP_H1.js";
4
4
  import { buildSecretInputSchema } from "openclaw/plugin-sdk/secret-input";
5
5
  import { applyAccountNameToChannelSection, deleteAccountFromConfigSection, setAccountEnabledInConfigSection } from "openclaw/plugin-sdk/core";
6
6
  import { DEFAULT_ACCOUNT_ID, createStandardChannelSetupStatus, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
7
7
  import { formatDocsLink } from "openclaw/plugin-sdk/setup-tools";
8
8
  import { AllowFromListSchema, buildChannelConfigSchema } from "openclaw/plugin-sdk/channel-config-schema";
9
- import { z } from "openclaw/plugin-sdk/zod";
9
+ import { z } from "zod";
10
10
  //#region extensions/qqbot/src/engine/config/setup-logic.ts
11
11
  /**
12
12
  * QQBot setup business logic (pure layer).
@@ -1,6 +1,6 @@
1
- import { a as resolveQQBotAccount, r as listQQBotAccountIds } from "./config-BNAanXEH.js";
1
+ import { a as resolveQQBotAccount, r as listQQBotAccountIds } from "./config-BT8KP_H1.js";
2
2
  import { resolveApprovalRequestChannelAccountId } from "openclaw/plugin-sdk/approval-native-runtime";
3
- import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
3
+ import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { resolveApprovalApprovers } from "openclaw/plugin-sdk/approval-auth-runtime";
5
5
  import { createChannelExecApprovalProfile, isChannelExecApprovalClientEnabledFromConfig, matchesApprovalRequestFilters } from "openclaw/plugin-sdk/approval-client-runtime";
6
6
  import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
@@ -1,12 +1,12 @@
1
- import { E as setOutboundAudioPort, _ as sendVoice, c as isMediaPayload, g as sendVideoMsg, h as sendPhoto, l as parseQQBotPayload, m as sendDocument, o as encodePayloadForCron, r as sendMedia, s as isCronReminderPayload, u as normalizeMediaTags, v as resolveUserFacingMediaError, w as DEFAULT_MEDIA_SEND_ERROR } from "./outbound-DL154TS6.js";
2
- import { c as getPlatformAdapter, i as normalizeOptionalString, n as normalizeLowercaseStringOrEmpty, o as readStringField, s as sanitizeFileName, t as asOptionalObjectRecord } from "./string-normalize-BzzzPOeb.js";
3
- import { d as setBridgeLogger, l as ensurePlatformAdapter, s as resolveAccountBase } from "./resolve-Cm33TWZp.js";
1
+ import { E as setOutboundAudioPort, _ as sendVoice, c as isMediaPayload, g as sendVideoMsg, h as sendPhoto, l as parseQQBotPayload, m as sendDocument, o as encodePayloadForCron, r as sendMedia, s as isCronReminderPayload, u as normalizeMediaTags, v as resolveUserFacingMediaError, w as DEFAULT_MEDIA_SEND_ERROR } from "./outbound-BLWish89.js";
2
+ import { c as getPlatformAdapter, i as normalizeOptionalString, n as normalizeLowercaseStringOrEmpty, o as readStringField, s as sanitizeFileName, t as asOptionalObjectRecord } from "./string-normalize-C46CS-F1.js";
3
+ import { d as setBridgeLogger, l as ensurePlatformAdapter, s as resolveAccountBase } from "./resolve-D3lCbUze.js";
4
4
  import { i as parseApprovalButtonData } from "./approval-cg0SVahb.js";
5
5
  import { t as toGatewayAccount } from "./narrowing-BoieBTIU.js";
6
- import { B as StreamInputState, C as debugWarn, D as openLocalFile, I as formatDuration, L as formatErrorMessage, N as getImageMimeType, P as getMaxUploadSize, R as StreamContentType, S as debugLog, T as getNextMsgSeq, a as createRawInputNotifyFn, b as withTokenRetry, c as getMessageApi, d as initSender, f as onMessageSent, g as sendText, h as sendMedia$1, i as clearTokenCache, j as formatFileSize, k as downloadFile, l as getPluginUserAgent, m as sendInputNotify, n as acknowledgeInteraction, o as getAccessToken, p as registerAccount, r as buildDeliveryTarget, s as getGatewayUrl, t as accountToCreds, u as initApiConfig, v as startBackgroundTokenRefresh, x as debugError, y as stopBackgroundTokenRefresh, z as StreamInputMode } from "./sender-C-TmIFow.js";
7
- import { n as getQQBotRuntimeForEngine, t as getQQBotRuntime } from "./runtime-CHGblcVc.js";
8
- import { a as getHomeDir, c as getQQBotMediaDir, d as isLocalPath, f as isWindows, i as checkSilkWasmAvailable, m as resolveQQBotPayloadLocalFilePath, o as getQQBotDataDir, p as normalizePath$1, s as getQQBotDataPath, u as getTempDir } from "./target-parser-CTNFSKb1.js";
9
- import { a as getPluginVersion, i as getFrameworkVersion, n as runWithRequestContext, o as initCommands, s as matchSlashCommand } from "./request-context-Bn63CUkr.js";
6
+ import { B as StreamInputState, C as debugWarn, D as openLocalFile, I as formatDuration, L as formatErrorMessage, N as getImageMimeType, P as getMaxUploadSize, R as StreamContentType, S as debugLog, T as getNextMsgSeq, a as createRawInputNotifyFn, b as withTokenRetry, c as getMessageApi, d as initSender, f as onMessageSent, g as sendText, h as sendMedia$1, i as clearTokenCache, j as formatFileSize, k as downloadFile, l as getPluginUserAgent, m as sendInputNotify, n as acknowledgeInteraction, o as getAccessToken, p as registerAccount, r as buildDeliveryTarget, s as getGatewayUrl, t as accountToCreds, u as initApiConfig, v as startBackgroundTokenRefresh, x as debugError, y as stopBackgroundTokenRefresh, z as StreamInputMode } from "./sender-BrpzCcXA.js";
7
+ import { n as getQQBotRuntimeForEngine, t as getQQBotRuntime } from "./runtime-CZyFkpnB.js";
8
+ import { a as getHomeDir, c as getQQBotMediaDir, d as isLocalPath, f as isWindows, i as checkSilkWasmAvailable, m as resolveQQBotPayloadLocalFilePath, o as getQQBotDataDir, p as normalizePath$1, s as getQQBotDataPath, u as getTempDir } from "./target-parser-C8HaD-ik.js";
9
+ import { a as getPluginVersion, i as getFrameworkVersion, n as runWithRequestContext, o as initCommands, s as matchSlashCommand } from "./request-context-BwSBFANU.js";
10
10
  import * as fs$1 from "node:fs";
11
11
  import fs from "node:fs";
12
12
  import * as os$1 from "node:os";
@@ -1400,7 +1400,7 @@ var ReconnectState = class {
1400
1400
  getNextDelay(customDelay) {
1401
1401
  const delay = customDelay ?? RECONNECT_DELAYS[Math.min(this.attempts, RECONNECT_DELAYS.length - 1)];
1402
1402
  this.attempts++;
1403
- this.log?.debug?.(`Reconnecting in ${delay}ms (attempt ${this.attempts})`);
1403
+ this.log?.debug?.(`Reconnecting ${this.accountId} in ${delay}ms (attempt ${this.attempts})`);
1404
1404
  return delay;
1405
1405
  }
1406
1406
  /**
@@ -1747,7 +1747,7 @@ var GatewayConnection = class {
1747
1747
  * OpenAI-compatible STT (Speech-to-Text) configuration and transcription.
1748
1748
  *
1749
1749
  * Migrated from `src/stt.ts` — uses core/utils/string-normalize instead
1750
- * of openclaw/plugin-sdk/text-runtime.
1750
+ * of broad SDK text barrels.
1751
1751
  */
1752
1752
  /** Resolve the STT configuration from the nested config object. */
1753
1753
  function resolveSTTConfig(cfg) {
@@ -1,8 +1,8 @@
1
- import { l as ensurePlatformAdapter, u as getBridgeLogger } from "./resolve-Cm33TWZp.js";
1
+ import { l as ensurePlatformAdapter, u as getBridgeLogger } from "./resolve-D3lCbUze.js";
2
2
  import { a as resolveApprovalTarget, n as buildExecApprovalText, r as buildPluginApprovalText, t as buildApprovalKeyboard } from "./approval-cg0SVahb.js";
3
- import { a as resolveQQBotAccount } from "./config-BNAanXEH.js";
4
- import { a as resolveQQBotExecApprovalConfig, i as matchesQQBotApprovalAccount, o as shouldHandleQQBotExecApprovalRequest, r as isQQBotExecApprovalClientEnabled } from "./exec-approvals-DgO1msIB.js";
5
- import { c as getMessageApi, t as accountToCreds } from "./sender-C-TmIFow.js";
3
+ import { a as resolveQQBotAccount } from "./config-BT8KP_H1.js";
4
+ import { a as resolveQQBotExecApprovalConfig, i as matchesQQBotApprovalAccount, o as shouldHandleQQBotExecApprovalRequest, r as isQQBotExecApprovalClientEnabled } from "./exec-approvals-W4oL9R6C.js";
5
+ import { c as getMessageApi, t as accountToCreds } from "./sender-BrpzCcXA.js";
6
6
  import { resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
7
7
  import { createChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-runtime";
8
8
  //#region extensions/qqbot/src/bridge/approval/handler-runtime.ts
@@ -1,6 +1,6 @@
1
- import { i as normalizeOptionalString, n as normalizeLowercaseStringOrEmpty, s as sanitizeFileName } from "./string-normalize-BzzzPOeb.js";
2
- import { A as fileExistsAsync, C as debugWarn, E as UPLOAD_PREPARE_FALLBACK_CODE, F as readFileAsync, L as formatErrorMessage, M as getFileTypeName, N as getImageMimeType, O as checkFileSize, P as getMaxUploadSize, S as debugLog, g as sendText$1, h as sendMedia$1, j as formatFileSize, k as downloadFile, t as accountToCreds, u as initApiConfig, w as UploadDailyLimitExceededError, x as debugError } from "./sender-C-TmIFow.js";
3
- import { c as getQQBotMediaDir, d as isLocalPath, m as resolveQQBotPayloadLocalFilePath, o as getQQBotDataDir, p as normalizePath, r as parseTarget$1 } from "./target-parser-CTNFSKb1.js";
1
+ import { i as normalizeOptionalString, n as normalizeLowercaseStringOrEmpty, s as sanitizeFileName } from "./string-normalize-C46CS-F1.js";
2
+ import { A as fileExistsAsync, C as debugWarn, E as UPLOAD_PREPARE_FALLBACK_CODE, F as readFileAsync, L as formatErrorMessage, M as getFileTypeName, N as getImageMimeType, O as checkFileSize, P as getMaxUploadSize, S as debugLog, g as sendText$1, h as sendMedia$1, j as formatFileSize, k as downloadFile, t as accountToCreds, u as initApiConfig, w as UploadDailyLimitExceededError, x as debugError } from "./sender-BrpzCcXA.js";
3
+ import { c as getQQBotMediaDir, d as isLocalPath, m as resolveQQBotPayloadLocalFilePath, o as getQQBotDataDir, p as normalizePath, r as parseTarget$1 } from "./target-parser-C8HaD-ik.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 { S as debugLog } from "./sender-C-TmIFow.js";
2
- import { a as getHomeDir, f as isWindows, l as getQQBotMediaPath, o as getQQBotDataDir } from "./target-parser-CTNFSKb1.js";
1
+ import { S as debugLog } from "./sender-BrpzCcXA.js";
2
+ import { a as getHomeDir, f as isWindows, l as getQQBotMediaPath, o as getQQBotDataDir } from "./target-parser-C8HaD-ik.js";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
5
5
  import { loadJsonFile } from "openclaw/plugin-sdk/json-store";
@@ -1,4 +1,4 @@
1
- import { a as normalizeStringifiedOptionalString, c as getPlatformAdapter, d as registerPlatformAdapterFactory, l as hasPlatformAdapter, o as readStringField, r as normalizeOptionalLowercaseString, t as asOptionalObjectRecord, u as registerPlatformAdapter } from "./string-normalize-BzzzPOeb.js";
1
+ import { a as normalizeStringifiedOptionalString, c as getPlatformAdapter, d as registerPlatformAdapterFactory, l as hasPlatformAdapter, o as readStringField, r as normalizeOptionalLowercaseString, t as asOptionalObjectRecord, u as registerPlatformAdapter } from "./string-normalize-C46CS-F1.js";
2
2
  import { hasConfiguredSecretInput, normalizeResolvedSecretInputString, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
3
3
  import { resolvePreferredOpenClawTmpDir } from "openclaw/plugin-sdk/temp-path";
4
4
  //#region extensions/qqbot/src/bridge/logger.ts
@@ -1,4 +1,4 @@
1
- import { _ as setOpenClawVersion } from "./sender-C-TmIFow.js";
1
+ import { _ as setOpenClawVersion } from "./sender-BrpzCcXA.js";
2
2
  import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
3
3
  //#region extensions/qqbot/src/bridge/runtime.ts
4
4
  const { setRuntime: _setRuntime, getRuntime: getQQBotRuntime } = createPluginRuntimeStore({
@@ -1,2 +1,2 @@
1
- import { r as setQQBotRuntime, t as getQQBotRuntime } from "./runtime-CHGblcVc.js";
1
+ import { r as setQQBotRuntime, t as getQQBotRuntime } from "./runtime-CZyFkpnB.js";
2
2
  export { getQQBotRuntime, setQQBotRuntime };
@@ -1,4 +1,4 @@
1
- import { c as getPlatformAdapter, i as normalizeOptionalString, s as sanitizeFileName } from "./string-normalize-BzzzPOeb.js";
1
+ import { c as getPlatformAdapter, i as normalizeOptionalString, s as sanitizeFileName } from "./string-normalize-C46CS-F1.js";
2
2
  import * as fs$1 from "node:fs";
3
3
  import os from "node:os";
4
4
  import * as crypto$1 from "node:crypto";
@@ -1204,7 +1204,7 @@ var MessageApi = class {
1204
1204
  if (req.stream_msg_id) body.stream_msg_id = req.stream_msg_id;
1205
1205
  return this.client.request(token, "POST", path, body);
1206
1206
  }
1207
- async sendAndNotify(appId, accessToken, method, path, body, meta) {
1207
+ async sendAndNotify(_appId, accessToken, method, path, body, meta) {
1208
1208
  const result = await this.client.request(accessToken, method, path, body);
1209
1209
  if (result.ext_info?.ref_idx && this.messageSentHook) try {
1210
1210
  this.messageSentHook(result.ext_info.ref_idx, meta);
@@ -1,2 +1,2 @@
1
- import { t as qqbotSetupPlugin } from "./channel.setup-BDM8y3aD.js";
1
+ import { t as qqbotSetupPlugin } from "./channel.setup-D_GS95Pk.js";
2
2
  export { qqbotSetupPlugin };
@@ -21,8 +21,8 @@ function hasPlatformAdapter() {
21
21
  * String normalization and record-coercion helpers.
22
22
  *
23
23
  * These are self-contained re-implementations of the functions that
24
- * the plugin previously imported from `openclaw/plugin-sdk/text-runtime`
25
- * and `openclaw/plugin-sdk/text-runtime` (via record-coerce / string-coerce).
24
+ * the plugin previously imported from broad SDK text barrels
25
+ * and shared record/string coercion helpers.
26
26
  *
27
27
  * core/ modules use these instead of importing plugin-sdk, keeping the
28
28
  * shared layer portable between the built-in and standalone versions.
@@ -1,5 +1,5 @@
1
- import { c as getPlatformAdapter } from "./string-normalize-BzzzPOeb.js";
2
- import { C as debugWarn, L as formatErrorMessage, S as debugLog } from "./sender-C-TmIFow.js";
1
+ import { c as getPlatformAdapter } from "./string-normalize-C46CS-F1.js";
2
+ import { C as debugWarn, L as formatErrorMessage, S as debugLog } from "./sender-BrpzCcXA.js";
3
3
  import * as fs$1 from "node:fs";
4
4
  import * as os$1 from "node:os";
5
5
  import * as path$1 from "node:path";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/qqbot",
3
- "version": "2026.5.10-beta.2",
3
+ "version": "2026.5.10-beta.3",
4
4
  "private": false,
5
5
  "description": "OpenClaw QQ Bot channel plugin",
6
6
  "repository": {
@@ -12,7 +12,8 @@
12
12
  "@tencent-connect/qqbot-connector": "^1.1.0",
13
13
  "mpg123-decoder": "^1.0.3",
14
14
  "silk-wasm": "^3.7.1",
15
- "ws": "^8.20.0"
15
+ "ws": "^8.20.0",
16
+ "zod": "^4.4.3"
16
17
  },
17
18
  "devDependencies": {
18
19
  "@openclaw/plugin-sdk": "workspace:*",
@@ -20,7 +21,7 @@
20
21
  "openclaw": "workspace:*"
21
22
  },
22
23
  "peerDependencies": {
23
- "openclaw": ">=2026.5.10-beta.2"
24
+ "openclaw": ">=2026.5.10-beta.3"
24
25
  },
25
26
  "peerDependenciesMeta": {
26
27
  "openclaw": {
@@ -49,10 +50,10 @@
49
50
  "minHostVersion": ">=2026.4.10"
50
51
  },
51
52
  "compat": {
52
- "pluginApi": ">=2026.5.10-beta.2"
53
+ "pluginApi": ">=2026.5.10-beta.3"
53
54
  },
54
55
  "build": {
55
- "openclawVersion": "2026.5.10-beta.2"
56
+ "openclawVersion": "2026.5.10-beta.3"
56
57
  },
57
58
  "release": {
58
59
  "publishToClawHub": true,