@christopherlittle51/postclaw 1.3.1 → 1.3.2
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 +69 -695
- package/dashboard/README.md +89 -0
- package/dashboard/public/app.js +903 -542
- package/dashboard/public/index.html +184 -73
- package/dashboard/public/styles.css +583 -126
- 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 +66 -0
- package/dist/dashboard/routes/memories.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.map +1 -1
- package/dist/index.js +84 -27
- package/dist/index.js.map +1 -1
- package/dist/schemas/validation.d.ts +32 -3
- package/dist/schemas/validation.d.ts.map +1 -1
- package/dist/schemas/validation.js +22 -4
- package/dist/schemas/validation.js.map +1 -1
- package/dist/scripts/setup-db.d.ts.map +1 -1
- package/dist/scripts/setup-db.js +28 -30
- 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 +114 -21
- 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 +4 -22
- package/dist/services/config.js.map +1 -1
- package/dist/services/memoryService.d.ts +2 -1
- package/dist/services/memoryService.d.ts.map +1 -1
- package/dist/services/memoryService.js +90 -24
- 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/package.json +1 -1
- package/schemas/README.md +64 -0
|
@@ -43,45 +43,69 @@ 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
|
})
|
|
@@ -317,24 +341,66 @@ async function updateMemory(agentId, oldMemoryId, newFact, options = {}) {
|
|
|
317
341
|
// MEMORY LINK (replaces db-memory-link skill)
|
|
318
342
|
// =============================================================================
|
|
319
343
|
/**
|
|
320
|
-
* Create a directed edge between two memories in the knowledge graph.
|
|
344
|
+
* Create a directed edge between two memories or personas in the knowledge graph.
|
|
321
345
|
*/
|
|
322
346
|
async function linkMemories(agentId, sourceId, targetId, relationship) {
|
|
323
347
|
try {
|
|
348
|
+
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);
|
|
349
|
+
if (!isUuid(sourceId) || !isUuid(targetId)) {
|
|
350
|
+
console.warn(`[GRAPH] Invalid UUID provided for link: ${sourceId} -> ${targetId}`);
|
|
351
|
+
return { status: "error: invalid UUID format" };
|
|
352
|
+
}
|
|
353
|
+
if (sourceId === targetId) {
|
|
354
|
+
return { status: "error: cannot link an entity to itself" };
|
|
355
|
+
}
|
|
324
356
|
await (0, db_js_1.getSql)().begin(async (tx) => {
|
|
325
357
|
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
358
|
+
// Identify source type
|
|
359
|
+
const srcMem = await tx `SELECT id FROM memory_semantic WHERE id = ${sourceId}`;
|
|
360
|
+
const srcPer = await tx `SELECT id FROM agent_persona WHERE id = ${sourceId}`;
|
|
361
|
+
const sourceCol = srcMem.length > 0 ? 'source_memory_id' : (srcPer.length > 0 ? 'source_persona_id' : null);
|
|
362
|
+
// Identify target type
|
|
363
|
+
const tgtMem = await tx `SELECT id FROM memory_semantic WHERE id = ${targetId}`;
|
|
364
|
+
const tgtPer = await tx `SELECT id FROM agent_persona WHERE id = ${targetId}`;
|
|
365
|
+
const targetCol = tgtMem.length > 0 ? 'target_memory_id' : (tgtPer.length > 0 ? 'target_persona_id' : null);
|
|
366
|
+
if (!sourceCol) {
|
|
367
|
+
throw new Error(`Source ID ${sourceId} not found in memories or personas.`);
|
|
368
|
+
}
|
|
369
|
+
if (!targetCol) {
|
|
370
|
+
throw new Error(`Target ID ${targetId} not found in memories or personas.`);
|
|
371
|
+
}
|
|
372
|
+
// Check if edge already exists (since ON CONFLICT only fully covers source_memory_id + target_memory_id)
|
|
373
|
+
const existing = await tx `
|
|
374
|
+
SELECT id FROM entity_edges
|
|
375
|
+
WHERE agent_id = ${agentId}
|
|
376
|
+
AND (${sourceCol === 'source_memory_id' ? tx `source_memory_id = ${sourceId}` : tx `source_persona_id = ${sourceId}`})
|
|
377
|
+
AND (${targetCol === 'target_memory_id' ? tx `target_memory_id = ${targetId}` : tx `target_persona_id = ${targetId}`})
|
|
378
|
+
AND relationship_type = ${relationship}
|
|
379
|
+
LIMIT 1
|
|
330
380
|
`;
|
|
381
|
+
if (existing.length === 0) {
|
|
382
|
+
// Insert it dynamically
|
|
383
|
+
if (sourceCol === 'source_memory_id' && targetCol === 'target_memory_id') {
|
|
384
|
+
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`;
|
|
385
|
+
}
|
|
386
|
+
else if (sourceCol === 'source_memory_id' && targetCol === 'target_persona_id') {
|
|
387
|
+
await tx `INSERT INTO entity_edges (agent_id, source_memory_id, target_persona_id, relationship_type, weight) VALUES (${agentId}, ${sourceId}, ${targetId}, ${relationship}, 1.0)`;
|
|
388
|
+
}
|
|
389
|
+
else if (sourceCol === 'source_persona_id' && targetCol === 'target_memory_id') {
|
|
390
|
+
await tx `INSERT INTO entity_edges (agent_id, source_persona_id, target_memory_id, relationship_type, weight) VALUES (${agentId}, ${sourceId}, ${targetId}, ${relationship}, 1.0)`;
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
await tx `INSERT INTO entity_edges (agent_id, source_persona_id, target_persona_id, relationship_type, weight) VALUES (${agentId}, ${sourceId}, ${targetId}, ${relationship}, 1.0)`;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
331
396
|
});
|
|
332
397
|
console.log(`[GRAPH] Linked ${sourceId.substring(0, 8)} → ${targetId.substring(0, 8)} as "${relationship}"`);
|
|
333
398
|
return { status: "linked" };
|
|
334
399
|
}
|
|
335
400
|
catch (err) {
|
|
336
|
-
|
|
337
|
-
|
|
401
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
402
|
+
console.error("[GRAPH] Failed to link:", msg);
|
|
403
|
+
return { status: `error: ${msg}` };
|
|
338
404
|
}
|
|
339
405
|
}
|
|
340
406
|
//# 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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"}
|
|
@@ -115,7 +115,7 @@ const validation_js_1 = require("../schemas/validation.js");
|
|
|
115
115
|
// GRAPH SCHEMA
|
|
116
116
|
// =============================================================================
|
|
117
117
|
(0, vitest_1.describe)("GraphEdgeCreateSchema", () => {
|
|
118
|
-
(0, vitest_1.it)("accepts valid edge", () => {
|
|
118
|
+
(0, vitest_1.it)("accepts valid memory-to-memory edge", () => {
|
|
119
119
|
const result = validation_js_1.GraphEdgeCreateSchema.parse({
|
|
120
120
|
source_memory_id: "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d",
|
|
121
121
|
target_memory_id: "f1e2d3c4-b5a6-4a5b-8c9d-0e1f2a3b4c5d",
|
|
@@ -123,6 +123,19 @@ const validation_js_1 = require("../schemas/validation.js");
|
|
|
123
123
|
});
|
|
124
124
|
(0, vitest_1.expect)(result.weight).toBe(1.0);
|
|
125
125
|
});
|
|
126
|
+
(0, vitest_1.it)("accepts persona-to-memory edge", () => {
|
|
127
|
+
const result = validation_js_1.GraphEdgeCreateSchema.parse({
|
|
128
|
+
source_persona_id: "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d",
|
|
129
|
+
target_memory_id: "f1e2d3c4-b5a6-4a5b-8c9d-0e1f2a3b4c5d",
|
|
130
|
+
relationship_type: "defines",
|
|
131
|
+
});
|
|
132
|
+
(0, vitest_1.expect)(result.source_persona_id).toBe("a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d");
|
|
133
|
+
});
|
|
134
|
+
(0, vitest_1.it)("rejects edge with no source or target", () => {
|
|
135
|
+
(0, vitest_1.expect)(() => validation_js_1.GraphEdgeCreateSchema.parse({
|
|
136
|
+
relationship_type: "related_to",
|
|
137
|
+
})).toThrow();
|
|
138
|
+
});
|
|
126
139
|
(0, vitest_1.it)("rejects invalid UUID", () => {
|
|
127
140
|
(0, vitest_1.expect)(() => validation_js_1.GraphEdgeCreateSchema.parse({
|
|
128
141
|
source_memory_id: "not-a-uuid",
|
|
@@ -168,4 +181,61 @@ const validation_js_1 = require("../schemas/validation.js");
|
|
|
168
181
|
(0, vitest_1.expect)(() => validation_js_1.MemoryListQuerySchema.parse({ limit: "501" })).toThrow();
|
|
169
182
|
});
|
|
170
183
|
});
|
|
184
|
+
// =============================================================================
|
|
185
|
+
// NEW: PERSONA EDGE & WORKSPACE IMPORT SCHEMAS
|
|
186
|
+
// =============================================================================
|
|
187
|
+
(0, vitest_1.describe)("PersonaEdgeCreateSchema", () => {
|
|
188
|
+
(0, vitest_1.it)("accepts valid persona-memory link", () => {
|
|
189
|
+
const result = validation_js_1.PersonaEdgeCreateSchema.parse({
|
|
190
|
+
persona_id: "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d",
|
|
191
|
+
memory_id: "f1e2d3c4-b5a6-4a5b-8c9d-0e1f2a3b4c5d",
|
|
192
|
+
relationship_type: "defines",
|
|
193
|
+
});
|
|
194
|
+
(0, vitest_1.expect)(result.weight).toBe(1.0);
|
|
195
|
+
(0, vitest_1.expect)(result.relationship_type).toBe("defines");
|
|
196
|
+
});
|
|
197
|
+
(0, vitest_1.it)("rejects invalid persona UUID", () => {
|
|
198
|
+
(0, vitest_1.expect)(() => validation_js_1.PersonaEdgeCreateSchema.parse({
|
|
199
|
+
persona_id: "not-valid",
|
|
200
|
+
memory_id: "f1e2d3c4-b5a6-4a5b-8c9d-0e1f2a3b4c5d",
|
|
201
|
+
relationship_type: "supports",
|
|
202
|
+
})).toThrow();
|
|
203
|
+
});
|
|
204
|
+
(0, vitest_1.it)("rejects missing relationship", () => {
|
|
205
|
+
(0, vitest_1.expect)(() => validation_js_1.PersonaEdgeCreateSchema.parse({
|
|
206
|
+
persona_id: "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d",
|
|
207
|
+
memory_id: "f1e2d3c4-b5a6-4a5b-8c9d-0e1f2a3b4c5d",
|
|
208
|
+
})).toThrow();
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
(0, vitest_1.describe)("WorkspaceImportSchema", () => {
|
|
212
|
+
(0, vitest_1.it)("accepts valid persona import", () => {
|
|
213
|
+
const result = validation_js_1.WorkspaceImportSchema.parse({
|
|
214
|
+
filename: "SOUL.md",
|
|
215
|
+
target: "persona",
|
|
216
|
+
});
|
|
217
|
+
(0, vitest_1.expect)(result.tier).toBe("stable");
|
|
218
|
+
(0, vitest_1.expect)(result.target).toBe("persona");
|
|
219
|
+
});
|
|
220
|
+
(0, vitest_1.it)("accepts valid memory import with tier", () => {
|
|
221
|
+
const result = validation_js_1.WorkspaceImportSchema.parse({
|
|
222
|
+
filename: "notes.md",
|
|
223
|
+
target: "memory",
|
|
224
|
+
tier: "permanent",
|
|
225
|
+
});
|
|
226
|
+
(0, vitest_1.expect)(result.tier).toBe("permanent");
|
|
227
|
+
});
|
|
228
|
+
(0, vitest_1.it)("rejects invalid target", () => {
|
|
229
|
+
(0, vitest_1.expect)(() => validation_js_1.WorkspaceImportSchema.parse({
|
|
230
|
+
filename: "test.md",
|
|
231
|
+
target: "invalid",
|
|
232
|
+
})).toThrow();
|
|
233
|
+
});
|
|
234
|
+
(0, vitest_1.it)("rejects empty filename", () => {
|
|
235
|
+
(0, vitest_1.expect)(() => validation_js_1.WorkspaceImportSchema.parse({
|
|
236
|
+
filename: "",
|
|
237
|
+
target: "persona",
|
|
238
|
+
})).toThrow();
|
|
239
|
+
});
|
|
240
|
+
});
|
|
171
241
|
//# sourceMappingURL=dashboard-schemas.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-schemas.test.js","sourceRoot":"","sources":["../../tests/dashboard-schemas.test.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,mCAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"dashboard-schemas.test.js","sourceRoot":"","sources":["../../tests/dashboard-schemas.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# PostClaw Schemas Validation
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The `schemas/` directory, centered around `validation.ts`, acts as the data bodyguard for the entire PostClaw architecture.
|
|
6
|
+
|
|
7
|
+
When dealing with artificial intelligence, outputs can be unpredictable. An LLM might hallucinate a new category of memory, or forget to include a required ID when trying to update a fact. To prevent these AI errors from crashing the database or corrupting your agent's memory, PostClaw uses **Zod**, a TypeScript-first schema validation library.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Database Row Validation
|
|
12
|
+
|
|
13
|
+
Before PostClaw trusts data coming from PostgreSQL, it runs it through a Zod schema to guarantee the shape and types.
|
|
14
|
+
|
|
15
|
+
* **`MemorySemanticRow` & `EpisodicRow`:** Ensures that every memory fetched from the database has a valid UUID (not just a random string), a proper JavaScript `Date` object for timestamps, and an authorized category (e.g., `core`, `concept`, `human`).
|
|
16
|
+
* **Why it matters:** This prevents runtime `undefined` errors if you manually alter the database outside of the plugin and accidentally create a malformed row.
|
|
17
|
+
|
|
18
|
+
## 2. Agent Tool Guardrails
|
|
19
|
+
|
|
20
|
+
OpenClaw allows agents to call "Tools" (functions) to perform actions like saving or modifying a memory. The schemas in this file strictly govern what the agent is allowed to pass to those tools.
|
|
21
|
+
|
|
22
|
+
* **`MemoryStoreSchema`:** When the agent calls `memory_store`, Zod enforces that the `content` is a string, and that the `tier` parameter is explicitly either `"permanent"`, `"session"`, or `"temporary"`. If the AI tries to use a tier like `"forever"`, the schema rejects it and returns a clean error to the LLM, prompting it to try again with the correct format.
|
|
23
|
+
* **`MemoryUpdateSchema`:** Enforces that the agent provides a valid UUID when attempting to supersede an old memory.
|
|
24
|
+
|
|
25
|
+
## 3. Sleep Cycle JSON Parsing
|
|
26
|
+
|
|
27
|
+
During the automated background maintenance (the sleep cycle), PostClaw asks the LLM to process thousands of words and return a compressed, structured JSON object outlining duplicate memories or new facts.
|
|
28
|
+
|
|
29
|
+
* **`EpisodicSummarySchema` & `ConsolidationEvaluationSchema`:** These schemas define the exact JSON format the LLM must return. If the LLM returns an array instead of an object, or forgets to include an `isDuplicate` boolean flag, Zod catches the error instantly.
|
|
30
|
+
* **Why it matters:** This is the most common point of failure for smaller LLMs. Without strict validation, bad JSON would break the parsing logic and silently fail to consolidate memories.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Troubleshooting Guide
|
|
35
|
+
|
|
36
|
+
### "Validation failed" or "ZodError" in Agent Logs
|
|
37
|
+
|
|
38
|
+
If you see a `ZodError` printed in your terminal while the agent is "thinking," it means the agent attempted to use a memory tool incorrectly.
|
|
39
|
+
|
|
40
|
+
* **Fix:** You generally don't need to do anything. OpenClaw automatically feeds the Zod error back to the LLM, which acts as a correction mechanism, teaching the AI how to fix its own formatting error on the next attempt. However, if the agent persistently fails over multiple turns, your primary LLM might be too weak to follow complex JSON instructions.
|
|
41
|
+
|
|
42
|
+
### Sleep Cycle: "Failed to parse LLM response for batch"
|
|
43
|
+
|
|
44
|
+
The background sleep script (e.g., Phase I or Phase IV) skipped a batch of memories because the LLM failed to match the `EpisodicSummarySchema`.
|
|
45
|
+
|
|
46
|
+
* **Fix:** The LLM you are using (e.g., through Ollama or LM Studio) likely included conversational text (like "Here is the JSON you requested:") or markdown formatting (` ```json ` tags) that breaks raw JSON parsing before Zod can even validate it. Switch to a stronger model (like Llama 3 or Qwen) or ensure your LLM prompt template enforces strict JSON-only outputs.
|
|
47
|
+
|
|
48
|
+
### UUID Validation Failures
|
|
49
|
+
|
|
50
|
+
If the dashboard or manual scripts throw an error about an invalid UUID, a function received a plain string instead of a true Database ID.
|
|
51
|
+
|
|
52
|
+
* **Fix:** Ensure any manual IDs you provide (such as when testing API routes or using the CLI) are formatted as standard 36-character `v4` UUIDs (e.g., `123e4567-e89b-12d3-a456-426614174000`). Zod intrinsically blocks unstructured strings.
|
|
53
|
+
|
|
54
|
+
### "Invalid Enum Value" during Memory Storage
|
|
55
|
+
|
|
56
|
+
If the agent attempts to save a new memory and the terminal throws an error stating `Received: 'critical' - Expected: 'permanent' | 'session' | 'temporary'`.
|
|
57
|
+
|
|
58
|
+
* **Fix:** The LLM hallucinated a memory tier or category that doesn't strictly exist within the plugin's Zod definitions. The agent must stick strictly to the enumerated values defined in `MemoryStoreSchema`. OpenClaw automatically reflects this error back to the LLM so it can correct its mistake on a retry.
|
|
59
|
+
|
|
60
|
+
### Date Object Parsing Errors
|
|
61
|
+
|
|
62
|
+
When the plugin pulls data from the PostgreSQL `memory_episodic` table using the `EpisodicRow` schema, Zod expects valid JavaScript Date objects for timestamps, not raw ISO strings.
|
|
63
|
+
|
|
64
|
+
* **Fix:** If you are building custom manual scripts interacting directly with the database rows, ensure you are utilizing `postgres.js`'s built-in date parsing or manually hydrating your JSON returns into Date objects before passing them into the Zod validator.
|