@openclaw/discord 2026.5.28 → 2026.5.31-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/{account-inspect-C4sJZNbI.js → account-inspect-DDZtT5C8.js} +9 -7
- package/dist/account-inspect-api.js +1 -1
- package/dist/{accounts-dXTfmnSZ.js → accounts-P19jm1lf.js} +1 -1
- package/dist/action-runtime-api.js +1 -1
- package/dist/api.js +16 -16
- package/dist/{approval-handler.runtime-CN_E7nkQ.js → approval-handler.runtime-DSFfzXpo.js} +4 -4
- package/dist/{audit-BFCBp74H.js → audit-kgIklCyI.js} +4 -4
- package/dist/{channel-COXb22wL.js → channel-D0gX0yj6.js} +44 -31
- package/dist/{channel-actions-C2g9OmnG.js → channel-actions-DDoc4V7x.js} +4 -4
- package/dist/{channel-actions.runtime-drnbrgpt.js → channel-actions.runtime-CqZfnMaA.js} +5 -5
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.setup-BsrP5-hv.js → channel.setup-BNZm3eed.js} +8 -23
- package/dist/{components-CjQujWa1.js → components-DcLQ2JkV.js} +1 -1
- package/dist/{config-schema-3tZYNVTM.js → config-schema-spuxW477.js} +17 -1
- package/dist/contract-api.js +3 -3
- package/dist/{conversation-identity-CsPV1Gjx.js → conversation-identity-BURFgcfI.js} +7 -5
- package/dist/{directory-config-BqPvRoDv.js → directory-config-B9Jw1Q2R.js} +2 -2
- package/dist/directory-contract-api.js +1 -1
- package/dist/{directory-live-CCI0IMZq.js → directory-live-CDWUg-nA.js} +2 -2
- package/dist/{doctor-Dy7sI1sL.js → doctor-BUhqxLb9.js} +4 -5
- package/dist/{doctor-contract-8-Ia3d_X.js → doctor-contract-BAu3WLvd.js} +5 -5
- package/dist/doctor-contract-api.js +1 -1
- package/dist/{handle-action.guild-admin-BmjclQbR.js → handle-action.guild-admin-Dpa-kUzu.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/legacy-state-migrations-api.js +3 -1
- package/dist/{manager.runtime-ClhnLsZf.js → manager.runtime-BWBENHRA.js} +22 -19
- package/dist/{message-handler-BnhAHqem.js → message-handler-HO8BbZmQ.js} +182 -29
- package/dist/{message-handler.preflight-B1RTQ6ZO.js → message-handler.preflight-DxHBPQvD.js} +24 -17
- package/dist/{message-handler.process-B1ODKav3.js → message-handler.process-Cq3j7A9k.js} +41 -29
- package/dist/{message-utils-CmB03FoF.js → message-utils-D_3KTxh_.js} +19 -15
- package/dist/{outbound-adapter-DfY2Dtf3.js → outbound-adapter-BkPkILpq.js} +52 -87
- package/dist/{pluralkit-DAZN3ZMK.js → pluralkit-Ds9aZAM4.js} +1 -1
- package/dist/{probe-BiEg-_i1.js → probe-2MdGjUAf.js} +1 -1
- package/dist/{probe.runtime-Dja7CbJT.js → probe.runtime-J927koKG.js} +1 -1
- package/dist/{provider-DCcqVFp-.js → provider-BK8hjk_y.js} +224 -150
- package/dist/{provider-session.runtime-mKSG07RE.js → provider-session.runtime-CYMFlLg9.js} +3 -3
- package/dist/provider.runtime-RfQSSM_v.js +2 -0
- package/dist/{resolve-allowlist-common-DAIbZobr.js → resolve-allowlist-common-BIf3417N.js} +1 -1
- package/dist/{resolve-channels-D1zgoxnw.js → resolve-channels-DK-3f_aA.js} +2 -2
- package/dist/{resolve-users-wPAvLk_8.js → resolve-users-DUDPsfWt.js} +2 -2
- package/dist/{runtime-gaB5-Wsj.js → runtime-Blf_d9E7.js} +8 -8
- package/dist/runtime-api.actions.js +2 -2
- package/dist/runtime-api.js +22 -22
- package/dist/runtime-api.lookup.js +5 -5
- package/dist/runtime-api.monitor-LVbgPRHA.js +6 -0
- package/dist/runtime-api.monitor.js +5 -5
- package/dist/runtime-api.send.js +5 -5
- package/dist/runtime-api.threads.js +5 -5
- package/dist/{send-CBxhnbKU.js → send-BHkA8a-k.js} +7 -7
- package/dist/{send.components-uuQuHL3t.js → send.components-CUHzDapa.js} +26 -12
- package/dist/{send.outbound-DZHJYmNF.js → send.outbound-DSKZbjML.js} +15 -5
- package/dist/{send.receipt-3y2lVFRf.js → send.receipt-CjsWpitW.js} +25 -13
- package/dist/{send.shared-Ddl21-Gt.js → send.shared-Cluujl6W.js} +3 -3
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{shared-D3NkInmq.js → shared-BMGLQw74.js} +5 -5
- package/dist/{subagent-hooks-BacIbIBD.js → subagent-hooks-7jAn9HT5.js} +3 -3
- package/dist/subagent-hooks-api.js +1 -5
- package/dist/{system-events-Cw6Hp8RF.js → system-events-BjuNA9Zs.js} +1 -1
- package/dist/{target-resolver-jjQzAS6T.js → target-resolver-BYuWNVQp.js} +3 -3
- package/dist/targets-BNDUOdvI.js +3 -0
- package/dist/{thread-bindings-BBq-yzq2.js → thread-bindings-CKruJE91.js} +6 -6
- package/dist/{thread-bindings.discord-api-5QgEd_dW.js → thread-bindings.discord-api-BjLUwwSP.js} +5 -5
- package/dist/{thread-bindings.manager-COkxjwR9.js → thread-bindings.manager-Dji7SZHG.js} +4 -4
- package/dist/{thread-bindings.session-updates-D5gY2ZTE.js → thread-bindings.session-updates-DoDFvU_h.js} +1 -1
- package/dist/{thread-bindings.state-BsOnj5NX.js → thread-bindings.state-DYp4FVEB.js} +8 -2
- package/dist/{timeouts-l_PsHQvX.js → timeouts-CEJ3--Uw.js} +5 -2
- package/dist/timeouts.js +1 -1
- package/dist/{transcripts-source-DDrS8HrV.js → transcripts-source-O73_YIDs.js} +1 -1
- package/dist/transcripts-source-api.js +1 -1
- package/dist/{typing-B7bCMPJJ.js → typing-CKW0i8du.js} +2 -2
- package/node_modules/typebox/build/type/script/mapping.d.mts +5 -2
- package/node_modules/typebox/build/type/script/mapping.mjs +15 -8
- package/node_modules/typebox/build/type/script/parser.d.mts +3 -1
- package/node_modules/typebox/build/type/script/parser.mjs +2 -1
- package/node_modules/typebox/package.json +29 -29
- package/npm-shrinkwrap.json +7 -38
- package/openclaw.plugin.json +77 -1
- package/package.json +5 -5
- package/dist/provider.runtime-BmpunJHX.js +0 -2
- package/dist/runtime-api.monitor-B38upMUK.js +0 -5
- package/dist/targets-BVKF5wbg.js +0 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Ut as resolveDiscordChannelId, Wt as __exportAll, pt as getChannel } from "./send.receipt-
|
|
2
|
-
import { I as createDiscordRestClient } from "./send.shared-
|
|
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-
|
|
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-
|
|
1
|
+
import { Ut as resolveDiscordChannelId, Wt as __exportAll, pt as getChannel } from "./send.receipt-CjsWpitW.js";
|
|
2
|
+
import { I as createDiscordRestClient } from "./send.shared-Cluujl6W.js";
|
|
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-DYp4FVEB.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-BjLUwwSP.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";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as setBindingRecord, O as shouldPersistBindingMutations, T as saveBindingsToDisk, o as ensureBindingsLoaded, t as BINDINGS_BY_THREAD_ID, v as resolveBindingIdsForSession } from "./thread-bindings.state-
|
|
1
|
+
import { E as setBindingRecord, O as shouldPersistBindingMutations, T as saveBindingsToDisk, o as ensureBindingsLoaded, t as BINDINGS_BY_THREAD_ID, v as resolveBindingIdsForSession } from "./thread-bindings.state-DYp4FVEB.js";
|
|
2
2
|
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
3
3
|
//#region extensions/discord/src/monitor/thread-bindings.session-shared.ts
|
|
4
4
|
function normalizeNonNegativeMs(raw) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
2
2
|
import { normalizeAccountId, resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/routing";
|
|
3
|
+
import { isFutureDateTimestampMs, resolveExpiresAtMsFromDurationMs } from "openclaw/plugin-sdk/number-runtime";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
import fs from "node:fs";
|
|
5
6
|
import { loadJsonFile, saveJsonFile } from "openclaw/plugin-sdk/json-store";
|
|
@@ -202,9 +203,14 @@ function rememberRecentUnboundWebhookEcho(record) {
|
|
|
202
203
|
threadId: record.threadId
|
|
203
204
|
});
|
|
204
205
|
if (!bindingKey) return;
|
|
206
|
+
const expiresAt = resolveExpiresAtMsFromDurationMs(RECENT_UNBOUND_WEBHOOK_ECHO_WINDOW_MS);
|
|
207
|
+
if (expiresAt === void 0) {
|
|
208
|
+
RECENT_UNBOUND_WEBHOOK_ECHOES_BY_BINDING_KEY.delete(bindingKey);
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
205
211
|
RECENT_UNBOUND_WEBHOOK_ECHOES_BY_BINDING_KEY.set(bindingKey, {
|
|
206
212
|
webhookId,
|
|
207
|
-
expiresAt
|
|
213
|
+
expiresAt
|
|
208
214
|
});
|
|
209
215
|
}
|
|
210
216
|
function clearRecentUnboundWebhookEcho(bindingKeyRaw) {
|
|
@@ -243,7 +249,7 @@ function isRecentlyUnboundThreadWebhookMessage(params) {
|
|
|
243
249
|
if (!bindingKey) return false;
|
|
244
250
|
const suppressed = RECENT_UNBOUND_WEBHOOK_ECHOES_BY_BINDING_KEY.get(bindingKey);
|
|
245
251
|
if (!suppressed) return false;
|
|
246
|
-
if (suppressed.expiresAt
|
|
252
|
+
if (!isFutureDateTimestampMs(suppressed.expiresAt)) {
|
|
247
253
|
RECENT_UNBOUND_WEBHOOK_ECHOES_BY_BINDING_KEY.delete(bindingKey);
|
|
248
254
|
return false;
|
|
249
255
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
|
|
1
2
|
//#region extensions/discord/src/monitor/timeouts.ts
|
|
2
3
|
const DISCORD_DEFAULT_LISTENER_TIMEOUT_MS = 12e4;
|
|
3
4
|
const DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS = 30 * 6e4;
|
|
@@ -21,9 +22,10 @@ function mergeAbortSignals(signals) {
|
|
|
21
22
|
return fallbackController.signal;
|
|
22
23
|
}
|
|
23
24
|
async function raceWithTimeout(params) {
|
|
25
|
+
const timeoutMs = resolveTimerTimeoutMs(params.timeoutMs, 1);
|
|
24
26
|
let timeoutTimer;
|
|
25
27
|
const timeoutPromise = new Promise((resolve) => {
|
|
26
|
-
timeoutTimer = setTimeout(() => resolve(params.onTimeout()),
|
|
28
|
+
timeoutTimer = setTimeout(() => resolve(params.onTimeout()), timeoutMs);
|
|
27
29
|
timeoutTimer.unref?.();
|
|
28
30
|
});
|
|
29
31
|
try {
|
|
@@ -33,13 +35,14 @@ async function raceWithTimeout(params) {
|
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
async function withAbortTimeout(params) {
|
|
38
|
+
const timeoutMs = resolveTimerTimeoutMs(params.timeoutMs, 1);
|
|
36
39
|
const controller = new AbortController();
|
|
37
40
|
let timeoutTimer;
|
|
38
41
|
const timeoutPromise = new Promise((_, reject) => {
|
|
39
42
|
timeoutTimer = setTimeout(() => {
|
|
40
43
|
controller.abort();
|
|
41
44
|
reject(params.createTimeoutError());
|
|
42
|
-
},
|
|
45
|
+
}, timeoutMs);
|
|
43
46
|
timeoutTimer.unref?.();
|
|
44
47
|
});
|
|
45
48
|
try {
|
package/dist/timeouts.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, r as DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-
|
|
1
|
+
import { i as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, r as DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-CEJ3--Uw.js";
|
|
2
2
|
export { DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, DISCORD_DEFAULT_LISTENER_TIMEOUT_MS };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Wt as __exportAll } from "./send.receipt-
|
|
1
|
+
import { Wt as __exportAll } from "./send.receipt-CjsWpitW.js";
|
|
2
2
|
//#region extensions/discord/src/voice/transcripts-source.ts
|
|
3
3
|
var transcripts_source_exports = /* @__PURE__ */ __exportAll({
|
|
4
4
|
discordVoiceTranscriptsSourceProvider: () => discordVoiceTranscriptsSourceProvider,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as discordVoiceTranscriptsSourceProvider } from "./transcripts-source-
|
|
1
|
+
import { t as discordVoiceTranscriptsSourceProvider } from "./transcripts-source-O73_YIDs.js";
|
|
2
2
|
export { discordVoiceTranscriptsSourceProvider };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Wt as __exportAll, bt as sendChannelTyping } from "./send.receipt-
|
|
2
|
-
import { o as raceWithTimeout } from "./timeouts-
|
|
1
|
+
import { Wt as __exportAll, bt as sendChannelTyping } from "./send.receipt-CjsWpitW.js";
|
|
2
|
+
import { o as raceWithTimeout } from "./timeouts-CEJ3--Uw.js";
|
|
3
3
|
//#region extensions/discord/src/monitor/typing.ts
|
|
4
4
|
var typing_exports = /* @__PURE__ */ __exportAll({ sendTyping: () => sendTyping });
|
|
5
5
|
const DISCORD_TYPING_START_TIMEOUT_MS = 5e3;
|
|
@@ -164,10 +164,13 @@ export type TExtendsMapping<Input extends [unknown, unknown, unknown, unknown, u
|
|
|
164
164
|
export declare function ExtendsMapping(input: [unknown, unknown, unknown, unknown, unknown, unknown] | []): unknown;
|
|
165
165
|
export type TBaseMapping<Input extends [unknown, unknown, unknown] | unknown> = (Input extends ['(', infer Type extends T.TSchema, ')'] ? Type : Input extends infer Type extends T.TSchema ? Type : never);
|
|
166
166
|
export declare function BaseMapping(input: [unknown, unknown, unknown] | unknown): unknown;
|
|
167
|
+
export type TWithMapping<Input extends [unknown, unknown] | []> = (Input extends ['with', infer Options extends Record<PropertyKey, unknown>] ? Options : []);
|
|
168
|
+
export declare function WithMapping(input: [unknown, unknown] | []): unknown;
|
|
167
169
|
type TFactorIndexArray<Type extends T.TSchema, IndexArray extends unknown[]> = (IndexArray extends [infer Left extends T.TSchema[], ...infer Right extends unknown[]] ? (Left extends [infer Indexer extends T.TSchema] ? TFactorIndexArray<C.TIndexDeferred<Type, Indexer>, Right> : Left extends [] ? TFactorIndexArray<T.TArray<Type>, Right> : T.TNever) : Type);
|
|
168
170
|
type TFactorExtends<Type extends T.TSchema, Extends extends unknown[]> = (Extends extends [infer Right extends T.TSchema, infer True extends T.TSchema, infer False extends T.TSchema] ? C.TConditionalDeferred<Type, Right, True, False> : Type);
|
|
169
|
-
|
|
170
|
-
export
|
|
171
|
+
type TFactorWith<Type extends T.TSchema, With extends unknown> = (With extends Record<PropertyKey, unknown> ? C.TOptionsDeferred<Type, With> : Type);
|
|
172
|
+
export type TFactorMapping<Input extends [unknown, unknown, unknown, unknown, unknown]> = (Input extends [infer KeyOf extends boolean, infer Type extends T.TSchema, infer IndexArray extends unknown[], infer Extend extends unknown[], infer WithClause extends unknown] ? TFactorWith<KeyOf extends true ? TFactorExtends<C.TKeyOfDeferred<TFactorIndexArray<Type, IndexArray>>, Extend> : TFactorExtends<TFactorIndexArray<Type, IndexArray>, Extend>, WithClause> : never);
|
|
173
|
+
export declare function FactorMapping(input: [unknown, unknown, unknown, unknown, unknown]): unknown;
|
|
171
174
|
type TExprBinaryMapping<Left extends T.TSchema, Rest extends unknown[]> = (Rest extends [infer Operator extends unknown, infer Right extends T.TSchema, infer Next extends unknown[]] ? (TExprBinaryMapping<Right, Next> extends infer Schema extends T.TSchema ? (Operator extends '&' ? (Schema extends T.TIntersect<infer Types extends T.TSchema[]> ? T.TIntersect<[Left, ...Types]> : T.TIntersect<[Left, Schema]>) : Operator extends '|' ? (Schema extends T.TUnion<infer Types extends T.TSchema[]> ? T.TUnion<[Left, ...Types]> : T.TUnion<[Left, Schema]>) : never) : never) : Left);
|
|
172
175
|
export type TExprTermTailMapping<Input extends [unknown, unknown, unknown] | []> = (Input);
|
|
173
176
|
export declare function ExprTermTailMapping(input: [unknown, unknown, unknown] | []): unknown;
|
|
@@ -185,27 +185,34 @@ export function BaseMapping(input) {
|
|
|
185
185
|
? input[1]
|
|
186
186
|
: input;
|
|
187
187
|
}
|
|
188
|
+
export function WithMapping(input) {
|
|
189
|
+
return Guard.IsEqual(input.length, 2) ? input[1] : [];
|
|
190
|
+
}
|
|
188
191
|
// deno-coverage-ignore-start
|
|
189
|
-
|
|
190
|
-
const FactorIndexArray = (Type, indexArray) => {
|
|
192
|
+
function FactorIndexArray(Type, indexArray) {
|
|
191
193
|
return indexArray.reduce((result, left) => {
|
|
192
194
|
const _left = left;
|
|
193
195
|
return (Guard.IsEqual(_left.length, 1) ? C.IndexDeferred(result, _left[0]) :
|
|
194
196
|
Guard.IsEqual(_left.length, 0) ? T.Array(result) :
|
|
195
197
|
Unreachable());
|
|
196
198
|
}, Type);
|
|
197
|
-
}
|
|
199
|
+
}
|
|
198
200
|
// deno-coverage-ignore-stop
|
|
199
|
-
|
|
201
|
+
function FactorExtends(type, extend) {
|
|
200
202
|
return Guard.IsEqual(extend.length, 3)
|
|
201
203
|
? C.ConditionalDeferred(type, extend[0], extend[1], extend[2])
|
|
202
204
|
: type;
|
|
203
|
-
}
|
|
205
|
+
}
|
|
206
|
+
function FactorWith(type, withClause) {
|
|
207
|
+
return Guard.IsArray(withClause) && Guard.IsEqual(withClause.length, 0)
|
|
208
|
+
? type
|
|
209
|
+
: C.OptionsDeferred(type, withClause);
|
|
210
|
+
}
|
|
204
211
|
export function FactorMapping(input) {
|
|
205
|
-
const [keyOf, type, indexArray, extend] = input;
|
|
206
|
-
return keyOf
|
|
212
|
+
const [keyOf, type, indexArray, extend, withClause] = input;
|
|
213
|
+
return FactorWith(keyOf
|
|
207
214
|
? FactorExtends(C.KeyOfDeferred(FactorIndexArray(type, indexArray)), extend)
|
|
208
|
-
: FactorExtends(FactorIndexArray(type, indexArray), extend);
|
|
215
|
+
: FactorExtends(FactorIndexArray(type, indexArray), extend), withClause);
|
|
209
216
|
}
|
|
210
217
|
// deno-coverage-ignore-start
|
|
211
218
|
function ExprBinaryMapping(left, rest) {
|
|
@@ -43,7 +43,8 @@ export type TIndexArray_0<Input extends string, Result extends unknown[] = []> =
|
|
|
43
43
|
export type TIndexArray<Input extends string> = TIndexArray_0<Input> extends [infer _0 extends ([unknown, unknown, unknown] | [unknown, unknown])[], infer Input extends string] ? [S.TIndexArrayMapping<_0>, Input] : [];
|
|
44
44
|
export type TExtends<Input extends string> = ((Token.TConst<'extends', Input> extends [infer _0, infer Input extends string] ? (TType<Input> extends [infer _1, infer Input extends string] ? (Token.TConst<'?', Input> extends [infer _2, infer Input extends string] ? (TType<Input> extends [infer _3, infer Input extends string] ? (Token.TConst<':', Input> extends [infer _4, infer Input extends string] ? (TType<Input> extends [infer _5, infer Input extends string] ? [[_0, _1, _2, _3, _4, _5], Input] : []) : []) : []) : []) : []) : []) extends [infer _0, infer Input extends string] ? [_0, Input] : [[], Input] extends [infer _0, infer Input extends string] ? [_0, Input] : []) extends [infer _0 extends [unknown, unknown, unknown, unknown, unknown, unknown] | [], infer Input extends string] ? [S.TExtendsMapping<_0>, Input] : [];
|
|
45
45
|
export type TBase<Input extends string> = ((Token.TConst<'(', Input> extends [infer _0, infer Input extends string] ? (TType<Input> extends [infer _1, infer Input extends string] ? (Token.TConst<')', Input> extends [infer _2, infer Input extends string] ? [[_0, _1, _2], Input] : []) : []) : []) extends [infer _0, infer Input extends string] ? [_0, Input] : TKeyword<Input> extends [infer _0, infer Input extends string] ? [_0, Input] : T_Object_<Input> extends [infer _0, infer Input extends string] ? [_0, Input] : TTuple<Input> extends [infer _0, infer Input extends string] ? [_0, Input] : TTemplateLiteral<Input> extends [infer _0, infer Input extends string] ? [_0, Input] : TLiteral<Input> extends [infer _0, infer Input extends string] ? [_0, Input] : TConstructor<Input> extends [infer _0, infer Input extends string] ? [_0, Input] : T_Function_<Input> extends [infer _0, infer Input extends string] ? [_0, Input] : TMapped<Input> extends [infer _0, infer Input extends string] ? [_0, Input] : TOptions<Input> extends [infer _0, infer Input extends string] ? [_0, Input] : TGenericCall<Input> extends [infer _0, infer Input extends string] ? [_0, Input] : TReference<Input> extends [infer _0, infer Input extends string] ? [_0, Input] : []) extends [infer _0 extends [unknown, unknown, unknown] | unknown, infer Input extends string] ? [S.TBaseMapping<_0>, Input] : [];
|
|
46
|
-
export type
|
|
46
|
+
export type TWith<Input extends string> = ((Token.TConst<'with', Input> extends [infer _0, infer Input extends string] ? (TJsonObject<Input> extends [infer _1, infer Input extends string] ? [[_0, _1], Input] : []) : []) extends [infer _0, infer Input extends string] ? [_0, Input] : [[], Input] extends [infer _0, infer Input extends string] ? [_0, Input] : []) extends [infer _0 extends [unknown, unknown] | [], infer Input extends string] ? [S.TWithMapping<_0>, Input] : [];
|
|
47
|
+
export type TFactor<Input extends string> = (TKeyOf<Input> extends [infer _0, infer Input extends string] ? (TBase<Input> extends [infer _1, infer Input extends string] ? (TIndexArray<Input> extends [infer _2, infer Input extends string] ? (TExtends<Input> extends [infer _3, infer Input extends string] ? (TWith<Input> extends [infer _4, infer Input extends string] ? [[_0, _1, _2, _3, _4], Input] : []) : []) : []) : []) : []) extends [infer _0 extends [unknown, unknown, unknown, unknown, unknown], infer Input extends string] ? [S.TFactorMapping<_0>, Input] : [];
|
|
47
48
|
export type TExprTermTail<Input extends string> = ((Token.TConst<'&', Input> extends [infer _0, infer Input extends string] ? (TFactor<Input> extends [infer _1, infer Input extends string] ? (TExprTermTail<Input> extends [infer _2, infer Input extends string] ? [[_0, _1, _2], Input] : []) : []) : []) extends [infer _0, infer Input extends string] ? [_0, Input] : [[], Input] extends [infer _0, infer Input extends string] ? [_0, Input] : []) extends [infer _0 extends [unknown, unknown, unknown] | [], infer Input extends string] ? [S.TExprTermTailMapping<_0>, Input] : [];
|
|
48
49
|
export type TExprTerm<Input extends string> = (TFactor<Input> extends [infer _0, infer Input extends string] ? (TExprTermTail<Input> extends [infer _1, infer Input extends string] ? [[_0, _1], Input] : []) : []) extends [infer _0 extends [unknown, unknown], infer Input extends string] ? [S.TExprTermMapping<_0>, Input] : [];
|
|
49
50
|
export type TExprTail<Input extends string> = ((Token.TConst<'|', Input> extends [infer _0, infer Input extends string] ? (TExprTerm<Input> extends [infer _1, infer Input extends string] ? (TExprTail<Input> extends [infer _2, infer Input extends string] ? [[_0, _1, _2], Input] : []) : []) : []) extends [infer _0, infer Input extends string] ? [_0, Input] : [[], Input] extends [infer _0, infer Input extends string] ? [_0, Input] : []) extends [infer _0 extends [unknown, unknown, unknown] | [], infer Input extends string] ? [S.TExprTailMapping<_0>, Input] : [];
|
|
@@ -172,6 +173,7 @@ export declare const IndexArray_0: (input: string, result?: unknown[]) => [unkno
|
|
|
172
173
|
export declare const IndexArray: (input: string) => [unknown, string] | [];
|
|
173
174
|
export declare const Extends: (input: string) => [unknown, string] | [];
|
|
174
175
|
export declare const Base: (input: string) => [unknown, string] | [];
|
|
176
|
+
export declare const With: (input: string) => [unknown, string] | [];
|
|
175
177
|
export declare const Factor: (input: string) => [unknown, string] | [];
|
|
176
178
|
export declare const ExprTermTail: (input: string) => [unknown, string] | [];
|
|
177
179
|
export declare const ExprTerm: (input: string) => [unknown, string] | [];
|
|
@@ -47,7 +47,8 @@ export const IndexArray_0 = (input, result = []) => If(If(If(Token.Const('[', in
|
|
|
47
47
|
export const IndexArray = (input) => If(IndexArray_0(input), ([_0, input]) => [S.IndexArrayMapping(_0), input]);
|
|
48
48
|
export const Extends = (input) => If(If(If(Token.Const('extends', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const('?', input), ([_2, input]) => If(Type(input), ([_3, input]) => If(Token.Const(':', input), ([_4, input]) => If(Type(input), ([_5, input]) => [[_0, _1, _2, _3, _4, _5], input])))))), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ExtendsMapping(_0), input]);
|
|
49
49
|
export const Base = (input) => If(If(If(Token.Const('(', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const(')', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If(Keyword(input), ([_0, input]) => [_0, input], () => If(_Object_(input), ([_0, input]) => [_0, input], () => If(Tuple(input), ([_0, input]) => [_0, input], () => If(TemplateLiteral(input), ([_0, input]) => [_0, input], () => If(Literal(input), ([_0, input]) => [_0, input], () => If(Constructor(input), ([_0, input]) => [_0, input], () => If(_Function_(input), ([_0, input]) => [_0, input], () => If(Mapped(input), ([_0, input]) => [_0, input], () => If(Options(input), ([_0, input]) => [_0, input], () => If(GenericCall(input), ([_0, input]) => [_0, input], () => If(Reference(input), ([_0, input]) => [_0, input], () => [])))))))))))), ([_0, input]) => [S.BaseMapping(_0), input]);
|
|
50
|
-
export const
|
|
50
|
+
export const With = (input) => If(If(If(Token.Const('with', input), ([_0, input]) => If(JsonObject(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.WithMapping(_0), input]);
|
|
51
|
+
export const Factor = (input) => If(If(KeyOf(input), ([_0, input]) => If(Base(input), ([_1, input]) => If(IndexArray(input), ([_2, input]) => If(Extends(input), ([_3, input]) => If(With(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.FactorMapping(_0), input]);
|
|
51
52
|
export const ExprTermTail = (input) => If(If(If(Token.Const('&', input), ([_0, input]) => If(Factor(input), ([_1, input]) => If(ExprTermTail(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ExprTermTailMapping(_0), input]);
|
|
52
53
|
export const ExprTerm = (input) => If(If(Factor(input), ([_0, input]) => If(ExprTermTail(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ExprTermMapping(_0), input]);
|
|
53
54
|
export const ExprTail = (input) => If(If(If(Token.Const('|', input), ([_0, input]) => If(ExprTerm(input), ([_1, input]) => If(ExprTail(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ExprTailMapping(_0), input]);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typebox",
|
|
3
3
|
"description": "Json Schema Type Builder with Static Type Resolution for TypeScript",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.39",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
7
7
|
"jsonschema"
|
|
@@ -16,22 +16,6 @@
|
|
|
16
16
|
"types": "./build/index.d.mts",
|
|
17
17
|
"module": "./build/index.mjs",
|
|
18
18
|
"exports": {
|
|
19
|
-
"./guard": {
|
|
20
|
-
"import": "./build/guard/index.mjs",
|
|
21
|
-
"default": "./build/guard/index.mjs"
|
|
22
|
-
},
|
|
23
|
-
"./error": {
|
|
24
|
-
"import": "./build/error/index.mjs",
|
|
25
|
-
"default": "./build/error/index.mjs"
|
|
26
|
-
},
|
|
27
|
-
"./compile": {
|
|
28
|
-
"import": "./build/compile/index.mjs",
|
|
29
|
-
"default": "./build/compile/index.mjs"
|
|
30
|
-
},
|
|
31
|
-
"./system": {
|
|
32
|
-
"import": "./build/system/index.mjs",
|
|
33
|
-
"default": "./build/system/index.mjs"
|
|
34
|
-
},
|
|
35
19
|
"./format": {
|
|
36
20
|
"import": "./build/format/index.mjs",
|
|
37
21
|
"default": "./build/format/index.mjs"
|
|
@@ -44,10 +28,26 @@
|
|
|
44
28
|
"import": "./build/schema/index.mjs",
|
|
45
29
|
"default": "./build/schema/index.mjs"
|
|
46
30
|
},
|
|
31
|
+
"./compile": {
|
|
32
|
+
"import": "./build/compile/index.mjs",
|
|
33
|
+
"default": "./build/compile/index.mjs"
|
|
34
|
+
},
|
|
47
35
|
"./value": {
|
|
48
36
|
"import": "./build/value/index.mjs",
|
|
49
37
|
"default": "./build/value/index.mjs"
|
|
50
38
|
},
|
|
39
|
+
"./guard": {
|
|
40
|
+
"import": "./build/guard/index.mjs",
|
|
41
|
+
"default": "./build/guard/index.mjs"
|
|
42
|
+
},
|
|
43
|
+
"./system": {
|
|
44
|
+
"import": "./build/system/index.mjs",
|
|
45
|
+
"default": "./build/system/index.mjs"
|
|
46
|
+
},
|
|
47
|
+
"./error": {
|
|
48
|
+
"import": "./build/error/index.mjs",
|
|
49
|
+
"default": "./build/error/index.mjs"
|
|
50
|
+
},
|
|
51
51
|
".": {
|
|
52
52
|
"import": "./build/index.mjs",
|
|
53
53
|
"default": "./build/index.mjs"
|
|
@@ -55,18 +55,6 @@
|
|
|
55
55
|
},
|
|
56
56
|
"typesVersions": {
|
|
57
57
|
"*": {
|
|
58
|
-
"guard": [
|
|
59
|
-
"./build/guard/index.d.mts"
|
|
60
|
-
],
|
|
61
|
-
"error": [
|
|
62
|
-
"./build/error/index.d.mts"
|
|
63
|
-
],
|
|
64
|
-
"compile": [
|
|
65
|
-
"./build/compile/index.d.mts"
|
|
66
|
-
],
|
|
67
|
-
"system": [
|
|
68
|
-
"./build/system/index.d.mts"
|
|
69
|
-
],
|
|
70
58
|
"format": [
|
|
71
59
|
"./build/format/index.d.mts"
|
|
72
60
|
],
|
|
@@ -76,9 +64,21 @@
|
|
|
76
64
|
"schema": [
|
|
77
65
|
"./build/schema/index.d.mts"
|
|
78
66
|
],
|
|
67
|
+
"compile": [
|
|
68
|
+
"./build/compile/index.d.mts"
|
|
69
|
+
],
|
|
79
70
|
"value": [
|
|
80
71
|
"./build/value/index.d.mts"
|
|
81
72
|
],
|
|
73
|
+
"guard": [
|
|
74
|
+
"./build/guard/index.d.mts"
|
|
75
|
+
],
|
|
76
|
+
"system": [
|
|
77
|
+
"./build/system/index.d.mts"
|
|
78
|
+
],
|
|
79
|
+
"error": [
|
|
80
|
+
"./build/error/index.d.mts"
|
|
81
|
+
],
|
|
82
82
|
".": [
|
|
83
83
|
"./build/index.d.mts"
|
|
84
84
|
]
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/discord",
|
|
3
|
-
"version": "2026.5.
|
|
3
|
+
"version": "2026.5.31-beta.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@openclaw/discord",
|
|
9
|
-
"version": "2026.5.
|
|
9
|
+
"version": "2026.5.31-beta.1",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@discordjs/voice": "0.19.2",
|
|
12
12
|
"discord-api-types": "0.38.48",
|
|
13
13
|
"libopus-wasm": "0.1.0",
|
|
14
|
-
"typebox": "1.1.
|
|
14
|
+
"typebox": "1.1.39",
|
|
15
15
|
"undici": "8.3.0",
|
|
16
16
|
"ws": "8.21.0"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"openclaw": ">=2026.5.
|
|
19
|
+
"openclaw": ">=2026.5.31-beta.1"
|
|
20
20
|
},
|
|
21
21
|
"peerDependenciesMeta": {
|
|
22
22
|
"openclaw": {
|
|
@@ -44,37 +44,6 @@
|
|
|
44
44
|
"url": "https://github.com/discordjs/discord.js?sponsor"
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
|
-
"node_modules/@emnapi/core": {
|
|
48
|
-
"version": "1.10.0",
|
|
49
|
-
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
|
|
50
|
-
"integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
|
|
51
|
-
"license": "MIT",
|
|
52
|
-
"optional": true,
|
|
53
|
-
"dependencies": {
|
|
54
|
-
"@emnapi/wasi-threads": "1.2.1",
|
|
55
|
-
"tslib": "^2.4.0"
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
"node_modules/@emnapi/runtime": {
|
|
59
|
-
"version": "1.10.0",
|
|
60
|
-
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
|
|
61
|
-
"integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
|
|
62
|
-
"license": "MIT",
|
|
63
|
-
"optional": true,
|
|
64
|
-
"dependencies": {
|
|
65
|
-
"tslib": "^2.4.0"
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
"node_modules/@emnapi/wasi-threads": {
|
|
69
|
-
"version": "1.2.1",
|
|
70
|
-
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
|
|
71
|
-
"integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
|
|
72
|
-
"license": "MIT",
|
|
73
|
-
"optional": true,
|
|
74
|
-
"dependencies": {
|
|
75
|
-
"tslib": "^2.4.0"
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
47
|
"node_modules/@napi-rs/wasm-runtime": {
|
|
79
48
|
"version": "1.1.4",
|
|
80
49
|
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz",
|
|
@@ -424,9 +393,9 @@
|
|
|
424
393
|
"license": "0BSD"
|
|
425
394
|
},
|
|
426
395
|
"node_modules/typebox": {
|
|
427
|
-
"version": "1.1.
|
|
428
|
-
"resolved": "https://registry.npmjs.org/typebox/-/typebox-1.1.
|
|
429
|
-
"integrity": "sha512-
|
|
396
|
+
"version": "1.1.39",
|
|
397
|
+
"resolved": "https://registry.npmjs.org/typebox/-/typebox-1.1.39.tgz",
|
|
398
|
+
"integrity": "sha512-vj0afVtOfLQvv0GR0VxVagYxsXN64btL7Z9XoaG0ZggH3mruMMkOO6hXdgMsjCY3shZgEvooAWVeznQVs5c43w==",
|
|
430
399
|
"license": "MIT"
|
|
431
400
|
},
|
|
432
401
|
"node_modules/undici": {
|
package/openclaw.plugin.json
CHANGED
|
@@ -243,6 +243,36 @@
|
|
|
243
243
|
"allowlist"
|
|
244
244
|
]
|
|
245
245
|
},
|
|
246
|
+
"mentionPatterns": {
|
|
247
|
+
"type": "object",
|
|
248
|
+
"properties": {
|
|
249
|
+
"mode": {
|
|
250
|
+
"anyOf": [
|
|
251
|
+
{
|
|
252
|
+
"type": "string",
|
|
253
|
+
"const": "allow"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"type": "string",
|
|
257
|
+
"const": "deny"
|
|
258
|
+
}
|
|
259
|
+
]
|
|
260
|
+
},
|
|
261
|
+
"allowIn": {
|
|
262
|
+
"type": "array",
|
|
263
|
+
"items": {
|
|
264
|
+
"type": "string"
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
"denyIn": {
|
|
268
|
+
"type": "array",
|
|
269
|
+
"items": {
|
|
270
|
+
"type": "string"
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
"additionalProperties": false
|
|
275
|
+
},
|
|
246
276
|
"contextVisibility": {
|
|
247
277
|
"type": "string",
|
|
248
278
|
"enum": [
|
|
@@ -2023,6 +2053,36 @@
|
|
|
2023
2053
|
"allowlist"
|
|
2024
2054
|
]
|
|
2025
2055
|
},
|
|
2056
|
+
"mentionPatterns": {
|
|
2057
|
+
"type": "object",
|
|
2058
|
+
"properties": {
|
|
2059
|
+
"mode": {
|
|
2060
|
+
"anyOf": [
|
|
2061
|
+
{
|
|
2062
|
+
"type": "string",
|
|
2063
|
+
"const": "allow"
|
|
2064
|
+
},
|
|
2065
|
+
{
|
|
2066
|
+
"type": "string",
|
|
2067
|
+
"const": "deny"
|
|
2068
|
+
}
|
|
2069
|
+
]
|
|
2070
|
+
},
|
|
2071
|
+
"allowIn": {
|
|
2072
|
+
"type": "array",
|
|
2073
|
+
"items": {
|
|
2074
|
+
"type": "string"
|
|
2075
|
+
}
|
|
2076
|
+
},
|
|
2077
|
+
"denyIn": {
|
|
2078
|
+
"type": "array",
|
|
2079
|
+
"items": {
|
|
2080
|
+
"type": "string"
|
|
2081
|
+
}
|
|
2082
|
+
}
|
|
2083
|
+
},
|
|
2084
|
+
"additionalProperties": false
|
|
2085
|
+
},
|
|
2026
2086
|
"contextVisibility": {
|
|
2027
2087
|
"type": "string",
|
|
2028
2088
|
"enum": [
|
|
@@ -3616,6 +3676,22 @@
|
|
|
3616
3676
|
"label": "Discord Config Writes",
|
|
3617
3677
|
"help": "Allow Discord to write config in response to channel events/commands (default: true)."
|
|
3618
3678
|
},
|
|
3679
|
+
"mentionPatterns": {
|
|
3680
|
+
"label": "Discord Mention Pattern Policy",
|
|
3681
|
+
"help": "Scopes configured groupChat mentionPatterns to selected Discord channel IDs. Native Discord @mentions still trigger even when regex patterns are denied."
|
|
3682
|
+
},
|
|
3683
|
+
"mentionPatterns.mode": {
|
|
3684
|
+
"label": "Discord Mention Pattern Mode",
|
|
3685
|
+
"help": "\"allow\" enables configured regex mention patterns unless denyIn matches; \"deny\" disables them unless allowIn matches."
|
|
3686
|
+
},
|
|
3687
|
+
"mentionPatterns.allowIn": {
|
|
3688
|
+
"label": "Discord Mention Pattern Allowlist",
|
|
3689
|
+
"help": "Discord channel IDs where configured regex mention patterns are enabled when mode is deny."
|
|
3690
|
+
},
|
|
3691
|
+
"mentionPatterns.denyIn": {
|
|
3692
|
+
"label": "Discord Mention Pattern Denylist",
|
|
3693
|
+
"help": "Discord channel IDs where configured regex mention patterns are disabled. Native @mentions still trigger."
|
|
3694
|
+
},
|
|
3619
3695
|
"proxy": {
|
|
3620
3696
|
"label": "Discord Proxy URL",
|
|
3621
3697
|
"help": "Proxy URL for Discord gateway + API requests (app-id lookup and allowlist resolution). Set per account via channels.discord.accounts.<id>.proxy."
|
|
@@ -3794,7 +3870,7 @@
|
|
|
3794
3870
|
},
|
|
3795
3871
|
"voice.model": {
|
|
3796
3872
|
"label": "Discord Voice Model",
|
|
3797
|
-
"help": "Optional LLM model override for Discord voice channel responses and realtime agent consults (for example openai
|
|
3873
|
+
"help": "Optional LLM model override for Discord voice channel responses and realtime agent consults (for example openai/gpt-5.5). Leave unset to inherit the routed agent model."
|
|
3798
3874
|
},
|
|
3799
3875
|
"voice.mode": {
|
|
3800
3876
|
"label": "Discord Voice Mode",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/discord",
|
|
3
|
-
"version": "2026.5.
|
|
3
|
+
"version": "2026.5.31-beta.1",
|
|
4
4
|
"description": "OpenClaw Discord channel plugin for channels, DMs, commands, and app events.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
"@discordjs/voice": "0.19.2",
|
|
12
12
|
"discord-api-types": "0.38.48",
|
|
13
13
|
"libopus-wasm": "0.1.0",
|
|
14
|
-
"typebox": "1.1.
|
|
14
|
+
"typebox": "1.1.39",
|
|
15
15
|
"undici": "8.3.0",
|
|
16
16
|
"ws": "8.21.0"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"openclaw": ">=2026.5.
|
|
19
|
+
"openclaw": ">=2026.5.31-beta.1"
|
|
20
20
|
},
|
|
21
21
|
"peerDependenciesMeta": {
|
|
22
22
|
"openclaw": {
|
|
@@ -63,10 +63,10 @@
|
|
|
63
63
|
"allowInvalidConfigRecovery": true
|
|
64
64
|
},
|
|
65
65
|
"compat": {
|
|
66
|
-
"pluginApi": ">=2026.5.
|
|
66
|
+
"pluginApi": ">=2026.5.31-beta.1"
|
|
67
67
|
},
|
|
68
68
|
"build": {
|
|
69
|
-
"openclawVersion": "2026.5.
|
|
69
|
+
"openclawVersion": "2026.5.31-beta.1"
|
|
70
70
|
},
|
|
71
71
|
"release": {
|
|
72
72
|
"publishToClawHub": true,
|
package/dist/targets-BVKF5wbg.js
DELETED