@cogitator-ai/neuro-symbolic 9.0.0 → 9.1.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/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export { NeuroSymbolic, createNeuroSymbolic, type NeuroSymbolicOptions } from './orchestrator';
2
+ export { createNeuroSymbolicTools, createLogicTools, createConstraintTools, createPlanningTools, createGraphTools, type NeuroSymbolicTools, type NeuroSymbolicToolsOptions, } from './tools';
3
+ export { MemoryGraphAdapter, createMemoryGraphAdapter, } from './knowledge-graph/adapters/memory-adapter';
2
4
  export * from './logic';
3
5
  export { executeQuery, GraphQueryBuilder, variable as graphVariable, parseQueryString, formatQueryResult, analyzeNLQuery, buildQueryFromAnalysis, executeNLQuery, createNLToGraphQueryPrompt, parseNLQueryResponse, suggestQuestions, generateClarifications, ReasoningEngine, createReasoningEngine, findPath, multiHopQuery, inferTransitiveRelations, inferInverseRelations, inferComposedRelations, runFullInference, createGraphContextPrompt, createQueryExplanationPrompt, createPathExplanationPrompt, createEntityExtractionPrompt, createReasoningExplanationPrompt, createGraphSummaryPrompt, parseEntityExtractionResponse, formatNodeForPrompt, formatEdgeForPrompt, formatPathForPrompt, type QueryExecutionContext, type ParsedPattern, type NLQueryContext, type NLQueryAnalysis, type NLQueryPromptContext, type QueryClarification, type ReasoningConfig, type ReasoningContext, type ReasoningResult, type ReasoningStep, type CompositionRule, type GraphContextForPrompt, type QueryToNLContext, type PathExplanationContext, type EntityExtractionContext, type ReasoningExplanationContext, type GraphSummaryContext, } from './knowledge-graph';
4
6
  export { Expr, ConstraintBuilder, variable as constraintVariable, constant, and, or, not, implies, iff, ite, sum, product, allDifferent, atMost, atLeast, exactly, expressionToString, constraintToString, problemToString, SimpleSATSolver, createSimpleSATSolver, solveSAT, Z3WASMSolver, createZ3Solver, solveWithZ3, isZ3Available, createNLToConstraintsPrompt, createConstraintExplanationPrompt, createUnsatAnalysisPrompt, createConstraintSuggestionPrompt, parseNLConstraintsResponse, formatSolverResultForLLM, formatProblemSummary, solve, type SimpleSATConfig, type Z3SolverConfig, type NLToConstraintsContext, type ConstraintExplanationContext, type UnsatAnalysisContext, type ConstraintSuggestionContext, type ParseNLConstraintsResult, } from './constraints';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE/F,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,QAAQ,IAAI,aAAa,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,EAChC,wBAAwB,EACxB,6BAA6B,EAC7B,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,IAAI,EACJ,iBAAiB,EACjB,QAAQ,IAAI,kBAAkB,EAC9B,QAAQ,EACR,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,EACH,OAAO,EACP,YAAY,EACZ,MAAM,EACN,OAAO,EACP,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,2BAA2B,EAC3B,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,EAChC,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,GAC9B,MAAM,eAAe,CAAC;AAEvB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE/F,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,2CAA2C,CAAC;AAEnD,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,QAAQ,IAAI,aAAa,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,EAChC,wBAAwB,EACxB,6BAA6B,EAC7B,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,IAAI,EACJ,iBAAiB,EACjB,QAAQ,IAAI,kBAAkB,EAC9B,QAAQ,EACR,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,EACH,OAAO,EACP,YAAY,EACZ,MAAM,EACN,OAAO,EACP,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,2BAA2B,EAC3B,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,EAChC,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,GAC9B,MAAM,eAAe,CAAC;AAEvB,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  export { NeuroSymbolic, createNeuroSymbolic } from './orchestrator';
