agentic-qe 2.6.2 → 2.6.3
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/.claude/agents/qe-code-intelligence.md +88 -1
- package/CHANGELOG.md +63 -0
- package/README.md +1 -1
- package/dist/agents/CodeIntelligenceAgent.d.ts +4 -1
- package/dist/agents/CodeIntelligenceAgent.d.ts.map +1 -1
- package/dist/agents/CodeIntelligenceAgent.js +30 -1
- package/dist/agents/CodeIntelligenceAgent.js.map +1 -1
- package/dist/cli/commands/knowledge-graph.d.ts +30 -0
- package/dist/cli/commands/knowledge-graph.d.ts.map +1 -1
- package/dist/cli/commands/knowledge-graph.js +206 -4
- package/dist/cli/commands/knowledge-graph.js.map +1 -1
- package/dist/cli/index.js +152 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/code-intelligence/inference/ComponentBoundaryAnalyzer.d.ts +75 -0
- package/dist/code-intelligence/inference/ComponentBoundaryAnalyzer.d.ts.map +1 -0
- package/dist/code-intelligence/inference/ComponentBoundaryAnalyzer.js +400 -0
- package/dist/code-intelligence/inference/ComponentBoundaryAnalyzer.js.map +1 -0
- package/dist/code-intelligence/inference/ExternalSystemDetector.d.ts +31 -0
- package/dist/code-intelligence/inference/ExternalSystemDetector.d.ts.map +1 -0
- package/dist/code-intelligence/inference/ExternalSystemDetector.js +523 -0
- package/dist/code-intelligence/inference/ExternalSystemDetector.js.map +1 -0
- package/dist/code-intelligence/inference/ProjectMetadataAnalyzer.d.ts +78 -0
- package/dist/code-intelligence/inference/ProjectMetadataAnalyzer.d.ts.map +1 -0
- package/dist/code-intelligence/inference/ProjectMetadataAnalyzer.js +491 -0
- package/dist/code-intelligence/inference/ProjectMetadataAnalyzer.js.map +1 -0
- package/dist/code-intelligence/inference/index.d.ts +36 -0
- package/dist/code-intelligence/inference/index.d.ts.map +1 -0
- package/dist/code-intelligence/inference/index.js +65 -0
- package/dist/code-intelligence/inference/index.js.map +1 -0
- package/dist/code-intelligence/inference/types.d.ts +196 -0
- package/dist/code-intelligence/inference/types.d.ts.map +1 -0
- package/dist/code-intelligence/inference/types.js +9 -0
- package/dist/code-intelligence/inference/types.js.map +1 -0
- package/dist/code-intelligence/visualization/C4ComponentDiagramBuilder.d.ts +75 -0
- package/dist/code-intelligence/visualization/C4ComponentDiagramBuilder.d.ts.map +1 -0
- package/dist/code-intelligence/visualization/C4ComponentDiagramBuilder.js +267 -0
- package/dist/code-intelligence/visualization/C4ComponentDiagramBuilder.js.map +1 -0
- package/dist/code-intelligence/visualization/C4ContainerDiagramBuilder.d.ts +138 -0
- package/dist/code-intelligence/visualization/C4ContainerDiagramBuilder.d.ts.map +1 -0
- package/dist/code-intelligence/visualization/C4ContainerDiagramBuilder.js +343 -0
- package/dist/code-intelligence/visualization/C4ContainerDiagramBuilder.js.map +1 -0
- package/dist/code-intelligence/visualization/C4ContextDiagramBuilder.d.ts +67 -0
- package/dist/code-intelligence/visualization/C4ContextDiagramBuilder.d.ts.map +1 -0
- package/dist/code-intelligence/visualization/C4ContextDiagramBuilder.js +152 -0
- package/dist/code-intelligence/visualization/C4ContextDiagramBuilder.js.map +1 -0
- package/dist/code-intelligence/visualization/MermaidGenerator.d.ts +79 -0
- package/dist/code-intelligence/visualization/MermaidGenerator.d.ts.map +1 -1
- package/dist/code-intelligence/visualization/MermaidGenerator.js +143 -0
- package/dist/code-intelligence/visualization/MermaidGenerator.js.map +1 -1
- package/dist/config/ConfigLoader.d.ts +1 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -1
- package/dist/config/ConfigLoader.js +33 -3
- package/dist/config/ConfigLoader.js.map +1 -1
- package/dist/mcp/handlers/integration/integration-test-orchestrate.d.ts.map +1 -1
- package/dist/mcp/handlers/integration/integration-test-orchestrate.js +6 -9
- package/dist/mcp/handlers/integration/integration-test-orchestrate.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,523 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ExternalSystemDetector = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
/**
|
|
10
|
+
* Detects external systems and dependencies for C4 Context diagrams
|
|
11
|
+
*/
|
|
12
|
+
class ExternalSystemDetector {
|
|
13
|
+
constructor(rootDir) {
|
|
14
|
+
this.rootDir = rootDir;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Detect all external systems used by the project
|
|
18
|
+
*/
|
|
19
|
+
async detect() {
|
|
20
|
+
const systems = [];
|
|
21
|
+
// Analyze package.json for dependencies
|
|
22
|
+
const packageSystems = await this.analyzePackageJson();
|
|
23
|
+
systems.push(...packageSystems);
|
|
24
|
+
// Analyze .env files for external system hints
|
|
25
|
+
const envSystems = await this.analyzeEnvFiles();
|
|
26
|
+
systems.push(...envSystems);
|
|
27
|
+
// Deduplicate and return
|
|
28
|
+
return this.deduplicateSystems(systems);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Analyze package.json dependencies to identify external systems
|
|
32
|
+
*/
|
|
33
|
+
async analyzePackageJson() {
|
|
34
|
+
const systems = [];
|
|
35
|
+
const packageJsonPath = path_1.default.join(this.rootDir, 'package.json');
|
|
36
|
+
try {
|
|
37
|
+
const content = await fs_1.promises.readFile(packageJsonPath, 'utf-8');
|
|
38
|
+
const packageJson = JSON.parse(content);
|
|
39
|
+
const allDependencies = {
|
|
40
|
+
...packageJson.dependencies,
|
|
41
|
+
...packageJson.devDependencies,
|
|
42
|
+
};
|
|
43
|
+
for (const [packageName] of Object.entries(allDependencies)) {
|
|
44
|
+
for (const mapping of ExternalSystemDetector.PACKAGE_MAPPINGS) {
|
|
45
|
+
if (mapping.packagePattern.test(packageName)) {
|
|
46
|
+
systems.push({
|
|
47
|
+
id: this.generateSystemId(mapping.technology, mapping.systemType),
|
|
48
|
+
name: mapping.technology,
|
|
49
|
+
type: mapping.systemType,
|
|
50
|
+
technology: mapping.technology,
|
|
51
|
+
relationship: mapping.relationship,
|
|
52
|
+
description: mapping.description,
|
|
53
|
+
});
|
|
54
|
+
break; // Only match first pattern
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
// package.json might not exist or be malformed
|
|
61
|
+
// This is not critical, just skip
|
|
62
|
+
}
|
|
63
|
+
return systems;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Analyze .env and .env.example files for external system hints
|
|
67
|
+
*/
|
|
68
|
+
async analyzeEnvFiles() {
|
|
69
|
+
const systems = [];
|
|
70
|
+
const envFiles = ['.env', '.env.example', '.env.local', '.env.development'];
|
|
71
|
+
for (const envFile of envFiles) {
|
|
72
|
+
const envPath = path_1.default.join(this.rootDir, envFile);
|
|
73
|
+
try {
|
|
74
|
+
const content = await fs_1.promises.readFile(envPath, 'utf-8');
|
|
75
|
+
const lines = content.split('\n');
|
|
76
|
+
for (const line of lines) {
|
|
77
|
+
// Skip comments and empty lines
|
|
78
|
+
if (line.trim().startsWith('#') || !line.trim()) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
// Extract variable name
|
|
82
|
+
const match = line.match(/^([A-Z_][A-Z0-9_]*)\s*=/);
|
|
83
|
+
if (!match) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const varName = match[1];
|
|
87
|
+
// Check against patterns
|
|
88
|
+
for (const envPattern of ExternalSystemDetector.ENV_PATTERNS) {
|
|
89
|
+
if (envPattern.pattern.test(varName)) {
|
|
90
|
+
systems.push({
|
|
91
|
+
id: this.generateSystemId(envPattern.technology, envPattern.systemType),
|
|
92
|
+
name: envPattern.technology,
|
|
93
|
+
type: envPattern.systemType,
|
|
94
|
+
technology: envPattern.technology,
|
|
95
|
+
relationship: envPattern.relationship,
|
|
96
|
+
description: `Detected from environment variable: ${varName}`,
|
|
97
|
+
});
|
|
98
|
+
break; // Only match first pattern
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
// File might not exist, continue
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return systems;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Deduplicate systems by ID, merging descriptions
|
|
111
|
+
*/
|
|
112
|
+
deduplicateSystems(systems) {
|
|
113
|
+
const systemMap = new Map();
|
|
114
|
+
for (const system of systems) {
|
|
115
|
+
const existing = systemMap.get(system.id);
|
|
116
|
+
if (existing) {
|
|
117
|
+
// Merge descriptions if different
|
|
118
|
+
if (system.description && system.description !== existing.description) {
|
|
119
|
+
existing.description = existing.description
|
|
120
|
+
? `${existing.description}; ${system.description}`
|
|
121
|
+
: system.description;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
systemMap.set(system.id, { ...system });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return Array.from(systemMap.values()).sort((a, b) => a.name.localeCompare(b.name));
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Generate a unique system ID based on technology and type
|
|
132
|
+
*/
|
|
133
|
+
generateSystemId(technology, type) {
|
|
134
|
+
const normalized = technology.toLowerCase().replace(/[^a-z0-9]/g, '-');
|
|
135
|
+
return `external-${type}-${normalized}`;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.ExternalSystemDetector = ExternalSystemDetector;
|
|
139
|
+
ExternalSystemDetector.PACKAGE_MAPPINGS = [
|
|
140
|
+
// Databases
|
|
141
|
+
{
|
|
142
|
+
packagePattern: /^(pg|postgres)$/,
|
|
143
|
+
systemType: 'database',
|
|
144
|
+
technology: 'PostgreSQL',
|
|
145
|
+
relationship: 'stores_data_in',
|
|
146
|
+
description: 'PostgreSQL relational database',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
packagePattern: /^mysql2?$/,
|
|
150
|
+
systemType: 'database',
|
|
151
|
+
technology: 'MySQL',
|
|
152
|
+
relationship: 'stores_data_in',
|
|
153
|
+
description: 'MySQL relational database',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
packagePattern: /^mongodb$/,
|
|
157
|
+
systemType: 'database',
|
|
158
|
+
technology: 'MongoDB',
|
|
159
|
+
relationship: 'stores_data_in',
|
|
160
|
+
description: 'MongoDB document database',
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
packagePattern: /^mongoose$/,
|
|
164
|
+
systemType: 'database',
|
|
165
|
+
technology: 'MongoDB',
|
|
166
|
+
relationship: 'stores_data_in',
|
|
167
|
+
description: 'MongoDB via Mongoose ODM',
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
packagePattern: /^sqlite3$/,
|
|
171
|
+
systemType: 'database',
|
|
172
|
+
technology: 'SQLite',
|
|
173
|
+
relationship: 'stores_data_in',
|
|
174
|
+
description: 'SQLite embedded database',
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
packagePattern: /^oracledb$/,
|
|
178
|
+
systemType: 'database',
|
|
179
|
+
technology: 'Oracle',
|
|
180
|
+
relationship: 'stores_data_in',
|
|
181
|
+
description: 'Oracle database',
|
|
182
|
+
},
|
|
183
|
+
// Cache systems
|
|
184
|
+
{
|
|
185
|
+
packagePattern: /^(redis|ioredis)$/,
|
|
186
|
+
systemType: 'cache',
|
|
187
|
+
technology: 'Redis',
|
|
188
|
+
relationship: 'uses',
|
|
189
|
+
description: 'Redis in-memory cache',
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
packagePattern: /^memcached$/,
|
|
193
|
+
systemType: 'cache',
|
|
194
|
+
technology: 'Memcached',
|
|
195
|
+
relationship: 'uses',
|
|
196
|
+
description: 'Memcached distributed cache',
|
|
197
|
+
},
|
|
198
|
+
// Message queues
|
|
199
|
+
{
|
|
200
|
+
packagePattern: /^amqplib$/,
|
|
201
|
+
systemType: 'queue',
|
|
202
|
+
technology: 'RabbitMQ',
|
|
203
|
+
relationship: 'sends_messages_to',
|
|
204
|
+
description: 'RabbitMQ message broker',
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
packagePattern: /^kafkajs$/,
|
|
208
|
+
systemType: 'queue',
|
|
209
|
+
technology: 'Apache Kafka',
|
|
210
|
+
relationship: 'sends_messages_to',
|
|
211
|
+
description: 'Apache Kafka event streaming',
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
packagePattern: /^bull$/,
|
|
215
|
+
systemType: 'queue',
|
|
216
|
+
technology: 'Bull Queue',
|
|
217
|
+
relationship: 'sends_messages_to',
|
|
218
|
+
description: 'Bull job queue (Redis-based)',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
packagePattern: /^bee-queue$/,
|
|
222
|
+
systemType: 'queue',
|
|
223
|
+
technology: 'Bee Queue',
|
|
224
|
+
relationship: 'sends_messages_to',
|
|
225
|
+
description: 'Bee job queue (Redis-based)',
|
|
226
|
+
},
|
|
227
|
+
// AI/ML APIs
|
|
228
|
+
{
|
|
229
|
+
packagePattern: /^@anthropic-ai\/sdk$/,
|
|
230
|
+
systemType: 'api',
|
|
231
|
+
technology: 'Anthropic Claude',
|
|
232
|
+
relationship: 'uses',
|
|
233
|
+
description: 'Anthropic Claude AI API',
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
packagePattern: /^openai$/,
|
|
237
|
+
systemType: 'api',
|
|
238
|
+
technology: 'OpenAI',
|
|
239
|
+
relationship: 'uses',
|
|
240
|
+
description: 'OpenAI API (GPT, DALL-E, etc.)',
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
packagePattern: /^@google-ai\/generativelanguage$/,
|
|
244
|
+
systemType: 'api',
|
|
245
|
+
technology: 'Google AI',
|
|
246
|
+
relationship: 'uses',
|
|
247
|
+
description: 'Google Generative AI API',
|
|
248
|
+
},
|
|
249
|
+
// Cloud providers - AWS
|
|
250
|
+
{
|
|
251
|
+
packagePattern: /^(aws-sdk|@aws-sdk\/.+)$/,
|
|
252
|
+
systemType: 'storage',
|
|
253
|
+
technology: 'AWS',
|
|
254
|
+
relationship: 'uses',
|
|
255
|
+
description: 'Amazon Web Services',
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
packagePattern: /^@aws-sdk\/client-s3$/,
|
|
259
|
+
systemType: 'storage',
|
|
260
|
+
technology: 'AWS S3',
|
|
261
|
+
relationship: 'uses',
|
|
262
|
+
description: 'AWS S3 object storage',
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
packagePattern: /^@aws-sdk\/client-dynamodb$/,
|
|
266
|
+
systemType: 'database',
|
|
267
|
+
technology: 'AWS DynamoDB',
|
|
268
|
+
relationship: 'stores_data_in',
|
|
269
|
+
description: 'AWS DynamoDB NoSQL database',
|
|
270
|
+
},
|
|
271
|
+
// Cloud providers - Google Cloud
|
|
272
|
+
{
|
|
273
|
+
packagePattern: /^@google-cloud\/.+$/,
|
|
274
|
+
systemType: 'storage',
|
|
275
|
+
technology: 'Google Cloud',
|
|
276
|
+
relationship: 'uses',
|
|
277
|
+
description: 'Google Cloud Platform',
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
packagePattern: /^@google-cloud\/storage$/,
|
|
281
|
+
systemType: 'storage',
|
|
282
|
+
technology: 'Google Cloud Storage',
|
|
283
|
+
relationship: 'uses',
|
|
284
|
+
description: 'Google Cloud Storage',
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
packagePattern: /^@google-cloud\/firestore$/,
|
|
288
|
+
systemType: 'database',
|
|
289
|
+
technology: 'Firestore',
|
|
290
|
+
relationship: 'stores_data_in',
|
|
291
|
+
description: 'Google Cloud Firestore',
|
|
292
|
+
},
|
|
293
|
+
// Cloud providers - Azure
|
|
294
|
+
{
|
|
295
|
+
packagePattern: /^@azure\/.+$/,
|
|
296
|
+
systemType: 'storage',
|
|
297
|
+
technology: 'Azure',
|
|
298
|
+
relationship: 'uses',
|
|
299
|
+
description: 'Microsoft Azure',
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
packagePattern: /^@azure\/storage-blob$/,
|
|
303
|
+
systemType: 'storage',
|
|
304
|
+
technology: 'Azure Blob Storage',
|
|
305
|
+
relationship: 'uses',
|
|
306
|
+
description: 'Azure Blob Storage',
|
|
307
|
+
},
|
|
308
|
+
// Authentication
|
|
309
|
+
{
|
|
310
|
+
packagePattern: /^passport$/,
|
|
311
|
+
systemType: 'auth',
|
|
312
|
+
technology: 'Passport.js',
|
|
313
|
+
relationship: 'authenticates_with',
|
|
314
|
+
description: 'Authentication middleware',
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
packagePattern: /^@auth0\/auth0-spa-js$/,
|
|
318
|
+
systemType: 'auth',
|
|
319
|
+
technology: 'Auth0',
|
|
320
|
+
relationship: 'authenticates_with',
|
|
321
|
+
description: 'Auth0 authentication service',
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
packagePattern: /^jsonwebtoken$/,
|
|
325
|
+
systemType: 'auth',
|
|
326
|
+
technology: 'JWT',
|
|
327
|
+
relationship: 'authenticates_with',
|
|
328
|
+
description: 'JSON Web Token authentication',
|
|
329
|
+
},
|
|
330
|
+
// Monitoring & Analytics
|
|
331
|
+
{
|
|
332
|
+
packagePattern: /^@sentry\/node$/,
|
|
333
|
+
systemType: 'monitoring',
|
|
334
|
+
technology: 'Sentry',
|
|
335
|
+
relationship: 'uses',
|
|
336
|
+
description: 'Sentry error monitoring',
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
packagePattern: /^newrelic$/,
|
|
340
|
+
systemType: 'monitoring',
|
|
341
|
+
technology: 'New Relic',
|
|
342
|
+
relationship: 'uses',
|
|
343
|
+
description: 'New Relic APM',
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
packagePattern: /^datadog-metrics$/,
|
|
347
|
+
systemType: 'monitoring',
|
|
348
|
+
technology: 'Datadog',
|
|
349
|
+
relationship: 'uses',
|
|
350
|
+
description: 'Datadog monitoring',
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
packagePattern: /^prom-client$/,
|
|
354
|
+
systemType: 'monitoring',
|
|
355
|
+
technology: 'Prometheus',
|
|
356
|
+
relationship: 'uses',
|
|
357
|
+
description: 'Prometheus metrics',
|
|
358
|
+
},
|
|
359
|
+
// HTTP clients (generic API)
|
|
360
|
+
{
|
|
361
|
+
packagePattern: /^axios$/,
|
|
362
|
+
systemType: 'api',
|
|
363
|
+
technology: 'HTTP Client',
|
|
364
|
+
relationship: 'uses',
|
|
365
|
+
description: 'External HTTP APIs',
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
packagePattern: /^(node-)?fetch$/,
|
|
369
|
+
systemType: 'api',
|
|
370
|
+
technology: 'HTTP Client',
|
|
371
|
+
relationship: 'uses',
|
|
372
|
+
description: 'External HTTP APIs',
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
packagePattern: /^got$/,
|
|
376
|
+
systemType: 'api',
|
|
377
|
+
technology: 'HTTP Client',
|
|
378
|
+
relationship: 'uses',
|
|
379
|
+
description: 'External HTTP APIs',
|
|
380
|
+
},
|
|
381
|
+
// Email services
|
|
382
|
+
{
|
|
383
|
+
packagePattern: /^nodemailer$/,
|
|
384
|
+
systemType: 'api',
|
|
385
|
+
technology: 'Email Service',
|
|
386
|
+
relationship: 'uses',
|
|
387
|
+
description: 'Email delivery service',
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
packagePattern: /^@sendgrid\/mail$/,
|
|
391
|
+
systemType: 'api',
|
|
392
|
+
technology: 'SendGrid',
|
|
393
|
+
relationship: 'uses',
|
|
394
|
+
description: 'SendGrid email service',
|
|
395
|
+
},
|
|
396
|
+
// Payment gateways
|
|
397
|
+
{
|
|
398
|
+
packagePattern: /^stripe$/,
|
|
399
|
+
systemType: 'api',
|
|
400
|
+
technology: 'Stripe',
|
|
401
|
+
relationship: 'uses',
|
|
402
|
+
description: 'Stripe payment processing',
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
packagePattern: /^paypal-rest-sdk$/,
|
|
406
|
+
systemType: 'api',
|
|
407
|
+
technology: 'PayPal',
|
|
408
|
+
relationship: 'uses',
|
|
409
|
+
description: 'PayPal payment processing',
|
|
410
|
+
},
|
|
411
|
+
// Search engines
|
|
412
|
+
{
|
|
413
|
+
packagePattern: /^@elastic\/elasticsearch$/,
|
|
414
|
+
systemType: 'database',
|
|
415
|
+
technology: 'Elasticsearch',
|
|
416
|
+
relationship: 'uses',
|
|
417
|
+
description: 'Elasticsearch search engine',
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
packagePattern: /^algoliasearch$/,
|
|
421
|
+
systemType: 'api',
|
|
422
|
+
technology: 'Algolia',
|
|
423
|
+
relationship: 'uses',
|
|
424
|
+
description: 'Algolia search service',
|
|
425
|
+
},
|
|
426
|
+
];
|
|
427
|
+
ExternalSystemDetector.ENV_PATTERNS = [
|
|
428
|
+
// Database URLs
|
|
429
|
+
{
|
|
430
|
+
pattern: /^(DATABASE_URL|POSTGRES_|PG_)/i,
|
|
431
|
+
systemType: 'database',
|
|
432
|
+
technology: 'PostgreSQL',
|
|
433
|
+
relationship: 'stores_data_in',
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
pattern: /^MYSQL_/i,
|
|
437
|
+
systemType: 'database',
|
|
438
|
+
technology: 'MySQL',
|
|
439
|
+
relationship: 'stores_data_in',
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
pattern: /^MONGO(DB)?_/i,
|
|
443
|
+
systemType: 'database',
|
|
444
|
+
technology: 'MongoDB',
|
|
445
|
+
relationship: 'stores_data_in',
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
pattern: /^REDIS_/i,
|
|
449
|
+
systemType: 'cache',
|
|
450
|
+
technology: 'Redis',
|
|
451
|
+
relationship: 'uses',
|
|
452
|
+
},
|
|
453
|
+
// API keys
|
|
454
|
+
{
|
|
455
|
+
pattern: /^ANTHROPIC_/i,
|
|
456
|
+
systemType: 'api',
|
|
457
|
+
technology: 'Anthropic Claude',
|
|
458
|
+
relationship: 'uses',
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
pattern: /^OPENAI_/i,
|
|
462
|
+
systemType: 'api',
|
|
463
|
+
technology: 'OpenAI',
|
|
464
|
+
relationship: 'uses',
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
pattern: /^STRIPE_/i,
|
|
468
|
+
systemType: 'api',
|
|
469
|
+
technology: 'Stripe',
|
|
470
|
+
relationship: 'uses',
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
pattern: /^SENDGRID_/i,
|
|
474
|
+
systemType: 'api',
|
|
475
|
+
technology: 'SendGrid',
|
|
476
|
+
relationship: 'uses',
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
pattern: /^AWS_/i,
|
|
480
|
+
systemType: 'storage',
|
|
481
|
+
technology: 'AWS',
|
|
482
|
+
relationship: 'uses',
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
pattern: /^GOOGLE_CLOUD_/i,
|
|
486
|
+
systemType: 'storage',
|
|
487
|
+
technology: 'Google Cloud',
|
|
488
|
+
relationship: 'uses',
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
pattern: /^AZURE_/i,
|
|
492
|
+
systemType: 'storage',
|
|
493
|
+
technology: 'Azure',
|
|
494
|
+
relationship: 'uses',
|
|
495
|
+
},
|
|
496
|
+
// Monitoring
|
|
497
|
+
{
|
|
498
|
+
pattern: /^SENTRY_/i,
|
|
499
|
+
systemType: 'monitoring',
|
|
500
|
+
technology: 'Sentry',
|
|
501
|
+
relationship: 'uses',
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
pattern: /^NEW_RELIC_/i,
|
|
505
|
+
systemType: 'monitoring',
|
|
506
|
+
technology: 'New Relic',
|
|
507
|
+
relationship: 'uses',
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
pattern: /^DATADOG_/i,
|
|
511
|
+
systemType: 'monitoring',
|
|
512
|
+
technology: 'Datadog',
|
|
513
|
+
relationship: 'uses',
|
|
514
|
+
},
|
|
515
|
+
// Authentication
|
|
516
|
+
{
|
|
517
|
+
pattern: /^AUTH0_/i,
|
|
518
|
+
systemType: 'auth',
|
|
519
|
+
technology: 'Auth0',
|
|
520
|
+
relationship: 'authenticates_with',
|
|
521
|
+
},
|
|
522
|
+
];
|
|
523
|
+
//# sourceMappingURL=ExternalSystemDetector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExternalSystemDetector.js","sourceRoot":"","sources":["../../../src/code-intelligence/inference/ExternalSystemDetector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Metadata Analyzer for C4 Model Integration
|
|
3
|
+
*
|
|
4
|
+
* Extracts project metadata from configuration files to generate C4 diagrams:
|
|
5
|
+
* - Parse package.json for system name, type, and technology stack
|
|
6
|
+
* - Parse docker-compose.yml and Dockerfile for container detection
|
|
7
|
+
* - Analyze directory structure to infer system architecture
|
|
8
|
+
*/
|
|
9
|
+
import type { ProjectMetadata } from './types';
|
|
10
|
+
export declare class ProjectMetadataAnalyzer {
|
|
11
|
+
private rootDir;
|
|
12
|
+
constructor(rootDir: string);
|
|
13
|
+
/**
|
|
14
|
+
* Analyze project and extract metadata
|
|
15
|
+
*/
|
|
16
|
+
analyze(): Promise<ProjectMetadata>;
|
|
17
|
+
/**
|
|
18
|
+
* Parse package.json for basic metadata
|
|
19
|
+
*/
|
|
20
|
+
private parsePackageJson;
|
|
21
|
+
/**
|
|
22
|
+
* Parse docker-compose.yml to detect containers
|
|
23
|
+
*/
|
|
24
|
+
private parseDockerCompose;
|
|
25
|
+
/**
|
|
26
|
+
* Parse a Docker service definition
|
|
27
|
+
*/
|
|
28
|
+
private parseDockerService;
|
|
29
|
+
/**
|
|
30
|
+
* Detect container type from service name and image
|
|
31
|
+
*/
|
|
32
|
+
private detectContainerType;
|
|
33
|
+
/**
|
|
34
|
+
* Extract technology from image or service definition
|
|
35
|
+
*/
|
|
36
|
+
private extractTechnology;
|
|
37
|
+
/**
|
|
38
|
+
* Extract primary port from ports configuration
|
|
39
|
+
*/
|
|
40
|
+
private extractPort;
|
|
41
|
+
/**
|
|
42
|
+
* Parse Dockerfile to detect base image and technology
|
|
43
|
+
*/
|
|
44
|
+
private parseDockerfile;
|
|
45
|
+
/**
|
|
46
|
+
* Parse Dockerfile instructions
|
|
47
|
+
*/
|
|
48
|
+
private parseDockerInstructions;
|
|
49
|
+
/**
|
|
50
|
+
* Detect all containers (Docker + inferred)
|
|
51
|
+
*/
|
|
52
|
+
private detectContainers;
|
|
53
|
+
/**
|
|
54
|
+
* Detect system type based on project structure
|
|
55
|
+
*/
|
|
56
|
+
private detectSystemType;
|
|
57
|
+
/**
|
|
58
|
+
* Detect technology stack
|
|
59
|
+
*/
|
|
60
|
+
private detectTechnologyStack;
|
|
61
|
+
/**
|
|
62
|
+
* Detect architectural layers from directory structure
|
|
63
|
+
*/
|
|
64
|
+
private detectLayers;
|
|
65
|
+
/**
|
|
66
|
+
* Generate container ID
|
|
67
|
+
*/
|
|
68
|
+
private generateContainerId;
|
|
69
|
+
/**
|
|
70
|
+
* Get project root directory
|
|
71
|
+
*/
|
|
72
|
+
getRootDir(): string;
|
|
73
|
+
/**
|
|
74
|
+
* Set project root directory
|
|
75
|
+
*/
|
|
76
|
+
setRootDir(rootDir: string): void;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=ProjectMetadataAnalyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectMetadataAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/code-intelligence/inference/ProjectMetadataAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAa,MAAM,SAAS,CAAC;AAuD1D,qBAAa,uBAAuB;IACtB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM;IAEnC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;IAwCzC;;OAEG;YACW,gBAAgB;IA2C9B;;OAEG;YACW,kBAAkB;IA+BhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwD3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;YACW,eAAe;IAiC7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyB/B;;OAEG;YACW,gBAAgB;IAyB9B;;OAEG;YACW,gBAAgB;IA8C9B;;OAEG;YACW,qBAAqB;IAqEnC;;OAEG;YACW,YAAY;IAgC1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAGlC"}
|