archicore 0.4.2 → 0.4.4
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/dist/analyzers/ai-narrator.d.ts +107 -0
- package/dist/analyzers/ai-narrator.js +632 -0
- package/dist/analyzers/context-builder.d.ts +150 -0
- package/dist/analyzers/context-builder.js +708 -0
- package/dist/analyzers/response-enhancer.d.ts +85 -0
- package/dist/analyzers/response-enhancer.js +632 -0
- package/dist/cli/commands/interactive.js +151 -1
- package/dist/cli/ui/prompt.js +1 -0
- package/dist/cli/utils/upload-utils.js +44 -18
- package/dist/orchestrator/index.js +67 -1
- package/dist/server/routes/api.js +70 -0
- package/dist/server/services/project-service.d.ts +11 -0
- package/dist/server/services/project-service.js +97 -2
- package/dist/types/index.d.ts +44 -0
- package/package.json +1 -1
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ArchiCore Context Builder
|
|
3
|
+
*
|
|
4
|
+
* Автоматически собирает релевантный контекст из проекта
|
|
5
|
+
* для умных ответов ИИ в диалоге
|
|
6
|
+
*/
|
|
7
|
+
import { DependencyGraph, Symbol } from '../types/index.js';
|
|
8
|
+
export type UserIntent = 'find_symbol' | 'find_usage' | 'explain_flow' | 'find_bugs' | 'architecture' | 'find_file' | 'compare' | 'refactor' | 'general';
|
|
9
|
+
export interface SymbolMatch {
|
|
10
|
+
name: string;
|
|
11
|
+
type: string;
|
|
12
|
+
file: string;
|
|
13
|
+
line: number;
|
|
14
|
+
snippet: string;
|
|
15
|
+
usedIn: Array<{
|
|
16
|
+
file: string;
|
|
17
|
+
line: number;
|
|
18
|
+
snippet: string;
|
|
19
|
+
}>;
|
|
20
|
+
calls: string[];
|
|
21
|
+
calledBy: string[];
|
|
22
|
+
confidence: number;
|
|
23
|
+
}
|
|
24
|
+
export interface DetectedIssue {
|
|
25
|
+
type: 'bug' | 'warning' | 'smell' | 'security';
|
|
26
|
+
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
27
|
+
file: string;
|
|
28
|
+
line: number;
|
|
29
|
+
message: string;
|
|
30
|
+
snippet: string;
|
|
31
|
+
suggestion: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ProjectContext {
|
|
34
|
+
intent: UserIntent;
|
|
35
|
+
query: string;
|
|
36
|
+
symbols: SymbolMatch[];
|
|
37
|
+
relevantFiles: Array<{
|
|
38
|
+
path: string;
|
|
39
|
+
relevance: number;
|
|
40
|
+
snippet?: string;
|
|
41
|
+
}>;
|
|
42
|
+
dependencies: Array<{
|
|
43
|
+
from: string;
|
|
44
|
+
to: string;
|
|
45
|
+
type: string;
|
|
46
|
+
}>;
|
|
47
|
+
issues: DetectedIssue[];
|
|
48
|
+
projectStats: {
|
|
49
|
+
totalFiles: number;
|
|
50
|
+
totalSymbols: number;
|
|
51
|
+
languages: string[];
|
|
52
|
+
framework?: string;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export declare class ContextBuilder {
|
|
56
|
+
private symbols;
|
|
57
|
+
private graph;
|
|
58
|
+
private fileContents;
|
|
59
|
+
private projectStats;
|
|
60
|
+
constructor(symbols: Map<string, Symbol>, graph: DependencyGraph, fileContents: Map<string, string>, projectStats?: Partial<ProjectContext['projectStats']>);
|
|
61
|
+
/**
|
|
62
|
+
* Главный метод - строит контекст для вопроса пользователя
|
|
63
|
+
*/
|
|
64
|
+
buildContext(userQuery: string): Promise<ProjectContext>;
|
|
65
|
+
/**
|
|
66
|
+
* Определение намерения пользователя
|
|
67
|
+
*/
|
|
68
|
+
private detectIntent;
|
|
69
|
+
/**
|
|
70
|
+
* Извлечение сущностей из запроса (имена функций, файлов и т.д.)
|
|
71
|
+
*/
|
|
72
|
+
private extractEntities;
|
|
73
|
+
/**
|
|
74
|
+
* Поиск символов по названию (fuzzy)
|
|
75
|
+
*/
|
|
76
|
+
private searchSymbols;
|
|
77
|
+
/**
|
|
78
|
+
* Расчёт схожести строк (fuzzy matching)
|
|
79
|
+
*/
|
|
80
|
+
private calculateMatchConfidence;
|
|
81
|
+
/**
|
|
82
|
+
* Получение сниппета кода вокруг строки
|
|
83
|
+
*/
|
|
84
|
+
private getSnippet;
|
|
85
|
+
/**
|
|
86
|
+
* Поиск мест использования символа
|
|
87
|
+
*/
|
|
88
|
+
private findUsages;
|
|
89
|
+
/**
|
|
90
|
+
* Что вызывает данный символ
|
|
91
|
+
*/
|
|
92
|
+
private findCalls;
|
|
93
|
+
/**
|
|
94
|
+
* Кто вызывает данный символ
|
|
95
|
+
*/
|
|
96
|
+
private findCalledBy;
|
|
97
|
+
/**
|
|
98
|
+
* Получение зависимостей для символов
|
|
99
|
+
*/
|
|
100
|
+
private getSymbolDependencies;
|
|
101
|
+
/**
|
|
102
|
+
* Получение цепочки вызовов
|
|
103
|
+
*/
|
|
104
|
+
private getCallChain;
|
|
105
|
+
/**
|
|
106
|
+
* Поиск релевантных файлов
|
|
107
|
+
*/
|
|
108
|
+
private getRelevantFiles;
|
|
109
|
+
/**
|
|
110
|
+
* Поиск багов в коде
|
|
111
|
+
*/
|
|
112
|
+
private findBugs;
|
|
113
|
+
/**
|
|
114
|
+
* Получение файлов с проблемами
|
|
115
|
+
*/
|
|
116
|
+
private getFilesWithIssues;
|
|
117
|
+
/**
|
|
118
|
+
* Получение файлов архитектуры
|
|
119
|
+
*/
|
|
120
|
+
private getArchitectureFiles;
|
|
121
|
+
/**
|
|
122
|
+
* Получение основных зависимостей проекта
|
|
123
|
+
*/
|
|
124
|
+
private getMainDependencies;
|
|
125
|
+
/**
|
|
126
|
+
* Поиск файлов по имени
|
|
127
|
+
*/
|
|
128
|
+
private searchFiles;
|
|
129
|
+
/**
|
|
130
|
+
* Поиск проблем в найденных символах
|
|
131
|
+
*/
|
|
132
|
+
private findIssuesInSymbols;
|
|
133
|
+
/**
|
|
134
|
+
* Определение языков в проекте
|
|
135
|
+
*/
|
|
136
|
+
private detectLanguages;
|
|
137
|
+
/**
|
|
138
|
+
* Escape regex special characters
|
|
139
|
+
*/
|
|
140
|
+
private escapeRegex;
|
|
141
|
+
/**
|
|
142
|
+
* Форматирование контекста для LLM промпта
|
|
143
|
+
*/
|
|
144
|
+
formatForLLM(context: ProjectContext): string;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Создание билдера контекста из данных проекта
|
|
148
|
+
*/
|
|
149
|
+
export declare function createContextBuilder(symbols: Map<string, Symbol>, graph: DependencyGraph, fileContents: Map<string, string>, projectStats?: Partial<ProjectContext['projectStats']>): ContextBuilder;
|
|
150
|
+
//# sourceMappingURL=context-builder.d.ts.map
|