import type { GoalState } from './goal-state.js'; export type GoalCommandAction = 'status' | 'set' | 'pause' | 'resume' | 'complete' | 'block' | 'clear'; export type GoalCommandEvent = 'goal_status' | 'goal_set' | 'goal_paused' | 'goal_resumed' | 'goal_completed' | 'goal_blocked' | 'goal_cleared'; export interface ParsedGoalCommand { handled: boolean; action?: GoalCommandAction; objective?: string; reason?: string; error?: string; } export interface GoalCommandResult { handled: boolean; action?: GoalCommandAction; event?: GoalCommandEvent; goal?: GoalState; replaced?: boolean; message: string; error?: string; /** Set to true when /goal set was rejected because the objective was too vague. */ vague?: boolean; /** The raw objective string the user passed (preserved so the caller can reference it). */ objective?: string; } export interface GoalCommandAgent { getGoal(sessionKey: string): Promise; setGoal(sessionKey: string, objective: string): Promise; pauseGoal(sessionKey: string, reason?: string): Promise; resumeGoal(sessionKey: string): Promise; completeGoal(sessionKey: string, reason?: string): Promise; blockGoal(sessionKey: string, reason?: string): Promise; clearGoal(sessionKey: string): Promise; } export interface GoalCommandOptions { locale?: string; } export interface HandleGoalCommandParams extends GoalCommandOptions { agent: GoalCommandAgent; sessionKey: string; input: string; } /** * If the objective is too vague to run against autonomously, return a * clarification message; otherwise return undefined and let the caller set * the goal. The bar is deliberately high (only flags vague-verb + pronoun * forms) so legitimate short or CJK goals are not blocked. */ export declare function assessGoalVagueness(objective: string): string | undefined; export declare function isGoalCommand(input: string): boolean; export declare function parseGoalCommand(input: string): ParsedGoalCommand; export declare function formatGoalCommandResult(result: GoalCommandResult, locale?: string): string; export declare function executeGoalCommand(agent: GoalCommandAgent, sessionKey: string, parsedCommand: ParsedGoalCommand, options?: GoalCommandOptions): Promise; export declare function handleGoalCommand(params: HandleGoalCommandParams): Promise; //# sourceMappingURL=goal-command.d.ts.map