codingbuddy 2.3.4 → 2.4.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.
Files changed (131) hide show
  1. package/README.md +70 -0
  2. package/dist/src/cli/init/prompts/tech-stack-prompt.d.ts +1 -0
  3. package/dist/src/cli/init/prompts/tech-stack-prompt.js +1 -0
  4. package/dist/src/cli/init/prompts/tech-stack-prompt.js.map +1 -1
  5. package/dist/src/cli/init/prompts/test-strategy-prompt.d.ts +1 -0
  6. package/dist/src/cli/init/prompts/test-strategy-prompt.js +9 -7
  7. package/dist/src/cli/init/prompts/test-strategy-prompt.js.map +1 -1
  8. package/dist/src/config/config.schema.d.ts +11 -0
  9. package/dist/src/config/config.schema.js +7 -1
  10. package/dist/src/config/config.schema.js.map +1 -1
  11. package/dist/src/config/config.service.d.ts +4 -0
  12. package/dist/src/config/config.service.js +7 -0
  13. package/dist/src/config/config.service.js.map +1 -1
  14. package/dist/src/context/context-document.service.d.ts +24 -0
  15. package/dist/src/context/context-document.service.js +212 -0
  16. package/dist/src/context/context-document.service.js.map +1 -0
  17. package/dist/src/context/context-document.types.d.ts +89 -0
  18. package/dist/src/context/context-document.types.js +53 -0
  19. package/dist/src/context/context-document.types.js.map +1 -0
  20. package/dist/src/context/context-parser.utils.d.ts +10 -0
  21. package/dist/src/context/context-parser.utils.js +214 -0
  22. package/dist/src/context/context-parser.utils.js.map +1 -0
  23. package/dist/src/context/context-serializer.utils.d.ts +16 -0
  24. package/dist/src/context/context-serializer.utils.js +130 -0
  25. package/dist/src/context/context-serializer.utils.js.map +1 -0
  26. package/dist/src/context/context.module.js +5 -3
  27. package/dist/src/context/context.module.js.map +1 -1
  28. package/dist/src/keyword/keyword.module.js +5 -2
  29. package/dist/src/keyword/keyword.module.js.map +1 -1
  30. package/dist/src/keyword/keyword.service.js +19 -11
  31. package/dist/src/keyword/keyword.service.js.map +1 -1
  32. package/dist/src/keyword/patterns/agent.patterns.d.ts +2 -0
  33. package/dist/src/keyword/patterns/agent.patterns.js +91 -0
  34. package/dist/src/keyword/patterns/agent.patterns.js.map +1 -0
  35. package/dist/src/keyword/patterns/ai-ml.patterns.d.ts +2 -0
  36. package/dist/src/keyword/patterns/ai-ml.patterns.js +81 -0
  37. package/dist/src/keyword/patterns/ai-ml.patterns.js.map +1 -0
  38. package/dist/src/keyword/patterns/backend.patterns.d.ts +2 -0
  39. package/dist/src/keyword/patterns/backend.patterns.js +91 -0
  40. package/dist/src/keyword/patterns/backend.patterns.js.map +1 -0
  41. package/dist/src/keyword/patterns/context.patterns.d.ts +2 -0
  42. package/dist/src/keyword/patterns/context.patterns.js +82 -0
  43. package/dist/src/keyword/patterns/context.patterns.js.map +1 -0
  44. package/dist/src/keyword/patterns/data.patterns.d.ts +2 -0
  45. package/dist/src/keyword/patterns/data.patterns.js +47 -0
  46. package/dist/src/keyword/patterns/data.patterns.js.map +1 -0
  47. package/dist/src/keyword/patterns/explicit.patterns.d.ts +1 -0
  48. package/dist/src/keyword/patterns/explicit.patterns.js +10 -0
  49. package/dist/src/keyword/patterns/explicit.patterns.js.map +1 -0
  50. package/dist/src/keyword/patterns/index.d.ts +12 -0
  51. package/dist/src/keyword/patterns/index.js +26 -0
  52. package/dist/src/keyword/patterns/index.js.map +1 -0
  53. package/dist/src/keyword/patterns/intent-pattern-checks.d.ts +2 -0
  54. package/dist/src/keyword/patterns/intent-pattern-checks.js +48 -0
  55. package/dist/src/keyword/patterns/intent-pattern-checks.js.map +1 -0
  56. package/dist/src/keyword/patterns/intent-patterns.types.d.ts +15 -0
  57. package/dist/src/keyword/patterns/intent-patterns.types.js +3 -0
  58. package/dist/src/keyword/patterns/intent-patterns.types.js.map +1 -0
  59. package/dist/src/keyword/patterns/meta-discussion.patterns.d.ts +1 -0
  60. package/dist/src/keyword/patterns/meta-discussion.patterns.js +11 -0
  61. package/dist/src/keyword/patterns/meta-discussion.patterns.js.map +1 -0
  62. package/dist/src/keyword/patterns/mobile.patterns.d.ts +2 -0
  63. package/dist/src/keyword/patterns/mobile.patterns.js +35 -0
  64. package/dist/src/keyword/patterns/mobile.patterns.js.map +1 -0
  65. package/dist/src/keyword/patterns/platform.patterns.d.ts +2 -0
  66. package/dist/src/keyword/patterns/platform.patterns.js +72 -0
  67. package/dist/src/keyword/patterns/platform.patterns.js.map +1 -0
  68. package/dist/src/keyword/patterns/tooling.patterns.d.ts +2 -0
  69. package/dist/src/keyword/patterns/tooling.patterns.js +78 -0
  70. package/dist/src/keyword/patterns/tooling.patterns.js.map +1 -0
  71. package/dist/src/keyword/primary-agent-resolver.d.ts +7 -29
  72. package/dist/src/keyword/primary-agent-resolver.js +34 -684
  73. package/dist/src/keyword/primary-agent-resolver.js.map +1 -1
  74. package/dist/src/keyword/strategies/__tests__/strategy-test.utils.d.ts +8 -0
  75. package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js +45 -0
  76. package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js.map +1 -0
  77. package/dist/src/keyword/strategies/act-agent.strategy.d.ts +10 -0
  78. package/dist/src/keyword/strategies/act-agent.strategy.js +125 -0
  79. package/dist/src/keyword/strategies/act-agent.strategy.js.map +1 -0
  80. package/dist/src/keyword/strategies/eval-agent.strategy.d.ts +5 -0
  81. package/dist/src/keyword/strategies/eval-agent.strategy.js +19 -0
  82. package/dist/src/keyword/strategies/eval-agent.strategy.js.map +1 -0
  83. package/dist/src/keyword/strategies/index.d.ts +4 -0
  84. package/dist/src/keyword/strategies/index.js +10 -0
  85. package/dist/src/keyword/strategies/index.js.map +1 -0
  86. package/dist/src/keyword/strategies/plan-agent.strategy.d.ts +6 -0
  87. package/dist/src/keyword/strategies/plan-agent.strategy.js +68 -0
  88. package/dist/src/keyword/strategies/plan-agent.strategy.js.map +1 -0
  89. package/dist/src/keyword/strategies/resolution-strategy.interface.d.ts +20 -0
  90. package/dist/src/keyword/strategies/resolution-strategy.interface.js +3 -0
  91. package/dist/src/keyword/strategies/resolution-strategy.interface.js.map +1 -0
  92. package/dist/src/mcp/handlers/config.handler.js +2 -1
  93. package/dist/src/mcp/handlers/config.handler.js.map +1 -1
  94. package/dist/src/mcp/handlers/context-document.handler.d.ts +13 -0
  95. package/dist/src/mcp/handlers/context-document.handler.js +232 -0
  96. package/dist/src/mcp/handlers/context-document.handler.js.map +1 -0
  97. package/dist/src/mcp/handlers/index.d.ts +1 -0
  98. package/dist/src/mcp/handlers/index.js +3 -1
  99. package/dist/src/mcp/handlers/index.js.map +1 -1
  100. package/dist/src/mcp/handlers/mode.handler.d.ts +6 -1
  101. package/dist/src/mcp/handlers/mode.handler.js +128 -14
  102. package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
  103. package/dist/src/mcp/mcp.module.js +1 -0
  104. package/dist/src/mcp/mcp.module.js.map +1 -1
  105. package/dist/src/rules/rules.service.js +17 -1
  106. package/dist/src/rules/rules.service.js.map +1 -1
  107. package/dist/src/rules/rules.types.d.ts +7 -0
  108. package/dist/src/session/__tests__/session-test.utils.d.ts +5 -0
  109. package/dist/src/session/__tests__/session-test.utils.js +59 -0
  110. package/dist/src/session/__tests__/session-test.utils.js.map +1 -0
  111. package/dist/src/session/session.cache.d.ts +19 -0
  112. package/dist/src/session/session.cache.js +83 -0
  113. package/dist/src/session/session.cache.js.map +1 -0
  114. package/dist/src/session/session.parser.d.ts +22 -0
  115. package/dist/src/session/session.parser.js +273 -0
  116. package/dist/src/session/session.parser.js.map +1 -0
  117. package/dist/src/session/session.serializer.d.ts +6 -0
  118. package/dist/src/session/session.serializer.js +84 -0
  119. package/dist/src/session/session.serializer.js.map +1 -0
  120. package/dist/src/session/session.service.d.ts +3 -12
  121. package/dist/src/session/session.service.js +63 -311
  122. package/dist/src/session/session.service.js.map +1 -1
  123. package/dist/src/session/session.types.d.ts +11 -0
  124. package/dist/src/shared/async.utils.d.ts +12 -0
  125. package/dist/src/shared/async.utils.js +50 -0
  126. package/dist/src/shared/async.utils.js.map +1 -1
  127. package/dist/src/shared/slug.utils.d.ts +2 -0
  128. package/dist/src/shared/slug.utils.js +20 -0
  129. package/dist/src/shared/slug.utils.js.map +1 -0
  130. package/dist/tsconfig.build.tsbuildinfo +1 -1
  131. package/package.json +2 -2
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INTENT_PATTERN_CHECKS = void 0;
4
+ const agent_patterns_1 = require("./agent.patterns");
5
+ const tooling_patterns_1 = require("./tooling.patterns");
6
+ const platform_patterns_1 = require("./platform.patterns");
7
+ const data_patterns_1 = require("./data.patterns");
8
+ const ai_ml_patterns_1 = require("./ai-ml.patterns");
9
+ const backend_patterns_1 = require("./backend.patterns");
10
+ const mobile_patterns_1 = require("./mobile.patterns");
11
+ exports.INTENT_PATTERN_CHECKS = [
12
+ {
13
+ agent: 'agent-architect',
14
+ patterns: agent_patterns_1.AGENT_INTENT_PATTERNS,
15
+ category: 'Agent',
16
+ },
17
+ {
18
+ agent: 'tooling-engineer',
19
+ patterns: tooling_patterns_1.TOOLING_INTENT_PATTERNS,
20
+ category: 'Tooling',
21
+ },
22
+ {
23
+ agent: 'platform-engineer',
24
+ patterns: platform_patterns_1.PLATFORM_INTENT_PATTERNS,
25
+ category: 'Platform',
26
+ },
27
+ {
28
+ agent: 'data-engineer',
29
+ patterns: data_patterns_1.DATA_INTENT_PATTERNS,
30
+ category: 'Data',
31
+ },
32
+ {
33
+ agent: 'ai-ml-engineer',
34
+ patterns: ai_ml_patterns_1.AI_ML_INTENT_PATTERNS,
35
+ category: 'AI/ML',
36
+ },
37
+ {
38
+ agent: 'backend-developer',
39
+ patterns: backend_patterns_1.BACKEND_INTENT_PATTERNS,
40
+ category: 'Backend',
41
+ },
42
+ {
43
+ agent: 'mobile-developer',
44
+ patterns: mobile_patterns_1.MOBILE_INTENT_PATTERNS,
45
+ category: 'Mobile',
46
+ },
47
+ ];
48
+ //# sourceMappingURL=intent-pattern-checks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-pattern-checks.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/intent-pattern-checks.ts"],"names":[],"mappings":";;;AAiBA,qDAAyD;AACzD,yDAA6D;AAC7D,2DAA+D;AAC/D,mDAAuD;AACvD,qDAAyD;AACzD,yDAA6D;AAC7D,uDAA2D;AAE9C,QAAA,qBAAqB,GAAsC;IAEtE;QACE,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,sCAAqB;QAC/B,QAAQ,EAAE,OAAO;KAClB;IACD;QACE,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,0CAAuB;QACjC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,4CAAwB;QAClC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,oCAAoB;QAC9B,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,sCAAqB;QAC/B,QAAQ,EAAE,OAAO;KAClB;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,0CAAuB;QACjC,QAAQ,EAAE,SAAS;KACpB;IAED;QACE,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,wCAAsB;QAChC,QAAQ,EAAE,QAAQ;KACnB;CACF,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type IntentPattern = {
2
+ readonly pattern: RegExp;
3
+ readonly confidence: number;
4
+ readonly description: string;
5
+ };
6
+ export type IntentPatternCheck = {
7
+ readonly agent: string;
8
+ readonly patterns: ReadonlyArray<IntentPattern>;
9
+ readonly category: string;
10
+ };
11
+ export type ContextPattern = {
12
+ readonly pattern: RegExp;
13
+ readonly agent: string;
14
+ readonly confidence: number;
15
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=intent-patterns.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-patterns.types.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/intent-patterns.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export declare const META_AGENT_DISCUSSION_PATTERNS: ReadonlyArray<RegExp>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.META_AGENT_DISCUSSION_PATTERNS = void 0;
4
+ exports.META_AGENT_DISCUSSION_PATTERNS = [
5
+ /(?:mobile|frontend|backend|data|platform|devops|ai-?ml).?(?:developer|engineer)\s*(?:가|이|를|은|는|로|에|의|와|과)/i,
6
+ /(?:agent|에이전트)\s*(?:매칭|호출|선택|resolution|matching|selection|추천|recommendation)/i,
7
+ /primary\s*agent\s*(?:선택|매칭|시스템|system)/i,
8
+ /(?:agent|에이전트)\s*(?:활성화|activation|호출|invocation|파이프라인|pipeline)/i,
9
+ /(?:agent|에이전트).{0,20}(?:버그|bug|문제|issue|오류|error|잘못|wrong)/i,
10
+ ];
11
+ //# sourceMappingURL=meta-discussion.patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-discussion.patterns.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/meta-discussion.patterns.ts"],"names":[],"mappings":";;;AAca,QAAA,8BAA8B,GAA0B;IAEnE,4GAA4G;IAE5G,gFAAgF;IAIhF,yCAAyC;IAEzC,mEAAmE;IAEnE,6DAA6D;CAC9D,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { IntentPattern } from './intent-patterns.types';
2
+ export declare const MOBILE_INTENT_PATTERNS: ReadonlyArray<IntentPattern>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MOBILE_INTENT_PATTERNS = void 0;
4
+ exports.MOBILE_INTENT_PATTERNS = [
5
+ {
6
+ pattern: /react.?native/i,
7
+ confidence: 0.95,
8
+ description: 'React Native',
9
+ },
10
+ { pattern: /flutter/i, confidence: 0.95, description: 'Flutter' },
11
+ { pattern: /expo/i, confidence: 0.9, description: 'Expo' },
12
+ { pattern: /swiftui/i, confidence: 0.95, description: 'SwiftUI' },
13
+ {
14
+ pattern: /jetpack\s*compose/i,
15
+ confidence: 0.95,
16
+ description: 'Jetpack Compose',
17
+ },
18
+ {
19
+ pattern: /모바일\s*(앱|개발|화면)/i,
20
+ confidence: 0.9,
21
+ description: 'Korean: mobile app',
22
+ },
23
+ {
24
+ pattern: /mobile\s*(app|develop|screen)/i,
25
+ confidence: 0.9,
26
+ description: 'Mobile app',
27
+ },
28
+ { pattern: /iOS\s*(앱|개발)/i, confidence: 0.9, description: 'iOS app' },
29
+ {
30
+ pattern: /android\s*(앱|개발)/i,
31
+ confidence: 0.9,
32
+ description: 'Android app',
33
+ },
34
+ ];
35
+ //# sourceMappingURL=mobile.patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile.patterns.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/mobile.patterns.ts"],"names":[],"mappings":";;;AAmBa,QAAA,sBAAsB,GAAiC;IAElE;QACE,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,cAAc;KAC5B;IACD,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;IACjE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE;IAC1D,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;IACjE;QACE,OAAO,EAAE,oBAAoB;QAC7B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,iBAAiB;KAC/B;IAED;QACE,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,oBAAoB;KAClC;IACD;QACE,OAAO,EAAE,gCAAgC;QACzC,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,YAAY;KAC1B;IACD,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE;IACrE;QACE,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,aAAa;KAC3B;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { IntentPattern } from './intent-patterns.types';
2
+ export declare const PLATFORM_INTENT_PATTERNS: ReadonlyArray<IntentPattern>;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PLATFORM_INTENT_PATTERNS = void 0;
4
+ exports.PLATFORM_INTENT_PATTERNS = [
5
+ { pattern: /terraform/i, confidence: 0.95, description: 'Terraform' },
6
+ { pattern: /pulumi/i, confidence: 0.95, description: 'Pulumi' },
7
+ { pattern: /aws.?cdk/i, confidence: 0.95, description: 'AWS CDK' },
8
+ { pattern: /helm/i, confidence: 0.95, description: 'Helm chart' },
9
+ {
10
+ pattern: /argocd|argo.?cd/i,
11
+ confidence: 0.95,
12
+ description: 'Argo CD',
13
+ },
14
+ { pattern: /flux.?cd|fluxcd/i, confidence: 0.95, description: 'Flux CD' },
15
+ {
16
+ pattern: /kubernetes|k8s/i,
17
+ confidence: 0.9,
18
+ description: 'Kubernetes',
19
+ },
20
+ {
21
+ pattern: /kustomize|kustomization/i,
22
+ confidence: 0.95,
23
+ description: 'Kustomize',
24
+ },
25
+ {
26
+ pattern: /kubectl|kubeconfig/i,
27
+ confidence: 0.9,
28
+ description: 'Kubectl',
29
+ },
30
+ {
31
+ pattern: /k8s.*manifest|manifest.*k8s|kubernetes.*manifest/i,
32
+ confidence: 0.9,
33
+ description: 'K8s manifest',
34
+ },
35
+ {
36
+ pattern: /EKS|GKE|AKS/i,
37
+ confidence: 0.9,
38
+ description: 'Managed Kubernetes',
39
+ },
40
+ {
41
+ pattern: /IRSA|workload.?identity/i,
42
+ confidence: 0.9,
43
+ description: 'Workload identity',
44
+ },
45
+ {
46
+ pattern: /인프라\s*(코드|설정|관리|자동화)/i,
47
+ confidence: 0.85,
48
+ description: 'Korean: infrastructure',
49
+ },
50
+ {
51
+ pattern: /infrastructure.?as.?code|IaC/i,
52
+ confidence: 0.9,
53
+ description: 'Infrastructure as Code',
54
+ },
55
+ { pattern: /gitops/i, confidence: 0.9, description: 'GitOps' },
56
+ {
57
+ pattern: /multi.?cloud|hybrid.?cloud/i,
58
+ confidence: 0.85,
59
+ description: 'Multi-cloud',
60
+ },
61
+ {
62
+ pattern: /finops|cloud.?cost|비용\s*최적화/i,
63
+ confidence: 0.85,
64
+ description: 'Cloud cost optimization',
65
+ },
66
+ {
67
+ pattern: /disaster.?recovery|RTO|RPO/i,
68
+ confidence: 0.85,
69
+ description: 'Disaster recovery',
70
+ },
71
+ ];
72
+ //# sourceMappingURL=platform.patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.patterns.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/platform.patterns.ts"],"names":[],"mappings":";;;AAmCa,QAAA,wBAAwB,GAAiC;IAEpE,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;IACrE,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC/D,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;IAClE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE;IACjE;QACE,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,SAAS;KACvB;IACD,EAAE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;IAEzE;QACE,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,YAAY;KAC1B;IACD;QACE,OAAO,EAAE,0BAA0B;QACnC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,WAAW;KACzB;IACD;QACE,OAAO,EAAE,qBAAqB;QAC9B,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,SAAS;KACvB;IACD;QACE,OAAO,EAAE,mDAAmD;QAC5D,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,cAAc;KAC5B;IAED;QACE,OAAO,EAAE,cAAc;QACvB,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,oBAAoB;KAClC;IACD;QACE,OAAO,EAAE,0BAA0B;QACnC,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,mBAAmB;KACjC;IACD;QACE,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,wBAAwB;KACtC;IACD;QACE,OAAO,EAAE,+BAA+B;QACxC,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,wBAAwB;KACtC;IAED,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE;IAE9D;QACE,OAAO,EAAE,6BAA6B;QACtC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,aAAa;KAC3B;IAED;QACE,OAAO,EAAE,8BAA8B;QACvC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,yBAAyB;KACvC;IAED;QACE,OAAO,EAAE,6BAA6B;QACtC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,mBAAmB;KACjC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { IntentPattern } from './intent-patterns.types';
2
+ export declare const TOOLING_INTENT_PATTERNS: ReadonlyArray<IntentPattern>;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOOLING_INTENT_PATTERNS = void 0;
4
+ exports.TOOLING_INTENT_PATTERNS = [
5
+ {
6
+ pattern: /codingbuddy\.config/i,
7
+ confidence: 0.98,
8
+ description: 'CodingBuddy config',
9
+ },
10
+ {
11
+ pattern: /tsconfig.*\.json/i,
12
+ confidence: 0.95,
13
+ description: 'TypeScript config',
14
+ },
15
+ { pattern: /eslint/i, confidence: 0.95, description: 'ESLint config' },
16
+ {
17
+ pattern: /prettier/i,
18
+ confidence: 0.95,
19
+ description: 'Prettier config',
20
+ },
21
+ {
22
+ pattern: /stylelint/i,
23
+ confidence: 0.95,
24
+ description: 'Stylelint config',
25
+ },
26
+ {
27
+ pattern: /vite\.config/i,
28
+ confidence: 0.95,
29
+ description: 'Vite config',
30
+ },
31
+ {
32
+ pattern: /next\.config/i,
33
+ confidence: 0.95,
34
+ description: 'Next.js config',
35
+ },
36
+ { pattern: /webpack/i, confidence: 0.9, description: 'Webpack config' },
37
+ {
38
+ pattern: /rollup\.config/i,
39
+ confidence: 0.9,
40
+ description: 'Rollup config',
41
+ },
42
+ {
43
+ pattern: /package\.json/i,
44
+ confidence: 0.9,
45
+ description: 'Package.json',
46
+ },
47
+ {
48
+ pattern: /yarn\.lock|pnpm-lock|package-lock/i,
49
+ confidence: 0.85,
50
+ description: 'Lock files',
51
+ },
52
+ {
53
+ pattern: /\.config\.(js|ts|mjs|cjs|json)$/i,
54
+ confidence: 0.85,
55
+ description: 'Config file extension',
56
+ },
57
+ {
58
+ pattern: /설정\s*(파일|변경|수정)/i,
59
+ confidence: 0.85,
60
+ description: 'Korean: config file',
61
+ },
62
+ {
63
+ pattern: /빌드\s*(설정|도구|환경)/i,
64
+ confidence: 0.85,
65
+ description: 'Korean: build config',
66
+ },
67
+ {
68
+ pattern: /패키지\s*(관리|설치|업데이트|의존성)/i,
69
+ confidence: 0.85,
70
+ description: 'Korean: package management',
71
+ },
72
+ {
73
+ pattern: /린터|린트\s*설정/i,
74
+ confidence: 0.85,
75
+ description: 'Korean: linter config',
76
+ },
77
+ ];
78
+ //# sourceMappingURL=tooling.patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooling.patterns.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/tooling.patterns.ts"],"names":[],"mappings":";;;AAiCa,QAAA,uBAAuB,GAAiC;IAEnE;QACE,OAAO,EAAE,sBAAsB;QAC/B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,oBAAoB;KAClC;IACD;QACE,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,mBAAmB;KACjC;IACD,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;IACtE;QACE,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,iBAAiB;KAC/B;IACD;QACE,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,kBAAkB;KAChC;IAED;QACE,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,gBAAgB;KAC9B;IACD,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE;IACvE;QACE,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,eAAe;KAC7B;IAED;QACE,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,OAAO,EAAE,oCAAoC;QAC7C,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,YAAY;KAC1B;IAED;QACE,OAAO,EAAE,kCAAkC;QAC3C,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,uBAAuB;KACrC;IAED;QACE,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,qBAAqB;KACnC;IACD;QACE,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,sBAAsB;KACpC;IACD;QACE,OAAO,EAAE,yBAAyB;QAClC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,4BAA4B;KAC1C;IACD;QACE,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,uBAAuB;KACrC;CACF,CAAC"}
@@ -1,38 +1,16 @@
1
1
  import { type Mode, type PrimaryAgentResolutionResult, type ResolutionContext } from './keyword.types';
2
- interface ProjectConfig {
3
- primaryAgent?: string;
4
- }
5
- type GetProjectConfigFn = () => Promise<ProjectConfig | null>;
6
- type ListPrimaryAgentsFn = () => Promise<string[]>;
7
- export type IntentPattern = {
8
- readonly pattern: RegExp;
9
- readonly confidence: number;
10
- readonly description: string;
11
- };
2
+ import { type GetProjectConfigFn, type ListPrimaryAgentsFn } from './strategies';
3
+ export type { IntentPattern } from './patterns';
12
4
  export declare class PrimaryAgentResolver {
13
5
  private readonly getProjectConfig;
14
6
  private readonly listPrimaryAgents;
15
7
  private readonly logger;
16
- private static readonly EXPLICIT_PATTERNS;
17
- private static readonly DATA_INTENT_PATTERNS;
18
- private static readonly MOBILE_INTENT_PATTERNS;
19
- private static readonly TOOLING_INTENT_PATTERNS;
20
- private static readonly PLATFORM_INTENT_PATTERNS;
21
- private static readonly AI_ML_INTENT_PATTERNS;
22
- private static readonly BACKEND_INTENT_PATTERNS;
23
- private static readonly AGENT_INTENT_PATTERNS;
24
- private static readonly INTENT_PATTERN_CHECKS;
25
- private static readonly CONTEXT_PATTERNS;
8
+ private readonly evalStrategy;
9
+ private readonly planStrategy;
10
+ private readonly actStrategy;
26
11
  constructor(getProjectConfig: GetProjectConfigFn, listPrimaryAgents: ListPrimaryAgentsFn);
27
12
  resolve(mode: Mode, prompt: string, context?: ResolutionContext, recommendedActAgent?: string): Promise<PrimaryAgentResolutionResult>;
28
- private resolvePlanAgent;
29
- private choosePlanAgent;
30
- private resolveActAgent;
31
- private inferFromIntentPatterns;
32
- private parseExplicitRequest;
33
- private getFromProjectConfig;
34
- private inferFromContext;
13
+ private getStrategy;
14
+ private filterExcludedAgents;
35
15
  private safeListPrimaryAgents;
36
- private createResult;
37
16
  }
38
- export {};