codingbuddy 2.0.0 → 2.1.0

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 (116) hide show
  1. package/dist/src/app.module.js +4 -0
  2. package/dist/src/app.module.js.map +1 -1
  3. package/dist/src/checklist/checklist.module.d.ts +2 -0
  4. package/dist/src/checklist/checklist.module.js +29 -0
  5. package/dist/src/checklist/checklist.module.js.map +1 -0
  6. package/dist/src/checklist/checklist.schema.d.ts +14 -0
  7. package/dist/src/checklist/checklist.schema.js +189 -0
  8. package/dist/src/checklist/checklist.schema.js.map +1 -0
  9. package/dist/src/checklist/checklist.service.d.ts +21 -0
  10. package/dist/src/checklist/checklist.service.js +258 -0
  11. package/dist/src/checklist/checklist.service.js.map +1 -0
  12. package/dist/src/checklist/checklist.types.d.ts +56 -0
  13. package/dist/src/checklist/checklist.types.js +24 -0
  14. package/dist/src/checklist/checklist.types.js.map +1 -0
  15. package/dist/src/checklist/index.d.ts +3 -0
  16. package/dist/src/checklist/index.js +20 -0
  17. package/dist/src/checklist/index.js.map +1 -0
  18. package/dist/src/cli/cli.types.d.ts +0 -6
  19. package/dist/src/cli/index.d.ts +1 -1
  20. package/dist/src/cli/index.js.map +1 -1
  21. package/dist/src/cli/init/init.command.js +10 -1
  22. package/dist/src/cli/init/init.command.js.map +1 -1
  23. package/dist/src/cli/init/prompts/agent-prompt.d.ts +9 -0
  24. package/dist/src/cli/init/prompts/agent-prompt.js +28 -0
  25. package/dist/src/cli/init/prompts/agent-prompt.js.map +1 -0
  26. package/dist/src/cli/init/prompts/index.d.ts +5 -0
  27. package/dist/src/cli/init/prompts/index.js +9 -1
  28. package/dist/src/cli/init/prompts/index.js.map +1 -1
  29. package/dist/src/cli/init/prompts/language-prompt.d.ts +8 -0
  30. package/dist/src/cli/init/prompts/language-prompt.js +30 -0
  31. package/dist/src/cli/init/prompts/language-prompt.js.map +1 -0
  32. package/dist/src/cli/init/templates/template.renderer.js +16 -6
  33. package/dist/src/cli/init/templates/template.renderer.js.map +1 -1
  34. package/dist/src/cli/init/templates/template.types.d.ts +1 -0
  35. package/dist/src/context/context.module.d.ts +2 -0
  36. package/dist/src/context/context.module.js +23 -0
  37. package/dist/src/context/context.module.js.map +1 -0
  38. package/dist/src/context/context.service.d.ts +21 -0
  39. package/dist/src/context/context.service.js +286 -0
  40. package/dist/src/context/context.service.js.map +1 -0
  41. package/dist/src/context/context.types.d.ts +50 -0
  42. package/dist/src/context/context.types.js +42 -0
  43. package/dist/src/context/context.types.js.map +1 -0
  44. package/dist/src/context/index.d.ts +3 -0
  45. package/dist/src/context/index.js +20 -0
  46. package/dist/src/context/index.js.map +1 -0
  47. package/dist/src/context/intent-patterns.d.ts +7 -0
  48. package/dist/src/context/intent-patterns.js +50 -0
  49. package/dist/src/context/intent-patterns.js.map +1 -0
  50. package/dist/src/keyword/keyword.service.d.ts +6 -2
  51. package/dist/src/keyword/keyword.service.js +7 -6
  52. package/dist/src/keyword/keyword.service.js.map +1 -1
  53. package/dist/src/keyword/keyword.types.d.ts +15 -2
  54. package/dist/src/keyword/keyword.types.js +63 -1
  55. package/dist/src/keyword/keyword.types.js.map +1 -1
  56. package/dist/src/keyword/primary-agent-resolver.d.ts +6 -0
  57. package/dist/src/keyword/primary-agent-resolver.js +211 -0
  58. package/dist/src/keyword/primary-agent-resolver.js.map +1 -1
  59. package/dist/src/mcp/handlers/agent.handler.d.ts +11 -0
  60. package/dist/src/mcp/handlers/agent.handler.js +167 -0
  61. package/dist/src/mcp/handlers/agent.handler.js.map +1 -0
  62. package/dist/src/mcp/handlers/base.handler.d.ts +15 -0
  63. package/dist/src/mcp/handlers/base.handler.js +3 -0
  64. package/dist/src/mcp/handlers/base.handler.js.map +1 -0
  65. package/dist/src/mcp/handlers/checklist-context.handler.d.ts +13 -0
  66. package/dist/src/mcp/handlers/checklist-context.handler.js +141 -0
  67. package/dist/src/mcp/handlers/checklist-context.handler.js.map +1 -0
  68. package/dist/src/mcp/handlers/config.handler.d.ts +15 -0
  69. package/dist/src/mcp/handlers/config.handler.js +104 -0
  70. package/dist/src/mcp/handlers/config.handler.js.map +1 -0
  71. package/dist/src/mcp/handlers/index.d.ts +8 -0
  72. package/dist/src/mcp/handlers/index.js +17 -0
  73. package/dist/src/mcp/handlers/index.js.map +1 -0
  74. package/dist/src/mcp/handlers/mode.handler.d.ts +16 -0
  75. package/dist/src/mcp/handlers/mode.handler.js +100 -0
  76. package/dist/src/mcp/handlers/mode.handler.js.map +1 -0
  77. package/dist/src/mcp/handlers/rules.handler.d.ts +11 -0
  78. package/dist/src/mcp/handlers/rules.handler.js +99 -0
  79. package/dist/src/mcp/handlers/rules.handler.js.map +1 -0
  80. package/dist/src/mcp/handlers/skill.handler.d.ts +11 -0
  81. package/dist/src/mcp/handlers/skill.handler.js +111 -0
  82. package/dist/src/mcp/handlers/skill.handler.js.map +1 -0
  83. package/dist/src/mcp/mcp.module.js +26 -1
  84. package/dist/src/mcp/mcp.module.js.map +1 -1
  85. package/dist/src/mcp/mcp.service.d.ts +3 -25
  86. package/dist/src/mcp/mcp.service.js +13 -366
  87. package/dist/src/mcp/mcp.service.js.map +1 -1
  88. package/dist/src/model/index.d.ts +1 -0
  89. package/dist/src/model/index.js +3 -0
  90. package/dist/src/model/index.js.map +1 -1
  91. package/dist/src/model/model-resolver.service.d.ts +13 -0
  92. package/dist/src/model/model-resolver.service.js +63 -0
  93. package/dist/src/model/model-resolver.service.js.map +1 -0
  94. package/dist/src/model/model.resolver.js +2 -1
  95. package/dist/src/model/model.resolver.js.map +1 -1
  96. package/dist/src/shared/filesystem.interface.d.ts +15 -0
  97. package/dist/src/shared/filesystem.interface.js +14 -0
  98. package/dist/src/shared/filesystem.interface.js.map +1 -0
  99. package/dist/src/shared/node-filesystem.service.d.ts +5 -0
  100. package/dist/src/shared/node-filesystem.service.js +25 -0
  101. package/dist/src/shared/node-filesystem.service.js.map +1 -0
  102. package/dist/src/shared/path.utils.js.map +1 -1
  103. package/dist/src/shared/pattern-matcher.d.ts +11 -0
  104. package/dist/src/shared/pattern-matcher.js +39 -0
  105. package/dist/src/shared/pattern-matcher.js.map +1 -0
  106. package/dist/src/shared/security.utils.d.ts +17 -0
  107. package/dist/src/shared/security.utils.js +63 -0
  108. package/dist/src/shared/security.utils.js.map +1 -1
  109. package/dist/src/shared/validation.constants.d.ts +10 -0
  110. package/dist/src/shared/validation.constants.js +42 -1
  111. package/dist/src/shared/validation.constants.js.map +1 -1
  112. package/dist/tsconfig.build.tsbuildinfo +1 -1
  113. package/package.json +3 -2
  114. package/dist/src/config/config.types.d.ts +0 -2
  115. package/dist/src/config/config.types.js +0 -6
  116. package/dist/src/config/config.types.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KOREAN_KEYWORD_MAP = exports.LOCALIZED_KEYWORD_MAP = exports.ALL_PRIMARY_AGENTS_LIST = exports.ACT_PRIMARY_AGENTS_LIST = exports.PLAN_PRIMARY_AGENTS_LIST = exports.ALL_PRIMARY_AGENTS = exports.DEFAULT_ACT_AGENT = exports.EVAL_PRIMARY_AGENT = exports.ACT_PRIMARY_AGENTS = exports.PLAN_PRIMARY_AGENTS = exports.MODE_AGENTS = exports.KEYWORDS = void 0;
