/**
 * 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,
} 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";
