@mcp-graph-workflow/mcp-graph 5.7.0 → 5.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/code/code-types.d.ts +3 -3
- package/dist/core/context/rag-context.d.ts.map +1 -1
- package/dist/core/context/rag-context.js +9 -5
- package/dist/core/context/rag-context.js.map +1 -1
- package/dist/core/integrations/integration-orchestrator.d.ts.map +1 -1
- package/dist/core/integrations/integration-orchestrator.js +2 -0
- package/dist/core/integrations/integration-orchestrator.js.map +1 -1
- package/dist/core/rag/entity-extractor.d.ts +30 -0
- package/dist/core/rag/entity-extractor.d.ts.map +1 -0
- package/dist/core/rag/entity-extractor.js +224 -0
- package/dist/core/rag/entity-extractor.js.map +1 -0
- package/dist/core/rag/entity-index-hook.d.ts +25 -0
- package/dist/core/rag/entity-index-hook.d.ts.map +1 -0
- package/dist/core/rag/entity-index-hook.js +75 -0
- package/dist/core/rag/entity-index-hook.js.map +1 -0
- package/dist/core/rag/entity-indexer.d.ts +33 -0
- package/dist/core/rag/entity-indexer.d.ts.map +1 -0
- package/dist/core/rag/entity-indexer.js +91 -0
- package/dist/core/rag/entity-indexer.js.map +1 -0
- package/dist/core/rag/entity-store.d.ts +91 -0
- package/dist/core/rag/entity-store.d.ts.map +1 -0
- package/dist/core/rag/entity-store.js +395 -0
- package/dist/core/rag/entity-store.js.map +1 -0
- package/dist/core/rag/multi-strategy-retrieval.d.ts.map +1 -1
- package/dist/core/rag/multi-strategy-retrieval.js +49 -3
- package/dist/core/rag/multi-strategy-retrieval.js.map +1 -1
- package/dist/core/rag/node-indexer.d.ts +26 -0
- package/dist/core/rag/node-indexer.d.ts.map +1 -0
- package/dist/core/rag/node-indexer.js +108 -0
- package/dist/core/rag/node-indexer.js.map +1 -0
- package/dist/core/rag/query-understanding.d.ts +23 -0
- package/dist/core/rag/query-understanding.d.ts.map +1 -1
- package/dist/core/rag/query-understanding.js +85 -0
- package/dist/core/rag/query-understanding.js.map +1 -1
- package/dist/core/store/migrations.d.ts.map +1 -1
- package/dist/core/store/migrations.js +51 -0
- package/dist/core/store/migrations.js.map +1 -1
- package/dist/mcp/tools/clone-node.d.ts.map +1 -1
- package/dist/mcp/tools/clone-node.js +5 -0
- package/dist/mcp/tools/clone-node.js.map +1 -1
- package/dist/mcp/tools/import-graph.d.ts.map +1 -1
- package/dist/mcp/tools/import-graph.js +14 -0
- package/dist/mcp/tools/import-graph.js.map +1 -1
- package/dist/mcp/tools/import-prd.d.ts.map +1 -1
- package/dist/mcp/tools/import-prd.js +2 -0
- package/dist/mcp/tools/import-prd.js.map +1 -1
- package/dist/mcp/tools/journey.d.ts.map +1 -1
- package/dist/mcp/tools/journey.js +2 -0
- package/dist/mcp/tools/journey.js.map +1 -1
- package/dist/mcp/tools/manage-skill.d.ts.map +1 -1
- package/dist/mcp/tools/manage-skill.js +3 -0
- package/dist/mcp/tools/manage-skill.js.map +1 -1
- package/dist/mcp/tools/memory.d.ts.map +1 -1
- package/dist/mcp/tools/memory.js +2 -0
- package/dist/mcp/tools/memory.js.map +1 -1
- package/dist/mcp/tools/node.d.ts.map +1 -1
- package/dist/mcp/tools/node.js +4 -0
- package/dist/mcp/tools/node.js.map +1 -1
- package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
- package/dist/mcp/tools/plan-sprint.js +3 -1
- package/dist/mcp/tools/plan-sprint.js.map +1 -1
- package/dist/mcp/tools/rag-context.d.ts +2 -0
- package/dist/mcp/tools/rag-context.d.ts.map +1 -1
- package/dist/mcp/tools/rag-context.js +127 -9
- package/dist/mcp/tools/rag-context.js.map +1 -1
- package/dist/mcp/tools/reindex-knowledge.d.ts.map +1 -1
- package/dist/mcp/tools/reindex-knowledge.js +44 -1
- package/dist/mcp/tools/reindex-knowledge.js.map +1 -1
- package/dist/mcp/tools/siebel-import-docs.d.ts.map +1 -1
- package/dist/mcp/tools/siebel-import-docs.js +3 -0
- package/dist/mcp/tools/siebel-import-docs.js.map +1 -1
- package/dist/mcp/tools/siebel-import-sif.d.ts.map +1 -1
- package/dist/mcp/tools/siebel-import-sif.js +2 -0
- package/dist/mcp/tools/siebel-import-sif.js.map +1 -1
- package/dist/mcp/tools/sync-stack-docs.d.ts.map +1 -1
- package/dist/mcp/tools/sync-stack-docs.js +2 -0
- package/dist/mcp/tools/sync-stack-docs.js.map +1 -1
- package/dist/mcp/tools/update-status.d.ts.map +1 -1
- package/dist/mcp/tools/update-status.js +2 -0
- package/dist/mcp/tools/update-status.js.map +1 -1
- package/dist/mcp/tools/validate.d.ts.map +1 -1
- package/dist/mcp/tools/validate.js +3 -0
- package/dist/mcp/tools/validate.js.map +1 -1
- package/dist/schemas/entity.schema.d.ts +80 -0
- package/dist/schemas/entity.schema.d.ts.map +1 -0
- package/dist/schemas/entity.schema.js +56 -0
- package/dist/schemas/entity.schema.js.map +1 -0
- package/dist/schemas/knowledge.schema.d.ts +2 -0
- package/dist/schemas/knowledge.schema.d.ts.map +1 -1
- package/dist/schemas/knowledge.schema.js +1 -1
- package/dist/schemas/knowledge.schema.js.map +1 -1
- package/dist/schemas/siebel.schema.d.ts +5 -5
- package/package.json +2 -2
|
@@ -15,9 +15,9 @@ export declare const SymbolKindSchema: z.ZodEnum<{
|
|
|
15
15
|
export type SymbolKind = z.infer<typeof SymbolKindSchema>;
|
|
16
16
|
export declare const RelationTypeSchema: z.ZodEnum<{
|
|
17
17
|
implements: "implements";
|
|
18
|
+
extends: "extends";
|
|
18
19
|
calls: "calls";
|
|
19
20
|
imports: "imports";
|
|
20
|
-
extends: "extends";
|
|
21
21
|
belongs_to: "belongs_to";
|
|
22
22
|
}>;
|
|
23
23
|
export type CodeRelationType = z.infer<typeof RelationTypeSchema>;
|
|
@@ -57,9 +57,9 @@ export declare const CodeRelationSchema: z.ZodObject<{
|
|
|
57
57
|
toSymbol: z.ZodString;
|
|
58
58
|
type: z.ZodEnum<{
|
|
59
59
|
implements: "implements";
|
|
60
|
+
extends: "extends";
|
|
60
61
|
calls: "calls";
|
|
61
62
|
imports: "imports";
|
|
62
|
-
extends: "extends";
|
|
63
63
|
belongs_to: "belongs_to";
|
|
64
64
|
}>;
|
|
65
65
|
file: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -98,9 +98,9 @@ export declare const CodeGraphDataSchema: z.ZodObject<{
|
|
|
98
98
|
toSymbol: z.ZodString;
|
|
99
99
|
type: z.ZodEnum<{
|
|
100
100
|
implements: "implements";
|
|
101
|
+
extends: "extends";
|
|
101
102
|
calls: "calls";
|
|
102
103
|
imports: "imports";
|
|
103
|
-
extends: "extends";
|
|
104
104
|
belongs_to: "belongs_to";
|
|
105
105
|
}>;
|
|
106
106
|
file: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rag-context.d.ts","sourceRoot":"","sources":["../../../src/core/context/rag-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"rag-context.d.ts","sourceRoot":"","sources":["../../../src/core/context/rag-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAK1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,gBAAgB,EAAE,WAAW,EAAE,CAAC;IAChC,UAAU,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,MAA6B,EAC1C,KAAK,CAAC,EAAE,cAAc,GACrB,UAAU,CA4IZ"}
|
|
@@ -6,6 +6,7 @@ import { KnowledgeStore } from "../store/knowledge-store.js";
|
|
|
6
6
|
import { searchNodes } from "../search/fts-search.js";
|
|
7
7
|
import { buildTaskContext } from "./compact-context.js";
|
|
8
8
|
import { estimateTokens } from "./token-estimator.js";
|
|
9
|
+
import { understandQuery } from "../rag/query-understanding.js";
|
|
9
10
|
import { DEFAULT_TOKEN_BUDGET } from "../utils/constants.js";
|
|
10
11
|
import { logger } from "../utils/logger.js";
|
|
11
12
|
/**
|
|
@@ -17,9 +18,12 @@ import { logger } from "../utils/logger.js";
|
|
|
17
18
|
* 4. Manage token budget to stay within limits
|
|
18
19
|
*/
|
|
19
20
|
export function ragBuildContext(store, query, tokenBudget = DEFAULT_TOKEN_BUDGET, phase) {
|
|
20
|
-
|
|
21
|
+
// Query understanding: rewrite query for better FTS matching
|
|
22
|
+
const understanding = understandQuery(query);
|
|
23
|
+
const effectiveQuery = understanding.rewrittenQuery || query;
|
|
24
|
+
logger.info(`RAG context: query="${query}", effective="${effectiveQuery}", budget=${tokenBudget} tokens, phase=${phase ?? "none"}, intent=${understanding.intent}`);
|
|
21
25
|
// Stage 1: Search for relevant nodes with TF-IDF reranking + substring fallback
|
|
22
|
-
let searchResults = searchNodes(store,
|
|
26
|
+
let searchResults = searchNodes(store, effectiveQuery, { limit: 10, rerank: true });
|
|
23
27
|
// Fallback: if FTS returns nothing, try substring match
|
|
24
28
|
if (searchResults.length === 0) {
|
|
25
29
|
logger.debug("RAG FTS returned 0 results, falling back to substring search");
|
|
@@ -62,7 +66,7 @@ export function ragBuildContext(store, query, tokenBudget = DEFAULT_TOKEN_BUDGET
|
|
|
62
66
|
let kResults;
|
|
63
67
|
try {
|
|
64
68
|
if (phase) {
|
|
65
|
-
const phaseResults = knowledgeStore.searchWithPhaseBoost(
|
|
69
|
+
const phaseResults = knowledgeStore.searchWithPhaseBoost(effectiveQuery, phase, 10);
|
|
66
70
|
// Apply quality weighting on top of phase-boosted results
|
|
67
71
|
kResults = phaseResults.map((r) => ({
|
|
68
72
|
...r,
|
|
@@ -70,12 +74,12 @@ export function ragBuildContext(store, query, tokenBudget = DEFAULT_TOKEN_BUDGET
|
|
|
70
74
|
}));
|
|
71
75
|
}
|
|
72
76
|
else {
|
|
73
|
-
kResults = knowledgeStore.searchWithQuality(
|
|
77
|
+
kResults = knowledgeStore.searchWithQuality(effectiveQuery, 10);
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
80
|
catch {
|
|
77
81
|
// Fall back to basic search if quality columns not yet available
|
|
78
|
-
kResults = knowledgeStore.search(
|
|
82
|
+
kResults = knowledgeStore.search(effectiveQuery, 10);
|
|
79
83
|
}
|
|
80
84
|
knowledgeResults = kResults.slice(0, 5).map((r) => ({
|
|
81
85
|
id: r.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rag-context.js","sourceRoot":"","sources":["../../../src/core/context/rag-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAkC5C;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAkB,EAClB,KAAa,EACb,cAAsB,oBAAoB,EAC1C,KAAsB;IAEtB,MAAM,CAAC,IAAI,CAAC,uBAAuB,KAAK,aAAa,WAAW,kBAAkB,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"rag-context.js","sourceRoot":"","sources":["../../../src/core/context/rag-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-orchestrator.d.ts","sourceRoot":"","sources":["../../../src/core/integrations/integration-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"integration-orchestrator.d.ts","sourceRoot":"","sources":["../../../src/core/integrations/integration-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAS5D,MAAM,WAAW,mBAAmB;IAClC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAwC;gBAGtD,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,mBAAmB;IAU/B;;OAEG;IACH,QAAQ,IAAI,IAAI;IA2BhB;;OAEG;IACH,WAAW,IAAI,iBAAiB,EAAE;IAelC;;OAEG;YACW,iBAAiB;IAqC/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAM9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,YAAY;CAQrB"}
|
|
@@ -12,6 +12,7 @@ import { DocsCacheStore } from "../docs/docs-cache-store.js";
|
|
|
12
12
|
import { EmbeddingStore } from "../rag/embedding-store.js";
|
|
13
13
|
import { indexCachedDocs } from "../rag/docs-indexer.js";
|
|
14
14
|
import { indexAllEmbeddings } from "../rag/rag-pipeline.js";
|
|
15
|
+
import { indexEntitiesForSource } from "../rag/entity-index-hook.js";
|
|
15
16
|
import { logger } from "../utils/logger.js";
|
|
16
17
|
export class IntegrationOrchestrator {
|
|
17
18
|
store;
|
|
@@ -76,6 +77,7 @@ export class IntegrationOrchestrator {
|
|
|
76
77
|
const docsCacheStore = new DocsCacheStore(this.store.getDb());
|
|
77
78
|
// Re-index docs cache
|
|
78
79
|
const docsResult = indexCachedDocs(knowledgeStore, docsCacheStore);
|
|
80
|
+
indexEntitiesForSource(this.store.getDb(), "docs");
|
|
79
81
|
// Rebuild embeddings
|
|
80
82
|
const embeddingStore = new EmbeddingStore(this.store);
|
|
81
83
|
embeddingStore.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-orchestrator.js","sourceRoot":"","sources":["../../../src/core/integrations/integration-orchestrator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"integration-orchestrator.js","sourceRoot":"","sources":["../../../src/core/integrations/integration-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Extractor — heuristic-based extraction of entities and relations
|
|
3
|
+
* from text content. No LLM dependency, uses regex patterns and
|
|
4
|
+
* domain-specific dictionaries.
|
|
5
|
+
*
|
|
6
|
+
* Extends the basic extractEntities from enrichment-pipeline.ts with
|
|
7
|
+
* richer type classification and relation detection.
|
|
8
|
+
*/
|
|
9
|
+
import type { EntityType, EntityRelationType } from "../../schemas/entity.schema.js";
|
|
10
|
+
export interface ExtractedEntity {
|
|
11
|
+
name: string;
|
|
12
|
+
type: EntityType;
|
|
13
|
+
}
|
|
14
|
+
export interface ExtractedRelation {
|
|
15
|
+
fromName: string;
|
|
16
|
+
toName: string;
|
|
17
|
+
relationType: EntityRelationType;
|
|
18
|
+
weight: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Extract entities from text using heuristic patterns.
|
|
22
|
+
* Returns deduplicated list of entities with type classification.
|
|
23
|
+
*/
|
|
24
|
+
export declare function extractEntitiesFromText(text: string): ExtractedEntity[];
|
|
25
|
+
/**
|
|
26
|
+
* Extract relations between known entities from text.
|
|
27
|
+
* Uses pattern matching on sentences containing entity names.
|
|
28
|
+
*/
|
|
29
|
+
export declare function extractRelationsFromText(text: string, entities: ExtractedEntity[]): ExtractedRelation[];
|
|
30
|
+
//# sourceMappingURL=entity-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-extractor.d.ts","sourceRoot":"","sources":["../../../src/core/rag/entity-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIrF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,kBAAkB,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAkFD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CAgGvE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,EAAE,GAC1B,iBAAiB,EAAE,CA0FrB"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Extractor — heuristic-based extraction of entities and relations
|
|
3
|
+
* from text content. No LLM dependency, uses regex patterns and
|
|
4
|
+
* domain-specific dictionaries.
|
|
5
|
+
*
|
|
6
|
+
* Extends the basic extractEntities from enrichment-pipeline.ts with
|
|
7
|
+
* richer type classification and relation detection.
|
|
8
|
+
*/
|
|
9
|
+
import { logger } from "../utils/logger.js";
|
|
10
|
+
// ── Technology dictionary ────────────────────────────────
|
|
11
|
+
const TECHNOLOGY_TERMS = new Set([
|
|
12
|
+
"TypeScript", "JavaScript", "Python", "Rust", "Go", "Java", "C#", "Ruby",
|
|
13
|
+
"SQLite", "PostgreSQL", "MySQL", "MongoDB", "Redis", "DynamoDB",
|
|
14
|
+
"React", "Vue", "Angular", "Svelte", "Next.js", "Nuxt",
|
|
15
|
+
"Node.js", "Deno", "Bun",
|
|
16
|
+
"Express", "Fastify", "Koa", "Hono",
|
|
17
|
+
"Docker", "Kubernetes", "Terraform", "AWS", "Azure", "GCP",
|
|
18
|
+
"GraphQL", "REST", "gRPC", "WebSocket",
|
|
19
|
+
"Vitest", "Jest", "Mocha", "Playwright", "Cypress",
|
|
20
|
+
"Webpack", "Vite", "Rollup", "esbuild", "Turbopack",
|
|
21
|
+
"Git", "GitHub", "GitLab",
|
|
22
|
+
"Tailwind", "CSS", "HTML", "Sass", "SCSS",
|
|
23
|
+
"Zod", "Prisma", "Drizzle", "Knex",
|
|
24
|
+
"FTS5", "BM25", "TF-IDF",
|
|
25
|
+
"ESLint", "Prettier", "Biome",
|
|
26
|
+
"Commander.js", "MCP",
|
|
27
|
+
]);
|
|
28
|
+
// Case-insensitive lookup map
|
|
29
|
+
const TECH_LOWER_MAP = new Map();
|
|
30
|
+
for (const term of TECHNOLOGY_TERMS) {
|
|
31
|
+
TECH_LOWER_MAP.set(term.toLowerCase(), term);
|
|
32
|
+
}
|
|
33
|
+
// ── Entity extraction patterns ───────────────────────────
|
|
34
|
+
/** PascalCase: at least two words joined (e.g., GraphNode, SqliteStore) */
|
|
35
|
+
// eslint-disable-next-line security/detect-unsafe-regex -- bounded pattern, safe for identifiers
|
|
36
|
+
const PASCAL_CASE_RE = /\b([A-Z][a-z]+(?:[A-Z][a-z0-9]*)+)\b/g;
|
|
37
|
+
/** camelCase: starts lowercase, has at least one uppercase (e.g., findNextTask) */
|
|
38
|
+
const CAMEL_CASE_RE = /\b([a-z][a-zA-Z0-9]*[A-Z][a-zA-Z0-9]*)\b/g;
|
|
39
|
+
/** File paths: src/... or similar path patterns */
|
|
40
|
+
const FILE_PATH_RE = /\b((?:src|lib|dist|test|tests)\/[\w\-./]+\.(?:ts|js|tsx|jsx|json|md|sql))\b/g;
|
|
41
|
+
/** Scoped npm packages: @scope/name */
|
|
42
|
+
const SCOPED_PACKAGE_RE = /(@[\w-]+\/[\w-]+)/g;
|
|
43
|
+
/** Non-scoped packages after "import" or known patterns */
|
|
44
|
+
// eslint-disable-next-line security/detect-unsafe-regex -- bounded pattern for import statements
|
|
45
|
+
const PACKAGE_IMPORT_RE = /(?:from\s+["'])([a-z][\w-]*(?:\/[\w-]+)?)(?:["'])/g;
|
|
46
|
+
/** API endpoints: GET/POST/PUT/DELETE/PATCH /path */
|
|
47
|
+
const API_ENDPOINT_RE = /\b((?:GET|POST|PUT|DELETE|PATCH)\s+\/[\w/\-:{}]+)/g;
|
|
48
|
+
/** UPPER_SNAKE_CASE: config constants (at least 2 segments) */
|
|
49
|
+
// eslint-disable-next-line security/detect-unsafe-regex -- bounded quantifiers, safe for identifiers
|
|
50
|
+
const UPPER_SNAKE_RE = /\b([A-Z][A-Z0-9]*(?:_[A-Z0-9]+)+)\b/g;
|
|
51
|
+
/** Markdown headings: ## Title */
|
|
52
|
+
const HEADING_RE = /^#{1,3}\s+(.+)$/gm;
|
|
53
|
+
/** Backtick-quoted concepts: `something here` (2+ chars) */
|
|
54
|
+
const BACKTICK_RE = /`([^`]{2,50})`/g;
|
|
55
|
+
const RELATION_PATTERNS = [
|
|
56
|
+
{ pattern: /\buses\b|\butiliza\b|\busing\b/i, relationType: "uses", weight: 0.8 },
|
|
57
|
+
{ pattern: /\bimplements\b|\bimplementa\b|\bimplementing\b/i, relationType: "implements", weight: 0.9 },
|
|
58
|
+
{ pattern: /\bdepends\s+on\b|\bdepende\s+de\b/i, relationType: "depends_on", weight: 0.9 },
|
|
59
|
+
{ pattern: /\bextends\b|\bestende\b|\bextending\b/i, relationType: "extends", weight: 0.9 },
|
|
60
|
+
{ pattern: /\bcalls\b|\bchama\b|\bcalling\b/i, relationType: "calls", weight: 0.7 },
|
|
61
|
+
{ pattern: /\bis\s+part\s+of\b|\bfaz\s+parte\s+de\b|\bbelongs\s+to\b/i, relationType: "part_of", weight: 0.8 },
|
|
62
|
+
];
|
|
63
|
+
/** Import statement: import { X } from "Y" */
|
|
64
|
+
const IMPORT_RE = /import\s+\{([^}]+)\}\s+from\s+["']([^"']+)["']/g;
|
|
65
|
+
// ── Main extraction functions ────────────────────────────
|
|
66
|
+
/**
|
|
67
|
+
* Extract entities from text using heuristic patterns.
|
|
68
|
+
* Returns deduplicated list of entities with type classification.
|
|
69
|
+
*/
|
|
70
|
+
export function extractEntitiesFromText(text) {
|
|
71
|
+
const seen = new Map();
|
|
72
|
+
function add(name, type) {
|
|
73
|
+
const key = `${name}::${type}`;
|
|
74
|
+
if (!seen.has(key)) {
|
|
75
|
+
seen.set(key, { name, type });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// 1. Technology terms (check before PascalCase to get correct type)
|
|
79
|
+
// Strip trailing punctuation (.!?:) from each word before matching
|
|
80
|
+
const words = text.split(/[\s,;()[\]{}"'`]+/);
|
|
81
|
+
for (const rawWord of words) {
|
|
82
|
+
const word = rawWord.replace(/[.!?:]+$/, "");
|
|
83
|
+
const tech = TECH_LOWER_MAP.get(word.toLowerCase());
|
|
84
|
+
if (tech) {
|
|
85
|
+
add(tech, "technology");
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// 2. PascalCase → class (skip if already a technology)
|
|
89
|
+
PASCAL_CASE_RE.lastIndex = 0;
|
|
90
|
+
let match;
|
|
91
|
+
while ((match = PASCAL_CASE_RE.exec(text)) !== null) {
|
|
92
|
+
const name = match[1];
|
|
93
|
+
if (!TECH_LOWER_MAP.has(name.toLowerCase())) {
|
|
94
|
+
add(name, "class");
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// 3. camelCase → function
|
|
98
|
+
CAMEL_CASE_RE.lastIndex = 0;
|
|
99
|
+
while ((match = CAMEL_CASE_RE.exec(text)) !== null) {
|
|
100
|
+
add(match[1], "function");
|
|
101
|
+
}
|
|
102
|
+
// 4. File paths
|
|
103
|
+
FILE_PATH_RE.lastIndex = 0;
|
|
104
|
+
while ((match = FILE_PATH_RE.exec(text)) !== null) {
|
|
105
|
+
add(match[1], "file");
|
|
106
|
+
}
|
|
107
|
+
// 5. Scoped packages
|
|
108
|
+
SCOPED_PACKAGE_RE.lastIndex = 0;
|
|
109
|
+
while ((match = SCOPED_PACKAGE_RE.exec(text)) !== null) {
|
|
110
|
+
add(match[1], "package");
|
|
111
|
+
}
|
|
112
|
+
// 6. Package imports (non-scoped, from import statements)
|
|
113
|
+
PACKAGE_IMPORT_RE.lastIndex = 0;
|
|
114
|
+
while ((match = PACKAGE_IMPORT_RE.exec(text)) !== null) {
|
|
115
|
+
const pkg = match[1];
|
|
116
|
+
// Skip relative imports
|
|
117
|
+
if (!pkg.startsWith(".") && !pkg.startsWith("/")) {
|
|
118
|
+
add(pkg, "package");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// 7. API endpoints
|
|
122
|
+
API_ENDPOINT_RE.lastIndex = 0;
|
|
123
|
+
while ((match = API_ENDPOINT_RE.exec(text)) !== null) {
|
|
124
|
+
add(match[1], "api_endpoint");
|
|
125
|
+
}
|
|
126
|
+
// 8. UPPER_SNAKE_CASE config constants
|
|
127
|
+
UPPER_SNAKE_RE.lastIndex = 0;
|
|
128
|
+
while ((match = UPPER_SNAKE_RE.exec(text)) !== null) {
|
|
129
|
+
const name = match[1];
|
|
130
|
+
// Skip common false positives
|
|
131
|
+
if (name.length >= 4 && !["TODO", "NOTE", "FIXME", "HACK"].includes(name)) {
|
|
132
|
+
add(name, "config");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// 9. Markdown headings → domain terms
|
|
136
|
+
HEADING_RE.lastIndex = 0;
|
|
137
|
+
while ((match = HEADING_RE.exec(text)) !== null) {
|
|
138
|
+
const heading = match[1].trim();
|
|
139
|
+
if (heading.length >= 3 && heading.length <= 80) {
|
|
140
|
+
add(heading, "domain_term");
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// 10. Backtick-quoted concepts
|
|
144
|
+
BACKTICK_RE.lastIndex = 0;
|
|
145
|
+
while ((match = BACKTICK_RE.exec(text)) !== null) {
|
|
146
|
+
const concept = match[1].trim();
|
|
147
|
+
// Skip if it looks like code (has dots, slashes, parens)
|
|
148
|
+
if (concept.length >= 3 && !/[./()[\]{}]/.test(concept)) {
|
|
149
|
+
add(concept, "concept");
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
logger.debug("entity-extractor:entities", { count: seen.size });
|
|
153
|
+
return Array.from(seen.values());
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Extract relations between known entities from text.
|
|
157
|
+
* Uses pattern matching on sentences containing entity names.
|
|
158
|
+
*/
|
|
159
|
+
export function extractRelationsFromText(text, entities) {
|
|
160
|
+
const relations = [];
|
|
161
|
+
const seen = new Set();
|
|
162
|
+
function addRelation(from, to, type, weight) {
|
|
163
|
+
const key = `${from}→${to}→${type}`;
|
|
164
|
+
if (!seen.has(key) && from !== to) {
|
|
165
|
+
seen.add(key);
|
|
166
|
+
relations.push({ fromName: from, toName: to, relationType: type, weight });
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Split text into sentences for pattern matching
|
|
170
|
+
const sentences = text.split(/[.!?\n]+/).filter((s) => s.trim().length > 0);
|
|
171
|
+
for (const sentence of sentences) {
|
|
172
|
+
// Find which entities appear in this sentence
|
|
173
|
+
const presentEntities = entities.filter((e) => sentence.includes(e.name));
|
|
174
|
+
if (presentEntities.length < 2)
|
|
175
|
+
continue;
|
|
176
|
+
// Check relation patterns in sentence
|
|
177
|
+
for (const rp of RELATION_PATTERNS) {
|
|
178
|
+
if (rp.pattern.test(sentence)) {
|
|
179
|
+
// Find the entity pair: first entity before pattern, second after
|
|
180
|
+
for (let i = 0; i < presentEntities.length; i++) {
|
|
181
|
+
for (let j = 0; j < presentEntities.length; j++) {
|
|
182
|
+
if (i === j)
|
|
183
|
+
continue;
|
|
184
|
+
const fromIdx = sentence.indexOf(presentEntities[i].name);
|
|
185
|
+
const toIdx = sentence.indexOf(presentEntities[j].name);
|
|
186
|
+
if (fromIdx < toIdx) {
|
|
187
|
+
addRelation(presentEntities[i].name, presentEntities[j].name, rp.relationType, rp.weight);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Import statement relations
|
|
195
|
+
IMPORT_RE.lastIndex = 0;
|
|
196
|
+
let importMatch;
|
|
197
|
+
while ((importMatch = IMPORT_RE.exec(text)) !== null) {
|
|
198
|
+
const imports = importMatch[1].split(",").map((s) => s.trim());
|
|
199
|
+
const source = importMatch[2];
|
|
200
|
+
for (const imp of imports) {
|
|
201
|
+
const cleanName = imp.replace(/\s+as\s+\w+/, "").trim();
|
|
202
|
+
const matchingEntity = entities.find((e) => e.name === cleanName);
|
|
203
|
+
if (matchingEntity) {
|
|
204
|
+
// Create a "uses" relation from the imported symbol to its source
|
|
205
|
+
addRelation(cleanName, source, "uses", 0.7);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// Co-occurrence in same heading section → related_to (weak)
|
|
210
|
+
const sections = text.split(/^#{1,3}\s+/m);
|
|
211
|
+
for (const section of sections) {
|
|
212
|
+
const sectionEntities = entities.filter((e) => section.includes(e.name));
|
|
213
|
+
if (sectionEntities.length >= 2 && sectionEntities.length <= 6) {
|
|
214
|
+
for (let i = 0; i < sectionEntities.length; i++) {
|
|
215
|
+
for (let j = i + 1; j < sectionEntities.length; j++) {
|
|
216
|
+
addRelation(sectionEntities[i].name, sectionEntities[j].name, "related_to", 0.5);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
logger.debug("entity-extractor:relations", { count: relations.length });
|
|
222
|
+
return relations;
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=entity-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-extractor.js","sourceRoot":"","sources":["../../../src/core/rag/entity-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Index Hook — safe wrapper for entity indexing in MCP tools.
|
|
3
|
+
*
|
|
4
|
+
* Call after KnowledgeStore.insert() or insertChunks() to extract
|
|
5
|
+
* entities into the Knowledge Graph. Never throws — logs and returns
|
|
6
|
+
* silently on failure to avoid disrupting the main operation.
|
|
7
|
+
*/
|
|
8
|
+
import type Database from "better-sqlite3";
|
|
9
|
+
/**
|
|
10
|
+
* Index entities from a single knowledge document into the KG.
|
|
11
|
+
* Safe: never throws. Logs warning on failure.
|
|
12
|
+
*/
|
|
13
|
+
export declare function indexEntitiesForDoc(db: Database.Database, docId: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Index entities from multiple knowledge documents into the KG.
|
|
16
|
+
* Safe: never throws. Logs warning on individual failures.
|
|
17
|
+
*/
|
|
18
|
+
export declare function indexEntitiesForDocs(db: Database.Database, docIds: string[]): void;
|
|
19
|
+
/**
|
|
20
|
+
* Index entities from all knowledge documents matching a source type.
|
|
21
|
+
* Useful after bulk indexing operations.
|
|
22
|
+
* Safe: never throws.
|
|
23
|
+
*/
|
|
24
|
+
export declare function indexEntitiesForSource(db: Database.Database, sourceType: string): void;
|
|
25
|
+
//# sourceMappingURL=entity-index-hook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-index-hook.d.ts","sourceRoot":"","sources":["../../../src/core/rag/entity-index-hook.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAK3C;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQ9E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAelF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAqBtF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Index Hook — safe wrapper for entity indexing in MCP tools.
|
|
3
|
+
*
|
|
4
|
+
* Call after KnowledgeStore.insert() or insertChunks() to extract
|
|
5
|
+
* entities into the Knowledge Graph. Never throws — logs and returns
|
|
6
|
+
* silently on failure to avoid disrupting the main operation.
|
|
7
|
+
*/
|
|
8
|
+
import { indexDocument } from "./entity-indexer.js";
|
|
9
|
+
import { EntityStore } from "./entity-store.js";
|
|
10
|
+
import { logger } from "../utils/logger.js";
|
|
11
|
+
/**
|
|
12
|
+
* Index entities from a single knowledge document into the KG.
|
|
13
|
+
* Safe: never throws. Logs warning on failure.
|
|
14
|
+
*/
|
|
15
|
+
export function indexEntitiesForDoc(db, docId) {
|
|
16
|
+
try {
|
|
17
|
+
const store = new EntityStore(db);
|
|
18
|
+
if (!store.hasKgTables())
|
|
19
|
+
return;
|
|
20
|
+
indexDocument(db, docId);
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
logger.warn("entity-index-hook:doc-failed", { docId, error: String(err) });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Index entities from multiple knowledge documents into the KG.
|
|
28
|
+
* Safe: never throws. Logs warning on individual failures.
|
|
29
|
+
*/
|
|
30
|
+
export function indexEntitiesForDocs(db, docIds) {
|
|
31
|
+
try {
|
|
32
|
+
const store = new EntityStore(db);
|
|
33
|
+
if (!store.hasKgTables())
|
|
34
|
+
return;
|
|
35
|
+
for (const docId of docIds) {
|
|
36
|
+
try {
|
|
37
|
+
indexDocument(db, docId);
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
logger.warn("entity-index-hook:doc-failed", { docId, error: String(err) });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
logger.warn("entity-index-hook:batch-failed", { count: docIds.length, error: String(err) });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Index entities from all knowledge documents matching a source type.
|
|
50
|
+
* Useful after bulk indexing operations.
|
|
51
|
+
* Safe: never throws.
|
|
52
|
+
*/
|
|
53
|
+
export function indexEntitiesForSource(db, sourceType) {
|
|
54
|
+
try {
|
|
55
|
+
const store = new EntityStore(db);
|
|
56
|
+
if (!store.hasKgTables())
|
|
57
|
+
return;
|
|
58
|
+
const docs = db
|
|
59
|
+
.prepare("SELECT id FROM knowledge_documents WHERE source_type = ?")
|
|
60
|
+
.all(sourceType);
|
|
61
|
+
for (const doc of docs) {
|
|
62
|
+
try {
|
|
63
|
+
indexDocument(db, doc.id);
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
logger.warn("entity-index-hook:doc-failed", { docId: doc.id, error: String(err) });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
logger.debug("entity-index-hook:source-complete", { sourceType, count: docs.length });
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
logger.warn("entity-index-hook:source-failed", { sourceType, error: String(err) });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=entity-index-hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-index-hook.js","sourceRoot":"","sources":["../../../src/core/rag/entity-index-hook.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAqB,EAAE,KAAa;IACtE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,OAAO;QACjC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAqB,EAAE,MAAgB;IAC1E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,OAAO;QAEjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAqB,EAAE,UAAkB;IAC9E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,OAAO;QAEjC,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CAAC,0DAA0D,CAAC;aACnE,GAAG,CAAC,UAAU,CAA0B,CAAC;QAE5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Indexer — orchestrates entity extraction from knowledge documents
|
|
3
|
+
* and populates the EntityStore (Knowledge Graph).
|
|
4
|
+
*
|
|
5
|
+
* Processes knowledge documents to extract entities and relations,
|
|
6
|
+
* storing them in the KG tables for graph-based retrieval.
|
|
7
|
+
*/
|
|
8
|
+
import type Database from "better-sqlite3";
|
|
9
|
+
export interface IndexDocumentResult {
|
|
10
|
+
docId: string;
|
|
11
|
+
entitiesCreated: number;
|
|
12
|
+
relationsCreated: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ReindexResult {
|
|
15
|
+
documentsProcessed: number;
|
|
16
|
+
totalEntities: number;
|
|
17
|
+
totalRelations: number;
|
|
18
|
+
totalMentions: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Index a single knowledge document — extract entities and relations,
|
|
22
|
+
* store in the KG.
|
|
23
|
+
*/
|
|
24
|
+
export declare function indexDocument(db: Database.Database, docId: string): IndexDocumentResult;
|
|
25
|
+
/**
|
|
26
|
+
* Reindex all knowledge documents — clear KG and rebuild from scratch.
|
|
27
|
+
*/
|
|
28
|
+
export declare function reindexAll(db: Database.Database): ReindexResult;
|
|
29
|
+
/**
|
|
30
|
+
* Index a batch of documents by their IDs.
|
|
31
|
+
*/
|
|
32
|
+
export declare function indexBatch(db: Database.Database, docIds: string[]): IndexDocumentResult[];
|
|
33
|
+
//# sourceMappingURL=entity-indexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-indexer.d.ts","sourceRoot":"","sources":["../../../src/core/rag/entity-indexer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAO3C,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAwDvF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,aAAa,CA+B/D;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,EAAE,GACf,mBAAmB,EAAE,CAEvB"}
|