@ai-coders/context 0.1.0 → 0.2.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 (133) hide show
  1. package/dist/generators/agents/agentConfig.d.ts +4 -0
  2. package/dist/generators/agents/agentConfig.d.ts.map +1 -0
  3. package/dist/generators/agents/agentConfig.js +138 -0
  4. package/dist/generators/agents/agentConfig.js.map +1 -0
  5. package/dist/generators/agents/agentGenerator.d.ts +13 -0
  6. package/dist/generators/agents/agentGenerator.d.ts.map +1 -0
  7. package/dist/generators/agents/agentGenerator.js +80 -0
  8. package/dist/generators/agents/agentGenerator.js.map +1 -0
  9. package/dist/generators/agents/agentTypes.d.ts +4 -0
  10. package/dist/generators/agents/agentTypes.d.ts.map +1 -0
  11. package/dist/generators/agents/agentTypes.js +22 -0
  12. package/dist/generators/agents/agentTypes.js.map +1 -0
  13. package/dist/generators/agents/contextUtils.d.ts +8 -0
  14. package/dist/generators/agents/contextUtils.d.ts.map +1 -0
  15. package/dist/generators/agents/contextUtils.js +15 -0
  16. package/dist/generators/agents/contextUtils.js.map +1 -0
  17. package/dist/generators/agents/index.d.ts +6 -0
  18. package/dist/generators/agents/index.d.ts.map +1 -0
  19. package/dist/generators/agents/index.js +16 -0
  20. package/dist/generators/agents/index.js.map +1 -0
  21. package/dist/generators/agents/promptFormatter.d.ts +9 -0
  22. package/dist/generators/agents/promptFormatter.d.ts.map +1 -0
  23. package/dist/generators/agents/promptFormatter.js +84 -0
  24. package/dist/generators/agents/promptFormatter.js.map +1 -0
  25. package/dist/generators/analyzers/codebaseAnalyzer.d.ts +45 -0
  26. package/dist/generators/analyzers/codebaseAnalyzer.d.ts.map +1 -0
  27. package/dist/generators/analyzers/codebaseAnalyzer.js +293 -0
  28. package/dist/generators/analyzers/codebaseAnalyzer.js.map +1 -0
  29. package/dist/generators/analyzers/index.d.ts +3 -0
  30. package/dist/generators/analyzers/index.d.ts.map +1 -0
  31. package/dist/generators/analyzers/index.js +6 -0
  32. package/dist/generators/analyzers/index.js.map +1 -0
  33. package/dist/generators/documentation/documentationGenerator.d.ts +19 -0
  34. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -0
  35. package/dist/generators/documentation/documentationGenerator.js +127 -0
  36. package/dist/generators/documentation/documentationGenerator.js.map +1 -0
  37. package/dist/generators/documentation/documentationTemplates.d.ts +21 -0
  38. package/dist/generators/documentation/documentationTemplates.d.ts.map +1 -0
  39. package/dist/generators/documentation/documentationTemplates.js +359 -0
  40. package/dist/generators/documentation/documentationTemplates.js.map +1 -0
  41. package/dist/generators/documentation/documentationTypes.d.ts +11 -0
  42. package/dist/generators/documentation/documentationTypes.d.ts.map +1 -0
  43. package/dist/generators/documentation/documentationTypes.js +22 -0
  44. package/dist/generators/documentation/documentationTypes.js.map +1 -0
  45. package/dist/generators/documentation/documentationUtils.d.ts +7 -0
  46. package/dist/generators/documentation/documentationUtils.d.ts.map +1 -0
  47. package/dist/generators/documentation/documentationUtils.js +28 -0
  48. package/dist/generators/documentation/documentationUtils.js.map +1 -0
  49. package/dist/generators/documentation/enhancedDocumentationGenerator.d.ts +21 -0
  50. package/dist/generators/documentation/enhancedDocumentationGenerator.d.ts.map +1 -0
  51. package/dist/generators/documentation/enhancedDocumentationGenerator.js +216 -0
  52. package/dist/generators/documentation/enhancedDocumentationGenerator.js.map +1 -0
  53. package/dist/generators/documentation/incrementalDocumentationGenerator.d.ts +33 -0
  54. package/dist/generators/documentation/incrementalDocumentationGenerator.d.ts.map +1 -0
  55. package/dist/generators/documentation/incrementalDocumentationGenerator.js +400 -0
  56. package/dist/generators/documentation/incrementalDocumentationGenerator.js.map +1 -0
  57. package/dist/generators/documentation/index.d.ts +8 -0
  58. package/dist/generators/documentation/index.d.ts.map +1 -0
  59. package/dist/generators/documentation/index.js +22 -0
  60. package/dist/generators/documentation/index.js.map +1 -0
  61. package/dist/generators/documentation/newDocumentationTemplates.d.ts +19 -0
  62. package/dist/generators/documentation/newDocumentationTemplates.d.ts.map +1 -0
  63. package/dist/generators/documentation/newDocumentationTemplates.js +307 -0
  64. package/dist/generators/documentation/newDocumentationTemplates.js.map +1 -0
  65. package/dist/generators/documentationGenerator.d.ts +3 -21
  66. package/dist/generators/documentationGenerator.d.ts.map +1 -1
  67. package/dist/generators/documentationGenerator.js +46 -597
  68. package/dist/generators/documentationGenerator.js.map +1 -1
  69. package/dist/generators/documentationTemplates.d.ts +16 -0
  70. package/dist/generators/documentationTemplates.d.ts.map +1 -0
  71. package/dist/generators/documentationTemplates.js +326 -0
  72. package/dist/generators/documentationTemplates.js.map +1 -0
  73. package/dist/generators/documentationUtils.d.ts +7 -0
  74. package/dist/generators/documentationUtils.d.ts.map +1 -0
  75. package/dist/generators/documentationUtils.js +38 -0
  76. package/dist/generators/documentationUtils.js.map +1 -0
  77. package/dist/generators/guidelines/agentIntegration.d.ts +43 -0
  78. package/dist/generators/guidelines/agentIntegration.d.ts.map +1 -0
  79. package/dist/generators/guidelines/agentIntegration.js +157 -0
  80. package/dist/generators/guidelines/agentIntegration.js.map +1 -0
  81. package/dist/generators/guidelines/guidelineTypes.d.ts +40 -0
  82. package/dist/generators/guidelines/guidelineTypes.d.ts.map +1 -0
  83. package/dist/generators/guidelines/guidelineTypes.js +144 -0
  84. package/dist/generators/guidelines/guidelineTypes.js.map +1 -0
  85. package/dist/generators/guidelines/guidelinesAnalyzer.d.ts +30 -0
  86. package/dist/generators/guidelines/guidelinesAnalyzer.d.ts.map +1 -0
  87. package/dist/generators/guidelines/guidelinesAnalyzer.js +263 -0
  88. package/dist/generators/guidelines/guidelinesAnalyzer.js.map +1 -0
  89. package/dist/generators/guidelines/guidelinesGenerator.d.ts +30 -0
  90. package/dist/generators/guidelines/guidelinesGenerator.d.ts.map +1 -0
  91. package/dist/generators/guidelines/guidelinesGenerator.js +249 -0
  92. package/dist/generators/guidelines/guidelinesGenerator.js.map +1 -0
  93. package/dist/generators/guidelines/guidelinesTemplates.d.ts +23 -0
  94. package/dist/generators/guidelines/guidelinesTemplates.d.ts.map +1 -0
  95. package/dist/generators/guidelines/guidelinesTemplates.js +304 -0
  96. package/dist/generators/guidelines/guidelinesTemplates.js.map +1 -0
  97. package/dist/generators/guidelines/index.d.ts +6 -0
  98. package/dist/generators/guidelines/index.d.ts.map +1 -0
  99. package/dist/generators/guidelines/index.js +16 -0
  100. package/dist/generators/guidelines/index.js.map +1 -0
  101. package/dist/generators/moduleGrouper.d.ts +14 -0
  102. package/dist/generators/moduleGrouper.d.ts.map +1 -0
  103. package/dist/generators/moduleGrouper.js +82 -0
  104. package/dist/generators/moduleGrouper.js.map +1 -0
  105. package/dist/generators/projectAnalyzer.d.ts +14 -0
  106. package/dist/generators/projectAnalyzer.d.ts.map +1 -0
  107. package/dist/generators/projectAnalyzer.js +217 -0
  108. package/dist/generators/projectAnalyzer.js.map +1 -0
  109. package/dist/generators/shared/contextGenerator.d.ts +12 -0
  110. package/dist/generators/shared/contextGenerator.d.ts.map +1 -0
  111. package/dist/generators/shared/contextGenerator.js +109 -0
  112. package/dist/generators/shared/contextGenerator.js.map +1 -0
  113. package/dist/generators/shared/generatorUtils.d.ts +16 -0
  114. package/dist/generators/shared/generatorUtils.d.ts.map +1 -0
  115. package/dist/generators/shared/generatorUtils.js +119 -0
  116. package/dist/generators/shared/generatorUtils.js.map +1 -0
  117. package/dist/generators/shared/index.d.ts +3 -0
  118. package/dist/generators/shared/index.d.ts.map +1 -0
  119. package/dist/generators/shared/index.js +8 -0
  120. package/dist/generators/shared/index.js.map +1 -0
  121. package/dist/index.d.ts +1 -0
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +230 -13
  124. package/dist/index.js.map +1 -1
  125. package/dist/utils/interactiveMode.d.ts +6 -1
  126. package/dist/utils/interactiveMode.d.ts.map +1 -1
  127. package/dist/utils/interactiveMode.js +375 -70
  128. package/dist/utils/interactiveMode.js.map +1 -1
  129. package/dist/utils/tokenEstimator.d.ts +10 -9
  130. package/dist/utils/tokenEstimator.d.ts.map +1 -1
  131. package/dist/utils/tokenEstimator.js +45 -109
  132. package/dist/utils/tokenEstimator.js.map +1 -1
  133. package/package.json +1 -1
