opencode/packages/schema/src/session-todo.ts

25 lines
821 B
TypeScript

export * as SessionTodo from "./session-todo"
import { Schema } from "effect"
import { define, inventory } from "./event"
import { SessionID } from "./session-id"
export const Info = Schema.Struct({
content: Schema.String.annotate({ description: "Brief description of the task" }),
status: Schema.String.annotate({
description: "Current status of the task: pending, in_progress, completed, cancelled",
}),
priority: Schema.String.annotate({
description: "Priority level of the task: high, medium, low",
}),
}).annotate({ identifier: "Todo" })
export interface Info extends Schema.Schema.Type<typeof Info> {}
const Updated = define({
type: "todo.updated",
schema: {
sessionID: SessionID,
todos: Schema.Array(Info),
},
})
export const Event = { Updated, Definitions: inventory(Updated) }