@fuseapi/cli 1.0.0 → 1.0.2
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/index.js +99 -19
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -61,7 +61,15 @@ function loadConfig() {
|
|
|
61
61
|
}
|
|
62
62
|
try {
|
|
63
63
|
const data = fs.readFileSync(CONFIG_FILE, 'utf-8');
|
|
64
|
-
|
|
64
|
+
const parsed = JSON.parse(data);
|
|
65
|
+
// Auto-migrate old format
|
|
66
|
+
if (!parsed.version) {
|
|
67
|
+
const migrated = migrateConfig(parsed);
|
|
68
|
+
saveConfig(migrated);
|
|
69
|
+
console.log('[i] Configuration migrated to multi-profile format');
|
|
70
|
+
return migrated;
|
|
71
|
+
}
|
|
72
|
+
return parsed;
|
|
65
73
|
}
|
|
66
74
|
catch (error) {
|
|
67
75
|
console.error('[!] Failed to load config:', error);
|
|
@@ -72,6 +80,35 @@ function saveConfig(config) {
|
|
|
72
80
|
ensureConfigDir();
|
|
73
81
|
fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
|
|
74
82
|
}
|
|
83
|
+
function migrateConfig(oldConfig) {
|
|
84
|
+
// Old format: { endpoint, apiKey }
|
|
85
|
+
// New format: { version, default, profiles: { ... } }
|
|
86
|
+
return {
|
|
87
|
+
version: 1,
|
|
88
|
+
default: 'fuse',
|
|
89
|
+
profiles: {
|
|
90
|
+
fuse: {
|
|
91
|
+
endpoint: oldConfig.endpoint,
|
|
92
|
+
apiKey: oldConfig.apiKey
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function detectProfile(args) {
|
|
98
|
+
// Check if first arg is a profile name
|
|
99
|
+
const firstArg = args[0];
|
|
100
|
+
if (!firstArg || firstArg.startsWith('-')) {
|
|
101
|
+
// No profile specified, use default
|
|
102
|
+
return { profile: 'default', remainingArgs: args };
|
|
103
|
+
}
|
|
104
|
+
const config = loadConfig();
|
|
105
|
+
if (config && config.profiles[firstArg]) {
|
|
106
|
+
// First arg is a valid profile name
|
|
107
|
+
return { profile: firstArg, remainingArgs: args.slice(1) };
|
|
108
|
+
}
|
|
109
|
+
// First arg is not a profile, treat as Claude argument
|
|
110
|
+
return { profile: 'default', remainingArgs: args };
|
|
111
|
+
}
|
|
75
112
|
// ========== UI Helpers ==========
|
|
76
113
|
function prompt(question) {
|
|
77
114
|
const rl = readline.createInterface({
|
|
@@ -91,6 +128,7 @@ async function cmdSetup(args) {
|
|
|
91
128
|
// Parse CLI args
|
|
92
129
|
let endpoint = 'https://api.fuseapi.app';
|
|
93
130
|
let apiKey = '';
|
|
131
|
+
let profileName = 'fuse';
|
|
94
132
|
for (let i = 0; i < args.length; i++) {
|
|
95
133
|
if (args[i] === '--endpoint' && args[i + 1]) {
|
|
96
134
|
endpoint = args[++i];
|
|
@@ -98,11 +136,14 @@ async function cmdSetup(args) {
|
|
|
98
136
|
else if (args[i] === '--api-key' && args[i + 1]) {
|
|
99
137
|
apiKey = args[++i];
|
|
100
138
|
}
|
|
139
|
+
else if (args[i] === '--profile' && args[i + 1]) {
|
|
140
|
+
profileName = args[++i];
|
|
141
|
+
}
|
|
101
142
|
}
|
|
102
143
|
// Interactive prompts if not provided
|
|
103
144
|
if (!apiKey) {
|
|
104
145
|
const currentConfig = loadConfig();
|
|
105
|
-
const defaultEndpoint = currentConfig?.endpoint || endpoint;
|
|
146
|
+
const defaultEndpoint = currentConfig?.profiles?.fuse?.endpoint || endpoint;
|
|
106
147
|
endpoint = await prompt(`API Endpoint [${defaultEndpoint}]: `) || defaultEndpoint;
|
|
107
148
|
apiKey = await prompt('API Key: ');
|
|
108
149
|
}
|
|
@@ -110,12 +151,26 @@ async function cmdSetup(args) {
|
|
|
110
151
|
console.error('[!] API Key is required');
|
|
111
152
|
process.exit(1);
|
|
112
153
|
}
|
|
113
|
-
//
|
|
114
|
-
|
|
154
|
+
// Load or create config
|
|
155
|
+
let config = loadConfig();
|
|
156
|
+
if (!config) {
|
|
157
|
+
config = {
|
|
158
|
+
version: 1,
|
|
159
|
+
default: profileName,
|
|
160
|
+
profiles: {}
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
// Add/update profile
|
|
164
|
+
config.profiles[profileName] = { endpoint, apiKey };
|
|
165
|
+
if (!config.default) {
|
|
166
|
+
config.default = profileName;
|
|
167
|
+
}
|
|
168
|
+
saveConfig(config);
|
|
115
169
|
console.log('\n[OK] Configuration saved!');
|
|
170
|
+
console.log(` Profile: ${profileName}`);
|
|
116
171
|
console.log(` Endpoint: ${endpoint}`);
|
|
117
172
|
console.log(` API Key: ${apiKey.substring(0, 12)}...`);
|
|
118
|
-
console.log(
|
|
173
|
+
console.log(`\nRun "fuseapi${profileName === 'fuse' ? '' : ' ' + profileName}" to start using this profile\n`);
|
|
119
174
|
}
|
|
120
175
|
async function cmdDoctor() {
|
|
121
176
|
console.log('\n=== FuseAPI Health Check ===\n');
|
|
@@ -127,16 +182,23 @@ async function cmdDoctor() {
|
|
|
127
182
|
process.exit(1);
|
|
128
183
|
}
|
|
129
184
|
console.log('[OK] Configuration exists');
|
|
130
|
-
console.log(`
|
|
131
|
-
console.log(`
|
|
185
|
+
console.log(` Profiles: ${Object.keys(config.profiles).join(', ')}`);
|
|
186
|
+
console.log(` Default: ${config.default}`);
|
|
187
|
+
// Show each profile
|
|
188
|
+
Object.entries(config.profiles).forEach(([name, profile]) => {
|
|
189
|
+
console.log(`\n Profile: ${name}`);
|
|
190
|
+
console.log(` Endpoint: ${profile.endpoint}`);
|
|
191
|
+
console.log(` API Key: ${profile.apiKey.substring(0, 12)}...`);
|
|
192
|
+
});
|
|
132
193
|
// Check Claude CLI
|
|
133
194
|
try {
|
|
134
195
|
const { execSync } = require('child_process');
|
|
135
|
-
|
|
136
|
-
|
|
196
|
+
const checkCmd = process.platform === 'win32' ? 'where claude' : 'which claude';
|
|
197
|
+
execSync(checkCmd, { stdio: 'ignore' });
|
|
198
|
+
console.log('\n[OK] Claude CLI found');
|
|
137
199
|
}
|
|
138
200
|
catch {
|
|
139
|
-
console.log('[!] Claude CLI not found');
|
|
201
|
+
console.log('\n[!] Claude CLI not found');
|
|
140
202
|
console.log(' Install: npm install -g @anthropic-ai/claude-code');
|
|
141
203
|
}
|
|
142
204
|
console.log('\n[OK] All checks passed!\n');
|
|
@@ -149,11 +211,18 @@ async function cmdConfig() {
|
|
|
149
211
|
process.exit(1);
|
|
150
212
|
}
|
|
151
213
|
console.log('\n=== FuseAPI Configuration ===\n');
|
|
152
|
-
console.log(`
|
|
153
|
-
console.log(
|
|
214
|
+
console.log(`Default Profile: ${config.default}`);
|
|
215
|
+
console.log(`\nProfiles:`);
|
|
216
|
+
Object.entries(config.profiles).forEach(([name, profile]) => {
|
|
217
|
+
const isDefault = name === config.default;
|
|
218
|
+
const marker = isDefault ? ' (default)' : '';
|
|
219
|
+
console.log(`\n ${name}${marker}`);
|
|
220
|
+
console.log(` Endpoint: ${profile.endpoint}`);
|
|
221
|
+
console.log(` API Key: ${profile.apiKey.substring(0, 12)}...`);
|
|
222
|
+
});
|
|
154
223
|
console.log(`\nConfig file: ${CONFIG_FILE}\n`);
|
|
155
224
|
}
|
|
156
|
-
async function cmdLaunch(args) {
|
|
225
|
+
async function cmdLaunch(profile, args) {
|
|
157
226
|
// Load config
|
|
158
227
|
const config = loadConfig();
|
|
159
228
|
if (!config) {
|
|
@@ -161,17 +230,27 @@ async function cmdLaunch(args) {
|
|
|
161
230
|
console.error(' Run "fuseapi setup" to configure FuseAPI\n');
|
|
162
231
|
process.exit(1);
|
|
163
232
|
}
|
|
233
|
+
// Resolve profile (use default if 'default')
|
|
234
|
+
const profileName = profile === 'default' ? (config.default || 'fuse') : profile;
|
|
235
|
+
const profileConfig = config.profiles[profileName];
|
|
236
|
+
if (!profileConfig) {
|
|
237
|
+
console.error(`\n[!] Profile "${profileName}" not found`);
|
|
238
|
+
console.error(` Available profiles: ${Object.keys(config.profiles).join(', ')}\n`);
|
|
239
|
+
process.exit(1);
|
|
240
|
+
}
|
|
164
241
|
// Set environment variables
|
|
242
|
+
// Use ANTHROPIC_AUTH_TOKEN instead of ANTHROPIC_API_KEY to avoid conflicts with claude.ai login
|
|
165
243
|
const env = {
|
|
166
244
|
...process.env,
|
|
167
|
-
ANTHROPIC_BASE_URL:
|
|
168
|
-
|
|
245
|
+
ANTHROPIC_BASE_URL: profileConfig.endpoint,
|
|
246
|
+
ANTHROPIC_AUTH_TOKEN: profileConfig.apiKey,
|
|
169
247
|
};
|
|
170
248
|
// Launch Claude Code
|
|
171
|
-
console.log(
|
|
249
|
+
console.log(`[i] Launching Claude Code with ${profileName} profile...\n`);
|
|
172
250
|
const claudeProcess = (0, child_process_1.spawn)('claude', args, {
|
|
173
251
|
env,
|
|
174
252
|
stdio: 'inherit',
|
|
253
|
+
shell: process.platform === 'win32', // Required for Windows to find npm global binaries
|
|
175
254
|
});
|
|
176
255
|
claudeProcess.on('error', (error) => {
|
|
177
256
|
console.error('\n[!] Failed to launch Claude Code:', error.message);
|
|
@@ -208,7 +287,7 @@ CONFIG:
|
|
|
208
287
|
async function main() {
|
|
209
288
|
const args = process.argv.slice(2);
|
|
210
289
|
if (args.length === 0) {
|
|
211
|
-
await cmdLaunch([]);
|
|
290
|
+
await cmdLaunch('default', []);
|
|
212
291
|
return;
|
|
213
292
|
}
|
|
214
293
|
const command = args[0];
|
|
@@ -228,8 +307,9 @@ async function main() {
|
|
|
228
307
|
showHelp();
|
|
229
308
|
break;
|
|
230
309
|
default:
|
|
231
|
-
//
|
|
232
|
-
|
|
310
|
+
// Detect profile from args or use default
|
|
311
|
+
const { profile, remainingArgs } = detectProfile(args);
|
|
312
|
+
await cmdLaunch(profile, remainingArgs);
|
|
233
313
|
break;
|
|
234
314
|
}
|
|
235
315
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAAsC;AACtC,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,mDAAqC;AAErC,0CAA0C;AAE1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|