mirror of
https://gitlab.com/bignutty/labscore.git
synced 2025-06-10 23:23:08 -04:00
- properly handle permissions for user commands
- add central permission group constant
This commit is contained in:
parent
dcb823a0a1
commit
d2aeecf70d
100 changed files with 245 additions and 942 deletions
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { webAsk } = require('#obelisk');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
|
@ -6,9 +7,6 @@ const { editOrReply } = require('#utils/message')
|
|||
const { STATIC_ICONS } = require('#utils/statics');
|
||||
const { hasFeature } = require('#utils/testing');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
// TODO: general purpose constant?
|
||||
const URL_REGEX = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([^> \n]*)/
|
||||
|
||||
|
@ -22,7 +20,7 @@ module.exports = {
|
|||
category: 'limited',
|
||||
usage: 'ask <question>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "flamingo/summary")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
const { emogen } = require("#api");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
const { iconPill } = require("#utils/markdown");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { hasFeature } = require("#utils/testing");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'emogen',
|
||||
label: 'text',
|
||||
|
@ -21,7 +19,7 @@ module.exports = {
|
|||
args: [
|
||||
{ name: 'style', default: 'microsoft', required: false, help: "Emogen Style" }
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/imagen")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
const { LlmModelsGenerate } = require("#obelisk");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -6,9 +7,6 @@ const { editOrReply } = require("#utils/message");
|
|||
const { STATIC_ICONS } = require("#utils/statics");
|
||||
const { hasFeature } = require("#utils/testing");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'gemini-pro',
|
||||
label: 'text',
|
||||
|
@ -20,7 +18,7 @@ module.exports = {
|
|||
category: 'limited',
|
||||
usage: 'gemini-pro <prompt>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/gemini/text")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
const { geminiVision } = require("#obelisk");
|
||||
|
||||
const { getRecentImage } = require("#utils/attachment");
|
||||
|
@ -7,9 +8,6 @@ const { editOrReply } = require("#utils/message");
|
|||
const { STATIC_ICONS } = require("#utils/statics");
|
||||
const { hasFeature } = require("#utils/testing");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'gemini-vision',
|
||||
label: 'text',
|
||||
|
@ -21,7 +19,7 @@ module.exports = {
|
|||
category: 'limited',
|
||||
usage: 'gemini-vision <attachment> <prompt>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/gemini/vision")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { LlmPrivateBard } = require('#obelisk');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
|
@ -6,8 +7,7 @@ const { editOrReply } = require('#utils/message')
|
|||
const { STATIC_ICONS } = require('#utils/statics');
|
||||
const { hasFeature } = require('#utils/testing');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions, InteractionCallbackTypes } = require("detritus-client/lib/constants");
|
||||
const { InteractionCallbackTypes } = require("detritus-client/lib/constants");
|
||||
const { Components } = require('detritus-client/lib/utils');
|
||||
|
||||
module.exports = {
|
||||
|
@ -22,7 +22,7 @@ module.exports = {
|
|||
usage: 'gemini <input>'
|
||||
},
|
||||
args: [],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.ATTACH_FILES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/bard")) return;
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { gpt } = require('#api');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
@ -6,8 +7,6 @@ const { iconPill, stringwrap, smallIconPill } = require('#utils/markdown')
|
|||
const { STATICS, STATIC_ASSETS } = require('#utils/statics');
|
||||
const { hasFeature } = require('#utils/testing');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'gpt',
|
||||
|
@ -24,7 +23,7 @@ module.exports = {
|
|||
{ name: 'prompt', default: '', required: false, help: "The starting system prompt." },
|
||||
// { name: 'temperature', default: 0.25, required: false, help: "Model temperature." },
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.ATTACH_FILES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/gpt")) return;
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
const { GenerativeImagesModelsImagen } = require("#obelisk");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -6,9 +7,6 @@ const { editOrReply } = require("#utils/message");
|
|||
const { STATIC_ICONS, STATIC_ASSETS } = require("#utils/statics");
|
||||
const { hasFeature } = require("#utils/testing");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'imagen',
|
||||
label: 'text',
|
||||
|
@ -20,7 +18,7 @@ module.exports = {
|
|||
category: 'limited',
|
||||
usage: 'imagen <prompt>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/imagen")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { palm2 } = require('#obelisk');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
@ -6,9 +7,6 @@ const { iconPill, stringwrap, smallIconPill } = require('#utils/markdown')
|
|||
const { STATIC_ICONS } = require('#utils/statics');
|
||||
const { hasFeature } = require('#utils/testing');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'palm',
|
||||
label: 'text',
|
||||
|
@ -24,7 +22,7 @@ module.exports = {
|
|||
{ name: 'prompt', default: '', required: false, help: "The starting system prompt." },
|
||||
{ name: 'temperature', default: 0.25, required: false, help: "Model temperature." },
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.ATTACH_FILES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/palm")) return;
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { SparkWebSummarize } = require('#obelisk');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
|
@ -6,9 +7,6 @@ const { editOrReply } = require('#utils/message')
|
|||
const { STATIC_ICONS } = require('#utils/statics');
|
||||
const { hasFeature } = require('#utils/testing');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
// TODO: general purpose constant? regex util?
|
||||
const URL_REGEX = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([^> \n]*)/
|
||||
|
||||
|
@ -23,7 +21,7 @@ module.exports = {
|
|||
category: 'limited',
|
||||
usage: 'summarize'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "flamingo/summary")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
const { wallpaper } = require("#obelisk");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -6,9 +7,6 @@ const { editOrReply } = require("#utils/message");
|
|||
const { STATIC_ICONS, STATIC_ASSETS } = require("#utils/statics");
|
||||
const { hasFeature } = require("#utils/testing");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'wallpaper',
|
||||
label: 'text',
|
||||
|
@ -23,7 +21,7 @@ module.exports = {
|
|||
args: [
|
||||
{ name: 'format', default: 'wide', required: false, help: "Image style (wide, square)." }
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/wallpapers")) return;
|
||||
context.triggerTyping();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue