declare module 'agent-teams-controller' { export interface ControllerContextOptions { teamName: string; claudeDir?: string; } export interface ControllerTaskApi { createTask(flags: Record): unknown; getTask(taskId: string): unknown; getTaskComment(taskId: string, commentId: string): { comment: Record; task: { id: string; displayId: string; subject: string; status: string; owner: string | null; commentCount: number } }; listTasks(): unknown[]; listDeletedTasks(): unknown[]; resolveTaskId(taskRef: string): string; setTaskStatus(taskId: string, status: string, actor?: string): unknown; startTask(taskId: string, actor?: string): unknown; completeTask(taskId: string, actor?: string): unknown; softDeleteTask(taskId: string, actor?: string): unknown; restoreTask(taskId: string, actor?: string): unknown; setTaskOwner(taskId: string, owner: string | null): unknown; updateTaskFields(taskId: string, fields: { subject?: string; description?: string }): unknown; addTaskComment(taskId: string, flags: Record): unknown; attachTaskFile(taskId: string, flags: Record): unknown; attachCommentFile(taskId: string, commentId: string, flags: Record): unknown; addTaskAttachmentMeta(taskId: string, meta: Record): unknown; removeTaskAttachment(taskId: string, attachmentId: string): unknown; setNeedsClarification(taskId: string, value: string | null): unknown; linkTask(taskId: string, targetId: string, linkType: string): unknown; unlinkTask(taskId: string, targetId: string, linkType: string): unknown; memberBriefing(memberName: string): Promise; taskBriefing(memberName: string): Promise; } export interface ControllerKanbanApi { getKanbanState(): unknown; setKanbanColumn(taskId: string, column: string): unknown; clearKanban(taskId: string): unknown; listReviewers(): string[]; addReviewer(reviewer: string): string[]; removeReviewer(reviewer: string): string[]; updateColumnOrder(columnId: string, orderedTaskIds: string[]): unknown; } export interface ControllerReviewApi { requestReview(taskId: string, flags?: Record): unknown; approveReview(taskId: string, flags?: Record): unknown; requestChanges(taskId: string, flags?: Record): unknown; startReview(taskId: string, flags?: Record): unknown; } export interface ControllerMessageApi { appendSentMessage(flags: Record): unknown; sendMessage(flags: Record): unknown; lookupMessage(messageId: string): { message: Record }; } export interface ControllerProcessApi { registerProcess(flags: Record): unknown; stopProcess(flags: Record): unknown; unregisterProcess(flags: Record): unknown; listProcesses(): unknown[]; } export interface ControllerMaintenanceApi { reconcileArtifacts(flags?: Record): unknown; } export interface ControllerCrossTeamApi { sendCrossTeamMessage(flags: Record): unknown; listCrossTeamTargets(flags?: Record): unknown; getCrossTeamOutbox(): unknown; } export interface ControllerRuntimeApi { launchTeam(flags: Record): Promise; stopTeam(flags?: Record): Promise; getRuntimeState(flags?: Record): Promise; } export interface AgentTeamsController { tasks: ControllerTaskApi; kanban: ControllerKanbanApi; review: ControllerReviewApi; messages: ControllerMessageApi; processes: ControllerProcessApi; maintenance: ControllerMaintenanceApi; crossTeam: ControllerCrossTeamApi; runtime: ControllerRuntimeApi; } export function createController(options: ControllerContextOptions): AgentTeamsController; export interface AgentBlocksApi { AGENT_BLOCK_TAG: string; AGENT_BLOCK_OPEN: string; AGENT_BLOCK_CLOSE: string; AGENT_BLOCK_RE: RegExp; stripAgentBlocks(text: string): string; wrapAgentBlock(text: string): string; } export const agentBlocks: AgentBlocksApi; /** Context-free protocol text builders, shared across lead and member prompts. */ export interface ProtocolsApi { buildActionModeProtocolText(delegateDescription: string): string; MEMBER_DELEGATE_DESCRIPTION: string; buildProcessProtocolText(teamName: string): string; } export const protocols: ProtocolsApi; export type AgentTeamsMcpToolGroupId = | 'task' | 'kanban' | 'review' | 'message' | 'process' | 'runtime' | 'crossTeam'; export interface AgentTeamsMcpToolGroup { id: AgentTeamsMcpToolGroupId; teammateOperational: boolean; toolNames: readonly string[]; } export const AGENT_TEAMS_TASK_TOOL_NAMES: readonly string[]; export const AGENT_TEAMS_REVIEW_TOOL_NAMES: readonly string[]; export const AGENT_TEAMS_MESSAGE_TOOL_NAMES: readonly string[]; export const AGENT_TEAMS_CROSS_TEAM_TOOL_NAMES: readonly string[]; export const AGENT_TEAMS_PROCESS_TOOL_NAMES: readonly string[]; export const AGENT_TEAMS_KANBAN_TOOL_NAMES: readonly string[]; export const AGENT_TEAMS_RUNTIME_TOOL_NAMES: readonly string[]; export const AGENT_TEAMS_MCP_TOOL_GROUPS: readonly AgentTeamsMcpToolGroup[]; export const AGENT_TEAMS_REGISTERED_TOOL_NAMES: readonly string[]; export const AGENT_TEAMS_TEAMMATE_OPERATIONAL_TOOL_NAMES: readonly string[]; export const AGENT_TEAMS_NAMESPACED_TEAMMATE_OPERATIONAL_TOOL_NAMES: readonly string[]; }