unbound-claude-code 0.2.2 → 0.2.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAOhD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAiB;gBAEpB,OAAO,GAAE,MAAuC;IAK5D;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiCpD;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAiCtE;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IA4BxC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAalC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IA0BtC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CActC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAIhD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAiB;gBAEpB,OAAO,GAAE,MAAiC;IAKtD;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgCpD;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAgCtE;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAqCxC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAalC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAoBtC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CActC"}
package/dist/auth.js CHANGED
@@ -5,11 +5,9 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.UnboundAuth = void 0;
7
7
  const storage_1 = require("./storage");
8
- const DEFAULT_HEADERS = {
9
- "X-Unbound-Metadata": JSON.stringify({ labels: [{ key: "app", value: "unbound-claude-code" }] }),
10
- };
8
+ const global_1 = require("./global");
11
9
  class UnboundAuth {
12
- constructor(baseUrl = "https://api.getunbound.ai/v1") {
10
+ constructor(baseUrl = `${global_1.UNBOUND_BASE_URL}/v1`) {
13
11
  this.baseUrl = baseUrl;
14
12
  this.storage = new storage_1.UnboundStorage();
15
13
  }
@@ -23,7 +21,6 @@ class UnboundAuth {
23
21
  headers: {
24
22
  "Authorization": `Bearer ${apiKey}`,
25
23
  "Content-Type": "application/json",
26
- ...DEFAULT_HEADERS,
27
24
  }
28
25
  });
29
26
  if (response.ok) {
@@ -57,7 +54,6 @@ class UnboundAuth {
57
54
  headers: {
58
55
  "Authorization": `Bearer ${apiKey}`,
59
56
  "Content-Type": "application/json",
60
- ...DEFAULT_HEADERS,
61
57
  }
62
58
  });
63
59
  if (response.ok) {
@@ -93,14 +89,21 @@ class UnboundAuth {
93
89
  output: process.stdout
94
90
  });
95
91
  return new Promise((resolve, reject) => {
96
- const askForKey = () => {
97
- rl.question('Enter your Unbound API key: ', (apiKey) => {
92
+ const askForKey = async () => {
93
+ rl.question('Enter your Unbound API key: ', async (apiKey) => {
98
94
  const trimmedKey = apiKey ? apiKey.trim() : '';
99
95
  if (!trimmedKey || trimmedKey.length === 0) {
100
96
  console.log('API key cannot be empty. Please try again.');
101
97
  askForKey(); // Ask again
102
98
  return;
103
99
  }
100
+ // Validate the API key
101
+ const isValid = await this.verifyApiKey(trimmedKey);
102
+ if (!isValid) {
103
+ console.log('❌ Invalid API key. Please check your key and try again.');
104
+ askForKey(); // Ask again
105
+ return;
106
+ }
104
107
  rl.close();
105
108
  resolve(trimmedKey);
106
109
  });
@@ -129,21 +132,16 @@ class UnboundAuth {
129
132
  // First try environment variable
130
133
  const envApiKey = process.env.UNBOUND_API_KEY;
131
134
  if (envApiKey && envApiKey.trim().length > 0) {
132
- console.log('✓ Using Unbound API key from UNBOUND_API_KEY environment variable');
133
135
  return envApiKey.trim();
134
136
  }
135
137
  // Then try stored API key
136
138
  const storedApiKey = await this.storage.getApiKey();
137
139
  if (storedApiKey) {
138
- console.log('✓ Using stored Unbound API key');
139
140
  return storedApiKey;
140
141
  }
141
142
  // If not found anywhere, prompt user
142
143
  console.log('No stored API key found.');
143
144
  const apiKey = await this.promptForApiKey();
144
- // Store the API key for future use
145
- await this.storage.setApiKey(apiKey);
146
- console.log('✓ Unbound API key stored securely for future use');
147
145
  return apiKey;
148
146
  }
149
147
  /**
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -17,6 +17,14 @@ declare class UnboundCli {
17
17
  private clearConfig;
18
18
  private setModel;
19
19
  private checkClaudeCode;
20
+ private checkAndInstallClaudeCode;
21
+ /**
22
+ * Sets up Claude configuration files to use Unbound API key
23
+ * Creates ~/.claude/settings.json with apiKeyHelper configuration
24
+ * Creates ~/.claude/anthropic_key.sh with the API key
25
+ */
26
+ private setupClaudeConfig;
27
+ private promptVertexConfiguration;
20
28
  private authenticateUser;
21
29
  private launchClaudeCode;
22
30
  run(args: string[]): Promise<void>;
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAiBH,cAAM,UAAU;IACd,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,OAAO,CAAiB;;IAOhC,OAAO,CAAC,SAAS;IAoDjB,OAAO,CAAC,QAAQ;IAsChB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,UAAU;YAgBJ,WAAW;YAIX,QAAQ;YAyBR,eAAe;YASf,gBAAgB;YA2EhB,gBAAgB;IAuCjB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA2ChD;AAQD,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AA4BH,cAAM,UAAU;IACd,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,OAAO,CAAiB;;IAOhC,OAAO,CAAC,SAAS;IAoDjB,OAAO,CAAC,QAAQ;IAsChB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,UAAU;YAgBJ,WAAW;YAIX,QAAQ;YAyBR,eAAe;YAUf,yBAAyB;IAmBvC;;;;OAIG;YACW,iBAAiB;YAkDjB,yBAAyB;YA2DzB,gBAAgB;YA4DhB,gBAAgB;IA4DjB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAkDhD;AAQD,OAAO,EAAE,UAAU,EAAE,CAAC"}
package/dist/cli.js CHANGED
@@ -7,11 +7,49 @@
7
7
  * It intercepts API calls to Anthropic and sends them to Unbound AI.
8
8
  * It also provides a CLI interface for managing the Unbound AI API key and model.
9
9
  */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
10
43
  Object.defineProperty(exports, "__esModule", { value: true });
11
44
  exports.UnboundCli = void 0;
12
45
  const child_process_1 = require("child_process");
46
+ const fs_1 = require("fs");
47
+ const path_1 = require("path");
48
+ const os_1 = require("os");
49
+ const readline = __importStar(require("readline"));
13
50
  const auth_1 = require("./auth");
14
51
  const storage_1 = require("./storage");
52
+ const global_1 = require("./global");
15
53
  class UnboundCli {
16
54
  constructor() {
17
55
  this.auth = new auth_1.UnboundAuth();
@@ -112,7 +150,7 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
112
150
  console.log('');
113
151
  console.log(`API Key: Stored securely in system keychain`);
114
152
  console.log(`Model: ${config.model || 'Default (anthropic/claude-sonnet-4-20250514)'}`);
115
- console.log(`Base URL: ${config.baseUrl || 'https://api.getunbound.ai/v1'}`);
153
+ console.log(`Base URL: ${config.baseUrl || `${global_1.UNBOUND_BASE_URL}/v1`}`);
116
154
  console.log(`Log Level: ${config.logLevel || 'info'}`);
117
155
  if (config.lastUsed) {
118
156
  console.log(`Last Used: ${new Date(config.lastUsed).toLocaleString()}`);
@@ -152,7 +190,123 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
152
190
  (0, child_process_1.execSync)('which claude', { stdio: 'ignore' });
153
191
  }
154
192
  catch (error) {
155
- throw new Error('Claude CLI not found. Please install Claude and make sure it\'s available in your PATH.');
193
+ // Try to auto-install Claude CLI
194
+ await this.checkAndInstallClaudeCode();
195
+ }
196
+ }
197
+ async checkAndInstallClaudeCode() {
198
+ console.log('Claude CLI not found. Installing automatically...');
199
+ try {
200
+ // Attempt to install Claude CLI using npm
201
+ (0, child_process_1.execSync)('npm install -g @anthropic-ai/claude-code', { stdio: 'ignore' });
202
+ }
203
+ catch (installError) {
204
+ throw new Error('Failed to install Claude CLI automatically. Please install manually with: npm install -g @anthropic-ai/claude-code');
205
+ }
206
+ // Check if installation was successful
207
+ try {
208
+ (0, child_process_1.execSync)('which claude', { stdio: 'ignore' });
209
+ console.log('✓ Claude CLI installed successfully');
210
+ }
211
+ catch (checkError) {
212
+ throw new Error('Claude CLI installation completed but command still not found in PATH. Please restart your terminal or check your PATH configuration.');
213
+ }
214
+ }
215
+ /**
216
+ * Sets up Claude configuration files to use Unbound API key
217
+ * Creates ~/.claude/settings.json with apiKeyHelper configuration
218
+ * Creates ~/.claude/anthropic_key.sh with the API key
219
+ */
220
+ async setupClaudeConfig(apiKey) {
221
+ const claudeDir = (0, path_1.join)((0, os_1.homedir)(), '.claude');
222
+ const settingsPath = (0, path_1.join)(claudeDir, 'settings.json');
223
+ const keyHelperPath = (0, path_1.join)(claudeDir, 'anthropic_key.sh');
224
+ try {
225
+ // Ensure ~/.claude directory exists
226
+ await fs_1.promises.mkdir(claudeDir, { recursive: true });
227
+ // Handle settings.json
228
+ let settings = {};
229
+ try {
230
+ // Check if settings.json exists
231
+ await fs_1.promises.access(settingsPath);
232
+ // File exists, read and parse it
233
+ const existingContent = await fs_1.promises.readFile(settingsPath, 'utf8');
234
+ try {
235
+ settings = JSON.parse(existingContent);
236
+ }
237
+ catch (parseError) {
238
+ // Invalid JSON, start with empty object
239
+ console.log('Warning: ~/.claude/settings.json contains invalid JSON, creating new configuration');
240
+ settings = {};
241
+ }
242
+ }
243
+ catch (accessError) {
244
+ // File doesn't exist, we'll create it with empty object
245
+ settings = {};
246
+ }
247
+ // Add/update apiKeyHelper configuration
248
+ settings.apiKeyHelper = '~/.claude/anthropic_key.sh';
249
+ // Write updated settings.json
250
+ await fs_1.promises.writeFile(settingsPath, JSON.stringify(settings, null, 2), 'utf8');
251
+ // Create anthropic_key.sh with the API key
252
+ await fs_1.promises.writeFile(keyHelperPath, `echo ${apiKey}`, 'utf8');
253
+ // Make anthropic_key.sh executable (equivalent to chmod +x)
254
+ const stats = await fs_1.promises.stat(keyHelperPath);
255
+ await fs_1.promises.chmod(keyHelperPath, stats.mode | 0o111);
256
+ console.log('✓ Claude configuration updated successfully');
257
+ console.log(` - Settings: ${settingsPath}`);
258
+ console.log(` - API Key Helper: ${keyHelperPath}`);
259
+ }
260
+ catch (error) {
261
+ throw new Error(`Failed to setup Claude configuration: ${error.message}`);
262
+ }
263
+ }
264
+ async promptVertexConfiguration() {
265
+ const rl = readline.createInterface({
266
+ input: process.stdin,
267
+ output: process.stdout
268
+ });
269
+ const question = (query) => {
270
+ return new Promise((resolve) => {
271
+ rl.question(query, resolve);
272
+ });
273
+ };
274
+ try {
275
+ console.log('\n🔄 Vertex AI Configuration');
276
+ console.log('─'.repeat(40));
277
+ const useVertexAnswer = await question('Do you want to use Vertex AI models? (y/n): ');
278
+ const useVertex = useVertexAnswer.toLowerCase().trim() === 'y' || useVertexAnswer.toLowerCase().trim() === 'yes';
279
+ if (!useVertex) {
280
+ return { useVertex: false };
281
+ }
282
+ console.log('\n📝 Vertex AI Model Configuration:');
283
+ console.log('Default models:');
284
+ console.log(' • Primary model: claude-sonnet-4@20250514');
285
+ console.log(' • Small/fast model: claude-3-5-haiku@20241022');
286
+ console.log('');
287
+ const modifyAnswer = await question('Do you want to modify these defaults? (y/n): ');
288
+ const modifyModels = modifyAnswer.toLowerCase().trim() === 'y' || modifyAnswer.toLowerCase().trim() === 'yes';
289
+ let primaryModel = 'anthropic.claude-sonnet-4@20250514';
290
+ let smallModel = 'anthropic.claude-3-5-haiku@20241022';
291
+ if (modifyModels) {
292
+ console.log('\n📝 Enter custom model IDs:');
293
+ const customPrimary = await question(`Primary model (default: ${primaryModel}): `);
294
+ if (customPrimary.trim()) {
295
+ primaryModel = customPrimary.trim();
296
+ }
297
+ const customSmall = await question(`Small/fast model (default: ${smallModel}): `);
298
+ if (customSmall.trim()) {
299
+ smallModel = customSmall.trim();
300
+ }
301
+ }
302
+ return {
303
+ useVertex: true,
304
+ model: primaryModel,
305
+ smallModel: smallModel
306
+ };
307
+ }
308
+ finally {
309
+ rl.close();
156
310
  }
157
311
  }
158
312
  async authenticateUser(options) {
@@ -170,28 +324,18 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
170
324
  if (!isValid) {
171
325
  throw new Error('Provided API key is invalid');
172
326
  }
173
- console.log('✓ API key verified successfully');
174
- // Store the API key for future use
175
- await this.storage.setApiKey(options.apiKey);
327
+ console.log('✓ API key verified and stored securely');
328
+ // Store the API key for future use (suppress duplicate message)
329
+ await this.storage.setApiKey(options.apiKey, true);
176
330
  return options.apiKey;
177
331
  }
178
332
  // Check if we have a stored API key first
179
333
  const storedApiKey = await this.storage.getApiKey();
180
334
  if (storedApiKey) {
181
335
  console.log('Using stored API key...');
182
- console.log('Verifying stored API key...');
183
336
  const isValid = await this.auth.verifyApiKey(storedApiKey);
184
337
  if (isValid) {
185
- console.log('✓ Stored API key verified successfully');
186
- // Show available models
187
- const models = await this.auth.getModels(storedApiKey);
188
- if (models && models.data && Array.isArray(models.data) && models.data.length > 0) {
189
- const modelNames = models.data
190
- .filter(m => m && m.id)
191
- .slice(0, 5)
192
- .map(m => m.id.includes('/') ? m.id.split('/').pop() : m.id)
193
- .join(', ');
194
- }
338
+ console.log('✓ API key verified successfully');
195
339
  return storedApiKey;
196
340
  }
197
341
  else {
@@ -199,38 +343,56 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
199
343
  await this.storage.clearConfig();
200
344
  }
201
345
  }
202
- // Get API key (from env or prompt) and verify it
346
+ // Get API key (from env or prompt) - verification happens during prompt if needed
203
347
  const apiKey = await this.auth.getApiKeyOnly();
204
- console.log('Verifying API key...');
205
- const isValid = await this.auth.verifyApiKey(apiKey);
206
- if (!isValid) {
207
- throw new Error('Invalid API key. Please check your Unbound API key and try again.');
348
+ // Only verify if key came from environment (prompt already verifies)
349
+ const envApiKey = process.env.UNBOUND_API_KEY;
350
+ if (envApiKey && envApiKey.trim() === apiKey) {
351
+ console.log('Using API key from UNBOUND_API_KEY environment variable...');
352
+ console.log('Verifying API key...');
353
+ const isValid = await this.auth.verifyApiKey(apiKey);
354
+ if (!isValid) {
355
+ throw new Error('Invalid API key. Please check your Unbound API key and try again.');
356
+ }
357
+ console.log('✓ API key verified and stored securely');
208
358
  }
209
- console.log('✓ API key verified successfully');
210
- // Store the API key for future use
211
- await this.storage.setApiKey(apiKey);
212
- // Show available models
213
- const models = await this.auth.getModels(apiKey);
214
- if (models && models.data && Array.isArray(models.data) && models.data.length > 0) {
215
- const modelNames = models.data
216
- .filter(m => m && m.id)
217
- .slice(0, 5)
218
- .map(m => m.id.includes('/') ? m.id.split('/').pop() : m.id)
219
- .join(', ');
359
+ else {
360
+ console.log('✓ API key verified and stored securely');
220
361
  }
362
+ // Store the API key for future use (suppress duplicate message)
363
+ await this.storage.setApiKey(apiKey, true);
221
364
  return apiKey;
222
365
  }
223
- async launchClaudeCode(apiKey, claudeArgs, debug) {
366
+ async launchClaudeCode(apiKey, claudeArgs, debug, vertexConfig) {
224
367
  // Set environment variables to redirect Claude to Unbound gateway
368
+ // Don't set ANTHROPIC_API_KEY in env to avoid the confirmation prompt, api key is set in anthropic_key.sh
225
369
  const env = {
226
370
  ...process.env,
227
- ANTHROPIC_BASE_URL: "https://api.getunbound.ai",
228
- ANTHROPIC_API_KEY: apiKey,
229
371
  UNBOUND_LOG_LEVEL: debug ? 'debug' : 'info',
230
372
  };
231
- console.log('Starting Claude with Unbound AI gateway...');
373
+ if (vertexConfig?.useVertex) {
374
+ // Set Vertex AI environment variables
375
+ env.CLAUDE_CODE_USE_VERTEX = '1';
376
+ env.CLOUD_ML_REGION = 'dummy-region';
377
+ env.ANTHROPIC_VERTEX_PROJECT_ID = 'dummy-project-id';
378
+ env.ANTHROPIC_MODEL = vertexConfig.model;
379
+ env.ANTHROPIC_SMALL_FAST_MODEL = vertexConfig.smallModel;
380
+ console.log('Starting Claude with Vertex AI configuration...');
381
+ console.log(` ✓ Primary model: ${vertexConfig.model}`);
382
+ console.log(` ✓ Small/fast model: ${vertexConfig.smallModel}`);
383
+ }
384
+ else {
385
+ // Standard Unbound proxy configuration
386
+ env.ANTHROPIC_BASE_URL = global_1.UNBOUND_BASE_URL;
387
+ console.log('Starting Claude with Unbound AI gateway...');
388
+ }
389
+ console.log('');
390
+ // Set up NODE_OPTIONS to inject our interceptor into Claude Code process
391
+ const interceptorPath = (0, path_1.join)(__dirname, 'interceptor-loader.js');
392
+ env.NODE_OPTIONS = `--require "${interceptorPath}"`;
393
+ env.UNBOUND_API_KEY = apiKey; // Pass API key to interceptor
232
394
  console.log('');
233
- // Launch claude directly
395
+ // Launch claude directly - it will use the API key from the helper script we set up
234
396
  const claudeProcess = (0, child_process_1.spawn)('claude', claudeArgs, {
235
397
  stdio: 'inherit',
236
398
  env: env
@@ -279,8 +441,13 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
279
441
  await this.checkClaudeCode();
280
442
  // Authenticate user
281
443
  const apiKey = await this.authenticateUser(options);
444
+ // Prompt for Vertex AI configuration
445
+ // const vertexConfig = await this.promptVertexConfiguration();
446
+ const vertexConfig = { useVertex: false }; // Skip vertex configuration for now
447
+ // Setup Claude configuration files
448
+ await this.setupClaudeConfig(apiKey);
282
449
  // Launch Claude Code with interceptor
283
- await this.launchClaudeCode(apiKey, claudeArgs, options.debug || false);
450
+ await this.launchClaudeCode(apiKey, claudeArgs, options.debug || false, vertexConfig);
284
451
  }
285
452
  catch (error) {
286
453
  console.error('Error:', error.message);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const UNBOUND_BASE_URL = "https://api.getunbound.ai";
2
+ //# sourceMappingURL=global.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,8BAA8B,CAAC"}
package/dist/global.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UNBOUND_BASE_URL = void 0;
4
+ // Production:
5
+ exports.UNBOUND_BASE_URL = "https://api.getunbound.ai";
6
+ // Development:
7
+ // export const UNBOUND_BASE_URL = "http://localhost:8787";
8
+ //# sourceMappingURL=global.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACD,QAAA,gBAAgB,GAAG,2BAA2B,CAAC;AAE5D,eAAe;AACf,2DAA2D"}
@@ -19,34 +19,13 @@ if (__filename.includes('node_modules')) {
19
19
 
20
20
  try {
21
21
  // Load the interceptor
22
- const { initializeUnboundInterceptor, setUnboundApiKey } = require(interceptorPath);
22
+ const { initializeUnboundInterceptor } = require(interceptorPath);
23
23
 
24
- // Get API key from environment (it should be set by the CLI)
25
- const apiKey = process.env.UNBOUND_API_KEY;
26
-
27
- if (!apiKey) {
28
- console.error('Error: UNBOUND_API_KEY not passed to interceptor.');
29
- console.error('This should not happen if using the CLI properly.');
30
- process.exit(1);
31
- }
32
-
33
- // Don't set ANTHROPIC_API_KEY - let Claude Code handle its own authentication
34
- // The interceptor will extract the Claude API key from request headers
35
-
36
- // Initialize the interceptor
24
+ // Initialize the interceptor for debugging
37
25
  const interceptor = initializeUnboundInterceptor({
38
26
  logLevel: process.env.UNBOUND_LOG_LEVEL || 'info'
39
27
  });
40
-
41
- // Set the API key
42
- setUnboundApiKey(apiKey);
43
-
44
- // Only log success if not in production mode
45
- if (process.env.UNBOUND_LOG_LEVEL === 'debug') {
46
- console.log('✓ Unbound Code interceptor loaded successfully');
47
- }
48
-
49
28
  } catch (error) {
50
29
  console.error('Failed to load Unbound interceptor:', error.message);
51
- process.exit(1);
30
+ // Don't exit - let Claude Code continue to work even if interceptor fails
52
31
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Unbound Code Interceptor
3
3
  *
4
- * No-op interceptor that just logs requests and headers for debugging.
4
+ * Intercepts and logs requests, particularly Vertex AI requests for debugging.
5
5
  * Uses environment variables to redirect Claude to Unbound gateway.
6
6
  */
7
7
  import { UnboundConfig } from "./types";
@@ -9,6 +9,9 @@ export declare class UnboundInterceptor {
9
9
  private config;
10
10
  constructor(config?: UnboundConfig);
11
11
  setApiKey(apiKey: string): void;
12
+ private isOutgoingRequest;
13
+ private extractModelFromVertexURL;
14
+ private logRequest;
12
15
  instrumentFetch(): void;
13
16
  instrumentAll(): void;
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../src/interceptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,GAAE,aAAkB;IAQ/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B,eAAe,IAAI,IAAI;IAsBvB,aAAa,IAAI,IAAI;CAG5B;AAKD,wBAAgB,4BAA4B,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,kBAAkB,CASvF;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,IAAI,CAEjE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIrD"}
1
+ {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../src/interceptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,GAAE,aAAkB;IAQ/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKtC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,UAAU;IAmDX,eAAe,IAAI,IAAI;IAsEvB,aAAa,IAAI,IAAI;CAG5B;AAKD,wBAAgB,4BAA4B,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,kBAAkB,CASvF;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,IAAI,CAEjE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIrD"}
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Unbound Code Interceptor
4
4
  *
5
- * No-op interceptor that just logs requests and headers for debugging.
5
+ * Intercepts and logs requests, particularly Vertex AI requests for debugging.
6
6
  * Uses environment variables to redirect Claude to Unbound gateway.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -10,10 +10,11 @@ exports.UnboundInterceptor = void 0;
10
10
  exports.initializeUnboundInterceptor = initializeUnboundInterceptor;
11
11
  exports.getUnboundInterceptor = getUnboundInterceptor;
12
12
  exports.setUnboundApiKey = setUnboundApiKey;
13
+ const global_1 = require("./global");
13
14
  class UnboundInterceptor {
14
15
  constructor(config = {}) {
15
16
  this.config = {
16
- baseUrl: "https://api.getunbound.ai/v1",
17
+ baseUrl: `${global_1.UNBOUND_BASE_URL}/v1`,
17
18
  logLevel: "info",
18
19
  ...config,
19
20
  };
@@ -22,6 +23,74 @@ class UnboundInterceptor {
22
23
  // No-op: API key is now handled via environment variables
23
24
  console.log("API key set via environment variables");
24
25
  }
26
+ isOutgoingRequest(url) {
27
+ return url.includes('aiplatform.googleapis.com');
28
+ }
29
+ extractModelFromVertexURL(url) {
30
+ // Extract model from Vertex AI URL pattern:
31
+ // https://us-east5-aiplatform.googleapis.com/v1/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamGenerateContent
32
+ const match = url.match(/\/publishers\/anthropic\/models\/([^:]+)/);
33
+ if (match) {
34
+ let model = match[1];
35
+ // Ensure model starts with 'anthropic.'
36
+ if (!model.startsWith('anthropic.')) {
37
+ model = `anthropic.${model}`;
38
+ }
39
+ return model;
40
+ }
41
+ return 'anthropic.claude-sonnet-4@20250514'; // fallback
42
+ }
43
+ logRequest(url, method, headers, body) {
44
+ console.log('\n🔍 REQUEST INTERCEPTED');
45
+ console.log('═'.repeat(50));
46
+ console.log(`📍 URL: ${url}`);
47
+ console.log(`🔧 Method: ${method}`);
48
+ console.log('\n📋 Headers:');
49
+ if (headers) {
50
+ if (headers instanceof Headers) {
51
+ headers.forEach((value, key) => {
52
+ // Mask sensitive headers
53
+ const maskedValue = key.toLowerCase().includes('authorization') || key.toLowerCase().includes('key')
54
+ ? `${value.substring(0, 10)}...`
55
+ : value;
56
+ console.log(` ${key}: ${maskedValue}`);
57
+ });
58
+ }
59
+ else {
60
+ Object.entries(headers).forEach(([key, value]) => {
61
+ const maskedValue = key.toLowerCase().includes('authorization') || key.toLowerCase().includes('key')
62
+ ? `${String(value).substring(0, 10)}...`
63
+ : value;
64
+ console.log(` ${key}: ${maskedValue}`);
65
+ });
66
+ }
67
+ }
68
+ console.log('\n📦 Body:');
69
+ if (body) {
70
+ try {
71
+ const bodyStr = typeof body === 'string' ? body : body.toString();
72
+ const parsedBody = JSON.parse(bodyStr);
73
+ console.log('📦 Request Payload:');
74
+ console.log(JSON.stringify(parsedBody, null, 2));
75
+ // Specifically log messages if they exist
76
+ if (parsedBody.messages) {
77
+ console.log('\n💬 Messages being sent:');
78
+ parsedBody.messages.forEach((msg, index) => {
79
+ console.log(` Message ${index + 1} (${msg.role}):`);
80
+ console.log(` ${msg.content}`);
81
+ });
82
+ }
83
+ }
84
+ catch (e) {
85
+ console.log('📦 Request Body (raw):');
86
+ console.log(body);
87
+ }
88
+ }
89
+ else {
90
+ console.log('[No body]');
91
+ }
92
+ console.log('═'.repeat(50));
93
+ }
25
94
  instrumentFetch() {
26
95
  if (!global.fetch) {
27
96
  return;
@@ -33,7 +102,49 @@ class UnboundInterceptor {
33
102
  const originalFetch = global.fetch;
34
103
  const interceptor = this;
35
104
  global.fetch = async function (input, init = {}) {
36
- // Just pass through to original fetch - no interception
105
+ const url = typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;
106
+ const method = init.method || 'GET';
107
+ // Log all outgoing requests for debugging
108
+ if (interceptor.isOutgoingRequest(url)) {
109
+ // Log the request for debugging
110
+ // interceptor.logRequest(url, method, init.headers, init.body);
111
+ // Redirect Vertex AI requests to Unbound gateway
112
+ const model = interceptor.extractModelFromVertexURL(url);
113
+ const unboundUrl = `${interceptor.config.baseUrl}/messages`;
114
+ // Parse the original body to add model
115
+ let newBody = init.body;
116
+ if (init.body) {
117
+ try {
118
+ const bodyObj = typeof init.body === 'string' ? JSON.parse(init.body) : init.body;
119
+ const modifiedBody = {
120
+ ...bodyObj,
121
+ model: model
122
+ };
123
+ newBody = JSON.stringify(modifiedBody);
124
+ }
125
+ catch (e) {
126
+ console.error('Failed to parse request body:', e);
127
+ }
128
+ }
129
+ // Create new headers with Unbound API key
130
+ const apiKey = process.env.UNBOUND_API_KEY;
131
+ if (!apiKey) {
132
+ console.error('UNBOUND_API_KEY environment variable not set');
133
+ return originalFetch(input, init);
134
+ }
135
+ const newHeaders = {
136
+ ...init.headers,
137
+ 'x-api-key': apiKey,
138
+ 'content-type': 'application/json'
139
+ };
140
+ // Make the redirected request
141
+ return originalFetch(unboundUrl, {
142
+ ...init,
143
+ headers: newHeaders,
144
+ body: newBody
145
+ });
146
+ }
147
+ // Pass through to original fetch for non-intercepted requests
37
148
  return originalFetch(input, init);
38
149
  };
39
150
  // Mark fetch as instrumented
@@ -1 +1 @@
1
- {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../src/interceptor.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAkDH,oEASC;AAED,sDAEC;AAED,4CAIC;AAjED,MAAa,kBAAkB;IAG9B,YAAY,SAAwB,EAAE;QACrC,IAAI,CAAC,MAAM,GAAG;YACb,OAAO,EAAE,8BAA8B;YACvC,QAAQ,EAAE,MAAM;YAChB,GAAG,MAAM;SACT,CAAC;IACH,CAAC;IAEM,SAAS,CAAC,MAAc;QAC9B,0DAA0D;QAC1D,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACtD,CAAC;IAEM,eAAe;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,gCAAgC;QAChC,IAAK,MAAM,CAAC,KAAa,CAAC,oBAAoB,EAAE,CAAC;YAChD,OAAO;QACR,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC;QAEzB,MAAM,CAAC,KAAK,GAAG,KAAK,WAAW,KAA6B,EAAE,OAAoB,EAAE;YACnF,wDAAwD;YACxD,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,6BAA6B;QAC5B,MAAM,CAAC,KAAa,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACnD,CAAC;IAEM,aAAa;QACnB,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;CACD;AAzCD,gDAyCC;AAED,8BAA8B;AAC9B,IAAI,iBAAiB,GAA8B,IAAI,CAAC;AAExD,SAAgB,4BAA4B,CAAC,MAAsB;IAClE,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO,iBAAiB,CAAC;IAC1B,CAAC;IAED,iBAAiB,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACnD,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAElC,OAAO,iBAAiB,CAAC;AAC1B,CAAC;AAED,SAAgB,qBAAqB;IACpC,OAAO,iBAAiB,CAAC;AAC1B,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAc;IAC9C,IAAI,iBAAiB,EAAE,CAAC;QACvB,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../src/interceptor.ts"],"names":[],"mappings":"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"}
package/dist/storage.d.ts CHANGED
@@ -16,7 +16,7 @@ export declare class UnboundStorage {
16
16
  /**
17
17
  * Store API key in keychain only
18
18
  */
19
- setApiKey(apiKey: string): Promise<void>;
19
+ setApiKey(apiKey: string, silent?: boolean): Promise<void>;
20
20
  /**
21
21
  * Get stored API key from keychain only
22
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;;IAM1C;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAezC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;OAEG;IACH,aAAa,IAAI,aAAa;IAQ9B;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAKnD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBlC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAKnC;;OAEG;IACH,aAAa,IAAI,OAAO;CAKzB"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;;IAM1C;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAevE;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAezC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;OAEG;IACH,aAAa,IAAI,aAAa;IAQ9B;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAKnD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBlC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAKnC;;OAEG;IACH,aAAa,IAAI,OAAO;CAKzB"}
package/dist/storage.js CHANGED
@@ -6,6 +6,7 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.UnboundStorage = void 0;
9
+ const global_1 = require("./global");
9
10
  // Import keytar for keychain integration
10
11
  let keytar = null;
11
12
  try {
@@ -24,13 +25,15 @@ class UnboundStorage {
24
25
  /**
25
26
  * Store API key in keychain only
26
27
  */
27
- async setApiKey(apiKey) {
28
+ async setApiKey(apiKey, silent = false) {
28
29
  if (!keytar) {
29
30
  throw new Error('keytar not available. Cannot store API key securely.');
30
31
  }
31
32
  try {
32
33
  await keytar.setPassword(this.SERVICE_NAME, this.ACCOUNT_NAME, apiKey);
33
- console.log('✓ API key stored securely in system keychain');
34
+ if (!silent) {
35
+ console.log('✓ API key stored securely in system keychain');
36
+ }
34
37
  }
35
38
  catch (error) {
36
39
  throw new Error(`Failed to store API key in keychain: ${error}`);
@@ -72,7 +75,7 @@ class UnboundStorage {
72
75
  getFullConfig() {
73
76
  return {
74
77
  model: 'anthropic/claude-sonnet-4-20250514',
75
- baseUrl: 'https://api.getunbound.ai/v1',
78
+ baseUrl: `${global_1.UNBOUND_BASE_URL}/v1`,
76
79
  logLevel: 'info'
77
80
  };
78
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unbound-claude-code",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Claude Code with Unbound integration - Drop-in replacement for Claude Code with multi-provider routing and cost optimization",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -60,8 +60,5 @@
60
60
  "@anthropic-ai/claude-code": ">=0.1.0",
61
61
  "keytar": "^7.9.0",
62
62
  "rebuild": "^0.1.2"
63
- },
64
- "peerDependencies": {
65
- "@anthropic-ai/claude-code": ">=0.1.0"
66
63
  }
67
64
  }