@4via6/relay 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +89 -47
  2. package/dist/auth.d.ts +1 -0
  3. package/dist/auth.js +6 -3
  4. package/dist/auth.js.map +1 -1
  5. package/dist/bot.js +2 -1
  6. package/dist/bot.js.map +1 -1
  7. package/dist/cli.d.ts +1 -1
  8. package/dist/cli.js +110 -1
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/admin.js +134 -29
  11. package/dist/commands/admin.js.map +1 -1
  12. package/dist/commands/media.js +10 -7
  13. package/dist/commands/media.js.map +1 -1
  14. package/dist/config/index.d.ts +7 -0
  15. package/dist/config/index.js +16 -0
  16. package/dist/config/index.js.map +1 -0
  17. package/dist/config/loader.d.ts +11 -0
  18. package/dist/config/loader.js +235 -0
  19. package/dist/config/loader.js.map +1 -0
  20. package/dist/config/schema.d.ts +32 -0
  21. package/dist/config/schema.js +32 -0
  22. package/dist/config/schema.js.map +1 -0
  23. package/dist/config/setup.d.ts +3 -0
  24. package/dist/config/setup.js +142 -0
  25. package/dist/config/setup.js.map +1 -0
  26. package/dist/daemon.d.ts +5 -0
  27. package/dist/daemon.js +215 -0
  28. package/dist/daemon.js.map +1 -0
  29. package/dist/index.js +23 -25
  30. package/dist/index.js.map +1 -1
  31. package/dist/providers/claude.js +31 -30
  32. package/dist/providers/claude.js.map +1 -1
  33. package/dist/providers/codex.js +29 -28
  34. package/dist/providers/codex.js.map +1 -1
  35. package/dist/providers/index.js +2 -1
  36. package/dist/providers/index.js.map +1 -1
  37. package/dist/providers/opencode.js +8 -5
  38. package/dist/providers/opencode.js.map +1 -1
  39. package/dist/session.js +3 -2
  40. package/dist/session.js.map +1 -1
  41. package/dist/update.d.ts +1 -0
  42. package/dist/update.js +132 -0
  43. package/dist/update.js.map +1 -0
  44. package/dist/utils/files.js +2 -1
  45. package/dist/utils/files.js.map +1 -1
  46. package/dist/utils/logger.d.ts +8 -0
  47. package/dist/utils/logger.js +16 -0
  48. package/dist/utils/logger.js.map +1 -0
  49. package/dist/utils/store.js +1 -0
  50. package/dist/utils/store.js.map +1 -1
  51. package/dist/utils/stream.js +6 -3
  52. package/dist/utils/stream.js.map +1 -1
  53. package/dist/utils/stt.js +27 -16
  54. package/dist/utils/stt.js.map +1 -1
  55. package/dist/utils/system-prompt.js +16 -5
  56. package/dist/utils/system-prompt.js.map +1 -1
  57. package/dist/utils/timeout.js +2 -3
  58. package/dist/utils/timeout.js.map +1 -1
  59. package/docs/commands.md +7 -15
  60. package/docs/configuration.md +124 -108
  61. package/docs/features.md +70 -36
  62. package/docs/getting-started.md +63 -30
  63. package/docs/providers.md +18 -32
  64. package/docs/troubleshooting.md +108 -63
  65. package/package.json +4 -3
  66. package/.env.example +0 -50
