@ai-coders/context 0.5.0 → 0.5.2
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 +103 -360
- package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -1
- package/dist/generators/agents/templates/playbookTemplate.js +5 -1
- package/dist/generators/agents/templates/playbookTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/apiReferenceTemplate.js +3 -1
- package/dist/generators/documentation/templates/apiReferenceTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/architectureTemplate.js +16 -12
- package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/common.d.ts +5 -0
- package/dist/generators/documentation/templates/common.d.ts.map +1 -1
- package/dist/generators/documentation/templates/common.js +14 -0
- package/dist/generators/documentation/templates/common.js.map +1 -1
- package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/dataFlowTemplate.js +10 -6
- package/dist/generators/documentation/templates/dataFlowTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +5 -3
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/glossaryTemplate.js +10 -6
- package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/migrationTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/migrationTemplate.js +3 -1
- package/dist/generators/documentation/templates/migrationTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/onboardingTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/onboardingTemplate.js +3 -1
- package/dist/generators/documentation/templates/onboardingTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/projectOverviewTemplate.js +14 -10
- package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/securityTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/securityTemplate.js +11 -5
- package/dist/generators/documentation/templates/securityTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/testingTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/testingTemplate.js +5 -2
- package/dist/generators/documentation/templates/testingTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/toolingTemplate.js +11 -8
- package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/troubleshootingTemplate.js +3 -1
- package/dist/generators/documentation/templates/troubleshootingTemplate.js.map +1 -1
- package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -1
- package/dist/generators/plans/templates/planTemplate.js +5 -3
- package/dist/generators/plans/templates/planTemplate.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +235 -39
- package/dist/index.js.map +1 -1
- package/dist/services/ai/agents/documentationAgent.d.ts.map +1 -1
- package/dist/services/ai/agents/documentationAgent.js +3 -29
- package/dist/services/ai/agents/documentationAgent.js.map +1 -1
- package/dist/services/ai/agents/planAgent.d.ts.map +1 -1
- package/dist/services/ai/agents/planAgent.js +6 -53
- package/dist/services/ai/agents/planAgent.js.map +1 -1
- package/dist/services/ai/agents/playbookAgent.d.ts.map +1 -1
- package/dist/services/ai/agents/playbookAgent.js +3 -24
- package/dist/services/ai/agents/playbookAgent.js.map +1 -1
- package/dist/services/ai/prompts/index.d.ts +2 -0
- package/dist/services/ai/prompts/index.d.ts.map +1 -0
- package/dist/services/ai/prompts/index.js +12 -0
- package/dist/services/ai/prompts/index.js.map +1 -0
- package/dist/services/ai/prompts/sharedPrompts.d.ts +33 -0
- package/dist/services/ai/prompts/sharedPrompts.d.ts.map +1 -0
- package/dist/services/ai/prompts/sharedPrompts.js +136 -0
- package/dist/services/ai/prompts/sharedPrompts.js.map +1 -0
- package/dist/services/ai/schemas.d.ts +1 -1
- package/dist/services/ai/toolRegistry.d.ts +27 -0
- package/dist/services/ai/toolRegistry.d.ts.map +1 -0
- package/dist/services/ai/toolRegistry.js +126 -0
- package/dist/services/ai/toolRegistry.js.map +1 -0
- package/dist/services/ai/tools/fillScaffoldingTool.d.ts +75 -5
- package/dist/services/ai/tools/fillScaffoldingTool.d.ts.map +1 -1
- package/dist/services/ai/tools/fillScaffoldingTool.js +247 -43
- package/dist/services/ai/tools/fillScaffoldingTool.js.map +1 -1
- package/dist/services/ai/tools/index.d.ts +2 -2
- package/dist/services/ai/tools/index.d.ts.map +1 -1
- package/dist/services/ai/tools/index.js +9 -3
- package/dist/services/ai/tools/index.js.map +1 -1
- package/dist/services/ai/tools/initializeContextTool.d.ts +1 -1
- package/dist/services/fill/fillService.d.ts.map +1 -1
- package/dist/services/fill/fillService.js +7 -2
- package/dist/services/fill/fillService.js.map +1 -1
- package/dist/services/mcp/mcpServer.d.ts.map +1 -1
- package/dist/services/mcp/mcpServer.js +60 -20
- package/dist/services/mcp/mcpServer.js.map +1 -1
- package/dist/services/state/index.d.ts +2 -0
- package/dist/services/state/index.d.ts.map +1 -0
- package/dist/services/state/index.js +6 -0
- package/dist/services/state/index.js.map +1 -0
- package/dist/services/state/stateDetector.d.ts +53 -0
- package/dist/services/state/stateDetector.d.ts.map +1 -0
- package/dist/services/state/stateDetector.js +189 -0
- package/dist/services/state/stateDetector.js.map +1 -0
- package/dist/services/update/index.d.ts +2 -0
- package/dist/services/update/index.d.ts.map +1 -0
- package/dist/services/update/index.js +6 -0
- package/dist/services/update/index.js.map +1 -0
- package/dist/services/update/updateService.d.ts +64 -0
- package/dist/services/update/updateService.d.ts.map +1 -0
- package/dist/services/update/updateService.js +295 -0
- package/dist/services/update/updateService.js.map +1 -0
- package/dist/types.d.ts +0 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/frontMatter.d.ts +55 -0
- package/dist/utils/frontMatter.d.ts.map +1 -0
- package/dist/utils/frontMatter.js +173 -0
- package/dist/utils/frontMatter.js.map +1 -0
- package/dist/utils/i18n.d.ts +14 -0
- package/dist/utils/i18n.d.ts.map +1 -1
- package/dist/utils/i18n.js +28 -0
- package/dist/utils/i18n.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* StateDetector - Detects the current state of the project's context documentation.
|
|
4
|
+
*
|
|
5
|
+
* States:
|
|
6
|
+
* - new: No .context directory exists
|
|
7
|
+
* - unfilled: .context exists but files have `status: unfilled` front matter
|
|
8
|
+
* - ready: .context exists with filled content
|
|
9
|
+
* - outdated: .context is older than source code
|
|
10
|
+
*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.default = exports.StateDetector = void 0;
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
const fs = __importStar(require("fs-extra"));
|
|
48
|
+
const glob_1 = require("glob");
|
|
49
|
+
const frontMatter_1 = require("../../utils/frontMatter");
|
|
50
|
+
const DEFAULT_SOURCE_DIRS = ['src', 'lib', 'app', 'packages'];
|
|
51
|
+
class StateDetector {
|
|
52
|
+
constructor(options) {
|
|
53
|
+
this.projectPath = options.projectPath;
|
|
54
|
+
this.contextDirName = options.contextDirName || '.context';
|
|
55
|
+
this.sourceDirs = options.sourceDirs || DEFAULT_SOURCE_DIRS;
|
|
56
|
+
}
|
|
57
|
+
get contextDir() {
|
|
58
|
+
return path.join(this.projectPath, this.contextDirName);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Detect the current state of the project
|
|
62
|
+
*/
|
|
63
|
+
async detect() {
|
|
64
|
+
const hasContextDir = await fs.pathExists(this.contextDir);
|
|
65
|
+
if (!hasContextDir) {
|
|
66
|
+
return {
|
|
67
|
+
state: 'new',
|
|
68
|
+
contextDir: this.contextDir,
|
|
69
|
+
details: {
|
|
70
|
+
hasContextDir: false,
|
|
71
|
+
totalFiles: 0,
|
|
72
|
+
filledFiles: 0,
|
|
73
|
+
unfilledFiles: 0
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// Get stats about filled/unfilled files
|
|
78
|
+
const stats = await (0, frontMatter_1.getFilledStats)(this.contextDir);
|
|
79
|
+
// If there are unfilled files, state is 'unfilled'
|
|
80
|
+
if (stats.unfilled > 0) {
|
|
81
|
+
return {
|
|
82
|
+
state: 'unfilled',
|
|
83
|
+
contextDir: this.contextDir,
|
|
84
|
+
details: {
|
|
85
|
+
hasContextDir: true,
|
|
86
|
+
totalFiles: stats.total,
|
|
87
|
+
filledFiles: stats.filled,
|
|
88
|
+
unfilledFiles: stats.unfilled
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
// Check if docs are outdated compared to code
|
|
93
|
+
const codeLastModified = await this.getNewestMtime(this.sourceDirs);
|
|
94
|
+
const docsLastModified = await this.getContextMtime();
|
|
95
|
+
if (codeLastModified && docsLastModified && codeLastModified > docsLastModified) {
|
|
96
|
+
const daysBehind = Math.floor((codeLastModified.getTime() - docsLastModified.getTime()) / (1000 * 60 * 60 * 24));
|
|
97
|
+
return {
|
|
98
|
+
state: 'outdated',
|
|
99
|
+
contextDir: this.contextDir,
|
|
100
|
+
details: {
|
|
101
|
+
hasContextDir: true,
|
|
102
|
+
totalFiles: stats.total,
|
|
103
|
+
filledFiles: stats.filled,
|
|
104
|
+
unfilledFiles: stats.unfilled,
|
|
105
|
+
codeLastModified,
|
|
106
|
+
docsLastModified,
|
|
107
|
+
daysBehind
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
// Everything is ready
|
|
112
|
+
return {
|
|
113
|
+
state: 'ready',
|
|
114
|
+
contextDir: this.contextDir,
|
|
115
|
+
details: {
|
|
116
|
+
hasContextDir: true,
|
|
117
|
+
totalFiles: stats.total,
|
|
118
|
+
filledFiles: stats.filled,
|
|
119
|
+
unfilledFiles: stats.unfilled,
|
|
120
|
+
codeLastModified,
|
|
121
|
+
docsLastModified
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get the newest modification time from source directories
|
|
127
|
+
*/
|
|
128
|
+
async getNewestMtime(dirs) {
|
|
129
|
+
let newest;
|
|
130
|
+
for (const dir of dirs) {
|
|
131
|
+
const fullPath = path.join(this.projectPath, dir);
|
|
132
|
+
if (!await fs.pathExists(fullPath)) {
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
const files = await (0, glob_1.glob)(`${fullPath}/**/*.{ts,tsx,js,jsx,py,go,rs,java,rb}`, {
|
|
137
|
+
ignore: ['**/node_modules/**', '**/dist/**', '**/.git/**']
|
|
138
|
+
});
|
|
139
|
+
for (const file of files) {
|
|
140
|
+
const stat = await fs.stat(file);
|
|
141
|
+
if (!newest || stat.mtime > newest) {
|
|
142
|
+
newest = stat.mtime;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
// Ignore errors for individual directories
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return newest;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get the newest modification time from .context directory
|
|
154
|
+
*/
|
|
155
|
+
async getContextMtime() {
|
|
156
|
+
let newest;
|
|
157
|
+
try {
|
|
158
|
+
const files = await (0, glob_1.glob)(`${this.contextDir}/**/*.md`);
|
|
159
|
+
for (const file of files) {
|
|
160
|
+
const stat = await fs.stat(file);
|
|
161
|
+
if (!newest || stat.mtime > newest) {
|
|
162
|
+
newest = stat.mtime;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
// Ignore errors
|
|
168
|
+
}
|
|
169
|
+
return newest;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get a human-readable description of the state
|
|
173
|
+
*/
|
|
174
|
+
static describeState(result) {
|
|
175
|
+
switch (result.state) {
|
|
176
|
+
case 'new':
|
|
177
|
+
return 'No context documentation found';
|
|
178
|
+
case 'unfilled':
|
|
179
|
+
return `${result.details.unfilledFiles} of ${result.details.totalFiles} files need to be filled`;
|
|
180
|
+
case 'outdated':
|
|
181
|
+
return `Documentation is ${result.details.daysBehind} day(s) behind code`;
|
|
182
|
+
case 'ready':
|
|
183
|
+
return `${result.details.totalFiles} documentation files up to date`;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
exports.StateDetector = StateDetector;
|
|
188
|
+
exports.default = StateDetector;
|
|
189
|
+
//# sourceMappingURL=stateDetector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateDetector.js","sourceRoot":"","sources":["../../../src/services/state/stateDetector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/update/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateService = void 0;
|
|
4
|
+
var updateService_1 = require("./updateService");
|
|
5
|
+
Object.defineProperty(exports, "UpdateService", { enumerable: true, get: function () { return updateService_1.UpdateService; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/update/index.ts"],"names":[],"mappings":";;;AAAA,iDAMyB;AALvB,8GAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { CLIInterface } from '../../utils/cliUI';
|
|
2
|
+
import type { TranslateFn } from '../../utils/i18n';
|
|
3
|
+
import type { LLMConfig } from '../../types';
|
|
4
|
+
export interface UpdateCommandFlags {
|
|
5
|
+
output?: string;
|
|
6
|
+
verbose?: boolean;
|
|
7
|
+
model?: string;
|
|
8
|
+
provider?: LLMConfig['provider'];
|
|
9
|
+
apiKey?: string;
|
|
10
|
+
baseUrl?: string;
|
|
11
|
+
dryRun?: boolean;
|
|
12
|
+
/** Use git diff to detect changes (falls back to mtime if not available) */
|
|
13
|
+
useGit?: boolean;
|
|
14
|
+
/** Number of days to look back for changes */
|
|
15
|
+
days?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface ModifiedFile {
|
|
18
|
+
path: string;
|
|
19
|
+
relativePath: string;
|
|
20
|
+
modifiedAt: Date;
|
|
21
|
+
}
|
|
22
|
+
export interface AffectedDoc {
|
|
23
|
+
path: string;
|
|
24
|
+
relativePath: string;
|
|
25
|
+
references: string[];
|
|
26
|
+
}
|
|
27
|
+
export interface UpdateAnalysis {
|
|
28
|
+
modifiedCodeFiles: ModifiedFile[];
|
|
29
|
+
affectedDocs: AffectedDoc[];
|
|
30
|
+
daysBehind: number;
|
|
31
|
+
lastCodeChange: Date | null;
|
|
32
|
+
lastDocChange: Date | null;
|
|
33
|
+
}
|
|
34
|
+
interface UpdateServiceDependencies {
|
|
35
|
+
ui: CLIInterface;
|
|
36
|
+
t: TranslateFn;
|
|
37
|
+
}
|
|
38
|
+
export declare class UpdateService {
|
|
39
|
+
private readonly ui;
|
|
40
|
+
private readonly t;
|
|
41
|
+
constructor(dependencies: UpdateServiceDependencies);
|
|
42
|
+
/**
|
|
43
|
+
* Analyze what needs to be updated
|
|
44
|
+
*/
|
|
45
|
+
analyze(repoPath: string, options?: UpdateCommandFlags): Promise<UpdateAnalysis>;
|
|
46
|
+
/**
|
|
47
|
+
* Display analysis results to the user
|
|
48
|
+
*/
|
|
49
|
+
displayAnalysis(analysis: UpdateAnalysis): void;
|
|
50
|
+
/**
|
|
51
|
+
* Get list of files that would be updated
|
|
52
|
+
*/
|
|
53
|
+
getFilesToUpdate(analysis: UpdateAnalysis): string[];
|
|
54
|
+
private getModifiedCodeFiles;
|
|
55
|
+
private isGitRepo;
|
|
56
|
+
private getModifiedFilesFromGit;
|
|
57
|
+
private getModifiedFilesByMtime;
|
|
58
|
+
private isCodeFile;
|
|
59
|
+
private getDocFiles;
|
|
60
|
+
private findAffectedDocs;
|
|
61
|
+
private getLastModificationTime;
|
|
62
|
+
}
|
|
63
|
+
export {};
|
|
64
|
+
//# sourceMappingURL=updateService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateService.d.ts","sourceRoot":"","sources":["../../../src/services/update/updateService.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,YAAY,EAAE,CAAC;IAClC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;CAC5B;AAED,UAAU,yBAAyB;IACjC,EAAE,EAAE,YAAY,CAAC;IACjB,CAAC,EAAE,WAAW,CAAC;CAChB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAc;gBAEpB,YAAY,EAAE,yBAAyB;IAKnD;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IAkC1F;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAoC/C;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,EAAE;YAItC,oBAAoB;IAelC,OAAO,CAAC,SAAS;YASH,uBAAuB;YAmDvB,uBAAuB;IA6CrC,OAAO,CAAC,UAAU;YAUJ,WAAW;YAWX,gBAAgB;YA2DhB,uBAAuB;CAqBtC"}
|
|
@@ -0,0 +1,295 @@
|
|
|
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.UpdateService = void 0;
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const fs = __importStar(require("fs-extra"));
|
|
39
|
+
const glob_1 = require("glob");
|
|
40
|
+
const child_process_1 = require("child_process");
|
|
41
|
+
const theme_1 = require("../../utils/theme");
|
|
42
|
+
class UpdateService {
|
|
43
|
+
constructor(dependencies) {
|
|
44
|
+
this.ui = dependencies.ui;
|
|
45
|
+
this.t = dependencies.t;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Analyze what needs to be updated
|
|
49
|
+
*/
|
|
50
|
+
async analyze(repoPath, options = {}) {
|
|
51
|
+
const resolvedRepo = path.resolve(repoPath);
|
|
52
|
+
const contextDir = path.join(resolvedRepo, options.output || '.context');
|
|
53
|
+
const docsDir = path.join(contextDir, 'docs');
|
|
54
|
+
// Get modified code files
|
|
55
|
+
const modifiedCodeFiles = await this.getModifiedCodeFiles(resolvedRepo, contextDir, options);
|
|
56
|
+
// Get all docs
|
|
57
|
+
const docFiles = await this.getDocFiles(docsDir);
|
|
58
|
+
// Find which docs reference the modified files
|
|
59
|
+
const affectedDocs = await this.findAffectedDocs(docFiles, modifiedCodeFiles);
|
|
60
|
+
// Calculate timing
|
|
61
|
+
const lastCodeChange = modifiedCodeFiles.length > 0
|
|
62
|
+
? new Date(Math.max(...modifiedCodeFiles.map(f => f.modifiedAt.getTime())))
|
|
63
|
+
: null;
|
|
64
|
+
const lastDocChange = await this.getLastModificationTime(docsDir);
|
|
65
|
+
const daysBehind = lastCodeChange && lastDocChange
|
|
66
|
+
? Math.floor((lastCodeChange.getTime() - lastDocChange.getTime()) / (1000 * 60 * 60 * 24))
|
|
67
|
+
: 0;
|
|
68
|
+
return {
|
|
69
|
+
modifiedCodeFiles,
|
|
70
|
+
affectedDocs,
|
|
71
|
+
daysBehind: Math.max(0, daysBehind),
|
|
72
|
+
lastCodeChange,
|
|
73
|
+
lastDocChange
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Display analysis results to the user
|
|
78
|
+
*/
|
|
79
|
+
displayAnalysis(analysis) {
|
|
80
|
+
if (analysis.modifiedCodeFiles.length === 0) {
|
|
81
|
+
console.log(`\n${theme_1.symbols.success} Documentation is up to date!`);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
console.log(`\n${theme_1.colors.primaryBold('Modified code files:')} ${analysis.modifiedCodeFiles.length}`);
|
|
85
|
+
const filesToShow = analysis.modifiedCodeFiles.slice(0, 10);
|
|
86
|
+
for (const file of filesToShow) {
|
|
87
|
+
console.log(theme_1.colors.secondaryDim(` ${file.relativePath}`));
|
|
88
|
+
}
|
|
89
|
+
if (analysis.modifiedCodeFiles.length > 10) {
|
|
90
|
+
console.log(theme_1.colors.secondaryDim(` ... and ${analysis.modifiedCodeFiles.length - 10} more`));
|
|
91
|
+
}
|
|
92
|
+
if (analysis.affectedDocs.length > 0) {
|
|
93
|
+
console.log(`\n${theme_1.colors.primaryBold('Docs that may need updating:')} ${analysis.affectedDocs.length}`);
|
|
94
|
+
for (const doc of analysis.affectedDocs) {
|
|
95
|
+
const refs = doc.references.slice(0, 3).join(', ');
|
|
96
|
+
const moreRefs = doc.references.length > 3 ? ` (+${doc.references.length - 3} more)` : '';
|
|
97
|
+
console.log(theme_1.colors.secondary(` ${theme_1.symbols.bullet} ${doc.relativePath}`));
|
|
98
|
+
console.log(theme_1.colors.secondaryDim(` mentions: ${refs}${moreRefs}`));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
console.log(`\n${theme_1.colors.secondaryDim('No docs directly reference the modified files.')}`);
|
|
103
|
+
console.log(theme_1.colors.secondaryDim('Consider running a full update to ensure everything is current.'));
|
|
104
|
+
}
|
|
105
|
+
if (analysis.daysBehind > 0) {
|
|
106
|
+
console.log(`\n${theme_1.colors.warning(`⚠ Docs are ${analysis.daysBehind} day(s) behind code changes`)}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get list of files that would be updated
|
|
111
|
+
*/
|
|
112
|
+
getFilesToUpdate(analysis) {
|
|
113
|
+
return analysis.affectedDocs.map(doc => doc.path);
|
|
114
|
+
}
|
|
115
|
+
async getModifiedCodeFiles(repoPath, contextDir, options) {
|
|
116
|
+
const useGit = options.useGit !== false && this.isGitRepo(repoPath);
|
|
117
|
+
const days = options.days || 30;
|
|
118
|
+
if (useGit) {
|
|
119
|
+
return this.getModifiedFilesFromGit(repoPath, contextDir, days);
|
|
120
|
+
}
|
|
121
|
+
return this.getModifiedFilesByMtime(repoPath, contextDir, days);
|
|
122
|
+
}
|
|
123
|
+
isGitRepo(repoPath) {
|
|
124
|
+
try {
|
|
125
|
+
(0, child_process_1.execSync)('git rev-parse --is-inside-work-tree', { cwd: repoPath, stdio: 'pipe' });
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
async getModifiedFilesFromGit(repoPath, contextDir, days) {
|
|
133
|
+
try {
|
|
134
|
+
// Get files modified in the last N days
|
|
135
|
+
const since = new Date();
|
|
136
|
+
since.setDate(since.getDate() - days);
|
|
137
|
+
const sinceStr = since.toISOString().split('T')[0];
|
|
138
|
+
const output = (0, child_process_1.execSync)(`git log --since="${sinceStr}" --name-only --pretty=format: | sort -u | grep -v "^$"`, { cwd: repoPath, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
139
|
+
if (!output) {
|
|
140
|
+
return [];
|
|
141
|
+
}
|
|
142
|
+
const files = output.split('\n').filter(f => f.trim());
|
|
143
|
+
const result = [];
|
|
144
|
+
for (const file of files) {
|
|
145
|
+
const fullPath = path.join(repoPath, file);
|
|
146
|
+
// Skip context directory and non-code files
|
|
147
|
+
if (fullPath.startsWith(contextDir))
|
|
148
|
+
continue;
|
|
149
|
+
if (!this.isCodeFile(file))
|
|
150
|
+
continue;
|
|
151
|
+
try {
|
|
152
|
+
const stat = await fs.stat(fullPath);
|
|
153
|
+
if (stat.isFile()) {
|
|
154
|
+
result.push({
|
|
155
|
+
path: fullPath,
|
|
156
|
+
relativePath: file,
|
|
157
|
+
modifiedAt: stat.mtime
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
// File may have been deleted
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
// Fall back to mtime if git command fails
|
|
169
|
+
return this.getModifiedFilesByMtime(repoPath, contextDir, days);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async getModifiedFilesByMtime(repoPath, contextDir, days) {
|
|
173
|
+
const cutoff = new Date();
|
|
174
|
+
cutoff.setDate(cutoff.getDate() - days);
|
|
175
|
+
const patterns = [
|
|
176
|
+
'**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx',
|
|
177
|
+
'**/*.py', '**/*.go', '**/*.rs', '**/*.java',
|
|
178
|
+
'**/*.rb', '**/*.php', '**/*.c', '**/*.cpp', '**/*.h'
|
|
179
|
+
];
|
|
180
|
+
const result = [];
|
|
181
|
+
for (const pattern of patterns) {
|
|
182
|
+
const files = await (0, glob_1.glob)(pattern, {
|
|
183
|
+
cwd: repoPath,
|
|
184
|
+
ignore: ['**/node_modules/**', '**/.git/**', '.context/**'],
|
|
185
|
+
absolute: true
|
|
186
|
+
});
|
|
187
|
+
for (const file of files) {
|
|
188
|
+
if (file.startsWith(contextDir))
|
|
189
|
+
continue;
|
|
190
|
+
try {
|
|
191
|
+
const stat = await fs.stat(file);
|
|
192
|
+
if (stat.mtime >= cutoff) {
|
|
193
|
+
result.push({
|
|
194
|
+
path: file,
|
|
195
|
+
relativePath: path.relative(repoPath, file),
|
|
196
|
+
modifiedAt: stat.mtime
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
// Skip files we can't stat
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// Sort by modification time (newest first)
|
|
206
|
+
return result.sort((a, b) => b.modifiedAt.getTime() - a.modifiedAt.getTime());
|
|
207
|
+
}
|
|
208
|
+
isCodeFile(filePath) {
|
|
209
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
210
|
+
const codeExtensions = [
|
|
211
|
+
'.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs',
|
|
212
|
+
'.py', '.go', '.rs', '.java', '.rb', '.php',
|
|
213
|
+
'.c', '.cpp', '.h', '.hpp', '.cs', '.swift', '.kt'
|
|
214
|
+
];
|
|
215
|
+
return codeExtensions.includes(ext);
|
|
216
|
+
}
|
|
217
|
+
async getDocFiles(docsDir) {
|
|
218
|
+
if (!await fs.pathExists(docsDir)) {
|
|
219
|
+
return [];
|
|
220
|
+
}
|
|
221
|
+
return (0, glob_1.glob)('**/*.md', {
|
|
222
|
+
cwd: docsDir,
|
|
223
|
+
absolute: true
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
async findAffectedDocs(docFiles, modifiedFiles) {
|
|
227
|
+
if (modifiedFiles.length === 0) {
|
|
228
|
+
return [];
|
|
229
|
+
}
|
|
230
|
+
// Build search terms from modified files
|
|
231
|
+
const searchTerms = new Set();
|
|
232
|
+
for (const file of modifiedFiles) {
|
|
233
|
+
// Add filename without extension
|
|
234
|
+
const basename = path.basename(file.relativePath, path.extname(file.relativePath));
|
|
235
|
+
searchTerms.add(basename);
|
|
236
|
+
// Add camelCase/PascalCase variations
|
|
237
|
+
// e.g., "authService" from "authService.ts"
|
|
238
|
+
if (basename.includes('-')) {
|
|
239
|
+
// kebab-case to camelCase: "auth-service" -> "authService"
|
|
240
|
+
const camel = basename.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
|
|
241
|
+
searchTerms.add(camel);
|
|
242
|
+
}
|
|
243
|
+
// Add directory name if it seems significant
|
|
244
|
+
const dirName = path.basename(path.dirname(file.relativePath));
|
|
245
|
+
if (dirName && dirName !== '.' && dirName !== 'src') {
|
|
246
|
+
searchTerms.add(dirName);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
const affectedDocs = [];
|
|
250
|
+
for (const docPath of docFiles) {
|
|
251
|
+
try {
|
|
252
|
+
const content = await fs.readFile(docPath, 'utf-8');
|
|
253
|
+
const contentLower = content.toLowerCase();
|
|
254
|
+
const references = [];
|
|
255
|
+
for (const term of searchTerms) {
|
|
256
|
+
if (contentLower.includes(term.toLowerCase())) {
|
|
257
|
+
references.push(term);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
if (references.length > 0) {
|
|
261
|
+
affectedDocs.push({
|
|
262
|
+
path: docPath,
|
|
263
|
+
relativePath: path.basename(path.dirname(docPath)) + '/' + path.basename(docPath),
|
|
264
|
+
references
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
// Skip files we can't read
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
return affectedDocs;
|
|
273
|
+
}
|
|
274
|
+
async getLastModificationTime(dir) {
|
|
275
|
+
if (!await fs.pathExists(dir)) {
|
|
276
|
+
return null;
|
|
277
|
+
}
|
|
278
|
+
const files = await (0, glob_1.glob)('**/*.md', { cwd: dir, absolute: true });
|
|
279
|
+
let latest = null;
|
|
280
|
+
for (const file of files) {
|
|
281
|
+
try {
|
|
282
|
+
const stat = await fs.stat(file);
|
|
283
|
+
if (!latest || stat.mtime > latest) {
|
|
284
|
+
latest = stat.mtime;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
// Skip
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return latest;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
exports.UpdateService = UpdateService;
|
|
295
|
+
//# sourceMappingURL=updateService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateService.js","sourceRoot":"","sources":["../../../src/services/update/updateService.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -19,11 +19,6 @@ export interface RepoStructure {
|
|
|
19
19
|
totalSize: number;
|
|
20
20
|
topLevelDirectoryStats: TopLevelDirectoryStats[];
|
|
21
21
|
}
|
|
22
|
-
export interface OpenRouterConfig {
|
|
23
|
-
apiKey: string;
|
|
24
|
-
baseUrl: string;
|
|
25
|
-
model: string;
|
|
26
|
-
}
|
|
27
22
|
export type AIProvider = 'openrouter' | 'openai' | 'anthropic' | 'google';
|
|
28
23
|
export interface LLMConfig {
|
|
29
24
|
apiKey: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;CAClD;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;CAClD;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1E,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf"}
|