opencode/packages/schema/src/revert.ts
2026-07-01 13:33:59 -04:00

24 lines
892 B
TypeScript

export * as Revert from "./revert.js"
import { Schema } from "effect"
import { optional } from "./schema.js"
import { NonNegativeInt, RelativePath } from "./schema.js"
import { SessionMessage } from "./session-message.js"
export const FileDiff = Schema.Struct({
path: RelativePath,
status: Schema.Literals(["added", "modified", "deleted"]),
additions: NonNegativeInt,
deletions: NonNegativeInt,
patch: Schema.String,
}).annotate({ identifier: "File.Diff" })
export interface FileDiff extends Schema.Schema.Type<typeof FileDiff> {}
export const State = Schema.Struct({
messageID: SessionMessage.ID,
partID: Schema.String.pipe(optional),
snapshot: Schema.String.pipe(optional),
diff: Schema.String.pipe(optional),
files: Schema.Array(FileDiff).pipe(optional),
}).annotate({ identifier: "Revert.State" })
export interface State extends Schema.Schema.Type<typeof State> {}