Misc updates.
This commit is contained in:
parent
455233b1c4
commit
589360b412
@ -74,17 +74,15 @@ function splitMessage(text, maxLength = MAX_DISCORD_MSG_LENGTH) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine whether the bot should respond to a message.
|
* Determine whether the bot should respond to a message.
|
||||||
* Triggers when the bot is mentioned or when the message is a direct reply.
|
* Controlled by enableMentions and enableReplies in config.
|
||||||
* @param {Message} message - The incoming Discord message.
|
|
||||||
* @param {string} botId - The bot user ID.
|
|
||||||
* @param {object} logger - Logger for debugging.
|
|
||||||
* @returns {Promise<boolean>} True if the bot should respond.
|
|
||||||
*/
|
*/
|
||||||
async function shouldRespond(message, botId, logger) {
|
async function shouldRespond(message, botId, cfg, logger) {
|
||||||
if (message.author.bot || !botId) return false;
|
if (message.author.bot || !botId) return false;
|
||||||
const isMention = message.mentions.users.has(botId);
|
const enableMentions = cfg.enableMentions ?? true;
|
||||||
|
const enableReplies = cfg.enableReplies ?? true;
|
||||||
|
const isMention = enableMentions && message.mentions.users.has(botId);
|
||||||
let isReply = false;
|
let isReply = false;
|
||||||
if (message.reference?.messageId) {
|
if (enableReplies && message.reference?.messageId) {
|
||||||
try {
|
try {
|
||||||
const ref = await message.channel.messages.fetch(message.reference.messageId);
|
const ref = await message.channel.messages.fetch(message.reference.messageId);
|
||||||
isReply = ref.author.id === botId;
|
isReply = ref.author.id === botId;
|
||||||
@ -248,7 +246,8 @@ async function onMessage(client, cfg, message) {
|
|||||||
const logger = client.logger;
|
const logger = client.logger;
|
||||||
const botId = client.user?.id;
|
const botId = client.user?.id;
|
||||||
client.logger.debug(`[onMessage] Received message ${message.id} from ${message.author.id}`);
|
client.logger.debug(`[onMessage] Received message ${message.id} from ${message.author.id}`);
|
||||||
if (!(await shouldRespond(message, botId, logger))) return;
|
// Check if bot should respond, based on config (mentions/replies)
|
||||||
|
if (!(await shouldRespond(message, botId, cfg, logger))) return;
|
||||||
await message.channel.sendTyping();
|
await message.channel.sendTyping();
|
||||||
|
|
||||||
// Determine channel/thread key for context
|
// Determine channel/thread key for context
|
||||||
|
|||||||
37
_opt/responsesRandomizer.js
Normal file
37
_opt/responsesRandomizer.js
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/**
|
||||||
|
* responsesRandomizer module
|
||||||
|
* Listens to all guild messages and randomly sends a generated narrative.
|
||||||
|
* Uses sendNarrative from responses.js.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { sendNarrative } from './responses.js';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize the responsesRandomizer module.
|
||||||
|
* @param {import('discord.js').Client} client - Discord client instance.
|
||||||
|
* @param {object} clientConfig - Full client configuration object.
|
||||||
|
*/
|
||||||
|
export async function init(client, clientConfig) {
|
||||||
|
const cfg = clientConfig.responsesRandomizer;
|
||||||
|
const chance = Number(cfg.chance);
|
||||||
|
if (isNaN(chance) || chance <= 0) {
|
||||||
|
client.logger.warn(`[module:responsesRandomizer] Invalid chance value: ${cfg.chance}. Module disabled.`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
client.logger.info(`[module:responsesRandomizer] Enabled with chance=${chance}`);
|
||||||
|
|
||||||
|
client.on('messageCreate', async (message) => {
|
||||||
|
try {
|
||||||
|
// Skip bot messages or non-guild messages
|
||||||
|
if (message.author.bot || !message.guild) return;
|
||||||
|
const content = message.content?.trim();
|
||||||
|
if (!content) return;
|
||||||
|
// Roll the dice
|
||||||
|
if (Math.random() > chance) return;
|
||||||
|
// Generate and send narrative
|
||||||
|
await sendNarrative(client, clientConfig.responses, message.channel.id, content);
|
||||||
|
} catch (err) {
|
||||||
|
client.logger.error(`[module:responsesRandomizer] Error processing message: ${err.message}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
@ -356,6 +356,8 @@ export const commands = [
|
|||||||
}
|
}
|
||||||
await interaction.reply({ content: `Preset **${name}** saved.`, flags: MessageFlags.Ephemeral });
|
await interaction.reply({ content: `Preset **${name}** saved.`, flags: MessageFlags.Ephemeral });
|
||||||
} else if (sub === 'reset') {
|
} else if (sub === 'reset') {
|
||||||
|
// Defer to avoid Discord interaction timeout during reset
|
||||||
|
await interaction.deferReply({ flags: MessageFlags.Ephemeral });
|
||||||
// reset channel to default parameters
|
// reset channel to default parameters
|
||||||
const owner = interaction.member;
|
const owner = interaction.member;
|
||||||
const display = owner.displayName || owner.user.username;
|
const display = owner.displayName || owner.user.username;
|
||||||
@ -378,7 +380,7 @@ export const commands = [
|
|||||||
]);
|
]);
|
||||||
sess.roleId = guild.roles.everyone.id;
|
sess.roleId = guild.roles.everyone.id;
|
||||||
await client.pb.updateOne('tempvc_sessions', sess.pbId, { roleId: guild.roles.everyone.id, invitedUserIds: [] });
|
await client.pb.updateOne('tempvc_sessions', sess.pbId, { roleId: guild.roles.everyone.id, invitedUserIds: [] });
|
||||||
await interaction.reply({ content: 'Channel has been reset to default settings.', flags: MessageFlags.Ephemeral });
|
await interaction.editReply({ content: 'Channel has been reset to default settings.' });
|
||||||
} else if (sub === 'mode') {
|
} else if (sub === 'mode') {
|
||||||
const mode = interaction.options.getString('mode', true);
|
const mode = interaction.options.getString('mode', true);
|
||||||
sess.mode = mode;
|
sess.mode = mode;
|
||||||
@ -396,13 +398,15 @@ export const commands = [
|
|||||||
await client.pb.updateOne('tempvc_sessions', sess.pbId, { mode });
|
await client.pb.updateOne('tempvc_sessions', sess.pbId, { mode });
|
||||||
await interaction.reply({ content: `Channel mode set to **${mode}**.`, flags: MessageFlags.Ephemeral });
|
await interaction.reply({ content: `Channel mode set to **${mode}**.`, flags: MessageFlags.Ephemeral });
|
||||||
} else if (sub === 'restore') {
|
} else if (sub === 'restore') {
|
||||||
|
// Defer initial reply to extend Discord interaction window
|
||||||
|
await interaction.deferReply({ flags: MessageFlags.Ephemeral });
|
||||||
const name = interaction.options.getString('name', true);
|
const name = interaction.options.getString('name', true);
|
||||||
const preset = await client.pb.getFirst(
|
const preset = await client.pb.getFirst(
|
||||||
'tempvc_presets',
|
'tempvc_presets',
|
||||||
`guildId = "${guild.id}" && userId = "${interaction.user.id}" && name = "${name}"`
|
`guildId = "${guild.id}" && userId = "${interaction.user.id}" && name = "${name}"`
|
||||||
);
|
);
|
||||||
if (!preset) {
|
if (!preset) {
|
||||||
return interaction.reply({ content: `Preset **${name}** not found.`, flags: MessageFlags.Ephemeral });
|
return interaction.editReply({ content: `Preset **${name}** not found.` });
|
||||||
}
|
}
|
||||||
// apply settings
|
// apply settings
|
||||||
await voice.setName(preset.channelName);
|
await voice.setName(preset.channelName);
|
||||||
@ -433,7 +437,7 @@ export const commands = [
|
|||||||
{ roleId: preset.roleId || '', mode }
|
{ roleId: preset.roleId || '', mode }
|
||||||
);
|
);
|
||||||
sess.roleId = preset.roleId || '';
|
sess.roleId = preset.roleId || '';
|
||||||
await interaction.reply({ content: `Preset **${name}** restored (mode: ${mode}).`, flags: MessageFlags.Ephemeral });
|
await interaction.editReply({ content: `Preset **${name}** restored (mode: ${mode}).` });
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
client.logger.error(`[module:tempvc][vc] ${err.message}`);
|
client.logger.error(`[module:tempvc][vc] ${err.message}`);
|
||||||
|
|||||||
84
config.js
84
config.js
@ -53,6 +53,8 @@ export default {
|
|||||||
defaultTemperature: 0.7,
|
defaultTemperature: 0.7,
|
||||||
conversationExpiry: 30 * 60 * 1000,
|
conversationExpiry: 30 * 60 * 1000,
|
||||||
minScore: 1.0,
|
minScore: 1.0,
|
||||||
|
enableMentions: true,
|
||||||
|
enableReplies: true,
|
||||||
tools: {
|
tools: {
|
||||||
webSearch: true,
|
webSearch: true,
|
||||||
fileSearch: false,
|
fileSearch: false,
|
||||||
@ -174,6 +176,8 @@ export default {
|
|||||||
defaultTemperature: 0.7,
|
defaultTemperature: 0.7,
|
||||||
conversationExpiry: 30 * 60 * 1000,
|
conversationExpiry: 30 * 60 * 1000,
|
||||||
minScore: 0.5,
|
minScore: 0.5,
|
||||||
|
enableMentions: true,
|
||||||
|
enableReplies: true,
|
||||||
tools: {
|
tools: {
|
||||||
webSearch: false,
|
webSearch: false,
|
||||||
fileSearch: false,
|
fileSearch: false,
|
||||||
@ -260,6 +264,8 @@ export default {
|
|||||||
defaultTemperature: 0.7,
|
defaultTemperature: 0.7,
|
||||||
conversationExpiry: 30 * 60 * 1000,
|
conversationExpiry: 30 * 60 * 1000,
|
||||||
minScore: 0,
|
minScore: 0,
|
||||||
|
enableMentions: true,
|
||||||
|
enableReplies: true,
|
||||||
tools: {
|
tools: {
|
||||||
webSearch: false,
|
webSearch: false,
|
||||||
fileSearch: false,
|
fileSearch: false,
|
||||||
@ -282,6 +288,82 @@ export default {
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
id: 'GRANDPA',
|
||||||
|
enabled: true,
|
||||||
|
owner: process.env.OWNER_ID,
|
||||||
|
|
||||||
|
discord: {
|
||||||
|
appId: process.env.GRANDPA_DISCORD_APPID,
|
||||||
|
token: process.env.GRANDPA_DISCORD_TOKEN
|
||||||
|
},
|
||||||
|
|
||||||
|
logging: {
|
||||||
|
console: {
|
||||||
|
enabled: true,
|
||||||
|
colorize: true,
|
||||||
|
level: 'silly',
|
||||||
|
},
|
||||||
|
file: {
|
||||||
|
dateFormat: 'YYYY-MM-DD',
|
||||||
|
timestampFormat: 'YYYY-MM-DD HH:mm:ss',
|
||||||
|
combined: {
|
||||||
|
enabled: true,
|
||||||
|
level: 'silly',
|
||||||
|
location: 'logs',
|
||||||
|
maxSize: '12m',
|
||||||
|
maxFiles: '30d',
|
||||||
|
},
|
||||||
|
error: {
|
||||||
|
enabled: true,
|
||||||
|
level: 'error',
|
||||||
|
location: 'logs',
|
||||||
|
maxSize: '12m',
|
||||||
|
maxFiles: '365d',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
pocketbase: {
|
||||||
|
url: process.env.SHARED_POCKETBASE_URL,
|
||||||
|
username: process.env.SHARED_POCKETBASE_USERNAME,
|
||||||
|
password: process.env.SHARED_POCKETBASE_PASSWORD
|
||||||
|
},
|
||||||
|
|
||||||
|
responses: {
|
||||||
|
apiKey: process.env.SHARED_OPENAI_API_KEY,
|
||||||
|
defaultModel: 'gpt-4.1',
|
||||||
|
defaultMaxTokens: 200,
|
||||||
|
defaultTemperature: 0.7,
|
||||||
|
conversationExpiry: 30 * 60 * 1000,
|
||||||
|
minScore: 0,
|
||||||
|
enableMentions: false,
|
||||||
|
enableReplies: true,
|
||||||
|
tools: {
|
||||||
|
webSearch: false,
|
||||||
|
fileSearch: false,
|
||||||
|
imageGeneration: false,
|
||||||
|
},
|
||||||
|
imageGeneration: {
|
||||||
|
defaultModel: 'gpt-image-1',
|
||||||
|
defaultQuality: 'standard',
|
||||||
|
imageSavePath: './images'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
responsesRandomizer: {
|
||||||
|
chance: 0.01,
|
||||||
|
},
|
||||||
|
modules: [
|
||||||
|
'botUtils',
|
||||||
|
'pbUtils',
|
||||||
|
'responses',
|
||||||
|
'responsesPrompt',
|
||||||
|
'responsesRandomizer'
|
||||||
|
]
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
id: 'Smuuush',
|
id: 'Smuuush',
|
||||||
enabled: true,
|
enabled: true,
|
||||||
@ -331,6 +413,8 @@ export default {
|
|||||||
defaultTemperature: 0.7,
|
defaultTemperature: 0.7,
|
||||||
conversationExpiry: 30 * 60 * 1000,
|
conversationExpiry: 30 * 60 * 1000,
|
||||||
minScore: 0,
|
minScore: 0,
|
||||||
|
enableMentions: true,
|
||||||
|
enableReplies: true,
|
||||||
tools: {
|
tools: {
|
||||||
webSearch: false,
|
webSearch: false,
|
||||||
fileSearch: false,
|
fileSearch: false,
|
||||||
|
|||||||
@ -97,6 +97,8 @@ export default {
|
|||||||
systemPromptPath: './prompts/IO3.txt',
|
systemPromptPath: './prompts/IO3.txt',
|
||||||
conversationExpiry: 30 * 60 * 1000,
|
conversationExpiry: 30 * 60 * 1000,
|
||||||
minScore: 1.0,
|
minScore: 1.0,
|
||||||
|
enableMentions: true,
|
||||||
|
enableReplies: true,
|
||||||
tools: {
|
tools: {
|
||||||
webSearch: false,
|
webSearch: false,
|
||||||
fileSearch: false,
|
fileSearch: false,
|
||||||
@ -114,18 +116,27 @@ export default {
|
|||||||
baseOutput: 1000,
|
baseOutput: 1000,
|
||||||
commendationValue: 1.0,
|
commendationValue: 1.0,
|
||||||
citationValue: 1.2,
|
citationValue: 1.2,
|
||||||
|
cooldown: 0,
|
||||||
decay: 90,
|
decay: 90,
|
||||||
schedule: '0 0 * * 0',
|
schedule: '0 0 * * 0',
|
||||||
},
|
},
|
||||||
|
|
||||||
// Modules to load for this client
|
// Modules to load for this client
|
||||||
modules: [
|
modules: [
|
||||||
|
'ansi',
|
||||||
|
'botUtils',
|
||||||
'pbUtils',
|
'pbUtils',
|
||||||
|
'gitUtils',
|
||||||
|
'condimentX',
|
||||||
'responses',
|
'responses',
|
||||||
|
'responsesPrompt',
|
||||||
'responsesQuery',
|
'responsesQuery',
|
||||||
|
'responsesRandomizer',
|
||||||
|
'messageQueue-example',
|
||||||
'scorekeeper',
|
'scorekeeper',
|
||||||
'scorekeeper-example',
|
'scorekeeper-example',
|
||||||
'condimentX',
|
'scExecHangarStatus',
|
||||||
|
'tempvc',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
68
package-lock.json
generated
68
package-lock.json
generated
@ -42,9 +42,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@discordjs/builders": {
|
"node_modules/@discordjs/builders": {
|
||||||
"version": "1.11.1",
|
"version": "1.11.2",
|
||||||
"resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.11.1.tgz",
|
"resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.11.2.tgz",
|
||||||
"integrity": "sha512-2zDAVuoeAkdv0YQzYKO8vZfaDfB+1KZ60ymBKtD7QDpsh6lzAnQSUBLqeRkhlons6BT9+yRctOh9fPy94w6kDA==",
|
"integrity": "sha512-F1WTABdd8/R9D1icJzajC4IuLyyS8f3rTOz66JsSI3pKvpCAtsMBweu8cyNYsIyvcrKAVn9EPK+Psoymq+XC0A==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@discordjs/formatters": "^0.6.1",
|
"@discordjs/formatters": "^0.6.1",
|
||||||
@ -63,9 +63,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@discordjs/builders/node_modules/discord-api-types": {
|
"node_modules/@discordjs/builders/node_modules/discord-api-types": {
|
||||||
"version": "0.38.1",
|
"version": "0.38.3",
|
||||||
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.1.tgz",
|
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.3.tgz",
|
||||||
"integrity": "sha512-vsjsqjAuxsPhiwbPjTBeGQaDPlizFmSkU0mTzFGMgRxqCDIRBR7iTY74HacpzrDV0QtERHRKQEk1tq7drZUtHg==",
|
"integrity": "sha512-vijevLh06Gtmex6BQzc9jRrGce6La0qnsF4bKwKM2L1ou0/sbJIOAkg7wz6YLLaodnUwQLljIhtrGxnkMjc1Ew==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@discordjs/collection": {
|
"node_modules/@discordjs/collection": {
|
||||||
@ -93,9 +93,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@discordjs/formatters/node_modules/discord-api-types": {
|
"node_modules/@discordjs/formatters/node_modules/discord-api-types": {
|
||||||
"version": "0.38.1",
|
"version": "0.38.3",
|
||||||
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.1.tgz",
|
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.3.tgz",
|
||||||
"integrity": "sha512-vsjsqjAuxsPhiwbPjTBeGQaDPlizFmSkU0mTzFGMgRxqCDIRBR7iTY74HacpzrDV0QtERHRKQEk1tq7drZUtHg==",
|
"integrity": "sha512-vijevLh06Gtmex6BQzc9jRrGce6La0qnsF4bKwKM2L1ou0/sbJIOAkg7wz6YLLaodnUwQLljIhtrGxnkMjc1Ew==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@discordjs/rest": {
|
"node_modules/@discordjs/rest": {
|
||||||
@ -134,9 +134,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@discordjs/rest/node_modules/discord-api-types": {
|
"node_modules/@discordjs/rest/node_modules/discord-api-types": {
|
||||||
"version": "0.38.1",
|
"version": "0.38.3",
|
||||||
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.1.tgz",
|
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.3.tgz",
|
||||||
"integrity": "sha512-vsjsqjAuxsPhiwbPjTBeGQaDPlizFmSkU0mTzFGMgRxqCDIRBR7iTY74HacpzrDV0QtERHRKQEk1tq7drZUtHg==",
|
"integrity": "sha512-vijevLh06Gtmex6BQzc9jRrGce6La0qnsF4bKwKM2L1ou0/sbJIOAkg7wz6YLLaodnUwQLljIhtrGxnkMjc1Ew==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@discordjs/util": {
|
"node_modules/@discordjs/util": {
|
||||||
@ -187,9 +187,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@discordjs/ws/node_modules/discord-api-types": {
|
"node_modules/@discordjs/ws/node_modules/discord-api-types": {
|
||||||
"version": "0.38.1",
|
"version": "0.38.3",
|
||||||
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.1.tgz",
|
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.3.tgz",
|
||||||
"integrity": "sha512-vsjsqjAuxsPhiwbPjTBeGQaDPlizFmSkU0mTzFGMgRxqCDIRBR7iTY74HacpzrDV0QtERHRKQEk1tq7drZUtHg==",
|
"integrity": "sha512-vijevLh06Gtmex6BQzc9jRrGce6La0qnsF4bKwKM2L1ou0/sbJIOAkg7wz6YLLaodnUwQLljIhtrGxnkMjc1Ew==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@sapphire/async-queue": {
|
"node_modules/@sapphire/async-queue": {
|
||||||
@ -226,9 +226,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "22.15.2",
|
"version": "22.15.10",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.2.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.10.tgz",
|
||||||
"integrity": "sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==",
|
"integrity": "sha512-j2U4KRlgZ9Q8tVO/KDAvXu68vutX4kxoRysL6Q22oEU4ZFT2A16aIyqiIWAwFBZkvKep2UOcSGNoLe/6BI0nrg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"undici-types": "~6.21.0"
|
"undici-types": "~6.21.0"
|
||||||
@ -402,12 +402,12 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/discord.js": {
|
"node_modules/discord.js": {
|
||||||
"version": "14.19.1",
|
"version": "14.19.3",
|
||||||
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.19.1.tgz",
|
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.19.3.tgz",
|
||||||
"integrity": "sha512-r5jsPyaeoCrRGbdse4vQNbHAsoc2zuueyiTFJ2Ce7BiaJak9OldzKZWaWGwKdCFDH3zXlthU1hHXkx1EswKZCA==",
|
"integrity": "sha512-lncTRk0k+8Q5D3nThnODBR8fR8x2fM798o8Vsr40Krx0DjPwpZCuxxTcFMrXMQVOqM1QB9wqWgaXPg3TbmlHqA==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@discordjs/builders": "^1.11.1",
|
"@discordjs/builders": "^1.11.2",
|
||||||
"@discordjs/collection": "1.5.3",
|
"@discordjs/collection": "1.5.3",
|
||||||
"@discordjs/formatters": "^0.6.1",
|
"@discordjs/formatters": "^0.6.1",
|
||||||
"@discordjs/rest": "^2.5.0",
|
"@discordjs/rest": "^2.5.0",
|
||||||
@ -429,9 +429,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/discord.js/node_modules/discord-api-types": {
|
"node_modules/discord.js/node_modules/discord-api-types": {
|
||||||
"version": "0.38.1",
|
"version": "0.38.3",
|
||||||
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.1.tgz",
|
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.3.tgz",
|
||||||
"integrity": "sha512-vsjsqjAuxsPhiwbPjTBeGQaDPlizFmSkU0mTzFGMgRxqCDIRBR7iTY74HacpzrDV0QtERHRKQEk1tq7drZUtHg==",
|
"integrity": "sha512-vijevLh06Gtmex6BQzc9jRrGce6La0qnsF4bKwKM2L1ou0/sbJIOAkg7wz6YLLaodnUwQLljIhtrGxnkMjc1Ew==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/dotenv": {
|
"node_modules/dotenv": {
|
||||||
@ -909,9 +909,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/openai": {
|
"node_modules/openai": {
|
||||||
"version": "4.96.0",
|
"version": "4.97.0",
|
||||||
"resolved": "https://registry.npmjs.org/openai/-/openai-4.96.0.tgz",
|
"resolved": "https://registry.npmjs.org/openai/-/openai-4.97.0.tgz",
|
||||||
"integrity": "sha512-dKoW56i02Prv2XQolJ9Rl9Svqubqkzg3QpwEOBuSVZLk05Shelu7s+ErRTwFc1Bs3JZ2qBqBfVpXQiJhwOGG8A==",
|
"integrity": "sha512-LRoiy0zvEf819ZUEJhgfV8PfsE8G5WpQi4AwA1uCV8SKvvtXQkoWUFkepD6plqyJQRghy2+AEPQ07FrJFKHZ9Q==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": "^18.11.18",
|
"@types/node": "^18.11.18",
|
||||||
@ -939,9 +939,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/openai/node_modules/@types/node": {
|
"node_modules/openai/node_modules/@types/node": {
|
||||||
"version": "18.19.87",
|
"version": "18.19.94",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.87.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.94.tgz",
|
||||||
"integrity": "sha512-OIAAu6ypnVZHmsHCeJ+7CCSub38QNBS9uceMQeg7K5Ur0Jr+wG9wEOEvvMbhp09pxD5czIUy/jND7s7Tb6Nw7A==",
|
"integrity": "sha512-6zRqqZiwWiA9nwKamxQzEogpoCf78fpzTOxxBhGDgQci1FJwm3udGjj4NEceGN7CZdJb51iW1+K6z4wcT8gdlQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"undici-types": "~5.26.4"
|
"undici-types": "~5.26.4"
|
||||||
@ -1178,9 +1178,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/ws": {
|
"node_modules/ws": {
|
||||||
"version": "8.18.1",
|
"version": "8.18.2",
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz",
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz",
|
||||||
"integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==",
|
"integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10.0.0"
|
"node": ">=10.0.0"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user