openclaw-cortex-memory 0.1.0-Alpha.2 → 0.1.0-Alpha.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +115 -90
  2. package/SKILL.md +96 -32
  3. package/dist/index.d.ts +52 -15
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +677 -1195
  6. package/dist/index.js.map +1 -1
  7. package/dist/openclaw.plugin.json +157 -5
  8. package/dist/src/dedup/three_stage_deduplicator.d.ts +25 -0
  9. package/dist/src/dedup/three_stage_deduplicator.d.ts.map +1 -0
  10. package/dist/src/dedup/three_stage_deduplicator.js +225 -0
  11. package/dist/src/dedup/three_stage_deduplicator.js.map +1 -0
  12. package/dist/src/engine/memory_engine.d.ts +2 -1
  13. package/dist/src/engine/memory_engine.d.ts.map +1 -1
  14. package/dist/src/engine/ts_engine.d.ts +95 -0
  15. package/dist/src/engine/ts_engine.d.ts.map +1 -1
  16. package/dist/src/engine/ts_engine.js +918 -38
  17. package/dist/src/engine/ts_engine.js.map +1 -1
  18. package/dist/src/engine/types.d.ts +11 -0
  19. package/dist/src/engine/types.d.ts.map +1 -1
  20. package/dist/src/graph/ontology.d.ts +53 -0
  21. package/dist/src/graph/ontology.d.ts.map +1 -0
  22. package/dist/src/graph/ontology.js +252 -0
  23. package/dist/src/graph/ontology.js.map +1 -0
  24. package/dist/src/reflect/reflector.d.ts +7 -0
  25. package/dist/src/reflect/reflector.d.ts.map +1 -1
  26. package/dist/src/reflect/reflector.js +75 -1
  27. package/dist/src/reflect/reflector.js.map +1 -1
  28. package/dist/src/session/session_end.d.ts +56 -0
  29. package/dist/src/session/session_end.d.ts.map +1 -1
  30. package/dist/src/session/session_end.js +270 -55
  31. package/dist/src/session/session_end.js.map +1 -1
  32. package/dist/src/store/archive_store.d.ts +115 -0
  33. package/dist/src/store/archive_store.d.ts.map +1 -0
  34. package/dist/src/store/archive_store.js +446 -0
  35. package/dist/src/store/archive_store.js.map +1 -0
  36. package/dist/src/store/embedding_utils.d.ts +32 -0
  37. package/dist/src/store/embedding_utils.d.ts.map +1 -0
  38. package/dist/src/store/embedding_utils.js +173 -0
  39. package/dist/src/store/embedding_utils.js.map +1 -0
  40. package/dist/src/store/read_store.d.ts +59 -0
  41. package/dist/src/store/read_store.d.ts.map +1 -1
  42. package/dist/src/store/read_store.js +1114 -17
  43. package/dist/src/store/read_store.js.map +1 -1
  44. package/dist/src/store/vector_store.d.ts +43 -0
  45. package/dist/src/store/vector_store.d.ts.map +1 -0
  46. package/dist/src/store/vector_store.js +200 -0
  47. package/dist/src/store/vector_store.js.map +1 -0
  48. package/dist/src/store/write_store.d.ts +45 -0
  49. package/dist/src/store/write_store.d.ts.map +1 -1
  50. package/dist/src/store/write_store.js +230 -0
  51. package/dist/src/store/write_store.js.map +1 -1
  52. package/dist/src/sync/session_sync.d.ts +52 -2
  53. package/dist/src/sync/session_sync.d.ts.map +1 -1
  54. package/dist/src/sync/session_sync.js +474 -22
  55. package/dist/src/sync/session_sync.js.map +1 -1
  56. package/dist/src/utils/runtime_env.d.ts +4 -0
  57. package/dist/src/utils/runtime_env.d.ts.map +1 -0
  58. package/dist/src/utils/runtime_env.js +51 -0
  59. package/dist/src/utils/runtime_env.js.map +1 -0
  60. package/openclaw.plugin.json +157 -5
  61. package/package.json +21 -6
  62. package/scripts/cli.js +19 -14
  63. package/scripts/uninstall.js +22 -5
  64. package/index.ts +0 -2092
  65. package/scripts/install.js +0 -27
