@ai-coders/context 0.2.1 → 0.3.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 (204) hide show
  1. package/README.md +116 -578
  2. package/dist/commands/shared/agents.d.ts +2 -0
  3. package/dist/commands/shared/agents.d.ts.map +1 -0
  4. package/dist/commands/shared/agents.js +15 -0
  5. package/dist/commands/shared/agents.js.map +1 -0
  6. package/dist/commands/shared/selection.d.ts +12 -0
  7. package/dist/commands/shared/selection.d.ts.map +1 -0
  8. package/dist/commands/shared/selection.js +95 -0
  9. package/dist/commands/shared/selection.js.map +1 -0
  10. package/dist/generators/agents/agentGenerator.d.ts +6 -9
  11. package/dist/generators/agents/agentGenerator.d.ts.map +1 -1
  12. package/dist/generators/agents/agentGenerator.js +89 -32
  13. package/dist/generators/agents/agentGenerator.js.map +1 -1
  14. package/dist/generators/agents/index.d.ts +0 -2
  15. package/dist/generators/agents/index.d.ts.map +1 -1
  16. package/dist/generators/agents/index.js +1 -5
  17. package/dist/generators/agents/index.js.map +1 -1
  18. package/dist/generators/agents/templates/index.d.ts +4 -0
  19. package/dist/generators/agents/templates/index.d.ts.map +1 -0
  20. package/dist/generators/agents/templates/index.js +8 -0
  21. package/dist/generators/agents/templates/index.js.map +1 -0
  22. package/dist/generators/agents/templates/indexTemplate.d.ts +3 -0
  23. package/dist/generators/agents/templates/indexTemplate.d.ts.map +1 -0
  24. package/dist/generators/agents/templates/indexTemplate.js +35 -0
  25. package/dist/generators/agents/templates/indexTemplate.js.map +1 -0
  26. package/dist/generators/agents/templates/playbookTemplate.d.ts +4 -0
  27. package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -0
  28. package/dist/generators/agents/templates/playbookTemplate.js +63 -0
  29. package/dist/generators/agents/templates/playbookTemplate.js.map +1 -0
  30. package/dist/generators/agents/templates/types.d.ts +14 -0
  31. package/dist/generators/agents/templates/types.d.ts.map +1 -0
  32. package/dist/generators/agents/templates/types.js +3 -0
  33. package/dist/generators/agents/templates/types.js.map +1 -0
  34. package/dist/generators/documentation/documentationGenerator.d.ts +9 -15
  35. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
  36. package/dist/generators/documentation/documentationGenerator.js +65 -77
  37. package/dist/generators/documentation/documentationGenerator.js.map +1 -1
  38. package/dist/generators/documentation/guideRegistry.d.ts +6 -0
  39. package/dist/generators/documentation/guideRegistry.d.ts.map +1 -0
  40. package/dist/generators/documentation/guideRegistry.js +82 -0
  41. package/dist/generators/documentation/guideRegistry.js.map +1 -0
  42. package/dist/generators/documentation/index.d.ts +0 -6
  43. package/dist/generators/documentation/index.d.ts.map +1 -1
  44. package/dist/generators/documentation/index.js +1 -17
  45. package/dist/generators/documentation/index.js.map +1 -1
  46. package/dist/generators/documentation/templates/architectureTemplate.d.ts +3 -0
  47. package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -0
  48. package/dist/generators/documentation/templates/architectureTemplate.js +66 -0
  49. package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -0
  50. package/dist/generators/documentation/templates/common.d.ts +7 -0
  51. package/dist/generators/documentation/templates/common.d.ts.map +1 -0
  52. package/dist/generators/documentation/templates/common.js +58 -0
  53. package/dist/generators/documentation/templates/common.js.map +1 -0
  54. package/dist/generators/documentation/templates/dataFlowTemplate.d.ts +3 -0
  55. package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +1 -0
  56. package/dist/generators/documentation/templates/dataFlowTemplate.js +55 -0
  57. package/dist/generators/documentation/templates/dataFlowTemplate.js.map +1 -0
  58. package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts +2 -0
  59. package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +1 -0
  60. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +59 -0
  61. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -0
  62. package/dist/generators/documentation/templates/frontMatter.d.ts +11 -0
  63. package/dist/generators/documentation/templates/frontMatter.d.ts.map +1 -0
  64. package/dist/generators/documentation/templates/frontMatter.js +29 -0
  65. package/dist/generators/documentation/templates/frontMatter.js.map +1 -0
  66. package/dist/generators/documentation/templates/glossaryTemplate.d.ts +3 -0
  67. package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -0
  68. package/dist/generators/documentation/templates/glossaryTemplate.js +55 -0
  69. package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -0
  70. package/dist/generators/documentation/templates/index.d.ts +11 -0
  71. package/dist/generators/documentation/templates/index.d.ts.map +1 -0
  72. package/dist/generators/documentation/templates/index.js +22 -0
  73. package/dist/generators/documentation/templates/index.js.map +1 -0
  74. package/dist/generators/documentation/templates/indexTemplate.d.ts +3 -0
  75. package/dist/generators/documentation/templates/indexTemplate.d.ts.map +1 -0
  76. package/dist/generators/documentation/templates/indexTemplate.js +56 -0
  77. package/dist/generators/documentation/templates/indexTemplate.js.map +1 -0
  78. package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts +3 -0
  79. package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +1 -0
  80. package/dist/generators/documentation/templates/projectOverviewTemplate.js +68 -0
  81. package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +1 -0
  82. package/dist/generators/documentation/templates/securityTemplate.d.ts +2 -0
  83. package/dist/generators/documentation/templates/securityTemplate.d.ts.map +1 -0
  84. package/dist/generators/documentation/templates/securityTemplate.js +53 -0
  85. package/dist/generators/documentation/templates/securityTemplate.js.map +1 -0
  86. package/dist/generators/documentation/templates/testingTemplate.d.ts +2 -0
  87. package/dist/generators/documentation/templates/testingTemplate.d.ts.map +1 -0
  88. package/dist/generators/documentation/templates/testingTemplate.js +59 -0
  89. package/dist/generators/documentation/templates/testingTemplate.js.map +1 -0
  90. package/dist/generators/documentation/templates/toolingTemplate.d.ts +2 -0
  91. package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +1 -0
  92. package/dist/generators/documentation/templates/toolingTemplate.js +56 -0
  93. package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -0
  94. package/dist/generators/documentation/templates/types.d.ts +23 -0
  95. package/dist/generators/documentation/templates/types.d.ts.map +1 -0
  96. package/dist/generators/documentation/templates/types.js +3 -0
  97. package/dist/generators/documentation/templates/types.js.map +1 -0
  98. package/dist/generators/documentation/templates.d.ts +31 -0
  99. package/dist/generators/documentation/templates.d.ts.map +1 -0
  100. package/dist/generators/documentation/templates.js +566 -0
  101. package/dist/generators/documentation/templates.js.map +1 -0
  102. package/dist/generators/plans/index.d.ts +2 -0
  103. package/dist/generators/plans/index.d.ts.map +1 -0
  104. package/dist/generators/plans/index.js +6 -0
  105. package/dist/generators/plans/index.js.map +1 -0
  106. package/dist/generators/plans/planGenerator.d.ts +22 -0
  107. package/dist/generators/plans/planGenerator.d.ts.map +1 -0
  108. package/dist/generators/plans/planGenerator.js +109 -0
  109. package/dist/generators/plans/planGenerator.js.map +1 -0
  110. package/dist/generators/plans/templates/indexTemplate.d.ts +3 -0
  111. package/dist/generators/plans/templates/indexTemplate.d.ts.map +1 -0
  112. package/dist/generators/plans/templates/indexTemplate.js +36 -0
  113. package/dist/generators/plans/templates/indexTemplate.js.map +1 -0
  114. package/dist/generators/plans/templates/planTemplate.d.ts +3 -0
  115. package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -0
  116. package/dist/generators/plans/templates/planTemplate.js +95 -0
  117. package/dist/generators/plans/templates/planTemplate.js.map +1 -0
  118. package/dist/generators/plans/templates/types.d.ts +19 -0
  119. package/dist/generators/plans/templates/types.d.ts.map +1 -0
  120. package/dist/generators/plans/templates/types.js +3 -0
  121. package/dist/generators/plans/templates/types.js.map +1 -0
  122. package/dist/generators/shared/contextGenerator.d.ts +2 -7
  123. package/dist/generators/shared/contextGenerator.d.ts.map +1 -1
  124. package/dist/generators/shared/contextGenerator.js +2 -98
  125. package/dist/generators/shared/contextGenerator.js.map +1 -1
  126. package/dist/generators/shared/directoryTemplateHelpers.d.ts +2 -0
  127. package/dist/generators/shared/directoryTemplateHelpers.d.ts.map +1 -0
  128. package/dist/generators/shared/directoryTemplateHelpers.js +12 -0
  129. package/dist/generators/shared/directoryTemplateHelpers.js.map +1 -0
  130. package/dist/generators/shared/index.d.ts +1 -0
  131. package/dist/generators/shared/index.d.ts.map +1 -1
  132. package/dist/generators/shared/index.js +3 -1
  133. package/dist/generators/shared/index.js.map +1 -1
  134. package/dist/index.d.ts +6 -4
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +1358 -609
  137. package/dist/index.js.map +1 -1
  138. package/dist/prompts/defaults.d.ts +3 -0
  139. package/dist/prompts/defaults.d.ts.map +1 -0
  140. package/dist/prompts/defaults.js +95 -0
  141. package/dist/prompts/defaults.js.map +1 -0
  142. package/dist/services/fill/fillService.d.ts +50 -0
  143. package/dist/services/fill/fillService.d.ts.map +1 -0
  144. package/dist/services/fill/fillService.js +302 -0
  145. package/dist/services/fill/fillService.js.map +1 -0
  146. package/dist/services/init/initService.d.ts +37 -0
  147. package/dist/services/init/initService.d.ts.map +1 -0
  148. package/dist/services/init/initService.js +137 -0
  149. package/dist/services/init/initService.js.map +1 -0
  150. package/dist/services/plan/planService.d.ts +59 -0
  151. package/dist/services/plan/planService.d.ts.map +1 -0
  152. package/dist/services/plan/planService.js +343 -0
  153. package/dist/services/plan/planService.js.map +1 -0
  154. package/dist/services/shared/llmConfig.d.ts +22 -0
  155. package/dist/services/shared/llmConfig.d.ts.map +1 -0
  156. package/dist/services/shared/llmConfig.js +80 -0
  157. package/dist/services/shared/llmConfig.js.map +1 -0
  158. package/dist/utils/cliUI.d.ts +6 -4
  159. package/dist/utils/cliUI.d.ts.map +1 -1
  160. package/dist/utils/cliUI.js +71 -56
  161. package/dist/utils/cliUI.js.map +1 -1
  162. package/dist/utils/i18n.d.ts +192 -0
  163. package/dist/utils/i18n.d.ts.map +1 -0
  164. package/dist/utils/i18n.js +423 -0
  165. package/dist/utils/i18n.js.map +1 -0
  166. package/dist/utils/promptLoader.d.ts +12 -0
  167. package/dist/utils/promptLoader.d.ts.map +1 -0
  168. package/dist/utils/promptLoader.js +81 -0
  169. package/dist/utils/promptLoader.js.map +1 -0
  170. package/dist/utils/versionChecker.d.ts +15 -0
  171. package/dist/utils/versionChecker.d.ts.map +1 -0
  172. package/dist/utils/versionChecker.js +49 -0
  173. package/dist/utils/versionChecker.js.map +1 -0
  174. package/package.json +28 -23
  175. package/prompts/update_plan_prompt.md +42 -0
  176. package/prompts/update_scaffold_prompt.md +48 -0
  177. package/dist/generators/agentGenerator.d.ts +0 -23
  178. package/dist/generators/agentGenerator.d.ts.map +0 -1
  179. package/dist/generators/agentGenerator.js +0 -357
  180. package/dist/generators/agentGenerator.js.map +0 -1
  181. package/dist/generators/documentation/enhancedDocumentationGenerator.d.ts +0 -21
  182. package/dist/generators/documentation/enhancedDocumentationGenerator.d.ts.map +0 -1
  183. package/dist/generators/documentation/enhancedDocumentationGenerator.js +0 -216
  184. package/dist/generators/documentation/enhancedDocumentationGenerator.js.map +0 -1
  185. package/dist/generators/documentation/newDocumentationTemplates.d.ts +0 -19
  186. package/dist/generators/documentation/newDocumentationTemplates.d.ts.map +0 -1
  187. package/dist/generators/documentation/newDocumentationTemplates.js +0 -307
  188. package/dist/generators/documentation/newDocumentationTemplates.js.map +0 -1
  189. package/dist/generators/documentationGenerator.d.ts +0 -22
  190. package/dist/generators/documentationGenerator.d.ts.map +0 -1
  191. package/dist/generators/documentationGenerator.js +0 -235
  192. package/dist/generators/documentationGenerator.js.map +0 -1
  193. package/dist/generators/documentationTemplates.d.ts +0 -16
  194. package/dist/generators/documentationTemplates.d.ts.map +0 -1
  195. package/dist/generators/documentationTemplates.js +0 -326
  196. package/dist/generators/documentationTemplates.js.map +0 -1
  197. package/dist/generators/documentationUtils.d.ts +0 -7
  198. package/dist/generators/documentationUtils.d.ts.map +0 -1
  199. package/dist/generators/documentationUtils.js +0 -38
  200. package/dist/generators/documentationUtils.js.map +0 -1
  201. package/dist/generators/incrementalDocumentationGenerator.d.ts +0 -33
  202. package/dist/generators/incrementalDocumentationGenerator.d.ts.map +0 -1
  203. package/dist/generators/incrementalDocumentationGenerator.js +0 -400
  204. package/dist/generators/incrementalDocumentationGenerator.js.map +0 -1
