@noyrax/5d-database-plugin 0.1.14-beta.10 → 0.1.14-beta.12
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/out/api/bootstrap-api.d.ts +28 -0
- package/out/api/bootstrap-api.d.ts.map +1 -1
- package/out/api/bootstrap-api.js +180 -10
- package/out/api/bootstrap-api.js.map +1 -1
- package/out/api/semantic-search-api.d.ts +10 -0
- package/out/api/semantic-search-api.d.ts.map +1 -1
- package/out/api/semantic-search-api.js +25 -4
- package/out/api/semantic-search-api.js.map +1 -1
- package/out/cli/debug-semantic-search.d.ts +3 -0
- package/out/cli/debug-semantic-search.d.ts.map +1 -0
- package/out/cli/debug-semantic-search.js +337 -0
- package/out/cli/debug-semantic-search.js.map +1 -0
- package/out/embedding/embedding-pipeline.d.ts +11 -0
- package/out/embedding/embedding-pipeline.d.ts.map +1 -1
- package/out/embedding/embedding-pipeline.js +170 -68
- package/out/embedding/embedding-pipeline.js.map +1 -1
- package/out/services/query-rewriter.d.ts +61 -0
- package/out/services/query-rewriter.d.ts.map +1 -0
- package/out/services/query-rewriter.js +153 -0
- package/out/services/query-rewriter.js.map +1 -0
- package/package.json +3 -2
|
@@ -111,6 +111,11 @@ class EmbeddingPipeline {
|
|
|
111
111
|
const toGenerate = [];
|
|
112
112
|
for (const entity of entities) {
|
|
113
113
|
const content = await this.extractContentForEmbedding(dimension, entity);
|
|
114
|
+
// Überspringe leere Content (z.B. extrem große Dateien, die nicht embeddet werden können)
|
|
115
|
+
if (!content || content.trim().length === 0) {
|
|
116
|
+
console.warn(`[EmbeddingPipeline] Skipping embedding for entity ${entity.id} in dimension ${dimension} (empty content)`);
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
114
119
|
const contentHash = this.computeContentHash(content);
|
|
115
120
|
const existing = existingMap.get(entity.id);
|
|
116
121
|
if (!existing || existing.content_hash !== contentHash) {
|
|
@@ -231,18 +236,29 @@ class EmbeddingPipeline {
|
|
|
231
236
|
const module = entity;
|
|
232
237
|
let content = module.content_markdown;
|
|
233
238
|
// TOKEN-LIMIT-CHECK: OpenAI text-embedding-3-small hat 8192 Token Context Length
|
|
234
|
-
|
|
235
|
-
const tokenEstimate = Math.ceil(content.length / 4);
|
|
239
|
+
const tokenEstimate = this.estimateTokens(content);
|
|
236
240
|
const maxTokens = 8000; // Sicher unter 8192 Token-Limit
|
|
237
241
|
if (tokenEstimate > maxTokens) {
|
|
238
242
|
console.warn(`[EmbeddingPipeline] Large module documentation: ${module.file_path} (~${tokenEstimate} tokens, max ${maxTokens})`);
|
|
243
|
+
// Für extrem große Dateien (>15000 Tokens): Verwende hierarchical Strategie automatisch
|
|
244
|
+
if (tokenEstimate > 15000) {
|
|
245
|
+
console.warn(`[EmbeddingPipeline] Extremely large module (>15000 tokens), using hierarchical strategy`);
|
|
246
|
+
content = this.extractModuleStructure(content);
|
|
247
|
+
const newTokenEstimate = this.estimateTokens(content);
|
|
248
|
+
if (newTokenEstimate > maxTokens) {
|
|
249
|
+
console.error(`[EmbeddingPipeline] Module still too large after hierarchical extraction (~${newTokenEstimate} tokens). Skipping embedding.`);
|
|
250
|
+
// Überspringe Embedding für diese Datei - gib leeren String zurück
|
|
251
|
+
return '';
|
|
252
|
+
}
|
|
253
|
+
return content;
|
|
254
|
+
}
|
|
239
255
|
// STRATEGIE-AUSWAHL: Intelligente Kürzung, Hierarchische Embeddings, oder Summarization
|
|
240
256
|
const strategy = process.env.EMBEDDING_STRATEGY || 'optimize';
|
|
241
257
|
if (strategy === 'summarize' && this.moduleSummarizer.isConfigured()) {
|
|
242
258
|
console.warn(`[EmbeddingPipeline] Using LLM-based summarization strategy...`);
|
|
243
259
|
try {
|
|
244
260
|
content = await this.moduleSummarizer.summarizeModuleContent(content, module.file_path);
|
|
245
|
-
const newTokenEstimate =
|
|
261
|
+
const newTokenEstimate = this.estimateTokens(content);
|
|
246
262
|
console.log(`[EmbeddingPipeline] Summarized to ~${newTokenEstimate} tokens`);
|
|
247
263
|
}
|
|
248
264
|
catch (error) {
|
|
@@ -279,9 +295,15 @@ class EmbeddingPipeline {
|
|
|
279
295
|
case 'W': {
|
|
280
296
|
// W (ADRs): {title} {content} {linked_files}
|
|
281
297
|
const adr = entity;
|
|
282
|
-
//
|
|
283
|
-
const
|
|
284
|
-
const
|
|
298
|
+
// Get file mappings from database (instead of regex pattern matching)
|
|
299
|
+
const adrDb = await this.dbManager.getDatabase('W');
|
|
300
|
+
const { AdrRepository } = await Promise.resolve().then(() => __importStar(require('../repositories/adr-repository')));
|
|
301
|
+
const adrRepo = new AdrRepository(adrDb);
|
|
302
|
+
const fileMappings = await adrRepo.getAdrFileMappings(adr.id);
|
|
303
|
+
// Structured file list
|
|
304
|
+
const filesStr = fileMappings.length > 0
|
|
305
|
+
? `\n\nLinked files: ${fileMappings.map(m => m.file_path).join(', ')}`
|
|
306
|
+
: '';
|
|
285
307
|
return `${adr.title}\n${adr.content_markdown}${filesStr}`;
|
|
286
308
|
}
|
|
287
309
|
case 'T': {
|
|
@@ -317,9 +339,32 @@ class EmbeddingPipeline {
|
|
|
317
339
|
computeContentHash(content) {
|
|
318
340
|
return crypto.createHash('sha256').update(content).digest('hex');
|
|
319
341
|
}
|
|
342
|
+
/**
|
|
343
|
+
* Estimates token count from content length (Markdown-optimized).
|
|
344
|
+
* Markdown has different token densities:
|
|
345
|
+
* - Code blocks: ~3 chars/token (more tokens per char due to formatting)
|
|
346
|
+
* - Normal text: ~4 chars/token (standard estimate)
|
|
347
|
+
* - Tables: ~2.5 chars/token (many separators increase token count)
|
|
348
|
+
*/
|
|
349
|
+
estimateTokens(content) {
|
|
350
|
+
// Match code blocks (```...```)
|
|
351
|
+
const codeBlockMatches = content.match(/```[\s\S]*?```/g) || [];
|
|
352
|
+
const codeBlockLength = codeBlockMatches.reduce((sum, block) => sum + block.length, 0);
|
|
353
|
+
// Match table rows (|...|)
|
|
354
|
+
const tableMatches = content.match(/\|.*\|/g) || [];
|
|
355
|
+
const tableLength = tableMatches.reduce((sum, line) => sum + line.length, 0);
|
|
356
|
+
// Normal text (everything else)
|
|
357
|
+
const normalLength = content.length - codeBlockLength - tableLength;
|
|
358
|
+
// Calculate tokens for each type
|
|
359
|
+
const codeTokens = Math.ceil(codeBlockLength / 3); // Code blocks: ~3 chars/token
|
|
360
|
+
const tableTokens = Math.ceil(tableLength / 2.5); // Tables: ~2.5 chars/token
|
|
361
|
+
const normalTokens = Math.ceil(normalLength / 4); // Normal text: ~4 chars/token
|
|
362
|
+
return codeTokens + tableTokens + normalTokens;
|
|
363
|
+
}
|
|
320
364
|
/**
|
|
321
365
|
* Optimizes module documentation for embedding while preserving semantic meaning.
|
|
322
366
|
* Strategy: Keep structure and important information, remove detailed tables.
|
|
367
|
+
* Aggressively truncates code blocks to signatures only, limits table rows.
|
|
323
368
|
*
|
|
324
369
|
* @param content Full markdown content
|
|
325
370
|
* @param maxTokens Maximum tokens allowed
|
|
@@ -328,95 +373,142 @@ class EmbeddingPipeline {
|
|
|
328
373
|
optimizeModuleContentForEmbedding(content, maxTokens) {
|
|
329
374
|
const lines = content.split('\n');
|
|
330
375
|
const optimized = [];
|
|
331
|
-
let
|
|
332
|
-
const
|
|
333
|
-
let
|
|
376
|
+
let currentTokens = 0;
|
|
377
|
+
const maxTokensWithMargin = maxTokens * 0.95; // 5% Margin für Sicherheit
|
|
378
|
+
let inCodeBlock = false;
|
|
379
|
+
let codeBlockStartLine = -1;
|
|
380
|
+
let codeBlockOpener = '';
|
|
334
381
|
let interfaceCount = 0;
|
|
335
382
|
let methodCount = 0;
|
|
383
|
+
let tableRowCount = 0;
|
|
336
384
|
let tableHeaderSkipped = false;
|
|
337
|
-
for (
|
|
338
|
-
const
|
|
385
|
+
for (let i = 0; i < lines.length; i++) {
|
|
386
|
+
const line = lines[i];
|
|
387
|
+
const lineTokens = this.estimateTokens(line);
|
|
388
|
+
// Prüfe Token-Anzahl während Iteration (frühe Kürzung)
|
|
389
|
+
if (currentTokens + lineTokens > maxTokensWithMargin) {
|
|
390
|
+
// Versuche bei logischem Punkt zu kürzen
|
|
391
|
+
if (inCodeBlock) {
|
|
392
|
+
// Kürze Code-Block: Behalte nur erste Zeile (Signatur)
|
|
393
|
+
if (codeBlockStartLine >= 0 && i > codeBlockStartLine) {
|
|
394
|
+
const codeBlockLines = lines.slice(codeBlockStartLine + 1, i);
|
|
395
|
+
const firstLine = codeBlockLines.find(l => l.trim() && !l.startsWith('```'));
|
|
396
|
+
if (firstLine) {
|
|
397
|
+
optimized.push(codeBlockOpener);
|
|
398
|
+
optimized.push(firstLine);
|
|
399
|
+
optimized.push('```');
|
|
400
|
+
currentTokens += this.estimateTokens(codeBlockOpener + '\n' + firstLine + '\n```');
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
inCodeBlock = false;
|
|
404
|
+
codeBlockStartLine = -1;
|
|
405
|
+
}
|
|
406
|
+
// Füge Truncation-Marker hinzu
|
|
407
|
+
optimized.push('\n[... content optimized for embedding - truncated to fit token limit ...]');
|
|
408
|
+
break;
|
|
409
|
+
}
|
|
339
410
|
// Behalte Header (wichtig für Struktur)
|
|
340
411
|
if (line.startsWith('#') || line.startsWith('##')) {
|
|
341
412
|
optimized.push(line);
|
|
342
|
-
|
|
413
|
+
currentTokens += lineTokens;
|
|
343
414
|
continue;
|
|
344
415
|
}
|
|
345
416
|
// Behalte Interface/Method-Namen (wichtig für Semantic Search)
|
|
346
417
|
if (line.startsWith('### interface:') || line.startsWith('### method:') || line.startsWith('### class:') || line.startsWith('### variable:')) {
|
|
347
418
|
optimized.push(line);
|
|
348
|
-
|
|
419
|
+
currentTokens += lineTokens;
|
|
349
420
|
if (line.includes('interface:'))
|
|
350
421
|
interfaceCount++;
|
|
351
422
|
if (line.includes('method:'))
|
|
352
423
|
methodCount++;
|
|
424
|
+
tableRowCount = 0;
|
|
353
425
|
tableHeaderSkipped = false;
|
|
354
426
|
continue;
|
|
355
427
|
}
|
|
356
|
-
//
|
|
428
|
+
// Code-Blöcke: Behalte nur erste Zeile (Signatur)
|
|
357
429
|
if (line.startsWith('```')) {
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
430
|
+
if (!inCodeBlock) {
|
|
431
|
+
// Code-Block startet
|
|
432
|
+
inCodeBlock = true;
|
|
433
|
+
codeBlockStartLine = i;
|
|
434
|
+
codeBlockOpener = line;
|
|
435
|
+
optimized.push(line); // Behalte ``` opener
|
|
436
|
+
currentTokens += lineTokens;
|
|
437
|
+
}
|
|
438
|
+
else {
|
|
439
|
+
// Code-Block endet
|
|
440
|
+
inCodeBlock = false;
|
|
441
|
+
optimized.push(line); // Behalte ``` closer
|
|
442
|
+
currentTokens += lineTokens;
|
|
443
|
+
codeBlockStartLine = -1;
|
|
444
|
+
}
|
|
445
|
+
continue;
|
|
446
|
+
}
|
|
447
|
+
if (inCodeBlock) {
|
|
448
|
+
// In Code-Block: Behalte nur erste Zeile (Signatur)
|
|
449
|
+
if (codeBlockStartLine === i - 1) {
|
|
450
|
+
// Erste Zeile nach ``` opener
|
|
451
|
+
optimized.push(line);
|
|
452
|
+
currentTokens += lineTokens;
|
|
453
|
+
}
|
|
454
|
+
// Überspringe weitere Zeilen im Code-Block
|
|
361
455
|
continue;
|
|
362
456
|
}
|
|
363
|
-
//
|
|
364
|
-
// (Eigenschaften-Tabellen, Parameter-Tabellen sind weniger wichtig für Semantic Search)
|
|
457
|
+
// Tabellen: Aggressiver kürzen (max. 3 Zeilen pro Tabelle)
|
|
365
458
|
if (line.startsWith('|')) {
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
tableHeaderSkipped = true;
|
|
373
|
-
}
|
|
374
|
-
else if (!tableHeaderSkipped) {
|
|
375
|
-
// Erste Zeile nach Header: Behalte (wichtig für Kontext)
|
|
376
|
-
optimized.push(line);
|
|
377
|
-
currentTokenCount += lineTokens;
|
|
378
|
-
tableHeaderSkipped = true;
|
|
379
|
-
}
|
|
380
|
-
// Überspringe weitere Daten-Zeilen
|
|
381
|
-
continue;
|
|
459
|
+
if (line.includes('---')) {
|
|
460
|
+
// Tabellen-Separator: Behalte
|
|
461
|
+
optimized.push(line);
|
|
462
|
+
currentTokens += lineTokens;
|
|
463
|
+
tableRowCount = 0;
|
|
464
|
+
tableHeaderSkipped = false;
|
|
382
465
|
}
|
|
383
466
|
else {
|
|
384
|
-
//
|
|
385
|
-
|
|
386
|
-
|
|
467
|
+
// Tabellen-Zeile: Überspringe nach 3 Zeilen
|
|
468
|
+
if (tableRowCount < 3) {
|
|
469
|
+
optimized.push(line);
|
|
470
|
+
currentTokens += lineTokens;
|
|
471
|
+
tableRowCount++;
|
|
472
|
+
}
|
|
473
|
+
// Überspringe weitere Zeilen
|
|
387
474
|
}
|
|
388
475
|
continue;
|
|
389
476
|
}
|
|
390
|
-
//
|
|
391
|
-
if (line.trim()
|
|
392
|
-
|
|
477
|
+
// Behalte wichtige Kommentare (change markers)
|
|
478
|
+
if (line.trim().startsWith('<!--') && line.includes('change:')) {
|
|
479
|
+
optimized.push(line);
|
|
480
|
+
currentTokens += lineTokens;
|
|
481
|
+
continue;
|
|
393
482
|
}
|
|
394
|
-
// Behalte
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
if (currentTokenCount > maxChars * 0.9) {
|
|
399
|
-
// Versuche bei Interface/Method-Ende zu kürzen
|
|
400
|
-
const currentContent = optimized.join('\n');
|
|
401
|
-
const lastInterfaceEnd = currentContent.lastIndexOf('```');
|
|
402
|
-
if (lastInterfaceEnd > maxChars * 0.7) {
|
|
403
|
-
const truncated = currentContent.substring(0, lastInterfaceEnd + 3);
|
|
404
|
-
return truncated + '\n\n[... content optimized for embedding - details removed ...]';
|
|
405
|
-
}
|
|
483
|
+
// Behalte leere Zeilen (Struktur)
|
|
484
|
+
if (line.trim() === '') {
|
|
485
|
+
optimized.push(line);
|
|
486
|
+
continue;
|
|
406
487
|
}
|
|
488
|
+
// Für sehr große Dokumentationen: Überspringe normale Text-Zeilen
|
|
489
|
+
if (interfaceCount > 20 || methodCount > 50) {
|
|
490
|
+
// Überspringe normale Text-Zeilen (nicht Header, nicht Code, nicht Tabellen)
|
|
491
|
+
continue;
|
|
492
|
+
}
|
|
493
|
+
// Behalte alle anderen Zeilen
|
|
494
|
+
optimized.push(line);
|
|
495
|
+
currentTokens += lineTokens;
|
|
407
496
|
}
|
|
408
497
|
const optimizedContent = optimized.join('\n');
|
|
409
|
-
const
|
|
410
|
-
// Falls immer noch zu gro
|
|
411
|
-
if (
|
|
498
|
+
const finalTokens = this.estimateTokens(optimizedContent);
|
|
499
|
+
// Finale Prüfung: Falls immer noch zu groß, kürze aggressiv
|
|
500
|
+
if (finalTokens > maxTokens) {
|
|
501
|
+
const maxChars = maxTokens * 3; // Konservativ: 3 chars/token
|
|
412
502
|
const truncated = optimizedContent.substring(0, maxChars);
|
|
413
|
-
return truncated + '\n\n[... content optimized for embedding ...]';
|
|
503
|
+
return truncated + '\n\n[... content optimized for embedding - final truncation ...]';
|
|
414
504
|
}
|
|
415
505
|
return optimizedContent;
|
|
416
506
|
}
|
|
417
507
|
/**
|
|
418
508
|
* Extracts only the structure of a module (header, interface/method names, signatures).
|
|
419
509
|
* Used for hierarchical embeddings where details are in Y-Dimension (Symbols).
|
|
510
|
+
* Only keeps: Headers, interface/method/class/variable names, first line of code blocks (signatures).
|
|
511
|
+
* Removes: All tables, code block bodies, normal text.
|
|
420
512
|
*
|
|
421
513
|
* @param content Full markdown content
|
|
422
514
|
* @returns Module structure (header + names + signatures, no details)
|
|
@@ -425,35 +517,40 @@ class EmbeddingPipeline {
|
|
|
425
517
|
const lines = content.split('\n');
|
|
426
518
|
const structure = [];
|
|
427
519
|
let inCodeBlock = false;
|
|
428
|
-
let
|
|
429
|
-
let
|
|
520
|
+
let codeBlockOpener = '';
|
|
521
|
+
let codeBlockFirstLine = null;
|
|
430
522
|
for (let i = 0; i < lines.length; i++) {
|
|
431
523
|
const line = lines[i];
|
|
432
524
|
// Behalte alle Header
|
|
433
525
|
if (line.startsWith('#') || line.startsWith('##') || line.startsWith('###')) {
|
|
434
526
|
structure.push(line);
|
|
435
|
-
lastHeader = line;
|
|
436
527
|
continue;
|
|
437
528
|
}
|
|
438
|
-
//
|
|
529
|
+
// Code-Blöcke: Behalte nur erste Zeile (Signatur)
|
|
439
530
|
if (line.startsWith('```')) {
|
|
440
531
|
if (inCodeBlock) {
|
|
441
532
|
// Ende des Code-Blocks: Behalte nur erste Zeile (Signatur)
|
|
442
|
-
if (
|
|
443
|
-
structure.push(
|
|
444
|
-
structure.push(
|
|
533
|
+
if (codeBlockFirstLine !== null) {
|
|
534
|
+
structure.push(codeBlockOpener);
|
|
535
|
+
structure.push(codeBlockFirstLine);
|
|
445
536
|
structure.push('```');
|
|
446
537
|
}
|
|
447
|
-
|
|
538
|
+
codeBlockFirstLine = null;
|
|
448
539
|
inCodeBlock = false;
|
|
449
540
|
}
|
|
450
541
|
else {
|
|
542
|
+
// Code-Block startet
|
|
451
543
|
inCodeBlock = true;
|
|
544
|
+
codeBlockOpener = line;
|
|
452
545
|
}
|
|
453
546
|
continue;
|
|
454
547
|
}
|
|
455
548
|
if (inCodeBlock) {
|
|
456
|
-
|
|
549
|
+
// In Code-Block: Behalte nur erste Zeile (Signatur)
|
|
550
|
+
if (codeBlockFirstLine === null && line.trim() && !line.startsWith('```')) {
|
|
551
|
+
codeBlockFirstLine = line;
|
|
552
|
+
}
|
|
553
|
+
// Überspringe weitere Zeilen im Code-Block
|
|
457
554
|
continue;
|
|
458
555
|
}
|
|
459
556
|
// Überspringe Tabellen komplett (Details sind in Y-Dimension)
|
|
@@ -465,12 +562,17 @@ class EmbeddingPipeline {
|
|
|
465
562
|
structure.push(line);
|
|
466
563
|
continue;
|
|
467
564
|
}
|
|
468
|
-
// Behalte leere Zeilen für Struktur
|
|
565
|
+
// Behalte leere Zeilen für Struktur (max. 2 aufeinanderfolgende)
|
|
469
566
|
if (line.trim() === '') {
|
|
567
|
+
const lastLine = structure[structure.length - 1];
|
|
568
|
+
if (lastLine && lastLine.trim() === '') {
|
|
569
|
+
// Bereits eine leere Zeile, überspringe weitere
|
|
570
|
+
continue;
|
|
571
|
+
}
|
|
470
572
|
structure.push(line);
|
|
471
573
|
continue;
|
|
472
574
|
}
|
|
473
|
-
// Überspringe alle anderen Details
|
|
575
|
+
// Überspringe alle anderen Details (normaler Text, Beschreibungen, etc.)
|
|
474
576
|
}
|
|
475
577
|
return structure.join('\n');
|
|
476
578
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-pipeline.js","sourceRoot":"","sources":["../../src/embedding/embedding-pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"embedding-pipeline.js","sourceRoot":"","sources":["../../src/embedding/embedding-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query Rewriter Service
|
|
3
|
+
*
|
|
4
|
+
* Provides centralized query rewriting logic for semantic search and discovery.
|
|
5
|
+
* Handles ADR number recognition, query expansion, and synonym recognition.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Rewrites a query to improve semantic search results.
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - ADR number recognition and expansion (e.g., "ADR-0016" → "ADR 0016" + "0016")
|
|
12
|
+
* - Synonym recognition (e.g., "migration" → "migrate", "migrated", "migrating")
|
|
13
|
+
* - Query expansion for better embedding matches
|
|
14
|
+
*/
|
|
15
|
+
export declare class QueryRewriter {
|
|
16
|
+
/**
|
|
17
|
+
* Rewrites a query to improve semantic search results.
|
|
18
|
+
*
|
|
19
|
+
* @param query The original query string
|
|
20
|
+
* @returns The rewritten query with expanded terms
|
|
21
|
+
*/
|
|
22
|
+
rewriteQuery(query: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Extracts ADR numbers from a query string.
|
|
25
|
+
*
|
|
26
|
+
* Recognizes patterns like:
|
|
27
|
+
* - "ADR-0016"
|
|
28
|
+
* - "ADR 0016"
|
|
29
|
+
* - "0016"
|
|
30
|
+
* - "16" (with context suggesting ADR)
|
|
31
|
+
*
|
|
32
|
+
* @param query The query string
|
|
33
|
+
* @returns Array of extracted ADR numbers (without leading zeros)
|
|
34
|
+
*/
|
|
35
|
+
extractAdrNumbers(query: string): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Expands a query with ADR number variants.
|
|
38
|
+
*
|
|
39
|
+
* Adds variants like:
|
|
40
|
+
* - "ADR 0016"
|
|
41
|
+
* - "0016"
|
|
42
|
+
* - "016" (with leading zero)
|
|
43
|
+
*
|
|
44
|
+
* @param query The original query
|
|
45
|
+
* @param adrNumbers Array of ADR numbers to expand
|
|
46
|
+
* @returns Expanded query string
|
|
47
|
+
*/
|
|
48
|
+
expandAdrQuery(query: string, adrNumbers: string[]): string;
|
|
49
|
+
/**
|
|
50
|
+
* Expands synonyms in a query.
|
|
51
|
+
*
|
|
52
|
+
* Currently handles common patterns:
|
|
53
|
+
* - "migration" → "migrate", "migrated", "migrating"
|
|
54
|
+
* - Can be extended with more synonym mappings
|
|
55
|
+
*
|
|
56
|
+
* @param query The query string
|
|
57
|
+
* @returns Query with expanded synonyms
|
|
58
|
+
*/
|
|
59
|
+
private expandSynonyms;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=query-rewriter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-rewriter.d.ts","sourceRoot":"","sources":["../../src/services/query-rewriter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,qBAAa,aAAa;IACtB;;;;;OAKG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAmB1C;;;;;;;;;;;OAWG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAsCjD;;;;;;;;;;;OAWG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IA+BlE;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;CA0BzB"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Query Rewriter Service
|
|
4
|
+
*
|
|
5
|
+
* Provides centralized query rewriting logic for semantic search and discovery.
|
|
6
|
+
* Handles ADR number recognition, query expansion, and synonym recognition.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.QueryRewriter = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Rewrites a query to improve semantic search results.
|
|
12
|
+
*
|
|
13
|
+
* Features:
|
|
14
|
+
* - ADR number recognition and expansion (e.g., "ADR-0016" → "ADR 0016" + "0016")
|
|
15
|
+
* - Synonym recognition (e.g., "migration" → "migrate", "migrated", "migrating")
|
|
16
|
+
* - Query expansion for better embedding matches
|
|
17
|
+
*/
|
|
18
|
+
class QueryRewriter {
|
|
19
|
+
/**
|
|
20
|
+
* Rewrites a query to improve semantic search results.
|
|
21
|
+
*
|
|
22
|
+
* @param query The original query string
|
|
23
|
+
* @returns The rewritten query with expanded terms
|
|
24
|
+
*/
|
|
25
|
+
rewriteQuery(query) {
|
|
26
|
+
if (!query || query.trim().length === 0) {
|
|
27
|
+
return query;
|
|
28
|
+
}
|
|
29
|
+
let rewritten = query;
|
|
30
|
+
// 1. ADR number recognition and expansion
|
|
31
|
+
const adrNumbers = this.extractAdrNumbers(query);
|
|
32
|
+
if (adrNumbers.length > 0) {
|
|
33
|
+
rewritten = this.expandAdrQuery(rewritten, adrNumbers);
|
|
34
|
+
}
|
|
35
|
+
// 2. Synonym recognition and expansion (optional, can be extended)
|
|
36
|
+
rewritten = this.expandSynonyms(rewritten);
|
|
37
|
+
return rewritten.trim();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Extracts ADR numbers from a query string.
|
|
41
|
+
*
|
|
42
|
+
* Recognizes patterns like:
|
|
43
|
+
* - "ADR-0016"
|
|
44
|
+
* - "ADR 0016"
|
|
45
|
+
* - "0016"
|
|
46
|
+
* - "16" (with context suggesting ADR)
|
|
47
|
+
*
|
|
48
|
+
* @param query The query string
|
|
49
|
+
* @returns Array of extracted ADR numbers (without leading zeros)
|
|
50
|
+
*/
|
|
51
|
+
extractAdrNumbers(query) {
|
|
52
|
+
const adrNumbers = [];
|
|
53
|
+
// Pattern 1: "ADR-0016", "ADR-16", "adr-0016"
|
|
54
|
+
const adrPrefixPattern = /ADR[- ]0*(\d+)/gi;
|
|
55
|
+
let match;
|
|
56
|
+
while ((match = adrPrefixPattern.exec(query)) !== null) {
|
|
57
|
+
const number = match[1];
|
|
58
|
+
if (!adrNumbers.includes(number)) {
|
|
59
|
+
adrNumbers.push(number);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Pattern 2: Standalone numbers (3-4 digits) - likely ADR numbers
|
|
63
|
+
// This is less reliable, so we only match if there's context (e.g., "ADR 0016" already found)
|
|
64
|
+
const standalonePattern = /\b0*(\d{1,4})\b/g;
|
|
65
|
+
while ((match = standalonePattern.exec(query)) !== null) {
|
|
66
|
+
const number = match[1];
|
|
67
|
+
// Only add if it looks like an ADR number (reasonable range: 1-9999)
|
|
68
|
+
const numValue = parseInt(number, 10);
|
|
69
|
+
if (numValue >= 1 && numValue <= 9999 && !adrNumbers.includes(number)) {
|
|
70
|
+
// Check if there's context suggesting ADR (e.g., "ADR", "decision", "architecture")
|
|
71
|
+
const context = query.toLowerCase();
|
|
72
|
+
const hasAdrContext = context.includes('adr') ||
|
|
73
|
+
context.includes('decision') ||
|
|
74
|
+
context.includes('architecture') ||
|
|
75
|
+
context.includes('record');
|
|
76
|
+
if (hasAdrContext || adrNumbers.length > 0) {
|
|
77
|
+
adrNumbers.push(number);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return adrNumbers;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Expands a query with ADR number variants.
|
|
85
|
+
*
|
|
86
|
+
* Adds variants like:
|
|
87
|
+
* - "ADR 0016"
|
|
88
|
+
* - "0016"
|
|
89
|
+
* - "016" (with leading zero)
|
|
90
|
+
*
|
|
91
|
+
* @param query The original query
|
|
92
|
+
* @param adrNumbers Array of ADR numbers to expand
|
|
93
|
+
* @returns Expanded query string
|
|
94
|
+
*/
|
|
95
|
+
expandAdrQuery(query, adrNumbers) {
|
|
96
|
+
if (adrNumbers.length === 0) {
|
|
97
|
+
return query;
|
|
98
|
+
}
|
|
99
|
+
const expansions = [];
|
|
100
|
+
for (const adrNumber of adrNumbers) {
|
|
101
|
+
const numValue = parseInt(adrNumber, 10);
|
|
102
|
+
// Add "ADR {number}"
|
|
103
|
+
expansions.push(`ADR ${adrNumber}`);
|
|
104
|
+
// Add padded version (e.g., "0016" if input was "16")
|
|
105
|
+
const padded = numValue.toString().padStart(3, '0');
|
|
106
|
+
if (padded !== adrNumber) {
|
|
107
|
+
expansions.push(padded);
|
|
108
|
+
}
|
|
109
|
+
// Add unpadded version (e.g., "16" if input was "0016")
|
|
110
|
+
const unpadded = numValue.toString();
|
|
111
|
+
if (unpadded !== adrNumber && unpadded !== padded) {
|
|
112
|
+
expansions.push(unpadded);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Combine original query with expansions
|
|
116
|
+
const uniqueExpansions = Array.from(new Set(expansions));
|
|
117
|
+
return `${query} ${uniqueExpansions.join(' ')}`;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Expands synonyms in a query.
|
|
121
|
+
*
|
|
122
|
+
* Currently handles common patterns:
|
|
123
|
+
* - "migration" → "migrate", "migrated", "migrating"
|
|
124
|
+
* - Can be extended with more synonym mappings
|
|
125
|
+
*
|
|
126
|
+
* @param query The query string
|
|
127
|
+
* @returns Query with expanded synonyms
|
|
128
|
+
*/
|
|
129
|
+
expandSynonyms(query) {
|
|
130
|
+
// Common synonym mappings
|
|
131
|
+
const synonymMap = {
|
|
132
|
+
'migration': ['migrate', 'migrated', 'migrating'],
|
|
133
|
+
'migrate': ['migration', 'migrated', 'migrating'],
|
|
134
|
+
'refactor': ['refactoring', 'refactored'],
|
|
135
|
+
'refactoring': ['refactor', 'refactored'],
|
|
136
|
+
'implement': ['implementation', 'implemented', 'implementing'],
|
|
137
|
+
'implementation': ['implement', 'implemented', 'implementing'],
|
|
138
|
+
};
|
|
139
|
+
const words = query.split(/\s+/);
|
|
140
|
+
const expandedWords = [];
|
|
141
|
+
for (const word of words) {
|
|
142
|
+
expandedWords.push(word);
|
|
143
|
+
// Check for synonyms (case-insensitive)
|
|
144
|
+
const lowerWord = word.toLowerCase().replace(/[.,;:!?]/g, '');
|
|
145
|
+
if (synonymMap[lowerWord]) {
|
|
146
|
+
expandedWords.push(...synonymMap[lowerWord]);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return expandedWords.join(' ');
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.QueryRewriter = QueryRewriter;
|
|
153
|
+
//# sourceMappingURL=query-rewriter.js.map
|