@@ -51,23 +51,33 @@ function firstString(values) {
51
51
  }
52
52
  return undefined;
53
53
  }
54
+ const SYNC_STATE_VERSION = "2";
55
+ function createDefaultState() {
56
+ return { version: SYNC_STATE_VERSION, files: {}, markdowns: {} };
57
+ }
54
58
  function readState(filePath) {
55
59
  try {
56
60
  if (!fs.existsSync(filePath)) {
57
- return { files: {} };
61
+ return createDefaultState();
58
62
  }
59
63
  const content = fs.readFileSync(filePath, "utf-8").trim();
60
64
  if (!content) {
61
- return { files: {} };
65
+ return createDefaultState();
62
66
  }
63
67
  const parsed = JSON.parse(content);
64
68
  if (!parsed.files || typeof parsed.files !== "object") {
65
- return { files: {} };
69
+ return createDefaultState();
70
+ }
71
+ if (!parsed.markdowns || typeof parsed.markdowns !== "object") {
72
+ parsed.markdowns = {};
66
73
  }
74
+ parsed.version = typeof parsed.version === "string" && parsed.version.trim()
75
+ ? parsed.version
76
+ : SYNC_STATE_VERSION;
67
77
  return parsed;
68
78
  }
69
79
  catch {
70
- return { files: {} };
80
+ return createDefaultState();
71
81
  }
72
82
  }
