@ai-coders/context 0.3.1 → 0.4.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 (210) hide show
  1. package/README.md +25 -23
  2. package/dist/generators/agents/agentConfig.d.ts.map +1 -1
  3. package/dist/generators/agents/agentConfig.js +42 -0
  4. package/dist/generators/agents/agentConfig.js.map +1 -1
  5. package/dist/generators/agents/agentGenerator.d.ts +0 -1
  6. package/dist/generators/agents/agentGenerator.d.ts.map +1 -1
  7. package/dist/generators/agents/agentGenerator.js +7 -47
  8. package/dist/generators/agents/agentGenerator.js.map +1 -1
  9. package/dist/generators/agents/agentTypes.d.ts +1 -1
  10. package/dist/generators/agents/agentTypes.d.ts.map +1 -1
  11. package/dist/generators/agents/agentTypes.js +4 -1
  12. package/dist/generators/agents/agentTypes.js.map +1 -1
  13. package/dist/generators/agents/templates/indexTemplate.d.ts.map +1 -1
  14. package/dist/generators/agents/templates/indexTemplate.js +2 -1
  15. package/dist/generators/agents/templates/indexTemplate.js.map +1 -1
  16. package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -1
  17. package/dist/generators/agents/templates/playbookTemplate.js +39 -3
  18. package/dist/generators/agents/templates/playbookTemplate.js.map +1 -1
  19. package/dist/generators/documentation/documentationGenerator.d.ts +3 -1
  20. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
  21. package/dist/generators/documentation/documentationGenerator.js +88 -15
  22. package/dist/generators/documentation/documentationGenerator.js.map +1 -1
  23. package/dist/generators/documentation/guideRegistry.js +8 -8
  24. package/dist/generators/documentation/guideRegistry.js.map +1 -1
  25. package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts +2 -0
  26. package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts.map +1 -0
  27. package/dist/generators/documentation/templates/apiReferenceTemplate.js +490 -0
  28. package/dist/generators/documentation/templates/apiReferenceTemplate.js.map +1 -0
  29. package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -1
  30. package/dist/generators/documentation/templates/architectureTemplate.js +27 -27
  31. package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -1
  32. package/dist/generators/documentation/templates/common.js +2 -2
  33. package/dist/generators/documentation/templates/common.js.map +1 -1
  34. package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +1 -1
  35. package/dist/generators/documentation/templates/dataFlowTemplate.js +5 -20
  36. package/dist/generators/documentation/templates/dataFlowTemplate.js.map +1 -1
  37. package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +1 -1
  38. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +5 -20
  39. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -1
  40. package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -1
  41. package/dist/generators/documentation/templates/glossaryTemplate.js +9 -23
  42. package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -1
  43. package/dist/generators/documentation/templates/index.d.ts +4 -0
  44. package/dist/generators/documentation/templates/index.d.ts.map +1 -1
  45. package/dist/generators/documentation/templates/index.js +9 -1
  46. package/dist/generators/documentation/templates/index.js.map +1 -1
  47. package/dist/generators/documentation/templates/indexTemplate.d.ts.map +1 -1
  48. package/dist/generators/documentation/templates/indexTemplate.js +5 -19
  49. package/dist/generators/documentation/templates/indexTemplate.js.map +1 -1
  50. package/dist/generators/documentation/templates/migrationTemplate.d.ts +2 -0
  51. package/dist/generators/documentation/templates/migrationTemplate.d.ts.map +1 -0
  52. package/dist/generators/documentation/templates/migrationTemplate.js +422 -0
  53. package/dist/generators/documentation/templates/migrationTemplate.js.map +1 -0
  54. package/dist/generators/documentation/templates/onboardingTemplate.d.ts +2 -0
  55. package/dist/generators/documentation/templates/onboardingTemplate.d.ts.map +1 -0
  56. package/dist/generators/documentation/templates/onboardingTemplate.js +431 -0
  57. package/dist/generators/documentation/templates/onboardingTemplate.js.map +1 -0
  58. package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +1 -1
  59. package/dist/generators/documentation/templates/projectOverviewTemplate.js +22 -25
  60. package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +1 -1
  61. package/dist/generators/documentation/templates/securityTemplate.d.ts.map +1 -1
  62. package/dist/generators/documentation/templates/securityTemplate.js +5 -19
  63. package/dist/generators/documentation/templates/securityTemplate.js.map +1 -1
  64. package/dist/generators/documentation/templates/testingTemplate.d.ts.map +1 -1
  65. package/dist/generators/documentation/templates/testingTemplate.js +5 -19
  66. package/dist/generators/documentation/templates/testingTemplate.js.map +1 -1
  67. package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +1 -1
  68. package/dist/generators/documentation/templates/toolingTemplate.js +6 -20
  69. package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -1
  70. package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts +2 -0
  71. package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts.map +1 -0
  72. package/dist/generators/documentation/templates/troubleshootingTemplate.js +292 -0
  73. package/dist/generators/documentation/templates/troubleshootingTemplate.js.map +1 -0
  74. package/dist/generators/plans/templates/indexTemplate.d.ts.map +1 -1
  75. package/dist/generators/plans/templates/indexTemplate.js +3 -2
  76. package/dist/generators/plans/templates/indexTemplate.js.map +1 -1
  77. package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -1
  78. package/dist/generators/plans/templates/planTemplate.js +74 -3
  79. package/dist/generators/plans/templates/planTemplate.js.map +1 -1
  80. package/dist/generators/shared/generatorUtils.d.ts +1 -1
  81. package/dist/generators/shared/generatorUtils.d.ts.map +1 -1
  82. package/dist/generators/shared/generatorUtils.js +1 -1
  83. package/dist/generators/shared/generatorUtils.js.map +1 -1
  84. package/dist/index.d.ts +2 -2
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +46 -1000
  87. package/dist/index.js.map +1 -1
  88. package/dist/prompts/defaults.d.ts +2 -2
  89. package/dist/prompts/defaults.d.ts.map +1 -1
  90. package/dist/prompts/defaults.js +11 -11
  91. package/dist/services/baseLLMClient.d.ts +3 -3
  92. package/dist/services/baseLLMClient.d.ts.map +1 -1
  93. package/dist/services/baseLLMClient.js +44 -5
  94. package/dist/services/baseLLMClient.js.map +1 -1
  95. package/dist/services/fill/fillService.d.ts +0 -4
  96. package/dist/services/fill/fillService.d.ts.map +1 -1
  97. package/dist/services/fill/fillService.js +6 -54
  98. package/dist/services/fill/fillService.js.map +1 -1
  99. package/dist/services/init/initService.d.ts +2 -2
  100. package/dist/services/init/initService.d.ts.map +1 -1
  101. package/dist/services/init/initService.js +45 -15
  102. package/dist/services/init/initService.js.map +1 -1
  103. package/dist/services/llmClientFactory.d.ts +2 -8
  104. package/dist/services/llmClientFactory.d.ts.map +1 -1
  105. package/dist/services/llmClientFactory.js +10 -96
  106. package/dist/services/llmClientFactory.js.map +1 -1
  107. package/dist/services/openRouterClient.d.ts +0 -3
  108. package/dist/services/openRouterClient.d.ts.map +1 -1
  109. package/dist/services/openRouterClient.js +2 -49
  110. package/dist/services/openRouterClient.js.map +1 -1
  111. package/dist/services/plan/planService.d.ts +2 -4
  112. package/dist/services/plan/planService.d.ts.map +1 -1
  113. package/dist/services/plan/planService.js +3 -12
  114. package/dist/services/plan/planService.js.map +1 -1
  115. package/dist/services/shared/llmConfig.d.ts.map +1 -1
  116. package/dist/services/shared/llmConfig.js +11 -53
  117. package/dist/services/shared/llmConfig.js.map +1 -1
  118. package/dist/types.d.ts +7 -2
  119. package/dist/types.d.ts.map +1 -1
  120. package/dist/utils/fileMapper.d.ts +1 -1
  121. package/dist/utils/fileMapper.d.ts.map +1 -1
  122. package/dist/utils/fileMapper.js +40 -19
  123. package/dist/utils/fileMapper.js.map +1 -1
  124. package/dist/utils/i18n.d.ts +11 -32
  125. package/dist/utils/i18n.d.ts.map +1 -1
  126. package/dist/utils/i18n.js +22 -64
  127. package/dist/utils/i18n.js.map +1 -1
  128. package/package.json +9 -12
  129. package/prompts/update_plan_prompt.md +4 -5
  130. package/prompts/update_scaffold_prompt.md +7 -8
  131. package/dist/generators/agents/contextUtils.d.ts +0 -8
  132. package/dist/generators/agents/contextUtils.d.ts.map +0 -1
  133. package/dist/generators/agents/contextUtils.js +0 -15
  134. package/dist/generators/agents/contextUtils.js.map +0 -1
  135. package/dist/generators/agents/promptFormatter.d.ts +0 -9
  136. package/dist/generators/agents/promptFormatter.d.ts.map +0 -1
  137. package/dist/generators/agents/promptFormatter.js +0 -84
  138. package/dist/generators/agents/promptFormatter.js.map +0 -1
  139. package/dist/generators/analyzers/codebaseAnalyzer.d.ts +0 -45
  140. package/dist/generators/analyzers/codebaseAnalyzer.d.ts.map +0 -1
  141. package/dist/generators/analyzers/codebaseAnalyzer.js +0 -293
  142. package/dist/generators/analyzers/codebaseAnalyzer.js.map +0 -1
  143. package/dist/generators/analyzers/index.d.ts +0 -3
  144. package/dist/generators/analyzers/index.d.ts.map +0 -1
  145. package/dist/generators/analyzers/index.js +0 -6
  146. package/dist/generators/analyzers/index.js.map +0 -1
  147. package/dist/generators/documentation/documentationTemplates.d.ts +0 -21
  148. package/dist/generators/documentation/documentationTemplates.d.ts.map +0 -1
  149. package/dist/generators/documentation/documentationTemplates.js +0 -359
  150. package/dist/generators/documentation/documentationTemplates.js.map +0 -1
  151. package/dist/generators/documentation/documentationTypes.d.ts +0 -11
  152. package/dist/generators/documentation/documentationTypes.d.ts.map +0 -1
  153. package/dist/generators/documentation/documentationTypes.js +0 -22
  154. package/dist/generators/documentation/documentationTypes.js.map +0 -1
  155. package/dist/generators/documentation/documentationUtils.d.ts +0 -7
  156. package/dist/generators/documentation/documentationUtils.d.ts.map +0 -1
  157. package/dist/generators/documentation/documentationUtils.js +0 -28
  158. package/dist/generators/documentation/documentationUtils.js.map +0 -1
  159. package/dist/generators/documentation/incrementalDocumentationGenerator.d.ts +0 -33
  160. package/dist/generators/documentation/incrementalDocumentationGenerator.d.ts.map +0 -1
  161. package/dist/generators/documentation/incrementalDocumentationGenerator.js +0 -400
  162. package/dist/generators/documentation/incrementalDocumentationGenerator.js.map +0 -1
  163. package/dist/generators/documentation/templates.d.ts +0 -31
  164. package/dist/generators/documentation/templates.d.ts.map +0 -1
  165. package/dist/generators/documentation/templates.js +0 -566
  166. package/dist/generators/documentation/templates.js.map +0 -1
  167. package/dist/generators/guidelines/agentIntegration.d.ts +0 -43
  168. package/dist/generators/guidelines/agentIntegration.d.ts.map +0 -1
  169. package/dist/generators/guidelines/agentIntegration.js +0 -157
  170. package/dist/generators/guidelines/agentIntegration.js.map +0 -1
  171. package/dist/generators/guidelines/guidelineTypes.d.ts +0 -40
  172. package/dist/generators/guidelines/guidelineTypes.d.ts.map +0 -1
  173. package/dist/generators/guidelines/guidelineTypes.js +0 -144
  174. package/dist/generators/guidelines/guidelineTypes.js.map +0 -1
  175. package/dist/generators/guidelines/guidelinesAnalyzer.d.ts +0 -30
  176. package/dist/generators/guidelines/guidelinesAnalyzer.d.ts.map +0 -1
  177. package/dist/generators/guidelines/guidelinesAnalyzer.js +0 -263
  178. package/dist/generators/guidelines/guidelinesAnalyzer.js.map +0 -1
  179. package/dist/generators/guidelines/guidelinesGenerator.d.ts +0 -30
  180. package/dist/generators/guidelines/guidelinesGenerator.d.ts.map +0 -1
  181. package/dist/generators/guidelines/guidelinesGenerator.js +0 -249
  182. package/dist/generators/guidelines/guidelinesGenerator.js.map +0 -1
  183. package/dist/generators/guidelines/guidelinesTemplates.d.ts +0 -23
  184. package/dist/generators/guidelines/guidelinesTemplates.d.ts.map +0 -1
  185. package/dist/generators/guidelines/guidelinesTemplates.js +0 -304
  186. package/dist/generators/guidelines/guidelinesTemplates.js.map +0 -1
  187. package/dist/generators/guidelines/index.d.ts +0 -6
  188. package/dist/generators/guidelines/index.d.ts.map +0 -1
  189. package/dist/generators/guidelines/index.js +0 -16
  190. package/dist/generators/guidelines/index.js.map +0 -1
  191. package/dist/generators/moduleGrouper.d.ts +0 -14
  192. package/dist/generators/moduleGrouper.d.ts.map +0 -1
  193. package/dist/generators/moduleGrouper.js +0 -82
  194. package/dist/generators/moduleGrouper.js.map +0 -1
  195. package/dist/generators/projectAnalyzer.d.ts +0 -14
  196. package/dist/generators/projectAnalyzer.d.ts.map +0 -1
  197. package/dist/generators/projectAnalyzer.js +0 -217
  198. package/dist/generators/projectAnalyzer.js.map +0 -1
  199. package/dist/services/changeAnalyzer.d.ts +0 -44
  200. package/dist/services/changeAnalyzer.d.ts.map +0 -1
  201. package/dist/services/changeAnalyzer.js +0 -344
  202. package/dist/services/changeAnalyzer.js.map +0 -1
  203. package/dist/utils/interactiveMode.d.ts +0 -21
  204. package/dist/utils/interactiveMode.d.ts.map +0 -1
  205. package/dist/utils/interactiveMode.js +0 -737
  206. package/dist/utils/interactiveMode.js.map +0 -1
  207. package/dist/utils/tokenEstimator.d.ts +0 -28
  208. package/dist/utils/tokenEstimator.d.ts.map +0 -1
  209. package/dist/utils/tokenEstimator.js +0 -134
  210. package/dist/utils/tokenEstimator.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"guidelinesAnalyzer.js","sourceRoot":"","sources":["../../../src/generators/guidelines/guidelinesAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { RepoStructure } from '../../types';
2
- import { FileMapper } from '../../utils/fileMapper';
3
- import { BaseLLMClient } from '../../services/baseLLMClient';
4
- import { ModuleGroup } from '../moduleGrouper';
5
- import { GuidelineConfig, GuidelineCategory } from './guidelineTypes';
6
- export declare class GuidelinesGenerator {
7
- private fileMapper;
8
- private llmClient;
9
- private moduleGrouper;
10
- private templates;
11
- private analyzer;
12
- constructor(fileMapper: FileMapper, llmClient: BaseLLMClient);
13
- generateGuidelines(repoStructure: RepoStructure, outputDir: string, config?: Partial<GuidelineConfig>, verbose?: boolean): Promise<void>;
14
- generateComprehensiveGuidelines(repoStructure: RepoStructure, moduleGroups: ModuleGroup[], guidelinesDir: string, config: GuidelineConfig, verbose: boolean): Promise<void>;
15
- generateCategorySpecificGuidelines(repoStructure: RepoStructure, moduleGroups: ModuleGroup[], guidelinesDir: string, config: GuidelineConfig, verbose: boolean): Promise<void>;
16
- generateGuidelinesIndex(guidelinesDir: string, config: GuidelineConfig, analysis: any, verbose: boolean): Promise<void>;
17
- private createGuidelinesIndex;
18
- private getTechnologyRelevantCategories;
19
- generateTestingGuidelinesOnly(repoStructure: RepoStructure, outputDir: string, verbose?: boolean): Promise<void>;
20
- generateFrontendGuidelinesOnly(repoStructure: RepoStructure, outputDir: string, verbose?: boolean): Promise<void>;
21
- generateBackendGuidelinesOnly(repoStructure: RepoStructure, outputDir: string, verbose?: boolean): Promise<void>;
22
- generateSecurityGuidelinesOnly(repoStructure: RepoStructure, outputDir: string, verbose?: boolean): Promise<void>;
23
- analyzeCodebaseOnly(repoStructure: RepoStructure, verbose?: boolean): Promise<{
24
- technologies: any[];
25
- projectType: string;
26
- complexity: string;
27
- recommendedCategories: GuidelineCategory[];
28
- }>;
29
- }
30
- //# sourceMappingURL=guidelinesGenerator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guidelinesGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/guidelines/guidelinesGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAiB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI9D,OAAO,EACL,eAAe,EACf,iBAAiB,EAElB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,mBAAmB;IAM5B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IANnB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,QAAQ,CAAqB;gBAG3B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,aAAa;IAO5B,kBAAkB,CACtB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,IAAI,CAAC;IAmCV,+BAA+B,CACnC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,WAAW,EAAE,EAC3B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IAoBV,kCAAkC,CACtC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,WAAW,EAAE,EAC3B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IA2BV,uBAAuB,CAC3B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IAMhB,OAAO,CAAC,qBAAqB;IAsG7B,OAAO,CAAC,+BAA+B;IAoBjC,6BAA6B,CACjC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,IAAI,CAAC;IASV,8BAA8B,CAClC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,IAAI,CAAC;IASV,6BAA6B,CACjC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,IAAI,CAAC;IASV,8BAA8B,CAClC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,IAAI,CAAC;IASV,mBAAmB,CACvB,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC;QACT,YAAY,EAAE,GAAG,EAAE,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,qBAAqB,EAAE,iBAAiB,EAAE,CAAC;KAC5C,CAAC;CAgBH"}
@@ -1,249 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.GuidelinesGenerator = void 0;
37
- const path = __importStar(require("path"));
38
- const moduleGrouper_1 = require("../moduleGrouper");
39
- const shared_1 = require("../shared");
40
- const guidelinesTemplates_1 = require("./guidelinesTemplates");
41
- const guidelinesAnalyzer_1 = require("./guidelinesAnalyzer");
42
- class GuidelinesGenerator {
43
- constructor(fileMapper, llmClient) {
44
- this.fileMapper = fileMapper;
45
- this.llmClient = llmClient;
46
- this.moduleGrouper = new moduleGrouper_1.ModuleGrouper(fileMapper);
47
- this.templates = new guidelinesTemplates_1.GuidelinesTemplates(llmClient, fileMapper);
48
- this.analyzer = new guidelinesAnalyzer_1.GuidelinesAnalyzer(fileMapper);
49
- }
50
- async generateGuidelines(repoStructure, outputDir, config = {}, verbose = false) {
51
- const analysis = await this.analyzer.analyzeCodebase(repoStructure);
52
- const fullConfig = {
53
- categories: config.categories || analysis.recommendedCategories,
54
- techStack: analysis.techStack,
55
- projectType: analysis.projectType,
56
- complexity: analysis.complexity,
57
- teamSize: 'medium',
58
- includeExamples: true,
59
- includeTools: true,
60
- ...config
61
- };
62
- const guidelinesDir = path.join(outputDir, 'guidelines');
63
- await shared_1.GeneratorUtils.ensureDirectoryAndLog(guidelinesDir, verbose, '📋 Generating software development guidelines');
64
- const moduleGroups = this.moduleGrouper.getModuleGroups(repoStructure);
65
- // Generate comprehensive guidelines document
66
- await this.generateComprehensiveGuidelines(repoStructure, moduleGroups, guidelinesDir, fullConfig, verbose);
67
- // Generate category-specific guidelines
68
- await this.generateCategorySpecificGuidelines(repoStructure, moduleGroups, guidelinesDir, fullConfig, verbose);
69
- // Generate guidelines index
70
- await this.generateGuidelinesIndex(guidelinesDir, fullConfig, analysis, verbose);
71
- if (verbose) {
72
- console.log(`✅ Generated guidelines for: ${fullConfig.categories.join(', ')}`);
73
- console.log(`📊 Analyzed ${analysis.technologies.length} technologies`);
74
- console.log(`🎯 Project type: ${analysis.projectType}, Complexity: ${analysis.complexity}`);
75
- }
76
- }
77
- async generateComprehensiveGuidelines(repoStructure, moduleGroups, guidelinesDir, config, verbose) {
78
- try {
79
- const content = await this.templates.generateSoftwareGuidelines(repoStructure, moduleGroups, config);
80
- const filePath = path.join(guidelinesDir, 'comprehensive-guidelines.md');
81
- await shared_1.GeneratorUtils.writeFileWithLogging(filePath, content, verbose, 'Generated Comprehensive Software Guidelines');
82
- }
83
- catch (error) {
84
- shared_1.GeneratorUtils.logError('Error generating comprehensive guidelines', error, verbose);
85
- }
86
- }
87
- async generateCategorySpecificGuidelines(repoStructure, moduleGroups, guidelinesDir, config, verbose) {
88
- shared_1.GeneratorUtils.logProgress('📝 Generating category-specific guidelines...', verbose);
89
- for (const category of config.categories) {
90
- try {
91
- const content = await this.templates.generateCategorySpecificGuidelines(category, repoStructure, moduleGroups, config);
92
- const fileName = `${category}-guidelines.md`;
93
- const filePath = path.join(guidelinesDir, fileName);
94
- await shared_1.GeneratorUtils.writeFileWithLogging(filePath, content, verbose, `Generated ${shared_1.GeneratorUtils.formatTitle(category)} Guidelines`);
95
- }
96
- catch (error) {
97
- shared_1.GeneratorUtils.logError(`Error generating ${category} guidelines`, error, verbose);
98
- }
99
- }
100
- }
101
- async generateGuidelinesIndex(guidelinesDir, config, analysis, verbose) {
102
- const indexContent = this.createGuidelinesIndex(config, analysis);
103
- const indexPath = path.join(guidelinesDir, 'README.md');
104
- await shared_1.GeneratorUtils.writeFileWithLogging(indexPath, indexContent, verbose, 'Generated Guidelines Index');
105
- }
106
- createGuidelinesIndex(config, analysis) {
107
- const categoryDescriptions = {
108
- 'testing': 'Testing strategies, frameworks, and quality assurance practices',
109
- 'frontend': 'UI development, component architecture, and user experience guidelines',
110
- 'backend': 'Server-side development, API design, and service architecture',
111
- 'database': 'Data modeling, query optimization, and database management',
112
- 'security': 'Security best practices, authentication, and vulnerability prevention',
113
- 'performance': 'Performance optimization, monitoring, and efficiency guidelines',
114
- 'code-style': 'Coding standards, formatting, and maintainability practices',
115
- 'git-workflow': 'Version control, branching strategies, and collaboration workflows',
116
- 'deployment': 'CI/CD, release management, and production deployment',
117
- 'monitoring': 'Logging, metrics, alerting, and system observability',
118
- 'documentation': 'Code documentation, API docs, and knowledge management',
119
- 'architecture': 'System design, architectural patterns, and technical decisions'
120
- };
121
- const techStackSummary = analysis.technologies
122
- .filter((t) => t.confidence > 0.5)
123
- .map((t) => `${t.name} (${t.category})`)
124
- .join(', ');
125
- const sections = config.categories.map(category => {
126
- const title = shared_1.GeneratorUtils.formatTitle(category);
127
- const description = categoryDescriptions[category];
128
- return `### [${title}](./${category}-guidelines.md)
129
- ${description}`;
130
- }).join('\n\n');
131
- return `# Software Development Guidelines
132
-
133
- ## Project Overview
134
- - **Type**: ${config.projectType}
135
- - **Complexity**: ${config.complexity}
136
- - **Technology Stack**: ${techStackSummary}
137
- - **Team Size**: ${config.teamSize}
138
-
139
- ## Quick Start
140
- 1. **Start with [Comprehensive Guidelines](./comprehensive-guidelines.md)** - Overview of all development practices
141
- 2. **Review category-specific guidelines** based on your current task
142
- 3. **Integrate guidelines into your development workflow**
143
- 4. **Use guidelines during code reviews and onboarding**
144
-
145
- ## Guidelines Categories
146
-
147
- ${sections}
148
-
149
- ## How to Use These Guidelines
150
-
151
- ### For New Team Members
152
- 1. Read the comprehensive guidelines first
153
- 2. Focus on code-style and git-workflow guidelines
154
- 3. Review testing and documentation guidelines
155
- 4. Gradually explore other categories as needed
156
-
157
- ### For Daily Development
158
- - Reference relevant category guidelines for your current task
159
- - Use guidelines during code reviews
160
- - Validate decisions against architectural guidelines
161
- - Follow security guidelines for any security-related changes
162
-
163
- ### For Code Reviews
164
- - Check adherence to code-style guidelines
165
- - Verify testing guidelines are followed
166
- - Ensure security guidelines are respected
167
- - Validate architectural decisions
168
-
169
- ### For Project Setup
170
- - Follow deployment guidelines for environment setup
171
- - Implement monitoring guidelines from the start
172
- - Set up automated tools recommended in guidelines
173
- - Establish workflows based on git-workflow guidelines
174
-
175
- ## Tools and Automation
176
-
177
- Based on your technology stack, consider setting up:
178
- ${analysis.technologies
179
- .filter((t) => t.confidence > 0.6)
180
- .map((t) => `- **${t.name}**: See ${this.getTechnologyRelevantCategories(t.name, config.categories).join(', ')} guidelines`)
181
- .join('\n')}
182
-
183
- ## Continuous Improvement
184
-
185
- ### Regular Reviews
186
- - **Monthly**: Review and update guidelines based on team feedback
187
- - **Quarterly**: Assess guideline effectiveness and project evolution
188
- - **Major Changes**: Update guidelines when technology stack changes
189
-
190
- ### Feedback Collection
191
- - Gather team feedback on guideline usefulness
192
- - Track common code review comments to identify guideline gaps
193
- - Monitor project metrics to validate guideline effectiveness
194
-
195
- ### Evolution
196
- - Adapt guidelines as project complexity grows
197
- - Update technology-specific guidelines when upgrading frameworks
198
- - Refine processes based on team size changes
199
-
200
- ---
201
-
202
- ${shared_1.GeneratorUtils.createGeneratedByFooter('Software Development Guidelines Index', `Categories: ${config.categories.join(', ')}`)}`;
203
- }
204
- getTechnologyRelevantCategories(techName, categories) {
205
- const techCategoryMap = {
206
- 'React': ['frontend', 'testing', 'performance'],
207
- 'Vue': ['frontend', 'testing', 'performance'],
208
- 'Angular': ['frontend', 'testing', 'performance'],
209
- 'Express': ['backend', 'security', 'performance'],
210
- 'NestJS': ['backend', 'testing', 'architecture'],
211
- 'Jest': ['testing'],
212
- 'Cypress': ['testing'],
213
- 'MongoDB': ['database', 'performance'],
214
- 'PostgreSQL': ['database', 'performance'],
215
- 'Docker': ['deployment', 'monitoring'],
216
- 'TypeScript': ['code-style', 'testing']
217
- };
218
- const relevantCategories = techCategoryMap[techName] || [];
219
- return relevantCategories.filter(cat => categories.includes(cat));
220
- }
221
- // Convenience methods for specific guideline generation
222
- async generateTestingGuidelinesOnly(repoStructure, outputDir, verbose = false) {
223
- await this.generateGuidelines(repoStructure, outputDir, { categories: ['testing'] }, verbose);
224
- }
225
- async generateFrontendGuidelinesOnly(repoStructure, outputDir, verbose = false) {
226
- await this.generateGuidelines(repoStructure, outputDir, { categories: ['frontend', 'performance', 'code-style'] }, verbose);
227
- }
228
- async generateBackendGuidelinesOnly(repoStructure, outputDir, verbose = false) {
229
- await this.generateGuidelines(repoStructure, outputDir, { categories: ['backend', 'security', 'database', 'monitoring'] }, verbose);
230
- }
231
- async generateSecurityGuidelinesOnly(repoStructure, outputDir, verbose = false) {
232
- await this.generateGuidelines(repoStructure, outputDir, { categories: ['security'] }, verbose);
233
- }
234
- async analyzeCodebaseOnly(repoStructure, verbose = false) {
235
- if (verbose) {
236
- shared_1.GeneratorUtils.logProgress('🔍 Analyzing codebase for guideline recommendations...', verbose);
237
- }
238
- const analysis = await this.analyzer.analyzeCodebase(repoStructure);
239
- if (verbose) {
240
- console.log(`📊 Found ${analysis.technologies.length} technologies`);
241
- console.log(`🎯 Project type: ${analysis.projectType}`);
242
- console.log(`📈 Complexity: ${analysis.complexity}`);
243
- console.log(`💡 Recommended categories: ${analysis.recommendedCategories.join(', ')}`);
244
- }
245
- return analysis;
246
- }
247
- }
248
- exports.GuidelinesGenerator = GuidelinesGenerator;
249
- //# sourceMappingURL=guidelinesGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guidelinesGenerator.js","sourceRoot":"","sources":["../../../src/generators/guidelines/guidelinesGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { RepoStructure } from '../../types';
2
- import { BaseLLMClient } from '../../services/baseLLMClient';
3
- import { ModuleGroup } from '../moduleGrouper';
4
- import { GuidelineCategory, GuidelineConfig } from './guidelineTypes';
5
- export declare class GuidelinesTemplates {
6
- private llmClient;
7
- private analyzer;
8
- constructor(llmClient: BaseLLMClient, fileMapper?: any);
9
- generateSoftwareGuidelines(repoStructure: RepoStructure, moduleGroups: ModuleGroup[], config?: Partial<GuidelineConfig>): Promise<string>;
10
- generateCategorySpecificGuidelines(category: GuidelineCategory, repoStructure: RepoStructure, moduleGroups: ModuleGroup[], config?: Partial<GuidelineConfig>): Promise<string>;
11
- private createGuidelinesPrompt;
12
- private createCategorySpecificPrompt;
13
- private formatGuidelinesDocument;
14
- private formatCategoryDocument;
15
- private buildGuidelinesContext;
16
- private buildCategoryContext;
17
- private getTestingContext;
18
- private getFrontendContext;
19
- private getBackendContext;
20
- private getDatabaseContext;
21
- private isTechnologyRelevantToCategory;
22
- }
23
- //# sourceMappingURL=guidelinesTemplates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guidelinesTemplates.d.ts","sourceRoot":"","sources":["../../../src/generators/guidelines/guidelinesTemplates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EACL,iBAAiB,EACjB,eAAe,EAGhB,MAAM,kBAAkB,CAAC;AAG1B,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,SAAS;IAHnB,OAAO,CAAC,QAAQ,CAAqB;gBAG3B,SAAS,EAAE,aAAa,EAChC,UAAU,CAAC,EAAE,GAAG;IAKZ,0BAA0B,CAC9B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,WAAW,EAAE,EAC3B,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,OAAO,CAAC,MAAM,CAAC;IAwBZ,kCAAkC,CACtC,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,WAAW,EAAE,EAC3B,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,OAAO,CAAC,MAAM,CAAC;IAwBlB,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,4BAA4B;IA0CpC,OAAO,CAAC,wBAAwB;IA+ChC,OAAO,CAAC,sBAAsB;IA4C9B,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,8BAA8B;CAmBvC"}
@@ -1,304 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GuidelinesTemplates = void 0;
4
- const shared_1 = require("../shared");
5
- const guidelinesAnalyzer_1 = require("./guidelinesAnalyzer");
6
- class GuidelinesTemplates {
7
- constructor(llmClient, fileMapper) {
8
- this.llmClient = llmClient;
9
- this.analyzer = new guidelinesAnalyzer_1.GuidelinesAnalyzer(fileMapper);
10
- }
11
- async generateSoftwareGuidelines(repoStructure, moduleGroups, config = {}) {
12
- const analysis = await this.analyzer.analyzeCodebase(repoStructure);
13
- const fullConfig = {
14
- categories: config.categories || analysis.recommendedCategories,
15
- techStack: analysis.techStack,
16
- projectType: analysis.projectType,
17
- complexity: analysis.complexity,
18
- teamSize: 'medium',
19
- includeExamples: true,
20
- includeTools: true,
21
- ...config
22
- };
23
- const context = this.buildGuidelinesContext(repoStructure, moduleGroups, analysis, fullConfig);
24
- const content = await this.llmClient.generateText(this.createGuidelinesPrompt(fullConfig), context);
25
- return this.formatGuidelinesDocument(content, fullConfig, analysis);
26
- }
27
- async generateCategorySpecificGuidelines(category, repoStructure, moduleGroups, config = {}) {
28
- const analysis = await this.analyzer.analyzeCodebase(repoStructure);
29
- const fullConfig = {
30
- categories: [category],
31
- techStack: analysis.techStack,
32
- projectType: analysis.projectType,
33
- complexity: analysis.complexity,
34
- teamSize: 'medium',
35
- includeExamples: true,
36
- includeTools: true,
37
- ...config
38
- };
39
- const context = this.buildCategoryContext(category, repoStructure, moduleGroups, analysis, fullConfig);
40
- const content = await this.llmClient.generateText(this.createCategorySpecificPrompt(category, fullConfig), context);
41
- return this.formatCategoryDocument(category, content, fullConfig, analysis);
42
- }
43
- createGuidelinesPrompt(config) {
44
- return `Create comprehensive software development guidelines for this ${config.projectType} project.
45
-
46
- Generate guidelines for the following categories: ${config.categories.join(', ')}
47
-
48
- Requirements:
49
- - **Specificity**: Make guidelines specific to the detected technology stack and project patterns
50
- - **Actionability**: Provide clear, actionable rules that developers can follow
51
- - **Context-Awareness**: Base guidelines on the actual codebase structure and conventions
52
- - **Practical Examples**: Include concrete examples using the project's technology stack
53
- - **Team Size**: Consider guidelines appropriate for a ${config.teamSize} team
54
- - **Complexity**: Adapt guidelines for a ${config.complexity} complexity project
55
-
56
- For each category, provide:
57
- 1. **Overview**: Brief explanation of why this category matters for this project
58
- 2. **Core Principles**: 3-5 fundamental principles to follow
59
- 3. **Specific Rules**: Detailed, actionable guidelines with rationale
60
- 4. **Examples**: Code examples using the detected technologies
61
- 5. **Tools & Automation**: Recommended tools and automation for this category
62
- 6. **Common Pitfalls**: What to avoid and why
63
- 7. **Quality Gates**: How to measure adherence to these guidelines
64
-
65
- Structure the guidelines to be:
66
- - Easy to onboard new team members
67
- - Enforceable through tooling where possible
68
- - Adaptable as the project evolves
69
- - Consistent with industry best practices for the detected tech stack
70
-
71
- Focus on practical, day-to-day development guidance rather than theoretical concepts.`;
72
- }
73
- createCategorySpecificPrompt(category, config) {
74
- const categoryDescriptions = {
75
- 'testing': 'testing strategies, test types, coverage, and quality assurance',
76
- 'frontend': 'UI/UX development, component architecture, state management, and performance',
77
- 'backend': 'API design, service architecture, data processing, and scalability',
78
- 'database': 'data modeling, query optimization, migrations, and data integrity',
79
- 'security': 'authentication, authorization, data protection, and vulnerability prevention',
80
- 'performance': 'optimization strategies, monitoring, and performance budgets',
81
- 'code-style': 'coding standards, formatting, naming conventions, and maintainability',
82
- 'git-workflow': 'version control, branching strategies, and collaboration workflows',
83
- 'deployment': 'CI/CD, release management, and production deployment strategies',
84
- 'monitoring': 'logging, metrics, alerting, and observability',
85
- 'documentation': 'code documentation, API docs, and knowledge management',
86
- 'architecture': 'system design, architectural patterns, and technical decisions'
87
- };
88
- return `Create detailed software development guidelines specifically for ${categoryDescriptions[category]} in this ${config.projectType} project.
89
-
90
- Focus on: ${category.toUpperCase()} Guidelines
91
-
92
- Requirements:
93
- - **Deep Dive**: Provide comprehensive coverage of ${category} practices
94
- - **Technology-Specific**: Tailor guidelines to the detected technology stack
95
- - **Practical Rules**: Include specific, actionable guidelines with clear rationale
96
- - **Implementation Details**: Show how to implement these guidelines in this project
97
- - **Tool Integration**: Recommend specific tools and configurations
98
- - **Quality Metrics**: Define measurable success criteria
99
- - **Common Scenarios**: Address typical challenges in ${category} for this project type
100
-
101
- Structure:
102
- 1. **Introduction**: Why ${category} matters for this specific project
103
- 2. **Fundamental Principles**: Core concepts and philosophies
104
- 3. **Detailed Guidelines**: Comprehensive rules with examples
105
- 4. **Implementation Strategy**: How to adopt these guidelines
106
- 5. **Tools & Automation**: Specific tool recommendations and configurations
107
- 6. **Quality Assurance**: How to measure and maintain quality
108
- 7. **Troubleshooting**: Common issues and solutions
109
- 8. **Evolution**: How to adapt guidelines as the project grows
110
-
111
- Make it a definitive guide that team members can reference daily for ${category}-related decisions.`;
112
- }
113
- formatGuidelinesDocument(content, config, analysis) {
114
- const techStackSummary = analysis.technologies
115
- .filter(t => t.confidence > 0.5)
116
- .map(t => `${t.name} (${t.category})`)
117
- .join(', ');
118
- return `# Software Development Guidelines
119
-
120
- ## Project Overview
121
- - **Type**: ${config.projectType}
122
- - **Complexity**: ${config.complexity}
123
- - **Technology Stack**: ${techStackSummary}
124
- - **Team Size**: ${config.teamSize}
125
-
126
- ## Scope
127
- These guidelines cover: ${config.categories.map(c => c.replace('-', ' ')).join(', ')}
128
-
129
- ---
130
-
131
- ${content}
132
-
133
- ## Guidelines Maintenance
134
-
135
- ### Updating Guidelines
136
- - Review quarterly or when major technology changes occur
137
- - Update based on team feedback and project evolution
138
- - Validate guidelines against actual project needs
139
-
140
- ### Enforcement
141
- - Integrate guidelines into code review process
142
- - Use automated tools where possible for consistency
143
- - Provide training and documentation for new team members
144
-
145
- ### Metrics
146
- - Track adherence through code review feedback
147
- - Monitor quality metrics related to each guideline category
148
- - Gather team feedback on guideline effectiveness
149
-
150
- ---
151
-
152
- ${shared_1.GeneratorUtils.createGeneratedByFooter('Software Development Guidelines', `Categories: ${config.categories.join(', ')}`)}`;
153
- }
154
- formatCategoryDocument(category, content, config, analysis) {
155
- const categoryTitle = shared_1.GeneratorUtils.formatTitle(category);
156
- return `# ${categoryTitle} Guidelines
157
-
158
- ## Context
159
- - **Project Type**: ${config.projectType}
160
- - **Complexity**: ${config.complexity}
161
- - **Relevant Technologies**: ${analysis.technologies
162
- .filter(t => this.isTechnologyRelevantToCategory(t, category))
163
- .map(t => t.name)
164
- .join(', ') || 'General practices'}
165
-
166
- ---
167
-
168
- ${content}
169
-
170
- ## Implementation Checklist
171
-
172
- ### Immediate Actions
173
- - [ ] Review current ${category} practices against these guidelines
174
- - [ ] Identify gaps and create improvement plan
175
- - [ ] Set up recommended tools and automation
176
-
177
- ### Ongoing Practices
178
- - [ ] Incorporate guidelines into daily development workflow
179
- - [ ] Include ${category} review in code review process
180
- - [ ] Monitor and measure adherence to guidelines
181
-
182
- ### Continuous Improvement
183
- - [ ] Regularly review and update guidelines
184
- - [ ] Gather team feedback on guideline effectiveness
185
- - [ ] Adapt guidelines based on project evolution
186
-
187
- ---
188
-
189
- ${shared_1.GeneratorUtils.createGeneratedByFooter(`${categoryTitle} Guidelines`)}`;
190
- }
191
- buildGuidelinesContext(repoStructure, moduleGroups, analysis, config) {
192
- const topExtensions = shared_1.GeneratorUtils.getTopFileExtensions(repoStructure, 5);
193
- return `Project Analysis:
194
- - Root Path: ${repoStructure.rootPath}
195
- - Total Files: ${repoStructure.totalFiles}
196
- - Project Type: ${analysis.projectType}
197
- - Complexity: ${analysis.complexity}
198
- - Primary Languages: ${topExtensions.map(([ext, count]) => `${ext} (${count} files)`).join(', ')}
199
-
200
- Detected Technologies:
201
- ${analysis.technologies.map((t) => `- ${t.name} (${t.category}): ${(t.confidence * 100).toFixed(0)}% confidence`).join('\n')}
202
-
203
- Module Structure:
204
- ${moduleGroups.slice(0, 10).map(m => `- ${m.name}: ${m.description} (${m.files.length} files)`).join('\n')}
205
-
206
- Key Directories:
207
- ${[...new Set(repoStructure.files.map(f => f.relativePath.split('/')[0]))]
208
- .filter(dir => !dir.includes('.'))
209
- .slice(0, 10)
210
- .map(dir => `- ${dir}/`)
211
- .join('\n')}
212
-
213
- Configuration Files:
214
- ${repoStructure.files
215
- .filter(f => ['package.json', 'tsconfig.json', '.env', 'jest.config.js', 'webpack.config.js'].some(config => f.relativePath.includes(config)))
216
- .map(f => `- ${f.relativePath}`)
217
- .join('\n')}
218
-
219
- Guideline Categories to Cover: ${config.categories.join(', ')}`;
220
- }
221
- buildCategoryContext(category, repoStructure, moduleGroups, analysis, config) {
222
- const baseContext = this.buildGuidelinesContext(repoStructure, moduleGroups, analysis, config);
223
- // Add category-specific context
224
- let categorySpecificContext = '';
225
- if (category === 'testing') {
226
- categorySpecificContext = this.getTestingContext(repoStructure, analysis);
227
- }
228
- else if (category === 'frontend') {
229
- categorySpecificContext = this.getFrontendContext(repoStructure, analysis);
230
- }
231
- else if (category === 'backend') {
232
- categorySpecificContext = this.getBackendContext(repoStructure, analysis);
233
- }
234
- else if (category === 'database') {
235
- categorySpecificContext = this.getDatabaseContext(repoStructure, analysis);
236
- }
237
- return `${baseContext}
238
-
239
- Category-Specific Context for ${category.toUpperCase()}:
240
- ${categorySpecificContext}`;
241
- }
242
- getTestingContext(repoStructure, analysis) {
243
- const testFiles = repoStructure.files.filter(f => f.relativePath.includes('test') ||
244
- f.relativePath.includes('spec') ||
245
- f.relativePath.includes('__tests__'));
246
- return `Testing Context:
247
- - Test Files Found: ${testFiles.length}
248
- - Testing Frameworks Detected: ${analysis.technologies
249
- .filter((t) => ['Jest', 'Cypress', 'Vitest', 'Mocha'].includes(t.name))
250
- .map((t) => t.name)
251
- .join(', ') || 'None detected'}
252
- - Test File Patterns: ${testFiles.slice(0, 5).map(f => f.relativePath).join(', ')}`;
253
- }
254
- getFrontendContext(repoStructure, analysis) {
255
- const frontendTech = analysis.technologies.filter((t) => ['React', 'Vue', 'Angular', 'Next.js'].includes(t.name));
256
- return `Frontend Context:
257
- - Frontend Frameworks: ${frontendTech.map((t) => t.name).join(', ') || 'None detected'}
258
- - Component Files: ${repoStructure.files.filter(f => f.relativePath.includes('component') ||
259
- f.relativePath.endsWith('.jsx') ||
260
- f.relativePath.endsWith('.vue')).length}
261
- - Asset Files: ${repoStructure.files.filter(f => f.relativePath.includes('assets') ||
262
- f.relativePath.includes('public') ||
263
- f.relativePath.includes('static')).length}`;
264
- }
265
- getBackendContext(repoStructure, analysis) {
266
- const backendTech = analysis.technologies.filter((t) => ['Express', 'Fastify', 'NestJS'].includes(t.name));
267
- return `Backend Context:
268
- - Backend Frameworks: ${backendTech.map((t) => t.name).join(', ') || 'None detected'}
269
- - API Files: ${repoStructure.files.filter(f => f.relativePath.includes('api') ||
270
- f.relativePath.includes('route') ||
271
- f.relativePath.includes('controller')).length}
272
- - Service Files: ${repoStructure.files.filter(f => f.relativePath.includes('service') ||
273
- f.relativePath.includes('handler')).length}`;
274
- }
275
- getDatabaseContext(repoStructure, analysis) {
276
- const dbTech = analysis.technologies.filter((t) => t.category === 'database');
277
- return `Database Context:
278
- - Database Technologies: ${dbTech.map((t) => t.name).join(', ') || 'None detected'}
279
- - Migration Files: ${repoStructure.files.filter(f => f.relativePath.includes('migration') ||
280
- f.relativePath.includes('schema')).length}
281
- - Model Files: ${repoStructure.files.filter(f => f.relativePath.includes('model') ||
282
- f.relativePath.includes('entity')).length}`;
283
- }
284
- isTechnologyRelevantToCategory(tech, category) {
285
- const relevanceMap = {
286
- 'testing': ['Jest', 'Cypress', 'Vitest', 'Mocha'],
287
- 'frontend': ['React', 'Vue', 'Angular', 'Next.js'],
288
- 'backend': ['Express', 'Fastify', 'NestJS'],
289
- 'database': ['MongoDB', 'PostgreSQL', 'Redis'],
290
- 'security': ['all'],
291
- 'performance': ['all'],
292
- 'code-style': ['TypeScript', 'JavaScript'],
293
- 'git-workflow': ['all'],
294
- 'deployment': ['Docker', 'Kubernetes'],
295
- 'monitoring': ['all'],
296
- 'documentation': ['all'],
297
- 'architecture': ['all']
298
- };
299
- const relevantTechs = relevanceMap[category];
300
- return relevantTechs.includes('all') || relevantTechs.includes(tech.name);
301
- }
302
- }
303
- exports.GuidelinesTemplates = GuidelinesTemplates;
304
- //# sourceMappingURL=guidelinesTemplates.js.map