@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
@@ -0,0 +1,109 @@
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.PlanGenerator = void 0;
37
+ const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs-extra"));
39
+ const shared_1 = require("../shared");
40
+ const agentTypes_1 = require("../agents/agentTypes");
41
+ const agentConfig_1 = require("../agents/agentConfig");
42
+ const guideRegistry_1 = require("../documentation/guideRegistry");
43
+ const planTemplate_1 = require("./templates/planTemplate");
44
+ const indexTemplate_1 = require("./templates/indexTemplate");
45
+ class PlanGenerator {
46
+ async generatePlan(options) {
47
+ const { planName, outputDir, title, summary, selectedAgentTypes, selectedDocKeys, force = false, verbose = false } = options;
48
+ const slug = shared_1.GeneratorUtils.slugify(planName);
49
+ if (!slug) {
50
+ throw new Error('Plan name must contain at least one alphanumeric character.');
51
+ }
52
+ const planTitle = title?.trim() || shared_1.GeneratorUtils.formatTitle(slug);
53
+ const resolvedOutput = path.resolve(outputDir);
54
+ const plansDir = path.join(resolvedOutput, 'plans');
55
+ await fs.ensureDir(resolvedOutput);
56
+ await shared_1.GeneratorUtils.ensureDirectoryAndLog(plansDir, verbose, 'Ensuring plans directory');
57
+ const planFileName = `${slug}.md`;
58
+ const planPath = path.join(plansDir, planFileName);
59
+ if (!force && await fs.pathExists(planPath)) {
60
+ throw new Error(`Plan already exists at ${planPath}. Use --force to overwrite.`);
61
+ }
62
+ const agentSummaries = this.resolveAgents(selectedAgentTypes);
63
+ const docGuides = selectedDocKeys === null
64
+ ? []
65
+ : (0, guideRegistry_1.getGuidesByKeys)(selectedDocKeys || undefined);
66
+ const content = (0, planTemplate_1.renderPlanTemplate)({
67
+ title: planTitle,
68
+ slug,
69
+ summary,
70
+ agents: agentSummaries,
71
+ docs: docGuides
72
+ });
73
+ await shared_1.GeneratorUtils.writeFileWithLogging(planPath, content, verbose, `Created ${planFileName}`);
74
+ await this.updatePlanIndex(plansDir, verbose);
75
+ return {
76
+ planPath,
77
+ relativePath: path.relative(resolvedOutput, planPath),
78
+ slug
79
+ };
80
+ }
81
+ resolveAgents(selected) {
82
+ const allowed = new Set(Array.from(agentTypes_1.AGENT_TYPES));
83
+ if (selected === null) {
84
+ return [];
85
+ }
86
+ const chosen = selected && selected.length > 0
87
+ ? Array.from(new Set(selected.map(value => value.toLowerCase().trim())))
88
+ .filter(value => allowed.has(value))
89
+ : Array.from(allowed);
90
+ return chosen.map(type => ({
91
+ type,
92
+ title: shared_1.GeneratorUtils.formatTitle(type),
93
+ responsibility: agentConfig_1.AGENT_RESPONSIBILITIES[type]?.[0] || 'Document this agent\'s primary responsibility.'
94
+ }));
95
+ }
96
+ async updatePlanIndex(plansDir, verbose) {
97
+ const files = await fs.readdir(plansDir);
98
+ const entries = files
99
+ .filter(file => file.toLowerCase().endsWith('.md') && file.toLowerCase() !== 'readme.md')
100
+ .map(file => file.replace(/\.md$/i, ''))
101
+ .map(slug => ({ slug, title: shared_1.GeneratorUtils.formatTitle(slug) }))
102
+ .sort((a, b) => a.title.localeCompare(b.title));
103
+ const indexContent = (0, indexTemplate_1.renderPlanIndex)(entries);
104
+ const indexPath = path.join(plansDir, 'README.md');
105
+ await shared_1.GeneratorUtils.writeFileWithLogging(indexPath, indexContent, verbose, 'Updated plans index');
106
+ }
107
+ }
108
+ exports.PlanGenerator = PlanGenerator;
109
+ //# sourceMappingURL=planGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planGenerator.js","sourceRoot":"","sources":["../../../src/generators/plans/planGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,6CAA+B;AAE/B,sCAA2C;AAC3C,qDAA8D;AAC9D,uDAA+D;AAC/D,kEAAiE;AACjE,2DAA8D;AAC9D,6DAA4D;AAoB5D,MAAa,aAAa;IACxB,KAAK,CAAC,YAAY,CAAC,OAA6B;QAC9C,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,KAAK,GAAG,KAAK,EACb,OAAO,GAAG,KAAK,EAChB,GAAG,OAAO,CAAC;QAEZ,MAAM,IAAI,GAAG,uBAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,uBAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAEpD,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACnC,MAAM,uBAAc,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAAC;QAE1F,MAAM,YAAY,GAAG,GAAG,IAAI,KAAK,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEnD,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,6BAA6B,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,eAAe,KAAK,IAAI;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAA,+BAAe,EAAC,eAAe,IAAI,SAAS,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,IAAA,iCAAkB,EAAC;YACjC,KAAK,EAAE,SAAS;YAChB,IAAI;YACJ,OAAO;YACP,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QAEH,MAAM,uBAAc,CAAC,oBAAoB,CACvC,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAW,YAAY,EAAE,CAC1B,CAAC;QAEF,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE9C,OAAO;YACL,QAAQ;YACR,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;YACrD,IAAI;SACL,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,QAA0B;QAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAY,KAAK,CAAC,IAAI,CAAC,wBAAW,CAAC,CAAC,CAAC;QAE5D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAgB,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YACzD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBACnE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAkB,CAAC,CAAgB;YACpE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAExB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI;YACJ,KAAK,EAAE,uBAAc,CAAC,WAAW,CAAC,IAAI,CAAC;YACvC,cAAc,EAAE,oCAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,gDAAgD;SACtG,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,OAAgB;QAC9D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,OAAO,GAAqB,KAAK;aACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC;aACxF,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aACvC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAChE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAElD,MAAM,YAAY,GAAG,IAAA,+BAAe,EAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEnD,MAAM,uBAAc,CAAC,oBAAoB,CACvC,SAAS,EACT,YAAY,EACZ,OAAO,EACP,qBAAqB,CACtB,CAAC;IACJ,CAAC;CACF;AAlGD,sCAkGC"}
@@ -0,0 +1,3 @@
1
+ import { PlanIndexEntry } from './types';
2
+ export declare function renderPlanIndex(entries: PlanIndexEntry[]): string;
3
+ //# sourceMappingURL=indexTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/plans/templates/indexTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CAgCjE"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderPlanIndex = renderPlanIndex;
4
+ function renderPlanIndex(entries) {
5
+ const planList = entries.length
6
+ ? entries
7
+ .map((entry, index) => `${index + 1}. [${entry.title}](./${entry.slug}.md)`)
8
+ .join('\n')
9
+ : '_No plans created yet. Use "ai-context plan <name>" to create the first one._';
10
+ return `# Collaboration Plans
11
+
12
+ This directory is the run queue for AI agents and maintainers coordinating work across documentation and playbooks. Treat the list below as an ordered backlog: finish the first plan before moving on to the next unless a human directs otherwise.
13
+
14
+ ## Agent Execution Protocol
15
+ 1. **Read the queue** from top to bottom. The numbering reflects execution priority.
16
+ 2. **Open the plan file** (e.g., './plans/<slug>.md') and review the YAML front matter and the '<!-- ai-task:plan-... -->' wrapper so you understand the goal, required inputs, and success criteria.
17
+ 3. **Gather context** by visiting the linked documentation and agent playbooks referenced in the "Agent Lineup" and "Documentation Touchpoints" tables.
18
+ 4. **Execute the stages** exactly as written, capturing evidence and updating linked docs as instructed. If a stage cannot be completed, record the reason inside the plan before pausing.
19
+ 5. **Close out the plan** by updating any TODOs, recording outcomes in the "Evidence & Follow-up" section, and notifying maintainers if human review is required.
20
+ 6. **Return here** and pick the next plan in the queue. Always leave the README and plan files consistent with the work performed.
21
+
22
+ ## Plan Queue (process in order)
23
+ ${planList}
24
+
25
+ ## How To Create Or Update Plans
26
+ - Run "ai-context plan <name>" to scaffold a new plan template.
27
+ - Run "ai-context plan <name> --fill" (optionally with "--dry-run") to have an LLM refresh the plan using the latest repository context.
28
+ - Cross-link any new documentation or agent resources you introduce so future runs stay discoverable.
29
+
30
+ ## Related Resources
31
+ - [Agent Handbook](../agents/README.md)
32
+ - [Documentation Index](../docs/README.md)
33
+ - [Contributor Guidelines](../AGENTS.md)
34
+ `;
35
+ }
36
+ //# sourceMappingURL=indexTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexTemplate.js","sourceRoot":"","sources":["../../../../src/generators/plans/templates/indexTemplate.ts"],"names":[],"mappings":";;AAEA,0CAgCC;AAhCD,SAAgB,eAAe,CAAC,OAAyB;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM;QAC7B,CAAC,CAAC,OAAO;aACJ,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC;aAC3E,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,+EAA+E,CAAC;IAEpF,OAAO;;;;;;;;;;;;;EAaP,QAAQ;;;;;;;;;;;CAWT,CAAC;AACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PlanTemplateContext } from './types';
2
+ export declare function renderPlanTemplate(context: PlanTemplateContext): string;
3
+ //# sourceMappingURL=planTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/plans/templates/planTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CA8FvE"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderPlanTemplate = renderPlanTemplate;
4
+ function renderPlanTemplate(context) {
5
+ const { title, slug, summary, agents, docs } = context;
6
+ const relatedAgents = agents.length
7
+ ? agents.map(agent => ` - "${agent.type}"`).join('\n')
8
+ : ' - "documentation-writer"';
9
+ const agentTableRows = agents.length
10
+ ? agents
11
+ .map(agent => `| ${agent.title} | TODO: Describe why this agent is involved. | [${agent.title}](../agents/${agent.type}.md) | ${agent.responsibility} |`)
12
+ .join('\n')
13
+ : '| Documentation Writer | TODO: Describe why this agent is involved. | [Documentation Writer](../agents/documentation-writer.md) | Create clear, comprehensive documentation |';
14
+ const docsTableRows = docs.length
15
+ ? docs
16
+ .map(doc => `| ${doc.title} | [${doc.file}](../docs/${doc.file}) | ${doc.marker} | ${doc.primaryInputs} |`)
17
+ .join('\n')
18
+ : '| Documentation Index | [README.md](../docs/README.md) | ai-task:docs-index | Current docs directory listing |';
19
+ return `---
20
+ id: plan-${slug}
21
+ ai_update_goal: "Define the stages, owners, and evidence required to complete ${title}."
22
+ required_inputs:
23
+ - "Task summary or issue link describing the goal"
24
+ - "Relevant documentation sections from docs/README.md"
25
+ - "Matching agent playbooks from agents/README.md"
26
+ success_criteria:
27
+ - "Stages list clear owners, deliverables, and success signals"
28
+ - "Plan references documentation and agent resources that exist today"
29
+ - "Follow-up actions and evidence expectations are recorded"
30
+ related_agents:
31
+ ${relatedAgents}
32
+ ---
33
+
34
+ <!-- ai-task:plan-${slug} -->
35
+ # ${title} Plan
36
+
37
+ > ${summary?.trim() || 'TODO: Summarize the desired outcome and the problem this plan addresses.'}
38
+
39
+ ## Task Snapshot
40
+ - **Primary goal:** TODO: Describe the outcome to achieve.
41
+ - **Success signal:** TODO: Define how the team will know the plan worked.
42
+ - **Key references:**
43
+ - [Documentation Index](../docs/README.md)
44
+ - [Agent Handbook](../agents/README.md)
45
+ - [Plans Index](./README.md)
46
+
47
+ ## Agent Lineup
48
+ | Agent | Role in this plan | Playbook | First responsibility focus |
49
+ | --- | --- | --- | --- |
50
+ ${agentTableRows}
51
+
52
+ ## Documentation Touchpoints
53
+ | Guide | File | Task Marker | Primary Inputs |
54
+ | --- | --- | --- | --- |
55
+ ${docsTableRows}
56
+
57
+ ## Working Phases
58
+ ### Phase 1 — Discovery & Alignment
59
+ **Steps**
60
+ 1. TODO: Outline discovery tasks and assign the accountable owner.
61
+ 2. TODO: Capture open questions that require clarification.
62
+
63
+ **Commit Checkpoint**
64
+ - After completing this phase, capture the agreed context and create a commit (for example, \`git commit -m "chore(plan): complete phase 1 discovery"\`).
65
+
66
+ ### Phase 2 — Implementation & Iteration
67
+ **Steps**
68
+ 1. TODO: Note build tasks, pairing expectations, and review cadence.
69
+ 2. TODO: Reference docs or playbooks to keep changes aligned.
70
+
71
+ **Commit Checkpoint**
72
+ - Summarize progress, update cross-links, and create a commit documenting the outcomes of this phase (for example, \`git commit -m "chore(plan): complete phase 2 implementation"\`).
73
+
74
+ ### Phase 3 — Validation & Handoff
75
+ **Steps**
76
+ 1. TODO: Detail testing, verification, and documentation updates.
77
+ 2. TODO: Document evidence the team must capture for maintainers.
78
+
79
+ **Commit Checkpoint**
80
+ - Record the validation evidence and create a commit signalling the handoff completion (for example, \`git commit -m "chore(plan): complete phase 3 validation"\`).
81
+
82
+ ## Agent Playbook Checklist
83
+ 1. Pick the agent that matches your task.
84
+ 2. Enrich the template with project-specific context or links.
85
+ 3. Share the final prompt with your AI assistant.
86
+ 4. Capture learnings in the relevant documentation file so future runs improve.
87
+
88
+ ## Evidence & Follow-up
89
+ - TODO: List artifacts to collect (logs, PR links, test runs, design notes).
90
+ - TODO: Record follow-up actions or owners.
91
+
92
+ <!-- /ai-task:plan-${slug} -->
93
+ `;
94
+ }
95
+ //# sourceMappingURL=planTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planTemplate.js","sourceRoot":"","sources":["../../../../src/generators/plans/templates/planTemplate.ts"],"names":[],"mappings":";;AAEA,gDA8FC;AA9FD,SAAgB,kBAAkB,CAAC,OAA4B;IAC7D,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEvD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM;QACjC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACvD,CAAC,CAAC,4BAA4B,CAAC;IAEjC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM;QAClC,CAAC,CAAC,MAAM;aACH,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,KAAK,oDAAoD,KAAK,CAAC,KAAK,eAAe,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,cAAc,IAAI,CAAC;aACxJ,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,+KAA+K,CAAC;IAEpL,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM;QAC/B,CAAC,CAAC,IAAI;aACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,OAAO,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,aAAa,IAAI,CAAC;aAC1G,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,gHAAgH,CAAC;IAErH,OAAO;WACE,IAAI;gFACiE,KAAK;;;;;;;;;;EAUnF,aAAa;;;oBAGK,IAAI;IACpB,KAAK;;IAEL,OAAO,EAAE,IAAI,EAAE,IAAI,0EAA0E;;;;;;;;;;;;;EAa/F,cAAc;;;;;EAKd,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAqCM,IAAI;CACxB,CAAC;AACF,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { AgentType } from '../../agents/agentTypes';
2
+ import { GuideMeta } from '../../documentation/templates/types';
3
+ export interface PlanAgentSummary {
4
+ type: AgentType;
5
+ title: string;
6
+ responsibility: string;
7
+ }
8
+ export interface PlanTemplateContext {
9
+ title: string;
10
+ slug: string;
11
+ summary?: string;
12
+ agents: PlanAgentSummary[];
13
+ docs: GuideMeta[];
14
+ }
15
+ export interface PlanIndexEntry {
16
+ slug: string;
17
+ title: string;
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/generators/plans/templates/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -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/plans/templates/types.ts"],"names":[],"mappings":""}
@@ -1,12 +1,7 @@
1
- import { RepoStructure } from '../../types';
2
1
  import { FileMapper } from '../../utils/fileMapper';
3
2
  export declare class ContextGenerator {
4
- private fileMapper;
3
+ protected readonly fileMapper: FileMapper;
5
4
  constructor(fileMapper: FileMapper);
6
- createRepoContext(repoStructure: RepoStructure): string;
7
- createFileContext(repoStructure: RepoStructure, importantFiles?: string[]): Promise<string>;
8
- createStructureOverview(repoStructure: RepoStructure): string;
9
- private getFileTypeDistribution;
10
- private isImportantFile;
5
+ protected loadFileContent(path: string): Promise<string>;
11
6
  }
12
7
  //# sourceMappingURL=contextGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contextGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/shared/contextGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,qBAAa,gBAAgB;IACf,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE1C,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM;IAiBjD,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBrG,uBAAuB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM;IAiB7D,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,eAAe;CAcxB"}
1
+ {"version":3,"file":"contextGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/shared/contextGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,qBAAa,gBAAgB;IACf,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;gBAAtB,UAAU,EAAE,UAAU;cAErC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG/D"}
@@ -1,108 +1,12 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.ContextGenerator = void 0;
37
- const path = __importStar(require("path"));
38
- const generatorUtils_1 = require("./generatorUtils");
39
4
  class ContextGenerator {
40
5
  constructor(fileMapper) {
41
6
  this.fileMapper = fileMapper;
42
7
  }
43
- createRepoContext(repoStructure) {
44
- const { files, totalFiles, totalSize } = repoStructure;
45
- const topExtensions = generatorUtils_1.GeneratorUtils.getTopFileExtensions(repoStructure);
46
- return `**Project Statistics:**
47
- - Total Files: ${totalFiles}
48
- - Total Size: ${generatorUtils_1.GeneratorUtils.formatBytes(totalSize)}
49
- - Primary Languages: ${topExtensions.map(([ext, count]) => `${ext} (${count})`).join(', ')}
50
-
51
- **Key Project Files:**
52
- ${files
53
- .filter(f => ['package.json', 'README.md', 'tsconfig.json'].includes(path.basename(f.path)))
54
- .map(f => `- ${f.relativePath}`)
55
- .join('\n')}`;
56
- }
57
- async createFileContext(repoStructure, importantFiles = []) {
58
- const filesToProcess = repoStructure.files
59
- .filter(f => this.isImportantFile(f.relativePath, importantFiles))
60
- .slice(0, 10);
61
- let context = '**Important Files Context:**\n\n';
62
- for (const file of filesToProcess) {
63
- try {
64
- const content = await this.fileMapper.readFileContent(file.path);
65
- const preview = content.substring(0, 500);
66
- context += `**${file.relativePath}:**\n\`\`\`\n${preview}${content.length > 500 ? '...' : ''}\n\`\`\`\n\n`;
67
- }
68
- catch (error) {
69
- context += `**${file.relativePath}:** (Error reading file)\n\n`;
70
- }
71
- }
72
- return context;
73
- }
74
- createStructureOverview(repoStructure) {
75
- const directories = [...new Set(repoStructure.files.map(f => path.dirname(f.relativePath)))].filter(dir => dir !== '.').slice(0, 20);
76
- return `Repository Structure Overview:
77
-
78
- Directories:
79
- ${directories.map(dir => `- ${dir}`).join('\n')}
80
-
81
- File Types:
82
- ${this.getFileTypeDistribution(repoStructure)}
83
-
84
- Total Files: ${repoStructure.totalFiles}
85
- `;
86
- }
87
- getFileTypeDistribution(repoStructure) {
88
- const extensions = generatorUtils_1.GeneratorUtils.getFileTypeDistribution(repoStructure);
89
- return Array.from(extensions.entries())
90
- .sort((a, b) => b[1] - a[1])
91
- .slice(0, 10)
92
- .map(([ext, count]) => `- ${ext}: ${count} files`)
93
- .join('\n');
94
- }
95
- isImportantFile(filePath, customImportantFiles = []) {
96
- const defaultImportantFiles = [
97
- 'package.json', 'tsconfig.json', 'webpack.config.js',
98
- 'next.config.js', 'tailwind.config.js', 'README.md',
99
- '.gitignore', 'Dockerfile', 'docker-compose.yml'
100
- ];
101
- const allImportantFiles = [...defaultImportantFiles, ...customImportantFiles];
102
- const fileName = path.basename(filePath);
103
- return allImportantFiles.includes(fileName) ||
104
- filePath.includes('config') ||
105
- filePath.includes('index');
8
+ async loadFileContent(path) {
9
+ return this.fileMapper.readFileContent(path);
106
10
  }
107
11
  }
108
12
  exports.ContextGenerator = ContextGenerator;
@@ -1 +1 @@
1
- {"version":3,"file":"contextGenerator.js","sourceRoot":"","sources":["../../../src/generators/shared/contextGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contextGenerator.js","sourceRoot":"","sources":["../../../src/generators/shared/contextGenerator.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IAC3B,YAA+B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE/C,KAAK,CAAC,eAAe,CAAC,IAAY;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF;AAND,4CAMC"}
@@ -0,0 +1,2 @@
1
+ export declare function formatDirectoryList(directories: string[], placeholderMessage?: string): string;
2
+ //# sourceMappingURL=directoryTemplateHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directoryTemplateHelpers.d.ts","sourceRoot":"","sources":["../../../src/generators/shared/directoryTemplateHelpers.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ9F"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatDirectoryList = formatDirectoryList;
4
+ function formatDirectoryList(directories, placeholderMessage) {
5
+ if (!directories.length) {
6
+ return placeholderMessage ?? '';
7
+ }
8
+ return directories
9
+ .map(dir => `- \`${dir}/\` — TODO: Describe the purpose of this directory.`)
10
+ .join('\n');
11
+ }
12
+ //# sourceMappingURL=directoryTemplateHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directoryTemplateHelpers.js","sourceRoot":"","sources":["../../../src/generators/shared/directoryTemplateHelpers.ts"],"names":[],"mappings":";;AAAA,kDAQC;AARD,SAAgB,mBAAmB,CAAC,WAAqB,EAAE,kBAA2B;IACpF,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,kBAAkB,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,WAAW;SACf,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,qDAAqD,CAAC;SAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { GeneratorUtils } from './generatorUtils';
2
2
  export { ContextGenerator } from './contextGenerator';
3
+ export { formatDirectoryList } from './directoryTemplateHelpers';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContextGenerator = exports.GeneratorUtils = void 0;
3
+ exports.formatDirectoryList = exports.ContextGenerator = exports.GeneratorUtils = void 0;
4
4
  var generatorUtils_1 = require("./generatorUtils");
5
5
  Object.defineProperty(exports, "GeneratorUtils", { enumerable: true, get: function () { return generatorUtils_1.GeneratorUtils; } });
6
6
  var contextGenerator_1 = require("./contextGenerator");
7
7
  Object.defineProperty(exports, "ContextGenerator", { enumerable: true, get: function () { return contextGenerator_1.ContextGenerator; } });
8
+ var directoryTemplateHelpers_1 = require("./directoryTemplateHelpers");
9
+ Object.defineProperty(exports, "formatDirectoryList", { enumerable: true, get: function () { return directoryTemplateHelpers_1.formatDirectoryList; } });
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/shared/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/shared/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,uEAAiE;AAAxD,+HAAA,mBAAmB,OAAA"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env node
2
+ declare function runInit(repoPath: string, type: string, rawOptions: any): Promise<void>;
2
3
  export declare function runGenerate(repoPath: string, options: any): Promise<void>;
3
- export declare function runGuidelines(repoPath: string, categories: string[], options: any): Promise<void>;
4
- export declare function runAnalyze(repoPath: string, options: any): Promise<void>;
5
- export declare function runUpdate(repoPath: string, options: any): Promise<void>;
6
- export declare function runPreview(repoPath: string, options: any): Promise<void>;
4
+ export declare function runAnalyze(..._args: unknown[]): Promise<void>;
5
+ export declare function runUpdate(..._args: unknown[]): Promise<void>;
6
+ export declare function runPreview(..._args: unknown[]): Promise<void>;
7
+ export declare function runGuidelines(..._args: unknown[]): Promise<void>;
8
+ export { runInit };
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAwKA,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA0J/E;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAgKvG;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE9E;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAuK7E;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAqJ9E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA+OA,iBAAe,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFrF;AA6BD,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAa/E;AAED,wBAAsB,UAAU,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED,wBAAsB,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAElE;AAED,wBAAsB,UAAU,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED,wBAAsB,aAAa,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}