/** * Research system types for ticket-mate */ /** * Research request status */ export type ResearchStatus = "pending" | "in_progress" | "done" | "failed"; /** * Research depth */ export type ResearchDepth = "standard" | "deep" | "comprehensive"; /** * Research request priority */ export type ResearchPriority = "low" | "medium" | "high" | "critical"; /** * Research request structure */ export interface ResearchRequest { id: string; slug: string; title: string; status: ResearchStatus; priority: ResearchPriority; createdAt: string; createdBy: string; topic: string; prompt: string; objectives: string[]; depth: ResearchDepth; constraints: string[]; outputs: { resultMarkdown: string; cursorInstructions: string; fieldsUpdate: string; }; jira?: { createTicket: boolean; issueKey?: string | null; summary: string; labels: string[]; epicKey?: string | null; }; cursor?: { autoStart: boolean; label: string; }; } /** * Research configuration */ export interface ResearchConfig { enabled: boolean; defaultStrategy: string; requestSchemaVersion: number; requestFilenamePattern: string; resultFilenamePattern: string; instructionsFilenamePattern: string; fieldsFilename: string; defaultTemplates: { request: string; result: string; instructions: string; }; jira?: { createTicketForResearch: boolean; projectKey: string; issueType: string; summaryPrefix: string; label: string; component?: string; linkResearchToEpic: boolean; }; cursor?: { autoGenerateInstructions: boolean; attachResearchSummary: boolean; labelForAutoStart: string; }; } /** * Project fields structure */ export interface ProjectFields { version: number; lastUpdated: string; projectKey: string; domains: Record; } /** * Domain-specific fields */ export interface DomainFields { keyCompetitors?: Competitor[]; featureCategories?: string[]; mustHaveFeatures?: string[]; niceToHaveFeatures?: string[]; differentiatorsForJiraMate?: string[]; } /** * Competitor information */ export interface Competitor { name: string; slug: string; positioning: string; notableFeatures: string[]; pricing?: string; website?: string; strengths?: string[]; weaknesses?: string[]; } /** * Extended ticket-mate configuration with research paths */ export interface JiraMateConfigPaths { researchDir: string; researchRequestsDir: string; researchResultsDir: string; researchInstructionsDir: string; researchFieldsDir: string; } /** * Research workflow configuration */ export interface ResearchWorkflowConfig { key: string; name: string; description: string; direction: "research-to-files" | "research-to-cursor"; enabled: boolean; source: { type: "json-requests" | "research-results"; dir: string; statusField?: string; glob?: string; }; research?: { strategy: string; fieldsToUse: string[]; }; output?: { resultsDir: string; resultFilenamePattern: string; fieldsDir: string; fieldsFilename: string; }; cursor?: { instructionsDir: string; instructionsFilenamePattern: string; template: string; autoLinkToTickets: boolean; }; jira?: { useGlobalResearchConfig: boolean; addCommentWithCursorPath?: boolean; }; } //# sourceMappingURL=types.d.ts.map