@weavelogic/knowledge-graph-agent 0.6.0 → 0.7.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.
Files changed (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +70 -3
  3. package/dist/_virtual/__vite-browser-external.js +2 -2
  4. package/dist/_virtual/__vite-browser-external.js.map +1 -1
  5. package/dist/_virtual/index12.js +7 -0
  6. package/dist/_virtual/index12.js.map +1 -0
  7. package/dist/_virtual/ort-web.min.js +8 -0
  8. package/dist/_virtual/ort-web.min.js.map +1 -0
  9. package/dist/_virtual/ort-web.min2.js +5 -0
  10. package/dist/_virtual/ort-web.min2.js.map +1 -0
  11. package/dist/agents/base-agent.d.ts +63 -0
  12. package/dist/agents/base-agent.d.ts.map +1 -1
  13. package/dist/agents/base-agent.js +139 -0
  14. package/dist/agents/base-agent.js.map +1 -1
  15. package/dist/agents/coordinator-agent.d.ts +422 -0
  16. package/dist/agents/coordinator-agent.d.ts.map +1 -0
  17. package/dist/agents/documenter-agent.d.ts +298 -0
  18. package/dist/agents/documenter-agent.d.ts.map +1 -0
  19. package/dist/agents/index.d.ts +11 -1
  20. package/dist/agents/index.d.ts.map +1 -1
  21. package/dist/agents/index.js +4 -0
  22. package/dist/agents/index.js.map +1 -1
  23. package/dist/agents/mixins/index.d.ts +9 -0
  24. package/dist/agents/mixins/index.d.ts.map +1 -0
  25. package/dist/agents/mixins/trajectory-mixin.d.ts +112 -0
  26. package/dist/agents/mixins/trajectory-mixin.d.ts.map +1 -0
  27. package/dist/agents/optimizer-agent.d.ts +388 -0
  28. package/dist/agents/optimizer-agent.d.ts.map +1 -0
  29. package/dist/agents/planner-agent.d.ts +395 -0
  30. package/dist/agents/planner-agent.d.ts.map +1 -0
  31. package/dist/agents/registry.d.ts.map +1 -1
  32. package/dist/agents/registry.js +5 -0
  33. package/dist/agents/registry.js.map +1 -1
  34. package/dist/agents/reviewer-agent.d.ts +330 -0
  35. package/dist/agents/reviewer-agent.d.ts.map +1 -0
  36. package/dist/agents/types.d.ts +12 -1
  37. package/dist/agents/types.d.ts.map +1 -1
  38. package/dist/agents/types.js +1 -0
  39. package/dist/agents/types.js.map +1 -1
  40. package/dist/cli/commands/hive-mind/add-frontmatter.d.ts +102 -0
  41. package/dist/cli/commands/hive-mind/add-frontmatter.d.ts.map +1 -0
  42. package/dist/cli/commands/hive-mind/add-frontmatter.js +439 -0
  43. package/dist/cli/commands/hive-mind/add-frontmatter.js.map +1 -0
  44. package/dist/cli/commands/hive-mind/analyze-links.d.ts +80 -0
  45. package/dist/cli/commands/hive-mind/analyze-links.d.ts.map +1 -0
  46. package/dist/cli/commands/hive-mind/analyze-links.js +367 -0
  47. package/dist/cli/commands/hive-mind/analyze-links.js.map +1 -0
  48. package/dist/cli/commands/hive-mind/find-connections.d.ts +75 -0
  49. package/dist/cli/commands/hive-mind/find-connections.d.ts.map +1 -0
  50. package/dist/cli/commands/hive-mind/find-connections.js +347 -0
  51. package/dist/cli/commands/hive-mind/find-connections.js.map +1 -0
  52. package/dist/cli/commands/hive-mind/index.d.ts +37 -0
  53. package/dist/cli/commands/hive-mind/index.d.ts.map +1 -0
  54. package/dist/cli/commands/hive-mind/index.js +33 -0
  55. package/dist/cli/commands/hive-mind/index.js.map +1 -0
  56. package/dist/cli/commands/hive-mind/validate-names.d.ts +79 -0
  57. package/dist/cli/commands/hive-mind/validate-names.d.ts.map +1 -0
  58. package/dist/cli/commands/hive-mind/validate-names.js +353 -0
  59. package/dist/cli/commands/hive-mind/validate-names.js.map +1 -0
  60. package/dist/cli/commands/vector.js +2 -0
  61. package/dist/cli/commands/vector.js.map +1 -1
  62. package/dist/cli/index.d.ts.map +1 -1
  63. package/dist/cli/index.js +7 -0
  64. package/dist/cli/index.js.map +1 -1
  65. package/dist/equilibrium/agent-equilibrium.d.ts +194 -0
  66. package/dist/equilibrium/agent-equilibrium.d.ts.map +1 -0
  67. package/dist/equilibrium/agent-equilibrium.js +304 -0
  68. package/dist/equilibrium/agent-equilibrium.js.map +1 -0
  69. package/dist/equilibrium/graph-equilibrium.d.ts +177 -0
  70. package/dist/equilibrium/graph-equilibrium.d.ts.map +1 -0
  71. package/dist/equilibrium/index.d.ts +11 -0
  72. package/dist/equilibrium/index.d.ts.map +1 -0
  73. package/dist/equilibrium/memory-equilibrium.d.ts +153 -0
  74. package/dist/equilibrium/memory-equilibrium.d.ts.map +1 -0
  75. package/dist/graphql/resolvers/index.d.ts.map +1 -1
  76. package/dist/graphql/resolvers/queries.d.ts +11 -0
  77. package/dist/graphql/resolvers/queries.d.ts.map +1 -1
  78. package/dist/index.d.ts +2 -0
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +10 -4
  81. package/dist/index.js.map +1 -1
  82. package/dist/inference/index.d.ts +9 -0
  83. package/dist/inference/index.d.ts.map +1 -0
  84. package/dist/inference/model-selection.d.ts +131 -0
  85. package/dist/inference/model-selection.d.ts.map +1 -0
  86. package/dist/integrations/agentic-flow/adapters/agent-booster-adapter.d.ts +265 -0
  87. package/dist/integrations/agentic-flow/adapters/agent-booster-adapter.d.ts.map +1 -0
  88. package/dist/integrations/agentic-flow/adapters/agentdb-adapter.d.ts +197 -0
  89. package/dist/integrations/agentic-flow/adapters/agentdb-adapter.d.ts.map +1 -0
  90. package/dist/integrations/agentic-flow/adapters/agentdb-vector-store.d.ts +249 -0
  91. package/dist/integrations/agentic-flow/adapters/agentdb-vector-store.d.ts.map +1 -0
  92. package/dist/integrations/agentic-flow/adapters/base-adapter.d.ts +120 -0
  93. package/dist/integrations/agentic-flow/adapters/base-adapter.d.ts.map +1 -0
  94. package/dist/integrations/agentic-flow/adapters/federation-hub-adapter.d.ts +444 -0
  95. package/dist/integrations/agentic-flow/adapters/federation-hub-adapter.d.ts.map +1 -0
  96. package/dist/integrations/agentic-flow/adapters/index.d.ts +17 -0
  97. package/dist/integrations/agentic-flow/adapters/index.d.ts.map +1 -0
  98. package/dist/integrations/agentic-flow/adapters/model-router-adapter.d.ts +242 -0
  99. package/dist/integrations/agentic-flow/adapters/model-router-adapter.d.ts.map +1 -0
  100. package/dist/integrations/agentic-flow/adapters/quic-transport-adapter.d.ts +364 -0
  101. package/dist/integrations/agentic-flow/adapters/quic-transport-adapter.d.ts.map +1 -0
  102. package/dist/integrations/agentic-flow/adapters/reasoning-bank-adapter.d.ts +209 -0
  103. package/dist/integrations/agentic-flow/adapters/reasoning-bank-adapter.d.ts.map +1 -0
  104. package/dist/integrations/agentic-flow/benchmark/index.d.ts +9 -0
  105. package/dist/integrations/agentic-flow/benchmark/index.d.ts.map +1 -0
  106. package/dist/integrations/agentic-flow/benchmark/vector-benchmark.d.ts +253 -0
  107. package/dist/integrations/agentic-flow/benchmark/vector-benchmark.d.ts.map +1 -0
  108. package/dist/integrations/agentic-flow/config.d.ts +109 -0
  109. package/dist/integrations/agentic-flow/config.d.ts.map +1 -0
  110. package/dist/integrations/agentic-flow/feature-flags.d.ts +140 -0
  111. package/dist/integrations/agentic-flow/feature-flags.d.ts.map +1 -0
  112. package/dist/integrations/agentic-flow/index.d.ts +22 -0
  113. package/dist/integrations/agentic-flow/index.d.ts.map +1 -0
  114. package/dist/integrations/agentic-flow/migration/index.d.ts +9 -0
  115. package/dist/integrations/agentic-flow/migration/index.d.ts.map +1 -0
  116. package/dist/integrations/agentic-flow/migration/migrate-to-agentdb.d.ts +242 -0
  117. package/dist/integrations/agentic-flow/migration/migrate-to-agentdb.d.ts.map +1 -0
  118. package/dist/learning/index.d.ts +91 -0
  119. package/dist/learning/index.d.ts.map +1 -0
  120. package/dist/learning/learning-loop.d.ts +176 -0
  121. package/dist/learning/learning-loop.d.ts.map +1 -0
  122. package/dist/learning/services/ab-testing-framework.d.ts +135 -0
  123. package/dist/learning/services/ab-testing-framework.d.ts.map +1 -0
  124. package/dist/learning/services/agent-priming-service.d.ts +207 -0
  125. package/dist/learning/services/agent-priming-service.d.ts.map +1 -0
  126. package/dist/learning/services/daily-log-generator.d.ts +113 -0
  127. package/dist/learning/services/daily-log-generator.d.ts.map +1 -0
  128. package/dist/learning/services/index.d.ts +14 -0
  129. package/dist/learning/services/index.d.ts.map +1 -0
  130. package/dist/learning/services/memory-extraction-service.d.ts +87 -0
  131. package/dist/learning/services/memory-extraction-service.d.ts.map +1 -0
  132. package/dist/learning/services/task-completion-consumer.d.ts +162 -0
  133. package/dist/learning/services/task-completion-consumer.d.ts.map +1 -0
  134. package/dist/learning/services/trajectory-tracker.d.ts +174 -0
  135. package/dist/learning/services/trajectory-tracker.d.ts.map +1 -0
  136. package/dist/learning/types.d.ts +516 -0
  137. package/dist/learning/types.d.ts.map +1 -0
  138. package/dist/mcp/clients/claude-flow-memory-client.d.ts +259 -0
  139. package/dist/mcp/clients/claude-flow-memory-client.d.ts.map +1 -0
  140. package/dist/mcp/clients/claude-flow-memory-client.js +305 -0
  141. package/dist/mcp/clients/claude-flow-memory-client.js.map +1 -0
  142. package/dist/mcp/clients/index.d.ts +11 -0
  143. package/dist/mcp/clients/index.d.ts.map +1 -0
  144. package/dist/mcp/clients/mcp-client-adapter.d.ts +146 -0
  145. package/dist/mcp/clients/mcp-client-adapter.d.ts.map +1 -0
  146. package/dist/mcp/clients/mcp-client-adapter.js +372 -0
  147. package/dist/mcp/clients/mcp-client-adapter.js.map +1 -0
  148. package/dist/mcp/index.d.ts +10 -0
  149. package/dist/mcp/index.d.ts.map +1 -0
  150. package/dist/memory/vault-sync.d.ts +12 -0
  151. package/dist/memory/vault-sync.d.ts.map +1 -1
  152. package/dist/memory/vault-sync.js +94 -11
  153. package/dist/memory/vault-sync.js.map +1 -1
  154. package/dist/node_modules/@huggingface/jinja/dist/index.js +118 -0
  155. package/dist/node_modules/@huggingface/jinja/dist/index.js.map +1 -0
  156. package/dist/node_modules/@typescript-eslint/project-service/dist/index.js +1 -1
  157. package/dist/node_modules/@xenova/transformers/src/backends/onnx.js +24 -0
  158. package/dist/node_modules/@xenova/transformers/src/backends/onnx.js.map +1 -0
  159. package/dist/node_modules/@xenova/transformers/src/configs.js +52 -0
  160. package/dist/node_modules/@xenova/transformers/src/configs.js.map +1 -0
  161. package/dist/node_modules/@xenova/transformers/src/env.js +35 -0
  162. package/dist/node_modules/@xenova/transformers/src/env.js.map +1 -0
  163. package/dist/node_modules/@xenova/transformers/src/models.js +3852 -0
  164. package/dist/node_modules/@xenova/transformers/src/models.js.map +1 -0
  165. package/dist/node_modules/@xenova/transformers/src/tokenizers.js +144 -0
  166. package/dist/node_modules/@xenova/transformers/src/tokenizers.js.map +1 -0
  167. package/dist/node_modules/@xenova/transformers/src/utils/core.js +52 -0
  168. package/dist/node_modules/@xenova/transformers/src/utils/core.js.map +1 -0
  169. package/dist/node_modules/@xenova/transformers/src/utils/generation.js +623 -0
  170. package/dist/node_modules/@xenova/transformers/src/utils/generation.js.map +1 -0
  171. package/dist/node_modules/@xenova/transformers/src/utils/hub.js +395 -0
  172. package/dist/node_modules/@xenova/transformers/src/utils/hub.js.map +1 -0
  173. package/dist/node_modules/@xenova/transformers/src/utils/image.js +12 -0
  174. package/dist/node_modules/@xenova/transformers/src/utils/image.js.map +1 -0
  175. package/dist/node_modules/@xenova/transformers/src/utils/maths.js +89 -0
  176. package/dist/node_modules/@xenova/transformers/src/utils/maths.js.map +1 -0
  177. package/dist/node_modules/@xenova/transformers/src/utils/tensor.js +750 -0
  178. package/dist/node_modules/@xenova/transformers/src/utils/tensor.js.map +1 -0
  179. package/dist/node_modules/fdir/dist/index.js +13 -13
  180. package/dist/node_modules/fdir/dist/index.js.map +1 -1
  181. package/dist/node_modules/onnxruntime-common/dist/lib/backend-impl.js +67 -0
  182. package/dist/node_modules/onnxruntime-common/dist/lib/backend-impl.js.map +1 -0
  183. package/dist/node_modules/onnxruntime-common/dist/lib/env-impl.js +24 -0
  184. package/dist/node_modules/onnxruntime-common/dist/lib/env-impl.js.map +1 -0
  185. package/dist/node_modules/onnxruntime-common/dist/lib/env.js +6 -0
  186. package/dist/node_modules/onnxruntime-common/dist/lib/env.js.map +1 -0
  187. package/dist/node_modules/onnxruntime-common/dist/lib/index.js +11 -0
  188. package/dist/node_modules/onnxruntime-common/dist/lib/index.js.map +1 -0
  189. package/dist/node_modules/onnxruntime-common/dist/lib/inference-session-impl.js +162 -0
  190. package/dist/node_modules/onnxruntime-common/dist/lib/inference-session-impl.js.map +1 -0
  191. package/dist/node_modules/onnxruntime-common/dist/lib/inference-session.js +6 -0
  192. package/dist/node_modules/onnxruntime-common/dist/lib/inference-session.js.map +1 -0
  193. package/dist/node_modules/onnxruntime-common/dist/lib/tensor-impl.js +393 -0
  194. package/dist/node_modules/onnxruntime-common/dist/lib/tensor-impl.js.map +1 -0
  195. package/dist/node_modules/onnxruntime-common/dist/lib/tensor.js +6 -0
  196. package/dist/node_modules/onnxruntime-common/dist/lib/tensor.js.map +1 -0
  197. package/dist/node_modules/onnxruntime-web/dist/ort-web.min.js +12919 -0
  198. package/dist/node_modules/onnxruntime-web/dist/ort-web.min.js.map +1 -0
  199. package/dist/node_modules/tinyglobby/dist/index.js +14 -14
  200. package/dist/node_modules/tinyglobby/dist/index.js.map +1 -1
  201. package/dist/node_modules/typescript/lib/typescript.js +24 -24
  202. package/dist/node_modules/typescript/lib/typescript.js.map +1 -1
  203. package/dist/transport/agent-transport.d.ts +269 -0
  204. package/dist/transport/agent-transport.d.ts.map +1 -0
  205. package/dist/transport/index.d.ts +10 -0
  206. package/dist/transport/index.d.ts.map +1 -0
  207. package/dist/vector/index.d.ts +1 -1
  208. package/dist/vector/index.d.ts.map +1 -1
  209. package/dist/vector/services/embedding-service.d.ts +244 -0
  210. package/dist/vector/services/embedding-service.d.ts.map +1 -0
  211. package/dist/vector/services/embedding-service.js +10 -0
  212. package/dist/vector/services/embedding-service.js.map +1 -0
  213. package/dist/vector/services/hybrid-search.d.ts +320 -0
  214. package/dist/vector/services/hybrid-search.d.ts.map +1 -0
  215. package/dist/vector/services/hybrid-search.js +3 -0
  216. package/dist/vector/services/hybrid-search.js.map +1 -0
  217. package/dist/vector/services/index.d.ts +4 -0
  218. package/dist/vector/services/index.d.ts.map +1 -1
  219. package/package.json +10 -1
@@ -0,0 +1,320 @@
1
+ /**
2
+ * Hybrid Search Service
3
+ *
4
+ * Combines vector similarity search with full-text search (FTS) for improved
5
+ * search relevance. Uses a weighted scoring approach to merge results from
6
+ * both search methods.
7
+ *
8
+ * @module vector/services/hybrid-search
9
+ */
10
+ import type { EnhancedVectorStore } from './vector-store.js';
11
+ import type { EmbeddingService } from './embedding-service.js';
12
+ /**
13
+ * Configuration for hybrid search
14
+ */
15
+ export interface HybridSearchConfig {
16
+ /**
17
+ * Weight for vector similarity results (0-1)
18
+ * Higher values favor semantic similarity
19
+ * @default 0.6
20
+ */
21
+ vectorWeight: number;
22
+ /**
23
+ * Weight for full-text search results (0-1)
24
+ * Higher values favor keyword matching
25
+ * @default 0.4
26
+ */
27
+ ftsWeight: number;
28
+ /**
29
+ * Maximum number of results to return
30
+ * @default 20
31
+ */
32
+ limit: number;
33
+ /**
34
+ * Minimum combined score threshold (0-1)
35
+ * Results below this score are filtered out
36
+ * @default 0.3
37
+ */
38
+ minScore: number;
39
+ /**
40
+ * Boost factor for results that appear in both vector and FTS
41
+ * @default 1.2
42
+ */
43
+ hybridBoost: number;
44
+ /**
45
+ * Whether to normalize scores before combining
46
+ * @default true
47
+ */
48
+ normalizeScores: boolean;
49
+ }
50
+ /**
51
+ * FTS (Full-Text Search) result from external search provider
52
+ */
53
+ export interface FTSResult {
54
+ /**
55
+ * Node/document ID
56
+ */
57
+ id: string;
58
+ /**
59
+ * Content that matched
60
+ */
61
+ content: string;
62
+ /**
63
+ * FTS relevance score (0-1 normalized or raw)
64
+ */
65
+ score?: number;
66
+ /**
67
+ * Match snippets/highlights
68
+ */
69
+ snippets?: string[];
70
+ /**
71
+ * Additional metadata
72
+ */
73
+ metadata?: Record<string, unknown>;
74
+ }
75
+ /**
76
+ * Extended hybrid search result with source tracking
77
+ */
78
+ export interface ExtendedHybridSearchResult {
79
+ /**
80
+ * Node/document ID
81
+ */
82
+ nodeId: string;
83
+ /**
84
+ * Content of the matched node
85
+ */
86
+ content: string;
87
+ /**
88
+ * Vector similarity score (0-1)
89
+ */
90
+ vectorScore: number;
91
+ /**
92
+ * Full-text search score (0-1)
93
+ */
94
+ ftsScore: number;
95
+ /**
96
+ * Combined/weighted score
97
+ */
98
+ combinedScore: number;
99
+ /**
100
+ * Source of this result
101
+ */
102
+ source: 'vector' | 'fts' | 'hybrid';
103
+ /**
104
+ * Rank in the final result list
105
+ */
106
+ rank: number;
107
+ /**
108
+ * Optional metadata
109
+ */
110
+ metadata?: Record<string, unknown>;
111
+ /**
112
+ * Match snippets for highlighting
113
+ */
114
+ snippets?: string[];
115
+ }
116
+ /**
117
+ * Search query input
118
+ */
119
+ export interface HybridSearchQuery {
120
+ /**
121
+ * Text query for search
122
+ */
123
+ query: string;
124
+ /**
125
+ * Maximum results to return
126
+ */
127
+ limit?: number;
128
+ /**
129
+ * Minimum score threshold
130
+ */
131
+ minScore?: number;
132
+ /**
133
+ * Node types to filter by
134
+ */
135
+ nodeTypes?: string[];
136
+ /**
137
+ * Override vector weight
138
+ */
139
+ vectorWeight?: number;
140
+ /**
141
+ * Override FTS weight
142
+ */
143
+ ftsWeight?: number;
144
+ /**
145
+ * Include match snippets
146
+ */
147
+ includeSnippets?: boolean;
148
+ }
149
+ /**
150
+ * Search statistics
151
+ */
152
+ export interface SearchStats {
153
+ /**
154
+ * Total search time in milliseconds
155
+ */
156
+ totalDurationMs: number;
157
+ /**
158
+ * Vector search time
159
+ */
160
+ vectorSearchMs: number;
161
+ /**
162
+ * FTS search time
163
+ */
164
+ ftsSearchMs: number;
165
+ /**
166
+ * Merge/ranking time
167
+ */
168
+ mergeMs: number;
169
+ /**
170
+ * Number of vector results before merge
171
+ */
172
+ vectorResultCount: number;
173
+ /**
174
+ * Number of FTS results before merge
175
+ */
176
+ ftsResultCount: number;
177
+ /**
178
+ * Final result count after merge and filter
179
+ */
180
+ finalResultCount: number;
181
+ }
182
+ /**
183
+ * Hybrid Search result with stats
184
+ */
185
+ export interface HybridSearchResponse {
186
+ /**
187
+ * Search results
188
+ */
189
+ results: ExtendedHybridSearchResult[];
190
+ /**
191
+ * Search statistics
192
+ */
193
+ stats: SearchStats;
194
+ /**
195
+ * Original query
196
+ */
197
+ query: string;
198
+ }
199
+ /**
200
+ * FTS provider interface for pluggable full-text search
201
+ */
202
+ export interface FTSProvider {
203
+ /**
204
+ * Search for documents matching query
205
+ */
206
+ search(query: string, limit: number): Promise<FTSResult[]>;
207
+ }
208
+ /**
209
+ * Hybrid Search Service
210
+ *
211
+ * Combines vector similarity search with full-text search to provide
212
+ * better search relevance. Vector search captures semantic meaning
213
+ * while FTS captures exact keyword matches.
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * const hybridSearch = new HybridSearch(vectorStore, embeddingService);
218
+ *
219
+ * // Set up FTS provider (e.g., SQLite FTS5)
220
+ * hybridSearch.setFTSProvider({
221
+ * search: async (query, limit) => {
222
+ * return db.searchNodes(query, limit).map(node => ({
223
+ * id: node.id,
224
+ * content: node.content,
225
+ * score: 0.5,
226
+ * }));
227
+ * }
228
+ * });
229
+ *
230
+ * // Perform hybrid search
231
+ * const response = await hybridSearch.search({
232
+ * query: 'machine learning algorithms',
233
+ * limit: 10,
234
+ * });
235
+ * ```
236
+ */
237
+ export declare class HybridSearch {
238
+ private vectorStore;
239
+ private embeddingService;
240
+ private config;
241
+ private ftsProvider;
242
+ /**
243
+ * Create a new HybridSearch instance
244
+ *
245
+ * @param vectorStore - Vector store for similarity search
246
+ * @param embeddingService - Service for generating query embeddings
247
+ * @param config - Optional configuration overrides
248
+ */
249
+ constructor(vectorStore: EnhancedVectorStore, embeddingService: EmbeddingService, config?: Partial<HybridSearchConfig>);
250
+ /**
251
+ * Set the full-text search provider
252
+ *
253
+ * @param provider - FTS provider implementation
254
+ */
255
+ setFTSProvider(provider: FTSProvider): void;
256
+ /**
257
+ * Perform hybrid search combining vector and FTS
258
+ *
259
+ * @param query - Search query
260
+ * @returns Search response with results and statistics
261
+ */
262
+ search(query: HybridSearchQuery): Promise<HybridSearchResponse>;
263
+ /**
264
+ * Perform vector similarity search
265
+ *
266
+ * @param query - Text query
267
+ * @param limit - Max results
268
+ * @returns Vector search results with timing
269
+ */
270
+ private performVectorSearch;
271
+ /**
272
+ * Perform full-text search
273
+ *
274
+ * @param query - Text query
275
+ * @param limit - Max results
276
+ * @returns FTS results with timing
277
+ */
278
+ private performFTSSearch;
279
+ /**
280
+ * Merge vector and FTS results using weighted scoring
281
+ *
282
+ * @param vectorResults - Results from vector search
283
+ * @param ftsResults - Results from FTS
284
+ * @param vectorWeight - Weight for vector scores
285
+ * @param ftsWeight - Weight for FTS scores
286
+ * @returns Merged and ranked results
287
+ */
288
+ private mergeResults;
289
+ /**
290
+ * Normalize scores to 0-1 range
291
+ *
292
+ * @param items - Items with scores to normalize
293
+ * @returns Map of id to normalized score
294
+ */
295
+ private normalizeScores;
296
+ /**
297
+ * Update configuration
298
+ *
299
+ * @param config - Configuration updates
300
+ */
301
+ updateConfig(config: Partial<HybridSearchConfig>): void;
302
+ /**
303
+ * Get current configuration
304
+ *
305
+ * @returns Copy of current configuration
306
+ */
307
+ getConfig(): HybridSearchConfig;
308
+ }
309
+ /**
310
+ * Create a hybrid search instance
311
+ *
312
+ * Factory function for creating hybrid search services.
313
+ *
314
+ * @param vectorStore - Vector store for similarity search
315
+ * @param embeddingService - Service for generating query embeddings
316
+ * @param config - Optional configuration overrides
317
+ * @returns New HybridSearch instance
318
+ */
319
+ export declare function createHybridSearch(vectorStore: EnhancedVectorStore, embeddingService: EmbeddingService, config?: Partial<HybridSearchConfig>): HybridSearch;
320
+ //# sourceMappingURL=hybrid-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid-search.d.ts","sourceRoot":"","sources":["../../../src/vector/services/hybrid-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { createLogger } from "../../utils/logger.js";
2
+ createLogger("hybrid-search");
3
+ //# sourceMappingURL=hybrid-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid-search.js","sources":["../../../src/vector/services/hybrid-search.ts"],"sourcesContent":["/**\n * Hybrid Search Service\n *\n * Combines vector similarity search with full-text search (FTS) for improved\n * search relevance. Uses a weighted scoring approach to merge results from\n * both search methods.\n *\n * @module vector/services/hybrid-search\n */\n\nimport type { SearchResult, HybridSearchResult } from '../types.js';\nimport type { EnhancedVectorStore } from './vector-store.js';\nimport type { EmbeddingService } from './embedding-service.js';\nimport { createLogger } from '../../utils/index.js';\n\nconst logger = createLogger('hybrid-search');\n\n/**\n * Configuration for hybrid search\n */\nexport interface HybridSearchConfig {\n /**\n * Weight for vector similarity results (0-1)\n * Higher values favor semantic similarity\n * @default 0.6\n */\n vectorWeight: number;\n\n /**\n * Weight for full-text search results (0-1)\n * Higher values favor keyword matching\n * @default 0.4\n */\n ftsWeight: number;\n\n /**\n * Maximum number of results to return\n * @default 20\n */\n limit: number;\n\n /**\n * Minimum combined score threshold (0-1)\n * Results below this score are filtered out\n * @default 0.3\n */\n minScore: number;\n\n /**\n * Boost factor for results that appear in both vector and FTS\n * @default 1.2\n */\n hybridBoost: number;\n\n /**\n * Whether to normalize scores before combining\n * @default true\n */\n normalizeScores: boolean;\n}\n\n/**\n * Default hybrid search configuration\n */\nconst DEFAULT_CONFIG: HybridSearchConfig = {\n vectorWeight: 0.6,\n ftsWeight: 0.4,\n limit: 20,\n minScore: 0.3,\n hybridBoost: 1.2,\n normalizeScores: true,\n};\n\n/**\n * FTS (Full-Text Search) result from external search provider\n */\nexport interface FTSResult {\n /**\n * Node/document ID\n */\n id: string;\n\n /**\n * Content that matched\n */\n content: string;\n\n /**\n * FTS relevance score (0-1 normalized or raw)\n */\n score?: number;\n\n /**\n * Match snippets/highlights\n */\n snippets?: string[];\n\n /**\n * Additional metadata\n */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Extended hybrid search result with source tracking\n */\nexport interface ExtendedHybridSearchResult {\n /**\n * Node/document ID\n */\n nodeId: string;\n\n /**\n * Content of the matched node\n */\n content: string;\n\n /**\n * Vector similarity score (0-1)\n */\n vectorScore: number;\n\n /**\n * Full-text search score (0-1)\n */\n ftsScore: number;\n\n /**\n * Combined/weighted score\n */\n combinedScore: number;\n\n /**\n * Source of this result\n */\n source: 'vector' | 'fts' | 'hybrid';\n\n /**\n * Rank in the final result list\n */\n rank: number;\n\n /**\n * Optional metadata\n */\n metadata?: Record<string, unknown>;\n\n /**\n * Match snippets for highlighting\n */\n snippets?: string[];\n}\n\n/**\n * Search query input\n */\nexport interface HybridSearchQuery {\n /**\n * Text query for search\n */\n query: string;\n\n /**\n * Maximum results to return\n */\n limit?: number;\n\n /**\n * Minimum score threshold\n */\n minScore?: number;\n\n /**\n * Node types to filter by\n */\n nodeTypes?: string[];\n\n /**\n * Override vector weight\n */\n vectorWeight?: number;\n\n /**\n * Override FTS weight\n */\n ftsWeight?: number;\n\n /**\n * Include match snippets\n */\n includeSnippets?: boolean;\n}\n\n/**\n * Search statistics\n */\nexport interface SearchStats {\n /**\n * Total search time in milliseconds\n */\n totalDurationMs: number;\n\n /**\n * Vector search time\n */\n vectorSearchMs: number;\n\n /**\n * FTS search time\n */\n ftsSearchMs: number;\n\n /**\n * Merge/ranking time\n */\n mergeMs: number;\n\n /**\n * Number of vector results before merge\n */\n vectorResultCount: number;\n\n /**\n * Number of FTS results before merge\n */\n ftsResultCount: number;\n\n /**\n * Final result count after merge and filter\n */\n finalResultCount: number;\n}\n\n/**\n * Hybrid Search result with stats\n */\nexport interface HybridSearchResponse {\n /**\n * Search results\n */\n results: ExtendedHybridSearchResult[];\n\n /**\n * Search statistics\n */\n stats: SearchStats;\n\n /**\n * Original query\n */\n query: string;\n}\n\n/**\n * FTS provider interface for pluggable full-text search\n */\nexport interface FTSProvider {\n /**\n * Search for documents matching query\n */\n search(query: string, limit: number): Promise<FTSResult[]>;\n}\n\n/**\n * Hybrid Search Service\n *\n * Combines vector similarity search with full-text search to provide\n * better search relevance. Vector search captures semantic meaning\n * while FTS captures exact keyword matches.\n *\n * @example\n * ```typescript\n * const hybridSearch = new HybridSearch(vectorStore, embeddingService);\n *\n * // Set up FTS provider (e.g., SQLite FTS5)\n * hybridSearch.setFTSProvider({\n * search: async (query, limit) => {\n * return db.searchNodes(query, limit).map(node => ({\n * id: node.id,\n * content: node.content,\n * score: 0.5,\n * }));\n * }\n * });\n *\n * // Perform hybrid search\n * const response = await hybridSearch.search({\n * query: 'machine learning algorithms',\n * limit: 10,\n * });\n * ```\n */\nexport class HybridSearch {\n private vectorStore: EnhancedVectorStore;\n private embeddingService: EmbeddingService;\n private config: HybridSearchConfig;\n private ftsProvider: FTSProvider | null = null;\n\n /**\n * Create a new HybridSearch instance\n *\n * @param vectorStore - Vector store for similarity search\n * @param embeddingService - Service for generating query embeddings\n * @param config - Optional configuration overrides\n */\n constructor(\n vectorStore: EnhancedVectorStore,\n embeddingService: EmbeddingService,\n config: Partial<HybridSearchConfig> = {}\n ) {\n this.vectorStore = vectorStore;\n this.embeddingService = embeddingService;\n this.config = { ...DEFAULT_CONFIG, ...config };\n }\n\n /**\n * Set the full-text search provider\n *\n * @param provider - FTS provider implementation\n */\n setFTSProvider(provider: FTSProvider): void {\n this.ftsProvider = provider;\n }\n\n /**\n * Perform hybrid search combining vector and FTS\n *\n * @param query - Search query\n * @returns Search response with results and statistics\n */\n async search(query: HybridSearchQuery): Promise<HybridSearchResponse> {\n const startTime = Date.now();\n const limit = query.limit ?? this.config.limit;\n const minScore = query.minScore ?? this.config.minScore;\n const vectorWeight = query.vectorWeight ?? this.config.vectorWeight;\n const ftsWeight = query.ftsWeight ?? this.config.ftsWeight;\n\n let vectorSearchMs = 0;\n let ftsSearchMs = 0;\n let vectorResults: SearchResult[] = [];\n let ftsResults: FTSResult[] = [];\n\n // Run vector search and FTS in parallel\n const [vectorResultsPromise, ftsResultsPromise] = await Promise.allSettled([\n this.performVectorSearch(query.query, limit * 2),\n this.performFTSSearch(query.query, limit * 2),\n ]);\n\n // Extract vector results\n if (vectorResultsPromise.status === 'fulfilled') {\n vectorResults = vectorResultsPromise.value.results;\n vectorSearchMs = vectorResultsPromise.value.durationMs;\n } else {\n logger.warn('Vector search failed', {\n error: vectorResultsPromise.reason,\n });\n }\n\n // Extract FTS results\n if (ftsResultsPromise.status === 'fulfilled') {\n ftsResults = ftsResultsPromise.value.results;\n ftsSearchMs = ftsResultsPromise.value.durationMs;\n } else {\n logger.warn('FTS search failed', {\n error: ftsResultsPromise.reason,\n });\n }\n\n // Merge results\n const mergeStartTime = Date.now();\n const merged = this.mergeResults(\n vectorResults,\n ftsResults,\n vectorWeight,\n ftsWeight\n );\n\n // Filter by minimum score\n const filtered = merged.filter((r) => r.combinedScore >= minScore);\n\n // Filter by node types if specified\n let final = filtered;\n if (query.nodeTypes && query.nodeTypes.length > 0) {\n final = filtered.filter((r) => {\n const nodeType = r.metadata?.type as string | undefined;\n return nodeType && query.nodeTypes!.includes(nodeType);\n });\n }\n\n // Limit and rank results\n const results = final.slice(0, limit).map((r, i) => ({\n ...r,\n rank: i + 1,\n }));\n\n const mergeMs = Date.now() - mergeStartTime;\n const totalDurationMs = Date.now() - startTime;\n\n logger.info('Hybrid search completed', {\n query: query.query.slice(0, 50),\n vectorResults: vectorResults.length,\n ftsResults: ftsResults.length,\n finalResults: results.length,\n totalDurationMs,\n });\n\n return {\n results,\n stats: {\n totalDurationMs,\n vectorSearchMs,\n ftsSearchMs,\n mergeMs,\n vectorResultCount: vectorResults.length,\n ftsResultCount: ftsResults.length,\n finalResultCount: results.length,\n },\n query: query.query,\n };\n }\n\n /**\n * Perform vector similarity search\n *\n * @param query - Text query\n * @param limit - Max results\n * @returns Vector search results with timing\n */\n private async performVectorSearch(\n query: string,\n limit: number\n ): Promise<{ results: SearchResult[]; durationMs: number }> {\n const startTime = Date.now();\n\n // Generate query embedding\n const embeddingResult = await this.embeddingService.embed(query);\n\n // Search vector store\n const results = await this.vectorStore.search({\n vector: Array.from(embeddingResult.embedding),\n k: limit,\n minScore: 0, // We'll filter by minScore after merge\n });\n\n return {\n results,\n durationMs: Date.now() - startTime,\n };\n }\n\n /**\n * Perform full-text search\n *\n * @param query - Text query\n * @param limit - Max results\n * @returns FTS results with timing\n */\n private async performFTSSearch(\n query: string,\n limit: number\n ): Promise<{ results: FTSResult[]; durationMs: number }> {\n const startTime = Date.now();\n\n if (!this.ftsProvider) {\n return { results: [], durationMs: Date.now() - startTime };\n }\n\n const results = await this.ftsProvider.search(query, limit);\n\n return {\n results,\n durationMs: Date.now() - startTime,\n };\n }\n\n /**\n * Merge vector and FTS results using weighted scoring\n *\n * @param vectorResults - Results from vector search\n * @param ftsResults - Results from FTS\n * @param vectorWeight - Weight for vector scores\n * @param ftsWeight - Weight for FTS scores\n * @returns Merged and ranked results\n */\n private mergeResults(\n vectorResults: SearchResult[],\n ftsResults: FTSResult[],\n vectorWeight: number,\n ftsWeight: number\n ): ExtendedHybridSearchResult[] {\n const combined = new Map<string, ExtendedHybridSearchResult>();\n\n // Normalize scores if configured\n const normalizedVector = this.config.normalizeScores\n ? this.normalizeScores(vectorResults.map((r) => ({ id: r.id, score: r.score })))\n : new Map(vectorResults.map((r) => [r.id, r.score]));\n\n const normalizedFTS = this.config.normalizeScores\n ? this.normalizeScores(\n ftsResults.map((r) => ({ id: r.id, score: r.score ?? 0.5 }))\n )\n : new Map(ftsResults.map((r) => [r.id, r.score ?? 0.5]));\n\n // Add vector results\n for (const result of vectorResults) {\n const vectorScore = normalizedVector.get(result.id) ?? 0;\n combined.set(result.id, {\n nodeId: result.id,\n content: (result.metadata?.content as string) ?? '',\n vectorScore,\n ftsScore: 0,\n combinedScore: vectorScore * vectorWeight,\n source: 'vector',\n rank: 0,\n metadata: result.metadata,\n });\n }\n\n // Merge FTS results\n for (const result of ftsResults) {\n const ftsScore = normalizedFTS.get(result.id) ?? 0;\n const existing = combined.get(result.id);\n\n if (existing) {\n // Result appears in both - apply hybrid boost\n existing.ftsScore = ftsScore;\n existing.combinedScore =\n (existing.vectorScore * vectorWeight + ftsScore * ftsWeight) *\n this.config.hybridBoost;\n existing.source = 'hybrid';\n existing.snippets = result.snippets;\n } else {\n // FTS-only result\n combined.set(result.id, {\n nodeId: result.id,\n content: result.content,\n vectorScore: 0,\n ftsScore,\n combinedScore: ftsScore * ftsWeight,\n source: 'fts',\n rank: 0,\n metadata: result.metadata,\n snippets: result.snippets,\n });\n }\n }\n\n // Sort by combined score and return\n return Array.from(combined.values()).sort(\n (a, b) => b.combinedScore - a.combinedScore\n );\n }\n\n /**\n * Normalize scores to 0-1 range\n *\n * @param items - Items with scores to normalize\n * @returns Map of id to normalized score\n */\n private normalizeScores(\n items: Array<{ id: string; score: number }>\n ): Map<string, number> {\n if (items.length === 0) {\n return new Map();\n }\n\n const scores = items.map((i) => i.score);\n const min = Math.min(...scores);\n const max = Math.max(...scores);\n const range = max - min;\n\n const result = new Map<string, number>();\n\n for (const item of items) {\n const normalized = range === 0 ? 1 : (item.score - min) / range;\n result.set(item.id, normalized);\n }\n\n return result;\n }\n\n /**\n * Update configuration\n *\n * @param config - Configuration updates\n */\n updateConfig(config: Partial<HybridSearchConfig>): void {\n this.config = { ...this.config, ...config };\n }\n\n /**\n * Get current configuration\n *\n * @returns Copy of current configuration\n */\n getConfig(): HybridSearchConfig {\n return { ...this.config };\n }\n}\n\n/**\n * Create a hybrid search instance\n *\n * Factory function for creating hybrid search services.\n *\n * @param vectorStore - Vector store for similarity search\n * @param embeddingService - Service for generating query embeddings\n * @param config - Optional configuration overrides\n * @returns New HybridSearch instance\n */\nexport function createHybridSearch(\n vectorStore: EnhancedVectorStore,\n embeddingService: EmbeddingService,\n config?: Partial<HybridSearchConfig>\n): HybridSearch {\n return new HybridSearch(vectorStore, embeddingService, config);\n}\n"],"names":[],"mappings":";AAee,aAAa,eAAe;"}
@@ -5,9 +5,13 @@
5
5
  * Includes:
6
6
  * - Vector store for HNSW-based similarity search
7
7
  * - Trajectory tracker for agent operation logging and self-learning
8
+ * - Embedding service for generating text embeddings
9
+ * - Hybrid search for combining vector and full-text search
8
10
  *
9
11
  * @module vector/services
10
12
  */
11
13
  export { EnhancedVectorStore, createVectorStore } from './vector-store.js';
12
14
  export { TrajectoryTracker, createTrajectoryTracker, type TrajectoryTrackerConfig, type DetectedPattern, } from './trajectory-tracker.js';
15
+ export { EmbeddingService, createEmbeddingService, getDefaultEmbeddingService, type EmbeddingConfig, type EmbeddingResult, type BatchEmbeddingResult, } from './embedding-service.js';
16
+ export { HybridSearch, createHybridSearch, type HybridSearchConfig, type FTSResult, type FTSProvider, type ExtendedHybridSearchResult, type HybridSearchQuery, type HybridSearchResponse, type SearchStats, } from './hybrid-search.js';
13
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vector/services/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vector/services/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weavelogic/knowledge-graph-agent",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "description": "Knowledge graph agent for Claude Code - generates knowledge graphs, initializes docs, and integrates with claude-flow",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -42,6 +42,7 @@
42
42
  "@tanstack/react-query": "^5.62.0",
43
43
  "@tanstack/react-table": "^8.20.0",
44
44
  "@typescript-eslint/typescript-estree": "^8.51.0",
45
+ "@xenova/transformers": "^2.17.2",
45
46
  "better-sqlite3": "^11.7.0",
46
47
  "chalk": "^5.3.0",
47
48
  "clsx": "^2.1.0",
@@ -99,5 +100,13 @@
99
100
  },
100
101
  "publishConfig": {
101
102
  "access": "public"
103
+ },
104
+ "peerDependencies": {
105
+ "agentic-flow": "^1.10.0"
106
+ },
107
+ "peerDependenciesMeta": {
108
+ "agentic-flow": {
109
+ "optional": true
110
+ }
102
111
  }
103
112
  }