163 lines · 4.6 KB · TypeScript
RawDownload
import { Schema } from "effect"; import type { CheckpointServiceError } from "../checkpointing/Errors.ts"; /** * ProviderAdapterValidationError - Invalid adapter API input. */export class ProviderAdapterValidationError extends Schema.TaggedErrorClass<ProviderAdapterValidationError>()(  "ProviderAdapterValidationError",  {    provider: Schema.String,    operation: Schema.String,    issue: Schema.String,    cause: Schema.optional(Schema.Defect),  },) {  override get message(): string {    return `Provider adapter validation failed (${this.provider}) in ${this.operation}: ${this.issue}`;  }} /** * ProviderAdapterSessionNotFoundError - Adapter-owned session id is unknown. */export class ProviderAdapterSessionNotFoundError extends Schema.TaggedErrorClass<ProviderAdapterSessionNotFoundError>()(  "ProviderAdapterSessionNotFoundError",  {    provider: Schema.String,    threadId: Schema.String,    cause: Schema.optional(Schema.Defect),  },) {  override get message(): string {    return `Unknown ${this.provider} adapter thread: ${this.threadId}`;  }} /** * ProviderAdapterSessionClosedError - Adapter session exists but is closed. */export class ProviderAdapterSessionClosedError extends Schema.TaggedErrorClass<ProviderAdapterSessionClosedError>()(  "ProviderAdapterSessionClosedError",  {    provider: Schema.String,    threadId: Schema.String,    cause: Schema.optional(Schema.Defect),  },) {  override get message(): string {    return `${this.provider} adapter thread is closed: ${this.threadId}`;  }} /** * ProviderAdapterRequestError - Provider protocol request failed or timed out. */export class ProviderAdapterRequestError extends Schema.TaggedErrorClass<ProviderAdapterRequestError>()(  "ProviderAdapterRequestError",  {    provider: Schema.String,    method: Schema.String,    detail: Schema.String,    cause: Schema.optional(Schema.Defect),  },) {  override get message(): string {    return `Provider adapter request failed (${this.provider}) for ${this.method}: ${this.detail}`;  }} /** * ProviderAdapterProcessError - Provider process lifecycle failure. */export class ProviderAdapterProcessError extends Schema.TaggedErrorClass<ProviderAdapterProcessError>()(  "ProviderAdapterProcessError",  {    provider: Schema.String,    threadId: Schema.String,    detail: Schema.String,    cause: Schema.optional(Schema.Defect),  },) {  override get message(): string {    return `Provider adapter process error (${this.provider}) for thread ${this.threadId}: ${this.detail}`;  }} /** * ProviderValidationError - Invalid provider API input. */export class ProviderValidationError extends Schema.TaggedErrorClass<ProviderValidationError>()(  "ProviderValidationError",  {    operation: Schema.String,    issue: Schema.String,    cause: Schema.optional(Schema.Defect),  },) {  override get message(): string {    return `Provider validation failed in ${this.operation}: ${this.issue}`;  }} /** * ProviderUnsupportedError - Requested provider is not implemented. */export class ProviderUnsupportedError extends Schema.TaggedErrorClass<ProviderUnsupportedError>()(  "ProviderUnsupportedError",  {    provider: Schema.String,    cause: Schema.optional(Schema.Defect),  },) {  override get message(): string {    return `Provider '${this.provider}' is not implemented`;  }} /** * ProviderSessionNotFoundError - Provider-facing session not found. */export class ProviderSessionNotFoundError extends Schema.TaggedErrorClass<ProviderSessionNotFoundError>()(  "ProviderSessionNotFoundError",  {    threadId: Schema.String,    cause: Schema.optional(Schema.Defect),  },) {  override get message(): string {    return `Unknown provider thread: ${this.threadId}`;  }} /** * ProviderSessionDirectoryPersistenceError - Session directory persistence failure. */export class ProviderSessionDirectoryPersistenceError extends Schema.TaggedErrorClass<ProviderSessionDirectoryPersistenceError>()(  "ProviderSessionDirectoryPersistenceError",  {    operation: Schema.String,    detail: Schema.String,    cause: Schema.optional(Schema.Defect),  },) {  override get message(): string {    return `Provider session directory persistence error in ${this.operation}: ${this.detail}`;  }} export type ProviderAdapterError =  | ProviderAdapterValidationError  | ProviderAdapterSessionNotFoundError  | ProviderAdapterSessionClosedError  | ProviderAdapterRequestError  | ProviderAdapterProcessError; export type ProviderServiceError =  | ProviderValidationError  | ProviderUnsupportedError  | ProviderSessionNotFoundError  | ProviderSessionDirectoryPersistenceError  | ProviderAdapterError  | CheckpointServiceError;