@@ -0,0 +1,142 @@
1
+ import { existsSync, mkdirSync, writeFileSync, renameSync } from "fs";
2
+ import { join } from "path";
3
+ import { CONFIG_DEFAULTS } from "./schema.js";
4
+ export async function runSetupWizard(dataDir) {
5
+ const { input, select, confirm, password } = await import("@inquirer/prompts");
6
+ console.log("\n Relay Setup\n");
7
+ console.log(" Configure your Telegram bot for AI coding agents.\n");
8
+ // 1. Bot token
9
+ const botToken = await password({
10
+ message: "Telegram bot token (from @BotFather):",
11
+ validate: (v) => (v.length > 0 ? true : "Bot token is required"),
12
+ });
13
+ // 2. Allowed user ID
14
+ const allowedUserIdStr = await input({
15
+ message: "Your Telegram user ID:",
16
+ validate: (v) => {
17
+ const n = Number(v);
18
+ return !isNaN(n) && n > 0 ? true : "Must be a positive number";
19
+ },
20
+ });
21
+ const allowedUserId = Number(allowedUserIdStr);
22
+ // 3. Provider
23
+ const provider = await select({
24
+ message: "AI provider:",
25
+ choices: [
26
+ { value: "opencode", name: "OpenCode (default)" },
27
+ { value: "claude", name: "Claude Code" },
28
+ { value: "codex", name: "OpenAI Codex" },
29
+ ],
30
+ });
31
+ // 4. Provider-specific settings
32
+ const config = {
33
+ ...CONFIG_DEFAULTS,
34
+ botToken,
35
+ allowedUserId,
36
+ provider,
37
+ dataDir,
38
+ };
39
+ if (provider === "opencode") {
40
+ const opencodeMode = await select({
41
+ message: "OpenCode mode:",
42
+ choices: [
43
+ { value: "start", name: "Start (spawn local server)" },
44
+ { value: "connect", name: "Connect (remote server)" },
45
+ ],
46
+ });
47
+ config.opencodeMode = opencodeMode;
48
+ if (opencodeMode === "connect") {
49
+ config.opencodeUrl = await input({
50
+ message: "OpenCode server URL:",
51
+ default: "http://localhost:4096",
52
+ });
53
+ }
54
+ }
55
+ else if (provider === "claude") {
56
+ config.claudeModel = await input({
57
+ message: "Claude model:",
58
+ default: "sonnet",
59
+ });
60
+ config.claudePermissionMode = await select({
61
+ message: "Permission mode:",
62
+ choices: [
63
+ { value: "acceptEdits", name: "Accept Edits (default)" },
64
+ { value: "full", name: "Full" },
65
+ { value: "plan", name: "Plan" },
66
+ ],
67
+ });
68
+ }
69
+ else if (provider === "codex") {
70
+ config.codexModel = await input({
71
+ message: "Codex model:",
72
+ default: "o3",
73
+ });
74
+ }
75
+ // 5. STT (optional)
76
+ const configureStt = await confirm({
77
+ message: "Configure voice transcription (STT)?",
78
+ default: false,
79
+ });
80
+ if (configureStt) {
81
+ const groqKey = await password({ message: "Groq API key (optional, press Enter to skip):" });
82
+ if (groqKey)
83
+ config.groqApiKey = groqKey;
84
+ const openaiSttKey = await password({ message: "OpenAI API key for STT (optional, press Enter to skip):" });
85
+ if (openaiSttKey)
86
+ config.openaiSttApiKey = openaiSttKey;
87
+ const assemblyaiKey = await password({ message: "AssemblyAI API key (optional, press Enter to skip):" });
88
+ if (assemblyaiKey)
89
+ config.assemblyaiApiKey = assemblyaiKey;
90
+ }
91
+ // 6. Streaming
92
+ config.streamingEnabled = await confirm({
93
+ message: "Enable streaming responses?",
94
+ default: false,
95
+ });
96
+ // 7. Log level
97
+ config.logLevel = await select({
98
+ message: "Log level:",
99
+ choices: [
100
+ { value: "info", name: "Info (default)" },
101
+ { value: "debug", name: "Debug" },
102
+ { value: "warn", name: "Warn" },
103
+ { value: "error", name: "Error" },
104
+ ],
105
+ });
106
+ // Write config
107
+ saveConfig(config, dataDir);
108
+ console.log(`\n Config saved to ${join(dataDir, "config.json")}`);
109
+ console.log(" Run 'relay' to start the bot.\n");
110
+ return config;
111
+ }
112
+ export function saveConfig(config, dataDir) {
113
+ if (!existsSync(dataDir)) {
114
+ mkdirSync(dataDir, { recursive: true, mode: 0o700 });
115
+ }
116
+ // Strip empty/default values for a cleaner config file
117
+ const toSave = {};
118
+ for (const [key, value] of Object.entries(config)) {
119
+ if (key === "dataDir")
120
+ continue; // Don't persist dataDir — it's derived
121
+ if (value === "" || value === 0 || value === false) {
122
+ // Only include non-default falsy values for key fields
123
+ if (key === "botToken" || key === "allowedUserId" || key === "provider") {
124
+ toSave[key] = value;
125
+ }
126
+ continue;
127
+ }
128
+ const defaultVal = CONFIG_DEFAULTS[key];
129
+ if (value !== defaultVal) {
130
+ toSave[key] = value;
131
+ }
132
+ }
133
+ // Always include essential fields
134
+ toSave.botToken = config.botToken;
135
+ toSave.allowedUserId = config.allowedUserId;
136
+ toSave.provider = config.provider;
137
+ const filePath = join(dataDir, "config.json");
138
+ const tmp = filePath + ".tmp";
139
+ writeFileSync(tmp, JSON.stringify(toSave, null, 2) + "\n", { mode: 0o600 });
140
+ renameSync(tmp, filePath);
141
+ }
142
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/config/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function daemonStart(): void;
2
+ export declare function daemonStop(): void;
3
+ export declare function daemonRestart(): void;
4
+ export declare function daemonLogs(): void;
5
+ export declare function daemonStatus(): void;
package/dist/daemon.js ADDED
@@ -0,0 +1,215 @@
1
+ import { execFileSync, spawnSync } from "child_process";
2
+ import { existsSync } from "fs";
3
+ import { join, dirname } from "path";
4
+ import { fileURLToPath } from "url";
5
+ const __dirname = dirname(fileURLToPath(import.meta.url));
6
+ const PROCESS_NAME = "relay";
7
+ function formatUptime(ms) {
8
+ const seconds = Math.floor(ms / 1000);
9
+ const minutes = Math.floor(seconds / 60);
10
+ const hours = Math.floor(minutes / 60);
11
+ const days = Math.floor(hours / 24);
12
+ if (days > 0)
13
+ return `${days}d ${hours % 24}h`;
14
+ if (hours > 0)
15
+ return `${hours}h ${minutes % 60}m`;
16
+ if (minutes > 0)
17
+ return `${minutes}m ${seconds % 60}s`;
18
+ return `${seconds}s`;
19
+ }
20
+ function formatMemory(bytes) {
21
+ const mb = bytes / (1024 * 1024);
22
+ if (mb >= 1024)
23
+ return `${(mb / 1024).toFixed(1)} GB`;
24
+ return `${mb.toFixed(1)} MB`;
25
+ }
26
+ function isPm2Available() {
27
+ try {
28
+ execFileSync("pm2", ["--version"], { stdio: "ignore" });
29
+ return true;
30
+ }
31
+ catch {
32
+ return false;
33
+ }
34
+ }
35
+ function ensurePm2() {
36
+ if (isPm2Available())
37
+ return;
38
+ console.log(" pm2 not found. Installing globally...\n");
39
+ try {
40
+ execFileSync("npm", ["install", "-g", "pm2"], { stdio: "inherit" });
41
+ console.log();
42
+ }
43
+ catch {
44
+ console.error(" Failed to install pm2. Try manually:\n\n sudo npm install -g pm2\n");
45
+ process.exit(1);
46
+ }
47
+ if (!isPm2Available()) {
48
+ console.error(" pm2 installed but not found in PATH. You may need to restart your shell.\n");
49
+ process.exit(1);
50
+ }
51
+ }
52
+ function getProcessInfo() {
53
+ try {
54
+ const result = execFileSync("pm2", ["jlist"], {
55
+ encoding: "utf-8",
56
+ stdio: ["pipe", "pipe", "ignore"],
57
+ });
58
+ const processes = JSON.parse(result);
59
+ const proc = processes.find((p) => p.name === PROCESS_NAME);
60
+ if (!proc)
61
+ return null;
62
+ return {
63
+ status: proc.pm2_env?.status ?? "unknown",
64
+ pid: proc.pid ?? 0,
65
+ uptime: Date.now() - (proc.pm2_env?.pm_uptime ?? Date.now()),
66
+ restarts: proc.pm2_env?.restart_time ?? 0,
67
+ memory: proc.monit?.memory ?? 0,
68
+ cpu: proc.monit?.cpu ?? 0,
69
+ };
70
+ }
71
+ catch {
72
+ return null;
73
+ }
74
+ }
75
+ function buildPassthroughArgs() {
76
+ const args = process.argv.slice(2);
77
+ // Remove the subcommand (start, restart, etc.)
78
+ return args.slice(1);
79
+ }
80
+ function printStatus(info) {
81
+ console.log(`
82
+ Relay daemon is running
83
+
84
+ Status: ${info.status}
85
+ PID: ${info.pid}
86
+ Uptime: ${formatUptime(info.uptime)}
87
+ Memory: ${formatMemory(info.memory)}
88
+ CPU: ${info.cpu}%
89
+ Restarts: ${info.restarts}
90
+ `);
91
+ }
92
+ function getCliEntryPath() {
93
+ // When running from source (dist/daemon.js), the entry is dist/cli.js
94
+ // When running as a package, __dirname points to the dist folder
95
+ return join(__dirname, "cli.js");
96
+ }
97
+ export function daemonStart() {
98
+ ensurePm2();
99
+ const info = getProcessInfo();
100
+ if (info && info.status === "online") {
101
+ console.log(`\n Relay daemon is already running (PID: ${info.pid})\n`);
102
+ return;
103
+ }
104
+ const entryPath = getCliEntryPath();
105
+ if (!existsSync(entryPath)) {
106
+ console.error(`\n Entry point not found: ${entryPath}\n Run \`npm run build\` first.\n`);
107
+ process.exit(1);
108
+ }
109
+ // If there's a stopped/errored process, delete it first
110
+ if (info) {
111
+ try {
112
+ execFileSync("pm2", ["delete", PROCESS_NAME], { stdio: "ignore" });
113
+ }
114
+ catch {
115
+ // ignore
116
+ }
117
+ }
118
+ const passthroughArgs = buildPassthroughArgs();
119
+ const pm2Args = [
120
+ "start",
121
+ entryPath,
122
+ "--name",
123
+ PROCESS_NAME,
124
+ "--time",
125
+ "--max-restarts",
126
+ "10",
127
+ "--restart-delay",
128
+ "5000",
129
+ ];
130
+ if (passthroughArgs.length > 0) {
131
+ pm2Args.push("--", ...passthroughArgs);
132
+ }
133
+ try {
134
+ execFileSync("pm2", pm2Args, { stdio: "inherit" });
135
+ }
136
+ catch {
137
+ console.error("\n Failed to start daemon.\n");
138
+ process.exit(1);
139
+ }
140
+ // Brief pause for pm2 to register the process
141
+ spawnSync("sleep", ["1"]);
142
+ const newInfo = getProcessInfo();
143
+ if (newInfo) {
144
+ printStatus(newInfo);
145
+ }
146
+ else {
147
+ console.log("\n Daemon started. Run `relay status` to check.\n");
148
+ }
149
+ }
150
+ export function daemonStop() {
151
+ if (!isPm2Available()) {
152
+ console.log("\n Relay daemon is not running.\n");
153
+ return;
154
+ }
155
+ const info = getProcessInfo();
156
+ if (!info) {
157
+ console.log("\n Relay daemon is not running.\n");
158
+ return;
159
+ }
160
+ try {
161
+ execFileSync("pm2", ["stop", PROCESS_NAME], { stdio: "ignore" });
162
+ execFileSync("pm2", ["delete", PROCESS_NAME], { stdio: "ignore" });
163
+ }
164
+ catch {
165
+ // ignore — may already be stopped
166
+ }
167
+ console.log("\n Relay daemon stopped.\n");
168
+ }
169
+ export function daemonRestart() {
170
+ ensurePm2();
171
+ const info = getProcessInfo();
172
+ if (!info || info.status !== "online") {
173
+ console.error("\n Relay daemon is not running. Use `relay start` to start it.\n");
174
+ process.exit(1);
175
+ }
176
+ try {
177
+ execFileSync("pm2", ["restart", PROCESS_NAME], { stdio: "inherit" });
178
+ }
179
+ catch {
180
+ console.error("\n Failed to restart daemon.\n");
181
+ process.exit(1);
182
+ }
183
+ spawnSync("sleep", ["1"]);
184
+ const newInfo = getProcessInfo();
185
+ if (newInfo) {
186
+ printStatus(newInfo);
187
+ }
188
+ }
189
+ export function daemonLogs() {
190
+ if (!isPm2Available()) {
191
+ console.error("\n Relay daemon is not running. Use `relay start` to start it.\n");
192
+ process.exit(1);
193
+ }
194
+ const info = getProcessInfo();
195
+ if (!info) {
196
+ console.error("\n Relay daemon is not running. Use `relay start` to start it.\n");
197
+ process.exit(1);
198
+ }
199
+ spawnSync("pm2", ["logs", PROCESS_NAME, "--lines", "50"], {
200
+ stdio: "inherit",
201
+ });
202
+ }
203
+ export function daemonStatus() {
204
+ if (!isPm2Available()) {
205
+ console.log("\n Relay daemon is not running.\n");
206
+ return;
207
+ }
208
+ const info = getProcessInfo();
209
+ if (!info) {
210
+ console.log("\n Relay daemon is not running.\n");
211
+ return;
212
+ }
213
+ printStatus(info);
214
+ }
215
+ //# sourceMappingURL=daemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,29 +1,31 @@
1
+ import { getConfig } from "./config/index.js";
1
2
  import { initProvider, shutdownProvider, getProviderName } from "./providers/index.js";
