@morodomi/ait3
Version:
AIT³ Development Platform - AI + Ticket + Test + Tool driven development methodology
111 lines (110 loc) • 2.65 kB
TypeScript
import type { TicketService } from '../services/interfaces/TicketService.js';
import type { GitService } from '../services/interfaces/GitService.js';
import type { ProjectAnalyzer } from '../services/interfaces/ProjectAnalyzer.js';
export interface Ticket {
id: string;
title: string;
status: 'todo' | 'doing' | 'done';
priority: 'low' | 'medium' | 'high' | 'critical';
created: string;
updated: string;
started?: string;
completed?: string;
assignee?: string;
labels: string[];
description?: string;
location?: {
type: 'local' | 'github';
path?: string;
url?: string;
apiUrl?: string;
};
}
export interface CreateTicketOptions {
priority?: 'low' | 'medium' | 'high' | 'critical';
assignee?: string;
labels?: string[];
status?: 'todo' | 'doing' | 'done';
description?: string;
acceptanceCriteria?: string[];
technicalRequirements?: string[];
}
export interface TicketConfig {
backend: string;
path: string;
numbering: {
format: string;
increment: number;
next: number;
};
templates: Record<string, string>;
labels: {
priority: string[];
type: string[];
status: string[];
};
}
export interface CLIResult {
success: boolean;
message: string;
data?: unknown;
exitCode?: number;
}
export interface CreateTicketArgs {
title: string;
priority?: 'low' | 'medium' | 'high' | 'critical';
assignee?: string;
labels?: string[];
}
export interface Services {
ticketService: TicketService;
gitService?: GitService;
projectAnalyzer?: ProjectAnalyzer;
}
export interface ListTicketsArgs {
status?: 'todo' | 'doing' | 'done';
priority?: 'low' | 'medium' | 'high' | 'critical';
assignee?: string;
}
export interface ShowTicketArgs {
id: string;
}
export interface StartTicketArgs {
id: string;
}
export interface CompleteTicketArgs {
id: string;
}
export interface UndoTicketArgs {
id: string;
dryRun?: boolean;
}
export interface DeleteTicketArgs {
id: string;
dryRun?: boolean;
}
export interface MigrateArgs {
from: 'local' | 'github';
to: 'local' | 'github';
owner?: string;
repo?: string;
validate?: boolean;
dryRun?: boolean;
tickets?: string;
}
export interface BackendConfig {
backend: 'local' | 'github';
local?: {
path: string;
};
github?: {
owner: string;
repo: string;
useGhCli?: boolean;
labels?: {
todo?: string;
doing?: string;
done?: string;
};
};
}