@@ -0,0 +1,4 @@
1
+ import { AgentType } from './agentTypes';
2
+ export declare const AGENT_RESPONSIBILITIES: Record<AgentType, string[]>;
3
+ export declare const AGENT_BEST_PRACTICES: Record<AgentType, string[]>;
4
+ //# sourceMappingURL=agentConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentConfig.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/agentConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAsE9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CA8D5D,CAAC"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AGENT_BEST_PRACTICES = exports.AGENT_RESPONSIBILITIES = void 0;
4
+ exports.AGENT_RESPONSIBILITIES = {
5
+ 'code-reviewer': [
6
+ 'Review code changes for quality, style, and best practices',
7
+ 'Identify potential bugs and security issues',
8
+ 'Ensure code follows project conventions',
9
+ 'Provide constructive feedback and suggestions'
10
+ ],
11
+ 'bug-fixer': [
12
+ 'Analyze bug reports and error messages',
13
+ 'Identify root causes of issues',
14
+ 'Implement targeted fixes with minimal side effects',
15
+ 'Test fixes thoroughly before deployment'
16
+ ],
17
+ 'feature-developer': [
18
+ 'Implement new features according to specifications',
19
+ 'Design clean, maintainable code architecture',
20
+ 'Integrate features with existing codebase',
21
+ 'Write comprehensive tests for new functionality'
22
+ ],
23
+ 'refactoring-specialist': [
24
+ 'Identify code smells and improvement opportunities',
25
+ 'Refactor code while maintaining functionality',
26
+ 'Improve code organization and structure',
27
+ 'Optimize performance where applicable'
28
+ ],
29
+ 'test-writer': [
30
+ 'Write comprehensive unit and integration tests',
31
+ 'Ensure good test coverage across the codebase',
32
+ 'Create test utilities and fixtures',
33
+ 'Maintain and update existing tests'
34
+ ],
35
+ 'documentation-writer': [
36
+ 'Create clear, comprehensive documentation',
37
+ 'Update existing documentation as code changes',
38
+ 'Write helpful code comments and examples',
39
+ 'Maintain README and API documentation'
40
+ ],
41
+ 'performance-optimizer': [
42
+ 'Identify performance bottlenecks',
43
+ 'Optimize code for speed and efficiency',
44
+ 'Implement caching strategies',
45
+ 'Monitor and improve resource usage'
46
+ ],
47
+ 'security-auditor': [
48
+ 'Identify security vulnerabilities',
49
+ 'Implement security best practices',
50
+ 'Review dependencies for security issues',
51
+ 'Ensure data protection and privacy compliance'
52
+ ],
53
+ 'backend-specialist': [
54
+ 'Design and implement server-side architecture',
55
+ 'Create and maintain APIs and microservices',
56
+ 'Optimize database queries and data models',
57
+ 'Implement authentication and authorization',
58
+ 'Handle server deployment and scaling'
59
+ ],
60
+ 'frontend-specialist': [
61
+ 'Design and implement user interfaces',
62
+ 'Create responsive and accessible web applications',
63
+ 'Optimize client-side performance and bundle sizes',
64
+ 'Implement state management and routing',
65
+ 'Ensure cross-browser compatibility'
66
+ ],
67
+ 'architect-specialist': [
68
+ 'Design overall system architecture and patterns',
69
+ 'Define technical standards and best practices',
70
+ 'Evaluate and recommend technology choices',
71
+ 'Plan system scalability and maintainability',
72
+ 'Create architectural documentation and diagrams'
73
+ ]
74
+ };
75
+ exports.AGENT_BEST_PRACTICES = {
76
+ 'code-reviewer': [
77
+ 'Focus on maintainability and readability',
78
+ 'Consider the broader impact of changes',
79
+ 'Be constructive and specific in feedback'
80
+ ],
81
+ 'bug-fixer': [
82
+ 'Reproduce the bug before fixing',
83
+ 'Write tests to prevent regression',
84
+ 'Document the fix for future reference'
85
+ ],
86
+ 'feature-developer': [
87
+ 'Follow existing patterns and conventions',
88
+ 'Consider edge cases and error handling',
89
+ 'Write tests alongside implementation'
90
+ ],
91
+ 'refactoring-specialist': [
92
+ 'Make small, incremental changes',
93
+ 'Ensure tests pass after each refactor',
94
+ 'Preserve existing functionality exactly'
95
+ ],
96
+ 'test-writer': [
97
+ 'Write tests that are clear and maintainable',
98
+ 'Test both happy path and edge cases',
99
+ 'Use descriptive test names'
100
+ ],
101
+ 'documentation-writer': [
102
+ 'Keep documentation up-to-date with code',
103
+ 'Write from the user\'s perspective',
104
+ 'Include practical examples'
105
+ ],
106
+ 'performance-optimizer': [
107
+ 'Measure before optimizing',
108
+ 'Focus on actual bottlenecks',
109
+ 'Don\'t sacrifice readability unnecessarily'
110
+ ],
111
+ 'security-auditor': [
112
+ 'Follow security best practices',
113
+ 'Stay updated on common vulnerabilities',
114
+ 'Consider the principle of least privilege'
115
+ ],
116
+ 'backend-specialist': [
117
+ 'Design APIs according the specification of the project',
118
+ 'Implement proper error handling and logging',
119
+ 'Use appropriate design patterns and clean architecture',
120
+ 'Consider scalability and performance from the start',
121
+ 'Implement comprehensive testing for business logic'
122
+ ],
123
+ 'frontend-specialist': [
124
+ 'Follow modern frontend development patterns',
125
+ 'Optimize for accessibility and user experience',
126
+ 'Implement responsive design principles',
127
+ 'Use component-based architecture effectively',
128
+ 'Optimize performance and loading times'
129
+ ],
130
+ 'architect-specialist': [
131
+ 'Consider long-term maintainability and scalability',
132
+ 'Balance technical debt with business requirements',
133
+ 'Document architectural decisions and rationale',
134
+ 'Promote code reusability and modularity',
135
+ 'Stay updated on industry trends and technologies'
136
+ ]
137
+ };
138
+ //# sourceMappingURL=agentConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../../src/generators/agents/agentConfig.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAgC;IACjE,eAAe,EAAE;QACf,4DAA4D;QAC5D,6CAA6C;QAC7C,yCAAyC;QACzC,+CAA+C;KAChD;IACD,WAAW,EAAE;QACX,wCAAwC;QACxC,gCAAgC;QAChC,oDAAoD;QACpD,yCAAyC;KAC1C;IACD,mBAAmB,EAAE;QACnB,oDAAoD;QACpD,8CAA8C;QAC9C,2CAA2C;QAC3C,iDAAiD;KAClD;IACD,wBAAwB,EAAE;QACxB,oDAAoD;QACpD,+CAA+C;QAC/C,yCAAyC;QACzC,uCAAuC;KACxC;IACD,aAAa,EAAE;QACb,gDAAgD;QAChD,+CAA+C;QAC/C,oCAAoC;QACpC,oCAAoC;KACrC;IACD,sBAAsB,EAAE;QACtB,2CAA2C;QAC3C,+CAA+C;QAC/C,0CAA0C;QAC1C,uCAAuC;KACxC;IACD,uBAAuB,EAAE;QACvB,kCAAkC;QAClC,wCAAwC;QACxC,8BAA8B;QAC9B,oCAAoC;KACrC;IACD,kBAAkB,EAAE;QAClB,mCAAmC;QACnC,mCAAmC;QACnC,yCAAyC;QACzC,+CAA+C;KAChD;IACD,oBAAoB,EAAE;QACpB,+CAA+C;QAC/C,4CAA4C;QAC5C,2CAA2C;QAC3C,4CAA4C;QAC5C,sCAAsC;KACvC;IACD,qBAAqB,EAAE;QACrB,sCAAsC;QACtC,mDAAmD;QACnD,mDAAmD;QACnD,wCAAwC;QACxC,oCAAoC;KACrC;IACD,sBAAsB,EAAE;QACtB,iDAAiD;QACjD,+CAA+C;QAC/C,2CAA2C;QAC3C,6CAA6C;QAC7C,iDAAiD;KAClD;CACF,CAAC;AAEW,QAAA,oBAAoB,GAAgC;IAC/D,eAAe,EAAE;QACf,0CAA0C;QAC1C,wCAAwC;QACxC,0CAA0C;KAC3C;IACD,WAAW,EAAE;QACX,iCAAiC;QACjC,mCAAmC;QACnC,uCAAuC;KACxC;IACD,mBAAmB,EAAE;QACnB,0CAA0C;QAC1C,wCAAwC;QACxC,sCAAsC;KACvC;IACD,wBAAwB,EAAE;QACxB,iCAAiC;QACjC,uCAAuC;QACvC,yCAAyC;KAC1C;IACD,aAAa,EAAE;QACb,6CAA6C;QAC7C,qCAAqC;QACrC,4BAA4B;KAC7B;IACD,sBAAsB,EAAE;QACtB,yCAAyC;QACzC,oCAAoC;QACpC,4BAA4B;KAC7B;IACD,uBAAuB,EAAE;QACvB,2BAA2B;QAC3B,6BAA6B;QAC7B,4CAA4C;KAC7C;IACD,kBAAkB,EAAE;QAClB,gCAAgC;QAChC,wCAAwC;QACxC,2CAA2C;KAC5C;IACD,oBAAoB,EAAE;QACpB,wDAAwD;QACxD,6CAA6C;QAC7C,wDAAwD;QACxD,qDAAqD;QACrD,oDAAoD;KACrD;IACD,qBAAqB,EAAE;QACrB,6CAA6C;QAC7C,gDAAgD;QAChD,wCAAwC;QACxC,8CAA8C;QAC9C,wCAAwC;KACzC;IACD,sBAAsB,EAAE;QACtB,oDAAoD;QACpD,mDAAmD;QACnD,gDAAgD;QAChD,yCAAyC;QACzC,kDAAkD;KACnD;CACF,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { RepoStructure } from '../../types';
2
+ import { FileMapper } from '../../utils/fileMapper';
3
+ import { BaseLLMClient } from '../../services/baseLLMClient';
4
+ export declare class AgentGenerator {
5
+ private llmClient;
6
+ private contextUtils;
7
+ private promptFormatter;
8
+ constructor(fileMapper: FileMapper, llmClient: BaseLLMClient);
9
+ generateAgentPrompts(repoStructure: RepoStructure, outputDir: string, verbose?: boolean): Promise<void>;
10
+ private generateAgentPrompt;
11
+ private generateAgentIndex;
12
+ }
13
+ //# sourceMappingURL=agentGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/agentGenerator.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;AAM7D,qBAAa,cAAc;IAMvB,OAAO,CAAC,SAAS;IALnB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAkB;gBAGvC,UAAU,EAAE,UAAU,EACd,SAAS,EAAE,aAAa;IAM5B,oBAAoB,CACxB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,IAAI,CAAC;YA4BF,mBAAmB;YA0BnB,kBAAkB;CAOjC"}
@@ -0,0 +1,80 @@
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.AgentGenerator = void 0;
37
+ const path = __importStar(require("path"));
38
+ const agentTypes_1 = require("./agentTypes");
39
+ const contextUtils_1 = require("./contextUtils");
40
+ const promptFormatter_1 = require("./promptFormatter");
41
+ const shared_1 = require("../shared");
42
+ class AgentGenerator {
43
+ constructor(fileMapper, llmClient) {
44
+ this.llmClient = llmClient;
45
+ this.contextUtils = new contextUtils_1.ContextUtils(fileMapper);
46
+ this.promptFormatter = new promptFormatter_1.PromptFormatter();
47
+ }
48
+ async generateAgentPrompts(repoStructure, outputDir, verbose = false) {
49
+ const agentsDir = path.join(outputDir, 'agents');
50
+ await shared_1.GeneratorUtils.ensureDirectoryAndLog(agentsDir, verbose, '🤖 Generating agent prompts in');
51
+ const repoContext = this.contextUtils.createRepoContext(repoStructure);
52
+ const fileContext = await this.contextUtils.createFileContext(repoStructure);
53
+ for (const agentType of agentTypes_1.AGENT_TYPES) {
54
+ try {
55
+ const fileName = `${agentType}.md`;
56
+ const agentPrompt = await this.generateAgentPrompt(agentType, repoContext, fileContext, repoStructure);
57
+ const agentPath = path.join(agentsDir, fileName);
58
+ await shared_1.GeneratorUtils.writeFileWithLogging(agentPath, agentPrompt, verbose);
59
+ }
60
+ catch (error) {
61
+ shared_1.GeneratorUtils.logError(`Error generating ${agentType}`, error, verbose);
62
+ }
63
+ }
64
+ // Generate master agent index
65
+ await this.generateAgentIndex(agentsDir, verbose);
66
+ }
67
+ async generateAgentPrompt(agentType, repoContext, fileContext, repoStructure) {
68
+ const structureOverview = this.contextUtils.createStructureOverview(repoStructure);
69
+ const agentPrompt = await this.llmClient.generateAgentPrompt(structureOverview, fileContext, agentType);
70
+ return this.promptFormatter.formatAgentPrompt(agentType, agentPrompt, repoContext);
71
+ }
72
+ async generateAgentIndex(agentsDir, verbose) {
73
+ const fileName = 'README.md';
74
+ const indexContent = this.promptFormatter.generateAgentIndex();
75
+ const indexPath = path.join(agentsDir, fileName);
76
+ await shared_1.GeneratorUtils.writeFileWithLogging(indexPath, indexContent, verbose);
77
+ }
78
+ }
79
+ exports.AgentGenerator = AgentGenerator;
80
+ //# sourceMappingURL=agentGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentGenerator.js","sourceRoot":"","sources":["../../../src/generators/agents/agentGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAI7B,6CAAsD;AACtD,iDAA8C;AAC9C,uDAAoD;AACpD,sCAA2C;AAE3C,MAAa,cAAc;IAIzB,YACE,UAAsB,EACd,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;QAEhC,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,aAA4B,EAC5B,SAAiB,EACjB,UAAmB,KAAK;QAExB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,uBAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,gCAAgC,CAAC,CAAC;QAEjG,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAE7E,KAAK,MAAM,SAAS,IAAI,wBAAW,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,GAAG,SAAS,KAAK,CAAC;gBACnC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAChD,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,CACd,CAAC;gBAEF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACjD,MAAM,uBAAc,CAAC,oBAAoB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,uBAAc,CAAC,QAAQ,CAAC,oBAAoB,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,SAAoB,EACpB,WAAmB,EACnB,WAAmB,EACnB,aAA4B;QAE5B,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAEnF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAC1D,iBAAiB,EACjB,WAAW,EACX,SAAS,CACV,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACrF,CAAC;IAWO,KAAK,CAAC,kBAAkB,CAAC,SAAiB,EAAE,OAAgB;QAClE,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,uBAAc,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;CAEF;AA7ED,wCA6EC"}
@@ -0,0 +1,4 @@
1
+ export declare const AGENT_TYPES: readonly ["code-reviewer", "bug-fixer", "feature-developer", "refactoring-specialist", "test-writer", "documentation-writer", "performance-optimizer", "security-auditor", "backend-specialist", "frontend-specialist", "architect-specialist"];
2
+ export type AgentType = typeof AGENT_TYPES[number];
3
+ export declare const IMPORTANT_FILES: string[];
4
+ //# sourceMappingURL=agentTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentTypes.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/agentTypes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,iPAYd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,eAAe,UAI3B,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IMPORTANT_FILES = exports.AGENT_TYPES = void 0;
4
+ exports.AGENT_TYPES = [
5
+ 'code-reviewer',
6
+ 'bug-fixer',
7
+ 'feature-developer',
8
+ 'refactoring-specialist',
9
+ 'test-writer',
10
+ 'documentation-writer',
11
+ 'performance-optimizer',
12
+ 'security-auditor',
13
+ 'backend-specialist',
14
+ 'frontend-specialist',
15
+ 'architect-specialist'
16
+ ];
17
+ exports.IMPORTANT_FILES = [
18
+ 'package.json', 'tsconfig.json', 'webpack.config.js',
19
+ 'next.config.js', 'tailwind.config.js', 'README.md',
20
+ '.gitignore', 'Dockerfile', 'docker-compose.yml'
21
+ ];
22
+ //# sourceMappingURL=agentTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentTypes.js","sourceRoot":"","sources":["../../../src/generators/agents/agentTypes.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,eAAe;IACf,WAAW;IACX,mBAAmB;IACnB,wBAAwB;IACxB,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,kBAAkB;IAClB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;CACd,CAAC;AAIE,QAAA,eAAe,GAAG;IAC7B,cAAc,EAAE,eAAe,EAAE,mBAAmB;IACpD,gBAAgB,EAAE,oBAAoB,EAAE,WAAW;IACnD,YAAY,EAAE,YAAY,EAAE,oBAAoB;CACjD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { RepoStructure } from '../../types';
2
+ import { FileMapper } from '../../utils/fileMapper';
3
+ import { ContextGenerator } from '../shared';
4
+ export declare class ContextUtils extends ContextGenerator {
5
+ constructor(fileMapper: FileMapper);
6
+ createFileContext(repoStructure: RepoStructure): Promise<string>;
7
+ }
8
+ //# sourceMappingURL=contextUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextUtils.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/contextUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAkB,MAAM,WAAW,CAAC;AAE7D,qBAAa,YAAa,SAAQ,gBAAgB;gBACpC,UAAU,EAAE,UAAU;IAK5B,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;CAOvE"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContextUtils = void 0;
4
+ const agentTypes_1 = require("./agentTypes");
5
+ const shared_1 = require("../shared");
6
+ class ContextUtils extends shared_1.ContextGenerator {
7
+ constructor(fileMapper) {
8
+ super(fileMapper);
9
+ }
10
+ async createFileContext(repoStructure) {
11
+ return super.createFileContext(repoStructure, agentTypes_1.IMPORTANT_FILES);
12
+ }
13
+ }
14
+ exports.ContextUtils = ContextUtils;
15
+ //# sourceMappingURL=contextUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextUtils.js","sourceRoot":"","sources":["../../../src/generators/agents/contextUtils.ts"],"names":[],"mappings":";;;AAGA,6CAA+C;AAC/C,sCAA6D;AAE7D,MAAa,YAAa,SAAQ,yBAAgB;IAChD,YAAY,UAAsB;QAChC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpB,CAAC;IAGD,KAAK,CAAC,iBAAiB,CAAC,aAA4B;QAClD,OAAO,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,4BAAe,CAAC,CAAC;IACjE,CAAC;CAKF;AAbD,oCAaC"}
@@ -0,0 +1,6 @@
1
+ export { AgentGenerator } from './agentGenerator';
2
+ export { AGENT_TYPES, AgentType, IMPORTANT_FILES } from './agentTypes';
3
+ export { AGENT_RESPONSIBILITIES, AGENT_BEST_PRACTICES } from './agentConfig';
4
+ export { ContextUtils } from './contextUtils';
5
+ export { PromptFormatter } from './promptFormatter';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromptFormatter = exports.ContextUtils = exports.AGENT_BEST_PRACTICES = exports.AGENT_RESPONSIBILITIES = exports.IMPORTANT_FILES = exports.AGENT_TYPES = exports.AgentGenerator = void 0;
4
+ var agentGenerator_1 = require("./agentGenerator");
5
+ Object.defineProperty(exports, "AgentGenerator", { enumerable: true, get: function () { return agentGenerator_1.AgentGenerator; } });
6
+ var agentTypes_1 = require("./agentTypes");
7
+ Object.defineProperty(exports, "AGENT_TYPES", { enumerable: true, get: function () { return agentTypes_1.AGENT_TYPES; } });
8
+ Object.defineProperty(exports, "IMPORTANT_FILES", { enumerable: true, get: function () { return agentTypes_1.IMPORTANT_FILES; } });
9
+ var agentConfig_1 = require("./agentConfig");
10
+ Object.defineProperty(exports, "AGENT_RESPONSIBILITIES", { enumerable: true, get: function () { return agentConfig_1.AGENT_RESPONSIBILITIES; } });
11
+ Object.defineProperty(exports, "AGENT_BEST_PRACTICES", { enumerable: true, get: function () { return agentConfig_1.AGENT_BEST_PRACTICES; } });
12
+ var contextUtils_1 = require("./contextUtils");
13
+ Object.defineProperty(exports, "ContextUtils", { enumerable: true, get: function () { return contextUtils_1.ContextUtils; } });
14
+ var promptFormatter_1 = require("./promptFormatter");
15
+ Object.defineProperty(exports, "PromptFormatter", { enumerable: true, get: function () { return promptFormatter_1.PromptFormatter; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/agents/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,2CAAuE;AAA9D,yGAAA,WAAW,OAAA;AAAa,6GAAA,eAAe,OAAA;AAChD,6CAA6E;AAApE,qHAAA,sBAAsB,OAAA;AAAE,mHAAA,oBAAoB,OAAA;AACrD,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
@@ -0,0 +1,9 @@
1
+ import { AgentType } from './agentTypes';
2
+ export declare class PromptFormatter {
3
+ formatAgentPrompt(agentType: AgentType, generatedPrompt: string, repoContext: string): string;
4
+ generateAgentIndex(): string;
5
+ private getAgentResponsibilities;
6
+ private getAgentBestPractices;
7
+ private getAgentCommands;
8
+ }
9
+ //# sourceMappingURL=promptFormatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptFormatter.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/promptFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,cAAc,CAAC;AAItD,qBAAa,eAAe;IAC1B,iBAAiB,CACf,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GAClB,MAAM;IA2BT,kBAAkB,IAAI,MAAM;IA8B5B,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,gBAAgB;CAYzB"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromptFormatter = void 0;
4
+ const agentTypes_1 = require("./agentTypes");
5
+ const agentConfig_1 = require("./agentConfig");
6
+ const shared_1 = require("../shared");
7
+ class PromptFormatter {
8
+ formatAgentPrompt(agentType, generatedPrompt, repoContext) {
9
+ const title = shared_1.GeneratorUtils.formatTitle(agentType);
10
+ return `# ${title} Agent
11
+
12
+ ## Role Description
13
+ You are a specialized ${title} agent for this codebase. Your primary function is to assist with ${agentType.replace('-', ' ')} tasks while maintaining deep understanding of the project structure and conventions.
14
+
15
+ ## Repository Context
16
+ ${repoContext}
17
+
18
+ ## Agent-Specific Prompt
19
+ ${generatedPrompt}
20
+
21
+ ## Key Responsibilities
22
+ ${this.getAgentResponsibilities(agentType)}
23
+
24
+ ## Best Practices
25
+ ${this.getAgentBestPractices(agentType)}
26
+
27
+ ## Common Commands and Patterns
28
+ ${this.getAgentCommands(agentType)}
29
+
30
+ ${shared_1.GeneratorUtils.createGeneratedByFooter('Agent', `Agent Type: ${agentType}`)}
31
+ `;
32
+ }
33
+ generateAgentIndex() {
34
+ return `# AI Agents Index
35
+
36
+ This directory contains specialized AI agent prompts designed for this codebase.
37
+
38
+ ## Available Agents
39
+
40
+ ${agentTypes_1.AGENT_TYPES.map(type => {
41
+ const title = shared_1.GeneratorUtils.formatTitle(type);
42
+ return `### [${title}](${type}.md)
43
+ - **File:** \`${type}.md\`
44
+ - **Purpose:** Specialized ${title.toLowerCase()} tasks
45
+ `;
46
+ }).join('\n')}
47
+
48
+ ## Usage
49
+
50
+ Each agent prompt is designed to provide context-aware assistance for specific development tasks. Use these prompts with your preferred AI assistant to get specialized help with your codebase.
51
+
52
+ ## How to Use
53
+
54
+ 1. Choose the appropriate agent for your task
55
+ 2. Copy the agent prompt from the corresponding .md file
56
+ 3. Provide the prompt to your AI assistant along with your specific question or task
57
+ 4. The agent will provide context-aware assistance based on your codebase structure
58
+
59
+ ${shared_1.GeneratorUtils.createGeneratedByFooter('Agent Index')}
60
+ `;
61
+ }
62
+ getAgentResponsibilities(agentType) {
63
+ return agentConfig_1.AGENT_RESPONSIBILITIES[agentType]?.map(r => `- ${r}`).join('\n') ||
64
+ '- Perform specialized tasks for this agent type';
65
+ }
66
+ getAgentBestPractices(agentType) {
67
+ return agentConfig_1.AGENT_BEST_PRACTICES[agentType]?.map(p => `- ${p}`).join('\n') ||
68
+ '- Follow general best practices for software development';
69
+ }
70
+ getAgentCommands(agentType) {
71
+ return `Common patterns and commands for ${agentType} tasks:
72
+
73
+ \`\`\`bash
74
+ # Add relevant commands here based on the codebase
75
+ npm test # Run tests
76
+ npm run lint # Check code style
77
+ npm run build # Build the project
78
+ \`\`\`
79
+
80
+ Refer to the project's package.json or documentation for specific commands.`;
81
+ }
82
+ }
83
+ exports.PromptFormatter = PromptFormatter;
84
+ //# sourceMappingURL=promptFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptFormatter.js","sourceRoot":"","sources":["../../../src/generators/agents/promptFormatter.ts"],"names":[],"mappings":";;;AAAA,6CAAsD;AACtD,+CAA6E;AAC7E,sCAA2C;AAE3C,MAAa,eAAe;IAC1B,iBAAiB,CACf,SAAoB,EACpB,eAAuB,EACvB,WAAmB;QAEnB,MAAM,KAAK,GAAG,uBAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEpD,OAAO,KAAK,KAAK;;;wBAGG,KAAK,qEAAqE,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;;;EAG3H,WAAW;;;EAGX,eAAe;;;EAGf,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC;;;EAGxC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;;;EAGrC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;;EAEhC,uBAAc,CAAC,uBAAuB,CAAC,OAAO,EAAE,eAAe,SAAS,EAAE,CAAC;CAC5E,CAAC;IACA,CAAC;IAED,kBAAkB;QAChB,OAAO;;;;;;EAMT,wBAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACvB,MAAM,KAAK,GAAG,uBAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,QAAQ,KAAK,KAAK,IAAI;gBACf,IAAI;6BACS,KAAK,CAAC,WAAW,EAAE;CAC/C,CAAC;QACF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;EAaX,uBAAc,CAAC,uBAAuB,CAAC,aAAa,CAAC;CACtD,CAAC;IACA,CAAC;IAEO,wBAAwB,CAAC,SAAoB;QACnD,OAAO,oCAAsB,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAChE,iDAAiD,CAAC;IAC3D,CAAC;IAEO,qBAAqB,CAAC,SAAoB;QAChD,OAAO,kCAAoB,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9D,0DAA0D,CAAC;IACpE,CAAC;IAEO,gBAAgB,CAAC,SAAoB;QAC3C,OAAO,oCAAoC,SAAS;;;;;;;;;4EASoB,CAAC;IAC3E,CAAC;CACF;AApFD,0CAoFC"}
@@ -0,0 +1,45 @@
1
+ import { RepoStructure } from '../../types';
2
+ import { FileMapper } from '../../utils/fileMapper';
3
+ import { ModuleGroup } from '../moduleGrouper';
4
+ export interface ArchitecturalPattern {
5
+ name: string;
6
+ description: string;
7
+ evidence: string[];
8
+ confidence: number;
9
+ }
10
+ export interface CodePattern {
11
+ type: string;
12
+ pattern: string;
13
+ description: string;
14
+ examples: string[];
15
+ frequency: number;
16
+ }
17
+ export interface DependencyFlow {
18
+ from: string;
19
+ to: string;
20
+ type: 'import' | 'inheritance' | 'composition' | 'usage';
21
+ strength: number;
22
+ }
23
+ export declare class CodebaseAnalyzer {
24
+ private fileMapper;
25
+ constructor(fileMapper: FileMapper);
26
+ analyzeArchitecturalPatterns(repoStructure: RepoStructure, moduleGroups: ModuleGroup[]): Promise<ArchitecturalPattern[]>;
27
+ analyzeCodePatterns(repoStructure: RepoStructure): Promise<CodePattern[]>;
28
+ analyzeDependencyFlow(repoStructure: RepoStructure, moduleGroups: ModuleGroup[]): DependencyFlow[];
29
+ identifyExtensionPoints(repoStructure: RepoStructure): string[];
30
+ private getDirectoryStructure;
31
+ private hasMVCStructure;
32
+ private getMVCEvidence;
33
+ private hasLayeredArchitecture;
34
+ private getLayeredEvidence;
35
+ private hasModularStructure;
36
+ private getModularEvidence;
37
+ private hasMicroservicesIndicators;
38
+ private getMicroservicesEvidence;
39
+ private detectDesignPatterns;
40
+ private detectNamingPatterns;
41
+ private detectErrorHandlingPatterns;
42
+ private consolidatePatterns;
43
+ private calculateDependencyStrength;
44
+ }
45
+ //# sourceMappingURL=codebaseAnalyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codebaseAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/generators/analyzers/codebaseAnalyzer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAY,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC;IACzD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEpC,4BAA4B,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiDxH,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAoB/E,qBAAqB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE;IAuBlG,uBAAuB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,EAAE;IAmC/D,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,oBAAoB;IAuC5B,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,2BAA2B;IA0BnC,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,2BAA2B;CAgBpC"}