feat: complete TASK-WP3-04 worker recovery

This commit is contained in:
suyx
2026-08-03 03:31:01 +08:00
parent 0fb0d088a7
commit 433ccdcf86
6 changed files with 387 additions and 15 deletions
+3
View File
@@ -18,6 +18,7 @@ export interface NormalizedGenerationOutput {
export type GenerationAdapterResult =
| { outputs: readonly NormalizedGenerationOutput[]; status: "completed" }
| { status: "pending"; upstreamJobReference: string }
| {
balanceSignal?: { gatewayAccountRef: string; impactScope: "model" | "account" | "unknown" };
category: GenerationErrorCategory;
@@ -27,6 +28,7 @@ export type GenerationAdapterResult =
export interface GenerationAdapter {
start(request: GenerationAdapterRequest): Promise<GenerationAdapterResult>;
poll?(upstreamJobReference: string): Promise<GenerationAdapterResult>;
}
type MockResult = GenerationAdapterResult & { unsafeRaw?: string };
@@ -41,6 +43,7 @@ export class MockGenerationAdapter implements GenerationAdapter {
async start(request: GenerationAdapterRequest): Promise<GenerationAdapterResult> {
this.calls.push({ generationId: request.generationId, modelId: request.modelId });
if (this.result.status === "pending") return { status: "pending", upstreamJobReference: this.result.upstreamJobReference };
if (this.result.status === "completed") {
return { outputs: this.result.outputs.map((output) => ({ ...output, bytes: Buffer.from(output.bytes) })), status: "completed" };
}