@measey/mycoder-agent
Version:
Agent module for mycoder - an AI-powered software development assistant
49 lines • 1.79 kB
JavaScript
import { z } from 'zod';
import { zodToJsonSchema } from 'zod-to-json-schema';
// Track the messages sent to the main agent
export const userMessages = [];
const parameterSchema = z.object({
message: z
.string()
.describe('The message or correction to send to the main agent'),
description: z
.string()
.describe('The reason for this message (max 80 chars)'),
});
const returnSchema = z.object({
received: z
.boolean()
.describe('Whether the message was received by the main agent'),
messageCount: z.number().describe('The number of messages in the queue'),
});
export const userMessageTool = {
name: 'userMessage',
description: 'Sends a message or correction from the user to the main agent',
logPrefix: '✉️',
parameters: parameterSchema,
parametersJsonSchema: zodToJsonSchema(parameterSchema),
returns: returnSchema,
returnsJsonSchema: zodToJsonSchema(returnSchema),
execute: async ({ message }, { logger }) => {
logger.debug(`Received message from user: ${message}`);
// Add the message to the queue
userMessages.push(message);
logger.debug(`Added message to queue. Total messages: ${userMessages.length}`);
return {
received: true,
messageCount: userMessages.length,
};
},
logParameters: (input, { logger }) => {
logger.log(`User message received: ${input.description}`);
},
logReturns: (output, { logger }) => {
if (output.received) {
logger.log(`Message added to queue. Queue now has ${output.messageCount} message(s).`);
}
else {
logger.error('Failed to add message to queue.');
}
},
};
//# sourceMappingURL=userMessage.js.map