@noyrax/5d-database-plugin 0.1.13-beta.1 → 0.1.14-beta.10
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 +25 -0
- package/out/api/adr-api.d.ts +0 -6
- package/out/api/adr-api.d.ts.map +1 -1
- package/out/api/adr-api.js +14 -49
- package/out/api/adr-api.js.map +1 -1
- package/out/api/bootstrap-api.d.ts +4 -1
- package/out/api/bootstrap-api.d.ts.map +1 -1
- package/out/api/bootstrap-api.js +27 -4
- package/out/api/bootstrap-api.js.map +1 -1
- package/out/api/context-builder.d.ts.map +1 -1
- package/out/api/context-builder.js +21 -5
- package/out/api/context-builder.js.map +1 -1
- package/out/api/evidence-grader.d.ts +83 -0
- package/out/api/evidence-grader.d.ts.map +1 -0
- package/out/api/evidence-grader.js +161 -0
- package/out/api/evidence-grader.js.map +1 -0
- package/out/api/index.d.ts +5 -0
- package/out/api/index.d.ts.map +1 -1
- package/out/api/index.js +11 -1
- package/out/api/index.js.map +1 -1
- package/out/api/learning-path-api.d.ts +3 -0
- package/out/api/learning-path-api.d.ts.map +1 -1
- package/out/api/learning-path-api.js +15 -2
- package/out/api/learning-path-api.js.map +1 -1
- package/out/api/module-api.d.ts +0 -1
- package/out/api/module-api.d.ts.map +1 -1
- package/out/api/module-api.js +4 -38
- package/out/api/module-api.js.map +1 -1
- package/out/api/self-explanation-api.d.ts +11 -1
- package/out/api/self-explanation-api.d.ts.map +1 -1
- package/out/api/self-explanation-api.js +285 -19
- package/out/api/self-explanation-api.js.map +1 -1
- package/out/api/semantic-search-api.d.ts +3 -0
- package/out/api/semantic-search-api.d.ts.map +1 -1
- package/out/api/semantic-search-api.js +41 -4
- package/out/api/semantic-search-api.js.map +1 -1
- package/out/api/source-access-contract-api.d.ts +60 -0
- package/out/api/source-access-contract-api.d.ts.map +1 -0
- package/out/api/source-access-contract-api.js +231 -0
- package/out/api/source-access-contract-api.js.map +1 -0
- package/out/api/source-snippet-api.d.ts +58 -0
- package/out/api/source-snippet-api.d.ts.map +1 -0
- package/out/api/source-snippet-api.js +187 -0
- package/out/api/source-snippet-api.js.map +1 -0
- package/out/api/vector-backend-status-api.d.ts +68 -0
- package/out/api/vector-backend-status-api.d.ts.map +1 -0
- package/out/api/vector-backend-status-api.js +241 -0
- package/out/api/vector-backend-status-api.js.map +1 -0
- package/out/cli/debug-embedding-strategies.d.ts +3 -0
- package/out/cli/debug-embedding-strategies.d.ts.map +1 -0
- package/out/cli/debug-embedding-strategies.js +255 -0
- package/out/cli/debug-embedding-strategies.js.map +1 -0
- package/out/cli/debug-plugin-id.d.ts +9 -0
- package/out/cli/debug-plugin-id.d.ts.map +1 -0
- package/out/cli/debug-plugin-id.js +188 -0
- package/out/cli/debug-plugin-id.js.map +1 -0
- package/out/cli/ingest-cli.js +44 -5
- package/out/cli/ingest-cli.js.map +1 -1
- package/out/cli/tool-cli.js +1 -1
- package/out/cli/tool-cli.js.map +1 -1
- package/out/core/chromadb-vector-database.d.ts.map +1 -1
- package/out/core/chromadb-vector-database.js +10 -12
- package/out/core/chromadb-vector-database.js.map +1 -1
- package/out/core/migration-manager.d.ts.map +1 -1
- package/out/core/migration-manager.js +61 -32
- package/out/core/migration-manager.js.map +1 -1
- package/out/core/multi-db-manager.d.ts +26 -0
- package/out/core/multi-db-manager.d.ts.map +1 -1
- package/out/core/multi-db-manager.js +143 -2
- package/out/core/multi-db-manager.js.map +1 -1
- package/out/core/path-normalizer.d.ts +46 -0
- package/out/core/path-normalizer.d.ts.map +1 -0
- package/out/core/path-normalizer.js +152 -0
- package/out/core/path-normalizer.js.map +1 -0
- package/out/core/vector-database-factory.js +5 -5
- package/out/core/vector-database-factory.js.map +1 -1
- package/out/core/vss-vector-database.js +8 -8
- package/out/core/vss-vector-database.js.map +1 -1
- package/out/embedding/embedding-pipeline.d.ts +18 -0
- package/out/embedding/embedding-pipeline.d.ts.map +1 -1
- package/out/embedding/embedding-pipeline.js +192 -3
- package/out/embedding/embedding-pipeline.js.map +1 -1
- package/out/embedding/module-summarizer.d.ts +25 -0
- package/out/embedding/module-summarizer.d.ts.map +1 -0
- package/out/embedding/module-summarizer.js +104 -0
- package/out/embedding/module-summarizer.js.map +1 -0
- package/out/ingestors/adr-ingestor.d.ts.map +1 -1
- package/out/ingestors/adr-ingestor.js +7 -8
- package/out/ingestors/adr-ingestor.js.map +1 -1
- package/out/ingestors/module-ingestor.d.ts.map +1 -1
- package/out/ingestors/module-ingestor.js +17 -0
- package/out/ingestors/module-ingestor.js.map +1 -1
- package/out/ingestors/symbol-ingestor.d.ts.map +1 -1
- package/out/ingestors/symbol-ingestor.js +24 -2
- package/out/ingestors/symbol-ingestor.js.map +1 -1
- package/out/mcp/tools/gap-analysis.d.ts +21 -2
- package/out/mcp/tools/gap-analysis.d.ts.map +1 -1
- package/out/mcp/tools/gap-analysis.js +326 -27
- package/out/mcp/tools/gap-analysis.js.map +1 -1
- package/out/mcp/tools/learning-path.d.ts.map +1 -1
- package/out/mcp/tools/learning-path.js +19 -5
- package/out/mcp/tools/learning-path.js.map +1 -1
- package/out/mcp/tools/semantic-discovery.d.ts.map +1 -1
- package/out/mcp/tools/semantic-discovery.js +110 -22
- package/out/mcp/tools/semantic-discovery.js.map +1 -1
- package/out/mcp/tools/source-access-contract.d.ts +26 -0
- package/out/mcp/tools/source-access-contract.d.ts.map +1 -0
- package/out/mcp/tools/source-access-contract.js +45 -0
- package/out/mcp/tools/source-access-contract.js.map +1 -0
- package/out/mcp/tools/source-snippet.d.ts +71 -0
- package/out/mcp/tools/source-snippet.d.ts.map +1 -0
- package/out/mcp/tools/source-snippet.js +82 -0
- package/out/mcp/tools/source-snippet.js.map +1 -0
- package/out/models/action-hint.d.ts +36 -0
- package/out/models/action-hint.d.ts.map +1 -0
- package/out/models/action-hint.js +38 -0
- package/out/models/action-hint.js.map +1 -0
- package/out/models/evidence.d.ts +68 -0
- package/out/models/evidence.d.ts.map +1 -0
- package/out/models/evidence.js +91 -0
- package/out/models/evidence.js.map +1 -0
- package/out/models/module.d.ts +2 -0
- package/out/models/module.d.ts.map +1 -1
- package/out/models/reason-codes.d.ts +52 -0
- package/out/models/reason-codes.d.ts.map +1 -0
- package/out/models/reason-codes.js +83 -0
- package/out/models/reason-codes.js.map +1 -0
- package/out/models/symbol.d.ts +6 -0
- package/out/models/symbol.d.ts.map +1 -1
- package/out/repositories/adr-repository.d.ts.map +1 -1
- package/out/repositories/adr-repository.js +2 -1
- package/out/repositories/adr-repository.js.map +1 -1
- package/out/repositories/module-repository.d.ts.map +1 -1
- package/out/repositories/module-repository.js +9 -3
- package/out/repositories/module-repository.js.map +1 -1
- package/out/repositories/symbol-repository.d.ts.map +1 -1
- package/out/repositories/symbol-repository.js +22 -4
- package/out/repositories/symbol-repository.js.map +1 -1
- package/out/services/cross-dimension-linker.d.ts.map +1 -1
- package/out/services/cross-dimension-linker.js +27 -3
- package/out/services/cross-dimension-linker.js.map +1 -1
- package/package.json +196 -195
- package/schemas/sqlite/001_add_source_code_spans_modules.sql +7 -0
- package/schemas/sqlite/001_z_add_source_code_spans_modules.sql +13 -0
- package/schemas/sqlite/002_add_source_code_spans_symbols.sql +15 -0
- package/schemas/sqlite/002_z_add_source_code_spans_symbols.sql +21 -0
- package/schemas/sqlite/006_add_source_access_config.sql +33 -0
package/README.md
CHANGED
|
@@ -110,6 +110,31 @@ Für AI-Agenten und Entwickler stehen CLI-Tools für direkten Datenbank-Zugriff
|
|
|
110
110
|
|
|
111
111
|
**Hinweis:** Die Embedding-Pipeline wird automatisch bei der Ingestion ausgeführt, kann aber auch manuell via `noyrax-5d-database-embedding` ausgeführt werden (z.B. wenn ChromaDB nachträglich gestartet wurde).
|
|
112
112
|
|
|
113
|
+
### Environment Variables
|
|
114
|
+
|
|
115
|
+
Das System nutzt folgende Environment Variables (können in `.env` Datei oder als System-Environment-Variablen gesetzt werden):
|
|
116
|
+
|
|
117
|
+
- **`OPENAI_API_KEY`** (erforderlich für Embeddings):
|
|
118
|
+
- API-Key für OpenAI (für Embedding-Generierung und optional Summarization)
|
|
119
|
+
- Wird automatisch aus `.env` Datei geladen
|
|
120
|
+
- Beispiel: `OPENAI_API_KEY=sk-...`
|
|
121
|
+
|
|
122
|
+
- **`EMBEDDING_STRATEGY`** (optional, default: `optimize`):
|
|
123
|
+
- Strategie für große Module-Dokumentationen (>8000 Tokens)
|
|
124
|
+
- Mögliche Werte:
|
|
125
|
+
- `optimize` (default): Intelligente Kürzung - behält Struktur, entfernt Details
|
|
126
|
+
- `hierarchical`: Nur Struktur (Header, Namen, Signaturen) - Details in Y-Dimension
|
|
127
|
+
- `summarize`: LLM-basierte Summarization (erfordert `OPENAI_API_KEY`)
|
|
128
|
+
- Beispiel: `EMBEDDING_STRATEGY=summarize`
|
|
129
|
+
|
|
130
|
+
**Token-Limit-Handling:**
|
|
131
|
+
- OpenAI text-embedding-3-small hat ein Context-Length-Limit von 8192 Tokens
|
|
132
|
+
- Große Module-Dokumentationen werden automatisch erkannt (>8000 Tokens)
|
|
133
|
+
- Die gewählte Strategie wird automatisch angewendet
|
|
134
|
+
- Bei Summarization-Fehlern: Automatischer Fallback auf Optimize-Strategie
|
|
135
|
+
|
|
136
|
+
Siehe `docs/adr/021-embedding-system-generator-pipeline.md` für Details zu den Strategien.
|
|
137
|
+
|
|
113
138
|
**Gap Analysis Tool:**
|
|
114
139
|
|
|
115
140
|
Das `gap_analysis` Tool identifiziert systematisch Dokumentationslücken:
|
package/out/api/adr-api.d.ts
CHANGED
|
@@ -25,11 +25,5 @@ export declare class AdrApi {
|
|
|
25
25
|
* Supports various path formats (similar to ModuleApi.getModuleByPath).
|
|
26
26
|
*/
|
|
27
27
|
getAdrsByFilePath(filePath: string, pluginId: string): Promise<Adr[]>;
|
|
28
|
-
/**
|
|
29
|
-
* Normalizes a file path to generate possible variants for flexible matching.
|
|
30
|
-
* Returns an array of path variants in order of preference.
|
|
31
|
-
* (Same logic as ModuleApi.normalizeFilePath)
|
|
32
|
-
*/
|
|
33
|
-
private normalizeFilePath;
|
|
34
28
|
}
|
|
35
29
|
//# sourceMappingURL=adr-api.d.ts.map
|
package/out/api/adr-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr-api.d.ts","sourceRoot":"","sources":["../../src/api/adr-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"adr-api.d.ts","sourceRoot":"","sources":["../../src/api/adr-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAGpC;;GAEG;AACH,qBAAa,MAAM;IACf,OAAO,CAAC,SAAS,CAAiB;gBAEtB,SAAS,EAAE,cAAc;IAIrC;;;OAGG;IACU,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAwBrF;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA2C1B;;OAEG;IACU,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAMzD;;;OAGG;IACU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CAwBrF"}
|
package/out/api/adr-api.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AdrApi = void 0;
|
|
4
4
|
const adr_repository_1 = require("../repositories/adr-repository");
|
|
5
|
+
const path_normalizer_1 = require("../core/path-normalizer");
|
|
5
6
|
/**
|
|
6
7
|
* API for W-Dimension: ADRs
|
|
7
8
|
*/
|
|
@@ -38,26 +39,31 @@ class AdrApi {
|
|
|
38
39
|
*/
|
|
39
40
|
normalizeAdrNumber(adrNumber) {
|
|
40
41
|
const variants = [];
|
|
42
|
+
// Normalize: Remove "ADR-" prefix if present (case-insensitive)
|
|
43
|
+
let normalizedInput = adrNumber.replace(/^ADR-/i, '').trim();
|
|
44
|
+
if (normalizedInput === '') {
|
|
45
|
+
normalizedInput = adrNumber; // Fallback to original if normalization resulted in empty string
|
|
46
|
+
}
|
|
41
47
|
// Remove any non-numeric prefix/suffix
|
|
42
|
-
const numericMatch =
|
|
48
|
+
const numericMatch = normalizedInput.match(/(\d+)/);
|
|
43
49
|
if (!numericMatch) {
|
|
44
|
-
return [
|
|
50
|
+
return [normalizedInput]; // Return normalized if no number found
|
|
45
51
|
}
|
|
46
52
|
const numericPart = numericMatch[1];
|
|
47
53
|
const numValue = parseInt(numericPart, 10);
|
|
48
|
-
// Original
|
|
49
|
-
variants.push(
|
|
54
|
+
// Original (normalized)
|
|
55
|
+
variants.push(normalizedInput);
|
|
50
56
|
// With leading zeros (3 digits: "001", "020", "042")
|
|
51
57
|
const withLeadingZeros = numValue.toString().padStart(3, '0');
|
|
52
58
|
if (withLeadingZeros !== numericPart) {
|
|
53
|
-
variants.push(
|
|
59
|
+
variants.push(normalizedInput.replace(numericPart, withLeadingZeros));
|
|
54
60
|
}
|
|
55
61
|
// Without leading zeros (if original had them)
|
|
56
62
|
if (numericPart !== numValue.toString()) {
|
|
57
|
-
variants.push(
|
|
63
|
+
variants.push(normalizedInput.replace(numericPart, numValue.toString()));
|
|
58
64
|
}
|
|
59
65
|
// Just the number (if original had prefix/suffix)
|
|
60
|
-
if (
|
|
66
|
+
if (normalizedInput !== numericPart) {
|
|
61
67
|
variants.push(numericPart);
|
|
62
68
|
variants.push(withLeadingZeros);
|
|
63
69
|
variants.push(numValue.toString());
|
|
@@ -86,7 +92,7 @@ class AdrApi {
|
|
|
86
92
|
return adrs;
|
|
87
93
|
}
|
|
88
94
|
// Generate normalized path variants
|
|
89
|
-
const pathVariants =
|
|
95
|
+
const pathVariants = path_normalizer_1.PathNormalizer.generateLookupVariants(filePath);
|
|
90
96
|
// Try each variant
|
|
91
97
|
for (const variant of pathVariants) {
|
|
92
98
|
adrs = await repository.findByFilePath(variant, pluginId);
|
|
@@ -96,47 +102,6 @@ class AdrApi {
|
|
|
96
102
|
}
|
|
97
103
|
return [];
|
|
98
104
|
}
|
|
99
|
-
/**
|
|
100
|
-
* Normalizes a file path to generate possible variants for flexible matching.
|
|
101
|
-
* Returns an array of path variants in order of preference.
|
|
102
|
-
* (Same logic as ModuleApi.normalizeFilePath)
|
|
103
|
-
*/
|
|
104
|
-
normalizeFilePath(filePath) {
|
|
105
|
-
const variants = [];
|
|
106
|
-
// Normalize separators to forward slashes
|
|
107
|
-
let normalized = filePath.replace(/\\/g, '/');
|
|
108
|
-
variants.push(normalized);
|
|
109
|
-
// Remove leading slashes
|
|
110
|
-
const withoutLeadingSlash = normalized.replace(/^\/+/, '');
|
|
111
|
-
if (withoutLeadingSlash !== normalized) {
|
|
112
|
-
variants.push(withoutLeadingSlash);
|
|
113
|
-
}
|
|
114
|
-
const pluginPrefixes = ['5d-database-plugin/', 'documentation-system-plugin/', 'mcp-server/'];
|
|
115
|
-
// Remove common plugin prefixes (e.g., "5d-database-plugin/")
|
|
116
|
-
for (const prefix of pluginPrefixes) {
|
|
117
|
-
if (normalized.startsWith(prefix)) {
|
|
118
|
-
const withoutPrefix = normalized.substring(prefix.length);
|
|
119
|
-
variants.push(withoutPrefix);
|
|
120
|
-
}
|
|
121
|
-
// Also try without leading slash
|
|
122
|
-
if (withoutLeadingSlash.startsWith(prefix)) {
|
|
123
|
-
const withoutPrefix = withoutLeadingSlash.substring(prefix.length);
|
|
124
|
-
variants.push(withoutPrefix);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
// ADD variants WITH plugin prefixes (if path doesn't already have one)
|
|
128
|
-
// This handles cases where file mappings are stored with plugin prefix but queried without
|
|
129
|
-
const hasPluginPrefix = pluginPrefixes.some(prefix => normalized.startsWith(prefix) || withoutLeadingSlash.startsWith(prefix));
|
|
130
|
-
if (!hasPluginPrefix) {
|
|
131
|
-
// Add variants with each plugin prefix
|
|
132
|
-
for (const prefix of pluginPrefixes) {
|
|
133
|
-
variants.push(`${prefix}${withoutLeadingSlash}`);
|
|
134
|
-
variants.push(`${prefix}${normalized}`);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
// Remove duplicates and return
|
|
138
|
-
return Array.from(new Set(variants));
|
|
139
|
-
}
|
|
140
105
|
}
|
|
141
106
|
exports.AdrApi = AdrApi;
|
|
142
107
|
//# sourceMappingURL=adr-api.js.map
|
package/out/api/adr-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr-api.js","sourceRoot":"","sources":["../../src/api/adr-api.ts"],"names":[],"mappings":";;;AAEA,mEAA+D;
|
|
1
|
+
{"version":3,"file":"adr-api.js","sourceRoot":"","sources":["../../src/api/adr-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MultiDbManager } from '../core/multi-db-manager';
|
|
2
2
|
import { EntityReference } from '../models/entity-reference';
|
|
3
|
+
import { Evidence } from '../models/evidence';
|
|
3
4
|
/**
|
|
4
5
|
* Bootstrap information for first-time system understanding.
|
|
5
6
|
* Provides everything an agent needs to start without prior knowledge.
|
|
@@ -14,7 +15,7 @@ export interface BootstrapInfo {
|
|
|
14
15
|
how_to_navigate: string;
|
|
15
16
|
example_queries: string[];
|
|
16
17
|
dimensions_overview: Array<{
|
|
17
|
-
id: 'X' | 'Y' | 'Z' | 'W' | 'T';
|
|
18
|
+
id: 'X' | 'Y' | 'Z' | 'W' | 'T' | 'V';
|
|
18
19
|
name: string;
|
|
19
20
|
description: string;
|
|
20
21
|
}>;
|
|
@@ -23,6 +24,7 @@ export interface BootstrapInfo {
|
|
|
23
24
|
description: string;
|
|
24
25
|
example: any;
|
|
25
26
|
}>;
|
|
27
|
+
evidence?: Evidence;
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
28
30
|
* Bootstrap API - first point of contact for agents without prior knowledge.
|
|
@@ -31,6 +33,7 @@ export interface BootstrapInfo {
|
|
|
31
33
|
export declare class BootstrapApi {
|
|
32
34
|
private dbManager;
|
|
33
35
|
private selfExplanationApi;
|
|
36
|
+
private evidenceGrader;
|
|
34
37
|
constructor(dbManager: MultiDbManager);
|
|
35
38
|
/**
|
|
36
39
|
* Gets bootstrap information for first-time system understanding.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-api.d.ts","sourceRoot":"","sources":["../../src/api/bootstrap-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap-api.d.ts","sourceRoot":"","sources":["../../src/api/bootstrap-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,eAAe,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,KAAK,CAAC;QACvB,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACtC,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,eAAe,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,GAAG,CAAC;KAChB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB;AAID;;;GAGG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,cAAc,CAAiB;gBAE3B,SAAS,EAAE,cAAc;IAMrC;;;;;OAKG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CA8FnE"}
|
package/out/api/bootstrap-api.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BootstrapApi = void 0;
|
|
4
4
|
const self_explanation_api_1 = require("./self-explanation-api");
|
|
5
|
+
const evidence_grader_1 = require("./evidence-grader");
|
|
5
6
|
/**
|
|
6
7
|
* Bootstrap API - first point of contact for agents without prior knowledge.
|
|
7
8
|
* Provides system description, entry points, and example queries.
|
|
@@ -10,6 +11,7 @@ class BootstrapApi {
|
|
|
10
11
|
constructor(dbManager) {
|
|
11
12
|
this.dbManager = dbManager;
|
|
12
13
|
this.selfExplanationApi = new self_explanation_api_1.SelfExplanationApi(dbManager);
|
|
14
|
+
this.evidenceGrader = new evidence_grader_1.EvidenceGrader();
|
|
13
15
|
}
|
|
14
16
|
/**
|
|
15
17
|
* Gets bootstrap information for first-time system understanding.
|
|
@@ -20,6 +22,9 @@ class BootstrapApi {
|
|
|
20
22
|
async getBootstrapInfo(pluginId) {
|
|
21
23
|
// Get system explanation
|
|
22
24
|
const systemExplanation = await this.selfExplanationApi.explainSystem(pluginId);
|
|
25
|
+
// Prüfung: Sind Daten vorhanden? (entry_points ODER dimensions entity_count > 0)
|
|
26
|
+
const hasData = systemExplanation.entry_points.length > 0 ||
|
|
27
|
+
systemExplanation.dimensions.some(d => (d.entity_count || 0) > 0);
|
|
23
28
|
// Get entry points with reasons
|
|
24
29
|
const entryPoints = systemExplanation.entry_points.map(ep => ({
|
|
25
30
|
entity: {
|
|
@@ -29,11 +34,28 @@ class BootstrapApi {
|
|
|
29
34
|
},
|
|
30
35
|
reason: ep.reason || 'Entry point'
|
|
31
36
|
}));
|
|
37
|
+
// how_to_navigate beschreibt den Mechanismus (5D views + Tools), nicht die Identität
|
|
38
|
+
let howToNavigate;
|
|
39
|
+
if (hasData) {
|
|
40
|
+
// Mode B: Has Data - Mechanismus-Beschreibung
|
|
41
|
+
howToNavigate = `Use semantic_discovery tool with natural language queries. The system will find relevant entities and provide structured context from all 6 dimensions (X: Modules, Y: Symbols, Z: Dependencies, W: ADRs, T: Changes, V: Embeddings).`;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// Mode A: No Data (First Run) - Initialisierungs-Anweisungen
|
|
45
|
+
howToNavigate = `To get started, use 'workflow_ensure_ready' to automatically generate documentation and populate the databases. Alternatively, use 'workflow_full_cycle' for a complete workflow (Scan → Generate → Validate → Ingest → Embeddings) or 'workflow_generate_and_ingest' for a simpler workflow (Generate → Ingest).`;
|
|
46
|
+
}
|
|
47
|
+
// Create evidence: INFERRED from system explanation (which is derived from DB queries)
|
|
48
|
+
const evidence = this.evidenceGrader.gradeAsInferred([
|
|
49
|
+
{
|
|
50
|
+
type: 'DB_QUERY',
|
|
51
|
+
path: 'system_explanation'
|
|
52
|
+
}
|
|
53
|
+
], 'Bootstrap information derived from system explanation, which aggregates data from multiple database queries');
|
|
32
54
|
return {
|
|
33
|
-
what_am_i: systemExplanation.what_am_i,
|
|
34
|
-
how_do_i_work: systemExplanation.how_do_i_work,
|
|
55
|
+
what_am_i: systemExplanation.what_am_i, // Die Codebase (Name/Desc)
|
|
56
|
+
how_do_i_work: systemExplanation.how_do_i_work, // System facts (was ist in der Codebase)
|
|
35
57
|
where_to_start: entryPoints,
|
|
36
|
-
how_to_navigate:
|
|
58
|
+
how_to_navigate: howToNavigate, // Mechanismus (5D-System als Tool), nicht Identität
|
|
37
59
|
example_queries: [
|
|
38
60
|
'How does ingestion work?',
|
|
39
61
|
'What are the main components?',
|
|
@@ -80,7 +102,8 @@ class BootstrapApi {
|
|
|
80
102
|
pluginId
|
|
81
103
|
}
|
|
82
104
|
}
|
|
83
|
-
]
|
|
105
|
+
],
|
|
106
|
+
evidence
|
|
84
107
|
};
|
|
85
108
|
}
|
|
86
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-api.js","sourceRoot":"","sources":["../../src/api/bootstrap-api.ts"],"names":[],"mappings":";;;AACA,iEAA4D;
|
|
1
|
+
{"version":3,"file":"bootstrap-api.js","sourceRoot":"","sources":["../../src/api/bootstrap-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../src/api/context-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAQ7C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAO7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,KAAK,CAAC;QACZ,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACvC,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,GAAG,CAAC;KAChB,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,eAAe,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,IAAI,EAAE,KAAK,CAAC;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;KAC3B,CAAC,CAAC;IACH,YAAY,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAY;gBAEjB,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ;IAUzD;;;;;;OAMG;IACG,YAAY,CACd,UAAU,EAAE,eAAe,EAAE,EAC7B,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC;IAiD7B;;OAEG;YACW,gBAAgB;IA4B9B;;OAEG;YACW,kBAAkB;IAwEhC;;OAEG;YACW,eAAe;IAoC7B;;OAEG;YACW,eAAe;IA4C7B;;OAEG;YACW,cAAc;
|
|
1
|
+
{"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../src/api/context-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAQ7C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAO7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,KAAK,CAAC;QACZ,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACvC,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,GAAG,CAAC;KAChB,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,eAAe,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,IAAI,EAAE,KAAK,CAAC;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;KAC3B,CAAC,CAAC;IACH,YAAY,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAY;gBAEjB,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ;IAUzD;;;;;;OAMG;IACG,YAAY,CACd,UAAU,EAAE,eAAe,EAAE,EAC7B,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC;IAiD7B;;OAEG;YACW,gBAAgB;IA4B9B;;OAEG;YACW,kBAAkB;IAwEhC;;OAEG;YACW,eAAe;IAoC7B;;OAEG;YACW,eAAe;IA4C7B;;OAEG;YACW,cAAc;IA6B5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAgBlC"}
|
|
@@ -248,11 +248,27 @@ class ContextBuilder {
|
|
|
248
248
|
const db = await this.dbManager.getDatabase('V');
|
|
249
249
|
const navRepo = new navigation_repository_1.NavigationRepository(db);
|
|
250
250
|
const entryPoints = await navRepo.getEntryPoints('X', pluginId);
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
251
|
+
const result = [];
|
|
252
|
+
// ✅ Fix: Use existing this.moduleApi (already initialized in constructor)
|
|
253
|
+
for (const ep of entryPoints) {
|
|
254
|
+
try {
|
|
255
|
+
const module = await this.moduleApi.getModuleById(ep.entity_id, pluginId);
|
|
256
|
+
if (module) {
|
|
257
|
+
result.push({
|
|
258
|
+
dimension: ep.dimension,
|
|
259
|
+
entity_id: ep.entity_id,
|
|
260
|
+
external_id: module.file_path // ✅ Fix: Use actual file_path instead of ''
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
// Skip entry points without corresponding module
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
// Skip entry points that cause errors (e.g., module not found)
|
|
267
|
+
// This ensures we don't break the entire context building process
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return result;
|
|
256
272
|
}
|
|
257
273
|
/**
|
|
258
274
|
* Deduplicates ADRs by adr_number.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../src/api/context-builder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../src/api/context-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Evidence, EvidenceSource } from '../models/evidence';
|
|
2
|
+
/**
|
|
3
|
+
* Evidence grader for determining evidence grades and managing sources.
|
|
4
|
+
* Implements the No-Claim-Without-Source rule.
|
|
5
|
+
*/
|
|
6
|
+
export declare class EvidenceGrader {
|
|
7
|
+
/**
|
|
8
|
+
* Grades evidence as FACT.
|
|
9
|
+
* FACT: directly derivable from DB/ADR/Code-Symbol/Toolcall (with structured sources).
|
|
10
|
+
*
|
|
11
|
+
* @param sources Structured sources
|
|
12
|
+
* @param description Optional description
|
|
13
|
+
* @returns FACT evidence
|
|
14
|
+
*/
|
|
15
|
+
gradeAsFact(sources: EvidenceSource[], description?: string): Evidence;
|
|
16
|
+
/**
|
|
17
|
+
* Grades evidence as INFERRED.
|
|
18
|
+
* INFERRED: derived from multiple facts (all sources must be listed as structured sources).
|
|
19
|
+
*
|
|
20
|
+
* @param sources Structured sources (all facts used for inference)
|
|
21
|
+
* @param description Optional description
|
|
22
|
+
* @returns INFERRED evidence
|
|
23
|
+
*/
|
|
24
|
+
gradeAsInferred(sources: EvidenceSource[], description?: string): Evidence;
|
|
25
|
+
/**
|
|
26
|
+
* Grades evidence as HEURISTIC.
|
|
27
|
+
* HEURISTIC: best-practice without system evidence (must be explicitly marked).
|
|
28
|
+
*
|
|
29
|
+
* @param sources Optional structured sources (may be empty for pure heuristics)
|
|
30
|
+
* @param description Description of the heuristic
|
|
31
|
+
* @returns HEURISTIC evidence
|
|
32
|
+
*/
|
|
33
|
+
gradeAsHeuristic(sources?: EvidenceSource[], description?: string): Evidence;
|
|
34
|
+
/**
|
|
35
|
+
* Automatically grades evidence based on source count and type.
|
|
36
|
+
*
|
|
37
|
+
* Rules:
|
|
38
|
+
* - Single direct source (DB_QUERY, STATUS_CHECK, ADR, MODULE, SYMBOL) → FACT
|
|
39
|
+
* - Multiple sources → INFERRED
|
|
40
|
+
* - No sources → HEURISTIC (with warning)
|
|
41
|
+
*
|
|
42
|
+
* @param sources Structured sources
|
|
43
|
+
* @param description Optional description
|
|
44
|
+
* @returns Graded evidence
|
|
45
|
+
*/
|
|
46
|
+
autoGrade(sources: EvidenceSource[], description?: string): Evidence;
|
|
47
|
+
/**
|
|
48
|
+
* Validates evidence and throws if invalid.
|
|
49
|
+
*
|
|
50
|
+
* @param evidence Evidence to validate
|
|
51
|
+
* @throws Error if evidence is invalid
|
|
52
|
+
*/
|
|
53
|
+
validate(evidence: Evidence): void;
|
|
54
|
+
/**
|
|
55
|
+
* Checks if text claims "from documentation" without sources.
|
|
56
|
+
* This violates the No-Claim-Without-Source rule.
|
|
57
|
+
*
|
|
58
|
+
* @param text Text to check
|
|
59
|
+
* @param evidence Evidence attached to the text
|
|
60
|
+
* @returns true if violation detected
|
|
61
|
+
*/
|
|
62
|
+
checkNoClaimWithoutSource(text: string, evidence?: Evidence): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Ensures HEURISTIC evidence is explicitly marked.
|
|
65
|
+
*
|
|
66
|
+
* @param evidence Evidence to check
|
|
67
|
+
* @returns true if HEURISTIC is properly marked
|
|
68
|
+
*/
|
|
69
|
+
isHeuristicMarked(evidence: Evidence): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Grade code analysis evidence.
|
|
72
|
+
* DETERMINISTIC only when source code was retrieved and verified.
|
|
73
|
+
*
|
|
74
|
+
* @param args Analysis arguments
|
|
75
|
+
* @returns Graded evidence
|
|
76
|
+
*/
|
|
77
|
+
gradeCodeAnalysis(args: {
|
|
78
|
+
source_snippet_retrieved: boolean;
|
|
79
|
+
source_hash_verified: boolean;
|
|
80
|
+
analysis: string;
|
|
81
|
+
}): Evidence;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=evidence-grader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-grader.d.ts","sourceRoot":"","sources":["../../src/api/evidence-grader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAwG,MAAM,oBAAoB,CAAC;AAEpK;;;GAGG;AACH,qBAAa,cAAc;IACvB;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ;IAStE;;;;;;;OAOG;IACH,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ;IAS1E;;;;;;;OAOG;IACH,gBAAgB,CAAC,OAAO,GAAE,cAAc,EAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ;IAIhF;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ;IAiBpE;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOlC;;;;;;;OAOG;IACH,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO;IAyBrE;;;;;OAKG;IACH,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAQ9C;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,EAAE;QACpB,wBAAwB,EAAE,OAAO,CAAC;QAClC,oBAAoB,EAAE,OAAO,CAAC;QAC9B,QAAQ,EAAE,MAAM,CAAC;KACpB,GAAG,QAAQ;CAuBf"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EvidenceGrader = void 0;
|
|
4
|
+
const evidence_1 = require("../models/evidence");
|
|
5
|
+
/**
|
|
6
|
+
* Evidence grader for determining evidence grades and managing sources.
|
|
7
|
+
* Implements the No-Claim-Without-Source rule.
|
|
8
|
+
*/
|
|
9
|
+
class EvidenceGrader {
|
|
10
|
+
/**
|
|
11
|
+
* Grades evidence as FACT.
|
|
12
|
+
* FACT: directly derivable from DB/ADR/Code-Symbol/Toolcall (with structured sources).
|
|
13
|
+
*
|
|
14
|
+
* @param sources Structured sources
|
|
15
|
+
* @param description Optional description
|
|
16
|
+
* @returns FACT evidence
|
|
17
|
+
*/
|
|
18
|
+
gradeAsFact(sources, description) {
|
|
19
|
+
const evidence = (0, evidence_1.createFactEvidence)(sources, description);
|
|
20
|
+
const validation = (0, evidence_1.validateEvidence)(evidence);
|
|
21
|
+
if (!validation.valid) {
|
|
22
|
+
throw new Error(`Invalid FACT evidence: ${validation.error}`);
|
|
23
|
+
}
|
|
24
|
+
return evidence;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Grades evidence as INFERRED.
|
|
28
|
+
* INFERRED: derived from multiple facts (all sources must be listed as structured sources).
|
|
29
|
+
*
|
|
30
|
+
* @param sources Structured sources (all facts used for inference)
|
|
31
|
+
* @param description Optional description
|
|
32
|
+
* @returns INFERRED evidence
|
|
33
|
+
*/
|
|
34
|
+
gradeAsInferred(sources, description) {
|
|
35
|
+
const evidence = (0, evidence_1.createInferredEvidence)(sources, description);
|
|
36
|
+
const validation = (0, evidence_1.validateEvidence)(evidence);
|
|
37
|
+
if (!validation.valid) {
|
|
38
|
+
throw new Error(`Invalid INFERRED evidence: ${validation.error}`);
|
|
39
|
+
}
|
|
40
|
+
return evidence;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Grades evidence as HEURISTIC.
|
|
44
|
+
* HEURISTIC: best-practice without system evidence (must be explicitly marked).
|
|
45
|
+
*
|
|
46
|
+
* @param sources Optional structured sources (may be empty for pure heuristics)
|
|
47
|
+
* @param description Description of the heuristic
|
|
48
|
+
* @returns HEURISTIC evidence
|
|
49
|
+
*/
|
|
50
|
+
gradeAsHeuristic(sources = [], description) {
|
|
51
|
+
return (0, evidence_1.createHeuristicEvidence)(sources, description);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Automatically grades evidence based on source count and type.
|
|
55
|
+
*
|
|
56
|
+
* Rules:
|
|
57
|
+
* - Single direct source (DB_QUERY, STATUS_CHECK, ADR, MODULE, SYMBOL) → FACT
|
|
58
|
+
* - Multiple sources → INFERRED
|
|
59
|
+
* - No sources → HEURISTIC (with warning)
|
|
60
|
+
*
|
|
61
|
+
* @param sources Structured sources
|
|
62
|
+
* @param description Optional description
|
|
63
|
+
* @returns Graded evidence
|
|
64
|
+
*/
|
|
65
|
+
autoGrade(sources, description) {
|
|
66
|
+
if (sources.length === 0) {
|
|
67
|
+
return this.gradeAsHeuristic([], description || 'No sources provided - marked as HEURISTIC');
|
|
68
|
+
}
|
|
69
|
+
if (sources.length === 1) {
|
|
70
|
+
const source = sources[0];
|
|
71
|
+
// Direct sources are FACT
|
|
72
|
+
if (['DB_QUERY', 'STATUS_CHECK', 'ADR', 'MODULE', 'SYMBOL'].includes(source.type)) {
|
|
73
|
+
return this.gradeAsFact(sources, description);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Multiple sources → INFERRED
|
|
77
|
+
return this.gradeAsInferred(sources, description);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Validates evidence and throws if invalid.
|
|
81
|
+
*
|
|
82
|
+
* @param evidence Evidence to validate
|
|
83
|
+
* @throws Error if evidence is invalid
|
|
84
|
+
*/
|
|
85
|
+
validate(evidence) {
|
|
86
|
+
const validation = (0, evidence_1.validateEvidence)(evidence);
|
|
87
|
+
if (!validation.valid) {
|
|
88
|
+
throw new Error(`Invalid evidence: ${validation.error}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Checks if text claims "from documentation" without sources.
|
|
93
|
+
* This violates the No-Claim-Without-Source rule.
|
|
94
|
+
*
|
|
95
|
+
* @param text Text to check
|
|
96
|
+
* @param evidence Evidence attached to the text
|
|
97
|
+
* @returns true if violation detected
|
|
98
|
+
*/
|
|
99
|
+
checkNoClaimWithoutSource(text, evidence) {
|
|
100
|
+
// Check for common phrases that claim documentation without sources
|
|
101
|
+
const claimPhrases = [
|
|
102
|
+
'in den Dokumenten gefunden',
|
|
103
|
+
'aus der Dokumentation',
|
|
104
|
+
'in der Doku',
|
|
105
|
+
'found in documentation',
|
|
106
|
+
'from documentation',
|
|
107
|
+
'in the docs'
|
|
108
|
+
];
|
|
109
|
+
const hasClaim = claimPhrases.some(phrase => text.toLowerCase().includes(phrase.toLowerCase()));
|
|
110
|
+
if (hasClaim) {
|
|
111
|
+
// If text claims documentation but no evidence or no sources
|
|
112
|
+
if (!evidence || evidence.sources.length === 0) {
|
|
113
|
+
return true; // Violation
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return false; // No violation
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Ensures HEURISTIC evidence is explicitly marked.
|
|
120
|
+
*
|
|
121
|
+
* @param evidence Evidence to check
|
|
122
|
+
* @returns true if HEURISTIC is properly marked
|
|
123
|
+
*/
|
|
124
|
+
isHeuristicMarked(evidence) {
|
|
125
|
+
if (evidence.grade === 'HEURISTIC') {
|
|
126
|
+
// HEURISTIC should have description or be explicitly marked
|
|
127
|
+
return !!(evidence.description || evidence.sources.length === 0);
|
|
128
|
+
}
|
|
129
|
+
return true; // Not HEURISTIC, so marking is not required
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Grade code analysis evidence.
|
|
133
|
+
* DETERMINISTIC only when source code was retrieved and verified.
|
|
134
|
+
*
|
|
135
|
+
* @param args Analysis arguments
|
|
136
|
+
* @returns Graded evidence
|
|
137
|
+
*/
|
|
138
|
+
gradeCodeAnalysis(args) {
|
|
139
|
+
if (!args.source_snippet_retrieved) {
|
|
140
|
+
// Code not retrieved - INFERRED
|
|
141
|
+
return this.gradeAsInferred([
|
|
142
|
+
{ type: 'SYMBOL' }, // Signature analysis
|
|
143
|
+
{ type: 'DEPENDENCY' } // Dependency graph analysis
|
|
144
|
+
], args.analysis + '\n\n⚠️ WARNING: Analysis based on signatures only. ' +
|
|
145
|
+
'Source code not retrieved. Confidence: LOW.');
|
|
146
|
+
}
|
|
147
|
+
if (args.source_snippet_retrieved && !args.source_hash_verified) {
|
|
148
|
+
// Code retrieved but not verified - INFERRED
|
|
149
|
+
return this.gradeAsInferred([
|
|
150
|
+
{ type: 'STATUS_CHECK', metadata: { check: 'source_code_unverified' } }
|
|
151
|
+
], args.analysis + '\n\n⚠️ WARNING: Source code retrieved but hash not verified. ' +
|
|
152
|
+
'Code may have changed since scan. Confidence: MEDIUM.');
|
|
153
|
+
}
|
|
154
|
+
// Code retrieved and verified - FACT (DETERMINISTIC)
|
|
155
|
+
return this.gradeAsFact([
|
|
156
|
+
{ type: 'STATUS_CHECK', metadata: { check: 'source_code_verified' } }
|
|
157
|
+
], args.analysis + '\n\n✅ Analysis based on verified source code. Confidence: HIGH.');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.EvidenceGrader = EvidenceGrader;
|
|
161
|
+
//# sourceMappingURL=evidence-grader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-grader.js","sourceRoot":"","sources":["../../src/api/evidence-grader.ts"],"names":[],"mappings":"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"}
|