@typescript-eda/domain
Version:
Core domain primitives for event-driven architecture
230 lines • 6.28 kB
TypeScript
/**
* @fileoverview Semantic automation contract-related events
* @author Semantest Team
* @module domain/semantic-automation/events/semantest-contract-events
*/
import { Event } from '../../event';
import { SemanTestContract } from '../semantest-contract.entity';
/**
* Contract discovered event payload
*/
export interface ContractDiscoveredPayload {
readonly contract: SemanTestContract;
readonly domain: string;
readonly discoveryMethod: 'automatic' | 'manual' | 'ai-assisted';
readonly confidence: number;
readonly timestamp: Date;
readonly discoveryContext?: {
readonly url?: string;
readonly userAgent?: string;
readonly discoveredBy?: string;
};
}
/**
* Contract validated event payload
*/
export interface ContractValidatedPayload {
readonly contractId: string;
readonly domain: string;
readonly validationResult: {
readonly valid: boolean;
readonly errors: string[];
readonly warnings: string[];
readonly score: number;
};
readonly validationType: 'structure' | 'execution' | 'cross-browser' | 'accessibility';
readonly timestamp: Date;
readonly validationContext?: {
readonly browser?: string;
readonly environment?: string;
readonly performanceMetrics?: Record<string, number>;
};
}
/**
* Contract executed event payload
*/
export interface ContractExecutedPayload {
readonly contractId: string;
readonly domain: string;
readonly capabilityName: string;
readonly parameters: Record<string, any>;
readonly result: {
readonly success: boolean;
readonly data?: any;
readonly error?: string;
readonly executionTime: number;
};
readonly timestamp: Date;
readonly executionContext?: {
readonly correlationId?: string;
readonly sessionId?: string;
readonly clientId?: string;
readonly browser?: string;
};
}
/**
* Contract updated event payload
*/
export interface ContractUpdatedPayload {
readonly contractId: string;
readonly domain: string;
readonly previousVersion: string;
readonly newVersion: string;
readonly changes: {
readonly type: 'capability_added' | 'capability_removed' | 'capability_modified' | 'metadata_updated';
readonly details: Record<string, any>;
}[];
readonly updatedBy: string;
readonly timestamp: Date;
}
/**
* Contract learning updated event payload
*/
export interface ContractLearningUpdatedPayload {
readonly contractId: string;
readonly domain: string;
readonly learningType: 'success_pattern' | 'failure_pattern' | 'performance_optimization' | 'selector_improvement';
readonly improvement: {
readonly description: string;
readonly confidence: number;
readonly impact: 'low' | 'medium' | 'high';
readonly appliedAutomatically: boolean;
};
readonly timestamp: Date;
readonly learningContext?: {
readonly dataPoints: number;
readonly learningAlgorithm?: string;
readonly trainingPeriod?: string;
};
}
/**
* Event fired when a new automation contract is discovered
*/
export declare class ContractDiscoveredEvent extends Event {
constructor(payload: ContractDiscoveredPayload);
/**
* Get the discovered contract
*/
getContract(): SemanTestContract;
/**
* Get the domain where contract was discovered
*/
getDomain(): string;
/**
* Get discovery method
*/
getDiscoveryMethod(): 'automatic' | 'manual' | 'ai-assisted';
/**
* Get discovery confidence score
*/
getConfidence(): number;
/**
* Get discovery timestamp
*/
getTimestamp(): Date;
}
/**
* Event fired when a contract is validated
*/
export declare class ContractValidatedEvent extends Event {
constructor(payload: ContractValidatedPayload);
/**
* Get contract ID
*/
getContractId(): string;
/**
* Get validation result
*/
getValidationResult(): ContractValidatedPayload['validationResult'];
/**
* Check if validation passed
*/
isValid(): boolean;
/**
* Get validation type
*/
getValidationType(): ContractValidatedPayload['validationType'];
}
/**
* Event fired when a contract capability is executed
*/
export declare class ContractExecutedEvent extends Event {
constructor(payload: ContractExecutedPayload);
/**
* Get contract ID
*/
getContractId(): string;
/**
* Get executed capability name
*/
getCapabilityName(): string;
/**
* Get execution parameters
*/
getParameters(): Record<string, any>;
/**
* Get execution result
*/
getResult(): ContractExecutedPayload['result'];
/**
* Check if execution was successful
*/
isSuccessful(): boolean;
/**
* Get execution time in milliseconds
*/
getExecutionTime(): number;
}
/**
* Event fired when a contract is updated
*/
export declare class ContractUpdatedEvent extends Event {
constructor(payload: ContractUpdatedPayload);
/**
* Get contract ID
*/
getContractId(): string;
/**
* Get previous version
*/
getPreviousVersion(): string;
/**
* Get new version
*/
getNewVersion(): string;
/**
* Get list of changes
*/
getChanges(): ContractUpdatedPayload['changes'];
/**
* Get who updated the contract
*/
getUpdatedBy(): string;
}
/**
* Event fired when contract learning is updated through AI/ML
*/
export declare class ContractLearningUpdatedEvent extends Event {
constructor(payload: ContractLearningUpdatedPayload);
/**
* Get contract ID
*/
getContractId(): string;
/**
* Get learning type
*/
getLearningType(): ContractLearningUpdatedPayload['learningType'];
/**
* Get improvement details
*/
getImprovement(): ContractLearningUpdatedPayload['improvement'];
/**
* Check if improvement was applied automatically
*/
wasAppliedAutomatically(): boolean;
/**
* Get improvement confidence score
*/
getConfidence(): number;
}
//# sourceMappingURL=semantest-contract-events.d.ts.map