73
83
  function writeState(filePath, state) {
@@ -75,6 +85,7 @@ function writeState(filePath, state) {
75
85
  if (!fs.existsSync(dir)) {
76
86
  fs.mkdirSync(dir, { recursive: true });
77
87
  }
88
+ state.version = SYNC_STATE_VERSION;
78
89
  fs.writeFileSync(filePath, JSON.stringify(state, null, 2), "utf-8");
79
90
  }
80
91
  function gatherSessionFiles(openclawBasePath, memoryRoot) {
@@ -93,10 +104,35 @@ function gatherSessionFiles(openclawBasePath, memoryRoot) {
93
104
  }
94
105
  return [...results];
95
106
  }
107
+ function gatherDailySummaryFiles(openclawBasePath) {
108
+ const summaryDir = path.join(openclawBasePath, "workspace", "memory");
109
+ if (!fs.existsSync(summaryDir) || !fs.statSync(summaryDir).isDirectory()) {
110
+ return [];
111
+ }
112
+ const files = [];
113
+ for (const entry of fs.readdirSync(summaryDir)) {
114
+ if (!entry.toLowerCase().endsWith(".md")) {
115
+ continue;
116
+ }
117
+ const filePath = path.join(summaryDir, entry);
118
+ if (fs.existsSync(filePath) && fs.statSync(filePath).isFile()) {
119
+ files.push(filePath);
120
+ }
121
+ }
122
+ return files;
123
+ }
96
124
  function inferOpenclawBasePath(projectRoot) {
97
- const fromEnv = process.env.OPENCLAW_BASE_PATH;
98
- if (fromEnv && fs.existsSync(fromEnv)) {
99
- return fromEnv;
125
+ const configPath = process.env.OPENCLAW_CONFIG_PATH;
126
+ if (configPath && fs.existsSync(configPath)) {
127
+ return path.dirname(configPath);
128
+ }
129
+ const stateDir = process.env.OPENCLAW_STATE_DIR;
130
+ if (stateDir && fs.existsSync(stateDir)) {
131
+ return stateDir;
132
+ }
133
+ const basePath = process.env.OPENCLAW_BASE_PATH;
134
+ if (basePath && fs.existsSync(basePath)) {
135
+ return basePath;
100
136
  }
101
137
  const home = process.env.USERPROFILE || process.env.HOME || "";
102
138
  if (home) {
@@ -143,16 +179,400 @@ function getSessionId(record, fallbackSeed) {
143
179
  record.id,
144
180
  ]) || `sync:${fallbackSeed}`);
145
181
  }
182
+ function parseDailySummary(content) {
183
+ const normalized = content
184
+ .replace(/\r\n/g, "\n")
185
+ .split("\n")
186
+ .map(line => line.trim())
187
+ .filter(Boolean)
188
+ .filter(line => !line.startsWith("```"));
189
+ const chunks = [];
190
+ let current = [];
191
+ for (const line of normalized) {
192
+ const isHeader = line.startsWith("#");
193
+ const isBullet = /^[-*]\s+/.test(line);
194
+ if (isHeader && current.length > 0) {
195
+ chunks.push(current.join("\n"));
196
+ current = [];
197
+ }
198
+ current.push(line);
199
+ if (isBullet && current.length >= 6) {
200
+ chunks.push(current.join("\n"));
201
+ current = [];
202
+ }
203
+ }
204
+ if (current.length > 0) {
205
+ chunks.push(current.join("\n"));
206
+ }
207
+ return chunks.map(chunk => chunk.trim()).filter(chunk => chunk.length >= 10);
208
+ }
209
+ function normalizeBaseUrl(value) {
210
+ if (!value)
211
+ return "";
212
+ return value.endsWith("/") ? value.slice(0, -1) : value;
213
+ }
214
+ const WRITE_GATE_PROMPT_VERSION = "write-gate.v1.1.0";
215
+ const WRITE_GATE_REGRESSION_SAMPLES = [
216
+ "样例A: “今天讨论了三种方案,尚未决策” => active_only",
217
+ "样例B: “决定采用B方案并完成上线,错误率下降到0.2%” => archive_event",
218
+ "样例C: “好的收到谢谢” => skip",
219
+ ];
220
+ function parseArchiveEventPayload(value) {
221
+ if (!value || typeof value !== "object") {
222
+ return null;
223
+ }
224
+ const obj = value;
225
+ const eventType = typeof obj.event_type === "string" ? obj.event_type.trim() : "";
226
+ const summary = typeof obj.summary === "string" ? obj.summary.trim() : "";
227
+ if (!eventType || !summary) {
228
+ return null;
229
+ }
230
+ const entities = Array.isArray(obj.entities)
231
+ ? obj.entities.map(v => (typeof v === "string" ? v.trim() : "")).filter(Boolean)
232
+ : [];
233
+ const relations = Array.isArray(obj.relations)
234
+ ? obj.relations
235
+ .map(valueItem => {
236
+ if (!valueItem || typeof valueItem !== "object")
237
+ return null;
238
+ const relation = valueItem;
239
+ const source = typeof relation.source === "string" ? relation.source.trim() : "";
240
+ const target = typeof relation.target === "string" ? relation.target.trim() : "";
241
+ const type = typeof relation.type === "string" ? relation.type.trim() : "related_to";
242
+ if (!source || !target)
243
+ return null;
244
+ return { source, target, type };
245
+ })
246
+ .filter((valueItem) => Boolean(valueItem))
247
+ : [];
248
+ return {
249
+ event_type: eventType,
250
+ summary,
251
+ entities,
252
+ relations,
253
+ outcome: typeof obj.outcome === "string" ? obj.outcome.trim() : "",
254
+ confidence: typeof obj.confidence === "number" ? Math.max(0, Math.min(1, obj.confidence)) : 0.6,
255
+ };
256
+ }
257
+ function parseLlmGateDecisions(raw) {
258
+ const trimmed = raw.trim();
259
+ const fence = trimmed.match(/```(?:json)?\s*([\s\S]*?)```/i);
260
+ const candidate = fence?.[1]?.trim() || trimmed;
261
+ const parsed = JSON.parse(candidate);
262
+ const asRecordObj = (typeof parsed === "object" && parsed !== null) ? parsed : null;
263
+ const wrapped = Array.isArray(parsed)
264
+ ? parsed
265
+ : Array.isArray(asRecordObj?.decisions)
266
+ ? asRecordObj?.decisions
267
+ : [];
268
+ if (Array.isArray(wrapped) && wrapped.length > 0) {
269
+ const output = [];
270
+ for (const item of wrapped) {
271
+ if (!item || typeof item !== "object")
272
+ continue;
273
+ const obj = item;
274
+ const target = typeof obj.target_layer === "string" ? obj.target_layer.trim() : "";
275
+ if (target !== "active_only" && target !== "archive_event" && target !== "skip") {
276
+ continue;
277
+ }
278
+ const event = target === "archive_event"
279
+ ? parseArchiveEventPayload(obj.event || obj)
280
+ : null;
281
+ output.push({
282
+ target_layer: target,
283
+ active_text: typeof obj.active_text === "string" ? obj.active_text.trim() : "",
284
+ event: event || undefined,
285
+ reason: typeof obj.reason === "string" ? obj.reason.trim() : "",
286
+ });
287
+ }
288
+ if (output.length > 0) {
289
+ return output;
290
+ }
291
+ }
292
+ const legacyEvents = Array.isArray(asRecordObj?.events) ? asRecordObj?.events : [];
293
+ const legacyOutput = [];
294
+ for (const item of legacyEvents) {
295
+ const parsedEvent = parseArchiveEventPayload(item);
296
+ if (!parsedEvent) {
297
+ continue;
298
+ }
299
+ legacyOutput.push({
300
+ target_layer: "archive_event",
301
+ event: parsedEvent,
302
+ reason: "legacy_events",
303
+ });
304
+ }
305
+ return legacyOutput;
306
+ }
307
+ async function extractGateDecisionsWithLlm(args) {
308
+ const endpoint = args.llm.baseUrl.endsWith("/chat/completions")
309
+ ? args.llm.baseUrl
310
+ : `${args.llm.baseUrl}/chat/completions`;
311
+ const body = {
312
+ model: args.llm.model,
313
+ temperature: 0.1,
314
+ response_format: { type: "json_object" },
315
+ messages: [
316
+ { role: "system", content: "你是出色的记忆提取器。仅输出 JSON。" },
317
+ {
318
+ role: "user",
319
+ content: [
320
+ `prompt_version=${WRITE_GATE_PROMPT_VERSION}`,
321
+ "请对以下导入内容做分流判定,target_layer 只能是 active_only、archive_event、skip。",
322
+ "分类标准:",
323
+ "A) active_only:内容是过程信息/上下文片段/未形成稳定结论;或仅记录进行中状态、临时讨论、零散想法。",
324
+ "B) archive_event:内容形成完整可复用事件,需同时满足:有明确对象、有动作/决策、有结果或阶段性结论;summary 需可脱离原上下文理解。",
325
+ "C) skip:内容是噪声、重复、空泛寒暄、无业务价值描述,或无法提取清晰事件主体。",
326
+ "降噪要求:先剔除与任务无关的寒暄、口头禅、重复表述、无实义感叹词,再做分流判定。",
327
+ "降噪要求:对同一事实的重复片段做合并去重,保留一次且优先保留信息更完整的表达。",
328
+ "降噪要求:若内容混杂噪声与有效信息,仅保留有效信息进入 active_text 或 event.summary,不要把噪声带入结果。",
329
+ "archive_event 额外约束:confidence < 0.35 时优先判为 skip;若关系不明确可省略 relations 但不得伪造。",
330
+ "active_only 额外约束:active_text 必须保留关键信息,不得只返回“同上/略”。",
331
+ "输出格式必须是 {\"decisions\":[...]}。",
332
+ "active_only: 必须给 active_text。",
333
+ "archive_event: 必须给 event={event_type,summary,entities[],relations[],outcome,confidence}。",
334
+ "skip: 必须给 reason。",
335
+ "禁止输出任何解释性自然语言。",
336
+ ...WRITE_GATE_REGRESSION_SAMPLES,
337
+ "只输出 JSON。",
338
+ "",
339
+ args.transcript.slice(-12000),
340
+ ].join("\n"),
341
+ },
342
+ ],
343
+ };
344
+ let lastError = null;
345
+ for (let attempt = 0; attempt < 3; attempt += 1) {
346
+ const controller = new AbortController();
347
+ const timeoutId = setTimeout(() => controller.abort(), 25000);
348
+ try {
349
+ const response = await fetch(endpoint, {
350
+ method: "POST",
351
+ headers: {
352
+ "content-type": "application/json",
353
+ authorization: `Bearer ${args.llm.apiKey}`,
354
+ },
355
+ body: JSON.stringify(body),
356
+ signal: controller.signal,
357
+ });
358
+ clearTimeout(timeoutId);
359
+ if (!response.ok) {
360
+ lastError = new Error(`sync_llm_http_${response.status}`);
361
+ continue;
362
+ }
363
+ const json = await response.json();
364
+ const content = json?.choices?.[0]?.message?.content || "";
365
+ if (!content.trim()) {
366
+ lastError = new Error("sync_llm_empty");
367
+ continue;
368
+ }
369
+ return parseLlmGateDecisions(content);
370
+ }
371
+ catch (error) {
372
+ clearTimeout(timeoutId);
373
+ lastError = error;
374
+ }
375
+ }
376
+ args.logger.warn(`Sync LLM extraction failed: ${String(lastError || "unknown")}`);
377
+ return [];
378
+ }
146
379
  function createSessionSync(options) {
147
380
  const memoryRoot = options.dbPath ? path.resolve(options.dbPath) : path.join(options.projectRoot, "data", "memory");
148
381
  const statePath = path.join(memoryRoot, ".sync_state.json");
149
382
  const openclawBasePath = inferOpenclawBasePath(options.projectRoot);
383
+ const llmModel = options.llm?.model || "";
384
+ const llmApiKey = options.llm?.apiKey || "";
385
+ const llmBaseUrl = normalizeBaseUrl(options.llm?.baseURL || options.llm?.baseUrl);
386
+ const requireLlmForWrite = options.requireLlmForWrite !== false;
387
+ options.logger.info(`sync_gate_prompt_version=${WRITE_GATE_PROMPT_VERSION}`);
388
+ if (!fs.existsSync(statePath)) {
389
+ options.logger.warn("sync_state_missing: deleting state file triggers full re-import");
390
+ }
391
+ async function storeFromTranscript(args) {
392
+ const skipReasons = {};
393
+ function bumpReason(reason) {
394
+ const key = reason || "unknown";
395
+ skipReasons[key] = (skipReasons[key] || 0) + 1;
396
+ }
397
+ if (!args.transcript.trim()) {
398
+ options.logger.info(`sync_skip reason=no_active_records session=${args.sessionId}`);
399
+ bumpReason("no_active_records");
400
+ return { imported: 0, skipped: 1, ok: true, llmDecisions: 0, activeOnly: 0, archiveEvent: 0, skipReasons };
401
+ }
402
+ if (!llmModel || !llmApiKey || !llmBaseUrl) {
403
+ if (requireLlmForWrite) {
404
+ options.logger.warn(`sync_skip reason=llm_not_configured session=${args.sessionId}`);
405
+ bumpReason("llm_not_configured");
406
+ return { imported: 0, skipped: 1, ok: false, llmDecisions: 0, activeOnly: 0, archiveEvent: 0, skipReasons };
407
+ }
408
+ options.logger.warn(`Sync gate degraded to active_only for ${args.sessionId}: llm_not_configured`);
409
+ const fallbackWrite = await options.writeStore.writeMemory({
410
+ text: args.transcript.slice(-4000),
411
+ role: "system",
412
+ source: `sync_gate_fallback:${args.sourceFile}`,
413
+ sessionId: args.sessionId,
414
+ });
415
+ if (fallbackWrite.status === "ok") {
416
+ return { imported: 1, skipped: 0, ok: true, llmDecisions: 1, activeOnly: 1, archiveEvent: 0, skipReasons };
417
+ }
418
+ bumpReason(fallbackWrite.reason || "active_only_fallback_failed");
419
+ return { imported: 0, skipped: 1, ok: false, llmDecisions: 1, activeOnly: 0, archiveEvent: 0, skipReasons };
420
+ }
421
+ const decisions = await extractGateDecisionsWithLlm({
422
+ llm: { model: llmModel, apiKey: llmApiKey, baseUrl: llmBaseUrl },
423
+ transcript: args.transcript,
424
+ logger: options.logger,
425
+ });
426
+ if (decisions.length === 0) {
427
+ options.logger.info(`sync_skip reason=llm_extract_empty session=${args.sessionId}`);
428
+ bumpReason("llm_extract_empty");
429
+ return { imported: 0, skipped: 1, ok: true, llmDecisions: 0, activeOnly: 0, archiveEvent: 0, skipReasons };
430
+ }
431
+ let llmDecisions = 0;
432
+ let imported = 0;
433
+ let skipped = 0;
434
+ let activeOnly = 0;
435
+ let archiveEvent = 0;
436
+ const archiveInputs = [];
437
+ for (const decision of decisions) {
438
+ llmDecisions += 1;
439
+ if (decision.target_layer === "skip") {
440
+ skipped += 1;
441
+ bumpReason(decision.reason || "llm_gate_skip");
442
+ continue;
443
+ }
444
+ if (decision.target_layer === "active_only") {
445
+ const activeText = (decision.active_text || args.transcript).trim().slice(-4000);
446
+ if (!activeText) {
447
+ skipped += 1;
448
+ bumpReason("active_only_empty");
449
+ continue;
450
+ }
451
+ const writeResult = await options.writeStore.writeMemory({
452
+ text: activeText,
453
+ role: "system",
454
+ source: `sync_gate_active:${args.sourceFile}`,
455
+ sessionId: args.sessionId,
456
+ });
457
+ if (writeResult.status === "ok") {
458
+ imported += 1;
459
+ activeOnly += 1;
460
+ }
461
+ else {
462
+ skipped += 1;
463
+ bumpReason(writeResult.reason || "active_only_write_skipped");
464
+ }
465
+ continue;
466
+ }
467
+ if (decision.target_layer === "archive_event") {
468
+ if (!decision.event) {
469
+ skipped += 1;
470
+ bumpReason("archive_event_missing_payload");
471
+ continue;
472
+ }
473
+ archiveInputs.push({
474
+ event_type: decision.event.event_type,
475
+ summary: decision.event.summary,
476
+ entities: decision.event.entities,
477
+ relations: decision.event.relations,
478
+ outcome: decision.event.outcome,
479
+ confidence: decision.event.confidence,
480
+ session_id: args.sessionId,
481
+ source_file: args.sourceFile,
482
+ source_event_id: "",
483
+ actor: "sync_llm_gate",
484
+ });
485
+ }
486
+ }
487
+ if (archiveInputs.length > 0) {
488
+ const archiveResult = await options.archiveStore.storeEvents(archiveInputs);
489
+ imported += archiveResult.stored.length;
490
+ skipped += archiveResult.skipped.length;
491
+ archiveEvent += archiveResult.stored.length;
492
+ for (const skip of archiveResult.skipped) {
493
+ bumpReason(skip.reason || "archive_store_skipped");
494
+ }
495
+ options.logger.info(`sync_archive_result session=${args.sessionId} archived_success=${archiveResult.stored.length} skipped=${archiveResult.skipped.length}`);
496
+ }
497
+ options.logger.info(`sync_gate_result session=${args.sessionId} llm_decisions=${llmDecisions} active_only=${activeOnly} archive_event=${archiveEvent} skipped=${skipped}`);
498
+ return {
499
+ imported,
500
+ skipped,
501
+ ok: true,
502
+ llmDecisions,
503
+ activeOnly,
504
+ archiveEvent,
505
+ skipReasons,
506
+ };
507
+ }
508
+ async function syncDailySummaries() {
509
+ const files = gatherDailySummaryFiles(openclawBasePath);
510
+ const state = readState(statePath);
511
+ if (!state.markdowns || typeof state.markdowns !== "object") {
512
+ state.markdowns = {};
513
+ }
514
+ let imported = 0;
515
+ let skipped = 0;
516
+ let filesProcessed = 0;
517
+ let llmDecisions = 0;
518
+ let activeOnly = 0;
519
+ let archiveEvent = 0;
520
+ const skipReasons = {};
521
+ for (const filePath of files) {
522
+ if (!fs.existsSync(filePath) || !fs.statSync(filePath).isFile()) {
523
+ continue;
524
+ }
525
+ const content = fs.readFileSync(filePath, "utf-8");
526
+ const digest = crypto.createHash("sha1").update(content).digest("hex");
527
+ const prev = state.markdowns[filePath];
528
+ if (prev && prev.digest === digest) {
529
+ skipped += 1;
530
+ continue;
531
+ }
532
+ const chunks = parseDailySummary(content);
533
+ if (chunks.length === 0) {
534
+ state.markdowns[filePath] = { digest, importedAt: new Date().toISOString() };
535
+ skipped += 1;
536
+ continue;
537
+ }
538
+ const summarySessionId = `daily_summary:${path.basename(filePath)}`;
539
+ const transcript = chunks.join("\n");
540
+ const result = await storeFromTranscript({
541
+ sessionId: summarySessionId,
542
+ sourceFile: `daily_summary_sync:${path.basename(filePath)}`,
543
+ transcript,
544
+ });
545
+ imported += result.imported;
546
+ skipped += result.skipped;
547
+ llmDecisions += result.llmDecisions;
548
+ activeOnly += result.activeOnly;
549
+ archiveEvent += result.archiveEvent;
550
+ for (const [key, count] of Object.entries(result.skipReasons)) {
551
+ skipReasons[key] = (skipReasons[key] || 0) + count;
552
+ }
553
+ if (!result.ok) {
554
+ continue;
555
+ }
556
+ state.markdowns[filePath] = { digest, importedAt: new Date().toISOString() };
557
+ filesProcessed += 1;
558
+ }
559
+ writeState(statePath, state);
560
+ options.logger.info(`TS daily summary sync completed: imported=${imported}, skipped=${skipped}, files=${filesProcessed}`);
561
+ return { imported, skipped, filesProcessed, llmDecisions, activeOnly, archiveEvent, skipReasons };
562
+ }
150
563
  async function syncMemory() {
151
564
  const files = gatherSessionFiles(openclawBasePath, memoryRoot);
565
+ if (files.length === 0) {
566
+ options.logger.info("sync_skip reason=no_active_records");
567
+ }
152
568
  const state = readState(statePath);
153
569
  let imported = 0;
154
570
  let skipped = 0;
155
571
  let filesProcessed = 0;
572
+ let llmDecisions = 0;
573
+ let activeOnly = 0;
574
+ let archiveEvent = 0;
575
+ const skipReasons = {};
156
576
  for (const filePath of files) {
157
577
  if (!fs.existsSync(filePath) || !fs.statSync(filePath).isFile()) {
158
578
  continue;
@@ -169,6 +589,8 @@ function createSessionSync(options) {
169
589
  state.files[filePath] = { size: stat.size, lineCount: lines.length };
170
590
  continue;
171
591
  }
592
+ const bySession = new Map();
593
+ let fileHasFailure = false;
172
594
  for (let i = startIndex; i < lines.length; i++) {
173
595
  const line = lines[i].trim();
174
596
  if (!line)
@@ -183,18 +605,10 @@ function createSessionSync(options) {
183
605
  }
184
606
  const sessionId = getSessionId(record, `${path.basename(filePath)}:${hash}`);
185
607
  for (const msg of messages) {
186
- const result = await options.writeStore.writeMemory({
187
- text: msg.text,
188
- role: msg.role,
189
- source: "sync",
190
- sessionId,
191
- });
192
- if (result.status === "ok") {
193
- imported += 1;
194
- }
195
- else {
196
- skipped += 1;
608
+ if (!bySession.has(sessionId)) {
609
+ bySession.set(sessionId, []);
197
610
  }
611
+ bySession.get(sessionId)?.push(`[${msg.role}] ${msg.text}`);
198
612
  }
199
613
  }
200
614
  catch (error) {
@@ -202,13 +616,51 @@ function createSessionSync(options) {
202
616
  skipped += 1;
203
617
  }
204
618
  }
619
+ for (const [sessionId, messages] of bySession.entries()) {
620
+ const transcript = messages.join("\n");
621
+ const result = await storeFromTranscript({
622
+ sessionId,
623
+ sourceFile: `sync:${path.basename(filePath)}`,
624
+ transcript,
625
+ });
626
+ imported += result.imported;
627
+ skipped += result.skipped;
628
+ llmDecisions += result.llmDecisions;
629
+ activeOnly += result.activeOnly;
630
+ archiveEvent += result.archiveEvent;
631
+ for (const [key, count] of Object.entries(result.skipReasons)) {
632
+ skipReasons[key] = (skipReasons[key] || 0) + count;
633
+ }
634
+ if (!result.ok) {
635
+ fileHasFailure = true;
636
+ }
637
+ }
205
638
  filesProcessed += 1;
206
- state.files[filePath] = { size: stat.size, lineCount: lines.length };
639
+ if (!fileHasFailure) {
640
+ state.files[filePath] = { size: stat.size, lineCount: lines.length };
641
+ }
207
642
  }
208
643
  writeState(statePath, state);
209
- options.logger.info(`TS sync completed: imported=${imported}, skipped=${skipped}, files=${filesProcessed}`);
210
- return { imported, skipped, filesProcessed };
644
+ const summary = await syncDailySummaries();
645
+ llmDecisions += summary.llmDecisions;
646
+ activeOnly += summary.activeOnly;
647
+ archiveEvent += summary.archiveEvent;
648
+ for (const [key, count] of Object.entries(summary.skipReasons)) {
649
+ skipReasons[key] = (skipReasons[key] || 0) + count;
650
+ }
651
+ options.logger.info(`TS sync completed: imported=${imported}, skipped=${skipped}, files=${filesProcessed}, summaryImported=${summary.imported}, summarySkipped=${summary.skipped}, llmDecisions=${llmDecisions}, activeOnly=${activeOnly}, archiveEvent=${archiveEvent}`);
652
+ return {
653
+ imported,
654
+ skipped,
655
+ filesProcessed,
656
+ summaryImported: summary.imported,
657
+ summarySkipped: summary.skipped,
658
+ llmDecisions,
659
+ activeOnly,
660
+ archiveEvent,
661
+ skipReasons,
662
+ };
211
663
  }
212
- return { syncMemory };
664
+ return { syncMemory, syncDailySummaries };
213
665
  }
214
666
  //# sourceMappingURL=session_sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_sync.js","sourceRoot":"","sources":["../../../src/sync/session_sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session_sync.js","sourceRoot":"","sources":["../../../src/sync/session_sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function getEnvValue(key: string): string;
2
+ export declare function getHomeDir(): string;
3
+ export declare function getProcessEnvCopy(): Record<string, string>;
4
+ //# sourceMappingURL=runtime_env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime_env.d.ts","sourceRoot":"","sources":["../../../src/utils/runtime_env.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAG1D"}