@measey/mycoder-agent
Version:
Agent module for mycoder - an AI-powered software development assistant
37 lines • 1.23 kB
JavaScript
import { z } from 'zod';
import { zodToJsonSchema } from 'zod-to-json-schema';
import { sleep } from '../../utils/sleep.js';
const MAX_SLEEP_SECONDS = 3600; // 1 hour
const parametersSchema = z.object({
seconds: z
.number()
.min(0)
.max(MAX_SLEEP_SECONDS)
.describe('Number of seconds to sleep (max 1 hour)'),
});
const returnsSchema = z.object({
sleptFor: z.number().describe('Actual number of seconds slept'),
});
export const waitTool = {
name: 'wait',
description: 'Pauses execution for the specified number of seconds, useful when waiting for async tools to make progress before checking on them',
logPrefix: '💤',
parameters: parametersSchema,
returns: returnsSchema,
parametersJsonSchema: zodToJsonSchema(parametersSchema),
returnsJsonSchema: zodToJsonSchema(returnsSchema),
async execute(params) {
const { seconds } = parametersSchema.parse(params);
await sleep(seconds * 1000);
return returnsSchema.parse({
sleptFor: seconds,
});
},
logParameters({ seconds }) {
return `sleeping for ${seconds} seconds`;
},
logReturns() {
return '';
},
};
//# sourceMappingURL=wait.js.map