mcp-server-subagent
Version:
MCP server for managing sub-agents
54 lines (53 loc) • 1.86 kB
JavaScript
import { z } from "zod";
export const RunSubagentArgumentsSchema = z.object({
input: z.string().min(1, "Input cannot be empty"),
cwd: z.string().min(1, "Working directory path cannot be empty"),
});
export const CheckSubagentStatusArgumentsSchema = z.object({
runId: z.string().uuid("Run ID must be a valid UUID"),
});
export const GetSubagentLogsArgumentsSchema = z.object({
runId: z.string().uuid("Run ID must be a valid UUID"),
});
export const UpdateSubagentStatusArgumentsSchema = z.object({
runId: z.string().uuid("Run ID must be a valid UUID"),
status: z.enum(["success", "error", "running", "completed"]),
summary: z.string().optional(),
});
// CommunicationMessage schema and MetaFileContent schema (bi-directional communication design)
export const CommunicationMessageSchema = z.object({
messageId: z.string(),
questionContent: z.string(),
questionTimestamp: z.string(),
answerContent: z.string().optional(),
answerTimestamp: z.string().optional(),
messageStatus: z.enum([
"pending_parent_reply",
"parent_replied",
"parent_acknowledged",
"acknowledged_by_subagent",
]),
});
export const MetaFileContentSchema = z.object({
runId: z.string().optional(),
agentName: z.string().optional(),
status: z
.enum([
"pending",
"running",
"completed",
"error",
"success",
"waiting_parent_reply",
"parent_replied",
])
.optional(),
messages: z.array(CommunicationMessageSchema).optional(),
// Other standard metadata fields
command: z.string().optional(),
startTime: z.string().optional(),
endTime: z.string().nullable().optional(),
exitCode: z.number().nullable().optional(),
summary: z.string().nullable().optional(),
lastUpdated: z.string().optional(),
});