1export class RumiloError extends Error {
2 readonly code: string;
3
4 constructor(message: string, code: string) {
5 super(message);
6 this.name = this.constructor.name;
7 this.code = code;
8 }
9}
10
11export class ConfigError extends RumiloError {
12 constructor(message: string) {
13 super(message, "CONFIG_ERROR");
14 }
15}
16
17export class FetchError extends RumiloError {
18 constructor(url: string, reason: string) {
19 super(`Failed to fetch ${url}: ${reason}`, "FETCH_ERROR");
20 }
21}
22
23export class CloneError extends RumiloError {
24 constructor(uri: string, reason: string) {
25 super(`Failed to clone ${uri}: ${reason}`, "CLONE_ERROR");
26 }
27}
28
29export class WorkspaceError extends RumiloError {
30 constructor(message: string) {
31 super(message, "WORKSPACE_ERROR");
32 }
33}
34
35export class ToolInputError extends RumiloError {
36 constructor(message: string) {
37 super(message, "TOOL_INPUT_ERROR");
38 }
39}