export type CharacterState =
  | "idle"
  | "thinking"
  | "typing"
  | "searching"
  | "coding"
  | "mcp"
  | "permission"
  | "success"
  | "error";

export interface CharacterStateInfo {
  state: CharacterState;
  label: string;
  description: string;
  spriteFile: string;
}

export const CHARACTER_STATES: Record<CharacterState, CharacterStateInfo> = {
  idle: {
    state: "idle",
    label: "Ready",
    description: "Waiting for your command~",
    spriteFile: "idle.png",
  },
  thinking: {
    state: "thinking",
    label: "Thinking",
    description: "Hmm, let me think about this...",
    spriteFile: "thinking.png",
  },
  typing: {
    state: "typing",
    label: "Typing",
    description: "Writing response...",
    spriteFile: "typing.png",
  },
  searching: {
    state: "searching",
    label: "Searching",
    description: "Looking through files...",
    spriteFile: "searching.png",
  },
  coding: {
    state: "coding",
    label: "Coding",
    description: "Writing some code!",
    spriteFile: "coding.png",
  },
  mcp: {
    state: "mcp",
    label: "Using Tools",
    description: "Connecting to external tools...",
    spriteFile: "mcp.png",
  },
  permission: {
    state: "permission",
    label: "Permission Needed",
    description: "May I do this?",
    spriteFile: "permission.png",
  },
  success: {
    state: "success",
    label: "Done!",
    description: "Task completed successfully!",
    spriteFile: "success.png",
  },
  error: {
    state: "error",
    label: "Oops",
    description: "Something went wrong...",
    spriteFile: "error.png",
  },
};
