import type { UuidNameRef } from './common'

export type AgentType = 'curriculum' | 'knowledge' | 'assessment' | 'monitor' | string

export type AgentExecutionStatus = 'idle' | 'running' | 'completed' | 'failed'

export interface LLMConfig {
    model_id?: string
    [key: string]: unknown
}

export interface AgentConfig {
    uuid: string
    name: string
    agent_type: AgentType
    llm_config: LLMConfig
    organization: string | UuidNameRef
    description?: string
    [key: string]: unknown
}

export type AgentStartPayload = {
    query?: string
    role_uuid?: string
    max_tokens?: number
}

export type AgentSocketEventPayload = {
    type: string
    message?: string
    thought?: string
    content?: unknown
    timestamp?: string
    execution_id?: string
}

export type AgentRunResult = {
    response?: string
    [key: string]: unknown
}

export type AgentEvent = {
    type: string
    timestamp: Date
    message?: string
    content?: unknown
}
