@christopherlittle51/postclaw 1.3.1 → 1.3.4
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 +76 -690
- package/dashboard/README.md +89 -0
- package/dashboard/public/app.js +1023 -543
- package/dashboard/public/index.html +283 -75
- package/dashboard/public/styles.css +583 -126
- package/dist/dashboard/routes/config.d.ts.map +1 -1
- package/dist/dashboard/routes/config.js +17 -1
- package/dist/dashboard/routes/config.js.map +1 -1
- package/dist/dashboard/routes/graph.d.ts +2 -2
- package/dist/dashboard/routes/graph.d.ts.map +1 -1
- package/dist/dashboard/routes/graph.js +61 -23
- package/dist/dashboard/routes/graph.js.map +1 -1
- package/dist/dashboard/routes/memories.d.ts.map +1 -1
- package/dist/dashboard/routes/memories.js +97 -11
- package/dist/dashboard/routes/memories.js.map +1 -1
- package/dist/dashboard/routes/scripts.d.ts.map +1 -1
- package/dist/dashboard/routes/scripts.js +3 -1
- package/dist/dashboard/routes/scripts.js.map +1 -1
- package/dist/dashboard/routes/workspace.d.ts +4 -3
- package/dist/dashboard/routes/workspace.d.ts.map +1 -1
- package/dist/dashboard/routes/workspace.js +119 -7
- package/dist/dashboard/routes/workspace.js.map +1 -1
- package/dist/dashboard/server.js +1 -1
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +189 -43
- package/dist/index.js.map +1 -1
- package/dist/schemas/validation.d.ts +108 -12
- package/dist/schemas/validation.d.ts.map +1 -1
- package/dist/schemas/validation.js +66 -11
- package/dist/schemas/validation.js.map +1 -1
- package/dist/scripts/bootstrap_persona.d.ts.map +1 -1
- package/dist/scripts/bootstrap_persona.js +3 -3
- package/dist/scripts/bootstrap_persona.js.map +1 -1
- package/dist/scripts/setup-db.d.ts.map +1 -1
- package/dist/scripts/setup-db.js +74 -37
- package/dist/scripts/setup-db.js.map +1 -1
- package/dist/scripts/sleep_cycle.d.ts +1 -0
- package/dist/scripts/sleep_cycle.d.ts.map +1 -1
- package/dist/scripts/sleep_cycle.js +209 -38
- package/dist/scripts/sleep_cycle.js.map +1 -1
- package/dist/services/config.d.ts +1 -0
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +15 -29
- package/dist/services/config.js.map +1 -1
- package/dist/services/db.d.ts +10 -0
- package/dist/services/db.d.ts.map +1 -1
- package/dist/services/db.js +38 -1
- package/dist/services/db.js.map +1 -1
- package/dist/services/llm.d.ts.map +1 -1
- package/dist/services/llm.js +3 -1
- package/dist/services/llm.js.map +1 -1
- package/dist/services/memoryService.d.ts +4 -2
- package/dist/services/memoryService.d.ts.map +1 -1
- package/dist/services/memoryService.js +127 -43
- package/dist/services/memoryService.js.map +1 -1
- package/dist/services/personaService.d.ts +25 -0
- package/dist/services/personaService.d.ts.map +1 -1
- package/dist/services/personaService.js +79 -0
- package/dist/services/personaService.js.map +1 -1
- package/dist/tests/dashboard-schemas.test.js +71 -1
- package/dist/tests/dashboard-schemas.test.js.map +1 -1
- package/openclaw.plugin.json +5 -0
- package/package.json +2 -1
- package/schemas/README.md +64 -0
package/dist/services/db.js
CHANGED
|
@@ -8,6 +8,7 @@ exports.setDbUrl = setDbUrl;
|
|
|
8
8
|
exports.setEmbeddingConfig = setEmbeddingConfig;
|
|
9
9
|
exports.getSql = getSql;
|
|
10
10
|
exports.getEmbedding = getEmbedding;
|
|
11
|
+
exports.validateEmbeddingDimension = validateEmbeddingDimension;
|
|
11
12
|
exports.hashContent = hashContent;
|
|
12
13
|
const postgres_1 = __importDefault(require("postgres"));
|
|
13
14
|
const node_crypto_1 = require("node:crypto");
|
|
@@ -68,7 +69,8 @@ async function getEmbedding(text) {
|
|
|
68
69
|
const body = JSON.stringify({ input: text, model: exports.EMBEDDING_MODEL });
|
|
69
70
|
console.log(`[EMBED] Request body preview: ${body.substring(0, 200)}`);
|
|
70
71
|
// Strip any trailing /v1 or /v1/ from the base URL to avoid doubling
|
|
71
|
-
|
|
72
|
+
// Replace 'localhost' with '127.0.0.1' to prevent Node 18+ IPv6 fetch failures
|
|
73
|
+
const baseUrl = exports.LM_STUDIO_URL.replace(/\/v1\/?$/, "").replace("localhost", "127.0.0.1");
|
|
72
74
|
const res = await fetch(`${baseUrl}/v1/embeddings`, {
|
|
73
75
|
method: "POST",
|
|
74
76
|
headers: { "Content-Type": "application/json" },
|
|
@@ -86,6 +88,41 @@ async function getEmbedding(text) {
|
|
|
86
88
|
console.log(`[EMBED] Generated ${embedding.length}-dim vector for: "${text.substring(0, 50)}..."`);
|
|
87
89
|
return embedding;
|
|
88
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Validates the currently configured embedding model against the dimensions
|
|
93
|
+
* expected by the Postgres schema for this agent. Returns a compatibility status.
|
|
94
|
+
*/
|
|
95
|
+
async function validateEmbeddingDimension(agentId) {
|
|
96
|
+
try {
|
|
97
|
+
const sql = getSql();
|
|
98
|
+
// 1. Get expected dimensions from schema
|
|
99
|
+
const agents = await sql `
|
|
100
|
+
SELECT embedding_dimensions
|
|
101
|
+
FROM agents
|
|
102
|
+
WHERE id = ${agentId}
|
|
103
|
+
`;
|
|
104
|
+
// Default to 768 if entirely missing (e.g. older schema version before columns added)
|
|
105
|
+
const expected = agents.length > 0 && agents[0].embedding_dimensions
|
|
106
|
+
? agents[0].embedding_dimensions
|
|
107
|
+
: 768;
|
|
108
|
+
// 2. Generate a tiny test embedding to find actual dimensions
|
|
109
|
+
const testEmbedding = await getEmbedding("test dimension check");
|
|
110
|
+
const actual = testEmbedding.length;
|
|
111
|
+
const matches = expected === actual;
|
|
112
|
+
const model = exports.EMBEDDING_MODEL;
|
|
113
|
+
if (!matches) {
|
|
114
|
+
console.error(`[EMBED] DIMENSION MISMATCH ERROR! Model '${model}' returned ${actual} dimensions, but database schema expects ${expected}. Semantic writes will fail.`);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
console.log(`[EMBED] Model '${model}' verified: ${actual} dimensions.`);
|
|
118
|
+
}
|
|
119
|
+
return { model, expected, actual, matches };
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
console.error(`[EMBED] Failed to validate dimensions:`, err);
|
|
123
|
+
throw err;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
89
126
|
/**
|
|
90
127
|
* SHA-256 content hash for deduplication.
|
|
91
128
|
*/
|
package/dist/services/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../services/db.ts"],"names":[],"mappings":";;;;;;AAkBA,4BAEC;AAKD,gDAIC;AAYD,wBAYC;AASD,
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../services/db.ts"],"names":[],"mappings":";;;;;;AAkBA,4BAEC;AAKD,gDAIC;AAYD,wBAYC;AASD,oCAoCC;AAMD,gEAuCC;AAKD,kCAEC;AAtJD,wDAAgC;AAChC,6CAAyC;AACzC,yBAAuB;AACvB,4DAAsE;AAGtE,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAErE,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAC1C,QAAA,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAC9C,QAAA,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,wCAAwC,CAAC;AAErG;;;GAGG;AACH,SAAgB,QAAQ,CAAC,GAAW;IAClC,uBAAe,GAAG,GAAG,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,GAAW,EAAE,KAAa;IAC3D,qBAAa,GAAG,GAAG,CAAC;IACpB,uBAAe,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,4CAA4C,GAAG,aAAa,KAAK,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,gFAAgF;AAChF,uCAAuC;AACvC,gFAAgF;AAEhF,IAAI,IAAI,GAAuC,IAAI,CAAC;AAEpD;;;GAGG;AACH,SAAgB,MAAM;IACpB,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,IAAI,CAAC,uBAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,IAAA,kBAAQ,EAAC,uBAAe,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,IAAI,CAAC,qBAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,6DAA6D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAe,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAEvE,qEAAqE;IACrE,+EAA+E;IAC/E,MAAM,OAAO,GAAG,qBAAc,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACzF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,gBAAgB,EAAE;QAClD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,GAAG,GAAY,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,0CAA0B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAEzD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,4BAA4B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACtH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,CAAC,MAAM,qBAAqB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACnG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,0BAA0B,CAAC,OAAe;IAM9D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QAErB,yCAAyC;QACzC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAA;;;mBAGT,OAAO;KACrB,CAAC;QAEF,sFAAsF;QACtF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB;YAClE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB;YAChC,CAAC,CAAC,GAAG,CAAC;QAER,8DAA8D;QAC9D,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,sBAAsB,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QAEpC,MAAM,OAAO,GAAG,QAAQ,KAAK,MAAM,CAAC;QACpC,MAAM,KAAK,GAAG,uBAAe,CAAC;QAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,4CAA4C,KAAK,cAAc,MAAM,4CAA4C,QAAQ,8BAA8B,CAAC,CAAC;QAC1K,CAAC;aAAM,CAAC;YACL,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,eAAe,MAAM,cAAc,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,OAAe;IACzC,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../services/llm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,SAAS,GACf,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../services/llm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,SAAS,GACf,OAAO,CAAC,MAAM,CAAC,CAsEjB"}
|
package/dist/services/llm.js
CHANGED
|
@@ -21,10 +21,12 @@ const validation_js_1 = require("../schemas/validation.js");
|
|
|
21
21
|
* @param agentId Agent to run as (default: "main").
|
|
22
22
|
*/
|
|
23
23
|
async function callLLMviaAgent(prompt, agentId = "main") {
|
|
24
|
+
const taggedPrompt = `[POSTCLAW_INTERNAL_LLM_CALL_DO_NOT_LOG]\n\n${prompt}`;
|
|
24
25
|
const args = [
|
|
25
26
|
"agent",
|
|
26
27
|
"--agent", agentId,
|
|
27
|
-
"--
|
|
28
|
+
"--session-id", `postclaw-internal-${agentId}`,
|
|
29
|
+
"--message", taggedPrompt,
|
|
28
30
|
"--json",
|
|
29
31
|
];
|
|
30
32
|
const result = await new Promise((resolve, reject) => {
|
package/dist/services/llm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../services/llm.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAgBH,
|
|
1
|
+
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../services/llm.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@ export declare function searchPostgres(agentId: string, userText: string, option
|
|
|
8
8
|
semanticLimit?: number;
|
|
9
9
|
linkedSimilarity?: number;
|
|
10
10
|
totalLimit?: number;
|
|
11
|
+
maxTraversalDepth?: number;
|
|
12
|
+
trackAs?: "access" | "injection";
|
|
11
13
|
}): Promise<string | null>;
|
|
12
14
|
/**
|
|
13
15
|
* Log an episodic memory event to memory_episodic.
|
|
@@ -34,12 +36,12 @@ export declare function storeMemory(agentId: string, content: string, scope?: "p
|
|
|
34
36
|
* Supersede an old memory with a corrected/updated fact.
|
|
35
37
|
* Archives the old memory and creates a new one with a causal link.
|
|
36
38
|
*/
|
|
37
|
-
export declare function updateMemory(agentId: string, oldMemoryId: string, newFact: string, options?: MemoryOptions): Promise<{
|
|
39
|
+
export declare function updateMemory(agentId: string, oldMemoryId: string, newFact: string, scope?: "private" | "shared" | "global", options?: MemoryOptions): Promise<{
|
|
38
40
|
newId: string | null;
|
|
39
41
|
status: string;
|
|
40
42
|
}>;
|
|
41
43
|
/**
|
|
42
|
-
* Create a directed edge between two memories in the knowledge graph.
|
|
44
|
+
* Create a directed edge between two memories or personas in the knowledge graph.
|
|
43
45
|
*/
|
|
44
46
|
export declare function linkMemories(agentId: string, sourceId: string, targetId: string, relationship: string): Promise<{
|
|
45
47
|
status: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryService.d.ts","sourceRoot":"","sources":["../../services/memoryService.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,0BAA0B,CAAC;AAQlC,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAevF;AAMD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,
|
|
1
|
+
{"version":3,"file":"memoryService.d.ts","sourceRoot":"","sources":["../../services/memoryService.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,0BAA0B,CAAC;AAQlC,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAevF;AAMD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAA;CAAO,GACrJ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoGxB;AAMD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EACrD,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,GAAE,MAAsB,GAChC,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EACvD,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAMD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,EAC1B,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmDxB;AAMD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAC/C,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,SAAS,GAAG,QAAQ,GAAG,QAAoB,EAClD,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA8ChD;AAMD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAChD,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,SAAS,GAAG,QAAQ,GAAG,QAAoB,EAClD,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAkDnD;AAMD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAChD,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAgE7B"}
|
|
@@ -43,57 +43,91 @@ async function ensureAgent(agentId, workspaceDir) {
|
|
|
43
43
|
async function searchPostgres(agentId, userText, options = {}) {
|
|
44
44
|
let contextString = null;
|
|
45
45
|
const semanticLimit = options.semanticLimit ?? 7;
|
|
46
|
-
const linkedSimilarity = options.linkedSimilarity ?? 0.8;
|
|
47
46
|
const totalLimit = options.totalLimit ?? 15;
|
|
47
|
+
const maxDepth = options.maxTraversalDepth ?? 3;
|
|
48
48
|
try {
|
|
49
49
|
const embedding = await (0, db_js_1.getEmbedding)(userText);
|
|
50
50
|
// Note: postgres.js TransactionSql loses call signatures via Omit<Sql, ...>,
|
|
51
51
|
// so we must use `any` for the tx callback parameter.
|
|
52
52
|
await (0, db_js_1.getSql)().begin(async (tx) => {
|
|
53
53
|
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
54
|
+
// Recursive CTE: multi-level graph traversal with cycle detection
|
|
54
55
|
const results = await tx `
|
|
55
|
-
WITH semantic_matches AS (
|
|
56
|
+
WITH RECURSIVE semantic_matches AS (
|
|
56
57
|
SELECT id, content, 1 - (embedding <=> ${JSON.stringify(embedding)}) AS similarity
|
|
57
58
|
FROM memory_semantic
|
|
58
59
|
WHERE agent_id = ${agentId} AND is_archived = false
|
|
59
60
|
ORDER BY similarity DESC
|
|
60
61
|
LIMIT ${semanticLimit}
|
|
61
62
|
),
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
),
|
|
69
|
-
final_matches AS (
|
|
70
|
-
SELECT id, content, similarity, NULL as relationship_type FROM semantic_matches
|
|
63
|
+
graph_walk AS (
|
|
64
|
+
-- Base case: direct semantic matches
|
|
65
|
+
SELECT id, content, similarity, NULL::varchar AS relationship_type,
|
|
66
|
+
0 AS depth, ARRAY[id] AS visited
|
|
67
|
+
FROM semantic_matches
|
|
68
|
+
|
|
71
69
|
UNION ALL
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
70
|
+
|
|
71
|
+
-- Recursive step: follow edges up to maxDepth hops
|
|
72
|
+
SELECT m.id, m.content,
|
|
73
|
+
gw.similarity * 0.85 AS similarity,
|
|
74
|
+
e.relationship_type,
|
|
75
|
+
gw.depth + 1 AS depth,
|
|
76
|
+
gw.visited || m.id
|
|
77
|
+
FROM graph_walk gw
|
|
78
|
+
JOIN entity_edges e ON (
|
|
79
|
+
(e.source_memory_id = gw.id OR e.target_memory_id = gw.id)
|
|
80
|
+
AND e.agent_id = ${agentId}
|
|
81
|
+
)
|
|
82
|
+
JOIN memory_semantic m ON (
|
|
83
|
+
m.id = CASE
|
|
84
|
+
WHEN e.source_memory_id = gw.id THEN e.target_memory_id
|
|
85
|
+
ELSE e.source_memory_id
|
|
86
|
+
END
|
|
87
|
+
)
|
|
88
|
+
WHERE gw.depth < ${maxDepth}
|
|
89
|
+
AND m.is_archived = false
|
|
90
|
+
AND m.id != ALL(gw.visited)
|
|
91
|
+
),
|
|
92
|
+
deduped AS (
|
|
93
|
+
SELECT DISTINCT ON (id) id, content, similarity, relationship_type, depth
|
|
94
|
+
FROM graph_walk
|
|
95
|
+
ORDER BY id, similarity DESC
|
|
75
96
|
)
|
|
76
|
-
SELECT
|
|
97
|
+
SELECT id, content, similarity, relationship_type, depth
|
|
98
|
+
FROM deduped
|
|
99
|
+
ORDER BY similarity DESC
|
|
100
|
+
LIMIT ${totalLimit};
|
|
77
101
|
`;
|
|
78
|
-
console.log(`[SEARCH] Query returned ${results.length} row(s) for agent=${agentId}`);
|
|
102
|
+
console.log(`[SEARCH] Query returned ${results.length} row(s) for agent=${agentId} (max depth ${maxDepth})`);
|
|
79
103
|
if (results.length > 0) {
|
|
80
104
|
contextString = results
|
|
81
105
|
.map((r) => {
|
|
82
106
|
const pct = (r.similarity * 100).toFixed(1) + "%";
|
|
83
107
|
const label = r.relationship_type
|
|
84
|
-
? `Linked: ${r.relationship_type}, ${pct}`
|
|
108
|
+
? `Linked[${r.depth}]: ${r.relationship_type}, ${pct}`
|
|
85
109
|
: pct;
|
|
86
110
|
return `[ID: ${r.id}] (${label}) - ${r.content}`;
|
|
87
111
|
})
|
|
88
112
|
.join("\n");
|
|
89
113
|
// Update tracking columns
|
|
90
114
|
const extractedIds = results.map((r) => r.id);
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
115
|
+
if (options.trackAs === "injection") {
|
|
116
|
+
await tx `
|
|
117
|
+
UPDATE memory_semantic
|
|
118
|
+
SET injection_count = injection_count + 1,
|
|
119
|
+
last_injected_at = CURRENT_TIMESTAMP
|
|
120
|
+
WHERE id IN ${(0, db_js_1.getSql)()(extractedIds)}
|
|
121
|
+
`;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
await tx `
|
|
125
|
+
UPDATE memory_semantic
|
|
126
|
+
SET access_count = access_count + 1,
|
|
127
|
+
last_accessed_at = CURRENT_TIMESTAMP
|
|
128
|
+
WHERE id IN ${(0, db_js_1.getSql)()(extractedIds)}
|
|
129
|
+
`;
|
|
130
|
+
}
|
|
97
131
|
}
|
|
98
132
|
});
|
|
99
133
|
}
|
|
@@ -228,18 +262,22 @@ async function storeMemory(agentId, content, scope = "private", options = {}) {
|
|
|
228
262
|
const validated = validation_js_1.StoreMemoryInputSchema.parse({ content, scope, options: Object.keys(options).length > 0 ? options : undefined });
|
|
229
263
|
const embedding = await (0, db_js_1.getEmbedding)(validated.content);
|
|
230
264
|
const contentHash = (0, db_js_1.hashContent)(validated.content);
|
|
265
|
+
const tokenCountEstimate = Math.ceil(validated.content.length / 4);
|
|
231
266
|
const result = await (0, db_js_1.getSql)().begin(async (tx) => {
|
|
232
267
|
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
233
268
|
const rows = await tx `
|
|
234
269
|
INSERT INTO memory_semantic (
|
|
235
270
|
agent_id, access_scope, content, content_hash, embedding, embedding_model,
|
|
236
|
-
category, source_uri, volatility, is_pointer, token_count, confidence, tier, usefulness_score,
|
|
271
|
+
category, source_uri, volatility, is_pointer, token_count, confidence, tier, usefulness_score,
|
|
272
|
+
injection_count, access_count, last_injected_at, last_accessed_at, expires_at, created_at, updated_at,
|
|
273
|
+
is_archived, metadata, superseded_by
|
|
237
274
|
) VALUES (
|
|
238
275
|
${agentId}, ${scope}, ${content}, ${contentHash},
|
|
239
|
-
${JSON.stringify(embedding)}, ${db_js_1.EMBEDDING_MODEL},
|
|
240
|
-
${validated.options?.category || null}, ${validated.options?.source_uri || null}, ${validated.options?.volatility || 'low'}, ${validated.options?.is_pointer
|
|
241
|
-
${
|
|
242
|
-
${validated.options?.
|
|
276
|
+
${JSON.stringify(embedding)}, ${validated.options?.embedding_model || db_js_1.EMBEDDING_MODEL},
|
|
277
|
+
${validated.options?.category || null}, ${validated.options?.source_uri || null}, ${validated.options?.volatility || 'low'}, ${validated.options?.is_pointer ?? false},
|
|
278
|
+
${tokenCountEstimate}, ${validated.options?.confidence ?? 0.5}, ${validated.options?.tier || 'daily'}, ${validated.options?.usefulness_score ?? 0.0},
|
|
279
|
+
${validated.options?.injection_count ?? 0}, ${validated.options?.access_count ?? 0}, ${validated.options?.last_injected_at || null}, ${validated.options?.last_accessed_at || null}, ${validated.options?.expires_at || null}, ${validated.options?.created_at || new Date()}, ${validated.options?.updated_at || new Date()},
|
|
280
|
+
${validated.options?.is_archived ?? false}, ${validated.options?.metadata ? JSON.stringify(validated.options.metadata) : '{}'}, ${validated.options?.superseded_by || null}
|
|
243
281
|
)
|
|
244
282
|
ON CONFLICT (agent_id, content_hash) DO NOTHING
|
|
245
283
|
RETURNING id;
|
|
@@ -271,24 +309,28 @@ async function storeMemory(agentId, content, scope = "private", options = {}) {
|
|
|
271
309
|
* Supersede an old memory with a corrected/updated fact.
|
|
272
310
|
* Archives the old memory and creates a new one with a causal link.
|
|
273
311
|
*/
|
|
274
|
-
async function updateMemory(agentId, oldMemoryId, newFact, options = {}) {
|
|
312
|
+
async function updateMemory(agentId, oldMemoryId, newFact, scope = "private", options = {}) {
|
|
275
313
|
try {
|
|
276
|
-
const validated = validation_js_1.UpdateMemoryInputSchema.parse({ oldMemoryId, newFact, options: Object.keys(options).length > 0 ? options : undefined });
|
|
314
|
+
const validated = validation_js_1.UpdateMemoryInputSchema.parse({ oldMemoryId, newFact, scope, options: Object.keys(options).length > 0 ? options : undefined });
|
|
277
315
|
const embedding = await (0, db_js_1.getEmbedding)(validated.newFact);
|
|
278
316
|
const contentHash = (0, db_js_1.hashContent)(validated.newFact);
|
|
317
|
+
const tokenCountEstimate = Math.ceil(validated.newFact.length / 4);
|
|
279
318
|
const result = await (0, db_js_1.getSql)().begin(async (tx) => {
|
|
280
319
|
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
281
320
|
// Insert the new truth
|
|
282
321
|
const newMem = await tx `
|
|
283
322
|
INSERT INTO memory_semantic (
|
|
284
323
|
agent_id, access_scope, content, content_hash, embedding, embedding_model,
|
|
285
|
-
category, source_uri, volatility, is_pointer, token_count, confidence, tier, usefulness_score,
|
|
324
|
+
category, source_uri, volatility, is_pointer, token_count, confidence, tier, usefulness_score,
|
|
325
|
+
injection_count, access_count, last_injected_at, last_accessed_at, expires_at, created_at, updated_at,
|
|
326
|
+
is_archived, metadata, superseded_by
|
|
286
327
|
) VALUES (
|
|
287
|
-
${agentId},
|
|
288
|
-
${JSON.stringify(embedding)}, ${db_js_1.EMBEDDING_MODEL},
|
|
289
|
-
${validated.options?.category || null}, ${validated.options?.source_uri || null}, ${validated.options?.volatility || 'low'}, ${validated.options?.is_pointer
|
|
290
|
-
${
|
|
291
|
-
${validated.options?.
|
|
328
|
+
${agentId}, ${scope}, ${validated.newFact}, ${contentHash},
|
|
329
|
+
${JSON.stringify(embedding)}, ${validated.options?.embedding_model || db_js_1.EMBEDDING_MODEL},
|
|
330
|
+
${validated.options?.category || null}, ${validated.options?.source_uri || null}, ${validated.options?.volatility || 'low'}, ${validated.options?.is_pointer ?? false},
|
|
331
|
+
${tokenCountEstimate}, ${validated.options?.confidence ?? 0.5}, ${validated.options?.tier || 'daily'}, ${validated.options?.usefulness_score ?? 0.0},
|
|
332
|
+
${validated.options?.injection_count ?? 0}, ${validated.options?.access_count ?? 0}, ${validated.options?.last_injected_at || null}, ${validated.options?.last_accessed_at || null}, ${validated.options?.expires_at || null}, ${validated.options?.created_at || new Date()}, ${validated.options?.updated_at || new Date()},
|
|
333
|
+
${validated.options?.is_archived ?? false}, ${validated.options?.metadata ? JSON.stringify(validated.options.metadata) : '{}'}, ${validated.options?.superseded_by || null}
|
|
292
334
|
)
|
|
293
335
|
RETURNING id;
|
|
294
336
|
`;
|
|
@@ -317,24 +359,66 @@ async function updateMemory(agentId, oldMemoryId, newFact, options = {}) {
|
|
|
317
359
|
// MEMORY LINK (replaces db-memory-link skill)
|
|
318
360
|
// =============================================================================
|
|
319
361
|
/**
|
|
320
|
-
* Create a directed edge between two memories in the knowledge graph.
|
|
362
|
+
* Create a directed edge between two memories or personas in the knowledge graph.
|
|
321
363
|
*/
|
|
322
364
|
async function linkMemories(agentId, sourceId, targetId, relationship) {
|
|
323
365
|
try {
|
|
366
|
+
const isUuid = (uuid) => /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(uuid);
|
|
367
|
+
if (!isUuid(sourceId) || !isUuid(targetId)) {
|
|
368
|
+
console.warn(`[GRAPH] Invalid UUID provided for link: ${sourceId} -> ${targetId}`);
|
|
369
|
+
return { status: "error: invalid UUID format" };
|
|
370
|
+
}
|
|
371
|
+
if (sourceId === targetId) {
|
|
372
|
+
return { status: "error: cannot link an entity to itself" };
|
|
373
|
+
}
|
|
324
374
|
await (0, db_js_1.getSql)().begin(async (tx) => {
|
|
325
375
|
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
376
|
+
// Identify source type
|
|
377
|
+
const srcMem = await tx `SELECT id FROM memory_semantic WHERE id = ${sourceId}`;
|
|
378
|
+
const srcPer = await tx `SELECT id FROM agent_persona WHERE id = ${sourceId}`;
|
|
379
|
+
const sourceCol = srcMem.length > 0 ? 'source_memory_id' : (srcPer.length > 0 ? 'source_persona_id' : null);
|
|
380
|
+
// Identify target type
|
|
381
|
+
const tgtMem = await tx `SELECT id FROM memory_semantic WHERE id = ${targetId}`;
|
|
382
|
+
const tgtPer = await tx `SELECT id FROM agent_persona WHERE id = ${targetId}`;
|
|
383
|
+
const targetCol = tgtMem.length > 0 ? 'target_memory_id' : (tgtPer.length > 0 ? 'target_persona_id' : null);
|
|
384
|
+
if (!sourceCol) {
|
|
385
|
+
throw new Error(`Source ID ${sourceId} not found in memories or personas.`);
|
|
386
|
+
}
|
|
387
|
+
if (!targetCol) {
|
|
388
|
+
throw new Error(`Target ID ${targetId} not found in memories or personas.`);
|
|
389
|
+
}
|
|
390
|
+
// Check if edge already exists (since ON CONFLICT only fully covers source_memory_id + target_memory_id)
|
|
391
|
+
const existing = await tx `
|
|
392
|
+
SELECT id FROM entity_edges
|
|
393
|
+
WHERE agent_id = ${agentId}
|
|
394
|
+
AND (${sourceCol === 'source_memory_id' ? tx `source_memory_id = ${sourceId}` : tx `source_persona_id = ${sourceId}`})
|
|
395
|
+
AND (${targetCol === 'target_memory_id' ? tx `target_memory_id = ${targetId}` : tx `target_persona_id = ${targetId}`})
|
|
396
|
+
AND relationship_type = ${relationship}
|
|
397
|
+
LIMIT 1
|
|
330
398
|
`;
|
|
399
|
+
if (existing.length === 0) {
|
|
400
|
+
// Insert it dynamically
|
|
401
|
+
if (sourceCol === 'source_memory_id' && targetCol === 'target_memory_id') {
|
|
402
|
+
await tx `INSERT INTO entity_edges (agent_id, source_memory_id, target_memory_id, relationship_type, weight) VALUES (${agentId}, ${sourceId}, ${targetId}, ${relationship}, 1.0) ON CONFLICT (source_memory_id, target_memory_id, relationship_type) DO NOTHING`;
|
|
403
|
+
}
|
|
404
|
+
else if (sourceCol === 'source_memory_id' && targetCol === 'target_persona_id') {
|
|
405
|
+
await tx `INSERT INTO entity_edges (agent_id, source_memory_id, target_persona_id, relationship_type, weight) VALUES (${agentId}, ${sourceId}, ${targetId}, ${relationship}, 1.0)`;
|
|
406
|
+
}
|
|
407
|
+
else if (sourceCol === 'source_persona_id' && targetCol === 'target_memory_id') {
|
|
408
|
+
await tx `INSERT INTO entity_edges (agent_id, source_persona_id, target_memory_id, relationship_type, weight) VALUES (${agentId}, ${sourceId}, ${targetId}, ${relationship}, 1.0)`;
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
await tx `INSERT INTO entity_edges (agent_id, source_persona_id, target_persona_id, relationship_type, weight) VALUES (${agentId}, ${sourceId}, ${targetId}, ${relationship}, 1.0)`;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
331
414
|
});
|
|
332
415
|
console.log(`[GRAPH] Linked ${sourceId.substring(0, 8)} → ${targetId.substring(0, 8)} as "${relationship}"`);
|
|
333
416
|
return { status: "linked" };
|
|
334
417
|
}
|
|
335
418
|
catch (err) {
|
|
336
|
-
|
|
337
|
-
|
|
419
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
420
|
+
console.error("[GRAPH] Failed to link:", msg);
|
|
421
|
+
return { status: `error: ${msg}` };
|
|
338
422
|
}
|
|
339
423
|
}
|
|
340
424
|
//# sourceMappingURL=memoryService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryService.js","sourceRoot":"","sources":["../../services/memoryService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memoryService.js","sourceRoot":"","sources":["../../services/memoryService.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,4 +19,29 @@ export declare function getPersona(agentId: string, personaId: string): Promise<
|
|
|
19
19
|
export declare function createPersona(agentId: string, data: PersonaCreate): Promise<PersonaEntry>;
|
|
20
20
|
export declare function updatePersona(agentId: string, personaId: string, data: PersonaUpdate): Promise<PersonaEntry | null>;
|
|
21
21
|
export declare function deletePersona(agentId: string, personaId: string): Promise<boolean>;
|
|
22
|
+
export interface PersonaLink {
|
|
23
|
+
id: string;
|
|
24
|
+
persona_id: string;
|
|
25
|
+
memory_id: string;
|
|
26
|
+
persona_category: string;
|
|
27
|
+
memory_content: string;
|
|
28
|
+
relationship_type: string;
|
|
29
|
+
weight: number;
|
|
30
|
+
created_at: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Link a persona trait to a memory via entity_edges.
|
|
34
|
+
*/
|
|
35
|
+
export declare function linkPersonaToMemory(agentId: string, personaId: string, memoryId: string, relationship: string, weight?: number): Promise<{
|
|
36
|
+
id: string | null;
|
|
37
|
+
status: string;
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Remove a persona↔memory link.
|
|
41
|
+
*/
|
|
42
|
+
export declare function unlinkPersonaFromMemory(agentId: string, edgeId: string): Promise<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* Get all edges connected to a persona trait.
|
|
45
|
+
*/
|
|
46
|
+
export declare function getPersonaLinks(agentId: string, personaId: string): Promise<PersonaLink[]>;
|
|
22
47
|
//# sourceMappingURL=personaService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"personaService.d.ts","sourceRoot":"","sources":["../../services/personaService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAMlC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgB3E;AAMD,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAejG;AAMD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,YAAY,CAAC,CA0BvB;AAMD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAuC9B;AAMD,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBxF"}
|
|
1
|
+
{"version":3,"file":"personaService.d.ts","sourceRoot":"","sources":["../../services/personaService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAMlC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgB3E;AAMD,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAejG;AAMD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,YAAY,CAAC,CA0BvB;AAMD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAuC9B;AAMD,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBxF;AAMD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,MAAY,GACnB,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBhD;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,EAAE,CAAC,CAqBxB"}
|
|
@@ -11,6 +11,9 @@ exports.getPersona = getPersona;
|
|
|
11
11
|
exports.createPersona = createPersona;
|
|
12
12
|
exports.updatePersona = updatePersona;
|
|
13
13
|
exports.deletePersona = deletePersona;
|
|
14
|
+
exports.linkPersonaToMemory = linkPersonaToMemory;
|
|
15
|
+
exports.unlinkPersonaFromMemory = unlinkPersonaFromMemory;
|
|
16
|
+
exports.getPersonaLinks = getPersonaLinks;
|
|
14
17
|
const db_js_1 = require("./db.js");
|
|
15
18
|
const validation_js_1 = require("../schemas/validation.js");
|
|
16
19
|
// =============================================================================
|
|
@@ -145,4 +148,80 @@ async function deletePersona(agentId, personaId) {
|
|
|
145
148
|
throw err;
|
|
146
149
|
}
|
|
147
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Link a persona trait to a memory via entity_edges.
|
|
153
|
+
*/
|
|
154
|
+
async function linkPersonaToMemory(agentId, personaId, memoryId, relationship, weight = 1.0) {
|
|
155
|
+
try {
|
|
156
|
+
const rows = await (0, db_js_1.getSql)().begin(async (tx) => {
|
|
157
|
+
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
158
|
+
return await tx `
|
|
159
|
+
INSERT INTO entity_edges (
|
|
160
|
+
agent_id, source_persona_id, target_memory_id, relationship_type, weight
|
|
161
|
+
) VALUES (
|
|
162
|
+
${agentId}, ${personaId}, ${memoryId}, ${relationship}, ${weight}
|
|
163
|
+
)
|
|
164
|
+
ON CONFLICT DO NOTHING
|
|
165
|
+
RETURNING id
|
|
166
|
+
`;
|
|
167
|
+
});
|
|
168
|
+
if (rows.length === 0) {
|
|
169
|
+
return { id: null, status: "already_exists" };
|
|
170
|
+
}
|
|
171
|
+
console.log(`[PERSONA] Linked persona ${personaId.substring(0, 8)} → memory ${memoryId.substring(0, 8)}`);
|
|
172
|
+
return { id: rows[0].id, status: "linked" };
|
|
173
|
+
}
|
|
174
|
+
catch (err) {
|
|
175
|
+
console.error("[PERSONA] Link failed:", err);
|
|
176
|
+
return { id: null, status: `error: ${err}` };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Remove a persona↔memory link.
|
|
181
|
+
*/
|
|
182
|
+
async function unlinkPersonaFromMemory(agentId, edgeId) {
|
|
183
|
+
try {
|
|
184
|
+
const rows = await (0, db_js_1.getSql)().begin(async (tx) => {
|
|
185
|
+
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
186
|
+
return await tx `
|
|
187
|
+
DELETE FROM entity_edges
|
|
188
|
+
WHERE id = ${edgeId}
|
|
189
|
+
AND agent_id = ${agentId}
|
|
190
|
+
AND (source_persona_id IS NOT NULL OR target_persona_id IS NOT NULL)
|
|
191
|
+
RETURNING id
|
|
192
|
+
`;
|
|
193
|
+
});
|
|
194
|
+
return rows.length > 0;
|
|
195
|
+
}
|
|
196
|
+
catch (err) {
|
|
197
|
+
console.error("[PERSONA] Unlink failed:", err);
|
|
198
|
+
throw err;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Get all edges connected to a persona trait.
|
|
203
|
+
*/
|
|
204
|
+
async function getPersonaLinks(agentId, personaId) {
|
|
205
|
+
try {
|
|
206
|
+
const rows = await (0, db_js_1.getSql)().begin(async (tx) => {
|
|
207
|
+
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
208
|
+
return await tx `
|
|
209
|
+
SELECT e.id, e.source_persona_id AS persona_id, e.target_memory_id AS memory_id,
|
|
210
|
+
p.category AS persona_category, m.content AS memory_content,
|
|
211
|
+
e.relationship_type, e.weight, e.created_at
|
|
212
|
+
FROM entity_edges e
|
|
213
|
+
LEFT JOIN agent_persona p ON e.source_persona_id = p.id
|
|
214
|
+
LEFT JOIN memory_semantic m ON e.target_memory_id = m.id
|
|
215
|
+
WHERE e.agent_id = ${agentId}
|
|
216
|
+
AND (e.source_persona_id = ${personaId} OR e.target_persona_id = ${personaId})
|
|
217
|
+
ORDER BY e.created_at DESC
|
|
218
|
+
`;
|
|
219
|
+
});
|
|
220
|
+
return rows;
|
|
221
|
+
}
|
|
222
|
+
catch (err) {
|
|
223
|
+
console.error("[PERSONA] Get links failed:", err);
|
|
224
|
+
throw err;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
148
227
|
//# sourceMappingURL=personaService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"personaService.js","sourceRoot":"","sources":["../../services/personaService.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA4BH,oCAgBC;AAMD,gCAeC;AAMD,sCA6BC;AAMD,sCA2CC;AAMD,sCAmBC;
|
|
1
|
+
{"version":3,"file":"personaService.js","sourceRoot":"","sources":["../../services/personaService.ts"],"names":[],"mappings":"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"}
|