feat(core): add reconstruction pipeline contracts
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
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>;
|
||||
}
|
||||
Reference in New Issue
Block a user