codingbuddy 0.0.0-canary.20260111125843.gad99e5f → 0.0.0-canary.20260111143436.gc74a7d3
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 +70 -0
- package/dist/src/keyword/strategies/__tests__/strategy-test.utils.d.ts +8 -0
- package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js +45 -0
- package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js.map +1 -0
- package/dist/src/keyword/strategies/plan-agent.strategy.js +2 -2
- package/dist/src/keyword/strategies/plan-agent.strategy.js.map +1 -1
- package/dist/src/mcp/handlers/config.handler.js +2 -1
- package/dist/src/mcp/handlers/config.handler.js.map +1 -1
- package/dist/src/session/__tests__/session-test.utils.d.ts +5 -0
- package/dist/src/session/__tests__/session-test.utils.js +59 -0
- package/dist/src/session/__tests__/session-test.utils.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -338,6 +338,76 @@ When you use an AI assistant with this MCP server:
|
|
|
338
338
|
3. **Architecture**: AI suggests structures following your patterns
|
|
339
339
|
4. **Conventions**: AI follows your naming and style rules
|
|
340
340
|
|
|
341
|
+
## Architecture Overview
|
|
342
|
+
|
|
343
|
+
The MCP server follows a modular architecture with clear separation of concerns:
|
|
344
|
+
|
|
345
|
+
```
|
|
346
|
+
src/
|
|
347
|
+
├── mcp/ # MCP protocol handlers (resources, tools, prompts)
|
|
348
|
+
├── keyword/ # Workflow mode processing (PLAN/ACT/EVAL/AUTO)
|
|
349
|
+
│ ├── strategies/ # Mode-specific agent resolution (Strategy pattern)
|
|
350
|
+
│ └── patterns/ # Intent detection patterns
|
|
351
|
+
├── session/ # Session document management
|
|
352
|
+
│ ├── session.parser.ts # Document parsing
|
|
353
|
+
│ ├── session.serializer.ts # Document serialization
|
|
354
|
+
│ └── session.cache.ts # In-memory caching
|
|
355
|
+
├── context/ # Context document management
|
|
356
|
+
├── config/ # Configuration loading and validation
|
|
357
|
+
├── rules/ # AI rules file management
|
|
358
|
+
├── agent/ # Agent profiles and system prompts
|
|
359
|
+
├── checklist/ # Quality checklists by domain
|
|
360
|
+
├── analyzer/ # Project analysis utilities
|
|
361
|
+
├── skill/ # Skill recommendation engine
|
|
362
|
+
├── cli/ # CLI command handlers
|
|
363
|
+
└── shared/ # Shared utilities (async, security, validation)
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### Key Design Patterns
|
|
367
|
+
|
|
368
|
+
| Pattern | Usage | Location |
|
|
369
|
+
|---------|-------|----------|
|
|
370
|
+
| Strategy | Mode-specific agent resolution | `keyword/strategies/` |
|
|
371
|
+
| Builder | Activation message construction | `keyword/activation-message.builder.ts` |
|
|
372
|
+
| Repository | Session document persistence | `session/session.service.ts` |
|
|
373
|
+
| Factory | Handler creation | `mcp/handlers/` |
|
|
374
|
+
|
|
375
|
+
### Module Dependencies
|
|
376
|
+
|
|
377
|
+
```
|
|
378
|
+
mcp/ → keyword/ → config/
|
|
379
|
+
↓ ↓
|
|
380
|
+
session/ → shared/
|
|
381
|
+
↓
|
|
382
|
+
context/
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
## Code Quality
|
|
386
|
+
|
|
387
|
+
### Test Coverage Goals
|
|
388
|
+
|
|
389
|
+
| Metric | Target |
|
|
390
|
+
|--------|--------|
|
|
391
|
+
| Statement coverage | 90%+ |
|
|
392
|
+
| Branch coverage | 85%+ |
|
|
393
|
+
| Function coverage | 90%+ |
|
|
394
|
+
|
|
395
|
+
### Running Quality Checks
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
# Full test suite with coverage
|
|
399
|
+
yarn workspace codingbuddy test --coverage
|
|
400
|
+
|
|
401
|
+
# Lint check
|
|
402
|
+
yarn workspace codingbuddy lint
|
|
403
|
+
|
|
404
|
+
# Type check
|
|
405
|
+
yarn workspace codingbuddy typecheck
|
|
406
|
+
|
|
407
|
+
# Build
|
|
408
|
+
yarn workspace codingbuddy build
|
|
409
|
+
```
|
|
410
|
+
|
|
341
411
|
## Development
|
|
342
412
|
|
|
343
413
|
```bash
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { StrategyContext } from '../resolution-strategy.interface';
|
|
2
|
+
export declare const ACT_MODE_AGENTS: readonly ["frontend-developer", "backend-developer", "devops-engineer", "agent-architect", "tooling-engineer", "platform-engineer", "data-engineer", "mobile-developer", "ai-ml-engineer"];
|
|
3
|
+
export declare const PLAN_MODE_AGENTS: readonly ["solution-architect", "technical-planner", "frontend-developer"];
|
|
4
|
+
export declare const EVAL_MODE_AGENTS: readonly ["frontend-developer", "backend-developer", "code-reviewer"];
|
|
5
|
+
export declare function createStrategyContext(overrides?: Partial<StrategyContext>, defaultAgents?: readonly string[]): StrategyContext;
|
|
6
|
+
export declare function createActContext(overrides?: Partial<StrategyContext>): StrategyContext;
|
|
7
|
+
export declare function createPlanContext(overrides?: Partial<StrategyContext>): StrategyContext;
|
|
8
|
+
export declare function createEvalContext(overrides?: Partial<StrategyContext>): StrategyContext;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EVAL_MODE_AGENTS = exports.PLAN_MODE_AGENTS = exports.ACT_MODE_AGENTS = void 0;
|
|
4
|
+
exports.createStrategyContext = createStrategyContext;
|
|
5
|
+
exports.createActContext = createActContext;
|
|
6
|
+
exports.createPlanContext = createPlanContext;
|
|
7
|
+
exports.createEvalContext = createEvalContext;
|
|
8
|
+
exports.ACT_MODE_AGENTS = [
|
|
9
|
+
'frontend-developer',
|
|
10
|
+
'backend-developer',
|
|
11
|
+
'devops-engineer',
|
|
12
|
+
'agent-architect',
|
|
13
|
+
'tooling-engineer',
|
|
14
|
+
'platform-engineer',
|
|
15
|
+
'data-engineer',
|
|
16
|
+
'mobile-developer',
|
|
17
|
+
'ai-ml-engineer',
|
|
18
|
+
];
|
|
19
|
+
exports.PLAN_MODE_AGENTS = [
|
|
20
|
+
'solution-architect',
|
|
21
|
+
'technical-planner',
|
|
22
|
+
'frontend-developer',
|
|
23
|
+
];
|
|
24
|
+
exports.EVAL_MODE_AGENTS = [
|
|
25
|
+
'frontend-developer',
|
|
26
|
+
'backend-developer',
|
|
27
|
+
'code-reviewer',
|
|
28
|
+
];
|
|
29
|
+
function createStrategyContext(overrides = {}, defaultAgents = exports.ACT_MODE_AGENTS) {
|
|
30
|
+
return {
|
|
31
|
+
prompt: 'test prompt',
|
|
32
|
+
availableAgents: [...defaultAgents],
|
|
33
|
+
...overrides,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function createActContext(overrides = {}) {
|
|
37
|
+
return createStrategyContext(overrides, exports.ACT_MODE_AGENTS);
|
|
38
|
+
}
|
|
39
|
+
function createPlanContext(overrides = {}) {
|
|
40
|
+
return createStrategyContext(overrides, exports.PLAN_MODE_AGENTS);
|
|
41
|
+
}
|
|
42
|
+
function createEvalContext(overrides = {}) {
|
|
43
|
+
return createStrategyContext(overrides, exports.EVAL_MODE_AGENTS);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=strategy-test.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategy-test.utils.js","sourceRoot":"","sources":["../../../../../src/keyword/strategies/__tests__/strategy-test.utils.ts"],"names":[],"mappings":";;;AA8DA,sDASC;AAMD,4CAIC;AAMD,8CAIC;AAMD,8CAIC;AAxFY,QAAA,eAAe,GAAG;IAC7B,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;CACR,CAAC;AAME,QAAA,gBAAgB,GAAG;IAC9B,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;CACZ,CAAC;AAME,QAAA,gBAAgB,GAAG;IAC9B,oBAAoB;IACpB,mBAAmB;IACnB,eAAe;CACP,CAAC;AAmBX,SAAgB,qBAAqB,CACnC,YAAsC,EAAE,EACxC,gBAAmC,uBAAe;IAElD,OAAO;QACL,MAAM,EAAE,aAAa;QACrB,eAAe,EAAE,CAAC,GAAG,aAAa,CAAC;QACnC,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAMD,SAAgB,gBAAgB,CAC9B,YAAsC,EAAE;IAExC,OAAO,qBAAqB,CAAC,SAAS,EAAE,uBAAe,CAAC,CAAC;AAC3D,CAAC;AAMD,SAAgB,iBAAiB,CAC/B,YAAsC,EAAE;IAExC,OAAO,qBAAqB,CAAC,SAAS,EAAE,wBAAgB,CAAC,CAAC;AAC5D,CAAC;AAMD,SAAgB,iBAAiB,CAC/B,YAAsC,EAAE;IAExC,OAAO,qBAAqB,CAAC,SAAS,EAAE,wBAAgB,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -4,8 +4,8 @@ exports.PlanAgentStrategy = void 0;
|
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
const keyword_types_1 = require("../keyword.types");
|
|
6
6
|
const patterns_1 = require("../patterns");
|
|
7
|
-
const ARCHITECTURE_PATTERNS = /아키텍처|architecture|시스템\s*설계|system\s*design|구조|structure|API\s*설계|마이크로서비스|microservice|기술\s*선택|technology/i;
|
|
8
|
-
const PLANNING_PATTERNS = /계획|plan|단계|step|태스크|task|TDD|구현\s*순서|implementation\s*order|리팩토링|refactor/i;
|
|
7
|
+
const ARCHITECTURE_PATTERNS = /아키텍처|architecture|시스템\s*설계|system\s*design|구조|structure|API\s*설계|마이크로서비스|microservice|기술\s*선택|technology|アーキテクチャ|構造|設計|架构|结构|设计|arquitectura|estructura|diseño/i;
|
|
8
|
+
const PLANNING_PATTERNS = /계획|plan|단계|step|태스크|task|TDD|구현\s*순서|implementation\s*order|리팩토링|refactor|計画|ロードマップ|スケジュール|リファクタリング|计划|路线图|重构|cronograma|planificar|refactorizar/i;
|
|
9
9
|
function createResult(agentName, source, confidence, reason) {
|
|
10
10
|
return { agentName, source, confidence, reason };
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-agent.strategy.js","sourceRoot":"","sources":["../../../../src/keyword/strategies/plan-agent.strategy.ts"],"names":[],"mappings":";;;AAcA,2CAAwC;AACxC,oDAA0E;AAE1E,0CAAgD;AAOhD,MAAM,qBAAqB,GACzB,
|
|
1
|
+
{"version":3,"file":"plan-agent.strategy.js","sourceRoot":"","sources":["../../../../src/keyword/strategies/plan-agent.strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,7 +67,7 @@ let ConfigHandler = class ConfigHandler extends abstract_handler_1.AbstractHandl
|
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
name: 'set_project_root',
|
|
70
|
-
description: 'Set the project root directory. Use this when the MCP server is launched from a different directory than the target project.',
|
|
70
|
+
description: '[DEPRECATED - Will be removed in v2.0.0] Set the project root directory. Use this when the MCP server is launched from a different directory than the target project. RECOMMENDED: Configure project root in mcp-servers settings or use --project-root CLI flag instead.',
|
|
71
71
|
inputSchema: {
|
|
72
72
|
type: 'object',
|
|
73
73
|
properties: {
|
|
@@ -124,6 +124,7 @@ let ConfigHandler = class ConfigHandler extends abstract_handler_1.AbstractHandl
|
|
|
124
124
|
success: true,
|
|
125
125
|
projectRoot: this.configService.getProjectRoot(),
|
|
126
126
|
message: `Project root set to: ${this.configService.getProjectRoot()}`,
|
|
127
|
+
deprecationWarning: '[DEPRECATED] set_project_root will be removed in v2.0.0. Configure project root in mcp-servers settings or use --project-root CLI flag instead.',
|
|
127
128
|
});
|
|
128
129
|
}
|
|
129
130
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/config.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,yDAAqD;AACrD,gEAA4D;AAC5D,0EAAqE;AACrE,sEAAkE;AAClE,sDAA4E;AAC5E,4EAA0E;AAC1E,gEAA6D;AAQtD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,kCAAe;IAChD,YACmB,aAA4B,EAC5B,iBAAoC,EACpC,eAAgC;QAEjD,KAAK,EAAE,CAAC;QAJS,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,oBAAe,GAAf,eAAe,CAAiB;IAGnD,CAAC;IAES,eAAe;QACvB,OAAO,CAAC,oBAAoB,EAAE,wBAAwB,EAAE,kBAAkB,CAAC,CAAC;IAC9E,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,QAAgB,EAChB,IAAyC;QAEzC,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACvC,CAAC;QAED,IAAI,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAGD,OAAO,IAAA,oCAAmB,EAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,WAAW,EACT,kGAAkG;gBACpG,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,EAAE;iBACb;aACF;YACD;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,WAAW,EACT,mHAAmH;gBACrH,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,gEAAgE;yBACnE;qBACF;oBACD,QAAQ,EAAE,EAAE;iBACb;aACF;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"config.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/config.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SessionMetadata, SessionSection, SessionDocument } from '../session.types';
|
|
2
|
+
export declare function createTestMetadata(overrides?: Partial<SessionMetadata>): SessionMetadata;
|
|
3
|
+
export declare function createTestSection(mode: 'PLAN' | 'ACT' | 'EVAL' | 'AUTO', overrides?: Partial<Omit<SessionSection, 'mode'>>): SessionSection;
|
|
4
|
+
export declare function createTestDocument(sections?: SessionSection[], metadataOverrides?: Partial<SessionMetadata>): SessionDocument;
|
|
5
|
+
export declare function createRoundtripTestDocument(language?: string): SessionDocument;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTestMetadata = createTestMetadata;
|
|
4
|
+
exports.createTestSection = createTestSection;
|
|
5
|
+
exports.createTestDocument = createTestDocument;
|
|
6
|
+
exports.createRoundtripTestDocument = createRoundtripTestDocument;
|
|
7
|
+
function createTestMetadata(overrides = {}) {
|
|
8
|
+
return {
|
|
9
|
+
id: 'test-session',
|
|
10
|
+
title: 'Test Session',
|
|
11
|
+
createdAt: '2026-01-11T10:00:00Z',
|
|
12
|
+
updatedAt: '2026-01-11T12:00:00Z',
|
|
13
|
+
status: 'active',
|
|
14
|
+
...overrides,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function createTestSection(mode, overrides = {}) {
|
|
18
|
+
return {
|
|
19
|
+
mode,
|
|
20
|
+
timestamp: '10:00',
|
|
21
|
+
...overrides,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function createTestDocument(sections = [], metadataOverrides = {}) {
|
|
25
|
+
return {
|
|
26
|
+
metadata: createTestMetadata(metadataOverrides),
|
|
27
|
+
sections,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function createRoundtripTestDocument(language = 'en') {
|
|
31
|
+
const titles = {
|
|
32
|
+
en: 'Roundtrip Test',
|
|
33
|
+
ko: '왕복 테스트',
|
|
34
|
+
ja: 'ラウンドトリップテスト',
|
|
35
|
+
zh: '往返测试',
|
|
36
|
+
es: 'Prueba de ida y vuelta',
|
|
37
|
+
};
|
|
38
|
+
return {
|
|
39
|
+
metadata: createTestMetadata({
|
|
40
|
+
id: 'roundtrip-test',
|
|
41
|
+
title: titles[language] || titles.en,
|
|
42
|
+
}),
|
|
43
|
+
sections: [
|
|
44
|
+
{
|
|
45
|
+
mode: 'PLAN',
|
|
46
|
+
timestamp: '10:00',
|
|
47
|
+
primaryAgent: 'solution-architect',
|
|
48
|
+
recommendedActAgent: 'backend-developer',
|
|
49
|
+
recommendedActAgentConfidence: 0.95,
|
|
50
|
+
specialists: ['security', 'test-strategy'],
|
|
51
|
+
task: 'Implement feature',
|
|
52
|
+
decisions: ['Decision 1', 'Decision 2'],
|
|
53
|
+
notes: ['Note 1'],
|
|
54
|
+
status: 'completed',
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=session-test.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-test.utils.js","sourceRoot":"","sources":["../../../../src/session/__tests__/session-test.utils.ts"],"names":[],"mappings":";;AAsBA,gDAWC;AAYD,8CASC;AAcD,gDAQC;AASD,kEA+BC;AA9FD,SAAgB,kBAAkB,CAChC,YAAsC,EAAE;IAExC,OAAO;QACL,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,sBAAsB;QACjC,SAAS,EAAE,sBAAsB;QACjC,MAAM,EAAE,QAAQ;QAChB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAYD,SAAgB,iBAAiB,CAC/B,IAAsC,EACtC,YAAmD,EAAE;IAErD,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,OAAO;QAClB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAcD,SAAgB,kBAAkB,CAChC,WAA6B,EAAE,EAC/B,oBAA8C,EAAE;IAEhD,OAAO;QACL,QAAQ,EAAE,kBAAkB,CAAC,iBAAiB,CAAC;QAC/C,QAAQ;KACT,CAAC;AACJ,CAAC;AASD,SAAgB,2BAA2B,CACzC,WAAmB,IAAI;IAEvB,MAAM,MAAM,GAA2B;QACrC,EAAE,EAAE,gBAAgB;QACpB,EAAE,EAAE,QAAQ;QACZ,EAAE,EAAE,aAAa;QACjB,EAAE,EAAE,MAAM;QACV,EAAE,EAAE,wBAAwB;KAC7B,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,kBAAkB,CAAC;YAC3B,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,EAAE;SACrC,CAAC;QACF,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,OAAO;gBAClB,YAAY,EAAE,oBAAoB;gBAClC,mBAAmB,EAAE,mBAAmB;gBACxC,6BAA6B,EAAE,IAAI;gBACnC,WAAW,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC;gBAC1C,IAAI,EAAE,mBAAmB;gBACzB,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;gBACvC,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,MAAM,EAAE,WAAW;aACpB;SACF;KACF,CAAC;AACJ,CAAC"}
|