2
+ export { createNeuroSymbolicTools, createLogicTools, createConstraintTools, createPlanningTools, createGraphTools, } from './tools';
3
+ export { MemoryGraphAdapter, createMemoryGraphAdapter, } from './knowledge-graph/adapters/memory-adapter';
2
4
  export * from './logic';
3
5
  export { executeQuery, GraphQueryBuilder, variable as graphVariable, parseQueryString, formatQueryResult, analyzeNLQuery, buildQueryFromAnalysis, executeNLQuery, createNLToGraphQueryPrompt, parseNLQueryResponse, suggestQuestions, generateClarifications, ReasoningEngine, createReasoningEngine, findPath, multiHopQuery, inferTransitiveRelations, inferInverseRelations, inferComposedRelations, runFullInference, createGraphContextPrompt, createQueryExplanationPrompt, createPathExplanationPrompt, createEntityExtractionPrompt, createReasoningExplanationPrompt, createGraphSummaryPrompt, parseEntityExtractionResponse, formatNodeForPrompt, formatEdgeForPrompt, formatPathForPrompt, } from './knowledge-graph';
4
6
  export { Expr, ConstraintBuilder, variable as constraintVariable, constant, and, or, not, implies, iff, ite, sum, product, allDifferent, atMost, atLeast, exactly, expressionToString, constraintToString, problemToString, SimpleSATSolver, createSimpleSATSolver, solveSAT, Z3WASMSolver, createZ3Solver, solveWithZ3, isZ3Available, createNLToConstraintsPrompt, createConstraintExplanationPrompt, createUnsatAnalysisPrompt, createConstraintSuggestionPrompt, parseNLConstraintsResponse, formatSolverResultForLLM, formatProblemSummary, solve, } from './constraints';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAA6B,MAAM,gBAAgB,CAAC;AAE/F,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,QAAQ,IAAI,aAAa,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,EAChC,wBAAwB,EACxB,6BAA6B,EAC7B,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GAkBpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,IAAI,EACJ,iBAAiB,EACjB,QAAQ,IAAI,kBAAkB,EAC9B,QAAQ,EACR,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,EACH,OAAO,EACP,YAAY,EACZ,MAAM,EACN,OAAO,EACP,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,2BAA2B,EAC3B,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,EAChC,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,GAQN,MAAM,eAAe,CAAC;AAEvB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAA6B,MAAM,gBAAgB,CAAC;AAE/F,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GAGjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,2CAA2C,CAAC;AAEnD,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,QAAQ,IAAI,aAAa,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,EAChC,wBAAwB,EACxB,6BAA6B,EAC7B,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GAkBpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,IAAI,EACJ,iBAAiB,EACjB,QAAQ,IAAI,kBAAkB,EAC9B,QAAQ,EACR,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,EACH,OAAO,EACP,YAAY,EACZ,MAAM,EACN,OAAO,EACP,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,2BAA2B,EAC3B,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,EAChC,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,GAQN,MAAM,eAAe,CAAC;AAEvB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { GraphAdapter, GraphNode, GraphEdge, NodeQuery, EdgeQuery, TraversalOptions, TraversalResult, GraphPath, GraphSemanticSearchOptions, GraphStats, TraversalDirection, MemoryResult } from '@cogitator-ai/types';
