session.schemas.ts•1.39 kB
import { z } from 'zod';
export const SessionInfoSchema = z.object({
sessionId: z.string(),
startTime: z.number(),
status: z.enum(['initializing', 'active', 'stopped', 'terminated', 'error']),
config: z.object({
type: z.string(),
program: z.string().optional(),
cwd: z.string().optional(),
debugType: z.enum(['launch', 'attach']),
processId: z.number().optional(),
debugger: z.string().optional(),
}),
capabilities: z.record(z.string(), z.any()),
currentThreadId: z.number().optional(),
currentFrame: z.any().optional(),
lastActivity: z.number(),
createdAt: z.number(),
updatedAt: z.number(),
});
export const SessionManagerConfigSchema = z.object({
maxSessions: z.number().default(10),
sessionTimeout: z.number().default(3600000), // 1 hour in ms
debugTimeout: z.number().default(300000), // 5 minutes in ms
enableMetrics: z.boolean().default(true),
enableEventBuffer: z.boolean().default(true),
maxEventBuffer: z.number().default(1000),
});
export const SessionInitializationSchema = z.object({
config: z.any(),
capabilities: z.record(z.string(), z.any()),
sessionId: z.string().optional(),
});
export type SessionInfo = z.infer<typeof SessionInfoSchema>;
export type SessionManagerConfig = z.infer<typeof SessionManagerConfigSchema>;
export type SessionInitialization = z.infer<typeof SessionInitializationSchema>;