import { ProjectState } from './project-state'; /** * Artifact Manager - Strict protocols for modular asset creation and tracking * * Ensures AI subagents follow systematic artifact management: * - Standardized artifact types and metadata * - Atomic creation and versioning * - Dependency tracking between artifacts * - State consistency and rollback capabilities */ export interface ArtifactMetadata { id: string; name: string; type: ArtifactType; version: string; creator: string; createdAt: string; updatedAt: string; dependencies: string[]; tags: string[]; status: ArtifactStatus; checksum: string; size: number; path: string; description: string; } export type ArtifactType = 'validation-report' | 'prd-document' | 'technical-architecture' | 'user-stories' | 'database-schema' | 'api-specification' | 'test-plan' | 'deployment-config' | 'project-roadmap' | 'concept-brief' | 'market-analysis' | 'competitive-analysis' | 'persona-definition' | 'wireframes' | 'style-guide'; export type ArtifactStatus = 'draft' | 'review' | 'approved' | 'deprecated' | 'archived'; export interface ArtifactCreationRequest { name: string; type: ArtifactType; content: string; creator: string; dependencies?: string[]; tags?: string[]; description?: string; } export interface ArtifactManagementProtocol { validateArtifactRequest(request: ArtifactCreationRequest): Promise; createArtifact(request: ArtifactCreationRequest): Promise; updateArtifact(id: string, content: string, creator: string): Promise; updateArtifactStatus(id: string, status: ArtifactStatus, creator: string): Promise; addDependency(artifactId: string, dependencyId: string): Promise; getDependencyTree(artifactId: string): Promise; archiveArtifact(id: string, reason: string): Promise; cleanupOrphanedArtifacts(): Promise; } export interface ValidationResult { valid: boolean; errors: string[]; warnings: string[]; } export declare class ArtifactManager implements ArtifactManagementProtocol { private projectState; private artifactsDir; private metadataFile; private artifactRegistry; constructor(projectState: ProjectState); private initializeRegistry; private saveRegistry; validateArtifactRequest(request: ArtifactCreationRequest): ValidationResult; private validateArtifactTypeSpecific; createArtifact(request: ArtifactCreationRequest): Promise; private buildArtifactDocument; updateArtifact(id: string, content: string, creator: string): Promise; updateArtifactStatus(id: string, status: ArtifactStatus, creator: string): Promise; addDependency(artifactId: string, dependencyId: string): Promise; getDependencyTree(artifactId: string): Promise; archiveArtifact(id: string, reason: string): Promise; cleanupOrphanedArtifacts(): Promise; private generateArtifactId; private generateChecksum; getArtifactById(id: string): ArtifactMetadata | undefined; getArtifactsByType(type: ArtifactType): ArtifactMetadata[]; getArtifactsByCreator(creator: string): ArtifactMetadata[]; getArtifactsByStatus(status: ArtifactStatus): ArtifactMetadata[]; getAllArtifacts(): ArtifactMetadata[]; }