Spaces:
Sleeping
Sleeping
// The expected structure of a row from the input CSV. | |
export interface CsvInputRow { | |
URL: string; | |
Page: string; | |
Keywords: string; | |
Recommended_Title: string; | |
Recommended_H1: string; | |
Internal_Links: string; | |
Copy: string; | |
} | |
// The structure of the 'inputs' object for the Dify API call. | |
export type ApiInput = CsvInputRow; | |
// The structure of the `outputs` object from the Dify API response. | |
export interface ApiResponseOutput { | |
title: string; | |
h1: string; | |
copy: string; | |
meta: string; | |
qa_gaurd: string; | |
} | |
// Represents an item in the processing queue. | |
export interface QueueItem { | |
id: number; | |
data: CsvInputRow; | |
status: 'pending' | 'processing' | 'completed' | 'failed'; | |
error?: string; | |
} | |
// Represents the parsed QA results for a single section (e.g., Title, H1). | |
export interface QaSectionResult { | |
grade: string; | |
pass: boolean; | |
errors: string[]; | |
corrected: string; | |
// Enhanced to capture ALL QA Guard content | |
detailedAssessment?: string; // Full detailed assessment text | |
keyStrengths?: string[]; // List of key strengths identified | |
recommendations?: string[]; // List of recommendations | |
explanations?: string; // Detailed explanations | |
rawContent?: string; // Raw section content for complete preservation | |
} | |
// Represents the full, structured QA report. | |
export interface DetailedQaReport { | |
title: QaSectionResult; | |
meta: QaSectionResult; | |
h1: QaSectionResult; | |
copy: QaSectionResult; | |
overall: { | |
grade: string; | |
pass: boolean; | |
primaryIssue: string; | |
// Enhanced to capture ALL overall assessment content | |
detailedAssessment?: string; // Full detailed overall assessment | |
keyStrengths?: string[]; // Overall key strengths | |
recommendations?: string[]; // Overall recommendations | |
explanations?: string; // Detailed overall explanations | |
rawContent?: string; // Raw overall section content | |
}; | |
// Capture any additional sections that QA Guard might generate | |
additionalSections?: { | |
[sectionName: string]: { | |
content: string; | |
type: 'assessment' | 'strengths' | 'recommendations' | 'explanations' | 'other'; | |
}; | |
}; | |
// Preserve the complete raw QA report | |
completeRawReport?: string; | |
} | |
// Extracted and cleaned data from the API response. | |
export interface ProcessedResult { | |
generatedTitle: string; | |
generatedH1: string; | |
generatedCopy: string; | |
generatedMeta: string; | |
qaReport: string; // The raw, original QA report string | |
detailedQaReport?: DetailedQaReport; // The parsed, structured QA report | |
overallPass: boolean; // For quick access in the main table view | |
overallGrade: string; // For quick access in the main table view | |
} | |
// A complete row for the final results table and CSV export. | |
export type ResultRow = CsvInputRow & ProcessedResult & { id: number }; | |
// Represents a completed job in the history. | |
export interface JobHistoryItem { | |
id: string; | |
filename: string; | |
date: string; | |
totalRows: number; | |
completedCount: number; | |
failedCount: number; | |
results?: ResultRow[]; // Store the full results for review and re-download | |
} | |
// Expected headers for the input CSV, used for validation. | |
export const REQUIRED_CSV_HEADERS: (keyof CsvInputRow)[] = [ | |
'URL', | |
'Page', | |
'Keywords', | |
'Recommended_Title', | |
'Recommended_H1', | |
'Internal_Links', | |
'Copy' | |
]; | |
// Structured, user-facing error captured during batching | |
export interface BatchError { | |
row?: number; // 1-based row index for per-row errors | |
code: string; // machine-friendly code e.g. CSV_PARSE_ERROR, HTTP_ERROR, SERVICE_UNAVAILABLE | |
message: string; // user-friendly message | |
suggestion?: string; // optional remediation hint | |
at?: 'csv' | 'network' | 'api' | 'stream' | 'parse' | 'unknown'; | |
debug?: string; // optional raw/console error text to help diagnose | |
} |