@commandkit/ai 1.2.0-rc.3 → 1.2.0-rc.5
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/cli-plugin.d.ts +7 -0
- package/dist/cli-plugin.js +50 -0
- package/dist/configure.js +3 -3
- package/dist/index.d.ts +3 -1
- package/dist/index.js +6 -2
- package/dist/plugin.d.ts +3 -2
- package/dist/plugin.js +10 -5
- package/dist/system-prompt.js +45 -2
- package/dist/tools/common/index.d.ts +8 -9
- package/dist/tools/common/index.js +2 -2
- package/dist/tools/create-embed.d.ts +32 -0
- package/dist/tools/create-embed.js +89 -0
- package/dist/tools/get-available-commands.d.ts +2 -9
- package/dist/tools/get-available-commands.js +2 -2
- package/dist/tools/get-channel-by-id.d.ts +1 -9
- package/dist/tools/get-channel-by-id.js +2 -2
- package/dist/tools/get-current-client-info.d.ts +1 -3
- package/dist/tools/get-current-client-info.js +2 -2
- package/dist/tools/get-guild-by-id.d.ts +2 -22
- package/dist/tools/get-guild-by-id.js +2 -2
- package/dist/tools/get-member-by-id.d.ts +42 -0
- package/dist/tools/get-member-by-id.js +50 -0
- package/dist/tools/get-user-by-id.d.ts +1 -9
- package/dist/tools/get-user-by-id.js +2 -2
- package/dist/types.d.ts +2 -2
- package/dist/utils.d.ts +7 -0
- package/dist/utils.js +43 -1
- package/package.json +6 -6
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type CompilerPluginRuntime, CompilerPlugin } from 'commandkit';
|
|
2
|
+
export declare class AiCliPlugin extends CompilerPlugin {
|
|
3
|
+
readonly name = "AiCliPlugin";
|
|
4
|
+
private handleTemplate;
|
|
5
|
+
activate(ctx: CompilerPluginRuntime): Promise<void>;
|
|
6
|
+
deactivate(ctx: CompilerPluginRuntime): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AiCliPlugin = void 0;
|
|
4
|
+
const commandkit_1 = require("commandkit");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const promises_1 = require("node:fs/promises");
|
|
7
|
+
const AI_CONFIG_TEMPLATE = `
|
|
8
|
+
import { configureAI } from '@commandkit/ai';
|
|
9
|
+
import { openai } from '@ai-sdk/openai';
|
|
10
|
+
|
|
11
|
+
configureAI({
|
|
12
|
+
selectAiModel: async () => {
|
|
13
|
+
return { model: openai('o3-mini') };
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
`.trimStart();
|
|
17
|
+
class AiCliPlugin extends commandkit_1.CompilerPlugin {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.name = 'AiCliPlugin';
|
|
21
|
+
}
|
|
22
|
+
async handleTemplate(args) {
|
|
23
|
+
if (!(0, node_fs_1.existsSync)('./src')) {
|
|
24
|
+
commandkit_1.Logger.error(`No "src" directory found in the current directory`);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
let filePath = './src/ai';
|
|
28
|
+
const isTypeScript = (0, node_fs_1.existsSync)('tsconfig.json');
|
|
29
|
+
if (isTypeScript) {
|
|
30
|
+
filePath += '.ts';
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
filePath += '.js';
|
|
34
|
+
}
|
|
35
|
+
if ((0, node_fs_1.existsSync)(filePath)) {
|
|
36
|
+
commandkit_1.Logger.error(`AI config file already exists at ${filePath}`);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
await (0, promises_1.writeFile)(filePath, AI_CONFIG_TEMPLATE);
|
|
40
|
+
commandkit_1.Logger.info(`AI config file created at ${filePath}`);
|
|
41
|
+
}
|
|
42
|
+
async activate(ctx) {
|
|
43
|
+
ctx.registerTemplate('ai', this.handleTemplate.bind(this));
|
|
44
|
+
}
|
|
45
|
+
async deactivate(ctx) {
|
|
46
|
+
ctx.unregisterTemplate('ai');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.AiCliPlugin = AiCliPlugin;
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGktcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFnRjtBQUNoRixxQ0FBcUM7QUFDckMsK0NBQTZDO0FBRTdDLE1BQU0sa0JBQWtCLEdBQUc7Ozs7Ozs7OztDQVMxQixDQUFDLFNBQVMsRUFBRSxDQUFDO0FBRWQsTUFBYSxXQUFZLFNBQVEsMkJBQWM7SUFBL0M7O1FBQ2tCLFNBQUksR0FBRyxhQUFhLENBQUM7SUFrQ3ZDLENBQUM7SUFoQ1MsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFjO1FBQ3pDLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6QixtQkFBTSxDQUFDLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1lBQ2xFLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzFCLE1BQU0sWUFBWSxHQUFHLElBQUEsb0JBQVUsRUFBQyxlQUFlLENBQUMsQ0FBQztRQUVqRCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLElBQUksS0FBSyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLElBQUEsb0JBQVUsRUFBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3pCLG1CQUFNLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzdELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxJQUFBLG9CQUFTLEVBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFOUMsbUJBQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBMEI7UUFDOUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQTBCO1FBQ2hELEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUFuQ0Qsa0NBbUNDIn0=
|
package/dist/configure.js
CHANGED
|
@@ -96,7 +96,7 @@ const AIConfig = {
|
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
onError: async (_ctx, message, error) => {
|
|
99
|
-
commandkit_1.Logger.error
|
|
99
|
+
commandkit_1.Logger.error `Error processing AI message: ${error}`;
|
|
100
100
|
const channel = message.channel;
|
|
101
101
|
if (channel.isSendable()) {
|
|
102
102
|
await message
|
|
@@ -104,7 +104,7 @@ const AIConfig = {
|
|
|
104
104
|
content: 'An error occurred while processing your request.',
|
|
105
105
|
allowedMentions: { parse: [] },
|
|
106
106
|
})
|
|
107
|
-
.catch((e) => commandkit_1.Logger.error
|
|
107
|
+
.catch((e) => commandkit_1.Logger.error `Failed to send error message: ${e}`);
|
|
108
108
|
}
|
|
109
109
|
},
|
|
110
110
|
};
|
|
@@ -122,4 +122,4 @@ function getAIConfig() {
|
|
|
122
122
|
function configureAI(config) {
|
|
123
123
|
Object.assign(AIConfig, config);
|
|
124
124
|
}
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZ3VyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTJMQSxrQ0FFQztBQU9ELGtDQUVDO0FBcE1ELG1EQUFxRDtBQUNyRCxtQ0FBZ0Q7QUFFaEQsMkNBQW9DO0FBS3BDLE1BQU0seUJBQXlCLEdBQUcsd0NBQXdDLENBQUM7QUF1RDNFLE1BQU0sUUFBUSxHQUEwQjtJQUN0QyxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLGFBQWEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzNDLE1BQU0sZ0JBQWdCLEdBQ3BCLE1BQU0sVUFBVSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5RCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1lBQzlDLENBQUMsQ0FBQyxnQkFBZ0I7WUFDbEIsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV2QixNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVFLHFEQUFxRDtRQUNyRCxPQUFPLENBQ0wsQ0FBQyxlQUFlLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUN2RSxDQUFDO0lBQ0osQ0FBQztJQUNELG1CQUFtQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFBLGtDQUFrQixFQUFDLE9BQU8sQ0FBQztJQUN6RSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyQyxNQUFN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
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import './augmentation';
|
|
|
2
2
|
import { AiPlugin } from './plugin';
|
|
3
3
|
import { AiPluginOptions } from './types';
|
|
4
4
|
import type { Message } from 'discord.js';
|
|
5
|
+
import { AiCliPlugin } from './cli-plugin';
|
|
5
6
|
/**
|
|
6
7
|
* Retrieves the AI context.
|
|
7
8
|
*/
|
|
@@ -26,7 +27,7 @@ export declare function executeAI(message: Message): Promise<void>;
|
|
|
26
27
|
* @param options The options for the AI plugin
|
|
27
28
|
* @returns The AI plugin instance
|
|
28
29
|
*/
|
|
29
|
-
export declare function ai(options?: AiPluginOptions): AiPlugin;
|
|
30
|
+
export declare function ai(options?: AiPluginOptions): (AiPlugin | AiCliPlugin)[];
|
|
30
31
|
export * from './types';
|
|
31
32
|
export * from './plugin';
|
|
32
33
|
export * from './context';
|
|
@@ -34,3 +35,4 @@ export * from './configure';
|
|
|
34
35
|
export * from './types';
|
|
35
36
|
export * from './system-prompt';
|
|
36
37
|
export * from './tools/common/index';
|
|
38
|
+
export { experimental_createConfig } from './utils';
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.experimental_createConfig = void 0;
|
|
17
18
|
exports.useAIContext = useAIContext;
|
|
18
19
|
exports.useAI = useAI;
|
|
19
20
|
exports.executeAI = executeAI;
|
|
@@ -22,6 +23,7 @@ require("./augmentation");
|
|
|
22
23
|
const plugin_1 = require("./plugin");
|
|
23
24
|
const ai_context_worker_1 = require("./ai-context-worker");
|
|
24
25
|
const commandkit_1 = require("commandkit");
|
|
26
|
+
const cli_plugin_1 = require("./cli-plugin");
|
|
25
27
|
/**
|
|
26
28
|
* Retrieves the AI context.
|
|
27
29
|
*/
|
|
@@ -60,7 +62,7 @@ function executeAI(message) {
|
|
|
60
62
|
* @returns The AI plugin instance
|
|
61
63
|
*/
|
|
62
64
|
function ai(options) {
|
|
63
|
-
return new plugin_1.AiPlugin(options ?? {});
|
|
65
|
+
return [new plugin_1.AiPlugin(options ?? {}), new cli_plugin_1.AiCliPlugin({})];
|
|
64
66
|
}
|
|
65
67
|
__exportStar(require("./types"), exports);
|
|
66
68
|
__exportStar(require("./plugin"), exports);
|
|
@@ -69,4 +71,6 @@ __exportStar(require("./configure"), exports);
|
|
|
69
71
|
__exportStar(require("./types"), exports);
|
|
70
72
|
__exportStar(require("./system-prompt"), exports);
|
|
71
73
|
__exportStar(require("./tools/common/index"), exports);
|
|
72
|
-
|
|
74
|
+
var utils_1 = require("./utils");
|
|
75
|
+
Object.defineProperty(exports, "experimental_createConfig", { enumerable: true, get: function () { return utils_1.experimental_createConfig; } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxvQ0FHQztBQUtELHNCQVdDO0FBWUQsOEJBR0M7QUFPRCxnQkFFQztBQXRERCwwQkFBd0I7QUFDeEIscUNBQW9DO0FBRXBDLDJEQUF5RDtBQUN6RCwyQ0FBMkM7QUFFM0MsNkNBQTJDO0FBRTNDOztHQUVHO0FBQ0gsU0FBZ0IsWUFBWTtJQUMxQixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBQSxzQ0FBa0IsR0FBRSxDQUFDO0lBQ3JDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsS0FBSztJQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFBLDBCQUFhLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQVEsQ0FBQyxDQUFDO0lBRWxELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkRBQTZELENBQzlELENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxPQUFnQjtJQUN4QyxNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUN6QixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixFQUFFLENBQUMsT0FBeUI7SUFDMUMsT0FBTyxDQUFDLElBQUksaUJBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSx3QkFBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELDBDQUF3QjtBQUN4QiwyQ0FBeUI7QUFDekIsNENBQTBCO0FBQzFCLDhDQUE0QjtBQUM1QiwwQ0FBd0I7QUFDeEIsa0RBQWdDO0FBQ2hDLHVEQUFxQztBQUNyQyxpQ0FBb0Q7QUFBM0Msa0hBQUEseUJBQXlCLE9BQUEifQ==
|
package/dist/plugin.d.ts
CHANGED
|
@@ -2,10 +2,11 @@ import { CommandKitPluginRuntime, RuntimePlugin } from 'commandkit/plugin';
|
|
|
2
2
|
import { AiPluginOptions } from './types';
|
|
3
3
|
import CommandKit from 'commandkit';
|
|
4
4
|
import { Message } from 'discord.js';
|
|
5
|
+
import { ToolParameterType } from './tools/common';
|
|
5
6
|
/**
|
|
6
7
|
* Represents the configuration options for the AI plugin scoped to a specific command.
|
|
7
8
|
*/
|
|
8
|
-
export interface AiConfig {
|
|
9
|
+
export interface AiConfig<T extends ToolParameterType = ToolParameterType> {
|
|
9
10
|
/**
|
|
10
11
|
* A description of the AI functionality provided by this command. If not given, the command's description will be used.
|
|
11
12
|
*/
|
|
@@ -13,7 +14,7 @@ export interface AiConfig {
|
|
|
13
14
|
/**
|
|
14
15
|
* A zod schema defining the parameters that the AI command accepts.
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
|
+
inputSchema: T;
|
|
17
18
|
}
|
|
18
19
|
export declare class AiPlugin extends RuntimePlugin<AiPluginOptions> {
|
|
19
20
|
readonly name = "AiPlugin";
|
package/dist/plugin.js
CHANGED
|
@@ -14,12 +14,16 @@ const get_guild_by_id_1 = require("./tools/get-guild-by-id");
|
|
|
14
14
|
const get_user_by_id_1 = require("./tools/get-user-by-id");
|
|
15
15
|
const configure_1 = require("./configure");
|
|
16
16
|
const augmentation_1 = require("./augmentation");
|
|
17
|
+
const get_member_by_id_1 = require("./tools/get-member-by-id");
|
|
18
|
+
const create_embed_1 = require("./tools/create-embed");
|
|
17
19
|
const defaultTools = {
|
|
18
20
|
getAvailableCommands: get_available_commands_1.getAvailableCommands,
|
|
19
21
|
getChannelById: get_channel_by_id_1.getChannelById,
|
|
20
22
|
getCurrentClientInfo: get_current_client_info_1.getCurrentClientInfo,
|
|
21
23
|
getGuildById: get_guild_by_id_1.getGuildById,
|
|
22
24
|
getUserById: get_user_by_id_1.getUserById,
|
|
25
|
+
getMemberById: get_member_by_id_1.getMemberById,
|
|
26
|
+
createEmbed: create_embed_1.createEmbed,
|
|
23
27
|
};
|
|
24
28
|
class AiPlugin extends plugin_1.RuntimePlugin {
|
|
25
29
|
constructor(options) {
|
|
@@ -28,6 +32,7 @@ class AiPlugin extends plugin_1.RuntimePlugin {
|
|
|
28
32
|
this.toolsRecord = {};
|
|
29
33
|
this.defaultTools = defaultTools;
|
|
30
34
|
this.onMessageFunc = null;
|
|
35
|
+
this.preload.add('ai.js');
|
|
31
36
|
}
|
|
32
37
|
async activate(ctx) {
|
|
33
38
|
this.onMessageFunc = (message) => this.handleMessage(ctx.commandkit, message);
|
|
@@ -65,15 +70,15 @@ class AiPlugin extends plugin_1.RuntimePlugin {
|
|
|
65
70
|
await (0, ai_context_worker_1.runInAiWorkerContext)(ctx, message, async () => {
|
|
66
71
|
const systemPrompt = await prepareSystemPrompt(ctx, message);
|
|
67
72
|
const prompt = await preparePrompt(ctx, message);
|
|
68
|
-
const { model, abortSignal,
|
|
69
|
-
const promptOrMessage = typeof prompt === 'string' ? { prompt } : { messages: prompt };
|
|
73
|
+
const { model, abortSignal, stopWhen, ...modelOptions } = await selectAiModel(ctx, message);
|
|
74
|
+
const promptOrMessage = (typeof prompt === 'string' ? { prompt } : { messages: prompt });
|
|
70
75
|
await onProcessingStart(ctx, message);
|
|
71
76
|
try {
|
|
72
77
|
const result = await (0, ai_1.generateText)({
|
|
73
78
|
model,
|
|
74
79
|
abortSignal: abortSignal ?? AbortSignal.timeout(60000),
|
|
75
80
|
system: systemPrompt,
|
|
76
|
-
|
|
81
|
+
stopWhen: stopWhen ?? (0, ai_1.stepCountIs)(5),
|
|
77
82
|
...modelOptions,
|
|
78
83
|
tools: {
|
|
79
84
|
// Include built-in least significant tools if not disabled
|
|
@@ -128,7 +133,7 @@ class AiPlugin extends plugin_1.RuntimePlugin {
|
|
|
128
133
|
const description = cmd.data.aiConfig.description || cmd.data.command.description;
|
|
129
134
|
const cmdTool = (0, ai_1.tool)({
|
|
130
135
|
description,
|
|
131
|
-
|
|
136
|
+
inputSchema: cmd.data.aiConfig.inputSchema,
|
|
132
137
|
async execute(params) {
|
|
133
138
|
const config = (0, configure_1.getAIConfig)();
|
|
134
139
|
const ctx = (0, ai_context_worker_1.getAiWorkerContext)();
|
|
@@ -165,4 +170,4 @@ class AiPlugin extends plugin_1.RuntimePlugin {
|
|
|
165
170
|
}
|
|
166
171
|
}
|
|
167
172
|
exports.AiPlugin = AiPlugin;
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBMkU7QUFFM0UsMkNBQStEO0FBQy9ELHVDQUFzQztBQUN0QywyQ0FBeUQ7QUFDekQsMkJBQXlFO0FBQ3pFLDJEQUErRTtBQUMvRSwyRUFBc0U7QUFDdEUsaUVBQTJEO0FBQzNELDZFQUF1RTtBQUN2RSw2REFBdUQ7QUFDdkQsMkRBQXFEO0FBQ3JELDJDQUEwQztBQUMxQyxpREFBbUQ7QUFFbkQsK0RBQXlEO0FBQ3pELHVEQUFtRDtBQWdCbkQsTUFBTSxZQUFZLEdBQXlCO0lBQ3pDLG9CQUFvQixFQUFwQiw2Q0FBb0I7SUFDcEIsY0FBYyxFQUFkLGtDQUFjO0lBQ2Qsb0JBQW9CLEVBQXBCLDhDQUFvQjtJQUNwQixZQUFZLEVBQVosOEJBQVk7SUFDWixXQUFXLEVBQVgsNEJBQVc7SUFDWCxhQUFhLEVBQWIsZ0NBQWE7SUFDYixXQUFXLEVBQVgsMEJBQVc7Q0FDWixDQUFDO0FBRUYsTUFBYSxRQUFTLFNBQVEsc0JBQThCO0lBTTFELFlBQW1CLE9BQXdCO1FBQ3pDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQU5ELFNBQUksR0FBRyxVQUFVLENBQUM7UUFDMUIsZ0JBQVcsR0FBeUIsRUFBRSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLGtCQUFhLEdBQWlELElBQUksQ0FBQztRQUl6RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUE0QjtRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLEdBQUcsQ0FBQyxVQUFVLENBQUMs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
|
package/dist/system-prompt.js
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createSystemPrompt = createSystemPrompt;
|
|
4
|
+
const discord_js_1 = require("discord.js");
|
|
5
|
+
const commandkit_1 = require("commandkit");
|
|
6
|
+
const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
7
|
+
function humanReadable(ms) {
|
|
8
|
+
const units = [
|
|
9
|
+
{ value: 31536000000, label: 'year' },
|
|
10
|
+
{ value: 2628000000, label: 'month' },
|
|
11
|
+
{ value: 604800000, label: 'week' },
|
|
12
|
+
{ value: 86400000, label: 'day' },
|
|
13
|
+
{ value: 3600000, label: 'hour' },
|
|
14
|
+
{ value: 60000, label: 'minute' },
|
|
15
|
+
{ value: 1000, label: 'second' },
|
|
16
|
+
];
|
|
17
|
+
for (const { value, label } of units) {
|
|
18
|
+
if (ms >= value) {
|
|
19
|
+
const count = ms / value;
|
|
20
|
+
if (count >= 10) {
|
|
21
|
+
return `${Math.round(count)} ${label}${Math.round(count) === 1 ? '' : 's'}`;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return `${count.toFixed(1)} ${label}${count === 1 ? '' : 's'}`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return `${ms} milliseconds`;
|
|
29
|
+
}
|
|
4
30
|
/**
|
|
5
31
|
* Creates the default system prompt for the AI bot based on the provided message context.
|
|
6
32
|
* This prompt includes the bot's role, current channel information, and response guidelines.
|
|
@@ -10,7 +36,7 @@ function createSystemPrompt(message) {
|
|
|
10
36
|
? message.channel.name
|
|
11
37
|
: message.channel.recipient?.displayName || 'DM';
|
|
12
38
|
const guildInfo = message.inGuild()
|
|
13
|
-
? `You are in the guild "${message.guild.name}" (ID: ${message.guildId}). You can fetch member information when needed.`
|
|
39
|
+
? `You are in the guild "${message.guild.name}" (ID: ${message.guildId}) with ${message.guild?.memberCount ?? 0} members. You joined this guild on ${message.guild.members.me?.joinedAt?.toLocaleString() ?? 'unknown date'}. You can fetch member information when needed using the provided tools.`
|
|
14
40
|
: 'You are in a direct message with the user.';
|
|
15
41
|
return `You are ${message.client.user.username} (ID: ${message.client.user.id}), a helpful AI Discord bot.
|
|
16
42
|
|
|
@@ -23,12 +49,29 @@ function createSystemPrompt(message) {
|
|
|
23
49
|
- Channel: "${channelInfo}" (ID: ${message.channelId})
|
|
24
50
|
- Permissions: ${message.channel.isSendable() ? 'Can send messages' : 'Cannot send messages'}
|
|
25
51
|
- Location: ${guildInfo}
|
|
52
|
+
- Today's date: ${new Date().toLocaleDateString()}
|
|
53
|
+
- Current time: ${new Date().toLocaleTimeString()}
|
|
54
|
+
- Current UTC time: ${new Date().toUTCString()}
|
|
55
|
+
- Current timezone: ${tz}
|
|
56
|
+
- Current UNIX timestamp: ${Date.now()} (in milliseconds)
|
|
57
|
+
- You know total ${message.client.guilds.cache.size} guilds and ${message.client.users.cache.size} users
|
|
58
|
+
- You know total ${message.client.channels.cache.size} channels
|
|
59
|
+
- Your uptime is ${humanReadable(message.client.uptime)}
|
|
60
|
+
- Your latency is ${message.client.ws.ping ?? -1}ms
|
|
61
|
+
- You were built with Discord.js v${discord_js_1.version} and CommandKit v${commandkit_1.version}
|
|
62
|
+
- You were created on ${message.client.user.createdAt.toLocaleString()}
|
|
26
63
|
|
|
27
64
|
**Current User Information:**
|
|
28
65
|
- id: ${message.author.id}
|
|
29
66
|
- name: ${message.author.username}
|
|
30
67
|
- display name: ${message.author.displayName}
|
|
31
68
|
- avatar: ${message.author.avatarURL()}
|
|
69
|
+
- created at: ${message.author.createdAt.toLocaleString()}
|
|
70
|
+
- joined at: ${message.member?.joinedAt?.toLocaleString() ?? 'Info not available'}
|
|
71
|
+
- roles: ${message.member?.roles.cache.map((role) => role.name).join(', ') ?? 'No roles'}
|
|
72
|
+
- is bot: ${message.author.bot}
|
|
73
|
+
- is boosting: ${!!message.member?.premiumSince}
|
|
74
|
+
- has permissions: ${message.member?.permissions.toArray().join(', ') ?? 'No permissions'}
|
|
32
75
|
|
|
33
76
|
**Response Guidelines:**
|
|
34
77
|
- Use Discord markdown for formatting
|
|
@@ -37,4 +80,4 @@ function createSystemPrompt(message) {
|
|
|
37
80
|
|
|
38
81
|
Focus on being helpful while staying within your capabilities.`;
|
|
39
82
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLXByb21wdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zeXN0ZW0tcHJvbXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0NBLGdEQW1EQztBQXJGRCwyQ0FBNEQ7QUFDNUQsMkNBQTBEO0FBRTFELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7QUFFNUQsU0FBUyxhQUFhLENBQUMsRUFBVTtJQUMvQixNQUFNLEtBQUssR0FBRztRQUNaLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1FBQ3JDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ25DLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1FBQ2pDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ2pDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1FBQ2pDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0tBQ2pDLENBQUM7SUFFRixLQUFLLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7UUFDckMsSUFBSSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7WUFDaEIsTUFBTSxLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzlFLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNqRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEdBQUcsRUFBRSxlQUFlLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE9BQWdCO0lBQ2pELE1BQU0sV0FBVyxHQUNmLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTztRQUN2QixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJO1FBQ3RCLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDO0lBRXJELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUU7UUFDakMsQ0FBQyxDQUFDLHlCQUF5QixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxPQUFPLENBQUMsT0FBTyxVQUFVLE9BQU8sQ0FBQyxLQUFLLEVBQUUsV0FBVyxJQUFJLENBQUMsc0NBQXNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLElBQUksY0FBYywwRUFBMEU7UUFDclMsQ0FBQyxDQUFDLDRDQUE0QyxDQUFDO0lBRWpELE9BQU8sV0FBVyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLFNBQVMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTs7Ozs7Ozs7Y0FRakUsV0FBVyxVQUFVLE9BQU8sQ0FBQyxTQUFTO2lCQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO2NBQzlFLFNBQVM7a0JBQ0wsSUFBSSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTtrQkFDL0IsSUFBSSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTtzQkFDM0IsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7c0JBQ3hCLEVBQUU7NEJBQ0ksSUFBSSxDQUFDLEdBQUcsRUFBRTttQkFDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksZUFBZSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSTttQkFDOUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUk7bUJBQ2xDLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztvQkFDbkMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztvQ0FDWixvQkFBVSxvQkFBb0Isb0JBQWlCO3dCQUMzRCxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFOzs7UUFHOUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1VBQ2YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRO2tCQUNmLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVztZQUNoQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtnQkFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFO2VBQzFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxJQUFJLG9CQUFvQjtXQUN0RSxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVU7WUFDNUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHO2lCQUNiLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFlBQVk7cUJBQzFCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7Ozs7Ozs7K0RBTzFCLENBQUM7QUFDaEUsQ0FBQyJ9
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Schema
|
|
1
|
+
import { Schema } from 'ai';
|
|
2
2
|
import { AiContext } from '../../context';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
+
import { z as z3 } from 'zod/v3';
|
|
4
5
|
/**
|
|
5
6
|
* Utility type that represents a value that can be either synchronous or asynchronous.
|
|
6
7
|
* @template T - The type of the value
|
|
@@ -11,13 +12,13 @@ type Awaitable<T> = T | Promise<T>;
|
|
|
11
12
|
* Type representing the parameters schema for AI tools.
|
|
12
13
|
* Extracted from the first parameter of the `tool` function from the 'ai' library.
|
|
13
14
|
*/
|
|
14
|
-
export type ToolParameterType =
|
|
15
|
+
export type ToolParameterType = z.ZodType | z3.ZodType | Schema<any>;
|
|
15
16
|
/**
|
|
16
17
|
* Utility type that infers the TypeScript type from a tool parameter schema.
|
|
17
18
|
* Supports both Zod schemas and AI library schemas.
|
|
18
19
|
* @template T - The tool parameter type to infer from
|
|
19
20
|
*/
|
|
20
|
-
export type InferParameters<T extends ToolParameterType> = T extends Schema<any> ? T['_type'] : T extends z.ZodTypeAny ? z.infer<T> : never;
|
|
21
|
+
export type InferParameters<T extends ToolParameterType> = T extends Schema<any> ? T['_type'] : T extends z.ZodTypeAny ? z.infer<T> : T extends z3.ZodTypeAny ? z3.infer<T> : never;
|
|
21
22
|
/**
|
|
22
23
|
* Configuration options for creating an AI tool.
|
|
23
24
|
* @template T - The parameter schema type for the tool
|
|
@@ -29,7 +30,7 @@ export interface CreateToolOptions<T extends ToolParameterType, R = unknown> {
|
|
|
29
30
|
/** A human-readable description of what the tool does */
|
|
30
31
|
description: string;
|
|
31
32
|
/** The parameter schema that defines the tool's input structure */
|
|
32
|
-
|
|
33
|
+
inputSchema: T;
|
|
33
34
|
/** The function that executes when the tool is called */
|
|
34
35
|
execute: ToolExecuteFunction<T, R>;
|
|
35
36
|
}
|
|
@@ -38,10 +39,10 @@ export interface CreateToolOptions<T extends ToolParameterType, R = unknown> {
|
|
|
38
39
|
* @template T - The parameter schema type
|
|
39
40
|
* @template R - The return type of the function
|
|
40
41
|
* @param ctx - The AI context containing request and response information
|
|
41
|
-
* @param
|
|
42
|
+
* @param inputSchema - The validated inputSchema passed to the tool
|
|
42
43
|
* @returns The result of the tool execution, which can be synchronous or asynchronous
|
|
43
44
|
*/
|
|
44
|
-
export type ToolExecuteFunction<T extends ToolParameterType, R> = (ctx: AiContext,
|
|
45
|
+
export type ToolExecuteFunction<T extends ToolParameterType, R> = (ctx: AiContext, inputSchema: InferParameters<T>) => Awaitable<R>;
|
|
45
46
|
/**
|
|
46
47
|
* Creates a new AI tool with the specified configuration.
|
|
47
48
|
* This function wraps the underlying AI library's tool creation with additional
|
|
@@ -70,7 +71,5 @@ export type ToolExecuteFunction<T extends ToolParameterType, R> = (ctx: AiContex
|
|
|
70
71
|
* });
|
|
71
72
|
* ```
|
|
72
73
|
*/
|
|
73
|
-
export declare function createTool<T extends ToolParameterType, R = unknown>(options: CreateToolOptions<T, R>): import("ai").Tool<T, R
|
|
74
|
-
execute: (args: T extends Schema<any> ? T["_type"] : T extends z.ZodTypeAny ? z.TypeOf<T> : never, options: import("ai").ToolExecutionOptions) => PromiseLike<R>;
|
|
75
|
-
};
|
|
74
|
+
export declare function createTool<T extends ToolParameterType, R = unknown>(options: CreateToolOptions<T, R>): import("ai").Tool<T, R>;
|
|
76
75
|
export {};
|
|
@@ -36,7 +36,7 @@ function createTool(options) {
|
|
|
36
36
|
const _tool = (0, ai_1.tool)({
|
|
37
37
|
name: options.name,
|
|
38
38
|
description: options.description,
|
|
39
|
-
|
|
39
|
+
inputSchema: options.inputSchema,
|
|
40
40
|
async execute(params) {
|
|
41
41
|
const { ctx } = (0, ai_context_worker_1.getAiWorkerContext)();
|
|
42
42
|
ctx.setParams(params);
|
|
@@ -45,4 +45,4 @@ function createTool(options) {
|
|
|
45
45
|
});
|
|
46
46
|
return _tool;
|
|
47
47
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvY29tbW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBeUZBLGdDQWtCQztBQTNHRCwyQkFBa0M7QUFFbEMsK0RBQTZEO0FBMkQ3RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBQ0gsU0FBZ0IsVUFBVSxDQUN4QixPQUFnQztJQUVoQywwRUFBMEU7SUFDMUUsTUFBTSxLQUFLLEdBQUcsSUFBQSxTQUFJLEVBQU87UUFDdkIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7UUFDaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2xCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFBLHNDQUFrQixHQUFFLENBQUM7WUFFckMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFpQyxDQUFDLENBQUM7WUFFakQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUE0QixDQUFDLENBQUM7UUFDNUQsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVILE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyJ9
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const createEmbed: import("ai").Tool<z.ZodObject<{
|
|
3
|
+
title: z.ZodOptional<z.ZodString>;
|
|
4
|
+
url: z.ZodOptional<z.ZodString>;
|
|
5
|
+
description: z.ZodOptional<z.ZodString>;
|
|
6
|
+
color: z.ZodOptional<z.ZodString>;
|
|
7
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
8
|
+
name: z.ZodString;
|
|
9
|
+
value: z.ZodString;
|
|
10
|
+
inline: z.ZodBoolean;
|
|
11
|
+
}, z.core.$strip>>>;
|
|
12
|
+
author: z.ZodOptional<z.ZodObject<{
|
|
13
|
+
name: z.ZodString;
|
|
14
|
+
url: z.ZodString;
|
|
15
|
+
iconUrl: z.ZodString;
|
|
16
|
+
}, z.core.$strip>>;
|
|
17
|
+
footer: z.ZodOptional<z.ZodObject<{
|
|
18
|
+
text: z.ZodString;
|
|
19
|
+
iconUrl: z.ZodString;
|
|
20
|
+
}, z.core.$strip>>;
|
|
21
|
+
timestamp: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
image: z.ZodOptional<z.ZodString>;
|
|
23
|
+
thumbnail: z.ZodOptional<z.ZodString>;
|
|
24
|
+
}, z.core.$strip>, {
|
|
25
|
+
error: string;
|
|
26
|
+
success?: undefined;
|
|
27
|
+
message?: undefined;
|
|
28
|
+
} | {
|
|
29
|
+
success: boolean;
|
|
30
|
+
message: string;
|
|
31
|
+
error?: undefined;
|
|
32
|
+
}>;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createEmbed = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const common_1 = require("./common");
|
|
6
|
+
const discord_js_1 = require("discord.js");
|
|
7
|
+
exports.createEmbed = (0, common_1.createTool)({
|
|
8
|
+
name: 'createEmbed',
|
|
9
|
+
description: 'Create an embed message',
|
|
10
|
+
inputSchema: zod_1.z.object({
|
|
11
|
+
title: zod_1.z.string().describe('The title of the embed').optional(),
|
|
12
|
+
url: zod_1.z.string().describe('The URL of the embed').optional(),
|
|
13
|
+
description: zod_1.z.string().describe('The description of the embed').optional(),
|
|
14
|
+
color: zod_1.z.string().describe('The color of the embed').optional(),
|
|
15
|
+
fields: zod_1.z
|
|
16
|
+
.array(zod_1.z.object({
|
|
17
|
+
name: zod_1.z.string().describe('The name of the field'),
|
|
18
|
+
value: zod_1.z.string().describe('The value of the field'),
|
|
19
|
+
inline: zod_1.z.boolean().describe('Whether the field is inline'),
|
|
20
|
+
}))
|
|
21
|
+
.describe('The fields of the embed')
|
|
22
|
+
.optional(),
|
|
23
|
+
author: zod_1.z
|
|
24
|
+
.object({
|
|
25
|
+
name: zod_1.z.string().describe('The name of the author'),
|
|
26
|
+
url: zod_1.z.string().describe('The URL of the author'),
|
|
27
|
+
iconUrl: zod_1.z.string().describe('The icon URL of the author'),
|
|
28
|
+
})
|
|
29
|
+
.describe('The author of the embed')
|
|
30
|
+
.optional(),
|
|
31
|
+
footer: zod_1.z
|
|
32
|
+
.object({
|
|
33
|
+
text: zod_1.z.string().describe('The text of the footer'),
|
|
34
|
+
iconUrl: zod_1.z.string().describe('The icon URL of the footer'),
|
|
35
|
+
})
|
|
36
|
+
.describe('The footer of the embed')
|
|
37
|
+
.optional(),
|
|
38
|
+
timestamp: zod_1.z
|
|
39
|
+
.boolean()
|
|
40
|
+
.describe('Whether to add a timestamp to the embed')
|
|
41
|
+
.optional(),
|
|
42
|
+
image: zod_1.z.string().describe('The image URL of the embed').optional(),
|
|
43
|
+
thumbnail: zod_1.z.string().describe('The thumbnail URL of the embed').optional(),
|
|
44
|
+
}),
|
|
45
|
+
execute: async (ctx, params) => {
|
|
46
|
+
const { message } = ctx;
|
|
47
|
+
if (!message.channel.isSendable()) {
|
|
48
|
+
return {
|
|
49
|
+
error: 'You do not have permission to send messages in this channel',
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const embed = new discord_js_1.EmbedBuilder();
|
|
53
|
+
if (params.title) {
|
|
54
|
+
embed.setTitle(params.title);
|
|
55
|
+
}
|
|
56
|
+
if (params.description) {
|
|
57
|
+
embed.setDescription(params.description);
|
|
58
|
+
}
|
|
59
|
+
if (params.color) {
|
|
60
|
+
embed.setColor((!Number.isNaN(params.color)
|
|
61
|
+
? Number(params.color)
|
|
62
|
+
: params.color));
|
|
63
|
+
}
|
|
64
|
+
if (params.fields) {
|
|
65
|
+
embed.addFields(params.fields);
|
|
66
|
+
}
|
|
67
|
+
if (params.author) {
|
|
68
|
+
embed.setAuthor(params.author);
|
|
69
|
+
}
|
|
70
|
+
if (params.footer) {
|
|
71
|
+
embed.setFooter(params.footer);
|
|
72
|
+
}
|
|
73
|
+
if (params.timestamp) {
|
|
74
|
+
embed.setTimestamp();
|
|
75
|
+
}
|
|
76
|
+
if (params.image) {
|
|
77
|
+
embed.setImage(params.image);
|
|
78
|
+
}
|
|
79
|
+
if (params.thumbnail) {
|
|
80
|
+
embed.setThumbnail(params.thumbnail);
|
|
81
|
+
}
|
|
82
|
+
await message.channel.send({ embeds: [embed] });
|
|
83
|
+
return {
|
|
84
|
+
success: true,
|
|
85
|
+
message: 'Embedded message was sent to the channel successfully',
|
|
86
|
+
};
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVtYmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2NyZWF0ZS1lbWJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBd0I7QUFDeEIscUNBQXNDO0FBQ3RDLDJDQUEyRDtBQUU5QyxRQUFBLFdBQVcsR0FBRyxJQUFBLG1CQUFVLEVBQUM7SUFDcEMsSUFBSSxFQUFFLGFBQWE7SUFDbkIsV0FBVyxFQUFFLHlCQUF5QjtJQUN0QyxXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwQixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUMvRCxHQUFHLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUMzRCxXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUMzRSxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUMvRCxNQUFNLEVBQUUsT0FBQzthQUNOLEtBQUssQ0FDSixPQUFDLENBQUMsTUFBTSxDQUFDO1lBQ1AsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUM7WUFDbEQsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUM7WUFDcEQsTUFBTSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUM7U0FDNUQsQ0FBQyxDQUNIO2FBQ0EsUUFBUSxDQUFDLHlCQUF5QixDQUFDO2FBQ25DLFFBQVEsRUFBRTtRQUNi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
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const getAvailableCommands: import("ai").Tool<z.ZodObject<{},
|
|
2
|
+
export declare const getAvailableCommands: import("ai").Tool<z.ZodObject<{}, z.core.$strip>, {
|
|
3
3
|
name: any;
|
|
4
4
|
description: any;
|
|
5
5
|
category: string | null;
|
|
6
6
|
supportsAI: boolean;
|
|
7
|
-
}[]
|
|
8
|
-
execute: (args: {}, options: import("ai").ToolExecutionOptions) => PromiseLike<{
|
|
9
|
-
name: any;
|
|
10
|
-
description: any;
|
|
11
|
-
category: string | null;
|
|
12
|
-
supportsAI: boolean;
|
|
13
|
-
}[]>;
|
|
14
|
-
};
|
|
7
|
+
}[]>;
|
|
@@ -6,7 +6,7 @@ const common_1 = require("./common");
|
|
|
6
6
|
exports.getAvailableCommands = (0, common_1.createTool)({
|
|
7
7
|
description: 'Get a list of all available commands.',
|
|
8
8
|
name: 'getAvailableCommands',
|
|
9
|
-
|
|
9
|
+
inputSchema: zod_1.z.object({}),
|
|
10
10
|
execute(ctx, params) {
|
|
11
11
|
const { commandkit } = ctx;
|
|
12
12
|
const commands = commandkit.commandHandler
|
|
@@ -20,4 +20,4 @@ exports.getAvailableCommands = (0, common_1.createTool)({
|
|
|
20
20
|
return commands;
|
|
21
21
|
},
|
|
22
22
|
});
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWF2YWlsYWJsZS1jb21tYW5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9nZXQtYXZhaWxhYmxlLWNvbW1hbmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUF3QjtBQUN4QixxQ0FBc0M7QUFFekIsUUFBQSxvQkFBb0IsR0FBRyxJQUFBLG1CQUFVLEVBQUM7SUFDN0MsV0FBVyxFQUFFLHVDQUF1QztJQUNwRCxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUN6QixPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU07UUFDakIsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUUzQixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsY0FBYzthQUN2QyxnQkFBZ0IsRUFBRTthQUNsQixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDYixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUMzQixXQUFXLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVztZQUN6QyxRQUFRLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQzlCLFVBQVUsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFVBQVU7U0FDbEUsQ0FBQyxDQUFDLENBQUM7UUFFTixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YsQ0FBQyxDQUFDIn0=
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const getChannelById: import("ai").Tool<z.ZodObject<{
|
|
3
3
|
channelId: z.ZodString;
|
|
4
|
-
},
|
|
5
|
-
channelId: string;
|
|
6
|
-
}, {
|
|
7
|
-
channelId: string;
|
|
8
|
-
}>, unknown> & {
|
|
9
|
-
execute: (args: {
|
|
10
|
-
channelId: string;
|
|
11
|
-
}, options: import("ai").ToolExecutionOptions) => PromiseLike<unknown>;
|
|
12
|
-
};
|
|
4
|
+
}, z.core.$strip>, unknown>;
|
|
@@ -7,7 +7,7 @@ const commandkit_1 = require("commandkit");
|
|
|
7
7
|
exports.getChannelById = (0, common_1.createTool)({
|
|
8
8
|
description: 'Get a channel by its ID.',
|
|
9
9
|
name: 'getChannelById',
|
|
10
|
-
|
|
10
|
+
inputSchema: zod_1.z.object({
|
|
11
11
|
channelId: zod_1.z.string().describe('The ID of the channel to retrieve.'),
|
|
12
12
|
}),
|
|
13
13
|
async execute(ctx, params) {
|
|
@@ -32,4 +32,4 @@ exports.getChannelById = (0, common_1.createTool)({
|
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
});
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNoYW5uZWwtYnktaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvZ2V0LWNoYW5uZWwtYnktaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBQ3hCLHFDQUFzQztBQUN0QywyQ0FBb0M7QUFFdkIsUUFBQSxjQUFjLEdBQUcsSUFBQSxtQkFBVSxFQUFDO0lBQ3ZDLFdBQVcsRUFBRSwwQkFBMEI7SUFDdkMsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwQixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxvQ0FBb0MsQ0FBQztLQUNyRSxDQUFDO0lBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTTtRQUN2QixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtnQkFDNUQsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsT0FBTztvQkFDTCxLQUFLLEVBQUUsbUJBQW1CO2lCQUMzQixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsbUJBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFaEIsT0FBTztnQkFDTCxLQUFLLEVBQUUsNkJBQTZCO2FBQ3JDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQyJ9
|
|
@@ -1,4 +1,2 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const getCurrentClientInfo: import("ai").Tool<z.ZodObject<{},
|
|
3
|
-
execute: (args: {}, options: import("ai").ToolExecutionOptions) => PromiseLike<unknown>;
|
|
4
|
-
};
|
|
2
|
+
export declare const getCurrentClientInfo: import("ai").Tool<z.ZodObject<{}, z.core.$strip>, unknown>;
|
|
@@ -6,7 +6,7 @@ const common_1 = require("./common");
|
|
|
6
6
|
exports.getCurrentClientInfo = (0, common_1.createTool)({
|
|
7
7
|
name: 'getCurrentClientInfo',
|
|
8
8
|
description: 'Get information about the current discord bot user',
|
|
9
|
-
|
|
9
|
+
inputSchema: zod_1.z.object({}),
|
|
10
10
|
execute: async (ctx, params) => {
|
|
11
11
|
const { client } = ctx;
|
|
12
12
|
const user = client.user;
|
|
@@ -18,4 +18,4 @@ exports.getCurrentClientInfo = (0, common_1.createTool)({
|
|
|
18
18
|
return user.toJSON();
|
|
19
19
|
},
|
|
20
20
|
});
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWN1cnJlbnQtY2xpZW50LWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvZ2V0LWN1cnJlbnQtY2xpZW50LWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBQ3hCLHFDQUFzQztBQUV6QixRQUFBLG9CQUFvQixHQUFHLElBQUEsbUJBQVUsRUFBQztJQUM3QyxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLFdBQVcsRUFBRSxvREFBb0Q7SUFDakUsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ3pCLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzdCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDdkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUV6QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPO2dCQUNMLEtBQUssRUFBRSxvQkFBb0I7YUFDNUIsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0NBQ0YsQ0FBQyxDQUFDIn0=
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const getGuildById: import("ai").Tool<z.ZodObject<{
|
|
3
3
|
guildId: z.ZodString;
|
|
4
|
-
},
|
|
5
|
-
guildId: string;
|
|
6
|
-
}, {
|
|
7
|
-
guildId: string;
|
|
8
|
-
}>, {
|
|
4
|
+
}, z.core.$strip>, {
|
|
9
5
|
error: string;
|
|
10
6
|
id?: undefined;
|
|
11
7
|
name?: undefined;
|
|
@@ -17,20 +13,4 @@ export declare const getGuildById: import("ai").Tool<z.ZodObject<{
|
|
|
17
13
|
icon: string | null;
|
|
18
14
|
memberCount: number;
|
|
19
15
|
error?: undefined;
|
|
20
|
-
}
|
|
21
|
-
execute: (args: {
|
|
22
|
-
guildId: string;
|
|
23
|
-
}, options: import("ai").ToolExecutionOptions) => PromiseLike<{
|
|
24
|
-
error: string;
|
|
25
|
-
id?: undefined;
|
|
26
|
-
name?: undefined;
|
|
27
|
-
icon?: undefined;
|
|
28
|
-
memberCount?: undefined;
|
|
29
|
-
} | {
|
|
30
|
-
id: string;
|
|
31
|
-
name: string;
|
|
32
|
-
icon: string | null;
|
|
33
|
-
memberCount: number;
|
|
34
|
-
error?: undefined;
|
|
35
|
-
}>;
|
|
36
|
-
};
|
|
16
|
+
}>;
|
|
@@ -7,7 +7,7 @@ const commandkit_1 = require("commandkit");
|
|
|
7
7
|
exports.getGuildById = (0, common_1.createTool)({
|
|
8
8
|
description: 'Get a guild by its ID.',
|
|
9
9
|
name: 'getGuildById',
|
|
10
|
-
|
|
10
|
+
inputSchema: zod_1.z.object({
|
|
11
11
|
guildId: zod_1.z.string().describe('The ID of the guild to retrieve.'),
|
|
12
12
|
}),
|
|
13
13
|
async execute(ctx, params) {
|
|
@@ -38,4 +38,4 @@ exports.getGuildById = (0, common_1.createTool)({
|
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
});
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWd1aWxkLWJ5LWlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2dldC1ndWlsZC1ieS1pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBd0I7QUFDeEIscUNBQXNDO0FBQ3RDLDJDQUFvQztBQUV2QixRQUFBLFlBQVksR0FBRyxJQUFBLG1CQUFVLEVBQUM7SUFDckMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxJQUFJLEVBQUUsY0FBYztJQUNwQixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwQixPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBQztLQUNqRSxDQUFDO0lBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTTtRQUN2QixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ3ZCLE1BQU0sS0FBSyxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RDLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDckIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTztvQkFDTCxLQUFLLEVBQUUsaUJBQWlCO2lCQUN6QixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU87Z0JBQ0wsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNaLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDaEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ3JCLFdBQVcsRUFBRSxLQUFLLENBQUMsc0JBQXNCLElBQUksS0FBSyxDQUFDLFdBQVc7YUFDL0QsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsbUJBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFaEIsT0FBTztnQkFDTCxLQUFLLEVBQUUsMkJBQTJCO2FBQ25DLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const getMemberById: import("ai").Tool<z.ZodObject<{
|
|
3
|
+
memberId: z.ZodString;
|
|
4
|
+
}, z.core.$strip>, {
|
|
5
|
+
error: string;
|
|
6
|
+
id?: undefined;
|
|
7
|
+
user?: undefined;
|
|
8
|
+
roles?: undefined;
|
|
9
|
+
joinedAt?: undefined;
|
|
10
|
+
isBoosting?: undefined;
|
|
11
|
+
voiceChannel?: undefined;
|
|
12
|
+
voiceChannelId?: undefined;
|
|
13
|
+
permissions?: undefined;
|
|
14
|
+
nickname?: undefined;
|
|
15
|
+
name?: undefined;
|
|
16
|
+
displayName?: undefined;
|
|
17
|
+
avatar?: undefined;
|
|
18
|
+
isBot?: undefined;
|
|
19
|
+
presence?: undefined;
|
|
20
|
+
isDeafened?: undefined;
|
|
21
|
+
isMuted?: undefined;
|
|
22
|
+
isMe?: undefined;
|
|
23
|
+
} | {
|
|
24
|
+
id: string;
|
|
25
|
+
user: unknown;
|
|
26
|
+
roles: string[];
|
|
27
|
+
joinedAt: string | undefined;
|
|
28
|
+
isBoosting: boolean;
|
|
29
|
+
voiceChannel: string | undefined;
|
|
30
|
+
voiceChannelId: string | undefined;
|
|
31
|
+
permissions: string;
|
|
32
|
+
nickname: string | null;
|
|
33
|
+
name: string;
|
|
34
|
+
displayName: string;
|
|
35
|
+
avatar: string;
|
|
36
|
+
isBot: boolean;
|
|
37
|
+
presence: string;
|
|
38
|
+
isDeafened: string | boolean;
|
|
39
|
+
isMuted: string | boolean;
|
|
40
|
+
isMe: boolean;
|
|
41
|
+
error?: undefined;
|
|
42
|
+
}>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMemberById = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const common_1 = require("./common");
|
|
6
|
+
const commandkit_1 = require("commandkit");
|
|
7
|
+
exports.getMemberById = (0, common_1.createTool)({
|
|
8
|
+
description: 'Get a member by their ID. This tool can only be used in a guild.',
|
|
9
|
+
name: 'getMemberById',
|
|
10
|
+
inputSchema: zod_1.z.object({
|
|
11
|
+
memberId: zod_1.z.string().describe('The ID of the member to retrieve.'),
|
|
12
|
+
}),
|
|
13
|
+
async execute(ctx, params) {
|
|
14
|
+
try {
|
|
15
|
+
const { client, message } = ctx;
|
|
16
|
+
if (!message.inGuild()) {
|
|
17
|
+
return {
|
|
18
|
+
error: 'This tool can only be used in a guild',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const member = await message.guild?.members.fetch(params.memberId);
|
|
22
|
+
return {
|
|
23
|
+
id: member.id,
|
|
24
|
+
user: member.user.toJSON(),
|
|
25
|
+
roles: member.roles.cache.map((role) => role.name),
|
|
26
|
+
joinedAt: member.joinedAt?.toLocaleString(),
|
|
27
|
+
isBoosting: !!member.premiumSince,
|
|
28
|
+
voiceChannel: member.voice.channel?.name,
|
|
29
|
+
voiceChannelId: member.voice.channel?.id,
|
|
30
|
+
permissions: member.permissions.toArray().join(', '),
|
|
31
|
+
nickname: member.nickname,
|
|
32
|
+
name: member.user.username,
|
|
33
|
+
displayName: member.displayName,
|
|
34
|
+
avatar: member.user.displayAvatarURL(),
|
|
35
|
+
isBot: member.user.bot,
|
|
36
|
+
presence: member.presence?.status ?? 'unknown',
|
|
37
|
+
isDeafened: member.voice.deaf ?? 'Not in VC',
|
|
38
|
+
isMuted: member.voice.mute ?? 'Not in VC',
|
|
39
|
+
isMe: member.id === message.author.id,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
commandkit_1.Logger.error(e);
|
|
44
|
+
return {
|
|
45
|
+
error: 'Could not fetch the user',
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW1lbWJlci1ieS1pZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9nZXQtbWVtYmVyLWJ5LWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUF3QjtBQUN4QixxQ0FBc0M7QUFDdEMsMkNBQW9DO0FBRXZCLFFBQUEsYUFBYSxHQUFHLElBQUEsbUJBQVUsRUFBQztJQUN0QyxXQUFXLEVBQ1Qsa0VBQWtFO0lBQ3BFLElBQUksRUFBRSxlQUFlO0lBQ3JCLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3BCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLG1DQUFtQyxDQUFDO0tBQ25FLENBQUM7SUFDRixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNO1FBQ3ZCLElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDdkIsT0FBTztvQkFDTCxLQUFLLEVBQUUsdUNBQXVDO2lCQUMvQyxDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVuRSxPQUFPO2dCQUNMLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDYixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQzFCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ2xELFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRTtnQkFDM0MsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWTtnQkFDakMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUk7Z0JBQ3hDLGNBQWMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN4QyxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNwRCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQ3pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQzFCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztnQkFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3RDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ3RCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxTQUFTO2dCQUM5QyxVQUFVLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksV0FBVztnQkFDNUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLFdBQVc7Z0JBQ3pDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTthQUN0QyxDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxtQkFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVoQixPQUFPO2dCQUNMLEtBQUssRUFBRSwwQkFBMEI7YUFDbEMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFDIn0=
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const getUserById: import("ai").Tool<z.ZodObject<{
|
|
3
3
|
userId: z.ZodString;
|
|
4
|
-
},
|
|
5
|
-
userId: string;
|
|
6
|
-
}, {
|
|
7
|
-
userId: string;
|
|
8
|
-
}>, unknown> & {
|
|
9
|
-
execute: (args: {
|
|
10
|
-
userId: string;
|
|
11
|
-
}, options: import("ai").ToolExecutionOptions) => PromiseLike<unknown>;
|
|
12
|
-
};
|
|
4
|
+
}, z.core.$strip>, unknown>;
|
|
@@ -7,7 +7,7 @@ const commandkit_1 = require("commandkit");
|
|
|
7
7
|
exports.getUserById = (0, common_1.createTool)({
|
|
8
8
|
description: 'Get a user by their ID.',
|
|
9
9
|
name: 'getUserById',
|
|
10
|
-
|
|
10
|
+
inputSchema: zod_1.z.object({
|
|
11
11
|
userId: zod_1.z.string().describe('The ID of the user to retrieve.'),
|
|
12
12
|
}),
|
|
13
13
|
async execute(ctx, params) {
|
|
@@ -27,4 +27,4 @@ exports.getUserById = (0, common_1.createTool)({
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
});
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXVzZXItYnktaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvZ2V0LXVzZXItYnktaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBQ3hCLHFDQUFzQztBQUN0QywyQ0FBb0M7QUFFdkIsUUFBQSxXQUFXLEdBQUcsSUFBQSxtQkFBVSxFQUFDO0lBQ3BDLFdBQVcsRUFBRSx5QkFBeUI7SUFDdEMsSUFBSSxFQUFFLGFBQWE7SUFDbkIsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDcEIsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsaUNBQWlDLENBQUM7S0FDL0QsQ0FBQztJQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU07UUFDdkIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztZQUN2QixNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ25ELEtBQUssRUFBRSxLQUFLO2dCQUNaLEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQyxDQUFDO1lBRUgsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxtQkFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVoQixPQUFPO2dCQUNMLEtBQUssRUFBRSwwQkFBMEI7YUFDbEMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFDIn0=
|
package/dist/types.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export type MessageFilter = (commandkit: CommandKit, message: Message) => Promis
|
|
|
20
20
|
* @returns A promise that resolves to an object containing the selected model and optional metadata.
|
|
21
21
|
*/
|
|
22
22
|
export type SelectAiModel = (ctx: AiContext, message: Message) => Promise<SelectAiModelResult>;
|
|
23
|
-
export type SelectAiModelResult = Parameters<typeof generateText>[0]
|
|
23
|
+
export type SelectAiModelResult = Omit<Parameters<typeof generateText>[0], 'messages' | 'prompt'>;
|
|
24
24
|
export type CommandTool = LoadedCommand & {
|
|
25
25
|
tool: Tool;
|
|
26
26
|
};
|
|
@@ -32,7 +32,7 @@ export interface AiPluginOptions {
|
|
|
32
32
|
/**
|
|
33
33
|
* Extracts the AI configuration params.
|
|
34
34
|
*/
|
|
35
|
-
export type ExtractAiConfig<T extends Record<string, unknown>> = T extends AiConfig ? InferParameters<T['
|
|
35
|
+
export type ExtractAiConfig<T extends Record<string, unknown>> = T extends AiConfig ? InferParameters<T['inputSchema']> : T;
|
|
36
36
|
/**
|
|
37
37
|
* Represents the context in which an AI command is executed.
|
|
38
38
|
* It extends the MessageCommandContext to include AI-specific properties.
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { TextBasedChannel } from 'discord.js';
|
|
2
|
+
import { AiConfig } from './plugin';
|
|
3
|
+
import { CommandData } from 'commandkit';
|
|
2
4
|
/**
|
|
3
5
|
* @private
|
|
4
6
|
* @internal
|
|
5
7
|
*/
|
|
6
8
|
export declare function createTypingIndicator(channel: TextBasedChannel): Promise<() => void>;
|
|
9
|
+
/**
|
|
10
|
+
* Generates AI config from a CommandKit command data.
|
|
11
|
+
* @experimental
|
|
12
|
+
*/
|
|
13
|
+
export declare function experimental_createConfig(command: CommandData): AiConfig;
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.createTypingIndicator = createTypingIndicator;
|
|
7
|
+
exports.experimental_createConfig = experimental_createConfig;
|
|
8
|
+
const discord_js_1 = require("discord.js");
|
|
9
|
+
const zod_1 = __importDefault(require("zod"));
|
|
4
10
|
/**
|
|
5
11
|
* @private
|
|
6
12
|
* @internal
|
|
@@ -21,4 +27,40 @@ async function createTypingIndicator(channel) {
|
|
|
21
27
|
clearInterval(typingInterval);
|
|
22
28
|
};
|
|
23
29
|
}
|
|
24
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Generates AI config from a CommandKit command data.
|
|
32
|
+
* @experimental
|
|
33
|
+
*/
|
|
34
|
+
function experimental_createConfig(command) {
|
|
35
|
+
const inputSchema = zod_1.default.object({
|
|
36
|
+
...Object.fromEntries(command.options?.map((option) => [
|
|
37
|
+
option.name,
|
|
38
|
+
(() => {
|
|
39
|
+
const { type, required, description } = option;
|
|
40
|
+
const t = (() => {
|
|
41
|
+
switch (type) {
|
|
42
|
+
case discord_js_1.ApplicationCommandOptionType.String:
|
|
43
|
+
return zod_1.default.string();
|
|
44
|
+
case discord_js_1.ApplicationCommandOptionType.Number:
|
|
45
|
+
return zod_1.default.number();
|
|
46
|
+
case discord_js_1.ApplicationCommandOptionType.Boolean:
|
|
47
|
+
return zod_1.default.boolean();
|
|
48
|
+
case discord_js_1.ApplicationCommandOptionType.Integer:
|
|
49
|
+
return zod_1.default.int();
|
|
50
|
+
default:
|
|
51
|
+
throw new Error(`Unsupported option type: ${type}`);
|
|
52
|
+
}
|
|
53
|
+
})().describe(description);
|
|
54
|
+
if (!required) {
|
|
55
|
+
return t.optional();
|
|
56
|
+
}
|
|
57
|
+
return t;
|
|
58
|
+
})(),
|
|
59
|
+
]) ?? []),
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
description: command.description ?? `${command.name} command tool`,
|
|
63
|
+
inputSchema,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSxzREFxQkM7QUFNRCw4REFxQ0M7QUF6RUQsMkNBQTRFO0FBRzVFLDhDQUFvQjtBQUVwQjs7O0dBR0c7QUFDSSxLQUFLLFVBQVUscUJBQXFCLENBQ3pDLE9BQXlCO0lBRXpCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVwQixNQUFNLE1BQU0sR0FBRyxLQUFLLElBQUksRUFBRTtRQUN4QixJQUFJLE9BQU87WUFBRSxPQUFPLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVsRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUV6RCxNQUFNLE1BQU0sRUFBRSxDQUFDO0lBRWYsT0FBTyxHQUFHLEVBQUU7UUFDVixPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQix5QkFBeUIsQ0FBQyxPQUFvQjtJQUM1RCxNQUFNLFdBQVcsR0FBRyxhQUFDLENBQUMsTUFBTSxDQUFDO1FBQzNCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDbkIsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxJQUFJO1lBQ1gsQ0FBQyxHQUFHLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDO2dCQUUvQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDZCxRQUFRLElBQUksRUFBRSxDQUFDO3dCQUNiLEtBQUsseUNBQTRCLENBQUMsTUFBTTs0QkFDdEMsT0FBTyxhQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ3BCLEtBQUsseUNBQTRCLENBQUMsTUFBTTs0QkFDdEMsT0FBTyxhQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ3BCLEtBQUsseUNBQTRCLENBQUMsT0FBTzs0QkFDdkMsT0FBTyxhQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQ3JCLEtBQUsseUNBQTRCLENBQUMsT0FBTzs0QkFDdkMsT0FBTyxhQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2pCOzRCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQ3hELENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBRTNCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDZCxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEIsQ0FBQztnQkFFRCxPQUFPLENBQUMsQ0FBQztZQUNYLENBQUMsQ0FBQyxFQUFFO1NBQ0wsQ0FBQyxJQUFJLEVBQUUsQ0FDVDtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLGVBQWU7UUFDbEUsV0FBVztLQUNPLENBQUM7QUFDdkIsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commandkit/ai",
|
|
3
|
-
"version": "1.2.0-rc.
|
|
3
|
+
"version": "1.2.0-rc.5",
|
|
4
4
|
"description": "Supercharge your CommandKit bot with AI capabilities",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
},
|
|
26
26
|
"homepage": "https://github.com/underctrl-io/commandkit#readme",
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"discord.js": "^14.
|
|
28
|
+
"discord.js": "^14.22.1",
|
|
29
29
|
"typescript": "^5.8.3",
|
|
30
|
-
"commandkit": "1.2.0-rc.
|
|
31
|
-
"tsconfig": "0.0.0-rc.
|
|
30
|
+
"commandkit": "1.2.0-rc.5",
|
|
31
|
+
"tsconfig": "0.0.0-rc.5"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"ai": "^
|
|
35
|
-
"zod": "^
|
|
34
|
+
"ai": "^5.0.22",
|
|
35
|
+
"zod": "^4.1.0"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"check-types": "tsc --noEmit",
|