@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.
Files changed (66) hide show
  1. package/README.md +76 -690
  2. package/dashboard/README.md +89 -0
  3. package/dashboard/public/app.js +1023 -543
  4. package/dashboard/public/index.html +283 -75
  5. package/dashboard/public/styles.css +583 -126
  6. package/dist/dashboard/routes/config.d.ts.map +1 -1
  7. package/dist/dashboard/routes/config.js +17 -1
  8. package/dist/dashboard/routes/config.js.map +1 -1
  9. package/dist/dashboard/routes/graph.d.ts +2 -2
  10. package/dist/dashboard/routes/graph.d.ts.map +1 -1
  11. package/dist/dashboard/routes/graph.js +61 -23
  12. package/dist/dashboard/routes/graph.js.map +1 -1
  13. package/dist/dashboard/routes/memories.d.ts.map +1 -1
  14. package/dist/dashboard/routes/memories.js +97 -11
  15. package/dist/dashboard/routes/memories.js.map +1 -1
  16. package/dist/dashboard/routes/scripts.d.ts.map +1 -1
  17. package/dist/dashboard/routes/scripts.js +3 -1
  18. package/dist/dashboard/routes/scripts.js.map +1 -1
  19. package/dist/dashboard/routes/workspace.d.ts +4 -3
  20. package/dist/dashboard/routes/workspace.d.ts.map +1 -1
  21. package/dist/dashboard/routes/workspace.js +119 -7
  22. package/dist/dashboard/routes/workspace.js.map +1 -1
  23. package/dist/dashboard/server.js +1 -1
  24. package/dist/dashboard/server.js.map +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +189 -43
  28. package/dist/index.js.map +1 -1
  29. package/dist/schemas/validation.d.ts +108 -12
  30. package/dist/schemas/validation.d.ts.map +1 -1
  31. package/dist/schemas/validation.js +66 -11
  32. package/dist/schemas/validation.js.map +1 -1
  33. package/dist/scripts/bootstrap_persona.d.ts.map +1 -1
  34. package/dist/scripts/bootstrap_persona.js +3 -3
  35. package/dist/scripts/bootstrap_persona.js.map +1 -1
  36. package/dist/scripts/setup-db.d.ts.map +1 -1
  37. package/dist/scripts/setup-db.js +74 -37
  38. package/dist/scripts/setup-db.js.map +1 -1
  39. package/dist/scripts/sleep_cycle.d.ts +1 -0
  40. package/dist/scripts/sleep_cycle.d.ts.map +1 -1
  41. package/dist/scripts/sleep_cycle.js +209 -38
  42. package/dist/scripts/sleep_cycle.js.map +1 -1
  43. package/dist/services/config.d.ts +1 -0
  44. package/dist/services/config.d.ts.map +1 -1
  45. package/dist/services/config.js +15 -29
  46. package/dist/services/config.js.map +1 -1
  47. package/dist/services/db.d.ts +10 -0
  48. package/dist/services/db.d.ts.map +1 -1
  49. package/dist/services/db.js +38 -1
  50. package/dist/services/db.js.map +1 -1
  51. package/dist/services/llm.d.ts.map +1 -1
  52. package/dist/services/llm.js +3 -1
  53. package/dist/services/llm.js.map +1 -1
  54. package/dist/services/memoryService.d.ts +4 -2
  55. package/dist/services/memoryService.d.ts.map +1 -1
  56. package/dist/services/memoryService.js +127 -43
  57. package/dist/services/memoryService.js.map +1 -1
  58. package/dist/services/personaService.d.ts +25 -0
  59. package/dist/services/personaService.d.ts.map +1 -1
  60. package/dist/services/personaService.js +79 -0
  61. package/dist/services/personaService.js.map +1 -1
  62. package/dist/tests/dashboard-schemas.test.js +71 -1
  63. package/dist/tests/dashboard-schemas.test.js.map +1 -1
  64. package/openclaw.plugin.json +5 -0
  65. package/package.json +2 -1
  66. package/schemas/README.md +64 -0
@@ -20,6 +20,7 @@ exports.startService = startService;
20
20
  exports.stopService = stopService;
21
21
  const db_js_1 = require("../services/db.js");
22
22
  const memoryService_js_1 = require("../services/memoryService.js");
23
+ const config_js_1 = require("../services/config.js");
23
24
  const llm_js_1 = require("../services/llm.js");
24
25
  const zod_1 = require("zod");
25
26
  const validation_js_1 = require("../schemas/validation.js");
@@ -43,6 +44,31 @@ const DEFAULT_LINK_SCAN_LIMIT = 50;
43
44
  // Background service
44
45
  const DEFAULT_INTERVAL_HOURS = 6;
45
46
  // =============================================================================
