@ai-coders/context 0.2.1 → 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.
- package/README.md +113 -580
- package/dist/generators/agents/agentGenerator.d.ts +6 -9
- package/dist/generators/agents/agentGenerator.d.ts.map +1 -1
- package/dist/generators/agents/agentGenerator.js +89 -32
- package/dist/generators/agents/agentGenerator.js.map +1 -1
- package/dist/generators/agents/index.d.ts +0 -2
- package/dist/generators/agents/index.d.ts.map +1 -1
- package/dist/generators/agents/index.js +1 -5
- package/dist/generators/agents/index.js.map +1 -1
- package/dist/generators/agents/templates/index.d.ts +4 -0
- package/dist/generators/agents/templates/index.d.ts.map +1 -0
- package/dist/generators/agents/templates/index.js +8 -0
- package/dist/generators/agents/templates/index.js.map +1 -0
- package/dist/generators/agents/templates/indexTemplate.d.ts +3 -0
- package/dist/generators/agents/templates/indexTemplate.d.ts.map +1 -0
- package/dist/generators/agents/templates/indexTemplate.js +35 -0
- package/dist/generators/agents/templates/indexTemplate.js.map +1 -0
- package/dist/generators/agents/templates/playbookTemplate.d.ts +4 -0
- package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -0
- package/dist/generators/agents/templates/playbookTemplate.js +63 -0
- package/dist/generators/agents/templates/playbookTemplate.js.map +1 -0
- package/dist/generators/agents/templates/types.d.ts +14 -0
- package/dist/generators/agents/templates/types.d.ts.map +1 -0
- package/dist/generators/agents/templates/types.js +3 -0
- package/dist/generators/agents/templates/types.js.map +1 -0
- package/dist/generators/documentation/documentationGenerator.d.ts +9 -15
- package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
- package/dist/generators/documentation/documentationGenerator.js +65 -77
- package/dist/generators/documentation/documentationGenerator.js.map +1 -1
- package/dist/generators/documentation/guideRegistry.d.ts +6 -0
- package/dist/generators/documentation/guideRegistry.d.ts.map +1 -0
- package/dist/generators/documentation/guideRegistry.js +82 -0
- package/dist/generators/documentation/guideRegistry.js.map +1 -0
- package/dist/generators/documentation/index.d.ts +0 -6
- package/dist/generators/documentation/index.d.ts.map +1 -1
- package/dist/generators/documentation/index.js +1 -17
- package/dist/generators/documentation/index.js.map +1 -1
- package/dist/generators/documentation/templates/architectureTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/architectureTemplate.js +66 -0
- package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/common.d.ts +7 -0
- package/dist/generators/documentation/templates/common.d.ts.map +1 -0
- package/dist/generators/documentation/templates/common.js +58 -0
- package/dist/generators/documentation/templates/common.js.map +1 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.js +55 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +59 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/frontMatter.d.ts +11 -0
- package/dist/generators/documentation/templates/frontMatter.d.ts.map +1 -0
- package/dist/generators/documentation/templates/frontMatter.js +29 -0
- package/dist/generators/documentation/templates/frontMatter.js.map +1 -0
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/glossaryTemplate.js +55 -0
- package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/index.d.ts +11 -0
- package/dist/generators/documentation/templates/index.d.ts.map +1 -0
- package/dist/generators/documentation/templates/index.js +22 -0
- package/dist/generators/documentation/templates/index.js.map +1 -0
- package/dist/generators/documentation/templates/indexTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/indexTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/indexTemplate.js +56 -0
- package/dist/generators/documentation/templates/indexTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.js +68 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/securityTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/securityTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/securityTemplate.js +53 -0
- package/dist/generators/documentation/templates/securityTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/testingTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/testingTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/testingTemplate.js +59 -0
- package/dist/generators/documentation/templates/testingTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/toolingTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/toolingTemplate.js +56 -0
- package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/types.d.ts +23 -0
- package/dist/generators/documentation/templates/types.d.ts.map +1 -0
- package/dist/generators/documentation/templates/types.js +3 -0
- package/dist/generators/documentation/templates/types.js.map +1 -0
- package/dist/generators/documentation/templates.d.ts +31 -0
- package/dist/generators/documentation/templates.d.ts.map +1 -0
- package/dist/generators/documentation/templates.js +566 -0
- package/dist/generators/documentation/templates.js.map +1 -0
- package/dist/generators/plans/index.d.ts +2 -0
- package/dist/generators/plans/index.d.ts.map +1 -0
- package/dist/generators/plans/index.js +6 -0
- package/dist/generators/plans/index.js.map +1 -0
- package/dist/generators/plans/planGenerator.d.ts +22 -0
- package/dist/generators/plans/planGenerator.d.ts.map +1 -0
- package/dist/generators/plans/planGenerator.js +109 -0
- package/dist/generators/plans/planGenerator.js.map +1 -0
- package/dist/generators/plans/templates/indexTemplate.d.ts +3 -0
- package/dist/generators/plans/templates/indexTemplate.d.ts.map +1 -0
- package/dist/generators/plans/templates/indexTemplate.js +36 -0
- package/dist/generators/plans/templates/indexTemplate.js.map +1 -0
- package/dist/generators/plans/templates/planTemplate.d.ts +3 -0
- package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -0
- package/dist/generators/plans/templates/planTemplate.js +83 -0
- package/dist/generators/plans/templates/planTemplate.js.map +1 -0
- package/dist/generators/plans/templates/types.d.ts +19 -0
- package/dist/generators/plans/templates/types.d.ts.map +1 -0
- package/dist/generators/plans/templates/types.js +3 -0
- package/dist/generators/plans/templates/types.js.map +1 -0
- package/dist/generators/shared/contextGenerator.d.ts +2 -7
- package/dist/generators/shared/contextGenerator.d.ts.map +1 -1
- package/dist/generators/shared/contextGenerator.js +2 -98
- package/dist/generators/shared/contextGenerator.js.map +1 -1
- package/dist/generators/shared/directoryTemplateHelpers.d.ts +2 -0
- package/dist/generators/shared/directoryTemplateHelpers.d.ts.map +1 -0
- package/dist/generators/shared/directoryTemplateHelpers.js +12 -0
- package/dist/generators/shared/directoryTemplateHelpers.js.map +1 -0
- package/dist/generators/shared/index.d.ts +1 -0
- package/dist/generators/shared/index.d.ts.map +1 -1
- package/dist/generators/shared/index.js +3 -1
- package/dist/generators/shared/index.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1300 -609
- package/dist/index.js.map +1 -1
- package/dist/utils/cliUI.d.ts +6 -4
- package/dist/utils/cliUI.d.ts.map +1 -1
- package/dist/utils/cliUI.js +71 -56
- package/dist/utils/cliUI.js.map +1 -1
- package/dist/utils/i18n.d.ts +181 -0
- package/dist/utils/i18n.d.ts.map +1 -0
- package/dist/utils/i18n.js +401 -0
- package/dist/utils/i18n.js.map +1 -0
- package/package.json +26 -23
- package/prompts/update_plan_prompt.md +42 -0
- package/prompts/update_scaffold_prompt.md +48 -0
- package/dist/generators/agentGenerator.d.ts +0 -23
- package/dist/generators/agentGenerator.d.ts.map +0 -1
- package/dist/generators/agentGenerator.js +0 -357
- package/dist/generators/agentGenerator.js.map +0 -1
- package/dist/generators/documentation/enhancedDocumentationGenerator.d.ts +0 -21
- package/dist/generators/documentation/enhancedDocumentationGenerator.d.ts.map +0 -1
- package/dist/generators/documentation/enhancedDocumentationGenerator.js +0 -216
- package/dist/generators/documentation/enhancedDocumentationGenerator.js.map +0 -1
- package/dist/generators/documentation/newDocumentationTemplates.d.ts +0 -19
- package/dist/generators/documentation/newDocumentationTemplates.d.ts.map +0 -1
- package/dist/generators/documentation/newDocumentationTemplates.js +0 -307
- package/dist/generators/documentation/newDocumentationTemplates.js.map +0 -1
- package/dist/generators/documentationGenerator.d.ts +0 -22
- package/dist/generators/documentationGenerator.d.ts.map +0 -1
- package/dist/generators/documentationGenerator.js +0 -235
- package/dist/generators/documentationGenerator.js.map +0 -1
- package/dist/generators/documentationTemplates.d.ts +0 -16
- package/dist/generators/documentationTemplates.d.ts.map +0 -1
- package/dist/generators/documentationTemplates.js +0 -326
- package/dist/generators/documentationTemplates.js.map +0 -1
- package/dist/generators/documentationUtils.d.ts +0 -7
- package/dist/generators/documentationUtils.d.ts.map +0 -1
- package/dist/generators/documentationUtils.js +0 -38
- package/dist/generators/documentationUtils.js.map +0 -1
- package/dist/generators/incrementalDocumentationGenerator.d.ts +0 -33
- package/dist/generators/incrementalDocumentationGenerator.d.ts.map +0 -1
- package/dist/generators/incrementalDocumentationGenerator.js +0 -400
- package/dist/generators/incrementalDocumentationGenerator.js.map +0 -1
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import { RepoStructure } from '../../types';
|
|
2
|
-
import { FileMapper } from '../../utils/fileMapper';
|
|
3
|
-
import { BaseLLMClient } from '../../services/baseLLMClient';
|
|
4
2
|
export declare class AgentGenerator {
|
|
5
|
-
private
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
private
|
|
11
|
-
private generateAgentIndex;
|
|
3
|
+
private readonly docTouchpoints;
|
|
4
|
+
constructor(..._legacyArgs: unknown[]);
|
|
5
|
+
generateAgentPrompts(repoStructure: RepoStructure, outputDir: string, selectedAgentTypes?: string[], verbose?: boolean): Promise<number>;
|
|
6
|
+
private resolveAgentSelection;
|
|
7
|
+
private buildContext;
|
|
8
|
+
private formatDirectoryList;
|
|
12
9
|
}
|
|
13
10
|
//# sourceMappingURL=agentGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/agentGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agentGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/agentGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAe5C,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CA8C7B;gBAEU,GAAG,WAAW,EAAE,OAAO,EAAE;IAG/B,oBAAoB,CACxB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,MAAM,CAAC;IAuBlB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,mBAAmB;CAO5B"}
|
|
@@ -35,45 +35,102 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.AgentGenerator = void 0;
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
|
-
const agentTypes_1 = require("./agentTypes");
|
|
39
|
-
const contextUtils_1 = require("./contextUtils");
|
|
40
|
-
const promptFormatter_1 = require("./promptFormatter");
|
|
41
38
|
const shared_1 = require("../shared");
|
|
39
|
+
const agentTypes_1 = require("./agentTypes");
|
|
40
|
+
const templates_1 = require("./templates");
|
|
42
41
|
class AgentGenerator {
|
|
43
|
-
constructor(
|
|
44
|
-
this.
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
constructor(..._legacyArgs) {
|
|
43
|
+
this.docTouchpoints = [
|
|
44
|
+
{
|
|
45
|
+
title: 'Documentation Index',
|
|
46
|
+
path: '../docs/README.md',
|
|
47
|
+
marker: 'ai-task:docs-index'
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
title: 'Project Overview',
|
|
51
|
+
path: '../docs/project-overview.md',
|
|
52
|
+
marker: 'ai-task:project-overview'
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
title: 'Architecture Notes',
|
|
56
|
+
path: '../docs/architecture.md',
|
|
57
|
+
marker: 'ai-task:architecture-notes'
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
title: 'Development Workflow',
|
|
61
|
+
path: '../docs/development-workflow.md',
|
|
62
|
+
marker: 'ai-task:development-workflow'
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
title: 'Testing Strategy',
|
|
66
|
+
path: '../docs/testing-strategy.md',
|
|
67
|
+
marker: 'ai-task:testing-strategy'
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
title: 'Glossary & Domain Concepts',
|
|
71
|
+
path: '../docs/glossary.md',
|
|
72
|
+
marker: 'ai-task:glossary'
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
title: 'Data Flow & Integrations',
|
|
76
|
+
path: '../docs/data-flow.md',
|
|
77
|
+
marker: 'ai-task:data-flow'
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
title: 'Security & Compliance Notes',
|
|
81
|
+
path: '../docs/security.md',
|
|
82
|
+
marker: 'ai-task:security'
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
title: 'Tooling & Productivity Guide',
|
|
86
|
+
path: '../docs/tooling.md',
|
|
87
|
+
marker: 'ai-task:tooling'
|
|
88
|
+
}
|
|
89
|
+
];
|
|
47
90
|
}
|
|
48
|
-
async generateAgentPrompts(repoStructure, outputDir, verbose = false) {
|
|
91
|
+
async generateAgentPrompts(repoStructure, outputDir, selectedAgentTypes, verbose = false) {
|
|
49
92
|
const agentsDir = path.join(outputDir, 'agents');
|
|
50
|
-
await shared_1.GeneratorUtils.ensureDirectoryAndLog(agentsDir, verbose, '
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
shared_1.GeneratorUtils.logError(`Error generating ${agentType}`, error, verbose);
|
|
62
|
-
}
|
|
93
|
+
await shared_1.GeneratorUtils.ensureDirectoryAndLog(agentsDir, verbose, 'Generating agent scaffold in');
|
|
94
|
+
const context = this.buildContext(repoStructure);
|
|
95
|
+
const agentTypes = this.resolveAgentSelection(selectedAgentTypes);
|
|
96
|
+
let created = 0;
|
|
97
|
+
for (const agentType of agentTypes) {
|
|
98
|
+
const content = (0, templates_1.renderAgentPlaybook)(agentType, context.topLevelDirectories, this.docTouchpoints);
|
|
99
|
+
const filePath = path.join(agentsDir, `${agentType}.md`);
|
|
100
|
+
await shared_1.GeneratorUtils.writeFileWithLogging(filePath, content, verbose, `Created ${agentType}.md`);
|
|
101
|
+
created += 1;
|
|
63
102
|
}
|
|
64
|
-
|
|
65
|
-
|
|
103
|
+
const indexPath = path.join(agentsDir, 'README.md');
|
|
104
|
+
const indexContent = (0, templates_1.renderAgentIndex)(agentTypes);
|
|
105
|
+
await shared_1.GeneratorUtils.writeFileWithLogging(indexPath, indexContent, verbose, 'Created README.md');
|
|
106
|
+
created += 1;
|
|
107
|
+
return created;
|
|
66
108
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
109
|
+
resolveAgentSelection(selected) {
|
|
110
|
+
if (!selected || selected.length === 0) {
|
|
111
|
+
return agentTypes_1.AGENT_TYPES;
|
|
112
|
+
}
|
|
113
|
+
const allowed = new Set(agentTypes_1.AGENT_TYPES);
|
|
114
|
+
const filtered = selected.filter((agent) => allowed.has(agent));
|
|
115
|
+
return (filtered.length > 0 ? filtered : agentTypes_1.AGENT_TYPES);
|
|
71
116
|
}
|
|
72
|
-
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
117
|
+
buildContext(repoStructure) {
|
|
118
|
+
const directorySet = new Set();
|
|
119
|
+
repoStructure.directories.forEach(dir => {
|
|
120
|
+
const [firstSegment] = dir.relativePath.split(/[\\/]/).filter(Boolean);
|
|
121
|
+
if (firstSegment) {
|
|
122
|
+
directorySet.add(firstSegment);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
return {
|
|
126
|
+
topLevelDirectories: Array.from(directorySet).sort()
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
formatDirectoryList(topLevelDirectories) {
|
|
130
|
+
if (topLevelDirectories.length === 0) {
|
|
131
|
+
return '';
|
|
132
|
+
}
|
|
133
|
+
return topLevelDirectories.map(dir => `- \`${dir}/\` — Note why this directory matters for the agent.`).join('\n');
|
|
77
134
|
}
|
|
78
135
|
}
|
|
79
136
|
exports.AgentGenerator = AgentGenerator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentGenerator.js","sourceRoot":"","sources":["../../../src/generators/agents/agentGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;
|
|
1
|
+
{"version":3,"file":"agentGenerator.js","sourceRoot":"","sources":["../../../src/generators/agents/agentGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export { AgentGenerator } from './agentGenerator';
|
|
2
2
|
export { AGENT_TYPES, AgentType, IMPORTANT_FILES } from './agentTypes';
|
|
3
3
|
export { AGENT_RESPONSIBILITIES, AGENT_BEST_PRACTICES } from './agentConfig';
|
|
4
|
-
export { ContextUtils } from './contextUtils';
|
|
5
|
-
export { PromptFormatter } from './promptFormatter';
|
|
6
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.AGENT_BEST_PRACTICES = exports.AGENT_RESPONSIBILITIES = exports.IMPORTANT_FILES = exports.AGENT_TYPES = exports.AgentGenerator = void 0;
|
|
4
4
|
var agentGenerator_1 = require("./agentGenerator");
|
|
5
5
|
Object.defineProperty(exports, "AgentGenerator", { enumerable: true, get: function () { return agentGenerator_1.AgentGenerator; } });
|
|
6
6
|
var agentTypes_1 = require("./agentTypes");
|
|
@@ -9,8 +9,4 @@ Object.defineProperty(exports, "IMPORTANT_FILES", { enumerable: true, get: funct
|
|
|
9
9
|
var agentConfig_1 = require("./agentConfig");
|
|
10
10
|
Object.defineProperty(exports, "AGENT_RESPONSIBILITIES", { enumerable: true, get: function () { return agentConfig_1.AGENT_RESPONSIBILITIES; } });
|
|
11
11
|
Object.defineProperty(exports, "AGENT_BEST_PRACTICES", { enumerable: true, get: function () { return agentConfig_1.AGENT_BEST_PRACTICES; } });
|
|
12
|
-
var contextUtils_1 = require("./contextUtils");
|
|
13
|
-
Object.defineProperty(exports, "ContextUtils", { enumerable: true, get: function () { return contextUtils_1.ContextUtils; } });
|
|
14
|
-
var promptFormatter_1 = require("./promptFormatter");
|
|
15
|
-
Object.defineProperty(exports, "PromptFormatter", { enumerable: true, get: function () { return promptFormatter_1.PromptFormatter; } });
|
|
16
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/agents/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,2CAAuE;AAA9D,yGAAA,WAAW,OAAA;AAAa,6GAAA,eAAe,OAAA;AAChD,6CAA6E;AAApE,qHAAA,sBAAsB,OAAA;AAAE,mHAAA,oBAAoB,OAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/agents/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,2CAAuE;AAA9D,yGAAA,WAAW,OAAA;AAAa,6GAAA,eAAe,OAAA;AAChD,6CAA6E;AAApE,qHAAA,sBAAsB,OAAA;AAAE,mHAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/generators/agents/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderAgentIndex = exports.renderAgentPlaybook = void 0;
|
|
4
|
+
var playbookTemplate_1 = require("./playbookTemplate");
|
|
5
|
+
Object.defineProperty(exports, "renderAgentPlaybook", { enumerable: true, get: function () { return playbookTemplate_1.renderAgentPlaybook; } });
|
|
6
|
+
var indexTemplate_1 = require("./indexTemplate");
|
|
7
|
+
Object.defineProperty(exports, "renderAgentIndex", { enumerable: true, get: function () { return indexTemplate_1.renderAgentIndex; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/generators/agents/templates/index.ts"],"names":[],"mappings":";;;AAAA,uDAAyD;AAAhD,uHAAA,mBAAmB,OAAA;AAC5B,iDAAmD;AAA1C,iHAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/agents/templates/indexTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAwBzE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderAgentIndex = renderAgentIndex;
|
|
4
|
+
const agentConfig_1 = require("../agentConfig");
|
|
5
|
+
function renderAgentIndex(agentTypes) {
|
|
6
|
+
const agentEntries = agentTypes.map(type => {
|
|
7
|
+
const title = formatTitle(type);
|
|
8
|
+
const primaryResponsibility = agentConfig_1.AGENT_RESPONSIBILITIES[type]?.[0] || 'Document responsibilities here.';
|
|
9
|
+
return `- [${title}](./${type}.md) — ${primaryResponsibility}`;
|
|
10
|
+
}).join('\n');
|
|
11
|
+
return `# Agent Handbook
|
|
12
|
+
|
|
13
|
+
This directory contains ready-to-customize playbooks for AI agents collaborating on the repository.
|
|
14
|
+
|
|
15
|
+
## Available Agents
|
|
16
|
+
${agentEntries}
|
|
17
|
+
|
|
18
|
+
## How To Use These Playbooks
|
|
19
|
+
1. Pick the agent that matches your task.
|
|
20
|
+
2. Enrich the template with project-specific context or links.
|
|
21
|
+
3. Share the final prompt with your AI assistant.
|
|
22
|
+
4. Capture learnings in the relevant documentation file so future runs improve.
|
|
23
|
+
|
|
24
|
+
## Related Resources
|
|
25
|
+
- [Documentation Index](../docs/README.md)
|
|
26
|
+
- [Contributor Guidelines](../AGENTS.md)
|
|
27
|
+
`;
|
|
28
|
+
}
|
|
29
|
+
function formatTitle(agentType) {
|
|
30
|
+
return agentType
|
|
31
|
+
.split('-')
|
|
32
|
+
.map(segment => segment.charAt(0).toUpperCase() + segment.slice(1))
|
|
33
|
+
.join(' ');
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=indexTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexTemplate.js","sourceRoot":"","sources":["../../../../src/generators/agents/templates/indexTemplate.ts"],"names":[],"mappings":";;AAGA,4CAwBC;AA1BD,gDAAwD;AAExD,SAAgB,gBAAgB,CAAC,UAAgC;IAC/D,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACzC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,qBAAqB,GAAG,oCAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,iCAAiC,CAAC;QACrG,OAAO,MAAM,KAAK,OAAO,IAAI,UAAU,qBAAqB,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;;;EAKP,YAAY;;;;;;;;;;;CAWb,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playbookTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/agents/templates/playbookTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,MAAM,EAAE,EAC7B,WAAW,EAAE,aAAa,EAAE,GAC3B,MAAM,CA8CR"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/generators/agents/templates/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import { RepoStructure } from '../../types';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
interface DocumentationGenerationConfig {
|
|
3
|
+
selectedDocs?: string[];
|
|
4
|
+
}
|
|
5
5
|
export declare class DocumentationGenerator {
|
|
6
|
-
private
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private
|
|
10
|
-
|
|
11
|
-
generateDocumentation(repoStructure: RepoStructure, outputDir: string, config?: Partial<DocumentationConfig>, verbose?: boolean): Promise<void>;
|
|
12
|
-
private generateAllDocumentation;
|
|
13
|
-
private generateMainIndex;
|
|
14
|
-
generateMentalModelOnly(repoStructure: RepoStructure, outputDir: string, verbose?: boolean): Promise<void>;
|
|
15
|
-
generateAIGuidelinesOnly(repoStructure: RepoStructure, outputDir: string, verbose?: boolean): Promise<void>;
|
|
16
|
-
generateArchitectureDecisionsOnly(repoStructure: RepoStructure, outputDir: string, verbose?: boolean): Promise<void>;
|
|
17
|
-
generateSoftwareGuidelinesOnly(repoStructure: RepoStructure, outputDir: string, verbose?: boolean): Promise<void>;
|
|
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;
|
|
18
11
|
}
|
|
12
|
+
export {};
|
|
19
13
|
//# sourceMappingURL=documentationGenerator.d.ts.map
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -35,92 +35,80 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.DocumentationGenerator = void 0;
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
|
-
const moduleGrouper_1 = require("../moduleGrouper");
|
|
39
38
|
const shared_1 = require("../shared");
|
|
40
|
-
const
|
|
41
|
-
const
|
|
39
|
+
const templates_1 = require("./templates");
|
|
40
|
+
const guideRegistry_1 = require("./guideRegistry");
|
|
42
41
|
class DocumentationGenerator {
|
|
43
|
-
constructor(
|
|
44
|
-
this.
|
|
45
|
-
this.llmClient = llmClient;
|
|
46
|
-
this.moduleGrouper = new moduleGrouper_1.ModuleGrouper(fileMapper);
|
|
47
|
-
this.templates = new documentationTemplates_1.DocumentationTemplates(llmClient, fileMapper);
|
|
42
|
+
constructor(..._legacyArgs) {
|
|
43
|
+
this.guides = guideRegistry_1.DOCUMENT_GUIDES;
|
|
48
44
|
}
|
|
49
45
|
async generateDocumentation(repoStructure, outputDir, config = {}, verbose = false) {
|
|
50
|
-
const fullConfig = {
|
|
51
|
-
focusAreas: [],
|
|
52
|
-
maxContentLength: 2000,
|
|
53
|
-
includeExamples: true,
|
|
54
|
-
enabledTypes: documentationTypes_1.DOCUMENTATION_TYPES_ARRAY,
|
|
55
|
-
...config
|
|
56
|
-
};
|
|
57
46
|
const docsDir = path.join(outputDir, 'docs');
|
|
58
|
-
await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, '
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
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;
|
|
62
59
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
|
74
82
|
};
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
}
|
|
84
|
+
getDocSections(guides) {
|
|
85
|
+
const sections = [
|
|
86
|
+
{
|
|
87
|
+
fileName: 'README.md',
|
|
88
|
+
content: context => (0, templates_1.renderIndex)(context)
|
|
81
89
|
}
|
|
82
|
-
|
|
83
|
-
|
|
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;
|
|
84
105
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
// Convenience methods for specific documentation types
|
|
93
|
-
async generateMentalModelOnly(repoStructure, outputDir, verbose = false) {
|
|
94
|
-
const docsDir = path.join(outputDir, 'docs');
|
|
95
|
-
await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, '🧠 Generating mental model documentation');
|
|
96
|
-
const moduleGroups = this.moduleGrouper.getModuleGroups(repoStructure);
|
|
97
|
-
const content = await this.templates.createMentalModel(repoStructure, moduleGroups);
|
|
98
|
-
const filePath = path.join(docsDir, 'mental-model.md');
|
|
99
|
-
await shared_1.GeneratorUtils.writeFileWithLogging(filePath, content, verbose, 'Generated Mental Model');
|
|
100
|
-
}
|
|
101
|
-
async generateAIGuidelinesOnly(repoStructure, outputDir, verbose = false) {
|
|
102
|
-
const docsDir = path.join(outputDir, 'docs');
|
|
103
|
-
await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, '🤖 Generating AI guidelines documentation');
|
|
104
|
-
const moduleGroups = this.moduleGrouper.getModuleGroups(repoStructure);
|
|
105
|
-
const content = await this.templates.createAIGuidelines(repoStructure, moduleGroups);
|
|
106
|
-
const filePath = path.join(docsDir, 'ai-guidelines.md');
|
|
107
|
-
await shared_1.GeneratorUtils.writeFileWithLogging(filePath, content, verbose, 'Generated AI Guidelines');
|
|
108
|
-
}
|
|
109
|
-
async generateArchitectureDecisionsOnly(repoStructure, outputDir, verbose = false) {
|
|
110
|
-
const docsDir = path.join(outputDir, 'docs');
|
|
111
|
-
await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, '🏗️ Generating architecture decisions documentation');
|
|
112
|
-
const moduleGroups = this.moduleGrouper.getModuleGroups(repoStructure);
|
|
113
|
-
const content = await this.templates.createArchitectureDecisions(repoStructure, moduleGroups);
|
|
114
|
-
const filePath = path.join(docsDir, 'architecture-decisions.md');
|
|
115
|
-
await shared_1.GeneratorUtils.writeFileWithLogging(filePath, content, verbose, 'Generated Architecture Decisions');
|
|
116
|
-
}
|
|
117
|
-
async generateSoftwareGuidelinesOnly(repoStructure, outputDir, verbose = false) {
|
|
118
|
-
const docsDir = path.join(outputDir, 'docs');
|
|
119
|
-
await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, '📋 Generating software development guidelines');
|
|
120
|
-
const moduleGroups = this.moduleGrouper.getModuleGroups(repoStructure);
|
|
121
|
-
const content = await this.templates.createSoftwareGuidelines(repoStructure, moduleGroups);
|
|
122
|
-
const filePath = path.join(docsDir, 'software-guidelines.md');
|
|
123
|
-
await shared_1.GeneratorUtils.writeFileWithLogging(filePath, content, verbose, 'Generated Software Development Guidelines');
|
|
106
|
+
sections.push({
|
|
107
|
+
fileName: guide.file,
|
|
108
|
+
content: renderer
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
return sections;
|
|
124
112
|
}
|
|
125
113
|
}
|
|
126
114
|
exports.DocumentationGenerator = DocumentationGenerator;
|