feat: complete TASK-WP2-06 generation terminal states
This commit is contained in:
@@ -88,12 +88,16 @@ export type GenerationSubmissionFields = Omit<GenerationSubmissionInput, "newRef
|
||||
export interface GenerationTaskView {
|
||||
confirmedCreditCost: number;
|
||||
createdAt: string;
|
||||
errorCategory: "upstream_timeout" | "upstream_failed" | "safety_rejected" | "model_disabled"
|
||||
| "gateway_balance_insufficient" | "gateway_contract_invalid" | "reference_invalid"
|
||||
| "unknown_retryable" | "unknown_non_retryable" | null;
|
||||
generationId: string;
|
||||
modelConfigVersion: number;
|
||||
modelId: string;
|
||||
projectId: string;
|
||||
prompt: string;
|
||||
ratio: ProjectRatio;
|
||||
referenceAssetIds: string[];
|
||||
referenceCount: number;
|
||||
reservedCredits: number;
|
||||
status: "queued" | "running" | "succeeded" | "failed" | "rejected";
|
||||
@@ -111,6 +115,7 @@ export interface GenerationUploadSession {
|
||||
interface GenerationRow {
|
||||
confirmed_credit_cost: number;
|
||||
created_at: number;
|
||||
error_category: GenerationTaskView["errorCategory"];
|
||||
generation_id: string;
|
||||
model_config_version: number;
|
||||
model_id: string;
|
||||
@@ -452,18 +457,21 @@ export class GenerationSubmissionService {
|
||||
}
|
||||
|
||||
private taskView(row: GenerationRow): GenerationTaskView {
|
||||
const referenceCount = (this.database.prepare("SELECT COUNT(*) AS count FROM generation_reference_snapshots WHERE generation_id = ?")
|
||||
.get(row.generation_id) as { count: number }).count;
|
||||
const referenceAssetIds = (this.database.prepare(`
|
||||
SELECT managed_file_id FROM generation_reference_snapshots WHERE generation_id = ? ORDER BY position
|
||||
`).all(row.generation_id) as Array<{ managed_file_id: string }>).map((entry) => entry.managed_file_id);
|
||||
return {
|
||||
confirmedCreditCost: row.confirmed_credit_cost,
|
||||
createdAt: iso(row.created_at),
|
||||
errorCategory: row.error_category,
|
||||
generationId: row.generation_id,
|
||||
modelConfigVersion: row.model_config_version,
|
||||
modelId: row.model_id,
|
||||
projectId: row.project_id,
|
||||
prompt: row.prompt,
|
||||
ratio: row.ratio,
|
||||
referenceCount,
|
||||
referenceAssetIds,
|
||||
referenceCount: referenceAssetIds.length,
|
||||
reservedCredits: row.reserved_credits,
|
||||
status: row.status,
|
||||
updatedAt: iso(row.updated_at),
|
||||
|
||||
Reference in New Issue
Block a user