export * as PermissionV1 from "./permission" import { Schema } from "effect" export * from "@opencode-ai/schema/permission-v1" import { ID } from "@opencode-ai/schema/permission-v1" export class RejectedError extends Schema.TaggedErrorClass()("PermissionRejectedError", {}) { override get message() { return "The user rejected permission to use this specific tool call." } } export class CorrectedError extends Schema.TaggedErrorClass()("PermissionCorrectedError", { feedback: Schema.String, }) { override get message() { return `The user rejected permission to use this specific tool call with the following feedback: ${this.feedback}` } } export class DeniedError extends Schema.TaggedErrorClass()("PermissionDeniedError", { ruleset: Schema.Any, }) { override get message() { return `The user has specified a rule which prevents you from using this specific tool call. Here are some of the relevant rules ${JSON.stringify(this.ruleset)}` } } export class NotFoundError extends Schema.TaggedErrorClass()("Permission.NotFoundError", { requestID: ID, }) {} export type Error = DeniedError | RejectedError | CorrectedError