47
+ // TYPES
48
+ // =============================================================================
49
+ /**
50
+ * Defensively extracts a JSON object from raw LLM output.
51
+ * Handles markdown fences (```json ... ```) or conversational filler
52
+ * wrapping the actual { ... } block.
53
+ */
54
+ function extractJsonFromLlmOutput(text) {
55
+ if (!text)
56
+ return "";
57
+ // 1. Try to find a fenced code block
58
+ const fenceMatch = text.match(/```(?:json)?\s*([\s\S]*?)\s*```/);
59
+ if (fenceMatch && fenceMatch[1]) {
60
+ return fenceMatch[1].trim();
61
+ }
62
+ // 2. Try to find the outermost curly braces
63
+ const firstBrace = text.indexOf("{");
64
+ const lastBrace = text.lastIndexOf("}");
65
+ if (firstBrace !== -1 && lastBrace !== -1 && lastBrace > firstBrace) {
66
+ return text.substring(firstBrace, lastBrace + 1).trim();
67
+ }
68
+ // 3. Fallback to just returning the trimmed string and letting JSON.parse try
69
+ return text.trim();
70
+ }
71
+ // =============================================================================
46
72
  // UTILITIES
47
73
  // =============================================================================
48
74
  // LLM calls now routed through OpenClaw's configured primary model via callLLMviaAgent
@@ -89,8 +115,21 @@ Output your response EXCLUSIVELY as a JSON object matching this schema:
89
115
  }
90
116
  Do not use markdown formatting.
91
117
  `;
92
- const jsonString = await (0, llm_js_1.callLLMviaAgent)(`${systemPrompt}\n\nHere is the recent episodic transcript to analyze:\n\n${transcript}`);
93
- const result = validation_js_1.SleepCycleResultSchema.parse(JSON.parse(jsonString));
118
+ const jsonString = await (0, llm_js_1.callLLMviaAgent)(`${systemPrompt}\n\nHere is the recent episodic transcript to analyze:\n\n${transcript}`, agentId);
119
+ let result;
120
+ try {
121
+ const cleanString = extractJsonFromLlmOutput(jsonString);
122
+ result = validation_js_1.SleepCycleResultSchema.parse(JSON.parse(cleanString));
123
+ }
124
+ catch (err) {
125
+ console.error(`\n[PHASE 1] ❌ FATAL PARSE ERROR`);
126
+ console.error(`The internal LLM response could not be parsed as valid JSON.`);
127
+ console.error(`This blocks the promotion of short-term memories into semantic facts.\n`);
128
+ console.error(`=== RAW LLM OUTPUT ===`);
129
+ console.error(jsonString);
130
+ console.error(`======================\n`);
131
+ throw new Error(`Episodic consolidation parsing failed: ${err.message}`);
132
+ }
94
133
  console.log(`[PHASE 1] Extracted ${result.extracted_durable_facts.length} permanent facts.`);
95
134
  console.log(`[PHASE 1] Session Summary: ${result.session_summary}`);
96
135
  await sql.begin(async (tx) => {
@@ -151,7 +190,7 @@ async function phaseDuplicateDetection(agentId, options) {
151
190
  if (archivedIds.has(source.id))
152
191
  continue;
153
192
  const duplicates = await tx `
154
- SELECT id, content, usefulness_score, access_count
193
+ SELECT id, content, usefulness_score, access_count, confidence, volatility, injection_count
155
194
  FROM memory_semantic
156
195
  WHERE agent_id = ${agentId}
157
196
  AND is_archived = false
