@commandkit/ai 1.2.0-rc.4 → 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.
@@ -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/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';
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ require("./augmentation");
23
23
  const plugin_1 = require("./plugin");
24
24
  const ai_context_worker_1 = require("./ai-context-worker");
25
25
  const commandkit_1 = require("commandkit");
26
+ const cli_plugin_1 = require("./cli-plugin");
26
27
  /**
27
28
  * Retrieves the AI context.
28
29
  */
@@ -61,7 +62,7 @@ function executeAI(message) {
61
62
  * @returns The AI plugin instance
62
63
  */
63
64
  function ai(options) {
64
- return new plugin_1.AiPlugin(options ?? {});
65
+ return [new plugin_1.AiPlugin(options ?? {}), new cli_plugin_1.AiCliPlugin({})];
65
66
  }
66
67
  __exportStar(require("./types"), exports);
67
68
  __exportStar(require("./plugin"), exports);
@@ -72,4 +73,4 @@ __exportStar(require("./system-prompt"), exports);
72
73
  __exportStar(require("./tools/common/index"), exports);
73
74
  var utils_1 = require("./utils");
74
75
  Object.defineProperty(exports, "experimental_createConfig", { enumerable: true, get: function () { return utils_1.experimental_createConfig; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVQSxvQ0FHQztBQUtELHNCQVdDO0FBWUQsOEJBR0M7QUFPRCxnQkFFQztBQXJERCwwQkFBd0I7QUFDeEIscUNBQW9DO0FBRXBDLDJEQUF5RDtBQUN6RCwyQ0FBMkM7QUFHM0M7O0dBRUc7QUFDSCxTQUFnQixZQUFZO0lBQzFCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFBLHNDQUFrQixHQUFFLENBQUM7SUFDckMsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixLQUFLO0lBQ25CLE1BQU0sVUFBVSxHQUFHLElBQUEsMEJBQWEsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBUSxDQUFDLENBQUM7SUFFbEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FDYiw2REFBNkQsQ0FDOUQsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE9BQWdCO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQ3pCLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLEVBQUUsQ0FBQyxPQUF5QjtJQUMxQyxPQUFPLElBQUksaUJBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVELDBDQUF3QjtBQUN4QiwyQ0FBeUI7QUFDekIsNENBQTBCO0FBQzFCLDhDQUE0QjtBQUM1QiwwQ0FBd0I7QUFDeEIsa0RBQWdDO0FBQ2hDLHVEQUFxQztBQUNyQyxpQ0FBb0Q7QUFBM0Msa0hBQUEseUJBQXlCLE9BQUEifQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxvQ0FHQztBQUtELHNCQVdDO0FBWUQsOEJBR0M7QUFPRCxnQkFFQztBQXRERCwwQkFBd0I7QUFDeEIscUNBQW9DO0FBRXBDLDJEQUF5RDtBQUN6RCwyQ0FBMkM7QUFFM0MsNkNBQTJDO0FBRTNDOztHQUVHO0FBQ0gsU0FBZ0IsWUFBWTtJQUMxQixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBQSxzQ0FBa0IsR0FBRSxDQUFDO0lBQ3JDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsS0FBSztJQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFBLDBCQUFhLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQVEsQ0FBQyxDQUFDO0lBRWxELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkRBQTZELENBQzlELENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxPQUFnQjtJQUN4QyxNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUN6QixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixFQUFFLENBQUMsT0FBeUI7SUFDMUMsT0FBTyxDQUFDLElBQUksaUJBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSx3QkFBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELDBDQUF3QjtBQUN4QiwyQ0FBeUI7QUFDekIsNENBQTBCO0FBQzFCLDhDQUE0QjtBQUM1QiwwQ0FBd0I7QUFDeEIsa0RBQWdDO0FBQ2hDLHVEQUFxQztBQUNyQyxpQ0FBb0Q7QUFBM0Msa0hBQUEseUJBQXlCLE9BQUEifQ==
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);
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBMkU7QUFFM0UsMkNBQStEO0FBQy9ELHVDQUFzQztBQUN0QywyQ0FBeUQ7QUFDekQsMkJBQXlFO0FBQ3pFLDJEQUErRTtBQUMvRSwyRUFBc0U7QUFDdEUsaUVBQTJEO0FBQzNELDZFQUF1RTtBQUN2RSw2REFBdUQ7QUFDdkQsMkRBQXFEO0FBQ3JELDJDQUEwQztBQUMxQyxpREFBbUQ7QUFpQm5ELE1BQU0sWUFBWSxHQUF5QjtJQUN6QyxvQkFBb0IsRUFBcEIsNkNBQW9CO0lBQ3BCLGNBQWMsRUFBZCxrQ0FBYztJQUNkLG9CQUFvQixFQUFwQiw4Q0FBb0I7SUFDcEIsWUFBWSxFQUFaLDhCQUFZO0lBQ1osV0FBVyxFQUFYLDRCQUFXO0NBQ1osQ0FBQztBQUVGLE1BQWEsUUFBUyxTQUFRLHNCQUE4QjtJQU0xRCxZQUFtQixPQUF3QjtRQUN6QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFORCxTQUFJLEdBQUcsVUFBVSxDQUFDO1FBQzFCLGdCQUFXLEdBQXlCLEVBQUUsQ0FBQztRQUN2QyxpQkFBWSxHQUFHLFlBQVksQ0FBQztRQUM1QixrQkFBYSxHQUFpRCxJQUFJLENBQUM7SUFJM0UsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBNEI7UUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsbUJBQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25FLElBQUEsZ0NBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEIsbUJBQU0sQ0FB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
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBMkU7QUFFM0UsMkNBQStEO0FBQy9ELHVDQUFzQztBQUN0QywyQ0FBeUQ7QUFDekQsMkJBQXlFO0FBQ3pFLDJEQUErRTtBQUMvRSwyRUFBc0U7QUFDdEUsaUVBQTJEO0FBQzNELDZFQUF1RTtBQUN2RSw2REFBdUQ7QUFDdkQsMkRBQXFEO0FBQ3JELDJDQUEwQztBQUMxQyxpREFBbUQ7QUFFbkQsK0RBQXlEO0FBQ3pELHVEQUFtRDtBQWdCbkQsTUFBTSxZQUFZLEdBQXlCO0lBQ3pDLG9CQUFvQixFQUFwQiw2Q0FBb0I7SUFDcEIsY0FBYyxFQUFkLGtDQUFjO0lBQ2Qsb0JBQW9CLEVBQXBCLDhDQUFvQjtJQUNwQixZQUFZLEVBQVosOEJBQVk7SUFDWixXQUFXLEVBQVgsNEJBQVc7SUFDWCxhQUFhLEVBQWIsZ0NBQWE7SUFDYixXQUFXLEVBQVgsMEJBQVc7Q0FDWixDQUFDO0FBRUYsTUFBYSxRQUFTLFNBQVEsc0JBQThCO0lBTTFELFlBQW1CLE9BQXdCO1FBQ3pDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQU5ELFNBQUksR0FBRyxVQUFVLENBQUM7UUFDMUIsZ0JBQVcsR0FBeUIsRUFBRSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLGtCQUFhLEdBQWlELElBQUksQ0FBQztRQUl6RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUE0QjtRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLEdBQUcsQ0FBQyxVQUFVLENBQUMs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
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLXByb21wdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zeXN0ZW0tcHJvbXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsZ0RBa0NDO0FBdENEOzs7R0FHRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE9BQWdCO0lBQ2pELE1BQU0sV0FBVyxHQUNmLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTztRQUN2QixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJO1FBQ3RCLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDO0lBRXJELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUU7UUFDakMsQ0FBQyxDQUFDLHlCQUF5QixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxPQUFPLENBQUMsT0FBTyxrREFBa0Q7UUFDeEgsQ0FBQyxDQUFDLDRDQUE0QyxDQUFDO0lBRWpELE9BQU8sV0FBVyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLFNBQVMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTs7Ozs7Ozs7Y0FRakUsV0FBVyxVQUFVLE9BQU8sQ0FBQyxTQUFTO2lCQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO2NBQzlFLFNBQVM7OztRQUdmLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtVQUNmLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUTtrQkFDZixPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFDaEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Ozs7Ozs7K0RBT3lCLENBQUM7QUFDaEUsQ0FBQyJ9
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLXByb21wdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zeXN0ZW0tcHJvbXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0NBLGdEQW1EQztBQXJGRCwyQ0FBNEQ7QUFDNUQsMkNBQTBEO0FBRTFELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7QUFFNUQsU0FBUyxhQUFhLENBQUMsRUFBVTtJQUMvQixNQUFNLEtBQUssR0FBRztRQUNaLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1FBQ3JDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ25DLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1FBQ2pDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ2pDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1FBQ2pDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0tBQ2pDLENBQUM7SUFFRixLQUFLLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7UUFDckMsSUFBSSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7WUFDaEIsTUFBTSxLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FB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
@@ -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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
@@ -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=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commandkit/ai",
3
- "version": "1.2.0-rc.4",
3
+ "version": "1.2.0-rc.5",
4
4
  "description": "Supercharge your CommandKit bot with AI capabilities",
5
5
  "files": [
6
6
  "dist"
@@ -27,8 +27,8 @@
27
27
  "devDependencies": {
28
28
  "discord.js": "^14.22.1",
29
29
  "typescript": "^5.8.3",
30
- "tsconfig": "0.0.0-rc.4",
31
- "commandkit": "1.2.0-rc.4"
30
+ "commandkit": "1.2.0-rc.5",
31
+ "tsconfig": "0.0.0-rc.5"
32
32
  },
33
33
  "dependencies": {
34
34
  "ai": "^5.0.22",