3
+ exports.KOREAN_KEYWORD_MAP = exports.SUPPORTED_LANGUAGE_CODES = exports.DEFAULT_LANGUAGE_CODE = exports.SUPPORTED_LANGUAGES = exports.LOCALIZED_KEYWORD_MAP = exports.ACT_AGENT_DISPLAY_INFO = exports.ALL_PRIMARY_AGENTS_LIST = exports.ACT_PRIMARY_AGENTS_LIST = exports.PLAN_PRIMARY_AGENTS_LIST = exports.ALL_PRIMARY_AGENTS = exports.DEFAULT_ACT_AGENT = exports.EVAL_PRIMARY_AGENT = exports.ACT_PRIMARY_AGENTS = exports.PLAN_PRIMARY_AGENTS = exports.MODE_AGENTS = exports.KEYWORDS = void 0;
4
4
  exports.KEYWORDS = ['PLAN', 'ACT', 'EVAL'];
5
5
  exports.MODE_AGENTS = ['plan-mode', 'act-mode', 'eval-mode'];
6
6
  exports.PLAN_PRIMARY_AGENTS = [
@@ -8,6 +8,9 @@ exports.PLAN_PRIMARY_AGENTS = [
8
8
  'technical-planner',
9
9
  ];
10
10
  exports.ACT_PRIMARY_AGENTS = [
11
+ 'tooling-engineer',
12
+ 'data-engineer',
13
+ 'mobile-developer',
11
14
  'frontend-developer',
12
15
  'backend-developer',
13
16
  'devops-engineer',
@@ -23,6 +26,36 @@ exports.ALL_PRIMARY_AGENTS = [
23
26
  exports.PLAN_PRIMARY_AGENTS_LIST = [...exports.PLAN_PRIMARY_AGENTS];
24
27
  exports.ACT_PRIMARY_AGENTS_LIST = [...exports.ACT_PRIMARY_AGENTS];
25
28
  exports.ALL_PRIMARY_AGENTS_LIST = [...exports.ALL_PRIMARY_AGENTS];
29
+ exports.ACT_AGENT_DISPLAY_INFO = {
30
+ 'tooling-engineer': {
31
+ name: 'Tooling Engineer',
32
+ description: 'Config, build tools, bundlers (webpack, vite, eslint)',
33
+ },
34
+ 'data-engineer': {
35
+ name: 'Data Engineer',
36
+ description: 'Database, schema design, migrations, analytics',
37
+ },
38
+ 'mobile-developer': {
39
+ name: 'Mobile Developer',
40
+ description: 'React Native, Flutter, iOS, Android',
41
+ },
42
+ 'frontend-developer': {
43
+ name: 'Frontend Developer',
44
+ description: 'React, Vue, Angular, Web UI development',
45
+ },
46
+ 'backend-developer': {
47
+ name: 'Backend Developer',
48
+ description: 'Node.js, NestJS, Express, API development',
49
+ },
50
+ 'devops-engineer': {
51
+ name: 'DevOps Engineer',
52
+ description: 'CI/CD, Docker, Kubernetes, infrastructure',
53
+ },
54
+ 'agent-architect': {
55
+ name: 'Agent Architect',
56
+ description: 'AI agent systems, MCP servers, LLM integration',
57
+ },
58
+ };
26
59
  exports.LOCALIZED_KEYWORD_MAP = {
27
60
  계획: 'PLAN',
28
61
  실행: 'ACT',
@@ -37,5 +70,34 @@ exports.LOCALIZED_KEYWORD_MAP = {
37
70
  ACTUAR: 'ACT',
38
71
  EVALUAR: 'EVAL',
39
72
  };
73
+ exports.SUPPORTED_LANGUAGES = {
74
+ ko: {
75
+ name: 'Korean',
76
+ nativeName: '한국어',
77
+ description: 'AI responses will be in Korean',
78
+ },
79
+ en: {
80
+ name: 'English',
81
+ nativeName: 'English',
82
+ description: 'AI responses will be in English',
83
+ },
84
+ ja: {
85
+ name: 'Japanese',
86
+ nativeName: '日本語',
87
+ description: 'AI responses will be in Japanese',
88
+ },
89
+ zh: {
90
+ name: 'Chinese',
91
+ nativeName: '中文',
92
+ description: 'AI responses will be in Chinese',
93
+ },
94
+ es: {
95
+ name: 'Spanish',
96
+ nativeName: 'Español',
97
+ description: 'AI responses will be in Spanish',
98
+ },
99
+ };
100
+ exports.DEFAULT_LANGUAGE_CODE = 'ko';
101
+ exports.SUPPORTED_LANGUAGE_CODES = Object.keys(exports.SUPPORTED_LANGUAGES);
40
102
  exports.KOREAN_KEYWORD_MAP = exports.LOCALIZED_KEYWORD_MAP;
41
103
  //# sourceMappingURL=keyword.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyword.types.js","sourceRoot":"","sources":["../../../src/keyword/keyword.types.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AAK5C,QAAA,WAAW,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAU,CAAC;AAK9D,QAAA,mBAAmB,GAAG;IACjC,oBAAoB;IACpB,mBAAmB;CACX,CAAC;AAGE,QAAA,kBAAkB,GAAG;IAChC,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;CACT,CAAC;AAGE,QAAA,kBAAkB,GAAG,eAAwB,CAAC;AAY9C,QAAA,iBAAiB,GAAG,oBAA6B,CAAC;AAGlD,QAAA,kBAAkB,GAAG;IAChC,GAAG,2BAAmB;IACtB,GAAG,0BAAkB;IACrB,0BAAkB;CACV,CAAC;AAWE,QAAA,wBAAwB,GAAa,CAAC,GAAG,2BAAmB,CAAC,CAAC;AAC9D,QAAA,uBAAuB,GAAa,CAAC,GAAG,0BAAkB,CAAC,CAAC;AAC5D,QAAA,uBAAuB,GAAa,CAAC,GAAG,0BAAkB,CAAC,CAAC;AAG5D,QAAA,qBAAqB,GAAyB;IAEzD,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IAEV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IAEV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IAEV,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,MAAM;CACP,CAAC;AAGE,QAAA,kBAAkB,GAAG,6BAAqB,CAAC"}
1
+ {"version":3,"file":"keyword.types.js","sourceRoot":"","sources":["../../../src/keyword/keyword.types.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AAK5C,QAAA,WAAW,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAU,CAAC;AAK9D,QAAA,mBAAmB,GAAG;IACjC,oBAAoB;IACpB,mBAAmB;CACX,CAAC;AAGE,QAAA,kBAAkB,GAAG;IAChC,kBAAkB;IAClB,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;CACT,CAAC;AAGE,QAAA,kBAAkB,GAAG,eAAwB,CAAC;AAY9C,QAAA,iBAAiB,GAAG,oBAA6B,CAAC;AAGlD,QAAA,kBAAkB,GAAG;IAChC,GAAG,2BAAmB;IACtB,GAAG,0BAAkB;IACrB,0BAAkB;CACV,CAAC;AAWE,QAAA,wBAAwB,GAAa,CAAC,GAAG,2BAAmB,CAAC,CAAC;AAC9D,QAAA,uBAAuB,GAAa,CAAC,GAAG,0BAAkB,CAAC,CAAC;AAC5D,QAAA,uBAAuB,GAAa,CAAC,GAAG,0BAAkB,CAAC,CAAC;AAqB5D,QAAA,sBAAsB,GACjC;IACE,kBAAkB,EAAE;QAClB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,uDAAuD;KACrE;IACD,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gDAAgD;KAC9D;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,qCAAqC;KACnD;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,yCAAyC;KACvD;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,2CAA2C;KACzD;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,2CAA2C;KACzD;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,gDAAgD;KAC9D;CACF,CAAC;AAGS,QAAA,qBAAqB,GAAyB;IAEzD,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IAEV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IAEV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IAEV,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,MAAM;CACP,CAAC;AAoBE,QAAA,mBAAmB,GAAwC;IACtE,EAAE,EAAE;QACF,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,gCAAgC;KAC9C;IACD,EAAE,EAAE;QACF,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,iCAAiC;KAC/C;IACD,EAAE,EAAE;QACF,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,kCAAkC;KAChD;IACD,EAAE,EAAE;QACF,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,iCAAiC;KAC/C;IACD,EAAE,EAAE;QACF,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,iCAAiC;KAC/C;CACO,CAAC;AAGE,QAAA,qBAAqB,GAAG,IAAa,CAAC;AAGtC,QAAA,wBAAwB,GAAG,MAAM,CAAC,IAAI,CACjD,2BAAmB,CACoB,CAAC;AAG7B,QAAA,kBAAkB,GAAG,6BAAqB,CAAC"}
@@ -9,12 +9,18 @@ export declare class PrimaryAgentResolver {
9
9
  private readonly listPrimaryAgents;
10
10
  private readonly logger;
11
11
  private static readonly EXPLICIT_PATTERNS;
12
+ private static readonly DATA_INTENT_PATTERNS;
13
+ private static readonly MOBILE_INTENT_PATTERNS;
14
+ private static readonly TOOLING_INTENT_PATTERNS;
12
15
  private static readonly CONTEXT_PATTERNS;
13
16
  constructor(getProjectConfig: GetProjectConfigFn, listPrimaryAgents: ListPrimaryAgentsFn);
14
17
  resolve(mode: Mode, prompt: string, context?: ResolutionContext, recommendedActAgent?: string): Promise<PrimaryAgentResolutionResult>;
15
18
  private resolvePlanAgent;
16
19
  private choosePlanAgent;
17
20
  private resolveActAgent;
21
+ private inferFromToolingPatterns;
22
+ private inferFromDataPatterns;
23
+ private inferFromMobilePatterns;
18
24
  private parseExplicitRequest;
19
25
  private getFromProjectConfig;
20
26
  private inferFromContext;
@@ -62,6 +62,18 @@ class PrimaryAgentResolver {
62
62
  if (recommendedActAgent && availableAgents.includes(recommendedActAgent)) {
63
63
  return this.createResult(recommendedActAgent, 'config', 1.0, `Using recommended agent from PLAN mode: ${recommendedActAgent}`);
64
64
  }
65
+ const fromTooling = this.inferFromToolingPatterns(prompt, availableAgents);
66
+ if (fromTooling) {
67
+ return fromTooling;
68
+ }
69
+ const fromData = this.inferFromDataPatterns(prompt, availableAgents);
70
+ if (fromData) {
71
+ return fromData;
72
+ }
73
+ const fromMobile = this.inferFromMobilePatterns(prompt, availableAgents);
74
+ if (fromMobile) {
75
+ return fromMobile;
76
+ }
65
77
  const fromConfig = await this.getFromProjectConfig(availableAgents);
66
78
  if (fromConfig) {
67
79
  return fromConfig;
@@ -74,6 +86,39 @@ class PrimaryAgentResolver {
74
86
  }
75
87
  return this.createResult(keyword_types_1.DEFAULT_ACT_AGENT, 'default', 1.0, 'ACT mode default: frontend-developer');
76
88
  }
89
+ inferFromToolingPatterns(prompt, availableAgents) {
90
+ if (!availableAgents.includes('tooling-engineer')) {
91
+ return null;
92
+ }
93
+ for (const { pattern, confidence, description, } of PrimaryAgentResolver.TOOLING_INTENT_PATTERNS) {
94
+ if (pattern.test(prompt)) {
95
+ return this.createResult('tooling-engineer', 'intent', confidence, `Tooling pattern detected: ${description}`);
96
+ }
97
+ }
98
+ return null;
99
+ }
100
+ inferFromDataPatterns(prompt, availableAgents) {
101
+ if (!availableAgents.includes('data-engineer')) {
102
+ return null;
103
+ }
104
+ for (const { pattern, confidence, description, } of PrimaryAgentResolver.DATA_INTENT_PATTERNS) {
105
+ if (pattern.test(prompt)) {
106
+ return this.createResult('data-engineer', 'intent', confidence, `Data pattern detected: ${description}`);
107
+ }
108
+ }
109
+ return null;
110
+ }
111
+ inferFromMobilePatterns(prompt, availableAgents) {
112
+ if (!availableAgents.includes('mobile-developer')) {
113
+ return null;
114
+ }
115
+ for (const { pattern, confidence, description, } of PrimaryAgentResolver.MOBILE_INTENT_PATTERNS) {
116
+ if (pattern.test(prompt)) {
117
+ return this.createResult('mobile-developer', 'intent', confidence, `Mobile pattern detected: ${description}`);
118
+ }
119
+ }
120
+ return null;
121
+ }
77
122
  parseExplicitRequest(prompt, availableAgents, allowedAgents) {
78
123
  for (const pattern of PrimaryAgentResolver.EXPLICIT_PATTERNS) {
79
124
  const match = prompt.match(pattern);
@@ -148,7 +193,173 @@ PrimaryAgentResolver.EXPLICIT_PATTERNS = [
148
193
  /as\s+(\w+-\w+)/i,
149
194
  /(\w+-\w+)\s+agent(?:로|으로)/i,
150
195
  ];
196
+ PrimaryAgentResolver.DATA_INTENT_PATTERNS = [
197
+ {
198
+ pattern: /schema\.prisma/i,
199
+ confidence: 0.95,
200
+ description: 'Prisma schema',
201
+ },
202
+ {
203
+ pattern: /migration/i,
204
+ confidence: 0.9,
205
+ description: 'Database migration',
206
+ },
207
+ { pattern: /\.sql$/i, confidence: 0.9, description: 'SQL file' },
208
+ {
209
+ pattern: /database|데이터베이스|DB\s*(설계|스키마|마이그레이션)/i,
210
+ confidence: 0.9,
211
+ description: 'Database design',
212
+ },
213
+ {
214
+ pattern: /스키마|schema\s*design/i,
215
+ confidence: 0.9,
216
+ description: 'Schema design',
217
+ },
218
+ {
219
+ pattern: /ERD|entity.?relationship/i,
220
+ confidence: 0.9,
221
+ description: 'ERD design',
222
+ },
223
+ {
224
+ pattern: /쿼리\s*최적화|query\s*optim/i,
225
+ confidence: 0.85,
226
+ description: 'Query optimization',
227
+ },
228
+ {
229
+ pattern: /인덱스|index(ing)?/i,
230
+ confidence: 0.85,
231
+ description: 'Indexing',
232
+ },
233
+ {
234
+ pattern: /정규화|normaliz/i,
235
+ confidence: 0.85,
236
+ description: 'Normalization',
237
+ },
238
+ ];
239
+ PrimaryAgentResolver.MOBILE_INTENT_PATTERNS = [
240
+ {
241
+ pattern: /react.?native/i,
242
+ confidence: 0.95,
243
+ description: 'React Native',
244
+ },
245
+ { pattern: /flutter/i, confidence: 0.95, description: 'Flutter' },
246
+ { pattern: /expo/i, confidence: 0.9, description: 'Expo' },
247
+ { pattern: /swiftui/i, confidence: 0.95, description: 'SwiftUI' },
248
+ {
249
+ pattern: /jetpack\s*compose/i,
250
+ confidence: 0.95,
251
+ description: 'Jetpack Compose',
252
+ },
253
+ {
254
+ pattern: /모바일\s*(앱|개발|화면)/i,
255
+ confidence: 0.9,
256
+ description: 'Korean: mobile app',
257
+ },
258
+ {
259
+ pattern: /mobile\s*(app|develop|screen)/i,
260
+ confidence: 0.9,
261
+ description: 'Mobile app',
262
+ },
263
+ { pattern: /iOS\s*(앱|개발)/i, confidence: 0.9, description: 'iOS app' },
264
+ {
265
+ pattern: /android\s*(앱|개발)/i,
266
+ confidence: 0.9,
267
+ description: 'Android app',
268
+ },
269
+ ];
270
+ PrimaryAgentResolver.TOOLING_INTENT_PATTERNS = [
271
+ {
272
+ pattern: /codingbuddy\.config/i,
273
+ confidence: 0.98,
274
+ description: 'CodingBuddy config',
275
+ },
276
+ {
277
+ pattern: /tsconfig.*\.json/i,
278
+ confidence: 0.95,
279
+ description: 'TypeScript config',
280
+ },
281
+ { pattern: /eslint/i, confidence: 0.95, description: 'ESLint config' },
282
+ { pattern: /prettier/i, confidence: 0.95, description: 'Prettier config' },
283
+ {
284
+ pattern: /stylelint/i,
285
+ confidence: 0.95,
286
+ description: 'Stylelint config',
287
+ },
288
+ { pattern: /vite\.config/i, confidence: 0.95, description: 'Vite config' },
289
+ {
290
+ pattern: /next\.config/i,
291
+ confidence: 0.95,
292
+ description: 'Next.js config',
293
+ },
294
+ { pattern: /webpack/i, confidence: 0.9, description: 'Webpack config' },
295
+ {
296
+ pattern: /rollup\.config/i,
297
+ confidence: 0.9,
298
+ description: 'Rollup config',
299
+ },
300
+ { pattern: /package\.json/i, confidence: 0.9, description: 'Package.json' },
301
+ {
302
+ pattern: /yarn\.lock|pnpm-lock|package-lock/i,
303
+ confidence: 0.85,
304
+ description: 'Lock files',
305
+ },
306
+ {
307
+ pattern: /\.config\.(js|ts|mjs|cjs|json)$/i,
308
+ confidence: 0.85,
309
+ description: 'Config file extension',
310
+ },
311
+ {
312
+ pattern: /설정\s*(파일|변경|수정)/i,
313
+ confidence: 0.85,
314
+ description: 'Korean: config file',
315
+ },
316
+ {
317
+ pattern: /빌드\s*(설정|도구|환경)/i,
318
+ confidence: 0.85,
319
+ description: 'Korean: build config',
320
+ },
321
+ {
322
+ pattern: /패키지\s*(관리|설치|업데이트|의존성)/i,
323
+ confidence: 0.85,
324
+ description: 'Korean: package management',
325
+ },
326
+ {
327
+ pattern: /린터|린트\s*설정/i,
328
+ confidence: 0.85,
329
+ description: 'Korean: linter config',
330
+ },
331
+ ];
151
332
  PrimaryAgentResolver.CONTEXT_PATTERNS = [
333
+ {
334
+ pattern: /react-native\.config\.js$/i,
335
+ agent: 'mobile-developer',
336
+ confidence: 0.95,
337
+ },
338
+ {
339
+ pattern: /metro\.config\.js$/i,
340
+ agent: 'mobile-developer',
341
+ confidence: 0.95,
342
+ },
343
+ { pattern: /app\.json$/i, agent: 'mobile-developer', confidence: 0.85 },
344
+ { pattern: /pubspec\.yaml$/i, agent: 'mobile-developer', confidence: 0.95 },
345
+ { pattern: /\.dart$/i, agent: 'mobile-developer', confidence: 0.9 },
346
+ { pattern: /Podfile$/i, agent: 'mobile-developer', confidence: 0.9 },
347
+ { pattern: /\.swift$/i, agent: 'mobile-developer', confidence: 0.9 },
348
+ {
349
+ pattern: /build\.gradle(\.kts)?$/i,
350
+ agent: 'mobile-developer',
351
+ confidence: 0.85,
352
+ },
353
+ {
354
+ pattern: /AndroidManifest\.xml$/i,
355
+ agent: 'mobile-developer',
356
+ confidence: 0.9,
357
+ },
358
+ { pattern: /\.kt$/i, agent: 'mobile-developer', confidence: 0.85 },
359
+ { pattern: /\.sql$/i, agent: 'data-engineer', confidence: 0.9 },
360
+ { pattern: /schema\.prisma$/i, agent: 'data-engineer', confidence: 0.95 },
361
+ { pattern: /migrations?\//i, agent: 'data-engineer', confidence: 0.9 },
362
+ { pattern: /\.entity\.ts$/i, agent: 'data-engineer', confidence: 0.85 },
152
363
  {
153
364
  pattern: /Dockerfile|docker-compose/i,
154
365
  agent: 'devops-engineer',
@@ -1 +1 @@
1
- {"version":3,"file":"primary-agent-resolver.js","sourceRoot":"","sources":["../../../src/keyword/primary-agent-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primary-agent-resolver.js","sourceRoot":"","sources":["../../../src/keyword/primary-agent-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ToolHandler, ToolDefinition, ToolResult } from './base.handler';
2
+ import { AgentService } from '../../agent/agent.service';
3
+ export declare class AgentHandler implements ToolHandler {
4
+ private readonly agentService;
5
+ private readonly handledTools;
6
+ constructor(agentService: AgentService);
7
+ handle(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResult | null>;
8
+ getToolDefinitions(): ToolDefinition[];
9
+ private handleGetAgentSystemPrompt;
10
+ private handlePrepareParallelAgents;
11
+ }
@@ -0,0 +1,167 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AgentHandler = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const agent_service_1 = require("../../agent/agent.service");
15
+ const response_utils_1 = require("../response.utils");
16
+ const security_utils_1 = require("../../shared/security.utils");
17
+ const validation_constants_1 = require("../../shared/validation.constants");
18
+ let AgentHandler = class AgentHandler {
19
+ constructor(agentService) {
20
+ this.agentService = agentService;
21
+ this.handledTools = [
22
+ 'get_agent_system_prompt',
23
+ 'prepare_parallel_agents',
24
+ ];
25
+ }
26
+ async handle(toolName, args) {
27
+ if (!this.handledTools.includes(toolName)) {
28
+ return null;
29
+ }
30
+ const validation = (0, security_utils_1.sanitizeHandlerArgs)(args);
31
+ if (!validation.safe) {
32
+ return (0, response_utils_1.createErrorResponse)(validation.error);
33
+ }
34
+ switch (toolName) {
35
+ case 'get_agent_system_prompt':
36
+ return this.handleGetAgentSystemPrompt(args);
37
+ case 'prepare_parallel_agents':
38
+ return this.handlePrepareParallelAgents(args);
39
+ default:
40
+ return null;
41
+ }
42
+ }
43
+ getToolDefinitions() {
44
+ return [
45
+ {
46
+ name: 'get_agent_system_prompt',
47
+ description: 'Get complete system prompt for a specialist agent to be executed as a Claude Code subagent. Use this to prepare an agent for parallel execution via Task tool.',
48
+ inputSchema: {
49
+ type: 'object',
50
+ properties: {
51
+ agentName: {
52
+ type: 'string',
53
+ description: 'Name of the specialist agent (e.g., security-specialist, accessibility-specialist)',
54
+ },
55
+ context: {
56
+ type: 'object',
57
+ description: 'Context for the agent',
58
+ properties: {
59
+ mode: {
60
+ type: 'string',
61
+ enum: ['PLAN', 'ACT', 'EVAL'],
62
+ description: 'Current workflow mode',
63
+ },
64
+ targetFiles: {
65
+ type: 'array',
66
+ items: { type: 'string' },
67
+ description: 'Files to analyze or review',
68
+ },
69
+ taskDescription: {
70
+ type: 'string',
71
+ description: 'Description of the task',
72
+ },
73
+ },
74
+ required: ['mode'],
75
+ },
76
+ },
77
+ required: ['agentName', 'context'],
78
+ },
79
+ },
80
+ {
81
+ name: 'prepare_parallel_agents',
82
+ description: 'Prepare multiple specialist agents for parallel execution via Claude Code Task tool. Returns prompts and hints for launching agents concurrently.',
83
+ inputSchema: {
84
+ type: 'object',
85
+ properties: {
86
+ mode: {
87
+ type: 'string',
88
+ enum: ['PLAN', 'ACT', 'EVAL'],
89
+ description: 'Current workflow mode',
90
+ },
91
+ specialists: {
92
+ type: 'array',
93
+ items: { type: 'string' },
94
+ description: 'List of specialist agent names (e.g., ["security-specialist", "accessibility-specialist"])',
95
+ },
96
+ targetFiles: {
97
+ type: 'array',
98
+ items: { type: 'string' },
99
+ description: 'Files to analyze or review',
100
+ },
101
+ sharedContext: {
102
+ type: 'string',
103
+ description: 'Shared context or task description for all agents',
104
+ },
105
+ },
106
+ required: ['mode', 'specialists'],
107
+ },
108
+ },
109
+ ];
110
+ }
111
+ async handleGetAgentSystemPrompt(args) {
112
+ const agentName = (0, validation_constants_1.extractRequiredString)(args, 'agentName');
113
+ if (agentName === null) {
114
+ return (0, response_utils_1.createErrorResponse)('Missing required parameter: agentName');
115
+ }
116
+ const context = args?.context;
117
+ if (!context) {
118
+ return (0, response_utils_1.createErrorResponse)('Missing required parameter: context.mode (PLAN, ACT, or EVAL)');
119
+ }
120
+ const mode = context.mode;
121
+ if (!(0, validation_constants_1.isValidMode)(mode)) {
122
+ return (0, response_utils_1.createErrorResponse)(mode === undefined || mode === null
123
+ ? 'Missing required parameter: context.mode (PLAN, ACT, or EVAL)'
124
+ : `Invalid mode: ${mode}. Must be PLAN, ACT, or EVAL`);
125
+ }
126
+ const targetFiles = (0, validation_constants_1.extractStringArray)(context, 'targetFiles');
127
+ const taskDescription = (0, validation_constants_1.extractOptionalString)(context, 'taskDescription');
128
+ try {
129
+ const result = await this.agentService.getAgentSystemPrompt(agentName, {
130
+ mode: mode,
131
+ targetFiles,
132
+ taskDescription,
133
+ });
134
+ return (0, response_utils_1.createJsonResponse)(result);
135
+ }
136
+ catch (error) {
137
+ return (0, response_utils_1.createErrorResponse)(`Failed to get agent system prompt: ${error instanceof Error ? error.message : 'Unknown error'}`);
138
+ }
139
+ }
140
+ async handlePrepareParallelAgents(args) {
141
+ const mode = args?.mode;
142
+ if (!(0, validation_constants_1.isValidMode)(mode)) {
143
+ return (0, response_utils_1.createErrorResponse)(mode === undefined || mode === null
144
+ ? 'Missing required parameter: mode (PLAN, ACT, or EVAL)'
145
+ : `Invalid mode: ${mode}. Must be PLAN, ACT, or EVAL`);
146
+ }
147
+ const specialists = (0, validation_constants_1.extractStringArray)(args, 'specialists');
148
+ if (!specialists || specialists.length === 0) {
149
+ return (0, response_utils_1.createErrorResponse)('Missing required parameter: specialists (array of agent names)');
150
+ }
151
+ const targetFiles = (0, validation_constants_1.extractStringArray)(args, 'targetFiles');
152
+ const sharedContext = (0, validation_constants_1.extractOptionalString)(args, 'sharedContext');
153
+ try {
154
+ const result = await this.agentService.prepareParallelAgents(mode, specialists, targetFiles, sharedContext);
155
+ return (0, response_utils_1.createJsonResponse)(result);
156
+ }
157
+ catch (error) {
158
+ return (0, response_utils_1.createErrorResponse)(`Failed to prepare parallel agents: ${error instanceof Error ? error.message : 'Unknown error'}`);
159
+ }
160
+ }
161
+ };
162
+ exports.AgentHandler = AgentHandler;
163
+ exports.AgentHandler = AgentHandler = __decorate([
164
+ (0, common_1.Injectable)(),
165
+ __metadata("design:paramtypes", [agent_service_1.AgentService])
166
+ ], AgentHandler);
167
+ //# sourceMappingURL=agent.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/agent.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ToolResponse } from '../response.utils';
2
+ export interface ToolHandler {
3
+ handle(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse | null>;
4
+ getToolDefinitions(): ToolDefinition[];
5
+ }
6
+ export interface ToolDefinition {
7
+ name: string;
8
+ description: string;
9
+ inputSchema: {
10
+ type: 'object';
11
+ properties: Record<string, unknown>;
12
+ required?: string[];
13
+ };
14
+ }
15
+ export type ToolResult = ToolResponse;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=base.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/base.handler.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { ToolHandler, ToolDefinition, ToolResult } from './base.handler';
2
+ import { ChecklistService } from '../../checklist/checklist.service';
3
+ import { ContextService } from '../../context/context.service';
4
+ export declare class ChecklistContextHandler implements ToolHandler {
5
+ private readonly checklistService;
6
+ private readonly contextService;
7
+ private readonly handledTools;
8
+ constructor(checklistService: ChecklistService, contextService: ContextService);
9
+ handle(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResult | null>;
10
+ getToolDefinitions(): ToolDefinition[];
11
+ private handleGenerateChecklist;
12
+ private handleAnalyzeTask;
13
+ }