mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-24 12:15:51 -04:00
51 lines
1.1 KiB
TypeScript
51 lines
1.1 KiB
TypeScript
export * as SessionStatusEvent from "./session-status-event"
|
|
|
|
import { Schema } from "effect"
|
|
import { Event } from "./event"
|
|
import { NonNegativeInt } from "./schema"
|
|
import { SessionID } from "./session-id"
|
|
|
|
export const Info = Schema.Union([
|
|
Schema.Struct({
|
|
type: Schema.Literal("idle"),
|
|
}),
|
|
Schema.Struct({
|
|
type: Schema.Literal("retry"),
|
|
attempt: NonNegativeInt,
|
|
message: Schema.String,
|
|
action: Schema.optional(
|
|
Schema.Struct({
|
|
reason: Schema.String,
|
|
provider: Schema.String,
|
|
title: Schema.String,
|
|
message: Schema.String,
|
|
label: Schema.String,
|
|
link: Schema.optional(Schema.String),
|
|
}),
|
|
),
|
|
next: NonNegativeInt,
|
|
}),
|
|
Schema.Struct({
|
|
type: Schema.Literal("busy"),
|
|
}),
|
|
]).annotate({ identifier: "SessionStatus" })
|
|
export type Info = Schema.Schema.Type<typeof Info>
|
|
|
|
export const Status = Event.define({
|
|
type: "session.status",
|
|
schema: {
|
|
sessionID: SessionID,
|
|
status: Info,
|
|
},
|
|
})
|
|
|
|
// deprecated
|
|
export const Idle = Event.define({
|
|
type: "session.idle",
|
|
schema: {
|
|
sessionID: SessionID,
|
|
},
|
|
})
|
|
|
|
export const Definitions = Event.inventory(Status, Idle)
|