/** * Type definitions for MCP tool inputs and outputs * Based on specification in SPECIFICATION.md */ import { ChainOfThought } from './neubird.js'; export interface InvestigateAlertInput { alert_id: string; project_uuid?: string; stream_progress?: boolean; } export interface CreateInvestigationInput { prompt: string; timeframe?: string; start_time?: string; end_time?: string; project_uuid?: string; } export interface GetInvestigationStatusInput { session_uuid: string; project_uuid?: string; include_full_details?: boolean; } export interface ContinueInvestigationInput { session_uuid: string; follow_up_prompt: string; project_uuid?: string; } export interface ListProjectsInput { include_inactive?: boolean; } export interface ListRecentInvestigationsInput { project_uuid?: string; limit?: number; filter_by_alert_id?: string; filter_by_status?: 'completed' | 'in_progress' | 'failed'; } export interface ConfigureDefaultsInput { default_project_uuid?: string; default_organization_uuid?: string; default_timeframe?: string; enable_streaming?: boolean; } export interface InvestigationResults { final_answer?: string; chain_of_thoughts?: ChainOfThought[]; sources?: any[]; follow_up_suggestions?: string[]; } export interface InvestigationStep { step_id?: string; step_number: number; description: string; explanation?: string; category: string; status: string; sources_consulted: string[]; } export interface InvestigationStatusSummary { total_steps: number; completed_steps: number; steps: InvestigationStep[]; total_sources_consulted: number; unique_sources: string[]; } export interface InvestigateAlertOutput { status: 'found_existing' | 'new_investigation' | 'in_progress' | 'completed'; session_uuid: string; investigation_results?: InvestigationResults; message: string; } export interface ParsedTimeframe { start: string; end: string; description: string; } export interface CreateInvestigationOutput { session_uuid: string; status: 'created' | 'in_progress' | 'completed'; enhanced_prompt: string; timeframe_parsed?: ParsedTimeframe; investigation_results?: InvestigationResults; } export interface GetInvestigationStatusOutput { session_uuid: string; status: 'in_progress' | 'completed' | 'failed' | 'unknown'; progress_percentage?: number; current_step?: string; investigation_summary?: InvestigationStatusSummary; created_at: string; updated_at: string; ui_link: string; } export interface ContinueInvestigationOutput { session_uuid: string; status: 'created' | 'in_progress' | 'completed'; investigation_results?: InvestigationResults; message: string; } export interface ProjectInfo { uuid: string; name: string; description: string; state: string; sync_state: string; training_state: string; created_at: string; updated_at: string; } export interface ListProjectsOutput { projects: ProjectInfo[]; default_project?: string; } export interface InvestigationSummary { session_uuid: string; name: string; created_at: string; updated_at: string; status: string; prompt_summary: string; alert_id?: string; prompt_cycle_count: number; } export interface ListRecentInvestigationsOutput { investigations: InvestigationSummary[]; total_count: number; } export interface CurrentDefaults { project_uuid?: string; organization_uuid: string; timeframe: string; streaming_enabled: boolean; } export interface ConfigureDefaultsOutput { status: 'configured'; current_defaults: CurrentDefaults; }