@mrc2204/agent-smart-memo 4.1.3 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +445 -141
- package/dist/adapters/openclaw/tool-runtime.d.ts +29 -0
- package/dist/adapters/openclaw/tool-runtime.d.ts.map +1 -0
- package/dist/adapters/openclaw/tool-runtime.js +48 -0
- package/dist/adapters/openclaw/tool-runtime.js.map +1 -0
- package/dist/commands/telegram-addproject-command.d.ts +33 -0
- package/dist/commands/telegram-addproject-command.d.ts.map +1 -0
- package/dist/commands/telegram-addproject-command.js +208 -0
- package/dist/commands/telegram-addproject-command.js.map +1 -0
- package/dist/core/contracts/adapter-contracts.d.ts +31 -0
- package/dist/core/contracts/adapter-contracts.d.ts.map +1 -0
- package/dist/core/contracts/adapter-contracts.js +2 -0
- package/dist/core/contracts/adapter-contracts.js.map +1 -0
- package/dist/core/runtime-boundary.d.ts +23 -0
- package/dist/core/runtime-boundary.d.ts.map +1 -0
- package/dist/core/runtime-boundary.js +39 -0
- package/dist/core/runtime-boundary.js.map +1 -0
- package/dist/core/usecases/default-memory-usecase-port.d.ts +54 -0
- package/dist/core/usecases/default-memory-usecase-port.d.ts.map +1 -0
- package/dist/core/usecases/default-memory-usecase-port.js +1139 -0
- package/dist/core/usecases/default-memory-usecase-port.js.map +1 -0
- package/dist/core/usecases/semantic-memory-usecase.d.ts +52 -0
- package/dist/core/usecases/semantic-memory-usecase.d.ts.map +1 -0
- package/dist/core/usecases/semantic-memory-usecase.js +136 -0
- package/dist/core/usecases/semantic-memory-usecase.js.map +1 -0
- package/dist/db/slot-db.d.ts +293 -0
- package/dist/db/slot-db.d.ts.map +1 -1
- package/dist/db/slot-db.js +1272 -0
- package/dist/db/slot-db.js.map +1 -1
- package/dist/index.d.ts +537 -64
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +239 -99
- package/dist/index.js.map +1 -1
- package/dist/services/qdrant.d.ts.map +1 -1
- package/dist/services/qdrant.js +17 -0
- package/dist/services/qdrant.js.map +1 -1
- package/dist/tools/graph-tools.d.ts +2 -0
- package/dist/tools/graph-tools.d.ts.map +1 -1
- package/dist/tools/graph-tools.js +126 -177
- package/dist/tools/graph-tools.js.map +1 -1
- package/dist/tools/project-tools.d.ts +8 -0
- package/dist/tools/project-tools.d.ts.map +1 -0
- package/dist/tools/project-tools.js +649 -0
- package/dist/tools/project-tools.js.map +1 -0
- package/dist/tools/semantic-memory-tools.d.ts +8 -0
- package/dist/tools/semantic-memory-tools.d.ts.map +1 -0
- package/dist/tools/semantic-memory-tools.js +111 -0
- package/dist/tools/semantic-memory-tools.js.map +1 -0
- package/dist/tools/slot-tools.d.ts +3 -1
- package/dist/tools/slot-tools.d.ts.map +1 -1
- package/dist/tools/slot-tools.js +82 -156
- package/dist/tools/slot-tools.js.map +1 -1
- package/openclaw.plugin.json +22 -2
- package/package.json +25 -32
- package/dist/config.d.ts +0 -62
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -102
- package/dist/config.js.map +0 -1
- package/dist/scripts/reembed-collection.d.ts +0 -2
- package/dist/scripts/reembed-collection.d.ts.map +0 -1
- package/dist/scripts/reembed-collection.js +0 -165
- package/dist/scripts/reembed-collection.js.map +0 -1
- package/dist/tools/memory_search.d.ts +0 -89
- package/dist/tools/memory_search.d.ts.map +0 -1
- package/dist/tools/memory_search.js +0 -188
- package/dist/tools/memory_search.js.map +0 -1
- package/dist/tools/memory_store.d.ts +0 -65
- package/dist/tools/memory_store.d.ts.map +0 -1
- package/dist/tools/memory_store.js +0 -196
- package/dist/tools/memory_store.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,36 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrc2204/agent-smart-memo",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.1",
|
|
4
4
|
"description": "Smart Memory Plugin for OpenClaw — structured slot memory with auto-capture, auto-recall, essence distillation, and Qdrant vector search",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"./dist/index.js"
|
|
10
|
-
]
|
|
11
|
-
},
|
|
12
|
-
"scripts": {
|
|
13
|
-
"build": "tsc",
|
|
14
|
-
"test": "npx tsx tests/test.ts && npx tsx tests/test-auto-recall.ts && npx tsx tests/test-memory-config.ts",
|
|
15
|
-
"clean": "rm -rf dist",
|
|
16
|
-
"migrate:namespaces": "npx tsx scripts/migrate-namespaces.ts",
|
|
17
|
-
"distill:namespaces": "npx tsx scripts/distill-by-namespace.ts",
|
|
18
|
-
"validate:ab": "npx tsx scripts/validate-ab.ts"
|
|
19
|
-
},
|
|
20
|
-
"dependencies": {
|
|
21
|
-
"dotenv": "^17.3.1"
|
|
22
|
-
},
|
|
23
|
-
"devDependencies": {
|
|
24
|
-
"@sinclair/typebox": "^0.34.0",
|
|
25
|
-
"@types/node": "^22.0.0",
|
|
26
|
-
"openclaw": "*",
|
|
27
|
-
"typescript": "^5.0.0"
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./dist/index.js"
|
|
28
9
|
},
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"files": [
|
|
12
|
+
"dist/",
|
|
13
|
+
"README.md",
|
|
14
|
+
"LICENSE",
|
|
15
|
+
"CONFIG.example.json",
|
|
16
|
+
"openclaw.plugin.json"
|
|
17
|
+
],
|
|
29
18
|
"license": "MIT",
|
|
19
|
+
"author": "mrc2204",
|
|
30
20
|
"repository": {
|
|
31
21
|
"type": "git",
|
|
32
22
|
"url": "git+https://github.com/cong91/agent-smart-memo.git"
|
|
33
23
|
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
},
|
|
34
27
|
"keywords": [
|
|
35
28
|
"openclaw",
|
|
36
29
|
"plugin",
|
|
@@ -41,15 +34,15 @@
|
|
|
41
34
|
"qdrant",
|
|
42
35
|
"auto-capture"
|
|
43
36
|
],
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
"access": "public"
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"dotenv": "^17.3.1"
|
|
47
39
|
},
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
40
|
+
"openclaw": {
|
|
41
|
+
"extensions": [
|
|
42
|
+
"./dist/index.js"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"openclaw": "*"
|
|
47
|
+
}
|
|
55
48
|
}
|
package/dist/config.d.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration loader for Agent-Memo Plugin
|
|
3
|
-
* Reads from environment variables or .env file
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Plugin configuration object
|
|
7
|
-
* All values read from environment variables with sensible defaults
|
|
8
|
-
*/
|
|
9
|
-
export declare const PluginConfig: {
|
|
10
|
-
qdrant: {
|
|
11
|
-
host: string;
|
|
12
|
-
port: number;
|
|
13
|
-
collection: string;
|
|
14
|
-
timeout: number;
|
|
15
|
-
};
|
|
16
|
-
ollama: {
|
|
17
|
-
host: string;
|
|
18
|
-
port: number;
|
|
19
|
-
model: string;
|
|
20
|
-
timeout: number;
|
|
21
|
-
readonly baseUrl: string;
|
|
22
|
-
};
|
|
23
|
-
embedding: {
|
|
24
|
-
model: string;
|
|
25
|
-
dimensions: number;
|
|
26
|
-
apiUrl: string;
|
|
27
|
-
};
|
|
28
|
-
autoCapture: {
|
|
29
|
-
enabled: boolean;
|
|
30
|
-
minConfidence: number;
|
|
31
|
-
useLLM: boolean;
|
|
32
|
-
agentBlocklist: string[];
|
|
33
|
-
noisePatterns: RegExp[];
|
|
34
|
-
maxMessagesPerCapture: number;
|
|
35
|
-
minContentLength: number;
|
|
36
|
-
noiseThreshold: number;
|
|
37
|
-
};
|
|
38
|
-
contextWindow: {
|
|
39
|
-
maxConversationTokens: number;
|
|
40
|
-
tokenEstimateDivisor: number;
|
|
41
|
-
absoluteMaxMessages: number;
|
|
42
|
-
};
|
|
43
|
-
stateDir: string;
|
|
44
|
-
slotDbDir: string;
|
|
45
|
-
defaults: {
|
|
46
|
-
namespace: string;
|
|
47
|
-
slotCategories: string[];
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Validate configuration
|
|
52
|
-
* Checks if required services are accessible
|
|
53
|
-
*/
|
|
54
|
-
export declare function validateConfig(): Promise<{
|
|
55
|
-
qdrant: boolean;
|
|
56
|
-
ollama: boolean;
|
|
57
|
-
}>;
|
|
58
|
-
/**
|
|
59
|
-
* Print configuration (for debugging)
|
|
60
|
-
*/
|
|
61
|
-
export declare function printConfig(): void;
|
|
62
|
-
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DxB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAyBpF;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAQlC"}
|
package/dist/config.js
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration loader for Agent-Memo Plugin
|
|
3
|
-
* Reads from environment variables or .env file
|
|
4
|
-
*/
|
|
5
|
-
import { config } from "dotenv";
|
|
6
|
-
import { join } from "path";
|
|
7
|
-
// Load .env file from plugin directory
|
|
8
|
-
config({ path: join(import.meta.dirname || "", "../.env") });
|
|
9
|
-
/**
|
|
10
|
-
* Plugin configuration object
|
|
11
|
-
* All values read from environment variables with sensible defaults
|
|
12
|
-
*/
|
|
13
|
-
export const PluginConfig = {
|
|
14
|
-
// Qdrant settings
|
|
15
|
-
qdrant: {
|
|
16
|
-
host: process.env.QDRANT_HOST || "localhost",
|
|
17
|
-
port: parseInt(process.env.QDRANT_PORT || "6333"),
|
|
18
|
-
collection: process.env.QDRANT_COLLECTION || "mrc_bot",
|
|
19
|
-
timeout: parseInt(process.env.QDRANT_TIMEOUT || "30000"),
|
|
20
|
-
},
|
|
21
|
-
// Ollama LLM settings
|
|
22
|
-
ollama: {
|
|
23
|
-
host: process.env.OLLAMA_HOST || "http://localhost",
|
|
24
|
-
port: parseInt(process.env.OLLAMA_PORT || "11434"),
|
|
25
|
-
model: process.env.OLLAMA_MODEL || "deepseek-r1:8b",
|
|
26
|
-
timeout: parseInt(process.env.OLLAMA_TIMEOUT || "60000"),
|
|
27
|
-
get baseUrl() {
|
|
28
|
-
return `${this.host}:${this.port}`;
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
// Embedding service settings
|
|
32
|
-
embedding: {
|
|
33
|
-
model: process.env.EMBEDDING_MODEL || "text-embedding-3-small",
|
|
34
|
-
dimensions: parseInt(process.env.EMBEDDING_DIMENSIONS || "1024"),
|
|
35
|
-
apiUrl: process.env.EMBEDDING_API_URL || "http://localhost:8000",
|
|
36
|
-
},
|
|
37
|
-
// Auto-capture settings
|
|
38
|
-
autoCapture: {
|
|
39
|
-
enabled: process.env.AUTO_CAPTURE_ENABLED !== "false", // default true
|
|
40
|
-
minConfidence: parseFloat(process.env.AUTO_CAPTURE_MIN_CONFIDENCE || "0.7"),
|
|
41
|
-
useLLM: process.env.AUTO_CAPTURE_USE_LLM !== "false", // default true
|
|
42
|
-
// RAG Memory Isolation - Noise Filter settings
|
|
43
|
-
agentBlocklist: (process.env.AUTO_CAPTURE_AGENT_BLOCKLIST || "").split(",").filter(Boolean),
|
|
44
|
-
noisePatterns: (process.env.AUTO_CAPTURE_NOISE_PATTERNS || "").split(",").filter(Boolean).map((p) => new RegExp(p, "i")),
|
|
45
|
-
maxMessagesPerCapture: parseInt(process.env.AUTO_CAPTURE_MAX_MESSAGES || "50"),
|
|
46
|
-
minContentLength: parseInt(process.env.AUTO_CAPTURE_MIN_CONTENT_LENGTH || "20"),
|
|
47
|
-
noiseThreshold: parseFloat(process.env.AUTO_CAPTURE_NOISE_THRESHOLD || "0.5"),
|
|
48
|
-
},
|
|
49
|
-
// Context window management settings
|
|
50
|
-
contextWindow: {
|
|
51
|
-
maxConversationTokens: parseInt(process.env.CONTEXT_WINDOW_MAX_TOKENS || "12000"),
|
|
52
|
-
tokenEstimateDivisor: parseInt(process.env.CONTEXT_WINDOW_TOKEN_DIVISOR || "4"),
|
|
53
|
-
absoluteMaxMessages: parseInt(process.env.CONTEXT_WINDOW_MAX_MESSAGES || "200"),
|
|
54
|
-
},
|
|
55
|
-
// State storage
|
|
56
|
-
stateDir: process.env.STATE_DIR || process.env.OPENCLAW_STATE_DIR || `${process.env.HOME}/.openclaw`,
|
|
57
|
-
slotDbDir: process.env.OPENCLAW_SLOTDB_DIR || `${process.env.HOME}/.openclaw/agent-memo`,
|
|
58
|
-
// Plugin defaults
|
|
59
|
-
defaults: {
|
|
60
|
-
namespace: process.env.DEFAULT_NAMESPACE || "default",
|
|
61
|
-
slotCategories: (process.env.DEFAULT_SLOT_CATEGORIES || "profile,preferences,project,environment,custom").split(","),
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
* Validate configuration
|
|
66
|
-
* Checks if required services are accessible
|
|
67
|
-
*/
|
|
68
|
-
export async function validateConfig() {
|
|
69
|
-
const results = { qdrant: false, ollama: false };
|
|
70
|
-
// Check Qdrant
|
|
71
|
-
try {
|
|
72
|
-
const response = await fetch(`http://${PluginConfig.qdrant.host}:${PluginConfig.qdrant.port}/collections`, { signal: AbortSignal.timeout(5000) });
|
|
73
|
-
results.qdrant = response.ok;
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
results.qdrant = false;
|
|
77
|
-
}
|
|
78
|
-
// Check Ollama
|
|
79
|
-
try {
|
|
80
|
-
const response = await fetch(`${PluginConfig.ollama.baseUrl}/api/tags`, {
|
|
81
|
-
signal: AbortSignal.timeout(5000),
|
|
82
|
-
});
|
|
83
|
-
results.ollama = response.ok;
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
results.ollama = false;
|
|
87
|
-
}
|
|
88
|
-
return results;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Print configuration (for debugging)
|
|
92
|
-
*/
|
|
93
|
-
export function printConfig() {
|
|
94
|
-
console.log("[AgentMemo] Configuration:");
|
|
95
|
-
console.log(` Qdrant: ${PluginConfig.qdrant.host}:${PluginConfig.qdrant.port}/${PluginConfig.qdrant.collection}`);
|
|
96
|
-
console.log(` Ollama: ${PluginConfig.ollama.baseUrl} (model: ${PluginConfig.ollama.model})`);
|
|
97
|
-
console.log(` Embedding: ${PluginConfig.embedding.model} (${PluginConfig.embedding.dimensions}d)`);
|
|
98
|
-
console.log(` AutoCapture: ${PluginConfig.autoCapture.enabled ? "enabled" : "disabled"}`);
|
|
99
|
-
console.log(` StateDir: ${PluginConfig.stateDir}`);
|
|
100
|
-
console.log(` SlotDbDir: ${PluginConfig.slotDbDir}`);
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reembed-collection.d.ts","sourceRoot":"","sources":["../../src/scripts/reembed-collection.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import "dotenv/config";
|
|
2
|
-
import { EmbeddingClient } from "../services/embedding.js";
|
|
3
|
-
import { QdrantClient } from "../services/qdrant.js";
|
|
4
|
-
function sampleArray(items, n) {
|
|
5
|
-
if (items.length <= n)
|
|
6
|
-
return [...items];
|
|
7
|
-
const copy = [...items];
|
|
8
|
-
const out = [];
|
|
9
|
-
while (out.length < n && copy.length > 0) {
|
|
10
|
-
const idx = Math.floor(Math.random() * copy.length);
|
|
11
|
-
out.push(copy.splice(idx, 1)[0]);
|
|
12
|
-
}
|
|
13
|
-
return out;
|
|
14
|
-
}
|
|
15
|
-
async function run() {
|
|
16
|
-
const qdrantHost = process.env.QDRANT_HOST || "localhost";
|
|
17
|
-
const qdrantPort = Number(process.env.QDRANT_PORT || 6333);
|
|
18
|
-
const qdrantCollection = process.env.QDRANT_COLLECTION || "mrc_bot_memory";
|
|
19
|
-
const embeddingApiUrl = process.env.EMBEDDING_API_URL || process.env.OLLAMA_URL || "http://localhost:4142";
|
|
20
|
-
const embeddingModel = process.env.EMBEDDING_MODEL || "text-embedding-3-small";
|
|
21
|
-
let embeddingDimensions = Number(process.env.EMBEDDING_DIMENSIONS || 1536);
|
|
22
|
-
const batchSize = Math.max(1, Number(process.env.REEMBED_BATCH_SIZE || 25));
|
|
23
|
-
const qdrant = new QdrantClient({
|
|
24
|
-
host: qdrantHost,
|
|
25
|
-
port: qdrantPort,
|
|
26
|
-
collection: qdrantCollection,
|
|
27
|
-
vectorSize: embeddingDimensions,
|
|
28
|
-
timeout: 60000,
|
|
29
|
-
maxRetries: 4,
|
|
30
|
-
}, console);
|
|
31
|
-
const collectionInfo = await qdrant.getCollectionInfo();
|
|
32
|
-
const detectedVectorSize = Number(collectionInfo?.result?.config?.params?.vectors?.size || 0);
|
|
33
|
-
if (detectedVectorSize > 0 && detectedVectorSize !== embeddingDimensions) {
|
|
34
|
-
console.warn(`[Reembed] EMBEDDING_DIMENSIONS mismatch env=${embeddingDimensions} qdrant=${detectedVectorSize}. Using qdrant size.`);
|
|
35
|
-
embeddingDimensions = detectedVectorSize;
|
|
36
|
-
}
|
|
37
|
-
const embedding = new EmbeddingClient({
|
|
38
|
-
embeddingApiUrl,
|
|
39
|
-
model: embeddingModel,
|
|
40
|
-
dimensions: embeddingDimensions,
|
|
41
|
-
timeout: 120000,
|
|
42
|
-
}, console);
|
|
43
|
-
const stats = {
|
|
44
|
-
totalProcessed: 0,
|
|
45
|
-
chunkedCount: 0,
|
|
46
|
-
maxChunksSeen: 0,
|
|
47
|
-
failedCount: 0,
|
|
48
|
-
startedAt: Date.now(),
|
|
49
|
-
};
|
|
50
|
-
console.log(`[Reembed] Start collection=${qdrantCollection} host=${qdrantHost}:${qdrantPort} model=${embeddingModel} dims=${embeddingDimensions}`);
|
|
51
|
-
const pointsBefore = await qdrant.countPoints(true);
|
|
52
|
-
console.log(`[Reembed] points_before=${pointsBefore}`);
|
|
53
|
-
const processedIds = [];
|
|
54
|
-
let offset = undefined;
|
|
55
|
-
while (true) {
|
|
56
|
-
const page = await qdrant.scroll(batchSize, offset, false);
|
|
57
|
-
if (page.points.length === 0)
|
|
58
|
-
break;
|
|
59
|
-
const fallbackUpsertPoints = [];
|
|
60
|
-
const vectorUpdates = [];
|
|
61
|
-
for (const point of page.points) {
|
|
62
|
-
const payload = point.payload || {};
|
|
63
|
-
const text = typeof payload.text === "string" ? payload.text.trim() : "";
|
|
64
|
-
if (!text) {
|
|
65
|
-
stats.failedCount += 1;
|
|
66
|
-
console.warn(`[Reembed] Skip id=${point.id}: empty text`);
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
try {
|
|
70
|
-
const embedded = await embedding.embedDetailed(text);
|
|
71
|
-
const mergedPayload = {
|
|
72
|
-
...payload,
|
|
73
|
-
...embedded.metadata,
|
|
74
|
-
metadata: {
|
|
75
|
-
...(payload.metadata && typeof payload.metadata === "object" ? payload.metadata : {}),
|
|
76
|
-
...embedded.metadata,
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
vectorUpdates.push({ id: point.id, vector: embedded.vector });
|
|
80
|
-
fallbackUpsertPoints.push({ id: point.id, vector: embedded.vector, payload: mergedPayload });
|
|
81
|
-
processedIds.push(point.id);
|
|
82
|
-
stats.totalProcessed += 1;
|
|
83
|
-
if (embedded.metadata.embedding_chunked)
|
|
84
|
-
stats.chunkedCount += 1;
|
|
85
|
-
if (embedded.metadata.embedding_chunks_count > stats.maxChunksSeen) {
|
|
86
|
-
stats.maxChunksSeen = embedded.metadata.embedding_chunks_count;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
stats.failedCount += 1;
|
|
91
|
-
console.error(`[Reembed] Failed id=${point.id}: ${error.message}`);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
if (vectorUpdates.length > 0) {
|
|
95
|
-
let usedFallbackUpsert = false;
|
|
96
|
-
try {
|
|
97
|
-
await qdrant.updateVectors(vectorUpdates);
|
|
98
|
-
await qdrant.setPayload(fallbackUpsertPoints.map((p) => ({ id: p.id, payload: p.payload })));
|
|
99
|
-
}
|
|
100
|
-
catch (_error) {
|
|
101
|
-
usedFallbackUpsert = true;
|
|
102
|
-
await qdrant.upsert(fallbackUpsertPoints);
|
|
103
|
-
}
|
|
104
|
-
console.log(`[Reembed] Batch done size=${page.points.length} updated=${vectorUpdates.length} mode=${usedFallbackUpsert ? "upsert_fallback" : "updateVectors+setPayload"}`);
|
|
105
|
-
}
|
|
106
|
-
offset = page.nextOffset;
|
|
107
|
-
if (offset === undefined || offset === null)
|
|
108
|
-
break;
|
|
109
|
-
}
|
|
110
|
-
const pointsAfter = await qdrant.countPoints(true);
|
|
111
|
-
console.log(`[Reembed] points_after=${pointsAfter}`);
|
|
112
|
-
if (pointsBefore !== pointsAfter) {
|
|
113
|
-
throw new Error(`Point count mismatch: before=${pointsBefore}, after=${pointsAfter}`);
|
|
114
|
-
}
|
|
115
|
-
const verifyIds = sampleArray(processedIds, Math.min(10, processedIds.length));
|
|
116
|
-
const toKey = (id) => JSON.stringify(id);
|
|
117
|
-
let verifyChecked = 0;
|
|
118
|
-
if (verifyIds.length > 0) {
|
|
119
|
-
let verifyOffset = undefined;
|
|
120
|
-
const need = new Set(verifyIds.map((id) => toKey(id)));
|
|
121
|
-
while (need.size > 0) {
|
|
122
|
-
const page = await qdrant.scroll(100, verifyOffset, true);
|
|
123
|
-
if (page.points.length === 0)
|
|
124
|
-
break;
|
|
125
|
-
for (const p of page.points) {
|
|
126
|
-
const key = toKey(p.id);
|
|
127
|
-
if (need.has(key)) {
|
|
128
|
-
const dim = p.vector?.length || 0;
|
|
129
|
-
if (dim !== embeddingDimensions) {
|
|
130
|
-
throw new Error(`Vector dim mismatch for id=${key}: expected=${embeddingDimensions}, got=${dim}`);
|
|
131
|
-
}
|
|
132
|
-
verifyChecked += 1;
|
|
133
|
-
need.delete(key);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
verifyOffset = page.nextOffset;
|
|
137
|
-
if (verifyOffset === undefined || verifyOffset === null)
|
|
138
|
-
break;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
const smokeVector = await embedding.embed("memory search smoke test");
|
|
142
|
-
const smokeResults = await qdrant.search(smokeVector, 3);
|
|
143
|
-
if (!Array.isArray(smokeResults)) {
|
|
144
|
-
throw new Error("Search smoke test failed: no result array");
|
|
145
|
-
}
|
|
146
|
-
const totalTime = Date.now() - stats.startedAt;
|
|
147
|
-
console.log("[Reembed] Verification passed");
|
|
148
|
-
console.log(JSON.stringify({
|
|
149
|
-
collection: qdrantCollection,
|
|
150
|
-
points_before: pointsBefore,
|
|
151
|
-
points_after: pointsAfter,
|
|
152
|
-
random_verified_vectors: verifyChecked,
|
|
153
|
-
search_smoke_test: true,
|
|
154
|
-
total_processed: stats.totalProcessed,
|
|
155
|
-
chunked_count: stats.chunkedCount,
|
|
156
|
-
max_chunks_seen: stats.maxChunksSeen,
|
|
157
|
-
failed_count: stats.failedCount,
|
|
158
|
-
total_time_ms: totalTime,
|
|
159
|
-
}, null, 2));
|
|
160
|
-
}
|
|
161
|
-
run().catch((error) => {
|
|
162
|
-
console.error(`[Reembed] Fatal: ${error.stack || error.message}`);
|
|
163
|
-
process.exit(1);
|
|
164
|
-
});
|
|
165
|
-
//# sourceMappingURL=reembed-collection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reembed-collection.js","sourceRoot":"","sources":["../../src/scripts/reembed-collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { QdrantClient } from "../services/qdrant.js";
|
|
2
|
-
import { EmbeddingClient } from "../services/embedding.js";
|
|
3
|
-
import { SearchParams, ToolResult, MemoryNamespace } from "../types.js";
|
|
4
|
-
export declare const memorySearchSchema: {
|
|
5
|
-
type: string;
|
|
6
|
-
properties: {
|
|
7
|
-
query: {
|
|
8
|
-
type: string;
|
|
9
|
-
description: string;
|
|
10
|
-
};
|
|
11
|
-
limit: {
|
|
12
|
-
type: string;
|
|
13
|
-
description: string;
|
|
14
|
-
minimum: number;
|
|
15
|
-
maximum: number;
|
|
16
|
-
};
|
|
17
|
-
namespace: {
|
|
18
|
-
type: string;
|
|
19
|
-
description: string;
|
|
20
|
-
};
|
|
21
|
-
sessionId: {
|
|
22
|
-
type: string;
|
|
23
|
-
description: string;
|
|
24
|
-
};
|
|
25
|
-
userId: {
|
|
26
|
-
type: string;
|
|
27
|
-
description: string;
|
|
28
|
-
};
|
|
29
|
-
minScore: {
|
|
30
|
-
type: string;
|
|
31
|
-
description: string;
|
|
32
|
-
minimum: number;
|
|
33
|
-
maximum: number;
|
|
34
|
-
};
|
|
35
|
-
sourceAgent: {
|
|
36
|
-
type: string;
|
|
37
|
-
description: string;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
required: string[];
|
|
41
|
-
};
|
|
42
|
-
export declare function createMemorySearchTool(qdrant: QdrantClient, embedding: EmbeddingClient, defaultNamespace: MemoryNamespace): {
|
|
43
|
-
name: string;
|
|
44
|
-
label: string;
|
|
45
|
-
description: string;
|
|
46
|
-
parameters: {
|
|
47
|
-
type: string;
|
|
48
|
-
properties: {
|
|
49
|
-
query: {
|
|
50
|
-
type: string;
|
|
51
|
-
description: string;
|
|
52
|
-
};
|
|
53
|
-
limit: {
|
|
54
|
-
type: string;
|
|
55
|
-
description: string;
|
|
56
|
-
minimum: number;
|
|
57
|
-
maximum: number;
|
|
58
|
-
};
|
|
59
|
-
namespace: {
|
|
60
|
-
type: string;
|
|
61
|
-
description: string;
|
|
62
|
-
};
|
|
63
|
-
sessionId: {
|
|
64
|
-
type: string;
|
|
65
|
-
description: string;
|
|
66
|
-
};
|
|
67
|
-
userId: {
|
|
68
|
-
type: string;
|
|
69
|
-
description: string;
|
|
70
|
-
};
|
|
71
|
-
minScore: {
|
|
72
|
-
type: string;
|
|
73
|
-
description: string;
|
|
74
|
-
minimum: number;
|
|
75
|
-
maximum: number;
|
|
76
|
-
};
|
|
77
|
-
sourceAgent: {
|
|
78
|
-
type: string;
|
|
79
|
-
description: string;
|
|
80
|
-
};
|
|
81
|
-
};
|
|
82
|
-
required: string[];
|
|
83
|
-
};
|
|
84
|
-
execute(_id: string, params: SearchParams & {
|
|
85
|
-
sourceAgent?: string;
|
|
86
|
-
agentId?: string;
|
|
87
|
-
}, _signal?: AbortSignal): Promise<ToolResult>;
|
|
88
|
-
};
|
|
89
|
-
//# sourceMappingURL=memory_search.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory_search.d.ts","sourceRoot":"","sources":["../../src/tools/memory_search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAe,eAAe,EAAE,MAAM,aAAa,CAAC;AAyBrF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC9B,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,eAAe,EAC1B,gBAAgB,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAcxB,MAAM,UACH,YAAY,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,YACvD,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC;EAuIzB"}
|