@vfarcic/dot-ai
Version:
AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance
112 lines • 2.67 kB
TypeScript
/**
* TypeScript types and interfaces for Project Setup Tool
* PRD #177 - Milestone 1: Core Tool Infrastructure
*
* Starting simple: Building iteratively based on actual workflow needs
*/
/**
* Workflow steps for project setup
*/
export type ProjectSetupStep = 'discover' | 'reportScan' | 'generateScope' | 'complete';
/**
* Scope configuration structure
*/
export interface ScopeConfig {
files: string[];
questions: Question[];
conditionalFiles?: Record<string, {
condition: string;
reason: string;
}>;
additionalInstructions?: string;
[key: string]: unknown;
}
/**
* Session data structure for maintaining workflow state
*/
export interface ProjectSetupSessionData {
currentStep: ProjectSetupStep;
allScopes?: Record<string, ScopeConfig>;
selectedScopes?: string[];
filesToCheck?: string[];
existingFiles?: string[];
}
/**
* Discovery stage response - Step 1 of workflow
*/
export interface DiscoveryResponse {
success: true;
sessionId: string;
filesToCheck: string[];
availableScopes: string[];
nextStep: 'reportScan';
instructions: string;
}
/**
* Report scan response - Step 2 of workflow
* Returns all questions for selected scope(s)
*/
export interface ReportScanResponse {
success: true;
sessionId: string;
nextStep: 'generateScope';
instructions: string;
scope: string;
questions: Question[];
filesToGenerate: string[];
}
/**
* Generated file content
*/
export interface GeneratedFile {
path: string;
content: string;
reason?: string;
}
/**
* Generate scope response - Step 3 of workflow
* Returns contents of ALL files in the scope at once
*/
export interface GenerateScopeResponse {
success: true;
sessionId: string;
scope: string;
files: GeneratedFile[];
excludedFiles?: string[];
instructions: string;
additionalInstructions?: string;
}
/**
* Error response structure
*/
export interface ErrorResponse {
success: false;
error: {
message: string;
details?: string;
};
}
/**
* Question definition for gathering project information
*/
export interface Question {
id: string;
question: string;
required: boolean;
}
/**
* Tool input parameters
*/
export interface ProjectSetupParams {
step?: ProjectSetupStep;
sessionId?: string;
existingFiles?: string[];
selectedScopes?: string[];
scope?: string;
answers?: Record<string, string>;
}
/**
* Tool response type
*/
export type ProjectSetupResponse = DiscoveryResponse | ReportScanResponse | GenerateScopeResponse | ErrorResponse;
//# sourceMappingURL=types.d.ts.map