import { z } from 'zod';
// Zod schemas for validation
export const AgentRegistryEntrySchema = z.object({
    id: z.string().uuid(),
    name: z.string(),
    sessionId: z.string(),
    status: z.enum(['active', 'idle', 'completed', 'failed']),
    currentTask: z.string().optional(),
    startedAt: z.string(),
    lastHeartbeat: z.string(),
    capabilities: z.array(z.string()).optional(),
});
export const MessagePayloadSchema = z.object({
    action: z.string(),
    resource: z.string().optional(),
    data: z.unknown().optional(),
});
export const AgentMessageSchema = z.object({
    id: z.number(),
    channel: z.enum(['broadcast', 'deploy', 'review', 'direct', 'coordination']),
    fromAgent: z.string().optional(),
    toAgent: z.string().optional(),
    type: z.enum(['request', 'response', 'notification', 'claim', 'release']),
    payload: MessagePayloadSchema,
    priority: z.number().default(5),
    createdAt: z.string(),
    readAt: z.string().optional(),
    expiresAt: z.string().optional(),
});
export const DeployActionSchema = z.object({
    id: z.number(),
    agentId: z.string(),
    actionType: z.enum(['commit', 'push', 'merge', 'deploy', 'workflow']),
    target: z.string(),
    payload: z.record(z.any(), z.any()).optional(),
    status: z.enum(['pending', 'batched', 'executing', 'completed', 'failed']),
    batchId: z.string().optional(),
    queuedAt: z.string(),
    executeAfter: z.string().optional(),
    priority: z.number().default(5),
    dependencies: z.array(z.string()).optional(),
});
//# sourceMappingURL=coordination.js.map