@starlight-ai/discord-waifus 1.5.136 → 1.5.138
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/backend/server.js +111 -7
- package/dist/backend/server.js.map +1 -1
- package/dist/discord/client.d.ts +15 -0
- package/dist/discord/client.js +151 -15
- package/dist/discord/client.js.map +1 -1
- package/dist/discord/normalization.d.ts +1 -0
- package/dist/discord/normalization.js +2 -0
- package/dist/discord/normalization.js.map +1 -1
- package/dist/orchestration/context.js +3 -3
- package/dist/orchestration/context.js.map +1 -1
- package/dist/orchestration/promptBlocks.js +8 -7
- package/dist/orchestration/promptBlocks.js.map +1 -1
- package/dist/orchestration/replyQuote.js +94 -46
- package/dist/orchestration/replyQuote.js.map +1 -1
- package/dist/orchestration/runtime.d.ts +3 -0
- package/dist/orchestration/runtime.js +114 -35
- package/dist/orchestration/runtime.js.map +1 -1
- package/dist-frontend/assets/{index-BHAsgfzD.js → index-OFuy6rlp.js} +2 -2
- package/dist-frontend/assets/{index-BHAsgfzD.js.map → index-OFuy6rlp.js.map} +1 -1
- package/dist-frontend/index.html +1 -1
- package/package.json +1 -1
package/dist/backend/server.js
CHANGED
|
@@ -48,6 +48,8 @@ export async function startBackend(options) {
|
|
|
48
48
|
let runtimeOrchestrator;
|
|
49
49
|
let discordRetryTimer;
|
|
50
50
|
let discordRetryAttempt = 0;
|
|
51
|
+
let discordRecoveryInProgress = false;
|
|
52
|
+
let pendingLiveDiscordErrorMessage;
|
|
51
53
|
let closing = false;
|
|
52
54
|
const cleanupOcr = async (currentConfig = config) => {
|
|
53
55
|
const ocr = new ImageOcrService({
|
|
@@ -85,9 +87,40 @@ export async function startBackend(options) {
|
|
|
85
87
|
};
|
|
86
88
|
const nextDiscordRetryDelayMs = (attempt) => discordRetryDelaysMs[Math.min(attempt - 1, discordRetryDelaysMs.length - 1)] ??
|
|
87
89
|
DEFAULT_DISCORD_RETRY_DELAYS_MS[0];
|
|
88
|
-
const scheduleDiscordRetry = async (message) => {
|
|
90
|
+
const scheduleDiscordRetry = async (message, retryOptions = {}) => {
|
|
89
91
|
if (closing)
|
|
90
92
|
return;
|
|
93
|
+
const failureLabel = retryOptions.failureLabel ?? "Discord auto-connect failed";
|
|
94
|
+
if (retryOptions.preserveExistingTimer && discordRetryTimer) {
|
|
95
|
+
const lastErrorAt = new Date().toISOString();
|
|
96
|
+
const attempt = Math.max(discordRetryAttempt, 1);
|
|
97
|
+
const nextRetryAt = runtime.discord.nextRetryAt ??
|
|
98
|
+
new Date(Date.now() + nextDiscordRetryDelayMs(attempt)).toISOString();
|
|
99
|
+
runtime.discord = {
|
|
100
|
+
...runtime.discord,
|
|
101
|
+
connected: false,
|
|
102
|
+
orchestratorConnected: false,
|
|
103
|
+
waifuBotCount: 0,
|
|
104
|
+
retrying: true,
|
|
105
|
+
retryAttempt: attempt,
|
|
106
|
+
nextRetryAt,
|
|
107
|
+
lastError: message,
|
|
108
|
+
lastErrorAt,
|
|
109
|
+
warnings: [
|
|
110
|
+
`${failureLabel}: ${message}`,
|
|
111
|
+
`Discord auto-connect will retry automatically at ${nextRetryAt}.`
|
|
112
|
+
]
|
|
113
|
+
};
|
|
114
|
+
runtime.updatedAt = new Date().toISOString();
|
|
115
|
+
await writeRuntimeFiles(options.dataRoot, runtime);
|
|
116
|
+
logger.warn("Discord auto-connect retry already pending; updated latest error", {
|
|
117
|
+
attempt: runtime.discord.retryAttempt,
|
|
118
|
+
nextRetryAt,
|
|
119
|
+
message,
|
|
120
|
+
reason: retryOptions.logReason
|
|
121
|
+
});
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
91
124
|
clearDiscordRetry();
|
|
92
125
|
discordRetryAttempt += 1;
|
|
93
126
|
const lastErrorAt = new Date().toISOString();
|
|
@@ -104,7 +137,7 @@ export async function startBackend(options) {
|
|
|
104
137
|
lastError: message,
|
|
105
138
|
lastErrorAt,
|
|
106
139
|
warnings: [
|
|
107
|
-
|
|
140
|
+
`${failureLabel}: ${message}`,
|
|
108
141
|
`Discord auto-connect will retry automatically at ${nextRetryAt}.`
|
|
109
142
|
]
|
|
110
143
|
};
|
|
@@ -114,7 +147,8 @@ export async function startBackend(options) {
|
|
|
114
147
|
attempt: discordRetryAttempt,
|
|
115
148
|
nextRetryAt,
|
|
116
149
|
delayMs,
|
|
117
|
-
message
|
|
150
|
+
message,
|
|
151
|
+
reason: retryOptions.logReason
|
|
118
152
|
});
|
|
119
153
|
discordRetryTimer = setTimeout(() => {
|
|
120
154
|
discordRetryTimer = undefined;
|
|
@@ -124,6 +158,45 @@ export async function startBackend(options) {
|
|
|
124
158
|
});
|
|
125
159
|
}, delayMs);
|
|
126
160
|
};
|
|
161
|
+
const handleDiscordRuntimeIssue = async (issue) => {
|
|
162
|
+
if (closing)
|
|
163
|
+
return;
|
|
164
|
+
const message = issue.message || "Discord runtime issue.";
|
|
165
|
+
if (!isRetryableDiscordRuntimeIssue(issue)) {
|
|
166
|
+
logger.warn("Discord runtime issue did not trigger reconnect", discordRuntimeIssueLogContext(issue));
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
pendingLiveDiscordErrorMessage = message;
|
|
170
|
+
if (discordRetryTimer) {
|
|
171
|
+
await scheduleDiscordRetry(message, {
|
|
172
|
+
preserveExistingTimer: true,
|
|
173
|
+
failureLabel: "Discord connection lost",
|
|
174
|
+
logReason: issue.source
|
|
175
|
+
});
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
if (discordRecoveryInProgress) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
discordRecoveryInProgress = true;
|
|
182
|
+
try {
|
|
183
|
+
logger.warn("Discord runtime issue triggered reconnect", discordRuntimeIssueLogContext(issue));
|
|
184
|
+
await runtimeOrchestrator?.stop();
|
|
185
|
+
await gateway?.disconnect();
|
|
186
|
+
runtimeOrchestrator = undefined;
|
|
187
|
+
gateway = undefined;
|
|
188
|
+
runtime.queues.active = 0;
|
|
189
|
+
await scheduleDiscordRetry(pendingLiveDiscordErrorMessage ?? message, {
|
|
190
|
+
preserveExistingTimer: true,
|
|
191
|
+
failureLabel: "Discord connection lost",
|
|
192
|
+
logReason: issue.source
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
finally {
|
|
196
|
+
discordRecoveryInProgress = false;
|
|
197
|
+
pendingLiveDiscordErrorMessage = undefined;
|
|
198
|
+
}
|
|
199
|
+
};
|
|
127
200
|
const reloadRuntime = async (reason, retryOptions = {}) => {
|
|
128
201
|
if (!retryOptions.scheduledRetry) {
|
|
129
202
|
clearDiscordRetry();
|
|
@@ -138,7 +211,7 @@ export async function startBackend(options) {
|
|
|
138
211
|
const currentConfig = await loadAppConfig(options.dataRoot);
|
|
139
212
|
await cleanupOcr(currentConfig);
|
|
140
213
|
runtime.paused = currentConfig.runtime.paused;
|
|
141
|
-
const connected = await maybeConnectDiscord(storage, currentConfig.runtime.autoConnectDiscord, logger, createDiscordGateway);
|
|
214
|
+
const connected = await maybeConnectDiscord(storage, currentConfig.runtime.autoConnectDiscord, logger, createDiscordGateway, handleDiscordRuntimeIssue);
|
|
142
215
|
runtime.discord = connected.status;
|
|
143
216
|
gateway = connected.gateway;
|
|
144
217
|
if (gateway) {
|
|
@@ -214,7 +287,7 @@ function offlineDiscordStatus(warnings = []) {
|
|
|
214
287
|
warnings
|
|
215
288
|
};
|
|
216
289
|
}
|
|
217
|
-
async function maybeConnectDiscord(storage, autoConnect, logger, createDiscordGateway) {
|
|
290
|
+
async function maybeConnectDiscord(storage, autoConnect, logger, createDiscordGateway, onRuntimeIssue) {
|
|
218
291
|
const offline = offlineDiscordStatus(autoConnect ? ["Discord auto-connect is enabled but no orchestrator token is configured."] : []);
|
|
219
292
|
if (!autoConnect) {
|
|
220
293
|
return { status: offline };
|
|
@@ -250,7 +323,8 @@ async function maybeConnectDiscord(storage, autoConnect, logger, createDiscordGa
|
|
|
250
323
|
return {
|
|
251
324
|
roles: roles.roles
|
|
252
325
|
};
|
|
253
|
-
}
|
|
326
|
+
},
|
|
327
|
+
onRuntimeIssue
|
|
254
328
|
});
|
|
255
329
|
try {
|
|
256
330
|
const status = await gateway.connect();
|
|
@@ -280,7 +354,10 @@ const RETRYABLE_DISCORD_ERROR_CODES = new Set([
|
|
|
280
354
|
"ECONNREFUSED",
|
|
281
355
|
"ENETUNREACH",
|
|
282
356
|
"EHOSTUNREACH",
|
|
283
|
-
"EPIPE"
|
|
357
|
+
"EPIPE",
|
|
358
|
+
"UND_ERR_CONNECT_TIMEOUT",
|
|
359
|
+
"UND_ERR_HEADERS_TIMEOUT",
|
|
360
|
+
"UND_ERR_SOCKET"
|
|
284
361
|
]);
|
|
285
362
|
const RETRYABLE_DISCORD_MESSAGE_PATTERNS = [
|
|
286
363
|
/\bgetaddrinfo\b/i,
|
|
@@ -289,10 +366,12 @@ const RETRYABLE_DISCORD_MESSAGE_PATTERNS = [
|
|
|
289
366
|
/\btimeout\b/i,
|
|
290
367
|
/\btimed out\b/i,
|
|
291
368
|
/\bsocket\b/i,
|
|
369
|
+
/\bfetch failed\b/i,
|
|
292
370
|
/\bconnection reset\b/i,
|
|
293
371
|
/\bconnection refused\b/i,
|
|
294
372
|
/\bunreachable\b/i
|
|
295
373
|
];
|
|
374
|
+
const RETRYABLE_DISCORD_CLOSE_CODES = new Set([1001, 1006, 1011, 1012, 1013, 4000]);
|
|
296
375
|
function isRetryableDiscordAutoConnectError(error) {
|
|
297
376
|
const code = errorCode(error);
|
|
298
377
|
if (code && RETRYABLE_DISCORD_ERROR_CODES.has(code)) {
|
|
@@ -301,12 +380,37 @@ function isRetryableDiscordAutoConnectError(error) {
|
|
|
301
380
|
const message = error instanceof Error ? error.message : String(error);
|
|
302
381
|
return RETRYABLE_DISCORD_MESSAGE_PATTERNS.some((pattern) => pattern.test(message));
|
|
303
382
|
}
|
|
383
|
+
function isRetryableDiscordRuntimeIssue(issue) {
|
|
384
|
+
if (isRetryableDiscordAutoConnectError(issue.error ?? issue) || isRetryableDiscordAutoConnectError(issue)) {
|
|
385
|
+
return true;
|
|
386
|
+
}
|
|
387
|
+
if (issue.source === "invalidated") {
|
|
388
|
+
return true;
|
|
389
|
+
}
|
|
390
|
+
if (issue.source === "shard-disconnect" && issue.wasClean === false && typeof issue.code === "number") {
|
|
391
|
+
return RETRYABLE_DISCORD_CLOSE_CODES.has(issue.code);
|
|
392
|
+
}
|
|
393
|
+
return false;
|
|
394
|
+
}
|
|
395
|
+
function discordRuntimeIssueLogContext(issue) {
|
|
396
|
+
return {
|
|
397
|
+
source: issue.source,
|
|
398
|
+
botId: issue.botId,
|
|
399
|
+
shardId: issue.shardId,
|
|
400
|
+
code: issue.code,
|
|
401
|
+
wasClean: issue.wasClean,
|
|
402
|
+
message: issue.message
|
|
403
|
+
};
|
|
404
|
+
}
|
|
304
405
|
function errorCode(error) {
|
|
305
406
|
if (!error || typeof error !== "object")
|
|
306
407
|
return undefined;
|
|
307
408
|
const code = error.code;
|
|
308
409
|
if (typeof code === "string")
|
|
309
410
|
return code;
|
|
411
|
+
const nestedError = errorCode(error.error);
|
|
412
|
+
if (nestedError)
|
|
413
|
+
return nestedError;
|
|
310
414
|
return errorCode(error.cause);
|
|
311
415
|
}
|
|
312
416
|
async function refreshDiscordMembersForRuntime(storage, guildId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/backend/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/backend/server.ts"],"names":[],"mappings":"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"}
|
package/dist/discord/client.d.ts
CHANGED
|
@@ -13,6 +13,15 @@ export type DiscordRuntimeStatus = {
|
|
|
13
13
|
lastError?: string;
|
|
14
14
|
lastErrorAt?: string;
|
|
15
15
|
};
|
|
16
|
+
export type DiscordRuntimeIssue = {
|
|
17
|
+
source: "client-error" | "shard-error" | "shard-disconnect" | "invalidated" | "warn";
|
|
18
|
+
message: string;
|
|
19
|
+
botId?: string;
|
|
20
|
+
shardId?: number;
|
|
21
|
+
code?: string | number;
|
|
22
|
+
wasClean?: boolean;
|
|
23
|
+
error?: unknown;
|
|
24
|
+
};
|
|
16
25
|
export interface DiscordGatewayFacade {
|
|
17
26
|
connect(): Promise<DiscordRuntimeStatus>;
|
|
18
27
|
disconnect(): Promise<void>;
|
|
@@ -156,6 +165,7 @@ export type DiscordJsGatewayOptions = {
|
|
|
156
165
|
cacheForGuild?: (guildId: string) => Promise<DiscordCache>;
|
|
157
166
|
refreshMembersForGuild?: (guildId: string) => Promise<DiscordCache>;
|
|
158
167
|
refreshRolesForGuild?: (guildId: string) => Promise<DiscordCache>;
|
|
168
|
+
onRuntimeIssue?: (issue: DiscordRuntimeIssue) => void | Promise<void>;
|
|
159
169
|
logger?: Logger;
|
|
160
170
|
};
|
|
161
171
|
export declare class DiscordJsGateway implements DiscordGatewayFacade {
|
|
@@ -234,6 +244,11 @@ export declare class DiscordJsGateway implements DiscordGatewayFacade {
|
|
|
234
244
|
private clientForAuthor;
|
|
235
245
|
private botIdForClient;
|
|
236
246
|
private shouldRefreshMentions;
|
|
247
|
+
private attachClientRuntimeHandlers;
|
|
248
|
+
private reportRuntimeIssue;
|
|
249
|
+
private callListener;
|
|
250
|
+
private dispatchListener;
|
|
251
|
+
private runBackground;
|
|
237
252
|
private handleReviewInteraction;
|
|
238
253
|
private handleClearInteraction;
|
|
239
254
|
private handleRunInteraction;
|
package/dist/discord/client.js
CHANGED
|
@@ -29,6 +29,7 @@ export class DiscordJsGateway {
|
|
|
29
29
|
],
|
|
30
30
|
partials: [Partials.Channel, Partials.Message, Partials.Reaction]
|
|
31
31
|
});
|
|
32
|
+
this.attachClientRuntimeHandlers(client, bot.id);
|
|
32
33
|
if (bot.id === this.options.orchestrator.id) {
|
|
33
34
|
client.on("messageCreate", (message) => {
|
|
34
35
|
if (!message.guildId)
|
|
@@ -48,35 +49,43 @@ export class DiscordJsGateway {
|
|
|
48
49
|
authorBot: event.authorBot
|
|
49
50
|
});
|
|
50
51
|
for (const listener of this.listeners) {
|
|
51
|
-
|
|
52
|
+
this.dispatchListener("Discord message listener failed", listener, event, {
|
|
53
|
+
guildId: event.guildId,
|
|
54
|
+
channelId: event.channelId,
|
|
55
|
+
messageId: event.messageId
|
|
56
|
+
});
|
|
52
57
|
}
|
|
53
58
|
});
|
|
54
59
|
client.on(Events.InteractionCreate, (interaction) => {
|
|
55
60
|
if (interaction.isAutocomplete()) {
|
|
56
61
|
if (interaction.commandName === RUN_COMMAND_NAME) {
|
|
57
|
-
|
|
62
|
+
this.runBackground("Discord run autocomplete interaction failed", {
|
|
63
|
+
commandName: interaction.commandName,
|
|
64
|
+
guildId: interaction.guildId,
|
|
65
|
+
channelId: interaction.channelId
|
|
66
|
+
}, () => this.handleRunAutocompleteInteraction(interaction));
|
|
58
67
|
}
|
|
59
68
|
return;
|
|
60
69
|
}
|
|
61
70
|
if (!interaction.isChatInputCommand())
|
|
62
71
|
return;
|
|
63
72
|
if (interaction.commandName === REVIEW_COMMAND_NAME) {
|
|
64
|
-
|
|
73
|
+
this.runBackground("Discord review interaction failed", interactionLogContext(interaction), () => this.handleReviewInteraction(interaction));
|
|
65
74
|
}
|
|
66
75
|
else if (interaction.commandName === CLEAR_COMMAND_NAME) {
|
|
67
|
-
|
|
76
|
+
this.runBackground("Discord clear interaction failed", interactionLogContext(interaction), () => this.handleClearInteraction(interaction));
|
|
68
77
|
}
|
|
69
78
|
else if (interaction.commandName === RUN_COMMAND_NAME) {
|
|
70
|
-
|
|
79
|
+
this.runBackground("Discord run interaction failed", interactionLogContext(interaction), () => this.handleRunInteraction(interaction));
|
|
71
80
|
}
|
|
72
81
|
else if (interaction.commandName === STOP_COMMAND_NAME) {
|
|
73
|
-
|
|
82
|
+
this.runBackground("Discord stop interaction failed", interactionLogContext(interaction), () => this.handleStopInteraction(interaction));
|
|
74
83
|
}
|
|
75
84
|
else if (interaction.commandName === MEMORIES_COMMAND_NAME) {
|
|
76
|
-
|
|
85
|
+
this.runBackground("Discord memories interaction failed", interactionLogContext(interaction), () => this.handleMemoriesInteraction(interaction));
|
|
77
86
|
}
|
|
78
87
|
else if (interaction.commandName === DEBUG_COMMAND_NAME) {
|
|
79
|
-
|
|
88
|
+
this.runBackground("Discord debug interaction failed", interactionLogContext(interaction), () => this.handleDebugInteraction(interaction));
|
|
80
89
|
}
|
|
81
90
|
});
|
|
82
91
|
}
|
|
@@ -489,6 +498,87 @@ export class DiscordJsGateway {
|
|
|
489
498
|
this.recentMentionRefreshes.set(guildId, now);
|
|
490
499
|
return true;
|
|
491
500
|
}
|
|
501
|
+
attachClientRuntimeHandlers(client, botId) {
|
|
502
|
+
client.on(Events.Error, (error) => {
|
|
503
|
+
this.reportRuntimeIssue({
|
|
504
|
+
source: "client-error",
|
|
505
|
+
botId,
|
|
506
|
+
message: errorMessage(error),
|
|
507
|
+
error
|
|
508
|
+
});
|
|
509
|
+
});
|
|
510
|
+
client.on(Events.ShardError, (error, shardId) => {
|
|
511
|
+
this.reportRuntimeIssue({
|
|
512
|
+
source: "shard-error",
|
|
513
|
+
botId,
|
|
514
|
+
shardId,
|
|
515
|
+
message: errorMessage(error),
|
|
516
|
+
error
|
|
517
|
+
});
|
|
518
|
+
});
|
|
519
|
+
client.on(Events.ShardDisconnect, (event, shardId) => {
|
|
520
|
+
const code = closeEventCode(event);
|
|
521
|
+
const reason = closeEventReason(event);
|
|
522
|
+
this.reportRuntimeIssue({
|
|
523
|
+
source: "shard-disconnect",
|
|
524
|
+
botId,
|
|
525
|
+
shardId,
|
|
526
|
+
code,
|
|
527
|
+
wasClean: closeEventWasClean(event),
|
|
528
|
+
message: `Discord shard disconnected${code === undefined ? "" : ` with code ${code}`}${reason ? `: ${reason}` : "."}`
|
|
529
|
+
});
|
|
530
|
+
});
|
|
531
|
+
client.on(Events.Invalidated, () => {
|
|
532
|
+
this.reportRuntimeIssue({
|
|
533
|
+
source: "invalidated",
|
|
534
|
+
botId,
|
|
535
|
+
message: "Discord gateway session was invalidated."
|
|
536
|
+
});
|
|
537
|
+
});
|
|
538
|
+
client.on(Events.Warn, (message) => {
|
|
539
|
+
this.reportRuntimeIssue({
|
|
540
|
+
source: "warn",
|
|
541
|
+
botId,
|
|
542
|
+
message
|
|
543
|
+
});
|
|
544
|
+
});
|
|
545
|
+
}
|
|
546
|
+
reportRuntimeIssue(issue) {
|
|
547
|
+
const context = runtimeIssueLogContext(issue);
|
|
548
|
+
if (issue.source === "warn") {
|
|
549
|
+
this.options.logger?.warn("Discord gateway warning", context);
|
|
550
|
+
}
|
|
551
|
+
else {
|
|
552
|
+
this.options.logger?.error("Discord gateway runtime issue", context);
|
|
553
|
+
}
|
|
554
|
+
if (!this.options.onRuntimeIssue)
|
|
555
|
+
return;
|
|
556
|
+
this.runBackground("Discord runtime issue callback failed", context, () => this.options.onRuntimeIssue?.(issue));
|
|
557
|
+
}
|
|
558
|
+
async callListener(label, listener, event, context) {
|
|
559
|
+
try {
|
|
560
|
+
await listener(event);
|
|
561
|
+
}
|
|
562
|
+
catch (error) {
|
|
563
|
+
this.options.logger?.error(label, {
|
|
564
|
+
...context,
|
|
565
|
+
message: error instanceof Error ? error.message : String(error)
|
|
566
|
+
});
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
dispatchListener(label, listener, event, context) {
|
|
570
|
+
void this.callListener(label, listener, event, context);
|
|
571
|
+
}
|
|
572
|
+
runBackground(label, context, task) {
|
|
573
|
+
void Promise.resolve()
|
|
574
|
+
.then(task)
|
|
575
|
+
.catch((error) => {
|
|
576
|
+
this.options.logger?.error(label, {
|
|
577
|
+
...context,
|
|
578
|
+
message: error instanceof Error ? error.message : String(error)
|
|
579
|
+
});
|
|
580
|
+
});
|
|
581
|
+
}
|
|
492
582
|
async handleReviewInteraction(interaction) {
|
|
493
583
|
await interaction.deferReply({ flags: MessageFlags.Ephemeral });
|
|
494
584
|
if (!interaction.guildId || !interaction.channelId) {
|
|
@@ -504,7 +594,7 @@ export class DiscordJsGateway {
|
|
|
504
594
|
}
|
|
505
595
|
};
|
|
506
596
|
for (const listener of this.reviewListeners) {
|
|
507
|
-
|
|
597
|
+
this.dispatchListener("Discord review command listener failed", listener, event, slashCommandLogContext(event));
|
|
508
598
|
}
|
|
509
599
|
}
|
|
510
600
|
async handleClearInteraction(interaction) {
|
|
@@ -524,7 +614,7 @@ export class DiscordJsGateway {
|
|
|
524
614
|
}
|
|
525
615
|
};
|
|
526
616
|
for (const listener of this.clearListeners) {
|
|
527
|
-
|
|
617
|
+
this.dispatchListener("Discord clear command listener failed", listener, event, slashCommandLogContext(event));
|
|
528
618
|
}
|
|
529
619
|
}
|
|
530
620
|
async handleRunInteraction(interaction) {
|
|
@@ -544,7 +634,7 @@ export class DiscordJsGateway {
|
|
|
544
634
|
}
|
|
545
635
|
};
|
|
546
636
|
for (const listener of this.runListeners) {
|
|
547
|
-
|
|
637
|
+
this.dispatchListener("Discord run command listener failed", listener, event, slashCommandLogContext(event));
|
|
548
638
|
}
|
|
549
639
|
}
|
|
550
640
|
async handleRunAutocompleteInteraction(interaction) {
|
|
@@ -565,7 +655,11 @@ export class DiscordJsGateway {
|
|
|
565
655
|
await interaction.respond([]);
|
|
566
656
|
return;
|
|
567
657
|
}
|
|
568
|
-
await Promise.all([...this.runWaifuAutocompleteListeners].map((listener) => listener
|
|
658
|
+
await Promise.all([...this.runWaifuAutocompleteListeners].map((listener) => this.callListener("Discord run autocomplete listener failed", listener, event, {
|
|
659
|
+
guildId: event.guildId,
|
|
660
|
+
channelId: event.channelId,
|
|
661
|
+
focusedValue: event.focusedValue
|
|
662
|
+
})));
|
|
569
663
|
}
|
|
570
664
|
async handleStopInteraction(interaction) {
|
|
571
665
|
await interaction.deferReply({ flags: MessageFlags.Ephemeral });
|
|
@@ -582,7 +676,7 @@ export class DiscordJsGateway {
|
|
|
582
676
|
}
|
|
583
677
|
};
|
|
584
678
|
for (const listener of this.stopListeners) {
|
|
585
|
-
|
|
679
|
+
this.dispatchListener("Discord stop command listener failed", listener, event, slashCommandLogContext(event));
|
|
586
680
|
}
|
|
587
681
|
}
|
|
588
682
|
async handleMemoriesInteraction(interaction) {
|
|
@@ -600,7 +694,7 @@ export class DiscordJsGateway {
|
|
|
600
694
|
}
|
|
601
695
|
};
|
|
602
696
|
for (const listener of this.memoriesListeners) {
|
|
603
|
-
|
|
697
|
+
this.dispatchListener("Discord memories command listener failed", listener, event, slashCommandLogContext(event));
|
|
604
698
|
}
|
|
605
699
|
}
|
|
606
700
|
async handleDebugInteraction(interaction) {
|
|
@@ -620,7 +714,11 @@ export class DiscordJsGateway {
|
|
|
620
714
|
}
|
|
621
715
|
};
|
|
622
716
|
for (const listener of this.debugListeners) {
|
|
623
|
-
|
|
717
|
+
this.dispatchListener("Discord debug command listener failed", listener, event, {
|
|
718
|
+
...slashCommandLogContext(event),
|
|
719
|
+
type: event.type,
|
|
720
|
+
sourceChannelId: event.sourceChannelId
|
|
721
|
+
});
|
|
624
722
|
}
|
|
625
723
|
}
|
|
626
724
|
}
|
|
@@ -785,6 +883,44 @@ function sanitizeRunString(value) {
|
|
|
785
883
|
function parseDebugCommandType(value) {
|
|
786
884
|
return value === "set" || value === "unset" || value === "print" ? value : undefined;
|
|
787
885
|
}
|
|
886
|
+
function errorMessage(error) {
|
|
887
|
+
return error instanceof Error ? error.message : String(error);
|
|
888
|
+
}
|
|
889
|
+
function closeEventCode(event) {
|
|
890
|
+
return typeof event.code === "string" || typeof event.code === "number" ? event.code : undefined;
|
|
891
|
+
}
|
|
892
|
+
function closeEventReason(event) {
|
|
893
|
+
return typeof event.reason === "string" && event.reason.trim() ? event.reason.trim() : undefined;
|
|
894
|
+
}
|
|
895
|
+
function closeEventWasClean(event) {
|
|
896
|
+
return typeof event.wasClean === "boolean" ? event.wasClean : undefined;
|
|
897
|
+
}
|
|
898
|
+
function runtimeIssueLogContext(issue) {
|
|
899
|
+
return {
|
|
900
|
+
source: issue.source,
|
|
901
|
+
botId: issue.botId,
|
|
902
|
+
shardId: issue.shardId,
|
|
903
|
+
code: issue.code,
|
|
904
|
+
wasClean: issue.wasClean,
|
|
905
|
+
message: issue.message
|
|
906
|
+
};
|
|
907
|
+
}
|
|
908
|
+
function interactionLogContext(interaction) {
|
|
909
|
+
return {
|
|
910
|
+
commandName: interaction.commandName,
|
|
911
|
+
guildId: interaction.guildId,
|
|
912
|
+
channelId: interaction.channelId,
|
|
913
|
+
userId: interaction.user.id
|
|
914
|
+
};
|
|
915
|
+
}
|
|
916
|
+
function slashCommandLogContext(event) {
|
|
917
|
+
return {
|
|
918
|
+
guildId: event.guildId,
|
|
919
|
+
channelId: event.channelId,
|
|
920
|
+
userId: event.userId,
|
|
921
|
+
commandMessageId: event.commandMessageId
|
|
922
|
+
};
|
|
923
|
+
}
|
|
788
924
|
function isBulkDeletableMessage(message) {
|
|
789
925
|
return message.createdTimestamp === undefined || Date.now() - message.createdTimestamp < DISCORD_BULK_DELETE_MAX_AGE_MS;
|
|
790
926
|
}
|