codingbuddy 0.0.0-canary.20251216053424.616ac46

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.
Files changed (42) hide show
  1. package/README.md +155 -0
  2. package/dist/src/app.module.d.ts +2 -0
  3. package/dist/src/app.module.js +23 -0
  4. package/dist/src/app.module.js.map +1 -0
  5. package/dist/src/keyword/keyword.module.d.ts +3 -0
  6. package/dist/src/keyword/keyword.module.js +40 -0
  7. package/dist/src/keyword/keyword.module.js.map +1 -0
  8. package/dist/src/keyword/keyword.service.d.ts +10 -0
  9. package/dist/src/keyword/keyword.service.js +97 -0
  10. package/dist/src/keyword/keyword.service.js.map +1 -0
  11. package/dist/src/keyword/keyword.service.spec.d.ts +1 -0
  12. package/dist/src/keyword/keyword.service.spec.js +225 -0
  13. package/dist/src/keyword/keyword.service.spec.js.map +1 -0
  14. package/dist/src/keyword/keyword.types.d.ts +22 -0
  15. package/dist/src/keyword/keyword.types.js +5 -0
  16. package/dist/src/keyword/keyword.types.js.map +1 -0
  17. package/dist/src/main.d.ts +2 -0
  18. package/dist/src/main.js +25 -0
  19. package/dist/src/main.js.map +1 -0
  20. package/dist/src/mcp/mcp.controller.d.ts +9 -0
  21. package/dist/src/mcp/mcp.controller.js +57 -0
  22. package/dist/src/mcp/mcp.controller.js.map +1 -0
  23. package/dist/src/mcp/mcp.module.d.ts +2 -0
  24. package/dist/src/mcp/mcp.module.js +26 -0
  25. package/dist/src/mcp/mcp.module.js.map +1 -0
  26. package/dist/src/mcp/mcp.service.d.ts +39 -0
  27. package/dist/src/mcp/mcp.service.js +261 -0
  28. package/dist/src/mcp/mcp.service.js.map +1 -0
  29. package/dist/src/rules/rules.module.d.ts +2 -0
  30. package/dist/src/rules/rules.module.js +21 -0
  31. package/dist/src/rules/rules.module.js.map +1 -0
  32. package/dist/src/rules/rules.service.d.ts +11 -0
  33. package/dist/src/rules/rules.service.js +106 -0
  34. package/dist/src/rules/rules.service.js.map +1 -0
  35. package/dist/src/rules/rules.types.d.ts +13 -0
  36. package/dist/src/rules/rules.types.js +3 -0
  37. package/dist/src/rules/rules.types.js.map +1 -0
  38. package/dist/tsconfig.tsbuildinfo +1 -0
  39. package/dist/vitest.config.d.ts +2 -0
  40. package/dist/vitest.config.js +17 -0
  41. package/dist/vitest.config.js.map +1 -0
  42. package/package.json +48 -0
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const core_1 = require("@nestjs/core");
5
+ const app_module_1 = require("./app.module");
6
+ const mcp_service_1 = require("./mcp/mcp.service");
7
+ const common_1 = require("@nestjs/common");
8
+ async function bootstrap() {
9
+ const logger = new common_1.Logger('Bootstrap');
10
+ const transportMode = process.env.MCP_TRANSPORT || 'stdio';
11
+ if (transportMode === 'sse') {
12
+ const app = await core_1.NestFactory.create(app_module_1.AppModule);
13
+ const port = process.env.PORT || 3000;
14
+ await app.listen(port);
15
+ logger.log(`MCP Server running in SSE mode on port ${port}`);
16
+ }
17
+ else {
18
+ const app = await core_1.NestFactory.createApplicationContext(app_module_1.AppModule);
19
+ const mcpService = app.get(mcp_service_1.McpService);
20
+ await mcpService.startStdio();
21
+ logger.log('MCP Server running in Stdio mode');
22
+ }
23
+ }
24
+ bootstrap();
25
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;;AACA,uCAA2C;AAC3C,6CAAyC;AACzC,mDAA+C;AAC/C,2CAAwC;AAExC,KAAK,UAAU,SAAS;IACtB,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;AACD,SAAS,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Response, Request } from 'express';
2
+ import { McpService } from './mcp.service';
3
+ export declare class McpController {
4
+ private mcpService;
5
+ private transport;
6
+ constructor(mcpService: McpService);
7
+ handleSse(res: Response): Promise<void>;
8
+ handleMessages(req: Request, res: Response): Promise<void>;
9
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.McpController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const mcp_service_1 = require("./mcp.service");
18
+ const sse_js_1 = require("@modelcontextprotocol/sdk/server/sse.js");
19
+ let McpController = class McpController {
20
+ constructor(mcpService) {
21
+ this.mcpService = mcpService;
22
+ this.transport = null;
23
+ }
24
+ async handleSse(res) {
25
+ console.log('New SSE connection request');
26
+ this.transport = new sse_js_1.SSEServerTransport('/messages', res);
27
+ await this.mcpService.getServer().connect(this.transport);
28
+ }
29
+ async handleMessages(req, res) {
30
+ if (!this.transport) {
31
+ res.status(400).send('No active SSE connection');
32
+ return;
33
+ }
34
+ await this.transport.handlePostMessage(req, res);
35
+ }
36
+ };
37
+ exports.McpController = McpController;
38
+ __decorate([
39
+ (0, common_1.Get)('/sse'),
40
+ __param(0, (0, common_1.Res)()),
41
+ __metadata("design:type", Function),
42
+ __metadata("design:paramtypes", [Object]),
43
+ __metadata("design:returntype", Promise)
44
+ ], McpController.prototype, "handleSse", null);
45
+ __decorate([
46
+ (0, common_1.Post)('/messages'),
47
+ __param(0, (0, common_1.Req)()),
48
+ __param(1, (0, common_1.Res)()),
49
+ __metadata("design:type", Function),
50
+ __metadata("design:paramtypes", [Object, Object]),
51
+ __metadata("design:returntype", Promise)
52
+ ], McpController.prototype, "handleMessages", null);
53
+ exports.McpController = McpController = __decorate([
54
+ (0, common_1.Controller)(),
55
+ __metadata("design:paramtypes", [mcp_service_1.McpService])
56
+ ], McpController);
57
+ //# sourceMappingURL=mcp.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.controller.js","sourceRoot":"","sources":["../../../src/mcp/mcp.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiE;AAEjE,+CAA2C;AAC3C,oEAA6E;AAGtE,IAAM,aAAa,GAAnB,MAAM,aAAa;IAKxB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAFlC,cAAS,GAA8B,IAAI,CAAC;IAEP,CAAC;IAGxC,AAAN,KAAK,CAAC,SAAS,CAAQ,GAAa;QAClC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,2BAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CAAQ,GAAY,EAAS,GAAa;QAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;CACF,CAAA;AAtBY,sCAAa;AAQlB;IADL,IAAA,YAAG,EAAC,MAAM,CAAC;IACK,WAAA,IAAA,YAAG,GAAE,CAAA;;;;8CAIrB;AAGK;IADL,IAAA,aAAI,EAAC,WAAW,CAAC;IACI,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;mDAM/C;wBArBU,aAAa;IADzB,IAAA,mBAAU,GAAE;qCAMqB,wBAAU;GAL/B,aAAa,CAsBzB"}
@@ -0,0 +1,2 @@
1
+ export declare class McpModule {
2
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.McpModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const mcp_service_1 = require("./mcp.service");
12
+ const mcp_controller_1 = require("./mcp.controller");
13
+ const rules_module_1 = require("../rules/rules.module");
14
+ const keyword_module_1 = require("../keyword/keyword.module");
15
+ let McpModule = class McpModule {
16
+ };
17
+ exports.McpModule = McpModule;
18
+ exports.McpModule = McpModule = __decorate([
19
+ (0, common_1.Module)({
20
+ imports: [rules_module_1.RulesModule, keyword_module_1.KeywordModule],
21
+ controllers: [mcp_controller_1.McpController],
22
+ providers: [mcp_service_1.McpService],
23
+ exports: [mcp_service_1.McpService],
24
+ })
25
+ ], McpModule);
26
+ //# sourceMappingURL=mcp.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.module.js","sourceRoot":"","sources":["../../../src/mcp/mcp.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+CAA2C;AAC3C,qDAAiD;AACjD,wDAAoD;AACpD,8DAA0D;AAQnD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IANrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,0BAAW,EAAE,8BAAa,CAAC;QACrC,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,CAAC;QACvB,OAAO,EAAE,CAAC,wBAAU,CAAC;KACtB,CAAC;GACW,SAAS,CAAG"}
@@ -0,0 +1,39 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ import { RulesService } from '../rules/rules.service';
4
+ import { KeywordService } from '../keyword/keyword.service';
5
+ export declare class McpService implements OnModuleInit {
6
+ private rulesService;
7
+ private keywordService;
8
+ private server;
9
+ private readonly logger;
10
+ constructor(rulesService: RulesService, keywordService: KeywordService);
11
+ onModuleInit(): void;
12
+ startStdio(): Promise<void>;
13
+ getServer(): Server<{
14
+ method: string;
15
+ params?: {
16
+ [x: string]: unknown;
17
+ _meta?: {
18
+ [x: string]: unknown;
19
+ progressToken?: string | number;
20
+ };
21
+ };
22
+ }, {
23
+ method: string;
24
+ params?: {
25
+ [x: string]: unknown;
26
+ _meta?: {
27
+ [x: string]: unknown;
28
+ };
29
+ };
30
+ }, {
31
+ [x: string]: unknown;
32
+ _meta?: {
33
+ [x: string]: unknown;
34
+ };
35
+ }>;
36
+ private registerResources;
37
+ private registerTools;
38
+ private registerPrompts;
39
+ }
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var McpService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.McpService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
19
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
20
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
21
+ const rules_service_1 = require("../rules/rules.service");
22
+ const keyword_service_1 = require("../keyword/keyword.service");
23
+ const keyword_module_1 = require("../keyword/keyword.module");
24
+ let McpService = McpService_1 = class McpService {
25
+ constructor(rulesService, keywordService) {
26
+ this.rulesService = rulesService;
27
+ this.keywordService = keywordService;
28
+ this.logger = new common_1.Logger(McpService_1.name);
29
+ this.server = new index_js_1.Server({
30
+ name: 'codebuddy-rules-server',
31
+ version: '1.0.0',
32
+ }, {
33
+ capabilities: {
34
+ resources: {},
35
+ tools: {},
36
+ prompts: {},
37
+ },
38
+ });
39
+ }
40
+ onModuleInit() {
41
+ this.registerResources();
42
+ this.registerTools();
43
+ this.registerPrompts();
44
+ }
45
+ async startStdio() {
46
+ const transport = new stdio_js_1.StdioServerTransport();
47
+ await this.server.connect(transport);
48
+ this.logger.log('MCP Server connected via Stdio');
49
+ }
50
+ getServer() {
51
+ return this.server;
52
+ }
53
+ registerResources() {
54
+ this.server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => {
55
+ const agents = await this.rulesService.listAgents();
56
+ const coreRules = [
57
+ 'rules/core.md',
58
+ 'rules/project.md',
59
+ 'rules/augmented-coding.md',
60
+ ];
61
+ return {
62
+ resources: [
63
+ ...coreRules.map(rule => ({
64
+ uri: `rules://${rule}`,
65
+ name: rule,
66
+ mimeType: 'text/markdown',
67
+ description: `Core rule file: ${rule}`,
68
+ })),
69
+ ...agents.map(agent => ({
70
+ uri: `rules://agents/${agent}.json`,
71
+ name: `Agent: ${agent}`,
72
+ mimeType: 'application/json',
73
+ description: `Agent definition for ${agent}`,
74
+ })),
75
+ ],
76
+ };
77
+ });
78
+ this.server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) => {
79
+ const uri = request.params.uri;
80
+ if (!uri.startsWith('rules://')) {
81
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidRequest, 'Invalid URI scheme');
82
+ }
83
+ const relativePath = uri.replace('rules://', '');
84
+ try {
85
+ const content = await this.rulesService.getRuleContent(relativePath);
86
+ return {
87
+ contents: [
88
+ {
89
+ uri: uri,
90
+ mimeType: relativePath.endsWith('.json')
91
+ ? 'application/json'
92
+ : 'text/markdown',
93
+ text: content,
94
+ },
95
+ ],
96
+ };
97
+ }
98
+ catch {
99
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidRequest, `Resource not found: ${uri}`);
100
+ }
101
+ });
102
+ }
103
+ registerTools() {
104
+ this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
105
+ return {
106
+ tools: [
107
+ {
108
+ name: 'search_rules',
109
+ description: 'Search for rules and guidelines',
110
+ inputSchema: {
111
+ type: 'object',
112
+ properties: {
113
+ query: { type: 'string', description: 'Search query' },
114
+ },
115
+ required: ['query'],
116
+ },
117
+ },
118
+ {
119
+ name: 'get_agent_details',
120
+ description: 'Get detailed profile of a specific AI agent',
121
+ inputSchema: {
122
+ type: 'object',
123
+ properties: {
124
+ agentName: { type: 'string', description: 'Name of the agent' },
125
+ },
126
+ required: ['agentName'],
127
+ },
128
+ },
129
+ {
130
+ name: 'parse_mode',
131
+ description: 'Parse workflow mode keyword from prompt and return mode-specific rules',
132
+ inputSchema: {
133
+ type: 'object',
134
+ properties: {
135
+ prompt: {
136
+ type: 'string',
137
+ description: 'User prompt that may start with PLAN/ACT/EVAL keyword',
138
+ },
139
+ },
140
+ required: ['prompt'],
141
+ },
142
+ },
143
+ ],
144
+ };
145
+ });
146
+ this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
147
+ const { name, arguments: args } = request.params;
148
+ if (name === 'search_rules') {
149
+ const query = String(args?.query);
150
+ const results = await this.rulesService.searchRules(query);
151
+ return {
152
+ content: [
153
+ {
154
+ type: 'text',
155
+ text: JSON.stringify(results, null, 2),
156
+ },
157
+ ],
158
+ };
159
+ }
160
+ if (name === 'get_agent_details') {
161
+ const agentName = String(args?.agentName);
162
+ try {
163
+ const agent = await this.rulesService.getAgent(agentName);
164
+ return {
165
+ content: [
166
+ {
167
+ type: 'text',
168
+ text: JSON.stringify(agent, null, 2),
169
+ },
170
+ ],
171
+ };
172
+ }
173
+ catch {
174
+ return {
175
+ isError: true,
176
+ content: [
177
+ { type: 'text', text: `Agent '${agentName}' not found.` },
178
+ ],
179
+ };
180
+ }
181
+ }
182
+ if (name === 'parse_mode') {
183
+ const prompt = String(args?.prompt ?? '');
184
+ try {
185
+ const result = await this.keywordService.parseMode(prompt);
186
+ return {
187
+ content: [
188
+ {
189
+ type: 'text',
190
+ text: JSON.stringify(result, null, 2),
191
+ },
192
+ ],
193
+ };
194
+ }
195
+ catch (error) {
196
+ return {
197
+ isError: true,
198
+ content: [
199
+ {
200
+ type: 'text',
201
+ text: `Failed to parse mode: ${error instanceof Error ? error.message : 'Unknown error'}`,
202
+ },
203
+ ],
204
+ };
205
+ }
206
+ }
207
+ throw new types_js_1.McpError(types_js_1.ErrorCode.MethodNotFound, `Tool not found: ${name}`);
208
+ });
209
+ }
210
+ registerPrompts() {
211
+ this.server.setRequestHandler(types_js_1.ListPromptsRequestSchema, async () => {
212
+ return {
213
+ prompts: [
214
+ {
215
+ name: 'activate_agent',
216
+ description: 'Activate a specific specialist agent with context',
217
+ arguments: [
218
+ {
219
+ name: 'role',
220
+ description: 'Role name (e.g. frontend-developer)',
221
+ required: true,
222
+ },
223
+ ],
224
+ },
225
+ ],
226
+ };
227
+ });
228
+ this.server.setRequestHandler(types_js_1.GetPromptRequestSchema, async (request) => {
229
+ if (request.params.name === 'activate_agent') {
230
+ const role = String(request.params.arguments?.role);
231
+ try {
232
+ const agent = await this.rulesService.getAgent(role);
233
+ const coreRules = await this.rulesService.getRuleContent('rules/core.md');
234
+ return {
235
+ messages: [
236
+ {
237
+ role: 'user',
238
+ content: {
239
+ type: 'text',
240
+ text: `Activate Agent: ${agent.name}\n\nRole: ${agent.role}\n\nGoals:\n${agent.goals.join('\n')}\n\nWorkflow:\n${agent.workflow.join('\n')}\n\nCore Rules Context:\n${coreRules.substring(0, 1000)}... (truncated)`,
241
+ },
242
+ },
243
+ ],
244
+ };
245
+ }
246
+ catch {
247
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidRequest, `Agent '${role}' not found.`);
248
+ }
249
+ }
250
+ throw new types_js_1.McpError(types_js_1.ErrorCode.MethodNotFound, 'Prompt not found');
251
+ });
252
+ }
253
+ };
254
+ exports.McpService = McpService;
255
+ exports.McpService = McpService = McpService_1 = __decorate([
256
+ (0, common_1.Injectable)(),
257
+ __param(1, (0, common_1.Inject)(keyword_module_1.KEYWORD_SERVICE)),
258
+ __metadata("design:paramtypes", [rules_service_1.RulesService,
259
+ keyword_service_1.KeywordService])
260
+ ], McpService);
261
+ //# sourceMappingURL=mcp.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.service.js","sourceRoot":"","sources":["../../../src/mcp/mcp.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare class RulesModule {
2
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RulesModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const rules_service_1 = require("./rules.service");
12
+ let RulesModule = class RulesModule {
13
+ };
14
+ exports.RulesModule = RulesModule;
15
+ exports.RulesModule = RulesModule = __decorate([
16
+ (0, common_1.Module)({
17
+ providers: [rules_service_1.RulesService],
18
+ exports: [rules_service_1.RulesService],
19
+ })
20
+ ], RulesModule);
21
+ //# sourceMappingURL=rules.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.module.js","sourceRoot":"","sources":["../../../src/rules/rules.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mDAA+C;AAMxC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAJvB,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,4BAAY,CAAC;QACzB,OAAO,EAAE,CAAC,4BAAY,CAAC;KACxB,CAAC;GACW,WAAW,CAAG"}
@@ -0,0 +1,11 @@
1
+ import { AgentProfile, SearchResult } from './rules.types';
2
+ export declare class RulesService {
3
+ private readonly logger;
4
+ private readonly rulesDir;
5
+ constructor();
6
+ private checkExists;
7
+ getRuleContent(relativePath: string): Promise<string>;
8
+ listAgents(): Promise<string[]>;
9
+ getAgent(name: string): Promise<AgentProfile>;
10
+ searchRules(query: string): Promise<SearchResult[]>;
11
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var RulesService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.RulesService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const fs = require("fs/promises");
16
+ const fs_1 = require("fs");
17
+ const path = require("path");
18
+ let RulesService = RulesService_1 = class RulesService {
19
+ constructor() {
20
+ this.logger = new common_1.Logger(RulesService_1.name);
21
+ if (process.env.CODEBUDDY_RULES_DIR) {
22
+ this.rulesDir = process.env.CODEBUDDY_RULES_DIR;
23
+ this.logger.log(`Rules directory set from env: ${this.rulesDir}`);
24
+ return;
25
+ }
26
+ const packageRoot = path.resolve(__dirname, '../..');
27
+ let candidate = path.join(packageRoot, '.ai-rules');
28
+ if (!this.checkExists(candidate)) {
29
+ candidate = path.resolve(packageRoot, '../.ai-rules');
30
+ }
31
+ this.rulesDir = candidate;
32
+ this.logger.log(`Rules directory set to: ${this.rulesDir}`);
33
+ }
34
+ checkExists(pathStr) {
35
+ try {
36
+ return (0, fs_1.existsSync)(pathStr);
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ async getRuleContent(relativePath) {
43
+ const fullPath = path.join(this.rulesDir, relativePath);
44
+ try {
45
+ return await fs.readFile(fullPath, 'utf-8');
46
+ }
47
+ catch (error) {
48
+ this.logger.error(`Failed to read rule file: ${relativePath}`, error);
49
+ throw new Error(`Failed to read rule file: ${relativePath}`);
50
+ }
51
+ }
52
+ async listAgents() {
53
+ const agentsDir = path.join(this.rulesDir, 'agents');
54
+ try {
55
+ const files = await fs.readdir(agentsDir);
56
+ return files
57
+ .filter(f => f.endsWith('.json'))
58
+ .map(f => f.replace('.json', ''));
59
+ }
60
+ catch (error) {
61
+ this.logger.error('Failed to list agents', error);
62
+ return [];
63
+ }
64
+ }
65
+ async getAgent(name) {
66
+ const content = await this.getRuleContent(`agents/${name}.json`);
67
+ return JSON.parse(content);
68
+ }
69
+ async searchRules(query) {
70
+ const results = [];
71
+ const queryLower = query.toLowerCase();
72
+ const agents = await this.listAgents();
73
+ const filesToSearch = [
74
+ 'rules/core.md',
75
+ 'rules/project.md',
76
+ 'rules/augmented-coding.md',
77
+ ...agents.map(a => `agents/${a}.json`),
78
+ ];
79
+ for (const file of filesToSearch) {
80
+ try {
81
+ const content = await this.getRuleContent(file);
82
+ const lines = content.split('\n');
83
+ const matches = [];
84
+ let score = 0;
85
+ lines.forEach((line, index) => {
86
+ if (line.toLowerCase().includes(queryLower)) {
87
+ matches.push(`Line ${index + 1}: ${line.trim()}`);
88
+ score++;
89
+ }
90
+ });
91
+ if (score > 0) {
92
+ results.push({ file, matches, score });
93
+ }
94
+ }
95
+ catch {
96
+ }
97
+ }
98
+ return results.sort((a, b) => b.score - a.score);
99
+ }
100
+ };
101
+ exports.RulesService = RulesService;
102
+ exports.RulesService = RulesService = RulesService_1 = __decorate([
103
+ (0, common_1.Injectable)(),
104
+ __metadata("design:paramtypes", [])
105
+ ], RulesService);
106
+ //# sourceMappingURL=rules.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.service.js","sourceRoot":"","sources":["../../../src/rules/rules.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface AgentProfile {
2
+ name: string;
3
+ role: string;
4
+ expertise: string[];
5
+ goals: string[];
6
+ workflow: string[];
7
+ output_format: string;
8
+ }
9
+ export interface SearchResult {
10
+ file: string;
11
+ matches: string[];
12
+ score: number;
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=rules.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.types.js","sourceRoot":"","sources":["../../../src/rules/rules.types.ts"],"names":[],"mappings":""}