errors.ts

 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}
40
41export class AgentError extends RumiloError {
42  constructor(message: string) {
43    super(message, "AGENT_ERROR");
44  }
45}