moflo 4.8.19 → 4.8.20
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/.claude/guidance/shipped/moflo.md +45 -0
- package/.claude/helpers/statusline.cjs +1 -1
- package/.claude/workflow-state.json +9 -0
- package/package.json +2 -2
- package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +1 -1
- package/src/@claude-flow/cli/dist/src/services/agentic-flow-bridge.js +5 -3
- package/src/@claude-flow/cli/package.json +1 -1
- package/src/@claude-flow/memory/dist/agent-memory-scope.d.ts +131 -0
- package/src/@claude-flow/memory/dist/agent-memory-scope.js +223 -0
- package/src/@claude-flow/memory/dist/agent-memory-scope.test.d.ts +8 -0
- package/src/@claude-flow/memory/dist/agent-memory-scope.test.js +466 -0
- package/src/@claude-flow/memory/dist/agentdb-adapter.d.ts +165 -0
- package/src/@claude-flow/memory/dist/agentdb-adapter.js +806 -0
- package/src/@claude-flow/memory/dist/agentdb-backend.d.ts +212 -0
- package/src/@claude-flow/memory/dist/agentdb-backend.js +842 -0
- package/src/@claude-flow/memory/dist/agentdb-backend.test.d.ts +7 -0
- package/src/@claude-flow/memory/dist/agentdb-backend.test.js +258 -0
- package/src/@claude-flow/memory/dist/application/commands/delete-memory.command.d.ts +65 -0
- package/src/@claude-flow/memory/dist/application/commands/delete-memory.command.js +129 -0
- package/src/@claude-flow/memory/dist/application/commands/store-memory.command.d.ts +48 -0
- package/src/@claude-flow/memory/dist/application/commands/store-memory.command.js +72 -0
- package/src/@claude-flow/memory/dist/application/index.d.ts +12 -0
- package/src/@claude-flow/memory/dist/application/index.js +15 -0
- package/src/@claude-flow/memory/dist/application/queries/search-memory.query.d.ts +72 -0
- package/src/@claude-flow/memory/dist/application/queries/search-memory.query.js +143 -0
- package/src/@claude-flow/memory/dist/application/services/memory-application-service.d.ts +121 -0
- package/src/@claude-flow/memory/dist/application/services/memory-application-service.js +190 -0
- package/src/@claude-flow/memory/dist/auto-memory-bridge.d.ts +226 -0
- package/src/@claude-flow/memory/dist/auto-memory-bridge.js +709 -0
- package/src/@claude-flow/memory/dist/auto-memory-bridge.test.d.ts +8 -0
- package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +757 -0
- package/src/@claude-flow/memory/dist/benchmark.test.d.ts +2 -0
- package/src/@claude-flow/memory/dist/benchmark.test.js +277 -0
- package/src/@claude-flow/memory/dist/cache-manager.d.ts +134 -0
- package/src/@claude-flow/memory/dist/cache-manager.js +407 -0
- package/src/@claude-flow/memory/dist/controller-registry.d.ts +216 -0
- package/src/@claude-flow/memory/dist/controller-registry.js +893 -0
- package/src/@claude-flow/memory/dist/controller-registry.test.d.ts +14 -0
- package/src/@claude-flow/memory/dist/controller-registry.test.js +593 -0
- package/src/@claude-flow/memory/dist/database-provider.d.ts +87 -0
- package/src/@claude-flow/memory/dist/database-provider.js +372 -0
- package/src/@claude-flow/memory/dist/database-provider.test.d.ts +7 -0
- package/src/@claude-flow/memory/dist/database-provider.test.js +287 -0
- package/src/@claude-flow/memory/dist/domain/entities/memory-entry.d.ts +143 -0
- package/src/@claude-flow/memory/dist/domain/entities/memory-entry.js +226 -0
- package/src/@claude-flow/memory/dist/domain/index.d.ts +11 -0
- package/src/@claude-flow/memory/dist/domain/index.js +12 -0
- package/src/@claude-flow/memory/dist/domain/repositories/memory-repository.interface.d.ts +102 -0
- package/src/@claude-flow/memory/dist/domain/repositories/memory-repository.interface.js +11 -0
- package/src/@claude-flow/memory/dist/domain/services/memory-domain-service.d.ts +105 -0
- package/src/@claude-flow/memory/dist/domain/services/memory-domain-service.js +297 -0
- package/src/@claude-flow/memory/dist/hnsw-index.d.ts +111 -0
- package/src/@claude-flow/memory/dist/hnsw-index.js +781 -0
- package/src/@claude-flow/memory/dist/hnsw-lite.d.ts +23 -0
- package/src/@claude-flow/memory/dist/hnsw-lite.js +168 -0
- package/src/@claude-flow/memory/dist/index.d.ts +204 -0
- package/src/@claude-flow/memory/dist/index.js +358 -0
- package/src/@claude-flow/memory/dist/infrastructure/index.d.ts +17 -0
- package/src/@claude-flow/memory/dist/infrastructure/index.js +16 -0
- package/src/@claude-flow/memory/dist/infrastructure/repositories/hybrid-memory-repository.d.ts +66 -0
- package/src/@claude-flow/memory/dist/infrastructure/repositories/hybrid-memory-repository.js +409 -0
- package/src/@claude-flow/memory/dist/learning-bridge.d.ts +137 -0
- package/src/@claude-flow/memory/dist/learning-bridge.js +335 -0
- package/src/@claude-flow/memory/dist/learning-bridge.test.d.ts +8 -0
- package/src/@claude-flow/memory/dist/learning-bridge.test.js +578 -0
- package/src/@claude-flow/memory/dist/memory-graph.d.ts +100 -0
- package/src/@claude-flow/memory/dist/memory-graph.js +333 -0
- package/src/@claude-flow/memory/dist/memory-graph.test.d.ts +8 -0
- package/src/@claude-flow/memory/dist/memory-graph.test.js +609 -0
- package/src/@claude-flow/memory/dist/migration.d.ts +68 -0
- package/src/@claude-flow/memory/dist/migration.js +513 -0
- package/src/@claude-flow/memory/dist/persistent-sona.d.ts +144 -0
- package/src/@claude-flow/memory/dist/persistent-sona.js +332 -0
- package/src/@claude-flow/memory/dist/query-builder.d.ts +211 -0
- package/src/@claude-flow/memory/dist/query-builder.js +438 -0
- package/src/@claude-flow/memory/dist/rvf-backend.d.ts +51 -0
- package/src/@claude-flow/memory/dist/rvf-backend.js +481 -0
- package/src/@claude-flow/memory/dist/rvf-learning-store.d.ts +139 -0
- package/src/@claude-flow/memory/dist/rvf-learning-store.js +295 -0
- package/src/@claude-flow/memory/dist/rvf-migration.d.ts +45 -0
- package/src/@claude-flow/memory/dist/rvf-migration.js +234 -0
- package/src/@claude-flow/memory/dist/sqljs-backend.d.ts +127 -0
- package/src/@claude-flow/memory/dist/sqljs-backend.js +600 -0
- package/src/@claude-flow/memory/dist/types.d.ts +484 -0
- package/src/@claude-flow/memory/dist/types.js +58 -0
- package/src/@claude-flow/shared/dist/core/config/defaults.d.ts +41 -0
- package/src/@claude-flow/shared/dist/core/config/defaults.js +186 -0
- package/src/@claude-flow/shared/dist/core/config/index.d.ts +8 -0
- package/src/@claude-flow/shared/dist/core/config/index.js +12 -0
- package/src/@claude-flow/shared/dist/core/config/loader.d.ts +45 -0
- package/src/@claude-flow/shared/dist/core/config/loader.js +222 -0
- package/src/@claude-flow/shared/dist/core/config/schema.d.ts +1134 -0
- package/src/@claude-flow/shared/dist/core/config/schema.js +158 -0
- package/src/@claude-flow/shared/dist/core/config/validator.d.ts +92 -0
- package/src/@claude-flow/shared/dist/core/config/validator.js +147 -0
- package/src/@claude-flow/shared/dist/core/event-bus.d.ts +31 -0
- package/src/@claude-flow/shared/dist/core/event-bus.js +197 -0
- package/src/@claude-flow/shared/dist/core/index.d.ts +15 -0
- package/src/@claude-flow/shared/dist/core/index.js +19 -0
- package/src/@claude-flow/shared/dist/core/interfaces/agent.interface.d.ts +200 -0
- package/src/@claude-flow/shared/dist/core/interfaces/agent.interface.js +6 -0
- package/src/@claude-flow/shared/dist/core/interfaces/coordinator.interface.d.ts +310 -0
- package/src/@claude-flow/shared/dist/core/interfaces/coordinator.interface.js +7 -0
- package/src/@claude-flow/shared/dist/core/interfaces/event.interface.d.ts +224 -0
- package/src/@claude-flow/shared/dist/core/interfaces/event.interface.js +46 -0
- package/src/@claude-flow/shared/dist/core/interfaces/index.d.ts +10 -0
- package/src/@claude-flow/shared/dist/core/interfaces/index.js +15 -0
- package/src/@claude-flow/shared/dist/core/interfaces/memory.interface.d.ts +298 -0
- package/src/@claude-flow/shared/dist/core/interfaces/memory.interface.js +7 -0
- package/src/@claude-flow/shared/dist/core/interfaces/task.interface.d.ts +185 -0
- package/src/@claude-flow/shared/dist/core/interfaces/task.interface.js +6 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/event-coordinator.d.ts +35 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/event-coordinator.js +101 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/health-monitor.d.ts +60 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/health-monitor.js +166 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/index.d.ts +46 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/index.js +64 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/lifecycle-manager.d.ts +56 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/lifecycle-manager.js +195 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/session-manager.d.ts +83 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/session-manager.js +193 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/task-manager.d.ts +49 -0
- package/src/@claude-flow/shared/dist/core/orchestrator/task-manager.js +253 -0
- package/src/@claude-flow/shared/dist/events/domain-events.d.ts +282 -0
- package/src/@claude-flow/shared/dist/events/domain-events.js +165 -0
- package/src/@claude-flow/shared/dist/events/event-store.d.ts +126 -0
- package/src/@claude-flow/shared/dist/events/event-store.js +432 -0
- package/src/@claude-flow/shared/dist/events/event-store.test.d.ts +8 -0
- package/src/@claude-flow/shared/dist/events/event-store.test.js +297 -0
- package/src/@claude-flow/shared/dist/events/example-usage.d.ts +10 -0
- package/src/@claude-flow/shared/dist/events/example-usage.js +193 -0
- package/src/@claude-flow/shared/dist/events/index.d.ts +21 -0
- package/src/@claude-flow/shared/dist/events/index.js +22 -0
- package/src/@claude-flow/shared/dist/events/projections.d.ts +177 -0
- package/src/@claude-flow/shared/dist/events/projections.js +421 -0
- package/src/@claude-flow/shared/dist/events/rvf-event-log.d.ts +82 -0
- package/src/@claude-flow/shared/dist/events/rvf-event-log.js +340 -0
- package/src/@claude-flow/shared/dist/events/state-reconstructor.d.ts +101 -0
- package/src/@claude-flow/shared/dist/events/state-reconstructor.js +263 -0
- package/src/@claude-flow/shared/dist/events.d.ts +80 -0
- package/src/@claude-flow/shared/dist/events.js +249 -0
- package/src/@claude-flow/shared/dist/hooks/example-usage.d.ts +42 -0
- package/src/@claude-flow/shared/dist/hooks/example-usage.js +351 -0
- package/src/@claude-flow/shared/dist/hooks/executor.d.ts +100 -0
- package/src/@claude-flow/shared/dist/hooks/executor.js +267 -0
- package/src/@claude-flow/shared/dist/hooks/hooks.test.d.ts +9 -0
- package/src/@claude-flow/shared/dist/hooks/hooks.test.js +322 -0
- package/src/@claude-flow/shared/dist/hooks/index.d.ts +52 -0
- package/src/@claude-flow/shared/dist/hooks/index.js +51 -0
- package/src/@claude-flow/shared/dist/hooks/registry.d.ts +133 -0
- package/src/@claude-flow/shared/dist/hooks/registry.js +277 -0
- package/src/@claude-flow/shared/dist/hooks/safety/bash-safety.d.ts +105 -0
- package/src/@claude-flow/shared/dist/hooks/safety/bash-safety.js +481 -0
- package/src/@claude-flow/shared/dist/hooks/safety/file-organization.d.ts +144 -0
- package/src/@claude-flow/shared/dist/hooks/safety/file-organization.js +328 -0
- package/src/@claude-flow/shared/dist/hooks/safety/git-commit.d.ts +158 -0
- package/src/@claude-flow/shared/dist/hooks/safety/git-commit.js +450 -0
- package/src/@claude-flow/shared/dist/hooks/safety/index.d.ts +17 -0
- package/src/@claude-flow/shared/dist/hooks/safety/index.js +17 -0
- package/src/@claude-flow/shared/dist/hooks/session-hooks.d.ts +234 -0
- package/src/@claude-flow/shared/dist/hooks/session-hooks.js +334 -0
- package/src/@claude-flow/shared/dist/hooks/task-hooks.d.ts +163 -0
- package/src/@claude-flow/shared/dist/hooks/task-hooks.js +326 -0
- package/src/@claude-flow/shared/dist/hooks/types.d.ts +267 -0
- package/src/@claude-flow/shared/dist/hooks/types.js +62 -0
- package/src/@claude-flow/shared/dist/hooks/verify-exports.test.d.ts +9 -0
- package/src/@claude-flow/shared/dist/hooks/verify-exports.test.js +93 -0
- package/src/@claude-flow/shared/dist/index.d.ts +20 -0
- package/src/@claude-flow/shared/dist/index.js +50 -0
- package/src/@claude-flow/shared/dist/mcp/connection-pool.d.ts +98 -0
- package/src/@claude-flow/shared/dist/mcp/connection-pool.js +364 -0
- package/src/@claude-flow/shared/dist/mcp/index.d.ts +69 -0
- package/src/@claude-flow/shared/dist/mcp/index.js +84 -0
- package/src/@claude-flow/shared/dist/mcp/server.d.ts +166 -0
- package/src/@claude-flow/shared/dist/mcp/server.js +593 -0
- package/src/@claude-flow/shared/dist/mcp/session-manager.d.ts +136 -0
- package/src/@claude-flow/shared/dist/mcp/session-manager.js +335 -0
- package/src/@claude-flow/shared/dist/mcp/tool-registry.d.ts +178 -0
- package/src/@claude-flow/shared/dist/mcp/tool-registry.js +439 -0
- package/src/@claude-flow/shared/dist/mcp/transport/http.d.ts +104 -0
- package/src/@claude-flow/shared/dist/mcp/transport/http.js +476 -0
- package/src/@claude-flow/shared/dist/mcp/transport/index.d.ts +102 -0
- package/src/@claude-flow/shared/dist/mcp/transport/index.js +238 -0
- package/src/@claude-flow/shared/dist/mcp/transport/stdio.d.ts +104 -0
- package/src/@claude-flow/shared/dist/mcp/transport/stdio.js +263 -0
- package/src/@claude-flow/shared/dist/mcp/transport/websocket.d.ts +133 -0
- package/src/@claude-flow/shared/dist/mcp/transport/websocket.js +396 -0
- package/src/@claude-flow/shared/dist/mcp/types.d.ts +438 -0
- package/src/@claude-flow/shared/dist/mcp/types.js +54 -0
- package/src/@claude-flow/shared/dist/plugin-interface.d.ts +544 -0
- package/src/@claude-flow/shared/dist/plugin-interface.js +23 -0
- package/src/@claude-flow/shared/dist/plugin-loader.d.ts +139 -0
- package/src/@claude-flow/shared/dist/plugin-loader.js +434 -0
- package/src/@claude-flow/shared/dist/plugin-registry.d.ts +183 -0
- package/src/@claude-flow/shared/dist/plugin-registry.js +457 -0
- package/src/@claude-flow/shared/dist/plugins/index.d.ts +10 -0
- package/src/@claude-flow/shared/dist/plugins/index.js +10 -0
- package/src/@claude-flow/shared/dist/plugins/official/hive-mind-plugin.d.ts +106 -0
- package/src/@claude-flow/shared/dist/plugins/official/hive-mind-plugin.js +241 -0
- package/src/@claude-flow/shared/dist/plugins/official/index.d.ts +10 -0
- package/src/@claude-flow/shared/dist/plugins/official/index.js +10 -0
- package/src/@claude-flow/shared/dist/plugins/official/maestro-plugin.d.ts +121 -0
- package/src/@claude-flow/shared/dist/plugins/official/maestro-plugin.js +355 -0
- package/src/@claude-flow/shared/dist/plugins/types.d.ts +93 -0
- package/src/@claude-flow/shared/dist/plugins/types.js +9 -0
- package/src/@claude-flow/shared/dist/resilience/bulkhead.d.ts +105 -0
- package/src/@claude-flow/shared/dist/resilience/bulkhead.js +206 -0
- package/src/@claude-flow/shared/dist/resilience/circuit-breaker.d.ts +132 -0
- package/src/@claude-flow/shared/dist/resilience/circuit-breaker.js +233 -0
- package/src/@claude-flow/shared/dist/resilience/index.d.ts +19 -0
- package/src/@claude-flow/shared/dist/resilience/index.js +19 -0
- package/src/@claude-flow/shared/dist/resilience/rate-limiter.d.ts +168 -0
- package/src/@claude-flow/shared/dist/resilience/rate-limiter.js +314 -0
- package/src/@claude-flow/shared/dist/resilience/retry.d.ts +91 -0
- package/src/@claude-flow/shared/dist/resilience/retry.js +159 -0
- package/src/@claude-flow/shared/dist/security/index.d.ts +10 -0
- package/src/@claude-flow/shared/dist/security/index.js +12 -0
- package/src/@claude-flow/shared/dist/security/input-validation.d.ts +73 -0
- package/src/@claude-flow/shared/dist/security/input-validation.js +201 -0
- package/src/@claude-flow/shared/dist/security/secure-random.d.ts +92 -0
- package/src/@claude-flow/shared/dist/security/secure-random.js +142 -0
- package/src/@claude-flow/shared/dist/services/index.d.ts +7 -0
- package/src/@claude-flow/shared/dist/services/index.js +7 -0
- package/src/@claude-flow/shared/dist/services/v3-progress.service.d.ts +124 -0
- package/src/@claude-flow/shared/dist/services/v3-progress.service.js +402 -0
- package/src/@claude-flow/shared/dist/types/agent.types.d.ts +137 -0
- package/src/@claude-flow/shared/dist/types/agent.types.js +6 -0
- package/src/@claude-flow/shared/dist/types/index.d.ts +11 -0
- package/src/@claude-flow/shared/dist/types/index.js +17 -0
- package/src/@claude-flow/shared/dist/types/mcp.types.d.ts +266 -0
- package/src/@claude-flow/shared/dist/types/mcp.types.js +7 -0
- package/src/@claude-flow/shared/dist/types/memory.types.d.ts +236 -0
- package/src/@claude-flow/shared/dist/types/memory.types.js +7 -0
- package/src/@claude-flow/shared/dist/types/swarm.types.d.ts +186 -0
- package/src/@claude-flow/shared/dist/types/swarm.types.js +65 -0
- package/src/@claude-flow/shared/dist/types/task.types.d.ts +178 -0
- package/src/@claude-flow/shared/dist/types/task.types.js +32 -0
- package/src/@claude-flow/shared/dist/types.d.ts +197 -0
- package/src/@claude-flow/shared/dist/types.js +21 -0
- package/src/@claude-flow/shared/dist/utils/secure-logger.d.ts +69 -0
- package/src/@claude-flow/shared/dist/utils/secure-logger.js +208 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface HnswSearchResult {
|
|
2
|
+
id: string;
|
|
3
|
+
score: number;
|
|
4
|
+
}
|
|
5
|
+
export declare class HnswLite {
|
|
6
|
+
private vectors;
|
|
7
|
+
private neighbors;
|
|
8
|
+
private readonly dimensions;
|
|
9
|
+
private readonly maxNeighbors;
|
|
10
|
+
private readonly efConstruction;
|
|
11
|
+
private readonly metric;
|
|
12
|
+
constructor(dimensions: number, m: number, efConstruction: number, metric: string);
|
|
13
|
+
get size(): number;
|
|
14
|
+
add(id: string, vector: Float32Array): void;
|
|
15
|
+
remove(id: string): void;
|
|
16
|
+
search(query: Float32Array, k: number, threshold?: number): HnswSearchResult[];
|
|
17
|
+
private bruteForce;
|
|
18
|
+
private findNearest;
|
|
19
|
+
private pruneNeighbors;
|
|
20
|
+
private similarity;
|
|
21
|
+
}
|
|
22
|
+
export declare function cosineSimilarity(a: Float32Array, b: Float32Array): number;
|
|
23
|
+
//# sourceMappingURL=hnsw-lite.d.ts.map
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
export class HnswLite {
|
|
2
|
+
vectors = new Map();
|
|
3
|
+
neighbors = new Map();
|
|
4
|
+
dimensions;
|
|
5
|
+
maxNeighbors;
|
|
6
|
+
efConstruction;
|
|
7
|
+
metric;
|
|
8
|
+
constructor(dimensions, m, efConstruction, metric) {
|
|
9
|
+
this.dimensions = dimensions;
|
|
10
|
+
this.maxNeighbors = m;
|
|
11
|
+
this.efConstruction = efConstruction;
|
|
12
|
+
this.metric = metric;
|
|
13
|
+
}
|
|
14
|
+
get size() {
|
|
15
|
+
return this.vectors.size;
|
|
16
|
+
}
|
|
17
|
+
add(id, vector) {
|
|
18
|
+
this.vectors.set(id, vector);
|
|
19
|
+
if (this.vectors.size === 1) {
|
|
20
|
+
this.neighbors.set(id, new Set());
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const nearest = this.findNearest(vector, this.maxNeighbors);
|
|
24
|
+
const neighborSet = new Set();
|
|
25
|
+
for (const n of nearest) {
|
|
26
|
+
neighborSet.add(n.id);
|
|
27
|
+
const nNeighbors = this.neighbors.get(n.id);
|
|
28
|
+
if (nNeighbors) {
|
|
29
|
+
nNeighbors.add(id);
|
|
30
|
+
if (nNeighbors.size > this.maxNeighbors * 2) {
|
|
31
|
+
this.pruneNeighbors(n.id);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
this.neighbors.set(id, neighborSet);
|
|
36
|
+
}
|
|
37
|
+
remove(id) {
|
|
38
|
+
this.vectors.delete(id);
|
|
39
|
+
const myNeighbors = this.neighbors.get(id);
|
|
40
|
+
if (myNeighbors) {
|
|
41
|
+
for (const nId of myNeighbors) {
|
|
42
|
+
this.neighbors.get(nId)?.delete(id);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
this.neighbors.delete(id);
|
|
46
|
+
}
|
|
47
|
+
search(query, k, threshold) {
|
|
48
|
+
if (this.vectors.size === 0)
|
|
49
|
+
return [];
|
|
50
|
+
if (this.vectors.size <= k * 2) {
|
|
51
|
+
return this.bruteForce(query, k, threshold);
|
|
52
|
+
}
|
|
53
|
+
const visited = new Set();
|
|
54
|
+
const candidates = [];
|
|
55
|
+
let entryId;
|
|
56
|
+
let bestScore = -1;
|
|
57
|
+
for (const [id] of this.vectors) {
|
|
58
|
+
const score = this.similarity(query, this.vectors.get(id));
|
|
59
|
+
if (score > bestScore) {
|
|
60
|
+
bestScore = score;
|
|
61
|
+
entryId = id;
|
|
62
|
+
}
|
|
63
|
+
if (visited.size >= Math.min(this.efConstruction, this.vectors.size))
|
|
64
|
+
break;
|
|
65
|
+
visited.add(id);
|
|
66
|
+
candidates.push({ id, score });
|
|
67
|
+
}
|
|
68
|
+
if (entryId) {
|
|
69
|
+
const queue = [entryId];
|
|
70
|
+
let idx = 0;
|
|
71
|
+
while (idx < queue.length && visited.size < this.efConstruction * 2) {
|
|
72
|
+
const currentId = queue[idx++];
|
|
73
|
+
const currentNeighbors = this.neighbors.get(currentId);
|
|
74
|
+
if (!currentNeighbors)
|
|
75
|
+
continue;
|
|
76
|
+
for (const nId of currentNeighbors) {
|
|
77
|
+
if (visited.has(nId))
|
|
78
|
+
continue;
|
|
79
|
+
visited.add(nId);
|
|
80
|
+
const vec = this.vectors.get(nId);
|
|
81
|
+
if (!vec)
|
|
82
|
+
continue;
|
|
83
|
+
const score = this.similarity(query, vec);
|
|
84
|
+
candidates.push({ id: nId, score });
|
|
85
|
+
queue.push(nId);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
candidates.sort((a, b) => b.score - a.score);
|
|
90
|
+
let filtered = candidates;
|
|
91
|
+
if (threshold !== undefined) {
|
|
92
|
+
filtered = filtered.filter(c => c.score >= threshold);
|
|
93
|
+
}
|
|
94
|
+
return filtered.slice(0, k);
|
|
95
|
+
}
|
|
96
|
+
bruteForce(query, k, threshold) {
|
|
97
|
+
const results = [];
|
|
98
|
+
for (const [id, vec] of this.vectors) {
|
|
99
|
+
const score = this.similarity(query, vec);
|
|
100
|
+
if (threshold !== undefined && score < threshold)
|
|
101
|
+
continue;
|
|
102
|
+
results.push({ id, score });
|
|
103
|
+
}
|
|
104
|
+
results.sort((a, b) => b.score - a.score);
|
|
105
|
+
return results.slice(0, k);
|
|
106
|
+
}
|
|
107
|
+
findNearest(query, k) {
|
|
108
|
+
return this.bruteForce(query, k);
|
|
109
|
+
}
|
|
110
|
+
pruneNeighbors(id) {
|
|
111
|
+
const myNeighbors = this.neighbors.get(id);
|
|
112
|
+
if (!myNeighbors)
|
|
113
|
+
return;
|
|
114
|
+
const vec = this.vectors.get(id);
|
|
115
|
+
if (!vec)
|
|
116
|
+
return;
|
|
117
|
+
const scored = [];
|
|
118
|
+
for (const nId of myNeighbors) {
|
|
119
|
+
const nVec = this.vectors.get(nId);
|
|
120
|
+
if (!nVec)
|
|
121
|
+
continue;
|
|
122
|
+
scored.push({ id: nId, score: this.similarity(vec, nVec) });
|
|
123
|
+
}
|
|
124
|
+
scored.sort((a, b) => b.score - a.score);
|
|
125
|
+
const keep = new Set(scored.slice(0, this.maxNeighbors).map(s => s.id));
|
|
126
|
+
for (const nId of myNeighbors) {
|
|
127
|
+
if (!keep.has(nId)) {
|
|
128
|
+
myNeighbors.delete(nId);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
similarity(a, b) {
|
|
133
|
+
if (this.metric === 'dot')
|
|
134
|
+
return dotProduct(a, b);
|
|
135
|
+
if (this.metric === 'euclidean')
|
|
136
|
+
return 1 / (1 + euclideanDistance(a, b));
|
|
137
|
+
return cosineSimilarity(a, b);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
export function cosineSimilarity(a, b) {
|
|
141
|
+
let dot = 0;
|
|
142
|
+
let normA = 0;
|
|
143
|
+
let normB = 0;
|
|
144
|
+
for (let i = 0; i < a.length; i++) {
|
|
145
|
+
dot += a[i] * b[i];
|
|
146
|
+
normA += a[i] * a[i];
|
|
147
|
+
normB += b[i] * b[i];
|
|
148
|
+
}
|
|
149
|
+
if (normA === 0 || normB === 0)
|
|
150
|
+
return 0;
|
|
151
|
+
return dot / (Math.sqrt(normA) * Math.sqrt(normB));
|
|
152
|
+
}
|
|
153
|
+
function dotProduct(a, b) {
|
|
154
|
+
let sum = 0;
|
|
155
|
+
for (let i = 0; i < a.length; i++) {
|
|
156
|
+
sum += a[i] * b[i];
|
|
157
|
+
}
|
|
158
|
+
return sum;
|
|
159
|
+
}
|
|
160
|
+
function euclideanDistance(a, b) {
|
|
161
|
+
let sum = 0;
|
|
162
|
+
for (let i = 0; i < a.length; i++) {
|
|
163
|
+
const d = a[i] - b[i];
|
|
164
|
+
sum += d * d;
|
|
165
|
+
}
|
|
166
|
+
return Math.sqrt(sum);
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=hnsw-lite.js.map
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/memory - V3 Unified Memory System
|
|
3
|
+
*
|
|
4
|
+
* Provides a unified memory interface backed by AgentDB with HNSW indexing
|
|
5
|
+
* for 150x-12,500x faster vector search compared to brute-force approaches.
|
|
6
|
+
*
|
|
7
|
+
* @module @claude-flow/memory
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { UnifiedMemoryService, query, QueryTemplates } from '@claude-flow/memory';
|
|
12
|
+
*
|
|
13
|
+
* // Initialize the memory service
|
|
14
|
+
* const memory = new UnifiedMemoryService({
|
|
15
|
+
* dimensions: 1536,
|
|
16
|
+
* cacheEnabled: true,
|
|
17
|
+
* embeddingGenerator: async (text) => embeddings.embed(text),
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* await memory.initialize();
|
|
21
|
+
*
|
|
22
|
+
* // Store entries
|
|
23
|
+
* await memory.store({
|
|
24
|
+
* key: 'auth-patterns',
|
|
25
|
+
* content: 'OAuth 2.0 implementation patterns for secure authentication',
|
|
26
|
+
* tags: ['auth', 'security', 'patterns'],
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* // Semantic search
|
|
30
|
+
* const results = await memory.semanticSearch('user authentication best practices', 5);
|
|
31
|
+
*
|
|
32
|
+
* // Query with fluent builder
|
|
33
|
+
* const entries = await memory.query(
|
|
34
|
+
* query()
|
|
35
|
+
* .semantic('security vulnerabilities')
|
|
36
|
+
* .inNamespace('security')
|
|
37
|
+
* .withTags(['critical'])
|
|
38
|
+
* .threshold(0.8)
|
|
39
|
+
* .limit(10)
|
|
40
|
+
* .build()
|
|
41
|
+
* );
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export type { MemoryType, AccessLevel, ConsistencyLevel, DistanceMetric, MemoryEntry, MemoryEntryInput, MemoryEntryUpdate, QueryType, MemoryQuery, SearchResult, SearchOptions, HNSWConfig, HNSWStats, QuantizationConfig, IMemoryBackend, BackendStats, HealthCheckResult, ComponentHealth, CacheConfig, CacheStats, CachedEntry, MigrationSource, MigrationConfig, MigrationProgress, MigrationResult, MigrationError, MemoryEventType, MemoryEvent, MemoryEventHandler, SONAMode, LearningPattern, EmbeddingGenerator, } from './types.js';
|
|
45
|
+
export { generateMemoryId, createDefaultEntry, PERFORMANCE_TARGETS, } from './types.js';
|
|
46
|
+
export { AutoMemoryBridge, resolveAutoMemoryDir, findGitRoot } from './auto-memory-bridge.js';
|
|
47
|
+
export type { AutoMemoryBridgeConfig, MemoryInsight, InsightCategory, SyncDirection, SyncMode, PruneStrategy, SyncResult, ImportResult, } from './auto-memory-bridge.js';
|
|
48
|
+
export { LearningBridge } from './learning-bridge.js';
|
|
49
|
+
export type { LearningBridgeConfig, LearningStats, ConsolidateResult, PatternMatch, } from './learning-bridge.js';
|
|
50
|
+
export { RvfLearningStore } from './rvf-learning-store.js';
|
|
51
|
+
export type { RvfLearningStoreConfig, PatternRecord, LoraRecord, EwcRecord, TrajectoryRecord, } from './rvf-learning-store.js';
|
|
52
|
+
export { PersistentSonaCoordinator } from './persistent-sona.js';
|
|
53
|
+
export type { PersistentSonaConfig } from './persistent-sona.js';
|
|
54
|
+
export { RvfMigrator } from './rvf-migration.js';
|
|
55
|
+
export type { RvfMigrationOptions, RvfMigrationResult } from './rvf-migration.js';
|
|
56
|
+
export { MemoryGraph } from './memory-graph.js';
|
|
57
|
+
export type { MemoryGraphConfig, GraphNode, GraphEdge, GraphStats, RankedResult, EdgeType, } from './memory-graph.js';
|
|
58
|
+
export { resolveAgentMemoryDir, createAgentBridge, transferKnowledge, listAgentScopes, } from './agent-memory-scope.js';
|
|
59
|
+
export type { AgentMemoryScope, AgentScopedConfig, TransferOptions, TransferResult, } from './agent-memory-scope.js';
|
|
60
|
+
export { ControllerRegistry, INIT_LEVELS } from './controller-registry.js';
|
|
61
|
+
export type { AgentDBControllerName, CLIControllerName, ControllerName, InitLevel, ControllerHealth, RegistryHealthReport, RuntimeConfig, } from './controller-registry.js';
|
|
62
|
+
export { AgentDBAdapter } from './agentdb-adapter.js';
|
|
63
|
+
export type { AgentDBAdapterConfig } from './agentdb-adapter.js';
|
|
64
|
+
export { AgentDBBackend } from './agentdb-backend.js';
|
|
65
|
+
export type { AgentDBBackendConfig } from './agentdb-backend.js';
|
|
66
|
+
export { SqlJsBackend } from './sqljs-backend.js';
|
|
67
|
+
export type { SqlJsBackendConfig } from './sqljs-backend.js';
|
|
68
|
+
export { RvfBackend } from './rvf-backend.js';
|
|
69
|
+
export type { RvfBackendConfig } from './rvf-backend.js';
|
|
70
|
+
export { HnswLite, cosineSimilarity } from './hnsw-lite.js';
|
|
71
|
+
export type { HnswSearchResult } from './hnsw-lite.js';
|
|
72
|
+
export { HNSWIndex } from './hnsw-index.js';
|
|
73
|
+
export { CacheManager, TieredCacheManager } from './cache-manager.js';
|
|
74
|
+
export { QueryBuilder, query, QueryTemplates } from './query-builder.js';
|
|
75
|
+
export type { SortDirection, SortField } from './query-builder.js';
|
|
76
|
+
export { MemoryMigrator, createMigrator, migrateMultipleSources } from './migration.js';
|
|
77
|
+
export { createDatabase, getPlatformInfo, getAvailableProviders } from './database-provider.js';
|
|
78
|
+
export type { DatabaseProvider, DatabaseOptions } from './database-provider.js';
|
|
79
|
+
import { EventEmitter } from 'node:events';
|
|
80
|
+
import { IMemoryBackend, MemoryEntry, MemoryEntryInput, MemoryEntryUpdate, MemoryQuery, SearchResult, SearchOptions, BackendStats, HealthCheckResult, EmbeddingGenerator, MigrationSource, MigrationConfig, MigrationResult } from './types.js';
|
|
81
|
+
import { AgentDBAdapter, AgentDBAdapterConfig } from './agentdb-adapter.js';
|
|
82
|
+
/**
|
|
83
|
+
* Configuration for UnifiedMemoryService
|
|
84
|
+
*/
|
|
85
|
+
export interface UnifiedMemoryServiceConfig extends Partial<AgentDBAdapterConfig> {
|
|
86
|
+
/** Enable automatic embedding generation */
|
|
87
|
+
autoEmbed?: boolean;
|
|
88
|
+
/** Default embedding dimensions */
|
|
89
|
+
dimensions?: number;
|
|
90
|
+
/** Embedding generator function */
|
|
91
|
+
embeddingGenerator?: EmbeddingGenerator;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Unified Memory Service
|
|
95
|
+
*
|
|
96
|
+
* High-level interface for the V3 memory system that provides:
|
|
97
|
+
* - Simple API for common operations
|
|
98
|
+
* - Automatic embedding generation
|
|
99
|
+
* - Cross-agent memory sharing
|
|
100
|
+
* - SONA integration for learning
|
|
101
|
+
* - Event-driven notifications
|
|
102
|
+
* - Performance monitoring
|
|
103
|
+
*/
|
|
104
|
+
export declare class UnifiedMemoryService extends EventEmitter implements IMemoryBackend {
|
|
105
|
+
private adapter;
|
|
106
|
+
private config;
|
|
107
|
+
private initialized;
|
|
108
|
+
constructor(config?: UnifiedMemoryServiceConfig);
|
|
109
|
+
initialize(): Promise<void>;
|
|
110
|
+
shutdown(): Promise<void>;
|
|
111
|
+
store(entry: MemoryEntry): Promise<void>;
|
|
112
|
+
get(id: string): Promise<MemoryEntry | null>;
|
|
113
|
+
getByKey(namespace: string, key: string): Promise<MemoryEntry | null>;
|
|
114
|
+
update(id: string, update: MemoryEntryUpdate): Promise<MemoryEntry | null>;
|
|
115
|
+
delete(id: string): Promise<boolean>;
|
|
116
|
+
query(query: MemoryQuery): Promise<MemoryEntry[]>;
|
|
117
|
+
search(embedding: Float32Array, options: SearchOptions): Promise<SearchResult[]>;
|
|
118
|
+
bulkInsert(entries: MemoryEntry[]): Promise<void>;
|
|
119
|
+
bulkDelete(ids: string[]): Promise<number>;
|
|
120
|
+
count(namespace?: string): Promise<number>;
|
|
121
|
+
listNamespaces(): Promise<string[]>;
|
|
122
|
+
clearNamespace(namespace: string): Promise<number>;
|
|
123
|
+
getStats(): Promise<BackendStats>;
|
|
124
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
125
|
+
/**
|
|
126
|
+
* Store an entry from simple input
|
|
127
|
+
*/
|
|
128
|
+
storeEntry(input: MemoryEntryInput): Promise<MemoryEntry>;
|
|
129
|
+
/**
|
|
130
|
+
* Semantic search by content string
|
|
131
|
+
*/
|
|
132
|
+
semanticSearch(content: string, k?: number, threshold?: number): Promise<SearchResult[]>;
|
|
133
|
+
/**
|
|
134
|
+
* Find similar entries to a given entry
|
|
135
|
+
*/
|
|
136
|
+
findSimilar(id: string, k?: number): Promise<SearchResult[]>;
|
|
137
|
+
/**
|
|
138
|
+
* Get or create an entry
|
|
139
|
+
*/
|
|
140
|
+
getOrCreate(namespace: string, key: string, creator: () => MemoryEntryInput | Promise<MemoryEntryInput>): Promise<MemoryEntry>;
|
|
141
|
+
/**
|
|
142
|
+
* Append content to an existing entry
|
|
143
|
+
*/
|
|
144
|
+
appendContent(id: string, content: string): Promise<MemoryEntry | null>;
|
|
145
|
+
/**
|
|
146
|
+
* Add tags to an existing entry
|
|
147
|
+
*/
|
|
148
|
+
addTags(id: string, tags: string[]): Promise<MemoryEntry | null>;
|
|
149
|
+
/**
|
|
150
|
+
* Remove tags from an existing entry
|
|
151
|
+
*/
|
|
152
|
+
removeTags(id: string, tags: string[]): Promise<MemoryEntry | null>;
|
|
153
|
+
/**
|
|
154
|
+
* Migrate from a legacy memory source
|
|
155
|
+
*/
|
|
156
|
+
migrateFrom(source: MigrationSource, sourcePath: string, options?: Partial<MigrationConfig>): Promise<MigrationResult>;
|
|
157
|
+
/**
|
|
158
|
+
* Share an entry with another agent
|
|
159
|
+
*/
|
|
160
|
+
shareWith(id: string, agentId: string): Promise<MemoryEntry | null>;
|
|
161
|
+
/**
|
|
162
|
+
* Get entries shared with a specific agent
|
|
163
|
+
*/
|
|
164
|
+
getSharedWith(agentId: string): Promise<MemoryEntry[]>;
|
|
165
|
+
/**
|
|
166
|
+
* Get the underlying adapter for advanced operations
|
|
167
|
+
*/
|
|
168
|
+
getAdapter(): AgentDBAdapter;
|
|
169
|
+
/**
|
|
170
|
+
* Check if the service is initialized
|
|
171
|
+
*/
|
|
172
|
+
isInitialized(): boolean;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Create a simple in-memory service (for testing)
|
|
176
|
+
*/
|
|
177
|
+
export declare function createInMemoryService(): UnifiedMemoryService;
|
|
178
|
+
/**
|
|
179
|
+
* Create a persistent memory service
|
|
180
|
+
*/
|
|
181
|
+
export declare function createPersistentService(path: string): UnifiedMemoryService;
|
|
182
|
+
/**
|
|
183
|
+
* Create a memory service with embedding support
|
|
184
|
+
*/
|
|
185
|
+
export declare function createEmbeddingService(embeddingGenerator: EmbeddingGenerator, dimensions?: number): UnifiedMemoryService;
|
|
186
|
+
/**
|
|
187
|
+
* Create a hybrid memory service (SQLite + AgentDB)
|
|
188
|
+
* This is the DEFAULT recommended configuration per ADR-009
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```typescript
|
|
192
|
+
* const memory = createHybridService('./data/memory.db', embeddingFn);
|
|
193
|
+
* await memory.initialize();
|
|
194
|
+
*
|
|
195
|
+
* // Structured queries go to SQLite
|
|
196
|
+
* const user = await memory.getByKey('users', 'john@example.com');
|
|
197
|
+
*
|
|
198
|
+
* // Semantic queries go to AgentDB
|
|
199
|
+
* const similar = await memory.semanticSearch('authentication patterns', 10);
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
202
|
+
export declare function createHybridService(databasePath: string, embeddingGenerator: EmbeddingGenerator, dimensions?: number): UnifiedMemoryService;
|
|
203
|
+
export default UnifiedMemoryService;
|
|
204
|
+
//# sourceMappingURL=index.d.ts.map
|