/** * Init Command Types * * Type definitions for the init command including options, * API responses, and selection interfaces. */ /** * Command line options for init command */ export interface InitOptions { /** Project ID for non-interactive mode */ project?: string; /** Specification ID for non-interactive mode, or true when --spec is used without an ID */ spec?: string | true; /** Output format preference */ format?: 'json' | 'toon'; /** Force overwrite existing config files */ force?: boolean; /** Show current configuration settings */ show?: boolean; /** Skip all interactive prompts, use defaults */ yes?: boolean; /** Switch active specification (quick switch) */ specOnly?: boolean; } /** * Agent Teams configuration collected during init */ export interface AgentTeamsInitOptions { /** Whether to configure Agent Teams */ enabled: boolean; /** Execution strategy */ strategy: 'auto' | 'single' | 'parallel' | 'phased'; /** Max workers per team (1-10) */ maxWorkersPerTeam: number; /** Max parallel teams (1-5) */ maxParallelTeams: number; /** Branch prefix for ticket branches */ branchPrefix: string; } /** * Strategy choices for Agent Teams init prompt */ export declare const STRATEGY_CHOICES: ({ name: string; value: "auto"; } | { name: string; value: "single"; } | { name: string; value: "parallel"; } | { name: string; value: "phased"; })[]; /** * Skill template files to scaffold */ export declare const SKILL_TEMPLATE_FILES: readonly ["specforge-orchestrator.md", "specforge-worker.md", "specforge-validator.md", "specforge-conventions.md"]; /** * Project returned from list_projects API call */ export interface Project { /** Unique project identifier */ id: string; /** Human-readable project name */ name: string; /** Optional description */ description?: string; /** Number of specifications in this project */ specCount?: number; /** Creation timestamp */ createdAt?: string; /** Last update timestamp */ updatedAt?: string; } /** * Specification returned from list_specifications API call */ export interface Specification { /** Unique specification identifier */ id: string; /** Specification title */ title: string; /** Current status (draft, ready, in_progress, completed) */ status: SpecificationStatus; /** Number of tickets in this specification */ ticketCount?: number; /** Number of completed tickets */ completedTicketCount?: number; /** Optional description */ description?: string; /** Creation timestamp */ createdAt?: string; /** Last update timestamp */ updatedAt?: string; } /** * Specification status values */ export type SpecificationStatus = 'draft' | 'ready' | 'in_progress' | 'completed' | 'archived'; /** * API response for list_projects call */ export interface ListProjectsResponse { /** List of user's projects */ projects: Project[]; /** Total count (for pagination) */ total?: number; } /** * API response for list_specifications call */ export interface ListSpecificationsResponse { /** List of specifications for the project */ specifications: Specification[]; /** Total count (for pagination) */ total?: number; } /** * User's selections during init flow */ export interface InitSelections { /** Selected project */ project: Project; /** Selected specification (optional) */ specification?: Specification; /** Selected output format */ format: 'json' | 'toon'; } /** * Result of checking existing config files */ export interface ExistingFilesCheck { /** Whether .mcp.json exists */ mcpConfig: boolean; /** Whether .specforge.json exists */ projectConfig: boolean; /** Whether any file exists */ anyExists: boolean; } /** * Inquirer choice format for project selection */ export interface ProjectChoice { /** Display name */ name: string; /** Project ID value */ value: string; /** Short name (optional) */ short?: string; } /** * Inquirer choice format for specification selection */ export interface SpecificationChoice { /** Display name */ name: string; /** Specification ID value (undefined for "none" option) */ value: string | undefined; /** Short name (optional) */ short?: string; } /** * Inquirer choice format for format selection */ export interface FormatChoice { /** Display name */ name: string; /** Format value */ value: 'json' | 'toon'; } /** * Format display names with descriptions */ export declare const FORMAT_CHOICES: FormatChoice[]; /** * Default format selection */ export declare const DEFAULT_FORMAT: 'json' | 'toon'; //# sourceMappingURL=init.types.d.ts.map