@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
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderToolingGuide = exports.renderSecurity = exports.renderDataFlow = exports.renderGlossary = exports.renderTestingStrategy = exports.renderDevelopmentWorkflow = exports.renderArchitectureNotes = exports.renderProjectOverview = exports.renderIndex = void 0;
|
|
4
|
+
var indexTemplate_1 = require("./indexTemplate");
|
|
5
|
+
Object.defineProperty(exports, "renderIndex", { enumerable: true, get: function () { return indexTemplate_1.renderIndex; } });
|
|
6
|
+
var projectOverviewTemplate_1 = require("./projectOverviewTemplate");
|
|
7
|
+
Object.defineProperty(exports, "renderProjectOverview", { enumerable: true, get: function () { return projectOverviewTemplate_1.renderProjectOverview; } });
|
|
8
|
+
var architectureTemplate_1 = require("./architectureTemplate");
|
|
9
|
+
Object.defineProperty(exports, "renderArchitectureNotes", { enumerable: true, get: function () { return architectureTemplate_1.renderArchitectureNotes; } });
|
|
10
|
+
var developmentWorkflowTemplate_1 = require("./developmentWorkflowTemplate");
|
|
11
|
+
Object.defineProperty(exports, "renderDevelopmentWorkflow", { enumerable: true, get: function () { return developmentWorkflowTemplate_1.renderDevelopmentWorkflow; } });
|
|
12
|
+
var testingTemplate_1 = require("./testingTemplate");
|
|
13
|
+
Object.defineProperty(exports, "renderTestingStrategy", { enumerable: true, get: function () { return testingTemplate_1.renderTestingStrategy; } });
|
|
14
|
+
var glossaryTemplate_1 = require("./glossaryTemplate");
|
|
15
|
+
Object.defineProperty(exports, "renderGlossary", { enumerable: true, get: function () { return glossaryTemplate_1.renderGlossary; } });
|
|
16
|
+
var dataFlowTemplate_1 = require("./dataFlowTemplate");
|
|
17
|
+
Object.defineProperty(exports, "renderDataFlow", { enumerable: true, get: function () { return dataFlowTemplate_1.renderDataFlow; } });
|
|
18
|
+
var securityTemplate_1 = require("./securityTemplate");
|
|
19
|
+
Object.defineProperty(exports, "renderSecurity", { enumerable: true, get: function () { return securityTemplate_1.renderSecurity; } });
|
|
20
|
+
var toolingTemplate_1 = require("./toolingTemplate");
|
|
21
|
+
Object.defineProperty(exports, "renderToolingGuide", { enumerable: true, get: function () { return toolingTemplate_1.renderToolingGuide; } });
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/index.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAArC,4GAAA,WAAW,OAAA;AACpB,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA;AAC9B,+DAAiE;AAAxD,+HAAA,uBAAuB,OAAA;AAChC,6EAA0E;AAAjE,wIAAA,yBAAyB,OAAA;AAClC,qDAA0D;AAAjD,wHAAA,qBAAqB,OAAA;AAC9B,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,qDAAuD;AAA9C,qHAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/indexTemplate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAEvD,wBAAgB,WAAW,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,CAmDzE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderIndex = renderIndex;
|
|
4
|
+
const frontMatter_1 = require("./frontMatter");
|
|
5
|
+
const common_1 = require("./common");
|
|
6
|
+
function renderIndex(context) {
|
|
7
|
+
const frontMatter = (0, frontMatter_1.createFrontMatter)({
|
|
8
|
+
id: 'docs-index',
|
|
9
|
+
goal: 'Keep the documentation map accurate so contributors and agents land on the right guide quickly.',
|
|
10
|
+
requiredInputs: [
|
|
11
|
+
'Current docs and agents directory listings',
|
|
12
|
+
'Recent additions or removals across documentation assets',
|
|
13
|
+
'Latest roadmap or release summary (if available)'
|
|
14
|
+
],
|
|
15
|
+
successCriteria: [
|
|
16
|
+
'Each linked guide exists and reflects its stated purpose',
|
|
17
|
+
'Repository snapshot matches the real top-level structure',
|
|
18
|
+
'Update checklist is confirmed before closing the task'
|
|
19
|
+
],
|
|
20
|
+
relatedAgents: ['documentation-writer', 'architect-specialist']
|
|
21
|
+
});
|
|
22
|
+
const directoryList = (0, common_1.formatDirectoryList)(context, false);
|
|
23
|
+
const documentMap = (0, common_1.buildDocumentMapTable)(context.guides);
|
|
24
|
+
const navigationList = context.guides
|
|
25
|
+
.map(guide => `- [${guide.title}](./${guide.file})`)
|
|
26
|
+
.join('\n') || '- *No guides selected.*';
|
|
27
|
+
return `${frontMatter}
|
|
28
|
+
<!-- ai-task:docs-index -->
|
|
29
|
+
# Documentation Index
|
|
30
|
+
|
|
31
|
+
Welcome to the repository knowledge base. Start with the project overview, then dive into specific guides as needed.
|
|
32
|
+
|
|
33
|
+
## Core Guides
|
|
34
|
+
${navigationList}
|
|
35
|
+
|
|
36
|
+
## Repository Snapshot
|
|
37
|
+
${directoryList || '*Top-level directories will appear here once the repository contains subfolders.*'}
|
|
38
|
+
|
|
39
|
+
## Document Map
|
|
40
|
+
${documentMap}
|
|
41
|
+
|
|
42
|
+
## AI Update Checklist
|
|
43
|
+
1. Gather context with \`git status -sb\` plus the latest commits touching \`docs/\` or \`agents/\`.
|
|
44
|
+
2. Compare the current directory tree against the table above; add or retire rows accordingly.
|
|
45
|
+
3. Update cross-links if guides moved or were renamed; keep anchor text concise.
|
|
46
|
+
4. Record sources consulted inside the commit or PR description for traceability.
|
|
47
|
+
|
|
48
|
+
## Acceptable Sources
|
|
49
|
+
- Repository tree and \`package.json\` scripts for canonical command names.
|
|
50
|
+
- Maintainer-approved issues, RFCs, or product briefs referenced in the repo.
|
|
51
|
+
- Release notes or changelog entries that announce documentation changes.
|
|
52
|
+
|
|
53
|
+
<!-- /ai-task -->
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=indexTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexTemplate.js","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/indexTemplate.ts"],"names":[],"mappings":";;AAIA,kCAmDC;AAvDD,+CAAkD;AAClD,qCAAsE;AAGtE,SAAgB,WAAW,CAAC,OAAqC;IAC/D,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC;QACpC,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,iGAAiG;QACvG,cAAc,EAAE;YACd,4CAA4C;YAC5C,0DAA0D;YAC1D,kDAAkD;SACnD;QACD,eAAe,EAAE;YACf,0DAA0D;YAC1D,0DAA0D;YAC1D,uDAAuD;SACxD;QACD,aAAa,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;KAChE,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAA,4BAAmB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,IAAA,8BAAqB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM;SAClC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,KAAK,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC;SACnD,IAAI,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC;IAE3C,OAAO,GAAG,WAAW;;;;;;;EAOrB,cAAc;;;EAGd,aAAa,IAAI,mFAAmF;;;EAGpG,WAAW;;;;;;;;;;;;;;CAcZ,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectOverviewTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/projectOverviewTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAGvD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,CA+DnF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderProjectOverview = renderProjectOverview;
|
|
4
|
+
const frontMatter_1 = require("./frontMatter");
|
|
5
|
+
const common_1 = require("./common");
|
|
6
|
+
function renderProjectOverview(context) {
|
|
7
|
+
const frontMatter = (0, frontMatter_1.createFrontMatter)({
|
|
8
|
+
id: 'project-overview',
|
|
9
|
+
goal: 'Explain why the project exists, who it serves, and how to get productive quickly.',
|
|
10
|
+
requiredInputs: [
|
|
11
|
+
'Latest product or roadmap brief',
|
|
12
|
+
'Repository metadata (README highlights, package manifests)',
|
|
13
|
+
'List of stakeholders or domain experts for verification'
|
|
14
|
+
],
|
|
15
|
+
successCriteria: [
|
|
16
|
+
'Quick Facts mirror current tooling, stack, and entry points',
|
|
17
|
+
'Directory map explains where primary capabilities live',
|
|
18
|
+
'Next steps point to authoritative specs or dashboards'
|
|
19
|
+
],
|
|
20
|
+
relatedAgents: ['documentation-writer', 'architect-specialist']
|
|
21
|
+
});
|
|
22
|
+
const directoryList = (0, common_1.formatDirectoryList)(context, true);
|
|
23
|
+
const languageSummary = context.primaryLanguages.length > 0
|
|
24
|
+
? context.primaryLanguages.map(lang => `- ${lang.extension} (${lang.count} files)`).join('\n')
|
|
25
|
+
: '- Language mix pending analysis.';
|
|
26
|
+
return `${frontMatter}
|
|
27
|
+
<!-- ai-task:project-overview -->
|
|
28
|
+
# Project Overview
|
|
29
|
+
|
|
30
|
+
> TODO: Summarize the problem this project solves and who benefits from it.
|
|
31
|
+
|
|
32
|
+
## Quick Facts
|
|
33
|
+
- Root path: \`${context.repoStructure.rootPath}\`
|
|
34
|
+
- Primary languages detected:
|
|
35
|
+
${languageSummary}
|
|
36
|
+
|
|
37
|
+
## Directory Map
|
|
38
|
+
${directoryList || '*Add a short description for each relevant directory.*'}
|
|
39
|
+
|
|
40
|
+
## Technology Signals
|
|
41
|
+
- Highlight frameworks, runtimes, state management patterns, data layers, and cross-service communication patterns detected in the repository.
|
|
42
|
+
- Note build tooling, linting, and formatting infrastructure they should be aware of.
|
|
43
|
+
- Call out external services (APIs, queues, cloud resources) and their integration points.
|
|
44
|
+
|
|
45
|
+
## Getting Started Checklist
|
|
46
|
+
1. Install dependencies with \`npm install\`.
|
|
47
|
+
2. Explore the CLI by running \`npm run dev\`.
|
|
48
|
+
3. Review [Development Workflow](./development-workflow.md) for day-to-day tasks.
|
|
49
|
+
|
|
50
|
+
## Next Steps
|
|
51
|
+
Capture product positioning, key stakeholders, and links to external documentation or product specs here.
|
|
52
|
+
|
|
53
|
+
## AI Update Checklist
|
|
54
|
+
1. Review roadmap items or issues labelled “release” to confirm current goals.
|
|
55
|
+
2. Cross-check Quick Facts against \`package.json\` and environment docs.
|
|
56
|
+
3. Refresh the Directory Map to reflect new or retired modules; keep guidance actionable.
|
|
57
|
+
4. Link critical dashboards, specs, or runbooks used by the team.
|
|
58
|
+
5. Flag any details that require human confirmation (e.g., stakeholder ownership).
|
|
59
|
+
|
|
60
|
+
## Acceptable Sources
|
|
61
|
+
- Recent commits, release notes, or ADRs describing high-level changes.
|
|
62
|
+
- Product requirement documents linked from this repository.
|
|
63
|
+
- Confirmed statements from maintainers or product leads.
|
|
64
|
+
|
|
65
|
+
<!-- /ai-task -->
|
|
66
|
+
`;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=projectOverviewTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectOverviewTemplate.js","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/projectOverviewTemplate.ts"],"names":[],"mappings":";;AAIA,sDA+DC;AAnED,+CAAkD;AAElD,qCAA+C;AAE/C,SAAgB,qBAAqB,CAAC,OAAqC;IACzE,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC;QACpC,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,mFAAmF;QACzF,cAAc,EAAE;YACd,iCAAiC;YACjC,4DAA4D;YAC5D,yDAAyD;SAC1D;QACD,eAAe,EAAE;YACf,6DAA6D;YAC7D,wDAAwD;YACxD,uDAAuD;SACxD;QACD,aAAa,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;KAChE,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAA,4BAAmB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;QACzD,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9F,CAAC,CAAC,kCAAkC,CAAC;IAEvC,OAAO,GAAG,WAAW;;;;;;;iBAON,OAAO,CAAC,aAAa,CAAC,QAAQ;;EAE7C,eAAe;;;EAGf,aAAa,IAAI,wDAAwD;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B1E,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"securityTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/securityTemplate.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,IAAI,MAAM,CAgDvC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderSecurity = renderSecurity;
|
|
4
|
+
const frontMatter_1 = require("./frontMatter");
|
|
5
|
+
function renderSecurity() {
|
|
6
|
+
const frontMatter = (0, frontMatter_1.createFrontMatter)({
|
|
7
|
+
id: 'security',
|
|
8
|
+
goal: 'Document authentication, authorization, data protection, and compliance expectations.',
|
|
9
|
+
requiredInputs: [
|
|
10
|
+
'AuthN/AuthZ implementation details',
|
|
11
|
+
'Secrets storage and rotation policies',
|
|
12
|
+
'Compliance frameworks or audit requirements'
|
|
13
|
+
],
|
|
14
|
+
successCriteria: [
|
|
15
|
+
'Explains how users and services authenticate',
|
|
16
|
+
'Lists sensitive data classifications and storage locations',
|
|
17
|
+
'Provides clear escalation paths for security incidents'
|
|
18
|
+
],
|
|
19
|
+
relatedAgents: ['security-auditor', 'code-reviewer']
|
|
20
|
+
});
|
|
21
|
+
return `${frontMatter}
|
|
22
|
+
<!-- ai-task:security -->
|
|
23
|
+
# Security & Compliance Notes
|
|
24
|
+
|
|
25
|
+
Capture the policies and guardrails that keep this project secure and compliant.
|
|
26
|
+
|
|
27
|
+
## Authentication & Authorization
|
|
28
|
+
- Describe identity providers, token formats, session strategies, and role/permission models.
|
|
29
|
+
|
|
30
|
+
## Secrets & Sensitive Data
|
|
31
|
+
- Storage locations (vaults, parameter stores), rotation cadence, encryption practices, and data classifications.
|
|
32
|
+
|
|
33
|
+
## Compliance & Policies
|
|
34
|
+
- Applicable standards (GDPR, SOC2, HIPAA, internal policies) and evidence requirements.
|
|
35
|
+
|
|
36
|
+
## Incident Response
|
|
37
|
+
- On-call contacts, escalation steps, and tooling for detection, triage, and post-incident analysis.
|
|
38
|
+
|
|
39
|
+
## AI Update Checklist
|
|
40
|
+
1. Confirm security libraries and infrastructure match current deployments.
|
|
41
|
+
2. Update secrets management details when storage or naming changes.
|
|
42
|
+
3. Reflect new compliance obligations or audit findings.
|
|
43
|
+
4. Ensure incident response procedures include current contacts and tooling.
|
|
44
|
+
|
|
45
|
+
## Acceptable Sources
|
|
46
|
+
- Security architecture docs, runbooks, policy handbooks.
|
|
47
|
+
- IAM/authorization configuration (code or infrastructure).
|
|
48
|
+
- Compliance updates from security or legal teams.
|
|
49
|
+
|
|
50
|
+
<!-- /ai-task -->
|
|
51
|
+
`;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=securityTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"securityTemplate.js","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/securityTemplate.ts"],"names":[],"mappings":";;AAEA,wCAgDC;AAlDD,+CAAkD;AAElD,SAAgB,cAAc;IAC5B,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC;QACpC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,uFAAuF;QAC7F,cAAc,EAAE;YACd,oCAAoC;YACpC,uCAAuC;YACvC,6CAA6C;SAC9C;QACD,eAAe,EAAE;YACf,8CAA8C;YAC9C,4DAA4D;YAC5D,wDAAwD;SACzD;QACD,aAAa,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC;KACrD,CAAC,CAAC;IAEH,OAAO,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BtB,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testingTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/testingTemplate.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,IAAI,MAAM,CAsD9C"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderTestingStrategy = renderTestingStrategy;
|
|
4
|
+
const frontMatter_1 = require("./frontMatter");
|
|
5
|
+
function renderTestingStrategy() {
|
|
6
|
+
const frontMatter = (0, frontMatter_1.createFrontMatter)({
|
|
7
|
+
id: 'testing-strategy',
|
|
8
|
+
goal: 'Explain how the project maintains quality, from unit coverage to release gates.',
|
|
9
|
+
requiredInputs: [
|
|
10
|
+
'Testing framework configuration (jest.config.js, etc.)',
|
|
11
|
+
'CI requirements for merges/releases',
|
|
12
|
+
'Known flaky suites or troubleshooting notes'
|
|
13
|
+
],
|
|
14
|
+
successCriteria: [
|
|
15
|
+
'Test types list frameworks and ownership at a glance',
|
|
16
|
+
'Commands match package scripts and CI usage',
|
|
17
|
+
'Quality gates describe pass/fail expectations with numbers when possible'
|
|
18
|
+
],
|
|
19
|
+
relatedAgents: ['test-writer', 'code-reviewer']
|
|
20
|
+
});
|
|
21
|
+
return `${frontMatter}
|
|
22
|
+
<!-- ai-task:testing-strategy -->
|
|
23
|
+
# Testing Strategy
|
|
24
|
+
|
|
25
|
+
Document how quality is maintained across the codebase.
|
|
26
|
+
|
|
27
|
+
## Test Types
|
|
28
|
+
- Unit: List frameworks (e.g., Jest) and file naming conventions.
|
|
29
|
+
- Integration: Describe scenarios and required tooling.
|
|
30
|
+
- End-to-end: Note harnesses or environments if applicable.
|
|
31
|
+
|
|
32
|
+
## Running Tests
|
|
33
|
+
- Execute all tests with \`npm run test\`.
|
|
34
|
+
- Use watch mode locally: \`npm run test -- --watch\`.
|
|
35
|
+
- Add coverage runs before releases: \`npm run test -- --coverage\`.
|
|
36
|
+
|
|
37
|
+
## Quality Gates
|
|
38
|
+
- Define minimum coverage expectations.
|
|
39
|
+
- Capture linting or formatting requirements before merging.
|
|
40
|
+
|
|
41
|
+
## Troubleshooting
|
|
42
|
+
- Document flaky suites, long-running tests, or environment quirks.
|
|
43
|
+
|
|
44
|
+
## AI Update Checklist
|
|
45
|
+
1. Review test scripts and CI workflows to confirm command accuracy.
|
|
46
|
+
2. Update Quality Gates with current thresholds (coverage %, lint rules, required checks).
|
|
47
|
+
3. Document new test categories or suites introduced since the last update.
|
|
48
|
+
4. Record known flaky areas and link to open issues for visibility.
|
|
49
|
+
5. Confirm troubleshooting steps remain valid with current tooling.
|
|
50
|
+
|
|
51
|
+
## Acceptable Sources
|
|
52
|
+
- \`package.json\` scripts and testing configuration files.
|
|
53
|
+
- CI job definitions (GitHub Actions, CircleCI, etc.).
|
|
54
|
+
- Issue tracker items labelled “testing” or “flaky” with maintainer confirmation.
|
|
55
|
+
|
|
56
|
+
<!-- /ai-task -->
|
|
57
|
+
`;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=testingTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testingTemplate.js","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/testingTemplate.ts"],"names":[],"mappings":";;AAEA,sDAsDC;AAxDD,+CAAkD;AAElD,SAAgB,qBAAqB;IACnC,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC;QACpC,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,iFAAiF;QACvF,cAAc,EAAE;YACd,wDAAwD;YACxD,qCAAqC;YACrC,6CAA6C;SAC9C;QACD,eAAe,EAAE;YACf,sDAAsD;YACtD,6CAA6C;YAC7C,0EAA0E;SAC3E;QACD,aAAa,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;KAChD,CAAC,CAAC;IAEH,OAAO,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCtB,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolingTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/toolingTemplate.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,IAAI,MAAM,CAmD3C"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderToolingGuide = renderToolingGuide;
|
|
4
|
+
const frontMatter_1 = require("./frontMatter");
|
|
5
|
+
function renderToolingGuide() {
|
|
6
|
+
const frontMatter = (0, frontMatter_1.createFrontMatter)({
|
|
7
|
+
id: 'tooling-guide',
|
|
8
|
+
goal: 'Help contributors set up local environments, automation, and productivity tooling quickly.',
|
|
9
|
+
requiredInputs: [
|
|
10
|
+
'Project-specific CLI commands or scripts',
|
|
11
|
+
'Preferred IDE/editor configurations',
|
|
12
|
+
'Automation hooks (pre-commit, CI helpers, generators)'
|
|
13
|
+
],
|
|
14
|
+
successCriteria: [
|
|
15
|
+
'Includes copy/paste-ready commands for installation and diagnostics',
|
|
16
|
+
'Highlights required extensions or plugins',
|
|
17
|
+
'Links to automation or productivity aids maintained by the team'
|
|
18
|
+
],
|
|
19
|
+
relatedAgents: ['feature-developer', 'documentation-writer']
|
|
20
|
+
});
|
|
21
|
+
return `${frontMatter}
|
|
22
|
+
<!-- ai-task:tooling -->
|
|
23
|
+
# Tooling & Productivity Guide
|
|
24
|
+
|
|
25
|
+
Collect the scripts, automation, and editor settings that keep contributors efficient.
|
|
26
|
+
|
|
27
|
+
## Required Tooling
|
|
28
|
+
- <!-- ai-slot:tool-required -->Tool name — How to install, version requirements, what it powers.<!-- /ai-slot -->
|
|
29
|
+
|
|
30
|
+
## Recommended Automation
|
|
31
|
+
- Pre-commit hooks, linting/formatting commands, code generators, or scaffolding scripts.
|
|
32
|
+
- Shortcuts or watch modes for local development loops.
|
|
33
|
+
|
|
34
|
+
## IDE / Editor Setup
|
|
35
|
+
- Extensions or plugins that catch issues early.
|
|
36
|
+
- Snippets, templates, or workspace settings worth sharing.
|
|
37
|
+
|
|
38
|
+
## Productivity Tips
|
|
39
|
+
- Terminal aliases, container workflows, or local emulators mirroring production.
|
|
40
|
+
- Links to shared scripts or dotfiles used across the team.
|
|
41
|
+
|
|
42
|
+
## AI Update Checklist
|
|
43
|
+
1. Verify commands align with the latest scripts and build tooling.
|
|
44
|
+
2. Remove instructions for deprecated tools and add replacements.
|
|
45
|
+
3. Highlight automation that saves time during reviews or releases.
|
|
46
|
+
4. Cross-link to runbooks or README sections that provide deeper context.
|
|
47
|
+
|
|
48
|
+
## Acceptable Sources
|
|
49
|
+
- Onboarding docs, internal wikis, and team retrospectives.
|
|
50
|
+
- Script directories, package manifests, CI configuration.
|
|
51
|
+
- Maintainer recommendations gathered during pairing or code reviews.
|
|
52
|
+
|
|
53
|
+
<!-- /ai-task -->
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=toolingTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolingTemplate.js","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/toolingTemplate.ts"],"names":[],"mappings":";;AAEA,gDAmDC;AArDD,+CAAkD;AAElD,SAAgB,kBAAkB;IAChC,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC;QACpC,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,4FAA4F;QAClG,cAAc,EAAE;YACd,0CAA0C;YAC1C,qCAAqC;YACrC,uDAAuD;SACxD;QACD,eAAe,EAAE;YACf,qEAAqE;YACrE,2CAA2C;YAC3C,iEAAiE;SAClE;QACD,aAAa,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;KAC7D,CAAC,CAAC;IAEH,OAAO,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCtB,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { RepoStructure } from '../../../types';
|
|
2
|
+
export interface GuideMeta {
|
|
3
|
+
key: string;
|
|
4
|
+
title: string;
|
|
5
|
+
file: string;
|
|
6
|
+
marker: string;
|
|
7
|
+
primaryInputs: string;
|
|
8
|
+
}
|
|
9
|
+
export interface DirectoryStat {
|
|
10
|
+
name: string;
|
|
11
|
+
fileCount: number;
|
|
12
|
+
}
|
|
13
|
+
export interface DocumentationTemplateContext {
|
|
14
|
+
repoStructure: RepoStructure;
|
|
15
|
+
topLevelDirectories: string[];
|
|
16
|
+
primaryLanguages: Array<{
|
|
17
|
+
extension: string;
|
|
18
|
+
count: number;
|
|
19
|
+
}>;
|
|
20
|
+
directoryStats: DirectoryStat[];
|
|
21
|
+
guides: GuideMeta[];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { RepoStructure } from '../../types';
|
|
2
|
+
export interface GuideMeta {
|
|
3
|
+
title: string;
|
|
4
|
+
file: string;
|
|
5
|
+
marker: string;
|
|
6
|
+
primaryInputs: string;
|
|
7
|
+
}
|
|
8
|
+
export interface DirectoryStat {
|
|
9
|
+
name: string;
|
|
10
|
+
fileCount: number;
|
|
11
|
+
}
|
|
12
|
+
export interface DocumentationTemplateContext {
|
|
13
|
+
repoStructure: RepoStructure;
|
|
14
|
+
topLevelDirectories: string[];
|
|
15
|
+
primaryLanguages: Array<{
|
|
16
|
+
extension: string;
|
|
17
|
+
count: number;
|
|
18
|
+
}>;
|
|
19
|
+
directoryStats: DirectoryStat[];
|
|
20
|
+
guides: GuideMeta[];
|
|
21
|
+
}
|
|
22
|
+
export declare function renderIndex(context: DocumentationTemplateContext): string;
|
|
23
|
+
export declare function renderProjectOverview(context: DocumentationTemplateContext): string;
|
|
24
|
+
export declare function renderArchitectureNotes(context: DocumentationTemplateContext): string;
|
|
25
|
+
export declare function renderDevelopmentWorkflow(): string;
|
|
26
|
+
export declare function renderTestingStrategy(): string;
|
|
27
|
+
export declare function renderGlossary(_context: DocumentationTemplateContext): string;
|
|
28
|
+
export declare function renderDataFlow(context: DocumentationTemplateContext): string;
|
|
29
|
+
export declare function renderSecurity(): string;
|
|
30
|
+
export declare function renderToolingGuide(): string;
|
|
31
|
+
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/generators/documentation/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAWD,wBAAgB,WAAW,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,CAuDzE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,CA+DnF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,CA8DrF;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAsDlD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAsD9C;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,4BAA4B,GAAG,MAAM,CAkD7E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,CAiD5E;AAED,wBAAgB,cAAc,IAAI,MAAM,CAgDvC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAmD3C"}
|