import type { AgentConfig } from "@opencode-ai/sdk"; export type AgentFactory = (model?: string) => AgentConfig; /** * Agent category for grouping in Sisyphus prompt sections */ export type AgentCategory = "exploration" | "specialist" | "advisor" | "utility" | "governance"; /** * Cost classification for Tool Selection table */ export type AgentCost = "FREE" | "CHEAP" | "EXPENSIVE"; /** * Delegation trigger for Sisyphus prompt's Delegation Table */ export interface DelegationTrigger { /** Domain of work (e.g., "Frontend UI/UX") */ domain: string; /** When to delegate (e.g., "Visual changes only...") */ trigger: string; } /** * Metadata for generating Sisyphus prompt sections dynamically * This allows adding/removing agents without manually updating the Sisyphus prompt */ export interface AgentPromptMetadata { /** Category for grouping in prompt sections */ category: AgentCategory; /** Cost classification for Tool Selection table */ cost: AgentCost; /** Domain triggers for Delegation Table */ triggers: DelegationTrigger[]; /** When to use this agent (for detailed sections) */ useWhen?: string[]; /** When NOT to use this agent */ avoidWhen?: string[]; /** Optional dedicated prompt section (markdown) - for agents like Oracle that have special sections */ dedicatedSection?: string; /** Nickname/alias used in prompt (e.g., "Oracle" instead of "oracle") */ promptAlias?: string; /** Key triggers that should appear in Phase 0 (e.g., "External library mentioned → fire librarian") */ keyTrigger?: string; } export declare function isGptModel(model: string): boolean; export type BuiltinAgentName = "Sisyphus" | "oracle" | "librarian" | "explore" | "frontend-ui-ux-engineer" | "document-writer" | "multimodal-looker" | "knowledge-curator" | "debugger" | "devops-engineer" | "project-manager" | "test-engineer" | "code-reviewer" | "incident-commander" | "security-reviewer" | "code-indexer" | "performance-analyst" | "api-designer" | "dba" | "estimator"; export type OverridableAgentName = "build" | BuiltinAgentName; export type AgentName = BuiltinAgentName; export type AgentOverrideConfig = Partial & { prompt_append?: string; }; export type AgentOverrides = Partial>;