@grackle-ai/knowledge 0.60.0 → 0.61.1
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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/search.d.ts +43 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +144 -0
- package/dist/search.js.map +1 -0
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -23,4 +23,6 @@ export { createTranscriptChunker } from "./transcript-chunker.js";
|
|
|
23
23
|
export { createReferenceNode, createNativeNode, getNode, deleteNode, updateNode, recordToNode, } from "./node-store.js";
|
|
24
24
|
export type { CreateReferenceNodeInput, CreateNativeNodeInput, UpdateReferenceNodeInput, UpdateNativeNodeInput, UpdateNodeInput, NodeWithEdges, } from "./node-store.js";
|
|
25
25
|
export { createEdge, removeEdge } from "./edge-store.js";
|
|
26
|
+
export type { SearchOptions, SearchResult } from "./search.js";
|
|
27
|
+
export { knowledgeSearch } from "./search.js";
|
|
26
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxF,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,oCAAoC,EACpC,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxF,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,oCAAoC,EACpC,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,4 +17,5 @@ export { ingest } from "./ingest.js";
|
|
|
17
17
|
export { createTranscriptChunker } from "./transcript-chunker.js";
|
|
18
18
|
export { createReferenceNode, createNativeNode, getNode, deleteNode, updateNode, recordToNode, } from "./node-store.js";
|
|
19
19
|
export { createEdge, removeEdge } from "./edge-store.js";
|
|
20
|
+
export { knowledgeSearch } from "./search.js";
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExF,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,oCAAoC,EACpC,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,iBAAiB,CAAC;AASzB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExF,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,oCAAoC,EACpC,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,iBAAiB,CAAC;AASzB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/search.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector-based semantic search across the knowledge graph.
|
|
3
|
+
*
|
|
4
|
+
* Embeds a text query, runs k-NN vector search against Neo4j's vector index,
|
|
5
|
+
* and returns ranked results with similarity scores and immediate edges.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { Embedder } from "./embedder.js";
|
|
10
|
+
import type { KnowledgeNode, KnowledgeEdge, NodeKind } from "./types.js";
|
|
11
|
+
/** Options for knowledge graph search. */
|
|
12
|
+
export interface SearchOptions {
|
|
13
|
+
/** Max results to return (default 10). */
|
|
14
|
+
limit?: number;
|
|
15
|
+
/** Filter to specific node kinds (reference, native, or both). */
|
|
16
|
+
nodeKinds?: NodeKind[];
|
|
17
|
+
/** Minimum similarity score threshold (default 0). Passed directly to the Cypher WHERE clause. */
|
|
18
|
+
minScore?: number;
|
|
19
|
+
/** Filter to a specific workspace. */
|
|
20
|
+
workspaceId?: string;
|
|
21
|
+
}
|
|
22
|
+
/** A search result: a node with its similarity score and immediate edges. */
|
|
23
|
+
export interface SearchResult {
|
|
24
|
+
/** The matched node. */
|
|
25
|
+
node: KnowledgeNode;
|
|
26
|
+
/** Cosine similarity score (0-1). */
|
|
27
|
+
score: number;
|
|
28
|
+
/** Edges connected to this node. */
|
|
29
|
+
edges: KnowledgeEdge[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Search the knowledge graph by semantic similarity.
|
|
33
|
+
*
|
|
34
|
+
* Embeds the query text, runs k-NN vector search in Neo4j, and returns
|
|
35
|
+
* ranked results with similarity scores and immediate edges.
|
|
36
|
+
*
|
|
37
|
+
* @param query - The text to search for.
|
|
38
|
+
* @param embedder - Produces the query embedding vector.
|
|
39
|
+
* @param options - Optional search filters and limits.
|
|
40
|
+
* @returns Ranked search results, highest similarity first.
|
|
41
|
+
*/
|
|
42
|
+
export declare function knowledgeSearch(query: string, embedder: Embedder, options?: SearchOptions): Promise<SearchResult[]>;
|
|
43
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAY,MAAM,YAAY,CAAC;AAMnF,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,kGAAkG;IAClG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAqFD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC,CA8DzB"}
|
package/dist/search.js
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector-based semantic search across the knowledge graph.
|
|
3
|
+
*
|
|
4
|
+
* Embeds a text query, runs k-NN vector search against Neo4j's vector index,
|
|
5
|
+
* and returns ranked results with similarity scores and immediate edges.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import { getSession } from "./client.js";
|
|
10
|
+
import { logger } from "./logger.js";
|
|
11
|
+
import { NODE_LABEL, VECTOR_INDEX_NAME } from "./constants.js";
|
|
12
|
+
import { recordToNode } from "./node-store.js";
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Constants
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
/** Default number of results to return. */
|
|
17
|
+
const DEFAULT_LIMIT = 10;
|
|
18
|
+
/** Default minimum similarity score. */
|
|
19
|
+
const DEFAULT_MIN_SCORE = 0;
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// Cypher
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
/**
|
|
24
|
+
* Build the Cypher query for vector search with optional filters.
|
|
25
|
+
*
|
|
26
|
+
* Neo4j's `db.index.vector.queryNodes` does not support WHERE clauses
|
|
27
|
+
* directly, so we apply post-filters on the yielded results.
|
|
28
|
+
*/
|
|
29
|
+
function buildSearchCypher(options) {
|
|
30
|
+
const filters = ["score >= $minScore"];
|
|
31
|
+
if (options.nodeKinds && options.nodeKinds.length > 0) {
|
|
32
|
+
filters.push("node.kind IN $nodeKinds");
|
|
33
|
+
}
|
|
34
|
+
if (options.workspaceId !== undefined) {
|
|
35
|
+
filters.push("node.workspaceId = $workspaceId");
|
|
36
|
+
}
|
|
37
|
+
const whereClause = filters.length > 0
|
|
38
|
+
? `WHERE ${filters.join(" AND ")}`
|
|
39
|
+
: "";
|
|
40
|
+
return `
|
|
41
|
+
CALL db.index.vector.queryNodes($indexName, $candidateLimit, $queryVector)
|
|
42
|
+
YIELD node, score
|
|
43
|
+
${whereClause}
|
|
44
|
+
WITH node, score
|
|
45
|
+
ORDER BY score DESC
|
|
46
|
+
LIMIT $limit
|
|
47
|
+
OPTIONAL MATCH (node)-[r]-(m:${NODE_LABEL})
|
|
48
|
+
RETURN node, score,
|
|
49
|
+
collect(DISTINCT {
|
|
50
|
+
fromId: CASE WHEN startNode(r) = node THEN node.id ELSE m.id END,
|
|
51
|
+
toId: CASE WHEN endNode(r) = node THEN node.id ELSE m.id END,
|
|
52
|
+
type: type(r),
|
|
53
|
+
metadata: r.metadata,
|
|
54
|
+
createdAt: r.createdAt
|
|
55
|
+
}) AS edges`;
|
|
56
|
+
}
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Helpers
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
/** Convert a raw edge record from Cypher collect() to a KnowledgeEdge. */
|
|
61
|
+
function rawToEdge(raw) {
|
|
62
|
+
let metadata;
|
|
63
|
+
if (raw.metadata !== undefined && raw.metadata !== null) {
|
|
64
|
+
try {
|
|
65
|
+
metadata = JSON.parse(raw.metadata);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
metadata = undefined;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
fromId: raw.fromId,
|
|
73
|
+
toId: raw.toId,
|
|
74
|
+
type: raw.type,
|
|
75
|
+
metadata,
|
|
76
|
+
createdAt: raw.createdAt,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// ---------------------------------------------------------------------------
|
|
80
|
+
// Public API
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
/**
|
|
83
|
+
* Search the knowledge graph by semantic similarity.
|
|
84
|
+
*
|
|
85
|
+
* Embeds the query text, runs k-NN vector search in Neo4j, and returns
|
|
86
|
+
* ranked results with similarity scores and immediate edges.
|
|
87
|
+
*
|
|
88
|
+
* @param query - The text to search for.
|
|
89
|
+
* @param embedder - Produces the query embedding vector.
|
|
90
|
+
* @param options - Optional search filters and limits.
|
|
91
|
+
* @returns Ranked search results, highest similarity first.
|
|
92
|
+
*/
|
|
93
|
+
export async function knowledgeSearch(query, embedder, options) {
|
|
94
|
+
const limit = options?.limit ?? DEFAULT_LIMIT;
|
|
95
|
+
const minScore = options?.minScore ?? DEFAULT_MIN_SCORE;
|
|
96
|
+
// Embed the query
|
|
97
|
+
const { vector: queryVector } = await embedder.embed(query);
|
|
98
|
+
// Over-fetch when filtering so we still get enough results after post-filter
|
|
99
|
+
const hasFilters = !!(options?.nodeKinds?.length || options?.workspaceId !== undefined);
|
|
100
|
+
const candidateLimit = hasFilters ? limit * 3 : limit;
|
|
101
|
+
const cypher = buildSearchCypher({
|
|
102
|
+
nodeKinds: options?.nodeKinds,
|
|
103
|
+
workspaceId: options?.workspaceId,
|
|
104
|
+
});
|
|
105
|
+
const params = {
|
|
106
|
+
indexName: VECTOR_INDEX_NAME,
|
|
107
|
+
queryVector,
|
|
108
|
+
limit,
|
|
109
|
+
candidateLimit,
|
|
110
|
+
minScore,
|
|
111
|
+
...(options?.nodeKinds ? { nodeKinds: options.nodeKinds } : {}),
|
|
112
|
+
...(options?.workspaceId !== undefined ? { workspaceId: options.workspaceId } : {}),
|
|
113
|
+
};
|
|
114
|
+
const session = getSession();
|
|
115
|
+
try {
|
|
116
|
+
const result = await session.run(cypher, params);
|
|
117
|
+
const searchResults = result.records.map((record) => {
|
|
118
|
+
const neo4jNode = record.get("node");
|
|
119
|
+
const nodeProps = neo4jNode.properties;
|
|
120
|
+
const score = record.get("score");
|
|
121
|
+
const rawEdges = record.get("edges");
|
|
122
|
+
// Filter out null edges (from OPTIONAL MATCH with no relationships)
|
|
123
|
+
const edges = rawEdges
|
|
124
|
+
.filter((e) => e.fromId !== null && e.toId !== null)
|
|
125
|
+
.map(rawToEdge);
|
|
126
|
+
return {
|
|
127
|
+
node: recordToNode(nodeProps),
|
|
128
|
+
score,
|
|
129
|
+
edges,
|
|
130
|
+
};
|
|
131
|
+
});
|
|
132
|
+
logger.debug({ query: query.substring(0, 50), results: searchResults.length, limit }, "Knowledge search completed");
|
|
133
|
+
return searchResults;
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
try {
|
|
137
|
+
await session.close();
|
|
138
|
+
}
|
|
139
|
+
catch (closeError) {
|
|
140
|
+
logger.warn({ err: closeError }, "Failed to close session after knowledgeSearch");
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grackle-ai/knowledge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.1",
|
|
4
4
|
"description": "Knowledge graph subsystem for Grackle (Neo4j + vector search)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"@huggingface/transformers": "^3.4.0",
|
|
28
28
|
"neo4j-driver": "^6.0.1",
|
|
29
29
|
"pino": "^10.3.1",
|
|
30
|
-
"@grackle-ai/common": "0.
|
|
30
|
+
"@grackle-ai/common": "0.61.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@rushstack/heft": "1.2.4",
|