@openclaw/discord 2026.5.18 → 2026.5.19-beta.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 (56) hide show
  1. package/dist/action-runtime-api.js +1 -1
  2. package/dist/api.js +12 -12
  3. package/dist/{approval-handler.runtime-CpNuGEHP.js → approval-handler.runtime-CRpNixJy.js} +3 -3
  4. package/dist/{audit-CniGmJUL.js → audit-DEF10R9j.js} +3 -3
  5. package/dist/{channel-n7fwA0Rx.js → channel-CR9HckAC.js} +14 -14
  6. package/dist/{channel-actions-DRqDFJUk.js → channel-actions-CpmPx9PW.js} +2 -2
  7. package/dist/{channel-actions.runtime-DVnGrlsm.js → channel-actions.runtime-Be5OvB1r.js} +5 -5
  8. package/dist/channel-plugin-api.js +1 -1
  9. package/dist/{channel.setup-D1j7U4B3.js → channel.setup-DR3-U0wF.js} +2 -2
  10. package/dist/{components-KsP3ijoj.js → components-q41bHoCx.js} +4 -1
  11. package/dist/contract-api.js +3 -3
  12. package/dist/{conversation-identity-CYgemFy7.js → conversation-identity-BY7sjUQh.js} +2 -2
  13. package/dist/{directory-config-B5jO6mjo.js → directory-config-x3YzNdoX.js} +1 -1
  14. package/dist/directory-contract-api.js +1 -1
  15. package/dist/{directory-live-D5VrQBC7.js → directory-live-CJiEWQwK.js} +1 -1
  16. package/dist/{handle-action.guild-admin-CqCngm8I.js → handle-action.guild-admin-kAzbjGMw.js} +1 -1
  17. package/dist/{manager.runtime-DigfejdS.js → manager.runtime-CGcJ0yjq.js} +3 -3
  18. package/dist/{message-handler-Jsc36DUW.js → message-handler-1NV0WiHC.js} +9 -9
  19. package/dist/{message-handler.preflight--cdiq4ck.js → message-handler.preflight-DQ-oPY7m.js} +10 -10
  20. package/dist/{message-handler.process-9JHT0Fok.js → message-handler.process-PpgZ0qC4.js} +12 -12
  21. package/dist/{message-utils-BZriBbcg.js → message-utils-BKrlzFtM.js} +1 -1
  22. package/dist/{outbound-adapter-C54-43UU.js → outbound-adapter-CaZzpMnE.js} +8 -7
  23. package/dist/{pluralkit-BHV93ojA.js → pluralkit-BnCH6cHK.js} +1 -1
  24. package/dist/{provider-BXK0P155.js → provider-BZtjA1y_.js} +20 -20
  25. package/dist/{provider-session.runtime-CMvHIMEE.js → provider-session.runtime-DVfzQxFH.js} +3 -3
  26. package/dist/provider.runtime-DlegJeN5.js +2 -0
  27. package/dist/{resolve-channels-AxDQ4jXh.js → resolve-channels-Czrd7fOv.js} +1 -1
  28. package/dist/{resolve-users-D7w0icpA.js → resolve-users-D7hQMaaq.js} +1 -1
  29. package/dist/{runtime-CqTcWrem.js → runtime-BJUWt4mA.js} +7 -7
  30. package/dist/runtime-api.actions.js +2 -2
  31. package/dist/runtime-api.js +19 -19
  32. package/dist/runtime-api.lookup.js +4 -4
  33. package/dist/runtime-api.monitor-BlxEnLN_.js +5 -0
  34. package/dist/runtime-api.monitor.js +4 -4
  35. package/dist/runtime-api.send.js +5 -5
  36. package/dist/runtime-api.threads.js +4 -4
  37. package/dist/{send-DuW4qqIK.js → send-BsBy21Te.js} +3 -3
  38. package/dist/{send.components-BjAjvjmT.js → send.components-BuZBJysI.js} +4 -4
  39. package/dist/{send.outbound-PAYV11wW.js → send.outbound-C0OzZAv_.js} +3 -3
  40. package/dist/{send.receipt-nKLxvA1s.js → send.receipt-Dhym-qOF.js} +37 -37
  41. package/dist/{send.shared-CJ6oJrVc.js → send.shared-C6JLgsbp.js} +2 -2
  42. package/dist/setup-plugin-api.js +1 -1
  43. package/dist/{subagent-hooks-CnPSppNz.js → subagent-hooks-DCIt8Gt7.js} +12 -5
  44. package/dist/subagent-hooks-api.js +1 -1
  45. package/dist/{system-events-CEehp53f.js → system-events-DEuiLTl9.js} +1 -1
  46. package/dist/{target-resolver-CgtNlbhO.js → target-resolver-C5tK3vit.js} +2 -2
  47. package/dist/targets-JvlTzyfK.js +3 -0
  48. package/dist/test-api.js +4 -4
  49. package/dist/{thread-bindings-CXZ2h9DB.js → thread-bindings-BcXgbZ3-.js} +5 -5
  50. package/dist/{thread-bindings.discord-api-_zMU4M2x.js → thread-bindings.discord-api-BzelVdsY.js} +4 -4
  51. package/dist/{thread-bindings.manager-XKdkYEit.js → thread-bindings.manager-CouT_qjE.js} +8 -7
  52. package/dist/{typing-DudlJ-Fv.js → typing-DtdZgo-g.js} +1 -1
  53. package/package.json +4 -4
  54. package/dist/provider.runtime-TGlvSd9K.js +0 -2
  55. package/dist/runtime-api.monitor-D97Sc6-n.js +0 -5
  56. package/dist/targets-Z4SW2zZs.js +0 -3
