@mycodemap/mycodemap 0.2.0 → 0.3.7
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/CHANGELOG.md +95 -0
- package/dist/cli/commands/ship/analyzer.d.ts +26 -0
- package/dist/cli/commands/ship/analyzer.d.ts.map +1 -0
- package/dist/cli/commands/ship/analyzer.js +143 -0
- package/dist/cli/commands/ship/analyzer.js.map +1 -0
- package/dist/cli/commands/ship/checker.d.ts +20 -0
- package/dist/cli/commands/ship/checker.d.ts.map +1 -0
- package/dist/cli/commands/ship/checker.js +86 -0
- package/dist/cli/commands/ship/checker.js.map +1 -0
- package/dist/cli/commands/ship/index.d.ts +17 -0
- package/dist/cli/commands/ship/index.d.ts.map +1 -0
- package/dist/cli/commands/ship/index.js +51 -0
- package/dist/cli/commands/ship/index.js.map +1 -0
- package/dist/cli/commands/ship/monitor.d.ts +19 -0
- package/dist/cli/commands/ship/monitor.d.ts.map +1 -0
- package/dist/cli/commands/ship/monitor.js +105 -0
- package/dist/cli/commands/ship/monitor.js.map +1 -0
- package/dist/cli/commands/ship/pipeline.d.ts +23 -0
- package/dist/cli/commands/ship/pipeline.d.ts.map +1 -0
- package/dist/cli/commands/ship/pipeline.js +152 -0
- package/dist/cli/commands/ship/pipeline.js.map +1 -0
- package/dist/cli/commands/ship/publisher.d.ts +11 -0
- package/dist/cli/commands/ship/publisher.d.ts.map +1 -0
- package/dist/cli/commands/ship/publisher.js +75 -0
- package/dist/cli/commands/ship/publisher.js.map +1 -0
- package/dist/cli/commands/ship/rules/confidence-rules.d.ts +48 -0
- package/dist/cli/commands/ship/rules/confidence-rules.d.ts.map +1 -0
- package/dist/cli/commands/ship/rules/confidence-rules.js +122 -0
- package/dist/cli/commands/ship/rules/confidence-rules.js.map +1 -0
- package/dist/cli/commands/ship/rules/quality-rules.d.ts +25 -0
- package/dist/cli/commands/ship/rules/quality-rules.d.ts.map +1 -0
- package/dist/cli/commands/ship/rules/quality-rules.js +134 -0
- package/dist/cli/commands/ship/rules/quality-rules.js.map +1 -0
- package/dist/cli/commands/ship/rules/version-rules.d.ts +24 -0
- package/dist/cli/commands/ship/rules/version-rules.d.ts.map +1 -0
- package/dist/cli/commands/ship/rules/version-rules.js +75 -0
- package/dist/cli/commands/ship/rules/version-rules.js.map +1 -0
- package/dist/cli/commands/ship/versioner.d.ts +12 -0
- package/dist/cli/commands/ship/versioner.d.ts.map +1 -0
- package/dist/cli/commands/ship/versioner.js +92 -0
- package/dist/cli/commands/ship/versioner.js.map +1 -0
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -1
- package/docs/PUBLISHING.md +344 -34
- package/docs/ai-guide/COMMANDS.md +34 -0
- package/docs/rules/pre-release-checklist.md +426 -0
- package/package.json +8 -2
- package/scripts/.githooks/commit-msg +31 -0
- package/scripts/.githooks/pre-commit +55 -0
- package/scripts/benchmark.ts +209 -0
- package/scripts/hooks/commit-msg +24 -0
- package/scripts/hooks/install-hooks.sh +29 -0
- package/scripts/hooks/pre-commit +60 -0
- package/scripts/pre-release-check.js +717 -0
- package/scripts/release.sh +142 -0
- package/scripts/run-benchmark.sh +29 -0
- package/scripts/validate-ai-docs.js +294 -0
- package/scripts/validate-docs.js +238 -0
- package/scripts/validate-pack.js +86 -0
- package/dist/ai/claude.d.ts +0 -38
- package/dist/ai/claude.d.ts.map +0 -1
- package/dist/ai/claude.js +0 -169
- package/dist/ai/claude.js.map +0 -1
- package/dist/ai/codex.d.ts +0 -38
- package/dist/ai/codex.d.ts.map +0 -1
- package/dist/ai/codex.js +0 -169
- package/dist/ai/codex.js.map +0 -1
- package/dist/ai/factory.d.ts +0 -48
- package/dist/ai/factory.d.ts.map +0 -1
- package/dist/ai/factory.js +0 -95
- package/dist/ai/factory.js.map +0 -1
- package/dist/ai/index.d.ts +0 -12
- package/dist/ai/index.d.ts.map +0 -1
- package/dist/ai/index.js +0 -29
- package/dist/ai/index.js.map +0 -1
- package/dist/ai/provider.d.ts +0 -70
- package/dist/ai/provider.d.ts.map +0 -1
- package/dist/ai/provider.js +0 -31
- package/dist/ai/provider.js.map +0 -1
- package/dist/ai/subagent-caller.d.ts +0 -90
- package/dist/ai/subagent-caller.d.ts.map +0 -1
- package/dist/ai/subagent-caller.js +0 -280
- package/dist/ai/subagent-caller.js.map +0 -1
- package/dist/ai/types.d.ts +0 -70
- package/dist/ai/types.d.ts.map +0 -1
- package/dist/ai/types.js +0 -5
- package/dist/ai/types.js.map +0 -1
- package/dist/generator/ai-overview.d.ts +0 -51
- package/dist/generator/ai-overview.d.ts.map +0 -1
- package/dist/generator/ai-overview.js +0 -160
- package/dist/generator/ai-overview.js.map +0 -1
- package/dist/orchestrator/ai-feed-generator.d.ts +0 -210
- package/dist/orchestrator/ai-feed-generator.d.ts.map +0 -1
- package/dist/orchestrator/ai-feed-generator.js +0 -377
- package/dist/orchestrator/ai-feed-generator.js.map +0 -1
- package/docs/archive/test-report-symbol-search.md +0 -384
- package/docs/archive/test-scenario-4-complexity-analysis.md +0 -460
- package/docs/archive/test_report_scenario5.md +0 -615
- package/docs/archive/test_scenario_3_impact_analysis_report.md +0 -520
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import type { CodeMap } from '../types/index.js';
|
|
2
|
-
import type { SubagentOutput } from '../ai/subagent-caller.js';
|
|
3
|
-
/**
|
|
4
|
-
* AI Overview Generator 配置
|
|
5
|
-
*/
|
|
6
|
-
export interface AIOverviewConfig {
|
|
7
|
-
/** 输出目录 */
|
|
8
|
-
outputDir: string;
|
|
9
|
-
/** 是否启用 AI 生成 */
|
|
10
|
-
enabled?: boolean;
|
|
11
|
-
/** 输出文件名 */
|
|
12
|
-
filename?: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* AI Overview Generator - 生成并保存 AI 概述
|
|
16
|
-
*/
|
|
17
|
-
export declare class AIOverviewGenerator {
|
|
18
|
-
private outputDir;
|
|
19
|
-
private enabled;
|
|
20
|
-
private filename;
|
|
21
|
-
constructor(config: AIOverviewConfig);
|
|
22
|
-
/**
|
|
23
|
-
* 生成并保存 AI 概述
|
|
24
|
-
*/
|
|
25
|
-
generate(codeMap: CodeMap, aiOutput: SubagentOutput): Promise<string>;
|
|
26
|
-
/**
|
|
27
|
-
* 构建 Markdown 内容
|
|
28
|
-
*/
|
|
29
|
-
private buildMarkdown;
|
|
30
|
-
/**
|
|
31
|
-
* 读取已保存的概述
|
|
32
|
-
*/
|
|
33
|
-
read(): Promise<string | null>;
|
|
34
|
-
/**
|
|
35
|
-
* 检查概述是否存在
|
|
36
|
-
*/
|
|
37
|
-
exists(): Promise<boolean>;
|
|
38
|
-
/**
|
|
39
|
-
* 获取输出文件路径
|
|
40
|
-
*/
|
|
41
|
-
getOutputPath(): string;
|
|
42
|
-
/**
|
|
43
|
-
* 是否启用
|
|
44
|
-
*/
|
|
45
|
-
isEnabled(): boolean;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* 创建 AI Overview Generator 实例
|
|
49
|
-
*/
|
|
50
|
-
export declare function createAIOverviewGenerator(config: AIOverviewConfig): AIOverviewGenerator;
|
|
51
|
-
//# sourceMappingURL=ai-overview.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-overview.d.ts","sourceRoot":"","sources":["../../src/generator/ai-overview.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,gBAAgB;IAMpC;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAe3E;;OAEG;IACH,OAAO,CAAC,aAAa;IAgGrB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUpC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAWhC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,mBAAmB,CAEvF"}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
// ============================================
|
|
2
|
-
// AI Overview Generator - AI 概述生成与保存
|
|
3
|
-
// ============================================
|
|
4
|
-
import * as fs from 'fs/promises';
|
|
5
|
-
import * as path from 'path';
|
|
6
|
-
/**
|
|
7
|
-
* AI Overview Generator - 生成并保存 AI 概述
|
|
8
|
-
*/
|
|
9
|
-
export class AIOverviewGenerator {
|
|
10
|
-
outputDir;
|
|
11
|
-
enabled;
|
|
12
|
-
filename;
|
|
13
|
-
constructor(config) {
|
|
14
|
-
this.outputDir = config.outputDir;
|
|
15
|
-
this.enabled = config.enabled ?? true;
|
|
16
|
-
this.filename = config.filename || 'AI_OVERVIEW.md';
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* 生成并保存 AI 概述
|
|
20
|
-
*/
|
|
21
|
-
async generate(codeMap, aiOutput) {
|
|
22
|
-
const outputPath = path.join(this.outputDir, this.filename);
|
|
23
|
-
// 构建 Markdown 内容
|
|
24
|
-
const content = this.buildMarkdown(codeMap, aiOutput);
|
|
25
|
-
// 确保输出目录存在
|
|
26
|
-
await fs.mkdir(this.outputDir, { recursive: true });
|
|
27
|
-
// 写入文件
|
|
28
|
-
await fs.writeFile(outputPath, content, 'utf-8');
|
|
29
|
-
return outputPath;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* 构建 Markdown 内容
|
|
33
|
-
*/
|
|
34
|
-
buildMarkdown(codeMap, aiOutput) {
|
|
35
|
-
const lines = [];
|
|
36
|
-
// 标题
|
|
37
|
-
lines.push('# ' + aiOutput.title);
|
|
38
|
-
lines.push('');
|
|
39
|
-
// 元数据
|
|
40
|
-
lines.push('<!-- AI Generated Overview -->');
|
|
41
|
-
lines.push(`- **生成时间**: ${new Date(aiOutput.metadata.generatedAt).toLocaleString('zh-CN')}`);
|
|
42
|
-
lines.push(`- **模型**: ${aiOutput.metadata.model}`);
|
|
43
|
-
lines.push('');
|
|
44
|
-
// 项目统计
|
|
45
|
-
lines.push('## 项目统计');
|
|
46
|
-
lines.push('');
|
|
47
|
-
lines.push(`| 指标 | 数值 |`);
|
|
48
|
-
lines.push(`|------|------|`);
|
|
49
|
-
lines.push(`| 文件总数 | ${codeMap.summary.totalFiles} |`);
|
|
50
|
-
lines.push(`| 代码行数 | ${codeMap.summary.totalLines} |`);
|
|
51
|
-
lines.push(`| 模块数量 | ${codeMap.summary.totalModules} |`);
|
|
52
|
-
lines.push(`| 导出符号 | ${codeMap.summary.totalExports} |`);
|
|
53
|
-
lines.push(`| 类型定义 | ${codeMap.summary.totalTypes} |`);
|
|
54
|
-
lines.push('');
|
|
55
|
-
// 架构信息
|
|
56
|
-
if (aiOutput.architecture) {
|
|
57
|
-
lines.push('## 架构分析');
|
|
58
|
-
lines.push('');
|
|
59
|
-
lines.push(`- **架构模式**: ${aiOutput.architecture.pattern || '未识别'}`);
|
|
60
|
-
lines.push('');
|
|
61
|
-
if (aiOutput.architecture.layers && aiOutput.architecture.layers.length > 0) {
|
|
62
|
-
lines.push('### 分层结构');
|
|
63
|
-
lines.push('');
|
|
64
|
-
for (const layer of aiOutput.architecture.layers) {
|
|
65
|
-
lines.push(`#### ${layer.name}`);
|
|
66
|
-
lines.push(`- **职责**: ${layer.responsibility}`);
|
|
67
|
-
if (layer.modules.length > 0) {
|
|
68
|
-
lines.push(`- **模块**: ${layer.modules.join(', ')}`);
|
|
69
|
-
}
|
|
70
|
-
lines.push('');
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
if (aiOutput.architecture.metrics) {
|
|
74
|
-
lines.push('### 架构指标');
|
|
75
|
-
lines.push('');
|
|
76
|
-
lines.push(`- **耦合度**: ${aiOutput.architecture.metrics.coupling}`);
|
|
77
|
-
lines.push(`- **内聚度**: ${aiOutput.architecture.metrics.cohesion}`);
|
|
78
|
-
lines.push(`- **复杂度**: ${aiOutput.architecture.metrics.complexity}`);
|
|
79
|
-
lines.push('');
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
// AI 生成的内容
|
|
83
|
-
lines.push('## 项目概述');
|
|
84
|
-
lines.push('');
|
|
85
|
-
lines.push(aiOutput.content);
|
|
86
|
-
lines.push('');
|
|
87
|
-
// 亮点模块
|
|
88
|
-
if (aiOutput.highlights.length > 0) {
|
|
89
|
-
lines.push('## 亮点模块');
|
|
90
|
-
lines.push('');
|
|
91
|
-
for (const highlight of aiOutput.highlights) {
|
|
92
|
-
lines.push(`- ${highlight}`);
|
|
93
|
-
}
|
|
94
|
-
lines.push('');
|
|
95
|
-
}
|
|
96
|
-
// 模块列表(简要)
|
|
97
|
-
lines.push('## 模块列表');
|
|
98
|
-
lines.push('');
|
|
99
|
-
lines.push('| 模块路径 | 导出数 | 依赖数 |');
|
|
100
|
-
lines.push('|----------|--------|--------|');
|
|
101
|
-
for (const mod of codeMap.modules.slice(0, 20)) {
|
|
102
|
-
const exportsCount = mod.exports.length;
|
|
103
|
-
const depsCount = mod.dependencies.length;
|
|
104
|
-
const relPath = path.relative(codeMap.project.rootDir, mod.path);
|
|
105
|
-
lines.push(`| ${relPath} | ${exportsCount} | ${depsCount} |`);
|
|
106
|
-
}
|
|
107
|
-
if (codeMap.modules.length > 20) {
|
|
108
|
-
lines.push(`| ... | ... | ... |`);
|
|
109
|
-
}
|
|
110
|
-
lines.push('');
|
|
111
|
-
lines.push('---');
|
|
112
|
-
lines.push('');
|
|
113
|
-
lines.push('*由 CodeMap AI Generator 生成*');
|
|
114
|
-
return lines.join('\n');
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* 读取已保存的概述
|
|
118
|
-
*/
|
|
119
|
-
async read() {
|
|
120
|
-
const outputPath = path.join(this.outputDir, this.filename);
|
|
121
|
-
try {
|
|
122
|
-
return await fs.readFile(outputPath, 'utf-8');
|
|
123
|
-
}
|
|
124
|
-
catch {
|
|
125
|
-
return null;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* 检查概述是否存在
|
|
130
|
-
*/
|
|
131
|
-
async exists() {
|
|
132
|
-
const outputPath = path.join(this.outputDir, this.filename);
|
|
133
|
-
try {
|
|
134
|
-
await fs.access(outputPath);
|
|
135
|
-
return true;
|
|
136
|
-
}
|
|
137
|
-
catch {
|
|
138
|
-
return false;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* 获取输出文件路径
|
|
143
|
-
*/
|
|
144
|
-
getOutputPath() {
|
|
145
|
-
return path.join(this.outputDir, this.filename);
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* 是否启用
|
|
149
|
-
*/
|
|
150
|
-
isEnabled() {
|
|
151
|
-
return this.enabled;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* 创建 AI Overview Generator 实例
|
|
156
|
-
*/
|
|
157
|
-
export function createAIOverviewGenerator(config) {
|
|
158
|
-
return new AIOverviewGenerator(config);
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=ai-overview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-overview.js","sourceRoot":"","sources":["../../src/generator/ai-overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import { GitAnalyzer, HeatScore } from './git-analyzer';
|
|
2
|
-
/**
|
|
3
|
-
* File metadata interface (flat structure for compatibility)
|
|
4
|
-
*/
|
|
5
|
-
export interface FileMeta {
|
|
6
|
-
/** Creation date, format: 2024-01 */
|
|
7
|
-
since?: string;
|
|
8
|
-
/** Owner/team */
|
|
9
|
-
owner?: string;
|
|
10
|
-
/** Whether stable */
|
|
11
|
-
stable?: boolean;
|
|
12
|
-
/** Reason for existence */
|
|
13
|
-
why?: string;
|
|
14
|
-
/** Key dependencies */
|
|
15
|
-
deps?: string[];
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* File header metadata interface (nested structure)
|
|
19
|
-
* @deprecated Use FileMeta instead
|
|
20
|
-
*/
|
|
21
|
-
export interface FileHeaderMeta {
|
|
22
|
-
/** Creation date, format: 2024-01 */
|
|
23
|
-
since?: string;
|
|
24
|
-
/** Owner/team */
|
|
25
|
-
owner?: string;
|
|
26
|
-
/** Whether stable */
|
|
27
|
-
stable?: boolean;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* File header parsing result interface
|
|
31
|
-
*/
|
|
32
|
-
export interface FileHeader {
|
|
33
|
-
/** META metadata */
|
|
34
|
-
meta?: FileHeaderMeta;
|
|
35
|
-
/** Reason for existence */
|
|
36
|
-
why?: string;
|
|
37
|
-
/** Key dependencies */
|
|
38
|
-
deps?: string[];
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* AI Feed entry interface
|
|
42
|
-
*/
|
|
43
|
-
export interface AIFeed {
|
|
44
|
-
/** File path */
|
|
45
|
-
file: string;
|
|
46
|
-
/** Dependency complexity (out-degree + in-degree) */
|
|
47
|
-
gravity: number;
|
|
48
|
-
/** Heat score */
|
|
49
|
-
heat: HeatScore;
|
|
50
|
-
/** Metadata */
|
|
51
|
-
meta: FileHeaderMeta & {
|
|
52
|
-
why?: string;
|
|
53
|
-
};
|
|
54
|
-
/** Dependencies */
|
|
55
|
-
deps: string[];
|
|
56
|
-
/** Files that depend on this */
|
|
57
|
-
dependents: string[];
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* File header comment scanner
|
|
61
|
-
* Scans [META]/[WHY]/[DEPS] comments at the top of files
|
|
62
|
-
*/
|
|
63
|
-
export declare class FileHeaderScanner {
|
|
64
|
-
/**
|
|
65
|
-
* Scan file header comments
|
|
66
|
-
* Only reads first 10 lines of the file
|
|
67
|
-
*
|
|
68
|
-
* @param filePath - Full file path
|
|
69
|
-
* @returns FileMeta parsing result
|
|
70
|
-
*/
|
|
71
|
-
scan(filePath: string): FileMeta;
|
|
72
|
-
/**
|
|
73
|
-
* Parse file header content string (public for testing)
|
|
74
|
-
* Alias for parseHeaderContent for backward compatibility
|
|
75
|
-
*
|
|
76
|
-
* @param header - File header content (first 10 lines as string)
|
|
77
|
-
* @returns FileMeta parsing result with flat structure
|
|
78
|
-
*/
|
|
79
|
-
parseHeader(header: string): FileMeta;
|
|
80
|
-
/**
|
|
81
|
-
* Parse file header content (public for testing)
|
|
82
|
-
* Returns nested structure for backward compatibility with tests
|
|
83
|
-
*
|
|
84
|
-
* @param header - File header content (first 10 lines)
|
|
85
|
-
* @returns FileHeader parsing result with nested meta
|
|
86
|
-
*/
|
|
87
|
-
parseHeaderContent(header: string): FileHeader & FileMeta;
|
|
88
|
-
/**
|
|
89
|
-
* Validate file header completeness
|
|
90
|
-
* Used by CI gateway
|
|
91
|
-
*
|
|
92
|
-
* @param filePath - File path
|
|
93
|
-
* @returns Validation result
|
|
94
|
-
*/
|
|
95
|
-
validate(filePath: string): {
|
|
96
|
-
valid: boolean;
|
|
97
|
-
missing: string[];
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* AI Feed Generator class
|
|
102
|
-
* Generates structured data for AI consumption
|
|
103
|
-
*/
|
|
104
|
-
export declare class AIFeedGenerator {
|
|
105
|
-
private gitAnalyzer;
|
|
106
|
-
private headerScanner;
|
|
107
|
-
/**
|
|
108
|
-
* Constructor
|
|
109
|
-
*
|
|
110
|
-
* @param gitAnalyzer - GitAnalyzer instance
|
|
111
|
-
*/
|
|
112
|
-
constructor(gitAnalyzer: GitAnalyzer);
|
|
113
|
-
/**
|
|
114
|
-
* Generate AI feed
|
|
115
|
-
* Integrated into codemap generate command
|
|
116
|
-
*
|
|
117
|
-
* @param projectRoot - Project root directory
|
|
118
|
-
* @param options - Generation options
|
|
119
|
-
* @param options.includeGitHistory - Whether to include Git history analysis (default: false)
|
|
120
|
-
* @returns AIFeed[] feed list (sorted by gravity descending)
|
|
121
|
-
*/
|
|
122
|
-
generate(projectRoot: string, options?: {
|
|
123
|
-
includeGitHistory?: boolean;
|
|
124
|
-
}): Promise<AIFeed[]>;
|
|
125
|
-
/**
|
|
126
|
-
* Output AI feed file
|
|
127
|
-
*
|
|
128
|
-
* @param feed - AI feed list
|
|
129
|
-
* @param outputPath - Output file path
|
|
130
|
-
*/
|
|
131
|
-
writeFeedFile(feed: AIFeed[], outputPath: string): void;
|
|
132
|
-
/**
|
|
133
|
-
* Scan Git history for heat score
|
|
134
|
-
*
|
|
135
|
-
* @param filePath - File path (relative to projectRoot)
|
|
136
|
-
* @param projectRoot - Project root directory
|
|
137
|
-
* @returns HeatScore heat score
|
|
138
|
-
*/
|
|
139
|
-
private scanGitHistory;
|
|
140
|
-
/**
|
|
141
|
-
* Calculate dependencies
|
|
142
|
-
* Scan import statements, build dependency graph
|
|
143
|
-
*
|
|
144
|
-
* @param feed - AI feed list
|
|
145
|
-
* @param projectRoot - Project root directory
|
|
146
|
-
*/
|
|
147
|
-
private calculateDependencies;
|
|
148
|
-
/**
|
|
149
|
-
* Resolve import path to path relative to project root
|
|
150
|
-
*
|
|
151
|
-
* @param currentFile - Current file path
|
|
152
|
-
* @param importPath - Import path from import statement
|
|
153
|
-
* @returns Resolved path, or null if cannot resolve
|
|
154
|
-
*/
|
|
155
|
-
private resolveImportPath;
|
|
156
|
-
/**
|
|
157
|
-
* Scan file header (convenience method)
|
|
158
|
-
* Delegates to FileHeaderScanner
|
|
159
|
-
*
|
|
160
|
-
* @param filePath - File path
|
|
161
|
-
* @returns FileMeta file metadata
|
|
162
|
-
*/
|
|
163
|
-
scanFileHeader(filePath: string): FileMeta;
|
|
164
|
-
/**
|
|
165
|
-
* Calculate scores for a single feed item
|
|
166
|
-
* Returns normalized scores
|
|
167
|
-
*
|
|
168
|
-
* @param feed - AI feed item
|
|
169
|
-
* @param maxGravity - Maximum gravity value for normalization
|
|
170
|
-
* @param maxImpact - Maximum impact value for normalization
|
|
171
|
-
* @returns Object with gravity, impact, heat scores
|
|
172
|
-
*/
|
|
173
|
-
calculateScores(feed: AIFeed, maxGravity?: number, maxImpact?: number): {
|
|
174
|
-
gravity: number;
|
|
175
|
-
impact: number;
|
|
176
|
-
heat: number;
|
|
177
|
-
};
|
|
178
|
-
/**
|
|
179
|
-
* Calculate file risk level
|
|
180
|
-
* Based on REQUIREMENTS section 8.6 risk scoring formula
|
|
181
|
-
*
|
|
182
|
-
* @param feed - Single file AI feed
|
|
183
|
-
* @returns Risk level: 'high' | 'medium' | 'low'
|
|
184
|
-
*/
|
|
185
|
-
calculateRisk(feed: AIFeed): 'high' | 'medium' | 'low';
|
|
186
|
-
/**
|
|
187
|
-
* Batch calculate risk levels
|
|
188
|
-
*
|
|
189
|
-
* @param feedList - AI feed list
|
|
190
|
-
* @returns Map<file path, risk level>
|
|
191
|
-
*/
|
|
192
|
-
calculateRisks(feedList: AIFeed[]): Map<string, 'high' | 'medium' | 'low'>;
|
|
193
|
-
/**
|
|
194
|
-
* Get high risk file list
|
|
195
|
-
*
|
|
196
|
-
* @param feedList - AI feed list
|
|
197
|
-
* @returns High risk file list
|
|
198
|
-
*/
|
|
199
|
-
getHighRiskFiles(feedList: AIFeed[]): AIFeed[];
|
|
200
|
-
/**
|
|
201
|
-
* Generate JSON format AI feed
|
|
202
|
-
* For programmatic processing
|
|
203
|
-
*
|
|
204
|
-
* @param feed - AI feed list
|
|
205
|
-
* @param outputPath - Output file path
|
|
206
|
-
*/
|
|
207
|
-
writeFeedFileJson(feed: AIFeed[], outputPath: string): void;
|
|
208
|
-
}
|
|
209
|
-
export type { HeatScore };
|
|
210
|
-
//# sourceMappingURL=ai-feed-generator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-feed-generator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/ai-feed-generator.ts"],"names":[],"mappings":"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"}
|