Files
mdpolish/reviewer/src/shared/api.ts
T

116 lines
2.4 KiB
TypeScript

export type RunStatus = "success" | "failed" | "unstable";
export interface ModifierSummary {
modifier_position: number;
modifier_id: string;
modifier_version: string;
parameters: unknown;
applicability: string;
change_count: number;
stage_available: boolean;
}
export interface DocumentSummary {
document_id: string;
source_label: string;
status: RunStatus;
current_kind: "success_output" | "partial_output";
input_sha256: string;
current_sha256: string;
modifier_count: number;
completed_stage_count: number;
change_count: number;
error_count: number;
residual_proposal_count: number;
}
export interface CollectionSummaryResponse {
schema_version: 1;
collection: {
label: string;
status: RunStatus;
};
documents: DocumentSummary[];
summary: {
document_count: number;
success_count: number;
failed_count: number;
unstable_count: number;
change_count: number;
};
}
export interface ChangeDetail {
modifier_position: number;
modifier_id: string;
modifier_version: string;
proposal_index: number;
edit_index: number;
reason: string;
location: {
line: number;
column: number;
};
span: {
start: number;
end: number;
};
editor_range: {
start: number;
end: number;
};
before: string;
after: string;
before_sha256: string;
after_sha256: string;
}
export interface ErrorDetail {
code: string;
stage: string;
modifier_position: number;
modifier_id: string;
modifier_version: string;
diagnostic_type: string;
message: string;
}
export interface ResidualProposalDetail {
modifier_position: number;
modifier_id: string;
modifier_version: string;
proposal_index: number;
snapshot_sha256: string;
reason: string;
edits: unknown[];
}
export interface DocumentComparisonResponse {
schema_version: 1;
document: DocumentSummary;
modifiers: ModifierSummary[];
input_markdown: string;
current_markdown: string | null;
changes: ChangeDetail[];
errors: ErrorDetail[];
residual_proposals: ResidualProposalDetail[];
}
export interface ModifierStageResponse {
schema_version: 1;
document_id: string;
modifier: ModifierSummary;
before_sha256: string;
after_sha256: string;
before_markdown: string;
after_markdown: string;
changes: ChangeDetail[];
}
export interface ApiErrorResponse {
error: {
code: string;
message: string;
};
}