codebaxing 0.2.0 → 0.2.1
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/README.md +22 -0
- package/README.vi.md +22 -0
- package/dist/cli/installer.d.ts +5 -5
- package/dist/cli/installer.js +202 -122
- package/dist/cli/installer.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -204,6 +204,28 @@ npx codebaxing uninstall # Remove from Claude Desktop
|
|
|
204
204
|
npx codebaxing uninstall --all # Remove from all editors
|
|
205
205
|
```
|
|
206
206
|
|
|
207
|
+
### CLI Commands (Direct Usage)
|
|
208
|
+
|
|
209
|
+
You can also use Codebaxing directly from terminal without AI agents:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# Index a codebase
|
|
213
|
+
npx codebaxing index /path/to/project
|
|
214
|
+
|
|
215
|
+
# Search for code
|
|
216
|
+
npx codebaxing search "authentication middleware"
|
|
217
|
+
npx codebaxing search "database connection" --path ./src --limit 10
|
|
218
|
+
|
|
219
|
+
# Show index statistics
|
|
220
|
+
npx codebaxing stats /path/to/project
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**Note:** For persistent storage, run ChromaDB first:
|
|
224
|
+
```bash
|
|
225
|
+
docker run -d -p 8000:8000 chromadb/chroma
|
|
226
|
+
export CHROMADB_URL=http://localhost:8000
|
|
227
|
+
```
|
|
228
|
+
|
|
207
229
|
### Manual Installation
|
|
208
230
|
|
|
209
231
|
If you prefer manual configuration, see [Manual Configuration](#configure-claude-desktop) below.
|
package/README.vi.md
CHANGED
|
@@ -204,6 +204,28 @@ npx codebaxing uninstall # Gỡ khỏi Claude Desktop
|
|
|
204
204
|
npx codebaxing uninstall --all # Gỡ khỏi tất cả editors
|
|
205
205
|
```
|
|
206
206
|
|
|
207
|
+
### CLI Commands (Dùng trực tiếp)
|
|
208
|
+
|
|
209
|
+
Bạn có thể dùng Codebaxing trực tiếp từ terminal mà không cần AI agents:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# Index codebase
|
|
213
|
+
npx codebaxing index /path/to/project
|
|
214
|
+
|
|
215
|
+
# Tìm kiếm code
|
|
216
|
+
npx codebaxing search "authentication middleware"
|
|
217
|
+
npx codebaxing search "database connection" --path ./src --limit 10
|
|
218
|
+
|
|
219
|
+
# Xem thống kê
|
|
220
|
+
npx codebaxing stats /path/to/project
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**Lưu ý:** Để lưu trữ vĩnh viễn, chạy ChromaDB trước:
|
|
224
|
+
```bash
|
|
225
|
+
docker run -d -p 8000:8000 chromadb/chroma
|
|
226
|
+
export CHROMADB_URL=http://localhost:8000
|
|
227
|
+
```
|
|
228
|
+
|
|
207
229
|
### Cài thủ công
|
|
208
230
|
|
|
209
231
|
Nếu muốn cấu hình thủ công, xem [Cấu hình thủ công](#cấu-hình-claude-desktop) bên dưới.
|
package/dist/cli/installer.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* CLI
|
|
4
|
-
* Automatically configures MCP server for various AI agents.
|
|
3
|
+
* CLI for Codebaxing MCP server.
|
|
5
4
|
*
|
|
6
5
|
* Usage:
|
|
7
|
-
* npx codebaxing install # Install to Claude Desktop
|
|
6
|
+
* npx codebaxing install # Install to Claude Desktop
|
|
8
7
|
* npx codebaxing install --cursor # Install to Cursor
|
|
9
|
-
* npx codebaxing
|
|
10
|
-
* npx codebaxing
|
|
8
|
+
* npx codebaxing index <path> # Index a codebase
|
|
9
|
+
* npx codebaxing search <query> # Search indexed codebase
|
|
10
|
+
* npx codebaxing stats # Show index statistics
|
|
11
11
|
*/
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=installer.d.ts.map
|
package/dist/cli/installer.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* CLI
|
|
4
|
-
* Automatically configures MCP server for various AI agents.
|
|
3
|
+
* CLI for Codebaxing MCP server.
|
|
5
4
|
*
|
|
6
5
|
* Usage:
|
|
7
|
-
* npx codebaxing install # Install to Claude Desktop
|
|
6
|
+
* npx codebaxing install # Install to Claude Desktop
|
|
8
7
|
* npx codebaxing install --cursor # Install to Cursor
|
|
9
|
-
* npx codebaxing
|
|
10
|
-
* npx codebaxing
|
|
8
|
+
* npx codebaxing index <path> # Index a codebase
|
|
9
|
+
* npx codebaxing search <query> # Search indexed codebase
|
|
10
|
+
* npx codebaxing stats # Show index statistics
|
|
11
11
|
*/
|
|
12
12
|
import fs from 'node:fs';
|
|
13
13
|
import path from 'node:path';
|
|
@@ -23,10 +23,7 @@ function getEditorConfigs() {
|
|
|
23
23
|
name: 'Claude Desktop',
|
|
24
24
|
configPath: path.join(HOME, 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
|
|
25
25
|
configKey: 'mcpServers',
|
|
26
|
-
serverConfig: {
|
|
27
|
-
command: 'npx',
|
|
28
|
-
args: ['-y', 'codebaxing'],
|
|
29
|
-
},
|
|
26
|
+
serverConfig: { command: 'npx', args: ['-y', 'codebaxing'] },
|
|
30
27
|
});
|
|
31
28
|
}
|
|
32
29
|
else if (PLATFORM === 'win32') {
|
|
@@ -34,22 +31,15 @@ function getEditorConfigs() {
|
|
|
34
31
|
name: 'Claude Desktop',
|
|
35
32
|
configPath: path.join(process.env.APPDATA || '', 'Claude', 'claude_desktop_config.json'),
|
|
36
33
|
configKey: 'mcpServers',
|
|
37
|
-
serverConfig: {
|
|
38
|
-
command: 'npx',
|
|
39
|
-
args: ['-y', 'codebaxing'],
|
|
40
|
-
},
|
|
34
|
+
serverConfig: { command: 'npx', args: ['-y', 'codebaxing'] },
|
|
41
35
|
});
|
|
42
36
|
}
|
|
43
37
|
else {
|
|
44
|
-
// Linux
|
|
45
38
|
configs.push({
|
|
46
39
|
name: 'Claude Desktop',
|
|
47
40
|
configPath: path.join(HOME, '.config', 'claude', 'claude_desktop_config.json'),
|
|
48
41
|
configKey: 'mcpServers',
|
|
49
|
-
serverConfig: {
|
|
50
|
-
command: 'npx',
|
|
51
|
-
args: ['-y', 'codebaxing'],
|
|
52
|
-
},
|
|
42
|
+
serverConfig: { command: 'npx', args: ['-y', 'codebaxing'] },
|
|
53
43
|
});
|
|
54
44
|
}
|
|
55
45
|
// Cursor
|
|
@@ -57,55 +47,28 @@ function getEditorConfigs() {
|
|
|
57
47
|
name: 'Cursor',
|
|
58
48
|
configPath: path.join(HOME, '.cursor', 'mcp.json'),
|
|
59
49
|
configKey: 'mcpServers',
|
|
60
|
-
serverConfig: {
|
|
61
|
-
command: 'npx',
|
|
62
|
-
args: ['-y', 'codebaxing'],
|
|
63
|
-
},
|
|
50
|
+
serverConfig: { command: 'npx', args: ['-y', 'codebaxing'] },
|
|
64
51
|
});
|
|
65
|
-
// Windsurf
|
|
52
|
+
// Windsurf
|
|
66
53
|
configs.push({
|
|
67
54
|
name: 'Windsurf',
|
|
68
55
|
configPath: path.join(HOME, '.codeium', 'windsurf', 'mcp_config.json'),
|
|
69
56
|
configKey: 'mcpServers',
|
|
70
|
-
serverConfig: {
|
|
71
|
-
command: 'npx',
|
|
72
|
-
args: ['-y', 'codebaxing'],
|
|
73
|
-
},
|
|
57
|
+
serverConfig: { command: 'npx', args: ['-y', 'codebaxing'] },
|
|
74
58
|
});
|
|
75
59
|
// Zed
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
command: {
|
|
83
|
-
path: 'npx',
|
|
84
|
-
args: ['-y', 'codebaxing'],
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
configs.push({
|
|
91
|
-
name: 'Zed',
|
|
92
|
-
configPath: path.join(HOME, '.config', 'zed', 'settings.json'),
|
|
93
|
-
configKey: 'context_servers',
|
|
94
|
-
serverConfig: {
|
|
95
|
-
command: {
|
|
96
|
-
path: 'npx',
|
|
97
|
-
args: ['-y', 'codebaxing'],
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
});
|
|
101
|
-
}
|
|
60
|
+
configs.push({
|
|
61
|
+
name: 'Zed',
|
|
62
|
+
configPath: path.join(HOME, '.config', 'zed', 'settings.json'),
|
|
63
|
+
configKey: 'context_servers',
|
|
64
|
+
serverConfig: { command: { path: 'npx', args: ['-y', 'codebaxing'] } },
|
|
65
|
+
});
|
|
102
66
|
return configs;
|
|
103
67
|
}
|
|
104
|
-
// ─── Helpers
|
|
68
|
+
// ─── JSON Helpers ────────────────────────────────────────────────────────────
|
|
105
69
|
function readJsonFile(filePath) {
|
|
106
70
|
try {
|
|
107
|
-
|
|
108
|
-
return JSON.parse(content);
|
|
71
|
+
return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
109
72
|
}
|
|
110
73
|
catch {
|
|
111
74
|
return {};
|
|
@@ -113,91 +76,167 @@ function readJsonFile(filePath) {
|
|
|
113
76
|
}
|
|
114
77
|
function writeJsonFile(filePath, data) {
|
|
115
78
|
const dir = path.dirname(filePath);
|
|
116
|
-
if (!fs.existsSync(dir))
|
|
79
|
+
if (!fs.existsSync(dir))
|
|
117
80
|
fs.mkdirSync(dir, { recursive: true });
|
|
118
|
-
}
|
|
119
81
|
fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n');
|
|
120
82
|
}
|
|
121
|
-
function configExists(filePath) {
|
|
122
|
-
return fs.existsSync(filePath);
|
|
123
|
-
}
|
|
124
83
|
// ─── Install/Uninstall ───────────────────────────────────────────────────────
|
|
125
84
|
function installToEditor(editor) {
|
|
126
85
|
console.log(`\n📦 Installing to ${editor.name}...`);
|
|
127
86
|
const config = readJsonFile(editor.configPath);
|
|
128
|
-
|
|
129
|
-
if (!config[editor.configKey]) {
|
|
87
|
+
if (!config[editor.configKey])
|
|
130
88
|
config[editor.configKey] = {};
|
|
131
|
-
}
|
|
132
89
|
const servers = config[editor.configKey];
|
|
133
|
-
// Check if already installed
|
|
134
90
|
if (servers.codebaxing) {
|
|
135
|
-
console.log(` ✓ Already installed
|
|
91
|
+
console.log(` ✓ Already installed`);
|
|
136
92
|
return true;
|
|
137
93
|
}
|
|
138
|
-
// Add codebaxing
|
|
139
94
|
servers.codebaxing = editor.serverConfig;
|
|
140
|
-
config[editor.configKey] = servers;
|
|
141
95
|
try {
|
|
142
96
|
writeJsonFile(editor.configPath, config);
|
|
143
97
|
console.log(` ✓ Installed to ${editor.configPath}`);
|
|
144
98
|
return true;
|
|
145
99
|
}
|
|
146
100
|
catch (err) {
|
|
147
|
-
console.error(` ✗ Failed
|
|
101
|
+
console.error(` ✗ Failed: ${err.message}`);
|
|
148
102
|
return false;
|
|
149
103
|
}
|
|
150
104
|
}
|
|
151
105
|
function uninstallFromEditor(editor) {
|
|
152
|
-
if (!
|
|
106
|
+
if (!fs.existsSync(editor.configPath))
|
|
153
107
|
return true;
|
|
154
|
-
}
|
|
155
108
|
console.log(`\n🗑️ Uninstalling from ${editor.name}...`);
|
|
156
109
|
const config = readJsonFile(editor.configPath);
|
|
157
110
|
const servers = config[editor.configKey];
|
|
158
|
-
if (!servers
|
|
159
|
-
console.log(` ✓ Not installed
|
|
111
|
+
if (!servers?.codebaxing) {
|
|
112
|
+
console.log(` ✓ Not installed`);
|
|
160
113
|
return true;
|
|
161
114
|
}
|
|
162
115
|
delete servers.codebaxing;
|
|
163
|
-
config[editor.configKey] = servers;
|
|
164
116
|
try {
|
|
165
117
|
writeJsonFile(editor.configPath, config);
|
|
166
|
-
console.log(` ✓ Removed
|
|
118
|
+
console.log(` ✓ Removed`);
|
|
167
119
|
return true;
|
|
168
120
|
}
|
|
169
121
|
catch (err) {
|
|
170
|
-
console.error(` ✗ Failed
|
|
122
|
+
console.error(` ✗ Failed: ${err.message}`);
|
|
171
123
|
return false;
|
|
172
124
|
}
|
|
173
125
|
}
|
|
126
|
+
// ─── Index Command ───────────────────────────────────────────────────────────
|
|
127
|
+
async function runIndex(codebasePath) {
|
|
128
|
+
const absolutePath = path.resolve(codebasePath);
|
|
129
|
+
if (!fs.existsSync(absolutePath)) {
|
|
130
|
+
console.error(`\n❌ Path does not exist: ${absolutePath}`);
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
console.log('\n🔧 Codebaxing - Index Codebase\n');
|
|
134
|
+
console.log(`📁 Path: ${absolutePath}\n`);
|
|
135
|
+
// Dynamic import to avoid loading heavy dependencies upfront
|
|
136
|
+
const { SourceRetriever } = await import('../indexing/source-retriever.js');
|
|
137
|
+
const retriever = new SourceRetriever({
|
|
138
|
+
codebasePath: absolutePath,
|
|
139
|
+
embeddingModel: 'all-MiniLM-L6-v2',
|
|
140
|
+
verbose: true,
|
|
141
|
+
});
|
|
142
|
+
await retriever.indexCodebase();
|
|
143
|
+
const stats = retriever.getStats();
|
|
144
|
+
console.log('\n📊 Index Statistics:');
|
|
145
|
+
console.log(` Files: ${stats.totalFiles}`);
|
|
146
|
+
console.log(` Symbols: ${stats.totalSymbols}`);
|
|
147
|
+
console.log(` Chunks: ${stats.totalChunks}`);
|
|
148
|
+
console.log(` Time: ${stats.indexingTime?.toFixed(1)}s\n`);
|
|
149
|
+
}
|
|
150
|
+
// ─── Search Command ──────────────────────────────────────────────────────────
|
|
151
|
+
async function runSearch(query, options) {
|
|
152
|
+
const codebasePath = options.path || process.cwd();
|
|
153
|
+
const absolutePath = path.resolve(codebasePath);
|
|
154
|
+
const limit = options.limit || 5;
|
|
155
|
+
console.log('\n🔧 Codebaxing - Search\n');
|
|
156
|
+
console.log(`📁 Path: ${absolutePath}`);
|
|
157
|
+
console.log(`🔍 Query: "${query}"`);
|
|
158
|
+
console.log(`📊 Limit: ${limit}\n`);
|
|
159
|
+
const { SourceRetriever } = await import('../indexing/source-retriever.js');
|
|
160
|
+
const retriever = new SourceRetriever({
|
|
161
|
+
codebasePath: absolutePath,
|
|
162
|
+
embeddingModel: 'all-MiniLM-L6-v2',
|
|
163
|
+
verbose: false,
|
|
164
|
+
});
|
|
165
|
+
// Check if index exists, if not, index first
|
|
166
|
+
const stats = retriever.getStats();
|
|
167
|
+
if (stats.totalChunks === 0) {
|
|
168
|
+
console.log('⚠️ No index found. Indexing first...\n');
|
|
169
|
+
await retriever.indexCodebase();
|
|
170
|
+
console.log('');
|
|
171
|
+
}
|
|
172
|
+
const { sources, documents } = await retriever.getSourcesForQuestion(query, { nResults: limit });
|
|
173
|
+
if (sources.length === 0) {
|
|
174
|
+
console.log('❌ No results found.\n');
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
console.log('─'.repeat(60));
|
|
178
|
+
console.log('Results:\n');
|
|
179
|
+
sources.forEach((source, i) => {
|
|
180
|
+
console.log(`${i + 1}. ${source}`);
|
|
181
|
+
});
|
|
182
|
+
console.log('\n' + '─'.repeat(60) + '\n');
|
|
183
|
+
}
|
|
184
|
+
// ─── Stats Command ───────────────────────────────────────────────────────────
|
|
185
|
+
async function runStats(codebasePath) {
|
|
186
|
+
const absolutePath = path.resolve(codebasePath || process.cwd());
|
|
187
|
+
console.log('\n🔧 Codebaxing - Statistics\n');
|
|
188
|
+
console.log(`📁 Path: ${absolutePath}\n`);
|
|
189
|
+
const { SourceRetriever } = await import('../indexing/source-retriever.js');
|
|
190
|
+
const retriever = new SourceRetriever({
|
|
191
|
+
codebasePath: absolutePath,
|
|
192
|
+
embeddingModel: 'all-MiniLM-L6-v2',
|
|
193
|
+
verbose: false,
|
|
194
|
+
});
|
|
195
|
+
const stats = retriever.getStats();
|
|
196
|
+
console.log('📊 Index Statistics:');
|
|
197
|
+
console.log(` Files: ${stats.totalFiles}`);
|
|
198
|
+
console.log(` Symbols: ${stats.totalSymbols}`);
|
|
199
|
+
console.log(` Chunks: ${stats.totalChunks}`);
|
|
200
|
+
console.log(` Parse Errors: ${stats.parseErrors}`);
|
|
201
|
+
if (stats.indexingTime) {
|
|
202
|
+
console.log(` Index Time: ${stats.indexingTime.toFixed(1)}s`);
|
|
203
|
+
}
|
|
204
|
+
console.log('');
|
|
205
|
+
}
|
|
174
206
|
// ─── CLI ─────────────────────────────────────────────────────────────────────
|
|
175
207
|
function printUsage() {
|
|
176
208
|
console.log(`
|
|
177
|
-
Codebaxing
|
|
209
|
+
Codebaxing - Semantic code search via MCP
|
|
178
210
|
|
|
179
211
|
Usage:
|
|
180
|
-
npx codebaxing install [options]
|
|
181
|
-
npx codebaxing uninstall [options]
|
|
212
|
+
npx codebaxing install [options] Install MCP server to editors
|
|
213
|
+
npx codebaxing uninstall [options] Uninstall MCP server
|
|
214
|
+
npx codebaxing index <path> Index a codebase
|
|
215
|
+
npx codebaxing search <query> [opts] Search indexed codebase
|
|
216
|
+
npx codebaxing stats [path] Show index statistics
|
|
217
|
+
|
|
218
|
+
Install Options:
|
|
219
|
+
--claude Claude Desktop (default)
|
|
220
|
+
--cursor Cursor
|
|
221
|
+
--windsurf Windsurf (Codeium)
|
|
222
|
+
--zed Zed
|
|
223
|
+
--all All supported editors
|
|
182
224
|
|
|
183
|
-
Options:
|
|
184
|
-
--
|
|
185
|
-
--
|
|
186
|
-
--windsurf Install/uninstall for Windsurf (Codeium)
|
|
187
|
-
--zed Install/uninstall for Zed
|
|
188
|
-
--all Install/uninstall for all supported editors
|
|
225
|
+
Search Options:
|
|
226
|
+
--path, -p Codebase path (default: current directory)
|
|
227
|
+
--limit, -n Number of results (default: 5)
|
|
189
228
|
|
|
190
229
|
Examples:
|
|
191
|
-
npx codebaxing install
|
|
192
|
-
npx codebaxing install --
|
|
193
|
-
npx codebaxing
|
|
194
|
-
npx codebaxing
|
|
230
|
+
npx codebaxing install # Install to Claude Desktop
|
|
231
|
+
npx codebaxing install --all # Install to all editors
|
|
232
|
+
npx codebaxing index ./my-project # Index a project
|
|
233
|
+
npx codebaxing search "auth middleware" # Search current directory
|
|
234
|
+
npx codebaxing search "login" -p ./src -n 10
|
|
195
235
|
`);
|
|
196
236
|
}
|
|
197
|
-
function
|
|
198
|
-
const command = args[0] || 'help';
|
|
237
|
+
function parseEditorArgs(args) {
|
|
199
238
|
const editors = [];
|
|
200
|
-
for (const arg of args
|
|
239
|
+
for (const arg of args) {
|
|
201
240
|
if (arg === '--claude')
|
|
202
241
|
editors.push('Claude Desktop');
|
|
203
242
|
else if (arg === '--cursor')
|
|
@@ -208,58 +247,99 @@ function parseArgs(args) {
|
|
|
208
247
|
editors.push('Zed');
|
|
209
248
|
else if (arg === '--all')
|
|
210
249
|
editors.push('all');
|
|
211
|
-
else if (arg === '--help' || arg === '-h')
|
|
212
|
-
return { command: 'help', editors: [] };
|
|
213
250
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
251
|
+
return editors.length ? editors : ['Claude Desktop'];
|
|
252
|
+
}
|
|
253
|
+
function parseSearchArgs(args) {
|
|
254
|
+
let query = '';
|
|
255
|
+
let searchPath;
|
|
256
|
+
let limit;
|
|
257
|
+
for (let i = 0; i < args.length; i++) {
|
|
258
|
+
const arg = args[i];
|
|
259
|
+
if (arg === '--path' || arg === '-p') {
|
|
260
|
+
searchPath = args[++i];
|
|
261
|
+
}
|
|
262
|
+
else if (arg === '--limit' || arg === '-n') {
|
|
263
|
+
limit = parseInt(args[++i], 10);
|
|
264
|
+
}
|
|
265
|
+
else if (!arg.startsWith('-')) {
|
|
266
|
+
query = arg;
|
|
267
|
+
}
|
|
217
268
|
}
|
|
218
|
-
return {
|
|
269
|
+
return { query, path: searchPath, limit };
|
|
219
270
|
}
|
|
220
|
-
function main() {
|
|
271
|
+
async function main() {
|
|
221
272
|
const args = process.argv.slice(2);
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
import('../mcp/server.js').catch(() =>
|
|
226
|
-
// If import fails, show help
|
|
227
|
-
printUsage();
|
|
228
|
-
});
|
|
273
|
+
const command = args[0] || '';
|
|
274
|
+
// MCP server mode (no args or unknown command)
|
|
275
|
+
if (!command || !['install', 'uninstall', 'index', 'search', 'stats', 'help', '--help', '-h'].includes(command)) {
|
|
276
|
+
import('../mcp/server.js').catch(() => printUsage());
|
|
229
277
|
return;
|
|
230
278
|
}
|
|
231
|
-
|
|
279
|
+
// Help
|
|
232
280
|
if (command === 'help' || command === '--help' || command === '-h') {
|
|
233
281
|
printUsage();
|
|
234
282
|
return;
|
|
235
283
|
}
|
|
236
|
-
|
|
237
|
-
const selectedEditors = editors.includes('all')
|
|
238
|
-
? allEditors
|
|
239
|
-
: allEditors.filter(e => editors.includes(e.name));
|
|
240
|
-
console.log('\n🔧 Codebaxing MCP Server Installer\n');
|
|
284
|
+
// Install
|
|
241
285
|
if (command === 'install') {
|
|
286
|
+
const editors = parseEditorArgs(args.slice(1));
|
|
287
|
+
const allEditors = getEditorConfigs();
|
|
288
|
+
const selected = editors.includes('all') ? allEditors : allEditors.filter(e => editors.includes(e.name));
|
|
289
|
+
console.log('\n🔧 Codebaxing MCP Server Installer\n');
|
|
242
290
|
let success = 0;
|
|
243
|
-
for (const editor of
|
|
291
|
+
for (const editor of selected) {
|
|
244
292
|
if (installToEditor(editor))
|
|
245
293
|
success++;
|
|
246
294
|
}
|
|
247
295
|
console.log('\n' + '─'.repeat(50));
|
|
248
|
-
console.log(`\n✨
|
|
249
|
-
console.log('\n📝
|
|
250
|
-
|
|
251
|
-
console.log(' 2. Use the "index" tool to index your codebase');
|
|
252
|
-
console.log(' 3. Use the "search" tool to find code\n');
|
|
296
|
+
console.log(`\n✨ Done! (${success}/${selected.length})`);
|
|
297
|
+
console.log('\n📝 Restart your editor to use Codebaxing.\n');
|
|
298
|
+
return;
|
|
253
299
|
}
|
|
254
|
-
|
|
300
|
+
// Uninstall
|
|
301
|
+
if (command === 'uninstall') {
|
|
302
|
+
const editors = parseEditorArgs(args.slice(1));
|
|
303
|
+
const allEditors = getEditorConfigs();
|
|
304
|
+
const selected = editors.includes('all') ? allEditors : allEditors.filter(e => editors.includes(e.name));
|
|
305
|
+
console.log('\n🔧 Codebaxing MCP Server Uninstaller\n');
|
|
255
306
|
let success = 0;
|
|
256
|
-
for (const editor of
|
|
307
|
+
for (const editor of selected) {
|
|
257
308
|
if (uninstallFromEditor(editor))
|
|
258
309
|
success++;
|
|
259
310
|
}
|
|
260
311
|
console.log('\n' + '─'.repeat(50));
|
|
261
|
-
console.log(`\n✨
|
|
312
|
+
console.log(`\n✨ Done! (${success}/${selected.length})\n`);
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
// Index
|
|
316
|
+
if (command === 'index') {
|
|
317
|
+
const codebasePath = args[1];
|
|
318
|
+
if (!codebasePath) {
|
|
319
|
+
console.error('\n❌ Usage: npx codebaxing index <path>\n');
|
|
320
|
+
process.exit(1);
|
|
321
|
+
}
|
|
322
|
+
await runIndex(codebasePath);
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
// Search
|
|
326
|
+
if (command === 'search') {
|
|
327
|
+
const { query, path: searchPath, limit } = parseSearchArgs(args.slice(1));
|
|
328
|
+
if (!query) {
|
|
329
|
+
console.error('\n❌ Usage: npx codebaxing search <query> [--path <path>] [--limit <n>]\n');
|
|
330
|
+
process.exit(1);
|
|
331
|
+
}
|
|
332
|
+
await runSearch(query, { path: searchPath, limit });
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
// Stats
|
|
336
|
+
if (command === 'stats') {
|
|
337
|
+
await runStats(args[1]);
|
|
338
|
+
return;
|
|
262
339
|
}
|
|
263
340
|
}
|
|
264
|
-
main()
|
|
341
|
+
main().catch((err) => {
|
|
342
|
+
console.error('Error:', err.message);
|
|
343
|
+
process.exit(1);
|
|
344
|
+
});
|
|
265
345
|
//# sourceMappingURL=installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/cli/installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/cli/installer.ts"],"names":[],"mappings":"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"}
|