/**
 * MCP Server Schemas — barrel export for all contract definitions.
 */

// Tool schemas & registry
export {
  type McpToolDefinition,
  type AuditLevel,
  MCP_TOOLS,
  MCP_ESSENTIAL_TOOLS,
  MCP_ADVANCED_TOOLS,
  MCP_TOOL_MAP,
  // Phase 1: Essential tool schemas
  getHealthInput,
  getHealthOutput,
  getHealthTool,
  listCombosInput,
  listCombosOutput,
  listCombosTool,
  getComboMetricsInput,
  getComboMetricsOutput,
  getComboMetricsTool,
  switchComboInput,
  switchComboOutput,
  switchComboTool,
  checkQuotaInput,
  checkQuotaOutput,
  checkQuotaTool,
  routeRequestInput,
  routeRequestOutput,
  routeRequestTool,
  costReportInput,
  costReportOutput,
  costReportTool,
  listModelsCatalogInput,
  listModelsCatalogOutput,
  listModelsCatalogTool,
  // Phase 2: Advanced tool schemas
  simulateRouteInput,
  simulateRouteOutput,
  simulateRouteTool,
  setBudgetGuardInput,
  setBudgetGuardOutput,
  setBudgetGuardTool,
  setResilienceProfileInput,
  setResilienceProfileOutput,
  setResilienceProfileTool,
  testComboInput,
  testComboOutput,
  testComboTool,
  getProviderMetricsInput,
  getProviderMetricsOutput,
  getProviderMetricsTool,
  bestComboForTaskInput,
  bestComboForTaskOutput,
  bestComboForTaskTool,
  explainRouteInput,
  explainRouteOutput,
  explainRouteTool,
  getSessionSnapshotInput,
  getSessionSnapshotOutput,
  getSessionSnapshotTool,
  dbHealthCheckInput,
  dbHealthCheckOutput,
  dbHealthCheckTool,
  cacheStatsInput,
  cacheStatsOutput,
  cacheStatsTool,
  cacheFlushInput,
  cacheFlushOutput,
  cacheFlushTool,
} from "./tools.ts";

// A2A schemas
export {
  AgentCardSchema,
  AgentSkillSchema,
  TaskStateEnum,
  TaskInputSchema,
  TaskOutputSchema,
  TaskSchema,
  CostEnvelopeSchema,
  ResilienceTraceEventSchema,
  PolicyVerdictSchema,
  JsonRpcRequestSchema,
  JsonRpcResponseSchema,
  MessageSendParamsSchema,
  TasksGetParamsSchema,
  TasksCancelParamsSchema,
  A2A_SSE_EVENTS,
  A2A_ERROR_CODES,
  type AgentCard,
  type AgentSkill,
  type Task,
  type TaskState,
  type TaskInput,
  type TaskOutput,
  type CostEnvelope,
  type ResilienceTraceEvent,
  type PolicyVerdict,
  type JsonRpcRequest,
  type JsonRpcResponse,
  type MessageSendParams,
  type TasksGetParams,
  type TasksCancelParams,
} from "./a2a.ts";

// Audit types
export {
  type McpAuditEntry,
  type A2aTaskEvent,
  type RoutingDecisionLog,
  type RoutingFactor,
  hashInput,
  summarizeOutput,
} from "./audit.ts";
