/**
 * src/sessions/types.ts
 * Session Types — Isolated agent sessions with memory
 */
import { z } from 'zod';
export const sessionSchema = z.object({
    id: z.string().uuid(),
    tenant_id: z.string().uuid(),
    label: z.string().optional(),
    kind: z.enum(['main', 'isolated', 'thread']),
    status: z.enum(['active', 'paused', 'completed', 'error']),
    model: z.string().optional(),
    thinking: z.boolean().default(false),
    timeoutSeconds: z.number().optional(),
    parent_session_id: z.string().uuid().nullable(),
    root_workspace_path: z.string(),
    created_at: z.string(),
    updated_at: z.string(),
    last_message_at: z.string().nullable(),
    message_count: z.number().default(0),
});
export const sessionMessageSchema = z.object({
    id: z.string().uuid(),
    session_id: z.string().uuid(),
    role: z.enum(['user', 'assistant', 'system', 'tool']),
    content: z.string(),
    tool_call_id: z.string().nullable(),
    tool_name: z.string().nullable(),
    created_at: z.string(),
});
//# sourceMappingURL=types.js.map