/** * API Response Types for Merlin */ /** Repository info from /api/repos */ export interface Repository { id: string; name: string; fullName: string; url: string; branch: string; status: 'pending' | 'analyzing' | 'completed' | 'failed'; lastAnalyzedAt?: string; createdAt: string; } /** File info from manifest */ export interface FileInfo { path: string; purpose: string; exports: Array<{ name: string; type: string; }>; modifyFor: string[]; layer: string; } /** Convention from manifest */ export interface Convention { category: string; rule: string; example: string; exampleFiles: string[]; enforcement: string; } /** Anti-pattern from manifest */ export interface AntiPattern { pattern: string; reason: string; instead: string; severity: 'error' | 'warning'; } /** Change guide step */ export interface ChangeStep { order: number; file: string; action: string; description: string; pattern: string; } /** Change guide from manifest */ export interface ChangeGuide { task: string; description: string; steps: ChangeStep[]; affectedFiles: string[]; conventions: string[]; } /** Entry point from manifest */ export interface EntryPoint { name: string; path: string; purpose: string; useCase: string; relatedFiles: string[]; } /** Product asset - non-code file that defines product behavior */ export interface ProductAsset { type: 'skill' | 'agent' | 'command' | 'readme' | 'claude-md' | 'config' | 'template'; name: string; path: string; description: string; category?: string; isShippedAsset?: boolean; parentPackage?: string; } /** Shipped assets folder - what users get when they install */ export interface ShippedAssetsFolder { package: string; path: string; assets: ProductAsset[]; installCommand?: string; } /** Discovered feature from product assets */ export interface DiscoveredFeature { name: string; description: string; implementedBy: string[]; } /** Full agent manifest response */ export interface AgentManifest { projectName: string; description: string; techStack: string[]; architecture: string; entryPoints: EntryPoint[]; fileIndex: FileInfo[]; conventions: Convention[]; antiPatterns: AntiPattern[]; changeGuides: ChangeGuide[]; modules: Array<{ name: string; path: string; description: string; }>; /** Product assets - skills, agents, commands, etc. */ productAssets?: ProductAsset[]; /** Shipped assets - what users get when they install */ shippedAssets?: ShippedAssetsFolder[]; /** Features discovered from product assets */ discoveredFeatures?: DiscoveredFeature[]; /** Vocabulary for synonym search */ vocabulary?: Record; } /** Search result */ export interface SearchResult { type: 'SERVICE' | 'MODULE' | 'TERM' | 'FILE'; name: string; description: string; path?: string; } /** Conventions response */ export interface ConventionsResponse { conventions: Convention[]; antiPatterns: AntiPattern[]; changeGuides: ChangeGuide[]; } /** Files response */ export interface FilesResponse { count: number; files: FileInfo[]; } //# sourceMappingURL=types.d.ts.map