/** * `cockpit_queue` MCP tool handler. * * Wraps `runQueue` with the confirmation prompt short-circuited to `true` * (agents don't type "y" — the whole point of the MCP transport is to * eliminate that class of round). Returns the structured `queued`/`skipped` * arrays derived from `QueueResult.rows`. */ import type { CommandRunner, GhWrapper } from '@generacy-ai/cockpit'; import { type QueueCommandDeps } from '../../queue.js'; import { type ToolResult } from '../errors.js'; import { type EpicRefInput, type IssueRefInput } from '../schemas.js'; export interface CockpitQueuePhaseInput { epic: EpicRefInput; phase: string; } export interface CockpitQueueIssueInputShape { issue: IssueRefInput; } export type CockpitQueueInput = CockpitQueuePhaseInput | CockpitQueueIssueInputShape; export interface CockpitQueueData { epic: { owner: string; repo: string; number: number; }; phase: string; queued: Array<{ repo: string; number: number; url: string; }>; skipped: Array<{ repo: string; number: number; reason: string; }>; } export interface CockpitQueueIssueData { issue: { owner: string; repo: string; number: number; }; outcome: 'queued' | 'skipped'; reason?: 'closed' | 'already-labeled' | 'not-found'; workflowLabel: string; assignee: string; url: string; } export interface CockpitQueueDeps { runner?: CommandRunner; gh?: GhWrapper; cockpitGh?: GhWrapper; loadConfig?: QueueCommandDeps['loadConfig']; fetchPlan?: QueueCommandDeps['fetchPlan']; } export declare function cockpitQueue(input: CockpitQueueInput, deps?: CockpitQueueDeps): Promise>; //# sourceMappingURL=cockpit_queue.d.ts.map