2
+ export declare class MemoryGraphAdapter implements GraphAdapter {
3
+ private nodes;
4
+ private edges;
5
+ private nodesByAgent;
6
+ private edgesBySource;
7
+ private edgesByTarget;
8
+ addNode(node: Omit<GraphNode, 'id' | 'createdAt' | 'updatedAt' | 'lastAccessedAt' | 'accessCount'>): Promise<MemoryResult<GraphNode>>;
9
+ getNode(nodeId: string): Promise<MemoryResult<GraphNode | null>>;
10
+ getNodeByName(agentId: string, name: string): Promise<MemoryResult<GraphNode | null>>;
11
+ updateNode(nodeId: string, updates: Partial<Pick<GraphNode, 'name' | 'aliases' | 'description' | 'properties' | 'confidence' | 'metadata' | 'embedding'>>): Promise<MemoryResult<GraphNode>>;
12
+ deleteNode(nodeId: string): Promise<MemoryResult<void>>;
13
+ queryNodes(query: NodeQuery): Promise<MemoryResult<GraphNode[]>>;
14
+ searchNodesSemantic(options: GraphSemanticSearchOptions): Promise<MemoryResult<(GraphNode & {
15
+ score: number;
16
+ })[]>>;
17
+ addEdge(edge: Omit<GraphEdge, 'id' | 'createdAt' | 'updatedAt'>): Promise<MemoryResult<GraphEdge>>;
18
+ getEdge(edgeId: string): Promise<MemoryResult<GraphEdge | null>>;
19
+ getEdgesBetween(sourceNodeId: string, targetNodeId: string): Promise<MemoryResult<GraphEdge[]>>;
20
+ updateEdge(edgeId: string, updates: Partial<Pick<GraphEdge, 'weight' | 'label' | 'properties' | 'confidence' | 'validFrom' | 'validUntil' | 'metadata'>>): Promise<MemoryResult<GraphEdge>>;
21
+ deleteEdge(edgeId: string): Promise<MemoryResult<void>>;
22
+ queryEdges(query: EdgeQuery): Promise<MemoryResult<GraphEdge[]>>;
23
+ traverse(options: TraversalOptions): Promise<MemoryResult<TraversalResult>>;
24
+ findShortestPath(_agentId: string, startNodeId: string, endNodeId: string, maxDepth?: number): Promise<MemoryResult<GraphPath | null>>;
25
+ getNeighbors(nodeId: string, direction?: TraversalDirection): Promise<MemoryResult<{
26
+ node: GraphNode;
27
+ edge: GraphEdge;
28
+ }[]>>;
29
+ mergeNodes(targetNodeId: string, sourceNodeIds: string[]): Promise<MemoryResult<GraphNode>>;
30
+ clearGraph(agentId: string): Promise<MemoryResult<void>>;
31
+ getGraphStats(agentId: string): Promise<MemoryResult<GraphStats>>;
32
+ }
33
+ export declare function createMemoryGraphAdapter(): MemoryGraphAdapter;
34
+ //# sourceMappingURL=memory-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-adapter.d.ts","sourceRoot":"","sources":["../../../src/knowledge-graph/adapters/memory-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,468 @@
1
+ import { nanoid } from 'nanoid';
2
+ export class MemoryGraphAdapter {
3
+ nodes = new Map();
4
+ edges = new Map();
5
+ nodesByAgent = new Map();
6
+ edgesBySource = new Map();
7
+ edgesByTarget = new Map();
8
+ async addNode(node) {
9
+ const id = nanoid();
10
+ const now = new Date();
11
+ const newNode = {
12
+ ...node,
13
+ id,
14
+ createdAt: now,
15
+ updatedAt: now,
16
+ lastAccessedAt: now,
17
+ accessCount: 0,
18
+ };
19
+ this.nodes.set(id, newNode);
20
+ if (!this.nodesByAgent.has(node.agentId)) {
21
+ this.nodesByAgent.set(node.agentId, new Set());
22
+ }
23
+ this.nodesByAgent.get(node.agentId).add(id);
24
+ return { success: true, data: newNode };
25
+ }
26
+ async getNode(nodeId) {
27
+ const node = this.nodes.get(nodeId);
28
+ if (node) {
29
+ node.lastAccessedAt = new Date();
30
+ node.accessCount++;
31
+ }
32
+ return { success: true, data: node ?? null };
33
+ }
34
+ async getNodeByName(agentId, name) {
35
+ const agentNodes = this.nodesByAgent.get(agentId);
36
+ if (!agentNodes) {
37
+ return { success: true, data: null };
38
+ }
39
+ for (const nodeId of agentNodes) {
40
+ const node = this.nodes.get(nodeId);
41
+ if (node && (node.name === name || node.aliases.includes(name))) {
42
+ node.lastAccessedAt = new Date();
43
+ node.accessCount++;
44
+ return { success: true, data: node };
45
+ }
46
+ }
47
+ return { success: true, data: null };
48
+ }
49
+ async updateNode(nodeId, updates) {
50
+ const node = this.nodes.get(nodeId);
51
+ if (!node) {
52
+ return { success: false, error: `Node ${nodeId} not found` };
53
+ }
54
+ const updatedNode = {
55
+ ...node,
56
+ ...updates,
57
+ updatedAt: new Date(),
58
+ };
59
+ this.nodes.set(nodeId, updatedNode);
60
+ return { success: true, data: updatedNode };
61
+ }
62
+ async deleteNode(nodeId) {
63
+ const node = this.nodes.get(nodeId);
64
+ if (!node) {
65
+ return { success: false, error: `Node ${nodeId} not found` };
66
+ }
67
+ const sourceEdges = this.edgesBySource.get(nodeId) ?? new Set();
68
+ const targetEdges = this.edgesByTarget.get(nodeId) ?? new Set();
69
+ for (const edgeId of [...sourceEdges, ...targetEdges]) {
70
+ await this.deleteEdge(edgeId);
71
+ }
72
+ this.nodes.delete(nodeId);
73
+ this.nodesByAgent.get(node.agentId)?.delete(nodeId);
74
+ return { success: true, data: undefined };
75
+ }
76
+ async queryNodes(query) {
77
+ const results = [];
78
+ const agentNodes = this.nodesByAgent.get(query.agentId);
79
+ if (!agentNodes) {
80
+ return { success: true, data: [] };
81
+ }
82
+ for (const nodeId of agentNodes) {
83
+ const node = this.nodes.get(nodeId);
84
+ if (!node)
85
+ continue;
86
+ if (query.types && !query.types.includes(node.type))
87
+ continue;
88
+ if (query.minConfidence && node.confidence < query.minConfidence)
89
+ continue;
90
+ if (query.namePattern) {
91
+ const pattern = new RegExp(query.namePattern, 'i');
92
+ if (!pattern.test(node.name) && !node.aliases.some((a) => pattern.test(a))) {
93
+ continue;
94
+ }
95
+ }
96
+ const resultNode = query.includeEmbedding ? node : { ...node, embedding: undefined };
97
+ results.push(resultNode);
98
+ if (query.limit && results.length >= query.limit)
99
+ break;
100
+ }
101
+ return { success: true, data: results };
102
+ }
103
+ async searchNodesSemantic(options) {
104
+ if (!options.vector) {
105
+ return { success: true, data: [] };
106
+ }
107
+ const nodesResult = await this.queryNodes({
108
+ agentId: options.agentId,
109
+ types: options.entityTypes,
110
+ includeEmbedding: true,
111
+ });
112
+ if (!nodesResult.success) {
113
+ return { success: false, error: nodesResult.error };
114
+ }
115
+ const scored = nodesResult.data
116
+ .filter((n) => n.embedding && n.embedding.length === options.vector.length)
117
+ .map((node) => ({
118
+ ...node,
119
+ score: cosineSimilarity(node.embedding, options.vector),
120
+ }))
121
+ .filter((n) => !options.threshold || n.score >= options.threshold)
122
+ .sort((a, b) => b.score - a.score)
123
+ .slice(0, options.limit ?? 10);
124
+ return { success: true, data: scored };
125
+ }
126
+ async addEdge(edge) {
127
+ const id = nanoid();
128
+ const now = new Date();
129
+ const newEdge = {
130
+ ...edge,
131
+ id,
132
+ createdAt: now,
133
+ updatedAt: now,
134
+ };
135
+ this.edges.set(id, newEdge);
136
+ if (!this.edgesBySource.has(edge.sourceNodeId)) {
137
+ this.edgesBySource.set(edge.sourceNodeId, new Set());
138
+ }
139
+ this.edgesBySource.get(edge.sourceNodeId).add(id);
140
+ if (!this.edgesByTarget.has(edge.targetNodeId)) {
141
+ this.edgesByTarget.set(edge.targetNodeId, new Set());
142
+ }
143
+ this.edgesByTarget.get(edge.targetNodeId).add(id);
144
+ return { success: true, data: newEdge };
145
+ }
146
+ async getEdge(edgeId) {
147
+ return { success: true, data: this.edges.get(edgeId) ?? null };
148
+ }
149
+ async getEdgesBetween(sourceNodeId, targetNodeId) {
150
+ const sourceEdges = this.edgesBySource.get(sourceNodeId) ?? new Set();
151
+ const results = [];
152
+ for (const edgeId of sourceEdges) {
153
+ const edge = this.edges.get(edgeId);
154
+ if (edge && edge.targetNodeId === targetNodeId) {
155
+ results.push(edge);
156
+ }
157
+ }
158
+ return { success: true, data: results };
159
+ }
160
+ async updateEdge(edgeId, updates) {
161
+ const edge = this.edges.get(edgeId);
162
+ if (!edge) {
163
+ return { success: false, error: `Edge ${edgeId} not found` };
164
+ }
165
+ const updatedEdge = {
166
+ ...edge,
167
+ ...updates,
168
+ updatedAt: new Date(),
169
+ };
170
+ this.edges.set(edgeId, updatedEdge);
171
+ return { success: true, data: updatedEdge };
172
+ }
173
+ async deleteEdge(edgeId) {
174
+ const edge = this.edges.get(edgeId);
175
+ if (!edge) {
176
+ return { success: false, error: `Edge ${edgeId} not found` };
177
+ }
178
+ this.edges.delete(edgeId);
179
+ this.edgesBySource.get(edge.sourceNodeId)?.delete(edgeId);
180
+ this.edgesByTarget.get(edge.targetNodeId)?.delete(edgeId);
181
+ return { success: true, data: undefined };
182
+ }
183
+ async queryEdges(query) {
184
+ const results = [];
185
+ for (const edge of this.edges.values()) {
186
+ if (edge.agentId !== query.agentId)
187
+ continue;
188
+ if (query.sourceNodeId && edge.sourceNodeId !== query.sourceNodeId)
189
+ continue;
190
+ if (query.targetNodeId && edge.targetNodeId !== query.targetNodeId)
191
+ continue;
192
+ if (query.types && !query.types.includes(edge.type))
193
+ continue;
194
+ if (query.minWeight && edge.weight < query.minWeight)
195
+ continue;
196
+ if (query.minConfidence && edge.confidence < query.minConfidence)
197
+ continue;
198
+ if (query.bidirectionalOnly && !edge.bidirectional)
199
+ continue;
200
+ results.push(edge);
201
+ if (query.limit && results.length >= query.limit)
202
+ break;
203
+ }
204
+ return { success: true, data: results };
205
+ }
206
+ async traverse(options) {
207
+ const visitedNodes = new Map();
208
+ const visitedEdges = new Map();
209
+ const paths = [];
210
+ const startNodeResult = await this.getNode(options.startNodeId);
211
+ if (!startNodeResult.success || !startNodeResult.data) {
212
+ return { success: false, error: 'Start node not found' };
213
+ }
214
+ const queue = [
215
+ {
216
+ nodeId: options.startNodeId,
217
+ path: {
218
+ nodes: [startNodeResult.data],
219
+ edges: [],
220
+ totalWeight: 0,
221
+ length: 0,
222
+ },
223
+ depth: 0,
224
+ },
225
+ ];
226
+ while (queue.length > 0) {
227
+ const current = queue.shift();
228
+ if (current.depth >= options.maxDepth) {
229
+ paths.push(current.path);
230
+ continue;
231
+ }
232
+ const neighbors = await this.getNeighbors(current.nodeId, options.direction);
233
+ if (!neighbors.success)
234
+ continue;
235
+ let hasChildren = false;
236
+ for (const { node, edge } of neighbors.data) {
237
+ if (visitedNodes.has(node.id))
238
+ continue;
239
+ if (options.edgeTypes && !options.edgeTypes.includes(edge.type))
240
+ continue;
241
+ if (options.minEdgeWeight && edge.weight < options.minEdgeWeight)
242
+ continue;
243
+ if (options.minConfidence && edge.confidence < options.minConfidence)
244
+ continue;
245
+ visitedNodes.set(node.id, node);
246
+ visitedEdges.set(edge.id, edge);
247
+ hasChildren = true;
248
+ queue.push({
249
+ nodeId: node.id,
250
+ path: {
251
+ nodes: [...current.path.nodes, node],
252
+ edges: [...current.path.edges, edge],
253
+ totalWeight: current.path.totalWeight + edge.weight,
254
+ length: current.path.length + 1,
255
+ },
256
+ depth: current.depth + 1,
257
+ });
258
+ if (options.limit && paths.length >= options.limit)
259
+ break;
260
+ }
261
+ if (!hasChildren) {
262
+ paths.push(current.path);
263
+ }
264
+ }
265
+ return {
266
+ success: true,
267
+ data: {
268
+ paths,
269
+ visitedNodes: Array.from(visitedNodes.values()),
270
+ visitedEdges: Array.from(visitedEdges.values()),
271
+ depth: options.maxDepth,
272
+ },
273
+ };
274
+ }
275
+ async findShortestPath(_agentId, startNodeId, endNodeId, maxDepth = 10) {
276
+ const visited = new Set();
277
+ const queue = [];
278
+ const startNodeResult = await this.getNode(startNodeId);
279
+ if (!startNodeResult.success || !startNodeResult.data) {
280
+ return { success: false, error: 'Start node not found' };
281
+ }
282
+ queue.push({
283
+ nodeId: startNodeId,
284
+ path: {
285
+ nodes: [startNodeResult.data],
286
+ edges: [],
287
+ totalWeight: 0,
288
+ length: 0,
289
+ },
290
+ });
291
+ visited.add(startNodeId);
292
+ while (queue.length > 0) {
293
+ const current = queue.shift();
294
+ if (current.nodeId === endNodeId) {
295
+ return { success: true, data: current.path };
296
+ }
297
+ if (current.path.length >= maxDepth)
298
+ continue;
299
+ const neighbors = await this.getNeighbors(current.nodeId, 'both');
300
+ if (!neighbors.success)
301
+ continue;
302
+ for (const { node, edge } of neighbors.data) {
303
+ if (visited.has(node.id))
304
+ continue;
305
+ visited.add(node.id);
306
+ queue.push({
307
+ nodeId: node.id,
308
+ path: {
309
+ nodes: [...current.path.nodes, node],
310
+ edges: [...current.path.edges, edge],
311
+ totalWeight: current.path.totalWeight + edge.weight,
312
+ length: current.path.length + 1,
313
+ },
314
+ });
315
+ }
316
+ }
317
+ return { success: true, data: null };
318
+ }
319
+ async getNeighbors(nodeId, direction = 'both') {
320
+ const results = [];
321
+ if (direction === 'outgoing' || direction === 'both') {
322
+ const outEdges = this.edgesBySource.get(nodeId) ?? new Set();
323
+ for (const edgeId of outEdges) {
324
+ const edge = this.edges.get(edgeId);
325
+ if (edge) {
326
+ const node = this.nodes.get(edge.targetNodeId);
327
+ if (node) {
328
+ results.push({ node, edge });
329
+ }
330
+ }
331
+ }
332
+ }
333
+ if (direction === 'incoming' || direction === 'both') {
334
+ const inEdges = this.edgesByTarget.get(nodeId) ?? new Set();
335
+ for (const edgeId of inEdges) {
336
+ const edge = this.edges.get(edgeId);
337
+ if (edge) {
338
+ const node = this.nodes.get(edge.sourceNodeId);
339
+ if (node) {
340
+ results.push({ node, edge });
341
+ }
342
+ }
343
+ }
344
+ }
345
+ return { success: true, data: results };
346
+ }
347
+ async mergeNodes(targetNodeId, sourceNodeIds) {
348
+ const targetNode = this.nodes.get(targetNodeId);
349
+ if (!targetNode) {
350
+ return { success: false, error: `Target node ${targetNodeId} not found` };
351
+ }
352
+ const allAliases = new Set(targetNode.aliases);
353
+ const allProperties = { ...targetNode.properties };
354
+ for (const sourceId of sourceNodeIds) {
355
+ const sourceNode = this.nodes.get(sourceId);
356
+ if (!sourceNode)
357
+ continue;
358
+ allAliases.add(sourceNode.name);
359
+ sourceNode.aliases.forEach((a) => allAliases.add(a));
360
+ Object.assign(allProperties, sourceNode.properties);
361
+ const sourceEdges = this.edgesBySource.get(sourceId) ?? new Set();
362
+ for (const edgeId of sourceEdges) {
363
+ const edge = this.edges.get(edgeId);
364
+ if (edge && edge.targetNodeId !== targetNodeId) {
365
+ await this.addEdge({
366
+ ...edge,
367
+ sourceNodeId: targetNodeId,
368
+ });
369
+ }
370
+ }
371
+ const targetEdges = this.edgesByTarget.get(sourceId) ?? new Set();
372
+ for (const edgeId of targetEdges) {
373
+ const edge = this.edges.get(edgeId);
374
+ if (edge && edge.sourceNodeId !== targetNodeId) {
375
+ await this.addEdge({
376
+ ...edge,
377
+ targetNodeId: targetNodeId,
378
+ });
379
+ }
380
+ }
381
+ await this.deleteNode(sourceId);
382
+ }
383
+ const updatedNode = {
384
+ ...targetNode,
385
+ aliases: Array.from(allAliases),
386
+ properties: allProperties,
387
+ updatedAt: new Date(),
388
+ };
389
+ this.nodes.set(targetNodeId, updatedNode);
390
+ return { success: true, data: updatedNode };
391
+ }
392
+ async clearGraph(agentId) {
393
+ const agentNodes = this.nodesByAgent.get(agentId);
394
+ if (agentNodes) {
395
+ for (const nodeId of [...agentNodes]) {
396
+ await this.deleteNode(nodeId);
397
+ }
398
+ }
399
+ return { success: true, data: undefined };
400
+ }
401
+ async getGraphStats(agentId) {
402
+ const nodesByType = {
403
+ person: 0,
404
+ organization: 0,
405
+ location: 0,
406
+ concept: 0,
407
+ event: 0,
408
+ object: 0,
409
+ custom: 0,
410
+ };
411
+ const edgesByType = {
412
+ knows: 0,
413
+ works_at: 0,
414
+ located_in: 0,
415
+ part_of: 0,
416
+ related_to: 0,
417
+ created_by: 0,
418
+ belongs_to: 0,
419
+ associated_with: 0,
420
+ causes: 0,
421
+ precedes: 0,
422
+ custom: 0,
423
+ };
424
+ let nodeCount = 0;
425
+ let edgeCount = 0;
426
+ const agentNodes = this.nodesByAgent.get(agentId) ?? new Set();
427
+ for (const nodeId of agentNodes) {
428
+ const node = this.nodes.get(nodeId);
429
+ if (node) {
430
+ nodeCount++;
431
+ nodesByType[node.type]++;
432
+ }
433
+ }
434
+ for (const edge of this.edges.values()) {
435
+ if (edge.agentId === agentId) {
436
+ edgeCount++;
437
+ edgesByType[edge.type]++;
438
+ }
439
+ }
440
+ return {
441
+ success: true,
442
+ data: {
443
+ nodeCount,
444
+ edgeCount,
445
+ nodesByType,
446
+ edgesByType,
447
+ averageEdgesPerNode: nodeCount > 0 ? edgeCount / nodeCount : 0,
448
+ maxDepth: 0,
449
+ },
450
+ };
451
+ }
452
+ }
453
+ function cosineSimilarity(a, b) {
454
+ let dotProduct = 0;
455
+ let normA = 0;
456
+ let normB = 0;
457
+ for (let i = 0; i < a.length; i++) {
458
+ dotProduct += a[i] * b[i];
459
+ normA += a[i] * a[i];
460
+ normB += b[i] * b[i];
461
+ }
462
+ const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
463
+ return magnitude === 0 ? 0 : dotProduct / magnitude;
464
+ }
465
+ export function createMemoryGraphAdapter() {
466
+ return new MemoryGraphAdapter();
467
+ }
468
+ //# sourceMappingURL=memory-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-adapter.js","sourceRoot":"","sources":["../../../src/knowledge-graph/adapters/memory-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { NeuroSymbolic } from '../orchestrator';
2
+ export declare function createConstraintTools(ns: NeuroSymbolic): {
3
+ solveConstraints: import("@cogitator-ai/types").Tool<{
4
+ constraints: {
5
+ left: string;
6
+ right: string;
7
+ op: "gt" | "gte" | "lt" | "lte" | "eq" | "neq" | "and" | "or" | "implies";
8
+ }[];
9
+ variables: {
10
+ name: string;
11
+ type: "bool" | "int" | "real";
12
+ min?: number | undefined;
13
+ max?: number | undefined;
14
+ }[];
15
+ problemName?: string | undefined;
16
+ objective?: {
17
+ variable: string;
18
+ type: "minimize" | "maximize";
19
+ } | undefined;
20
+ }, {
21
+ status: string;
22
+ error: string;
23
+ z3Available: boolean;
24
+ satisfiable?: undefined;
25
+ model?: undefined;
26
+ objectiveValue?: undefined;
27
+ duration?: undefined;
28
+ unsatCore?: undefined;
29
+ reason?: undefined;
30
+ } | {
31
+ status: string;
32
+ satisfiable: boolean;
33
+ model: Record<string, number | boolean>;
34
+ objectiveValue: number | undefined;
35
+ duration: number;
36
+ z3Available: boolean;
37
+ error?: undefined;
38
+ unsatCore?: undefined;
39
+ reason?: undefined;
40
+ } | {
41
+ status: string;
42
+ satisfiable: boolean;
43
+ unsatCore: string[] | undefined;
44
+ duration: number;
45
+ z3Available: boolean;
46
+ error?: undefined;
47
+ model?: undefined;
48
+ objectiveValue?: undefined;
49
+ reason?: undefined;
50
+ } | {
51
+ status: string;
52
+ satisfiable: null;
53
+ duration: number;
54
+ z3Available: boolean;
55
+ error?: undefined;
56
+ model?: undefined;
57
+ objectiveValue?: undefined;
58
+ unsatCore?: undefined;
59
+ reason?: undefined;
60
+ } | {
61
+ status: string;
62
+ satisfiable: null;
63
+ reason: string;
64
+ duration: number;
65
+ z3Available: boolean;
66
+ error?: undefined;
67
+ model?: undefined;
68
+ objectiveValue?: undefined;
69
+ unsatCore?: undefined;
70
+ } | {
71
+ status: string;
72
+ error: string;
73
+ duration: number;
74
+ z3Available: boolean;
75
+ satisfiable?: undefined;
76
+ model?: undefined;
77
+ objectiveValue?: undefined;
78
+ unsatCore?: undefined;
79
+ reason?: undefined;
80
+ }>;
81
+ };
82
+ //# sourceMappingURL=constraint-tools.d.ts.map