@@ -1,6 +1,6 @@
1
- import { Wt as __exportAll } from "./send.receipt-nKLxvA1s.js";
1
+ import { Wt as __exportAll } from "./send.receipt-Dhym-qOF.js";
2
2
  import { s as resolveDiscordAccount } from "./accounts-ltxKLzxN.js";
3
- import { n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey } from "./thread-bindings-CXZ2h9DB.js";
3
+ import { n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey } from "./thread-bindings-BcXgbZ3-.js";
4
4
  import { normalizeOptionalLowercaseString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { formatThreadBindingDisabledError, formatThreadBindingSpawnDisabledError, resolveThreadBindingSpawnPolicy } from "openclaw/plugin-sdk/conversation-runtime";
6
6
  //#region extensions/discord/src/subagent-hooks.ts
@@ -49,7 +49,7 @@ async function handleDiscordSubagentSpawning(api, event) {
49
49
  };
50
50
  try {
51
51
  const agentId = event.agentId?.trim() || "subagent";
52
- if (!await autoBindSpawnedDiscordSubagent({
52
+ const binding = await autoBindSpawnedDiscordSubagent({
53
53
  cfg: api.config,
54
54
  accountId: account.accountId,
55
55
  channel: event.requester?.channel,
@@ -59,13 +59,20 @@ async function handleDiscordSubagentSpawning(api, event) {
59
59
  agentId,
60
60
  label: event.label,
61
61
  boundBy: "system"
62
- })) return {
62
+ });
63
+ if (!binding) return {
63
64
  status: "error",
64
65
  error: "Unable to create or bind a Discord thread for this subagent session. Session mode is unavailable for this target."
65
66
  };
66
67
  return {
67
68
  status: "ok",
68
- threadBindingReady: true
69
+ threadBindingReady: true,
70
+ deliveryOrigin: {
71
+ channel: "discord",
72
+ accountId: account.accountId,
73
+ to: `channel:${binding.threadId}`,
74
+ threadId: binding.threadId
75
+ }
69
76
  };
70
77
  } catch (err) {
71
78
  return {
@@ -1,7 +1,7 @@
1
1
  //#region extensions/discord/subagent-hooks-api.ts
2
2
  let discordSubagentHooksPromise = null;
3
3
  function loadDiscordSubagentHooksModule() {
4
- discordSubagentHooksPromise ??= import("./subagent-hooks-CnPSppNz.js").then((n) => n.i);
4
+ discordSubagentHooksPromise ??= import("./subagent-hooks-DCIt8Gt7.js").then((n) => n.i);
5
5
  return discordSubagentHooksPromise;
6
6
  }
7
7
  function registerDiscordSubagentHooks(api) {
@@ -1,4 +1,4 @@
1
- import { c as discord_exports } from "./send.receipt-nKLxvA1s.js";
1
+ import { c as discord_exports } from "./send.receipt-Dhym-qOF.js";
2
2
  import { b as formatDiscordUserTag } from "./allow-list-CBI-M84K.js";
3
3
  //#region extensions/discord/src/monitor/system-events.ts
4
4
  function resolveDiscordSystemEvent(message, location) {
@@ -1,6 +1,6 @@
1
- import { Ht as parseDiscordTarget, Wt as __exportAll, r as allowFromContainsDiscordUserId } from "./send.receipt-nKLxvA1s.js";
1
+ import { Ht as parseDiscordTarget, Wt as __exportAll, r as allowFromContainsDiscordUserId } from "./send.receipt-Dhym-qOF.js";
2
2
  import { c as resolveDiscordAccountAllowFrom, s as resolveDiscordAccount } from "./accounts-ltxKLzxN.js";
3
- import { i as rememberDiscordDirectoryUser, r as listDiscordDirectoryPeersLive } from "./directory-live-D5VrQBC7.js";
3
+ import { i as rememberDiscordDirectoryUser, r as listDiscordDirectoryPeersLive } from "./directory-live-CJiEWQwK.js";
4
4
  import { buildMessagingTarget } from "openclaw/plugin-sdk/messaging-targets";
5
5
  //#region extensions/discord/src/send-target-parsing.ts
6
6
  const parseDiscordSendTarget = (raw, options = {}) => parseDiscordTarget(raw, options);
@@ -0,0 +1,3 @@
1
+ import "./send.receipt-Dhym-qOF.js";
2
+ import "./target-resolver-C5tK3vit.js";
3
+ export {};
package/dist/test-api.js CHANGED
@@ -1,6 +1,6 @@
1
- import { t as discordPlugin } from "./channel-n7fwA0Rx.js";
2
- import { n as discordOutbound } from "./outbound-adapter-C54-43UU.js";
3
- import { t as __testing } from "./thread-bindings.manager-XKdkYEit.js";
1
+ import { t as discordPlugin } from "./channel-CR9HckAC.js";
2
+ import { n as discordOutbound } from "./outbound-adapter-CaZzpMnE.js";
3
+ import { i as testing } from "./thread-bindings.manager-CouT_qjE.js";
4
4
  import { n as buildDiscordInboundAccessContext } from "./inbound-context-CzEAvKgx.js";
5
5
  import { finalizeInboundContext } from "openclaw/plugin-sdk/reply-dispatch-runtime";
6
6
  //#region extensions/discord/src/monitor/inbound-context.test-helpers.ts
@@ -42,4 +42,4 @@ function buildFinalizedDiscordDirectInboundContext() {
42
42
  });
43
43
  }
44
44
  //#endregion
45
- export { buildFinalizedDiscordDirectInboundContext, discordOutbound, discordPlugin, __testing as discordThreadBindingTesting };
45
+ export { buildFinalizedDiscordDirectInboundContext, discordOutbound, discordPlugin, testing as discordThreadBindingTesting };
@@ -1,9 +1,9 @@
1
- import { Ht as parseDiscordTarget, Wt as __exportAll } from "./send.receipt-nKLxvA1s.js";
2
- import "./targets-Z4SW2zZs.js";
1
+ import { Ht as parseDiscordTarget, Wt as __exportAll } from "./send.receipt-Dhym-qOF.js";
2
+ import "./targets-JvlTzyfK.js";
3
3
  import { C as resolveThreadBindingMaxAgeMs$1, O as shouldPersistBindingMutations, S as resolveThreadBindingMaxAgeExpiresAt, T as saveBindingsToDisk, b as resolveThreadBindingIdleTimeoutMs$1, c as getThreadBindingToken, f as normalizeThreadId, g as removeBindingRecord, l as isRecentlyUnboundThreadWebhookMessage, n as MANAGERS_BY_ACCOUNT_ID, p as rememberRecentUnboundWebhookEcho, t as BINDINGS_BY_THREAD_ID, x as resolveThreadBindingInactivityExpiresAt } from "./thread-bindings.state-CSphZOiL.js";
4
4
  import { n as setThreadBindingMaxAgeBySessionKey, r as resolveBindingIdsForTargetSession, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-CgOqEOPe.js";
5
- import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, s as resolveChannelIdForBinding, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-_zMU4M2x.js";
6
- import { i as getThreadBindingManager, n as createNoopThreadBindingManager, r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-XKdkYEit.js";
5
+ import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, s as resolveChannelIdForBinding, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-BzelVdsY.js";
6
+ import { i as testing, n as createThreadBindingManager, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-CouT_qjE.js";
7
7
  import { normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
9
9
  import { resolveThreadBindingIdleTimeoutMs, resolveThreadBindingMaxAgeMs, resolveThreadBindingsEnabled } from "openclaw/plugin-sdk/conversation-runtime";
@@ -226,7 +226,6 @@ async function reconcileAcpThreadBindingsOnStartup(params) {
226
226
  //#endregion
227
227
  //#region extensions/discord/src/monitor/thread-bindings.ts
228
228
  var thread_bindings_exports = /* @__PURE__ */ __exportAll({
229
- __testing: () => __testing,
230
229
  autoBindSpawnedDiscordSubagent: () => autoBindSpawnedDiscordSubagent,
231
230
  createNoopThreadBindingManager: () => createNoopThreadBindingManager,
232
231
  createThreadBindingManager: () => createThreadBindingManager,
@@ -249,6 +248,7 @@ var thread_bindings_exports = /* @__PURE__ */ __exportAll({
249
248
  resolveThreadBindingsEnabled: () => resolveThreadBindingsEnabled,
250
249
  setThreadBindingIdleTimeoutBySessionKey: () => setThreadBindingIdleTimeoutBySessionKey,
251
250
  setThreadBindingMaxAgeBySessionKey: () => setThreadBindingMaxAgeBySessionKey,
251
+ testing: () => testing,
252
252
  unbindThreadBindingsBySessionKey: () => unbindThreadBindingsBySessionKey
253
253
  });
254
254
  //#endregion
@@ -1,7 +1,7 @@
1
- import { Ut as resolveDiscordChannelId, pt as getChannel, tt as createChannelWebhook } from "./send.receipt-nKLxvA1s.js";
2
- import { N as createDiscordRestClient } from "./send.shared-CJ6oJrVc.js";
3
- import { c as sendWebhookMessageDiscord, u as createThreadDiscord } from "./send-DuW4qqIK.js";
4
- import { t as sendMessageDiscord } from "./send.outbound-PAYV11wW.js";
1
+ import { Ut as resolveDiscordChannelId, pt as getChannel, tt as createChannelWebhook } from "./send.receipt-Dhym-qOF.js";
2
+ import { N as createDiscordRestClient } from "./send.shared-C6JLgsbp.js";
3
+ import { c as sendWebhookMessageDiscord, u as createThreadDiscord } from "./send-BsBy21Te.js";
4
+ import { t as sendMessageDiscord } from "./send.outbound-C0OzZAv_.js";
5
5
  import { i as REUSABLE_WEBHOOKS_BY_ACCOUNT_CHANNEL, k as toReusableWebhookKey, m as rememberReusableWebhook, t as BINDINGS_BY_THREAD_ID } from "./thread-bindings.state-CSphZOiL.js";
6
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { ChannelType } from "discord-api-types/v10";
@@ -1,7 +1,7 @@
1
- import { Ut as resolveDiscordChannelId, Wt as __exportAll, pt as getChannel } from "./send.receipt-nKLxvA1s.js";
2
- import { N as createDiscordRestClient } from "./send.shared-CJ6oJrVc.js";
1
+ import { Ut as resolveDiscordChannelId, Wt as __exportAll, pt as getChannel } from "./send.receipt-Dhym-qOF.js";
2
+ import { N as createDiscordRestClient } from "./send.shared-C6JLgsbp.js";
3
3
  import { A as DEFAULT_THREAD_BINDING_IDLE_TIMEOUT_MS, C as resolveThreadBindingMaxAgeMs$1, D as shouldDefaultPersist, E as setBindingRecord, M as THREAD_BINDINGS_SWEEP_INTERVAL_MS, S as resolveThreadBindingMaxAgeExpiresAt, T as saveBindingsToDisk, _ as resetThreadBindingsForTests, a as THREAD_BINDING_TOUCH_PERSIST_MIN_INTERVAL_MS, b as resolveThreadBindingIdleTimeoutMs$1, c as getThreadBindingToken, d as normalizeThreadBindingDurationMs, f as normalizeThreadId, g as removeBindingRecord, h as rememberThreadBindingToken, n as MANAGERS_BY_ACCOUNT_ID, o as ensureBindingsLoaded, p as rememberRecentUnboundWebhookEcho, r as PERSIST_BY_ACCOUNT_ID, s as forgetThreadBindingToken, t as BINDINGS_BY_THREAD_ID, u as normalizeTargetKind, v as resolveBindingIdsForSession, w as resolveThreadBindingsPath, x as resolveThreadBindingInactivityExpiresAt, y as resolveBindingRecordKey } from "./thread-bindings.state-CSphZOiL.js";
4
- import { a as isThreadArchived, b as resolveThreadBindingThreadName, c as summarizeDiscordError, i as isDiscordThreadGoneError, n as createWebhookForChannel, o as maybeSendBindingMessage, r as findReusableWebhook, s as resolveChannelIdForBinding, t as createThreadForBinding, v as resolveThreadBindingFarewellText } from "./thread-bindings.discord-api-_zMU4M2x.js";
4
+ import { a as isThreadArchived, b as resolveThreadBindingThreadName, c as summarizeDiscordError, i as isDiscordThreadGoneError, n as createWebhookForChannel, o as maybeSendBindingMessage, r as findReusableWebhook, s as resolveChannelIdForBinding, t as createThreadForBinding, v as resolveThreadBindingFarewellText } from "./thread-bindings.discord-api-BzelVdsY.js";
5
5
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { normalizeAccountId, resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/routing";
7
7
  import { getRuntimeConfigSnapshot } from "openclaw/plugin-sdk/runtime-config-snapshot";
@@ -160,10 +160,11 @@ function createThreadBindingSessionAdapter(params) {
160
160
  //#endregion
161
161
  //#region extensions/discord/src/monitor/thread-bindings.manager.ts
162
162
  var thread_bindings_manager_exports = /* @__PURE__ */ __exportAll({
163
- __testing: () => __testing,
163
+ __testing: () => testing,
164
164
  createNoopThreadBindingManager: () => createNoopThreadBindingManager,
165
165
  createThreadBindingManager: () => createThreadBindingManager,
166
- getThreadBindingManager: () => getThreadBindingManager
166
+ getThreadBindingManager: () => getThreadBindingManager,
167
+ testing: () => testing
167
168
  });
168
169
  function registerManager(manager) {
169
170
  MANAGERS_BY_ACCOUNT_ID.set(manager.accountId, manager);
@@ -520,7 +521,7 @@ function getThreadBindingManager(accountId) {
520
521
  const normalized = normalizeAccountId(accountId);
521
522
  return MANAGERS_BY_ACCOUNT_ID.get(normalized) ?? null;
522
523
  }
523
- const __testing = {
524
+ const testing = {
524
525
  resolveThreadBindingsPath,
525
526
  resolveThreadBindingThreadName,
526
527
  resetThreadBindingsForTests,
@@ -530,4 +531,4 @@ const __testing = {
530
531
  }
531
532
  };
532
533
  //#endregion
533
- export { thread_bindings_manager_exports as a, getThreadBindingManager as i, createNoopThreadBindingManager as n, createThreadBindingManager as r, __testing as t };
534
+ export { thread_bindings_manager_exports as a, testing as i, createThreadBindingManager as n, getThreadBindingManager as r, createNoopThreadBindingManager as t };
@@ -1,4 +1,4 @@
1
- import { Wt as __exportAll, bt as sendChannelTyping } from "./send.receipt-nKLxvA1s.js";
1
+ import { Wt as __exportAll, bt as sendChannelTyping } from "./send.receipt-Dhym-qOF.js";
2
2
  import { o as raceWithTimeout } from "./timeouts-CEwuGaWT.js";
3
3
  //#region extensions/discord/src/monitor/typing.ts
4
4
  var typing_exports = /* @__PURE__ */ __exportAll({ sendTyping: () => sendTyping });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/discord",
3
- "version": "2026.5.18",
3
+ "version": "2026.5.19-beta.2",
4
4
  "description": "OpenClaw Discord channel plugin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,7 +21,7 @@
21
21
  "openclaw": "workspace:*"
22
22
  },
23
23
  "peerDependencies": {
24
- "openclaw": ">=2026.5.18"
24
+ "openclaw": ">=2026.5.19-beta.2"
25
25
  },
26
26
  "peerDependenciesMeta": {
27
27
  "openclaw": {
@@ -65,10 +65,10 @@
65
65
  "allowInvalidConfigRecovery": true
66
66
  },
67
67
  "compat": {
68
- "pluginApi": ">=2026.5.18"
68
+ "pluginApi": ">=2026.5.19-beta.2"
69
69
  },
70
70
  "build": {
71
- "openclawVersion": "2026.5.18"
71
+ "openclawVersion": "2026.5.19-beta.2"
72
72
  },
73
73
  "release": {
74
74
  "publishToClawHub": true,
@@ -1,2 +0,0 @@
1
- import { t as monitorDiscordProvider } from "./provider-BXK0P155.js";
2
- export { monitorDiscordProvider };
@@ -1,5 +0,0 @@
1
- import "./allow-list-CBI-M84K.js";
2
- import "./provider-BXK0P155.js";
3
- import "./message-utils-BZriBbcg.js";
4
- import "./message-handler-Jsc36DUW.js";
5
- export {};
@@ -1,3 +0,0 @@
1
- import "./send.receipt-nKLxvA1s.js";
2
- import "./target-resolver-CgtNlbhO.js";
3
- export {};