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.
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +11 -13
- package/dist/auth.js.map +1 -1
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +205 -38
- package/dist/cli.js.map +1 -1
- package/dist/global.d.ts +2 -0
- package/dist/global.d.ts.map +1 -0
- package/dist/global.js +8 -0
- package/dist/global.js.map +1 -0
- package/dist/interceptor-loader.js +3 -24
- package/dist/interceptor.d.ts +4 -1
- package/dist/interceptor.d.ts.map +1 -1
- package/dist/interceptor.js +114 -3
- package/dist/interceptor.js.map +1 -1
- package/dist/storage.d.ts +1 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +6 -3
- package/dist/storage.js.map +1 -1
- package/package.json +1 -4
package/dist/auth.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
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 =
|
|
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":";AAAA;;GAEG;;;AAGH,uCAA2C;
|
|
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;
|
|
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 ||
|
|
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
|
-
|
|
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
|
|
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('✓
|
|
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)
|
|
346
|
+
// Get API key (from env or prompt) - verification happens during prompt if needed
|
|
203
347
|
const apiKey = await this.auth.getApiKeyOnly();
|
|
204
|
-
|
|
205
|
-
const
|
|
206
|
-
if (
|
|
207
|
-
|
|
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
|
-
|
|
210
|
-
|
|
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
|
-
|
|
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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"}
|
package/dist/global.d.ts
ADDED
|
@@ -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
|
|
22
|
+
const { initializeUnboundInterceptor } = require(interceptorPath);
|
|
23
23
|
|
|
24
|
-
//
|
|
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
|
-
|
|
30
|
+
// Don't exit - let Claude Code continue to work even if interceptor fails
|
|
52
31
|
}
|
package/dist/interceptor.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Unbound Code Interceptor
|
|
3
3
|
*
|
|
4
|
-
*
|
|
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;
|
|
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"}
|
package/dist/interceptor.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Unbound Code Interceptor
|
|
4
4
|
*
|
|
5
|
-
*
|
|
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:
|
|
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
|
-
|
|
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
|
package/dist/interceptor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../src/interceptor.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../src/interceptor.ts"],"names":[],"mappings":"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"}
|
package/dist/storage.d.ts
CHANGED
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
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
|
-
|
|
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:
|
|
78
|
+
baseUrl: `${global_1.UNBOUND_BASE_URL}/v1`,
|
|
76
79
|
logLevel: 'info'
|
|
77
80
|
};
|
|
78
81
|
}
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,yCAAyC;AACzC,IAAI,MAAM,GAAQ,IAAI,CAAC;AACvB,IAAI,CAAC;IACH,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,uBAAuB;IACvB,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;AACtE,CAAC;AASD,MAAa,cAAc;IAIzB;QAHiB,iBAAY,GAAG,qBAAqB,CAAC;QACrC,iBAAY,GAAG,SAAS,CAAC;QAGxC,gDAAgD;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAAc;
|
|
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
|
+
"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
|
}
|