mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-27 02:44:50 +01:00
36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
import { z } from "zod";
|
|
import { NATIVE_FINALIZATION_SCHEMA } from "../types/native-finalization.js";
|
|
|
|
export const nativeFinalizationResultV1Schema = z.object({
|
|
schema: z.literal(NATIVE_FINALIZATION_SCHEMA),
|
|
runtimeMode: z.literal("native"),
|
|
runId: z.string().uuid(),
|
|
issueId: z.string().uuid(),
|
|
companyId: z.string().uuid(),
|
|
result: z.record(z.unknown()),
|
|
terminal: z.object({
|
|
schema: z.literal("paperclip.prp.terminal.v1"),
|
|
turnTerminalState: z.enum(["completed", "failed", "interrupted", "cancelled"]),
|
|
runTerminalState: z.enum(["succeeded", "failed", "cancelled"]),
|
|
reportedWorkDisposition: z.enum(["done", "blocked", "needs_review", "yielded"]),
|
|
}).strict(),
|
|
turnId: z.string().min(1).nullable(),
|
|
sourceInstanceId: z.string().min(1).max(160),
|
|
normalizedSessionId: z.string().min(1),
|
|
providerSessionId: z.string().min(1).nullable(),
|
|
driverKind: z.string().min(1),
|
|
driverVersion: z.string().min(1),
|
|
nativeEventCount: z.number().int().nonnegative(),
|
|
highestContiguousSourceSeq: z.number().int().nonnegative(),
|
|
workspaceFinalizeStatus: z.enum(["pending", "succeeded", "failed"]),
|
|
}).strict();
|
|
|
|
export const nativeReportedWorkDispositionSchema = z.enum([
|
|
"done",
|
|
"blocked",
|
|
"needs_review",
|
|
"yielded",
|
|
]);
|
|
export const nativeFinalizationResultSchema = nativeFinalizationResultV1Schema;
|
|
export type NativeFinalizationResultInput = z.infer<typeof nativeFinalizationResultSchema>;
|