import { TraceType, TraceStatus } from '../types/constants';

/**
 * Trace types for ClawTracer.
 */
export const TRACE_TYPES = {
  LLM_CALL: TraceType.LLM_CALL,
  LLM_RESPONSE: TraceType.LLM_RESPONSE,
  TOOL_CALL: TraceType.TOOL_CALL,
  TOOL_RESPONSE: TraceType.TOOL_RESPONSE,
  TOOL_RESULT: TraceType.TOOL_RESPONSE,
  REFLECT: TraceType.REFLECT,
  EMIT: TraceType.EMIT,
  BRIDGE: TraceType.BRIDGE,
  ERROR: TraceType.ERROR,
  CLARIFICATION_REQUEST: TraceType.CLARIFICATION_REQUEST,
  CLARIFICATION_RESPONSE: TraceType.CLARIFICATION_RESPONSE,
  PARALLEL_DISPATCH: TraceType.PARALLEL_DISPATCH,
  PARALLEL_BARRIER: TraceType.PARALLEL_BARRIER,
  PARALLEL_COMPLETED: TraceType.PARALLEL_COMPLETED,
  COUNCIL_REVIEW: TraceType.COUNCIL_REVIEW,
  CONTINUATION: TraceType.CONTINUATION,
  COLLABORATION_STARTED: TraceType.COLLABORATION_STARTED,
  COLLABORATION_COMPLETED: TraceType.COLLABORATION_COMPLETED,
  CIRCUIT_BREAKER: TraceType.CIRCUIT_BREAKER,
  CANCELLATION: TraceType.CANCELLATION,
  MEMORY_OPERATION: TraceType.MEMORY_OPERATION,
  AGENT_WAITING: TraceType.AGENT_WAITING,
  AGENT_RESUMED: TraceType.AGENT_RESUMED,
  PLAN_GENERATED: TraceType.PLAN_GENERATED,
  CODE_WRITTEN: TraceType.CODE_WRITTEN,
  REVIEW_COMPLETE: TraceType.REVIEW_COMPLETE,
  AUDIT_COMPLETE: TraceType.AUDIT_COMPLETE,
  AGGREGATION_COMPLETE: TraceType.AGGREGATION_COMPLETE,
} as const;

/**
 * Status values for Traces.
 */
export const TRACE_STATUS = {
  STARTED: TraceStatus.STARTED,
  COMPLETED: TraceStatus.COMPLETED,
  FAILED: TraceStatus.FAILED,
  PAUSED: TraceStatus.PAUSED,
} as const;
