codingbuddy 0.2.1 → 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/README.md +11 -11
- package/dist/src/cli/cli.d.ts +1 -1
- package/dist/src/cli/cli.js +11 -0
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/main.d.ts +1 -1
- package/dist/src/main.js +4 -1
- package/dist/src/main.js.map +1 -1
- package/dist/src/rules/rules.service.d.ts +1 -0
- package/dist/src/rules/rules.service.js +23 -8
- package/dist/src/rules/rules.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +17 -18
package/README.md
CHANGED
|
@@ -20,6 +20,7 @@ npx codingbuddy init
|
|
|
20
20
|
| Command | Description |
|
|
21
21
|
|---------|-------------|
|
|
22
22
|
| `codingbuddy init` | Analyze project and generate configuration |
|
|
23
|
+
| `codingbuddy mcp` | Start MCP server (stdio mode by default) |
|
|
23
24
|
| `codingbuddy --help` | Show help |
|
|
24
25
|
| `codingbuddy --version` | Show version |
|
|
25
26
|
|
|
@@ -63,16 +64,14 @@ Add the following configuration to your Claude Desktop config:
|
|
|
63
64
|
```json
|
|
64
65
|
{
|
|
65
66
|
"mcpServers": {
|
|
66
|
-
"codingbuddy
|
|
67
|
+
"codingbuddy": {
|
|
67
68
|
"command": "npx",
|
|
68
|
-
"args": ["codingbuddy
|
|
69
|
+
"args": ["-y", "codingbuddy", "mcp"]
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
```
|
|
73
74
|
|
|
74
|
-
> **Note**: Use `codingbuddy-mcp` for the MCP server. The `codingbuddy` command is for CLI operations like `init`.
|
|
75
|
-
|
|
76
75
|
### Option 2: Global Installation
|
|
77
76
|
|
|
78
77
|
```bash
|
|
@@ -84,8 +83,9 @@ Then configure Claude Desktop:
|
|
|
84
83
|
```json
|
|
85
84
|
{
|
|
86
85
|
"mcpServers": {
|
|
87
|
-
"codingbuddy
|
|
88
|
-
"command": "codingbuddy
|
|
86
|
+
"codingbuddy": {
|
|
87
|
+
"command": "codingbuddy",
|
|
88
|
+
"args": ["mcp"]
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -94,7 +94,7 @@ Then configure Claude Desktop:
|
|
|
94
94
|
### Option 3: Local Development (Stdio Mode)
|
|
95
95
|
|
|
96
96
|
```bash
|
|
97
|
-
cd mcp-server
|
|
97
|
+
cd apps/mcp-server
|
|
98
98
|
yarn install
|
|
99
99
|
yarn build
|
|
100
100
|
```
|
|
@@ -102,9 +102,9 @@ yarn build
|
|
|
102
102
|
```json
|
|
103
103
|
{
|
|
104
104
|
"mcpServers": {
|
|
105
|
-
"codingbuddy
|
|
105
|
+
"codingbuddy": {
|
|
106
106
|
"command": "node",
|
|
107
|
-
"args": ["/ABSOLUTE/PATH/TO/codingbuddy/mcp-server/dist/src/
|
|
107
|
+
"args": ["/ABSOLUTE/PATH/TO/codingbuddy/apps/mcp-server/dist/src/cli/cli.js", "mcp"]
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
}
|
|
@@ -118,7 +118,7 @@ Build the Docker image from the **repository root**:
|
|
|
118
118
|
|
|
119
119
|
```bash
|
|
120
120
|
# Run from codingbuddy root
|
|
121
|
-
docker build -f mcp-server/Dockerfile -t codingbuddy-
|
|
121
|
+
docker build -f apps/mcp-server/Dockerfile -t codingbuddy-mcp .
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
Run the container:
|
|
@@ -127,7 +127,7 @@ Run the container:
|
|
|
127
127
|
docker run -p 3000:3000 \
|
|
128
128
|
-e MCP_TRANSPORT=sse \
|
|
129
129
|
-e PORT=3000 \
|
|
130
|
-
codingbuddy-
|
|
130
|
+
codingbuddy-mcp
|
|
131
131
|
```
|
|
132
132
|
|
|
133
133
|
The server will start in SSE mode, exposing:
|
package/dist/src/cli/cli.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import type { InitOptions } from './cli.types';
|
|
3
3
|
export interface ParsedArgs {
|
|
4
|
-
command: 'init' | 'help' | 'version';
|
|
4
|
+
command: 'init' | 'mcp' | 'help' | 'version';
|
|
5
5
|
options: Partial<InitOptions>;
|
|
6
6
|
}
|
|
7
7
|
export declare function parseArgs(args: string[]): ParsedArgs;
|
package/dist/src/cli/cli.js
CHANGED
|
@@ -6,6 +6,7 @@ exports.printUsage = printUsage;
|
|
|
6
6
|
exports.printVersion = printVersion;
|
|
7
7
|
exports.main = main;
|
|
8
8
|
const init_1 = require("./init");
|
|
9
|
+
const main_1 = require("../main");
|
|
9
10
|
const VERSION = '1.0.0';
|
|
10
11
|
function parseArgs(args) {
|
|
11
12
|
const options = {
|
|
@@ -20,6 +21,9 @@ function parseArgs(args) {
|
|
|
20
21
|
return { command: 'version', options };
|
|
21
22
|
}
|
|
22
23
|
const command = args[0];
|
|
24
|
+
if (command === 'mcp') {
|
|
25
|
+
return { command: 'mcp', options };
|
|
26
|
+
}
|
|
23
27
|
if (command !== 'init') {
|
|
24
28
|
return { command: 'help', options };
|
|
25
29
|
}
|
|
@@ -49,6 +53,7 @@ CodingBuddy CLI - AI-powered project configuration generator
|
|
|
49
53
|
|
|
50
54
|
Usage:
|
|
51
55
|
codingbuddy init [path] [options] Initialize configuration
|
|
56
|
+
codingbuddy mcp Start MCP server (stdio mode)
|
|
52
57
|
codingbuddy --help Show this help
|
|
53
58
|
codingbuddy --version Show version
|
|
54
59
|
|
|
@@ -62,9 +67,12 @@ Examples:
|
|
|
62
67
|
codingbuddy init ./my-project Initialize in specific directory
|
|
63
68
|
codingbuddy init --format json Generate JSON config
|
|
64
69
|
codingbuddy init --force Overwrite existing config
|
|
70
|
+
codingbuddy mcp Start MCP server for AI assistants
|
|
65
71
|
|
|
66
72
|
Environment:
|
|
67
73
|
ANTHROPIC_API_KEY API key for AI generation
|
|
74
|
+
MCP_TRANSPORT MCP transport mode: stdio (default) or sse
|
|
75
|
+
PORT HTTP port for SSE mode (default: 3000)
|
|
68
76
|
`;
|
|
69
77
|
process.stdout.write(usage + '\n');
|
|
70
78
|
}
|
|
@@ -80,6 +88,9 @@ async function main(args = process.argv.slice(2)) {
|
|
|
80
88
|
case 'version':
|
|
81
89
|
printVersion();
|
|
82
90
|
break;
|
|
91
|
+
case 'mcp':
|
|
92
|
+
await (0, main_1.bootstrap)();
|
|
93
|
+
break;
|
|
83
94
|
case 'init': {
|
|
84
95
|
const result = await (0, init_1.runInit)(options);
|
|
85
96
|
if (!result.success) {
|
package/dist/src/cli/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/src/main.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export
|
|
2
|
+
export declare function bootstrap(): Promise<void>;
|
package/dist/src/main.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.bootstrap = bootstrap;
|
|
4
5
|
const core_1 = require("@nestjs/core");
|
|
5
6
|
const app_module_1 = require("./app.module");
|
|
6
7
|
const mcp_service_1 = require("./mcp/mcp.service");
|
|
@@ -21,5 +22,7 @@ async function bootstrap() {
|
|
|
21
22
|
logger.log('MCP Server running in Stdio mode');
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
+
if (require.main === module) {
|
|
26
|
+
bootstrap();
|
|
27
|
+
}
|
|
25
28
|
//# sourceMappingURL=main.js.map
|
package/dist/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;;AAMA,8BAiBC;AAtBD,uCAA2C;AAC3C,6CAAyC;AACzC,mDAA+C;AAC/C,2CAAwC;AAEjC,KAAK,UAAU,SAAS;IAC7B,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC;IAE3D,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QAE5B,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;QACtC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QAEN,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,wBAAwB,CAAC,sBAAS,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,wBAAU,CAAC,CAAC;QACvC,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAGD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,CAAC;AACd,CAAC"}
|
|
@@ -23,15 +23,30 @@ let RulesService = RulesService_1 = class RulesService {
|
|
|
23
23
|
this.logger.log(`Rules directory set from env: ${this.rulesDir}`);
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
try {
|
|
27
|
+
const { rulesPath } = require('codingbuddy-rules');
|
|
28
|
+
this.rulesDir = rulesPath;
|
|
29
|
+
this.logger.log(`Rules directory set from package: ${this.rulesDir}`);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
this.logger.warn('codingbuddy-rules package not found, using development fallback');
|
|
33
|
+
this.rulesDir = this.findDevRulesDir();
|
|
34
|
+
this.logger.log(`Rules directory set to: ${this.rulesDir}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
findDevRulesDir() {
|
|
38
|
+
const candidates = [
|
|
39
|
+
path.resolve(__dirname, '../../../../packages/rules/.ai-rules'),
|
|
40
|
+
path.resolve(__dirname, '../../../packages/rules/.ai-rules'),
|
|
41
|
+
path.resolve(__dirname, '../../../../.ai-rules'),
|
|
42
|
+
path.resolve(__dirname, '../../../.ai-rules'),
|
|
43
|
+
];
|
|
44
|
+
for (const candidate of candidates) {
|
|
45
|
+
if (this.checkExists(candidate)) {
|
|
46
|
+
return candidate;
|
|
47
|
+
}
|
|
32
48
|
}
|
|
33
|
-
|
|
34
|
-
this.logger.log(`Rules directory set to: ${this.rulesDir}`);
|
|
49
|
+
return candidates[0];
|
|
35
50
|
}
|
|
36
51
|
checkExists(pathStr) {
|
|
37
52
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.service.js","sourceRoot":"","sources":["../../../src/rules/rules.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,kCAAkC;AAClC,2BAAgC;AAChC,6BAA6B;AAItB,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAIvB;QAHiB,WAAM,GAAG,IAAI,eAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"rules.service.js","sourceRoot":"","sources":["../../../src/rules/rules.service.ts"],"names":[],"mappings":"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"}
|