/** * Agentic QE v3 - Requirements Validation Domain Plugin * Integrates the requirements validation domain into the kernel */ import { DomainName, DomainEvent, Result } from '../../shared/types/index.js'; import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces.js'; import { BaseDomainPlugin } from '../domain-interface.js'; import { IRequirementsValidationService, ITestabilityScoringService, IBDDGenerationService, Requirement, ValidationError, ValidationCriteria, AmbiguityReport, DependencyGraph, TestabilityScore, BDDScenario, RequirementAnalysis, TestArtifacts, SprintValidation } from './interfaces.js'; import { RequirementsValidationCoordinator, CoordinatorConfig, WorkflowStatus } from './coordinator.js'; import { RequirementsValidatorConfig } from './services/requirements-validator.js'; import { BDDScenarioWriterConfig } from './services/bdd-scenario-writer.js'; import { TestabilityScorerConfig } from './services/testability-scorer.js'; export interface RequirementsValidationPluginConfig { coordinator?: Partial; validator?: Partial; bddWriter?: Partial; testabilityScorer?: Partial; } /** * Public API for the requirements validation domain */ export interface RequirementsValidationAPI { validate(requirement: Requirement): Promise>; validateAgainstCriteria(requirement: Requirement, criteria: ValidationCriteria): Promise>; detectAmbiguity(requirement: Requirement): Promise>; analyzeDependencies(requirements: Requirement[]): Promise>; scoreRequirement(requirement: Requirement): Promise>; scoreRequirements(requirements: Requirement[]): Promise>>; suggestImprovements(requirement: Requirement, score: TestabilityScore): Promise>; meetsThreshold(score: TestabilityScore, threshold: number): boolean; generateScenarios(requirement: Requirement): Promise>; generateScenariosWithExamples(requirement: Requirement, exampleCount: number): Promise>; toGherkin(scenarios: BDDScenario[]): string; parseGherkin(gherkinText: string): Result; analyzeRequirement(requirementId: string): Promise>; generateTestArtifacts(requirementId: string): Promise>; validateSprintRequirements(requirementIds: string[]): Promise>; } /** * Extended API with internal access */ export interface RequirementsValidationExtendedAPI extends RequirementsValidationAPI { /** Get the internal coordinator */ getCoordinator(): RequirementsValidationCoordinator; /** Get the validator service */ getValidator(): IRequirementsValidationService; /** Get the BDD writer service */ getBDDWriter(): IBDDGenerationService; /** Get the testability scorer service */ getTestabilityScorer(): ITestabilityScoringService; /** Get active workflows */ getActiveWorkflows(): WorkflowStatus[]; } /** * Requirements Validation Domain Plugin * Provides pre-development requirements analysis capabilities */ export declare class RequirementsValidationPlugin extends BaseDomainPlugin { private readonly agentCoordinator; private coordinator; private validator; private bddWriter; private testabilityScorer; private readonly pluginConfig; constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: RequirementsValidationPluginConfig); get name(): DomainName; get version(): string; get dependencies(): DomainName[]; /** * Get the domain's public API */ getAPI(): T; protected onInitialize(): Promise; protected onDispose(): Promise; protected subscribeToEvents(): void; protected onEvent(event: DomainEvent): Promise; private validate; private validateAgainstCriteria; private detectAmbiguity; private analyzeDependencies; private scoreRequirement; private scoreRequirements; private suggestImprovements; private meetsThreshold; private generateScenarios; private generateScenariosWithExamples; private toGherkin; private parseGherkin; private analyzeRequirement; private generateTestArtifacts; private validateSprintRequirements; private handleTestGenerated; private handleImpactAnalysis; private ensureInitialized; private handleError; private trackSuccessfulOperation; private trackFailedOperation; } /** * Factory function to create a RequirementsValidationPlugin */ export declare function createRequirementsValidationPlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: RequirementsValidationPluginConfig): RequirementsValidationPlugin; //# sourceMappingURL=plugin.d.ts.map