@ai-coders/context 0.1.0 → 0.3.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 (234) hide show
  1. package/README.md +113 -580
  2. package/dist/generators/agents/agentConfig.d.ts +4 -0
  3. package/dist/generators/agents/agentConfig.d.ts.map +1 -0
  4. package/dist/generators/agents/agentConfig.js +138 -0
  5. package/dist/generators/agents/agentConfig.js.map +1 -0
  6. package/dist/generators/agents/agentGenerator.d.ts +10 -0
  7. package/dist/generators/agents/agentGenerator.d.ts.map +1 -0
  8. package/dist/generators/agents/agentGenerator.js +137 -0
  9. package/dist/generators/agents/agentGenerator.js.map +1 -0
  10. package/dist/generators/agents/agentTypes.d.ts +4 -0
  11. package/dist/generators/agents/agentTypes.d.ts.map +1 -0
  12. package/dist/generators/agents/agentTypes.js +22 -0
  13. package/dist/generators/agents/agentTypes.js.map +1 -0
  14. package/dist/generators/agents/contextUtils.d.ts +8 -0
  15. package/dist/generators/agents/contextUtils.d.ts.map +1 -0
  16. package/dist/generators/agents/contextUtils.js +15 -0
  17. package/dist/generators/agents/contextUtils.js.map +1 -0
  18. package/dist/generators/agents/index.d.ts +4 -0
  19. package/dist/generators/agents/index.d.ts.map +1 -0
  20. package/dist/generators/agents/index.js +12 -0
  21. package/dist/generators/agents/index.js.map +1 -0
  22. package/dist/generators/agents/promptFormatter.d.ts +9 -0
  23. package/dist/generators/agents/promptFormatter.d.ts.map +1 -0
  24. package/dist/generators/agents/promptFormatter.js +84 -0
  25. package/dist/generators/agents/promptFormatter.js.map +1 -0
  26. package/dist/generators/agents/templates/index.d.ts +4 -0
  27. package/dist/generators/agents/templates/index.d.ts.map +1 -0
  28. package/dist/generators/agents/templates/index.js +8 -0
  29. package/dist/generators/agents/templates/index.js.map +1 -0
  30. package/dist/generators/agents/templates/indexTemplate.d.ts +3 -0
  31. package/dist/generators/agents/templates/indexTemplate.d.ts.map +1 -0
  32. package/dist/generators/agents/templates/indexTemplate.js +35 -0
  33. package/dist/generators/agents/templates/indexTemplate.js.map +1 -0
  34. package/dist/generators/agents/templates/playbookTemplate.d.ts +4 -0
  35. package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -0
  36. package/dist/generators/agents/templates/playbookTemplate.js +63 -0
  37. package/dist/generators/agents/templates/playbookTemplate.js.map +1 -0
  38. package/dist/generators/agents/templates/types.d.ts +14 -0
  39. package/dist/generators/agents/templates/types.d.ts.map +1 -0
  40. package/dist/generators/agents/templates/types.js +3 -0
  41. package/dist/generators/agents/templates/types.js.map +1 -0
  42. package/dist/generators/analyzers/codebaseAnalyzer.d.ts +45 -0
  43. package/dist/generators/analyzers/codebaseAnalyzer.d.ts.map +1 -0
  44. package/dist/generators/analyzers/codebaseAnalyzer.js +293 -0
  45. package/dist/generators/analyzers/codebaseAnalyzer.js.map +1 -0
  46. package/dist/generators/analyzers/index.d.ts +3 -0
  47. package/dist/generators/analyzers/index.d.ts.map +1 -0
  48. package/dist/generators/analyzers/index.js +6 -0
  49. package/dist/generators/analyzers/index.js.map +1 -0
  50. package/dist/generators/documentation/documentationGenerator.d.ts +13 -0
  51. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -0
  52. package/dist/generators/documentation/documentationGenerator.js +115 -0
  53. package/dist/generators/documentation/documentationGenerator.js.map +1 -0
  54. package/dist/generators/documentation/documentationTemplates.d.ts +21 -0
  55. package/dist/generators/documentation/documentationTemplates.d.ts.map +1 -0
  56. package/dist/generators/documentation/documentationTemplates.js +359 -0
  57. package/dist/generators/documentation/documentationTemplates.js.map +1 -0
  58. package/dist/generators/documentation/documentationTypes.d.ts +11 -0
  59. package/dist/generators/documentation/documentationTypes.d.ts.map +1 -0
  60. package/dist/generators/documentation/documentationTypes.js +22 -0
  61. package/dist/generators/documentation/documentationTypes.js.map +1 -0
  62. package/dist/generators/documentation/documentationUtils.d.ts +7 -0
  63. package/dist/generators/documentation/documentationUtils.d.ts.map +1 -0
  64. package/dist/generators/documentation/documentationUtils.js +28 -0
  65. package/dist/generators/documentation/documentationUtils.js.map +1 -0
  66. package/dist/generators/documentation/guideRegistry.d.ts +6 -0
  67. package/dist/generators/documentation/guideRegistry.d.ts.map +1 -0
  68. package/dist/generators/documentation/guideRegistry.js +82 -0
  69. package/dist/generators/documentation/guideRegistry.js.map +1 -0
  70. package/dist/generators/{incrementalDocumentationGenerator.d.ts → documentation/incrementalDocumentationGenerator.d.ts} +4 -4
  71. package/dist/generators/documentation/incrementalDocumentationGenerator.d.ts.map +1 -0
  72. package/dist/generators/documentation/incrementalDocumentationGenerator.js.map +1 -0
  73. package/dist/generators/documentation/index.d.ts +2 -0
  74. package/dist/generators/documentation/index.d.ts.map +1 -0
  75. package/dist/generators/documentation/index.js +6 -0
  76. package/dist/generators/documentation/index.js.map +1 -0
  77. package/dist/generators/documentation/templates/architectureTemplate.d.ts +3 -0
  78. package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -0
  79. package/dist/generators/documentation/templates/architectureTemplate.js +66 -0
  80. package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -0
  81. package/dist/generators/documentation/templates/common.d.ts +7 -0
  82. package/dist/generators/documentation/templates/common.d.ts.map +1 -0
  83. package/dist/generators/documentation/templates/common.js +58 -0
  84. package/dist/generators/documentation/templates/common.js.map +1 -0
  85. package/dist/generators/documentation/templates/dataFlowTemplate.d.ts +3 -0
  86. package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +1 -0
  87. package/dist/generators/documentation/templates/dataFlowTemplate.js +55 -0
  88. package/dist/generators/documentation/templates/dataFlowTemplate.js.map +1 -0
  89. package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts +2 -0
  90. package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +1 -0
  91. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +59 -0
  92. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -0
  93. package/dist/generators/documentation/templates/frontMatter.d.ts +11 -0
  94. package/dist/generators/documentation/templates/frontMatter.d.ts.map +1 -0
  95. package/dist/generators/documentation/templates/frontMatter.js +29 -0
  96. package/dist/generators/documentation/templates/frontMatter.js.map +1 -0
  97. package/dist/generators/documentation/templates/glossaryTemplate.d.ts +3 -0
  98. package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -0
  99. package/dist/generators/documentation/templates/glossaryTemplate.js +55 -0
  100. package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -0
  101. package/dist/generators/documentation/templates/index.d.ts +11 -0
  102. package/dist/generators/documentation/templates/index.d.ts.map +1 -0
  103. package/dist/generators/documentation/templates/index.js +22 -0
  104. package/dist/generators/documentation/templates/index.js.map +1 -0
  105. package/dist/generators/documentation/templates/indexTemplate.d.ts +3 -0
  106. package/dist/generators/documentation/templates/indexTemplate.d.ts.map +1 -0
  107. package/dist/generators/documentation/templates/indexTemplate.js +56 -0
  108. package/dist/generators/documentation/templates/indexTemplate.js.map +1 -0
  109. package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts +3 -0
  110. package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +1 -0
  111. package/dist/generators/documentation/templates/projectOverviewTemplate.js +68 -0
  112. package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +1 -0
  113. package/dist/generators/documentation/templates/securityTemplate.d.ts +2 -0
  114. package/dist/generators/documentation/templates/securityTemplate.d.ts.map +1 -0
  115. package/dist/generators/documentation/templates/securityTemplate.js +53 -0
  116. package/dist/generators/documentation/templates/securityTemplate.js.map +1 -0
  117. package/dist/generators/documentation/templates/testingTemplate.d.ts +2 -0
  118. package/dist/generators/documentation/templates/testingTemplate.d.ts.map +1 -0
  119. package/dist/generators/documentation/templates/testingTemplate.js +59 -0
  120. package/dist/generators/documentation/templates/testingTemplate.js.map +1 -0
  121. package/dist/generators/documentation/templates/toolingTemplate.d.ts +2 -0
  122. package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +1 -0
  123. package/dist/generators/documentation/templates/toolingTemplate.js +56 -0
  124. package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -0
  125. package/dist/generators/documentation/templates/types.d.ts +23 -0
  126. package/dist/generators/documentation/templates/types.d.ts.map +1 -0
  127. package/dist/generators/documentation/templates/types.js +3 -0
  128. package/dist/generators/documentation/templates/types.js.map +1 -0
  129. package/dist/generators/documentation/templates.d.ts +31 -0
  130. package/dist/generators/documentation/templates.d.ts.map +1 -0
  131. package/dist/generators/documentation/templates.js +566 -0
  132. package/dist/generators/documentation/templates.js.map +1 -0
  133. package/dist/generators/guidelines/agentIntegration.d.ts +43 -0
  134. package/dist/generators/guidelines/agentIntegration.d.ts.map +1 -0
  135. package/dist/generators/guidelines/agentIntegration.js +157 -0
  136. package/dist/generators/guidelines/agentIntegration.js.map +1 -0
  137. package/dist/generators/guidelines/guidelineTypes.d.ts +40 -0
  138. package/dist/generators/guidelines/guidelineTypes.d.ts.map +1 -0
  139. package/dist/generators/guidelines/guidelineTypes.js +144 -0
  140. package/dist/generators/guidelines/guidelineTypes.js.map +1 -0
  141. package/dist/generators/guidelines/guidelinesAnalyzer.d.ts +30 -0
  142. package/dist/generators/guidelines/guidelinesAnalyzer.d.ts.map +1 -0
  143. package/dist/generators/guidelines/guidelinesAnalyzer.js +263 -0
  144. package/dist/generators/guidelines/guidelinesAnalyzer.js.map +1 -0
  145. package/dist/generators/guidelines/guidelinesGenerator.d.ts +30 -0
  146. package/dist/generators/guidelines/guidelinesGenerator.d.ts.map +1 -0
  147. package/dist/generators/guidelines/guidelinesGenerator.js +249 -0
  148. package/dist/generators/guidelines/guidelinesGenerator.js.map +1 -0
  149. package/dist/generators/guidelines/guidelinesTemplates.d.ts +23 -0
  150. package/dist/generators/guidelines/guidelinesTemplates.d.ts.map +1 -0
  151. package/dist/generators/guidelines/guidelinesTemplates.js +304 -0
  152. package/dist/generators/guidelines/guidelinesTemplates.js.map +1 -0
  153. package/dist/generators/guidelines/index.d.ts +6 -0
  154. package/dist/generators/guidelines/index.d.ts.map +1 -0
  155. package/dist/generators/guidelines/index.js +16 -0
  156. package/dist/generators/guidelines/index.js.map +1 -0
  157. package/dist/generators/moduleGrouper.d.ts +14 -0
  158. package/dist/generators/moduleGrouper.d.ts.map +1 -0
  159. package/dist/generators/moduleGrouper.js +82 -0
  160. package/dist/generators/moduleGrouper.js.map +1 -0
  161. package/dist/generators/plans/index.d.ts +2 -0
  162. package/dist/generators/plans/index.d.ts.map +1 -0
  163. package/dist/generators/plans/index.js +6 -0
  164. package/dist/generators/plans/index.js.map +1 -0
  165. package/dist/generators/plans/planGenerator.d.ts +22 -0
  166. package/dist/generators/plans/planGenerator.d.ts.map +1 -0
  167. package/dist/generators/plans/planGenerator.js +109 -0
  168. package/dist/generators/plans/planGenerator.js.map +1 -0
  169. package/dist/generators/plans/templates/indexTemplate.d.ts +3 -0
  170. package/dist/generators/plans/templates/indexTemplate.d.ts.map +1 -0
  171. package/dist/generators/plans/templates/indexTemplate.js +36 -0
  172. package/dist/generators/plans/templates/indexTemplate.js.map +1 -0
  173. package/dist/generators/plans/templates/planTemplate.d.ts +3 -0
  174. package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -0
  175. package/dist/generators/plans/templates/planTemplate.js +83 -0
  176. package/dist/generators/plans/templates/planTemplate.js.map +1 -0
  177. package/dist/generators/plans/templates/types.d.ts +19 -0
  178. package/dist/generators/plans/templates/types.d.ts.map +1 -0
  179. package/dist/generators/plans/templates/types.js +3 -0
  180. package/dist/generators/plans/templates/types.js.map +1 -0
  181. package/dist/generators/projectAnalyzer.d.ts +14 -0
  182. package/dist/generators/projectAnalyzer.d.ts.map +1 -0
  183. package/dist/generators/projectAnalyzer.js +217 -0
  184. package/dist/generators/projectAnalyzer.js.map +1 -0
  185. package/dist/generators/shared/contextGenerator.d.ts +7 -0
  186. package/dist/generators/shared/contextGenerator.d.ts.map +1 -0
  187. package/dist/generators/shared/contextGenerator.js +13 -0
  188. package/dist/generators/shared/contextGenerator.js.map +1 -0
  189. package/dist/generators/shared/directoryTemplateHelpers.d.ts +2 -0
  190. package/dist/generators/shared/directoryTemplateHelpers.d.ts.map +1 -0
  191. package/dist/generators/shared/directoryTemplateHelpers.js +12 -0
  192. package/dist/generators/shared/directoryTemplateHelpers.js.map +1 -0
  193. package/dist/generators/shared/generatorUtils.d.ts +16 -0
  194. package/dist/generators/shared/generatorUtils.d.ts.map +1 -0
  195. package/dist/generators/shared/generatorUtils.js +119 -0
  196. package/dist/generators/shared/generatorUtils.js.map +1 -0
  197. package/dist/generators/shared/index.d.ts +4 -0
  198. package/dist/generators/shared/index.d.ts.map +1 -0
  199. package/dist/generators/shared/index.js +10 -0
  200. package/dist/generators/shared/index.js.map +1 -0
  201. package/dist/index.d.ts +6 -3
  202. package/dist/index.d.ts.map +1 -1
  203. package/dist/index.js +1327 -419
  204. package/dist/index.js.map +1 -1
  205. package/dist/utils/cliUI.d.ts +6 -4
  206. package/dist/utils/cliUI.d.ts.map +1 -1
  207. package/dist/utils/cliUI.js +71 -56
  208. package/dist/utils/cliUI.js.map +1 -1
  209. package/dist/utils/i18n.d.ts +181 -0
  210. package/dist/utils/i18n.d.ts.map +1 -0
  211. package/dist/utils/i18n.js +401 -0
  212. package/dist/utils/i18n.js.map +1 -0
  213. package/dist/utils/interactiveMode.d.ts +6 -1
  214. package/dist/utils/interactiveMode.d.ts.map +1 -1
  215. package/dist/utils/interactiveMode.js +375 -70
  216. package/dist/utils/interactiveMode.js.map +1 -1
  217. package/dist/utils/tokenEstimator.d.ts +10 -9
  218. package/dist/utils/tokenEstimator.d.ts.map +1 -1
  219. package/dist/utils/tokenEstimator.js +45 -109
  220. package/dist/utils/tokenEstimator.js.map +1 -1
  221. package/package.json +26 -23
  222. package/prompts/update_plan_prompt.md +42 -0
  223. package/prompts/update_scaffold_prompt.md +48 -0
  224. package/dist/generators/agentGenerator.d.ts +0 -23
  225. package/dist/generators/agentGenerator.d.ts.map +0 -1
  226. package/dist/generators/agentGenerator.js +0 -357
  227. package/dist/generators/agentGenerator.js.map +0 -1
  228. package/dist/generators/documentationGenerator.d.ts +0 -40
  229. package/dist/generators/documentationGenerator.d.ts.map +0 -1
  230. package/dist/generators/documentationGenerator.js +0 -786
  231. package/dist/generators/documentationGenerator.js.map +0 -1
  232. package/dist/generators/incrementalDocumentationGenerator.d.ts.map +0 -1
  233. package/dist/generators/incrementalDocumentationGenerator.js.map +0 -1
  234. /package/dist/generators/{incrementalDocumentationGenerator.js → documentation/incrementalDocumentationGenerator.js} +0 -0
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderAgentPlaybook = renderAgentPlaybook;
4
+ const agentConfig_1 = require("../agentConfig");
5
+ const directoryTemplateHelpers_1 = require("../../shared/directoryTemplateHelpers");
6
+ function renderAgentPlaybook(agentType, topLevelDirectories, touchpoints) {
7
+ const title = formatTitle(agentType);
8
+ const responsibilities = agentConfig_1.AGENT_RESPONSIBILITIES[agentType] || ['Clarify this agent\'s responsibilities.'];
9
+ const bestPractices = agentConfig_1.AGENT_BEST_PRACTICES[agentType] || ['Document preferred workflows.'];
10
+ const directoryList = (0, directoryTemplateHelpers_1.formatDirectoryList)(topLevelDirectories);
11
+ const touchpointList = touchpoints
12
+ .map(tp => `- [${tp.title}](${tp.path}) — ${tp.marker}`)
13
+ .join('\n');
14
+ return `# ${title} Agent Playbook
15
+
16
+ ## Mission
17
+ Describe how the ${title.toLowerCase()} agent supports the team and when to engage it.
18
+
19
+ ## Responsibilities
20
+ ${formatList(responsibilities)}
21
+
22
+ ## Best Practices
23
+ ${formatList(bestPractices)}
24
+
25
+ ## Key Project Resources
26
+ - Documentation index: [docs/README.md](../docs/README.md)
27
+ - Agent handbook: [agents/README.md](./README.md)
28
+ - Contributor guide: [AGENTS.md](../AGENTS.md)
29
+
30
+ ## Repository Starting Points
31
+ ${directoryList || '- Add directory highlights relevant to this agent.'}
32
+
33
+ ## Documentation Touchpoints
34
+ ${touchpointList}
35
+
36
+ ## Collaboration Checklist
37
+ 1. Confirm assumptions with issue reporters or maintainers.
38
+ 2. Review open pull requests affecting this area.
39
+ 3. Update the relevant doc section listed above and remove any resolved \`ai-slot\` placeholders.
40
+ 4. Capture learnings back in [docs/README.md](../docs/README.md) or the appropriate task marker.
41
+
42
+ ## Hand-off Notes
43
+ Summarize outcomes, remaining risks, and suggested follow-up actions after the agent completes its work.
44
+
45
+ ## Evidence to Capture
46
+ - Reference commits, issues, or ADRs used to justify updates.
47
+ - Command output or logs that informed recommendations.
48
+ - Follow-up items for maintainers or future agent runs.
49
+ `;
50
+ }
51
+ function formatTitle(agentType) {
52
+ return agentType
53
+ .split('-')
54
+ .map(segment => segment.charAt(0).toUpperCase() + segment.slice(1))
55
+ .join(' ');
56
+ }
57
+ function formatList(items) {
58
+ if (!items.length) {
59
+ return '- _No entries defined yet._';
60
+ }
61
+ return items.map(item => `- ${item}`).join('\n');
62
+ }
63
+ //# sourceMappingURL=playbookTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playbookTemplate.js","sourceRoot":"","sources":["../../../../src/generators/agents/templates/playbookTemplate.ts"],"names":[],"mappings":";;AAKA,kDAkDC;AAvDD,gDAA8E;AAE9E,oFAA4E;AAG5E,SAAgB,mBAAmB,CACjC,SAAoB,EACpB,mBAA6B,EAC7B,WAA4B;IAE5B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,oCAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAC1G,MAAM,aAAa,GAAG,kCAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC3F,MAAM,aAAa,GAAG,IAAA,8CAAmB,EAAC,mBAAmB,CAAC,CAAC;IAE/D,MAAM,cAAc,GAAG,WAAW;SAC/B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,KAAK,KAAK;;;mBAGA,KAAK,CAAC,WAAW,EAAE;;;EAGpC,UAAU,CAAC,gBAAgB,CAAC;;;EAG5B,UAAU,CAAC,aAAa,CAAC;;;;;;;;EAQzB,aAAa,IAAI,oDAAoD;;;EAGrE,cAAc;;;;;;;;;;;;;;;CAef,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACpC,OAAO,SAAS;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAe;IACjC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { AgentType } from '../agentTypes';
2
+ export interface DocTouchpoint {
3
+ title: string;
4
+ path: string;
5
+ marker: string;
6
+ }
7
+ export interface AgentTemplateContext {
8
+ agentType: AgentType;
9
+ topLevelDirectories: string[];
10
+ docTouchpoints: DocTouchpoint[];
11
+ responsibilities: string[];
12
+ bestPractices: string[];
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/generators/agents/templates/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/generators/agents/templates/types.ts"],"names":[],"mappings":""}
@@ -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"}
@@ -0,0 +1,293 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodebaseAnalyzer = void 0;
4
+ class CodebaseAnalyzer {
5
+ constructor(fileMapper) {
6
+ this.fileMapper = fileMapper;
7
+ }
8
+ async analyzeArchitecturalPatterns(repoStructure, moduleGroups) {
9
+ const patterns = [];
10
+ // Analyze directory structure for common patterns
11
+ const directories = this.getDirectoryStructure(repoStructure);
12
+ // Check for MVC pattern
13
+ if (this.hasMVCStructure(directories)) {
14
+ patterns.push({
15
+ name: 'Model-View-Controller (MVC)',
16
+ description: 'Separation of concerns into models, views, and controllers',
17
+ evidence: this.getMVCEvidence(directories),
18
+ confidence: 0.8
19
+ });
20
+ }
21
+ // Check for layered architecture
22
+ if (this.hasLayeredArchitecture(directories)) {
23
+ patterns.push({
24
+ name: 'Layered Architecture',
25
+ description: 'Organized into distinct layers (services, controllers, models, etc.)',
26
+ evidence: this.getLayeredEvidence(directories),
27
+ confidence: 0.7
28
+ });
29
+ }
30
+ // Check for modular architecture
31
+ if (this.hasModularStructure(moduleGroups)) {
32
+ patterns.push({
33
+ name: 'Modular Architecture',
34
+ description: 'Code organized into distinct, cohesive modules',
35
+ evidence: this.getModularEvidence(moduleGroups),
36
+ confidence: 0.9
37
+ });
38
+ }
39
+ // Check for microservices indicators
40
+ if (this.hasMicroservicesIndicators(repoStructure)) {
41
+ patterns.push({
42
+ name: 'Microservices Architecture',
43
+ description: 'Multiple independent services with clear boundaries',
44
+ evidence: this.getMicroservicesEvidence(repoStructure),
45
+ confidence: 0.6
46
+ });
47
+ }
48
+ return patterns;
49
+ }
50
+ async analyzeCodePatterns(repoStructure) {
51
+ const patterns = [];
52
+ const sampleFiles = repoStructure.files.slice(0, 20); // Analyze sample for patterns
53
+ for (const file of sampleFiles) {
54
+ try {
55
+ const content = await this.fileMapper.readFileContent(file.path);
56
+ // Look for common patterns
57
+ patterns.push(...this.detectDesignPatterns(content, file));
58
+ patterns.push(...this.detectNamingPatterns(content, file));
59
+ patterns.push(...this.detectErrorHandlingPatterns(content, file));
60
+ }
61
+ catch (error) {
62
+ // Skip files that can't be read
63
+ }
64
+ }
65
+ return this.consolidatePatterns(patterns);
66
+ }
67
+ analyzeDependencyFlow(repoStructure, moduleGroups) {
68
+ const flows = [];
69
+ // Analyze module-to-module dependencies
70
+ for (const module of moduleGroups) {
71
+ for (const otherModule of moduleGroups) {
72
+ if (module.name !== otherModule.name) {
73
+ const strength = this.calculateDependencyStrength(module, otherModule);
74
+ if (strength > 0) {
75
+ flows.push({
76
+ from: module.name,
77
+ to: otherModule.name,
78
+ type: 'import',
79
+ strength
80
+ });
81
+ }
82
+ }
83
+ }
84
+ }
85
+ return flows.sort((a, b) => b.strength - a.strength);
86
+ }
87
+ identifyExtensionPoints(repoStructure) {
88
+ const extensionPoints = [];
89
+ const directories = this.getDirectoryStructure(repoStructure);
90
+ // Common extension point patterns
91
+ if (directories.includes('plugins')) {
92
+ extensionPoints.push('Plugin system in /plugins directory');
93
+ }
94
+ if (directories.includes('extensions')) {
95
+ extensionPoints.push('Extension system in /extensions directory');
96
+ }
97
+ if (directories.includes('hooks')) {
98
+ extensionPoints.push('Hook system in /hooks directory');
99
+ }
100
+ if (directories.includes('middleware')) {
101
+ extensionPoints.push('Middleware system in /middleware directory');
102
+ }
103
+ if (directories.includes('generators')) {
104
+ extensionPoints.push('Generator system in /generators directory');
105
+ }
106
+ // Look for interface/abstract patterns
107
+ const interfaceFiles = repoStructure.files.filter(f => f.relativePath.includes('interface') ||
108
+ f.relativePath.includes('abstract') ||
109
+ f.relativePath.includes('base'));
110
+ if (interfaceFiles.length > 0) {
111
+ extensionPoints.push(`Interface-based extension points: ${interfaceFiles.slice(0, 3).map(f => f.relativePath).join(', ')}`);
112
+ }
113
+ return extensionPoints;
114
+ }
115
+ getDirectoryStructure(repoStructure) {
116
+ return [...new Set(repoStructure.files
117
+ .map(f => f.relativePath.split('/')[0])
118
+ .filter(dir => !dir.includes('.')))];
119
+ }
120
+ hasMVCStructure(directories) {
121
+ const mvcPatterns = ['models', 'views', 'controllers'];
122
+ return mvcPatterns.filter(pattern => directories.some(dir => dir.toLowerCase().includes(pattern))).length >= 2;
123
+ }
124
+ getMVCEvidence(directories) {
125
+ const evidence = [];
126
+ if (directories.some(d => d.toLowerCase().includes('model'))) {
127
+ evidence.push('Models directory found');
128
+ }
129
+ if (directories.some(d => d.toLowerCase().includes('view'))) {
130
+ evidence.push('Views directory found');
131
+ }
132
+ if (directories.some(d => d.toLowerCase().includes('controller'))) {
133
+ evidence.push('Controllers directory found');
134
+ }
135
+ return evidence;
136
+ }
137
+ hasLayeredArchitecture(directories) {
138
+ const layers = ['services', 'controllers', 'models', 'repositories', 'utils'];
139
+ return layers.filter(layer => directories.some(dir => dir.toLowerCase().includes(layer))).length >= 3;
140
+ }
141
+ getLayeredEvidence(directories) {
142
+ const layers = ['services', 'controllers', 'models', 'repositories', 'utils', 'middleware'];
143
+ return layers
144
+ .filter(layer => directories.some(dir => dir.toLowerCase().includes(layer)))
145
+ .map(layer => `${layer.charAt(0).toUpperCase() + layer.slice(1)} layer found`);
146
+ }
147
+ hasModularStructure(moduleGroups) {
148
+ return moduleGroups.length > 2 &&
149
+ moduleGroups.every(m => m.files.length > 1) &&
150
+ moduleGroups.some(m => m.files.length > 3);
151
+ }
152
+ getModularEvidence(moduleGroups) {
153
+ return [
154
+ `${moduleGroups.length} distinct modules identified`,
155
+ `Average module size: ${Math.round(moduleGroups.reduce((sum, m) => sum + m.files.length, 0) / moduleGroups.length)} files`,
156
+ `Largest module: ${moduleGroups.reduce((max, m) => m.files.length > max.files.length ? m : max).name}`
157
+ ];
158
+ }
159
+ hasMicroservicesIndicators(repoStructure) {
160
+ const indicators = [
161
+ repoStructure.files.some(f => f.relativePath.includes('docker')),
162
+ repoStructure.files.some(f => f.relativePath.includes('k8s') || f.relativePath.includes('kubernetes')),
163
+ repoStructure.files.some(f => f.relativePath.includes('service')),
164
+ repoStructure.files.some(f => f.relativePath.includes('api'))
165
+ ];
166
+ return indicators.filter(Boolean).length >= 2;
167
+ }
168
+ getMicroservicesEvidence(repoStructure) {
169
+ const evidence = [];
170
+ if (repoStructure.files.some(f => f.relativePath.includes('docker'))) {
171
+ evidence.push('Docker configuration found');
172
+ }
173
+ if (repoStructure.files.some(f => f.relativePath.includes('k8s'))) {
174
+ evidence.push('Kubernetes configuration found');
175
+ }
176
+ if (repoStructure.files.some(f => f.relativePath.includes('service'))) {
177
+ evidence.push('Service-oriented file structure');
178
+ }
179
+ return evidence;
180
+ }
181
+ detectDesignPatterns(content, file) {
182
+ const patterns = [];
183
+ // Factory pattern
184
+ if (content.includes('createFactory') || content.includes('Factory') || content.match(/create\w+/g)) {
185
+ patterns.push({
186
+ type: 'Design Pattern',
187
+ pattern: 'Factory Pattern',
188
+ description: 'Object creation through factory methods',
189
+ examples: [file.relativePath],
190
+ frequency: 1
191
+ });
192
+ }
193
+ // Observer pattern
194
+ if (content.includes('addEventListener') || content.includes('subscribe') || content.includes('emit')) {
195
+ patterns.push({
196
+ type: 'Design Pattern',
197
+ pattern: 'Observer Pattern',
198
+ description: 'Event-driven communication between objects',
199
+ examples: [file.relativePath],
200
+ frequency: 1
201
+ });
202
+ }
203
+ // Singleton pattern
204
+ if (content.includes('getInstance') || content.match(/private\s+constructor/)) {
205
+ patterns.push({
206
+ type: 'Design Pattern',
207
+ pattern: 'Singleton Pattern',
208
+ description: 'Single instance object creation',
209
+ examples: [file.relativePath],
210
+ frequency: 1
211
+ });
212
+ }
213
+ return patterns;
214
+ }
215
+ detectNamingPatterns(content, file) {
216
+ const patterns = [];
217
+ // Check for naming conventions
218
+ if (content.match(/\bI[A-Z]\w+/g)) {
219
+ patterns.push({
220
+ type: 'Naming Convention',
221
+ pattern: 'Interface Prefix',
222
+ description: 'Interfaces prefixed with "I"',
223
+ examples: [file.relativePath],
224
+ frequency: 1
225
+ });
226
+ }
227
+ if (content.match(/\b\w+Service\b/g)) {
228
+ patterns.push({
229
+ type: 'Naming Convention',
230
+ pattern: 'Service Suffix',
231
+ description: 'Services suffixed with "Service"',
232
+ examples: [file.relativePath],
233
+ frequency: 1
234
+ });
235
+ }
236
+ return patterns;
237
+ }
238
+ detectErrorHandlingPatterns(content, file) {
239
+ const patterns = [];
240
+ if (content.includes('try') && content.includes('catch')) {
241
+ patterns.push({
242
+ type: 'Error Handling',
243
+ pattern: 'Try-Catch Blocks',
244
+ description: 'Structured error handling with try-catch',
245
+ examples: [file.relativePath],
246
+ frequency: 1
247
+ });
248
+ }
249
+ if (content.includes('throw new') || content.includes('throw Error')) {
250
+ patterns.push({
251
+ type: 'Error Handling',
252
+ pattern: 'Custom Exceptions',
253
+ description: 'Custom error throwing patterns',
254
+ examples: [file.relativePath],
255
+ frequency: 1
256
+ });
257
+ }
258
+ return patterns;
259
+ }
260
+ consolidatePatterns(patterns) {
261
+ const consolidated = new Map();
262
+ for (const pattern of patterns) {
263
+ const key = `${pattern.type}:${pattern.pattern}`;
264
+ if (consolidated.has(key)) {
265
+ const existing = consolidated.get(key);
266
+ existing.frequency += pattern.frequency;
267
+ existing.examples.push(...pattern.examples);
268
+ }
269
+ else {
270
+ consolidated.set(key, { ...pattern });
271
+ }
272
+ }
273
+ return Array.from(consolidated.values())
274
+ .sort((a, b) => b.frequency - a.frequency)
275
+ .slice(0, 10); // Top 10 patterns
276
+ }
277
+ calculateDependencyStrength(moduleA, moduleB) {
278
+ // Simple heuristic: check if moduleA files reference moduleB
279
+ let strength = 0;
280
+ // Check for direct path references
281
+ for (const fileA of moduleA.files) {
282
+ for (const fileB of moduleB.files) {
283
+ const bPath = fileB.relativePath.replace(/\.[^/.]+$/, ''); // Remove extension
284
+ if (fileA.relativePath.includes(bPath) || bPath.includes(fileA.relativePath.replace(/\.[^/.]+$/, ''))) {
285
+ strength += 0.1;
286
+ }
287
+ }
288
+ }
289
+ return Math.min(strength, 1.0); // Cap at 1.0
290
+ }
291
+ }
292
+ exports.CodebaseAnalyzer = CodebaseAnalyzer;
293
+ //# sourceMappingURL=codebaseAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codebaseAnalyzer.js","sourceRoot":"","sources":["../../../src/generators/analyzers/codebaseAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { CodebaseAnalyzer } from './codebaseAnalyzer';
2
+ export type { ArchitecturalPattern, CodePattern, DependencyFlow } from './codebaseAnalyzer';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/analyzers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,cAAc,EACf,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodebaseAnalyzer = void 0;
4
+ var codebaseAnalyzer_1 = require("./codebaseAnalyzer");
5
+ Object.defineProperty(exports, "CodebaseAnalyzer", { enumerable: true, get: function () { return codebaseAnalyzer_1.CodebaseAnalyzer; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/analyzers/index.ts"],"names":[],"mappings":";;;AAAA,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,13 @@
1
+ import { RepoStructure } from '../../types';
2
+ interface DocumentationGenerationConfig {
3
+ selectedDocs?: string[];
4
+ }
5
+ export declare class DocumentationGenerator {
6
+ private readonly guides;
7
+ constructor(..._legacyArgs: unknown[]);
8
+ generateDocumentation(repoStructure: RepoStructure, outputDir: string, config?: DocumentationGenerationConfig, verbose?: boolean): Promise<number>;
9
+ private buildContext;
10
+ private getDocSections;
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=documentationGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentationGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/documentation/documentationGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAsB5C,UAAU,6BAA6B;IACrC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE3C,GAAG,WAAW,EAAE,OAAO,EAAE;IAE/B,qBAAqB,CACzB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,6BAAkC,EAC1C,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,MAAM,CAAC;IAmBlB,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,cAAc;CAiCvB"}
@@ -0,0 +1,115 @@
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.DocumentationGenerator = void 0;
37
+ const path = __importStar(require("path"));
38
+ const shared_1 = require("../shared");
39
+ const templates_1 = require("./templates");
40
+ const guideRegistry_1 = require("./guideRegistry");
41
+ class DocumentationGenerator {
42
+ constructor(..._legacyArgs) {
43
+ this.guides = guideRegistry_1.DOCUMENT_GUIDES;
44
+ }
45
+ async generateDocumentation(repoStructure, outputDir, config = {}, verbose = false) {
46
+ const docsDir = path.join(outputDir, 'docs');
47
+ await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, 'Generating documentation scaffold in');
48
+ const guidesToGenerate = (0, guideRegistry_1.getGuidesByKeys)(config.selectedDocs);
49
+ const context = this.buildContext(repoStructure, guidesToGenerate);
50
+ const sections = this.getDocSections(guidesToGenerate);
51
+ let created = 0;
52
+ for (const section of sections) {
53
+ const targetPath = path.join(docsDir, section.fileName);
54
+ const content = section.content(context);
55
+ await shared_1.GeneratorUtils.writeFileWithLogging(targetPath, content, verbose, `Created ${section.fileName}`);
56
+ created += 1;
57
+ }
58
+ return created;
59
+ }
60
+ buildContext(repoStructure, guides) {
61
+ const directorySet = new Set();
62
+ repoStructure.directories.forEach(dir => {
63
+ const [firstSegment] = dir.relativePath.split(/[\\/]/).filter(Boolean);
64
+ if (firstSegment) {
65
+ directorySet.add(firstSegment);
66
+ }
67
+ });
68
+ const topLevelDirectories = Array.from(directorySet).sort();
69
+ const directoryStats = topLevelDirectories.map(name => ({
70
+ name,
71
+ fileCount: repoStructure.files.filter(file => file.relativePath.startsWith(`${name}/`)).length
72
+ }));
73
+ const primaryLanguages = shared_1.GeneratorUtils.getTopFileExtensions(repoStructure, 5)
74
+ .filter(([ext]) => !!ext)
75
+ .map(([extension, count]) => ({ extension, count }));
76
+ return {
77
+ repoStructure,
78
+ topLevelDirectories,
79
+ primaryLanguages,
80
+ directoryStats,
81
+ guides
82
+ };
83
+ }
84
+ getDocSections(guides) {
85
+ const sections = [
86
+ {
87
+ fileName: 'README.md',
88
+ content: context => (0, templates_1.renderIndex)(context)
89
+ }
90
+ ];
91
+ const renderMap = {
92
+ 'project-overview': templates_1.renderProjectOverview,
93
+ architecture: templates_1.renderArchitectureNotes,
94
+ 'development-workflow': () => (0, templates_1.renderDevelopmentWorkflow)(),
95
+ 'testing-strategy': () => (0, templates_1.renderTestingStrategy)(),
96
+ glossary: templates_1.renderGlossary,
97
+ 'data-flow': templates_1.renderDataFlow,
98
+ security: () => (0, templates_1.renderSecurity)(),
99
+ tooling: () => (0, templates_1.renderToolingGuide)()
100
+ };
101
+ guides.forEach(guide => {
102
+ const renderer = renderMap[guide.key];
103
+ if (!renderer) {
104
+ return;
105
+ }
106
+ sections.push({
107
+ fileName: guide.file,
108
+ content: renderer
109
+ });
110
+ });
111
+ return sections;
112
+ }
113
+ }
114
+ exports.DocumentationGenerator = DocumentationGenerator;
115
+ //# sourceMappingURL=documentationGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentationGenerator.js","sourceRoot":"","sources":["../../../src/generators/documentation/documentationGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAE7B,sCAA2C;AAC3C,2CAYqB;AACrB,mDAAmE;AAWnE,MAAa,sBAAsB;IAGjC,YAAY,GAAG,WAAsB;QAFpB,WAAM,GAAgB,+BAAe,CAAC;IAEf,CAAC;IAEzC,KAAK,CAAC,qBAAqB,CACzB,aAA4B,EAC5B,SAAiB,EACjB,SAAwC,EAAE,EAC1C,UAAmB,KAAK;QAExB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,uBAAc,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,sCAAsC,CAAC,CAAC;QAErG,MAAM,gBAAgB,GAAG,IAAA,+BAAe,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAEvD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,uBAAc,CAAC,oBAAoB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvG,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAClB,aAA4B,EAC5B,MAAmB;QAEnB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACtC,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvE,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI;YACJ,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM;SAC/F,CAAC,CAAC,CAAC;QACJ,MAAM,gBAAgB,GAAG,uBAAc,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC,CAAC;aAC3E,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACxB,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAEvD,OAAO;YACL,aAAa;YACb,mBAAmB;YACnB,gBAAgB;YAChB,cAAc;YACd,MAAM;SACP,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,MAAmB;QACxC,MAAM,QAAQ,GAAiB;YAC7B;gBACE,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAA,uBAAW,EAAC,OAAO,CAAC;aACzC;SACF,CAAC;QAEF,MAAM,SAAS,GAAsE;YACnF,kBAAkB,EAAE,iCAAqB;YACzC,YAAY,EAAE,mCAAuB;YACrC,sBAAsB,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAyB,GAAE;YACzD,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAA,iCAAqB,GAAE;YACjD,QAAQ,EAAE,0BAAc;YACxB,WAAW,EAAE,0BAAc;YAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,0BAAc,GAAE;YAChC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,8BAAkB,GAAE;SACpC,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,KAAK,CAAC,IAAI;gBACpB,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA7FD,wDA6FC"}
@@ -0,0 +1,21 @@
1
+ import { RepoStructure } from '../../types';
2
+ import { BaseLLMClient } from '../../services/baseLLMClient';
3
+ import { ModuleGroup } from '../moduleGrouper';
4
+ import { DocumentationType } from './documentationTypes';
5
+ export declare class DocumentationTemplates {
6
+ private llmClient;
7
+ private analyzer;
8
+ private guidelinesGenerator;
9
+ constructor(llmClient: BaseLLMClient, fileMapper?: any);
10
+ createMentalModel(repoStructure: RepoStructure, moduleGroups: ModuleGroup[]): Promise<string>;
11
+ createArchitectureDecisions(repoStructure: RepoStructure, moduleGroups: ModuleGroup[]): Promise<string>;
12
+ createCodeOrganization(repoStructure: RepoStructure, moduleGroups: ModuleGroup[]): Promise<string>;
13
+ createDevelopmentPatterns(repoStructure: RepoStructure, moduleGroups: ModuleGroup[]): Promise<string>;
14
+ createAIGuidelines(repoStructure: RepoStructure, moduleGroups: ModuleGroup[]): Promise<string>;
15
+ createContributingWorkflows(repoStructure: RepoStructure, moduleGroups: ModuleGroup[]): Promise<string>;
16
+ createDomainContext(repoStructure: RepoStructure, moduleGroups: ModuleGroup[]): Promise<string>;
17
+ createSoftwareGuidelines(repoStructure: RepoStructure, moduleGroups: ModuleGroup[]): Promise<string>;
18
+ createDocumentationIndex(enabledTypes: DocumentationType[]): string;
19
+ private buildRepoContext;
20
+ }
21
+ //# sourceMappingURL=documentationTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentationTemplates.d.ts","sourceRoot":"","sources":["../../../src/generators/documentation/documentationTemplates.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,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,qBAAa,sBAAsB;IAIrB,OAAO,CAAC,SAAS;IAH7B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,mBAAmB,CAAsB;gBAE7B,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,GAAG;IAKxD,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B7F,2BAA2B,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgDvG,sBAAsB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgDlG,yBAAyB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA4CrG,kBAAkB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B9F,2BAA2B,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BvG,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B/F,wBAAwB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmD1G,wBAAwB,CAAC,YAAY,EAAE,iBAAiB,EAAE,GAAG,MAAM;IAiEnE,OAAO,CAAC,gBAAgB;CA2BzB"}