UNPKG

@morodomi/ait3

Version:

AIT³ Development Platform - AI + Ticket + Test + Tool driven development methodology

54 lines (53 loc) 1.84 kB
import { validateTicketsDirectory, readConfig, writeConfig, buildTicketNotice } from '../common/config-utils.js'; export async function setupTicketLocal(options, services, context) { // Check if .tickets directory exists const dirError = await validateTicketsDirectory(context.cwd); if (dirError) return dirError; // Read existing configuration const existingConfig = await readConfig(context.cwd); if (Object.keys(existingConfig).length === 0) { return { success: false, message: 'Failed to read configuration', data: { details: 'Configuration file may be missing or invalid' } }; } // Check if already configured if (existingConfig.backend === 'local' && !options.force) { return { success: true, message: 'Already configured for local backend', data: { details: 'Use --force to reconfigure' } }; } // Check for existing GitHub issues let ticketNotice = ''; if (existingConfig.backend === 'github' && services.ticketService) { try { const tickets = await services.ticketService.listTickets(); ticketNotice = buildTicketNotice(tickets?.length || 0, 'github'); } catch { // Ignore errors when checking tickets } } // Update configuration to local const newConfig = { ...existingConfig, backend: 'local' // Preserve github config for potential switch back }; await writeConfig(context.cwd, newConfig); return { success: true, message: 'Local ticket backend configured successfully', data: { details: `Tickets will be stored in: .tickets/${ticketNotice}` } }; }