@commandkit/ai 1.2.0-rc.1 → 1.2.0-rc.10

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/configure.js CHANGED
@@ -10,10 +10,14 @@ const AIConfig = {
10
10
  disableBuiltInTools: false,
11
11
  messageFilter: async (commandkit, message) => {
12
12
  const prefixOrPrefixes = await commandkit.appConfig.getMessageCommandPrefix(message);
13
- const prefixes = Array.isArray(prefixOrPrefixes)
13
+ const prefixes = prefixOrPrefixes instanceof RegExp
14
14
  ? prefixOrPrefixes
15
- : [prefixOrPrefixes];
16
- const possiblyCommand = prefixes.some((p) => message.content.startsWith(p));
15
+ : Array.isArray(prefixOrPrefixes)
16
+ ? prefixOrPrefixes
17
+ : [prefixOrPrefixes];
18
+ const possiblyCommand = prefixes instanceof RegExp
19
+ ? prefixes.test(message.content)
20
+ : prefixes.some((p) => message.content.startsWith(p));
17
21
  // TODO: figure out a workaround for mention prefixes
18
22
  return (!possiblyCommand && message.mentions.users.has(message.client.user.id));
19
23
  },
@@ -96,7 +100,7 @@ const AIConfig = {
96
100
  }
97
101
  },
98
102
  onError: async (_ctx, message, error) => {
99
- commandkit_1.Logger.error(`Error processing AI message: ${error}`);
103
+ commandkit_1.Logger.error `Error processing AI message: ${error}`;
100
104
  const channel = message.channel;
101
105
  if (channel.isSendable()) {
102
106
  await message
@@ -104,7 +108,7 @@ const AIConfig = {
104
108
  content: 'An error occurred while processing your request.',
105
109
  allowedMentions: { parse: [] },
106
110
  })
107
- .catch((e) => commandkit_1.Logger.error(`Failed to send error message: ${e}`));
111
+ .catch((e) => commandkit_1.Logger.error `Failed to send error message: ${e}`);
108
112
  }
109
113
  },
110
114
  };
@@ -122,4 +126,4 @@ function getAIConfig() {
122
126
  function configureAI(config) {
123
127
  Object.assign(AIConfig, config);
124
128
  }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZ3VyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTJMQSxrQ0FFQztBQU9ELGtDQUVDO0FBcE1ELG1EQUFxRDtBQUNyRCxtQ0FBZ0Q7QUFFaEQsMkNBQW9DO0FBS3BDLE1BQU0seUJBQXlCLEdBQUcsd0NBQXdDLENBQUM7QUF1RDNFLE1BQU0sUUFBUSxHQUEwQjtJQUN0QyxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLGFBQWEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzNDLE1BQU0sZ0JBQWdCLEdBQ3BCLE1BQU0sVUFBVSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5RCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1lBQzlDLENBQUMsQ0FBQyxnQkFBZ0I7WUFDbEIsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV2QixNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVFLHFEQUFxRDtRQUNyRCxPQUFPLENBQ0wsQ0FBQyxlQUFlLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUN2RSxDQUFDO0lBQ0osQ0FBQztJQUNELG1CQUFtQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFBLGtDQUFrQixFQUFDLE9BQU8sQ0FBQztJQUN6RSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyQyxNQUFN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
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZ3VyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlNQSxrQ0FFQztBQU9ELGtDQUVDO0FBMU1ELG1EQUFxRDtBQUNyRCxtQ0FBZ0Q7QUFFaEQsMkNBQW9DO0FBS3BDLE1BQU0seUJBQXlCLEdBQUcsd0NBQXdDLENBQUM7QUF1RDNFLE1BQU0sUUFBUSxHQUEwQjtJQUN0QyxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLGFBQWEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzNDLE1BQU0sZ0JBQWdCLEdBQ3BCLE1BQU0sVUFBVSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5RCxNQUFNLFFBQVEsR0FDWixnQkFBZ0IsWUFBWSxNQUFNO1lBQ2hDLENBQUMsQ0FBQyxnQkFBZ0I7WUFDbEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxnQkFBZ0I7Z0JBQ2xCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFM0IsTUFBTSxlQUFlLEdBQ25CLFFBQVEsWUFBWSxNQUFNO1lBQ3hCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDaEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUQscURBQXFEO1FBQ3JELE9BQU8sQ0FDTCxDQUFDLGVBQWUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ3ZFLENBQUM7SUFDSixDQUFD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
package/dist/context.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { CommandKit } from 'commandkit';
2
- import { Client, Message } from 'discord.js';
2
+ import { Client, Collection, Message } from 'discord.js';
3
3
  /**
4
4
  * Options for the AI context.
5
5
  */
@@ -42,7 +42,7 @@ export declare class AiContext<T extends Record<string, unknown> = Record<string
42
42
  /**
43
43
  * A key-value store to hold additional data.
44
44
  */
45
- store: Map<string, any>;
45
+ store: Collection<any, any>;
46
46
  /**
47
47
  * Creates a new instance of AiContext.
48
48
  * @param options - The options for the AI context, including the message, parameters, and CommandKit instance.
package/dist/context.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AiContext = void 0;
4
+ const discord_js_1 = require("discord.js");
4
5
  /**
5
6
  * Represents the context in which an AI command is executed.
6
7
  * This includes the parameters passed to the command, the message that triggered it,
@@ -15,7 +16,7 @@ class AiContext {
15
16
  /**
16
17
  * A key-value store to hold additional data.
17
18
  */
18
- this.store = new Map();
19
+ this.store = new discord_js_1.Collection();
19
20
  this.params = options.params;
20
21
  this.message = options.message;
21
22
  this.commandkit = options.commandkit;
@@ -30,4 +31,4 @@ class AiContext {
30
31
  }
31
32
  }