@@ -1,33 +0,0 @@
1
- import { RepoStructure } from '../types';
2
- import { FileMapper } from '../utils/fileMapper';
3
- import { BaseLLMClient } from '../services/baseLLMClient';
4
- import { GitService, GitChanges } from '../utils/gitService';
5
- export declare class IncrementalDocumentationGenerator {
6
- private fileMapper;
7
- private llmClient;
8
- private gitService;
9
- constructor(fileMapper: FileMapper, llmClient: BaseLLMClient, gitService: GitService);
10
- updateDocumentation(repoStructure: RepoStructure, outputDir: string, changes: GitChanges, verbose?: boolean): Promise<{
11
- updated: number;
12
- removed: number;
13
- updatedFiles: string[];
14
- removedFiles: string[];
15
- overviewUpdated: boolean;
16
- }>;
17
- private getAffectedModules;
18
- private getModuleNameForFile;
19
- private getModuleKey;
20
- private getModuleGroups;
21
- private formatModuleName;
22
- private getModuleDescription;
23
- private updateModuleDocumentation;
24
- private createModuleDocumentation;
25
- private cleanupEmptyModules;
26
- private updateOverviewDocuments;
27
- private displayChangeSummary;
28
- private createEnhancedProjectOverview;
29
- private createDocumentationIndex;
30
- private slugify;
31
- private formatBytes;
32
- }
33
- //# sourceMappingURL=incrementalDocumentationGenerator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"incrementalDocumentationGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/incrementalDocumentationGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,aAAa,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAS7D,qBAAa,iCAAiC;IAE1C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;gBAFV,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,UAAU;IAG1B,mBAAmB,CACvB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,UAAU,EACnB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IA+FF,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,oBAAoB;YAYd,yBAAyB;YAyBzB,yBAAyB;YA2DzB,mBAAmB;YA6BnB,uBAAuB;IAkCrC,OAAO,CAAC,oBAAoB;YAad,6BAA6B;IAoC3C,OAAO,CAAC,wBAAwB;IAmChC,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,WAAW;CAOpB"}
@@ -1,400 +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
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.IncrementalDocumentationGenerator = void 0;
40
- const fs = __importStar(require("fs-extra"));
41
- const path = __importStar(require("path"));
42
- const chalk_1 = __importDefault(require("chalk"));
43
- class IncrementalDocumentationGenerator {
44
- constructor(fileMapper, llmClient, gitService) {
45
- this.fileMapper = fileMapper;
46
- this.llmClient = llmClient;
47
- this.gitService = gitService;
48
- }
49
- async updateDocumentation(repoStructure, outputDir, changes, verbose = false) {
50
- const docsDir = path.join(outputDir, 'docs');
51
- await fs.ensureDir(docsDir);
52
- if (verbose) {
53
- console.log(chalk_1.default.blue(`šŸ“š Updating documentation in: ${docsDir}`));
54
- this.displayChangeSummary(changes);
55
- }
56
- let updated = 0;
57
- let removed = 0;
58
- const updatedFiles = [];
59
- const removedFiles = [];
60
- let overviewUpdated = false;
61
- // Get all changed files
62
- const allChangedFiles = [
63
- ...changes.added,
64
- ...changes.modified,
65
- ...changes.deleted,
66
- ...changes.renamed.map(r => r.from),
67
- ...changes.renamed.map(r => r.to)
68
- ];
69
- // Filter for tracked and relevant files only
70
- const trackedChangedFiles = this.gitService.filterTrackedFiles(allChangedFiles);
71
- const relevantChangedFiles = trackedChangedFiles.filter(file => {
72
- const fullPath = path.join(repoStructure.rootPath, file);
73
- return this.fileMapper.isTextFile(fullPath);
74
- });
75
- if (verbose) {
76
- const untrackedFiles = allChangedFiles.filter(file => !trackedChangedFiles.includes(file));
77
- if (untrackedFiles.length > 0) {
78
- console.log(chalk_1.default.gray(`šŸ“Ž Skipping ${untrackedFiles.length} untracked files`));
79
- }
80
- }
81
- if (relevantChangedFiles.length === 0) {
82
- if (verbose) {
83
- console.log(chalk_1.default.yellow('šŸ“„ No relevant tracked file changes detected'));
84
- }
85
- return {
86
- updated: 0,
87
- removed: 0,
88
- updatedFiles: [],
89
- removedFiles: [],
90
- overviewUpdated: false
91
- };
92
- }
93
- // Determine which modules are affected by the changes
94
- const affectedModules = this.getAffectedModules(relevantChangedFiles, repoStructure);
95
- if (verbose) {
96
- console.log(chalk_1.default.yellow(`šŸ“¦ Updating ${affectedModules.length} affected modules...`));
97
- affectedModules.forEach(module => {
98
- console.log(chalk_1.default.gray(` - ${module.name} (${module.files.length} files)`));
99
- });
100
- }
101
- // Update affected modules
102
- for (const module of affectedModules) {
103
- try {
104
- const updatedFile = await this.updateModuleDocumentation(module, repoStructure, docsDir, verbose);
105
- updatedFiles.push(updatedFile);
106
- updated++;
107
- }
108
- catch (error) {
109
- if (verbose) {
110
- console.log(chalk_1.default.red(`āŒ Error updating module ${module.name}: ${error}`));
111
- }
112
- }
113
- }
114
- // Handle deleted files by checking if any modules became empty
115
- const cleanedUpFiles = await this.cleanupEmptyModules(docsDir, repoStructure, verbose);
116
- removedFiles.push(...cleanedUpFiles);
117
- removed += cleanedUpFiles.length;
118
- // Update overview documents if there were significant changes
119
- if (updated > 0 || removed > 0) {
120
- await this.updateOverviewDocuments(repoStructure, docsDir, verbose);
121
- overviewUpdated = true;
122
- updatedFiles.push('README.md', 'overview.md');
123
- }
124
- return {
125
- updated,
126
- removed,
127
- updatedFiles,
128
- removedFiles,
129
- overviewUpdated
130
- };
131
- }
132
- getAffectedModules(changedFiles, repoStructure) {
133
- // Get all modules
134
- const allModules = this.getModuleGroups(repoStructure);
135
- // Find which modules contain changed files
136
- const affectedModuleNames = new Set();
137
- changedFiles.forEach(changedFile => {
138
- const moduleName = this.getModuleNameForFile(changedFile);
139
- affectedModuleNames.add(moduleName);
140
- });
141
- // Return only the affected modules
142
- return allModules.filter(module => affectedModuleNames.has(this.getModuleKey(module.name)));
143
- }
144
- getModuleNameForFile(relativePath) {
145
- const parts = relativePath.split(path.sep);
146
- let groupName = 'Root Files';
147
- if (parts.length > 1) {
148
- groupName = parts[0];
149
- // Special handling for src files
150
- if (groupName === 'src' && parts.length > 2) {
151
- groupName = parts[1];
152
- }
153
- }
154
- return groupName;
155
- }
156
- getModuleKey(moduleName) {
157
- return moduleName.toLowerCase().replace(/\s+/g, '-');
158
- }
159
- getModuleGroups(repoStructure) {
160
- const groups = new Map();
161
- // Group files by their top-level directory or logical module
162
- repoStructure.files.forEach(file => {
163
- if (!this.fileMapper.isTextFile(file.path))
164
- return;
165
- const parts = file.relativePath.split(path.sep);
166
- let groupName = 'Root Files';
167
- if (parts.length > 1) {
168
- groupName = parts[0];
169
- // Special handling for src files
170
- if (groupName === 'src' && parts.length > 2) {
171
- groupName = parts[1];
172
- }
173
- }
174
- if (!groups.has(groupName)) {
175
- groups.set(groupName, []);
176
- }
177
- groups.get(groupName).push(file);
178
- });
179
- // Convert to ModuleGroup array with descriptions
180
- return Array.from(groups.entries()).map(([name, files]) => ({
181
- name: this.formatModuleName(name),
182
- description: this.getModuleDescription(name, files),
183
- files
184
- })).sort((a, b) => a.name.localeCompare(b.name));
185
- }
186
- formatModuleName(name) {
187
- return name
188
- .split(/[-_]/)
189
- .map(word => word.charAt(0).toUpperCase() + word.slice(1))
190
- .join(' ');
191
- }
192
- getModuleDescription(name, files) {
193
- const descriptions = {
194
- 'generators': 'Code generation utilities for documentation and agents',
195
- 'services': 'External service integrations and API clients',
196
- 'utils': 'Utility functions and helper modules',
197
- 'types': 'TypeScript type definitions and interfaces',
198
- 'Root Files': 'Main configuration and entry point files'
199
- };
200
- return descriptions[name] || `${this.formatModuleName(name)} module with ${files.length} files`;
201
- }
202
- async updateModuleDocumentation(module, repoStructure, docsDir, verbose) {
203
- const modulesDir = path.join(docsDir, 'modules');
204
- await fs.ensureDir(modulesDir);
205
- const fileName = `${this.slugify(module.name)}.md`;
206
- if (verbose) {
207
- console.log(chalk_1.default.blue(`šŸ“„ Updating modules/${fileName}...`));
208
- }
209
- const moduleDoc = await this.createModuleDocumentation(module, repoStructure);
210
- const modulePath = path.join(modulesDir, fileName);
211
- await fs.writeFile(modulePath, moduleDoc);
212
- if (verbose) {
213
- console.log(chalk_1.default.green(`āœ… Updated modules/${fileName}`));
214
- }
215
- return path.relative(docsDir, modulePath);
216
- }
217
- async createModuleDocumentation(module, _repoStructure) {
218
- const fileContents = [];
219
- for (const file of module.files.slice(0, 10)) { // Limit to prevent too large requests
220
- try {
221
- const content = await this.fileMapper.readFileContent(file.path);
222
- fileContents.push(`File: ${file.relativePath}\n${content.substring(0, 1000)}...`);
223
- }
224
- catch (error) {
225
- fileContents.push(`File: ${file.relativePath}\n[Error reading file: ${error}]`);
226
- }
227
- }
228
- const moduleContext = `Module: ${module.name}
229
- Description: ${module.description}
230
- Files: ${module.files.map(f => f.relativePath).join(', ')}
231
-
232
- Sample content from module files:
233
- ${fileContents.join('\n\n---\n\n')}`;
234
- const documentation = await this.llmClient.generateText(`Generate comprehensive documentation for this module. Include:
235
- 1. Module overview and purpose
236
- 2. Key components and their responsibilities
237
- 3. Public APIs and interfaces
238
- 4. Usage examples
239
- 5. Dependencies and relationships
240
-
241
- Module context:
242
- ${moduleContext}`, 'You are a technical documentation expert. Create clear, well-structured module documentation.');
243
- // Add metadata header
244
- const history = this.gitService.getFileHistory(module.files[0]?.relativePath || '', 1);
245
- const lastModified = history[0]?.date || new Date().toISOString();
246
- return `---
247
- module: ${module.name}
248
- files: ${module.files.length}
249
- last_modified: ${lastModified}
250
- generated: ${new Date().toISOString()}
251
- ---
252
-
253
- # ${module.name}
254
-
255
- ${documentation}
256
-
257
- ## Files in this module
258
-
259
- ${module.files.map(file => `- \`${file.relativePath}\` - ${this.formatBytes(file.size)}`).join('\n')}
260
-
261
- ---
262
- *Generated by AI Coders Context*
263
- `;
264
- }
265
- async cleanupEmptyModules(docsDir, repoStructure, verbose) {
266
- const modulesDir = path.join(docsDir, 'modules');
267
- if (!await fs.pathExists(modulesDir))
268
- return [];
269
- const existingModuleFiles = await fs.readdir(modulesDir);
270
- const currentModules = new Set(this.getModuleGroups(repoStructure).map(m => `${this.slugify(m.name)}.md`));
271
- const removedFiles = [];
272
- for (const moduleFile of existingModuleFiles) {
273
- if (!currentModules.has(moduleFile)) {
274
- const modulePath = path.join(modulesDir, moduleFile);
275
- await fs.remove(modulePath);
276
- removedFiles.push(path.join('modules', moduleFile));
277
- if (verbose) {
278
- console.log(chalk_1.default.red(`šŸ—‘ļø Removed empty module: ${moduleFile}`));
279
- }
280
- }
281
- }
282
- return removedFiles;
283
- }
284
- async updateOverviewDocuments(repoStructure, docsDir, verbose) {
285
- // Update project overview
286
- const overviewFileName = 'overview.md';
287
- if (verbose) {
288
- console.log(chalk_1.default.blue(`šŸ“„ Updating ${overviewFileName}...`));
289
- }
290
- const overview = await this.createEnhancedProjectOverview(repoStructure);
291
- const overviewPath = path.join(docsDir, overviewFileName);
292
- await fs.writeFile(overviewPath, overview);
293
- if (verbose) {
294
- console.log(chalk_1.default.green(`āœ… Updated ${overviewFileName}`));
295
- }
296
- // Update main README
297
- const indexFileName = 'README.md';
298
- if (verbose) {
299
- console.log(chalk_1.default.blue(`šŸ“„ Updating ${indexFileName}...`));
300
- }
301
- const indexContent = this.createDocumentationIndex(repoStructure);
302
- const indexPath = path.join(docsDir, indexFileName);
303
- await fs.writeFile(indexPath, indexContent);
304
- if (verbose) {
305
- console.log(chalk_1.default.green(`āœ… Updated ${indexFileName}`));
306
- }
307
- }
308
- displayChangeSummary(changes) {
309
- const total = changes.added.length + changes.modified.length + changes.deleted.length + changes.renamed.length;
310
- console.log(chalk_1.default.bold('\nšŸ“‹ Change Summary:'));
311
- console.log(chalk_1.default.gray('─'.repeat(50)));
312
- console.log(`${chalk_1.default.green('Added:')} ${changes.added.length} files`);
313
- console.log(`${chalk_1.default.yellow('Modified:')} ${changes.modified.length} files`);
314
- console.log(`${chalk_1.default.red('Deleted:')} ${changes.deleted.length} files`);
315
- console.log(`${chalk_1.default.blue('Renamed:')} ${changes.renamed.length} files`);
316
- console.log(`${chalk_1.default.bold('Total:')} ${total} changes`);
317
- console.log(chalk_1.default.gray('─'.repeat(50)) + '\n');
318
- }
319
- async createEnhancedProjectOverview(repoStructure) {
320
- const { files, directories, totalFiles, totalSize } = repoStructure;
321
- const branch = this.gitService.getBranchName();
322
- const lastCommit = this.gitService.getCurrentCommit().substring(0, 7);
323
- const extensions = new Map();
324
- files.forEach(file => {
325
- const ext = file.extension || 'no-extension';
326
- extensions.set(ext, (extensions.get(ext) || 0) + 1);
327
- });
328
- const topExtensions = Array.from(extensions.entries())
329
- .sort((a, b) => b[1] - a[1])
330
- .slice(0, 10);
331
- return `# Project Overview
332
-
333
- ## Git Information
334
- - **Branch**: ${branch}
335
- - **Last Commit**: ${lastCommit}
336
- - **Last Updated**: ${new Date().toISOString()}
337
-
338
- ## Project Statistics
339
- - **Total Files**: ${totalFiles}
340
- - **Total Directories**: ${directories.length}
341
- - **Total Size**: ${this.formatBytes(totalSize)}
342
-
343
- ## File Distribution
344
- ${topExtensions.map(([ext, count]) => `- **${ext}**: ${count} files (${((count / totalFiles) * 100).toFixed(1)}%)`).join('\n')}
345
-
346
- ---
347
- *Generated by AI Coders Context*
348
- *Incremental update: ${new Date().toISOString()}*
349
- `;
350
- }
351
- createDocumentationIndex(_repoStructure) {
352
- const state = this.gitService.getState();
353
- const branch = this.gitService.getBranchName();
354
- return `# Documentation Index
355
-
356
- This documentation was generated automatically from the codebase.
357
-
358
- ## Documentation Structure
359
-
360
- ### [Overview](./overview.md)
361
- High-level project overview, statistics, and git information.
362
-
363
- ### [Architecture](./architecture.md)
364
- System architecture, design patterns, and technical decisions.
365
-
366
- ### [Modules](./modules/)
367
- Detailed documentation organized by module and directory structure.
368
-
369
- ### [API Reference](./api-reference.md)
370
- Complete API documentation for all public interfaces.
371
-
372
- ### [Configuration](./configuration.md)
373
- Configuration options, environment variables, and setup guides.
374
-
375
- ## Generation Info
376
- - **Branch**: ${branch}
377
- - **Generated**: ${new Date().toISOString()}
378
- - **Last Processed Commit**: ${state?.lastCommit ? state.lastCommit.substring(0, 7) : 'None'}
379
-
380
- ---
381
- *Generated by AI Coders Context*
382
- `;
383
- }
384
- slugify(text) {
385
- return text
386
- .toLowerCase()
387
- .replace(/\s+/g, '-')
388
- .replace(/[^\w-]/g, '');
389
- }
390
- formatBytes(bytes) {
391
- if (bytes === 0)
392
- return '0 Bytes';
393
- const k = 1024;
394
- const sizes = ['Bytes', 'KB', 'MB', 'GB'];
395
- const i = Math.floor(Math.log(bytes) / Math.log(k));
396
- return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
397
- }
398
- }
399
- exports.IncrementalDocumentationGenerator = IncrementalDocumentationGenerator;
400
- //# sourceMappingURL=incrementalDocumentationGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"incrementalDocumentationGenerator.js","sourceRoot":"","sources":["../../src/generators/incrementalDocumentationGenerator.ts"],"names":[],"mappings":"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"}