import type { CentralTaskRecord, CentralTaskRepository, CentralTaskLaunchDecision } from '../../infra/task/centralStateRepository.js'; import type { WebChatSessionDescription, WebTaskActionClaim, WebTaskActionContext, WebTaskActionKind } from './chat.js'; export declare const CENTRAL_TASK_ACTIONS: readonly ["diff", "instruct", "create_pr", "sync", "pull", "try", "merge", "delete", "requeue", "retry", "force_fail"]; export type CentralTaskAction = typeof CENTRAL_TASK_ACTIONS[number]; export type CentralTaskDisplayStatus = 'pending' | 'running' | 'failed' | 'exceeded' | 'completed' | 'pr_failed'; export interface CentralTaskActionResult { readonly action: CentralTaskAction; readonly taskId: string; readonly status: 'completed' | 'accepted' | 'conversation'; readonly taskStatus?: CentralTaskDisplayStatus; readonly pid?: number; readonly disposition?: 'started' | 'reused'; readonly mode?: 'run' | 'watch'; readonly diff?: string; readonly prUrl?: string; readonly chatSession?: WebChatSessionDescription; } export declare class CentralTaskActionError extends Error { readonly code = "CENTRAL_TASK_ACTION_INVALID"; readonly status: number; constructor(message: string, status?: number); } export declare function parseCentralTaskAction(value: string): CentralTaskAction; export declare function projectCentralTaskStatus(task: Pick): CentralTaskDisplayStatus; /** Compute the server-authoritative action matrix for one central task. */ export declare function getCentralTaskActions(task: CentralTaskRecord): readonly CentralTaskAction[]; export declare function centralTaskActionMap(task: CentralTaskRecord): Readonly>; export declare function buildTaskActionConversationContext(task: CentralTaskRecord, action: WebTaskActionKind): WebTaskActionContext; /** Add bounded central run/worktree data to the shared task-action plan. */ export declare function enrichTaskActionConversationContext(task: CentralTaskRecord, action: WebTaskActionKind, projectDirectory: string, repository: CentralTaskRepository): Promise; export declare function requireActionInput(input: unknown): string; export interface ExecuteCentralTaskActionOptions { readonly globalConfigDirectory: string; readonly projectDirectory: string; readonly projectId?: string; readonly repository: CentralTaskRepository; readonly task: CentralTaskRecord; readonly action: CentralTaskAction; readonly input?: string; readonly conversationId?: string; /** Process-local server claim created by the task-action /go endpoint. */ readonly taskActionClaim?: WebTaskActionClaim; readonly spawnDecision: (decision: CentralTaskLaunchDecision, repository: CentralTaskRepository) => Promise<{ readonly pid: number; readonly disposition: 'started' | 'reused'; readonly mode: 'run' | 'watch'; }>; } export declare function executeCentralTaskAction(options: ExecuteCentralTaskActionOptions): Promise; //# sourceMappingURL=task-actions.d.ts.map