@@ -163,11 +202,17 @@ async function phaseDuplicateDetection(agentId, options) {
163
202
  if (duplicates.length === 0)
164
203
  continue;
165
204
  const allCandidates = [source, ...duplicates];
205
+ // Score survivors using ALL relevant DB columns:
206
+ // usefulness_score, access_count, confidence, injection_count, volatility
166
207
  allCandidates.sort((a, b) => {
167
208
  const rowA = a;
168
209
  const rowB = b;
169
- const scoreA = (rowA.usefulness_score || 0) + (rowA.access_count || 0) * 0.1;
170
- const scoreB = (rowB.usefulness_score || 0) + (rowB.access_count || 0) * 0.1;
210
+ const volPenA = rowA.volatility === 'high' ? -0.5 : rowA.volatility === 'medium' ? -0.2 : 0;
211
+ const volPenB = rowB.volatility === 'high' ? -0.5 : rowB.volatility === 'medium' ? -0.2 : 0;
212
+ const scoreA = (rowA.usefulness_score || 0) + (rowA.access_count || 0) * 0.1
213
+ + (rowA.confidence || 0.5) * 0.5 + (rowA.injection_count || 0) * 0.05 + volPenA;
214
+ const scoreB = (rowB.usefulness_score || 0) + (rowB.access_count || 0) * 0.1
215
+ + (rowB.confidence || 0.5) * 0.5 + (rowB.injection_count || 0) * 0.05 + volPenB;
171
216
  return scoreB - scoreA;
172
217
  });
173
218
  const survivor = allCandidates[0];
@@ -199,15 +244,34 @@ async function phaseLowValueCleanup(agentId, options) {
199
244
  const sql = (0, db_js_1.getSql)();
200
245
  const result = await sql.begin(async (tx) => {
201
246
  await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
247
+ // Also archive memories past their expires_at date
248
+ const expiredRows = await tx `
249
+ UPDATE memory_semantic
250
+ SET is_archived = true
251
+ WHERE agent_id = ${agentId}
252
+ AND is_archived = false
253
+ AND expires_at IS NOT NULL
254
+ AND expires_at < NOW()
255
+ RETURNING id, content, tier;
256
+ `;
257
+ if (expiredRows.length > 0) {
258
+ for (const m of expiredRows) {
259
+ console.log(`[PHASE 3] -> Archived expired: "${m.content.substring(0, 60)}..." (tier=${m.tier})`);
260
+ }
261
+ console.log(`[PHASE 3] Archived ${expiredRows.length} expired memories.`);
262
+ }
263
+ // Low-value cleanup: consider access_count, injection_count, and confidence
202
264
  const staleMemories = await tx `
203
- SELECT id, content, tier, access_count, created_at
265
+ SELECT id, content, tier, access_count, injection_count, confidence, created_at
204
266
  FROM memory_semantic
205
267
  WHERE agent_id = ${agentId}
206
268
  AND is_archived = false
207
269
  AND access_count = 0
270
+ AND injection_count = 0
271
+ AND confidence < 0.3
208
272
  AND created_at < NOW() - INTERVAL '1 day' * ${options.ageDays}
209
273
  AND tier NOT IN ${sql(options.protectedTiers)}
210
- ORDER BY created_at ASC;
274
+ ORDER BY confidence ASC, created_at ASC;
211
275
  `;
212
276
  if (staleMemories.length === 0) {
213
277
  return 0;
@@ -221,9 +285,9 @@ async function phaseLowValueCleanup(agentId, options) {
221
285
  for (const m of staleMemories) {
222
286
  console.log(`[PHASE 3] -> Archived stale: "${m.content.substring(0, 60)}..." (tier=${m.tier}, age=${Math.round((Date.now() - new Date(m.created_at).getTime()) / 86400000)}d)`);
223
287
  }
224
- return staleMemories.length;
288
+ return staleMemories.length + expiredRows.length;
225
289
  });
226
- console.log(`[PHASE 3] Archived ${result} low-value memories.`);
290
+ console.log(`[PHASE 3] Archived ${result} total entries (low-value + expired).`);
227
291
  return result;
228
292
  }
229
293
  // =============================================================================
@@ -234,25 +298,33 @@ async function phaseLinkDiscovery(agentId, options) {
234
298
  console.log(`─────────────────────────────────────────`);
235
299
  console.log(`[PHASE 4] Similarity range: ${options.min}–${options.max}`);
236
300
  const sql = (0, db_js_1.getSql)();
237
- const sourceMemories = await sql.begin(async (tx) => {
301
+ // Fetch both memories and persona traits
302
+ const [sourceMemories, personaTraits] = await sql.begin(async (tx) => {
238
303
  await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
239
- return await tx `
304
+ const memories = await tx `
240
305
  SELECT id, content, embedding
241
306
  FROM memory_semantic
242
307
  WHERE agent_id = ${agentId} AND is_archived = false
243
308
  ORDER BY created_at DESC
244
309
  LIMIT ${options.scanLimit};
245
310
  `;
311
+ const personas = await tx `
312
+ SELECT id, category, content, embedding
313
+ FROM agent_persona
314
+ WHERE agent_id = ${agentId}
315
+ `;
316
+ return [memories, personas];
246
317
  });
247
- if (sourceMemories.length < 2) {
248
- console.log(`[PHASE 4] Not enough memories for link discovery (${sourceMemories.length}).`);
318
+ if (sourceMemories.length < 2 && personaTraits.length === 0) {
319
+ console.log(`[PHASE 4] Not enough entries for link discovery (${sourceMemories.length} memories, ${personaTraits.length} persona traits).`);
249
320
  return 0;
250
321
  }
251
- console.log(`[PHASE 4] Scanning ${sourceMemories.length} memories for link candidates...`);
322
+ console.log(`[PHASE 4] Scanning ${sourceMemories.length} memories + ${personaTraits.length} persona traits for link candidates...`);
252
323
  const candidatePairs = [];
253
324
  const seenPairs = new Set();
254
325
  await sql.begin(async (tx) => {
255
326
  await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
327
+ // 1) Memory ↔ Memory candidates (original behavior)
256
328
  for (const source of sourceMemories) {
257
329
  const candidates = await tx `
258
330
  SELECT m.id, m.content, 1 - (m.embedding <=> ${source.embedding}) AS similarity
@@ -280,8 +352,47 @@ async function phaseLinkDiscovery(agentId, options) {
280
352
  candidatePairs.push({
281
353
  source_id: source.id,
282
354
  source_content: source.content,
355
+ source_type: "memory",
356
+ target_id: candidate.id,
357
+ target_content: candidate.content,
358
+ target_type: "memory",
359
+ similarity: candidate.similarity,
360
+ });
361
+ }
362
+ }
363
+ // 2) Persona ↔ Memory cross-link candidates
364
+ for (const persona of personaTraits) {
365
+ if (!persona.embedding)
366
+ continue; // skip personas without embeddings
367
+ const candidates = await tx `
368
+ SELECT m.id, m.content, 1 - (m.embedding <=> ${persona.embedding}) AS similarity
369
+ FROM memory_semantic m
370
+ WHERE m.agent_id = ${agentId}
371
+ AND m.is_archived = false
372
+ AND 1 - (m.embedding <=> ${persona.embedding}) BETWEEN ${options.min} AND ${options.max}
373
+ AND NOT EXISTS (
374
+ SELECT 1 FROM entity_edges e
375
+ WHERE e.agent_id = ${agentId}
376
+ AND (
377
+ (e.source_persona_id = ${persona.id} AND e.target_memory_id = m.id)
378
+ OR (e.source_memory_id = m.id AND e.target_persona_id = ${persona.id})
379
+ )
380
+ )
381
+ ORDER BY similarity DESC
382
+ LIMIT ${options.candidatesPerMemory};
383
+ `;
384
+ for (const candidate of candidates) {
385
+ const pairKey = [persona.id, candidate.id].sort().join(":");
386
+ if (seenPairs.has(pairKey))
387
+ continue;
388
+ seenPairs.add(pairKey);
389
+ candidatePairs.push({
390
+ source_id: persona.id,
391
+ source_content: `[Persona: ${persona.category}] ${persona.content}`,
392
+ source_type: "persona",
283
393
  target_id: candidate.id,
284
394
  target_content: candidate.content,
395
+ target_type: "memory",
285
396
  similarity: candidate.similarity,
286
397
  });
287
398
  }
@@ -291,16 +402,18 @@ async function phaseLinkDiscovery(agentId, options) {
291
402
  console.log(`[PHASE 4] No new link candidates found.`);
292
403
  return 0;
293
404
  }
294
- console.log(`[PHASE 4] Found ${candidatePairs.length} candidate pairs. Classifying relationships...`);
405
+ const memMemCount = candidatePairs.filter(p => p.source_type === "memory" && p.target_type === "memory").length;
406
+ const crossCount = candidatePairs.length - memMemCount;
407
+ console.log(`[PHASE 4] Found ${candidatePairs.length} candidate pairs (${memMemCount} memory↔memory, ${crossCount} persona↔memory). Classifying relationships...`);
295
408
  let linksCreated = 0;
296
409
  for (let i = 0; i < candidatePairs.length; i += options.batchSize) {
297
410
  const batch = candidatePairs.slice(i, i + options.batchSize);
298
411
  const pairsDescription = batch
299
- .map((p, idx) => `${idx + 1}. [A: ${p.source_id}] "${p.source_content}"\n [B: ${p.target_id}] "${p.target_content}" (similarity: ${(p.similarity * 100).toFixed(1)}%)`)
412
+ .map((p, idx) => `${idx + 1}. [A: ${p.source_type}/${p.source_id}] "${p.source_content}"\n [B: ${p.target_type}/${p.target_id}] "${p.target_content}" (similarity: ${(p.similarity * 100).toFixed(1)}%)`)
300
413
  .join("\n\n");
301
414
  const systemPrompt = `
302
415
  You are a knowledge graph relationship classifier.
303
- Given pairs of memory entries, classify the relationship between them.
416
+ Given pairs of memory entries and/or persona traits, classify the relationship between them.
304
417
 
305
418
  Valid relationship types:
306
419
  - "related_to" — general topical relation
@@ -308,6 +421,8 @@ Valid relationship types:
308
421
  - "contradicts" — B conflicts with or corrects A
309
422
  - "depends_on" — B depends on knowledge from A
310
423
  - "part_of" — B is a component/subset of A
424
+ - "defines" — A (usually a persona trait) defines the context for B (a memory)
425
+ - "supports" — B provides evidence or backing for A
311
426
  - "none" — no meaningful relationship worth linking
312
427
 
313
428
  Output EXCLUSIVELY a JSON array of objects:
@@ -316,13 +431,16 @@ Output EXCLUSIVELY a JSON array of objects:
316
431
  Use "none" for pairs that don't have a meaningful relationship worth persisting.
317
432
  Do not use markdown formatting.
318
433
  `;
319
- const jsonString = await (0, llm_js_1.callLLMviaAgent)(`${systemPrompt}\n\nClassify the relationships between these memory pairs:\n\n${pairsDescription}`);
434
+ const jsonString = await (0, llm_js_1.callLLMviaAgent)(`${systemPrompt}\n\nClassify the relationships between these pairs:\n\n${pairsDescription}`, agentId);
320
435
  let classifications;
321
436
  try {
322
- classifications = zod_1.z.array(validation_js_1.LinkClassificationSchema).parse(JSON.parse(jsonString));
437
+ const cleanString = extractJsonFromLlmOutput(jsonString);
438
+ classifications = zod_1.z.array(validation_js_1.LinkClassificationSchema).parse(JSON.parse(cleanString));
323
439
  }
324
- catch {
325
- console.error(`[PHASE 4] Failed to parse LLM response for batch ${Math.floor(i / options.batchSize) + 1}. Skipping.`);
440
+ catch (err) {
441
+ console.error(`\n[PHASE 4] ⚠️ Parsing skipped for batch ${Math.floor(i / options.batchSize) + 1}.`);
442
+ console.error(`[PHASE 4] LLM response could not be parsed as a valid JSON array of relationships.`);
443
+ console.error(`[PHASE 4] Raw LLM Output:\n${jsonString}\n`);
326
444
  continue;
327
445
  }
328
446
  await sql.begin(async (tx) => {
@@ -330,14 +448,30 @@ Do not use markdown formatting.
330
448
  for (const cls of classifications) {
331
449
  if (cls.relationship === "none" || !cls.relationship)
332
450
  continue;
451
+ // Determine which FK columns to populate based on the original pair's types
452
+ const originalPair = batch.find(p => p.source_id === cls.source_id && p.target_id === cls.target_id);
453
+ if (!originalPair)
454
+ continue;
333
455
  try {
334
456
  await tx `
335
- INSERT INTO entity_edges (agent_id, source_memory_id, target_memory_id, relationship_type, weight)
336
- VALUES (${agentId}, ${cls.source_id}, ${cls.target_id}, ${cls.relationship}, 1.0)
337
- ON CONFLICT (source_memory_id, target_memory_id, relationship_type) DO NOTHING;
457
+ INSERT INTO entity_edges (
458
+ agent_id,
459
+ source_memory_id, target_memory_id,
460
+ source_persona_id, target_persona_id,
461
+ relationship_type, weight
462
+ ) VALUES (
463
+ ${agentId},
464
+ ${originalPair.source_type === "memory" ? cls.source_id : null},
465
+ ${originalPair.target_type === "memory" ? cls.target_id : null},
466
+ ${originalPair.source_type === "persona" ? cls.source_id : null},
467
+ ${originalPair.target_type === "persona" ? cls.target_id : null},
468
+ ${cls.relationship}, ${originalPair.similarity}
469
+ )
470
+ ON CONFLICT DO NOTHING;
338
471
  `;
339
472
  linksCreated++;
340
- console.log(`[PHASE 4] -> Linked: ${cls.source_id.substring(0, 8)} → ${cls.target_id.substring(0, 8)} as "${cls.relationship}"`);
473
+ const linkLabel = `${originalPair.source_type}/${cls.source_id.substring(0, 8)} → ${originalPair.target_type}/${cls.target_id.substring(0, 8)}`;
474
+ console.log(`[PHASE 4] -> Linked: ${linkLabel} as "${cls.relationship}"`);
341
475
  }
342
476
  catch (err) {
343
477
  console.error(`[PHASE 4] Failed to insert edge: ${err}`);
@@ -362,9 +496,16 @@ async function runSleepCycle(opts = {}) {
362
496
  factsExtracted: 0,
363
497
  duplicatesMerged: 0,
364
498
  staleArchived: 0,
499
+ expiredArchived: 0,
365
500
  linksCreated: 0,
366
501
  };
367
502
  try {
503
+ // Pre-flight check: ensure embedding model matches DB schema
504
+ // If we consolidate with the wrong dimensions, PGVector insertion will crash
505
+ const dimValidation = await (0, db_js_1.validateEmbeddingDimension)(agentId);
506
+ if (!dimValidation.matches) {
507
+ throw new Error(`Dimension mismatch: Model '${dimValidation.model}' provides ${dimValidation.actual} dims, DB expects ${dimValidation.expected}. Aborting sleep cycle to prevent semantic insertion failures.`);
508
+ }
368
509
  stats.factsExtracted = await phaseConsolidateEpisodic(agentId, opts.config?.episodicBatchLimit ?? DEFAULT_EPISODIC_BATCH_LIMIT);
369
510
  stats.duplicatesMerged = await phaseDuplicateDetection(agentId, {
370
511
  threshold: opts.config?.duplicateSimilarityThreshold ?? DEFAULT_DUPLICATE_SIMILARITY_THRESHOLD,
@@ -385,7 +526,7 @@ async function runSleepCycle(opts = {}) {
385
526
  console.log(` Sleep Cycle Complete 💤`);
386
527
  console.log(` Facts extracted: ${stats.factsExtracted}`);
387
528
  console.log(` Duplicates merged: ${stats.duplicatesMerged}`);
388
- console.log(` Stale archived: ${stats.staleArchived}`);
529
+ console.log(` Stale/expired: ${stats.staleArchived} (incl. expired)`);
389
530
  console.log(` Links created: ${stats.linksCreated}`);
390
531
  console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`);
391
532
  }
@@ -401,12 +542,24 @@ let _serviceTimer = null;
401
542
  function startService(opts = {}) {
402
543
  const intervalMs = (opts.intervalHours || DEFAULT_INTERVAL_HOURS) * 60 * 60 * 1000;
403
544
  const label = `${opts.intervalHours || DEFAULT_INTERVAL_HOURS}h`;
404
- console.log(`[SLEEP SERVICE] Started — first cycle in ${label}, then every ${label} for agent="${opts.agentId || "main"}"`);
545
+ console.log(`[SLEEP SERVICE] Started — first cycle in ${label}, then every ${label} for all active agents`);
405
546
  // Do NOT run immediately — this blocks plugin install/validation.
406
547
  // First cycle fires after the interval elapses.
407
- _serviceTimer = setInterval(() => {
408
- console.log(`[SLEEP SERVICE] Interval tick — starting cycle`);
409
- runSleepCycle(opts).catch((err) => console.error("[SLEEP SERVICE] Cycle failed:", err));
548
+ _serviceTimer = setInterval(async () => {
549
+ console.log(`[SLEEP SERVICE] Interval tick — fetching active agents`);
550
+ try {
551
+ const sql = (0, db_js_1.getSql)();
552
+ const agents = await sql `SELECT id FROM agents`;
553
+ for (const agent of agents) {
554
+ console.log(`[SLEEP SERVICE] Starting cycle for agent="${agent.id}"`);
555
+ // Override opts.agentId for each cycle run so it doesn't default to 'main'
556
+ const agentConfig = await (0, config_js_1.loadConfig)(agent.id);
557
+ await runSleepCycle({ ...opts, agentId: agent.id, config: agentConfig.sleep }).catch((err) => console.error(`[SLEEP SERVICE] Cycle failed for agent="${agent.id}":`, err));
558
+ }
559
+ }
560
+ catch (err) {
561
+ console.error("[SLEEP SERVICE] Failed to fetch agents or run cycle:", err);
562
+ }
410
563
  }, intervalMs);
411
564
  }
412
565
  function stopService() {
@@ -427,15 +580,33 @@ if (require.main === module) {
427
580
  return undefined;
428
581
  return args[idx + 1];
429
582
  }
430
- runSleepCycle({
431
- agentId: getArg("--agent-id") || args.find((a) => !a.startsWith("--")),
432
- })
433
- .then(() => {
434
- (0, db_js_1.getSql)().end();
583
+ const specificAgentId = getArg("--agent-id") || args.find((a) => !a.startsWith("--"));
584
+ async function runStandalone() {
585
+ try {
586
+ if (specificAgentId) {
587
+ console.log(`[SLEEP SERVICE] Running manual cycle for specific agent="${specificAgentId}"`);
588
+ const agentConfig = await (0, config_js_1.loadConfig)(specificAgentId);
589
+ await runSleepCycle({ agentId: specificAgentId, config: agentConfig.sleep });
590
+ }
591
+ else {
592
+ console.log(`[SLEEP SERVICE] Running manual cycle for all active agents`);
593
+ const sql = (0, db_js_1.getSql)();
594
+ const agents = await sql `SELECT id FROM agents`;
595
+ for (const agent of agents) {
596
+ console.log(`[SLEEP SERVICE] Starting cycle for agent="${agent.id}"`);
597
+ const agentConfig = await (0, config_js_1.loadConfig)(agent.id);
598
+ await runSleepCycle({ agentId: agent.id, config: agentConfig.sleep }).catch((err) => console.error(`[SLEEP SERVICE] Cycle failed for agent="${agent.id}":`, err));
599
+ }
600
+ }
601
+ }
602
+ finally {
603
+ (0, db_js_1.getSql)().end();
604
+ }
605
+ }
606
+ runStandalone().then(() => {
435
607
  process.exit(0);
436
- })
437
- .catch(() => {
438
- (0, db_js_1.getSql)().end();
608
+ }).catch((err) => {
609
+ console.error("[SLEEP SERVICE] Standalone run failed:", err);
439
610
  process.exit(1);
440
611
  });
441
612
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sleep_cycle.js","sourceRoot":"","sources":["../../scripts/sleep_cycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sleep_cycle.js","sourceRoot":"","sources":["../../scripts/sleep_cycle.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export interface PostClawConfig {
3
3
  semanticLimit: number;
4
4
  linkedSimilarity: number;
5
5
  totalLimit: number;
6
+ maxTraversalDepth: number;
6
7
  };
7
8
  persona: {
8
9
  situationalLimit: number;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../services/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE;QACH,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,EAAE;QACP,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,KAAK,EAAE;QACL,kBAAkB,EAAE,MAAM,CAAC;QAC3B,4BAA4B,EAAE,MAAM,CAAC;QACrC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,uBAAuB,EAAE,MAAM,CAAC;QAChC,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAMD,eAAO,MAAM,cAAc,EAAE,cAiD5B,CAAC;AAQF,wBAAsB,UAAU,CAAC,OAAO,GAAE,MAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAmClF;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBvF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,MAAe,GAAG,cAAc,CAEzE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../services/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE;QACH,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,OAAO,EAAE;QACP,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,KAAK,EAAE;QACL,kBAAkB,EAAE,MAAM,CAAC;QAC3B,4BAA4B,EAAE,MAAM,CAAC;QACrC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,uBAAuB,EAAE,MAAM,CAAC;QAChC,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAMD,eAAO,MAAM,cAAc,EAAE,cA+B5B,CAAC;AAQF,wBAAsB,UAAU,CAAC,OAAO,GAAE,MAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAuClF;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBvF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,MAAe,GAAG,cAAc,CAEzE"}
@@ -13,6 +13,7 @@ exports.DEFAULT_CONFIG = {
13
13
  semanticLimit: 7,
14
14
  linkedSimilarity: 0.8,
15
15
  totalLimit: 15,
16
+ maxTraversalDepth: 3,
16
17
  },
17
18
  persona: {
18
19
  situationalLimit: 3,
@@ -33,29 +34,10 @@ exports.DEFAULT_CONFIG = {
33
34
  maxCacheSize: 1000,
34
35
  },
35
36
  prompts: {
36
- memoryRules: `## Memory & Knowledge Management
37
- You are a stateful agent. Your context window is ephemeral but your PostgreSQL memory is permanent.
38
- Silently manage your knowledge never ask permission to save, link, or update facts.
39
-
40
- - **Retrieval:** Relevant memories (with UUID tags) are auto-injected.
41
- - **Search:** Use the \`memory_search\` tool when you need to recall facts not in the current context.
42
- - **Correct/update facts:** Use the \`memory_update\` tool when a fact is incorrect, outdated, or needs to be updated. When using memory_update, ALWAYS assign an appropriate 'tier' and 'category'.
43
- - **Save new facts:** Use the \`memory_store\` tool when a new fact is learned. When using memory_store, ALWAYS assign an appropriate 'tier' (e.g., 'permanent' for core user identity, 'daily' for current tasks) and 'category'.
44
- - **Link related memories:** Use the \`memory_link\` tool when two memories are related.`,
45
- personaRules: `## Persona Management
46
- You have access to the following tools to manage your persona/identity/rules:
47
-
48
- - **Retrieval**: Use \`persona_list\` to see all available persona rules or \`persona_get\` for details.
49
- - **Creation**: Use \`persona_create\` to define a new set of rules or identity markers.
50
- - **Modification**: Use \`persona_update\` to modify an existing persona rule.
51
- - **Deletion**: Use \`persona_delete\` to remove a persona rule.`,
52
- heartbeatRules: `## Autonomous Heartbeats
53
- OpenClaw provides a native heartbeat loop — never use Linux crontab.
54
- To schedule background tasks, add a checklist to: {{heartbeatFilePath}}
55
- On heartbeat poll: read that file. If no pending tasks, reply with ONLY: HEARTBEAT_OK
56
-
57
- **Always Reply**: ALWAYS conclude your turn with a direct response to the user.`,
58
- heartbeatFilePath: "/home/cl/.openclaw/workspace/HEARTBEAT.md",
37
+ memoryRules: `You have persistent memory backed by PostgreSQL. Relevant facts are auto-injected into context with UUID tags. Silently save new facts, correct outdated ones, and link related knowledge — never ask permission. Assign appropriate tiers (permanent, stable, daily) and categories when storing.`,
38
+ personaRules: `Your identity rules are automatically injected based on context relevance. You can modify your own persona traits when explicitly asked, but do not mention the persona system unprompted.`,
39
+ heartbeatRules: `Read {{heartbeatFilePath}} if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK..`,
40
+ heartbeatFilePath: "~/.openclaw/workspace/HEARTBEAT.md",
59
41
  }
60
42
  };
61
43
  // =============================================================================
@@ -65,11 +47,15 @@ let _runtimeConfig = {};
65
47
  async function loadConfig(agentId = "main") {
66
48
  try {
67
49
  const sql = (0, db_js_1.getSql)();
68
- const rows = await sql `
69
- SELECT config_key, config_value
70
- FROM plugin_config
71
- WHERE agent_id = ${agentId}
72
- `;
50
+ let rows = [];
51
+ await sql.begin(async (tx) => {
52
+ await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
53
+ rows = await tx `
54
+ SELECT config_key, config_value
55
+ FROM plugin_config
56
+ WHERE agent_id = ${agentId}
57
+ `;
58
+ });
73
59
  // Start with a clean deep copy of defaults to prevent mutating the global DEFAULT_CONFIG
74
60
  const merged = JSON.parse(JSON.stringify(exports.DEFAULT_CONFIG));
75
61
  for (const row of rows) {
@@ -106,7 +92,7 @@ async function saveConfig(agentId, config) {
106
92
  for (const [key, value] of Object.entries(config)) {
107
93
  await tx `
108
94
  INSERT INTO plugin_config (agent_id, config_key, config_value)
109
- VALUES (${agentId}, ${key}, ${value})
95
+ VALUES (${agentId}, ${key}, ${tx.json(value)})
110
96
  ON CONFLICT (agent_id, config_key)
111
97
  DO UPDATE SET config_value = EXCLUDED.config_value, updated_at = CURRENT_TIMESTAMP
112
98
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../services/config.ts"],"names":[],"mappings":";;;AA8FA,gCAmCC;AAED,gCAuBC;AAED,4CAEC;AA9JD,mCAAiC;AAiCjC,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEnE,QAAA,cAAc,GAAmB;IAC5C,GAAG,EAAE;QACH,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,GAAG;QACrB,UAAU,EAAE,EAAE;KACf;IACD,OAAO,EAAE;QACP,gBAAgB,EAAE,CAAC;KACpB;IACD,KAAK,EAAE;QACL,kBAAkB,EAAE,GAAG;QACvB,4BAA4B,EAAE,IAAI;QAClC,kBAAkB,EAAE,GAAG;QACvB,eAAe,EAAE,CAAC;QAClB,sBAAsB,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;QAC/C,iBAAiB,EAAE,IAAI;QACvB,iBAAiB,EAAE,IAAI;QACvB,uBAAuB,EAAE,CAAC;QAC1B,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;KAClB;IACD,KAAK,EAAE;QACL,YAAY,EAAE,IAAI;KACnB;IACD,OAAO,EAAE;QACP,WAAW,EAAE;;;;;;;;yFAQwE;QACrF,YAAY,EAAE;;;;;;iEAM+C;QAC7D,cAAc,EAAE;;;;;gFAK4D;QAC5E,iBAAiB,EAAE,2CAA2C;KAC/D;CACF,CAAC;AAEF,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,IAAI,cAAc,GAAmC,EAAE,CAAC;AAEjD,KAAK,UAAU,UAAU,CAAC,UAAkB,MAAM;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,cAAM,GAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAA;;;yBAGD,OAAO;KAC3B,CAAC;QAEF,yFAAyF;QACzF,MAAM,MAAM,GAAmB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAc,CAAC,CAAC,CAAC;QAE1E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,UAAkC,CAAC;YACnD,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;gBAClB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,sFAAsF;oBACtF,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG;wBACZ,GAAI,MAAM,CAAC,GAAG,CAAY;wBAC1B,GAAI,GAAG,CAAC,YAAuB;qBACzB,CAAC;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,cAAc,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,sDAAsD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QACpF,wDAAwD;QACxD,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAc,CAAC,CAAC,CAAC;QACrE,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,MAAsB;IACtE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,cAAM,GAAE,CAAC;QAErB,4CAA4C;QAC5C,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAO,EAAE,EAAE;YAChC,MAAM,EAAE,CAAA,6CAA6C,OAAO,SAAS,CAAC;YACtE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,EAAE,CAAA;;oBAEI,OAAO,KAAK,GAAG,KAAK,KAAY;;;SAG3C,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,iDAAiD,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,0DAA0D,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QACzF,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,UAAkB,MAAM;IACvD,OAAO,cAAc,CAAC,OAAO,CAAC,IAAI,sBAAc,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../services/config.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,16 @@ export declare function getSql(): ReturnType<typeof postgres>;
21
21
  * Generate a vector embedding for a given text string via LM Studio.
22
22
  */
23
23
  export declare function getEmbedding(text: string): Promise<number[]>;
24
+ /**
25
+ * Validates the currently configured embedding model against the dimensions
26
+ * expected by the Postgres schema for this agent. Returns a compatibility status.
27
+ */
28
+ export declare function validateEmbeddingDimension(agentId: string): Promise<{
29
+ model: string;
30
+ expected: number;
31
+ actual: number;
32
+ matches: boolean;
33
+ }>;
24
34
  /**
25
35
  * SHA-256 content hash for deduplication.
26
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../services/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,eAAe,CAAC;AAQvB,eAAO,IAAI,aAAa,oBAA4B,CAAC;AACrD,eAAO,IAAI,eAAe,oBAA8B,CAAC;AACzD,eAAO,IAAI,eAAe,QAA0E,CAAC;AAErG;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,QAEnC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAI5D;AAQD;;;GAGG;AACH,wBAAgB,MAAM,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAYpD;AAMD;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmClE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../services/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,eAAe,CAAC;AAQvB,eAAO,IAAI,aAAa,oBAA4B,CAAC;AACrD,eAAO,IAAI,eAAe,oBAA8B,CAAC;AACzD,eAAO,IAAI,eAAe,QAA0E,CAAC;AAErG;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,QAEnC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAI5D;AAQD;;;GAGG;AACH,wBAAgB,MAAM,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAYpD;AAMD;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoClE;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC,CAkCD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD"}