168 lines
4.0 KiB
TypeScript
168 lines
4.0 KiB
TypeScript
import { Schema } from "effect"
|
|
|
|
export class InvalidRequestError extends Schema.TaggedErrorClass<InvalidRequestError>()(
|
|
"InvalidRequestError",
|
|
{
|
|
message: Schema.String,
|
|
kind: Schema.optional(Schema.String),
|
|
field: Schema.optional(Schema.String),
|
|
},
|
|
{ httpApiStatus: 400 },
|
|
) {}
|
|
|
|
export class UnauthorizedError extends Schema.TaggedErrorClass<UnauthorizedError>()(
|
|
"UnauthorizedError",
|
|
{ message: Schema.String },
|
|
{ httpApiStatus: 401 },
|
|
) {}
|
|
|
|
export class ForbiddenError extends Schema.TaggedErrorClass<ForbiddenError>()(
|
|
"ForbiddenError",
|
|
{ message: Schema.String },
|
|
{ httpApiStatus: 403 },
|
|
) {}
|
|
|
|
export class ConflictError extends Schema.TaggedErrorClass<ConflictError>()(
|
|
"ConflictError",
|
|
{
|
|
message: Schema.String,
|
|
resource: Schema.optional(Schema.String),
|
|
},
|
|
{ httpApiStatus: 409 },
|
|
) {}
|
|
|
|
export class UpstreamError extends Schema.TaggedErrorClass<UpstreamError>()(
|
|
"UpstreamError",
|
|
{
|
|
message: Schema.String,
|
|
service: Schema.optional(Schema.String),
|
|
status: Schema.optional(Schema.Number),
|
|
},
|
|
{ httpApiStatus: 502 },
|
|
) {}
|
|
|
|
export class ServiceUnavailableError extends Schema.TaggedErrorClass<ServiceUnavailableError>()(
|
|
"ServiceUnavailableError",
|
|
{
|
|
message: Schema.String,
|
|
service: Schema.optional(Schema.String),
|
|
},
|
|
{ httpApiStatus: 503 },
|
|
) {}
|
|
|
|
export class TimeoutError extends Schema.TaggedErrorClass<TimeoutError>()(
|
|
"TimeoutError",
|
|
{
|
|
message: Schema.String,
|
|
operation: Schema.optional(Schema.String),
|
|
},
|
|
{ httpApiStatus: 504 },
|
|
) {}
|
|
|
|
export class UnknownError extends Schema.TaggedErrorClass<UnknownError>()(
|
|
"UnknownError",
|
|
{
|
|
message: Schema.String,
|
|
ref: Schema.optional(Schema.String),
|
|
},
|
|
{ httpApiStatus: 500 },
|
|
) {}
|
|
|
|
export class ProviderNotFoundError extends Schema.TaggedErrorClass<ProviderNotFoundError>()(
|
|
"ProviderNotFoundError",
|
|
{
|
|
providerID: Schema.String,
|
|
message: Schema.String,
|
|
},
|
|
{ httpApiStatus: 404 },
|
|
) {}
|
|
|
|
export class ModelNotFoundError extends Schema.TaggedErrorClass<ModelNotFoundError>()(
|
|
"ModelNotFoundError",
|
|
{
|
|
providerID: Schema.String,
|
|
modelID: Schema.String,
|
|
suggestions: Schema.Array(Schema.String),
|
|
message: Schema.String,
|
|
},
|
|
{ httpApiStatus: 404 },
|
|
) {}
|
|
|
|
export class SessionNotFoundError extends Schema.TaggedErrorClass<SessionNotFoundError>()(
|
|
"SessionNotFoundError",
|
|
{
|
|
sessionID: Schema.String,
|
|
message: Schema.String,
|
|
},
|
|
{ httpApiStatus: 404 },
|
|
) {}
|
|
|
|
export class MessageNotFoundError extends Schema.TaggedErrorClass<MessageNotFoundError>()(
|
|
"MessageNotFoundError",
|
|
{
|
|
sessionID: Schema.String,
|
|
messageID: Schema.String,
|
|
message: Schema.String,
|
|
},
|
|
{ httpApiStatus: 404 },
|
|
) {}
|
|
|
|
export class InvalidCursorError extends Schema.TaggedErrorClass<InvalidCursorError>()(
|
|
"InvalidCursorError",
|
|
{ message: Schema.String },
|
|
{ httpApiStatus: 400 },
|
|
) {}
|
|
|
|
export class SessionBusyError extends Schema.TaggedErrorClass<SessionBusyError>()(
|
|
"SessionBusyError",
|
|
{
|
|
sessionID: Schema.String,
|
|
message: Schema.String,
|
|
},
|
|
{ httpApiStatus: 409 },
|
|
) {}
|
|
|
|
export class QuestionNotFoundError extends Schema.TaggedErrorClass<QuestionNotFoundError>()(
|
|
"QuestionNotFoundError",
|
|
{
|
|
requestID: Schema.String,
|
|
message: Schema.String,
|
|
},
|
|
{ httpApiStatus: 404 },
|
|
) {}
|
|
|
|
export class PermissionNotFoundError extends Schema.TaggedErrorClass<PermissionNotFoundError>()(
|
|
"PermissionNotFoundError",
|
|
{
|
|
requestID: Schema.String,
|
|
message: Schema.String,
|
|
},
|
|
{ httpApiStatus: 404 },
|
|
) {}
|
|
|
|
export class McpServerNotFoundError extends Schema.TaggedErrorClass<McpServerNotFoundError>()(
|
|
"McpServerNotFoundError",
|
|
{
|
|
name: Schema.String,
|
|
message: Schema.String,
|
|
},
|
|
{ httpApiStatus: 404 },
|
|
) {}
|
|
|
|
export class ApiNotFoundError extends Schema.ErrorClass<ApiNotFoundError>("NotFoundError")(
|
|
{
|
|
name: Schema.Literal("NotFoundError"),
|
|
data: Schema.Struct({
|
|
message: Schema.String,
|
|
}),
|
|
},
|
|
{ httpApiStatus: 404 },
|
|
) {}
|
|
|
|
export function notFound(message: string) {
|
|
return new ApiNotFoundError({
|
|
name: "NotFoundError",
|
|
data: { message },
|
|
})
|
|
}
|