unbound-claude-code 0.2.3 → 0.2.5

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;AAGhD,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;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"}
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,8 +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 global_1 = require("./global");
8
9
  class UnboundAuth {
9
- constructor(baseUrl = "https://api.getunbound.ai/v1") {
10
+ constructor(baseUrl = `${global_1.UNBOUND_BASE_URL}/v1`) {
10
11
  this.baseUrl = baseUrl;
11
12
  this.storage = new storage_1.UnboundStorage();
12
13
  }
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
@@ -24,6 +24,7 @@ declare class UnboundCli {
24
24
  * Creates ~/.claude/anthropic_key.sh with the API key
25
25
  */
26
26
  private setupClaudeConfig;
27
+ private promptVertexConfiguration;
27
28
  private authenticateUser;
28
29
  private launchClaudeCode;
29
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;AAoBH,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,gBAAgB;YA4DhB,gBAAgB;IAuCjB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA8ChD;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;YAKL,UAAU;YAgBV,WAAW;YAIX,QAAQ;YAyBR,eAAe;YAWf,yBAAyB;IA0CvC;;;;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,14 +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");
13
46
  const fs_1 = require("fs");
14
47
  const path_1 = require("path");
15
48
  const os_1 = require("os");
49
+ const readline = __importStar(require("readline"));
16
50
  const auth_1 = require("./auth");
17
51
  const storage_1 = require("./storage");
52
+ const global_1 = require("./global");
18
53
  class UnboundCli {
19
54
  constructor() {
20
55
  this.auth = new auth_1.UnboundAuth();
@@ -109,20 +144,20 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
109
144
  const packageJson = require('../package.json');
110
145
  console.log(`unbound-claude-code v${packageJson.version}`);
111
146
  }
112
- showConfig() {
113
- const config = this.storage.getFullConfig();
147
+ async showConfig() {
148
+ const config = await this.storage.getFullConfig();
114
149
  console.log('Current Unbound Code Configuration:');
115
150
  console.log('');
116
151
  console.log(`API Key: Stored securely in system keychain`);
117
152
  console.log(`Model: ${config.model || 'Default (anthropic/claude-sonnet-4-20250514)'}`);
118
- console.log(`Base URL: ${config.baseUrl || 'https://api.getunbound.ai/v1'}`);
153
+ console.log(`Base URL: ${config.baseUrl || `${global_1.UNBOUND_BASE_URL}/v1`}`);
119
154
  console.log(`Log Level: ${config.logLevel || 'info'}`);
120
155
  if (config.lastUsed) {
121
156
  console.log(`Last Used: ${new Date(config.lastUsed).toLocaleString()}`);
122
157
  }
123
158
  console.log('');
124
159
  console.log(`Config stored at: ~/.unbound-code/config.json (non-sensitive data only)`);
125
- console.log(`API key stored securely in system keychain`);
160
+ console.log(`API key stored securely in system keychain when available`);
126
161
  }
127
162
  async clearConfig() {
128
163
  await this.storage.clearConfig();
@@ -146,13 +181,14 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
146
181
  return;
147
182
  }
148
183
  }
149
- this.storage.setModel(model);
184
+ await this.storage.setModel(model);
150
185
  console.log(`✓ Default model set to: ${model}`);
151
186
  }
152
187
  async checkClaudeCode() {
153
- // Check if claude command is available
188
+ // Check if claude command is available (cross-platform)
154
189
  try {
155
- (0, child_process_1.execSync)('which claude', { stdio: 'ignore' });
190
+ const command = process.platform === 'win32' ? 'where claude' : 'which claude';
191
+ (0, child_process_1.execSync)(command, { stdio: 'ignore' });
156
192
  }
157
193
  catch (error) {
158
194
  // Try to auto-install Claude CLI
@@ -162,19 +198,43 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
162
198
  async checkAndInstallClaudeCode() {
163
199
  console.log('Claude CLI not found. Installing automatically...');
164
200
  try {
165
- // Attempt to install Claude CLI using npm
166
- (0, child_process_1.execSync)('npm install -g @anthropic-ai/claude-code', { stdio: 'ignore' });
201
+ // Attempt to install Claude CLI using npm with more verbose output for debugging
202
+ const installCommand = 'npm install -g @anthropic-ai/claude-code';
203
+ console.log(`Running: ${installCommand}`);
204
+ try {
205
+ (0, child_process_1.execSync)(installCommand, {
206
+ stdio: 'pipe',
207
+ timeout: 60000 // 60 second timeout
208
+ });
209
+ }
210
+ catch (installError) {
211
+ // More detailed error reporting
212
+ console.error('Installation error details:', installError.message);
213
+ if (installError.stderr) {
214
+ console.error('Installation stderr:', installError.stderr.toString());
215
+ }
216
+ throw new Error(`Failed to install Claude CLI automatically. Error: ${installError.message}. Please install manually with: npm install -g @anthropic-ai/claude-code`);
217
+ }
167
218
  }
168
- catch (installError) {
169
- throw new Error('Failed to install Claude CLI automatically. Please install manually with: npm install -g @anthropic-ai/claude-code');
219
+ catch (error) {
220
+ throw new Error(`Failed to install Claude CLI automatically. ${error.message}`);
170
221
  }
171
- // Check if installation was successful
222
+ // Check if installation was successful (cross-platform)
172
223
  try {
173
- (0, child_process_1.execSync)('which claude', { stdio: 'ignore' });
224
+ const command = process.platform === 'win32' ? 'where claude' : 'which claude';
225
+ (0, child_process_1.execSync)(command, { stdio: 'ignore' });
174
226
  console.log('✓ Claude CLI installed successfully');
175
227
  }
176
228
  catch (checkError) {
177
- throw new Error('Claude CLI installation completed but command still not found in PATH. Please restart your terminal or check your PATH configuration.');
229
+ // Try alternative check methods
230
+ try {
231
+ // Try running claude directly to see if it's available
232
+ (0, child_process_1.execSync)('claude --version', { stdio: 'ignore', timeout: 5000 });
233
+ console.log('✓ Claude CLI installed successfully');
234
+ }
235
+ catch (versionError) {
236
+ throw new Error('Claude CLI installation completed but command still not found in PATH. Please restart your terminal or check your PATH configuration.');
237
+ }
178
238
  }
179
239
  }
180
240
  /**
@@ -226,6 +286,54 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
226
286
  throw new Error(`Failed to setup Claude configuration: ${error.message}`);
227
287
  }
228
288
  }
289
+ async promptVertexConfiguration() {
290
+ const rl = readline.createInterface({
291
+ input: process.stdin,
292
+ output: process.stdout
293
+ });
294
+ const question = (query) => {
295
+ return new Promise((resolve) => {
296
+ rl.question(query, resolve);
297
+ });
298
+ };
299
+ try {
300
+ console.log('\n🔄 Vertex AI Configuration');
301
+ console.log('─'.repeat(40));
302
+ const useVertexAnswer = await question('Do you want to use Vertex AI models? (y/n): ');
303
+ const useVertex = useVertexAnswer.toLowerCase().trim() === 'y' || useVertexAnswer.toLowerCase().trim() === 'yes';
304
+ if (!useVertex) {
305
+ return { useVertex: false };
306
+ }
307
+ console.log('\n📝 Vertex AI Model Configuration:');
308
+ console.log('Default models:');
309
+ console.log(' • Primary model: claude-sonnet-4@20250514');
310
+ console.log(' • Small/fast model: claude-3-5-haiku@20241022');
311
+ console.log('');
312
+ const modifyAnswer = await question('Do you want to modify these defaults? (y/n): ');
313
+ const modifyModels = modifyAnswer.toLowerCase().trim() === 'y' || modifyAnswer.toLowerCase().trim() === 'yes';
314
+ let primaryModel = 'anthropic.claude-sonnet-4@20250514';
315
+ let smallModel = 'anthropic.claude-3-5-haiku@20241022';
316
+ if (modifyModels) {
317
+ console.log('\n📝 Enter custom model IDs:');
318
+ const customPrimary = await question(`Primary model (default: ${primaryModel}): `);
319
+ if (customPrimary.trim()) {
320
+ primaryModel = customPrimary.trim();
321
+ }
322
+ const customSmall = await question(`Small/fast model (default: ${smallModel}): `);
323
+ if (customSmall.trim()) {
324
+ smallModel = customSmall.trim();
325
+ }
326
+ }
327
+ return {
328
+ useVertex: true,
329
+ model: primaryModel,
330
+ smallModel: smallModel
331
+ };
332
+ }
333
+ finally {
334
+ rl.close();
335
+ }
336
+ }
229
337
  async authenticateUser(options) {
230
338
  if (options.skipAuth) {
231
339
  const apiKey = process.env.UNBOUND_API_KEY;
@@ -280,15 +388,34 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
280
388
  await this.storage.setApiKey(apiKey, true);
281
389
  return apiKey;
282
390
  }
283
- async launchClaudeCode(apiKey, claudeArgs, debug) {
391
+ async launchClaudeCode(apiKey, claudeArgs, debug, vertexConfig) {
284
392
  // Set environment variables to redirect Claude to Unbound gateway
285
393
  // Don't set ANTHROPIC_API_KEY in env to avoid the confirmation prompt, api key is set in anthropic_key.sh
286
394
  const env = {
287
395
  ...process.env,
288
- ANTHROPIC_BASE_URL: "https://api.getunbound.ai",
289
396
  UNBOUND_LOG_LEVEL: debug ? 'debug' : 'info',
290
397
  };
291
- console.log('Starting Claude with Unbound AI gateway...');
398
+ if (vertexConfig?.useVertex) {
399
+ // Set Vertex AI environment variables
400
+ env.CLAUDE_CODE_USE_VERTEX = '1';
401
+ env.CLOUD_ML_REGION = 'dummy-region';
402
+ env.ANTHROPIC_VERTEX_PROJECT_ID = 'dummy-project-id';
403
+ env.ANTHROPIC_MODEL = vertexConfig.model;
404
+ env.ANTHROPIC_SMALL_FAST_MODEL = vertexConfig.smallModel;
405
+ console.log('Starting Claude with Vertex AI configuration...');
406
+ console.log(` ✓ Primary model: ${vertexConfig.model}`);
407
+ console.log(` ✓ Small/fast model: ${vertexConfig.smallModel}`);
408
+ }
409
+ else {
410
+ // Standard Unbound proxy configuration
411
+ env.ANTHROPIC_BASE_URL = global_1.UNBOUND_BASE_URL;
412
+ console.log('Starting Claude with Unbound AI gateway...');
413
+ }
414
+ console.log('');
415
+ // Set up NODE_OPTIONS to inject our interceptor into Claude Code process
416
+ const interceptorPath = (0, path_1.join)(__dirname, 'interceptor-loader.js');
417
+ env.NODE_OPTIONS = `--require "${interceptorPath}"`;
418
+ env.UNBOUND_API_KEY = apiKey; // Pass API key to interceptor
292
419
  console.log('');
293
420
  // Launch claude directly - it will use the API key from the helper script we set up
294
421
  const claudeProcess = (0, child_process_1.spawn)('claude', claudeArgs, {
@@ -324,7 +451,7 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
324
451
  return;
325
452
  }
326
453
  if (options.showConfig) {
327
- this.showConfig();
454
+ await this.showConfig();
328
455
  return;
329
456
  }
330
457
  if (options.clearConfig) {
@@ -339,10 +466,13 @@ and ANTHROPIC_API_KEY set to your Unbound API key.
339
466
  await this.checkClaudeCode();
340
467
  // Authenticate user
341
468
  const apiKey = await this.authenticateUser(options);
469
+ // Prompt for Vertex AI configuration
470
+ // const vertexConfig = await this.promptVertexConfiguration();
471
+ const vertexConfig = { useVertex: false }; // Skip vertex configuration for now
342
472
  // Setup Claude configuration files
343
473
  await this.setupClaudeConfig(apiKey);
344
474
  // Launch Claude Code with interceptor
345
- await this.launchClaudeCode(apiKey, claudeArgs, options.debug || false);
475
+ await this.launchClaudeCode(apiKey, claudeArgs, options.debug || false, vertexConfig);
346
476
  }
347
477
  catch (error) {
348
478
  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,10 @@
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
+ //staging
9
+ //export const UNBOUND_BASE_URL = "https://ai-gateway-43843357113.us-west1.run.app";
10
+ //# 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,0DAA0D;AAE1D,SAAS;AACT,oFAAoF"}
@@ -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
@@ -1,48 +1,55 @@
1
1
  /**
2
2
  * Unbound Code Storage - API Key and Config Management
3
3
  *
4
- * Stores API key securely in system keychain only
4
+ * Stores API key securely in system keychain when available,
5
+ * falls back to file-based storage for cross-platform compatibility
5
6
  */
6
7
  export interface UnboundConfig {
7
8
  model?: string;
8
9
  baseUrl?: string;
9
10
  logLevel?: string;
10
11
  lastUsed?: string;
12
+ apiKey?: string;
11
13
  }
12
14
  export declare class UnboundStorage {
13
15
  private readonly SERVICE_NAME;
14
16
  private readonly ACCOUNT_NAME;
17
+ private readonly CONFIG_DIR;
18
+ private readonly CONFIG_FILE;
15
19
  constructor();
20
+ private ensureConfigDir;
21
+ private readConfig;
22
+ private writeConfig;
16
23
  /**
17
- * Store API key in keychain only
24
+ * Store API key securely (keychain preferred, file fallback)
18
25
  */
19
26
  setApiKey(apiKey: string, silent?: boolean): Promise<void>;
20
27
  /**
21
- * Get stored API key from keychain only
28
+ * Get stored API key (keychain preferred, file fallback)
22
29
  */
23
30
  getApiKey(): Promise<string | null>;
24
31
  /**
25
- * Get stored model (default only)
32
+ * Get stored model
26
33
  */
27
- getModel(): string;
34
+ getModel(): Promise<string>;
28
35
  /**
29
- * Store model (no-op since we don't use config file)
36
+ * Store model preference
30
37
  */
31
- setModel(model: string): void;
38
+ setModel(model: string): Promise<void>;
32
39
  /**
33
- * Get full configuration (defaults only)
40
+ * Get full configuration
34
41
  */
35
- getFullConfig(): UnboundConfig;
42
+ getFullConfig(): Promise<UnboundConfig>;
36
43
  /**
37
- * Update configuration (no-op since we don't use config file)
44
+ * Update configuration
38
45
  */
39
- updateConfig(updates: Partial<UnboundConfig>): void;
46
+ updateConfig(updates: Partial<UnboundConfig>): Promise<void>;
40
47
  /**
41
- * Clear all stored data including keychain
48
+ * Clear all stored data including keychain and config file
42
49
  */
43
50
  clearConfig(): Promise<void>;
44
51
  /**
45
- * Check if API key is stored (async version)
52
+ * Check if API key is stored
46
53
  */
47
54
  hasApiKey(): Promise<boolean>;
48
55
  /**
@@ -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,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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,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;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;;YAOtD,eAAe;YASf,UAAU;YAUV,WAAW;IASzB;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BvE;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAuBzC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IASjC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAkB7C;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BlC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAKnC;;OAEG;IACH,aAAa,IAAI,OAAO;CAKzB"}
package/dist/storage.js CHANGED
@@ -2,10 +2,15 @@
2
2
  /**
3
3
  * Unbound Code Storage - API Key and Config Management
4
4
  *
5
- * Stores API key securely in system keychain only
5
+ * Stores API key securely in system keychain when available,
6
+ * falls back to file-based storage for cross-platform compatibility
6
7
  */
7
8
  Object.defineProperty(exports, "__esModule", { value: true });
8
9
  exports.UnboundStorage = void 0;
10
+ const fs_1 = require("fs");
11
+ const path_1 = require("path");
12
+ const os_1 = require("os");
13
+ const global_1 = require("./global");
9
14
  // Import keytar for keychain integration
10
15
  let keytar = null;
11
16
  try {
@@ -13,80 +18,163 @@ try {
13
18
  }
14
19
  catch (error) {
15
20
  // keytar not available
16
- console.warn('keytar not available, API key storage will not work');
17
21
  }
18
22
  class UnboundStorage {
19
23
  constructor() {
20
24
  this.SERVICE_NAME = 'unbound-claude-code';
21
25
  this.ACCOUNT_NAME = 'api-key';
22
- // No config file needed - only keychain storage
26
+ this.CONFIG_DIR = (0, path_1.join)((0, os_1.homedir)(), '.unbound-code');
27
+ this.CONFIG_FILE = (0, path_1.join)(this.CONFIG_DIR, 'config.json');
28
+ // Ensure config directory exists
29
+ this.ensureConfigDir();
30
+ }
31
+ async ensureConfigDir() {
32
+ try {
33
+ await fs_1.promises.mkdir(this.CONFIG_DIR, { recursive: true });
34
+ }
35
+ catch (error) {
36
+ // Directory already exists or creation failed - ignore
37
+ //console.warn('Failed to create config directory:', error);
38
+ }
39
+ }
40
+ async readConfig() {
41
+ try {
42
+ await this.ensureConfigDir();
43
+ const configData = await fs_1.promises.readFile(this.CONFIG_FILE, 'utf8');
44
+ return JSON.parse(configData);
45
+ }
46
+ catch (error) {
47
+ return {};
48
+ }
49
+ }
50
+ async writeConfig(config) {
51
+ try {
52
+ await this.ensureConfigDir();
53
+ await fs_1.promises.writeFile(this.CONFIG_FILE, JSON.stringify(config, null, 2), 'utf8');
54
+ }
55
+ catch (error) {
56
+ console.warn('Failed to write config file:', error);
57
+ }
23
58
  }
24
59
  /**
25
- * Store API key in keychain only
60
+ * Store API key securely (keychain preferred, file fallback)
26
61
  */
27
62
  async setApiKey(apiKey, silent = false) {
28
- if (!keytar) {
29
- throw new Error('keytar not available. Cannot store API key securely.');
63
+ // Try keychain first
64
+ if (keytar) {
65
+ try {
66
+ await keytar.setPassword(this.SERVICE_NAME, this.ACCOUNT_NAME, apiKey);
67
+ if (!silent) {
68
+ console.log('✓ API key stored securely in system keychain');
69
+ }
70
+ return;
71
+ }
72
+ catch (error) {
73
+ //console.warn('Failed to store in keychain, using file fallback:', error);
74
+ }
30
75
  }
76
+ // Fallback to file storage
31
77
  try {
32
- await keytar.setPassword(this.SERVICE_NAME, this.ACCOUNT_NAME, apiKey);
78
+ const config = await this.readConfig();
79
+ config.apiKey = apiKey;
80
+ await this.writeConfig(config);
33
81
  if (!silent) {
34
- console.log('✓ API key stored securely in system keychain');
82
+ console.log('✓ API key stored in config file (consider installing keytar for secure storage)');
35
83
  }
36
84
  }
37
85
  catch (error) {
38
- throw new Error(`Failed to store API key in keychain: ${error}`);
86
+ throw new Error(`Failed to store API key: ${error}`);
39
87
  }
40
88
  }
41
89
  /**
42
- * Get stored API key from keychain only
90
+ * Get stored API key (keychain preferred, file fallback)
43
91
  */
44
92
  async getApiKey() {
45
- if (!keytar) {
46
- console.warn('keytar not available, cannot retrieve API key from keychain');
47
- return null;
93
+ // Try keychain first
94
+ if (keytar) {
95
+ try {
96
+ const keychainKey = await keytar.getPassword(this.SERVICE_NAME, this.ACCOUNT_NAME);
97
+ if (keychainKey) {
98
+ return keychainKey;
99
+ }
100
+ }
101
+ catch (error) {
102
+ console.warn('Keychain access failed, trying file fallback:', error);
103
+ }
48
104
  }
105
+ // Fallback to file storage
49
106
  try {
50
- const keychainKey = await keytar.getPassword(this.SERVICE_NAME, this.ACCOUNT_NAME);
51
- return keychainKey;
107
+ const config = await this.readConfig();
108
+ return config.apiKey || null;
52
109
  }
53
110
  catch (error) {
54
- console.warn('Keychain access failed:', error);
111
+ console.warn('Failed to read config file:', error);
55
112
  return null;
56
113
  }
57
114
  }
58
115
  /**
59
- * Get stored model (default only)
116
+ * Get stored model
60
117
  */
61
- getModel() {
62
- return 'anthropic/claude-sonnet-4-20250514';
118
+ async getModel() {
119
+ try {
120
+ const config = await this.readConfig();
121
+ return config.model || 'anthropic/claude-sonnet-4-20250514';
122
+ }
123
+ catch (error) {
124
+ return 'anthropic/claude-sonnet-4-20250514';
125
+ }
63
126
  }
64
127
  /**
65
- * Store model (no-op since we don't use config file)
128
+ * Store model preference
66
129
  */
67
- setModel(model) {
68
- // No-op - models are not persisted
69
- console.log(`✓ Model preference set to: ${model} (not persisted)`);
130
+ async setModel(model) {
131
+ try {
132
+ const config = await this.readConfig();
133
+ config.model = model;
134
+ await this.writeConfig(config);
135
+ console.log(`✓ Model preference set to: ${model}`);
136
+ }
137
+ catch (error) {
138
+ console.warn('Failed to save model preference:', error);
139
+ }
70
140
  }
71
141
  /**
72
- * Get full configuration (defaults only)
142
+ * Get full configuration
73
143
  */
74
- getFullConfig() {
75
- return {
76
- model: 'anthropic/claude-sonnet-4-20250514',
77
- baseUrl: 'https://api.getunbound.ai/v1',
78
- logLevel: 'info'
79
- };
144
+ async getFullConfig() {
145
+ try {
146
+ const config = await this.readConfig();
147
+ return {
148
+ model: config.model || 'anthropic/claude-sonnet-4-20250514',
149
+ baseUrl: config.baseUrl || 'https://api.getunbound.ai/v1',
150
+ logLevel: config.logLevel || 'info',
151
+ lastUsed: config.lastUsed
152
+ };
153
+ }
154
+ catch (error) {
155
+ return {
156
+ model: 'anthropic/claude-sonnet-4-20250514',
157
+ baseUrl: `${global_1.UNBOUND_BASE_URL}/v1`,
158
+ logLevel: 'info'
159
+ };
160
+ }
80
161
  }
81
162
  /**
82
- * Update configuration (no-op since we don't use config file)
163
+ * Update configuration
83
164
  */
84
- updateConfig(updates) {
85
- // No-op - config is not persisted
86
- console.log('Configuration updates are not persisted');
165
+ async updateConfig(updates) {
166
+ try {
167
+ const config = await this.readConfig();
168
+ Object.assign(config, updates);
169
+ await this.writeConfig(config);
170
+ console.log('Configuration updated successfully');
171
+ }
172
+ catch (error) {
173
+ console.warn('Failed to update configuration:', error);
174
+ }
87
175
  }
88
176
  /**
89
- * Clear all stored data including keychain
177
+ * Clear all stored data including keychain and config file
90
178
  */
91
179
  async clearConfig() {
92
180
  try {
@@ -100,6 +188,14 @@ class UnboundStorage {
100
188
  console.warn('Failed to clear API key from keychain:', error);
101
189
  }
102
190
  }
191
+ // Clear config file
192
+ try {
193
+ await fs_1.promises.unlink(this.CONFIG_FILE);
194
+ console.log('✓ Config file cleared');
195
+ }
196
+ catch (error) {
197
+ // File might not exist, which is fine
198
+ }
103
199
  console.log('✓ Configuration cleared successfully');
104
200
  }
105
201
  catch (error) {
@@ -107,7 +203,7 @@ class UnboundStorage {
107
203
  }
108
204
  }
109
205
  /**
110
- * Check if API key is stored (async version)
206
+ * Check if API key is stored
111
207
  */
112
208
  async hasApiKey() {
113
209
  const apiKey = await this.getApiKey();
@@ -117,7 +213,7 @@ class UnboundStorage {
117
213
  * Check if API key is stored (sync version for backward compatibility)
118
214
  */
119
215
  hasApiKeySync() {
120
- // This method is deprecated since we only use keychain now
216
+ // This method is deprecated since we only use async now
121
217
  // Return false to force async check
122
218
  return false;
123
219
  }
@@ -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.3",
3
+ "version": "0.2.5",
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": {
@@ -15,7 +15,8 @@
15
15
  "test:watch": "jest --watch",
16
16
  "test:coverage": "jest --coverage",
17
17
  "prepare": "npm run build",
18
- "prepublishOnly": "npm run clean && npm run build && npm run typecheck"
18
+ "prepublishOnly": "npm run clean && npm run build && npm run typecheck",
19
+ "postinstall": "node -e \"try { require('keytar'); console.log('✓ keytar available for secure storage'); } catch(e) { console.warn('⚠ keytar not available, using file-based storage fallback. For secure storage, install build tools and run: npm install keytar'); }\""
19
20
  },
20
21
  "files": [
21
22
  "dist/**/*",
@@ -57,8 +58,9 @@
57
58
  "typescript": "^5.0.0"
58
59
  },
59
60
  "dependencies": {
60
- "@anthropic-ai/claude-code": ">=0.1.0",
61
- "keytar": "^7.9.0",
62
- "rebuild": "^0.1.2"
61
+ "@anthropic-ai/claude-code": ">=0.1.0"
62
+ },
63
+ "optionalDependencies": {
64
+ "keytar": "^7.9.0"
63
65
  }
64
66
  }