2
3
  import { createBot } from "./bot.js";
3
- import { isAuthConfigured } from "./auth.js";
4
+ import { initAuth } from "./auth.js";
4
5
  import { startUploadCleanup, stopUploadCleanup } from "./utils/media.js";
5
6
  import { unwatchSystemPrompt } from "./utils/system-prompt.js";
7
+ import logger from "./utils/logger.js";
6
8
  async function main() {
7
- const botToken = process.env.BOT_TOKEN;
8
- if (!botToken) {
9
- console.error("BOT_TOKEN environment variable is required.");
9
+ const config = getConfig();
10
+ if (!config.botToken) {
11
+ logger.fatal("BOT_TOKEN is required. Run 'relay onboard' to configure.");
10
12
  process.exit(1);
11
13
  }
12
- if (!isAuthConfigured()) {
13
- console.error("ALLOWED_USER_ID environment variable is required (must be a valid Telegram user ID).");
14
+ if (!initAuth(config.allowedUserId)) {
15
+ logger.fatal("ALLOWED_USER_ID is required (must be a valid Telegram user ID). Run 'relay onboard' to configure.");
14
16
  process.exit(1);
15
17
  }
16
18
  const providerName = getProviderName();
17
- console.log(`Initializing ${providerName} provider...`);
19
+ logger.info({ provider: providerName }, "Initializing provider...");
18
20
  await initProvider();
19
- console.log(`${providerName} provider ready.`);
21
+ logger.info({ provider: providerName }, "Provider ready");
20
22
  // Clean up old uploads every 30 minutes
21
23
  startUploadCleanup();
22
- const bot = createBot(botToken);
23
- const botMode = (process.env.BOT_MODE ?? "polling").toLowerCase();
24
+ const bot = createBot(config.botToken);
25
+ const botMode = config.botMode;
24
26
  let httpServer = null;
25
27
  async function gracefulShutdown(signal) {
26
- console.log(`\n${signal} received. Shutting down...`);
28
+ logger.info({ signal }, "Shutting down...");
27
29
  if (httpServer) {
28
30
  httpServer.close();
29
31
  try {
@@ -42,25 +44,21 @@ async function main() {
42
44
  process.on("SIGINT", () => gracefulShutdown("SIGINT"));
43
45
  process.on("SIGTERM", () => gracefulShutdown("SIGTERM"));
44
46
  if (botMode === "webhook") {
45
- const webhookUrl = process.env.WEBHOOK_URL;
46
- if (!webhookUrl) {
47
- console.error("WEBHOOK_URL is required when BOT_MODE=webhook.");
47
+ if (!config.webhookUrl) {
48
+ logger.fatal("webhookUrl is required when botMode=webhook. Run 'relay onboard' to configure.");
48
49
  process.exit(1);
49
50
  }
50
- const webhookPort = Number(process.env.WEBHOOK_PORT ?? "3000");
51
- const webhookSecret = process.env.WEBHOOK_SECRET;
52
51
  const { createServer } = await import("http");
53
52
  const { webhookCallback } = await import("grammy");
54
- await bot.api.setWebhook(webhookUrl, {
55
- ...(webhookSecret && { secret_token: webhookSecret }),
53
+ await bot.api.setWebhook(config.webhookUrl, {
54
+ ...(config.webhookSecret && { secret_token: config.webhookSecret }),
56
55
  });
57
56
  const handler = webhookCallback(bot, "http", {
58
- ...(webhookSecret && { secretToken: webhookSecret }),
57
+ ...(config.webhookSecret && { secretToken: config.webhookSecret }),
59
58
  });
60
59
  httpServer = createServer(handler);
61
- httpServer.listen(webhookPort, () => {
62
- console.log(`Webhook server listening on port ${webhookPort}`);
63
- console.log(`Webhook URL: ${webhookUrl}`);
60
+ httpServer.listen(config.webhookPort, () => {
61
+ logger.info({ port: config.webhookPort, url: config.webhookUrl }, "Webhook server listening");
64
62
  });
65
63
  }
66
64
  else {
@@ -69,14 +67,14 @@ async function main() {
69
67
  await bot.api.deleteWebhook();
70
68
  }
71
69
  catch { }
72
- console.log("Starting Telegram bot (long polling)...");
70
+ logger.info("Starting Telegram bot (long polling)...");
73
71
  await bot.start({
74
- onStart: (info) => console.log(`Bot @${info.username} is running!`),
72
+ onStart: (info) => logger.info({ username: info.username }, "Bot is running"),
75
73
  });
76
74
  }
77
75
  }
78
76
  main().catch((err) => {
79
- console.error("Fatal error:", err);
77
+ logger.fatal({ err }, "Fatal error");
80
78
  process.exit(1);
81
79
  });
82
80
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { JsonStore } from "../utils/store.js";
2
+ import { getConfig } from "../config/index.js";
2
3
  // Dynamic import — only loads when PROVIDER=claude
3
4
  let queryFn;
4
5
  let listSessionsFn;
@@ -27,14 +28,12 @@ export class ClaudeProvider {
27
28
  mcpServers = new Map();
28
29
  mcpStore = new JsonStore("claude-mcp.json", {});
29
30
  constructor() {
30
- this.model = process.env.CLAUDE_MODEL ?? "sonnet";
31
- this.permissionMode = process.env.CLAUDE_PERMISSION_MODE ?? "acceptEdits";
32
- this.cwd = process.env.CLAUDE_CWD ?? process.cwd();
31
+ const config = getConfig();
32
+ this.model = config.claudeModel;
33
+ this.permissionMode = config.claudePermissionMode;
34
+ this.cwd = config.claudeCwd || process.cwd();
33
35
  }
34
36
  async init() {
35
- if (!process.env.ANTHROPIC_API_KEY) {
36
- throw new Error("ANTHROPIC_API_KEY is required for Claude provider. Set it in your environment.");
37
- }
38
37
  try {
39
38
  const sdk = await import("@anthropic-ai/claude-code");
40
39
  queryFn = sdk.query;
@@ -386,31 +385,33 @@ export class ClaudeProvider {
386
385
  // --- Models ---
387
386
  async listModels() {
388
387
  const apiKey = process.env.ANTHROPIC_API_KEY;
389
- if (!apiKey) {
390
- throw new Error("ANTHROPIC_API_KEY is required to list models.");
391
- }
392
- const res = await fetch("https://api.anthropic.com/v1/models?limit=100", {
393
- headers: {
394
- "x-api-key": apiKey,
395
- "anthropic-version": "2023-06-01",
396
- },
397
- });
398
- if (!res.ok) {
399
- throw new Error(`Failed to fetch models from Anthropic API (HTTP ${res.status}). Check your ANTHROPIC_API_KEY.`);
400
- }
401
- const body = await res.json();
402
- const models = (body.data ?? []).map((m) => ({
403
- id: m.id,
404
- name: m.display_name ?? m.id,
405
- provider: "anthropic",
406
- reasoning: /opus|sonnet-4/i.test(m.id),
407
- attachment: false,
408
- active: this.model === m.id,
409
- }));
410
- if (models.length === 0) {
411
- throw new Error("No models returned from Anthropic API. Check your ANTHROPIC_API_KEY permissions.");
388
+ if (apiKey) {
389
+ try {
390
+ const res = await fetch("https://api.anthropic.com/v1/models?limit=100", {
391
+ headers: {
392
+ "x-api-key": apiKey,
393
+ "anthropic-version": "2023-06-01",
394
+ },
395
+ });
396
+ if (res.ok) {
397
+ const body = await res.json();
398
+ const models = (body.data ?? []).map((m) => ({
399
+ id: m.id,
400
+ name: m.display_name ?? m.id,
401
+ provider: "anthropic",
402
+ reasoning: /opus|sonnet-4/i.test(m.id),
403
+ attachment: false,
404
+ active: this.model === m.id,
405
+ }));
406
+ if (models.length > 0)
407
+ return models;
408
+ }
409
+ }
410
+ catch {
411
+ // API unavailable — return empty list
412
+ }
412
413
  }
413
- return models;
414
+ return [];
414
415
  }
415
416
  // --- MCP ---
416
417
  async getMcpStatus() {
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"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"}