32
33
  exports.AiContext = AiContext;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVCQTs7OztHQUlHO0FBQ0gsTUFBYSxTQUFTO0lBd0JwQjs7O09BR0c7SUFDSCxZQUFtQixPQUE0QjtRQVQvQzs7V0FFRztRQUNJLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO1FBT3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFNBQVMsQ0FBQyxNQUFTO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQTFDRCw4QkEwQ0MifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUF5RDtBQXNCekQ7Ozs7R0FJRztBQUNILE1BQWEsU0FBUztJQXdCcEI7OztPQUdHO0lBQ0gsWUFBbUIsT0FBNEI7UUFUL0M7O1dBRUc7UUFDSSxVQUFLLEdBQUcsSUFBSSx1QkFBVSxFQUFZLENBQUM7UUFPeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUyxDQUFDLE1BQVM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBMUNELDhCQTBDQyJ9
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQVVBLG9DQUdDO0FBS0Qsc0JBV0M7QUFZRCw4QkFHQztBQU9ELGdCQUVDO0FBckRELDBCQUF3QjtBQUN4QixxQ0FBb0M7QUFFcEMsMkRBQXlEO0FBQ3pELDJDQUEyQztBQUczQzs7R0FFRztBQUNILFNBQWdCLFlBQVk7SUFDMUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUEsc0NBQWtCLEdBQUUsQ0FBQztJQUNyQyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLEtBQUs7SUFDbkIsTUFBTSxVQUFVLEdBQUcsSUFBQSwwQkFBYSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFRLENBQUMsQ0FBQztJQUVsRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksS0FBSyxDQUNiLDZEQUE2RCxDQUM5RCxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixTQUFTLENBQUMsT0FBZ0I7SUFDeEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDekIsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsRUFBRSxDQUFDLE9BQXlCO0lBQzFDLE9BQU8sSUFBSSxpQkFBUSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsMENBQXdCO0FBQ3hCLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIsOENBQTRCO0FBQzVCLDBDQUF3QjtBQUN4QixrREFBZ0M7QUFDaEMsdURBQXFDIn0=
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
- parameters: any;
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, maxSteps, ...modelOptions } = await selectAiModel(ctx, message);
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
- maxSteps: maxSteps ?? 5,
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
- parameters: cmd.data.aiConfig.parameters,
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBMkU7QUFFM0UsMkNBQStEO0FBQy9ELHVDQUFzQztBQUN0QywyQ0FBeUQ7QUFDekQsMkJBQThDO0FBQzlDLDJEQUErRTtBQUMvRSwyRUFBc0U7QUFDdEUsaUVBQTJEO0FBQzNELDZFQUF1RTtBQUN2RSw2REFBdUQ7QUFDdkQsMkRBQXFEO0FBQ3JELDJDQUFxRDtBQUNyRCxpREFBbUQ7QUFnQm5ELE1BQU0sWUFBWSxHQUF5QjtJQUN6QyxvQkFBb0IsRUFBcEIsNkNBQW9CO0lBQ3BCLGNBQWMsRUFBZCxrQ0FBYztJQUNkLG9CQUFvQixFQUFwQiw4Q0FBb0I7SUFDcEIsWUFBWSxFQUFaLDhCQUFZO0lBQ1osV0FBVyxFQUFYLDRCQUFXO0NBQ1osQ0FBQztBQUVGLE1BQWEsUUFBUyxTQUFRLHNCQUE4QjtJQU0xRCxZQUFtQixPQUF3QjtRQUN6QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFORCxTQUFJLEdBQUcsVUFBVSxDQUFDO1FBQzFCLGdCQUFXLEdBQXlCLEVBQUUsQ0FBQztRQUN2QyxpQkFBWSxHQUFHLFlBQVksQ0FBQztRQUM1QixrQkFBYSxHQUFpRCxJQUFJLENBQUM7SUFJM0UsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBNEI7UUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsbUJBQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25FLElBQUEsZ0NBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEIsbUJBQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUE0QjtRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFBLGdDQUFpQixFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLG1CQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVPLEtBQUssQ0FBQyxhQUFhLENBQ3pCLFVBQXNCLEVBQ3RCLE9BQWdCO1FBRWhCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUMvQixNQUFNLEVBQ0osYUFBYSxFQUNiLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE9BQU8sRUFDUCxtQkFBbUIsR0FDcEIsR0FBRyxJQUFBLHVCQUFXLEdBQUUsQ0FBQztRQUVsQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNO1lBQUUsT0FBTztRQUVyQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQUUsT0FBTztRQUU1RSxNQUFNLGNBQWMsR0FBRyxhQUFhO1lBQ2xDLENBQUMsQ0FBQyxNQUFNLGFBQWEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDVCxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU87UUFFNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxtQkFBUyxDQUFNO1lBQzdCLE9BQU87WUFDUCxNQUFNLEVBQUUsRUFBRTtZQUNWLFVBQVUsRUFBRSxVQUFVO1NBQ3ZCLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBQSx3Q0FBb0IsRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2xELE1BQU0sWUFBWSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzdELE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqRCxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FDckQsTUFBTSxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXBDLE1BQU0sZUFBZSxHQUNuQixPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBRWpFLE1BQU0saUJBQWlCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXRDLElBQUksQ0FBQztnQkFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsaUJBQVksRUFBQztvQkFDaEMsS0FBSztvQkFDTCxXQUFXLEVBQUUsV0FBVyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBTSxDQUFDO29CQUN2RCxNQUFNLEVBQUUsWUFBWTtvQkFDcEIsUUFBUSxFQUFFLFFBQVEsSUFBSSxDQUFDO29CQUN2QixHQUFHLFlBQVk7b0JBQ2YsS0FBSyxFQUFFO3dCQUNMLDJEQUEyRDt3QkFDM0QsR0FBRyxDQUFDLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQzt3QkFDOUMsdUNBQXVDO3dCQUN2QyxpREFBaUQ7d0JBQ2pELEdBQUcsWUFBWSxDQUFDLEtBQUs7d0JBQ3JCLGdEQUFnRDt3QkFDaEQsd0RBQXdEO3dCQUN4RCxHQUFHLElBQUksQ0FBQyxXQUFXO3FCQUNwQjtvQkFDRCxHQUFHLGVBQWU7aUJBQ25CLENBQUMsQ0FBQztnQkFFSCxNQUFNLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLE1BQU0sT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBVSxDQUFDLENBQUM7WUFDMUMsQ0FBQztvQkFBUyxDQUFDO2dCQUNULE1BQU0sa0JBQWtCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFNBQVMsQ0FDcEIsT0FBZ0IsRUFDaEIsVUFBdUI7UUFFdkIsVUFBVSxLQUFWLFVBQVUsR0FBSyxJQUFBLDBCQUFhLEVBQUMsSUFBSSxDQUFDLEVBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQjtRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEdBQTRCO1FBQ3BELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDM0IsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLGNBQWM7YUFDdkMsZ0JBQWdCLEVBQUU7YUFDbEIsTUFBTSxDQUNMLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDVixJQUFJLElBQUksT0FBTyxDQUFDLElBQUk7WUFDcEIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxVQUFVO1lBQ3JDLFVBQVUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUM3QixDQUFDO1FBRUosSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksdUJBQVUsRUFBdUIsQ0FBQztRQUVwRCxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQy9CLE1BQU0sR0FBRyxHQUFHLE9BQXNCLENBQUM7WUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkMsU0FBUztZQUNYLENBQUM7WUFFRCxNQUFNLFdBQVcsR0FDZixHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1lBRWhFLE1BQU0sT0FBTyxHQUFHLElBQUEsU0FBSSxFQUFDO2dCQUNuQixXQUFXO2dCQUNYLFVBQVUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVO2dCQUN4QyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU07b0JBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUEsdUJBQVcsR0FBRSxDQUFDO29CQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFBLHNDQUFrQixHQUFFLENBQUM7b0JBRWpDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUUxQixJQUFJLENBQUM7d0JBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUM5RCxHQUFHLENBQUMsT0FBTyxFQUNYLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEIsQ0FBQzt3QkFFRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ1osT0FBTztnQ0FDTCxLQUFLLEVBQUUsSUFBSTtnQ0FDWCxPQUFPLEVBQUUsZ0NBQWdDOzZCQUMxQyxDQUFDO3dCQUNKLENBQUM7d0JBRUQsTUFBTSxHQUFHLEdBQ1AsTUFBTSxVQUFVLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQ3RELE1BQU0sRUFDTixHQUFHLENBQUMsT0FBTyxFQUNYOzRCQUNFLE9BQU8sRUFBRSxJQUFJOzRCQUNiLFlBQVksRUFBRSxJQUFJO3lCQUNuQixDQUNGLENBQUM7d0JBRUosT0FBTyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO29CQUNyRCxDQUFDO29CQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7d0JBQ1gsTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQVUsQ0FBQyxDQUFDO3dCQUV6RCxPQUFPOzRCQUNMLEtBQUssRUFBRSxJQUFJOzRCQUNYLE9BQU8sRUFBRSx5Q0FBeUM7eUJBQ25ELENBQUM7b0JBQ0osQ0FBQztnQkFDSCxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7WUFFbkIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNuQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBdk1ELDRCQXVNQyJ9
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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
@@ -1,6 +1,7 @@
1
- import { Schema, tool } from 'ai';
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 = Parameters<typeof tool>[0]['parameters'];
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
- parameters: T;
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 parameters - The validated parameters passed to the tool
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, parameters: InferParameters<T>) => Awaitable<R>;
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
- parameters: options.parameters,
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvY29tbW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBdUZBLGdDQWtCQztBQXpHRCwyQkFBa0M7QUFFbEMsK0RBQTZEO0FBeUQ3RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBQ0gsU0FBZ0IsVUFBVSxDQUN4QixPQUFnQztJQUVoQywwRUFBMEU7SUFDMUUsTUFBTSxLQUFLLEdBQUcsSUFBQSxTQUFJLEVBQU87UUFDdkIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2xCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFBLHNDQUFrQixHQUFFLENBQUM7WUFFckMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV0QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQTRCLENBQUMsQ0FBQztRQUM1RCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIn0=
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<{}, "strip", z.ZodTypeAny, {}, {}>, {
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
- parameters: zod_1.z.object({}),
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWF2YWlsYWJsZS1jb21tYW5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9nZXQtYXZhaWxhYmxlLWNvbW1hbmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUF3QjtBQUN4QixxQ0FBc0M7QUFFekIsUUFBQSxvQkFBb0IsR0FBRyxJQUFBLG1CQUFVLEVBQUM7SUFDN0MsV0FBVyxFQUFFLHVDQUF1QztJQUNwRCxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLFVBQVUsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUN4QixPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU07UUFDakIsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUUzQixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsY0FBYzthQUN2QyxnQkFBZ0IsRUFBRTthQUNsQixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDYixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUMzQixXQUFXLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVztZQUN6QyxRQUFRLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQzlCLFVBQVUsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFVBQVU7U0FDbEUsQ0FBQyxDQUFDLENBQUM7UUFFTixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YsQ0FBQyxDQUFDIn0=
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
- }, "strip", z.ZodTypeAny, {
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
- parameters: zod_1.z.object({
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNoYW5uZWwtYnktaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvZ2V0LWNoYW5uZWwtYnktaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBQ3hCLHFDQUFzQztBQUN0QywyQ0FBb0M7QUFFdkIsUUFBQSxjQUFjLEdBQUcsSUFBQSxtQkFBVSxFQUFDO0lBQ3ZDLFdBQVcsRUFBRSwwQkFBMEI7SUFDdkMsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixVQUFVLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNuQixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxvQ0FBb0MsQ0FBQztLQUNyRSxDQUFDO0lBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTTtRQUN2QixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtnQkFDNUQsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsT0FBTztvQkFDTCxLQUFLLEVBQUUsbUJBQW1CO2lCQUMzQixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsbUJBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFaEIsT0FBTztnQkFDTCxLQUFLLEVBQUUsNkJBQTZCO2FBQ3JDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQyJ9
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<{}, "strip", z.ZodTypeAny, {}, {}>, unknown> & {
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
- parameters: zod_1.z.object({}),
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWN1cnJlbnQtY2xpZW50LWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvZ2V0LWN1cnJlbnQtY2xpZW50LWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBQ3hCLHFDQUFzQztBQUV6QixRQUFBLG9CQUFvQixHQUFHLElBQUEsbUJBQVUsRUFBQztJQUM3QyxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLFdBQVcsRUFBRSxvREFBb0Q7SUFDakUsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzdCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDdkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUV6QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPO2dCQUNMLEtBQUssRUFBRSxvQkFBb0I7YUFDNUIsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0NBQ0YsQ0FBQyxDQUFDIn0=
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
- }, "strip", z.ZodTypeAny, {
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
- parameters: zod_1.z.object({
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWd1aWxkLWJ5LWlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2dldC1ndWlsZC1ieS1pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBd0I7QUFDeEIscUNBQXNDO0FBQ3RDLDJDQUFvQztBQUV2QixRQUFBLFlBQVksR0FBRyxJQUFBLG1CQUFVLEVBQUM7SUFDckMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxJQUFJLEVBQUUsY0FBYztJQUNwQixVQUFVLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNuQixPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBQztLQUNqRSxDQUFDO0lBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTTtRQUN2QixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ3ZCLE1BQU0sS0FBSyxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RDLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDckIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTztvQkFDTCxLQUFLLEVBQUUsaUJBQWlCO2lCQUN6QixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU87Z0JBQ0wsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNaLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDaEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ3JCLFdBQVcsRUFBRSxLQUFLLENBQUMsc0JBQXNCLElBQUksS0FBSyxDQUFDLFdBQVc7YUFDL0QsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsbUJBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFaEIsT0FBTztnQkFDTCxLQUFLLEVBQUUsMkJBQTJCO2FBQ25DLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQyJ9
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
- }, "strip", z.ZodTypeAny, {
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
- parameters: zod_1.z.object({
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXVzZXItYnktaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvZ2V0LXVzZXItYnktaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBQ3hCLHFDQUFzQztBQUN0QywyQ0FBb0M7QUFFdkIsUUFBQSxXQUFXLEdBQUcsSUFBQSxtQkFBVSxFQUFDO0lBQ3BDLFdBQVcsRUFBRSx5QkFBeUI7SUFDdEMsSUFBSSxFQUFFLGFBQWE7SUFDbkIsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDbkIsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsaUNBQWlDLENBQUM7S0FDL0QsQ0FBQztJQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU07UUFDdkIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztZQUN2QixNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ25ELEtBQUssRUFBRSxLQUFLO2dCQUNaLEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQyxDQUFDO1lBRUgsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxtQkFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVoQixPQUFPO2dCQUNMLEtBQUssRUFBRSwwQkFBMEI7YUFDbEMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFDIn0=
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['parameters']> : 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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxzREFxQkM7QUF6QkQ7OztHQUdHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxPQUF5QjtJQUV6QixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFcEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDeEIsSUFBSSxPQUFPO1lBQUUsT0FBTyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbEQsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUN6QixNQUFNLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFekQsTUFBTSxNQUFNLEVBQUUsQ0FBQztJQUVmLE9BQU8sR0FBRyxFQUFFO1FBQ1YsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoQyxDQUFDLENBQUM7QUFDSixDQUFDIn0=
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.1",
3
+ "version": "1.2.0-rc.10",
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.21.0",
28
+ "discord.js": "^14.22.1",
29
29
  "typescript": "^5.8.3",
30
- "commandkit": "1.2.0-rc.1",
31
- "tsconfig": "0.0.0-rc.1"
30
+ "commandkit": "1.2.0-rc.10",
31
+ "tsconfig": "0.0.0-rc.10"
32
32
  },
33
33
  "dependencies": {
34
- "ai": "^4.3.16",
35
- "zod": "^3.25.48"
34
+ "ai": "^5.0.22",
35
+ "zod": "^4.1.0"
36
36
  },
37
37
  "scripts": {
38
38
  "check-types": "tsc --noEmit",