93 lines
1.9 KiB
TypeScript
93 lines
1.9 KiB
TypeScript
import type {
|
|
CaptureProfile,
|
|
EvidenceRecord,
|
|
FidelityVector,
|
|
ReconstructionSpec,
|
|
} from "@siax/c0py-types";
|
|
|
|
export interface TargetDescriptor {
|
|
id: string;
|
|
url: string;
|
|
allowedOrigins: string[];
|
|
mode: ReconstructionSpec["mode"];
|
|
}
|
|
|
|
export interface DiscoveryResult {
|
|
targetId: string;
|
|
routes: string[];
|
|
candidateWorkflows: string[];
|
|
evidence: EvidenceRecord[];
|
|
}
|
|
|
|
export interface CaptureRequest {
|
|
target: TargetDescriptor;
|
|
profile: CaptureProfile;
|
|
routes: string[];
|
|
}
|
|
|
|
export interface CaptureResult {
|
|
targetId: string;
|
|
profileId: string;
|
|
evidence: EvidenceRecord[];
|
|
warnings: PipelineFailure[];
|
|
}
|
|
|
|
export interface VerificationRequest {
|
|
spec: ReconstructionSpec;
|
|
sourceEvidence: EvidenceRecord[];
|
|
implementationUrl: string;
|
|
}
|
|
|
|
export interface VerificationResult {
|
|
specId: string;
|
|
fidelity: FidelityVector;
|
|
failures: PipelineFailure[];
|
|
passed: boolean;
|
|
}
|
|
|
|
export type FailureKind =
|
|
| "CaptureFailure"
|
|
| "DiscoveryFailure"
|
|
| "EvidenceGap"
|
|
| "ReconstructionFailure"
|
|
| "VerificationFailure"
|
|
| "AuthorizationBoundary"
|
|
| "UnsupportedSurface"
|
|
| "DynamicContentVariance"
|
|
| "NetworkReplayLimited"
|
|
| "AuthSessionMissing";
|
|
|
|
export interface PipelineFailure {
|
|
id: string;
|
|
kind: FailureKind;
|
|
message: string;
|
|
route?: string;
|
|
evidenceIds?: string[];
|
|
retryable: boolean;
|
|
details?: Record<string, unknown>;
|
|
}
|
|
|
|
export interface DiscoveryAdapter {
|
|
id: string;
|
|
discover(target: TargetDescriptor, profile: CaptureProfile): Promise<DiscoveryResult>;
|
|
}
|
|
|
|
export interface CaptureAdapter {
|
|
id: string;
|
|
capture(request: CaptureRequest): Promise<CaptureResult>;
|
|
}
|
|
|
|
export interface ReconstructionAdapter {
|
|
id: string;
|
|
reconstruct(spec: ReconstructionSpec): Promise<{
|
|
artifactRef: string;
|
|
previewUrl?: string;
|
|
commitRef?: string;
|
|
}>;
|
|
}
|
|
|
|
export interface VerificationAdapter {
|
|
id: string;
|
|
verify(request: VerificationRequest): Promise<VerificationResult>;
|
|
}
|